login.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. "use strict";
  2. var __assign = (this && this.__assign) || function () {
  3. __assign = Object.assign || function(t) {
  4. for (var s, i = 1, n = arguments.length; i < n; i++) {
  5. s = arguments[i];
  6. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
  7. t[p] = s[p];
  8. }
  9. return t;
  10. };
  11. return __assign.apply(this, arguments);
  12. };
  13. Object.defineProperty(exports, "__esModule", { value: true });
  14. var app = getApp();
  15. var speed = 1000;
  16. var time = 60;
  17. var interval = 50;
  18. var phoneInter = 0;
  19. var codeInter = 0;
  20. var setInter = 0;
  21. var config_1 = require("../../config");
  22. var hwUser_impl_1 = require("../../service/impl/hwUser.impl");
  23. Page({
  24. data: {
  25. color: false,
  26. code_message: '获取验证码',
  27. time: time,
  28. canLogin: false,
  29. phone: '',
  30. formatPhone: '',
  31. code: '',
  32. userAgreement: encodeURIComponent(config_1.baseurl + '/uploadfile/userAgreement.html'),
  33. privacyPolicy: encodeURIComponent(config_1.baseurl + '/uploadfile/privacyPolicy.html'),
  34. isCheck: false,
  35. },
  36. checked: function () {
  37. this.setData({
  38. isCheck: !this.data.isCheck,
  39. canLogin: Boolean(app.globalData.phone_zz.test(this.data.phone) && this.data.code && !this.data.isCheck),
  40. });
  41. },
  42. openWebView: function (e) {
  43. wx.navigateTo({
  44. url: '/pages/web-view/web-view?url=' + e.currentTarget.dataset.url,
  45. });
  46. },
  47. countDown: function (options) {
  48. var _this = this;
  49. var _time = --this.data.time;
  50. this.setData({
  51. code_message: "\u5DF2\u53D1\u9001(" + _time + "s)",
  52. color: true,
  53. time: _time
  54. });
  55. setInter = setInterval(function (_) {
  56. var _time = _this.data.time;
  57. _time--;
  58. if (_time > 0) {
  59. _this.setData({
  60. code_message: "\u5DF2\u53D1\u9001(" + _time + "s)",
  61. color: true,
  62. time: _time
  63. });
  64. }
  65. else {
  66. clearInterval(setInter);
  67. _this.setData({
  68. code_message: "\u91CD\u65B0\u53D1\u9001",
  69. color: false,
  70. time: time
  71. });
  72. }
  73. }, speed);
  74. hwUser_impl_1.getAuthCodeImpl(__assign({ phone: this.data.phone }, options)).then(function (res) {
  75. if (res.errCode === 0) {
  76. wx.showToast({
  77. icon: 'none',
  78. title: '发送成功',
  79. });
  80. }
  81. }).catch(function () {
  82. clearInterval(setInter);
  83. wx.showModal({
  84. title: '提示',
  85. content: '发送失败,请稍后重试',
  86. showCancel: false,
  87. success: function () {
  88. _this.setData({
  89. code_message: "\u91CD\u65B0\u53D1\u9001",
  90. color: false,
  91. time: time
  92. });
  93. }
  94. });
  95. });
  96. },
  97. getCode: function () {
  98. if (this.data.time === time) {
  99. if (app.globalData.phone_zz.test(this.data.phone)) {
  100. wx.navigateToMiniProgram({
  101. appId: 'wx5a3a7366fd07e119',
  102. path: '/pages/captcha/index',
  103. extraData: {
  104. appId: config_1.captcha
  105. }
  106. });
  107. }
  108. else {
  109. wx.showToast({
  110. icon: 'none',
  111. title: this.data.phone ? '手机号码格式错误!' : '请填写手机号码!',
  112. });
  113. }
  114. }
  115. },
  116. checkPhone: function (e) {
  117. var _this = this;
  118. var value = e.detail.value;
  119. var phone = value.replace(/\s/g, '');
  120. clearTimeout(phoneInter);
  121. phoneInter = setTimeout(function (_) {
  122. var formatPhone;
  123. if (phone.length === 11) {
  124. formatPhone = value.replace(/^(.{3})(.*)(.{4})/, '$1 $2 $3');
  125. _this.setData({
  126. formatPhone: formatPhone
  127. });
  128. }
  129. _this.setData({
  130. canLogin: Boolean(app.globalData.phone_zz.test(value) && _this.data.code && _this.data.isCheck),
  131. phone: phone,
  132. });
  133. }, interval);
  134. },
  135. checkCode: function (e) {
  136. var _this = this;
  137. var value = e.detail.value;
  138. clearTimeout(codeInter);
  139. codeInter = setTimeout(function (_) {
  140. _this.setData({
  141. canLogin: Boolean(app.globalData.phone_zz.test(_this.data.phone) && value && _this.data.isCheck),
  142. code: value
  143. });
  144. }, interval);
  145. },
  146. submit: function () {
  147. var status = this.data.canLogin;
  148. if (status) {
  149. hwUser_impl_1.phoneLoginImpl({
  150. phone: this.data.phone,
  151. code: this.data.code,
  152. register_from: 0
  153. }).then(function (res) {
  154. if (res.errCode === 0) {
  155. wx.setStorage({
  156. key: 'userId',
  157. data: res.data.userInfo.id,
  158. success: function () {
  159. wx.setStorage({
  160. key: 'userToken',
  161. data: res.data.userInfo.userToken,
  162. success: function () {
  163. wx.setStorageSync('userInfo', res.data.userInfo);
  164. if (!wx.getStorageInfoSync().keys.length) {
  165. wx.setStorageSync('hasClear', true);
  166. }
  167. if (res.data.userInfo.isDemonstrate) {
  168. wx.reLaunch({
  169. url: '/pages/index/index'
  170. });
  171. }
  172. else {
  173. wx.reLaunch({
  174. url: '/pages/my-order/my-order'
  175. });
  176. }
  177. }
  178. });
  179. }
  180. });
  181. }
  182. });
  183. }
  184. else {
  185. var content = '';
  186. if (!this.data.isCheck) {
  187. content = '请勾选用用户协议与隐私政策';
  188. }
  189. if (!this.data.code) {
  190. content = '请填写验证码';
  191. }
  192. if (!this.data.phone || !app.globalData.phone_zz.test(this.data.phone)) {
  193. content = '电话号码格式错误';
  194. }
  195. wx.showModal({
  196. title: '登录失败',
  197. content: content,
  198. showCancel: false,
  199. confirmColor: '#31364C',
  200. });
  201. }
  202. },
  203. onLoad: function (options) {
  204. this.options = options;
  205. },
  206. onReady: function () {
  207. },
  208. onShow: function () {
  209. wx.hideHomeButton();
  210. var captchaResult = app.globalData.captchaResult;
  211. console.log(captchaResult);
  212. if (captchaResult && captchaResult.ret === 0) {
  213. var ticket = captchaResult.ticket;
  214. var randstr = captchaResult.randstr;
  215. this.countDown({ ticket: ticket, randstr: randstr });
  216. app.globalData.captchaResult = null;
  217. }
  218. },
  219. onHide: function () {
  220. },
  221. onUnload: function () {
  222. },
  223. onPullDownRefresh: function () {
  224. }
  225. });
  226. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2dpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDckIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ25CLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNoQixJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDcEIsSUFBSSxVQUFVLEdBQVcsQ0FBQyxDQUFDO0FBQzNCLElBQUksU0FBUyxHQUFXLENBQUMsQ0FBQztBQUMxQixJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUE7QUFDeEIsdUNBQStDO0FBQy9DLDhEQUFpRjtBQUNqRixJQUFJLENBQUM7SUFLSCxJQUFJLEVBQUU7UUFDSixLQUFLLEVBQUUsS0FBSztRQUNaLFlBQVksRUFBRSxPQUFPO1FBQ3JCLElBQUksTUFBQTtRQUNKLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLEVBQUU7UUFDVCxXQUFXLEVBQUUsRUFBRTtRQUNmLElBQUksRUFBRSxFQUFFO1FBQ1IsYUFBYSxFQUFFLGtCQUFrQixDQUFDLGdCQUFPLEdBQUcsZ0NBQWdDLENBQUM7UUFDN0UsYUFBYSxFQUFFLGtCQUFrQixDQUFDLGdCQUFPLEdBQUcsZ0NBQWdDLENBQUM7UUFDN0UsT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUlELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQzNCLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN6RyxD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LEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0IsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUU7WUFFNUMsSUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxJQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLFFBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUE7WUFDbkMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUtELE1BQU0sRUFBRTtJQUVSLENBQUM7SUFLRCxRQUFRLEVBQUU7SUFFVixDQUFDO0lBS0QsaUJBQWlCLEVBQUU7SUFFbkIsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHBhZ2VzL2xvZ2luL2xvZ2luLmpzXG5jb25zdCBhcHAgPSBnZXRBcHAoKTtcbmNvbnN0IHNwZWVkID0gMTAwMDtcbmNvbnN0IHRpbWUgPSA2MDtcbmNvbnN0IGludGVydmFsID0gNTA7XG5sZXQgcGhvbmVJbnRlcjogbnVtYmVyID0gMDtcbmxldCBjb2RlSW50ZXI6IG51bWJlciA9IDA7XG5sZXQgc2V0SW50ZXI6IG51bWJlciA9IDBcbmltcG9ydCB7IGJhc2V1cmwsIGNhcHRjaGEgfSBmcm9tICcuLi8uLi9jb25maWcnXG5pbXBvcnQgeyBnZXRBdXRoQ29kZUltcGwsIHBob25lTG9naW5JbXBsIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaW1wbC9od1VzZXIuaW1wbFwiO1xuUGFnZSh7XG5cbiAgLyoqXG4gICAqIOmhtemdoueahOWIneWni+aVsOaNrlxuICAgKi9cbiAgZGF0YToge1xuICAgIGNvbG9yOiBmYWxzZSwgLy8g6aqM6K+B56CB5a2X5L2T6aKc6ImyXG4gICAgY29kZV9tZXNzYWdlOiAn6I635Y+W6aqM6K+B56CBJywgLy8g6aqM6K+B56CB5paH5a2XXG4gICAgdGltZSwgLy8g5pe26Ze0XG4gICAgY2FuTG9naW46IGZhbHNlLCAvL+aYr+WQpuWPr+S7peeZu+mZhlxuICAgIHBob25lOiAnJywgLy8g5omL5py6XG4gICAgZm9ybWF0UGhvbmU6ICcnLFxuICAgIGNvZGU6ICcnLCAvLyDpqozor4HnoIFcbiAgICB1c2VyQWdyZWVtZW50OiBlbmNvZGVVUklDb21wb25lbnQoYmFzZXVybCArICcvdXBsb2FkZmlsZS91c2VyQWdyZWVtZW50Lmh0bWwnKSxcbiAgICBwcml2YWN5UG9saWN5OiBlbmNvZGVVUklDb21wb25lbnQoYmFzZXVybCArICcvdXBsb2FkZmlsZS9wcml2YWN5UG9saWN5Lmh0bWwnKSxcbiAgICBpc0NoZWNrOiBmYWxzZSwgLy8g5piv5ZCm5Yu+6YCJ55So5oi35Y2P6K6uXG4gIH0sXG4gIC8qKlxuICAgKiDli77pgInnlKjmiLfljY/orq5cbiAgICovXG4gIGNoZWNrZWQoKSB7XG4gICAgdGhpcy5zZXREYXRhKHtcbiAgICAgIGlzQ2hlY2s6ICF0aGlzLmRhdGEuaXNDaGVjayxcbiAgICAgIGNhbkxvZ2luOiBCb29sZWFuKGFwcC5nbG9iYWxEYXRhLnBob25lX3p6LnRlc3QodGhpcy5kYXRhLnBob25lKSAmJiB0aGlzLmRhdGEuY29kZSAmJiAhdGhpcy5kYXRhLmlzQ2hlY2spLFxuICAgIH0pXG4gIH0sXG4gIC8vIOaJk+W8gOeUqOaIt+WNj+iuriDlkowg6ZqQ56eB5pS/562WXG4gIG9wZW5XZWJWaWV3KGU6IGFueSkge1xuICAgIHd4Lm5hdmlnYXRlVG8oe1xuICAgICAgdXJsOiAnL3BhZ2VzL3dlYi12aWV3L3dlYi12aWV3P3VybD0nICsgZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQudXJsLFxuICAgIH0pXG4gIH0sXG4gIC8qKlxuICAgKiBcbiAgICog5pe26Ze05YCS6K6h5pe2XG4gICAqL1xuICBjb3VudERvd24ob3B0aW9uczogYW55KSB7XG4gICAgY29uc3QgX3RpbWUgPSAtLXRoaXMuZGF0YS50aW1lO1xuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICBjb2RlX21lc3NhZ2U6IGDlt7Llj5HpgIEoJHtfdGltZX1zKWAsXG4gICAgICBjb2xvcjogdHJ1ZSxcbiAgICAgIHRpbWU6IF90aW1lXG4gICAgfSlcbiAgICBzZXRJbnRlciA9IHNldEludGVydmFsKF8gPT4ge1xuICAgICAgbGV0IF90aW1lID0gdGhpcy5kYXRhLnRpbWU7XG4gICAgICBfdGltZS0tO1xuICAgICAgaWYgKF90aW1lID4gMCkge1xuICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgIGNvZGVfbWVzc2FnZTogYOW3suWPkemAgSgke190aW1lfXMpYCxcbiAgICAgICAgICBjb2xvcjogdHJ1ZSxcbiAgICAgICAgICB0aW1lOiBfdGltZVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChzZXRJbnRlcik7XG4gICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgICAgY29kZV9tZXNzYWdlOiBg6YeN5paw5Y+R6YCBYCxcbiAgICAgICAgICBjb2xvcjogZmFsc2UsXG4gICAgICAgICAgdGltZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBzcGVlZClcbiAgICBnZXRBdXRoQ29kZUltcGwoeyBwaG9uZTogdGhpcy5kYXRhLnBob25lLCAuLi5vcHRpb25zIH0pLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmIChyZXMuZXJyQ29kZSA9PT0gMCkge1xuICAgICAgICB3eC5zaG93VG9hc3Qoe1xuICAgICAgICAgIGljb246ICdub25lJyxcbiAgICAgICAgICB0aXRsZTogJ+WPkemAgeaIkOWKnycsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbChzZXRJbnRlcik7XG4gICAgICB3eC5zaG93TW9kYWwoe1xuICAgICAgICB0aXRsZTogJ+aPkOekuicsXG4gICAgICAgIGNvbnRlbnQ6ICflj5HpgIHlpLHotKXvvIzor7fnqI3lkI7ph43or5UnLFxuICAgICAgICBzaG93Q2FuY2VsOiBmYWxzZSxcbiAgICAgICAgc3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgICAgICBjb2RlX21lc3NhZ2U6IGDph43mlrDlj5HpgIFgLFxuICAgICAgICAgICAgY29sb3I6IGZhbHNlLFxuICAgICAgICAgICAgdGltZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfSxcbiAgLyoqXG4gICAqIOiOt+WPlumqjOivgeeggVxuICAgKiBAcGhvbmUg55S16K+d5Y+356CBXG4gICAqL1xuICBnZXRDb2RlKCkge1xuICAgIGlmICh0aGlzLmRhdGEudGltZSA9PT0gdGltZSkge1xuICAgICAgaWYgKGFwcC5nbG9iYWxEYXRhLnBob25lX3p6LnRlc3QodGhpcy5kYXRhLnBob25lKSkge1xuICAgICAgICB3eC5uYXZpZ2F0ZVRvTWluaVByb2dyYW0oe1xuICAgICAgICAgIGFwcElkOiAnd3g1YTNhNzM2NmZkMDdlMTE5JyxcbiAgICAgICAgICBwYXRoOiAnL3BhZ2VzL2NhcHRjaGEvaW5kZXgnLFxuICAgICAgICAgIGV4dHJhRGF0YToge1xuICAgICAgICAgICAgYXBwSWQ6IGNhcHRjaGEvL+aCqOeUs+ivt+eahOmqjOivgeeggeeahCBhcHBJZFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmRhdGEucGhvbmUgPyAn5omL5py65Y+356CB5qC85byP6ZSZ6K+v77yBJyA6ICfor7floavlhpnmiYvmnLrlj7fnoIHvvIEnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLyoqXG4gICAqIOajgOafpeaYr+WQpuWPr+S7peeZu+mZhlxuICAgKiBAY2FuTG9naW4g5piv5ZCm5Y+v5Lul55m76ZmGXG4gICAqIEBwaG9uZSAg55S16K+d5Y+356CBXG4gICAqL1xuICBjaGVja1Bob25lKGU6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBlLmRldGFpbC52YWx1ZTtcbiAgICBjb25zdCBwaG9uZSA9IHZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgY2xlYXJUaW1lb3V0KHBob25lSW50ZXIpO1xuICAgIHBob25lSW50ZXIgPSBzZXRUaW1lb3V0KF8gPT4ge1xuICAgICAgbGV0IGZvcm1hdFBob25lOiBzdHJpbmdcbiAgICAgIGlmIChwaG9uZS5sZW5ndGggPT09IDExKSB7XG4gICAgICAgIGZvcm1hdFBob25lID0gdmFsdWUucmVwbGFjZSgvXiguezN9KSguKikoLns0fSkvLCAnJDEgJDIgJDMnKTtcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICBmb3JtYXRQaG9uZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgY2FuTG9naW46IEJvb2xlYW4oYXBwLmdsb2JhbERhdGEucGhvbmVfenoudGVzdCh2YWx1ZSkgJiYgdGhpcy5kYXRhLmNvZGUgJiYgdGhpcy5kYXRhLmlzQ2hlY2spLFxuICAgICAgICBwaG9uZTogcGhvbmUsXG4gICAgICB9KVxuICAgIH0sIGludGVydmFsKVxuICB9LFxuICAvKipcbiAgICog5qOA5p+l6aqM6K+B56CB5piv5ZCm5Y+v5Lul55m76ZmGXG4gICAqIEBjYW5Mb2dpbiDmmK/lkKblj6/ku6XnmbvpmYZcbiAgICogQGNvZGUgIOmqjOivgeeggVxuICAgKi9cbiAgY2hlY2tDb2RlKGU6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gZS5kZXRhaWwudmFsdWU7XG4gICAgY2xlYXJUaW1lb3V0KGNvZGVJbnRlcik7XG4gICAgY29kZUludGVyID0gc2V0VGltZW91dChfID0+IHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGNhbkxvZ2luOiBCb29sZWFuKGFwcC5nbG9iYWxEYXRhLnBob25lX3p6LnRlc3QodGhpcy5kYXRhLnBob25lKSAmJiB2YWx1ZSAmJiB0aGlzLmRhdGEuaXNDaGVjayksXG4gICAgICAgIGNvZGU6IHZhbHVlXG4gICAgICB9KVxuICAgIH0sIGludGVydmFsKVxuICB9LFxuICAvKipcbiAgICog54K55Ye755m75b2VXG4gICAqIEBwaG9uZSB7bnVtYmVyfSDnlLXor53lj7fnoIFcbiAgICogQGNvZGUge3N0cmluZ30g6aqM6K+B56CBXG4gICAqIEByZWdpc3Rlcl9mcm9tIHvms6jlhozmnaXmupB9IDAg5bCP56iL5bqPIDEgQVBQIDIg5ZCO5Y+wXG4gICAqL1xuICBzdWJtaXQoKSB7XG4gICAgLy8g6aaW5YWI5Yik5pat5piv5ZCm5Y+v5Lul55m76ZmGXG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5kYXRhLmNhbkxvZ2luO1xuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHBob25lTG9naW5JbXBsKHtcbiAgICAgICAgcGhvbmU6IHRoaXMuZGF0YS5waG9uZSxcbiAgICAgICAgY29kZTogdGhpcy5kYXRhLmNvZGUsXG4gICAgICAgIHJlZ2lzdGVyX2Zyb206IDBcbiAgICAgIH0pLnRoZW4ocmVzID0+IHtcbiAgICAgICAgaWYgKHJlcy5lcnJDb2RlID09PSAwKSB7XG4gICAgICAgICAgLy8g6K+35rGC5oiQ5YqfIOWtmOWFpXVzZXJJROWSjHVzZXJUb2tlbiDlubbmoLnmja7mnaXmupDot7PovazkuI3lkIznmoTpobXpnaIgIOWQjuWPsOi0puWPt+i3s+i9rOmmlumhtVxuICAgICAgICAgIHd4LnNldFN0b3JhZ2Uoe1xuICAgICAgICAgICAga2V5OiAndXNlcklkJyxcbiAgICAgICAgICAgIGRhdGE6IHJlcy5kYXRhLnVzZXJJbmZvLmlkLFxuICAgICAgICAgICAgc3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgICAgICB3eC5zZXRTdG9yYWdlKHtcbiAgICAgICAgICAgICAgICBrZXk6ICd1c2VyVG9rZW4nLFxuICAgICAgICAgICAgICAgIGRhdGE6IHJlcy5kYXRhLnVzZXJJbmZvLnVzZXJUb2tlbixcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB3eC5zZXRTdG9yYWdlU3luYygndXNlckluZm8nLCByZXMuZGF0YS51c2VySW5mbylcbiAgICAgICAgICAgICAgICAgIGlmICghd3guZ2V0U3RvcmFnZUluZm9TeW5jKCkua2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgd3guc2V0U3RvcmFnZVN5bmMoJ2hhc0NsZWFyJywgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC8vIOaPkOS6pOaYr+WQpueZu+W9leS/oeaBr1xuICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLnVzZXJJbmZvLmlzRGVtb25zdHJhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgd3gucmVMYXVuY2goe1xuICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9wYWdlcy9pbmRleC9pbmRleCdcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHd4LnJlTGF1bmNoKHtcbiAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvcGFnZXMvbXktb3JkZXIvbXktb3JkZXInXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjb250ZW50ID0gJydcbiAgICAgIGlmICghdGhpcy5kYXRhLmlzQ2hlY2spIHtcbiAgICAgICAgY29udGVudCA9ICfor7fli77pgInnlKjnlKjmiLfljY/orq7kuI7pmpDnp4HmlL/nrZYnXG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuZGF0YS5jb2RlKSB7XG4gICAgICAgIGNvbnRlbnQgPSAn6K+35aGr5YaZ6aqM6K+B56CBJ1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmRhdGEucGhvbmUgfHwgIWFwcC5nbG9iYWxEYXRhLnBob25lX3p6LnRlc3QodGhpcy5kYXRhLnBob25lKSkge1xuICAgICAgICBjb250ZW50ID0gJ+eUteivneWPt+eggeagvOW8j+mUmeivrydcbiAgICAgIH1cbiAgICAgIHd4LnNob3dNb2RhbCh7XG4gICAgICAgIHRpdGxlOiAn55m75b2V5aSx6LSlJyxcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgc2hvd0NhbmNlbDogZmFsc2UsXG4gICAgICAgIGNvbmZpcm1Db2xvcjogJyMzMTM2NEMnLFxuICAgICAgfSlcbiAgICB9XG4gIH0sXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdouWKoOi9vVxuICAgKi9cbiAgb25Mb2FkOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIOeUn+WRveWRqOacn+WHveaVsC0t55uR5ZCs6aG16Z2i5Yid5qyh5riy5p+T5a6M5oiQXG4gICAqL1xuICBvblJlYWR5OiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLmmL7npLpcbiAgICovXG4gIG9uU2hvdzogZnVuY3Rpb24gKCkge1xuICAgIHd4LmhpZGVIb21lQnV0dG9uKCk7XG4gICAgY29uc3QgY2FwdGNoYVJlc3VsdCA9IGFwcC5nbG9iYWxEYXRhLmNhcHRjaGFSZXN1bHQ7XG4gICAgY29uc29sZS5sb2coY2FwdGNoYVJlc3VsdCk7XG4gICAgaWYgKGNhcHRjaGFSZXN1bHQgJiYgY2FwdGNoYVJlc3VsdC5yZXQgPT09IDApIHtcbiAgICAgIC8vIOWwhumqjOivgeeggeeahOe7k+aenOi/lOWbnuiHs+acjeWKoeerr+agoemqjFxuICAgICAgY29uc3QgdGlja2V0ID0gY2FwdGNoYVJlc3VsdC50aWNrZXQ7XG4gICAgICBjb25zdCByYW5kc3RyID0gY2FwdGNoYVJlc3VsdC5yYW5kc3RyO1xuICAgICAgdGhpcy5jb3VudERvd24oeyB0aWNrZXQsIHJhbmRzdHIgfSlcbiAgICAgIGFwcC5nbG9iYWxEYXRhLmNhcHRjaGFSZXN1bHQgPSBudWxsOyAvLyDpqozor4HnoIHnmoTnpajmja7kuLrkuIDmrKHmgKfnpajmja7vvIzlj5blrozpnIDopoHnva7nqbpcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIOeUn+WRveWRqOacn+WHveaVsC0t55uR5ZCs6aG16Z2i6ZqQ6JePXG4gICAqL1xuICBvbkhpZGU6IGZ1bmN0aW9uICgpIHtcblxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdouWNuOi9vVxuICAgKi9cbiAgb25VbmxvYWQ6IGZ1bmN0aW9uICgpIHtcblxuICB9LFxuXG4gIC8qKlxuICAgKiDpobXpnaLnm7jlhbPkuovku7blpITnkIblh73mlbAtLeebkeWQrOeUqOaIt+S4i+aLieWKqOS9nFxuICAgKi9cbiAgb25QdWxsRG93blJlZnJlc2g6IGZ1bmN0aW9uICgpIHtcblxuICB9XG59KSJdfQ==