var __awaiter=this&&this.__awaiter||function(n,t,r,e){function i(n){return n instanceof r?n:new r((function(t){t(n)}))}return new(r||(r=Promise))((function(r,u){function c(n){try{a(e.next(n))}catch(n){u(n)}}function o(n){try{a(e["throw"](n))}catch(n){u(n)}}function a(n){n.done?r(n.value):i(n.value).then(c,o)}a((e=e.apply(n,t||[])).next())}))};var __generator=this&&this.__generator||function(n,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},e,i,u,c;return c={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(c[Symbol.iterator]=function(){return this}),c;function o(n){return function(t){return a([n,t])}}function a(o){if(e)throw new TypeError("Generator is already executing.");while(c&&(c=0,o[0]&&(r=0)),r)try{if(e=1,i&&(u=o[0]&2?i["return"]:o[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,o[1])).done)return u;if(i=0,u)o=[o[0]&2,u.value];switch(o[0]){case 0:case 1:u=o;break;case 4:r.label++;return{value:o[1],done:false};case 5:r.label++;i=o[1];o=[0];continue;case 7:o=r.ops.pop();r.trys.pop();continue;default:if(!(u=r.trys,u=u.length>0&&u[u.length-1])&&(o[0]===6||o[0]===2)){r=0;continue}if(o[0]===3&&(!u||o[1]>u[0]&&o[1]