summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2016-05-30 19:20:05 +0200
committerFulup Ar Foll <fulup@iot.bzh>2016-05-30 19:20:05 +0200
commit85ace9c1ce9a98e9b8a22f045c7dd752b38d9129 (patch)
tree98d42b46fc1c1fe2d4f6358543e781e6805b7341
parenta1c9f0e713b2b6e6cd2469fd34de18507b3290c6 (diff)
Added DistProd
-rw-r--r--afb-client/dist.prod/bower_components/vendor.min.js12
-rw-r--r--afb-client/dist.prod/global_styles/foundation-conf.min.css2
-rw-r--r--afb-client/dist.prod/global_styles/ibz-global.min.css2
-rw-r--r--afb-client/dist.prod/opa/AFBclient.min.css9
-rw-r--r--afb-client/dist.prod/opa/AFBclient.min.js2
-rw-r--r--afb-client/dist.prod/opa/images/avatars/istoobig.jpgbin0 -> 7204 bytes
-rw-r--r--afb-client/dist.prod/opa/images/avatars/istoobig.pngbin0 -> 15144 bytes
-rw-r--r--afb-client/dist.prod/opa/images/avatars/tux-admin.pngbin0 -> 15107 bytes
-rw-r--r--afb-client/dist.prod/opa/images/avatars/tux-bzh.pngbin0 -> 18451 bytes
-rw-r--r--afb-client/dist.prod/opa/images/avatars/tux-visitor.pngbin0 -> 29307 bytes
-rw-r--r--afb-client/dist.prod/opa/images/logo/logo_iot_bzh.svg1
-rw-r--r--afb-client/dist.prod/opa/images/logo/logo_iot_bzhx350.pngbin0 -> 9416 bytes
-rw-r--r--afb-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.pngbin0 -> 19420 bytes
-rw-r--r--afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.pngbin0 -> 30976 bytes
-rw-r--r--afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg1
-rw-r--r--afb-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.pngbin0 -> 9799 bytes
-rw-r--r--afb-client/dist.prod/opa/index.html3
17 files changed, 32 insertions, 0 deletions
diff --git a/afb-client/dist.prod/bower_components/vendor.min.js b/afb-client/dist.prod/bower_components/vendor.min.js
new file mode 100644
index 0000000..e7391a7
--- /dev/null
+++ b/afb-client/dist.prod/bower_components/vendor.min.js
@@ -0,0 +1,12 @@
+!function(t,e,n){"use strict";function r(t,e){return e=e||Error,function(){var n,r,i=arguments[0],o="["+(t?t+":":"")+i+"] ",a=arguments[1],s=arguments;for(n=o+a.replace(/\{\d+\}/g,function(t){var e=+t.slice(1,-1);return e+2<s.length?ht(s[e+2]):t}),n=n+"\nhttp://errors.angularjs.org/1.3.20/"+(t?t+"/":"")+i,r=2;r<arguments.length;r++)n=n+(2==r?"?":"&")+"p"+(r-2)+"="+encodeURIComponent(ht(arguments[r]));return new e(n)}}function i(t){if(null==t||E(t))return!1;var e="length"in Object(t)&&t.length;return t.nodeType===br&&e?!0:b(t)||dr(t)||0===e||"number"==typeof e&&e>0&&e-1 in t}function o(t,e,n){var r,a;if(t)if(x(t))for(r in t)"prototype"==r||"length"==r||"name"==r||t.hasOwnProperty&&!t.hasOwnProperty(r)||e.call(n,t[r],r,t);else if(dr(t)||i(t)){var s="object"!=typeof t;for(r=0,a=t.length;a>r;r++)(s||r in t)&&e.call(n,t[r],r,t)}else if(t.forEach&&t.forEach!==o)t.forEach(e,n,t);else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t);return t}function a(t){return Object.keys(t).sort()}function s(t,e,n){for(var r=a(t),i=0;i<r.length;i++)e.call(n,t[r[i]],r[i]);return r}function u(t){return function(e,n){t(n,e)}}function c(){return++fr}function l(t,e){e?t.$$hashKey=e:delete t.$$hashKey}function f(t){for(var e=t.$$hashKey,n=1,r=arguments.length;r>n;n++){var i=arguments[n];if(i)for(var o=Object.keys(i),a=0,s=o.length;s>a;a++){var u=o[a];t[u]=i[u]}}return l(t,e),t}function h(t){return parseInt(t,10)}function d(t,e){return f(Object.create(t),e)}function p(){}function m(t){return t}function v(t){return function(){return t}}function g(t){return"undefined"==typeof t}function $(t){return"undefined"!=typeof t}function y(t){return null!==t&&"object"==typeof t}function b(t){return"string"==typeof t}function w(t){return"number"==typeof t}function _(t){return"[object Date]"===ur.call(t)}function x(t){return"function"==typeof t}function C(t){return"[object RegExp]"===ur.call(t)}function E(t){return t&&t.window===t}function k(t){return t&&t.$evalAsync&&t.$watch}function A(t){return"[object File]"===ur.call(t)}function S(t){return"[object FormData]"===ur.call(t)}function T(t){return"[object Blob]"===ur.call(t)}function O(t){return"boolean"==typeof t}function I(t){return t&&x(t.then)}function z(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}function M(t){var e,n={},r=t.split(",");for(e=0;e<r.length;e++)n[r[e]]=!0;return n}function D(t){return Gn(t.nodeName||t[0]&&t[0].nodeName)}function j(t,e){var n=t.indexOf(e);return n>=0&&t.splice(n,1),e}function N(t,e,n,r){if(E(t)||k(t))throw cr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(e){if(t===e)throw cr("cpi","Can't copy! Source and destination are identical.");if(n=n||[],r=r||[],y(t)){var i=n.indexOf(t);if(-1!==i)return r[i];n.push(t),r.push(e)}var a;if(dr(t)){e.length=0;for(var s=0;s<t.length;s++)a=N(t[s],null,n,r),y(t[s])&&(n.push(t[s]),r.push(a)),e.push(a)}else{var u=e.$$hashKey;dr(e)?e.length=0:o(e,function(t,n){delete e[n]});for(var c in t)t.hasOwnProperty(c)&&(a=N(t[c],null,n,r),y(t[c])&&(n.push(t[c]),r.push(a)),e[c]=a);l(e,u)}}else if(e=t,t)if(dr(t))e=N(t,[],n,r);else if(_(t))e=new Date(t.getTime());else if(C(t))e=new RegExp(t.source,t.toString().match(/[^\/]*$/)[0]),e.lastIndex=t.lastIndex;else if(y(t)){var f=Object.create(Object.getPrototypeOf(t));e=N(t,f,n,r)}return e}function P(t,e){if(dr(t)){e=e||[];for(var n=0,r=t.length;r>n;n++)e[n]=t[n]}else if(y(t)){e=e||{};for(var i in t)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(e[i]=t[i])}return e||t}function R(t,e){if(t===e)return!0;if(null===t||null===e)return!1;if(t!==t&&e!==e)return!0;var r,i,o,a=typeof t,s=typeof e;if(a==s&&"object"==a){if(!dr(t)){if(_(t))return _(e)?R(t.getTime(),e.getTime()):!1;if(C(t))return C(e)?t.toString()==e.toString():!1;if(k(t)||k(e)||E(t)||E(e)||dr(e)||_(e)||C(e))return!1;o={};for(i in t)if("$"!==i.charAt(0)&&!x(t[i])){if(!R(t[i],e[i]))return!1;o[i]=!0}for(i in e)if(!o.hasOwnProperty(i)&&"$"!==i.charAt(0)&&e[i]!==n&&!x(e[i]))return!1;return!0}if(!dr(e))return!1;if((r=t.length)==e.length){for(i=0;r>i;i++)if(!R(t[i],e[i]))return!1;return!0}}return!1}function F(t,e,n){return t.concat(or.call(e,n))}function B(t,e){return or.call(t,e||0)}function L(t,e){var n=arguments.length>2?B(arguments,2):[];return!x(e)||e instanceof RegExp?e:n.length?function(){return arguments.length?e.apply(t,F(n,arguments,0)):e.apply(t,n)}:function(){return arguments.length?e.apply(t,arguments):e.call(t)}}function U(t,r){var i=r;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=n:E(r)?i="$WINDOW":r&&e===r?i="$DOCUMENT":k(r)&&(i="$SCOPE"),i}function V(t,e){return"undefined"==typeof t?n:(w(e)||(e=e?2:null),JSON.stringify(t,U,e))}function q(t){return b(t)?JSON.parse(t):t}function H(t){t=nr(t).clone();try{t.empty()}catch(e){}var n=nr("<div>").append(t).html();try{return t[0].nodeType===_r?Gn(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(t,e){return"<"+Gn(e)})}catch(e){return Gn(n)}}function W(t){try{return decodeURIComponent(t)}catch(e){}}function X(t){var e,n,r={};return o((t||"").split("&"),function(t){if(t&&(e=t.replace(/\+/g,"%20").split("="),n=W(e[0]),$(n))){var i=$(e[1])?W(e[1]):!0;Kn.call(r,n)?dr(r[n])?r[n].push(i):r[n]=[r[n],i]:r[n]=i}}),r}function Y(t){var e=[];return o(t,function(t,n){dr(t)?o(t,function(t){e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}):e.push(G(n,!0)+(t===!0?"":"="+G(t,!0)))}),e.length?e.join("&"):""}function Z(t){return G(t,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function G(t,e){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,e?"%20":"+")}function K(t,e){var n,r,i=gr.length;for(t=nr(t),r=0;i>r;++r)if(n=gr[r]+e,b(n=t.attr(n)))return n;return null}function J(t,e){var n,r,i={};o(gr,function(e){var i=e+"app";!n&&t.hasAttribute&&t.hasAttribute(i)&&(n=t,r=t.getAttribute(i))}),o(gr,function(e){var i,o=e+"app";!n&&(i=t.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==K(n,"strict-di"),e(n,r?[r]:[],i))}function Q(n,r,i){y(i)||(i={});var a={strictDi:!1};i=f(a,i);var s=function(){if(n=nr(n),n.injector()){var t=n[0]===e?"document":H(n);throw cr("btstrpd","App Already Bootstrapped with this Element '{0}'",t.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(t){t.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(t){t.debugInfoEnabled(!0)}]),r.unshift("ng");var o=qt(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(t,e,n,r){t.$apply(function(){e.data("$injector",r),n(e)(t)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return t&&u.test(t.name)&&(i.debugInfoEnabled=!0,t.name=t.name.replace(u,"")),t&&!c.test(t.name)?s():(t.name=t.name.replace(c,""),lr.resumeBootstrap=function(t){return o(t,function(t){r.push(t)}),s()},void(x(lr.resumeDeferredBootstrap)&&lr.resumeDeferredBootstrap()))}function tt(){t.name="NG_ENABLE_DEBUG_INFO!"+t.name,t.location.reload()}function et(t){var e=lr.element(t).injector();if(!e)throw cr("test","no injector found for element argument to getTestability");return e.get("$$testability")}function nt(t,e){return e=e||"_",t.replace($r,function(t,n){return(n?e:"")+t.toLowerCase()})}function rt(){var e;yr||(rr=t.jQuery,rr&&rr.fn.on?(nr=rr,f(rr.fn,{scope:Br.scope,isolateScope:Br.isolateScope,controller:Br.controller,injector:Br.injector,inheritedData:Br.inheritedData}),e=rr.cleanData,rr.cleanData=function(t){var n;if(hr)hr=!1;else for(var r,i=0;null!=(r=t[i]);i++)n=rr._data(r,"events"),n&&n.$destroy&&rr(r).triggerHandler("$destroy");e(t)}):nr=bt,lr.element=nr,yr=!0)}function it(t,e,n){if(!t)throw cr("areq","Argument '{0}' is {1}",e||"?",n||"required");return t}function ot(t,e,n){return n&&dr(t)&&(t=t[t.length-1]),it(x(t),e,"not a function, got "+(t&&"object"==typeof t?t.constructor.name||"Object":typeof t)),t}function at(t,e){if("hasOwnProperty"===t)throw cr("badname","hasOwnProperty is not a valid {0} name",e)}function st(t,e,n){if(!e)return t;for(var r,i=e.split("."),o=t,a=i.length,s=0;a>s;s++)r=i[s],t&&(t=(o=t)[r]);return!n&&x(t)?L(o,t):t}function ut(t){var e=t[0],n=t[t.length-1],r=[e];do{if(e=e.nextSibling,!e)break;r.push(e)}while(e!==n);return nr(r)}function ct(){return Object.create(null)}function lt(t){function e(t,e,n){return t[e]||(t[e]=n())}var n=r("$injector"),i=r("ng"),o=e(t,"angular",Object);return o.$$minErr=o.$$minErr||r,e(o,"module",function(){var t={};return function(r,o,a){var s=function(t,e){if("hasOwnProperty"===t)throw i("badname","hasOwnProperty is not a valid {0} name",e)};return s(r,"module"),o&&t.hasOwnProperty(r)&&(t[r]=null),e(t,r,function(){function t(t,n,r,i){return i||(i=e),function(){return i[r||"push"]([t,n,arguments]),c}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var e=[],i=[],s=[],u=t("$injector","invoke","push",i),c={_invokeQueue:e,_configBlocks:i,_runBlocks:s,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:t("$provide","value"),constant:t("$provide","constant","unshift"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:u,run:function(t){return s.push(t),this}};return a&&u(a),c})}})}function ft(t){var e=[];return JSON.stringify(t,function(t,n){if(n=U(t,n),y(n)){if(e.indexOf(n)>=0)return"<<already seen>>";e.push(n)}return n})}function ht(t){return"function"==typeof t?t.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?ft(t):t}function dt(e){f(e,{bootstrap:Q,copy:N,extend:f,equals:R,element:nr,forEach:o,injector:qt,noop:p,bind:L,toJson:V,fromJson:q,identity:m,isUndefined:g,isDefined:$,isString:b,isFunction:x,isObject:y,isNumber:w,isElement:z,isArray:dr,version:kr,isDate:_,lowercase:Gn,uppercase:Jn,callbacks:{counter:0},getTestability:et,$$minErr:r,$$csp:vr,reloadWithDebugInfo:tt}),ir=lt(t);try{ir("ngLocale")}catch(n){ir("ngLocale",[]).provider("$locale",ve)}ir("ng",["ngLocale"],["$provide",function(t){t.provider({$$sanitizeUri:Ze}),t.provider("$compile",Kt).directive({a:zi,input:Zi,textarea:Zi,form:Pi,script:Fo,select:Uo,style:qo,option:Vo,ngBind:Ji,ngBindHtml:to,ngBindTemplate:Qi,ngClass:no,ngClassEven:io,ngClassOdd:ro,ngCloak:oo,ngController:ao,ngForm:Ri,ngHide:Mo,ngIf:co,ngInclude:lo,ngInit:ho,ngNonBindable:Ao,ngPluralize:So,ngRepeat:To,ngShow:zo,ngStyle:Do,ngSwitch:jo,ngSwitchWhen:No,ngSwitchDefault:Po,ngOptions:Lo,ngTransclude:Ro,ngModel:Co,ngList:po,ngChange:eo,pattern:Wo,ngPattern:Wo,required:Ho,ngRequired:Ho,minlength:Yo,ngMinlength:Yo,maxlength:Xo,ngMaxlength:Xo,ngValue:Ki,ngModelOptions:ko}).directive({ngInclude:fo}).directive(Mi).directive(so),t.provider({$anchorScroll:Ht,$animate:Gr,$browser:Yt,$cacheFactory:Zt,$controller:ee,$document:ne,$exceptionHandler:re,$filter:un,$interpolate:pe,$interval:me,$http:le,$httpBackend:he,$location:Oe,$log:Ie,$parse:Ve,$rootScope:Ye,$q:qe,$$q:He,$sce:Qe,$sceDelegate:Je,$sniffer:tn,$templateCache:Gt,$templateRequest:en,$$testability:nn,$timeout:rn,$window:sn,$$rAF:Xe,$$asyncCallback:Wt,$$jqLite:Ft})}])}function pt(){return++Sr}function mt(t){return t.replace(Ir,function(t,e,n,r){return r?n.toUpperCase():n}).replace(zr,"Moz$1")}function vt(t){return!Nr.test(t)}function gt(t){var e=t.nodeType;return e===br||!e||e===Cr}function $t(t,e){var n,r,i,a,s=e.createDocumentFragment(),u=[];if(vt(t))u.push(e.createTextNode(t));else{for(n=n||s.appendChild(e.createElement("div")),r=(Pr.exec(t)||["",""])[1].toLowerCase(),i=Fr[r]||Fr._default,n.innerHTML=i[1]+t.replace(Rr,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;u=F(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(t){s.appendChild(t)}),s}function yt(t,n){n=n||e;var r;return(r=jr.exec(t))?[n.createElement(r[1])]:(r=$t(t,n))?r.childNodes:[]}function bt(t){if(t instanceof bt)return t;var e;if(b(t)&&(t=pr(t),e=!0),!(this instanceof bt)){if(e&&"<"!=t.charAt(0))throw Dr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new bt(t)}e?Ot(this,yt(t)):Ot(this,t)}function wt(t){return t.cloneNode(!0)}function _t(t,e){if(e||Ct(t),t.querySelectorAll)for(var n=t.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Ct(n[r])}function xt(t,e,n,r){if($(r))throw Dr("offargs","jqLite#off() does not support the `selector` argument");var i=Et(t),a=i&&i.events,s=i&&i.handle;if(s)if(e)o(e.split(" "),function(e){if($(n)){var r=a[e];if(j(r||[],n),r&&r.length>0)return}Or(t,e,s),delete a[e]});else for(e in a)"$destroy"!==e&&Or(t,e,s),delete a[e]}function Ct(t,e){var r=t.ng339,i=r&&Ar[r];if(i){if(e)return void delete i.data[e];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),xt(t)),delete Ar[r],t.ng339=n}}function Et(t,e){var r=t.ng339,i=r&&Ar[r];return e&&!i&&(t.ng339=r=pt(),i=Ar[r]={events:{},data:{},handle:n}),i}function kt(t,e,n){if(gt(t)){var r=$(n),i=!r&&e&&!y(e),o=!e,a=Et(t,!i),s=a&&a.data;if(r)s[e]=n;else{if(o)return s;if(i)return s&&s[e];f(s,e)}}}function At(t,e){return t.getAttribute?(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+e+" ")>-1:!1}function St(t,e){e&&t.setAttribute&&o(e.split(" "),function(e){t.setAttribute("class",pr((" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+pr(e)+" "," ")))})}function Tt(t,e){if(e&&t.setAttribute){var n=(" "+(t.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(e.split(" "),function(t){t=pr(t),-1===n.indexOf(" "+t+" ")&&(n+=t+" ")}),t.setAttribute("class",pr(n))}}function Ot(t,e){if(e)if(e.nodeType)t[t.length++]=e;else{var n=e.length;if("number"==typeof n&&e.window!==e){if(n)for(var r=0;n>r;r++)t[t.length++]=e[r]}else t[t.length++]=e}}function It(t,e){return zt(t,"$"+(e||"ngController")+"Controller")}function zt(t,e,r){t.nodeType==Cr&&(t=t.documentElement);for(var i=dr(e)?e:[e];t;){for(var o=0,a=i.length;a>o;o++)if((r=nr.data(t,i[o]))!==n)return r;t=t.parentNode||t.nodeType===Er&&t.host}}function Mt(t){for(_t(t,!0);t.firstChild;)t.removeChild(t.firstChild)}function Dt(t,e){e||_t(t);var n=t.parentNode;n&&n.removeChild(t)}function jt(e,n){n=n||t,"complete"===n.document.readyState?n.setTimeout(e):nr(n).on("load",e)}function Nt(t,e){var n=Lr[e.toLowerCase()];return n&&Ur[D(t)]&&n}function Pt(t,e){var n=t.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&Vr[e]}function Rt(t,e){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=e[r||n.type],o=i?i.length:0;if(o){if(g(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=P(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(t,n)}};return n.elem=t,n}function Ft(){this.$get=function(){return f(bt,{hasClass:function(t,e){return t.attr&&(t=t[0]),At(t,e)},addClass:function(t,e){return t.attr&&(t=t[0]),Tt(t,e)},removeClass:function(t,e){return t.attr&&(t=t[0]),St(t,e)}})}}function Bt(t,e){var n=t&&t.$$hashKey;if(n)return"function"==typeof n&&(n=t.$$hashKey()),n;var r=typeof t;return n="function"==r||"object"==r&&null!==t?t.$$hashKey=r+":"+(e||c)():r+":"+t}function Lt(t,e){if(e){var n=0;this.nextUid=function(){return++n}}o(t,this.put,this)}function Ut(t){var e=t.toString().replace(Xr,""),n=e.match(qr);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Vt(t,e,n){var r,i,a,s;if("function"==typeof t){if(!(r=t.$inject)){if(r=[],t.length){if(e)throw b(n)&&n||(n=t.name||Ut(t)),Yr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=t.toString().replace(Xr,""),a=i.match(qr),o(a[1].split(Hr),function(t){t.replace(Wr,function(t,e,n){r.push(n)})})}t.$inject=r}}else dr(t)?(s=t.length-1,ot(t[s],"fn"),r=t.slice(0,s)):ot(t,"fn",!0);return r}function qt(t,e){function r(t){return function(e,n){return y(e)?void o(e,u(t)):t(e,n)}}function i(t,e){if(at(t,"service"),(x(e)||dr(e))&&(e=k.instantiate(e)),!e.$get)throw Yr("pget","Provider '{0}' must define $get factory method.",t);return E[t+w]=e}function a(t,e){return function(){var n=S.invoke(e,this);if(g(n))throw Yr("undef","Provider '{0}' must return a value from $get factory method.",t);return n}}function s(t,e,n){return i(t,{$get:n!==!1?a(t,e):e})}function c(t,e){return s(t,["$injector",function(t){return t.instantiate(e)}])}function l(t,e){return s(t,v(e),!1)}function f(t,e){at(t,"constant"),E[t]=e,A[t]=e}function h(t,e){var n=k.get(t+w),r=n.$get;n.$get=function(){var t=S.invoke(r,n);return S.invoke(e,null,{$delegate:t})}}function d(t){var e,n=[];return o(t,function(t){function r(t){var e,n;for(e=0,n=t.length;n>e;e++){var r=t[e],i=k.get(r[0]);i[r[1]].apply(i,r[2])}}if(!C.get(t)){C.put(t,!0);try{b(t)?(e=ir(t),n=n.concat(d(e.requires)).concat(e._runBlocks),r(e._invokeQueue),r(e._configBlocks)):x(t)?n.push(k.invoke(t)):dr(t)?n.push(k.invoke(t)):ot(t,"module")}catch(i){throw dr(t)&&(t=t[t.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Yr("modulerr","Failed to instantiate module {0} due to:\n{1}",t,i.stack||i.message||i)}}}),n}function m(t,n){function r(e,r){if(t.hasOwnProperty(e)){if(t[e]===$)throw Yr("cdep","Circular dependency found: {0}",e+" <- "+_.join(" <- "));return t[e]}try{return _.unshift(e),t[e]=$,t[e]=n(e,r)}catch(i){throw t[e]===$&&delete t[e],i}finally{_.shift()}}function i(t,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=qt.$$annotate(t,e,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Yr("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return dr(t)&&(t=t[a]),t.apply(n,c)}function o(t,e,n){var r=Object.create((dr(t)?t[t.length-1]:t).prototype||null),o=i(t,r,e,n);return y(o)||x(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:qt.$$annotate,has:function(e){return E.hasOwnProperty(e+w)||t.hasOwnProperty(e)}}}e=e===!0;var $={},w="Provider",_=[],C=new Lt([],!0),E={$provide:{provider:r(i),factory:r(s),service:r(c),value:r(l),constant:r(f),decorator:h}},k=E.$injector=m(E,function(t,e){throw lr.isString(e)&&_.push(e),Yr("unpr","Unknown provider: {0}",_.join(" <- "))}),A={},S=A.$injector=m(A,function(t,e){var r=k.get(t+w,e);return S.invoke(r.$get,r,n,t)});return o(d(t),function(t){S.invoke(t||p)}),S}function Ht(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(e,n,r){function i(t){var e=null;return Array.prototype.some.call(t,function(t){return"a"===D(t)?(e=t,!0):void 0}),e}function o(){var t=s.yOffset;if(x(t))t=t();else if(z(t)){var n=t[0],r=e.getComputedStyle(n);t="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else w(t)||(t=0);return t}function a(t){if(t){t.scrollIntoView();var n=o();if(n){var r=t.getBoundingClientRect().top;e.scrollBy(0,r-n)}}else e.scrollTo(0,0)}function s(){var t,e=n.hash();e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=e.document;return t&&r.$watch(function(){return n.hash()},function(t,e){(t!==e||""!==t)&&jt(function(){r.$evalAsync(s)})}),s}]}function Wt(){this.$get=["$$rAF","$timeout",function(t,e){return t.supported?function(e){return t(e)}:function(t){return e(t,0,!1)}}]}function Xt(t,e,r,i){function a(t){try{t.apply(null,B(arguments,1))}finally{if(C--,0===C)for(;E.length;)try{E.pop()()}catch(e){r.error(e)}}}function s(t){var e=t.indexOf("#");return-1===e?"":t.substr(e)}function u(t,e){!function n(){o(A,function(t){t()}),k=e(n,t)}()}function c(){f(),h()}function l(){try{return y.state}catch(t){}}function f(){S=l(),S=g(S)?null:S,R(S,j)&&(S=j),j=S}function h(){(O!==m.url()||T!==S)&&(O=m.url(),T=S,o(M,function(t){t(m.url(),S)}))}function d(t){try{return decodeURIComponent(t)}catch(e){return t}}var m=this,v=e[0],$=t.location,y=t.history,w=t.setTimeout,_=t.clearTimeout,x={};m.isMock=!1;var C=0,E=[];m.$$completeOutstandingRequest=a,m.$$incOutstandingRequestCount=function(){C++},m.notifyWhenNoOutstandingRequests=function(t){o(A,function(t){t()}),0===C?t():E.push(t)};var k,A=[];m.addPollFn=function(t){return g(k)&&u(100,w),A.push(t),t};var S,T,O=$.href,I=e.find("base"),z=null;f(),T=S,m.url=function(e,n,r){if(g(r)&&(r=null),$!==t.location&&($=t.location),y!==t.history&&(y=t.history),e){var o=T===r;if(O===e&&(!i.history||o))return m;var a=O&&we(O)===we(e);return O=e,T=r,!i.history||a&&o?((!a||z)&&(z=e),n?$.replace(e):a?$.hash=s(e):$.href=e):(y[n?"replaceState":"pushState"](r,"",e),f(),T=S),m}return z||$.href.replace(/%27/g,"'")},m.state=function(){return S};var M=[],D=!1,j=null;m.onUrlChange=function(e){return D||(i.history&&nr(t).on("popstate",c),nr(t).on("hashchange",c),D=!0),M.push(e),e},m.$$checkUrlChange=h,m.baseHref=function(){var t=I.attr("href");return t?t.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var N={},P="",F=m.baseHref();m.cookies=function(t,e){var i,o,a,s,u;if(!t){if(v.cookie!==P)for(P=v.cookie,o=P.split("; "),N={},s=0;s<o.length;s++)a=o[s],u=a.indexOf("="),u>0&&(t=d(a.substring(0,u)),N[t]===n&&(N[t]=d(a.substring(u+1))));return N}e===n?v.cookie=encodeURIComponent(t)+"=;path="+F+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(e)&&(i=(v.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)+";path="+F).length+1,i>4096&&r.warn("Cookie '"+t+"' possibly not set or overflowed because it was too large ("+i+" > 4096 bytes)!"))},m.defer=function(t,e){var n;return C++,n=w(function(){delete x[n],a(t)},e||0),x[n]=!0,n},m.defer.cancel=function(t){return x[t]?(delete x[t],_(t),a(p),!0):!1}}function Yt(){this.$get=["$window","$log","$sniffer","$document",function(t,e,n,r){return new Xt(t,r,e,n)}]}function Zt(){this.$get=function(){function t(t,n){function i(t){t!=h&&(d?d==t&&(d=t.n):d=t,o(t.n,t.p),o(t,h),h=t,h.n=null)}function o(t,e){t!=e&&(t&&(t.p=e),e&&(e.n=t))}if(t in e)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",t);var a=0,s=f({},n,{id:t}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},h=null,d=null;return e[t]={put:function(t,e){if(c<Number.MAX_VALUE){var n=l[t]||(l[t]={key:t});i(n)}if(!g(e))return t in u||a++,u[t]=e,a>c&&this.remove(d.key),e},get:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;i(e)}return u[t]},remove:function(t){if(c<Number.MAX_VALUE){var e=l[t];if(!e)return;e==h&&(h=e.p),e==d&&(d=e.n),o(e.n,e.p),delete l[t]}delete u[t],a--},removeAll:function(){u={},a=0,l={},h=d=null},destroy:function(){u=null,s=null,l=null,delete e[t]},info:function(){return f({},s,{size:a})}}}var e={};return t.info=function(){var t={};return o(e,function(e,n){t[n]=e.info()}),t},t.get=function(t){return e[t]},t}}function Gt(){this.$get=["$cacheFactory",function(t){return t("templates")}]}function Kt(t,r){function i(t,e){var n=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,r={};return o(t,function(t,i){var o=t.match(n);if(!o)throw Kr("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",e,i,t);r[i]={mode:o[1][0],collection:"*"===o[2],optional:"?"===o[3],attrName:o[4]||i}}),r}var a={},s="Directive",c=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,l=/(([\w\-]+)(?:\:([^;]+))?;?)/,h=M("ngSrc,ngSrcset,src,srcset"),g=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,w=/^(on[a-z]+|formaction)$/;this.directive=function C(e,n){return at(e,"directive"),b(e)?(it(n,"directiveFactory"),a.hasOwnProperty(e)||(a[e]=[],t.factory(e+s,["$injector","$exceptionHandler",function(t,n){var r=[];return o(a[e],function(o,a){try{var s=t.invoke(o);x(s)?s={compile:v(s)}:!s.compile&&s.link&&(s.compile=v(s.link)),s.priority=s.priority||0,s.index=a,s.name=s.name||e,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA",y(s.scope)&&(s.$$isolateBindings=i(s.scope,s.name)),r.push(s)}catch(u){n(u)}}),r}])),a[e].push(n)):o(e,u(C)),this},this.aHrefSanitizationWhitelist=function(t){return $(t)?(r.aHrefSanitizationWhitelist(t),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(r.imgSrcSanitizationWhitelist(t),this):r.imgSrcSanitizationWhitelist()};var _=!0;this.debugInfoEnabled=function(t){return $(t)?(_=t,this):_},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(t,r,i,u,v,$,C,E,A,S,T){function O(t,e){try{t.addClass(e)}catch(n){}}function I(t,e,n,r,i){t instanceof nr||(t=nr(t)),o(t,function(e,n){e.nodeType==_r&&e.nodeValue.match(/\S+/)&&(t[n]=nr(e).wrap("<span></span>").parent()[0])});var a=M(t,e,t,n,r,i);I.$$addScopeClass(t);var s=null;return function(e,n,r){it(e,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=z(u));var c;if(c="html"!==s?nr(J(s,nr("<div>").append(t).html())):n?Br.clone.call(t):t,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return I.$$addScopeInfo(c,e),n&&n(c,e),a&&a(e,c,c,i),c}}function z(t){var e=t&&t[0];return e&&"foreignobject"!==D(e)&&e.toString().match(/SVG/)?"svg":"html"}function M(t,e,r,i,o,a){function s(t,r,i,o){var a,s,u,c,l,f,h,d,v;if(p){var g=r.length;for(v=new Array(g),l=0;l<m.length;l+=3)h=m[l],v[h]=r[h]}else v=r;for(l=0,f=m.length;f>l;)u=v[m[l++]],a=m[l++],s=m[l++],a?(a.scope?(c=t.$new(),I.$$addScopeInfo(nr(u),c)):c=t,d=a.transcludeOnThisElement?N(t,a.transclude,o,a.elementTranscludeOnThisElement):!a.templateOnThisElement&&o?o:!o&&e?N(t,e):null,a(s,c,u,i,d)):s&&s(t,u.childNodes,n,o)}for(var u,c,l,f,h,d,p,m=[],v=0;v<t.length;v++)u=new at,c=P(t[v],[],u,0===v?i:n,o),l=c.length?U(c,t[v],u,e,r,null,[],[],a):null,l&&l.scope&&I.$$addScopeClass(u.$$element),h=l&&l.terminal||!(f=t[v].childNodes)||!f.length?null:M(f,l?(l.transcludeOnThisElement||!l.templateOnThisElement)&&l.transclude:e),(l||h)&&(m.push(v,l,h),d=!0,p=p||l),a=null;return d?s:null}function N(t,e,n,r){var i=function(r,i,o,a,s){return r||(r=t.$new(!1,s),r.$$transcluded=!0),e(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})};return i}function P(t,e,n,r,i){var o,a,s=t.nodeType,u=n.$attr;switch(s){case br:q(e,Jt(D(t)),"E",r,i);for(var f,h,d,p,m,v,g=t.attributes,$=0,w=g&&g.length;w>$;$++){var _=!1,x=!1;f=g[$],h=f.name,m=pr(f.value),p=Jt(h),(v=ft.test(p))&&(h=h.replace(Jr,"").substr(8).replace(/_(.)/g,function(t,e){return e.toUpperCase()}));var C=p.replace(/(Start|End)$/,"");W(C)&&p===C+"Start"&&(_=h,x=h.substr(0,h.length-5)+"end",h=h.substr(0,h.length-6)),d=Jt(h.toLowerCase()),u[d]=h,(v||!n.hasOwnProperty(d))&&(n[d]=m,Nt(t,d)&&(n[d]=!0)),tt(t,e,m,d,v),q(e,d,"A",r,i,_,x)}if(a=t.className,y(a)&&(a=a.animVal),b(a)&&""!==a)for(;o=l.exec(a);)d=Jt(o[2]),q(e,d,"C",r,i)&&(n[d]=pr(o[3])),a=a.substr(o.index+o[0].length);break;case _r:K(e,t.nodeValue);break;case xr:try{o=c.exec(t.nodeValue),o&&(d=Jt(o[1]),q(e,d,"M",r,i)&&(n[d]=pr(o[2])))}catch(E){}}return e.sort(Z),e}function F(t,e,n){var r=[],i=0;if(e&&t.hasAttribute&&t.hasAttribute(e)){do{if(!t)throw Kr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",e,n);t.nodeType==br&&(t.hasAttribute(e)&&i++,t.hasAttribute(n)&&i--),r.push(t),t=t.nextSibling}while(i>0)}else r.push(t);return nr(r)}function L(t,e,n){return function(r,i,o,a,s){return i=F(i[0],e,n),t(r,i,o,a,s)}}function U(t,a,s,u,c,l,f,h,d){function p(t,e,n,r){t&&(n&&(t=L(t,n,r)),t.require=E.require,t.directiveName=A,(D===E||E.$$isolateScope)&&(t=rt(t,{isolateScope:!0})),f.push(t)),e&&(n&&(e=L(e,n,r)),e.require=E.require,e.directiveName=A,(D===E||E.$$isolateScope)&&(e=rt(e,{isolateScope:!0})),h.push(e))}function m(t,e,n,r){var i,a,s="data",u=!1,c=n;if(b(e)){if(a=e.match(g),e=e.substring(a[0].length),a[3]&&(a[1]?a[3]=null:a[1]=a[3]),"^"===a[1]?s="inheritedData":"^^"===a[1]&&(s="inheritedData",c=n.parent()),"?"===a[2]&&(u=!0),i=null,r&&"data"===s&&(i=r[e])&&(i=i.instance),i=i||c[s]("$"+e+"Controller"),!i&&!u)throw Kr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",e,t);return i||null}return dr(e)&&(i=[],o(e,function(e){i.push(m(t,e,n,r))})),i}function w(t,e,i,u,c){function l(t,e,r){var i;return k(t)||(r=e,e=t,t=n),W&&(i=w),r||(r=W?x.parent():x),c(t,e,i,r,T)}var d,p,g,y,b,w,_,x,E;if(a===i?(E=s,x=s.$$element):(x=nr(i),E=new at(x,s)),D&&(b=e.$new(!0)),c&&(_=l,_.$$boundTransclude=c),M&&(C={},w={},o(M,function(t){var n,r={$scope:t===D||t.$$isolateScope?b:e,$element:x,$attrs:E,$transclude:_};y=t.controller,"@"==y&&(y=E[t.name]),n=$(y,r,!0,t.controllerAs),w[t.name]=n,W||x.data("$"+t.name+"Controller",n.instance),C[t.name]=n})),D){I.$$addScopeInfo(x,b,!0,!(j&&(j===D||j===D.$$originalDirective))),I.$$addScopeClass(x,!0);var A=C&&C[D.name],S=b;A&&A.identifier&&D.bindToController===!0&&(S=A.instance),o(b.$$isolateBindings=D.$$isolateBindings,function(t,n){var i,o,a,s,u=t.attrName,c=t.optional,l=t.mode;switch(l){case"@":E.$observe(u,function(t){S[n]=t}),E.$$observers[u].$$scope=e,E[u]&&(S[n]=r(E[u])(e));break;case"=":if(c&&!E[u])return;o=v(E[u]),s=o.literal?R:function(t,e){return t===e||t!==t&&e!==e},a=o.assign||function(){throw i=S[n]=o(e),Kr("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",E[u],D.name)},i=S[n]=o(e);var f=function(t){return s(t,S[n])||(s(t,i)?a(e,t=S[n]):S[n]=t),i=t};f.$stateful=!0;var h;h=t.collection?e.$watchCollection(E[u],f):e.$watch(v(E[u],f),null,o.literal),b.$on("$destroy",h);break;case"&":o=v(E[u]),S[n]=function(t){return o(e,t)}}})}for(C&&(o(C,function(t){t()}),C=null),d=0,p=f.length;p>d;d++)g=f[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_);var T=e;for(D&&(D.template||null===D.templateUrl)&&(T=b),t&&t(T,i.childNodes,n,c),d=h.length-1;d>=0;d--)g=h[d],ot(g,g.isolateScope?b:e,x,E,g.require&&m(g.directiveName,g.require,x,w),_)}d=d||{};for(var _,C,E,A,S,T,O,z=-Number.MAX_VALUE,M=d.controllerDirectives,D=d.newIsolateScopeDirective,j=d.templateDirective,N=d.nonTlbTranscludeDirective,U=!1,q=!1,W=d.hasElementTranscludeDirective,Z=s.$$element=nr(a),K=l,Q=u,tt=0,nt=t.length;nt>tt;tt++){E=t[tt];var it=E.$$start,st=E.$$end;if(it&&(Z=F(a,it,st)),S=n,z>E.priority)break;if((O=E.scope)&&(E.templateUrl||(y(O)?(G("new/isolated scope",D||_,E,Z),D=E):G("new/isolated scope",D,E,Z)),_=_||E),A=E.name,!E.templateUrl&&E.controller&&(O=E.controller,M=M||{},G("'"+A+"' controller",M[A],E,Z),M[A]=E),(O=E.transclude)&&(U=!0,E.$$tlb||(G("transclusion",N,E,Z),N=E),"element"==O?(W=!0,z=E.priority,S=Z,Z=s.$$element=nr(e.createComment(" "+A+": "+s[A]+" ")),a=Z[0],et(c,B(S),a),Q=I(S,u,z,K&&K.name,{nonTlbTranscludeDirective:N})):(S=nr(wt(a)).contents(),Z.empty(),Q=I(S,u))),E.template)if(q=!0,G("template",j,E,Z),j=E,O=x(E.template)?E.template(Z,s):E.template,O=lt(O),E.replace){if(K=E,S=vt(O)?[]:te(J(E.templateNamespace,pr(O))),a=S[0],1!=S.length||a.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",A,"");et(c,Z,a);var ut={$attr:{}},ct=P(a,[],ut),ft=t.splice(tt+1,t.length-(tt+1));D&&V(ct),t=t.concat(ct).concat(ft),X(s,ut),nt=t.length}else Z.html(O);if(E.templateUrl)q=!0,G("template",j,E,Z),j=E,E.replace&&(K=E),w=Y(t.splice(tt,t.length-tt),Z,s,c,U&&Q,f,h,{controllerDirectives:M,newIsolateScopeDirective:D,templateDirective:j,nonTlbTranscludeDirective:N}),nt=t.length;else if(E.compile)try{T=E.compile(Z,s,Q),x(T)?p(null,T,it,st):T&&p(T.pre,T.post,it,st)}catch(ht){i(ht,H(Z))}E.terminal&&(w.terminal=!0,z=Math.max(z,E.priority))}return w.scope=_&&_.scope===!0,w.transcludeOnThisElement=U,w.elementTranscludeOnThisElement=W,w.templateOnThisElement=q,w.transclude=Q,d.hasElementTranscludeDirective=W,w}function V(t){for(var e=0,n=t.length;n>e;e++)t[e]=d(t[e],{$$isolateScope:!0})}function q(e,r,o,u,c,l,f){if(r===c)return null;var h=null;if(a.hasOwnProperty(r))for(var p,m=t.get(r+s),v=0,g=m.length;g>v;v++)try{p=m[v],(u===n||u>p.priority)&&-1!=p.restrict.indexOf(o)&&(l&&(p=d(p,{
+$$start:l,$$end:f})),e.push(p),h=p)}catch($){i($)}return h}function W(e){if(a.hasOwnProperty(e))for(var n,r=t.get(e+s),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function X(t,e){var n=e.$attr,r=t.$attr,i=t.$$element;o(t,function(r,i){"$"!=i.charAt(0)&&(e[i]&&e[i]!==r&&(r+=("style"===i?";":" ")+e[i]),t.$set(i,r,!0,n[i]))}),o(e,function(e,o){"class"==o?(O(i,e),t["class"]=(t["class"]?t["class"]+" ":"")+e):"style"==o?(i.attr("style",i.attr("style")+";"+e),t.style=(t.style?t.style+";":"")+e):"$"==o.charAt(0)||t.hasOwnProperty(o)||(t[o]=e,r[o]=n[o])})}function Y(t,e,n,r,i,a,s,c){var l,f,h=[],p=e[0],m=t.shift(),v=d(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=x(m.templateUrl)?m.templateUrl(e,n):m.templateUrl,$=m.templateNamespace;return e.empty(),u(g).then(function(u){var d,b,w,_;if(u=lt(u),m.replace){if(w=vt(u)?[]:te(J($,pr(u))),d=w[0],1!=w.length||d.nodeType!==br)throw Kr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},et(r,e,d);var x=P(d,[],b);y(m.scope)&&V(x),t=x.concat(t),X(n,b)}else d=p,e.html(u);for(t.unshift(v),l=U(t,d,n,i,e,m,a,s,c),o(r,function(t,n){t==d&&(r[n]=e[0])}),f=M(e[0].childNodes,i);h.length;){var C=h.shift(),E=h.shift(),k=h.shift(),A=h.shift(),S=e[0];if(!C.$$destroyed){if(E!==p){var T=E.className;c.hasElementTranscludeDirective&&m.replace||(S=wt(d)),et(k,nr(E),S),O(nr(S),T)}_=l.transcludeOnThisElement?N(C,l.transclude,A):A,l(f,C,S,r,_)}}h=null}),function(t,e,n,r,i){var o=i;e.$$destroyed||(h?h.push(e,n,r,o):(l.transcludeOnThisElement&&(o=N(e,l.transclude,i)),l(f,e,n,r,o)))}}function Z(t,e){var n=e.priority-t.priority;return 0!==n?n:t.name!==e.name?t.name<e.name?-1:1:t.index-e.index}function G(t,e,n,r){if(e)throw Kr("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",e.name,n.name,t,H(r))}function K(t,e){var n=r(e,!0);n&&t.push({priority:0,compile:function(t){var e=t.parent(),r=!!e.length;return r&&I.$$addBindingClass(e),function(t,e){var i=e.parent();r||I.$$addBindingClass(i),I.$$addBindingInfo(i,n.expressions),t.$watch(n,function(t){e[0].nodeValue=t})}}})}function J(t,n){switch(t=Gn(t||"html")){case"svg":case"math":var r=e.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function Q(t,e){if("srcdoc"==e)return A.HTML;var n=D(t);return"xlinkHref"==e||"form"==n&&"action"==e||"img"!=n&&("src"==e||"ngSrc"==e)?A.RESOURCE_URL:void 0}function tt(t,e,n,i,o){var a=Q(t,i);o=h[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===D(t))throw Kr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",H(t));e.push({priority:100,compile:function(){return{pre:function(t,e,u){var c=u.$$observers||(u.$$observers={});if(w.test(i))throw Kr("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(t),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||t).$watch(s,function(t,e){"class"===i&&t!=e?u.$updateClass(t,e):u.$set(i,t)}))}}}})}}function et(t,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(i=0,o=t.length;o>i;i++)if(t[i]==a){t[i++]=r;for(var c=i,l=c+s-1,f=t.length;f>c;c++,l++)f>l?t[c]=t[l]:delete t[c];t.length-=s-1,t.context===a&&(t.context=r);break}u&&u.replaceChild(r,a);var h=e.createDocumentFragment();h.appendChild(a),nr(r).data(nr(a).data()),rr?(hr=!0,rr.cleanData([a])):delete nr.cache[a[nr.expando]];for(var d=1,p=n.length;p>d;d++){var m=n[d];nr(m).remove(),h.appendChild(m),delete n[d]}n[0]=r,n.length=1}function rt(t,e){return f(function(){return t.apply(null,arguments)},t,e)}function ot(t,e,n,r,o,a){try{t(e,n,r,o,a)}catch(s){i(s,H(n))}}var at=function(t,e){if(e){var n,r,i,o=Object.keys(e);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=e[i]}else this.$attr={};this.$$element=t};at.prototype={$normalize:Jt,$addClass:function(t){t&&t.length>0&&S.addClass(this.$$element,t)},$removeClass:function(t){t&&t.length>0&&S.removeClass(this.$$element,t)},$updateClass:function(t,e){var n=Qt(t,e);n&&n.length&&S.addClass(this.$$element,n);var r=Qt(e,t);r&&r.length&&S.removeClass(this.$$element,r)},$set:function(t,e,r,a){var s,u=this.$$element[0],c=Nt(u,t),l=Pt(u,t),f=t;if(c?(this.$$element.prop(t,e),a=c):l&&(this[l]=e,f=l),this[t]=e,a?this.$attr[t]=a:(a=this.$attr[t],a||(this.$attr[t]=a=nt(t,"-"))),s=D(this.$$element),"a"===s&&"href"===t||"img"===s&&"src"===t)this[t]=e=T(e,"src"===t);else if("img"===s&&"srcset"===t){for(var h="",d=pr(e),p=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,m=/\s/.test(d)?p:/(,)/,v=d.split(m),g=Math.floor(v.length/2),$=0;g>$;$++){var y=2*$;h+=T(pr(v[y]),!0),h+=" "+pr(v[y+1])}var b=pr(v[2*$]).split(/\s/);h+=T(pr(b[0]),!0),2===b.length&&(h+=" "+pr(b[1])),this[t]=e=h}r!==!1&&(null===e||e===n?this.$$element.removeAttr(a):this.$$element.attr(a,e));var w=this.$$observers;w&&o(w[f],function(t){try{t(e)}catch(n){i(n)}})},$observe:function(t,e){var n=this,r=n.$$observers||(n.$$observers=ct()),i=r[t]||(r[t]=[]);return i.push(e),C.$evalAsync(function(){!i.$$inter&&n.hasOwnProperty(t)&&e(n[t])}),function(){j(i,e)}}};var st=r.startSymbol(),ut=r.endSymbol(),lt="{{"==st||"}}"==ut?m:function(t){return t.replace(/\{\{/g,st).replace(/}}/g,ut)},ft=/^ngAttr[A-Z]/;return I.$$addBindingInfo=_?function(t,e){var n=t.data("$binding")||[];dr(e)?n=n.concat(e):n.push(e),t.data("$binding",n)}:p,I.$$addBindingClass=_?function(t){O(t,"ng-binding")}:p,I.$$addScopeInfo=_?function(t,e,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";t.data(i,e)}:p,I.$$addScopeClass=_?function(t,e){O(t,e?"ng-isolate-scope":"ng-scope")}:p,I}]}function Jt(t){return mt(t.replace(Jr,""))}function Qt(t,e){var n="",r=t.split(/\s+/),i=e.split(/\s+/);t:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue t;n+=(n.length>0?" ":"")+a}return n}function te(t){t=nr(t);var e=t.length;if(1>=e)return t;for(;e--;){var n=t[e];n.nodeType===xr&&ar.call(t,e,1)}return t}function ee(){var t={},e=!1,i=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(e,n){at(e,"controller"),y(e)?f(t,e):t[e]=n},this.allowGlobals=function(){e=!0},this.$get=["$injector","$window",function(o,a){function s(t,e,n,i){if(!t||!y(t.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,e);t.$scope[e]=n}return function(r,u,c,l){var h,d,p,m;if(c=c===!0,l&&b(l)&&(m=l),b(r)){if(d=r.match(i),!d)throw Qr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);p=d[1],m=m||d[3],r=t.hasOwnProperty(p)?t[p]:st(u.$scope,p,!0)||(e?st(a,p,!0):n),ot(r,p,!0)}if(c){var v=(dr(r)?r[r.length-1]:r).prototype;return h=Object.create(v||null),m&&s(u,m,h,p||r.name),f(function(){return o.invoke(r,h,u,p),h},{instance:h,identifier:m})}return h=o.instantiate(r,u,p),m&&s(u,m,h,p||r.name),h}}]}function ne(){this.$get=["$window",function(t){return nr(t.document)}]}function re(){this.$get=["$log",function(t){return function(e,n){t.error.apply(t,arguments)}}]}function ie(t,e){if(b(t)){var n=t.replace(ii,"").trim();if(n){var r=e("Content-Type");(r&&0===r.indexOf(ti)||oe(n))&&(t=q(n))}}return t}function oe(t){var e=t.match(ni);return e&&ri[e[0]].test(t)}function ae(t){var e,n,r,i=ct();return t?(o(t.split("\n"),function(t){r=t.indexOf(":"),e=Gn(pr(t.substr(0,r))),n=pr(t.substr(r+1)),e&&(i[e]=i[e]?i[e]+", "+n:n)}),i):i}function se(t){var e=y(t)?t:n;return function(n){if(e||(e=ae(t)),n){var r=e[Gn(n)];return void 0===r&&(r=null),r}return e}}function ue(t,e,n,r){return x(r)?r(t,e,n):(o(r,function(r){t=r(t,e,n)}),t)}function ce(t){return t>=200&&300>t}function le(){var t=this.defaults={transformResponse:[ie],transformRequest:[function(t){return!y(t)||A(t)||T(t)||S(t)?t:V(t)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:P(ei),put:P(ei),patch:P(ei)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},e=!1;this.useApplyAsync=function(t){return $(t)?(e=!!t,this):e};var i=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,u,c,l,h,d){function p(e){function i(t){var e=f({},t);return t.data?e.data=ue(t.data,t.headers,t.status,u.transformResponse):e.data=t.data,ce(t.status)?e:h.reject(e)}function a(t){var e,n={};return o(t,function(t,r){x(t)?(e=t(),null!=e&&(n[r]=e)):n[r]=t}),n}function s(e){var n,r,i,o=t.headers,s=f({},e.headers);o=f({},o.common,o[Gn(e.method)]);t:for(n in o){r=Gn(n);for(i in s)if(Gn(i)===r)continue t;s[n]=o[n]}return a(s)}if(!lr.isObject(e))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",e);var u=f({method:"get",transformRequest:t.transformRequest,transformResponse:t.transformResponse},e);u.headers=s(e),u.method=Jn(u.method);var c=function(e){var r=e.headers,a=ue(e.data,se(r),n,e.transformRequest);return g(a)&&o(r,function(t,e){"content-type"===Gn(e)&&delete r[e]}),g(e.withCredentials)&&!g(t.withCredentials)&&(e.withCredentials=t.withCredentials),w(e,a).then(i,i)},l=[c,n],d=h.when(u);for(o(k,function(t){(t.request||t.requestError)&&l.unshift(t.request,t.requestError),(t.response||t.responseError)&&l.push(t.response,t.responseError)});l.length;){var p=l.shift(),m=l.shift();d=d.then(p,m)}return d.success=function(t){return ot(t,"fn"),d.then(function(e){t(e.data,e.status,e.headers,u)}),d},d.error=function(t){return ot(t,"fn"),d.then(null,function(e){t(e.data,e.status,e.headers,u)}),d},d}function m(t){o(arguments,function(t){p[t]=function(e,n){return p(f(n||{},{method:t,url:e}))}})}function v(t){o(arguments,function(t){p[t]=function(e,n,r){return p(f(r||{},{method:t,url:e,data:n}))}})}function w(r,i){function o(t,n,r,i){function o(){s(n,t,r,i)}d&&(ce(t)?d.put(_,[t,n,ae(r),i]):d.remove(_)),e?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function s(t,e,n,i){e=e>=-1?e:0,(ce(e)?v.resolve:v.reject)({data:t,status:e,headers:se(n),config:r,statusText:i})}function c(t){s(t.data,t.status,P(t.headers()),t.statusText)}function f(){var t=p.pendingRequests.indexOf(r);-1!==t&&p.pendingRequests.splice(t,1)}var d,m,v=h.defer(),b=v.promise,w=r.headers,_=C(r.url,r.params);if(p.pendingRequests.push(r),b.then(f,f),!r.cache&&!t.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=y(r.cache)?r.cache:y(t.cache)?t.cache:E),d&&(m=d.get(_),$(m)?I(m)?m.then(c,c):dr(m)?s(m[1],m[0],P(m[2]),m[3]):s(m,200,{},"OK"):d.put(_,b)),g(m)){var x=an(r.url)?u.cookies()[r.xsrfCookieName||t.xsrfCookieName]:n;x&&(w[r.xsrfHeaderName||t.xsrfHeaderName]=x),a(r.method,_,i,o,w,r.timeout,r.withCredentials,r.responseType)}return b}function C(t,e){if(!e)return t;var n=[];return s(e,function(t,e){null===t||g(t)||(dr(t)||(t=[t]),o(t,function(t){y(t)&&(t=_(t)?t.toISOString():V(t)),n.push(G(e)+"="+G(t))}))}),n.length>0&&(t+=(-1==t.indexOf("?")?"?":"&")+n.join("&")),t}var E=c("$http"),k=[];return o(i,function(t){k.unshift(b(t)?d.get(t):d.invoke(t))}),p.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),p.defaults=t,p}]}function fe(){return new t.XMLHttpRequest}function he(){this.$get=["$browser","$window","$document",function(t,e,n){return de(t,fe,t.defer,e.angular.callbacks,n[0])}]}function de(t,e,r,i,a){function s(t,e,n){var r=a.createElement("script"),o=null;return r.type="text/javascript",r.src=t,r.async=!0,o=function(t){Or(r,"load",o),Or(r,"error",o),a.body.removeChild(r),r=null;var s=-1,u="unknown";t&&("load"!==t.type||i[e].called||(t={type:"error"}),u=t.type,s="error"===t.type?404:200),n&&n(s,u)},Tr(r,"load",o),Tr(r,"error",o),a.body.appendChild(r),o}return function(a,u,c,l,f,h,d,m){function v(){b&&b(),w&&w.abort()}function g(e,i,o,a,s){C!==n&&r.cancel(C),b=w=null,e(i,o,a,s),t.$$completeOutstandingRequest(p)}if(t.$$incOutstandingRequestCount(),u=u||t.url(),"jsonp"==Gn(a)){var y="_"+(i.counter++).toString(36);i[y]=function(t){i[y].data=t,i[y].called=!0};var b=s(u.replace("JSON_CALLBACK","angular.callbacks."+y),y,function(t,e){g(l,t,i[y].data,"",e),i[y]=p})}else{var w=e();w.open(a,u,!0),o(f,function(t,e){$(t)&&w.setRequestHeader(e,t)}),w.onload=function(){var t=w.statusText||"",e="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=e?200:"file"==on(u).protocol?404:0),g(l,n,e,w.getAllResponseHeaders(),t)};var _=function(){g(l,-1,null,null,"")};if(w.onerror=_,w.onabort=_,d&&(w.withCredentials=!0),m)try{w.responseType=m}catch(x){if("json"!==m)throw x}w.send(c||null)}if(h>0)var C=r(v,h);else I(h)&&h.then(v)}}function pe(){var t="{{",e="}}";this.startSymbol=function(e){return e?(t=e,this):t},this.endSymbol=function(t){return t?(e=t,this):e},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(t){return"\\\\\\"+t}function a(o,a,h,d){function p(n){return n.replace(c,t).replace(l,e)}function m(t){try{return t=T(t),d&&!$(t)?t:O(t)}catch(e){var n=oi("interr","Can't interpolate: {0}\n{1}",o,e.toString());r(n)}}d=!!d;for(var v,y,b,w=0,_=[],C=[],E=o.length,k=[],A=[];E>w;){if(-1==(v=o.indexOf(t,w))||-1==(y=o.indexOf(e,v+s))){w!==E&&k.push(p(o.substring(w)));break}w!==v&&k.push(p(o.substring(w,v))),b=o.substring(v+s,y),_.push(b),C.push(n(b,m)),w=y+u,A.push(k.length),k.push("")}if(h&&k.length>1)throw oi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",o);if(!a||_.length){var S=function(t){for(var e=0,n=_.length;n>e;e++){if(d&&g(t[e]))return;k[A[e]]=t[e]}return k.join("")},T=function(t){return h?i.getTrusted(h,t):i.valueOf(t)},O=function(t){if(null==t)return"";switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=V(t)}return t};return f(function(t){var e=0,n=_.length,i=new Array(n);try{for(;n>e;e++)i[e]=C[e](t);return S(i)}catch(a){var s=oi("interr","Can't interpolate: {0}\n{1}",o,a.toString());r(s)}},{exp:o,expressions:_,$$watchDelegate:function(t,e,n){var r;return t.$watchGroup(C,function(n,i){var o=S(n);x(e)&&e.call(this,o,n!==i?r:o,t),r=o},n)}})}}var s=t.length,u=e.length,c=new RegExp(t.replace(/./g,o),"g"),l=new RegExp(e.replace(/./g,o),"g");return a.startSymbol=function(){return t},a.endSymbol=function(){return e},a}]}function me(){this.$get=["$rootScope","$window","$q","$$q",function(t,e,n,r){function i(i,a,s,u){var c=e.setInterval,l=e.clearInterval,f=0,h=$(u)&&!u,d=(h?r:n).defer(),p=d.promise;return s=$(s)?s:0,p.then(null,null,i),p.$$intervalId=c(function(){d.notify(f++),s>0&&f>=s&&(d.resolve(f),l(p.$$intervalId),delete o[p.$$intervalId]),h||t.$apply()},a),o[p.$$intervalId]=d,p}var o={};return i.cancel=function(t){return t&&t.$$intervalId in o?(o[t.$$intervalId].reject("canceled"),e.clearInterval(t.$$intervalId),delete o[t.$$intervalId],!0):!1},i}]}function ve(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(t){return 1===t?"one":"other"}}}}function ge(t){for(var e=t.split("/"),n=e.length;n--;)e[n]=Z(e[n]);return e.join("/")}function $e(t,e){var n=on(t);e.$$protocol=n.protocol,e.$$host=n.hostname,e.$$port=h(n.port)||si[n.protocol]||null}function ye(t,e){var n="/"!==t.charAt(0);n&&(t="/"+t);var r=on(t);e.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),e.$$search=X(r.search),e.$$hash=decodeURIComponent(r.hash),e.$$path&&"/"!=e.$$path.charAt(0)&&(e.$$path="/"+e.$$path)}function be(t,e){return 0===e.indexOf(t)?e.substr(t.length):void 0}function we(t){var e=t.indexOf("#");return-1==e?t:t.substr(0,e)}function _e(t){return t.replace(/(#.+)|#$/,"$1")}function xe(t){return t.substr(0,we(t).lastIndexOf("/")+1)}function Ce(t){return t.substring(0,t.indexOf("/",t.indexOf("//")+2))}function Ee(t,e,r){this.$$html5=!0,r=r||"",$e(t,this),this.$$parse=function(t){var n=be(e,t);if(!b(n))throw ui("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,e);ye(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var t=Y(this.$$search),n=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(t?"?"+t:"")+n,this.$$absUrl=e+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var a,s,u;return(a=be(t,i))!==n?(s=a,u=(a=be(r,a))!==n?e+(be("/",a)||a):t+s):(a=be(e,i))!==n?u=e+a:e==i+"/"&&(u=e),u&&this.$$parse(u),!!u}}function ke(t,e,n){$e(t,this),this.$$parse=function(r){function i(t,e,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===e.indexOf(n)&&(e=e.replace(n,"")),i.exec(e)?t:(r=i.exec(t),r?r[1]:t)}var o,a=be(t,r)||be(e,r);g(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",g(a)&&(t=r,this.replace())):(o=be(n,a),g(o)&&(o=a)),ye(o,this),this.$$path=i(this.$$path,o,t),this.$$compose()},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(e,n){return we(t)==we(e)?(this.$$parse(e),!0):!1}}function Ae(t,e,n){this.$$html5=!0,ke.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return t==we(r)?o=r:(a=be(e,r))?o=t+n+a:e===r+"/"&&(o=e),o&&this.$$parse(o),!!o},this.$$compose=function(){var e=Y(this.$$search),r=this.$$hash?"#"+Z(this.$$hash):"";this.$$url=ge(this.$$path)+(e?"?"+e:"")+r,this.$$absUrl=t+n+this.$$url}}function Se(t){return function(){return this[t]}}function Te(t,e){return function(n){return g(n)?this[t]:(this[t]=e(n),this.$$compose(),this)}}function Oe(){var t="",e={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return $(e)?(t=e,this):t},this.html5Mode=function(t){return O(t)?(e.enabled=t,this):y(t)?(O(t.enabled)&&(e.enabled=t.enabled),O(t.requireBase)&&(e.requireBase=t.requireBase),O(t.rewriteLinks)&&(e.rewriteLinks=t.rewriteLinks),this):e},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(t,e,n){var i=c.url(),o=c.$$state;try{r.url(t,e,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(t,e){n.$broadcast("$locationChangeSuccess",c.absUrl(),t,c.$$state,e)}var c,l,f,h=r.baseHref(),d=r.url();if(e.enabled){if(!h&&e.requireBase)throw ui("nobase","$location in HTML5 mode requires a <base> tag to be present!");f=Ce(d)+(h||"/"),l=i.history?Ee:Ae}else f=we(d),l=ke;var p=xe(f);c=new l(f,p,"#"+t),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(t){if(e.rewriteLinks&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&2!=t.which&&2!=t.button){for(var i=nr(t.target);"a"!==D(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");y(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=on(s.animVal).href),m.test(s)||!s||i.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(t.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),_e(c.absUrl())!=_e(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(t,e){return g(be(p,t))?void(a.location.href=t):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(t),c.$$state=e,r=n.$broadcast("$locationChangeStart",t,i,e,o).defaultPrevented,c.absUrl()===t&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var t=_e(r.url()),e=_e(c.absUrl()),o=r.state(),a=c.$$replace,l=t!==e||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var e=c.absUrl(),r=n.$broadcast("$locationChangeStart",e,t,c.$$state,o).defaultPrevented;c.absUrl()===e&&(r?(c.$$parse(t),c.$$state=o):(l&&s(e,a,o===c.$$state?null:c.$$state),u(t,o)))})),c.$$replace=!1}),c}]}function Ie(){var t=!0,e=this;this.debugEnabled=function(e){return $(e)?(t=e,this):t},this.$get=["$window",function(n){function r(t){return t instanceof Error&&(t.stack?t=t.message&&-1===t.stack.indexOf(t.message)?"Error: "+t.message+"\n"+t.stack:t.stack:t.sourceURL&&(t=t.message+"\n"+t.sourceURL+":"+t.line)),t}function i(t){var e=n.console||{},i=e[t]||e.log||p,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var t=[];return o(arguments,function(e){t.push(r(e))}),i.apply(e,t)}:function(t,e){i(t,null==e?"":e)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){t&&n.apply(e,arguments)}}()}}]}function ze(t,e){if("__defineGetter__"===t||"__defineSetter__"===t||"__lookupGetter__"===t||"__lookupSetter__"===t||"__proto__"===t)throw li("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",e);return t}function Me(t,e){if(t+="",!b(t))throw li("iseccst","Cannot convert object to primitive value! Expression: {0}",e);return t}function De(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t.window===t)throw li("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",e);if(t.children&&(t.nodeName||t.prop&&t.attr&&t.find))throw li("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",e);if(t===Object)throw li("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",e)}return t}function je(t,e){if(t){if(t.constructor===t)throw li("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",e);if(t===fi||t===hi||t===di)throw li("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",e)}}function Ne(t){return t.constant}function Pe(t,e,n,r,i){De(t,i),De(e,i);for(var o,a=n.split("."),s=0;a.length>1;s++){o=ze(a.shift(),i);var u=0===s&&e&&e[o]||t[o];u||(u={},t[o]=u),t=De(u,i)}return o=ze(a.shift(),i),De(t[o],i),t[o]=r,r}function Re(t){return"constructor"==t}function Fe(t,e,r,i,o,a,s){ze(t,a),ze(e,a),ze(r,a),ze(i,a),ze(o,a);var u=function(t){return De(t,a)},c=s||Re(t)?u:m,l=s||Re(e)?u:m,f=s||Re(r)?u:m,h=s||Re(i)?u:m,d=s||Re(o)?u:m;return function(a,s){var u=s&&s.hasOwnProperty(t)?s:a;return null==u?u:(u=c(u[t]),e?null==u?n:(u=l(u[e]),r?null==u?n:(u=f(u[r]),i?null==u?n:(u=h(u[i]),o?null==u?n:u=d(u[o]):u):u):u):u)}}function Be(t,e){return function(n,r){return t(n,r,De,e)}}function Le(t,e,r){var i=e.expensiveChecks,a=i?bi:yi,s=a[t];if(s)return s;var u=t.split("."),c=u.length;if(e.csp)s=6>c?Fe(u[0],u[1],u[2],u[3],u[4],r,i):function(t,e){var o,a=0;do o=Fe(u[a++],u[a++],u[a++],u[a++],u[a++],r,i)(t,e),e=n,t=o;while(c>a);return o};else{var l="";i&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var f=i;o(u,function(t,e){ze(t,r);var n=(e?"s":'((l&&l.hasOwnProperty("'+t+'"))?l:s)')+"."+t;(i||Re(t))&&(n="eso("+n+", fe)",f=!0),l+="if(s == null) return undefined;\ns="+n+";\n"}),l+="return s;";var h=new Function("s","l","eso","fe",l);h.toString=v(l),f&&(h=Be(h,r)),s=h}return s.sharedGetter=!0,s.assign=function(e,n,r){return Pe(e,r,t,n,t)},a[t]=s,s}function Ue(t){return x(t.valueOf)?t.valueOf():wi.call(t)}function Ve(){var t=ct(),e=ct();this.$get=["$filter","$sniffer",function(n,r){function i(t){var e=t;return t.sharedGetter&&(e=function(e,n){return t(e,n)},e.literal=t.literal,e.constant=t.constant,e.assign=t.assign),e}function a(t,e){for(var n=0,r=t.length;r>n;n++){var i=t[n];i.constant||(i.inputs?a(i.inputs,e):-1===e.indexOf(i)&&e.push(i))}return e}function s(t,e){return null==t||null==e?t===e:"object"==typeof t&&(t=Ue(t),"object"==typeof t)?!1:t===e||t!==t&&e!==e}function u(t,e,n,r){var i,o=r.$$inputs||(r.$$inputs=a(r.inputs,[]));if(1===o.length){var u=s;return o=o[0],t.$watch(function(t){var e=o(t);return s(e,u)||(i=r(t),u=e&&Ue(e)),i},e,n)}for(var c=[],l=0,f=o.length;f>l;l++)c[l]=s;return t.$watch(function(t){for(var e=!1,n=0,a=o.length;a>n;n++){var u=o[n](t);(e||(e=!s(u,c[n])))&&(c[n]=u&&Ue(u))}return e&&(i=r(t)),i},e,n)}function c(t,e,n,r){var i,o;return i=t.$watch(function(t){return r(t)},function(t,n,r){o=t,x(e)&&e.apply(this,arguments),$(t)&&r.$$postDigest(function(){$(o)&&i()})},n)}function l(t,e,n,r){function i(t){var e=!0;return o(t,function(t){$(t)||(e=!1)}),e}var a,s;return a=t.$watch(function(t){return r(t)},function(t,n,r){s=t,x(e)&&e.call(this,t,n,r),i(t)&&r.$$postDigest(function(){i(s)&&a()})},n)}function f(t,e,n,r){var i;return i=t.$watch(function(t){return r(t)},function(t,n,r){x(e)&&e.apply(this,arguments),i()},n)}function h(t,e){if(!e)return t;var n=t.$$watchDelegate,r=n!==l&&n!==c,i=r?function(n,r){var i=t(n,r);return e(i,n,r)}:function(n,r){var i=t(n,r),o=e(i,n,r);return $(i)?o:i};return t.$$watchDelegate&&t.$$watchDelegate!==u?i.$$watchDelegate=t.$$watchDelegate:e.$stateful||(i.$$watchDelegate=u,i.inputs=[t]),i}var d={csp:r.csp,expensiveChecks:!1},m={csp:r.csp,expensiveChecks:!0};return function(r,o,a){var s,v,g;switch(typeof r){case"string":g=r=r.trim();var $=a?e:t;if(s=$[g],!s){":"===r.charAt(0)&&":"===r.charAt(1)&&(v=!0,r=r.substring(2));var y=a?m:d,b=new gi(y),w=new $i(b,n,y);s=w.parse(r),s.constant?s.$$watchDelegate=f:v?(s=i(s),s.$$watchDelegate=s.literal?l:c):s.inputs&&(s.$$watchDelegate=u),$[g]=s}return h(s,o);case"function":return h(r,o);default:return h(p,o)}}}]}function qe(){this.$get=["$rootScope","$exceptionHandler",function(t,e){return We(function(e){t.$evalAsync(e)},e)}]}function He(){this.$get=["$browser","$exceptionHandler",function(t,e){return We(function(e){t.defer(e)},e)}]}function We(t,e){function i(t,e,n){function r(e){return function(n){i||(i=!0,e.call(t,n))}}var i=!1;return[r(e),r(n)]}function a(){this.$$state={status:0}}function s(t,e){return function(n){e.call(t,n)}}function u(t){var r,i,o;o=t.pending,t.processScheduled=!1,t.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][t.status];try{x(r)?i.resolve(r(t.value)):1===t.status?i.resolve(t.value):i.reject(t.value)}catch(u){i.reject(u),e(u)}}}function c(e){!e.processScheduled&&e.pending&&(e.processScheduled=!0,t(function(){u(e)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(t){var e=new l,n=0,r=dr(t)?[]:{};return o(t,function(t,i){n++,g(t).then(function(t){r.hasOwnProperty(i)||(r[i]=t,--n||e.resolve(r))},function(t){r.hasOwnProperty(i)||e.reject(t)})}),0===n&&e.resolve(r),e.promise}var h=r("$q",TypeError),d=function(){return new l};a.prototype={then:function(t,e,n){var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,t,e,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(t){return this.then(null,t)},"finally":function(t,e){return this.then(function(e){return v(e,!0,t)},function(e){return v(e,!1,t)},e)}},l.prototype={resolve:function(t){this.promise.$$state.status||(t===this.promise?this.$$reject(h("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):this.$$resolve(t))},$$resolve:function(t){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(y(t)||x(t))&&(n=t&&t.then),x(n)?(this.promise.$$state.status=-1,n.call(t,r[0],r[1],this.notify)):(this.promise.$$state.value=t,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),e(o)}},reject:function(t){this.promise.$$state.status||this.$$reject(t)},$$reject:function(t){this.promise.$$state.value=t,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&t(function(){for(var t,i,o=0,a=r.length;a>o;o++){i=r[o][0],t=r[o][3];try{i.notify(x(t)?t(n):n)}catch(s){e(s)}}})}};var p=function(t){var e=new l;return e.reject(t),e.promise},m=function(t,e){var n=new l;return e?n.resolve(t):n.reject(t),n.promise},v=function(t,e,n){var r=null;try{x(n)&&(r=n())}catch(i){return m(i,!1)}return I(r)?r.then(function(){return m(t,e)},function(t){return m(t,!1)}):m(t,e)},g=function(t,e,n,r){var i=new l;return i.resolve(t),i.promise.then(e,n,r)},$=function b(t){function e(t){r.resolve(t)}function n(t){r.reject(t)}if(!x(t))throw h("norslvr","Expected resolverFn, got '{0}'",t);if(!(this instanceof b))return new b(t);var r=new l;return t(e,n),r.promise};return $.defer=d,$.reject=p,$.when=g,$.all=f,$}function Xe(){this.$get=["$window","$timeout",function(t,e){function n(){for(var t=0;t<l.length;t++){var e=l[t];e&&(l[t]=null,e())}c=l.length=0}function r(t){var e=l.length;return c++,l.push(t),0===e&&(u=s(n)),function(){e>=0&&(l[e]=null,e=null,0===--c&&u&&(u(),u=null,l.length=0))}}var i=t.requestAnimationFrame||t.webkitRequestAnimationFrame,o=t.cancelAnimationFrame||t.webkitCancelAnimationFrame||t.webkitCancelRequestAnimationFrame,a=!!i,s=a?function(t){var e=i(t);return function(){o(e)}}:function(t){var n=e(t,16.66,!1);return function(){e.cancel(n)}};r.supported=a;var u,c=0,l=[];return r}]}function Ye(){function t(t){function e(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=c(),this.$$ChildScope=null}return e.prototype=t,e}var e=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,u,l,f){function h(t){t.currentScope.$$destroyed=!0}function d(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings=null}function m(t){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=t}function v(){C.$$phase=null}function $(t,e,n){do t.$$listenerCount[n]-=e,0===t.$$listenerCount[n]&&delete t.$$listenerCount[n];while(t=t.$parent)}function b(){}function w(){for(;A.length;)try{A.shift()()}catch(t){u(t)}s=null}function _(){null===s&&(s=f.defer(function(){C.$apply(w)}))}d.prototype={constructor:d,$new:function(e,n){var r;return n=n||this,e?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=t(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(e||n!=this)&&r.$on("$destroy",h),r},$watch:function(t,e,n){var r=l(t);if(r.$$watchDelegate)return r.$$watchDelegate(this,e,n,r);var i=this,o=i.$$watchers,s={fn:e,last:b,get:r,exp:t,eq:!!n};return a=null,x(e)||(s.fn=p),o||(o=i.$$watchers=[]),o.unshift(s),function(){j(o,s),a=null}},$watchGroup:function(t,e){function n(){u=!1,c?(c=!1,e(i,i,s)):e(i,r,s)}var r=new Array(t.length),i=new Array(t.length),a=[],s=this,u=!1,c=!0;if(!t.length){var l=!0;return s.$evalAsync(function(){l&&e(i,i,s)}),function(){l=!1}}return 1===t.length?this.$watch(t[0],function(t,n,o){i[0]=t,r[0]=n,e(i,t===n?i:r,o)}):(o(t,function(t,e){var o=s.$watch(t,function(t,o){i[e]=t,r[e]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(t,e){function n(t){o=t;var e,n,r,s,u;if(!g(o)){if(y(o))if(i(o)){a!==d&&(a=d,v=a.length=0,f++),e=o.length,v!==e&&(f++,a.length=v=e);for(var c=0;e>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(f++,a[c]=s)}else{a!==p&&(a=p={},v=0,f++),e=0;for(n in o)o.hasOwnProperty(n)&&(e++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(f++,a[n]=s)):(v++,a[n]=s,f++));if(v>e){f++;for(n in a)o.hasOwnProperty(n)||(v--,delete a[n])}}else a!==o&&(a=o,f++);return f;
+}}function r(){if(m?(m=!1,e(o,o,u)):e(o,s,u),c)if(y(o))if(i(o)){s=new Array(o.length);for(var t=0;t<o.length;t++)s[t]=o[t]}else{s={};for(var n in o)Kn.call(o,n)&&(s[n]=o[n])}else s=o}n.$stateful=!0;var o,a,s,u=this,c=e.length>1,f=0,h=l(t,n),d=[],p={},m=!0,v=0;return this.$watch(h,r)},$digest:function(){var t,r,i,o,c,l,h,d,p,g,$=e,y=this,_=[];m("$digest"),f.$$checkUrlChange(),this===C&&null!==s&&(f.defer.cancel(s),w()),a=null;do{for(l=!1,d=y;E.length;){try{g=E.shift(),g.scope.$eval(g.expression,g.locals)}catch(A){u(A)}a=null}t:do{if(o=d.$$watchers)for(c=o.length;c--;)try{if(t=o[c])if((r=t.get(d))===(i=t.last)||(t.eq?R(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(t===a){l=!1;break t}}else l=!0,a=t,t.last=t.eq?N(r,null):r,t.fn(r,i===b?r:i,d),5>$&&(p=4-$,_[p]||(_[p]=[]),_[p].push({msg:x(t.exp)?"fn: "+(t.exp.name||t.exp.toString()):t.exp,newVal:r,oldVal:i}))}catch(A){u(A)}if(!(h=d.$$childHead||d!==y&&d.$$nextSibling))for(;d!==y&&!(h=d.$$nextSibling);)d=d.$parent}while(d=h);if((l||E.length)&&!$--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,_)}while(l||E.length);for(v();k.length;)try{k.shift()()}catch(A){u(A)}},$destroy:function(){if(!this.$$destroyed){var t=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==C){for(var e in this.$$listenerCount)$(this,this.$$listenerCount[e],e);t.$$childHead==this&&(t.$$childHead=this.$$nextSibling),t.$$childTail==this&&(t.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(t,e){return l(t)(this,e)},$evalAsync:function(t,e){C.$$phase||E.length||f.defer(function(){E.length&&C.$digest()}),E.push({scope:this,expression:t,locals:e})},$$postDigest:function(t){k.push(t)},$apply:function(t){try{return m("$apply"),this.$eval(t)}catch(e){u(e)}finally{v();try{C.$digest()}catch(e){throw u(e),e}}},$applyAsync:function(t){function e(){n.$eval(t)}var n=this;t&&A.push(e),_()},$on:function(t,e){var n=this.$$listeners[t];n||(this.$$listeners[t]=n=[]),n.push(e);var r=this;do r.$$listenerCount[t]||(r.$$listenerCount[t]=0),r.$$listenerCount[t]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(e);-1!==r&&(n[r]=null,$(i,1,t))}},$emit:function(t,e){var n,r,i,o=[],a=this,s=!1,c={name:t,targetScope:a,stopPropagation:function(){s=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},l=F([c],arguments,1);do{for(n=a.$$listeners[t]||o,c.currentScope=a,r=0,i=n.length;i>r;r++)if(n[r])try{n[r].apply(null,l)}catch(f){u(f)}else n.splice(r,1),r--,i--;if(s)return c.currentScope=null,c;a=a.$parent}while(a);return c.currentScope=null,c},$broadcast:function(t,e){var n=this,r=n,i=n,o={name:t,targetScope:n,preventDefault:function(){o.defaultPrevented=!0},defaultPrevented:!1};if(!n.$$listenerCount[t])return o;for(var a,s,c,l=F([o],arguments,1);r=i;){for(o.currentScope=r,a=r.$$listeners[t]||[],s=0,c=a.length;c>s;s++)if(a[s])try{a[s].apply(null,l)}catch(f){u(f)}else a.splice(s,1),s--,c--;if(!(i=r.$$listenerCount[t]&&r.$$childHead||r!==n&&r.$$nextSibling))for(;r!==n&&!(i=r.$$nextSibling);)r=r.$parent}return o.currentScope=null,o}};var C=new d,E=C.$$asyncQueue=[],k=C.$$postDigestQueue=[],A=C.$$applyAsyncQueue=[];return C}]}function Ze(){var t=/^\s*(https?|ftp|mailto|tel|file):/,e=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return $(e)?(t=e,this):t},this.imgSrcSanitizationWhitelist=function(t){return $(t)?(e=t,this):e},this.$get=function(){return function(n,r){var i,o=r?e:t;return i=on(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function Ge(t){if("self"===t)return t;if(b(t)){if(t.indexOf("***")>-1)throw _i("iwcard","Illegal sequence *** in string matcher. String: {0}",t);return t=mr(t).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+t+"$")}if(C(t))return new RegExp("^"+t.source+"$");throw _i("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Ke(t){var e=[];return $(t)&&o(t,function(t){e.push(Ge(t))}),e}function Je(){this.SCE_CONTEXTS=xi;var t=["self"],e=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(t=Ke(e)),t},this.resourceUrlBlacklist=function(t){return arguments.length&&(e=Ke(t)),e},this.$get=["$injector",function(r){function i(t,e){return"self"===t?an(e):!!t.exec(e.href)}function o(n){var r,o,a=on(n.toString()),s=!1;for(r=0,o=t.length;o>r;r++)if(i(t[r],a)){s=!0;break}if(s)for(r=0,o=e.length;o>r;r++)if(i(e[r],a)){s=!1;break}return s}function a(t){var e=function(t){this.$$unwrapTrustedValue=function(){return t}};return t&&(e.prototype=new t),e.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},e.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},e}function s(t,e){var r=h.hasOwnProperty(t)?h[t]:null;if(!r)throw _i("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",t,e);if(null===e||e===n||""===e)return e;if("string"!=typeof e)throw _i("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",t);return new r(e)}function u(t){return t instanceof f?t.$$unwrapTrustedValue():t}function c(t,e){if(null===e||e===n||""===e)return e;var r=h.hasOwnProperty(t)?h[t]:null;if(r&&e instanceof r)return e.$$unwrapTrustedValue();if(t===xi.RESOURCE_URL){if(o(e))return e;throw _i("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",e.toString())}if(t===xi.HTML)return l(e);throw _i("unsafe","Attempting to use an unsafe value in a safe context.")}var l=function(t){throw _i("unsafe","Attempting to use an unsafe value in a safe context.")};r.has("$sanitize")&&(l=r.get("$sanitize"));var f=a(),h={};return h[xi.HTML]=a(f),h[xi.CSS]=a(f),h[xi.URL]=a(f),h[xi.JS]=a(f),h[xi.RESOURCE_URL]=a(h[xi.URL]),{trustAs:s,getTrusted:c,valueOf:u}}]}function Qe(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(e,n){if(t&&8>er)throw _i("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=P(xi);r.isEnabled=function(){return t},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,t||(r.trustAs=r.getTrusted=function(t,e){return e},r.valueOf=m),r.parseAs=function(t,n){var i=e(n);return i.literal&&i.constant?i:e(n,function(e){return r.getTrusted(t,e)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(xi,function(t,e){var n=Gn(e);r[mt("parse_as_"+n)]=function(e){return i(t,e)},r[mt("get_trusted_"+n)]=function(e){return a(t,e)},r[mt("trust_as_"+n)]=function(e){return s(t,e)}}),r}]}function tn(){this.$get=["$window","$document",function(t,e){var n,r,i={},o=h((/android (\d+)/.exec(Gn((t.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((t.navigator||{}).userAgent),s=e[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,f=!1;if(c){for(var d in c)if(r=u.exec(d)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),f=!!("animation"in c||n+"Animation"in c),!o||l&&f||(l=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!t.history||!t.history.pushState||4>o||a),hasEvent:function(t){if("input"===t&&11>=er)return!1;if(g(i[t])){var e=s.createElement("div");i[t]="on"+t in e}return i[t]},csp:vr(),vendorPrefix:n,transitions:l,animations:f,android:o}}]}function en(){this.$get=["$templateCache","$http","$q","$sce",function(t,e,n,r){function i(o,a){function s(t){if(!a)throw Kr("tpload","Failed to load template: {0}",o);return n.reject(t)}i.totalPendingRequests++,b(o)&&t.get(o)||(o=r.getTrustedResourceUrl(o));var u=e.defaults&&e.defaults.transformResponse;dr(u)?u=u.filter(function(t){return t!==ie}):u===ie&&(u=null);var c={cache:t,transformResponse:u};return e.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return t.data},s)}return i.totalPendingRequests=0,i}]}function nn(){this.$get=["$rootScope","$browser","$location",function(t,e,n){var r={};return r.findBindings=function(t,e,n){var r=t.getElementsByClassName("ng-binding"),i=[];return o(r,function(t){var r=lr.element(t).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+mr(e)+"(\\s|\\||$)");o.test(r)&&i.push(t)}else-1!=r.indexOf(e)&&i.push(t)})}),i},r.findModels=function(t,e,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+e+'"]',s=t.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(e){e!==n.url()&&(n.url(e),t.$digest())},r.whenStable=function(t){e.notifyWhenNoOutstandingRequests(t)},r}]}function rn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(t,e,n,r,i){function o(o,s,u){var c,l=$(u)&&!u,f=(l?r:n).defer(),h=f.promise;return c=e.defer(function(){try{f.resolve(o())}catch(e){f.reject(e),i(e)}finally{delete a[h.$$timeoutId]}l||t.$apply()},s),h.$$timeoutId=c,a[c]=f,h}var a={};return o.cancel=function(t){return t&&t.$$timeoutId in a?(a[t.$$timeoutId].reject("canceled"),delete a[t.$$timeoutId],e.defer.cancel(t.$$timeoutId)):!1},o}]}function on(t){var e=t;return er&&(Ci.setAttribute("href",e),e=Ci.href),Ci.setAttribute("href",e),{href:Ci.href,protocol:Ci.protocol?Ci.protocol.replace(/:$/,""):"",host:Ci.host,search:Ci.search?Ci.search.replace(/^\?/,""):"",hash:Ci.hash?Ci.hash.replace(/^#/,""):"",hostname:Ci.hostname,port:Ci.port,pathname:"/"===Ci.pathname.charAt(0)?Ci.pathname:"/"+Ci.pathname}}function an(t){var e=b(t)?on(t):t;return e.protocol===Ei.protocol&&e.host===Ei.host}function sn(){this.$get=v(t)}function un(t){function e(r,i){if(y(r)){var a={};return o(r,function(t,n){a[n]=e(n,t)}),a}return t.factory(r+n,i)}var n="Filter";this.register=e,this.$get=["$injector",function(t){return function(e){return t.get(e+n)}}],e("currency",hn),e("date",En),e("filter",cn),e("json",kn),e("limitTo",An),e("lowercase",Oi),e("number",dn),e("orderBy",Sn),e("uppercase",Ii)}function cn(){return function(t,e,n){if(!dr(t))return t;var r,i,o=null!==e?typeof e:"null";switch(o){case"function":r=e;break;case"boolean":case"null":case"number":case"string":i=!0;case"object":r=ln(e,n,i);break;default:return t}return t.filter(r)}}function ln(t,e,n){var r,i=y(t)&&"$"in t;return e===!0?e=R:x(e)||(e=function(t,e){return g(t)?!1:null===t||null===e?t===e:y(t)||y(e)?!1:(t=Gn(""+t),e=Gn(""+e),-1!==t.indexOf(e))}),r=function(r){return i&&!y(r)?fn(r,t.$,e,!1):fn(r,t,e,n)}}function fn(t,e,n,r,i){var o=null!==t?typeof t:"null",a=null!==e?typeof e:"null";if("string"===a&&"!"===e.charAt(0))return!fn(t,e.substring(1),n,r);if(dr(t))return t.some(function(t){return fn(t,e,n,r)});switch(o){case"object":var s;if(r){for(s in t)if("$"!==s.charAt(0)&&fn(t[s],e,n,!0))return!0;return i?!1:fn(t,e,n,!1)}if("object"===a){for(s in e){var u=e[s];if(!x(u)&&!g(u)){var c="$"===s,l=c?t:t[s];if(!fn(l,u,n,c,c))return!1}}return!0}return n(t,e);case"function":return!1;default:return n(t,e)}}function hn(t){var e=t.NUMBER_FORMATS;return function(t,n,r){return g(n)&&(n=e.CURRENCY_SYM),g(r)&&(r=e.PATTERNS[1].maxFrac),null==t?t:pn(t,e.PATTERNS[1],e.GROUP_SEP,e.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function dn(t){var e=t.NUMBER_FORMATS;return function(t,n){return null==t?t:pn(t,e.PATTERNS[0],e.GROUP_SEP,e.DECIMAL_SEP,n)}}function pn(t,e,n,r,i){if(!isFinite(t)||y(t))return"";var o=0>t;t=Math.abs(t);var a=t+"",s="",u=[],c=!1;if(-1!==a.indexOf("e")){var l=a.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>i+1?t=0:(s=a,c=!0)}if(c)i>0&&1>t&&(s=t.toFixed(i),t=parseFloat(s));else{var f=(a.split(ki)[1]||"").length;g(i)&&(i=Math.min(Math.max(e.minFrac,f),e.maxFrac)),t=+(Math.round(+(t.toString()+"e"+i)).toString()+"e"+-i);var h=(""+t).split(ki),d=h[0];h=h[1]||"";var p,m=0,v=e.lgSize,$=e.gSize;if(d.length>=v+$)for(m=d.length-v,p=0;m>p;p++)(m-p)%$===0&&0!==p&&(s+=n),s+=d.charAt(p);for(p=m;p<d.length;p++)(d.length-p)%v===0&&0!==p&&(s+=n),s+=d.charAt(p);for(;h.length<i;)h+="0";i&&"0"!==i&&(s+=r+h.substr(0,i))}return 0===t&&(o=!1),u.push(o?e.negPre:e.posPre,s,o?e.negSuf:e.posSuf),u.join("")}function mn(t,e,n){var r="";for(0>t&&(r="-",t=-t),t=""+t;t.length<e;)t="0"+t;return n&&(t=t.substr(t.length-e)),r+t}function vn(t,e,n,r){return n=n||0,function(i){var o=i["get"+t]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),mn(o,e,r)}}function gn(t,e){return function(n,r){var i=n["get"+t](),o=Jn(e?"SHORT"+t:t);return r[o][i]}}function $n(t){var e=-1*t.getTimezoneOffset(),n=e>=0?"+":"";return n+=mn(Math[e>0?"floor":"ceil"](e/60),2)+mn(Math.abs(e%60),2)}function yn(t){var e=new Date(t,0,1).getDay();return new Date(t,0,(4>=e?5:12)-e)}function bn(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))}function wn(t){return function(e){var n=yn(e.getFullYear()),r=bn(e),i=+r-+n,o=1+Math.round(i/6048e5);return mn(o,t)}}function _n(t,e){return t.getHours()<12?e.AMPMS[0]:e.AMPMS[1]}function xn(t,e){return t.getFullYear()<=0?e.ERAS[0]:e.ERAS[1]}function Cn(t,e){return t.getFullYear()<=0?e.ERANAMES[0]:e.ERANAMES[1]}function En(t){function e(t){var e;if(e=t.match(n)){var r=new Date(0),i=0,o=0,a=e[8]?r.setUTCFullYear:r.setFullYear,s=e[8]?r.setUTCHours:r.setHours;e[9]&&(i=h(e[9]+e[10]),o=h(e[9]+e[11])),a.call(r,h(e[1]),h(e[2])-1,h(e[3]));var u=h(e[4]||0)-i,c=h(e[5]||0)-o,l=h(e[6]||0),f=Math.round(1e3*parseFloat("0."+(e[7]||0)));return s.call(r,u,c,l,f),r}return t}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=t.DATETIME_FORMATS[r]||r,b(n)&&(n=Ti.test(n)?h(n):e(n)),w(n)&&(n=new Date(n)),!_(n))return n;for(;r;)s=Si.exec(r),s?(c=F(c,s,1),r=c.pop()):(c.push(r),r=null);return i&&"UTC"===i&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),o(c,function(e){a=Ai[e],u+=a?a(n,t.DATETIME_FORMATS):e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function kn(){return function(t,e){return g(e)&&(e=2),V(t,e)}}function An(){return function(t,e){return w(t)&&(t=t.toString()),dr(t)||b(t)?(e=Math.abs(Number(e))===1/0?Number(e):h(e),e?e>0?t.slice(0,e):t.slice(e):b(t)?"":[]):t}}function Sn(t){return function(e,n,r){function o(t,e){for(var r=0;r<n.length;r++){var i=n[r](t,e);if(0!==i)return i}return 0}function a(t,e){return e?function(e,n){return t(n,e)}:t}function s(t){switch(typeof t){case"number":case"boolean":case"string":return!0;default:return!1}}function u(t){return null===t?"null":"function"==typeof t.valueOf&&(t=t.valueOf(),s(t))?t:"function"==typeof t.toString&&(t=t.toString(),s(t))?t:""}function c(t,e){var n=typeof t,r=typeof e;return n===r&&"object"===n&&(t=u(t),e=u(e)),n===r?("string"===n&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e?0:e>t?-1:1):r>n?-1:1}return i(e)?(n=dr(n)?n:[n],0===n.length&&(n=["+"]),n=n.map(function(e){var n=!1,r=e||m;if(b(e)){if(("+"==e.charAt(0)||"-"==e.charAt(0))&&(n="-"==e.charAt(0),e=e.substring(1)),""===e)return a(c,n);if(r=t(e),r.constant){var i=r();return a(function(t,e){return c(t[i],e[i])},n)}}return a(function(t,e){return c(r(t),r(e))},n)}),or.call(e).sort(a(o,r))):e}}function Tn(t){return x(t)&&(t={link:t}),t.restrict=t.restrict||"AC",v(t)}function On(t,e){t.$name=e}function In(t,e,r,i,a){var s=this,u=[],c=s.$$parentForm=t.parent().controller("form")||Di;s.$error={},s.$$success={},s.$pending=n,s.$name=a(e.name||e.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,c.$addControl(s),s.$rollbackViewValue=function(){o(u,function(t){t.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(t){t.$commitViewValue()})},s.$addControl=function(t){at(t.$name,"input"),u.push(t),t.$name&&(s[t.$name]=t)},s.$$renameControl=function(t,e){var n=t.$name;s[n]===t&&delete s[n],s[e]=t,t.$name=e},s.$removeControl=function(t){t.$name&&s[t.$name]===t&&delete s[t.$name],o(s.$pending,function(e,n){s.$setValidity(n,null,t)}),o(s.$error,function(e,n){s.$setValidity(n,null,t)}),o(s.$$success,function(e,n){s.$setValidity(n,null,t)}),j(u,t)},Wn({ctrl:this,$element:t,set:function(t,e,n){var r=t[e];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else t[e]=[n]},unset:function(t,e,n){var r=t[e];r&&(j(r,n),0===r.length&&delete t[e])},parentForm:c,$animate:i}),s.$setDirty=function(){i.removeClass(t,go),i.addClass(t,$o),s.$dirty=!0,s.$pristine=!1,c.$setDirty()},s.$setPristine=function(){i.setClass(t,go,$o+" "+ji),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(t){t.$setPristine()})},s.$setUntouched=function(){o(u,function(t){t.$setUntouched()})},s.$setSubmitted=function(){i.addClass(t,ji),s.$submitted=!0,c.$setSubmitted()}}function zn(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function Mn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r)}function Dn(t,e,n,r,i,o){var a=Gn(e[0].type);if(!i.android){var s=!1;e.on("compositionstart",function(t){s=!0}),e.on("compositionend",function(){s=!1,u()})}var u=function(t){if(c&&(o.defer.cancel(c),c=null),!s){var i=e.val(),u=t&&t.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=pr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))e.on("input",u);else{var c,l=function(t,e,n){c||(c=o.defer(function(){c=null,e&&e.value===n||u(t)}))};e.on("keydown",function(t){var e=t.keyCode;91===e||e>15&&19>e||e>=37&&40>=e||l(t,this,this.value)}),i.hasEvent("paste")&&e.on("paste cut",l)}e.on("change",u),r.$render=function(){e.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function jn(t,e){if(_(t))return t;if(b(t)){Hi.lastIndex=0;var n=Hi.exec(t);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=yn(r),l=7*(i-1);return e&&(o=e.getHours(),a=e.getMinutes(),s=e.getSeconds(),u=e.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return NaN}function Nn(t,e){return function(n,r){var i,a;if(_(n))return n;if(b(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Fi.test(n))return new Date(n);if(t.lastIndex=0,i=t.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(t,n){n<e.length&&(a[e[n]]=+t)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function Pn(t,e,r,i){return function(o,a,s,u,c,l,f){function h(t){return t&&!(t.getTime&&t.getTime()!==t.getTime())}function d(t){return $(t)?_(t)?t:r(t):n}Rn(o,a,s,u),Dn(o,a,s,u,c,l);var p,m=u&&u.$options&&u.$options.timezone;if(u.$$parserName=t,u.$parsers.push(function(t){if(u.$isEmpty(t))return null;if(e.test(t)){var i=r(t,p);return"UTC"===m&&i.setMinutes(i.getMinutes()-i.getTimezoneOffset()),i}return n}),u.$formatters.push(function(t){if(t&&!_(t))throw _o("datefmt","Expected `{0}` to be a date",t);if(h(t)){if(p=t,p&&"UTC"===m){var e=6e4*p.getTimezoneOffset();p=new Date(p.getTime()+e)}return f("date")(t,i,m)}return p=null,""}),$(s.min)||s.ngMin){var v;u.$validators.min=function(t){return!h(t)||g(v)||r(t)>=v},s.$observe("min",function(t){v=d(t),u.$validate()})}if($(s.max)||s.ngMax){var y;u.$validators.max=function(t){return!h(t)||g(y)||r(t)<=y},s.$observe("max",function(t){y=d(t),u.$validate()})}}}function Rn(t,e,r,i){var o=e[0],a=i.$$hasNativeValidators=y(o.validity);a&&i.$parsers.push(function(t){var r=e.prop(Zn)||{};return r.badInput&&!r.typeMismatch?n:t})}function Fn(t,e,r,i,o,a){if(Rn(t,e,r,i),Dn(t,e,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(t){return i.$isEmpty(t)?null:Ui.test(t)?parseFloat(t):n}),i.$formatters.push(function(t){if(!i.$isEmpty(t)){if(!w(t))throw _o("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}),$(r.min)||r.ngMin){var s;i.$validators.min=function(t){return i.$isEmpty(t)||g(s)||t>=s},r.$observe("min",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),s=w(t)&&!isNaN(t)?t:n,i.$validate()})}if($(r.max)||r.ngMax){var u;i.$validators.max=function(t){return i.$isEmpty(t)||g(u)||u>=t},r.$observe("max",function(t){$(t)&&!w(t)&&(t=parseFloat(t,10)),u=w(t)&&!isNaN(t)?t:n,i.$validate()})}}function Bn(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="url",r.$validators.url=function(t,e){var n=t||e;return r.$isEmpty(n)||Bi.test(n)}}function Ln(t,e,n,r,i,o){Dn(t,e,n,r,i,o),zn(r),r.$$parserName="email",r.$validators.email=function(t,e){var n=t||e;return r.$isEmpty(n)||Li.test(n)}}function Un(t,e,n,r){g(n.name)&&e.attr("name",c());var i=function(t){e[0].checked&&r.$setViewValue(n.value,t&&t.type)};e.on("click",i),r.$render=function(){var t=n.value;e[0].checked=t==r.$viewValue},n.$observe("value",r.$render)}function Vn(t,e,n,r,i){var o;if($(r)){if(o=t(r),!o.constant)throw _o("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(e)}return i}function qn(t,e,n,r,i,o,a,s){var u=Vn(s,t,"ngTrueValue",n.ngTrueValue,!0),c=Vn(s,t,"ngFalseValue",n.ngFalseValue,!1),l=function(t){r.$setViewValue(e[0].checked,t&&t.type)};e.on("click",l),r.$render=function(){e[0].checked=r.$viewValue},r.$isEmpty=function(t){return t===!1},r.$formatters.push(function(t){return R(t,u)}),r.$parsers.push(function(t){return t?u:c})}function Hn(t,e){return t="ngClass"+t,["$animate",function(n){function r(t,e){var n=[];t:for(var r=0;r<t.length;r++){for(var i=t[r],o=0;o<e.length;o++)if(i==e[o])continue t;n.push(i)}return n}function i(t){if(dr(t))return t;if(b(t))return t.split(" ");if(y(t)){var e=[];return o(t,function(t,n){t&&(e=e.concat(n.split(" ")))}),e}return t}return{restrict:"AC",link:function(a,s,u){function c(t){var e=f(t,1);u.$addClass(e)}function l(t){var e=f(t,-1);u.$removeClass(e)}function f(t,e){var n=s.data("$classCounts")||{},r=[];return o(t,function(t){(e>0||n[t])&&(n[t]=(n[t]||0)+e,n[t]===+(e>0)&&r.push(t))}),s.data("$classCounts",n),r.join(" ")}function h(t,e){var i=r(e,t),o=r(t,e);i=f(i,1),o=f(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(t){if(e===!0||a.$index%2===e){var n=i(t||[]);if(p){if(!R(t,p)){var r=i(p);h(r,n)}}else c(n)}p=P(t)}var p;a.$watch(u[t],d,!0),u.$observe("class",function(e){d(a.$eval(u[t]))}),"ngClass"!==t&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[t]));o===e?c(s):l(s)}})}}}]}function Wn(t){function e(t,e,u){e===n?r("$pending",t,u):i("$pending",t,u),O(e)?e?(f(s.$error,t,u),l(s.$$success,t,u)):(l(s.$error,t,u),f(s.$$success,t,u)):(f(s.$error,t,u),f(s.$$success,t,u)),s.$pending?(o(wo,!0),s.$valid=s.$invalid=n,a("",null)):(o(wo,!1),s.$valid=Xn(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[t]?n:s.$error[t]?!1:s.$$success[t]?!0:null,a(t,c),h.$setValidity(t,c,s)}function r(t,e,n){s[t]||(s[t]={}),l(s[t],e,n)}function i(t,e,r){s[t]&&f(s[t],e,r),Xn(s[t])&&(s[t]=n)}function o(t,e){e&&!c[t]?(d.addClass(u,t),c[t]=!0):!e&&c[t]&&(d.removeClass(u,t),c[t]=!1)}function a(t,e){t=t?"-"+nt(t,"-"):"",o(mo+t,e===!0),o(vo+t,e===!1)}var s=t.ctrl,u=t.$element,c={},l=t.set,f=t.unset,h=t.parentForm,d=t.$animate;c[vo]=!(c[mo]=u.hasClass(mo)),s.$setValidity=e}function Xn(t){if(t)for(var e in t)return!1;return!0}var Yn=/^\/(.+)\/([a-z]*)$/,Zn="validity",Gn=function(t){return b(t)?t.toLowerCase():t},Kn=Object.prototype.hasOwnProperty,Jn=function(t){return b(t)?t.toUpperCase():t},Qn=function(t){return b(t)?t.replace(/[A-Z]/g,function(t){return String.fromCharCode(32|t.charCodeAt(0))}):t},tr=function(t){return b(t)?t.replace(/[a-z]/g,function(t){return String.fromCharCode(-33&t.charCodeAt(0))}):t};"i"!=="I".toLowerCase()&&(Gn=Qn,Jn=tr);var er,nr,rr,ir,or=[].slice,ar=[].splice,sr=[].push,ur=Object.prototype.toString,cr=r("ng"),lr=t.angular||(t.angular={}),fr=0;er=e.documentMode,p.$inject=[],m.$inject=[];var hr,dr=Array.isArray,pr=function(t){return b(t)?t.trim():t},mr=function(t){return t.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},vr=function(){if($(vr.isActive_))return vr.isActive_;var t=!(!e.querySelector("[ng-csp]")&&!e.querySelector("[data-ng-csp]"));if(!t)try{new Function("")}catch(n){t=!0}return vr.isActive_=t},gr=["ng-","data-ng-","ng:","x-ng-"],$r=/[A-Z]/g,yr=!1,br=1,wr=2,_r=3,xr=8,Cr=9,Er=11,kr={full:"1.3.20",major:1,minor:3,dot:20,codeName:"shallow-translucence"};bt.expando="ng339";var Ar=bt.cache={},Sr=1,Tr=function(t,e,n){t.addEventListener(e,n,!1)},Or=function(t,e,n){t.removeEventListener(e,n,!1)};bt._data=function(t){return this.cache[t[this.expando]]||{}};var Ir=/([\:\-\_]+(.))/g,zr=/^moz([A-Z])/,Mr={mouseleave:"mouseout",mouseenter:"mouseover"},Dr=r("jqLite"),jr=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Nr=/<|&#?\w+;/,Pr=/<([\w:]+)/,Rr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Fr.optgroup=Fr.option,Fr.tbody=Fr.tfoot=Fr.colgroup=Fr.caption=Fr.thead,Fr.th=Fr.td;var Br=bt.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===e.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),bt(t).on("load",r))},toString:function(){var t=[];return o(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(t){return nr(t>=0?this[t]:this[this.length+t])},length:0,push:sr,sort:[].sort,splice:[].splice},Lr={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(t){Lr[Gn(t)]=t});var Ur={};o("input,select,option,textarea,button,form,details".split(","),function(t){Ur[t]=!0});var Vr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:kt,removeData:Ct},function(t,e){bt[e]=t}),o({data:kt,inheritedData:zt,scope:function(t){return nr.data(t,"$scope")||zt(t.parentNode||t,["$isolateScope","$scope"])},isolateScope:function(t){return nr.data(t,"$isolateScope")||nr.data(t,"$isolateScopeNoTemplate")},controller:It,injector:function(t){return zt(t,"$injector")},removeAttr:function(t,e){t.removeAttribute(e)},hasClass:At,css:function(t,e,n){return e=mt(e),$(n)?void(t.style[e]=n):t.style[e]},attr:function(t,e,r){var i=t.nodeType;if(i!==_r&&i!==wr&&i!==xr){var o=Gn(e);if(Lr[o]){if(!$(r))return t[e]||(t.attributes.getNamedItem(e)||p).specified?o:n;r?(t[e]=!0,t.setAttribute(e,o)):(t[e]=!1,t.removeAttribute(o))}else if($(r))t.setAttribute(e,r);else if(t.getAttribute){var a=t.getAttribute(e,2);return null===a?n:a}}},prop:function(t,e,n){return $(n)?void(t[e]=n):t[e]},text:function(){function t(t,e){if(g(e)){var n=t.nodeType;return n===br||n===_r?t.textContent:""}t.textContent=e}return t.$dv="",t}(),val:function(t,e){if(g(e)){if(t.multiple&&"select"===D(t)){var n=[];return o(t.options,function(t){t.selected&&n.push(t.value||t.text)}),0===n.length?null:n}return t.value}t.value=e},html:function(t,e){return g(e)?t.innerHTML:(_t(t,!0),void(t.innerHTML=e))},empty:Mt},function(t,e){bt.prototype[e]=function(e,r){var i,o,a=this.length;if(t!==Mt&&(2==t.length&&t!==At&&t!==It?e:r)===n){if(y(e)){for(i=0;a>i;i++)if(t===kt)t(this[i],e);else for(o in e)t(this[i],o,e[o]);return this}for(var s=t.$dv,u=s===n?Math.min(a,1):a,c=0;u>c;c++){var l=t(this[c],e,r);s=s?s+l:l}return s}for(i=0;a>i;i++)t(this[i],e,r);return this}}),o({removeData:Ct,on:function Zo(t,e,n,r){if($(r))throw Dr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(gt(t)){var i=Et(t,!0),o=i.events,a=i.handle;a||(a=i.handle=Rt(t,o));for(var s=e.indexOf(" ")>=0?e.split(" "):[e],u=s.length;u--;){e=s[u];var c=o[e];c||(o[e]=[],"mouseenter"===e||"mouseleave"===e?Zo(t,Mr[e],function(t){var n=this,r=t.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(t,e)}):"$destroy"!==e&&Tr(t,e,a),c=o[e]),c.push(n)}}},off:xt,one:function(t,e,n){t=nr(t),t.on(e,function r(){t.off(e,n),t.off(e,r)}),t.on(e,n)},replaceWith:function(t,e){var n,r=t.parentNode;_t(t),o(new bt(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(t){var e=[];return o(t.childNodes,function(t){t.nodeType===br&&e.push(t)}),e},contents:function(t){return t.contentDocument||t.childNodes||[]},append:function(t,e){var n=t.nodeType;if(n===br||n===Er){e=new bt(e);for(var r=0,i=e.length;i>r;r++){var o=e[r];t.appendChild(o)}}},prepend:function(t,e){if(t.nodeType===br){var n=t.firstChild;o(new bt(e),function(e){t.insertBefore(e,n)})}},wrap:function(t,e){e=nr(e).eq(0).clone()[0];var n=t.parentNode;n&&n.replaceChild(e,t),e.appendChild(t)},remove:Dt,detach:function(t){Dt(t,!0)},after:function(t,e){var n=t,r=t.parentNode;e=new bt(e);for(var i=0,o=e.length;o>i;i++){var a=e[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Tt,removeClass:St,toggleClass:function(t,e,n){e&&o(e.split(" "),function(e){var r=n;g(r)&&(r=!At(t,e)),(r?Tt:St)(t,e)})},parent:function(t){var e=t.parentNode;return e&&e.nodeType!==Er?e:null},next:function(t){return t.nextElementSibling},find:function(t,e){return t.getElementsByTagName?t.getElementsByTagName(e):[]},clone:wt,triggerHandler:function(t,e,n){var r,i,a,s=e.type||e,u=Et(t),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:s,target:t},e.type&&(r=f(r,e)),i=P(l),a=n?[r].concat(n):[r],o(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,a)}))}},function(t,e){bt.prototype[e]=function(e,n,r){for(var i,o=0,a=this.length;a>o;o++)g(i)?(i=t(this[o],e,n,r),$(i)&&(i=nr(i))):Ot(i,t(this[o],e,n,r));return $(i)?i:this},bt.prototype.bind=bt.prototype.on,bt.prototype.unbind=bt.prototype.off}),Lt.prototype={put:function(t,e){this[Bt(t,this.nextUid)]=e},get:function(t){return this[Bt(t,this.nextUid)]},remove:function(t){var e=this[t=Bt(t,this.nextUid)];return delete this[t],e}};var qr=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Hr=/,/,Wr=/^\s*(_?)(\S+?)\1\s*$/,Xr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yr=r("$injector");qt.$$annotate=Vt;var Zr=r("$animate"),Gr=["$provide",function(t){this.$$selectors={},this.register=function(e,n){var r=e+"-animation";if(e&&"."!=e.charAt(0))throw Zr("notcsel","Expecting class selector starting with '.' got '{0}'.",e);this.$$selectors[e.substr(1)]=r,t.factory(r,n)},this.classNameFilter=function(t){return 1===arguments.length&&(this.$$classNameFilter=t instanceof RegExp?t:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback","$rootScope",function(t,e,n){function r(e){var r,i=t.defer();return i.promise.$$cancelFn=function(){r&&r()},n.$$postDigest(function(){r=e(function(){i.resolve()})}),i.promise}function i(t,e){var n=[],r=[],i=ct();return o((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0}),o(e,function(t,e){var o=i[e];t===!1&&o?r.push(e):t!==!0||o||n.push(e)}),n.length+r.length>0&&[n.length?n:null,r.length?r:null]}function a(t,e,n){for(var r=0,i=e.length;i>r;++r){var o=e[r];t[o]=n}}function s(){return c||(c=t.defer(),e(function(){c.resolve(),c=null})),c.promise}function u(t,e){if(lr.isObject(e)){var n=f(e.from||{},e.to||{});t.css(n)}}var c;return{animate:function(t,e,n){return u(t,{from:e,to:n}),s()},enter:function(t,e,n,r){return u(t,r),n?n.after(t):e.prepend(t),s()},leave:function(t,e){return u(t,e),t.remove(),s()},move:function(t,e,n,r){return this.enter(t,e,n,r)},addClass:function(t,e,n){return this.setClass(t,e,[],n)},$$addClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){Tt(t,e)}),u(t,n),s()},removeClass:function(t,e,n){return this.setClass(t,[],e,n);
+},$$removeClassImmediately:function(t,e,n){return t=nr(t),e=b(e)?e:dr(e)?e.join(" "):"",o(t,function(t){St(t,e)}),u(t,n),s()},setClass:function(t,e,n,o){var s=this,u="$$animateClasses",c=!1;t=nr(t);var l=t.data(u);l?o&&l.options&&(l.options=lr.extend(l.options||{},o)):(l={classes:{},options:o},c=!0);var f=l.classes;return e=dr(e)?e:e.split(" "),n=dr(n)?n:n.split(" "),a(f,e,!0),a(f,n,!1),c&&(l.promise=r(function(e){var n=t.data(u);if(t.removeData(u),n){var r=i(t,n.classes);r&&s.$$setClassImmediately(t,r[0],r[1],n.options)}e()}),t.data(u,l)),l.promise},$$setClassImmediately:function(t,e,n,r){return e&&this.$$addClassImmediately(t,e),n&&this.$$removeClassImmediately(t,n),u(t,r),s()},enabled:p,cancel:p}}]}],Kr=r("$compile");Kt.$inject=["$provide","$$sanitizeUriProvider"];var Jr=/^((?:x|data)[\:\-_])/i,Qr=r("$controller"),ti="application/json",ei={"Content-Type":ti+";charset=utf-8"},ni=/^\[|^\{(?!\{)/,ri={"[":/]$/,"{":/}$/},ii=/^\)\]\}',?\n/,oi=r("$interpolate"),ai=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,si={http:80,https:443,ftp:21},ui=r("$location"),ci={$$html5:!1,$$replace:!1,absUrl:Se("$$absUrl"),url:function(t){if(g(t))return this.$$url;var e=ai.exec(t);return(e[1]||""===t)&&this.path(decodeURIComponent(e[1])),(e[2]||e[1]||""===t)&&this.search(e[3]||""),this.hash(e[5]||""),this},protocol:Se("$$protocol"),host:Se("$$host"),port:Se("$$port"),path:Te("$$path",function(t){return t=null!==t?t.toString():"","/"==t.charAt(0)?t:"/"+t}),search:function(t,e){switch(arguments.length){case 0:return this.$$search;case 1:if(b(t)||w(t))t=t.toString(),this.$$search=X(t);else{if(!y(t))throw ui("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");t=N(t,{}),o(t,function(e,n){null==e&&delete t[n]}),this.$$search=t}break;default:g(e)||null===e?delete this.$$search[t]:this.$$search[t]=e}return this.$$compose(),this},hash:Te("$$hash",function(t){return null!==t?t.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ae,ke,Ee],function(t){t.prototype=Object.create(ci),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==Ee||!this.$$html5)throw ui("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=g(e)?null:e,this}});var li=r("$parse"),fi=Function.prototype.call,hi=Function.prototype.apply,di=Function.prototype.bind,pi=ct();o({"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:function(){}},function(t,e){t.constant=t.literal=t.sharedGetter=!0,pi[e]=t}),pi["this"]=function(t){return t},pi["this"].sharedGetter=!0;var mi=f(ct(),{"+":function(t,e,r,i){return r=r(t,e),i=i(t,e),$(r)?$(i)?r+i:r:$(i)?i:n},"-":function(t,e,n,r){return n=n(t,e),r=r(t,e),($(n)?n:0)-($(r)?r:0)},"*":function(t,e,n,r){return n(t,e)*r(t,e)},"/":function(t,e,n,r){return n(t,e)/r(t,e)},"%":function(t,e,n,r){return n(t,e)%r(t,e)},"===":function(t,e,n,r){return n(t,e)===r(t,e)},"!==":function(t,e,n,r){return n(t,e)!==r(t,e)},"==":function(t,e,n,r){return n(t,e)==r(t,e)},"!=":function(t,e,n,r){return n(t,e)!=r(t,e)},"<":function(t,e,n,r){return n(t,e)<r(t,e)},">":function(t,e,n,r){return n(t,e)>r(t,e)},"<=":function(t,e,n,r){return n(t,e)<=r(t,e)},">=":function(t,e,n,r){return n(t,e)>=r(t,e)},"&&":function(t,e,n,r){return n(t,e)&&r(t,e)},"||":function(t,e,n,r){return n(t,e)||r(t,e)},"!":function(t,e,n){return!n(t,e)},"=":!0,"|":!0}),vi={n:"\n",f:"\f",r:"\r",t:" ",v:"\x0B","'":"'",'"':'"'},gi=function(t){this.options=t};gi.prototype={constructor:gi,lex:function(t){for(this.text=t,this.index=0,this.tokens=[];this.index<this.text.length;){var e=this.text.charAt(this.index);if('"'===e||"'"===e)this.readString(e);else if(this.isNumber(e)||"."===e&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(e))this.readIdent();else if(this.is(e,"(){}[].,;:?"))this.tokens.push({index:this.index,text:e}),this.index++;else if(this.isWhitespace(e))this.index++;else{var n=e+this.peek(),r=n+this.peek(2),i=mi[e],o=mi[n],a=mi[r];if(i||o||a){var s=a?r:o?n:e;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(t,e){return-1!==e.indexOf(t)},peek:function(t){var e=t||1;return this.index+e<this.text.length?this.text.charAt(this.index+e):!1},isNumber:function(t){return t>="0"&&"9">=t&&"string"==typeof t},isWhitespace:function(t){return" "===t||"\r"===t||" "===t||"\n"===t||"\x0B"===t||" "===t},isIdent:function(t){return t>="a"&&"z">=t||t>="A"&&"Z">=t||"_"===t||"$"===t},isExpOperator:function(t){return"-"===t||"+"===t||this.isNumber(t)},throwError:function(t,e,n){n=n||this.index;var r=$(e)?"s "+e+"-"+this.index+" ["+this.text.substring(e,n)+"]":" "+n;throw li("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",t,r,this.text)},readNumber:function(){for(var t="",e=this.index;this.index<this.text.length;){var n=Gn(this.text.charAt(this.index));if("."==n||this.isNumber(n))t+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))t+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==t.charAt(t.length-1))t+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=t.charAt(t.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:e,text:t,constant:!0,value:Number(t)})},readIdent:function(){for(var t=this.index;this.index<this.text.length;){var e=this.text.charAt(this.index);if(!this.isIdent(e)&&!this.isNumber(e))break;this.index++}this.tokens.push({index:t,text:this.text.slice(t,this.index),identifier:!0})},readString:function(t){var e=this.index;this.index++;for(var n="",r=t,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=vi[o];n+=s||o}i=!1}else if("\\"===o)i=!0;else{if(o===t)return this.index++,void this.tokens.push({index:e,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",e)}};var $i=function(t,e,n){this.lexer=t,this.$filter=e,this.options=n};$i.ZERO=f(function(){return 0},{sharedGetter:!0,constant:!0}),$i.prototype={constructor:$i,parse:function(t){this.text=t,this.tokens=this.lexer.lex(t);var e=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),e.literal=!!e.literal,e.constant=!!e.constant,e},primary:function(){var t;this.expect("(")?(t=this.filterChain(),this.consume(")")):this.expect("[")?t=this.arrayDeclaration():this.expect("{")?t=this.object():this.peek().identifier&&this.peek().text in pi?t=pi[this.consume().text]:this.peek().identifier?t=this.identifier():this.peek().constant?t=this.constant():this.throwError("not a primary expression",this.peek());for(var e,n;e=this.expect("(","[",".");)"("===e.text?(t=this.functionCall(t,n),n=null):"["===e.text?(n=t,t=this.objectIndex(t)):"."===e.text?(n=t,t=this.fieldAccess(t)):this.throwError("IMPOSSIBLE");return t},throwError:function(t,e){throw li("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",e.text,t,e.index+1,this.text,this.text.substring(e.index))},peekToken:function(){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(t,e,n,r){return this.peekAhead(0,t,e,n,r)},peekAhead:function(t,e,n,r,i){if(this.tokens.length>t){var o=this.tokens[t],a=o.text;if(a===e||a===n||a===r||a===i||!e&&!n&&!r&&!i)return o}return!1},expect:function(t,e,n,r){var i=this.peek(t,e,n,r);return i?(this.tokens.shift(),i):!1},consume:function(t){if(0===this.tokens.length)throw li("ueoe","Unexpected end of expression: {0}",this.text);var e=this.expect(t);return e||this.throwError("is unexpected, expecting ["+t+"]",this.peek()),e},unaryFn:function(t,e){var n=mi[t];return f(function(t,r){return n(t,r,e)},{constant:e.constant,inputs:[e]})},binaryFn:function(t,e,n,r){var i=mi[e];return f(function(e,r){return i(e,r,t,n)},{constant:t.constant&&n.constant,inputs:!r&&[t,n]})},identifier:function(){for(var t=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)t+=this.consume().text+this.consume().text;return Le(t,this.options,this.text)},constant:function(){var t=this.consume().value;return f(function(){return t},{constant:!0,literal:!0})},statements:function(){for(var t=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&t.push(this.filterChain()),!this.expect(";"))return 1===t.length?t[0]:function(e,n){for(var r,i=0,o=t.length;o>i;i++)r=t[i](e,n);return r}},filterChain:function(){for(var t,e=this.expression();t=this.expect("|");)e=this.filter(e);return e},filter:function(t){var e,r,i=this.$filter(this.consume().text);if(this.peek(":"))for(e=[],r=[];this.expect(":");)e.push(this.expression());var o=[t].concat(e||[]);return f(function(o,a){var s=t(o,a);if(r){r[0]=s;for(var u=e.length;u--;)r[u+1]=e[u](o,a);return i.apply(n,r)}return i(s)},{constant:!i.$stateful&&o.every(Ne),inputs:!i.$stateful&&o})},expression:function(){return this.assignment()},assignment:function(){var t,e,n=this.ternary();return(e=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,e.index)+"] can not be assigned to",e),t=this.ternary(),f(function(e,r){return n.assign(e,t(e,r),r)},{inputs:[n,t]})):n},ternary:function(){var t,e,n=this.logicalOR();if((e=this.expect("?"))&&(t=this.assignment(),this.consume(":"))){var r=this.assignment();return f(function(e,i){return n(e,i)?t(e,i):r(e,i)},{constant:n.constant&&t.constant&&r.constant})}return n},logicalOR:function(){for(var t,e=this.logicalAND();t=this.expect("||");)e=this.binaryFn(e,t.text,this.logicalAND(),!0);return e},logicalAND:function(){for(var t,e=this.equality();t=this.expect("&&");)e=this.binaryFn(e,t.text,this.equality(),!0);return e},equality:function(){for(var t,e=this.relational();t=this.expect("==","!=","===","!==");)e=this.binaryFn(e,t.text,this.relational());return e},relational:function(){for(var t,e=this.additive();t=this.expect("<",">","<=",">=");)e=this.binaryFn(e,t.text,this.additive());return e},additive:function(){for(var t,e=this.multiplicative();t=this.expect("+","-");)e=this.binaryFn(e,t.text,this.multiplicative());return e},multiplicative:function(){for(var t,e=this.unary();t=this.expect("*","/","%");)e=this.binaryFn(e,t.text,this.unary());return e},unary:function(){var t;return this.expect("+")?this.primary():(t=this.expect("-"))?this.binaryFn($i.ZERO,t.text,this.unary()):(t=this.expect("!"))?this.unaryFn(t.text,this.unary()):this.primary()},fieldAccess:function(t){var e=this.identifier();return f(function(r,i,o){var a=o||t(r,i);return null==a?n:e(a)},{assign:function(n,r,i){var o=t(n,i);return o||t.assign(n,o={},i),e.assign(o,r)}})},objectIndex:function(t){var e=this.text,r=this.expression();return this.consume("]"),f(function(i,o){var a,s=t(i,o),u=Me(r(i,o),e);return ze(u,e),s?a=De(s[u],e):n},{assign:function(n,i,o){var a=ze(Me(r(n,o),e),e),s=De(t(n,o),e);return s||t.assign(n,s={},o),s[a]=i}})},functionCall:function(t,e){var r=[];if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,o=r.length?[]:null;return function(a,s){var u=e?e(a,s):$(e)?n:a,c=t(a,s,u)||p;if(o)for(var l=r.length;l--;)o[l]=De(r[l](a,s),i);De(u,i),je(c,i);var f=c.apply?c.apply(u,o):c(o[0],o[1],o[2],o[3],o[4]);return o&&(o.length=0),De(f,i)}},arrayDeclaration:function(){var t=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t.push(this.expression())}while(this.expect(","));return this.consume("]"),f(function(e,n){for(var r=[],i=0,o=t.length;o>i;i++)r.push(t[i](e,n));return r},{literal:!0,constant:t.every(Ne),inputs:t})},object:function(){var t=[],e=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.consume();n.constant?t.push(n.value):n.identifier?t.push(n.text):this.throwError("invalid key",n),this.consume(":"),e.push(this.expression())}while(this.expect(","));return this.consume("}"),f(function(n,r){for(var i={},o=0,a=e.length;a>o;o++)i[t[o]]=e[o](n,r);return i},{literal:!0,constant:e.every(Ne),inputs:e})}};var yi=ct(),bi=ct(),wi=Object.prototype.valueOf,_i=r("$sce"),xi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Kr=r("$compile"),Ci=e.createElement("a"),Ei=on(t.location.href);un.$inject=["$provide"],hn.$inject=["$locale"],dn.$inject=["$locale"];var ki=".",Ai={yyyy:vn("FullYear",4),yy:vn("FullYear",2,0,!0),y:vn("FullYear",1),MMMM:gn("Month"),MMM:gn("Month",!0),MM:vn("Month",2,1),M:vn("Month",1,1),dd:vn("Date",2),d:vn("Date",1),HH:vn("Hours",2),H:vn("Hours",1),hh:vn("Hours",2,-12),h:vn("Hours",1,-12),mm:vn("Minutes",2),m:vn("Minutes",1),ss:vn("Seconds",2),s:vn("Seconds",1),sss:vn("Milliseconds",3),EEEE:gn("Day"),EEE:gn("Day",!0),a:_n,Z:$n,ww:wn(2),w:wn(1),G:xn,GG:xn,GGG:xn,GGGG:Cn},Si=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ti=/^\-?\d+$/;En.$inject=["$locale"];var Oi=v(Gn),Ii=v(Jn);Sn.$inject=["$parse"];var zi=v({restrict:"E",compile:function(t,e){return e.href||e.xlinkHref||e.name?void 0:function(t,e){if("a"===e[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ur.call(e.prop("href"))?"xlink:href":"href";e.on("click",function(t){e.attr(n)||t.preventDefault()})}}}}),Mi={};o(Lr,function(t,e){if("multiple"!=t){var n=Jt("ng-"+e);Mi[n]=function(){return{restrict:"A",priority:100,link:function(t,r,i){t.$watch(i[n],function(t){i.$set(e,!!t)})}}}}}),o(Vr,function(t,e){Mi[e]=function(){return{priority:100,link:function(t,n,r){if("ngPattern"===e&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(Yn);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}t.$watch(r[e],function(t){r.$set(e,t)})}}}}),o(["src","srcset","href"],function(t){var e=Jt("ng-"+t);Mi[e]=function(){return{priority:99,link:function(n,r,i){var o=t,a=t;"href"===t&&"[object SVGAnimatedString]"===ur.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(e,function(e){return e?(i.$set(a,e),void(er&&o&&r.prop(o,i[a]))):void("href"===t&&i.$set(a,null))})}}}});var Di={$addControl:p,$$renameControl:On,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},ji="ng-submitted";In.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ni=function(t){return["$timeout",function(e){var r={name:"form",restrict:t?"EAC":"E",controller:In,compile:function(r,i){r.addClass(go).addClass(mo);var o=i.name?"name":t&&i.ngForm?"ngForm":!1;return{pre:function(t,r,i,a){if(!("action"in i)){var s=function(e){t.$apply(function(){a.$commitViewValue(),a.$setSubmitted()}),e.preventDefault()};Tr(r[0],"submit",s),r.on("$destroy",function(){e(function(){Or(r[0],"submit",s)},0,!1)})}var u=a.$$parentForm;o&&(Pe(t,null,a.$name,a,a.$name),i.$observe(o,function(e){a.$name!==e&&(Pe(t,null,a.$name,n,a.$name),u.$$renameControl(a,e),Pe(t,null,a.$name,a,a.$name))})),r.on("$destroy",function(){u.$removeControl(a),o&&Pe(t,null,i[o],n,a.$name),f(a,Di)})}}}};return r}]},Pi=Ni(),Ri=Ni(!0),Fi=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Bi=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Li=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ui=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Vi=/^(\d{4})-(\d{2})-(\d{2})$/,qi=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Hi=/^(\d{4})-W(\d\d)$/,Wi=/^(\d{4})-(\d\d)$/,Xi=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yi={text:Mn,date:Pn("date",Vi,Nn(Vi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":Pn("datetimelocal",qi,Nn(qi,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:Pn("time",Xi,Nn(Xi,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:Pn("week",Hi,jn,"yyyy-Www"),month:Pn("month",Wi,Nn(Wi,["yyyy","MM"]),"yyyy-MM"),number:Fn,url:Bn,email:Ln,radio:Un,checkbox:qn,hidden:p,button:p,submit:p,reset:p,file:p},Zi=["$browser","$sniffer","$filter","$parse",function(t,e,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(Yi[Gn(a.type)]||Yi.text)(i,o,a,s[0],e,t,n,r)}}}}],Gi=/^(true|false|\d+)$/,Ki=function(){return{restrict:"A",priority:100,compile:function(t,e){return Gi.test(e.ngValue)?function(t,e,n){n.$set("value",t.$eval(n.ngValue))}:function(t,e,n){t.$watch(n.ngValue,function(t){n.$set("value",t)})}}}},Ji=["$compile",function(t){return{restrict:"AC",compile:function(e){return t.$$addBindingClass(e),function(e,r,i){t.$$addBindingInfo(r,i.ngBind),r=r[0],e.$watch(i.ngBind,function(t){r.textContent=t===n?"":t})}}}}],Qi=["$interpolate","$compile",function(t,e){return{compile:function(r){return e.$$addBindingClass(r),function(r,i,o){var a=t(i.attr(o.$attr.ngBindTemplate));e.$$addBindingInfo(i,a.expressions),i=i[0],o.$observe("ngBindTemplate",function(t){i.textContent=t===n?"":t})}}}}],to=["$sce","$parse","$compile",function(t,e,n){return{restrict:"A",compile:function(r,i){var o=e(i.ngBindHtml),a=e(i.ngBindHtml,function(t){return(t||"").toString()});return n.$$addBindingClass(r),function(e,r,i){n.$$addBindingInfo(r,i.ngBindHtml),e.$watch(a,function(){r.html(t.getTrustedHtml(o(e))||"")})}}}}],eo=v({restrict:"A",require:"ngModel",link:function(t,e,n,r){r.$viewChangeListeners.push(function(){t.$eval(n.ngChange)})}}),no=Hn("",!0),ro=Hn("Odd",0),io=Hn("Even",1),oo=Tn({compile:function(t,e){e.$set("ngCloak",n),t.removeClass("ng-cloak")}}),ao=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],so={},uo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(t){var e=Jt("ng-"+t);so[e]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[e],null,!0);return function(e,n){n.on(t,function(n){var i=function(){a(e,{$event:n})};uo[t]&&r.$$phase?e.$evalAsync(i):e.$apply(i)})}}}}]});var co=["$animate",function(t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=e.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},t.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=ut(s.clone),t.leave(c).then(function(){c=null}),s=null))})}}}],lo=["$templateRequest","$anchorScroll","$animate",function(t,e,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:lr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var f,h,d,p=0,m=function(){h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),d&&(n.leave(d).then(function(){h=null}),h=d,d=null)};r.$watch(o,function(o){var u=function(){!$(s)||s&&!r.$eval(s)||e()},h=++p;o?(t(o,!0).then(function(t){if(h===p){var e=r.$new();c.template=t;var s=l(e,function(t){m(),n.enter(t,null,i).then(u)});f=e,d=s,f.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){h===p&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],fo=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void t($t(o.template,e).childNodes)(n,function(t){r.append(t)},{futureParentElement:r})):(r.html(o.template),void t(r.contents())(n))}}}],ho=Tn({priority:450,compile:function(){return{pre:function(t,e,n){t.$eval(n.ngInit)}}}}),po=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(t,e,r,i){var a=e.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?pr(a):a,c=function(t){if(!g(t)){var e=[];return t&&o(t.split(u),function(t){t&&e.push(s?pr(t):t)}),e}};i.$parsers.push(c),i.$formatters.push(function(t){return dr(t)?t.join(a):n}),i.$isEmpty=function(t){return!t||!t.length}}}},mo="ng-valid",vo="ng-invalid",go="ng-pristine",$o="ng-dirty",yo="ng-untouched",bo="ng-touched",wo="ng-pending",_o=r("ngModel"),xo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(t,e,r,i,a,s,u,c,l,f){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=f(r.name||"",!1)(t);var h,d=a(r.ngModel),m=d.assign,v=d,y=m,b=null,_=this;this.$$setOptions=function(t){if(_.$options=t,t&&t.getterSetter){var e=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(t){var n=d(t);return x(n)&&(n=e(t)),n},y=function(t,e){x(d(t))?n(t,{$$$p:_.$modelValue}):m(t,_.$modelValue)}}else if(!d.assign)throw _o("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,H(i))},this.$render=p,this.$isEmpty=function(t){return g(t)||""===t||null===t||t!==t};var C=i.inheritedData("$formController")||Di,E=0;Wn({ctrl:this,$element:i,set:function(t,e){t[e]=!0},unset:function(t,e){delete t[e]},parentForm:C,$animate:s}),this.$setPristine=function(){_.$dirty=!1,_.$pristine=!0,s.removeClass(i,$o),s.addClass(i,go)},this.$setDirty=function(){_.$dirty=!0,_.$pristine=!1,s.removeClass(i,go),s.addClass(i,$o),C.$setDirty()},this.$setUntouched=function(){_.$touched=!1,_.$untouched=!0,s.setClass(i,yo,bo)},this.$setTouched=function(){_.$touched=!0,_.$untouched=!1,s.setClass(i,bo,yo)},this.$rollbackViewValue=function(){u.cancel(b),_.$viewValue=_.$$lastCommittedViewValue,_.$render()},this.$validate=function(){if(!w(_.$modelValue)||!isNaN(_.$modelValue)){var t=_.$$lastCommittedViewValue,e=_.$$rawModelValue,r=_.$valid,i=_.$modelValue,o=_.$options&&_.$options.allowInvalid;_.$$runValidators(e,t,function(t){o||r===t||(_.$modelValue=t?e:n,_.$modelValue!==i&&_.$$writeModelToScope())})}},this.$$runValidators=function(t,e,r){function i(){var t=_.$$parserName||"parse";return h!==n?(h||(o(_.$validators,function(t,e){u(e,null)}),o(_.$asyncValidators,function(t,e){u(e,null)})),u(t,h),h):(u(t,null),!0)}function a(){var n=!0;return o(_.$validators,function(r,i){var o=r(t,e);n=n&&o,u(i,o)}),n?!0:(o(_.$asyncValidators,function(t,e){u(e,null)}),!1)}function s(){var r=[],i=!0;o(_.$asyncValidators,function(o,a){var s=o(t,e);if(!I(s))throw _o("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(t){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},p):c(!0)}function u(t,e){f===E&&_.$setValidity(t,e)}function c(t){f===E&&r(t)}E++;var f=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var t=_.$viewValue;u.cancel(b),(_.$$lastCommittedViewValue!==t||""===t&&_.$$hasNativeValidators)&&(_.$$lastCommittedViewValue=t,_.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function e(){_.$modelValue!==a&&_.$$writeModelToScope()}var r=_.$$lastCommittedViewValue,i=r;if(h=g(i)?n:!0)for(var o=0;o<_.$parsers.length;o++)if(i=_.$parsers[o](i),g(i)){h=!1;break}w(_.$modelValue)&&isNaN(_.$modelValue)&&(_.$modelValue=v(t));var a=_.$modelValue,s=_.$options&&_.$options.allowInvalid;_.$$rawModelValue=i,s&&(_.$modelValue=i,e()),_.$$runValidators(i,_.$$lastCommittedViewValue,function(t){s||(_.$modelValue=t?i:n,e())})},this.$$writeModelToScope=function(){y(t,_.$modelValue),o(_.$viewChangeListeners,function(t){try{t()}catch(n){e(n)}})},this.$setViewValue=function(t,e){_.$viewValue=t,(!_.$options||_.$options.updateOnDefault)&&_.$$debounceViewValueCommit(e)},this.$$debounceViewValueCommit=function(e){var n,r=0,i=_.$options;i&&$(i.debounce)&&(n=i.debounce,w(n)?r=n:w(n[e])?r=n[e]:w(n["default"])&&(r=n["default"])),u.cancel(b),r?b=u(function(){_.$commitViewValue()},r):c.$$phase?_.$commitViewValue():t.$apply(function(){_.$commitViewValue()})},t.$watch(function(){var e=v(t);if(e!==_.$modelValue&&(_.$modelValue===_.$modelValue||e===e)){_.$modelValue=_.$$rawModelValue=e,h=n;for(var r=_.$formatters,i=r.length,o=e;i--;)o=r[i](o);_.$viewValue!==o&&(_.$viewValue=_.$$lastCommittedViewValue=o,_.$render(),_.$$runValidators(e,o,p))}return e})}],Co=["$rootScope",function(t){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:xo,priority:1,compile:function(e){return e.addClass(go).addClass(yo).addClass(mo),{pre:function(t,e,n,r){var i=r[0],o=r[1]||Di;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(t){i.$name!==t&&o.$$renameControl(i,t)}),t.$on("$destroy",function(){o.$removeControl(i)})},post:function(e,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(t){o.$$debounceViewValueCommit(t&&t.type)}),n.on("blur",function(n){o.$touched||(t.$$phase?e.$evalAsync(o.$setTouched):e.$apply(o.$setTouched))})}}}}}],Eo=/(\s+|^)default(\s+|$)/,ko=function(){return{restrict:"A",controller:["$scope","$attrs",function(t,e){var r=this;this.$options=t.$eval(e.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=pr(this.$options.updateOn.replace(Eo,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Ao=Tn({terminal:!0,priority:1e3}),So=["$locale","$interpolate",function(t,e){var n=/{}/g,r=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(i,a,s){function u(t){a.text(t||"")}var c,l=s.count,f=s.$attr.when&&a.attr(s.$attr.when),h=s.offset||0,d=i.$eval(f)||{},p={},m=e.startSymbol(),v=e.endSymbol(),g=m+l+"-"+h+v,$=lr.noop;o(s,function(t,e){var n=r.exec(e);if(n){var i=(n[1]?"-":"")+Gn(n[2]);d[i]=a.attr(s.$attr[e])}}),o(d,function(t,r){p[r]=e(t.replace(n,g))}),i.$watch(l,function(e){var n=parseFloat(e),r=isNaN(n);r||n in d||(n=t.pluralCat(n-h)),n===c||r&&isNaN(c)||($(),$=i.$watch(p[n],u),c=n)})}}}],To=["$parse","$animate",function(t,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(t,e,n,r,i,o,a){t[n]=r,i&&(t[i]=o),t.$index=e,t.$first=0===e,t.$last=e===a-1,t.$middle=!(t.$first||t.$last),t.$odd=!(t.$even=0===(1&e))},l=function(t){return t.clone[0]},f=function(t){return t.clone[t.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,h){var d=h.ngRepeat,p=e.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],$=m[3],y=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var b=m[3]||m[1],w=m[2];if($&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test($)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test($)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",$);var _,x,C,E,k={$id:Bt};return y?_=t(y):(C=function(t,e){return Bt(e)},E=function(t){return t}),function(t,e,r,h,m){_&&(x=function(e,n,r){return w&&(k[w]=e),k[b]=n,k.$index=r,_(t,k)});var v=ct();t.$watchCollection(g,function(r){var h,g,y,_,k,A,S,T,O,I,z,M,D=e[0],j=ct();if($&&(t[$]=r),i(r))O=r,T=x||C;else{T=x||E,O=[];for(var N in r)r.hasOwnProperty(N)&&"$"!=N.charAt(0)&&O.push(N);O.sort()}for(_=O.length,z=new Array(_),h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],S=T(k,A,h),v[S])I=v[S],delete v[S],j[S]=I,z[h]=I;else{if(j[S])throw o(z,function(t){t&&t.scope&&(v[t.id]=t)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,S,A);z[h]={id:S,scope:n,clone:n},j[S]=!0}for(var P in v){if(I=v[P],M=ut(I.clone),a.leave(M),M[0].parentNode)for(h=0,g=M.length;g>h;h++)M[h][s]=!0;I.scope.$destroy()}for(h=0;_>h;h++)if(k=r===O?h:O[h],A=r[k],I=z[h],I.scope){y=D;do y=y.nextSibling;while(y&&y[s]);l(I)!=y&&a.move(ut(I.clone),null,nr(D)),D=f(I),c(I.scope,h,b,A,w,k,_)}else m(function(t,e){I.scope=e;var n=p.cloneNode(!1);t[t.length++]=n,a.enter(t,null,nr(D)),D=n,I.clone=t,j[I.id]=I,c(I.scope,h,b,A,w,k,_)});v=j})}}}}],Oo="ng-hide",Io="ng-hide-animate",zo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngShow,function(e){t[e?"removeClass":"addClass"](n,Oo,{tempClasses:Io})})}}}],Mo=["$animate",function(t){return{restrict:"A",multiElement:!0,link:function(e,n,r){e.$watch(r.ngHide,function(e){t[e?"addClass":"removeClass"](n,Oo,{tempClasses:Io})})}}}],Do=Tn(function(t,e,n){t.$watch(n.ngStyle,function(t,n){n&&t!==n&&o(n,function(t,n){e.css(n,"")}),t&&e.css(t)},!0)}),jo=["$animate",function(t){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],f=[],h=function(t,e){return function(){t.splice(e,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)t.cancel(l[r]);for(l.length=0,r=0,i=f.length;i>r;++r){var s=ut(c[r].clone);f[r].$destroy();var d=l[r]=t.leave(s);d.then(h(l,r))}c.length=0,f.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){f.push(i);var o=n.element;r[r.length++]=e.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),t.enter(r,o.parent(),o)})})})}}}],No=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:e})}}),Po=Tn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(t,e,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:e})}}),Ro=Tn({restrict:"EAC",link:function(t,e,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",H(e));o(function(t){e.empty(),e.append(t)})}}),Fo=["$templateCache",function(t){return{restrict:"E",terminal:!0,compile:function(e,n){if("text/ng-template"==n.type){var r=n.id,i=e[0].text;t.put(r,i)}}}}],Bo=r("ngOptions"),Lo=v({restrict:"A",terminal:!0}),Uo=["$compile","$parse",function(t,r){var i=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:p};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(t,e,n){var r,i,o=this,a={},u=s;o.databound=n.ngModel,o.init=function(t,e,n){u=t,r=e,i=n},o.addOption=function(e,n){at(e,'"option value"'),a[e]=!0,u.$viewValue==e&&(t.val(e),i.parent()&&i.remove()),n&&n[0].hasAttribute("selected")&&(n[0].selected=!0)},o.removeOption=function(t){this.hasOption(t)&&(delete a[t],u.$viewValue===t&&this.renderUnknownOption(t))},o.renderUnknownOption=function(e){var n="? "+Bt(e)+" ?";i.val(n),t.prepend(i),t.val(n),i.prop("selected",!0)},o.hasOption=function(t){return a.hasOwnProperty(t)},e.$on("$destroy",function(){o.renderUnknownOption=p})}],link:function(s,u,c,l){function f(t,e,n,r){n.$render=function(){var t=n.$viewValue;r.hasOption(t)?(C.parent()&&C.remove(),e.val(t),""===t&&p.prop("selected",!0)):null==t&&p?e.val(""):r.renderUnknownOption(t)},e.on("change",function(){t.$apply(function(){C.parent()&&C.remove(),n.$setViewValue(e.val())})})}function h(t,e,n){var r;n.$render=function(){var t=new Lt(n.$viewValue);o(e.find("option"),function(e){e.selected=$(t.get(e.value))})},t.$watch(function(){R(r,n.$viewValue)||(r=P(n.$viewValue),n.$render())}),e.on("change",function(){t.$apply(function(){var t=[];o(e.find("option"),function(e){
+e.selected&&t.push(e.value)}),n.$setViewValue(t)})})}function d(e,s,u){function c(t,n,r){return R[A]=r,O&&(R[O]=n),t(e,R)}function l(){e.$apply(function(){var t,n=M(e)||[];if(g)t=[],o(s.val(),function(e){e=j?N[e]:e,t.push(f(e,n[e]))});else{var r=j?N[s.val()]:s.val();t=f(r,n[r])}u.$setViewValue(t),C()})}function f(t,e){if("?"===t)return n;if(""===t)return null;var r=T?T:z;return c(r,t,e)}function h(){var t,n=M(e);if(n&&dr(n)){t=new Array(n.length);for(var r=0,i=n.length;i>r;r++)t[r]=c(k,r,n[r]);return t}if(n){t={};for(var o in n)n.hasOwnProperty(o)&&(t[o]=c(k,o,n[o]))}return t}function d(t){var e;if(g)if(j&&dr(t)){e=new Lt([]);for(var n=0;n<t.length;n++)e.put(c(j,null,t[n]),!0)}else e=new Lt(t);else j&&(t=c(j,null,t));return function(n,r){var i;return i=j?j:T?T:z,g?$(e.remove(c(i,n,r))):t===c(i,n,r)}}function p(){w||(e.$$postDigest(C),w=!0)}function v(t,e,n){t[e]=t[e]||0,t[e]+=n?1:-1}function C(){w=!1;var t,n,r,i,l,f,h,p,y,C,E,A,S,T,z,D,F,B={"":[]},L=[""],U=u.$viewValue,V=M(e)||[],q=O?a(V):V,H={},W=d(U),X=!1;for(N={},A=0;C=q.length,C>A;A++)h=A,O&&(h=q[A],"$"===h.charAt(0))||(p=V[h],t=c(I,h,p)||"",(n=B[t])||(n=B[t]=[],L.push(t)),S=W(h,p),X=X||S,D=c(k,h,p),D=$(D)?D:"",F=j?j(e,R):O?q[A]:A,j&&(N[F]=h),n.push({id:F,label:D,selected:S}));for(g||(b||null===U?B[""].unshift({id:"",label:"",selected:!X}):X||B[""].unshift({id:"?",label:"",selected:!0})),E=0,y=L.length;y>E;E++){for(t=L[E],n=B[t],P.length<=E?(i={element:x.clone().attr("label",t),label:n.label},l=[i],P.push(l),s.append(i.element)):(l=P[E],i=l[0],i.label!=t&&i.element.attr("label",i.label=t)),T=null,A=0,C=n.length;C>A;A++)r=n[A],(f=l[A+1])?(T=f.element,f.label!==r.label&&(v(H,f.label,!1),v(H,r.label,!0),T.text(f.label=r.label),T.prop("label",f.label)),f.id!==r.id&&T.val(f.id=r.id),T[0].selected!==r.selected&&(T.prop("selected",f.selected=r.selected),er&&T.prop("selected",f.selected))):(""===r.id&&b?z=b:(z=_.clone()).val(r.id).prop("selected",r.selected).attr("selected",r.selected).prop("label",r.label).text(r.label),l.push(f={element:z,label:r.label,id:r.id,selected:r.selected}),v(H,r.label,!0),T?T.after(z):i.element.append(z),T=z);for(A++;l.length>A;)r=l.pop(),v(H,r.label,!1),r.element.remove()}for(;P.length>E;){for(n=P.pop(),A=1;A<n.length;++A)v(H,n[A].label,!1);n[0].element.remove()}o(H,function(t,e){t>0?m.addOption(e):0>t&&m.removeOption(e)})}var E;if(!(E=y.match(i)))throw Bo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",y,H(s));var k=r(E[2]||E[1]),A=E[4]||E[6],S=/ as /.test(E[0])&&E[1],T=S?r(S):null,O=E[5],I=r(E[3]||""),z=r(E[2]?E[1]:A),M=r(E[7]),D=E[8],j=D?r(E[8]):null,N={},P=[[{element:s,label:""}]],R={};b&&(t(b)(e),b.removeClass("ng-scope"),b.remove()),s.empty(),s.on("change",l),u.$render=C,e.$watchCollection(M,p),e.$watchCollection(h,p),g&&e.$watchCollection(function(){return u.$modelValue},p)}if(l[1]){for(var p,m=l[0],v=l[1],g=c.multiple,y=c.ngOptions,b=!1,w=!1,_=nr(e.createElement("option")),x=nr(e.createElement("optgroup")),C=_.clone(),E=0,k=u.children(),A=k.length;A>E;E++)if(""===k[E].value){p=b=k.eq(E);break}m.init(v,b,C),g&&(v.$isEmpty=function(t){return!t||0===t.length}),y?d(s,u,v):g?h(s,u,v):f(s,u,v,m)}}}}],Vo=["$interpolate",function(t){var e={addOption:p,removeOption:p};return{restrict:"E",priority:100,compile:function(n,r){if(g(r.value)){var i=t(n.text(),!0);i||r.$set("value",n.text())}return function(t,n,r){var o="$selectController",a=n.parent(),s=a.data(o)||a.parent().data(o);s&&s.databound||(s=e),i?t.$watch(i,function(t,e){r.$set("value",t),e!==t&&s.removeOption(e),s.addOption(t,n)}):s.addOption(r.value,n),n.on("$destroy",function(){s.removeOption(r.value)})}}}}],qo=v({restrict:"E",terminal:!1}),Ho=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){r&&(n.required=!0,r.$validators.required=function(t,e){return!n.required||!r.$isEmpty(e)},n.$observe("required",function(){r.$validate()}))}}},Wo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(t){if(b(t)&&t.length>0&&(t=new RegExp("^"+t+"$")),t&&!t.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,t,H(e));a=t||n,o.$validate()}),o.$validators.pattern=function(t,e){return o.$isEmpty(e)||g(a)||a.test(e)}}}}},Xo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=-1;n.$observe("maxlength",function(t){var e=h(t);i=isNaN(e)?-1:e,r.$validate()}),r.$validators.maxlength=function(t,e){return 0>i||r.$isEmpty(e)||e.length<=i}}}}},Yo=function(){return{restrict:"A",require:"?ngModel",link:function(t,e,n,r){if(r){var i=0;n.$observe("minlength",function(t){i=h(t)||0,r.$validate()}),r.$validators.minlength=function(t,e){return r.$isEmpty(e)||e.length>=i}}}}};return t.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(rt(),dt(lr),void nr(e).ready(function(){J(e,Q)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'),function(t,e,n){"use strict";e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var t="$$ngAnimateChildren";return function(n,r,i){var o=i.ngAnimateChildren;e.isString(o)&&0===o.length?r.data(t,!0):n.$watch(o,function(e){r.data(t,!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(t,e){var n=e[0].body;return function(e){return t(function(){e(n.offsetWidth)})}}]).config(["$provide","$animateProvider",function(r,i){function o(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.nodeType==v)return n}}function a(t){return t&&e.element(t)}function s(t){return e.element(o(t))}function u(t,e){return o(t)==o(e)}var c,l=e.noop,f=e.forEach,h=i.$$selectors,d=e.isArray,p=e.isString,m=e.isObject,v=1,g="$$ngAnimateState",$="$$ngAnimateChildren",y="ng-animate",b={running:!0};r.decorator("$animate",["$delegate","$$q","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document","$templateRequest","$$jqLite",function(t,n,r,v,w,_,x,C,E,k){function A(t,e){var n=t.data(g)||{};return e&&(n.running=!0,n.structural=!0,t.data(g,n)),n.disabled||n.running&&n.structural}function S(t){var e,r=n.defer();return r.promise.$$cancelFn=function(){e&&e()},x.$$postDigest(function(){e=t(function(){r.resolve()})}),r.promise}function T(t){return m(t)?(t.tempClasses&&p(t.tempClasses)&&(t.tempClasses=t.tempClasses.split(/\s+/)),t):void 0}function O(t,e,n){n=n||{};var r={};f(n,function(t,e){f(e.split(" "),function(e){r[e]=t})});var i=Object.create(null);f((t.attr("class")||"").split(/\s+/),function(t){i[t]=!0});var o=[],a=[];return f(e&&e.classes||[],function(t,e){var n=i[e],s=r[e]||{};t===!1?(n||"addClass"==s.event)&&a.push(e):t===!0&&(n&&"removeClass"!=s.event||o.push(e))}),o.length+a.length>0&&[o.join(" "),a.join(" ")]}function I(t){if(t){var e=[],n={},i=t.substr(1).split(".");(v.transitions||v.animations)&&e.push(r.get(h[""]));for(var o=0;o<i.length;o++){var a=i[o],s=h[a];s&&!n[a]&&(e.push(r.get(s)),n[a]=!0)}return e}}function z(t,n,r,i){function o(t,e){var n=t[e],r=t["before"+e.charAt(0).toUpperCase()+e.substr(1)];return n||r?("leave"==e&&(r=n,n=null),_.push({event:e,fn:n}),y.push({event:e,fn:r}),!0):void 0}function a(e,n,o){function a(t){if(n){if((n[t]||l)(),++h<s.length)return;n=null}o()}var s=[];f(e,function(t){t.fn&&s.push(t)});var h=0;f(s,function(e,o){var s=function(){a(o)};switch(e.event){case"setClass":n.push(e.fn(t,u,c,s,i));break;case"animate":n.push(e.fn(t,r,i.from,i.to,s));break;case"addClass":n.push(e.fn(t,u||r,s,i));break;case"removeClass":n.push(e.fn(t,c||r,s,i));break;default:n.push(e.fn(t,s,i))}}),n&&0===n.length&&o()}var s=t[0];if(s){i&&(i.to=i.to||{},i.from=i.from||{});var u,c;d(r)&&(u=r[0],c=r[1],u?c?r=u+" "+c:(r=u,n="addClass"):(r=c,n="removeClass"));var h="setClass"==n,p=h||"addClass"==n||"removeClass"==n||"animate"==n,m=t.attr("class"),v=m+" "+r;if(B(v)){var g=l,$=[],y=[],b=l,w=[],_=[],x=(" "+v).replace(/\s+/g,".");return f(I(x),function(t){var e=o(t,n);!e&&h&&(o(t,"addClass"),o(t,"removeClass"))}),{node:s,event:n,className:r,isClassBased:p,isSetClassOperation:h,applyStyles:function(){i&&t.css(e.extend(i.from||{},i.to||{}))},before:function(t){g=t,a(y,$,function(){g=l,t()})},after:function(t){b=t,a(_,w,function(){b=l,t()})},cancel:function(){$&&(f($,function(t){(t||l)(!0)}),g(!0)),w&&(f(w,function(t){(t||l)(!0)}),b(!0))}}}}}function M(t,n,r,i,o,a,s,u){function h(e){var i="$animate:"+e;x&&x[i]&&x[i].length>0&&_(function(){r.triggerHandler(i,{event:t,className:n})})}function d(){h("before")}function p(){h("after")}function m(){h("close"),u()}function v(){v.hasBeenRun||(v.hasBeenRun=!0,a())}function $(){if(!$.hasBeenRun){w&&w.applyStyles(),$.hasBeenRun=!0,s&&s.tempClasses&&f(s.tempClasses,function(t){c.removeClass(r,t)});var e=r.data(g);e&&(w&&w.isClassBased?j(r,n):(_(function(){var e=r.data(g)||{};M==e.index&&j(r,n,t)}),r.data(g,e))),m()}}var b=l,w=z(r,t,n,s);if(!w)return v(),d(),p(),$(),b;t=w.event,n=w.className;var x=e.element._data(w.node);if(x=x&&x.events,i||(i=o?o.parent():r.parent()),N(r,i))return v(),d(),p(),$(),b;var C=r.data(g)||{},E=C.active||{},k=C.totalActive||0,A=C.last,S=!1;if(k>0){var T=[];if(w.isClassBased){if("setClass"==A.event)T.push(A),j(r,n);else if(E[n]){var O=E[n];O.event==t?S=!0:(T.push(O),j(r,n))}}else if("leave"==t&&E["ng-leave"])S=!0;else{for(var I in E)T.push(E[I]);C={},j(r,!0)}T.length>0&&f(T,function(t){t.cancel()})}if(!w.isClassBased||w.isSetClassOperation||"animate"==t||S||(S="addClass"==t==r.hasClass(n)),S)return v(),d(),p(),m(),b;E=C.active||{},k=C.totalActive||0,"leave"==t&&r.one("$destroy",function(t){var n=e.element(this),r=n.data(g);if(r){var i=r.active["ng-leave"];i&&(i.cancel(),j(n,"ng-leave"))}}),c.addClass(r,y),s&&s.tempClasses&&f(s.tempClasses,function(t){c.addClass(r,t)});var M=R++;return k++,E[n]=w,r.data(g,{last:w,active:E,index:M,totalActive:k}),d(),w.before(function(e){var i=r.data(g);e=e||!i||!i.active[n]||w.isClassBased&&i.active[n].event!=t,v(),e===!0?$():(p(),w.after($))}),w.cancel}function D(t){var n=o(t);if(n){var r=e.isFunction(n.getElementsByClassName)?n.getElementsByClassName(y):n.querySelectorAll("."+y);f(r,function(t){t=e.element(t);var n=t.data(g);n&&n.active&&f(n.active,function(t){t.cancel()})})}}function j(t,e){if(u(t,w))b.disabled||(b.running=!1,b.structural=!1);else if(e){var n=t.data(g)||{},r=e===!0;!r&&n.active&&n.active[e]&&(n.totalActive--,delete n.active[e]),(r||!n.totalActive)&&(c.removeClass(t,y),t.removeData(g))}}function N(t,n){if(b.disabled)return!0;if(u(t,w))return b.running;var r,i,o;do{if(0===n.length)break;var a=u(n,w),s=a?b:n.data(g)||{};if(s.disabled)return!0;if(a&&(o=!0),r!==!1){var c=n.data($);e.isDefined(c)&&(r=c)}i=i||s.running||s.last&&!s.last.isClassBased}while(n=n.parent());return!o||!r&&i}c=k,w.data(g,b);var P=x.$watch(function(){return E.totalPendingRequests},function(t,e){0===t&&(P(),x.$$postDigest(function(){x.$$postDigest(function(){b.running=!1})}))}),R=0,F=i.classNameFilter(),B=F?function(t){return F.test(t)}:function(){return!0};return{animate:function(t,e,n,r,i){return r=r||"ng-inline-animate",i=T(i)||{},i.from=n?e:null,i.to=n?n:e,S(function(e){return M("animate",r,s(t),null,null,l,i,e)})},enter:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),A(n,!0),t.enter(n,r,i),S(function(t){return M("enter","ng-enter",s(n),r,i,l,o,t)})},leave:function(n,r){return r=T(r),n=e.element(n),D(n),A(n,!0),S(function(e){return M("leave","ng-leave",s(n),null,null,function(){t.leave(n)},r,e)})},move:function(n,r,i,o){return o=T(o),n=e.element(n),r=a(r),i=a(i),D(n),A(n,!0),t.move(n,r,i),S(function(t){return M("move","ng-move",s(n),r,i,l,o,t)})},addClass:function(t,e,n){return this.setClass(t,e,[],n)},removeClass:function(t,e,n){return this.setClass(t,[],e,n)},setClass:function(n,r,i,a){a=T(a);var u="$$animateClasses";if(n=e.element(n),n=s(n),A(n))return t.$$setClassImmediately(n,r,i,a);var c,l=n.data(u),h=!!l;return l||(l={},l.classes={}),c=l.classes,r=d(r)?r:r.split(" "),f(r,function(t){t&&t.length&&(c[t]=!0)}),i=d(i)?i:i.split(" "),f(i,function(t){t&&t.length&&(c[t]=!1)}),h?(a&&l.options&&(l.options=e.extend(l.options||{},a)),l.promise):(n.data(u,l={classes:c,options:a}),l.promise=S(function(e){var r,i,a,s=o(n);if(s&&(r=n.data(u),n.removeData(u),a=n.parent(),i=s.parentNode),!i||i.$$NG_REMOVED||s.$$NG_REMOVED)return void e();var c=n.data(g)||{},l=O(n,r,c.active);return l?M("setClass",l,n,a,null,function(){l[0]&&t.$$addClassImmediately(n,l[0]),l[1]&&t.$$removeClassImmediately(n,l[1])},r.options,e):e()}))},cancel:function(t){t.$$cancelFn()},enabled:function(t,e){switch(arguments.length){case 2:if(t)j(e);else{var n=e.data(g)||{};n.disabled=!0,e.data(g,n)}break;case 1:b.disabled=!t;break;default:t=!b.disabled}return!!t}}}]),i.register("",["$window","$sniffer","$timeout","$$animateReflow",function(r,i,a,s){function u(){j||(j=s(function(){Y=[],j=null,W={}}))}function h(t,e){j&&j(),Y.push(e),j=s(function(){f(Y,function(t){t()}),Y=[],j=null,W={}})}function m(t,n){var r=o(t);t=e.element(r),K.push(t);var i=Date.now()+n;G>=i||(a.cancel(Z),G=i,Z=a(function(){g(K),K=[]},n,!1))}function g(t){f(t,function(t){var e=t.data(U);e&&f(e.closeAnimationFns,function(t){t()})})}function $(t,e){var n=e?W[e]:null;if(!n){var i=0,o=0,a=0,s=0;f(t,function(t){if(t.nodeType==v){var e=r.getComputedStyle(t)||{},n=e[O+N];i=Math.max(y(n),i);var u=e[O+R];o=Math.max(y(u),o);e[z+R];s=Math.max(y(e[z+R]),s);var c=y(e[z+N]);c>0&&(c*=parseInt(e[z+F],10)||1),a=Math.max(c,a)}}),n={total:0,transitionDelay:o,transitionDuration:i,animationDelay:s,animationDuration:a},e&&(W[e]=n)}return n}function y(t){var e=0,n=p(t)?t.split(/\s*,\s*/):[];return f(n,function(t){e=Math.max(parseFloat(t)||0,e)}),e}function b(t){var e=t.parent(),n=e.data(L);return n||(e.data(L,++X),n=X),n+"-"+o(t).getAttribute("class")}function w(t,e,n,r){var i=["ng-enter","ng-leave","ng-move"].indexOf(n)>=0,a=b(e),s=a+" "+n,u=W[s]?++W[s].total:0,l={};if(u>0){var f=n+"-stagger",h=a+" "+f,d=!W[h];d&&c.addClass(e,f),l=$(e,h),d&&c.removeClass(e,f)}c.addClass(e,n);var p=e.data(U)||{},m=$(e,s),v=m.transitionDuration,g=m.animationDuration;if(i&&0===v&&0===g)return c.removeClass(e,n),!1;var y=r||i&&v>0,w=g>0&&l.animationDelay>0&&0===l.animationDuration,_=p.closeAnimationFns||[];e.data(U,{stagger:l,cacheKey:s,running:p.running||0,itemIndex:u,blockTransition:y,closeAnimationFns:_});var E=o(e);return y&&(x(E,!0),r&&e.css(r)),w&&C(E,!0),!0}function _(t,e,n,r,i){function s(){e.off(R,u),c.removeClass(e,d),c.removeClass(e,p),N&&a.cancel(N),S(e,n);var t=o(e);for(var r in g)t.style.removeProperty(g[r])}function u(t){t.stopPropagation();var e=t.originalEvent||t,n=e.$manualTimeStamp||e.timeStamp||Date.now(),i=parseFloat(e.elapsedTime.toFixed(V));Math.max(n-P,0)>=z&&i>=T&&r()}var l=o(e),h=e.data(U);if(-1==l.getAttribute("class").indexOf(n)||!h)return void r();var d="",p="";f(n.split(" "),function(t,e){var n=(e>0?" ":"")+t;d+=n+"-active",p+=n+"-pending"});var v="",g=[],y=h.itemIndex,b=h.stagger,w=0;if(y>0){var _=0;b.transitionDelay>0&&0===b.transitionDuration&&(_=b.transitionDelay*y);var E=0;b.animationDelay>0&&0===b.animationDuration&&(E=b.animationDelay*y,g.push(D+"animation-play-state")),w=Math.round(100*Math.max(_,E))/100}w||(c.addClass(e,d),h.blockTransition&&x(l,!1));var k=h.cacheKey+" "+d,A=$(e,k),T=Math.max(A.transitionDuration,A.animationDuration);if(0===T)return c.removeClass(e,d),S(e,n),void r();!w&&i&&Object.keys(i).length>0&&(A.transitionDuration||(e.css("transition",A.animationDuration+"s linear all"),g.push("transition")),e.css(i));var O=Math.max(A.transitionDelay,A.animationDelay),z=O*H;if(g.length>0){var j=l.getAttribute("style")||"";";"!==j.charAt(j.length-1)&&(j+=";"),l.setAttribute("style",j+" "+v)}var N,P=Date.now(),R=M+" "+I,F=(O+T)*q,B=(w+F)*H;return w>0&&(c.addClass(e,p),N=a(function(){N=null,A.transitionDuration>0&&x(l,!1),A.animationDuration>0&&C(l,!1),c.addClass(e,d),c.removeClass(e,p),i&&(0===A.transitionDuration&&e.css("transition",A.animationDuration+"s linear all"),e.css(i),g.push("transition"))},w*H,!1)),e.on(R,u),h.closeAnimationFns.push(function(){s(),r()}),h.running++,m(e,B),s}function x(t,e){t.style[O+P]=e?"none":""}function C(t,e){t.style[z+B]=e?"paused":""}function E(t,e,n,r){return w(t,e,n,r)?function(t){t&&S(e,n)}:void 0}function k(t,e,n,r,i){return e.data(U)?_(t,e,n,r,i):(S(e,n),void r())}function A(t,e,n,r,i){var o=E(t,e,n,i.from);if(!o)return u(),void r();var a=o;return h(e,function(){a=k(t,e,n,r,i.to)}),function(t){(a||l)(t)}}function S(t,e){c.removeClass(t,e);var n=t.data(U);n&&(n.running&&n.running--,n.running&&0!==n.running||t.removeData(U))}function T(t,e){var n="";return t=d(t)?t:t.split(/\s+/),f(t,function(t,r){t&&t.length>0&&(n+=(r>0?" ":"")+t+e)}),n}var O,I,z,M,D="";t.ontransitionend===n&&t.onwebkittransitionend!==n?(D="-webkit-",O="WebkitTransition",I="webkitTransitionEnd transitionend"):(O="transition",I="transitionend"),t.onanimationend===n&&t.onwebkitanimationend!==n?(D="-webkit-",z="WebkitAnimation",M="webkitAnimationEnd animationend"):(z="animation",M="animationend");var j,N="Duration",P="Property",R="Delay",F="IterationCount",B="PlayState",L="$$ngAnimateKey",U="$$ngAnimateCSS3Data",V=3,q=1.5,H=1e3,W={},X=0,Y=[],Z=null,G=0,K=[];return{animate:function(t,e,n,r,i,o){return o=o||{},o.from=n,o.to=r,A("animate",t,e,i,o)},enter:function(t,e,n){return n=n||{},A("enter",t,"ng-enter",e,n)},leave:function(t,e,n){return n=n||{},A("leave",t,"ng-leave",e,n)},move:function(t,e,n){return n=n||{},A("move",t,"ng-move",e,n)},beforeSetClass:function(t,e,n,r,i){i=i||{};var o=T(n,"-remove")+" "+T(e,"-add"),a=E("setClass",t,o,i.from);return a?(h(t,r),a):(u(),void r())},beforeAddClass:function(t,e,n,r){r=r||{};var i=E("addClass",t,T(e,"-add"),r.from);return i?(h(t,n),i):(u(),void n())},beforeRemoveClass:function(t,e,n,r){r=r||{};var i=E("removeClass",t,T(e,"-remove"),r.from);return i?(h(t,n),i):(u(),void n())},setClass:function(t,e,n,r,i){i=i||{},n=T(n,"-remove"),e=T(e,"-add");var o=n+" "+e;return k("setClass",t,o,r,i.to)},addClass:function(t,e,n,r){return r=r||{},k("addClass",t,T(e,"-add"),n,r.to)},removeClass:function(t,e,n,r){return r=r||{},k("removeClass",t,T(e,"-remove"),n,r.to)}}}])}])}(window,window.angular),function(t,e,n){"use strict";e.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(t,r){function i(){var t,i,o,u;for(t in s)l(a[t])&&(r.cookies(t,n),delete s[t]);for(t in a)i=a[t],e.isString(i)||(i=""+i,a[t]=i),i!==s[t]&&(r.cookies(t,i),s[t]=i,u=!0);if(u){o=r.cookies();for(t in a)a[t]!==o[t]&&(l(o[t])?(delete a[t],delete s[t]):a[t]=s[t]=o[t])}}var o,a={},s={},u=!1,c=e.copy,l=e.isUndefined;return r.addPollFn(function(){var e=r.cookies();o!=e&&(o=e,c(e,s),c(e,a),u&&t.$apply())})(),u=!0,t.$watch(i),a}]).factory("$cookieStore",["$cookies",function(t){return{get:function(n){var r=t[n];return r?e.fromJson(r):r},put:function(n,r){t[n]=e.toJson(r)},remove:function(e){delete t[e]}}}])}(window,window.angular),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(t){if(!angular.isObject(t))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,t)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(t,e,n,r,i,o,a,s,u){var c=this.options,l=c.startTop,f=c.startRight,h=c.verticalSpacing,d=c.horizontalSpacing,p=c.delay,m=[],v=!1,g=function(o,g){var $=s.defer();return"object"!=typeof o&&(o={message:o}),o.scope=o.scope?o.scope:i,o.template=o.templateUrl?o.templateUrl:c.templateUrl,o.delay=angular.isUndefined(o.delay)?p:o.delay,o.type=g?g:"",o.positionY=o.positionY?o.positionY:c.positionY,o.positionX=o.positionX?o.positionX:c.positionX,o.replaceMessage=o.replaceMessage?o.replaceMessage:c.replaceMessage,e.get(o.template,{cache:r}).success(function(e){var r=o.scope.$new();r.message=a.trustAsHtml(o.message),r.title=a.trustAsHtml(o.title),r.t=o.type.substr(0,1),r.delay=o.delay;var i=function(){for(var t=0,e=0,n=l,r=f,i=[],a=m.length-1;a>=0;a--){var s=m[a];if(o.replaceMessage&&a<m.length-1)s.addClass("killed");else{var u=parseInt(s[0].offsetHeight),c=parseInt(s[0].offsetWidth),p=i[s._positionY+s._positionX];v+u>window.innerHeight&&(p=l,e++,t=0);var v=n=p?0===t?p:p+h:l,g=r+e*(d+c);s.css(s._positionY,v+"px"),"center"==s._positionX?s.css("left",parseInt(window.innerWidth/2-c/2)+"px"):s.css(s._positionX,g+"px"),i[s._positionY+s._positionX]=v+u,t++}}},s=n(e)(r);s._positionY=o.positionY,s._positionX=o.positionX,s.addClass(o.type),s.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(t){t=t.originalEvent||t,("click"===t.type||"opacity"===t.propertyName&&t.elapsedTime>=1)&&(s.remove(),m.splice(m.indexOf(s),1),i())}),angular.isNumber(o.delay)&&t(function(){s.addClass("killed")},o.delay),angular.element(document.getElementsByTagName("body")).append(s);var c=-(parseInt(s[0].offsetHeight)+50);s.css(s._positionY,c+"px"),m.push(s),r._templateElement=s,r.kill=function(e){e?(m.splice(m.indexOf(r._templateElement),1),r._templateElement.remove(),t(i)):r._templateElement.addClass("killed")},t(i),v||(angular.element(u).bind("resize",function(){t(i)}),v=!0),$.resolve(r)}).error(function(t){throw new Error("Template ("+o.template+") could not be loaded. "+t)}),$.promise};return g.primary=function(t){return this(t,"primary")},g.error=function(t){return this(t,"error")},g.success=function(t){return this(t,"success")},g.info=function(t){return this(t,"info")},g.warning=function(t){return this(t,"warning")},g.clearAll=function(){angular.forEach(m,function(t){t.addClass("killed")})},g}]}),angular.module("ui-notification").run(["$templateCache",function(t){t.put("angular-ui-notification.html",'<div class="ui-notification"><h3 ng-show="title" ng-bind-html="title"></h3><div class="message" ng-bind-html="message"></div></div>')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(t,e,n){"use strict";function r(t,e){return V(new(V(function(){},{prototype:t})),e)}function i(t){return U(arguments,function(e){e!==t&&U(e,function(e,n){t.hasOwnProperty(n)||(t[n]=e)})}),t}function o(t,e){var n=[];for(var r in t.path){if(t.path[r]!==e.path[r])break;n.push(t.path[r])}return n}function a(t){if(Object.keys)return Object.keys(t);var e=[];return U(t,function(t,n){e.push(n)}),e}function s(t,e){if(Array.prototype.indexOf)return t.indexOf(e,Number(arguments[2])||0);var n=t.length>>>0,r=Number(arguments[2])||0;for(r=0>r?Math.ceil(r):Math.floor(r),0>r&&(r+=n);n>r;r++)if(r in t&&t[r]===e)return r;return-1}function u(t,e,n,r){var i,u=o(n,r),c={},l=[];for(var f in u)if(u[f]&&u[f].params&&(i=a(u[f].params),i.length))for(var h in i)s(l,i[h])>=0||(l.push(i[h]),c[i[h]]=t[i[h]]);return V({},c,e)}function c(t,e,n){if(!n){n=[];for(var r in t)n.push(r)}for(var i=0;i<n.length;i++){var o=n[i];if(t[o]!=e[o])return!1}return!0}function l(t,e){var n={};return U(t,function(t){n[t]=e[t]}),n}function f(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return U(n,function(n){n in t&&(e[n]=t[n])}),e}function h(t){var e={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var r in t)-1==s(n,r)&&(e[r]=t[r]);return e}function d(t,e){var n=L(t),r=n?[]:{};return U(t,function(t,i){e(t,i)&&(r[n?r.length:i]=t)}),r}function p(t,e){var n=L(t)?[]:{};return U(t,function(t,r){n[r]=e(t,r)}),n}function m(t,e){var r=1,o=2,u={},c=[],l=u,f=V(t.when(u),{$$promises:u,$$values:u});this.study=function(u){function d(t,n){if($[n]!==o){if(g.push(n),$[n]===r)throw g.splice(0,s(g,n)),new Error("Cyclic dependency: "+g.join(" -> "));if($[n]=r,F(t))v.push(n,[function(){return e.get(t)}],c);else{var i=e.annotate(t);U(i,function(t){t!==n&&u.hasOwnProperty(t)&&d(u[t],t)}),v.push(n,t,i)}g.pop(),$[n]=o}}function p(t){return B(t)&&t.then&&t.$$promises}if(!B(u))throw new Error("'invocables' must be an object");var m=a(u||{}),v=[],g=[],$={};return U(u,d),u=g=$=null,function(r,o,a){function s(){--b||(w||i(y,o.$$values),g.$$values=y,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,d.resolve(y))}function u(t){g.$$failure=t,d.reject(t)}function c(n,i,o){function c(t){f.reject(t),u(t)}function l(){if(!P(g.$$failure))try{f.resolve(e.invoke(i,a,y)),f.promise.then(function(t){y[n]=t,s()},c)}catch(t){c(t)}}var f=t.defer(),h=0;U(o,function(t){$.hasOwnProperty(t)&&!r.hasOwnProperty(t)&&(h++,$[t].then(function(e){y[t]=e,--h||l()},c))}),h||l(),$[n]=f.promise}if(p(r)&&a===n&&(a=o,o=r,r=null),r){if(!B(r))throw new Error("'locals' must be an object")}else r=l;if(o){if(!p(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=f;var d=t.defer(),g=d.promise,$=g.$$promises={},y=V({},r),b=1+v.length/3,w=!1;if(P(o.$$failure))return u(o.$$failure),g;o.$$inheritedValues&&i(y,h(o.$$inheritedValues,m)),V($,o.$$promises),o.$$values?(w=i(y,h(o.$$values,m)),g.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(g.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,u));for(var _=0,x=v.length;x>_;_+=3)r.hasOwnProperty(v[_])?s():c(v[_],v[_+1],v[_+2]);return g}},this.resolve=function(t,e,n,r){return this.study(t)(e,n,r)}}function v(t,e,n){this.fromConfig=function(t,e,n){return P(t.template)?this.fromString(t.template,e):P(t.templateUrl)?this.fromUrl(t.templateUrl,e):P(t.templateProvider)?this.fromProvider(t.templateProvider,e,n):null},this.fromString=function(t,e){return R(t)?t(e):t},this.fromUrl=function(n,r){return R(n)&&(n=n(r)),null==n?null:t.get(n,{cache:e,headers:{Accept:"text/html"}}).then(function(t){return t.data})},this.fromProvider=function(t,e,r){return n.invoke(t,null,r||{params:e})}}function g(t,e,i){function o(e,n,r,i){if(v.push(e),p[e])return p[e];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(e))throw new Error("Invalid parameter name '"+e+"' in pattern '"+t+"'");if(m[e])throw new Error("Duplicate parameter name '"+e+"' in pattern '"+t+"'");return m[e]=new W.Param(e,n,r,i),m[e]}function a(t,e,n,r){var i=["",""],o=t.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!e)return o;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:o=o.replace(/\/$/,""),i=["(?:/(",")|/)?"];break;default:i=["("+n+"|",")?"]}return o+i[0]+e+i[1]}function s(i,o){var a,s,u,c,l;return a=i[2]||i[3],l=e.params[a],u=t.substring(h,i.index),s=o?i[4]:i[4]||("*"==i[1]?".*":null),s&&(c=W.type(s)||r(W.type("string"),{pattern:new RegExp(s,e.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:u,type:c,cfg:l}}e=V({params:{}},B(e)?e:{});var u,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,f="^",h=0,d=this.segments=[],p=i?i.params:{},m=this.params=i?i.params.$$new():new W.ParamSet,v=[];this.source=t;for(var g,$,y;(u=c.exec(t))&&(g=s(u,!1),!(g.segment.indexOf("?")>=0));)$=o(g.id,g.type,g.cfg,"path"),f+=a(g.segment,$.type.pattern.source,$.squash,$.isOptional),d.push(g.segment),h=c.lastIndex;y=t.substring(h);var b=y.indexOf("?");if(b>=0){var w=this.sourceSearch=y.substring(b);if(y=y.substring(0,b),this.sourcePath=t.substring(0,h+b),w.length>0)for(h=0;u=l.exec(w);)g=s(u,!0),$=o(g.id,g.type,g.cfg,"search"),h=c.lastIndex}else this.sourcePath=t,this.sourceSearch="";f+=a(y)+(e.strict===!1?"/?":"")+"$",d.push(y),this.regexp=new RegExp(f,e.caseInsensitive?"i":n),this.prefix=d[0],this.$$paramNames=v}function $(t){V(this,t)}function y(){function t(t){return null!=t?t.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):t}function i(t){return null!=t?t.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):t}function o(){return{strict:m,caseInsensitive:h}}function u(t){return R(t)||L(t)&&R(t[t.length-1])}function c(){for(;_.length;){var t=_.shift();if(t.pattern)throw new Error("You cannot override a type's .pattern at runtime.");e.extend(b[t.name],f.invoke(t.def))}}function l(t){V(this,t||{})}W=this;var f,h=!1,m=!0,v=!1,b={},w=!0,_=[],x={string:{encode:t,decode:i,is:function(t){return null==t||!P(t)||"string"==typeof t},pattern:/[^\/]*/},"int":{encode:t,decode:function(t){return parseInt(t,10)},is:function(t){return P(t)&&this.decode(t.toString())===t},pattern:/\d+/},bool:{encode:function(t){return t?1:0},decode:function(t){return 0!==parseInt(t,10)},is:function(t){return t===!0||t===!1},pattern:/0|1/},date:{encode:function(t){return this.is(t)?[t.getFullYear(),("0"+(t.getMonth()+1)).slice(-2),("0"+t.getDate()).slice(-2)].join("-"):n},decode:function(t){if(this.is(t))return t;var e=this.capture.exec(t);return e?new Date(e[1],e[2]-1,e[3]):n},is:function(t){return t instanceof Date&&!isNaN(t.valueOf())},equals:function(t,e){return this.is(t)&&this.is(e)&&t.toISOString()===e.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:e.toJson,decode:e.fromJson,is:e.isObject,equals:e.equals,pattern:/[^\/]*/},any:{encode:e.identity,decode:e.identity,equals:e.equals,pattern:/.*/}};y.$$getDefaultValue=function(t){if(!u(t.value))return t.value;if(!f)throw new Error("Injectable functions cannot be called at configuration time");return f.invoke(t.value)},this.caseInsensitive=function(t){return P(t)&&(h=t),h},this.strictMode=function(t){return P(t)&&(m=t),m},this.defaultSquashPolicy=function(t){if(!P(t))return v;if(t!==!0&&t!==!1&&!F(t))throw new Error("Invalid squash policy: "+t+". Valid policies: false, true, arbitrary-string");return v=t,t},this.compile=function(t,e){return new g(t,V(o(),e))},this.isMatcher=function(t){if(!B(t))return!1;var e=!0;return U(g.prototype,function(n,r){R(n)&&(e=e&&P(t[r])&&R(t[r]))}),e},this.type=function(t,e,n){if(!P(e))return b[t];if(b.hasOwnProperty(t))throw new Error("A type named '"+t+"' has already been defined.");return b[t]=new $(V({name:t},e)),n&&(_.push({name:t,def:n}),w||c()),this},U(x,function(t,e){b[e]=new $(V({name:e},t))}),b=r(b,{}),this.$get=["$injector",function(t){return f=t,w=!1,c(),U(x,function(t,e){b[e]||(b[e]=new $(t))}),this}],this.Param=function(t,r,i,o){function c(t){var e=B(t)?a(t):[],n=-1===s(e,"value")&&-1===s(e,"type")&&-1===s(e,"squash")&&-1===s(e,"array");return n&&(t={value:t}),t.$$fn=u(t.value)?t.value:function(){return t.value},t}function l(n,r,i){if(n.type&&r)throw new Error("Param '"+t+"' has two type configurations.");return r?r:n.type?e.isString(n.type)?b[n.type]:n.type instanceof $?n.type:new $(n.type):"config"===i?b.any:b.string}function h(){var e={array:"search"===o?"auto":!1},n=t.match(/\[\]$/)?{array:!0}:{};return V(e,n,i).array}function m(t,e){var n=t.squash;if(!e||n===!1)return!1;if(!P(n)||null==n)return v;if(n===!0||F(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function g(t,e,r,i){var o,a,u=[{from:"",to:r||e?n:""},{from:null,to:r||e?n:""}];return o=L(t.replace)?t.replace:[],F(i)&&o.push({from:i,to:n}),a=p(o,function(t){return t.from}),d(u,function(t){return-1===s(a,t.from)}).concat(o)}function y(){if(!f)throw new Error("Injectable functions cannot be called at configuration time");var t=f.invoke(i.$$fn);if(null!==t&&t!==n&&!x.type.is(t))throw new Error("Default value ("+t+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return t}function w(t){function e(t){return function(e){return e.from===t}}function n(t){var n=p(d(x.replace,e(t)),function(t){return t.to});return n.length?n[0]:t}return t=n(t),P(t)?x.type.$normalize(t):y()}function _(){return"{Param:"+t+" "+r+" squash: '"+k+"' optional: "+E+"}"}var x=this;i=c(i),r=l(i,r,o);var C=h();r=C?r.$asArray(C,"search"===o):r,
+"string"!==r.name||C||"path"!==o||i.value!==n||(i.value="");var E=i.value!==n,k=m(i,E),A=g(i,C,E,k);V(this,{id:t,type:r,location:o,array:C,squash:k,replace:A,isOptional:E,value:w,dynamic:n,config:i,toString:_})},l.prototype={$$new:function(){return r(this,V(new l,{$$parent:this}))},$$keys:function(){for(var t=[],e=[],n=this,r=a(l.prototype);n;)e.push(n),n=n.$$parent;return e.reverse(),U(e,function(e){U(a(e),function(e){-1===s(t,e)&&-1===s(r,e)&&t.push(e)})}),t},$$values:function(t){var e={},n=this;return U(n.$$keys(),function(r){e[r]=n[r].value(t&&t[r])}),e},$$equals:function(t,e){var n=!0,r=this;return U(r.$$keys(),function(i){var o=t&&t[i],a=e&&e[i];r[i].type.equals(o,a)||(n=!1)}),n},$$validates:function(t){var r,i,o,a,s,u=this.$$keys();for(r=0;r<u.length&&(i=this[u[r]],o=t[u[r]],o!==n&&null!==o||!i.isOptional);r++){if(a=i.type.$normalize(o),!i.type.is(a))return!1;if(s=i.type.encode(a),e.isString(s)&&!i.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=l}function b(t,r){function i(t){var e=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(t.source);return null!=e?e[1].replace(/\\(.)/g,"$1"):""}function o(t,e){return t.replace(/\$(\$|\d{1,2})/,function(t,n){return e["$"===n?0:Number(n)]})}function a(t,e,n){if(!n)return!1;var r=t.invoke(e,e,{$match:n});return P(r)?r:!0}function s(r,i,o,a,s){function h(t,e,n){return"/"===v?t:e?v.slice(0,-1)+t:n?v.slice(1)+t:t}function d(t){function e(t){var e=t(o,r);return e?(F(e)&&r.replace().url(e),!0):!1}if(!t||!t.defaultPrevented){m&&r.url()===m;m=n;var i,a=c.length;for(i=0;a>i;i++)if(e(c[i]))return;l&&e(l)}}function p(){return u=u||i.$on("$locationChangeSuccess",d)}var m,v=a.baseHref(),g=r.url();return f||p(),{sync:function(){d()},listen:function(){return p()},update:function(t){return t?void(g=r.url()):void(r.url()!==g&&(r.url(g),r.replace()))},push:function(t,e,i){var o=t.format(e||{});null!==o&&e&&e["#"]&&(o+="#"+e["#"]),r.url(o),m=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,o){if(!n.validates(i))return null;var a=t.html5Mode();e.isObject(a)&&(a=a.enabled),a=a&&s.history;var u=n.format(i);if(o=o||{},a||null===u||(u="#"+t.hashPrefix()+u),null!==u&&i&&i["#"]&&(u+="#"+i["#"]),u=h(u,a,o.absolute),!o.absolute||!u)return u;var c=!a&&u?"/":"",l=r.port();return l=80===l||443===l?"":":"+l,[r.protocol(),"://",r.host(),l,c,u].join("")}}}var u,c=[],l=null,f=!1;this.rule=function(t){if(!R(t))throw new Error("'rule' must be a function");return c.push(t),this},this.otherwise=function(t){if(F(t)){var e=t;t=function(){return e}}else if(!R(t))throw new Error("'rule' must be a function");return l=t,this},this.when=function(t,e){var n,s=F(e);if(F(t)&&(t=r.compile(t)),!s&&!R(e)&&!L(e))throw new Error("invalid 'handler' in when()");var u={matcher:function(t,e){return s&&(n=r.compile(e),e=["$match",function(t){return n.format(t)}]),V(function(n,r){return a(n,e,t.exec(r.path(),r.search()))},{prefix:F(t.prefix)?t.prefix:""})},regex:function(t,e){if(t.global||t.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=e,e=["$match",function(t){return o(n,t)}]),V(function(n,r){return a(n,e,t.exec(r.path()))},{prefix:i(t)})}},c={matcher:r.isMatcher(t),regex:t instanceof RegExp};for(var l in c)if(c[l])return this.rule(u[l](t,e));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(t){t===n&&(t=!0),f=t},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(t,i){function o(t){return 0===t.indexOf(".")||0===t.indexOf("^")}function h(t,e){if(!t)return n;var r=F(t),i=r?t:t.name,a=o(i);if(a){if(!e)throw new Error("No reference point given for path '"+i+"'");e=h(e);for(var s=i.split("."),u=0,c=s.length,l=e;c>u;u++)if(""!==s[u]||0!==u){if("^"!==s[u])break;if(!l.parent)throw new Error("Path '"+i+"' not valid for state '"+e.name+"'");l=l.parent}else l=e;s=s.slice(u).join("."),i=l.name+(l.name&&s?".":"")+s}var f=E[i];return!f||!r&&(r||f!==t&&f.self!==t)?n:f}function d(t,e){k[t]||(k[t]=[]),k[t].push(e)}function m(t){for(var e=k[t]||[];e.length;)v(e.shift())}function v(e){e=r(e,{self:e,resolve:e.resolve||{},toString:function(){return this.name}});var n=e.name;if(!F(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(E.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):F(e.parent)?e.parent:B(e.parent)&&F(e.parent.name)?e.parent.name:"";if(i&&!E[i])return d(i,e.self);for(var o in S)R(S[o])&&(e[o]=S[o](e,S.$delegates[o]));return E[n]=e,!e[A]&&e.url&&t.when(e.url,["$match","$stateParams",function(t,n){C.$current.navigable==e&&c(t,n)||C.transitionTo(e,t,{inherit:!0,location:!1})}]),m(n),e}function g(t){return t.indexOf("*")>-1}function $(t){for(var e=t.split("."),n=C.$current.name.split("."),r=0,i=e.length;i>r;r++)"*"===e[r]&&(n[r]="*");return"**"===e[0]&&(n=n.slice(s(n,e[1])),n.unshift("**")),"**"===e[e.length-1]&&(n.splice(s(n,e[e.length-2])+1,Number.MAX_VALUE),n.push("**")),e.length!=n.length?!1:n.join("")===e.join("")}function y(t,e){return F(t)&&!P(e)?S[t]:R(e)&&F(t)?(S[t]&&!S.$delegates[t]&&(S.$delegates[t]=S[t]),S[t]=e,this):this}function b(t,e){return B(t)?e=t:e.name=t,v(e),this}function w(t,i,o,s,f,d,m,v,y){function b(e,n,r,o){var a=t.$broadcast("$stateNotFound",e,n,r);if(a.defaultPrevented)return m.update(),T;if(!a.retry)return null;if(o.$retry)return m.update(),O;var s=C.transition=i.when(a.retry);return s.then(function(){return s!==C.transition?k:(e.options.$retry=!0,C.transitionTo(e.to,e.toParams,e.options))},function(){return T}),m.update(),s}function w(t,n,r,a,u,c){function h(){var n=[];return U(t.views,function(r,i){var a=r.resolve&&r.resolve!==t.resolve?r.resolve:{};a.$template=[function(){return o.load(i,{view:r,locals:u.globals,params:d,notify:c.notify})||""}],n.push(f.resolve(a,u.globals,u.resolve,t).then(function(n){if(R(r.controllerProvider)||L(r.controllerProvider)){var o=e.extend({},a,u.globals);n.$$controller=s.invoke(r.controllerProvider,null,o)}else n.$$controller=r.controller;n.$$state=t,n.$$controllerAs=r.controllerAs,u[i]=n}))}),i.all(n).then(function(){return u.globals})}var d=r?n:l(t.params.$$keys(),n),p={$stateParams:d};u.resolve=f.resolve(t.resolve,p,u.resolve,t);var m=[u.resolve.then(function(t){u.globals=t})];return a&&m.push(a),i.all(m).then(h).then(function(t){return u})}var k=i.reject(new Error("transition superseded")),S=i.reject(new Error("transition prevented")),T=i.reject(new Error("transition aborted")),O=i.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},C={params:{},current:x.self,$current:x,transition:null},C.reload=function(t){return C.transitionTo(C.current,d,{reload:t||!0,inherit:!1,notify:!0})},C.go=function(t,e,n){return C.transitionTo(t,e,V({inherit:!0,relative:C.$current},n))},C.transitionTo=function(e,n,o){n=n||{},o=V({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,c=C.$current,f=C.params,p=c.path,v=h(e,o.relative),g=n["#"];if(!P(v)){var $={to:e,toParams:n,options:o},y=b($,c.self,f,o);if(y)return y;if(e=$.to,n=$.toParams,o=$.options,v=h(e,o.relative),!P(v)){if(!o.relative)throw new Error("No such state '"+e+"'");throw new Error("Could not resolve '"+e+"' from state '"+o.relative+"'")}}if(v[A])throw new Error("Cannot transition to abstract state '"+e+"'");if(o.inherit&&(n=u(d,n||{},C.$current,v)),!v.params.$$validates(n))return O;n=v.params.$$values(n),e=v;var E=e.path,T=0,I=E[T],z=x.locals,M=[];if(o.reload){if(F(o.reload)||B(o.reload)){if(B(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var D=o.reload===!0?p[0]:h(o.reload);if(o.reload&&!D)throw new Error("No such reload state '"+(F(o.reload)?o.reload:o.reload.name)+"'");for(;I&&I===p[T]&&I!==D;)z=M[T]=I.locals,T++,I=E[T]}}else for(;I&&I===p[T]&&I.ownParams.$$equals(n,f);)z=M[T]=I.locals,T++,I=E[T];if(_(e,n,c,f,z,o))return g&&(n["#"]=g),C.params=n,q(C.params,d),q(l(e.params.$$keys(),d),e.locals.globals.$stateParams),o.location&&e.navigable&&e.navigable.url&&(m.push(e.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),C.transition=null,i.when(C.current);if(n=l(e.params.$$keys(),n||{}),g&&(n["#"]=g),o.notify&&t.$broadcast("$stateChangeStart",e.self,n,c.self,f,o).defaultPrevented)return t.$broadcast("$stateChangeCancel",e.self,n,c.self,f),null==C.transition&&m.update(),S;for(var j=i.when(z),N=T;N<E.length;N++,I=E[N])z=M[N]=r(z),j=w(I,n,I===e,j,z,o);var R=C.transition=j.then(function(){var r,i,a;if(C.transition!==R)return k;for(r=p.length-1;r>=T;r--)a=p[r],a.self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(r=T;r<E.length;r++)i=E[r],i.locals=M[r],i.self.onEnter&&s.invoke(i.self.onEnter,i.self,i.locals.globals);return C.transition!==R?k:(C.$current=e,C.current=e.self,C.params=n,q(C.params,d),C.transition=null,o.location&&e.navigable&&m.push(e.navigable.url,e.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&t.$broadcast("$stateChangeSuccess",e.self,n,c.self,f),m.update(!0),C.current)},function(r){return C.transition!==R?k:(C.transition=null,a=t.$broadcast("$stateChangeError",e.self,n,c.self,f,r),a.defaultPrevented||m.update(),i.reject(r))});return R},C.is=function(t,e,r){r=V({relative:C.$current},r||{});var i=h(t,r.relative);return P(i)?C.$current!==i?!1:e?c(i.params.$$values(e),d):!0:n},C.includes=function(t,e,r){if(r=V({relative:C.$current},r||{}),F(t)&&g(t)){if(!$(t))return!1;t=C.$current.name}var i=h(t,r.relative);return P(i)?P(C.$current.includes[i.name])?e?c(i.params.$$values(e),d,a(e)):!0:!1:n},C.href=function(t,e,r){r=V({lossy:!0,inherit:!0,absolute:!1,relative:C.$current},r||{});var i=h(t,r.relative);if(!P(i))return null;r.inherit&&(e=u(d,e||{},C.$current,i));var o=i&&r.lossy?i.navigable:i;return o&&o.url!==n&&null!==o.url?m.href(o.url,l(i.params.$$keys().concat("#"),e||{}),{absolute:r.absolute}):null},C.get=function(t,e){if(0===arguments.length)return p(a(E),function(t){return E[t].self});var n=h(t,e||C.$current);return n&&n.self?n.self:null},C}function _(t,e,n,r,i,o){function a(t,e,n){function r(e){return"search"!=t.params[e].location}var i=t.params.$$keys().filter(r),o=f.apply({},[t.params].concat(i)),a=new W.ParamSet(o);return a.$$equals(e,n)}return!o.reload&&t===n&&(i===n.locals||t.self.reloadOnSearch===!1&&a(n,r,e))?!0:void 0}var x,C,E={},k={},A="abstract",S={parent:function(t){if(P(t.parent)&&t.parent)return h(t.parent);var e=/^(.+)\.[^.]+$/.exec(t.name);return e?h(e[1]):x},data:function(t){return t.parent&&t.parent.data&&(t.data=t.self.data=r(t.parent.data,t.data)),t.data},url:function(t){var e=t.url,n={params:t.params||{}};if(F(e))return"^"==e.charAt(0)?i.compile(e.substring(1),n):(t.parent.navigable||x).url.concat(e,n);if(!e||i.isMatcher(e))return e;throw new Error("Invalid url '"+e+"' in state '"+t+"'")},navigable:function(t){return t.url?t:t.parent?t.parent.navigable:null},ownParams:function(t){var e=t.url&&t.url.params||new W.ParamSet;return U(t.params||{},function(t,n){e[n]||(e[n]=new W.Param(n,null,t,"config"))}),e},params:function(t){var e=f(t.ownParams,t.ownParams.$$keys());return t.parent&&t.parent.params?V(t.parent.params.$$new(),e):new W.ParamSet},views:function(t){var e={};return U(P(t.views)?t.views:{"":t},function(n,r){r.indexOf("@")<0&&(r+="@"+t.parent.name),e[r]=n}),e},path:function(t){return t.parent?t.parent.path.concat(t):[]},includes:function(t){var e=t.parent?V({},t.parent.includes):{};return e[t.name]=!0,e},$delegates:{}};x=v({name:"",url:"^",views:null,"abstract":!0}),x.navigable=null,this.decorator=y,this.state=b,this.$get=w,w.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function _(){function t(t,e){return{load:function(t,n){var r,i={template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}};return n=V(i,n),n.view&&(r=e.fromConfig(n.view,n.params,n.locals)),r}}}this.$get=t,t.$inject=["$rootScope","$templateFactory"]}function x(){var t=!1;this.useAnchorScroll=function(){t=!0},this.$get=["$anchorScroll","$timeout",function(e,n){return t?e:function(t){return n(function(){t[0].scrollIntoView()},0,!1)}}]}function C(t,n,r,i){function o(){return n.has?function(t){return n.has(t)?n.get(t):null}:function(t){try{return n.get(t)}catch(e){return null}}}function a(t,n){function r(t){return 1===X&&Y>=4?!!c.enabled(t):1===X&&Y>=2?!!c.enabled():!!u}var i={enter:function(t,e,n){e.after(t),n()},leave:function(t,e){t.remove(),e()}};if(t.noanimation)return i;if(c)return{enter:function(t,n,o){r(t)?e.version.minor>2?c.enter(t,null,n).then(o):c.enter(t,null,n,o):i.enter(t,n,o)},leave:function(t,n){r(t)?e.version.minor>2?c.leave(t).then(n):c.leave(t,n):i.leave(t,n)}};if(u){var o=u&&u(n,t);return{enter:function(t,e,n){o.enter(t,null,e),n()},leave:function(t,e){o.leave(t),e()}}}return i}var s=o(),u=s("$animator"),c=s("$animate"),l={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,s){return function(n,o,u){function c(){function t(){e&&e.remove(),n&&n.$destroy()}var e=f,n=d;n&&(n._willBeDestroyed=!0),h?(g.leave(h,function(){t(),f=null}),f=h):(t(),f=null),h=null,d=null}function l(a){var l,f=k(n,u,o,i),$=f&&t.$current&&t.$current.locals[f];if((a||$!==p)&&!n._willBeDestroyed){l=n.$new(),p=t.$current.locals[f],l.$emit("$viewContentLoading",f);var y=s(l,function(t){g.enter(t,o,function(){d&&d.$emit("$viewContentAnimationEnded"),(e.isDefined(v)&&!v||n.$eval(v))&&r(t)}),c()});h=y,d=l,d.$emit("$viewContentLoaded",f),d.$eval(m)}}var f,h,d,p,m=u.onload||"",v=u.autoscroll,g=a(u,n);n.$on("$stateChangeSuccess",function(){l(!1)}),l(!0)}}};return l}function E(t,e,n,r){return{restrict:"ECA",priority:-400,compile:function(i){var o=i.html();return function(i,a,s){var u=n.$current,c=k(i,s,a,r),l=u&&u.locals[c];if(l){a.data("$uiView",{name:c,state:l.$$state}),a.html(l.$template?l.$template:o);var f=t(a.contents());if(l.$$controller){l.$scope=i,l.$element=a;var h=e(l.$$controller,l);l.$$controllerAs&&(i[l.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}f(i)}}}}}function k(t,e,n,r){var i=r(e.uiView||e.name||"")(t),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function A(t,e){var n,r=t.match(/^\s*({[^}]*})\s*$/);if(r&&(t=e+"("+r[1]+")"),n=t.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+t+"'");return{state:n[1],paramExpr:n[3]||null}}function S(t){var e=t.parent().inheritedData("$uiView");return e&&e.state&&e.state.name?e.state:void 0}function T(t){var e="[object SVGAnimatedString]"===Object.prototype.toString.call(t.prop("href")),n="FORM"===t[0].nodeName;return{attr:n?"action":e?"xlink:href":"href",isAnchor:"A"===t.prop("tagName").toUpperCase(),clickable:!n}}function O(t,e,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||t.attr("target"))){var u=n(function(){e.go(s.state,s.params,s.options)});o.preventDefault();var c=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(u)}}}}function I(t,e){return{relative:S(t)||e.$current,inherit:!0}}function z(t,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var s=A(o.uiSref,t.current.name),u={state:s.state,href:null,params:null},c=T(i),l=a[1]||a[0];u.options=V(I(i,t),o.uiSrefOpts?r.$eval(o.uiSrefOpts):{});var f=function(n){n&&(u.params=e.copy(n)),u.href=t.href(s.state,u.params,u.options),l&&l.$$addStateInfo(s.state,u.params),null!==u.href&&o.$set(c.attr,u.href)};s.paramExpr&&(r.$watch(s.paramExpr,function(t){t!==u.params&&f(t)},!0),u.params=e.copy(r.$eval(s.paramExpr))),f(),c.clickable&&i.bind("click",O(i,t,n,c,function(){return u}))}}}function M(t,e){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,r,i,o){function a(e){f.state=e[0],f.params=e[1],f.options=e[2],f.href=t.href(f.state,f.params,f.options),u&&u.$$addStateInfo(f.state,f.params),f.href&&i.$set(s.attr,f.href)}var s=T(r),u=o[1]||o[0],c=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],l="["+c.map(function(t){return t||"null"}).join(", ")+"]",f={state:null,params:null,options:null,href:null};n.$watch(l,a,!0),a(n.$eval(l)),s.clickable&&r.bind("click",O(r,t,e,s,function(){return f}))}}}function D(t,e,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(e,r,i,o){function a(e,n,i){var o=t.get(e,S(r)),a=s(e,n);m.push({state:o||{name:e},params:n,hash:a}),v[a]=i}function s(t,n){if(!F(t))throw new Error("state should be a string");return B(n)?t+H(n):(n=e.$eval(n),B(n)?t+H(n):t)}function u(){for(var t=0;t<m.length;t++)f(m[t].state,m[t].params)?c(r,v[m[t].hash]):l(r,v[m[t].hash]),h(m[t].state,m[t].params)?c(r,d):l(r,d)}function c(t,e){o(function(){t.addClass(e)})}function l(t,e){t.removeClass(e)}function f(e,n){return t.includes(e.name,n)}function h(e,n){return t.is(e.name,n)}var d,p,m=[],v={};d=n(i.uiSrefActiveEq||"",!1)(e);try{p=e.$eval(i.uiSrefActive)}catch(g){}p=p||n(i.uiSrefActive||"",!1)(e),B(p)&&U(p,function(n,r){if(F(n)){var i=A(n,t.current.name);a(i.state,e.$eval(i.paramExpr),r)}}),this.$$addStateInfo=function(t,e){B(p)&&m.length>0||(a(t,e,p),u())},e.$on("$stateChangeSuccess",u),u()}]}}function j(t){var e=function(e,n){return t.is(e,n)};return e.$stateful=!0,e}function N(t){var e=function(e,n,r){return t.includes(e,n,r)};return e.$stateful=!0,e}var P=e.isDefined,R=e.isFunction,F=e.isString,B=e.isObject,L=e.isArray,U=e.forEach,V=e.extend,q=e.copy,H=e.toJson;e.module("ui.router.util",["ng"]),e.module("ui.router.router",["ui.router.util"]),e.module("ui.router.state",["ui.router.router","ui.router.util"]),e.module("ui.router",["ui.router.state"]),e.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],e.module("ui.router.util").service("$resolve",m),v.$inject=["$http","$templateCache","$injector"],e.module("ui.router.util").service("$templateFactory",v);var W;g.prototype.concat=function(t,e){var n={caseInsensitive:W.caseInsensitive(),strict:W.strictMode(),squash:W.defaultSquashPolicy()};return new g(this.sourcePath+t+this.sourceSearch,V(n,e),this)},g.prototype.toString=function(){return this.source},g.prototype.exec=function(t,e){function n(t){function e(t){return t.split("").reverse().join("")}function n(t){return t.replace(/\\-/g,"-")}var r=e(t).split(/-(?!\\)/),i=p(r,e);return p(i,n).reverse()}var r=this.regexp.exec(t);if(!r)return null;e=e||{};var i,o,a,s=this.parameters(),u=s.length,c=this.segments.length-1,l={};if(c!==r.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var f,h;for(i=0;c>i;i++){for(a=s[i],f=this.params[a],h=r[i+1],o=0;o<f.replace.length;o++)f.replace[o].from===h&&(h=f.replace[o].to);h&&f.array===!0&&(h=n(h)),P(h)&&(h=f.type.decode(h)),l[a]=f.value(h)}for(;u>i;i++){for(a=s[i],l[a]=this.params[a].value(e[a]),f=this.params[a],h=e[a],o=0;o<f.replace.length;o++)f.replace[o].from===h&&(h=f.replace[o].to);P(h)&&(h=f.type.decode(h)),l[a]=f.value(h)}return l},g.prototype.parameters=function(t){return P(t)?this.params[t]||null:this.$$paramNames},g.prototype.validates=function(t){return this.params.$$validates(t)},g.prototype.format=function(t){function e(t){return encodeURIComponent(t).replace(/-/g,function(t){return"%5C%"+t.charCodeAt(0).toString(16).toUpperCase()})}t=t||{};var n=this.segments,r=this.parameters(),i=this.params;if(!this.validates(t))return null;var o,a=!1,s=n.length-1,u=r.length,c=n[0];for(o=0;u>o;o++){var l=s>o,f=r[o],h=i[f],d=h.value(t[f]),m=h.isOptional&&h.type.equals(h.value(),d),v=m?h.squash:!1,g=h.type.encode(d);if(l){var $=n[o+1],y=o+1===s;if(v===!1)null!=g&&(c+=L(g)?p(g,e).join("-"):encodeURIComponent(g)),c+=$;else if(v===!0){var b=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=$.match(b)[1]}else F(v)&&(c+=v+$);y&&h.squash===!0&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==g||m&&v!==!1)continue;if(L(g)||(g=[g]),0===g.length)continue;g=p(g,encodeURIComponent).join("&"+f+"="),c+=(a?"&":"?")+(f+"="+g),a=!0}}return c},$.prototype.is=function(t,e){return!0},$.prototype.encode=function(t,e){return t},$.prototype.decode=function(t,e){return t},$.prototype.equals=function(t,e){return t==e},$.prototype.$subPattern=function(){var t=this.pattern.toString();return t.substr(1,t.length-2)},$.prototype.pattern=/.*/,$.prototype.toString=function(){return"{Type:"+this.name+"}"},$.prototype.$normalize=function(t){return this.is(t)?t:this.decode(t)},$.prototype.$asArray=function(t,e){function r(t,e){function r(t,e){return function(){return t[e].apply(t,arguments)}}function i(t){return L(t)?t:P(t)?[t]:[]}function o(t){switch(t.length){case 0:return n;case 1:return"auto"===e?t[0]:t;default:return t}}function a(t){return!t}function s(t,e){return function(n){if(L(n)&&0===n.length)return n;n=i(n);var r=p(n,t);return e===!0?0===d(r,a).length:o(r)}}function u(t){return function(e,n){var r=i(e),o=i(n);if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(!t(r[a],o[a]))return!1;return!0}}this.encode=s(r(t,"encode")),this.decode=s(r(t,"decode")),this.is=s(r(t,"is"),!0),this.equals=u(r(t,"equals")),this.pattern=t.pattern,this.$normalize=s(r(t,"$normalize")),this.name=t.name,this.$arrayMode=e}if(!t)return this;if("auto"===t&&!e)throw new Error("'auto' array mode is for query parameters only");return new r(this,t)},e.module("ui.router.util").provider("$urlMatcherFactory",y),e.module("ui.router.util").run(["$urlMatcherFactory",function(t){}]),b.$inject=["$locationProvider","$urlMatcherFactoryProvider"],e.module("ui.router.router").provider("$urlRouter",b),w.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],e.module("ui.router.state").factory("$stateParams",function(){return{}}).provider("$state",w),_.$inject=[],e.module("ui.router.state").provider("$view",_),e.module("ui.router.state").provider("$uiViewScroll",x);var X=e.version.major,Y=e.version.minor;C.$inject=["$state","$injector","$uiViewScroll","$interpolate"],E.$inject=["$compile","$controller","$state","$interpolate"],e.module("ui.router.state").directive("uiView",C),e.module("ui.router.state").directive("uiView",E),z.$inject=["$state","$timeout"],M.$inject=["$state","$timeout"],D.$inject=["$state","$stateParams","$interpolate"],e.module("ui.router.state").directive("uiSref",z).directive("uiSrefActive",D).directive("uiSrefActiveEq",D).directive("uiState",M),j.$inject=["$state"],N.$inject=["$state"],e.module("ui.router.state").filter("isState",j).filter("includedByState",N)}(window,window.angular),function(){"use strict";function t(e,r){function i(t,e){return function(){return t.apply(e,arguments)}}var o;if(r=r||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=r.touchBoundary||10,this.layer=e,this.tapDelay=r.tapDelay||200,this.tapTimeout=r.tapTimeout||700,!t.notNeeded(e)){for(var a=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,u=0,c=a.length;c>u;u++)s[a[u]]=i(s[a[u]],s);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,r){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,r):i.call(e,t,n,r)},e.addEventListener=function(t,n,r){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),r):i.call(e,t,n,r)}),"function"==typeof e.onclick&&(o=e.onclick,e.addEventListener("click",function(t){o(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,r=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=r&&/OS 4_\d(_\d)?/.test(navigator.userAgent),o=r&&/OS [6-7]_\d/.test(navigator.userAgent),a=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(r&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;r&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,o;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],r){if(o=window.getSelection(),o.rangeCount&&!o.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,a,s,u,c,l=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,a=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,o&&(c=t.changedTouches[0],l=document.elementFromPoint(c.pageX-window.pageXOffset,c.pageY-window.pageYOffset)||l,l.fastClickScrollParent=this.targetElement.fastClickScrollParent),s=l.tagName.toLowerCase(),"label"===s){if(e=this.findControl(l)){if(this.focus(l),n)return!1;l=e}}else if(this.needsFocus(l))return t.timeStamp-a>100||r&&window.top!==window&&"input"===s?(this.targetElement=null,!1):(this.focus(l),this.sendClick(l,t),r&&"select"===s||(this.targetElement=null,t.preventDefault()),!1);return r&&!i&&(u=l.fastClickScrollParent,u&&u.fastClickLastScrollTop!==u.scrollTop)?!0:(this.needsClick(l)||(t.preventDefault(),this.sendClick(l,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,r,i,o;if("undefined"==typeof window.ontouchstart)return!0;if(r=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(r>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(a&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],o>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),!function(t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):"undefined"!=typeof window?window.IconicJS=t():"undefined"!=typeof global?global.IconicJS=t():"undefined"!=typeof self&&(self.IconicJS=t())}(function(){var t;return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e){var n=(t("./modules/polyfills"),t("./modules/svg-injector")),r=t("./modules/extend"),i=t("./modules/responsive"),o=t("./modules/position"),a=t("./modules/container"),s=t("./modules/log"),u={},c=window.iconicSmartIconApis={},l=("file:"===window.location.protocol,0),f=function(t,e,i){e=r({},u,e||{});var o={evalScripts:e.evalScripts,pngFallback:e.pngFallback};o.each=function(t){if(t)if("string"==typeof t)s.debug(t);else if(t instanceof SVGSVGElement){var n=t.getAttribute("data-icon");if(n&&c[n]){var r=c[n](t);for(var i in r)t[i]=r[i]}/iconic-bg-/.test(t.getAttribute("class"))&&a.addBackground(t),h(t),l++,e&&e.each&&"function"==typeof e.each&&e.each(t)}},"string"==typeof t&&(t=document.querySelectorAll(t)),n(t,o,i)},h=function(t){var e=[];t?"string"==typeof t?e=document.querySelectorAll(t):void 0!==t.length?e=t:"object"==typeof t&&e.push(t):e=document.querySelectorAll("svg.iconic"),Array.prototype.forEach.call(e,function(t){t instanceof SVGSVGElement&&(t.update&&t.update(),i.refresh(t),
+o.refresh(t))})},d=function(){u.debug&&console.time&&console.time("autoInjectSelector - "+u.autoInjectSelector);var t=l;f(u.autoInjectSelector,{},function(){if(u.debug&&console.timeEnd&&console.timeEnd("autoInjectSelector - "+u.autoInjectSelector),s.debug("AutoInjected: "+(l-t)),i.refreshAll(),u.autoInjectDone&&"function"==typeof u.autoInjectDone){var e=l-t;u.autoInjectDone(e)}})},p=function(t){t&&""!==t&&"complete"!==document.readyState?document.addEventListener("DOMContentLoaded",d):document.removeEventListener("DOMContentLoaded",d)},m=function(t){return t=t||{},r(u,t),p(u.autoInjectSelector),s.enableDebug(u.debug),window._Iconic?window._Iconic:{inject:f,update:h,smartIconApis:c,svgInjectedCount:l}};e.exports=m,window._Iconic=new m({autoInjectSelector:"img.iconic",evalScripts:"once",pngFallback:!1,each:null,autoInjectDone:null,debug:!1})},{"./modules/container":2,"./modules/extend":3,"./modules/log":4,"./modules/polyfills":5,"./modules/position":6,"./modules/responsive":7,"./modules/svg-injector":8}],2:[function(t,e){var n=function(t){var e=t.getAttribute("class").split(" "),n=-1!==e.indexOf("iconic-fluid"),r=[],i=["iconic-bg"];Array.prototype.forEach.call(e,function(t){switch(t){case"iconic-sm":case"iconic-md":case"iconic-lg":r.push(t),n||i.push(t.replace(/-/,"-bg-"));break;case"iconic-fluid":r.push(t),i.push(t.replace(/-/,"-bg-"));break;case"iconic-bg-circle":case"iconic-bg-rounded-rect":case"iconic-bg-badge":i.push(t);break;default:r.push(t)}}),t.setAttribute("class",r.join(" "));var o=t.parentNode,a=Array.prototype.indexOf.call(o.childNodes,t),s=document.createElement("span");s.setAttribute("class",i.join(" ")),s.appendChild(t),o.insertBefore(s,o.childNodes[a])};e.exports={addBackground:n}},{}],3:[function(t,e){e.exports=function(t){return Array.prototype.forEach.call(Array.prototype.slice.call(arguments,1),function(e){if(e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])}),t}},{}],4:[function(t,e){var n=!1,r=function(t){console&&console.log&&console.log(t)},i=function(t){r("Iconic INFO: "+t)},o=function(t){r("Iconic WARNING: "+t)},a=function(t){n&&r("Iconic DEBUG: "+t)},s=function(t){n=t};e.exports={info:i,warn:o,debug:a,enableDebug:s}},{}],5:[function(){Array.prototype.forEach||(Array.prototype.forEach=function(t,e){"use strict";if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)}),function(){if(Event.prototype.preventDefault||(Event.prototype.preventDefault=function(){this.returnValue=!1}),Event.prototype.stopPropagation||(Event.prototype.stopPropagation=function(){this.cancelBubble=!0}),!Element.prototype.addEventListener){var t=[],e=function(e,n){var r=this,i=function(t){t.target=t.srcElement,t.currentTarget=r,n.handleEvent?n.handleEvent(t):n.call(r,t)};if("DOMContentLoaded"==e){var o=function(t){"complete"==document.readyState&&i(t)};if(document.attachEvent("onreadystatechange",o),t.push({object:this,type:e,listener:n,wrapper:o}),"complete"==document.readyState){var a=new Event;a.srcElement=window,o(a)}}else this.attachEvent("on"+e,i),t.push({object:this,type:e,listener:n,wrapper:i})},n=function(e,n){for(var r=0;r<t.length;){var i=t[r];if(i.object==this&&i.type==e&&i.listener==n){"DOMContentLoaded"==e?this.detachEvent("onreadystatechange",i.wrapper):this.detachEvent("on"+e,i.wrapper);break}++r}};Element.prototype.addEventListener=e,Element.prototype.removeEventListener=n,HTMLDocument&&(HTMLDocument.prototype.addEventListener=e,HTMLDocument.prototype.removeEventListener=n),Window&&(Window.prototype.addEventListener=e,Window.prototype.removeEventListener=n)}}()},{}],6:[function(t,e){var n=function(t){var e=t.getAttribute("data-position");if(e&&""!==e){var n,r,i,o,a,s,u,c=t.getAttribute("width"),l=t.getAttribute("height"),f=e.split("-"),h=t.querySelectorAll("g.iconic-container");Array.prototype.forEach.call(h,function(t){if(n=t.getAttribute("data-width"),r=t.getAttribute("data-height"),n!==c||r!==l){if(i=t.getAttribute("transform"),o=1,i){var e=i.match(/scale\((\d)/);o=e&&e[1]?e[1]:1}a=Math.floor((c/o-n)/2),s=Math.floor((l/o-r)/2),Array.prototype.forEach.call(f,function(t){switch(t){case"top":s=0;break;case"bottom":s=l/o-r;break;case"left":a=0;break;case"right":a=c/o-n;break;case"center":break;default:console&&console.log&&console.log("Unknown position: "+t)}}),u=0===s?a:a+" "+s,u="translate("+u+")",i?/translate/.test(i)?i=i.replace(/translate\(.*?\)/,u):i+=" "+u:i=u,t.setAttribute("transform",i)}})}};e.exports={refresh:n}},{}],7:[function(t,e){var n=/(iconic-sm\b|iconic-md\b|iconic-lg\b)/,r=function(t,e){var n="undefined"!=typeof window.getComputedStyle&&window.getComputedStyle(t,null).getPropertyValue(e);return!n&&t.currentStyle&&(n=t.currentStyle[e.replace(/([a-z])\-([a-z])/,function(t,e,n){return e+n.toUpperCase()})]||t.currentStyle[e]),n},i=function(t){var e=t.style.display;t.style.display="block";var n=parseFloat(r(t,"width").slice(0,-2)),i=parseFloat(r(t,"height").slice(0,-2));return t.style.display=e,{width:n,height:i}},o=function(){var t="/* Iconic Responsive Support Styles */\n.iconic-property-fill, .iconic-property-text {stroke: none !important;}\n.iconic-property-stroke {fill: none !important;}\nsvg.iconic.iconic-fluid {height:100% !important;width:100% !important;}\nsvg.iconic.iconic-sm:not(.iconic-size-md):not(.iconic-size-lg), svg.iconic.iconic-size-sm{width:16px;height:16px;}\nsvg.iconic.iconic-md:not(.iconic-size-sm):not(.iconic-size-lg), svg.iconic.iconic-size-md{width:32px;height:32px;}\nsvg.iconic.iconic-lg:not(.iconic-size-sm):not(.iconic-size-md), svg.iconic.iconic-size-lg{width:128px;height:128px;}\nsvg.iconic-sm > g.iconic-md, svg.iconic-sm > g.iconic-lg, svg.iconic-md > g.iconic-sm, svg.iconic-md > g.iconic-lg, svg.iconic-lg > g.iconic-sm, svg.iconic-lg > g.iconic-md {display: none;}\nsvg.iconic.iconic-icon-sm > g.iconic-lg, svg.iconic.iconic-icon-md > g.iconic-lg {display:none;}\nsvg.iconic-sm:not(.iconic-icon-md):not(.iconic-icon-lg) > g.iconic-sm, svg.iconic-md.iconic-icon-sm > g.iconic-sm, svg.iconic-lg.iconic-icon-sm > g.iconic-sm {display:inline;}\nsvg.iconic-md:not(.iconic-icon-sm):not(.iconic-icon-lg) > g.iconic-md, svg.iconic-sm.iconic-icon-md > g.iconic-md, svg.iconic-lg.iconic-icon-md > g.iconic-md {display:inline;}\nsvg.iconic-lg:not(.iconic-icon-sm):not(.iconic-icon-md) > g.iconic-lg, svg.iconic-sm.iconic-icon-lg > g.iconic-lg, svg.iconic-md.iconic-icon-lg > g.iconic-lg {display:inline;}";navigator&&navigator.userAgent&&/MSIE 10\.0/.test(navigator.userAgent)&&(t+="svg.iconic{zoom:1.0001;}");var e=document.createElement("style");e.id="iconic-responsive-css",e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),(document.head||document.getElementsByTagName("head")[0]).appendChild(e)},a=function(t){if(/iconic-fluid/.test(t.getAttribute("class"))){var e,r=i(t),o=t.viewBox.baseVal.width/t.viewBox.baseVal.height;e=1===o?Math.min(r.width,r.height):1>o?r.width:r.height;var a;a=32>e?"iconic-sm":e>=32&&128>e?"iconic-md":"iconic-lg";var s=t.getAttribute("class"),u=n.test(s)?s.replace(n,a):s+" "+a;t.setAttribute("class",u)}},s=function(){var t=document.querySelectorAll(".injected-svg.iconic-fluid");Array.prototype.forEach.call(t,function(t){a(t)})};document.addEventListener("DOMContentLoaded",function(){o()}),window.addEventListener("resize",function(){s()}),e.exports={refresh:a,refreshAll:s}},{}],8:[function(e,n,r){!function(e,i){"use strict";function o(t){t=t.split(" ");for(var e={},n=t.length,r=[];n--;)e.hasOwnProperty(t[n])||(e[t[n]]=1,r.unshift(t[n]));return r.join(" ")}var a="file:"===e.location.protocol,s=i.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),u=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var n,r=this.length>>>0;for(n=0;r>n;++n)n in this&&t.call(e,this[n],n,this)},c={},l=0,f=[],h=[],d={},p=function(t){return t.cloneNode(!0)},m=function(t,e){h[t]=h[t]||[],h[t].push(e)},v=function(t){for(var e=0,n=h[t].length;n>e;e++)!function(e){setTimeout(function(){h[t][e](p(c[t]))},0)}(e)},g=function(t,n){if(void 0!==c[t])c[t]instanceof SVGSVGElement?n(p(c[t])):m(t,n);else{if(!e.XMLHttpRequest)return n("Browser does not support XMLHttpRequest"),!1;c[t]={},m(t,n);var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4===r.readyState){if(404===r.status||null===r.responseXML)return n("Unable to load SVG file: "+t),a&&n("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),n(),!1;if(!(200===r.status||a&&0===r.status))return n("There was a problem injecting the SVG: "+r.status+" "+r.statusText),!1;if(r.responseXML instanceof Document)c[t]=r.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var e;try{var i=new DOMParser;e=i.parseFromString(r.responseText,"text/xml")}catch(o){e=void 0}if(!e||e.getElementsByTagName("parsererror").length)return n("Unable to parse SVG file: "+t),!1;c[t]=e.documentElement}v(t)}},r.open("GET",t),r.overrideMimeType&&r.overrideMimeType("text/xml"),r.send()}},$=function(t,n,r,i){var a=t.getAttribute("data-src")||t.getAttribute("src");if(!/svg$/i.test(a))return void i("Attempted to inject a file with a non-svg extension: "+a);if(!s){var c=t.getAttribute("data-fallback")||t.getAttribute("data-png");return void(c?(t.setAttribute("src",c),i(null)):r?(t.setAttribute("src",r+"/"+a.split("/").pop().replace(".svg",".png")),i(null)):i("This browser does not support SVG and no PNG fallback was defined."))}-1===f.indexOf(t)&&(f.push(t),t.setAttribute("src",""),g(a,function(r){if("undefined"==typeof r||"string"==typeof r)return i(r),!1;var s=t.getAttribute("id");s&&r.setAttribute("id",s);var c=t.getAttribute("title");c&&r.setAttribute("title",c);var h=[].concat(r.getAttribute("class")||[],"injected-svg",t.getAttribute("class")||[]).join(" ");r.setAttribute("class",o(h));var p=t.getAttribute("style");p&&r.setAttribute("style",p);var m=[].filter.call(t.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});u.call(m,function(t){t.name&&t.value&&r.setAttribute(t.name,t.value)});for(var v,g=r.querySelectorAll("defs clipPath[id]"),$=0,y=g.length;y>$;$++){v=g[$].id+"-"+l;for(var b=r.querySelectorAll('[clip-path*="'+g[$].id+'"]'),w=0,_=b.length;_>w;w++)b[w].setAttribute("clip-path","url(#"+v+")");g[$].id=v}r.removeAttribute("xmlns:a");for(var x,C,E=r.querySelectorAll("script"),k=[],A=0,S=E.length;S>A;A++)C=E[A].getAttribute("type"),C&&"application/ecmascript"!==C&&"application/javascript"!==C||(x=E[A].innerText||E[A].textContent,k.push(x),r.removeChild(E[A]));if(k.length>0&&("always"===n||"once"===n&&!d[a])){for(var T=0,O=k.length;O>T;T++)new Function(k[T])(e);d[a]=!0}t.parentNode.replaceChild(r,t),delete f[f.indexOf(t)],t=null,l++,i(r)}))},y=function(t,e,n){e=e||{};var r=e.evalScripts||"always",i=e.pngFallback||!1,o=e.each;if(void 0!==t.length){var a=0;u.call(t,function(e){$(e,r,i,function(e){o&&"function"==typeof o&&o(e),n&&t.length===++a&&n(a)})})}else t?$(t,r,i,function(e){o&&"function"==typeof o&&o(e),n&&n(1),t=null}):n&&n(0)};"object"==typeof n&&"object"==typeof n.exports?n.exports=r=y:"function"==typeof t&&t.amd?t(function(){return y}):"object"==typeof e&&(e.SVGInjector=y)}(window,document)},{}]},{},[1])(1)}),function(){"use strict";function t(){function t(t,e){e?t.addClass(a):t.removeClass(a)}function e(t,e,r,u){function c(){h(t),p(),t[0].style.transitionDuration="",t.removeClass($?"":a),d(),m=!1}function l(t){h(t),angular.element(t).off(s.join(" ")),m=!1}function f(t){var e={el:t,animation:v},r=n.filter(function(e){return e.el===t});if(r.length>0){var i=r[0].el[0];r[0].animation.cancelAnimation(i)}n.push(e)}function h(t){var e;n.filter(function(n,r){n.el===t&&(e=r)});e>=0&&n.splice(e,1)}function d(){return t[0].offsetWidth}function p(){t[0].style.transitionDuration=0,t.removeClass(i.join(" ")+" "+o.join(" ")+" "+r+" "+u)}var m=!0,v=this;v.cancelAnimation=l;var g=e?r:u,$=e,y=$?i[0]:i[1],b=$?o[0]:o[1];f(t),p(),t.addClass(g),t.addClass(y),t.addClass(a),d(),t[0].style.transitionDuration="",t.addClass(b),t.one(s.join(" "),function(){c()}),setTimeout(function(){m&&c()},3e3)}var n=[],r={},i=["ng-enter","ng-leave"],o=["ng-enter-active","ng-leave-active"],a="is-active",s=["webkitAnimationEnd","mozAnimationEnd","MSAnimationEnd","oanimationend","animationend","webkitTransitionEnd","otransitionend","transitionend"];return r.animate=e,r.toggleAnimation=t,r}angular.module("foundation.core.animation",[]).service("FoundationAnimation",t)}(),function(){"use strict";function t(t){function e(t,e){return l[t]||(l[t]=[]),l[t].push(e),!0}function n(t,e){void 0!==l[t]&&delete l[t],"function"==typeof e&&e.call(this)}function r(t,e){l[t]||(l[t]=[]),l[t].forEach(function(t){t(e)})}function i(){return f}function o(t){return f=angular.extend(f,t)}function a(){var t="";do{t+="zf-uuid-";for(var e=0;15>e;e++)t+=Math.floor(16*Math.random()).toString(16)}while(!h.indexOf(t));return h.push(t),t}function s(e,n){t.toggleAnimate(e,n)}function u(t){var e=this;t=t||{};var n=document.querySelectorAll(".is-active[zf-closable]"),r=document.querySelectorAll("[zf-closable] > .is-active");n.length&&angular.forEach(n,function(n){t.exclude!==n.id&&e.publish(n.id,"close")}),r.length&&angular.forEach(r,function(n){var r=n.parentNode.id;t.exclude!==r&&e.publish(r,"close")})}function c(e,n,r,i){t.animate(e,n,r,i)}var l={},f={},h=[],d={};return d.subscribe=e,d.unsubscribe=n,d.publish=r,d.getSettings=i,d.modifySettings=o,d.generateUuid=a,d.toggleAnimate=s,d.closeActiveElements=u,d.animate=c,d}function e(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function n(){function t(t,e){var n=null;return function(){var r=this,i=arguments;null===n&&(n=setTimeout(function(){t.apply(r,i),n=null},e))}}var e={};return e.throttle=t,e}angular.module("foundation.core",["foundation.core.animation"]).service("FoundationApi",t).service("FoundationAdapter",e).factory("Utils",n),t.$inject=["FoundationAnimation"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t,e){function n(n,r){function i(t,e,n,r,i){if(r.animation){if(!r.animation.leave&&!e.animation.leave)return;o(t,e,r)}}function o(t,e,n){p?(f(),r.addClass(n.animation.leave)):(l(),f(),r.removeClass(n.animation.leave))}function a(){d.leave&&r.removeClass(d.leave),l()}function s(){l(),e.includes(c())&&d.enter&&r.addClass(d.enter)}function u(t){t.targetScope===n&&d.enter&&r.removeClass(d.enter),p=!0}function c(){var t=r.data("$uiView"),e=t&&t.state&&t.state.self;return e&&angular.extend(d,e.animation),e}function l(){r.parent().removeClass("position-absolute"),h!==!0&&(r.parent()[0].style.height=null)}function f(){var t=parseInt(r.parent()[0].style.height),e=parseInt(window.getComputedStyle(r[0],null).getPropertyValue("height")),n=t>0?t:e>0?e:"";t>0&&(h=!0),r.parent()[0].style.height=n+"px",r.parent().addClass("position-absolute")}var h,d={},p=!1,m=[t.$on("$stateChangeStart",i),t.$on("$stateChangeError",a),n.$on("$stateChangeSuccess",s),n.$on("$viewContentAnimationEnded",u)],v=n.$on("$destroy",function(){angular.forEach(m,function(t){angular.isFunction(t)&&t()}),v()})}var r={restrict:"ECA",priority:-400,link:n};return r}angular.module("foundation.dynamicRouting.animations",["foundation.dynamicRouting"]).directive("uiView",t),t.$inject=["$rootScope","$state"]}(),function(){"use strict";function t(t){function e(t){var e={vars:{}};return t.data&&("object"==typeof t.data.vars&&(e.vars=t.data.vars),delete t.data.vars,angular.extend(e,t.data)),delete t.data,angular.extend(e.vars,t),e}function n(t,e){return{templateUrl:t,controller:r(e)}}function r(t){var e=t.controller||"DefaultController";return/\w\s+as\s+\w/.test(e)||(e+=" as PageCtrl"),e}function i(t){var e={};return t.animationIn&&(e.enter=t.animationIn),t.animationOut&&(e.leave=t.animationOut),e}var o={};this.registerDynamicRoutes=function(a){var s=a||foundationRoutes;angular.forEach(s,function(n){if(n.hasComposed)angular.isDefined(o[n.parent])||(o[n.parent]={children:{}}),n.controller&&(n.controller=r(n)),o[n.parent].children[n.name]=n;else if(n.composed)angular.isDefined(o[n.name])||(o[n.name]={children:{}}),n.controller&&(n.controller=r(n)),angular.extend(o[n.name],n);else{var a={url:n.url,templateUrl:n.path,"abstract":n["abstract"]||!1,parent:n.parent||"",controller:r(n),data:e(n),animation:i(n)};t.state(n.name,a)}}),angular.forEach(o,function(r){var o={url:r.url,parent:r.parent||"","abstract":r["abstract"]||!1,data:e(r),animation:i(r),views:{"":n(r.path,r)}};angular.forEach(r.children,function(t){o.views[t.name+"@"+r.name]=n(t.path,r)}),t.state(r.name,o)})},this.$get=angular.noop}function e(t,e,n){var r={};angular.forEach(e,function(t,e){r[e]=t}),t.params=r,t.current=n.current.name,n.current.views?(t.vars=n.current.data.vars,t.composed=n.current.data.vars.children):t.vars=n.current.data.vars}function n(t){t.registerDynamicRoutes(foundationRoutes)}function r(t,e,n){t.$state=e,t.$stateParams=n}angular.module("foundation.dynamicRouting",["ui.router"]).provider("$FoundationState",t).controller("DefaultController",e).config(n).run(r),t.$inject=["$stateProvider"],e.$inject=["$scope","$stateParams","$state"],n.$inject=["$FoundationStateProvider"],r.$inject=["$rootScope","$state","$stateParams"]}(),function(){"use strict";function t(t){t.init()}function e(t,e,n){function r(){var r,i;t.headerHelper(["foundation-mq"]),i=t.getStyle(".foundation-mq","font-family"),r=t.parseStyleToObject(i);for(var a in r)r[a]="only screen and (min-width: "+r[a].replace("rem","em")+")";e.modifySettings({mediaQueries:angular.extend(r,o)}),window.addEventListener("resize",n.throttle(function(){e.publish("resize","window resized")},50))}var i={},o={"default":"only screen",landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"};return i.init=r,i}function n(){function t(t){for(var e=t.length,n=angular.element(document.querySelectorAll("head"));e--;)n.append('<meta class="'+t[e]+'" />')}function e(t,e){var n=document.querySelectorAll(t)[0],r=window.getComputedStyle(n,null);return r.getPropertyValue("font-family")}function n(t){var e={};return"string"!=typeof t?e:(t=t.trim().slice(1,-1))?e=t.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),t.hasOwnProperty(r)?Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i,t},{}):e}var r={};return r.headerHelper=t,r.getStyle=e,r.parseStyleToObject=n,r}function r(t){function e(){return t.getSettings().mediaQueries}function n(t){var e=t.length,n=i.getMediaQueries(),r=[];if(e>0)for(;e--;){var o,a=t[e].media;o=n[a]?matchMedia(n[a]):matchMedia(a),o.matches&&r.push({ind:e})}return r}function r(t){var e=[],n=[],r=t.children(),i=0;return angular.forEach(r,function(t){var r=angular.element(t);r.attr("src")&&r.attr("src").match(/.html$/)?e[i]={media:r.attr("media"),src:r.attr("src")}:(n[i]=r,e[i]={media:r.attr("media"),templ:i}),i++}),{scenarios:e,templates:n}}var i=[];return i.getMediaQueries=e,i.match=n,i.collectScenariosFromElement=r,i}angular.module("foundation.mediaquery",["foundation.core"]).run(t).factory("FoundationMQInit",e).factory("mqHelpers",n).service("FoundationMQ",r),t.$inject=["FoundationMQInit"],e.$inject=["mqHelpers","FoundationApi","Utils"],r.$inject=["FoundationApi"]}(),angular.module("markdown",[]).directive("markdown",function(){return{restrict:"A",link:function(t,e,n,r){e.html(marked(e.html()))}}}),function(){var t={};angular.forEach(["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke"],function(e){t[e]=["$rootScope","$location","$interpolate","$sniffer","urlResolve","computeSVGAttrValue","svgAttrExpressions",function(t,n,r,i,o,a,s){return{restrict:"A",link:function(r,o,u){function c(){var t=a(l);t&&u[e]!==t&&u.$set(e,t)}var l;s.SVG_ELEMENT.test(o[0]&&o[0].toString())&&n.$$html5&&i.history&&(l=u[e],u.$observe(e,c),t.$on("$locationChangeSuccess",c))}}}]}),angular.module("ngSVGAttributes",[]).factory("urlResolve",[function(){var t=document.createElement("a");return function(e){return t.setAttribute("href",e),t}}]).value("svgAttrExpressions",{FUNC_URI:/^url\((.*)\)$/,SVG_ELEMENT:/SVG[a-zA-Z]*Element/,HASH_PART:/#.*/}).factory("computeSVGAttrValue",["$location","$sniffer","svgAttrExpressions","urlResolve",function(t,e,n,r){return function(e){var i,o;return(i=n.FUNC_URI.exec(e))&&(o=0===i[1].indexOf("#")?t.absUrl().replace(n.HASH_PART,"")+i[1]:r(i[1])),o?"url("+o+")":null}}]).directive(t)}(),function(){"use strict";function t(t){var e=this,n=e.sections=t.sections=[],r=(e.multiOpen=t.multiOpen=t.multiOpen||!1,e.collapsible=t.collapsible=t.multiOpen||t.collapsible||!0),i=e.autoOpen=t.autoOpen=t.autoOpen||!0;e.select=function(t){n.forEach(function(n){e.multiOpen?n.scope===t&&(n.scope.active=!n.scope.active):n.scope===t?n.scope.active=r?!n.scope.active:!0:n.scope.active=!1})},e.addSection=function(t){n.push({scope:t}),1===n.length&&i===!0&&(n[0].active=!0,n[0].scope.active=!0)},e.closeAll=function(){n.forEach(function(t){t.scope.active=!1})}}function e(){function t(t,e,n,r){t.multiOpen=r.multiOpen="true"===t.multiOpen?!0:!1,t.collapsible=r.collapsible="true"===t.collapsible?!0:!1,t.autoOpen=r.autoOpen="true"===t.autoOpen?!0:!1}var e={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/accordion/accordion.html",controller:"ZfAccordionController",scope:{multiOpen:"@?",collapsible:"@?",autoOpen:"@?"},link:t};return e}function n(){function t(t,e,n,r,i){t.active=!1,r.addSection(t),t.activate=function(){r.select(t)}}var e={restrict:"EA",templateUrl:"components/accordion/accordion-item.html",transclude:!0,scope:{title:"@"},require:"^zfAccordion",replace:!0,controller:function(){},link:t};return e}angular.module("foundation.accordion",[]).controller("ZfAccordionController",t).directive("zfAccordion",e).directive("zfAccordionItem",n),t.$inject=["$scope"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(t){var e=t.target,n=!1;do if(e.classList&&e.classList.contains("action-sheet-container")){n=!0;break}while(e=e.parentNode);if(!n){if(t.target.attributes["zf-toggle"]||t.target.attributes["zf-hard-toggle"])return;r()}}function r(){a.hide(),s.hide(),a.$apply(),s.$apply()}function i(){a.toggle(),s.toggle(),a.$apply(),s.$apply()}var o=this,a=o.content=t.content,s=o.container=t.container;angular.element(document.body);o.registerContent=function(t){a=t,a.active=!1},o.registerContainer=function(t){s=t,s.active=!1},o.toggle=i,o.hide=r,o.registerListener=function(){document.body.addEventListener("click",n)},o.deregisterListener=function(){document.body.removeEventListener("click",n)}}function n(t){function e(){function e(t,e,n){n.$set("zf-closable","actionsheet")}function n(e,n,r,i){var o=r.id||t.generateUuid();r.$set("id",o),e.active=!1,t.subscribe(o,function(t){"toggle"===t&&i.toggle(),("hide"===t||"close"===t)&&i.hide()}),i.registerContainer(e),e.toggle=function(){e.active=!e.active},e.hide=function(){e.active=!1}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet.html",controller:"ZfActionSheetController",compile:e};return n}function r(t){function e(t,e,n,r){t.active=!1,t.position=t.position||"bottom",r.registerContent(t),t.toggle=function(){t.active=!t.active,t.active?r.registerListener():r.deregisterListener()},t.hide=function(){t.active=!1,r.deregisterListener()}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-content.html",require:"^zfActionSheet",scope:{position:"@?"},link:e};return n}function i(t){function e(t,e,n,r){e.on("click",function(t){r.toggle(),t.preventDefault()})}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/actionsheet/actionsheet-button.html",require:"^zfActionSheet",scope:{title:"@?"},link:e};return n}angular.module("foundation.actionsheet",["foundation.core"]).controller("ZfActionSheetController",e).directive("zfActionSheet",n).directive("zfAsContent",r).directive("zfAsButton",i).service("FoundationActionSheet",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e,n,r){var i="";if(r.zfClose)i=r.zfClose;else{for(var o=!1,a=n.parent();o===!1;)"BODY"==a[0].nodeName&&(o=""),"undefined"!=typeof a.attr("zf-closable")&&a.attr("zf-closable")!==!1&&(o=a),a=a.parent();i=o.attr("id")}n.on("click",function(e){t.publish(i,"close"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function e(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfOpen,"open"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function n(t){function e(e,n,r){n.on("click",function(e){t.publish(r.zfToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}function r(t){function e(e,n,r){n.on("keyup",function(e){27===e.keyCode&&t.closeActiveElements(),e.preventDefault()})}var n={restrict:"A",link:e};return n}function i(t){function e(e,n,r){var i,o;switch(Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),r.zfSwipeClose){case"right":i="swiperight";break;case"left":i="swipeleft";break;case"up":i="swipeup";break;case"down":i="swipedown";break;default:i="swipe"}o.on(i,function(){t.publish(r.id,"close")})}var n={restrict:"A",link:e};return n}function o(t){function e(e,n,r){n.on("click",function(e){t.closeActiveElements({exclude:r.zfHardToggle}),t.publish(r.zfHardToggle,"toggle"),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.common",["foundation.core"]).directive("zfClose",t).directive("zfOpen",e).directive("zfToggle",n).directive("zfEscClose",r).directive("zfSwipeClose",i).directive("zfHardToggle",o),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"]}(),function(){"use strict";function t(){var t="assets/img/iconic/";this.setAssetPath=function(e){t=angular.isString(e)?e:t},this.$get=function(){function e(){return r}function n(){return t}var r=new IconicJS,i={getAccess:e,getAssetPath:n};return i}}function e(t,e,n){function r(){function r(e,n,r){if(a=e.iconDir?e.iconDir:t.getAssetPath(),"/"!==a.charAt(a.length-1)&&(a+="/"),e.dynSrc?r.$set("data-src",e.dynSrc):e.dynIcon?r.$set("data-src",a+e.dynIcon+".svg"):e.icon?r.$set("data-src",a+e.icon+".svg"):r.$set("data-src",r.src),!n.hasClass("iconic-sm")&&!n.hasClass("iconic-md")&&!n.hasClass("iconic-lg")){var i;switch(e.size){case"small":i="iconic-sm";break;case"medium":i="iconic-md";break;case"large":i="iconic-lg";break;default:i="iconic-fluid"}n.addClass(i)}o=n[0].outerHTML}function i(r,i,s){function u(t){l&&(l.empty(),l.append(angular.element(o)),l.attr("data-src",t),c(l[0]))}function c(t){f.inject(t,{each:function(t){var e=angular.element(t);l=n(e)(e.scope())}})}var l,f=t.getAccess();c(i[0]),e.subscribe("resize",function(){f.update(i[0])}),r.dynSrc&&r.$watch("dynSrc",function(t,e){t&&t!==e&&u(r.dynSrc)}),r.dynIcon&&r.$watch("dynIcon",function(t,e){t&&t!==e&&u(a+r.dynIcon+".svg")})}var o,a;return{pre:r,post:i}}var i={restrict:"A",template:"<img ng-transclude>",transclude:!0,replace:!0,scope:{dynSrc:"=?",dynIcon:"=?",size:"@?",icon:"@",iconDir:"@?"},compile:r};return i}angular.module("foundation.iconic",[]).provider("Iconic",t).directive("zfIconic",e),e.$inject=["Iconic","FoundationApi","$compile"]}(),function(){"use strict";function t(t,e,n,r,i){function o(o,a,s,u,c){function l(t){return e.get(t,{cache:n})}function f(t){var e=i.collectScenariosFromElement(t);m=e.scenarios,v=e.templates}function h(t){return!p||p!==t}var d,p,m,v;i.getMediaQueries();r.subscribe("resize",function(e){c(function(e,n){m&&v||f(e);var r=i.match(m),o=0===r.length?null:m[r[0].ind];if(o&&h(o)){if(d&&(d.$destroy(),d=null),"undefined"!=typeof o.templ){d=n;var s=document.createElement("div");s.appendChild(v[o.templ][0]),a.html(s.innerHTML),t(a.contents())(d),p=o}else{var u=l(o.src);u.success(function(t){d=n,a.html(t)}).then(function(){t(a.contents())(d),p=o})}}})}),r.publish("resize","initial resize")}var a={restrict:"EA",transclude:"element",scope:{position:"@"},replace:!0,template:"<div></div>",link:o};return a}angular.module("foundation.interchange",["foundation.core","foundation.mediaquery"]).directive("zfInterchange",t),t.$inject=["$compile","$http","$templateCache","FoundationApi","FoundationMQ"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}function i(t){return new e(t)}var o={};return o.activate=n,o.deactivate=r,o.newModal=i,o}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a)}function o(e,n,r){function i(){e.overlay||n.css("background","transparent"),t.animate(n,e.active,c,l),t.animate(a,e.active,s,u)}function o(){e.active&&e.show()}var a=angular.element(n.children()[0]);e.active=e.active||!1,e.overlay="false"===r.overlay?!1:!0,e.overlayClose="false"===r.overlayClose?!1:!0;var s=r.animationIn||"fadeIn",u=r.animationOut||"fadeOut",c="fadeIn",l="fadeOut";e.hideOverlay=function(){e.overlayClose&&e.hide()},e.hide=function(){e.active=!1,i()},e.show=function(){e.active=!0,i(),a.tabIndex=-1,a[0].focus()},e.toggle=function(){e.active=!e.active,i()},o(),t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root&&!e.$root.$$phase&&e.$apply()})}var a="modal";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/modal/modal.html",transclude:!0,scope:!0,replace:!0,compile:e};return n}function n(t,e,n,r,i,o,a){function s(s){function u(){if(C)throw"Error: Modal was destroyed. Delete the object and create a new ModalFactory instance."}function c(){u(),i(function(){h(!0),a.publish(_,"show")},0,!1)}function l(){u(),i(function(){h(!1),a.publish(_,"hide")},0,!1)}function f(){u(),i(function(){h(!0),a.publish(_,"toggle")},0,!1)}function h(t){o.when(g).then(function(){if(!x&&m.length>0){w.append(v);$.active=t,r(v)($),x=!0}})}function d(){if(!document.getElementById(_)){m='<zf-modal id="'+_+'">'+m+"</zf-modal>",v=angular.element(m),$=n.$new();for(var t=0;t<E.length;t++){var e=E[t];if(s[e])switch(e){case"animationIn":v.attr("animation-in",s[e]);break;case"animationOut":v.attr("animation-out",s[e]);break;default:v.attr(e,s[e])}}if(s.contentScope){y=s.contentScope;for(var e in s.contentScope)s.contentScope.hasOwnProperty(e)&&($[e]=s.contentScope[e])}}}function p(){b.deactivate(),setTimeout(function(){$.$destroy(),v.remove(),C=!0},3e3),a.unsubscribe(_)}var m,v,g,$,y,b=this,w=angular.element(s.container||document.body),_=s.id||a.generateUuid(),x=!1,C=!1,E=["animationIn","animationOut","overlay","overlayClose"];return s.templateUrl?g=t.get(s.templateUrl,{cache:e}).then(function(t){m=t.data,d()}):s.template&&(g=!0,m=s.template,d()),b.activate=c,b.deactivate=l,b.toggle=f,b.destroy=p,{activate:c,deactivate:l,toggle:f,destroy:p}}return s}angular.module("foundation.modal",["foundation.core"]).directive("zfModal",e).factory("ModalFactory",n),t.$inject=["FoundationApi","ModalFactory"],e.$inject=["FoundationApi"],n.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","$q","FoundationApi"]}(),function(){"use strict";function t(t,e){function n(e){t.publish(e,"show")}function r(e){t.publish(e,"hide")}var i={};return i.activate=n,i.deactivate=r,i}function e(t,e){
+var n=this;n.notifications=t.notifications=t.notifications||[],n.addNotification=function(n){var r=e.generateUuid();n.id=r,t.notifications.push(n)},n.removeNotification=function(e){t.notifications.forEach(function(n){if(n.id===e){var r=t.notifications.indexOf(n);t.notifications.splice(r,1)}})},n.clearAll=function(){for(;t.notifications.length>0;)t.notifications.pop()}}function n(t){function e(e,n,r,i){e.position=e.position?e.position.split(" ").join("-"):"top-right",t.subscribe(r.id,function(t){"clearall"===t?i.clearAll():(i.addNotification(t),e.$root.$$phase||e.$apply())})}var n={restrict:"EA",templateUrl:"components/notification/notification-set.html",controller:"ZfNotificationController",replace:!0,scope:{position:"@"},link:e};return n}function r(t){function e(){function e(t,e,n){n.$set("zf-closable","notification")}function n(e,n,r,i){e.active=!1;var o,a=r.animationIn||"fadeIn",s=r.animationOut||"fadeOut";setTimeout(function(){e.active=!0,t.animate(n,e.active,a,s)},50),e.hide=function(){e.active=!1,t.animate(n,e.active,a,s),setTimeout(function(){i.removeNotification(e.notifId)},50)},e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose)),Hammer&&(o=new Hammer(n[0]),o.get("swipe").set({direction:Hammer.DIRECTION_ALL,threshold:5,velocity:.5})),o.on("swipe",function(){e.active&&e.hide()})}return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification.html",replace:!0,transclude:!0,require:"^zfNotificationSet",controller:function(){},scope:{title:"=?",content:"=?",image:"=?",notifId:"=",color:"=?",autoclose:"=?"},compile:e};return n}function i(t){function e(){function e(t,e,n,i){n.$set("zf-closable",r)}function n(e,n,r,i){e.position=r.position?r.position.split(" ").join("-"):"top-right";var o=r.animationIn||"fadeIn",a=r.animationOut||"fadeOut";t.subscribe(r.id,function(r){"show"==r||"open"==r?(e.show(),e.autoclose&&setTimeout(function(){e.active&&e.hide()},parseInt(e.autoclose))):"close"==r||"hide"==r?e.hide():"toggle"==r&&(e.toggle(),e.autoclose&&setTimeout(function(){e.active&&e.toggle()},parseInt(e.autoclose))),t.animate(n,e.active,o,a),e.$apply()}),e.hide=function(){e.active=!1,t.animate(n,e.active,o,a)},e.show=function(){e.active=!0,t.animate(n,e.active,o,a)},e.toggle=function(){e.active=!e.active,t.animate(n,e.active,o,a)}}var r="notification";return{pre:e,post:n}}var n={restrict:"EA",templateUrl:"components/notification/notification-static.html",replace:!0,transclude:!0,scope:{title:"@?",content:"@?",image:"@?",color:"@?",autoclose:"@?"},compile:e};return n}function o(t){function e(e,n,r,i){n.on("click",function(n){t.publish(r.zfNotify,{title:e.title,content:e.content,color:e.color,image:e.image,autoclose:e.autoclose}),n.preventDefault()})}var n={restrict:"A",scope:{title:"@?",content:"@?",color:"@?",image:"@?",autoclose:"@?"},link:e};return n}function a(t,e,n,r,i,o){function a(t){function e(){if(y)throw"Error: Notification Set was destroyed. Delete the object and create a new NotificationFactory instance."}function a(t){e(),i(function(){o.publish(g,t)},0,!1)}function s(){e(),i(function(){o.publish(g,"clearall")},0,!1)}function u(t){if(!$&&f.length>0){v.append(h);d.active=t,r(h)(d),$=!0}}function c(){if(!document.getElementById(g)){f='<zf-notification-set id="'+g+'"></zf-notification-set>',h=angular.element(f),d=n.$new();for(var e=0;e<b.length;e++)t[b[e]]&&h.attr(b[e],t[b[e]]);if(t.contentScope){p=t.contentScope;for(var r in p)p.hasOwnProperty(r)&&(d[r]=p[r])}u(!0)}}function l(){m.clearAll(),setTimeout(function(){d.$destroy(),h.remove(),y=!0},3e3),o.unsubscribe(g)}var f,h,d,p,m=this,v=angular.element(t.container||document.body),g=t.id||o.generateUuid(),$=!1,y=!1,b=["position"];return c(),m.addNotification=a,m.clearAll=s,m.destroy=l,{addNotification:a,clearAll:s,destroy:l}}return a}angular.module("foundation.notification",["foundation.core"]).controller("ZfNotificationController",e).directive("zfNotificationSet",n).directive("zfNotification",r).directive("zfNotificationStatic",i).directive("zfNotify",o).factory("NotificationFactory",a).service("FoundationNotification",t),t.$inject=["FoundationApi","NotificationFactory"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["$http","$templateCache","$rootScope","$compile","$timeout","FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(e,n,r){function i(t,e,n,r){n.$set("zf-closable",a),document.body.classList.add("has-off-canvas")}function o(e,n,r){e.position=e.position||"left",e.active=!1,t.subscribe(r.id,function(t){"show"===t||"open"===t?e.show():"close"===t||"hide"===t?e.hide():"toggle"===t&&e.toggle(),e.$root.$$phase||e.$apply()}),e.hide=function(){e.active=!1},e.show=function(){e.active=!0},e.toggle=function(){e.active=!e.active}}var a="offcanvas";return{pre:i,post:o}}var n={restrict:"EA",templateUrl:"components/offcanvas/offcanvas.html",transclude:!0,scope:{position:"@"},replace:!0,compile:e};return n}angular.module("foundation.offcanvas",["foundation.core"]).directive("zfOffcanvas",e).service("FoundationOffcanvas",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t,e){function n(n,r,i){function o(t,e,n,r){n.$set("zf-closable",s),t.position=t.position||"left",t.positionClass="panel-"+t.position}function a(n,r,i){n.active=!1;var o,a,s=t.getSettings().mediaQueries;"left"===n.position?(o=i.animationIn||"slideInRight",a=i.animationOut||"slideOutLeft"):"right"===n.position?(o=i.animationIn||"slideInLeft",a=i.animationOut||"slideOutRight"):"top"===n.position?(o=i.animationIn||"slideInDown",a=i.animationOut||"slideOutUp"):"bottom"===n.position&&(o=i.animationIn||"slideInUp",a=i.animationOut||"slideOutBottom"),t.subscribe(i.id,function(t){var i=e.getComputedStyle(r[0]).getPropertyValue("position");"absolute"===i&&("show"==t||"open"==t?n.show():"close"==t||"hide"==t?n.hide():"toggle"==t&&n.toggle(),n.$root.$$phase||n.$apply())}),n.hide=function(){n.active&&(n.active=!1,t.animate(r,n.active,o,a))},n.show=function(){n.active||(n.active=!0,t.animate(r,n.active,o,a))},n.toggle=function(){n.active=!n.active,t.animate(r,n.active,o,a)},r.on("click",function(e){var i=e.srcElement;!matchMedia(s.medium).matches&&i.href&&i.href.length>0&&(n.hide(),t.animate(r,n.active,o,a))})}var s="panel";return{pre:o,post:a}}var r={restrict:"EA",templateUrl:"components/panel/panel.html",transclude:!0,scope:{position:"@?"},replace:!0,compile:n};return r}angular.module("foundation.panel",["foundation.core"]).directive("zfPanel",e).service("FoundationPanel",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi","$window"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}function n(e){t.publish(e,"hide")}var r={};return r.activate=e,r.deactivate=n,r}function e(t){function e(){function e(t,e,n){n.$set("zf-closable","popup")}function n(e,n,r){function i(t){s||(e.target=e.target?document.getElementById(e.target):document.getElementById(t),u=new Tether({element:n[0],target:e.target,attachment:o,targetAttachment:a,enable:!1}),s=!0)}e.active=!1,e.target=e.target||!1;var o=e.pinTo||"top center",a=e.pinAt||"bottom center",s=!1,u={};t.subscribe(r.id,function(t){"show"===t[0]||"open"===t[0]?e.show(t[1]):"close"===t[0]||"hide"===t[0]?e.hide():"toggle"===t[0]&&e.toggle(t[1]),e.$apply()}),e.hide=function(){e.active=!1,i(),u.disable()},e.show=function(t){e.active=!0,i(t),u.enable()},e.toggle=function(t){e.active=!e.active,i(t),e.active?u.enable():u.disable()}}return{pre:e,post:n}}var n={restrict:"EA",transclude:!0,replace:!0,templateUrl:"components/popup/popup.html",scope:{pinTo:"@?",pinAt:"@?",target:"@?"},compile:e};return n}function n(t){function e(e,n,r){var i=r.zfPopupToggle,o=r.id||t.generateUuid();r.$set("id",o),n.on("click",function(e){t.publish(i,["toggle",o]),e.preventDefault()})}var n={restrict:"A",link:e};return n}angular.module("foundation.popup",["foundation.core"]).directive("zfPopup",e).directive("zfPopupToggle",n).service("FoundationPopup",t),t.$inject=["FoundationApi"],e.$inject=["FoundationApi"],n.$inject=["FoundationApi"]}(),function(){"use strict";function t(t){function e(e){t.publish(e,"show")}var n={};return n.activate=e,n}function e(t,e){var n=this,r=n.tabs=t.tabs=[],i="";n.select=function(t){r.forEach(function(n){n.active=!1,n.scope.active=!1,n.scope===t&&(e.publish(i,["activate",n]),n.active=!0,n.scope.active=!0)})},n.addTab=function(t){r.push({scope:t,active:!1,parentContent:n.id}),1===r.length&&(r[0].active=!0,t.active=!0)},n.getId=function(){return i},n.setId=function(t){i=t}}function n(t){function e(e,n,r,i){e.id=r.id||t.generateUuid(),e.showTabContent="true"!==e.displaced,r.$set("id",e.id),i.setId(e.id);var o=function(){t.publish(e.id+"-tabs",e.tabs)};t.subscribe(e.id+"-get-tabs",function(){o()})}var n={restrict:"EA",transclude:"true",replace:!0,templateUrl:"components/tabs/tabs.html",controller:"ZfTabsController",scope:{displaced:"@?"},link:e};return n}function r(t){function e(e,n,r,i){e.tabs=e.tabs||[];var o=e.target;t.subscribe(o,function(t){if("activate"===t[0]){t[1];e.tabs.forEach(function(t){t.scope.active=!1,t.active=!1,t.scope.id===o&&(t.scope.active=!0,t.active=!0)})}}),0===e.tabs.length&&(t.subscribe(o+"-tabs",function(t){e.tabs=t}),t.publish(o+"-get-tabs",""))}var n={restrict:"A",transclude:"true",replace:!0,scope:{tabs:"=?",target:"@"},templateUrl:"components/tabs/tab-content.html",link:e};return n}function i(t){function e(e,n,r,i,o){e.id=r.id||t.generateUuid(),e.active=!1,e.transcludeFn=o,i.addTab(e),t.subscribe(e.id,function(t){("show"===t||"open"===t||"activate"===t)&&e.makeActive()}),e.makeActive=function(){i.select(e)}}var n={restrict:"EA",templateUrl:"components/tabs/tab.html",transclude:!0,scope:{title:"@"},require:"^zfTabs",replace:!0,link:e};return n}function o(t){function e(e,n,r,i,o){var a=e.$eval(r.tab);a.scope.id;a.scope.transcludeFn(a.scope,function(t){n.append(t)}),t.subscribe(a.scope.id,function(n){t.publish(a.parentContent,["activate",a.scope.id]),e.$apply()})}var n={restrict:"EA",transclude:"true",link:e};return n}function a(t){function e(e,n,r,i){function o(){n.parent().children().removeClass("is-active"),n.addClass("is-active")}var a=r.zfTabHref;t.subscribe(a,function(t){("activate"===t||"show"===t||"open"===t)&&o()}),n.on("click",function(e){t.publish(a,"activate"),o(),e.preventDefault()})}var n={restrict:"A",replace:!1,link:e};return n}function s(t){function e(t,e,n,r,i){var o=e.children();angular.element(o[0]).addClass("is-active")}var n={restrict:"A",replace:!1,link:e};return n}function u(t){function e(e,n,r){function i(t){var e=n.children();angular.forEach(e,function(e){var n=angular.element(e);n.removeClass("is-active"),n.attr("id")===t&&n.addClass("is-active")})}var o=[],a=n.children();angular.forEach(a,function(e){if(e.id){var n=e.id;if(o.push(n),t.subscribe(n,function(t){("activate"===t||"show"===t||"open"===t)&&i(n)}),1===o.length){var r=angular.element(e);r.addClass("is-active")}}})}return{restrict:"A",link:e}}angular.module("foundation.tabs",["foundation.core"]).controller("ZfTabsController",e).directive("zfTabs",n).directive("zfTabContent",r).directive("zfTab",i).directive("zfTabIndividual",o).directive("zfTabHref",a).directive("zfTabCustom",s).directive("zfTabContentCustom",u).service("FoundationTabs",t),t.$inject=["FoundationApi"],e.$inject=["$scope","FoundationApi"],n.$inject=["FoundationApi"],r.$inject=["FoundationApi"],i.$inject=["FoundationApi"],o.$inject=["FoundationApi"],a.$inject=["FoundationApi"],s.$inject=["FoundationApi"],u.$inject=["FoundationApi"]}(),function(){"use strict";angular.module("foundation",["foundation.core","foundation.mediaquery","foundation.accordion","foundation.actionsheet","foundation.common","foundation.iconic","foundation.interchange","foundation.modal","foundation.notification","foundation.offcanvas","foundation.panel","foundation.popup","foundation.tabs"])}(),function(t,e,n,r){"use strict";function i(t,e,n){return setTimeout(c(t,n),e)}function o(t,e,n){return Array.isArray(t)?(a(t,n[e],n),!0):!1}function a(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==r)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function s(e,n,r){var i="DEPRECATED METHOD: "+n+"\n"+r+" AT \n";return function(){var n=new Error("get-stack-trace"),r=n&&n.stack?n.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=t.console&&(t.console.warn||t.console.log);return o&&o.call(t.console,i,r),e.apply(this,arguments)}}function u(t,e,n){var r,i=e.prototype;r=t.prototype=Object.create(i),r.constructor=t,r._super=i,n&&st(r,n)}function c(t,e){return function(){return t.apply(e,arguments)}}function l(t,e){return typeof t==lt?t.apply(e?e[0]||r:r,e):t}function f(t,e){return t===r?e:t}function h(t,e,n){a(v(e),function(e){t.addEventListener(e,n,!1)})}function d(t,e,n){a(v(e),function(e){t.removeEventListener(e,n,!1)})}function p(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function m(t,e){return t.indexOf(e)>-1}function v(t){return t.trim().split(/\s+/g)}function g(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;r<t.length;){if(n&&t[r][n]==e||!n&&t[r]===e)return r;r++}return-1}function $(t){return Array.prototype.slice.call(t,0)}function y(t,e,n){for(var r=[],i=[],o=0;o<t.length;){var a=e?t[o][e]:t[o];g(i,a)<0&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function b(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),a=0;a<ut.length;){if(n=ut[a],i=n?n+o:e,i in t)return i;a++}return r}function w(){return vt++}function _(e){var n=e.ownerDocument||e;return n.defaultView||n.parentWindow||t}function x(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){l(t.options.enable,[t])&&n.handler(e)},this.init()}function C(t){var e,n=t.options.inputClass;return new(e=n?n:yt?R:bt?L:$t?V:P)(t,E)}function E(t,e,n){var r=n.pointers.length,i=n.changedPointers.length,o=e&kt&&r-i===0,a=e&(St|Tt)&&r-i===0;n.isFirst=!!o,n.isFinal=!!a,o&&(t.session={}),n.eventType=e,k(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function k(t,e){var n=t.session,r=e.pointers,i=r.length;n.firstInput||(n.firstInput=T(e)),i>1&&!n.firstMultiple?n.firstMultiple=T(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,u=e.center=O(r);e.timeStamp=dt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=D(s,u),e.distance=M(s,u),A(n,e),e.offsetDirection=z(e.deltaX,e.deltaY);var c=I(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=ht(c.x)>ht(c.y)?c.x:c.y,e.scale=a?N(a.pointers,r):1,e.rotation=a?j(a.pointers,r):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,S(n,e);var l=t.element;p(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function A(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};(e.eventType===kt||o.eventType===St)&&(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}function S(t,e){var n,i,o,a,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=Tt&&(u>Et||s.velocity===r)){var c=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,f=I(u,c,l);i=f.x,o=f.y,n=ht(f.x)>ht(f.y)?f.x:f.y,a=z(c,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,a=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=a}function T(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:ft(t.pointers[n].clientX),clientY:ft(t.pointers[n].clientY)},n++;return{timeStamp:dt(),pointers:e,center:O(e),deltaX:t.deltaX,deltaY:t.deltaY}}function O(t){var e=t.length;if(1===e)return{x:ft(t[0].clientX),y:ft(t[0].clientY)};for(var n=0,r=0,i=0;e>i;)n+=t[i].clientX,r+=t[i].clientY,i++;return{x:ft(n/e),y:ft(r/e)}}function I(t,e,n){return{x:e/t||0,y:n/t||0}}function z(t,e){return t===e?Ot:ht(t)>=ht(e)?0>t?It:zt:0>e?Mt:Dt}function M(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function D(t,e,n){n||(n=Rt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return 180*Math.atan2(i,r)/Math.PI}function j(t,e){return D(e[1],e[0],Ft)+D(t[1],t[0],Ft)}function N(t,e){return M(e[0],e[1],Ft)/M(t[0],t[1],Ft)}function P(){this.evEl=Lt,this.evWin=Ut,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function R(){this.evEl=Ht,this.evWin=Wt,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function F(){this.evTarget=Yt,this.evWin=Zt,this.started=!1,x.apply(this,arguments)}function B(t,e){var n=$(t.touches),r=$(t.changedTouches);return e&(St|Tt)&&(n=y(n.concat(r),"identifier",!0)),[n,r]}function L(){this.evTarget=Kt,this.targetIds={},x.apply(this,arguments)}function U(t,e){var n=$(t.touches),r=this.targetIds;if(e&(kt|At)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=$(t.changedTouches),s=[],u=this.target;if(o=n.filter(function(t){return p(t.target,u)}),e===kt)for(i=0;i<o.length;)r[o[i].identifier]=!0,i++;for(i=0;i<a.length;)r[a[i].identifier]&&s.push(a[i]),e&(St|Tt)&&delete r[a[i].identifier],i++;return s.length?[y(o.concat(s),"identifier",!0),s]:void 0}function V(){x.apply(this,arguments);var t=c(this.handler,this);this.touch=new L(this.manager,t),this.mouse=new P(this.manager,t)}function q(t,e){this.manager=t,this.set(e)}function H(t){if(m(t,re))return re;var e=m(t,ie),n=m(t,oe);return e&&n?re:e||n?e?ie:oe:m(t,ne)?ne:ee}function W(t){this.options=st({},this.defaults,t||{}),this.id=w(),this.manager=null,this.options.enable=f(this.options.enable,!0),this.state=ae,this.simultaneous={},this.requireFail=[]}function X(t){return t&fe?"cancel":t&ce?"end":t&ue?"move":t&se?"start":""}function Y(t){return t==Dt?"down":t==Mt?"up":t==It?"left":t==zt?"right":""}function Z(t,e){var n=e.manager;return n?n.get(t):t}function G(){W.apply(this,arguments)}function K(){G.apply(this,arguments),this.pX=null,this.pY=null}function J(){G.apply(this,arguments)}function Q(){W.apply(this,arguments),this._timer=null,this._input=null}function tt(){G.apply(this,arguments)}function et(){G.apply(this,arguments)}function nt(){W.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function rt(t,e){return e=e||{},e.recognizers=f(e.recognizers,rt.defaults.preset),new it(t,e)}function it(t,e){this.options=st({},rt.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.element=t,this.input=C(this),this.touchAction=new q(this,this.options.touchAction),ot(this,!0),a(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function ot(t,e){var n=t.element;n.style&&a(t.options.cssProps,function(t,r){n.style[b(n.style,r)]=e?t:""})}function at(t,n){var r=e.createEvent("Event");r.initEvent(t,!0,!0),r.gesture=n,n.target.dispatchEvent(r)}var st,ut=["","webkit","Moz","MS","ms","o"],ct=e.createElement("div"),lt="function",ft=Math.round,ht=Math.abs,dt=Date.now;st="function"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(i!==r&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(e[o]=i[o])}return e}:Object.assign;var pt=s(function(t,e,n){for(var i=Object.keys(e),o=0;o<i.length;)(!n||n&&t[i[o]]===r)&&(t[i[o]]=e[i[o]]),o++;return t},"extend","Use `assign`."),mt=s(function(t,e){return pt(t,e,!0)},"merge","Use `assign`."),vt=1,gt=/mobile|tablet|ip(ad|hone|od)|android/i,$t="ontouchstart"in t,yt=b(t,"PointerEvent")!==r,bt=$t&&gt.test(navigator.userAgent),wt="touch",_t="pen",xt="mouse",Ct="kinect",Et=25,kt=1,At=2,St=4,Tt=8,Ot=1,It=2,zt=4,Mt=8,Dt=16,jt=It|zt,Nt=Mt|Dt,Pt=jt|Nt,Rt=["x","y"],Ft=["clientX","clientY"];x.prototype={handler:function(){},init:function(){this.evEl&&h(this.element,this.evEl,this.domHandler),this.evTarget&&h(this.target,this.evTarget,this.domHandler),this.evWin&&h(_(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&d(this.element,this.evEl,this.domHandler),this.evTarget&&d(this.target,this.evTarget,this.domHandler),this.evWin&&d(_(this.element),this.evWin,this.domHandler)}};var Bt={mousedown:kt,mousemove:At,mouseup:St},Lt="mousedown",Ut="mousemove mouseup";u(P,x,{handler:function(t){var e=Bt[t.type];e&kt&&0===t.button&&(this.pressed=!0),e&At&&1!==t.which&&(e=St),this.pressed&&this.allow&&(e&St&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:xt,srcEvent:t}))}});var Vt={pointerdown:kt,pointermove:At,pointerup:St,pointercancel:Tt,pointerout:Tt},qt={2:wt,3:_t,4:xt,5:Ct},Ht="pointerdown",Wt="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ht="MSPointerDown",Wt="MSPointerMove MSPointerUp MSPointerCancel"),u(R,x,{handler:function(t){var e=this.store,n=!1,r=t.type.toLowerCase().replace("ms",""),i=Vt[r],o=qt[t.pointerType]||t.pointerType,a=o==wt,s=g(e,t.pointerId,"pointerId");i&kt&&(0===t.button||a)?0>s&&(e.push(t),s=e.length-1):i&(St|Tt)&&(n=!0),0>s||(e[s]=t,this.callback(this.manager,i,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(s,1))}});var Xt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Yt="touchstart",Zt="touchstart touchmove touchend touchcancel";u(F,x,{handler:function(t){var e=Xt[t.type];if(e===kt&&(this.started=!0),this.started){var n=B.call(this,t,e);e&(St|Tt)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}});var Gt={touchstart:kt,touchmove:At,touchend:St,touchcancel:Tt},Kt="touchstart touchmove touchend touchcancel";u(L,x,{handler:function(t){var e=Gt[t.type],n=U.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:wt,srcEvent:t})}}),u(V,x,{handler:function(t,e,n){var r=n.pointerType==wt,i=n.pointerType==xt;if(r)this.mouse.allow=!1;else if(i&&!this.mouse.allow)return;e&(St|Tt)&&(this.mouse.allow=!0),this.callback(t,e,n)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Jt=b(ct.style,"touchAction"),Qt=Jt!==r,te="compute",ee="auto",ne="manipulation",re="none",ie="pan-x",oe="pan-y";q.prototype={set:function(t){t==te&&(t=this.compute()),Qt&&this.manager.element.style&&(this.manager.element.style[Jt]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return a(this.manager.recognizers,function(e){l(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),H(t.join(" "))},preventDefaults:function(t){if(!Qt){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var r=this.actions,i=m(r,re),o=m(r,oe),a=m(r,ie);if(i){var s=1===t.pointers.length,u=t.distance<2,c=t.deltaTime<250;if(s&&u&&c)return}if(!a||!o)return i||o&&n&jt||a&&n&Nt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var ae=1,se=2,ue=4,ce=8,le=ce,fe=16,he=32;W.prototype={defaults:{},set:function(t){return st(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(o(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=Z(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return o(t,"dropRecognizeWith",this)?this:(t=Z(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(o(t,"requireFailure",this))return this;var e=this.requireFail;return t=Z(t,this),-1===g(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(o(t,"dropRequireFailure",this))return this;t=Z(t,this);var e=g(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,r=this.state;ce>r&&e(n.options.event+X(r)),e(n.options.event),t.additionalEvent&&e(t.additionalEvent),r>=ce&&e(n.options.event+X(r))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=he)},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(he|ae)))return!1;t++}return!0},recognize:function(t){var e=st({},t);return l(this.options.enable,[this,e])?(this.state&(le|fe|he)&&(this.state=ae),this.state=this.process(e),void(this.state&(se|ue|ce|fe)&&this.tryEmit(e))):(this.reset(),void(this.state=he))},process:function(t){},getTouchAction:function(){},reset:function(){}},u(G,W,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,r=e&(se|ue),i=this.attrTest(t);return r&&(n&Tt||!i)?e|fe:r||i?n&St?e|ce:e&se?e|ue:se:he}}),u(K,G,{defaults:{event:"pan",threshold:10,pointers:1,direction:Pt},getTouchAction:function(){var t=this.options.direction,e=[];return t&jt&&e.push(oe),t&Nt&&e.push(ie),e},directionTest:function(t){var e=this.options,n=!0,r=t.distance,i=t.direction,o=t.deltaX,a=t.deltaY;return i&e.direction||(e.direction&jt?(i=0===o?Ot:0>o?It:zt,n=o!=this.pX,r=Math.abs(t.deltaX)):(i=0===a?Ot:0>a?Mt:Dt,n=a!=this.pY,r=Math.abs(t.deltaY))),t.direction=i,n&&r>e.threshold&&i&e.direction},attrTest:function(t){return G.prototype.attrTest.call(this,t)&&(this.state&se||!(this.state&se)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Y(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),u(J,G,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&se)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),u(Q,W,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ee]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!r||!n||t.eventType&(St|Tt)&&!o)this.reset();else if(t.eventType&kt)this.reset(),this._timer=i(function(){this.state=le,this.tryEmit()},e.time,this);else if(t.eventType&St)return le;return he},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===le&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=dt(),this.manager.emit(this.options.event,this._input)))}}),u(tt,G,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[re]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&se)}}),u(et,G,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:jt|Nt,pointers:1},getTouchAction:function(){return K.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(jt|Nt)?e=t.overallVelocity:n&jt?e=t.overallVelocityX:n&Nt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&ht(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=Y(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(nt,W,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&kt&&0===this.count)return this.failTimeout();if(r&&o&&n){if(t.eventType!=St)return this.failTimeout();var a=this.pTime?t.timeStamp-this.pTime<e.interval:!0,s=!this.pCenter||M(this.pCenter,t.center)<e.posThreshold;this.pTime=t.timeStamp,this.pCenter=t.center,s&&a?this.count+=1:this.count=1,this._input=t;var u=this.count%e.taps;if(0===u)return this.hasRequireFailures()?(this._timer=i(function(){this.state=le,this.tryEmit()},e.interval,this),se):le}return he},failTimeout:function(){return this._timer=i(function(){this.state=he},this.options.interval,this),he},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==le&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),rt.VERSION="2.0.6",rt.defaults={domEvents:!1,touchAction:te,enable:!0,inputTarget:null,inputClass:null,preset:[[tt,{enable:!1}],[J,{enable:!1},["rotate"]],[et,{direction:jt}],[K,{direction:jt},["swipe"]],[nt],[nt,{event:"doubletap",taps:2},["tap"]],[Q]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var de=1,pe=2;it.prototype={set:function(t){return st(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?pe:de},recognize:function(t){var e=this.session;if(!e.stopped){this.touchAction.preventDefaults(t);var n,r=this.recognizers,i=e.curRecognizer;(!i||i&&i.state&le)&&(i=e.curRecognizer=null);for(var o=0;o<r.length;)n=r[o],e.stopped===pe||i&&n!=i&&!n.canRecognizeWith(i)?n.reset():n.recognize(t),!i&&n.state&(se|ue|ce)&&(i=e.curRecognizer=n),o++}},get:function(t){if(t instanceof W)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(o(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(o(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=g(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){var n=this.handlers;return a(v(t),function(t){n[t]=n[t]||[],n[t].push(e)}),this},off:function(t,e){var n=this.handlers;return a(v(t),function(t){e?n[t]&&n[t].splice(g(n[t],e),1):delete n[t]}),this},emit:function(t,e){this.options.domEvents&&at(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](e),r++}},destroy:function(){this.element&&ot(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},st(rt,{INPUT_START:kt,INPUT_MOVE:At,INPUT_END:St,INPUT_CANCEL:Tt,STATE_POSSIBLE:ae,STATE_BEGAN:se,STATE_CHANGED:ue,STATE_ENDED:ce,STATE_RECOGNIZED:le,STATE_CANCELLED:fe,STATE_FAILED:he,DIRECTION_NONE:Ot,DIRECTION_LEFT:It,DIRECTION_RIGHT:zt,DIRECTION_UP:Mt,DIRECTION_DOWN:Dt,DIRECTION_HORIZONTAL:jt,DIRECTION_VERTICAL:Nt,DIRECTION_ALL:Pt,Manager:it,Input:x,TouchAction:q,TouchInput:L,MouseInput:P,PointerEventInput:R,TouchMouseInput:V,SingleTouchInput:F,Recognizer:W,AttrRecognizer:G,Tap:nt,Pan:K,Swipe:et,Pinch:J,Rotate:tt,Press:Q,on:h,off:d,each:a,merge:mt,extend:pt,assign:st,inherit:u,bindFn:c,prefixed:b});var me="undefined"!=typeof t?t:"undefined"!=typeof self?self:{};me.Hammer=rt,"function"==typeof define&&define.amd?define(function(){return rt}):"undefined"!=typeof module&&module.exports?module.exports=rt:t[n]=rt}(window,document,"Hammer"),!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),
+e.JSZip=t()}}(function(){return function t(e,n,r){function i(a,s){if(!n[a]){if(!e[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(t,e){for(var n,i,o,a,s,u,c,l="",f=0;f<t.length;)n=t.charCodeAt(f++),i=t.charCodeAt(f++),o=t.charCodeAt(f++),a=n>>2,s=(3&n)<<4|i>>4,u=(15&i)<<2|o>>6,c=63&o,isNaN(i)?u=c=64:isNaN(o)&&(c=64),l=l+r.charAt(a)+r.charAt(s)+r.charAt(u)+r.charAt(c);return l},n.decode=function(t,e){var n,i,o,a,s,u,c,l="",f=0;for(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");f<t.length;)a=r.indexOf(t.charAt(f++)),s=r.indexOf(t.charAt(f++)),u=r.indexOf(t.charAt(f++)),c=r.indexOf(t.charAt(f++)),n=a<<2|s>>4,i=(15&s)<<4|u>>2,o=(3&u)<<6|c,l+=String.fromCharCode(n),64!=u&&(l+=String.fromCharCode(i)),64!=c&&(l+=String.fromCharCode(o));return l}},{}],2:[function(t,e,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},e.exports=r},{}],3:[function(t,e,n){"use strict";n.STORE={magic:"\x00\x00",compress:function(t,e){return t},uncompress:function(t){return t},compressInputType:null,uncompressInputType:null},n.DEFLATE=t("./flate")},{"./flate":8}],4:[function(t,e,n){"use strict";var r=t("./utils"),i=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];e.exports=function(t,e){if("undefined"==typeof t||!t.length)return 0;var n="string"!==r.getTypeOf(t);"undefined"==typeof e&&(e=0);var o=0,a=0,s=0;e=-1^e;for(var u=0,c=t.length;c>u;u++)s=n?t[u]:t.charCodeAt(u),a=255&(e^s),o=i[a],e=e>>>8^o;return-1^e}},{"./utils":21}],5:[function(t,e,n){"use strict";function r(t){this.data=null,this.length=0,this.index=0}var i=t("./utils");r.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<t||0>t)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,n=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)n=(n<<8)+this.byteAt(e);return this.index+=t,n},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date((t>>25&127)+1980,(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1)}},e.exports=r},{"./utils":21}],6:[function(t,e,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],7:[function(t,e,n){"use strict";var r=t("./utils");n.string2binary=function(t){return r.string2binary(t)},n.string2Uint8Array=function(t){return r.transformTo("uint8array",t)},n.uint8Array2String=function(t){return r.transformTo("string",t)},n.string2Blob=function(t){var e=r.transformTo("arraybuffer",t);return r.arrayBuffer2Blob(e)},n.arrayBuffer2Blob=function(t){return r.arrayBuffer2Blob(t)},n.transformTo=function(t,e){return r.transformTo(t,e)},n.getTypeOf=function(t){return r.getTypeOf(t)},n.checkSupport=function(t){return r.checkSupport(t)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(t){return r.pretty(t)},n.findCompression=function(t){return r.findCompression(t)},n.isRegExp=function(t){return r.isRegExp(t)}},{"./utils":21}],8:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=t("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\x00",n.compress=function(t,e){return i.deflateRaw(t,{level:e.level||-1})},n.uncompress=function(t){return i.inflateRaw(t)}},{pako:24}],9:[function(t,e,n){"use strict";function r(t,e){return this instanceof r?(this.files={},this.comment=null,this.root="",t&&this.load(t,e),void(this.clone=function(){var t=new r;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t})):new r(t,e)}var i=t("./base64");r.prototype=t("./object"),r.prototype.load=t("./load"),r.support=t("./support"),r.defaults=t("./defaults"),r.utils=t("./deprecatedPublicUtils"),r.base64={encode:function(t){return i.encode(t)},decode:function(t){return i.decode(t)}},r.compressions=t("./compressions"),e.exports=r},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(t,e,n){"use strict";var r=t("./base64"),i=t("./zipEntries");e.exports=function(t,e){var n,o,a,s;for(e=e||{},e.base64&&(t=r.decode(t)),o=new i(t,e),n=o.files,a=0;a<n.length;a++)s=n[a],this.file(s.fileName,s.decompressed,{binary:!0,optimizedBinaryString:!0,date:s.date,dir:s.dir,comment:s.fileComment.length?s.fileComment:null,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,createFolders:e.createFolders});return o.zipComment.length&&(this.comment=o.zipComment),this}},{"./base64":1,"./zipEntries":22}],11:[function(t,e,n){(function(t){"use strict";e.exports=function(e,n){return new t(e,n)},e.exports.test=function(e){return t.isBuffer(e)}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],12:[function(t,e,n){"use strict";function r(t){this.data=t,this.length=this.data.length,this.index=0}var i=t("./uint8ArrayReader");r.prototype=new i,r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./uint8ArrayReader":18}],13:[function(t,e,n){"use strict";var r=t("./support"),i=t("./utils"),o=t("./crc32"),a=t("./signature"),s=t("./defaults"),u=t("./base64"),c=t("./compressions"),l=t("./compressedObject"),f=t("./nodeBuffer"),h=t("./utf8"),d=t("./stringWriter"),p=t("./uint8ArrayWriter"),m=function(t){if(t._data instanceof l&&(t._data=t._data.getContent(),t.options.binary=!0,t.options.base64=!1,"uint8array"===i.getTypeOf(t._data))){var e=t._data;t._data=new Uint8Array(e.length),0!==e.length&&t._data.set(e,0)}return t._data},v=function(t){var e=m(t),n=i.getTypeOf(e);return"string"===n?!t.options.binary&&r.nodebuffer?f(e,"utf-8"):t.asBinary():e},g=function(t){var e=m(this);return null===e||"undefined"==typeof e?"":(this.options.base64&&(e=u.decode(e)),e=t&&this.options.binary?O.utf8decode(e):i.transformTo("string",e),t||this.options.binary||(e=i.transformTo("string",O.utf8encode(e))),e)},$=function(t,e,n){this.name=t,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=e,this.options=n,this._initialMetadata={dir:n.dir,date:n.date}};$.prototype={asText:function(){return g.call(this,!0)},asBinary:function(){return g.call(this,!1)},asNodeBuffer:function(){var t=v(this);return i.transformTo("nodebuffer",t)},asUint8Array:function(){var t=v(this);return i.transformTo("uint8array",t)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var y=function(t,e){var n,r="";for(n=0;e>n;n++)r+=String.fromCharCode(255&t),t>>>=8;return r},b=function(){var t,e,n={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&"undefined"==typeof n[e]&&(n[e]=arguments[t][e]);return n},w=function(t){return t=t||{},t.base64!==!0||null!==t.binary&&void 0!==t.binary||(t.binary=!0),t=b(t,s),t.date=t.date||new Date,null!==t.compression&&(t.compression=t.compression.toUpperCase()),t},_=function(t,e,n){var r,o=i.getTypeOf(e);if(n=w(n),"string"==typeof n.unixPermissions&&(n.unixPermissions=parseInt(n.unixPermissions,8)),n.unixPermissions&&16384&n.unixPermissions&&(n.dir=!0),n.dosPermissions&&16&n.dosPermissions&&(n.dir=!0),n.dir&&(t=C(t)),n.createFolders&&(r=x(t))&&E.call(this,r,!0),n.dir||null===e||"undefined"==typeof e)n.base64=!1,n.binary=!1,e=null,o=null;else if("string"===o)n.binary&&!n.base64&&n.optimizedBinaryString!==!0&&(e=i.string2binary(e));else{if(n.base64=!1,n.binary=!0,!(o||e instanceof l))throw new Error("The data of '"+t+"' is in an unsupported format !");"arraybuffer"===o&&(e=i.transformTo("uint8array",e))}var a=new $(t,e,n);return this.files[t]=a,a},x=function(t){"/"==t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return e>0?t.substring(0,e):""},C=function(t){return"/"!=t.slice(-1)&&(t+="/"),t},E=function(t,e){return e="undefined"!=typeof e?e:!1,t=C(t),this.files[t]||_.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]},k=function(t,e,n){var r,a=new l;return t._data instanceof l?(a.uncompressedSize=t._data.uncompressedSize,a.crc32=t._data.crc32,0===a.uncompressedSize||t.dir?(e=c.STORE,a.compressedContent="",a.crc32=0):t._data.compressionMethod===e.magic?a.compressedContent=t._data.getCompressedContent():(r=t._data.getContent(),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n))):(r=v(t),(!r||0===r.length||t.dir)&&(e=c.STORE,r=""),a.uncompressedSize=r.length,a.crc32=o(r),a.compressedContent=e.compress(i.transformTo(e.compressInputType,r),n)),a.compressedSize=a.compressedContent.length,a.compressionMethod=e.magic,a},A=function(t,e){var n=t;return t||(n=e?16893:33204),(65535&n)<<16},S=function(t,e){return 63&(t||0)},T=function(t,e,n,r,s){var u,c,l,f,d=(n.compressedContent,i.transformTo("string",h.utf8encode(e.name))),p=e.comment||"",m=i.transformTo("string",h.utf8encode(p)),v=d.length!==e.name.length,g=m.length!==p.length,$=e.options,b="",w="",_="";l=e._initialMetadata.dir!==e.dir?e.dir:$.dir,f=e._initialMetadata.date!==e.date?e.date:$.date;var x=0,C=0;l&&(x|=16),"UNIX"===s?(C=798,x|=A(e.unixPermissions,l)):(C=20,x|=S(e.dosPermissions,l)),u=f.getHours(),u<<=6,u|=f.getMinutes(),u<<=5,u|=f.getSeconds()/2,c=f.getFullYear()-1980,c<<=4,c|=f.getMonth()+1,c<<=5,c|=f.getDate(),v&&(w=y(1,1)+y(o(d),4)+d,b+="up"+y(w.length,2)+w),g&&(_=y(1,1)+y(this.crc32(m),4)+m,b+="uc"+y(_.length,2)+_);var E="";E+="\n\x00",E+=v||g?"\x00\b":"\x00\x00",E+=n.compressionMethod,E+=y(u,2),E+=y(c,2),E+=y(n.crc32,4),E+=y(n.compressedSize,4),E+=y(n.uncompressedSize,4),E+=y(d.length,2),E+=y(b.length,2);var k=a.LOCAL_FILE_HEADER+E+d+b,T=a.CENTRAL_FILE_HEADER+y(C,2)+E+y(m.length,2)+"\x00\x00\x00\x00"+y(x,4)+y(r,4)+d+b+m;return{fileRecord:k,dirRecord:T,compressedObject:n}},O={load:function(t,e){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(t){var e,n,r,i,o=[];for(e in this.files)this.files.hasOwnProperty(e)&&(r=this.files[e],i=new $(r.name,r._data,b(r.options)),n=e.slice(this.root.length,e.length),e.slice(0,this.root.length)===this.root&&t(n,i)&&o.push(i));return o},file:function(t,e,n){if(1===arguments.length){if(i.isRegExp(t)){var r=t;return this.filter(function(t,e){return!e.dir&&r.test(t)})}return this.filter(function(e,n){return!n.dir&&e===t})[0]||null}return t=this.root+t,_.call(this,t,e,n),this},folder:function(t){if(!t)return this;if(i.isRegExp(t))return this.filter(function(e,n){return n.dir&&t.test(e)});var e=this.root+t,n=E.call(this,e),r=this.clone();return r.root=n.name,r},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!=t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var n=this.filter(function(e,n){return n.name.slice(0,t.length)===t}),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(t){t=b(t||{},{base64:!0,compression:"STORE",compressionOptions:null,type:"base64",platform:"DOS",comment:null,mimeType:"application/zip"}),i.checkSupport(t.type),("darwin"===t.platform||"freebsd"===t.platform||"linux"===t.platform||"sunos"===t.platform)&&(t.platform="UNIX"),"win32"===t.platform&&(t.platform="DOS");var e,n,r=[],o=0,s=0,l=i.transformTo("string",this.utf8encode(t.comment||this.comment||""));for(var f in this.files)if(this.files.hasOwnProperty(f)){var h=this.files[f],m=h.options.compression||t.compression.toUpperCase(),v=c[m];if(!v)throw new Error(m+" is not a valid compression method !");var g=h.options.compressionOptions||t.compressionOptions||{},$=k.call(this,h,v,g),w=T.call(this,f,h,$,o,t.platform);o+=w.fileRecord.length+$.compressedSize,s+=w.dirRecord.length,r.push(w)}var _="";_=a.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+y(r.length,2)+y(r.length,2)+y(s,4)+y(o,4)+y(l.length,2)+l;var x=t.type.toLowerCase();for(e="uint8array"===x||"arraybuffer"===x||"blob"===x||"nodebuffer"===x?new p(o+s+_.length):new d(o+s+_.length),n=0;n<r.length;n++)e.append(r[n].fileRecord),e.append(r[n].compressedObject.compressedContent);for(n=0;n<r.length;n++)e.append(r[n].dirRecord);e.append(_);var C=e.finalize();switch(t.type.toLowerCase()){case"uint8array":case"arraybuffer":case"nodebuffer":return i.transformTo(t.type.toLowerCase(),C);case"blob":return i.arrayBuffer2Blob(i.transformTo("arraybuffer",C),t.mimeType);case"base64":return t.base64?u.encode(C):C;default:return C}},crc32:function(t,e){return o(t,e)},utf8encode:function(t){return i.transformTo("string",h.utf8encode(t))},utf8decode:function(t){return h.utf8decode(t)}};e.exports=O},{"./base64":1,"./compressedObject":2,"./compressions":3,"./crc32":4,"./defaults":6,"./nodeBuffer":11,"./signature":14,"./stringWriter":16,"./support":17,"./uint8ArrayWriter":19,"./utf8":20,"./utils":21}],14:[function(t,e,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],15:[function(t,e,n){"use strict";function r(t,e){this.data=t,e||(this.data=o.string2binary(this.data)),this.length=this.data.length,this.index=0}var i=t("./dataReader"),o=t("./utils");r.prototype=new i,r.prototype.byteAt=function(t){return this.data.charCodeAt(t)},r.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)},r.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5,"./utils":21}],16:[function(t,e,n){"use strict";var r=t("./utils"),i=function(){this.data=[]};i.prototype={append:function(t){t=r.transformTo("string",t),this.data.push(t)},finalize:function(){return this.data.join("")}},e.exports=i},{"./utils":21}],17:[function(t,e,n){(function(t){"use strict";if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof t,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var e=new ArrayBuffer(0);try{n.blob=0===new Blob([e],{type:"application/zip"}).size}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;o.append(e),n.blob=0===o.getBlob("application/zip").size}catch(r){n.blob=!1}}}}).call(this,"undefined"!=typeof Buffer?Buffer:void 0)},{}],18:[function(t,e,n){"use strict";function r(t){t&&(this.data=t,this.length=this.data.length,this.index=0)}var i=t("./dataReader");r.prototype=new i,r.prototype.byteAt=function(t){return this.data[t]},r.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),n=t.charCodeAt(1),r=t.charCodeAt(2),i=t.charCodeAt(3),o=this.length-4;o>=0;--o)if(this.data[o]===e&&this.data[o+1]===n&&this.data[o+2]===r&&this.data[o+3]===i)return o;return-1},r.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.index,this.index+t);return this.index+=t,e},e.exports=r},{"./dataReader":5}],19:[function(t,e,n){"use strict";var r=t("./utils"),i=function(t){this.data=new Uint8Array(t),this.index=0};i.prototype={append:function(t){0!==t.length&&(t=r.transformTo("uint8array",t),this.data.set(t,this.index),this.index+=t.length)},finalize:function(){return this.data}},e.exports=i},{"./utils":21}],20:[function(t,e,n){"use strict";for(var r=t("./utils"),i=t("./support"),o=t("./nodeBuffer"),a=new Array(256),s=0;256>s;s++)a[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;a[254]=a[254]=1;var u=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=i.uint8array?new Uint8Array(u):new Array(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},c=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+a[t[n]]>e?n:e},l=function(t){var e,n,i,o,s=t.length,u=new Array(2*s);for(n=0,e=0;s>e;)if(i=t[e++],128>i)u[n++]=i;else if(o=a[i],o>4)u[n++]=65533,e+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&s>e;)i=i<<6|63&t[e++],o--;o>1?u[n++]=65533:65536>i?u[n++]=i:(i-=65536,u[n++]=55296|i>>10&1023,u[n++]=56320|1023&i)}return u.length!==n&&(u.subarray?u=u.subarray(0,n):u.length=n),r.applyFromCharCode(u)};n.utf8encode=function(t){return i.nodebuffer?o(t,"utf-8"):u(t)},n.utf8decode=function(t){if(i.nodebuffer)return r.transformTo("nodebuffer",t).toString("utf-8");t=r.transformTo(i.uint8array?"uint8array":"array",t);for(var e=[],n=0,o=t.length,a=65536;o>n;){var s=c(t,Math.min(n+a,o));i.uint8array?e.push(l(t.subarray(n,s))):e.push(l(t.slice(n,s))),n=s}return e.join("")}},{"./nodeBuffer":11,"./support":17,"./utils":21}],21:[function(t,e,n){"use strict";function r(t){return t}function i(t,e){for(var n=0;n<t.length;++n)e[n]=255&t.charCodeAt(n);return e}function o(t){var e=65536,r=[],i=t.length,o=n.getTypeOf(t),a=0,s=!0;try{switch(o){case"uint8array":String.fromCharCode.apply(null,new Uint8Array(0));break;case"nodebuffer":String.fromCharCode.apply(null,c(0))}}catch(u){s=!1}if(!s){for(var l="",f=0;f<t.length;f++)l+=String.fromCharCode(t[f]);return l}for(;i>a&&e>1;)try{"array"===o||"nodebuffer"===o?r.push(String.fromCharCode.apply(null,t.slice(a,Math.min(a+e,i)))):r.push(String.fromCharCode.apply(null,t.subarray(a,Math.min(a+e,i)))),a+=e}catch(u){e=Math.floor(e/2)}return r.join("")}function a(t,e){for(var n=0;n<t.length;n++)e[n]=t[n];return e}var s=t("./support"),u=t("./compressions"),c=t("./nodeBuffer");n.string2binary=function(t){for(var e="",n=0;n<t.length;n++)e+=String.fromCharCode(255&t.charCodeAt(n));return e},n.arrayBuffer2Blob=function(t,e){n.checkSupport("blob"),e=e||"application/zip";try{return new Blob([t],{type:e})}catch(r){try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,o=new i;return o.append(t),o.getBlob(e)}catch(r){throw new Error("Bug : can't construct the Blob.")}}},n.applyFromCharCode=o;var l={};l.string={string:r,array:function(t){return i(t,new Array(t.length))},arraybuffer:function(t){return l.string.uint8array(t).buffer},uint8array:function(t){return i(t,new Uint8Array(t.length))},nodebuffer:function(t){return i(t,c(t.length))}},l.array={string:o,array:r,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(t)}},l.arraybuffer={string:function(t){return o(new Uint8Array(t))},array:function(t){return a(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:r,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return c(new Uint8Array(t))}},l.uint8array={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:r,nodebuffer:function(t){return c(t)}},l.nodebuffer={string:o,array:function(t){return a(t,new Array(t.length))},arraybuffer:function(t){return l.nodebuffer.uint8array(t).buffer},uint8array:function(t){return a(t,new Uint8Array(t.length))},nodebuffer:r},n.transformTo=function(t,e){if(e||(e=""),!t)return e;n.checkSupport(t);var r=n.getTypeOf(e),i=l[r][t](e);return i},n.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":s.nodebuffer&&c.test(t)?"nodebuffer":s.uint8array&&t instanceof Uint8Array?"uint8array":s.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(t){var e=s[t.toLowerCase()];if(!e)throw new Error(t+" is not supported by this browser")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(t){var e,n,r="";for(n=0;n<(t||"").length;n++)e=t.charCodeAt(n),r+="\\x"+(16>e?"0":"")+e.toString(16).toUpperCase();return r},n.findCompression=function(t){for(var e in u)if(u.hasOwnProperty(e)&&u[e].magic===t)return u[e];return null},n.isRegExp=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)}},{"./compressions":3,"./nodeBuffer":11,"./support":17}],22:[function(t,e,n){"use strict";function r(t,e){this.files=[],this.loadOptions=e,t&&this.load(t)}var i=t("./stringReader"),o=t("./nodeBufferReader"),a=t("./uint8ArrayReader"),s=t("./utils"),u=t("./signature"),c=t("./zipEntry"),l=t("./support"),f=t("./object");r.prototype={checkSignature:function(t){var e=this.reader.readString(4);if(e!==t)throw new Error("Corrupted zip or bug : unexpected signature ("+s.pretty(e)+", expected "+s.pretty(t)+")")},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2),this.zipComment=this.reader.readString(this.zipCommentLength),this.zipComment=f.utf8decode(this.zipComment)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,n,r=this.zip64EndOfCentralSize-44,i=0;r>i;)t=this.reader.readInt(2),e=this.reader.readInt(4),n=this.reader.readString(e),this.zip64ExtensibleData[t]={id:t,length:e,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(u.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===u.CENTRAL_FILE_HEADER;)t=new c({zip64:this.zip64},this.loadOptions),t.readCentralPart(this.reader),this.files.push(t)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(u.CENTRAL_DIRECTORY_END);if(-1===t){var e=!0;try{this.reader.setIndex(0),this.checkSignature(u.LOCAL_FILE_HEADER),e=!1}catch(n){}throw e?new Error("Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip : can't find end of central directory")}if(this.reader.setIndex(t),this.checkSignature(u.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===s.MAX_VALUE_16BITS||this.diskWithCentralDirStart===s.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===s.MAX_VALUE_16BITS||this.centralDirRecords===s.MAX_VALUE_16BITS||this.centralDirSize===s.MAX_VALUE_32BITS||this.centralDirOffset===s.MAX_VALUE_32BITS){if(this.zip64=!0,t=this.reader.lastIndexOfSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),-1===t)throw new Error("Corrupted zip : can't find the ZIP64 end of central directory locator");this.reader.setIndex(t),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(u.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}},prepareReader:function(t){var e=s.getTypeOf(t);"string"!==e||l.uint8array?"nodebuffer"===e?this.reader=new o(t):this.reader=new a(s.transformTo("uint8array",t)):this.reader=new i(t,this.loadOptions.optimizedBinaryString)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=r},{"./nodeBufferReader":12,"./object":13,"./signature":14,"./stringReader":15,"./support":17,"./uint8ArrayReader":18,"./utils":21,"./zipEntry":23}],23:[function(t,e,n){"use strict";function r(t,e){this.options=t,this.loadOptions=e}var i=t("./stringReader"),o=t("./utils"),a=t("./compressedObject"),s=t("./object"),u=0,c=3;r.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(t,e,n){return function(){var r=t.index;t.setIndex(e);var i=t.readData(n);return t.setIndex(r),i}},prepareContent:function(t,e,n,r,i){return function(){var t=o.transformTo(r.uncompressInputType,this.getCompressedContent()),e=r.uncompress(t);if(e.length!==i)throw new Error("Bug : uncompressed data size mismatch");return e}},readLocalPart:function(t){var e,n;if(t.skip(22),this.fileNameLength=t.readInt(2),n=t.readInt(2),this.fileName=t.readString(this.fileNameLength),t.skip(n),-1==this.compressedSize||-1==this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");if(e=o.findCompression(this.compressionMethod),null===e)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new a,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(t,t.index,this.compressedSize,e),this.decompressed.getContent=this.prepareContent(t,t.index,this.compressedSize,e,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=o.transformTo("string",this.decompressed.getContent()),s.crc32(this.decompressed)!==this.crc32))throw new Error("Corrupted zip : CRC32 mismatch")},readCentralPart:function(t){if(this.versionMadeBy=t.readInt(2),this.versionNeeded=t.readInt(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4),this.fileNameLength=t.readInt(2),this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");this.fileName=t.readString(this.fileNameLength),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readString(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=16&this.externalFileAttributes?!0:!1,t===u&&(this.dosPermissions=63&this.externalFileAttributes),t===c&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileName.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=new i(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,n,r,i=t.index;for(this.extraFields=this.extraFields||{};t.index<i+this.extraFieldsLength;)e=t.readInt(2),n=t.readInt(2),r=t.readString(n),this.extraFields[e]={id:e,length:n,value:r}},handleUTF8:function(){if(this.useUTF8())this.fileName=s.utf8decode(this.fileName),this.fileComment=s.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();null!==t&&(this.fileName=t);var e=this.findExtraFieldUnicodeComment();null!==e&&(this.fileComment=e)}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=new i(t.value);return 1!==e.readInt(1)?null:s.crc32(this.fileName)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=new i(t.value);
+return 1!==e.readInt(1)?null:s.crc32(this.fileComment)!==e.readInt(4)?null:s.utf8decode(e.readString(t.length-5))}return null}},e.exports=r},{"./compressedObject":2,"./object":13,"./stringReader":15,"./utils":21}],24:[function(t,e,n){"use strict";var r=t("./lib/utils/common").assign,i=t("./lib/deflate"),o=t("./lib/inflate"),a=t("./lib/zlib/constants"),s={};r(s,i,o,a),e.exports=s},{"./lib/deflate":25,"./lib/inflate":26,"./lib/utils/common":27,"./lib/zlib/constants":30}],25:[function(t,e,n){"use strict";function r(t,e){var n=new $(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}function o(t,e){return e=e||{},e.gzip=!0,r(t,e)}var a=t("./zlib/deflate.js"),s=t("./utils/common"),u=t("./utils/strings"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=0,h=4,d=0,p=1,m=-1,v=0,g=8,$=function(t){this.options=s.assign({level:m,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:v,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=a.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(c[n]);e.header&&a.deflateSetHeader(this.strm,e.header)};$.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?h:f,"string"==typeof t?i.input=u.string2buf(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new s.Buf8(o),i.next_out=0,i.avail_out=o),n=a.deflate(i,r),n!==p&&n!==d)return this.onEnd(n),this.ended=!0,!1;(0===i.avail_out||0===i.avail_in&&r===h)&&("string"===this.options.to?this.onData(u.buf2binstring(s.shrinkBuf(i.output,i.next_out))):this.onData(s.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&n!==p);return r===h?(n=a.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===d):!0},$.prototype.onData=function(t){this.chunks.push(t)},$.prototype.onEnd=function(t){t===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Deflate=$,n.deflate=r,n.deflateRaw=i,n.gzip=o},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(t,e,n){"use strict";function r(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg;return n.result}function i(t,e){return e=e||{},e.raw=!0,r(t,e)}var o=t("./zlib/inflate.js"),a=t("./utils/common"),s=t("./utils/strings"),u=t("./zlib/constants"),c=t("./zlib/messages"),l=t("./zlib/zstream"),f=t("./zlib/gzheader"),h=function(t){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=o.inflateInit2(this.strm,e.windowBits);if(n!==u.Z_OK)throw new Error(c[n]);this.header=new f,o.inflateGetHeader(this.strm,this.header)};h.prototype.push=function(t,e){var n,r,i,c,l,f=this.strm,h=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:e===!0?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof t?f.input=s.binstring2buf(t):f.input=t,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new a.Buf8(h),f.next_out=0,f.avail_out=h),n=o.inflate(f,u.Z_NO_FLUSH),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;f.next_out&&(0===f.avail_out||n===u.Z_STREAM_END||0===f.avail_in&&r===u.Z_FINISH)&&("string"===this.options.to?(i=s.utf8border(f.output,f.next_out),c=f.next_out-i,l=s.buf2string(f.output,i),f.next_out=c,f.avail_out=h-c,c&&a.arraySet(f.output,f.output,i,c,0),this.onData(l)):this.onData(a.shrinkBuf(f.output,f.next_out)))}while(f.avail_in>0&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=o.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):!0},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},n.Inflate=h,n.inflate=r,n.inflateRaw=i,n.ungzip=r},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(t,e,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])}}return t},n.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var i={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)return void t.set(e.subarray(n,n+r),i);for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){var e,n,r,i,o,a;for(r=0,e=0,n=t.length;n>e;e++)r+=t[e].length;for(a=new Uint8Array(r),i=0,e=0,n=t.length;n>e;e++)o=t[e],a.set(o,i),i+=o.length;return a}},o={arraySet:function(t,e,n,r,i){for(var o=0;r>o;o++)t[i+o]=e[n+o]},flattenChunks:function(t){return[].concat.apply([],t)}};n.setTyped=function(t){t?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,o))},n.setTyped(r)},{}],28:[function(t,e,n){"use strict";function r(t,e){if(65537>e&&(t.subarray&&a||!t.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",r=0;e>r;r++)n+=String.fromCharCode(t[r]);return n}var i=t("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(s){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(s){a=!1}for(var u=new i.Buf8(256),c=0;256>c;c++)u[c]=c>=252?6:c>=248?5:c>=240?4:c>=224?3:c>=192?2:1;u[254]=u[254]=1,n.string2buf=function(t){var e,n,r,o,a,s=t.length,u=0;for(o=0;s>o;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),u+=128>n?1:2048>n?2:65536>n?3:4;for(e=new i.Buf8(u),a=0,o=0;u>a;o++)n=t.charCodeAt(o),55296===(64512&n)&&s>o+1&&(r=t.charCodeAt(o+1),56320===(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),o++)),128>n?e[a++]=n:2048>n?(e[a++]=192|n>>>6,e[a++]=128|63&n):65536>n?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},n.buf2binstring=function(t){return r(t,t.length)},n.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;r>n;n++)e[n]=t.charCodeAt(n);return e},n.buf2string=function(t,e){var n,i,o,a,s=e||t.length,c=new Array(2*s);for(i=0,n=0;s>n;)if(o=t[n++],128>o)c[i++]=o;else if(a=u[o],a>4)c[i++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&s>n;)o=o<<6|63&t[n++],a--;a>1?c[i++]=65533:65536>o?c[i++]=o:(o-=65536,c[i++]=55296|o>>10&1023,c[i++]=56320|1023&o)}return r(c,i)},n.utf8border=function(t,e){var n;for(e=e||t.length,e>t.length&&(e=t.length),n=e-1;n>=0&&128===(192&t[n]);)n--;return 0>n?e:0===n?e:n+u[t[n]]>e?n:e}},{"./common":27}],29:[function(t,e,n){"use strict";function r(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){a=n>2e3?2e3:n,n-=a;do i=i+e[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0}e.exports=r},{}],30:[function(t,e,n){e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(t,e,n){"use strict";function r(){for(var t,e=[],n=0;256>n;n++){t=n;for(var r=0;8>r;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}function i(t,e,n,r){var i=o,a=r+n;t=-1^t;for(var s=r;a>s;s++)t=t>>>8^i[255&(t^e[s])];return-1^t}var o=r();e.exports=i},{}],32:[function(t,e,n){"use strict";function r(t,e){return t.msg=z[e],e}function i(t){return(t<<1)-(t>4?9:0)}function o(t){for(var e=t.length;--e>=0;)t[e]=0}function a(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(S.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function s(t,e){T._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,a(t.strm)}function u(t,e){t.pending_buf[t.pending++]=e}function c(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function l(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,S.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=O(t.adler,e,i,n):2===t.state.wrap&&(t.adler=I(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function f(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,u=t.strstart>t.w_size-ct?t.strstart-(t.w_size-ct):0,c=t.window,l=t.w_mask,f=t.prev,h=t.strstart+ut,d=c[o+a-1],p=c[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do if(n=e,c[n+a]===p&&c[n+a-1]===d&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do;while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&h>o);if(r=ut-(h-o),o=h-ut,r>a){if(t.match_start=e,a=r,r>=s)break;d=c[o+a-1],p=c[o+a]}}while((e=f[e&l])>u&&0!==--i);return a<=t.lookahead?a:t.lookahead}function h(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-ct)){S.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,n=t.hash_size,e=n;do r=t.head[--e],t.head[e]=r>=a?r-a:0;while(--n);n=a,e=n;do r=t.prev[--e],t.prev[e]=r>=a?r-a:0;while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=l(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=st)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[o+st-1])&t.hash_mask,t.prev[o&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=o,o++,t.insert--,!(t.lookahead+t.insert<st)););}while(t.lookahead<ct&&0!==t.strm.avail_in)}function d(t,e){var n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(h(t),0===t.lookahead&&e===M)return $t;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,s(t,!1),0===t.strm.avail_out))return $t;if(t.strstart-t.block_start>=t.w_size-ct&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.strstart>t.block_start&&(s(t,!1),0===t.strm.avail_out)?$t:$t}function p(t,e){for(var n,r;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n)),t.match_length>=st)if(r=T._tr_tally(t,t.strstart-t.match_start,t.match_length-st),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=st){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(0!==--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else r=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function m(t,e){for(var n,r,i;;){if(t.lookahead<ct){if(h(t),t.lookahead<ct&&e===M)return $t;if(0===t.lookahead)break}if(n=0,t.lookahead>=st&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=st-1,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-ct&&(t.match_length=f(t,n),t.match_length<=5&&(t.strategy===q||t.match_length===st&&t.strstart-t.match_start>4096)&&(t.match_length=st-1)),t.prev_length>=st&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-st,r=T._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-st),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+st-1])&t.hash_mask,n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(0!==--t.prev_length);if(t.match_available=0,t.match_length=st-1,t.strstart++,r&&(s(t,!1),0===t.strm.avail_out))return $t}else if(t.match_available){if(r=T._tr_tally(t,0,t.window[t.strstart-1]),r&&s(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return $t}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=T._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<st-1?t.strstart:st-1,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function v(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=ut){if(h(t),t.lookahead<=ut&&e===M)return $t;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=st&&t.strstart>0&&(i=t.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=t.strstart+ut;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&o>i);t.match_length=ut-(o-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=st?(n=T._tr_tally(t,1,t.match_length-st),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function g(t,e){for(var n;;){if(0===t.lookahead&&(h(t),0===t.lookahead)){if(e===M)return $t;break}if(t.match_length=0,n=T._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(s(t,!1),0===t.strm.avail_out))return $t}return t.insert=0,e===N?(s(t,!0),0===t.strm.avail_out?bt:wt):t.last_lit&&(s(t,!1),0===t.strm.avail_out)?$t:yt}function $(t){t.window_size=2*t.w_size,o(t.head),t.max_lazy_match=A[t.level].max_lazy,t.good_match=A[t.level].good_length,t.nice_match=A[t.level].nice_length,t.max_chain_length=A[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=st-1,t.match_available=0,t.ins_h=0}function y(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=G,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new S.Buf16(2*ot),this.dyn_dtree=new S.Buf16(2*(2*rt+1)),this.bl_tree=new S.Buf16(2*(2*it+1)),o(this.dyn_ltree),o(this.dyn_dtree),o(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new S.Buf16(at+1),this.heap=new S.Buf16(2*nt+1),o(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new S.Buf16(2*nt+1),o(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function b(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Z,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ft:vt,t.adler=2===e.wrap?0:1,e.last_flush=M,T._tr_init(e),R):r(t,B)}function w(t){var e=b(t);return e===R&&$(t.state),e}function _(t,e){return t&&t.state?2!==t.state.wrap?B:(t.state.gzhead=e,R):B}function x(t,e,n,i,o,a){if(!t)return B;var s=1;if(e===V&&(e=6),0>i?(s=0,i=-i):i>15&&(s=2,i-=16),1>o||o>K||n!==G||8>i||i>15||0>e||e>9||0>a||a>X)return r(t,B);8===i&&(i=9);var u=new y;return t.state=u,u.strm=t,u.wrap=s,u.gzhead=null,u.w_bits=i,u.w_size=1<<u.w_bits,u.w_mask=u.w_size-1,u.hash_bits=o+7,u.hash_size=1<<u.hash_bits,u.hash_mask=u.hash_size-1,u.hash_shift=~~((u.hash_bits+st-1)/st),u.window=new S.Buf8(2*u.w_size),u.head=new S.Buf16(u.hash_size),u.prev=new S.Buf16(u.w_size),u.lit_bufsize=1<<o+6,u.pending_buf_size=4*u.lit_bufsize,u.pending_buf=new S.Buf8(u.pending_buf_size),u.d_buf=u.lit_bufsize>>1,u.l_buf=3*u.lit_bufsize,u.level=e,u.strategy=a,u.method=n,w(t)}function C(t,e){return x(t,e,G,J,Q,Y)}function E(t,e){var n,s,l,f;if(!t||!t.state||e>P||0>e)return t?r(t,B):B;if(s=t.state,!t.output||!t.input&&0!==t.avail_in||s.status===gt&&e!==N)return r(t,0===t.avail_out?U:B);if(s.strm=t,n=s.last_flush,s.last_flush=e,s.status===ft)if(2===s.wrap)t.adler=0,u(s,31),u(s,139),u(s,8),s.gzhead?(u(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),u(s,255&s.gzhead.time),u(s,s.gzhead.time>>8&255),u(s,s.gzhead.time>>16&255),u(s,s.gzhead.time>>24&255),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(u(s,255&s.gzhead.extra.length),u(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=I(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=ht):(u(s,0),u(s,0),u(s,0),u(s,0),u(s,0),u(s,9===s.level?2:s.strategy>=H||s.level<2?4:0),u(s,_t),s.status=vt);else{var h=G+(s.w_bits-8<<4)<<8,d=-1;d=s.strategy>=H||s.level<2?0:s.level<6?1:6===s.level?2:3,h|=d<<6,0!==s.strstart&&(h|=lt),h+=31-h%31,s.status=vt,c(s,h),0!==s.strstart&&(c(s,t.adler>>>16),c(s,65535&t.adler)),t.adler=1}if(s.status===ht)if(s.gzhead.extra){for(l=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending!==s.pending_buf_size));)u(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=dt)}else s.status=dt;if(s.status===dt)if(s.gzhead.name){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.gzindex=0,s.status=pt)}else s.status=pt;if(s.status===pt)if(s.gzhead.comment){l=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),a(t),l=s.pending,s.pending===s.pending_buf_size)){f=1;break}f=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,u(s,f)}while(0!==f);s.gzhead.hcrc&&s.pending>l&&(t.adler=I(t.adler,s.pending_buf,s.pending-l,l)),0===f&&(s.status=mt)}else s.status=mt;if(s.status===mt&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&a(t),s.pending+2<=s.pending_buf_size&&(u(s,255&t.adler),u(s,t.adler>>8&255),t.adler=0,s.status=vt)):s.status=vt),0!==s.pending){if(a(t),0===t.avail_out)return s.last_flush=-1,R}else if(0===t.avail_in&&i(e)<=i(n)&&e!==N)return r(t,U);if(s.status===gt&&0!==t.avail_in)return r(t,U);if(0!==t.avail_in||0!==s.lookahead||e!==M&&s.status!==gt){var p=s.strategy===H?g(s,e):s.strategy===W?v(s,e):A[s.level].func(s,e);if((p===bt||p===wt)&&(s.status=gt),p===$t||p===bt)return 0===t.avail_out&&(s.last_flush=-1),R;if(p===yt&&(e===D?T._tr_align(s):e!==P&&(T._tr_stored_block(s,0,0,!1),e===j&&(o(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),a(t),0===t.avail_out))return s.last_flush=-1,R}return e!==N?R:s.wrap<=0?F:(2===s.wrap?(u(s,255&t.adler),u(s,t.adler>>8&255),u(s,t.adler>>16&255),u(s,t.adler>>24&255),u(s,255&t.total_in),u(s,t.total_in>>8&255),u(s,t.total_in>>16&255),u(s,t.total_in>>24&255)):(c(s,t.adler>>>16),c(s,65535&t.adler)),a(t),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?R:F)}function k(t){var e;return t&&t.state?(e=t.state.status,e!==ft&&e!==ht&&e!==dt&&e!==pt&&e!==mt&&e!==vt&&e!==gt?r(t,B):(t.state=null,e===vt?r(t,L):R)):B}var A,S=t("../utils/common"),T=t("./trees"),O=t("./adler32"),I=t("./crc32"),z=t("./messages"),M=0,D=1,j=3,N=4,P=5,R=0,F=1,B=-2,L=-3,U=-5,V=-1,q=1,H=2,W=3,X=4,Y=0,Z=2,G=8,K=9,J=15,Q=8,tt=29,et=256,nt=et+1+tt,rt=30,it=19,ot=2*nt+1,at=15,st=3,ut=258,ct=ut+st+1,lt=32,ft=42,ht=69,dt=73,pt=91,mt=103,vt=113,gt=666,$t=1,yt=2,bt=3,wt=4,_t=3,xt=function(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i};A=[new xt(0,0,0,0,d),new xt(4,4,8,4,p),new xt(4,5,16,8,p),new xt(4,6,32,32,p),new xt(4,4,16,16,m),new xt(8,16,32,32,m),new xt(8,16,128,128,m),new xt(8,32,128,256,m),new xt(32,128,258,1024,m),new xt(32,258,258,4096,m)],n.deflateInit=C,n.deflateInit2=x,n.deflateReset=w,n.deflateResetKeep=b,n.deflateSetHeader=_,n.deflate=E,n.deflateEnd=k,n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(t,e,n){"use strict";function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=r},{}],34:[function(t,e,n){"use strict";var r=30,i=12;e.exports=function(t,e){var n,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S;n=t.state,o=t.next_in,A=t.input,a=o+(t.avail_in-5),s=t.next_out,S=t.output,u=s-(e-t.avail_out),c=s+(t.avail_out-257),l=n.dmax,f=n.wsize,h=n.whave,d=n.wnext,p=n.window,m=n.hold,v=n.bits,g=n.lencode,$=n.distcode,y=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;t:do{15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=g[m&y];e:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,0===_)S[s++]=65535&w;else{if(!(16&_)){if(0===(64&_)){w=g[(65535&w)+(m&(1<<_)-1)];continue e}if(32&_){n.mode=i;break t}t.msg="invalid literal/length code",n.mode=r;break t}x=65535&w,_&=15,_&&(_>v&&(m+=A[o++]<<v,v+=8),x+=m&(1<<_)-1,m>>>=_,v-=_),15>v&&(m+=A[o++]<<v,v+=8,m+=A[o++]<<v,v+=8),w=$[m&b];n:for(;;){if(_=w>>>24,m>>>=_,v-=_,_=w>>>16&255,!(16&_)){if(0===(64&_)){w=$[(65535&w)+(m&(1<<_)-1)];continue n}t.msg="invalid distance code",n.mode=r;break t}if(C=65535&w,_&=15,_>v&&(m+=A[o++]<<v,v+=8,_>v&&(m+=A[o++]<<v,v+=8)),C+=m&(1<<_)-1,C>l){t.msg="invalid distance too far back",n.mode=r;break t}if(m>>>=_,v-=_,_=s-u,C>_){if(_=C-_,_>h&&n.sane){t.msg="invalid distance too far back",n.mode=r;break t}if(E=0,k=p,0===d){if(E+=f-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}else if(_>d){if(E+=f+d-_,_-=d,x>_){x-=_;do S[s++]=p[E++];while(--_);if(E=0,x>d){_=d,x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}}}else if(E+=d-_,x>_){x-=_;do S[s++]=p[E++];while(--_);E=s-C,k=S}for(;x>2;)S[s++]=k[E++],S[s++]=k[E++],S[s++]=k[E++],x-=3;x&&(S[s++]=k[E++],x>1&&(S[s++]=k[E++]))}else{E=s-C;do S[s++]=S[E++],S[s++]=S[E++],S[s++]=S[E++],x-=3;while(x>2);x&&(S[s++]=S[E++],x>1&&(S[s++]=S[E++]))}break}}break}}while(a>o&&c>s);x=v>>3,o-=x,v-=x<<3,m&=(1<<v)-1,t.next_in=o,t.next_out=s,t.avail_in=a>o?5+(a-o):5-(o-a),t.avail_out=c>s?257+(c-s):257-(s-c),n.hold=m,n.bits=v}},{}],35:[function(t,e,n){"use strict";function r(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new g.Buf16(320),this.work=new g.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=N,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new g.Buf32(pt),e.distcode=e.distdyn=new g.Buf32(mt),e.sane=1,e.back=-1,S):I}function a(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,o(t)):I}function s(t,e){var n,r;return t&&t.state?(r=t.state,0>e?(n=0,e=-e):(n=(e>>4)+1,48>e&&(e&=15)),e&&(8>e||e>15)?I:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,a(t))):I}function u(t,e){var n,r;return t?(r=new i,t.state=r,r.window=null,n=s(t,e),n!==S&&(t.state=null),n):I}function c(t){return u(t,gt)}function l(t){if($t){var e;for(m=new g.Buf32(512),v=new g.Buf32(32),e=0;144>e;)t.lens[e++]=8;for(;256>e;)t.lens[e++]=9;for(;280>e;)t.lens[e++]=7;for(;288>e;)t.lens[e++]=8;for(w(x,t.lens,0,288,m,0,t.work,{bits:9}),e=0;32>e;)t.lens[e++]=5;w(C,t.lens,0,32,v,0,t.work,{bits:5}),$t=!1}t.lencode=m,t.lenbits=9,t.distcode=v,t.distbits=5}function f(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new g.Buf8(o.wsize)),r>=o.wsize?(g.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),g.arraySet(o.window,e,n-r,i,o.wnext),r-=i,r?(g.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function h(t,e){var n,i,o,a,s,u,c,h,d,p,m,v,pt,mt,vt,gt,$t,yt,bt,wt,_t,xt,Ct,Et,kt=0,At=new g.Buf8(4),St=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return I;n=t.state,n.mode===X&&(n.mode=Y),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,p=u,m=c,xt=S;t:for(;;)switch(n.mode){case N:if(0===n.wrap){n.mode=Y;break}for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===h){n.check=0,At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0),h=0,d=0,n.mode=P;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=ft;break}if((15&h)!==j){t.msg="unknown compression method",n.mode=ft;break}if(h>>>=4,d-=4,_t=(15&h)+8,0===n.wbits)n.wbits=_t;else if(_t>n.wbits){t.msg="invalid window size",n.mode=ft;break}n.dmax=1<<_t,t.adler=n.check=1,n.mode=512&h?H:X,h=0,d=0;break;case P:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.flags=h,(255&n.flags)!==j){t.msg="unknown compression method",n.mode=ft;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=ft;break}n.head&&(n.head.text=h>>8&1),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=R;case R:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.time=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,At[2]=h>>>16&255,At[3]=h>>>24&255,n.check=y(n.check,At,4,0)),h=0,d=0,n.mode=F;case F:for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&h,n.head.os=h>>8),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0,n.mode=B;case B:if(1024&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length=h,n.head&&(n.head.extra_len=h),512&n.flags&&(At[0]=255&h,At[1]=h>>>8&255,n.check=y(n.check,At,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(v=n.length,v>u&&(v=u),v&&(n.head&&(_t=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),g.arraySet(n.head.extra,i,a,v,_t)),512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,n.length-=v),n.length))break t;n.length=0,n.mode=U;case U:if(2048&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.name+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=V;case V:if(4096&n.flags){if(0===u)break t;v=0;do _t=i[a+v++],n.head&&_t&&n.length<65536&&(n.head.comment+=String.fromCharCode(_t));while(_t&&u>v);if(512&n.flags&&(n.check=y(n.check,i,v,a)),u-=v,a+=v,_t)break t}else n.head&&(n.head.comment=null);n.mode=q;case q:if(512&n.flags){for(;16>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(65535&n.check)){t.msg="header crc mismatch",n.mode=ft;break}h=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=X;break;case H:for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}t.adler=n.check=r(h),h=0,d=0,n.mode=W;case W:if(0===n.havedict)return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,O;t.adler=n.check=1,n.mode=X;case X:if(e===k||e===A)break t;case Y:if(n.last){h>>>=7&d,d-=7&d,n.mode=ut;break}for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}switch(n.last=1&h,h>>>=1,d-=1,3&h){case 0:n.mode=Z;break;case 1:if(l(n),n.mode=et,e===A){h>>>=2,d-=2;break t}break;case 2:n.mode=J;break;case 3:t.msg="invalid block type",n.mode=ft}h>>>=2,d-=2;break;case Z:for(h>>>=7&d,d-=7&d;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if((65535&h)!==(h>>>16^65535)){t.msg="invalid stored block lengths",n.mode=ft;break}if(n.length=65535&h,h=0,d=0,n.mode=G,e===A)break t;case G:n.mode=K;case K:if(v=n.length){if(v>u&&(v=u),v>c&&(v=c),0===v)break t;g.arraySet(o,i,a,v,s),u-=v,a+=v,c-=v,s+=v,n.length-=v;break}n.mode=X;break;case J:for(;14>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(n.nlen=(31&h)+257,h>>>=5,d-=5,n.ndist=(31&h)+1,h>>>=5,d-=5,n.ncode=(15&h)+4,h>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=ft;break}n.have=0,n.mode=Q;case Q:for(;n.have<n.ncode;){for(;3>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.lens[St[n.have++]]=7&h,h>>>=3,d-=3}for(;n.have<19;)n.lens[St[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,Ct={bits:n.lenbits},xt=w(_,n.lens,0,19,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid code lengths set",n.mode=ft;break}n.have=0,n.mode=tt;case tt:for(;n.have<n.nlen+n.ndist;){for(;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(16>$t)h>>>=vt,d-=vt,n.lens[n.have++]=$t;else{if(16===$t){for(Et=vt+2;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h>>>=vt,d-=vt,0===n.have){t.msg="invalid bit length repeat",n.mode=ft;break}_t=n.lens[n.have-1],v=3+(3&h),h>>>=2,d-=2}else if(17===$t){for(Et=vt+3;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=3+(7&h),h>>>=3,d-=3}else{for(Et=vt+7;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=vt,d-=vt,_t=0,v=11+(127&h),h>>>=7,d-=7}if(n.have+v>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=ft;break}for(;v--;)n.lens[n.have++]=_t}}if(n.mode===ft)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=ft;break}if(n.lenbits=9,Ct={bits:n.lenbits},xt=w(x,n.lens,0,n.nlen,n.lencode,0,n.work,Ct),n.lenbits=Ct.bits,xt){t.msg="invalid literal/lengths set",n.mode=ft;break}if(n.distbits=6,n.distcode=n.distdyn,Ct={bits:n.distbits},xt=w(C,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,Ct),n.distbits=Ct.bits,xt){t.msg="invalid distances set",n.mode=ft;break}if(n.mode=et,e===A)break t;case et:n.mode=nt;case nt:if(u>=6&&c>=258){t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,b(t,m),s=t.next_out,o=t.output,c=t.avail_out,a=t.next_in,i=t.input,u=t.avail_in,h=n.hold,d=n.bits,n.mode===X&&(n.back=-1);break;
+}for(n.back=0;kt=n.lencode[h&(1<<n.lenbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(gt&&0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.lencode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,n.length=$t,0===gt){n.mode=st;break}if(32&gt){n.back=-1,n.mode=X;break}if(64&gt){t.msg="invalid literal/length code",n.mode=ft;break}n.extra=15&gt,n.mode=rt;case rt:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.length+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=it;case it:for(;kt=n.distcode[h&(1<<n.distbits)-1],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(0===(240&gt)){for(yt=vt,bt=gt,wt=$t;kt=n.distcode[wt+((h&(1<<yt+bt)-1)>>yt)],vt=kt>>>24,gt=kt>>>16&255,$t=65535&kt,!(d>=yt+vt);){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}h>>>=yt,d-=yt,n.back+=yt}if(h>>>=vt,d-=vt,n.back+=vt,64&gt){t.msg="invalid distance code",n.mode=ft;break}n.offset=$t,n.extra=15&gt,n.mode=ot;case ot:if(n.extra){for(Et=n.extra;Et>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}n.offset+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=ft;break}n.mode=at;case at:if(0===c)break t;if(v=m-c,n.offset>v){if(v=n.offset-v,v>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=ft;break}v>n.wnext?(v-=n.wnext,pt=n.wsize-v):pt=n.wnext-v,v>n.length&&(v=n.length),mt=n.window}else mt=o,pt=s-n.offset,v=n.length;v>c&&(v=c),c-=v,n.length-=v;do o[s++]=mt[pt++];while(--v);0===n.length&&(n.mode=nt);break;case st:if(0===c)break t;o[s++]=n.length,c--,n.mode=nt;break;case ut:if(n.wrap){for(;32>d;){if(0===u)break t;u--,h|=i[a++]<<d,d+=8}if(m-=c,t.total_out+=m,n.total+=m,m&&(t.adler=n.check=n.flags?y(n.check,o,m,s-m):$(n.check,o,m,s-m)),m=c,(n.flags?h:r(h))!==n.check){t.msg="incorrect data check",n.mode=ft;break}h=0,d=0}n.mode=ct;case ct:if(n.wrap&&n.flags){for(;32>d;){if(0===u)break t;u--,h+=i[a++]<<d,d+=8}if(h!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=ft;break}h=0,d=0}n.mode=lt;case lt:xt=T;break t;case ft:xt=z;break t;case ht:return M;case dt:default:return I}return t.next_out=s,t.avail_out=c,t.next_in=a,t.avail_in=u,n.hold=h,n.bits=d,(n.wsize||m!==t.avail_out&&n.mode<ft&&(n.mode<ut||e!==E))&&f(t,t.output,t.next_out,m-t.avail_out)?(n.mode=ht,M):(p-=t.avail_in,m-=t.avail_out,t.total_in+=p,t.total_out+=m,n.total+=m,n.wrap&&m&&(t.adler=n.check=n.flags?y(n.check,o,m,t.next_out-m):$(n.check,o,m,t.next_out-m)),t.data_type=n.bits+(n.last?64:0)+(n.mode===X?128:0)+(n.mode===et||n.mode===G?256:0),(0===p&&0===m||e===E)&&xt===S&&(xt=D),xt)}function d(t){if(!t||!t.state)return I;var e=t.state;return e.window&&(e.window=null),t.state=null,S}function p(t,e){var n;return t&&t.state?(n=t.state,0===(2&n.wrap)?I:(n.head=e,e.done=!1,S)):I}var m,v,g=t("../utils/common"),$=t("./adler32"),y=t("./crc32"),b=t("./inffast"),w=t("./inftrees"),_=0,x=1,C=2,E=4,k=5,A=6,S=0,T=1,O=2,I=-2,z=-3,M=-4,D=-5,j=8,N=1,P=2,R=3,F=4,B=5,L=6,U=7,V=8,q=9,H=10,W=11,X=12,Y=13,Z=14,G=15,K=16,J=17,Q=18,tt=19,et=20,nt=21,rt=22,it=23,ot=24,at=25,st=26,ut=27,ct=28,lt=29,ft=30,ht=31,dt=32,pt=852,mt=592,vt=15,gt=vt,$t=!0;n.inflateReset=a,n.inflateReset2=s,n.inflateResetKeep=o,n.inflateInit=c,n.inflateInit2=u,n.inflate=h,n.inflateEnd=d,n.inflateGetHeader=p,n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(t,e,n){"use strict";var r=t("../utils/common"),i=15,o=852,a=592,s=0,u=1,c=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],d=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,n,p,m,v,g,$){var y,b,w,_,x,C,E,k,A,S=$.bits,T=0,O=0,I=0,z=0,M=0,D=0,j=0,N=0,P=0,R=0,F=null,B=0,L=new r.Buf16(i+1),U=new r.Buf16(i+1),V=null,q=0;for(T=0;i>=T;T++)L[T]=0;for(O=0;p>O;O++)L[e[n+O]]++;for(M=S,z=i;z>=1&&0===L[z];z--);if(M>z&&(M=z),0===z)return m[v++]=20971520,m[v++]=20971520,$.bits=1,0;for(I=1;z>I&&0===L[I];I++);for(I>M&&(M=I),N=1,T=1;i>=T;T++)if(N<<=1,N-=L[T],0>N)return-1;if(N>0&&(t===s||1!==z))return-1;for(U[1]=0,T=1;i>T;T++)U[T+1]=U[T]+L[T];for(O=0;p>O;O++)0!==e[n+O]&&(g[U[e[n+O]]++]=O);if(t===s?(F=V=g,C=19):t===u?(F=l,B-=257,V=f,q-=257,C=256):(F=h,V=d,C=-1),R=0,O=0,T=I,x=v,D=M,j=0,w=-1,P=1<<M,_=P-1,t===u&&P>o||t===c&&P>a)return 1;for(var H=0;;){H++,E=T-j,g[O]<C?(k=0,A=g[O]):g[O]>C?(k=V[q+g[O]],A=F[B+g[O]]):(k=96,A=0),y=1<<T-j,b=1<<D,I=b;do b-=y,m[x+(R>>j)+b]=E<<24|k<<16|A|0;while(0!==b);for(y=1<<T-1;R&y;)y>>=1;if(0!==y?(R&=y-1,R+=y):R=0,O++,0===--L[T]){if(T===z)break;T=e[n+g[O]]}if(T>M&&(R&_)!==w){for(0===j&&(j=M),x+=I,D=T-j,N=1<<D;z>D+j&&(N-=L[D+j],!(0>=N));)D++,N<<=1;if(P+=1<<D,t===u&&P>o||t===c&&P>a)return 1;w=R&_,m[w]=M<<24|D<<16|x-v|0}}return 0!==R&&(m[x+R]=T-j<<24|64<<16|0),$.bits=M,0}},{"../utils/common":27}],37:[function(t,e,n){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(t,e,n){"use strict";function r(t){for(var e=t.length;--e>=0;)t[e]=0}function i(t){return 256>t?at[t]:at[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function a(t,e,n){t.bi_valid>X-n?(t.bi_buf|=e<<t.bi_valid&65535,o(t,t.bi_buf),t.bi_buf=e>>X-t.bi_valid,t.bi_valid+=n-X):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)}function s(t,e,n){a(t,n[2*e],n[2*e+1])}function u(t,e){var n=0;do n|=1&t,t>>>=1,n<<=1;while(--e>0);return n>>>1}function c(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function l(t,e){var n,r,i,o,a,s,u=e.dyn_tree,c=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,h=e.stat_desc.extra_bits,d=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(o=0;W>=o;o++)t.bl_count[o]=0;for(u[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;H>n;n++)r=t.heap[n],o=u[2*u[2*r+1]+1]+1,o>p&&(o=p,m++),u[2*r+1]=o,r>c||(t.bl_count[o]++,a=0,r>=d&&(a=h[r-d]),s=u[2*r],t.opt_len+=s*(o+a),f&&(t.static_len+=s*(l[2*r+1]+a)));if(0!==m){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,m-=2}while(m>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)i=t.heap[--n],i>c||(u[2*i+1]!==o&&(t.opt_len+=(o-u[2*i+1])*u[2*i],u[2*i+1]=o),r--)}}function f(t,e,n){var r,i,o=new Array(W+1),a=0;for(r=1;W>=r;r++)o[r]=a=a+n[r-1]<<1;for(i=0;e>=i;i++){var s=t[2*i+1];0!==s&&(t[2*i]=u(o[s]++,s))}}function h(){var t,e,n,r,i,o=new Array(W+1);for(n=0,r=0;B-1>r;r++)for(ut[r]=n,t=0;t<1<<Q[r];t++)st[n++]=r;for(st[n-1]=r,i=0,r=0;16>r;r++)for(ct[r]=i,t=0;t<1<<tt[r];t++)at[i++]=r;for(i>>=7;V>r;r++)for(ct[r]=i<<7,t=0;t<1<<tt[r]-7;t++)at[256+i++]=r;for(e=0;W>=e;e++)o[e]=0;for(t=0;143>=t;)it[2*t+1]=8,t++,o[8]++;for(;255>=t;)it[2*t+1]=9,t++,o[9]++;for(;279>=t;)it[2*t+1]=7,t++,o[7]++;for(;287>=t;)it[2*t+1]=8,t++,o[8]++;for(f(it,U+1,o),t=0;V>t;t++)ot[2*t+1]=5,ot[2*t]=u(t,5);lt=new dt(it,Q,L+1,U,W),ft=new dt(ot,tt,0,V,W),ht=new dt(new Array(0),et,0,q,Y)}function d(t){var e;for(e=0;U>e;e++)t.dyn_ltree[2*e]=0;for(e=0;V>e;e++)t.dyn_dtree[2*e]=0;for(e=0;q>e;e++)t.bl_tree[2*e]=0;t.dyn_ltree[2*Z]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function p(t){t.bi_valid>8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,n,r){p(t),r&&(o(t,n),o(t,~n)),O.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function v(t,e,n,r){var i=2*e,o=2*n;return t[i]<t[o]||t[i]===t[o]&&r[e]<=r[n]}function g(t,e,n){for(var r=t.heap[n],i=n<<1;i<=t.heap_len&&(i<t.heap_len&&v(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!v(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r}function $(t,e,n){var r,o,u,c,l=0;if(0!==t.last_lit)do r=t.pending_buf[t.d_buf+2*l]<<8|t.pending_buf[t.d_buf+2*l+1],o=t.pending_buf[t.l_buf+l],l++,0===r?s(t,o,e):(u=st[o],s(t,u+L+1,e),c=Q[u],0!==c&&(o-=ut[u],a(t,o,c)),r--,u=i(r),s(t,u,n),c=tt[u],0!==c&&(r-=ct[u],a(t,r,c)));while(l<t.last_lit);s(t,Z,e)}function y(t,e){var n,r,i,o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.has_stree,u=e.stat_desc.elems,c=-1;for(t.heap_len=0,t.heap_max=H,n=0;u>n;n++)0!==o[2*n]?(t.heap[++t.heap_len]=c=n,t.depth[n]=0):o[2*n+1]=0;for(;t.heap_len<2;)i=t.heap[++t.heap_len]=2>c?++c:0,o[2*i]=1,t.depth[i]=0,t.opt_len--,s&&(t.static_len-=a[2*i+1]);for(e.max_code=c,n=t.heap_len>>1;n>=1;n--)g(t,o,n);i=u;do n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],g(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,g(t,o,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],l(t,e),f(o,c,t.bl_count)}function b(t,e,n){var r,i,o=-1,a=e[1],s=0,u=7,c=4;for(0===a&&(u=138,c=3),e[2*(n+1)+1]=65535,r=0;n>=r;r++)i=a,a=e[2*(r+1)+1],++s<u&&i===a||(c>s?t.bl_tree[2*i]+=s:0!==i?(i!==o&&t.bl_tree[2*i]++,t.bl_tree[2*G]++):10>=s?t.bl_tree[2*K]++:t.bl_tree[2*J]++,s=0,o=i,0===a?(u=138,c=3):i===a?(u=6,c=3):(u=7,c=4))}function w(t,e,n){var r,i,o=-1,u=e[1],c=0,l=7,f=4;for(0===u&&(l=138,f=3),r=0;n>=r;r++)if(i=u,u=e[2*(r+1)+1],!(++c<l&&i===u)){if(f>c){do s(t,i,t.bl_tree);while(0!==--c)}else 0!==i?(i!==o&&(s(t,i,t.bl_tree),c--),s(t,G,t.bl_tree),a(t,c-3,2)):10>=c?(s(t,K,t.bl_tree),a(t,c-3,3)):(s(t,J,t.bl_tree),a(t,c-11,7));c=0,o=i,0===u?(l=138,f=3):i===u?(l=6,f=3):(l=7,f=4)}}function _(t){var e;for(b(t,t.dyn_ltree,t.l_desc.max_code),b(t,t.dyn_dtree,t.d_desc.max_code),y(t,t.bl_desc),e=q-1;e>=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function x(t,e,n,r){var i;for(a(t,e-257,5),a(t,n-1,5),a(t,r-4,4),i=0;r>i;i++)a(t,t.bl_tree[2*nt[i]+1],3);w(t,t.dyn_ltree,e-1),w(t,t.dyn_dtree,n-1)}function C(t){var e,n=4093624447;for(e=0;31>=e;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return z;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return M;for(e=32;L>e;e++)if(0!==t.dyn_ltree[2*e])return M;return z}function E(t){mt||(h(),mt=!0),t.l_desc=new pt(t.dyn_ltree,lt),t.d_desc=new pt(t.dyn_dtree,ft),t.bl_desc=new pt(t.bl_tree,ht),t.bi_buf=0,t.bi_valid=0,d(t)}function k(t,e,n,r){a(t,(j<<1)+(r?1:0),3),m(t,e,n,!0)}function A(t){a(t,N<<1,3),s(t,Z,it),c(t)}function S(t,e,n,r){var i,o,s=0;t.level>0?(t.strm.data_type===D&&(t.strm.data_type=C(t)),y(t,t.l_desc),y(t,t.d_desc),s=_(t),i=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,i>=o&&(i=o)):i=o=n+5,i>=n+4&&-1!==e?k(t,e,n,r):t.strategy===I||o===i?(a(t,(N<<1)+(r?1:0),3),$(t,it,ot)):(a(t,(P<<1)+(r?1:0),3),x(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),$(t,t.dyn_ltree,t.dyn_dtree)),d(t),r&&p(t)}function T(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(st[n]+L+1)]++,t.dyn_dtree[2*i(e)]++),t.last_lit===t.lit_bufsize-1}var O=t("../utils/common"),I=4,z=0,M=1,D=2,j=0,N=1,P=2,R=3,F=258,B=29,L=256,U=L+1+B,V=30,q=19,H=2*U+1,W=15,X=16,Y=7,Z=256,G=16,K=17,J=18,Q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],tt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,it=new Array(2*(U+2));r(it);var ot=new Array(2*V);r(ot);var at=new Array(rt);r(at);var st=new Array(F-R+1);r(st);var ut=new Array(B);r(ut);var ct=new Array(V);r(ct);var lt,ft,ht,dt=function(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length},pt=function(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e},mt=!1;n._tr_init=E,n._tr_stored_block=k,n._tr_flush_block=S,n._tr_tally=T,n._tr_align=A},{"../utils/common":27}],39:[function(t,e,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=r},{}]},{},[9])(9)}),function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,n){return function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g={}.hasOwnProperty,$=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},y=[].slice;null==this.Tether&&(this.Tether={modules:[]}),l=function(t){var e,n,r,i,o;if(n=getComputedStyle(t).position,"fixed"===n)return t;for(r=void 0,e=t;e=e.parentNode;){try{i=getComputedStyle(e)}catch(a){}if(null==i)return e;if(/(auto|scroll)/.test(i.overflow+i["overflow-y"]+i["overflow-x"])&&("absolute"!==n||"relative"===(o=i.position)||"absolute"===o||"fixed"===o))return e}return document.body},p=function(){var t;return t=0,function(){return t++}}(),v={},u=function(t){var e,r,o,a,s;if(o=t._tetherZeroElement,null==o&&(o=t.createElement("div"),o.setAttribute("data-tether-id",p()),i(o.style,{top:0,left:0,position:"absolute"}),t.body.appendChild(o),t._tetherZeroElement=o),e=o.getAttribute("data-tether-id"),null==v[e]){v[e]={},s=o.getBoundingClientRect();for(r in s)a=s[r],v[e][r]=a;n(function(){return v[e]=void 0})}return v[e]},h=null,a=function(t){var e,n,r,i,o,a,s;t===document?(n=document,t=document.documentElement):n=t.ownerDocument,r=n.documentElement,e={},s=t.getBoundingClientRect();for(i in s)a=s[i],e[i]=a;return o=u(n),e.top-=o.top,e.left-=o.left,null==e.width&&(e.width=document.body.scrollWidth-e.left-e.right),null==e.height&&(e.height=document.body.scrollHeight-e.top-e.bottom),e.top=e.top-r.clientTop,e.left=e.left-r.clientLeft,e.right=n.body.clientWidth-e.width-e.left,e.bottom=n.body.clientHeight-e.height-e.top,e},s=function(t){return t.offsetParent||document.documentElement},c=function(){var t,e,n,r,o;return t=document.createElement("div"),t.style.width="100%",t.style.height="200px",e=document.createElement("div"),i(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e),r=t.offsetWidth,e.style.overflow="scroll",o=t.offsetWidth,r===o&&(o=e.clientWidth),document.body.removeChild(e),n=r-o,{width:n,height:n}},i=function(t){var e,n,r,i,o,a,s;for(null==t&&(t={}),e=[],Array.prototype.push.apply(e,arguments),s=e.slice(1),o=0,a=s.length;a>o;o++)if(r=s[o])for(n in r)g.call(r,n)&&(i=r[n],t[n]=i);return t},d=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.remove(n));return a}return t.className=t.className.replace(new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi")," ")},e=function(t,e){var n,r,i,o,a;if(null!=t.classList){for(o=e.split(" "),a=[],r=0,i=o.length;i>r;r++)n=o[r],n.trim()&&a.push(t.classList.add(n));return a}return d(t,e),t.className+=" "+e},f=function(t,e){return null!=t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)},m=function(t,n,r){var i,o,a,s,u,c;for(o=0,s=r.length;s>o;o++)i=r[o],$.call(n,i)<0&&f(t,i)&&d(t,i);for(c=[],a=0,u=n.length;u>a;a++)i=n[a],f(t,i)?c.push(void 0):c.push(e(t,i));return c},r=[],n=function(t){return r.push(t)},o=function(){var t,e;for(e=[];t=r.pop();)e.push(t());return e},t=function(){function t(){}return t.prototype.on=function(t,e,n,r){var i;return null==r&&(r=!1),null==this.bindings&&(this.bindings={}),null==(i=this.bindings)[t]&&(i[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:r})},t.prototype.once=function(t,e,n){return this.on(t,e,n,!0)},t.prototype.off=function(t,e){var n,r,i;if(null!=(null!=(r=this.bindings)?r[t]:void 0)){if(null==e)return delete this.bindings[t];for(n=0,i=[];n<this.bindings[t].length;)this.bindings[t][n].handler===e?i.push(this.bindings[t].splice(n,1)):i.push(n++);return i}},t.prototype.trigger=function(){var t,e,n,r,i,o,a,s,u;if(n=arguments[0],t=2<=arguments.length?y.call(arguments,1):[],null!=(a=this.bindings)?a[n]:void 0){for(i=0,u=[];i<this.bindings[n].length;)s=this.bindings[n][i],r=s.handler,e=s.ctx,o=s.once,r.apply(null!=e?e:this,t),o?u.push(this.bindings[n].splice(i,1)):u.push(i++);return u}},t}(),this.Tether.Utils={getScrollParent:l,getBounds:a,getOffsetParent:s,extend:i,addClass:e,removeClass:d,hasClass:f,updateClasses:m,defer:n,flush:o,uniqueId:p,Evented:t,getScrollBarSize:c}}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=[].slice,O=function(t,e){return function(){return t.apply(e,arguments)}};if(null==this.Tether)throw new Error("You must include the utils.js file before tether.js");r=this.Tether,S=r.Utils,m=S.getScrollParent,v=S.getSize,d=S.getOuterSize,f=S.getBounds,h=S.getOffsetParent,c=S.extend,i=S.addClass,_=S.removeClass,E=S.updateClasses,u=S.defer,l=S.flush,p=S.getScrollBarSize,k=function(t,e,n){return null==n&&(n=1),t+n>=e&&e>=t-n},C=function(){var t,e,n,r,i;for(t=document.createElement("div"),i=["transform","webkitTransform","OTransform","MozTransform","msTransform"],n=0,r=i.length;r>n;n++)if(e=i[n],void 0!==t.style[e])return e}(),x=[],w=function(){var t,e,n;for(e=0,n=x.length;n>e;e++)t=x[e],t.position(!1);return l()},g=function(){var t;return null!=(t="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?t:+new Date},function(){var t,e,n,r,i,o,a,s,u;for(e=null,n=null,r=null,i=function(){if(null!=n&&n>16)return n=Math.min(n-16,250),void(r=setTimeout(i,250));if(!(null!=e&&g()-e<10))return null!=r&&(clearTimeout(r),r=null),e=g(),w(),n=g()-e},s=["resize","scroll","touchmove"],u=[],o=0,a=s.length;a>o;o++)t=s[o],u.push(window.addEventListener(t,i));return u}(),t={center:"center",left:"right",right:"left"},e={middle:"middle",top:"bottom",bottom:"top"},n={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},s=function(n,r){var i,o;return i=n.left,o=n.top,"auto"===i&&(i=t[r.left]),"auto"===o&&(o=e[r.top]),{left:i,top:o}},a=function(t){var e,r;return{left:null!=(e=n[t.left])?e:t.left,top:null!=(r=n[t.top])?r:t.top}},o=function(){var t,e,n,r,i,o,a;for(e=1<=arguments.length?T.call(arguments,0):[],n={top:0,left:0},i=0,o=e.length;o>i;i++)a=e[i],r=a.top,t=a.left,"string"==typeof r&&(r=parseFloat(r,10)),"string"==typeof t&&(t=parseFloat(t,10)),n.top+=r,n.left+=t;return n},$=function(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t},y=b=function(t){var e,n,r;return r=t.split(" "),n=r[0],e=r[1],{top:n,left:e}},A=function(){function t(t){this.position=O(this.position,this);var e,n,i,o,a;for(x.push(this),this.history=[],this.setOptions(t,!1),o=r.modules,n=0,i=o.length;i>n;n++)e=o[n],null!=(a=e.initialize)&&a.call(this);this.position()}return t.modules=[],t.prototype.getClass=function(t){var e,n;return(null!=(e=this.options.classes)?e[t]:void 0)?this.options.classes[t]:(null!=(n=this.options.classes)?n[t]:void 0)!==!1?this.options.classPrefix?""+this.options.classPrefix+"-"+t:t:""},t.prototype.setOptions=function(t,e){var n,r,o,a,s,u;for(this.options=t,null==e&&(e=!0),n={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"},this.options=c(n,this.options),s=this.options,this.element=s.element,this.target=s.target,this.targetModifier=s.targetModifier,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),u=["element","target"],o=0,a=u.length;a>o;o++){if(r=u[o],null==this[r])throw new Error("Tether Error: Both element and target must be defined");null!=this[r].jquery?this[r]=this[r][0]:"string"==typeof this[r]&&(this[r]=document.querySelector(this[r]))}if(i(this.element,this.getClass("element")),i(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");return this.targetAttachment=y(this.options.targetAttachment),this.attachment=y(this.options.attachment),this.offset=b(this.options.offset),this.targetOffset=b(this.options.targetOffset),null!=this.scrollParent&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParent=this.target:this.scrollParent=m(this.target),this.options.enabled!==!1?this.enable(e):void 0},t.prototype.getTargetBounds=function(){var t,e,n,r,i,o,a,s,u;if(null==this.targetModifier)return f(this.target);switch(this.targetModifier){case"visible":return this.target===document.body?{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth}:(t=f(this.target),i={height:t.height,width:t.width,top:t.top,left:t.left},i.height=Math.min(i.height,t.height-(pageYOffset-t.top)),i.height=Math.min(i.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),i.height=Math.min(innerHeight,i.height),i.height-=2,i.width=Math.min(i.width,t.width-(pageXOffset-t.left)),i.width=Math.min(i.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),i.width=Math.min(innerWidth,i.width),i.width-=2,i.top<pageYOffset&&(i.top=pageYOffset),i.left<pageXOffset&&(i.left=pageXOffset),i);case"scroll-handle":return u=this.target,u===document.body?(u=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=f(u),s=getComputedStyle(u),n=u.scrollWidth>u.clientWidth||"scroll"===[s.overflow,s.overflowX]||this.target!==document.body,o=0,n&&(o=15),r=t.height-parseFloat(s.borderTopWidth)-parseFloat(s.borderBottomWidth)-o,i={width:15,height:.975*r*(r/u.scrollHeight),left:t.left+t.width-parseFloat(s.borderLeftWidth)-15},e=0,408>r&&this.target===document.body&&(e=-11e-5*Math.pow(r,2)-.00727*r+22.58),this.target!==document.body&&(i.height=Math.max(i.height,24)),a=this.target.scrollTop/(u.scrollHeight-r),i.top=a*(r-i.height-e)+t.top+parseFloat(s.borderTopWidth),this.target===document.body&&(i.height=Math.max(i.height,24)),i}},t.prototype.clearCache=function(){return this._cache={}},t.prototype.cache=function(t,e){return null==this._cache&&(this._cache={}),null==this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]},t.prototype.enable=function(t){return null==t&&(t=!0),i(this.target,this.getClass("enabled")),i(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParent!==document&&this.scrollParent.addEventListener("scroll",this.position),t?this.position():void 0},t.prototype.disable=function(){return _(this.target,this.getClass("enabled")),_(this.element,this.getClass("enabled")),this.enabled=!1,null!=this.scrollParent?this.scrollParent.removeEventListener("scroll",this.position):void 0},t.prototype.destroy=function(){var t,e,n,r,i;for(this.disable(),i=[],t=n=0,r=x.length;r>n;t=++n){if(e=x[t],e===this){x.splice(t,1);break}i.push(void 0)}return i},t.prototype.updateAttachClasses=function(t,e){var n,r,i,o,a,s,c,l,f,h=this;for(null==t&&(t=this.attachment),null==e&&(e=this.targetAttachment),o=["left","top","bottom","right","middle","center"],(null!=(f=this._addAttachClasses)?f.length:void 0)&&this._addAttachClasses.splice(0,this._addAttachClasses.length),n=null!=this._addAttachClasses?this._addAttachClasses:this._addAttachClasses=[],t.top&&n.push(""+this.getClass("element-attached")+"-"+t.top),t.left&&n.push(""+this.getClass("element-attached")+"-"+t.left),e.top&&n.push(""+this.getClass("target-attached")+"-"+e.top),e.left&&n.push(""+this.getClass("target-attached")+"-"+e.left),r=[],a=0,c=o.length;c>a;a++)i=o[a],r.push(""+this.getClass("element-attached")+"-"+i);for(s=0,l=o.length;l>s;s++)i=o[s],r.push(""+this.getClass("target-attached")+"-"+i);return u(function(){return null!=h._addAttachClasses?(E(h.element,h._addAttachClasses,r),E(h.target,h._addAttachClasses,r),h._addAttachClasses=void 0):void 0})},t.prototype.position=function(t){var e,n,i,u,c,d,m,v,g,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H=this;if(null==t&&(t=!0),this.enabled){for(this.clearCache(),T=s(this.targetAttachment,this.attachment),this.updateAttachClasses(this.attachment,T),e=this.cache("element-bounds",function(){return f(H.element)}),D=e.width,i=e.height,0===D&&0===i&&null!=this.lastSize?(F=this.lastSize,D=F.width,i=F.height):this.lastSize={width:D,height:i},z=I=this.cache("target-bounds",function(){return H.getTargetBounds()}),g=$(a(this.attachment),{width:D,height:i}),O=$(a(T),z),c=$(this.offset,{width:D,height:i}),d=$(this.targetOffset,z),g=o(g,c),O=o(O,d),u=I.left+O.left-g.left,M=I.top+O.top-g.top,B=r.modules,j=0,P=B.length;P>j;j++)if(m=B[j],C=m.position.call(this,{left:u,top:M,targetAttachment:T,targetPos:I,attachment:this.attachment,elementPos:e,offset:g,targetOffset:O,manualOffset:c,manualTargetOffset:d,scrollbarSize:A}),null!=C&&"object"==typeof C){if(C===!1)return!1;M=C.top,u=C.left}if(v={page:{top:M,left:u},viewport:{top:M-pageYOffset,bottom:pageYOffset-M-i+innerHeight,left:u-pageXOffset,right:pageXOffset-u-D+innerWidth}},document.body.scrollWidth>window.innerWidth&&(A=this.cache("scrollbar-size",p),v.viewport.bottom-=A.height),document.body.scrollHeight>window.innerHeight&&(A=this.cache("scrollbar-size",p),v.viewport.right-=A.width),(""!==(L=document.body.style.position)&&"static"!==L||""!==(U=document.body.parentElement.style.position)&&"static"!==U)&&(v.page.bottom=document.body.scrollHeight-M-i,v.page.right=document.body.scrollWidth-u-D),(null!=(V=this.options.optimizations)?V.moveElement:void 0)!==!1&&null==this.targetModifier){for(b=this.cache("target-offsetparent",function(){return h(H.target)}),x=this.cache("target-offsetparent-bounds",function(){return f(b)}),_=getComputedStyle(b),n=getComputedStyle(this.element),w=x,y={},q=["Top","Left","Bottom","Right"],N=0,R=q.length;R>N;N++)S=q[N],y[S.toLowerCase()]=parseFloat(_["border"+S+"Width"]);x.right=document.body.scrollWidth-x.left-w.width+y.right,x.bottom=document.body.scrollHeight-x.top-w.height+y.bottom,v.page.top>=x.top+y.top&&v.page.bottom>=x.bottom&&v.page.left>=x.left+y.left&&v.page.right>=x.right&&(k=b.scrollTop,E=b.scrollLeft,v.offset={top:v.page.top-x.top+k-y.top,left:v.page.left-x.left+E-y.left})}return this.move(v),this.history.unshift(v),this.history.length>3&&this.history.pop(),t&&l(),!0}},t.prototype.move=function(t){var e,n,r,i,o,a,s,l,f,d,p,m,v,g,$,y,b,w=this;if(null!=this.element.parentNode){l={};for(d in t){l[d]={};for(i in t[d]){for(r=!1,y=this.history,g=0,$=y.length;$>g;g++)if(s=y[g],!k(null!=(b=s[d])?b[i]:void 0,t[d][i])){r=!0;break}r||(l[d][i]=!0)}}e={top:"",left:"",right:"",bottom:""},f=function(t,n){var r,i,o;return(null!=(o=w.options.optimizations)?o.gpu:void 0)===!1?(t.top?e.top=""+n.top+"px":e.bottom=""+n.bottom+"px",t.left?e.left=""+n.left+"px":e.right=""+n.right+"px"):(t.top?(e.top=0,i=n.top):(e.bottom=0,i=-n.bottom),t.left?(e.left=0,r=n.left):(e.right=0,r=-n.right),e[C]="translateX("+Math.round(r)+"px) translateY("+Math.round(i)+"px)","msTransform"!==C?e[C]+=" translateZ(0)":void 0)},o=!1,(l.page.top||l.page.bottom)&&(l.page.left||l.page.right)?(e.position="absolute",f(l.page,t.page)):(l.viewport.top||l.viewport.bottom)&&(l.viewport.left||l.viewport.right)?(e.position="fixed",f(l.viewport,t.viewport)):null!=l.offset&&l.offset.top&&l.offset.left?(e.position="absolute",a=this.cache("target-offsetparent",function(){return h(w.target)}),h(this.element)!==a&&u(function(){return w.element.parentNode.removeChild(w.element),a.appendChild(w.element)}),f(l.offset,t.offset),o=!0):(e.position="absolute",f({top:!0,left:!0},t.page)),o||"BODY"===this.element.parentNode.tagName||(this.element.parentNode.removeChild(this.element),document.body.appendChild(this.element)),v={},m=!1;for(i in e)p=e[i],n=this.element.style[i],""===n||""===p||"top"!==i&&"left"!==i&&"bottom"!==i&&"right"!==i||(n=parseFloat(n),p=parseFloat(p)),n!==p&&(m=!0,v[i]=e[i]);return m?u(function(){return c(w.element.style,v)}):void 0}},t}(),r.position=w,this.Tether=c(A,r)}.call(this),function(){var t,e,n,r,i,o,a,s,u,c,l=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1};c=this.Tether.Utils,a=c.getOuterSize,o=c.getBounds,s=c.getSize,r=c.extend,u=c.updateClasses,n=c.defer,e={left:"right",right:"left",top:"bottom",bottom:"top",middle:"middle"},t=["left","top","right","bottom"],i=function(e,n){var r,i,a,s,u,c,l;if("scrollParent"===n?n=e.scrollParent:"window"===n&&(n=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),n===document&&(n=n.documentElement),null!=n.nodeType)for(i=s=o(n),u=getComputedStyle(n),n=[i.left,i.top,s.width+i.left,s.height+i.top],r=c=0,l=t.length;l>c;r=++c)a=t[r],a=a[0].toUpperCase()+a.substr(1),"Top"===a||"Left"===a?n[r]+=parseFloat(u["border"+a+"Width"]):n[r]-=parseFloat(u["border"+a+"Width"]);return n},this.Tether.modules.push({position:function(e){var a,s,c,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T,O,I,z,M,D,j,N,P,R,F,B,L,U,V,q,H,W,X,Y,Z,G,K,J,Q,tt,et=this;if(M=e.top,$=e.left,S=e.targetAttachment,!this.options.constraints)return!0;for(E=function(e){var n,r,i,o;for(et.removeClass(e),o=[],r=0,i=t.length;i>r;r++)n=t[r],o.push(et.removeClass(""+e+"-"+n));return o},X=this.cache("element-bounds",function(){return o(et.element)}),g=X.height,D=X.width,0===D&&0===g&&null!=this.lastSize&&(Y=this.lastSize,D=Y.width,g=Y.height),O=this.cache("target-bounds",function(){return et.getTargetBounds()}),T=O.height,I=O.width,A={},v={},s=[this.getClass("pinned"),this.getClass("out-of-bounds")],Z=this.options.constraints,j=0,F=Z.length;F>j;j++)m=Z[j],m.outOfBoundsClass&&s.push(m.outOfBoundsClass),m.pinnedClass&&s.push(m.pinnedClass);for(N=0,B=s.length;B>N;N++)for(p=s[N],G=["left","top","right","bottom"],P=0,L=G.length;L>P;P++)k=G[P],s.push(""+p+"-"+k);for(a=[],A=r({},S),v=r({},this.attachment),K=this.options.constraints,R=0,U=K.length;U>R;R++){if(m=K[R],z=m.to,c=m.attachment,_=m.pin,null==c&&(c=""),l.call(c," ")>=0?(J=c.split(" "),d=J[0],h=J[1]):h=d=c,f=i(this,z),("target"===d||"both"===d)&&(M<f[1]&&"top"===A.top&&(M+=T,A.top="bottom"),M+g>f[3]&&"bottom"===A.top&&(M-=T,A.top="top")),"together"===d&&(M<f[1]&&"top"===A.top&&("bottom"===v.top?(M+=T,A.top="bottom",M+=g,v.top="top"):"top"===v.top&&(M+=T,A.top="bottom",M-=g,v.top="bottom")),M+g>f[3]&&"bottom"===A.top&&("top"===v.top?(M-=T,A.top="top",M-=g,v.top="bottom"):"bottom"===v.top&&(M-=T,A.top="top",M+=g,v.top="top")),"middle"===A.top&&(M+g>f[3]&&"top"===v.top?(M-=g,v.top="bottom"):M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"))),("target"===h||"both"===h)&&($<f[0]&&"left"===A.left&&($+=I,A.left="right"),$+D>f[2]&&"right"===A.left&&($-=I,A.left="left")),"together"===h&&($<f[0]&&"left"===A.left?"right"===v.left?($+=I,A.left="right",$+=D,v.left="left"):"left"===v.left&&($+=I,A.left="right",$-=D,v.left="right"):$+D>f[2]&&"right"===A.left?"left"===v.left?($-=I,A.left="left",$-=D,v.left="right"):"right"===v.left&&($-=I,A.left="left",$+=D,v.left="left"):"center"===A.left&&($+D>f[2]&&"left"===v.left?($-=D,v.left="right"):$<f[0]&&"right"===v.left&&($+=D,v.left="left"))),("element"===d||"both"===d)&&(M<f[1]&&"bottom"===v.top&&(M+=g,v.top="top"),M+g>f[3]&&"top"===v.top&&(M-=g,v.top="bottom")),("element"===h||"both"===h)&&($<f[0]&&"right"===v.left&&($+=D,v.left="left"),$+D>f[2]&&"left"===v.left&&($-=D,v.left="right")),"string"==typeof _?_=function(){var t,e,n,r;for(n=_.split(","),r=[],e=0,t=n.length;t>e;e++)w=n[e],r.push(w.trim());return r}():_===!0&&(_=["top","left","right","bottom"]),_||(_=[]),x=[],y=[],M<f[1]&&(l.call(_,"top")>=0?(M=f[1],x.push("top")):y.push("top")),M+g>f[3]&&(l.call(_,"bottom")>=0?(M=f[3]-g,x.push("bottom")):y.push("bottom")),$<f[0]&&(l.call(_,"left")>=0?($=f[0],x.push("left")):y.push("left")),$+D>f[2]&&(l.call(_,"right")>=0?($=f[2]-D,
+x.push("right")):y.push("right")),x.length)for(C=null!=(Q=this.options.pinnedClass)?Q:this.getClass("pinned"),a.push(C),H=0,V=x.length;V>H;H++)k=x[H],a.push(""+C+"-"+k);if(y.length)for(b=null!=(tt=this.options.outOfBoundsClass)?tt:this.getClass("out-of-bounds"),a.push(b),W=0,q=y.length;q>W;W++)k=y[W],a.push(""+b+"-"+k);(l.call(x,"left")>=0||l.call(x,"right")>=0)&&(v.left=A.left=!1),(l.call(x,"top")>=0||l.call(x,"bottom")>=0)&&(v.top=A.top=!1),(A.top!==S.top||A.left!==S.left||v.top!==this.attachment.top||v.left!==this.attachment.left)&&this.updateAttachClasses(v,A)}return n(function(){return u(et.target,a,s),u(et.element,a,s)}),{top:M,left:$}}})}.call(this),function(){var t,e,n,r;r=this.Tether.Utils,e=r.getBounds,n=r.updateClasses,t=r.defer,this.Tether.modules.push({position:function(r){var i,o,a,s,u,c,l,f,h,d,p,m,v,g,$,y,b,w,_,x,C,E,k,A,S,T=this;if(p=r.top,c=r.left,C=this.cache("element-bounds",function(){return e(T.element)}),u=C.height,m=C.width,d=this.getTargetBounds(),s=p+u,l=c+m,i=[],p<=d.bottom&&s>=d.top)for(E=["left","right"],v=0,b=E.length;b>v;v++)f=E[v],((k=d[f])===c||k===l)&&i.push(f);if(c<=d.right&&l>=d.left)for(A=["top","bottom"],g=0,w=A.length;w>g;g++)f=A[g],((S=d[f])===p||S===s)&&i.push(f);for(a=[],o=[],h=["left","top","right","bottom"],a.push(this.getClass("abutted")),$=0,_=h.length;_>$;$++)f=h[$],a.push(""+this.getClass("abutted")+"-"+f);for(i.length&&o.push(this.getClass("abutted")),y=0,x=i.length;x>y;y++)f=i[y],o.push(""+this.getClass("abutted")+"-"+f);return t(function(){return n(T.target,o,a),n(T.element,o,a)}),!0}})}.call(this),function(){this.Tether.modules.push({position:function(t){var e,n,r,i,o,a,s;return a=t.top,e=t.left,this.options.shift?(n=function(t){return"function"==typeof t?t.call(this,{top:a,left:e}):t},r=n(this.options.shift),"string"==typeof r?(r=r.split(" "),r[1]||(r[1]=r[0]),o=r[0],i=r[1],o=parseFloat(o,10),i=parseFloat(i,10)):(s=[r.top,r.left],o=s[0],i=s[1]),a+=o,e+=i,{top:a,left:e}):void 0}})}.call(this),this.Tether}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfillHacks=e()}(this,function(){"use strict";function t(t,o,u,c){if((e.contentHack||e.behaviorHack)&&("content"===u||"behavior"===u)){var l=e.contentHack&&!s&&"content"===u&&c.indexOf("use_css_content_hack")>-1,f=e.behaviorHack&&!a&&"behavior"===u&&c.indexOf("use_css_behavior_hack")>-1;if(l||f){var h=c.replace(r,"");f&&(h=h.replace(i,"")),h.split(";").forEach(function(e){var r=e.split(":");if(2===r.length){var i=r[0].trim(),a=r[1].trim();if("use_css_content_hack"!==i&&"use_css_behavior_hack"!==i&&(t.push([o,i,a]),n.test(a))){var s=a.replace(n,"-webkit-calc(");t.push([o,i,s])}}})}}}var e,n=/calc\(/g,r=/[\"\']/g,i=/url\([^\)]*\)/g,o=!1,a=!0,s=!0;return{required:function(t){return t.isMobileSafari||o},initialize:function(t){e=t;var n=document.createElement("div");n.style.width="1vmax",a=""!==n.style.width,e.isMobileSafari&&(s=!1)},initializeEvents:function(t,e,n){t.force||o&&!t._listeningToResize&&(window.addEventListener("resize",n,!0),t._listeningToResize=!0)},findDeclarations:function(e,n,r,i){null!==r&&t(e,n,r,i)},overwriteDeclaration:function(t,e,n){return o&&"filter"===e&&(n=n.replace(/px/g,"")),n}}}),function(t,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.viewportUnitsBuggyfill=e()}(this,function(){"use strict";function t(t,e){var n;return function(){var r=this,i=arguments,o=function(){t.apply(r,i)};clearTimeout(n),n=setTimeout(o,e)}}function e(){try{return window.self!==window.top}catch(t){return!0}}function n(n){y||(n===!0&&(n={force:!0}),m=n||{},m.isMobileSafari=b,(m.force||b||x||m.hacks&&m.hacks.required(m))&&(m.hacks&&m.hacks.initialize(m),y=!0,$=document.createElement("style"),$.id="patched-viewport",document.head.appendChild($),f(function(){var n=t(i,m.refreshDebounceWait||100);window.addEventListener("orientationchange",n,!0),window.addEventListener("pageshow",n,!0),(m.force||x||e())&&(window.addEventListener("resize",n,!0),m._listeningToResize=!0),m.hacks&&m.hacks.initializeEvents(m,i,n),i()})))}function r(){$.textContent=s()}function i(){y&&(o(),setTimeout(function(){r()},1))}function o(){return g=[],_.call(document.styleSheets,function(t){"patched-viewport"!==t.ownerNode.id&&t.cssRules&&(t.media&&t.media.mediaText&&window.matchMedia&&!window.matchMedia(t.media.mediaText).matches||_.call(t.cssRules,a))}),g}function a(t){if(7===t.type){var e=t.cssText;return w.lastIndex=0,void(w.test(e)&&(g.push([t,null,e]),m.hacks&&m.hacks.findDeclarations(g,t,null,e)))}if(!t.style){if(!t.cssRules)return;return void _.call(t.cssRules,function(t){a(t)})}_.call(t.style,function(e){var n=t.style.getPropertyValue(e);w.lastIndex=0,w.test(n)&&(g.push([t,e,n]),m.hacks&&m.hacks.findDeclarations(g,t,e,n))})}function s(){v=l();var t,e,n=[],r=[];return g.forEach(function(i){var o=u.apply(null,i),a=o.selector.length?o.selector.join(" {\n")+" {\n":"",s=new Array(o.selector.length+1).join("\n}");return a&&a===t?(a&&!t&&(t=a,e=s),void r.push(o.content)):(r.length&&(n.push(t+r.join("\n")+e),r.length=0),void(a?(t=a,e=s,r.push(o.content)):(n.push(o.content),t=null,e=null)))}),r.length&&n.push(t+r.join("\n")+e),n.join("\n\n")}function u(t,e,n){var r=n.replace(w,c),i=[];m.hacks&&(r=m.hacks.overwriteDeclaration(t,e,r)),e&&(i.push(t.selectorText),r=e+": "+r+";");for(var o=t.parentRule;o;)i.unshift("@media "+o.media.mediaText),o=o.parentRule;return{selector:i,content:r}}function c(t,e,n){var r=v[n],i=parseFloat(e)/100;return i*r+"px"}function l(){var t=window.innerHeight,e=window.innerWidth;return{vh:t,vw:e,vmax:Math.max(e,t),vmin:Math.min(e,t)}}function f(t){var e=0,n=function(){e--,e||t()};_.call(document.styleSheets,function(t){t.href&&h(t.href)!==h(location.href)&&(e++,d(t.ownerNode,n))}),e||t()}function h(t){return t.slice(0,t.indexOf("/",t.indexOf("://")+3))}function d(t,e){p(t.href,function(){var n=document.createElement("style");n.media=t.media,n.setAttribute("data-href",t.href),n.textContent=this.responseText,t.parentNode.replaceChild(n,t),e()},e)}function p(t,e,n){var r=new XMLHttpRequest;if("withCredentials"in r)r.open("GET",t,!0);else{if("undefined"==typeof XDomainRequest)throw new Error("cross-domain XHR not supported");r=new XDomainRequest,r.open("GET",t)}return r.onload=e,r.onerror=n,r.send(),r}var m,v,g,$,y=!1,b=/(iPhone|iPod|iPad).+AppleWebKit/i.test(window.navigator.userAgent),w=/([+-]?[0-9.]+)(vh|vw|vmin|vmax)/g,_=[].forEach,x=!1;return{version:"0.4.1",findProperties:o,getCss:s,init:n,refresh:i}}); \ No newline at end of file
diff --git a/afb-client/dist.prod/global_styles/foundation-conf.min.css b/afb-client/dist.prod/global_styles/foundation-conf.min.css
new file mode 100644
index 0000000..6ac6bf8
--- /dev/null
+++ b/afb-client/dist.prod/global_styles/foundation-conf.min.css
@@ -0,0 +1,2 @@
+.block-list li>span,button[disabled],html input[disabled]{cursor:default}body,sub,sup{position:relative}.block-list .with-dropdown select,select{-webkit-appearance:none;-moz-appearance:none}h1,h2,h3,h4,h5,h6,p{text-rendering:optimizeLegibility}.action-sheet ul,.action-sheet.dark ul,.action-sheet.primary ul,.block-list,.block-list ul,.button-group,.inline-list,.menu-bar,.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-6,.small-up-7,.small-up-8,.small-up-9,ul.no-bullet,ul.no-bullet li ol,ul.no-bullet li ul{list-style-type:none}.notification-icon,.v-align .align-top{align-self:flex-start}.clearfix:after,hr{clear:both}@font-face{font-family:foundation-icons;src:url(/bower_components/foundation-icons.woff) format("woff");font-weight:400;font-style:normal}.fi-address-book:before,.fi-alert:before,.fi-align-center:before,.fi-align-justify:before,.fi-align-left:before,.fi-align-right:before,.fi-anchor:before,.fi-annotate:before,.fi-archive:before,.fi-arrow-down:before,.fi-arrow-left:before,.fi-arrow-right:before,.fi-arrow-up:before,.fi-arrows-compress:before,.fi-arrows-expand:before,.fi-arrows-in:before,.fi-arrows-out:before,.fi-asl:before,.fi-asterisk:before,.fi-at-sign:before,.fi-background-color:before,.fi-battery-empty:before,.fi-battery-full:before,.fi-battery-half:before,.fi-bitcoin-circle:before,.fi-bitcoin:before,.fi-blind:before,.fi-bluetooth:before,.fi-bold:before,.fi-book-bookmark:before,.fi-book:before,.fi-bookmark:before,.fi-braille:before,.fi-burst-new:before,.fi-burst-sale:before,.fi-burst:before,.fi-calendar:before,.fi-camera:before,.fi-check:before,.fi-checkbox:before,.fi-clipboard-notes:before,.fi-clipboard-pencil:before,.fi-clipboard:before,.fi-clock:before,.fi-closed-caption:before,.fi-cloud:before,.fi-comment-minus:before,.fi-comment-quotes:before,.fi-comment-video:before,.fi-comment:before,.fi-comments:before,.fi-compass:before,.fi-contrast:before,.fi-credit-card:before,.fi-crop:before,.fi-crown:before,.fi-css3:before,.fi-database:before,.fi-die-five:before,.fi-die-four:before,.fi-die-one:before,.fi-die-six:before,.fi-die-three:before,.fi-die-two:before,.fi-dislike:before,.fi-dollar-bill:before,.fi-dollar:before,.fi-download:before,.fi-eject:before,.fi-elevator:before,.fi-euro:before,.fi-eye:before,.fi-fast-forward:before,.fi-female-symbol:before,.fi-female:before,.fi-filter:before,.fi-first-aid:before,.fi-flag:before,.fi-folder-add:before,.fi-folder-lock:before,.fi-folder:before,.fi-foot:before,.fi-foundation:before,.fi-graph-bar:before,.fi-graph-horizontal:before,.fi-graph-pie:before,.fi-graph-trend:before,.fi-guide-dog:before,.fi-hearing-aid:before,.fi-heart:before,.fi-home:before,.fi-html5:before,.fi-indent-less:before,.fi-indent-more:before,.fi-info:before,.fi-italic:before,.fi-key:before,.fi-laptop:before,.fi-layout:before,.fi-lightbulb:before,.fi-like:before,.fi-link:before,.fi-list-bullet:before,.fi-list-number:before,.fi-list-thumbnails:before,.fi-list:before,.fi-lock:before,.fi-loop:before,.fi-magnifying-glass:before,.fi-mail:before,.fi-male-female:before,.fi-male-symbol:before,.fi-male:before,.fi-map:before,.fi-marker:before,.fi-megaphone:before,.fi-microphone:before,.fi-minus-circle:before,.fi-minus:before,.fi-mobile-signal:before,.fi-mobile:before,.fi-monitor:before,.fi-mountains:before,.fi-music:before,.fi-next:before,.fi-no-dogs:before,.fi-no-smoking:before,.fi-page-add:before,.fi-page-copy:before,.fi-page-csv:before,.fi-page-delete:before,.fi-page-doc:before,.fi-page-edit:before,.fi-page-export-csv:before,.fi-page-export-doc:before,.fi-page-export-pdf:before,.fi-page-export:before,.fi-page-filled:before,.fi-page-multiple:before,.fi-page-pdf:before,.fi-page-remove:before,.fi-page-search:before,.fi-page:before,.fi-paint-bucket:before,.fi-paperclip:before,.fi-pause:before,.fi-paw:before,.fi-paypal:before,.fi-pencil:before,.fi-photo:before,.fi-play-circle:before,.fi-play-video:before,.fi-play:before,.fi-plus:before,.fi-pound:before,.fi-power:before,.fi-previous:before,.fi-price-tag:before,.fi-pricetag-multiple:before,.fi-print:before,.fi-prohibited:before,.fi-projection-screen:before,.fi-puzzle:before,.fi-quote:before,.fi-record:before,.fi-refresh:before,.fi-results-demographics:before,.fi-results:before,.fi-rewind-ten:before,.fi-rewind:before,.fi-rss:before,.fi-safety-cone:before,.fi-save:before,.fi-share:before,.fi-sheriff-badge:before,.fi-shield:before,.fi-shopping-bag:before,.fi-shopping-cart:before,.fi-shuffle:before,.fi-skull:before,.fi-social-500px:before,.fi-social-adobe:before,.fi-social-amazon:before,.fi-social-android:before,.fi-social-apple:before,.fi-social-behance:before,.fi-social-bing:before,.fi-social-blogger:before,.fi-social-delicious:before,.fi-social-designer-news:before,.fi-social-deviant-art:before,.fi-social-digg:before,.fi-social-dribbble:before,.fi-social-drive:before,.fi-social-dropbox:before,.fi-social-evernote:before,.fi-social-facebook:before,.fi-social-flickr:before,.fi-social-forrst:before,.fi-social-foursquare:before,.fi-social-game-center:before,.fi-social-github:before,.fi-social-google-plus:before,.fi-social-hacker-news:before,.fi-social-hi5:before,.fi-social-instagram:before,.fi-social-joomla:before,.fi-social-lastfm:before,.fi-social-linkedin:before,.fi-social-medium:before,.fi-social-myspace:before,.fi-social-orkut:before,.fi-social-path:before,.fi-social-picasa:before,.fi-social-pinterest:before,.fi-social-rdio:before,.fi-social-reddit:before,.fi-social-skillshare:before,.fi-social-skype:before,.fi-social-smashing-mag:before,.fi-social-snapchat:before,.fi-social-spotify:before,.fi-social-squidoo:before,.fi-social-stack-overflow:before,.fi-social-steam:before,.fi-social-stumbleupon:before,.fi-social-treehouse:before,.fi-social-tumblr:before,.fi-social-twitter:before,.fi-social-vimeo:before,.fi-social-windows:before,.fi-social-xbox:before,.fi-social-yahoo:before,.fi-social-yelp:before,.fi-social-youtube:before,.fi-social-zerply:before,.fi-social-zurb:before,.fi-sound:before,.fi-star:before,.fi-stop:before,.fi-strikethrough:before,.fi-subscript:before,.fi-superscript:before,.fi-tablet-landscape:before,.fi-tablet-portrait:before,.fi-target-two:before,.fi-target:before,.fi-telephone-accessible:before,.fi-telephone:before,.fi-text-color:before,.fi-thumbnails:before,.fi-ticket:before,.fi-torso-business:before,.fi-torso-female:before,.fi-torso:before,.fi-torsos-all-female:before,.fi-torsos-all:before,.fi-torsos-female-male:before,.fi-torsos-male-female:before,.fi-torsos:before,.fi-trash:before,.fi-trees:before,.fi-trophy:before,.fi-underline:before,.fi-universal-access:before,.fi-unlink:before,.fi-unlock:before,.fi-upload-cloud:before,.fi-upload:before,.fi-usb:before,.fi-video:before,.fi-volume-none:before,.fi-volume-strike:before,.fi-volume:before,.fi-web:before,.fi-wheelchair:before,.fi-widget:before,.fi-wrench:before,.fi-x-circle:before,.fi-x:before,.fi-yen:before,.fi-zoom-in:before,.fi-zoom-out:before{font-family:foundation-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;display:inline-block;text-decoration:inherit}.block-list header,.menu-bar>li.title,.title-bar .title,b,optgroup,strong{font-weight:700}.fi-address-book:before{content:"\f100"}.fi-alert:before{content:"\f101"}.fi-align-center:before{content:"\f102"}.fi-align-justify:before{content:"\f103"}.fi-align-left:before{content:"\f104"}.fi-align-right:before{content:"\f105"}.fi-anchor:before{content:"\f106"}.fi-annotate:before{content:"\f107"}.fi-archive:before{content:"\f108"}.fi-arrow-down:before{content:"\f109"}.fi-arrow-left:before{content:"\f10a"}.fi-arrow-right:before{content:"\f10b"}.fi-arrow-up:before{content:"\f10c"}.fi-arrows-compress:before{content:"\f10d"}.fi-arrows-expand:before{content:"\f10e"}.fi-arrows-in:before{content:"\f10f"}.fi-arrows-out:before{content:"\f110"}.fi-asl:before{content:"\f111"}.fi-asterisk:before{content:"\f112"}.fi-at-sign:before{content:"\f113"}.fi-background-color:before{content:"\f114"}.fi-battery-empty:before{content:"\f115"}.fi-battery-full:before{content:"\f116"}.fi-battery-half:before{content:"\f117"}.fi-bitcoin-circle:before{content:"\f118"}.fi-bitcoin:before{content:"\f119"}.fi-blind:before{content:"\f11a"}.fi-bluetooth:before{content:"\f11b"}.fi-bold:before{content:"\f11c"}.fi-book-bookmark:before{content:"\f11d"}.fi-book:before{content:"\f11e"}.fi-bookmark:before{content:"\f11f"}.fi-braille:before{content:"\f120"}.fi-burst-new:before{content:"\f121"}.fi-burst-sale:before{content:"\f122"}.fi-burst:before{content:"\f123"}.fi-calendar:before{content:"\f124"}.fi-camera:before{content:"\f125"}.fi-check:before{content:"\f126"}.fi-checkbox:before{content:"\f127"}.fi-clipboard-notes:before{content:"\f128"}.fi-clipboard-pencil:before{content:"\f129"}.fi-clipboard:before{content:"\f12a"}.fi-clock:before{content:"\f12b"}.fi-closed-caption:before{content:"\f12c"}.fi-cloud:before{content:"\f12d"}.fi-comment-minus:before{content:"\f12e"}.fi-comment-quotes:before{content:"\f12f"}.fi-comment-video:before{content:"\f130"}.fi-comment:before{content:"\f131"}.fi-comments:before{content:"\f132"}.fi-compass:before{content:"\f133"}.fi-contrast:before{content:"\f134"}.fi-credit-card:before{content:"\f135"}.fi-crop:before{content:"\f136"}.fi-crown:before{content:"\f137"}.fi-css3:before{content:"\f138"}.fi-database:before{content:"\f139"}.fi-die-five:before{content:"\f13a"}.fi-die-four:before{content:"\f13b"}.fi-die-one:before{content:"\f13c"}.fi-die-six:before{content:"\f13d"}.fi-die-three:before{content:"\f13e"}.fi-die-two:before{content:"\f13f"}.fi-dislike:before{content:"\f140"}.fi-dollar-bill:before{content:"\f141"}.fi-dollar:before{content:"\f142"}.fi-download:before{content:"\f143"}.fi-eject:before{content:"\f144"}.fi-elevator:before{content:"\f145"}.fi-euro:before{content:"\f146"}.fi-eye:before{content:"\f147"}.fi-fast-forward:before{content:"\f148"}.fi-female-symbol:before{content:"\f149"}.fi-female:before{content:"\f14a"}.fi-filter:before{content:"\f14b"}.fi-first-aid:before{content:"\f14c"}.fi-flag:before{content:"\f14d"}.fi-folder-add:before{content:"\f14e"}.fi-folder-lock:before{content:"\f14f"}.fi-folder:before{content:"\f150"}.fi-foot:before{content:"\f151"}.fi-foundation:before{content:"\f152"}.fi-graph-bar:before{content:"\f153"}.fi-graph-horizontal:before{content:"\f154"}.fi-graph-pie:before{content:"\f155"}.fi-graph-trend:before{content:"\f156"}.fi-guide-dog:before{content:"\f157"}.fi-hearing-aid:before{content:"\f158"}.fi-heart:before{content:"\f159"}.fi-home:before{content:"\f15a"}.fi-html5:before{content:"\f15b"}.fi-indent-less:before{content:"\f15c"}.fi-indent-more:before{content:"\f15d"}.fi-info:before{content:"\f15e"}.fi-italic:before{content:"\f15f"}.fi-key:before{content:"\f160"}.fi-laptop:before{content:"\f161"}.fi-layout:before{content:"\f162"}.fi-lightbulb:before{content:"\f163"}.fi-like:before{content:"\f164"}.fi-link:before{content:"\f165"}.fi-list-bullet:before{content:"\f166"}.fi-list-number:before{content:"\f167"}.fi-list-thumbnails:before{content:"\f168"}.fi-list:before{content:"\f169"}.fi-lock:before{content:"\f16a"}.fi-loop:before{content:"\f16b"}.fi-magnifying-glass:before{content:"\f16c"}.fi-mail:before{content:"\f16d"}.fi-male-female:before{content:"\f16e"}.fi-male-symbol:before{content:"\f16f"}.fi-male:before{content:"\f170"}.fi-map:before{content:"\f171"}.fi-marker:before{content:"\f172"}.fi-megaphone:before{content:"\f173"}.fi-microphone:before{content:"\f174"}.fi-minus-circle:before{content:"\f175"}.fi-minus:before{content:"\f176"}.fi-mobile-signal:before{content:"\f177"}.fi-mobile:before{content:"\f178"}.fi-monitor:before{content:"\f179"}.fi-mountains:before{content:"\f17a"}.fi-music:before{content:"\f17b"}.fi-next:before{content:"\f17c"}.fi-no-dogs:before{content:"\f17d"}.fi-no-smoking:before{content:"\f17e"}.fi-page-add:before{content:"\f17f"}.fi-page-copy:before{content:"\f180"}.fi-page-csv:before{content:"\f181"}.fi-page-delete:before{content:"\f182"}.fi-page-doc:before{content:"\f183"}.fi-page-edit:before{content:"\f184"}.fi-page-export-csv:before{content:"\f185"}.fi-page-export-doc:before{content:"\f186"}.fi-page-export-pdf:before{content:"\f187"}.fi-page-export:before{content:"\f188"}.fi-page-filled:before{content:"\f189"}.fi-page-multiple:before{content:"\f18a"}.fi-page-pdf:before{content:"\f18b"}.fi-page-remove:before{content:"\f18c"}.fi-page-search:before{content:"\f18d"}.fi-page:before{content:"\f18e"}.fi-paint-bucket:before{content:"\f18f"}.fi-paperclip:before{content:"\f190"}.fi-pause:before{content:"\f191"}.fi-paw:before{content:"\f192"}.fi-paypal:before{content:"\f193"}.fi-pencil:before{content:"\f194"}.fi-photo:before{content:"\f195"}.fi-play-circle:before{content:"\f196"}.fi-play-video:before{content:"\f197"}.fi-play:before{content:"\f198"}.fi-plus:before{content:"\f199"}.fi-pound:before{content:"\f19a"}.fi-power:before{content:"\f19b"}.fi-previous:before{content:"\f19c"}.fi-price-tag:before{content:"\f19d"}.fi-pricetag-multiple:before{content:"\f19e"}.fi-print:before{content:"\f19f"}.fi-prohibited:before{content:"\f1a0"}.fi-projection-screen:before{content:"\f1a1"}.fi-puzzle:before{content:"\f1a2"}.fi-quote:before{content:"\f1a3"}.fi-record:before{content:"\f1a4"}.fi-refresh:before{content:"\f1a5"}.fi-results-demographics:before{content:"\f1a6"}.fi-results:before{content:"\f1a7"}.fi-rewind-ten:before{content:"\f1a8"}.fi-rewind:before{content:"\f1a9"}.fi-rss:before{content:"\f1aa"}.fi-safety-cone:before{content:"\f1ab"}.fi-save:before{content:"\f1ac"}.fi-share:before{content:"\f1ad"}.fi-sheriff-badge:before{content:"\f1ae"}.fi-shield:before{content:"\f1af"}.fi-shopping-bag:before{content:"\f1b0"}.fi-shopping-cart:before{content:"\f1b1"}.fi-shuffle:before{content:"\f1b2"}.fi-skull:before{content:"\f1b3"}.fi-social-500px:before{content:"\f1b4"}.fi-social-adobe:before{content:"\f1b5"}.fi-social-amazon:before{content:"\f1b6"}.fi-social-android:before{content:"\f1b7"}.fi-social-apple:before{content:"\f1b8"}.fi-social-behance:before{content:"\f1b9"}.fi-social-bing:before{content:"\f1ba"}.fi-social-blogger:before{content:"\f1bb"}.fi-social-delicious:before{content:"\f1bc"}.fi-social-designer-news:before{content:"\f1bd"}.fi-social-deviant-art:before{content:"\f1be"}.fi-social-digg:before{content:"\f1bf"}.fi-social-dribbble:before{content:"\f1c0"}.fi-social-drive:before{content:"\f1c1"}.fi-social-dropbox:before{content:"\f1c2"}.fi-social-evernote:before{content:"\f1c3"}.fi-social-facebook:before{content:"\f1c4"}.fi-social-flickr:before{content:"\f1c5"}.fi-social-forrst:before{content:"\f1c6"}.fi-social-foursquare:before{content:"\f1c7"}.fi-social-game-center:before{content:"\f1c8"}.fi-social-github:before{content:"\f1c9"}.fi-social-google-plus:before{content:"\f1ca"}.fi-social-hacker-news:before{content:"\f1cb"}.fi-social-hi5:before{content:"\f1cc"}.fi-social-instagram:before{content:"\f1cd"}.fi-social-joomla:before{content:"\f1ce"}.fi-social-lastfm:before{content:"\f1cf"}.fi-social-linkedin:before{content:"\f1d0"}.fi-social-medium:before{content:"\f1d1"}.fi-social-myspace:before{content:"\f1d2"}.fi-social-orkut:before{content:"\f1d3"}.fi-social-path:before{content:"\f1d4"}.fi-social-picasa:before{content:"\f1d5"}.fi-social-pinterest:before{content:"\f1d6"}.fi-social-rdio:before{content:"\f1d7"}.fi-social-reddit:before{content:"\f1d8"}.fi-social-skillshare:before{content:"\f1d9"}.fi-social-skype:before{content:"\f1da"}.fi-social-smashing-mag:before{content:"\f1db"}.fi-social-snapchat:before{content:"\f1dc"}.fi-social-spotify:before{content:"\f1dd"}.fi-social-squidoo:before{content:"\f1de"}.fi-social-stack-overflow:before{content:"\f1df"}.fi-social-steam:before{content:"\f1e0"}.fi-social-stumbleupon:before{content:"\f1e1"}.fi-social-treehouse:before{content:"\f1e2"}.fi-social-tumblr:before{content:"\f1e3"}.fi-social-twitter:before{content:"\f1e4"}.fi-social-vimeo:before{content:"\f1e5"}.fi-social-windows:before{content:"\f1e6"}.fi-social-xbox:before{content:"\f1e7"}.fi-social-yahoo:before{content:"\f1e8"}.fi-social-yelp:before{content:"\f1e9"}.fi-social-youtube:before{content:"\f1ea"}.fi-social-zerply:before{content:"\f1eb"}.fi-social-zurb:before{content:"\f1ec"}.fi-sound:before{content:"\f1ed"}.fi-star:before{content:"\f1ee"}.fi-stop:before{content:"\f1ef"}.fi-strikethrough:before{content:"\f1f0"}.fi-subscript:before{content:"\f1f1"}.fi-superscript:before{content:"\f1f2"}.fi-tablet-landscape:before{content:"\f1f3"}.fi-tablet-portrait:before{content:"\f1f4"}.fi-target-two:before{content:"\f1f5"}.fi-target:before{content:"\f1f6"}.fi-telephone-accessible:before{content:"\f1f7"}.fi-telephone:before{content:"\f1f8"}.fi-text-color:before{content:"\f1f9"}.fi-thumbnails:before{content:"\f1fa"}.fi-ticket:before{content:"\f1fb"}.fi-torso-business:before{content:"\f1fc"}.fi-torso-female:before{content:"\f1fd"}.fi-torso:before{content:"\f1fe"}.fi-torsos-all-female:before{content:"\f1ff"}.fi-torsos-all:before{content:"\f200"}.fi-torsos-female-male:before{content:"\f201"}.fi-torsos-male-female:before{content:"\f202"}.fi-torsos:before{content:"\f203"}.fi-trash:before{content:"\f204"}.fi-trees:before{content:"\f205"}.fi-trophy:before{content:"\f206"}.fi-underline:before{content:"\f207"}.fi-universal-access:before{content:"\f208"}.fi-unlink:before{content:"\f209"}.fi-unlock:before{content:"\f20a"}.fi-upload-cloud:before{content:"\f20b"}.fi-upload:before{content:"\f20c"}.fi-usb:before{content:"\f20d"}.fi-video:before{content:"\f20e"}.fi-volume-none:before{content:"\f20f"}.fi-volume-strike:before{content:"\f210"}.fi-volume:before{content:"\f211"}.fi-web:before{content:"\f212"}.fi-wheelchair:before{content:"\f213"}.fi-widget:before{content:"\f214"}.fi-wrench:before{content:"\f215"}.fi-x-circle:before{content:"\f216"}.fi-x:before{content:"\f217"}.fi-yen:before{content:"\f218"}.fi-zoom-in:before{content:"\f219"}.fi-zoom-out:before{content:"\f21a"}/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;vertical-align:baseline}.iconic,img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}img{border:0;max-width:100%;height:auto;-ms-interpolation-mode:bicubic;display:inline-block}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}body,p{font-weight:400}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}table{border-collapse:collapse;border-spacing:0}meta.foundation-version{font-family:"1.1.0"}meta.foundation-mq{font-family:"small=0&medium=40rem&large=75rem&xlarge=90rem&xxlarge=120rem"}body,html{height:100%;font-size:100%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#fff;color:#222;padding:0;margin:0;font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-style:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[ui-sref],[zf-close],[zf-open],[zf-toggle],a{cursor:pointer}#map_canvas embed,#map_canvas img,#map_canvas object,.map_canvas embed,.map_canvas img,.map_canvas object{max-width:none!important}.padding{padding:1rem}.iconic{width:1rem;height:1rem}a>.iconic{margin-top:-2px;margin-right:.25rem}.iconic *,.iconic .iconic-property-accent,.iconic-color-primary *,.iconic-color-primary .iconic-property-accent,a>.iconic *,a>.iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.iconic-color-success *,.iconic-color-success .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.iconic-color-warning *,.iconic-color-warning .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.iconic-color-alert *,.iconic-color-alert .iconic-property-accent{fill:#F04124;stroke:#F04124}.iconic-color-dark *,.iconic-color-dark .iconic-property-accent{fill:#232323;stroke:#232323}.iconic-color-secondary *,.iconic-color-secondary .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.action-sheet-container{position:relative;display:inline-block}.action-sheet-container .button{margin-left:0;margin-right:0}.action-sheet{position:fixed;left:0;z-index:1000;width:100%;padding:1rem;background:#fff;text-align:center;transition-property:transform opacity;transition-duration:.25s;transition-timing-function:ease-out;box-shadow:0 -3px 10px rgba(0,0,0,.25);bottom:0;transform:translateY(100%)}.action-sheet.is-active{transform:translateY(0)}.action-sheet ul{margin:0 -1rem -1rem;user-select:none}.action-sheet ul:first-child{margin-top:-1rem}.action-sheet ul:first-child li:first-child{border-top:0}.action-sheet ul a{display:block;padding:.8rem;line-height:1;color:#000;border-top:1px solid #ccc}.action-sheet ul a:hover{color:#000;background:#f2f2f2}.action-sheet ul .alert>a{color:#F04124}.action-sheet ul .disabled>a{pointer-events:none;color:#999}@media only screen and (min-width:40em){.action-sheet,.action-sheet.top{border-radius:4px;box-shadow:0 0 10px rgba(0,0,0,.25)}.action-sheet.top::after,.action-sheet.top::before,.action-sheet::after,.action-sheet::before{content:'';position:absolute;left:50%;display:block;height:0;border-left:10px solid transparent;border-right:10px solid transparent;margin-left:-10px}.action-sheet{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:auto;bottom:0;transform:translateX(-50%) translateY(110%)}.action-sheet.is-active{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(100%)}.action-sheet::after,.action-sheet::before{width:0;top:-10px;bottom:auto;border-top:0;border-bottom:10px solid #fff}.action-sheet::before{top:-12px;border-bottom-color:rgba(0,0,0,.15)}.action-sheet.top{position:absolute;left:50%;width:300px;opacity:0;pointer-events:none;top:0;bottom:auto;transform:translateX(-50%) translateY(-120%)}.action-sheet.top.is-active{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(-110%)}.action-sheet.top::after,.action-sheet.top::before{width:0;top:auto;bottom:-10px;border-top:10px solid #fff;border-bottom:0}.action-sheet.top::before{bottom:-12px;border-top-color:rgba(0,0,0,.15)}}.card,.card.primary{box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.action-sheet.primary{background:#00558b;color:#fff;border:0}.action-sheet.primary::before{display:none}.action-sheet.primary::after,.action-sheet.primary::before{border-top-color:#00558b}.action-sheet.primary.top::after,.action-sheet.primary.top::before{border-bottom-color:#00558b}.action-sheet.primary ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.primary ul:first-child{margin-top:-1rem}.action-sheet.primary ul:first-child li:first-child{border-top:0}.action-sheet.primary ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #006cb0}.action-sheet.primary ul a:hover{color:#fff;background:#00609e}.action-sheet.primary ul .alert>a{color:#F04124}.action-sheet.primary ul .disabled>a{pointer-events:none;color:#999}.action-sheet.dark{background:#232323;color:#fff;border:0}.action-sheet.dark::before{display:none}.action-sheet.dark::after,.action-sheet.dark::before{border-top-color:#232323}.action-sheet.dark.top::after,.action-sheet.dark.top::before{border-bottom-color:#232323}.action-sheet.dark ul{margin:0 -1rem -1rem;user-select:none}.action-sheet.dark ul:first-child{margin-top:-1rem}.action-sheet.dark ul:first-child li:first-child{border-top:0}.action-sheet.dark ul a{display:block;padding:.8rem;line-height:1;color:#fff;border-top:1px solid #393939}.action-sheet.dark ul a:hover{color:#fff;background:#2e2e2e}.action-sheet.dark ul .alert>a{color:#F04124}.action-sheet.dark ul .disabled>a{pointer-events:none;color:#999}.block-list ul{margin-left:0}.block-list{margin-bottom:1rem;line-height:1;user-select:none;font-size:1rem;margin-left:-1rem;margin-right:-1rem}.block-list input[type=number],.block-list input[type=search],.block-list input[type=text],.block-list input[type=password],.block-list input[type=date],.block-list input[type=datetime],.block-list input[type=datetime-local],.block-list input[type=month],.block-list input[type=week],.block-list input[type=email],.block-list input[type=tel],.block-list input[type=time],.block-list input[type=url],.block-list input[type=color],.block-list textarea{margin:0;border:0;line-height:1;height:auto;padding:.8rem 1rem;color:inherit}.block-list input[type=number]:focus,.block-list input[type=number]:hover,.block-list input[type=search]:focus,.block-list input[type=search]:hover,.block-list input[type=text]:focus,.block-list input[type=text]:hover,.block-list input[type=password]:focus,.block-list input[type=password]:hover,.block-list input[type=date]:focus,.block-list input[type=date]:hover,.block-list input[type=datetime]:focus,.block-list input[type=datetime]:hover,.block-list input[type=datetime-local]:focus,.block-list input[type=datetime-local]:hover,.block-list input[type=month]:focus,.block-list input[type=month]:hover,.block-list input[type=week]:focus,.block-list input[type=week]:hover,.block-list input[type=email]:focus,.block-list input[type=email]:hover,.block-list input[type=tel]:focus,.block-list input[type=tel]:hover,.block-list input[type=time]:focus,.block-list input[type=time]:hover,.block-list input[type=url]:focus,.block-list input[type=url]:hover,.block-list input[type=color]:focus,.block-list input[type=color]:hover,.block-list textarea:focus,.block-list textarea:hover{border:0}.block-list li>input[type=checkbox],.block-list li>input[type=radio]{position:absolute;left:-9999px}.block-list li>input[type=checkbox]+label,.block-list li>input[type=radio]+label{display:block;font-size:1rem;margin:0}.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="32" viewBox="0 0 32 32"><path fill="black" d="M16 0c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm6.906 8.875l2.219 2.031-12.063 13.281-6.188-6.188 2.125-2.125 3.938 3.938 9.969-10.938z"/></svg>');content:'';background-size:100% 100%;width:1.5em;height:1.5em;color:#00558b;float:right;pointer-events:none;margin-top:-.25em}@media screen and (min-width:0\0){.block-list li>input[type=checkbox]:checked+label::before,.block-list li>input[type=radio]:checked+label::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNrMl0FugzAQRY3TRZeoFyhVL0BOkGTXJezaHZwguUnECaCrdFd6gqQnCN11Uyk5QekNOlONJWMVGMCgfGlkEIY3HnsG2xFM3d96PjQB2AJsWdPtAPYOln+dTwXnuw4DHEGzBvNFN6EDCTiS9XIAwB40acNoucKoxODIie0AwAOCu8KOSnIiNx/MakK+A7sW9oTferxx3fP3T1nURoBG/irGVahHwjHm/Ggx7E3TMVdrQmoP0gngghhpZQ3QvG/EdPLUelARWI8Aycjq9Md0qMIdbcNhjmOKLoY7quk3l1Rebeqg4AwFkmq7LWGOh1pmNY0etZAWSq0OX8HoS4JvWuCopbSY26EGR/CW86K0BF+pwkLwlPuyHJhOCl5oe4ZtF++vOqST+GdOYwO+71pN2VNAjmQGPCe42weuHDg0PI8olUwnYrXTGQJH9gxq8l1LKvrQx4O6/YY32Kp/ugb3ey7gZ4xAzuhYiYTxB/UHZFAuaREVXZ2g6yFlvEC2yoKEmbsRZYNgVLk2JeaOaG+xLHN+WCszDWMqLGOrJFa1DlApjSdwoHJGqGzLIb0+cas0wh5Bh780ngswx8GJD7h8sHg2wLA/mfDLPZpdxOF0quP5rwADAAFIzSRvu1m5AAAAAElFTkSuQmCC)}}.block-list .with-dropdown{color:inherit}.block-list .with-dropdown select{outline:0;background:0;border:0;height:auto;padding:.8rem 1rem;margin:0;font-size:1em;line-height:1;color:inherit}.block-list .switch{position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.block-list.with-icons li>a,.block-list.with-icons li>label,.block-list.with-icons li>span{padding-left:2.8rem}.block-list.with-icons li .iconic,.block-list.with-icons li img{position:absolute;top:.26rem;left:.26rem;width:2.08rem;height:2.08rem;border-radius:8px;pointer-events:none}.block-list header{margin-top:1em;color:#666;margin-bottom:.5em;margin-left:1rem;font-size:.8em;cursor:default;text-transform:uppercase}.block-list li{position:relative;border-bottom:1px solid #d0d0d0}.block-list li:first-child{border-top:1px solid #d0d0d0}.block-list li>a,.block-list li>label,.block-list li>span{display:block;padding:.8rem 1rem;color:#000;line-height:1}.block-list li>a,.block-list li>label{cursor:pointer}.block-list li>a:hover,.block-list li>label:hover{color:#000}.block-list li select:hover,.block-list li>a:hover,.block-list li>label:hover{background:#f4f4f4}.block-list li.caution>a,.block-list li.caution>a:hover{color:#F04124}.block-list li.disabled>a{cursor:default}.block-list li.disabled>a,.block-list li.disabled>a:hover{color:#999}.block-list li.disabled>a:hover{background:0 0}.block-list li.with-chevron::after{content:'\203A';display:block;position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-weight:700;color:#666;font-size:2em}.block-list li.with-chevron .block-list-label{padding-right:1.5rem}.block-list li .block-list-label{display:inline-block;float:right;padding:0;color:#999;pointer-events:none}.block-list li .block-list-label.left{margin-left:.8rem;float:none}.button,.button-group>li>a,.button-group>li>button,.button-group>li>label{border:0;text-align:center;line-height:1;cursor:pointer;-webkit-appearance:none;-webkit-font-smoothing:antialiased;transition:background .25s ease-out;vertical-align:middle;padding:.85em 1em;border-radius:0}.button-group li.disabled>a,.button-group li.disabled>button,.button-group li.disabled>label,.button.disabled{opacity:.5;cursor:default;pointer-events:none}.button{font-size:.9rem;display:inline-block;width:auto;margin:0 1rem 1rem 0;background:#00558b;color:#fff}.button .iconic,.button.large .iconic,.button.small .iconic,.button.tiny .iconic{width:1em;margin-right:.25em;margin-top:-2px;height:1em;vertical-align:middle}.button:focus,.button:hover{background:#004876;color:#fff}.button .iconic *,.button .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.tiny{font-size:.63rem}.button.small{font-size:.72rem}.button.large{font-size:1.17rem}.button.expand{display:block;width:100%;margin-left:0;margin-right:0}.button.secondary{background:#f1f1f1;color:#000}.button.secondary:focus,.button.secondary:hover{background:#cdcdcd;color:#000}.button.secondary .iconic *,.button.secondary .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.alert .iconic *,.button.alert .iconic .iconic-property-accent,.button.success .iconic *,.button.success .iconic .iconic-property-accent,.button.warning .iconic *,.button.warning .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.success{background:#43AC6A;color:#fff}.button.success:focus,.button.success:hover{background:#39925a;color:#fff}.button.warning{background:#F08A24;color:#fff}.button.warning:focus,.button.warning:hover{background:#dc750f;color:#fff}.button.alert{background:#F04124;color:#fff}.button.alert:focus,.button.alert:hover{background:#dc2c0f;color:#fff}.button.info{background:#A0D3E8;color:#000}.button.info:focus,.button.info:hover{background:#71bddd;color:#000}.button.info .iconic *,.button.info .iconic .iconic-property-accent{fill:#000;stroke:#000}.button.dark{background:#232323;color:#fff}.button.dark:focus,.button.dark:hover{background:#1e1e1e;color:#fff}.button.dark .iconic *,.button.dark .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button.hollow{border:1px solid #00558b;background:0 0;color:#00558b}.button.hollow:focus,.button.hollow:hover{border-color:#008ee8;background:0 0;color:#008ee8}.button.hollow .iconic *,.button.hollow .iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.button.hollow:hover .iconic *,.button.hollow:hover .iconic .iconic-property-accent{fill:#008ee8;stroke:#008ee8}.button.hollow.secondary{border:1px solid #f1f1f1;background:0 0;color:#f1f1f1}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#f5f5f5;background:0 0;color:#f5f5f5}.button.hollow.secondary .iconic *,.button.hollow.secondary .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button.hollow.secondary:hover .iconic *,.button.hollow.secondary:hover .iconic .iconic-property-accent{fill:#f5f5f5;stroke:#f5f5f5}.button.hollow.success{border:1px solid #43AC6A;background:0 0;color:#43AC6A}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#6dc68e;background:0 0;color:#6dc68e}.button.hollow.success .iconic *,.button.hollow.success .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button.hollow.success:hover .iconic *,.button.hollow.success:hover .iconic .iconic-property-accent{fill:#6dc68e;stroke:#6dc68e}.button.hollow.warning{border:1px solid #F08A24;background:0 0;color:#F08A24}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#f4a75b;background:0 0;color:#f4a75b}.button.hollow.warning .iconic *,.button.hollow.warning .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button.hollow.warning:hover .iconic *,.button.hollow.warning:hover .iconic .iconic-property-accent{fill:#f4a75b;stroke:#f4a75b}.button.hollow.alert{border:1px solid #F04124;background:0 0;color:#F04124}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#f4715b;background:0 0;color:#f4715b}.button.hollow.alert .iconic *,.button.hollow.alert .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button.hollow.alert:hover .iconic *,.button.hollow.alert:hover .iconic .iconic-property-accent{fill:#f4715b;stroke:#f4715b}.button.hollow.info{border:1px solid #A0D3E8;background:0 0;color:#A0D3E8}.button.hollow.info:focus,.button.hollow.info:hover{border-color:#b8deee;background:0 0;color:#b8deee}.button.hollow.info .iconic *,.button.hollow.info .iconic .iconic-property-accent{fill:#A0D3E8;stroke:#A0D3E8}.button.hollow.info:hover .iconic *,.button.hollow.info:hover .iconic .iconic-property-accent{fill:#b8deee;stroke:#b8deee}.button.hollow.dark{border:1px solid #232323;background:0 0;color:#232323}.button.hollow.dark:focus,.button.hollow.dark:hover{border-color:#5a5a5a;background:0 0;color:#5a5a5a}.button.hollow.dark .iconic *,.button.hollow.dark .iconic .iconic-property-accent{fill:#232323;stroke:#232323}.button.hollow.dark:hover .iconic *,.button.hollow.dark:hover .iconic .iconic-property-accent{fill:#5a5a5a;stroke:#5a5a5a}.button-group{margin:0 0 1rem;overflow:hidden;font-size:.9rem}.button-group>li>a,.button-group>li>button,.button-group>li>label{border-radius:0;font-size:inherit;display:block;margin:0}.button-group>li>input+label{margin-left:0}.button-group>li:not(:last-child)>a,.button-group>li:not(:last-child)>button,.button-group>li:not(:last-child)>label{border-right:1px solid #004068}.button-group .iconic{width:1em;height:1em;vertical-align:middle;margin-right:.25em;margin-top:-2px}.button-group.segmented,.button-group.segmented.alert,.button-group.segmented.secondary,.button-group.segmented.success,.button-group.segmented.warning{border:1px solid #00558b;transition-property:background color}.slideInDown.ng-enter,.slideInDown.ng-hide-remove,.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove,.slideInRight.ng-enter,.slideInRight.ng-hide-remove,.slideInUp.ng-enter,.slideInUp.ng-hide-remove,.slideOutBottom.ng-hide-add,.slideOutBottom.ng-leave,.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave,.slideOutRight.ng-hide-add,.slideOutRight.ng-leave,.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity}.button-group.segmented>li>input[type=radio]{position:absolute;left:-9999px}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label,.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label,.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label,.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label,.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{margin-right:0;background:0 0}.button-group{display:inline-flex;border-radius:0}.button-group>li{flex:0 0 auto}.button-group>li>a,.button-group>li>button,.button-group>li>label{background:#00558b;color:#fff;border-color:#004876}.button-group>li>a:focus,.button-group>li>a:hover,.button-group>li>button:focus,.button-group>li>button:hover,.button-group>li>label:focus,.button-group>li>label:hover{background:#004876;color:#fff}.button-group>li>a .iconic *,.button-group>li>a .iconic .iconic-property-accent,.button-group>li>button .iconic *,.button-group>li>button .iconic .iconic-property-accent,.button-group>li>label .iconic *,.button-group>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.is-active>a,.button-group>li.is-active>button,.button-group>li.is-active>label{background:#004876}.button-group.secondary>li>a,.button-group.secondary>li>button,.button-group.secondary>li>label{background:#f1f1f1;color:#000;border-color:#cdcdcd}.button-group.secondary>li>a:focus,.button-group.secondary>li>a:hover,.button-group.secondary>li>button:focus,.button-group.secondary>li>button:hover,.button-group.secondary>li>label:focus,.button-group.secondary>li>label:hover{background:#cdcdcd;color:#000}.button-group.secondary>li>a .iconic *,.button-group.secondary>li>a .iconic .iconic-property-accent,.button-group.secondary>li>button .iconic *,.button-group.secondary>li>button .iconic .iconic-property-accent,.button-group.secondary>li>label .iconic *,.button-group.secondary>li>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.alert>li>a .iconic *,.button-group.alert>li>a .iconic .iconic-property-accent,.button-group.alert>li>button .iconic *,.button-group.alert>li>button .iconic .iconic-property-accent,.button-group.alert>li>label .iconic *,.button-group.alert>li>label .iconic .iconic-property-accent,.button-group.success>li>a .iconic *,.button-group.success>li>a .iconic .iconic-property-accent,.button-group.success>li>button .iconic *,.button-group.success>li>button .iconic .iconic-property-accent,.button-group.success>li>label .iconic *,.button-group.success>li>label .iconic .iconic-property-accent,.button-group.warning>li>a .iconic *,.button-group.warning>li>a .iconic .iconic-property-accent,.button-group.warning>li>button .iconic *,.button-group.warning>li>button .iconic .iconic-property-accent,.button-group.warning>li>label .iconic *,.button-group.warning>li>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.secondary>li.is-active>a,.button-group.secondary>li.is-active>button,.button-group.secondary>li.is-active>label{background:#cdcdcd}.button-group.success>li>a,.button-group.success>li>button,.button-group.success>li>label{background:#43AC6A;color:#fff;border-color:#39925a}.button-group.success>li>a:focus,.button-group.success>li>a:hover,.button-group.success>li>button:focus,.button-group.success>li>button:hover,.button-group.success>li>label:focus,.button-group.success>li>label:hover{background:#39925a;color:#fff}.button-group.success>li.is-active>a,.button-group.success>li.is-active>button,.button-group.success>li.is-active>label{background:#39925a}.button-group.warning>li>a,.button-group.warning>li>button,.button-group.warning>li>label{background:#F08A24;color:#fff;border-color:#dc750f}.button-group.warning>li>a:focus,.button-group.warning>li>a:hover,.button-group.warning>li>button:focus,.button-group.warning>li>button:hover,.button-group.warning>li>label:focus,.button-group.warning>li>label:hover{background:#dc750f;color:#fff}.button-group.warning>li.is-active>a,.button-group.warning>li.is-active>button,.button-group.warning>li.is-active>label{background:#dc750f}.button-group.alert>li>a,.button-group.alert>li>button,.button-group.alert>li>label{background:#F04124;color:#fff;border-color:#dc2c0f}.button-group.alert>li>a:focus,.button-group.alert>li>a:hover,.button-group.alert>li>button:focus,.button-group.alert>li>button:hover,.button-group.alert>li>label:focus,.button-group.alert>li>label:hover{background:#dc2c0f;color:#fff}.button-group.alert>li.is-active>a,.button-group.alert>li.is-active>button,.button-group.alert>li.is-active>label{background:#dc2c0f}.button-group>li.secondary>a,.button-group>li.secondary>button,.button-group>li.secondary>label{background:#f1f1f1;color:#000;border-color:#f1f1f1}.button-group>li.secondary>a:focus,.button-group>li.secondary>a:hover,.button-group>li.secondary>button:focus,.button-group>li.secondary>button:hover,.button-group>li.secondary>label:focus,.button-group>li.secondary>label:hover{background:#cdcdcd;color:#000;border-color:#b5b5b5}.button-group>li.secondary>a .iconic *,.button-group>li.secondary>a .iconic .iconic-property-accent,.button-group>li.secondary>button .iconic *,.button-group>li.secondary>button .iconic .iconic-property-accent,.button-group>li.secondary>label .iconic *,.button-group>li.secondary>label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group>li.alert>a .iconic *,.button-group>li.alert>a .iconic .iconic-property-accent,.button-group>li.alert>button .iconic *,.button-group>li.alert>button .iconic .iconic-property-accent,.button-group>li.alert>label .iconic *,.button-group>li.alert>label .iconic .iconic-property-accent,.button-group>li.success>a .iconic *,.button-group>li.success>a .iconic .iconic-property-accent,.button-group>li.success>button .iconic *,.button-group>li.success>button .iconic .iconic-property-accent,.button-group>li.success>label .iconic *,.button-group>li.success>label .iconic .iconic-property-accent,.button-group>li.warning>a .iconic *,.button-group>li.warning>a .iconic .iconic-property-accent,.button-group>li.warning>button .iconic *,.button-group>li.warning>button .iconic .iconic-property-accent,.button-group>li.warning>label .iconic *,.button-group>li.warning>label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group>li.success>a,.button-group>li.success>button,.button-group>li.success>label{background:#43AC6A;color:#fff;border-color:#43AC6A}.button-group>li.success>a:focus,.button-group>li.success>a:hover,.button-group>li.success>button:focus,.button-group>li.success>button:hover,.button-group>li.success>label:focus,.button-group>li.success>label:hover{background:#39925a;color:#fff;border-color:#328150}.button-group>li.warning>a,.button-group>li.warning>button,.button-group>li.warning>label{background:#F08A24;color:#fff;border-color:#F08A24}.button-group>li.warning>a:focus,.button-group>li.warning>a:hover,.button-group>li.warning>button:focus,.button-group>li.warning>button:hover,.button-group>li.warning>label:focus,.button-group>li.warning>label:hover{background:#dc750f;color:#fff;border-color:#c2680d}.button-group>li.alert>a,.button-group>li.alert>button,.button-group>li.alert>label{background:#F04124;color:#fff;border-color:#F04124}.button-group>li.alert>a:focus,.button-group>li.alert>a:hover,.button-group>li.alert>button:focus,.button-group>li.alert>button:hover,.button-group>li.alert>label:focus,.button-group>li.alert>label:hover{background:#dc2c0f;color:#fff;border-color:#c2270d}.button-group.segmented{border-color:#00558b}.button-group.segmented>li>a,.button-group.segmented>li>button,.button-group.segmented>li>label{border-color:#00558b;color:#00558b}.button-group.segmented>li>a:hover,.button-group.segmented>li>button:hover,.button-group.segmented>li>label:hover{background:rgba(0,85,139,.25);color:#00558b}.button-group.segmented>li>a .iconic *,.button-group.segmented>li>a .iconic .iconic-property-accent,.button-group.segmented>li>button .iconic *,.button-group.segmented>li>button .iconic .iconic-property-accent,.button-group.segmented>li>label .iconic *,.button-group.segmented>li>label .iconic .iconic-property-accent{fill:#00558b;stroke:#00558b}.button-group.segmented>li.is-active>a,.button-group.segmented>li.is-active>a:hover,.button-group.segmented>li>input:checked+label,.button-group.segmented>li>input:checked+label:hover{background:#00558b;color:#fff}.button-group.segmented>li.is-active>a .iconic *,.button-group.segmented>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented>li>input:checked+label .iconic *,.button-group.segmented>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.secondary{border-color:#f1f1f1}.button-group.segmented.secondary>li>a,.button-group.segmented.secondary>li>button,.button-group.segmented.secondary>li>label{border-color:#f1f1f1;color:#f1f1f1}.button-group.segmented.secondary>li>a:hover,.button-group.segmented.secondary>li>button:hover,.button-group.segmented.secondary>li>label:hover{background:rgba(241,241,241,.25);color:#f1f1f1}.button-group.segmented.secondary>li>a .iconic *,.button-group.segmented.secondary>li>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>button .iconic *,.button-group.segmented.secondary>li>button .iconic .iconic-property-accent,.button-group.segmented.secondary>li>label .iconic *,.button-group.segmented.secondary>li>label .iconic .iconic-property-accent{fill:#f1f1f1;stroke:#f1f1f1}.button-group.segmented.secondary>li.is-active>a,.button-group.segmented.secondary>li.is-active>a:hover,.button-group.segmented.secondary>li>input:checked+label,.button-group.segmented.secondary>li>input:checked+label:hover{background:#f1f1f1;color:#000}.button-group.segmented.secondary>li.is-active>a .iconic *,.button-group.segmented.secondary>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.secondary>li>input:checked+label .iconic *,.button-group.segmented.secondary>li>input:checked+label .iconic .iconic-property-accent{fill:#000;stroke:#000}.button-group.segmented.success{border-color:#43AC6A}.button-group.segmented.success>li>a,.button-group.segmented.success>li>button,.button-group.segmented.success>li>label{border-color:#43AC6A;color:#43AC6A}.button-group.segmented.success>li>a:hover,.button-group.segmented.success>li>button:hover,.button-group.segmented.success>li>label:hover{background:rgba(67,172,106,.25);color:#43AC6A}.button-group.segmented.success>li>a .iconic *,.button-group.segmented.success>li>a .iconic .iconic-property-accent,.button-group.segmented.success>li>button .iconic *,.button-group.segmented.success>li>button .iconic .iconic-property-accent,.button-group.segmented.success>li>label .iconic *,.button-group.segmented.success>li>label .iconic .iconic-property-accent{fill:#43AC6A;stroke:#43AC6A}.button-group.segmented.success>li.is-active>a,.button-group.segmented.success>li.is-active>a:hover,.button-group.segmented.success>li>input:checked+label,.button-group.segmented.success>li>input:checked+label:hover{background:#43AC6A;color:#fff}.button-group.segmented.success>li.is-active>a .iconic *,.button-group.segmented.success>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.success>li>input:checked+label .iconic *,.button-group.segmented.success>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.warning{border-color:#F08A24}.button-group.segmented.warning>li>a,.button-group.segmented.warning>li>button,.button-group.segmented.warning>li>label{border-color:#F08A24;color:#F08A24}.button-group.segmented.warning>li>a:hover,.button-group.segmented.warning>li>button:hover,.button-group.segmented.warning>li>label:hover{background:rgba(240,138,36,.25);color:#F08A24}.button-group.segmented.warning>li>a .iconic *,.button-group.segmented.warning>li>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>button .iconic *,.button-group.segmented.warning>li>button .iconic .iconic-property-accent,.button-group.segmented.warning>li>label .iconic *,.button-group.segmented.warning>li>label .iconic .iconic-property-accent{fill:#F08A24;stroke:#F08A24}.button-group.segmented.warning>li.is-active>a,.button-group.segmented.warning>li.is-active>a:hover,.button-group.segmented.warning>li>input:checked+label,.button-group.segmented.warning>li>input:checked+label:hover{background:#F08A24;color:#fff}.button-group.segmented.warning>li.is-active>a .iconic *,.button-group.segmented.warning>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.warning>li>input:checked+label .iconic *,.button-group.segmented.warning>li>input:checked+label .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.button-group.segmented.alert{border-color:#F04124}.button-group.segmented.alert>li>a,.button-group.segmented.alert>li>button,.button-group.segmented.alert>li>label{border-color:#F04124;color:#F04124}.button-group.segmented.alert>li>a:hover,.button-group.segmented.alert>li>button:hover,.button-group.segmented.alert>li>label:hover{background:rgba(240,65,36,.25);color:#F04124}.button-group.segmented.alert>li>a .iconic *,.button-group.segmented.alert>li>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>button .iconic *,.button-group.segmented.alert>li>button .iconic .iconic-property-accent,.button-group.segmented.alert>li>label .iconic *,.button-group.segmented.alert>li>label .iconic .iconic-property-accent{fill:#F04124;stroke:#F04124}.button-group.segmented.alert>li.is-active>a .iconic *,.button-group.segmented.alert>li.is-active>a .iconic .iconic-property-accent,.button-group.segmented.alert>li>input:checked+label .iconic *,.button-group.segmented.alert>li>input:checked+label .iconic .iconic-property-accent,.title-bar.dark .iconic *,.title-bar.dark .iconic .iconic-property-accent,.title-bar.primary .iconic *,.title-bar.primary .iconic .iconic-property-accent{stroke:#fff;fill:#fff}.button-group.segmented.alert>li.is-active>a,.button-group.segmented.alert>li.is-active>a:hover,.button-group.segmented.alert>li>input:checked+label,.button-group.segmented.alert>li>input:checked+label:hover{background:#F04124;color:#fff}.button-group.tiny{font-size:.63rem}.button-group.small{font-size:.72rem}.button-group.large{font-size:1.17rem}.button-group.expand{display:flex}.button-group.expand>li{flex:1}.button-group.expand>li>a,.button-group.expand>li>button,.button-group.expand>li>label{display:block;width:100%;margin-left:0;margin-right:0}.card{border:1px solid #ededed;margin-bottom:.5rem;background:#fff;color:#000;border-radius:4px}.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:inherit}.card ul{margin-bottom:0}.card img{width:100%}.card.primary{border:0;margin-bottom:.5rem;background:#00558b;color:#fff;border-radius:4px}.card.primary h1,.card.primary h2,.card.primary h3,.card.primary h4,.card.primary h5,.card.primary h6{color:inherit}.card.primary ul{margin-bottom:0}.card.primary img{width:100%}.card.primary .card-divider{background:#0065a5;padding:1rem}.card.success{border:0;margin-bottom:.5rem;background:#43AC6A;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.alert,.card.warning{border:0;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.success h1,.card.success h2,.card.success h3,.card.success h4,.card.success h5,.card.success h6{color:inherit}.card.success ul{margin-bottom:0}.card.success img{width:100%}.card.success .card-divider{background:#4ab873;padding:1rem}.card.warning{margin-bottom:.5rem;background:#F08A24;color:#fff;border-radius:4px}.card.warning h1,.card.warning h2,.card.warning h3,.card.warning h4,.card.warning h5,.card.warning h6{color:inherit}.card.warning ul{margin-bottom:0}.card.warning img{width:100%}.card.warning .card-divider{background:#f19233;padding:1rem}.card.alert{margin-bottom:.5rem;background:#F04124;color:#fff;border-radius:4px}.card.alert h1,.card.alert h2,.card.alert h3,.card.alert h4,.card.alert h5,.card.alert h6{color:inherit}.card.alert ul{margin-bottom:0}.card.alert img{width:100%}.card.alert .card-divider{background:#f14e33;padding:1rem}.card.dark{border:0;margin-bottom:.5rem;background:#232323;color:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);overflow:hidden}.card.dark h1,.card.dark h2,.card.dark h3,.card.dark h4,.card.dark h5,.card.dark h6{color:inherit}.card.dark ul{margin-bottom:0}.card.dark img{width:100%}.card.dark .card-divider{background:#323232;padding:1rem}.card-divider{background:#ededed;padding:1rem}.card-section{padding:1rem}.close-button{position:absolute;color:#999;top:1rem;right:1rem;font-size:2em;line-height:.5;cursor:pointer}.close-button:hover{color:#333}.thumbnail,ul.thumbnails>li img{padding:.5rem;box-shadow:0 3px 15px rgba(0,0,0,.25)}ul.thumbnails>li{margin-bottom:1rem}ul.thumbnails>li a{display:block}input[type=number],input[type=search],input[type=text],input[type=password],input[type=date],input[type=datetime],input[type=datetime-local],input[type=month],input[type=week],input[type=email],input[type=tel],input[type=time],input[type=url],input[type=color],textarea{-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;height:2.4rem;padding:.5rem;margin:0 0 1rem;border:1px solid #ccc;border-radius:0;background:#fff;color:#000;font-size:1rem;-webkit-font-smoothing:antialiased;vertical-align:middle}label>.inline-label,label>input,label>input[type=number],label>input[type=search],label>input[type=text],label>input[type=password],label>input[type=date],label>input[type=datetime],label>input[type=datetime-local],label>input[type=month],label>input[type=week],label>input[type=email],label>input[type=tel],label>input[type=time],label>input[type=url],label>input[type=color],label>textarea{margin-top:.5rem}input[type=number]:hover,input[type=search]:hover,input[type=text]:hover,input[type=password]:hover,input[type=date]:hover,input[type=datetime]:hover,input[type=datetime-local]:hover,input[type=month]:hover,input[type=week]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=time]:hover,input[type=url]:hover,input[type=color]:hover,textarea:hover{border:1px solid #bbb;background:#fff;color:#000}input[type=number]:focus,input[type=search]:focus,input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=month]:focus,input[type=week]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=color]:focus,textarea:focus{outline:0;border:1px solid #999;background:#fff;color:#000}fieldset[disabled] input,input.disabled,input[disabled],input[readonly]{cursor:not-allowed}fieldset[disabled] input,fieldset[disabled] input:hover,input.disabled,input.disabled:hover,input[disabled],input[disabled]:hover,input[readonly],input[readonly]:hover{background-color:#f2f2f2}label{display:block;font-size:.9rem;margin-bottom:.5rem;color:#333}input[type=checkbox],input[type=radio]{width:1rem;height:1rem}label>input[type=checkbox],label>input[type=radio]{margin-right:.25rem}input[type=checkbox]+label,input[type=radio]+label{display:inline-block;margin-left:.5rem;margin-right:1rem;margin-bottom:0;vertical-align:baseline}.inline-label{display:flex;flex-flow:row nowrap;align-items:stretch;margin-bottom:1rem}.inline-label>input,.inline-label>select{flex:1;margin:0}.inline-label>.form-label{flex:0 0 auto;background:#eee;color:#333;border:1px solid #ccc;padding:0 .5rem;display:flex;align-items:center}.inline-label>.form-label:first-child{border-right:0}.inline-label>.form-label:last-child{border-left:0}.inline-label>a,.inline-label>button,.inline-label>input[type=button],.inline-label>input[type=submit]{flex:0 0 auto;display:flex;align-items:center;padding-top:0;padding-bottom:0;margin:0;border-radius:0}textarea{height:auto;width:100%;min-height:50px}select{display:block;width:100%;height:2.4rem;padding:.5rem 1.625rem .5rem .5rem;margin:0 0 1rem;font-size:1rem;color:#000;border-radius:0;border:1px solid #ccc;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: black"></polygon></svg>') right 10px center no-repeat #fafafa;background-size:8px 8px}input[type=range],meter,progress{-webkit-appearance:none;-moz-appearance:none;display:block;border:0}select:hover{background-color:#f0f0f0}input[type=range]:focus,select:focus{outline:0}select::-ms-expand{display:none}input[type=range]{width:100%;height:auto;cursor:pointer;margin-top:.25rem;margin-bottom:.25rem;line-height:1}input[type=range]::-webkit-slider-runnable-track{height:1rem;background:#ddd}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#00558b;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-moz-range-track{-moz-appearance:none;height:1rem;background:#ccc}input[type=range]::-moz-range-thumb{-moz-appearance:none;background:#00558b;width:1.5rem;height:1.5rem;margin-top:-.25rem}input[type=range]::-ms-track{height:1rem;background:#ddd;color:transparent;border:0;overflow:visible;border-top:.25rem solid #fff;border-bottom:.25rem solid #fff}input[type=range]::-ms-thumb{background:#00558b;width:1.5rem;height:1.5rem;border:0}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd}output{line-height:1.5rem;vertical-align:middle;margin-left:.5em}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;background:#00558b}meter,progress{width:100%;height:1.5rem;margin-bottom:1rem;background:#ccc}progress::-webkit-progress-bar{background:#ccc}progress::-webkit-progress-value{background:#00558b}progress::-moz-progress-bar{background:#00558b}progress.high::-webkit-progress-value{background:#43AC6A}progress.high::-moz-progress-bar{background:#43AC6A}progress.medium::-webkit-progress-value{background:#e7cf00}progress.medium::-moz-progress-bar{background:#e7cf00}progress.low::-webkit-progress-value{background:#F04124}progress.low::-moz-progress-bar{background:#F04124}meter{background:#ccc}meter::-webkit-meter-bar{background:#ccc}meter::-webkit-meter-optimum-value{background:#43AC6A}meter::-webkit-meter-suboptimum-value{background:#e7cf00}meter::-webkit-meter-even-less-good-value{background:#F04124}meter::-moz-meter-bar{background:#00558b}meter:-moz-meter-optimum::-moz-meter-bar{background:#43AC6A}meter:-moz-meter-sub-optimum::-moz-meter-bar{background:#e7cf00}meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:#F04124}.panel{position:absolute;z-index:100;overflow-y:auto;display:none;padding:0;background:#fff}.is-active.panel{display:block}.panel-top{top:0;left:0;width:100%;height:300px}.panel-top.is-active{box-shadow:0 3px 10px rgba(0,0,0,.25)}.panel-right{top:0;right:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-right{width:300px}}.panel-right.is-active{box-shadow:-3px 0 10px rgba(0,0,0,.25)}.panel-bottom{bottom:0;left:0;width:100%;height:300px}.panel-bottom.is-active{box-shadow:2px -3px 10px rgba(0,0,0,.25)}.panel-left{top:0;left:0;height:100%;width:100%}@media only screen and (min-width:18.75em){.panel-left{width:300px}}.panel-left.is-active{box-shadow:3px 0 10px rgba(0,0,0,.25)}.small-grid-block.panel,.small-grid-content.panel{transform:none;width:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.panel-fixed{position:fixed}.small-vertical.grid-block,.small-vertical.grid-frame,.small-vertical.large-grid-block,.small-vertical.medium-grid-block,.small-vertical.small-grid-block,.vertical.grid-block,.vertical.grid-frame,.vertical.large-grid-block,.vertical.medium-grid-block,.vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.small-horizontal.grid-block,.small-horizontal.grid-frame,.small-horizontal.large-grid-block,.small-horizontal.medium-grid-block,.small-horizontal.small-grid-block{flex-flow:row wrap}@media only screen and (min-width:40em){.medium-vertical.grid-block,.medium-vertical.grid-frame,.medium-vertical.large-grid-block,.medium-vertical.medium-grid-block,.medium-vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.medium-horizontal.grid-block,.medium-horizontal.grid-frame,.medium-horizontal.large-grid-block,.medium-horizontal.medium-grid-block,.medium-horizontal.small-grid-block{flex-flow:row wrap}}@media only screen and (min-width:75em){.large-vertical.grid-block,.large-vertical.grid-frame,.large-vertical.large-grid-block,.large-vertical.medium-grid-block,.large-vertical.small-grid-block{flex-flow:column nowrap;align-items:stretch}.large-horizontal.grid-block,.large-horizontal.grid-frame,.large-horizontal.large-grid-block,.large-horizontal.medium-grid-block,.large-horizontal.small-grid-block{flex-flow:row wrap}}.align-right.grid-block,.align-right.grid-frame,.align-right.large-grid-block,.align-right.medium-grid-block,.align-right.small-grid-block{justify-content:flex-end}.align-center.grid-block,.align-center.grid-frame,.align-center.large-grid-block,.align-center.medium-grid-block,.align-center.small-grid-block{justify-content:center}.align-justify.grid-block,.align-justify.grid-frame,.align-justify.large-grid-block,.align-justify.medium-grid-block,.align-justify.small-grid-block{justify-content:space-between}.align-spaced.grid-block,.align-spaced.grid-frame,.align-spaced.large-grid-block,.align-spaced.medium-grid-block,.align-spaced.small-grid-block{justify-content:space-around}.wrap.grid-block,.wrap.grid-frame,.wrap.large-grid-block,.wrap.medium-grid-block,.wrap.small-grid-block{flex-wrap:wrap;align-items:flex-start}.shrink.grid-block,.shrink.grid-content,.shrink.large-grid-block,.shrink.large-grid-content,.shrink.medium-grid-block,.shrink.medium-grid-content,.shrink.small-grid-block,.shrink.small-grid-content{flex:0 0 auto}.grid-block,.grid-frame{display:flex;overflow:hidden;flex:1 1 auto;order:0;backface-visibility:hidden}.noscroll.grid-block,.noscroll.grid-content,.noscroll.large-grid-block,.noscroll.large-grid-content,.noscroll.medium-grid-block,.noscroll.medium-grid-content,.noscroll.small-grid-block,.noscroll.small-grid-content{overflow:hidden}.grid-frame{height:100vh;position:relative;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start}.grid-block,.small-grid-block,.small-grid-block.panel,.small-grid-content.panel{height:auto;position:relative}.grid-block{flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.grid-content.collapse{padding:0}.grid-content .grid-block{margin-left:-1rem;margin-right:-1rem;flex-wrap:wrap;overflow:visible}.grid-content .grid-block.nowrap{flex-wrap:nowrap;align-items:stretch}.grid-content .grid-block .grid-content{overflow:visible}.grid-container{max-width:56.25rem;margin:0 auto}.grid-container.contain-left{max-width:56.25rem;margin:0 auto 0 0}.grid-container.contain-right{max-width:56.25rem;margin:0 0 0 auto}.small-grid-block{display:flex;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.small-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}@media only screen and (min-width:40em){.medium-grid-block{display:flex;position:relative;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-grid-block.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.medium-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.medium-grid-content.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}@media only screen and (min-width:75em){.large-grid-block{display:flex;position:relative;overflow:hidden;backface-visibility:hidden;flex:1 1 auto;flex-flow:row wrap;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;order:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-grid-block.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}.large-grid-content{display:block;padding:0 1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;flex:1 1 auto}.large-grid-content.panel{transform:none;position:relative;width:auto;height:auto;z-index:auto;box-shadow:none;background:0 0;top:auto;right:auto;bottom:auto;left:auto}}.small-up-1,.small-up-10,.small-up-11,.small-up-12,.small-up-2,.small-up-3,.small-up-4,.small-up-5,.small-up-6,.small-up-8,.small-up-9,.title-bar,.title-bar .center,.title-bar .left,.title-bar .right{overflow:visible}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.small-1{flex:0 0 8.33333%;max-width:8.33333%}.small-order-1{order:1}.small-offset-1{margin-left:8.33333%}.small-up-1{flex-flow:row wrap}.small-up-1>div,.small-up-1>li,.small-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.small-2{flex:0 0 16.66667%;max-width:16.66667%}.small-order-2{order:2}.small-offset-2{margin-left:16.66667%}.small-up-2{flex-flow:row wrap}.small-up-2>div,.small-up-2>li,.small-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.small-3{flex:0 0 25%;max-width:25%}.small-order-3{order:3}.small-offset-3{margin-left:25%}.small-up-3{flex-flow:row wrap}.small-up-3>div,.small-up-3>li,.small-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.small-4{flex:0 0 33.33333%;max-width:33.33333%}.small-order-4{order:4}.small-offset-4{margin-left:33.33333%}.small-up-4{flex-flow:row wrap}.small-up-4>div,.small-up-4>li,.small-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.small-5{flex:0 0 41.66667%;max-width:41.66667%}.small-order-5{order:5}.small-offset-5{margin-left:41.66667%}.small-up-5{flex-flow:row wrap;list-style-type:none}.small-up-5>div,.small-up-5>li,.small-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.small-6{flex:0 0 50%;max-width:50%}.small-order-6{order:6}.small-offset-6{margin-left:50%}.small-up-6{flex-flow:row wrap}.small-up-6>div,.small-up-6>li,.small-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.small-7{flex:0 0 58.33333%;max-width:58.33333%}.small-order-7{order:7}.small-offset-7{margin-left:58.33333%}.small-up-7{flex-flow:row wrap;overflow:visible}.small-up-7>div,.small-up-7>li,.small-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.small-8{flex:0 0 66.66667%;max-width:66.66667%}.small-order-8{order:8}.small-offset-8{margin-left:66.66667%}.small-up-8{flex-flow:row wrap}.small-up-8>div,.small-up-8>li,.small-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.small-9{flex:0 0 75%;max-width:75%}.small-order-9{order:9}.small-offset-9{margin-left:75%}.small-up-9{flex-flow:row wrap}.small-up-9>div,.small-up-9>li,.small-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.small-10{flex:0 0 83.33333%;max-width:83.33333%}.small-order-10{order:10}.small-offset-10{margin-left:83.33333%}.small-up-10{flex-flow:row wrap}.small-up-10>div,.small-up-10>li,.small-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.small-11{flex:0 0 91.66667%;max-width:91.66667%}.small-order-11{order:11}.small-offset-11{margin-left:91.66667%}.small-up-11{flex-flow:row wrap}.small-up-11>div,.small-up-11>li,.small-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.small-12{flex:0 0 100%;max-width:100%}.small-order-12{order:12}.small-offset-12{margin-left:100%}.small-up-12{flex-flow:row wrap}.small-up-12>div,.small-up-12>li,.small-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}@media only screen and (min-width:40em){.medium-1{flex:0 0 8.33333%;max-width:8.33333%}.medium-order-1{order:1}.medium-offset-1{margin-left:8.33333%}.medium-up-1{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-1>div,.medium-up-1>li,.medium-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.medium-2{flex:0 0 16.66667%;max-width:16.66667%}.medium-order-2{order:2}.medium-offset-2{margin-left:16.66667%}.medium-up-2{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-2>div,.medium-up-2>li,.medium-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.medium-3{flex:0 0 25%;max-width:25%}.medium-order-3{order:3}.medium-offset-3{margin-left:25%}.medium-up-3{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-3>div,.medium-up-3>li,.medium-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.medium-4{flex:0 0 33.33333%;max-width:33.33333%}.medium-order-4{order:4}.medium-offset-4{margin-left:33.33333%}.medium-up-4{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-4>div,.medium-up-4>li,.medium-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.medium-5{flex:0 0 41.66667%;max-width:41.66667%}.medium-order-5{order:5}.medium-offset-5{margin-left:41.66667%}.medium-up-5{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-5>div,.medium-up-5>li,.medium-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.medium-6{flex:0 0 50%;max-width:50%}.medium-order-6{order:6}.medium-offset-6{margin-left:50%}.medium-up-6{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-6>div,.medium-up-6>li,.medium-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.medium-7{flex:0 0 58.33333%;max-width:58.33333%}.medium-order-7{order:7}.medium-offset-7{margin-left:58.33333%}.medium-up-7{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-7>div,.medium-up-7>li,.medium-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.medium-8{flex:0 0 66.66667%;max-width:66.66667%}.medium-order-8{order:8}.medium-offset-8{margin-left:66.66667%}.medium-up-8{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-8>div,.medium-up-8>li,.medium-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.medium-9{flex:0 0 75%;max-width:75%}.medium-order-9{order:9}.medium-offset-9{margin-left:75%}.medium-up-9{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-9>div,.medium-up-9>li,.medium-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.medium-10{flex:0 0 83.33333%;max-width:83.33333%}.medium-order-10{order:10}.medium-offset-10{margin-left:83.33333%}.medium-up-10{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-10>div,.medium-up-10>li,.medium-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.medium-11{flex:0 0 91.66667%;max-width:91.66667%}.medium-order-11{order:11}.medium-offset-11{margin-left:91.66667%}.medium-up-11{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-11>div,.medium-up-11>li,.medium-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.medium-12{flex:0 0 100%;max-width:100%}.medium-order-12{order:12}.medium-offset-12{margin-left:100%}.medium-up-12{flex-flow:row wrap;overflow:visible;list-style-type:none}.medium-up-12>div,.medium-up-12>li,.medium-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}}@media only screen and (min-width:75em){.large-1{flex:0 0 8.33333%;max-width:8.33333%}.large-order-1{order:1}.large-offset-1{margin-left:8.33333%}.large-up-1{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-1>div,.large-up-1>li,.large-up-1>section{padding:0 1rem 1rem;flex:0 0 100%}.large-2{flex:0 0 16.66667%;max-width:16.66667%}.large-order-2{order:2}.large-offset-2{margin-left:16.66667%}.large-up-2{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-2>div,.large-up-2>li,.large-up-2>section{padding:0 1rem 1rem;flex:0 0 50%}.large-3{flex:0 0 25%;max-width:25%}.large-order-3{order:3}.large-offset-3{margin-left:25%}.large-up-3{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-3>div,.large-up-3>li,.large-up-3>section{padding:0 1rem 1rem;flex:0 0 33.33333%}.large-4{flex:0 0 33.33333%;max-width:33.33333%}.large-order-4{order:4}.large-offset-4{margin-left:33.33333%}.large-up-4{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-4>div,.large-up-4>li,.large-up-4>section{padding:0 1rem 1rem;flex:0 0 25%}.large-5{flex:0 0 41.66667%;max-width:41.66667%}.large-order-5{order:5}.large-offset-5{margin-left:41.66667%}.large-up-5{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-5>div,.large-up-5>li,.large-up-5>section{padding:0 1rem 1rem;flex:0 0 20%}.large-6{flex:0 0 50%;max-width:50%}.large-order-6{order:6}.large-offset-6{margin-left:50%}.large-up-6{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-6>div,.large-up-6>li,.large-up-6>section{padding:0 1rem 1rem;flex:0 0 16.66667%}.large-7{flex:0 0 58.33333%;max-width:58.33333%}.large-order-7{order:7}.large-offset-7{margin-left:58.33333%}.large-up-7{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-7>div,.large-up-7>li,.large-up-7>section{padding:0 1rem 1rem;flex:0 0 14.28571%}.large-8{flex:0 0 66.66667%;max-width:66.66667%}.large-order-8{order:8}.large-offset-8{margin-left:66.66667%}.large-up-8{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-8>div,.large-up-8>li,.large-up-8>section{padding:0 1rem 1rem;flex:0 0 12.5%}.large-9{flex:0 0 75%;max-width:75%}.large-order-9{order:9}.large-offset-9{margin-left:75%}.large-up-9{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-9>div,.large-up-9>li,.large-up-9>section{padding:0 1rem 1rem;flex:0 0 11.11111%}.large-10{flex:0 0 83.33333%;max-width:83.33333%}.large-order-10{order:10}.large-offset-10{margin-left:83.33333%}.large-up-10{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-10>div,.large-up-10>li,.large-up-10>section{padding:0 1rem 1rem;flex:0 0 10%}.large-11{flex:0 0 91.66667%;max-width:91.66667%}.large-order-11{order:11}.large-offset-11{margin-left:91.66667%}.large-up-11{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-11>div,.large-up-11>li,.large-up-11>section{padding:0 1rem 1rem;flex:0 0 9.09091%}.large-12{flex:0 0 100%;max-width:100%}.large-order-12{order:12}.large-offset-12{margin-left:100%}.large-up-12{flex-flow:row wrap;overflow:visible;list-style-type:none}.large-up-12>div,.large-up-12>li,.large-up-12>section{padding:0 1rem 1rem;flex:0 0 8.33333%}}.title-bar,.title-bar.dark,.title-bar.primary{padding:1rem;border-bottom:1px solid #ccc}.grid-content .modal .grid-block{flex-wrap:nowrap}.title-bar{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-start;background:#eee;color:#000}.title-bar .center,.title-bar .left,.title-bar .right{display:block;white-space:nowrap}.title-bar .center:first-child:last-child,.title-bar .left:first-child:last-child,.title-bar .right:first-child:last-child{flex:1;margin:0}.title-bar .left{order:1;flex:0 0 25%}.title-bar .center{order:2;flex:0 0 50%;text-align:center}.title-bar .right{order:3;flex:0 0 25%;text-align:right}.title-bar .left:first-child,.title-bar .left:first-child+.right:last-child{flex:1 1 auto}.title-bar .center:first-child:not(:last-child){margin-left:25%}.title-bar .center+.left{margin-right:-25%}.title-bar.primary{background:#00558b;color:#fff}.title-bar.primary a,.title-bar.primary a:hover{color:#fff}.title-bar.dark{background:#232323;color:#fff}.label,.label.primary{background:#00558b;border-radius:0;color:#fff}.title-bar.dark a,.title-bar.dark a:hover{color:#fff}.title-bar-bottom{border-bottom:0;border-top:1px solid #ccc}.label{line-height:1;white-space:nowrap;display:inline-block;cursor:default;font-size:.8rem;padding:.33333rem .5rem}.label.success{background:#43AC6A;border-radius:0;color:#fff}.label.warning{background:#F08A24;border-radius:0;color:#fff}.label.alert{background:#F04124;border-radius:0;color:#fff}.label.dark{background:#232323;border-radius:0;color:#fff}.badge{align-items:center;justify-content:center;display:inline-flex;border-radius:1000px;font-size:.8em;width:1.5rem;height:1.5rem;background:#00558b;color:#fff}.badge.secondary{background:#f1f1f1;color:#000}.badge.primary{background:#00558b;color:#fff}.badge.success{background:#43AC6A;color:#fff}.badge.warning{background:#F08A24;color:#fff}.badge.alert{background:#F04124;color:#fff}.badge.dark{background:#232323;color:#fff}.inline-list{text-align:left}.inline-list dd,.inline-list dt,.inline-list li{display:inline-block;margin-left:-2px;margin-right:-2px}.inline-list li{margin-right:1rem;margin-left:0}.menu-bar{display:flex;align-items:stretch;margin:0;background:#fff}.menu-bar>li{flex:1 0 auto;align-items:center}.menu-bar>li>a{display:flex;align-items:center;padding:1rem;font-size:1rem;line-height:1;color:#000}.menu-bar.label-corner>li>a,.menu-bar.label-side>li>a{padding-right:3.2rem}.menu-bar .is-active>a,.menu-bar>li>a:hover{background:#ededed;color:#000}.menu-bar .iconic *,.menu-bar .iconic .iconic-property-accent{fill:#000;stroke:#000}.menu-bar,.menu-bar.horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.horizontal>li>a,.menu-bar.small-horizontal>li>a,.menu-bar.vertical,.menu-bar>li>a{flex-flow:column nowrap}.menu-bar.vertical{}.menu-bar.vertical>li>a{flex-flow:row nowrap}.menu-bar.condense>li{flex:0 0 auto}.menu-bar.align-right{justify-content:flex-end}.menu-bar.align-center{justify-content:center}.menu-bar.align-justify{justify-content:space-between}.menu-bar.align-spaced{justify-content:space-around}.menu-bar.small-condense li,.menu-group .menu-bar>li{flex:0 0 auto}.menu-bar.small-expand li{flex:1 0 auto}.menu-bar.small-align-left{justify-content:flex-start}.menu-bar.small-align-right{justify-content:flex-end}.menu-bar.small-align-center{justify-content:center}.menu-bar.small-align-justify{justify-content:space-between}.menu-bar.small-align-spaced{justify-content:space-around}@media only screen and (min-width:40em){.menu-bar.medium-condense li{flex:0 0 auto}.menu-bar.medium-expand li{flex:1 0 auto}.menu-bar.medium-align-left{justify-content:flex-start}.menu-bar.medium-align-right{justify-content:flex-end}.menu-bar.medium-align-center{justify-content:center}.menu-bar.medium-align-justify{justify-content:space-between}.menu-bar.medium-align-spaced{justify-content:space-around}}@media only screen and (min-width:75em){.menu-bar.large-condense li{flex:0 0 auto}.menu-bar.large-expand li{flex:1 0 auto}.menu-bar.large-align-left{justify-content:flex-start}.menu-bar.large-align-right{justify-content:flex-end}.menu-bar.large-align-center{justify-content:center}.menu-bar.large-align-justify{justify-content:space-between}.menu-bar.large-align-spaced{justify-content:space-around}}.menu-bar.small-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.small-vertical{flex-flow:column nowrap}.menu-bar.small-vertical>li>a{flex-flow:row nowrap}@media only screen and (min-width:40em){.menu-bar.medium-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.medium-horizontal>li>a{flex-flow:column nowrap}.menu-bar.medium-vertical{flex-flow:column nowrap}.menu-bar.medium-vertical>li>a{flex-flow:row nowrap}}@media only screen and (min-width:75em){.menu-bar.large-horizontal{overflow-x:hidden;flex-flow:row nowrap}.menu-bar.large-horizontal>li>a{flex-flow:column nowrap}.menu-bar.large-vertical{flex-flow:column nowrap}.menu-bar.large-vertical>li>a{flex-flow:row nowrap}}.menu-bar.icon-top>li>.iconic,.menu-bar.icon-top>li>img,.menu-bar>li>.iconic,.menu-bar>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-top>li>a,.menu-bar>li>a{flex-flow:column nowrap}.menu-bar.icon-top>li>a>.iconic,.menu-bar.icon-top>li>a>img,.menu-bar>li>a>.iconic,.menu-bar>li>a>img{margin:0 0 1rem}.menu-bar.icon-right>li>.iconic,.menu-bar.icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.icon-right>li>a>.iconic,.menu-bar.icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.icon-bottom>li>.iconic,.menu-bar.icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.icon-bottom>li>a>.iconic,.menu-bar.icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.icon-left>li>.iconic,.menu-bar.icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.icon-left>li>a>.iconic,.menu-bar.icon-left>li>a>img{margin:0 1rem 0 0}.menu-bar.small-icon-top>li>.iconic,.menu-bar.small-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-top>li>a{flex-flow:column nowrap}.menu-bar.small-icon-top>li>a>.iconic,.menu-bar.small-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.small-icon-right>li>.iconic,.menu-bar.small-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.small-icon-right>li>a>.iconic,.menu-bar.small-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.small-icon-bottom>li>.iconic,.menu-bar.small-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.small-icon-bottom>li>a>.iconic,.menu-bar.small-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.small-icon-left>li>.iconic,.menu-bar.small-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.small-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.small-icon-left>li>a>.iconic,.menu-bar.small-icon-left>li>a>img{margin:0 1rem 0 0}@media only screen and (min-width:40em){.menu-bar.medium-icon-top>li>.iconic,.menu-bar.medium-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-top>li>a{flex-flow:column nowrap}.menu-bar.medium-icon-top>li>a>.iconic,.menu-bar.medium-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.medium-icon-right>li>.iconic,.menu-bar.medium-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.medium-icon-right>li>a>.iconic,.menu-bar.medium-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.medium-icon-bottom>li>.iconic,.menu-bar.medium-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.medium-icon-bottom>li>a>.iconic,.menu-bar.medium-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.medium-icon-left>li>.iconic,.menu-bar.medium-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.medium-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.medium-icon-left>li>a>.iconic,.menu-bar.medium-icon-left>li>a>img{margin:0 1rem 0 0}}@media only screen and (min-width:75em){.menu-bar.large-icon-top>li>.iconic,.menu-bar.large-icon-top>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-top>li>a{flex-flow:column nowrap}.menu-bar.large-icon-top>li>a>.iconic,.menu-bar.large-icon-top>li>a>img{margin:0 0 1rem}.menu-bar.large-icon-right>li>.iconic,.menu-bar.large-icon-right>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-right>li>a{flex-flow:row-reverse nowrap}.menu-bar.large-icon-right>li>a>.iconic,.menu-bar.large-icon-right>li>a>img{margin:0 0 0 1rem}.menu-bar.large-icon-bottom>li>.iconic,.menu-bar.large-icon-bottom>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-bottom>li>a{flex-flow:column-reverse nowrap}.menu-bar.large-icon-bottom>li>a>.iconic,.menu-bar.large-icon-bottom>li>a>img{margin:1rem 0 0}.menu-bar.large-icon-left>li>.iconic,.menu-bar.large-icon-left>li>img{margin:0;width:25px;height:25px}.menu-bar.large-icon-left>li>a{flex-flow:row nowrap;align-items:center}.menu-bar.large-icon-left>li>a>.iconic,.menu-bar.large-icon-left>li>a>img{margin:0 1rem 0 0}}.menu-bar.label-corner .menu-bar-label,.menu-bar.label-side .menu-bar-label{display:block;font-size:.9rem;width:1.2rem;height:1.2rem;line-height:1.2rem;text-align:center;border-radius:1000px;background:red;right:1rem;color:#fff;pointer-events:none}.menu-group .menu-bar,.modal .grid-block,.modal .grid-content{margin:0}.menu-bar.label-side>li{position:relative}.menu-bar.label-side .menu-bar-label{position:absolute;top:50%;transform:translateY(-50%)}.menu-bar.label-corner>li{position:relative}.menu-bar.label-corner .menu-bar-label{position:absolute;top:1rem}.menu-bar.primary{background:#00558b}.menu-bar.primary>li>a{color:#fff}.menu-bar.primary .is-active>a,.menu-bar.primary>li>a:hover{background:#0065a5;color:#fff}.menu-bar.primary .iconic *,.menu-bar.primary .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-bar.dark{background:#232323}.menu-bar.dark>li>a{color:#fff}.menu-bar.dark .is-active>a,.menu-bar.dark>li>a:hover{background:#323232;color:#fff}.menu-bar.dark .iconic *,.menu-bar.dark .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-bar>li.title{padding:1rem;cursor:default}.switch>label,.tabs .tab-item,a[ui-sref]{cursor:pointer}.menu-group{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}@media only screen and (min-width:40em){.menu-group{flex-wrap:nowrap}}.menu-group>.menu-group-left,.menu-group>.menu-group-right{flex:1 1 100%}@media only screen and (min-width:40em){.menu-group>.menu-group-left,.menu-group>.menu-group-right{flex:0 0 auto}}.menu-group.primary{background-color:#00558b}.menu-group.primary .menu-bar{background:#00558b}.menu-group.primary .menu-bar>li>a{color:#fff}.menu-group.primary .menu-bar .is-active>a,.menu-group.primary .menu-bar>li>a:hover{background:#0065a5;color:#fff}.menu-group.primary .menu-bar .iconic *,.menu-group.primary .menu-bar .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.menu-group.dark{background-color:#232323}.menu-group.dark .menu-bar{background:#232323}.menu-group.dark .menu-bar>li>a{color:#fff}.menu-group.dark .menu-bar .is-active>a,.menu-group.dark .menu-bar>li>a:hover{background:#323232;color:#fff}.menu-group.dark .menu-bar .iconic *,.menu-group.dark .menu-bar .iconic .iconic-property-accent{fill:#fff;stroke:#fff}.modal{position:relative;z-index:1001;background:#fff;flex:0 0 auto;width:100%;height:100vh;max-height:100%;overflow:hidden;padding:1rem;max-width:600px;border-radius:0}@media only screen and (min-width:40em){.modal{height:auto;max-width:600px}}.modal .close-button,.modal [fa-close]{z-index:1001}.tiny>.modal{max-width:300px}.small>.modal{max-width:500px}.large>.modal{max-width:800px}.dialog>.modal{height:auto}.collapse>.modal{padding:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:none;background-color:rgba(51,51,51,.7);align-items:center;justify-content:center}.modal-overlay.is-active{display:flex}@keyframes shake{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{transform:translateX(-7%)}100%{transform:translateX(0)}}@keyframes spin-cw{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin-ccw{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}@keyframes wiggle{40%,50%,60%{transform:rotate(7deg)}35%,45%,55%,65%{transform:rotate(-7deg)}0%,100%,30%,70%{transform:rotate(0)}}.slideInDown.ng-enter,.slideInDown.ng-hide-remove{backface-visibility:hidden;transform:translateY(-100%)}.slideInDown.ng-enter.ng-enter-active,.slideInDown.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInLeft.ng-enter,.slideInLeft.ng-hide-remove{backface-visibility:hidden;transform:translateX(100%)}.slideInLeft.ng-enter.ng-enter-active,.slideInLeft.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInUp.ng-enter,.slideInUp.ng-hide-remove{backface-visibility:hidden;transform:translateY(100%)}.slideInUp.ng-enter.ng-enter-active,.slideInUp.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideInRight.ng-enter,.slideInRight.ng-hide-remove{backface-visibility:hidden;transform:translateX(-100%)}.slideInRight.ng-enter.ng-enter-active,.slideInRight.ng-hide-remove.ng-hide-remove-active{transform:translateX(0) translateY(0)}.slideOutBottom.ng-hide-add,.slideOutBottom.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutBottom.ng-hide-add.ng-hide-add-active,.slideOutBottom.ng-leave.ng-leave-active{transform:translateY(100%)}.slideOutRight.ng-hide-add,.slideOutRight.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutRight.ng-hide-add.ng-hide-add-active,.slideOutRight.ng-leave.ng-leave-active{transform:translateX(100%)}.slideOutUp.ng-hide-add,.slideOutUp.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.slideOutUp.ng-hide-add.ng-hide-add-active,.slideOutUp.ng-leave.ng-leave-active{transform:translateY(-100%)}.slideOutLeft.ng-hide-add,.slideOutLeft.ng-leave{backface-visibility:hidden;transform:translateX(0) translateY(0)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove,.fadeOut.ng-hide-add,.fadeOut.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:opacity}.slideOutLeft.ng-hide-add.ng-hide-add-active,.slideOutLeft.ng-leave.ng-leave-active{transform:translateX(-100%)}.fadeIn.ng-enter,.fadeIn.ng-hide-remove{opacity:0}.fadeIn.ng-enter.ng-enter-active,.fadeIn.ng-hide-remove.ng-hide-remove-active,.fadeOut.ng-hide-add,.fadeOut.ng-leave{opacity:1}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove,.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove,.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove,.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove,.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove,.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave,.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave,.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave,.hingeOutFromMiddleY.ng-hide-add,.hingeOutFromMiddleY.ng-leave,.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave,.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity}.fadeOut.ng-hide-add.ng-hide-add-active,.fadeOut.ng-leave.ng-leave-active{opacity:0}.hingeInFromTop.ng-enter,.hingeInFromTop.ng-hide-remove{transform:perspective(2000px) rotateX(-90deg);transform-origin:top;opacity:0}.hingeInFromTop.ng-enter.ng-enter-active,.hingeInFromTop.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromRight.ng-enter,.hingeInFromRight.ng-hide-remove{transform:perspective(2000px) rotateY(-90deg);transform-origin:right;opacity:0}.hingeInFromRight.ng-enter.ng-enter-active,.hingeInFromRight.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromBottom.ng-enter,.hingeInFromBottom.ng-hide-remove{transform:perspective(2000px) rotateX(90deg);transform-origin:bottom;opacity:0}.hingeInFromBottom.ng-enter.ng-enter-active,.hingeInFromBottom.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromLeft.ng-enter,.hingeInFromLeft.ng-hide-remove{transform:perspective(2000px) rotateY(90deg);transform-origin:left;opacity:0}.hingeInFromLeft.ng-enter.ng-enter-active,.hingeInFromLeft.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromMiddleX.ng-enter,.hingeInFromMiddleX.ng-hide-remove{transform:perspective(2000px) rotateX(-90deg);transform-origin:center;opacity:0}.hingeInFromMiddleX.ng-enter.ng-enter-active,.hingeInFromMiddleX.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeInFromMiddleY.ng-enter,.hingeInFromMiddleY.ng-hide-remove{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,opacity;transform:perspective(2000px) rotateY(-90deg);transform-origin:center;opacity:0}.hingeInFromMiddleY.ng-enter.ng-enter-active,.hingeInFromMiddleY.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.hingeOutFromTop.ng-hide-add,.hingeOutFromTop.ng-leave{transform:rotate(0);transform-origin:top;opacity:1}.hingeOutFromTop.ng-hide-add.ng-hide-add-active,.hingeOutFromTop.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromRight.ng-hide-add,.hingeOutFromRight.ng-leave{transform:rotate(0);transform-origin:right;opacity:1}.hingeOutFromRight.ng-hide-add.ng-hide-add-active,.hingeOutFromRight.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.hingeOutFromBottom.ng-hide-add,.hingeOutFromBottom.ng-leave{transform:rotate(0);transform-origin:bottom;opacity:1}.hingeOutFromBottom.ng-hide-add.ng-hide-add-active,.hingeOutFromBottom.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(90deg);opacity:0}.hingeOutFromLeft.ng-hide-add,.hingeOutFromLeft.ng-leave{transform:rotate(0);transform-origin:left;opacity:1}.hingeOutFromLeft.ng-hide-add.ng-hide-add-active,.hingeOutFromLeft.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(90deg);opacity:0}.hingeOutFromMiddleX.ng-hide-add,.hingeOutFromMiddleX.ng-leave{transform:rotate(0);transform-origin:center;opacity:1}.hingeOutFromMiddleX.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleX.ng-leave.ng-leave-active{transform:perspective(2000px) rotateX(-90deg);opacity:0}.hingeOutFromMiddleY.ng-hide-add,.hingeOutFromMiddleY.ng-leave{transform:rotate(0);transform-origin:center;opacity:1}.zoomIn.ng-enter,.zoomIn.ng-hide-remove,.zoomOut.ng-hide-add,.zoomOut.ng-leave{transition-duration:.5s;transition-timing-function:ease;transition-delay:0;transition-property:transform,property}.hingeOutFromMiddleY.ng-hide-add.ng-hide-add-active,.hingeOutFromMiddleY.ng-leave.ng-leave-active{transform:perspective(2000px) rotateY(-90deg);opacity:0}.zoomIn.ng-enter,.zoomIn.ng-hide-remove{transform:scale(1.5);opacity:0}.zoomIn.ng-enter.ng-enter-active,.zoomIn.ng-hide-remove.ng-hide-remove-active{transform:scale(1);opacity:1}.zoomOut.ng-hide-add,.zoomOut.ng-leave{transform:scale(.5);opacity:1}.zoomOut.ng-hide-add.ng-hide-add-active,.zoomOut.ng-leave.ng-leave-active{transform:scale(1);opacity:0}.spinIn.ng-enter,.spinIn.ng-hide-remove{transition-property:transform,opacity;transform:rotate(-270deg);opacity:0}.spinIn.ng-enter.ng-enter-active,.spinIn.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.spinOut.ng-hide-add,.spinOut.ng-leave{transition-property:transform,opacity;transform:rotate(0);opacity:1}.spinOut.ng-hide-add.ng-hide-add-active,.spinOut.ng-leave.ng-leave-active{transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter,.spinInCCW.ng-hide-remove{transition-property:transform,opacity;transform:rotate(270deg);opacity:0}.spinInCCW.ng-enter.ng-enter-active,.spinInCCW.ng-hide-remove.ng-hide-remove-active{transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add,.spinOutCCW.ng-leave{transition-property:transform,opacity;transform:rotate(0);opacity:1}.spinOutCCW.ng-hide-add.ng-hide-add-active,.spinOutCCW.ng-leave.ng-leave-active{transform:rotate(-270deg);opacity:0}.shake,.spin-ccw,.spin-cw,.wiggle{animation-duration:.5s;animation-timing-function:ease;transform:translate3d(0,0,0);animation-delay:0;backface-visibility:hidden}.slow{transition-duration:750ms!important}.fast{transition-duration:250ms!important}.linear{transition-timing-function:linear!important}.ease{transition-timing-function:ease!important}.easeIn{transition-timing-function:ease-in!important}.easeOut{transition-timing-function:ease-out!important}.easeInOut{transition-timing-function:ease-in-out!important}.bounceIn{transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounceOut{transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounceInOut{transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.delay{transition-delay:.3s!important}.long-delay{transition-delay:.7s!important}.shake{animation-name:shake}.spin-cw{animation-name:spin-cw}.spin-ccw{animation-name:spin-ccw}.wiggle{animation-name:wiggle}.shake.infinite,.spin-ccw.infinite,.spin-cw.infinite,.wiggle.infinite{animation-iteration-count:infinite}.shake.linear,.spin-ccw.linear,.spin-cw.linear,.wiggle.linear{animation-timing-function:linear!important}.shake.ease,.spin-ccw.ease,.spin-cw.ease,.wiggle.ease{animation-timing-function:ease!important}.shake.easeIn,.spin-ccw.easeIn,.spin-cw.easeIn,.wiggle.easeIn{animation-timing-function:ease-in!important}.shake.easeOut,.spin-ccw.easeOut,.spin-cw.easeOut,.wiggle.easeOut{animation-timing-function:ease-out!important}.shake.easeInOut,.spin-ccw.easeInOut,.spin-cw.easeInOut,.wiggle.easeInOut{animation-timing-function:ease-in-out!important}.shake.bounceIn,.spin-ccw.bounceIn,.spin-cw.bounceIn,.wiggle.bounceIn{animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.shake.bounceOut,.spin-ccw.bounceOut,.spin-cw.bounceOut,.wiggle.bounceOut{animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.shake.bounceInOut,.spin-ccw.bounceInOut,.spin-cw.bounceInOut,.wiggle.bounceInOut{animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.shake.slow,.spin-ccw.slow,.spin-cw.slow,.wiggle.slow{animation-duration:750ms!important}.shake.fast,.spin-ccw.fast,.spin-cw.fast,.wiggle.fast{animation-duration:250ms!important}.shake.delay,.spin-ccw.delay,.spin-cw.delay,.wiggle.delay{animation-delay:.3s!important}.shake.long-delay,.spin-ccw.long-delay,.spin-cw.long-delay,.wiggle.long-delay{animation-delay:.7s!important}.long-stagger,.stagger,.stort-stagger{transition-delay:150ms;transition-duration:0}.position-absolute{overflow:hidden;position:relative}.ui-animation.ng-enter-active,.ui-animation.ng-leave-active{position:absolute!important;backface-visibility:hidden;-webkit-transform-style:preserve-3d;top:0;right:0;bottom:0;left:0}.notification,.static-notification{z-index:1000;position:relative;margin-top:.5rem;margin-bottom:.5rem;display:none}.notification h1,.static-notification h1{font-size:1.25em;margin:0}.notification p,.static-notification p{margin:0}.is-active.notification,.is-active.static-notification{display:flex}.notification .close-button,.static-notification .close-button{color:#fff}.notification-container{z-index:3000;position:fixed;display:flex;flex-direction:column}.notification{background:#00558b;padding:1rem;border-radius:4px}.notification,.notification h1,.notification h2,.notification h3,.notification h4,.notification h5,.notification h6{color:#fff}.notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.notification.success,.notification.success h1,.notification.success h2,.notification.success h3,.notification.success h4,.notification.success h5,.notification.success h6{color:#fff}.notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.notification.warning,.notification.warning h1,.notification.warning h2,.notification.warning h3,.notification.warning h4,.notification.warning h5,.notification.warning h6{color:#fff}.notification.alert{background:#F04124;padding:1rem;border-radius:4px}.notification.alert,.notification.alert h1,.notification.alert h2,.notification.alert h3,.notification.alert h4,.notification.alert h5,.notification.alert h6{color:#fff}.notification.dark{background:#232323;padding:1rem;border-radius:4px}.notification.dark,.notification.dark h1,.notification.dark h2,.notification.dark h3,.notification.dark h4,.notification.dark h5,.notification.dark h6{color:#fff}.static-notification{background:#00558b;padding:1rem;border-radius:4px;position:fixed!important}.static-notification,.static-notification h1,.static-notification h2,.static-notification h3,.static-notification h4,.static-notification h5,.static-notification h6{color:#fff}.static-notification.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.static-notification.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.static-notification.success{background:#43AC6A;padding:1rem;border-radius:4px}.static-notification.success,.static-notification.success h1,.static-notification.success h2,.static-notification.success h3,.static-notification.success h4,.static-notification.success h5,.static-notification.success h6{color:#fff}.static-notification.warning{background:#F08A24;padding:1rem;border-radius:4px}.static-notification.warning,.static-notification.warning h1,.static-notification.warning h2,.static-notification.warning h3,.static-notification.warning h4,.static-notification.warning h5,.static-notification.warning h6{color:#fff}.static-notification.alert{background:#F04124;padding:1rem;border-radius:4px}.static-notification.alert,.static-notification.alert h1,.static-notification.alert h2,.static-notification.alert h3,.static-notification.alert h4,.static-notification.alert h5,.static-notification.alert h6{color:#fff}.static-notification.dark{background:#232323;padding:1rem;border-radius:4px}.off-canvas,.off-canvas~.grid-frame{transition:transform .25s ease-out;background:#fff}.static-notification.dark,.static-notification.dark h1,.static-notification.dark h2,.static-notification.dark h3,.static-notification.dark h4,.static-notification.dark h5,.static-notification.dark h6{color:#fff}.notification-container{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-right{width:25rem;right:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-left{width:25rem;left:1rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.top-middle{width:25rem;left:50%;margin-left:-12.5rem;top:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.top-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-right{width:25rem;right:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-right{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-left{width:25rem;left:1rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-left{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-container.bottom-middle{width:25rem;left:50%;margin-left:-12.5rem;top:auto;bottom:1rem}@media only screen and (min-width:0em) and (max-width:39.9375rem){.notification-container.bottom-middle{width:auto;left:1rem;right:1rem;margin-left:0}}.notification-icon{flex:0 0 60px;margin-right:1rem}.notification-icon img{width:100%;height:auto}.notification-content{flex:1}.is-active.off-canvas{transform:translate(0,0)!important}.off-canvas~.grid-frame{transform:translate(0,0,0);backface-visibility:hidden}.off-canvas{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;z-index:2;width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);transform:translateX(-100%);color:#000}.popup,.switch{overflow:hidden}.off-canvas.is-active~.grid-frame{transform:translateX(250px)!important}.off-canvas.top{height:250px;width:100%;top:0;left:0;transform:translateY(-100%);box-shadow:inset 0 -3px 10px rgba(0,0,0,.25)}.off-canvas.top.is-active~.grid-frame{transform:translateY(250px)!important}.off-canvas.right{width:250px;height:100%;left:auto;top:0;right:0;box-shadow:inset 3px 0 10px rgba(0,0,0,.25);transform:translateX(100%)}.off-canvas.right.is-active~.grid-frame{transform:translateX(-250px)!important}.off-canvas.bottom{height:250px;width:100%;top:auto;bottom:0;left:0;transform:translateY(100%);box-shadow:inset 0 3px 10px rgba(0,0,0,.25)}.off-canvas.bottom.is-active~.grid-frame{transform:translateY(-250px)!important}.off-canvas.left{width:250px;height:100%;top:0;left:0;box-shadow:inset -3px 0 10px rgba(0,0,0,.25);transform:translateX(-100%)}.off-canvas.left.is-active~.grid-frame{transform:translateX(250px)!important}.off-canvas.detached{z-index:0;box-shadow:none}.off-canvas.detached,.off-canvas.detached.is-active{transform:none}.off-canvas.detached~.grid-frame{z-index:1;box-shadow:0 0 15px rgba(0,0,0,.5)}.popup,.popup.dark,.popup.primary{box-shadow:0 0 10px rgba(0,0,0,.25)}.off-canvas.primary{background:#00558b;color:#fff}.off-canvas.dark{background:#232323;color:#fff}.popup{position:absolute;z-index:1000;opacity:0;transition:opacity .25s ease-out;pointer-events:none;width:18.75rem;background:#fff;border-radius:0;border:0}.tether-enabled.popup{opacity:1;pointer-events:auto}.popup.dark{background:#232323;border-radius:0;border:0}.popup.primary{background:#00558b;border-radius:0;border:0}.switch{position:relative;display:inline-block}.switch>input{position:absolute;left:-9999px;outline:0}.switch>label{-ms-touch-action:manipulation;touch-action:manipulation;display:block;width:100%;height:100%;margin:0;background:#ccc}.switch,.switch>label::after{height:2rem;border-radius:9999px}.switch{width:3.125rem}.switch>label::after{content:'';display:block;position:absolute;top:0;left:0;width:2rem;background:#fff;transition:left .15s ease-out;border:4px solid #ccc}.switch input:checked+label::after{left:1.125rem;border-color:#00558b}.switch input:checked+label{background:#00558b;margin:0}.tabs,.tabs.vertical{display:flex;background:0 0}.switch.small{width:2.5rem;height:1.625rem}.switch.small>label::after{width:1.625rem;height:1.625rem}.switch.small input:checked+label::after{left:.875rem}.switch.large{width:3.75rem;height:2.375rem}.switch.large>label::after{width:2.375rem;height:2.375rem}.switch.large input:checked+label::after{left:1.375rem}.tabs{flex-flow:row wrap}.tabs.vertical{flex-flow:column nowrap}.tabs .tab-item{background:#f3f3f3;padding:1rem;line-height:1;margin:0;flex:0 1 auto;color:#000}.tabs .tab-item.is-active{background:#ececec;color:#000}.tabs .tab-item.is-active:hover,.tabs .tab-item:hover{background:#e7e7e7}.tab-contents{padding:1rem}.tab-contents .tab-content{display:none}.tab-contents .tab-content.is-active{display:block}.accordion{border:1px solid #cbcbcb}.accordion-title{padding:1rem;background:#f3f3f3;color:#000;line-height:1;cursor:pointer}.accordion-title:hover{background:#e7e7e7}.is-active>.accordion-title{background:#ececec;color:#000}.accordion-content{padding:1rem;display:none}.is-active>.accordion-content{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}a{color:#00558b;text-decoration:none;line-height:inherit}p,p.lead{line-height:1.6}a:focus,a:hover{color:#004978}a img{border:none}p{font-family:inherit;font-size:1rem;margin-bottom:1.25rem}.subheader,h1,h2,h3,h4,h5,h6{margin-top:.2rem;margin-bottom:.5rem;font-weight:400}p.lead{font-size:1.21875rem}p aside{font-size:.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Helvetica,Arial,sans-serif;font-style:normal;color:#222;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4,h5{font-size:1.125rem}h6{font-size:1rem}.subheader{line-height:1.4;color:#6f6f6f}b,em,i,small,strong{line-height:inherit}hr{border:solid #ddd;border-width:1px 0 0;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic}small{font-size:60%;color:#6f6f6f}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#464646;background-color:#fbfbfb;border-width:1px;border-style:solid;border-color:#e2e2e2;padding:.125rem .3125rem .0625rem}dl,ol,ul{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ol,ul{margin-left:1.1rem}ol li ol,ol li ul,ul li ol,ul li ul{margin-left:1.25rem;margin-bottom:0}ul.no-bullet{margin-left:0}dl dt{margin-bottom:.3rem;font-weight:700}dl dd{margin-bottom:.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px dotted #ddd;cursor:help}abbr{text-transform:none}blockquote{margin:0 0 1.25rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.v-align{display:flex;align-items:center;justify-content:space-between}.v-align .align-center{align-self:center}.v-align .align-bottom{align-self:flex-end}.v-align .small-align-top{align-self:flex-start}.v-align .small-align-center{align-self:center}.v-align .small-align-bottom{align-self:flex-end}.hide{display:none!important}.invisible{visibility:hidden}.hide-for-small:not(.ng-hide){display:block!important;display:none!important}.hide-for-small[class*=grid-block]:not(.ng-hide){display:flex!important;display:none!important}.show-for-small:not(.ng-hide){display:none!important;display:block!important}.show-for-small[class*=grid-block]:not(.ng-hide){display:none!important;display:flex!important}.hide-for-small-only:not(.ng-hide){display:block!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only:not(.ng-hide){display:none!important}}.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-small-only:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.hide-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-small-only:not(.ng-hide){display:block!important}}.show-for-small-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:0em) and (max-width:39.9375rem){.show-for-small-only[class*=grid-block]:not(.ng-hide){display:flex!important}.small-only-text-left{text-align:left}}.hide-for-medium:not(.ng-hide){display:block!important}@media only screen and (min-width:40em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}h5{font-size:1.125rem}h6{font-size:1rem}.v-align .medium-align-top{align-self:flex-start}.v-align .medium-align-center{align-self:center}.v-align .medium-align-bottom{align-self:flex-end}.hide-for-medium:not(.ng-hide){display:none!important}}.hide-for-medium[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-medium:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.hide-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium:not(.ng-hide){display:block!important}}.show-for-medium[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em){.show-for-medium[class*=grid-block]:not(.ng-hide){display:flex!important}.medium-text-left{text-align:left}}.hide-for-medium-only:not(.ng-hide){display:block!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only:not(.ng-hide){display:none!important}}.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-medium-only:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.hide-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-medium-only:not(.ng-hide){display:block!important}}.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:40em) and (max-width:74.9375rem){.show-for-medium-only[class*=grid-block]:not(.ng-hide){display:flex!important}.medium-only-text-left{text-align:left}}.hide-for-large:not(.ng-hide){display:block!important}@media only screen and (min-width:75em){.v-align .large-align-top{align-self:flex-start}.v-align .large-align-center{align-self:center}.v-align .large-align-bottom{align-self:flex-end}.hide-for-large:not(.ng-hide){display:none!important}}.hide-for-large[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-large:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.hide-for-large[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large:not(.ng-hide){display:block!important}}.show-for-large[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em){.show-for-large[class*=grid-block]:not(.ng-hide){display:flex!important}.large-text-left{text-align:left}}.hide-for-large-only:not(.ng-hide){display:block!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only:not(.ng-hide){display:none!important}}.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:flex!important}.show-for-large-only:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.hide-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}.show-for-large-only:not(.ng-hide){display:block!important}}.show-for-large-only[class*=grid-block]:not(.ng-hide){display:none!important}@media only screen and (min-width:75em) and (max-width:89.9375rem){.show-for-large-only[class*=grid-block]:not(.ng-hide){display:flex!important}.large-only-text-left{text-align:left}}@media only screen and (orientation:portrait){.hide-for-portrait{display:none!important}.hide-for-portrait[class*=grid-block]{display:flex!important}}.show-for-portrait{display:none!important}@media only screen and (orientation:portrait){.show-for-portrait{display:block!important}.show-for-portrait[class*=grid-block]{display:flex!important}}@media only screen and (orientation:landscape){.hide-for-landscape{display:none!important}.hide-for-landscape[class*=grid-block]{display:flex!important}}.show-for-landscape{display:none!important}@media only screen and (orientation:landscape){.show-for-landscape{display:block!important}.show-for-landscape[class*=grid-block]{display:flex!important}}.small-text-left,.text-left{text-align:left}.small-text-right,.text-right{text-align:right}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-right{text-align:right}}@media only screen and (min-width:40em){.medium-text-right{text-align:right}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-right{text-align:right}}@media only screen and (min-width:75em){.large-text-right{text-align:right}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-right{text-align:right}.large-only-text-center{text-align:center}}.small-text-center,.text-center{text-align:center}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-center{text-align:center}}@media only screen and (min-width:40em){.medium-text-center{text-align:center}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-center{text-align:center}}@media only screen and (min-width:75em){.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.small-text-justify,.text-justify{text-align:justify}@media only screen and (min-width:0em) and (max-width:39.9375rem){.small-only-text-justify{text-align:justify}}@media only screen and (min-width:40em){.medium-text-justify{text-align:justify}}@media only screen and (min-width:40em) and (max-width:74.9375rem){.medium-only-text-justify{text-align:justify}}@media only screen and (min-width:75em) and (max-width:89.9375rem){.large-only-text-justify{text-align:justify}}.clearfix:after,.clearfix:before{content:" ";display:table}.float-left{float:left}.float-right{float:right}.float-none{float:none}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fYmxvY2stbGlzdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy92ZW5kb3IvX25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2FjdGlvbi1zaGVldC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19saXN0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbm90aWZpY2F0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3V0aWxpdGllcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9oZWxwZXJzL19taXhpbnMuc2NzcyIsImZvdW5kYXRpb24vX2ZvdW5kYXRpb24taWNvbnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2ljb25pYy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9fZnVuY3Rpb25zLnNjc3MiLCIkc3RkaW4iLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX2NhcmQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvaGVscGVycy9faW1hZ2VzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3BvcHVwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX21vdGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19leHRyYXMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fcGFuZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tYXBwcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1hcHBzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLWFwcHMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSFEsb0JDNEtELGlCQUNJLHFCQUNULE9BQVEsUUN0TkosS0R1RU4sSUFDRyxJRXdEQyxTQUFVLFNINkZKLGtDSXBGSixPSGlKSixtQkFBb0IsS0d6U2pCLGdCQUFpQixLQ3dIcEIsR0FBSSxHQUFJLEdBQUksR0FBSSxHQUFNLEdBbEJyQixFQXVCQyxlQTNLb0IsbUJGVXBCLGlCQUFBLHNCQUFBLHlCSDJTRixZQS9SSyxlTThHUSxjQ25KRCxhQzBPSCxVQ29LUSxZQUFDLGFBQUEsYUFBQSxhQUFELFlBQUEsWUFBQSxZQUFBLFlBQUEsWUFBQSxZQUFBLFlKaklmLGFBQ2UsbUJBQVQsbUJBQ0osZ0JBQWlCLEtLbkZILG1CQ3RJSixvQkFDUixXQVBLLFdDc0NKLGdCUHlITCxHT3pIUSxNQUFPLEtDM0ZULFdBQ1IsWUFBZ0MsaUJBQ2hDLElBQUssNkNBQXFELGVBQzFELFlBQWEsSUFDYixXQUFZLE9BSUUsd0JBQ1AsaUJB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a0RBTEcsaURBTVIsV0o1RVEsc0JJNkVSLE1KN0VRLFFhbEJoQixpREFBQyx1RUFBQSxzREFXeUIsNEVBWDFCLHFEQUFDLDJFQUNDLEtiaUJjLFFhVlosT2JVWSxRSXNGRSxpREFBQyx1REFDRyx5REFDTiwrREFDUixXSnpGUSxRSTBGUixNWXZCd0IsS0hyRmhDLDJEQUFDLGlGQUFBLG1FQVd5Qix5RkFWeEIsS0dvRjhCLEtIN0U1QixPRzZFNEIsS1ptRW5CLGdDQXBFWCxhSi9EWSxRSW1FUixxQ0FBb0IsMENBQWYseUNBQ0wsYUpwRVEsUUlxRVIsTUpyRVEsUUltRVAsMkNBS00sZ0RBTEcsK0NBTVIsV0p6RU0scUJJMEVOLE1KMUVNLFFhckJkLCtDQUFDLHFFQUFBLG9EQVd5QiwwRUFYMUIsbURBQUMseUVBQ0MsS2JvQlksUWFiVixPYmFVLFFJbUZJLCtDQUFDLHFEQUNHLHVEQUNOLDZEQUNSLFdKdEZNLFFJdUZOLE1ZdkJtQyxLSHJGM0MseURBQUMsK0VBQUEsaUVBV3lCLHVGQVZ4QixLR29GeUMsS0g3RXZDLE9HNkV1QyxLWm9FOUIsZ0NBckVYLGFKOURZLFFJa0VSLHFDQUFvQiwwQ0FBZix5Q0FDTCxhSm5FUSxRSW9FUixNSnBFUSxRSWtFUCwyQ0FLTSxnREFMRywrQ0FNUixXSnhFTSxxQkl5RU4sTUp6RU0sUWF0QmQsK0NBQUMscUVBQUEsb0RBV3lCLDBFQVgxQixtREFBQyx5RUFDQyxLYnFCWSxRYWRWLE9iY1UsUUlrRkksK0NBQUMscURBQ0csdURBQ04sNkRBQ1IsV0pyRk0sUUlzRk4sTVl2Qm1DLEtIckYzQyx5REFBQywrRUFBQSxpRUFXeUIsdUZBVnhCLEtHb0Z5QyxLSDdFdkMsT0c2RXVDLEtacUVoQyw4QkF0RVQsYUpqRVUsUUlxRU4sbUNBQW9CLHdDQUFmLHVDQUNMLGFKdEVNLFFJdUVOLE1KdkVNLFFJcUVMLHlDQUtNLDhDQUxHLDZDQU1SLFdKM0VJLG9CSTRFSixNSjVFSSxRYW5CWiw2Q0FBQyxtRUFBQSxrREFXeUIsd0VBWDFCLGlEQUFDLHVFQUNDLEtia0JVLFFhWFIsT2JXUSxR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ckIsV0FkZSxPTWRXLHdDTnFCWCxrQkFDZixXQVJlLE9NZHVDLG1FTjJCbEMsdUJBQ3BCLFdBZGUsTUFhTSx3QkFDckIsV0Fkc0IsUUFPTixtQkFOVixhQUNWLFdBRjBCLE9NZCtCLGtFTjJCaEMsd0JBQ3JCLFdBZHNCLFFNZEksd0NOcUJULG9CQUNqQixXQVJzQixRTWRnQyxtRU4yQmhDLHlCQUN0QixXQWRzQixRTWRJLHdDTnFCVixtQkFDaEIsV0FSc0IsT0FPTCxvQkFDakIsV0FSOEIsU0FPYixvQkFOVixjQUNYLFdBRmtDLFFNZHVCLGtFTjJCL0IseUJBQ3RCLFdBZDhCLFNNZEosd0NOcUJSLHFCQUNsQixXQVI4QixTTWR3QixtRU4yQi9CLDBCQUN2QixXQWQ4QixTTWR3QixtRU4yQmhDLHlCQUN0QixXQWQ4QixTQ2pDckIsZ0JEd0RSLGlCQ3hEVyxRQUFhLElBQUUsUUFBUyxNRDJEL0IsWUFDVCxNQUFNLEtBREksYUFDVixNQUFNLE1BREcsWUFDVCxNQUFNIiwiZmlsZSI6ImZvdW5kYXRpb24vZm91bmRhdGlvbi1jb25mLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIEJMT0NLIExJU1RcbiAgLS0tLS0tLS0tLVxuXG4gIEEgZ2VuZXJpYyBsaXN0IGNvbXBvbmVudCB0aGF0IGNhbiBhY2NvbW9kYXRlIGEgdmFyaWV0eSBvZiBzdHlsZXMgYW5kIGNvbnRyb2xzLlxuXG4gIEZlYXR1cmVzOlxuICAgLSBJY29uc1xuICAgLSBMYWJlbHNcbiAgIC0gQ2hldnJvbnNcbiAgIC0gVGV4dCBmaWVsZHNcbiAgIC0gRHJvcGRvd24gbWVudXNcbiAgIC0gQ2hlY2tib3gvcmFkaW8gaW5wdXRzXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEJsb2NrIExpc3RcbiRibG9ja2xpc3QtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRibG9ja2xpc3QtZnVsbGJsZWVkOiB0cnVlICFkZWZhdWx0O1xuJGJsb2NrbGlzdC1mb250c2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmc6IDAuOHJlbSAxcmVtICFkZWZhdWx0O1xuJGJsb2NrbGlzdC1pdGVtLWNvbG9yOiBpc2l0bGlnaHQoJGJsb2NrbGlzdC1iYWNrZ3JvdW5kLCAjMDAwLCAjZmZmKSAhZGVmYXVsdDtcbiRibG9ja2xpc3QtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRibG9ja2xpc3QtYmFja2dyb3VuZCwgNC41JSkgIWRlZmF1bHQ7XG4kYmxvY2tsaXN0LWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICM5OTkgIWRlZmF1bHQ7XG4kYmxvY2tsaXN0LWl0ZW0tYm9yZGVyOiAxcHggc29saWQgc21hcnRzY2FsZSgkYmxvY2tsaXN0LWJhY2tncm91bmQsIDE4LjUlKSAhZGVmYXVsdDtcblxuJGJsb2NrbGlzdC1pdGVtLWxhYmVsLWNvbG9yOiBzY2FsZS1jb2xvcigkYmxvY2tsaXN0LWl0ZW0tY29sb3IsICRsaWdodG5lc3M6IDYwJSkgIWRlZmF1bHQ7XG4kYmxvY2tsaXN0LWl0ZW0taWNvbi1zaXplOiAwLjggIWRlZmF1bHQ7XG5cbiRibG9ja2xpc3QtaGVhZGVyLWZvbnRzaXplOiAwLjhlbSAhZGVmYXVsdDtcbiRibG9ja2xpc3QtaGVhZGVyLWNvbG9yOiBzbWFydHNjYWxlKCRibG9ja2xpc3QtaXRlbS1jb2xvciwgNDAlKSAhZGVmYXVsdDtcbiRibG9ja2xpc3QtaGVhZGVyLXVwcGVyY2FzZTogdHJ1ZTtcblxuJGJsb2NrbGlzdC1jaGVjay1pY29uczogdHJ1ZSAhZGVmYXVsdDtcbi8vL1xuXG4vKlxuICBBZGRzIHN0eWxlcyBmb3IgYSBibG9jayBsaXN0IGNvbnRhaW5lci5cblxuICAkZm9udC1zaXplOiBnbG9iYWwgZm9udCBzaXplIGZvciB0aGUgbGlzdC5cbiAgJGZ1bGwtYmxlZWQ6IHdoZW4gXCJ0cnVlXCIsIHRoZSBtYXJnaW5zIG9mIHRoZSBsaXN0IGludmVydCB0byBsaW5lIGl0IHVwIHdpdGggdGhlIGVkZ2Ugb2YgYSBwYWRkZWQgZWxlbWVudC5cbiovXG4lYmxvY2stbGlzdC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgJiwgdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgfVxuICB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cbkBtaXhpbiBibG9jay1saXN0LWNvbnRhaW5lcihcbiAgJGZvbnQtc2l6ZTogJGJsb2NrbGlzdC1mb250c2l6ZSxcbiAgJGZ1bGwtYmxlZWQ6ICRibG9ja2xpc3QtZnVsbGJsZWVkXG4pIHtcbiAgQGV4dGVuZCAlYmxvY2stbGlzdC1jb250YWluZXI7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICBAaWYgJGZ1bGwtYmxlZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAtJGdsb2JhbC1wYWRkaW5nO1xuICAgIG1hcmdpbi1yaWdodDogLSRnbG9iYWwtcGFkZGluZztcbiAgfVxufVxuXG4vKlxuICBTdHlsZXMgYmxvY2sgbGlzdCBoZWFkZXJzIG9uIHRoZSBzZWxlY3RvciB5b3UgaW5jbHVkZSB0aGlzIG1peGluIGluIChub3JtYWxseSBhIDxoZWFkZXI+KS5cblxuICAkY29sb3IgLSBjb2xvciBvZiB0aGUgaGVhZGVyLlxuICAkZm9udC1zaXplIC0gZm9udCBzaXplIG9mIHRoZSBoZWFkZXIuXG4gICRvZmZzZXQgLSBsZWZ0IG1hcmdpbiB0byBhZGQgdG8gdGhlIGhlYWRlciwgdG8gbGluZSBpdCB1cCB3aXRoIHRoZSBsaXN0IGl0ZW1zLlxuKi9cbkBtaXhpbiBibG9jay1saXN0LWhlYWRlcihcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWhlYWRlci1jb2xvcixcbiAgJGZvbnQtc2l6ZTogJGJsb2NrbGlzdC1oZWFkZXItZm9udHNpemUsXG4gICR1cHBlcmNhc2U6ICRibG9ja2xpc3QtaGVhZGVyLXVwcGVyY2FzZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmcsIGxlZnQpXG4pIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBjb2xvcjogJGNvbG9yO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIG1hcmdpbi1sZWZ0OiAkb2Zmc2V0O1xuICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgQGlmICR1cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG59XG5cbi8qXG4gIFN0eWxlcyBibG9jayBsaXN0IGl0ZW1zIG9uIHRoZSBzZWxlY3RvciB5b3UgaW5jbHVkZSB0aGlzIG1peGluIGluIChub3JtYWxseSBhbiA8bGk+KS5cblxuICAkY29sb3IgLSBjb2xvciBvZiBpdGVtcy5cbiAgJGNvbG9yLWhvdmVyIC0gY29sb3Igb2YgaXRlbXMgb24gaG92ZXIuXG4gICRiYWNrZ3JvdW5kIC0gYmFja2dyb3VuZCBvZiBpdGVtcy5cbiAgJGJhY2tncm91bmQtaG92ZXIgLSBiYWNrZ3JvdW5kIG9mIGl0ZW1zIG9uIGhvdmVyLlxuICAkYm9yZGVyIC0gYm9yZGVyIGJldHdlZW4gaXRlbXMuXG4gICRwYWRkaW5nIC0gcGFkZGluZyBvbiBpdGVtcy5cbiovXG5AbWl4aW4gYmxvY2stbGlzdC1pdGVtKFxuICAkY29sb3I6ICRibG9ja2xpc3QtaXRlbS1jb2xvcixcbiAgJGNvbG9yLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tY29sb3IsXG4gICRjb2xvci1kaXNhYmxlZDogJGJsb2NrbGlzdC1pdGVtLWNvbG9yLWRpc2FibGVkLFxuICAkYmFja2dyb3VuZDogdHJhbnNwYXJlbnQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJvcmRlcjogJGJsb2NrbGlzdC1pdGVtLWJvcmRlcixcbiAgJHBhZGRpbmc6ICRibG9ja2xpc3QtaXRlbS1wYWRkaW5nXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpZiBoYXN2YWx1ZSgkYm9yZGVyKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgZWxlbWVudHMgc2hhcmUgdGhlIHNhbWUgYmFzaWMgc3R5bGVzXG4gID4gYSwgPiBzcGFuLCA+IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6IGdldC1zaWRlKCRwYWRkaW5nLCBsZWZ0KTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gID4gc3BhbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gID4gYSwgPiBsYWJlbCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIH1cbiAgfVxuICA+IGEsID4gbGFiZWwsIHNlbGVjdCB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyBDb2xvcmluZyBjbGFzc2VzXG4gICYuY2F1dGlvbiA+IGEge1xuICAgICYsICY6aG92ZXIgeyBjb2xvcjogJGFsZXJ0LWNvbG9yOyB9XG4gIH1cbiAgJi5kaXNhYmxlZCA+IGEge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAmLCAmOmhvdmVyIHsgY29sb3I6ICRjb2xvci1kaXNhYmxlZDsgfVxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB9XG59XG5cbi8qXG4gIEFkZHMgbGFiZWwgc3R5bGVzIHRvIHRoZSBjbGFzcyB5b3UgaW5jbHVkZSB0aGlzIG1peGluIGluLlxuXG4gICRjb2xvciAtIGNvbG9yIG9mIHRoZSBsYWJlbC5cbiAgJGxlZnQtY2xhc3MgLSBleHRyYSBjbGFzcyB0byBmbGlwIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgbGFiZWwuXG4gICRsZWZ0LXBhZGRpbmcgLSBsZWZ0IHBhZGRpbmcgdG8gdXNlIGZvciBsZWZ0LWhhbmQgbGFiZWxzLlxuKi9cbkBtaXhpbiBibG9jay1saXN0LWxhYmVsKFxuICAkY29sb3I6ICRibG9ja2xpc3QtaXRlbS1sYWJlbC1jb2xvcixcbiAgJGxlZnQtY2xhc3M6ICdsZWZ0JyxcbiAgJGxlZnQtcGFkZGluZzogZ2V0LXNpZGUoJGJsb2NrbGlzdC1pdGVtLXBhZGRpbmcsIHRvcClcbikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi4jeyRsZWZ0LWNsYXNzfSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsZWZ0LXBhZGRpbmc7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLypcbiAgQWRkcyBzdXBwb3J0IGZvciBjaGV2cm9ucywgd2hpY2ggYXBwZWFyIG9uIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgdGhlIGl0ZW0uXG5cbiAgJGNvbG9yIC0gY29sb3Igb2YgdGhlIGNoZXZyb24uXG4gICRwYWRkaW5nIC0gaW5jbHVkZSB0aGUgZ2xvYmFsIHBhZGRpbmcgb2YgYmxvY2sgbGlzdCBpdGVtcyBoZXJlLlxuKi9cbkBtaXhpbiBibG9jay1saXN0LWNoZXZyb24oXG4gICRjb2xvcjogJGJsb2NrbGlzdC1oZWFkZXItY29sb3IsXG4gICRwYWRkaW5nOiAkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZyxcbiAgJGxhYmVsLWNsYXNzOiAnYmxvY2stbGlzdC1sYWJlbCdcbikge1xuICAvLyBDaGV2cm9ucyBhcmUgYSBwc2V1ZG8tZWxlbWVudFxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJ1xcMjAzQSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiBnZXQtc2lkZSgkcGFkZGluZywgcmlnaHQpO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICB9XG5cbiAgLy8gTGFiZWxzIG5leHQgdG8gbGlua3MgbW92ZSBvdmVyIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGNoZXZyb25cbiAgLy8gVE9ETzogdGhpcyBzZWxlY3RvciBuZWVkcyB0byBiZSBjdXN0b21pYWJsZSwgYnV0IGFkZGluZyBhIHNldHRpbmcganVzdCBmb3IgaXQgbWlnaHQgYmUgd2VpcmRcbiAgLiN7JGxhYmVsLWNsYXNzfSB7XG4gICAgcGFkZGluZy1yaWdodDogZ2V0LXNpZGUoJHBhZGRpbmcsIHJpZ2h0KSAqIDEuNTtcbiAgfVxufVxuXG4vKlxuICBBZGRzIGljb24gc3R5bGVzLiBDYWxsIHRoaXMgbWl4aW4gb24gYSBibG9jayBsaXN0IGNvbnRhaW5lci5cblxuICAkc2l6ZSAtIHNpemUgb2YgdGhlIGljb24gYXMgYSBwZXJjZW50YWdlIChkZWNpbWFsKSBvZiB0aGUgbGlzdCBpdGVtJ3MgaGVpZ2h0LlxuICAkaXRlbS1zZWxlY3RvciAtIG92ZXJyaWRlcyB0aGUgJ2xpJyBzZWxlY3RvciB1c2VkIGZvciBsaXN0IGl0ZW1zLlxuKi9cbkBtaXhpbiBibG9jay1saXN0LWljb25zKFxuICAkc2l6ZTogJGJsb2NrbGlzdC1pdGVtLWljb24tc2l6ZSxcbiAgJGl0ZW0tc2VsZWN0b3I6ICdsaSdcbikge1xuICAvLyBQSCAtIG5lZWQgYSBiZXR0ZXIgc29sdXRpb25cbiAgJGl0ZW0taGVpZ2h0OlxuICAgICRibG9ja2xpc3QtZm9udHNpemVcbiAgICArIGdldC1zaWRlKCRibG9ja2xpc3QtaXRlbS1wYWRkaW5nLCB0b3ApXG4gICAgKyBnZXQtc2lkZSgkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZywgdG9wKTtcblxuICAkaWNvbi1oZWlnaHQ6ICRpdGVtLWhlaWdodCAqICRibG9ja2xpc3QtaXRlbS1pY29uLXNpemU7XG4gICRpY29uLW9mZnNldDogKCRpdGVtLWhlaWdodCAtICRpY29uLWhlaWdodCkgLyAyO1xuXG4gICN7JGl0ZW0tc2VsZWN0b3J9IHtcbiAgICA+IGEsID4gc3BhbiwgPiBsYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IChnZXQtc2lkZSgkYmxvY2tsaXN0LWl0ZW0tcGFkZGluZywgbGVmdCkgKiAyKSArICRibG9ja2xpc3QtaXRlbS1pY29uLXNpemU7XG4gICAgfVxuICAgIGltZywgLmljb25pYyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRpY29uLW9mZnNldDtcbiAgICAgIGxlZnQ6ICRpY29uLW9mZnNldDtcbiAgICAgIHdpZHRoOiAkaWNvbi1oZWlnaHQ7XG4gICAgICBoZWlnaHQ6ICRpY29uLWhlaWdodDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKlxuICBBZGRzIHN1cHBvcnQgZm9yIHRleHQgZmllbGRzLCBzZWxlY3QgbWVudXMsIGFuZCBjaGVja2JveC9yYWRpbyBncm91cHMgaW4gYmxvY2sgbGlzdHMuXG5cbiAgJGNvbG9yIC0gY29sb3Igb2Ygc2VsZWN0IG1lbnUgYXJyb3cuXG4gICRiYWNrZ3JvdW5kLWhvdmVyIC0gY29sb3Igb2Ygc2VsZWN0IG1lbnUgd2hlbiBob3ZlcmVkIG92ZXIuXG4gICRwYWRkaW5nIC0gaW5jbHVkZSB0aGUgZ2xvYmFsIHBhZGRpbmcgb2YgYmxvY2sgbGlzdCBpdGVtcyBoZXJlLlxuICAkZHJvcGRvd24tY2xhc3MgLSBjbGFzcyB0byB1c2UgZm9yIGxpc3QgaXRlbXMgdGhhdCBjb250YWluIGEgZHJvcGRvd24uXG4gICRzd2l0Y2gtY2xhc3MgLSBjbGFzcyB0byB1c2UgZm9yIHN3aXRjaGVzIGluc2lkZSBsaXN0IGl0ZW1zLlxuKi9cbkBtaXhpbiBibG9jay1saXN0LWlucHV0cyhcbiAgJGNvbG9yOiAkYmxvY2tsaXN0LWl0ZW0tY29sb3IsXG4gICRiYWNrZ3JvdW5kOiAkYmxvY2tsaXN0LWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYmxvY2tsaXN0LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcixcbiAgJHBhZGRpbmc6ICRibG9ja2xpc3QtaXRlbS1wYWRkaW5nLFxuICAkaWNvbnM6ICRibG9ja2xpc3QtY2hlY2staWNvbnMsXG4gICRkcm9wZG93bi1jbGFzczogJ3dpdGgtZHJvcGRvd24nLFxuICAkc3dpdGNoLWNsYXNzOiAnc3dpdGNoJ1xuKSB7XG4gIC8vIFRleHQgZmllbGRzXG4gICN7JHRleHQtaW5wdXQtc2VsZWN0b3JzfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBNdWx0aXBsZSBzZWxlY3RcbiAgbGkgPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGxpID4gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTk5OTlweDtcblxuICAgICYgKyBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogJGJsb2NrbGlzdC1mb250c2l6ZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAaWYgJGljb25zID09IHRydWUge1xuICAgICAgJjpjaGVja2VkICsgbGFiZWwge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGltYWdlLWNoZWNrbWFyaygkY29sb3IpO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAxLjVlbTtcbiAgICAgICAgICBoZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERyb3Bkb3duc1xuICAuI3skZHJvcGRvd24tY2xhc3N9IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgIHNlbGVjdCB7XG4gICAgICAvLyBSZXNldCBwZXNreSA8c2VsZWN0PiBzdHlsZXNcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDFlbTsgLy8gU2FtZSBzaXplIGFzIGl0cyBwYXJlbnRcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAvLyBTd2l0Y2hlc1xuICAuI3skc3dpdGNoLWNsYXNzfSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiBnZXQtc2lkZSgkcGFkZGluZywgcmlnaHQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKGJsb2NrLWxpc3QpIHtcbiAgLmJsb2NrLWxpc3Qge1xuICAgIEBpbmNsdWRlIGJsb2NrLWxpc3QtY29udGFpbmVyO1xuICAgIEBpbmNsdWRlIGJsb2NrLWxpc3QtaW5wdXRzO1xuXG4gICAgJi53aXRoLWljb25zIHsgQGluY2x1ZGUgYmxvY2stbGlzdC1pY29uczsgfVxuICAgIGhlYWRlciAgICAgICB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtaGVhZGVyOyB9XG5cbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBibG9jay1saXN0LWl0ZW07XG5cbiAgICAgICYud2l0aC1jaGV2cm9uICAgIHsgQGluY2x1ZGUgYmxvY2stbGlzdC1jaGV2cm9uOyB9XG4gICAgICAuYmxvY2stbGlzdC1sYWJlbCB7IEBpbmNsdWRlIGJsb2NrLWxpc3QtbGFiZWw7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gKi9cblxuaHIge1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gKiAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gIG1hcmdpbjogMDsgLyogMyAqL1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4gKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyOyAvKiAzICovXG59XG5cbi8qKlxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbiAqL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAqIHRoZSBVQSBzdHlsZXNoZWV0LlxuICovXG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuICogICAgKGluY2x1ZGUgYC1tb3pgIHRvIGZ1dHVyZS1wcm9vZikuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufSIsIi8qXG4gIEdMT0JBTFxuICAtLS0tLS1cblxuICBHbG9iYWwgc3R5bGVzIGFuZCBzZXR0aW5ncyBmb3IgRm91bmRhdGlvbiBmb3IgQXBwcyBhcmUgc3RvcmVkIGhlcmUuIFRoaXMgZmlsZSBtdXN0IGFsd2F5c1xuICBiZSBpbXBvcnRlZCwgbm8gbWF0dGVyIHdoYXQuXG5cbiAgSW5jbHVkZXM6XG4gICAtXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEdsb2JhbCBTdHlsZXNcbi8vIFRoaXMgc2V0cyAxcmVtIHRvIGJlIDE2cHhcbiRyZW0tYmFzZTogMTZweDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbiRiYXNlLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gJGJhc2UtbGluZS1oZWlnaHQgaXMgMjRweCB3aGlsZSAkYmFzZS1mb250LXNpemUgaXMgMTZweFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8gVGV4dCBzZWxlY3RvciBoZWxwZXJzXG4kaGVhZGVyczogXCJoMSxoMixoMyxoNCxoNSxoNlwiO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdmFyaW91cyBnbG9iYWwgc3R5bGVzXG4kYm9keS1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogIzIyMiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYm9keS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRib2R5LWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlO1xuXG4vLyBBcHBsaWNhdGlvbiBDb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiAjMDA1NThiICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogI2YxZjFmMSAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogI0YwNDEyNCAhZGVmYXVsdDtcbiRpbmZvLWNvbG9yOiAjQTBEM0U4ICFkZWZhdWx0O1xuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkEgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogI0YwOEEyNCAhZGVmYXVsdDtcbiRkYXJrLWNvbG9yOiAjMjMyMzIzICFkZWZhdWx0O1xuJGdyYXk6ICNkZmRmZGYgIWRlZmF1bHQ7XG4kZ3JheS1kYXJrOiBkYXJrZW4oJGdyYXksIDgpICFkZWZhdWx0O1xuJGdyYXktbGlnaHQ6IGxpZ2h0ZW4oJGdyYXksIDgpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gbWFrZSBzdXJlIGJvcmRlciByYWRpdXMgbWF0Y2hlcyB1bmxlc3Mgd2Ugd2FudCBpdCBkaWZmZXJlbnQuXG4kZ2xvYmFsLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGdsb2JhbC1yb3VuZGVkOiAxMDAwcHggIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIGZvciBkZWZhdWx0IHNwYWNpbmdcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRnbG9iYWwtc3BhY2luZzogcmVtLWNhbGMoMTUpICFkZWZhdWx0O1xuLy8vXG5cbi8vIEZvciBpbnRlcm5hbCB1c2U6IGEgY29sb3IgbWFwXG4kZm91bmRhdGlvbi1jb2xvcnM6IChcbiAgcHJpbWFyeTogJHByaW1hcnktY29sb3IsXG4gIHN1Y2Nlc3M6ICRzdWNjZXNzLWNvbG9yLFxuICB3YXJuaW5nOiAkd2FybmluZy1jb2xvcixcbiAgYWxlcnQ6ICRhbGVydC1jb2xvcixcbiAgZGFyazogJGRhcmstY29sb3IsXG4pO1xuXG5AaW5jbHVkZSBleHBvcnRzKGdsb2JhbCkge1xuICAvLyBNYWtlIGV4dHJhIHN1cmUgd2UncmUgdXNpbmcgdGhlIHdob2xlIHdpbmRvd1xuICBodG1sLCBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIH1cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAqLCAqOmJlZm9yZSwgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRib2R5LWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGlmICRib2R5LWFudGlhbGlhc2VkIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdyaWQgRGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAvLyBHaXZlIGFsbCBhbmNob3JzIGFuZCBpbnRlcmFjdGl2ZSBkaXJlY3RpdmVzIHRoZSBob3ZlciBjdXNvclxuICBhLCBbdWktc3JlZl0sIFt6Zi1vcGVuXSwgW3pmLWNsb3NlXSwgW3pmLXRvZ2dsZV0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICNtYXBfY2FudmFzLFxuICAubWFwX2NhbnZhcyB7XG4gICAgaW1nLFxuICAgIGVtYmVkLFxuICAgIG9iamVjdCB7IG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50OyB9XG4gIH1cblxuICAucGFkZGluZyB7XG4gICAgcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuICB9XG59XG4iLCIvKlxuICBBQ1RJT04gU0hFRVRcbiAgLS0tLS0tLS0tLS0tXG5cbiAgQSBkcm9wZG93biBtZW51IHRoYXQgc3RpY2tzIHRvIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiBvbiBzbWFsbCBkZXZpY2VzLCBhbmQgYmVjb21lcyBhIGRyb3Bkb3duIG1lbnUgb24gbGFyZ2VyIGRldmljZXMuXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEFjdGlvbiBTaGVldFxuJGFjdGlvbnNoZWV0LWJhY2tncm91bmQ6IHdoaXRlICFkZWZhdWx0O1xuJGFjdGlvbnNoZWV0LWJvcmRlci1jb2xvcjogI2NjYyAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC1hbmltYXRlOiB0cmFuc2Zvcm0gb3BhY2l0eSAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC1hbmltYXRpb24tc3BlZWQ6IDAuMjVzICFkZWZhdWx0O1xuJGFjdGlvbnNoZWV0LXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC1yYWRpdXM6IDRweCAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC1zaGFkb3c6IDAgLTNweCAxMHB4IHJnYmEoYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuJGFjdGlvbnNoZWV0LXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC10YWlsLXNpemU6IDEwcHggIWRlZmF1bHQ7XG5cbiRhY3Rpb25zaGVldC1wb3B1cC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4kYWN0aW9uc2hlZXQtbGluay1jb2xvcjogIzAwMCAhZGVmYXVsdDtcbiRhY3Rpb25zaGVldC1saW5rLWJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJGFjdGlvbnNoZWV0LWJhY2tncm91bmQpICFkZWZhdWx0O1xuLy8vXG5cbi8qXG4gIFN0eWxlcyBmb3IgdGhlIGxpc3QgaW5zaWRlIGFuIGFjdGlvbiBzaGVldC5cbiAgRG9uJ3QgaW5jbHVkZSB0aGlzIG1peGluIGlmIHlvdSB3YW50IHRvIGJ1aWxkIGN1c3RvbSBjb250cm9scyBpbnNpZGUgdGhlIHNoZWV0LlxuKi9cbkBtaXhpbiBhY3Rpb24tc2hlZXQtbWVudShcbiAgJHBhZGRpbmc6ICRhY3Rpb25zaGVldC1wYWRkaW5nLFxuICAkY29sb3I6ICRhY3Rpb25zaGVldC1saW5rLWNvbG9yLFxuICAkYm9yZGVyLWNvbG9yOiAkYWN0aW9uc2hlZXQtYm9yZGVyLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjdGlvbnNoZWV0LWxpbmstYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIC8vIE1lbnUgY29udGFpbmVyXG4gIHVsIHtcbiAgICBtYXJnaW46IC0oJHBhZGRpbmcpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgLy8gSWYgdGhlIG1lbnUgaGFzIG5vIGNvbnRlbnQgYWJvdmUgaXRcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IC0kcGFkZGluZztcblxuICAgICAgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lbnUgbGlua3NcbiAgICBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogJHBhZGRpbmcgKiAwLjg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hbGVydCA+IGEge1xuICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICB9XG4gICAgLmRpc2FibGVkID4gYSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgIH1cbiAgfVxufVxuXG4vKlxuICBTdHlsZXMgZm9yIHRoZSBhY3Rpb24gc2hlZXQgY29udGFpbmVyLiBBY3Rpb24gc2hlZXRzIHBpbiB0byB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgc2NyZWVuLlxuKi9cbkBtaXhpbiBhY3Rpb24tc2hlZXQoXG4gICRwb3NpdGlvbjogYm90dG9tLFxuICAkc2hhZG93OiAkYWN0aW9uc2hlZXQtc2hhZG93LFxuICAkYW5pbWF0ZTogJGFjdGlvbnNoZWV0LWFuaW1hdGUsXG4gICRhbmltYXRpb24tc3BlZWQ6ICRhY3Rpb25zaGVldC1hbmltYXRpb24tc3BlZWQsXG4gICRwYWRkaW5nOiAkYWN0aW9uc2hlZXQtcGFkZGluZyxcbiAgJGJhY2tncm91bmQ6ICRhY3Rpb25zaGVldC1iYWNrZ3JvdW5kXG4pIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6ICRhbmltYXRlO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkYW5pbWF0aW9uLXNwZWVkO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG5cbiAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuICB9XG5cbiAgLy8gUG9zaXRpb25zXG4gIEBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICB9XG4gIH1cbiAgLy8gVGhlc2UgdHdvIGRvbid0IHF1aXRlIHdvcmsgYXMgcGxhbm5lZCB5ZXRcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcG9wdXAtbWVudShcbiAgJHBvc2l0aW9uOiBib3R0b20sXG4gICRiYWNrZ3JvdW5kOiAkYWN0aW9uc2hlZXQtYmFja2dyb3VuZCxcbiAgJHdpZHRoOiAkYWN0aW9uc2hlZXQtd2lkdGgsXG4gICRyYWRpdXM6ICRhY3Rpb25zaGVldC1yYWRpdXMsXG4gICRzaGFkb3c6ICRhY3Rpb25zaGVldC1wb3B1cC1zaGFkb3csXG4gICR0YWlsLXNpemU6ICRhY3Rpb25zaGVldC10YWlsLXNpemVcbikge1xuICAvKlxuICAgIENvcmUgc3R5bGVzXG4gICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogJHdpZHRoO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAvKlxuICAgIE1lbnUgc2hhZG93XG4gICovXG4gIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcbiAgfVxuXG4gIC8qXG4gICAgQWN0aXZlIHN0YXRlXG4gICovXG4gICYuaXMtYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB9XG5cbiAgLypcbiAgICBNZW51IHRhaWxcbiAgKi9cbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMHB4O1xuICAgIGhlaWdodDogMHB4O1xuICAgIGJvcmRlci1sZWZ0OiAkdGFpbC1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogJHRhaWwtc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBtYXJnaW4tbGVmdDogLSgkdGFpbC1zaXplKTtcbiAgfVxuXG4gIC8qXG4gICAgUG9zaXRpb25pbmdcbiAgKi9cbiAgQGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTEwJSk7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICB0b3A6IC0oJHRhaWwtc2l6ZSk7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHRhaWwtc2l6ZSBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICB9XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHRvcDogLSgkdGFpbC1zaXplICsgMik7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKGJsYWNrLCAwLjE1KTtcbiAgICB9XG5cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMjAlKTtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTEwJSk7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICBib3R0b206IC0oJHRhaWwtc2l6ZSk7XG4gICAgICBib3JkZXItdG9wOiAkdGFpbC1zaXplIHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJvdHRvbTogLSgkdGFpbC1zaXplICsgMik7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKGJsYWNrLCAwLjE1KTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhhY3Rpb24tc2hlZXQpIHtcbiAgLmFjdGlvbi1zaGVldC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICAuYWN0aW9uLXNoZWV0IHtcbiAgICBAaW5jbHVkZSBhY3Rpb24tc2hlZXQ7XG4gICAgQGluY2x1ZGUgYWN0aW9uLXNoZWV0LW1lbnU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgcG9wdXAtbWVudTtcblxuICAgICAgJi50b3Age1xuICAgICAgICBAaW5jbHVkZSBwb3B1cC1tZW51KHRvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgY29sb3I6IGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcik7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICAmOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogJHByaW1hcnktY29sb3I7IH1cbiAgICAgICYudG9wOjpiZWZvcmUsICYudG9wOjphZnRlciB7IGJvcmRlci1ib3R0b20tY29sb3I6ICRwcmltYXJ5LWNvbG9yOyB9XG5cbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1zaGVldC1tZW51KFxuICAgICAgICAkY29sb3I6IGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvciksXG4gICAgICAgICRib3JkZXItY29sb3I6IHNtYXJ0c2NhbGUoJHByaW1hcnktY29sb3IsIDEwJSksXG4gICAgICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRwcmltYXJ5LWNvbG9yKVxuICAgICAgKTtcbiAgICB9XG4gICAgJi5kYXJrIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkYXJrLWNvbG9yO1xuICAgICAgY29sb3I6IGlzaXRsaWdodCgkZGFyay1jb2xvcik7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICAmOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogJGRhcmstY29sb3I7IH1cbiAgICAgICYudG9wOjpiZWZvcmUsICYudG9wOjphZnRlciB7IGJvcmRlci1ib3R0b20tY29sb3I6ICRkYXJrLWNvbG9yOyB9XG5cbiAgICAgIEBpbmNsdWRlIGFjdGlvbi1zaGVldC1tZW51KFxuICAgICAgICAkY29sb3I6IGlzaXRsaWdodCgkZGFyay1jb2xvciksXG4gICAgICAgICRib3JkZXItY29sb3I6IHNtYXJ0c2NhbGUoJGRhcmstY29sb3IsIDEwJSksXG4gICAgICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRkYXJrLWNvbG9yKVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG4gIEZPUk1TXG4gIC0tLS0tXG5cbiAgT3VyIGZvcm0gc3R5bGVzIGluY2x1ZGUgYmFzaWMgcmVzZXRzIGZvciB0ZXh0IGZpZWxkcywgc2VsZWN0IG1lbnVzLCBhbmQgc28gb24sIGFsb25nIHdpdGggc29tZSBvZiBvdXIgb3duIGN1c3RvbSBjb21wb25lbnRzLlxuXG4gIEluY2x1ZGVzOlxuICAgLSBUZXh0IGZpZWxkc1xuICAgLSBUZXh0IGFyZWFzXG4gICAtIFNlbGVjdCBtZW51c1xuICAgLSBDaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zXG4gICAtIFJhbmdlIHNsaWRlclxuICAgLSBQcm9ncmVzcyBiYXJzIGFuZCBtZXRlcnNcbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gRm9ybXNcbi8vIEJhc2ljIGZvcm0gdmFyaWFibGVzXG4kZm9ybS1mb250c2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRmb3JtLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8gVGV4dCBmaWVsZHNcbiRpbnB1dC1jb2xvcjogIzAwMCAhZGVmYXVsdDtcbiRpbnB1dC1jb2xvci1ob3ZlcjogJGlucHV0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWNvbG9yLWZvY3VzOiAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRpbnB1dC1iYWNrZ3JvdW5kLWhvdmVyOiAkaW5wdXQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkaW5wdXQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiBzbWFydHNjYWxlKCRpbnB1dC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAjY2NjICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1ob3ZlcjogMXB4IHNvbGlkICNiYmIgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgIzk5OSAhZGVmYXVsdDtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLyBTZWxlY3QgbWVudXNcbiRzZWxlY3QtY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4kc2VsZWN0LWJhY2tncm91bmQ6ICNmYWZhZmEgIWRlZmF1bHQ7XG4kc2VsZWN0LWJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJHNlbGVjdC1iYWNrZ3JvdW5kLCA0JSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWFycm93OiB0cnVlICFkZWZhdWx0O1xuJHNlbGVjdC1hcnJvdy1jb2xvcjogJHNlbGVjdC1jb2xvciAhZGVmYXVsdDtcblxuLy8gTGFiZWxzXG4kZm9ybS1sYWJlbC1mb250c2l6ZTogMC45cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbWFyZ2luOiAwLjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1jb2xvcjogIzMzMyAhZGVmYXVsdDtcblxuLy8gSW5saW5lIGxhYmVsc1xuJGlubGluZWxhYmVsLWNvbG9yOiAjMzMzICFkZWZhdWx0O1xuJGlubGluZWxhYmVsLWJhY2tncm91bmQ6ICNlZWUgIWRlZmF1bHQ7XG4kaW5saW5lbGFiZWwtYm9yZGVyOiAkaW5wdXQtYm9yZGVyICFkZWZhdWx0O1xuXG4vLyBSYW5nZSBzbGlkZXJcbiRzbGlkZXItYmFja2dyb3VuZDogI2RkZCAhZGVmYXVsdDtcbiRzbGlkZXItaGVpZ2h0OiAxcmVtICFkZWZhdWx0O1xuJHNsaWRlci1yYWRpdXM6IDBweCAhZGVmYXVsdDtcbiRzbGlkZXItdGh1bWItaGVpZ2h0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLXRodW1iLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRzbGlkZXItdGh1bWItcmFkaXVzOiAwcHggIWRlZmF1bHQ7XG5cbi8vIFByb2dyZXNzIGFuZCBtZXRlclxuJG1ldGVyLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuJG1ldGVyLWJhY2tncm91bmQ6ICNjY2MgIWRlZmF1bHQ7XG4kbWV0ZXItZmlsbDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbWV0ZXItZmlsbC1oaWdoOiAkc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcbiRtZXRlci1maWxsLW1lZGl1bTogI2U3Y2YwMCAhZGVmYXVsdDtcbiRtZXRlci1maWxsLWxvdzogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuJG1ldGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbi8vL1xuXG4vLyBEaXNhYmxlIE9TLWxldmVsIHN0eWxlc1xuQG1peGluIG5vLWFwcGVhcmFuY2Uge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gVGV4dCBmaWVsZHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbiN7JHRleHQtaW5wdXQtc2VsZWN0b3JzfSB7XG4gICR0b3AtcGFkZGluZzogZ2V0LXNpZGUoJGZvcm0tcGFkZGluZywgdG9wKTtcbiAgJGJvdHRvbS1wYWRkaW5nOiBnZXQtc2lkZSgkZm9ybS1wYWRkaW5nLCBib3R0b20pO1xuICAkaGVpZ2h0OiAoJGZvcm0tZm9udHNpemUgKiAxLjQpICsgJHRvcC1wYWRkaW5nICsgJGJvdHRvbS1wYWRkaW5nO1xuXG4gIEBpbmNsdWRlIG5vLWFwcGVhcmFuY2U7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBwYWRkaW5nOiAkZm9ybS1wYWRkaW5nO1xuICBtYXJnaW46IDAgMCAkZ2xvYmFsLXBhZGRpbmcgMDtcbiAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgZm9udC1zaXplOiAkZm9ybS1mb250c2l6ZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWhvdmVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkaW5wdXQtY29sb3ItaG92ZXI7XG4gIH1cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWJhY2tncm91bmQtZm9jdXM7XG4gICAgY29sb3I6ICRpbnB1dC1jb2xvci1mb2N1cztcbiAgfVxuXG4gIGxhYmVsID4gJiB7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbWFyZ2luO1xuICB9XG59XG5cbi8vIE92ZXJyaWRlIHRoZSBjb250ZW50LWJveCBkZWNsYXJhdGlvbiBzZXQgYnkgTm9ybWFsaXplXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLy8gRGlzYWJsZWQgc3RhdGVcbmlucHV0IHtcbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gICZbcmVhZG9ubHldLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuXG4gICAgJiwgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTGFiZWxzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnRzaXplO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1sYWJlbC1tYXJnaW47XG4gIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvcjtcblxuICA+IGlucHV0LCA+IHRleHRhcmVhIHtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1sYWJlbC1tYXJnaW47XG4gIH1cbn1cblxuLy8gQ2hlY2tib3gvcmFkaW8gYnV0dG9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICB3aWR0aDogMXJlbTtcbiAgaGVpZ2h0OiAxcmVtO1xuXG4gIC8vIElucHV0IGluc2lkZSBvZiBhIGxhYmVsXG4gIGxhYmVsID4gJiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZm9ybS1wYWRkaW5nICogMC41O1xuICB9XG5cbiAgLy8gSW5wdXQgbmV4dCB0byBhIGxhYmVsXG4gICYgKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAkZm9ybS1wYWRkaW5nO1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tcGFkZGluZyAqIDI7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cbn1cblxuLy8gSW5saW5lIGxhYmVsc1xuLy8gSW5saW5lIGxhYmVscyBhbGxvdyB5b3UgdG8gcHJlZml4IG9yIHBvc3RmaXggc3BlY2lhbCBsYWJlbHMgdG8gaW5wdXRzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4uaW5saW5lLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1wYWRkaW5nO1xuXG4gIC8vIEltaXRhdGVzIHRoZSB0b3AgbWFyZ2luIG9uIG5vcm1hbCBpbnB1dHNcbiAgbGFiZWwgPiAmIHtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1sYWJlbC1tYXJnaW47XG4gIH1cblxuICAvLyBJbnB1dHMgc3RyZXRjaCBhbGwgdGhlIHdheSBvdXRcbiAgPiBpbnB1dCwgPiBzZWxlY3Qge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gSW5saW5lIGxhYmVscyBhbmQgYnV0dG9ucyBzaHJpbmtcbiAgPiAuZm9ybS1sYWJlbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYmFja2dyb3VuZDogJGlubGluZWxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbmxpbmVsYWJlbC1jb2xvcjtcbiAgICBib3JkZXI6ICRpbmxpbmVsYWJlbC1ib3JkZXI7XG4gICAgcGFkZGluZzogMCAkZm9ybS1wYWRkaW5nO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6Zmlyc3QtY2hpbGQgeyBib3JkZXItcmlnaHQ6IDA7IH1cbiAgICAmOmxhc3QtY2hpbGQgIHsgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgfVxuICAvLyBCdXR0b25zIGFsc28gc2hyaW5rXG4gID4gYSxcbiAgPiBidXR0b24sXG4gID4gaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbiAgPiBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLy8gVGV4dCBhcmVhc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xufVxuXG4vLyBTZWxlY3QgbWVudXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbnNlbGVjdCB7XG4gICR0b3AtcGFkZGluZzogZ2V0LXNpZGUoJGZvcm0tcGFkZGluZywgdG9wKTtcbiAgJGJvdHRvbS1wYWRkaW5nOiBnZXQtc2lkZSgkZm9ybS1wYWRkaW5nLCBib3R0b20pO1xuICAkaGVpZ2h0OiAoJGZvcm0tZm9udHNpemUgKiAxLjQpICsgJHRvcC1wYWRkaW5nICsgJGJvdHRvbS1wYWRkaW5nO1xuICAkY29sb3I6IGlzaXRsaWdodCgkc2VsZWN0LWJhY2tncm91bmQpO1xuXG4gIEBpbmNsdWRlIG5vLWFwcGVhcmFuY2U7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBwYWRkaW5nOiAkZm9ybS1wYWRkaW5nO1xuICBtYXJnaW46IDAgMCAkZ2xvYmFsLXBhZGRpbmcgMDtcbiAgZm9udC1zaXplOiAkZm9ybS1mb250c2l6ZTtcbiAgY29sb3I6ICRzZWxlY3QtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcblxuICBAaWYgJHNlbGVjdC1hcnJvdyB7XG4gICAgYmFja2dyb3VuZDogJHNlbGVjdC1iYWNrZ3JvdW5kIHVybChpbWFnZS10cmlhbmdsZSgkc2VsZWN0LWFycm93LWNvbG9yKSkgcmlnaHQgMTBweCBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxOHB4KSArICRmb3JtLXBhZGRpbmc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZFxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZHJvcGRvd24gYXJyb3cgYWRkZWQgaW4gSUUxMC8xMVxuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFJhbmdlIHNsaWRlclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgJG1hcmdpbjogKCRzbGlkZXItdGh1bWItaGVpZ2h0IC0gJHNsaWRlci1oZWlnaHQpIC8gMjtcblxuICBAaW5jbHVkZSBuby1hcHBlYXJhbmNlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tdG9wOiAkbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xuICBib3JkZXI6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIEBpZiBoYXN2YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIENocm9tZS9TYWZhcmlcbiAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xuICB9XG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci10aHVtYi1jb2xvcjtcbiAgICB3aWR0aDogJHNsaWRlci10aHVtYi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLXRodW1iLWhlaWdodDtcbiAgICBtYXJnaW4tdG9wOiAtJG1hcmdpbjtcbiAgICBAaWYgaGFzdmFsdWUoJHNsaWRlci10aHVtYi1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItdGh1bWItcmFkaXVzO1xuICAgIH1cbiAgfVxuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gIH1cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItdGh1bWItY29sb3I7XG4gICAgd2lkdGg6ICRzbGlkZXItdGh1bWItaGVpZ2h0O1xuICAgIGhlaWdodDogJHNsaWRlci10aHVtYi1oZWlnaHQ7XG4gICAgbWFyZ2luLXRvcDogLSRtYXJnaW47XG4gICAgQGlmIGhhc3ZhbHVlKCRzbGlkZXItdGh1bWItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXRodW1iLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcbiAgJjo6LW1zLXRyYWNrIHtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJvcmRlci10b3A6ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcbiAgICBib3JkZXItYm90dG9tOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XG4gIH1cbiAgJjo6LW1zLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLXRodW1iLWNvbG9yO1xuICAgIHdpZHRoOiAkc2xpZGVyLXRodW1iLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItdGh1bWItaGVpZ2h0O1xuICAgIGJvcmRlcjogMDtcbiAgICBAaWYgaGFzdmFsdWUoJHNsaWRlci10aHVtYi1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItdGh1bWItcmFkaXVzO1xuICAgIH1cbiAgfVxuICAmOjotbXMtZmlsbC1sb3dlciwgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgfVxufVxub3V0cHV0IHtcbiAgbGluZS1oZWlnaHQ6ICRzbGlkZXItdGh1bWItaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG5cbi8vIE51bWJlciBpbnB1dHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcblxuICB9XG4gICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxufVxuXG4vLyBQcm9ncmVzcyBhbmQgbWV0ZXJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbnByb2dyZXNzLCBtZXRlciB7XG4gIEBpbmNsdWRlIG5vLWFwcGVhcmFuY2U7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkbWV0ZXItaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gIEBpZiBoYXN2YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgfVxuXG4gIC8vIEZvciBGaXJlZm94XG4gIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuICBib3JkZXI6IDA7XG59XG5cbnByb2dyZXNzIHtcbiAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1iYWNrZ3JvdW5kO1xuICAgIEBpZiBoYXN2YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgIH1cbiAgfVxuICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbDtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsO1xuICAgIEBpZiBoYXN2YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gKGhpZ2g6ICRtZXRlci1maWxsLWhpZ2gsIG1lZGl1bTogJG1ldGVyLWZpbGwtbWVkaXVtLCBsb3c6ICRtZXRlci1maWxsLWxvdykge1xuICAgICYuI3skbmFtZX0ge1xuICAgICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgIH1cbiAgICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxubWV0ZXIge1xuICAvLyBDaHJvbWUvU2FmYXJpXG4gICY6Oi13ZWJraXQtbWV0ZXItYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItYmFja2dyb3VuZDtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LXdlYmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1oaWdoO1xuICAgIEBpZiBoYXN2YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgIH1cbiAgfVxuICAmOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjo6LXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbG93O1xuICAgIEBpZiBoYXN2YWx1ZSgkbWV0ZXItcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAkbWV0ZXItcmFkaXVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpcmVmb3hcbiAgYmFja2dyb3VuZDogJG1ldGVyLWJhY2tncm91bmQ7XG4gICY6Oi1tb3otbWV0ZXItYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBAaWYgaGFzdmFsdWUoJG1ldGVyLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG1ldGVyLXJhZGl1cztcbiAgICB9XG4gIH1cbiAgJjotbW96LW1ldGVyLW9wdGltdW06Oi1tb3otbWV0ZXItYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiAkbWV0ZXItZmlsbC1oaWdoO1xuICB9XG4gICY6LW1vei1tZXRlci1zdWItb3B0aW11bTo6LW1vei1tZXRlci1iYXIge1xuICAgIGJhY2tncm91bmQ6ICRtZXRlci1maWxsLW1lZGl1bTtcbiAgfVxuICAmOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhciB7XG4gICAgYmFja2dyb3VuZDogJG1ldGVyLWZpbGwtbG93O1xuICB9XG59XG4iLCIvKlxuICBUWVBPR1JBUEhZXG4gIC0tLS0tLS0tLS1cblxuICBJbmNsdWRlcyB0eXBvZ3JhcGhpYyByZXNldHMgZm9yIG1hbnkgY29tbW9uIGVsZW1lbnRzLCBhbmQgYSBmZXcgaGVscGVyIGNsYXNzZXMuXG4gICAtIEhlYWRlcnNcbiAgIC0gU3ViaGVhZGVyc1xuICAgLSBMZWFkIHBhcmFncmFwaHNcbiAgIC0gT3JkZXJlZC91bm9yZGVyZWQgbGlzdHNcbiAgIC0gQ29kZSBzYW1wbGVzXG4gICAtIEFuY2hvcnNcbiAgIC0gRGl2aWRlcnNcbiAgIC0gQmxvY2txdW90ZXNcbiAgIC0gQWNyb255bXNcbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gVHlwb2dyYXBoeVxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc3R5bGVzXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3I6ICMyMjIgIWRlZmF1bHQ7XG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDM3KSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI3KSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDIzKSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbiRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4kc21hbGwtZm9udC1zaXplOiA2MCUgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzUgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4kY29kZS1jb2xvcjogZ3JheXNjYWxlKCRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtZmFtaWx5OiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGNvZGUtYmFja2dyb3VuZC1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNzAlKSAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY29kZS1iYWNrZ3JvdW5kLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTAlKSAhZGVmYXVsdDtcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIpIHJlbS1jYWxjKDUpIHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYW5jaG9yc1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XG4kaHItYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kaHItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRoci1ib3JkZXItY29sb3I6ICNkZGQgIWRlZmF1bHQ7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xuJGxpc3QtZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kbGlzdC1mb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICFkZWZhdWx0O1xuJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luOiAxLjRyZW0gIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ6IDAgIWRlZmF1bHQ7XG4kbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTogLjNyZW0gIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGJsb2NrcXVvdGVzXG4kYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgI2RkZCAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMjMlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBBY3JvbnltIHN0eWxlc1xuJGFjcm9ueW0tdW5kZXJsaW5lOiAxcHggZG90dGVkICNkZGQgIWRlZmF1bHQ7XG4vLy9cblxuQG1peGluIGxlYWQge1xuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1peGluIHN1YmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci10b3AtbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5cbkBpbmNsdWRlIGV4cG9ydHModHlwb2dyYXBoeSkge1xuICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46MDtcbiAgICBwYWRkaW5nOjA7XG4gIH1cblxuICAvKiBEZWZhdWx0IExpbmsgU3R5bGVzICovXG4gIGEge1xuICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICZbdWktc3JlZl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgIFx0dGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcgeyBib3JkZXI6bm9uZTsgfVxuICB9XG5cbiAgLyogRGVmYXVsdCBwYXJhZ3JhcGggc3R5bGVzICovXG4gIHAge1xuICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xuXG4gICAgJi5sZWFkIHsgQGluY2x1ZGUgbGVhZDsgfVxuXG4gICAgJiBhc2lkZSB7XG4gICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ7XG4gICAgICBmb250LXN0eWxlOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU7XG4gICAgfVxuICB9XG5cbiAgLyogRGVmYXVsdCBoZWFkZXIgc3R5bGVzICovXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBjb2xvcjogJGhlYWRlci1mb250LWNvbG9yO1xuICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgIG1hcmdpbi10b3A6ICRoZWFkZXItdG9wLW1hcmdpbjtcbiAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XG5cbiAgICBzbWFsbCB7XG4gICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZSAtICRoMS1mb250LXJlZHVjdGlvbjsgfVxuICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxuICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtICRoMy1mb250LXJlZHVjdGlvbjsgfVxuICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZSAtICRoNC1mb250LXJlZHVjdGlvbjsgfVxuICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxuICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZSAtICRoNi1mb250LXJlZHVjdGlvbjsgfVxuXG4gIC5zdWJoZWFkZXIgeyBAaW5jbHVkZSBzdWJoZWFkZXI7IH1cblxuICBociB7XG4gICAgYm9yZGVyOiAkaHItYm9yZGVyLXN0eWxlICRoci1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAkaHItYm9yZGVyLXdpZHRoIDAgMDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW4gMCAoJGhyLW1hcmdpbiAtIHJlbS1jYWxjKCRoci1ib3JkZXItd2lkdGgpKTtcbiAgICBoZWlnaHQ6IDA7XG4gIH1cblxuICAvKiBIZWxwZnVsIFR5cG9ncmFwaHkgRGVmYXVsdHMgKi9cbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICBjb2RlIHtcbiAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XG4gICAgYm9yZGVyLXN0eWxlOiAkY29kZS1ib3JkZXItc3R5bGU7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29kZS1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgfVxuXG4gIC8qIExpc3RzICovXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIGZvbnQtc2l6ZTogJGxpc3QtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5lLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGZvbnQtZmFtaWx5OiAkbGlzdC1mb250LWZhbWlseTtcbiAgfVxuXG4gIC8qIExpc3RzICovXG4gIHVsLCBvbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpIHtcbiAgICAgIHVsLFxuICAgICAgb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBMaXN0cyB3aXRob3V0IGJ1bGxldHMgKi9cbiAgdWwubm8tYnVsbGV0IHtcbiAgICAmLCBsaSB1bCwgbGkgb2wge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0O1xuICB9XG5cbiAgLyogRGVmaW5pdGlvbiBMaXN0cyAqL1xuICBkbCB7XG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ7XG4gICAgfVxuICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOyB9XG4gIH1cblxuICAvKiBBYmJyZXZpYXRpb25zICovXG4gIGFiYnIsXG4gIGFjcm9ueW0ge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFjcm9ueW0tdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgfVxuICBhYmJyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8qIEJsb2NrcXVvdGVzICovXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci1sZWZ0OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICBjaXRlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuICAgICAgfVxuXG4gICAgICBhLFxuICAgICAgYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYmxvY2txdW90ZSxcbiAgYmxvY2txdW90ZSBwIHtcbiAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogJGJsb2NrcXVvdGUtZm9udC1jb2xvcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgaDEsaDIsaDMsaDQsaDUsaDYgeyBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDsgfVxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XG4gICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemU7IH1cbiAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTsgfVxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XG4gICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemU7IH1cbiAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTsgfVxuICB9XG59XG4iLCIvLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEJ1dHRvbiBHcm91cFxuJGJ0bmdyb3VwLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ0bmdyb3VwLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJGJ0bmdyb3VwLXJhZGl1czogJGJ1dHRvbi1yYWRpdXMgIWRlZmF1bHQ7XG4vLy9cblxuJGNoaWxkLXNlbGVjdG9yczogJz4gYSwgPiBsYWJlbCwgPiBidXR0b24nO1xuXG4lYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBib3JkZXItcmFkaXVzOiAkYnRuZ3JvdXAtcmFkaXVzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6ICRidXR0b24tZm9udC1zaXplO1xuXG4gID4gbGkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG4gICAgLy8gTGlua3MgYmVjb21lIGJ1dHRvbnNcbiAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcbiAgICAgIEBleHRlbmQgJWJ1dHRvbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgPiBpbnB1dCArIGxhYmVsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAvLyBBZGQgYm9yZGVycyBiZXR3ZWVuIGl0ZW1zXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICN7JGNoaWxkLXNlbGVjdG9yc30ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBzY2FsZS1jb2xvcigkYnRuZ3JvdXAtYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTI1JSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIHVzaW5nKGljb25pYykge1xuICAgIC5pY29uaWMge1xuICAgICAgd2lkdGg6IDFlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xuICAgICAgbWFyZ2luLXRvcDogLTJweDsgLy8gVGhlIGljb25zIGFyZSBvZGRseSBtaXNhbGlnbmVkXG4gICAgfVxuICB9XG59XG5cbiVidXR0b24tZ3JvdXAtc2VnbWVudGVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQgY29sb3I7XG5cbiAgPiBsaSB7XG4gICAgLy8gSGlkZSB0aGUgcmFkaW8gYnV0dG9uXG4gICAgPiBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogLTk5OTlweDtcbiAgICB9XG4gICAgLy8gVGhpcyBpcyB0aGUgYnV0dG9uXG4gICAgI3skY2hpbGQtc2VsZWN0b3JzfSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ncm91cC1zaXplKCRzaXplOiBtZWRpdW0sICRleHBhbmQ6IGZhbHNlKSB7XG4gICRzaXplOiAkYnV0dG9uLWZvbnQtc2l6ZSAqIG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgJHNpemUpO1xuICBmb250LXNpemU6ICRzaXplO1xuXG4gIEBpZiAkZXhwYW5kIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kO1xuICB9XG59XG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZCgkc3RyZXRjaDogdHJ1ZSkge1xuICBkaXNwbGF5OiBpZigkc3RyZXRjaCwgZmxleCwgaW5saW5lLWZsZXgpO1xuXG4gID4gbGkge1xuICAgIGZsZXg6IGlmKCRzdHJldGNoLCAxLCAwIDAgYXV0byk7XG5cbiAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcbiAgICAgIEBpZiAkc3RyZXRjaCB7IEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7IH1cbiAgICB9XG4gIH1cbn1cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3R5bGUoXG4gICRzZWdtZW50ZWQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IsXG4gICRjb2xvcjogYXV0b1xuKSB7XG5cbiAgQGlmIG5vdCgkc2VnbWVudGVkKSB7XG4gICAgPiBsaSB7XG4gICAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCBhdXRvLCAkY29sb3IpO1xuICAgICAgICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgICAgIH1cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgI3skY2hpbGQtc2VsZWN0b3JzfSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAZXh0ZW5kICVidXR0b24tZ3JvdXAtc2VnbWVudGVkO1xuICAgICRob3Zlci1jb2xvcjogcmdiYSgkYmFja2dyb3VuZCwgMC4yNSk7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgID4gbGkge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgYnV0dG9uXG4gICAgICAjeyRjaGlsZC1zZWxlY3RvcnN9IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC8vIFRoaXMgaXMgdGhlIGJ1dHRvbiBiZWluZyBob3ZlcmVkIG9uXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgdXNpbmcoaWNvbmljKSB7XG4gICAgICAgICAgLmljb25pYyB7IEBpbmNsdWRlIGNvbG9yLWljb24oJGJhY2tncm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBpcyB0aGUgYnV0dG9uIHdoZW4gaXQncyBhY3RpdmVcbiAgICAgICYuaXMtYWN0aXZlID4gYSxcbiAgICAgID4gaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgJiwgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgdXNpbmcoaWNvbmljKSB7XG4gICAgICAgICAgLmljb25pYyB7IEBpbmNsdWRlIGNvbG9yLWljb24oaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKSk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkc2VnbWVudGVkOiBmYWxzZSxcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcixcbiAgJGNvbG9yOiAjZmZmXG4pIHtcbiAgQGV4dGVuZCAlYnV0dG9uLWdyb3VwO1xuICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kKCRleHBhbmQpO1xuICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHNlZ21lbnRlZCwgJGJhY2tncm91bmQsICRjb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6ICRidG5ncm91cC1yYWRpdXM7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoYnV0dG9uLWdyb3VwKSB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIENvbG9yc1xuICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKGZhbHNlLCAkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKGZhbHNlLCAkc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZShmYWxzZSwgJHdhcm5pbmctY29sb3IpOyB9XG4gICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoZmFsc2UsICRhbGVydC1jb2xvcik7IH1cblxuICAgIC8vIEluZGl2aWR1YWwgY29sb3JzXG4gICAgPiBsaSB7XG4gICAgICAmLnNlY29uZGFyeSB7ICN7JGNoaWxkLXNlbGVjdG9yc30geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHNlY29uZGFyeS1jb2xvciwgYXV0bywgJGJ0bmdyb3VwOiB0cnVlKTsgfSB9XG4gICAgICAmLnN1Y2Nlc3MgICB7ICN7JGNoaWxkLXNlbGVjdG9yc30geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHN1Y2Nlc3MtY29sb3IsIGF1dG8sICRidG5ncm91cDogdHJ1ZSk7IH0gfVxuICAgICAgJi53YXJuaW5nICAgeyAjeyRjaGlsZC1zZWxlY3RvcnN9IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCR3YXJuaW5nLWNvbG9yLCBhdXRvLCAkYnRuZ3JvdXA6IHRydWUpOyB9IH1cbiAgICAgICYuYWxlcnQgICAgIHsgI3skY2hpbGQtc2VsZWN0b3JzfSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYWxlcnQtY29sb3IsIGF1dG8sICRidG5ncm91cDogdHJ1ZSk7IH0gfVxuICAgIH1cblxuICAgIC8vIFNlZ21lbnRlZFxuICAgICYuc2VnbWVudGVkIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKHRydWUpO1xuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUodHJ1ZSwgJHNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKHRydWUsICRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUodHJ1ZSwgJHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSh0cnVlLCAkYWxlcnQtY29sb3IpOyB9XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nXG4gICAgJi50aW55ICAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc2l6ZSh0aW55KTsgfVxuICAgICYuc21hbGwgICAgIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXNpemUoc21hbGwpOyB9XG4gICAgJi5sYXJnZSAgICAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc2l6ZShsYXJnZSk7IH1cbiAgICAmLmV4cGFuZCAgICB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1leHBhbmQ7IH1cblxuICAgIC8vIERpc2FibGVkXG4gICAgbGkuZGlzYWJsZWQge1xuICAgICAgI3skY2hpbGQtc2VsZWN0b3JzfSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBpbmxpbmUtbGlzdCgkYWxpZ25tZW50KXtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHR0ZXh0LWFsaWduOiAkYWxpZ25tZW50O1xuXHRsaSwgZHQsIGRkIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLWxlZnQ6IC0ycHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAtMnB4O1xuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMobGlzdCkge1xuICAuaW5saW5lLWxpc3Qge1xuICAgIEBpbmNsdWRlIGlubGluZS1saXN0KGxlZnQpO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLypcbiAgTUVOVSBCQVJcbiAgLS0tLS0tLS1cblxuICBBIGdlbmVyaWMsIGZsZXhpYmxlIG1lbnUgY29tcG9uZW50LlxuXG4gIEZlYXR1cmVzOlxuICAgLSBPcmllbnQgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5XG4gICAgIC0gQ2hhbmdlIG9yaWVudGF0aW9uIGF0IGNlcnRhaW4gYnJlYWtwb2ludHNcbiAgIC0gSXRlbXMgd2l0aCBpY29ucyBhYm92ZSwgYmVsb3csIG9yIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0XG4gICAtIFRleHQgbGFiZWxzIGZvciB2ZXJ0aWNhbCBtZW51cyBhbmQgYmFkZ2VzIGZvciBob3Jpem9udGFsIG1lbnVzXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIE1lbnUgQmFyXG4kbWVudWJhci1mb250c2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRtZW51YmFyLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kbWVudWJhci1iYWNrZ3JvdW5kLWhvdmVyOiBzbWFydHNjYWxlKCRtZW51YmFyLWJhY2tncm91bmQsIDclKSAhZGVmYXVsdDtcbiRtZW51YmFyLWJhY2tncm91bmQtYWN0aXZlOiAkbWVudWJhci1iYWNrZ3JvdW5kLWhvdmVyO1xuJG1lbnViYXItY29sb3I6IGlzaXRsaWdodCgkbWVudWJhci1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcbiRtZW51YmFyLWNvbG9yLWhvdmVyOiAkbWVudWJhci1jb2xvciAhZGVmYXVsdDtcbiRtZW51YmFyLWNvbG9yLWFjdGl2ZTogJG1lbnViYXItY29sb3ItaG92ZXI7XG5cbiRtZW51YmFyLWl0ZW0tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuJG1lbnViYXItaWNvbi1zaXplOiAyNXB4ICFkZWZhdWx0O1xuJG1lbnViYXItaWNvbi1zcGFjaW5nOiAkbWVudWJhci1pdGVtLXBhZGRpbmcgIWRlZmF1bHQ7XG4vLy9cblxuLy8gTWVudSBiYXIgY29udGFpbmVyXG4lbWVudS1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgLy8gTWVudSBpdGVtXG4gID4gbGkge1xuICAgIC8vIFRoaXMgZmxleCBzZXR0aW5nIG1ha2VzIGVhY2ggaXRlbSBhbiBlcXVhbCB3aWR0aFxuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvLyBMaW5rIGluc2lkZSBtZW51IGl0ZW1cbiAgICA+IGEge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAkbWVudWJhci1pdGVtLXBhZGRpbmc7XG4gICAgICBmb250LXNpemU6ICRtZW51YmFyLWZvbnRzaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LWJhci1sYXlvdXQgKFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzdHJldGNoOiB0cnVlXG4pIHtcbiAgLypcbiAgICBPcmllbnRhdGlvblxuICAqL1xuICBAaWYgJG9yaWVudGF0aW9uID09IGhvcml6b250YWwge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgPiBsaSA+IGEge1xuICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIFN0cmV0Y2hcbiAgKi9cbiAgPiBsaSB7XG4gICAgQGlmICRzdHJldGNoID09IGZhbHNlIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS1iYXItc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkbWVudWJhci1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJG1lbnViYXItYmFja2dyb3VuZC1ob3ZlcixcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkbWVudWJhci1iYWNrZ3JvdW5kLWFjdGl2ZSxcbiAgJGNvbG9yOiAkbWVudWJhci1jb2xvcixcbiAgJGNvbG9yLWhvdmVyOiAkbWVudWJhci1jb2xvci1ob3ZlcixcbiAgJGNvbG9yLWFjdGl2ZTogJG1lbnViYXItY29sb3ItYWN0aXZlLFxuICAkYXV0b2NvbG9yOiBmYWxzZVxuKSB7XG4gIC8vIEF1dG9jb2xvcmluZ1xuICBAaWYgKCRhdXRvY29sb3IpIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkYmFja2dyb3VuZCwgNyUpO1xuICAgICRiYWNrZ3JvdW5kLWFjdGl2ZTogJGJhY2tncm91bmQtaG92ZXI7XG5cbiAgICAkY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCk7XG4gICAgJGNvbG9yLWhvdmVyOiAkY29sb3I7XG4gICAgJGNvbG9yLWFjdGl2ZTogJGNvbG9yO1xuICB9XG5cbiAgLy8gQ29udGFpbmVyXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEl0ZW1zXG4gID4gbGkgPiBhIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgfVxuICB9XG4gIC5pcy1hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgY29sb3I6ICRjb2xvci1hY3RpdmVcbiAgfVxuXG4gIC8vIEljb25pY1xuICBAaWYgdXNpbmcoaWNvbmljKSB7XG4gICAgLmljb25pYyB7IEBpbmNsdWRlIGNvbG9yLWljb24oJGNvbG9yKTsgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LWJhci1pY29ucyhcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkc2l6ZTogJG1lbnViYXItaWNvbi1zaXplXG4pIHtcbiAgPiBsaSB7XG4gICAgLy8gU2l6aW5nXG4gICAgPiBpbWcsID4gLmljb25pYyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBAaWYgJG1lbnViYXItaWNvbi1zaXplICE9IGZhbHNlIHtcbiAgICAgICAgd2lkdGg6ICRtZW51YmFyLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkbWVudWJhci1pY29uLXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb25cbiAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgPiBhIHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICA+IGltZywgPiAuaWNvbmljIHsgbWFyZ2luOiAwICRtZW51YmFyLWljb24tc3BhY2luZyAwIDA7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgICAgPiBhIHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgICA+IGltZywgPiAuaWNvbmljIHsgbWFyZ2luOiAwIDAgJG1lbnViYXItaWNvbi1zcGFjaW5nIDA7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICA+IGEge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlIG5vd3JhcDtcbiAgICAgICAgPiBpbWcsID4gLmljb25pYyB7IG1hcmdpbjogMCAwIDAgJG1lbnViYXItaWNvbi1zcGFjaW5nOyB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICAgID4gYSB7XG4gICAgICAgIGZsZXgtZmxvdzogY29sdW1uLXJldmVyc2Ugbm93cmFwO1xuICAgICAgICA+IGltZywgPiAuaWNvbmljIHsgbWFyZ2luOiAkbWVudWJhci1pY29uLXNwYWNpbmcgMCAwIDA7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtYmFyLWxhYmVscyhcbiAgJHg6IHJpZ2h0LFxuICAkeTogY2VudGVyLFxuICAkb2Zmc2V0OiAkbWVudWJhci1pdGVtLXBhZGRpbmcsXG4gICRzaXplOiAxLjJyZW0sXG4gICRiYWNrZ3JvdW5kOiByZWQsXG4gICRjb2xvcjogYXV0byxcbiAgJHNlbGVjdG9yOiAnLm1lbnUtYmFyLWxhYmVsJ1xuKSB7XG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgID4gYSB7XG4gICAgICBAaWYgJHggPT0gbGVmdCBvciAkeCA9PSByaWdodCB7XG4gICAgICAgIHBhZGRpbmctI3skeH06ICRzaXplICsgJG9mZnNldCAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRzaXplICogMC43NTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogaWYoJGNvbG9yID09IGF1dG8sIGlzaXRsaWdodCgkYmFja2dyb3VuZCksICRjb2xvcik7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgQGlmICR4ID09IGxlZnQgb3IgJHggPT0gcmlnaHQge1xuICAgICAgI3skeH06ICRvZmZzZXQ7XG4gICAgfVxuXG4gICAgQGlmICR5ID09IHRvcCBvciAkeSA9PSBib3R0b20ge1xuICAgICAgI3skeX06ICRvZmZzZXQ7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbiAgfVxufVxuXG4vKlxuICBTZXQgdGhlIGFsaWdubWVudCBvZiBtZW51IGl0ZW1zIChsaSkgd2l0aGluIGEgbWVudS1iYXJcblxuICBsZWZ0OiBJdGVtcyBhbGlnbiB0byB0aGUgbGVmdC5cbiAgcmlnaHQ6IEl0ZW1zIGFsaWduIHRvIHRoZSByaWdodC5cbiAgY2VudGVyOiBJdGVtcyBhbGlnbiB0byB0aGUgY2VudGVyLlxuICBqdXN0aWZ5OiBJdGVtcyBhcmUgc3BhY2VkIGVxdWFsbHkgYXBhcnQgc28gdGhleSBvY2N1cHkgdGhlIHNwYWNlIG9mIHRoZSBlbnRpcmUgZ3JpZC5cbiAgc3BhY2VkOiBJdGVtcyBhcmUgZ2l2ZW4gZXF1YWwgc3BhY2UgdG8gdGhlaXIgbGVmdCBhbmQgcmlnaHQuXG5cbiAgQGdyb3VwIG1lbnUtYmFyXG5cbiAgQHBhcmFtIHtzdHJpbmd9ICRhbGlnbiAtIEFsaWdubWVudCB0byB1c2UuXG5cbiAgQG91dHB1dCBBbiBhcHByb3ByaWF0ZSBqdXN0aWZ5LWNvbnRlbnQgdmFsdWUuXG4qL1xuQG1peGluIG1lbnUtYmFyLWFsaWduKCRhbGlnbjogbGVmdCkge1xuICAkb3B0aW9uczogKFxuICAgIGxlZnQ6IGZsZXgtc3RhcnQsXG4gICAgcmlnaHQ6IGZsZXgtZW5kLFxuICAgIGNlbnRlcjogY2VudGVyLFxuICAgIGp1c3RpZnk6IHNwYWNlLWJldHdlZW4sXG4gICAgc3BhY2VkOiBzcGFjZS1hcm91bmQsXG4gICk7XG4gIGp1c3RpZnktY29udGVudDogbWFwLWdldCgkb3B0aW9ucywgJGFsaWduKTtcbn1cblxuLypcbiAgQ1NTIG91dHB1dFxuKi9cbkBpbmNsdWRlIGV4cG9ydHMobWVudS1iYXIpIHtcbiAgLm1lbnUtYmFyIHtcbiAgICBAZXh0ZW5kICVtZW51LWJhcjtcbiAgICBAaW5jbHVkZSBtZW51LWJhci1zdHlsZTtcblxuICAgIC8vIFBvc2l0aW9uaW5nXG4gICAgJiwgJi5ob3Jpem9udGFsICB7IEBpbmNsdWRlIG1lbnUtYmFyLWxheW91dChob3Jpem9udGFsKTsgfVxuICAgICYudmVydGljYWwgICAgICAgeyBAaW5jbHVkZSBtZW51LWJhci1sYXlvdXQodmVydGljYWwpOyB9XG5cbiAgICAvLyBDb25kZW5zZWQgYmFyXG4gICAgJi5jb25kZW5zZSB7XG4gICAgICA+IGxpIHsgZmxleDogMCAwIGF1dG87IH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBNZW51IEl0ZW1zXG4gICAgJi5hbGlnbi1yaWdodCAgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24ocmlnaHQpOyB9XG4gICAgJi5hbGlnbi1jZW50ZXIgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24oY2VudGVyKTsgfVxuICAgICYuYWxpZ24tanVzdGlmeSB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKGp1c3RpZnkpOyB9XG4gICAgJi5hbGlnbi1zcGFjZWQgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24oc3BhY2VkKTsgfVxuXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICYuI3skc2l6ZX0tY29uZGVuc2UgeyBsaSB7IGZsZXg6IDAgMCBhdXRvOyB9IH1cbiAgICAgICAgJi4jeyRzaXplfS1leHBhbmQgICB7IGxpIHsgZmxleDogMSAwIGF1dG87IH0gfVxuXG4gICAgICAgIC8vIFJlc3BvbnNpdmUgQWxpZ25tZW50XG4gICAgICAgICYuI3skc2l6ZX0tYWxpZ24tbGVmdCAgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24obGVmdCk7IH1cbiAgICAgICAgJi4jeyRzaXplfS1hbGlnbi1yaWdodCAgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24ocmlnaHQpOyB9XG4gICAgICAgICYuI3skc2l6ZX0tYWxpZ24tY2VudGVyICB7IEBpbmNsdWRlIG1lbnUtYmFyLWFsaWduKGNlbnRlcik7IH1cbiAgICAgICAgJi4jeyRzaXplfS1hbGlnbi1qdXN0aWZ5IHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24oanVzdGlmeSk7IH1cbiAgICAgICAgJi4jeyRzaXplfS1hbGlnbi1zcGFjZWQgIHsgQGluY2x1ZGUgbWVudS1iYXItYWxpZ24oc3BhY2VkKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgcG9zaXRpb25pbmdcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgICBAaW5jbHVkZSBtZW51LWJhci1sYXlvdXQoaG9yaXpvbnRhbCk7XG4gICAgICAgIH1cbiAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgQGluY2x1ZGUgbWVudS1iYXItbGF5b3V0KHZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEljb24gcG9zaXRpb25pbmdcbiAgICAmLCAmLmljb24tdG9wIHsgQGluY2x1ZGUgbWVudS1iYXItaWNvbnModG9wKTsgfVxuICAgICYuaWNvbi1yaWdodCAgeyBAaW5jbHVkZSBtZW51LWJhci1pY29ucyhyaWdodCk7IH1cbiAgICAmLmljb24tYm90dG9tIHsgQGluY2x1ZGUgbWVudS1iYXItaWNvbnMoYm90dG9tKTsgfVxuICAgICYuaWNvbi1sZWZ0ICAgeyBAaW5jbHVkZSBtZW51LWJhci1pY29ucyhsZWZ0KTsgfVxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGVhY2ggJHBvcyBpbiAodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWljb24tI3skcG9zfSB7IEBpbmNsdWRlIG1lbnUtYmFyLWljb25zKCRwb3MpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMYWJlbHNcbiAgICAmLmxhYmVsLXNpZGUgICB7IEBpbmNsdWRlIG1lbnUtYmFyLWxhYmVscyhyaWdodCwgY2VudGVyKTsgfVxuICAgICYubGFiZWwtY29ybmVyIHsgQGluY2x1ZGUgbWVudS1iYXItbGFiZWxzKHJpZ2h0LCB0b3ApOyB9XG5cbiAgICAvLyBDb2xvcmluZ1xuICAgICYucHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWJhci1zdHlsZSgkcHJpbWFyeS1jb2xvciwgJGF1dG9jb2xvcjogdHJ1ZSk7XG4gICAgfVxuICAgICYuZGFyayB7XG4gICAgICBAaW5jbHVkZSBtZW51LWJhci1zdHlsZSgkZGFyay1jb2xvciwgJGF1dG9jb2xvcjogdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gVGl0bGVcbiAgICA+IGxpLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6ICRtZW51YmFyLWl0ZW0tcGFkZGluZztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1lbnUgZ3JvdXBzXG4gIC5tZW51LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICA+IC5tZW51LWdyb3VwLWxlZnQsID4gLm1lbnUtZ3JvdXAtcmlnaHQge1xuICAgICAgZmxleDogMSAxIDEwMCU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lbnUgYmFyIGlzIGNvbmRlbnNlZFxuICAgIC5tZW51LWJhciB7XG4gICAgICA+IGxpIHsgZmxleDogMCAwIGF1dG87IH1cbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvLyBDb2xvcmluZyBjbGFzcyBjYXNjYWRlcyBkb3duIHRvIHRoZSBtZW51IGJhclxuICAgICYucHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIC5tZW51LWJhciB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtYmFyLXN0eWxlKCRwcmltYXJ5LWNvbG9yLCAkYXV0b2NvbG9yOiB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5kYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWNvbG9yO1xuICAgICAgLm1lbnUtYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1iYXItc3R5bGUoJGRhcmstY29sb3IsICRhdXRvY29sb3I6IHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgXCJwYW5lbFwiO1xuXG4vKlxuICBUSEUgR1JJRFxuICAtLS0tLS0tLVxuXG4gIEZvdW5kYXRpb24ncyBtYWdpY2FsLCBmbGV4Ym94LXBvd2VyZWQgZ3JpZC5cblxuICBGZWF0dXJlczpcbiAgIC0gSG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBncmlkc1xuICAgLSBBdXRvLXNpemluZyBvciBwZXJjZW50YWdlIHdpZHRoIGdyaWQgYmxvY2tzXG4gICAtIEluZGVwZW5kZW50bHktc2Nyb2xsYWJsZSBibG9ja3NcbiAgIC0gQ29sdW1uIGFsaWdubWVudFxuICAgLSBTb3VyY2Ugb3JkZXJpbmdcbiAgIC0gT2Zmc2V0c1xuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBHcmlkXG4kY29udGFpbmVyLXdpZHRoOiByZW0tY2FsYyg5MDApICFkZWZhdWx0O1xuJGJsb2NrLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiR0b3RhbC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcbiRibG9jay1ncmlkLW1heC1zaXplOiA2ICFkZWZhdWx0O1xuLy8vXG5cbi8qXG4gIERlZmluZSB0aGUgc2l6ZSBvZiBhIGdyaWQgYmxvY2suIEJsb2NrcyBhcmUgZmxleCBpdGVtcy4gQnkgZGVmYXVsdCwgdGhleSBzdHJldGNoIHRvIGZpbGwgYWxsIGF2YWlsYWJsZSBzcGFjZSwgYmFzZWQgb24gdGhlIHNpemUgb2Ygc2libGluZyBibG9ja3MuIFRoaXMgaXMgdGhlIFwiZXhwYW5kXCIgYmVoYXZpb3IuXG5cbiAgSWYgc2V0IHRvIFwic2hyaW5rXCIsIHRoZSBibG9jayB3aWxsIGNvbnRyYWN0IGFuZCBvbmx5IGZpbGwgYXMgbXVjaCBzcGFjZSBhcyBpdCBuZWVkcyBmb3IgaXRzIGNvbnRlbnQuXG5cbiAgSWYgc2V0IHRvIGEgbnVtYmVyLCB0aGUgYmxvY2sgd2lsbCBiZSBnaXZlbiBhIHBlcmNlbnRhZ2Ugd2lkdGgsIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyAoMTIgYnkgZGVmYXVsdCkuIFBlcmNlbnRhZ2Ugd2lkdGhzIGRvbid0IHdvcmsgaWYgYSBibG9jayBpcyBpbnNpZGUgYSB2ZXJ0aWNhbCBncmlkLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSAkc2l6ZSAtIFNpemluZyBiZWhhdmlvciBvZiB0aGUgYmxvY2suIFNob3VsZCBiZSBleHBhbmQsIHNocmluaywgb3IgYSBudW1iZXIuXG5cbiAgQG91dHB1dCBUaGUgZmxleC1iYXNpcywgZmxleC1ncm93LCBhbmQgZmxleC1zaHJpbmsgcHJvcGVydGllcy5cbiovXG5AbWl4aW4gZ3JpZC1zaXplKCRzaXplOiBleHBhbmQpIHtcbiAgQGlmICh0eXBlLW9mKCRzaXplKSA9PSAnbnVtYmVyJykge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoJHNpemUgLyAkdG90YWwtY29sdW1ucyk7XG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgLy8gbWF4LXdpZHRoIHByZXZlbnRzIGNvbHVtbnMgZnJvbSB3cmFwcGluZyBlYXJseSBpbiBJRTEwLzExXG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG4gIEBlbHNlIGlmICgkc2l6ZSA9PSBzaHJpbmspIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAoJHNpemUgPT0gZXhwYW5kKSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbn1cbi8qXG4gIFNldCB0aGUgb3JpZW50YXRpb24gb2YgYmxvY2tzIHdpdGhpbiB0aGlzIGJsb2NrLiBUaGUgZ3JpZCBpcyByZS1vcmllbnRlZCBieSBjaGFuZ2luZyB0aGUgZmxleCBkaXJlY3Rpb24gb2YgdGhlIGJsb2NrLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtzdHJpbmd9ICRvcmllbnRhdGlvbiAtIERpcmVjdGlvbiBvZiB0aGUgZ3JpZCwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuXG5cbiAgQG91dHB1dCBBIGZsZXgtZmxvdyBwcm9wZXJ0eSB0byBtYXRjaCB0aGUgZGlyZWN0aW9uIGdpdmVuLlxuKi9cbkBtaXhpbiBncmlkLW9yaWVudCgkb3JpZW50YXRpb246IGhvcml6b250YWwpIHtcbiAgQGlmICgkb3JpZW50YXRpb24gPT0gdmVydGljYWwpIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIH1cbn1cbi8qXG4gIFN0cmV0Y2ggYSBncmlkJ3MgY2hpbGQgYmxvY2tzIGFjcm9zcyBpdHMgY3Jvc3MtYXhpcywgbWFraW5nIGV2ZXJ5IGNvbHVtbiBhcHBlYXIgdG8gaGF2ZSB0aGUgc2FtZSBoZWlnaHQuXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAcGFyYW0ge2Jvb2x9ICRzdHJldGNoIC0gU3RyZXRjaCBibG9ja3MgaWYgdHJ1ZSwgb3IgYWxpZ24gYmxvY2tzIHRvIHRvcCBpZiBmYWxzZS5cblxuICBAb3V0cHV0IFNldHMgYWxpZ24taXRlbXMgdG8gXCJzdHJldGNoXCIgaWYgJHN0cmV0Y2ggaXMgdHJ1ZSwgb3IgXCJmbGV4LXN0YXJ0XCIgKHRoZSBkZWZhdWx0IHZhbHVlKSBpZiBmYWxzZS5cbiovXG5AbWl4aW4gZ3JpZC13cmFwKCR3cmFwOiB0cnVlKSB7XG4gIEBpZiAkd3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxufVxuLypcbiAgU2V0IHRoZSBhbGlnbm1lbnQgb2YgYmxvY2tzIHdpdGhpbiBhIGdyaWQuXG5cbiAgbGVmdDogSXRlbXMgYWxpZ24gdG8gdGhlIGxlZnQuXG4gIHJpZ2h0OiBJdGVtcyBhbGlnbiB0byB0aGUgcmlnaHQuXG4gIGNlbnRlcjogSXRlbXMgYWxpZ24gdG8gdGhlIGNlbnRlci5cbiAganVzdGlmeTogSXRlbXMgYXJlIHNwYWNlZCBlcXVhbGx5IGFwYXJ0IHNvIHRoZXkgb2NjdXB5IHRoZSBzcGFjZSBvZiB0aGUgZW50aXJlIGdyaWQuXG4gIHNwYWNlZDogSXRlbXMgYXJlIGdpdmVuIGVxdWFsIHNwYWNlIHRvIHRoZWlyIGxlZnQgYW5kIHJpZ2h0LlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtzdHJpbmd9ICRhbGlnbiAtIEFsaWdubWVudCB0byB1c2UuXG5cbiAgQG91dHB1dCBBbiBhcHByb3ByaWF0ZSBqdXN0aWZ5LWNvbnRlbnQgdmFsdWUuXG4qL1xuQG1peGluIGdyaWQtYWxpZ24oJGFsaWduOiBsZWZ0KSB7XG4gICRvcHRpb25zOiAoXG4gICAgbGVmdDogZmxleC1zdGFydCxcbiAgICByaWdodDogZmxleC1lbmQsXG4gICAgY2VudGVyOiBjZW50ZXIsXG4gICAganVzdGlmeTogc3BhY2UtYmV0d2VlbixcbiAgICBzcGFjZWQ6IHNwYWNlLWFyb3VuZCxcbiAgKTtcbiAganVzdGlmeS1jb250ZW50OiBtYXAtZ2V0KCRvcHRpb25zLCAkYWxpZ24pO1xufVxuLypcbiAgU2V0IHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBibG9jay4gSXRlbXMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdC4gSWYgbXVsdGlwbGUgaXRlbXMgaGF2ZSB0aGUgc2FtZSBudW1iZXIsIHRoZSBvbmUgaW4gdGhlIEhUTUwgZmlyc3Qgd2lsbCBhcHBlYXIgZmlyc3QuXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAcGFyYW0ge251bWJlcn0gJG9yZGVyIC0gUG9zaXRpb24gaW4gc291cmNlIG9yZGVyLlxuXG4gIEBvdXRwdXQgQW4gb3JkZXIgcHJvcGVydHkuXG4qL1xuQG1peGluIGdyaWQtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG4vKlxuICBDb2xsYXBzZSBhIGNvbnRlbnQgYmxvY2sgYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAcGFyYW0ge2Jvb2x9ICRjb2xsYXBzZSAtIENvbGxhcHNlcyB0aGUgYmxvY2sgaWYgdHJ1ZS5cblxuICBAb3V0cHV0IEEgcGFkZGluZyB2YWx1ZS5cblxuICBAdG9kbyBObyB3YXkgdG8gcmV2ZXJzZSBjb2xsYXBzZSB1c2luZyB0aGlzIG1peGluLiBTb2x1dGlvbjpcbiAgICAtIElmIHRydWUsIGFkZCBwYWRkaW5nOiAwO1xuICAgIC0gSWYgZmFsc2UsIGFkZCBwYWRkaW5nOiAxcmVtO1xuICAgIC0gSWYgbnVsbCwgYWRkIG5vdGhpbmcsIHRvIGN1dCBkb3duIG9uIENTUyBvdXRwdXRcbiAgICAtIE1ha2UgbnVsbCB0aGUgZGVmYXVsdCB2YWx1ZVxuKi9cbkBtaXhpbiBncmlkLWNvbGxhcHNlKCRjb2xsYXBzZTogdHJ1ZSkge1xuICBAaWYgKCRjb2xsYXBzZSkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbi8qXG4gIENvbnN0cmFpbiB0aGUgc2l6ZSBvZiBhIGJsb2NrIHRvIHRoZSBzaXplIG9mIHRoZSBhdmVyYWdlIGdyaWQgcm93LCBhbmQgY2VudGVyLWFsaWduIGl0LiBUaGlzIGltaXRhdGVzIHRoZSBiZWhhdmlvciBvZiBvcmRpbmFyeSBGb3VuZGF0aW9uIHJvd3MuXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAcGFyYW0ge2Jvb2x9ICRjb250YWluZXIgLSBBZGRzIGNvbnRhaW5lciBzdHlsZXMgaWYgdHJ1ZS5cblxuICBAb3V0cHV0IEEgbWF4aW11bSB3aWR0aCBhbmQgdGhlIGdvb2Qgb2xkIG1hcmdpbjogMCBhdXRvIGZvciBjZW50ZXIgYWxpZ25tZW50LlxuKi9cbkBtaXhpbiBncmlkLWNvbnRhaW5lcigkd2lkdGg6ICRjb250YWluZXItd2lkdGgsICRhbGlnbjogY2VudGVyKSB7XG4gICRtYXJnaW5zOiAoXG4gICAgbGVmdDogIDAgYXV0byAwIDAsXG4gICAgcmlnaHQ6IDAgMCAwIGF1dG8sXG4gICAgY2VudGVyOiAwIGF1dG8sXG4gICk7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMsICRhbGlnbik7XG59XG4vKlxuICBBZGQgbmVnYXRpdmUgbWFyZ2lucyB0byBhIGJsb2NrLCBlcXVhbCB0byB0aGUgcGFkZGluZyBvZiBhIGNvbnRlbnQgYmxvY2suIFRoaXMgYWxpZ25zIHRoZSBlZGdlcyBvZiBhIGJsb2NrIG5lc3RlZCBpbnNpZGUgYSBjb250ZW50IGJsb2NrLlxuXG4gIEBncm91cCBncmlkXG5cbiAgQHBhcmFtIHtib29sfSAkbmVzdCAtIEFkZHMgbmVnYXRpdmUgbWFyZ2lucyBpZiB0cnVlLlxuXG4gIEBvdXRwdXQgTmVnYXRpdmUgbWFyZ2luIHZhbHVlcy5cbiovXG5AbWl4aW4gZ3JpZC1uZXN0KCRuZXN0OiB0cnVlKSB7XG4gIEBpZiAoJG5lc3QpIHtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgfVxufVxuLypcbiAgT2Zmc2V0IGEgYmxvY2sgYnkgYWRkaW5nIGEgbGVmdCBtYXJnaW4uXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAcGFyYW0ge251bWJlciB8IGJvb2x9ICRvZmZzZXQgLSBJZiBmYWxzZSwgbm90aGluZyBpcyBvdXRwdXQuIElmIGEgbnVtYmVyLCBvZmZzZXRzIHRoZSBjb2x1bW4gYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgY29sdW1ucy5cblxuICBAb3V0cHV0IEEgbGVmdCBtYXJnaW4gYmFzZWQgb24gdGhlIG51bWJlciBvZiBjb2x1bW5zIHNwZWNpZmllZCwgYW5kIHRoZSBnbG9iYWwgbnVtYmVyIG9mIGNvbHVtbnMuXG4qL1xuQG1peGluIGdyaWQtb2Zmc2V0KCRvZmZzZXQ6IGZhbHNlKSB7XG4gIEBpZiAoJG9mZnNldCAhPSBmYWxzZSkge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCRvZmZzZXQgLyAkdG90YWwtY29sdW1ucyk7XG4gIH1cbn1cblxuLypcbiAgUmVzZXRzIHN0eWxlcyBzZXQgYnkgcGFuZWxzLiBVc2UgdGhpcyB3aGVuIGEgcGFuZWwgdHJhbnNmb3JtcyBpbnRvIGEgYmxvY2sgb24gbGFyZ2VyIHNjcmVlbnMuXG5cbiAgQGdyb3VwIGdyaWRcblxuICBAb3V0cHV0IFJlc2V0cyB0byB0cmFuc2Zvcm0sIHBvc2l0aW9uLCBhbmQgYSBmZXcgdmlzdWFsIHN0eWxlcy5cbiovXG5AbWl4aW4gZ3JpZC1wYW5lbC1yZXNldCgpIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG5cbi8qXG4gIEZyYW1lcyBhcmUgY29udGFpbmVycyB0aGF0IHN0cmV0Y2ggdG8gdGhlIGZ1bGwgZGltbWVuc2lvbnMgb2YgdGhlIGJyb3dzZXIgd2luZG93LlxuKi9cbkBtaXhpbiBncmlkLWZyYW1lKCRzaXplOiBleHBhbmQsICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCwgJHdyYXA6IGZhbHNlLCAkYWxpZ246IGxlZnQsICRvcmRlcjogMCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBncmlkLXNpemUoJHNpemUpO1xuICBAaW5jbHVkZSBncmlkLW9yaWVudCgkb3JpZW50YXRpb24pO1xuICBAaW5jbHVkZSBncmlkLXdyYXAoJHdyYXApO1xuICBAaW5jbHVkZSBncmlkLWFsaWduKCRhbGlnbik7XG4gIEBpbmNsdWRlIGdyaWQtb3JkZXIoJG9yZGVyKTtcbn1cblxuLypcbiAgR3JvdXBzIGFyZSBjb2xsZWN0aW9ucyBvZiBjb250ZW50IGl0ZW1zLiBUaGV5J3JlIHRoZSBcInJvd3NcIiBvZiBGb3VuZGF0aW9uIGZvciBBcHBzLlxuKi9cbkBtaXhpbiBncmlkLWJsb2NrKCRzaXplOiBleHBhbmQsICRvcmllbnRhdGlvbjogaG9yaXpvbnRhbCwgJHdyYXA6IGZhbHNlLCAkYWxpZ246IGxlZnQsICRvcmRlcjogMCkge1xuICBAaW5jbHVkZSBncmlkLWZyYW1lKCRzaXplLCAkb3JpZW50YXRpb24sICR3cmFwLCAkYWxpZ24sICRvcmRlcik7XG5cbiAgLy8gUmVzZXQgdGhlIGhlaWdodCB1c2VkIGJ5IGZyYW1lc1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgLy8gQmxvY2tzIHdpbGwgc2Nyb2xsIGJ5IGRlZmF1bHQgaWYgdGhlaXIgY29udGVudCBvdmVyZmxvd3NcbiAgQGlmICgkb3JpZW50YXRpb24gPT0gdmVydGljYWwpIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgLy8gQWRkIHNjcm9sbGluZyB3aXRoIGluZXJ0aWFcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbn1cblxuLypcbiAgQmxvY2tzIGFyZSBjb250YWluZXJzIGZvciBhY3R1YWwgY29udGVudC4gVGhleSdyZSB0aGUgXCJjb2x1bW5zXCIgb2YgRm91bmRhdGlvbiBmb3IgQXBwcy5cbiovXG5AbWl4aW4gZ3JpZC1jb250ZW50KCRzaXplOiBleHBhbmQsICRvZmZzZXQ6IG51bGwsICRvcmRlcjogbnVsbCkge1xuICAvLyBDb250ZW50IGJsb2NrcyBhcmUgbm90IGZsZXggaXRlbXMgYW5kIGhhdmUgcGFkZGluZ1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMCAkYmxvY2stcGFkZGluZztcblxuICAvLyBBZGQgc2Nyb2xsaW5nIHdpdGggaW5lcnRpYVxuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuXG4gIEBpbmNsdWRlIGdyaWQtc2l6ZSgkc2l6ZSk7XG4gIEBpZiAkb2Zmc2V0ICE9IG51bGwgeyBAaW5jbHVkZSBncmlkLW9mZnNldCgkb2Zmc2V0KTsgfVxuICBAaWYgJG9yZGVyICE9IG51bGwgIHsgQGluY2x1ZGUgZ3JpZC1vcmRlcigkb3JkZXIpOyB9XG59XG5cbkBtaXhpbiBncmlkLWxheW91dCgkdXApIHtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICA+IGxpLCA+IGRpdiwgPiBzZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbTtcbiAgICBmbGV4OiAwIDAgcGVyY2VudGFnZSgxIC8gJHVwKTtcbiAgfVxufVxuXG4vLyBDU1MgT3V0cHV0XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gU2hhcmVkIHN0eWxlcyBmb3IgZnJhbWVzIGFuZCBibG9ja3MgKHBhcmVudCBlbGVtZW50cylcbiVibG9jay1jb3JlIHtcbiAgLy8gQ2hhbmdlIHRoZSBkaXJlY3Rpb24gY2hpbGRyZW4gZmxvd1xuICAmLnZlcnRpY2FsIHsgQGluY2x1ZGUgZ3JpZC1vcmllbnQodmVydGljYWwpOyB9XG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICYuI3skc2l6ZX0tdmVydGljYWwgICB7IEBpbmNsdWRlIGdyaWQtb3JpZW50KHZlcnRpY2FsKTsgfVxuICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHsgQGluY2x1ZGUgZ3JpZC1vcmllbnQoaG9yaXpvbnRhbCk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBBbGlnbiB0aGUgY2hpbGRyZW4gb2YgYSBncmlkIGJsb2NrXG4gICYuYWxpZ24tcmlnaHQgICB7IEBpbmNsdWRlIGdyaWQtYWxpZ24ocmlnaHQpOyB9XG4gICYuYWxpZ24tY2VudGVyICB7IEBpbmNsdWRlIGdyaWQtYWxpZ24oY2VudGVyKTsgfVxuICAmLmFsaWduLWp1c3RpZnkgeyBAaW5jbHVkZSBncmlkLWFsaWduKGp1c3RpZnkpOyB9XG4gICYuYWxpZ24tc3BhY2VkICB7IEBpbmNsdWRlIGdyaWQtYWxpZ24oc3BhY2VkKTsgfVxuXG4gIC8vIEFsbG93IGNoaWxkIGVsZW1lbnRzIHRvIHdyYXBcbiAgJi53cmFwIHsgQGluY2x1ZGUgZ3JpZC13cmFwKHRydWUpOyB9XG59XG5cbi8vIFNoYXJlZCBzdHlsZXMgZm9yIGJsb2NrcyBhbmQgY29udGVudCBibG9ja3MgKGNoaWxkIGVsZW1lbnRzKVxuJWNoaWxkLWNvcmUge1xuICAvLyBTaHJpbmsgYSBmbGV4IGl0ZW0gc28gaXQgb25seSB0YWtlcyB1cCB0aGUgc3BhY2UgaXQgbmVlZHNcbiAgJi5zaHJpbmsgeyBAaW5jbHVkZSBncmlkLXNpemUoc2hyaW5rKTsgfVxuXG4gIC8vIFByZXZlbnQgYW4gZWxlbWVudCBmcm9tIHNjcm9sbGluZ1xuICAmLm5vc2Nyb2xsIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKGdyaWQpIHtcbiAgLy8gVGhlIGNvcmUgZ3JpZCBlbGVtZW50czpcbiAgLy8gIC0gRnJhbWVcbiAgLy8gIC0gQmxvY2tcbiAgLy8gIC0gQ29udGVudCBibG9ja1xuICAvLyAgLSBDb250YWluZXJcbiAgLmdyaWQtZnJhbWUge1xuICAgIEBleHRlbmQgJWJsb2NrLWNvcmU7XG4gICAgQGluY2x1ZGUgZ3JpZC1mcmFtZTtcbiAgfVxuICAuZ3JpZC1ibG9jayB7XG4gICAgQGV4dGVuZCAlYmxvY2stY29yZTtcbiAgICBAZXh0ZW5kICVjaGlsZC1jb3JlO1xuICAgIEBpbmNsdWRlIGdyaWQtYmxvY2s7XG4gIH1cbiAgLmdyaWQtY29udGVudCB7XG4gICAgQGV4dGVuZCAlY2hpbGQtY29yZTtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRlbnQ7XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gR3JpZHMgaW5zaWRlIGNvbnRlbnQgYmxvY2tzIHNob3VsZCB3cmFwIGJ5IGRlZmF1bHQsIHNvIHRoZXkgbWltaWMgdHJhZGl0aW9uYWwgZmxvYXQgZ3JpZHNcbiAgICAuZ3JpZC1ibG9jayB7XG4gICAgICBtYXJnaW4tbGVmdDogLSgkYmxvY2stcGFkZGluZyk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0oJGJsb2NrLXBhZGRpbmcpO1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgIC8vIFJldmVyc2UgdGhlIGFib3ZlIHdyYXBwaW5nIGJlaGF2aW9yXG4gICAgICAmLm5vd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtd3JhcChmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIC5ncmlkLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmdyaWQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRhaW5lcjtcblxuICAgICYuY29udGFpbi1sZWZ0ICB7IEBpbmNsdWRlIGdyaWQtY29udGFpbmVyKCRhbGlnbjogbGVmdCk7IH1cbiAgICAmLmNvbnRhaW4tcmlnaHQgeyBAaW5jbHVkZSBncmlkLWNvbnRhaW5lcigkYWxpZ246IHJpZ2h0KTsgfVxuICB9XG5cbiAgLy8gQnJlYWtwb2ludCBjbGFzc2VzIGZvciBibG9ja3NcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgLiN7JHNpemV9LWdyaWQtYmxvY2sge1xuICAgICAgQGV4dGVuZCAlYmxvY2stY29yZTtcbiAgICAgIEBleHRlbmQgJWNoaWxkLWNvcmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1ibG9jaztcblxuICAgICAgICAvLyBPdmVycmlkZSBwYW5lbCBzdHlsZXNcbiAgICAgICAgJi5wYW5lbCB7IEBpbmNsdWRlIGdyaWQtcGFuZWwtcmVzZXQ7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgLiN7JHNpemV9LWdyaWQtY29udGVudCB7XG4gICAgICBAZXh0ZW5kICVjaGlsZC1jb3JlO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29udGVudDtcblxuICAgICAgICAvLyBPdmVycmlkZSBwYW5lbCBzdHlsZXNcbiAgICAgICAgJi5wYW5lbCB7IEBpbmNsdWRlIGdyaWQtcGFuZWwtcmVzZXQ7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgYW5kIG9yZGVyaW5nIGNsYXNzZXNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgLm9yZGVyLSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1vcmRlcigkaSk7IH1cbiAgfVxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgLy8gQmxvY2sgc2l6aW5nXG4gICAgICAgIC4jeyRzaXplfS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1zaXplKCRpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTb3VyY2Ugb3JkZXJpbmdcbiAgICAgICAgLiN7JHNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLW9yZGVyKCRpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBPZmZzZXRzXG4gICAgICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtb2Zmc2V0KCRpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQYXJlbnQgc2l6aW5nIChibG9jayBncmlkcylcbiAgICAgICAgLiN7JHNpemV9LXVwLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWxheW91dCgkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZ3JpZC1jb250ZW50IC5tb2RhbCAuZ3JpZC1ibG9jayB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8qXG4gIE5PVElGSUNBVElPTlxuICAtLS0tLS0tLS0tLS1cblxuICBBbiBhbGVydCB0aGF0IHBpbnMgdG8gdGhlIGNvcm5lciBvZiB0aGUgc2NyZWVuIHdoZW4gdHJpZ2dlcmVkIGJ5IEphdmFTY3JpcHQuIEl0IGNhbiBiZSBzZXQgdG8gZGlzYXBwZWFyIGFmdGVyIGEgY2VydGFpbiBwZXJpb2Qgb2YgdGltZSwgb3IgdG8gc3RheSBwdXQgdW50aWwgdGhlIHVzZXIgY2xpY2tzIG9uIGl0LiBBIGN1c3RvbSBhY3Rpb24gY2FuIGJlIGFzaWduZWQgdG8gYSBub3RpZmljYXRpb24gYXMgd2VsbC5cblxuICBPcHRpb25hbGx5LCB0aGUgbm90aWZpY2F0aW9ucyBkaXJlY3RpdmUgY2FuIGFsc28gdGFwIGludG8gdGhlIGJyb3dzZXIncyBuYXRpdmUgbm90aWZpY2F0aW9uIHN1cHBvcnQsIGlmIGl0IGV4aXN0cy5cbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gTm90aWZpY2F0aW9uXG4kbm90aWZpY2F0aW9uLWRlZmF1bHQtcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24td2lkdGg6IHJlbS1jYWxjKDQwMCkgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLW9mZnNldDogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuXG4kbm90aWZpY2F0aW9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kbm90aWZpY2F0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiRub3RpZmljYXRpb24tcmFkaXVzOiA0cHggIWRlZmF1bHQ7XG5cbiRub3RpZmljYXRpb24taWNvbi1zaXplOiA2MHB4ICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1pY29uLW1hcmdpbjogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuJG5vdGlmaWNhdGlvbi1pY29uLWFsaWduOiB0b3AgIWRlZmF1bHQ7XG5cbi8vL1xuXG4lbm90aWZpY2F0aW9uIHtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciBhbmltYXRpb25cbiAgLy8gdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLW91dDtcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG4lbm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDMwMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG5AbWl4aW4gbm90aWZpY2F0aW9uLWxheW91dChcbiAgJHg6IG50aCgkbm90aWZpY2F0aW9uLWRlZmF1bHQtcG9zaXRpb24sIDEpLFxuICAkeTogbnRoKCRub3RpZmljYXRpb24tZGVmYXVsdC1wb3NpdGlvbiwgMiksXG4gICRzaXplOiAkbm90aWZpY2F0aW9uLXdpZHRoLFxuICAkb2Zmc2V0OiAkbm90aWZpY2F0aW9uLW9mZnNldFxuKSB7XG4gIHdpZHRoOiAkc2l6ZTtcblxuICBAaWYgJHggPT0gcmlnaHQge1xuICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICR4ID09IGxlZnQge1xuICAgIGxlZnQ6ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHggPT0gbWlkZGxlIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJHNpemUgLyAyKTtcbiAgfVxuXG4gIEBpZiAkeSA9PSB0b3Age1xuICAgIHRvcDogJG9mZnNldDtcbiAgfVxuICBAZWxzZSBpZiAkeSA9PSBib3R0b20ge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206ICRvZmZzZXQ7XG4gIH1cblxuICAvLyBPbiBzbWFsbCBzY3JlZW5zLCBub3RpZmljYXRpb25zIGFyZSBmdWxsIHdpZHRoIGJ1dCBtYWludGFpbiB0aGVpciB2ZXJ0aWNhbCBvcmllbnRhdGlvblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgIHJpZ2h0OiAkb2Zmc2V0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5AbWl4aW4gbm90aWZpY2F0aW9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJG5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRub3RpZmljYXRpb24tY29sb3IsXG4gICRwYWRkaW5nOiAkbm90aWZpY2F0aW9uLXBhZGRpbmcsXG4gICRyYWRpdXM6ICRub3RpZmljYXRpb24tcmFkaXVzXG4pIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuXG4gICYsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG5vdGlmaWNhdGlvbihcbiAgJGJhY2tncm91bmQ6ICRub3RpZmljYXRpb24tYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkbm90aWZpY2F0aW9uLWNvbG9yLFxuICAkcGFkZGluZzogJG5vdGlmaWNhdGlvbi1wYWRkaW5nLFxuICAkcmFkaXVzOiAkbm90aWZpY2F0aW9uLXJhZGl1c1xuKSB7XG4gIEBleHRlbmQgJW5vdGlmaWNhdGlvbjtcbiAgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkY29sb3IsICRwYWRkaW5nLCAkcmFkaXVzKTtcbn1cblxuQG1peGluIG5vdGlmaWNhdGlvbi1jb250YWluZXIoXG4gICR4OiBudGgoJG5vdGlmaWNhdGlvbi1kZWZhdWx0LXBvc2l0aW9uLCAxKSxcbiAgJHk6IG50aCgkbm90aWZpY2F0aW9uLWRlZmF1bHQtcG9zaXRpb24sIDIpLFxuICAkc2l6ZTogJG5vdGlmaWNhdGlvbi13aWR0aCxcbiAgJG9mZnNldDogJG5vdGlmaWNhdGlvbi1vZmZzZXRcbikge1xuICBAZXh0ZW5kICVub3RpZmljYXRpb24tY29udGFpbmVyO1xuICBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KCR4LCAkeSwgJHNpemUsICRvZmZzZXQpO1xufVxuXG5AbWl4aW4gbm90aWZpY2F0aW9uLWljb24oXG4gICRzaXplOiAkbm90aWZpY2F0aW9uLWljb24tc2l6ZSxcbiAgJG1hcmdpbjogJG5vdGlmaWNhdGlvbi1pY29uLW1hcmdpbixcbiAgJGFsaWduOiAkbm90aWZpY2F0aW9uLWljb24tYWxpZ25cbikge1xuICAkYWxpZ25tZW50czogKFxuICAgIHRvcDogZmxleC1zdGFydCxcbiAgICBtaWRkbGU6IG1pZGRsZSxcbiAgICBib3R0b206IGZsZXgtZW5kLFxuICApO1xuICBmbGV4OiAwIDAgJHNpemU7XG4gIG1hcmdpbi1yaWdodDogJGdsb2JhbC1wYWRkaW5nO1xuICBhbGlnbi1zZWxmOiBtYXAtZ2V0KCRhbGlnbm1lbnRzLCAkYWxpZ24pO1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi8qXG4gIENTUyBPdXRwdXRcbiovXG5cbkBpbmNsdWRlIGV4cG9ydHMobm90aWZpY2F0aW9uKSB7XG4gIC5ub3RpZmljYXRpb24ge1xuICAgIEBpbmNsdWRlIG5vdGlmaWNhdGlvbjtcblxuICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRzdWNjZXNzLWNvbG9yKSB9XG4gICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tc3R5bGUoJHdhcm5pbmctY29sb3IpIH1cbiAgICAmLmFsZXJ0ICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkYWxlcnQtY29sb3IpIH1cbiAgICAmLmRhcmsgICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkZGFyay1jb2xvciwgI2ZmZikgfVxuXG5cbiAgfVxuXG4gIC5zdGF0aWMtbm90aWZpY2F0aW9uIHtcbiAgICBAaW5jbHVkZSBub3RpZmljYXRpb247XG5cbiAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICBcbiAgICAmLnRvcC1yaWdodCAgICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KHJpZ2h0LCB0b3ApOyB9XG4gICAgJi50b3AtbGVmdCAgICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dChsZWZ0LCB0b3ApOyB9XG4gICAgJi50b3AtbWlkZGxlICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dChtaWRkbGUsIHRvcCk7IH1cblxuICAgICYuYm90dG9tLXJpZ2h0ICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQocmlnaHQsIGJvdHRvbSk7IH1cbiAgICAmLmJvdHRvbS1sZWZ0ICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KGxlZnQsIGJvdHRvbSk7IH1cbiAgICAmLmJvdHRvbS1taWRkbGUgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KG1pZGRsZSwgYm90dG9tKTsgfVxuXG4gICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tc3R5bGUoJHN1Y2Nlc3MtY29sb3IpIH1cbiAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1zdHlsZSgkd2FybmluZy1jb2xvcikgfVxuICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRhbGVydC1jb2xvcikgfVxuICAgICYuZGFyayAgICAgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLXN0eWxlKCRkYXJrLWNvbG9yLCAjZmZmKSB9XG4gIH1cblxuICAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWNvbnRhaW5lcjtcblxuICAgICYudG9wLXJpZ2h0ICAgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQocmlnaHQsIHRvcCk7IH1cbiAgICAmLnRvcC1sZWZ0ICAgICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KGxlZnQsIHRvcCk7IH1cbiAgICAmLnRvcC1taWRkbGUgICAgeyBAaW5jbHVkZSBub3RpZmljYXRpb24tbGF5b3V0KG1pZGRsZSwgdG9wKTsgfVxuXG4gICAgJi5ib3R0b20tcmlnaHQgIHsgQGluY2x1ZGUgbm90aWZpY2F0aW9uLWxheW91dChyaWdodCwgYm90dG9tKTsgfVxuICAgICYuYm90dG9tLWxlZnQgICB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobGVmdCwgYm90dG9tKTsgfVxuICAgICYuYm90dG9tLW1pZGRsZSB7IEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1sYXlvdXQobWlkZGxlLCBib3R0b20pOyB9XG4gIH1cblxuICAubm90aWZpY2F0aW9uLWljb24ge1xuICAgIEBpbmNsdWRlIG5vdGlmaWNhdGlvbi1pY29uO1xuICB9XG4gIC5ub3RpZmljYXRpb24tY29udGVudCB7XG4gICAgZmxleDogMTtcbiAgfVxuXG59XG4iLCIvKlxuICBVVElMSVRJRVNcbiAgLS0tLS0tLS0tXG5cbiAgUmVzcG9uc2l2ZSBoZWxwZXIgY2xhc3NlcyB0byBhc3Npc3QgeW91IGluIHF1aWNrbHkgZG9pbmcgYmFzaWMgZm9ybWF0dGluZyBhbmQgbGF5b3V0LlxuXG4gIEZlYXR1cmVzOlxuICAgLSBWZXJ0aWNhbCBhbGlnbm1lbnRcbiAgIC0gVmlzaWJpbGl0eVxuICAgLSBUZXh0IGFsaWdubWVudFxuICAgLSBGbG9hdGluZ1xuKi9cblxuJGJsb2NrLXNlbGVjdG9yOiAnW2NsYXNzKj1cImdyaWQtYmxvY2tcIl0nO1xuXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUsICRwcm9wOiBibG9jaykge1xuICAmOm5vdCgubmctaGlkZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBkaXNwbGF5OiAkcHJvcCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSwgJHByb3A6IGJsb2NrKSB7XG4gICY6bm90KC5uZy1oaWRlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgICAgZGlzcGxheTogJHByb3AgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhpZGUtZm9yKCRzaXplLCAkcHJvcDogYmxvY2spIHtcbiAgJjpub3QoLm5nLWhpZGUpIHtcbiAgICBkaXNwbGF5OiAkcHJvcCAhaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhpZGUtZm9yLW9ubHkoJHNpemUsICRwcm9wOiBibG9jaykge1xuICAmOm5vdCgubmctaGlkZSkge1xuICAgIGRpc3BsYXk6ICRwcm9wICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHModXRpbGl0aWVzKSB7XG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudFxuICAudi1hbGlnbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICRhbGlnbi12YWx1ZXM6IChcbiAgICAgICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAgICAgJ2NlbnRlcic6IGNlbnRlcixcbiAgICAgICdib3R0b20nOiBmbGV4LWVuZCxcbiAgICApO1xuXG4gICAgQGVhY2ggJG9yaWVudCBpbiAodG9wLCBjZW50ZXIsIGJvdHRvbSkge1xuICAgICAgLmFsaWduLSN7JG9yaWVudH0ge1xuICAgICAgICBhbGlnbi1zZWxmOiBtYXAtZ2V0KCRhbGlnbi12YWx1ZXMsICRvcmllbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGVhY2ggJG9yaWVudCBpbiAodG9wLCBjZW50ZXIsIGJvdHRvbSkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgICAgLiN7JHNpemV9LWFsaWduLSN7JG9yaWVudH0ge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogbWFwLWdldCgkYWxpZ24tdmFsdWVzLCAkb3JpZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWaXNpYmlsaXR5XG4gIC5oaWRlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICAmI3skYmxvY2stc2VsZWN0b3J9IHsgQGluY2x1ZGUgaGlkZS1mb3IoJHNpemUsIGZsZXgpOyB9XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBzaG93LWZvcigkc2l6ZSwgZmxleCk7IH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplLCBmbGV4KTsgfVxuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgICAgJiN7JGJsb2NrLXNlbGVjdG9yfSB7IEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUsIGZsZXgpOyB9XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJG9yaWVudGF0aW9uIGluIChwb3J0cmFpdCwgbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLSN7JG9yaWVudGF0aW9ufSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRvcmllbnRhdGlvbikge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICYjeyRibG9jay1zZWxlY3Rvcn0geyBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skb3JpZW50YXRpb259IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIFxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkb3JpZW50YXRpb24pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgJiN7JGJsb2NrLXNlbGVjdG9yfSB7IGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAgVGV4dCBhbGlnbm1lbnRcbiAgKi9cbiAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICB9XG4gICAgXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgICAgICAuI3skc2l6ZX0tb25seS10ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBGbG9hdGluZ1xuICAqL1xuICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gIEBlYWNoICRmbG9hdCBpbiAobGVmdCwgcmlnaHQsIG5vbmUpIHtcbiAgICAuZmxvYXQtI3skZmxvYXR9IHtcbiAgICAgIGZsb2F0OiAjeyRmbG9hdH07XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBBcHBzXG4vL1xuLy8gTWl4aW5zXG4vLyAtLS0tLS1cbi8vIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBhIG51bWJlciBvZiBtaXhpbnMgdGhhdCBoZWxwIHlvdSBlYXNpbHkgY3JlYXRlIGNvbW1vbiBzbWFsbCBjb21wb25lbnRzLFxuLy8gbGlrZSB0cmlhbmdsZXMgYW5kIG1lbnUgaWNvbnMuXG5cbi8vLyBDU1MgVHJpYW5nbGVcbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBwb3B1cCB0YWlscywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtrZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoJHRyaWFuZ2xlLXNpemUsICR0cmlhbmdsZS1jb2xvciwgJHRyaWFuZ2xlLWRpcmVjdGlvbikge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAkdHJpYW5nbGUtc2l6ZTtcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHRvcCkge1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBib3R0b20pIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLy8gSGFtYnVyZ2VyXG4vLy8gQ3JlYXRlcyBhIHRocmVlLWxpbmUgbWVudSBpY29uLCBhZmZlY3Rpb25hdGVseSByZWZlcnJlZCB0byBhcyB0aGUgXCJoYW1idXJnZXIgaWNvblwiLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBpY29uLCBpbiByZW0gdW5pdHMuXG4vLy8gQHBhcmFtIHtudW1iZXJ8Ym9vbGVhbn0gJGxlZnQgLSBMZWZ0IG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseS5cbi8vLyBAcGFyYW0ge251bWJlcnxib29sZWFufSAkdG9wIC0gVG9wIG9mZnNldCBvZiB0aGUgaWNvbi4gU2V0IHRvIGBmYWxzZWAgdG8gY2VudGVyIHRoZSBpY29uIHZlcnRpY2FsbHkuXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR0aGlja25lc3MgLSBIZWlnaHQgb2YgZWFjaCBsaW5lIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ2FwIC0gQW1vdW50IG9mIHNwYWNlIGJldHdlZW4gZWFjaCBsaW5lLlxuLy8vIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIENvbG9yIG9mIHRoZSBsaW5lcy5cbi8vLyBAcGFyYW0ge2NvbG9yfSAkaG92ZXItY29sb3IgLSBDb2xvciBvZiB0aGUgbGluZXMgb24gaG92ZXIuXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kd2lkdGgvMjtcbiAgICAgIH1cbiAgICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiAoJHRhYmJhci1tZW51LWljb24td2lkdGggLSAkd2lkdGgpLzI7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLSR3aWR0aC8yO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMHB4IDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRjb2xvcjtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9XG4gIHNwYW46aG92ZXI6YWZ0ZXIge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDBweCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8vIENsZWFyZml4XG4vLy8gVXNlcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy9cbi8vLyBAc2VlIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuQG1peGluIGNsZWFyZml4IHtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIgeyBjb250ZW50OiBcIiBcIjsgZGlzcGxheTogdGFibGU7IH1cbiAgJjphZnRlciB7IGNsZWFyOiBib3RoOyB9XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudFxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cbi8vL1xuLy8vIEBzZWUgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG59XG5cbi8vLyBJbnZpc2libGUgRWxlbWVudCBPZmZcbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR0ZXh0LWlucHV0LXNlbGVjdG9yczogJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sIGlucHV0W3R5cGU9XCJkYXRlXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSwgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLCBpbnB1dFt0eXBlPVwid2Vla1wiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBpbnB1dFt0eXBlPVwidGVsXCJdLCBpbnB1dFt0eXBlPVwidGltZVwiXSwgaW5wdXRbdHlwZT1cInVybFwiXSwgaW5wdXRbdHlwZT1cImNvbG9yXCJdLCB0ZXh0YXJlYSc7XG4iLCIvKiBcbiAqIEZvdW5kYXRpb24gSWNvbnMgdiAzLjBcbiAqIE1hZGUgYnkgWlVSQiAyMDEzIGh0dHA6Ly96dXJiLmNvbS9wbGF5Z3JvdW5kL2ZvdW5kYXRpb24taWNvbi1mb250cy0zXG4gKiBNSVQgTGljZW5zZVxuICovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJmb3VuZGF0aW9uLWljb25zXCI7XG4gIHNyYzogdXJsKFwiL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1pY29ucy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuXG4uZmktYWRkcmVzcy1ib29rOmJlZm9yZSxcbi5maS1hbGVydDpiZWZvcmUsXG4uZmktYWxpZ24tY2VudGVyOmJlZm9yZSxcbi5maS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSxcbi5maS1hbGlnbi1sZWZ0OmJlZm9yZSxcbi5maS1hbGlnbi1yaWdodDpiZWZvcmUsXG4uZmktYW5jaG9yOmJlZm9yZSxcbi5maS1hbm5vdGF0ZTpiZWZvcmUsXG4uZmktYXJjaGl2ZTpiZWZvcmUsXG4uZmktYXJyb3ctZG93bjpiZWZvcmUsXG4uZmktYXJyb3ctbGVmdDpiZWZvcmUsXG4uZmktYXJyb3ctcmlnaHQ6YmVmb3JlLFxuLmZpLWFycm93LXVwOmJlZm9yZSxcbi5maS1hcnJvd3MtY29tcHJlc3M6YmVmb3JlLFxuLmZpLWFycm93cy1leHBhbmQ6YmVmb3JlLFxuLmZpLWFycm93cy1pbjpiZWZvcmUsXG4uZmktYXJyb3dzLW91dDpiZWZvcmUsXG4uZmktYXNsOmJlZm9yZSxcbi5maS1hc3RlcmlzazpiZWZvcmUsXG4uZmktYXQtc2lnbjpiZWZvcmUsXG4uZmktYmFja2dyb3VuZC1jb2xvcjpiZWZvcmUsXG4uZmktYmF0dGVyeS1lbXB0eTpiZWZvcmUsXG4uZmktYmF0dGVyeS1mdWxsOmJlZm9yZSxcbi5maS1iYXR0ZXJ5LWhhbGY6YmVmb3JlLFxuLmZpLWJpdGNvaW4tY2lyY2xlOmJlZm9yZSxcbi5maS1iaXRjb2luOmJlZm9yZSxcbi5maS1ibGluZDpiZWZvcmUsXG4uZmktYmx1ZXRvb3RoOmJlZm9yZSxcbi5maS1ib2xkOmJlZm9yZSxcbi5maS1ib29rLWJvb2ttYXJrOmJlZm9yZSxcbi5maS1ib29rOmJlZm9yZSxcbi5maS1ib29rbWFyazpiZWZvcmUsXG4uZmktYnJhaWxsZTpiZWZvcmUsXG4uZmktYnVyc3QtbmV3OmJlZm9yZSxcbi5maS1idXJzdC1zYWxlOmJlZm9yZSxcbi5maS1idXJzdDpiZWZvcmUsXG4uZmktY2FsZW5kYXI6YmVmb3JlLFxuLmZpLWNhbWVyYTpiZWZvcmUsXG4uZmktY2hlY2s6YmVmb3JlLFxuLmZpLWNoZWNrYm94OmJlZm9yZSxcbi5maS1jbGlwYm9hcmQtbm90ZXM6YmVmb3JlLFxuLmZpLWNsaXBib2FyZC1wZW5jaWw6YmVmb3JlLFxuLmZpLWNsaXBib2FyZDpiZWZvcmUsXG4uZmktY2xvY2s6YmVmb3JlLFxuLmZpLWNsb3NlZC1jYXB0aW9uOmJlZm9yZSxcbi5maS1jbG91ZDpiZWZvcmUsXG4uZmktY29tbWVudC1taW51czpiZWZvcmUsXG4uZmktY29tbWVudC1xdW90ZXM6YmVmb3JlLFxuLmZpLWNvbW1lbnQtdmlkZW86YmVmb3JlLFxuLmZpLWNvbW1lbnQ6YmVmb3JlLFxuLmZpLWNvbW1lbnRzOmJlZm9yZSxcbi5maS1jb21wYXNzOmJlZm9yZSxcbi5maS1jb250cmFzdDpiZWZvcmUsXG4uZmktY3JlZGl0LWNhcmQ6YmVmb3JlLFxuLmZpLWNyb3A6YmVmb3JlLFxuLmZpLWNyb3duOmJlZm9yZSxcbi5maS1jc3MzOmJlZm9yZSxcbi5maS1kYXRhYmFzZTpiZWZvcmUsXG4uZmktZGllLWZpdmU6YmVmb3JlLFxuLmZpLWRpZS1mb3VyOmJlZm9yZSxcbi5maS1kaWUtb25lOmJlZm9yZSxcbi5maS1kaWUtc2l4OmJlZm9yZSxcbi5maS1kaWUtdGhyZWU6YmVmb3JlLFxuLmZpLWRpZS10d286YmVmb3JlLFxuLmZpLWRpc2xpa2U6YmVmb3JlLFxuLmZpLWRvbGxhci1iaWxsOmJlZm9yZSxcbi5maS1kb2xsYXI6YmVmb3JlLFxuLmZpLWRvd25sb2FkOmJlZm9yZSxcbi5maS1lamVjdDpiZWZvcmUsXG4uZmktZWxldmF0b3I6YmVmb3JlLFxuLmZpLWV1cm86YmVmb3JlLFxuLmZpLWV5ZTpiZWZvcmUsXG4uZmktZmFzdC1mb3J3YXJkOmJlZm9yZSxcbi5maS1mZW1hbGUtc3ltYm9sOmJlZm9yZSxcbi5maS1mZW1hbGU6YmVmb3JlLFxuLmZpLWZpbHRlcjpiZWZvcmUsXG4uZmktZmlyc3QtYWlkOmJlZm9yZSxcbi5maS1mbGFnOmJlZm9yZSxcbi5maS1mb2xkZXItYWRkOmJlZm9yZSxcbi5maS1mb2xkZXItbG9jazpiZWZvcmUsXG4uZmktZm9sZGVyOmJlZm9yZSxcbi5maS1mb290OmJlZm9yZSxcbi5maS1mb3VuZGF0aW9uOmJlZm9yZSxcbi5maS1ncmFwaC1iYXI6YmVmb3JlLFxuLmZpLWdyYXBoLWhvcml6b250YWw6YmVmb3JlLFxuLmZpLWdyYXBoLXBpZTpiZWZvcmUsXG4uZmktZ3JhcGgtdHJlbmQ6YmVmb3JlLFxuLmZpLWd1aWRlLWRvZzpiZWZvcmUsXG4uZmktaGVhcmluZy1haWQ6YmVmb3JlLFxuLmZpLWhlYXJ0OmJlZm9yZSxcbi5maS1ob21lOmJlZm9yZSxcbi5maS1odG1sNTpiZWZvcmUsXG4uZmktaW5kZW50LWxlc3M6YmVmb3JlLFxuLmZpLWluZGVudC1tb3JlOmJlZm9yZSxcbi5maS1pbmZvOmJlZm9yZSxcbi5maS1pdGFsaWM6YmVmb3JlLFxuLmZpLWtleTpiZWZvcmUsXG4uZmktbGFwdG9wOmJlZm9yZSxcbi5maS1sYXlvdXQ6YmVmb3JlLFxuLmZpLWxpZ2h0YnVsYjpiZWZvcmUsXG4uZmktbGlrZTpiZWZvcmUsXG4uZmktbGluazpiZWZvcmUsXG4uZmktbGlzdC1idWxsZXQ6YmVmb3JlLFxuLmZpLWxpc3QtbnVtYmVyOmJlZm9yZSxcbi5maS1saXN0LXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLWxpc3Q6YmVmb3JlLFxuLmZpLWxvY2s6YmVmb3JlLFxuLmZpLWxvb3A6YmVmb3JlLFxuLmZpLW1hZ25pZnlpbmctZ2xhc3M6YmVmb3JlLFxuLmZpLW1haWw6YmVmb3JlLFxuLmZpLW1hbGUtZmVtYWxlOmJlZm9yZSxcbi5maS1tYWxlLXN5bWJvbDpiZWZvcmUsXG4uZmktbWFsZTpiZWZvcmUsXG4uZmktbWFwOmJlZm9yZSxcbi5maS1tYXJrZXI6YmVmb3JlLFxuLmZpLW1lZ2FwaG9uZTpiZWZvcmUsXG4uZmktbWljcm9waG9uZTpiZWZvcmUsXG4uZmktbWludXMtY2lyY2xlOmJlZm9yZSxcbi5maS1taW51czpiZWZvcmUsXG4uZmktbW9iaWxlLXNpZ25hbDpiZWZvcmUsXG4uZmktbW9iaWxlOmJlZm9yZSxcbi5maS1tb25pdG9yOmJlZm9yZSxcbi5maS1tb3VudGFpbnM6YmVmb3JlLFxuLmZpLW11c2ljOmJlZm9yZSxcbi5maS1uZXh0OmJlZm9yZSxcbi5maS1uby1kb2dzOmJlZm9yZSxcbi5maS1uby1zbW9raW5nOmJlZm9yZSxcbi5maS1wYWdlLWFkZDpiZWZvcmUsXG4uZmktcGFnZS1jb3B5OmJlZm9yZSxcbi5maS1wYWdlLWNzdjpiZWZvcmUsXG4uZmktcGFnZS1kZWxldGU6YmVmb3JlLFxuLmZpLXBhZ2UtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWVkaXQ6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0LWNzdjpiZWZvcmUsXG4uZmktcGFnZS1leHBvcnQtZG9jOmJlZm9yZSxcbi5maS1wYWdlLWV4cG9ydC1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtZXhwb3J0OmJlZm9yZSxcbi5maS1wYWdlLWZpbGxlZDpiZWZvcmUsXG4uZmktcGFnZS1tdWx0aXBsZTpiZWZvcmUsXG4uZmktcGFnZS1wZGY6YmVmb3JlLFxuLmZpLXBhZ2UtcmVtb3ZlOmJlZm9yZSxcbi5maS1wYWdlLXNlYXJjaDpiZWZvcmUsXG4uZmktcGFnZTpiZWZvcmUsXG4uZmktcGFpbnQtYnVja2V0OmJlZm9yZSxcbi5maS1wYXBlcmNsaXA6YmVmb3JlLFxuLmZpLXBhdXNlOmJlZm9yZSxcbi5maS1wYXc6YmVmb3JlLFxuLmZpLXBheXBhbDpiZWZvcmUsXG4uZmktcGVuY2lsOmJlZm9yZSxcbi5maS1waG90bzpiZWZvcmUsXG4uZmktcGxheS1jaXJjbGU6YmVmb3JlLFxuLmZpLXBsYXktdmlkZW86YmVmb3JlLFxuLmZpLXBsYXk6YmVmb3JlLFxuLmZpLXBsdXM6YmVmb3JlLFxuLmZpLXBvdW5kOmJlZm9yZSxcbi5maS1wb3dlcjpiZWZvcmUsXG4uZmktcHJldmlvdXM6YmVmb3JlLFxuLmZpLXByaWNlLXRhZzpiZWZvcmUsXG4uZmktcHJpY2V0YWctbXVsdGlwbGU6YmVmb3JlLFxuLmZpLXByaW50OmJlZm9yZSxcbi5maS1wcm9oaWJpdGVkOmJlZm9yZSxcbi5maS1wcm9qZWN0aW9uLXNjcmVlbjpiZWZvcmUsXG4uZmktcHV6emxlOmJlZm9yZSxcbi5maS1xdW90ZTpiZWZvcmUsXG4uZmktcmVjb3JkOmJlZm9yZSxcbi5maS1yZWZyZXNoOmJlZm9yZSxcbi5maS1yZXN1bHRzLWRlbW9ncmFwaGljczpiZWZvcmUsXG4uZmktcmVzdWx0czpiZWZvcmUsXG4uZmktcmV3aW5kLXRlbjpiZWZvcmUsXG4uZmktcmV3aW5kOmJlZm9yZSxcbi5maS1yc3M6YmVmb3JlLFxuLmZpLXNhZmV0eS1jb25lOmJlZm9yZSxcbi5maS1zYXZlOmJlZm9yZSxcbi5maS1zaGFyZTpiZWZvcmUsXG4uZmktc2hlcmlmZi1iYWRnZTpiZWZvcmUsXG4uZmktc2hpZWxkOmJlZm9yZSxcbi5maS1zaG9wcGluZy1iYWc6YmVmb3JlLFxuLmZpLXNob3BwaW5nLWNhcnQ6YmVmb3JlLFxuLmZpLXNodWZmbGU6YmVmb3JlLFxuLmZpLXNrdWxsOmJlZm9yZSxcbi5maS1zb2NpYWwtNTAwcHg6YmVmb3JlLFxuLmZpLXNvY2lhbC1hZG9iZTpiZWZvcmUsXG4uZmktc29jaWFsLWFtYXpvbjpiZWZvcmUsXG4uZmktc29jaWFsLWFuZHJvaWQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1hcHBsZTpiZWZvcmUsXG4uZmktc29jaWFsLWJlaGFuY2U6YmVmb3JlLFxuLmZpLXNvY2lhbC1iaW5nOmJlZm9yZSxcbi5maS1zb2NpYWwtYmxvZ2dlcjpiZWZvcmUsXG4uZmktc29jaWFsLWRlbGljaW91czpiZWZvcmUsXG4uZmktc29jaWFsLWRlc2lnbmVyLW5ld3M6YmVmb3JlLFxuLmZpLXNvY2lhbC1kZXZpYW50LWFydDpiZWZvcmUsXG4uZmktc29jaWFsLWRpZ2c6YmVmb3JlLFxuLmZpLXNvY2lhbC1kcmliYmJsZTpiZWZvcmUsXG4uZmktc29jaWFsLWRyaXZlOmJlZm9yZSxcbi5maS1zb2NpYWwtZHJvcGJveDpiZWZvcmUsXG4uZmktc29jaWFsLWV2ZXJub3RlOmJlZm9yZSxcbi5maS1zb2NpYWwtZmFjZWJvb2s6YmVmb3JlLFxuLmZpLXNvY2lhbC1mbGlja3I6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Jyc3Q6YmVmb3JlLFxuLmZpLXNvY2lhbC1mb3Vyc3F1YXJlOmJlZm9yZSxcbi5maS1zb2NpYWwtZ2FtZS1jZW50ZXI6YmVmb3JlLFxuLmZpLXNvY2lhbC1naXRodWI6YmVmb3JlLFxuLmZpLXNvY2lhbC1nb29nbGUtcGx1czpiZWZvcmUsXG4uZmktc29jaWFsLWhhY2tlci1uZXdzOmJlZm9yZSxcbi5maS1zb2NpYWwtaGk1OmJlZm9yZSxcbi5maS1zb2NpYWwtaW5zdGFncmFtOmJlZm9yZSxcbi5maS1zb2NpYWwtam9vbWxhOmJlZm9yZSxcbi5maS1zb2NpYWwtbGFzdGZtOmJlZm9yZSxcbi5maS1zb2NpYWwtbGlua2VkaW46YmVmb3JlLFxuLmZpLXNvY2lhbC1tZWRpdW06YmVmb3JlLFxuLmZpLXNvY2lhbC1teXNwYWNlOmJlZm9yZSxcbi5maS1zb2NpYWwtb3JrdXQ6YmVmb3JlLFxuLmZpLXNvY2lhbC1wYXRoOmJlZm9yZSxcbi5maS1zb2NpYWwtcGljYXNhOmJlZm9yZSxcbi5maS1zb2NpYWwtcGludGVyZXN0OmJlZm9yZSxcbi5maS1zb2NpYWwtcmRpbzpiZWZvcmUsXG4uZmktc29jaWFsLXJlZGRpdDpiZWZvcmUsXG4uZmktc29jaWFsLXNraWxsc2hhcmU6YmVmb3JlLFxuLmZpLXNvY2lhbC1za3lwZTpiZWZvcmUsXG4uZmktc29jaWFsLXNtYXNoaW5nLW1hZzpiZWZvcmUsXG4uZmktc29jaWFsLXNuYXBjaGF0OmJlZm9yZSxcbi5maS1zb2NpYWwtc3BvdGlmeTpiZWZvcmUsXG4uZmktc29jaWFsLXNxdWlkb286YmVmb3JlLFxuLmZpLXNvY2lhbC1zdGFjay1vdmVyZmxvdzpiZWZvcmUsXG4uZmktc29jaWFsLXN0ZWFtOmJlZm9yZSxcbi5maS1zb2NpYWwtc3R1bWJsZXVwb246YmVmb3JlLFxuLmZpLXNvY2lhbC10cmVlaG91c2U6YmVmb3JlLFxuLmZpLXNvY2lhbC10dW1ibHI6YmVmb3JlLFxuLmZpLXNvY2lhbC10d2l0dGVyOmJlZm9yZSxcbi5maS1zb2NpYWwtdmltZW86YmVmb3JlLFxuLmZpLXNvY2lhbC13aW5kb3dzOmJlZm9yZSxcbi5maS1zb2NpYWwteGJveDpiZWZvcmUsXG4uZmktc29jaWFsLXlhaG9vOmJlZm9yZSxcbi5maS1zb2NpYWwteWVscDpiZWZvcmUsXG4uZmktc29jaWFsLXlvdXR1YmU6YmVmb3JlLFxuLmZpLXNvY2lhbC16ZXJwbHk6YmVmb3JlLFxuLmZpLXNvY2lhbC16dXJiOmJlZm9yZSxcbi5maS1zb3VuZDpiZWZvcmUsXG4uZmktc3RhcjpiZWZvcmUsXG4uZmktc3RvcDpiZWZvcmUsXG4uZmktc3RyaWtldGhyb3VnaDpiZWZvcmUsXG4uZmktc3Vic2NyaXB0OmJlZm9yZSxcbi5maS1zdXBlcnNjcmlwdDpiZWZvcmUsXG4uZmktdGFibGV0LWxhbmRzY2FwZTpiZWZvcmUsXG4uZmktdGFibGV0LXBvcnRyYWl0OmJlZm9yZSxcbi5maS10YXJnZXQtdHdvOmJlZm9yZSxcbi5maS10YXJnZXQ6YmVmb3JlLFxuLmZpLXRlbGVwaG9uZS1hY2Nlc3NpYmxlOmJlZm9yZSxcbi5maS10ZWxlcGhvbmU6YmVmb3JlLFxuLmZpLXRleHQtY29sb3I6YmVmb3JlLFxuLmZpLXRodW1ibmFpbHM6YmVmb3JlLFxuLmZpLXRpY2tldDpiZWZvcmUsXG4uZmktdG9yc28tYnVzaW5lc3M6YmVmb3JlLFxuLmZpLXRvcnNvLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc286YmVmb3JlLFxuLmZpLXRvcnNvcy1hbGwtZmVtYWxlOmJlZm9yZSxcbi5maS10b3Jzb3MtYWxsOmJlZm9yZSxcbi5maS10b3Jzb3MtZmVtYWxlLW1hbGU6YmVmb3JlLFxuLmZpLXRvcnNvcy1tYWxlLWZlbWFsZTpiZWZvcmUsXG4uZmktdG9yc29zOmJlZm9yZSxcbi5maS10cmFzaDpiZWZvcmUsXG4uZmktdHJlZXM6YmVmb3JlLFxuLmZpLXRyb3BoeTpiZWZvcmUsXG4uZmktdW5kZXJsaW5lOmJlZm9yZSxcbi5maS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSxcbi5maS11bmxpbms6YmVmb3JlLFxuLmZpLXVubG9jazpiZWZvcmUsXG4uZmktdXBsb2FkLWNsb3VkOmJlZm9yZSxcbi5maS11cGxvYWQ6YmVmb3JlLFxuLmZpLXVzYjpiZWZvcmUsXG4uZmktdmlkZW86YmVmb3JlLFxuLmZpLXZvbHVtZS1ub25lOmJlZm9yZSxcbi5maS12b2x1bWUtc3RyaWtlOmJlZm9yZSxcbi5maS12b2x1bWU6YmVmb3JlLFxuLmZpLXdlYjpiZWZvcmUsXG4uZmktd2hlZWxjaGFpcjpiZWZvcmUsXG4uZmktd2lkZ2V0OmJlZm9yZSxcbi5maS13cmVuY2g6YmVmb3JlLFxuLmZpLXgtY2lyY2xlOmJlZm9yZSxcbi5maS14OmJlZm9yZSxcbi5maS15ZW46YmVmb3JlLFxuLmZpLXpvb20taW46YmVmb3JlLFxuLmZpLXpvb20tb3V0OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImZvdW5kYXRpb24taWNvbnNcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi5maS1hZGRyZXNzLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDBcIjsgfVxuLmZpLWFsZXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTAxXCI7IH1cbi5maS1hbGlnbi1jZW50ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDJcIjsgfVxuLmZpLWFsaWduLWp1c3RpZnk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDNcIjsgfVxuLmZpLWFsaWduLWxlZnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDRcIjsgfVxuLmZpLWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA1XCI7IH1cbi5maS1hbmNob3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMDZcIjsgfVxuLmZpLWFubm90YXRlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA3XCI7IH1cbi5maS1hcmNoaXZlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA4XCI7IH1cbi5maS1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTA5XCI7IH1cbi5maS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBhXCI7IH1cbi5maS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwYlwiOyB9XG4uZmktYXJyb3ctdXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMGNcIjsgfVxuLmZpLWFycm93cy1jb21wcmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZFwiOyB9XG4uZmktYXJyb3dzLWV4cGFuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEwZVwiOyB9XG4uZmktYXJyb3dzLWluOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTBmXCI7IH1cbi5maS1hcnJvd3Mtb3V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEwXCI7IH1cbi5maS1hc2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTFcIjsgfVxuLmZpLWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEyXCI7IH1cbi5maS1hdC1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTEzXCI7IH1cbi5maS1iYWNrZ3JvdW5kLWNvbG9yOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE0XCI7IH1cbi5maS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTE1XCI7IH1cbi5maS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTZcIjsgfVxuLmZpLWJhdHRlcnktaGFsZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjExN1wiOyB9XG4uZmktYml0Y29pbi1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMThcIjsgfVxuLmZpLWJpdGNvaW46YmVmb3JlIHsgY29udGVudDogXCJcXGYxMTlcIjsgfVxuLmZpLWJsaW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFhXCI7IH1cbi5maS1ibHVldG9vdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWJcIjsgfVxuLmZpLWJvbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWNcIjsgfVxuLmZpLWJvb2stYm9va21hcms6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWRcIjsgfVxuLmZpLWJvb2s6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMWVcIjsgfVxuLmZpLWJvb2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTFmXCI7IH1cbi5maS1icmFpbGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIwXCI7IH1cbi5maS1idXJzdC1uZXc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjFcIjsgfVxuLmZpLWJ1cnN0LXNhbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjJcIjsgfVxuLmZpLWJ1cnN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTIzXCI7IH1cbi5maS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNFwiOyB9XG4uZmktY2FtZXJhOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTI1XCI7IH1cbi5maS1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyNlwiOyB9XG4uZmktY2hlY2tib3g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMjdcIjsgfVxuLmZpLWNsaXBib2FyZC1ub3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOFwiOyB9XG4uZmktY2xpcGJvYXJkLXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyOVwiOyB9XG4uZmktY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJhXCI7IH1cbi5maS1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyYlwiOyB9XG4uZmktY2xvc2VkLWNhcHRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMmNcIjsgfVxuLmZpLWNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJkXCI7IH1cbi5maS1jb21tZW50LW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTJlXCI7IH1cbi5maS1jb21tZW50LXF1b3RlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEyZlwiOyB9XG4uZmktY29tbWVudC12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMFwiOyB9XG4uZmktY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzMVwiOyB9XG4uZmktY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzJcIjsgfVxuLmZpLWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzNcIjsgfVxuLmZpLWNvbnRyYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM0XCI7IH1cbi5maS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNVwiOyB9XG4uZmktY3JvcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzNlwiOyB9XG4uZmktY3Jvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzdcIjsgfVxuLmZpLWNzczM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxMzhcIjsgfVxuLmZpLWRhdGFiYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTM5XCI7IH1cbi5maS1kaWUtZml2ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzYVwiOyB9XG4uZmktZGllLWZvdXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2JcIjsgfVxuLmZpLWRpZS1vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2NcIjsgfVxuLmZpLWRpZS1zaXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxM2RcIjsgfVxuLmZpLWRpZS10aHJlZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZVwiOyB9XG4uZmktZGllLXR3bzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjEzZlwiOyB9XG4uZmktZGlzbGlrZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MFwiOyB9XG4uZmktZG9sbGFyLWJpbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDFcIjsgfVxuLmZpLWRvbGxhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0MlwiOyB9XG4uZmktZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDNcIjsgfVxuLmZpLWVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ0XCI7IH1cbi5maS1lbGV2YXRvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NVwiOyB9XG4uZmktZXVybzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG4uZmktZXllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTQ3XCI7IH1cbi5maS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDhcIjsgfVxuLmZpLWZlbWFsZS1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNDlcIjsgfVxuLmZpLWZlbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG4uZmktZmlsdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRiXCI7IH1cbi5maS1maXJzdC1haWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGNcIjsgfVxuLmZpLWZsYWc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGRcIjsgfVxuLmZpLWZvbGRlci1hZGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNGVcIjsgfVxuLmZpLWZvbGRlci1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTRmXCI7IH1cbi5maS1mb2xkZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTBcIjsgfVxuLmZpLWZvb3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTFcIjsgfVxuLmZpLWZvdW5kYXRpb246YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTJcIjsgfVxuLmZpLWdyYXBoLWJhcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG4uZmktZ3JhcGgtaG9yaXpvbnRhbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NFwiOyB9XG4uZmktZ3JhcGgtcGllOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU1XCI7IH1cbi5maS1ncmFwaC10cmVuZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1NlwiOyB9XG4uZmktZ3VpZGUtZG9nOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTU3XCI7IH1cbi5maS1oZWFyaW5nLWFpZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1OFwiOyB9XG4uZmktaGVhcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNTlcIjsgfVxuLmZpLWhvbWU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWFcIjsgfVxuLmZpLWh0bWw1OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTViXCI7IH1cbi5maS1pbmRlbnQtbGVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1Y1wiOyB9XG4uZmktaW5kZW50LW1vcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWRcIjsgfVxuLmZpLWluZm86YmVmb3JlIHsgY29udGVudDogXCJcXGYxNWVcIjsgfVxuLmZpLWl0YWxpYzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE1ZlwiOyB9XG4uZmkta2V5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYwXCI7IH1cbi5maS1sYXB0b3A6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjFcIjsgfVxuLmZpLWxheW91dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2MlwiOyB9XG4uZmktbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTYzXCI7IH1cbi5maS1saWtlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY0XCI7IH1cbi5maS1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTY1XCI7IH1cbi5maS1saXN0LWJ1bGxldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2NlwiOyB9XG4uZmktbGlzdC1udW1iZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNjdcIjsgfVxuLmZpLWxpc3QtdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OFwiOyB9XG4uZmktbGlzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2OVwiOyB9XG4uZmktbG9jazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YVwiOyB9XG4uZmktbG9vcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2YlwiOyB9XG4uZmktbWFnbmlmeWluZy1nbGFzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2Y1wiOyB9XG4uZmktbWFpbDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE2ZFwiOyB9XG4uZmktbWFsZS1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNmVcIjsgfVxuLmZpLW1hbGUtc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTZmXCI7IH1cbi5maS1tYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTcwXCI7IH1cbi5maS1tYXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzFcIjsgfVxuLmZpLW1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3MlwiOyB9XG4uZmktbWVnYXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTczXCI7IH1cbi5maS1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc0XCI7IH1cbi5maS1taW51cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzVcIjsgfVxuLmZpLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc2XCI7IH1cbi5maS1tb2JpbGUtc2lnbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTc3XCI7IH1cbi5maS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzhcIjsgfVxuLmZpLW1vbml0b3I6YmVmb3JlIHsgY29udGVudDogXCJcXGYxNzlcIjsgfVxuLmZpLW1vdW50YWluczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE3YVwiOyB9XG4uZmktbXVzaWM6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2JcIjsgfVxuLmZpLW5leHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2NcIjsgfVxuLmZpLW5vLWRvZ3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2RcIjsgfVxuLmZpLW5vLXNtb2tpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxN2VcIjsgfVxuLmZpLXBhZ2UtYWRkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTdmXCI7IH1cbi5maS1wYWdlLWNvcHk6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODBcIjsgfVxuLmZpLXBhZ2UtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTgxXCI7IH1cbi5maS1wYWdlLWRlbGV0ZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4MlwiOyB9XG4uZmktcGFnZS1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODNcIjsgfVxuLmZpLXBhZ2UtZWRpdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4NFwiOyB9XG4uZmktcGFnZS1leHBvcnQtY3N2OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg1XCI7IH1cbi5maS1wYWdlLWV4cG9ydC1kb2M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODZcIjsgfVxuLmZpLXBhZ2UtZXhwb3J0LXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4N1wiOyB9XG4uZmktcGFnZS1leHBvcnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxODhcIjsgfVxuLmZpLXBhZ2UtZmlsbGVkOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTg5XCI7IH1cbi5maS1wYWdlLW11bHRpcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThhXCI7IH1cbi5maS1wYWdlLXBkZjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE4YlwiOyB9XG4uZmktcGFnZS1yZW1vdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGNcIjsgfVxuLmZpLXBhZ2Utc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThkXCI7IH1cbi5maS1wYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMThlXCI7IH1cbi5maS1wYWludC1idWNrZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOGZcIjsgfVxuLmZpLXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MFwiOyB9XG4uZmktcGF1c2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTFcIjsgfVxuLmZpLXBhdzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5MlwiOyB9XG4uZmktcGF5cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTkzXCI7IH1cbi5maS1wZW5jaWw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOTRcIjsgfVxuLmZpLXBob3RvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTk1XCI7IH1cbi5maS1wbGF5LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5NlwiOyB9XG4uZmktcGxheS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5N1wiOyB9XG4uZmktcGxheTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OFwiOyB9XG4uZmktcGx1czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5OVwiOyB9XG4uZmktcG91bmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWFcIjsgfVxuLmZpLXBvd2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTliXCI7IH1cbi5maS1wcmV2aW91czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5Y1wiOyB9XG4uZmktcHJpY2UtdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMTlkXCI7IH1cbi5maS1wcmljZXRhZy1tdWx0aXBsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjE5ZVwiOyB9XG4uZmktcHJpbnQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxOWZcIjsgfVxuLmZpLXByb2hpYml0ZWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTBcIjsgfVxuLmZpLXByb2plY3Rpb24tc2NyZWVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWExXCI7IH1cbi5maS1wdXp6bGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTJcIjsgfVxuLmZpLXF1b3RlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWEzXCI7IH1cbi5maS1yZWNvcmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTRcIjsgfVxuLmZpLXJlZnJlc2g6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTVcIjsgfVxuLmZpLXJlc3VsdHMtZGVtb2dyYXBoaWNzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE2XCI7IH1cbi5maS1yZXN1bHRzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE3XCI7IH1cbi5maS1yZXdpbmQtdGVuOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWE4XCI7IH1cbi5maS1yZXdpbmQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYTlcIjsgfVxuLmZpLXJzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFhYVwiOyB9XG4uZmktc2FmZXR5LWNvbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWJcIjsgfVxuLmZpLXNhdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWNcIjsgfVxuLmZpLXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFkXCI7IH1cbi5maS1zaGVyaWZmLWJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWFlXCI7IH1cbi5maS1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYWZcIjsgfVxuLmZpLXNob3BwaW5nLWJhZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMFwiOyB9XG4uZmktc2hvcHBpbmctY2FydDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMVwiOyB9XG4uZmktc2h1ZmZsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiMlwiOyB9XG4uZmktc2t1bGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYjNcIjsgfVxuLmZpLXNvY2lhbC01MDBweDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiNFwiOyB9XG4uZmktc29jaWFsLWFkb2JlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI1XCI7IH1cbi5maS1zb2NpYWwtYW1hem9uOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI2XCI7IH1cbi5maS1zb2NpYWwtYW5kcm9pZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiN1wiOyB9XG4uZmktc29jaWFsLWFwcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWI4XCI7IH1cbi5maS1zb2NpYWwtYmVoYW5jZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiOVwiOyB9XG4uZmktc29jaWFsLWJpbmc6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYmFcIjsgfVxuLmZpLXNvY2lhbC1ibG9nZ2VyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJiXCI7IH1cbi5maS1zb2NpYWwtZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJjXCI7IH1cbi5maS1zb2NpYWwtZGVzaWduZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZFwiOyB9XG4uZmktc29jaWFsLWRldmlhbnQtYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWJlXCI7IH1cbi5maS1zb2NpYWwtZGlnZzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFiZlwiOyB9XG4uZmktc29jaWFsLWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMwXCI7IH1cbi5maS1zb2NpYWwtZHJpdmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzFcIjsgfVxuLmZpLXNvY2lhbC1kcm9wYm94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWMyXCI7IH1cbi5maS1zb2NpYWwtZXZlcm5vdGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzNcIjsgfVxuLmZpLXNvY2lhbC1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNFwiOyB9XG4uZmktc29jaWFsLWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNVwiOyB9XG4uZmktc29jaWFsLWZvcnJzdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjNlwiOyB9XG4uZmktc29jaWFsLWZvdXJzcXVhcmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxYzdcIjsgfVxuLmZpLXNvY2lhbC1nYW1lLWNlbnRlcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOFwiOyB9XG4uZmktc29jaWFsLWdpdGh1YjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFjOVwiOyB9XG4uZmktc29jaWFsLWdvb2dsZS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWNhXCI7IH1cbi5maS1zb2NpYWwtaGFja2VyLW5ld3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2JcIjsgfVxuLmZpLXNvY2lhbC1oaTU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2NcIjsgfVxuLmZpLXNvY2lhbC1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2RcIjsgfVxuLmZpLXNvY2lhbC1qb29tbGE6YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2VcIjsgfVxuLmZpLXNvY2lhbC1sYXN0Zm06YmVmb3JlIHsgY29udGVudDogXCJcXGYxY2ZcIjsgfVxuLmZpLXNvY2lhbC1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMFwiOyB9XG4uZmktc29jaWFsLW1lZGl1bTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkMVwiOyB9XG4uZmktc29jaWFsLW15c3BhY2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDJcIjsgfVxuLmZpLXNvY2lhbC1vcmt1dDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkM1wiOyB9XG4uZmktc29jaWFsLXBhdGg6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDRcIjsgfVxuLmZpLXNvY2lhbC1waWNhc2E6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDVcIjsgfVxuLmZpLXNvY2lhbC1waW50ZXJlc3Q6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZDZcIjsgfVxuLmZpLXNvY2lhbC1yZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ3XCI7IH1cbi5maS1zb2NpYWwtcmVkZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cbi5maS1zb2NpYWwtc2tpbGxzaGFyZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkOVwiOyB9XG4uZmktc29jaWFsLXNreXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRhXCI7IH1cbi5maS1zb2NpYWwtc21hc2hpbmctbWFnOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRiXCI7IH1cbi5maS1zb2NpYWwtc25hcGNoYXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZGNcIjsgfVxuLmZpLXNvY2lhbC1zcG90aWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRkXCI7IH1cbi5maS1zb2NpYWwtc3F1aWRvbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFkZVwiOyB9XG4uZmktc29jaWFsLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWRmXCI7IH1cbi5maS1zb2NpYWwtc3RlYW06YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTBcIjsgfVxuLmZpLXNvY2lhbC1zdHVtYmxldXBvbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMVwiOyB9XG4uZmktc29jaWFsLXRyZWVob3VzZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlMlwiOyB9XG4uZmktc29jaWFsLXR1bWJscjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlM1wiOyB9XG4uZmktc29jaWFsLXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTRcIjsgfVxuLmZpLXNvY2lhbC12aW1lbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlNVwiOyB9XG4uZmktc29jaWFsLXdpbmRvd3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZTZcIjsgfVxuLmZpLXNvY2lhbC14Ym94OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU3XCI7IH1cbi5maS1zb2NpYWwteWFob286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZThcIjsgfVxuLmZpLXNvY2lhbC15ZWxwOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWU5XCI7IH1cbi5maS1zb2NpYWwteW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYVwiOyB9XG4uZmktc29jaWFsLXplcnBseTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFlYlwiOyB9XG4uZmktc29jaWFsLXp1cmI6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZWNcIjsgfVxuLmZpLXNvdW5kOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVkXCI7IH1cbi5maS1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVlXCI7IH1cbi5maS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWVmXCI7IH1cbi5maS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYwXCI7IH1cbi5maS1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjFcIjsgfVxuLmZpLXN1cGVyc2NyaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYyXCI7IH1cbi5maS10YWJsZXQtbGFuZHNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWYzXCI7IH1cbi5maS10YWJsZXQtcG9ydHJhaXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjRcIjsgfVxuLmZpLXRhcmdldC10d286YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjVcIjsgfVxuLmZpLXRhcmdldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmNlwiOyB9XG4uZmktdGVsZXBob25lLWFjY2Vzc2libGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZjdcIjsgfVxuLmZpLXRlbGVwaG9uZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOFwiOyB9XG4uZmktdGV4dC1jb2xvcjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmOVwiOyB9XG4uZmktdGh1bWJuYWlsczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmYVwiOyB9XG4uZmktdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZiXCI7IH1cbi5maS10b3Jzby1idXNpbmVzczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmY1wiOyB9XG4uZmktdG9yc28tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMWZkXCI7IH1cbi5maS10b3JzbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjFmZVwiOyB9XG4uZmktdG9yc29zLWFsbC1mZW1hbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYxZmZcIjsgfVxuLmZpLXRvcnNvcy1hbGw6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDBcIjsgfVxuLmZpLXRvcnNvcy1mZW1hbGUtbWFsZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwMVwiOyB9XG4uZmktdG9yc29zLW1hbGUtZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjAyXCI7IH1cbi5maS10b3Jzb3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDNcIjsgfVxuLmZpLXRyYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA0XCI7IH1cbi5maS10cmVlczpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwNVwiOyB9XG4uZmktdHJvcGh5OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjA2XCI7IH1cbi5maS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDdcIjsgfVxuLmZpLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMDhcIjsgfVxuLmZpLXVubGluazpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwOVwiOyB9XG4uZmktdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBhXCI7IH1cbi5maS11cGxvYWQtY2xvdWQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGJcIjsgfVxuLmZpLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwY1wiOyB9XG4uZmktdXNiOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjBkXCI7IH1cbi5maS12aWRlbzpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIwZVwiOyB9XG4uZmktdm9sdW1lLW5vbmU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMGZcIjsgfVxuLmZpLXZvbHVtZS1zdHJpa2U6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTBcIjsgfVxuLmZpLXZvbHVtZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxMVwiOyB9XG4uZmktd2ViOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEyXCI7IH1cbi5maS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxmMjEzXCI7IH1cbi5maS13aWRnZXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTRcIjsgfVxuLmZpLXdyZW5jaDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxNVwiOyB9XG4uZmkteC1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTZcIjsgfVxuLmZpLXg6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMTdcIjsgfVxuLmZpLXllbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOFwiOyB9XG4uZmktem9vbS1pbjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjIxOVwiOyB9XG4uZmktem9vbS1vdXQ6YmVmb3JlIHsgY29udGVudDogXCJcXGYyMWFcIjsgfVxuIiwiLypcbiAgVElUTEUgQkFSXG4gIC0tLS0tLS0tLVxuXG4gIEEgbmF2aWdhdGlvbmFsIGNvbXBvbmVudCB3aGljaCBjYW4gZGlzcGxheSB0aGUgY3VycmVudCBzY3JlZW4gdGhlIHVzZXIgaXMgb24sIGFsb25nIHdpdGggYWRkaXRpb25hbCBjb250cm9scyBvciBtZW51IGl0ZW1zLlxuXG4gIFRoZSB0aXRsZSBiYXIgaW5jbHVkZXMgY2xhc3NlcyB0byBjcmVhdGUgY2VudGVyLCBsZWZ0LCBhbmQgcmlnaHQgc2VjdGlvbnMsIHdoaWNoIGNhbiBiZSB1c2VkIGluIGFueSBjb21iaW5hdGlvbi4gSG93ZXZlciwgaW4gdGhlIG1hcmt1cCwgdGhlIHNlY3Rpb25zIG11c3QgY29tZSBpbiB0aGlzIG9yZGVyOlxuICAgLSBDZW50ZXJcbiAgIC0gTGVmdFxuICAgLSBSaWdodFxuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBUaXRsZSBCYXJcbiR0aXRsZWJhci1jZW50ZXItd2lkdGg6IDUwJSAhZGVmYXVsdDtcbiR0aXRsZWJhci1zaWRlLXdpZHRoOiAoMTAwJSAtICR0aXRsZWJhci1jZW50ZXItd2lkdGgpIC8gMiAhZGVmYXVsdDtcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAjZWVlICFkZWZhdWx0O1xuJHRpdGxlYmFyLWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuJHRpdGxlYmFyLWJvcmRlcjogMXB4IHNvbGlkICNjY2MgIWRlZmF1bHQ7XG4kdGl0bGViYXItcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuJHRpdGxlYmFyLWl0ZW0tY2xhc3NlczogKFxuICBjZW50ZXI6ICdjZW50ZXInLFxuICBsZWZ0OiAnbGVmdCcsXG4gIHJpZ2h0OiAncmlnaHQnLFxuICB0aXRsZTogJ3RpdGxlJyxcbikgIWRlZmF1bHQ7XG4vLy9cblxuJXRpdGxlLWJhciB7XG4gICRjZW50ZXI6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgY2VudGVyKTtcbiAgJGxlZnQ6IG1hcC1nZXQoJHRpdGxlYmFyLWl0ZW0tY2xhc3NlcywgbGVmdCk7XG4gICRyaWdodDogbWFwLWdldCgkdGl0bGViYXItaXRlbS1jbGFzc2VzLCByaWdodCk7XG4gICR0aXRsZTogbWFwLWdldCgkdGl0bGViYXItaXRlbS1jbGFzc2VzLCB0aXRsZSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgLy8gRGVub3RlcyB0aGUgdGl0bGUgb2YgdGhlIGJhclxuICAuI3skdGl0bGV9IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC8vIERlbm90ZXMgbGVmdCwgcmlnaHQsIGFuZCBjZW50ZXIgc2VjdGlvbnMgb2YgdGhlIGJhclxuICAuI3skbGVmdH0sIC4jeyRjZW50ZXJ9LCAuI3skcmlnaHR9IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgLy8gSWYgb25seSBvbmUgc2VjdGlvbiBpcyBpbiB1c2UsIHN0cmV0Y2ggaXQgYWxsIHRoZSB3YXkgb3V0XG4gICAgJjpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTGVmdCBhbHdheXMgY29tZXMgZmlyc3QsIHRoZW4gY2VudGVyLCB0aGVuIHJpZ2h0XG4gIC8vIFRoZSBsZWZ0IGFuZCByaWdodCBzZWN0aW9ucyBoYXZlIHRoZSBzYW1lIHdpZHRoXG4gIC4jeyRsZWZ0fSB7XG4gICAgb3JkZXI6IDE7XG4gICAgZmxleDogMCAwICR0aXRsZWJhci1zaWRlLXdpZHRoO1xuICB9XG4gIC4jeyRjZW50ZXJ9IHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAwIDAgJHRpdGxlYmFyLWNlbnRlci13aWR0aDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLiN7JHJpZ2h0fSB7XG4gICAgb3JkZXI6IDM7XG4gICAgZmxleDogMCAwICR0aXRsZWJhci1zaWRlLXdpZHRoO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLy8gSWYgb25seSBsZWZ0IGFuZCByaWdodCBhcmUgaW4gdXNlLCBzdHJldGNoIHRoZW0gYm90aCBvdXQgZXF1YWxseVxuICAuI3skbGVmdH06Zmlyc3QtY2hpbGQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG4gIC4jeyRsZWZ0fTpmaXJzdC1jaGlsZCArIC4jeyRyaWdodH06bGFzdC1jaGlsZCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAvLyBJZiBvbmx5IGNlbnRlciBhbmQgcmlnaHQgYXJlIGluIHVzZSwgc2hpZnQgdGhlIGNlbnRlciBzZWN0aW9uIGludG8gdGhlIHJpZ2h0IHBvc2l0aW9uXG4gIC4jeyRjZW50ZXJ9OmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiAkdGl0bGViYXItc2lkZS13aWR0aDtcbiAgfVxuICAvLyBJZiBvbmx5IGNlbnRlciBhbmQgbGVmdCBhcmUgaW4gdXNlLCBvdmVycmlkZSB0aGUgYWJvdmUgc3R5bGVcbiAgLiN7JGNlbnRlcn0gKyAuI3skbGVmdH0ge1xuICAgIG1hcmdpbi1yaWdodDogLSgkdGl0bGViYXItc2lkZS13aWR0aCk7XG4gIH1cbn1cblxuQG1peGluIHRpdGxlLWJhci1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICR0aXRsZWJhci1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICR0aXRsZWJhci1jb2xvcixcbiAgJGJvcmRlcjogJHRpdGxlYmFyLWJvcmRlcixcbiAgJHBhZGRpbmc6ICR0aXRsZWJhci1wYWRkaW5nXG4pIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xufVxuXG5AbWl4aW4gdGl0bGUtYmFyKFxuICAkYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQsXG4gICRjb2xvcjogJHRpdGxlYmFyLWNvbG9yLFxuICAkYm9yZGVyOiAkdGl0bGViYXItYm9yZGVyLFxuICAkcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmdcbikge1xuICBAZXh0ZW5kICV0aXRsZS1iYXI7XG4gIEBpbmNsdWRlIHRpdGxlLWJhci1zdHlsZSgkYmFja2dyb3VuZCwgJGNvbG9yLCAkYm9yZGVyLCAkcGFkZGluZyk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHModGl0bGUtYmFyKSB7XG4gIC50aXRsZS1iYXIge1xuICAgIEBpbmNsdWRlIHRpdGxlLWJhcjtcblxuICAgICYucHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSB0aXRsZS1iYXItc3R5bGUoJHByaW1hcnktY29sb3IsIGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcikpO1xuICAgICAgYSwgYTpob3ZlciB7IGNvbG9yOiBpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpOyB9XG4gICAgICBAaWYgdXNpbmcoaWNvbmljKSB7IC5pY29uaWMgeyBAaW5jbHVkZSBjb2xvci1pY29uKGlzaXRsaWdodCgkcHJpbWFyeS1jb2xvcikpOyB9IH1cbiAgICB9XG4gICAgJi5kYXJrIHtcbiAgICAgIEBpbmNsdWRlIHRpdGxlLWJhci1zdHlsZSgkZGFyay1jb2xvciwgI2ZmZik7XG4gICAgICBhLCBhOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cbiAgICAgIEBpZiB1c2luZyhpY29uaWMpIHsgLmljb25pYyB7IEBpbmNsdWRlIGNvbG9yLWljb24oI2ZmZik7IH0gfVxuICAgIH1cbiAgfVxuICAgIC50aXRsZS1iYXItYm90dG9tIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItdG9wOiAkdGl0bGViYXItYm9yZGVyO1xuICAgIH1cbn1cbiIsIi8vIElDT05JQ1xuLy8gLS0tLS0tXG4vL1xuLy8gQSBzYW1wbGUgb2YgMjQgZmxleGlibGUsIGVhc2lseSBzY2hlbWFibGUgaWNvbnMgZnJvbSB0aGUgZm9sa3MgYXQgSWNvbmljLlxuLy8gXG4vLyBGZWF0dXJlczpcbi8vICAtIDI0IGljb25zXG4vLyAgLSBCdWlsdC1pbiBjb2xvcmluZyBhbmQgc2l6aW5nIGNsYXNzZXNcbi8vICAtIENvbG9yaW5nIG1peGluXG4vLyAgLSBBbmd1bGFyIHN1cHBvcnRcblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBJY29uaWNcbiRpY29uaWMtcHJpbWFyeS1maWxsOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRpY29uaWMtcHJpbWFyeS1zdHJva2U6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGljb25pYy1hY2NlbnQtZmlsbDogJGljb25pYy1wcmltYXJ5LWZpbGwgIWRlZmF1bHQ7XG4kaWNvbmljLWFjY2VudC1zdHJva2U6ICRpY29uaWMtYWNjZW50LWZpbGwgIWRlZmF1bHQ7XG4vLy9cblxuLy8gQ29sb3JzIHRoZSBmaWxsLCBhbmQgb3B0aW9uYWxseSBzdHJva2UsIGFjY2VudCBmaWxsLCBhbmQgYWNjZW50IHN0cm9rZSBvZiBhbiBJY29uaWMgaWNvbi5cbkBtaXhpbiBjb2xvci1pY29uKFxuICAkZmlsbCxcbiAgJHN0cm9rZTogbnVsbCxcbiAgJGZpbGxBY2NlbnQ6IG51bGwsXG4gICRzdHJva2VBY2NlbnQ6IG51bGxcbikge1xuICAqIHtcbiAgICBmaWxsOiAkZmlsbDtcblxuICAgIC8vIFVzZSB0aGUgZmlsbCBjb2xvciBpZiBubyBzdHJva2UgaXMgcHJvdmlkZWRcbiAgICBAaWYgaGFzdmFsdWUoJHN0cm9rZSkge1xuICAgICAgc3Ryb2tlOiAkc3Ryb2tlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBzdHJva2U6ICRmaWxsO1xuICAgIH1cblxuICAgICYuaWNvbmljLXByb3BlcnR5LWFjY2VudCB7XG4gICAgICAvLyBVc2UgdGhlIGZpbGwgY29sb3IgaWYgbm8gYWNjZW50IGlzIHByb3ZpZGVkXG4gICAgICBAaWYgaGFzdmFsdWUoJGZpbGxBY2NlbnQpIHtcbiAgICAgICAgZmlsbDogJGZpbGxBY2NlbnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGZpbGw6ICRmaWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBVc2UgdGhlIG5vcm1hbCBzdHJva2UgY29sb3IgaWYgbm8gYWNjZW50IGlzIHByb3ZpZGVkXG4gICAgICBAaWYgaGFzdmFsdWUoJHN0cm9rZUFjY2VudCkge1xuICAgICAgICBzdHJva2U6ICRzdHJva2VBY2NlbnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIC4uLm9yIHVzZSB0aGUgZmlsbCBpZiBubyBub3JtYWwgc3Ryb2tlIGlzIHByb3ZpZGVkXG4gICAgICAgIEBpZiBoYXN2YWx1ZSgkc3Ryb2tlKSB7XG4gICAgICAgICAgc3Ryb2tlOiAkc3Ryb2tlO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBzdHJva2U6ICRmaWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoaWNvbmljKSB7XG4gIC5pY29uaWMge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgYSA+ICYge1xuICAgICAgQGluY2x1ZGUgY29sb3ItaWNvbigkcHJpbWFyeS1jb2xvcik7XG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gIC5pY29uaWMgKiB7XG4gICAgZmlsbDogJGljb25pYy1wcmltYXJ5LWZpbGw7XG4gICAgc3Ryb2tlOiAkaWNvbmljLXByaW1hcnktc3Ryb2tlO1xuXG4gICAgJi5pY29uaWMtcHJvcGVydHktYWNjZW50IHtcbiAgICAgIGZpbGw6ICRpY29uaWMtYWNjZW50LWZpbGw7XG4gICAgICBzdHJva2U6ICRpY29uaWMtYWNjZW50LXN0cm9rZTtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkY29sb3IgaW4gbWFwLWtleXMoJGZvdW5kYXRpb24tY29sb3JzKSB7XG4gICAgLmljb25pYy1jb2xvci0jeyRjb2xvcn0ge1xuICAgICAgQGluY2x1ZGUgY29sb3ItaWNvbihtYXAtZ2V0KCRmb3VuZGF0aW9uLWNvbG9ycywgJGNvbG9yKSk7XG4gICAgfVxuICB9XG4gIC5pY29uaWMtY29sb3Itc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRzZWNvbmRhcnktY29sb3IpO1xuICB9XG59XG4iLCIvLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEJ1dHRvblxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW46IDAgJGdsb2JhbC1wYWRkaW5nICRnbG9iYWwtcGFkZGluZyAwICFkZWZhdWx0O1xuJGJ1dHRvbi1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYnV0dG9uLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpICFkZWZhdWx0O1xuJGJ1dHRvbi1jb2xvcjogYXV0byAhZGVmYXVsdDtcbiRidXR0b24tcmFkaXVzOiAwICFkZWZhdWx0O1xuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjcsXG4gIHNtYWxsOiAwLjgsXG4gIG1lZGl1bTogMSxcbiAgbGFyZ2U6IDEuMyxcbikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtc2l6ZTogMC45cmVtICFkZWZhdWx0O1xuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjUgIWRlZmF1bHQ7XG4kYnV0dG9uLXRhZy1zZWxlY3RvcjogZmFsc2UgIWRlZmF1bHQ7XG4vLy9cblxuJWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBmb250LXNpemU6ICRidXR0b24tZm9udC1zaXplO1xuICBib3JkZXItcmFkaXVzOiAkYnV0dG9uLXJhZGl1cztcblxuICAvLyBEcm9wZG93biBhcnJvd1xuICAvLyBUT0RPOiBDaGFuZ2UgdG8gY2xhc3MgYW5kIG1peGluIGJlY2F1c2Ugbm93IHRoZSB0b2dnbGUgaXMgJ2ZhLW9wZW4nIHdoaWNoIGlzIHRvbyBnZW5lcmljXG4gIC8vICZbZGF0YS1wb3B1cC10b2dnbGVdIHtcbiAgLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vICAgcGFkZGluZy1yaWdodDogMmVtOyAvLyBQbGFjZWhvbGRlclxuXG4gIC8vICAgJjo6YWZ0ZXIge1xuICAvLyAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgYmxhY2ssIHRvcCk7XG4gIC8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgICByaWdodDogMC43ZW07XG4gIC8vICAgICB0b3A6IDUwJTtcbiAgLy8gICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbkBtaXhpbiBidXR0b24tc2l6ZSgkc2l6ZTogbWVkaXVtLCAkZXhwYW5kOiBmYWxzZSkge1xuICAkc2l6ZTogJGJ1dHRvbi1mb250LXNpemUgKiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsICRzaXplKTtcbiAgZm9udC1zaXplOiAkc2l6ZTtcblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxuXG4gIEBpZiB1c2luZyhpY29uaWMpIHtcbiAgICAuaWNvbmljIHtcbiAgICAgIHdpZHRoOiAxZW07XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0ycHg7IC8vIFRoZSBpY29ucyBhcmUgb2RkbHkgbWlzYWxpZ25lZFxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24tc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLXN0eWxlLFxuICAkcmFkaXVzOiAkYnV0dG9uLXJhZGl1cyxcbiAgJGJ0bmdyb3VwOiBmYWxzZVxuKXtcbiAgQGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogMjUlKTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAyNSUpO1xuICAgIH1cbiAgfVxuICAvLyBTb2xpZCBpcyB0aGUgZGVmYXVsdFxuICBAZWxzZSB7XG4gICAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICAgICRjb2xvcjogaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgICAgIGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgICB9XG4gICAgICBjb2xvcjogJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYnRuZ3JvdXAge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMjUlKTtcbiAgICB9XG4gIH1cblxuICBAaWYgdXNpbmcoaWNvbmljKSB7XG4gICAgQGlmICRzdHlsZSA9PSBob2xsb3cge1xuICAgICAgLmljb25pYyB7XG4gICAgICAgIEBpbmNsdWRlIGNvbG9yLWljb24oJGJhY2tncm91bmQpO1xuICAgICAgfVxuICAgICAgJjpob3ZlciAuaWNvbmljIHtcbiAgICAgICAgQGluY2x1ZGUgY29sb3ItaWNvbihzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogMjUlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC5pY29uaWMge1xuICAgICAgICBAaW5jbHVkZSBjb2xvci1pY29uKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24tZGlzYWJsZWQoKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1peGluIGJ1dHRvbihcbiAgJHNpemU6IG1lZGl1bSxcbiAgJGV4cGFuZDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvcixcbiAgJHN0eWxlOiAkYnV0dG9uLXN0eWxlLFxuICAkcmFkaXVzOiAkYnV0dG9uLXJhZGl1c1xuKSB7XG4gIEBleHRlbmQgJWJ1dHRvbjtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHNpemUpO1xuICBAaW5jbHVkZSBidXR0b24tZXhwYW5kKCRleHBhbmQpO1xuICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IsICRzdHlsZSk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoYnV0dG9uKSB7XG4gIC5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbjtcblxuICAgICYudGlueSAgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUodGlueSk7IH1cbiAgICAmLnNtYWxsICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKHNtYWxsKTsgfVxuICAgICYubGFyZ2UgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUobGFyZ2UpOyB9XG4gICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKSB9XG4gICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJHN1Y2Nlc3MtY29sb3IsIGF1dG8pIH1cbiAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkd2FybmluZy1jb2xvciwgYXV0bykgfVxuICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRhbGVydC1jb2xvciwgYXV0bykgfVxuICAgICYuaW5mbyAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRpbmZvLWNvbG9yLCBhdXRvKSB9XG4gICAgJi5kYXJrICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGRhcmstY29sb3IsIGF1dG8pIH1cblxuICAgIEBpZiAkYnV0dG9uLXN0eWxlICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc3R5bGU6IGhvbGxvdyk7XG4gICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRzZWNvbmRhcnktY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkc3VjY2Vzcy1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XG4gICAgICAgICYud2FybmluZyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCR3YXJuaW5nLWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cbiAgICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGFsZXJ0LWNvbG9yLCAkc3R5bGU6IGhvbGxvdyk7IH1cbiAgICAgICAgJi5pbmZvICAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGluZm8tY29sb3IsICRzdHlsZTogaG9sbG93KTsgfVxuICAgICAgICAmLmRhcmsgICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkZGFyay1jb2xvciwgJHN0eWxlOiBob2xsb3cpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7IEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDsgfVxuICB9XG5cbiAgQGlmICRidXR0b24tdGFnLXNlbGVjdG9yIHtcbiAgICBidXR0b24ge1xuICAgICAgQGV4dGVuZCAuYnV0dG9uO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwc1xuLy9cbi8vIEJSRUFLUE9JTlRTXG4vLyAtLS0tLS0tLS0tLVxuLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBoYXMgdGhyZWUgY29yZSBicmVha3BvaW50czogc21hbGwgKD4gMCksIG1lZGl1bSAoPj0gNjQwKSwgYW5kIGxhcmdlICg+PSAxMDI0KS5cbi8vIFRoZXJlIGFyZSB0d28gYWRkaXRpb25hbCBicmVha3BvaW50cywgeGxhcmdlLCBhbmQgeHhsYXJnZSwgd2hpY2ggKGJ5IGRlZmF1bHQpIGRvIG5vdCBvdXRwdXQgYXMgc2l6aW5nIGNsYXNzZXMuXG4vLyBBY2Nlc3MgbmFtZWQgYnJlYWtwb2ludHMgdXNpbmcgdGhlIG1peGluIGJyZWFrcG9pbnQoJHNpemUpLCB3aGVyZSAkc2l6ZSBpcyBhIGJyZWFrcG9pbnQgdmFsdWUuXG4vLyBZb3UgY2FuIGFsc28gcGFzcyBhbiBlbSwgcmVtLCBvciBwaXhlbCB2YWx1ZSBpbnRvIHRoaXMgbWl4aW4gdG8gZ2VuZXJhdGUgYW4gZW0tYmFzZWQgbWVkaWEgcXVlcnkuXG4vLyBDcmVhdGUgbmV3IG5hbWVkIGJyZWFrcG9pbnRzIHVzaW5nIHRoZSAkYnJlYWtwb2ludHMgbWFwLiBDaGFuZ2Ugd2hpY2ggbmFtZWQgYnJlYWtwb2ludHMgZ2V0IHRoZWlyIG93biBjbGFzc2VzIGJ5IG1vZGlmeWluZyB0aGUgJGJyZWFrcG9pbnQtY2xhc3NlcyBtYXAuXG4vLyBOT1RFOiBJZiB5b3UgY2hhbmdlIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBrbm93IHRoYXQgYWxsIHZhbHVlcyBtdXN0IGJlIG9yZGVyZWQgYnkgd2lkdGgsIHNtYWxsZXN0IHdpZHRoIGZpcnN0LiBTbyAwIGlzIGFsd2F5cyB5b3VyIGZpcnN0IHZhbHVlLlxuXG4vLyAxLiBWYXJpYWJsZXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gQnJlYWtwb2ludHNcbi8vIFRoZXNlIGFyZSBvdXIgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZW0gaW4gb3VyIGJyZWFrcG9pbnQgZnVuY3Rpb24gbGlrZSB0aGlzOiBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkgeyAvLyBNZWRpdW0gYW5kIGxhcmdlciBzdHlsZXMgfVxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiByZW0tY2FsYygwKSxcbiAgbWVkaXVtOiByZW0tY2FsYyg2NDApLFxuICBsYXJnZTogcmVtLWNhbGMoMTIwMCksXG4gIHhsYXJnZTogcmVtLWNhbGMoMTQ0MCksXG4gIHh4bGFyZ2U6IHJlbS1jYWxjKDE5MjApLFxuKSAhZGVmYXVsdDtcblxuLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBzbWFsbC0xMiwgbWVkaXVtLTYsIGFuZCBzbyBvbi5cbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuLy8vXG5cbi8vIDIuIE1peGluc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nICRyZW0tYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge21peGVkfSAkdmFsIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L2VtL3JlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsOiBzbWFsbCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnBNYXg6IDA7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBFdmVudHVhbCBvdXRwdXRcbiAgJHN0cjogJ29ubHkgc2NyZWVuJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgICRzdHI6ICRzdHIgKyAnIGFuZCAob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICAgICRuZXh0LWJwOiBtYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAgICAgQGlmICRuZXh0LWJwID09IG51bGwge1xuICAgICAgICAgICAgJGJwTWF4OiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAkYnBNYXg6ICRuZXh0LWJwIC0gKDEvMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgICAkbmFtZWQ6IHRydWU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRicDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICAgIEBpZiB1bml0KCRicCkgPT0gJ3B4JyBvciB1bml0KCRicCkgPT0gJycge1xuICAgICAgJGJwOiByZW0tY2FsYygkYnApO1xuICAgIH1cbiAgICAvLyBGaW5hbGx5LCB0aGUgcmVtIHZhbHVlIGlzIHR1cm5lZCBpbnRvIGFuIGVtIHZhbHVlXG4gICAgJGJwOiBzdHJpcC11bml0KCRicCkgKiAxZW07XG5cbiAgICAvLyBTa2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uIGlmIHRoZSBpbnB1dCBpcyBcIjAgdXBcIiBvciBcIjAgZG93blwiXG4gICAgQGlmICRicCA+IDAgb3IgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gQW5kIGxvLCBhIG1lZGlhIHF1ZXJ5IHdhcyBib3JuXG4gICAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICAgICAgICBAaWYgJGJwTWF4ICE9IG51bGwge1xuICAgICAgICAgICAgJHN0cjogJHN0ciArICcgYW5kIChtYXgtd2lkdGg6ICN7JGJwTWF4fSknO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgQGRlYnVnICdFUlJPUjogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlLic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgJG1heDogJGJwIC0gKDEvMTYpO1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgKG1pbi13aWR0aDogI3skYnB9KSc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3V0cHV0XG4gIEBpZiAkYnAgPT0gMGVtIGFuZCAkZGlyICE9ICdvbmx5JyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAjeyRzdHJ9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUHJlZml4ZXMgc2VsZWN0b3IgJGNsYXNzIHdpdGggYnJlYWtwb2ludCBrZXl3b3JkcywgYWxsb3dpbmcgeW91IHRvIGNyZWF0ZSBhIGJhdGNoIG9mIGJyZWFrcG9pbnQgY2xhc3NlcyB3aXRoIG9uZSBjaHVuayBvZiBjb2RlLiBJZiB5b3Ugd2FudCB0byBza2lwIGEgYnJlYWtwb2ludCAobGlrZSBzbWFsbCwgYmVjYXVzZSBtb2JpbGUgZmlyc3QgYW5kIGFsbCB0aGF0KSwgYWRkIHZhbHVlcyB0byB0aGUgJG9taXQgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRjbGFzcyAtIENsYXNzIHRvIHByZWZpeCB3aXRoIHRoZSBicmVha3BvaW50IG5hbWUgYW5kIGEgaHlwaGVuLlxuLy8vIEBwYXJhbSB7bGlzdH0gJG9taXQgLSBOYW1lZCBicmVha3BvaW50cyB0byBza2lwLiBObyBjbGFzcyB3aWxsIGJlIGFkZGVkIHdpdGggYnJlYWtwb2ludHMgaW4gdGhpcyBsaXN0LlxuQG1peGluIGVhY2gtYnJlYWtwb2ludCgkY2xhc3MsICRvbWl0OiAoKSkge1xuICAvLyBJdGVyYXRlIHRocm91Z2ggYnJlYWtwb2ludCBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIC8vIE9ubHkgZG8gc29tZXRoaW5nIGlmIHRoZSBicmVha3BvaW50IGlzIG5vdCBpbiAkb21pdFxuICAgIEBpZiBpbmRleCgkb21pdCwgJHNpemUpID09IG51bGwge1xuICAgICAgJHZhbDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgICAgIC8vIFByZWZpeCAkY2xhc3Mgd2l0aCAkc2l6ZSBhbmQgYSBoeXBoZW5cbiAgICAgIC4jeyRzaXplICsgJy0nICsgJGNsYXNzfSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAzLiBDU1MgT3V0cHV0XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxuLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG5tZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7JGZvdW5kYXRpb24tdmVyc2lvbn1cIjtcbn1cbm1ldGEuZm91bmRhdGlvbi1tcSB7XG4gIGZvbnQtZmFtaWx5OiBcIiN7bWFwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfVwiO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgQXBwcyBBTFBIQVxuLy8gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbiRpbmNsdWRlLWNzczogKCkgIWRlZmF1bHQ7XG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG4kcmVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBDaGVja3MgaWYgYSBtb2R1bGUgaXMgaW4gdXNlLlxuQGZ1bmN0aW9uIHVzaW5nKCRuYW1lKSB7XG4gIC8vIEltcG9ydCBmcm9tIGdsb2JhbCBzY29wZVxuICAkaW5jbHVkZS1jc3M6ICRpbmNsdWRlLWNzcyAhZ2xvYmFsO1xuICAkbW9kdWxlLWtleTogbWFwLWdldCgkaW5jbHVkZS1jc3MsICRuYW1lKTtcblxuICBAaWYgJG1vZHVsZS1rZXkgPT0gdHJ1ZSBvciAkbW9kdWxlLWtleSA9PSBudWxsIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vIENoZWNrcyBpZiBhIG1vZHVsZSdzIENTUyBoYXMgYWxyZWFkeSBiZWVuIGV4cG9ydGVkLlxuQGZ1bmN0aW9uIGltcG9ydGVkKCRuYW1lKSB7XG4gIC8vIEltcG9ydCBmcm9tIGdsb2JhbCBzY29wZVxuICAkbW9kdWxlczogJG1vZHVsZXMgIWdsb2JhbDtcbiAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBpbXBvcnRlZCBsaXN0XG4gIEBpZiB0eXBlLW9mKGluZGV4KCRtb2R1bGVzLCAkbmFtZSkpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vIE91dHB1dHMgdGhlIGNodW5rIG9mIGNvbnRlbnQgcGFzc2VkIGlmIGNvbXBvbmVudCAkbmFtZSBoYXNuJ3QgeWV0IGJlZW4gb3V0cHV0LlxuLy8vIFRoaXMgcHJldmVudHMgY29kZSBkdXBsaWNhdGlvbiBieSBrZWVwaW5nIHRyYWNrIG9mIHdoaWNoIGNvbXBvbmVudHMgaGF2ZSBhbHJlYWR5IGJlZW4gb3V0cHV0LlxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiBjb21wb25lbnQgdG8gb3V0cHV0XG4vLy9cbi8vLyBAb3V0cHV0IFRoZSBjb250ZW50IHBhc3NlZCwgaWYgdGhlIGNvbXBvbmVudCBoYXMgbm90IHlldCBiZWVuIGV4cG9ydGVkLlxuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBoYXMgYWxyZWFkeSBiZWVuIGltcG9ydGVkXG4gIEBpZiBub3QoaW1wb3J0ZWQoJG5hbWUpKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIG1vZHVsZSBzaG91bGQgYmUgdXNlZFxuICAgIEBpZiB1c2luZygkbmFtZSkge1xuICAgICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIE1hcCBTZXJpYWxpemVcbi8vLyBDb252ZXJ0cyBhIFNhc3MgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGVuY29kZSB0aGUgbWVkaWEgcXVlcmllcyBpbiB0aGUgYCRicmVha3BvaW50c2AgdmFyaWFibGUsIHNvIGl0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byBvdXIgSmF2YVNjcmlwdCBmb3IgdXNlIHRoZXJlLlxuLy8vXG4vLy8gQHBhcmFtIHttYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm4gQSBzdHJpbmcgd2l0aCBhIG1hcCBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcuXG5AZnVuY3Rpb24gbWFwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAkdmFsdWUgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBNYXAgTmV4dFxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vXG4vLy8gQHBhcmFtIHttYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHttaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm4gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIG51bGwuXG5AZnVuY3Rpb24gbWFwLW5leHQoJG1hcCwgJGtleSkge1xuICAvLyBTdG9yZSB0aGUgdmFsdWVzIG9mIHRoZSBtYXAgYXMgYSBsaXN0LCBzbyB3ZSBjYW4gYWNjZXNzIHRoZW0gd2l0aCBudGhcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcblxuICAvLyBHaGV0dG8gZm9yIGxvb3BcbiAgJGk6IDE7XG4gICRmb3VuZDogZmFsc2U7XG4gIEBlYWNoICR2YWwgaW4gbWFwLWtleXMoJG1hcCkge1xuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xuICAgICAgQGlmICgka2V5ID09ICR2YWwpIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfVxuICAgICAgJGk6ICRpICsgMTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCAkaSk7XG4gIH1cbn1cblxuLy8vIElzIEl0IExpZ2h0P1xuLy8vIENoZWNrcyB0aGUgbGlnaHRuZXNzIG9mICRjb2xvciwgYW5kIGlmIGl0IHBhc3NlcyB0aGUgJHRocmVzaG9sZCBvZiBsaWdodG5lc3MsIGl0IHJldHVybnMgdGhlIGAkeWVzYCBjb2xvci4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIHRoZSBgJG5vYCBjb2xvci4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gZHluYW1pY2FsbHkgb3V0cHV0IGEgZm9yZWdyb3VuZCBjb2xvciBiYXNlZCBvbiBhIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbGlnaHRuZXNzIG9mLlxuLy8vIEBwYXJhbSB7Y29sb3J9ICR5ZXMgLSBDb2xvciB0byByZXR1cm4gaWYgJGNvbG9yIGlzIGxpZ2h0LlxuLy8vIEBwYXJhbSB7Y29sb3J9ICRubyAtIENvbG9yIHRvIHJldHVybiBpZiAkY29sb3IgaXMgZGFyay5cbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIFRoZSAkeWVzIGNvbG9yIG9yICRubyBjb2xvci5cbkBmdW5jdGlvbiBpc2l0bGlnaHQoJGNvbG9yLCAkeWVzOiAjMDAwLCAkbm86ICNmZmYsICR0aHJlc2hvbGQ6IDYwJSkge1xuICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJHllcztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkbm87XG4gIH1cbn1cblxuLy8vIFNtYXJ0IFNjYWxlXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgbGlnaHRlciBpZiBpdCdzIGxpZ2h0LCBvciBkYXJrZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBcImZhZGVcIiBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge2NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge3BlcmNlbnRhZ2V9ICRzY2FsZSAtIEFtb3VudCB0byBzY2FsZSB1cCBvciBkb3duLlxuLy8vIEBwYXJhbSB7cGVyY2VudGFnZX0gJHRocmVzaG9sZCAtIFRocmVzaG9sZCBvZiBsaWdodG5lc3MgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4gQSBzY2FsZWQgY29sb3IuXG5AZnVuY3Rpb24gc21hcnRzY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDYwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBIYXMgVmFsdWVcbi8vLyBSZXR1cm5zIHRydWUgaWYgYSB2YWx1ZSBpcyBub3QgMCwgbnVsbCwgb3Igbm9uZS4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gY2hlY2sgZm9yIHZhbHVlcyBsaWtlIGBib3JkZXI6IDBgIG9yIGBib3gtc2hhZG93OiBub25lYC5cbi8vL1xuLy8vIEBwYXJhbSAkdmFsIC0gVmFsdWUgdG8gY2hlY2suXG4vLy9cbi8vLyBAcmV0dXJuIFRydWUgaWYgYCR2YWxgIGlzIG5vdCAwLCBudWxsLCBvciBub25lLlxuQGZ1bmN0aW9uIGhhc3ZhbHVlKCR2YWwpIHtcbiAgQGlmICR2YWwgPT0gbnVsbCBvciAkdmFsID09IG5vbmUge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJHZhbCkgPT0gMCB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLyBHZXQgU2lkZVxuLy8vIERldGVybWluZSBhIHRvcC9yaWdodC9ib3R0b20vcmlnaHQgdmFsdWUgb24gYSBwYWRkaW5nLCBtYXJnaW4sIGV0Yy4gcHJvcGVydHksIG5vIG1hdHRlciBob3cgbWFueSB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4uIFVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNwZWNpZmljIHNpZGUgb2YgYSB2YWx1ZSwgYnV0IGRvbid0IGtub3cgaWYgdGhlIHZhbHVlIGlzIHVzaW5nIHNob3J0aGFuZC5cbi8vL1xuLy8vIEBwYXJhbSB7bGlzdHxudW1iZXJ9ICR2YWwgLSBWYWx1ZSB0byBhbmFseXplLiBTaG91bGQgYmUgYSBzaG9ydGhhbmQgc2l6aW5nIHByb3BlcnR5LCBlLmcuIFwiMWVtIDJlbSAxZW1cIlxuLy8vIEBwYXJhbSB7a2V5d29yZH0gJHNpZGUgLSBTaWRlIHRvIHJldHVybi4gU2hvdWxkIGJlIHRvcCwgcmlnaHQsIGJvdHRvbSwgb3IgbGVmdC5cbi8vL1xuLy8vIEByZXR1cm4gQSBzaW5nbGUgdmFsdWUgYmFzZWQgb24gYCR2YWxgIGFuZCBgJHNpZGVgLlxuQGZ1bmN0aW9uIGdldC1zaWRlKCR2YWwsICRzaWRlKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkdmFsKTtcblxuICBAaWYgJGxlbmd0aCA9PSAxIHtcbiAgICBAcmV0dXJuICR2YWw7XG4gIH1cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgQHJldHVybiBtYXAtZ2V0KChcbiAgICAgIHRvcDogbnRoKCR2YWwsIDEpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICksICRzaWRlKTtcbiAgfVxuICBAaWYgJGxlbmd0aCA9PSAzIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoKFxuICAgICAgdG9wOiBudGgoJHZhbCwgMSksXG4gICAgICBsZWZ0OiBudGgoJHZhbCwgMiksXG4gICAgICByaWdodDogbnRoKCR2YWwsIDIpLFxuICAgICAgYm90dG9tOiBudGgoJHZhbCwgMyksXG4gICAgKSwgJHNpZGUpO1xuICB9XG4gIEBpZiAkbGVuZ3RoID09IDQge1xuICAgIEByZXR1cm4gbWFwLWdldCgoXG4gICAgICB0b3A6IG50aCgkdmFsLCAxKSxcbiAgICAgIHJpZ2h0OiBudGgoJHZhbCwgMiksXG4gICAgICBib3R0b206IG50aCgkdmFsLCAzKSxcbiAgICAgIGxlZnQ6IG50aCgkdmFsLCA0KSxcbiAgICApLCAkc2lkZSk7XG4gIH1cbn1cblxuLy8vIEdldCBCb3JkZXIgVmFsdWVcbi8vLyBHaXZlbiBib3JkZXIgJHZhbCwgZmluZCBhIHNwZWNpZmljIGVsZW1lbnQgb2YgdGhlIGJvcmRlciwgd2hpY2ggaXMgJGVsZW0uIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yICRlbGVtIGFyZSB3aWR0aCwgc3R5bGUsIGFuZCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJHZhbCAtIEJvcmRlciB2YWx1ZSB0byBmaW5kIGEgdmFsdWUgaW4uXG4vLy8gQHBhcmFtIHtrZXl3b3JkfSAkZWxlbSAtIEJvcmRlciBjb21wb25lbnQgdG8gZXh0cmFjdC5cbi8vL1xuLy8vIEBwYXJhbSBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBpbiB0aGUgYm9yZGVyIGRlZmluaXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhIDBweCB3aWR0aCwgc29saWQgc3R5bGUsIG9yIGJsYWNrIGJvcmRlci5cbiBAZnVuY3Rpb24gZ2V0LWJvcmRlci12YWx1ZSgkdmFsLCAkZWxlbSkge1xuICAgLy8gRmluZCB0aGUgd2lkdGgsIHN0eWxlLCBvciBjb2xvciBhbmQgcmV0dXJuIGl0XG4gICBAZWFjaCAkdiBpbiAkdmFsIHtcbiAgICAgJHR5cGU6IHR5cGUtb2YoJHYpO1xuICAgICBAaWYgJGVsZW0gPT0gd2lkdGggYW5kICR0eXBlID09ICdudW1iZXInIHtcbiAgICAgICBAcmV0dXJuICR2O1xuICAgICB9XG4gICAgIEBpZiAkZWxlbSA9PSBzdHlsZSBhbmQgJHR5cGUgPT0gJ3N0cmluZycge1xuICAgICAgIEByZXR1cm4gJHY7XG4gICAgIH1cbiAgICAgQGlmICRlbGVtID09IGNvbG9yIGFuZCAkdHlwZSA9PSAnY29sb3InIHtcbiAgICAgICBAcmV0dXJuICR2O1xuICAgICB9XG4gICB9XG5cbiAgIC8vIERlZmF1bHRzXG4gICAkZGVmYXVsdHM6IChcbiAgICAgd2lkdGg6IDAsXG4gICAgIHN0eWxlOiBzb2xpZCxcbiAgICAgY29sb3I6IGJsYWNrLFxuICAgKTtcbiAgIEByZXR1cm4gbWFwLWdldCgkZGVmYXVsdHMsICRlbGVtKTtcbiB9XG5cbi8vLyBHZXQgU2hhZG93IFZhbHVlXG4vLy8gR2l2ZW4gc2hhZG93IHZhbHVlICR2YWwsIGZpbmQgYSBzcGVjaWZpYyBlbGVtZW50IG9mIHRoZSBzaGFkb3csIHdoaWNoIGlzICRlbGVtLiBUaGUgcG9zc2libGUgdmFsdWVzIGZvciAkZWxlbSBhcmUgeCwgeSwgc2l6ZSwgc3ByZWFkLCBjb2xvciwgYW5kIGluc2V0LlxuLy8vXG4vLy8gQHBhcmFtIHtsaXN0fSAkdmFsIC0gU2hhZG93IHZhbHVlIHRvIGZpbmQgYSB2YWx1ZSBpbi5cbi8vLyBAcGFyYW0ge2tleXdvcmR9ICRlbGVtIC0gU2hhZG93IGNvbXBvbmVudCB0byBleHRyYWN0LlxuLy8vXG4vLy8gQHJldHVybiBJZiB0aGUgdmFsdWUgZXhpc3RzLCByZXR1cm5zIHRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBzZXQsIHJldHVybnMgZmFsc2UuIElmIGAkZWxlbWAgaXMgXCJpbnNldFwiLCByZXR1cm5zIHRydWUsIG90aGVyd2lzZSBmYWxzZS5cbkBmdW5jdGlvbiBnZXQtc2hhZG93LXZhbHVlKCR2YWwsICRlbGVtKSB7XG4gIC8vIFJldHVybiBcIm5vbmVcIiBpZiB0aGVyZSdzIG5vIHNoYWRvd1xuICBAaWYgJHZhbCA9PSBub25lIHtcbiAgICBAcmV0dXJuIG5vbmU7XG4gIH1cblxuICAvLyBJbnNldCBhbmQgY29sb3IgYXJlIGFsd2F5cyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmRcbiAgQGlmICRlbGVtID09IGluc2V0IHtcbiAgICBAcmV0dXJuIG50aCgkdmFsLCAxKSA9PSBpbnNldDtcbiAgfVxuICBAaWYgJGVsZW0gPT0gY29sb3Ige1xuICAgIEBpZiB0eXBlLW9mKG50aCgkdmFsLCAtMSkpID09IGNvbG9yIHtcbiAgICAgIEByZXR1cm4gbnRoKCR2YWwsIC0xKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBibGFjaztcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgcmVzdCBvZiB0aGUgdmFsdWVzIGFyZSBsb2NhdGVkIHBlcmlsb3VzbHkgaW4gdGhlIG1pZGRsZVxuICAkdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHYgaW4gJHZhbCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdik7XG4gICAgfVxuICB9XG4gIEBpZiAkZWxlbSA9PSB4IHtcbiAgICBAaWYgbGVuZ3RoKCR2YWx1ZXMpID49IDEge1xuICAgICAgQHJldHVybiBudGgoJHZhbHVlcywgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gMDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGVsZW0gPT0geSB7XG4gICAgQGlmIGxlbmd0aCgkdmFsdWVzKSA+PSAyIHtcbiAgICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRlbGVtID09IHNpemUge1xuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gMyB7XG4gICAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCAzKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZWxlbSA9PSBzcHJlYWQge1xuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPj0gNCB7XG4gICAgICBAcmV0dXJuIG50aCgkdmFsdWVzLCA0KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8gU3RyaXAgVW5pdFxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm4gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gVHVybiB0byBEZWdyZWVzXG4vLy8gQ29udmVydHMgYSB0dXJuIHVuaXQgdG8gdGhlIGVxdWl2YWxlbnQgdW5pdCBpbiBkZWdyZWVzLiAxdHVybiBpcyBlcXVhbCB0byAzNjAgZGVncmVlcy4gTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHR1cm4sIHNvIHRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzIHRvIHVzZSB0dXJucyB3aGlsZSBvdXRwdXR0aW5nIGEgdmFsdWUgdGhhdCBhbGwgYnJvd3NlcnMgdW5kZXJzdGFuZC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdmFsdWUgLSBUdXJuIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJuIFRoZSBzYW1lIHZhbHVlLCBidXQgaW4gZGVncmVlcy5cbkBmdW5jdGlvbiB0dXJuLXRvLWRlZygkdmFsdWUpIHtcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAzNjBkZWc7XG59XG5cbi8vLyBDb252ZXJ0IHRvIFJlbVxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkcmVtLWJhc2VgIHZhcmlhYmxlLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy9cbi8vLyBAcmV0dXJuIEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS5cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpICB7XG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfSAvLyBUdXJuIDByZW0gaW50byAwXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gUmVtIENhbGN1bGF0b3Jcbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGEgbG90IGxpa2UgYGNvbnZlcnQtdG8tcmVtYCwgZXhjZXB0IGl0IGNhbiBjb252ZXJ0IG1vcmUgdGhhbiBvbmUgdmFsdWUgYXQgb25jZSwgd2hpY2ggaXMgdXNlZnVsIHdoZW4gc2V0dGluZyBtdWx0aXBsZSB2YWx1ZXMgb24gYSBgbWFyZ2luYCBvciBgcGFkZGluZ2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcnxsaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vXG4vLy8gQHJldHVybiBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogbnVsbCkge1xuICBAaWYgJGJhc2UtdmFsdWUgPT0gbnVsbCB7XG4gICAgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZTtcbiAgfVxuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG4iLG51bGwsIi8qXG4gIENhcmRzXG5cbiAgU3RydWN0dXJlOlxuXG4gIHRpdGxlc1xuICBsaXN0c1xuKi9cblxuLy8vIEBGb3VuZGF0aW9uLnNldHRpbmdzXG4vLyBDYXJkXG4kY2FyZC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGNhcmQtY29sb3I6IGlzaXRsaWdodCgkY2FyZC1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0c2NhbGUoJGNhcmQtYmFja2dyb3VuZCwgNyUpICFkZWZhdWx0O1xuJGNhcmQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRjYXJkLXNoYWRvdzogMCAxcHggMnB4IHJnYmEoIzAwMCwgMC4yKSAhZGVmYXVsdDtcbiRjYXJkLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiRjYXJkLW1hcmdpbjogMC41cmVtICFkZWZhdWx0O1xuXG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQ6IHNtYXJ0c2NhbGUoJGNhcmQtYmFja2dyb3VuZCwgNyUpICFkZWZhdWx0O1xuLy8vXG5cbkBtaXhpbiBjYXJkLWNvbnRhaW5lcihcbiAgJGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGNhcmQtY29sb3IsXG4gICRib3JkZXI6ICRjYXJkLWJvcmRlcixcbiAgJHJhZGl1czogJGNhcmQtcmFkaXVzLFxuICAkc2hhZG93OiAkY2FyZC1zaGFkb3csXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nLFxuICAkbWFyZ2luOiAkY2FyZC1tYXJnaW5cbikge1xuICBib3JkZXI6ICRib3JkZXI7XG4gIG1hcmdpbi1ib3R0b206ICRtYXJnaW47XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICBib3gtc2hhZG93OiAkc2hhZG93O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBjYXJkLWRpdmlkZXIoXG4gICRiYWNrZ3JvdW5kOiAkY2FyZC1kaXZpZGVyLWJhY2tncm91bmQsXG4gICRwYWRkaW5nOiAkY2FyZC1wYWRkaW5nXG4pIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xufVxuXG5AbWl4aW4gY2FyZC1zZWN0aW9uKFxuICAkcGFkZGluZzogJGNhcmQtcGFkZGluZ1xuKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKGNhcmQpIHtcbiAgLmNhcmQge1xuICAgIEBpbmNsdWRlIGNhcmQtY29udGFpbmVyO1xuXG4gICAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRmb3VuZGF0aW9uLWNvbG9ycykge1xuICAgICAgJi4jeyRjb2xvcn0ge1xuICAgICAgICAkY29sb3ItdmFsdWU6IG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBjYXJkLWNvbnRhaW5lcihcbiAgICAgICAgICAkYmFja2dyb3VuZDogJGNvbG9yLXZhbHVlLFxuICAgICAgICAgICRjb2xvcjogaXNpdGxpZ2h0KCRjb2xvci12YWx1ZSksXG4gICAgICAgICAgJGJvcmRlcjogMFxuICAgICAgICApO1xuICAgICAgICAuY2FyZC1kaXZpZGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBjYXJkLWRpdmlkZXIoXG4gICAgICAgICAgICAkYmFja2dyb3VuZDogc21hcnRzY2FsZSgkY29sb3ItdmFsdWUsIDclKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgICAuY2FyZC1kaXZpZGVyIHtcbiAgICAgIEBpbmNsdWRlIGNhcmQtZGl2aWRlcjtcbiAgICB9XG4gICAgLmNhcmQtc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBjYXJkLXNlY3Rpb247XG4gICAgfVxufVxuIiwiQGZ1bmN0aW9uIGltYWdlLXRyaWFuZ2xlKCRjb2xvcjogIzAwMCkge1xuICAkY29sb3I6IHJnYihyZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpKTtcbiAgQHJldHVybiAnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skY29sb3J9XCI+PC9wb2x5Z29uPjwvc3ZnPic7XG59XG5cbkBtaXhpbiBpbWFnZS1jaGVja21hcmsoJGNvbG9yOiAjMDAwKSB7XG4gICRjb2xvcjogcmdiKHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcikpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+PHBhdGggZmlsbD1cIiN7JGNvbG9yfVwiIGQ9XCJNMTYgMGMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnM3LjE2MyAxNiAxNiAxNiAxNi03LjE2MyAxNi0xNi03LjE2My0xNi0xNi0xNnptNi45MDYgOC44NzVsMi4yMTkgMi4wMzEtMTIuMDYzIDEzLjI4MS02LjE4OC02LjE4OCAyLjEyNS0yLjEyNSAzLjkzOCAzLjkzOCA5Ljk2OS0xMC45Mzh6XCIvPjwvc3ZnPicpO1xuXG4gIC8vIElFMTAgZmFsbGJhY2ssIHNpbmNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBTVkcgZGF0YSBVUkxzXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBZ0NBWUFBQUJ6ZW5yMEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBZGxKUkVGVWVOck1sMEZ1Z3pBUVJZM1RSWmVvRnloVkwwQk9rR1RYSmV6YUhad2d1VW5FQ2FDcmRGZDZncVFuQ04xMVV5azVRZWtOT2xPTkpXTVZHTUNnZkdsa0VJWTNIbnNHMnhGTTNkOTZQalFCMkFKc1dkUHRBUFlPbG4rZFR3WG51dzRESEVHekJ2TkZONkVEQ1RpUzlYSUF3QjQwYWNOb3VjS294T0RJaWUwQXdBT0N1OEtPU25JaU54L01ha0srQTdzVzlvVGZlcnh4M2ZQM1QxblVSb0JHL2lyR1ZhaEh3akhtL0dneDdFM1RNVmRyUW1vUDBnbmdnaGhwWlEzUXZHL0VkUExVZWxBUldJOEF5Y2pxOU1kMHFNSWRiY05oam1PS0xvWTdxdWszbDFSZWJlcWc0QXdGa21xN0xXR09oMXBtTlkwZXRaQVdTcTBPWDhIb1M0SnZXdUNvcGJTWTI2RUdSL0NXODZLMEJGK3B3a0x3bFB1eUhKaE9DbDVvZTRadEYrK3ZPcVNUK0dkT1l3Tys3MXBOMlZOQWptUUdQQ2U0MndldUhEZzBQSThvbFV3bllyWFRHUUpIOWd4cThsMUxLdnJReDRPNi9ZWTMyS3AvdWdiM2V5N2daNHhBenVoWWlZVHhCL1VIWkZBdWFSRVZYWjJnNnlGbHZFQzJ5b0tFbWJzUlpZTmdWTGsySmVhT2FHK3hMSE4rV0NzekRXTXFMR09ySkZhMURsQXBqU2R3b0hKR3FHekxJYjArY2FzMHdoNUJoNzgwbmdzd3g4R0pEN2g4c0hnMndMQS9tZkRMUFpwZHhPRjBxdVA1cndBREFBRkl6U1J2dTFtNUFBQUFBRWxGVGtTdVFtQ0MnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWdDQVlBQUFCemVucjBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQVQ5SlJFRlVlTnJNVjRzUmd5QU1EVTdnQ0k2QUU3UWpNSUxkb0NPNENkMmczYUIyQWgyaEc3UWIwT0RSTzJyOThBbnF1OHR4S3ZJU0lJL0F3QkZLS1k2TlFEdWdIU2U2TldnUHRCdGpyQU1LSUhHRjFpcC82SCtxR09JQzdhN2lvY2NvZk1rRjJrdlJRWThsZktZOEZTcVh5RlBqWnlhWXZlYll0R2c1cE1VYnJjUXNlZXFIelBvZ1Z5QUh3eUhYWFBmWi9jQ01BM3JxT1hHa0Y5Tk9iYndPbDZIc0ZTNUJkTkthWFRuVGoyZEdYaW5SWUdRbng3NENpTlRPbHQvY01mcGVKU0VoK2RubEp5Q1UyaUlrcTRDSW5JZW10SXNEY21ZdGgrVGM5eENEeUhRU01lUmVEb3c0VVZudjg5RGoyeVVOeDV3WWtyZUIrNmRQdzlwSDJRYk94SkJyMUQ1U0xFY2N1RVptRVA4TzFQbzY0YUJ5aThJVmVoeExBdkwvOG96NFRGamVmSHNweVRZdlN2ZFZsdS9pWXJLTHE5bWFsMU8yOWZYOEk4QUFOcElRekMwaFRkRUFBQUFBU1VWT1JLNUNZSUk9Jyk7XG4gICAgfVxuICB9XG59IiwiLypcbiAgUE9QVVBcbiAgLS0tLS1cblxuICBBIGZsb2F0aW5nIGNvbnRhaW5lciB0aGF0IGNhbiBhbmNob3IgdG8gYW55IG90aGVyIG9uLXNjcmVlbiBlbGVtZW50LCBhbmQgY29udGFpbiBhbnkgY29udGVudCwgaW5jbHVkaW5nIGdyaWQgYmxvY2tzIG9yIHBhbmVscy5cbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gUG9wdXBcbiRwb3B1cC13aWR0aDogcmVtLWNhbGMoMzAwKSAhZGVmYXVsdDtcbiRwb3B1cC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJHBvcHVwLWJvcmRlcjogMCAhZGVmYXVsdDtcbiRwb3B1cC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kcG9wdXAtc2hhZG93OiAwIDAgMTBweCByZ2JhKCMwMDAsIDAuMjUpICFkZWZhdWx0O1xuLy8vXG5cbiVwb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgJi50ZXRoZXItZW5hYmxlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxufVxuXG5AbWl4aW4gcG9wdXAtbGF5b3V0KFxuICAkd2lkdGg6ICRwb3B1cC13aWR0aFxuKSB7XG4gIHdpZHRoOiAkcG9wdXAtd2lkdGg7XG59XG5AbWl4aW4gcG9wdXAtc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkcG9wdXAtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAjMDAwLFxuICAkcmFkaXVzOiAkcG9wdXAtcmFkaXVzLFxuICAkc2hhZG93OiAkcG9wdXAtc2hhZG93LFxuICAkYm9yZGVyOiAkcG9wdXAtYm9yZGVyXG4pIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3c7XG4gIGJvcmRlcjogJGJvcmRlcjtcbn1cblxuQG1peGluIHBvcHVwKFxuICAkd2lkdGg6ICRwb3B1cC13aWR0aCxcbiAgJGJhY2tncm91bmQ6ICRwb3B1cC1iYWNrZ3JvdW5kLFxuICAkcmFkaXVzOiAkcG9wdXAtcmFkaXVzLFxuICAkc2hhZG93OiAkcG9wdXAtc2hhZG93LFxuICAkYm9yZGVyOiAkcG9wdXAtYm9yZGVyXG4pIHtcbiAgQGV4dGVuZCAlcG9wdXA7XG4gIEBpbmNsdWRlIHBvcHVwLWxheW91dCgkd2lkdGgpO1xuICBAaW5jbHVkZSBwb3B1cC1zdHlsZSgkYmFja2dyb3VuZCwgaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKSwgJHJhZGl1cywgJHNoYWRvdywgJGJvcmRlcik7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMocG9wdXApIHtcbiAgLnBvcHVwIHtcbiAgICBAaW5jbHVkZSBwb3B1cDtcblxuICAgICYuZGFyayAgICB7IEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRkYXJrLWNvbG9yLCAjZmZmKTsgfVxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIHBvcHVwLXN0eWxlKCRwcmltYXJ5LWNvbG9yLCBpc2l0bGlnaHQoJHByaW1hcnktY29sb3IpKTsgfVxuICB9XG59XG4iLCIvLyBGT1VOREFUSU9OIE1PVElPTiBVSVxuLy8gVGFibGUgb2YgQ29udGVudHNcbi8vXG4vLyAwLiBWYXJpYWJsZXNcbi8vIDEuIEJhc2UgVHJhbnNpdGlvbnNcbi8vICAgICAgYS4gU2xpZGVcbi8vICAgICAgYi4gRmFkZVxuLy8gICAgICBjLiBIaW5nZVxuLy8gICAgICBkLiBTY2FsZVxuLy8gICAgICBlLiBTcGluXG4vLyAyLiBCYXNlIEFuaW1hdGlvbnNcbi8vICAgICAgYS4gU2hha2Vcbi8vICAgICAgYi4gU3Bpbm5lcnNcbi8vICAgICAgYy4gV2lnZ2xlXG4vLyAzLiBIVE1MIEF0dHJpYnV0ZXNcblxuLy8gMC4gVmFyaWFibGVzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gTW90aW9uIFVJXG4vLyBDbGFzc2VzIHRvIHVzZSB3aGVuIHRyaWdnZXJpbmcgaW4vb3V0IGFuaW1hdGlvbnNcbiRtb3Rpb24tY2xhc3M6IChcbiAgaW46IFwibmctZW50ZXJcIixcbiAgb3V0OiBcIm5nLWxlYXZlXCIsXG4pICFkZWZhdWx0O1xuJG1vdGlvbi1jbGFzcy1hY3RpdmU6IChcbiAgaW46IFwibmctZW50ZXItYWN0aXZlXCIsXG4gIG91dDogXCJuZy1sZWF2ZS1hY3RpdmVcIixcbikgIWRlZmF1bHQ7XG4kbW90aW9uLWNsYXNzLXN0YWdnZXI6IChcbiAgaW46IFwibmctZW50ZXItc3RhZ2dlclwiLFxuICBvdXQ6IFwibmctbGVhdmUtc3RhZ2dlclwiLFxuKSAhZGVmYXVsdDtcbiRtb3Rpb24tY2xhc3Mtc2hvd2hpZGU6IChcbiAgaW46IFwibmctaGlkZS1yZW1vdmVcIixcbiAgb3V0OiBcIm5nLWhpZGUtYWRkXCIsXG4pO1xuJG1vdGlvbi1jbGFzcy1zaG93aGlkZS1hY3RpdmU6IChcbiAgaW46IFwibmctaGlkZS1yZW1vdmUtYWN0aXZlXCIsXG4gIG91dDogXCJuZy1oaWRlLWFkZC1hY3RpdmVcIixcbik7XG5cbi8vIFNldCBpZiBtb3ZlbWVudC1iYXNlZCB0cmFuc2l0aW9ucyBzaG91bGQgYWxzbyBmYWRlIHRoZSBlbGVtZW50IGluIGFuZCBvdXRcbiRtb3Rpb24tc2xpZGUtYW5kLWZhZGU6IGZhbHNlICFkZWZhdWx0O1xuJG1vdGlvbi1oaW5nZS1hbmQtZmFkZTogdHJ1ZSAhZGVmYXVsdDtcbiRtb3Rpb24tc2NhbGUtYW5kLWZhZGU6IHRydWUgIWRlZmF1bHQ7XG4kbW90aW9uLXNwaW4tYW5kLWZhZGU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgc3BlZWQgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zXG4kbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQ6IDUwMG1zICFkZWZhdWx0O1xuXG4vLyBTbG93IGFuZCBmYXN0IG1vZGlmaWRlcnNcbiRtb3Rpb24tZHVyYXRpb24tc2xvdzogNzUwbXMgIWRlZmF1bHQ7XG4kbW90aW9uLWR1cmF0aW9uLWZhc3Q6IDI1MG1zICFkZWZhdWx0O1xuJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLWRlZmF1bHQ6IDE1MG1zICFkZWZhdWx0O1xuJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLXNob3J0OiA1MG1zICFkZWZhdWx0O1xuJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLWxvbmc6IDMwMG1zICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IHRpbWluZyBmdW5jdGlvbiBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnNcbiRtb3Rpb24tdGltaW5nLWRlZmF1bHQ6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vIEJ1aWx0LWluIGFuZCBjdXN0b20gZWFzaW5nIGZ1bmN0aW9uc1xuLy8gRXZlcnkgaXRlbSBpbiB0aGlzIG1hcCBiZWNvbWVzIGEgQ1NTIGNsYXNzXG4kbW90aW9uLXRpbWluZ3M6IChcbiAgbGluZWFyOiBsaW5lYXIsXG4gIGVhc2U6IGVhc2UsXG4gIGVhc2VJbjogZWFzZS1pbixcbiAgZWFzZU91dDogZWFzZS1vdXQsXG4gIGVhc2VJbk91dDogZWFzZS1pbi1vdXQsXG4gIGJvdW5jZUluOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0MCwgMS4yNDUpLFxuICBib3VuY2VPdXQ6IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSksXG4gIGJvdW5jZUluT3V0OiBjdWJpYy1iZXppZXIoMC43NjAsIC0wLjI0NSwgMC4yNDAsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgZGVsYXkgZm9yIGFsbCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9uc1xuJG1vdGlvbi1kZWxheS1kZWZhdWx0OiAwICFkZWZhdWx0O1xuLy8gU2hvcnQgYW5kIGxvbmcgZGVsYXkgbW9kaWZpZXJzXG4kbW90aW9uLWRlbGF5LXNob3J0OiAzMDBtcyAhZGVmYXVsdDtcbiRtb3Rpb24tZGVsYXktbG9uZzogNzAwbXMgIWRlZmF1bHQ7XG4vLy9cblxuLy8gTG9va3MgZm9yIGEgdGltaW5nIGZ1bmN0aW9uIGluIHRoZSBsaXN0IG9mIHByZXNldHNcbi8vIElmIG5vbmUgYXJlIGZvdW5kLCByZXR1cm5zIHRoZSB2YWx1ZSBhcy1pcy5cbkBmdW5jdGlvbiBnZXQtdGltaW5nKCR0aW1pbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRtb3Rpb24tdGltaW5ncywgJHRpbWluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbW90aW9uLXRpbWluZ3MsICR0aW1pbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR0aW1pbmc7XG4gIH1cbn1cblxuLy8gQXBwbGllcyB0cmFuc2l0aW9uIHNldHRpbmdzIGNvbW1vbiB0byBhbGwgbWl4aW5zXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdFxuKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGdldC10aW1pbmcoJHRpbWluZyk7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcbn1cblxuLy8gV3JhcHMgY29udGVudCBpbiBhbiBlbnRlci9sZWF2ZSBjbGFzcywgY2hhaW5lZCB0byB0aGUgcGFyZW50IHNlbGVjdG9yXG4vLyBEZWZpbmUgdGhlIGluaXRpYWwgc3RhdGUgb2YgYSB0cmFuc2l0aW9uIGhlcmVcbkBtaXhpbiB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgJHNlbDE6IG1hcC1nZXQoJG1vdGlvbi1jbGFzcywgJGRpcik7XG4gICRzZWwyOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3Mtc2hvd2hpZGUsICRkaXIpO1xuXG4gICYuI3skc2VsMX0sXG4gICYuI3skc2VsMn0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFdyYXBzIGNvbnRlbnQgaW4gYW4gZW50ZXIvbGVhdmUgYWN0aXZlIGNsYXNzLCBjaGFpbmVkIHRvIHRoZSBtYXRjaGluZ1xuLy8gZW50ZXIvbGVhdmUgY2xhc3MsIGNoYWluZWQgdG8gdGhlIHBhcmVudCBzZWxlY3RvclxuLy8gRGVmaW5lIHRoZSBlbmQgc3RhdGUgb2YgYSB0cmFuc2l0aW9uIGhlcmVcbkBtaXhpbiB0cmFuc2l0aW9uLWVuZCgkZGlyKSB7XG4gICRzZWwxOiAgbWFwLWdldCgkbW90aW9uLWNsYXNzLCAkZGlyKTtcbiAgJHNlbDFBOiBtYXAtZ2V0KCRtb3Rpb24tY2xhc3MtYWN0aXZlLCAkZGlyKTtcblxuICAkc2VsMjogIG1hcC1nZXQoJG1vdGlvbi1jbGFzcy1zaG93aGlkZSwgJGRpcik7XG4gICRzZWwyQTogbWFwLWdldCgkbW90aW9uLWNsYXNzLXNob3doaWRlLWFjdGl2ZSwgJGRpcik7XG5cbiAgJi4jeyRzZWwxfS4jeyRzZWwxQX0sXG4gICYuI3skc2VsMn0uI3skc2VsMkF9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheS1hbW91bnQ7XG4gIC8vIHRoaXMgaXMgdG8gYXZvaWQgYWNjaWRlbnRhbCBDU1MgaW5oZXJpdGFuY2VcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjowO1xufVxuXG5cbi8vIDEuIEJhc2UgVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gU0xJREVcbkBtaXhpbiBzbGlkZSAoXG4gICRkaXI6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGZhZGU6ICRtb3Rpb24tc2xpZGUtYW5kLWZhZGUsXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdFxuKSB7XG4gICRzbGlkZURpcmVjdGlvbnM6IChcbiAgICB0b3A6ICAgIHRyYW5zbGF0ZVkoLTEwMCUpLFxuICAgIHJpZ2h0OiAgdHJhbnNsYXRlWCgxMDAlKSxcbiAgICBib3R0b206IHRyYW5zbGF0ZVkoMTAwJSksXG4gICAgbGVmdDogICB0cmFuc2xhdGVYKC0xMDAlKSxcbiAgKTtcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG5cbiAgQGlmICRkaXIgPT0gaW4ge1xuICAgICRzdGFydDogbWFwLWdldCgkc2xpZGVEaXJlY3Rpb25zLCAkZnJvbSk7XG4gICAgJGVuZDogdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkc3RhcnQ6IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcbiAgICAkZW5kOiBtYXAtZ2V0KCRzbGlkZURpcmVjdGlvbnMsICRmcm9tKTtcbiAgfVxuXG4gIC8vIENTUyBPdXRwdXRcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiAkc3RhcnQ7XG5cbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAwLCAxKTsgfVxuICB9XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcbiAgICB0cmFuc2Zvcm06ICRlbmQ7XG5cbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAxLCAwKTsgfVxuICB9XG59XG5cbi8vIEZBREVcbkBtaXhpbiBmYWRlKFxuICAkZGlyOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XG4pIHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgb3BhY2l0eTogJGZyb207XG4gIH1cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAgIG9wYWNpdHk6ICR0bztcbiAgfVxufVxuXG4vLyBISU5HRVxuQG1peGluIGhpbmdlIChcbiAgJGRpcjogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrLFxuICAkZmFkZTogJG1vdGlvbi1oaW5nZS1hbmQtZmFkZSxcbiAgJGR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWRlZmF1bHQsXG4gICR0aW1pbmc6ICRtb3Rpb24tdGltaW5nLWRlZmF1bHQsXG4gICRkZWxheTogJG1vdGlvbi1kZWxheS1kZWZhdWx0XG4pIHtcblxuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XG4gICRyb3RhdGlvbkFtb3VudDogOTBkZWc7XG4gICRyb3RhdGlvbnNCYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCAqIC0xKSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb25BbW91bnQgKiAtMSksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb25BbW91bnQpLFxuICApO1xuICAkcm90YXRpb25zRnJvbTogKFxuICAgIHRvcDogcm90YXRlWCgkcm90YXRpb25BbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbkFtb3VudCksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbkFtb3VudCAqIC0xKSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbkFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9uc0Zyb20sICRmcm9tKTtcbiAgfVxuICBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9uc0JhY2ssICRmcm9tKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJgJHR1cm4tb3JpZ2luYCBtdXN0IGJlIGVpdGhlciBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGBcIjtcbiAgfVxuXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcbiAgJHN0YXJ0OiAnJztcbiAgJGVuZDogJyc7XG4gIEBpZiAkZGlyID09IGluIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICAgICRlbmQ6IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHN0YXJ0OiByb3RhdGUoMGRlZyk7XG4gICAgJGVuZDogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkcm90YXRpb247XG4gIH1cblxuICAvLyBUdXJuIGF4aXNcbiAgJG9yaWdpbjogJyc7XG4gIEBpZiAkYXhpcyA9PSBlZGdlIHtcbiAgICAkb3JpZ2luOiAkZnJvbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgJG9yaWdpbjogY2VudGVyO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB0cmFuc2Zvcm06ICRzdGFydDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpOyB9XG4gIH1cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAgIHRyYW5zZm9ybTogJGVuZDtcbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAxLCAwKTsgfVxuICB9XG59XG5cbi8vIFNDQUxFXG5AbWl4aW4gc2NhbGUoXG4gICRkaXI6IGluLFxuICAkZnJvbTogMS41LFxuICAkdG86IDEsXG4gICRmYWRlOiAkbW90aW9uLXNjYWxlLWFuZC1mYWRlLFxuICAkZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZGVmYXVsdCxcbiAgJHRpbWluZzogJG1vdGlvbi10aW1pbmctZGVmYXVsdCxcbiAgJGRlbGF5OiAkbW90aW9uLWRlbGF5LWRlZmF1bHRcbikge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRkaXIpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBwcm9wZXJ0eTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCRmcm9tKTtcbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAwLCAxKSB9XG4gIH1cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJHRvKTtcbiAgICBAaWYgJGZhZGUgeyBvcGFjaXR5OiBpZigkZGlyID09IGluLCAxLCAwKSB9XG4gIH1cbn1cblxuLy8gU1BJTlxuQG1peGluIHNwaW4oXG4gICRkaXI6IGluLFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGNjdzogZmFsc2UsXG4gICRmYWRlOiAkbW90aW9uLXNwaW4tYW5kLWZhZGUsXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdFxuKSB7XG4gICRhbW91bnQ6IHR1cm4tdG8tZGVnKCRhbW91bnQpO1xuICAkc3RhcnQ6IDA7XG4gICRlbmQ6IDA7XG5cbiAgQGlmICRkaXIgPT0gaW4ge1xuICAgICRzdGFydDogaWYoJGNjdywgJGFtb3VudCwgJGFtb3VudCAqIC0xKTtcbiAgICAkZW5kOiAwO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkc3RhcnQ6IDA7XG4gICAgJGVuZDogaWYoJGNjdywgJGFtb3VudCAqIC0xLCAkYW1vdW50KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgkc3RhcnQpO1xuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDAsIDEpOyB9XG4gIH1cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKCRlbmQpO1xuICAgIEBpZiAkZmFkZSB7IG9wYWNpdHk6IGlmKCRkaXIgPT0gaW4sIDEsIDApOyB9XG4gIH1cbn1cblxuXG4vLyAyLiBCYXNlIEFuaW1hdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gU0hBS0VcbkBrZXlmcmFtZXMgc2hha2Uge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTtcbiAgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7XG4gIH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxufVxuXG4vLyBTUElOTkVSU1xuQGtleWZyYW1lcyBzcGluLWN3IHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY2N3IHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7IH1cbn1cblxuLy8gV0lHR0xFXG5Aa2V5ZnJhbWVzIHdpZ2dsZSB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpO1xuICB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpO1xuICB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG59XG5cbkBtaXhpbiBhbmltYXRpb24oXG4gICRhbmltYXRpb24sXG4gICRkdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1kZWZhdWx0LFxuICAkdGltaW5nOiAkbW90aW9uLXRpbWluZy1kZWZhdWx0LFxuICAkZGVsYXk6ICRtb3Rpb24tZGVsYXktZGVmYXVsdCxcbiAgJGl0ZXJhdGlvbnM6IG51bGxcbikge1xuICBcbiAgYW5pbWF0aW9uLW5hbWU6ICRhbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuXG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cbiAgQGlmICRkZWxheSAhPSBudWxsIHtcbiAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcbiAgfVxuICBAaWYgJGl0ZXJhdGlvbnMgIT0gbnVsbCB7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbnM7XG4gIH1cblxuICBAaWYgJGFuaW1hdGlvbiA9PSBudWxsIHtcbiAgICBAd2FybiBcIlBsZWFzZSBpbmNsdWRlIGFuIGFuaW1hdGlvbiBuYW1lXCI7XG4gIH1cbn1cblxuLy8gMy4gSFRNTCBFeHBvcnRzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbkBpbmNsdWRlIGV4cG9ydHMobW90aW9uKSB7XG4gIC8qXG4gICAgVHJhbnNpdGlvbnNcbiAgKi9cblxuICAvLyBTbGlkZVxuICAuc2xpZGVJbkRvd24gICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogdG9wKTsgfVxuICAuc2xpZGVJbkxlZnQgICAgeyBAaW5jbHVkZSBzbGlkZSgkZnJvbTogcmlnaHQpOyB9XG4gIC5zbGlkZUluVXAgICAgICB7IEBpbmNsdWRlIHNsaWRlKCRmcm9tOiBib3R0b20pOyB9XG4gIC5zbGlkZUluUmlnaHQgICB7IEBpbmNsdWRlIHNsaWRlKCRmcm9tOiBsZWZ0KTsgfVxuICAuc2xpZGVPdXRCb3R0b20geyBAaW5jbHVkZSBzbGlkZSgkZGlyOiBvdXQsICRmcm9tOiBib3R0b20pOyB9XG4gIC5zbGlkZU91dFJpZ2h0ICB7IEBpbmNsdWRlIHNsaWRlKCRkaXI6IG91dCwgJGZyb206IHJpZ2h0KTsgfVxuICAuc2xpZGVPdXRVcCAgICAgeyBAaW5jbHVkZSBzbGlkZSgkZGlyOiBvdXQsICRmcm9tOiB0b3ApOyB9XG4gIC5zbGlkZU91dExlZnQgICB7IEBpbmNsdWRlIHNsaWRlKCRkaXI6IG91dCwgJGZyb206IGxlZnQpOyB9XG5cbiAgLy8gRmFkZVxuICAuZmFkZUluICB7IEBpbmNsdWRlIGZhZGUoaW4sIDAsIDEpOyB9XG4gIC5mYWRlT3V0IHsgQGluY2x1ZGUgZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlSW5Gcm9tVG9wICAgICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBpbiwgJGZyb206IHRvcCk7IH1cbiAgLmhpbmdlSW5Gcm9tUmlnaHQgICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBpbiwgJGZyb206IHJpZ2h0KTsgfVxuICAuaGluZ2VJbkZyb21Cb3R0b20gICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogYm90dG9tKTsgfVxuICAuaGluZ2VJbkZyb21MZWZ0ICAgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogbGVmdCk7IH1cbiAgLmhpbmdlSW5Gcm9tTWlkZGxlWCAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBpbiwgJGZyb206IHRvcCwgICAkYXhpczogY2VudGVyKTsgfVxuICAuaGluZ2VJbkZyb21NaWRkbGVZICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IGluLCAkZnJvbTogcmlnaHQsICRheGlzOiBjZW50ZXIpOyB9XG4gIC5oaW5nZU91dEZyb21Ub3AgICAgIHsgQGluY2x1ZGUgaGluZ2UoJGRpcjogb3V0LCAkZnJvbTogdG9wKTsgfVxuICAuaGluZ2VPdXRGcm9tUmlnaHQgICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IHJpZ2h0KTsgfVxuICAuaGluZ2VPdXRGcm9tQm90dG9tICB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IGJvdHRvbSk7IH1cbiAgLmhpbmdlT3V0RnJvbUxlZnQgICAgeyBAaW5jbHVkZSBoaW5nZSgkZGlyOiBvdXQsICRmcm9tOiBsZWZ0KTsgfVxuICAuaGluZ2VPdXRGcm9tTWlkZGxlWCB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IHRvcCwgICAkYXhpczogY2VudGVyKTsgfVxuICAuaGluZ2VPdXRGcm9tTWlkZGxlWSB7IEBpbmNsdWRlIGhpbmdlKCRkaXI6IG91dCwgJGZyb206IHJpZ2h0LCAkYXhpczogY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC56b29tSW4gIHsgQGluY2x1ZGUgc2NhbGUoaW4sICAxLjUsIDEpOyB9XG4gIC56b29tT3V0IHsgQGluY2x1ZGUgc2NhbGUob3V0LCAwLjUsIDEpOyB9XG5cbiAgLy8gU3BpblxuICAuc3BpbkluICAgICB7IEBpbmNsdWRlIHNwaW4oaW4sIDAuNzV0dXJuKTsgfVxuICAuc3Bpbk91dCAgICB7IEBpbmNsdWRlIHNwaW4ob3V0LCAwLjc1dHVybik7IH1cbiAgLnNwaW5JbkNDVyAgeyBAaW5jbHVkZSBzcGluKGluLCAwLjc1dHVybiwgdHJ1ZSk7IH1cbiAgLnNwaW5PdXRDQ1cgeyBAaW5jbHVkZSBzcGluKG91dCwgMC43NXR1cm4sIHRydWUpOyB9XG5cbiAgLypcbiAgICBUcmFuc2l0aW9uIG1vZGlmaWVyc1xuICAqL1xuXG4gIC8vIER1cmF0aW9uXG4gIC5zbG93IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1zbG93ICFpbXBvcnRhbnQ7IH1cbiAgLmZhc3QgeyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkbW90aW9uLWR1cmF0aW9uLWZhc3QgIWltcG9ydGFudDsgfVxuXG4gIC8vIEVhc2luZ1xuICBAZWFjaCAkZWFzaW5nIGluIG1hcC1rZXlzKCRtb3Rpb24tdGltaW5ncykge1xuICAgIC4jeyRlYXNpbmd9IHtcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdGltaW5ncywgJGVhc2luZykgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWxheVxuICAuZGVsYXkgICAgICAgeyB0cmFuc2l0aW9uLWRlbGF5OiAkbW90aW9uLWRlbGF5LXNob3J0ICFpbXBvcnRhbnQ7IH1cbiAgLmxvbmctZGVsYXkgIHsgdHJhbnNpdGlvbi1kZWxheTogJG1vdGlvbi1kZWxheS1sb25nICFpbXBvcnRhbnQ7IH1cblxuICAvKlxuICAgIEFuaW1hdGlvbnNcbiAgKi9cblxuICAuc2hha2UgICAgeyBAaW5jbHVkZSBhbmltYXRpb24oc2hha2UpOyB9XG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWN3KTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBhbmltYXRpb24oc3Bpbi1jY3cpOyB9XG4gIC53aWdnbGUgICB7IEBpbmNsdWRlIGFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLypcbiAgICBBbmltYXRpb24gbW9kaWZpZXJzXG4gICovXG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICAvLyBSZXBlYXRcbiAgICAmLmluZmluaXRlIHsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuICAgIC8vIEVhc2luZ1xuICAgIEBlYWNoICR0aW1pbmcgaW4gbWFwLWtleXMoJG1vdGlvbi10aW1pbmdzKSB7XG4gICAgICAmLiN7JHRpbWluZ30ge1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdGltaW5ncywgJHRpbWluZykgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEdXJhdGlvblxuICAgICYuc2xvdyB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJG1vdGlvbi1kdXJhdGlvbi1zbG93ICFpbXBvcnRhbnQ7IH1cbiAgICAmLmZhc3QgeyBhbmltYXRpb24tZHVyYXRpb246ICRtb3Rpb24tZHVyYXRpb24tZmFzdCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEZWxheVxuICAgICYuZGVsYXkgICAgICAgeyBhbmltYXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktc2hvcnQgIWltcG9ydGFudDsgfVxuICAgICYubG9uZy1kZWxheSAgeyBhbmltYXRpb24tZGVsYXk6ICRtb3Rpb24tZGVsYXktbG9uZyAhaW1wb3J0YW50OyB9XG4gIH1cbiAgLnN0YWdnZXIgeyBAaW5jbHVkZSBzdGFnZ2VyKCRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1kZWZhdWx0KTsgfVxuICAuc3RvcnQtc3RhZ2dlciB7IEBpbmNsdWRlIHN0YWdnZXIoJG1vdGlvbi1zdGFnZ2VyLWR1cmF0aW9uLWRlZmF1bHQpOyB9XG4gIC5sb25nLXN0YWdnZXIgeyBAaW5jbHVkZSBzdGFnZ2VyKCRtb3Rpb24tc3RhZ2dlci1kdXJhdGlvbi1kZWZhdWx0KTsgfVxufVxuXG4vLyBWaWV3IGFuaW1hdGlvbiBjbGFzc2VzXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gQXBwbGllZCB0byB0aGUgaW1tZWRpYXRlIHBhcmVudCBvZiB0aGUgYW5pbWF0aW5nIHZpZXdzXG4ucG9zaXRpb24tYWJzb2x1dGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIEFwcGxpZWQgdG8gdGhlIGFuaW1hdGluZyB2aWV3c1xuLnVpLWFuaW1hdGlvbiB7XG4gICYubmctZW50ZXItYWN0aXZlLCAmLm5nLWxlYXZlLWFjdGl2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbiIsIi8qXG4gIE9kZHMgYW5kIGVuZHMuXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIEV4dHJhc1xuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiAodG9wIHJpZ2h0KSAhZGVmYXVsdDtcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMC41ICFkZWZhdWx0O1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAjOTk5ICFkZWZhdWx0O1xuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAjMzMzICFkZWZhdWx0O1xuXG4kdGh1bWJuYWlsLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcbiR0aHVtYm5haWwtc2hhZG93OiAwIDNweCAxNXB4IHJnYmEoYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuLy8vXG5cbi8vIEEgYmFzaWMgY2xvc2UgYnV0dG9uLiBUaGV5IHBpbiB0byB0aGUgY29ybmVyIG9mIHRoZSB0aGluZyB0aGV5J3JlIGluc2lkZS5cbiVjbG9zZS1idXR0b24ge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gICN7JHh9OiAkZ2xvYmFsLXBhZGRpbmc7XG4gICN7JHl9OiAkZ2xvYmFsLXBhZGRpbmc7XG4gIGZvbnQtc2l6ZTogJGNsb3NlYnV0dG9uLXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY2xvc2VidXR0b24tbGluZWhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8gTWFrZSB5b3VyIGltYWdlcyBmYW5jeS1saWtlLlxuJXRodW1ibmFpbCB7XG4gIHBhZGRpbmc6ICR0aHVtYm5haWwtcGFkZGluZztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoZXh0cmFzKSB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBleHRlbmQgJWNsb3NlLWJ1dHRvbjtcbiAgfVxuICAudGh1bWJuYWlsIHtcbiAgICBAZXh0ZW5kICV0aHVtYm5haWw7XG4gIH1cbiAgdWwudGh1bWJuYWlscyA+IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIFxuICAgIGEgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgIGltZyB7IEBleHRlbmQgJXRodW1ibmFpbDsgfVxuICB9XG59XG4iLCIvKlxuICBQQU5FTFxuICAtLS0tLVxuXG4gIFRoZSBmcmllbmRseSBwYW5lbCBpcyBhbiBhbGwtcHVycG9zZSBjb250YWluZXIgZm9yIGhpZGluZyBjb250ZW50IG9mZi1zY3JlZW4uXG5cbiAgRmVhdHVyZXM6XG4gICAtIFBvc2l0aW9uIGF0IHRvcCwgcmlnaHQsIGJvdHRvbSwgb3IgbGVmdFxuICAgLSBBbmNob3IgdG8gZ3JpZCBibG9jayBvciB3aW5kb3dcbiAgIC0gRGVmaW5lIG1heCB3aWR0aCBvciBoZWlnaHRcbiAgIC0gVHJhbnNmb3JtIGludG8gZ3JpZCBibG9jayBkZXBlbmRpbmcgb24gc2NyZWVuIHNpemVcbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gUGFuZWxcbiRwYW5lbC1zaXplLWhvcml6b250YWw6IDMwMHB4ICFkZWZhdWx0O1xuJHBhbmVsLXNpemUtdmVydGljYWw6IDMwMHB4ICFkZWZhdWx0O1xuJHBhbmVsLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbiRwYW5lbC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJHBhbmVsLXNoYWRvdzogM3B4IDAgMTBweCByZ2JhKGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8gREVQUkVDQVRFRDogdGhlc2UgdmFyaWFibGVzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLlxuJHBhbmVsLWFuaW1hdGlvbi1zcGVlZDogMC4yNXMgIWRlZmF1bHQ7XG4vLy9cblxuJXBhbmVsLWJhc2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBwYW5lbC1sYXlvdXQoXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJHNpemU6IGRlZmF1bHQsXG4gICRzaGFkb3c6ICRwYW5lbC1zaGFkb3dcbikge1xuICBAaWYgJHNpemUgPT0gZGVmYXVsdCB7XG4gICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IG9yICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAkc2l6ZTogJHBhbmVsLXNpemUtaG9yaXpvbnRhbDtcbiAgICB9XG4gICAgQGlmICRwb3NpdGlvbiA9PSB0b3Agb3IgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAkc2l6ZTogJHBhbmVsLXNpemUtdmVydGljYWw7XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICBEaXJlY3Rpb25cbiAgKi9cbiAgQGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLypcbiAgICBTaXppbmdcbiAgKi9cbiAgLy8gSG9yaXpvbnRhbCBwYW5lbHMgYXJlIGFsd2F5cyBhbGwgdGhlIHdheSB0YWxsIGFuZCBoYXZlIGEgc2V0IHdpZHRoXG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCBvciAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIEBpZiB1bml0KCRzaXplKSA9PSAnJScge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyAoRm9yIG5vdykgdmVydGljYWwgcGFuZWxzIGRvbid0IGNoYW5nZSBzaXplXG4gIEBpZiAkcG9zaXRpb24gPT0gdG9wIG9yICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGhlaWdodDogJHNpemU7XG4gIH1cblxuICAvKlxuICAgIFNoYWRvd3NcbiAgKi9cbiAgJHNoYWRvdy1kaXN0YW5jZTogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCB4KTtcbiAgJHNoYWRvdy1zaXplOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIHNpemUpO1xuICAkc2hhZG93LWNvbG9yOiBnZXQtc2hhZG93LXZhbHVlKCRzaGFkb3csIGNvbG9yKTtcbiAgJi5pcy1hY3RpdmUge1xuICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCAgICAgICAgeyBib3gtc2hhZG93OiAkc2hhZG93LWRpc3RhbmNlIDAgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQgIHsgYm94LXNoYWRvdzogKC0kc2hhZG93LWRpc3RhbmNlKSAwICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XG4gICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCAgICB7IGJveC1zaGFkb3c6IDAgJHNoYWRvdy1kaXN0YW5jZSAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxuICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20geyBib3gtc2hhZG93OiAycHggKC0kc2hhZG93LWRpc3RhbmNlKSAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxuICB9XG59XG5cbkBtaXhpbiBwYW5lbC1zdHlsZShcbiAgJHBhZGRpbmc6ICRwYW5lbC1wYWRkaW5nLFxuICAkYmFja2dyb3VuZDogJHBhbmVsLWJhY2tncm91bmRcbikge1xuICAvKlxuICAgIEJhc2ljIHN0eWxlc1xuICAqL1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMocGFuZWwpIHtcbiAgLnBhbmVsIHtcbiAgICBAZXh0ZW5kICVwYW5lbC1iYXNlO1xuICAgIEBpbmNsdWRlIHBhbmVsLXN0eWxlO1xuICB9XG5cbiAgLnBhbmVsLXRvcCAgICB7IEBpbmNsdWRlIHBhbmVsLWxheW91dCh0b3ApOyB9XG4gIC5wYW5lbC1yaWdodCAgeyBAaW5jbHVkZSBwYW5lbC1sYXlvdXQocmlnaHQpOyB9XG4gIC5wYW5lbC1ib3R0b20geyBAaW5jbHVkZSBwYW5lbC1sYXlvdXQoYm90dG9tKTsgfVxuICAucGFuZWwtbGVmdCAgIHsgQGluY2x1ZGUgcGFuZWwtbGF5b3V0KGxlZnQpOyB9XG5cbiAgLnBhbmVsLWZpeGVkICB7IHBvc2l0aW9uOiBmaXhlZDsgfVxufSIsIi8qXG4gIExhYmVsXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIExhYmVsXG4kbGFiZWwtZm9udHNpemU6IDAuOHJlbSAhZGVmYXVsdDtcbiRsYWJlbC1wYWRkaW5nOiAoJGdsb2JhbC1wYWRkaW5nIC8gMykgKCRnbG9iYWwtcGFkZGluZyAvIDIpICFkZWZhdWx0O1xuJGxhYmVsLXJhZGl1czogMCAhZGVmYXVsdDtcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRsYWJlbC1jb2xvcjogaXNpdGxpZ2h0KCRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuJGJhZGdlLWZvbnRzaXplOiAwLjhlbSAhZGVmYXVsdDtcbiRiYWRnZS1kaWFtZXRlcjogMS41cmVtICFkZWZhdWx0O1xuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJhZGdlLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuLy8vXG5cbiVsYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGxhYmVsLWxheW91dChcbiAgJGZvbnRzaXplOiAkbGFiZWwtZm9udHNpemUsXG4gICRwYWRkaW5nOiAkbGFiZWwtcGFkZGluZ1xuKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnRzaXplO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbn1cblxuQG1peGluIGxhYmVsLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGxhYmVsLWNvbG9yLFxuICAkcmFkaXVzOiAkbGFiZWwtcmFkaXVzXG4pIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgQGlmICRjb2xvciA9PSBhdXRvIHtcbiAgICBjb2xvcjogaXNpdGxpZ2h0KCRiYWNrZ3JvdW5kKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbGFiZWwoXG4gICRiYWNrZ3JvdW5kOiAkbGFiZWwtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkbGFiZWwtY29sb3IsXG4gICRyYWRpdXM6ICRsYWJlbC1yYWRpdXMsXG4gICRmb250c2l6ZTogJGxhYmVsLWZvbnRzaXplLFxuICAkcGFkZGluZzogJGxhYmVsLXBhZGRpbmdcbikge1xuICBAZXh0ZW5kICVsYWJlbDtcbiAgQGluY2x1ZGUgbGFiZWwtbGF5b3V0KCRmb250c2l6ZSwgJHBhZGRpbmcpO1xuICBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkYmFja2dyb3VuZCwgJGNvbG9yLCAkcmFkaXVzKTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhsYWJlbCkge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRmb3VuZGF0aW9uLWNvbG9ycykge1xuICAgICAgJi4jeyRjb2xvcn0ge1xuICAgICAgICAkY29sb3ItdmFsdWU6IG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkY29sb3ItdmFsdWUsIGF1dG8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKlxuICBCYWRnZVxuKi9cblxuJWJhZGdlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG59XG5cbkBtaXhpbiBiYWRnZS1sYXlvdXQoXG4gICRmb250c2l6ZTogJGJhZGdlLWZvbnRzaXplLFxuICAkZGlhbWV0ZXI6ICRiYWRnZS1kaWFtZXRlclxuKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnRzaXplO1xuICB3aWR0aDogJGRpYW1ldGVyO1xuICBoZWlnaHQ6ICRkaWFtZXRlcjtcbn1cblxuQG1peGluIGJhZGdlLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQsXG4gICRjb2xvcjogJGJhZGdlLWZvbnQtY29sb3Jcbikge1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgIGNvbG9yOiBpc2l0bGlnaHQoJGJhY2tncm91bmQpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBiYWRnZShcbiAgJGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kLFxuICAkY29sb3I6ICRiYWRnZS1jb2xvcixcbiAgJGRpYW1ldGVyOiAkYmFkZ2UtZGlhbWV0ZXIsXG4gICRmb250c2l6ZTogJGJhZGdlLWZvbnRzaXplXG4pIHtcbiAgQGV4dGVuZCAlYmFkZ2U7XG4gIEBpbmNsdWRlIGJhZGdlLWxheW91dCgkZm9udHNpemUsICRkaWFtZXRlcik7XG4gIEBpbmNsdWRlIGJhZGdlLXN0eWxlKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKGJhZGdlKSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICAmLnNlY29uZGFyeSB7XG4gICAgICBAaW5jbHVkZSBiYWRnZS1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yLCBhdXRvKTtcbiAgICB9XG4gICAgQGVhY2ggJGNvbG9yIGluIG1hcC1rZXlzKCRmb3VuZGF0aW9uLWNvbG9ycykge1xuICAgICAgJi4jeyRjb2xvcn0ge1xuICAgICAgICAkY29sb3ItdmFsdWU6IG1hcC1nZXQoJGZvdW5kYXRpb24tY29sb3JzLCAkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBiYWRnZS1zdHlsZSgkY29sb3ItdmFsdWUsIGF1dG8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLypcbiAgTU9EQUxcbiAgLS0tLS1cblxuICBUaGUgaHVtYmxlIG1vZGFsIGhpZGVzIG9mZi1jYW52YXMgdW50aWwgc3VtbW9uZWQgd2l0aCBhbiBmYS1vcGVuIGRpcmVjdGl2ZS4gTW9kYWxzIGFwcGVhciBvdmVyIGFuIG92ZXJsYXkgdGhhdCBkYXJrZW5zIHRoZSByZXN0IG9mIHRoZSBwYWdlLCBhbmQgaGF2ZSBhIG1heG1pbXVtIHdpZHRoLiBZb3UgY2FuIGNvbnN0cnVjdCBhIGdyaWQgaW5zaWRlIGEgbW9kYWwsIG9yIGF0dGFjaCBwYW5lbHMgdG8gaXQuXG5cbiAgTm90ZSB0aGF0IHRoZSBtb2RhbCBvdmVybGF5IGlzIGhhcmRjb2RlZCBpbnRvIHRoZSBDU1MsIGJlY2F1c2Ugd2hldGhlciBvciBub3QgeW91IGJ1aWxkIHlvdXIgbW9kYWwgc2VtYW50aWNhbGx5LCB0aGUgb3ZlcmxheSBpcyBhbHdheXMgcmVxdWlyZWQgYW5kIHdpbGwgYWx3YXlzIGxvb2sgdGhlIHNhbWUuXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIE1vZGFsXG4kbW9kYWwtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRtb2RhbC1ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kbW9kYWwtcmFkaXVzOiAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJG1vZGFsLXppbmRleDogMTAwMCAhZGVmYXVsdDtcbiRtb2RhbC1zaXplczogKFxuICB0aW55OiAzMDBweCxcbiAgc21hbGw6IDUwMHB4LFxuICBtZWRpdW06IDYwMHB4LFxuICBsYXJnZTogODAwcHgsXG4pICFkZWZhdWx0O1xuXG4kbW9kYWwtb3ZlcmxheS1jbGFzczogJ21vZGFsLW92ZXJsYXknICFkZWZhdWx0O1xuJG1vZGFsLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgjMzMzLCAwLjcpICFkZWZhdWx0O1xuLy8vXG5cbiVtb2RhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogJG1vZGFsLXppbmRleCArIDE7XG4gIGJhY2tncm91bmQ6ICRtb2RhbC1iYWNrZ3JvdW5kO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG1hcC1nZXQoJG1vZGFsLXNpemVzLCBtZWRpdW0pO1xuICB9XG5cbiAgLmdyaWQtY29udGVudCwgLmdyaWQtYmxvY2sge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24sIFtmYS1jbG9zZV0ge1xuICAgIHotaW5kZXg6ICRtb2RhbC16aW5kZXggKyAxO1xuICB9XG59XG5cbkBtaXhpbiBtb2RhbC1kaWFsb2coKSB7XG4gIGhlaWdodDogYXV0bztcbn1cbkBtaXhpbiBtb2RhbC1sYXlvdXQoXG4gICR3aWR0aDogbWFwLWdldCgkbW9kYWwtc2l6ZXMsIG1lZGl1bSksXG4gICRkaWFsb2c6IGZhbHNlXG4pIHtcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG59XG5AbWl4aW4gbW9kYWwtc3R5bGUoXG4gICRib3JkZXI6ICRtb2RhbC1ib3JkZXIsXG4gICRyYWRpdXM6ICRtb2RhbC1yYWRpdXMsXG4gICRzaGFkb3c6ICRtb2RhbC1zaGFkb3dcbikge1xuICBAaWYgJGJvcmRlciAhPSAwIHtcbiAgICBib3JkZXI6ICRib3JkZXI7XG4gIH1cbiAgQGlmICRyYWRpdXMgIT0gMCB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxuICBAaWYgJHNoYWRvdyAhPSBub25lIHtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuICB9XG59XG5cbkBtaXhpbiBtb2RhbChcbiAgJHdpZHRoOiBtYXAtZ2V0KCRtb2RhbC1zaXplcywgbWVkaXVtKSxcbiAgJGJvcmRlcjogJG1vZGFsLWJvcmRlcixcbiAgJHJhZGl1czogJG1vZGFsLXJhZGl1cyxcbiAgJHNoYWRvdzogJG1vZGFsLXNoYWRvd1xuKSB7XG4gIEBleHRlbmQgJW1vZGFsO1xuICBAaW5jbHVkZSBtb2RhbC1sYXlvdXQoJHdpZHRoKTtcbiAgQGluY2x1ZGUgbW9kYWwtc3R5bGUoJGJvcmRlciwgJHJhZGl1cywgJHNoYWRvdyk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMobW9kYWwpIHtcbiAgLm1vZGFsIHtcbiAgICBAaW5jbHVkZSBtb2RhbDtcblxuICAgIEBlYWNoICRzaXplIGluIG1hcC1rZXlzKCRtb2RhbC1zaXplcykge1xuICAgICAgJHdpZHRoOiBtYXAtZ2V0KCRtb2RhbC1zaXplcywgJHNpemUpO1xuICAgICAgQGlmICRzaXplICE9IG1lZGl1bSB7XG4gICAgICAgIC4jeyRzaXplfSA+ICYgeyBAaW5jbHVkZSBtb2RhbC1sYXlvdXQoJHdpZHRoKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5kaWFsb2cgPiAmIHtcbiAgICAgIEBpbmNsdWRlIG1vZGFsLWRpYWxvZztcbiAgICB9XG4gICAgLmNvbGxhcHNlID4gJiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC4jeyRtb2RhbC1vdmVybGF5LWNsYXNzfSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkbW9kYWwtemluZGV4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLW92ZXJsYXktYmFja2dyb3VuZDtcblxuICAgIC8vIEhvcml6b250YWxseSBhbmQgdmVydGljYWxseSBjZW50ZXIgdGhlIG1vZGFsXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG59XG4iLCIvKlxuICBTV0lUQ0hcbiAgLS0tLS0tXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIFN3aXRjaFxuJHN3aXRjaC13aWR0aDogcmVtLWNhbGMoNTApICFkZWZhdWx0O1xuJHN3aXRjaC1oZWlnaHQ6IHJlbS1jYWxjKDMyKSAhZGVmYXVsdDtcbiRzd2l0Y2gtYmFja2dyb3VuZDogI2NjYyAhZGVmYXVsdDtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHN3aXRjaC1ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kc3dpdGNoLXJhZGl1czogOTk5OXB4ICFkZWZhdWx0O1xuJHN3aXRjaC1hbmltYXRpb24tc3BlZWQ6IDAuMTVzICFkZWZhdWx0O1xuXG4kc3dpdGNoLXBhZGRsZS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDRweCAhZGVmYXVsdDtcbi8vL1xuXG4lc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgPiBpbnB1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gID4gbGFiZWwge1xuICAgIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAvLyBQYWRkbGVcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuLypcbiAgRGVmaW5lcyB0aGUgZGltbWVuc2lvbnMgb2YgdGhlIHN3aXRjaC5cblxuICAkd2lkdGggLSB3aWR0aCBvZiB0aGUgc3dpdGNoLlxuICAkaGVpZ2h0IC0gaGVpZ2h0IG9mIHRoZSBzd2l0Y2guXG4qL1xuQG1peGluIHN3aXRjaC1sYXlvdXQoXG4gICR3aWR0aDogJHN3aXRjaC13aWR0aCxcbiAgJGhlaWdodDogJHN3aXRjaC1oZWlnaHRcbikge1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG5cbiAgPiBsYWJlbCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgd2lkdGg6ICRoZWlnaHQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgbGVmdDogJHdpZHRoIC0gJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHN3aXRjaC1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtYWN0aXZlOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlLFxuICAkYm9yZGVyOiAkc3dpdGNoLWJvcmRlcixcbiAgJHJhZGl1czogJHN3aXRjaC1yYWRpdXMsXG4gICRwYWRkbGUtY29sb3I6ICRzd2l0Y2gtcGFkZGxlLWNvbG9yLFxuICAkcGFkZGxlLW9mZnNldDogJHN3aXRjaC1wYWRkbGUtb2Zmc2V0LFxuICAkYW5pbWF0aW9uLXNwZWVkOiAkc3dpdGNoLWFuaW1hdGlvbi1zcGVlZFxuKSB7XG4gIEBpZiBoYXN2YWx1ZSgkYm9yZGVyKSB7XG4gICAgYm9yZGVyOiAkYm9yZGVyO1xuICB9XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG5cbiAgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFkZGxlLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAgIHRyYW5zaXRpb246IGxlZnQgJGFuaW1hdGlvbi1zcGVlZCBlYXNlLW91dDtcblxuICAgICAgQGlmIGhhc3ZhbHVlKCRwYWRkbGUtb2Zmc2V0KSB7XG4gICAgICAgIGJvcmRlcjogJHBhZGRsZS1vZmZzZXQgc29saWQgJGJhY2tncm91bmRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaWYgaGFzdmFsdWUoJHBhZGRsZS1vZmZzZXQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzd2l0Y2goKSB7XG4gIEBleHRlbmQgJXN3aXRjaDtcbiAgQGluY2x1ZGUgc3dpdGNoLWxheW91dDtcbiAgQGluY2x1ZGUgc3dpdGNoLXN0eWxlO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKHN3aXRjaCkge1xuICAuc3dpdGNoIHtcbiAgICBAaW5jbHVkZSBzd2l0Y2g7XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgc3dpdGNoLWxheW91dChyZW0tY2FsYyg0MCksIHJlbS1jYWxjKDI2KSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgc3dpdGNoLWxheW91dChyZW0tY2FsYyg2MCksIHJlbS1jYWxjKDM4KSk7IH1cbiAgfVxufVxuIiwiLypcbiAgVEFCU1xuICAtLS0tXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIFRhYnNcbiR0YWJzdHJpcC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJHRhYi10aXRsZS1iYWNrZ3JvdW5kOiAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiR0YWItdGl0bGUtYmFja2dyb3VuZC1ob3Zlcjogc21hcnRzY2FsZSgkdGFiLXRpdGxlLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcbiR0YWItdGl0bGUtYmFja2dyb3VuZC1hY3RpdmU6IHNtYXJ0c2NhbGUoJHRhYi10aXRsZS1iYWNrZ3JvdW5kLCAzJSkgIWRlZmF1bHQ7XG4kdGFiLXRpdGxlLWNvbG9yOiBpc2l0bGlnaHQoJHRhYi10aXRsZS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcbiR0YWItdGl0bGUtY29sb3ItYWN0aXZlOiAkdGFiLXRpdGxlLWNvbG9yICFkZWZhdWx0O1xuXG4kdGFiLXRpdGxlLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbiR0YWItY29udGVudC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XG4vLy9cblxuQG1peGluIHRhYnN0cmlwKFxuXHQkb3JpZW50YXRpb246IGhvcml6b250YWwsXG5cdCRiYWNrZ3JvdW5kOiAkdGFic3RyaXAtYmFja2dyb3VuZFxuKSB7XG5cdC8qXG5cdFx0Q29udGFpbmVyIHN0eWxlc1xuXHQqL1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuXHRAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcblx0ICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG5cdH1cblx0QGVsc2Uge1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cdH1cbn1cblxuQG1peGluIHRhYnN0cmlwLWl0ZW0oXG5cdCRiYWNrZ3JvdW5kOiAkdGFiLXRpdGxlLWJhY2tncm91bmQsXG5cdCRiYWNrZ3JvdW5kLWhvdmVyOiAkdGFiLXRpdGxlLWJhY2tncm91bmQtaG92ZXIsXG5cdCRiYWNrZ3JvdW5kLWFjdGl2ZTogJHRhYi10aXRsZS1iYWNrZ3JvdW5kLWFjdGl2ZSxcblx0JGNvbG9yOiAkdGFiLXRpdGxlLWNvbG9yLFxuXHQkY29sb3ItYWN0aXZlOiAkdGFiLXRpdGxlLWNvbG9yLWFjdGl2ZSxcblx0JHBhZGRpbmc6ICR0YWItdGl0bGUtcGFkZGluZ1xuKSB7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbjogMDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICRjb2xvcjtcblxuICAmLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cbn1cblxuQG1peGluIHRhYi1jb250ZW50KFxuXHQkcGFkZGluZzogJHRhYi1jb250ZW50LXBhZGRpbmdcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbn1cblxuQG1peGluIHRhYi1jb250ZW50LWl0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xuICAmLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyh0YWJzKSB7XG4gIC50YWJzIHtcbiAgICBAaW5jbHVkZSB0YWJzdHJpcChob3Jpem9udGFsKTtcblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgdGFic3RyaXAodmVydGljYWwpO1xuICAgIH1cblxuICAgIC50YWItaXRlbSB7XG4gICAgICBAaW5jbHVkZSB0YWJzdHJpcC1pdGVtO1xuICAgIH1cbiAgfVxuXG4gIC50YWItY29udGVudHMge1xuICAgIEBpbmNsdWRlIHRhYi1jb250ZW50O1xuXG4gICAgLnRhYi1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIHRhYi1jb250ZW50LWl0ZW07XG4gICAgfVxuICB9XG59XG4iLCIvKlxuXHRPZmYtY2FudmFzIG1lbnVcbiAgLS0tLS0tLS0tLS0tLS0tXG5cbiAgQSBnZW5lcmljIGNvbnRhaW5lciB0aGF0IHN0YXlzIGZpeGVkIHRvIHRoZSBsZWZ0LCB0b3AsIHJpZ2h0LCBvciBib3R0b20gb2YgdGhlIHNjcmVlbiwgYW5kIGlzIHN1bW1vbmVkIHdoZW4gbmVlZGVkLiBXaGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3BlbiwgdGhlIGFwcCBmcmFtZSBzaGlmdHMgb3ZlciB0byByZXZlYWwgdGhlIG1lbnUuXG4qL1xuXG4vLy8gQEZvdW5kYXRpb24uc2V0dGluZ3Ncbi8vIE9mZi1jYW52YXNcbiRvZmZjYW52YXMtc2l6ZS1ob3Jpem9udGFsOiAyNTBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtc2l6ZS12ZXJ0aWNhbDogMjUwcHggIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRvZmZjYW52YXMtY29sb3I6IGlzaXRsaWdodCgkb2ZmY2FudmFzLWJhY2tncm91bmQpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1wYWRkaW5nOiAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1zaGFkb3c6IDNweCAwIDEwcHggcmdiYShibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWFuaW1hdGlvbi1zcGVlZDogMC4yNXMgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3I6ICcuZ3JpZC1mcmFtZScgIWRlZmF1bHQ7XG4vLy9cblxuJW9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLWFuaW1hdGlvbi1zcGVlZCBlYXNlLW91dDtcbiAgei1pbmRleDogMjtcblxuICAvLyBBY3RpdmUgc3RhdGVcbiAgJi5pcy1hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEZyYW1lIHN0eWxlc1xuICAmIH4gI3skb2ZmY2FudmFzLWZyYW1lLXNlbGVjdG9yfSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwLDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbn1cbkBtaXhpbiBvZmYtY2FudmFzLWRldGFjaGVkIHtcbiAgei1pbmRleDogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICAmLCAmLmlzLWFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0ge1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLDAsMCwwLjUpO1xuICB9XG59XG5cbkBtaXhpbiBvZmYtY2FudmFzLWxheW91dChcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkc2l6ZTogZGVmYXVsdCxcbiAgJHNoYWRvdzogJG9mZmNhbnZhcy1zaGFkb3dcbikge1xuICAvKlxuICAgIEdldCBzaGFkb3cgdmFsdWVzIGZvciBsYXRlciB1c2VcbiAgKi9cbiAgJHNoYWRvdy1sZW5ndGg6ICcnO1xuICAkc2hhZG93LXNpemU6ICcnO1xuICAkc2hhZG93LWNvbG9yOiAnJztcbiAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHtcbiAgICAkc2hhZG93LWxlbmd0aDogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCB4KTtcbiAgICAkc2hhZG93LXNpemU6IGdldC1zaGFkb3ctdmFsdWUoJHNoYWRvdywgc2l6ZSk7XG4gICAgJHNoYWRvdy1jb2xvcjogZ2V0LXNoYWRvdy12YWx1ZSgkc2hhZG93LCBjb2xvcik7XG4gIH1cblxuICAvKlxuICAgIFNpemluZ1xuICAqL1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQgb3IgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBAaWYgJHNpemUgPT0gZGVmYXVsdCB7XG4gICAgICAkc2l6ZTogJG9mZmNhbnZhcy1zaXplLWhvcml6b250YWw7XG4gICAgfVxuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkc2l6ZSA9PSBkZWZhdWx0IHtcbiAgICAgICRzaXplOiAkb2ZmY2FudmFzLXNpemUtdmVydGljYWw7XG4gICAgfVxuICAgIGhlaWdodDogJHNpemU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvKlxuICAgIFBvc2l0aW9uaW5nXG4gICovXG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgQGlmIGhhc3ZhbHVlKCRzaGFkb3cpIHsgYm94LXNoYWRvdzogaW5zZXQgKC0kc2hhZG93LWxlbmd0aCkgMCAkc2hhZG93LXNpemUgJHNoYWRvdy1jb2xvcjsgfVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgJiB+ICN7JG9mZmNhbnZhcy1mcmFtZS1zZWxlY3Rvcn0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBAaWYgaGFzdmFsdWUoJHNoYWRvdykgeyBib3gtc2hhZG93OiBpbnNldCAkc2hhZG93LWxlbmd0aCAwICRzaGFkb3ctc2l6ZSAkc2hhZG93LWNvbG9yOyB9XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICYgfiAjeyRvZmZjYW52YXMtZnJhbWUtc2VsZWN0b3J9IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSkgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0IDAgKC0kc2hhZG93LWxlbmd0aCkgJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAmIH4gI3skb2ZmY2FudmFzLWZyYW1lLXNlbGVjdG9yfSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSkgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90dG9tIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgIEBpZiBoYXN2YWx1ZSgkc2hhZG93KSB7IGJveC1zaGFkb3c6IGluc2V0IDAgJHNoYWRvdy1sZW5ndGggJHNoYWRvdy1zaXplICRzaGFkb3ctY29sb3I7IH1cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAmIH4gI3skb2ZmY2FudmFzLWZyYW1lLXNlbGVjdG9yfSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG9mZi1jYW52YXMtc3R5bGUoXG4gICRiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLWJhY2tncm91bmQsXG4gICRjb2xvcjogJG9mZmNhbnZhcy1jb2xvcixcbiAgJHBhZGRpbmc6ICRvZmZjYW52YXMtcGFkZGluZ1xuKSB7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgY29sb3I6IGlzaXRsaWdodCgkYmFja2dyb3VuZCwgIzAwMCwgI2ZmZik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICBAaWYgaGFzdmFsdWUoJHBhZGRpbmcpIHtcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKG9mZi1jYW52YXMpIHtcbiAgLm9mZi1jYW52YXMge1xuICAgIEBleHRlbmQgJW9mZi1jYW52YXM7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQ7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdHlsZTtcblxuICAgICYudG9wICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQodG9wKTsgfVxuICAgICYucmlnaHQgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1sYXlvdXQocmlnaHQpOyB9XG4gICAgJi5ib3R0b20geyBAaW5jbHVkZSBvZmYtY2FudmFzLWxheW91dChib3R0b20pOyB9XG4gICAgJi5sZWZ0ICAgeyBAaW5jbHVkZSBvZmYtY2FudmFzLWxheW91dChsZWZ0KTsgfVxuXG4gICAgJi5kZXRhY2hlZCB7IEBpbmNsdWRlIG9mZi1jYW52YXMtZGV0YWNoZWQ7IH1cblxuICAgICYucHJpbWFyeSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtc3R5bGUoJHByaW1hcnktY29sb3IsIGF1dG8pOyB9XG4gICAgJi5kYXJrICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdHlsZSgkZGFyay1jb2xvciwgYXV0byk7IH1cbiAgfVxufVxuIiwiLypcbiAgQUNDT1JESU9OXG4gIC0tLS0tLS0tLVxuXG4gIFRoZSB0cnVzeSBhY2NvcmRpb24gYWxsb3dzIHlvdSB0byBjcmVhdGUgYSBzZXJpZXMgb2YgdmVydGljYWwgdGFicy5cbiovXG5cbi8vLyBARm91bmRhdGlvbi5zZXR0aW5nc1xuLy8gQWNjb3JkaW9uXG4kYWNjb3JkaW9uLWJvcmRlcjogMXB4IHNvbGlkICRncmF5LWRhcmsgIWRlZmF1bHQ7XG5cbiRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZDogJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQtaG92ZXI6IHNtYXJ0c2NhbGUoJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQtYWN0aXZlOiBzbWFydHNjYWxlKCRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCwgMyUpICFkZWZhdWx0O1xuJGFjY29yZGlvbi10aXRsZS1jb2xvcjogaXNpdGxpZ2h0KCRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLXRpdGxlLWNvbG9yLWFjdGl2ZTogaXNpdGxpZ2h0KCRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbiRhY2NvcmRpb24tdGl0bGUtcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nICFkZWZhdWx0O1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcbi8vL1xuXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlKFxuICAkYmFja2dyb3VuZDogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkYmFja2dyb3VuZC1hY3RpdmU6ICRhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZC1hY3RpdmUsXG4gICRjb2xvcjogJGFjY29yZGlvbi10aXRsZS1jb2xvcixcbiAgJGNvbG9yLWFjdGl2ZTogJGFjY29yZGlvbi10aXRsZS1jb2xvci1hY3RpdmUsXG4gICRwYWRkaW5nOiAkYWNjb3JkaW9uLXRpdGxlLXBhZGRpbmdcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gIH1cblxuICAuaXMtYWN0aXZlID4gJiB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYWN0aXZlO1xuICAgIGNvbG9yOiAkY29sb3ItYWN0aXZlO1xuICB9XG59XG5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudChcbiAgJHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgLmlzLWFjdGl2ZSA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoYWNjb3JkaW9uKSB7XG4gIC5hY2NvcmRpb24ge1xuICAgIEBpZiBoYXN2YWx1ZSgkYWNjb3JkaW9uLWJvcmRlcikge1xuICAgICAgYm9yZGVyOiAkYWNjb3JkaW9uLWJvcmRlcjtcbiAgICB9XG4gIH1cbiAgICAuYWNjb3JkaW9uLWl0ZW0ge1xuXG4gICAgfVxuICAgIC5hY2NvcmRpb24tdGl0bGUge1xuICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xuICAgIH1cbiAgICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRlbnQ7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/afb-client/dist.prod/global_styles/ibz-global.min.css b/afb-client/dist.prod/global_styles/ibz-global.min.css
new file mode 100644
index 0000000..74b2072
--- /dev/null
+++ b/afb-client/dist.prod/global_styles/ibz-global.min.css
@@ -0,0 +1,2 @@
+submit-button{float:right;display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}submit-button i{padding-right:.3rem;font-size:2rem}submit-button span{font-size:1rem}submit-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}zf-modal{background-color:rgba(180,180,180,.5)}.box-content{border:2px solid #dcdcdc!important;border-radius:5px;min-width:98%!important;margin:.5rem;background:rgba(200,205,200,.3)}.box-content .box-title{display:block;font-size:1.3rem}.ui-notification{width:auto;border-radius:5px}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9pYnotZ2xvYmFsLnNjc3MiLCJhcHAvX2liei1taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmEsY0FDVCxNQUFPLE1DRFAsUUFBUyxhQUNULE9BQVcsSUFBTSxNQUFDLFFBQ2xCLFdBQWUsSUFBSSxJQUFJLElBQUMsS0FDeEIsTUREb0IsS0NFcEIsY0FBZSxJQUNmLFdBQVksT0FDWixRQUFTLEVBQUEsTUFDVCxPQUFPLE1BQ1AsV0FBWSxRQUNYLGdCQUNHLGNBQWUsTUFDZixVQVp5QixLQWN6QixtQkFBRSxVQUFXLEtBRVYsb0JBQ0wsV0FBWSxRQUNaLE9BQVcsSUFBTSxNQUFDLFFEWmhCLFNBQ04saUJBQWtCLHFCQUdSLGFDcEJSLE9BQVEsSUFBQSxNQUFBLGtCQUNSLGNBQWUsSUFJZixVQUFXLGNBQ1gsT0FBUSxNQUNSLFdBQVkscUJEZ0JGLHdCQUNOLFFBQVMsTUFDVCxVQUFXLE9BS0gsaUJBQ1osTUFBTyxLQUNQLGNBQWUiLCJmaWxlIjoiYXBwL2liei1nbG9iYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG5cblRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG5pdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxudGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cblRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG5hbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG5zdWJtaXQtYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgQGluY2x1ZGUgaWJ6LWJ1dHRvbihncmV5KTtcbn1cblxuemYtbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4MCwxODAsMTgwLC41KTtcbn1cblxuLmJveC1jb250ZW50IHtcbiAgICAgQGluY2x1ZGUgaWJ6LWJveC1jb250ZW50O1xuXG4gICAgLmJveC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICB9XG59XG5cbi8vIENoYW5nZSBOb3RpZmljYXRpb25zIGRlZmF1bHQgc2l6ZVxuLnVpLW5vdGlmaWNhdGlvbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufSIsIi8qXG4gICAgRXZlcnkgU0NTUyBmaWxlcyB3aWxsIGJlIGluamVjdGVkIGludG8gbWFpbiBIVE1MIHBhZ2VcbiovXG4lc2hhZG93LXRyYW5zaXRpb24ge1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAwLjJzIGxpbmVhciAwcywgYm94LXNoYWRvdyAwLjJzIGxpbmVhciAwcztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbkBtaXhpbiBpYnotYm94LWNvbnRlbnQge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGdhaW5zYm9ybyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWluLXdpZHRoOiA5OCUgIWltcG9ydGFudDsgXG4gICAgbWFyZ2luOiAuNXJlbSAuNXJlbSAuNXJlbSAuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMCwyMDUsMjAwLC4zKTtcbn1cblxuQG1peGluIGliei1idXR0b24gKCRjb2xvciwgJHNpemU6MnJlbSkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJGNvbG9yLDEwJSk7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCAxcHggYWRqdXN0LWh1ZSgkY29sb3IsMjBkZWcpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBwYWRkaW5nOiAwcmVtIC41cmVtIDByZW0gLjVyZW07XG4gICAgbWFyZ2luOi41cmVtO1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oIzk0OTRiNywgMjAlKTtcbiAgICBpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4zcmVtO1xuICAgICAgICBmb250LXNpemU6ICRzaXplO1xuICAgIH1cbiAgICBzcGFuIHtmb250LXNpemU6IDFyZW19XG4gICAgXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvciwgNDUlKTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGRhcmtlbigkY29sb3IsMjAlKTtcbiAgICAgIFxuICAgIH1cbn1cblxuQG1peGluIGliei1pbnB1dC1hbGVydCAoJGNvbG9yLCAkYmFja2dyb3VuZCkge1xuICAgIHBvc2l0aW9uICA6Zml4ZWQ7XG4gICAgbWFyZ2luOiAtMi4ycmVtIDAgMCAxNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLDEwJSk7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMnJlbSAhaW1wb3J0YW50O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/afb-client/dist.prod/opa/AFBclient.min.css b/afb-client/dist.prod/opa/AFBclient.min.css
new file mode 100644
index 0000000..1c16956
--- /dev/null
+++ b/afb-client/dist.prod/opa/AFBclient.min.css
@@ -0,0 +1,9 @@
+submit-button{float:right;display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}submit-button i{padding-right:.3rem;font-size:2rem}submit-button span{font-size:1rem}submit-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}zf-modal{background-color:rgba(180,180,180,.5)}.box-content{border:2px solid #dcdcdc!important;border-radius:5px;min-width:98%!important;margin:.5rem;background:rgba(200,205,200,.3)}.box-content .box-title{display:block;font-size:1.3rem}.ui-notification{width:auto;border-radius:5px}
+token-refresh{display:block;float:right;margin:.5rem 1rem 0 0}.button-box{height:4.5rem}.button-box .session-button{float:left;width:5rem}.button-box .response>span{display:block;margin:.3rem .5rem}.button-box .fail{color:red;border:1px solid #c00}.button-box .success{color:green;border:1px solid #004d00}.message-box{height:auto;width:100%;font-size:.75rem}.message-box .response .err-no{color:grey}.message-box .response .res.err-ok{color:#00f}.message-box .response .req.err-ok{color:#8a2be2}.message-box .response .status.err-ok{color:green}.message-box .response .status.err-fx{color:red}
+.sample-box{display:block;height:4.5rem}.sample-box .sample-button{float:right;width:5rem}.sample-box .muted-off-off,.sample-box .muted-on-on{background:#8a2be2}.sample-box .muted-error{background:red}
+appli-button i,appli-button span{font-size:1rem}appli-button{display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}appli-button i{padding-right:.3rem}appli-button:hover{background:#f3f3f3;border:2px solid #4d4d4d}appli-button img{height:3rem}appli-button .disable>i{text-decoration:none;cursor:auto;color:grey!important}.appli-menu-start .start-start i,.appli-menu-start .stop-stop i{color:grey}
+.upload-file{display:inline-block;float:right;height:5rem;width:5rem;margin:.5rem}.upload-file img{height:inherit}.upload-file .ibz-range-slider{height:10%!important;border-radius:5px;background-color:#d3d3d3!important}.upload-file .ibz-range-slider .range-slider-handle{width:10%!important;height:100%!important;margin-top:.2rem;background-color:purple!important}.upload-file .ibz-range-slider .range-slider-active-segment{height:80%!important;background-color:#90ee90}input-text alert{position:fixed;margin:-2.2rem 0 0 15rem;border-radius:5px;font-style:italic;border-color:rgba(175,175,175,.6);color:#00008b;background-color:rgba(200,200,200,.6)!important;padding:.2rem!important}input-text input{margin-bottom:.5rem!important}input-text label{margin-top:1rem!important}input-text .required{float:right;color:#87cefa}input-text .required.valid{color:green}input-text .required.invalid{color:plum}input-text .status-untouch{border-color:rgba(200,200,200,.6)!important;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(200,200,200,.6)!important;color:#696969!important}input-text input:focus{border-color:rgba(82,168,236,.8);box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.8)!important;transition:border .2s linear 0s,box-shadow .2s linear 0s;color:#483d8b!important}input-text .status-valid{border-color:rgba(154,205,50,.6)!important;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(154,205,50,.6)!important}input-text .status-invalid{border-color:rgba(154,17,69,.6);box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(154,17,69,.6)!important;color:#9a1145}
+link-button,link-button.secondary{display:inline-block;font-style:italic;margin:.5rem}link-button i,link-button span,link-button.secondary span{font-size:1rem}link-button{border:1px solid #0040ff;box-shadow:2px 2px 1px #43f;color:#36f;border-radius:5px;padding:0 .5rem;background:#d1d1e0}link-button i{padding-right:.3rem}link-button:hover{background:#fff;border:2px solid #03c}link-button.secondary{border:1px solid #668dff;box-shadow:2px 2px 1px #a199ff;color:#99b3ff;border-radius:5px;padding:0 .5rem;background:#d1d1e0}link-button.secondary i{padding-right:.3rem;font-size:1rem}link-button.secondary:hover{background:#fff;border:2px solid #3367ff}
+link-button i,link-button span,token-refresh span{font-size:1rem}link-button{display:inline-block;border:1px solid #0040ff;box-shadow:2px 2px 1px #43f;color:#36f;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem;background:#d1d1e0}link-button i{padding-right:.3rem}link-button:hover{background:#fff;border:2px solid #03c}tip-modal{position:relative}.tip-modal-popup{width:20rem;position:absolute;top:1em;padding:.2em .6em;border:1px solid #963;background-color:#e5ffff;color:#000;opacity:0;transition:visibility .5s linear 1s,opacity 1s linear;border-radius:5px}.tip-modal-popup i{margin:0 .3rem 0 0;display:inline}token-refresh{display:inline-block;border:1px solid #676767;box-shadow:2px 2px 1px gray;color:grey;border-radius:5px;font-style:italic;padding:0 .5rem;margin:.5rem 1rem .5rem .5rem;background:#d1d1e0}token-refresh i{padding-right:.3rem;font-size:1rem;margin-left:.5rem}token-refresh:hover{background:#f3f3f3;border:2px solid #4d4d4d}token-refresh.online{color:#06c}token-refresh.online i{color:#0f0}token-refresh.offline{color:#f0f}token-refresh.offline i{color:red}
+.range-slider-handle{display:inline-block;position:absolute;z-index:1;top:-.2rem;width:2rem;height:1.375rem;border:1px solid;cursor:pointer;background:#008cba}.range-slider-handle,.range-slider.radius{background:#008cba;-webkit-border-radius:3px;border-radius:3px}.range-slider-active-segment{display:inline-block;top:.07rem;position:absolute;height:.8rem;background:#e5e5e5}.ibz-range-slider{background-color:rgba(154,205,50,.6)!important;height:1rem;position:relative}.ibz-range-slider .range-slider-active-segment{background-color:rgba(82,168,200,.6)}.ibz-range-slider-display{background-color:rgba(82,168,200,.6)!important;width:4rem!important;padding:.25rem;text-align:center}.ibz-range-slider-start,.ibz-range-slider-stop{display:inline-block;position:absolute;padding-top:2px;height:95%;background:repeating-linear-gradient(45deg,#606dbc,#606dbc 10px,#465298 10px,#465298 20px)}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy9hcHAvaWJ6LWdsb2JhbC5zY3NzIiwic3R5bGVzL2FwcC9faWJ6LW1peGlucy5zY3NzIiwicGFnZXMvU2FtcGxlSG9tZS9TYW1wbGVIb21lLnNjc3MiLCJwYWdlcy9TYW1wbGVQb3N0L1NhbXBsZVBvc3Quc2NzcyIsIndpZGdldHMvQWN0aW9uQnV0dG9ucy9BY3Rpb25CdXR0b25zLnNjc3MiLCJ3aWRnZXRzL0Zvcm1JbnB1dC9Gb3JtSW5wdXQuc2NzcyIsIndpZGdldHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uLnNjc3MiLCJ3aWRnZXRzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9ucy5zY3NzIiwid2lkZ2V0cy9SYW5nZVNsaWRlcnMvUmFuZ2VzbGlkZXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmEsY0FDVCxNQUFPLE1DRFAsUUFBUyxhQUNULE9BQVcsSUFBTSxNQUFDLFFBQ2xCLFdBQWUsSUFBSSxJQUFJLElBQUMsS0FDeEIsTUREb0IsS0NFcEIsY0FBZSxJQUNmLFdBQVksT0FDWixRQUFTLEVBQUEsTUFDVCxPQUFPLE1BQ1AsV0FBWSxRQUNYLGdCQUNHLGNBQWUsTUFDZixVQVp5QixLQWN6QixtQkFBRSxVQUFXLEtBRVYsb0JBQ0wsV0FBWSxRQUNaLE9BQVcsSUFBTSxNQUFDLFFEWmhCLFNBQ04saUJBQWtCLHFCQUdSLGFDcEJSLE9BQVEsSUFBQSxNQUFBLGtCQUNSLGNBQWUsSUFJZixVQUFXLGNBQ1gsT0FBUSxNQUNSLFdBQVkscUJEZ0JGLHdCQUNOLFFBQVMsTUFDVCxVQUFXLE9BS0gsaUJBQ1osTUFBTyxLQUNQLGNBQWU7QUVsQk4sY0FDVCxRQUFTLE1BQ1QsTUFBTyxNQUNQLE9BQVEsTUFBQSxLQUFBLEVBQUEsRUFHRCxZQUNQLE9BQVUsT0FFSyw0QkFDYixNQUFPLEtBQ1AsTUFBTyxLQUdPLDJCQUNaLFFBQVMsTUFDVCxPQUFRLE1BQUEsTUFHUCxrQkFDRCxNQXRCSyxJQXVCTCxPQUFXLElBQU0sTUFBQyxLQUVk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ZSx1QkFpQmQsUUFBUyxhQUNULFNBQVUsU0FDVixZQUFhLElBQ2IsT0FBUSxJQUNSLFdBQVkiLCJmaWxlIjoiQUZCY2xpZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbkF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuXG5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4oYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG5NRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG5Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4qL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuc3VibWl0LWJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIEBpbmNsdWRlIGliei1idXR0b24oZ3JleSk7XG59XG5cbnpmLW1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODAsMTgwLDE4MCwuNSk7XG59XG5cbi5ib3gtY29udGVudCB7XG4gICAgIEBpbmNsdWRlIGliei1ib3gtY29udGVudDtcblxuICAgIC5ib3gtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgfVxufVxuXG4vLyBDaGFuZ2UgTm90aWZpY2F0aW9ucyBkZWZhdWx0IHNpemVcbi51aS1ub3RpZmljYXRpb24ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn0iLCIvKlxuICAgIEV2ZXJ5IFNDU1MgZmlsZXMgd2lsbCBiZSBpbmplY3RlZCBpbnRvIG1haW4gSFRNTCBwYWdlXG4qL1xuJXNoYWRvdy10cmFuc2l0aW9uIHtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBsaW5lYXIgMHMsIGJveC1zaGFkb3cgMC4ycyBsaW5lYXIgMHM7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG5AbWl4aW4gaWJ6LWJveC1jb250ZW50IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBnYWluc2Jvcm8gIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1pbi13aWR0aDogOTglICFpbXBvcnRhbnQ7IFxuICAgIG1hcmdpbjogLjVyZW0gLjVyZW0gLjVyZW0gLjVyZW07XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMDAsMjA1LDIwMCwuMyk7XG59XG5cbkBtaXhpbiBpYnotYnV0dG9uICgkY29sb3IsICRzaXplOjJyZW0pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjb2xvciwxMCUpO1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggMXB4IGFkanVzdC1odWUoJGNvbG9yLDIwZGVnKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzogMHJlbSAuNXJlbSAwcmVtIC41cmVtO1xuICAgIG1hcmdpbjouNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCM5NDk0YjcsIDIwJSk7XG4gICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuM3JlbTtcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICB9XG4gICAgc3BhbiB7Zm9udC1zaXplOiAxcmVtfVxuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbGlnaHRlbigkY29sb3IsIDQ1JSk7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCBkYXJrZW4oJGNvbG9yLDIwJSk7XG4gICAgICBcbiAgICB9XG59XG5cbkBtaXhpbiBpYnotaW5wdXQtYWxlcnQgKCRjb2xvciwgJGJhY2tncm91bmQpIHtcbiAgICBwb3NpdGlvbiAgOmZpeGVkO1xuICAgIG1hcmdpbjogLTIuMnJlbSAwIDAgMTVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwxMCUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjJyZW0gIWltcG9ydGFudDtcbn1cbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG4kQ09MT1JfU1VDQ0VTUzogZ3JlZW47XG4kQ09MT1JfRkFJTDogcmVkO1xuXG50b2tlbi1yZWZyZXNoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAuNXJlbSAxcmVtIDAgMDtcbn1cblxuLmJ1dHRvbi1ib3gge1xuICAgIGhlaWdodCAgOiA0LjVyZW07XG4gICAgXG4gICAgLnNlc3Npb24tYnV0dG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDVyZW07XG4gICAgfTtcbiAgICBcbiAgICAucmVzcG9uc2UgPiBzcGFue1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAuM3JlbSAuNXJlbSAuM3JlbSAuNXJlbTsgICAgICAgIFxuICAgIH0gIFxuICAgIFxuICAgIC5mYWlsIHsgXG4gICAgICAgIGNvbG9yOiRDT0xPUl9GQUlMO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJENPTE9SX0ZBSUwsMTAlKTtcbiAgICB9XG4gICAgLnN1Y2Nlc3MgeyBcbiAgICAgICAgY29sb3I6JENPTE9SX1NVQ0NFU1M7IFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJENPTE9SX1NVQ0NFU1MsMTAlKTtcbiAgICB9XG5cbn07XG5cbi5tZXNzYWdlLWJveCB7XG4gICAgaGVpZ2h0ICA6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAuNzVyZW07XG4gIFxuICAgIC5yZXNwb25zZSB7XG4gICAgICAgIC5lcnItbm8geyBjb2xvcjpncmV5OyB9XG4gICAgICAgIC5yZXMuZXJyLW9rIHsgY29sb3I6IGJsdWU7IH1cbiAgICAgICAgLnJlcS5lcnItb2sgeyBjb2xvcjpibHVldmlvbGV0OyB9XG4gICAgICAgIC5zdGF0dXMuZXJyLW9rIHsgY29sb3I6Z3JlZW47IH1cbiAgICAgICAgLnN0YXR1cy5lcnItZnggeyBjb2xvcjpyZWQ7IH0gICAgICAgXG4gICAgfSBcbiAgICBcblxufTtcblxuXG5cbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG5cbi5zYW1wbGUtYm94IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQgIDogNC41cmVtO1xuICAgIFxuICAgIC5zYW1wbGUtYnV0dG9uIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHdpZHRoOiA1cmVtO1xuICAgIH07XG4gICAgXG4gICAgLm11dGVkLW9uLW9uLC5tdXRlZC1vZmYtb2Zme1xuICAgICAgICBiYWNrZ3JvdW5kOiBibHVldmlvbGV0O1xuICAgIH07XG4gICAgICAgIFxuICAgIC5tdXRlZC1lcnJvcntcbiAgICAgICAgYmFja2dyb3VuZDogcmVkO1xuICAgIH07XG59O1xuXG5cblxuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuQGltcG9ydCBcImFwcC9pYnotbWl4aW5zXCI7XG5cbi8vIHBsYWNlIGhlcmUgeW91ciBzdWJtaXQgYnV0dG9ucyBjdXN0b21pemF0aW9uXG5hcHBsaS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGliei1idXR0b24oZ3JleSwxcmVtKVxuICAgIGltZyB7XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgLmRpc2FibGU+aSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTsgLy8gcmVhbGx5IG5vdCBuZWVkZWQgZm9yIHRoZSBUb3AgQmFyLCBqdXN0IGZvciBnZW5lcmFsIHRlY2huaXF1ZVxuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgY29sb3I6IGdyZXkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5hcHBsaS1tZW51LXN0YXJ0IHsgICAgXG4gICAgLnN0YXJ0LXN0YXJ0LCAuc3RvcC1zdG9wIHtcbiAgICAgICAgaSB7Y29sb3I6IGdyZXk7fVxuICAgIH1cbn1cbiIsIi8qXG4gICAgU2FtcGxlIG9mIHN0eWxlIG92ZXJsb2FkIGZvciBhIHNwZWNpZmljIHdpZGdldFxuXG4gICAgTm90ZTogdGhpcyBTQ1NTIGlzIGluamVjdGVkIHdpdGggbWFpbiBIVE1MIHBhZ2UsIGl0IHNjb3BlIHNob3VsZCBiZSByZWR1Y2VcbiAgICB0byBhIHNwZWNpZmljIHdpZGdldCBvciBpdCB2YWx1ZSB3aWxsIGJlIHByb3BhZ2F0ZWQgYXQgYSBnbG9iYWwgbGV2ZWwuXG4qL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuLnVwbG9hZC1maWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGhlaWdodCA6IDVyZW07XG4gICAgd2lkdGggIDogNXJlbTtcbiAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgIGltZyB7IGhlaWdodDogaW5oZXJpdDt9XG4gICAgXG4gICAgLmliei1yYW5nZS1zbGlkZXIge1xuICAgICAgICBoZWlnaHQ6IDEwJSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleSAhaW1wb3J0YW50O1xuICAgIFxuICAgICAgICAucmFuZ2Utc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC4ycmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAucmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50IHtcbiAgICAgICAgICAgIGhlaWdodDogODAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbmlucHV0LXRleHQge1xuICBcbiAgICBhbGVydCB7QGluY2x1ZGUgaWJ6LWlucHV0LWFsZXJ0KGRhcmtibHVlLCByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuNikpfTtcblxuICAgIGlucHV0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnJlcXVpcmVkIHtcbiAgICAgICAgY29sb3I6IGJsdWU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY29sb3I6IGxpZ2h0c2t5Ymx1ZTtcbiAgICB9XG4gICAgLnJlcXVpcmVkLnZhbGlkIHtcbiAgICAgICAgY29sb3I6IGdyZWVuO1xuICAgIH1cbiAgICBcbiAgICAucmVxdWlyZWQuaW52YWxpZCB7XG4gICAgICAgIGNvbG9yOiBwbHVtO1xuICAgIH0gIFxuXG4gICAgLnN0YXR1cy11bnRvdWNoIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuNikgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpIGluc2V0LCAwIDAgOHB4IHJnYmEoMjAwLCAyMDAsIDIwMCwgMC42KSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzY5Njk2OSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGlucHV0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDgyLDE2OCwyMzYsMC44KSA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSBpbnNldCwgMCAwIDhweCByZ2JhKDgyLDE2OCwyMzYsMC44KSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBsaW5lYXIgMHMsIGJveC1zaGFkb3cgMC4ycyBsaW5lYXIgMHM7XG4gICAgICAgIGNvbG9yOiBkYXJrc2xhdGVibHVlICFpbXBvcnRhbnQ7XG4gICAgICAgIEBleHRlbmQgc2hhZG93LXRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgLnN0YXR1cy12YWxpZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNTQsIDIwNSwgNTAsIDAuNikhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSkgaW5zZXQsIDAgMCA4cHggcmdiYSgxNTQsIDIwNSwgNTAsIDAuNikhaW1wb3J0YW50O1xuICAgICAgICBAZXh0ZW5kIHNoYWRvdy10cmFuc2l0aW9uO1xuICAgIH1cblxuICAgIC5zdGF0dXMtaW52YWxpZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNTQsIDE3LCA2OSwgMC42KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpIGluc2V0LCAwIDAgOHB4IHJnYmEoMTU0LCAxNywgNjksIDAuNikhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogcmdiKDE1NCwgMTcsIDY5KTtcbiAgICAgICAgQGV4dGVuZCBzaGFkb3ctdHJhbnNpdGlvbjtcbiAgICB9XG5cbn1cbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbkBpbXBvcnQgXCJhcHAvaWJ6LW1peGluc1wiO1xuXG5cbmxpbmstYnV0dG9uIHtAaW5jbHVkZSBpYnotYnV0dG9uKCMzMzY2ZmYsMXJlbSl9O1xuXG4vL3BhbGUgYmx1ZSBmb3Igc2Vjb25kYXR5IGxpbmtcbmxpbmstYnV0dG9uLnNlY29uZGFyeSB7QGluY2x1ZGUgaWJ6LWJ1dHRvbigjOTliM2ZmLDFyZW0pfTtcblxuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIFJlZmVyZW5jZTogaHR0cDovL3d3dy5ncmV5d3l2ZXJuLmNvbS8/cG9zdD0zMzdcbiAqL1xuXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuXG5saW5rLWJ1dHRvbiB7QGluY2x1ZGUgaWJ6LWJ1dHRvbigjMzM2NmZmLDFyZW0pfTtcblxuLy8gTW9kYWwgc2hvdWxkIGJlIHJlbGF0aXZlIGFuZCB0aXAtbW9kYWwtcG9wdXAgYWJzb2x1dGVcbnRpcC1tb2RhbCB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG59XG5cbi50aXAtbW9kYWwtcG9wdXAge1xuICAgIC8vdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAyMHJlbTtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MWVtO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xuICAgIGJvcmRlcjoxcHggc29saWQgIzk5NjYzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNlNWZmZmY7XG4gICAgY29sb3I6IzAwMDtcbiAgICBvcGFjaXR5OjA7XG4gICAgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IC41cyBsaW5lYXIgMXMsb3BhY2l0eSAxcyBsaW5lYXI7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGkge1xuICAgICAgICBtYXJnaW46IDAgLjNyZW0gMCAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG50b2tlbi1yZWZyZXNoIHtcbiAgICBAaW5jbHVkZSBpYnotYnV0dG9uKGdyZXksMXJlbSlcbiAgICBpIHttYXJnaW4tbGVmdDogLjVyZW07fVxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxudG9rZW4tcmVmcmVzaC5vbmxpbmUge1xuICAgIGNvbG9yOiAjMDA2NmNjO1xuICAgIGkge2NvbG9yOiBsaW1lO30gICAgXG59XG5cbnRva2VuLXJlZnJlc2gub2ZmbGluZSB7XG4gICAgY29sb3I6ICNmZjAwZmY7XG4gICAgaSB7Y29sb3I6IHJlZDt9ICAgIFxufVxuIiwiLypcbiAqIGliei1EYXRlcGlja2VyIGZvciBGb3VuZGF0aW9uXG4gKlxuICogQXV0aG9yOiBGdWx1cCBBciBGb2xsXG4gKiBEYXRlICA6IE1hcmNoLTIwMTVcbiAqIE9iamVjdDogU0FTUyBzdHlsZXNoZWV0LCBjdXN0b21pemVkIHRvIEZvdW5kYXRpb25cbiAqIFJlZmVyZW5jZXM6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc3RyaXBlcy1jc3MvXG4gKlxuICovXG5AaW1wb3J0IFwiYXBwL2liei1taXhpbnNcIjtcblxuLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAtMC4ycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAxLjM3NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjMDA4Y2JhO1xufVxuXG4ucmFuZ2Utc2xpZGVyLnJhZGl1cywgLnJhbmdlLXNsaWRlci1oYW5kbGUge1xuICBiYWNrZ3JvdW5kOiAjMDA4Y2JhO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ucmFuZ2Utc2xpZGVyLWFjdGl2ZS1zZWdtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0b3A6IDAuMDdyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAwLjgwcmVtO1xuICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xufVxuXG4uaWJ6LXJhbmdlLXNsaWRlciB7XG4gICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1NCwgMjA1LCA1MCwgMC42KSAhaW1wb3J0YW50O1xuICAgaGVpZ2h0OiAxcmVtO1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgXG4gIC5yYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODIsIDE2OCwgMjAwLCAwLjYpO1xuICB9XG4gIFxuICAmLWRpc3BsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODIsIDE2OCwgMjAwLCAwLjYpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGggOiA0cmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogLjI1cmVtO1xuICAgIHRleHQtYWxpZ246Y2VudGVyXG4gICB9XG5cbiAgICYtc3RhcnQsJi1zdG9wIHtcbiAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgIHBhZGRpbmctdG9wOiAycHg7XG4gICBoZWlnaHQ6IDk1JTtcbiAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgNDVkZWcsXG4gICAgIzYwNmRiYyxcbiAgICAjNjA2ZGJjIDEwcHgsXG4gICAgIzQ2NTI5OCAxMHB4LFxuICAgICM0NjUyOTggMjBweFxuICApO31cblxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
diff --git a/afb-client/dist.prod/opa/AFBclient.min.js b/afb-client/dist.prod/opa/AFBclient.min.js
new file mode 100644
index 0000000..1752ebd
--- /dev/null
+++ b/afb-client/dist.prod/opa/AFBclient.min.js
@@ -0,0 +1,2 @@
+!function(){"use strict";function e(e){var t=[],n=[];this.getId=function(){return e.sliderid},this.getCbHandle=function(){return e.cbhandle},this.getView=function(a){return a||(a=0),e.value[a]===t[a]?n[a]:(t[a]=e.value[a],e.formatter?n[a]=e.formatter(e.value[a],e.ctrlhandle):n[a]=e.value[a],n[a])},this.updateClass=function(t,n){e.updateClass(t,n)},this.forceRefresh=function(t){e.forceRefresh(t)},this.getValue=function(t){return t||(t=0),e.value[t]},this.getRelative=function(t){return t||(t=0),e.relative[t]},this.setValue=function(t,n){n||(n=0),e.setValue(t,n)},this.setDisable=function(t){e.setDisable(t)}}var t=angular.module("RangeSlider",[]);t.directive("rangeSlider",["$log","$document","$timeout",function(t,n,a){function i(t,i,s,o){t.initWidget=function(e){e.byStep&&(t.byStep=parseInt(e.byStep)),e.notMore&&(t.notMore=parseInt(e.notMore)),e.notLess&&(t.notLess=parseInt(e.notLess)),e.id&&(t.sliderid=e.id),void 0!==e.value&&(t.value=e.value,t.forceRefresh(50))},t.forceRefresh=function(e){var n=t.value;t.value=[void 0,void 0],a(function(){t.setValue(n[0],0),t.dual&&t.setValue(n[1],1)},e)},t.updateClass=function(e,t){t?i.addClass(e):i.removeClass(e)},t.setDisable=function(e){e?(i.addClass("disable"),t.handles[0].css("visibility","hidden"),t.dual&&t.handles[1].css("visibility","hidden")):(i.removeClass("disable"),t.handles[0].css("visibility","visible"),t.dual&&t.handles[1].css("visibility","visible"))},t.normalize=function(e){var n,a=t.notMore-t.notLess,i=e*a;if(t.byStep>0){var s=(i-i%t.byStep)/t.byStep,o=i%t.byStep,l=o>=.5*t.byStep?t.byStep:0;return n=s*t.byStep+l+t.notLess}if(t.byStep<0){var r=Math.pow(10,-1*t.byStep);return n=t.notLess+parseInt(i*r)/r}return i},t.getValue=function(e,n){t.vertical?t.relative[n]=(e-t.bounds.handles[n].getBoundingClientRect().height)/(t.bounds.bar.getBoundingClientRect().height-t.bounds.handles[n].getBoundingClientRect().height):t.relative[n]=e/(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width);var a=t.normalize(t.relative[n]);a!==t.value[n]&&(a<t.startValue&&(a=t.startValue),a>t.stopValue&&(a=t.stopValue),t.formatter?t.viewValue=t.formatter(a,t.ctrlhandle):t.viewValue=a,t.displays[n]&&t.displays[n].html(t.viewValue),t.value[n]=a,o&&o.$setViewValue(t.viewValue),t.$apply(),a>t.startValue&&a<t.stopValue&&t.translate(e,n))},t.setStart=function(e){var n;e>t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("width",n+"px")),t.startValue=e},t.setStop=function(e){var n;e<t.value[0]&&(t.dual?t.setValue(e,1):t.setValue(e,0)),t.vertical?(n=t.bounds.bar.getBoundingClientRect().height*(e-t.notLess)/(t.notMore-t.notLess),t.start.css("height",n+"px")):(n=t.bounds.bar.getBoundingClientRect().width*(e-t.notLess)/(t.notMore-t.notLess),t.stop.css({right:0,width:t.bounds.bar.getBoundingClientRect().width-n+"px"})),t.stopValue=e},t.translate=function(e,n){var a;if(t.vertical){var i=t.bounds.bar.getBoundingClientRect().height-e;if(t.handles[n].css({"-webkit-transform":"translateY("+i+"px)","-moz-transform":"translateY("+i+"px)","-ms-transform":"translateY("+i+"px)","-o-transform":"translateY("+i+"px)",transform:"translateY("+i+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var s=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().height;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().height,t.slider.css({bottom:a+"px",height:s+"px"})}}else t.slider.css("height",e+"px")}else if(t.handles[n].css({"-webkit-transform":"translateX("+e+"px)","-moz-transform":"translateX("+e+"px)","-ms-transform":"translateX("+e+"px)","-o-transform":"translateX("+e+"px)",transform:"translateX("+e+"px)"}),t.dual){if(t.relative[1]&&t.relative[0]){var o=(t.relative[1]-t.relative[0])*t.bounds.bar.getBoundingClientRect().width;a=t.relative[0]*t.bounds.bar.getBoundingClientRect().width,t.slider.css({left:a+"px",width:o+"px"})}}else t.slider.css("width",e+"px")},t.setValue=function(e,n){var a;e!==t.value[n]&&(void 0===e&&(e=0),e>t.notMore&&(e=t.notMore),e<t.notLess&&(e=t.notLess),t.vertical?(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),0===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height+t.bounds.handles[n].getBoundingClientRect().height/2),1===n&&(a=t.relative[n]*t.bounds.bar.getBoundingClientRect().height)):(t.relative[n]=(e-t.notLess)/(t.notMore-t.notLess),a=t.relative[n]*(t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[n].getBoundingClientRect().width)),t.translate(a,n),t.value[n]=e,t.formatter?t.viewValue=t.formatter(e,void 0):t.viewValue=e,o&&o.$setViewValue(t.viewValue),t.displays[n]&&t.displays[n].html(t.viewValue))},t.keydown=function(e){switch(e.keyCode){case 39:case 38:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]+t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]+1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 37:case 40:t.byStep>0&&t.$apply(t.setValue(t.value[t.actif]-t.byStep,t.actif)),t.byStep<0&&t.$apply(t.setValue(t.value[t.actif]-1/Math.pow(10,-1*t.byStep),t.actif)),t.callback&&t.callback(t.value[t.actif],t.ctrlhandle);break;case 27:t.handles[t.actif][0].blur()}},t.moveHandle=function(e,n,a){var i;t.vertical?(i=t.bounds.bar.getBoundingClientRect().bottom-a,i>t.bounds.bar.getBoundingClientRect().height&&(i=t.bounds.bar.getBoundingClientRect().height),i<t.bounds.handles[e].getBoundingClientRect().height&&(i=t.bounds.handles[e].getBoundingClientRect().height)):(i=n-t.bounds.bar.getBoundingClientRect().left,0>i&&(i=0),n+t.bounds.handles[e].getBoundingClientRect().width>t.bounds.bar.getBoundingClientRect().right&&(i=t.bounds.bar.getBoundingClientRect().width-t.bounds.handles[e].getBoundingClientRect().width)),t.getValue(i,e),t.dual&&t.value[0]>t.value[1]&&(0===e?t.setValue(t.value[0],1):t.setValue(t.value[1],0))},t.focusCB=function(e){e?n.on("keydown",t.keydown):n.unbind("keydown",t.keydown)},t.touchBarCB=function(e){var n,a=0,i=e.changedTouches,s=t.value[a];if(e.preventDefault(),t.dual){n=t.vertical?(i[0].pageY-t.bounds.bar.getBoundingClientRect().bottom)/t.bounds.bar.getBoundingClientRect().height:(i[0].pageX-t.bounds.bar.getBoundingClientRect().left)/t.bounds.bar.getBoundingClientRect().width;var o=Math.abs(n-t.relative[0]),l=Math.abs(n-t.relative[1]);o>l&&(a=1)}t.moveHandle(a,i[0].pageX,i[0].pageY),t.callback&&s!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)},t.touchHandleCB=function(e,a){function s(e){e.preventDefault();for(var n=e.changedTouches,i=0;i<n.length;i++)t.moveHandle(a,n[i].pageX,n[i].pageY)}function o(e){n.unbind("touchmove",s),n.unbind("touchend",o),i.on("touchstart",t.touchBarCB),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}var l=t.value[a];e.preventDefault(),n.on("touchmove",s),n.on("touchend",o),i.unbind("touchstart",t.touchBarCB)},t.handleCB=function(e,a){function i(e){t.moveHandle(a,e.clientX,e.clientY)}function o(){n.unbind("mousemove",i),n.unbind("mouseup",o),t.callback&&l!==t.value[a]&&t.callback(t.value[a],t.ctrlhandle)}if(!s.automatic){var l=t.value[a];e.preventDefault(),n.on("mousemove",i),n.on("mouseup",o),t.handles[a][0].focus(),t.actif=a}},t.find=function(e,t){var n;n=t?t[0].querySelector(e):i[0].querySelector(e);var a=angular.element(n);return a},t.initialSettings=function(e){var n;t.value=[],t.relative=[],null===t.precision&&(n=(""+t.byStep).match(/\.([\d]*)/),t.precision=n&&n[1]?n[1].length:0),i.on("touchstart",t.touchBarCB),t.handles[0].on("touchstart",function(e){t.touchHandleCB(e,0)}),t.dual&&(t.handles[1].addClass("range-slider-handle"),t.handles[1].on("touchstart",function(e){t.touchHandleCB(e,1)}),t.initvalues||t.setValue(e[1],1)),t.initvalues?t.initWidget(t.initvalues):t.setValue(e[0],0)},t.init=function(){if(t.sliderid=s.id||"slider-"+parseInt(1e3*Math.random()),t.startValue=-(1/0),t.stopValue=1/0,t.byStep=parseInt(s.byStep)||1,t.vertical=s.vertical||!1,t.dual=s.dualHandles||!1,t.trigger_input_change=!1,t.notMore=parseInt(s.notMore)||100,t.notLess=parseInt(s.notLess)||0,t.vertical&&i.addClass("vertical-range"),t.handles=[t.find(".handle-min"),t.find(".handle-max")],t.bar=i,t.slider=t.find(".range-slider-active-segment"),t.start=t.find(".ibz-range-slider-start"),t.stop=t.find(".ibz-range-slider-stop"),t.disable=s.disable||!1,t.ctrlhandle=new e(t),t.bounds={bar:i[0],handles:[t.handles[0][0],t.handles[1][0]]},"true"===s.disable&&t.setDisable(!0),s.displayTarget)switch(s.displayTarget){case!0:case"handle":t.displays=t.handles,t.handles[0].addClass("ibz-range-slider-display"),t.dual&&t.handles[1].addClass("ibz-range-slider-display");break;default:t.displays=[n.getElementById(s.displayTarget)]}else t.displays=[];if(s.initial){var a=s.initial.split(",");t.initial=[void 0!==a[0]?parseInt(a[0]):t.notLess,void 0!==a[1]?parseInt(a[1]):t.notMore]}else t.initial=[t.ngModel,t.ngModel];t.$watch("startAt",function(){t.value<t.startAt,t.startAt&&t.setStart(t.startAt)}),t.$watch("stopAt",function(){t.value>t.stopAt,t.stopAt&&t.setStop(t.stopAt)}),t.initialSettings(t.initial)},t.init(),t.$watch("inithook",function(){t.inithook&&t.inithook(t.ctrlhandle)}),t.$watch("initvalues",function(){t.initvalues&&t.initWidget(t.initvalues)}),t.$watch("ngModel",function(e){t.setValue(e,0)})}var s='<div class="ibz-range-slider range-slider" title="{{title}}"data-slider><span class="range-slider-handle handle-min" ng-mousedown="handleCB($event,0)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="handle-max" ng-mousedown="handleCB($event,1)" ng-focus="focusCB(true)" ng-blur="focusCB(false)" role="slider" tabindex="0"></span><span class="range-slider-active-segment"></span><span class="ibz-range-slider-start" ></span> <span class="ibz-range-slider-stop"></span> <input id={{sliderid}} type="hidden"></div>';return{restrict:"E",scope:{startAt:"=",stopAt:"=",callback:"=",formatter:"=",inithook:"=",cbhandle:"=",initvalues:"=",ngModel:"="},require:"?ngModel",template:s,replace:!0,link:i}}])}(),function(){"use strict";var e='<div class="afb-monitor" ng-click="getping()"><span class="afb-refresh-token" >afb://{{hostname}}:{{httpdport}}</span><i class="{{icon}}"></i></div>';angular.module("TokenRefresh",["AppConfig","ModalNotification"]).directive("tokenRefresh",["$log","$window","$timeout","$location","Notification","AppConfig","AppCall",function(t,n,a,i,s,o,l){function r(e,r,u){e.logged=void 0,n.onbeforeunload=function(){l.get(e.plugin,"logout",{},function(){t.log("OPA exit")})},e.online=function(){r.addClass("online"),r.removeClass("offline"),e.logged=!0},e.offline=function(){r.addClass("offline"),r.removeClass("online"),e.logged=!1},e.onerror=function(){e.logged!==!1&&(s.warning({message:"AppFramework Binder Lost",delay:5e3}),e.offline()),e.status=0},e.onsuccess=function(t,n){return 200!==n||"success"!==t.request.status?(s.warning({message:"auto-connect :"+t.request.info,delay:1e4}),e.offline(),!1):(e.logged!==!0&&(s.success({message:"AppFramework Binder Connected",delay:3e3}),e.online(),e.callback&&e.callback(t)),e.status=1,!0)},e.getping=function(){l.get(e.plugin,"ping",{},function(t,n){return 200!==n||"success"!==t.request.status?(s.warning({message:t.request.info,delay:5e3}),void e.offline()):void a(e.getping,1e3*o.session.pingrate)},e.onerror)},e.refresh=function(){l.get(e.plugin,"refresh",{},function(t,n){e.onsuccess(t,n),a(e.refresh,250*o.session.timeout)},e.onerror)},e.loggin=function(){l.get(e.plugin,"connect",{token:o.session.initial},function(t,n){e.onsuccess(t,n)&&(a(e.getping,1e3*o.session.pingrate),a(e.refresh,250*o.session.timeout))},e.onerror)},e.plugin=u.plugin||"auth",e.icon=u.icon||"fi-lightbulb",e.hostname=i.host(),e.httpdport=i.port(),e.autolog=JSON.parse(u.autolog||!1),e.autolog&&e.loggin()}return{template:e,scope:{callback:"="},restrict:"E",link:r}}])}(),function(){"use strict";var e='<div class="tip-modal-popup"><i class="{{icon}}"></i><span>{{tip}}</span></span></div>';angular.module("ModalNotification",[]).directive("tipModal",["$timeout",function(t){function n(e,n,a){function i(){function n(){e.show&&e.modal.css({opacity:1,visibility:"visible"})}e.show=!0,e.timeout=t(n,e.delay)}function s(){e.show=!1,e.modal.css({opacity:0,visibility:"hidden"})}e.parent=n.parent(),e.modal=n.find("div"),e.icon=a.icon||"fi-lightbulb",e.parent.addClass("as-modal-tip"),e.parent.bind("click",s),e.parent.bind("focus",i),e.parent.bind("mouseover",i),e.parent.bind("mouseleave",s),e.parent.bind("blur",s),e.delay=a.delay||1e3}return{restrict:"E",template:e,link:n,scope:{tip:"="}}}])}(),function(){"use strict";var e='<span title="Goto: {{href}}" ng-click="clicked()"><i class="{{icon}}"></i><span>{{label}}</span></span>';angular.module("LinkButton",[]).directive("linkButton",["$location",function(t){function n(e,n,a){e.clicked=function(){a.query?t.path(a.href).search(a.query):t.path(a.href)},e.icon=a.icon||"fi-link",e.label=a.label||"Jump",e.href=a.href||"/home",n.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:n,scope:{}}}])}(),function(){"use strict";function e(e,t,n,a,i){var s=new XMLHttpRequest,o=new FormData,l=function(e){i(e)};s.upload.onprogress=function(t){var n=Math.round(t.lengthComputable?100*t.loaded/t.total:0);e.slider&&e.slider.setValue(n)},s.onload=function(){t.addClass("success"),t.removeClass("error");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onerror=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)},s.onabort=function(){t.addClass("error"),t.removeClass("success");var n={status:s.status,headers:s.getAllResponseHeaders()};e.callback(n)};for(var r=0;r<a.length;r++){var u=a[r];if(u.type.match(e.mimetype)){if(u.size>1024*e.maxsize)return e.thumbnail=e.istoobig,void e.$apply("thumbnail");if(isNaN(u.size))return e.thumbnail=e.isnotvalid,void e.$apply("thumbnail");if(e.Basename=u.name.split("/").reverse()[0],e.imgElem[0].file=u,i){var c=new FileReader;c.readAsArrayBuffer(u),c.onload=l}o.append(e.name,u,u.name)}}s.open("POST",n,!0),s.send(o)}var t='<input type="file" name="{{name}}-input" onchange="angular.element(this).scope().UpLoadFile(this.files)" accept="{{mimetype}}" style="display:none"><div class="upload-file" ng-click="imgClicked()"><img id="{{name}}-img" src="{{thumbnail}}"><range-slider ng-show="!noslider" id="{{name}}-slider" automatic=true inithook="SliderInitCB"></range-slider></div>';angular.module("UploadFiles",["AppConfig","ModalNotification","RangeSlider"]).directive("uploadImage",["AppConfig","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){return t.imgElem[0].src=window.URL.createObjectURL(new Blob([e.target.result],{type:"image"})),!0},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"file",t.category=i.category||"image",t.mimetype=(i.accept||"image")+"/*",t.maxsize=i.maxsize||100,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"tux-bzh.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAudio",["AppConfig","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=i.posturl+"?token="+n.session.token;new e(t,a,o,s,!1)},t.name=i.name||"audio",t.category=i.category||"audio",t.mimetype=(i.accept||"audio")+"/*",t.maxsize=i.maxsize||1e4,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-music.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}]).directive("uploadAppli",["AppConfig","JQemu","Notification",function(n,a,i){function s(t,a,i){if(t.imgElem=a.find("img"),t.inputElem=a.find("input"),t.imgClicked=function(){t.inputElem[0].click()},t.SliderInitCB=function(e){t.slider=e},t.UpLoadFile=function(s){var o=function(e){var a=new JSZip(e.target.result),i=a.file("afa-pkg/thumbnail.jpg");return i?(t.imgElem[0].src=window.URL.createObjectURL(new Blob([i.asArrayBuffer()],{type:"image"})),!0):(t.thumbnail=n.paths[t.category]+"isnotvalid.png",t.$apply("thumbnail"),!1)},l=i.posturl+"?token="+n.session.token;new e(t,a,l,s,o)},t.name=i.name||"appli",t.category=i.category||"appli",t.mimetype=i.accept||".zip",t.maxsize=i.maxsize||1e5,t.regexp=new RegExp(i.accept+".*","i"),i.thumbnail?t.thumbnail=n.paths[t.category]+i.thumbnail:t.thumbnail=n.paths[t.category]+"upload-appli.png",i.thumbnail?t.isnotvalid=n.paths[t.category]+i.isnotvalid:t.isnotvalid=n.paths[t.category]+"isnotvalid.png",i.istoobig?t.istoobig=n.paths[t.category]+i.istoobig:t.istoobig=n.paths[t.category]+"istoobig.png",t.noslider=i.noslider||!1,!i.posturl)throw new TypeError("file-upload %s posturl=/api/xxxx/xxxx required",t.attrs)}return{restrict:"E",template:t,link:s,scope:{callback:"="}}}])}(),function(){"use strict";var e='<div ng-click="clicked()"><i class="{{icon}}"></i><span>{{label}}</span></div>';angular.module("SubmitButton",[]).directive("submitButton",function(){function t(e,t,n){e.icon=n.icon||"fi-foot",e.label=n.label||"Next",t.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:t,scope:{clicked:"="}}})}(),function(){"use strict";var e='<div ng-click="clicked()"><img ng-src="{{icon}}"><span>{{label}}</span></div>',t='<b class="close-button" ng-click="close()">×</b><img ng-src="{{icon}}"><span class="modal-text">Application <b>{{label}}</b></span><ul class="vertical icon-left primary menu-bar appli-menu-start"><li class=start-{{runstatus}}><a ng-click=action("start")><i class="fi-check"> Start</i></a></li><li class=stop-{{runstatus}}><a ng-click=action("stop")><i class="fi-x"> Stop</i></a></li><li><a ng-click=action("info")><i class="fi-info"> Info</i></a></li><li class=start-{{runstatus}}><a ng-click=action("uninstall")><i class="fi-x"> Uninstall</i></a></li></ul>',n='<b class="close-button" ng-click="close()">×</b><img ng-src="{{icon}}"><span class="modal-text">Application <b>{{label}}</b></span><ul class="vertical icon-left appli-menu-info"><li><i class="fi-paperclip"> Name : {{detail.name}} </i></li><li><i class="fi-info"> Description {{detail.description}}</i></li><li><i class="fi-torso"> Author : {{detail.author}}</i></li></ul>';angular.module("AppliButton",[]).directive("appliButton",["AppConfig","AppCall","ModalFactory","Notification","$timeout","$window","$location","urlquery",function(a,i,s,o,l,r,u,c){function d(e,d,p){e.runstatus="stop",e.runmode=c.runmode||"auto",e.clicked=function(){var a=function(t,n){o.error({message:"Fail /api/afm-main"+t+"="+e.label+" RunID="+e.appID,delay:5e3}),d.addClass("fail"),d.removeClass("success"),e.callback(e.appID,t,n)},c=function(t,n){d.removeClass("fail"),e.runID=n.data.response.runid,e.callback(e.appID,t,n)},p=function(){e.modApp.deactivate(),l(function(){e.modApp.destroy()},1e3)},g=function(){e.modInfo.deactivate(),l(function(){e.modInfo.destroy()},1e3)},f=function(t){switch(t){case"start":if("stop"!==e.runstatus)return;i.get("afm-main","start",{id:e.appID,mode:e.runmode},function(n){return 200!==n.status||"afb-reply"!==n.data.jtype?void a("start",n):(e.runstatus="start",c(t,n),void(n.data.response.uri&&(e.winapp=r.open(n.data.response.uri.replace("%h",u.host())))))});break;case"stop":if("start"!==e.runstatus)return;i.get("afm-main","terminate",{runid:e.runID},function(n){return 200!==n.status||"afb-reply"!==n.data.jtype?void a("stop",n):(e.runstatus="stop",e.winapp&&(e.winapp.close(),e.winapp=!1),void c(t,n))});break;case"info":i.get("afm-main","detail",{id:e.appID},function(t){if(200!==t.status||"afb-reply"!==t.data.jtype)return void a("detail",t);var i={animationIn:"slideInFromTop",contentScope:{close:g,icon:e.icon,label:e.appID,detail:t.data.response},template:n};e.modInfo=new s(i),e.modInfo.activate()});break;case"uninstall":if("stop"!==e.runstatus)return;i.get("afm-main","uninstall",{id:e.appID},function(e){return 200!==e.status||"afb-reply"!==e.data.jtype?void a("uninstall",e):void c(t,e)})}p()},m={animationIn:"slideInFromTop",contentScope:{action:f,runstatus:e.runstatus,close:p,icon:e.icon,label:e.label},template:t};e.modApp=new s(m),e.modApp.activate()},p.handle&&e.store[p.handle].name?(e.icon=a.paths.icons+p.handle,e.label=e.store[p.handle].name,e.appID=p.handle):(e.icon=a.paths.icons+"w3c-ico.png",e.label=p.handle),d.addClass(e.label.toLowerCase())}return{restrict:"E",template:e,link:d,scope:{callback:"=",store:"="}}}])}(),function(){"use strict";angular.module("SamplePostModule",["SubmitButton","UploadFiles"]).controller("SamplePostController",["$http",function(e){var t=this;t.FileUploaded=function(e){}}])}(),function(){"use strict";angular.module("SampleHomeModule",["SamplePostModule","SubmitButton","TokenRefresh","ModalNotification"]).controller("SampleHomeController",["AppCall","Notification",function(e,t){var n=this;n.uuid="none",n.token="none",n.session="none",n.status="err-no",n.OnResponse=function(e,a){n.status=e.request.status,n.errcode=a,n.request=e.request,n.response=e.response;var i=e.request.reqid.toUpperCase();switch(i){case"CONNECT":if("success"!==e.request.status)return t.error({message:i+": Logout before reconnecting",delay:5e3}),void(n["class"][e.request.reqid]="fail");n["class"]={};break;case"LOGOUT":if("success"!==e.request.status)return t.error({message:i+": Do connect first",delay:5e3}),void(n["class"][e.request.reqid]="fail");n["class"]={};break;case"REFRESH":case"CHECK":if("success"!==e.request.status)return t.error({message:i+": Need to be Connected to check/refresh session",delay:5e3}),void(n["class"][e.request.reqid]="fail");break;default:return void t.error({message:"Invalid RequestID:"+e.request.reqid,delay:5e3})}n["class"][e.request.reqid]="success"},n.ProcessError=function(e,a,i){t.error({message:"Invalid API:"+e.request.reqid,delay:5e3}),n.status="err-fx",n.errcode=a,n.request=e.request,n.response=""},n.ConnectClient=function(){e.get("auth","connect",{},n.OnResponse,n.InvalidApiCall)},n.CheckSession=function(){e.get("auth","check",{},n.OnResponse,n.InvalidApiCall)},n.RefreshSession=function(){e.get("auth","refresh",{},n.OnResponse,n.InvalidApiCall)},n.LogoutClient=function(){e.get("auth","logout",{},n.OnResponse,n.InvalidApiCall)},n.Initialised=function(){n["class"]={connect:"success"}}}])}(),function(){"use strict";angular.module("JQueryEmu",[]).factory("JQemu",function(){var e=function(e,t){for(var n=e,a=t.toUpperCase();n[0];){if(a===n[0].tagName)return n;n=n.parent()}},t=function(e,t,n){for(var a=n.toLowerCase(),i=t.toLowerCase()+"Name",s=e.children();s[0];){if(a===s[0][i])return s;s=s.next()}},n=function(e,t){for(var n=t.toLowerCase(),a=e.children();a[0];){if(a.hasClass(n))return a;a=a.next()}},a={FindInParent:e,FindByTag:t,FindByClass:n};return a})}();var foundationRoutes=[{name:"PostSample",url:"/sample-post",controller:"SamplePostController as ctrl",animationIn:"slideInRight",path:"pages/SamplePost/SamplePost.html"},{name:"SampleHome",url:"/sample-home",controller:"SampleHomeController as ctrl",animationIn:"slideInRight",path:"pages/SampleHome/SampleHome.html"}];!function(){"use strict";angular.module("AppConfig",[]).factory("AppConfig",["urlquery",function(e){var t={paths:{image:"images/",avatar:"images/avatars/"},session:{initial:e.token||"123456789",timeout:3600,pingrate:30,uuid:"",token:""}};return t}]).factory("AppCall",["$http","AppConfig","$log",function(e,t,n){var a={get:function(n,a,i,s,o){var l=function(e){o?o(e.data,e.status,e.config):s(e.data,e.status,e.config)},r=function(e){if(!e.data||!e.data.request)return void l(e);var n=e.data.request;n.token&&(t.session.token=n.token),n.uuid&&(t.session.uuid=n.uuid),n.timeout&&(t.session.timeout=n.timeout),s(e.data,e.status,e.config)};i.token||(i.token=t.session.token),i.reqid||(i.reqid=a);e.get("/api/"+n+"/"+a,{params:i}).then(r,l)}};return a}])}(),function(){"use strict";function e(){var e={};return location.search.substr(1).split("&").forEach(function(t){var n=t.split("=")[0],a=decodeURIComponent(t.split("=")[1]);n in e?e[n].push(a):e[n]=[a]}),e}function t(e,t,n){e.otherwise("/sample-home"),t.html5Mode(!0).hashPrefix("!")}function n(){FastClick.attach(document.body)}angular.module("AFBclient",["ui.router","ngAnimate","foundation","foundation.dynamicRouting","foundation.dynamicRouting.animations","ui-notification","AppConfig","JQueryEmu","SampleHomeModule","UploadFiles","LinkButton","TokenRefresh","RangeSlider","ModalNotification"]).value("urlquery",e()).config(t).run(n),t.$inject=["$urlRouterProvider","$locationProvider"]}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/SamplePost/SamplePost.html",'<h1><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> Post File Upload</h1><div class="sample-box box-content"><upload-image category="avatar" thumbnail="tux-visitor.png" maxsize="100" posturl="/api/post/upload-image" callback="ctrl.FileUploaded" accept="image" title="Change your Avatar"></upload-image></div><link-button href="home" icon="fi-home" label="home"></link-button>')}])}(),function(){angular.module("AFBclient").run(["$templateCache",function(e){e.put("pages/SampleHome/SampleHome.html",'<h3><img class="logo" src="images/logo/triskel_iot_bzhx250.png" alt="IoT.bzh Logo" style="height:150px"> App Framework Binder Simple Client</h3><token-refresh autolog="true" callback="ctrl.Initialised"></token-refresh><div class="button-box box-content"><submit-button class="session-button {{ctrl.class.connect}}" icon="fi-unlock" label="Connect" clicked="ctrl.ConnectClient"></submit-button><submit-button class="session-button {{ctrl.class.check}}" icon="fi-checkbox" label="Check" clicked="ctrl.CheckSession"></submit-button><submit-button class="session-button {{ctrl.class.refresh}}" icon="fi-arrows-compress" label="Refresh" clicked="ctrl.RefreshSession"></submit-button><submit-button class="session-button {{ctrl.class.logout}}" icon="fi-lock" label="Logout" clicked="ctrl.LogoutClient"></submit-button></div><div class="message-box box-content vertical grid-frame"><div class="response"><span class="grid-content noscroll req {{ctrl.status}}">req= {{ctrl.request}}</span> <span class="grid-content noscroll res {{ctrl.status}}">res= {{ctrl.response}}</span> <span class="grid-content noscroll status {{ctrl.status}}">status= {{ctrl.errcode}}</span></div></div><link-button href="sample-post" icon="fi-home" label="SamplePost"></link-button>')}])}();
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMvUmFuZ2VTbGlkZXJzL1JhbmdlU2xpZGVyTW9kLmpzIiwid2lkZ2V0cy9Ob3RpZmljYXRpb25zL1Rva2VuUmVmcmVzaFN2Yy5qcyIsIndpZGdldHMvTm90aWZpY2F0aW9ucy9Nb2RhbE5vdGlmaWNhdGlvbi5qcyIsIndpZGdldHMvTmF2aWdhdGlvbi9MaW5rQnV0dG9uLmpzIiwid2lkZ2V0cy9Gb3JtSW5wdXQvVXBsb2FkRmlsZXMuanMiLCJ3aWRnZXRzL0FjdGlvbkJ1dHRvbnMvU3VibWl0QnV0dG9uLmpzIiwid2lkZ2V0cy9BY3Rpb25CdXR0b25zL0FwcGxpQnV0dG9uLmpzIiwicGFnZXMvU2FtcGxlUG9zdC9TYW1wbGVQb3N0LmpzIiwicGFnZXMvU2FtcGxlSG9tZS9TYW1wbGVIb21lLmpzIiwic2VydmljZXMvSlF1ZXJ5RW11LmpzIiwiZXRjL3JvdXRlcy5qcyIsImV0Yy9BcHBDb25maWcuanMiLCJhcHAuanMiXSwibmFtZXMiOlsiUmFuZ2VTbGlkZXJIYW5kbGUiLCJzY29wZSIsImludGVybmFscyIsImV4dGVybmFscyIsInRoaXMiLCJnZXRJZCIsInNsaWRlcmlkIiwiZ2V0Q2JIYW5kbGUiLCJjYmhhbmRsZSIsImdldFZpZXciLCJoYW5kbGUiLCJ2YWx1ZSIsImZvcm1hdHRlciIsImN0cmxoYW5kbGUiLCJ1cGRhdGVDbGFzcyIsImNsYXNzZSIsInN0YXR1cyIsImZvcmNlUmVmcmVzaCIsInRpbWVyIiwiZ2V0VmFsdWUiLCJnZXRSZWxhdGl2ZSIsInJlbGF0aXZlIiwic2V0VmFsdWUiLCJzZXREaXNhYmxlIiwiZmxhZyIsIlJhbmdlU2xpZGVyIiwiYW5ndWxhciIsIm1vZHVsZSIsImRpcmVjdGl2ZSIsIiRsb2ciLCIkZG9jdW1lbnQiLCIkdGltZW91dCIsImxpbmsiLCJlbGVtZW50IiwiYXR0cnMiLCJtb2RlbCIsImluaXRXaWRnZXQiLCJpbml0dmFsdWVzIiwiYnlTdGVwIiwicGFyc2VJbnQiLCJub3RNb3JlIiwibm90TGVzcyIsImlkIiwidW5kZWZpbmVkIiwiZHVhbCIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJkaXNhYmxlZCIsImhhbmRsZXMiLCJjc3MiLCJub3JtYWxpemUiLCJyZXN1bHQiLCJyYW5nZSIsInBvaW50IiwibW9kIiwicmVtIiwicm91bmQiLCJwb3dlciIsIk1hdGgiLCJwb3ciLCJvZmZzZXQiLCJ2ZXJ0aWNhbCIsImJvdW5kcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImhlaWdodCIsImJhciIsIndpZHRoIiwibmV3dmFsdWUiLCJzdGFydFZhbHVlIiwic3RvcFZhbHVlIiwidmlld1ZhbHVlIiwiZGlzcGxheXMiLCJodG1sIiwiJHNldFZpZXdWYWx1ZSIsIiRhcHBseSIsInRyYW5zbGF0ZSIsInNldFN0YXJ0Iiwic3RhcnQiLCJzZXRTdG9wIiwic3RvcCIsInJpZ2h0Iiwidm9mZnNldCIsIi13ZWJraXQtdHJhbnNmb3JtIiwiLW1vei10cmFuc2Zvcm0iLCItbXMtdHJhbnNmb3JtIiwiLW8tdHJhbnNmb3JtIiwidHJhbnNmb3JtIiwic2xpZGVyIiwiYm90dG9tIiwibGVmdCIsImtleWRvd24iLCJlIiwia2V5Q29kZSIsImFjdGlmIiwiY2FsbGJhY2siLCJibHVyIiwibW92ZUhhbmRsZSIsImNsaWVudFgiLCJjbGllbnRZIiwiZm9jdXNDQiIsImluc2lkZSIsIm9uIiwidW5iaW5kIiwidG91Y2hCYXJDQiIsImV2ZW50IiwidG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwib2xkdmFsdWUiLCJwcmV2ZW50RGVmYXVsdCIsInBhZ2VZIiwicGFnZVgiLCJkaXN0YW5jZTAiLCJhYnMiLCJkaXN0YW5jZTEiLCJ0b3VjaEhhbmRsZUNCIiwidG91Y2hldnQiLCJ0b3VjaG1vdmUiLCJpZHgiLCJsZW5ndGgiLCJ0b3VjaGVuZCIsImhhbmRsZUNCIiwiY2xpY2tldmVudCIsIm1vdXNlbW92ZSIsIm1vdXNldXAiLCJhdXRvbWF0aWMiLCJmb2N1cyIsImZpbmQiLCJzZWxlY3QiLCJlbGVtIiwiZG9tZWxlbSIsInF1ZXJ5U2VsZWN0b3IiLCJhbmdlbGVtIiwiaW5pdGlhbFNldHRpbmdzIiwiaW5pdGlhbCIsImRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdCIsInByZWNpc2lvbiIsIm1hdGNoIiwiZXZ0IiwiaW5pdCIsInJhbmRvbSIsIkluZmluaXR5IiwiZHVhbEhhbmRsZXMiLCJ0cmlnZ2VyX2lucHV0X2NoYW5nZSIsImRpc2FibGUiLCJkaXNwbGF5VGFyZ2V0IiwiZ2V0RWxlbWVudEJ5SWQiLCJzcGxpdCIsIm5nTW9kZWwiLCIkd2F0Y2giLCJzdGFydEF0Iiwic3RvcEF0IiwiaW5pdGhvb2siLCJuZXdWYWx1ZSIsInRlbXBsYXRlIiwicmVzdHJpY3QiLCJyZXF1aXJlIiwicmVwbGFjZSIsIiR3aW5kb3ciLCIkbG9jYXRpb24iLCJOb3RpZmljYXRpb24iLCJBcHBDb25maWciLCJBcHBDYWxsIiwibXltZXRob2RzIiwibG9nZ2VkIiwib25iZWZvcmV1bmxvYWQiLCJnZXQiLCJwbHVnaW4iLCJsb2ciLCJvbmxpbmUiLCJvZmZsaW5lIiwib25lcnJvciIsIndhcm5pbmciLCJtZXNzYWdlIiwiZGVsYXkiLCJvbnN1Y2Nlc3MiLCJqcmVzcCIsImVycmNvZGUiLCJyZXF1ZXN0IiwiaW5mbyIsInN1Y2Nlc3MiLCJnZXRwaW5nIiwic2Vzc2lvbiIsInBpbmdyYXRlIiwicmVmcmVzaCIsInRpbWVvdXQiLCJsb2dnaW4iLCJ0b2tlbiIsImljb24iLCJob3N0bmFtZSIsImhvc3QiLCJodHRwZHBvcnQiLCJwb3J0IiwiYXV0b2xvZyIsIkpTT04iLCJwYXJzZSIsInRtcGwiLCJkaXNwbGF5IiwiYWN0aW9uIiwic2hvdyIsIm1vZGFsIiwib3BhY2l0eSIsInZpc2liaWxpdHkiLCJjbG9zZSIsInBhcmVudCIsImJpbmQiLCJ0aXAiLCJjbGlja2VkIiwicXVlcnkiLCJwYXRoIiwiaHJlZiIsInNlYXJjaCIsImxhYmVsIiwidG9Mb3dlckNhc2UiLCJMb2FkRmlsZVN2YyIsInBvc3R1cmwiLCJmaWxlcyIsInRodW1ibmFpbENCIiwieG1sUmVxIiwiWE1MSHR0cFJlcXVlc3QiLCJ4Zm9ybSIsIkZvcm1EYXRhIiwiT25Mb2FkQ0IiLCJ0YXJnZXQiLCJ1cGxvYWQiLCJvbnByb2dyZXNzIiwicHJvZ3Jlc3MiLCJsZW5ndGhDb21wdXRhYmxlIiwibG9hZGVkIiwidG90YWwiLCJvbmxvYWQiLCJyZXNwb25zZSIsImhlYWRlcnMiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJvbmFib3J0IiwiaSIsImZpbGUiLCJ0eXBlIiwibWltZXR5cGUiLCJzaXplIiwibWF4c2l6ZSIsInRodW1ibmFpbCIsImlzdG9vYmlnIiwiaXNOYU4iLCJpc25vdHZhbGlkIiwiQmFzZW5hbWUiLCJuYW1lIiwicmV2ZXJzZSIsImltZ0VsZW0iLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJhcHBlbmQiLCJvcGVuIiwic2VuZCIsIkpRZW11IiwiaW5wdXRFbGVtIiwiaW1nQ2xpY2tlZCIsImNsaWNrIiwiU2xpZGVySW5pdENCIiwiVXBMb2FkRmlsZSIsInJlYWRlckNCIiwic3JjIiwid2luZG93IiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiQmxvYiIsImNhdGVnb3J5IiwiYWNjZXB0IiwicmVnZXhwIiwiUmVnRXhwIiwicGF0aHMiLCJub3NsaWRlciIsIlR5cGVFcnJvciIsInppcGFwcCIsIkpTWmlwIiwiYXNBcnJheUJ1ZmZlciIsInRtcGxBcHBsaSIsInRtcGxNb2RhbCIsInRtcGxEZXRhaWwiLCJNb2RhbEZhY3RvcnkiLCJ1cmxxdWVyeSIsInJ1bnN0YXR1cyIsInJ1bm1vZGUiLCJub3RpZnlFcnJvciIsImVycm9yIiwiYXBwSUQiLCJub3RpZnlTdWNjZXNzIiwicnVuSUQiLCJkYXRhIiwicnVuaWQiLCJjbG9zZU1vZEFwcCIsIm1vZEFwcCIsImRlYWN0aXZhdGUiLCJkZXN0cm95IiwiY2xvc2VNb2RJbmZvIiwibW9kSW5mbyIsImFjdGlvbk1vZGFsIiwibW9kZSIsImp0eXBlIiwidXJpIiwid2luYXBwIiwiY29uZmlnIiwiYW5pbWF0aW9uSW4iLCJjb250ZW50U2NvcGUiLCJkZXRhaWwiLCJhY3RpdmF0ZSIsInN0b3JlIiwiaWNvbnMiLCJjb250cm9sbGVyIiwiJGh0dHAiLCJGaWxlVXBsb2FkZWQiLCJ1dWlkIiwiT25SZXNwb25zZSIsInJlcWlkIiwidG9VcHBlckNhc2UiLCJQcm9jZXNzRXJyb3IiLCJDb25uZWN0Q2xpZW50IiwiSW52YWxpZEFwaUNhbGwiLCJDaGVja1Nlc3Npb24iLCJSZWZyZXNoU2Vzc2lvbiIsIkxvZ291dENsaWVudCIsIkluaXRpYWxpc2VkIiwiY29ubmVjdCIsImZhY3RvcnkiLCJGaW5kSW5QYXJlbnQiLCJzZWxlY3RvciIsInRhZ05hbWUiLCJGaW5kQnlUYWciLCJ0YWciLCJjaGlsZHJlbiIsIm5leHQiLCJGaW5kQnlDbGFzcyIsImhhc0NsYXNzIiwibXlNZXRob2RzIiwiZm91bmRhdGlvblJvdXRlcyIsInVybCIsIm15Q29uZmlnIiwiaW1hZ2UiLCJhdmF0YXIiLCJteUNhbGxzIiwiY2JyZXNwb25zZSIsImNiZXJyb3IiLCJwYXJhbXMiLCJ0aGVuIiwiUGFyc2VRdWVyeVN0cmluZyIsInFkIiwibG9jYXRpb24iLCJzdWJzdHIiLCJmb3JFYWNoIiwiaXRlbSIsImsiLCJ2IiwiZGVjb2RlVVJJQ29tcG9uZW50IiwicHVzaCIsIiR1cmxQcm92aWRlciIsIiRsb2NhdGlvblByb3ZpZGVyIiwib3RoZXJ3aXNlIiwiaHRtbDVNb2RlIiwiaGFzaFByZWZpeCIsInJ1biIsIkZhc3RDbGljayIsImF0dGFjaCIsImRvY3VtZW50IiwiYm9keSIsIiRpbmplY3QiLCIkdGVtcGxhdGVDYWNoZSIsInB1dCJdLCJtYXBwaW5ncyI6IkNBa0RBLFdBQ0EsWUFJQSxTQUFBQSxHQUFBQyxHQUNBLEdBQUFDLE1BQ0FDLElBRUFDLE1BQUFDLE1BQUEsV0FDQSxNQUFBSixHQUFBSyxVQUdBRixLQUFBRyxZQUFBLFdBQ0EsTUFBQU4sR0FBQU8sVUFHQUosS0FBQUssUUFBQSxTQUFBQyxHQUlBLE1BSEFBLEtBQUFBLEVBQUEsR0FHQVQsRUFBQVUs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Z0JBR0FELEVBQUFFLFdBQUEsR0FBQUMsV0FBQSxLQUlBLFFBQUFDLEtBQ0FDLFVBQUFDLE9BQUFDLFNBQUFDLE1BdENBalYsUUFBQUMsT0FBQSxhQUNBLFlBQ0EsWUFHQSxhQUNBLDRCQUNBLHVDQUdBLGtCQUdBLFlBQ0EsWUFDQSxtQkFDQSxjQUNBLGFBQ0EsZUFDQSxjQUNBLHNCQUVBaEIsTUFBQSxXQUFBNlUsS0FDQTNDLE9BQUFBLEdBQ0EwRCxJQUFBQSxHQUdBMUQsRUFBQStELFNBQUEscUJBQUEsd0JMeENBLFdBQUFsVixRQUFBQyxPQUFBLGFBQUE0VSxLQUFBLGlCQUFBLFNBQUFNLEdBQUFBLEVBQUFDLElBQUEsbUNBQ0Esc2JDREEsV0FBQXBWLFFBQUFDLE9BQUEsYUFBQTRVLEtBQUEsaUJBQUEsU0FBQU0sR0FBQUEsRUFBQUMsSUFBQSxtQ0FDQSIsImZpbGUiOiJBRkJjbGllbnQubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKiBcbiAqIHJlZjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL21vdXNlb3ZlclxuICogXG4gKiB1c2FnZTogXG5Vc2FnZSAgPHJhbmdlLXNsaWRlcj5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgPHJhbmdlLXNsaWRlclxuICAgICAgaWQ9XCJteS1zbGlkZXItbmFtZVwiICAgICAgICAgICAgICAgICAgICAgLy8gb25seSB1c2UgYXMgYW4gYXJndW1lbnQgdG8gY2FsbGJhY2tcbiAgICAgIGNsYXNzPVwibXktY3VzdG9tLWNsYXNzXCIgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY2xhc3MgaXMgaWJ6LXJhbmdlLXNsaWRlclxuICAgICAgcGxhY2Vob2xkZXI9XCJUcmFjayBEYXRlIFNlbGVjdGlvblwiICAgICAgLy8gcGxhY2UgaG9sZGVyIGZvciBkYXRlIHJlYWRvbmx5IGlucHV0IHpvbmVcblxuICAgICAgPCEtLSBGb3VuZGF0aW9uIGNsYXNzZXMgLS0+XG4gICAgICBjbGFzcz1cInJhZGl1c1wiICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBadXJiIGZvdW5kYXRpb24gZG9jIGZvciBmdXJ0aGVyIGluZm8uXG4gICAgICBjbGFzcz1cImliei1oYW5kbGUtZGlzcGxheVwiICAgICAgICAgICAgICAvLyBpbmNyZWFzZSBoYW5kbGUgd2lkdGggdG8gaG9sZCBzbGlkZXIgY3VycmVudCB2YWx1ZVxuXG4gICAgICA8IS0tIEFuZ3VsYXIgU2NvcGUgVmFyaWFibGVzIC0tPlxuICAgICAgY2FsbGJhY2s9XCJteUNhbGxCYWNrXCIgICAgICAgICAgICAgICAgICAgIC8vICRzY29wZS5teUNhbGxCYWNrKHNsaWRlcmhhbmRsZSkgaXMgY2FsbGVkIHdoZW4gZXZlciBzbGlkZXIgaGFuZGxlIGJsdXJcbiAgICAgIGZvcm1hdHRlcj1cIlNsaWRlckZvcm1hdENCXCIgICAgICAgICAgICAgICAvLyAkc2NvcGUubXlGb3JtYXR0ZXIodmFsdWUsIHNsaWRlcmlkKSB3aGVuIGV4aXN0IGlzIGNhbGwgd2hlbiBldmVyIHNsaWRlciBoYW5kbGUgbW92ZXMuIFNob3VsZCByZXR1cm4gZXh0ZXJuYWwgZm9ybSBvZiBzbGlkZXIgdmFsdWUuXG4gICAgICBuZy1tb2RlbD1cInh4eHh4eFwiICAgICAgICAgICAgICAgICAgICAgICAgLy8geHh4IE11c3QgYmUgZGVmaW5lZCwgc2NyaXB0IHdpbGwgc3RvcmUgYSBuZXcgUmFuZ2VyT2JqZWN0IHdpdGhpbiBwcm92aWRlZCBuZy1tb2RlbCB2YXJpYWJsZS5cbiAgICAgIHN0YXJ0LWF0PVwiU2NvcGVWYXJcIiAgICAgICAgICAgICAgICAgICAgICAvLyBEeW5hbWljIGxpbWl0YXRpb24gd2hlbiBzbGlkZXIgaXMgY29uc3RyYWlucyBieSBhbiBleHRlcm5hbCBjb21wb25hbnQgW2V4OiBjaGVjayBpbi9vdXRdXG4gICAgICBzdG9wLWF0PVwiU2NvcGVWYXJcIiAgICAgICAgICAgICAgICAgICAgICAgLy8gSWRlbSBidXQgZm9yIGVuZC5cblxuICAgICAgPCEtLSBBbmd1bGFyIERpcmVjdGl2ZSBBdHRyaWJ1dGVzIC0tPlxuICAgICAgbm90LWxlc3M9XCJpbnRlZ2VyXCIgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpeGVkIHN0YXJ0aW5nIHZhbHVlIGZvciBzbGlkZXIgW2RlZmF1bHQgMF1cbiAgICAgIG5vdC1tb3JlPVwiaW50ZWdlclwiICAgICAgICAgICAgICAgICAgICAgICAvLyBGaXhlZCBlbmQgdmFsdWUgZm9yIHNsaWRlcnMgW2RlZmF1bHQgMTAwXVxuICAgICAgYnktc3RlcD1cIistaW50ZWdlclwiICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGJ5LXN0ZXAgaXMgPjAgdGhlbiBzbGlkZXIgdXNlIGl0IGFzIHN0ZXAtdmFsdWUsIHdoZW4gbmVnYXRpdmUgdXNlIGl0IGZvciBkZWNpbWFsIHByZWNpc2lvblxuICAgICAgZGlzcGxheS10YXJnZXQ9XCJoYW5kbGVcIiAgICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgc2xpZGVyIGV4dGVybmFsIGZvcm1hdGVkIHZhbHVlIGluIHRoZSBoYW5kbGUgW3JlcXVpcmVyIGNhbHNzPVwiaWJ6LWhhbmRsZS1kaXNwbGF5XCJdXG4gICAgICBkdWFsLWhhbmRsZXM9J3RydWUnICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBhIHNlY29uZCBoYW5kbGUgdG8gc2xpZGVyIGZvciBtaW4vbWF4IHJhbmdlXG4gICAgICBpbml0aWFsPSd2YWx1ZXxbc3RhcnQvc3RvcF0nICAgICAgICAgICAgIC8vIHNsaWRlciBpbml0aWFsIHZhbHVlIFtkdWFsLWhhbmRsZXNdIG1heSBoYXZlIGluaXRpYWwgdmFsdWVzXG4gICAvPjwvcmFuZ2Utc2xpZGVyPlxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmFuZ2VTbGlkZXIgPSBhbmd1bGFyLm1vZHVsZSgnUmFuZ2VTbGlkZXInLFtdKTtcblxuZnVuY3Rpb24gUmFuZ2VTbGlkZXJIYW5kbGUgKHNjb3BlKSB7XG4gICAgdmFyIGludGVybmFscyA9IFtdO1xuICAgIHZhciBleHRlcm5hbHMgPSBbXTtcblxuICAgIHRoaXMuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNjb3BlLnNsaWRlcmlkO1xuICAgIH07XG5cbiAgICB0aGlzLmdldENiSGFuZGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY29wZS5jYmhhbmRsZTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRWaWV3PSBmdW5jdGlvbiAoaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuXG4gICAgICAgIC8vIGlmIHZhbHVlIGRpZCBub3QgY2hhbmdlIHJldHVybiBjdXJyZW50IGV4dGVybmFsIHJlcHJlc2VudGF0aW9uXG4gICAgICAgIGlmIChzY29wZS52YWx1ZVtoYW5kbGVdID09PSBpbnRlcm5hbHNbaGFuZGxlXSkgcmV0dXJuIGV4dGVybmFsc1toYW5kbGVdO1xuXG4gICAgICAgIC8vIGJ1aWxkIGV4dGVybmFsIHJlcHJlc2VudGF0aW9uIGFuZCBzYXZlIGl0IGZvciBmdXJ0aGVyIHJlcXVlc3RzXG4gICAgICAgIGludGVybmFsc1toYW5kbGVdID0gc2NvcGUudmFsdWVbaGFuZGxlXTtcbiAgICAgICAgaWYgKHNjb3BlLmZvcm1hdHRlcikgZXh0ZXJuYWxzW2hhbmRsZV0gPSBzY29wZS5mb3JtYXR0ZXIoc2NvcGUudmFsdWVbaGFuZGxlXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgIGVsc2UgIGV4dGVybmFsc1toYW5kbGVdID0gc2NvcGUudmFsdWVbaGFuZGxlXTtcblxuICAgICAgICByZXR1cm4gZXh0ZXJuYWxzW2hhbmRsZV07XG4gICAgfTtcblxuICAgIHRoaXMudXBkYXRlQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NlLCBzdGF0dXMpIHtcbiAgICAgICBzY29wZS51cGRhdGVDbGFzcyAoY2xhc3NlLCBzdGF0dXMpO1xuICAgIH07XG5cbiAgICB0aGlzLmZvcmNlUmVmcmVzaCA9IGZ1bmN0aW9uICh0aW1lcikge1xuICAgICAgIHNjb3BlLmZvcmNlUmVmcmVzaCh0aW1lcik7XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0VmFsdWU9IGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgaWYgKCFoYW5kbGUpIGhhbmRsZSA9IDA7XG4gICAgICAgIHJldHVybiBzY29wZS52YWx1ZVtoYW5kbGVdO1xuICAgIH07XG5cbiAgICB0aGlzLmdldFJlbGF0aXZlPSBmdW5jdGlvbiAoaGFuZGxlKSB7XG4gICAgICAgIGlmICghaGFuZGxlKSBoYW5kbGUgPSAwO1xuICAgICAgICByZXR1cm4gc2NvcGUucmVsYXRpdmVbaGFuZGxlXTtcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRWYWx1ZT0gZnVuY3Rpb24gKHZhbHVlLCBoYW5kbGUpIHtcbiAgICAgICAgaWYgKCFoYW5kbGUpIGhhbmRsZSA9IDA7XG4gICAgICAgIHNjb3BlLnNldFZhbHVlICh2YWx1ZSwgaGFuZGxlKTtcbiAgICB9O1xuXG4gICAgdGhpcy5zZXREaXNhYmxlPSBmdW5jdGlvbiAoZmxhZykge1xuICAgICAgICBzY29wZS5zZXREaXNhYmxlKGZsYWcpO1xuICAgIH07XG59XG5cblJhbmdlU2xpZGVyLmRpcmVjdGl2ZSgncmFuZ2VTbGlkZXInLCBbXCIkbG9nXCIsIFwiJGRvY3VtZW50XCIsIFwiJHRpbWVvdXRcIiwgZnVuY3Rpb24gKCRsb2csICRkb2N1bWVudCwgJHRpbWVvdXQpIHtcblxuICAgIHZhciB0ZW1wbGF0ZT0gJzxkaXYgY2xhc3M9XCJpYnotcmFuZ2Utc2xpZGVyIHJhbmdlLXNsaWRlclwiIHRpdGxlPVwie3t0aXRsZX19XCJkYXRhLXNsaWRlcj4nK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwicmFuZ2Utc2xpZGVyLWhhbmRsZSBoYW5kbGUtbWluXCIgbmctbW91c2Vkb3duPVwiaGFuZGxlQ0IoJGV2ZW50LDApXCIgbmctZm9jdXM9XCJmb2N1c0NCKHRydWUpXCIgbmctYmx1cj1cImZvY3VzQ0IoZmFsc2UpXCIgcm9sZT1cInNsaWRlclwiIHRhYmluZGV4PVwiMFwiPjwvc3Bhbj4nK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiaGFuZGxlLW1heFwiIG5nLW1vdXNlZG93bj1cImhhbmRsZUNCKCRldmVudCwxKVwiIG5nLWZvY3VzPVwiZm9jdXNDQih0cnVlKVwiIG5nLWJsdXI9XCJmb2N1c0NCKGZhbHNlKVwiIHJvbGU9XCJzbGlkZXJcIiB0YWJpbmRleD1cIjBcIj48L3NwYW4+JytcbiAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInJhbmdlLXNsaWRlci1hY3RpdmUtc2VnbWVudFwiPjwvc3Bhbj4nK1xuICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiaWJ6LXJhbmdlLXNsaWRlci1zdGFydFwiID48L3NwYW4+ICcrXG4gICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJpYnotcmFuZ2Utc2xpZGVyLXN0b3BcIj48L3NwYW4+ICcrXG4gICAgICAgICAgICAgICAgICAnPGlucHV0IGlkPXt7c2xpZGVyaWR9fSB0eXBlPVwiaGlkZGVuXCI+JytcbiAgICAgICAgICAgICAgICAgICc8L2Rpdj4nO1xuXG5cbiAgICBmdW5jdGlvbiBsaW5rIChzY29wZSwgZWxlbWVudCwgYXR0cnMsIG1vZGVsKSB7XG4gICAgICAgIC8vIGZ1bGwgaW5pdGlhbGlzYXRpb24gb2Ygc2xpZGVyIGZyb20gYSBzaW5nbGUgb2JqZWN0XG4gICAgICAgIHNjb3BlLmluaXRXaWRnZXQgPSBmdW5jdGlvbiAoaW5pdHZhbHVlcykge1xuXG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy5ieVN0ZXApICBzY29wZS5ieVN0ZXAgID0gcGFyc2VJbnQoaW5pdHZhbHVlcy5ieVN0ZXApO1xuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMubm90TW9yZSkgc2NvcGUubm90TW9yZSA9IHBhcnNlSW50KGluaXR2YWx1ZXMubm90TW9yZSk7XG4gICAgICAgICAgICBpZiAoaW5pdHZhbHVlcy5ub3RMZXNzKSBzY29wZS5ub3RMZXNzID0gcGFyc2VJbnQoaW5pdHZhbHVlcy5ub3RMZXNzKTtcbiAgICAgICAgICAgIGlmIChpbml0dmFsdWVzLmlkKSAgICAgIHNjb3BlLnNsaWRlcmlkPSBpbml0dmFsdWVzLmlkO1xuXG4gICAgICAgICAgICAvLyBodWdlbHkgYnV0IGluIHNvbWUgY2FzZSBET00gaXMgbm90IGZpbmlzaCB3aGVuIHdlIHRyeSB0byBzZXQgdmFsdWVzICEhIVxuICAgICAgICAgICAgaWYgKGluaXR2YWx1ZXMudmFsdWUgIT09IHVuZGVmaW5lZCkgICB7XG4gICAgICAgICAgICAgICAgc2NvcGUudmFsdWUgPSBpbml0dmFsdWVzLnZhbHVlO1xuICAgICAgICAgICAgICAgIHNjb3BlLmZvcmNlUmVmcmVzaCAoNTApOyAvLyB3YWl0IDUwbXMgZm9yIERPTSB0byBiZSByZWFkeVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHRoaXMgZnVuY3Rpb24gcmVjb21wdXRlIHNsaWRlIHBvc2l0aW9uaW5nXG4gICAgICAgIHNjb3BlLmZvcmNlUmVmcmVzaCA9IGZ1bmN0aW9uICh0aW1lcikge1xuICAgICAgICAgICB2YXIgdmFsdWUgPSBzY29wZS52YWx1ZTtcbiAgICAgICAgICAgc2NvcGUudmFsdWUgPSBbdW5kZWZpbmVkLHVuZGVmaW5lZF07XG4gICAgICAgICAgICR0aW1lb3V0IChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgIHNjb3BlLnNldFZhbHVlKHZhbHVlWzBdLDApO1xuICAgICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpICBzY29wZS5zZXRWYWx1ZSh2YWx1ZVsxXSwxKTtcbiAgICAgICAgICAgfSwgdGltZXIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGhhbmRsZXIgdG8gY2hhbmdlIGNsYXNzIGZyb20gc2xpZGVyIGhhbmRsZVxuICAgICAgICBzY29wZS51cGRhdGVDbGFzcyA9IGZ1bmN0aW9uIChjbGFzc2UsIHN0YXR1cykge1xuXG4gICAgICAgICAgICBpZiAoc3RhdHVzKSBlbGVtZW50LmFkZENsYXNzIChjbGFzc2UpO1xuICAgICAgICAgICAgZWxzZSAgZWxlbWVudC5yZW1vdmVDbGFzcyAoY2xhc3NlKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5zZXREaXNhYmxlID0gZnVuY3Rpb24gKGRpc2FibGVkKSB7XG5cbiAgICAgICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkQ2xhc3MgKFwiZGlzYWJsZVwiKTtcbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzBdLmNzcyAoJ3Zpc2liaWxpdHknLCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCkge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzFdLmNzcyAoJ3Zpc2liaWxpdHknLCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQ2xhc3MgKFwiZGlzYWJsZVwiKTtcbiAgICAgICAgICAgICAgICBzY29wZS5oYW5kbGVzWzBdLmNzcyAoJ3Zpc2liaWxpdHknLCd2aXNpYmxlJyk7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHNjb3BlLmhhbmRsZXNbMV0uY3NzICgndmlzaWJpbGl0eScsJ3Zpc2libGUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdDtcbiAgICAgICAgICAgIHZhciByYW5nZSA9IHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzO1xuICAgICAgICAgICAgdmFyIHBvaW50ID0gdmFsdWUgKiByYW5nZTtcblxuICAgICAgICAgICAgLy8gaWYgc3RlcCBpcyBwb3NpdGl2ZSBsZXQncyByb3VuZCBzdGVwIGJ5IHN0ZXBcbiAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPiAgMCkge1xuICAgICAgICAgICAgICAgIHZhciBtb2QgPSAocG9pbnQgLSAocG9pbnQgJSBzY29wZS5ieVN0ZXApKSAvIHNjb3BlLmJ5U3RlcDtcbiAgICAgICAgICAgICAgICB2YXIgcmVtID0gcG9pbnQgJSBzY29wZS5ieVN0ZXA7XG5cbiAgICAgICAgICAgICAgICB2YXIgcm91bmQgPSAocmVtID49IHNjb3BlLmJ5U3RlcCAqIDAuNSA/IHNjb3BlLmJ5U3RlcCA6IDApO1xuICAgICAgICAgICAgICAgIHJlc3VsdD0gKG1vZCAqIHNjb3BlLmJ5U3RlcCArIHJvdW5kKSArIHNjb3BlLm5vdExlc3M7XG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyAoXCJyYW5nZT0lZCB2YWx1ZT0lZCBwb2ludD0lZCBtb2Q9JWQgcmVtPSVkIHJvdW5kPSVkIHJlc3VsdD0lZFwiLCByYW5nZSwgdmFsdWUsIHBvaW50LCBtb2QsIHJlbSwgcm91bmQsIHJlc3VsdClcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiBzdGVwIGlzIG5lZ2F0aXZlIHJldHVybiByb3VuZCB0byBhc2tlZCBkZWNpbWFsXG4gICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwIDwgIDApIHtcbiAgICAgICAgICAgICAgICB2YXIgcG93ZXIgID0gIE1hdGgucG93ICgxMCwoc2NvcGUuYnlTdGVwICogLTEpKTtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBzY29wZS5ub3RMZXNzICsgcGFyc2VJbnQgKHBvaW50ICogcG93ZXIpIC8gcG93ZXI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiBzdGVwIGlzIG51bGwgcmV0dXJuIGZ1bGwgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBwb2ludDtcbiAgICAgICB9O1xuXG4gICAgICAgIC8vIHJldHVybiBjdXJyZW50IHZhbHVlXG4gICAgICAgIHNjb3BlLmdldFZhbHVlID0gZnVuY3Rpb24gKG9mZnNldCwgaGFuZGxlKSB7XG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdID0gKG9mZnNldCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KSAvIChzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2NvcGUucmVsYXRpdmVbaGFuZGxlXSA9IG9mZnNldCAvICAoc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAtIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbmV3dmFsdWUgPSBzY29wZS5ub3JtYWxpemUgKHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0pO1xuXG5cbiAgICAgICAgICAgIC8vIGlmIGludGVybmFsIHZhbHVlIGNoYW5nZSB1cGRhdGUgb3IgbW9kZWxcbiAgICAgICAgICAgIGlmIChuZXd2YWx1ZSAhPT0gc2NvcGUudmFsdWVbaGFuZGxlXSkge1xuICAgICAgICAgICAgICAgIGlmIChuZXd2YWx1ZSA8IHNjb3BlLnN0YXJ0VmFsdWUpIG5ld3ZhbHVlPXNjb3BlLnN0YXJ0VmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbHVlID4gc2NvcGUuc3RvcFZhbHVlKSAgbmV3dmFsdWU9c2NvcGUuc3RvcFZhbHVlO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZm9ybWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IHNjb3BlLmZvcm1hdHRlciAobmV3dmFsdWUsIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnZpZXdWYWx1ZSA9IG5ld3ZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZGlzcGxheXNbaGFuZGxlXSkge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5kaXNwbGF5c1toYW5kbGVdLmh0bWwgKHNjb3BlLnZpZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIGV4dGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtb2RlbFxuICAgICAgICAgICAgICAgIHNjb3BlLnZhbHVlW2hhbmRsZV0gPSBuZXd2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobW9kZWwpIG1vZGVsLiRzZXRWaWV3VmFsdWUgKHNjb3BlLnZpZXdWYWx1ZSk7XG4gICAgICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbHVlID4gc2NvcGUuc3RhcnRWYWx1ZSAmJiBuZXd2YWx1ZSA8IHNjb3BlLnN0b3BWYWx1ZSkgc2NvcGUudHJhbnNsYXRlKG9mZnNldCwgaGFuZGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuXG4gICAgICAgIHNjb3BlLnNldFN0YXJ0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodmFsdWUgPiBzY29wZS52YWx1ZVswXSkge1xuICAgICAgICAgICAgICAgIGlmICghc2NvcGUuZHVhbCkgc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDApO1xuICAgICAgICAgICAgICAgIGVsc2Ugc2NvcGUuc2V0VmFsdWUgKHZhbHVlLDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAqICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBzY29wZS5zdGFydC5jc3MoJ2hlaWdodCcsb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKiAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgc2NvcGUuc3RhcnQuY3NzKCd3aWR0aCcsb2Zmc2V0ICsgJ3B4Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLnN0YXJ0VmFsdWU9IHZhbHVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLnNldFN0b3AgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBvZmZzZXQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICh2YWx1ZSA8IHNjb3BlLnZhbHVlWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY29wZS5kdWFsKSBzY29wZS5zZXRWYWx1ZSAodmFsdWUsMCk7XG4gICAgICAgICAgICAgICAgZWxzZSBzY29wZS5zZXRWYWx1ZSAodmFsdWUsMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0ICogKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIHNjb3BlLnN0YXJ0LmNzcygnaGVpZ2h0JyxvZmZzZXQgKyAncHgnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqICh2YWx1ZSAtIHNjb3BlLm5vdExlc3MpIC8gKHNjb3BlLm5vdE1vcmUgLSBzY29wZS5ub3RMZXNzKTtcbiAgICAgICAgICAgICAgICBzY29wZS5zdG9wLmNzcyh7J3JpZ2h0JzogMCwgJ3dpZHRoJzogKHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggIC0gb2Zmc2V0KSArICdweCd9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2NvcGUuc3RvcFZhbHVlPSB2YWx1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS50cmFuc2xhdGUgPSBmdW5jdGlvbiAob2Zmc2V0LCBoYW5kbGUpIHtcbiAgICAgICAgICAgIHZhciBzdGFydDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgLy8gdGFrZSBoYW5kbGUgc2l6ZSBpbiBhY2NvdW50IHRvIGNvbXB1dGUgbWlkZGxlXG4gICAgICAgICAgICAgICAgdmFyIHZvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIG9mZnNldDtcblxuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbaGFuZGxlXS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAnLXdlYmtpdC10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW1vei10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW1zLXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVZKCcgKyB2b2Zmc2V0ICsgJ3B4KScsXG4gICAgICAgICAgICAgICAgICAgICctby10cmFuc2Zvcm0nOiAndHJhbnNsYXRlWSgnICsgdm9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVkoJyArIHZvZmZzZXQgKyAncHgpJ1xuICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICBpZiAoIXNjb3BlLmR1YWwpIHNjb3BlLnNsaWRlci5jc3MoJ2hlaWdodCcsIG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NvcGUucmVsYXRpdmVbMV0gJiYgc2NvcGUucmVsYXRpdmVbMF0pIHtcbiAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gKHNjb3BlLnJlbGF0aXZlWzFdIC0gc2NvcGUucmVsYXRpdmVbMF0pICogIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0ICA9IChzY29wZS5yZWxhdGl2ZVswXSAqICBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgc2NvcGUuc2xpZGVyLmNzcyAoeydib3R0b20nOiBzdGFydCsncHgnLCdoZWlnaHQnOiBoZWlnaHQgKyAncHgnfSk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1toYW5kbGVdLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICctd2Via2l0LXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1tb3otdHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICdweCknLFxuICAgICAgICAgICAgICAgICAgICAnLW1zLXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJy1vLXRyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJyxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAncHgpJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghc2NvcGUuZHVhbCkgc2NvcGUuc2xpZGVyLmNzcygnd2lkdGgnLG9mZnNldCArICdweCcpO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlLnJlbGF0aXZlWzFdICYmIHNjb3BlLnJlbGF0aXZlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB3aWR0aCA9IChzY29wZS5yZWxhdGl2ZVsxXSAtIHNjb3BlLnJlbGF0aXZlWzBdKSAqICBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBzdGFydCA9IChzY29wZS5yZWxhdGl2ZVswXSAqICBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuc2xpZGVyLmNzcyAoeydsZWZ0Jzogc3RhcnQrJ3B4Jywnd2lkdGgnOiB3aWR0aCArICdweCd9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gcG9zaXRpb24gaGFuZGxlIG9uIHRoZSBiYXIgZGVwZW5kaW5nIGEgZ2l2ZW4gdmFsdWVcbiAgICAgICAgc2NvcGUuc2V0VmFsdWUgPSBmdW5jdGlvbiAodmFsdWUgLCBoYW5kbGUpIHtcbiAgICAgICAgICAgIHZhciBvZmZzZXQ7XG5cbiAgICAgICAgICAgIC8vIGlmIHZhbHVlIGRpZCBub3QgY2hhbmdlIGlnbm9yZVxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBzY29wZS52YWx1ZVtoYW5kbGVdKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgICB2YWx1ZT0wO1xuICAgICAgICAgICAgaWYgKHZhbHVlID4gc2NvcGUubm90TW9yZSkgdmFsdWU9c2NvcGUubm90TW9yZTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA8IHNjb3BlLm5vdExlc3MpIHZhbHVlPXNjb3BlLm5vdExlc3M7XG5cbiAgICAgICAgICAgIGlmIChzY29wZS52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gPSAodmFsdWUgLSBzY29wZS5ub3RMZXNzKSAvIChzY29wZS5ub3RNb3JlIC0gc2NvcGUubm90TGVzcyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhbmRsZSA9PT0gMCkgb2Zmc2V0ID0gKHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gKiBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgKyBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodC8yO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGUgPT09IDEpIG9mZnNldCA9IHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gKiBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzY29wZS5yZWxhdGl2ZVtoYW5kbGVdID0gKHZhbHVlIC0gc2NvcGUubm90TGVzcykgLyAoc2NvcGUubm90TW9yZSAtIHNjb3BlLm5vdExlc3MpO1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IHNjb3BlLnJlbGF0aXZlW2hhbmRsZV0gKiAgKHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2NvcGUudHJhbnNsYXRlIChvZmZzZXQsaGFuZGxlKTtcbiAgICAgICAgICAgIHNjb3BlLnZhbHVlW2hhbmRsZV0gPSB2YWx1ZTtcblxuICAgICAgICAgICAgaWYgKHNjb3BlLmZvcm1hdHRlcikge1xuICAgICAgICAgICAgICAgIC8vIHdoZW4gY2FsbCB0aHJvdWdoIHNldFZhbHVlIHdlIGRvIG5vdCBwYXNzIGNiSGFuZGxlXG4gICAgICAgICAgICAgICAgc2NvcGUudmlld1ZhbHVlID0gc2NvcGUuZm9ybWF0dGVyICh2YWx1ZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2NvcGUudmlld1ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChtb2RlbCkgbW9kZWwuJHNldFZpZXdWYWx1ZSggc2NvcGUudmlld1ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHNjb3BlLmRpc3BsYXlzW2hhbmRsZV0pIHtcbiAgICAgICAgICAgICAgICBzY29wZS5kaXNwbGF5c1toYW5kbGVdLmh0bWwgKHNjb3BlLnZpZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cblxuICAgICAgICAvLyBNaW5pbWFsIGtleXN0cm9rZSBoYW5kbGluZyB0byBjbG9zZSBwaWNrZXIgd2l0aCBFU0MgW3Njb3BlLmFjdGlmIGlzIGN1cnJlbnQgaGFuZGxlIGluZGV4XVxuICAgICAgICBzY29wZS5rZXlkb3duPSAgZnVuY3Rpb24oZSl7XG5cbiAgICAgICAgICAgIHN3aXRjaChlLmtleUNvZGUpe1xuICAgICAgICAgICAgICAgIGNhc2UgMzk6IC8vIFJpZ2h0XG4gICAgICAgICAgICAgICAgY2FzZSAzODogLy8gdXBcbiAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPiAwKSBzY29wZS4kYXBwbHkoc2NvcGUuc2V0VmFsdWUgKChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0rc2NvcGUuYnlTdGVwKSwgc2NvcGUuYWN0aWYpKTtcbiAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPCAwKSBzY29wZS4kYXBwbHkoc2NvcGUuc2V0VmFsdWUgKChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0rKDEgLyBNYXRoLnBvdygxMCwgc2NvcGUuYnlTdGVwKi0xKSkpLHNjb3BlLmFjdGlmKSk7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2spICBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdLCBzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzc6IC8vIGxlZnRcbiAgICAgICAgICAgICAgICBjYXNlIDQwOiAvLyBkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ieVN0ZXAgPiAwKSBzY29wZS4kYXBwbHkoc2NvcGUuc2V0VmFsdWUgKChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0gLSBzY29wZS5ieVN0ZXApLCBzY29wZS5hY3RpZikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuYnlTdGVwIDwgMCkgc2NvcGUuJGFwcGx5KHNjb3BlLnNldFZhbHVlICgoc2NvcGUudmFsdWVbc2NvcGUuYWN0aWZdIC0gKDEgLyBNYXRoLnBvdygxMCwgc2NvcGUuYnlTdGVwKi0xKSkpLHNjb3BlLmFjdGlmKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5jYWxsYmFjaykgIHNjb3BlLmNhbGxiYWNrIChzY29wZS52YWx1ZVtzY29wZS5hY3RpZl0sIHNjb3BlLmN0cmxoYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDI3OiAvLyBlc2NcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1tzY29wZS5hY3RpZl1bMF0uYmx1cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLm1vdmVIYW5kbGUgPSBmdW5jdGlvbiAoaGFuZGxlLCBjbGllbnRYLCBjbGllbnRZKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0O1xuICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20gLSBjbGllbnRZO1xuICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPiBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCkgb2Zmc2V0ID0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldCA8IHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KSBvZmZzZXQgPSBzY29wZS5ib3VuZHMuaGFuZGxlc1toYW5kbGVdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gY2xpZW50WCAtIHNjb3BlLmJvdW5kcy5iYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcblxuICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgICAgIGlmICgoY2xpZW50WCArIHNjb3BlLmJvdW5kcy5oYW5kbGVzW2hhbmRsZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpID4gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC0gc2NvcGUuYm91bmRzLmhhbmRsZXNbaGFuZGxlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNjb3BlLmdldFZhbHVlICAob2Zmc2V0LCBoYW5kbGUpO1xuXG4gICAgICAgICAgICAvLyBwcmV2ZW50IGR1YWwgaGFuZGxlIHRvIGNyb3NzXG4gICAgICAgICAgICBpZiAoc2NvcGUuZHVhbCAmJiBzY29wZS52YWx1ZSBbMF0gPiBzY29wZS52YWx1ZVsxXSkge1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGUgPT09IDApIHNjb3BlLnNldFZhbHVlIChzY29wZS52YWx1ZVswXSAsIDEpO1xuICAgICAgICAgICAgICAgIGVsc2Ugc2NvcGUuc2V0VmFsdWUoc2NvcGUudmFsdWVbMV0sMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cblxuICAgICAgICBzY29wZS5mb2N1c0NCID0gZnVuY3Rpb24gKGluc2lkZSkge1xuICAgICAgICAgICAgaWYgKGluc2lkZSkge1xuICAgICAgICAgICAgICAgICRkb2N1bWVudC5vbigna2V5ZG93bicsc2NvcGUua2V5ZG93bik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICRkb2N1bWVudC51bmJpbmQoJ2tleWRvd24nLHNjb3BlLmtleWRvd24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGJhciB3YXMgdG91Y2ggbGV0IG1vdmUgaGFuZGxlIHRvIHRoaXMgcG9pbnRcbiAgICAgICAgc2NvcGUudG91Y2hCYXJDQiA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIGhhbmRsZT0wO1xuICAgICAgICAgICAgdmFyIHJlbGF0aXZlO1xuICAgICAgICAgICAgdmFyIHRvdWNoZXMgPSBldmVudC5jaGFuZ2VkVG91Y2hlcztcbiAgICAgICAgICAgIHZhciBvbGR2YWx1ZSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgdHdvIGhhbmRsZXMgc2VsZWN0IGNsb3Nlc3Qgb25lIGZyb20gdG91Y2ggcG9pbnRcbiAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnZlcnRpY2FsKSByZWxhdGl2ZSA9ICh0b3VjaGVzWzBdLnBhZ2VZIC0gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20pIC8gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZWxzZSByZWxhdGl2ZT0gKHRvdWNoZXNbMF0ucGFnZVggLSBzY29wZS5ib3VuZHMuYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIC8gc2NvcGUuYm91bmRzLmJhci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICAgICAgICAgIHZhciBkaXN0YW5jZTAgPSBNYXRoLmFicyhyZWxhdGl2ZSAtIHNjb3BlLnJlbGF0aXZlWzBdKTtcbiAgICAgICAgICAgICAgICB2YXIgZGlzdGFuY2UxID0gTWF0aC5hYnMocmVsYXRpdmUgLSBzY29wZS5yZWxhdGl2ZVsxXSk7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlMSA8IGRpc3RhbmNlMCkgaGFuZGxlPTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG1vdmUgaGFuZGxlIHRvIG5ldyBwbGFjZVxuICAgICAgICAgICAgc2NvcGUubW92ZUhhbmRsZSAoaGFuZGxlLHRvdWNoZXNbMF0ucGFnZVgsIHRvdWNoZXNbMF0ucGFnZVkpO1xuICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrICYmIG9sZHZhbHVlICE9PSBzY29wZS52YWx1ZVtoYW5kbGVdKSBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbaGFuZGxlXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaGFuZGxlIHdhcyB0b3VjaCBhbmQgZHJhZ1xuICAgICAgICBzY29wZS50b3VjaEhhbmRsZUNCID0gZnVuY3Rpb24gKHRvdWNoZXZ0LCBoYW5kbGUpIHtcbiAgICAgICAgICAgIHZhciBvbGR2YWx1ZSA9IHNjb3BlLnZhbHVlW2hhbmRsZV07XG5cbiAgICAgICAgICAgIHRvdWNoZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ3RvdWNobW92ZScsdG91Y2htb3ZlKTtcbiAgICAgICAgICAgICRkb2N1bWVudC5vbigndG91Y2hlbmQnICx0b3VjaGVuZCk7XG4gICAgICAgICAgICBlbGVtZW50LnVuYmluZCgndG91Y2hzdGFydCcsIHNjb3BlLnRvdWNoQmFyQ0IpO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiB0b3VjaG1vdmUoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXM7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgdG91Y2hlcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vdmVIYW5kbGUgKGhhbmRsZSx0b3VjaGVzW2lkeF0ucGFnZVgsIHRvdWNoZXNbaWR4XS5wYWdlWSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiB0b3VjaGVuZChldmVudCkge1xuICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgndG91Y2htb3ZlJyx0b3VjaG1vdmUpO1xuICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgndG91Y2hlbmQnICx0b3VjaGVuZCk7XG4gICAgICAgICAgICAgICBlbGVtZW50Lm9uKCd0b3VjaHN0YXJ0Jywgc2NvcGUudG91Y2hCYXJDQik7XG5cbiAgICAgICAgICAgICAgICAvLyBpZiB2YWx1ZSBjaGFuZ2Ugbm90aWZ5IGFwcGxpY2F0aW9uIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrICYmIG9sZHZhbHVlICE9PSBzY29wZS52YWx1ZVtoYW5kbGVdKSBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbaGFuZGxlXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuaGFuZGxlQ0IgPSBmdW5jdGlvbiAoY2xpY2tldmVudCwgaGFuZGxlKSB7XG5cbiAgICAgICAgICAgIGlmIChhdHRycy5hdXRvbWF0aWMpIHJldHVybjtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdmFyIG9sZHZhbHVlID0gc2NvcGUudmFsdWVbaGFuZGxlXTtcbiAgICAgICAgICAgIC8vIHJlZ2lzdGVyIG1vdXNlIGV2ZW50IHRvIHRyYWNrIGhhbmRsZVxuICAgICAgICAgICAgY2xpY2tldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAkZG9jdW1lbnQub24oJ21vdXNlbW92ZScsbW91c2Vtb3ZlKTtcbiAgICAgICAgICAgICRkb2N1bWVudC5vbignbW91c2V1cCcsIG1vdXNldXApO1xuICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1toYW5kbGVdWzBdLmZvY3VzKCk7XG4gICAgICAgICAgICBzY29wZS5hY3RpZj1oYW5kbGU7XG5cbiAgICAgICAgICAgIC8vIHNsaWRlciBoYW5kbGUgaXMgbW92aW5nXG4gICAgICAgICAgICBmdW5jdGlvbiBtb3VzZW1vdmUoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5tb3ZlSGFuZGxlIChoYW5kbGUsIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBtb3VzZSBpcyB1cCBkYW5zIGxlYXZlIHNsaWRlciBzZW5kIHJlc2l6ZSBldmVudHNcbiAgICAgICAgICAgIGZ1bmN0aW9uIG1vdXNldXAoKSB7XG4gICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgnbW91c2Vtb3ZlJywgbW91c2Vtb3ZlKTtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQudW5iaW5kKCdtb3VzZXVwJywgbW91c2V1cCk7XG5cbiAgICAgICAgICAgICAgICAvLyBpZiB2YWx1ZSBjaGFuZ2Ugbm90aWZ5IGFwcGxpY2F0aW9uIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmNhbGxiYWNrICYmIG9sZHZhbHVlICE9PSBzY29wZS52YWx1ZVtoYW5kbGVdKSBzY29wZS5jYWxsYmFjayAoc2NvcGUudmFsdWVbaGFuZGxlXSwgc2NvcGUuY3RybGhhbmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gc2ltdWxhdGUganF1ZXJ5IGZpbmQgYnkgY2xhc3NlcyBjYXBhYmlsaXRpZXMgW3dhcm5pbmcgb25seSByZXR1cm4gMXN0IGVsZW1lbnRzXVxuICAgICAgICBzY29wZS5maW5kID0gZnVuY3Rpb24gKHNlbGVjdCwgZWxlbSkge1xuICAgICAgICAgICAgdmFyIGRvbWVsZW07XG5cbiAgICAgICAgICAgIGlmIChlbGVtKSBkb21lbGVtID0gZWxlbVswXS5xdWVyeVNlbGVjdG9yKHNlbGVjdCk7XG4gICAgICAgICAgICBlbHNlIGRvbWVsZW0gPSBlbGVtZW50WzBdLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0KTtcblxuICAgICAgICAgICAgdmFyIGFuZ2VsZW0gPSBhbmd1bGFyLmVsZW1lbnQoZG9tZWxlbSk7XG4gICAgICAgICAgICByZXR1cm4gKGFuZ2VsZW0pO1xuICAgICAgICB9O1xuXG5cblxuICAgICAgICBzY29wZS5pbml0aWFsU2V0dGluZ3MgPSBmdW5jdGlvbiAoaW5pdGlhbCkge1xuICAgICAgICAgICAgdmFyIGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdDtcbiAgICAgICAgICAgIHNjb3BlLnZhbHVlPVtdOyAgLy8gc3RvcmUgbG93L2hlaWdodCB2YWx1ZSB3aGVuIHR3byBoYW5kbGVzXG4gICAgICAgICAgICBzY29wZS5yZWxhdGl2ZT1bXTtcblxuICAgICAgICAgICAgaWYgKHNjb3BlLnByZWNpc2lvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdCA9ICgnJyArIHNjb3BlLmJ5U3RlcCkubWF0Y2goL1xcLihbXFxkXSopLyk7XG4gICAgICAgICAgICAgICAgc2NvcGUucHJlY2lzaW9uID0gZGVjaW1hbF9wbGFjZXNfbWF0Y2hfcmVzdWx0ICYmIGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdFsxXSA/IGRlY2ltYWxfcGxhY2VzX21hdGNoX3Jlc3VsdFsxXS5sZW5ndGggOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBwb3NpdGlvbiBoYW5kbGUgdG8gaW5pdGlhbCB2YWx1ZShzKVxuICAgICAgICAgICAgZWxlbWVudC5vbigndG91Y2hzdGFydCcsIHNjb3BlLnRvdWNoQmFyQ0IpO1xuICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1swXS5vbigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGV2dCl7c2NvcGUudG91Y2hIYW5kbGVDQihldnQsMCk7fSk7XG5cbiAgICAgICAgICAgIC8vIHRoaXMgc2xpZGVyIGhhcyB0d28gaGFuZGxlcyBsb3cvaGlnaHRcbiAgICAgICAgICAgIGlmIChzY29wZS5kdWFsKSB7XG4gICAgICAgICAgICAgICAgc2NvcGUuaGFuZGxlc1sxXS5hZGRDbGFzcygncmFuZ2Utc2xpZGVyLWhhbmRsZScpO1xuICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMV0ub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihldnQpe3Njb3BlLnRvdWNoSGFuZGxlQ0IoZXZ0LDEpO30pO1xuICAgICAgICAgICAgICAgIGlmICghc2NvcGUuaW5pdHZhbHVlcykgc2NvcGUuc2V0VmFsdWUgKGluaXRpYWxbMV0sMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgYW4gaW5pdHN0YXRlIG9iamVjdCBhcHBseSBpdFxuICAgICAgICAgICAgaWYgKHNjb3BlLmluaXR2YWx1ZXMpIHNjb3BlLmluaXRXaWRnZXQgKHNjb3BlLmluaXR2YWx1ZXMpO1xuICAgICAgICAgICAgZWxzZSAgIHNjb3BlLnNldFZhbHVlIChpbml0aWFsWzBdLDApO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5zbGlkZXJpZCAgID0gYXR0cnMuaWQgfHwgXCJzbGlkZXItXCIgKyBwYXJzZUludCAoTWF0aC5yYW5kb20oKSAqIDEwMDApO1xuICAgICAgICAgICAgc2NvcGUuc3RhcnRWYWx1ZSA9IC1JbmZpbml0eTtcbiAgICAgICAgICAgIHNjb3BlLnN0b3BWYWx1ZSAgPSBJbmZpbml0eTtcbiAgICAgICAgICAgIHNjb3BlLmJ5U3RlcCAgID0gcGFyc2VJbnQoYXR0cnMuYnlTdGVwKSB8fCAxO1xuICAgICAgICAgICAgc2NvcGUudmVydGljYWwgPSBhdHRycy52ZXJ0aWNhbCAgIHx8IGZhbHNlO1xuICAgICAgICAgICAgc2NvcGUuZHVhbCAgICAgPSBhdHRycy5kdWFsSGFuZGxlc3x8IGZhbHNlO1xuICAgICAgICAgICAgc2NvcGUudHJpZ2dlcl9pbnB1dF9jaGFuZ2U9IGZhbHNlO1xuICAgICAgICAgICAgc2NvcGUubm90TW9yZSAgPSBwYXJzZUludChhdHRycy5ub3RNb3JlKSAgIHx8IDEwMDtcbiAgICAgICAgICAgIHNjb3BlLm5vdExlc3MgID0gcGFyc2VJbnQoYXR0cnMubm90TGVzcykgICB8fCAwO1xuXG4gICAgICAgICAgICBpZiAoc2NvcGUudmVydGljYWwpIGVsZW1lbnQuYWRkQ2xhc3MoXCJ2ZXJ0aWNhbC1yYW5nZVwiKTtcblxuICAgICAgICAgICAgc2NvcGUuaGFuZGxlcz0gW3Njb3BlLmZpbmQoJy5oYW5kbGUtbWluJyksIHNjb3BlLmZpbmQoJy5oYW5kbGUtbWF4JyldO1xuICAgICAgICAgICAgc2NvcGUuYmFyICAgID0gZWxlbWVudDtcbiAgICAgICAgICAgIHNjb3BlLnNsaWRlciA9IHNjb3BlLmZpbmQoJy5yYW5nZS1zbGlkZXItYWN0aXZlLXNlZ21lbnQnKTtcbiAgICAgICAgICAgIHNjb3BlLnN0YXJ0ICA9IHNjb3BlLmZpbmQoJy5pYnotcmFuZ2Utc2xpZGVyLXN0YXJ0Jyk7XG4gICAgICAgICAgICBzY29wZS5zdG9wICAgPSBzY29wZS5maW5kKCcuaWJ6LXJhbmdlLXNsaWRlci1zdG9wJyk7XG4gICAgICAgICAgICBzY29wZS5kaXNhYmxlPSBhdHRycy5kaXNhYmxlIHx8IGZhbHNlO1xuXG4gICAgICAgICAgICBzY29wZS5jdHJsaGFuZGxlID0gbmV3IFJhbmdlU2xpZGVySGFuZGxlIChzY29wZSk7XG5cbiAgICAgICAgICAgIC8vIHByZXBhcmUgRE9NIG9iamVjdCBwb2ludGVyIHRvIGNvbXB1dGUgc2l6ZSBkeW5hbWljYWxseVxuICAgICAgICAgICAgc2NvcGUuYm91bmRzID0ge1xuICAgICAgICAgICAgICAgIGJhciAgICA6IGVsZW1lbnRbMF0sXG4gICAgICAgICAgICAgICAgaGFuZGxlczogW3Njb3BlLmhhbmRsZXNbMF1bMF0sIHNjb3BlLmhhbmRsZXNbMV1bMF1dXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuZGlzYWJsZSA9PT0gJ3RydWUnKSBzY29wZS5zZXREaXNhYmxlKHRydWUpO1xuXG4gICAgICAgICAgICBpZiAoYXR0cnMuZGlzcGxheVRhcmdldCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXR0cnMuZGlzcGxheVRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWUgOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdoYW5kbGUnIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmRpc3BsYXlzID0gc2NvcGUuaGFuZGxlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmhhbmRsZXNbMF0uYWRkQ2xhc3MoJ2liei1yYW5nZS1zbGlkZXItZGlzcGxheScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLmR1YWwpIHNjb3BlLmhhbmRsZXNbMV0uYWRkQ2xhc3MoJ2liei1yYW5nZS1zbGlkZXItZGlzcGxheScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5kaXNwbGF5cyA9ICBbJGRvY3VtZW50LmdldEVsZW1lbnRCeUlkIChhdHRycy5kaXNwbGF5VGFyZ2V0KV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHNjb3BlLmRpc3BsYXlzPVtdO1xuXG4gICAgICAgICAgICAvLyBleHRyYWN0IGluaXRpYWwgdmFsdWVzIGZyb20gYXR0cnMgYW5kIHBhcnNlIGludG8gaW50XG4gICAgICAgICAgICBpZiAoIWF0dHJzLmluaXRpYWwpIHtcbiAgICAgICAgICAgICAgICBzY29wZS5pbml0aWFsICA9IFtzY29wZS5uZ01vZGVsLCBzY29wZS5uZ01vZGVsXTsgLy8gaW5pdGlhbGl6ZSB0byBtb2RlbCB2YWx1ZXNcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIGluaXRpYWwgID0gYXR0cnMuaW5pdGlhbC5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgIHNjb3BlLmluaXRpYWwgPSBbXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxbMF0gIT09IHVuZGVmaW5lZCA/IHBhcnNlSW50IChpbml0aWFsWzBdKSA6IHNjb3BlLm5vdExlc3MsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxbMV0gIT09IHVuZGVmaW5lZCA/IHBhcnNlSW50IChpbml0aWFsWzFdKSA6IHNjb3BlLm5vdE1vcmVcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNb25pdG9yIGFueSBjaGFuZ2VzIG9uIHN0YXJ0L3N0b3AgZGF0ZXMuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2goJ3N0YXJ0QXQnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUudmFsdWUgPCBzY29wZS5zdGFydEF0ICkge1xuICAgICAgICAgICAgICAgICAgICAvL3Njb3BlLnNldFZhbHVlIChzY29wZS5zdGFydEF0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnN0YXJ0QXQpIHNjb3BlLnNldFN0YXJ0IChzY29wZS5zdGFydEF0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2goJ3N0b3BBdCcgLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUudmFsdWUgPiBzY29wZS5zdG9wQXQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9zY29wZS5zZXRWYWx1ZSAoc2NvcGUuc3RvcEF0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLnN0b3BBdCkgc2NvcGUuc2V0U3RvcCAoc2NvcGUuc3RvcEF0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBmaW5pc2ggd2lkZ2V0IGluaXRpYWxpc2F0aW9uXG4gICAgICAgICAgICBzY29wZS5pbml0aWFsU2V0dGluZ3MgKHNjb3BlLmluaXRpYWwpO1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgc2NvcGUuaW5pdCgpO1xuICAgICAgICBcbiAgICAgICAgIC8vIHNsaWRlciBpcyByZWFkeSBwcm92aWRlIGNvbnRyb2wgaGFuZGxlIHRvIGFwcGxpY2F0aW9uIGNvbnRyb2xsZXJcbiAgICAgICAgc2NvcGUuJHdhdGNoICgnaW5pdGhvb2snLCBmdW5jdGlvbiAoKSB7ICAgICAgICAgLy8gaW5pdCBWYWx1ZXMgbWF5IGFycml2ZSBsYXRlXG4gICAgICAgICAgICBpZiAoc2NvcGUuaW5pdGhvb2spIHNjb3BlLmluaXRob29rIChzY29wZS5jdHJsaGFuZGxlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2NvcGUuJHdhdGNoICgnaW5pdHZhbHVlcycsIGZ1bmN0aW9uICgpIHsgXHQvLyBpbml0IFZhbHVlcyBtYXkgYXJyaXZlIGxhdGVcbiAgICAgICAgICAgIGlmIChzY29wZS5pbml0dmFsdWVzKSBzY29wZS5pbml0V2lkZ2V0KHNjb3BlLmluaXR2YWx1ZXMpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0d28td2F5IGJpbmRpbmcgaWYgbW9kZWwgdmFsdWUgY2hhbmdlc1xuICAgICAgICBzY29wZS4kd2F0Y2ggKCduZ01vZGVsJywgZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgc2NvcGUuc2V0VmFsdWUobmV3VmFsdWUsIDApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbnJldHVybiB7XG4gICAgcmVzdHJpY3Q6IFwiRVwiLCAgICAvLyByZXN0cmljdCB0byA8cmFuZ2Utc2xpZGVyPiBIVE1MIGVsZW1lbnQgbmFtZVxuICAgIHNjb3BlOiB7XG4gICAgICAgIHN0YXJ0QXQgIDonPScsICAvLyBGaXJzdCBhY2NlcHRhYmxlIGRhdGVcbiAgICAgICAgc3RvcEF0ICAgOic9JywgIC8vIExhc3QgYWNjZXB0YWJsZSBkYXRlXG4gICAgICAgIGNhbGxiYWNrIDonPScsICAvLyBDYWxsYmFjayB0byBhY3RpZiB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZFxuICAgICAgICBmb3JtYXR0ZXI6Jz0nLCAgLy8gQ2FsbGJhY2sgZm9yIGRyYWcgZXZlbnQgY2FsbCBlYWNoIHRpbWUgaW50ZXJuYWwgdmFsdWUgY2hhbmdlc1xuICAgICAgICBpbml0aG9vayA6Jz0nLCAgLy8gSG9vayBwb2ludCB0byBjb250cm9sIHNsaWRlciBmcm9tIEFQSVxuICAgICAgICBjYmhhbmRsZSA6Jz0nLCAgLy8gQXJndW1lbnQgYWRkZWQgdG8gZXZlcnkgY2FsbGJhY2tcbiAgICAgICAgaW5pdHZhbHVlczonPScsICAgLy8gSW5pdGlhbCB2YWx1ZXMgYXMgYSBzaW5nbGUgb2JqZWN0XG4gICAgICAgIG5nTW9kZWw6ICc9JyAgICAvLyB0aGUgbW9kZWwgdmFsdWVcbiAgICB9LFxuICAgIHJlcXVpcmU6ICc/bmdNb2RlbCcsXG4gICAgdGVtcGxhdGU6IHRlbXBsYXRlLCAvLyBodG1sIHRlbXBsYXRlIGlzIGJ1aWxkIGZyb20gSlNcbiAgICByZXBsYWNlOiB0cnVlLCAgICAgIC8vIHJlcGxhY2UgY3VycmVudCBkaXJlY3RpdmUgd2l0aCB0ZW1wbGF0ZSB3aGlsZSBpbmhlcml0aW5nIG9mIGNsYXNzXG4gICAgbGluazogbGluayAgICAgICAgICAvLyBwaWNrYWRhdGUgb2JqZWN0J3MgbWV0aG9kc1xufTtcbn1dKTtcblxuY29uc29sZS5sb2cgKFwiUmFuZ2VTbGlkZXIgTG9hZGVkXCIpO1xuXG59KSgpOyIsIi8qXG4gYWxzYS1nYXRld2F5IC0tIHByb3ZpZGUgYSBSRVNUL0hUVFAgaW50ZXJmYWNlIHRvIEFMU0EtTWl4ZXJcblxuIENvcHlyaWdodCAoQykgMjAxNSwgRnVsdXAgQXIgRm9sbFxuXG4gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuIGFsb25nIHdpdGggc2NvcGUgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLlxuXG4gUmVmZXJlbmNlczpcblxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRlbXBsYXRlID1cbiAgICAgICAgICAnPGRpdiBjbGFzcz1cImFmYi1tb25pdG9yXCIgbmctY2xpY2s9XCJnZXRwaW5nKClcIj4nICtcbiAgICAgICAgICc8c3BhbiBjbGFzcz1cImFmYi1yZWZyZXNoLXRva2VuXCIgID5hZmI6Ly97e2hvc3RuYW1lfX06e3todHRwZHBvcnR9fTwvc3Bhbj4nICtcbiAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgJzwvZGl2Pic7XG5cblxuLy8gc2NvcGUgbW9kdWxlIGlzIGxvYWQgc3RhdGljYWxseSBiZWZvcmUgYW55IHJvdXRlIGlzIGNhdGl2YXRlZFxuYW5ndWxhci5tb2R1bGUoJ1Rva2VuUmVmcmVzaCcsIFsnQXBwQ29uZmlnJywgJ01vZGFsTm90aWZpY2F0aW9uJ10pXG5cbiAgICAuZGlyZWN0aXZlICgndG9rZW5SZWZyZXNoJywgW1wiJGxvZ1wiLCBcIiR3aW5kb3dcIiwgXCIkdGltZW91dFwiLCBcIiRsb2NhdGlvblwiLCBcIk5vdGlmaWNhdGlvblwiLCBcIkFwcENvbmZpZ1wiLCBcIkFwcENhbGxcIiwgZnVuY3Rpb24oJGxvZywgJHdpbmRvdywgJHRpbWVvdXQsICRsb2NhdGlvbiwgTm90aWZpY2F0aW9uLCBBcHBDb25maWcsIEFwcENhbGwpIHtcblxuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgc2NvcGUubG9nZ2VkPXVuZGVmaW5lZDsgLy8gbmVpdGhlciB0aHUgbmVpdGhlciBmYWxzZVxuICAgICAgICBcbiAgICAgICAgJHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIEFwcENhbGwuZ2V0IChzY29wZS5wbHVnaW4sIFwibG9nb3V0XCIsIHsvKnF1ZXJ5Ki99LCBmdW5jdGlvbiAoKSB7ICAgIFxuICAgICAgICAgICAgJGxvZy5sb2coXCJPUEEgZXhpdFwiKTsgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAgICAgICAgICBcbiAgICAgICAgc2NvcGUub25saW5lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZWxlbS5hZGRDbGFzcyAgICAoXCJvbmxpbmVcIik7XG4gICAgICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcIm9mZmxpbmVcIik7XG4gICAgICAgICAgICBzY29wZS5sb2dnZWQ9dHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5vZmZsaW5lID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgICAgKFwib2ZmbGluZVwiKTtcbiAgICAgICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwib25saW5lXCIpO1xuICAgICAgICAgICAgc2NvcGUubG9nZ2VkPWZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgc2NvcGUub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHNjb3BlLmxvZ2dlZCAhPT0gZmFsc2UpICB7XG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uLndhcm5pbmcgKHttZXNzYWdlOiBcIkFwcEZyYW1ld29yayBCaW5kZXIgTG9zdFwiLCBkZWxheTogNTAwMH0pO1xuICAgICAgICAgICAgICAgIHNjb3BlLm9mZmxpbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnN0YXR1cyA9IDA7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICBzY29wZS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihqcmVzcCwgZXJyY29kZSkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoZXJyY29kZSAhPT0gMjAwIHx8IGpyZXNwLnJlcXVlc3Quc3RhdHVzICE9PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi53YXJuaW5nICh7bWVzc2FnZTogXCJhdXRvLWNvbm5lY3QgOlwiICsganJlc3AucmVxdWVzdC5pbmZvLCBkZWxheTogMTAwMDB9KTtcbiAgICAgICAgICAgICAgICBzY29wZS5vZmZsaW5lKCk7IFxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHNjb3BlLmxvZ2dlZCAhPT0gdHJ1ZSkgIHtcbiAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24uc3VjY2VzcyAoe21lc3NhZ2U6IFwiQXBwRnJhbWV3b3JrIEJpbmRlciBDb25uZWN0ZWRcIiwgZGVsYXk6IDMwMDB9KTtcbiAgICAgICAgICAgICAgICBzY29wZS5vbmxpbmUoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuY2FsbGJhY2spIHNjb3BlLmNhbGxiYWNrKGpyZXNwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgc2NvcGUuc3RhdHVzID0gMTsgICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENoZWNrIEJpbmRlciBzdGF0dXNcbiAgICAgICAgc2NvcGUuZ2V0cGluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBBcHBDYWxsLmdldCAoc2NvcGUucGx1Z2luLCBcInBpbmdcIiwgey8qcXVlcnkqL30sZnVuY3Rpb24oanJlc3AsIGVycmNvZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyY29kZSAhPT0gMjAwIHx8IGpyZXNwLnJlcXVlc3Quc3RhdHVzICE9PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb24ud2FybmluZyAoe21lc3NhZ2U6IGpyZXNwLnJlcXVlc3QuaW5mbywgZGVsYXk6IDUwMDB9KTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUub2ZmbGluZSgpOyBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyByZXN0YXJ0IGEgbmV3IHRpbWVyIGZvciBuZXh0IHBpbmdcbiAgICAgICAgICAgICAgICAkdGltZW91dCAoc2NvcGUuZ2V0cGluZywgQXBwQ29uZmlnLnNlc3Npb24ucGluZ3JhdGUqMTAwMCk7XG4gICAgICAgICAgICB9LCBzY29wZS5vbmVycm9yKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIENoZWNrIEJpbmRlciBzdGF0dXNcbiAgICAgICAgc2NvcGUucmVmcmVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBBcHBDYWxsLmdldCAoc2NvcGUucGx1Z2luLCBcInJlZnJlc2hcIiwgey8qcXVlcnkqL30sIGZ1bmN0aW9uKGpyZXNwLCBlcnJjb2RlKSB7XG5cbiAgICAgICAgICAgICAgICBzY29wZS5vbnN1Y2Nlc3MgKGpyZXNwLCBlcnJjb2RlKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyByZXN0YXJ0IGEgbmV3IHRpbWVyIGZvciBuZXh0IHJlZnJlc2hcbiAgICAgICAgICAgICAgICAkdGltZW91dCAoc2NvcGUucmVmcmVzaCwgQXBwQ29uZmlnLnNlc3Npb24udGltZW91dCAqMjUwKTtcbiAgICAgICAgICAgIH0sIHNjb3BlLm9uZXJyb3IpOyAgICAgICAgICAgIFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gSW5pdGlhbCBjb25uZWN0aW9uXG4gICAgICAgIHNjb3BlLmxvZ2dpbiA9IGZ1bmN0aW9uKCkgeyAgICAgICAgICAgIFxuICAgICAgICAgICAgQXBwQ2FsbC5nZXQgKHNjb3BlLnBsdWdpbiwgXCJjb25uZWN0XCIsIHt0b2tlbjogQXBwQ29uZmlnLnNlc3Npb24uaW5pdGlhbH0sIGZ1bmN0aW9uKGpyZXNwLCBlcnJjb2RlKSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKCFzY29wZS5vbnN1Y2Nlc3MgKGpyZXNwLCBlcnJjb2RlKSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEludGlhbCB0b2tlbiB3YXMgYWNjZXB0ZWQgbGV0J3Mgc3RhcnQgcGluZyAmIHJlZnJlc2hcbiAgICAgICAgICAgICAgICAkdGltZW91dCAoc2NvcGUuZ2V0cGluZywgQXBwQ29uZmlnLnNlc3Npb24ucGluZ3JhdGUqMTAwMCk7XG4gICAgICAgICAgICAgICAgJHRpbWVvdXQgKHNjb3BlLnJlZnJlc2gsIEFwcENvbmZpZy5zZXNzaW9uLnRpbWVvdXQgKjI1MCk7XG4gXG4gICAgICAgICAgICB9LCBzY29wZS5vbmVycm9yKTtcbiAgICAgICAgfTtcblxuXG4gICAgICAgIC8vIFBhcnNlIFdpZGdldCBQYXJhbWV0ZXJzXG4gICAgICAgIHNjb3BlLnBsdWdpbiAgICA9IGF0dHJzLnBsdWdpbiB8fCBcImF1dGhcIjtcbiAgICAgICAgc2NvcGUuaWNvbiAgICAgID0gYXR0cnMuaWNvbiAgIHx8IFwiZmktbGlnaHRidWxiXCI7XG4gICAgICAgIHNjb3BlLmhvc3RuYW1lICA9ICRsb2NhdGlvbi5ob3N0KCk7XG4gICAgICAgIHNjb3BlLmh0dHBkcG9ydCA9ICRsb2NhdGlvbi5wb3J0KCk7XG4gICAgICAgIHNjb3BlLmF1dG9sb2cgICA9IEpTT04ucGFyc2UoYXR0cnMuYXV0b2xvZyB8fCBmYWxzZSk7XG4gICAgICAgIFxuICAgICAgICAvLyBhdXRvc3RhcnQgbG9nIGlmIHJlcXVlc3RlZFxuICAgICAgICBpZiAoc2NvcGUuYXV0b2xvZykgc2NvcGUubG9nZ2luKCk7XG4gICAgICAgIFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrIDogXCI9XCJcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgICAgbGluazogbXltZXRob2RzXG4gICAgfTtcbn1dKTtcblxufSkoKTtcbmNvbnNvbGUubG9nIChcIlRva2VuIFJlZnJlc2ggTG9hZGVkXCIpO1xuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKiBcbiAqIHJlZjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL21vdXNlb3ZlclxuICogXG4gKiB1c2FnZTogXG4gKiBcbiAqIHRpcE1vZGFsOiBsaXN0ZW4gZXZlbnQgZnJvbSBlbGVtLnBhcmVudCgpIHRvIGRpc3BsYXkgdGlwLW1vZGFsXG4gKiAgICAgIDxkaXYgY2xhc3M9XCJ4eHh4XCI+XG4gKiAgICAgICAgICA8dGlwLW1vZGFsIHRpcD14eHh4PjwvdGlwLW1vZGFsPlxuICogICAgICAgICAgPGlucHV0LXRleHQgLi4uLj48L2lucHV0LXRleHQ+XG4gKiAgICAgIDwvZGl2PlxuICogICAgICBcbiAqIE5vdGU6IHVzZSBDU1MudmlzaWJpbGl0eSB0byBhdm9pZCBkaXNwbGF5IGZsaWNrZXJpbmcgYXQgaW5pdGlhbCBkaXNwbGF5LlxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRtcGwgPSAnPGRpdiBjbGFzcz1cInRpcC1tb2RhbC1wb3B1cFwiPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwie3tpY29ufX1cIj48L2k+JyArXG4gICAgICAgICAgICAnPHNwYW4+e3t0aXB9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+PC9kaXY+JyA7XG5cbiAgICBhbmd1bGFyLm1vZHVsZSgnTW9kYWxOb3RpZmljYXRpb24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ3RpcE1vZGFsJywgW1wiJHRpbWVvdXRcIiwgZnVuY3Rpb24gKCR0aW1lb3V0KSB7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudCA9IGVsZW0ucGFyZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZGFsICAgID0gZWxlbS5maW5kKFwiZGl2XCIpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVsYXkgdGlwIGRpc3BsYXkgdG8gYXZvaWQgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgbW91c2UgZmFzdFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkaXNwbGF5ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlLnNob3cpIHNjb3BlLm1vZGFsLmNzcyh7b3BhY2l0eTogMSwgdmlzaWJpbGl0eTondmlzaWJsZSd9KTsgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuc2hvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS50aW1lb3V0ID0gJHRpbWVvdXQoYWN0aW9uLCBzY29wZS5kZWxheSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsb3NlICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzY29wZS5zaG93ID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgc2NvcGUubW9kYWwuY3NzKHtvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OidoaWRkZW4nfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYWp1c3QgaWNvbiBvciB1c2UgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IGF0dHJzLmljb24gfHwgJ2ZpLWxpZ2h0YnVsYic7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgUGFyZW50IGVsZW1lbnQgdG8gZ2V0IG1vdXNlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5hZGRDbGFzcyAoJ2FzLW1vZGFsLXRpcCcpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnY2xpY2snLCBjbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdmb2N1cycsIGRpc3BsYXkpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnbW91c2VvdmVyJywgZGlzcGxheSk7XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcmVudC5iaW5kKCdtb3VzZWxlYXZlJywgY2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJlbnQuYmluZCgnYmx1cicsIGNsb3NlKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmRlbGF5ID0gYXR0cnMuZGVsYXkgfHwgMTAwMDsgLy8gd2FpdCAxcyBiZWZvcmUgZGlzcGxheWluZyB0aXBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge3RpcDogXCI9XCJ9IC8vIHRpcCBtYXkgbm90IGJlIGRlZmluZWQgd2hlbiB3aWRnZXQgaXMgZGlzcGxheVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiLyogXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgXCJJb1QuYnpoXCJcbiAqIEF1dGhvciBcIkZ1bHVwIEFyIEZvbGxcIlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKiBcbiAqIEJ1Z3M6IElucHV0IHdpdGggQ2FsbGJhY2sgU0hPVUxEIEJFIGdldCAncmVxdWlyZWQnIGNsYXNzXG4gKi9cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgdG1wbCA9ICc8c3BhbiB0aXRsZT1cIkdvdG86IHt7aHJlZn19XCIgbmctY2xpY2s9XCJjbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgICAgJzxzcGFuPnt7bGFiZWx9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L3NwYW4+JztcblxuXG4gICAgYW5ndWxhci5tb2R1bGUoJ0xpbmtCdXR0b24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ2xpbmtCdXR0b24nLCBbXCIkbG9jYXRpb25cIiwgZnVuY3Rpb24gKCRsb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcblxuICAgICAgICAgICAgICAgICAgICBzY29wZS5jbGlja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJzLnF1ZXJ5KSAkbG9jYXRpb24ucGF0aChhdHRycy5ocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgJGxvY2F0aW9uLnBhdGgoYXR0cnMuaHJlZikuc2VhcmNoKGF0dHJzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBhanVzdCBpY29uIG9yIHVzZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIHNjb3BlLmljb24gPSBhdHRycy5pY29uICAgfHwgJ2ZpLWxpbmsnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdKdW1wJztcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaHJlZiAgPSBhdHRycy5ocmVmICB8fCAnL2hvbWUnO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIGxhYmVsIGFzIGNsYXNzXG4gICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKHNjb3BlLmxhYmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XSk7XG59KSgpO1xuIiwiXG4vKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLi5cbiAqIFxuICogUmVmZXJlbmNlOlxuICogICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRmlsZVJlYWRlciBcbiAqICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Vc2luZ19maWxlc19mcm9tX3dlYl9hcHBsaWNhdGlvbnMjVXNpbmdfaGlkZGVuX2ZpbGVfaW5wdXRfZWxlbWVudHNfdXNpbmdfdGhlX2NsaWNrJTI4JTI5X21ldGhvZFxuICogICBodHRwczovL3VuY29ya2Vkc3R1ZGlvcy5jb20vYmxvZy9tdWx0aXBhcnRmb3JtZGF0YS1maWxlLXVwbG9hZC13aXRoLWFuZ3VsYXJqc1xuICogICBodHRwczovL3d3dy50ZXJsaWNpLmNvbS8yMDE1LzA1LzE2L3VwbG9hZGluZy1maWxlcy1sb2NhbGx5Lmh0bWxcbiAqICAgaHR0cHM6Ly9naXRodWIuY29tL25lcnZnaC9hbmd1bGFyLWZpbGUtdXBsb2FkL2Jsb2IvbWFzdGVyL3NyYy9zZXJ2aWNlcy9GaWxlVXBsb2FkZXIuanNcbiAqICAgaHR0cHM6Ly9zdHVrLmdpdGh1Yi5pby9qc3ppcC9kb2N1bWVudGF0aW9uL2hvd3RvL3JlYWRfemlwLmh0bWxcbiAqICAgaHR0cDovL29uZWh1bmdyeW1pbmQuY29tL3ppcC1wYXJzaW5nLWpzemlwLWFuZ3VsYXIvXG4gKiAgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTUzNDE5MTIvaG93LXRvLWdvLWZyb20tYmxvYi10by1hcnJheWJ1ZmZlclxuICogICBcbiAqICAgQnVnczogemlwIGZpbGUgc2VudCBldmVuIHdoZW4gZmxhZyBhcyBpbnZhbGlkIFxuICovXG5cbiBcblxuKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyBXQVJOSU5HOiBBbmd1bGFyIG5nLWNoYW5nZSBkb2VzIG5vdCB3b3JrIG9uIGlucHV0L2ZpbGUuIExldCdzIGhvb2sgb3VyIGNhbGxiYWNrIHRocm91Z2ggc3RhbmRhcmQgSlMgZnVuY3Rpb25cbnZhciB0bXBsID0gICc8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwie3tuYW1lfX0taW5wdXRcIiBvbmNoYW5nZT1cImFuZ3VsYXIuZWxlbWVudCh0aGlzKS5zY29wZSgpLlVwTG9hZEZpbGUodGhpcy5maWxlcylcIiBhY2NlcHQ9XCJ7e21pbWV0eXBlfX1cIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPicrXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInVwbG9hZC1maWxlXCIgbmctY2xpY2s9XCJpbWdDbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aW1nIGlkPVwie3tuYW1lfX0taW1nXCIgc3JjPVwie3t0aHVtYm5haWx9fVwiPicgK1xuICAgICAgICAgICAgJzxyYW5nZS1zbGlkZXIgbmctc2hvdz1cIiFub3NsaWRlclwiIGlkPVwie3tuYW1lfX0tc2xpZGVyXCIgYXV0b21hdGljPXRydWUgaW5pdGhvb2s9XCJTbGlkZXJJbml0Q0JcIj48L3JhbmdlLXNsaWRlcj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nO1xuICAgIFxuXG4vLyBTZXJ2aWNlIENyZWF0ZSB4Zm9ybSBpbnNlcnQgZmlsZXMgaW4gYW5kIFBvc3QgaXQgdG8gdXJsXG5mdW5jdGlvbiBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCB0aHVtYm5haWxDQikge1xuICAgIHZhciB4bWxSZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICB2YXIgeGZvcm0gID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgXG4gICAgdmFyIE9uTG9hZENCID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICB2YXIgc3RhdHVzID0gdGh1bWJuYWlsQ0IgKHRhcmdldCk7XG4gICAgICAgIC8vaWYgKHN0YXR1cykgeGZvcm0uYXBwZW5kKHNjb3BlLm5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XG4gICAgfTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzbGlkZXIgZHVyaW5nIFVwbG9hZFxuICAgIHhtbFJlcS51cGxvYWQub25wcm9ncmVzcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB2YXIgcHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKGV2ZW50Lmxlbmd0aENvbXB1dGFibGUgPyBldmVudC5sb2FkZWQgKiAxMDAgLyBldmVudC50b3RhbCA6IDApO1xuICAgICAgICBpZiAoc2NvcGUuc2xpZGVyKSBzY29wZS5zbGlkZXIuc2V0VmFsdWUgKHByb2dyZXNzKTtcbiAgICB9O1xuXG4gICAgLy8gVXBsb2FkIGlzIGZpbmlzaCBsZXQncyBub3RpZnkgY29udHJvbGVyIGNhbGxiYWNrXG4gICAgeG1sUmVxLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWxlbS5hZGRDbGFzcyAoXCJzdWNjZXNzXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcImVycm9yXCIpO1xuICAgICAgICB2YXIgcmVzcG9uc2UgPXtcbiAgICAgICAgICAgIHN0YXR1cyA6IHhtbFJlcS5zdGF0dXMsXG4gICAgICAgICAgICBoZWFkZXJzOiB4bWxSZXEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgXG4gICAgICAgIH07XG4gICAgICAgIHNjb3BlLmNhbGxiYWNrIChyZXNwb25zZSk7XG4gICAgfTtcblxuICAgIHhtbFJlcS5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBlbGVtLmFkZENsYXNzIChcImVycm9yXCIpO1xuICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcInN1Y2Nlc3NcIik7XG4gICAgICAgIHZhciByZXNwb25zZSA9e1xuICAgICAgICAgICAgc3RhdHVzIDogeG1sUmVxLnN0YXR1cyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHhtbFJlcS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHJlc3BvbnNlKTtcbiAgICB9O1xuXG4gICAgeG1sUmVxLm9uYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwiZXJyb3JcIik7XG4gICAgICAgIGVsZW0ucmVtb3ZlQ2xhc3MgKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgdmFyIHJlc3BvbnNlID17XG4gICAgICAgICAgICBzdGF0dXMgOiB4bWxSZXEuc3RhdHVzLFxuICAgICAgICAgICAgaGVhZGVyczogeG1sUmVxLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIFxuICAgICAgICB9O1xuICAgICAgICBzY29wZS5jYWxsYmFjayAocmVzcG9uc2UpO1xuICAgIH07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmaWxlID0gZmlsZXNbaV07XG4gICAgICAgIGlmICghZmlsZS50eXBlLm1hdGNoKHNjb3BlLm1pbWV0eXBlKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyAoXCJTZWxlY3RlZCBmaWxlPVwiICsgZmlsZS5uYW1lICsgXCIgc2l6ZT1cIisgZmlsZS5zaXplLzEwMjQgKyBcIiBUeXBlPVwiKyBmaWxlLnR5cGUpO1xuXG4gICAgICAgIC8vIEZpbGUgdG8gdXBsb2FkIGlzIHRvbyBiaWdcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHNjb3BlLm1heHNpemUqMTAyNCkge1xuICAgICAgICAgICAgc2NvcGUudGh1bWJuYWlsID0gc2NvcGUuaXN0b29iaWc7IC8vIHdhcm5pbmcgaWYgaW1hZ2UgcGF0aCBpcyB3cm9uZyBub3RoaW5nIGhhcHBlblxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTsgLy8gd2Ugc2hvcnQtY2lyY3VpdCBBbmd1bGFyIHJlc3luYyBJbWFnZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYW4gdXBsb2FkYWJsZSBmaWxlXG4gICAgICAgIGlmKGlzTmFOKGZpbGUuc2l6ZSkpIHtcbiAgICAgICAgICAgIHNjb3BlLnRodW1ibmFpbCA9IHNjb3BlLmlzbm90dmFsaWQ7IFxuICAgICAgICAgICAgc2NvcGUuJGFwcGx5KCd0aHVtYm5haWwnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNjb3BlLkJhc2VuYW1lPSBmaWxlLm5hbWUuc3BsaXQoJy8nKS5yZXZlcnNlKClbMF07XG4gICAgICAgIHNjb3BlLmltZ0VsZW1bMF0uZmlsZSA9IGZpbGU7XG5cbiAgICAgICAgLy8gSWYgRmlsZSBpcyBhbiBpbWFnZSBsZXQgZGlzcGxheSBpdCBub3dcbiAgICAgICAgaWYgKHRodW1ibmFpbENCKSB7XG4gICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBPbkxvYWRDQjtcbiAgICAgICAgfSBcbiAgICAgICAgLy8gaWYgZXZlcnl0aGluZyBpcyBPSyBsZXQncyBhZGQgZmlsZSB0byB4Zm9ybVxuICAgICAgICB4Zm9ybS5hcHBlbmQoc2NvcGUubmFtZSwgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICB9XG5cblxuICAgIC8vIGV2ZXJ5dGhpbmcgbG9va3MgT0sgbGV0J3MgUG9zdCBpdFxuICAgIHhtbFJlcS5vcGVuKFwiUE9TVFwiLCBwb3N0dXJsICwgdHJ1ZSk7XG4gICAgeG1sUmVxLnNlbmQoeGZvcm0pO1xufVxuXG5hbmd1bGFyLm1vZHVsZSgnVXBsb2FkRmlsZXMnLFsnQXBwQ29uZmlnJywgJ01vZGFsTm90aWZpY2F0aW9uJywgJ1JhbmdlU2xpZGVyJ10pXG5cbi5kaXJlY3RpdmUoJ3VwbG9hZEltYWdlJywgW1wiQXBwQ29uZmlnXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQXBwQ29uZmlnLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHZhciByZWFkZXJDQiA9IGZ1bmN0aW9uICh1cGxvYWQpIHtcbiAgICAgICAgICAgICAgICAvLyBzY29wZS50aHVtYm5haWwgPSB1cGxvYWQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICBzY29wZS5pbWdFbGVtWzBdLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFt1cGxvYWQudGFyZ2V0LnJlc3VsdF0sIHt0eXBlOiBcImltYWdlXCJ9KSk7ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyB0cnVlIGFjdGl2YXRlcyBwb3N0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHBvc3R1cmwgPSBhdHRycy5wb3N0dXJsICsgXCI/dG9rZW49XCIgKyBBcHBDb25maWcuc2Vzc2lvbi50b2tlbjtcbiAgICAgICAgICAgIG5ldyBMb2FkRmlsZVN2YyAoc2NvcGUsIGVsZW0sIHBvc3R1cmwsIGZpbGVzLCByZWFkZXJDQik7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSW5pdGlhbGxpemUgZGVmYXVsdCB2YWx1ZXMgZnJvbSBhdHRyaWJ1dGVzIHZhbHVlc1xuICAgICAgICBzY29wZS5uYW1lPSBhdHRycy5uYW1lIHx8ICdmaWxlJztcbiAgICAgICAgc2NvcGUuY2F0ZWdvcnk9IGF0dHJzLmNhdGVnb3J5ICB8fCAnaW1hZ2UnO1xuICAgICAgICBzY29wZS5taW1ldHlwZT0gKGF0dHJzLmFjY2VwdCB8fCAnaW1hZ2UnKSArICcvKic7XG4gICAgICAgIHNjb3BlLm1heHNpemU9IGF0dHJzLm1heHNpemUgfHwgMTAwOyAvLyBkZWZhdWx0IG1heCBzaXplIDEwMEtCXG4gICAgICAgIHNjb3BlLnJlZ2V4cCA9IG5ldyBSZWdFeHAgKGF0dHJzLmFjY2VwdCsgJy4qJywnaScpO1xuXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLnRodW1ibmFpbD0gQXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy50aHVtYm5haWw7XG4gICAgICAgIGVsc2UgIHNjb3BlLnRodW1ibmFpbD1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ3R1eC1iemgucG5nJztcbiAgICAgICAgXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLmlzbm90dmFsaWQ9IEFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXNub3R2YWxpZDtcbiAgICAgICAgZWxzZSAgc2NvcGUuaXNub3R2YWxpZD1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ2lzbm90dmFsaWQucG5nJztcblxuICAgICAgICBpZiAoYXR0cnMuaXN0b29iaWcpIHNjb3BlLmlzdG9vYmlnPSBBcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLmlzdG9vYmlnO1xuICAgICAgICBlbHNlICBzY29wZS5pc3Rvb2JpZz1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ2lzdG9vYmlnLnBuZyc7XG4gICAgICAgIHNjb3BlLm5vc2xpZGVyID0gYXR0cnMubm9zbGlkZXIgfHwgZmFsc2U7XG5cbiAgICAgICAgaWYgKCFhdHRycy5wb3N0dXJsKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdmaWxlLXVwbG9hZCAlcyBwb3N0dXJsPS9hcGkveHh4eC94eHh4IHJlcXVpcmVkJywgc2NvcGUuYXR0cnMpOyAgICAgICAgICAgIFxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgY2FsbGJhY2sgOiAnPSdcbiAgICAgICAgfVxuICAgIH07XG59XSlcbiAgICBcbi5kaXJlY3RpdmUoJ3VwbG9hZEF1ZGlvJywgW1wiQXBwQ29uZmlnXCIsIFwiSlFlbXVcIiwgXCJOb3RpZmljYXRpb25cIiwgZnVuY3Rpb24oQXBwQ29uZmlnLCAgSlFlbXUsIE5vdGlmaWNhdGlvbikge1xuICAgIGZ1bmN0aW9uIG15bWV0aG9kcyhzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgXG4gICAgICAgIC8vIGdldCB3aWRnZXQgaW1hZ2UgaGFuZGxlIGZyb20gdGVtcGxhdGVcbiAgICAgICAgc2NvcGUuaW1nRWxlbSAgICA9IGVsZW0uZmluZCgnaW1nJyk7XG4gICAgICAgIHNjb3BlLmlucHV0RWxlbSAgPSBlbGVtLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBJbWFnZSB3YXMgY2tpY2sgbGV0J3Mgc2ltdWxhdGUgYW4gaW5wdXQgKGZpbGUpIGNsaWNrXG4gICAgICAgIHNjb3BlLmltZ0NsaWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzY29wZS5pbnB1dEVsZW1bMF0uY2xpY2soKTsgLy8gV2FybmluZyBBbmd1bGFyIFRyaWdnZXJFdmVudCBkb2VzIG5vdCB3b3JrISEhXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBTbGlkZXIgY29udHJvbCBoYW5kbGUgcmVnaXN0cmF0aW9uIGFmdGVyIGNyZWF0aW9uXG4gICAgICAgIHNjb3BlLlNsaWRlckluaXRDQj1mdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgIHNjb3BlLnNsaWRlcj0gc2xpZGVyOyBcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIFVwbG9hZCBpcyBkZWxlZ2F0ZWQgdG8gYSBzaGFyZWQgZnVuY3Rpb25cbiAgICAgICAgc2NvcGUuVXBMb2FkRmlsZT1mdW5jdGlvbiAoZmlsZXMpIHtcbiAgICAgICAgICAgIHZhciBwb3N0dXJsID0gYXR0cnMucG9zdHVybCArIFwiP3Rva2VuPVwiICsgQXBwQ29uZmlnLnNlc3Npb24udG9rZW47XG4gICAgICAgICAgICBuZXcgTG9hZEZpbGVTdmMgKHNjb3BlLCBlbGVtLCBwb3N0dXJsLCBmaWxlcywgZmFsc2UpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEluaXRpYWxsaXplIGRlZmF1bHQgdmFsdWVzIGZyb20gYXR0cmlidXRlcyB2YWx1ZXNcbiAgICAgICAgc2NvcGUubmFtZT0gYXR0cnMubmFtZSB8fCAnYXVkaW8nO1xuICAgICAgICBzY29wZS5jYXRlZ29yeT0gYXR0cnMuY2F0ZWdvcnkgIHx8ICdhdWRpbyc7XG4gICAgICAgIHNjb3BlLm1pbWV0eXBlPSAoYXR0cnMuYWNjZXB0IHx8ICdhdWRpbycpICsgJy8qJztcbiAgICAgICAgc2NvcGUubWF4c2l6ZT0gYXR0cnMubWF4c2l6ZSB8fCAxMDAwMDsgLy8gZGVmYXVsdCBtYXggc2l6ZSAxME1CXG4gICAgICAgIHNjb3BlLnJlZ2V4cCA9IG5ldyBSZWdFeHAgKGF0dHJzLmFjY2VwdCsgJy4qJywnaScpO1xuXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLnRodW1ibmFpbD0gQXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy50aHVtYm5haWw7XG4gICAgICAgIGVsc2UgIHNjb3BlLnRodW1ibmFpbD1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ3VwbG9hZC1tdXNpYy5wbmcnO1xuICAgICAgICBcbiAgICAgICAgaWYgKGF0dHJzLnRodW1ibmFpbCkgc2NvcGUuaXNub3R2YWxpZD0gQXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICBhdHRycy5pc25vdHZhbGlkO1xuICAgICAgICBlbHNlICBzY29wZS5pc25vdHZhbGlkPUFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuXG4gICAgICAgIGlmIChhdHRycy5pc3Rvb2JpZykgc2NvcGUuaXN0b29iaWc9IEFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXN0b29iaWc7XG4gICAgICAgIGVsc2UgIHNjb3BlLmlzdG9vYmlnPUFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXN0b29iaWcucG5nJztcbiAgICAgICAgc2NvcGUubm9zbGlkZXIgPSBhdHRycy5ub3NsaWRlciB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoIWF0dHJzLnBvc3R1cmwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ZpbGUtdXBsb2FkICVzIHBvc3R1cmw9L2FwaS94eHh4L3h4eHggcmVxdWlyZWQnLCBzY29wZS5hdHRycyk7ICAgICAgICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICAgIHRlbXBsYXRlOiB0bXBsLFxuICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICBjYWxsYmFjayA6ICc9J1xuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn1dKVxuXG4uZGlyZWN0aXZlKCd1cGxvYWRBcHBsaScsIFtcIkFwcENvbmZpZ1wiLCBcIkpRZW11XCIsIFwiTm90aWZpY2F0aW9uXCIsIGZ1bmN0aW9uKEFwcENvbmZpZywgIEpRZW11LCBOb3RpZmljYXRpb24pIHtcbiAgICBmdW5jdGlvbiBteW1ldGhvZHMoc2NvcGUsIGVsZW0sIGF0dHJzKSB7XG4gICAgICAgIFxuICAgICAgICAvLyBnZXQgd2lkZ2V0IGltYWdlIGhhbmRsZSBmcm9tIHRlbXBsYXRlXG4gICAgICAgIHNjb3BlLmltZ0VsZW0gICAgPSBlbGVtLmZpbmQoJ2ltZycpO1xuICAgICAgICBzY29wZS5pbnB1dEVsZW0gID0gZWxlbS5maW5kKCdpbnB1dCcpO1xuICAgICAgICBcbiAgICAgICAgLy8gSW1hZ2Ugd2FzIGNraWNrIGxldCdzIHNpbXVsYXRlIGFuIGlucHV0IChmaWxlKSBjbGlja1xuICAgICAgICBzY29wZS5pbWdDbGlja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgc2NvcGUuaW5wdXRFbGVtWzBdLmNsaWNrKCk7IC8vIFdhcm5pbmcgQW5ndWxhciBUcmlnZ2VyRXZlbnQgZG9lcyBub3Qgd29yayEhIVxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgLy8gU2xpZGVyIGNvbnRyb2wgaGFuZGxlIHJlZ2lzdHJhdGlvbiBhZnRlciBjcmVhdGlvblxuICAgICAgICBzY29wZS5TbGlkZXJJbml0Q0I9ZnVuY3Rpb24gKHNsaWRlcikge1xuICAgICAgICAgICBzY29wZS5zbGlkZXI9IHNsaWRlcjsgXG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBVcGxvYWQgaXMgZGVsZWdhdGVkIHRvIGEgc2hhcmVkIGZ1bmN0aW9uXG4gICAgICAgIHNjb3BlLlVwTG9hZEZpbGU9ZnVuY3Rpb24gKGZpbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgdmFyIHJlYWRlckNCID0gZnVuY3Rpb24gKHVwbG9hZCkge1xuICAgICAgICAgICAgICAgIHZhciB6aXBhcHAgPSBuZXcgSlNaaXAodXBsb2FkLnRhcmdldC5yZXN1bHQpO1xuICAgICAgICAgICAgICAgIHZhciB0aHVtYm5haWwgPSB6aXBhcHAuZmlsZShcImFmYS1wa2cvdGh1bWJuYWlsLmpwZ1wiKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpcyB3ZSBoYXZlIGEgdGh1bWJuYWlsIHdpdGhpbiBsb2FkZWQgWmlwZmlsZVxuICAgICAgICAgICAgICAgIGlmICghdGh1bWJuYWlsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIlRoaXMgaXMgbm90IGEgdmFsaWQgQXBwbGljYXRpb24gRnJhbWV3b3JrIEFQUFwiKTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUudGh1bWJuYWlsPUFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAnaXNub3R2YWxpZC5wbmcnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS4kYXBwbHkoJ3RodW1ibmFpbCcpOyAvLyB3ZSBzaG9ydC1jaXJjdWl0IEFuZ3VsYXIgcmVzeW5jIEltYWdlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gZG8gbm90IHBvc3QgemlwIG9uIGJpbmRlclxuICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAgICAgc2NvcGUuaW1nRWxlbVswXS5zcmMgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbdGh1bWJuYWlsLmFzQXJyYXlCdWZmZXIoKV0sIHt0eXBlOiBcImltYWdlXCJ9KSk7ICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIHRydWUgYWN0aXZhdGVzIHBvc3RcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgcG9zdHVybCA9IGF0dHJzLnBvc3R1cmwgKyBcIj90b2tlbj1cIiArIEFwcENvbmZpZy5zZXNzaW9uLnRva2VuO1xuICAgICAgICAgICAgbmV3IExvYWRGaWxlU3ZjIChzY29wZSwgZWxlbSwgcG9zdHVybCwgZmlsZXMsIHJlYWRlckNCKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBJbml0aWFsbGl6ZSBkZWZhdWx0IHZhbHVlcyBmcm9tIGF0dHJpYnV0ZXMgdmFsdWVzXG4gICAgICAgIHNjb3BlLm5hbWU9IGF0dHJzLm5hbWUgfHwgJ2FwcGxpJztcbiAgICAgICAgc2NvcGUuY2F0ZWdvcnk9IGF0dHJzLmNhdGVnb3J5ICB8fCAnYXBwbGknO1xuICAgICAgICBzY29wZS5taW1ldHlwZT0gKGF0dHJzLmFjY2VwdCB8fCAnLnppcCcpO1xuICAgICAgICBzY29wZS5tYXhzaXplPSBhdHRycy5tYXhzaXplIHx8IDEwMDAwMDsgLy8gZGVmYXVsdCBtYXggc2l6ZSAxMDBNQlxuICAgICAgICBzY29wZS5yZWdleHAgPSBuZXcgUmVnRXhwIChhdHRycy5hY2NlcHQrICcuKicsJ2knKTtcblxuICAgICAgICBpZiAoYXR0cnMudGh1bWJuYWlsKSBzY29wZS50aHVtYm5haWw9IEFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMudGh1bWJuYWlsO1xuICAgICAgICBlbHNlICBzY29wZS50aHVtYm5haWw9QXBwQ29uZmlnLnBhdGhzW3Njb3BlLmNhdGVnb3J5XSArICd1cGxvYWQtYXBwbGkucG5nJztcbiAgICAgICAgXG4gICAgICAgIGlmIChhdHRycy50aHVtYm5haWwpIHNjb3BlLmlzbm90dmFsaWQ9IEFwcENvbmZpZy5wYXRoc1tzY29wZS5jYXRlZ29yeV0gKyAgYXR0cnMuaXNub3R2YWxpZDtcbiAgICAgICAgZWxzZSAgc2NvcGUuaXNub3R2YWxpZD1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ2lzbm90dmFsaWQucG5nJztcblxuICAgICAgICBpZiAoYXR0cnMuaXN0b29iaWcpIHNjb3BlLmlzdG9vYmlnPSBBcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgIGF0dHJzLmlzdG9vYmlnO1xuICAgICAgICBlbHNlICBzY29wZS5pc3Rvb2JpZz1BcHBDb25maWcucGF0aHNbc2NvcGUuY2F0ZWdvcnldICsgJ2lzdG9vYmlnLnBuZyc7XG4gICAgICAgIHNjb3BlLm5vc2xpZGVyID0gYXR0cnMubm9zbGlkZXIgfHwgZmFsc2U7XG5cbiAgICAgICAgaWYgKCFhdHRycy5wb3N0dXJsKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdmaWxlLXVwbG9hZCAlcyBwb3N0dXJsPS9hcGkveHh4eC94eHh4IHJlcXVpcmVkJywgc2NvcGUuYXR0cnMpOyAgICAgICAgICAgIFxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgY2FsbGJhY2sgOiAnPSdcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59XSk7XG5cbmNvbnNvbGUubG9nIChcIlVwbG9hZEZpbGUgTG9hZGVkXCIpO1xufSkoKTtcbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICogXG4gKiBCdWdzOiBJbnB1dCB3aXRoIENhbGxiYWNrIFNIT1VMRCBCRSBnZXQgJ3JlcXVpcmVkJyBjbGFzc1xuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRtcGwgPSAnPGRpdiAgbmctY2xpY2s9XCJjbGlja2VkKClcIj4nICtcbiAgICAgICAgICAgICc8aSBjbGFzcz1cInt7aWNvbn19XCI+PC9pPicgK1xuICAgICAgICAgICAgJzxzcGFuPnt7bGFiZWx9fTwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nO1xuXG4gICAgYW5ndWxhci5tb2R1bGUoJ1N1Ym1pdEJ1dHRvbicsIFtdKVxuICAgICAgICAgICAgLmRpcmVjdGl2ZSgnc3VibWl0QnV0dG9uJywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGFqdXN0IGljb24gb3IgdXNlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuaWNvbiA9IGF0dHJzLmljb24gfHwgJ2ZpLWZvb3QnO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5sYWJlbCA9IGF0dHJzLmxhYmVsIHx8ICdOZXh0JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCBsYWJlbCBhcyBjbGFzc1xuICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChzY29wZS5sYWJlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGNsaWNrZWQgaW4gaW1wb3J0ZWQgYW5kIHdoZW4gdGVtcGxhdGUgaXMgY2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aWxsIGNhbGwgY2xpY2tlZCBtZXRob2QgcGFzc2VkIGluIHBhcmFtLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogbXltZXRob2RzLFxuICAgICAgICAgICAgICAgICAgICBzY29wZToge2NsaWNrZWQgOiAnPSd9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xufSkoKTtcbiIsIi8qIFxuICogQ29weXJpZ2h0IChDKSAyMDE1IFwiSW9ULmJ6aFwiXG4gKiBBdXRob3IgXCJGdWx1cCBBciBGb2xsXCJcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICogXG4gKiBCdWdzOiBJbnB1dCB3aXRoIENhbGxiYWNrIFNIT1VMRCBCRSBnZXQgJ3JlcXVpcmVkJyBjbGFzc1xuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIHRtcGxBcHBsaSA9ICc8ZGl2ICBuZy1jbGljaz1cImNsaWNrZWQoKVwiPicgK1xuICAgICAgICAgICAgJzxpbWcgbmctc3JjPVwie3tpY29ufX1cIj4nICtcbiAgICAgICAgICAgICc8c3Bhbj57e2xhYmVsfX08L3NwYW4+JyArXG4gICAgICAgICAgICAnPC9kaXY+JztcbiAgICBcbiAgICB2YXIgdG1wbE1vZGFsID0gXG4gICAgICAgICAgICAnPGIgY2xhc3M9XCJjbG9zZS1idXR0b25cIiBuZy1jbGljaz1cImNsb3NlKClcIj7DlzwvYj4nICtcbiAgICAgICAgICAgICc8aW1nIG5nLXNyYz1cInt7aWNvbn19XCI+JyArXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtb2RhbC10ZXh0XCI+QXBwbGljYXRpb24gPGI+e3tsYWJlbH19PC9iPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8dWwgY2xhc3M9XCJ2ZXJ0aWNhbCBpY29uLWxlZnQgcHJpbWFyeSBtZW51LWJhciBhcHBsaS1tZW51LXN0YXJ0XCI+JyArXG4gICAgICAgICAgICAnPGxpIGNsYXNzPXN0YXJ0LXt7cnVuc3RhdHVzfX0+PGEgbmctY2xpY2s9YWN0aW9uKFwic3RhcnRcIik+PGkgY2xhc3M9XCJmaS1jaGVja1wiPiBTdGFydDwvaT48L2E+PC9saT4nICtcbiAgICAgICAgICAgICc8bGkgY2xhc3M9c3RvcC17e3J1bnN0YXR1c319PjxhIG5nLWNsaWNrPWFjdGlvbihcInN0b3BcIik+PGkgY2xhc3M9XCJmaS14XCI+IFN0b3A8L2k+PC9hPjwvbGk+JyArXG4gICAgICAgICAgICAnPGxpPjxhIG5nLWNsaWNrPWFjdGlvbihcImluZm9cIik+PGkgY2xhc3M9XCJmaS1pbmZvXCI+IEluZm88L2k+PC9hPjwvbGk+JyArXG4gICAgICAgICAgICAnPGxpIGNsYXNzPXN0YXJ0LXt7cnVuc3RhdHVzfX0+PGEgbmctY2xpY2s9YWN0aW9uKFwidW5pbnN0YWxsXCIpPjxpIGNsYXNzPVwiZmkteFwiPiBVbmluc3RhbGw8L2k+PC9hPjwvbGk+JyArXG4gICAgICAgICAgICAnPC91bD4nICtcbiAgICAgICAgICAgICcnO1xuICAgIFxuICAgIHZhciB0bXBsRGV0YWlsID0gXG4gICAgICAgICAgICAnPGIgY2xhc3M9XCJjbG9zZS1idXR0b25cIiBuZy1jbGljaz1cImNsb3NlKClcIj7DlzwvYj4nICtcbiAgICAgICAgICAgICc8aW1nIG5nLXNyYz1cInt7aWNvbn19XCI+JyArXG4gICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJtb2RhbC10ZXh0XCI+QXBwbGljYXRpb24gPGI+e3tsYWJlbH19PC9iPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICc8dWwgY2xhc3M9XCJ2ZXJ0aWNhbCBpY29uLWxlZnQgYXBwbGktbWVudS1pbmZvXCI+JyArXG4gICAgICAgICAgICAnPGxpPjxpIGNsYXNzPVwiZmktcGFwZXJjbGlwXCI+IE5hbWUgOiB7e2RldGFpbC5uYW1lfX0gPC9pPjwvbGk+JyArXG4gICAgICAgICAgICAnPGxpPjxpIGNsYXNzPVwiZmktaW5mb1wiPiBEZXNjcmlwdGlvbiB7e2RldGFpbC5kZXNjcmlwdGlvbn19PC9pPjwvbGk+JyArXG4gICAgICAgICAgICAnPGxpPjxpIGNsYXNzPVwiZmktdG9yc29cIj4gQXV0aG9yIDoge3tkZXRhaWwuYXV0aG9yfX08L2k+PC9saT4nICtcbiAgICAgICAgICAgICc8L3VsPicgK1xuICAgICAgICAgICAgJyc7XG5cbiAgICBhbmd1bGFyLm1vZHVsZSgnQXBwbGlCdXR0b24nLCBbXSlcbiAgICAgICAgICAgIC5kaXJlY3RpdmUoJ2FwcGxpQnV0dG9uJywgW1wiQXBwQ29uZmlnXCIsIFwiQXBwQ2FsbFwiLCBcIk1vZGFsRmFjdG9yeVwiLCBcIk5vdGlmaWNhdGlvblwiLCBcIiR0aW1lb3V0XCIsIFwiJHdpbmRvd1wiLCBcIiRsb2NhdGlvblwiLCBcInVybHF1ZXJ5XCIsIGZ1bmN0aW9uIChBcHBDb25maWcsIEFwcENhbGwsIE1vZGFsRmFjdG9yeSwgTm90aWZpY2F0aW9uLCAkdGltZW91dCwgJHdpbmRvdywgJGxvY2F0aW9uLCB1cmxxdWVyeSkge1xuXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gbXltZXRob2RzKHNjb3BlLCBlbGVtLCBhdHRycykge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5ydW5zdGF0dXMgPSBcInN0b3BcIjtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUucnVubW9kZSAgID0gdXJscXVlcnkucnVubW9kZSB8fCBcImF1dG9cIjtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuY2xpY2tlZCA9IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5vdGlmeUVycm9yID0gZnVuY3Rpb24oYWN0aW9uLCByZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbi5lcnJvciAoe21lc3NhZ2U6IFwiRmFpbCAvYXBpL2FmbS1tYWluXCIgKyBhY3Rpb24gKyBcIj1cIiArIHNjb3BlLmxhYmVsICsgXCIgUnVuSUQ9XCIrIHNjb3BlLmFwcElELCBkZWxheTogNTAwMH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW0uYWRkQ2xhc3MgKFwiZmFpbFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcInN1Y2Nlc3NcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuY2FsbGJhY2sgKHNjb3BlLmFwcElELCBhY3Rpb24sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBub3RpZnlTdWNjZXNzID0gZnVuY3Rpb24gKGFjdGlvbiwgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtLnJlbW92ZUNsYXNzIChcImZhaWxcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUucnVuSUQgPSByZXNwb25zZS5kYXRhLnJlc3BvbnNlLnJ1bmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmNhbGxiYWNrIChzY29wZS5hcHBJRCwgYWN0aW9uLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xvc2VNb2RBcHAgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5tb2RBcHAuZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aW1lb3V0IChmdW5jdGlvbigpIHtzY29wZS5tb2RBcHAuZGVzdHJveSgpO30sIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlTW9kSW5mbyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZEluZm8uZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aW1lb3V0IChmdW5jdGlvbigpIHtzY29wZS5tb2RJbmZvLmRlc3Ryb3koKTt9LCAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhY3Rpb25Nb2RhbCA9IGZ1bmN0aW9uKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIk1vZGFsIEFjdGlvbj0lc1wiLCBhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ydW5zdGF0dXMgIT09IFwic3RvcFwiKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBDYWxsLmdldCAoXCJhZm0tbWFpblwiLCBcInN0YXJ0XCIsIHtpZDogc2NvcGUuYXBwSUQsIG1vZGU6IHNjb3BlLnJ1bm1vZGV9LCBmdW5jdGlvbihyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCB8fCByZXNwb25zZS5kYXRhLmp0eXBlICE9PSBcImFmYi1yZXBseVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeUVycm9yIChcInN0YXJ0XCIsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5ydW5zdGF0dXM9XCJzdGFydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVN1Y2Nlc3MgKGFjdGlvbiwgcmVzcG9uc2UpO1xuXHRcdFx0XHRcdGlmKHJlc3BvbnNlLmRhdGEucmVzcG9uc2UudXJpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS53aW5hcHA9ICR3aW5kb3cub3BlbihyZXNwb25zZS5kYXRhLnJlc3BvbnNlLnVyaS5yZXBsYWNlKFwiJWhcIiwgJGxvY2F0aW9uLmhvc3QoKSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzdG9wXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUucnVuc3RhdHVzICE9PSBcInN0YXJ0XCIpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwQ2FsbC5nZXQgKFwiYWZtLW1haW5cIiwgXCJ0ZXJtaW5hdGVcIiwge3J1bmlkOiBzY29wZS5ydW5JRH0sIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwIHx8IHJlc3BvbnNlLmRhdGEuanR5cGUgIT09IFwiYWZiLXJlcGx5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RXJyb3IgKFwic3RvcFwiLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUucnVuc3RhdHVzPVwic3RvcFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGEgcmVtb3RlIHdpbmRvdyBhcHAgd2FzIG9wZW4gbGV0J3MgY2xvc2UgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUud2luYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cgKFwiQ2xvc2luZyBBcHBsaWNhdGlvbiBXaW5kb3cgbGFiZWw9JXMgaWQ9JXNcIiwgc2NvcGUubGFiZWwsIHNjb3BlLmFwcElEKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS53aW5hcHAuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS53aW5hcHA9ZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVN1Y2Nlc3MgKGFjdGlvbiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImluZm9cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcENhbGwuZ2V0IChcImFmbS1tYWluXCIsIFwiZGV0YWlsXCIsIHtpZDogc2NvcGUuYXBwSUR9LCBmdW5jdGlvbihyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCB8fCByZXNwb25zZS5kYXRhLmp0eXBlICE9PSBcImFmYi1yZXBseVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeUVycm9yIChcImRldGFpbFwiLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlIGh0dHA6Ly9mb3VuZGF0aW9uLnp1cmIuY29tL2FwcHMvZG9jcy8jIS9hbmd1bGFyLW1vZHVsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25JbjogJ3NsaWRlSW5Gcm9tVG9wJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFNjb3BlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAgIDogY2xvc2VNb2RJbmZvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiAgICA6IHNjb3BlLmljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCAgIDogc2NvcGUuYXBwSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgIDogcmVzcG9uc2UuZGF0YS5yZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0ZW1wbGF0ZSA6IHRtcGxEZXRhaWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQb3B1cCBNb2RhbCB0byByZW5kZXIgYXBwbGljYXRpb24gZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZEluZm8gPSBuZXcgTW9kYWxGYWN0b3J5KGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUubW9kSW5mby5hY3RpdmF0ZSAoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidW5pbnN0YWxsXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUucnVuc3RhdHVzICE9PSBcInN0b3BcIikgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwQ2FsbC5nZXQgKFwiYWZtLW1haW5cIiwgXCJ1bmluc3RhbGxcIiwge2lkOiBzY29wZS5hcHBJRH0sIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gMjAwIHx8IHJlc3BvbnNlLmRhdGEuanR5cGUgIT09IFwiYWZiLXJlcGx5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5RXJyb3IgKFwidW5pbnN0YWxsXCIsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlTdWNjZXNzIChhY3Rpb24sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nIChcIkFjdGlvbk1vZGFsIHVua25vd24gYWN0aW9uPVslc11cIiwgYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZU1vZEFwcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNlIGh0dHA6Ly9mb3VuZGF0aW9uLnp1cmIuY29tL2FwcHMvZG9jcy8jIS9hbmd1bGFyLW1vZHVsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uSW46ICdzbGlkZUluRnJvbVRvcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFNjb3BlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiAgIDogYWN0aW9uTW9kYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnN0YXR1czogc2NvcGUucnVuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSAgICA6IGNsb3NlTW9kQXBwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uICAgICA6IHNjb3BlLmljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsICAgIDogc2NvcGUubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0ZW1wbGF0ZSAgOiB0bXBsTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07IFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUG9wdXAgTW9kYWwgdG8gcmVuZGVyIGFwcGxpY2F0aW9uIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZEFwcCA9IG5ldyBNb2RhbEZhY3RvcnkoY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLm1vZEFwcC5hY3RpdmF0ZSAoKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBleHRyYWN0IGFwcGxpY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gQXBwSUQrU3RvcmVcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzLmhhbmRsZSAmJiBzY29wZS5zdG9yZSBbYXR0cnMuaGFuZGxlXS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IEFwcENvbmZpZy5wYXRocy5pY29ucyArIGF0dHJzLmhhbmRsZTsgLy9zY29wZS5zdG9yZSBbYXR0cnMuaGFuZGxlXS5uYW1lLnRvTG93ZXJDYXNlKCkgKyAnLWljby5wbmcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUubGFiZWwgPSBzY29wZS5zdG9yZSBbYXR0cnMuaGFuZGxlXS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuYXBwSUQ9IGF0dHJzLmhhbmRsZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5pY29uICA9IEFwcENvbmZpZy5wYXRocy5pY29ucyArICd3M2MtaWNvLnBuZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUubGFiZWwgPSBhdHRycy5oYW5kbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZCBsYWJlbCBhcyBjbGFzc1xuICAgICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzIChzY29wZS5sYWJlbC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IGNsaWNrZWQgaW4gaW1wb3J0ZWQgYW5kIHdoZW4gdGVtcGxhdGUgaXMgY2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICAvLyBpdCB3aWxsIGNhbGwgY2xpY2tlZCBtZXRob2QgcGFzc2VkIGluIHBhcmFtLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdG1wbEFwcGxpLFxuICAgICAgICAgICAgICAgICAgICBsaW5rOiBteW1ldGhvZHMsXG4gICAgICAgICAgICAgICAgICAgIHNjb3BlOiB7Y2FsbGJhY2s6ICc9Jywgc3RvcmU6ICc9J31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfV0pO1xufSkoKTtcbiIsIihmdW5jdGlvbigpIHthbmd1bGFyLm1vZHVsZSgnQUZCY2xpZW50JykucnVuKFsnJHRlbXBsYXRlQ2FjaGUnLCBmdW5jdGlvbigkdGVtcGxhdGVDYWNoZSkgeyR0ZW1wbGF0ZUNhY2hlLnB1dCgncGFnZXMvU2FtcGxlUG9zdC9TYW1wbGVQb3N0Lmh0bWwnLFxuICAgICc8aDE+PGltZyBjbGFzcz1cImxvZ29cIiBzcmM9XCJpbWFnZXMvbG9nby90cmlza2VsX2lvdF9iemh4MjUwLnBuZ1wiIGFsdD1cIklvVC5iemggTG9nb1wiIHN0eWxlPVwiaGVpZ2h0OjE1MHB4XCI+IFBvc3QgRmlsZSBVcGxvYWQ8L2gxPjxkaXYgY2xhc3M9XCJzYW1wbGUtYm94IGJveC1jb250ZW50XCI+PHVwbG9hZC1pbWFnZSBjYXRlZ29yeT1cImF2YXRhclwiIHRodW1ibmFpbD1cInR1eC12aXNpdG9yLnBuZ1wiIG1heHNpemU9XCIxMDBcIiBwb3N0dXJsPVwiL2FwaS9wb3N0L3VwbG9hZC1pbWFnZVwiIGNhbGxiYWNrPVwiY3RybC5GaWxlVXBsb2FkZWRcIiBhY2NlcHQ9XCJpbWFnZVwiIHRpdGxlPVwiQ2hhbmdlIHlvdXIgQXZhdGFyXCI+PC91cGxvYWQtaW1hZ2U+PC9kaXY+PGxpbmstYnV0dG9uIGhyZWY9XCJob21lXCIgaWNvbj1cImZpLWhvbWVcIiBsYWJlbD1cImhvbWVcIj48L2xpbmstYnV0dG9uPicpO31dKTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKSB7YW5ndWxhci5tb2R1bGUoJ0FGQmNsaWVudCcpLnJ1bihbJyR0ZW1wbGF0ZUNhY2hlJywgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHskdGVtcGxhdGVDYWNoZS5wdXQoJ3BhZ2VzL1NhbXBsZUhvbWUvU2FtcGxlSG9tZS5odG1sJyxcbiAgICAnPGgzPjxpbWcgY2xhc3M9XCJsb2dvXCIgc3JjPVwiaW1hZ2VzL2xvZ28vdHJpc2tlbF9pb3RfYnpoeDI1MC5wbmdcIiBhbHQ9XCJJb1QuYnpoIExvZ29cIiBzdHlsZT1cImhlaWdodDoxNTBweFwiPiBBcHAgRnJhbWV3b3JrIEJpbmRlciBTaW1wbGUgQ2xpZW50PC9oMz48dG9rZW4tcmVmcmVzaCBhdXRvbG9nPVwidHJ1ZVwiIGNhbGxiYWNrPVwiY3RybC5Jbml0aWFsaXNlZFwiPjwvdG9rZW4tcmVmcmVzaD48ZGl2IGNsYXNzPVwiYnV0dG9uLWJveCBib3gtY29udGVudFwiPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLmNsYXNzLmNvbm5lY3R9fVwiIGljb249XCJmaS11bmxvY2tcIiBsYWJlbD1cIkNvbm5lY3RcIiBjbGlja2VkPVwiY3RybC5Db25uZWN0Q2xpZW50XCI+PC9zdWJtaXQtYnV0dG9uPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLmNsYXNzLmNoZWNrfX1cIiBpY29uPVwiZmktY2hlY2tib3hcIiBsYWJlbD1cIkNoZWNrXCIgY2xpY2tlZD1cImN0cmwuQ2hlY2tTZXNzaW9uXCI+PC9zdWJtaXQtYnV0dG9uPjxzdWJtaXQtYnV0dG9uIGNsYXNzPVwic2Vzc2lvbi1idXR0b24ge3tjdHJsLmNsYXNzLnJlZnJlc2h9fVwiIGljb249XCJmaS1hcnJvd3MtY29tcHJlc3NcIiBsYWJlbD1cIlJlZnJlc2hcIiBjbGlja2VkPVwiY3RybC5SZWZyZXNoU2Vzc2lvblwiPjwvc3VibWl0LWJ1dHRvbj48c3VibWl0LWJ1dHRvbiBjbGFzcz1cInNlc3Npb24tYnV0dG9uIHt7Y3RybC5jbGFzcy5sb2dvdXR9fVwiIGljb249XCJmaS1sb2NrXCIgbGFiZWw9XCJMb2dvdXRcIiBjbGlja2VkPVwiY3RybC5Mb2dvdXRDbGllbnRcIj48L3N1Ym1pdC1idXR0b24+PC9kaXY+PGRpdiBjbGFzcz1cIm1lc3NhZ2UtYm94IGJveC1jb250ZW50IHZlcnRpY2FsIGdyaWQtZnJhbWVcIj48ZGl2IGNsYXNzPVwicmVzcG9uc2VcIj48c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXEge3tjdHJsLnN0YXR1c319XCI+cmVxPSB7e2N0cmwucmVxdWVzdH19PC9zcGFuPiA8c3BhbiBjbGFzcz1cImdyaWQtY29udGVudCBub3Njcm9sbCByZXMge3tjdHJsLnN0YXR1c319XCI+cmVzPSB7e2N0cmwucmVzcG9uc2V9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJncmlkLWNvbnRlbnQgbm9zY3JvbGwgc3RhdHVzIHt7Y3RybC5zdGF0dXN9fVwiPnN0YXR1cz0ge3tjdHJsLmVycmNvZGV9fTwvc3Bhbj48L2Rpdj48L2Rpdj48bGluay1idXR0b24gaHJlZj1cInNhbXBsZS1wb3N0XCIgaWNvbj1cImZpLWhvbWVcIiBsYWJlbD1cIlNhbXBsZVBvc3RcIj48L2xpbmstYnV0dG9uPicpO31dKTtcbn0pKCk7XG4iLCIvKiBcbiAqIENvcHlyaWdodCAoQykgMjAxNSBcIklvVC5iemhcIlxuICogQXV0aG9yIFwiRnVsdXAgQXIgRm9sbFwiXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICogXG4gKiBVc2FnZTpcbiAqIFxuICogICAvLyBtb3VzZSBldmVudCBwcm9iYWJseSBwb2ludCBvbiBpY29uIGFuZCBub3Qgb24gYnV0dG9uIGRpdlxuICogICAuLi4gbmctY2xpY2s9XCJMb2NrQ2hhbm5lbCgkZXZlbnQpXG4gICAgIHZhciB0YXJnZXQ9IGFuZ3VsYXIuZWxlbWVudChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgdmFyIGJ1dHRvbj0gSlFlbXUuRmluZEluUGFyZW50ICh0YXJnZXQsICdkaXYnKTtcbiAqIFxuICovXG5cblxuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cblxuICAgICAgICAgIFxuICAgIC8vIF9hbGwgbW9kdWxlcyBvbmx5IHJlZmVyZW5jZSBkZXBlbmRlbmNpZXNcbiAgICBhbmd1bGFyLm1vZHVsZSgnSlF1ZXJ5RW11JywgW10pXG5cbiAgICAgICAgICAgIC8vIEZhY3RvcnkgaXMgYSBzaW5nbGV0b24gYW5kIHNoYXJlIGl0cyBjb250ZXh0IHdpdGhpbiBhbGwgaW5zdGFuY2VzLlxuICAgICAgICAgICAgLmZhY3RvcnkoJ0pRZW11JywgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIEZpbmRJblBhcmVudCA9IGZ1bmN0aW9uIChlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaCA9IHNlbGVjdG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChwYXJlbnRbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWFyY2ggPT09IHBhcmVudFswXS50YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gIC8vIEhUTUxEaXZFbGVtZW50IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFyICBGaW5kQnlUYWc9IGZ1bmN0aW9uIChlbGVtZW50LCB0YWcsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWFyY2ggPSBzZWxlY3Rvci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZSAgID0gdGFnLnRvTG93ZXJDYXNlKCkrIFwiTmFtZVwiO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZHJlblswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaCA9PT0gY2hpbGRyZW5bMF1bdHlwZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9ICAvLyBIVE1MRGl2RWxlbWVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFyICBGaW5kQnlDbGFzcz0gZnVuY3Rpb24gKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWFyY2ggPSBzZWxlY3Rvci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBlbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjaGlsZHJlblswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuLmhhc0NsYXNzKHNlYXJjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9ICAvLyBIVE1MRGl2RWxlbWVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB2YXIgbXlNZXRob2RzID0ge1xuICAgICAgICAgICAgICAgICAgICBGaW5kSW5QYXJlbnQ6IEZpbmRJblBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgRmluZEJ5VGFnOiBGaW5kQnlUYWcsXG4gICAgICAgICAgICAgICAgICAgIEZpbmRCeUNsYXNzOiBGaW5kQnlDbGFzc1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbXlNZXRob2RzO1xuICAgICAgICAgICAgfSk7XG5cbn0pKCk7IiwidmFyIGZvdW5kYXRpb25Sb3V0ZXMgPSBbe1wibmFtZVwiOlwiUG9zdFNhbXBsZVwiLFwidXJsXCI6XCIvc2FtcGxlLXBvc3RcIixcImNvbnRyb2xsZXJcIjpcIlNhbXBsZVBvc3RDb250cm9sbGVyIGFzIGN0cmxcIixcImFuaW1hdGlvbkluXCI6XCJzbGlkZUluUmlnaHRcIixcInBhdGhcIjpcInBhZ2VzL1NhbXBsZVBvc3QvU2FtcGxlUG9zdC5odG1sXCJ9LHtcIm5hbWVcIjpcIlNhbXBsZUhvbWVcIixcInVybFwiOlwiL3NhbXBsZS1ob21lXCIsXCJjb250cm9sbGVyXCI6XCJTYW1wbGVIb21lQ29udHJvbGxlciBhcyBjdHJsXCIsXCJhbmltYXRpb25JblwiOlwic2xpZGVJblJpZ2h0XCIsXCJwYXRoXCI6XCJwYWdlcy9TYW1wbGVIb21lL1NhbXBsZUhvbWUuaHRtbFwifV07IFxuIiwiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvLyBfYWxsIG1vZHVsZXMgb25seSByZWZlcmVuY2UgZGVwZW5kZW5jaWVzXG4gICAgYW5ndWxhci5tb2R1bGUoJ0FwcENvbmZpZycsIFtdKVxuXG4gICAgICAgICAgICAvLyBGYWN0b3J5IGlzIGEgc2luZ2xldG9uIGFuZCBzaGFyZSBpdHMgY29udGV4dCB3aXRoaW4gYWxsIGluc3RhbmNlcy5cbiAgICAgICAgICAgIC5mYWN0b3J5KCdBcHBDb25maWcnLCBbXCJ1cmxxdWVyeVwiLCBmdW5jdGlvbiAodXJscXVlcnkpIHtcblxuICAgICAgICAgICAgICAgIHZhciBteUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aHM6IHsgLy8gV2FybmluZyBwYXRocyBzaG91bGQgZW5kIHdpdGggL1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UgOiAnaW1hZ2VzLycsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXI6ICdpbWFnZXMvYXZhdGFycy8nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHNlc3Npb246IHsgLy8gVGhvc2UgZGF0YSBhcmUgdXBkYXRlZCBieSBzZXNzaW9uIHNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbCA6IHVybHF1ZXJ5LnRva2VuIHx8ICcxMjM0NTY3ODknLCAgLy8gdHlwaWNhbCBkZXYgaW5pdGlhbCB0b2tlblxuICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0IDogMzYwMCwgICAgICAgICAvLyB0aW1lb3V0IGlzIHVwZGF0ZWQgY2xpZW50IHNlc3NpbiBjb250ZXh0IGNyZWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIHBpbmdyYXRlOiAzMCwgICAgICAgICAgIC8vIFBpbmcgcmF0ZSB0byBjaGVjayBpZiBzZXJ2ZXIgaXMgc3RpbGwgYWxpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgdXVpZCAgICA6ICcnLCAgICAgICAgICAgLy8gdXVpZCBtYXAgd2l0aCBjb29raWUgb3IgbG9uZyB0ZXJtIHNlc3Npb24gYWNjZXNzIGtleVxuICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiAgIDogJycgICAgICAgICAgICAvLyB3aWxsIGJlIHJldHVybmVkIGZyb20gYXV0aGVudGljYXRpb24gICAgXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG15Q29uZmlnO1xuICAgICAgICAgICAgfV0pXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIEZhY3RvcnkgaXMgYSBzaW5nbGV0b24gYW5kIHNoYXJlIGl0cyBjb250ZXh0IHdpdGhpbiBhbGwgaW5zdGFuY2VzLlxuICAgICAgICAgICAgLmZhY3RvcnkoJ0FwcENhbGwnLCBbXCIkaHR0cFwiLCBcIkFwcENvbmZpZ1wiLCBcIiRsb2dcIiwgZnVuY3Rpb24gKCRodHRwLCBBcHBDb25maWcsICRsb2cpIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YXIgbXlDYWxscyA9IHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0IDogZnVuY3Rpb24ocGx1Z2luLCBhY3Rpb24sIHF1ZXJ5LCBjYnJlc3BvbnNlLCBjYmVycm9yKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvbmVycm9yID0gZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2JlcnJvcikgY2JlcnJvcihyZXNwb25zZS5kYXRhLCByZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjYnJlc3BvbnNlKHJlc3BvbnNlLmRhdGEsIHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2UuY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvbnN1Y2Nlc3MgPWZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhIHx8ICFyZXNwb25zZS5kYXRhLnJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lcnJvciAocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXF1ZXN0PXJlc3BvbnNlLmRhdGEucmVxdWVzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0b2tlbiB3YXMgdXBkYXRlZCBrZWVwIGl0IHdpdGhpbiBhcHBsaWNhdGlvbiBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnRva2VuKSBBcHBDb25maWcuc2Vzc2lvbi50b2tlbiA9IHJlcXVlc3QudG9rZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QudXVpZCkgIEFwcENvbmZpZy5zZXNzaW9uLnV1aWQgID0gcmVxdWVzdC51dWlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnRpbWVvdXQpIEFwcENvbmZpZy5zZXNzaW9uLnRpbWVvdXQgPSByZXF1ZXN0LnRpbWVvdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYnJlc3BvbnNlKHJlc3BvbnNlLmRhdGEsIHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2UuY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFxdWVyeS50b2tlbikgcXVlcnkudG9rZW4gPSBBcHBDb25maWcuc2Vzc2lvbi50b2tlbjsgLy8gYWRkIHRva2VuIHRvIHByb3ZpZGVkIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LnJlcWlkKSBxdWVyeS5yZXFpZCA9IGFjdGlvbjsgLy8gdXNlIGFjdGlvbiBhcyBkZWZhdWx0IHJlcXVlc3RJRFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhhbmRsZT0gJGh0dHAuZ2V0KCcvYXBpLycgKyBwbHVnaW4gKyAnLycgKyBhY3Rpb24gLCB7cGFyYW1zOiBxdWVyeX0pLnRoZW4ob25zdWNjZXNzLCBvbmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbXlDYWxscztcbiAgICAgICAgICAgIH1dKTtcblxufSkoKTsiLCIoZnVuY3Rpb24oKSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgXG4gIGZ1bmN0aW9uICBQYXJzZVF1ZXJ5U3RyaW5nICgpIHtcbiAgICAgIHZhciBxZCA9IHt9O1xuICAgICAgbG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgICAgdmFyIGsgPSBpdGVtLnNwbGl0KFwiPVwiKVswXTtcbiAgICAgICAgICB2YXIgdiA9IGRlY29kZVVSSUNvbXBvbmVudChpdGVtLnNwbGl0KFwiPVwiKVsxXSk7IFxuICAgICAgICAgIGlmIChrIGluIHFkKSBxZFtrXS5wdXNoKHYpOyBlbHNlIHFkW2tdID0gW3ZdO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcWQ7XG4gIH1cblxuICBhbmd1bGFyLm1vZHVsZSgnQUZCY2xpZW50JywgWyAvLyBXYXJuaW5nOiBBcHBuYW1lIHNob3VsZCBmaXQgd2l0aCBndWxwZmlsZS5qcyAmIGluZGV4Lmh0bWxcbiAgICAndWkucm91dGVyJyxcbiAgICAnbmdBbmltYXRlJyxcblxuICAgIC8vZm91bmRhdGlvblxuICAgICdmb3VuZGF0aW9uJyxcbiAgICAnZm91bmRhdGlvbi5keW5hbWljUm91dGluZycsXG4gICAgJ2ZvdW5kYXRpb24uZHluYW1pY1JvdXRpbmcuYW5pbWF0aW9ucycsXG4gICAgXG4gICAgLy8gZXh0ZXJuYWwgY29tcG9uZW50c1xuICAgICd1aS1ub3RpZmljYXRpb24nLFxuICAgIFxuICAgIC8vIEFwcGxpY2F0aW9uIENvbXBvbmVudHNcbiAgICAnQXBwQ29uZmlnJyxcbiAgICAnSlF1ZXJ5RW11JyxcbiAgICAnU2FtcGxlSG9tZU1vZHVsZScsXG4gICAgJ1VwbG9hZEZpbGVzJyxcbiAgICAnTGlua0J1dHRvbicsXG4gICAgJ1Rva2VuUmVmcmVzaCcsXG4gICAgJ1JhbmdlU2xpZGVyJyxcbiAgICAnTW9kYWxOb3RpZmljYXRpb24nXG4gIF0pXG4gICAgLnZhbHVlICgndXJscXVlcnknLCBQYXJzZVF1ZXJ5U3RyaW5nKCkpXG4gICAgLmNvbmZpZyhjb25maWcpXG4gICAgLnJ1bihydW4pXG4gIDtcblxuICBjb25maWcuJGluamVjdCA9IFsnJHVybFJvdXRlclByb3ZpZGVyJywgJyRsb2NhdGlvblByb3ZpZGVyJ107XG4gIFxuICBmdW5jdGlvbiBjb25maWcoJHVybFByb3ZpZGVyLCAkbG9jYXRpb25Qcm92aWRlciwgQXBwQ29uZmlnKSB7XG4gICAgJHVybFByb3ZpZGVyLm90aGVyd2lzZSgnL3NhbXBsZS1ob21lJyk7XG5cbiAgICAvLyBodHRwczovL2RvY3MuYW5ndWxhcmpzLm9yZy9lcnJvci8kbG9jYXRpb24vbm9iYXNlXG4gICAgJGxvY2F0aW9uUHJvdmlkZXIuaHRtbDVNb2RlKHRydWUpLmhhc2hQcmVmaXgoJyEnKTtcbiAgICBcbiAgfVxuXG4gIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICBGYXN0Q2xpY2suYXR0YWNoKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbmNvbnNvbGUubG9nIChcIm9wYT1BRkJjbGllbnQgTG9hZGVkXCIpO1xufSkoKTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
diff --git a/afb-client/dist.prod/opa/images/avatars/istoobig.jpg b/afb-client/dist.prod/opa/images/avatars/istoobig.jpg
new file mode 100644
index 0000000..da0f255
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/avatars/istoobig.jpg
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/avatars/istoobig.png b/afb-client/dist.prod/opa/images/avatars/istoobig.png
new file mode 100644
index 0000000..c3b794b
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/avatars/istoobig.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/avatars/tux-admin.png b/afb-client/dist.prod/opa/images/avatars/tux-admin.png
new file mode 100644
index 0000000..6ad950f
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/avatars/tux-admin.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/avatars/tux-bzh.png b/afb-client/dist.prod/opa/images/avatars/tux-bzh.png
new file mode 100644
index 0000000..e2cd262
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/avatars/tux-bzh.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/avatars/tux-visitor.png b/afb-client/dist.prod/opa/images/avatars/tux-visitor.png
new file mode 100644
index 0000000..0569822
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/avatars/tux-visitor.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/logo/logo_iot_bzh.svg b/afb-client/dist.prod/opa/images/logo/logo_iot_bzh.svg
new file mode 100644
index 0000000..e37a9f3
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/logo_iot_bzh.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="597.394" height="162.542"><defs><filter color-interpolation-filters="sRGB" id="a"><feFlood flood-opacity=".475" flood-color="#000" result="flood"/><feComposite in2="SourceGraphic" in="flood" operator="in" result="composite1"/><feGaussianBlur stdDeviation="5" result="blur"/><feOffset dx="8" dy="8" result="offset"/><feComposite in2="offset" in="SourceGraphic" result="composite2"/></filter></defs><g transform="translate(12.983 -409.02)" filter="url(#a)"><text y="519.507" x="27.887" style="line-height:125%" font-size="97.099" font-weight="400" letter-spacing="0" word-spacing="0" font-family="Sans"><tspan style="text-align:start;line-height:125%;-inkscape-font-specification:FreeEuro Bold" y="519.507" x="27.887" font-weight="700" font-family="FreeEuro">IOT</tspan></text><path d="M296.73 473.234c28.217 16.29 28.756 58.737.997 78.538-7.677 5.476-8.78 4.91-1.995-1.024 17.473-15.284 17.985-42.178 1.085-57.098l-3.913-3.454.723-3.71c.398-2.04.6-5.732.45-8.2-.34-5.548.157-6.493 2.653-5.052zm-64.766 11.403c7.06-7.742 18.647-14.16 29.04-16.09l6.876-1.274.874 2.897c.48 1.593.674 5.225.43 8.07l-.444 5.17-6.14 1.693c-10.91 3.007-20.4 10.86-25.452 21.06l-2.416 4.88-2.743-.413c-5.144-.773-12.73-3.976-12.792-5.4-.092-2.135 8.346-15.747 12.766-20.593zm33.206 36.395c-28.217 16.29-65.246-4.466-68.515-38.406-.904-9.386.137-10.058 1.885-1.216 4.5 22.775 27.534 36.664 48.905 29.49l4.948-1.663 2.852 2.482c1.568 1.364 4.663 3.384 6.878 4.488 4.972 2.48 5.543 3.383 3.047 4.824zm22.507-61.79c3.175 9.985 2.94 23.228-.587 33.193l-2.333 6.592-2.946-.692c-1.62-.38-4.86-2.028-7.202-3.662l-4.257-2.97 1.605-6.162c2.852-10.953.797-23.097-5.512-32.572l-3.017-4.533 1.728-2.17c3.24-4.066 9.81-9.035 11.072-8.376 1.895.986 9.464 15.1 11.45 21.35zm-48.802 10.314c0-32.582 36.49-54.272 67.518-40.133 8.58 3.91 8.642 5.148.11 2.24-21.973-7.49-45.52 5.514-49.99 27.61l-1.035 5.115-3.575 1.23c-1.967.675-5.263 2.345-7.327 3.71-4.634 3.067-5.7 3.11-5.7.228zm42.258 50.387c-10.235-2.244-21.587-9.068-28.453-17.105l-4.542-5.317 2.072-2.204c1.14-1.213 4.187-3.196 6.773-4.407l4.7-2.203 4.535 4.47c8.06 7.947 19.606 12.24 30.965 11.514l5.434-.347 1.015 2.582c1.9 4.84 2.92 13.013 1.72 13.778-1.804 1.147-17.81.644-24.22-.76z" fill="#5a2ca0"/><text y="519.507" x="317.958" style="line-height:125%" font-size="97.099" font-weight="400" letter-spacing="0" word-spacing="0" font-family="Sans"><tspan style="text-align:start;line-height:125%;-inkscape-font-specification:FreeEuro Bold" y="519.507" x="317.958" font-weight="700" font-family="FreeEuro">BZH</tspan></text></g><path fill="none" d="M10.126 0H587.27v162.542H10.125z"/></svg> \ No newline at end of file
diff --git a/afb-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png b/afb-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png
new file mode 100644
index 0000000..2bee568
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/logo_iot_bzhx350.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png b/afb-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png
new file mode 100644
index 0000000..44e04e5
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/tampon-iot-bzhx450.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.png b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.png
new file mode 100644
index 0000000..a921f1b
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg
new file mode 100644
index 0000000..9ec086c
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzh.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="205.714" height="197.143"><defs><filter color-interpolation-filters="sRGB" id="a"><feFlood flood-opacity=".475" flood-color="#000" result="flood"/><feComposite in2="SourceGraphic" in="flood" operator="in" result="composite1"/><feGaussianBlur stdDeviation="5" result="blur"/><feOffset dx="8" dy="8" result="offset"/><feComposite in2="offset" in="SourceGraphic" result="composite2"/></filter></defs><path d="M470.886 595.304c28.217 16.29 28.755 58.738.997 78.538-7.677 5.476-8.78 4.91-1.996-1.023 17.474-15.286 17.985-42.18 1.086-57.1l-3.913-3.454.723-3.71c.398-2.04.6-5.73.45-8.2-.34-5.547.157-6.493 2.653-5.052zm-64.766 11.403c7.06-7.742 18.647-14.16 29.04-16.088l6.875-1.277.874 2.898c.48 1.594.674 5.225.43 8.07l-.444 5.172-6.14 1.69c-10.91 3.01-20.4 10.86-25.452 21.06l-2.417 4.88-2.742-.41c-5.143-.775-12.73-3.978-12.792-5.402-.092-2.134 8.347-15.746 12.767-20.593zm33.205 36.395c-28.216 16.29-65.246-4.465-68.514-38.405-.903-9.387.138-10.06 1.885-1.216 4.5 22.776 27.535 36.665 48.906 29.49l4.95-1.662 2.85 2.48c1.57 1.366 4.664 3.386 6.878 4.49 4.973 2.48 5.543 3.383 3.047 4.824zm22.508-61.79c3.174 9.986 2.94 23.23-.587 33.194l-2.333 6.59-2.946-.69c-1.62-.38-4.862-2.028-7.203-3.662l-4.258-2.97 1.605-6.163c2.852-10.953.798-23.097-5.51-32.572l-3.02-4.532 1.73-2.17c3.24-4.066 9.808-9.035 11.072-8.377 1.895.987 9.463 15.1 11.45 21.352zm-48.802 10.314c0-32.582 36.49-54.272 67.518-40.132 8.58 3.91 8.642 5.148.11 2.24-21.972-7.49-45.518 5.513-49.99 27.61l-1.035 5.114-3.575 1.23c-1.966.675-5.263 2.346-7.326 3.71-4.634 3.068-5.7 3.11-5.7.228zm42.26 50.387c-10.236-2.243-21.588-9.068-28.454-17.105l-4.542-5.316 2.072-2.206c1.14-1.213 4.187-3.196 6.772-4.407l4.7-2.203 4.536 4.47c8.06 7.948 19.605 12.24 30.965 11.514l5.433-.346 1.014 2.582c1.902 4.84 2.922 13.012 1.72 13.777-1.803 1.147-17.81.645-24.218-.76z" fill="#5a2ca0" filter="url(#a)" transform="translate(-328.57 -513.79)"/><path fill="none" d="M0 0h205.715v197.144H0z"/></svg> \ No newline at end of file
diff --git a/afb-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png
new file mode 100644
index 0000000..b7c7db1
--- /dev/null
+++ b/afb-client/dist.prod/opa/images/logo/triskel_iot_bzhx250.png
Binary files differ
diff --git a/afb-client/dist.prod/opa/index.html b/afb-client/dist.prod/opa/index.html
new file mode 100644
index 0000000..6727a95
--- /dev/null
+++ b/afb-client/dist.prod/opa/index.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html><!--[if lt IE 7]><html lang="en" ng-app="AFBclient" class="no-js lt-ie9 lt-ie8 lt-ie7"><![endif]--><!--[if IE 7]><html lang="en" ng-app="AFBclient" class="no-js lt-ie9 lt-ie8"><![endif]--><!--[if IE 8]><html lang="en" ng-app="AFBclient" class="no-js lt-ie9"><![endif]--><!--[if gt IE 8]><!--><html lang="en" ng-app="AFBclient" class="no-js"><!--<![endif]--><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Simple Sample Application</title><meta name="description" content=""><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="/global_styles/ibz-global.min.css"><link rel="stylesheet" href="/global_styles/foundation-conf.min.css"><link rel="stylesheet" href="AFBclient.min.css"><base href="/opa/"></head><body><!--[if lt IE 7]><p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p><![endif]--><div ui-view></div><script src="/bower_components/vendor.min.js"></script><script src="AFBclient.min.js"></script><script id="components/modal/modal.html" type="text/ng-template"><div class="modal-overlay" ng-click="hideOverlay()">
+ <aside class="modal" ng-click="$event.stopPropagation();" ng-transclude></aside>
+ </div></script></body></html> \ No newline at end of file