UNPKG

@hippy/debug-server-next

Version:
11 lines (10 loc) 19.4 kB
/** * ================================================================= * aegis-node-sdk@1.21.6 (c) 2021 Tencent Application Monitor. * Author pumpkincai. * Last Release Time Tue Jun 29 2021 22:11:43 GMT+0800 (GMT+08:00). * Released under the MIT License. * Thanks for supporting TAM & Aegis! * ================================================================= **/ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("axios")):"function"==typeof define&&define.amd?define(["axios"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Aegis=t(e.axios)}(this,function(e){"use strict";var t,g=(t=e)&&"object"==typeof t&&"default"in t?t:{default:t},o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function n(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=(s.prototype.indexOf=function(e,t){for(var n=0;n<e.length;n++)if(e[n].callback===t)return n;return-1},s.prototype.on=function(e,t,n){if(void 0===n&&(n=0),this){var o=this.EventsList[e];return o||(this.EventsList[e]=[],o=this.EventsList[e]),-1!==this.indexOf(o,t)||o.push({name:e,type:n||0,callback:t}),this}},s.prototype.one=function(e,t){this.on(e,t,1)},s.prototype.remove=function(e,t){if(this){var n=this.EventsList[e];if(!n)return null;if(t)return n.length&&(t=this.indexOf(n,t),n.splice(t,1)),this;try{delete this.EventsList[e]}catch(e){}return null}},s.prototype.clear=function(){this.EventsList={}},s),r=function(t){try{return encodeURIComponent(decodeURIComponent(t))}catch(e){return t}};function s(){var s=this;this.emit=function(e,t){if(s){var n;if(null!=(o=s.EventsList[e])&&o.length)for(var o=o.slice(),i=0;i<o.length;i++){n=o[i];try{var r=n.callback.apply(s,[t]);if(1===n.type&&s.remove(e,n.callback),!1===r)break}catch(e){throw e}}return s}},this.EventsList={}}(m={})[m.number=-1]="number",m.string="";function c(e){if("string"==typeof e)return e;try{return(JSON.stringify(e,(o=[],i=[],function(e,t){if(t instanceof Error)return"Error.message: "+t.message+" \n Error.stack: "+t.stack;if("object"==typeof t&&null!==t){var n=o.indexOf(t);if(-1!==n)return"[Circular "+i[n]+"]";o.push(t),i.push(e||"root")}return t}),4)||"undefined").replace(/"/gim,"")}catch(e){return"error happen when aegis stringify: \n "+e.message+" \n "+e.stack}var o,i}var u,f;(P=u={}).INFO_ALL="-1",P.API_RESPONSE="1",P.INFO="2",P.ERROR="4",P.PROMISE_ERROR="8",P.AJAX_ERROR="16",P.SCRIPT_ERROR="32",P.IMAGE_ERROR="64",P.CSS_ERROR="128",P.CONSOLE_ERROR="256",P.MEDIA_ERROR="512",P.RET_ERROR="1024",P.REPORT="2048",(m={})[m.android=1]="android",m[m.ios=2]="ios",m[m.windows=3]="windows",m[m.macos=4]="macos",m[m.linux=5]="linux",m[m.devtools=6]="devtools",m[m.other=100]="other",(P={})[P.unknown=100]="unknown",P[P.wifi=1]="wifi",P[P.net2g=2]="net2g",P[P.net3g=3]="net3g",P[P.net4g=4]="net4g",P[P.net5g=5]="net5g",P[P.net6g=6]="net6g",(m=f=f||{}).LOG="log",m.SPEED="speed",m.PERFORMANCE="performance",m.OFFLINE="offline",m.WHITE_LIST="whiteList",m.VITALS="vitals",m.PV="pv",m.CUSTOM_PV="customPV",m.EVENT="event",m.CUSTOM="custom",m.SDK_ERROR="sdkError";function l(e){return e.filter(function(n,o){return!e.find(function(e,t){return o!==t&&n.url===e.url&&200===n.status})})}function p(e){e.level===u.INFO_ALL&&(e.level=u.INFO)}function a(){}function h(t,n){Object.getOwnPropertyNames(t).forEach(function(e){"function"==typeof t[e]&&"constructor"!==e&&(n?n[e]=function(){}:t[e]=function(){})})}var d,m,v=function(n){return function(e,t){if("number"!=typeof n.config.random&&(console.warn("random必须为0~1的数字,如非数字,会使用1(不过滤)"),n.config.random=1),Math.random()<n.config.random)return t(e)}},y=function(o,i){return function(e,t){var n=i.logCreated;return"function"!=typeof n||(e=e.filter(function(e){return!1!==n(e)})),o("beforeWrite",e),t(e)}},b=function(e,n){var o,i=[],r=e.config;return e.lifeCycle.on("destroy",function(){i.length=0}),function(e,t){if(i.push(e),n&&i.length>=n)return i=l(i),t(i.splice(0,i.length)),void(o&&clearTimeout(o));o&&clearTimeout(o),o=setTimeout(function(){o=null,0<(i=l(i)).length&&t(i.splice(0,i.length))},r.delay)}},w=function(e,t){return Array.isArray(e)?t(e.map(function(e){return{msg:"string"==typeof e.msg?e.msg:[].concat(e.msg).map(c).join(" "),level:e.level,trace:e.trace}})):t({msg:"string"==typeof e.msg?e.msg:c(e.msg),level:e.level,trace:e.trace})},O=function(s){var e,c=!1,l=!1,t=!1,a=[];s.lifeCycle.on("onConfigChange",function(){e&&clearTimeout(e),e=setTimeout(function(){var e;!t&&s.config&&(t=!0,(e=void 0===(e=s.config.whiteListUrl)?"":e)&&s.send({url:e,type:f.WHITE_LIST},function(e){l=!0;try{var t=e.data||JSON.parse(e),n=t.retcode,o=t.result,i=void 0===o?{}:o;if(0===n){if(c=i.is_in_white_list,s.isWhiteList=c,i.shutdown)return void s.destroy();0<=i.rate&&i.rate<=1&&(s.config.random=i.rate)}s.isWhiteList&&a.length?E(s)(a.splice(0),function(){}):!s.isWhiteList&&a.length&&(a.length=0);var r=s.config.onWhitelist;"function"==typeof r&&r(c)}catch(e){}},function(e){"403 forbidden"===e&&s.destroy(),l=!0}),t=!1)},s.config.uin?50:500)}),s.lifeCycle.on("destroy",function(){a.length=0});var n=!1;return function(e,t){!n&&e.some(function(e){return e.level===u.ERROR})&&(n=!0),c||n?t(e.concat(a.splice(0)).map(function(e){return p(e),e})):(e=e.filter(function(e){return e.level!==u.INFO&&e.level!==u.API_RESPONSE?(p(e),!0):(l||(a.push(e),200<=a.length&&(a.length=200)),!1)})).length&&t(e)}},R=function(o){var i={};return function(e,t){var n="number"==typeof o.repeat?o.repeat:5;if(0===n)return t(e);t(e.filter(function(e){return e.level!==u.ERROR&&e.level!==u.PROMISE_ERROR&&e.level!==u.AJAX_ERROR&&e.level!==u.SCRIPT_ERROR&&e.level!==u.IMAGE_ERROR&&e.level!==u.CSS_ERROR&&e.level!==u.MEDIA_ERROR||(i[e.msg]=i[e.msg]||0,i[e.msg]+=1,!(i[e.msg]>n))}))}},E=function(o){return function(e,n){var t;o.send({url:o.config.url||"",data:(t=e,(t=Array.isArray(t)?t:[t]).map(function(t,n){return Object.getOwnPropertyNames(t).map(function(e){return r(e)+"["+n+"]="+(void 0===t[e]?"":r(t[e]))}).join("&")}).join("&")+(t.length?"&count="+t.length:"")),method:"post",contentType:"application/x-www-form-urlencoded",type:f.LOG},function(){var t=o.config.onReport;"function"==typeof t&&e.forEach(function(e){t(e)}),"function"==typeof n&&n([])},function(e){"403 forbidden"===e&&o.destroy()})}},x=function(n){if(!n||!n.reduce||!n.length)throw new TypeError("createPipeline need at least one function param");return 1===n.length?function(e,t){n[0](e,t||a)}:n.reduce(function(n,o){return function(e,t){return void 0===t&&(t=a),n(e,function(e){return null==o?void 0:o(e,t)})}})},P=(U.prototype.init=function(e){this.setConfig(e);for(var t=0;t<U.installedPlugins.length;t++)try{U.installedPlugins[t].patch(this)}catch(e){this.sendSDKError(e)}this.lifeCycle.emit("onInited")},U.prototype.setConfig=function(e){Object.assign(this.config,e);var t=(c=this.config).id,n=c.uin,o=c.version,i=c.ext1,r=c.ext2,s=c.ext3,c=(e=c.aid,this.bean.id!==t||this.bean.uin!==n||this.bean.aid!==e);return this.bean.id=t||"",this.bean.uin=n||"",this.bean.version=o||"1.21.6",this.bean.aid=e||"",i&&(this.bean.ext1=i),r&&(this.bean.ext2=r),s&&(this.bean.ext3=s),c&&this.lifeCycle.emit("onConfigChange",this.config),this.config},U.use=function(e){-1===U.installedPlugins.indexOf(e)&&e.aegisPlugin&&U.installedPlugins.push(e)},U.unuse=function(e){-1!==(e=U.installedPlugins.indexOf(e))&&U.installedPlugins.splice(e,1)},U.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.normalLogPipeline({msg:e,level:u.INFO})},U.prototype.infoAll=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.normalLogPipeline({msg:e,level:u.INFO_ALL})},U.prototype.report=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.normalLogPipeline({msg:e,level:u.REPORT})},U.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.normalLogPipeline({msg:e,level:u.ERROR})},U.prototype.speedLogPipeline=function(e){throw new Error('You need to override "speedLogPipeline" method')},U.prototype.reportPv=function(e){var t,n=this;e&&(console.warn("reportPv is deprecated, please use reportEvent"),t=""+Object.getOwnPropertyNames(this.bean).filter(function(e){return"id"!==e}).map(function(e){return e+"="+n.bean[e]}).join("&"),this.send({url:this.config.url+"/"+e+"?"+t,addBean:!1,type:f.CUSTOM_PV},function(){},function(e){"403 forbidden"===e&&n.destroy()}))},U.prototype.reportEvent=function(e){e&&((e="string"==typeof e?{name:e,ext1:this.config.ext1||"",ext2:this.config.ext2||"",ext3:this.config.ext3||""}:e).name?this.eventPipeline(e):console.warn("reportEvent params error"))},U.prototype.reportTime=function(e,t){if("object"==typeof e)return this.reportT(e);"string"==typeof e?"number"==typeof t?t<0||6e4<t?(void 0):this.submitCustomTime(e,t):console.warn("reportTime: second param must be number"):console.warn("reportTime: first param must be a string")},U.prototype.reportT=function(e){var t=e.name,n=e.duration,o=void 0===(i=e.ext1)?"":i,i=void 0===(r=e.ext2)?"":r,r=void 0===(r=e.ext3)?"":r;if(e=e.from,"string"==typeof t&&"number"==typeof n&&"string"==typeof o&&"string"==typeof i&&"string"==typeof r){if(!(n<0||6e4<n))return this.submitCustomTime(t,n,o,i,r,void 0===e?"":e);}else console.warn("reportTime: params error")},U.prototype.time=function(e){"string"==typeof e?this.timeMap[e]?console.warn("Timer "+e+" already exists"):this.timeMap[e]=Date.now():console.warn("time: first param must be a string")},U.prototype.timeEnd=function(e){"string"==typeof e?this.timeMap[e]?(this.submitCustomTime(e,Date.now()-this.timeMap[e]),delete this.timeMap[e]):console.warn("Timer "+e+" does not exist"):console.warn("timeEnd: first param must be a string")},U.prototype.submitCustomTime=function(e,t,n,o,i,r){this.customTimePipeline({name:e,duration:t,ext1:n||this.config.ext1,ext2:o||this.config.ext2,ext3:i||this.config.ext3,from:r||void 0})},U.prototype.extendBean=function(e,t){this.bean[e]=t},U.prototype.send=function(e,t,n){throw new Error('You need to override "send" method')},U.prototype.sendSDKError=function(e){this.send({url:this.config.url+"?id=1085&msg[0]="+encodeURIComponent(c(e))+"&level[0]=2&from="+this.config.id+"&count=1&version="+this.config.id+"(1.21.6)",addBean:!1,method:"get",type:f.SDK_ERROR})},U.prototype.destroy=function(e){void 0===e&&(e=!1);var t,n,o=U.instances.indexOf(this);-1!==o&&U.instances.splice(o,1);for(var i=U.installedPlugins.length-1;0<=i;i--)try{var r=U.installedPlugins[i];r.unpatch(this),0===r.countInstance()&&(r.uninstall(),U.unuse(r),r=null)}catch(e){this.sendSDKError(e)}if(this.lifeCycle.emit("destroy"),this.lifeCycle.clear(),e)t=this,n=Object.getOwnPropertyDescriptors(t),Object.keys(n).forEach(function(e){n[e].writable&&(t[e]=null)}),Object.setPrototypeOf(this,null);else{for(var s=this;s.constructor!==Object&&h(s,this),s=Object.getPrototypeOf(s););0===U.instances.length&&(e=Object.getPrototypeOf(this).constructor,h(e),h(U))}},U.instances=[],U.LOG_TYPE=u,U.installedPlugins=[],U);function U(e){var t,n,r=this;this.config={version:0,delay:1e3,onError:!0,repeat:5,random:1,aid:!0,device:!0,pagePerformance:!0,webVitals:!0,speedSample:!0,hostUrl:"https://aegis.qq.com",url:"",offlineUrl:"",whiteListUrl:"",pvUrl:"",speedUrl:"",customTimeUrl:"",performanceUrl:"",webVitalsUrl:"",eventUrl:""},this.isWhiteList=!1,this.lifeCycle=new i,this.bean={},this.normalLogPipeline=x([b(this,5),w,v(this),R(this.config),y(this.lifeCycle.emit,this.config),(t=this,setTimeout(function(){var e;(e=void 0===(e=t.config.pvUrl)?"":e)&&t.send({url:e,type:f.PV},function(){},function(e){"403 forbidden"===e&&t.destroy()})},100),function(e,t){t(e)}),O(this),function(e,t){var n=JSON.parse(JSON.stringify(e));r.lifeCycle.emit("beforeReport",n);var o=r.config.beforeReport;if((e="function"==typeof o?e.filter(function(e){return!1!==o(e)}):e).length)return t(e)},E(this)]),this.eventPipeline=x([b(this,5),function(e){r.send({url:r.config.eventUrl+"?"+e.map(function(e,t){var n=encodeURIComponent(e.ext1||r.config.ext1||""),o=encodeURIComponent(e.ext2||r.config.ext2||""),i=encodeURIComponent(e.ext3||r.config.ext3||"");return"event["+t+"]="+encodeURIComponent(e.name)+"&ext1["+t+"]="+n+"&ext2["+t+"]="+o+"&ext3["+t+"]="+i}).join("&"),type:f.EVENT},function(){},function(e){"403 forbidden"===e&&r.destroy()})}]),this.timeMap={},this.customTimePipeline=x([b(this,10),function(e){r.send({url:r.config.customTimeUrl+"?payload="+encodeURIComponent(JSON.stringify({custom:e})),type:f.CUSTOM},function(){},function(e){"403 forbidden"===e&&r.destroy()})}]),this.config=(n=this.config,void 0===(e=e.hostUrl)&&(e="https://aegis.qq.com"),n.url=n.url||e+"/collect",n.offlineUrl=n.offlineUrl||e+"/offline",n.whiteListUrl=n.whiteListUrl||e+"/collect/whitelist",n.pvUrl=n.pvUrl||e+"/collect/pv",n.eventUrl=n.eventUrl||e+"/collect/events",n.speedUrl=n.speedUrl||e+"/speed",n.customTimeUrl=n.customTimeUrl||e+"/speed/custom",n.performanceUrl=n.performanceUrl||e+"/speed/performance",n.webVitalsUrl=n.webVitalsUrl||e+"/speed/webvitals",n),U.instances.push(this)}(m=d=d||{})[m.IP=0]="IP",m[m.HOST=1]="HOST",m[m.L5=2]="L5";var C,T,S,_=(k.prototype.replaceUrl=function(e,t,n){return e.replace(/(^http[s]?:\/\/)?/,"").replace(this.defaultSpeedBaseUrl,t).replace(this.defaultLogBaseurl,n)},n(B,T=k),B.prototype.select=function(e){var t=null;"host"===this.selectorConf.type?t=d.HOST:"ip"===this.selectorConf.type&&(t=d.IP);e=this.replaceUrl(e,this.selectorConf.speedBaseUrl,this.selectorConf.logBaseUrl);return Promise.resolve([{type:t,url:e,ctx:null},null])},B.prototype.update=function(){},B),L=(n(A,C=function(e){this.selector=e.selector,this.protocol=e.protocol}),A.prototype.send=function(h,d){return e=this,l=function(){var n,o,t,i,r,s,c,l,a,u,e,f=this;return r=this,s=function(e){switch(e.label){case 0:return n=h.url,[4,this.selector.select(n)];case 1:return t=e.sent(),o=t[0],(t=t[1])?console.error("[service selector err] "+t.message):(n=/^http[s]?:\/\//.test(o.url||"")?o.url:(this.isHttps?"https://":"http://")+o.url,!1!==h.addBean&&d.bean&&(n=n+(-1===n.indexOf("?")?"?":"&")+d.bean),i=Date.now(),g.default({url:n,method:"post",data:h.data,timeout:3e3}).then(function(e){var t={success:!0,code:0,cost:Date.now()-i};f.selector.update(o.ctx,t),null===(t=d.success)||void 0===t||t.call(d,JSON.stringify(e.data))}).catch(function(e){var t={success:!1,code:-1,cost:Date.now()-i};f.selector.update(o.ctx,t),null===(t=d.fail)||void 0===t||t.call(d,e)})),[2]}},u={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},e={next:p(0),throw:p(1),return:p(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function p(t){return function(e){return function(t){if(c)throw new TypeError("Generator is already executing.");for(;u;)try{if(c=1,l&&(a=2&t[0]?l.return:t[0]?l.throw||((a=l.return)&&a.call(l),0):l.next)&&!(a=a.call(l,t[1])).done)return a;switch(l=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,l=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!((a=0<(a=u.trys).length&&a[a.length-1])||6!==t[0]&&2!==t[0])){u=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3])){u.label=t[1];break}if(6===t[0]&&u.label<a[1]){u.label=a[1],a=t;break}if(a&&u.label<a[2]){u.label=a[2],u.ops.push(t);break}a[2]&&u.ops.pop(),u.trys.pop();continue}t=s.call(r,u)}catch(e){t=[6,e],l=0}finally{c=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}},new(c=(c=s=void 0)||Promise)(function(n,t){function o(e){try{r(l.next(e))}catch(e){t(e)}}function i(e){try{r(l.throw(e))}catch(e){t(e)}}function r(e){var t;e.done?n(e.value):((t=e.value)instanceof c?t:new c(function(e){e(t)})).then(o,i)}r((l=l.apply(e,s||[])).next())});var e,s,c,l},A),I=function(o,i){var r,s=[],e=i||{},c=e.maxLength,l=e.batchNum;return function(e,t){var n;s.push(e),c&&s.length>=c&&t(s.splice(0,s.length)),void 0===r&&(n=function(){var e=null===(e=null==i?void 0:i.allowNextRound)||void 0===e?void 0:e.call(i);if(!(e=void 0===e?!0:e))return clearTimeout(r),void(r=void 0);r=setTimeout(function(){var e=s.splice(0,l||10);0<e.length&&t(e),0<s.length?n():r=void 0},(null==o?void 0:o.batchReportInterval)||1e3)})()}},j={host:"ip_selector",ip:"ip_selector"},N={http:"protocol_http",https:"protocol_http"};function A(e){e=C.call(this,e)||this;return e.isHttps=!1,"https"===e.protocol&&(e.isHttps=!0),e}function B(e){e=T.call(this,e)||this;if("host"===e.selectorConf.type)e.selectorConf.logBaseUrl=e.selectorConf.logBaseUrl||e.defaultLogBaseurl,e.selectorConf.speedBaseUrl=e.selectorConf.speedBaseUrl||e.defaultSpeedBaseUrl;else if(!("ip"!==e.selectorConf.type||e.selectorConf.logBaseUrl&&e.selectorConf.speedBaseUrl))throw new Error("logBaseUrl or speedBaseUrl required");return e}function k(e){this.selectorConf=e,this.defaultSpeedBaseUrl="aegis.qq.com/speed",this.defaultLogBaseurl="aegis.qq.com"}return n(D,S=P),D.prototype.send=function(e,t,n){if(e&&"string"==typeof e.url&&this.bean.id)return"string"==typeof e.url?~e.url.indexOf("/whitelist")?null==t?void 0:t('{"retcode":0,"result":{"is_in_white_list":true}}'):void this.reqProtocol.send(e,{success:t,fail:n,bean:this.getBean}):void 0},D.prototype.setSessionID=function(e){this.extendBean("sessionId",e||"session-"+Date.now())},D.prototype.initSelector=function(){if(this.config.selector=this.config.selector||{type:"host"},!this.config.selector.type)throw new Error("selector type 不能为空");var e;switch(this.config.selector.type){case"host":case"ip":e=_;break;default:throw new Error("selector 类型非法,可选值: "+Object.keys(j).toString())}this.selector=new e(this.config.selector)},D.prototype.initProtocol=function(){var e,t;if(this.config.protocol||("host"===(null===(e=this.config.selector)||void 0===e?void 0:e.type)?this.config.protocol="https":this.config.protocol="http"),-1===Object.keys(N).indexOf(this.config.protocol))throw new Error("unknown protocol");switch(this.config.protocol){case"http":case"https":t=L;break;default:throw new Error("selector 类型非法,可选值: "+Object.keys(N).toString())}this.reqProtocol=new t({selector:this.selector,protocol:this.config.protocol})},Object.defineProperty(D.prototype,"getBean",{get:function(){var t=this;return Object.getOwnPropertyNames(this.bean).map(function(e){return e+"="+t.bean[e]}).join("&")},enumerable:!1,configurable:!0}),D.__version__="1.21.6",D.sessionID="session-"+Date.now(),D;function D(e){var o=S.call(this,e)||this;o.reportSpeedLog=x([I(o.config,{batchNum:5,maxLength:50}),function(e,t){o.lifeCycle.emit("beforeReportSpeed",e);var n=o.config.beforeReportSpeed;if((e="function"==typeof n?e.filter(function(e){return!1!==n(e)}):e).length)return t(e)},function(e){var t={fetch:[]};e.forEach(function(e){return t.fetch.push(e)}),o.send({url:""+o.config.speedUrl,method:"post",data:"payload="+encodeURIComponent(JSON.stringify({duration:t}))})}]),o.config.repeat=0;try{o.init(e),o.bean.sessionId=D.sessionID,o.bean.from=e.pageUrl||"",o.initSelector(),o.initProtocol()}catch(e){console.warn(e),console.log("%c以上错误发生在初始化 Aegis 的过程中,将会影响您正常使用 Aegis,\n建议您联系 aegis-helper,进行反馈,感谢您的支持。","color: red"),o.sendSDKError(e)}return o}});