@datagrok/eda 1.1.8 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/861.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunkeda=self.webpackChunkeda||[]).push([[861],{1040:(e,n,t)=>{var a,o,r,i,c,s;t.d(n,{CF:()=>o,Qe:()=>c,W:()=>a,Yc:()=>s,gd:()=>i,gk:()=>r}),function(e){e.Levenshtein="Levenshtein",e.JaroWinkler="Jaro-Winkler",e.Manhattan="Manhattan",e.Onehot="One-Hot"}(a||(a={})),function(e){e.Euclidean="Euclidean"}(o||(o={})),function(e){e.Tanimoto="Tanimoto",e.Dice="Dice",e.Asymmetric="Asymmetric",e.BraunBlanquet="Braun-Blanquet",e.Cosine="Cosine",e.Kulczynski="Kulczynski",e.McConnaughey="Mc-Connaughey",e.RogotGoldberg="Rogot-Goldberg",e.Russel="Russel",e.Sokal="Sokal",e.Hamming="Hamming",e.Euclidean="Euclidean"}(r||(r={})),function(e){e.TanimotoIntArray="TanimotoIntArray"}(i||(i={})),function(e){e.Vector="Vector",e.String="String",e.BitArray="BitArray",e.MacroMolecule="MacroMolecule",e.Number="Number",e.IntArray="IntArray"}(c||(c={})),function(e){e.Difference="Difference"}(s||(s={}))},7861:(e,n,t)=>{t.d(n,{UH:()=>M,sQ:()=>m});var a=t(1811),o=t(3979),r=t(5697),i=t(850),c=t(489),s=t(1040);const g={[s.CF.Euclidean]:i.dP},u={[s.W.Levenshtein]:a.T,[s.W.JaroWinkler]:o.H$,[s.W.Manhattan]:function(e,n){if(e.length!==n.length)return 1;{let t=0;for(let a=1;a<e.length;a++)t+=e[a]==n[a]?0:1;return t/e.length}},[s.W.Onehot]:function(e,n){return e===n?0:1}},k={[s.gk.Tanimoto]:r.KR,[s.gk.Dice]:r._h,[s.gk.Asymmetric]:r.yU,[s.gk.BraunBlanquet]:r.Dz,[s.gk.Cosine]:r.Zd,[s.gk.Kulczynski]:r.s,[s.gk.McConnaughey]:r.aW,[s.gk.RogotGoldberg]:r.MI,[s.gk.Russel]:r.fX,[s.gk.Sokal]:r.NB,[s.gk.Hamming]:r.UX,[s.gk.Euclidean]:r.WI},l={[s.gd.TanimotoIntArray]:r.FV},h={[s.Yc.Difference]:r.bX},y={[s.Qe.Vector]:{[s.CF.Euclidean]:g[s.CF.Euclidean]},[s.Qe.String]:{[s.W.Levenshtein]:u[s.W.Levenshtein],[s.W.JaroWinkler]:u[s.W.JaroWinkler],[s.W.Manhattan]:u[s.W.Manhattan],[s.W.Onehot]:u[s.W.Onehot]},[s.Qe.BitArray]:{[s.gk.Tanimoto]:k[s.gk.Tanimoto],[s.gk.Dice]:k[s.gk.Dice],[s.gk.Asymmetric]:k[s.gk.Asymmetric],[s.gk.BraunBlanquet]:k[s.gk.BraunBlanquet],[s.gk.Cosine]:k[s.gk.Cosine],[s.gk.Kulczynski]:k[s.gk.Kulczynski],[s.gk.McConnaughey]:k[s.gk.McConnaughey],[s.gk.RogotGoldberg]:k[s.gk.RogotGoldberg],[s.gk.Russel]:k[s.gk.Russel],[s.gk.Sokal]:k[s.gk.Sokal]},[s.Qe.MacroMolecule]:{[c.U.HAMMING]:c.o[c.U.HAMMING],[c.U.LEVENSHTEIN]:c.o[c.U.LEVENSHTEIN],[c.U.NEEDLEMANN_WUNSCH]:c.o[c.U.NEEDLEMANN_WUNSCH],[c.U.MONOMER_CHEMICAL_DISTANCE]:c.o[c.U.MONOMER_CHEMICAL_DISTANCE]},[s.Qe.Number]:{[s.Yc.Difference]:h[s.Yc.Difference]},[s.Qe.IntArray]:{[s.gd.TanimotoIntArray]:l[s.gd.TanimotoIntArray]}},d=Object.keys(y).reduce(((e,n)=>{for(const t of Object.keys(y[n]))e[t]=n;return e}),{});function m(e){return"BitArray"==d[e]}class M{method;dataType;constructor(e){this.method=e,this.dataType=d[e]}getMeasure(e){const n=y;if(!n.hasOwnProperty(this.dataType)||!n[this.dataType].hasOwnProperty(this.method))throw new Error(`Unknown measure ${this.method} for data type ${this.dataType}`);return t=this.method,d[t]==s.Qe.MacroMolecule.toString()?n[this.dataType][this.method](e):n[this.dataType][this.method];var t}static getMetricByDataType(e){return Object.keys(y[e])}static get availableMeasures(){return Object.keys(y)}}}}]);
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODYxLmpzIiwibWFwcGluZ3MiOiJ5RkFBTyxJQUFJQSxFQU9BQyxFQUlBQyxFQWVBQyxFQUlBQyxFQVNBQyxFLDhEQXRDWCxTQUFXTCxHQUNQQSxFQUFnQyxZQUFJLGNBQ3BDQSxFQUFnQyxZQUFJLGVBQ3BDQSxFQUE4QixVQUFJLFlBQ2xDQSxFQUEyQixPQUFJLFNBQ2xDLENBTEQsQ0FLR0EsSUFBdUJBLEVBQXFCLENBQUMsSUFFaEQsU0FBV0MsR0FDUEEsRUFBOEIsVUFBSSxXQUNyQyxDQUZELENBRUdBLElBQXVCQSxFQUFxQixDQUFDLElBRWhELFNBQVdDLEdBQ1BBLEVBQStCLFNBQUksV0FDbkNBLEVBQTJCLEtBQUksT0FDL0JBLEVBQWlDLFdBQUksYUFDckNBLEVBQW9DLGNBQUksaUJBQ3hDQSxFQUE2QixPQUFJLFNBQ2pDQSxFQUFpQyxXQUFJLGFBQ3JDQSxFQUFtQyxhQUFJLGdCQUN2Q0EsRUFBb0MsY0FBSSxpQkFDeENBLEVBQTZCLE9BQUksU0FDakNBLEVBQTRCLE1BQUksUUFDaENBLEVBQThCLFFBQUksVUFDbENBLEVBQWdDLFVBQUksV0FDdkMsQ0FiRCxDQWFHQSxJQUF5QkEsRUFBdUIsQ0FBQyxJQUVwRCxTQUFXQyxHQUNQQSxFQUF1QyxpQkFBSSxrQkFDOUMsQ0FGRCxDQUVHQSxJQUF5QkEsRUFBdUIsQ0FBQyxJQUVwRCxTQUFXQyxHQUNQQSxFQUFnQyxPQUFJLFNBQ3BDQSxFQUFnQyxPQUFJLFNBQ3BDQSxFQUFrQyxTQUFJLFdBQ3RDQSxFQUF1QyxjQUFJLGdCQUMzQ0EsRUFBZ0MsT0FBSSxTQUNwQ0EsRUFBa0MsU0FBSSxVQUN6QyxDQVBELENBT0dBLElBQTRCQSxFQUEwQixDQUFDLElBRTFELFNBQVdDLEdBQ1BBLEVBQStCLFdBQUksWUFDdEMsQ0FGRCxDQUVHQSxJQUF1QkEsRUFBcUIsQ0FBQyxHLDBHQ3BDekMsTUFBTUMsRUFBK0IsQ0FDeEMsQ0FBQyxnQkFBK0IsTUFFdkJDLEVBQStCLENBQ3hDLENBQUMsaUJBQWlDLElBQ2xDLENBQUMsaUJBQWlDLEtBQ2xDLENBQUMsZUE2RUUsU0FBMkJDLEVBQUlDLEdBQ2xDLEdBQUlELEVBQUdFLFNBQVdELEVBQUdDLE9BQ2pCLE9BQU8sRUFFTixDQUNELElBQUlDLEVBQU8sRUFDWCxJQUFLLElBQUlDLEVBQUksRUFBR0EsRUFBSUosRUFBR0UsT0FBUUUsSUFDM0JELEdBQVFILEVBQUdJLElBQU1ILEVBQUdHLEdBQUssRUFBSSxFQUNqQyxPQUFPRCxFQUFPSCxFQUFHRSxNQUNyQixDQUNKLEVBdEZJLENBQUMsWUF1RkUsU0FBNkJGLEVBQUlDLEdBQ3BDLE9BQU9ELElBQU9DLEVBQUssRUFBSSxDQUMzQixHQXZGYUksRUFBaUMsQ0FDMUMsQ0FBQyxlQUFnQyxLQUNqQyxDQUFDLFdBQTRCLEtBQzdCLENBQUMsaUJBQWtDLEtBQ25DLENBQUMsb0JBQXFDLEtBQ3RDLENBQUMsYUFBOEIsS0FDL0IsQ0FBQyxpQkFBa0MsSUFDbkMsQ0FBQyxtQkFBb0MsS0FDckMsQ0FBQyxvQkFBcUMsS0FDdEMsQ0FBQyxhQUE4QixLQUMvQixDQUFDLFlBQTZCLEtBQzlCLENBQUMsY0FBK0IsS0FDaEMsQ0FBQyxnQkFBaUMsTUFFekJDLEVBQWlDLENBQzFDLENBQUMsdUJBQXdDLE1BRWhDQyxFQUErQixDQUN4QyxDQUFDLGlCQUFnQyxNQUV4QkMsRUFBbUIsQ0FDNUIsQ0FBQyxhQUFpQyxDQUM5QixDQUFDLGdCQUErQlYsRUFBNkIsaUJBRWpFLENBQUMsYUFBaUMsQ0FDOUIsQ0FBQyxpQkFBaUNDLEVBQTZCLGlCQUMvRCxDQUFDLGlCQUFpQ0EsRUFBNkIsaUJBQy9ELENBQUMsZUFBK0JBLEVBQTZCLGVBQzdELENBQUMsWUFBNEJBLEVBQTZCLGFBRTlELENBQUMsZUFBbUMsQ0FDaEMsQ0FBQyxlQUFnQ00sRUFBK0IsZUFDaEUsQ0FBQyxXQUE0QkEsRUFBK0IsV0FDNUQsQ0FBQyxpQkFBa0NBLEVBQStCLGlCQUNsRSxDQUFDLG9CQUFxQ0EsRUFBK0Isb0JBQ3JFLENBQUMsYUFBOEJBLEVBQStCLGFBQzlELENBQUMsaUJBQWtDQSxFQUErQixpQkFDbEUsQ0FBQyxtQkFBb0NBLEVBQStCLG1CQUNwRSxDQUFDLG9CQUFxQ0EsRUFBK0Isb0JBQ3JFLENBQUMsYUFBOEJBLEVBQStCLGFBQzlELENBQUMsWUFBNkJBLEVBQStCLGFBRWpFLENBQUMsb0JBQXdDLENBQ3JDLENBQUMsYUFBbUMsSUFBb0IsYUFDeEQsQ0FBQyxpQkFBdUMsSUFBb0IsaUJBQzVELENBQUMsdUJBQTZDLElBQW9CLHVCQUNsRSxDQUFDLCtCQUFxRCxJQUFvQixnQ0FFOUUsQ0FBQyxhQUFpQyxDQUM5QixDQUFDLGlCQUFnQ0UsRUFBNkIsa0JBRWxFLENBQUMsZUFBbUMsQ0FDaEMsQ0FBQyx1QkFBd0NELEVBQStCLHlCQUduRUcsRUFBbUJDLE9BQU9DLEtBQUtILEdBQ3ZDSSxRQUFPLENBQUNDLEVBQUtDLEtBQ2QsSUFBSyxNQUFNQyxLQUFPTCxPQUFPQyxLQUFLSCxFQUFpQk0sSUFDM0NELEVBQUlFLEdBQU9ELEVBQ2YsT0FBT0QsQ0FBRyxHQUNYLENBQUMsR0FJRyxTQUFTRyxFQUFpQkMsR0FDN0IsTUFBaUMsWUFBMUJSLEVBQWlCUSxFQUM1QixDQXVCTyxNQUFNQyxFQUNUQyxPQUNBQyxTQU1BQyxZQUFZRixHQUNSRyxLQUFLSCxPQUFTQSxFQUNkRyxLQUFLRixTQUFXWCxFQUFpQlUsRUFDckMsQ0FPQUksV0FBV0MsR0FDUCxNQUFNQyxFQUFPakIsRUFDYixJQUFLaUIsRUFBS0MsZUFBZUosS0FBS0YsWUFBY0ssRUFBS0gsS0FBS0YsVUFBVU0sZUFBZUosS0FBS0gsUUFDaEYsTUFBTSxJQUFJUSxNQUFNLG1CQUFtQkwsS0FBS0gsd0JBQXdCRyxLQUFLRixZQUN6RSxPQXpDOEJILEVBeUNESyxLQUFLSCxPQXhDL0JWLEVBQWlCUSxJQUFTLDhCQXlDekJRLEVBQUtILEtBQUtGLFVBQVVFLEtBQUtILFFBQVFLLEdBQ2pDQyxFQUFLSCxLQUFLRixVQUFVRSxLQUFLSCxRQTNDOUIsSUFBK0JGLENBNENsQyxDQU9BVywyQkFBMkJSLEdBQ3ZCLE9BQU9WLE9BQU9DLEtBQUtILEVBQWlCWSxHQUN4QyxDQUlXUywrQkFDUCxPQUFPbkIsT0FBT0MsS0FBS0gsRUFDdkIsRSIsInNvdXJjZXMiOlsid2VicGFjazovL2VkYS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzL2NvbnN0cy5qcyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcy90eXBlZC1tZXRyaWNzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgU3RyaW5nTWV0cmljc05hbWVzO1xuKGZ1bmN0aW9uIChTdHJpbmdNZXRyaWNzTmFtZXMpIHtcbiAgICBTdHJpbmdNZXRyaWNzTmFtZXNbXCJMZXZlbnNodGVpblwiXSA9IFwiTGV2ZW5zaHRlaW5cIjtcbiAgICBTdHJpbmdNZXRyaWNzTmFtZXNbXCJKYXJvV2lua2xlclwiXSA9IFwiSmFyby1XaW5rbGVyXCI7XG4gICAgU3RyaW5nTWV0cmljc05hbWVzW1wiTWFuaGF0dGFuXCJdID0gXCJNYW5oYXR0YW5cIjtcbiAgICBTdHJpbmdNZXRyaWNzTmFtZXNbXCJPbmVob3RcIl0gPSBcIk9uZS1Ib3RcIjtcbn0pKFN0cmluZ01ldHJpY3NOYW1lcyB8fCAoU3RyaW5nTWV0cmljc05hbWVzID0ge30pKTtcbmV4cG9ydCB2YXIgVmVjdG9yTWV0cmljc05hbWVzO1xuKGZ1bmN0aW9uIChWZWN0b3JNZXRyaWNzTmFtZXMpIHtcbiAgICBWZWN0b3JNZXRyaWNzTmFtZXNbXCJFdWNsaWRlYW5cIl0gPSBcIkV1Y2xpZGVhblwiO1xufSkoVmVjdG9yTWV0cmljc05hbWVzIHx8IChWZWN0b3JNZXRyaWNzTmFtZXMgPSB7fSkpO1xuZXhwb3J0IHZhciBCaXRBcnJheU1ldHJpY3NOYW1lcztcbihmdW5jdGlvbiAoQml0QXJyYXlNZXRyaWNzTmFtZXMpIHtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIlRhbmltb3RvXCJdID0gXCJUYW5pbW90b1wiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiRGljZVwiXSA9IFwiRGljZVwiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiQXN5bW1ldHJpY1wiXSA9IFwiQXN5bW1ldHJpY1wiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiQnJhdW5CbGFucXVldFwiXSA9IFwiQnJhdW4tQmxhbnF1ZXRcIjtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIkNvc2luZVwiXSA9IFwiQ29zaW5lXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJLdWxjenluc2tpXCJdID0gXCJLdWxjenluc2tpXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJNY0Nvbm5hdWdoZXlcIl0gPSBcIk1jLUNvbm5hdWdoZXlcIjtcbiAgICBCaXRBcnJheU1ldHJpY3NOYW1lc1tcIlJvZ290R29sZGJlcmdcIl0gPSBcIlJvZ290LUdvbGRiZXJnXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJSdXNzZWxcIl0gPSBcIlJ1c3NlbFwiO1xuICAgIEJpdEFycmF5TWV0cmljc05hbWVzW1wiU29rYWxcIl0gPSBcIlNva2FsXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJIYW1taW5nXCJdID0gXCJIYW1taW5nXCI7XG4gICAgQml0QXJyYXlNZXRyaWNzTmFtZXNbXCJFdWNsaWRlYW5cIl0gPSBcIkV1Y2xpZGVhblwiO1xufSkoQml0QXJyYXlNZXRyaWNzTmFtZXMgfHwgKEJpdEFycmF5TWV0cmljc05hbWVzID0ge30pKTtcbmV4cG9ydCB2YXIgSW50QXJyYXlNZXRyaWNzTmFtZXM7XG4oZnVuY3Rpb24gKEludEFycmF5TWV0cmljc05hbWVzKSB7XG4gICAgSW50QXJyYXlNZXRyaWNzTmFtZXNbXCJUYW5pbW90b0ludEFycmF5XCJdID0gXCJUYW5pbW90b0ludEFycmF5XCI7XG59KShJbnRBcnJheU1ldHJpY3NOYW1lcyB8fCAoSW50QXJyYXlNZXRyaWNzTmFtZXMgPSB7fSkpO1xuZXhwb3J0IHZhciBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cztcbihmdW5jdGlvbiAoRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMpIHtcbiAgICBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0c1tcIlZlY3RvclwiXSA9IFwiVmVjdG9yXCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJTdHJpbmdcIl0gPSBcIlN0cmluZ1wiO1xuICAgIERpc3RhbmNlTWV0cmljc1N1YmplY3RzW1wiQml0QXJyYXlcIl0gPSBcIkJpdEFycmF5XCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJNYWNyb01vbGVjdWxlXCJdID0gXCJNYWNyb01vbGVjdWxlXCI7XG4gICAgRGlzdGFuY2VNZXRyaWNzU3ViamVjdHNbXCJOdW1iZXJcIl0gPSBcIk51bWJlclwiO1xuICAgIERpc3RhbmNlTWV0cmljc1N1YmplY3RzW1wiSW50QXJyYXlcIl0gPSBcIkludEFycmF5XCI7XG59KShEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cyB8fCAoRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMgPSB7fSkpO1xuZXhwb3J0IHZhciBOdW1iZXJNZXRyaWNzTmFtZXM7XG4oZnVuY3Rpb24gKE51bWJlck1ldHJpY3NOYW1lcykge1xuICAgIE51bWJlck1ldHJpY3NOYW1lc1tcIkRpZmZlcmVuY2VcIl0gPSBcIkRpZmZlcmVuY2VcIjtcbn0pKE51bWJlck1ldHJpY3NOYW1lcyB8fCAoTnVtYmVyTWV0cmljc05hbWVzID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyOXVjM1J6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lZMjl1YzNSekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEUxQlFVMHNRMEZCVGl4SlFVRlpMR3RDUVV0VU8wRkJURWdzVjBGQldTeHJRa0ZCYTBJN1NVRkRNVUlzYVVSQlFUSkNMRU5CUVVFN1NVRkRNMElzYTBSQlFUUkNMRU5CUVVFN1NVRkROVUlzTmtOQlFYVkNMRU5CUVVFN1NVRkRka0lzZDBOQlFXdENMRU5CUVVFN1FVRkRjRUlzUTBGQlF5eEZRVXhUTEd0Q1FVRnJRaXhMUVVGc1FpeHJRa0ZCYTBJc1VVRkxNMEk3UVVGRlNDeE5RVUZOTEVOQlFVNHNTVUZCV1N4clFrRkZWRHRCUVVaSUxGZEJRVmtzYTBKQlFXdENPMGxCUXpGQ0xEWkRRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGR1V5eHJRa0ZCYTBJc1MwRkJiRUlzYTBKQlFXdENMRkZCUlROQ08wRkJSVWdzVFVGQlRTeERRVUZPTEVsQlFWa3NiMEpCWVZRN1FVRmlTQ3hYUVVGWkxHOUNRVUZ2UWp0SlFVTTFRaXcyUTBGQmNVSXNRMEZCUVR0SlFVTnlRaXh4UTBGQllTeERRVUZCTzBsQlEySXNhVVJCUVhsQ0xFTkJRVUU3U1VGRGVrSXNkMFJCUVdkRExFTkJRVUU3U1VGRGFFTXNlVU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNhVVJCUVhsQ0xFTkJRVUU3U1VGRGVrSXNjMFJCUVRoQ0xFTkJRVUU3U1VGRE9VSXNkMFJCUVdkRExFTkJRVUU3U1VGRGFFTXNlVU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNkVU5CUVdVc1EwRkJRVHRKUVVObUxESkRRVUZ0UWl4RFFVRkJPMGxCUTI1Q0xDdERRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGaVV5eHZRa0ZCYjBJc1MwRkJjRUlzYjBKQlFXOUNMRkZCWVRkQ08wRkJSVWdzVFVGQlRTeERRVUZPTEVsQlFWa3NiMEpCUlZnN1FVRkdSQ3hYUVVGWkxHOUNRVUZ2UWp0SlFVTTVRaXcyUkVGQmNVTXNRMEZCUVR0QlFVTjJReXhEUVVGRExFVkJSbGNzYjBKQlFXOUNMRXRCUVhCQ0xHOUNRVUZ2UWl4UlFVVXZRanRCUVVWRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEhWQ1FVOVVPMEZCVUVnc1YwRkJXU3gxUWtGQmRVSTdTVUZETDBJc05FTkJRV2xDTEVOQlFVRTdTVUZEYWtJc05FTkJRV2xDTEVOQlFVRTdTVUZEYWtJc1owUkJRWEZDTEVOQlFVRTdTVUZEY2tJc01FUkJRU3RDTEVOQlFVRTdTVUZETDBJc05FTkJRV2xDTEVOQlFVRTdTVUZEYWtJc1owUkJRWEZDTEVOQlFVRTdRVUZEZGtJc1EwRkJReXhGUVZCVExIVkNRVUYxUWl4TFFVRjJRaXgxUWtGQmRVSXNVVUZQYUVNN1FVRkZTQ3hOUVVGTkxFTkJRVTRzU1VGQldTeHJRa0ZGV0R0QlFVWkVMRmRCUVZrc2EwSkJRV3RDTzBsQlF6VkNMQ3REUVVGNVFpeERRVUZCTzBGQlF6TkNMRU5CUVVNc1JVRkdWeXhyUWtGQmEwSXNTMEZCYkVJc2EwSkJRV3RDTEZGQlJUZENJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWlhod2IzSjBJR1Z1ZFcwZ1UzUnlhVzVuVFdWMGNtbGpjMDVoYldWeklIdGNiaUFnSUNCTVpYWmxibk5vZEdWcGJpQTlJQ2RNWlhabGJuTm9kR1ZwYmljc1hHNGdJQ0FnU21GeWIxZHBibXRzWlhJZ1BTQW5TbUZ5YnkxWGFXNXJiR1Z5Snl4Y2JpQWdJQ0JOWVc1b1lYUjBZVzRnUFNBblRXRnVhR0YwZEdGdUp5eGNiaUFnSUNCUGJtVm9iM1FnUFNBblQyNWxMVWh2ZENjc1hHNGdJSDFjYmx4dVpYaHdiM0owSUdWdWRXMGdWbVZqZEc5eVRXVjBjbWxqYzA1aGJXVnpJSHRjYmlBZ0lDQkZkV05zYVdSbFlXNGdQU0FuUlhWamJHbGtaV0Z1Snl4Y2JpQWdmVnh1WEc1bGVIQnZjblFnWlc1MWJTQkNhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeUI3WEc0Z0lDQWdWR0Z1YVcxdmRHOGdQU0FuVkdGdWFXMXZkRzhuTEZ4dUlDQWdJRVJwWTJVZ1BTQW5SR2xqWlNjc1hHNGdJQ0FnUVhONWJXMWxkSEpwWXlBOUlDZEJjM2x0YldWMGNtbGpKeXhjYmlBZ0lDQkNjbUYxYmtKc1lXNXhkV1YwSUQwZ0owSnlZWFZ1TFVKc1lXNXhkV1YwSnl4Y2JpQWdJQ0JEYjNOcGJtVWdQU0FuUTI5emFXNWxKeXhjYmlBZ0lDQkxkV3hqZW5sdWMydHBJRDBnSjB0MWJHTjZlVzV6YTJrbkxGeHVJQ0FnSUUxalEyOXVibUYxWjJobGVTQTlJQ2ROWXkxRGIyNXVZWFZuYUdWNUp5eGNiaUFnSUNCU2IyZHZkRWR2YkdSaVpYSm5JRDBnSjFKdloyOTBMVWR2YkdSaVpYSm5KeXhjYmlBZ0lDQlNkWE56Wld3Z1BTQW5VblZ6YzJWc0p5eGNiaUFnSUNCVGIydGhiQ0E5SUNkVGIydGhiQ2NzWEc0Z0lDQWdTR0Z0YldsdVp5QTlJQ2RJWVcxdGFXNW5KeXhjYmlBZ0lDQkZkV05zYVdSbFlXNGdQU0FuUlhWamJHbGtaV0Z1Snl4Y2JpQWdmVnh1WEc1bGVIQnZjblFnWlc1MWJTQkpiblJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeUI3WEc0Z0lGUmhibWx0YjNSdlNXNTBRWEp5WVhrZ1BTQW5WR0Z1YVcxdmRHOUpiblJCY25KaGVTY3NYRzU5WEc1Y2JtVjRjRzl5ZENCbGJuVnRJRVJwYzNSaGJtTmxUV1YwY21samMxTjFZbXBsWTNSeklIdGNiaUFnSUNCV1pXTjBiM0lnUFNBblZtVmpkRzl5Snl4Y2JpQWdJQ0JUZEhKcGJtY2dQU0FuVTNSeWFXNW5KeXhjYmlBZ0lDQkNhWFJCY25KaGVTQTlJQ2RDYVhSQmNuSmhlU2NzWEc0Z0lDQWdUV0ZqY205TmIyeGxZM1ZzWlNBOUlDZE5ZV055YjAxdmJHVmpkV3hsSnl4Y2JpQWdJQ0JPZFcxaVpYSWdQU0FuVG5WdFltVnlKeXhjYmlBZ0lDQkpiblJCY25KaGVTQTlJQ2RKYm5SQmNuSmhlU2NzWEc0Z0lIMWNibHh1Wlhod2IzSjBJR1Z1ZFcwZ1RuVnRZbVZ5VFdWMGNtbGpjMDVoYldWeklIdGNiaUFnUkdsbVptVnlaVzVqWlNBOUlDZEVhV1ptWlhKbGJtTmxKeXhjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgZmwgZnJvbSAnZmFzdGVzdC1sZXZlbnNodGVpbic7XG5pbXBvcnQgeyBqYXJvV2lua2xlciB9IGZyb20gJ2phcm8td2lua2xlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGFzeW1tZXRyaWNEaXN0YW5jZSwgYnJhdW5CbGFucXVldERpc3RhbmNlLCBjb3NpbmVEaXN0YW5jZSwgZGljZURpc3RhbmNlLCBldWNsaWRlYW5EaXN0YW5jZSwgaGFtbWluZ0Rpc3RhbmNlLCBrdWxjenluc2tpRGlzdGFuY2UsIG1jQ29ubmF1Z2hleURpc3RhbmNlLCByb2dvdEdvbGRiZXJnRGlzdGFuY2UsIHJ1c3NlbERpc3RhbmNlLCBzb2thbERpc3RhbmNlLCB0YW5pbW90b0Rpc3RhbmNlLCBudW1lcmljRGlzdGFuY2UsIHRhbmltb3RvRGlzdGFuY2VJbnRBcnJheSwgfSBmcm9tICcuLi9kaXN0YW5jZS1tZXRyaWNzLW1ldGhvZHMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBtbURpc3RhbmNlRnVuY3Rpb25zLCBNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMgfSBmcm9tICcuLi9tYWNyb21vbGVjdWxlLWRpc3RhbmNlLWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cywgQml0QXJyYXlNZXRyaWNzTmFtZXMsIFN0cmluZ01ldHJpY3NOYW1lcywgVmVjdG9yTWV0cmljc05hbWVzLCBOdW1iZXJNZXRyaWNzTmFtZXMsIEludEFycmF5TWV0cmljc05hbWVzIH0gZnJvbSAnLi9jb25zdHMnO1xuZXhwb3J0IGNvbnN0IHZlY3RvckRpc3RhbmNlTWV0cmljc01ldGhvZHMgPSB7XG4gICAgW1ZlY3Rvck1ldHJpY3NOYW1lcy5FdWNsaWRlYW5dOiBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3Qgc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyA9IHtcbiAgICBbU3RyaW5nTWV0cmljc05hbWVzLkxldmVuc2h0ZWluXTogZmwuZGlzdGFuY2UsXG4gICAgW1N0cmluZ01ldHJpY3NOYW1lcy5KYXJvV2lua2xlcl06IGphcm9XaW5rbGVyLFxuICAgIFtTdHJpbmdNZXRyaWNzTmFtZXMuTWFuaGF0dGFuXTogbWFuaGF0dGFuRGlzdGFuY2UsXG4gICAgW1N0cmluZ01ldHJpY3NOYW1lcy5PbmVob3RdOiBjYXRlZ29yaWNhbERpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHMgPSB7XG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvXTogdGFuaW1vdG9EaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuRGljZV06IGRpY2VEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQXN5bW1ldHJpY106IGFzeW1tZXRyaWNEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQnJhdW5CbGFucXVldF06IGJyYXVuQmxhbnF1ZXREaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQ29zaW5lXTogY29zaW5lRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkt1bGN6eW5za2ldOiBrdWxjenluc2tpRGlzdGFuY2UsXG4gICAgW0JpdEFycmF5TWV0cmljc05hbWVzLk1jQ29ubmF1Z2hleV06IG1jQ29ubmF1Z2hleURpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Sb2dvdEdvbGRiZXJnXTogcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5SdXNzZWxdOiBydXNzZWxEaXN0YW5jZSxcbiAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuU29rYWxdOiBzb2thbERpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5IYW1taW5nXTogaGFtbWluZ0Rpc3RhbmNlLFxuICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5FdWNsaWRlYW5dOiBldWNsaWRlYW5EaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgaW50QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzID0ge1xuICAgIFtJbnRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b0ludEFycmF5XTogdGFuaW1vdG9EaXN0YW5jZUludEFycmF5LFxufTtcbmV4cG9ydCBjb25zdCBudW1iZXJEaXN0YW5jZU1ldHJpY3NNZXRob2RzID0ge1xuICAgIFtOdW1iZXJNZXRyaWNzTmFtZXMuRGlmZmVyZW5jZV06IG51bWVyaWNEaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlTWV0cmljcyA9IHtcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuVmVjdG9yXToge1xuICAgICAgICBbVmVjdG9yTWV0cmljc05hbWVzLkV1Y2xpZGVhbl06IHZlY3RvckRpc3RhbmNlTWV0cmljc01ldGhvZHNbVmVjdG9yTWV0cmljc05hbWVzLkV1Y2xpZGVhbl0sXG4gICAgfSxcbiAgICBbRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMuU3RyaW5nXToge1xuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLkxldmVuc2h0ZWluXTogc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tTdHJpbmdNZXRyaWNzTmFtZXMuTGV2ZW5zaHRlaW5dLFxuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLkphcm9XaW5rbGVyXTogc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tTdHJpbmdNZXRyaWNzTmFtZXMuSmFyb1dpbmtsZXJdLFxuICAgICAgICBbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl06IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHNbU3RyaW5nTWV0cmljc05hbWVzLk1hbmhhdHRhbl0sXG4gICAgICAgIFtTdHJpbmdNZXRyaWNzTmFtZXMuT25laG90XTogc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tTdHJpbmdNZXRyaWNzTmFtZXMuT25laG90XSxcbiAgICB9LFxuICAgIFtEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5CaXRBcnJheV06IHtcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLlRhbmltb3RvXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkRpY2VdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuRGljZV0sXG4gICAgICAgIFtCaXRBcnJheU1ldHJpY3NOYW1lcy5Bc3ltbWV0cmljXTogYml0QXJyYXlEaXN0YW5jZU1ldHJpY3NNZXRob2RzW0JpdEFycmF5TWV0cmljc05hbWVzLkFzeW1tZXRyaWNdLFxuICAgICAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuQnJhdW5CbGFucXVldF06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5CcmF1bkJsYW5xdWV0XSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLkNvc2luZV06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5Db3NpbmVdLFxuICAgICAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuS3VsY3p5bnNraV06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5LdWxjenluc2tpXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLk1jQ29ubmF1Z2hleV06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5NY0Nvbm5hdWdoZXldLFxuICAgICAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuUm9nb3RHb2xkYmVyZ106IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5Sb2dvdEdvbGRiZXJnXSxcbiAgICAgICAgW0JpdEFycmF5TWV0cmljc05hbWVzLlJ1c3NlbF06IGJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tCaXRBcnJheU1ldHJpY3NOYW1lcy5SdXNzZWxdLFxuICAgICAgICBbQml0QXJyYXlNZXRyaWNzTmFtZXMuU29rYWxdOiBiaXRBcnJheURpc3RhbmNlTWV0cmljc01ldGhvZHNbQml0QXJyYXlNZXRyaWNzTmFtZXMuU29rYWxdLFxuICAgIH0sXG4gICAgW0Rpc3RhbmNlTWV0cmljc1N1YmplY3RzLk1hY3JvTW9sZWN1bGVdOiB7XG4gICAgICAgIFtNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuSEFNTUlOR106IG1tRGlzdGFuY2VGdW5jdGlvbnNbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLkhBTU1JTkddLFxuICAgICAgICBbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLkxFVkVOU0hURUlOXTogbW1EaXN0YW5jZUZ1bmN0aW9uc1tNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTEVWRU5TSFRFSU5dLFxuICAgICAgICBbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLk5FRURMRU1BTk5fV1VOU0NIXTogbW1EaXN0YW5jZUZ1bmN0aW9uc1tNbURpc3RhbmNlRnVuY3Rpb25zTmFtZXMuTkVFRExFTUFOTl9XVU5TQ0hdLFxuICAgICAgICBbTW1EaXN0YW5jZUZ1bmN0aW9uc05hbWVzLk1PTk9NRVJfQ0hFTUlDQUxfRElTVEFOQ0VdOiBtbURpc3RhbmNlRnVuY3Rpb25zW01tRGlzdGFuY2VGdW5jdGlvbnNOYW1lcy5NT05PTUVSX0NIRU1JQ0FMX0RJU1RBTkNFXSxcbiAgICB9LFxuICAgIFtEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5OdW1iZXJdOiB7XG4gICAgICAgIFtOdW1iZXJNZXRyaWNzTmFtZXMuRGlmZmVyZW5jZV06IG51bWJlckRpc3RhbmNlTWV0cmljc01ldGhvZHNbTnVtYmVyTWV0cmljc05hbWVzLkRpZmZlcmVuY2VdLFxuICAgIH0sXG4gICAgW0Rpc3RhbmNlTWV0cmljc1N1YmplY3RzLkludEFycmF5XToge1xuICAgICAgICBbSW50QXJyYXlNZXRyaWNzTmFtZXMuVGFuaW1vdG9JbnRBcnJheV06IGludEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kc1tJbnRBcnJheU1ldHJpY3NOYW1lcy5UYW5pbW90b0ludEFycmF5XSxcbiAgICB9XG59O1xuZXhwb3J0IGNvbnN0IE1ldHJpY1RvRGF0YVR5cGUgPSBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzKVxuICAgIC5yZWR1Y2UoKHJldCwga2V5KSA9PiB7XG4gICAgZm9yIChjb25zdCB2YWwgb2YgT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1trZXldKSlcbiAgICAgICAgcmV0W3ZhbF0gPSBrZXk7XG4gICAgcmV0dXJuIHJldDtcbn0sIHt9KTtcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZ01ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1N0cmluZyc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNCaXRBcnJheU1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ0JpdEFycmF5Jztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlY3Rvck1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1ZlY3Rvcic7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNNYWNyb01vbGVjdWxlTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSBEaXN0YW5jZU1ldHJpY3NTdWJqZWN0cy5NYWNyb01vbGVjdWxlLnRvU3RyaW5nKCk7XG59XG4vKiogTWFuaGF0dGFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHNlcXVlbmNlcyAobWF0Y2ggLSAwLCBtaXNtYXRjaCAtIDEpIG5vcm1hbGl6ZWQgZm9yIGxlbmd0aC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYW5oYXR0YW5EaXN0YW5jZShzMSwgczIpIHtcbiAgICBpZiAoczEubGVuZ3RoICE9PSBzMi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBsZXQgZGlzdCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgczEubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBkaXN0ICs9IHMxW2ldID09IHMyW2ldID8gMCA6IDE7XG4gICAgICAgIHJldHVybiBkaXN0IC8gczEubGVuZ3RoO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBjYXRlZ29yaWNhbERpc3RhbmNlKHMxLCBzMikge1xuICAgIHJldHVybiBzMSA9PT0gczIgPyAwIDogMTtcbn1cbi8qKiBVbmlmaWVkIGNsYXNzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgc3RyaW5nIG1lYXN1cmVzLiAqL1xuZXhwb3J0IGNsYXNzIE1lYXN1cmUge1xuICAgIG1ldGhvZDtcbiAgICBkYXRhVHlwZTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE1lYXN1cmUgd2l0aCAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCBNZXRob2QgdG8gY2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4gc3RyaW5ncy5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXRob2QpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIHRoaXMuZGF0YVR5cGUgPSBNZXRyaWNUb0RhdGFUeXBlW21ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBmdW5jdGlvbiBzcGVjaWZpZWQuXG4gICAgICogQHBhcmFtIHtvcHRzfSBvcHRzIE9wdGlvbnMgZm9yIHRoZSBtZWFzdXJlLiB1c2VkIGZvciBtYWNyb21vbGVjdWxlIGRpc3RhbmNlc1xuICAgICAqIEByZXR1cm4ge0Rpc3RhbmNlTWV0cmljfSBDYWxsYmFjayBvZiB0aGUgbWVhc3VyZSBjaG9zZW4uXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgZ2V0TWVhc3VyZShvcHRzKSB7XG4gICAgICAgIGNvbnN0IGRpY3QgPSBBdmFpbGFibGVNZXRyaWNzO1xuICAgICAgICBpZiAoIWRpY3QuaGFzT3duUHJvcGVydHkodGhpcy5kYXRhVHlwZSkgfHwgIWRpY3RbdGhpcy5kYXRhVHlwZV0uaGFzT3duUHJvcGVydHkodGhpcy5tZXRob2QpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG1lYXN1cmUgJHt0aGlzLm1ldGhvZH0gZm9yIGRhdGEgdHlwZSAke3RoaXMuZGF0YVR5cGV9YCk7XG4gICAgICAgIHJldHVybiBpc01hY3JvTW9sZWN1bGVNZXRyaWModGhpcy5tZXRob2QpID9cbiAgICAgICAgICAgIGRpY3RbdGhpcy5kYXRhVHlwZV1bdGhpcy5tZXRob2RdKG9wdHMpIDpcbiAgICAgICAgICAgIGRpY3RbdGhpcy5kYXRhVHlwZV1bdGhpcy5tZXRob2RdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgYnkgdGhlIGdpdmVuIGRhdGEgdHlwZS5cbiAgICAgKiBAcGFyYW0ge0F2YWlsYWJsZURhdGFUeXBlc30gZGF0YVR5cGUgTWV0cmljJ3MgZGF0YSB0eXBlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IE1ldHJpYyBuYW1lcyB3aGljaCBleHBlY3RzIHRoZSBnaXZlbiBkYXRhIHR5cGVcbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TWV0cmljQnlEYXRhVHlwZShkYXRhVHlwZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1tkYXRhVHlwZV0pO1xuICAgIH1cbiAgICAvKiogUmV0dXJucyBtZXRyaWMgbmFtZXMgYXZhaWxhYmxlLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIHN0YXRpYyBnZXQgYXZhaWxhYmxlTWVhc3VyZXMoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WldRdGJXVjBjbWxqY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblI1Y0dWa0xXMWxkSEpwWTNNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4eFFrRkJjVUlzUTBGQlF6dEJRVU14UXl4UFFVRlBMRVZCUVVNc1YwRkJWeXhGUVVGRExFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZjRVFzVDBGQlR5eEZRVU5NTEd0Q1FVRnJRaXhGUVVOc1FpeHhRa0ZCY1VJc1JVRkRja0lzWTBGQll5eEZRVU5rTEZsQlFWa3NSVUZEV2l4cFFrRkJhVUlzUlVGRGFrSXNaVUZCWlN4RlFVTm1MR3RDUVVGclFpeEZRVU5zUWl4dlFrRkJiMElzUlVGRGNFSXNjVUpCUVhGQ0xFVkJRM0pDTEdOQlFXTXNSVUZEWkN4aFFVRmhMRVZCUTJJc1owSkJRV2RDTEVWQlEyaENMR1ZCUVdVc1JVRkRaaXgzUWtGQmQwSXNSMEZEZWtJc1RVRkJUU3cyUWtGQk5rSXNRMEZCUXp0QlFVVnlReXhQUVVGUExFVkJRVU1zTUVKQlFUQkNMRVZCUVVNc1RVRkJUU3hwUkVGQmFVUXNRMEZCUXp0QlFVY3pSaXhQUVVGUExFVkJRVU1zYlVKQlFXMUNMRVZCUVVVc2QwSkJRWGRDTEVWQlFVTXNUVUZCVFN4eFEwRkJjVU1zUTBGQlF6dEJRVU5zUnl4UFFVRlBMRVZCUVVNc2RVSkJRWFZDTEVWQlFVVXNiMEpCUVc5Q0xFVkJRMjVFTEd0Q1FVRnJRaXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRExFMUJRVTBzVlVGQlZTeERRVUZETzBGQlIzQkhMRTFCUVUwc1EwRkJReXhOUVVGTkxEUkNRVUUwUWl4SFFVRjVSRHRKUVVOb1J5eERRVUZETEd0Q1FVRnJRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTERCQ1FVRXdRanREUVVNelJDeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc05FSkJRVFJDTEVkQlFYbEVPMGxCUTJoSExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRTdTVUZETjBNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hYUVVGWE8wbEJRemRETEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNhVUpCUVdsQ08wbEJRMnBFTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNiVUpCUVcxQ08wTkJRMnBFTEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1RVRkJUU3c0UWtGQk9FSXNSMEZCTmtRN1NVRkRkRWNzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeG5Ra0ZCWjBJN1NVRkRha1FzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeFpRVUZaTzBsQlEzcERMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTzBsQlEzSkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVc2NVSkJRWEZDTzBsQlF6TkVMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1kwRkJZenRKUVVNM1F5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEd0Q1FVRnJRanRKUVVOeVJDeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEc5Q1FVRnZRanRKUVVONlJDeERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEhGQ1FVRnhRanRKUVVNelJDeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEdOQlFXTTdTVUZETjBNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hoUVVGaE8wbEJRek5ETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNaVUZCWlR0SlFVTXZReXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxHbENRVUZwUWp0RFFVTndSQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNPRUpCUVRoQ0xFZEJRVzFGTzBsQlF6VkhMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUlVGQlJTeDNRa0ZCZDBJN1EwRkRiRVVzUTBGQlF6dEJRVVZHTEUxQlFVMHNRMEZCUXl4TlFVRk5MRFJDUVVFMFFpeEhRVUY1UkR0SlFVTm9SeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxHVkJRV1U3UTBGRGFrUXNRMEZCUXp0QlFVVkdMRTFCUVUwc1EwRkJReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhPMGxCUXpsQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVU3VVVGRGFFTXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZCUlN3MFFrRkJORUlzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFTkJRVU03UzBGRE0wWTdTVUZEUkN4RFFVRkRMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZPMUZCUTJoRExFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzTkVKQlFUUkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUXpsR0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzTkVKQlFUUkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUXpsR0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzTkVKQlFUUkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUXpGR0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzTkVKQlFUUkNMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMHRCUTNKR08wbEJRMFFzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJUdFJRVU5zUXl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU01Uml4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU4wUml4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU5zUnl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEdGQlFXRXNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU40Unl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU14Uml4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU5zUnl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExGbEJRVmtzUTBGQlF6dFJRVU4wUnl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEdGQlFXRXNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU40Unl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU14Uml4RFFVRkRMRzlDUVVGdlFpeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRGhDUVVFNFFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFdEJRVXNzUTBGQlF6dExRVU42Ump0SlFVTkVMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRVZCUVVVN1VVRkRka01zUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4UFFVRlBMRU5CUVVNN1VVRkRla1lzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4WFFVRlhMRU5CUVVNN1VVRkRha2NzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RlFVRkZMRzFDUVVGdFFpeERRVUZETEhkQ1FVRjNRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRPMUZCUXpkSExFTkJRVU1zZDBKQlFYZENMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNSVUZEYkVRc2JVSkJRVzFDTEVOQlFVTXNkMEpCUVhkQ0xFTkJRVU1zZVVKQlFYbENMRU5CUVVNN1MwRkRNVVU3U1VGRFJDeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTzFGQlEyaERMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc05FSkJRVFJDTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVlVGQlZTeERRVUZETzB0QlF6ZEdPMGxCUTBRc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSVHRSUVVOc1F5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRVZCUVVVc09FSkJRVGhDTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkRMMGM3UTBGRFJpeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1owSkJRV2RDTEVkQlFYRkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkROVVVzVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCY1VJc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdEpRVU55UXl4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQmVVSXNRMEZCUXl4RFFVRkRPMUZCUTNoRkxFZEJRVWNzUTBGQlF5eEhRVUY1UWl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJSWFpETEU5QlFVOHNSMEZCUnl4RFFVRkRPMEZCUTJJc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlpWUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhKUVVGclFqdEpRVU12UXl4UFFVRlBMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJRenRCUVVNMVF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVUZETEVsQlFXdENPMGxCUTJwRUxFOUJRVThzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzVlVGQlZTeERRVUZETzBGQlF6bERMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEVsQlFXdENPMGxCUXk5RExFOUJRVThzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzVVVGQlVTeERRVUZETzBGQlF6VkRMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUVVNc1NVRkJhMEk3U1VGRGRFUXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4MVFrRkJkVUlzUTBGQlF5eGhRVUZoTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNN1FVRkRjRVlzUTBGQlF6dEJRVVZFTEdkSFFVRm5SenRCUVVOb1J5eE5RVUZOTEZWQlFWVXNhVUpCUVdsQ0xFTkJRVU1zUlVGQlZTeEZRVUZGTEVWQlFWVTdTVUZEZEVRc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRTeExRVUZMTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVN1VVRkRNMElzVDBGQlR5eERRVUZETEVOQlFVTTdTMEZEVmp0VFFVRk5PMUZCUTB3c1NVRkJTU3hKUVVGSkxFZEJRVmNzUTBGQlF5eERRVUZETzFGQlEzSkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU5vUXl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRha01zVDBGQlR5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJRenRMUVVONlFqdEJRVU5JTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2JVSkJRVzFDTEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVZVN1NVRkRlRVFzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzTkVSQlFUUkVPMEZCUXpWRUxFMUJRVTBzVDBGQlR5eFBRVUZQTzBsQlExSXNUVUZCVFN4RFFVRmxPMGxCUTNKQ0xGRkJRVkVzUTBGQmNVSTdTVUZGZGtNN096czdUMEZKUnp0SlFVTklMRmxCUVZrc1RVRkJiMEk3VVVGRE9VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGNrSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRU5CUVhWQ0xFTkJRVU03U1VGRGFrVXNRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1ZVRkJWU3hEUVVGRExFbEJRVlU3VVVGRE1VSXNUVUZCVFN4SlFVRkpMRWRCUlU0c1owSkJRV2RDTEVOQlFVTTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0WlFVTjZSaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYmtZc1QwRkJUeXh4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU40UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVhGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTTNSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVzFDTEVOQlFVTTdTVUZEZGtRc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGtzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExGRkJRVFJDTzFGQlF6VkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEycEVMRU5CUVVNN1NVRkZSRHM3VDBGRlJ6dEpRVU5JTEUxQlFVMHNTMEZCU3l4cFFrRkJhVUk3VVVGRE1VSXNUMEZCVHl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1NVRkRka01zUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdabXdnWm5KdmJTQW5abUZ6ZEdWemRDMXNaWFpsYm5Ob2RHVnBiaWM3WEc1cGJYQnZjblFnZTJwaGNtOVhhVzVyYkdWeWZTQm1jbTl0SUNkcVlYSnZMWGRwYm10c1pYSXRkSGx3WlhOamNtbHdkQ2M3WEc1cGJYQnZjblFnZTBScGMzUmhibU5sVFdWMGNtbGpmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTF4dUlDQmhjM2x0YldWMGNtbGpSR2x6ZEdGdVkyVXNYRzRnSUdKeVlYVnVRbXhoYm5GMVpYUkVhWE4wWVc1alpTeGNiaUFnWTI5emFXNWxSR2x6ZEdGdVkyVXNYRzRnSUdScFkyVkVhWE4wWVc1alpTeGNiaUFnWlhWamJHbGtaV0Z1UkdsemRHRnVZMlVzWEc0Z0lHaGhiVzFwYm1kRWFYTjBZVzVqWlN4Y2JpQWdhM1ZzWTNwNWJuTnJhVVJwYzNSaGJtTmxMRnh1SUNCdFkwTnZibTVoZFdkb1pYbEVhWE4wWVc1alpTeGNiaUFnY205bmIzUkhiMnhrWW1WeVowUnBjM1JoYm1ObExGeHVJQ0J5ZFhOelpXeEVhWE4wWVc1alpTeGNiaUFnYzI5cllXeEVhWE4wWVc1alpTeGNiaUFnZEdGdWFXMXZkRzlFYVhOMFlXNWpaU3hjYmlBZ2JuVnRaWEpwWTBScGMzUmhibU5sTEZ4dUlDQjBZVzVwYlc5MGIwUnBjM1JoYm1ObFNXNTBRWEp5WVhrc1hHNTlJR1p5YjIwZ0p5NHVMMlJwYzNSaGJtTmxMVzFsZEhKcFkzTXRiV1YwYUc5a2N5YzdYRzVjYm1sdGNHOXlkQ0I3WTJGc1kzVnNZWFJsUlhWamJHbGtaV0Z1UkdsemRHRnVZMlY5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNabFkzUnZjaTF2Y0dWeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCQ2FYUkJjbkpoZVNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5aWFYUXRZWEp5WVhrbk8xeHVhVzF3YjNKMElIdFdaV04wYjNJc0lGTjBjbWx1WjBScFkzUnBiMjVoY25sOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdiVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjeXdnVFcxRWFYTjBZVzVqWlVaMWJtTjBhVzl1YzA1aGJXVnpmU0JtY205dElDY3VMaTl0WVdOeWIyMXZiR1ZqZFd4bExXUnBjM1JoYm1ObExXWjFibU4wYVc5dWN5YzdYRzVwYlhCdmNuUWdlMFJwYzNSaGJtTmxUV1YwY21samMxTjFZbXBsWTNSekxDQkNhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeXhjYmlBZ1UzUnlhVzVuVFdWMGNtbGpjMDVoYldWekxDQldaV04wYjNKTlpYUnlhV056VG1GdFpYTXNJRTUxYldKbGNrMWxkSEpwWTNOT1lXMWxjeXdnU1c1MFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhOOUlHWnliMjBnSnk0dlkyOXVjM1J6Snp0Y2JseHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2RtVmpkRzl5UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2N6b2dleUJiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUZabFkzUnZjaXdnZVRvZ1ZtVmpkRzl5S1NBOVBpQnVkVzFpWlhJZ2ZTQTlJSHRjYmlBZ1cxWmxZM1J2Y2sxbGRISnBZM05PWVcxbGN5NUZkV05zYVdSbFlXNWRPaUJqWVd4amRXeGhkR1ZGZFdOc2FXUmxZVzVFYVhOMFlXNWpaU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCemRISnBibWRFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSek9pQjdJRnR1WVcxbE9pQnpkSEpwYm1kZE9pQW9lRG9nYzNSeWFXNW5MQ0I1T2lCemRISnBibWNwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNCYlUzUnlhVzVuVFdWMGNtbGpjMDVoYldWekxreGxkbVZ1YzJoMFpXbHVYVG9nWm13dVpHbHpkR0Z1WTJVc1hHNGdJRnRUZEhKcGJtZE5aWFJ5YVdOelRtRnRaWE11U21GeWIxZHBibXRzWlhKZE9pQnFZWEp2VjJsdWEyeGxjaXhjYmlBZ1cxTjBjbWx1WjAxbGRISnBZM05PWVcxbGN5NU5ZVzVvWVhSMFlXNWRPaUJ0WVc1b1lYUjBZVzVFYVhOMFlXNWpaU3hjYmlBZ1cxTjBjbWx1WjAxbGRISnBZM05PWVcxbGN5NVBibVZvYjNSZE9pQmpZWFJsWjI5eWFXTmhiRVJwYzNSaGJtTmxMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdKcGRFRnljbUY1UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2N6b2dleUJiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTa2dQVDRnYm5WdFltVnlJSDBnUFNCN1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1VVlXNXBiVzkwYjEwNklIUmhibWx0YjNSdlJHbHpkR0Z1WTJVc1hHNGdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RWFXTmxYVG9nWkdsalpVUnBjM1JoYm1ObExGeHVJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVFYTjViVzFsZEhKcFkxMDZJR0Z6ZVcxdFpYUnlhV05FYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0p5WVhWdVFteGhibkYxWlhSZE9pQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVEYjNOcGJtVmRPaUJqYjNOcGJtVkVhWE4wWVc1alpTeGNiaUFnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxrdDFiR042ZVc1emEybGRPaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVOWTBOdmJtNWhkV2RvWlhsZE9pQnRZME52Ym01aGRXZG9aWGxFYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMbEp2WjI5MFIyOXNaR0psY21kZE9pQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVzWEc0Z0lGdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVTZFhOelpXeGRPaUJ5ZFhOelpXeEVhWE4wWVc1alpTeGNiaUFnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsTnZhMkZzWFRvZ2MyOXJZV3hFYVhOMFlXNWpaU3hjYmlBZ1cwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa2hoYlcxcGJtZGRPaUJvWVcxdGFXNW5SR2x6ZEdGdVkyVXNYRzRnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NUZkV05zYVdSbFlXNWRPaUJsZFdOc2FXUmxZVzVFYVhOMFlXNWpaU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCcGJuUkJjbkpoZVVScGMzUmhibU5sVFdWMGNtbGpjMDFsZEdodlpITTZJSHNnVzI1aGJXVTZJSE4wY21sdVoxMDZJQ2g0T2lCVmFXNTBNekpCY25KaGVTd2dlVG9nVldsdWRETXlRWEp5WVhrcElEMCtJRzUxYldKbGNpQjlJRDBnZTF4dUlDQmJTVzUwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VkdGdWFXMXZkRzlKYm5SQmNuSmhlVjA2SUhSaGJtbHRiM1J2UkdsemRHRnVZMlZKYm5SQmNuSmhlU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCdWRXMWlaWEpFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSek9pQjdJRnR1WVcxbE9pQnpkSEpwYm1kZE9pQW9lRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNCYlRuVnRZbVZ5VFdWMGNtbGpjMDVoYldWekxrUnBabVpsY21WdVkyVmRPaUJ1ZFcxbGNtbGpSR2x6ZEdGdVkyVXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnUVhaaGFXeGhZbXhsVFdWMGNtbGpjeUE5SUh0Y2JpQWdXMFJwYzNSaGJtTmxUV1YwY21samMxTjFZbXBsWTNSekxsWmxZM1J2Y2wwNklIdGNiaUFnSUNCYlZtVmpkRzl5VFdWMGNtbGpjMDVoYldWekxrVjFZMnhwWkdWaGJsMDZJSFpsWTNSdmNrUnBjM1JoYm1ObFRXVjBjbWxqYzAxbGRHaHZaSE5iVm1WamRHOXlUV1YwY21samMwNWhiV1Z6TGtWMVkyeHBaR1ZoYmwwc1hHNGdJSDBzWEc0Z0lGdEVhWE4wWVc1alpVMWxkSEpwWTNOVGRXSnFaV04wY3k1VGRISnBibWRkT2lCN1hHNGdJQ0FnVzFOMGNtbHVaMDFsZEhKcFkzTk9ZVzFsY3k1TVpYWmxibk5vZEdWcGJsMDZJSE4wY21sdVowUnBjM1JoYm1ObFRXVjBjbWxqYzAxbGRHaHZaSE5iVTNSeWFXNW5UV1YwY21samMwNWhiV1Z6TGt4bGRtVnVjMmgwWldsdVhTeGNiaUFnSUNCYlUzUnlhVzVuVFdWMGNtbGpjMDVoYldWekxrcGhjbTlYYVc1cmJHVnlYVG9nYzNSeWFXNW5SR2x6ZEdGdVkyVk5aWFJ5YVdOelRXVjBhRzlrYzF0VGRISnBibWROWlhSeWFXTnpUbUZ0WlhNdVNtRnliMWRwYm10c1pYSmRMRnh1SUNBZ0lGdFRkSEpwYm1kTlpYUnlhV056VG1GdFpYTXVUV0Z1YUdGMGRHRnVYVG9nYzNSeWFXNW5SR2x6ZEdGdVkyVk5aWFJ5YVdOelRXVjBhRzlrYzF0VGRISnBibWROWlhSeWFXTnpUbUZ0WlhNdVRXRnVhR0YwZEdGdVhTeGNiaUFnSUNCYlUzUnlhVzVuVFdWMGNtbGpjMDVoYldWekxrOXVaV2h2ZEYwNklITjBjbWx1WjBScGMzUmhibU5sVFdWMGNtbGpjMDFsZEdodlpITmJVM1J5YVc1blRXVjBjbWxqYzA1aGJXVnpMazl1WldodmRGMHNYRzRnSUgwc1hHNGdJRnRFYVhOMFlXNWpaVTFsZEhKcFkzTlRkV0pxWldOMGN5NUNhWFJCY25KaGVWMDZJSHRjYmlBZ0lDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VkdGdWFXMXZkRzlkT2lCaWFYUkJjbkpoZVVScGMzUmhibU5sVFdWMGNtbGpjMDFsZEdodlpITmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VkdGdWFXMXZkRzlkTEZ4dUlDQWdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1RWFXTmxYVG9nWW1sMFFYSnlZWGxFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSelcwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa1JwWTJWZExGeHVJQ0FnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NUJjM2x0YldWMGNtbGpYVG9nWW1sMFFYSnlZWGxFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSelcwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0Z6ZVcxdFpYUnlhV05kTEZ4dUlDQWdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1Q2NtRjFia0pzWVc1eGRXVjBYVG9nWW1sMFFYSnlZWGxFYVhOMFlXNWpaVTFsZEhKcFkzTk5aWFJvYjJSelcwSnBkRUZ5Y21GNVRXVjBjbWxqYzA1aGJXVnpMa0p5WVhWdVFteGhibkYxWlhSZExGeHVJQ0FnSUZ0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NURiM05wYm1WZE9pQmlhWFJCY25KaGVVUnBjM1JoYm1ObFRXVjBjbWxqYzAxbGRHaHZaSE5iUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVEyOXphVzVsWFN4Y2JpQWdJQ0JiUW1sMFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNdVMzVnNZM3A1Ym5OcmFWMDZJR0pwZEVGeWNtRjVSR2x6ZEdGdVkyVk5aWFJ5YVdOelRXVjBhRzlrYzF0Q2FYUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NUxkV3hqZW5sdWMydHBYU3hjYmlBZ0lDQmJRbWwwUVhKeVlYbE5aWFJ5YVdOelRtRnRaWE11VFdORGIyNXVZWFZuYUdWNVhUb2dZbWwwUVhKeVlYbEVhWE4wWVc1alpVMWxkSEpwWTNOTlpYUm9iMlJ6VzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxrMWpRMjl1Ym1GMVoyaGxlVjBzWEc0Z0lDQWdXMEpwZEVGeWNtRjVUV1YwY21samMwNWhiV1Z6TGxKdloyOTBSMjlzWkdKbGNtZGRPaUJpYVhSQmNuSmhlVVJwYzNSaGJtTmxUV1YwY21samMwMWxkR2h2WkhOYlFtbDBRWEp5WVhsTlpYUnlhV056VG1GdFpYTXVVbTluYjNSSGIyeGtZbVZ5WjEwc1hHNGdJQ0FnVzBKcGRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsSjFjM05sYkYwNklHSnBkRUZ5Y21GNVJHbHpkR0Z1WTJWTlpYUnlhV056VFdWMGFHOWtjMXRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1U2RYTnpaV3hkTEZ4dUlDQWdJRnRDYVhSQmNuSmhlVTFsZEhKcFkzTk9ZVzFsY3k1VGIydGhiRjA2SUdKcGRFRnljbUY1UkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2MxdENhWFJCY25KaGVVMWxkSEpwWTNOT1lXMWxjeTVUYjJ0aGJGMHNYRzRnSUgwc1hHNGdJRnRFYVhOMFlXNWpaVTFsZEhKcFkzTlRkV0pxWldOMGN5NU5ZV055YjAxdmJHVmpkV3hsWFRvZ2V5QXZMeUJ2Y0hScGIyNWhiQ0JoY21keklHNWxaV1JsWkNCbWIzSWdiV0ZqY205dGIyeGxZM1ZzWlNCbWRXNWpkR2x2Ym5NZ2QyaHBZMmdnYVc1cGRHbGhiR2w2WlNCMGFHVnRYRzRnSUNBZ1cwMXRSR2x6ZEdGdVkyVkdkVzVqZEdsdmJuTk9ZVzFsY3k1SVFVMU5TVTVIWFRvZ2JXMUVhWE4wWVc1alpVWjFibU4wYVc5dWMxdE5iVVJwYzNSaGJtTmxSblZ1WTNScGIyNXpUbUZ0WlhNdVNFRk5UVWxPUjEwc1hHNGdJQ0FnVzAxdFJHbHpkR0Z1WTJWR2RXNWpkR2x2Ym5OT1lXMWxjeTVNUlZaRlRsTklWRVZKVGwwNklHMXRSR2x6ZEdGdVkyVkdkVzVqZEdsdmJuTmJUVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjMDVoYldWekxreEZWa1ZPVTBoVVJVbE9YU3hjYmlBZ0lDQmJUVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjMDVoYldWekxrNUZSVVJNUlUxQlRrNWZWMVZPVTBOSVhUb2diVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjMXROYlVScGMzUmhibU5sUm5WdVkzUnBiMjV6VG1GdFpYTXVUa1ZGUkV4RlRVRk9UbDlYVlU1VFEwaGRMRnh1SUNBZ0lGdE5iVVJwYzNSaGJtTmxSblZ1WTNScGIyNXpUbUZ0WlhNdVRVOU9UMDFGVWw5RFNFVk5TVU5CVEY5RVNWTlVRVTVEUlYwNlhHNGdJQ0FnSUNCdGJVUnBjM1JoYm1ObFJuVnVZM1JwYjI1elcwMXRSR2x6ZEdGdVkyVkdkVzVqZEdsdmJuTk9ZVzFsY3k1TlQwNVBUVVZTWDBOSVJVMUpRMEZNWDBSSlUxUkJUa05GWFN4Y2JpQWdmU3hjYmlBZ1cwUnBjM1JoYm1ObFRXVjBjbWxqYzFOMVltcGxZM1J6TGs1MWJXSmxjbDA2SUh0Y2JpQWdJQ0JiVG5WdFltVnlUV1YwY21samMwNWhiV1Z6TGtScFptWmxjbVZ1WTJWZE9pQnVkVzFpWlhKRWFYTjBZVzVqWlUxbGRISnBZM05OWlhSb2IyUnpXMDUxYldKbGNrMWxkSEpwWTNOT1lXMWxjeTVFYVdabVpYSmxibU5sWFN4Y2JpQWdmU3hjYmlBZ1cwUnBjM1JoYm1ObFRXVjBjbWxqYzFOMVltcGxZM1J6TGtsdWRFRnljbUY1WFRvZ2UxeHVJQ0FnSUZ0SmJuUkJjbkpoZVUxbGRISnBZM05PWVcxbGN5NVVZVzVwYlc5MGIwbHVkRUZ5Y21GNVhUb2dhVzUwUVhKeVlYbEVhWE4wWVc1alpVMWxkSEpwWTNOTlpYUm9iMlJ6VzBsdWRFRnljbUY1VFdWMGNtbGpjMDVoYldWekxsUmhibWx0YjNSdlNXNTBRWEp5WVhsZExGeHVJQ0I5WEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1RXVjBjbWxqVkc5RVlYUmhWSGx3WlRvZ1UzUnlhVzVuUkdsamRHbHZibUZ5ZVNBOUlFOWlhbVZqZEM1clpYbHpLRUYyWVdsc1lXSnNaVTFsZEhKcFkzTXBYRzRnSUM1eVpXUjFZMlVvS0hKbGREb2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTd2dhMlY1S1NBOVBpQjdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQjJZV3dnYjJZZ1QySnFaV04wTG10bGVYTW9RWFpoYVd4aFlteGxUV1YwY21samMxdHJaWGtnWVhNZ1FYWmhhV3hoWW14bFJHRjBZVlI1Y0dWelhTa3BYRzRnSUNBZ0lDQnlaWFJiZG1Gc0lHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBnUFNCclpYazdYRzVjYmlBZ0lDQnlaWFIxY200Z2NtVjBPMXh1SUNCOUxDQjdmU2s3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjeUE5SUd0bGVXOW1JSFI1Y0dWdlppQkJkbUZwYkdGaWJHVk5aWFJ5YVdOek8xeHVaWGh3YjNKMElIUjVjR1VnVm1WamRHOXlUV1YwY21samN5QTlJR3RsZVc5bUlIUjVjR1Z2WmlCQmRtRnBiR0ZpYkdWTlpYUnlhV056VzBScGMzUmhibU5sVFdWMGNtbGpjMU4xWW1wbFkzUnpMbFpsWTNSdmNsMDdYRzVsZUhCdmNuUWdkSGx3WlNCVGRISnBibWROWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYlJHbHpkR0Z1WTJWTlpYUnlhV056VTNWaWFtVmpkSE11VTNSeWFXNW5YVHRjYm1WNGNHOXlkQ0IwZVhCbElFSnBkRUZ5Y21GNVRXVjBjbWxqY3lBOUlHdGxlVzltSUhSNWNHVnZaaUJCZG1GcGJHRmliR1ZOWlhSeWFXTnpXMFJwYzNSaGJtTmxUV1YwY21samMxTjFZbXBsWTNSekxrSnBkRUZ5Y21GNVhUdGNibVY0Y0c5eWRDQjBlWEJsSUV0dWIzZHVUV1YwY21samN5QTlJRk4wY21sdVowMWxkSEpwWTNNZ2ZDQkNhWFJCY25KaGVVMWxkSEpwWTNNZ2ZDQldaV04wYjNKTlpYUnlhV056SUh4Y2JpQWdUVzFFYVhOMFlXNWpaVVoxYm1OMGFXOXVjMDVoYldWeklId2dUblZ0WW1WeVRXVjBjbWxqYzA1aGJXVnpJSHdnU1c1MFFYSnlZWGxOWlhSeWFXTnpUbUZ0WlhNN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaaGJHbGtWSGx3WlhNZ1BWeHVJQ0I3SUdSaGRHRTZJSE4wY21sdVoxdGRMQ0J0WlhSeWFXTTZJRk4wY21sdVowMWxkSEpwWTNNZ2ZDQk5iVVJwYzNSaGJtTmxSblZ1WTNScGIyNXpUbUZ0WlhNZ2ZTQjhYRzRnSUhzZ1pHRjBZVG9nVm1WamRHOXlXMTBzSUcxbGRISnBZem9nVm1WamRHOXlUV1YwY21samN5QjlJSHhjYmlBZ2V5QmtZWFJoT2lCQ2FYUkJjbkpoZVZ0ZExDQnRaWFJ5YVdNNklFSnBkRUZ5Y21GNVRXVjBjbWxqY3lCOUlIeGNiaUFnZXlCa1lYUmhPaUJ1ZFcxaVpYSmJYU3dnYldWMGNtbGpPaUJPZFcxaVpYSk5aWFJ5YVdOelRtRnRaWE1nZlR0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHpVM1J5YVc1blRXVjBjbWxqS0c1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0J5WlhSMWNtNGdUV1YwY21salZHOUVZWFJoVkhsd1pWdHVZVzFsWFNBOVBTQW5VM1J5YVc1bkp6dGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdselFtbDBRWEp5WVhsTlpYUnlhV01vYm1GdFpUb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJSEpsZEhWeWJpQk5aWFJ5YVdOVWIwUmhkR0ZVZVhCbFcyNWhiV1ZkSUQwOUlDZENhWFJCY25KaGVTYzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMxWmxZM1J2Y2sxbGRISnBZeWh1WVcxbE9pQkxibTkzYmsxbGRISnBZM01wSUh0Y2JpQWdjbVYwZFhKdUlFMWxkSEpwWTFSdlJHRjBZVlI1Y0dWYmJtRnRaVjBnUFQwZ0oxWmxZM1J2Y2ljN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzAxaFkzSnZUVzlzWldOMWJHVk5aWFJ5YVdNb2JtRnRaVG9nUzI1dmQyNU5aWFJ5YVdOektTQjdYRzRnSUhKbGRIVnliaUJOWlhSeWFXTlViMFJoZEdGVWVYQmxXMjVoYldWZElEMDlJRVJwYzNSaGJtTmxUV1YwY21samMxTjFZbXBsWTNSekxrMWhZM0p2VFc5c1pXTjFiR1V1ZEc5VGRISnBibWNvS1R0Y2JuMWNibHh1THlvcUlFMWhibWhoZEhSaGJpQmthWE4wWVc1alpTQmlaWFIzWldWdUlIUjNieUJ6WlhGMVpXNWpaWE1nS0cxaGRHTm9JQzBnTUN3Z2JXbHpiV0YwWTJnZ0xTQXhLU0J1YjNKdFlXeHBlbVZrSUdadmNpQnNaVzVuZEdndUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiV0Z1YUdGMGRHRnVSR2x6ZEdGdVkyVW9jekU2SUhOMGNtbHVaeXdnY3pJNklITjBjbWx1WnlrNklHNTFiV0psY2lCN1hHNGdJR2xtSUNoek1TNXNaVzVuZEdnZ0lUMDlJSE15TG14bGJtZDBhQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQXhPMXh1SUNCOUlHVnNjMlVnZTF4dUlDQWdJR3hsZENCa2FYTjBPaUJ1ZFcxaVpYSWdQU0F3TzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBeE95QnBJRHdnY3pFdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ0lDQmthWE4wSUNzOUlITXhXMmxkSUQwOUlITXlXMmxkSUQ4Z01DQTZJREU3WEc0Z0lDQWdjbVYwZFhKdUlHUnBjM1FnTHlCek1TNXNaVzVuZEdnN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTmhkR1ZuYjNKcFkyRnNSR2x6ZEdGdVkyVW9jekU2SUhOMGNtbHVaeXdnY3pJNklITjBjbWx1WnlrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQnpNU0E5UFQwZ2N6SWdQeUF3SURvZ01UdGNibjFjYmx4dUx5b3FJRlZ1YVdacFpXUWdZMnhoYzNNZ2FXMXdiR1Z0Wlc1MGFXNW5JR1JwWm1abGNtVnVkQ0J6ZEhKcGJtY2diV1ZoYzNWeVpYTXVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdUV1ZoYzNWeVpTQjdYRzRnSUhCeWIzUmxZM1JsWkNCdFpYUm9iMlE2SUV0dWIzZHVUV1YwY21samN6dGNiaUFnY0hKdmRHVmpkR1ZrSUdSaGRHRlVlWEJsT2lCQmRtRnBiR0ZpYkdWRVlYUmhWSGx3WlhNN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaWE1nWVc0Z2FXNXpkR0Z1WTJVZ2IyWWdUV1ZoYzNWeVpTQjNhWFJvSUM1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzFsZEdodlpDQk5aWFJvYjJRZ2RHOGdZMkZzWTNWc1lYUmxJR1JwYzNSaGJtTmxJR0psZEhkbFpXNGdjM1J5YVc1bmN5NWNiaUFnSUNvZ1FHMWxiV0psY205bUlFMWxZWE4xY21WeVhHNGdJQ0FxTDF4dUlDQmpiMjV6ZEhKMVkzUnZjaWh0WlhSb2IyUTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0FnSUhSb2FYTXViV1YwYUc5a0lEMGdiV1YwYUc5a08xeHVJQ0FnSUhSb2FYTXVaR0YwWVZSNWNHVWdQU0JOWlhSeWFXTlViMFJoZEdGVWVYQmxXMjFsZEdodlpGMGdZWE1nUVhaaGFXeGhZbXhsUkdGMFlWUjVjR1Z6TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1kzVnpkRzl0SUhOMGNtbHVaeUJrYVhOMFlXNWpaU0JtZFc1amRHbHZiaUJ6Y0dWamFXWnBaV1F1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiM0IwYzMwZ2IzQjBjeUJQY0hScGIyNXpJR1p2Y2lCMGFHVWdiV1ZoYzNWeVpTNGdkWE5sWkNCbWIzSWdiV0ZqY205dGIyeGxZM1ZzWlNCa2FYTjBZVzVqWlhOY2JpQWdJQ29nUUhKbGRIVnliaUI3UkdsemRHRnVZMlZOWlhSeWFXTjlJRU5oYkd4aVlXTnJJRzltSUhSb1pTQnRaV0Z6ZFhKbElHTm9iM05sYmk1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUUxbFlYTjFjbVZ5WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFRXVmhjM1Z5WlNodmNIUnpQem9nWVc1NUtUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdNZ2UxeHVJQ0FnSUdOdmJuTjBJR1JwWTNRNklIc2dXMnRsZVRvZ2MzUnlhVzVuWFRwY2JpQWdJQ0FnSUh0YmEyVjVNam9nYzNSeWFXNW5YVG9nUkdsemRHRnVZMlZOWlhSeWFXTWdmQ0FvS0c5d2RITTZJR0Z1ZVNrZ1BUNGdSR2x6ZEdGdVkyVk5aWFJ5YVdNcGZWeHVJQ0FnSUgwZ1BTQkJkbUZwYkdGaWJHVk5aWFJ5YVdOek8xeHVJQ0FnSUdsbUlDZ2haR2xqZEM1b1lYTlBkMjVRY205d1pYSjBlU2gwYUdsekxtUmhkR0ZVZVhCbEtTQjhmQ0FoWkdsamRGdDBhR2x6TG1SaGRHRlVlWEJsWFM1b1lYTlBkMjVRY205d1pYSjBlU2gwYUdsekxtMWxkR2h2WkNrcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUZWdWEyNXZkMjRnYldWaGMzVnlaU0FrZTNSb2FYTXViV1YwYUc5a2ZTQm1iM0lnWkdGMFlTQjBlWEJsSUNSN2RHaHBjeTVrWVhSaFZIbHdaWDFnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5OWVdOeWIwMXZiR1ZqZFd4bFRXVjBjbWxqS0hSb2FYTXViV1YwYUc5a0tTQS9YRzRnSUNBZ0lDQW9aR2xqZEZ0MGFHbHpMbVJoZEdGVWVYQmxYVnQwYUdsekxtMWxkR2h2WkYwZ1lYTWdLQ2h2Y0hSek9pQmhibmtwSUQwK0lFUnBjM1JoYm1ObFRXVjBjbWxqS1Nrb2IzQjBjeWtnT2x4dUlDQWdJQ0FnWkdsamRGdDBhR2x6TG1SaGRHRlVlWEJsWFZ0MGFHbHpMbTFsZEdodlpGMGdZWE1nUkdsemRHRnVZMlZOWlhSeWFXTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJqZFhOMGIyMGdjM1J5YVc1bklHUnBjM1JoYm1ObElHSjVJSFJvWlNCbmFYWmxiaUJrWVhSaElIUjVjR1V1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWFpoYVd4aFlteGxSR0YwWVZSNWNHVnpmU0JrWVhSaFZIbHdaU0JOWlhSeWFXTW5jeUJrWVhSaElIUjVjR1ZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1blcxMTlJRTFsZEhKcFl5QnVZVzFsY3lCM2FHbGphQ0JsZUhCbFkzUnpJSFJvWlNCbmFYWmxiaUJrWVhSaElIUjVjR1ZjYmlBZ0lDb2dRRzFsYldKbGNtOW1JRTFsWVhOMWNtVnlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkRTFsZEhKcFkwSjVSR0YwWVZSNWNHVW9aR0YwWVZSNWNHVTZJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjeWs2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtdGxlWE1vUVhaaGFXeGhZbXhsVFdWMGNtbGpjMXRrWVhSaFZIbHdaVjBwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRkpsZEhWeWJuTWdiV1YwY21saklHNWhiV1Z6SUdGMllXbHNZV0pzWlM1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUUxbFlYTjFjbVZ5WEc0Z0lDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHRjJZV2xzWVdKc1pVMWxZWE4xY21WektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG10bGVYTW9RWFpoYVd4aFlteGxUV1YwY21samN5azdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdLCJuYW1lcyI6WyJTdHJpbmdNZXRyaWNzTmFtZXMiLCJWZWN0b3JNZXRyaWNzTmFtZXMiLCJCaXRBcnJheU1ldHJpY3NOYW1lcyIsIkludEFycmF5TWV0cmljc05hbWVzIiwiRGlzdGFuY2VNZXRyaWNzU3ViamVjdHMiLCJOdW1iZXJNZXRyaWNzTmFtZXMiLCJ2ZWN0b3JEaXN0YW5jZU1ldHJpY3NNZXRob2RzIiwic3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyIsInMxIiwiczIiLCJsZW5ndGgiLCJkaXN0IiwiaSIsImJpdEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kcyIsImludEFycmF5RGlzdGFuY2VNZXRyaWNzTWV0aG9kcyIsIm51bWJlckRpc3RhbmNlTWV0cmljc01ldGhvZHMiLCJBdmFpbGFibGVNZXRyaWNzIiwiTWV0cmljVG9EYXRhVHlwZSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJyZXQiLCJrZXkiLCJ2YWwiLCJpc0JpdEFycmF5TWV0cmljIiwibmFtZSIsIk1lYXN1cmUiLCJtZXRob2QiLCJkYXRhVHlwZSIsImNvbnN0cnVjdG9yIiwidGhpcyIsImdldE1lYXN1cmUiLCJvcHRzIiwiZGljdCIsImhhc093blByb3BlcnR5IiwiRXJyb3IiLCJzdGF0aWMiLCJhdmFpbGFibGVNZWFzdXJlcyJdLCJzb3VyY2VSb290IjoiIn0=
package/dist/93.js DELETED
@@ -1,2 +0,0 @@
1
- var eda;(()=>{"use strict";var e,r,t={1093:(e,r,t)=>{var o=t(2786),a=t(2128);onmessage=async function(e){(0,o.P)().then((r=>{let t=e.data,o=(0,a.Gz)(r,t,"partialLeastSquareRegression","number");postMessage({callResult:o,args:t})}))}}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return t[e](n,n.exports,a),n.loaded=!0,n.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[146],(()=>a(1093)));return a.O(e)},a.amdO={},e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(l=0;l<e.length;l++){for(var[t,o,n]=e[l],s=!0,c=0;c<t.length;c++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(s=!1,n<i&&(i=n));if(s){e.splice(l--,1);var p=o();void 0!==p&&(r=p)}}return r}n=n||0;for(var l=e.length;l>0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&!e;)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=self.location+"";var e={93:1};a.f.i=(r,t)=>{e[r]||importScripts(a.p+a.u(r))};var r=self.webpackChunkeda=self.webpackChunkeda||[],t=r.push.bind(r);r.push=r=>{var[o,n,i]=r;for(var s in n)a.o(n,s)&&(a.m[s]=n[s]);for(i&&i(a);o.length;)e[o.pop()]=1;t(r)}})(),r=a.x,a.x=()=>a.e(146).then(r);var n=a.x();eda=n})();
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QW1CRSxLQUFLQyxLQUFLSCxHQUM5REEsRUFBbUJFLEtBdkJDNUUsSUFDbkIsSUFBS2lCLEVBQVU2RCxFQUFhQyxHQUFXL0UsRUFDdkMsSUFBSSxJQUFJSyxLQUFZeUUsRUFDaEIxRSxFQUFvQjhCLEVBQUU0QyxFQUFhekUsS0FDckNELEVBQW9CUSxFQUFFUCxHQUFZeUUsRUFBWXpFLElBSWhELElBREcwRSxHQUFTQSxFQUFRM0UsR0FDZGEsRUFBU00sUUFDZGtELEVBQWdCeEQsRUFBUytELE9BQVMsRUFDbkNMLEVBQTJCM0UsRUFBSyxDLEtYbkI3QlAsRUFBT1csRUFBb0JTLEVBQy9CVCxFQUFvQlMsRUFBSSxJQUNoQlQsRUFBb0JtQyxFQUFFLEtBQUsxQyxLQUFLSixHWUR4QyxJQUFJcUIsRUFBc0JWLEVBQW9CUyxJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9jaHVuayBsb2FkZWQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9zdGFydHVwIGNodW5rIGRlcGVuZGVuY2llcyIsIndlYnBhY2s6Ly9lZGEvLi93YXNtL3dvcmtlcnMvcGFydGlhbExlYXN0U3F1YXJlUmVncmVzc2lvbldvcmtlci5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9hbWQgb3B0aW9ucyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIG5leHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLng7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoMTQ2KS50aGVuKG5leHQpO1xufTsiLCIvLyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuXG5cbmltcG9ydCB7ZXhwb3J0RURBfSBmcm9tICcuLi8uLi93YXNtL0VEQUZvcldlYldvcmtlcic7XG5pbXBvcnQge2NwcFdyYXBwZXJ9IGZyb20gJy4uLy4uL3dhc20vY2FsbFdhc21Gb3JXZWJXb3JrZXIuanMnO1xuXG5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbiAoZXZ0KSB7XG4gIGV4cG9ydEVEQSgpLnRoZW4obW9kdWxlID0+IFxuICAgIHtcbiAgICAgIGxldCBhcmdzID0gZXZ0LmRhdGE7XG4gICAgICBsZXQgcmVzdWx0ID0gY3BwV3JhcHBlcihtb2R1bGUsIGFyZ3MsICdwYXJ0aWFsTGVhc3RTcXVhcmVSZWdyZXNzaW9uJywgJ251bWJlcicpO1xuICAgICAgcG9zdE1lc3NhZ2UoeydjYWxsUmVzdWx0JzogcmVzdWx0LCAnYXJncyc6IGFyZ3N9KTtcbiAgICB9IClcbn0iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHRsb2FkZWQ6IGZhbHNlLFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcblx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuLy8gdGhlIHN0YXJ0dXAgZnVuY3Rpb25cbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG5cdC8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxuXHR2YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFsxNDZdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXygxMDkzKSkpXG5cdF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG5cdHJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fO1xufTtcblxuIiwiX193ZWJwYWNrX3JlcXVpcmVfXy5hbWRPID0ge307IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IChtb2R1bGUpID0+IHtcblx0bW9kdWxlID0gT2JqZWN0LmNyZWF0ZShtb2R1bGUpO1xuXHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsICdleHBvcnRzJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0c2V0OiAoKSA9PiB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0VTIE1vZHVsZXMgbWF5IG5vdCBhc3NpZ24gbW9kdWxlLmV4cG9ydHMgb3IgZXhwb3J0cy4qLCBVc2UgRVNNIGV4cG9ydCBzeW50YXgsIGluc3RlYWQ6ICcgKyBtb2R1bGUuaWQpO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBtb2R1bGU7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0OTM6IDFcbn07XG5cbi8vIGltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZ1xudmFyIGluc3RhbGxDaHVuayA9IChkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHR9XG5cdH1cblx0aWYocnVudGltZSkgcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0d2hpbGUoY2h1bmtJZHMubGVuZ3RoKVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkcy5wb3AoKV0gPSAxO1xuXHRwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcbn07XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmYuaSA9IChjaHVua0lkLCBwcm9taXNlcykgPT4ge1xuXHQvLyBcIjFcIiBpcyB0aGUgc2lnbmFsIGZvciBcImFscmVhZHkgbG9hZGVkXCJcblx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuXHRcdGlmKHRydWUpIHsgLy8gYWxsIGNodW5rcyBoYXZlIEpTXG5cdFx0XHRpbXBvcnRTY3JpcHRzKF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSk7XG5cdFx0fVxuXHR9XG59O1xuXG52YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua2VkYVwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtlZGFcIl0gfHwgW107XG52YXIgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24gPSBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IGluc3RhbGxDaHVuaztcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsIi8vIHJ1biBzdGFydHVwXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18ueCgpO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibmV4dCIsIm9ubWVzc2FnZSIsImFzeW5jIiwiZXZ0IiwidGhlbiIsIm1vZHVsZSIsImFyZ3MiLCJkYXRhIiwicmVzdWx0IiwicG9zdE1lc3NhZ2UiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJ1bmRlZmluZWQiLCJleHBvcnRzIiwiaWQiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIngiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiTyIsImFtZE8iLCJjaHVua0lkcyIsImZuIiwicHJpb3JpdHkiLCJub3RGdWxmaWxsZWQiLCJJbmZpbml0eSIsImkiLCJsZW5ndGgiLCJmdWxmaWxsZWQiLCJqIiwiT2JqZWN0Iiwia2V5cyIsImV2ZXJ5Iiwia2V5Iiwic3BsaWNlIiwiciIsImQiLCJkZWZpbml0aW9uIiwibyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImYiLCJlIiwiY2h1bmtJZCIsIlByb21pc2UiLCJhbGwiLCJyZWR1Y2UiLCJwcm9taXNlcyIsInUiLCJnIiwiZ2xvYmFsVGhpcyIsInRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsImhtZCIsImNyZWF0ZSIsImNoaWxkcmVuIiwic2V0IiwiRXJyb3IiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImluc3RhbGxlZENodW5rcyIsImNodW5rTG9hZGluZ0dsb2JhbCIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwicHVzaCIsImJpbmQiLCJtb3JlTW9kdWxlcyIsInJ1bnRpbWUiLCJwb3AiXSwic291cmNlUm9vdCI6IiJ9