From 741f1460e936929669c02b1366b2eb1f0520edf4 Mon Sep 17 00:00:00 2001 From: qcl_123 <5212384+qcl_123@user.noreply.gitee.com> Date: Thu, 23 Oct 2025 11:07:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9/DEEP/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 1 + .../dist/dev/app-plus/app-config-service.js | 2 +- unpackage/dist/dev/app-plus/app-service.js | 5628 +++++++++-------- unpackage/dist/dev/app-plus/app-view.js | 72 +- unpackage/dist/dev/app-plus/manifest.json | 2 +- unpackage/dist/dev/app-plus/view.css | 2 +- unpackage/dist/dev/app-plus/view.umd.min.js | 4 +- 7 files changed, 3125 insertions(+), 2586 deletions(-) diff --git a/manifest.json b/manifest.json index dbc71793..b77cabc9 100644 --- a/manifest.json +++ b/manifest.json @@ -5,6 +5,7 @@ "versionName" : "1.3.4", "versionCode" : 134, "transformPx" : false, + "sassImplementationName" : "node-sass", /* 5+App特有相关 */ "app-plus" : { "usingComponents" : true, diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js index 04476901..50db507d 100644 --- a/unpackage/dist/dev/app-plus/app-config-service.js +++ b/unpackage/dist/dev/app-plus/app-config-service.js @@ -1,7 +1,7 @@ var isReady=false;var onReadyCallbacks=[]; var isServiceReady=false;var onServiceReadyCallbacks=[]; -var __uniConfig = {"pages":["pages/home/home","pages/skiping/skip","pages/skiping/charts","pages/lunging/vitalcapacity","pages/lunging/charts","pages/my/me","pages/score/score","pages/PublicCards/PublicCards","pages/body/body","pages/zixun/list","pageTwo/history/history","pageTwo/history/historyDetail","pageTwo/compk/contrast","pageTwo/compk/pkdetail","pageTwo/cardList/card","pageTwo/business/business","pageTwo/business/addDevice","pageTwo/business/search","pageTwo/score/history","pageTwo/score/report","pageTwo/my/manage","pageTwo/message/list","pageTwo/my/userInfo","pageTwo/login/forgetPassword","pageTwo/login/login","pageTwo/my/about","pageTwo/setting/setting","pageTwo/setting/password","pageTwo/setting/email","pageTwo/setting/phone","pageTwo/devices/search","pageTwo/devices/G02","pageTwo/devices/PCL","pageTwo/devices/PCV02","pageTwo/devices/PCT01","pageTwo/devices/B20","pageTwo/devices/PCL22","pageTwo/devices/PCL22S","pageTwo/notepad/notepad","pageTwo/notepad/addNotepad","pageTwo/PublicCards/charts","pageTwo/PublicCards/history","pageTwo/PublicCards/contrast","pageTwo/PublicCards/pkdetail","pageTwo/home/inheritHeighet","pageTwo/home/bmi","pageTwo/home/childPK","pageTwo/webview/webview"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"","navigationBarBackgroundColor":"#37cc92","backgroundColor":"#fff"},"tabBar":{"color":"#333","fontSize":"14px","selectedColor":"#37cc92","backgroundColor":"#fff","list":[{"pagePath":"pages/home/home","iconPath":"static/shou.png","selectedIconPath":"static/shou2.png"},{"pagePath":"pages/zixun/list","iconPath":"static/ping.png","selectedIconPath":"static/ping2.png"},{"pagePath":"pages/my/me","iconPath":"static/wo.png","selectedIconPath":"static/wo2.png"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"Reedaw","compilerVersion":"4.24","entryPagePath":"pages/home/home","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locale":"","fallbackLocale":"en","locales":{"en":{"tips":{"msgTitle":"Friendly reminder","msgResetData":"Data reset in progress","msgSuccess":"Measurement successful!","msgFail":"Measurement failed!","msgUpgradeFail":"Upgrade Failed","msgDownloading":" Downloading now","msgLatestVersion":"It's the latest version!","msgCancel":"You have cancelled the operation!","msgLoginSuccess":"Login successful!","msgDelete":"Deletion successful","msgSetSuccess":"Set successfully","msgbindt":"Binding successful!","msgUnBind":"Unbind successfully!","msgBottom":"It's all there. Let's see something else.","msgNoMoreData":"There's no more data!","msgCalculating ":" Under calculation ","msgSetPasswordSuccess":"The password was set successfully.","msgAddUser":"There are no members yet. Please add them first.","verifyNickName":"Please enter the nickname","verifyNotOptional":"Future dates are not selectable","verifyDate":"Please select the measurement date","verifyBirthday":"Please select your date of birth","verifyHeight":"Please enter your height","verifyWeight":"Please enter your weight","verifyHead":"Please enter the head circumference","verifyHeightDad":"Please enter Dad's height.","verifyHeightMom":"Please enter Mom's height","verifyGender":"Please select gender","verifyBontrast":"Please select the data","verifyBodyDate":"Please select the correct time","verifyRecordType":"Please select the measurement item","verifyRecordTime":" Please enter the duration","verifyRecordNumber":"Please enter the number","verifyRecord":"Please enter","verifyPicker":"Please select","verifyAccount":"Please enter the correct Mobile phone or email address.","verifyEmail":"Please enter your email address","verifyEmailCorrect":"Please enter the correct email address","verifyMobile":"Please enter your Mobile phone","verifyMobileCorrect":"Please enter the correct phone number","verifyCode":"Please enter the verification code","verifyPassword":"Please enter your password","verifyPasswordTwo":"Please enter the confirmation password","verifyPasswordCorrect":"Please confirm that the password is filled in the same way twice.","verifyAgreement":"Please confirm and check the agreement first.","verifyOutLogin":"Do you want to log out?","verifyDeleteUser":"Do you want to delete this member?","verifyDeleteHistory":"Do you want to delete the current measurement record?","verifyUnbindt":"Do you want to unbind this device?","verifybindt":"Do you want to bind this device?","verifyDeleteAccount":"After a successful deletion, all associated information of this account will be cleared and cannot be retrieved. Do you want to delete it?","btnConfirm":"Confirm","btnSubmit":"Submit","btnSancellation":"Cancel","btnContinue":"Continue","btnBack":"Return","btnDelete":"Delete"},"common":{"titleSetLanguage":"Language Settings","titleSkipping":"Skipping rope data","titlevVitalcapacity":"Vitalcapacity data","titleCharts":"Motion curve","titleHome":"Record","titleNews":"Information","titleMe":"My","titleScore":"Estimated Score for the High School Entrance Examination","titleScoreHistory":"EstimatedScoreHistory","titleScoreReport":"EstimatedScoreReport","titleContrast":"Data comparison","titleDetail":"Details","titleBody":"Curve/Target","titleIncrement":"Increment","titleLanguage":"Language switching","titleHistory":"historical","titleCardSet":"Card Settings","titlebBusiness":"Equipment Management","titleBusinesAdd":"Add equipment","titleBusinesSList":"Device List","titleBusinesSearch":"Search Device","titleInheritHeighet":"Height Prediction","titleBmi":"BMI Assessment","titlePhone":"Bind the Mobile phone","titleEmail":"Bound Email","titlePasswordEdit":"Change password","titleSet":"Settings","titleDate":"Date","titleMember":"Data","titleManage":"Member Management","titleManageAdd":"Add Member","titleAboutUs":"AboutUs","titleSetPassword":"Set password","titlePassword":"Password","titleConfirmPassword":"Confirmation Password","titleForgotPassword":"Forgot password","titleCode":"Verification code","titleSendCode":"Send code","titleSendCodeRetry":"send again","titleLogin":"Login","titleRegister":"Register","titleToggleLogin":"Switch Login","titleAccountText":"Mobile phone/Email","titleAgreementText":"Read and agree","titleAgreementContntText":"Privacy Agreement","titleVersionUpdate":"VersionUpdate","titleNewVersion":"New version","infoAvatar":"Avatar","infoNickname":"Nickname","infoMobile":"Mobile phone","infoEmail":"Mailbox","infoAge":"age","infoAgeunit":"year","infoGender":"gender","infoMan":"Man","infoWoman":"Woman","infoUnknown":"unknown","infoBirthday":"Birthday","infoNowUser":"Currently","infoHeight":"height","infoHead":"HC","infoWeight":"weight","infoBMI":"BMI","infoAddress":"Region","btnEdit":"edit","btnDelete":"Delete","btnAdd":"Add","btnDetails":"Details","btnUnbind":"Unbind","btnBMI":"Calculate immediately","btnDeleteAccount":"Delete account","btnLogOut":"Log out","btnContrast":"contrast"},"linkBluetooth":{"onBluetoothTips":"Please make sure the device is on.","onBluetoothHaveFound":"Has been discovered","onBluetoothDevice":"device","onBluetoothMac":"mac address","onBluetoothBind":"Device Binding Process Description","onBluetoothSelect":"Select BLE for binding","onPhoneBluetoothTips":"The phone's BLE is not turned on.","onDeviceBluetoothTips":"Please make sure the device is powered on and the BLE permission on your phone is enabled!","accreditTips ":"You need to authorize the use of your mobile phone's BLE","openBluetoothSuccess":"BLE permission was obtained successfully. Reconnect to BLE.","openSettingFail":"Failed to obtain permission","isLinkBluetooth":"Please connect the device first.","startlinkBluetooth":"Start Connecting","linkBluetooth":"BLE connection in progress","anewlinkBluetooth":"reconnection","linkBluetoothFail":"Connection failed","linkBluetoothSuccess":"The connection is successful. Start measuring","startSearchBluetooth":"Start searching","searchBluetooth":"BLE search ongoing","searchBluetoothFail":"Search again","Nodevicefound":"No BLE device was found","onDeviceMeasureTips":"Please make sure the device is on.","openDeviceeMeasureTips":"Please turn on the Bluetooth of your mobile phone","openDeviceeMeasureTips2":"Please turn on the location information of your mobile phone","deviceDisconnection":"Connection interrupted Reconnect","offBluetooth":"BLE is turned off. Measure after turning on BLE.","remeasure":"Remeasure","StableWeight":"Stable weight","StableWeightText":"stable weight is :","realTimeWeight":"Real-time weight","realTimeWeightText":"real-time weight is :","heightText":"Your height is","zeroBtn":"zero","LockBtn":"Lock","SaveResult":"Save","measureResultTips":"Measurement Result Tips","nowWeight":"this weight ","lastHeight":"last height ","lastWeight":"last weight ","nowHeight":"this height ","lastHead":"last head ","errorOperation":"Operation error. Please remeasure."},"lung":{"lungTitle":"Lung Capacity Test","lungExplain0":"Lung capacity tests can help us better understand you and generate a detailed health report for you.","lungsuction":"Inspiratory vital capacity","lungsuctionspeed":"Inhalation speed","averagelungsuction":"average suction vital capacity","isMarginal":"reach the standard","lungHello":"Hello!","lungfirst":"Hello!The first test begins","lungsecond":"Hello!The second test begins","lungthird":"Hello!The third test begins","lungstart":"The test begins","lungExplain1":"Put down the breathing trainer, exhale slowly and empty the air in your lungs as much as possible.","lungExplain2":"Use the breathing trainer and inhale slowly until you reach your limit.","lungExplain3":"Based on your personal information, your qualifying inspiratory vital capacity is","nowlungsuctionspeed":"You are testing the inhalation speed this time","lungresult":"Lung capacity test result","lungExplain4":"Based on your physical condition and improvement goals, we will generate a detailed health report for you.","lunglookreport":"View this Report","lunganewstart":"seconds later","Marginal":"Pass","oneNumberTips":"Please enter the first inhalation value","twoNumberTips":"Please enter the second inhalation value.","threeNumberTips":"Please enter the third inhalation value"},"skip":{"today_jump_num":"Today's number","today_jump_time":"Today's duration","today_jump_kcal":"kcal","jumpFree":"Jump freely","backwardCount":"Reverse count","Countdown":"Countdown","jumpFreedom":"Freedom","instructStart":"Start","jumpFreeDegree":"Free number of times","jumpFreeNumber":"Number","jumpTargetDegree":"number","jumpUnlimited":"Unrestricted","jumpTarget":"Adjust the target","jumpTargetTime":"Target duration in minutes: seconds","MinuteSecond":"time","Consumed":"consume","LongpressEnd":"Longpress end","AverageSpeed":"average speed","Unit":"Number per minute","Numberofinterrupts":"Numberofinterrupts","Times":"frequency","LongestConsecutive":"longest continuum","Number":"Number","trainingsNumber":"Number","complete":"Finished","instructContinuous":"Continuous","instructStop":"Stop","instructEnd":"end","instructContinue":"Continue","instructPause":"Pause","linkBluetoothFail":"Connection disconnected","deviceDisconnection":"The connection with the device was interrupted during training. Please reconnect the device and start training again.","ToggleTrainingsTips":"Do not switch training during the training process. Return to training.","NOComplete":"If the rope skipping time this time is less than 10 seconds, will the record not be saved?"},"index.home":"Record","index.bmi":"BMI Evaluation","index.Height":"Height","index.skipping":"Intelligent skipping","index.vitalcapacity":"vital capacity","index.contrast":"contrast","index.none":"No data available for now","index.body":"Body report","index.BodyScore":"Body score","index.BodyType":"Body type","index.otherData":"Other data","index.dataReference":"Data Reference","index.referencetips":"This measurement data is for reference only and cannot replace medical professional tests!","index.number":"score","index.no":"None","index.growthAdvice":"growthAdvice","index.nutrition":"nutrition","index.sleep":"sleep","index.movement":"movement","index.emotion":"mood","index.card":"Card data","index.cardSet":"Set the data page card","index.manualRecording":"Manual recording","index.notice":"Announcement","index.browse":"Page views","index.Standard":"Standard value","bmi.desc":"BMI stands for Body Mass Index, which is currently a commonly used international standard for measuring the degree of fatness or thinness of the human body and whether it is healthy.","inheritHeighet.title":"Adult Height Prediction","inheritHeighet.dad":"Dad's height","inheritHeighet.mom":"Mom's height","inheritHeighet.geneticheight":"Standard height","inheritHeighet.adultheight":"Adult height","inheritHeighet.tips0":"To ensure the accuracy of the data, please fill in the true information carefully.","inheritHeighet.tips1":"If the current actual height is less than the current standard height","inheritHeighet.tips2":"Children grow taller in an unfavorable environment after birth. Please check from aspects such as diet, sleep, exercise and mood. Strengthen the management of postnatal factors to keep children in the best growth state.","inheritHeighet.tips3":"If the current actual height is greater than the current standard height","inheritHeighet.tips4":"A child's postnatal growth environment is conducive to their growth in height. Please continue to maintain and strengthen the management of acquired factors. When the child reaches adulthood, they can be more than 10cm taller than the standard.","contrast.time":"time (days)","index.ideal":"ideal ","contrast.weightdiff":"reduce weight","contrast.weightdiffAugment":"weight","contrast.fatWdiff":"reduce fat","contrast.fatWdiffAugment":"Fat Gain","contrast.changeData":"Data change","contrast.trend":"trend","contrast.before":"before","contrast.after":"after","body.target_weight":"Target weight","body.cumulative_weight":"Cumulative weight loss","body.initial_weight":"Initial weight","body.cumulative_day":"Days of weight loss","chartsDay":"That day","chartsMonth":"Monthly","chartsYear":"Annual","recordType":"Project","recordTime":"Duration","recordNumber":"number","recordNumberFirst":"firstTime","recordNumberSecond":"secondTime","recordNumberThird":"thirdTime"},"ja":{"index.title":"Hello i18n","index.home":"ホーム","index.component":"コンポーネント","index.api":"API","index.schema":"Schema","index.demo":"uni-app globalization","index.demo-description":"ユニフレームワーク、manifest.json、pages.json、タブバー、ページ、コンポーネント、APIを含める、Schema","index.detail":"詳細","index.language":"言語","index.language-info":"設定","index.system-language":"システム言語","index.application-language":"アプリケーション言語","index.language-change-confirm":"この設定を適用すると、アプリが再起動します"},"zh-Hant":{"index.title":"Hello i18n","index.home":"主頁","index.component":"組件","index.api":"API","index.schema":"Schema","index.demo":"uni-app 國際化演示","index.demo-description":"包含 uni-framework、manifest.json、pages.json、tabbar、頁面、組件、API、Schema","index.detail":"詳情","index.language":"語言","index.language-info":"語言信息","index.system-language":"系統語言","index.application-language":"應用語言","index.language-change-confirm":"應用此設置將重啟App"},"zh":{"tips":{"msgTitle":"友情提示","msgResetData":"数据重置中","msgSuccess":"测量成功!","msgFail":"测量失败!","msgUpgradeFail":"升级失败","msgDownloading":"正在下载","msgLatestVersion":"已经是最新版本了!","msgCancel":"您已取消操作!","msgLoginSuccess":"登录成功!","msgDelete":"删除成功","msgSetSuccess":"设置成功","msgbindt":"绑定成功!","msgUnBind":"解绑成功!","msgBottom":"到底了,看看别的吧","msgNoMoreData":"没有更多数据了!","msgCalculating":"计算中","msgSetPasswordSuccess":"密码设置成功,进入程序中!","msgAddUser":"暂无成员,请先添加","verifyNickName":"请输入昵称","verifyNotOptional":"未来日期不可选","verifyDate":"请选择测量日期","verifyBirthday":"请选择出生日期","verifyHeight":"请输入身高","verifyWeight":"请输入体重","verifyHead":"请输入头围","verifyHeightDad":"请输入爸爸身高","verifyHeightMom":"请输入妈妈身高","verifyGender":"请选择性别","verifyBontrast":"请选择数据","verifyBodyDate":"请选择正确的时间","verifyRecordType":"请选择测量项目","verifyRecordTime":"请输入时长","verifyRecordNumber":"请输入个数","verifyRecord":"请输入","verifyPicker":"请选择","verifyAccount":"请输入正确的手机号或邮箱","verifyEmail":"请输入邮箱","verifyEmailCorrect":"请输入正确的邮箱","verifyMobile":"请输入手机号","verifyMobileCorrect":"请输入正确的手机号","verifyCode":"请输入验证码","verifyPassword":"请输入密码","verifyPasswordTwo":"请输入确认密码","verifyPasswordCorrect":"请确认两次密码填写一致","verifyAgreement":"请先确认并勾选协议","verifyOutLogin":"是否退出登录?","verifyDeleteUser":"是否删除该成员?","verifyDeleteHistory":"是否删除当前测量记录?","verifyUnbindt":"是否解绑该设备?","verifybindt":"是否绑定该设备?","verifyDeleteAccount":"删除成功后,该账号的所有关联信息将被清空且无法找回,是否删除?","btnConfirm":"确认","btnSubmit":"提交","btnSancellation":"取消","btnContinue":"继续","btnBack":"返回","btnDelete":"删除"},"common":{"titleSetLanguage":"语言设置","titleSkipping":"跳绳数据","titlevVitalcapacity":"肺活量数据","titleCharts":"运动曲线","titleHome":"记录","titleNews":"资讯","titleMe":"我的","titleScore":"中招估分","titleScoreHistory":"估分历史","titleScoreReport":"估分报告","titleContrast":"数据对比","titleDetail":"详情","titleBody":"曲线/目标","titleHistory":"历史记录","titleCardSet":"卡片设置","titlebBusiness":"设备管理","titleBusinesAdd":"添加设备","titleBusinesSList":"设备列表","titleBusinesSearch":"搜索设备","titleInheritHeighet":"身高预测","titleIncrement":"增量对比","titleBmi":"BMI测评","titlePhone":"绑定手机号","titleEmail":"绑定邮箱","titlePasswordEdit":"修改密码","titleSet":"设置","titleDate":"日期","titleMember":"资料","titleManage":"成员管理","titleManageAdd":"添加成员","titleAboutUs":"关于我们","titleSetPassword":"设置密码","titlePassword":"密码","titleConfirmPassword":"确认密码","titleForgotPassword":"忘记密码","titleCode":"验证码","titleLanguage":"语言设置","titleSendCode":"获取验证码","titleSendCodeRetry":"S后重发","titleLogin":"登录","titleRegister":"注册","titleToggleLogin":"切换登录","titleAccountText":"手机号/邮箱","titleAgreementText":"阅读并同意","titleAgreementContntText":"隐私协议","titleVersionUpdate":"版本更新","titleNewVersion":"新版本","infoAvatar":"头像","infoNickname":"昵称","infoMobile":"手机号","infoEmail":"邮箱","infoAge":"年龄","infoAgeunit":"岁","infoGender":"性别","infoMan":"男","infoWoman":"女","infoUnknown":"未知","infoBirthday":"出生日期","infoNowUser":"当前","infoHeight":"身高","infoHead":"头围","infoWeight":"体重","infoBMI":"BMI","infoAddress":"地区","btnEdit":"编辑","btnDelete":"删除","btnAdd":"添加","btnDetails":"详情","btnUnbind":"解绑","btnBMI":"立即计算","btnDeleteAccount":"删除账号","btnLogOut":"退出登录","btnContrast":"对比"},"linkBluetooth":{"onBluetoothTips":"请在设备开机状态下,搜索设备","onBluetoothHaveFound":"已发现","onBluetoothDevice":"个设备","onBluetoothMac":"mac地址","onBluetoothBind":"设备绑定流程说明","onBluetoothSelect":"选择蓝牙进行绑定","onPhoneBluetoothTips":"手机蓝牙未打开","onDeviceBluetoothTips":"请确定设备是开机状态、手机蓝牙权限已打开!","accreditTips":"需要您授权使用手机蓝牙","openBluetoothSuccess":"蓝牙权限获取成功,重新连接蓝牙","openSettingFail":"获取权限失败,将无法使用手机蓝牙进行测量","isLinkBluetooth":"请先连接设备","startlinkBluetooth":"开始连接","linkBluetooth":"蓝牙连接中","anewlinkBluetooth":"重新连接","linkBluetoothFail":"设备连接失败,返回首页重新连接","linkBluetoothSuccess":"蓝牙连接成功,请开始测量","startSearchBluetooth":"开始搜索","searchBluetooth":"蓝牙搜索中","searchBluetoothFail":"重新搜索","Nodevicefound":"没有搜索到蓝牙设备","onDeviceMeasureTips":"请确定设备是开机状态","openDeviceeMeasureTips":"请确定手机蓝牙已打开","openDeviceeMeasureTips2":"请确定手机位置信息已打开","deviceDisconnection":"测量过程中已与设备连接中断,请重新连接设备再开始测量","offBluetooth":"蓝牙已关闭,请重新打开蓝牙后再开始测量","remeasure":"重新测量","StableWeight":"稳定重量","StableWeightText":"您的稳定体重是:","realTimeWeight":"实时重量","realTimeWeightText":"您的实时体重是:","heightText":"您的身高是","zeroBtn":"清零","LockBtn":"锁定","SaveResult":"保存结果","measureResultTips":"测量结果提示","nowWeight":"本次测量体重是","lastHeight":"上次测量身高是:","lastWeight":"上次测量体重是:","nowHeight":"本次测量身高是:","lastHead":"上次测量头围是:","errorOperation":"操作错误,请重新测量"},"lung":{"lungTitle":"肺活量测试","lungExplain0":"肺活量测试能让我们更好的了解您,为您生成详细的健康报告。","lungsuction":"吸气肺活量","lungsuctionspeed":"吸气速度","averagelungsuction":"平均吸气肺活量","isMarginal":"是否达标","lungHello":"您好","lungstart":"次测试开始","lungExplain1":"放下呼吸训练器,缓慢呼气,尽可能排空肺部气体","lungExplain2":"使用呼吸训练器,缓慢吸气,直至到达极限","lungExplain3":"根据您的个人信息,您的达标吸气肺活量为","nowlungsuctionspeed":"您本次测试吸气速度","lungresult":"肺活量测试结果","lungExplain4":"结合您的身体状态和改善目标,我们将为您生成详细的健康报告","lunglookreport":"查看本次报告","lunganewstart":"秒后","Marginal":"及格","lungfirst":"您好,第一次测试开始","lungsecond":"您好,第二次测试开始","lungthird":"您好,第三次测试开始","oneNumberTips":"请输入第一次吸气值","twoNumberTips":"请输入第二次吸气值","threeNumberTips":"请输入第三次吸气值"},"skip":{"today_jump_num":"今日个数","today_jump_time":"今日时长","today_jump_kcal":"卡路里","jumpFree":"自由跳","backwardCount":"倒计数","Countdown":"倒计时","jumpFreedom":"自由","jumpFreeDegree":"自由次数","jumpFreeNumber":"个数","jumpTargetDegree":"目标次数","jumpUnlimited":"无限制","jumpTarget":"调整目标","jumpTargetTime":"目标时长 分:秒","MinuteSecond":"分:秒","Consumed":"消耗","LongpressEnd":"长按结束","AverageSpeed":"平均速度","Unit":"个/分钟","Numberofinterrupts":"中断次数","Times":"次","LongestConsecutive":"最长连续","Number":"个","trainingsNumber":"训练个数","complete":"完成","instructStart":"开始","instructContinuous":"连续","instructStop":"停止","instructEnd":"结束","instructContinue":"继续","instructPause":"暂停","linkBluetoothFail":"连接已断开","deviceDisconnection":"训练过程中已与设备连接中断,请重新连接设备再开始训练","ToggleTrainingsTips":"训练过程中请勿切换训练,返回训练","NOComplete":"本次跳绳时间低于10秒,记录将不会被保存?"},"index.home":"记录","index.skipping":"智能跳绳","index.vitalcapacity":"肺活训练","index.none":"暂无数据","index.body":"身体报告","index.BodyScore":"身体得分","index.BodyType":"身体类型","index.bmi":"BMI测评","index.otherData":"其他数据","index.dataReference":"数据参考","index.referencetips":"此测量数据仅供参考,不可代替医学专业测试!","index.number":"分","index.no":"无","index.growthAdvice":"成长建议","index.nutrition":"营养","index.sleep":"睡眠","index.movement":"运动","index.emotion":"情绪","index.card":"卡片数据","index.cardSet":"设置数据页卡片","index.manualRecording":"手动记录","index.notice":"公告","index.browse":"浏览量","index.Standard":"标准值","index.ideal":"当前年龄段理想","bmi.desc":"BMI是身体质量指数,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准","inheritHeighet.title":"成年身高预测","inheritHeighet.dad":"爸爸身高","inheritHeighet.mom":"妈妈身高","inheritHeighet.geneticheight":"当前标准身高","inheritHeighet.adultheight":"成年身高预测","inheritHeighet.tips0":"为保证数据准确定,请认真填写真实信息","inheritHeighet.tips1":"如果当前实际身高﹤当前标准身高","inheritHeighet.tips2":"孩子后天生长环境不利长高。请从饮食、睡眠、运动、情绪等方面排查。加强后天因素管理,让孩子处于最佳长高状态。","inheritHeighet.tips3":"如果当前实际身高﹥当前标准身高","inheritHeighet.tips4":"孩子后天生长环境有利长高。请继续保持,加强后天因素管理,孩子成年可比标准高10cm以上。","contrast.time":"时间(天)","contrast.weightdiff":"减重","contrast.weightdiffAugment":"增重","contrast.fatWdiff":"减脂","contrast.fatWdiffAugment":"增脂","contrast.changeData":"数据变化","contrast.trend":"趋势","contrast.before":"之前","contrast.after":"之后","body.target_weight":"目标体重","body.cumulative_weight":"累计减重","body.initial_weight":"初始体重","body.cumulative_day":"减重天数","chartsDay":"当天","chartsMonth":"月度","chartsYear":"年度","recordType":"项目","recordTime":"时长","recordNumber":"个数","recordNumberFirst":"第一次","recordNumberSecond":"第二次","recordNumberThird":"第三次"}}}; +var __uniConfig = {"pages":["pages/home/home","pages/skiping/skip","pages/skiping/charts","pages/lunging/vitalcapacity","pages/lunging/charts","pages/my/me","pages/score/score","pages/PublicCards/PublicCards","pages/body/body","pages/zixun/list","pageTwo/history/history","pageTwo/history/historyDetail","pageTwo/compk/contrast","pageTwo/compk/pkdetail","pageTwo/cardList/card","pageTwo/business/business","pageTwo/business/addDevice","pageTwo/business/search","pageTwo/score/history","pageTwo/score/report","pageTwo/my/manage","pageTwo/message/list","pageTwo/my/userInfo","pageTwo/login/forgetPassword","pageTwo/login/login","pageTwo/my/about","pageTwo/setting/setting","pageTwo/setting/password","pageTwo/setting/email","pageTwo/setting/phone","pageTwo/devices/search","pageTwo/devices/G02","pageTwo/devices/PCL","pageTwo/devices/PCV02","pageTwo/devices/PCT01","pageTwo/devices/B20","pageTwo/devices/PCL22","pageTwo/devices/PCL22S","pageTwo/notepad/notepad","pageTwo/notepad/addNotepad","pageTwo/PublicCards/charts","pageTwo/PublicCards/history","pageTwo/PublicCards/contrast","pageTwo/PublicCards/pkdetail","pageTwo/home/inheritHeighet","pageTwo/home/bmi","pageTwo/home/childPK","pageTwo/webview/webview"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"","navigationBarBackgroundColor":"#37cc92","backgroundColor":"#fff"},"tabBar":{"color":"#333","fontSize":"14px","selectedColor":"#37cc92","backgroundColor":"#fff","list":[{"pagePath":"pages/home/home","iconPath":"static/shou.png","selectedIconPath":"static/shou2.png"},{"pagePath":"pages/zixun/list","iconPath":"static/ping.png","selectedIconPath":"static/ping2.png"},{"pagePath":"pages/my/me","iconPath":"static/wo.png","selectedIconPath":"static/wo2.png"}]},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"Reedaw","compilerVersion":"4.76","entryPagePath":"pages/home/home","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locale":"","fallbackLocale":"en","locales":{"en":{"tips":{"msgTitle":"Friendly reminder","msgResetData":"Data reset in progress","msgSuccess":"Measurement successful!","msgFail":"Measurement failed!","msgUpgradeFail":"Upgrade Failed","msgDownloading":" Downloading now","msgLatestVersion":"It's the latest version!","msgCancel":"You have cancelled the operation!","msgLoginSuccess":"Login successful!","msgDelete":"Deletion successful","msgSetSuccess":"Set successfully","msgbindt":"Binding successful!","msgUnBind":"Unbind successfully!","msgBottom":"It's all there. Let's see something else.","msgNoMoreData":"There's no more data!","msgCalculating ":" Under calculation ","msgSetPasswordSuccess":"The password was set successfully.","msgAddUser":"There are no members yet. Please add them first.","verifyNickName":"Please enter the nickname","verifyNotOptional":"Future dates are not selectable","verifyDate":"Please select the measurement date","verifyBirthday":"Please select your date of birth","verifyHeight":"Please enter your height","verifyWeight":"Please enter your weight","verifyHead":"Please enter the head circumference","verifyHeightDad":"Please enter Dad's height.","verifyHeightMom":"Please enter Mom's height","verifyGender":"Please select gender","verifyBontrast":"Please select the data","verifyBodyDate":"Please select the correct time","verifyRecordType":"Please select the measurement item","verifyRecordTime":" Please enter the duration","verifyRecordNumber":"Please enter the number","verifyRecord":"Please enter","verifyPicker":"Please select","verifyAccount":"Please enter the correct Mobile phone or email address.","verifyEmail":"Please enter your email address","verifyEmailCorrect":"Please enter the correct email address","verifyMobile":"Please enter your Mobile phone","verifyMobileCorrect":"Please enter the correct phone number","verifyCode":"Please enter the verification code","verifyPassword":"Please enter your password","verifyPasswordTwo":"Please enter the confirmation password","verifyPasswordCorrect":"Please confirm that the password is filled in the same way twice.","verifyAgreement":"Please confirm and check the agreement first.","verifyOutLogin":"Do you want to log out?","verifyDeleteUser":"Do you want to delete this member?","verifyDeleteHistory":"Do you want to delete the current measurement record?","verifyUnbindt":"Do you want to unbind this device?","verifybindt":"Do you want to bind this device?","verifyDeleteAccount":"After a successful deletion, all associated information of this account will be cleared and cannot be retrieved. Do you want to delete it?","btnConfirm":"Confirm","btnSubmit":"Submit","btnSancellation":"Cancel","btnContinue":"Continue","btnBack":"Return","btnDelete":"Delete"},"common":{"titleSetLanguage":"Language Settings","titleSkipping":"Skipping rope data","titlevVitalcapacity":"Vitalcapacity data","titleCharts":"Motion curve","titleHome":"Record","titleNews":"Information","titleMe":"My","titleScore":"Estimated Score for the High School Entrance Examination","titleScoreHistory":"EstimatedScoreHistory","titleScoreReport":"EstimatedScoreReport","titleContrast":"Data comparison","titleDetail":"Details","titleBody":"Curve/Target","titleIncrement":"Increment","titleLanguage":"Language switching","titleHistory":"historical","titleCardSet":"Card Settings","titlebBusiness":"Equipment Management","titleBusinesAdd":"Add equipment","titleBusinesSList":"Device List","titleBusinesSearch":"Search Device","titleInheritHeighet":"Height Prediction","titleBmi":"BMI Assessment","titlePhone":"Bind the Mobile phone","titleEmail":"Bound Email","titlePasswordEdit":"Change password","titleSet":"Settings","titleDate":"Date","titleMember":"Data","titleManage":"Member Management","titleManageAdd":"Add Member","titleAboutUs":"AboutUs","titleSetPassword":"Set password","titlePassword":"Password","titleConfirmPassword":"Confirmation Password","titleForgotPassword":"Forgot password","titleCode":"Verification code","titleSendCode":"Send code","titleSendCodeRetry":"send again","titleLogin":"Login","titleRegister":"Register","titleToggleLogin":"Switch Login","titleAccountText":"Mobile phone/Email","titleAgreementText":"Read and agree","titleAgreementContntText":"Privacy Agreement","titleVersionUpdate":"VersionUpdate","titleNewVersion":"New version","infoAvatar":"Avatar","infoNickname":"Nickname","infoMobile":"Mobile phone","infoEmail":"Mailbox","infoAge":"age","infoAgeunit":"year","infoGender":"gender","infoMan":"Man","infoWoman":"Woman","infoUnknown":"unknown","infoBirthday":"Birthday","infoNowUser":"Currently","infoHeight":"height","infoHead":"HC","infoWeight":"weight","infoBMI":"BMI","infoAddress":"Region","btnEdit":"edit","btnDelete":"Delete","btnAdd":"Add","btnDetails":"Details","btnUnbind":"Unbind","btnBMI":"Calculate immediately","btnDeleteAccount":"Delete account","btnLogOut":"Log out","btnContrast":"contrast"},"linkBluetooth":{"onBluetoothTips":"Please make sure the device is on.","onBluetoothHaveFound":"Has been discovered","onBluetoothDevice":"device","onBluetoothMac":"mac address","onBluetoothBind":"Device Binding Process Description","onBluetoothSelect":"Select BLE for binding","onPhoneBluetoothTips":"The phone's BLE is not turned on.","onDeviceBluetoothTips":"Please make sure the device is powered on and the BLE permission on your phone is enabled!","accreditTips ":"You need to authorize the use of your mobile phone's BLE","openBluetoothSuccess":"BLE permission was obtained successfully. Reconnect to BLE.","openSettingFail":"Failed to obtain permission","isLinkBluetooth":"Please connect the device first.","startlinkBluetooth":"Start Connecting","linkBluetooth":"BLE connection in progress","anewlinkBluetooth":"reconnection","linkBluetoothFail":"Connection failed","linkBluetoothSuccess":"The connection is successful. Start measuring","startSearchBluetooth":"Start searching","searchBluetooth":"BLE search ongoing","searchBluetoothFail":"Search again","Nodevicefound":"No BLE device was found","onDeviceMeasureTips":"Please make sure the device is on.","openDeviceeMeasureTips":"Please turn on the Bluetooth of your mobile phone","openDeviceeMeasureTips2":"Please turn on the location information of your mobile phone","deviceDisconnection":"Connection interrupted Reconnect","offBluetooth":"BLE is turned off. Measure after turning on BLE.","remeasure":"Remeasure","StableWeight":"Stable weight","StableWeightText":"stable weight is :","realTimeWeight":"Real-time weight","realTimeWeightText":"real-time weight is :","heightText":"Your height is","zeroBtn":"zero","LockBtn":"Lock","SaveResult":"Save","measureResultTips":"Measurement Result Tips","nowWeight":"this weight ","lastHeight":"last height ","lastWeight":"last weight ","nowHeight":"this height ","lastHead":"last head ","errorOperation":"Operation error. Please remeasure."},"lung":{"lungTitle":"Lung Capacity Test","lungExplain0":"Lung capacity tests can help us better understand you and generate a detailed health report for you.","lungsuction":"Inspiratory vital capacity","lungsuctionspeed":"Inhalation speed","averagelungsuction":"average suction vital capacity","isMarginal":"reach the standard","lungHello":"Hello!","lungfirst":"Hello!The first test begins","lungsecond":"Hello!The second test begins","lungthird":"Hello!The third test begins","lungstart":"The test begins","lungExplain1":"Put down the breathing trainer, exhale slowly and empty the air in your lungs as much as possible.","lungExplain2":"Use the breathing trainer and inhale slowly until you reach your limit.","lungExplain3":"Based on your personal information, your qualifying inspiratory vital capacity is","nowlungsuctionspeed":"You are testing the inhalation speed this time","lungresult":"Lung capacity test result","lungExplain4":"Based on your physical condition and improvement goals, we will generate a detailed health report for you.","lunglookreport":"View this Report","lunganewstart":"seconds later","Marginal":"Pass","oneNumberTips":"Please enter the first inhalation value","twoNumberTips":"Please enter the second inhalation value.","threeNumberTips":"Please enter the third inhalation value"},"skip":{"today_jump_num":"Today's number","today_jump_time":"Today's duration","today_jump_kcal":"kcal","jumpFree":"Jump freely","backwardCount":"Reverse count","Countdown":"Countdown","jumpFreedom":"Freedom","instructStart":"Start","jumpFreeDegree":"Free number of times","jumpFreeNumber":"Number","jumpTargetDegree":"number","jumpUnlimited":"Unrestricted","jumpTarget":"Adjust the target","jumpTargetTime":"Target duration in minutes: seconds","MinuteSecond":"time","Consumed":"consume","LongpressEnd":"Longpress end","AverageSpeed":"average speed","Unit":"Number per minute","Numberofinterrupts":"Numberofinterrupts","Times":"frequency","LongestConsecutive":"longest continuum","Number":"Number","trainingsNumber":"Number","complete":"Finished","instructContinuous":"Continuous","instructStop":"Stop","instructEnd":"end","instructContinue":"Continue","instructPause":"Pause","linkBluetoothFail":"Connection disconnected","deviceDisconnection":"The connection with the device was interrupted during training. Please reconnect the device and start training again.","ToggleTrainingsTips":"Do not switch training during the training process. Return to training.","NOComplete":"If the rope skipping time this time is less than 10 seconds, will the record not be saved?"},"index.home":"Record","index.bmi":"BMI Evaluation","index.Height":"Height","index.skipping":"Intelligent skipping","index.vitalcapacity":"vital capacity","index.contrast":"contrast","index.none":"No data available for now","index.body":"Body report","index.BodyScore":"Body score","index.BodyType":"Body type","index.otherData":"Other data","index.dataReference":"Data Reference","index.referencetips":"This measurement data is for reference only and cannot replace medical professional tests!","index.number":"score","index.no":"None","index.growthAdvice":"growthAdvice","index.nutrition":"nutrition","index.sleep":"sleep","index.movement":"movement","index.emotion":"mood","index.card":"Card data","index.cardSet":"Set the data page card","index.manualRecording":"Manual recording","index.notice":"Announcement","index.browse":"Page views","index.Standard":"Standard value","bmi.desc":"BMI stands for Body Mass Index, which is currently a commonly used international standard for measuring the degree of fatness or thinness of the human body and whether it is healthy.","inheritHeighet.title":"Adult Height Prediction","inheritHeighet.dad":"Dad's height","inheritHeighet.mom":"Mom's height","inheritHeighet.geneticheight":"Standard height","inheritHeighet.adultheight":"Adult height","inheritHeighet.tips0":"To ensure the accuracy of the data, please fill in the true information carefully.","inheritHeighet.tips1":"If the current actual height is less than the current standard height","inheritHeighet.tips2":"Children grow taller in an unfavorable environment after birth. Please check from aspects such as diet, sleep, exercise and mood. Strengthen the management of postnatal factors to keep children in the best growth state.","inheritHeighet.tips3":"If the current actual height is greater than the current standard height","inheritHeighet.tips4":"A child's postnatal growth environment is conducive to their growth in height. Please continue to maintain and strengthen the management of acquired factors. When the child reaches adulthood, they can be more than 10cm taller than the standard.","contrast.time":"time (days)","index.ideal":"ideal ","contrast.weightdiff":"reduce weight","contrast.weightdiffAugment":"weight","contrast.fatWdiff":"reduce fat","contrast.fatWdiffAugment":"Fat Gain","contrast.changeData":"Data change","contrast.trend":"trend","contrast.before":"before","contrast.after":"after","body.target_weight":"Target weight","body.cumulative_weight":"Cumulative weight loss","body.initial_weight":"Initial weight","body.cumulative_day":"Days of weight loss","chartsDay":"That day","chartsMonth":"Monthly","chartsYear":"Annual","recordType":"Project","recordTime":"Duration","recordNumber":"number","recordNumberFirst":"firstTime","recordNumberSecond":"secondTime","recordNumberThird":"thirdTime"},"ja":{"index.title":"Hello i18n","index.home":"ホーム","index.component":"コンポーネント","index.api":"API","index.schema":"Schema","index.demo":"uni-app globalization","index.demo-description":"ユニフレームワーク、manifest.json、pages.json、タブバー、ページ、コンポーネント、APIを含める、Schema","index.detail":"詳細","index.language":"言語","index.language-info":"設定","index.system-language":"システム言語","index.application-language":"アプリケーション言語","index.language-change-confirm":"この設定を適用すると、アプリが再起動します"},"zh-Hant":{"index.title":"Hello i18n","index.home":"主頁","index.component":"組件","index.api":"API","index.schema":"Schema","index.demo":"uni-app 國際化演示","index.demo-description":"包含 uni-framework、manifest.json、pages.json、tabbar、頁面、組件、API、Schema","index.detail":"詳情","index.language":"語言","index.language-info":"語言信息","index.system-language":"系統語言","index.application-language":"應用語言","index.language-change-confirm":"應用此設置將重啟App"},"zh":{"tips":{"msgTitle":"友情提示","msgResetData":"数据重置中","msgSuccess":"测量成功!","msgFail":"测量失败!","msgUpgradeFail":"升级失败","msgDownloading":"正在下载","msgLatestVersion":"已经是最新版本了!","msgCancel":"您已取消操作!","msgLoginSuccess":"登录成功!","msgDelete":"删除成功","msgSetSuccess":"设置成功","msgbindt":"绑定成功!","msgUnBind":"解绑成功!","msgBottom":"到底了,看看别的吧","msgNoMoreData":"没有更多数据了!","msgCalculating":"计算中","msgSetPasswordSuccess":"密码设置成功,进入程序中!","msgAddUser":"暂无成员,请先添加","verifyNickName":"请输入昵称","verifyNotOptional":"未来日期不可选","verifyDate":"请选择测量日期","verifyBirthday":"请选择出生日期","verifyHeight":"请输入身高","verifyWeight":"请输入体重","verifyHead":"请输入头围","verifyHeightDad":"请输入爸爸身高","verifyHeightMom":"请输入妈妈身高","verifyGender":"请选择性别","verifyBontrast":"请选择数据","verifyBodyDate":"请选择正确的时间","verifyRecordType":"请选择测量项目","verifyRecordTime":"请输入时长","verifyRecordNumber":"请输入个数","verifyRecord":"请输入","verifyPicker":"请选择","verifyAccount":"请输入正确的手机号或邮箱","verifyEmail":"请输入邮箱","verifyEmailCorrect":"请输入正确的邮箱","verifyMobile":"请输入手机号","verifyMobileCorrect":"请输入正确的手机号","verifyCode":"请输入验证码","verifyPassword":"请输入密码","verifyPasswordTwo":"请输入确认密码","verifyPasswordCorrect":"请确认两次密码填写一致","verifyAgreement":"请先确认并勾选协议","verifyOutLogin":"是否退出登录?","verifyDeleteUser":"是否删除该成员?","verifyDeleteHistory":"是否删除当前测量记录?","verifyUnbindt":"是否解绑该设备?","verifybindt":"是否绑定该设备?","verifyDeleteAccount":"删除成功后,该账号的所有关联信息将被清空且无法找回,是否删除?","btnConfirm":"确认","btnSubmit":"提交","btnSancellation":"取消","btnContinue":"继续","btnBack":"返回","btnDelete":"删除"},"common":{"titleSetLanguage":"语言设置","titleSkipping":"跳绳数据","titlevVitalcapacity":"肺活量数据","titleCharts":"运动曲线","titleHome":"记录","titleNews":"资讯","titleMe":"我的","titleScore":"中招估分","titleScoreHistory":"估分历史","titleScoreReport":"估分报告","titleContrast":"数据对比","titleDetail":"详情","titleBody":"曲线/目标","titleHistory":"历史记录","titleCardSet":"卡片设置","titlebBusiness":"设备管理","titleBusinesAdd":"添加设备","titleBusinesSList":"设备列表","titleBusinesSearch":"搜索设备","titleInheritHeighet":"身高预测","titleIncrement":"增量对比","titleBmi":"BMI测评","titlePhone":"绑定手机号","titleEmail":"绑定邮箱","titlePasswordEdit":"修改密码","titleSet":"设置","titleDate":"日期","titleMember":"资料","titleManage":"成员管理","titleManageAdd":"添加成员","titleAboutUs":"关于我们","titleSetPassword":"设置密码","titlePassword":"密码","titleConfirmPassword":"确认密码","titleForgotPassword":"忘记密码","titleCode":"验证码","titleLanguage":"语言设置","titleSendCode":"获取验证码","titleSendCodeRetry":"S后重发","titleLogin":"登录","titleRegister":"注册","titleToggleLogin":"切换登录","titleAccountText":"手机号/邮箱","titleAgreementText":"阅读并同意","titleAgreementContntText":"隐私协议","titleVersionUpdate":"版本更新","titleNewVersion":"新版本","infoAvatar":"头像","infoNickname":"昵称","infoMobile":"手机号","infoEmail":"邮箱","infoAge":"年龄","infoAgeunit":"岁","infoGender":"性别","infoMan":"男","infoWoman":"女","infoUnknown":"未知","infoBirthday":"出生日期","infoNowUser":"当前","infoHeight":"身高","infoHead":"头围","infoWeight":"体重","infoBMI":"BMI","infoAddress":"地区","btnEdit":"编辑","btnDelete":"删除","btnAdd":"添加","btnDetails":"详情","btnUnbind":"解绑","btnBMI":"立即计算","btnDeleteAccount":"删除账号","btnLogOut":"退出登录","btnContrast":"对比"},"linkBluetooth":{"onBluetoothTips":"请在设备开机状态下,搜索设备","onBluetoothHaveFound":"已发现","onBluetoothDevice":"个设备","onBluetoothMac":"mac地址","onBluetoothBind":"设备绑定流程说明","onBluetoothSelect":"选择蓝牙进行绑定","onPhoneBluetoothTips":"手机蓝牙未打开","onDeviceBluetoothTips":"请确定设备是开机状态、手机蓝牙权限已打开!","accreditTips":"需要您授权使用手机蓝牙","openBluetoothSuccess":"蓝牙权限获取成功,重新连接蓝牙","openSettingFail":"获取权限失败,将无法使用手机蓝牙进行测量","isLinkBluetooth":"请先连接设备","startlinkBluetooth":"开始连接","linkBluetooth":"蓝牙连接中","anewlinkBluetooth":"重新连接","linkBluetoothFail":"设备连接失败,返回首页重新连接","linkBluetoothSuccess":"蓝牙连接成功,请开始测量","startSearchBluetooth":"开始搜索","searchBluetooth":"蓝牙搜索中","searchBluetoothFail":"重新搜索","Nodevicefound":"没有搜索到蓝牙设备","onDeviceMeasureTips":"请确定设备是开机状态","openDeviceeMeasureTips":"请确定手机蓝牙已打开","openDeviceeMeasureTips2":"请确定手机位置信息已打开","deviceDisconnection":"测量过程中已与设备连接中断,请重新连接设备再开始测量","offBluetooth":"蓝牙已关闭,请重新打开蓝牙后再开始测量","remeasure":"重新测量","StableWeight":"稳定重量","StableWeightText":"您的稳定体重是:","realTimeWeight":"实时重量","realTimeWeightText":"您的实时体重是:","heightText":"您的身高是","zeroBtn":"清零","LockBtn":"锁定","SaveResult":"保存结果","measureResultTips":"测量结果提示","nowWeight":"本次测量体重是","lastHeight":"上次测量身高是:","lastWeight":"上次测量体重是:","nowHeight":"本次测量身高是:","lastHead":"上次测量头围是:","errorOperation":"操作错误,请重新测量"},"lung":{"lungTitle":"肺活量测试","lungExplain0":"肺活量测试能让我们更好的了解您,为您生成详细的健康报告。","lungsuction":"吸气肺活量","lungsuctionspeed":"吸气速度","averagelungsuction":"平均吸气肺活量","isMarginal":"是否达标","lungHello":"您好","lungstart":"次测试开始","lungExplain1":"放下呼吸训练器,缓慢呼气,尽可能排空肺部气体","lungExplain2":"使用呼吸训练器,缓慢吸气,直至到达极限","lungExplain3":"根据您的个人信息,您的达标吸气肺活量为","nowlungsuctionspeed":"您本次测试吸气速度","lungresult":"肺活量测试结果","lungExplain4":"结合您的身体状态和改善目标,我们将为您生成详细的健康报告","lunglookreport":"查看本次报告","lunganewstart":"秒后","Marginal":"及格","lungfirst":"您好,第一次测试开始","lungsecond":"您好,第二次测试开始","lungthird":"您好,第三次测试开始","oneNumberTips":"请输入第一次吸气值","twoNumberTips":"请输入第二次吸气值","threeNumberTips":"请输入第三次吸气值"},"skip":{"today_jump_num":"今日个数","today_jump_time":"今日时长","today_jump_kcal":"卡路里","jumpFree":"自由跳","backwardCount":"倒计数","Countdown":"倒计时","jumpFreedom":"自由","jumpFreeDegree":"自由次数","jumpFreeNumber":"个数","jumpTargetDegree":"目标次数","jumpUnlimited":"无限制","jumpTarget":"调整目标","jumpTargetTime":"目标时长 分:秒","MinuteSecond":"分:秒","Consumed":"消耗","LongpressEnd":"长按结束","AverageSpeed":"平均速度","Unit":"个/分钟","Numberofinterrupts":"中断次数","Times":"次","LongestConsecutive":"最长连续","Number":"个","trainingsNumber":"训练个数","complete":"完成","instructStart":"开始","instructContinuous":"连续","instructStop":"停止","instructEnd":"结束","instructContinue":"继续","instructPause":"暂停","linkBluetoothFail":"连接已断开","deviceDisconnection":"训练过程中已与设备连接中断,请重新连接设备再开始训练","ToggleTrainingsTips":"训练过程中请勿切换训练,返回训练","NOComplete":"本次跳绳时间低于10秒,记录将不会被保存?"},"index.home":"记录","index.skipping":"智能跳绳","index.vitalcapacity":"肺活训练","index.none":"暂无数据","index.body":"身体报告","index.BodyScore":"身体得分","index.BodyType":"身体类型","index.bmi":"BMI测评","index.otherData":"其他数据","index.dataReference":"数据参考","index.referencetips":"此测量数据仅供参考,不可代替医学专业测试!","index.number":"分","index.no":"无","index.growthAdvice":"成长建议","index.nutrition":"营养","index.sleep":"睡眠","index.movement":"运动","index.emotion":"情绪","index.card":"卡片数据","index.cardSet":"设置数据页卡片","index.manualRecording":"手动记录","index.notice":"公告","index.browse":"浏览量","index.Standard":"标准值","index.ideal":"当前年龄段理想","bmi.desc":"BMI是身体质量指数,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准","inheritHeighet.title":"成年身高预测","inheritHeighet.dad":"爸爸身高","inheritHeighet.mom":"妈妈身高","inheritHeighet.geneticheight":"当前标准身高","inheritHeighet.adultheight":"成年身高预测","inheritHeighet.tips0":"为保证数据准确定,请认真填写真实信息","inheritHeighet.tips1":"如果当前实际身高﹤当前标准身高","inheritHeighet.tips2":"孩子后天生长环境不利长高。请从饮食、睡眠、运动、情绪等方面排查。加强后天因素管理,让孩子处于最佳长高状态。","inheritHeighet.tips3":"如果当前实际身高﹥当前标准身高","inheritHeighet.tips4":"孩子后天生长环境有利长高。请继续保持,加强后天因素管理,孩子成年可比标准高10cm以上。","contrast.time":"时间(天)","contrast.weightdiff":"减重","contrast.weightdiffAugment":"增重","contrast.fatWdiff":"减脂","contrast.fatWdiffAugment":"增脂","contrast.changeData":"数据变化","contrast.trend":"趋势","contrast.before":"之前","contrast.after":"之后","body.target_weight":"目标体重","body.cumulative_weight":"累计减重","body.initial_weight":"初始体重","body.cumulative_day":"减重天数","chartsDay":"当天","chartsMonth":"月度","chartsYear":"年度","recordType":"项目","recordTime":"时长","recordNumber":"个数","recordNumberFirst":"第一次","recordNumberSecond":"第二次","recordNumberThird":"第三次"}}}; var __uniRoutes = [{"path":"/pages/home/home","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pages/skiping/skip","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pages/skiping/charts","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/lunging/vitalcapacity","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50,"navigationBarBackgroundColor":"#000000","backgroundColor":"#000000"}},{"path":"/pages/lunging/charts","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/my/me","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pages/score/score","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pages/PublicCards/PublicCards","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pages/body/body","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pages/zixun/list","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":""}},{"path":"/pageTwo/history/history","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/history/historyDetail","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/compk/contrast","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/compk/pkdetail","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/cardList/card","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/business/business","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pageTwo/business/addDevice","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/business/search","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/score/history","meta":{},"window":{"navigationBarTitleText":"历史","enablePullDownRefresh":false}},{"path":"/pageTwo/score/report","meta":{},"window":{"navigationBarTitleText":"记录","enablePullDownRefresh":false}},{"path":"/pageTwo/my/manage","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":true,"onReachBottomDistance":50}},{"path":"/pageTwo/message/list","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/my/userInfo","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pageTwo/login/forgetPassword","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/login/login","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false,"navigationStyle":"custom"}},{"path":"/pageTwo/my/about","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/setting/setting","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/setting/password","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/setting/email","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/setting/phone","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/search","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/G02","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/PCL","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/PCV02","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/PCT01","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/B20","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/PCL22","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/devices/PCL22S","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/notepad/notepad","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/notepad/addNotepad","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pageTwo/PublicCards/charts","meta":{},"window":{"navigationBarTitleText":"运动曲线"}},{"path":"/pageTwo/PublicCards/history","meta":{},"window":{"navigationBarTitleText":"历史记录"}},{"path":"/pageTwo/PublicCards/contrast","meta":{},"window":{"navigationBarTitleText":"数据对比"}},{"path":"/pageTwo/PublicCards/pkdetail","meta":{},"window":{"navigationBarTitleText":"对比详情"}},{"path":"/pageTwo/home/inheritHeighet","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pageTwo/home/bmi","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pageTwo/home/childPK","meta":{},"window":{"navigationBarTitleText":""}},{"path":"/pageTwo/webview/webview","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}]; __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index 89be6905..422d2144 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -378,7 +378,7 @@ var render = function () { ? _c("headerIndex", { attrs: { isArea: false, _i: 1 } }) : _vm._e(), _vm._$s(2, "i", _vm.userList.length) - ? _c("view", [ + ? _c("view", { attrs: { _i: 2 } }, [ _vm._$s(3, "i", _vm.islink == 0) ? _c( "view", @@ -1826,53 +1826,64 @@ var render = function () { ], 2 ) - : _c("view", [ - _vm._$s( - "103-" + $33, - "i", - item.list && - item.list.length - ) - ? _c( - "view", - { - staticClass: - _vm._$s( - "103-" + $33, - "sc", - "kcalClass" - ), - attrs: { - _i: - "103-" + $33, - }, - }, - [ - _vm._v( - _vm._$s( - "103-" + $33, - "t0-0", - _vm._s( - _vm.$t( - "index.Standard" - ) - ) - ) + + : _c( + "view", + { + attrs: { + _i: "102-" + $33, + }, + }, + [ + _vm._$s( + "103-" + $33, + "i", + item.list && + item.list.length + ) + ? _c( + "view", + { + staticClass: _vm._$s( "103-" + $33, - "t0-1", + "sc", + "kcalClass" + ), + attrs: { + _i: + "103-" + + $33, + }, + }, + [ + _vm._v( + _vm._$s( + "103-" + + $33, + "t0-0", _vm._s( - item - .list[0] - .max_val + _vm.$t( + "index.Standard" + ) ) - ) - ), - ] - ) - : _vm._e(), - ]), + ) + + _vm._$s( + "103-" + + $33, + "t0-1", + _vm._s( + item + .list[0] + .max_val + ) + ) + ), + ] + ) + : _vm._e(), + ] + ), ] ) : _vm._e(), @@ -5925,7 +5936,7 @@ var render = function () { ] ), _vm._$s(10, "i", _vm.rtype != 8 && _vm.rtype != 2) - ? _c("view", [ + ? _c("view", { attrs: { _i: 10 } }, [ _vm._$s(11, "i", _vm.info && _vm.info.list.length) ? _c( "view", @@ -6352,7 +6363,7 @@ var render = function () { ]) : _vm._e(), _vm._$s(35, "i", _vm.rtype == 2) - ? _c("view", [ + ? _c("view", { attrs: { _i: 35 } }, [ _vm._$s(36, "i", _vm.info && _vm.info.height) ? _c( "view", @@ -6559,7 +6570,7 @@ var render = function () { ]) : _vm._e(), _vm._$s(48, "i", _vm.rtype == 8) - ? _c("view", [ + ? _c("view", { attrs: { _i: 48 } }, [ _c( "view", { @@ -9458,7 +9469,7 @@ var render = function () { }, }), _vm._$s(36, "i", !_vm.disabled) - ? _c("text", [ + ? _c("text", { attrs: { _i: 36 } }, [ _vm._v( _vm._$s( 36, @@ -9698,7 +9709,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _record = _interopRequireDefault(__webpack_require__(/*! @/element/manuallyAdd/record.vue */ 58));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar myTime;\nvar _default = {\n data: function data() {\n return {\n active: 1,\n acd_id: 6,\n weight: 50,\n disabled: false,\n isDevice: 0,\n isConnection: false,\n time_m: \"\",\n time_s: \"\",\n timeList: [],\n devicesList: [],\n timesTndex: [1, 0],\n deviceId: \"\",\n serviceId: \"\",\n write: \"\",\n notify: \"\",\n islink: 0,\n //0连接中,1成功,-1失败\n textLink: \"\"\n };\n },\n components: {\n record: _record.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)(['user', \"MeasureSkip\", \"isConnected\", \"isBluetoothTyle\"])), {}, {\n info: function info() {\n return this.MeasureSkip;\n }\n }),\n mounted: function mounted() {\n var that = this;\n that.timeList = that.$tools.gethms();\n that.time_m = that.timeList[0][1].substring(0, 2);\n that.time_s = that.timeList[1][0].substring(0, 2);\n },\n onLoad: function onLoad(options) {\n var that = this;\n // 首页进入\n if (options && options.deviceId) {\n that.deviceId = options.deviceId;\n setTimeout(function () {\n that.createBLEConnection();\n }, 500);\n }\n if (options && options.acd_id) {\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n setTimeout(function () {\n that.handleisSdevice();\n }, 500);\n }\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n that.isConnection = that.isConnected;\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n onPullDownRefresh: function onPullDownRefresh() {\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n onShow: function onShow() {\n var that = this;\n // 跳绳页返回\n uni.$on('updateData', function (info) {\n var data = JSON.parse(info);\n that.acd_id = data.acd_id;\n that.isDevice = data.device;\n that.active = data.active;\n that.deviceId = data.deviceId;\n that.serviceId = data.serviceId;\n that.write = data.write;\n that.notify = data.notify;\n that.islink = !that.isConnected ? -1 : 1;\n that.isConnection = that.isConnected;\n that.notifyBLECharacteristicValue();\n if (data.isSuccessful) {\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n }\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n __f__(\"log\", '监听到事件来自 updateData', data, \" at pages/skiping/skip.vue:213\");\n });\n },\n onUnload: function onUnload() {\n var that = this;\n clearTimeout(myTime);\n that.islink = -1;\n that.isConnection = false;\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n uni.$off(\"updateData\");\n setTimeout(function () {\n uni.switchTab({\n url: '/pages/home/home'\n });\n }, 300);\n __f__(\"log\", \"返回首页onUnload\", \" at pages/skiping/skip.vue:229\");\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n that.islink = -1;\n that.textLink = \"重新连接\";\n }\n that.isConnection = that.isConnected;\n __f__(\"log\", \"蓝牙是否连接\", that.isConnected, \" at pages/skiping/skip.vue:239\");\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n that.isConnection = false;\n that.textLink = \"请打开手机蓝牙\";\n that.islink = -1;\n }\n __f__(\"log\", \"蓝牙是否打开\", that.isBluetoothTyle, \" at pages/skiping/skip.vue:248\");\n }\n },\n methods: {\n // 初始化蓝牙\n handleisSdevice: function handleisSdevice() {\n var that = this;\n if (that.isConnected) return;\n that.devicesList = [];\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n uni.openBluetoothAdapter({\n success: function success(e) {\n that.islink = 0;\n that.handleMyTime();\n that.textLink = \"蓝牙搜索中\";\n that.startBluetoothDeviceDiscovery();\n that.$store.commit(\"changeBluetooth\", true);\n __f__(\"log\", '初始化蓝牙成功:' + e.errMsg, \" at pages/skiping/skip.vue:265\");\n },\n fail: function fail(e) {\n that.islink = -1;\n that.textLink = that.$tools.getBluetoothAdapter(e);\n return;\n }\n });\n },\n // 开始搜寻附近的蓝牙外围设备\n startBluetoothDeviceDiscovery: function startBluetoothDeviceDiscovery() {\n var that = this;\n uni.startBluetoothDevicesDiscovery({\n allowDuplicatesKey: true,\n interval: 200,\n //上报设备的间隔\n services: [],\n success: function success(res) {\n that.onBluetoothDeviceFound();\n },\n fail: function fail(res) {}\n });\n },\n /**\n * 发现外围设备\n */\n onBluetoothDeviceFound: function onBluetoothDeviceFound() {\n var that = this;\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n if (!device.name && !device.localName) {\n return;\n }\n if (device.name.indexOf('YPC') != -1) {\n device.deviceId = device.deviceId;\n that.deviceId = device.deviceId;\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n that.handleDevice(device);\n return;\n }\n });\n });\n that.handleMyTime();\n },\n handleDevice: function handleDevice(device) {\n var that = this;\n var foundDevices = that.devicesList;\n var idx = that.$tools.inArray(foundDevices, \"deviceId\", device.deviceId);\n if (idx === -1) {\n that.devicesList.push(device);\n that.createBLEConnection();\n }\n },\n // 连接蓝牙\n createBLEConnection: function createBLEConnection() {\n var that = this;\n uni.createBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n that.textLink = \"蓝牙连接中\";\n setTimeout(function () {\n that.islink = 1;\n that.getBLEDeviceServices();\n }, 1000);\n },\n fail: function fail(res) {\n that.textLink = \"重新连接\";\n __f__(\"log\", \"设备连接失败,请重新连接\", res, that.deviceId, \" at pages/skiping/skip.vue:331\");\n }\n });\n },\n /**\n * 获取设备的UUID\n */\n getBLEDeviceServices: function getBLEDeviceServices() {\n var serviceList = [];\n var that = this;\n uni.getBLEDeviceServices({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", \"获取设备的UUID成功\", res, \" at pages/skiping/skip.vue:344\");\n serviceList = res.services;\n for (var i = 0; i < serviceList.length; i++) {\n var service = serviceList[i];\n if (service.uuid.indexOf(\"FFE0\") != -1) {\n that.serviceId = service.uuid;\n that.isConnection = true;\n that.textLink = \"连接成功\";\n that.getBLEDeviceCharacteristics();\n __f__(\"log\", \"设备的FFE0的serviceId: \" + that.serviceId, \" at pages/skiping/skip.vue:353\");\n break;\n }\n }\n },\n fail: function fail(res) {\n __f__(\"log\", '获取设备的UUID失败:', res, \" at pages/skiping/skip.vue:359\");\n that.islink = -1;\n that.textLink = \"重新连接\";\n clearTimeout(myTime);\n that.isConnection = false;\n }\n });\n },\n /**\n * 获取指定服务的特征值\n */\n getBLEDeviceCharacteristics: function getBLEDeviceCharacteristics() {\n var characteristicsList = [];\n var that = this;\n uni.getBLEDeviceCharacteristics({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n success: function success(res) {\n __f__(\"log\", \"服务的特征值成功\", res, \" at pages/skiping/skip.vue:378\");\n // * 读read: true, //,写write: true, //,通知notify: true\n for (var i = 0; i < res.characteristics.length; i++) {\n var item = res.characteristics[i];\n if (item.uuid.indexOf('0000FF12') != -1) {\n that.write = item.uuid;\n } else if (item.uuid.indexOf('0000FFE4') != -1) {\n that.notify = item.uuid;\n }\n }\n setTimeout(function () {\n var j = Number(165 + 10 + 1 + 8 + 8 + 8 + 8 + 8 + 8).toString(16);\n var str = \"A50A01080808080808\" + j.substr(j.length - 2, 2);\n that.SendData(str);\n }, 300);\n // 体重\n setTimeout(function () {\n that.handleStart(4);\n }, 600);\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n state: true\n });\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n state: true\n });\n that.notifyBLECharacteristicValue();\n },\n fail: function fail(res) {\n __f__(\"log\", '获取特征值失败:', JSON.stringify(res), \" at pages/skiping/skip.vue:413\");\n }\n });\n },\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n if (value == '5a05090169') {\n //模式设置成功\n var info = {\n active: that.active,\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n notify: that.notify,\n write: that.write,\n acd_id: that.acd_id,\n isDevice: that.isDevice,\n isSuccessful: false\n };\n setTimeout(function () {\n uni.$off(\"updateData\");\n uni.navigateTo({\n url: \"/pageTwo/devices/PCT01?info=\" + JSON.stringify(info)\n });\n }, 200);\n }\n __f__(\"log\", \"value\", value, that.active, \" at pages/skiping/skip.vue:446\");\n });\n }\n });\n },\n // 开启蓝牙主动上报模式\n SendData: function SendData(str) {\n var that = this;\n var buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function (h) {\n return parseInt(h, 16);\n }));\n __f__(\"log\", \"xiafa\", str, \" at pages/skiping/skip.vue:457\");\n uni.writeBLECharacteristicValue({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n value: buf.buffer,\n success: function success(res) {\n __f__(\"log\", '下发指令成功', res.errMsg, \" at pages/skiping/skip.vue:464\");\n },\n fail: function fail(res) {\n __f__(\"log\", \"下发指令失败\", res, \" at pages/skiping/skip.vue:467\");\n }\n });\n },\n // 模式切换\n handleStart: function handleStart(ind) {\n var that = this;\n var m = null;\n var send = null;\n if (!that.isConnected) {\n that.$tools.msg(\"请先连接设备!\");\n return;\n }\n if (ind == 1) {\n // 1自由\n m = Number(165 + 8 + 9).toString(16);\n send = \"A5080900000000\" + m.substr(m.length - 2, 2);\n }\n if (ind == 2) {\n //2定时\n var time = Number(that.time_m) * 60 + Number(that.time_s);\n m = Number(165 + 8 + 9 + time).toString(16);\n send = \"A508090000\" + that.$tools.toHex(time, 4) + m.substr(m.length - 2, 2);\n }\n if (ind == 3) {\n //3定数\n var weight = that.$tools.toHex(that.weight, 4);\n m = Number(165 + 8 + 9 + that.weight).toString(16);\n send = \"A50809\" + weight + \"0000\" + m.substr(m.length - 2, 2);\n }\n if (ind == 4) {\n //体重\n\n var _weight = Number(that.user.weight) * 2;\n var num = parseInt(_weight).toString();\n m = Number(165 + 5 + 8 + Number(num)).toString(16);\n send = \"A50508\" + Number(num).toString(16) + m.substr(m.length - 2, 2);\n }\n that.SendData(send);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n },\n // 历史数据删除时重新加载接口\n reload: function reload() {\n var that = this;\n this.$nextTick(function () {\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n });\n },\n // 定时训练\n //\n bindTimeChange: function bindTimeChange(e) {\n var that = this;\n var m = e.target.value[0];\n var s = e.target.value[1];\n that.timesTndex = e.target.value;\n var time_m = Number(that.timeList[0][m].substring(0, 2)) * 60;\n var time_s = Number(that.timeList[1][s].substring(0, 2));\n if (Number(time_m + time_s) < 30) {\n that.time_m = '00';\n that.time_s = '30';\n } else {\n that.time_m = that.timeList[0][m].substring(0, 2);\n that.time_s = that.timeList[1][s].substring(0, 2);\n }\n },\n handleTimeEdit: function handleTimeEdit(text) {\n var that = this;\n var time_m = Number(that.time_m) * 60;\n var time_s = Number(that.time_s);\n var minutes = null;\n var seconds = null;\n if (Number(time_m + time_s) >= 3570 && text == '加') {\n that.time_m = '59';\n that.time_s = '59';\n return;\n }\n if (Number(time_m + time_s) <= 30 && text == '减') {\n that.time_m = '00';\n that.time_s = '30';\n return;\n }\n if (text == '减') {\n minutes = Math.floor(Number(time_m + time_s - 30) % 3600 / 60);\n seconds = Number(time_m + time_s - 30) % 60;\n }\n if (text == '加') {\n minutes = Math.floor(Number(time_m + time_s + 30) % 3600 / 60);\n seconds = Number(time_m + time_s + 30) % 60;\n }\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n that.timesTndex = [Number(that.time_m), Number(that.time_s)];\n },\n handleWeightEdit: function handleWeightEdit(text) {\n var that = this;\n if (text == '减') {\n that.weight = Number(that.weight) - 50 > 50 ? Number(that.weight) - 50 : 50;\n }\n if (text == '加') {\n that.weight = Number(that.weight) + 50;\n }\n },\n // 蓝牙搜索记时\n handleMyTime: function handleMyTime() {\n var that = this;\n myTime = setTimeout(function () {\n if (!that.devicesList.length) {\n that.islink = -1;\n that.textLink = \"重新搜索\";\n that.$tools.msg(\"没有查找到设备\");\n }\n clearTimeout(myTime);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n }, 20000);\n },\n // 监听蓝牙连接状态\n onBLEConnectionStateChange: function onBLEConnectionStateChange() {\n var that = this;\n uni.onBLEConnectionStateChange(function (res) {\n __f__(\"log\", \"监听蓝牙连接状态\", res.connected, \" at pages/skiping/skip.vue:585\");\n that.$store.commit(\"changeConnected\", res.connected);\n });\n },\n /**\n * 断开蓝牙模块\n */\n closeBluetoothAdapter: function closeBluetoothAdapter() {\n var that = this;\n uni.closeBluetoothAdapter({\n success: function success(res) {\n __f__(\"log\", '蓝牙模块关闭成功', \" at pages/skiping/skip.vue:596\");\n }\n });\n },\n /**\n * 断开蓝牙连接\n */\n closeBLEConnection: function closeBLEConnection() {\n var that = this;\n uni.closeBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", '断开蓝牙连接成功', \" at pages/skiping/skip.vue:608\");\n that.$store.commit(\"changeConnected\", false);\n }\n });\n },\n navTo: function navTo(url) {\n var that = this;\n if (!that.isConnected) {\n that.islink = -1;\n clearTimeout(myTime);\n that.$Bluetooth.closeBluetoothAdapter();\n that.$Bluetooth.closeBLEConnection(that.deviceId);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n __f__(\"log\", \"蓝牙没有连接\", \" at pages/skiping/skip.vue:621\");\n }\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvc2tpcGluZy9za2lwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiYWN0aXZlIiwiYWNkX2lkIiwid2VpZ2h0IiwiZGlzYWJsZWQiLCJpc0RldmljZSIsImlzQ29ubmVjdGlvbiIsInRpbWVfbSIsInRpbWVfcyIsInRpbWVMaXN0IiwiZGV2aWNlc0xpc3QiLCJ0aW1lc1RuZGV4IiwiZGV2aWNlSWQiLCJzZXJ2aWNlSWQiLCJ3cml0ZSIsIm5vdGlmeSIsImlzbGluayIsInRleHRMaW5rIiwiY29tcG9uZW50cyIsInJlY29yZCIsImNvbXB1dGVkIiwiaW5mbyIsIm1vdW50ZWQiLCJ0aGF0Iiwib25Mb2FkIiwic2V0VGltZW91dCIsImF1ZF9pZCIsInVuaSIsIm9uUHVsbERvd25SZWZyZXNoIiwib25TaG93Iiwib25VbmxvYWQiLCJjbGVhclRpbWVvdXQiLCJ1cmwiLCJ3YXRjaCIsImlzQ29ubmVjdGVkIiwiaXNCbHVldG9vdGhUeWxlIiwibWV0aG9kcyIsImhhbmRsZWlzU2RldmljZSIsInN1Y2Nlc3MiLCJmYWlsIiwic3RhcnRCbHVldG9vdGhEZXZpY2VEaXNjb3ZlcnkiLCJhbGxvd0R1cGxpY2F0ZXNLZXkiLCJpbnRlcnZhbCIsInNlcnZpY2VzIiwib25CbHVldG9vdGhEZXZpY2VGb3VuZCIsInJlcyIsImRldmljZSIsImhhbmRsZURldmljZSIsImNyZWF0ZUJMRUNvbm5lY3Rpb24iLCJnZXRCTEVEZXZpY2VTZXJ2aWNlcyIsInNlcnZpY2VMaXN0IiwiZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzIiwiY2hhcmFjdGVyaXN0aWNJZCIsInN0YXRlIiwibm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsImlzU3VjY2Vzc2Z1bCIsInN0cmluZ2lmeSIsIlNlbmREYXRhIiwidmFsdWUiLCJoYW5kbGVTdGFydCIsIm0iLCJzZW5kIiwicmVsb2FkIiwiYmluZFRpbWVDaGFuZ2UiLCJoYW5kbGVUaW1lRWRpdCIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwiaGFuZGxlV2VpZ2h0RWRpdCIsImhhbmRsZU15VGltZSIsIm15VGltZSIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwiY2xvc2VCbHVldG9vdGhBZGFwdGVyIiwiY2xvc2VCTEVDb25uZWN0aW9uIiwibmF2VG8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBc0hBO0FBR0E7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSkE7QUFBQSxlQUtBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7RUFDQTtFQUNBQywwQ0FDQTtJQUNBQztNQUNBO0lBQ0E7RUFBQSxFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7SUFDQUE7SUFDQUE7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtNQUNBRDtNQUNBRTtRQUNBRjtNQUNBO0lBQ0E7SUFDQTtNQUNBQTtNQUNBRTtRQUNBRjtNQUNBO0lBQ0E7SUFDQUE7TUFDQUc7SUFDQTtJQUNBSDtJQUNBQTtJQUNBSTtNQUNBSjtJQUNBO0VBQ0E7RUFDQUs7SUFDQUg7TUFDQUU7SUFDQTtFQUNBO0VBQ0FFO0lBQ0E7SUFDQTtJQUNBRjtNQUNBO01BQ0FKO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0E7UUFDQUE7VUFDQUc7UUFDQTtNQUNBO01BQ0FIO01BQ0FJO1FBQ0FKO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQU87SUFDQTtJQUNBQztJQUNBUjtJQUNBQTtJQUNBQTtJQUNBQTtJQUNBSTtJQUNBRjtNQUNBRTtRQUNBSztNQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtRQUNBWDtRQUNBQTtNQUNBO01BQ0FBO01BQ0E7SUFDQTtJQUNBWTtNQUNBO01BQ0E7UUFDQVo7UUFDQUE7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBYTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBZDtNQUNBQTtNQUNBSTtRQUNBVztVQUNBZjtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0FoQjtVQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQWI7UUFDQWM7UUFDQUM7UUFBQTtRQUNBQztRQUNBTDtVQUNBZjtRQUNBO1FBQ0FnQjtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUs7TUFDQTtNQUNBakI7UUFDQWtCO1VBQ0E7WUFDQTtVQUNBO1VBQ0E7WUFDQUM7WUFDQXZCO1lBQ0FBO1lBQ0FBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUE7SUFDQTtJQUNBd0I7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBeEI7UUFDQUE7TUFDQTtJQUNBO0lBQ0E7SUFDQXlCO01BQ0E7TUFDQXJCO1FBQ0FmO1FBQ0EwQjtVQUNBZjtVQUNBRTtZQUNBRjtZQUNBQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0FoQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0EwQjtNQUNBO01BQ0E7TUFDQXRCO1FBQ0FmO1FBQ0EwQjtVQUNBO1VBQ0FZO1VBQ0E7WUFDQTtZQUNBO2NBQ0EzQjtjQUNBQTtjQUNBQTtjQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0E7VUFDQWhCO1VBQ0FBO1VBQ0FRO1VBQ0FSO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0lBQ0E0QjtNQUNBO01BQ0E7TUFDQXhCO1FBQ0FmO1FBQ0FDO1FBQ0F5QjtVQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQWY7WUFFQTtjQUNBQTtZQUNBO1VBQ0E7VUFDQUU7WUFDQTtZQUNBO1lBQ0FGO1VBQ0E7VUFDQTtVQUNBRTtZQUNBRjtVQUNBO1VBQ0FJO1lBQ0FmO1lBQ0FDO1lBQ0F1QztZQUNBQztVQUNBO1VBQ0ExQjtZQUNBZjtZQUNBQztZQUNBdUM7WUFDQUM7VUFDQTtVQUNBOUI7UUFDQTtRQUNBZ0I7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBZTtNQUNBO01BQ0EzQjtRQUNBMEI7UUFBQTtRQUNBekM7UUFDQUM7UUFDQXVDO1FBQ0FkO1VBQ0FYO1lBQ0E7WUFDQTtjQUFBO2NBQ0E7Z0JBQ0ExQjtnQkFDQVc7Z0JBQ0FDO2dCQUNBRTtnQkFDQUQ7Z0JBQ0FaO2dCQUNBRztnQkFDQWtEO2NBQ0E7Y0FDQTlCO2dCQUNBRTtnQkFDQUE7a0JBQ0FLLDJDQUNBd0I7Z0JBQ0E7Y0FDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBOUI7UUFDQWY7UUFDQUM7UUFDQXVDO1FBQ0FNO1FBQ0FwQjtVQUNBO1FBQ0E7UUFDQUM7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FvQjtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FwQztRQUNBO01BQ0E7TUFDQTtRQUFBO1FBQ0FxQztRQUNBQztNQUNBO01BQ0E7UUFBQTtRQUNBO1FBQ0FEO1FBQ0FDO01BQ0E7TUFDQTtRQUFBO1FBQ0E7UUFDQUQ7UUFDQUM7TUFDQTtNQUNBO1FBQUE7O1FBRUE7UUFDQTtRQUNBRDtRQUNBQztNQUNBO01BQ0F0QztNQUNBQTtJQUNBO0lBQ0E7SUFDQXVDO01BQ0E7TUFDQTtRQUNBdkM7VUFDQUc7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FxQztNQUNBO01BQ0E7TUFDQTtNQUNBeEM7TUFDQTtNQUNBO01BQ0E7UUFDQUE7UUFDQUE7TUFDQTtRQUNBQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQXlDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUVBO1FBQ0F6QztRQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBQTtRQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBMEM7UUFDQUM7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO01BQ0E7TUFDQTNDO01BQ0FBO01BQ0FBO0lBQ0E7SUFDQTRDO01BQ0E7TUFDQTtRQUNBNUM7TUFDQTtNQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBO0lBQ0E2QztNQUNBO01BQ0FDO1FBQ0E7VUFDQTlDO1VBQ0FBO1VBQ0FBO1FBQ0E7UUFDQVE7UUFDQVI7TUFDQTtJQUNBO0lBQ0E7SUFDQStDO01BQ0E7TUFDQTNDO1FBQ0E7UUFDQUo7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FnRDtNQUNBO01BQ0E1QztRQUNBVztVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FrQztNQUNBO01BQ0E3QztRQUNBZjtRQUNBMEI7VUFDQTtVQUNBZjtRQUNBO01BQ0E7SUFDQTtJQUNBa0Q7TUFDQTtNQUNBO1FBQ0FsRDtRQUNBUTtRQUNBUjtRQUNBQTtRQUNBQTtRQUNBO01BQ0E7TUFDQUk7UUFDQUs7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyBjbGFzcz1cImNvbnRlbnQgc2tpcHBpbmdcIj5cblx0XHQ8IS0tICAtLT5cblx0XHQ8dmlldyBjbGFzcz1cInNraXB0b3BcIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwic3RhdHVzXCIgQGNsaWNrPVwiaGFuZGxlaXNTZGV2aWNlKClcIj5cblx0XHRcdFx0PHRleHQ+e3t0ZXh0TGlua319PC90ZXh0PlxuXHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzbGluayE9MVwiIDpjbGFzcz1cIltpc2xpbms9PS0xPycnOidpY29uX2xpbmsnXVwiIHNyYz1cIi4uLy4uL3N0YXRpYy96aHVhbi5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzbGluaz09MVwiIHNyYz1cIi4uLy4uL3N0YXRpYy9kdWkucG5nXCI+PC9pbWFnZT5cblx0XHRcdDwvdmlldz5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+5LuK5pel5Liq5pWwPHRleHQ+e3tpbmZvP2luZm8udG9kYXlfanVtcF9udW06Jy0tJ319PC90ZXh0Pjwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPuS7iuaXpeaXtumVvzx0ZXh0Pnt7aW5mbz9pbmZvLnRvZGF5X2p1bXBfdGltZTonLS0nfX08L3RleHQ+PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+5Y2h6Lev6YeML2tjYWw8dGV4dD57e2luZm8/aW5mby50b2RheV9qdW1wX2tjYWw6Jy0tJ319PC90ZXh0Pjwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdFx0PCEtLSAgLS0+XG5cdFx0PHZpZXcgY2xhc3M9XCJ0YWJiYXJcIj5cblx0XHRcdDx2aWV3IEBjbGljaz1cImFjdGl2ZT0xXCIgOmNsYXNzPVwiW2FjdGl2ZT09MT8nYWN0aXZlJzonJ11cIj7oh6rnlLHot7M8L3ZpZXc+XG5cdFx0XHQ8dmlldyBAY2xpY2s9XCJhY3RpdmU9M1wiIDpjbGFzcz1cIlthY3RpdmU9PTM/J2FjdGl2ZSc6JyddXCI+5YCS6K6h5pWwPC92aWV3PlxuXHRcdFx0PHZpZXcgQGNsaWNrPVwiYWN0aXZlPTJcIiA6Y2xhc3M9XCJbYWN0aXZlPT0yPydhY3RpdmUnOicnXVwiPuWAkuiuoeaXtjwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdFx0PCEtLeiHqueUseiuree7gyAgLS0+XG5cdFx0PHZpZXcgY2xhc3M9XCJib3gxIGJveFwiIHYtaWY9XCJhY3RpdmU9PTFcIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc2V0IGl0ZW0tc2V0MFwiPuiHqueUsTwvdGV4dD5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJ0aXBzXCI+5peg6ZmQ5Yi2PC90ZXh0PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgOmNsYXNzPVwiW2lzbGluaz09MT8nc3RhcnQnOidzdGFydCBOc3RhcnQnXVwiIEBjbGljaz1cImhhbmRsZVN0YXJ0KDEpXCI+5byA5aeLPC92aWV3PlxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLWl0ZVwiPuacrOasoeaXtumVvzwvdGV4dD5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJib2xkXCI+e3tpbmZvP2luZm8ubGFzdF9qdW1wX3RpbWU6JzAnfX08L3RleHQ+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLWl0ZVwiPua2iOiAl+WNoei3r+mHjDwvdGV4dD5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJib2xkXCI+e3tpbmZvP2luZm8ubGFzdF9qdW1wX2tjYWw6JzAnfX08L3RleHQ+XG5cdFx0XHQ8L3ZpZXc+IC0tPlxuXHRcdDwvdmlldz5cblx0XHQ8IS0t5a6a5pe26K6t57uDICAtLT5cblx0XHQ8dmlldyBjbGFzcz1cImJveDEgYm94XCIgdi1pZj1cImFjdGl2ZT09MlwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1zZXRcIj5cblx0XHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJoYW5kbGVUaW1lRWRpdCgn5YePJylcIj7vvI08L3RleHQ+XG5cdFx0XHRcdFx0PHRleHQ+e3t0aW1lX219fTp7e3RpbWVfc319PC90ZXh0PlxuXHRcdFx0XHRcdDx0ZXh0IEBjbGljaz1cImhhbmRsZVRpbWVFZGl0KCfliqAnKVwiPu+8izwvdGV4dD5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpcHNcIj5cblx0XHRcdFx0XHQ8cGlja2VyIG1vZGU9XCJtdWx0aVNlbGVjdG9yXCIgOnJhbmdlPVwidGltZUxpc3RcIiA6dmFsdWU9XCJ0aW1lc1RuZGV4XCIgQGNoYW5nZT1cImJpbmRUaW1lQ2hhbmdlXCI+XG5cdFx0XHRcdFx0XHQ8dmlldz7osIPmlbTnm67moIc8L3ZpZXc+XG5cdFx0XHRcdFx0PC9waWNrZXI+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHRcdDx2aWV3IDpjbGFzcz1cIltpc0Nvbm5lY3Rpb24/J3N0YXJ0Jzonc3RhcnQgTnN0YXJ0J11cIiBAY2xpY2s9XCJoYW5kbGVTdGFydCgyKVwiPuW8gOWnizwvdmlldz5cblx0XHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1pdGVcIj7mnKzmrKHkuKrmlbA8L3RleHQ+XG5cdFx0XHRcdDx0ZXh0PjwvdGV4dD5cblx0XHRcdDwvdmlldz5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0taXRlXCI+5raI6ICX5Y2h6Lev6YeMPC90ZXh0PlxuXHRcdFx0XHQ8dGV4dD48L3RleHQ+XG5cdFx0XHQ8L3ZpZXc+IC0tPlxuXHRcdDwvdmlldz5cblx0XHQ8IS0t5a6a5pWw6K6t57uDICAtLT5cblx0XHQ8dmlldyBjbGFzcz1cImJveDEgYm94XCIgdi1pZj1cImFjdGl2ZT09M1wiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1zZXRcIj5cblx0XHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJoYW5kbGVXZWlnaHRFZGl0KCflh48nKVwiPu+8jTwvdGV4dD5cblx0XHRcdFx0XHQ8dGV4dCB2LWlmPVwiIWRpc2FibGVkXCI+e3t3ZWlnaHQ+NTA/d2VpZ2h0OjUwfX08L3RleHQ+XG5cdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwid2VpZ2h0XCIgZm9jdXM9XCJ0cnVlXCIgdi1lbHNlIEBibHVyPVwiZGlzYWJsZWQ9ZmFsc2VcIj5cblx0XHRcdFx0XHQ8dGV4dCBAY2xpY2s9XCJoYW5kbGVXZWlnaHRFZGl0KCfliqAnKVwiPu+8izwvdGV4dD5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRpcHNcIiBAY2xpY2s9XCJkaXNhYmxlZD10cnVlXCI+6LCD5pW055uu5qCHPC90ZXh0PlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgOmNsYXNzPVwiW2lzQ29ubmVjdGlvbj8nc3RhcnQnOidzdGFydCBOc3RhcnQnXVwiIEBjbGljaz1cImhhbmRsZVN0YXJ0KDMpXCI+5byA5aeLPC92aWV3PlxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLWl0ZVwiPuacrOasoeaXtumVvzwvdGV4dD5cblx0XHRcdFx0PHRleHQ+MDwvdGV4dD5cblx0XHRcdDwvdmlldz5cblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0taXRlXCI+5raI6ICX5Y2h6Lev6YeMPC90ZXh0PlxuXHRcdFx0XHQ8dGV4dD4wPC90ZXh0PlxuXHRcdFx0PC92aWV3PiAtLT5cblx0XHQ8L3ZpZXc+XG5cdFx0PCEtLSAgLS0+XG5cdFx0PHZpZXcgY2xhc3M9XCJncmlkTGlzdFwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRhXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZXMvc2tpcGluZy9jaGFydHMnKVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCJAL3N0YXRpYy9jaGFydHMucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+6L+Q5Yqo5puy57q/PC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9oaXN0b3J5L2hpc3Rvcnk/YWNkX2lkPScrYWNkX2lkKVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCJAL3N0YXRpYy9hZGQucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+5Y6G5Y+y6K6w5b2VPC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9jb21way9jb250cmFzdD9hY2RfaWQ9JythY2RfaWQpXCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIkAvc3RhdGljL3BrLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuaVsOaNruWvueavlDwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiBAY2xpY2s9XCIkc3RvcmUuY29tbWl0KCdjaGFuZ2VSZWNvcmQnLHRydWUpXCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIkAvc3RhdGljL2hpc3RvcnkucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+5re75Yqg6K6w5b2VPC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDwhLS0g5omL5Yqo6K6w5b2VIC0tPlxuXHRcdDxyZWNvcmQgOnJ0eXBlPVwiYWNkX2lkXCI+PC9yZWNvcmQ+XG5cdDwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cdGxldCBteVRpbWU7XG5cdGltcG9ydCB7XG5cdFx0bWFwU3RhdGVcblx0fSBmcm9tIFwidnVleFwiO1xuXHRpbXBvcnQgcmVjb3JkIGZyb20gJ0AvZWxlbWVudC9tYW51YWxseUFkZC9yZWNvcmQudnVlJztcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRhY3RpdmU6IDEsXG5cdFx0XHRcdGFjZF9pZDogNixcblx0XHRcdFx0d2VpZ2h0OiA1MCxcblx0XHRcdFx0ZGlzYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRpc0RldmljZTogMCxcblx0XHRcdFx0aXNDb25uZWN0aW9uOiBmYWxzZSxcblx0XHRcdFx0dGltZV9tOiBcIlwiLFxuXHRcdFx0XHR0aW1lX3M6IFwiXCIsXG5cdFx0XHRcdHRpbWVMaXN0OiBbXSxcblx0XHRcdFx0ZGV2aWNlc0xpc3Q6IFtdLFxuXHRcdFx0XHR0aW1lc1RuZGV4OiBbMSwgMF0sXG5cdFx0XHRcdGRldmljZUlkOiBcIlwiLFxuXHRcdFx0XHRzZXJ2aWNlSWQ6IFwiXCIsXG5cdFx0XHRcdHdyaXRlOiBcIlwiLFxuXHRcdFx0XHRub3RpZnk6IFwiXCIsXG5cdFx0XHRcdGlzbGluazogMCwgLy8w6L+e5o6l5Lit77yMMeaIkOWKn++8jC0x5aSx6LSlXG5cdFx0XHRcdHRleHRMaW5rOiBcIlwiXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRjb21wb25lbnRzOiB7XG5cdFx0XHRyZWNvcmRcblx0XHR9LFxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHQuLi5tYXBTdGF0ZShbJ3VzZXInLCBcIk1lYXN1cmVTa2lwXCIsIFwiaXNDb25uZWN0ZWRcIiwgXCJpc0JsdWV0b290aFR5bGVcIl0pLFxuXHRcdFx0aW5mbygpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuTWVhc3VyZVNraXBcblx0XHRcdH0sXG5cdFx0fSxcblx0XHRtb3VudGVkKCkge1xuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHR0aGF0LnRpbWVMaXN0ID0gdGhhdC4kdG9vbHMuZ2V0aG1zKClcblx0XHRcdHRoYXQudGltZV9tID0gdGhhdC50aW1lTGlzdFswXVsxXS5zdWJzdHJpbmcoMCwgMilcblx0XHRcdHRoYXQudGltZV9zID0gdGhhdC50aW1lTGlzdFsxXVswXS5zdWJzdHJpbmcoMCwgMilcblx0XHR9LFxuXHRcdG9uTG9hZChvcHRpb25zKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdC8vIOmmlumhtei/m+WFpVxuXHRcdFx0aWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5kZXZpY2VJZCkge1xuXHRcdFx0XHR0aGF0LmRldmljZUlkID0gb3B0aW9ucy5kZXZpY2VJZFxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHRoYXQuY3JlYXRlQkxFQ29ubmVjdGlvbigpXG5cdFx0XHRcdH0sIDUwMClcblx0XHRcdH1cblx0XHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMuYWNkX2lkKSB7XG5cdFx0XHRcdHRoYXQuJEJsdWV0b290aC5zdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0dGhhdC5oYW5kbGVpc1NkZXZpY2UoKVxuXHRcdFx0XHR9LCA1MDApXG5cdFx0XHR9XG5cdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldFNraXBSZXN1bHRcIiwge1xuXHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcblx0XHRcdH0pXG5cdFx0XHR0aGF0LmlzQ29ubmVjdGlvbiA9IHRoYXQuaXNDb25uZWN0ZWRcblx0XHRcdHRoYXQub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKVxuXHRcdFx0dW5pLm9uQmx1ZXRvb3RoQWRhcHRlclN0YXRlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xuXHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VCbHVldG9vdGhcIiwgcmVzLmF2YWlsYWJsZSk7XG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0b25QdWxsRG93blJlZnJlc2goKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dW5pLnN0b3BQdWxsRG93blJlZnJlc2goKVxuXHRcdFx0fSwgMTAwMCk7XG5cdFx0fSxcblx0XHRvblNob3coKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdC8vIOi3s+e7s+mhtei/lOWbnlxuXHRcdFx0dW5pLiRvbigndXBkYXRlRGF0YScsIGZ1bmN0aW9uKGluZm8pIHtcblx0XHRcdFx0bGV0IGRhdGEgPSBKU09OLnBhcnNlKGluZm8pXG5cdFx0XHRcdHRoYXQuYWNkX2lkID0gZGF0YS5hY2RfaWRcblx0XHRcdFx0dGhhdC5pc0RldmljZSA9IGRhdGEuZGV2aWNlXG5cdFx0XHRcdHRoYXQuYWN0aXZlID0gZGF0YS5hY3RpdmVcblx0XHRcdFx0dGhhdC5kZXZpY2VJZCA9IGRhdGEuZGV2aWNlSWRcblx0XHRcdFx0dGhhdC5zZXJ2aWNlSWQgPSBkYXRhLnNlcnZpY2VJZFxuXHRcdFx0XHR0aGF0LndyaXRlID0gZGF0YS53cml0ZVxuXHRcdFx0XHR0aGF0Lm5vdGlmeSA9IGRhdGEubm90aWZ5XG5cdFx0XHRcdHRoYXQuaXNsaW5rID0gIXRoYXQuaXNDb25uZWN0ZWQgPyAtMSA6IDFcblx0XHRcdFx0dGhhdC5pc0Nvbm5lY3Rpb24gPSB0aGF0LmlzQ29ubmVjdGVkXG5cdFx0XHRcdHRoYXQubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSgpXG5cdFx0XHRcdGlmIChkYXRhLmlzU3VjY2Vzc2Z1bCkge1xuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKFwiZ2V0U2tpcFJlc3VsdFwiLCB7XG5cdFx0XHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoYXQub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKVxuXHRcdFx0XHR1bmkub25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQmx1ZXRvb3RoXCIsIHJlcy5hdmFpbGFibGUpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRjb25zb2xlLmxvZygn55uR5ZCs5Yiw5LqL5Lu25p2l6IeqIHVwZGF0ZURhdGEnLCBkYXRhKTtcblx0XHRcdH0pXG5cdFx0fSxcblx0XHRvblVubG9hZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdGNsZWFyVGltZW91dChteVRpbWUpO1xuXHRcdFx0dGhhdC5pc2xpbmsgPSAtMVxuXHRcdFx0dGhhdC5pc0Nvbm5lY3Rpb24gPSBmYWxzZVxuXHRcdFx0dGhhdC5jbG9zZUJMRUNvbm5lY3Rpb24oKVxuXHRcdFx0dGhhdC5jbG9zZUJsdWV0b290aEFkYXB0ZXIoKVxuXHRcdFx0dW5pLiRvZmYoXCJ1cGRhdGVEYXRhXCIpXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dW5pLnN3aXRjaFRhYih7XG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2hvbWUvaG9tZSdcblx0XHRcdFx0fSlcblx0XHRcdH0sIDMwMClcblx0XHRcdGNvbnNvbGUubG9nKFwi6L+U5Zue6aaW6aG1b25VbmxvYWRcIilcblx0XHR9LFxuXHRcdHdhdGNoOiB7XG5cdFx0XHRpc0Nvbm5lY3RlZCgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGlmICghdGhhdC5pc0Nvbm5lY3RlZCkge1xuXHRcdFx0XHRcdHRoYXQuaXNsaW5rID0gLTFcblx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gXCLph43mlrDov57mjqVcIlxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoYXQuaXNDb25uZWN0aW9uID0gdGhhdC5pc0Nvbm5lY3RlZFxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuiTneeJmeaYr+WQpui/nuaOpVwiLCB0aGF0LmlzQ29ubmVjdGVkKVxuXHRcdFx0fSxcblx0XHRcdGlzQmx1ZXRvb3RoVHlsZSgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGlmICghdGhhdC5pc0JsdWV0b290aFR5bGUpIHtcblx0XHRcdFx0XHR0aGF0LmlzQ29ubmVjdGlvbiA9IGZhbHNlXG5cdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IFwi6K+35omT5byA5omL5py66JOd54mZXCJcblx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc29sZS5sb2coXCLok53niZnmmK/lkKbmiZPlvIBcIiwgdGhhdC5pc0JsdWV0b290aFR5bGUpXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHQvLyDliJ3lp4vljJbok53niZlcblx0XHRcdGhhbmRsZWlzU2RldmljZSgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGlmICh0aGF0LmlzQ29ubmVjdGVkKSByZXR1cm5cblx0XHRcdFx0dGhhdC5kZXZpY2VzTGlzdCA9IFtdXG5cdFx0XHRcdHRoYXQuJEJsdWV0b290aC5zdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpXG5cdFx0XHRcdHVuaS5vcGVuQmx1ZXRvb3RoQWRhcHRlcih7XG5cdFx0XHRcdFx0c3VjY2VzczogZSA9PiB7XG5cdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IDBcblx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlTXlUaW1lKClcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIuiTneeJmeaQnOe0ouS4rVwiXG5cdFx0XHRcdFx0XHR0aGF0LnN0YXJ0Qmx1ZXRvb3RoRGV2aWNlRGlzY292ZXJ5KClcblx0XHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUJsdWV0b290aFwiLCB0cnVlKVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+WIneWni+WMluiTneeJmeaIkOWKnzonICsgZS5lcnJNc2cpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZmFpbDogZSA9PiB7XG5cdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXG5cdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gdGhhdC4kdG9vbHMuZ2V0Qmx1ZXRvb3RoQWRhcHRlcihlKVxuXHRcdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHQvLyDlvIDlp4vmkJzlr7vpmYTov5HnmoTok53niZnlpJblm7Torr7lpIdcblx0XHRcdHN0YXJ0Qmx1ZXRvb3RoRGV2aWNlRGlzY292ZXJ5KCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSh7XG5cdFx0XHRcdFx0YWxsb3dEdXBsaWNhdGVzS2V5OiB0cnVlLFxuXHRcdFx0XHRcdGludGVydmFsOiAyMDAsIC8v5LiK5oql6K6+5aSH55qE6Ze06ZqUXG5cdFx0XHRcdFx0c2VydmljZXM6IFtdLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0XHR0aGF0Lm9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGZhaWw6IHJlcyA9PiB7fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOWPkeeOsOWkluWbtOiuvuWkh1xuXHRcdFx0ICovXG5cdFx0XHRvbkJsdWV0b290aERldmljZUZvdW5kKCkge1xuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdHVuaS5vbkJsdWV0b290aERldmljZUZvdW5kKHJlcyA9PiB7XG5cdFx0XHRcdFx0cmVzLmRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKCFkZXZpY2UubmFtZSAmJiAhZGV2aWNlLmxvY2FsTmFtZSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChkZXZpY2UubmFtZS5pbmRleE9mKCdZUEMnKSAhPSAtMSkge1xuXHRcdFx0XHRcdFx0XHRkZXZpY2UuZGV2aWNlSWQgPSBkZXZpY2UuZGV2aWNlSWRcblx0XHRcdFx0XHRcdFx0dGhhdC5kZXZpY2VJZCA9IGRldmljZS5kZXZpY2VJZFxuXHRcdFx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguc3RvcEJsdWV0b290aERldmljZXNEaXNjb3ZlcnkoKVxuXHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZURldmljZShkZXZpY2UpXG5cdFx0XHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGF0LmhhbmRsZU15VGltZSgpXG5cdFx0XHR9LFxuXHRcdFx0aGFuZGxlRGV2aWNlKGRldmljZSkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0Y29uc3QgZm91bmREZXZpY2VzID0gdGhhdC5kZXZpY2VzTGlzdFxuXHRcdFx0XHRjb25zdCBpZHggPSB0aGF0LiR0b29scy5pbkFycmF5KGZvdW5kRGV2aWNlcywgXCJkZXZpY2VJZFwiLCBkZXZpY2UuZGV2aWNlSWQpXG5cdFx0XHRcdGlmIChpZHggPT09IC0xKSB7XG5cdFx0XHRcdFx0dGhhdC5kZXZpY2VzTGlzdC5wdXNoKGRldmljZSk7XG5cdFx0XHRcdFx0dGhhdC5jcmVhdGVCTEVDb25uZWN0aW9uKClcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdC8vIOi/nuaOpeiTneeJmVxuXHRcdFx0Y3JlYXRlQkxFQ29ubmVjdGlvbigpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xuXHRcdFx0XHR1bmkuY3JlYXRlQkxFQ29ubmVjdGlvbih7XG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIuiTneeJmei/nuaOpeS4rVwiXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IDFcblx0XHRcdFx0XHRcdFx0dGhhdC5nZXRCTEVEZXZpY2VTZXJ2aWNlcygpXG5cdFx0XHRcdFx0XHR9LCAxMDAwKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIumHjeaWsOi/nuaOpVwiXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiuvuWkh+i/nuaOpeWksei0pe+8jOivt+mHjeaWsOi/nuaOpVwiLCByZXMsIHRoYXQuZGV2aWNlSWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDojrflj5borr7lpIfnmoRVVUlEXG5cdFx0XHQgKi9cblx0XHRcdGdldEJMRURldmljZVNlcnZpY2VzKCkge1xuXHRcdFx0XHRsZXQgc2VydmljZUxpc3QgPSBbXTtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xuXHRcdFx0XHR1bmkuZ2V0QkxFRGV2aWNlU2VydmljZXMoe1xuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiOt+WPluiuvuWkh+eahFVVSUTmiJDlip9cIiwgcmVzKVxuXHRcdFx0XHRcdFx0c2VydmljZUxpc3QgPSByZXMuc2VydmljZXM7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlcnZpY2VMaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBzZXJ2aWNlID0gc2VydmljZUxpc3RbaV07XG5cdFx0XHRcdFx0XHRcdGlmIChzZXJ2aWNlLnV1aWQuaW5kZXhPZihcIkZGRTBcIikgIT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNlcnZpY2VJZCA9IHNlcnZpY2UudXVpZDtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmlzQ29ubmVjdGlvbiA9IHRydWVcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gXCLov57mjqXmiJDlip9cIlxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKCk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLorr7lpIfnmoRGRkUw55qEc2VydmljZUlk77yaIFwiICsgdGhhdC5zZXJ2aWNlSWQpO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluiuvuWkh+eahFVVSUTlpLHotKU6JywgcmVzKVxuXHRcdFx0XHRcdFx0dGhhdC5pc2xpbmsgPSAtMVxuXHRcdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IFwi6YeN5paw6L+e5o6lXCJcblx0XHRcdFx0XHRcdGNsZWFyVGltZW91dChteVRpbWUpO1xuXHRcdFx0XHRcdFx0dGhhdC5pc0Nvbm5lY3Rpb24gPSBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIOiOt+WPluaMh+WumuacjeWKoeeahOeJueW+geWAvFxuXHRcdFx0ICovXG5cdFx0XHRnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MoKSB7XG5cdFx0XHRcdGxldCBjaGFyYWN0ZXJpc3RpY3NMaXN0ID0gW107XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdFx0dW5pLmdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcyh7XG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXG5cdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLmnI3liqHnmoTnibnlvoHlgLzmiJDlip9cIiwgcmVzKVxuXHRcdFx0XHRcdFx0Ly8gKiDor7tyZWFkOiB0cnVlLCAvLyzlhpl3cml0ZTogdHJ1ZSwgLy8s6YCa55+lbm90aWZ5OiB0cnVlXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jaGFyYWN0ZXJpc3RpY3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0bGV0IGl0ZW0gPSByZXMuY2hhcmFjdGVyaXN0aWNzW2ldO1xuXHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51dWlkLmluZGV4T2YoJzAwMDBGRjEyJykgIT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndyaXRlID0gaXRlbS51dWlkXG5cblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChpdGVtLnV1aWQuaW5kZXhPZignMDAwMEZGRTQnKSAhPSAtMSkge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQubm90aWZ5ID0gaXRlbS51dWlkXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBqID0gTnVtYmVyKDE2NSArIDEwICsgMSArIDggKyA4ICsgOCArIDggKyA4ICsgOCkudG9TdHJpbmcoMTYpXG5cdFx0XHRcdFx0XHRcdGxldCBzdHIgPSBcIkE1MEEwMTA4MDgwODA4MDgwOFwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxuXHRcdFx0XHRcdFx0XHR0aGF0LlNlbmREYXRhKHN0cilcblx0XHRcdFx0XHRcdH0sIDMwMClcblx0XHRcdFx0XHRcdC8vIOS9k+mHjVxuXHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCg0KVxuXHRcdFx0XHRcdFx0fSwgNjAwKVxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xuXHRcdFx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcblx0XHRcdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC5ub3RpZnksXG5cdFx0XHRcdFx0XHRcdHN0YXRlOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdHVuaS5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKHtcblx0XHRcdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXG5cdFx0XHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQud3JpdGUsXG5cdFx0XHRcdFx0XHRcdHN0YXRlOiB0cnVlLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdHRoYXQubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSgpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPlueJueW+geWAvOWksei0pTonLCBKU09OLnN0cmluZ2lmeShyZXMpKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdHVuaS5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKHtcblx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSwgLy8g5ZCv55SoIG5vdGlmeSDlip/og71cblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcblx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQubm90aWZ5LFxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XG5cdFx0XHRcdFx0XHR1bmkub25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xuXHRcdFx0XHRcdFx0XHRsZXQgdmFsdWUgPSB0aGF0LiR0b29scy5hYjJoZXgocmVzLnZhbHVlLCBcIlwiKTtcblx0XHRcdFx0XHRcdFx0aWYgKHZhbHVlID09ICc1YTA1MDkwMTY5JykgeyAvL+aooeW8j+iuvue9ruaIkOWKn1xuXHRcdFx0XHRcdFx0XHRcdGxldCBpbmZvID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0YWN0aXZlOiB0aGF0LmFjdGl2ZSxcblx0XHRcdFx0XHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcblx0XHRcdFx0XHRcdFx0XHRcdG5vdGlmeTogdGhhdC5ub3RpZnksXG5cdFx0XHRcdFx0XHRcdFx0XHR3cml0ZTogdGhhdC53cml0ZSxcblx0XHRcdFx0XHRcdFx0XHRcdGFjZF9pZDogdGhhdC5hY2RfaWQsXG5cdFx0XHRcdFx0XHRcdFx0XHRpc0RldmljZTogdGhhdC5pc0RldmljZSxcblx0XHRcdFx0XHRcdFx0XHRcdGlzU3VjY2Vzc2Z1bDogZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS4kb2ZmKFwidXBkYXRlRGF0YVwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR1cmw6IFwiL3BhZ2VUd28vZGV2aWNlcy9QQ1QwMT9pbmZvPVwiICsgSlNPTlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC5zdHJpbmdpZnkoaW5mbylcblx0XHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0fSwgMjAwKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwidmFsdWVcIiwgdmFsdWUsIHRoYXQuYWN0aXZlKVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5byA5ZCv6JOd54mZ5Li75Yqo5LiK5oql5qih5byPXG5cdFx0XHRTZW5kRGF0YShzdHIpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGxldCBidWYgPSBuZXcgVWludDhBcnJheShzdHIubWF0Y2goL1tcXGRhLWZdezJ9L2dpKS5tYXAoZnVuY3Rpb24oaCkge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZUludChoLCAxNilcblx0XHRcdFx0fSkpXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwieGlhZmFcIiwgc3RyKVxuXHRcdFx0XHR1bmkud3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHtcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcblx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQud3JpdGUsXG5cdFx0XHRcdFx0dmFsdWU6IGJ1Zi5idWZmZXIsXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfkuIvlj5HmjIfku6TmiJDlip8nLCByZXMuZXJyTXNnKVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5LiL5Y+R5oyH5Luk5aSx6LSlXCIsIHJlcyk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQvLyDmqKHlvI/liIfmjaJcblx0XHRcdGhhbmRsZVN0YXJ0KGluZCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0bGV0IG0gPSBudWxsXG5cdFx0XHRcdGxldCBzZW5kID0gbnVsbFxuXHRcdFx0XHRpZiAoIXRoYXQuaXNDb25uZWN0ZWQpIHtcblx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2coXCLor7flhYjov57mjqXorr7lpIfvvIFcIilcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaW5kID09IDEpIHsgLy8gMeiHqueUsVxuXHRcdFx0XHRcdG0gPSBOdW1iZXIoMTY1ICsgOCArIDkpLnRvU3RyaW5nKDE2KVxuXHRcdFx0XHRcdHNlbmQgPSBcIkE1MDgwOTAwMDAwMDAwXCIgKyBtLnN1YnN0cihtLmxlbmd0aCAtIDIsIDIpXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGluZCA9PSAyKSB7IC8vMuWumuaXtlxuXHRcdFx0XHRcdGxldCB0aW1lID0gTnVtYmVyKHRoYXQudGltZV9tKSAqIDYwICsgTnVtYmVyKHRoYXQudGltZV9zKVxuXHRcdFx0XHRcdG0gPSBOdW1iZXIoMTY1ICsgOCArIDkgKyB0aW1lKS50b1N0cmluZygxNilcblx0XHRcdFx0XHRzZW5kID0gXCJBNTA4MDkwMDAwXCIgKyB0aGF0LiR0b29scy50b0hleCh0aW1lLCA0KSArIG0uc3Vic3RyKG0ubGVuZ3RoIC0gMiwgMilcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaW5kID09IDMpIHsgLy8z5a6a5pWwXG5cdFx0XHRcdFx0bGV0IHdlaWdodCA9IHRoYXQuJHRvb2xzLnRvSGV4KHRoYXQud2VpZ2h0LCA0KVxuXHRcdFx0XHRcdG0gPSBOdW1iZXIoMTY1ICsgOCArIDkgKyB0aGF0LndlaWdodCkudG9TdHJpbmcoMTYpXG5cdFx0XHRcdFx0c2VuZCA9IFwiQTUwODA5XCIgKyB3ZWlnaHQgKyBcIjAwMDBcIiArIG0uc3Vic3RyKG0ubGVuZ3RoIC0gMiwgMilcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaW5kID09IDQpIHsgLy/kvZPph41cblxuXHRcdFx0XHRcdGxldCB3ZWlnaHQgPSBOdW1iZXIodGhhdC51c2VyLndlaWdodCkgKiAyXG5cdFx0XHRcdFx0bGV0IG51bSA9IHBhcnNlSW50KHdlaWdodCkudG9TdHJpbmcoKTtcblx0XHRcdFx0XHRtID0gTnVtYmVyKDE2NSArIDUgKyA4ICsgTnVtYmVyKG51bSkpLnRvU3RyaW5nKDE2KVxuXHRcdFx0XHRcdHNlbmQgPSBcIkE1MDUwOFwiICsgTnVtYmVyKG51bSkudG9TdHJpbmcoMTYpICsgbS5zdWJzdHIobS5sZW5ndGggLSAyLCAyKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoYXQuU2VuZERhdGEoc2VuZClcblx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcblx0XHRcdH0sXG5cdFx0XHQvLyDljoblj7LmlbDmja7liKDpmaTml7bph43mlrDliqDovb3mjqXlj6Ncblx0XHRcdHJlbG9hZCgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcblx0XHRcdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldFNraXBSZXN1bHRcIiwge1xuXHRcdFx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQvLyDlrprml7borq3nu4Ncblx0XHRcdC8vXG5cdFx0XHRiaW5kVGltZUNoYW5nZShlKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRsZXQgbSA9IGUudGFyZ2V0LnZhbHVlWzBdXG5cdFx0XHRcdGxldCBzID0gZS50YXJnZXQudmFsdWVbMV1cblx0XHRcdFx0dGhhdC50aW1lc1RuZGV4ID0gZS50YXJnZXQudmFsdWVcblx0XHRcdFx0bGV0IHRpbWVfbSA9IE51bWJlcih0aGF0LnRpbWVMaXN0WzBdW21dLnN1YnN0cmluZygwLCAyKSkgKiA2MFxuXHRcdFx0XHRsZXQgdGltZV9zID0gTnVtYmVyKHRoYXQudGltZUxpc3RbMV1bc10uc3Vic3RyaW5nKDAsIDIpKVxuXHRcdFx0XHRpZiAoTnVtYmVyKHRpbWVfbSArIHRpbWVfcykgPCAzMCkge1xuXHRcdFx0XHRcdHRoYXQudGltZV9tID0gJzAwJ1xuXHRcdFx0XHRcdHRoYXQudGltZV9zID0gJzMwJ1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoYXQudGltZV9tID0gdGhhdC50aW1lTGlzdFswXVttXS5zdWJzdHJpbmcoMCwgMilcblx0XHRcdFx0XHR0aGF0LnRpbWVfcyA9IHRoYXQudGltZUxpc3RbMV1bc10uc3Vic3RyaW5nKDAsIDIpXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRoYW5kbGVUaW1lRWRpdCh0ZXh0KSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRsZXQgdGltZV9tID0gTnVtYmVyKHRoYXQudGltZV9tKSAqIDYwXG5cdFx0XHRcdGxldCB0aW1lX3MgPSBOdW1iZXIodGhhdC50aW1lX3MpXG5cdFx0XHRcdGxldCBtaW51dGVzID0gbnVsbFxuXHRcdFx0XHRsZXQgc2Vjb25kcyA9IG51bGxcblxuXHRcdFx0XHRpZiAoTnVtYmVyKHRpbWVfbSArIHRpbWVfcykgPj0gMzU3MCAmJiB0ZXh0ID09ICfliqAnKSB7XG5cdFx0XHRcdFx0dGhhdC50aW1lX20gPSAnNTknXG5cdFx0XHRcdFx0dGhhdC50aW1lX3MgPSAnNTknXG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKE51bWJlcih0aW1lX20gKyB0aW1lX3MpIDw9IDMwICYmIHRleHQgPT0gJ+WHjycpIHtcblx0XHRcdFx0XHR0aGF0LnRpbWVfbSA9ICcwMCdcblx0XHRcdFx0XHR0aGF0LnRpbWVfcyA9ICczMCdcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5YePJykge1xuXHRcdFx0XHRcdG1pbnV0ZXMgPSBNYXRoLmZsb29yKChOdW1iZXIodGltZV9tICsgdGltZV9zIC0gMzApICUgMzYwMCkgLyA2MClcblx0XHRcdFx0XHRzZWNvbmRzID0gTnVtYmVyKHRpbWVfbSArIHRpbWVfcyAtIDMwKSAlIDYwXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRleHQgPT0gJ+WKoCcpIHtcblx0XHRcdFx0XHRtaW51dGVzID0gTWF0aC5mbG9vcigoTnVtYmVyKHRpbWVfbSArIHRpbWVfcyArIDMwKSAlIDM2MDApIC8gNjApXG5cdFx0XHRcdFx0c2Vjb25kcyA9IE51bWJlcih0aW1lX20gKyB0aW1lX3MgKyAzMCkgJSA2MFxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoYXQudGltZV9tID0gbWludXRlcyA+IDkgPyBtaW51dGVzIDogJzAnICsgbWludXRlcztcblx0XHRcdFx0dGhhdC50aW1lX3MgPSBzZWNvbmRzID4gOSA/IHNlY29uZHMgOiAnMCcgKyBzZWNvbmRzO1xuXHRcdFx0XHR0aGF0LnRpbWVzVG5kZXggPSBbTnVtYmVyKHRoYXQudGltZV9tKSwgTnVtYmVyKHRoYXQudGltZV9zKV1cblx0XHRcdH0sXG5cdFx0XHRoYW5kbGVXZWlnaHRFZGl0KHRleHQpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGlmICh0ZXh0ID09ICflh48nKSB7XG5cdFx0XHRcdFx0dGhhdC53ZWlnaHQgPSBOdW1iZXIodGhhdC53ZWlnaHQpIC0gNTAgPiA1MCA/IE51bWJlcih0aGF0LndlaWdodCkgLSA1MCA6IDUwXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRleHQgPT0gJ+WKoCcpIHtcblx0XHRcdFx0XHR0aGF0LndlaWdodCA9IE51bWJlcih0aGF0LndlaWdodCkgKyA1MFxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Ly8g6JOd54mZ5pCc57Si6K6w5pe2XG5cdFx0XHRoYW5kbGVNeVRpbWUoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRteVRpbWUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICghdGhhdC5kZXZpY2VzTGlzdC5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHRoYXQuaXNsaW5rID0gLTFcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIumHjeaWsOaQnOe0olwiXG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2coXCLmsqHmnInmn6Xmib7liLDorr7lpIdcIilcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSlcblx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguc3RvcEJsdWV0b290aERldmljZXNEaXNjb3ZlcnkoKVxuXHRcdFx0XHR9LCAyMDAwMCk7XG5cdFx0XHR9LFxuXHRcdFx0Ly8g55uR5ZCs6JOd54mZ6L+e5o6l54q25oCBXG5cdFx0XHRvbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdHVuaS5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZShmdW5jdGlvbihyZXMpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuebkeWQrOiTneeJmei/nuaOpeeKtuaAgVwiLCByZXMuY29ubmVjdGVkKVxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUNvbm5lY3RlZFwiLCByZXMuY29ubmVjdGVkKTtcblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHQvKipcblx0XHRcdCAqIOaWreW8gOiTneeJmeaooeWdl1xuXHRcdFx0ICovXG5cdFx0XHRjbG9zZUJsdWV0b290aEFkYXB0ZXIoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfok53niZnmqKHlnZflhbPpl63miJDlip8nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0LyoqXG5cdFx0XHQgKiDmlq3lvIDok53niZnov57mjqVcblx0XHRcdCAqL1xuXHRcdFx0Y2xvc2VCTEVDb25uZWN0aW9uKCkge1xuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XG5cdFx0XHRcdHVuaS5jbG9zZUJMRUNvbm5lY3Rpb24oe1xuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5pat5byA6JOd54mZ6L+e5o6l5oiQ5YqfJyk7XG5cdFx0XHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VDb25uZWN0ZWRcIiwgZmFsc2UpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0bmF2VG8odXJsKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpZiAoIXRoYXQuaXNDb25uZWN0ZWQpIHtcblx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSlcblx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguY2xvc2VCbHVldG9vdGhBZGFwdGVyKClcblx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguY2xvc2VCTEVDb25uZWN0aW9uKHRoYXQuZGV2aWNlSWQpXG5cdFx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiTneeJmeayoeaciei/nuaOpVwiKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHR1cmw6IHVybFxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG5cdC5jb250ZW50IHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNkZBO1xuXHR9XG5cblx0LnNraXB0b3Age1xuXHRcdG1hcmdpbi10b3A6IDE1cHg7XG5cdH1cblxuXHQudGFiYmFyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXG5cdFx0dmlldyB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXG5cdFx0LmFjdGl2ZTphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0aGVpZ2h0OiAzcHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogLThweDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkbWFpbmNvbG9yO1xuXHRcdH1cblx0fVxuXG5cdC5ib3gxIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcblx0XHRjb2xvcjogIzk5OTtcblx0XHRtYXJnaW46IDE1cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcblx0XHR3aWR0aDogY2FsYygxMDAlLSAzMHB4KTtcblxuXHRcdC50aW1lIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1zaXplOiAzMnJweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0fVxuXG5cdFx0Lml0ZW0ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdGZvbnQtc2l6ZTogNDRycHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG5cdFx0XHR0ZXh0IHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdC5pdGVtLWl0ZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzZycHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHR9XG5cblx0XHRcdC5pdGVtLXNldCB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0aGVpZ2h0OiA1NXB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNTVweDtcblx0XHRcdFx0Zm9udC1zaXplOiA2MHJweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0XHRwYWRkaW5nOiAwIDE1cHg7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0L2RlZXAvaW5wdXQge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogNjBycHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiA1NXB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA1NXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5pdGVtLXNldDAge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxuXHRcdFx0fVxuXG5cdFx0XHQudGlwcyB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XG5cdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zdGFydCB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHRcdGhlaWdodDogMTAwcHg7XG5cdFx0XHRmb250LXNpemU6IDM2cnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMTAwcHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkdGV4dGNvbG9yO1xuXHRcdFx0bWFyZ2luOiAxNXB4IGF1dG87XG5cdFx0fVxuXG5cdFx0Lk5zdGFydCB7XG5cdFx0XHRvcGFjaXR5OiAwLjUgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cblxuXHQuc3RhdHVzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXG5cdFx0aW1hZ2Uge1xuXHRcdFx0d2lkdGg6IDE4cHg7XG5cdFx0XHRoZWlnaHQ6IDE4cHg7XG5cdFx0fVxuXG5cdFx0Lmljb25fbGluayB7XG5cdFx0XHRhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuXHRcdH1cblxuXHRcdEBrZXlmcmFtZXMgcm90YXRpb24ge1xuXHRcdFx0MCUge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0XHRcdH1cblxuXHRcdFx0MTAwJSB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///70\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _record = _interopRequireDefault(__webpack_require__(/*! @/element/manuallyAdd/record.vue */ 58));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar myTime;\nvar _default = {\n data: function data() {\n return {\n active: 1,\n acd_id: 6,\n weight: 50,\n disabled: false,\n isDevice: 0,\n isConnection: false,\n time_m: \"\",\n time_s: \"\",\n timeList: [],\n devicesList: [],\n timesTndex: [1, 0],\n deviceId: \"\",\n serviceId: \"\",\n write: \"\",\n notify: \"\",\n islink: 0,\n //0连接中,1成功,-1失败\n textLink: \"\"\n };\n },\n components: {\n record: _record.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)(['user', \"MeasureSkip\", \"isConnected\", \"isBluetoothTyle\"])), {}, {\n info: function info() {\n return this.MeasureSkip;\n }\n }),\n mounted: function mounted() {\n var that = this;\n that.timeList = that.$tools.gethms();\n that.time_m = that.timeList[0][1].substring(0, 2);\n that.time_s = that.timeList[1][0].substring(0, 2);\n },\n onLoad: function onLoad(options) {\n var that = this;\n // 首页进入\n if (options && options.deviceId) {\n that.deviceId = options.deviceId;\n setTimeout(function () {\n that.createBLEConnection();\n }, 500);\n }\n if (options && options.acd_id) {\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n setTimeout(function () {\n that.handleisSdevice();\n }, 500);\n }\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n that.isConnection = that.isConnected;\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n onPullDownRefresh: function onPullDownRefresh() {\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n onShow: function onShow() {\n var that = this;\n // 跳绳页返回\n uni.$on('updateData', function (info) {\n var data = JSON.parse(info);\n that.acd_id = data.acd_id;\n that.isDevice = data.device;\n that.active = data.active;\n that.deviceId = data.deviceId;\n that.serviceId = data.serviceId;\n that.write = data.write;\n that.notify = data.notify;\n that.islink = !that.isConnected ? -1 : 1;\n that.isConnection = that.isConnected;\n that.notifyBLECharacteristicValue();\n if (data.isSuccessful) {\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n }\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n __f__(\"log\", '监听到事件来自 updateData', data, \" at pages/skiping/skip.vue:213\");\n });\n },\n onUnload: function onUnload() {\n var that = this;\n clearTimeout(myTime);\n that.islink = -1;\n that.isConnection = false;\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n uni.$off(\"updateData\");\n setTimeout(function () {\n uni.switchTab({\n url: '/pages/home/home'\n });\n }, 300);\n __f__(\"log\", \"返回首页onUnload\", \" at pages/skiping/skip.vue:229\");\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n that.islink = -1;\n that.textLink = \"重新连接\";\n }\n that.isConnection = that.isConnected;\n __f__(\"log\", \"蓝牙是否连接\", that.isConnected, \" at pages/skiping/skip.vue:239\");\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n that.isConnection = false;\n that.textLink = \"请打开手机蓝牙\";\n that.islink = -1;\n }\n __f__(\"log\", \"蓝牙是否打开\", that.isBluetoothTyle, \" at pages/skiping/skip.vue:248\");\n }\n },\n methods: {\n // 初始化蓝牙\n handleisSdevice: function handleisSdevice() {\n var that = this;\n if (that.isConnected) return;\n that.devicesList = [];\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n uni.openBluetoothAdapter({\n success: function success(e) {\n that.islink = 0;\n that.handleMyTime();\n that.textLink = \"蓝牙搜索中\";\n that.startBluetoothDeviceDiscovery();\n that.$store.commit(\"changeBluetooth\", true);\n __f__(\"log\", '初始化蓝牙成功:' + e.errMsg, \" at pages/skiping/skip.vue:265\");\n },\n fail: function fail(e) {\n that.islink = -1;\n that.textLink = that.$tools.getBluetoothAdapter(e);\n return;\n }\n });\n },\n // 开始搜寻附近的蓝牙外围设备\n startBluetoothDeviceDiscovery: function startBluetoothDeviceDiscovery() {\n var that = this;\n uni.startBluetoothDevicesDiscovery({\n allowDuplicatesKey: true,\n interval: 200,\n //上报设备的间隔\n services: [],\n success: function success(res) {\n that.onBluetoothDeviceFound();\n },\n fail: function fail(res) {}\n });\n },\n /**\n * 发现外围设备\n */\n onBluetoothDeviceFound: function onBluetoothDeviceFound() {\n var that = this;\n uni.onBluetoothDeviceFound(function (res) {\n res.devices.forEach(function (device) {\n if (!device.name && !device.localName) {\n return;\n }\n if (device.name.indexOf('YPC') != -1) {\n device.deviceId = device.deviceId;\n that.deviceId = device.deviceId;\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n that.handleDevice(device);\n return;\n }\n });\n });\n that.handleMyTime();\n },\n handleDevice: function handleDevice(device) {\n var that = this;\n var foundDevices = that.devicesList;\n var idx = that.$tools.inArray(foundDevices, \"deviceId\", device.deviceId);\n if (idx === -1) {\n that.devicesList.push(device);\n that.createBLEConnection();\n }\n },\n // 连接蓝牙\n createBLEConnection: function createBLEConnection() {\n var that = this;\n uni.createBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n that.textLink = \"蓝牙连接中\";\n setTimeout(function () {\n that.islink = 1;\n that.getBLEDeviceServices();\n }, 1000);\n },\n fail: function fail(res) {\n that.textLink = \"重新连接\";\n __f__(\"log\", \"设备连接失败,请重新连接\", res, that.deviceId, \" at pages/skiping/skip.vue:331\");\n }\n });\n },\n /**\n * 获取设备的UUID\n */\n getBLEDeviceServices: function getBLEDeviceServices() {\n var serviceList = [];\n var that = this;\n uni.getBLEDeviceServices({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", \"获取设备的UUID成功\", res, \" at pages/skiping/skip.vue:344\");\n serviceList = res.services;\n for (var i = 0; i < serviceList.length; i++) {\n var service = serviceList[i];\n if (service.uuid.indexOf(\"FFE0\") != -1) {\n that.serviceId = service.uuid;\n that.isConnection = true;\n that.textLink = \"连接成功\";\n that.getBLEDeviceCharacteristics();\n __f__(\"log\", \"设备的FFE0的serviceId: \" + that.serviceId, \" at pages/skiping/skip.vue:353\");\n break;\n }\n }\n },\n fail: function fail(res) {\n __f__(\"log\", '获取设备的UUID失败:', res, \" at pages/skiping/skip.vue:359\");\n that.islink = -1;\n that.textLink = \"重新连接\";\n clearTimeout(myTime);\n that.isConnection = false;\n }\n });\n },\n /**\n * 获取指定服务的特征值\n */\n getBLEDeviceCharacteristics: function getBLEDeviceCharacteristics() {\n var characteristicsList = [];\n var that = this;\n uni.getBLEDeviceCharacteristics({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n success: function success(res) {\n __f__(\"log\", \"服务的特征值成功\", res, \" at pages/skiping/skip.vue:378\");\n // * 读read: true, //,写write: true, //,通知notify: true\n for (var i = 0; i < res.characteristics.length; i++) {\n var item = res.characteristics[i];\n if (item.uuid.indexOf('0000FF12') != -1) {\n that.write = item.uuid;\n } else if (item.uuid.indexOf('0000FFE4') != -1) {\n that.notify = item.uuid;\n }\n }\n setTimeout(function () {\n var j = Number(165 + 10 + 1 + 8 + 8 + 8 + 8 + 8 + 8).toString(16);\n var str = \"A50A01080808080808\" + j.substr(j.length - 2, 2);\n that.SendData(str);\n }, 300);\n // 体重\n setTimeout(function () {\n that.handleStart(4);\n }, 600);\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n state: true\n });\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n state: true\n });\n that.notifyBLECharacteristicValue();\n },\n fail: function fail(res) {\n __f__(\"log\", '获取特征值失败:', JSON.stringify(res), \" at pages/skiping/skip.vue:413\");\n }\n });\n },\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n if (value == '5a05090169') {\n //模式设置成功\n var info = {\n active: that.active,\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n notify: that.notify,\n write: that.write,\n acd_id: that.acd_id,\n isDevice: that.isDevice,\n isSuccessful: false\n };\n setTimeout(function () {\n uni.$off(\"updateData\");\n uni.navigateTo({\n url: \"/pageTwo/devices/PCT01?info=\" + JSON.stringify(info)\n });\n }, 200);\n }\n __f__(\"log\", \"value\", value, that.active, \" at pages/skiping/skip.vue:446\");\n });\n }\n });\n },\n // 开启蓝牙主动上报模式\n SendData: function SendData(str) {\n var that = this;\n var buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function (h) {\n return parseInt(h, 16);\n }));\n __f__(\"log\", \"xiafa\", str, \" at pages/skiping/skip.vue:457\");\n uni.writeBLECharacteristicValue({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n value: buf.buffer,\n success: function success(res) {\n __f__(\"log\", '下发指令成功', res.errMsg, \" at pages/skiping/skip.vue:464\");\n },\n fail: function fail(res) {\n __f__(\"log\", \"下发指令失败\", res, \" at pages/skiping/skip.vue:467\");\n }\n });\n },\n // 模式切换\n handleStart: function handleStart(ind) {\n var that = this;\n var m = null;\n var send = null;\n if (!that.isConnected) {\n that.$tools.msg(\"请先连接设备!\");\n return;\n }\n if (ind == 1) {\n // 1自由\n m = Number(165 + 8 + 9).toString(16);\n send = \"A5080900000000\" + m.substr(m.length - 2, 2);\n }\n if (ind == 2) {\n //2定时\n var time = Number(that.time_m) * 60 + Number(that.time_s);\n m = Number(165 + 8 + 9 + time).toString(16);\n send = \"A508090000\" + that.$tools.toHex(time, 4) + m.substr(m.length - 2, 2);\n }\n if (ind == 3) {\n //3定数\n var weight = that.$tools.toHex(that.weight, 4);\n m = Number(165 + 8 + 9 + that.weight).toString(16);\n send = \"A50809\" + weight + \"0000\" + m.substr(m.length - 2, 2);\n }\n if (ind == 4) {\n //体重\n\n var _weight = Number(that.user.weight) * 2;\n var num = parseInt(_weight).toString();\n m = Number(165 + 5 + 8 + Number(num)).toString(16);\n send = \"A50508\" + Number(num).toString(16) + m.substr(m.length - 2, 2);\n }\n that.SendData(send);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n },\n // 历史数据删除时重新加载接口\n reload: function reload() {\n var that = this;\n this.$nextTick(function () {\n that.$store.dispatch(\"getSkipResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n });\n },\n // 定时训练\n //\n bindTimeChange: function bindTimeChange(e) {\n var that = this;\n var m = e.target.value[0];\n var s = e.target.value[1];\n that.timesTndex = e.target.value;\n var time_m = Number(that.timeList[0][m].substring(0, 2)) * 60;\n var time_s = Number(that.timeList[1][s].substring(0, 2));\n if (Number(time_m + time_s) < 30) {\n that.time_m = '00';\n that.time_s = '30';\n } else {\n that.time_m = that.timeList[0][m].substring(0, 2);\n that.time_s = that.timeList[1][s].substring(0, 2);\n }\n },\n handleTimeEdit: function handleTimeEdit(text) {\n var that = this;\n var time_m = Number(that.time_m) * 60;\n var time_s = Number(that.time_s);\n var minutes = null;\n var seconds = null;\n if (Number(time_m + time_s) >= 3570 && text == '加') {\n that.time_m = '59';\n that.time_s = '59';\n return;\n }\n if (Number(time_m + time_s) <= 30 && text == '减') {\n that.time_m = '00';\n that.time_s = '30';\n return;\n }\n if (text == '减') {\n minutes = Math.floor(Number(time_m + time_s - 30) % 3600 / 60);\n seconds = Number(time_m + time_s - 30) % 60;\n }\n if (text == '加') {\n minutes = Math.floor(Number(time_m + time_s + 30) % 3600 / 60);\n seconds = Number(time_m + time_s + 30) % 60;\n }\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n that.timesTndex = [Number(that.time_m), Number(that.time_s)];\n },\n handleWeightEdit: function handleWeightEdit(text) {\n var that = this;\n if (text == '减') {\n that.weight = Number(that.weight) - 50 > 50 ? Number(that.weight) - 50 : 50;\n }\n if (text == '加') {\n that.weight = Number(that.weight) + 50;\n }\n },\n // 蓝牙搜索记时\n handleMyTime: function handleMyTime() {\n var that = this;\n myTime = setTimeout(function () {\n if (!that.devicesList.length) {\n that.islink = -1;\n that.textLink = \"重新搜索\";\n that.$tools.msg(\"没有查找到设备\");\n }\n clearTimeout(myTime);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n }, 20000);\n },\n // 监听蓝牙连接状态\n onBLEConnectionStateChange: function onBLEConnectionStateChange() {\n var that = this;\n uni.onBLEConnectionStateChange(function (res) {\n __f__(\"log\", \"监听蓝牙连接状态\", res.connected, \" at pages/skiping/skip.vue:585\");\n that.$store.commit(\"changeConnected\", res.connected);\n });\n },\n /**\n * 断开蓝牙模块\n */\n closeBluetoothAdapter: function closeBluetoothAdapter() {\n var that = this;\n uni.closeBluetoothAdapter({\n success: function success(res) {\n __f__(\"log\", '蓝牙模块关闭成功', \" at pages/skiping/skip.vue:596\");\n }\n });\n },\n /**\n * 断开蓝牙连接\n */\n closeBLEConnection: function closeBLEConnection() {\n var that = this;\n uni.closeBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", '断开蓝牙连接成功', \" at pages/skiping/skip.vue:608\");\n that.$store.commit(\"changeConnected\", false);\n }\n });\n },\n navTo: function navTo(url) {\n var that = this;\n if (!that.isConnected) {\n that.islink = -1;\n clearTimeout(myTime);\n that.$Bluetooth.closeBluetoothAdapter();\n that.$Bluetooth.closeBLEConnection(that.deviceId);\n that.$Bluetooth.stopBluetoothDevicesDiscovery();\n __f__(\"log\", \"蓝牙没有连接\", \" at pages/skiping/skip.vue:621\");\n }\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvc2tpcGluZy9za2lwLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiYWN0aXZlIiwiYWNkX2lkIiwid2VpZ2h0IiwiZGlzYWJsZWQiLCJpc0RldmljZSIsImlzQ29ubmVjdGlvbiIsInRpbWVfbSIsInRpbWVfcyIsInRpbWVMaXN0IiwiZGV2aWNlc0xpc3QiLCJ0aW1lc1RuZGV4IiwiZGV2aWNlSWQiLCJzZXJ2aWNlSWQiLCJ3cml0ZSIsIm5vdGlmeSIsImlzbGluayIsInRleHRMaW5rIiwiY29tcG9uZW50cyIsInJlY29yZCIsImNvbXB1dGVkIiwiaW5mbyIsIm1vdW50ZWQiLCJ0aGF0Iiwib25Mb2FkIiwic2V0VGltZW91dCIsImF1ZF9pZCIsInVuaSIsIm9uUHVsbERvd25SZWZyZXNoIiwib25TaG93Iiwib25VbmxvYWQiLCJjbGVhclRpbWVvdXQiLCJ1cmwiLCJ3YXRjaCIsImlzQ29ubmVjdGVkIiwiaXNCbHVldG9vdGhUeWxlIiwibWV0aG9kcyIsImhhbmRsZWlzU2RldmljZSIsInN1Y2Nlc3MiLCJmYWlsIiwic3RhcnRCbHVldG9vdGhEZXZpY2VEaXNjb3ZlcnkiLCJhbGxvd0R1cGxpY2F0ZXNLZXkiLCJpbnRlcnZhbCIsInNlcnZpY2VzIiwib25CbHVldG9vdGhEZXZpY2VGb3VuZCIsInJlcyIsImRldmljZSIsImhhbmRsZURldmljZSIsImNyZWF0ZUJMRUNvbm5lY3Rpb24iLCJnZXRCTEVEZXZpY2VTZXJ2aWNlcyIsInNlcnZpY2VMaXN0IiwiZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzIiwiY2hhcmFjdGVyaXN0aWNJZCIsInN0YXRlIiwibm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsImlzU3VjY2Vzc2Z1bCIsInN0cmluZ2lmeSIsIlNlbmREYXRhIiwidmFsdWUiLCJoYW5kbGVTdGFydCIsIm0iLCJzZW5kIiwicmVsb2FkIiwiYmluZFRpbWVDaGFuZ2UiLCJoYW5kbGVUaW1lRWRpdCIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwiaGFuZGxlV2VpZ2h0RWRpdCIsImhhbmRsZU15VGltZSIsIm15VGltZSIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwiY2xvc2VCbHVldG9vdGhBZGFwdGVyIiwiY2xvc2VCTEVDb25uZWN0aW9uIiwibmF2VG8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBc0hBO0FBR0E7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSkE7QUFBQSxlQUtBO0VBQ0FBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFBQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7RUFDQTtFQUNBQywwQ0FDQTtJQUNBQztNQUNBO0lBQ0E7RUFBQSxFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7SUFDQUE7SUFDQUE7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtNQUNBRDtNQUNBRTtRQUNBRjtNQUNBO0lBQ0E7SUFDQTtNQUNBQTtNQUNBRTtRQUNBRjtNQUNBO0lBQ0E7SUFDQUE7TUFDQUc7SUFDQTtJQUNBSDtJQUNBQTtJQUNBSTtNQUNBSjtJQUNBO0VBQ0E7RUFDQUs7SUFDQUg7TUFDQUU7SUFDQTtFQUNBO0VBQ0FFO0lBQ0E7SUFDQTtJQUNBRjtNQUNBO01BQ0FKO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0FBO01BQ0E7UUFDQUE7VUFDQUc7UUFDQTtNQUNBO01BQ0FIO01BQ0FJO1FBQ0FKO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQU87SUFDQTtJQUNBQztJQUNBUjtJQUNBQTtJQUNBQTtJQUNBQTtJQUNBSTtJQUNBRjtNQUNBRTtRQUNBSztNQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtRQUNBWDtRQUNBQTtNQUNBO01BQ0FBO01BQ0E7SUFDQTtJQUNBWTtNQUNBO01BQ0E7UUFDQVo7UUFDQUE7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBYTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBZDtNQUNBQTtNQUNBSTtRQUNBVztVQUNBZjtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0FoQjtVQUNBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWlCO01BQ0E7TUFDQWI7UUFDQWM7UUFDQUM7UUFBQTtRQUNBQztRQUNBTDtVQUNBZjtRQUNBO1FBQ0FnQjtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQUs7TUFDQTtNQUNBakI7UUFDQWtCO1VBQ0E7WUFDQTtVQUNBO1VBQ0E7WUFDQUM7WUFDQXZCO1lBQ0FBO1lBQ0FBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUE7SUFDQTtJQUNBd0I7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBeEI7UUFDQUE7TUFDQTtJQUNBO0lBQ0E7SUFDQXlCO01BQ0E7TUFDQXJCO1FBQ0FmO1FBQ0EwQjtVQUNBZjtVQUNBRTtZQUNBRjtZQUNBQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0FoQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0EwQjtNQUNBO01BQ0E7TUFDQXRCO1FBQ0FmO1FBQ0EwQjtVQUNBO1VBQ0FZO1VBQ0E7WUFDQTtZQUNBO2NBQ0EzQjtjQUNBQTtjQUNBQTtjQUNBQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7UUFDQWdCO1VBQ0E7VUFDQWhCO1VBQ0FBO1VBQ0FRO1VBQ0FSO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0lBQ0E0QjtNQUNBO01BQ0E7TUFDQXhCO1FBQ0FmO1FBQ0FDO1FBQ0F5QjtVQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQWY7WUFFQTtjQUNBQTtZQUNBO1VBQ0E7VUFDQUU7WUFDQTtZQUNBO1lBQ0FGO1VBQ0E7VUFDQTtVQUNBRTtZQUNBRjtVQUNBO1VBQ0FJO1lBQ0FmO1lBQ0FDO1lBQ0F1QztZQUNBQztVQUNBO1VBQ0ExQjtZQUNBZjtZQUNBQztZQUNBdUM7WUFDQUM7VUFDQTtVQUNBOUI7UUFDQTtRQUNBZ0I7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBZTtNQUNBO01BQ0EzQjtRQUNBMEI7UUFBQTtRQUNBekM7UUFDQUM7UUFDQXVDO1FBQ0FkO1VBQ0FYO1lBQ0E7WUFDQTtjQUFBO2NBQ0E7Z0JBQ0ExQjtnQkFDQVc7Z0JBQ0FDO2dCQUNBRTtnQkFDQUQ7Z0JBQ0FaO2dCQUNBRztnQkFDQWtEO2NBQ0E7Y0FDQTlCO2dCQUNBRTtnQkFDQUE7a0JBQ0FLLDJDQUNBd0I7Z0JBQ0E7Y0FDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBOUI7UUFDQWY7UUFDQUM7UUFDQXVDO1FBQ0FNO1FBQ0FwQjtVQUNBO1FBQ0E7UUFDQUM7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FvQjtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FwQztRQUNBO01BQ0E7TUFDQTtRQUFBO1FBQ0FxQztRQUNBQztNQUNBO01BQ0E7UUFBQTtRQUNBO1FBQ0FEO1FBQ0FDO01BQ0E7TUFDQTtRQUFBO1FBQ0E7UUFDQUQ7UUFDQUM7TUFDQTtNQUNBO1FBQUE7O1FBRUE7UUFDQTtRQUNBRDtRQUNBQztNQUNBO01BQ0F0QztNQUNBQTtJQUNBO0lBQ0E7SUFDQXVDO01BQ0E7TUFDQTtRQUNBdkM7VUFDQUc7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0FxQztNQUNBO01BQ0E7TUFDQTtNQUNBeEM7TUFDQTtNQUNBO01BQ0E7UUFDQUE7UUFDQUE7TUFDQTtRQUNBQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQXlDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUVBO1FBQ0F6QztRQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBQTtRQUNBQTtRQUNBO01BQ0E7TUFDQTtRQUNBMEM7UUFDQUM7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO01BQ0E7TUFDQTNDO01BQ0FBO01BQ0FBO0lBQ0E7SUFDQTRDO01BQ0E7TUFDQTtRQUNBNUM7TUFDQTtNQUNBO1FBQ0FBO01BQ0E7SUFDQTtJQUNBO0lBQ0E2QztNQUNBO01BQ0FDO1FBQ0E7VUFDQTlDO1VBQ0FBO1VBQ0FBO1FBQ0E7UUFDQVE7UUFDQVI7TUFDQTtJQUNBO0lBQ0E7SUFDQStDO01BQ0E7TUFDQTNDO1FBQ0E7UUFDQUo7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FnRDtNQUNBO01BQ0E1QztRQUNBVztVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FrQztNQUNBO01BQ0E3QztRQUNBZjtRQUNBMEI7VUFDQTtVQUNBZjtRQUNBO01BQ0E7SUFDQTtJQUNBa0Q7TUFDQTtNQUNBO1FBQ0FsRDtRQUNBUTtRQUNBUjtRQUNBQTtRQUNBQTtRQUNBO01BQ0E7TUFDQUk7UUFDQUs7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGVudCBza2lwcGluZ1wiPlxyXG5cdFx0PCEtLSAgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNraXB0b3BcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJzdGF0dXNcIiBAY2xpY2s9XCJoYW5kbGVpc1NkZXZpY2UoKVwiPlxyXG5cdFx0XHRcdDx0ZXh0Pnt7dGV4dExpbmt9fTwvdGV4dD5cclxuXHRcdFx0XHQ8aW1hZ2Ugdi1pZj1cImlzbGluayE9MVwiIDpjbGFzcz1cIltpc2xpbms9PS0xPycnOidpY29uX2xpbmsnXVwiIHNyYz1cIi4uLy4uL3N0YXRpYy96aHVhbi5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDxpbWFnZSB2LWlmPVwiaXNsaW5rPT0xXCIgc3JjPVwiLi4vLi4vc3RhdGljL2R1aS5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj7ku4rml6XkuKrmlbA8dGV4dD57e2luZm8/aW5mby50b2RheV9qdW1wX251bTonLS0nfX08L3RleHQ+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj7ku4rml6Xml7bplb88dGV4dD57e2luZm8/aW5mby50b2RheV9qdW1wX3RpbWU6Jy0tJ319PC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+5Y2h6Lev6YeML2tjYWw8dGV4dD57e2luZm8/aW5mby50b2RheV9qdW1wX2tjYWw6Jy0tJ319PC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSAgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRhYmJhclwiPlxyXG5cdFx0XHQ8dmlldyBAY2xpY2s9XCJhY3RpdmU9MVwiIDpjbGFzcz1cIlthY3RpdmU9PTE/J2FjdGl2ZSc6JyddXCI+6Ieq55Sx6LezPC92aWV3PlxyXG5cdFx0XHQ8dmlldyBAY2xpY2s9XCJhY3RpdmU9M1wiIDpjbGFzcz1cIlthY3RpdmU9PTM/J2FjdGl2ZSc6JyddXCI+5YCS6K6h5pWwPC92aWV3PlxyXG5cdFx0XHQ8dmlldyBAY2xpY2s9XCJhY3RpdmU9MlwiIDpjbGFzcz1cIlthY3RpdmU9PTI/J2FjdGl2ZSc6JyddXCI+5YCS6K6h5pe2PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLeiHqueUseiuree7gyAgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cImJveDEgYm94XCIgdi1pZj1cImFjdGl2ZT09MVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0tc2V0IGl0ZW0tc2V0MFwiPuiHqueUsTwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cInRpcHNcIj7ml6DpmZDliLY8L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgOmNsYXNzPVwiW2lzbGluaz09MT8nc3RhcnQnOidzdGFydCBOc3RhcnQnXVwiIEBjbGljaz1cImhhbmRsZVN0YXJ0KDEpXCI+5byA5aeLPC92aWV3PlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1pdGVcIj7mnKzmrKHml7bplb88L3RleHQ+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJib2xkXCI+e3tpbmZvP2luZm8ubGFzdF9qdW1wX3RpbWU6JzAnfX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0PHRleHQgY2xhc3M9XCJpdGVtLWl0ZVwiPua2iOiAl+WNoei3r+mHjDwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImJvbGRcIj57e2luZm8/aW5mby5sYXN0X2p1bXBfa2NhbDonMCd9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS3lrprml7borq3nu4MgIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJib3gxIGJveFwiIHYtaWY9XCJhY3RpdmU9PTJcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLXNldFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgQGNsaWNrPVwiaGFuZGxlVGltZUVkaXQoJ+WHjycpXCI+77yNPC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQ+e3t0aW1lX219fTp7e3RpbWVfc319PC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQgQGNsaWNrPVwiaGFuZGxlVGltZUVkaXQoJ+WKoCcpXCI+77yLPC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpcHNcIj5cclxuXHRcdFx0XHRcdDxwaWNrZXIgbW9kZT1cIm11bHRpU2VsZWN0b3JcIiA6cmFuZ2U9XCJ0aW1lTGlzdFwiIDp2YWx1ZT1cInRpbWVzVG5kZXhcIiBAY2hhbmdlPVwiYmluZFRpbWVDaGFuZ2VcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXc+6LCD5pW055uu5qCHPC92aWV3PlxyXG5cdFx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IDpjbGFzcz1cIltpc0Nvbm5lY3Rpb24/J3N0YXJ0Jzonc3RhcnQgTnN0YXJ0J11cIiBAY2xpY2s9XCJoYW5kbGVTdGFydCgyKVwiPuW8gOWnizwvdmlldz5cclxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0taXRlXCI+5pys5qyh5Liq5pWwPC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0PjwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0taXRlXCI+5raI6ICX5Y2h6Lev6YeMPC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0PjwvdGV4dD5cclxuXHRcdFx0PC92aWV3PiAtLT5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS3lrprmlbDorq3nu4MgIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJib3gxIGJveFwiIHYtaWY9XCJhY3RpdmU9PTNcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLXNldFwiPlxyXG5cdFx0XHRcdFx0PHRleHQgQGNsaWNrPVwiaGFuZGxlV2VpZ2h0RWRpdCgn5YePJylcIj7vvI08L3RleHQ+XHJcblx0XHRcdFx0XHQ8dGV4dCB2LWlmPVwiIWRpc2FibGVkXCI+e3t3ZWlnaHQ+NTA/d2VpZ2h0OjUwfX08L3RleHQ+XHJcblx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJ3ZWlnaHRcIiBmb2N1cz1cInRydWVcIiB2LWVsc2UgQGJsdXI9XCJkaXNhYmxlZD1mYWxzZVwiPlxyXG5cdFx0XHRcdFx0PHRleHQgQGNsaWNrPVwiaGFuZGxlV2VpZ2h0RWRpdCgn5YqgJylcIj7vvIs8L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwidGlwc1wiIEBjbGljaz1cImRpc2FibGVkPXRydWVcIj7osIPmlbTnm67moIc8L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgOmNsYXNzPVwiW2lzQ29ubmVjdGlvbj8nc3RhcnQnOidzdGFydCBOc3RhcnQnXVwiIEBjbGljaz1cImhhbmRsZVN0YXJ0KDMpXCI+5byA5aeLPC92aWV3PlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaXRlbS1pdGVcIj7mnKzmrKHml7bplb88L3RleHQ+XHJcblx0XHRcdFx0PHRleHQ+MDwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cIml0ZW0taXRlXCI+5raI6ICX5Y2h6Lev6YeMPC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0PjA8L3RleHQ+XHJcblx0XHRcdDwvdmlldz4gLS0+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZ3JpZExpc3RcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRhXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlcy9za2lwaW5nL2NoYXJ0cycpXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltYWdlXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCJAL3N0YXRpYy9jaGFydHMucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPui/kOWKqOabsue6vzwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlVHdvL2hpc3RvcnkvaGlzdG9yeT9hY2RfaWQ9JythY2RfaWQpXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltYWdlXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCJAL3N0YXRpYy9hZGQucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuWOhuWPsuiusOW9lTwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlVHdvL2NvbXBrL2NvbnRyYXN0P2FjZF9pZD0nK2FjZF9pZClcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIkAvc3RhdGljL3BrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7mlbDmja7lr7nmr5Q8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIiRzdG9yZS5jb21taXQoJ2NoYW5nZVJlY29yZCcsdHJ1ZSlcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIkAvc3RhdGljL2hpc3RvcnkucG5nXCI+PC9pbWFnZT5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPua3u+WKoOiusOW9lTwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5omL5Yqo6K6w5b2VIC0tPlxyXG5cdFx0PHJlY29yZCA6cnR5cGU9XCJhY2RfaWRcIj48L3JlY29yZD5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGxldCBteVRpbWU7XHJcblx0aW1wb3J0IHtcclxuXHRcdG1hcFN0YXRlXHJcblx0fSBmcm9tIFwidnVleFwiO1xyXG5cdGltcG9ydCByZWNvcmQgZnJvbSAnQC9lbGVtZW50L21hbnVhbGx5QWRkL3JlY29yZC52dWUnO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0YWN0aXZlOiAxLFxyXG5cdFx0XHRcdGFjZF9pZDogNixcclxuXHRcdFx0XHR3ZWlnaHQ6IDUwLFxyXG5cdFx0XHRcdGRpc2FibGVkOiBmYWxzZSxcclxuXHRcdFx0XHRpc0RldmljZTogMCxcclxuXHRcdFx0XHRpc0Nvbm5lY3Rpb246IGZhbHNlLFxyXG5cdFx0XHRcdHRpbWVfbTogXCJcIixcclxuXHRcdFx0XHR0aW1lX3M6IFwiXCIsXHJcblx0XHRcdFx0dGltZUxpc3Q6IFtdLFxyXG5cdFx0XHRcdGRldmljZXNMaXN0OiBbXSxcclxuXHRcdFx0XHR0aW1lc1RuZGV4OiBbMSwgMF0sXHJcblx0XHRcdFx0ZGV2aWNlSWQ6IFwiXCIsXHJcblx0XHRcdFx0c2VydmljZUlkOiBcIlwiLFxyXG5cdFx0XHRcdHdyaXRlOiBcIlwiLFxyXG5cdFx0XHRcdG5vdGlmeTogXCJcIixcclxuXHRcdFx0XHRpc2xpbms6IDAsIC8vMOi/nuaOpeS4re+8jDHmiJDlip/vvIwtMeWksei0pVxyXG5cdFx0XHRcdHRleHRMaW5rOiBcIlwiXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdHJlY29yZFxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC4uLm1hcFN0YXRlKFsndXNlcicsIFwiTWVhc3VyZVNraXBcIiwgXCJpc0Nvbm5lY3RlZFwiLCBcImlzQmx1ZXRvb3RoVHlsZVwiXSksXHJcblx0XHRcdGluZm8oKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuTWVhc3VyZVNraXBcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0dGhhdC50aW1lTGlzdCA9IHRoYXQuJHRvb2xzLmdldGhtcygpXHJcblx0XHRcdHRoYXQudGltZV9tID0gdGhhdC50aW1lTGlzdFswXVsxXS5zdWJzdHJpbmcoMCwgMilcclxuXHRcdFx0dGhhdC50aW1lX3MgPSB0aGF0LnRpbWVMaXN0WzFdWzBdLnN1YnN0cmluZygwLCAyKVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHQvLyDpppbpobXov5vlhaVcclxuXHRcdFx0aWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5kZXZpY2VJZCkge1xyXG5cdFx0XHRcdHRoYXQuZGV2aWNlSWQgPSBvcHRpb25zLmRldmljZUlkXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHRoYXQuY3JlYXRlQkxFQ29ubmVjdGlvbigpXHJcblx0XHRcdFx0fSwgNTAwKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMuYWNkX2lkKSB7XHJcblx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcclxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhhdC5oYW5kbGVpc1NkZXZpY2UoKVxyXG5cdFx0XHRcdH0sIDUwMClcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldFNraXBSZXN1bHRcIiwge1xyXG5cdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKVxyXG5cdFx0XHR9KVxyXG5cdFx0XHR0aGF0LmlzQ29ubmVjdGlvbiA9IHRoYXQuaXNDb25uZWN0ZWRcclxuXHRcdFx0dGhhdC5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpXHJcblx0XHRcdHVuaS5vbkJsdWV0b290aEFkYXB0ZXJTdGF0ZUNoYW5nZShmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VCbHVldG9vdGhcIiwgcmVzLmF2YWlsYWJsZSk7XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0b25QdWxsRG93blJlZnJlc2goKSB7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHVuaS5zdG9wUHVsbERvd25SZWZyZXNoKClcclxuXHRcdFx0fSwgMTAwMCk7XHJcblx0XHR9LFxyXG5cdFx0b25TaG93KCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Ly8g6Lez57uz6aG16L+U5ZueXHJcblx0XHRcdHVuaS4kb24oJ3VwZGF0ZURhdGEnLCBmdW5jdGlvbihpbmZvKSB7XHJcblx0XHRcdFx0bGV0IGRhdGEgPSBKU09OLnBhcnNlKGluZm8pXHJcblx0XHRcdFx0dGhhdC5hY2RfaWQgPSBkYXRhLmFjZF9pZFxyXG5cdFx0XHRcdHRoYXQuaXNEZXZpY2UgPSBkYXRhLmRldmljZVxyXG5cdFx0XHRcdHRoYXQuYWN0aXZlID0gZGF0YS5hY3RpdmVcclxuXHRcdFx0XHR0aGF0LmRldmljZUlkID0gZGF0YS5kZXZpY2VJZFxyXG5cdFx0XHRcdHRoYXQuc2VydmljZUlkID0gZGF0YS5zZXJ2aWNlSWRcclxuXHRcdFx0XHR0aGF0LndyaXRlID0gZGF0YS53cml0ZVxyXG5cdFx0XHRcdHRoYXQubm90aWZ5ID0gZGF0YS5ub3RpZnlcclxuXHRcdFx0XHR0aGF0LmlzbGluayA9ICF0aGF0LmlzQ29ubmVjdGVkID8gLTEgOiAxXHJcblx0XHRcdFx0dGhhdC5pc0Nvbm5lY3Rpb24gPSB0aGF0LmlzQ29ubmVjdGVkXHJcblx0XHRcdFx0dGhhdC5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKClcclxuXHRcdFx0XHRpZiAoZGF0YS5pc1N1Y2Nlc3NmdWwpIHtcclxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKFwiZ2V0U2tpcFJlc3VsdFwiLCB7XHJcblx0XHRcdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhhdC5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpXHJcblx0XHRcdFx0dW5pLm9uQmx1ZXRvb3RoQWRhcHRlclN0YXRlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQmx1ZXRvb3RoXCIsIHJlcy5hdmFpbGFibGUpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+ebkeWQrOWIsOS6i+S7tuadpeiHqiB1cGRhdGVEYXRhJywgZGF0YSk7XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0b25VbmxvYWQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSk7XHJcblx0XHRcdHRoYXQuaXNsaW5rID0gLTFcclxuXHRcdFx0dGhhdC5pc0Nvbm5lY3Rpb24gPSBmYWxzZVxyXG5cdFx0XHR0aGF0LmNsb3NlQkxFQ29ubmVjdGlvbigpXHJcblx0XHRcdHRoYXQuY2xvc2VCbHVldG9vdGhBZGFwdGVyKClcclxuXHRcdFx0dW5pLiRvZmYoXCJ1cGRhdGVEYXRhXCIpXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHVuaS5zd2l0Y2hUYWIoe1xyXG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2hvbWUvaG9tZSdcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LCAzMDApXHJcblx0XHRcdGNvbnNvbGUubG9nKFwi6L+U5Zue6aaW6aG1b25VbmxvYWRcIilcclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHRpc0Nvbm5lY3RlZCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAoIXRoYXQuaXNDb25uZWN0ZWQpIHtcclxuXHRcdFx0XHRcdHRoYXQuaXNsaW5rID0gLTFcclxuXHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIumHjeaWsOi/nuaOpVwiXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoYXQuaXNDb25uZWN0aW9uID0gdGhhdC5pc0Nvbm5lY3RlZFxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6JOd54mZ5piv5ZCm6L+e5o6lXCIsIHRoYXQuaXNDb25uZWN0ZWQpXHJcblx0XHRcdH0sXHJcblx0XHRcdGlzQmx1ZXRvb3RoVHlsZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAoIXRoYXQuaXNCbHVldG9vdGhUeWxlKSB7XHJcblx0XHRcdFx0XHR0aGF0LmlzQ29ubmVjdGlvbiA9IGZhbHNlXHJcblx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gXCLor7fmiZPlvIDmiYvmnLrok53niZlcIlxyXG5cdFx0XHRcdFx0dGhhdC5pc2xpbmsgPSAtMVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuiTneeJmeaYr+WQpuaJk+W8gFwiLCB0aGF0LmlzQmx1ZXRvb3RoVHlsZSlcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly8g5Yid5aeL5YyW6JOd54mZXHJcblx0XHRcdGhhbmRsZWlzU2RldmljZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAodGhhdC5pc0Nvbm5lY3RlZCkgcmV0dXJuXHJcblx0XHRcdFx0dGhhdC5kZXZpY2VzTGlzdCA9IFtdXHJcblx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcclxuXHRcdFx0XHR1bmkub3BlbkJsdWV0b290aEFkYXB0ZXIoe1xyXG5cdFx0XHRcdFx0c3VjY2VzczogZSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaXNsaW5rID0gMFxyXG5cdFx0XHRcdFx0XHR0aGF0LmhhbmRsZU15VGltZSgpXHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIuiTneeJmeaQnOe0ouS4rVwiXHJcblx0XHRcdFx0XHRcdHRoYXQuc3RhcnRCbHVldG9vdGhEZXZpY2VEaXNjb3ZlcnkoKVxyXG5cdFx0XHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VCbHVldG9vdGhcIiwgdHJ1ZSlcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+WIneWni+WMluiTneeJmeaIkOWKnzonICsgZS5lcnJNc2cpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IGUgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSB0aGF0LiR0b29scy5nZXRCbHVldG9vdGhBZGFwdGVyKGUpXHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlvIDlp4vmkJzlr7vpmYTov5HnmoTok53niZnlpJblm7Torr7lpIdcclxuXHRcdFx0c3RhcnRCbHVldG9vdGhEZXZpY2VEaXNjb3ZlcnkoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnN0YXJ0Qmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSh7XHJcblx0XHRcdFx0XHRhbGxvd0R1cGxpY2F0ZXNLZXk6IHRydWUsXHJcblx0XHRcdFx0XHRpbnRlcnZhbDogMjAwLCAvL+S4iuaKpeiuvuWkh+eahOmXtOmalFxyXG5cdFx0XHRcdFx0c2VydmljZXM6IFtdLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0dGhhdC5vbkJsdWV0b290aERldmljZUZvdW5kKCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHt9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDlj5HnjrDlpJblm7Torr7lpIdcclxuXHRcdFx0ICovXHJcblx0XHRcdG9uQmx1ZXRvb3RoRGV2aWNlRm91bmQoKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5vbkJsdWV0b290aERldmljZUZvdW5kKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRyZXMuZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICghZGV2aWNlLm5hbWUgJiYgIWRldmljZS5sb2NhbE5hbWUpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAoZGV2aWNlLm5hbWUuaW5kZXhPZignWVBDJykgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRkZXZpY2UuZGV2aWNlSWQgPSBkZXZpY2UuZGV2aWNlSWRcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmRldmljZUlkID0gZGV2aWNlLmRldmljZUlkXHJcblx0XHRcdFx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZURldmljZShkZXZpY2UpXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhhdC5oYW5kbGVNeVRpbWUoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVEZXZpY2UoZGV2aWNlKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0Y29uc3QgZm91bmREZXZpY2VzID0gdGhhdC5kZXZpY2VzTGlzdFxyXG5cdFx0XHRcdGNvbnN0IGlkeCA9IHRoYXQuJHRvb2xzLmluQXJyYXkoZm91bmREZXZpY2VzLCBcImRldmljZUlkXCIsIGRldmljZS5kZXZpY2VJZClcclxuXHRcdFx0XHRpZiAoaWR4ID09PSAtMSkge1xyXG5cdFx0XHRcdFx0dGhhdC5kZXZpY2VzTGlzdC5wdXNoKGRldmljZSk7XHJcblx0XHRcdFx0XHR0aGF0LmNyZWF0ZUJMRUNvbm5lY3Rpb24oKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6L+e5o6l6JOd54mZXHJcblx0XHRcdGNyZWF0ZUJMRUNvbm5lY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5jcmVhdGVCTEVDb25uZWN0aW9uKHtcclxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IFwi6JOd54mZ6L+e5o6l5LitXCJcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IDFcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmdldEJMRURldmljZVNlcnZpY2VzKClcclxuXHRcdFx0XHRcdFx0fSwgMTAwMClcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gXCLph43mlrDov57mjqVcIlxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiuvuWkh+i/nuaOpeWksei0pe+8jOivt+mHjeaWsOi/nuaOpVwiLCByZXMsIHRoYXQuZGV2aWNlSWQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog6I635Y+W6K6+5aSH55qEVVVJRFxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Z2V0QkxFRGV2aWNlU2VydmljZXMoKSB7XHJcblx0XHRcdFx0bGV0IHNlcnZpY2VMaXN0ID0gW107XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5nZXRCTEVEZXZpY2VTZXJ2aWNlcyh7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6I635Y+W6K6+5aSH55qEVVVJROaIkOWKn1wiLCByZXMpXHJcblx0XHRcdFx0XHRcdHNlcnZpY2VMaXN0ID0gcmVzLnNlcnZpY2VzO1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlcnZpY2VMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHNlcnZpY2UgPSBzZXJ2aWNlTGlzdFtpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoc2VydmljZS51dWlkLmluZGV4T2YoXCJGRkUwXCIpICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNlcnZpY2VJZCA9IHNlcnZpY2UudXVpZDtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaXNDb25uZWN0aW9uID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IFwi6L+e5o6l5oiQ5YqfXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiuvuWkh+eahEZGRTDnmoRzZXJ2aWNlSWTvvJogXCIgKyB0aGF0LnNlcnZpY2VJZCk7XHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W6K6+5aSH55qEVVVJROWksei0pTonLCByZXMpXHJcblx0XHRcdFx0XHRcdHRoYXQuaXNsaW5rID0gLTFcclxuXHRcdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IFwi6YeN5paw6L+e5o6lXCJcclxuXHRcdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSk7XHJcblx0XHRcdFx0XHRcdHRoYXQuaXNDb25uZWN0aW9uID0gZmFsc2VcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDojrflj5bmjIflrprmnI3liqHnmoTnibnlvoHlgLxcclxuXHRcdFx0ICovXHJcblx0XHRcdGdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcygpIHtcclxuXHRcdFx0XHRsZXQgY2hhcmFjdGVyaXN0aWNzTGlzdCA9IFtdO1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKHtcclxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5pyN5Yqh55qE54m55b6B5YC85oiQ5YqfXCIsIHJlcylcclxuXHRcdFx0XHRcdFx0Ly8gKiDor7tyZWFkOiB0cnVlLCAvLyzlhpl3cml0ZTogdHJ1ZSwgLy8s6YCa55+lbm90aWZ5OiB0cnVlXHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzLmNoYXJhY3RlcmlzdGljcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBpdGVtID0gcmVzLmNoYXJhY3RlcmlzdGljc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51dWlkLmluZGV4T2YoJzAwMDBGRjEyJykgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQud3JpdGUgPSBpdGVtLnV1aWRcclxuXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChpdGVtLnV1aWQuaW5kZXhPZignMDAwMEZGRTQnKSAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5ub3RpZnkgPSBpdGVtLnV1aWRcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgaiA9IE51bWJlcigxNjUgKyAxMCArIDEgKyA4ICsgOCArIDggKyA4ICsgOCArIDgpLnRvU3RyaW5nKDE2KVxyXG5cdFx0XHRcdFx0XHRcdGxldCBzdHIgPSBcIkE1MEEwMTA4MDgwODA4MDgwOFwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxyXG5cdFx0XHRcdFx0XHRcdHRoYXQuU2VuZERhdGEoc3RyKVxyXG5cdFx0XHRcdFx0XHR9LCAzMDApXHJcblx0XHRcdFx0XHRcdC8vIOS9k+mHjVxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoNClcclxuXHRcdFx0XHRcdFx0fSwgNjAwKVxyXG5cdFx0XHRcdFx0XHR1bmkubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZSh7XHJcblx0XHRcdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdFx0XHRjaGFyYWN0ZXJpc3RpY0lkOiB0aGF0Lm5vdGlmeSxcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXHJcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC53cml0ZSxcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhhdC5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKClcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W54m55b6B5YC85aSx6LSlOicsIEpTT04uc3RyaW5naWZ5KHJlcykpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0bm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0c3RhdGU6IHRydWUsIC8vIOWQr+eUqCBub3RpZnkg5Yqf6IO9XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXHJcblx0XHRcdFx0XHRjaGFyYWN0ZXJpc3RpY0lkOiB0aGF0Lm5vdGlmeSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3MocmVzKSB7XHJcblx0XHRcdFx0XHRcdHVuaS5vbkJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHZhbHVlID0gdGhhdC4kdG9vbHMuYWIyaGV4KHJlcy52YWx1ZSwgXCJcIik7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHZhbHVlID09ICc1YTA1MDkwMTY5JykgeyAvL+aooeW8j+iuvue9ruaIkOWKn1xyXG5cdFx0XHRcdFx0XHRcdFx0bGV0IGluZm8gPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGFjdGl2ZTogdGhhdC5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRub3RpZnk6IHRoYXQubm90aWZ5LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR3cml0ZTogdGhhdC53cml0ZSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWNkX2lkOiB0aGF0LmFjZF9pZCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0aXNEZXZpY2U6IHRoYXQuaXNEZXZpY2UsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlzU3VjY2Vzc2Z1bDogZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS4kb2ZmKFwidXBkYXRlRGF0YVwiKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlVHdvL2RldmljZXMvUENUMDE/aW5mbz1cIiArIEpTT05cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC5zdHJpbmdpZnkoaW5mbylcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0XHRcdH0sIDIwMClcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJ2YWx1ZVwiLCB2YWx1ZSwgdGhhdC5hY3RpdmUpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5byA5ZCv6JOd54mZ5Li75Yqo5LiK5oql5qih5byPXHJcblx0XHRcdFNlbmREYXRhKHN0cikge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCBidWYgPSBuZXcgVWludDhBcnJheShzdHIubWF0Y2goL1tcXGRhLWZdezJ9L2dpKS5tYXAoZnVuY3Rpb24oaCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KGgsIDE2KVxyXG5cdFx0XHRcdH0pKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwieGlhZmFcIiwgc3RyKVxyXG5cdFx0XHRcdHVuaS53cml0ZUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoe1xyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC53cml0ZSxcclxuXHRcdFx0XHRcdHZhbHVlOiBidWYuYnVmZmVyLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S4i+WPkeaMh+S7pOaIkOWKnycsIHJlcy5lcnJNc2cpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkuIvlj5HmjIfku6TlpLHotKVcIiwgcmVzKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5qih5byP5YiH5o2iXHJcblx0XHRcdGhhbmRsZVN0YXJ0KGluZCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCBtID0gbnVsbFxyXG5cdFx0XHRcdGxldCBzZW5kID0gbnVsbFxyXG5cdFx0XHRcdGlmICghdGhhdC5pc0Nvbm5lY3RlZCkge1xyXG5cdFx0XHRcdFx0dGhhdC4kdG9vbHMubXNnKFwi6K+35YWI6L+e5o6l6K6+5aSH77yBXCIpXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGluZCA9PSAxKSB7IC8vIDHoh6rnlLFcclxuXHRcdFx0XHRcdG0gPSBOdW1iZXIoMTY1ICsgOCArIDkpLnRvU3RyaW5nKDE2KVxyXG5cdFx0XHRcdFx0c2VuZCA9IFwiQTUwODA5MDAwMDAwMDBcIiArIG0uc3Vic3RyKG0ubGVuZ3RoIC0gMiwgMilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGluZCA9PSAyKSB7IC8vMuWumuaXtlxyXG5cdFx0XHRcdFx0bGV0IHRpbWUgPSBOdW1iZXIodGhhdC50aW1lX20pICogNjAgKyBOdW1iZXIodGhhdC50aW1lX3MpXHJcblx0XHRcdFx0XHRtID0gTnVtYmVyKDE2NSArIDggKyA5ICsgdGltZSkudG9TdHJpbmcoMTYpXHJcblx0XHRcdFx0XHRzZW5kID0gXCJBNTA4MDkwMDAwXCIgKyB0aGF0LiR0b29scy50b0hleCh0aW1lLCA0KSArIG0uc3Vic3RyKG0ubGVuZ3RoIC0gMiwgMilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGluZCA9PSAzKSB7IC8vM+WumuaVsFxyXG5cdFx0XHRcdFx0bGV0IHdlaWdodCA9IHRoYXQuJHRvb2xzLnRvSGV4KHRoYXQud2VpZ2h0LCA0KVxyXG5cdFx0XHRcdFx0bSA9IE51bWJlcigxNjUgKyA4ICsgOSArIHRoYXQud2VpZ2h0KS50b1N0cmluZygxNilcclxuXHRcdFx0XHRcdHNlbmQgPSBcIkE1MDgwOVwiICsgd2VpZ2h0ICsgXCIwMDAwXCIgKyBtLnN1YnN0cihtLmxlbmd0aCAtIDIsIDIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChpbmQgPT0gNCkgeyAvL+S9k+mHjVxyXG5cclxuXHRcdFx0XHRcdGxldCB3ZWlnaHQgPSBOdW1iZXIodGhhdC51c2VyLndlaWdodCkgKiAyXHJcblx0XHRcdFx0XHRsZXQgbnVtID0gcGFyc2VJbnQod2VpZ2h0KS50b1N0cmluZygpO1xyXG5cdFx0XHRcdFx0bSA9IE51bWJlcigxNjUgKyA1ICsgOCArIE51bWJlcihudW0pKS50b1N0cmluZygxNilcclxuXHRcdFx0XHRcdHNlbmQgPSBcIkE1MDUwOFwiICsgTnVtYmVyKG51bSkudG9TdHJpbmcoMTYpICsgbS5zdWJzdHIobS5sZW5ndGggLSAyLCAyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0LlNlbmREYXRhKHNlbmQpXHJcblx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLnN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5KClcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5Y6G5Y+y5pWw5o2u5Yig6Zmk5pe26YeN5paw5Yqg6L295o6l5Y+jXHJcblx0XHRcdHJlbG9hZCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldFNraXBSZXN1bHRcIiwge1xyXG5cdFx0XHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5a6a5pe26K6t57uDXHJcblx0XHRcdC8vXHJcblx0XHRcdGJpbmRUaW1lQ2hhbmdlKGUpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRsZXQgbSA9IGUudGFyZ2V0LnZhbHVlWzBdXHJcblx0XHRcdFx0bGV0IHMgPSBlLnRhcmdldC52YWx1ZVsxXVxyXG5cdFx0XHRcdHRoYXQudGltZXNUbmRleCA9IGUudGFyZ2V0LnZhbHVlXHJcblx0XHRcdFx0bGV0IHRpbWVfbSA9IE51bWJlcih0aGF0LnRpbWVMaXN0WzBdW21dLnN1YnN0cmluZygwLCAyKSkgKiA2MFxyXG5cdFx0XHRcdGxldCB0aW1lX3MgPSBOdW1iZXIodGhhdC50aW1lTGlzdFsxXVtzXS5zdWJzdHJpbmcoMCwgMikpXHJcblx0XHRcdFx0aWYgKE51bWJlcih0aW1lX20gKyB0aW1lX3MpIDwgMzApIHtcclxuXHRcdFx0XHRcdHRoYXQudGltZV9tID0gJzAwJ1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lX3MgPSAnMzAnXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoYXQudGltZV9tID0gdGhhdC50aW1lTGlzdFswXVttXS5zdWJzdHJpbmcoMCwgMilcclxuXHRcdFx0XHRcdHRoYXQudGltZV9zID0gdGhhdC50aW1lTGlzdFsxXVtzXS5zdWJzdHJpbmcoMCwgMilcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZVRpbWVFZGl0KHRleHQpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRsZXQgdGltZV9tID0gTnVtYmVyKHRoYXQudGltZV9tKSAqIDYwXHJcblx0XHRcdFx0bGV0IHRpbWVfcyA9IE51bWJlcih0aGF0LnRpbWVfcylcclxuXHRcdFx0XHRsZXQgbWludXRlcyA9IG51bGxcclxuXHRcdFx0XHRsZXQgc2Vjb25kcyA9IG51bGxcclxuXHJcblx0XHRcdFx0aWYgKE51bWJlcih0aW1lX20gKyB0aW1lX3MpID49IDM1NzAgJiYgdGV4dCA9PSAn5YqgJykge1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lX20gPSAnNTknXHJcblx0XHRcdFx0XHR0aGF0LnRpbWVfcyA9ICc1OSdcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoTnVtYmVyKHRpbWVfbSArIHRpbWVfcykgPD0gMzAgJiYgdGV4dCA9PSAn5YePJykge1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lX20gPSAnMDAnXHJcblx0XHRcdFx0XHR0aGF0LnRpbWVfcyA9ICczMCdcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5YePJykge1xyXG5cdFx0XHRcdFx0bWludXRlcyA9IE1hdGguZmxvb3IoKE51bWJlcih0aW1lX20gKyB0aW1lX3MgLSAzMCkgJSAzNjAwKSAvIDYwKVxyXG5cdFx0XHRcdFx0c2Vjb25kcyA9IE51bWJlcih0aW1lX20gKyB0aW1lX3MgLSAzMCkgJSA2MFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5YqgJykge1xyXG5cdFx0XHRcdFx0bWludXRlcyA9IE1hdGguZmxvb3IoKE51bWJlcih0aW1lX20gKyB0aW1lX3MgKyAzMCkgJSAzNjAwKSAvIDYwKVxyXG5cdFx0XHRcdFx0c2Vjb25kcyA9IE51bWJlcih0aW1lX20gKyB0aW1lX3MgKyAzMCkgJSA2MFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0LnRpbWVfbSA9IG1pbnV0ZXMgPiA5ID8gbWludXRlcyA6ICcwJyArIG1pbnV0ZXM7XHJcblx0XHRcdFx0dGhhdC50aW1lX3MgPSBzZWNvbmRzID4gOSA/IHNlY29uZHMgOiAnMCcgKyBzZWNvbmRzO1xyXG5cdFx0XHRcdHRoYXQudGltZXNUbmRleCA9IFtOdW1iZXIodGhhdC50aW1lX20pLCBOdW1iZXIodGhhdC50aW1lX3MpXVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVXZWlnaHRFZGl0KHRleHQpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5YePJykge1xyXG5cdFx0XHRcdFx0dGhhdC53ZWlnaHQgPSBOdW1iZXIodGhhdC53ZWlnaHQpIC0gNTAgPiA1MCA/IE51bWJlcih0aGF0LndlaWdodCkgLSA1MCA6IDUwXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0ZXh0ID09ICfliqAnKSB7XHJcblx0XHRcdFx0XHR0aGF0LndlaWdodCA9IE51bWJlcih0aGF0LndlaWdodCkgKyA1MFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6JOd54mZ5pCc57Si6K6w5pe2XHJcblx0XHRcdGhhbmRsZU15VGltZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRteVRpbWUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0aWYgKCF0aGF0LmRldmljZXNMaXN0Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSBcIumHjeaWsOaQnOe0olwiXHJcblx0XHRcdFx0XHRcdHRoYXQuJHRvb2xzLm1zZyhcIuayoeacieafpeaJvuWIsOiuvuWkh1wiKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSlcclxuXHRcdFx0XHRcdHRoYXQuJEJsdWV0b290aC5zdG9wQmx1ZXRvb3RoRGV2aWNlc0Rpc2NvdmVyeSgpXHJcblx0XHRcdFx0fSwgMjAwMDApO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDnm5HlkKzok53niZnov57mjqXnirbmgIFcclxuXHRcdFx0b25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLnm5HlkKzok53niZnov57mjqXnirbmgIFcIiwgcmVzLmNvbm5lY3RlZClcclxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUNvbm5lY3RlZFwiLCByZXMuY29ubmVjdGVkKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog5pat5byA6JOd54mZ5qih5Z2XXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRjbG9zZUJsdWV0b290aEFkYXB0ZXIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5jbG9zZUJsdWV0b290aEFkYXB0ZXIoe1xyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iTneeJmeaooeWdl+WFs+mXreaIkOWKnycpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDmlq3lvIDok53niZnov57mjqVcclxuXHRcdFx0ICovXHJcblx0XHRcdGNsb3NlQkxFQ29ubmVjdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNsb3NlQkxFQ29ubmVjdGlvbih7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmlq3lvIDok53niZnov57mjqXmiJDlip8nKTtcclxuXHRcdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQ29ubmVjdGVkXCIsIGZhbHNlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0bmF2VG8odXJsKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKCF0aGF0LmlzQ29ubmVjdGVkKSB7XHJcblx0XHRcdFx0XHR0aGF0LmlzbGluayA9IC0xXHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQobXlUaW1lKVxyXG5cdFx0XHRcdFx0dGhhdC4kQmx1ZXRvb3RoLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcigpXHJcblx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguY2xvc2VCTEVDb25uZWN0aW9uKHRoYXQuZGV2aWNlSWQpXHJcblx0XHRcdFx0XHR0aGF0LiRCbHVldG9vdGguc3RvcEJsdWV0b290aERldmljZXNEaXNjb3ZlcnkoKVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLok53niZnmsqHmnInov57mjqVcIilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiB1cmxcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0LmNvbnRlbnQge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtaW4taGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGNUY2RkE7XHJcblx0fVxyXG5cclxuXHQuc2tpcHRvcCB7XHJcblx0XHRtYXJnaW4tdG9wOiAxNXB4O1xyXG5cdH1cclxuXHJcblx0LnRhYmJhciB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdG1hcmdpbi10b3A6IDIwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuXHJcblx0XHR2aWV3IHtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5hY3RpdmU6YWZ0ZXIge1xyXG5cdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRoZWlnaHQ6IDNweDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0Ym90dG9tOiAtOHB4O1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRtYWluY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYm94MSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0cGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xyXG5cdFx0Y29sb3I6ICM5OTk7XHJcblx0XHRtYXJnaW46IDE1cHg7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJS0gMzBweCk7XHJcblxyXG5cdFx0LnRpbWUge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHRcdH1cclxuXHJcblx0XHQuaXRlbSB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRjb2xvcjogIzMzMztcclxuXHRcdFx0Zm9udC1zaXplOiA0NHJweDtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cclxuXHRcdFx0dGV4dCB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5pdGVtLWl0ZSB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAzNnJweDtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Lml0ZW0tc2V0IHtcclxuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XHJcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHRcdGhlaWdodDogNTVweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogNTVweDtcclxuXHRcdFx0XHRmb250LXNpemU6IDYwcnB4O1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xyXG5cdFx0XHRcdHBhZGRpbmc6IDAgMTVweDtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRcdFx0bWFyZ2luOiBhdXRvO1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdFx0L2RlZXAvaW5wdXQge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiA2MHJweDtcclxuXHRcdFx0XHRcdGhlaWdodDogNTVweDtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA1NXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Lml0ZW0tc2V0MCB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlclxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQudGlwcyB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAzMnJweDtcclxuXHRcdFx0XHRjb2xvcjogIzk5OTtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LnN0YXJ0IHtcclxuXHRcdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRcdHdpZHRoOiAxMDBweDtcclxuXHRcdFx0aGVpZ2h0OiAxMDBweDtcclxuXHRcdFx0Zm9udC1zaXplOiAzNnJweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxMDBweDtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdGJhY2tncm91bmQ6ICR0ZXh0Y29sb3I7XHJcblx0XHRcdG1hcmdpbjogMTVweCBhdXRvO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5Oc3RhcnQge1xyXG5cdFx0XHRvcGFjaXR5OiAwLjUgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zdGF0dXMge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHJcblx0XHRpbWFnZSB7XHJcblx0XHRcdHdpZHRoOiAxOHB4O1xyXG5cdFx0XHRoZWlnaHQ6IDE4cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0Lmljb25fbGluayB7XHJcblx0XHRcdGFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcblx0XHR9XHJcblxyXG5cdFx0QGtleWZyYW1lcyByb3RhdGlvbiB7XHJcblx0XHRcdDAlIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0MTAwJSB7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///70\n"); /***/ }), /* 71 */ @@ -9873,6 +9884,7 @@ var render = function () { _vm._$s("12-" + $30, "i", item.line.categories.length) ? _c( "view", + { attrs: { _i: "12-" + $30 } }, [ _c("qiunDataCharts", { attrs: { @@ -10056,6 +10068,7 @@ var render = function () { _vm._$s(1, "i", _vm.mixinDatacomLoading) ? _c( "view", + { attrs: { _i: 1 } }, [ _c("qiun-loading", { attrs: { loadingType: _vm.loadingType, _i: 2 }, @@ -10887,7 +10900,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 145));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 146));\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 147));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction deepCloneAssign() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var i in args) {\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n origin[key] = args[i][key] && (0, _typeof2.default)(args[i][key]) === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];\n }\n }\n }\n return origin;\n}\nfunction formatterAssign(args, formatter) {\n for (var key in args) {\n if (args.hasOwnProperty(key) && args[key] !== null && (0, _typeof2.default)(args[key]) === 'object') {\n formatterAssign(args[key], formatter);\n } else if (key === 'format' && typeof args[key] === 'string') {\n args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;\n }\n }\n return args;\n}\n\n// 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {\n var seperator = \"-\";\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var strDate = date.getDate();\n if (month >= 1 && month <= 9) {\n month = \"0\" + month;\n }\n if (strDate >= 0 && strDate <= 9) {\n strDate = \"0\" + strDate;\n }\n var currentdate = year + seperator + month + seperator + strDate;\n return currentdate;\n}\nvar lastMoveTime = null;\n/**\n * 防抖\n *\n * @param { Function } fn 要执行的方法\n * @param { Number } wait 防抖多少毫秒\n *\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\n * move(){ // 错误调用方式\n * debounce(function () {\n * console.log(this.title);\n * }, 1000)});\n * 应该直接使用:// 正确调用方式\n * move: debounce(function () {\n * console.log(this.title);\n * }, 1000)\n */\nfunction debounce(fn, wait) {\n var timer = false;\n return function () {\n var _arguments = arguments,\n _this = this;\n clearTimeout(timer);\n timer && clearTimeout(timer);\n timer = setTimeout(function () {\n timer = false;\n fn.apply(_this, _arguments); // 把参数传进去\n }, wait);\n };\n}\nvar _default2 = {\n name: 'qiun-data-charts',\n mixins: [uniCloud.mixinDatacom],\n props: {\n type: {\n type: String,\n default: null\n },\n canvasId: {\n type: String,\n default: 'uchartsid'\n },\n canvas2d: {\n type: Boolean,\n default: false\n },\n background: {\n type: String,\n default: 'rgba(0,0,0,0)'\n },\n animation: {\n type: Boolean,\n default: true\n },\n chartData: {\n type: Object,\n default: function _default() {\n return {\n categories: [],\n series: []\n };\n }\n },\n opts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n eopts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n loadingType: {\n type: Number,\n default: 2\n },\n errorShow: {\n type: Boolean,\n default: true\n },\n errorReload: {\n type: Boolean,\n default: true\n },\n errorMessage: {\n type: String,\n default: null\n },\n inScrollView: {\n type: Boolean,\n default: false\n },\n reshow: {\n type: Boolean,\n default: false\n },\n reload: {\n type: Boolean,\n default: false\n },\n disableScroll: {\n type: Boolean,\n default: false\n },\n optsWatch: {\n type: Boolean,\n default: true\n },\n onzoom: {\n type: Boolean,\n default: false\n },\n ontap: {\n type: Boolean,\n default: true\n },\n ontouch: {\n type: Boolean,\n default: false\n },\n onmouse: {\n type: Boolean,\n default: true\n },\n onmovetip: {\n type: Boolean,\n default: false\n },\n echartsH5: {\n type: Boolean,\n default: false\n },\n echartsApp: {\n type: Boolean,\n default: false\n },\n tooltipShow: {\n type: Boolean,\n default: true\n },\n tooltipFormat: {\n type: String,\n default: undefined\n },\n tooltipCustom: {\n type: Object,\n default: undefined\n },\n startDate: {\n type: String,\n default: undefined\n },\n endDate: {\n type: String,\n default: undefined\n },\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n pageScrollTop: {\n type: Number,\n default: 0\n },\n directory: {\n type: String,\n default: '/'\n },\n tapLegend: {\n type: Boolean,\n default: true\n },\n menus: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n Height: {\n type: Number,\n default: 340\n },\n Width: {\n type: Number,\n default: 340\n }\n },\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 340,\n cHeight: 240,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false\n },\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null\n };\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {\n var _this2 = this;\n var that = this;\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n this.cWidth = this.Width ? this.Width : this.cWidth;\n this.cHeight = this.Height ? this.Height : this.cHeight;\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n uni.offWindowResize(function () {});\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true\n },\n optsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n eoptsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n reshow: function reshow(val, oldval) {\n var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({\n name: 'error',\n params: {\n type: \"error\",\n errorShow: this.errorShow,\n msg: val,\n id: this.cid\n }\n });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:567\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n }\n },\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n }\n },\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if ((0, _typeof2.default)(this.chartData) === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = {\n categories: [],\n series: []\n };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({\n name: item.group,\n data: []\n });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{\n name: '默认分组',\n data: []\n }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({\n \"name\": resdata[_i3].text,\n \"value\": resdata[_i3].value\n });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {\n var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {\n var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + this.cid).boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).exec();\n },\n getCloudData: function getCloudData() {\n var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if ((0, _typeof2.default)(ctx) === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {\n var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + cid).boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.select('#' + cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000\n });\n }\n });\n }\n }, this);\n },\n getImage: function getImage() {\n var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: res.tempFilePath\n }\n });\n }\n }, this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.select('#' + this.cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: canvas.toDataURL('image/png')\n }\n });\n }\n });\n }\n },\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 116)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOlsiYXJncyIsIm9yaWdpbiIsImtleSIsImZvcm1hdHRlckFzc2lnbiIsIm1vbnRoIiwic3RyRGF0ZSIsImNsZWFyVGltZW91dCIsInRpbWVyIiwiZm4iLCJuYW1lIiwibWl4aW5zIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNhbnZhc0lkIiwiY2FudmFzMmQiLCJiYWNrZ3JvdW5kIiwiYW5pbWF0aW9uIiwiY2hhcnREYXRhIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsIm9wdHMiLCJlb3B0cyIsImxvYWRpbmdUeXBlIiwiZXJyb3JTaG93IiwiZXJyb3JSZWxvYWQiLCJlcnJvck1lc3NhZ2UiLCJpblNjcm9sbFZpZXciLCJyZXNob3ciLCJyZWxvYWQiLCJkaXNhYmxlU2Nyb2xsIiwib3B0c1dhdGNoIiwib256b29tIiwib250YXAiLCJvbnRvdWNoIiwib25tb3VzZSIsIm9ubW92ZXRpcCIsImVjaGFydHNINSIsImVjaGFydHNBcHAiLCJ0b29sdGlwU2hvdyIsInRvb2x0aXBGb3JtYXQiLCJ0b29sdGlwQ3VzdG9tIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInRleHRFbnVtIiwiZ3JvdXBFbnVtIiwicGFnZVNjcm9sbFRvcCIsImRpcmVjdG9yeSIsInRhcExlZ2VuZCIsIm1lbnVzIiwiSGVpZ2h0IiwiV2lkdGgiLCJkYXRhIiwiY2lkIiwiaW5XeCIsImluQWxpIiwiaW5UdCIsImluQmQiLCJpbkg1IiwiaW5BcHAiLCJpbldpbiIsInR5cGUyZCIsImRpc1Njcm9sbCIsIm9wZW5tb3VzZSIsInBpeGVsIiwiY1dpZHRoIiwiY0hlaWdodCIsInNob3djaGFydCIsImVjaGFydHMiLCJlY2hhcnRzUmVzaXplIiwic3RhdGUiLCJ1Y2hhcnRzT3B0cyIsImVjaGFydHNPcHRzIiwiZHJhd0RhdGEiLCJsYXN0RHJhd1RpbWUiLCJjcmVhdGVkIiwiaWQiLCJtb3VudGVkIiwiZGVzdHJveWVkIiwidW5pIiwid2F0Y2giLCJjaGFydERhdGFQcm9wcyIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJkZWVwIiwibG9jYWxkYXRhIiwib3B0c1Byb3BzIiwiZW9wdHNQcm9wcyIsInNldFRpbWVvdXQiLCJtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UiLCJwYXJhbXMiLCJtc2ciLCJjb21wdXRlZCIsIm1ldGhvZHMiLCJiZWZvcmVJbml0IiwibG9jYWxkYXRhSW5pdCIsInJlc2RhdGEiLCJuZWVkQ2F0ZWdvcmllcyIsInRtcGNhdGVnb3JpZXMiLCJpZGF0ZSIsInRlbXBja2V5IiwidG1wRGF0YSIsInRtcHNlcmllcyIsInRlbXBza2V5Iiwic2VyaWVzZGF0YSIsInJlbG9hZGluZyIsImNoZWNrRGF0YSIsImNmZSIsImNmdSIsInJlc2l6ZUhhbmRsZXIiLCJjcmVhdGVTZWxlY3RvclF1ZXJ5IiwiaW4iLCJzZWxlY3QiLCJib3VuZGluZ0NsaWVudFJlY3QiLCJleGVjIiwiZ2V0Q2xvdWREYXRhIiwidGhlbiIsImNhdGNoIiwib25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSIsIl9jbGVhckNoYXJ0IiwiY3R4IiwiaW5pdCIsInF1ZXJ5IiwiZmllbGRzIiwibm9kZSIsInNpemUiLCJjYW52YXMiLCJzYXZlSW1hZ2UiLCJzdWNjZXNzIiwiZmlsZVBhdGgiLCJ0aXRsZSIsImR1cmF0aW9uIiwiZ2V0SW1hZ2UiLCJiYXNlNjQiLCJfZXJyb3IiLCJlbWl0TXNnIiwiZ2V0UmVuZGVyVHlwZSIsInRvSlNPTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUE0RkE7QUFDQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtFQUFBO0VBQUE7SUFBQUE7RUFBQTtFQUNBO0lBQ0E7TUFDQTtRQUNBQyx1SEFDQUMsSUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0lBQ0E7TUFDQUM7SUFDQTtNQUNBSDtJQUNBO0VBQ0E7RUFDQTtBQUNBOztBQUVBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0lBQ0FJO0VBQ0E7RUFDQTtJQUNBQztFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtJQUFBO01BQUE7SUFDQUM7SUFDQUM7SUFDQUE7TUFDQUE7TUFDQUM7SUFDQTtFQUNBO0FBQ0E7QUFBQSxnQkFFQTtFQUNBQztFQUNBQztFQUNBQztJQUNBQztNQUNBQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0lBQ0FJO01BQ0FMO01BQ0FDO0lBQ0E7SUFDQUs7TUFDQU47TUFDQUM7UUFDQTtVQUNBTTtVQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBVDtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBUztNQUNBVjtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBVTtNQUNBWDtNQUNBQztJQUNBO0lBQ0FXO01BQ0FaO01BQ0FDO0lBQ0E7SUFDQVk7TUFDQWI7TUFDQUM7SUFDQTtJQUNBYTtNQUNBZDtNQUNBQztJQUNBO0lBQ0FjO01BQ0FmO01BQ0FDO0lBQ0E7SUFDQWU7TUFDQWhCO01BQ0FDO0lBQ0E7SUFDQWdCO01BQ0FqQjtNQUNBQztJQUNBO0lBQ0FpQjtNQUNBbEI7TUFDQUM7SUFDQTtJQUNBa0I7TUFDQW5CO01BQ0FDO0lBQ0E7SUFDQW1CO01BQ0FwQjtNQUNBQztJQUNBO0lBQ0FvQjtNQUNBckI7TUFDQUM7SUFDQTtJQUNBcUI7TUFDQXRCO01BQ0FDO0lBQ0E7SUFDQXNCO01BQ0F2QjtNQUNBQztJQUNBO0lBQ0F1QjtNQUNBeEI7TUFDQUM7SUFDQTtJQUNBd0I7TUFDQXpCO01BQ0FDO0lBQ0E7SUFDQXlCO01BQ0ExQjtNQUNBQztJQUNBO0lBQ0EwQjtNQUNBM0I7TUFDQUM7SUFDQTtJQUNBMkI7TUFDQTVCO01BQ0FDO0lBQ0E7SUFDQTRCO01BQ0E3QjtNQUNBQztJQUNBO0lBQ0E2QjtNQUNBOUI7TUFDQUM7SUFDQTtJQUNBOEI7TUFDQS9CO01BQ0FDO0lBQ0E7SUFDQStCO01BQ0FoQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBZ0M7TUFDQWpDO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FpQztNQUNBbEM7TUFDQUM7SUFDQTtJQUNBa0M7TUFDQW5DO01BQ0FDO0lBQ0E7SUFDQW1DO01BQ0FwQztNQUNBQztJQUNBO0lBQ0FvQztNQUNBckM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQXFDO01BQ0F0QztNQUNBQztJQUNBO0lBQ0FzQztNQUNBdkM7TUFDQUM7SUFDQTtFQUNBO0VBQ0F1QztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7O0lBVUE7O0lBRUE7SUFlQTtFQUNBO0VBQ0FDO0lBQUE7SUFDQTtJQUVBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFnQkE7SUFDQTtJQUNBO01BQ0E7SUFDQTtFQXFCQTtFQUNBQztJQUNBO01BQ0E7TUFDQTtJQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO0VBRUE7RUFDQUM7SUFDQUM7TUFDQUM7UUFDQTtVQUNBO1lBQ0E7WUFDQTtjQUNBO1lBQ0E7Y0FDQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBQztNQUNBSDtRQUNBO1VBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBRTtNQUNBSjtRQUNBO1VBQ0Esa0dBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBRztNQUNBTDtRQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQXhEO01BQUE7TUFDQTtRQUNBNEQ7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTNEO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E0RDtNQUNBO1FBQ0E7VUFDQWhGO1VBQ0FpRjtZQUNBOUU7WUFDQVk7WUFDQW1FO1lBQ0FmO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQWxEO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBa0U7SUFDQU47TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBTjtNQUNBO0lBQ0E7RUFDQTtFQUNBWTtJQUNBQztNQUNBO01BQ0EsMkhBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTtZQUNBO2NBQ0FBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E3RTtRQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTZFO01BQ0E7UUFDQUE7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBQztRQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQTtjQUNBQTtjQUNBQztjQUNBQTtZQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0FIO2NBQ0E7Z0JBQ0FFO2dCQUNBRTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0FMO1FBQ0E7VUFDQU07WUFDQTdGO1lBQ0EyQztVQUNBO1VBQ0FtRDtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FEO1VBQ0E3RjtVQUNBMkM7UUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQTtnQkFDQW9EO2NBQ0E7WUFDQTtZQUNBRjtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7WUFDQTtjQUNBO2NBQ0E7Z0JBQ0E7a0JBQ0FFO2dCQUNBO2NBQ0E7Y0FDQUY7WUFDQTtZQUNBO1VBQ0E7WUFDQTtjQUNBO2dCQUNBQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUQ7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBSTtNQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0FBO1FBQ0FBO01BQ0E7UUFDQTtVQUNBQztVQUNBQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQUQ7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBQztVQUNBQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLG1CQUNBQyxzQkFFQUMsU0FFQUMsaUNBQ0FDO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0EsR0FDQUM7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQSx1QkFDQUM7UUFDQTtRQUNBO01BQ0EsR0FDQUM7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBQztVQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQSxtQkFDQVgsc0JBRUFDLFNBRUFDLDRCQUNBQztRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0FMLDBHQUNBNUY7WUFDQTRGO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7Y0FDQUQ7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQTtZQUNBO2NBQ0FDO2NBQ0E7WUFDQTtZQUNBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBO1lBQ0E7WUFDQTtjQUNBO2dCQUNBO2dCQUNBYyxNQUNBVixrQkFDQVc7a0JBQ0FDO2tCQUNBQztnQkFDQSxHQUNBWDtrQkFDQTtvQkFDQTtvQkFDQTtvQkFDQU47b0JBQ0FBO29CQUNBLGdIQUNBdkQ7c0JBQ0E7b0JBQ0E7c0JBQ0F5RTtzQkFDQUE7c0JBQ0FBO3NCQUNBQTtzQkFDQXRDO3dCQUNBb0I7d0JBQ0FBO3dCQUNBO3NCQUNBO29CQUNBO2tCQUNBO29CQUNBO29CQUNBLGtDQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Z0JBQ0E7a0JBQ0FBO2dCQUNBO2dCQUNBQTtnQkFDQSxnSUFDQTtrQkFDQTtnQkFDQTtrQkFDQXBCO29CQUNBb0I7b0JBQ0FBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQSxHQUNBTTtJQUNBO0lBQ0FhO01BQ0FoRDtRQUNBakU7UUFDQWtIO1VBU0FqRDtZQUNBa0Q7WUFDQUQ7Y0FDQWpEO2dCQUNBbUQ7Z0JBQ0FDO2NBQ0E7WUFDQTtVQUNBO1FBRUE7TUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBckQ7VUFDQWpFO1VBQ0FrSDtZQUNBO2NBQ0F2SDtjQUNBaUY7Z0JBQ0E5RTtnQkFDQXlIO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FYLE1BQ0FWLHVCQUNBVztVQUNBQztVQUNBQztRQUNBLEdBQ0FYO1VBQ0E7WUFDQTtZQUNBO2NBQ0F6RztjQUNBaUY7Z0JBQ0E5RTtnQkFDQXlIO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBK1BBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsNEIiLCJmaWxlIjoiMTE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcblx0XHQ8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG5cdFx0XHQ8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuXHRcdFx0PHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuXHRcdFx0PCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcblx0XHRcdDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG5cdFx0PCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuXHRcdDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG5cdFx0XHQ8dmlldyA6c3R5bGU9XCJ7IGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcblx0XHRcdFx0OmlkPVwiJ0VDJytjaWRcIiA6cHJvcD1cImVjaGFydHNPcHRzXCIgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG5cdFx0XHRcdDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWVsc2U+XHJcblx0XHRcdDx2aWV3IHYtb246dGFwPVwicmRjaGFydHMudGFwXCIgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIiB2LW9uOm1vdXNlZG93bj1cInJkY2hhcnRzLm1vdXNlRG93blwiXHJcblx0XHRcdFx0di1vbjptb3VzZXVwPVwicmRjaGFydHMubW91c2VVcFwiIHYtb246dG91Y2hzdGFydD1cInJkY2hhcnRzLnRvdWNoU3RhcnRcIlxyXG5cdFx0XHRcdHYtb246dG91Y2htb3ZlPVwicmRjaGFydHMudG91Y2hNb3ZlXCIgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCIgOmlkPVwiJ1VDJytjaWRcIiA6cHJvcD1cInVjaGFydHNPcHRzXCJcclxuXHRcdFx0XHQ6Y2hhbmdlOnByb3A9XCJyZGNoYXJ0cy51Y2luaXRcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzYWJsZVNjcm9sbFwiIEBlcnJvcj1cIl9lcnJvclwiIHYtc2hvdz1cInNob3djaGFydFwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvYmxvY2s+XHJcblx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHRcdDwhLS0g5pSv5LuY5a6d5bCP56iL5bqPIC0tPlxyXG5cdFx0PCEtLSAjaWZkZWYgTVAtQUxJUEFZIC0tPlxyXG5cdFx0PGJsb2NrIHYtaWY9XCJvbnRvdWNoXCI+XHJcblx0XHRcdDxjYW52YXMgOmlkPVwiY2lkXCIgOmNhbnZhc0lkPVwiY2lkXCIgOndpZHRoPVwiY1dpZHRoICogcGl4ZWxcIiA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiIEB0YXA9XCJfdGFwXCIgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuXHRcdFx0XHRAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWlmPVwiIW9udG91Y2hcIj5cclxuXHRcdFx0PGNhbnZhcyA6aWQ9XCJjaWRcIiA6Y2FudmFzSWQ9XCJjaWRcIiA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiIDpoZWlnaHQ9XCJjSGVpZ2h0ICogcGl4ZWxcIlxyXG5cdFx0XHRcdDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcblx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRhcD1cIl90YXBcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdFx0PCEtLSDlhbbku5blsI/nqIvluo/pgJrov4d2dWXmuLLmn5Plm77ooaggLS0+XHJcblx0XHQ8IS0tICNpZmRlZiBNUC1XRUlYSU4gfHwgTVAtQkFJRFUgfHwgTVAtUVEgfHwgTVAtVE9VVElBTyB8fCBNUC1LVUFJU0hPVSB8fCBNUC1MQVJLIHx8IE1QLUpEIHx8IE1QLTM2MCAtLT5cclxuXHRcdDxibG9jayB2LWlmPVwidHlwZTJkXCI+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIiB0eXBlPVwiMmRcIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCIgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuXHRcdFx0XHRcdEBlcnJvcj1cIl9lcnJvclwiIHYtc2hvdz1cInNob3djaGFydFwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIiB0eXBlPVwiMmRcIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQGVycm9yPVwiX2Vycm9yXCIgdi1zaG93PVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWlmPVwiIXR5cGUyZFwiPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcblx0XHRcdFx0PGNhbnZhcyA6aWQ9XCJjaWRcIiA6Y2FudmFzSWQ9XCJjaWRcIlxyXG5cdFx0XHRcdFx0OnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuXHRcdFx0XHRcdEB0b3VjaHN0YXJ0PVwiX3RvdWNoU3RhcnRcIiBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcblx0XHRcdFx0XHRAZXJyb3I9XCJfZXJyb3JcIiB2LWlmPVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiIW9udG91Y2hcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRhcD1cIl90YXBcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LWlmPVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHVDaGFydHMgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL3UtY2hhcnRzLmpzJztcclxuXHRpbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcblx0Ly8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuXHRpbXBvcnQgY2ZlIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctZWNoYXJ0cy5qcyc7XHJcblx0Ly8gI2VuZGlmXHJcblxyXG5cdGZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG5cdFx0Zm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcblx0XHRcdGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcblx0XHRcdFx0aWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdFx0b3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyBkZWVwQ2xvbmVBc3NpZ24oQXJyYXkuaXNBcnJheShhcmdzW2ldW1xyXG5cdFx0XHRcdFx0XHRrZXlcclxuXHRcdFx0XHRcdF0pID8gW10gOiB7fSwgb3JpZ2luW2tleV0sIGFyZ3NbaV1ba2V5XSkgOiBhcmdzW2ldW2tleV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gb3JpZ2luO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZm9ybWF0dGVyQXNzaWduKGFyZ3MsIGZvcm1hdHRlcikge1xyXG5cdFx0Zm9yIChsZXQga2V5IGluIGFyZ3MpIHtcclxuXHRcdFx0aWYgKGFyZ3MuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLCBmb3JtYXR0ZXIpXHJcblx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnZm9ybWF0JyAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdGFyZ3NbJ2Zvcm1hdHRlciddID0gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gPyBmb3JtYXR0ZXJbYXJnc1trZXldXSA6IHVuZGVmaW5lZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFyZ3M7XHJcblx0fVxyXG5cclxuXHQvLyDml7bpl7TovazmjaLlh73mlbDvvIzkuLrkuobljLnphY11bmlDbGluZXREQuivu+WPluWHuueahOaXtumXtOS4jmNhdGVnb3JpZXPkuI3lkIxcclxuXHRmdW5jdGlvbiBnZXRGb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHRcdHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cdFx0dmFyIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuXHRcdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0XHRpZiAobW9udGggPj0gMSAmJiBtb250aCA8PSA5KSB7XHJcblx0XHRcdG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuXHRcdH1cclxuXHRcdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0XHR9XHJcblx0XHR2YXIgY3VycmVudGRhdGUgPSB5ZWFyICsgc2VwZXJhdG9yICsgbW9udGggKyBzZXBlcmF0b3IgKyBzdHJEYXRlO1xyXG5cdFx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG5cdH1cclxuXHJcblx0dmFyIGxhc3RNb3ZlVGltZSA9IG51bGw7XHJcblx0LyoqXHJcblx0ICog6Ziy5oqWXHJcblx0ICpcclxuXHQgKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG5cdCAqIEBwYXJhbSB7IE51bWJlciB9IHdhaXQgIOmYsuaKluWkmuWwkeavq+enklxyXG5cdCAqXHJcblx0ICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcblx0ICogbW92ZSgpeyAgLy8g6ZSZ6K+v6LCD55So5pa55byPXHJcblx0ICogICBkZWJvdW5jZShmdW5jdGlvbiAoKSB7XHJcblx0ICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuXHQgKiB9LCAxMDAwKX3vvIk7XHJcblx0ICog5bqU6K+l55u05o6l5L2/55So77yaLy8g5q2j56Gu6LCD55So5pa55byPXHJcblx0ICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG5cdCAqICAgY29uc29sZS5sb2codGhpcy50aXRsZSk7XHJcblx0ICogfSwgMTAwMClcclxuXHQgKi9cclxuXHRmdW5jdGlvbiBkZWJvdW5jZShmbiwgd2FpdCkge1xyXG5cdFx0bGV0IHRpbWVyID0gZmFsc2U7XHJcblx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XHJcblx0XHRcdGNsZWFyVGltZW91dCh0aW1lcik7XHJcblx0XHRcdHRpbWVyICYmIGNsZWFyVGltZW91dCh0aW1lcik7XHJcblx0XHRcdHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGltZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyDmiorlj4LmlbDkvKDov5vljrtcclxuXHRcdFx0fSwgd2FpdCk7XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZGF0YS1jaGFydHMnLFxyXG5cdFx0bWl4aW5zOiBbdW5pQ2xvdWQubWl4aW5EYXRhY29tXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW52YXNJZDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAndWNoYXJ0c2lkJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW52YXMyZDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0YmFja2dyb3VuZDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuXHRcdFx0fSxcclxuXHRcdFx0YW5pbWF0aW9uOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYXJ0RGF0YToge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdGNhdGVnb3JpZXM6IFtdLFxyXG5cdFx0XHRcdFx0XHRzZXJpZXM6IFtdXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0b3B0czoge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7fTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVvcHRzOiB7XHJcblx0XHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0bG9hZGluZ1R5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdFx0ZGVmYXVsdDogMlxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvclNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3JSZWxvYWQ6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdFx0aW5TY3JvbGxWaWV3OiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbG9hZDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0ZGlzYWJsZVNjcm9sbDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b3B0c1dhdGNoOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG9uem9vbToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b250YXA6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0b250b3VjaDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b25tb3VzZToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbm1vdmV0aXA6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdGVjaGFydHNINToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0ZWNoYXJ0c0FwcDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcFNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcEZvcm1hdDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiB1bmRlZmluZWRcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcEN1c3RvbToge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0OiB1bmRlZmluZWRcclxuXHRcdFx0fSxcclxuXHRcdFx0c3RhcnREYXRlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlbmREYXRlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0ZXh0RW51bToge1xyXG5cdFx0XHRcdHR5cGU6IEFycmF5LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIFtdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRncm91cEVudW06IHtcclxuXHRcdFx0XHR0eXBlOiBBcnJheSxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBbXVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cGFnZVNjcm9sbFRvcDoge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdGRpcmVjdG9yeToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnLydcclxuXHRcdFx0fSxcclxuXHRcdFx0dGFwTGVnZW5kOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG1lbnVzOiB7XHJcblx0XHRcdFx0dHlwZTogQXJyYXksXHJcblx0XHRcdFx0ZGVmYXVsdCAoKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gW11cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdEhlaWdodDoge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAzNDBcclxuXHRcdFx0fSxcclxuXHRcdFx0V2lkdGg6IHtcclxuXHRcdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdFx0ZGVmYXVsdDogMzQwXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNpZDogJ3VjaGFydHNpZCcsXHJcblx0XHRcdFx0aW5XeDogZmFsc2UsXHJcblx0XHRcdFx0aW5BbGk6IGZhbHNlLFxyXG5cdFx0XHRcdGluVHQ6IGZhbHNlLFxyXG5cdFx0XHRcdGluQmQ6IGZhbHNlLFxyXG5cdFx0XHRcdGluSDU6IGZhbHNlLFxyXG5cdFx0XHRcdGluQXBwOiBmYWxzZSxcclxuXHRcdFx0XHRpbldpbjogZmFsc2UsXHJcblx0XHRcdFx0dHlwZTJkOiB0cnVlLFxyXG5cdFx0XHRcdGRpc1Njcm9sbDogZmFsc2UsXHJcblx0XHRcdFx0b3Blbm1vdXNlOiBmYWxzZSxcclxuXHRcdFx0XHRwaXhlbDogMSxcclxuXHRcdFx0XHRjV2lkdGg6IDM0MCxcclxuXHRcdFx0XHRjSGVpZ2h0OiAyNDAsXHJcblx0XHRcdFx0c2hvd2NoYXJ0OiBmYWxzZSxcclxuXHRcdFx0XHRlY2hhcnRzOiBmYWxzZSxcclxuXHRcdFx0XHRlY2hhcnRzUmVzaXplOiB7XHJcblx0XHRcdFx0XHRzdGF0ZTogZmFsc2VcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHVjaGFydHNPcHRzOiB7fSxcclxuXHRcdFx0XHRlY2hhcnRzT3B0czoge30sXHJcblx0XHRcdFx0ZHJhd0RhdGE6IHt9LFxyXG5cdFx0XHRcdGxhc3REcmF3VGltZTogbnVsbCxcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHR0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuXHRcdFx0aWYgKHRoaXMuY2FudmFzSWQgPT0gJ3VjaGFydHNpZCcgfHwgdGhpcy5jYW52YXNJZCA9PSAnJykge1xyXG5cdFx0XHRcdGxldCB0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXHJcblx0XHRcdFx0bGV0IGxlbiA9IHQubGVuZ3RoXHJcblx0XHRcdFx0bGV0IGlkID0gJydcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcclxuXHRcdFx0XHRcdGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuY2lkID0gaWRcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBzeXN0ZW1JbmZvID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKClcclxuXHRcdFx0aWYgKHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG5cdFx0XHRcdHRoaXMuaW5XaW4gPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vICNpZmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0dGhpcy5pbld4ID0gdHJ1ZTtcclxuXHRcdFx0aWYgKHRoaXMuY2FudmFzMmQgPT09IGZhbHNlIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG5cdFx0XHRcdHRoaXMudHlwZTJkID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy50eXBlMmQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMucGl4ZWwgPSBzeXN0ZW1JbmZvLnBpeGVsUmF0aW87XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8v6Z2e5b6u5L+h5bCP56iL5bqP56uv5by65Yi25YWz6ZetY2FudmFzMmTmqKHlvI9cclxuXHRcdFx0Ly8gI2lmbmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0dGhpcy50eXBlMmQgPSBmYWxzZTtcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8vICNpZmRlZiAgTVAtVE9VVElBTyB8fCBNUC1MQVJLIHx8IE1QLUFMSVBBWVxyXG5cdFx0XHR0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgTVAtQUxJUEFZXHJcblx0XHRcdHRoaXMuaW5BbGkgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0Ly8gI2lmZGVmIE1QLUJBSURVXHJcblx0XHRcdHRoaXMuaW5CZCA9IHRydWU7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG5cdFx0XHR0aGlzLmluVHQgPSB0cnVlO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtVlVFXHJcblx0XHRcdHRoaXMuaW5BcHAgPSB0cnVlO1xyXG5cdFx0XHRpZiAodGhpcy5lY2hhcnRzQXBwID09PSB0cnVlKSB7XHJcblx0XHRcdFx0dGhpcy5lY2hhcnRzID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLU5WVUVcclxuXHRcdFx0dGhpcy5pbkFwcCA9IHRydWU7XHJcblx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlXHJcblx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHR0aGlzLmluSDUgPSB0cnVlO1xyXG5cdFx0XHRpZiAodGhpcy5pbldpbiA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmVjaGFydHNINSA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdHRoaXMuY1dpZHRoID0gdGhpcy5XaWR0aCA/IHRoaXMuV2lkdGggOiB0aGlzLmNXaWR0aDtcclxuXHRcdFx0dGhpcy5jSGVpZ2h0ID0gdGhpcy5IZWlnaHQgPyB0aGlzLkhlaWdodCA6IHRoaXMuY0hlaWdodDtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuYmVmb3JlSW5pdCgpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWSB8fCBNUC1CQUlEVSB8fCBNUC1UT1VUSUFPIHx8IEFQUC1WVUVcclxuXHRcdFx0Y29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuXHRcdFx0Y29uc3QgX3RoaXMgPSB0aGlzO1xyXG5cdFx0XHR1bmkub25XaW5kb3dSZXNpemUoXHJcblx0XHRcdFx0ZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRpZiAoX3RoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGxldCBlcnJtc2cgPSBfdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2U7XHJcblx0XHRcdFx0XHRpZiAoZXJybXNnICE9PSBudWxsICYmIGVycm1zZyAhPT0gJ251bGwnICYmIGVycm1zZyAhPT0gJycpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKF90aGlzLmVjaGFydHMpIHtcclxuXHRcdFx0XHRcdFx0X3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0X3RoaXMucmVzaXplSGFuZGxlcigpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIHRpbWUpXHJcblx0XHRcdCk7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdGRlc3Ryb3llZCgpIHtcclxuXHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdGRlbGV0ZSBjZmUub3B0aW9uW3RoaXMuY2lkXVxyXG5cdFx0XHRcdGRlbGV0ZSBjZmUuaW5zdGFuY2VbdGhpcy5jaWRdXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5jaWRdXHJcblx0XHRcdFx0ZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWSB8fCBNUC1CQUlEVSB8fCBNUC1UT1VUSUFPXHJcblx0XHRcdHVuaS5vZmZXaW5kb3dSZXNpemUoKCkgPT4ge30pXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdGNoYXJ0RGF0YVByb3BzOiB7XHJcblx0XHRcdFx0aGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0XHRcdGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2xlYXJDaGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh2YWwuc2VyaWVzICYmIHZhbC5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5iZWZvcmVJbml0KCk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yaY2hhcnREYXRh5pWw5o2u57G75Z6L6ZSZ6K+vJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGltbWVkaWF0ZTogZmFsc2UsXHJcblx0XHRcdFx0ZGVlcDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRsb2NhbGRhdGE6IHtcclxuXHRcdFx0XHRoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcblx0XHRcdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodmFsLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmJlZm9yZUluaXQoKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0aW1tZWRpYXRlOiBmYWxzZSxcclxuXHRcdFx0XHRkZWVwOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG9wdHNQcm9wczoge1xyXG5cdFx0XHRcdGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRcdGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09XHJcblx0XHRcdFx0XHRcdFx0dHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5fY2xlYXJDaGFydCgpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpvcHRz5pWw5o2u57G75Z6L6ZSZ6K+vJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGltbWVkaWF0ZTogZmFsc2UsXHJcblx0XHRcdFx0ZGVlcDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlb3B0c1Byb3BzOiB7XHJcblx0XHRcdFx0aGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0XHRcdGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpICYmIHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yaZW9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0aW1tZWRpYXRlOiBmYWxzZSxcclxuXHRcdFx0XHRkZWVwOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlc2hvdyh2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0dGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcblx0XHRcdFx0XHR9LCAyMDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cmVsb2FkKHZhbCwgb2xkdmFsKSB7XHJcblx0XHRcdFx0aWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkaW5nKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRpZiAodmFsKSB7XHJcblx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcImVycm9yXCIsXHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JTaG93OiB0aGlzLmVycm9yU2hvdyxcclxuXHRcdFx0XHRcdFx0XHRtc2c6IHZhbCxcclxuXHRcdFx0XHRcdFx0XHRpZDogdGhpcy5jaWRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5lcnJvclNob3cpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRpZiAodmFsICYmIHRoaXMuZXJyb3JTaG93ICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09ICdudWxsJyAmJiB2YWwgIT09ICcnKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IHZhbDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkaW5nKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0b3B0c1Byb3BzKCkge1xyXG5cdFx0XHRcdHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRlb3B0c1Byb3BzKCkge1xyXG5cdFx0XHRcdHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhcnREYXRhUHJvcHMoKSB7XHJcblx0XHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGJlZm9yZUluaXQoKSB7XHJcblx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdGlmICh0eXBlb2YgdGhpcy5jaGFydERhdGEgPT09ICdvYmplY3QnICYmIHRoaXMuY2hhcnREYXRhICE9IG51bGwgJiYgdGhpcy5jaGFydERhdGEuc2VyaWVzICE9PSB1bmRlZmluZWQgJiZcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnREYXRhLnNlcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHQvL+aLt+i0neS4gOS4i2NoYXJ0RGF0Ye+8jOS4uuS6hm9wdHPlj5jmm7TlkI7nu5/kuIDmlbDmja7mnaXmupBcclxuXHRcdFx0XHRcdHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5sb2NhbGRhdGEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IHRydWU7XHJcblx0XHRcdFx0XHR0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5sb2NhbGRhdGEpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLmdldENsb3VkRGF0YSgpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0bG9jYWxkYXRhSW5pdChyZXNkYXRhKSB7XHJcblx0XHRcdFx0Ly/mm7/mjaJlbnVt57G75Z6L5Li65q2j56Gu55qE5o+P6L+wXHJcblx0XHRcdFx0aWYgKHRoaXMuZ3JvdXBFbnVtLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZ3JvdXBFbnVtLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc2RhdGFbaV0uZ3JvdXAgPT09IHRoaXMuZ3JvdXBFbnVtW2pdLnZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXNkYXRhW2ldLmdyb3VwID0gdGhpcy5ncm91cEVudW1bal0udGV4dFxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy50ZXh0RW51bS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnRleHRFbnVtLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc2RhdGFbaV0udGV4dCA9PT0gdGhpcy50ZXh0RW51bVtqXS52YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmVzZGF0YVtpXS50ZXh0ID0gdGhpcy50ZXh0RW51bVtqXS50ZXh0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG5cdFx0XHRcdGxldCB0bXBEYXRhID0ge1xyXG5cdFx0XHRcdFx0Y2F0ZWdvcmllczogW10sXHJcblx0XHRcdFx0XHRzZXJpZXM6IFtdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuXHRcdFx0XHRsZXQgdG1wc2VyaWVzID0gW107XHJcblx0XHRcdFx0Ly/mi7zmjqVjYXRlZ29yaWVzXHJcblx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0bmVlZENhdGVnb3JpZXMgPSBjZmUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG5lZWRDYXRlZ29yaWVzID0gY2Z1LmNhdGVnb3JpZXMuaW5jbHVkZXModGhpcy50eXBlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAobmVlZENhdGVnb3JpZXMgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMgPSB0aGlzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQvL+WmguaenOaYr+aXpeacn+exu+Wei+eahOaVsOaNru+8jOS4jeeuoeaYr+acrOWcsOaVsOaNrui/mOaYr+S6keaVsOaNru+8jOmDveaMiei1t+atouaXpeacn+iHquWKqOaLvOaOpWNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc3RhcnREYXRlICYmIHRoaXMuZW5kRGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBpZGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKVxyXG5cdFx0XHRcdFx0XHRcdGxldCBlZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSlcclxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMucHVzaChnZXRGb3JtYXREYXRlKGlkYXRlKSlcclxuXHRcdFx0XHRcdFx0XHRcdGlkYXRlID0gaWRhdGUuc2V0RGF0ZShpZGF0ZS5nZXREYXRlKCkgKyAxKVxyXG5cdFx0XHRcdFx0XHRcdFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHRlbXBja2V5ID0ge307XHJcblx0XHRcdFx0XHRcdFx0cmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLnRleHQgIT0gdW5kZWZpbmVkICYmICF0ZW1wY2tleVtpdGVtLnRleHRdKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRlbXBja2V5W2l0ZW0udGV4dF0gPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly/mi7zmjqVzZXJpZXNcclxuXHRcdFx0XHRsZXQgdGVtcHNrZXkgPSB7fTtcclxuXHRcdFx0XHRyZXNkYXRhLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0uZ3JvdXAgIT0gdW5kZWZpbmVkICYmICF0ZW1wc2tleVtpdGVtLmdyb3VwXSkge1xyXG5cdFx0XHRcdFx0XHR0bXBzZXJpZXMucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogaXRlbS5ncm91cCxcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBbXVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0dGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcblx0XHRcdFx0aWYgKHRtcHNlcmllcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0dG1wc2VyaWVzID0gW3tcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+m7mOiupOWIhue7hCcsXHJcblx0XHRcdFx0XHRcdGRhdGE6IFtdXHJcblx0XHRcdFx0XHR9XTtcclxuXHRcdFx0XHRcdC8v5aaC5p6c5piv6ZyA6KaBY2F0ZWdvcmllc+eahOWbvuihqOexu+Wei1xyXG5cdFx0XHRcdFx0aWYgKG5lZWRDYXRlZ29yaWVzID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgdG1wY2F0ZWdvcmllcy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBzZXJpZXNkYXRhID0gMDtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXNkYXRhW2ldLnRleHQgPT0gdG1wY2F0ZWdvcmllc1tqXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzWzBdLmRhdGEucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcIm5hbWVcIjogcmVzZGF0YVtpXS50ZXh0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlXHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8v5aaC5p6c5pyJ5YiG57uE5ZCNXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcblx0XHRcdFx0XHRcdC8v5aaC5p6c5pyJY2F0ZWdvcmllc1xyXG5cdFx0XHRcdFx0XHRpZiAodG1wY2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgc2VyaWVzZGF0YSA9IDA7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzW2tdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly/lpoLmnpzkvKDkuoZncm91cOiAjOayoeacieS8oHRleHTvvIzljbPmsqHmnIljYXRlZ29yaWVz77yI5q2j5bi45oOF5Ya15LiL6L+Z56eN5pWw5o2u5piv5LiN56ym5ZCI5pWw5o2u6KaB5rGC6KeE6IyD55qE77yJXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodG1wc2VyaWVzW2tdLm5hbWUgPT0gcmVzZGF0YVtpXS5ncm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0bXBzZXJpZXNba10uZGF0YS5wdXNoKHJlc2RhdGFbaV0udmFsdWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0bXBEYXRhLnNlcmllcyA9IHRtcHNlcmllc1xyXG5cdFx0XHRcdC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG5cdFx0XHRcdHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRtcERhdGEpO1xyXG5cdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRtcERhdGEpXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbG9hZGluZygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5lcnJvclJlbG9hZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpIHtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5vbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKHRydWUpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmJlZm9yZUluaXQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0Ly/lpI3kvY1vcHRz5oiWZW9wdHNcclxuXHRcdFx0XHRpZiAodGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0gPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuZW9wdHMpO1xyXG5cdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG5cdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnR5cGUgPSB0aGlzLnR5cGU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnR5cGUgJiYgY2Z1LnR5cGUuaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG5cdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSBkZWVwQ2xvbmVBc3NpZ24oe30sIGNmdVt0aGlzLnR5cGVdLCB0aGlzLm9wdHMpO1xyXG5cdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yacHJvcHPlj4LmlbDkuK10eXBl57G75Z6L5LiN5q2j56GuJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcblx0XHRcdFx0bGV0IG5ld0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIGFueURhdGEpO1xyXG5cdFx0XHRcdGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcblx0XHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluaXQoKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNhdGVnb3JpZXMgPSBuZXdEYXRhLmNhdGVnb3JpZXM7XHJcblx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5zZXJpZXMgPSBuZXdEYXRhLnNlcmllcztcclxuXHRcdFx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5pdCgpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXNpemVIYW5kbGVyKCkge1xyXG5cdFx0XHRcdC8v5riy5p+T6Ziy5oqWXHJcblx0XHRcdFx0bGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuXHRcdFx0XHRsZXQgbGFzdERyYXdUaW1lID0gdGhpcy5sYXN0RHJhd1RpbWUgPyB0aGlzLmxhc3REcmF3VGltZSA6IGN1cnJUaW1lIC0gMzAwMDtcclxuXHRcdFx0XHRsZXQgZHVyYXRpb24gPSBjdXJyVGltZSAtIGxhc3REcmF3VGltZTtcclxuXHRcdFx0XHRpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IGNoYXJ0ZG9tID0gdW5pXHJcblx0XHRcdFx0XHQuY3JlYXRlU2VsZWN0b3JRdWVyeSgpXHJcblx0XHRcdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG5cdFx0XHRcdFx0LmluKHRoaXMpXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC5zZWxlY3QoJyNDaGFydEJveElkJyArIHRoaXMuY2lkKVxyXG5cdFx0XHRcdFx0LmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGEud2lkdGggIT09IHRoaXMuY1dpZHRoIHx8IGRhdGEuaGVpZ2h0ICE9PSB0aGlzLmNIZWlnaHQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmV4ZWMoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0Q2xvdWREYXRhKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tR2V0KClcclxuXHRcdFx0XHRcdC50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tUmVzRGF0YSA9IHJlcy5yZXN1bHQuZGF0YTtcclxuXHRcdFx0XHRcdFx0dGhpcy5sb2NhbGRhdGFJbml0KHRoaXMubWl4aW5EYXRhY29tUmVzRGF0YSk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfor7fmsYLplJnor6/vvJonICsgZXJyO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UobmVlZFJlc2V0LCBjaGFuZ2VkKSB7XHJcblx0XHRcdFx0aWYgKG5lZWRSZXNldCA9PSB0cnVlICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gJycpIHtcclxuXHRcdFx0XHRcdHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcblx0XHRcdFx0XHR0aGlzLl9jbGVhckNoYXJ0KCk7XHJcblx0XHRcdFx0XHR0aGlzLmdldENsb3VkRGF0YSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X2NsZWFyQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyAhPT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoICogdGhpcy5waXhlbCwgdGhpcy5jSGVpZ2h0ICogdGhpcy5waXhlbCk7XHJcblx0XHRcdFx0XHRcdGN0eC5kcmF3KCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbml0KCkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGxldCBjaGFydGRvbSA9IHVuaVxyXG5cdFx0XHRcdFx0LmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG5cdFx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdC5pbih0aGlzKVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHQuc2VsZWN0KCcjQ2hhcnRCb3hJZCcgKyBjaWQpXHJcblx0XHRcdFx0XHQuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubGFzdERyYXdUaW1lID0gRGF0ZS5ub3coKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5jSGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyAhPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmQgPT0gJ3JnYmEoMCwwLDAsMCknID8gJyNGRkZGRkYnIDogdGhpc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQuYmFja2dyb3VuZDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jYW52YXMyZCA9IHRoaXMudHlwZTJkO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnBpeGVsUmF0aW8gPSB0aGlzLnBpeGVsO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLndpZHRoID0gZGF0YS53aWR0aCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9udGFwID0gdGhpcy5vbnRhcDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoID0gdGhpcy5vbnRvdWNoO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5vbm1vdmV0aXAgPSB0aGlzLm9ubW92ZXRpcDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmluU2Nyb2xsVmlldyA9IHRoaXMuaW5TY3JvbGxWaWV3O1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnRhcExlZ2VuZCA9IHRoaXMudGFwTGVnZW5kO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHQvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5pbkg1IHx8IHRoaXMuaW5BcHApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0ub25tb3VzZSA9IHRoaXMub3Blbm1vdXNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPSB0aGlzLnRvb2x0aXBTaG93O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b20gPSB0aGlzLnRvb2x0aXBDdXN0b207XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXS5sYXN0RHJhd1RpbWUgPSB0aGlzLmxhc3REcmF3VGltZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSBmb3JtYXR0ZXJBc3NpZ24oY2Z1Lm9wdGlvbltjaWRdLCBjZnUuZm9ybWF0dGVyKVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnR5cGUyZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHF1ZXJ5XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQuc2VsZWN0KCcjJyArIGNpZClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC5maWVsZHMoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaXplOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0LmV4ZWMocmVzID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc1swXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IHJlc1swXS5ub2RlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udXBkYXRlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhbnZhcy5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMuX3dpZHRoID0gZGF0YS53aWR0aCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSwgMTAwKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCflj4LmlbDplJnor6/vvJrlvIDlkK8yZOaooeW8j+WQju+8jOacquiOt+WPluWIsGRvbeiKgueCue+8jGNhbnZhcy1pZDonICsgY2lkO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5pbkFsaSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY29udGV4dCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KGNpZCwgdGhpcyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9uZXdDaGFydChjaWQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9LCAxMDApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfluIPlsYDplJnor6/vvJrmnKrojrflj5bliLDniLblhYPntKDlrr3pq5jlsLrlr7jvvIFjYW52YXMtaWQ6JyArIGNpZDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuZXhlYygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzYXZlSW1hZ2UoKSB7XHJcblx0XHRcdFx0dW5pLmNhbnZhc1RvVGVtcEZpbGVQYXRoKHtcclxuXHRcdFx0XHRcdGNhbnZhc0lkOiB0aGlzLmNpZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdC8vI2lmZGVmIEg1XHJcblx0XHRcdFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcblx0XHRcdFx0XHRcdGEuaHJlZiA9IHJlcy50ZW1wRmlsZVBhdGg7XHJcblx0XHRcdFx0XHRcdGEuZG93bmxvYWQgPSB0aGlzLmNpZDtcclxuXHRcdFx0XHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG5cdFx0XHRcdFx0XHRhLmNsaWNrKCk7XHJcblx0XHRcdFx0XHRcdC8vI2VuZGlmXHJcblx0XHRcdFx0XHRcdC8vI2lmbmRlZiBINVxyXG5cdFx0XHRcdFx0XHR1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcblx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfkv53lrZjmiJDlip8nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Ly8jZW5kaWZcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LCB0aGlzKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0SW1hZ2UoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudHlwZTJkID09IGZhbHNlKSB7XHJcblx0XHRcdFx0XHR1bmkuY2FudmFzVG9UZW1wRmlsZVBhdGgoe1xyXG5cdFx0XHRcdFx0XHRjYW52YXNJZDogdGhpcy5jaWQsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6ICdnZXRJbWFnZScsXHJcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbWFnZVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRiYXNlNjQ6IHJlcy50ZW1wRmlsZVBhdGhcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSwgdGhpcyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG5cdFx0XHRcdFx0cXVlcnlcclxuXHRcdFx0XHRcdFx0LnNlbGVjdCgnIycgKyB0aGlzLmNpZClcclxuXHRcdFx0XHRcdFx0LmZpZWxkcyh7XHJcblx0XHRcdFx0XHRcdFx0bm9kZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRzaXplOiB0cnVlXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdC5leGVjKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc1swXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgY2FudmFzID0gcmVzWzBdLm5vZGU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAnZ2V0SW1hZ2UnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImdldEltYWdlXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YmFzZTY0OiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gI2lmbmRlZiBBUFAtVlVFIHx8IEg1XHJcblx0XHRcdF9uZXdDaGFydChjaWQpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHMoY2Z1Lm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdjb21wbGV0ZScsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5kZWxFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScpXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdzY3JvbGxMZWZ0JyxcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJzY3JvbGxMZWZ0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsTGVmdDogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnc2Nyb2xsUmlnaHQnLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcInNjcm9sbFJpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsUmlnaHQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdXBkYXRhVUNoYXJ0KGNpZCkge1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnVwZGF0ZURhdGEoY2Z1Lm9wdGlvbltjaWRdKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcblx0XHRcdFx0aWYgKGNhdGVnb3J5KSB7XHJcblx0XHRcdFx0XHRsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpIHtcclxuXHRcdFx0XHRcdFx0ZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWU7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X3Nob3dUb29sdGlwKGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5jaWRcclxuXHRcdFx0XHRsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG5cdFx0XHRcdGlmICh0YyAmJiB0YyAhPT0gdW5kZWZpbmVkICYmIHRjICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRcdFx0aWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuXHRcdFx0XHRcdFx0b2Zmc2V0ID0ge1xyXG5cdFx0XHRcdFx0XHRcdHg6IHRjLngsXHJcblx0XHRcdFx0XHRcdFx0eTogdGMueSArIDEwXHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcblx0XHRcdFx0XHRcdGluZGV4OiB0Yy5pbmRleCxcclxuXHRcdFx0XHRcdFx0b2Zmc2V0OiBvZmZzZXQsXHJcblx0XHRcdFx0XHRcdHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRvcHRzKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5fdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X3RhcChlLCBtb3ZlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0bGV0IGN1cnJlbnRJbmRleCA9IG51bGw7XHJcblx0XHRcdFx0bGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHRpZiAodGhpcy5pblNjcm9sbFZpZXcgPT09IHRydWUgfHwgdGhpcy5pbkFsaSkge1xyXG5cdFx0XHRcdFx0bGV0IGNoYXJ0ZG9tID0gdW5pXHJcblx0XHRcdFx0XHRcdC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuXHRcdFx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdFx0LmluKHRoaXMpXHJcblx0XHRcdFx0XHRcdC5zZWxlY3QoJyNDaGFydEJveElkJyArIGNpZClcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdC8vICNpZmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdFx0LnNlbGVjdCgnIycgKyB0aGlzLmNpZClcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmluQWxpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC5jbGllbnRYIC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC5jbGllbnRZIC0gZGF0YS50b3BcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3BcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAobW92ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcblx0XHRcdFx0XHRcdFx0XHRsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS50b3VjaExlZ2VuZChlKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2dldEluZGV4JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50OiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIGRhdGEudG9wXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0LmV4ZWMoKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKG1vdmUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCxcclxuXHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC55IC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Y3VycmVudEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuXHRcdFx0XHRcdFx0bGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZ2V0SW5kZXgnLFxyXG5cdFx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQ6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogZS5kZXRhaWwueCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3BcclxuXHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdGxlZ2VuZEluZGV4OiBsZWdlbmRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdF90b3VjaFN0YXJ0KGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5jaWRcclxuXHRcdFx0XHRsYXN0TW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG5cdFx0XHRcdGlmIChjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRuYW1lOiAnZ2V0VG91Y2hTdGFydCcsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJ0b3VjaFN0YXJ0XCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiBlLmNoYW5nZWRUb3VjaGVzWzBdLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdF90b3VjaE1vdmUoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG5cdFx0XHRcdGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIGxhc3RNb3ZlVGltZTtcclxuXHRcdFx0XHRsZXQgdG91Y2hNb3ZlTGltaXQgPSBjZnUub3B0aW9uW2NpZF0udG91Y2hNb3ZlTGltaXQgfHwgMjQ7XHJcblx0XHRcdFx0aWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47IC8v5q+P56eSNjDluKdcclxuXHRcdFx0XHRsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fdGFwKGUsIHRydWUpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm9udG91Y2ggPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiB0aGlzLm9uem9vbSA9PT0gdHJ1ZSAmJiBlXHJcblx0XHRcdFx0XHQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoID09IDIpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmRvYnVsZVpvb20oZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRuYW1lOiAnZ2V0VG91Y2hNb3ZlJyxcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcInRvdWNoTW92ZVwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogZS5jaGFuZ2VkVG91Y2hlc1swXSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdG91Y2hFbmQoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGlmIChjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsRW5kKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0bmFtZTogJ2dldFRvdWNoRW5kJyxcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcInRvdWNoRW5kXCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiBlLmNoYW5nZWRUb3VjaGVzWzBdLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0aWYgKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RhcChlLCB0cnVlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdF9lcnJvcihlKSB7XHJcblx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcblx0XHRcdH0sXHJcblx0XHRcdGVtaXRNc2cobXNnKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFJlbmRlclR5cGUoKSB7XHJcblx0XHRcdFx0Ly/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG5cdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5iZWZvcmVJbml0KClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHRvSlNPTigpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpc1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fTtcclxuPC9zY3JpcHQ+XHJcblxyXG48IS0tICNpZmRlZiBBUFAtVlVFIHx8IEg1IC0tPlxyXG48c2NyaXB0IG1vZHVsZT1cInJkY2hhcnRzXCIgbGFuZz1cInJlbmRlcmpzXCI+XHJcblx0aW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5cdGltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuXHRpbXBvcnQgY2ZlIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctZWNoYXJ0cy5qcyc7XHJcblxyXG5cdHZhciB0aGF0ID0ge307XHJcblx0dmFyIHJvb3Rkb20gPSBudWxsO1xyXG5cclxuXHRmdW5jdGlvbiByZGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG5cdFx0Zm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcblx0XHRcdGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcblx0XHRcdFx0aWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdFx0b3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbXHJcblx0XHRcdFx0XHRcdGldW2tleV0pID8gW10gOiB7fSwgb3JpZ2luW2tleV0sIGFyZ3NbaV1ba2V5XSkgOiBhcmdzW2ldW2tleV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gb3JpZ2luO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gcmRmb3JtYXR0ZXJBc3NpZ24oYXJncywgZm9ybWF0dGVyKSB7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gYXJncykge1xyXG5cdFx0XHRpZiAoYXJncy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGFyZ3Nba2V5XSAhPT0gbnVsbCAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdHJkZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSwgZm9ybWF0dGVyKVxyXG5cdFx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBhcmdzO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRyaWQ6IG51bGxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdHJvb3Rkb20gPSB7XHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDBcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdFx0bGV0IGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLW1haW4nKVswXVxyXG5cdFx0XHRpZiAoZG0gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLXBhZ2Utd3JhcHBlcicpWzBdXHJcblx0XHRcdH1cclxuXHRcdFx0cm9vdGRvbSA9IHtcclxuXHRcdFx0XHR0b3A6IGRtLm9mZnNldFRvcCxcclxuXHRcdFx0XHRsZWZ0OiBkbS5vZmZzZXRMZWZ0XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnJpZCA9PT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgMjAwKVxyXG5cdFx0fSxcclxuXHRcdGRlc3Ryb3llZCgpIHtcclxuXHRcdFx0ZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcblx0XHRcdGRlbGV0ZSBjZnUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcblx0XHRcdGRlbGV0ZSBjZmUub3B0aW9uW3RoaXMucmlkXVxyXG5cdFx0XHRkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG5cdFx0XHRlY2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSBKU09OLnN0cmluZ2lmeShuZXdWYWwuaWQpXHJcblx0XHRcdFx0dGhpcy5yaWQgPSBjaWRcclxuXHRcdFx0XHR0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcblx0XHRcdFx0bGV0IGVvcHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG5cdFx0XHRcdGxldCB0eXBlID0gZW9wdHMudHlwZTtcclxuXHRcdFx0XHQvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG5cdFx0XHRcdGlmICh0eXBlICYmIGNmZS50eXBlLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0gPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlW3R5cGVdLCBlb3B0cyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBlb3B0cyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCBuZXdEYXRhID0gZW9wdHMuY2hhcnREYXRhO1xyXG5cdFx0XHRcdGlmIChuZXdEYXRhKSB7XHJcblx0XHRcdFx0XHQvL+aMgui9vWNhdGVnb3JpZXPlkoxzZXJpZXNcclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ueEF4aXMgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnhBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ueUF4aXMgJiYgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLnR5cGUgJiYgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnlBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXS5zZXJpZXMgPSBbXVxyXG5cdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBuZXdEYXRhLnNlcmllcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOlxyXG5cdFx0XHRcdFx0XHR7fVxyXG5cdFx0XHRcdFx0XHRsZXQgVGVtcGxhdGUgPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLCBuZXdEYXRhLnNlcmllc1tpXSlcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRcdHRoaXMubmV3RUNoYXJ0KClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtVlVFXHJcblx0XHRcdFx0XHRzY3JpcHQuc3JjID0gJy4vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9zdGF0aWMvYXBwLXBsdXMvZWNoYXJ0cy5taW4uanMnXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHRcdFx0Y29uc3Qgcm9vdHVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cclxuXHRcdFx0XHRcdGNvbnN0IGRpcmVjdG9yeSA9IGluc3RhbmNlLmdldERhdGFzZXQoKS5kaXJlY3RvcnlcclxuXHRcdFx0XHRcdHNjcmlwdC5zcmMgPSByb290dXJsICsgZGlyZWN0b3J5ICsgJ3VuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvc3RhdGljL2g1L2VjaGFydHMubWluLmpzJ1xyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuXHRcdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZWNyZXNpemUobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSkge1xyXG5cdFx0XHRcdGlmIChjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKSB7XHJcblx0XHRcdFx0XHRjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRuZXdFQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0aWYgKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcblx0XHRcdFx0XHQvL29udGFw5byA5ZCv5ZCO5omN6Kem5Y+RY2xpY2vkuovku7ZcclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ub250YXAgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLmluc3RhbmNlW2NpZF0ub24oJ2NsaWNrJywgcmVzZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGV2ZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0XHRcdFx0XHR4OiByZXNkYXRhLmV2ZW50Lm9mZnNldFgsXHJcblx0XHRcdFx0XHRcdFx0XHR5OiByZXNkYXRhLmV2ZW50Lm9mZnNldFlcclxuXHRcdFx0XHRcdFx0XHR9KSlcclxuXHRcdFx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0SW5kZXhcIixcclxuXHRcdFx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImdldEluZGV4XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50OiBldmVudCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudEluZGV4OiByZXNkYXRhLmRhdGFJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IHJlc2RhdGEuZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2VyaWVzTmFtZTogcmVzZGF0YS5zZXJpZXNOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogY2lkXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0Ly8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcblx0XHRcdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdoaWdobGlnaHQnLCByZXNkYXRhID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0SGlnaGxpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJoaWdobGlnaHRcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVzOiByZXNkYXRhLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogY2lkXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMudXBkYXRhRUNoYXJ0KGNpZCwgY2ZlLm9wdGlvbltjaWRdKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0YUVDaGFydChjaWQsIGNmZS5vcHRpb25bY2lkXSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHVwZGF0YUVDaGFydChjaWQsIG9wdGlvbikge1xyXG5cdFx0XHRcdC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcblx0XHRcdFx0b3B0aW9uID0gcmRmb3JtYXR0ZXJBc3NpZ24ob3B0aW9uLCBjZmUuZm9ybWF0dGVyKVxyXG5cdFx0XHRcdGlmIChvcHRpb24udG9vbHRpcCkge1xyXG5cdFx0XHRcdFx0b3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdyA/IHRydWUgOiBmYWxzZTtcclxuXHRcdFx0XHRcdG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG5cdFx0XHRcdFx0Ly90b29sdGlwRm9ybWF05pa55rOV77yM5pu/5o2i57uE5Lu255qEdG9vbHRpcEZvcm1hdOS4umNvbmZpZy1lY2hhcnRzLmpz5YaF5a+55bqU55qE5pa55rOVXHJcblx0XHRcdFx0XHRpZiAodHlwZW9mIG9wdGlvbi50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XSkge1xyXG5cdFx0XHRcdFx0XHRvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW1xyXG5cdFx0XHRcdFx0XHRcdG9wdGlvbi50b29sdGlwRm9ybWF0XVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuXHRcdFx0XHRpZiAob3B0aW9uLnNlcmllcykge1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSBpbiBvcHRpb24uc2VyaWVzKSB7XHJcblx0XHRcdFx0XHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuXHRcdFx0XHRcdFx0aWYgKGxpbmVhckdyYWRpZW50KSB7XHJcblx0XHRcdFx0XHRcdFx0b3B0aW9uLnNlcmllc1tpXS5jb2xvciA9IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQobGluZWFyR3JhZGllbnRbMF0sIGxpbmVhckdyYWRpZW50W1xyXG5cdFx0XHRcdFx0XHRcdFx0MV0sIGxpbmVhckdyYWRpZW50WzJdLCBsaW5lYXJHcmFkaWVudFszXSwgbGluZWFyR3JhZGllbnRbNF0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG5cdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdmaW5pc2hlZCcsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJjb21wbGV0ZVwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBjaWRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdGlmIChjZmUuaW5zdGFuY2VbY2lkXSkge1xyXG5cdFx0XHRcdFx0XHRjZmUuaW5zdGFuY2VbY2lkXS5vZmYoJ2ZpbmlzaGVkJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0Ly/kv67lpI1pbml05Yid5aeL5YyW5a6e5L6L6I635Y+W5a696auY5LiN5q2j56Gu6Zeu6aKYXHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0dHlwZW9mIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggIT0gJ3VuZGVmaW5lZCcgJiZcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0TWF0aC5hYnModGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldFdpZHRoKCkpID4gMyB8fFxyXG5cdFx0XHRcdFx0XHRNYXRoLmFicyh0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldEhlaWdodCgpKSA+IDNcclxuXHRcdFx0XHRcdClcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZWNyZXNpemUoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHRvb2x0aXBQb3NpdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gKHBvaW50LCBwYXJhbXMsIGRvbSwgcmVjdCwgc2l6ZSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IHggPSBwb2ludFswXVxyXG5cdFx0XHRcdFx0bGV0IHkgPSBwb2ludFsxXVxyXG5cdFx0XHRcdFx0bGV0IHZpZXdXaWR0aCA9IHNpemUudmlld1NpemVbMF1cclxuXHRcdFx0XHRcdGxldCB2aWV3SGVpZ2h0ID0gc2l6ZS52aWV3U2l6ZVsxXVxyXG5cdFx0XHRcdFx0bGV0IGJveFdpZHRoID0gc2l6ZS5jb250ZW50U2l6ZVswXVxyXG5cdFx0XHRcdFx0bGV0IGJveEhlaWdodCA9IHNpemUuY29udGVudFNpemVbMV1cclxuXHRcdFx0XHRcdGxldCBwb3NYID0geCArIDMwXHJcblx0XHRcdFx0XHRsZXQgcG9zWSA9IHkgKyAzMFxyXG5cdFx0XHRcdFx0aWYgKHBvc1ggKyBib3hXaWR0aCA+IHZpZXdXaWR0aCkge1xyXG5cdFx0XHRcdFx0XHRwb3NYID0geCAtIGJveFdpZHRoIC0gMzBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChwb3NZICsgYm94SGVpZ2h0ID4gdmlld0hlaWdodCkge1xyXG5cdFx0XHRcdFx0XHRwb3NZID0geSAtIGJveEhlaWdodCAtIDMwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gW3Bvc1gsIHBvc1ldXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLz09PT09PT09PT09PT095Lul5LiL5pivdUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcblx0XHRcdHVjaW5pdChuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKSB7XHJcblx0XHRcdFx0aWYgKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgPT0gSlNPTi5zdHJpbmdpZnkob2xkVmFsKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIW5ld1ZhbC5jYW52YXNJZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgY2lkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwuY2FudmFzSWQpKVxyXG5cdFx0XHRcdHRoaXMucmlkID0gY2lkXHJcblx0XHRcdFx0dGhhdFtjaWRdID0gdGhpcy4kb3duZXJJbnN0YW5jZSB8fCBpbnN0YW5jZVxyXG5cdFx0XHRcdGNmdS5vcHRpb25bY2lkXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuXHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSByZGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sIGNmdS5mb3JtYXR0ZXIpXHJcblx0XHRcdFx0bGV0IGNhbnZhc2RvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpZClcclxuXHRcdFx0XHRpZiAoY2FudmFzZG9tICYmIGNhbnZhc2RvbS5jaGlsZHJlblswXSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSBjYW52YXNkb20uY2hpbGRyZW5bMF0uZ2V0Q29udGV4dChcIjJkXCIpXHJcblx0XHRcdFx0XHRpZiAoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGFVQ2hhcnQoKVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG5cdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm5ld1VDaGFydCgpXHJcblx0XHRcdFx0XHRcdH0sIDEwMClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdG5ld1VDaGFydCgpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzUkQoY2Z1Lm9wdGlvbltjaWRdKVxyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJjb21wbGV0ZVwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJzY3JvbGxMZWZ0XCIsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwic2Nyb2xsTGVmdFwiLFxyXG5cdFx0XHRcdFx0XHRcdHNjcm9sbExlZnQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJzY3JvbGxSaWdodFwiLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcInNjcm9sbFJpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsUmlnaHQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHVwZGF0YVVDaGFydCgpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcblx0XHRcdFx0aWYgKGNhdGVnb3J5KSB7XHJcblx0XHRcdFx0XHRsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpIHtcclxuXHRcdFx0XHRcdFx0ZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWU7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2hvd1Rvb2x0aXAoZSwgY2lkKSB7XHJcblx0XHRcdFx0bGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuXHRcdFx0XHRpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0bGV0IG9mZnNldCA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHRcdGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcblx0XHRcdFx0XHRcdG9mZnNldCA9IHtcclxuXHRcdFx0XHRcdFx0XHR4OiB0Yy54LFxyXG5cdFx0XHRcdFx0XHRcdHk6IHRjLnkgKyAxMFxyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRpbmRleDogdGMuaW5kZXgsXHJcblx0XHRcdFx0XHRcdG9mZnNldDogb2Zmc2V0LFxyXG5cdFx0XHRcdFx0XHR0ZXh0TGlzdDogdGMudGV4dExpc3QsXHJcblx0XHRcdFx0XHRcdGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0b3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0YXAoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLnJpZFxyXG5cdFx0XHRcdGxldCBvbnRhcCA9IGNmdS5vcHRpb25bY2lkXS5vbnRhcFxyXG5cdFx0XHRcdGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG5cdFx0XHRcdGxldCB0YXBMZWdlbmQgPSBjZnUub3B0aW9uW2NpZF0udGFwTGVnZW5kXHJcblx0XHRcdFx0aWYgKG9udGFwID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IGN1cnJlbnRJbmRleCA9IG51bGxcclxuXHRcdFx0XHRsZXQgbGVnZW5kSW5kZXggPSBudWxsXHJcblx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0bGV0IHRtcGUgPSB7fVxyXG5cdFx0XHRcdGlmIChlLmRldGFpbC54KSB7IC8vdGFw5oiW6ICFY2xpY2vnmoTkuovku7ZcclxuXHRcdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHRcdHg6IGUuZGV0YWlsLnggLSByY2hhcnRkb20ubGVmdCxcclxuXHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7IC8vbW91c2XnmoTkuovku7ZcclxuXHRcdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHRcdHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHR5OiBlLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3BcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG5cdFx0XHRcdGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSlcclxuXHRcdFx0XHRsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKVxyXG5cdFx0XHRcdGlmICh0YXBMZWdlbmQgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodG9vbHRpcFNob3cgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChlLCBjaWQpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJywge1xyXG5cdFx0XHRcdFx0bmFtZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwiZ2V0SW5kZXhcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IHRtcGUsXHJcblx0XHRcdFx0XHRcdGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LFxyXG5cdFx0XHRcdFx0XHRsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0b3VjaFN0YXJ0KGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcblx0XHRcdFx0aWYgKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuXHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hTdGFydFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwidG91Y2hTdGFydFwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogZS5jaGFuZ2VkVG91Y2hlc1swXSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvdWNoTW92ZShlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG5cdFx0XHRcdGlmIChvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IGZhbHNlICYmIGNmdS5vcHRpb25bY2lkXVxyXG5cdFx0XHRcdFx0Lm9ubW92ZXRpcCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0XHRsZXQgdG1wZSA9IHtcclxuXHRcdFx0XHRcdFx0eDogZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsXHJcblx0XHRcdFx0XHRcdHk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcblx0XHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd1Rvb2x0aXAoZSwgY2lkKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAob250b3VjaCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5vbnpvb20gPT09IHRydWUgJiYgZVxyXG5cdFx0XHRcdFx0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAyKSB7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5kb2J1bGVab29tKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hNb3ZlXCIsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJ0b3VjaE1vdmVcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IGUuY2hhbmdlZFRvdWNoZXNbMF0sXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0b3VjaEVuZChlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG5cdFx0XHRcdGlmIChvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJywge1xyXG5cdFx0XHRcdFx0bmFtZTogXCJnZXRUb3VjaEVuZFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwidG91Y2hFbmRcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IGUuY2hhbmdlZFRvdWNoZXNbMF0sXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb3VzZURvd24oZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLnJpZFxyXG5cdFx0XHRcdGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuXHRcdFx0XHRpZiAob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG5cdFx0XHRcdGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnICsgY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG5cdFx0XHRcdGxldCB0bXBlID0ge31cclxuXHRcdFx0XHR0bXBlID0ge1xyXG5cdFx0XHRcdFx0eDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsXHJcblx0XHRcdFx0XHR5OiBlLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3BcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpXHJcblx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93biA9IHRydWU7XHJcblx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRuYW1lOiBcImdldFRvdWNoU3RhcnRcIixcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIm1vdXNlRG93blwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogdG1wZSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdG1vdXNlTW92ZShlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG5cdFx0XHRcdGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG5cdFx0XHRcdGlmIChvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0bGV0IHRtcGUgPSB7fVxyXG5cdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHR4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCxcclxuXHRcdFx0XHRcdHk6IGUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hNb3ZlXCIsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwibW91c2VNb3ZlXCIsXHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQ6IHRtcGUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSBlbHNlIGlmIChjZnUuaW5zdGFuY2VbY2lkXSkge1xyXG5cdFx0XHRcdFx0aWYgKHRvb2x0aXBTaG93ID09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChlLCBjaWQpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb3VzZVVwKGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcblx0XHRcdFx0aWYgKG9ubW91c2UgPT0gZmFsc2UpIHJldHVybjtcclxuXHRcdFx0XHRsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJyArIGNpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuXHRcdFx0XHRsZXQgdG1wZSA9IHt9XHJcblx0XHRcdFx0dG1wZSA9IHtcclxuXHRcdFx0XHRcdHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LFxyXG5cdFx0XHRcdFx0eTogZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuXHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuXHRcdFx0XHRjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duID0gZmFsc2U7XHJcblx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRuYW1lOiBcImdldFRvdWNoRW5kXCIsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJtb3VzZVVwXCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiB0bXBlLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG48IS0tICNlbmRpZiAtLT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcblx0LmNoYXJ0c3ZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///115\n"); +eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 145));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 146));\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 147));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction deepCloneAssign() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var i in args) {\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n origin[key] = args[i][key] && (0, _typeof2.default)(args[i][key]) === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];\n }\n }\n }\n return origin;\n}\nfunction formatterAssign(args, formatter) {\n for (var key in args) {\n if (args.hasOwnProperty(key) && args[key] !== null && (0, _typeof2.default)(args[key]) === 'object') {\n formatterAssign(args[key], formatter);\n } else if (key === 'format' && typeof args[key] === 'string') {\n args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;\n }\n }\n return args;\n}\n\n// 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {\n var seperator = \"-\";\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var strDate = date.getDate();\n if (month >= 1 && month <= 9) {\n month = \"0\" + month;\n }\n if (strDate >= 0 && strDate <= 9) {\n strDate = \"0\" + strDate;\n }\n var currentdate = year + seperator + month + seperator + strDate;\n return currentdate;\n}\nvar lastMoveTime = null;\n/**\n * 防抖\n *\n * @param { Function } fn 要执行的方法\n * @param { Number } wait 防抖多少毫秒\n *\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\n * move(){ // 错误调用方式\n * debounce(function () {\n * console.log(this.title);\n * }, 1000)});\n * 应该直接使用:// 正确调用方式\n * move: debounce(function () {\n * console.log(this.title);\n * }, 1000)\n */\nfunction debounce(fn, wait) {\n var timer = false;\n return function () {\n var _arguments = arguments,\n _this = this;\n clearTimeout(timer);\n timer && clearTimeout(timer);\n timer = setTimeout(function () {\n timer = false;\n fn.apply(_this, _arguments); // 把参数传进去\n }, wait);\n };\n}\nvar _default2 = {\n name: 'qiun-data-charts',\n mixins: [uniCloud.mixinDatacom],\n props: {\n type: {\n type: String,\n default: null\n },\n canvasId: {\n type: String,\n default: 'uchartsid'\n },\n canvas2d: {\n type: Boolean,\n default: false\n },\n background: {\n type: String,\n default: 'rgba(0,0,0,0)'\n },\n animation: {\n type: Boolean,\n default: true\n },\n chartData: {\n type: Object,\n default: function _default() {\n return {\n categories: [],\n series: []\n };\n }\n },\n opts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n eopts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n loadingType: {\n type: Number,\n default: 2\n },\n errorShow: {\n type: Boolean,\n default: true\n },\n errorReload: {\n type: Boolean,\n default: true\n },\n errorMessage: {\n type: String,\n default: null\n },\n inScrollView: {\n type: Boolean,\n default: false\n },\n reshow: {\n type: Boolean,\n default: false\n },\n reload: {\n type: Boolean,\n default: false\n },\n disableScroll: {\n type: Boolean,\n default: false\n },\n optsWatch: {\n type: Boolean,\n default: true\n },\n onzoom: {\n type: Boolean,\n default: false\n },\n ontap: {\n type: Boolean,\n default: true\n },\n ontouch: {\n type: Boolean,\n default: false\n },\n onmouse: {\n type: Boolean,\n default: true\n },\n onmovetip: {\n type: Boolean,\n default: false\n },\n echartsH5: {\n type: Boolean,\n default: false\n },\n echartsApp: {\n type: Boolean,\n default: false\n },\n tooltipShow: {\n type: Boolean,\n default: true\n },\n tooltipFormat: {\n type: String,\n default: undefined\n },\n tooltipCustom: {\n type: Object,\n default: undefined\n },\n startDate: {\n type: String,\n default: undefined\n },\n endDate: {\n type: String,\n default: undefined\n },\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n pageScrollTop: {\n type: Number,\n default: 0\n },\n directory: {\n type: String,\n default: '/'\n },\n tapLegend: {\n type: Boolean,\n default: true\n },\n menus: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n Height: {\n type: Number,\n default: 340\n },\n Width: {\n type: Number,\n default: 340\n }\n },\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 340,\n cHeight: 240,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false\n },\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null\n };\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {\n var _this2 = this;\n var that = this;\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n this.cWidth = this.Width ? this.Width : this.cWidth;\n this.cHeight = this.Height ? this.Height : this.cHeight;\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n uni.offWindowResize(function () {});\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true\n },\n optsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n eoptsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n reshow: function reshow(val, oldval) {\n var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({\n name: 'error',\n params: {\n type: \"error\",\n errorShow: this.errorShow,\n msg: val,\n id: this.cid\n }\n });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:567\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n }\n },\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n }\n },\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if ((0, _typeof2.default)(this.chartData) === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = {\n categories: [],\n series: []\n };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({\n name: item.group,\n data: []\n });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{\n name: '默认分组',\n data: []\n }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({\n \"name\": resdata[_i3].text,\n \"value\": resdata[_i3].value\n });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {\n var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {\n var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + this.cid).boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).exec();\n },\n getCloudData: function getCloudData() {\n var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if ((0, _typeof2.default)(ctx) === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {\n var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + cid).boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.select('#' + cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000\n });\n }\n });\n }\n }, this);\n },\n getImage: function getImage() {\n var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: res.tempFilePath\n }\n });\n }\n }, this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.select('#' + this.cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: canvas.toDataURL('image/png')\n }\n });\n }\n });\n }\n },\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 116)[\"uniCloud\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOlsiYXJncyIsIm9yaWdpbiIsImtleSIsImZvcm1hdHRlckFzc2lnbiIsIm1vbnRoIiwic3RyRGF0ZSIsImNsZWFyVGltZW91dCIsInRpbWVyIiwiZm4iLCJuYW1lIiwibWl4aW5zIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNhbnZhc0lkIiwiY2FudmFzMmQiLCJiYWNrZ3JvdW5kIiwiYW5pbWF0aW9uIiwiY2hhcnREYXRhIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsIm9wdHMiLCJlb3B0cyIsImxvYWRpbmdUeXBlIiwiZXJyb3JTaG93IiwiZXJyb3JSZWxvYWQiLCJlcnJvck1lc3NhZ2UiLCJpblNjcm9sbFZpZXciLCJyZXNob3ciLCJyZWxvYWQiLCJkaXNhYmxlU2Nyb2xsIiwib3B0c1dhdGNoIiwib256b29tIiwib250YXAiLCJvbnRvdWNoIiwib25tb3VzZSIsIm9ubW92ZXRpcCIsImVjaGFydHNINSIsImVjaGFydHNBcHAiLCJ0b29sdGlwU2hvdyIsInRvb2x0aXBGb3JtYXQiLCJ0b29sdGlwQ3VzdG9tIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInRleHRFbnVtIiwiZ3JvdXBFbnVtIiwicGFnZVNjcm9sbFRvcCIsImRpcmVjdG9yeSIsInRhcExlZ2VuZCIsIm1lbnVzIiwiSGVpZ2h0IiwiV2lkdGgiLCJkYXRhIiwiY2lkIiwiaW5XeCIsImluQWxpIiwiaW5UdCIsImluQmQiLCJpbkg1IiwiaW5BcHAiLCJpbldpbiIsInR5cGUyZCIsImRpc1Njcm9sbCIsIm9wZW5tb3VzZSIsInBpeGVsIiwiY1dpZHRoIiwiY0hlaWdodCIsInNob3djaGFydCIsImVjaGFydHMiLCJlY2hhcnRzUmVzaXplIiwic3RhdGUiLCJ1Y2hhcnRzT3B0cyIsImVjaGFydHNPcHRzIiwiZHJhd0RhdGEiLCJsYXN0RHJhd1RpbWUiLCJjcmVhdGVkIiwiaWQiLCJtb3VudGVkIiwiZGVzdHJveWVkIiwidW5pIiwid2F0Y2giLCJjaGFydERhdGFQcm9wcyIsImhhbmRsZXIiLCJpbW1lZGlhdGUiLCJkZWVwIiwibG9jYWxkYXRhIiwib3B0c1Byb3BzIiwiZW9wdHNQcm9wcyIsInNldFRpbWVvdXQiLCJtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UiLCJwYXJhbXMiLCJtc2ciLCJjb21wdXRlZCIsIm1ldGhvZHMiLCJiZWZvcmVJbml0IiwibG9jYWxkYXRhSW5pdCIsInJlc2RhdGEiLCJuZWVkQ2F0ZWdvcmllcyIsInRtcGNhdGVnb3JpZXMiLCJpZGF0ZSIsInRlbXBja2V5IiwidG1wRGF0YSIsInRtcHNlcmllcyIsInRlbXBza2V5Iiwic2VyaWVzZGF0YSIsInJlbG9hZGluZyIsImNoZWNrRGF0YSIsImNmZSIsImNmdSIsInJlc2l6ZUhhbmRsZXIiLCJjcmVhdGVTZWxlY3RvclF1ZXJ5IiwiaW4iLCJzZWxlY3QiLCJib3VuZGluZ0NsaWVudFJlY3QiLCJleGVjIiwiZ2V0Q2xvdWREYXRhIiwidGhlbiIsImNhdGNoIiwib25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSIsIl9jbGVhckNoYXJ0IiwiY3R4IiwiaW5pdCIsInF1ZXJ5IiwiZmllbGRzIiwibm9kZSIsInNpemUiLCJjYW52YXMiLCJzYXZlSW1hZ2UiLCJzdWNjZXNzIiwiZmlsZVBhdGgiLCJ0aXRsZSIsImR1cmF0aW9uIiwiZ2V0SW1hZ2UiLCJiYXNlNjQiLCJfZXJyb3IiLCJlbWl0TXNnIiwiZ2V0UmVuZGVyVHlwZSIsInRvSlNPTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUE0RkE7QUFDQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtFQUFBO0VBQUE7SUFBQUE7RUFBQTtFQUNBO0lBQ0E7TUFDQTtRQUNBQyx1SEFDQUMsSUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFFQTtFQUNBO0lBQ0E7TUFDQUM7SUFDQTtNQUNBSDtJQUNBO0VBQ0E7RUFDQTtBQUNBOztBQUVBO0FBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0lBQ0FJO0VBQ0E7RUFDQTtJQUNBQztFQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0E7RUFDQTtJQUFBO01BQUE7SUFDQUM7SUFDQUM7SUFDQUE7TUFDQUE7TUFDQUM7SUFDQTtFQUNBO0FBQ0E7QUFBQSxnQkFFQTtFQUNBQztFQUNBQztFQUNBQztJQUNBQztNQUNBQTtNQUNBQztJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0lBQ0FJO01BQ0FMO01BQ0FDO0lBQ0E7SUFDQUs7TUFDQU47TUFDQUM7UUFDQTtVQUNBTTtVQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBVDtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBUztNQUNBVjtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBVTtNQUNBWDtNQUNBQztJQUNBO0lBQ0FXO01BQ0FaO01BQ0FDO0lBQ0E7SUFDQVk7TUFDQWI7TUFDQUM7SUFDQTtJQUNBYTtNQUNBZDtNQUNBQztJQUNBO0lBQ0FjO01BQ0FmO01BQ0FDO0lBQ0E7SUFDQWU7TUFDQWhCO01BQ0FDO0lBQ0E7SUFDQWdCO01BQ0FqQjtNQUNBQztJQUNBO0lBQ0FpQjtNQUNBbEI7TUFDQUM7SUFDQTtJQUNBa0I7TUFDQW5CO01BQ0FDO0lBQ0E7SUFDQW1CO01BQ0FwQjtNQUNBQztJQUNBO0lBQ0FvQjtNQUNBckI7TUFDQUM7SUFDQTtJQUNBcUI7TUFDQXRCO01BQ0FDO0lBQ0E7SUFDQXNCO01BQ0F2QjtNQUNBQztJQUNBO0lBQ0F1QjtNQUNBeEI7TUFDQUM7SUFDQTtJQUNBd0I7TUFDQXpCO01BQ0FDO0lBQ0E7SUFDQXlCO01BQ0ExQjtNQUNBQztJQUNBO0lBQ0EwQjtNQUNBM0I7TUFDQUM7SUFDQTtJQUNBMkI7TUFDQTVCO01BQ0FDO0lBQ0E7SUFDQTRCO01BQ0E3QjtNQUNBQztJQUNBO0lBQ0E2QjtNQUNBOUI7TUFDQUM7SUFDQTtJQUNBOEI7TUFDQS9CO01BQ0FDO0lBQ0E7SUFDQStCO01BQ0FoQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBZ0M7TUFDQWpDO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FpQztNQUNBbEM7TUFDQUM7SUFDQTtJQUNBa0M7TUFDQW5DO01BQ0FDO0lBQ0E7SUFDQW1DO01BQ0FwQztNQUNBQztJQUNBO0lBQ0FvQztNQUNBckM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQXFDO01BQ0F0QztNQUNBQztJQUNBO0lBQ0FzQztNQUNBdkM7TUFDQUM7SUFDQTtFQUNBO0VBQ0F1QztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7O0lBVUE7O0lBRUE7SUFlQTtFQUNBO0VBQ0FDO0lBQUE7SUFDQTtJQUVBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFnQkE7SUFDQTtJQUNBO01BQ0E7SUFDQTtFQXFCQTtFQUNBQztJQUNBO01BQ0E7TUFDQTtJQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO0VBRUE7RUFDQUM7SUFDQUM7TUFDQUM7UUFDQTtVQUNBO1lBQ0E7WUFDQTtjQUNBO1lBQ0E7Y0FDQTtjQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBQztNQUNBSDtRQUNBO1VBQ0E7WUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBRTtNQUNBSjtRQUNBO1VBQ0Esa0dBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBRztNQUNBTDtRQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQXhEO01BQUE7TUFDQTtRQUNBNEQ7VUFDQTtVQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTNEO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E0RDtNQUNBO1FBQ0E7VUFDQWhGO1VBQ0FpRjtZQUNBOUU7WUFDQVk7WUFDQW1FO1lBQ0FmO1VBQ0E7UUFDQTtRQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQWxEO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBa0U7SUFDQU47TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBTjtNQUNBO0lBQ0E7RUFDQTtFQUNBWTtJQUNBQztNQUNBO01BQ0EsMkhBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7VUFDQTtZQUNBO2NBQ0FBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E3RTtRQUNBQztNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTZFO01BQ0E7UUFDQUE7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBQztRQUNBO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7WUFDQTtjQUNBQTtjQUNBQztjQUNBQTtZQUNBO1lBQ0E7VUFDQTtZQUNBO1lBQ0FIO2NBQ0E7Z0JBQ0FFO2dCQUNBRTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0FMO1FBQ0E7VUFDQU07WUFDQTdGO1lBQ0EyQztVQUNBO1VBQ0FtRDtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FEO1VBQ0E3RjtVQUNBMkM7UUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQTtnQkFDQW9EO2NBQ0E7WUFDQTtZQUNBRjtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0FBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtRQUNBO01BQ0E7UUFDQTtVQUNBO1VBQ0E7WUFDQTtjQUNBO2NBQ0E7Z0JBQ0E7a0JBQ0FFO2dCQUNBO2NBQ0E7Y0FDQUY7WUFDQTtZQUNBO1VBQ0E7WUFDQTtjQUNBO2dCQUNBQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUQ7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBSTtNQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0FBO1FBQ0FBO01BQ0E7UUFDQTtVQUNBQztVQUNBQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQUQ7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBQztVQUNBQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLG1CQUNBQyxzQkFFQUMsU0FFQUMsaUNBQ0FDO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0EsR0FDQUM7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7TUFDQSx1QkFDQUM7UUFDQTtRQUNBO01BQ0EsR0FDQUM7UUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBQztVQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQSxtQkFDQVgsc0JBRUFDLFNBRUFDLDRCQUNBQztRQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0FMLDBHQUNBNUY7WUFDQTRGO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7Y0FDQUQ7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQTtZQUNBO2NBQ0FDO2NBQ0E7WUFDQTtZQUNBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBO1lBQ0E7WUFDQTtjQUNBO2dCQUNBO2dCQUNBYyxNQUNBVixrQkFDQVc7a0JBQ0FDO2tCQUNBQztnQkFDQSxHQUNBWDtrQkFDQTtvQkFDQTtvQkFDQTtvQkFDQU47b0JBQ0FBO29CQUNBLGdIQUNBdkQ7c0JBQ0E7b0JBQ0E7c0JBQ0F5RTtzQkFDQUE7c0JBQ0FBO3NCQUNBQTtzQkFDQXRDO3dCQUNBb0I7d0JBQ0FBO3dCQUNBO3NCQUNBO29CQUNBO2tCQUNBO29CQUNBO29CQUNBLGtDQUNBO2tCQUNBO2dCQUNBO2NBQ0E7Z0JBQ0E7a0JBQ0FBO2dCQUNBO2dCQUNBQTtnQkFDQSxnSUFDQTtrQkFDQTtnQkFDQTtrQkFDQXBCO29CQUNBb0I7b0JBQ0FBO29CQUNBO2tCQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQSxHQUNBTTtJQUNBO0lBQ0FhO01BQ0FoRDtRQUNBakU7UUFDQWtIO1VBU0FqRDtZQUNBa0Q7WUFDQUQ7Y0FDQWpEO2dCQUNBbUQ7Z0JBQ0FDO2NBQ0E7WUFDQTtVQUNBO1FBRUE7TUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFDQTtRQUNBckQ7VUFDQWpFO1VBQ0FrSDtZQUNBO2NBQ0F2SDtjQUNBaUY7Z0JBQ0E5RTtnQkFDQXlIO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FYLE1BQ0FWLHVCQUNBVztVQUNBQztVQUNBQztRQUNBLEdBQ0FYO1VBQ0E7WUFDQTtZQUNBO2NBQ0F6RztjQUNBaUY7Z0JBQ0E5RTtnQkFDQXlIO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBK1BBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsNEIiLCJmaWxlIjoiMTE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcblx0XHQ8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG5cdFx0XHQ8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuXHRcdFx0PHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuXHRcdFx0PCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcblx0XHRcdDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG5cdFx0PCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuXHRcdDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG5cdFx0XHQ8dmlldyA6c3R5bGU9XCJ7IGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO1wiIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcblx0XHRcdFx0OmlkPVwiJ0VDJytjaWRcIiA6cHJvcD1cImVjaGFydHNPcHRzXCIgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG5cdFx0XHRcdDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWVsc2U+XHJcblx0XHRcdDx2aWV3IHYtb246dGFwPVwicmRjaGFydHMudGFwXCIgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIiB2LW9uOm1vdXNlZG93bj1cInJkY2hhcnRzLm1vdXNlRG93blwiXHJcblx0XHRcdFx0di1vbjptb3VzZXVwPVwicmRjaGFydHMubW91c2VVcFwiIHYtb246dG91Y2hzdGFydD1cInJkY2hhcnRzLnRvdWNoU3RhcnRcIlxyXG5cdFx0XHRcdHYtb246dG91Y2htb3ZlPVwicmRjaGFydHMudG91Y2hNb3ZlXCIgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCIgOmlkPVwiJ1VDJytjaWRcIiA6cHJvcD1cInVjaGFydHNPcHRzXCJcclxuXHRcdFx0XHQ6Y2hhbmdlOnByb3A9XCJyZGNoYXJ0cy51Y2luaXRcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzYWJsZVNjcm9sbFwiIEBlcnJvcj1cIl9lcnJvclwiIHYtc2hvdz1cInNob3djaGFydFwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvYmxvY2s+XHJcblx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHRcdDwhLS0g5pSv5LuY5a6d5bCP56iL5bqPIC0tPlxyXG5cdFx0PCEtLSAjaWZkZWYgTVAtQUxJUEFZIC0tPlxyXG5cdFx0PGJsb2NrIHYtaWY9XCJvbnRvdWNoXCI+XHJcblx0XHRcdDxjYW52YXMgOmlkPVwiY2lkXCIgOmNhbnZhc0lkPVwiY2lkXCIgOndpZHRoPVwiY1dpZHRoICogcGl4ZWxcIiA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiIEB0YXA9XCJfdGFwXCIgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuXHRcdFx0XHRAdG91Y2hlbmQ9XCJfdG91Y2hFbmRcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWlmPVwiIW9udG91Y2hcIj5cclxuXHRcdFx0PGNhbnZhcyA6aWQ9XCJjaWRcIiA6Y2FudmFzSWQ9XCJjaWRcIiA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiIDpoZWlnaHQ9XCJjSGVpZ2h0ICogcGl4ZWxcIlxyXG5cdFx0XHRcdDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcblx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRhcD1cIl90YXBcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LXNob3c9XCJzaG93Y2hhcnRcIiAvPlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdFx0PCEtLSDlhbbku5blsI/nqIvluo/pgJrov4d2dWXmuLLmn5Plm77ooaggLS0+XHJcblx0XHQ8IS0tICNpZmRlZiBNUC1XRUlYSU4gfHwgTVAtQkFJRFUgfHwgTVAtUVEgfHwgTVAtVE9VVElBTyB8fCBNUC1LVUFJU0hPVSB8fCBNUC1MQVJLIHx8IE1QLUpEIHx8IE1QLTM2MCAtLT5cclxuXHRcdDxibG9jayB2LWlmPVwidHlwZTJkXCI+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIiB0eXBlPVwiMmRcIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRvdWNoc3RhcnQ9XCJfdG91Y2hTdGFydFwiIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCIgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuXHRcdFx0XHRcdEBlcnJvcj1cIl9lcnJvclwiIHYtc2hvdz1cInNob3djaGFydFwiIC8+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIiB0eXBlPVwiMmRcIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQGVycm9yPVwiX2Vycm9yXCIgdi1zaG93PVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDxibG9jayB2LWlmPVwiIXR5cGUyZFwiPlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcblx0XHRcdFx0PGNhbnZhcyA6aWQ9XCJjaWRcIiA6Y2FudmFzSWQ9XCJjaWRcIlxyXG5cdFx0XHRcdFx0OnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuXHRcdFx0XHRcdEB0b3VjaHN0YXJ0PVwiX3RvdWNoU3RhcnRcIiBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcblx0XHRcdFx0XHRAZXJyb3I9XCJfZXJyb3JcIiB2LWlmPVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyB2LWlmPVwiIW9udG91Y2hcIj5cclxuXHRcdFx0XHQ8Y2FudmFzIDppZD1cImNpZFwiIDpjYW52YXNJZD1cImNpZFwiXHJcblx0XHRcdFx0XHQ6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG5cdFx0XHRcdFx0OmRpc2FibGUtc2Nyb2xsPVwiZGlzU2Nyb2xsXCIgQHRhcD1cIl90YXBcIiBAZXJyb3I9XCJfZXJyb3JcIiB2LWlmPVwic2hvd2NoYXJ0XCIgLz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9ibG9jaz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHVDaGFydHMgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL3UtY2hhcnRzLmpzJztcclxuXHRpbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcblx0Ly8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuXHRpbXBvcnQgY2ZlIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctZWNoYXJ0cy5qcyc7XHJcblx0Ly8gI2VuZGlmXHJcblxyXG5cdGZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG5cdFx0Zm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcblx0XHRcdGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcblx0XHRcdFx0aWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdFx0b3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyBkZWVwQ2xvbmVBc3NpZ24oQXJyYXkuaXNBcnJheShhcmdzW2ldW1xyXG5cdFx0XHRcdFx0XHRrZXlcclxuXHRcdFx0XHRcdF0pID8gW10gOiB7fSwgb3JpZ2luW2tleV0sIGFyZ3NbaV1ba2V5XSkgOiBhcmdzW2ldW2tleV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gb3JpZ2luO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZm9ybWF0dGVyQXNzaWduKGFyZ3MsIGZvcm1hdHRlcikge1xyXG5cdFx0Zm9yIChsZXQga2V5IGluIGFyZ3MpIHtcclxuXHRcdFx0aWYgKGFyZ3MuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBhcmdzW2tleV0gIT09IG51bGwgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLCBmb3JtYXR0ZXIpXHJcblx0XHRcdH0gZWxzZSBpZiAoa2V5ID09PSAnZm9ybWF0JyAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdGFyZ3NbJ2Zvcm1hdHRlciddID0gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gPyBmb3JtYXR0ZXJbYXJnc1trZXldXSA6IHVuZGVmaW5lZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFyZ3M7XHJcblx0fVxyXG5cclxuXHQvLyDml7bpl7TovazmjaLlh73mlbDvvIzkuLrkuobljLnphY11bmlDbGluZXREQuivu+WPluWHuueahOaXtumXtOS4jmNhdGVnb3JpZXPkuI3lkIxcclxuXHRmdW5jdGlvbiBnZXRGb3JtYXREYXRlKGRhdGUpIHtcclxuXHRcdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHRcdHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cdFx0dmFyIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMTtcclxuXHRcdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0XHRpZiAobW9udGggPj0gMSAmJiBtb250aCA8PSA5KSB7XHJcblx0XHRcdG1vbnRoID0gXCIwXCIgKyBtb250aDtcclxuXHRcdH1cclxuXHRcdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0XHR9XHJcblx0XHR2YXIgY3VycmVudGRhdGUgPSB5ZWFyICsgc2VwZXJhdG9yICsgbW9udGggKyBzZXBlcmF0b3IgKyBzdHJEYXRlO1xyXG5cdFx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG5cdH1cclxuXHJcblx0dmFyIGxhc3RNb3ZlVGltZSA9IG51bGw7XHJcblx0LyoqXHJcblx0ICog6Ziy5oqWXHJcblx0ICpcclxuXHQgKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG5cdCAqIEBwYXJhbSB7IE51bWJlciB9IHdhaXQgIOmYsuaKluWkmuWwkeavq+enklxyXG5cdCAqXHJcblx0ICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcblx0ICogbW92ZSgpeyAgLy8g6ZSZ6K+v6LCD55So5pa55byPXHJcblx0ICogICBkZWJvdW5jZShmdW5jdGlvbiAoKSB7XHJcblx0ICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuXHQgKiB9LCAxMDAwKX3vvIk7XHJcblx0ICog5bqU6K+l55u05o6l5L2/55So77yaLy8g5q2j56Gu6LCD55So5pa55byPXHJcblx0ICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG5cdCAqICAgY29uc29sZS5sb2codGhpcy50aXRsZSk7XHJcblx0ICogfSwgMTAwMClcclxuXHQgKi9cclxuXHRmdW5jdGlvbiBkZWJvdW5jZShmbiwgd2FpdCkge1xyXG5cdFx0bGV0IHRpbWVyID0gZmFsc2U7XHJcblx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XHJcblx0XHRcdGNsZWFyVGltZW91dCh0aW1lcik7XHJcblx0XHRcdHRpbWVyICYmIGNsZWFyVGltZW91dCh0aW1lcik7XHJcblx0XHRcdHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGltZXIgPSBmYWxzZTtcclxuXHRcdFx0XHRmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyDmiorlj4LmlbDkvKDov5vljrtcclxuXHRcdFx0fSwgd2FpdCk7XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3FpdW4tZGF0YS1jaGFydHMnLFxyXG5cdFx0bWl4aW5zOiBbdW5pQ2xvdWQubWl4aW5EYXRhY29tXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW52YXNJZDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAndWNoYXJ0c2lkJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjYW52YXMyZDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0YmFja2dyb3VuZDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuXHRcdFx0fSxcclxuXHRcdFx0YW5pbWF0aW9uOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYXJ0RGF0YToge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdGNhdGVnb3JpZXM6IFtdLFxyXG5cdFx0XHRcdFx0XHRzZXJpZXM6IFtdXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0b3B0czoge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7fTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGVvcHRzOiB7XHJcblx0XHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0bG9hZGluZ1R5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdFx0ZGVmYXVsdDogMlxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvclNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3JSZWxvYWQ6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdFx0aW5TY3JvbGxWaWV3OiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbG9hZDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0ZGlzYWJsZVNjcm9sbDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b3B0c1dhdGNoOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG9uem9vbToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b250YXA6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0b250b3VjaDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0b25tb3VzZToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbm1vdmV0aXA6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdGVjaGFydHNINToge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0ZWNoYXJ0c0FwcDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcFNob3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcEZvcm1hdDoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiB1bmRlZmluZWRcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcEN1c3RvbToge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0OiB1bmRlZmluZWRcclxuXHRcdFx0fSxcclxuXHRcdFx0c3RhcnREYXRlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlbmREYXRlOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0ZXh0RW51bToge1xyXG5cdFx0XHRcdHR5cGU6IEFycmF5LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIFtdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRncm91cEVudW06IHtcclxuXHRcdFx0XHR0eXBlOiBBcnJheSxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBbXVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cGFnZVNjcm9sbFRvcDoge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAwXHJcblx0XHRcdH0sXHJcblx0XHRcdGRpcmVjdG9yeToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnLydcclxuXHRcdFx0fSxcclxuXHRcdFx0dGFwTGVnZW5kOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG1lbnVzOiB7XHJcblx0XHRcdFx0dHlwZTogQXJyYXksXHJcblx0XHRcdFx0ZGVmYXVsdCAoKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gW11cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdEhlaWdodDoge1xyXG5cdFx0XHRcdHR5cGU6IE51bWJlcixcclxuXHRcdFx0XHRkZWZhdWx0OiAzNDBcclxuXHRcdFx0fSxcclxuXHRcdFx0V2lkdGg6IHtcclxuXHRcdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdFx0ZGVmYXVsdDogMzQwXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNpZDogJ3VjaGFydHNpZCcsXHJcblx0XHRcdFx0aW5XeDogZmFsc2UsXHJcblx0XHRcdFx0aW5BbGk6IGZhbHNlLFxyXG5cdFx0XHRcdGluVHQ6IGZhbHNlLFxyXG5cdFx0XHRcdGluQmQ6IGZhbHNlLFxyXG5cdFx0XHRcdGluSDU6IGZhbHNlLFxyXG5cdFx0XHRcdGluQXBwOiBmYWxzZSxcclxuXHRcdFx0XHRpbldpbjogZmFsc2UsXHJcblx0XHRcdFx0dHlwZTJkOiB0cnVlLFxyXG5cdFx0XHRcdGRpc1Njcm9sbDogZmFsc2UsXHJcblx0XHRcdFx0b3Blbm1vdXNlOiBmYWxzZSxcclxuXHRcdFx0XHRwaXhlbDogMSxcclxuXHRcdFx0XHRjV2lkdGg6IDM0MCxcclxuXHRcdFx0XHRjSGVpZ2h0OiAyNDAsXHJcblx0XHRcdFx0c2hvd2NoYXJ0OiBmYWxzZSxcclxuXHRcdFx0XHRlY2hhcnRzOiBmYWxzZSxcclxuXHRcdFx0XHRlY2hhcnRzUmVzaXplOiB7XHJcblx0XHRcdFx0XHRzdGF0ZTogZmFsc2VcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHVjaGFydHNPcHRzOiB7fSxcclxuXHRcdFx0XHRlY2hhcnRzT3B0czoge30sXHJcblx0XHRcdFx0ZHJhd0RhdGE6IHt9LFxyXG5cdFx0XHRcdGxhc3REcmF3VGltZTogbnVsbCxcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHR0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuXHRcdFx0aWYgKHRoaXMuY2FudmFzSWQgPT0gJ3VjaGFydHNpZCcgfHwgdGhpcy5jYW52YXNJZCA9PSAnJykge1xyXG5cdFx0XHRcdGxldCB0ID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonXHJcblx0XHRcdFx0bGV0IGxlbiA9IHQubGVuZ3RoXHJcblx0XHRcdFx0bGV0IGlkID0gJydcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IDMyOyBpKyspIHtcclxuXHRcdFx0XHRcdGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuY2lkID0gaWRcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBzeXN0ZW1JbmZvID0gdW5pLmdldFN5c3RlbUluZm9TeW5jKClcclxuXHRcdFx0aWYgKHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG5cdFx0XHRcdHRoaXMuaW5XaW4gPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vICNpZmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0dGhpcy5pbld4ID0gdHJ1ZTtcclxuXHRcdFx0aWYgKHRoaXMuY2FudmFzMmQgPT09IGZhbHNlIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICd3aW5kb3dzJyB8fCBzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnbWFjJykge1xyXG5cdFx0XHRcdHRoaXMudHlwZTJkID0gZmFsc2U7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy50eXBlMmQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMucGl4ZWwgPSBzeXN0ZW1JbmZvLnBpeGVsUmF0aW87XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8v6Z2e5b6u5L+h5bCP56iL5bqP56uv5by65Yi25YWz6ZetY2FudmFzMmTmqKHlvI9cclxuXHRcdFx0Ly8gI2lmbmRlZiBNUC1XRUlYSU5cclxuXHRcdFx0dGhpcy50eXBlMmQgPSBmYWxzZTtcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8vICNpZmRlZiAgTVAtVE9VVElBTyB8fCBNUC1MQVJLIHx8IE1QLUFMSVBBWVxyXG5cdFx0XHR0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgTVAtQUxJUEFZXHJcblx0XHRcdHRoaXMuaW5BbGkgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0Ly8gI2lmZGVmIE1QLUJBSURVXHJcblx0XHRcdHRoaXMuaW5CZCA9IHRydWU7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG5cdFx0XHR0aGlzLmluVHQgPSB0cnVlO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0dGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtVlVFXHJcblx0XHRcdHRoaXMuaW5BcHAgPSB0cnVlO1xyXG5cdFx0XHRpZiAodGhpcy5lY2hhcnRzQXBwID09PSB0cnVlKSB7XHJcblx0XHRcdFx0dGhpcy5lY2hhcnRzID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHQvLyAjaWZkZWYgQVBQLU5WVUVcclxuXHRcdFx0dGhpcy5pbkFwcCA9IHRydWU7XHJcblx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlXHJcblx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHR0aGlzLmluSDUgPSB0cnVlO1xyXG5cdFx0XHRpZiAodGhpcy5pbldpbiA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmVjaGFydHNINSA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdHRoaXMuY1dpZHRoID0gdGhpcy5XaWR0aCA/IHRoaXMuV2lkdGggOiB0aGlzLmNXaWR0aDtcclxuXHRcdFx0dGhpcy5jSGVpZ2h0ID0gdGhpcy5IZWlnaHQgPyB0aGlzLkhlaWdodCA6IHRoaXMuY0hlaWdodDtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuYmVmb3JlSW5pdCgpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWSB8fCBNUC1CQUlEVSB8fCBNUC1UT1VUSUFPIHx8IEFQUC1WVUVcclxuXHRcdFx0Y29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuXHRcdFx0Y29uc3QgX3RoaXMgPSB0aGlzO1xyXG5cdFx0XHR1bmkub25XaW5kb3dSZXNpemUoXHJcblx0XHRcdFx0ZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRpZiAoX3RoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGxldCBlcnJtc2cgPSBfdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2U7XHJcblx0XHRcdFx0XHRpZiAoZXJybXNnICE9PSBudWxsICYmIGVycm1zZyAhPT0gJ251bGwnICYmIGVycm1zZyAhPT0gJycpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKF90aGlzLmVjaGFydHMpIHtcclxuXHRcdFx0XHRcdFx0X3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0X3RoaXMucmVzaXplSGFuZGxlcigpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sIHRpbWUpXHJcblx0XHRcdCk7XHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdGRlc3Ryb3llZCgpIHtcclxuXHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdGRlbGV0ZSBjZmUub3B0aW9uW3RoaXMuY2lkXVxyXG5cdFx0XHRcdGRlbGV0ZSBjZmUuaW5zdGFuY2VbdGhpcy5jaWRdXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5jaWRdXHJcblx0XHRcdFx0ZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWSB8fCBNUC1CQUlEVSB8fCBNUC1UT1VUSUFPXHJcblx0XHRcdHVuaS5vZmZXaW5kb3dSZXNpemUoKCkgPT4ge30pXHJcblx0XHRcdC8vICNlbmRpZlxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdGNoYXJ0RGF0YVByb3BzOiB7XHJcblx0XHRcdFx0aGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0XHRcdGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5fY2xlYXJDaGFydCgpO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh2YWwuc2VyaWVzICYmIHZhbC5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5iZWZvcmVJbml0KCk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yaY2hhcnREYXRh5pWw5o2u57G75Z6L6ZSZ6K+vJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGltbWVkaWF0ZTogZmFsc2UsXHJcblx0XHRcdFx0ZGVlcDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRsb2NhbGRhdGE6IHtcclxuXHRcdFx0XHRoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcblx0XHRcdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodmFsLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmJlZm9yZUluaXQoKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0aW1tZWRpYXRlOiBmYWxzZSxcclxuXHRcdFx0XHRkZWVwOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdG9wdHNQcm9wczoge1xyXG5cdFx0XHRcdGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRcdGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09XHJcblx0XHRcdFx0XHRcdFx0dHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5fY2xlYXJDaGFydCgpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpvcHRz5pWw5o2u57G75Z6L6ZSZ6K+vJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGltbWVkaWF0ZTogZmFsc2UsXHJcblx0XHRcdFx0ZGVlcDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlb3B0c1Byb3BzOiB7XHJcblx0XHRcdFx0aGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0XHRcdGlmIChKU09OLnN0cmluZ2lmeSh2YWwpICE9PSBKU09OLnN0cmluZ2lmeShvbGR2YWwpICYmIHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yaZW9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0aW1tZWRpYXRlOiBmYWxzZSxcclxuXHRcdFx0XHRkZWVwOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlc2hvdyh2YWwsIG9sZHZhbCkge1xyXG5cdFx0XHRcdGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdFx0dGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcblx0XHRcdFx0XHR9LCAyMDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cmVsb2FkKHZhbCwgb2xkdmFsKSB7XHJcblx0XHRcdFx0aWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkaW5nKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRpZiAodmFsKSB7XHJcblx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcImVycm9yXCIsXHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JTaG93OiB0aGlzLmVycm9yU2hvdyxcclxuXHRcdFx0XHRcdFx0XHRtc2c6IHZhbCxcclxuXHRcdFx0XHRcdFx0XHRpZDogdGhpcy5jaWRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5lcnJvclNob3cpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuXHRcdFx0XHRpZiAodmFsICYmIHRoaXMuZXJyb3JTaG93ICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09ICdudWxsJyAmJiB2YWwgIT09ICcnKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IHZhbDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMucmVsb2FkaW5nKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0b3B0c1Byb3BzKCkge1xyXG5cdFx0XHRcdHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRlb3B0c1Byb3BzKCkge1xyXG5cdFx0XHRcdHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhcnREYXRhUHJvcHMoKSB7XHJcblx0XHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGJlZm9yZUluaXQoKSB7XHJcblx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdGlmICh0eXBlb2YgdGhpcy5jaGFydERhdGEgPT09ICdvYmplY3QnICYmIHRoaXMuY2hhcnREYXRhICE9IG51bGwgJiYgdGhpcy5jaGFydERhdGEuc2VyaWVzICE9PSB1bmRlZmluZWQgJiZcclxuXHRcdFx0XHRcdHRoaXMuY2hhcnREYXRhLnNlcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHQvL+aLt+i0neS4gOS4i2NoYXJ0RGF0Ye+8jOS4uuS6hm9wdHPlj5jmm7TlkI7nu5/kuIDmlbDmja7mnaXmupBcclxuXHRcdFx0XHRcdHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5sb2NhbGRhdGEubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IHRydWU7XHJcblx0XHRcdFx0XHR0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5sb2NhbGRhdGEpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG5cdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLmdldENsb3VkRGF0YSgpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0bG9jYWxkYXRhSW5pdChyZXNkYXRhKSB7XHJcblx0XHRcdFx0Ly/mm7/mjaJlbnVt57G75Z6L5Li65q2j56Gu55qE5o+P6L+wXHJcblx0XHRcdFx0aWYgKHRoaXMuZ3JvdXBFbnVtLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZ3JvdXBFbnVtLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc2RhdGFbaV0uZ3JvdXAgPT09IHRoaXMuZ3JvdXBFbnVtW2pdLnZhbHVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXNkYXRhW2ldLmdyb3VwID0gdGhpcy5ncm91cEVudW1bal0udGV4dFxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy50ZXh0RW51bS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnRleHRFbnVtLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc2RhdGFbaV0udGV4dCA9PT0gdGhpcy50ZXh0RW51bVtqXS52YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmVzZGF0YVtpXS50ZXh0ID0gdGhpcy50ZXh0RW51bVtqXS50ZXh0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG5cdFx0XHRcdGxldCB0bXBEYXRhID0ge1xyXG5cdFx0XHRcdFx0Y2F0ZWdvcmllczogW10sXHJcblx0XHRcdFx0XHRzZXJpZXM6IFtdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuXHRcdFx0XHRsZXQgdG1wc2VyaWVzID0gW107XHJcblx0XHRcdFx0Ly/mi7zmjqVjYXRlZ29yaWVzXHJcblx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0bmVlZENhdGVnb3JpZXMgPSBjZmUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdG5lZWRDYXRlZ29yaWVzID0gY2Z1LmNhdGVnb3JpZXMuaW5jbHVkZXModGhpcy50eXBlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAobmVlZENhdGVnb3JpZXMgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMgPSB0aGlzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQvL+WmguaenOaYr+aXpeacn+exu+Wei+eahOaVsOaNru+8jOS4jeeuoeaYr+acrOWcsOaVsOaNrui/mOaYr+S6keaVsOaNru+8jOmDveaMiei1t+atouaXpeacn+iHquWKqOaLvOaOpWNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc3RhcnREYXRlICYmIHRoaXMuZW5kRGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBpZGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKVxyXG5cdFx0XHRcdFx0XHRcdGxldCBlZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSlcclxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMucHVzaChnZXRGb3JtYXREYXRlKGlkYXRlKSlcclxuXHRcdFx0XHRcdFx0XHRcdGlkYXRlID0gaWRhdGUuc2V0RGF0ZShpZGF0ZS5nZXREYXRlKCkgKyAxKVxyXG5cdFx0XHRcdFx0XHRcdFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHRlbXBja2V5ID0ge307XHJcblx0XHRcdFx0XHRcdFx0cmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtLnRleHQgIT0gdW5kZWZpbmVkICYmICF0ZW1wY2tleVtpdGVtLnRleHRdKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRlbXBja2V5W2l0ZW0udGV4dF0gPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly/mi7zmjqVzZXJpZXNcclxuXHRcdFx0XHRsZXQgdGVtcHNrZXkgPSB7fTtcclxuXHRcdFx0XHRyZXNkYXRhLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0uZ3JvdXAgIT0gdW5kZWZpbmVkICYmICF0ZW1wc2tleVtpdGVtLmdyb3VwXSkge1xyXG5cdFx0XHRcdFx0XHR0bXBzZXJpZXMucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogaXRlbS5ncm91cCxcclxuXHRcdFx0XHRcdFx0XHRkYXRhOiBbXVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0dGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcblx0XHRcdFx0aWYgKHRtcHNlcmllcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0dG1wc2VyaWVzID0gW3tcclxuXHRcdFx0XHRcdFx0bmFtZTogJ+m7mOiupOWIhue7hCcsXHJcblx0XHRcdFx0XHRcdGRhdGE6IFtdXHJcblx0XHRcdFx0XHR9XTtcclxuXHRcdFx0XHRcdC8v5aaC5p6c5piv6ZyA6KaBY2F0ZWdvcmllc+eahOWbvuihqOexu+Wei1xyXG5cdFx0XHRcdFx0aWYgKG5lZWRDYXRlZ29yaWVzID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgdG1wY2F0ZWdvcmllcy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBzZXJpZXNkYXRhID0gMDtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXNkYXRhW2ldLnRleHQgPT0gdG1wY2F0ZWdvcmllc1tqXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzWzBdLmRhdGEucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcIm5hbWVcIjogcmVzZGF0YVtpXS50ZXh0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlXHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8v5aaC5p6c5pyJ5YiG57uE5ZCNXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcblx0XHRcdFx0XHRcdC8v5aaC5p6c5pyJY2F0ZWdvcmllc1xyXG5cdFx0XHRcdFx0XHRpZiAodG1wY2F0ZWdvcmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgc2VyaWVzZGF0YSA9IDA7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dG1wc2VyaWVzW2tdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Ly/lpoLmnpzkvKDkuoZncm91cOiAjOayoeacieS8oHRleHTvvIzljbPmsqHmnIljYXRlZ29yaWVz77yI5q2j5bi45oOF5Ya15LiL6L+Z56eN5pWw5o2u5piv5LiN56ym5ZCI5pWw5o2u6KaB5rGC6KeE6IyD55qE77yJXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodG1wc2VyaWVzW2tdLm5hbWUgPT0gcmVzZGF0YVtpXS5ncm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0bXBzZXJpZXNba10uZGF0YS5wdXNoKHJlc2RhdGFbaV0udmFsdWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0bXBEYXRhLnNlcmllcyA9IHRtcHNlcmllc1xyXG5cdFx0XHRcdC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG5cdFx0XHRcdHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRtcERhdGEpO1xyXG5cdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRtcERhdGEpXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlbG9hZGluZygpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5lcnJvclJlbG9hZCA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpIHtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5vbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKHRydWUpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmJlZm9yZUluaXQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0Ly/lpI3kvY1vcHRz5oiWZW9wdHNcclxuXHRcdFx0XHRpZiAodGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0gPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuZW9wdHMpO1xyXG5cdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG5cdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnR5cGUgPSB0aGlzLnR5cGU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnR5cGUgJiYgY2Z1LnR5cGUuaW5jbHVkZXModGhpcy50eXBlKSkge1xyXG5cdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSBkZWVwQ2xvbmVBc3NpZ24oe30sIGNmdVt0aGlzLnR5cGVdLCB0aGlzLm9wdHMpO1xyXG5cdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5Y+C5pWw6ZSZ6K+v77yacHJvcHPlj4LmlbDkuK10eXBl57G75Z6L5LiN5q2j56GuJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcblx0XHRcdFx0bGV0IG5ld0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIGFueURhdGEpO1xyXG5cdFx0XHRcdGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcblx0XHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmluaXQoKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNhdGVnb3JpZXMgPSBuZXdEYXRhLmNhdGVnb3JpZXM7XHJcblx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5zZXJpZXMgPSBuZXdEYXRhLnNlcmllcztcclxuXHRcdFx0XHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaW5pdCgpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXNpemVIYW5kbGVyKCkge1xyXG5cdFx0XHRcdC8v5riy5p+T6Ziy5oqWXHJcblx0XHRcdFx0bGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuXHRcdFx0XHRsZXQgbGFzdERyYXdUaW1lID0gdGhpcy5sYXN0RHJhd1RpbWUgPyB0aGlzLmxhc3REcmF3VGltZSA6IGN1cnJUaW1lIC0gMzAwMDtcclxuXHRcdFx0XHRsZXQgZHVyYXRpb24gPSBjdXJyVGltZSAtIGxhc3REcmF3VGltZTtcclxuXHRcdFx0XHRpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IGNoYXJ0ZG9tID0gdW5pXHJcblx0XHRcdFx0XHQuY3JlYXRlU2VsZWN0b3JRdWVyeSgpXHJcblx0XHRcdFx0XHQvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG5cdFx0XHRcdFx0LmluKHRoaXMpXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC5zZWxlY3QoJyNDaGFydEJveElkJyArIHRoaXMuY2lkKVxyXG5cdFx0XHRcdFx0LmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGEud2lkdGggIT09IHRoaXMuY1dpZHRoIHx8IGRhdGEuaGVpZ2h0ICE9PSB0aGlzLmNIZWlnaHQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmV4ZWMoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0Q2xvdWREYXRhKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tR2V0KClcclxuXHRcdFx0XHRcdC50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tUmVzRGF0YSA9IHJlcy5yZXN1bHQuZGF0YTtcclxuXHRcdFx0XHRcdFx0dGhpcy5sb2NhbGRhdGFJbml0KHRoaXMubWl4aW5EYXRhY29tUmVzRGF0YSk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfor7fmsYLplJnor6/vvJonICsgZXJyO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UobmVlZFJlc2V0LCBjaGFuZ2VkKSB7XHJcblx0XHRcdFx0aWYgKG5lZWRSZXNldCA9PSB0cnVlICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gJycpIHtcclxuXHRcdFx0XHRcdHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcblx0XHRcdFx0XHR0aGlzLl9jbGVhckNoYXJ0KCk7XHJcblx0XHRcdFx0XHR0aGlzLmdldENsb3VkRGF0YSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X2NsZWFyQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyAhPT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoICogdGhpcy5waXhlbCwgdGhpcy5jSGVpZ2h0ICogdGhpcy5waXhlbCk7XHJcblx0XHRcdFx0XHRcdGN0eC5kcmF3KCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpbml0KCkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGxldCBjaGFydGRvbSA9IHVuaVxyXG5cdFx0XHRcdFx0LmNyZWF0ZVNlbGVjdG9yUXVlcnkoKVxyXG5cdFx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdC5pbih0aGlzKVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHQuc2VsZWN0KCcjQ2hhcnRCb3hJZCcgKyBjaWQpXHJcblx0XHRcdFx0XHQuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoZGF0YS53aWR0aCA+IDAgJiYgZGF0YS5oZWlnaHQgPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubGFzdERyYXdUaW1lID0gRGF0ZS5ub3coKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5jSGVpZ2h0ID0gZGF0YS5oZWlnaHQ7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuZWNoYXJ0cyAhPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmQgPT0gJ3JnYmEoMCwwLDAsMCknID8gJyNGRkZGRkYnIDogdGhpc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQuYmFja2dyb3VuZDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jYW52YXMyZCA9IHRoaXMudHlwZTJkO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnBpeGVsUmF0aW8gPSB0aGlzLnBpeGVsO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLndpZHRoID0gZGF0YS53aWR0aCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9udGFwID0gdGhpcy5vbnRhcDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoID0gdGhpcy5vbnRvdWNoO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5vbm1vdmV0aXAgPSB0aGlzLm9ubW92ZXRpcDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuXHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmluU2Nyb2xsVmlldyA9IHRoaXMuaW5TY3JvbGxWaWV3O1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnRhcExlZ2VuZCA9IHRoaXMudGFwTGVnZW5kO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHQvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5pbkg1IHx8IHRoaXMuaW5BcHApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0ub25tb3VzZSA9IHRoaXMub3Blbm1vdXNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0udG9vbHRpcFNob3cgPSB0aGlzLnRvb2x0aXBTaG93O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b20gPSB0aGlzLnRvb2x0aXBDdXN0b207XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXS5sYXN0RHJhd1RpbWUgPSB0aGlzLmxhc3REcmF3VGltZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSBmb3JtYXR0ZXJBc3NpZ24oY2Z1Lm9wdGlvbltjaWRdLCBjZnUuZm9ybWF0dGVyKVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnR5cGUyZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHF1ZXJ5XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQuc2VsZWN0KCcjJyArIGNpZClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC5maWVsZHMoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaXplOiB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0LmV4ZWMocmVzID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKHJlc1swXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IHJlc1swXS5ub2RlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5yb3RhdGVMb2NrID0gY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udXBkYXRlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNhbnZhcy5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMuX3dpZHRoID0gZGF0YS53aWR0aCAqIHRoaXMucGl4ZWw7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSwgMTAwKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCflj4LmlbDplJnor6/vvJrlvIDlkK8yZOaooeW8j+WQju+8jOacquiOt+WPluWIsGRvbeiKgueCue+8jGNhbnZhcy1pZDonICsgY2lkO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5pbkFsaSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjZnUub3B0aW9uW2NpZF0uY29udGV4dCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KGNpZCwgdGhpcyk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnJlc3RvcmUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9uZXdDaGFydChjaWQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9LCAxMDApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICfluIPlsYDplJnor6/vvJrmnKrojrflj5bliLDniLblhYPntKDlrr3pq5jlsLrlr7jvvIFjYW52YXMtaWQ6JyArIGNpZDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuZXhlYygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzYXZlSW1hZ2UoKSB7XHJcblx0XHRcdFx0dW5pLmNhbnZhc1RvVGVtcEZpbGVQYXRoKHtcclxuXHRcdFx0XHRcdGNhbnZhc0lkOiB0aGlzLmNpZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdC8vI2lmZGVmIEg1XHJcblx0XHRcdFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcblx0XHRcdFx0XHRcdGEuaHJlZiA9IHJlcy50ZW1wRmlsZVBhdGg7XHJcblx0XHRcdFx0XHRcdGEuZG93bmxvYWQgPSB0aGlzLmNpZDtcclxuXHRcdFx0XHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG5cdFx0XHRcdFx0XHRhLmNsaWNrKCk7XHJcblx0XHRcdFx0XHRcdC8vI2VuZGlmXHJcblx0XHRcdFx0XHRcdC8vI2lmbmRlZiBINVxyXG5cdFx0XHRcdFx0XHR1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcblx0XHRcdFx0XHRcdFx0ZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcblx0XHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfkv53lrZjmiJDlip8nLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMFxyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Ly8jZW5kaWZcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LCB0aGlzKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0SW1hZ2UoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMudHlwZTJkID09IGZhbHNlKSB7XHJcblx0XHRcdFx0XHR1bmkuY2FudmFzVG9UZW1wRmlsZVBhdGgoe1xyXG5cdFx0XHRcdFx0XHRjYW52YXNJZDogdGhpcy5jaWQsXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6ICdnZXRJbWFnZScsXHJcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbWFnZVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRiYXNlNjQ6IHJlcy50ZW1wRmlsZVBhdGhcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSwgdGhpcyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG5cdFx0XHRcdFx0cXVlcnlcclxuXHRcdFx0XHRcdFx0LnNlbGVjdCgnIycgKyB0aGlzLmNpZClcclxuXHRcdFx0XHRcdFx0LmZpZWxkcyh7XHJcblx0XHRcdFx0XHRcdFx0bm9kZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRzaXplOiB0cnVlXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdC5leGVjKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlc1swXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgY2FudmFzID0gcmVzWzBdLm5vZGU7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiAnZ2V0SW1hZ2UnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImdldEltYWdlXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YmFzZTY0OiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gI2lmbmRlZiBBUFAtVlVFIHx8IEg1XHJcblx0XHRcdF9uZXdDaGFydChjaWQpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdID0gbmV3IHVDaGFydHMoY2Z1Lm9wdGlvbltjaWRdKTtcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdjb21wbGV0ZScsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5kZWxFdmVudExpc3RlbmVyKCdyZW5kZXJDb21wbGV0ZScpXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdzY3JvbGxMZWZ0JyxcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJzY3JvbGxMZWZ0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsTGVmdDogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnc2Nyb2xsUmlnaHQnLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcInNjcm9sbFJpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsUmlnaHQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdXBkYXRhVUNoYXJ0KGNpZCkge1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnVwZGF0ZURhdGEoY2Z1Lm9wdGlvbltjaWRdKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcblx0XHRcdFx0aWYgKGNhdGVnb3J5KSB7XHJcblx0XHRcdFx0XHRsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpIHtcclxuXHRcdFx0XHRcdFx0ZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWU7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X3Nob3dUb29sdGlwKGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5jaWRcclxuXHRcdFx0XHRsZXQgdGMgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbVxyXG5cdFx0XHRcdGlmICh0YyAmJiB0YyAhPT0gdW5kZWZpbmVkICYmIHRjICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRcdFx0aWYgKHRjLnggPj0gMCAmJiB0Yy55ID49IDApIHtcclxuXHRcdFx0XHRcdFx0b2Zmc2V0ID0ge1xyXG5cdFx0XHRcdFx0XHRcdHg6IHRjLngsXHJcblx0XHRcdFx0XHRcdFx0eTogdGMueSArIDEwXHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcblx0XHRcdFx0XHRcdGluZGV4OiB0Yy5pbmRleCxcclxuXHRcdFx0XHRcdFx0b2Zmc2V0OiBvZmZzZXQsXHJcblx0XHRcdFx0XHRcdHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRvcHRzKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5fdG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0X3RhcChlLCBtb3ZlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMuY2lkXHJcblx0XHRcdFx0bGV0IGN1cnJlbnRJbmRleCA9IG51bGw7XHJcblx0XHRcdFx0bGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuXHRcdFx0XHRpZiAodGhpcy5pblNjcm9sbFZpZXcgPT09IHRydWUgfHwgdGhpcy5pbkFsaSkge1xyXG5cdFx0XHRcdFx0bGV0IGNoYXJ0ZG9tID0gdW5pXHJcblx0XHRcdFx0XHRcdC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuXHRcdFx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdFx0LmluKHRoaXMpXHJcblx0XHRcdFx0XHRcdC5zZWxlY3QoJyNDaGFydEJveElkJyArIGNpZClcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdC8vICNpZmRlZiBNUC1BTElQQVlcclxuXHRcdFx0XHRcdFx0LnNlbGVjdCgnIycgKyB0aGlzLmNpZClcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdC5ib3VuZGluZ0NsaWVudFJlY3QoZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmluQWxpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC5jbGllbnRYIC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC5jbGllbnRZIC0gZGF0YS50b3BcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3BcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAobW92ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcblx0XHRcdFx0XHRcdFx0XHRsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS50b3VjaExlZ2VuZChlKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2dldEluZGV4JyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50OiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIGRhdGEudG9wXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0LmV4ZWMoKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKG1vdmUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLl9zaG93VG9vbHRpcChlKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoe1xyXG5cdFx0XHRcdFx0XHRcdHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCxcclxuXHRcdFx0XHRcdFx0XHR5OiBlLmRldGFpbC55IC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Y3VycmVudEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuXHRcdFx0XHRcdFx0bGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5lbWl0TXNnKHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnZ2V0SW5kZXgnLFxyXG5cdFx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQ6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogZS5kZXRhaWwueCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3BcclxuXHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0XHRjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdGxlZ2VuZEluZGV4OiBsZWdlbmRJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdF90b3VjaFN0YXJ0KGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5jaWRcclxuXHRcdFx0XHRsYXN0TW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG5cdFx0XHRcdGlmIChjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRuYW1lOiAnZ2V0VG91Y2hTdGFydCcsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJ0b3VjaFN0YXJ0XCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiBlLmNoYW5nZWRUb3VjaGVzWzBdLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdF90b3VjaE1vdmUoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG5cdFx0XHRcdGxldCBkdXJhdGlvbiA9IGN1cnJNb3ZlVGltZSAtIGxhc3RNb3ZlVGltZTtcclxuXHRcdFx0XHRsZXQgdG91Y2hNb3ZlTGltaXQgPSBjZnUub3B0aW9uW2NpZF0udG91Y2hNb3ZlTGltaXQgfHwgMjQ7XHJcblx0XHRcdFx0aWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47IC8v5q+P56eSNjDluKdcclxuXHRcdFx0XHRsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fdGFwKGUsIHRydWUpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm9udG91Y2ggPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiB0aGlzLm9uem9vbSA9PT0gdHJ1ZSAmJiBlXHJcblx0XHRcdFx0XHQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoID09IDIpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmRvYnVsZVpvb20oZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZW1pdE1zZyh7XHJcblx0XHRcdFx0XHRuYW1lOiAnZ2V0VG91Y2hNb3ZlJyxcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcInRvdWNoTW92ZVwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogZS5jaGFuZ2VkVG91Y2hlc1swXSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRfdG91Y2hFbmQoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLmNpZFxyXG5cdFx0XHRcdGlmIChjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsRW5kKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmVtaXRNc2coe1xyXG5cdFx0XHRcdFx0bmFtZTogJ2dldFRvdWNoRW5kJyxcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcInRvdWNoRW5kXCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiBlLmNoYW5nZWRUb3VjaGVzWzBdLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0aWYgKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RhcChlLCB0cnVlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdF9lcnJvcihlKSB7XHJcblx0XHRcdFx0dGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcblx0XHRcdH0sXHJcblx0XHRcdGVtaXRNc2cobXNnKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFJlbmRlclR5cGUoKSB7XHJcblx0XHRcdFx0Ly/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG5cdFx0XHRcdGlmICh0aGlzLmVjaGFydHMgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5iZWZvcmVJbml0KClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHRvSlNPTigpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpc1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fTtcclxuPC9zY3JpcHQ+XHJcblxyXG48IS0tICNpZmRlZiBBUFAtVlVFIHx8IEg1IC0tPlxyXG48c2NyaXB0IG1vZHVsZT1cInJkY2hhcnRzXCIgbGFuZz1cInJlbmRlcmpzXCI+XHJcblx0aW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5cdGltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuXHRpbXBvcnQgY2ZlIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctZWNoYXJ0cy5qcyc7XHJcblxyXG5cdHZhciB0aGF0ID0ge307XHJcblx0dmFyIHJvb3Rkb20gPSBudWxsO1xyXG5cclxuXHRmdW5jdGlvbiByZGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG5cdFx0Zm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcblx0XHRcdGZvciAobGV0IGtleSBpbiBhcmdzW2ldKSB7XHJcblx0XHRcdFx0aWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdFx0b3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbXHJcblx0XHRcdFx0XHRcdGldW2tleV0pID8gW10gOiB7fSwgb3JpZ2luW2tleV0sIGFyZ3NbaV1ba2V5XSkgOiBhcmdzW2ldW2tleV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gb3JpZ2luO1xyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gcmRmb3JtYXR0ZXJBc3NpZ24oYXJncywgZm9ybWF0dGVyKSB7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gYXJncykge1xyXG5cdFx0XHRpZiAoYXJncy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGFyZ3Nba2V5XSAhPT0gbnVsbCAmJiB0eXBlb2YgYXJnc1trZXldID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdHJkZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSwgZm9ybWF0dGVyKVxyXG5cdFx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBhcmdzO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRyaWQ6IG51bGxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdHJvb3Rkb20gPSB7XHJcblx0XHRcdFx0dG9wOiAwLFxyXG5cdFx0XHRcdGxlZnQ6IDBcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyAjaWZkZWYgSDVcclxuXHRcdFx0bGV0IGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLW1haW4nKVswXVxyXG5cdFx0XHRpZiAoZG0gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdGRtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndW5pLXBhZ2Utd3JhcHBlcicpWzBdXHJcblx0XHRcdH1cclxuXHRcdFx0cm9vdGRvbSA9IHtcclxuXHRcdFx0XHR0b3A6IGRtLm9mZnNldFRvcCxcclxuXHRcdFx0XHRsZWZ0OiBkbS5vZmZzZXRMZWZ0XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnJpZCA9PT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgMjAwKVxyXG5cdFx0fSxcclxuXHRcdGRlc3Ryb3llZCgpIHtcclxuXHRcdFx0ZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcblx0XHRcdGRlbGV0ZSBjZnUuaW5zdGFuY2VbdGhpcy5yaWRdXHJcblx0XHRcdGRlbGV0ZSBjZmUub3B0aW9uW3RoaXMucmlkXVxyXG5cdFx0XHRkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Ly89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG5cdFx0XHRlY2luaXQobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSBKU09OLnN0cmluZ2lmeShuZXdWYWwuaWQpXHJcblx0XHRcdFx0dGhpcy5yaWQgPSBjaWRcclxuXHRcdFx0XHR0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcblx0XHRcdFx0bGV0IGVvcHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG5cdFx0XHRcdGxldCB0eXBlID0gZW9wdHMudHlwZTtcclxuXHRcdFx0XHQvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG5cdFx0XHRcdGlmICh0eXBlICYmIGNmZS50eXBlLmluY2x1ZGVzKHR5cGUpKSB7XHJcblx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0gPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlW3R5cGVdLCBlb3B0cyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBlb3B0cyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxldCBuZXdEYXRhID0gZW9wdHMuY2hhcnREYXRhO1xyXG5cdFx0XHRcdGlmIChuZXdEYXRhKSB7XHJcblx0XHRcdFx0XHQvL+aMgui9vWNhdGVnb3JpZXPlkoxzZXJpZXNcclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ueEF4aXMgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgJiYgY2ZlLm9wdGlvbltjaWRdLnhBeGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnhBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ueUF4aXMgJiYgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLnR5cGUgJiYgY2ZlLm9wdGlvbltjaWRdLnlBeGlzLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnlBeGlzLmRhdGEgPSBuZXdEYXRhLmNhdGVnb3JpZXNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNmZS5vcHRpb25bY2lkXS5zZXJpZXMgPSBbXVxyXG5cdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBuZXdEYXRhLnNlcmllcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOlxyXG5cdFx0XHRcdFx0XHR7fVxyXG5cdFx0XHRcdFx0XHRsZXQgVGVtcGxhdGUgPSByZGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLCBuZXdEYXRhLnNlcmllc1tpXSlcclxuXHRcdFx0XHRcdFx0Y2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRcdHRoaXMubmV3RUNoYXJ0KClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtVlVFXHJcblx0XHRcdFx0XHRzY3JpcHQuc3JjID0gJy4vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9zdGF0aWMvYXBwLXBsdXMvZWNoYXJ0cy5taW4uanMnXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBINVxyXG5cdFx0XHRcdFx0Y29uc3Qgcm9vdHVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cclxuXHRcdFx0XHRcdGNvbnN0IGRpcmVjdG9yeSA9IGluc3RhbmNlLmdldERhdGFzZXQoKS5kaXJlY3RvcnlcclxuXHRcdFx0XHRcdHNjcmlwdC5zcmMgPSByb290dXJsICsgZGlyZWN0b3J5ICsgJ3VuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvc3RhdGljL2g1L2VjaGFydHMubWluLmpzJ1xyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuXHRcdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZWNyZXNpemUobmV3VmFsLCBvbGRWYWwsIG93bmVyLCBpbnN0YW5jZSkge1xyXG5cdFx0XHRcdGlmIChjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKSB7XHJcblx0XHRcdFx0XHRjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRuZXdFQ2hhcnQoKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0aWYgKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcblx0XHRcdFx0XHQvL29udGFw5byA5ZCv5ZCO5omN6Kem5Y+RY2xpY2vkuovku7ZcclxuXHRcdFx0XHRcdGlmIChjZmUub3B0aW9uW2NpZF0ub250YXAgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0Y2ZlLmluc3RhbmNlW2NpZF0ub24oJ2NsaWNrJywgcmVzZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGV2ZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0XHRcdFx0XHR4OiByZXNkYXRhLmV2ZW50Lm9mZnNldFgsXHJcblx0XHRcdFx0XHRcdFx0XHR5OiByZXNkYXRhLmV2ZW50Lm9mZnNldFlcclxuXHRcdFx0XHRcdFx0XHR9KSlcclxuXHRcdFx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0SW5kZXhcIixcclxuXHRcdFx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImdldEluZGV4XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50OiBldmVudCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudEluZGV4OiByZXNkYXRhLmRhdGFJbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6IHJlc2RhdGEuZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2VyaWVzTmFtZTogcmVzZGF0YS5zZXJpZXNOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogY2lkXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0Ly8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcblx0XHRcdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdoaWdobGlnaHQnLCByZXNkYXRhID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0SGlnaGxpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJoaWdobGlnaHRcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVzOiByZXNkYXRhLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZDogY2lkXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMudXBkYXRhRUNoYXJ0KGNpZCwgY2ZlLm9wdGlvbltjaWRdKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0YUVDaGFydChjaWQsIGNmZS5vcHRpb25bY2lkXSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHVwZGF0YUVDaGFydChjaWQsIG9wdGlvbikge1xyXG5cdFx0XHRcdC8v5pu/5o2ib3B0aW9u5YaFZm9ybWF05bGe5oCn5Li6Zm9ybWF0dGVy55qE6aKE5a6a5LmJ5pa55rOVXHJcblx0XHRcdFx0b3B0aW9uID0gcmRmb3JtYXR0ZXJBc3NpZ24ob3B0aW9uLCBjZmUuZm9ybWF0dGVyKVxyXG5cdFx0XHRcdGlmIChvcHRpb24udG9vbHRpcCkge1xyXG5cdFx0XHRcdFx0b3B0aW9uLnRvb2x0aXAuc2hvdyA9IG9wdGlvbi50b29sdGlwU2hvdyA/IHRydWUgOiBmYWxzZTtcclxuXHRcdFx0XHRcdG9wdGlvbi50b29sdGlwLnBvc2l0aW9uID0gdGhpcy50b29sdGlwUG9zaXRpb24oKVxyXG5cdFx0XHRcdFx0Ly90b29sdGlwRm9ybWF05pa55rOV77yM5pu/5o2i57uE5Lu255qEdG9vbHRpcEZvcm1hdOS4umNvbmZpZy1lY2hhcnRzLmpz5YaF5a+55bqU55qE5pa55rOVXHJcblx0XHRcdFx0XHRpZiAodHlwZW9mIG9wdGlvbi50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZmUuZm9ybWF0dGVyW29wdGlvbi50b29sdGlwRm9ybWF0XSkge1xyXG5cdFx0XHRcdFx0XHRvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPSBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgPyBvcHRpb24udG9vbHRpcC5mb3JtYXR0ZXIgOiBjZmUuZm9ybWF0dGVyW1xyXG5cdFx0XHRcdFx0XHRcdG9wdGlvbi50b29sdGlwRm9ybWF0XVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDpopzoibLmuJDlj5jmt7vliqDnmoTmlrnms5VcclxuXHRcdFx0XHRpZiAob3B0aW9uLnNlcmllcykge1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSBpbiBvcHRpb24uc2VyaWVzKSB7XHJcblx0XHRcdFx0XHRcdGxldCBsaW5lYXJHcmFkaWVudCA9IG9wdGlvbi5zZXJpZXNbaV0ubGluZWFyR3JhZGllbnRcclxuXHRcdFx0XHRcdFx0aWYgKGxpbmVhckdyYWRpZW50KSB7XHJcblx0XHRcdFx0XHRcdFx0b3B0aW9uLnNlcmllc1tpXS5jb2xvciA9IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQobGluZWFyR3JhZGllbnRbMF0sIGxpbmVhckdyYWRpZW50W1xyXG5cdFx0XHRcdFx0XHRcdFx0MV0sIGxpbmVhckdyYWRpZW50WzJdLCBsaW5lYXJHcmFkaWVudFszXSwgbGluZWFyR3JhZGllbnRbNF0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y2ZlLmluc3RhbmNlW2NpZF0uc2V0T3B0aW9uKG9wdGlvbiwgb3B0aW9uLm5vdE1lcmdlKVxyXG5cdFx0XHRcdGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdmaW5pc2hlZCcsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJjb21wbGV0ZVwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBjaWRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdGlmIChjZmUuaW5zdGFuY2VbY2lkXSkge1xyXG5cdFx0XHRcdFx0XHRjZmUuaW5zdGFuY2VbY2lkXS5vZmYoJ2ZpbmlzaGVkJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0Ly/kv67lpI1pbml05Yid5aeL5YyW5a6e5L6L6I635Y+W5a696auY5LiN5q2j56Gu6Zeu6aKYXHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0dHlwZW9mIHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0uY2xpZW50V2lkdGggIT0gJ3VuZGVmaW5lZCcgJiZcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0TWF0aC5hYnModGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldFdpZHRoKCkpID4gMyB8fFxyXG5cdFx0XHRcdFx0XHRNYXRoLmFicyh0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldEhlaWdodCgpKSA+IDNcclxuXHRcdFx0XHRcdClcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZWNyZXNpemUoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHRvb2x0aXBQb3NpdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gKHBvaW50LCBwYXJhbXMsIGRvbSwgcmVjdCwgc2l6ZSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IHggPSBwb2ludFswXVxyXG5cdFx0XHRcdFx0bGV0IHkgPSBwb2ludFsxXVxyXG5cdFx0XHRcdFx0bGV0IHZpZXdXaWR0aCA9IHNpemUudmlld1NpemVbMF1cclxuXHRcdFx0XHRcdGxldCB2aWV3SGVpZ2h0ID0gc2l6ZS52aWV3U2l6ZVsxXVxyXG5cdFx0XHRcdFx0bGV0IGJveFdpZHRoID0gc2l6ZS5jb250ZW50U2l6ZVswXVxyXG5cdFx0XHRcdFx0bGV0IGJveEhlaWdodCA9IHNpemUuY29udGVudFNpemVbMV1cclxuXHRcdFx0XHRcdGxldCBwb3NYID0geCArIDMwXHJcblx0XHRcdFx0XHRsZXQgcG9zWSA9IHkgKyAzMFxyXG5cdFx0XHRcdFx0aWYgKHBvc1ggKyBib3hXaWR0aCA+IHZpZXdXaWR0aCkge1xyXG5cdFx0XHRcdFx0XHRwb3NYID0geCAtIGJveFdpZHRoIC0gMzBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChwb3NZICsgYm94SGVpZ2h0ID4gdmlld0hlaWdodCkge1xyXG5cdFx0XHRcdFx0XHRwb3NZID0geSAtIGJveEhlaWdodCAtIDMwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gW3Bvc1gsIHBvc1ldXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLz09PT09PT09PT09PT095Lul5LiL5pivdUNoYXJ0c+eahOaWueazlT09PT09PT09PT09PT09PT09PT09XHJcblx0XHRcdHVjaW5pdChuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKSB7XHJcblx0XHRcdFx0aWYgKEpTT04uc3RyaW5naWZ5KG5ld1ZhbCkgPT0gSlNPTi5zdHJpbmdpZnkob2xkVmFsKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoIW5ld1ZhbC5jYW52YXNJZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgY2lkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwuY2FudmFzSWQpKVxyXG5cdFx0XHRcdHRoaXMucmlkID0gY2lkXHJcblx0XHRcdFx0dGhhdFtjaWRdID0gdGhpcy4kb3duZXJJbnN0YW5jZSB8fCBpbnN0YW5jZVxyXG5cdFx0XHRcdGNmdS5vcHRpb25bY2lkXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuXHRcdFx0XHRjZnUub3B0aW9uW2NpZF0gPSByZGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sIGNmdS5mb3JtYXR0ZXIpXHJcblx0XHRcdFx0bGV0IGNhbnZhc2RvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpZClcclxuXHRcdFx0XHRpZiAoY2FudmFzZG9tICYmIGNhbnZhc2RvbS5jaGlsZHJlblswXSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSBjYW52YXNkb20uY2hpbGRyZW5bMF0uZ2V0Q29udGV4dChcIjJkXCIpXHJcblx0XHRcdFx0XHRpZiAoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGFVQ2hhcnQoKVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG5cdFx0XHRcdFx0XHRcdGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm5ld1VDaGFydCgpXHJcblx0XHRcdFx0XHRcdH0sIDEwMClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdG5ld1VDaGFydCgpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzUkQoY2Z1Lm9wdGlvbltjaWRdKVxyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiY29tcGxldGVcIixcclxuXHRcdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdFx0dHlwZTogXCJjb21wbGV0ZVwiLFxyXG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJzY3JvbGxMZWZ0XCIsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwic2Nyb2xsTGVmdFwiLFxyXG5cdFx0XHRcdFx0XHRcdHNjcm9sbExlZnQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsUmlnaHQnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJzY3JvbGxSaWdodFwiLFxyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcInNjcm9sbFJpZ2h0XCIsXHJcblx0XHRcdFx0XHRcdFx0c2Nyb2xsUmlnaHQ6IHRydWUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHVwZGF0YVVDaGFydCgpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuXHRcdFx0fSxcclxuXHRcdFx0dG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSB7XHJcblx0XHRcdFx0aWYgKGNhdGVnb3J5KSB7XHJcblx0XHRcdFx0XHRsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpIHtcclxuXHRcdFx0XHRcdFx0ZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0ucHJvcGVydGllcyAmJiBpdGVtLnByb3BlcnRpZXMubmFtZSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWU7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0c2hvd1Rvb2x0aXAoZSwgY2lkKSB7XHJcblx0XHRcdFx0bGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuXHRcdFx0XHRpZiAodGMgJiYgdGMgIT09IHVuZGVmaW5lZCAmJiB0YyAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0bGV0IG9mZnNldCA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHRcdGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcblx0XHRcdFx0XHRcdG9mZnNldCA9IHtcclxuXHRcdFx0XHRcdFx0XHR4OiB0Yy54LFxyXG5cdFx0XHRcdFx0XHRcdHk6IHRjLnkgKyAxMFxyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRpbmRleDogdGMuaW5kZXgsXHJcblx0XHRcdFx0XHRcdG9mZnNldDogb2Zmc2V0LFxyXG5cdFx0XHRcdFx0XHR0ZXh0TGlzdDogdGMudGV4dExpc3QsXHJcblx0XHRcdFx0XHRcdGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0b3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLnRvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG5cdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0YXAoZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLnJpZFxyXG5cdFx0XHRcdGxldCBvbnRhcCA9IGNmdS5vcHRpb25bY2lkXS5vbnRhcFxyXG5cdFx0XHRcdGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG5cdFx0XHRcdGxldCB0YXBMZWdlbmQgPSBjZnUub3B0aW9uW2NpZF0udGFwTGVnZW5kXHJcblx0XHRcdFx0aWYgKG9udGFwID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IGN1cnJlbnRJbmRleCA9IG51bGxcclxuXHRcdFx0XHRsZXQgbGVnZW5kSW5kZXggPSBudWxsXHJcblx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0bGV0IHRtcGUgPSB7fVxyXG5cdFx0XHRcdGlmIChlLmRldGFpbC54KSB7IC8vdGFw5oiW6ICFY2xpY2vnmoTkuovku7ZcclxuXHRcdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHRcdHg6IGUuZGV0YWlsLnggLSByY2hhcnRkb20ubGVmdCxcclxuXHRcdFx0XHRcdFx0eTogZS5kZXRhaWwueSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSB7IC8vbW91c2XnmoTkuovku7ZcclxuXHRcdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHRcdHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LFxyXG5cdFx0XHRcdFx0XHR5OiBlLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3BcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG5cdFx0XHRcdGN1cnJlbnRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSlcclxuXHRcdFx0XHRsZWdlbmRJbmRleCA9IGNmdS5pbnN0YW5jZVtjaWRdLmdldExlZ2VuZERhdGFJbmRleChlKVxyXG5cdFx0XHRcdGlmICh0YXBMZWdlbmQgPT09IHRydWUpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodG9vbHRpcFNob3cgPT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChlLCBjaWQpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJywge1xyXG5cdFx0XHRcdFx0bmFtZTogXCJnZXRJbmRleFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwiZ2V0SW5kZXhcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IHRtcGUsXHJcblx0XHRcdFx0XHRcdGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LFxyXG5cdFx0XHRcdFx0XHRsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0b3VjaFN0YXJ0KGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcblx0XHRcdFx0aWYgKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuXHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLnRvdWNoZXMubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hTdGFydFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwidG91Y2hTdGFydFwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogZS5jaGFuZ2VkVG91Y2hlc1swXSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHRvdWNoTW92ZShlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG5cdFx0XHRcdGlmIChvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSkge1xyXG5cdFx0XHRcdFx0Y2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IGZhbHNlICYmIGNmdS5vcHRpb25bY2lkXVxyXG5cdFx0XHRcdFx0Lm9ubW92ZXRpcCA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0XHRsZXQgdG1wZSA9IHtcclxuXHRcdFx0XHRcdFx0eDogZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsXHJcblx0XHRcdFx0XHRcdHk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcblx0XHRcdFx0XHRpZiAoY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2hvd1Rvb2x0aXAoZSwgY2lkKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAob250b3VjaCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5vbnpvb20gPT09IHRydWUgJiYgZVxyXG5cdFx0XHRcdFx0LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAyKSB7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5kb2J1bGVab29tKGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycsIHtcclxuXHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hNb3ZlXCIsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJ0b3VjaE1vdmVcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IGUuY2hhbmdlZFRvdWNoZXNbMF0sXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0b3VjaEVuZChlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG5cdFx0XHRcdGlmIChvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJywge1xyXG5cdFx0XHRcdFx0bmFtZTogXCJnZXRUb3VjaEVuZFwiLFxyXG5cdFx0XHRcdFx0cGFyYW1zOiB7XHJcblx0XHRcdFx0XHRcdHR5cGU6IFwidG91Y2hFbmRcIixcclxuXHRcdFx0XHRcdFx0ZXZlbnQ6IGUuY2hhbmdlZFRvdWNoZXNbMF0sXHJcblx0XHRcdFx0XHRcdGlkOiBjaWQsXHJcblx0XHRcdFx0XHRcdG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb3VzZURvd24oZSkge1xyXG5cdFx0XHRcdGxldCBjaWQgPSB0aGlzLnJpZFxyXG5cdFx0XHRcdGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuXHRcdFx0XHRpZiAob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG5cdFx0XHRcdGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnICsgY2lkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG5cdFx0XHRcdGxldCB0bXBlID0ge31cclxuXHRcdFx0XHR0bXBlID0ge1xyXG5cdFx0XHRcdFx0eDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsXHJcblx0XHRcdFx0XHR5OiBlLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3BcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG5cdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbFN0YXJ0KGUpXHJcblx0XHRcdFx0Y2Z1Lm9wdGlvbltjaWRdLm1vdXNlZG93biA9IHRydWU7XHJcblx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRuYW1lOiBcImdldFRvdWNoU3RhcnRcIixcclxuXHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIm1vdXNlRG93blwiLFxyXG5cdFx0XHRcdFx0XHRldmVudDogdG1wZSxcclxuXHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0b3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdG1vdXNlTW92ZShlKSB7XHJcblx0XHRcdFx0bGV0IGNpZCA9IHRoaXMucmlkXHJcblx0XHRcdFx0bGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG5cdFx0XHRcdGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG5cdFx0XHRcdGlmIChvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcblx0XHRcdFx0bGV0IHJjaGFydGRvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVQycgKyBjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdFx0bGV0IHRtcGUgPSB7fVxyXG5cdFx0XHRcdHRtcGUgPSB7XHJcblx0XHRcdFx0XHR4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCxcclxuXHRcdFx0XHRcdHk6IGUuY2xpZW50WSAtIHJjaGFydGRvbS50b3AgKyByb290ZG9tLnRvcFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcblx0XHRcdFx0ZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcblx0XHRcdFx0aWYgKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pIHtcclxuXHRcdFx0XHRcdGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG5cdFx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiZ2V0VG91Y2hNb3ZlXCIsXHJcblx0XHRcdFx0XHRcdHBhcmFtczoge1xyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IFwibW91c2VNb3ZlXCIsXHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQ6IHRtcGUsXHJcblx0XHRcdFx0XHRcdFx0aWQ6IGNpZCxcclxuXHRcdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSBlbHNlIGlmIChjZnUuaW5zdGFuY2VbY2lkXSkge1xyXG5cdFx0XHRcdFx0aWYgKHRvb2x0aXBTaG93ID09IHRydWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zaG93VG9vbHRpcChlLCBjaWQpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRtb3VzZVVwKGUpIHtcclxuXHRcdFx0XHRsZXQgY2lkID0gdGhpcy5yaWRcclxuXHRcdFx0XHRsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcblx0XHRcdFx0aWYgKG9ubW91c2UgPT0gZmFsc2UpIHJldHVybjtcclxuXHRcdFx0XHRsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJyArIGNpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuXHRcdFx0XHRsZXQgdG1wZSA9IHt9XHJcblx0XHRcdFx0dG1wZSA9IHtcclxuXHRcdFx0XHRcdHg6IGUuY2xpZW50WCAtIHJjaGFydGRvbS5sZWZ0LFxyXG5cdFx0XHRcdFx0eTogZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuXHRcdFx0XHRlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuXHRcdFx0XHRjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSlcclxuXHRcdFx0XHRjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duID0gZmFsc2U7XHJcblx0XHRcdFx0dGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLCB7XHJcblx0XHRcdFx0XHRuYW1lOiBcImdldFRvdWNoRW5kXCIsXHJcblx0XHRcdFx0XHRwYXJhbXM6IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogXCJtb3VzZVVwXCIsXHJcblx0XHRcdFx0XHRcdGV2ZW50OiB0bXBlLFxyXG5cdFx0XHRcdFx0XHRpZDogY2lkLFxyXG5cdFx0XHRcdFx0XHRvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG48IS0tICNlbmRpZiAtLT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcblx0LmNoYXJ0c3ZpZXcge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///115\n"); /***/ }), /* 116 */ @@ -10904,7 +10917,7 @@ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/inte Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; +exports.uniCloud = exports.default = exports.UniCloudError = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 125)); var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 127)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 118)); @@ -10919,7 +10932,7 @@ var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/ru var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 141)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 142)); var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 143)); -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e33) { throw _e33; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e34) { didErr = true; err = _e34; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } +function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e34) { throw _e34; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e35) { didErr = true; err = _e35; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } @@ -11006,7 +11019,6 @@ var s = n(function (e, t) { }, random: function random(t) { for (var n, s = [], r = function r(t) { - t = t; var n = 987654321, s = 4294967295; return function () { @@ -11158,18 +11170,18 @@ var s = n(function (e, t) { y = e[t + 6], _ = e[t + 7], w = e[t + 8], - v = e[t + 9], - I = e[t + 10], + I = e[t + 9], + v = e[t + 10], S = e[t + 11], - b = e[t + 12], - k = e[t + 13], - A = e[t + 14], - C = e[t + 15], - P = i[0], - T = i[1], - x = i[2], + T = e[t + 12], + b = e[t + 13], + E = e[t + 14], + k = e[t + 15], + A = i[0], + P = i[1], + C = i[2], O = i[3]; - P = u(P, T, x, O, o, 7, a[0]), O = u(O, P, T, x, c, 12, a[1]), x = u(x, O, P, T, p, 17, a[2]), T = u(T, x, O, P, f, 22, a[3]), P = u(P, T, x, O, g, 7, a[4]), O = u(O, P, T, x, m, 12, a[5]), x = u(x, O, P, T, y, 17, a[6]), T = u(T, x, O, P, _, 22, a[7]), P = u(P, T, x, O, w, 7, a[8]), O = u(O, P, T, x, v, 12, a[9]), x = u(x, O, P, T, I, 17, a[10]), T = u(T, x, O, P, S, 22, a[11]), P = u(P, T, x, O, b, 7, a[12]), O = u(O, P, T, x, k, 12, a[13]), x = u(x, O, P, T, A, 17, a[14]), P = h(P, T = u(T, x, O, P, C, 22, a[15]), x, O, c, 5, a[16]), O = h(O, P, T, x, y, 9, a[17]), x = h(x, O, P, T, S, 14, a[18]), T = h(T, x, O, P, o, 20, a[19]), P = h(P, T, x, O, m, 5, a[20]), O = h(O, P, T, x, I, 9, a[21]), x = h(x, O, P, T, C, 14, a[22]), T = h(T, x, O, P, g, 20, a[23]), P = h(P, T, x, O, v, 5, a[24]), O = h(O, P, T, x, A, 9, a[25]), x = h(x, O, P, T, f, 14, a[26]), T = h(T, x, O, P, w, 20, a[27]), P = h(P, T, x, O, k, 5, a[28]), O = h(O, P, T, x, p, 9, a[29]), x = h(x, O, P, T, _, 14, a[30]), P = l(P, T = h(T, x, O, P, b, 20, a[31]), x, O, m, 4, a[32]), O = l(O, P, T, x, w, 11, a[33]), x = l(x, O, P, T, S, 16, a[34]), T = l(T, x, O, P, A, 23, a[35]), P = l(P, T, x, O, c, 4, a[36]), O = l(O, P, T, x, g, 11, a[37]), x = l(x, O, P, T, _, 16, a[38]), T = l(T, x, O, P, I, 23, a[39]), P = l(P, T, x, O, k, 4, a[40]), O = l(O, P, T, x, o, 11, a[41]), x = l(x, O, P, T, f, 16, a[42]), T = l(T, x, O, P, y, 23, a[43]), P = l(P, T, x, O, v, 4, a[44]), O = l(O, P, T, x, b, 11, a[45]), x = l(x, O, P, T, C, 16, a[46]), P = d(P, T = l(T, x, O, P, p, 23, a[47]), x, O, o, 6, a[48]), O = d(O, P, T, x, _, 10, a[49]), x = d(x, O, P, T, A, 15, a[50]), T = d(T, x, O, P, m, 21, a[51]), P = d(P, T, x, O, b, 6, a[52]), O = d(O, P, T, x, f, 10, a[53]), x = d(x, O, P, T, I, 15, a[54]), T = d(T, x, O, P, c, 21, a[55]), P = d(P, T, x, O, w, 6, a[56]), O = d(O, P, T, x, C, 10, a[57]), x = d(x, O, P, T, y, 15, a[58]), T = d(T, x, O, P, k, 21, a[59]), P = d(P, T, x, O, g, 6, a[60]), O = d(O, P, T, x, S, 10, a[61]), x = d(x, O, P, T, p, 15, a[62]), T = d(T, x, O, P, v, 21, a[63]), i[0] = i[0] + P | 0, i[1] = i[1] + T | 0, i[2] = i[2] + x | 0, i[3] = i[3] + O | 0; + A = u(A, P, C, O, o, 7, a[0]), O = u(O, A, P, C, c, 12, a[1]), C = u(C, O, A, P, p, 17, a[2]), P = u(P, C, O, A, f, 22, a[3]), A = u(A, P, C, O, g, 7, a[4]), O = u(O, A, P, C, m, 12, a[5]), C = u(C, O, A, P, y, 17, a[6]), P = u(P, C, O, A, _, 22, a[7]), A = u(A, P, C, O, w, 7, a[8]), O = u(O, A, P, C, I, 12, a[9]), C = u(C, O, A, P, v, 17, a[10]), P = u(P, C, O, A, S, 22, a[11]), A = u(A, P, C, O, T, 7, a[12]), O = u(O, A, P, C, b, 12, a[13]), C = u(C, O, A, P, E, 17, a[14]), A = h(A, P = u(P, C, O, A, k, 22, a[15]), C, O, c, 5, a[16]), O = h(O, A, P, C, y, 9, a[17]), C = h(C, O, A, P, S, 14, a[18]), P = h(P, C, O, A, o, 20, a[19]), A = h(A, P, C, O, m, 5, a[20]), O = h(O, A, P, C, v, 9, a[21]), C = h(C, O, A, P, k, 14, a[22]), P = h(P, C, O, A, g, 20, a[23]), A = h(A, P, C, O, I, 5, a[24]), O = h(O, A, P, C, E, 9, a[25]), C = h(C, O, A, P, f, 14, a[26]), P = h(P, C, O, A, w, 20, a[27]), A = h(A, P, C, O, b, 5, a[28]), O = h(O, A, P, C, p, 9, a[29]), C = h(C, O, A, P, _, 14, a[30]), A = l(A, P = h(P, C, O, A, T, 20, a[31]), C, O, m, 4, a[32]), O = l(O, A, P, C, w, 11, a[33]), C = l(C, O, A, P, S, 16, a[34]), P = l(P, C, O, A, E, 23, a[35]), A = l(A, P, C, O, c, 4, a[36]), O = l(O, A, P, C, g, 11, a[37]), C = l(C, O, A, P, _, 16, a[38]), P = l(P, C, O, A, v, 23, a[39]), A = l(A, P, C, O, b, 4, a[40]), O = l(O, A, P, C, o, 11, a[41]), C = l(C, O, A, P, f, 16, a[42]), P = l(P, C, O, A, y, 23, a[43]), A = l(A, P, C, O, I, 4, a[44]), O = l(O, A, P, C, T, 11, a[45]), C = l(C, O, A, P, k, 16, a[46]), A = d(A, P = l(P, C, O, A, p, 23, a[47]), C, O, o, 6, a[48]), O = d(O, A, P, C, _, 10, a[49]), C = d(C, O, A, P, E, 15, a[50]), P = d(P, C, O, A, m, 21, a[51]), A = d(A, P, C, O, T, 6, a[52]), O = d(O, A, P, C, f, 10, a[53]), C = d(C, O, A, P, v, 15, a[54]), P = d(P, C, O, A, c, 21, a[55]), A = d(A, P, C, O, w, 6, a[56]), O = d(O, A, P, C, k, 10, a[57]), C = d(C, O, A, P, y, 15, a[58]), P = d(P, C, O, A, b, 21, a[59]), A = d(A, P, C, O, g, 6, a[60]), O = d(O, A, P, C, S, 10, a[61]), C = d(C, O, A, P, p, 15, a[62]), P = d(P, C, O, A, I, 21, a[63]), i[0] = i[0] + A | 0, i[1] = i[1] + P | 0, i[2] = i[2] + C | 0, i[3] = i[3] + O | 0; }, _doFinalize: function _doFinalize() { var t = this._data, @@ -11299,22 +11311,28 @@ var s = n(function (e, t) { }; }(), n.enc.Base64); }); -var c = "FUNCTION", - u = "OBJECT", - h = "CLIENT_DB", - l = "pending", - d = "fulfilled", - p = "rejected"; -function f(e) { +var c = "uni_id_token", + u = "uni_id_token_expired", + h = "uniIdToken", + l = { + DEFAULT: "FUNCTION", + FUNCTION: "FUNCTION", + OBJECT: "OBJECT", + CLIENT_DB: "CLIENT_DB" + }, + d = "pending", + p = "fulfilled", + f = "rejected"; +function g(e) { return Object.prototype.toString.call(e).slice(8, -1).toLowerCase(); } -function g(e) { - return "object" === f(e); -} function m(e) { - return "function" == typeof e; + return "object" === g(e); } function y(e) { + return "function" == typeof e; +} +function _(e) { return function () { try { return e.apply(e, arguments); @@ -11323,14 +11341,14 @@ function y(e) { } }; } -var _ = "REJECTED", - w = "NOT_PENDING"; +var w = "REJECTED", + I = "NOT_PENDING"; var v = /*#__PURE__*/function () { function v() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref.createPromise, _ref$retryRule = _ref.retryRule, - t = _ref$retryRule === void 0 ? _ : _ref$retryRule; + t = _ref$retryRule === void 0 ? w : _ref$retryRule; (0, _classCallCheck2.default)(this, v); this.createPromise = e, this.status = null, this.promise = null, this.retryRule = t; } @@ -11339,103 +11357,172 @@ var v = /*#__PURE__*/function () { get: function get() { if (!this.status) return !0; switch (this.retryRule) { - case _: - return this.status === p; case w: - return this.status !== l; + return this.status === f; + case I: + return this.status !== d; } } }, { key: "exec", value: function exec() { var _this = this; - return this.needRetry ? (this.status = l, this.promise = this.createPromise().then(function (e) { - return _this.status = d, Promise.resolve(e); + return this.needRetry ? (this.status = d, this.promise = this.createPromise().then(function (e) { + return _this.status = p, Promise.resolve(e); }, function (e) { - return _this.status = p, Promise.reject(e); + return _this.status = f, Promise.reject(e); }), this.promise) : this.promise; } }]); return v; }(); -function I(e) { +var S = /*#__PURE__*/function () { + function S() { + (0, _classCallCheck2.default)(this, S); + this._callback = {}; + } + (0, _createClass2.default)(S, [{ + key: "addListener", + value: function addListener(e, t) { + this._callback[e] || (this._callback[e] = []), this._callback[e].push(t); + } + }, { + key: "on", + value: function on(e, t) { + return this.addListener(e, t); + } + }, { + key: "removeListener", + value: function removeListener(e, t) { + if (!t) throw new Error('The "listener" argument must be of type function. Received undefined'); + var n = this._callback[e]; + if (!n) return; + var s = function (e, t) { + for (var _n2 = e.length - 1; _n2 >= 0; _n2--) { + if (e[_n2] === t) return _n2; + } + return -1; + }(n, t); + n.splice(s, 1); + } + }, { + key: "off", + value: function off(e, t) { + return this.removeListener(e, t); + } + }, { + key: "removeAllListener", + value: function removeAllListener(e) { + delete this._callback[e]; + } + }, { + key: "emit", + value: function emit(e) { + var n = this._callback[e]; + for (var _len = arguments.length, t = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + t[_key - 1] = arguments[_key]; + } + if (n) for (var _e2 = 0; _e2 < n.length; _e2++) { + n[_e2].apply(n, t); + } + } + }]); + return S; +}(); +function T(e) { return e && "string" == typeof e ? JSON.parse(e) : e; } -var S = "development" === "development", - b = "app-plus", +var b = "development" === "development", + E = "app-plus", k = "true" === false || !0 === false, - A = I([]), - C = "h5" === b ? "web" : "app-plus" === b ? "app" : b, - P = I(undefined), - T = I([]) || [], + A = T([]), + P = "h5" === E ? "web" : "app-plus" === E || "app-harmony" === E ? "app" : E, + C = T(undefined), + O = T([]) || [], x = true; -var O = ""; +var N = ""; try { - O = (__webpack_require__(/*! uni-stat-config */ 144).default || __webpack_require__(/*! uni-stat-config */ 144)).appid; + N = (__webpack_require__(/*! uni-stat-config */ 144).default || __webpack_require__(/*! uni-stat-config */ 144)).appid; } catch (e) {} -var E = {}; -function L(e) { +var R, + L = {}; +function U(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n, s; - return n = E, s = e, Object.prototype.hasOwnProperty.call(n, s) || (E[e] = t), E[e]; + return n = L, s = e, Object.prototype.hasOwnProperty.call(n, s) || (L[e] = t), L[e]; } -"app" === C && (E = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); -var R = ["invoke", "success", "fail", "complete"], - U = L("_globalUniCloudInterceptor"); -function N(e, t) { - U[e] || (U[e] = {}), g(t) && Object.keys(t).forEach(function (n) { - R.indexOf(n) > -1 && function (e, t, n) { - var s = U[e][t]; - s || (s = U[e][t] = []), -1 === s.indexOf(n) && m(n) && s.push(n); +function D() { + return R || (R = function () { + if ("undefined" != typeof globalThis) return globalThis; + if ("undefined" != typeof self) return self; + if ("undefined" != typeof window) return window; + function e() { + return this; + } + return void 0 !== e() ? e() : new Function("return this")(); + }(), R); +} +"app" === P && (L = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); +var M = ["invoke", "success", "fail", "complete"], + q = U("_globalUniCloudInterceptor"); +function F(e, t) { + q[e] || (q[e] = {}), m(t) && Object.keys(t).forEach(function (n) { + M.indexOf(n) > -1 && function (e, t, n) { + var s = q[e][t]; + s || (s = q[e][t] = []), -1 === s.indexOf(n) && y(n) && s.push(n); }(e, n, t[n]); }); } -function D(e, t) { - U[e] || (U[e] = {}), g(t) ? Object.keys(t).forEach(function (n) { - R.indexOf(n) > -1 && function (e, t, n) { - var s = U[e][t]; +function K(e, t) { + q[e] || (q[e] = {}), m(t) ? Object.keys(t).forEach(function (n) { + M.indexOf(n) > -1 && function (e, t, n) { + var s = q[e][t]; if (!s) return; var r = s.indexOf(n); r > -1 && s.splice(r, 1); }(e, n, t[n]); - }) : delete U[e]; + }) : delete q[e]; } -function M(e, t) { +function j(e, t) { return e && 0 !== e.length ? e.reduce(function (e, n) { return e.then(function () { return n(t); }); }, Promise.resolve()) : Promise.resolve(); } -function q(e, t) { - return U[e] && U[e][t] || []; +function $(e, t) { + return q[e] && q[e][t] || []; } -function F(e) { - N("callObject", e); +function B(e) { + F("callObject", e); } -var K = L("_globalUniCloudListener"), - j = "response", - $ = "needLogin", - B = "refreshToken", - W = "clientdb", - H = "cloudfunction", - z = "cloudobject"; -function J(e) { - return K[e] || (K[e] = []), K[e]; +var W = U("_globalUniCloudListener"), + H = { + RESPONSE: "response", + NEED_LOGIN: "needLogin", + REFRESH_TOKEN: "refreshToken" + }, + J = { + CLIENT_DB: "clientdb", + CLOUD_FUNCTION: "cloudfunction", + CLOUD_OBJECT: "cloudobject" + }; +function z(e) { + return W[e] || (W[e] = []), W[e]; } function V(e, t) { - var n = J(e); + var n = z(e); n.includes(t) || n.push(t); } function G(e, t) { - var n = J(e), + var n = z(e), s = n.indexOf(t); -1 !== s && n.splice(s, 1); } function Y(e, t) { - var n = J(e); - for (var _e2 = 0; _e2 < n.length; _e2++) { - (0, n[_e2])(t); + var n = z(e); + for (var _e3 = 0; _e3 < n.length; _e3++) { + (0, n[_e3])(t); } } var Q, @@ -11455,9 +11542,9 @@ function Z() { } function ee(e) { var t = {}; - for (var _n2 in e) { - var _s2 = e[_n2]; - m(_s2) && (t[_n2] = y(_s2)); + for (var _n3 in e) { + var _s2 = e[_n3]; + y(_s2) && (t[_n3] = _(_s2)); } return t; } @@ -11467,7 +11554,8 @@ var te = /*#__PURE__*/function (_Error) { function te(e) { var _this2; (0, _classCallCheck2.default)(this, te); - _this2 = _super.call(this, e.message), _this2.errMsg = e.message || e.errMsg || "unknown system error", _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; + var t = e.message || e.errMsg || "unknown system error"; + _this2 = _super.call(this, t), _this2.errMsg = t, _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; return _this2; } (0, _createClass2.default)(te, [{ @@ -11484,6 +11572,7 @@ var te = /*#__PURE__*/function (_Error) { }]); return te; }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); +exports.UniCloudError = te; var ne = { request: function request(e) { return uni.request(e); @@ -11509,19 +11598,19 @@ var ne = { }; function se() { return { - token: ne.getStorageSync("uni_id_token") || ne.getStorageSync("uniIdToken"), - tokenExpired: ne.getStorageSync("uni_id_token_expired") + token: ne.getStorageSync(c) || ne.getStorageSync(h), + tokenExpired: ne.getStorageSync(u) }; } function re() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref2.token, t = _ref2.tokenExpired; - e && ne.setStorageSync("uni_id_token", e), t && ne.setStorageSync("uni_id_token_expired", t); + e && ne.setStorageSync(c, e), t && ne.setStorageSync(u, t); } var ie, oe; function ae() { - return ie || (ie = uni.getSystemInfoSync()), ie; + return ie || (ie = "mp-weixin" === P && wx.canIUse("getAppBaseInfo") && wx.canIUse("getDeviceInfo") ? _objectSpread(_objectSpread({}, uni.getAppBaseInfo()), uni.getDeviceInfo()) : uni.getSystemInfoSync()), ie; } function ce() { var e, t; @@ -11529,9 +11618,9 @@ function ce() { if (uni.getLaunchOptionsSync) { if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return; var _uni$getLaunchOptions = uni.getLaunchOptionsSync(), - _n3 = _uni$getLaunchOptions.scene, + _n4 = _uni$getLaunchOptions.scene, _s3 = _uni$getLaunchOptions.channel; - e = _s3, t = _n3; + e = _s3, t = _n4; } } catch (e) {} return { @@ -11552,8 +11641,8 @@ function he() { r = t.uniPlatform, i = t.appId, o = ["appId", "appLanguage", "appName", "appVersion", "appVersionCode", "appWgtVersion", "browserName", "browserVersion", "deviceBrand", "deviceId", "deviceModel", "deviceType", "osName", "osVersion", "romName", "romVersion", "ua", "hostName", "hostVersion", "uniPlatform", "uniRuntimeVersion", "uniRuntimeVersionCode", "uniCompilerVersion", "uniCompilerVersionCode"]; - for (var _e3 in t) { - Object.hasOwnProperty.call(t, _e3) && -1 === o.indexOf(_e3) && delete t[_e3]; + for (var _e4 in t) { + Object.hasOwnProperty.call(t, _e4) && -1 === o.indexOf(_e4) && delete t[_e4]; } return oe = _objectSpread(_objectSpread({ PLATFORM: r, @@ -11576,13 +11665,13 @@ var le = { return new Promise(function (n, s) { t(Object.assign(e, { complete: function complete(e) { - e || (e = {}), S && "web" === C && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); + e || (e = {}), b && "web" === P && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"]; if (!e.statusCode || e.statusCode >= 400) { - var _n4 = e.data && e.data.error && e.data.error.code || "SYS_ERR", + var _n5 = e.data && e.data.error && e.data.error.code || "SYS_ERR", _r = e.data && e.data.error && e.data.error.message || e.errMsg || "request:fail"; return s(new te({ - code: _n4, + code: _n5, message: _r, requestId: t })); @@ -11623,7 +11712,7 @@ var de = /*#__PURE__*/function () { _this3.setAccessToken(e.result.accessToken); }); }, - retryRule: w + retryRule: I }); } (0, _createClass2.default)(de, [{ @@ -11727,7 +11816,9 @@ var de = /*#__PURE__*/function () { functionArgs: e.data || {} }) }; - return this.request(this.setupRequest(t)); + return this.request(_objectSpread(_objectSpread({}, this.setupRequest(t)), {}, { + timeout: e.timeout + })); } }, { key: "getOSSUploadOptionsFromPath", @@ -11792,13 +11883,13 @@ var de = /*#__PURE__*/function () { key: "uploadFile", value: function () { var _uploadFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref4) { - var e, t, _ref4$fileType, n, _ref4$cloudPathAsReal, s, r, i, o, a, c, u, h, l, d, p, g, m, y, _, _e4, w; + var e, t, _ref4$fileType, n, _ref4$cloudPathAsReal, s, r, i, o, a, c, u, h, l, d, p, f, m, y, _, _e5, w; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e = _ref4.filePath, t = _ref4.cloudPath, _ref4$fileType = _ref4.fileType, n = _ref4$fileType === void 0 ? "image" : _ref4$fileType, _ref4$cloudPathAsReal = _ref4.cloudPathAsRealPath, s = _ref4$cloudPathAsReal === void 0 ? !1 : _ref4$cloudPathAsReal, r = _ref4.onUploadProgress, i = _ref4.config; - if (!("string" !== f(t))) { + if (!("string" !== g(t))) { _context2.next = 3; break; } @@ -11849,7 +11940,7 @@ var de = /*#__PURE__*/function () { l = a.signature; d = a.host; p = a.ossPath; - g = a.id; + f = a.id; m = a.policy; y = a.ossCallbackUrl; _ = { @@ -11858,21 +11949,21 @@ var de = /*#__PURE__*/function () { OSSAccessKeyId: h, Signature: l, host: d, - id: g, + id: f, key: p, policy: m, success_action_status: 200 }; if (u && (_["x-oss-security-token"] = u), y) { - _e4 = JSON.stringify({ + _e5 = JSON.stringify({ callbackUrl: y, callbackBody: JSON.stringify({ - fileId: g, + fileId: f, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); - _.callback = le.toBase64(_e4); + _.callback = le.toBase64(_e5); } w = { url: "https://" + a.host, @@ -11899,7 +11990,7 @@ var de = /*#__PURE__*/function () { case 29: _context2.next = 31; return this.reportOSSUpload({ - id: g + id: f }); case 31: if (!_context2.sent.success) { @@ -11931,19 +12022,25 @@ var de = /*#__PURE__*/function () { }, { key: "getTempFileURL", value: function getTempFileURL() { + var _this6 = this; var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref5.fileList; return new Promise(function (t, n) { Array.isArray(e) && 0 !== e.length || n(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" - })), t({ - fileList: e.map(function (e) { - return { - fileID: e, - tempFileURL: e - }; - }) + })), _this6.getFileInfo({ + fileList: e + }).then(function (n) { + t({ + fileList: e.map(function (e, t) { + var s = n.fileList[t]; + return { + fileID: e, + tempFileURL: s && s.url || e + }; + }) + }); }); }); } @@ -12061,8 +12158,8 @@ var me = function me() {}, } var _ = s & r ^ s & i ^ r & i, w = (s << 30 | s >>> 2) ^ (s << 19 | s >>> 13) ^ (s << 10 | s >>> 22), - v = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & h ^ ~a & l) + c[p] + u[p]; - d = l, l = h, h = a, a = o + v | 0, o = i, i = r, r = s, s = v + (w + _) | 0; + I = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & h ^ ~a & l) + c[p] + u[p]; + d = l, l = h, h = a, a = o + I | 0, o = i, i = r, r = s, s = I + (w + _) | 0; } n[0] = n[0] + s | 0, n[1] = n[1] + r | 0, n[2] = n[2] + i | 0, n[3] = n[3] + o | 0, n[4] = n[4] + a | 0, n[5] = n[5] + h | 0, n[6] = n[6] + l | 0, n[7] = n[7] + d | 0; }, @@ -12085,7 +12182,7 @@ var me = function me() {}, we = n(function (e, t) { e.exports = r.HmacSHA256; }); -var ve = function ve() { +var Ie = function Ie() { var e; if (!Promise) { e = function e() {}, e.promise = {}; @@ -12101,19 +12198,32 @@ var ve = function ve() { }), e; } var t = new Promise(function (t, n) { - e = function e(_e5, s) { - return _e5 ? n(_e5) : t(s); + e = function e(_e6, s) { + return _e6 ? n(_e6) : t(s); }; }); return e.promise = t, e; }; -function Ie(e) { +function ve(e) { return void 0 === e; } function Se(e) { return "[object Null]" === Object.prototype.toString.call(e); } -var be; +function Te() { + var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + return e.replace(/([\s\S]+)\s+(请前往云开发AI小助手查看问题:.*)/, "$1"); +} +function be() { + var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 32; + var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + var n = ""; + for (var _s4 = 0; _s4 < e; _s4++) { + n += t.charAt(Math.floor(62 * Math.random())); + } + return n; +} +var Ee; function ke(e) { var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]); var n; @@ -12121,13 +12231,13 @@ function ke(e) { _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _e6 = _step.value; - var _t4 = _e6.isMatch, - _n5 = _e6.genAdapter, - _s4 = _e6.runtime; + var _e7 = _step.value; + var _t4 = _e7.isMatch, + _n6 = _e7.genAdapter, + _s5 = _e7.runtime; if (_t4()) return { - adapter: _n5(), - runtime: _s4 + adapter: _n6(), + runtime: _s5 }; } } catch (err) { @@ -12138,22 +12248,22 @@ function ke(e) { } !function (e) { e.WEB = "web", e.WX_MP = "wx_mp"; -}(be || (be = {})); +}(Ee || (Ee = {})); var Ae = { adapter: null, runtime: void 0 }, - Ce = ["anonymousUuidKey"]; -var Pe = /*#__PURE__*/function (_me) { - (0, _inherits2.default)(Pe, _me); - var _super2 = _createSuper(Pe); - function Pe() { - var _this6; - (0, _classCallCheck2.default)(this, Pe); - _this6 = _super2.call(this), Ae.adapter.root.tcbObject || (Ae.adapter.root.tcbObject = {}); - return _this6; + Pe = ["anonymousUuidKey"]; +var Ce = /*#__PURE__*/function (_me) { + (0, _inherits2.default)(Ce, _me); + var _super2 = _createSuper(Ce); + function Ce() { + var _this7; + (0, _classCallCheck2.default)(this, Ce); + _this7 = _super2.call(this), Ae.adapter.root.tcbObject || (Ae.adapter.root.tcbObject = {}); + return _this7; } - (0, _createClass2.default)(Pe, [{ + (0, _createClass2.default)(Ce, [{ key: "setItem", value: function setItem(e, t) { Ae.adapter.root.tcbObject[e] = t; @@ -12174,36 +12284,40 @@ var Pe = /*#__PURE__*/function (_me) { delete Ae.adapter.root.tcbObject; } }]); - return Pe; + return Ce; }(me); -function Te(e, t) { +function Oe(e, t) { switch (e) { case "local": - return t.localStorage || new Pe(); + return t.localStorage || new Ce(); case "none": - return new Pe(); + return new Ce(); default: - return t.sessionStorage || new Pe(); + return t.sessionStorage || new Ce(); } } var xe = /*#__PURE__*/function () { function xe(e) { (0, _classCallCheck2.default)(this, xe); if (!this._storage) { - this._persistence = Ae.adapter.primaryStorage || e.persistence, this._storage = Te(this._persistence, Ae.adapter); + this._persistence = Ae.adapter.primaryStorage || e.persistence, this._storage = Oe(this._persistence, Ae.adapter); var _t5 = "access_token_".concat(e.env), - _n6 = "access_token_expire_".concat(e.env), - _s5 = "refresh_token_".concat(e.env), + _n7 = "access_token_expire_".concat(e.env), + _s6 = "refresh_token_".concat(e.env), _r2 = "anonymous_uuid_".concat(e.env), _i = "login_type_".concat(e.env), - _o = "user_info_".concat(e.env); + _o = "device_id", + _a = "token_type_".concat(e.env), + _c = "user_info_".concat(e.env); this.keys = { accessTokenKey: _t5, - accessTokenExpireKey: _n6, - refreshTokenKey: _s5, + accessTokenExpireKey: _n7, + refreshTokenKey: _s6, anonymousUuidKey: _r2, loginTypeKey: _i, - userInfoKey: _o + userInfoKey: _c, + deviceIdKey: _o, + tokenTypeKey: _a }; } } @@ -12213,12 +12327,12 @@ var xe = /*#__PURE__*/function () { if (e === this._persistence) return; var t = "local" === this._persistence; this._persistence = e; - var n = Te(e, Ae.adapter); - for (var _e7 in this.keys) { - var _s6 = this.keys[_e7]; - if (t && Ce.includes(_e7)) continue; - var _r3 = this._storage.getItem(_s6); - Ie(_r3) || Se(_r3) || (n.setItem(_s6, _r3), this._storage.removeItem(_s6)); + var n = Oe(e, Ae.adapter); + for (var _e8 in this.keys) { + var _s7 = this.keys[_e8]; + if (t && Pe.includes(_e8)) continue; + var _r3 = this._storage.getItem(_s7); + ve(_r3) || Se(_r3) || (n.setItem(_s7, _r3), this._storage.removeItem(_s7)); } this._storage = n; } @@ -12261,30 +12375,30 @@ var xe = /*#__PURE__*/function () { }]); return xe; }(); -var Oe = {}, - Ee = {}; +var Ne = {}, + Re = {}; function Le(e) { - return Oe[e]; + return Ne[e]; } -var Re = /*#__PURE__*/(0, _createClass2.default)(function Re(e, t) { - (0, _classCallCheck2.default)(this, Re); +var Ue = /*#__PURE__*/(0, _createClass2.default)(function Ue(e, t) { + (0, _classCallCheck2.default)(this, Ue); this.data = t || null, this.name = e; }); -var Ue = /*#__PURE__*/function (_Re) { - (0, _inherits2.default)(Ue, _Re); - var _super3 = _createSuper(Ue); - function Ue(e, t) { - var _this7; - (0, _classCallCheck2.default)(this, Ue); - _this7 = _super3.call(this, "error", { +var De = /*#__PURE__*/function (_Ue) { + (0, _inherits2.default)(De, _Ue); + var _super3 = _createSuper(De); + function De(e, t) { + var _this8; + (0, _classCallCheck2.default)(this, De); + _this8 = _super3.call(this, "error", { error: e, data: t - }), _this7.error = e; - return _this7; + }), _this8.error = e; + return _this8; } - return (0, _createClass2.default)(Ue); -}(Re); -var Ne = new ( /*#__PURE__*/function () { + return (0, _createClass2.default)(De); +}(Ue); +var Me = new ( /*#__PURE__*/function () { function _class() { (0, _classCallCheck2.default)(this, _class); this._listeners = {}; @@ -12301,21 +12415,21 @@ var Ne = new ( /*#__PURE__*/function () { value: function off(e, t) { return function (e, t, n) { if (n && n[e]) { - var _s7 = n[e].indexOf(t); - -1 !== _s7 && n[e].splice(_s7, 1); + var _s8 = n[e].indexOf(t); + -1 !== _s8 && n[e].splice(_s8, 1); } }(e, t, this._listeners), this; } }, { key: "fire", value: function fire(e, t) { - if (e instanceof Ue) return console.error(e.error), this; - var n = "string" == typeof e ? new Re(e, t || {}) : e; + if (e instanceof De) return console.error(e.error), this; + var n = "string" == typeof e ? new Ue(e, t || {}) : e; var s = n.name; if (this._listens(s)) { n.target = this; - var _e8 = this._listeners[s] ? (0, _toConsumableArray2.default)(this._listeners[s]) : []; - var _iterator2 = _createForOfIteratorHelper(_e8), + var _e9 = this._listeners[s] ? (0, _toConsumableArray2.default)(this._listeners[s]) : []; + var _iterator2 = _createForOfIteratorHelper(_e9), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { @@ -12338,30 +12452,322 @@ var Ne = new ( /*#__PURE__*/function () { }]); return _class; }())(); -function De(e, t) { - Ne.on(e, t); -} -function Me(e) { - var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - Ne.fire(e, t); -} function qe(e, t) { - Ne.off(e, t); + Me.on(e, t); } -var Fe = "loginStateChanged", - Ke = "loginStateExpire", - je = "loginTypeChanged", - $e = "anonymousConverted", - Be = "refreshAccessToken"; -var We; +function Fe(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + Me.fire(e, t); +} +function Ke(e, t) { + Me.off(e, t); +} +var je = "loginStateChanged", + $e = "loginStateExpire", + Be = "loginTypeChanged", + We = "anonymousConverted", + He = "refreshAccessToken"; +var Je; !function (e) { e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL"; -}(We || (We = {})); -var He = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], - ze = { +}(Je || (Je = {})); +var ze = /*#__PURE__*/function () { + function ze() { + (0, _classCallCheck2.default)(this, ze); + this._fnPromiseMap = new Map(); + } + (0, _createClass2.default)(ze, [{ + key: "run", + value: function () { + var _run = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e, t) { + var _this9 = this; + var n; + return _regenerator.default.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + n = this._fnPromiseMap.get(e); + return _context5.abrupt("return", (n || (n = new Promise( /*#__PURE__*/function () { + var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(n, s) { + var _e10; + return _regenerator.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.prev = 0; + _context4.next = 3; + return _this9._runIdlePromise(); + case 3: + _e10 = t(); + _context4.t0 = n; + _context4.next = 7; + return _e10; + case 7: + _context4.t1 = _context4.sent; + (0, _context4.t0)(_context4.t1); + _context4.next = 14; + break; + case 11: + _context4.prev = 11; + _context4.t2 = _context4["catch"](0); + s(_context4.t2); + case 14: + _context4.prev = 14; + _this9._fnPromiseMap.delete(e); + return _context4.finish(14); + case 17: + case "end": + return _context4.stop(); + } + } + }, _callee4, null, [[0, 11, 14, 17]]); + })); + return function (_x4, _x5) { + return _ref7.apply(this, arguments); + }; + }()), this._fnPromiseMap.set(e, n)), n)); + case 2: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + function run(_x2, _x3) { + return _run.apply(this, arguments); + } + return run; + }() + }, { + key: "_runIdlePromise", + value: function _runIdlePromise() { + return Promise.resolve(); + } + }]); + return ze; +}(); +var Ve = /*#__PURE__*/function () { + function Ve(e) { + (0, _classCallCheck2.default)(this, Ve); + this._singlePromise = new ze(), this._cache = Le(e.env), this._baseURL = "https://".concat(e.env, ".ap-shanghai.tcb-api.tencentcloudapi.com"), this._reqClass = new Ae.adapter.reqClass({ + timeout: e.timeout, + timeoutMsg: "\u8BF7\u6C42\u5728".concat(e.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), + restrictedMethods: ["post"] + }); + } + (0, _createClass2.default)(Ve, [{ + key: "_getDeviceId", + value: function _getDeviceId() { + if (this._deviceID) return this._deviceID; + var e = this._cache.keys.deviceIdKey; + var t = this._cache.getStore(e); + return "string" == typeof t && t.length >= 16 && t.length <= 48 || (t = be(), this._cache.setStore(e, t)), this._deviceID = t, t; + } + }, { + key: "_request", + value: function () { + var _request2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(e, t) { + var n, + s, + _e11, + _t7, + _n8, + _args6 = arguments; + return _regenerator.default.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + n = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {}; + s = { + "x-request-id": be(), + "x-device-id": this._getDeviceId() + }; + if (!n.withAccessToken) { + _context6.next = 9; + break; + } + _e11 = this._cache.keys.tokenTypeKey; + _context6.next = 6; + return this.getAccessToken(); + case 6: + _t7 = _context6.sent; + _n8 = this._cache.getStore(_e11); + s.authorization = "".concat(_n8, " ").concat(_t7); + case 9: + return _context6.abrupt("return", this._reqClass["get" === n.method ? "get" : "post"]({ + url: "".concat(this._baseURL).concat(e), + data: t, + headers: s + })); + case 10: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + function _request(_x6, _x7) { + return _request2.apply(this, arguments); + } + return _request; + }() + }, { + key: "_fetchAccessToken", + value: function () { + var _fetchAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { + var _this10 = this; + var _this$_cache$keys, e, t, n, s, r, i, o, a, c; + return _regenerator.default.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + _this$_cache$keys = this._cache.keys, e = _this$_cache$keys.loginTypeKey, t = _this$_cache$keys.accessTokenKey, n = _this$_cache$keys.accessTokenExpireKey, s = _this$_cache$keys.tokenTypeKey, r = this._cache.getStore(e); + if (!(r && r !== Je.ANONYMOUS)) { + _context8.next = 3; + break; + } + throw new te({ + code: "INVALID_OPERATION", + message: "非匿名登录不支持刷新 access token" + }); + case 3: + _context8.next = 5; + return this._singlePromise.run("fetchAccessToken", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() { + return _regenerator.default.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + _context7.next = 2; + return _this10._request("/auth/v1/signin/anonymously", {}, { + method: "post" + }); + case 2: + return _context7.abrupt("return", _context7.sent.data); + case 3: + case "end": + return _context7.stop(); + } + } + }, _callee7); + }))); + case 5: + i = _context8.sent; + o = i.access_token; + a = i.expires_in; + c = i.token_type; + return _context8.abrupt("return", (this._cache.setStore(s, c), this._cache.setStore(t, o), this._cache.setStore(n, Date.now() + 1e3 * a), o)); + case 10: + case "end": + return _context8.stop(); + } + } + }, _callee8, this); + })); + function _fetchAccessToken() { + return _fetchAccessToken2.apply(this, arguments); + } + return _fetchAccessToken; + }() + }, { + key: "isAccessTokenExpired", + value: function isAccessTokenExpired(e, t) { + var n = !0; + return e && t && (n = t < Date.now()), n; + } + }, { + key: "getAccessToken", + value: function () { + var _getAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { + var _this$_cache$keys2, e, t, n, s; + return _regenerator.default.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + _this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = this._cache.getStore(e), s = this._cache.getStore(t); + return _context9.abrupt("return", this.isAccessTokenExpired(n, s) ? this._fetchAccessToken() : n); + case 2: + case "end": + return _context9.stop(); + } + } + }, _callee9, this); + })); + function getAccessToken() { + return _getAccessToken.apply(this, arguments); + } + return getAccessToken; + }() + }, { + key: "refreshAccessToken", + value: function () { + var _refreshAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() { + var _this$_cache$keys3, e, t, n; + return _regenerator.default.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + _this$_cache$keys3 = this._cache.keys, e = _this$_cache$keys3.accessTokenKey, t = _this$_cache$keys3.accessTokenExpireKey, n = _this$_cache$keys3.loginTypeKey; + return _context10.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.setStore(n, Je.ANONYMOUS), this.getAccessToken())); + case 2: + case "end": + return _context10.stop(); + } + } + }, _callee10, this); + })); + function refreshAccessToken() { + return _refreshAccessToken.apply(this, arguments); + } + return refreshAccessToken; + }() + }, { + key: "getUserInfo", + value: function () { + var _getUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { + var _this11 = this; + return _regenerator.default.wrap(function _callee12$(_context12) { + while (1) { + switch (_context12.prev = _context12.next) { + case 0: + return _context12.abrupt("return", this._singlePromise.run("getUserInfo", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() { + return _regenerator.default.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + _context11.next = 2; + return _this11._request("/auth/v1/user/me", {}, { + withAccessToken: !0, + method: "get" + }); + case 2: + return _context11.abrupt("return", _context11.sent.data); + case 3: + case "end": + return _context11.stop(); + } + } + }, _callee11); + })))); + case 1: + case "end": + return _context12.stop(); + } + } + }, _callee12, this); + })); + function getUserInfo() { + return _getUserInfo.apply(this, arguments); + } + return getUserInfo; + }() + }]); + return Ve; +}(); +var Ge = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], + Ye = { "X-SDK-Version": "1.3.5" }; -function Je(e, t, n) { +function Qe(e, t, n) { var s = e[t]; e[t] = function (t) { var r = {}, @@ -12375,54 +12781,54 @@ function Je(e, t, n) { var o = t.data; return o && function () { var e; - if (e = o, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, o), r);else for (var _e9 in r) { - o.append(_e9, r[_e9]); + if (e = o, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, o), r);else for (var _e12 in r) { + o.append(_e12, r[_e12]); } }(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), i), s.call(e, t); }; } -function Ve() { +function Xe() { var e = Math.random().toString(16).slice(2); return { data: { seqId: e }, - headers: _objectSpread(_objectSpread({}, ze), {}, { + headers: _objectSpread(_objectSpread({}, Ye), {}, { "x-seqid": e }) }; } -var Ge = /*#__PURE__*/function () { - function Ge() { +var Ze = /*#__PURE__*/function () { + function Ze() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - (0, _classCallCheck2.default)(this, Ge); + (0, _classCallCheck2.default)(this, Ze); var t; this.config = e, this._reqClass = new Ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] - }), this._cache = Le(this.config.env), this._localCache = (t = this.config.env, Ee[t]), Je(this._reqClass, "post", [Ve]), Je(this._reqClass, "upload", [Ve]), Je(this._reqClass, "download", [Ve]); + }), this._cache = Le(this.config.env), this._localCache = (t = this.config.env, Re[t]), this.oauth = new Ve(this.config), Qe(this._reqClass, "post", [Xe]), Qe(this._reqClass, "upload", [Xe]), Qe(this._reqClass, "download", [Xe]); } - (0, _createClass2.default)(Ge, [{ + (0, _createClass2.default)(Ze, [{ key: "post", value: function () { - var _post = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(e) { - return _regenerator.default.wrap(function _callee4$(_context4) { + var _post = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(e) { + return _regenerator.default.wrap(function _callee13$(_context13) { while (1) { - switch (_context4.prev = _context4.next) { + switch (_context13.prev = _context13.next) { case 0: - _context4.next = 2; + _context13.next = 2; return this._reqClass.post(e); case 2: - return _context4.abrupt("return", _context4.sent); + return _context13.abrupt("return", _context13.sent); case 3: case "end": - return _context4.stop(); + return _context13.stop(); } } - }, _callee4, this); + }, _callee13, this); })); - function post(_x2) { + function post(_x8) { return _post.apply(this, arguments); } return post; @@ -12430,23 +12836,23 @@ var Ge = /*#__PURE__*/function () { }, { key: "upload", value: function () { - var _upload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e) { - return _regenerator.default.wrap(function _callee5$(_context5) { + var _upload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) { + return _regenerator.default.wrap(function _callee14$(_context14) { while (1) { - switch (_context5.prev = _context5.next) { + switch (_context14.prev = _context14.next) { case 0: - _context5.next = 2; + _context14.next = 2; return this._reqClass.upload(e); case 2: - return _context5.abrupt("return", _context5.sent); + return _context14.abrupt("return", _context14.sent); case 3: case "end": - return _context5.stop(); + return _context14.stop(); } } - }, _callee5, this); + }, _callee14, this); })); - function upload(_x3) { + function upload(_x9) { return _upload.apply(this, arguments); } return upload; @@ -12454,23 +12860,23 @@ var Ge = /*#__PURE__*/function () { }, { key: "download", value: function () { - var _download = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(e) { - return _regenerator.default.wrap(function _callee6$(_context6) { + var _download = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(e) { + return _regenerator.default.wrap(function _callee15$(_context15) { while (1) { - switch (_context6.prev = _context6.next) { + switch (_context15.prev = _context15.next) { case 0: - _context6.next = 2; + _context15.next = 2; return this._reqClass.download(e); case 2: - return _context6.abrupt("return", _context6.sent); + return _context15.abrupt("return", _context15.sent); case 3: case "end": - return _context6.stop(); + return _context15.stop(); } } - }, _callee6, this); + }, _callee15, this); })); - function download(_x4) { + function download(_x10) { return _download.apply(this, arguments); } return download; @@ -12478,38 +12884,38 @@ var Ge = /*#__PURE__*/function () { }, { key: "refreshAccessToken", value: function () { - var _refreshAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() { + var _refreshAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() { var e, t; - return _regenerator.default.wrap(function _callee7$(_context7) { + return _regenerator.default.wrap(function _callee16$(_context16) { while (1) { - switch (_context7.prev = _context7.next) { + switch (_context16.prev = _context16.next) { case 0: this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); - _context7.prev = 1; - _context7.next = 4; + _context16.prev = 1; + _context16.next = 4; return this._refreshAccessTokenPromise; case 4: - e = _context7.sent; - _context7.next = 10; + e = _context16.sent; + _context16.next = 10; break; case 7: - _context7.prev = 7; - _context7.t0 = _context7["catch"](1); - t = _context7.t0; + _context16.prev = 7; + _context16.t0 = _context16["catch"](1); + t = _context16.t0; case 10: if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) { - _context7.next = 12; + _context16.next = 12; break; } throw t; case 12: - return _context7.abrupt("return", e); + return _context16.abrupt("return", e); case 13: case "end": - return _context7.stop(); + return _context16.stop(); } } - }, _callee7, this, [[1, 7]]); + }, _callee16, this, [[1, 7]]); })); function refreshAccessToken() { return _refreshAccessToken2.apply(this, arguments); @@ -12519,17 +12925,17 @@ var Ge = /*#__PURE__*/function () { }, { key: "_refreshAccessToken", value: function () { - var _refreshAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { - var _this$_cache$keys, e, t, n, s, r, i, o, a, _e10, _e11, _t7, _s8; - return _regenerator.default.wrap(function _callee8$(_context8) { + var _refreshAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() { + var _this$_cache$keys4, e, t, n, s, r, i, o, a, _e13, _e14, _t8, _s9; + return _regenerator.default.wrap(function _callee17$(_context17) { while (1) { - switch (_context8.prev = _context8.next) { + switch (_context17.prev = _context17.next) { case 0: - _this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, r = _this$_cache$keys.anonymousUuidKey; + _this$_cache$keys4 = this._cache.keys, e = _this$_cache$keys4.accessTokenKey, t = _this$_cache$keys4.accessTokenExpireKey, n = _this$_cache$keys4.refreshTokenKey, s = _this$_cache$keys4.loginTypeKey, r = _this$_cache$keys4.anonymousUuidKey; this._cache.removeStore(e), this._cache.removeStore(t); i = this._cache.getStore(n); if (i) { - _context8.next = 5; + _context17.next = 5; break; } throw new te({ @@ -12539,35 +12945,35 @@ var Ge = /*#__PURE__*/function () { o = { refresh_token: i }; - _context8.next = 8; + _context17.next = 8; return this.request("auth.fetchAccessTokenWithRefreshToken", o); case 8: - a = _context8.sent; + a = _context17.sent; if (!a.data.code) { - _context8.next = 21; + _context17.next = 21; break; } - _e10 = a.data.code; - if (!("SIGN_PARAM_INVALID" === _e10 || "REFRESH_TOKEN_EXPIRED" === _e10 || "INVALID_REFRESH_TOKEN" === _e10)) { - _context8.next = 20; + _e13 = a.data.code; + if (!("SIGN_PARAM_INVALID" === _e13 || "REFRESH_TOKEN_EXPIRED" === _e13 || "INVALID_REFRESH_TOKEN" === _e13)) { + _context17.next = 20; break; } - if (!(this._cache.getStore(s) === We.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e10)) { - _context8.next = 19; + if (!(this._cache.getStore(s) === Je.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e13)) { + _context17.next = 19; break; } - _e11 = this._cache.getStore(r); - _t7 = this._cache.getStore(n); - _context8.next = 17; + _e14 = this._cache.getStore(r); + _t8 = this._cache.getStore(n); + _context17.next = 17; return this.send("auth.signInAnonymously", { - anonymous_uuid: _e11, - refresh_token: _t7 + anonymous_uuid: _e14, + refresh_token: _t8 }); case 17: - _s8 = _context8.sent; - return _context8.abrupt("return", (this.setRefreshToken(_s8.refresh_token), this._refreshAccessToken())); + _s9 = _context17.sent; + return _context17.abrupt("return", (this.setRefreshToken(_s9.refresh_token), this._refreshAccessToken())); case 19: - Me(Ke), this._cache.removeStore(n); + Fe($e), this._cache.removeStore(n); case 20: throw new te({ code: a.data.code, @@ -12575,10 +12981,10 @@ var Ge = /*#__PURE__*/function () { }); case 21: if (!a.data.access_token) { - _context8.next = 23; + _context17.next = 23; break; } - return _context8.abrupt("return", (Me(Be), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { + return _context17.abrupt("return", (Fe(He), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire })); @@ -12586,10 +12992,10 @@ var Ge = /*#__PURE__*/function () { a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken()); case 24: case "end": - return _context8.stop(); + return _context17.stop(); } } - }, _callee8, this); + }, _callee17, this); })); function _refreshAccessToken() { return _refreshAccessToken3.apply(this, arguments); @@ -12599,15 +13005,15 @@ var Ge = /*#__PURE__*/function () { }, { key: "getAccessToken", value: function () { - var _getAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { - var _this$_cache$keys2, e, t, n, s, r, i; - return _regenerator.default.wrap(function _callee9$(_context9) { + var _getAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() { + var _this$_cache$keys5, e, t, n, s, r, i; + return _regenerator.default.wrap(function _callee18$(_context18) { while (1) { - switch (_context9.prev = _context9.next) { + switch (_context18.prev = _context18.next) { case 0: - _this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey; + _this$_cache$keys5 = this._cache.keys, e = _this$_cache$keys5.accessTokenKey, t = _this$_cache$keys5.accessTokenExpireKey, n = _this$_cache$keys5.refreshTokenKey; if (this._cache.getStore(n)) { - _context9.next = 3; + _context18.next = 3; break; } throw new te({ @@ -12615,47 +13021,47 @@ var Ge = /*#__PURE__*/function () { }); case 3: s = this._cache.getStore(e), r = this._cache.getStore(t), i = !0; - _context9.t0 = this._shouldRefreshAccessTokenHook; - if (!_context9.t0) { - _context9.next = 9; + _context18.t0 = this._shouldRefreshAccessTokenHook; + if (!_context18.t0) { + _context18.next = 9; break; } - _context9.next = 8; + _context18.next = 8; return this._shouldRefreshAccessTokenHook(s, r); case 8: - _context9.t0 = !_context9.sent; + _context18.t0 = !_context18.sent; case 9: - _context9.t1 = _context9.t0; - if (!_context9.t1) { - _context9.next = 12; + _context18.t1 = _context18.t0; + if (!_context18.t1) { + _context18.next = 12; break; } i = !1; case 12: - return _context9.abrupt("return", (!s || !r || r < Date.now()) && i ? this.refreshAccessToken() : { + return _context18.abrupt("return", (!s || !r || r < Date.now()) && i ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: r }); case 13: case "end": - return _context9.stop(); + return _context18.stop(); } } - }, _callee9, this); + }, _callee18, this); })); function getAccessToken() { - return _getAccessToken.apply(this, arguments); + return _getAccessToken2.apply(this, arguments); } return getAccessToken; }() }, { key: "request", value: function () { - var _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(e, t, n) { - var s, r, i, _e12, o, _e13, _e14, a, c, u, h, l, d, p, f, g; - return _regenerator.default.wrap(function _callee10$(_context10) { + var _request3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t, n) { + var s, r, i, o, _e15, _e16, a, c, u, h, l, d, p, f, g; + return _regenerator.default.wrap(function _callee19$(_context19) { while (1) { - switch (_context10.prev = _context10.next) { + switch (_context19.prev = _context19.next) { case 0: s = "x-tcb-trace_".concat(this.config.env); r = "application/x-www-form-urlencoded"; @@ -12664,39 +13070,40 @@ var Ge = /*#__PURE__*/function () { env: this.config.env, dataVersion: "2019-08-16" }, t); - if (!(-1 === He.indexOf(e))) { - _context10.next = 10; + _context19.t0 = -1 === Ge.indexOf(e); + if (!_context19.t0) { + _context19.next = 9; break; } - _e12 = this._cache.keys.refreshTokenKey; - _context10.t0 = this._cache.getStore(_e12); - if (!_context10.t0) { - _context10.next = 10; - break; - } - _context10.next = 9; - return this.getAccessToken(); + this._cache.keys; + _context19.next = 8; + return this.oauth.getAccessToken(); + case 8: + i.access_token = _context19.sent; case 9: - i.access_token = _context10.sent.accessToken; - case 10: - if ("storage.uploadFile" === e) { - o = new FormData(); - for (_e13 in o) { - o.hasOwnProperty(_e13) && void 0 !== o[_e13] && o.append(_e13, i[_e13]); - } - r = "multipart/form-data"; - } else { - r = "application/json", o = {}; - for (_e14 in i) { - void 0 !== i[_e14] && (o[_e14] = i[_e14]); - } + if (!("storage.uploadFile" === e)) { + _context19.next = 15; + break; } + o = new FormData(); + for (_e15 in o) { + o.hasOwnProperty(_e15) && void 0 !== o[_e15] && o.append(_e15, i[_e15]); + } + r = "multipart/form-data"; + _context19.next = 17; + break; + case 15: + r = "application/json", o = {}; + for (_e16 in i) { + void 0 !== i[_e16] && (o[_e16] = i[_e16]); + } + case 17: a = { headers: { "content-type": r } }; - n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress); + n && n.timeout && (a.timeout = n.timeout), n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress); c = this._localCache.getStore(s); c && (a.headers["X-TCB-Trace"] = c); u = t.parse, h = t.inQuery, l = t.search; @@ -12708,103 +13115,105 @@ var Ge = /*#__PURE__*/function () { var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var s = /\?/.test(t); var r = ""; - for (var _e15 in n) { - "" === r ? !s && (t += "?") : r += "&", r += "".concat(_e15, "=").concat(encodeURIComponent(n[_e15])); + for (var _e17 in n) { + "" === r ? !s && (t += "?") : r += "&", r += "".concat(_e17, "=").concat(encodeURIComponent(n[_e17])); } return /^http(s)?\:\/\//.test(t += r) ? t : "".concat(e).concat(t); }(fe, "//tcb-api.tencentcloudapi.com/web", d); l && (p += l); - _context10.next = 22; + _context19.next = 28; return this.post(_objectSpread({ url: p, data: o }, a)); - case 22: - f = _context10.sent; + case 28: + f = _context19.sent; g = f.header && f.header["x-tcb-trace"]; if (!(g && this._localCache.setStore(s, g), 200 !== Number(f.status) && 200 !== Number(f.statusCode) || !f.data)) { - _context10.next = 26; + _context19.next = 32; break; } throw new te({ code: "NETWORK_ERROR", message: "network request error" }); - case 26: - return _context10.abrupt("return", f); - case 27: + case 32: + return _context19.abrupt("return", f); + case 33: case "end": - return _context10.stop(); + return _context19.stop(); } } - }, _callee10, this); + }, _callee19, this); })); - function request(_x5, _x6, _x7) { - return _request.apply(this, arguments); + function request(_x11, _x12, _x13) { + return _request3.apply(this, arguments); } return request; }() }, { key: "send", value: function () { - var _send = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) { + var _send = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(e) { var t, n, - _n7, - _args11 = arguments; - return _regenerator.default.wrap(function _callee11$(_context11) { + s, + _s10, + _args20 = arguments; + return _regenerator.default.wrap(function _callee20$(_context20) { while (1) { - switch (_context11.prev = _context11.next) { + switch (_context20.prev = _context20.next) { case 0: - t = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {}; - _context11.next = 3; - return this.request(e, t, { + t = _args20.length > 1 && _args20[1] !== undefined ? _args20[1] : {}; + n = _args20.length > 2 && _args20[2] !== undefined ? _args20[2] : {}; + _context20.next = 4; + return this.request(e, t, _objectSpread(_objectSpread({}, n), {}, { onUploadProgress: t.onUploadProgress - }); - case 3: - n = _context11.sent; - if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === He.indexOf(e))) { - _context11.next = 13; + })); + case 4: + s = _context20.sent; + if (!(("ACCESS_TOKEN_DISABLED" === s.data.code || "ACCESS_TOKEN_EXPIRED" === s.data.code) && -1 === Ge.indexOf(e))) { + _context20.next = 14; break; } - _context11.next = 7; - return this.refreshAccessToken(); - case 7: - _context11.next = 9; - return this.request(e, t, { + _context20.next = 8; + return this.oauth.refreshAccessToken(); + case 8: + _context20.next = 10; + return this.request(e, t, _objectSpread(_objectSpread({}, n), {}, { onUploadProgress: t.onUploadProgress - }); - case 9: - _n7 = _context11.sent; - if (!_n7.data.code) { - _context11.next = 12; + })); + case 10: + _s10 = _context20.sent; + if (!_s10.data.code) { + _context20.next = 13; break; } throw new te({ - code: _n7.data.code, - message: _n7.data.message + code: _s10.data.code, + message: Te(_s10.data.message) }); - case 12: - return _context11.abrupt("return", _n7.data); case 13: - if (!n.data.code) { - _context11.next = 15; + return _context20.abrupt("return", _s10.data); + case 14: + if (!s.data.code) { + _context20.next = 16; break; } throw new te({ - code: n.data.code, - message: n.data.message + code: s.data.code, + message: Te(s.data.message) }); - case 15: - return _context11.abrupt("return", n.data); case 16: + return _context20.abrupt("return", s.data); + case 17: case "end": - return _context11.stop(); + return _context20.stop(); } } - }, _callee11, this); + }, _callee20, this); })); - function send(_x8) { + function send(_x14) { return _send.apply(this, arguments); } return send; @@ -12812,62 +13221,62 @@ var Ge = /*#__PURE__*/function () { }, { key: "setRefreshToken", value: function setRefreshToken(e) { - var _this$_cache$keys3 = this._cache.keys, - t = _this$_cache$keys3.accessTokenKey, - n = _this$_cache$keys3.accessTokenExpireKey, - s = _this$_cache$keys3.refreshTokenKey; + var _this$_cache$keys6 = this._cache.keys, + t = _this$_cache$keys6.accessTokenKey, + n = _this$_cache$keys6.accessTokenExpireKey, + s = _this$_cache$keys6.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }]); - return Ge; + return Ze; }(); -var Ye = {}; -function Qe(e) { - return Ye[e]; +var et = {}; +function tt(e) { + return et[e]; } -var Xe = /*#__PURE__*/function () { - function Xe(e) { - (0, _classCallCheck2.default)(this, Xe); - this.config = e, this._cache = Le(e.env), this._request = Qe(e.env); +var nt = /*#__PURE__*/function () { + function nt(e) { + (0, _classCallCheck2.default)(this, nt); + this.config = e, this._cache = Le(e.env), this._request = tt(e.env); } - (0, _createClass2.default)(Xe, [{ + (0, _createClass2.default)(nt, [{ key: "setRefreshToken", value: function setRefreshToken(e) { - var _this$_cache$keys4 = this._cache.keys, - t = _this$_cache$keys4.accessTokenKey, - n = _this$_cache$keys4.accessTokenExpireKey, - s = _this$_cache$keys4.refreshTokenKey; + var _this$_cache$keys7 = this._cache.keys, + t = _this$_cache$keys7.accessTokenKey, + n = _this$_cache$keys7.accessTokenExpireKey, + s = _this$_cache$keys7.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }, { key: "setAccessToken", value: function setAccessToken(e, t) { - var _this$_cache$keys5 = this._cache.keys, - n = _this$_cache$keys5.accessTokenKey, - s = _this$_cache$keys5.accessTokenExpireKey; + var _this$_cache$keys8 = this._cache.keys, + n = _this$_cache$keys8.accessTokenKey, + s = _this$_cache$keys8.accessTokenExpireKey; this._cache.setStore(n, e), this._cache.setStore(s, t); } }, { key: "refreshUserInfo", value: function () { - var _refreshUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { + var _refreshUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21() { var _yield$this$_request$, e; - return _regenerator.default.wrap(function _callee12$(_context12) { + return _regenerator.default.wrap(function _callee21$(_context21) { while (1) { - switch (_context12.prev = _context12.next) { + switch (_context21.prev = _context21.next) { case 0: - _context12.next = 2; + _context21.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: - _yield$this$_request$ = _context12.sent; + _yield$this$_request$ = _context21.sent; e = _yield$this$_request$.data; - return _context12.abrupt("return", (this.setLocalUserInfo(e), e)); + return _context21.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": - return _context12.stop(); + return _context21.stop(); } } - }, _callee12, this); + }, _callee21, this); })); function refreshUserInfo() { return _refreshUserInfo.apply(this, arguments); @@ -12881,18 +13290,18 @@ var Xe = /*#__PURE__*/function () { this._cache.setStore(t, e); } }]); - return Xe; + return nt; }(); -var Ze = /*#__PURE__*/function () { - function Ze(e) { - (0, _classCallCheck2.default)(this, Ze); +var st = /*#__PURE__*/function () { + function st(e) { + (0, _classCallCheck2.default)(this, st); if (!e) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); - this._envId = e, this._cache = Le(this._envId), this._request = Qe(this._envId), this.setUserInfo(); + this._envId = e, this._cache = Le(this._envId), this._request = tt(this._envId), this.setUserInfo(); } - (0, _createClass2.default)(Ze, [{ + (0, _createClass2.default)(st, [{ key: "linkWithTicket", value: function linkWithTicket(e) { if ("string" != typeof e) throw new te({ @@ -12937,20 +13346,20 @@ var Ze = /*#__PURE__*/function () { }, { key: "getLinkedUidList", value: function () { - var _getLinkedUidList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() { + var _getLinkedUidList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22() { var _yield$this$_request$2, e, t, n; - return _regenerator.default.wrap(function _callee13$(_context13) { + return _regenerator.default.wrap(function _callee22$(_context22) { while (1) { - switch (_context13.prev = _context13.next) { + switch (_context22.prev = _context22.next) { case 0: - _context13.next = 2; + _context22.next = 2; return this._request.send("auth.getLinkedUidList", {}); case 2: - _yield$this$_request$2 = _context13.sent; + _yield$this$_request$2 = _context22.sent; e = _yield$this$_request$2.data; t = !1; n = e.users; - return _context13.abrupt("return", (n.forEach(function (e) { + return _context22.abrupt("return", (n.forEach(function (e) { e.wxOpenId && e.wxPublicId && (t = !0); }), { users: n, @@ -12958,10 +13367,10 @@ var Ze = /*#__PURE__*/function () { })); case 7: case "end": - return _context13.stop(); + return _context22.stop(); } } - }, _callee13, this); + }, _callee22, this); })); function getLinkedUidList() { return _getLinkedUidList.apply(this, arguments); @@ -12985,11 +13394,11 @@ var Ze = /*#__PURE__*/function () { }, { key: "update", value: function () { - var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) { + var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23(e) { var t, n, s, r, i, o, _yield$this$_request$3, a; - return _regenerator.default.wrap(function _callee14$(_context14) { + return _regenerator.default.wrap(function _callee23$(_context23) { while (1) { - switch (_context14.prev = _context14.next) { + switch (_context23.prev = _context23.next) { case 0: t = e.nickName; n = e.gender; @@ -12997,7 +13406,7 @@ var Ze = /*#__PURE__*/function () { r = e.province; i = e.country; o = e.city; - _context14.next = 8; + _context23.next = 8; return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, @@ -13007,17 +13416,17 @@ var Ze = /*#__PURE__*/function () { city: o }); case 8: - _yield$this$_request$3 = _context14.sent; + _yield$this$_request$3 = _context23.sent; a = _yield$this$_request$3.data; this.setLocalUserInfo(a); case 11: case "end": - return _context14.stop(); + return _context23.stop(); } } - }, _callee14, this); + }, _callee23, this); })); - function update(_x9) { + function update(_x15) { return _update.apply(this, arguments); } return update; @@ -13025,24 +13434,23 @@ var Ze = /*#__PURE__*/function () { }, { key: "refresh", value: function () { - var _refresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() { - var _yield$this$_request$4, e; - return _regenerator.default.wrap(function _callee15$(_context15) { + var _refresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24() { + var e; + return _regenerator.default.wrap(function _callee24$(_context24) { while (1) { - switch (_context15.prev = _context15.next) { + switch (_context24.prev = _context24.next) { case 0: - _context15.next = 2; - return this._request.send("auth.getUserInfo", {}); + _context24.next = 2; + return this._request.oauth.getUserInfo(); case 2: - _yield$this$_request$4 = _context15.sent; - e = _yield$this$_request$4.data; - return _context15.abrupt("return", (this.setLocalUserInfo(e), e)); - case 5: + e = _context24.sent; + return _context24.abrupt("return", (this.setLocalUserInfo(e), e)); + case 4: case "end": - return _context15.stop(); + return _context24.stop(); } } - }, _callee15, this); + }, _callee24, this); })); function refresh() { return _refresh.apply(this, arguments); @@ -13052,11 +13460,11 @@ var Ze = /*#__PURE__*/function () { }, { key: "setUserInfo", value: function setUserInfo() { - var _this8 = this; + var _this12 = this; var e = this._cache.keys.userInfoKey, t = this._cache.getStore(e); ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) { - _this8[e] = t[e]; + _this12[e] = t[e]; }), this.location = { country: t.country, province: t.province, @@ -13070,20 +13478,20 @@ var Ze = /*#__PURE__*/function () { this._cache.setStore(t, e), this.setUserInfo(); } }]); - return Ze; + return st; }(); -var et = /*#__PURE__*/function () { - function et(e) { - (0, _classCallCheck2.default)(this, et); +var rt = /*#__PURE__*/function () { + function rt(e) { + (0, _classCallCheck2.default)(this, rt); if (!e) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); this._cache = Le(e); - var _this$_cache$keys6 = this._cache.keys, - t = _this$_cache$keys6.refreshTokenKey, - n = _this$_cache$keys6.accessTokenKey, - s = _this$_cache$keys6.accessTokenExpireKey, + var _this$_cache$keys9 = this._cache.keys, + t = _this$_cache$keys9.refreshTokenKey, + n = _this$_cache$keys9.accessTokenKey, + s = _this$_cache$keys9.accessTokenExpireKey, r = this._cache.getStore(t), i = this._cache.getStore(n), o = this._cache.getStore(s); @@ -13091,22 +13499,22 @@ var et = /*#__PURE__*/function () { refreshToken: r, accessToken: i, accessTokenExpire: o - }, this.user = new Ze(e); + }, this.user = new st(e); } - (0, _createClass2.default)(et, [{ + (0, _createClass2.default)(rt, [{ key: "isAnonymousAuth", get: function get() { - return this.loginType === We.ANONYMOUS; + return this.loginType === Je.ANONYMOUS; } }, { key: "isCustomAuth", get: function get() { - return this.loginType === We.CUSTOM; + return this.loginType === Je.CUSTOM; } }, { key: "isWeixinAuth", get: function get() { - return this.loginType === We.WECHAT || this.loginType === We.WECHAT_OPEN || this.loginType === We.WECHAT_PUBLIC; + return this.loginType === Je.WECHAT || this.loginType === Je.WECHAT_OPEN || this.loginType === Je.WECHAT_PUBLIC; } }, { key: "loginType", @@ -13114,67 +13522,45 @@ var et = /*#__PURE__*/function () { return this._cache.getStore(this._cache.keys.loginTypeKey); } }]); - return et; + return rt; }(); -var tt = /*#__PURE__*/function (_Xe) { - (0, _inherits2.default)(tt, _Xe); - var _super4 = _createSuper(tt); - function tt() { - (0, _classCallCheck2.default)(this, tt); +var it = /*#__PURE__*/function (_nt) { + (0, _inherits2.default)(it, _nt); + var _super4 = _createSuper(it); + function it() { + (0, _classCallCheck2.default)(this, it); return _super4.apply(this, arguments); } - (0, _createClass2.default)(tt, [{ + (0, _createClass2.default)(it, [{ key: "signIn", value: function () { - var _signIn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() { - var _this$_cache$keys7, e, t, n, s, r, _e16; - return _regenerator.default.wrap(function _callee16$(_context16) { + var _signIn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25() { + var e; + return _regenerator.default.wrap(function _callee25$(_context25) { while (1) { - switch (_context16.prev = _context16.next) { + switch (_context25.prev = _context25.next) { case 0: this._cache.updatePersistence("local"); - _this$_cache$keys7 = this._cache.keys; - e = _this$_cache$keys7.anonymousUuidKey; - t = _this$_cache$keys7.refreshTokenKey; - n = this._cache.getStore(e) || void 0; - s = this._cache.getStore(t) || void 0; - _context16.next = 8; - return this._request.send("auth.signInAnonymously", { - anonymous_uuid: n, - refresh_token: s - }); - case 8: - r = _context16.sent; - if (!(r.uuid && r.refresh_token)) { - _context16.next = 20; - break; - } - this._setAnonymousUUID(r.uuid); - this.setRefreshToken(r.refresh_token); - _context16.next = 14; - return this._request.refreshAccessToken(); - case 14: - Me(Fe); - Me(je, { + _context25.next = 3; + return this._request.oauth.getAccessToken(); + case 3: + Fe(je); + Fe(Be, { env: this.config.env, - loginType: We.ANONYMOUS, + loginType: Je.ANONYMOUS, persistence: "local" }); - _e16 = new et(this.config.env); - _context16.next = 19; - return _e16.user.refresh(); - case 19: - return _context16.abrupt("return", _e16); - case 20: - throw new te({ - message: "匿名登录失败" - }); - case 21: + e = new rt(this.config.env); + _context25.next = 8; + return e.user.refresh(); + case 8: + return _context25.abrupt("return", e); + case 9: case "end": - return _context16.stop(); + return _context25.stop(); } } - }, _callee16, this); + }, _callee25, this); })); function signIn() { return _signIn.apply(this, arguments); @@ -13184,42 +13570,42 @@ var tt = /*#__PURE__*/function (_Xe) { }, { key: "linkAndRetrieveDataWithTicket", value: function () { - var _linkAndRetrieveDataWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) { - var _this$_cache$keys8, t, n, s, r, i; - return _regenerator.default.wrap(function _callee17$(_context17) { + var _linkAndRetrieveDataWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26(e) { + var _this$_cache$keys10, t, n, s, r, i; + return _regenerator.default.wrap(function _callee26$(_context26) { while (1) { - switch (_context17.prev = _context17.next) { + switch (_context26.prev = _context26.next) { case 0: - _this$_cache$keys8 = this._cache.keys; - t = _this$_cache$keys8.anonymousUuidKey; - n = _this$_cache$keys8.refreshTokenKey; + _this$_cache$keys10 = this._cache.keys; + t = _this$_cache$keys10.anonymousUuidKey; + n = _this$_cache$keys10.refreshTokenKey; s = this._cache.getStore(t); r = this._cache.getStore(n); - _context17.next = 7; + _context26.next = 7; return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: r, ticket: e }); case 7: - i = _context17.sent; + i = _context26.sent; if (!i.refresh_token) { - _context17.next = 16; + _context26.next = 16; break; } this._clearAnonymousUUID(); this.setRefreshToken(i.refresh_token); - _context17.next = 13; + _context26.next = 13; return this._request.refreshAccessToken(); case 13: - Me($e, { + Fe(We, { env: this.config.env }); - Me(je, { - loginType: We.CUSTOM, + Fe(Be, { + loginType: Je.CUSTOM, persistence: "local" }); - return _context17.abrupt("return", { + return _context26.abrupt("return", { credential: { refreshToken: i.refresh_token } @@ -13230,12 +13616,12 @@ var tt = /*#__PURE__*/function (_Xe) { }); case 17: case "end": - return _context17.stop(); + return _context26.stop(); } } - }, _callee17, this); + }, _callee26, this); })); - function linkAndRetrieveDataWithTicket(_x10) { + function linkAndRetrieveDataWithTicket(_x16) { return _linkAndRetrieveDataWithTicket.apply(this, arguments); } return linkAndRetrieveDataWithTicket; @@ -13243,10 +13629,10 @@ var tt = /*#__PURE__*/function (_Xe) { }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) { - var _this$_cache$keys9 = this._cache.keys, - t = _this$_cache$keys9.anonymousUuidKey, - n = _this$_cache$keys9.loginTypeKey; - this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, We.ANONYMOUS); + var _this$_cache$keys11 = this._cache.keys, + t = _this$_cache$keys11.anonymousUuidKey, + n = _this$_cache$keys11.loginTypeKey; + this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, Je.ANONYMOUS); } }, { key: "_clearAnonymousUUID", @@ -13254,26 +13640,26 @@ var tt = /*#__PURE__*/function (_Xe) { this._cache.removeStore(this._cache.keys.anonymousUuidKey); } }]); - return tt; -}(Xe); -var nt = /*#__PURE__*/function (_Xe2) { - (0, _inherits2.default)(nt, _Xe2); - var _super5 = _createSuper(nt); - function nt() { - (0, _classCallCheck2.default)(this, nt); + return it; +}(nt); +var ot = /*#__PURE__*/function (_nt2) { + (0, _inherits2.default)(ot, _nt2); + var _super5 = _createSuper(ot); + function ot() { + (0, _classCallCheck2.default)(this, ot); return _super5.apply(this, arguments); } - (0, _createClass2.default)(nt, [{ + (0, _createClass2.default)(ot, [{ key: "signIn", value: function () { - var _signIn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(e) { + var _signIn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(e) { var t, n; - return _regenerator.default.wrap(function _callee18$(_context18) { + return _regenerator.default.wrap(function _callee27$(_context27) { while (1) { - switch (_context18.prev = _context18.next) { + switch (_context27.prev = _context27.next) { case 0: if (!("string" != typeof e)) { - _context18.next = 2; + _context27.next = 2; break; } throw new te({ @@ -13282,68 +13668,68 @@ var nt = /*#__PURE__*/function (_Xe2) { }); case 2: t = this._cache.keys.refreshTokenKey; - _context18.next = 5; + _context27.next = 5; return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" }); case 5: - n = _context18.sent; + n = _context27.sent; if (!n.refresh_token) { - _context18.next = 15; + _context27.next = 15; break; } this.setRefreshToken(n.refresh_token); - _context18.next = 10; + _context27.next = 10; return this._request.refreshAccessToken(); case 10: - Me(Fe); - Me(je, { + Fe(je); + Fe(Be, { env: this.config.env, - loginType: We.CUSTOM, + loginType: Je.CUSTOM, persistence: this.config.persistence }); - _context18.next = 14; + _context27.next = 14; return this.refreshUserInfo(); case 14: - return _context18.abrupt("return", new et(this.config.env)); + return _context27.abrupt("return", new rt(this.config.env)); case 15: throw new te({ message: "自定义登录失败" }); case 16: case "end": - return _context18.stop(); + return _context27.stop(); } } - }, _callee18, this); + }, _callee27, this); })); - function signIn(_x11) { + function signIn(_x17) { return _signIn2.apply(this, arguments); } return signIn; }() }]); - return nt; -}(Xe); -var st = /*#__PURE__*/function (_Xe3) { - (0, _inherits2.default)(st, _Xe3); - var _super6 = _createSuper(st); - function st() { - (0, _classCallCheck2.default)(this, st); + return ot; +}(nt); +var at = /*#__PURE__*/function (_nt3) { + (0, _inherits2.default)(at, _nt3); + var _super6 = _createSuper(at); + function at() { + (0, _classCallCheck2.default)(this, at); return _super6.apply(this, arguments); } - (0, _createClass2.default)(st, [{ + (0, _createClass2.default)(at, [{ key: "signIn", value: function () { - var _signIn3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) { + var _signIn3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(e, t) { var n, s, r, i, o; - return _regenerator.default.wrap(function _callee19$(_context19) { + return _regenerator.default.wrap(function _callee28$(_context28) { while (1) { - switch (_context19.prev = _context19.next) { + switch (_context28.prev = _context28.next) { case 0: if (!("string" != typeof e)) { - _context19.next = 2; + _context28.next = 2; break; } throw new te({ @@ -13352,7 +13738,7 @@ var st = /*#__PURE__*/function (_Xe3) { }); case 2: n = this._cache.keys.refreshTokenKey; - _context19.next = 5; + _context28.next = 5; return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, @@ -13360,36 +13746,36 @@ var st = /*#__PURE__*/function (_Xe3) { refresh_token: this._cache.getStore(n) || "" }); case 5: - s = _context19.sent; + s = _context28.sent; r = s.refresh_token; i = s.access_token; o = s.access_token_expire; if (!r) { - _context19.next = 22; + _context28.next = 22; break; } this.setRefreshToken(r); if (!(i && o)) { - _context19.next = 15; + _context28.next = 15; break; } this.setAccessToken(i, o); - _context19.next = 17; + _context28.next = 17; break; case 15: - _context19.next = 17; + _context28.next = 17; return this._request.refreshAccessToken(); case 17: - _context19.next = 19; + _context28.next = 19; return this.refreshUserInfo(); case 19: - Me(Fe); - Me(je, { + Fe(je); + Fe(Be, { env: this.config.env, - loginType: We.EMAIL, + loginType: Je.EMAIL, persistence: this.config.persistence }); - return _context19.abrupt("return", new et(this.config.env)); + return _context28.abrupt("return", new rt(this.config.env)); case 22: throw s.code ? new te({ code: s.code, @@ -13399,12 +13785,12 @@ var st = /*#__PURE__*/function (_Xe3) { }); case 23: case "end": - return _context19.stop(); + return _context28.stop(); } } - }, _callee19, this); + }, _callee28, this); })); - function signIn(_x12, _x13) { + function signIn(_x18, _x19) { return _signIn3.apply(this, arguments); } return signIn; @@ -13412,22 +13798,22 @@ var st = /*#__PURE__*/function (_Xe3) { }, { key: "activate", value: function () { - var _activate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(e) { - return _regenerator.default.wrap(function _callee20$(_context20) { + var _activate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29(e) { + return _regenerator.default.wrap(function _callee29$(_context29) { while (1) { - switch (_context20.prev = _context20.next) { + switch (_context29.prev = _context29.next) { case 0: - return _context20.abrupt("return", this._request.send("auth.activateEndUserMail", { + return _context29.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e })); case 1: case "end": - return _context20.stop(); + return _context29.stop(); } } - }, _callee20, this); + }, _callee29, this); })); - function activate(_x14) { + function activate(_x20) { return _activate.apply(this, arguments); } return activate; @@ -13435,48 +13821,48 @@ var st = /*#__PURE__*/function (_Xe3) { }, { key: "resetPasswordWithToken", value: function () { - var _resetPasswordWithToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) { - return _regenerator.default.wrap(function _callee21$(_context21) { + var _resetPasswordWithToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(e, t) { + return _regenerator.default.wrap(function _callee30$(_context30) { while (1) { - switch (_context21.prev = _context21.next) { + switch (_context30.prev = _context30.next) { case 0: - return _context21.abrupt("return", this._request.send("auth.resetPasswordWithToken", { + return _context30.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t })); case 1: case "end": - return _context21.stop(); + return _context30.stop(); } } - }, _callee21, this); + }, _callee30, this); })); - function resetPasswordWithToken(_x15, _x16) { + function resetPasswordWithToken(_x21, _x22) { return _resetPasswordWithToken.apply(this, arguments); } return resetPasswordWithToken; }() }]); - return st; -}(Xe); -var rt = /*#__PURE__*/function (_Xe4) { - (0, _inherits2.default)(rt, _Xe4); - var _super7 = _createSuper(rt); - function rt() { - (0, _classCallCheck2.default)(this, rt); + return at; +}(nt); +var ct = /*#__PURE__*/function (_nt4) { + (0, _inherits2.default)(ct, _nt4); + var _super7 = _createSuper(ct); + function ct() { + (0, _classCallCheck2.default)(this, ct); return _super7.apply(this, arguments); } - (0, _createClass2.default)(rt, [{ + (0, _createClass2.default)(ct, [{ key: "signIn", value: function () { - var _signIn4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(e, t) { + var _signIn4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(e, t) { var n, s, r, i, o; - return _regenerator.default.wrap(function _callee22$(_context22) { + return _regenerator.default.wrap(function _callee31$(_context31) { while (1) { - switch (_context22.prev = _context22.next) { + switch (_context31.prev = _context31.next) { case 0: if (!("string" != typeof e)) { - _context22.next = 2; + _context31.next = 2; break; } throw new te({ @@ -13486,44 +13872,44 @@ var rt = /*#__PURE__*/function (_Xe4) { case 2: "string" != typeof t && (t = "", console.warn("password is empty")); n = this._cache.keys.refreshTokenKey; - _context22.next = 6; + _context31.next = 6; return this._request.send("auth.signIn", { - loginType: We.USERNAME, + loginType: Je.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 6: - s = _context22.sent; + s = _context31.sent; r = s.refresh_token; i = s.access_token_expire; o = s.access_token; if (!r) { - _context22.next = 23; + _context31.next = 23; break; } this.setRefreshToken(r); if (!(o && i)) { - _context22.next = 16; + _context31.next = 16; break; } this.setAccessToken(o, i); - _context22.next = 18; + _context31.next = 18; break; case 16: - _context22.next = 18; + _context31.next = 18; return this._request.refreshAccessToken(); case 18: - _context22.next = 20; + _context31.next = 20; return this.refreshUserInfo(); case 20: - Me(Fe); - Me(je, { + Fe(je); + Fe(Be, { env: this.config.env, - loginType: We.USERNAME, + loginType: Je.USERNAME, persistence: this.config.persistence }); - return _context22.abrupt("return", new et(this.config.env)); + return _context31.abrupt("return", new rt(this.config.env)); case 23: throw s.code ? new te({ code: s.code, @@ -13533,25 +13919,25 @@ var rt = /*#__PURE__*/function (_Xe4) { }); case 24: case "end": - return _context22.stop(); + return _context31.stop(); } } - }, _callee22, this); + }, _callee31, this); })); - function signIn(_x17, _x18) { + function signIn(_x23, _x24) { return _signIn4.apply(this, arguments); } return signIn; }() }]); - return rt; -}(Xe); -var it = /*#__PURE__*/function () { - function it(e) { - (0, _classCallCheck2.default)(this, it); - this.config = e, this._cache = Le(e.env), this._request = Qe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), De(je, this._onLoginTypeChanged); + return ct; +}(nt); +var ut = /*#__PURE__*/function () { + function ut(e) { + (0, _classCallCheck2.default)(this, ut); + this.config = e, this._cache = Le(e.env), this._request = tt(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), qe(Be, this._onLoginTypeChanged); } - (0, _createClass2.default)(it, [{ + (0, _createClass2.default)(ut, [{ key: "currentUser", get: function get() { var e = this.hasLoginState(); @@ -13565,38 +13951,38 @@ var it = /*#__PURE__*/function () { }, { key: "anonymousAuthProvider", value: function anonymousAuthProvider() { - return new tt(this.config); + return new it(this.config); } }, { key: "customAuthProvider", value: function customAuthProvider() { - return new nt(this.config); + return new ot(this.config); } }, { key: "emailAuthProvider", value: function emailAuthProvider() { - return new st(this.config); + return new at(this.config); } }, { key: "usernameAuthProvider", value: function usernameAuthProvider() { - return new rt(this.config); + return new ct(this.config); } }, { key: "signInAnonymously", value: function () { - var _signInAnonymously = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() { - return _regenerator.default.wrap(function _callee23$(_context23) { + var _signInAnonymously = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32() { + return _regenerator.default.wrap(function _callee32$(_context32) { while (1) { - switch (_context23.prev = _context23.next) { + switch (_context32.prev = _context32.next) { case 0: - return _context23.abrupt("return", new tt(this.config).signIn()); + return _context32.abrupt("return", new it(this.config).signIn()); case 1: case "end": - return _context23.stop(); + return _context32.stop(); } } - }, _callee23, this); + }, _callee32, this); })); function signInAnonymously() { return _signInAnonymously.apply(this, arguments); @@ -13606,20 +13992,20 @@ var it = /*#__PURE__*/function () { }, { key: "signInWithEmailAndPassword", value: function () { - var _signInWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) { - return _regenerator.default.wrap(function _callee24$(_context24) { + var _signInWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(e, t) { + return _regenerator.default.wrap(function _callee33$(_context33) { while (1) { - switch (_context24.prev = _context24.next) { + switch (_context33.prev = _context33.next) { case 0: - return _context24.abrupt("return", new st(this.config).signIn(e, t)); + return _context33.abrupt("return", new at(this.config).signIn(e, t)); case 1: case "end": - return _context24.stop(); + return _context33.stop(); } } - }, _callee24, this); + }, _callee33, this); })); - function signInWithEmailAndPassword(_x19, _x20) { + function signInWithEmailAndPassword(_x25, _x26) { return _signInWithEmailAndPassword.apply(this, arguments); } return signInWithEmailAndPassword; @@ -13627,29 +14013,29 @@ var it = /*#__PURE__*/function () { }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) { - return new rt(this.config).signIn(e, t); + return new ct(this.config).signIn(e, t); } }, { key: "linkAndRetrieveDataWithTicket", value: function () { - var _linkAndRetrieveDataWithTicket2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) { - return _regenerator.default.wrap(function _callee25$(_context25) { + var _linkAndRetrieveDataWithTicket2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(e) { + return _regenerator.default.wrap(function _callee34$(_context34) { while (1) { - switch (_context25.prev = _context25.next) { + switch (_context34.prev = _context34.next) { case 0: - this._anonymousAuthProvider || (this._anonymousAuthProvider = new tt(this.config)), De($e, this._onAnonymousConverted); - _context25.next = 3; + this._anonymousAuthProvider || (this._anonymousAuthProvider = new it(this.config)), qe(We, this._onAnonymousConverted); + _context34.next = 3; return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e); case 3: - return _context25.abrupt("return", _context25.sent); + return _context34.abrupt("return", _context34.sent); case 4: case "end": - return _context25.stop(); + return _context34.stop(); } } - }, _callee25, this); + }, _callee34, this); })); - function linkAndRetrieveDataWithTicket(_x21) { + function linkAndRetrieveDataWithTicket(_x27) { return _linkAndRetrieveDataWithTicket2.apply(this, arguments); } return linkAndRetrieveDataWithTicket; @@ -13657,44 +14043,44 @@ var it = /*#__PURE__*/function () { }, { key: "signOut", value: function () { - var _signOut = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() { - var _this$_cache$keys10, e, t, n, s, r; - return _regenerator.default.wrap(function _callee26$(_context26) { + var _signOut = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35() { + var _this$_cache$keys12, e, t, n, s, r; + return _regenerator.default.wrap(function _callee35$(_context35) { while (1) { - switch (_context26.prev = _context26.next) { + switch (_context35.prev = _context35.next) { case 0: - if (!(this.loginType === We.ANONYMOUS)) { - _context26.next = 2; + if (!(this.loginType === Je.ANONYMOUS)) { + _context35.next = 2; break; } throw new te({ message: "匿名用户不支持登出操作" }); case 2: - _this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e); + _this$_cache$keys12 = this._cache.keys, e = _this$_cache$keys12.refreshTokenKey, t = _this$_cache$keys12.accessTokenKey, n = _this$_cache$keys12.accessTokenExpireKey, s = this._cache.getStore(e); if (s) { - _context26.next = 5; + _context35.next = 5; break; } - return _context26.abrupt("return"); + return _context35.abrupt("return"); case 5: - _context26.next = 7; + _context35.next = 7; return this._request.send("auth.logout", { refresh_token: s }); case 7: - r = _context26.sent; - return _context26.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), Me(Fe), Me(je, { + r = _context35.sent; + return _context35.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), Fe(je), Fe(Be, { env: this.config.env, - loginType: We.NULL, + loginType: Je.NULL, persistence: this.config.persistence }), r)); case 9: case "end": - return _context26.stop(); + return _context35.stop(); } } - }, _callee26, this); + }, _callee35, this); })); function signOut() { return _signOut.apply(this, arguments); @@ -13704,23 +14090,23 @@ var it = /*#__PURE__*/function () { }, { key: "signUpWithEmailAndPassword", value: function () { - var _signUpWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(e, t) { - return _regenerator.default.wrap(function _callee27$(_context27) { + var _signUpWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(e, t) { + return _regenerator.default.wrap(function _callee36$(_context36) { while (1) { - switch (_context27.prev = _context27.next) { + switch (_context36.prev = _context36.next) { case 0: - return _context27.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { + return _context36.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t })); case 1: case "end": - return _context27.stop(); + return _context36.stop(); } } - }, _callee27, this); + }, _callee36, this); })); - function signUpWithEmailAndPassword(_x22, _x23) { + function signUpWithEmailAndPassword(_x28, _x29) { return _signUpWithEmailAndPassword.apply(this, arguments); } return signUpWithEmailAndPassword; @@ -13728,22 +14114,22 @@ var it = /*#__PURE__*/function () { }, { key: "sendPasswordResetEmail", value: function () { - var _sendPasswordResetEmail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) { - return _regenerator.default.wrap(function _callee28$(_context28) { + var _sendPasswordResetEmail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(e) { + return _regenerator.default.wrap(function _callee37$(_context37) { while (1) { - switch (_context28.prev = _context28.next) { + switch (_context37.prev = _context37.next) { case 0: - return _context28.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { + return _context37.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e })); case 1: case "end": - return _context28.stop(); + return _context37.stop(); } } - }, _callee28, this); + }, _callee37, this); })); - function sendPasswordResetEmail(_x24) { + function sendPasswordResetEmail(_x30) { return _sendPasswordResetEmail.apply(this, arguments); } return sendPasswordResetEmail; @@ -13751,10 +14137,10 @@ var it = /*#__PURE__*/function () { }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) { - var _this9 = this; - De(Fe, function () { - var t = _this9.hasLoginState(); - e.call(_this9, t); + var _this13 = this; + qe(je, function () { + var t = _this13.hasLoginState(); + e.call(_this13, t); }); var t = this.hasLoginState(); e.call(this, t); @@ -13762,73 +14148,77 @@ var it = /*#__PURE__*/function () { }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) { - De(Ke, e.bind(this)); + qe($e, e.bind(this)); } }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) { - De(Be, e.bind(this)); + qe(He, e.bind(this)); } }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) { - De($e, e.bind(this)); + qe(We, e.bind(this)); } }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) { - var _this10 = this; - De(je, function () { - var t = _this10.hasLoginState(); - e.call(_this10, t); + var _this14 = this; + qe(Be, function () { + var t = _this14.hasLoginState(); + e.call(_this14, t); }); } }, { key: "getAccessToken", value: function () { - var _getAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() { - return _regenerator.default.wrap(function _callee29$(_context29) { + var _getAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38() { + return _regenerator.default.wrap(function _callee38$(_context38) { while (1) { - switch (_context29.prev = _context29.next) { + switch (_context38.prev = _context38.next) { case 0: - _context29.next = 2; + _context38.next = 2; return this._request.getAccessToken(); case 2: - _context29.t0 = _context29.sent.accessToken; - _context29.t1 = this.config.env; - return _context29.abrupt("return", { - accessToken: _context29.t0, - env: _context29.t1 + _context38.t0 = _context38.sent.accessToken; + _context38.t1 = this.config.env; + return _context38.abrupt("return", { + accessToken: _context38.t0, + env: _context38.t1 }); case 5: case "end": - return _context29.stop(); + return _context38.stop(); } } - }, _callee29, this); + }, _callee38, this); })); function getAccessToken() { - return _getAccessToken2.apply(this, arguments); + return _getAccessToken3.apply(this, arguments); } return getAccessToken; }() }, { key: "hasLoginState", value: function hasLoginState() { - var e = this._cache.keys.refreshTokenKey; - return this._cache.getStore(e) ? new et(this.config.env) : null; + var _this$_cache$keys13 = this._cache.keys, + e = _this$_cache$keys13.accessTokenKey, + t = _this$_cache$keys13.accessTokenExpireKey, + n = this._cache.getStore(e), + s = this._cache.getStore(t); + return this._request.oauth.isAccessTokenExpired(n, s) ? null : new rt(this.config.env); } }, { key: "isUsernameRegistered", value: function () { - var _isUsernameRegistered = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(e) { - var _yield$this$_request$5, t; - return _regenerator.default.wrap(function _callee30$(_context30) { + var _isUsernameRegistered = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(e) { + var _yield$this$_request$4, t; + return _regenerator.default.wrap(function _callee39$(_context39) { while (1) { - switch (_context30.prev = _context30.next) { + switch (_context39.prev = _context39.next) { case 0: if (!("string" != typeof e)) { - _context30.next = 2; + _context39.next = 2; break; } throw new te({ @@ -13836,22 +14226,22 @@ var it = /*#__PURE__*/function () { message: "username must be a string" }); case 2: - _context30.next = 4; + _context39.next = 4; return this._request.send("auth.isUsernameRegistered", { username: e }); case 4: - _yield$this$_request$5 = _context30.sent; - t = _yield$this$_request$5.data; - return _context30.abrupt("return", t && t.isRegistered); + _yield$this$_request$4 = _context39.sent; + t = _yield$this$_request$4.data; + return _context39.abrupt("return", t && t.isRegistered); case 7: case "end": - return _context30.stop(); + return _context39.stop(); } } - }, _callee30, this); + }, _callee39, this); })); - function isUsernameRegistered(_x25) { + function isUsernameRegistered(_x31) { return _isUsernameRegistered.apply(this, arguments); } return isUsernameRegistered; @@ -13864,20 +14254,20 @@ var it = /*#__PURE__*/function () { }, { key: "signInWithTicket", value: function () { - var _signInWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(e) { - return _regenerator.default.wrap(function _callee31$(_context31) { + var _signInWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40(e) { + return _regenerator.default.wrap(function _callee40$(_context40) { while (1) { - switch (_context31.prev = _context31.next) { + switch (_context40.prev = _context40.next) { case 0: - return _context31.abrupt("return", new nt(this.config).signIn(e)); + return _context40.abrupt("return", new ot(this.config).signIn(e)); case 1: case "end": - return _context31.stop(); + return _context40.stop(); } } - }, _callee31, this); + }, _callee40, this); })); - function signInWithTicket(_x26) { + function signInWithTicket(_x32) { return _signInWithTicket.apply(this, arguments); } return signInWithTicket; @@ -13899,9 +14289,9 @@ var it = /*#__PURE__*/function () { }, { key: "getAuthHeader", value: function getAuthHeader() { - var _this$_cache$keys11 = this._cache.keys, - e = _this$_cache$keys11.refreshTokenKey, - t = _this$_cache$keys11.accessTokenKey, + var _this$_cache$keys14 = this._cache.keys, + e = _this$_cache$keys14.refreshTokenKey, + t = _this$_cache$keys14.accessTokenKey, n = this._cache.getStore(e); return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n @@ -13923,11 +14313,11 @@ var it = /*#__PURE__*/function () { s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t)); } }]); - return it; + return ut; }(); -var ot = function ot(e, t) { - t = t || ve(); - var n = Qe(this.config.env), +var ht = function ht(e, t) { + t = t || Ie(); + var n = tt(this.config.env), s = e.cloudPath, r = e.filePath, i = e.onUploadProgress, @@ -13972,9 +14362,9 @@ var ot = function ot(e, t) { t(e); }), t.promise; }, - at = function at(e, t) { - t = t || ve(); - var n = Qe(this.config.env), + lt = function lt(e, t) { + t = t || Ie(); + var n = tt(this.config.env), s = e.cloudPath; return n.send("storage.getUploadMetadata", { path: s @@ -13984,9 +14374,9 @@ var ot = function ot(e, t) { t(e); }), t.promise; }, - ct = function ct(_ref7, t) { - var e = _ref7.fileList; - if (t = t || ve(), !e || !Array.isArray(e)) return { + dt = function dt(_ref10, t) { + var e = _ref10.fileList; + if (t = t || Ie(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; @@ -13994,8 +14384,8 @@ var ot = function ot(e, t) { _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var _t8 = _step3.value; - if (!_t8 || "string" != typeof _t8) return { + var _t9 = _step3.value; + if (!_t9 || "string" != typeof _t9) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; @@ -14008,7 +14398,7 @@ var ot = function ot(e, t) { var n = { fileid_list: e }; - return Qe(this.config.env).send("storage.batchDeleteFile", n).then(function (e) { + return tt(this.config.env).send("storage.batchDeleteFile", n).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId @@ -14017,9 +14407,9 @@ var ot = function ot(e, t) { t(e); }), t.promise; }, - ut = function ut(_ref8, t) { - var e = _ref8.fileList; - t = t || ve(), e && Array.isArray(e) || t(null, { + pt = function pt(_ref11, t) { + var e = _ref11.fileList; + t = t || Ie(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); @@ -14028,15 +14418,15 @@ var ot = function ot(e, t) { _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var _s9 = _step4.value; - "object" == (0, _typeof2.default)(_s9) ? (_s9.hasOwnProperty("fileID") && _s9.hasOwnProperty("maxAge") || t(null, { + var _s11 = _step4.value; + "object" == (0, _typeof2.default)(_s11) ? (_s11.hasOwnProperty("fileID") && _s11.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ - fileid: _s9.fileID, - max_age: _s9.maxAge - })) : "string" == typeof _s9 ? n.push({ - fileid: _s9 + fileid: _s11.fileID, + max_age: _s11.maxAge + })) : "string" == typeof _s11 ? n.push({ + fileid: _s11 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" @@ -14050,7 +14440,7 @@ var ot = function ot(e, t) { var s = { file_list: n }; - return Qe(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) { + return tt(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId @@ -14059,70 +14449,71 @@ var ot = function ot(e, t) { t(e); }), t.promise; }, - ht = /*#__PURE__*/function () { - var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(_ref9, t) { + ft = /*#__PURE__*/function () { + var _ref13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41(_ref12, t) { var e, n, s, r; - return _regenerator.default.wrap(function _callee32$(_context32) { + return _regenerator.default.wrap(function _callee41$(_context41) { while (1) { - switch (_context32.prev = _context32.next) { + switch (_context41.prev = _context41.next) { case 0: - e = _ref9.fileID; - _context32.next = 3; - return ut.call(this, { + e = _ref12.fileID; + _context41.next = 3; + return pt.call(this, { fileList: [{ fileID: e, maxAge: 600 }] }); case 3: - n = _context32.sent.fileList[0]; + n = _context41.sent.fileList[0]; if (!("SUCCESS" !== n.code)) { - _context32.next = 6; + _context41.next = 6; break; } - return _context32.abrupt("return", t ? t(n) : new Promise(function (e) { + return _context41.abrupt("return", t ? t(n) : new Promise(function (e) { e(n); })); case 6: - s = Qe(this.config.env); + s = tt(this.config.env); r = n.download_url; if (!(r = encodeURI(r), !t)) { - _context32.next = 10; + _context41.next = 10; break; } - return _context32.abrupt("return", s.download({ + return _context41.abrupt("return", s.download({ url: r })); case 10: - _context32.t0 = t; - _context32.next = 13; + _context41.t0 = t; + _context41.next = 13; return s.download({ url: r }); case 13: - _context32.t1 = _context32.sent; - (0, _context32.t0)(_context32.t1); + _context41.t1 = _context41.sent; + (0, _context41.t0)(_context41.t1); case 15: case "end": - return _context32.stop(); + return _context41.stop(); } } - }, _callee32, this); + }, _callee41, this); })); - return function ht(_x27, _x28) { - return _ref10.apply(this, arguments); + return function ft(_x33, _x34) { + return _ref13.apply(this, arguments); }; }(), - lt = function lt(_ref11, i) { - var e = _ref11.name, - t = _ref11.data, - n = _ref11.query, - s = _ref11.parse, - r = _ref11.search; - var o = i || ve(); - var a; + gt = function gt(_ref14, o) { + var e = _ref14.name, + t = _ref14.data, + n = _ref14.query, + s = _ref14.parse, + r = _ref14.search, + i = _ref14.timeout; + var a = o || Ie(); + var c; try { - a = t ? JSON.stringify(t) : ""; + c = t ? JSON.stringify(t) : ""; } catch (e) { return Promise.reject(e); } @@ -14130,150 +14521,153 @@ var ot = function ot(e, t) { code: "PARAM_ERROR", message: "函数名不能为空" })); - var c = { + var u = { inQuery: n, parse: s, search: r, function_name: e, - request_data: a + request_data: c }; - return Qe(this.config.env).send("functions.invokeFunction", c).then(function (e) { - if (e.code) o(null, e);else { - var _t9 = e.data.response_data; - if (s) o(null, { - result: _t9, + return tt(this.config.env).send("functions.invokeFunction", u, { + timeout: i + }).then(function (e) { + if (e.code) a(null, e);else { + var _t10 = e.data.response_data; + if (s) a(null, { + result: _t10, requestId: e.requestId });else try { - _t9 = JSON.parse(e.data.response_data), o(null, { - result: _t9, + _t10 = JSON.parse(e.data.response_data), a(null, { + result: _t10, requestId: e.requestId }); } catch (e) { - o(new te({ + a(new te({ message: "response data must be json" })); } } - return o.promise; + return a.promise; }).catch(function (e) { - o(e); - }), o.promise; + a(e); + }), a.promise; }, - dt = { + mt = { timeout: 15e3, persistence: "session" }, - pt = {}; -var ft = /*#__PURE__*/function () { - function ft(e) { - (0, _classCallCheck2.default)(this, ft); + yt = 6e5, + _t = {}; +var wt = /*#__PURE__*/function () { + function wt(e) { + (0, _classCallCheck2.default)(this, wt); this.config = e || this.config, this.authObj = void 0; } - (0, _createClass2.default)(ft, [{ + (0, _createClass2.default)(wt, [{ key: "init", value: function init(e) { switch (Ae.adapter || (this.requestClient = new Ae.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") - })), this.config = _objectSpread(_objectSpread({}, dt), e), !0) { - case this.config.timeout > 6e5: - console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; + })), this.config = _objectSpread(_objectSpread({}, mt), e), !0) { + case this.config.timeout > yt: + console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = yt; break; case this.config.timeout < 100: console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; } - return new ft(this.config); + return new wt(this.config); } }, { key: "auth", value: function auth() { - var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref12.persistence; + var _ref15 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref15.persistence; if (this.authObj) return this.authObj; - var t = e || Ae.adapter.primaryStorage || dt.persistence; + var t = e || Ae.adapter.primaryStorage || mt.persistence; var n; return t !== this.config.persistence && (this.config.persistence = t), function (e) { var t = e.env; - Oe[t] = new xe(e), Ee[t] = new xe(_objectSpread(_objectSpread({}, e), {}, { + Ne[t] = new xe(e), Re[t] = new xe(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" })); - }(this.config), n = this.config, Ye[n.env] = new Ge(n), this.authObj = new it(this.config), this.authObj; + }(this.config), n = this.config, et[n.env] = new Ze(n), this.authObj = new ut(this.config), this.authObj; } }, { key: "on", value: function on(e, t) { - return De.apply(this, [e, t]); + return qe.apply(this, [e, t]); } }, { key: "off", value: function off(e, t) { - return qe.apply(this, [e, t]); + return Ke.apply(this, [e, t]); } }, { key: "callFunction", value: function callFunction(e, t) { - return lt.apply(this, [e, t]); + return gt.apply(this, [e, t]); } }, { key: "deleteFile", value: function deleteFile(e, t) { - return ct.apply(this, [e, t]); + return dt.apply(this, [e, t]); } }, { key: "getTempFileURL", value: function getTempFileURL(e, t) { - return ut.apply(this, [e, t]); + return pt.apply(this, [e, t]); } }, { key: "downloadFile", value: function downloadFile(e, t) { - return ht.apply(this, [e, t]); + return ft.apply(this, [e, t]); } }, { key: "uploadFile", value: function uploadFile(e, t) { - return ot.apply(this, [e, t]); + return ht.apply(this, [e, t]); } }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) { - return at.apply(this, [e, t]); + return lt.apply(this, [e, t]); } }, { key: "registerExtension", value: function registerExtension(e) { - pt[e.name] = e; + _t[e.name] = e; } }, { key: "invokeExtension", value: function () { - var _invokeExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(e, t) { + var _invokeExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42(e, t) { var n; - return _regenerator.default.wrap(function _callee33$(_context33) { + return _regenerator.default.wrap(function _callee42$(_context42) { while (1) { - switch (_context33.prev = _context33.next) { + switch (_context42.prev = _context42.next) { case 0: - n = pt[e]; + n = _t[e]; if (n) { - _context33.next = 3; + _context42.next = 3; break; } throw new te({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") }); case 3: - _context33.next = 5; + _context42.next = 5; return n.invoke(t, this); case 5: - return _context33.abrupt("return", _context33.sent); + return _context42.abrupt("return", _context42.sent); case 6: case "end": - return _context33.stop(); + return _context42.stop(); } } - }, _callee33, this); + }, _callee42, this); })); - function invokeExtension(_x29, _x30) { + function invokeExtension(_x35, _x36) { return _invokeExtension.apply(this, arguments); } return invokeExtension; @@ -14281,16 +14675,16 @@ var ft = /*#__PURE__*/function () { }, { key: "useAdapters", value: function useAdapters(e) { - var _ref13 = ke(e) || {}, - t = _ref13.adapter, - n = _ref13.runtime; + var _ref16 = ke(e) || {}, + t = _ref16.adapter, + n = _ref16.runtime; t && (Ae.adapter = t), n && (Ae.runtime = n); } }]); - return ft; + return wt; }(); -var gt = new ft(); -function mt(e, t, n) { +var It = new wt(); +function vt(e, t, n) { void 0 === n && (n = {}); var s = /\?/.test(t), r = ""; @@ -14299,27 +14693,52 @@ function mt(e, t, n) { } return /^http(s)?:\/\//.test(t += r) ? t : "" + e + t; } -var yt = /*#__PURE__*/function () { - function yt() { - (0, _classCallCheck2.default)(this, yt); +var St = /*#__PURE__*/function () { + function St() { + (0, _classCallCheck2.default)(this, St); } - (0, _createClass2.default)(yt, [{ - key: "post", - value: function post(e) { + (0, _createClass2.default)(St, [{ + key: "get", + value: function get(e) { var t = e.url, n = e.data, - s = e.headers; - return new Promise(function (e, r) { + s = e.headers, + r = e.timeout; + return new Promise(function (e, i) { ne.request({ - url: mt("https:", t), + url: vt("https:", t), data: n, - method: "POST", + method: "GET", header: s, + timeout: r, success: function success(t) { e(t); }, fail: function fail(e) { - r(e); + i(e); + } + }); + }); + } + }, { + key: "post", + value: function post(e) { + var t = e.url, + n = e.data, + s = e.headers, + r = e.timeout; + return new Promise(function (e, i) { + ne.request({ + url: vt("https:", t), + data: n, + method: "POST", + header: s, + timeout: r, + success: function success(t) { + e(t); + }, + fail: function fail(e) { + i(e); } }); }); @@ -14334,7 +14753,7 @@ var yt = /*#__PURE__*/function () { o = e.headers, a = e.fileType, c = ne.uploadFile({ - url: mt("https:", s), + url: vt("https:", s), name: "file", formData: Object.assign({}, i), filePath: r, @@ -14360,9 +14779,9 @@ var yt = /*#__PURE__*/function () { }); } }]); - return yt; + return St; }(); -var _t = { +var Tt = { setItem: function setItem(e, t) { ne.setStorageSync(e, t); }, @@ -14376,12 +14795,12 @@ var _t = { ne.clearStorageSync(); } }; -var wt = { +var bt = { genAdapter: function genAdapter() { return { root: {}, - reqClass: yt, - localStorage: _t, + reqClass: St, + localStorage: Tt, primaryStorage: "local" }; }, @@ -14390,12 +14809,12 @@ var wt = { }, runtime: "uni_app" }; -gt.useAdapters(wt); -var vt = gt, - It = vt.init; -vt.init = function (e) { +It.useAdapters(bt); +var Et = It, + kt = Et.init; +Et.init = function (e) { e.env = e.spaceId; - var t = It.call(this, e); + var t = kt.call(this, e); t.config.provider = "tencent", t.config.spaceId = e.spaceId; var n = t.auth; return t.auth = function (e) { @@ -14418,118 +14837,323 @@ vt.init = function (e) { }), t; }, t.customAuth = t.auth, t; }; -var St = vt; -var bt = /*#__PURE__*/function (_de) { - (0, _inherits2.default)(bt, _de); - var _super8 = _createSuper(bt); - function bt() { - (0, _classCallCheck2.default)(this, bt); - return _super8.apply(this, arguments); +var At = Et; +function Pt(_x37, _x38) { + return _Pt.apply(this, arguments); +} +function _Pt() { + _Pt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee68(e, t) { + var n, _e31, s; + return _regenerator.default.wrap(function _callee68$(_context68) { + while (1) { + switch (_context68.prev = _context68.next) { + case 0: + n = "http://".concat(e, ":").concat(t, "/system/ping"); + _context68.prev = 1; + _context68.next = 4; + return s = { + url: n, + timeout: 500 + }, new Promise(function (e, t) { + ne.request(_objectSpread(_objectSpread({}, s), {}, { + success: function success(t) { + e(t); + }, + fail: function fail(e) { + t(e); + } + })); + }); + case 4: + _e31 = _context68.sent; + return _context68.abrupt("return", !(!_e31.data || 0 !== _e31.data.code)); + case 8: + _context68.prev = 8; + _context68.t0 = _context68["catch"](1); + return _context68.abrupt("return", !1); + case 11: + case "end": + return _context68.stop(); + } + } + }, _callee68, null, [[1, 8]]); + })); + return _Pt.apply(this, arguments); +} +function Ct(_x39, _x40) { + return _Ct.apply(this, arguments); +} +function _Ct() { + _Ct = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee69(e, t) { + var n, s, _r10; + return _regenerator.default.wrap(function _callee69$(_context69) { + while (1) { + switch (_context69.prev = _context69.next) { + case 0: + s = 0; + case 1: + if (!(s < e.length)) { + _context69.next = 11; + break; + } + _r10 = e[s]; + _context69.next = 5; + return Pt(_r10, t); + case 5: + if (!_context69.sent) { + _context69.next = 8; + break; + } + n = _r10; + return _context69.abrupt("break", 11); + case 8: + s++; + _context69.next = 1; + break; + case 11: + return _context69.abrupt("return", { + address: n, + port: t + }); + case 12: + case "end": + return _context69.stop(); + } + } + }, _callee69); + })); + return _Ct.apply(this, arguments); +} +var Ot = { + "serverless.file.resource.generateProximalSign": "storage/generate-proximal-sign", + "serverless.file.resource.report": "storage/report", + "serverless.file.resource.delete": "storage/delete", + "serverless.file.resource.getTempFileURL": "storage/get-temp-file-url" +}; +var xt = /*#__PURE__*/function () { + function xt(e) { + (0, _classCallCheck2.default)(this, xt); + if (["spaceId", "clientSecret"].forEach(function (t) { + if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error("".concat(t, " required")); + }), !e.endpoint) throw new Error("集群空间未配置ApiEndpoint,配置后需要重新关联服务空间后生效"); + this.config = Object.assign({}, e), this.config.provider = "dcloud", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.adapter = ne; } - (0, _createClass2.default)(bt, [{ - key: "getAccessToken", - value: function getAccessToken() { - var _this11 = this; - return new Promise(function (e, t) { - var n = "Anonymous_Access_token"; - _this11.setAccessToken(n), e(n); + (0, _createClass2.default)(xt, [{ + key: "request", + value: function () { + var _request4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43(e) { + var _this15 = this; + var t, + n, + _args43 = arguments; + return _regenerator.default.wrap(function _callee43$(_context43) { + while (1) { + switch (_context43.prev = _context43.next) { + case 0: + t = _args43.length > 1 && _args43[1] !== undefined ? _args43[1] : !0; + n = b && t; + if (!n) { + _context43.next = 8; + break; + } + _context43.next = 5; + return this.setupLocalRequest(e); + case 5: + _context43.t0 = _context43.sent; + _context43.next = 9; + break; + case 8: + _context43.t0 = this.setupRequest(e); + case 9: + e = _context43.t0; + return _context43.abrupt("return", Promise.resolve().then(function () { + return n ? _this15.requestLocal(e) : le.wrappedRequest(e, _this15.adapter.request); + })); + case 11: + case "end": + return _context43.stop(); + } + } + }, _callee43, this); + })); + function request(_x41) { + return _request4.apply(this, arguments); + } + return request; + }() + }, { + key: "requestLocal", + value: function requestLocal(e) { + var _this16 = this; + return new Promise(function (t, n) { + _this16.adapter.request(Object.assign(e, { + complete: function complete(e) { + if (e || (e = {}), !e.statusCode || e.statusCode >= 400) { + var _t11 = e.data && e.data.code || "SYS_ERR", + _s12 = e.data && e.data.message || "request:fail"; + return n(new te({ + code: _t11, + message: _s12 + })); + } + t({ + success: !0, + result: e.data + }); + } + })); }); } }, { key: "setupRequest", - value: function setupRequest(e, t) { - var n = Object.assign({}, e, { + value: function setupRequest(e) { + var t = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), - s = { + n = { "Content-Type": "application/json" }; - "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret); - var r = he(); - s["x-client-info"] = encodeURIComponent(JSON.stringify(r)); + n["x-serverless-sign"] = le.sign(t, this.config.clientSecret); + var s = he(); + n["x-client-info"] = encodeURIComponent(JSON.stringify(s)); var _se = se(), - i = _se.token; - return s["x-client-token"] = i, { + r = _se.token; + return n["x-client-token"] = r, { url: this.config.requestUrl, method: "POST", - data: n, + data: t, dataType: "json", - header: JSON.parse(JSON.stringify(s)) + header: JSON.parse(JSON.stringify(n)) }; } }, { - key: "uploadFileToOSS", - value: function uploadFileToOSS(_ref14) { - var _this12 = this; - var e = _ref14.url, - t = _ref14.formData, - n = _ref14.name, - s = _ref14.filePath, - r = _ref14.fileType, - i = _ref14.onUploadProgress; - return new Promise(function (o, a) { - var c = _this12.adapter.uploadFile({ - url: e, - formData: t, - name: n, - filePath: s, - fileType: r, - success: function success(e) { - e && e.statusCode < 400 ? o(e) : a(new te({ - code: "UPLOAD_FAILED", - message: "文件上传失败" - })); - }, - fail: function fail(e) { - a(new te({ - code: e.code || "UPLOAD_FAILED", - message: e.message || e.errMsg || "文件上传失败" - })); + key: "setupLocalRequest", + value: function () { + var _setupLocalRequest = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44(e) { + var t, _se2, n, s, _ref17, r, i, _yield$Ct, o; + return _regenerator.default.wrap(function _callee44$(_context44) { + while (1) { + switch (_context44.prev = _context44.next) { + case 0: + t = he(); + _se2 = se(); + n = _se2.token; + s = Object.assign({}, e, { + spaceId: this.config.spaceId, + timestamp: Date.now(), + clientInfo: t, + token: n + }); + _ref17 = this.__dev__ && this.__dev__.debugInfo || {}; + r = _ref17.address; + i = _ref17.servePort; + _context44.next = 9; + return Ct(r, i); + case 9: + _yield$Ct = _context44.sent; + o = _yield$Ct.address; + return _context44.abrupt("return", { + url: "http://".concat(o, ":").concat(i, "/").concat(Ot[e.method]), + method: "POST", + data: s, + dataType: "json", + header: JSON.parse(JSON.stringify({ + "Content-Type": "application/json" + })) + }); + case 12: + case "end": + return _context44.stop(); + } } - }); - "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { - i({ - loaded: e.totalBytesSent, - total: e.totalBytesExpectedToSend - }); - }); - }); + }, _callee44, this); + })); + function setupLocalRequest(_x42) { + return _setupLocalRequest.apply(this, arguments); + } + return setupLocalRequest; + }() + }, { + key: "callFunction", + value: function callFunction(e) { + var t = { + method: "serverless.function.runtime.invoke", + params: JSON.stringify({ + functionTarget: e.name, + functionArgs: e.data || {} + }) + }; + return this.request(t, !1); + } + }, { + key: "getUploadFileOptions", + value: function getUploadFileOptions(e) { + var t = { + method: "serverless.file.resource.generateProximalSign", + params: JSON.stringify(e) + }; + return this.request(t); + } + }, { + key: "reportUploadFile", + value: function reportUploadFile(e) { + var t = { + method: "serverless.file.resource.report", + params: JSON.stringify(e) + }; + return this.request(t); } }, { key: "uploadFile", - value: function uploadFile(_ref15) { - var _this13 = this; - var e = _ref15.filePath, - t = _ref15.cloudPath, - _ref15$fileType = _ref15.fileType, - n = _ref15$fileType === void 0 ? "image" : _ref15$fileType, - s = _ref15.onUploadProgress; + value: function uploadFile(_ref18) { + var _this17 = this; + var e = _ref18.filePath, + t = _ref18.cloudPath, + _ref18$fileType = _ref18.fileType, + n = _ref18$fileType === void 0 ? "image" : _ref18$fileType, + s = _ref18.onUploadProgress; if (!t) throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); var r; - return this.getOSSUploadOptionsFromPath({ + return this.getUploadFileOptions({ cloudPath: t }).then(function (t) { var _t$result = t.result, i = _t$result.url, o = _t$result.formData, a = _t$result.name; - r = t.result.fileUrl; - var c = { - url: i, - formData: o, - name: a, - filePath: e, - fileType: n - }; - return _this13.uploadFileToOSS(Object.assign({}, c, { - onUploadProgress: s - })); + return r = t.result.fileUrl, new Promise(function (t, r) { + var c = _this17.adapter.uploadFile({ + url: i, + formData: o, + name: a, + filePath: e, + fileType: n, + success: function success(e) { + e && e.statusCode < 400 ? t(e) : r(new te({ + code: "UPLOAD_FAILED", + message: "文件上传失败" + })); + }, + fail: function fail(e) { + r(new te({ + code: e.code || "UPLOAD_FAILED", + message: e.message || e.errMsg || "文件上传失败" + })); + } + }); + "function" == typeof s && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { + s({ + loaded: e.totalBytesSent, + total: e.totalBytesExpectedToSend + }); + }); + }); }).then(function () { - return _this13.reportOSSUpload({ + return _this17.reportUploadFile({ cloudPath: t }); }).then(function (t) { @@ -14547,15 +15171,15 @@ var bt = /*#__PURE__*/function (_de) { } }, { key: "deleteFile", - value: function deleteFile(_ref16) { - var e = _ref16.fileList; + value: function deleteFile(_ref19) { + var e = _ref19.fileList; var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) }; - return this.request(this.setupRequest(t)).then(function (e) { + return this.request(t).then(function (e) { if (e.success) return e.result; throw new te({ code: "DELETE_FILE_FAILED", @@ -14566,9 +15190,9 @@ var bt = /*#__PURE__*/function (_de) { }, { key: "getTempFileURL", value: function getTempFileURL() { - var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref17.fileList, - t = _ref17.maxAge; + var _ref20 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref20.fileList, + t = _ref20.maxAge; if (!Array.isArray(e) || 0 === e.length) throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" @@ -14580,7 +15204,7 @@ var bt = /*#__PURE__*/function (_de) { maxAge: t }) }; - return this.request(this.setupRequest(n)).then(function (e) { + return this.request(n).then(function (e) { if (e.success) return { fileList: e.result.fileList.map(function (e) { return { @@ -14596,14 +15220,14 @@ var bt = /*#__PURE__*/function (_de) { }); } }]); - return bt; -}(de); -var kt = { + return xt; +}(); +var Nt = { init: function init(e) { - var t = new bt(e), + var t = new xt(e), n = { signInAnonymously: function signInAnonymously() { - return t.authorize(); + return Promise.resolve(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); @@ -14614,16 +15238,16 @@ var kt = { }, t.customAuth = t.auth, t; } }, - At = n(function (e, t) { + Rt = n(function (e, t) { e.exports = r.enc.Hex; }); -function Ct() { +function Lt() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) { var t = 16 * Math.random() | 0; return ("x" === e ? t : 3 & t | 8).toString(16); }); } -function Pt() { +function Ut() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n = t.data, @@ -14633,8 +15257,8 @@ function Pt() { _t$signHeaderKeys = t.signHeaderKeys, o = _t$signHeaderKeys === void 0 ? [] : _t$signHeaderKeys, a = t.config, - c = Date.now(), - u = Ct(), + c = String(Date.now()), + u = Lt(), h = Object.assign({}, i, { "x-from-app-id": a.spaceAppId, "x-from-env-id": a.spaceId, @@ -14648,23 +15272,24 @@ function Pt() { "x-trace-id": u }), l = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o), - _ref18 = e.split("?") || [], - _ref19 = (0, _slicedToArray2.default)(_ref18, 2), - _ref19$ = _ref19[0], - d = _ref19$ === void 0 ? "" : _ref19$, - _ref19$2 = _ref19[1], - p = _ref19$2 === void 0 ? "" : _ref19$2, + _ref21 = e.split("?") || [], + _ref22 = (0, _slicedToArray2.default)(_ref21, 2), + _ref22$ = _ref22[0], + d = _ref22$ === void 0 ? "" : _ref22$, + _ref22$2 = _ref22[1], + p = _ref22$2 === void 0 ? "" : _ref22$2, f = function (e) { - var t = e.signedHeaders.join(";"), - n = e.signedHeaders.map(function (t) { + var t = "HMAC-SHA256", + n = e.signedHeaders.join(";"), + s = e.signedHeaders.map(function (t) { return "".concat(t.toLowerCase(), ":").concat(e.headers[t], "\n"); }).join(""), - s = _e(e.body).toString(At), - r = "".concat(e.method.toUpperCase(), "\n").concat(e.path, "\n").concat(e.query, "\n").concat(n, "\n").concat(t, "\n").concat(s, "\n"), - i = _e(r).toString(At), - o = "HMAC-SHA256\n".concat(e.timestamp, "\n").concat(i, "\n"), - a = we(o, e.secretKey).toString(At); - return "HMAC-SHA256 Credential=".concat(e.secretId, ", SignedHeaders=").concat(t, ", Signature=").concat(a); + r = _e(e.body).toString(Rt), + i = "".concat(e.method.toUpperCase(), "\n").concat(e.path, "\n").concat(e.query, "\n").concat(s, "\n").concat(n, "\n").concat(r, "\n"), + o = _e(i).toString(Rt), + a = "".concat(t, "\n").concat(e.timestamp, "\n").concat(o, "\n"), + c = we(a, e.secretKey).toString(Rt); + return "".concat(t, " Credential=").concat(e.secretId, ", SignedHeaders=").concat(n, ", Signature=").concat(c); }({ path: d, query: p, @@ -14683,35 +15308,37 @@ function Pt() { }) }; } -function Tt(_ref20) { - var e = _ref20.url, - t = _ref20.data, - _ref20$method = _ref20.method, - n = _ref20$method === void 0 ? "POST" : _ref20$method, - _ref20$headers = _ref20.headers, - s = _ref20$headers === void 0 ? {} : _ref20$headers; - return new Promise(function (r, i) { +function Dt(_ref23) { + var e = _ref23.url, + t = _ref23.data, + _ref23$method = _ref23.method, + n = _ref23$method === void 0 ? "POST" : _ref23$method, + _ref23$headers = _ref23.headers, + s = _ref23$headers === void 0 ? {} : _ref23$headers, + r = _ref23.timeout; + return new Promise(function (i, o) { ne.request({ url: e, method: n, data: "object" == (0, _typeof2.default)(t) ? JSON.stringify(t) : t, header: s, dataType: "json", + timeout: r, complete: function complete() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = s["x-trace-id"] || ""; if (!e.statusCode || e.statusCode >= 400) { - var _ref21 = e.data || {}, - _n8 = _ref21.message, - _s10 = _ref21.errMsg, - _r4 = _ref21.trace_id; - return i(new te({ + var _ref24 = e.data || {}, + _n9 = _ref24.message, + _s13 = _ref24.errMsg, + _r4 = _ref24.trace_id; + return o(new te({ code: "SYS_ERR", - message: _n8 || _s10 || "request:fail", + message: _n9 || _s13 || "request:fail", requestId: _r4 || t })); } - r({ + i({ status: e.statusCode, data: e.data, headers: e.header, @@ -14721,12 +15348,12 @@ function Tt(_ref20) { }); }); } -function xt(e, t) { +function Mt(e, t) { var n = e.path, s = e.data, _e$method = e.method, r = _e$method === void 0 ? "GET" : _e$method, - _Pt = Pt(n, { + _Ut = Ut(n, { functionName: "", data: s, method: r, @@ -14738,9 +15365,9 @@ function xt(e, t) { signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t }), - i = _Pt.url, - o = _Pt.headers; - return Tt({ + i = _Ut.url, + o = _Ut.headers; + return Dt({ url: i, data: s, method: r, @@ -14761,7 +15388,7 @@ function xt(e, t) { }); }); } -function Ot() { +function qt() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = e.trim().replace(/^cloud:\/\//, ""), n = t.indexOf("/"); @@ -14773,16 +15400,16 @@ function Ot() { r = t.substring(n + 1); return s !== this.config.spaceId && console.warn("file ".concat(e, " does not belong to env ").concat(this.config.spaceId)), r; } -function Et() { +function Ft() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; return "cloud://".concat(this.config.spaceId, "/").concat(e.replace(/^\/+/, "")); } -var Lt = /*#__PURE__*/function () { - function Lt(e) { - (0, _classCallCheck2.default)(this, Lt); +var Kt = /*#__PURE__*/function () { + function Kt(e) { + (0, _classCallCheck2.default)(this, Kt); this.config = e; } - (0, _createClass2.default)(Lt, [{ + (0, _createClass2.default)(Kt, [{ key: "signedURL", value: function signedURL(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -14790,25 +15417,25 @@ var Lt = /*#__PURE__*/function () { s = this.config.wsEndpoint.replace(/^ws(s)?:\/\//, ""), r = Object.assign({}, t, { accessKeyId: this.config.accessKey, - signatureNonce: Ct(), + signatureNonce: Lt(), timestamp: "" + Date.now() }), i = [n, ["accessKeyId", "authorization", "signatureNonce", "timestamp"].sort().map(function (e) { return r[e] ? "".concat(e, "=").concat(r[e]) : null; }).filter(Boolean).join("&"), "host:".concat(s)].join("\n"), - o = ["HMAC-SHA256", _e(i).toString(At)].join("\n"), - a = we(o, this.config.secretKey).toString(At), + o = ["HMAC-SHA256", _e(i).toString(Rt)].join("\n"), + a = we(o, this.config.secretKey).toString(Rt), c = Object.keys(r).map(function (e) { return "".concat(e, "=").concat(encodeURIComponent(r[e])); }).join("&"); return "".concat(this.config.wsEndpoint).concat(n, "?").concat(c, "&signature=").concat(a); } }]); - return Lt; + return Kt; }(); -var Rt = /*#__PURE__*/function () { - function Rt(e) { - (0, _classCallCheck2.default)(this, Rt); +var jt = /*#__PURE__*/function () { + function jt(e) { + (0, _classCallCheck2.default)(this, jt); if (["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach(function (t) { if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error("".concat(t, " required")); }), e.endpoint) { @@ -14819,9 +15446,9 @@ var Rt = /*#__PURE__*/function () { this.config = Object.assign({}, e, { endpoint: e.endpoint || "https://".concat(e.spaceId, ".api-hz.cloudbasefunction.cn"), wsEndpoint: e.wsEndpoint || "wss://".concat(e.spaceId, ".api-hz.cloudbasefunction.cn") - }), this._websocket = new Lt(this.config); + }), this._websocket = new Kt(this.config); } - (0, _createClass2.default)(Rt, [{ + (0, _createClass2.default)(jt, [{ key: "callFunction", value: function callFunction(e) { return function (e, t) { @@ -14829,31 +15456,33 @@ var Rt = /*#__PURE__*/function () { s = e.data, _e$async = e.async, r = _e$async === void 0 ? !1 : _e$async, - i = "POST", - o = { + i = e.timeout, + o = "POST", + a = { "x-to-function-name": n }; - r && (o["x-function-invoke-type"] = "async"); - var _Pt2 = Pt("/functions/invokeFunction", { + r && (a["x-function-invoke-type"] = "async"); + var _Ut2 = Ut("/functions/invokeFunction", { functionName: n, data: s, - method: i, - headers: o, + method: o, + headers: a, signHeaderKeys: ["x-to-function-name"], config: t }), - a = _Pt2.url, - c = _Pt2.headers; - return Tt({ - url: a, + c = _Ut2.url, + u = _Ut2.headers; + return Dt({ + url: c, data: s, - method: i, - headers: c + method: o, + headers: u, + timeout: i }).then(function (e) { var t = 0; if (r) { - var _n9 = e.data || {}; - t = "200" === _n9.errCode ? 0 : _n9.errCode, e.data = _n9.data || {}, e.errMsg = _n9.errMsg; + var _n10 = e.data || {}; + t = "200" === _n10.errCode ? 0 : _n10.errCode, e.data = _n10.data || {}, e.errMsg = _n10.errMsg; } if (0 !== t) throw new te({ code: t, @@ -14877,12 +15506,12 @@ var Rt = /*#__PURE__*/function () { } }, { key: "uploadFileToOSS", - value: function uploadFileToOSS(_ref22) { - var e = _ref22.url, - t = _ref22.filePath, - n = _ref22.fileType, - s = _ref22.formData, - r = _ref22.onUploadProgress; + value: function uploadFileToOSS(_ref25) { + var e = _ref25.url, + t = _ref25.filePath, + n = _ref25.fileType, + s = _ref25.formData, + r = _ref25.onUploadProgress; return new Promise(function (i, o) { var a = ne.uploadFile({ url: e, @@ -14914,15 +15543,15 @@ var Rt = /*#__PURE__*/function () { }, { key: "uploadFile", value: function () { - var _uploadFile2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(_ref23) { - var e, _ref23$cloudPath, t, _ref23$fileType, n, s, r, i, o, a, c; - return _regenerator.default.wrap(function _callee34$(_context34) { + var _uploadFile2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee45(_ref26) { + var e, _ref26$cloudPath, t, _ref26$fileType, n, s, r, i, o, a, c; + return _regenerator.default.wrap(function _callee45$(_context45) { while (1) { - switch (_context34.prev = _context34.next) { + switch (_context45.prev = _context45.next) { case 0: - e = _ref23.filePath, _ref23$cloudPath = _ref23.cloudPath, t = _ref23$cloudPath === void 0 ? "" : _ref23$cloudPath, _ref23$fileType = _ref23.fileType, n = _ref23$fileType === void 0 ? "image" : _ref23$fileType, s = _ref23.onUploadProgress; - if (!("string" !== f(t))) { - _context34.next = 3; + e = _ref26.filePath, _ref26$cloudPath = _ref26.cloudPath, t = _ref26$cloudPath === void 0 ? "" : _ref26$cloudPath, _ref26$fileType = _ref26.fileType, n = _ref26$fileType === void 0 ? "image" : _ref26$fileType, s = _ref26.onUploadProgress; + if (!("string" !== g(t))) { + _context45.next = 3; break; } throw new te({ @@ -14931,7 +15560,7 @@ var Rt = /*#__PURE__*/function () { }); case 3: if (t = t.trim()) { - _context34.next = 5; + _context45.next = 5; break; } throw new te({ @@ -14940,7 +15569,7 @@ var Rt = /*#__PURE__*/function () { }); case 5: if (!/:\/\//.test(t)) { - _context34.next = 7; + _context45.next = 7; break; } throw new te({ @@ -14948,19 +15577,19 @@ var Rt = /*#__PURE__*/function () { message: "cloudPath不合法" }); case 7: - _context34.next = 9; - return xt({ + _context45.next = 9; + return Mt({ path: "/".concat(t.replace(/^\//, ""), "?post_url") }, this.config); case 9: - r = _context34.sent; + r = _context45.sent; i = r.file_id; o = r.upload_url; a = r.form_data; c = a && a.reduce(function (e, t) { return e[t.key] = t.value, e; }, {}); - return _context34.abrupt("return", this.uploadFileToOSS({ + return _context45.abrupt("return", this.uploadFileToOSS({ url: o, filePath: e, fileType: n, @@ -14973,12 +15602,12 @@ var Rt = /*#__PURE__*/function () { })); case 15: case "end": - return _context34.stop(); + return _context45.stop(); } } - }, _callee34, this); + }, _callee45, this); })); - function uploadFile(_x31) { + function uploadFile(_x43) { return _uploadFile2.apply(this, arguments); } return uploadFile; @@ -14986,35 +15615,40 @@ var Rt = /*#__PURE__*/function () { }, { key: "getTempFileURL", value: function () { - var _getTempFileURL = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(_ref24) { - var _this14 = this; + var _getTempFileURL = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46(_ref27) { + var _this18 = this; var e; - return _regenerator.default.wrap(function _callee35$(_context35) { + return _regenerator.default.wrap(function _callee46$(_context46) { while (1) { - switch (_context35.prev = _context35.next) { + switch (_context46.prev = _context46.next) { case 0: - e = _ref24.fileList; - return _context35.abrupt("return", new Promise(function (t, n) { - (!e || e.length < 0) && n(new te({ - errCode: "INVALID_PARAM", - errMsg: "fileList不能为空数组" - })), e.length > 50 && n(new te({ - errCode: "INVALID_PARAM", - errMsg: "fileList数组长度不能超过50" - })); + e = _ref27.fileList; + return _context46.abrupt("return", new Promise(function (t, n) { + (!e || e.length < 0) && t({ + code: "INVALID_PARAM", + message: "fileList不能为空数组" + }), e.length > 50 && t({ + code: "INVALID_PARAM", + message: "fileList数组长度不能超过50" + }); var s = []; var _iterator5 = _createForOfIteratorHelper(e), _step5; try { for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var _t10 = _step5.value; - "string" !== f(_t10) && n(new te({ - errCode: "INVALID_PARAM", - errMsg: "fileList的元素必须是非空的字符串" - })); - var _e17 = Ot.call(_this14, _t10); + var _n11 = _step5.value; + var _e18 = void 0; + "string" !== g(_n11) && t({ + code: "INVALID_PARAM", + message: "fileList的元素必须是非空的字符串" + }); + try { + _e18 = qt.call(_this18, _n11); + } catch (t) { + console.warn(t.errCode, t.errMsg), _e18 = _n11; + } s.push({ - file_id: _e17, + file_id: _e18, expire: 600 }); } @@ -15023,19 +15657,19 @@ var Rt = /*#__PURE__*/function () { } finally { _iterator5.f(); } - xt({ + Mt({ path: "/?download_url", data: { file_list: s }, method: "POST" - }, _this14.config).then(function (e) { + }, _this18.config).then(function (e) { var _e$file_list = e.file_list, n = _e$file_list === void 0 ? [] : _e$file_list; t({ fileList: n.map(function (e) { return { - fileID: Et.call(_this14, e.file_id), + fileID: Ft.call(_this18, e.file_id), tempFileURL: e.download_url }; }) @@ -15046,12 +15680,12 @@ var Rt = /*#__PURE__*/function () { })); case 2: case "end": - return _context35.stop(); + return _context46.stop(); } } - }, _callee35); + }, _callee46); })); - function getTempFileURL(_x32) { + function getTempFileURL(_x44) { return _getTempFileURL.apply(this, arguments); } return getTempFileURL; @@ -15059,36 +15693,36 @@ var Rt = /*#__PURE__*/function () { }, { key: "connectWebSocket", value: function () { - var _connectWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(e) { + var _connectWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee47(e) { var t, n; - return _regenerator.default.wrap(function _callee36$(_context36) { + return _regenerator.default.wrap(function _callee47$(_context47) { while (1) { - switch (_context36.prev = _context36.next) { + switch (_context47.prev = _context47.next) { case 0: t = e.name, n = e.query; - return _context36.abrupt("return", ne.connectSocket({ + return _context47.abrupt("return", ne.connectSocket({ url: this._websocket.signedURL(t, n), complete: function complete() {} })); case 2: case "end": - return _context36.stop(); + return _context47.stop(); } } - }, _callee36, this); + }, _callee47, this); })); - function connectWebSocket(_x33) { + function connectWebSocket(_x45) { return _connectWebSocket.apply(this, arguments); } return connectWebSocket; }() }]); - return Rt; + return jt; }(); -var Ut = { +var $t = { init: function init(e) { e.provider = "alipay"; - var t = new Rt(e); + var t = new jt(e); return t.auth = function () { return { signInAnonymously: function signInAnonymously() { @@ -15101,59 +15735,58 @@ var Ut = { }, t; } }; -function Nt(_ref25) { - var e = _ref25.data; +function Bt(_ref28) { + var e = _ref28.data; var t; t = he(); var n = JSON.parse(JSON.stringify(e || {})); if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) { - var _se2 = se(), - _e18 = _se2.token; - _e18 && (n.uniIdToken = _e18); + var _se3 = se(), + _e19 = _se3.token; + _e19 && (n.uniIdToken = _e19); } return n; } -function Dt() { - return _Dt.apply(this, arguments); +function Wt() { + return _Wt.apply(this, arguments); } -function _Dt() { - _Dt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee57() { - var _this27 = this; - var _ref67, - e, - t, +function _Wt() { + _Wt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee70() { + var _this31 = this; + var e, _this$__dev__, + t, n, s, r, i, o, - a, - _args6 = arguments; - return _regenerator.default.wrap(function _callee57$(_context57) { + _args9 = arguments; + return _regenerator.default.wrap(function _callee70$(_context70) { while (1) { - switch (_context57.prev = _context57.next) { + switch (_context70.prev = _context70.next) { case 0: - _ref67 = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, e = _ref67.name, t = _ref67.data; - _context57.next = 3; + e = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {}; + _context70.next = 3; return this.__dev__.initLocalNetwork(); case 3: - _this$__dev__ = this.__dev__, n = _this$__dev__.localAddress, s = _this$__dev__.localPort, r = { + _this$__dev__ = this.__dev__, t = _this$__dev__.localAddress, n = _this$__dev__.localPort, s = { aliyun: "aliyun", tencent: "tcb", - alipay: "alipay" - }[this.config.provider], i = this.config.spaceId, o = "http://".concat(n, ":").concat(s, "/system/check-function"), a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e); - return _context57.abrupt("return", new Promise(function (t, n) { + alipay: "alipay", + dcloud: "dcloud" + }[this.config.provider], r = this.config.spaceId, i = "http://".concat(t, ":").concat(n, "/system/check-function"), o = "http://".concat(t, ":").concat(n, "/cloudfunctions/").concat(e.name); + return _context70.abrupt("return", new Promise(function (t, n) { ne.request({ method: "POST", - url: o, + url: i, data: { - name: e, - platform: C, - provider: r, - spaceId: i + name: e.name, + platform: P, + provider: s, + spaceId: r }, timeout: 3e3, success: function success(e) { @@ -15169,65 +15802,63 @@ function _Dt() { } }); }).then(function () { - var _ref68 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref68.data; - var _ref69 = e || {}, - t = _ref69.code, - n = _ref69.message; + var _ref66 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref66.data; + var _ref67 = e || {}, + t = _ref67.code, + n = _ref67.message; return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" }; - }).then(function (_ref70) { - var n = _ref70.code, - s = _ref70.message; - if (0 !== n) { - switch (n) { + }).then(function (_ref68) { + var t = _ref68.code, + n = _ref68.message; + if (0 !== t) { + switch (t) { case "MODULE_ENCRYPTED": - console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); + console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e.name, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "FUNCTION_ENCRYPTED": - console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); + console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e.name, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "ACTION_ENCRYPTED": - console.error(s || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); + console.error(n || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); break; case "NETWORK_ERROR": - console.error(s || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"); + console.error(n || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"); break; case "SWITCH_TO_CLOUD": break; default: { - var _e30 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5"); - throw console.error(_e30), new Error(_e30); + var _e32 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(n, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5"); + throw console.error(_e32), new Error(_e32); } } - return _this27._callCloudFunction({ - name: e, - data: t - }); + return _this31._callCloudFunction(e); } - return new Promise(function (e, n) { - var s = Nt.call(_this27, { - data: t + return new Promise(function (t, n) { + var r = Bt.call(_this31, { + data: e.data }); ne.request({ method: "POST", - url: a, + url: o, data: { - provider: r, - platform: C, - param: s + provider: s, + platform: P, + param: r }, + timeout: e.timeout, success: function success() { - var _ref71 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - t = _ref71.statusCode, - s = _ref71.data; - return !t || t >= 400 ? n(new te({ + var _ref69 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref69.statusCode, + s = _ref69.data; + return !e || e >= 400 ? n(new te({ code: s.code || "SYS_ERR", message: s.message || "request:fail" - })) : e({ + })) : t({ result: s }); }, @@ -15242,42 +15873,83 @@ function _Dt() { })); case 5: case "end": - return _context57.stop(); + return _context70.stop(); } } - }, _callee57, this); + }, _callee70, this); })); - return _Dt.apply(this, arguments); + return _Wt.apply(this, arguments); } -var Mt = [{ +var Ht = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; -var qt = /[\\^$.*+?()[\]{}|]/g, - Ft = RegExp(qt.source); -function Kt(e, t, n) { - return e.replace(new RegExp((s = t) && Ft.test(s) ? s.replace(qt, "\\$&") : s, "g"), n); +var Jt = /[\\^$.*+?()[\]{}|]/g, + zt = RegExp(Jt.source); +function Vt(e, t, n) { + return e.replace(new RegExp((s = t) && zt.test(s) ? s.replace(Jt, "\\$&") : s, "g"), n); var s; } -var jt = "none", - $t = "request", - Bt = "response", - Wt = "both"; -var Ht = /*#__PURE__*/function () { - function Ht() { - var _ref26 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref26.secretType, - t = _ref26.uniCloudIns; - (0, _classCallCheck2.default)(this, Ht); - this.clientType = "", this.secretType = e || jt, this.uniCloudIns = t; +var Gt = { + NONE: "none", + REQUEST: "request", + RESPONSE: "response", + BOTH: "both" + }, + Yt = "_globalUniCloudStatus", + Qt = "_globalUniCloudSecureNetworkCache__{spaceId}", + Xt = "uni-secure-network", + Zt = { + SYSTEM_ERROR: { + code: 2e4, + message: "System error" + }, + APP_INFO_INVALID: { + code: 20101, + message: "Invalid client" + }, + GET_ENCRYPT_KEY_FAILED: { + code: 20102, + message: "Get encrypt key failed" + } + }, + en = { + 10001: "Secure network is not supported on current playground or unimpsdk", + 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", + 10009: "Encrypt payload failed", + 10010: "Decrypt response failed" + }; +function tn(e) { + var _ref29 = e || {}, + t = _ref29.errSubject, + n = _ref29.subject, + s = _ref29.errCode, + r = _ref29.errMsg, + i = _ref29.code, + o = _ref29.message, + a = _ref29.cause; + return new te({ + subject: t || n || Xt, + code: s || i || Zt.SYSTEM_ERROR.code, + message: r || o, + cause: a + }); +} +var nn = /*#__PURE__*/function () { + function nn() { + var _ref30 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref30.secretType, + t = _ref30.uniCloudIns; + (0, _classCallCheck2.default)(this, nn); + this.clientType = "", this.secretType = e || Gt.NONE, this.uniCloudIns = t; var _this$uniCloudIns$con = this.uniCloudIns.config, n = _this$uniCloudIns$con.provider, s = _this$uniCloudIns$con.spaceId; var r; - this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", r.config.spaceId))); + this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, U(Qt.replace("{spaceId}", r.config.spaceId))); } - (0, _createClass2.default)(Ht, [{ + (0, _createClass2.default)(nn, [{ key: "getSystemInfo", value: function getSystemInfo() { return this._systemInfo || (this._systemInfo = ae()), this._systemInfo; @@ -15295,20 +15967,20 @@ var Ht = /*#__PURE__*/function () { }, { key: "encryptData", value: function () { - var _encryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(e) { - return _regenerator.default.wrap(function _callee37$(_context37) { + var _encryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee48(e) { + return _regenerator.default.wrap(function _callee48$(_context48) { while (1) { - switch (_context37.prev = _context37.next) { + switch (_context48.prev = _context48.next) { case 0: - return _context37.abrupt("return", this.secretType === jt ? e : this.platformEncryptData(e)); + return _context48.abrupt("return", this.secretType === Gt.NONE ? e : this.platformEncryptData(e)); case 1: case "end": - return _context37.stop(); + return _context48.stop(); } } - }, _callee37, this); + }, _callee48, this); })); - function encryptData(_x34) { + function encryptData(_x46) { return _encryptData.apply(this, arguments); } return encryptData; @@ -15316,28 +15988,28 @@ var Ht = /*#__PURE__*/function () { }, { key: "decryptResult", value: function () { - var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(e) { - var _ref27, t, n; - return _regenerator.default.wrap(function _callee38$(_context38) { + var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49(e) { + var _ref31, t, n, s; + return _regenerator.default.wrap(function _callee49$(_context49) { while (1) { - switch (_context38.prev = _context38.next) { + switch (_context49.prev = _context49.next) { case 0: - if (!(this.secretType === jt)) { - _context38.next = 2; + if (!(this.secretType === Gt.NONE)) { + _context49.next = 2; break; } - return _context38.abrupt("return", e); + return _context49.abrupt("return", e); case 2: - _ref27 = e || {}, t = _ref27.errCode, n = _ref27.content; - return _context38.abrupt("return", t || !n ? e : this.secretType === $t ? n : this.platformDecryptResult(e)); + _ref31 = e || {}, t = _ref31.errCode, n = _ref31.errMsg, s = _ref31.content; + return _context49.abrupt("return", t || !s ? e : this.secretType === Gt.REQUEST ? s : this.platformDecryptResult(e)); case 4: case "end": - return _context38.stop(); + return _context49.stop(); } } - }, _callee38, this); + }, _callee49, this); })); - function decryptResult(_x35) { + function decryptResult(_x47) { return _decryptResult.apply(this, arguments); } return decryptResult; @@ -15346,164 +16018,160 @@ var Ht = /*#__PURE__*/function () { key: "wrapVerifyClientCallFunction", value: function wrapVerifyClientCallFunction(e) { var t = this; - return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() { - var _ref29, + return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { + var _ref33, n, - _ref29$data, + _ref33$data, s, r, - _args39 = arguments; - return _regenerator.default.wrap(function _callee39$(_context39) { + _args50 = arguments; + return _regenerator.default.wrap(function _callee50$(_context50) { while (1) { - switch (_context39.prev = _context39.next) { + switch (_context50.prev = _context50.next) { case 0: - _ref29 = _args39.length > 0 && _args39[0] !== undefined ? _args39[0] : {}, n = _ref29.name, _ref29$data = _ref29.data, s = _ref29$data === void 0 ? {} : _ref29$data; - _context39.next = 3; + _ref33 = _args50.length > 0 && _args50[0] !== undefined ? _args50[0] : {}, n = _ref33.name, _ref33$data = _ref33.data, s = _ref33$data === void 0 ? {} : _ref33$data; + _context50.next = 3; return t.prepare(); case 3: - _context39.next = 5; + _context50.next = 5; return t.platformGetSignOption(); case 5: - (s = JSON.parse(JSON.stringify(s)))._uniCloudOptions = _context39.sent; - _context39.next = 8; + (s = JSON.parse(JSON.stringify(s)))._uniCloudOptions = _context50.sent; + _context50.next = 8; return e({ name: n, data: s }); case 8: - r = _context39.sent; - _context39.t0 = t.isClientKeyNotFound(r); - if (!_context39.t0) { - _context39.next = 19; + r = _context50.sent; + _context50.t0 = t.isClientKeyNotFound(r); + if (!_context50.t0) { + _context50.next = 19; break; } - _context39.next = 13; + _context50.next = 13; return t.prepare({ forceUpdate: !0 }); case 13: - _context39.next = 15; + _context50.next = 15; return t.platformGetSignOption(); case 15: - s._uniCloudOptions = _context39.sent; - _context39.next = 18; + s._uniCloudOptions = _context50.sent; + _context50.next = 18; return e({ name: n, data: s }); case 18: - r = _context39.sent; + r = _context50.sent; case 19: - return _context39.abrupt("return", r); + return _context50.abrupt("return", r); case 20: case "end": - return _context39.stop(); + return _context50.stop(); } } - }, _callee39); + }, _callee50); })); } }, { key: "wrapEncryptDataCallFunction", value: function wrapEncryptDataCallFunction(e) { var t = this; - return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40() { - var _ref31, + return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51() { + var _ref35, n, - _ref31$data, + _ref35$data, s, r, i, _r5, - _args40 = arguments; - return _regenerator.default.wrap(function _callee40$(_context40) { + _args51 = arguments; + return _regenerator.default.wrap(function _callee51$(_context51) { while (1) { - switch (_context40.prev = _context40.next) { + switch (_context51.prev = _context51.next) { case 0: - _ref31 = _args40.length > 0 && _args40[0] !== undefined ? _args40[0] : {}, n = _ref31.name, _ref31$data = _ref31.data, s = _ref31$data === void 0 ? {} : _ref31$data; - _context40.next = 3; + _ref35 = _args51.length > 0 && _args51[0] !== undefined ? _args51[0] : {}, n = _ref35.name, _ref35$data = _ref35.data, s = _ref35$data === void 0 ? {} : _ref35$data; + _context51.next = 3; return t.prepare(); case 3: - _context40.next = 5; + _context51.next = 5; return t.encryptData(s); case 5: - r = _context40.sent; - _context40.next = 8; + r = _context51.sent; + _context51.next = 8; return e({ name: n, data: r }); case 8: - i = _context40.sent; + i = _context51.sent; if (!t.isClientKeyNotFound(i)) { - _context40.next = 21; + _context51.next = 18; break; } - _context40.next = 12; + _context51.next = 12; return t.prepare({ forceUpdate: !0 }); case 12: - _context40.next = 14; + _context51.next = 14; return t.encryptData(s); case 14: - _r5 = _context40.sent; - _context40.next = 17; - return t.platformGetSignOption(); - case 17: - s._uniCloudOptions = _context40.sent; - _context40.next = 20; + _r5 = _context51.sent; + _context51.next = 17; return e({ name: n, data: _r5 }); - case 20: - i = _context40.sent; - case 21: - _context40.next = 23; + case 17: + i = _context51.sent; + case 18: + _context51.next = 20; return t.decryptResult(i.result); - case 23: - i.result = _context40.sent; - return _context40.abrupt("return", i); - case 25: + case 20: + i.result = _context51.sent; + return _context51.abrupt("return", i); + case 22: case "end": - return _context40.stop(); + return _context51.stop(); } } - }, _callee40); + }, _callee51); })); } }]); - return Ht; + return nn; }(); /*! MIT License. Copyright 2015-2018 Richard Moore . See LICENSE.txt. */ -function zt(e) { +function sn(e) { return parseInt(e) === e; } -function Jt(e) { - if (!zt(e.length)) return !1; +function rn(e) { + if (!sn(e.length)) return !1; for (var t = 0; t < e.length; t++) { - if (!zt(e[t]) || e[t] < 0 || e[t] > 255) return !1; + if (!sn(e[t]) || e[t] < 0 || e[t] > 255) return !1; } return !0; } -function Vt(e, t) { +function on(e, t) { if (e.buffer && "Uint8Array" === e.name) return t && (e = e.slice ? e.slice() : Array.prototype.slice.call(e)), e; if (Array.isArray(e)) { - if (!Jt(e)) throw new Error("Array contains invalid value: " + e); + if (!rn(e)) throw new Error("Array contains invalid value: " + e); return new Uint8Array(e); } - if (zt(e.length) && Jt(e)) return new Uint8Array(e); + if (sn(e.length) && rn(e)) return new Uint8Array(e); throw new Error("unsupported array-like object"); } -function Gt(e) { +function an(e) { return new Uint8Array(e); } -function Yt(e, t, n, s, r) { +function cn(e, t, n, s, r) { null == s && null == r || (e = e.slice ? e.slice(s, r) : Array.prototype.slice.call(e, s, r)), t.set(e, n); } -var Qt, - Xt = { +var un, + hn = { toBytes: function toBytes(e) { var t = [], n = 0; @@ -15511,7 +16179,7 @@ var Qt, var s = e.charCodeAt(n++); 37 === s ? (t.push(parseInt(e.substr(n, 2), 16)), n += 2) : t.push(s); } - return Vt(t); + return on(t); }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length;) { @@ -15521,7 +16189,7 @@ var Qt, return t.join(""); } }, - Zt = (Qt = "0123456789abcdef", { + ln = (un = "0123456789abcdef", { toBytes: function toBytes(e) { for (var t = [], n = 0; n < e.length; n += 2) { t.push(parseInt(e.substr(n, 2), 16)); @@ -15531,49 +16199,49 @@ var Qt, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length; n++) { var s = e[n]; - t.push(Qt[(240 & s) >> 4] + Qt[15 & s]); + t.push(un[(240 & s) >> 4] + un[15 & s]); } return t.join(""); } }), - en = { + dn = { 16: 10, 24: 12, 32: 14 }, - tn = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], - nn = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], - sn = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], - rn = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], - on = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], - an = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], - cn = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], - un = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], - hn = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], - ln = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], - dn = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], - pn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], - fn = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], - gn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], - mn = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; -function yn(e) { + pn = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], + fn = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], + gn = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], + mn = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], + yn = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], + _n = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], + wn = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], + In = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], + vn = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], + Sn = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], + Tn = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], + bn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], + En = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], + kn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], + An = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; +function Pn(e) { for (var t = [], n = 0; n < e.length; n += 4) { t.push(e[n] << 24 | e[n + 1] << 16 | e[n + 2] << 8 | e[n + 3]); } return t; } -var _n = /*#__PURE__*/function () { - function _n(e) { - (0, _classCallCheck2.default)(this, _n); - if (!(this instanceof _n)) throw Error("AES must be instanitated with `new`"); +var Cn = /*#__PURE__*/function () { + function Cn(e) { + (0, _classCallCheck2.default)(this, Cn); + if (!(this instanceof Cn)) throw Error("AES must be instanitated with `new`"); Object.defineProperty(this, "key", { - value: Vt(e, !0) + value: on(e, !0) }), this._prepare(); } - (0, _createClass2.default)(_n, [{ + (0, _createClass2.default)(Cn, [{ key: "_prepare", value: function _prepare() { - var e = en[this.key.length]; + var e = dn[this.key.length]; if (null == e) throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); this._Ke = [], this._Kd = []; for (var t = 0; t <= e; t++) { @@ -15582,18 +16250,18 @@ var _n = /*#__PURE__*/function () { var n, s = 4 * (e + 1), r = this.key.length / 4, - i = yn(this.key); + i = Pn(this.key); for (t = 0; t < r; t++) { n = t >> 2, this._Ke[n][t % 4] = i[t], this._Kd[e - n][t % 4] = i[t]; } for (var o, a = 0, c = r; c < s;) { - if (o = i[r - 1], i[0] ^= nn[o >> 16 & 255] << 24 ^ nn[o >> 8 & 255] << 16 ^ nn[255 & o] << 8 ^ nn[o >> 24 & 255] ^ tn[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { + if (o = i[r - 1], i[0] ^= fn[o >> 16 & 255] << 24 ^ fn[o >> 8 & 255] << 16 ^ fn[255 & o] << 8 ^ fn[o >> 24 & 255] ^ pn[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { i[t] ^= i[t - 1]; } else { for (t = 1; t < r / 2; t++) { i[t] ^= i[t - 1]; } - o = i[r / 2 - 1], i[r / 2] ^= nn[255 & o] ^ nn[o >> 8 & 255] << 8 ^ nn[o >> 16 & 255] << 16 ^ nn[o >> 24 & 255] << 24; + o = i[r / 2 - 1], i[r / 2] ^= fn[255 & o] ^ fn[o >> 8 & 255] << 8 ^ fn[o >> 16 & 255] << 16 ^ fn[o >> 24 & 255] << 24; for (t = r / 2 + 1; t < r; t++) { i[t] ^= i[t - 1]; } @@ -15604,7 +16272,7 @@ var _n = /*#__PURE__*/function () { } for (var u = 1; u < e; u++) { for (var h = 0; h < 4; h++) { - o = this._Kd[u][h], this._Kd[u][h] = pn[o >> 24 & 255] ^ fn[o >> 16 & 255] ^ gn[o >> 8 & 255] ^ mn[255 & o]; + o = this._Kd[u][h], this._Kd[u][h] = bn[o >> 24 & 255] ^ En[o >> 16 & 255] ^ kn[o >> 8 & 255] ^ An[255 & o]; } } } @@ -15612,19 +16280,19 @@ var _n = /*#__PURE__*/function () { key: "encrypt", value: function encrypt(e) { if (16 != e.length) throw new Error("invalid plaintext size (must be 16 bytes)"); - for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = yn(e), r = 0; r < 4; r++) { + for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = Pn(e), r = 0; r < 4; r++) { s[r] ^= this._Ke[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { - n[r] = rn[s[r] >> 24 & 255] ^ on[s[(r + 1) % 4] >> 16 & 255] ^ an[s[(r + 2) % 4] >> 8 & 255] ^ cn[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; + n[r] = mn[s[r] >> 24 & 255] ^ yn[s[(r + 1) % 4] >> 16 & 255] ^ _n[s[(r + 2) % 4] >> 8 & 255] ^ wn[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; } s = n.slice(); } var o, - a = Gt(16); + a = an(16); for (r = 0; r < 4; r++) { - o = this._Ke[t][r], a[4 * r] = 255 & (nn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (nn[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (nn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (nn[255 & s[(r + 3) % 4]] ^ o); + o = this._Ke[t][r], a[4 * r] = 255 & (fn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (fn[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (fn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (fn[255 & s[(r + 3) % 4]] ^ o); } return a; } @@ -15632,109 +16300,109 @@ var _n = /*#__PURE__*/function () { key: "decrypt", value: function decrypt(e) { if (16 != e.length) throw new Error("invalid ciphertext size (must be 16 bytes)"); - for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = yn(e), r = 0; r < 4; r++) { + for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = Pn(e), r = 0; r < 4; r++) { s[r] ^= this._Kd[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { - n[r] = un[s[r] >> 24 & 255] ^ hn[s[(r + 3) % 4] >> 16 & 255] ^ ln[s[(r + 2) % 4] >> 8 & 255] ^ dn[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; + n[r] = In[s[r] >> 24 & 255] ^ vn[s[(r + 3) % 4] >> 16 & 255] ^ Sn[s[(r + 2) % 4] >> 8 & 255] ^ Tn[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; } s = n.slice(); } var o, - a = Gt(16); + a = an(16); for (r = 0; r < 4; r++) { - o = this._Kd[t][r], a[4 * r] = 255 & (sn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (sn[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (sn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (sn[255 & s[(r + 1) % 4]] ^ o); + o = this._Kd[t][r], a[4 * r] = 255 & (gn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (gn[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (gn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (gn[255 & s[(r + 1) % 4]] ^ o); } return a; } }]); - return _n; + return Cn; }(); -var wn = /*#__PURE__*/function () { - function wn(e) { - (0, _classCallCheck2.default)(this, wn); - if (!(this instanceof wn)) throw Error("AES must be instanitated with `new`"); - this.description = "Electronic Code Block", this.name = "ecb", this._aes = new _n(e); +var On = /*#__PURE__*/function () { + function On(e) { + (0, _classCallCheck2.default)(this, On); + if (!(this instanceof On)) throw Error("AES must be instanitated with `new`"); + this.description = "Electronic Code Block", this.name = "ecb", this._aes = new Cn(e); } - (0, _createClass2.default)(wn, [{ + (0, _createClass2.default)(On, [{ key: "encrypt", value: function encrypt(e) { - if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { - Yt(e, n, 0, s, s + 16), Yt(n = this._aes.encrypt(n), t, s); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), cn(n = this._aes.encrypt(n), t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { - if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { - Yt(e, n, 0, s, s + 16), Yt(n = this._aes.decrypt(n), t, s); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), cn(n = this._aes.decrypt(n), t, s); } return t; } }]); - return wn; + return On; }(); -var vn = /*#__PURE__*/function () { - function vn(e, t) { - (0, _classCallCheck2.default)(this, vn); - if (!(this instanceof vn)) throw Error("AES must be instanitated with `new`"); +var xn = /*#__PURE__*/function () { + function xn(e, t) { + (0, _classCallCheck2.default)(this, xn); + if (!(this instanceof xn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Block Chaining", this.name = "cbc", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); - } else t = Gt(16); - this._lastCipherblock = Vt(t, !0), this._aes = new _n(e); + } else t = an(16); + this._lastCipherblock = on(t, !0), this._aes = new Cn(e); } - (0, _createClass2.default)(vn, [{ + (0, _createClass2.default)(xn, [{ key: "encrypt", value: function encrypt(e) { - if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { - Yt(e, n, 0, s, s + 16); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16); for (var r = 0; r < 16; r++) { n[r] ^= this._lastCipherblock[r]; } - this._lastCipherblock = this._aes.encrypt(n), Yt(this._lastCipherblock, t, s); + this._lastCipherblock = this._aes.encrypt(n), cn(this._lastCipherblock, t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { - if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { - Yt(e, n, 0, s, s + 16), n = this._aes.decrypt(n); + if ((e = on(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); + for (var t = an(e.length), n = an(16), s = 0; s < e.length; s += 16) { + cn(e, n, 0, s, s + 16), n = this._aes.decrypt(n); for (var r = 0; r < 16; r++) { t[s + r] = n[r] ^ this._lastCipherblock[r]; } - Yt(e, this._lastCipherblock, 0, s, s + 16); + cn(e, this._lastCipherblock, 0, s, s + 16); } return t; } }]); - return vn; + return xn; }(); -var In = /*#__PURE__*/function () { - function In(e, t, n) { - (0, _classCallCheck2.default)(this, In); - if (!(this instanceof In)) throw Error("AES must be instanitated with `new`"); +var Nn = /*#__PURE__*/function () { + function Nn(e, t, n) { + (0, _classCallCheck2.default)(this, Nn); + if (!(this instanceof Nn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Feedback", this.name = "cfb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 size)"); - } else t = Gt(16); - n || (n = 1), this.segmentSize = n, this._shiftRegister = Vt(t, !0), this._aes = new _n(e); + } else t = an(16); + n || (n = 1), this.segmentSize = n, this._shiftRegister = on(t, !0), this._aes = new Cn(e); } - (0, _createClass2.default)(In, [{ + (0, _createClass2.default)(Nn, [{ key: "encrypt", value: function encrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid plaintext size (must be segmentSize bytes)"); - for (var t, n = Vt(e, !0), s = 0; s < n.length; s += this.segmentSize) { + for (var t, n = on(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } - Yt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Yt(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); + cn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), cn(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } @@ -15742,31 +16410,31 @@ var In = /*#__PURE__*/function () { key: "decrypt", value: function decrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid ciphertext size (must be segmentSize bytes)"); - for (var t, n = Vt(e, !0), s = 0; s < n.length; s += this.segmentSize) { + for (var t, n = on(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } - Yt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Yt(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); + cn(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), cn(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }]); - return In; + return Nn; }(); -var Sn = /*#__PURE__*/function () { - function Sn(e, t) { - (0, _classCallCheck2.default)(this, Sn); - if (!(this instanceof Sn)) throw Error("AES must be instanitated with `new`"); +var Rn = /*#__PURE__*/function () { + function Rn(e, t) { + (0, _classCallCheck2.default)(this, Rn); + if (!(this instanceof Rn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Output Feedback", this.name = "ofb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); - } else t = Gt(16); - this._lastPrecipher = Vt(t, !0), this._lastPrecipherIndex = 16, this._aes = new _n(e); + } else t = an(16); + this._lastPrecipher = on(t, !0), this._lastPrecipherIndex = 16, this._aes = new Cn(e); } - (0, _createClass2.default)(Sn, [{ + (0, _createClass2.default)(Rn, [{ key: "encrypt", value: function encrypt(e) { - for (var t = Vt(e, !0), n = 0; n < t.length; n++) { + for (var t = on(e, !0), n = 0; n < t.length; n++) { 16 === this._lastPrecipherIndex && (this._lastPrecipher = this._aes.encrypt(this._lastPrecipher), this._lastPrecipherIndex = 0), t[n] ^= this._lastPrecipher[this._lastPrecipherIndex++]; } return t; @@ -15777,15 +16445,15 @@ var Sn = /*#__PURE__*/function () { return this.encrypt(e); } }]); - return Sn; + return Rn; }(); -var bn = /*#__PURE__*/function () { - function bn(e) { - (0, _classCallCheck2.default)(this, bn); - if (!(this instanceof bn)) throw Error("Counter must be instanitated with `new`"); - 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = Gt(16), this.setValue(e)) : this.setBytes(e); +var Ln = /*#__PURE__*/function () { + function Ln(e) { + (0, _classCallCheck2.default)(this, Ln); + if (!(this instanceof Ln)) throw Error("Counter must be instanitated with `new`"); + 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = an(16), this.setValue(e)) : this.setBytes(e); } - (0, _createClass2.default)(bn, [{ + (0, _createClass2.default)(Ln, [{ key: "setValue", value: function setValue(e) { if ("number" != typeof e || parseInt(e) != e) throw new Error("invalid counter value (must be an integer)"); @@ -15797,7 +16465,7 @@ var bn = /*#__PURE__*/function () { }, { key: "setBytes", value: function setBytes(e) { - if (16 != (e = Vt(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); + if (16 != (e = on(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); this._counter = e; } }, { @@ -15812,18 +16480,18 @@ var bn = /*#__PURE__*/function () { } } }]); - return bn; + return Ln; }(); -var kn = /*#__PURE__*/function () { - function kn(e, t) { - (0, _classCallCheck2.default)(this, kn); - if (!(this instanceof kn)) throw Error("AES must be instanitated with `new`"); - this.description = "Counter", this.name = "ctr", t instanceof bn || (t = new bn(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new _n(e); +var Un = /*#__PURE__*/function () { + function Un(e, t) { + (0, _classCallCheck2.default)(this, Un); + if (!(this instanceof Un)) throw Error("AES must be instanitated with `new`"); + this.description = "Counter", this.name = "ctr", t instanceof Ln || (t = new Ln(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new Cn(e); } - (0, _createClass2.default)(kn, [{ + (0, _createClass2.default)(Un, [{ key: "encrypt", value: function encrypt(e) { - for (var t = Vt(e, !0), n = 0; n < t.length; n++) { + for (var t = on(e, !0), n = 0; n < t.length; n++) { 16 === this._remainingCounterIndex && (this._remainingCounter = this._aes.encrypt(this._counter._counter), this._remainingCounterIndex = 0, this._counter.increment()), t[n] ^= this._remainingCounter[this._remainingCounterIndex++]; } return t; @@ -15834,107 +16502,73 @@ var kn = /*#__PURE__*/function () { return this.encrypt(e); } }]); - return kn; + return Un; }(); -var An = { - AES: _n, - Counter: bn, +var Dn = { + AES: Cn, + Counter: Ln, ModeOfOperation: { - ecb: wn, - cbc: vn, - cfb: In, - ofb: Sn, - ctr: kn + ecb: On, + cbc: xn, + cfb: Nn, + ofb: Rn, + ctr: Un }, utils: { - hex: Zt, - utf8: Xt + hex: ln, + utf8: hn }, padding: { pkcs7: { pad: function pad(e) { - var t = 16 - (e = Vt(e, !0)).length % 16, - n = Gt(e.length + t); - Yt(e, n); + var t = 16 - (e = on(e, !0)).length % 16, + n = an(e.length + t); + cn(e, n); for (var s = e.length; s < n.length; s++) { n[s] = t; } return n; }, strip: function strip(e) { - if ((e = Vt(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); + if ((e = on(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); var t = e[e.length - 1]; if (t > 16) throw new Error("PKCS#7 padding byte out of range"); for (var n = e.length - t, s = 0; s < t; s++) { if (e[n + s] !== t) throw new Error("PKCS#7 invalid padding byte"); } - var r = Gt(n); - return Yt(e, r, 0, 0, n), r; + var r = an(n); + return cn(e, r, 0, 0, n), r; } } }, _arrayTest: { - coerceArray: Vt, - createArray: Gt, - copyArray: Yt + coerceArray: on, + createArray: an, + copyArray: cn } }; -function Cn(e, t, n) { +function Mn(e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(t)), - r = An.utils.utf8.toBytes(n), - i = An.utils.utf8.toBytes(e), - o = new An.ModeOfOperation.cbc(s, r), - a = An.padding.pkcs7.pad(i), + r = Dn.utils.utf8.toBytes(n), + i = Dn.utils.utf8.toBytes(e), + o = new Dn.ModeOfOperation.cbc(s, r), + a = Dn.padding.pkcs7.pad(i), c = o.encrypt(a); return uni.arrayBufferToBase64(c); } -var Pn = { - code: 2e4, - message: "System error" - }, - Tn = { - code: 20101, - message: "Invalid client" - }, - xn = { - code: 20102, - message: "Get encrypt key failed" - }, - On = { - 10001: "Secure network is not supported on current playground or unimpsdk", - 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", - 10009: "Encrypt payload failed", - 10010: "Decrypt response failed" - }; -function En(e) { - var _ref32 = e || {}, - t = _ref32.errSubject, - n = _ref32.subject, - s = _ref32.errCode, - r = _ref32.errMsg, - i = _ref32.code, - o = _ref32.message, - a = _ref32.cause; - return new te({ - subject: t || n || "uni-secure-network", - code: s || i || Pn.code, - message: r || o, - cause: a - }); -} -var Ln, - Rn, - Un = null; -var Nn = /*#__PURE__*/function (_Ht) { - (0, _inherits2.default)(Nn, _Ht); - var _super9 = _createSuper(Nn); - function Nn(e) { - var _this15; - (0, _classCallCheck2.default)(this, Nn); - _this15 = _super9.call(this, e), _this15.clientType = "mp-weixin", _this15.userEncryptKey = null; - return _this15; +var qn, + Fn, + Kn = null; +var jn = /*#__PURE__*/function (_nn) { + (0, _inherits2.default)(jn, _nn); + var _super8 = _createSuper(jn); + function jn(e) { + var _this19; + (0, _classCallCheck2.default)(this, jn); + _this19 = _super8.call(this, e), _this19.clientType = "mp-weixin", _this19.userEncryptKey = null; + return _this19; } - (0, _createClass2.default)(Nn, [{ + (0, _createClass2.default)(jn, [{ key: "isLogin", value: function isLogin() { return !!this.scopedGlobalCache.mpWeixinCode || !!this.scopedGlobalCache.mpWeixinOpenid; @@ -15942,35 +16576,35 @@ var Nn = /*#__PURE__*/function (_Ht) { }, { key: "prepare", value: function () { - var _prepare2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41() { - return _regenerator.default.wrap(function _callee41$(_context41) { + var _prepare2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee52() { + return _regenerator.default.wrap(function _callee52$(_context52) { while (1) { - switch (_context41.prev = _context41.next) { + switch (_context52.prev = _context52.next) { case 0: if (this.isLogin()) { - _context41.next = 7; + _context52.next = 7; break; } if (this.scopedGlobalCache.initPromise) { - _context41.next = 3; + _context52.next = 3; break; } throw new Error("`uniCloud.initSecureNetworkByWeixin` has not yet been called"); case 3: - _context41.next = 5; + _context52.next = 5; return this.scopedGlobalCache.initPromise; case 5: if (this.isLogin()) { - _context41.next = 7; + _context52.next = 7; break; } throw new Error("uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted"); case 7: case "end": - return _context41.stop(); + return _context52.stop(); } } - }, _callee41, this); + }, _callee52, this); })); function prepare() { return _prepare2.apply(this, arguments); @@ -15980,37 +16614,37 @@ var Nn = /*#__PURE__*/function (_Ht) { }, { key: "getUserEncryptKey", value: function () { - var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() { - var _this16 = this; + var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { + var _this20 = this; var e; - return _regenerator.default.wrap(function _callee42$(_context42) { + return _regenerator.default.wrap(function _callee53$(_context53) { while (1) { - switch (_context42.prev = _context42.next) { + switch (_context53.prev = _context53.next) { case 0: if (!this.userEncryptKey) { - _context42.next = 2; + _context53.next = 2; break; } - return _context42.abrupt("return", this.userEncryptKey); + return _context53.abrupt("return", this.userEncryptKey); case 2: - if (!(Un && Un.expireTime)) { - _context42.next = 6; + if (!(Kn && Kn.expireTime)) { + _context53.next = 6; break; } e = Date.now(); - if (!(Un.expireTime - e > 0)) { - _context42.next = 6; + if (!(Kn.expireTime - e > 0)) { + _context53.next = 6; break; } - return _context42.abrupt("return", (this.userEncryptKey = Un, this.userEncryptKey)); + return _context53.abrupt("return", (this.userEncryptKey = Kn, this.userEncryptKey)); case 6: - return _context42.abrupt("return", new Promise(function (e, t) { + return _context53.abrupt("return", new Promise(function (e, t) { uni.getUserCryptoManager().getLatestUserKey({ success: function success(t) { - Un = t, _this16.userEncryptKey = t, e(_this16.userEncryptKey); + Kn = t, _this20.userEncryptKey = t, e(_this20.userEncryptKey); }, fail: function fail(e) { - t(En(_objectSpread(_objectSpread({}, xn), {}, { + t(tn(_objectSpread(_objectSpread({}, Zt.GET_ENCRYPT_KEY_FAILED), {}, { cause: e }))); } @@ -16018,10 +16652,10 @@ var Nn = /*#__PURE__*/function (_Ht) { })); case 7: case "end": - return _context42.stop(); + return _context53.stop(); } } - }, _callee42, this); + }, _callee53, this); })); function getUserEncryptKey() { return _getUserEncryptKey.apply(this, arguments); @@ -16036,21 +16670,21 @@ var Nn = /*#__PURE__*/function (_Ht) { }, { key: "platformGetSignOption", value: function () { - var _platformGetSignOption = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43() { + var _platformGetSignOption = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee54() { var _yield$this$getUserEn, e, t, n; - return _regenerator.default.wrap(function _callee43$(_context43) { + return _regenerator.default.wrap(function _callee54$(_context54) { while (1) { - switch (_context43.prev = _context43.next) { + switch (_context54.prev = _context54.next) { case 0: - _context43.next = 2; + _context54.next = 2; return this.getUserEncryptKey(); case 2: - _yield$this$getUserEn = _context43.sent; + _yield$this$getUserEn = _context54.sent; e = _yield$this$getUserEn.encryptKey; t = _yield$this$getUserEn.iv; n = _yield$this$getUserEn.version; - return _context43.abrupt("return", { - verifyClientSign: Cn(JSON.stringify({ + return _context54.abrupt("return", { + verifyClientSign: Mn(JSON.stringify({ data: JSON.stringify({}), appId: this.appId, deviceId: this.deviceId, @@ -16064,10 +16698,10 @@ var Nn = /*#__PURE__*/function (_Ht) { }); case 7: case "end": - return _context43.stop(); + return _context54.stop(); } } - }, _callee43, this); + }, _callee54, this); })); function platformGetSignOption() { return _platformGetSignOption.apply(this, arguments); @@ -16077,16 +16711,16 @@ var Nn = /*#__PURE__*/function (_Ht) { }, { key: "platformEncryptData", value: function () { - var _platformEncryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44(e) { + var _platformEncryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee55(e) { var _yield$this$getUserEn2, t, n, s, r; - return _regenerator.default.wrap(function _callee44$(_context44) { + return _regenerator.default.wrap(function _callee55$(_context55) { while (1) { - switch (_context44.prev = _context44.next) { + switch (_context55.prev = _context55.next) { case 0: - _context44.next = 2; + _context55.next = 2; return this.getUserEncryptKey(); case 2: - _yield$this$getUserEn2 = _context44.sent; + _yield$this$getUserEn2 = _context55.sent; t = _yield$this$getUserEn2.encryptKey; n = _yield$this$getUserEn2.iv; s = _yield$this$getUserEn2.version; @@ -16096,11 +16730,11 @@ var Nn = /*#__PURE__*/function (_Ht) { mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }; - return _context44.abrupt("return", this.secretType === Bt ? { + return _context55.abrupt("return", this.secretType === Gt.RESPONSE ? { content: e, _uniCloudOptions: r } : { - content: Cn(JSON.stringify({ + content: Mn(JSON.stringify({ data: JSON.stringify(e), appId: this.appId, deviceId: this.deviceId, @@ -16112,12 +16746,12 @@ var Nn = /*#__PURE__*/function (_Ht) { }); case 8: case "end": - return _context44.stop(); + return _context55.stop(); } } - }, _callee44, this); + }, _callee55, this); })); - function platformEncryptData(_x36) { + function platformEncryptData(_x48) { return _platformEncryptData.apply(this, arguments); } return platformEncryptData; @@ -16125,35 +16759,35 @@ var Nn = /*#__PURE__*/function (_Ht) { }, { key: "platformDecryptResult", value: function () { - var _platformDecryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee45(e) { + var _platformDecryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee56(e) { var t, _yield$this$getUserEn3, n, s; - return _regenerator.default.wrap(function _callee45$(_context45) { + return _regenerator.default.wrap(function _callee56$(_context56) { while (1) { - switch (_context45.prev = _context45.next) { + switch (_context56.prev = _context56.next) { case 0: t = e.content; - _context45.next = 3; + _context56.next = 3; return this.getUserEncryptKey(); case 3: - _yield$this$getUserEn3 = _context45.sent; + _yield$this$getUserEn3 = _context56.sent; n = _yield$this$getUserEn3.encryptKey; s = _yield$this$getUserEn3.iv; - return _context45.abrupt("return", JSON.parse(function (e, t, n) { + return _context56.abrupt("return", JSON.parse(function (e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(e)), r = new Uint8Array(uni.base64ToArrayBuffer(t)), - i = An.utils.utf8.toBytes(n), - o = new An.ModeOfOperation.cbc(r, i), - a = An.padding.pkcs7.strip(o.decrypt(s)); - return An.utils.utf8.fromBytes(a); + i = Dn.utils.utf8.toBytes(n), + o = new Dn.ModeOfOperation.cbc(r, i), + a = Dn.padding.pkcs7.strip(o.decrypt(s)); + return Dn.utils.utf8.fromBytes(a); }(t, n, s))); case 7: case "end": - return _context45.stop(); + return _context56.stop(); } } - }, _callee45, this); + }, _callee56, this); })); - function platformDecryptResult(_x37) { + function platformDecryptResult(_x49) { return _platformDecryptResult.apply(this, arguments); } return platformDecryptResult; @@ -16164,73 +16798,73 @@ var Nn = /*#__PURE__*/function (_Ht) { return !1; } }]); - return Nn; -}(Ht); -function Dn(e) { + return jn; +}(nn); +function $n(e) { var t = ["hasClientKey", "encryptGetClientKeyPayload", "setClientKey", "encrypt", "decrypt"], n = {}; - var _loop = function _loop(_s11) { - var r = t[_s11]; + var _loop = function _loop(_s14) { + var r = t[_s14]; n[r] = function () { - for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) { - t[_key] = arguments[_key]; + for (var _len2 = arguments.length, t = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + t[_key2] = arguments[_key2]; } return new Promise(function (n, s) { "function" == typeof e[r] ? e[r].apply(e, t.concat([function () { - var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref33.type, - t = _ref33.data, - r = _ref33.errCode, - i = _ref33.errMsg, - o = _ref33.errSubject, - a = _ref33.message; - "success" === e ? n(t) : s(En({ + var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref36.type, + t = _ref36.data, + r = _ref36.errCode, + i = _ref36.errMsg, + o = _ref36.errSubject, + a = _ref36.message; + "success" === e ? n(t) : s(tn({ errCode: r, - errMsg: On[r] || i || a, + errMsg: en[r] || i || a, errSubject: o })); - }])) : s(En({ + }])) : s(tn({ message: "请检查manifest.json内是否开启安全网络模块,另外注意标准基座不支持安全网络模块" })); }); }; }; - for (var _s11 = 0; _s11 < t.length; _s11++) { - _loop(_s11); + for (var _s14 = 0; _s14 < t.length; _s14++) { + _loop(_s14); } return n; } -var Mn = /*#__PURE__*/function (_Ht2) { - (0, _inherits2.default)(Mn, _Ht2); - var _super10 = _createSuper(Mn); - function Mn(e) { - var _this17; - (0, _classCallCheck2.default)(this, Mn); - _this17 = _super10.call(this, e), _this17.clientType = "app", _this17.appUtils = _objectSpread({}, Dn(uni.requireNativePlugin("plus"))), _this17.systemInfo = Ln || (Ln = ae()); - return _this17; +var Bn = /*#__PURE__*/function (_nn2) { + (0, _inherits2.default)(Bn, _nn2); + var _super9 = _createSuper(Bn); + function Bn(e) { + var _this21; + (0, _classCallCheck2.default)(this, Bn); + _this21 = _super9.call(this, e), _this21.clientType = "app", _this21.appUtils = _objectSpread({}, $n(uni.requireNativePlugin("plus"))), _this21.systemInfo = qn || (qn = ae()); + return _this21; } - (0, _createClass2.default)(Mn, [{ + (0, _createClass2.default)(Bn, [{ key: "hasClientKey", value: function () { - var _hasClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46() { - return _regenerator.default.wrap(function _callee46$(_context46) { + var _hasClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee57() { + return _regenerator.default.wrap(function _callee57$(_context57) { while (1) { - switch (_context46.prev = _context46.next) { + switch (_context57.prev = _context57.next) { case 0: - _context46.next = 2; + _context57.next = 2; return this.appUtils.hasClientKey({ provider: this.provider, spaceId: this.spaceId }); case 2: - this._hasClientKey = _context46.sent; - return _context46.abrupt("return", this._hasClientKey); + this._hasClientKey = _context57.sent; + return _context57.abrupt("return", this._hasClientKey); case 4: case "end": - return _context46.stop(); + return _context57.stop(); } } - }, _callee46, this); + }, _callee57, this); })); function hasClientKey() { return _hasClientKey.apply(this, arguments); @@ -16240,21 +16874,21 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "getAppClientKey", value: function () { - var _getAppClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee47() { + var _getAppClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee58() { var _yield$this$appUtils$, e, t, n, s, r; - return _regenerator.default.wrap(function _callee47$(_context47) { + return _regenerator.default.wrap(function _callee58$(_context58) { while (1) { - switch (_context47.prev = _context47.next) { + switch (_context58.prev = _context58.next) { case 0: - _context47.next = 2; + _context58.next = 2; return this.appUtils.encryptGetClientKeyPayload({ data: JSON.stringify({}) }); case 2: - _yield$this$appUtils$ = _context47.sent; + _yield$this$appUtils$ = _context58.sent; e = _yield$this$appUtils$.data; t = _yield$this$appUtils$.key; - _context47.next = 7; + _context58.next = 7; return this.uniCloudIns.callFunction({ name: "DCloud-clientDB", data: { @@ -16265,28 +16899,28 @@ var Mn = /*#__PURE__*/function (_Ht2) { } }); case 7: - _context47.t0 = _context47.sent.result; - if (_context47.t0) { - _context47.next = 10; + _context58.t0 = _context58.sent.result; + if (_context58.t0) { + _context58.next = 10; break; } - _context47.t0 = {}; + _context58.t0 = {}; case 10: - n = _context47.t0; + n = _context58.t0; if (!(0 !== n.errCode)) { - _context47.next = 13; + _context58.next = 13; break; } throw function (e) { return new te({ - subject: e.errSubject || "uni-secure-network", - code: e.errCode || e.code || Pn.code, - message: e.errMsg || e.message + subject: e.errSubject || Xt, + code: e.errCode || e.code || Zt.SYSTEM_ERROR.code, + message: e.errMsg || e.message || Zt.SYSTEM_ERROR.message }); }(n); case 13: s = n.clientKey, r = n.key; - _context47.next = 16; + _context58.next = 16; return this.appUtils.setClientKey({ provider: this.provider, spaceId: this.spaceId, @@ -16295,10 +16929,10 @@ var Mn = /*#__PURE__*/function (_Ht2) { }); case 16: case "end": - return _context47.stop(); + return _context58.stop(); } } - }, _callee47, this); + }, _callee58, this); })); function getAppClientKey() { return _getAppClientKey.apply(this, arguments); @@ -16308,44 +16942,44 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "ensureClientKey", value: function () { - var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee48() { - var _this18 = this; - var _ref34, - _ref34$forceUpdate, + var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59() { + var _this22 = this; + var _ref37, + _ref37$forceUpdate, e, - _args48 = arguments; - return _regenerator.default.wrap(function _callee48$(_context48) { + _args59 = arguments; + return _regenerator.default.wrap(function _callee59$(_context59) { while (1) { - switch (_context48.prev = _context48.next) { + switch (_context59.prev = _context59.next) { case 0: - _ref34 = _args48.length > 0 && _args48[0] !== undefined ? _args48[0] : {}, _ref34$forceUpdate = _ref34.forceUpdate, e = _ref34$forceUpdate === void 0 ? !1 : _ref34$forceUpdate; - _context48.t1 = !0; - _context48.next = 4; + _ref37 = _args59.length > 0 && _args59[0] !== undefined ? _args59[0] : {}, _ref37$forceUpdate = _ref37.forceUpdate, e = _ref37$forceUpdate === void 0 ? !1 : _ref37$forceUpdate; + _context59.t1 = !0; + _context59.next = 4; return this.hasClientKey(); case 4: - _context48.t2 = _context48.sent; - _context48.t0 = _context48.t1 !== _context48.t2; - if (_context48.t0) { - _context48.next = 8; + _context59.t2 = _context59.sent; + _context59.t0 = _context59.t1 !== _context59.t2; + if (_context59.t0) { + _context59.next = 8; break; } - _context48.t0 = e; + _context59.t0 = e; case 8: - if (!_context48.t0) { - _context48.next = 10; + if (!_context59.t0) { + _context59.next = 10; break; } - return _context48.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === l || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== p || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { - _this18.scopedGlobalCache.initStatus = d; + return _context59.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === d || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== f || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { + _this22.scopedGlobalCache.initStatus = p; }).catch(function (e) { - throw _this18.scopedGlobalCache.initStatus = p, e; - }), this.scopedGlobalCache.initStatus = l), this.scopedGlobalCache.initPromise)); + throw _this22.scopedGlobalCache.initStatus = f, e; + }), this.scopedGlobalCache.initStatus = d), this.scopedGlobalCache.initPromise)); case 10: case "end": - return _context48.stop(); + return _context59.stop(); } } - }, _callee48, this); + }, _callee59, this); })); function ensureClientKey() { return _ensureClientKey.apply(this, arguments); @@ -16355,26 +16989,26 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "prepare", value: function () { - var _prepare3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49() { - var _ref35, - _ref35$forceUpdate, + var _prepare3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee60() { + var _ref38, + _ref38$forceUpdate, e, - _args49 = arguments; - return _regenerator.default.wrap(function _callee49$(_context49) { + _args60 = arguments; + return _regenerator.default.wrap(function _callee60$(_context60) { while (1) { - switch (_context49.prev = _context49.next) { + switch (_context60.prev = _context60.next) { case 0: - _ref35 = _args49.length > 0 && _args49[0] !== undefined ? _args49[0] : {}, _ref35$forceUpdate = _ref35.forceUpdate, e = _ref35$forceUpdate === void 0 ? !1 : _ref35$forceUpdate; - _context49.next = 3; + _ref38 = _args60.length > 0 && _args60[0] !== undefined ? _args60[0] : {}, _ref38$forceUpdate = _ref38.forceUpdate, e = _ref38$forceUpdate === void 0 ? !1 : _ref38$forceUpdate; + _context60.next = 3; return this.ensureClientKey({ forceUpdate: e }); case 3: case "end": - return _context49.stop(); + return _context60.stop(); } } - }, _callee49, this); + }, _callee60, this); })); function prepare() { return _prepare3.apply(this, arguments); @@ -16384,32 +17018,32 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "platformGetSignOption", value: function () { - var _platformGetSignOption2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { + var _platformGetSignOption2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee61() { var _yield$this$appUtils$2, e, t; - return _regenerator.default.wrap(function _callee50$(_context50) { + return _regenerator.default.wrap(function _callee61$(_context61) { while (1) { - switch (_context50.prev = _context50.next) { + switch (_context61.prev = _context61.next) { case 0: - _context50.next = 2; + _context61.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify({}) }); case 2: - _yield$this$appUtils$2 = _context50.sent; + _yield$this$appUtils$2 = _context61.sent; e = _yield$this$appUtils$2.data; t = _yield$this$appUtils$2.key; - return _context50.abrupt("return", { + return _context61.abrupt("return", { verifyClientSign: e, encryptKeyId: t }); case 6: case "end": - return _context50.stop(); + return _context61.stop(); } } - }, _callee50, this); + }, _callee61, this); })); function platformGetSignOption() { return _platformGetSignOption2.apply(this, arguments); @@ -16419,27 +17053,27 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "platformEncryptData", value: function () { - var _platformEncryptData2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51(e) { + var _platformEncryptData2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee62(e) { var _yield$this$appUtils$3, t, n, s; - return _regenerator.default.wrap(function _callee51$(_context51) { + return _regenerator.default.wrap(function _callee62$(_context62) { while (1) { - switch (_context51.prev = _context51.next) { + switch (_context62.prev = _context62.next) { case 0: - _context51.next = 2; + _context62.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify(e) }); case 2: - _yield$this$appUtils$3 = _context51.sent; + _yield$this$appUtils$3 = _context62.sent; t = _yield$this$appUtils$3.data; n = _yield$this$appUtils$3.key; s = { secretType: this.secretType, encryptKeyId: n }; - return _context51.abrupt("return", this.secretType === Bt ? { + return _context62.abrupt("return", this.secretType === Gt.RESPONSE ? { content: e, _uniCloudOptions: s } : { @@ -16448,12 +17082,12 @@ var Mn = /*#__PURE__*/function (_Ht2) { }); case 7: case "end": - return _context51.stop(); + return _context62.stop(); } } - }, _callee51, this); + }, _callee62, this); })); - function platformEncryptData(_x38) { + function platformEncryptData(_x50) { return _platformEncryptData2.apply(this, arguments); } return platformEncryptData; @@ -16461,17 +17095,17 @@ var Mn = /*#__PURE__*/function (_Ht2) { }, { key: "platformDecryptResult", value: function () { - var _platformDecryptResult2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee52(e) { + var _platformDecryptResult2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee63(e) { var t, _e$_uniCloudOptions, n, s, r; - return _regenerator.default.wrap(function _callee52$(_context52) { + return _regenerator.default.wrap(function _callee63$(_context63) { while (1) { - switch (_context52.prev = _context52.next) { + switch (_context63.prev = _context63.next) { case 0: t = e.content; _e$_uniCloudOptions = e._uniCloudOptions; n = _e$_uniCloudOptions === void 0 ? {} : _e$_uniCloudOptions; s = n.encryptKeyId; - _context52.next = 6; + _context63.next = 6; return this.appUtils.decrypt({ provider: this.provider, spaceId: this.spaceId, @@ -16479,16 +17113,16 @@ var Mn = /*#__PURE__*/function (_Ht2) { key: s }); case 6: - r = _context52.sent; - return _context52.abrupt("return", JSON.parse(r.data)); + r = _context63.sent; + return _context63.abrupt("return", JSON.parse(r.data)); case 8: case "end": - return _context52.stop(); + return _context63.stop(); } } - }, _callee52, this); + }, _callee63, this); })); - function platformDecryptResult(_x39) { + function platformDecryptResult(_x51) { return _platformDecryptResult2.apply(this, arguments); } return platformDecryptResult; @@ -16498,28 +17132,28 @@ var Mn = /*#__PURE__*/function (_Ht2) { value: function isClientKeyNotFound() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = e.result || {}; - return 70009 === t.errCode && "uni-secure-network" === t.errSubject; + return 70009 === t.errCode && t.errSubject === Xt; } }]); - return Mn; -}(Ht); -function qn() { - var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref36.secretType; - return e === $t || e === Bt || e === Wt; + return Bn; +}(nn); +function Wn() { + var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref39.secretType; + return e === Gt.REQUEST || e === Gt.RESPONSE || e === Gt.BOTH; } -function Fn() { - var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref37.name, - _ref37$data = _ref37.data, - t = _ref37$data === void 0 ? {} : _ref37$data; - return "app" === C && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; +function Hn() { + var _ref40 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref40.name, + _ref40$data = _ref40.data, + t = _ref40$data === void 0 ? {} : _ref40$data; + return "app" === P && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; } -function Kn() { - var _ref38 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref38.provider, - t = _ref38.spaceId, - n = _ref38.functionName; +function Jn() { + var _ref41 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref41.provider, + t = _ref41.spaceId, + n = _ref41.functionName; var _ae = ae(), s = _ae.appId, r = _ae.uniPlatform, @@ -16527,9 +17161,9 @@ function Kn() { var o = r; "app" === r && (o = i); var a = function () { - var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref39.provider, - t = _ref39.spaceId; + var _ref42 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref42.provider, + t = _ref42.spaceId; var n = A; if (!n) return {}; e = function (e) { @@ -16562,77 +17196,78 @@ function Kn() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return e.appId === s && (e.platform || "").toLowerCase() === o.toLowerCase(); })) return !0; - throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), En(Tn); + throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), tn(Zt.APP_INFO_INVALID); } -function jn(_ref40) { - var e = _ref40.functionName, - t = _ref40.result, - n = _ref40.logPvd; - if (S && this.__dev__.debugLog && t && t.requestId) { - var _s12 = JSON.stringify({ +function zn(_ref43) { + var e = _ref43.functionName, + t = _ref43.result, + n = _ref43.logPvd; + if (b && this.__dev__.debugLog && t && t.requestId) { + var _s15 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId }); - console.log("[".concat(n, "-request]").concat(_s12, "[/").concat(n, "-request]")); + console.log("[".concat(n, "-request]").concat(_s15, "[/").concat(n, "-request]")); } } -function $n(e) { +function Vn(e) { var t = e.callFunction, - n = function n(_n10) { - var _this19 = this; - var s = _n10.name; - _n10.data = Nt.call(e, { - data: _n10.data + n = function n(_n12) { + var _this23 = this; + var s = _n12.name; + _n12.data = Bt.call(e, { + data: _n12.data }); var r = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", - alipay: "alipay" + alipay: "alipay", + dcloud: "dcloud" }[this.config.provider], - i = qn(_n10), - o = Fn(_n10), + i = Wn(_n12), + o = Hn(_n12), a = i || o; - return t.call(this, _n10).then(function (e) { - return e.errCode = 0, !a && jn.call(_this19, { + return t.call(this, _n12).then(function (e) { + return e.errCode = 0, !a && zn.call(_this23, { functionName: s, result: e, logPvd: r }), Promise.resolve(e); }, function (e) { - return !a && jn.call(_this19, { + return !a && zn.call(_this23, { functionName: s, result: e, logPvd: r }), e && e.message && (e.message = function () { - var _ref41 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref41$message = _ref41.message, - e = _ref41$message === void 0 ? "" : _ref41$message, - _ref41$extraInfo = _ref41.extraInfo, - t = _ref41$extraInfo === void 0 ? {} : _ref41$extraInfo, - _ref41$formatter = _ref41.formatter, - n = _ref41$formatter === void 0 ? [] : _ref41$formatter; - for (var _s13 = 0; _s13 < n.length; _s13++) { - var _n$_s = n[_s13], + var _ref44 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref44$message = _ref44.message, + e = _ref44$message === void 0 ? "" : _ref44$message, + _ref44$extraInfo = _ref44.extraInfo, + t = _ref44$extraInfo === void 0 ? {} : _ref44$extraInfo, + _ref44$formatter = _ref44.formatter, + n = _ref44$formatter === void 0 ? [] : _ref44$formatter; + for (var _s16 = 0; _s16 < n.length; _s16++) { + var _n$_s = n[_s16], _r6 = _n$_s.rule, _i3 = _n$_s.content, _o3 = _n$_s.mode, - _a = e.match(_r6); - if (!_a) continue; - var _c = _i3; - for (var _e19 = 1; _e19 < _a.length; _e19++) { - _c = Kt(_c, "{$".concat(_e19, "}"), _a[_e19]); + _a2 = e.match(_r6); + if (!_a2) continue; + var _c2 = _i3; + for (var _e20 = 1; _e20 < _a2.length; _e20++) { + _c2 = Vt(_c2, "{$".concat(_e20, "}"), _a2[_e20]); } - for (var _e20 in t) { - _c = Kt(_c, "{".concat(_e20, "}"), t[_e20]); + for (var _e21 in t) { + _c2 = Vt(_c2, "{".concat(_e21, "}"), t[_e21]); } - return "replace" === _o3 ? _c : e + _c; + return "replace" === _o3 ? _c2 : e + _c2; } return e; }({ - message: "[".concat(_n10.name, "]: ").concat(e.message), - formatter: Mt, + message: "[".concat(_n12.name, "]: ").concat(e.message), + formatter: Ht, extraInfo: { functionName: s } @@ -16645,22 +17280,22 @@ function $n(e) { r = _e$config.spaceId, i = t.name; var o, a; - if (t.data = t.data || {}, S && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && T ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = Dt), o = Dt) : o = n, o = o.bind(e), Fn(t)) a = n.call(e, t);else if (function (_ref42) { - var e = _ref42.name, - _ref42$data = _ref42.data, - t = _ref42$data === void 0 ? {} : _ref42$data; - return "mp-weixin" === C && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; - }(t)) a = o.call(e, t);else if (qn(t)) { - a = new Rn({ + if (t.data = t.data || {}, b && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && O ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = Wt), o = Wt) : o = n, o = o.bind(e), Hn(t)) a = n.call(e, t);else if (function (_ref45) { + var e = _ref45.name, + _ref45$data = _ref45.data, + t = _ref45$data === void 0 ? {} : _ref45$data; + return "mp-weixin" === P && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; + }(t)) a = o.call(e, t);else if (Wn(t)) { + a = new Fn({ secretType: t.secretType, uniCloudIns: e }).wrapEncryptDataCallFunction(n.bind(e))(t); - } else if (Kn({ + } else if (Jn({ provider: s, spaceId: r, functionName: i })) { - a = new Rn({ + a = new Fn({ secretType: t.secretType, uniCloudIns: e }).wrapVerifyClientCallFunction(n.bind(e))(t); @@ -16670,42 +17305,42 @@ function $n(e) { return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}; } }), a.then(function (e) { - return "undefined" != typeof UTSJSONObject && (e.result = new UTSJSONObject(e.result)), e; + return e; }); }; } -Rn = "mp-weixin" !== C && "app" !== C ? /*#__PURE__*/function () { +Fn = "mp-weixin" !== P && "app" !== P ? /*#__PURE__*/function () { function _class2() { (0, _classCallCheck2.default)(this, _class2); - throw En({ - message: "Platform ".concat(C, " is not supported by secure network") + throw tn({ + message: "Platform ".concat(P, " is not supported by secure network") }); } return (0, _createClass2.default)(_class2); -}() : k ? "mp-weixin" === C ? Nn : Mn : /*#__PURE__*/function () { +}() : k ? "mp-weixin" === P ? jn : Bn : /*#__PURE__*/function () { function _class3() { (0, _classCallCheck2.default)(this, _class3); - throw En({ - message: "Platform ".concat(C, " is not enabled, please check whether secure network module is enabled in your manifest.json") + throw tn({ + message: "Platform ".concat(P, " is not enabled, please check whether secure network module is enabled in your manifest.json") }); } return (0, _createClass2.default)(_class3); }(); -var Bn = Symbol("CLIENT_DB_INTERNAL"); -function Wn(e, t) { - return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = Bn, e.inspect = null, e.__ob__ = void 0, new Proxy(e, { +var Gn = Symbol("CLIENT_DB_INTERNAL"); +function Yn(e, t) { + return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = Gn, e.inspect = null, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) { if ("_uniClient" === n) return null; if ("symbol" == (0, _typeof2.default)(n)) return e[n]; if (n in e || "string" != typeof n) { - var _t11 = e[n]; - return "function" == typeof _t11 ? _t11.bind(e) : _t11; + var _t12 = e[n]; + return "function" == typeof _t12 ? _t12.bind(e) : _t12; } return t.get(e, n, s); } }); } -function Hn(e) { +function Qn(e) { return { on: function on(t, n) { e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n); @@ -16717,19 +17352,19 @@ function Hn(e) { } }; } -var zn = ["db.Geo", "db.command", "command.aggregate"]; -function Jn(e, t) { - return zn.indexOf("".concat(e, ".").concat(t)) > -1; +var Xn = ["db.Geo", "db.command", "command.aggregate"]; +function Zn(e, t) { + return Xn.indexOf("".concat(e, ".").concat(t)) > -1; } -function Vn(e) { - switch (f(e)) { +function es(e) { + switch (g(e)) { case "array": return e.map(function (e) { - return Vn(e); + return es(e); }); case "object": - return e._internalType === Bn || Object.keys(e).forEach(function (t) { - e[t] = Vn(e[t]); + return e._internalType === Gn || Object.keys(e).forEach(function (t) { + e[t] = es(e[t]); }), e; case "regexp": return { @@ -16746,15 +17381,15 @@ function Vn(e) { return e; } } -function Gn(e) { +function ts(e) { return e && e.content && e.content.$method; } -var Yn = /*#__PURE__*/function () { - function Yn(e, t, n) { - (0, _classCallCheck2.default)(this, Yn); +var ns = /*#__PURE__*/function () { + function ns(e, t, n) { + (0, _classCallCheck2.default)(this, ns); this.content = e, this.prevStage = t || null, this.udb = null, this._database = n; } - (0, _createClass2.default)(Yn, [{ + (0, _createClass2.default)(ns, [{ key: "toJSON", value: function toJSON() { var e = this; @@ -16766,7 +17401,7 @@ var Yn = /*#__PURE__*/function () { $db: t.reverse().map(function (e) { return { $method: e.$method, - $param: Vn(e.$param) + $param: es(e.$param) }; }) }; @@ -16798,9 +17433,9 @@ var Yn = /*#__PURE__*/function () { get: function get() { var e = this; for (; e;) { - var t = Gn(e), - _n11 = Gn(e.prevStage); - if ("aggregate" === t && "collection" === _n11 || "pipeline" === t) return !0; + var t = ts(e), + _n13 = ts(e.prevStage); + if ("aggregate" === t && "collection" === _n13 || "pipeline" === t) return !0; e = e.prevStage; } return !1; @@ -16810,7 +17445,7 @@ var Yn = /*#__PURE__*/function () { get: function get() { var e = this; for (; e;) { - if ("command" === Gn(e)) return !0; + if ("command" === ts(e)) return !0; e = e.prevStage; } return !1; @@ -16820,9 +17455,9 @@ var Yn = /*#__PURE__*/function () { get: function get() { var e = this; for (; e;) { - var t = Gn(e), - _n12 = Gn(e.prevStage); - if ("aggregate" === t && "command" === _n12) return !0; + var t = ts(e), + _n14 = ts(e.prevStage); + if ("aggregate" === t && "command" === _n14) return !0; e = e.prevStage; } return !1; @@ -16832,9 +17467,9 @@ var Yn = /*#__PURE__*/function () { value: function getNextStageFn(e) { var t = this; return function () { - return Qn({ + return ss({ $method: e, - $param: Vn(Array.from(arguments)) + $param: es(Array.from(arguments)) }, t, t._database); }; } @@ -16888,13 +17523,13 @@ var Yn = /*#__PURE__*/function () { s = this.getCommand(); if (s.$db.push({ $method: e, - $param: Vn(t) - }), S) { - var _e21 = s.$db.find(function (e) { + $param: es(t) + }), b) { + var _e22 = s.$db.find(function (e) { return "collection" === e.$method; }), - _t12 = _e21 && _e21.$param; - _t12 && 1 === _t12.length && "string" == typeof _e21.$param[0] && _e21.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); + _t13 = _e22 && _e22.$param; + _t13 && 1 === _t13.length && "string" == typeof _e22.$param[0] && _e22.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); } return this._database._callCloudFunction({ action: n, @@ -16902,26 +17537,26 @@ var Yn = /*#__PURE__*/function () { }); } }]); - return Yn; + return ns; }(); -function Qn(e, t, n) { - return Wn(new Yn(e, t, n), { +function ss(e, t, n) { + return Yn(new ns(e, t, n), { get: function get(e, t) { var s = "db"; - return e && e.content && (s = e.content.$method), Jn(s, t) ? Qn({ + return e && e.content && (s = e.content.$method), Zn(s, t) ? ss({ $method: t }, e, n) : function () { - return Qn({ + return ss({ $method: t, - $param: Vn(Array.from(arguments)) + $param: es(Array.from(arguments)) }, e, n); }; } }); } -function Xn(_ref43) { - var e = _ref43.path, - t = _ref43.method; +function rs(_ref46) { + var e = _ref46.path, + t = _ref46.method; return /*#__PURE__*/function () { function _class4() { (0, _classCallCheck2.default)(this, _class4); @@ -16950,187 +17585,36 @@ function Xn(_ref43) { return _class4; }(); } -function Zn(e) { - var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - return Wn(new e(t), { - get: function get(e, t) { - return Jn("db", t) ? Qn({ - $method: t - }, null, e) : function () { - return Qn({ - $method: t, - $param: Vn(Array.from(arguments)) - }, null, e); - }; - } - }); -} -var es = /*#__PURE__*/function (_ref44) { - (0, _inherits2.default)(es, _ref44); - var _super11 = _createSuper(es); - function es() { - (0, _classCallCheck2.default)(this, es); - return _super11.apply(this, arguments); - } - (0, _createClass2.default)(es, [{ - key: "_parseResult", - value: function _parseResult(e) { - return this._isJQL ? e.result : e; - } - }, { - key: "_callCloudFunction", - value: function _callCloudFunction(_ref45) { - var _this20 = this; - var e = _ref45.action, - t = _ref45.command, - n = _ref45.multiCommand, - s = _ref45.queryList; - function r(e, t) { - if (n && s) for (var _n13 = 0; _n13 < s.length; _n13++) { - var _r7 = s[_n13]; - _r7.udb && "function" == typeof _r7.udb.setResult && (t ? _r7.udb.setResult(t) : _r7.udb.setResult(e.result.dataList[_n13])); - } - } - var i = this, - o = this._isJQL ? "databaseForJQL" : "database"; - function a(e) { - return i._callback("error", [e]), M(q(o, "fail"), e).then(function () { - return M(q(o, "complete"), e); - }).then(function () { - return r(null, e), Y(j, { - type: W, - content: e - }), Promise.reject(e); - }); - } - var c = M(q(o, "invoke")), - u = this._uniClient; - return c.then(function () { - return u.callFunction({ - name: "DCloud-clientDB", - type: h, - data: { - action: e, - command: t, - multiCommand: n - } - }); - }).then(function (e) { - var _e$result = e.result, - t = _e$result.code, - n = _e$result.message, - s = _e$result.token, - c = _e$result.tokenExpired, - _e$result$systemInfo = _e$result.systemInfo, - u = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo; - if (u) for (var _e22 = 0; _e22 < u.length; _e22++) { - var _u$_e = u[_e22], - _t13 = _u$_e.level, - _n14 = _u$_e.message, - _s14 = _u$_e.detail, - _r8 = console["app" === C && "warn" === _t13 ? "error" : _t13] || console.log; - var _i4 = "[System Info]" + _n14; - _s14 && (_i4 = "".concat(_i4, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s14)), _r8(_i4); - } - if (t) { - return a(new te({ - code: t, - message: n, - requestId: e.requestId - })); - } - e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (re({ - token: s, - tokenExpired: c - }), _this20._callbackAuth("refreshToken", [{ - token: s, - tokenExpired: c - }]), _this20._callback("refreshToken", [{ - token: s, - tokenExpired: c - }]), Y(B, { - token: s, - tokenExpired: c - })); - var h = [{ - prop: "affectedDocs", - tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" - }, { - prop: "code", - tips: "code不再推荐使用,请使用errCode替代" - }, { - prop: "message", - tips: "message不再推荐使用,请使用errMsg替代" - }]; - var _loop2 = function _loop2(_t14) { - var _h$_t = h[_t14], - n = _h$_t.prop, - s = _h$_t.tips; - if (n in e.result) { - var _t15 = e.result[n]; - Object.defineProperty(e.result, n, { - get: function get() { - return console.warn(s), _t15; - } - }); - } - }; - for (var _t14 = 0; _t14 < h.length; _t14++) { - _loop2(_t14); - } - return function (e) { - return M(q(o, "success"), e).then(function () { - return M(q(o, "complete"), e); - }).then(function () { - r(e, null); - var t = i._parseResult(e); - return Y(j, { - type: W, - content: t - }), Promise.resolve(t); - }); - }(e); - }, function (e) { - /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); - return a(new te({ - code: e.code || "SYSTEM_ERROR", - message: e.message, - requestId: e.requestId - })); - }); - } - }]); - return es; -}( /*#__PURE__*/function () { - function _class5() { - var _ref46 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref46$uniClient = _ref46.uniClient, - e = _ref46$uniClient === void 0 ? {} : _ref46$uniClient, - _ref46$isJQL = _ref46.isJQL, - t = _ref46$isJQL === void 0 ? !1 : _ref46$isJQL; - (0, _classCallCheck2.default)(this, _class5); - this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e._isDefault && (this._dbCallBacks = L("_globalUniCloudDatabaseCallback")), t || (this.auth = Hn(this._authCallBacks)), this._isJQL = t, Object.assign(this, Hn(this._dbCallBacks)), this.env = Wn({}, { +var is = /*#__PURE__*/function () { + function is() { + var _ref47 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref47$uniClient = _ref47.uniClient, + e = _ref47$uniClient === void 0 ? {} : _ref47$uniClient, + _ref47$isJQL = _ref47.isJQL, + t = _ref47$isJQL === void 0 ? !1 : _ref47$isJQL; + (0, _classCallCheck2.default)(this, is); + this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e._isDefault && (this._dbCallBacks = U("_globalUniCloudDatabaseCallback")), t || (this.auth = Qn(this._authCallBacks)), this._isJQL = t, Object.assign(this, Qn(this._dbCallBacks)), this.env = Yn({}, { get: function get(e, t) { return { $env: t }; } - }), this.Geo = Wn({}, { + }), this.Geo = Yn({}, { get: function get(e, t) { - return Xn({ + return rs({ path: ["Geo"], method: t }); } - }), this.serverDate = Xn({ + }), this.serverDate = rs({ path: [], method: "serverDate" - }), this.RegExp = Xn({ + }), this.RegExp = rs({ path: [], method: "RegExp" }); } - (0, _createClass2.default)(_class5, [{ + (0, _createClass2.default)(is, [{ key: "getCloudEnv", value: function getCloudEnv(e) { if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv参数错误"); @@ -17173,85 +17657,239 @@ var es = /*#__PURE__*/function (_ref44) { }); } }]); - return _class5; -}()); -var ts = "token无效,跳转登录页面", - ns = "token过期,跳转登录页面", - ss = { - TOKEN_INVALID_TOKEN_EXPIRED: ns, - TOKEN_INVALID_INVALID_CLIENTID: ts, - TOKEN_INVALID: ts, - TOKEN_INVALID_WRONG_TOKEN: ts, - TOKEN_INVALID_ANONYMOUS_USER: ts + return is; +}(); +function os(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + return Yn(new e(t), { + get: function get(e, t) { + return Zn("db", t) ? ss({ + $method: t + }, null, e) : function () { + return ss({ + $method: t, + $param: es(Array.from(arguments)) + }, null, e); + }; + } + }); +} +var as = /*#__PURE__*/function (_is) { + (0, _inherits2.default)(as, _is); + var _super10 = _createSuper(as); + function as() { + (0, _classCallCheck2.default)(this, as); + return _super10.apply(this, arguments); + } + (0, _createClass2.default)(as, [{ + key: "_parseResult", + value: function _parseResult(e) { + return this._isJQL ? e.result : e; + } + }, { + key: "_callCloudFunction", + value: function _callCloudFunction(_ref48) { + var _this24 = this; + var e = _ref48.action, + t = _ref48.command, + n = _ref48.multiCommand, + s = _ref48.queryList; + function r(e, t) { + if (n && s) for (var _n15 = 0; _n15 < s.length; _n15++) { + var _r7 = s[_n15]; + _r7.udb && "function" == typeof _r7.udb.setResult && (t ? _r7.udb.setResult(t) : _r7.udb.setResult(e.result.dataList[_n15])); + } + } + var i = this, + o = this._isJQL ? "databaseForJQL" : "database"; + function a(e) { + return i._callback("error", [e]), j($(o, "fail"), e).then(function () { + return j($(o, "complete"), e); + }).then(function () { + return r(null, e), Y(H.RESPONSE, { + type: J.CLIENT_DB, + content: e + }), Promise.reject(e); + }); + } + var c = j($(o, "invoke")), + u = this._uniClient; + return c.then(function () { + return u.callFunction({ + name: "DCloud-clientDB", + type: l.CLIENT_DB, + data: { + action: e, + command: t, + multiCommand: n + } + }); + }).then(function (e) { + var _e$result = e.result, + t = _e$result.code, + n = _e$result.message, + s = _e$result.token, + c = _e$result.tokenExpired, + _e$result$systemInfo = _e$result.systemInfo, + u = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo; + if (u) for (var _e23 = 0; _e23 < u.length; _e23++) { + var _u$_e = u[_e23], + _t14 = _u$_e.level, + _n16 = _u$_e.message, + _s17 = _u$_e.detail; + var _r8 = "[System Info]" + _n16; + _s17 && (_r8 = "".concat(_r8, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s17)), (console["app" === P && "warn" === _t14 ? "error" : _t14] || console.log)(_r8); + } + if (t) { + return a(new te({ + code: t, + message: n, + requestId: e.requestId + })); + } + e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (re({ + token: s, + tokenExpired: c + }), _this24._callbackAuth("refreshToken", [{ + token: s, + tokenExpired: c + }]), _this24._callback("refreshToken", [{ + token: s, + tokenExpired: c + }]), Y(H.REFRESH_TOKEN, { + token: s, + tokenExpired: c + })); + var h = [{ + prop: "affectedDocs", + tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" + }, { + prop: "code", + tips: "code不再推荐使用,请使用errCode替代" + }, { + prop: "message", + tips: "message不再推荐使用,请使用errMsg替代" + }]; + var _loop2 = function _loop2(_t15) { + var _h$_t = h[_t15], + n = _h$_t.prop, + s = _h$_t.tips; + if (n in e.result) { + var _t16 = e.result[n]; + Object.defineProperty(e.result, n, { + get: function get() { + return console.warn(s), _t16; + } + }); + } + }; + for (var _t15 = 0; _t15 < h.length; _t15++) { + _loop2(_t15); + } + return function (e) { + return j($(o, "success"), e).then(function () { + return j($(o, "complete"), e); + }).then(function () { + r(e, null); + var t = i._parseResult(e); + return Y(H.RESPONSE, { + type: J.CLIENT_DB, + content: t + }), Promise.resolve(t); + }); + }(e); + }, function (e) { + /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); + return a(new te({ + code: e.code || "SYSTEM_ERROR", + message: e.message, + requestId: e.requestId + })); + }); + } + }]); + return as; +}(is); +var cs = "token无效,跳转登录页面", + us = "token过期,跳转登录页面", + hs = { + TOKEN_INVALID_TOKEN_EXPIRED: us, + TOKEN_INVALID_INVALID_CLIENTID: cs, + TOKEN_INVALID: cs, + TOKEN_INVALID_WRONG_TOKEN: cs, + TOKEN_INVALID_ANONYMOUS_USER: cs }, - rs = { - "uni-id-token-expired": ns, - "uni-id-check-token-failed": ts, - "uni-id-token-not-exist": ts, - "uni-id-check-device-feature-failed": ts - }; -function is(e, t) { + ls = { + "uni-id-token-expired": us, + "uni-id-check-token-failed": cs, + "uni-id-token-not-exist": cs, + "uni-id-check-device-feature-failed": cs + }, + ds = _objectSpread(_objectSpread(_objectSpread({}, hs), ls), {}, { + default: "用户未登录或登录状态过期,自动跳转登录页面" + }); +function ps(e, t) { var n = ""; return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, ""); } -function os() { +function fs() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; var n = [], s = []; return e.forEach(function (e) { - !0 === e.needLogin ? n.push(is(t, e.path)) : !1 === e.needLogin && s.push(is(t, e.path)); + !0 === e.needLogin ? n.push(ps(t, e.path)) : !1 === e.needLogin && s.push(ps(t, e.path)); }), { needLoginPage: n, notNeedLoginPage: s }; } -function as(e) { +function gs(e) { return e.split("?")[0].replace(/^\//, ""); } -function cs() { +function ms() { return function (e) { - var t = e && e.$page && e.$page.fullPath || ""; - return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t; + var t = e && e.$page && e.$page.fullPath; + return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : ""; }(function () { var e = getCurrentPages(); return e[e.length - 1]; }()); } -function us() { - return as(cs()); +function ys() { + return gs(ms()); } -function hs() { +function _s() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!e) return !1; if (!(t && t.list && t.list.length)) return !1; var n = t.list, - s = as(e); + s = gs(e); return n.some(function (e) { return e.pagePath === s; }); } -var ls = !!_pages.default.uniIdRouter; -var _ref47 = function () { - var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, - _ref28$pages = _ref28.pages, - t = _ref28$pages === void 0 ? [] : _ref28$pages, - _ref28$subPackages = _ref28.subPackages, - n = _ref28$subPackages === void 0 ? [] : _ref28$subPackages, - _ref28$uniIdRouter = _ref28.uniIdRouter, - s = _ref28$uniIdRouter === void 0 ? {} : _ref28$uniIdRouter, - _ref28$tabBar = _ref28.tabBar, - r = _ref28$tabBar === void 0 ? {} : _ref28$tabBar; +var ws = !!_pages.default.uniIdRouter; +var _ref49 = function () { + var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, + _ref8$pages = _ref8.pages, + t = _ref8$pages === void 0 ? [] : _ref8$pages, + _ref8$subPackages = _ref8.subPackages, + n = _ref8$subPackages === void 0 ? [] : _ref8$subPackages, + _ref8$uniIdRouter = _ref8.uniIdRouter, + s = _ref8$uniIdRouter === void 0 ? {} : _ref8$uniIdRouter, + _ref8$tabBar = _ref8.tabBar, + r = _ref8$tabBar === void 0 ? {} : _ref8$tabBar; var i = s.loginPage, _s$needLogin = s.needLogin, o = _s$needLogin === void 0 ? [] : _s$needLogin, _s$resToLogin = s.resToLogin, a = _s$resToLogin === void 0 ? !0 : _s$resToLogin, - _os = os(t), - c = _os.needLoginPage, - u = _os.notNeedLoginPage, - _ref30 = function () { + _fs = fs(t), + c = _fs.needLoginPage, + u = _fs.notNeedLoginPage, + _ref9 = function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = [], n = []; @@ -17259,35 +17897,35 @@ var _ref47 = function () { var s = e.root, _e$pages = e.pages, r = _e$pages === void 0 ? [] : _e$pages, - _os2 = os(r, s), - i = _os2.needLoginPage, - o = _os2.notNeedLoginPage; + _fs2 = fs(r, s), + i = _fs2.needLoginPage, + o = _fs2.notNeedLoginPage; t.push.apply(t, (0, _toConsumableArray2.default)(i)), n.push.apply(n, (0, _toConsumableArray2.default)(o)); }), { needLoginPage: t, notNeedLoginPage: n }; }(n), - h = _ref30.needLoginPage, - l = _ref30.notNeedLoginPage; + h = _ref9.needLoginPage, + l = _ref9.notNeedLoginPage; return { loginPage: i, routerNeedLogin: o, resToLogin: a, needLoginPage: [].concat((0, _toConsumableArray2.default)(c), (0, _toConsumableArray2.default)(h)), notNeedLoginPage: [].concat((0, _toConsumableArray2.default)(u), (0, _toConsumableArray2.default)(l)), - loginPageInTabBar: hs(i, r) + loginPageInTabBar: _s(i, r) }; }(), - ds = _ref47.loginPage, - ps = _ref47.routerNeedLogin, - fs = _ref47.resToLogin, - gs = _ref47.needLoginPage, - ms = _ref47.notNeedLoginPage, - ys = _ref47.loginPageInTabBar; -if (gs.indexOf(ds) > -1) throw new Error("Login page [".concat(ds, "] should not be \"needLogin\", please check your pages.json")); -function _s(e) { - var t = us(); + Is = _ref49.loginPage, + vs = _ref49.routerNeedLogin, + Ss = _ref49.resToLogin, + Ts = _ref49.needLoginPage, + bs = _ref49.notNeedLoginPage, + Es = _ref49.loginPageInTabBar; +if (Ts.indexOf(Is) > -1) throw new Error("Login page [".concat(Is, "] should not be \"needLogin\", please check your pages.json")); +function ks(e) { + var t = ys(); if ("/" === e.charAt(0)) return e; var _e$split = e.split("?"), _e$split2 = (0, _slicedToArray2.default)(_e$split, 2), @@ -17296,37 +17934,37 @@ function _s(e) { r = n.replace(/^\//, "").split("/"), i = t.split("/"); i.pop(); - for (var _e23 = 0; _e23 < r.length; _e23++) { - var _t16 = r[_e23]; - ".." === _t16 ? i.pop() : "." !== _t16 && i.push(_t16); + for (var _e24 = 0; _e24 < r.length; _e24++) { + var _t17 = r[_e24]; + ".." === _t17 ? i.pop() : "." !== _t17 && i.push(_t17); } return "" === i[0] && i.shift(), "/" + i.join("/") + (s ? "?" + s : ""); } -function ws(e) { - var t = as(_s(e)); - return !(ms.indexOf(t) > -1) && (gs.indexOf(t) > -1 || ps.some(function (t) { +function As(e) { + var t = gs(ks(e)); + return !(bs.indexOf(t) > -1) && (Ts.indexOf(t) > -1 || vs.some(function (t) { return function (e, t) { return new RegExp(t).test(e); }(e, t); })); } -function vs(_ref48) { - var e = _ref48.redirect; - var t = as(e), - n = as(ds); - return us() !== n && t !== n; +function Ps(_ref32) { + var e = _ref32.redirect; + var t = gs(e), + n = gs(Is); + return ys() !== n && t !== n; } -function Is() { - var _ref49 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref49.api, - t = _ref49.redirect; - if (!t || !vs({ +function Cs() { + var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref34.api, + t = _ref34.redirect; + if (!t || !Ps({ redirect: t })) return; var n = function (e, t) { return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e; - }(ds, t); - ys ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); + }(Is, t); + Es ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); var s = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, @@ -17339,7 +17977,7 @@ function Is() { }); }, 0); } -function Ss() { +function Os() { var _ref50 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref50.url; var t = { @@ -17347,71 +17985,71 @@ function Ss() { autoToLoginPage: !1 }, n = function () { - var _se3 = se(), - e = _se3.token, - t = _se3.tokenExpired; + var _se4 = se(), + e = _se4.token, + t = _se4.tokenExpired; var n; if (e) { if (t < Date.now()) { - var _e24 = "uni-id-token-expired"; + var _e25 = "uni-id-token-expired"; n = { - errCode: _e24, - errMsg: rs[_e24] + errCode: _e25, + errMsg: ds[_e25] }; } } else { - var _e25 = "uni-id-check-token-failed"; + var _e26 = "uni-id-check-token-failed"; n = { - errCode: _e25, - errMsg: rs[_e25] + errCode: _e26, + errMsg: ds[_e26] }; } return n; }(); - if (ws(e) && n) { + if (As(e) && n) { n.uniIdRedirectUrl = e; - if (J($).length > 0) return setTimeout(function () { - Y($, n); + if (z(H.NEED_LOGIN).length > 0) return setTimeout(function () { + Y(H.NEED_LOGIN, n); }, 0), t.abortLoginPageJump = !0, t; t.autoToLoginPage = !0; } return t; } -function bs() { +function xs() { !function () { - var e = cs(), - _Ss = Ss({ + var e = ms(), + _Os = Os({ url: e }), - t = _Ss.abortLoginPageJump, - n = _Ss.autoToLoginPage; - t || n && Is({ + t = _Os.abortLoginPageJump, + n = _Os.autoToLoginPage; + t || n && Cs({ api: "redirectTo", redirect: e }); }(); var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; - var _loop3 = function _loop3(_t17) { - var n = e[_t17]; + var _loop3 = function _loop3(_t18) { + var n = e[_t18]; uni.addInterceptor(n, { invoke: function invoke(e) { - var _Ss2 = Ss({ + var _Os2 = Os({ url: e.url }), - t = _Ss2.abortLoginPageJump, - s = _Ss2.autoToLoginPage; - return t ? e : s ? (Is({ + t = _Os2.abortLoginPageJump, + s = _Os2.autoToLoginPage; + return t ? e : s ? (Cs({ api: n, - redirect: _s(e.url) + redirect: ks(e.url) }), !1) : e; } }); }; - for (var _t17 = 0; _t17 < e.length; _t17++) { - _loop3(_t17); + for (var _t18 = 0; _t18 < e.length; _t18++) { + _loop3(_t18); } } -function ks() { +function Ns() { this.onResponse(function (e) { var t = e.type, n = e.content; @@ -17422,7 +18060,7 @@ function ks() { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref51 = e || {}, t = _ref51.errCode; - return t in rs; + return t in ds; }(n); break; case "clientdb": @@ -17430,19 +18068,19 @@ function ks() { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref52 = e || {}, t = _ref52.errCode; - return t in ss; + return t in hs; }(n); } s && function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var t = J($); + var t = z(H.NEED_LOGIN); Z().then(function () { - var n = cs(); - if (n && vs({ + var n = ms(); + if (n && Ps({ redirect: n - })) return t.length > 0 ? Y($, Object.assign({ + })) return t.length > 0 ? Y(H.NEED_LOGIN, Object.assign({ uniIdRedirectUrl: n - }, e)) : void (ds && Is({ + }, e)) : void (Is && Cs({ api: "navigateTo", redirect: n })); @@ -17450,33 +18088,33 @@ function ks() { }(n); }); } -function As(e) { +function Rs(e) { !function (e) { e.onResponse = function (e) { - V(j, e); + V(H.RESPONSE, e); }, e.offResponse = function (e) { - G(j, e); + G(H.RESPONSE, e); }; }(e), function (e) { e.onNeedLogin = function (e) { - V($, e); + V(H.NEED_LOGIN, e); }, e.offNeedLogin = function (e) { - G($, e); - }, ls && (L("_globalUniCloudStatus").needLoginInit || (L("_globalUniCloudStatus").needLoginInit = !0, Z().then(function () { - bs.call(e); - }), fs && ks.call(e))); + G(H.NEED_LOGIN, e); + }, ws && (U(Yt).needLoginInit || (U(Yt).needLoginInit = !0, Z().then(function () { + xs.call(e); + }), Ss && Ns.call(e))); }(e), function (e) { e.onRefreshToken = function (e) { - V(B, e); + V(H.REFRESH_TOKEN, e); }, e.offRefreshToken = function (e) { - G(B, e); + G(H.REFRESH_TOKEN, e); }; }(e); } -var Cs; -var Ps = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - Ts = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; -function xs() { +var Ls; +var Us = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + Ds = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; +function Ms() { var e = se().token || "", t = e.split("."); if (!e || 3 !== t.length) return { @@ -17487,7 +18125,7 @@ function xs() { }; var n; try { - n = JSON.parse((s = t[1], decodeURIComponent(Cs(s).split("").map(function (e) { + n = JSON.parse((s = t[1], decodeURIComponent(Ls(s).split("").map(function (e) { return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e) { @@ -17496,16 +18134,16 @@ function xs() { var s; return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n; } -Cs = "function" != typeof atob ? function (e) { - if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !Ts.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); +Ls = "function" != typeof atob ? function (e) { + if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !Ds.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); var t; e += "==".slice(2 - (3 & e.length)); for (var n, s, r = "", i = 0; i < e.length;) { - t = Ps.indexOf(e.charAt(i++)) << 18 | Ps.indexOf(e.charAt(i++)) << 12 | (n = Ps.indexOf(e.charAt(i++))) << 6 | (s = Ps.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t); + t = Us.indexOf(e.charAt(i++)) << 18 | Us.indexOf(e.charAt(i++)) << 12 | (n = Us.indexOf(e.charAt(i++))) << 6 | (s = Us.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t); } return r; } : atob; -var Os = n(function (e, t) { +var qs = n(function (e, t) { Object.defineProperty(t, "__esModule", { value: !0 }); @@ -17523,8 +18161,8 @@ var Os = n(function (e, t) { r = _ref53.onUploadProgress; return t.then(function (e) { if (s) { - var _t18 = s(e); - if (void 0 !== _t18) return Promise.resolve(_t18).then(function (t) { + var _t19 = s(e); + if (void 0 !== _t19) return Promise.resolve(_t19).then(function (t) { return void 0 === t ? e : t; }); } @@ -17666,9 +18304,13 @@ var Os = n(function (e, t) { }; }; }), - Es = t(Os); -var Ls = "manual"; -function Rs(e) { + Fs = t(qs); +var Ks = { + auto: "auto", + onready: "onready", + manual: "manual" +}; +function js(e) { return { props: { localdata: { @@ -17777,7 +18419,7 @@ function Rs(e) { }; }, created: function created() { - var _this21 = this; + var _this25 = this; this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, @@ -17785,48 +18427,48 @@ function Rs(e) { }, this.$watch(function () { var e = []; return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) { - e.push(_this21[t]); + e.push(_this25[t]); }), e; }, function (e, t) { - if (_this21.loadtime === Ls) return; + if (_this25.loadtime === Ks.manual) return; var n = !1; var s = []; for (var _r9 = 2; _r9 < e.length; _r9++) { e[_r9] !== t[_r9] && (s.push(e[_r9]), n = !0); } - e[0] !== t[0] && (_this21.mixinDatacomPage.current = _this21.pageCurrent), _this21.mixinDatacomPage.size = _this21.pageSize, _this21.onMixinDatacomPropsChange(n, s); + e[0] !== t[0] && (_this25.mixinDatacomPage.current = _this25.pageCurrent), _this25.mixinDatacomPage.size = _this25.pageSize, _this25.onMixinDatacomPropsChange(n, s); }); }, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() { - var _this22 = this; + var _this26 = this; var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref54$getone = _ref54.getone, e = _ref54$getone === void 0 ? !1 : _ref54$getone, t = _ref54.success, n = _ref54.fail; this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then(function (n) { - _this22.mixinDatacomLoading = !1; + _this26.mixinDatacomLoading = !1; var _n$result = n.result, s = _n$result.data, r = _n$result.count; - _this22.getcount && (_this22.mixinDatacomPage.count = r), _this22.mixinDatacomHasMore = s.length < _this22.pageSize; + _this26.getcount && (_this26.mixinDatacomPage.count = r), _this26.mixinDatacomHasMore = s.length < _this26.pageSize; var i = e ? s.length ? s[0] : void 0 : s; - _this22.mixinDatacomResData = i, t && t(i); + _this26.mixinDatacomResData = i, t && t(i); }).catch(function (e) { - _this22.mixinDatacomLoading = !1, _this22.mixinDatacomErrorMessage = e, _this22.mixinDatacomError = e, n && n(e); + _this26.mixinDatacomLoading = !1, _this26.mixinDatacomErrorMessage = e, _this26.mixinDatacomError = e, n && n(e); })); }, mixinDatacomGet: function mixinDatacomGet() { - var _n15; + var _n17; var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var n; t = t || {}, n = "undefined" != typeof __uniX && __uniX ? e.databaseForJQL(this.spaceInfo) : e.database(this.spaceInfo); var s = t.action || this.action; s && (n = n.action(s)); var r = t.collection || this.collection; - n = Array.isArray(r) ? (_n15 = n).collection.apply(_n15, (0, _toConsumableArray2.default)(r)) : n.collection(r); + n = Array.isArray(r) ? (_n17 = n).collection.apply(_n17, (0, _toConsumableArray2.default)(r)) : n.collection(r); var i = t.where || this.where; i && Object.keys(i).length && (n = n.where(i)); var o = t.field || this.field; @@ -17857,7 +18499,7 @@ function Rs(e) { } }; } -function Us(e) { +function $s(e) { return function (t) { var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; n = function (e) { @@ -17874,11 +18516,11 @@ function Us(e) { retry: !1 } }, n); - var _n16 = n, - s = _n16.customUI, - r = _n16.loadingOptions, - i = _n16.errorOptions, - o = _n16.parseSystemError, + var _n18 = n, + s = _n18.customUI, + r = _n18.loadingOptions, + i = _n18.errorOptions, + o = _n18.parseSystemError, a = !s; return new Proxy({}, { get: function get(s, c) { @@ -17893,72 +18535,72 @@ function Us(e) { e = _ref55.fn, t = _ref55.interceptorName, n = _ref55.getCallbackArgs; - return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { - var _len2, + return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee64() { + var _len3, s, - _key2, + _key3, r, i, o, _args = arguments; - return _regenerator.default.wrap(function _callee53$(_context53) { + return _regenerator.default.wrap(function _callee64$(_context64) { while (1) { - switch (_context53.prev = _context53.next) { + switch (_context64.prev = _context64.next) { case 0: - for (_len2 = _args.length, s = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - s[_key2] = _args[_key2]; + for (_len3 = _args.length, s = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + s[_key3] = _args[_key3]; } r = n ? n({ params: s }) : {}; - _context53.prev = 2; - _context53.next = 5; - return M(q(t, "invoke"), _objectSpread({}, r)); + _context64.prev = 2; + _context64.next = 5; + return j($(t, "invoke"), _objectSpread({}, r)); case 5: - _context53.next = 7; + _context64.next = 7; return e.apply(void 0, s); case 7: - i = _context53.sent; - _context53.next = 10; - return M(q(t, "success"), _objectSpread(_objectSpread({}, r), {}, { + i = _context64.sent; + _context64.next = 10; + return j($(t, "success"), _objectSpread(_objectSpread({}, r), {}, { result: i })); case 10: - return _context53.abrupt("return", i); + return _context64.abrupt("return", i); case 13: - _context53.prev = 13; - _context53.t0 = _context53["catch"](2); - o = _context53.t0; - _context53.next = 18; - return M(q(t, "fail"), _objectSpread(_objectSpread({}, r), {}, { + _context64.prev = 13; + _context64.t0 = _context64["catch"](2); + o = _context64.t0; + _context64.next = 18; + return j($(t, "fail"), _objectSpread(_objectSpread({}, r), {}, { error: o })); case 18: throw o; case 19: - _context53.prev = 19; - _context53.next = 22; - return M(q(t, "complete"), o ? _objectSpread(_objectSpread({}, r), {}, { + _context64.prev = 19; + _context64.next = 22; + return j($(t, "complete"), o ? _objectSpread(_objectSpread({}, r), {}, { error: o }) : _objectSpread(_objectSpread({}, r), {}, { result: i })); case 22: - return _context53.finish(19); + return _context64.finish(19); case 23: case "end": - return _context53.stop(); + return _context64.stop(); } } - }, _callee53, null, [[2, 13, 19, 23]]); + }, _callee64, null, [[2, 13, 19, 23]]); })); }({ fn: function () { - var _s15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee55() { - var l, - _len3, - h, - _key3, + var _s18 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee66() { + var h, + _len4, + u, + _key4, d, p, _ref57, @@ -17966,28 +18608,28 @@ function Us(e) { g, m, y, - _e26, + _e27, _yield, - _t19, - _n17, + _t20, + _n19, _args4 = arguments; - return _regenerator.default.wrap(function _callee55$(_context55) { + return _regenerator.default.wrap(function _callee66$(_context66) { while (1) { - switch (_context55.prev = _context55.next) { + switch (_context66.prev = _context66.next) { case 0: a && uni.showLoading({ title: r.title, mask: r.mask }); - for (_len3 = _args4.length, h = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - h[_key3] = _args4[_key3]; + for (_len4 = _args4.length, u = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { + u[_key4] = _args4[_key4]; } d = { name: t, - type: u, + type: l.OBJECT, data: { method: c, - params: h + params: u } }; "object" == (0, _typeof2.default)(n.secretMethods) && function (e, t) { @@ -17997,72 +18639,72 @@ function Us(e) { r && (t.secretType = r); }(n, d); p = !1; - _context55.prev = 5; - _context55.next = 8; + _context66.prev = 5; + _context66.next = 8; return e.callFunction(d); case 8: - l = _context55.sent; - _context55.next = 14; + h = _context66.sent; + _context66.next = 14; break; case 11: - _context55.prev = 11; - _context55.t0 = _context55["catch"](5); - p = !0, l = { - result: new te(_context55.t0) + _context66.prev = 11; + _context66.t0 = _context66["catch"](5); + p = !0, h = { + result: new te(_context66.t0) }; case 14: - _ref57 = l.result || {}, f = _ref57.errSubject, g = _ref57.errCode, m = _ref57.errMsg, y = _ref57.newToken; - if (!(a && uni.hideLoading(), y && y.token && y.tokenExpired && (re(y), Y(B, _objectSpread({}, y))), g)) { - _context55.next = 39; + _ref57 = h.result || {}, f = _ref57.errSubject, g = _ref57.errCode, m = _ref57.errMsg, y = _ref57.newToken; + if (!(a && uni.hideLoading(), y && y.token && y.tokenExpired && (re(y), Y(H.REFRESH_TOKEN, _objectSpread({}, y))), g)) { + _context66.next = 39; break; } - _e26 = m; + _e27 = m; if (!(p && o)) { - _context55.next = 24; + _context66.next = 24; break; } - _context55.next = 20; + _context66.next = 20; return o({ objectName: t, methodName: c, - params: h, + params: u, errSubject: f, errCode: g, errMsg: m }); case 20: - _context55.t1 = _context55.sent.errMsg; - if (_context55.t1) { - _context55.next = 23; + _context66.t1 = _context66.sent.errMsg; + if (_context66.t1) { + _context66.next = 23; break; } - _context55.t1 = m; + _context66.t1 = m; case 23: - _e26 = _context55.t1; + _e27 = _context66.t1; case 24: if (!a) { - _context55.next = 37; + _context66.next = 37; break; } if (!("toast" === i.type)) { - _context55.next = 29; + _context66.next = 29; break; } uni.showToast({ - title: _e26, + title: _e27, icon: "none" }); - _context55.next = 37; + _context66.next = 37; break; case 29: if (!("modal" !== i.type)) { - _context55.next = 31; + _context66.next = 31; break; } throw new Error("Invalid errorOptions.type: ".concat(i.type)); case 31: - _context55.next = 33; - return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee54() { + _context66.next = 33; + return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee65() { var _ref59, e, t, @@ -18070,12 +18712,12 @@ function Us(e) { s, r, _args2 = arguments; - return _regenerator.default.wrap(function _callee54$(_context54) { + return _regenerator.default.wrap(function _callee65$(_context65) { while (1) { - switch (_context54.prev = _context54.next) { + switch (_context65.prev = _context65.next) { case 0: _ref59 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, e = _ref59.title, t = _ref59.content, n = _ref59.showCancel, s = _ref59.cancelText, r = _ref59.confirmText; - return _context54.abrupt("return", new Promise(function (i, o) { + return _context65.abrupt("return", new Promise(function (i, o) { uni.showModal({ title: e, content: t, @@ -18095,50 +18737,50 @@ function Us(e) { })); case 2: case "end": - return _context54.stop(); + return _context65.stop(); } } - }, _callee54); + }, _callee65); }))({ title: "提示", - content: _e26, + content: _e27, showCancel: i.retry, cancelText: "取消", confirmText: i.retry ? "重试" : "确定" }); case 33: - _yield = _context55.sent; - _t19 = _yield.confirm; - if (!(i.retry && _t19)) { - _context55.next = 37; + _yield = _context66.sent; + _t20 = _yield.confirm; + if (!(i.retry && _t20)) { + _context66.next = 37; break; } - return _context55.abrupt("return", s.apply(void 0, h)); + return _context66.abrupt("return", s.apply(void 0, u)); case 37: - _n17 = new te({ + _n19 = new te({ subject: f, code: g, message: m, - requestId: l.requestId + requestId: h.requestId }); - throw _n17.detail = l.result, Y(j, { - type: z, - content: _n17 - }), _n17; + throw _n19.detail = h.result, Y(H.RESPONSE, { + type: J.CLOUD_OBJECT, + content: _n19 + }), _n19; case 39: - return _context55.abrupt("return", (Y(j, { - type: z, - content: l.result - }), l.result)); + return _context66.abrupt("return", (Y(H.RESPONSE, { + type: J.CLOUD_OBJECT, + content: h.result + }), h.result)); case 40: case "end": - return _context55.stop(); + return _context66.stop(); } } - }, _callee55, null, [[5, 11]]); + }, _callee66, null, [[5, 11]]); })); function s() { - return _s15.apply(this, arguments); + return _s18.apply(this, arguments); } return s; }(), @@ -18157,47 +18799,47 @@ function Us(e) { }); }; } -function Ns(e) { - return L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e.config.spaceId)); +function Bs(e) { + return U(Qt.replace("{spaceId}", e.config.spaceId)); } -function Ds() { - return _Ds.apply(this, arguments); +function Ws() { + return _Ws.apply(this, arguments); } -function _Ds() { - _Ds = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee58() { - var _ref72, +function _Ws() { + _Ws = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee71() { + var _ref70, e, - _ref72$callLoginByWei, + _ref70$callLoginByWei, t, n, s, r, - _args7 = arguments; - return _regenerator.default.wrap(function _callee58$(_context58) { + _args10 = arguments; + return _regenerator.default.wrap(function _callee71$(_context71) { while (1) { - switch (_context58.prev = _context58.next) { + switch (_context71.prev = _context71.next) { case 0: - _ref72 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, e = _ref72.openid, _ref72$callLoginByWei = _ref72.callLoginByWeixin, t = _ref72$callLoginByWei === void 0 ? !1 : _ref72$callLoginByWei; - n = Ns(this); - if (!("mp-weixin" !== C)) { - _context58.next = 4; + _ref70 = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : {}, e = _ref70.openid, _ref70$callLoginByWei = _ref70.callLoginByWeixin, t = _ref70$callLoginByWei === void 0 ? !1 : _ref70$callLoginByWei; + n = Bs(this); + if (!("mp-weixin" !== P)) { + _context71.next = 4; break; } - throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(C, "`")); + throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(P, "`")); case 4: if (!(e && t)) { - _context58.next = 6; + _context71.next = 6; break; } throw new Error("[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time"); case 6: if (!e) { - _context58.next = 8; + _context71.next = 8; break; } - return _context58.abrupt("return", (n.mpWeixinOpenid = e, {})); + return _context71.abrupt("return", (n.mpWeixinOpenid = e, {})); case 8: - _context58.next = 10; + _context71.next = 10; return new Promise(function (e, t) { uni.login({ success: function success(t) { @@ -18209,133 +18851,134 @@ function _Ds() { }); }); case 10: - s = _context58.sent; + s = _context71.sent; r = this.importObject("uni-id-co", { customUI: !0 }); - _context58.next = 14; + _context71.next = 14; return r.secureNetworkHandshakeByWeixin({ code: s, callLoginByWeixin: t }); case 14: n.mpWeixinCode = s; - return _context58.abrupt("return", { + return _context71.abrupt("return", { code: s }); case 16: case "end": - return _context58.stop(); + return _context71.stop(); } } - }, _callee58, this); + }, _callee71, this); })); - return _Ds.apply(this, arguments); + return _Ws.apply(this, arguments); } -function Ms(_x40) { - return _Ms.apply(this, arguments); +function Hs(_x52) { + return _Hs.apply(this, arguments); } -function _Ms() { - _Ms = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59(e) { +function _Hs() { + _Hs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee72(e) { var t; - return _regenerator.default.wrap(function _callee59$(_context59) { + return _regenerator.default.wrap(function _callee72$(_context72) { while (1) { - switch (_context59.prev = _context59.next) { + switch (_context72.prev = _context72.next) { case 0: - t = Ns(this); - return _context59.abrupt("return", (t.initPromise || (t.initPromise = Ds.call(this, e).then(function (e) { + t = Bs(this); + return _context72.abrupt("return", (t.initPromise || (t.initPromise = Ws.call(this, e).then(function (e) { return e; }).catch(function (e) { throw delete t.initPromise, e; })), t.initPromise)); case 2: case "end": - return _context59.stop(); + return _context72.stop(); } } - }, _callee59, this); + }, _callee72, this); })); - return _Ms.apply(this, arguments); + return _Hs.apply(this, arguments); } -function qs(e) { +function Js(e) { return function () { var _ref61 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref61.openid, _ref61$callLoginByWei = _ref61.callLoginByWeixin, n = _ref61$callLoginByWei === void 0 ? !1 : _ref61$callLoginByWei; - return Ms.call(e, { + return Hs.call(e, { openid: t, callLoginByWeixin: n }); }; } -function Fs(e) { +function zs(e) { !function (e) { ue = e; }(e); } -function Ks(e) { - var t = { - getSystemInfo: uni.getSystemInfo, - getPushClientId: uni.getPushClientId - }; - return function (n) { - return new Promise(function (s, r) { - t[e](_objectSpread(_objectSpread({}, n), {}, { +function Vs(e) { + var t = "mp-weixin" === P && wx.canIUse("getAppBaseInfo"), + n = { + getAppBaseInfo: t ? uni.getAppBaseInfo : uni.getSystemInfo, + getPushClientId: uni.getPushClientId + }; + return function (s) { + return new Promise(function (r, i) { + t && "getAppBaseInfo" === e ? r(n[e]()) : n[e](_objectSpread(_objectSpread({}, s), {}, { success: function success(e) { - s(e); + r(e); }, fail: function fail(e) { - r(e); + i(e); } })); }); }; } -var js = /*#__PURE__*/function (_ref62) { - (0, _inherits2.default)(js, _ref62); - var _super12 = _createSuper(js); - function js() { - var _this23; - (0, _classCallCheck2.default)(this, js); - _this23 = _super12.call(this), _this23._uniPushMessageCallback = _this23._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this23)), _this23._currentMessageId = -1, _this23._payloadQueue = []; - return _this23; +var Gs = /*#__PURE__*/function (_S) { + (0, _inherits2.default)(Gs, _S); + var _super11 = _createSuper(Gs); + function Gs() { + var _this27; + (0, _classCallCheck2.default)(this, Gs); + _this27 = _super11.call(this), _this27._uniPushMessageCallback = _this27._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this27)), _this27._currentMessageId = -1, _this27._payloadQueue = []; + return _this27; } - (0, _createClass2.default)(js, [{ + (0, _createClass2.default)(Gs, [{ key: "init", value: function init() { - var _this24 = this; - return Promise.all([Ks("getSystemInfo")(), Ks("getPushClientId")()]).then(function () { - var _ref63 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], - _ref64 = (0, _slicedToArray2.default)(_ref63, 2), - _ref64$ = _ref64[0]; - _ref64$ = _ref64$ === void 0 ? {} : _ref64$; - var e = _ref64$.appId, - _ref64$2 = _ref64[1]; - _ref64$2 = _ref64$2 === void 0 ? {} : _ref64$2; - var t = _ref64$2.cid; + var _this28 = this; + return Promise.all([Vs("getAppBaseInfo")(), Vs("getPushClientId")()]).then(function () { + var _ref62 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], + _ref63 = (0, _slicedToArray2.default)(_ref62, 2), + _ref63$ = _ref63[0]; + _ref63$ = _ref63$ === void 0 ? {} : _ref63$; + var e = _ref63$.appId, + _ref63$2 = _ref63[1]; + _ref63$2 = _ref63$2 === void 0 ? {} : _ref63$2; + var t = _ref63$2.cid; if (!e) throw new Error("Invalid appId, please check the manifest.json file"); if (!t) throw new Error("Invalid push client id"); - _this24._appId = e, _this24._pushClientId = t, _this24._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this24.emit("open"), _this24._initMessageListener(); + _this28._appId = e, _this28._pushClientId = t, _this28._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this28.emit("open"), _this28._initMessageListener(); }, function (e) { - throw _this24.emit("error", e), _this24.close(), e; + throw _this28.emit("error", e), _this28.close(), e; }); } }, { key: "open", value: function () { - var _open = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee56() { - return _regenerator.default.wrap(function _callee56$(_context56) { + var _open = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee67() { + return _regenerator.default.wrap(function _callee67$(_context67) { while (1) { - switch (_context56.prev = _context56.next) { + switch (_context67.prev = _context67.next) { case 0: - return _context56.abrupt("return", this.init()); + return _context67.abrupt("return", this.init()); case 1: case "end": - return _context56.stop(); + return _context67.stop(); } } - }, _callee56, this); + }, _callee67, this); })); function open() { return _open.apply(this, arguments); @@ -18366,13 +19009,13 @@ var js = /*#__PURE__*/function (_ref62) { }, { key: "_consumMessage", value: function _consumMessage() { - var _this25 = this; + var _this29 = this; for (;;) { - var _e27 = this._payloadQueue.find(function (e) { - return e.messageId === _this25._currentMessageId + 1; + var _e28 = this._payloadQueue.find(function (e) { + return e.messageId === _this29._currentMessageId + 1; }); - if (!_e27) break; - this._currentMessageId++, this._parseMessagePayload(_e27); + if (!_e28) break; + this._currentMessageId++, this._parseMessagePayload(_e28); } } }, { @@ -18392,17 +19035,17 @@ var js = /*#__PURE__*/function (_ref62) { }, { key: "_appendMessage", value: function _appendMessage() { - var _ref65 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref65.messageId, - t = _ref65.message; + var _ref64 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref64.messageId, + t = _ref64.message; this.emit("message", t); } }, { key: "_end", value: function _end() { - var _ref66 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - e = _ref66.messageId, - t = _ref66.message; + var _ref65 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + e = _ref65.messageId, + t = _ref65.message; this.emit("end", t), this.close(); } }, { @@ -18430,193 +19073,57 @@ var js = /*#__PURE__*/function (_ref62) { this._destroy(), this.emit("close"); } }]); - return js; -}( /*#__PURE__*/function () { - function _class6() { - (0, _classCallCheck2.default)(this, _class6); - this._callback = {}; - } - (0, _createClass2.default)(_class6, [{ - key: "addListener", - value: function addListener(e, t) { - this._callback[e] || (this._callback[e] = []), this._callback[e].push(t); - } - }, { - key: "on", - value: function on(e, t) { - return this.addListener(e, t); - } - }, { - key: "removeListener", - value: function removeListener(e, t) { - if (!t) throw new Error('The "listener" argument must be of type function. Received undefined'); - var n = this._callback[e]; - if (!n) return; - var s = function (e, t) { - for (var _n18 = e.length - 1; _n18 >= 0; _n18--) { - if (e[_n18] === t) return _n18; - } - return -1; - }(n, t); - n.splice(s, 1); - } - }, { - key: "off", - value: function off(e, t) { - return this.removeListener(e, t); - } - }, { - key: "removeAllListener", - value: function removeAllListener(e) { - delete this._callback[e]; - } - }, { - key: "emit", - value: function emit(e) { - var n = this._callback[e]; - for (var _len4 = arguments.length, t = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { - t[_key4 - 1] = arguments[_key4]; - } - if (n) for (var _e28 = 0; _e28 < n.length; _e28++) { - n[_e28].apply(n, t); - } - } - }]); - return _class6; -}()); -function $s(_x41, _x42) { - return _$s.apply(this, arguments); + return Gs; +}(S); +function Ys(_x53) { + return _Ys.apply(this, arguments); } -function _$s() { - _$s = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee60(e, t) { - var n, _e31, s; - return _regenerator.default.wrap(function _callee60$(_context60) { +function _Ys() { + _Ys = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee73(e) { + var _ae2, _e33, _t22, t, _t$debugInfo, n, s, _yield$Ct2, r, i, o; + return _regenerator.default.wrap(function _callee73$(_context73) { while (1) { - switch (_context60.prev = _context60.next) { + switch (_context73.prev = _context73.next) { case 0: - n = "http://".concat(e, ":").concat(t, "/system/ping"); - _context60.prev = 1; - _context60.next = 4; - return s = { - url: n, - timeout: 500 - }, new Promise(function (e, t) { - ne.request(_objectSpread(_objectSpread({}, s), {}, { - success: function success(t) { - e(t); - }, - fail: function fail(e) { - t(e); - } - })); - }); - case 4: - _e31 = _context60.sent; - return _context60.abrupt("return", !(!_e31.data || 0 !== _e31.data.code)); - case 8: - _context60.prev = 8; - _context60.t0 = _context60["catch"](1); - return _context60.abrupt("return", !1); - case 11: - case "end": - return _context60.stop(); - } - } - }, _callee60, null, [[1, 8]]); - })); - return _$s.apply(this, arguments); -} -function Bs(_x43) { - return _Bs.apply(this, arguments); -} -function _Bs() { - _Bs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee62(e) { - var _ae2, _e32, _t21, t, _t$debugInfo, n, s, _yield2, r, i, o; - return _regenerator.default.wrap(function _callee62$(_context62) { - while (1) { - switch (_context62.prev = _context62.next) { - case 0: - if (S) { - _context62.next = 2; + if (b) { + _context73.next = 2; break; } - return _context62.abrupt("return", Promise.resolve()); + return _context73.abrupt("return", Promise.resolve()); case 2: - if ("app" === C) { - _ae2 = ae(), _e32 = _ae2.osName, _t21 = _ae2.osVersion; - "ios" === _e32 && function (e) { + if ("app" === P) { + _ae2 = ae(), _e33 = _ae2.osName, _t22 = _ae2.osVersion; + "ios" === _e33 && function (e) { if (!e || "string" != typeof e) return 0; var t = e.match(/^(\d+)./); return t && t[1] ? parseInt(t[1]) : 0; - }(_t21) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)"); + }(_t22) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)"); } t = e.__dev__; if (t.debugInfo) { - _context62.next = 6; + _context73.next = 6; break; } - return _context62.abrupt("return"); + return _context73.abrupt("return"); case 6: _t$debugInfo = t.debugInfo; n = _t$debugInfo.address; s = _t$debugInfo.servePort; - _context62.next = 11; - return function () { - var _ref73 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee61(e, t) { - var n, _s16, _r10; - return _regenerator.default.wrap(function _callee61$(_context61) { - while (1) { - switch (_context61.prev = _context61.next) { - case 0: - _s16 = 0; - case 1: - if (!(_s16 < e.length)) { - _context61.next = 11; - break; - } - _r10 = e[_s16]; - _context61.next = 5; - return $s(_r10, t); - case 5: - if (!_context61.sent) { - _context61.next = 8; - break; - } - n = _r10; - return _context61.abrupt("break", 11); - case 8: - _s16++; - _context61.next = 1; - break; - case 11: - return _context61.abrupt("return", { - address: n, - port: t - }); - case 12: - case "end": - return _context61.stop(); - } - } - }, _callee61); - })); - return function (_x44, _x45) { - return _ref73.apply(this, arguments); - }; - }()(n, s); + _context73.next = 11; + return Ct(n, s); case 11: - _yield2 = _context62.sent; - r = _yield2.address; + _yield$Ct2 = _context73.sent; + r = _yield$Ct2.address; if (!r) { - _context62.next = 15; + _context73.next = 15; break; } - return _context62.abrupt("return", (t.localAddress = r, void (t.localPort = s))); + return _context73.abrupt("return", (t.localAddress = r, void (t.localPort = s))); case 15: - i = console["app" === C ? "error" : "warn"]; + i = console["app" === P ? "error" : "warn"]; o = ""; - if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", "web" === C && (o += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === C.indexOf("mp-") && (o += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { - _context62.next = 19; + if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", "web" === P && (o += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === P.indexOf("mp-") && (o += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { + _context73.next = 19; break; } throw new Error(o); @@ -18624,14 +19131,14 @@ function _Bs() { i(o); case 20: case "end": - return _context62.stop(); + return _context73.stop(); } } - }, _callee62); + }, _callee73); })); - return _Bs.apply(this, arguments); + return _Ys.apply(this, arguments); } -function Ws(e) { +function Qs(e) { e._initPromiseHub || (e._initPromiseHub = new v({ createPromise: function createPromise() { var t = Promise.resolve(); @@ -18650,38 +19157,39 @@ function Ws(e) { } })); } -var Hs = { - tcb: St, - tencent: St, +var Xs = { + tcb: At, + tencent: At, aliyun: pe, - private: kt, - alipay: Ut + private: Nt, + dcloud: Nt, + alipay: $t }; -var zs = new ( /*#__PURE__*/function () { - function _class7() { - (0, _classCallCheck2.default)(this, _class7); +var Zs = new ( /*#__PURE__*/function () { + function _class5() { + (0, _classCallCheck2.default)(this, _class5); } - (0, _createClass2.default)(_class7, [{ + (0, _createClass2.default)(_class5, [{ key: "init", value: function init(e) { var t = {}; - var n = Hs[e.provider]; + var n = Xs[e.provider]; if (!n) throw new Error("未提供正确的provider参数"); - t = n.init(e), S && function (e) { - if (!S) return; + t = n.init(e), b && function (e) { + if (!b) return; var t = {}; - e.__dev__ = t, t.debugLog = S && ("web" === C && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === C); - var n = P; + e.__dev__ = t, t.debugLog = b && ("web" === P && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === P || "mp-harmony" === P); + var n = C; n && !n.code && (t.debugInfo = n); var s = new v({ createPromise: function createPromise() { - return Bs(e); + return Ys(e); } }); t.initLocalNetwork = function () { return s.exec(); }; - }(t), Ws(t), $n(t), function (e) { + }(t), Qs(t), Vn(t), function (e) { var t = e.uploadFile; e.uploadFile = function (e) { return t.call(this, e); @@ -18690,25 +19198,25 @@ var zs = new ( /*#__PURE__*/function () { e.database = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).database(); if (this._database) return this._database; - var n = Zn(es, { + var n = os(as, { uniClient: e }); return this._database = n, n; }, e.databaseForJQL = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).databaseForJQL(); if (this._databaseForJQL) return this._databaseForJQL; - var n = Zn(es, { + var n = os(as, { uniClient: e, isJQL: !0 }); return this._databaseForJQL = n, n; }; }(t), function (e) { - e.getCurrentUserInfo = xs, e.chooseAndUploadFile = Es.initChooseAndUploadFile(e), Object.assign(e, { + e.getCurrentUserInfo = Ms, e.chooseAndUploadFile = Fs.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() { - return Rs(e); + return js(e); } - }), e.SSEChannel = js, e.initSecureNetworkByWeixin = qs(e), e.setCustomClientInfo = Fs, e.importObject = Us(e); + }), e.SSEChannel = Gs, e.initSecureNetworkByWeixin = Js(e), e.setCustomClientInfo = zs, e.importObject = $s(e); }(t); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) { if (!t[e]) return; @@ -18717,11 +19225,11 @@ var zs = new ( /*#__PURE__*/function () { return n.apply(t, Array.from(arguments)); }, t[e] = function (e, t) { return function (n) { - var _this26 = this; + var _this30 = this; var s = !1; if ("callFunction" === t) { - var _e29 = n && n.type || c; - s = _e29 !== c; + var _e29 = n && n.type || l.DEFAULT; + s = _e29 !== l.DEFAULT; } var r = "callFunction" === t && !s, i = this._initPromiseHub.exec(); @@ -18729,39 +19237,39 @@ var zs = new ( /*#__PURE__*/function () { var _ee2 = ee(n), o = _ee2.success, a = _ee2.fail, - u = _ee2.complete, - h = i.then(function () { - return s ? Promise.resolve() : M(q(t, "invoke"), n); + c = _ee2.complete, + u = i.then(function () { + return s ? Promise.resolve() : j($(t, "invoke"), n); }).then(function () { - return e.call(_this26, n); + return e.call(_this30, n); }).then(function (e) { - return s ? Promise.resolve(e) : M(q(t, "success"), e).then(function () { - return M(q(t, "complete"), e); + return s ? Promise.resolve(e) : j($(t, "success"), e).then(function () { + return j($(t, "complete"), e); }).then(function () { - return r && Y(j, { - type: H, + return r && Y(H.RESPONSE, { + type: J.CLOUD_FUNCTION, content: e }), Promise.resolve(e); }); }, function (e) { - return s ? Promise.reject(e) : M(q(t, "fail"), e).then(function () { - return M(q(t, "complete"), e); + return s ? Promise.reject(e) : j($(t, "fail"), e).then(function () { + return j($(t, "complete"), e); }).then(function () { - return Y(j, { - type: H, + return Y(H.RESPONSE, { + type: J.CLOUD_FUNCTION, content: e }), Promise.reject(e); }); }); - if (!(o || a || u)) return h; - h.then(function (e) { - o && o(e), u && u(e), r && Y(j, { - type: H, + if (!(o || a || c)) return u; + u.then(function (e) { + o && o(e), c && c(e), r && Y(H.RESPONSE, { + type: J.CLOUD_FUNCTION, content: e }); }, function (e) { - a && a(e), u && u(e), r && Y(j, { - type: H, + a && a(e), c && c(e), r && Y(H.RESPONSE, { + type: J.CLOUD_FUNCTION, content: e }); }); @@ -18770,31 +19278,37 @@ var zs = new ( /*#__PURE__*/function () { }), t.init = this.init, t; } }]); - return _class7; + return _class5; }())(); +exports.uniCloud = Zs; (function () { - var e = T; + var e = O; var t = {}; - if (e && 1 === e.length) t = e[0], zs = zs.init(t), zs._isDefault = !0;else { - var _t20 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; - var _n19; - _n19 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : x ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t20.forEach(function (e) { - zs[e] = function () { - return console.error(_n19), Promise.reject(new te({ + if (e && 1 === e.length) t = e[0], exports.uniCloud = Zs = Zs.init(t), Zs._isDefault = !0;else { + var _t21 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile"], + _n20 = ["database", "getCurrentUserInfo", "importObject"]; + var _s19; + _s19 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : x ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", [].concat(_t21, _n20).forEach(function (e) { + Zs[e] = function () { + if (console.error(_s19), -1 === _n20.indexOf(e)) return Promise.reject(new te({ code: "SYS_ERR", - message: _n19 + message: _s19 })); + console.error(_s19); }; }); } - Object.assign(zs, { + if (Object.assign(Zs, { get mixinDatacom() { - return Rs(zs); + return js(Zs); } - }), As(zs), zs.addInterceptor = N, zs.removeInterceptor = D, zs.interceptObject = F, S && "web" === C && (window.uniCloud = zs); + }), Rs(Zs), Zs.addInterceptor = F, Zs.removeInterceptor = K, Zs.interceptObject = B, b && "web" === P && (window.uniCloud = Zs), "app" === P && (uni.__uniCloud = Zs), "app" === P || "web" === P) { + var _e30 = D(); + _e30.uniCloud = Zs, _e30.UniCloudError = te; + } })(); -var Js = zs; -exports.default = Js; +var er = Zs; +exports.default = er; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 47), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 117)["default"])) /***/ }), @@ -21157,7 +21671,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _record = _interopRequireDefault(__webpack_require__(/*! @/element/manuallyAdd/record.vue */ 58));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n LiuS: 0,\n acd_id: 8,\n isdevice: true\n };\n },\n components: {\n record: _record.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"MeasureLung\"])), {}, {\n info: function info() {\n return this.MeasureLung;\n }\n }),\n onLoad: function onLoad(options) {\n var that = this;\n that.acd_id = options.acd_id;\n that.isdevice = options.device;\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n },\n onPullDownRefresh: function onPullDownRefresh() {\n var that = this;\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n methods: {\n // 历史数据删除时重新加载接口\n reload: function reload() {\n var that = this;\n __f__(\"log\", '重新加载', \" at pages/lunging/vitalcapacity.vue:111\");\n this.$nextTick(function () {\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n });\n },\n navTo: function navTo(url) {\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbHVuZ2luZy92aXRhbGNhcGFjaXR5LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiTGl1UyIsImFjZF9pZCIsImlzZGV2aWNlIiwiY29tcG9uZW50cyIsInJlY29yZCIsImNvbXB1dGVkIiwiaW5mbyIsIm9uTG9hZCIsInRoYXQiLCJhdWRfaWQiLCJvblB1bGxEb3duUmVmcmVzaCIsInNldFRpbWVvdXQiLCJ1bmkiLCJtZXRob2RzIiwicmVsb2FkIiwibmF2VG8iLCJ1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0VBO0FBR0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztFQUNBO0VBQ0FDLDBDQUNBO0lBQ0FDO01BQ0E7SUFDQTtFQUFBLEVBQ0E7RUFDQUM7SUFDQTtJQUNBQztJQUNBQTtJQUNBQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBRjtNQUNBQztJQUNBO0lBQ0FFO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0FOO1VBQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FNO01BQ0FIO1FBQ0FJO01BQ0E7SUFDQTtFQUVBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxNTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XG5cdDx2aWV3IGNsYXNzPVwiY29udGVudFwiPlxuXHRcdDwhLS0gIC0tPlxuXHRcdDx2aWV3IGNsYXNzPVwic2tpcHRvcFwiPlxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cInN0YXR1c1wiIEBjbGljaz1cIiRCbHVldG9vdGguaGFuZGxlRGV2aWNlc01hYyhpc2RldmljZSxhY2RfaWQpXCI+PHRleHQ+6K6+5aSH6L+e5o6lPC90ZXh0Pjwvdmlldz4gLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPuW5s+Wdh+WQuOawlOiCuua0u+mHjzx0ZXh0Pnt7aW5mbz9pbmZvLmF2ZXJhZ2U6Jy0tJ319PC90ZXh0Pjwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPuWQuOawlOmAn+W6pjx0ZXh0Pi0tPC90ZXh0Pjwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPuaYr+WQpui+vuaghzx0ZXh0Pnt7aW5mbz9pbmZvLmxldmVsOictLSd9fTwvdGV4dD48L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDwhLS3oh6rnlLHorq3nu4MgIC0tPlxuXHRcdDx2aWV3IGNsYXNzPVwiYm94MVwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+e3tpbmZvP2luZm8udGltZTonJ319PC92aWV3PlxuXHRcdFx0PCEtLSA8dmlldyBjbGFzcz1cIkxpdVNcIj7lkLjmsJTpgJ/luqYgPHRleHQgY2xhc3M9XCJjZ3JlZW4gbWwtNVwiPnt7aW5mbz9pbmZvLmZsb3dfdmFsOictLSd9fUwvbWluPC90ZXh0Pjwvdmlldz4gLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYmFlLnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjZW50ZXIgIG10LTE1XCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZXZlbFwiPjwvdmlldz5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxldmVsIGxldmVsLWJnXCIgOnN0eWxlPVwieyd0b3AnOmluZm8/TnVtYmVyKDEwMCAtIGluZm8ub2Zmc2V0KSsnJSc6JzEwMCUnfVwiPjwvdmlldz5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxldmVsLWl0ZW1cIiB2LWlmPVwiaW5mb1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVcIiB2LWZvcj1cIihpdGUsaW5kKSBpbiBpbmZvLmxpc3RcIiA6c3R5bGU9XCJ7J2hlaWdodCc6MTAwL2luZm8ubGlzdC5sZW5ndGgrJyUnfVwiPlxuXHRcdFx0XHRcdFx0XHR7e2l0ZS50ZXh0fX08L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBjbGFzcz1cInZhbFwiIHYtaWY9XCJpbmZvXCI+XG5cdFx0XHRcdDx0ZXh0Pnt7aW5mby5hdmVyYWdlfX08L3RleHQ+XG5cdFx0XHRcdOWQuOawlOiCuua0u+mHj+W5s+Wdh+WAvFxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XHQ8IS0tICAtLT5cblx0XHQ8dmlldyBjbGFzcz1cImdyaWRMaXN0XCI+XG5cdFx0XHQ8dmlldyBjbGFzcz1cImRhdGFcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlcy9sdW5naW5nL2NoYXJ0cycpXCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9jaGFydHMucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+6L+Q5Yqo5puy57q/PC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9oaXN0b3J5L2hpc3Rvcnk/YWNkX2lkPScrYWNkX2lkKVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvYWRkLnBuZ1wiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPuWOhuWPsuiusOW9lTwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vY29tcGsvY29udHJhc3Q/YWNkX2lkPScrYWNkX2lkKVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvcGsucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+5pWw5o2u5a+55q+UPC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIiRzdG9yZS5jb21taXQoJ2NoYW5nZVJlY29yZCcsdHJ1ZSlcIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltYWdlXCI+XG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2hpc3RvcnkucG5nXCI+PC9pbWFnZT5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+5re75Yqg6K6w5b2VPC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcdDwhLS0g5omL5Yqo6K6w5b2VIC0tPlxuXHRcdDxyZWNvcmQgOnJ0eXBlPVwiYWNkX2lkXCI+PC9yZWNvcmQ+XG5cdDwvdmlldz5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cdGltcG9ydCB7XG5cdFx0bWFwU3RhdGVcblx0fSBmcm9tIFwidnVleFwiO1xuXHRpbXBvcnQgcmVjb3JkIGZyb20gJ0AvZWxlbWVudC9tYW51YWxseUFkZC9yZWNvcmQudnVlJztcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRMaXVTOiAwLFxuXHRcdFx0XHRhY2RfaWQ6IDgsXG5cdFx0XHRcdGlzZGV2aWNlOiB0cnVlLFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Y29tcG9uZW50czoge1xuXHRcdFx0cmVjb3JkXG5cdFx0fSxcblx0XHRjb21wdXRlZDoge1xuXHRcdFx0Li4ubWFwU3RhdGUoW1wiTWVhc3VyZUx1bmdcIl0pLFxuXHRcdFx0aW5mbygpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuTWVhc3VyZUx1bmdcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uTG9hZChvcHRpb25zKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdHRoYXQuYWNkX2lkID0gb3B0aW9ucy5hY2RfaWRcblx0XHRcdHRoYXQuaXNkZXZpY2UgPSBvcHRpb25zLmRldmljZVxuXHRcdFx0dGhhdC4kc3RvcmUuZGlzcGF0Y2goXCJnZXRMdW5nUmVzdWx0XCIsIHtcblx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0b25QdWxsRG93blJlZnJlc2goKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKFwiZ2V0THVuZ1Jlc3VsdFwiLCB7XG5cdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKVxuXHRcdFx0fSlcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR1bmkuc3RvcFB1bGxEb3duUmVmcmVzaCgpXG5cdFx0XHR9LCAxMDAwKTtcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdC8vIOWOhuWPsuaVsOaNruWIoOmZpOaXtumHjeaWsOWKoOi9veaOpeWPo1xuXHRcdFx0cmVsb2FkKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0Y29uc29sZS5sb2coJ+mHjeaWsOWKoOi9vScpO1xuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XG5cdFx0XHRcdFx0dGhhdC4kc3RvcmUuZGlzcGF0Y2goXCJnZXRMdW5nUmVzdWx0XCIsIHtcblx0XHRcdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0bmF2VG8odXJsKSB7XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcblx0XHRcdFx0XHR1cmw6IHVybFxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cblx0QGltcG9ydCBcIkAvc2Nzcy9sdW5naW5nLnNjc3NcIjtcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///157\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _record = _interopRequireDefault(__webpack_require__(/*! @/element/manuallyAdd/record.vue */ 58));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n LiuS: 0,\n acd_id: 8,\n isdevice: true\n };\n },\n components: {\n record: _record.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"MeasureLung\"])), {}, {\n info: function info() {\n return this.MeasureLung;\n }\n }),\n onLoad: function onLoad(options) {\n var that = this;\n that.acd_id = options.acd_id;\n that.isdevice = options.device;\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n },\n onPullDownRefresh: function onPullDownRefresh() {\n var that = this;\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n methods: {\n // 历史数据删除时重新加载接口\n reload: function reload() {\n var that = this;\n __f__(\"log\", '重新加载', \" at pages/lunging/vitalcapacity.vue:111\");\n this.$nextTick(function () {\n that.$store.dispatch(\"getLungResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n });\n },\n navTo: function navTo(url) {\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbHVuZ2luZy92aXRhbGNhcGFjaXR5LnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiTGl1UyIsImFjZF9pZCIsImlzZGV2aWNlIiwiY29tcG9uZW50cyIsInJlY29yZCIsImNvbXB1dGVkIiwiaW5mbyIsIm9uTG9hZCIsInRoYXQiLCJhdWRfaWQiLCJvblB1bGxEb3duUmVmcmVzaCIsInNldFRpbWVvdXQiLCJ1bmkiLCJtZXRob2RzIiwicmVsb2FkIiwibmF2VG8iLCJ1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0VBO0FBR0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztFQUNBO0VBQ0FDLDBDQUNBO0lBQ0FDO01BQ0E7SUFDQTtFQUFBLEVBQ0E7RUFDQUM7SUFDQTtJQUNBQztJQUNBQTtJQUNBQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBRjtNQUNBQztJQUNBO0lBQ0FFO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0FOO1VBQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0FNO01BQ0FIO1FBQ0FJO01BQ0E7SUFDQTtFQUVBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxNTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCI+XHJcblx0XHQ8IS0tICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2tpcHRvcFwiPlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwic3RhdHVzXCIgQGNsaWNrPVwiJEJsdWV0b290aC5oYW5kbGVEZXZpY2VzTWFjKGlzZGV2aWNlLGFjZF9pZClcIj48dGV4dD7orr7lpIfov57mjqU8L3RleHQ+PC92aWV3PiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPuW5s+Wdh+WQuOawlOiCuua0u+mHjzx0ZXh0Pnt7aW5mbz9pbmZvLmF2ZXJhZ2U6Jy0tJ319PC90ZXh0Pjwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+5ZC45rCU6YCf5bqmPHRleHQ+LS08L3RleHQ+PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj7mmK/lkKbovr7moIc8dGV4dD57e2luZm8/aW5mby5sZXZlbDonLS0nfX08L3RleHQ+PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0t6Ieq55Sx6K6t57uDICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYm94MVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj57e2luZm8/aW5mby50aW1lOicnfX08L3ZpZXc+XHJcblx0XHRcdDwhLS0gPHZpZXcgY2xhc3M9XCJMaXVTXCI+5ZC45rCU6YCf5bqmIDx0ZXh0IGNsYXNzPVwiY2dyZWVuIG1sLTVcIj57e2luZm8/aW5mby5mbG93X3ZhbDonLS0nfX1ML21pbjwvdGV4dD48L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImltYWdlXCI+XHJcblx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2JhZS5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImNlbnRlciAgbXQtMTVcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGV2ZWxcIj48L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxldmVsIGxldmVsLWJnXCIgOnN0eWxlPVwieyd0b3AnOmluZm8/TnVtYmVyKDEwMCAtIGluZm8ub2Zmc2V0KSsnJSc6JzEwMCUnfVwiPjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGV2ZWwtaXRlbVwiIHYtaWY9XCJpbmZvXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlXCIgdi1mb3I9XCIoaXRlLGluZCkgaW4gaW5mby5saXN0XCIgOnN0eWxlPVwieydoZWlnaHQnOjEwMC9pbmZvLmxpc3QubGVuZ3RoKyclJ31cIj5cclxuXHRcdFx0XHRcdFx0XHR7e2l0ZS50ZXh0fX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidmFsXCIgdi1pZj1cImluZm9cIj5cclxuXHRcdFx0XHQ8dGV4dD57e2luZm8uYXZlcmFnZX19PC90ZXh0PlxyXG5cdFx0XHRcdOWQuOawlOiCuua0u+mHj+W5s+Wdh+WAvFxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwiZ3JpZExpc3RcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRhXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlcy9sdW5naW5nL2NoYXJ0cycpXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImltYWdlXCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvY2hhcnRzLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7ov5Dliqjmm7Lnur88L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9oaXN0b3J5L2hpc3Rvcnk/YWNkX2lkPScrYWNkX2lkKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2FkZC5wbmdcIj48L2ltYWdlPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+5Y6G5Y+y6K6w5b2VPC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vY29tcGsvY29udHJhc3Q/YWNkX2lkPScrYWNkX2lkKVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxyXG5cdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL3BrLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7mlbDmja7lr7nmr5Q8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiIEBjbGljaz1cIiRzdG9yZS5jb21taXQoJ2NoYW5nZVJlY29yZCcsdHJ1ZSlcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9oaXN0b3J5LnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj7mt7vliqDorrDlvZU8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIOaJi+WKqOiusOW9lSAtLT5cclxuXHRcdDxyZWNvcmQgOnJ0eXBlPVwiYWNkX2lkXCI+PC9yZWNvcmQ+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0bWFwU3RhdGVcclxuXHR9IGZyb20gXCJ2dWV4XCI7XHJcblx0aW1wb3J0IHJlY29yZCBmcm9tICdAL2VsZW1lbnQvbWFudWFsbHlBZGQvcmVjb3JkLnZ1ZSc7XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRMaXVTOiAwLFxyXG5cdFx0XHRcdGFjZF9pZDogOCxcclxuXHRcdFx0XHRpc2RldmljZTogdHJ1ZSxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXBvbmVudHM6IHtcclxuXHRcdFx0cmVjb3JkXHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0Li4ubWFwU3RhdGUoW1wiTWVhc3VyZUx1bmdcIl0pLFxyXG5cdFx0XHRpbmZvKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLk1lYXN1cmVMdW5nXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQob3B0aW9ucykge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0dGhhdC5hY2RfaWQgPSBvcHRpb25zLmFjZF9pZFxyXG5cdFx0XHR0aGF0LmlzZGV2aWNlID0gb3B0aW9ucy5kZXZpY2VcclxuXHRcdFx0dGhhdC4kc3RvcmUuZGlzcGF0Y2goXCJnZXRMdW5nUmVzdWx0XCIsIHtcclxuXHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRvblB1bGxEb3duUmVmcmVzaCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKFwiZ2V0THVuZ1Jlc3VsdFwiLCB7XHJcblx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXHJcblx0XHRcdH0pXHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHVuaS5zdG9wUHVsbERvd25SZWZyZXNoKClcclxuXHRcdFx0fSwgMTAwMCk7XHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDljoblj7LmlbDmja7liKDpmaTml7bph43mlrDliqDovb3mjqXlj6NcclxuXHRcdFx0cmVsb2FkKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfph43mlrDliqDovb0nKTtcclxuXHRcdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldEx1bmdSZXN1bHRcIiwge1xyXG5cdFx0XHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0bmF2VG8odXJsKSB7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsOiB1cmxcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdEBpbXBvcnQgXCJAL3Njc3MvbHVuZ2luZy5zY3NzXCI7XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///157\n"); /***/ }), /* 158 */ @@ -21332,6 +21846,7 @@ var render = function () { _vm._$s("12-" + $30, "i", item.line.categories.length) ? _c( "view", + { attrs: { _i: "12-" + $30 } }, [ _c("qiunDataCharts", { attrs: { @@ -21840,70 +22355,80 @@ var render = function () { _vm._l( _vm._$s(37, "f", { forItems: _vm.CooperationUrl }), function (ite, ind, $20, $30) { - return _c( - "view", - { - key: _vm._$s(37, "f", { forIndex: $20, key: ind }), - staticClass: _vm._$s("37-" + $30, "sc", "list"), - attrs: { _i: "37-" + $30 }, - }, - [ - _c( + return _vm._$s("37-" + $30, "i", _vm.language == "zh-Hans") + ? _c( "view", { - staticClass: _vm._$s( - "38-" + $30, - "sc", - "item border-bottom" - ), - attrs: { _i: "38-" + $30 }, - on: { - click: function ($event) { - return _vm.navTo( - "/pageTwo/webview/webview?url=" + ite.url - ) - }, - }, + key: _vm._$s(37, "f", { forIndex: $20, key: ind }), + staticClass: _vm._$s("37-" + $30, "sc", "list"), + attrs: { _i: "37-" + $30 }, }, [ _c( "view", { - staticClass: _vm._$s("39-" + $30, "sc", "left"), - attrs: { _i: "39-" + $30 }, + staticClass: _vm._$s( + "38-" + $30, + "sc", + "item border-bottom" + ), + attrs: { _i: "38-" + $30 }, + on: { + click: function ($event) { + return _vm.navTo( + "/pageTwo/webview/webview?url=" + ite.url + ) + }, + }, }, [ _c( "view", { - staticClass: _vm._$s("40-" + $30, "sc", "name"), - attrs: { _i: "40-" + $30 }, + staticClass: _vm._$s("39-" + $30, "sc", "left"), + attrs: { _i: "39-" + $30 }, }, [ - _vm._v( - _vm._$s("40-" + $30, "t0-0", _vm._s(ite.title)) + _c( + "view", + { + staticClass: _vm._$s( + "40-" + $30, + "sc", + "name" + ), + attrs: { _i: "40-" + $30 }, + }, + [ + _vm._v( + _vm._$s( + "40-" + $30, + "t0-0", + _vm._s(ite.title) + ) + ), + ] ), ] ), + _c( + "view", + { + staticClass: _vm._$s("41-" + $30, "sc", "right"), + attrs: { _i: "41-" + $30 }, + }, + [ + _c("uni-icons", { + attrs: { type: "right", _i: "42-" + $30 }, + }), + ], + 1 + ), ] ), - _c( - "view", - { - staticClass: _vm._$s("41-" + $30, "sc", "right"), - attrs: { _i: "41-" + $30 }, - }, - [ - _c("uni-icons", { - attrs: { type: "right", _i: "42-" + $30 }, - }), - ], - 1 - ), ] - ), - ] - ) + ) + : _vm._e() } ), ], @@ -21949,7 +22474,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _headerIndex = _interopRequireDefault(__webpack_require__(/*! @/element/headerIndex.vue */ 48));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n token: \"\",\n user: {},\n language: \"\",\n index: 0\n };\n },\n components: {\n headerIndex: _headerIndex.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"accountNumber\", \"familayList\", \"CooperationUrl\", 'languageList'])), {}, {\n nickname: function nickname() {\n return this.accountNumber.nickname;\n },\n userList: function userList() {\n return this.familayList;\n }\n }),\n onLoad: function onLoad() {\n var that = this;\n uni.setNavigationBarTitle({\n title: that.$t('common.titleMe')\n });\n that.language = uni.getStorageSync('language');\n that.index = that.languageList.findIndex(function (ite) {\n return ite.key == that.language;\n });\n that.token = uni.getStorageSync('token');\n that.handleAccountNumber();\n },\n watch: {\n nickname: function nickname() {\n this.user = {};\n this.user = this.accountNumber;\n }\n },\n onPullDownRefresh: function onPullDownRefresh() {\n var that = this;\n that.token = uni.getStorageSync('token');\n that.handleAccountNumber();\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n methods: {\n handleAccountNumber: function handleAccountNumber() {\n var that = this;\n that.$model.getAccountNumber({}).then(function (res) {\n __f__(\"log\", \"账号信息\", res, \" at pages/my/me.vue:144\");\n if (res.code != 0) {\n that.$tools.msg(res.msg);\n return;\n }\n that.user = res.data;\n that.$store.commit('changeAccountNumber', res.data);\n }).catch(function (err) {});\n },\n handleOutLogin: function handleOutLogin() {\n var that = this;\n uni.showModal({\n title: that.$t('tips.msgTitle'),\n content: that.$t('tips.verifyOutLogin'),\n cancelText: that.$t('tips.btnSancellation'),\n confirmText: that.$t('tips.btnConfirm'),\n success: function success(res) {\n if (res.confirm) {\n that.$model.getloginOut({}).then(function (res) {\n if (res.code != 0) return;\n uni.$emit('need-login');\n });\n } else if (res.cancel) {\n that.$tools.msg(that.$t('tips.msgCancel'));\n }\n }\n });\n },\n languageClick: function languageClick(e) {\n var that = this;\n that.index = e.detail.value;\n that.language = that.languageList[that.index].key;\n that.$model.getSetLanguage({\n language: that.languageList[that.index].key\n }).then(function (res) {\n that.$i18n.locale = that.languageList[that.index].key;\n uni.setStorageSync('language', that.languageList[that.index].key);\n that.$store.commit('changeLocale', that.languageList[that.index].key);\n uni.$emit('login-sucesss');\n });\n },\n navTo: function navTo(url) {\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbXkvbWUudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJ0b2tlbiIsInVzZXIiLCJsYW5ndWFnZSIsImluZGV4IiwiY29tcG9uZW50cyIsImhlYWRlckluZGV4IiwiY29tcHV0ZWQiLCJuaWNrbmFtZSIsInVzZXJMaXN0Iiwib25Mb2FkIiwidW5pIiwidGl0bGUiLCJ0aGF0Iiwid2F0Y2giLCJvblB1bGxEb3duUmVmcmVzaCIsInNldFRpbWVvdXQiLCJtZXRob2RzIiwiaGFuZGxlQWNjb3VudE51bWJlciIsImhhbmRsZU91dExvZ2luIiwiY29udGVudCIsImNhbmNlbFRleHQiLCJjb25maXJtVGV4dCIsInN1Y2Nlc3MiLCJsYW5ndWFnZUNsaWNrIiwibmF2VG8iLCJ1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBMEZBO0FBR0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztFQUNBO0VBQ0FDLDBDQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFBQSxFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQUM7SUFDQTtJQUNBQztJQUNBQTtNQUFBO0lBQUE7SUFDQUE7SUFDQUE7RUFDQTtFQUNBQztJQUNBTjtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FPO0lBQ0E7SUFDQUY7SUFDQUE7SUFDQUc7TUFDQUw7SUFDQTtFQUNBO0VBQ0FNO0lBQ0FDO01BQ0E7TUFDQUw7UUFDQTtRQUNBO1VBQ0FBO1VBQ0E7UUFDQTtRQUNBQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQU07TUFDQTtNQUNBUjtRQUNBQztRQUNBUTtRQUNBQztRQUNBQztRQUNBQztVQUNBO1lBQ0FWO2NBQ0E7Y0FDQUY7WUFDQTtVQUNBO1lBQ0FFO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQVc7TUFDQTtNQUNBWDtNQUNBQTtNQUNBQTtRQUNBVjtNQUNBO1FBQ0FVO1FBQ0FGO1FBQ0FFO1FBQ0FGO01BQ0E7SUFDQTtJQUNBYztNQUNBZDtRQUNBZTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTY3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0PCEtLSDlpLTpg6ggLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRvcFwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9zZXR0aW5nL3NldHRpbmcnKVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRpbWdcIj5cclxuXHRcdFx0XHQ8aW1hZ2UgOnNyYz1cInVzZXIuaGVhZF9waWNcIiBjbGFzcz1cImltYWdlXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInNpemUyMCBib2xkXCI+e3t1c2VyLm5pY2tuYW1lfX08L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHRleHQgY2xhc3M9XCJ0LWljb24gdC1pY29uLWFycm93LXJpZ2h0LWJvbGRcIj48L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwid3hsaXN0IGJvcmRlclJhZGl1c1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vbXkvbWFuYWdlJylcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0gYm9yZGVyLWJvdHRvbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPnt7JHQoXCJjb21tb24udGl0bGVNYW5hZ2VcIil9fTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwicmlnaHRcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlVHdvL2hpc3RvcnkvaGlzdG9yeT9hY2RfaWQ9MicpXCIgdi1pZj1cImxhbmd1YWdlIT0gJ3poLUhhbnMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlSGlzdG9yeVwiKX19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJyaWdodFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwibGlzdFwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9idXNpbmVzcy9idXNpbmVzcycpXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlYkJ1c2luZXNzXCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgdHlwZT1cInJpZ2h0XCI+PC91bmktaWNvbnM+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vc2NvcmUvaGlzdG9yeScpXCIgdi1pZj1cImxhbmd1YWdlPT0gJ3poLUhhbnMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlU2NvcmVIaXN0b3J5XCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgdHlwZT1cInJpZ2h0XCI+PC91bmktaWNvbnM+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gI2lmZGVmIEFQUC1QTFVTIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vbXkvYWJvdXQnKVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbSBib3JkZXItYm90dG9tXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+e3skdChcImNvbW1vbi50aXRsZUFib3V0VXNcIil9fTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwicmlnaHRcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNrZXIgaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+e3skdChcImNvbW1vbi50aXRsZUxhbmd1YWdlXCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8cGlja2VyIG1vZGU9XCJzZWxlY3RvclwiIDpyYW5nZT1cImxhbmd1YWdlTGlzdFwiIDp2YWx1ZT1cImluZGV4XCIgcmFuZ2Uta2V5PVwidmFsdWVcIlxyXG5cdFx0XHRcdFx0XHRAY2hhbmdlPVwibGFuZ3VhZ2VDbGlja1wiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dFwiPnt7bGFuZ3VhZ2VMaXN0W2luZGV4XS52YWx1ZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aWNvbiBjbGFzcz1cImljb25mb250IGljb24tYXJyb3ctZG93bi1ib2xkXCI+PC9pY29uPlxyXG5cdFx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gICNlbmRpZiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCIgdi1mb3I9XCIoaXRlLGluZCkgaW4gQ29vcGVyYXRpb25VcmxcIiA6a2V5PVwiaW5kXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vd2Vidmlldy93ZWJ2aWV3P3VybD0nICsgaXRlLnVybClcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57e2l0ZS50aXRsZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJyaWdodFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJidG4gbWItMTVcIiB2LWlmPVwidG9rZW5cIiBAY2xpY2s9XCJoYW5kbGVPdXRMb2dpblwiPnt7JHQoXCJjb21tb24uYnRuTG9nT3V0XCIpfX08L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0bWFwU3RhdGVcclxuXHR9IGZyb20gXCJ2dWV4XCI7XHJcblx0aW1wb3J0IGhlYWRlckluZGV4IGZyb20gXCJAL2VsZW1lbnQvaGVhZGVySW5kZXgudnVlXCJcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHRva2VuOiBcIlwiLFxyXG5cdFx0XHRcdHVzZXI6IHt9LFxyXG5cdFx0XHRcdGxhbmd1YWdlOiBcIlwiLFxyXG5cdFx0XHRcdGluZGV4OiAwLFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcG9uZW50czoge1xyXG5cdFx0XHRoZWFkZXJJbmRleFxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC4uLm1hcFN0YXRlKFtcImFjY291bnROdW1iZXJcIiwgXCJmYW1pbGF5TGlzdFwiLCBcIkNvb3BlcmF0aW9uVXJsXCIsICdsYW5ndWFnZUxpc3QnXSksXHJcblx0XHRcdG5pY2tuYW1lKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmFjY291bnROdW1iZXIubmlja25hbWVcclxuXHRcdFx0fSxcclxuXHRcdFx0dXNlckxpc3QoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZmFtaWxheUxpc3RcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHVuaS5zZXROYXZpZ2F0aW9uQmFyVGl0bGUoe1xyXG5cdFx0XHRcdHRpdGxlOiB0aGF0LiR0KCdjb21tb24udGl0bGVNZScpXHJcblx0XHRcdH0pXHJcblx0XHRcdHRoYXQubGFuZ3VhZ2UgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2xhbmd1YWdlJylcclxuXHRcdFx0dGhhdC5pbmRleCA9IHRoYXQubGFuZ3VhZ2VMaXN0LmZpbmRJbmRleChpdGUgPT4gaXRlLmtleSA9PSB0aGF0Lmxhbmd1YWdlKVxyXG5cdFx0XHR0aGF0LnRva2VuID0gdW5pLmdldFN0b3JhZ2VTeW5jKCd0b2tlbicpXHJcblx0XHRcdHRoYXQuaGFuZGxlQWNjb3VudE51bWJlcigpXHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0bmlja25hbWUoKSB7XHJcblx0XHRcdFx0dGhpcy51c2VyID0ge31cclxuXHRcdFx0XHR0aGlzLnVzZXIgPSB0aGlzLmFjY291bnROdW1iZXJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uUHVsbERvd25SZWZyZXNoKCkge1xyXG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0dGhhdC50b2tlbiA9IHVuaS5nZXRTdG9yYWdlU3luYygndG9rZW4nKVxyXG5cdFx0XHR0aGF0LmhhbmRsZUFjY291bnROdW1iZXIoKVxyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR1bmkuc3RvcFB1bGxEb3duUmVmcmVzaCgpXHJcblx0XHRcdH0sIDEwMDApO1xyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0aGFuZGxlQWNjb3VudE51bWJlcigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR0aGF0LiRtb2RlbC5nZXRBY2NvdW50TnVtYmVyKHt9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIui0puWPt+S/oeaBr1wiLCByZXMpXHJcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgIT0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2cocmVzLm1zZylcclxuXHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGF0LnVzZXIgPSByZXMuZGF0YVxyXG5cdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KCdjaGFuZ2VBY2NvdW50TnVtYmVyJywgcmVzLmRhdGEpXHJcblx0XHRcdFx0fSkuY2F0Y2goZXJyID0+IHt9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVPdXRMb2dpbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkuc2hvd01vZGFsKHtcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGF0LiR0KCd0aXBzLm1zZ1RpdGxlJyksXHJcblx0XHRcdFx0XHRjb250ZW50OiB0aGF0LiR0KCd0aXBzLnZlcmlmeU91dExvZ2luJyksXHJcblx0XHRcdFx0XHRjYW5jZWxUZXh0OiB0aGF0LiR0KCd0aXBzLmJ0blNhbmNlbGxhdGlvbicpLFxyXG5cdFx0XHRcdFx0Y29uZmlybVRleHQ6IHRoYXQuJHQoJ3RpcHMuYnRuQ29uZmlybScpLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdGlmIChyZXMuY29uZmlybSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuJG1vZGVsLmdldGxvZ2luT3V0KHt9KS50aGVuKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuY29kZSAhPSAwKSByZXR1cm5cclxuXHRcdFx0XHRcdFx0XHRcdHVuaS4kZW1pdCgnbmVlZC1sb2dpbicpO1xyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocmVzLmNhbmNlbCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuJHRvb2xzLm1zZyh0aGF0LiR0KCd0aXBzLm1zZ0NhbmNlbCcpKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRsYW5ndWFnZUNsaWNrKGUpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR0aGF0LmluZGV4ID0gZS5kZXRhaWwudmFsdWVcclxuXHRcdFx0XHR0aGF0Lmxhbmd1YWdlID0gdGhhdC5sYW5ndWFnZUxpc3RbdGhhdC5pbmRleF0ua2V5XHJcblx0XHRcdFx0dGhhdC4kbW9kZWwuZ2V0U2V0TGFuZ3VhZ2Uoe1xyXG5cdFx0XHRcdFx0bGFuZ3VhZ2U6IHRoYXQubGFuZ3VhZ2VMaXN0W3RoYXQuaW5kZXhdLmtleSxcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LiRpMThuLmxvY2FsZSA9IHRoYXQubGFuZ3VhZ2VMaXN0W3RoYXQuaW5kZXhdLmtleVxyXG5cdFx0XHRcdFx0dW5pLnNldFN0b3JhZ2VTeW5jKCdsYW5ndWFnZScsIHRoYXQubGFuZ3VhZ2VMaXN0W3RoYXQuaW5kZXhdLmtleSlcclxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdCgnY2hhbmdlTG9jYWxlJywgdGhhdC5sYW5ndWFnZUxpc3RbdGhhdC5pbmRleF0ua2V5KVxyXG5cdFx0XHRcdFx0dW5pLiRlbWl0KCdsb2dpbi1zdWNlc3NzJyk7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0bmF2VG8odXJsKSB7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xyXG5cdFx0XHRcdFx0dXJsXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG5cdC5jb250ZW50IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGM0Y0RjY7XHJcblx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0fVxyXG5cclxuXHQudG9wIHtcclxuXHRcdGhlaWdodDogYXV0bztcclxuXHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuXHRcdC5oZWFkaW1nIHtcclxuXHRcdFx0d2lkdGg6IDgwJTtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHRcdHZpZXcge1xyXG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSA3MHB4KTtcclxuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpbWFnZSB7XHJcblx0XHRcdHdpZHRoOiA2MHB4O1xyXG5cdFx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Lnd4bGlzdCB7XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdC5pdGVtIHtcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdGZvbnQtc2l6ZTogMzJycHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiA0NXB4O1xyXG5cdFx0XHRoZWlnaHQ6IDQ1cHg7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdG1hcmdpbi10b3A6IDE1cHg7XHJcblx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XHJcblx0XHRcdHBhZGRpbmc6IDAgMTBweDtcclxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRcdFx0LmxlZnQge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmhyZWYge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0Y29sb3I6ICMwMDA7XHJcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0fVxyXG5cclxuXHQuYnRuIHtcclxuXHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0YmFja2dyb3VuZDogJGJ0bmNvbG9yO1xyXG5cdFx0bWFyZ2luOiA1MHB4IDE1cHggMCAxNXB4O1xyXG5cdH1cclxuXHJcblx0L2RlZXAvcGlja2VyIHtcclxuXHRcdHdpZHRoOiA1MCU7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0LnVuaS1pbnB1dCB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5pY29uZm9udCB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0cmlnaHQ6IC0xcHg7XHJcblx0XHRcdHRvcDogM3B4O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///167\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nvar _headerIndex = _interopRequireDefault(__webpack_require__(/*! @/element/headerIndex.vue */ 48));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n data: function data() {\n return {\n token: \"\",\n user: {},\n language: \"\",\n index: 0\n };\n },\n components: {\n headerIndex: _headerIndex.default\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"accountNumber\", \"familayList\", \"CooperationUrl\", 'languageList'])), {}, {\n nickname: function nickname() {\n return this.accountNumber.nickname;\n },\n userList: function userList() {\n return this.familayList;\n }\n }),\n onLoad: function onLoad() {\n var that = this;\n uni.setNavigationBarTitle({\n title: that.$t('common.titleMe')\n });\n that.language = uni.getStorageSync('language');\n that.index = that.languageList.findIndex(function (ite) {\n return ite.key == that.language;\n });\n that.token = uni.getStorageSync('token');\n that.handleAccountNumber();\n },\n watch: {\n nickname: function nickname() {\n this.user = {};\n this.user = this.accountNumber;\n }\n },\n onPullDownRefresh: function onPullDownRefresh() {\n var that = this;\n that.token = uni.getStorageSync('token');\n that.handleAccountNumber();\n setTimeout(function () {\n uni.stopPullDownRefresh();\n }, 1000);\n },\n methods: {\n handleAccountNumber: function handleAccountNumber() {\n var that = this;\n that.$model.getAccountNumber({}).then(function (res) {\n __f__(\"log\", \"账号信息\", res, \" at pages/my/me.vue:145\");\n if (res.code != 0) {\n that.$tools.msg(res.msg);\n return;\n }\n that.user = res.data;\n that.$store.commit('changeAccountNumber', res.data);\n }).catch(function (err) {});\n },\n handleOutLogin: function handleOutLogin() {\n var that = this;\n uni.showModal({\n title: that.$t('tips.msgTitle'),\n content: that.$t('tips.verifyOutLogin'),\n cancelText: that.$t('tips.btnSancellation'),\n confirmText: that.$t('tips.btnConfirm'),\n success: function success(res) {\n if (res.confirm) {\n that.$model.getloginOut({}).then(function (res) {\n if (res.code != 0) return;\n uni.$emit('need-login');\n });\n } else if (res.cancel) {\n that.$tools.msg(that.$t('tips.msgCancel'));\n }\n }\n });\n },\n languageClick: function languageClick(e) {\n var that = this;\n that.index = e.detail.value;\n that.language = that.languageList[that.index].key;\n that.$model.getSetLanguage({\n language: that.languageList[that.index].key\n }).then(function (res) {\n that.$i18n.locale = that.languageList[that.index].key;\n uni.setStorageSync('language', that.languageList[that.index].key);\n that.$store.commit('changeLocale', that.languageList[that.index].key);\n uni.$emit('login-sucesss');\n });\n },\n navTo: function navTo(url) {\n uni.navigateTo({\n url: url\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbXkvbWUudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJ0b2tlbiIsInVzZXIiLCJsYW5ndWFnZSIsImluZGV4IiwiY29tcG9uZW50cyIsImhlYWRlckluZGV4IiwiY29tcHV0ZWQiLCJuaWNrbmFtZSIsInVzZXJMaXN0Iiwib25Mb2FkIiwidW5pIiwidGl0bGUiLCJ0aGF0Iiwid2F0Y2giLCJvblB1bGxEb3duUmVmcmVzaCIsInNldFRpbWVvdXQiLCJtZXRob2RzIiwiaGFuZGxlQWNjb3VudE51bWJlciIsImhhbmRsZU91dExvZ2luIiwiY29udGVudCIsImNhbmNlbFRleHQiLCJjb25maXJtVGV4dCIsInN1Y2Nlc3MiLCJsYW5ndWFnZUNsaWNrIiwibmF2VG8iLCJ1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBMkZBO0FBR0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztFQUNBO0VBQ0FDLDBDQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFBQSxFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQUM7SUFDQTtJQUNBQztJQUNBQTtNQUFBO0lBQUE7SUFDQUE7SUFDQUE7RUFDQTtFQUNBQztJQUNBTjtNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FPO0lBQ0E7SUFDQUY7SUFDQUE7SUFDQUc7TUFDQUw7SUFDQTtFQUNBO0VBQ0FNO0lBQ0FDO01BQ0E7TUFDQUw7UUFDQTtRQUNBO1VBQ0FBO1VBQ0E7UUFDQTtRQUNBQTtRQUNBQTtNQUNBO0lBQ0E7SUFDQU07TUFDQTtNQUNBUjtRQUNBQztRQUNBUTtRQUNBQztRQUNBQztRQUNBQztVQUNBO1lBQ0FWO2NBQ0E7Y0FDQUY7WUFDQTtVQUNBO1lBQ0FFO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQVc7TUFDQTtNQUNBWDtNQUNBQTtNQUNBQTtRQUNBVjtNQUNBO1FBQ0FVO1FBQ0FGO1FBQ0FFO1FBQ0FGO01BQ0E7SUFDQTtJQUNBYztNQUNBZDtRQUNBZTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTY3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGVudFwiPlxyXG5cdFx0PCEtLSDlpLTpg6ggLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRvcFwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9zZXR0aW5nL3NldHRpbmcnKVwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImhlYWRpbWdcIj5cclxuXHRcdFx0XHQ8aW1hZ2UgOnNyYz1cInVzZXIuaGVhZF9waWNcIiBjbGFzcz1cImltYWdlXCI+PC9pbWFnZT5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cInNpemUyMCBib2xkXCI+e3t1c2VyLm5pY2tuYW1lfX08L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHRleHQgY2xhc3M9XCJ0LWljb24gdC1pY29uLWFycm93LXJpZ2h0LWJvbGRcIj48L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICAtLT5cclxuXHRcdDx2aWV3IGNsYXNzPVwid3hsaXN0IGJvcmRlclJhZGl1c1wiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vbXkvbWFuYWdlJylcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0gYm9yZGVyLWJvdHRvbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPnt7JHQoXCJjb21tb24udGl0bGVNYW5hZ2VcIil9fTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwicmlnaHRcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCIgQGNsaWNrPVwibmF2VG8oJy9wYWdlVHdvL2hpc3RvcnkvaGlzdG9yeT9hY2RfaWQ9MicpXCIgdi1pZj1cImxhbmd1YWdlIT0gJ3poLUhhbnMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlSGlzdG9yeVwiKX19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJyaWdodFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8IS0tIDx2aWV3IGNsYXNzPVwibGlzdFwiIEBjbGljaz1cIm5hdlRvKCcvcGFnZVR3by9idXNpbmVzcy9idXNpbmVzcycpXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlYkJ1c2luZXNzXCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgdHlwZT1cInJpZ2h0XCI+PC91bmktaWNvbnM+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+IC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vc2NvcmUvaGlzdG9yeScpXCIgdi1pZj1cImxhbmd1YWdlPT0gJ3poLUhhbnMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57eyR0KFwiY29tbW9uLnRpdGxlU2NvcmVIaXN0b3J5XCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XHJcblx0XHRcdFx0XHRcdDx1bmktaWNvbnMgdHlwZT1cInJpZ2h0XCI+PC91bmktaWNvbnM+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gI2lmZGVmIEFQUC1QTFVTIC0tPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vbXkvYWJvdXQnKVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbSBib3JkZXItYm90dG9tXCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+e3skdChcImNvbW1vbi50aXRsZUFib3V0VXNcIil9fTwvdmlldz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cclxuXHRcdFx0XHRcdFx0PHVuaS1pY29ucyB0eXBlPVwicmlnaHRcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwaWNrZXIgaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+e3skdChcImNvbW1vbi50aXRsZUxhbmd1YWdlXCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0XHQ8cGlja2VyIG1vZGU9XCJzZWxlY3RvclwiIDpyYW5nZT1cImxhbmd1YWdlTGlzdFwiIDp2YWx1ZT1cImluZGV4XCIgcmFuZ2Uta2V5PVwidmFsdWVcIlxyXG5cdFx0XHRcdFx0XHRAY2hhbmdlPVwibGFuZ3VhZ2VDbGlja1wiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1pbnB1dFwiPnt7bGFuZ3VhZ2VMaXN0W2luZGV4XS52YWx1ZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8aWNvbiBjbGFzcz1cImljb25mb250IGljb24tYXJyb3ctZG93bi1ib2xkXCI+PC9pY29uPlxyXG5cdFx0XHRcdFx0PC9waWNrZXI+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwhLS0gICNlbmRpZiAtLT5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0XCIgdi1mb3I9XCIoaXRlLGluZCkgaW4gQ29vcGVyYXRpb25VcmxcIiA6a2V5PVwiaW5kXCIgdi1pZj1cImxhbmd1YWdlPT0gJ3poLUhhbnMnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtIGJvcmRlci1ib3R0b21cIiBAY2xpY2s9XCJuYXZUbygnL3BhZ2VUd28vd2Vidmlldy93ZWJ2aWV3P3VybD0nICsgaXRlLnVybClcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj57e2l0ZS50aXRsZX19PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dW5pLWljb25zIHR5cGU9XCJyaWdodFwiPjwvdW5pLWljb25zPlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiYnRuIG1iLTE1XCIgdi1pZj1cInRva2VuXCIgQGNsaWNrPVwiaGFuZGxlT3V0TG9naW5cIj57eyR0KFwiY29tbW9uLmJ0bkxvZ091dFwiKX19PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHtcclxuXHRcdG1hcFN0YXRlXHJcblx0fSBmcm9tIFwidnVleFwiO1xyXG5cdGltcG9ydCBoZWFkZXJJbmRleCBmcm9tIFwiQC9lbGVtZW50L2hlYWRlckluZGV4LnZ1ZVwiXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHR0b2tlbjogXCJcIixcclxuXHRcdFx0XHR1c2VyOiB7fSxcclxuXHRcdFx0XHRsYW5ndWFnZTogXCJcIixcclxuXHRcdFx0XHRpbmRleDogMCxcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXBvbmVudHM6IHtcclxuXHRcdFx0aGVhZGVySW5kZXhcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHQuLi5tYXBTdGF0ZShbXCJhY2NvdW50TnVtYmVyXCIsIFwiZmFtaWxheUxpc3RcIiwgXCJDb29wZXJhdGlvblVybFwiLCAnbGFuZ3VhZ2VMaXN0J10pLFxyXG5cdFx0XHRuaWNrbmFtZSgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5hY2NvdW50TnVtYmVyLm5pY2tuYW1lXHJcblx0XHRcdH0sXHJcblx0XHRcdHVzZXJMaXN0KCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZhbWlsYXlMaXN0XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQoKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHR1bmkuc2V0TmF2aWdhdGlvbkJhclRpdGxlKHtcclxuXHRcdFx0XHR0aXRsZTogdGhhdC4kdCgnY29tbW9uLnRpdGxlTWUnKVxyXG5cdFx0XHR9KVxyXG5cdFx0XHR0aGF0Lmxhbmd1YWdlID0gdW5pLmdldFN0b3JhZ2VTeW5jKCdsYW5ndWFnZScpXHJcblx0XHRcdHRoYXQuaW5kZXggPSB0aGF0Lmxhbmd1YWdlTGlzdC5maW5kSW5kZXgoaXRlID0+IGl0ZS5rZXkgPT0gdGhhdC5sYW5ndWFnZSlcclxuXHRcdFx0dGhhdC50b2tlbiA9IHVuaS5nZXRTdG9yYWdlU3luYygndG9rZW4nKVxyXG5cdFx0XHR0aGF0LmhhbmRsZUFjY291bnROdW1iZXIoKVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdG5pY2tuYW1lKCkge1xyXG5cdFx0XHRcdHRoaXMudXNlciA9IHt9XHJcblx0XHRcdFx0dGhpcy51c2VyID0gdGhpcy5hY2NvdW50TnVtYmVyXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblB1bGxEb3duUmVmcmVzaCgpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHRoYXQudG9rZW4gPSB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3Rva2VuJylcclxuXHRcdFx0dGhhdC5oYW5kbGVBY2NvdW50TnVtYmVyKClcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dW5pLnN0b3BQdWxsRG93blJlZnJlc2goKVxyXG5cdFx0XHR9LCAxMDAwKTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdGhhbmRsZUFjY291bnROdW1iZXIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC4kbW9kZWwuZ2V0QWNjb3VudE51bWJlcih7fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLotKblj7fkv6Hmga9cIiwgcmVzKVxyXG5cdFx0XHRcdFx0aWYgKHJlcy5jb2RlICE9IDApIHtcclxuXHRcdFx0XHRcdFx0dGhhdC4kdG9vbHMubXNnKHJlcy5tc2cpXHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhhdC51c2VyID0gcmVzLmRhdGFcclxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdCgnY2hhbmdlQWNjb3VudE51bWJlcicsIHJlcy5kYXRhKVxyXG5cdFx0XHRcdH0pLmNhdGNoKGVyciA9PiB7fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0aGFuZGxlT3V0TG9naW4oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHR0aXRsZTogdGhhdC4kdCgndGlwcy5tc2dUaXRsZScpLFxyXG5cdFx0XHRcdFx0Y29udGVudDogdGhhdC4kdCgndGlwcy52ZXJpZnlPdXRMb2dpbicpLFxyXG5cdFx0XHRcdFx0Y2FuY2VsVGV4dDogdGhhdC4kdCgndGlwcy5idG5TYW5jZWxsYXRpb24nKSxcclxuXHRcdFx0XHRcdGNvbmZpcm1UZXh0OiB0aGF0LiR0KCd0aXBzLmJ0bkNvbmZpcm0nKSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LiRtb2RlbC5nZXRsb2dpbk91dCh7fSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzLmNvZGUgIT0gMCkgcmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0XHR1bmkuJGVtaXQoJ25lZWQtbG9naW4nKTtcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHJlcy5jYW5jZWwpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2codGhhdC4kdCgndGlwcy5tc2dDYW5jZWwnKSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0bGFuZ3VhZ2VDbGljayhlKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC5pbmRleCA9IGUuZGV0YWlsLnZhbHVlXHJcblx0XHRcdFx0dGhhdC5sYW5ndWFnZSA9IHRoYXQubGFuZ3VhZ2VMaXN0W3RoYXQuaW5kZXhdLmtleVxyXG5cdFx0XHRcdHRoYXQuJG1vZGVsLmdldFNldExhbmd1YWdlKHtcclxuXHRcdFx0XHRcdGxhbmd1YWdlOiB0aGF0Lmxhbmd1YWdlTGlzdFt0aGF0LmluZGV4XS5rZXksXHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdC4kaTE4bi5sb2NhbGUgPSB0aGF0Lmxhbmd1YWdlTGlzdFt0aGF0LmluZGV4XS5rZXlcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYygnbGFuZ3VhZ2UnLCB0aGF0Lmxhbmd1YWdlTGlzdFt0aGF0LmluZGV4XS5rZXkpXHJcblx0XHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoJ2NoYW5nZUxvY2FsZScsIHRoYXQubGFuZ3VhZ2VMaXN0W3RoYXQuaW5kZXhdLmtleSlcclxuXHRcdFx0XHRcdHVuaS4kZW1pdCgnbG9naW4tc3VjZXNzcycpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdG5hdlRvKHVybCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZVRvKHtcclxuXHRcdFx0XHRcdHVybFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuXHQuY29udGVudCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGNEY2O1xyXG5cdFx0cGFkZGluZzogMTVweDtcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdH1cclxuXHJcblx0LnRvcCB7XHJcblx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcblx0XHQuaGVhZGltZyB7XHJcblx0XHRcdHdpZHRoOiA4MCU7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdFx0XHR2aWV3IHtcclxuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gNzBweCk7XHJcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aW1hZ2Uge1xyXG5cdFx0XHR3aWR0aDogNjBweDtcclxuXHRcdFx0aGVpZ2h0OiA2MHB4O1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC53eGxpc3Qge1xyXG5cdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHQuaXRlbSB7XHJcblx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0XHRmb250LXNpemU6IDMycnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDogNDVweDtcclxuXHRcdFx0aGVpZ2h0OiA0NXB4O1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRtYXJnaW4tdG9wOiAxNXB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdFx0XHRwYWRkaW5nOiAwIDEwcHg7XHJcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHJcblx0XHRcdC5sZWZ0IHtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ocmVmIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGNvbG9yOiAjMDAwO1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cdH1cclxuXHJcblx0LmJ0biB7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHRcdGJhY2tncm91bmQ6ICRidG5jb2xvcjtcclxuXHRcdG1hcmdpbjogNTBweCAxNXB4IDAgMTVweDtcclxuXHR9XHJcblxyXG5cdC9kZWVwL3BpY2tlciB7XHJcblx0XHR3aWR0aDogNTAlO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdC51bmktaW5wdXQge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHRcdH1cclxuXHJcblx0XHQuaWNvbmZvbnQge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHJpZ2h0OiAtMXB4O1xyXG5cdFx0XHR0b3A6IDNweDtcclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///167\n"); /***/ }), /* 168 */ @@ -22097,6 +22622,7 @@ var render = function () { _vm._$s(10, "i", _vm.selectllist.length) ? _c( "view", + { attrs: { _i: 10 } }, [ _vm._l( _vm._$s(11, "f", { forItems: _vm.selectllist }), @@ -25031,6 +25557,7 @@ var render = function () { _vm._$s(16, "i", _vm.handTrue) ? _c( "view", + { attrs: { _i: 16 } }, [ _c("qiunDataCharts", { attrs: { @@ -26146,44 +26673,52 @@ var render = function () { ]), ]), _vm._$s("11-" + $30, "i", item.v2) - ? _c("view", [ - _vm._v( - _vm._$s( - "11-" + $30, - "t0-0", - _vm._s(item.v2) - ) - ), - _c("text", [ + ? _c( + "view", + { attrs: { _i: "11-" + $30 } }, + [ _vm._v( _vm._$s( - "12-" + $30, + "11-" + $30, "t0-0", - _vm._s(item.v2_name) + _vm._s(item.v2) ) ), - ]), - ]) + _c("text", [ + _vm._v( + _vm._$s( + "12-" + $30, + "t0-0", + _vm._s(item.v2_name) + ) + ), + ]), + ] + ) : _vm._e(), _vm._$s("13-" + $30, "i", item.v3) - ? _c("view", [ - _vm._v( - _vm._$s( - "13-" + $30, - "t0-0", - _vm._s(item.v3) - ) - ), - _c("text", [ + ? _c( + "view", + { attrs: { _i: "13-" + $30 } }, + [ _vm._v( _vm._$s( - "14-" + $30, + "13-" + $30, "t0-0", - _vm._s(item.v3_name) + _vm._s(item.v3) ) ), - ]), - ]) + _c("text", [ + _vm._v( + _vm._$s( + "14-" + $30, + "t0-0", + _vm._s(item.v3_name) + ) + ), + ]), + ] + ) : _vm._e(), _vm._$s("15-" + $30, "i", _vm.acd_id != 6) ? _c("uni-icons", { @@ -27022,7 +27557,7 @@ var render = function () { ]), ]), _vm._$s("10-" + $30, "i", item.v2) - ? _c("view", [ + ? _c("view", { attrs: { _i: "10-" + $30 } }, [ _vm._v( _vm._$s( "10-" + $30, @@ -27042,7 +27577,7 @@ var render = function () { ]) : _vm._e(), _vm._$s("12-" + $30, "i", item.v3) - ? _c("view", [ + ? _c("view", { attrs: { _i: "12-" + $30 } }, [ _vm._v( _vm._$s( "12-" + $30, @@ -27137,7 +27672,7 @@ var render = function () { ]), ]), _vm._$s("20-" + $31, "i", ite.v2) - ? _c("view", [ + ? _c("view", { attrs: { _i: "20-" + $31 } }, [ _vm._v( _vm._$s( "20-" + $31, @@ -27157,7 +27692,7 @@ var render = function () { ]) : _vm._e(), _vm._$s("22-" + $31, "i", ite.v3) - ? _c("view", [ + ? _c("view", { attrs: { _i: "22-" + $31 } }, [ _vm._v( _vm._$s( "22-" + $31, @@ -27721,7 +28256,7 @@ var render = function () { ), ]), _vm._$s(15, "i", Number(_vm.memInfo.weightdiff) > 0) - ? _c("text", [ + ? _c("text", { attrs: { _i: 15 } }, [ _vm._v( _vm._$s( 15, @@ -27730,7 +28265,7 @@ var render = function () { ) ), ]) - : _c("text", [ + : _c("text", { attrs: { _i: 16 } }, [ _vm._v( _vm._$s( 16, @@ -27759,7 +28294,7 @@ var render = function () { ), ]), _vm._$s(19, "i", Number(_vm.memInfo.fat_wdiff) > 0) - ? _c("text", [ + ? _c("text", { attrs: { _i: 19 } }, [ _vm._v( _vm._$s( 19, @@ -27768,7 +28303,7 @@ var render = function () { ) ), ]) - : _c("text", [ + : _c("text", { attrs: { _i: 20 } }, [ _vm._v( _vm._$s( 20, @@ -27893,7 +28428,7 @@ var render = function () { ite.diffval == "0.00" || ite.diffval == "00:00:00" ) - ? _c("text", [ + ? _c("text", { attrs: { _i: "37-" + $30 } }, [ _vm._v( _vm._$s( "37-" + $30, @@ -29808,7 +30343,7 @@ var render = function () { ), ] ) - : _c("view", [ + : _c("view", { attrs: { _i: 17 } }, [ _vm._v(_vm._$s(17, "t0-0", _vm._s(_vm.$t("index.none")))), ]), ] @@ -32230,7 +32765,7 @@ var render = function () { { staticClass: _vm._$s(6, "sc", "text_r"), attrs: { _i: 6 } }, [ _vm._$s(7, "i", !_vm.isEdit) - ? _c("text", [ + ? _c("text", { attrs: { _i: 7 } }, [ _vm._v(_vm._$s(7, "t0-0", _vm._s(_vm.user.nickname))), ]) : _c("input", { @@ -33507,7 +34042,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar myTime;\nvar _default = {\n data: function data() {\n return {\n text: \"\",\n weight: \"\",\n height: \"\",\n height2: \"\",\n deviceId: \"\",\n macAddr: \"\",\n write: \"\",\n notify: \"\",\n unit: \"cm\",\n Unload: false,\n isHeight: false,\n isConnection: 0,\n isdevice: false,\n textLink: \"\"\n };\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"user\", \"isConnected\", \"isBluetoothTyle\"])), {}, {\n userInfo: function userInfo() {\n return this.user;\n }\n }),\n onUnload: function onUnload() {\n var that = this;\n if (!that.Unload) {\n clearTimeout(myTime);\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n __f__(\"log\", \"页面返回onUnload\", \" at pageTwo/devices/G02.vue:71\");\n }\n },\n onLoad: function onLoad(options) {\n var that = this;\n that.weight = that.userInfo.weight;\n that.deviceId = options.deviceId;\n that.createBLEConnection();\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n var text = that.$t(\"linkBluetooth.deviceDisconnection\");\n that.$tools.showModal(text);\n }\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n var text = that.$t(\"linkBluetooth.offBluetooth\");\n that.$tools.showModal(text);\n }\n }\n },\n methods: {\n // 连接蓝牙\n createBLEConnection: function createBLEConnection() {\n var that = this;\n uni.createBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetooth\");\n setTimeout(function () {\n that.getBLEDeviceServices();\n }, 1000);\n },\n fail: function fail(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothFail\");\n __f__(\"log\", \"设备连接失败,请重新连接\", res, that.deviceId, \" at pageTwo/devices/G02.vue:114\");\n }\n });\n },\n /**\n * 获取设备的UUID\n */\n getBLEDeviceServices: function getBLEDeviceServices() {\n var serviceList = [];\n var that = this;\n uni.getBLEDeviceServices({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", \"获取设备的UUID成功\", res, that.deviceId, \" at pageTwo/devices/G02.vue:127\");\n serviceList = res.services;\n for (var i = 0; i < serviceList.length; i++) {\n var service = serviceList[i];\n if (service.uuid.indexOf(\"FFF0\") != -1) {\n that.serviceId = service.uuid;\n that.getBLEDeviceCharacteristics();\n __f__(\"log\", \"设备的FFE0的serviceId: \" + that.serviceId, \" at pageTwo/devices/G02.vue:134\");\n break;\n }\n }\n },\n fail: function fail(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothFail\");\n __f__(\"log\", '获取设备的UUID失败:', res, \" at pageTwo/devices/G02.vue:141\");\n }\n });\n },\n /**\n * 获取指定服务的特征值\n */\n getBLEDeviceCharacteristics: function getBLEDeviceCharacteristics() {\n var that = this;\n uni.getBLEDeviceCharacteristics({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n success: function success(res) {\n // * 读read: true, //,写write: true, //,通知notify: true\n for (var i = 0; i < res.characteristics.length; i++) {\n var item = res.characteristics[i];\n if (item.uuid.indexOf('0000FFF1') != -1) {\n that.notify = item.uuid;\n } else if (item.uuid.indexOf('0000FFF2') != -1) {\n that.write = item.uuid;\n }\n }\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothSuccess\");\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n state: true\n });\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n state: true\n });\n that.notifyBLECharacteristicValue();\n },\n fail: function fail(res) {\n __f__(\"log\", '获取特征值失败:', JSON.stringify(res), \" at pageTwo/devices/G02.vue:179\");\n }\n });\n },\n // 接收蓝牙数据\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n var data = parseInt(value.substring(7, 10), 16);\n var unit = parseInt(value.substring(10, 12));\n var digit = parseInt(value.substring(12, 14));\n if (digit == \"1\") {\n data = data / 10;\n }\n if (digit == \"2\") {\n data = data / 100;\n }\n if (unit == \"0\") {\n that.unit = \"cm\";\n }\n if (unit == \"1\") {\n that.unit = \"inch\";\n }\n if (unit == \"2\") {\n that.unit = \"ft\";\n }\n if (Number(data) < 20) {\n that.text = that.$t(\"linkBluetooth.errorOperation\");\n } else {\n if (unit == \"2\") {\n var data1 = data / 12;\n var data2 = Number(data1 - Math.floor(data1)) * 12;\n that.height2 = data;\n that.height = Math.floor(data1) + \"'\" + data2.toFixed(1);\n } else {\n that.height2 = data;\n that.height = data;\n }\n that.text = that.$t(\"linkBluetooth.heightText\") + that.height + that.unit;\n that.isHeight = true;\n }\n __f__(\"log\", \"G02\", value, unit, data, that.height, that.height2, \" at pageTwo/devices/G02.vue:227\");\n });\n },\n fail: function fail(res) {\n __f__(\"log\", \"测量失败\", res.value, \" at pageTwo/devices/G02.vue:231\");\n }\n });\n },\n // 保存测量结果\n handleGetMeasure: function handleGetMeasure() {\n var that = this;\n var height = 0;\n if (!that.weight) {\n that.$tools.msg(that.$t(\"tips.verifyWeight\"));\n return;\n }\n if (that.unit == 'ft') {\n height = Number(that.height2 * 2.54).toFixed(2);\n } else {\n height = that.height2;\n }\n __f__(\"log\", \"提交身高\", height, \" at pageTwo/devices/G02.vue:248\");\n that.$model.getmeasurefunit({\n adc: 0,\n weight: that.weight,\n height: height,\n aud_id: that.userInfo.id\n }).then(function (res) {\n that.isHeight = false;\n if (res.code == 0) {\n that.$store.dispatch(\"getResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n that.$store.dispatch('getUserInfo', {\n aud_id: uni.getStorageSync('userid')\n });\n that.$tools.msg(that.$t(\"tips.msgSuccess\"));\n } else {\n that.$tools.msg(that.$t(\"tips.msgFail\"));\n }\n that.Unload = true;\n uni.switchTab({\n url: \"/pages/home/home\"\n });\n setTimeout(function () {\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n }, 500);\n });\n },\n handleHeight: function handleHeight() {\n var that = this;\n that.height = \"\";\n that.text = \"\";\n that.isHeight = false;\n // let j = Number(2 + 3).toString(16)\n // let str = \"5A0203\" + j.substr(j.length - 2, 2)\n // let buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function(h) {\n // \treturn parseInt(h, 16)\n // }))\n // uni.writeBLECharacteristicValue({\n // \tdeviceId: that.deviceId,\n // \tserviceId: that.serviceId,\n // \tcharacteristicId: that.write,\n // \tvalue: buf.buffer,\n // \tsuccess: res => {\n\n // \t\tconsole.log('下发指令成功', res.errMsg)\n // \t},\n // \tfail: res => {\n // \t\tconsole.log(\"下发指令失败\", res);\n // \t},\n // })\n },\n // 监听蓝牙连接状态\n onBLEConnectionStateChange: function onBLEConnectionStateChange() {\n var that = this;\n uni.onBLEConnectionStateChange(function (res) {\n __f__(\"log\", \"监听蓝牙连接状态\", res.connected, \" at pageTwo/devices/G02.vue:305\");\n that.$store.commit(\"changeConnected\", res.connected);\n });\n },\n /**\n * 断开蓝牙模块\n */\n closeBluetoothAdapter: function closeBluetoothAdapter() {\n var that = this;\n uni.closeBluetoothAdapter({\n success: function success(res) {\n __f__(\"log\", '蓝牙模块关闭成功', \" at pageTwo/devices/G02.vue:316\");\n }\n });\n },\n /**\n * 断开蓝牙连接\n */\n closeBLEConnection: function closeBLEConnection() {\n var that = this;\n uni.closeBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", '断开蓝牙连接成功', \" at pageTwo/devices/G02.vue:328\");\n that.$store.commit(\"changeConnected\", false);\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZVR3by9kZXZpY2VzL0cwMi52dWUiXSwibmFtZXMiOlsiZGF0YSIsInRleHQiLCJ3ZWlnaHQiLCJoZWlnaHQiLCJoZWlnaHQyIiwiZGV2aWNlSWQiLCJtYWNBZGRyIiwid3JpdGUiLCJub3RpZnkiLCJ1bml0IiwiVW5sb2FkIiwiaXNIZWlnaHQiLCJpc0Nvbm5lY3Rpb24iLCJpc2RldmljZSIsInRleHRMaW5rIiwiY29tcHV0ZWQiLCJ1c2VySW5mbyIsIm9uVW5sb2FkIiwiY2xlYXJUaW1lb3V0IiwidGhhdCIsIm9uTG9hZCIsInVuaSIsIndhdGNoIiwiaXNDb25uZWN0ZWQiLCJpc0JsdWV0b290aFR5bGUiLCJtZXRob2RzIiwiY3JlYXRlQkxFQ29ubmVjdGlvbiIsInN1Y2Nlc3MiLCJzZXRUaW1lb3V0IiwiZmFpbCIsImdldEJMRURldmljZVNlcnZpY2VzIiwic2VydmljZUxpc3QiLCJnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MiLCJzZXJ2aWNlSWQiLCJjaGFyYWN0ZXJpc3RpY0lkIiwic3RhdGUiLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwiaGFuZGxlR2V0TWVhc3VyZSIsImFkYyIsImF1ZF9pZCIsInVybCIsImhhbmRsZUhlaWdodCIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwiY2xvc2VCbHVldG9vdGhBZGFwdGVyIiwiY2xvc2VCTEVDb25uZWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQW1DQTtBQUVBO0FBQUE7QUFDQTtBQUFBLGVBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsMENBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQUEsRUFDQTtFQUNBQztJQUNBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUE7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBRDtJQUNBQTtJQUNBQTtJQUNBQTtJQUNBRTtNQUNBRjtJQUNBO0VBQ0E7RUFDQUc7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7UUFDQUo7TUFDQTtJQUNBO0lBQ0FLO01BQ0E7TUFDQTtRQUNBO1FBQ0FMO01BQ0E7SUFDQTtFQUNBO0VBQ0FNO0lBQ0E7SUFDQUM7TUFDQTtNQUNBTDtRQUNBaEI7UUFDQXNCO1VBQ0FSO1VBQ0FTO1lBQ0FUO1VBQ0E7UUFDQTtRQUNBVTtVQUNBVjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FXO01BQ0E7TUFDQTtNQUNBVDtRQUNBaEI7UUFDQXNCO1VBQ0E7VUFDQUk7VUFDQTtZQUNBO1lBQ0E7Y0FDQVo7Y0FDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FVO1VBQ0FWO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWE7TUFDQTtNQUNBWDtRQUNBaEI7UUFDQTRCO1FBQ0FOO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQVI7WUFDQTtjQUNBQTtZQUNBO1VBQ0E7VUFDQUE7VUFDQUU7WUFDQWhCO1lBQ0E0QjtZQUNBQztZQUNBQztVQUNBO1VBQ0FkO1lBQ0FoQjtZQUNBNEI7WUFDQUM7WUFDQUM7VUFDQTtVQUNBaEI7UUFDQTtRQUNBVTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtNQUNBZjtRQUNBYztRQUFBO1FBQ0E5QjtRQUNBNEI7UUFDQUM7UUFDQVA7VUFDQU47WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FyQjtZQUNBO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FtQjtZQUNBO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQTtjQUNBQTtZQUNBO2NBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0FBO2dCQUNBQTtjQUNBO2dCQUNBQTtnQkFDQUE7Y0FDQTtjQUNBQTtjQUNBQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FVO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBUTtNQUNBO01BQ0E7TUFDQTtRQUNBbEI7UUFDQTtNQUNBO01BQ0E7UUFDQWhCO01BQ0E7UUFDQUE7TUFDQTtNQUNBO01BQ0FnQjtRQUNBbUI7UUFDQXBDO1FBQ0FDO1FBQ0FvQztNQUNBO1FBQ0FwQjtRQUNBO1VBQ0FBO1lBQ0FvQjtVQUNBO1VBQ0FwQjtZQUNBb0I7VUFDQTtVQUNBcEI7UUFDQTtVQUNBQTtRQUNBO1FBQ0FBO1FBQ0FFO1VBQ0FtQjtRQUNBO1FBQ0FaO1VBQ0FUO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FzQjtNQUNBO01BQ0F0QjtNQUNBQTtNQUNBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBdUI7TUFDQTtNQUNBckI7UUFDQTtRQUNBRjtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQXdCO01BQ0E7TUFDQXRCO1FBQ0FNO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQXZCO1FBQ0FoQjtRQUNBc0I7VUFDQTtVQUNBUjtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIzMzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ3ZWlnaHRQYWdlc1wiPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50IFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInN0YXR1cyBvdmVyZmxvd1wiPnt7dGV4dExpbmt9fTwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0XCI+e3t0ZXh0fX08L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3BhZ2VUd28vc3RhdGljL0hDLnBuZ1wiIGNsYXNzPVwiaW1hZ2UzXCI+PC9pbWFnZT5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpcHNcIj5cclxuXHRcdFx0XHQ8dGV4dD57eyR0KFwidGlwcy5tc2dUaXRsZVwiKX19OjwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4xLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9uRGV2aWNlTWVhc3VyZVRpcHNcIil9fTwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4yLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9wZW5EZXZpY2VlTWVhc3VyZVRpcHNcIil9fTwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4zLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9wZW5EZXZpY2VlTWVhc3VyZVRpcHMyXCIpfX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5omL5Yqo6K6w5b2VIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ3cmFwcGVyXCIgdi1pZj1cImlzSGVpZ2h0XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj48L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaDRcIj57eyR0KFwibGlua0JsdWV0b290aC5tZWFzdXJlUmVzdWx0VGlwc1wiKX19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZS1ib3hcIj5cclxuXHRcdFx0XHRcdHt7JHQoJ2xpbmtCbHVldG9vdGgubm93SGVpZ2h0Jyl9fe+8mjx0ZXh0Pnt7aGVpZ2h0fX17e3VuaXR9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJCbHVlLWJveFwiPlxyXG5cdFx0XHRcdFx0e3skdCgnbGlua0JsdWV0b290aC5sYXN0V2VpZ2h0Jyl9fe+8mjxpbnB1dCB2LW1vZGVsPVwid2VpZ2h0XCIgdHlwZT1cImRpZ2l0XCJcclxuXHRcdFx0XHRcdFx0OnBsYWNlaG9sZGVyPVwiJHQoJ3RpcHMudmVyaWZ5V2VpZ2h0JylcIiAvPmtnXHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZS1idG4gQmx1ZS1jbG9zZVwiIEBjbGljaz1cImhhbmRsZUhlaWdodFwiPnt7JHQoXCJsaW5rQmx1ZXRvb3RoLnJlbWVhc3VyZVwiKX19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZS1idG5cIiBAY2xpY2s9XCJoYW5kbGVHZXRNZWFzdXJlXCI+e3skdChcImxpbmtCbHVldG9vdGguU2F2ZVJlc3VsdFwiKX19PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQge1xyXG5cdFx0bWFwU3RhdGVcclxuXHR9IGZyb20gXCJ2dWV4XCI7XHJcblx0bGV0IG15VGltZTtcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHRleHQ6IFwiXCIsXHJcblx0XHRcdFx0d2VpZ2h0OiBcIlwiLFxyXG5cdFx0XHRcdGhlaWdodDogXCJcIixcclxuXHRcdFx0XHRoZWlnaHQyOiBcIlwiLFxyXG5cdFx0XHRcdGRldmljZUlkOiBcIlwiLFxyXG5cdFx0XHRcdG1hY0FkZHI6IFwiXCIsXHJcblx0XHRcdFx0d3JpdGU6IFwiXCIsXHJcblx0XHRcdFx0bm90aWZ5OiBcIlwiLFxyXG5cdFx0XHRcdHVuaXQ6IFwiY21cIixcclxuXHRcdFx0XHRVbmxvYWQ6IGZhbHNlLFxyXG5cdFx0XHRcdGlzSGVpZ2h0OiBmYWxzZSxcclxuXHRcdFx0XHRpc0Nvbm5lY3Rpb246IDAsXHJcblx0XHRcdFx0aXNkZXZpY2U6IGZhbHNlLFxyXG5cdFx0XHRcdHRleHRMaW5rOiBcIlwiXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHQuLi5tYXBTdGF0ZShbXCJ1c2VyXCIsIFwiaXNDb25uZWN0ZWRcIiwgXCJpc0JsdWV0b290aFR5bGVcIl0pLFxyXG5cdFx0XHR1c2VySW5mbygpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy51c2VyXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvblVubG9hZDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRpZiAoIXRoYXQuVW5sb2FkKSB7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KG15VGltZSlcclxuXHRcdFx0XHR0aGF0LmNsb3NlQkxFQ29ubmVjdGlvbigpXHJcblx0XHRcdFx0dGhhdC5jbG9zZUJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6aG16Z2i6L+U5Zueb25VbmxvYWRcIilcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHR0aGF0LndlaWdodCA9IHRoYXQudXNlckluZm8ud2VpZ2h0XHJcblx0XHRcdHRoYXQuZGV2aWNlSWQgPSBvcHRpb25zLmRldmljZUlkXHJcblx0XHRcdHRoYXQuY3JlYXRlQkxFQ29ubmVjdGlvbigpXHJcblx0XHRcdHRoYXQub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKVxyXG5cdFx0XHR1bmkub25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQmx1ZXRvb3RoXCIsIHJlcy5hdmFpbGFibGUpO1xyXG5cdFx0XHR9KVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdGlzQ29ubmVjdGVkOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAoIXRoYXQuaXNDb25uZWN0ZWQpIHtcclxuXHRcdFx0XHRcdGxldCB0ZXh0ID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGguZGV2aWNlRGlzY29ubmVjdGlvblwiKVxyXG5cdFx0XHRcdFx0dGhhdC4kdG9vbHMuc2hvd01vZGFsKHRleHQpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRpc0JsdWV0b290aFR5bGU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmICghdGhhdC5pc0JsdWV0b290aFR5bGUpIHtcclxuXHRcdFx0XHRcdGxldCB0ZXh0ID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGgub2ZmQmx1ZXRvb3RoXCIpXHJcblx0XHRcdFx0XHR0aGF0LiR0b29scy5zaG93TW9kYWwodGV4dClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvLyDov57mjqXok53niZlcclxuXHRcdFx0Y3JlYXRlQkxFQ29ubmVjdGlvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNyZWF0ZUJMRUNvbm5lY3Rpb24oe1xyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGgubGlua0JsdWV0b290aFwiKVxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuZ2V0QkxFRGV2aWNlU2VydmljZXMoKVxyXG5cdFx0XHRcdFx0XHR9LCAxMDAwKVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5saW5rQmx1ZXRvb3RoRmFpbFwiKVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiuvuWkh+i/nuaOpeWksei0pe+8jOivt+mHjeaWsOi/nuaOpVwiLCByZXMsIHRoYXQuZGV2aWNlSWQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog6I635Y+W6K6+5aSH55qEVVVJRFxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Z2V0QkxFRGV2aWNlU2VydmljZXMoKSB7XHJcblx0XHRcdFx0bGV0IHNlcnZpY2VMaXN0ID0gW107XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5nZXRCTEVEZXZpY2VTZXJ2aWNlcyh7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6I635Y+W6K6+5aSH55qEVVVJROaIkOWKn1wiLCByZXMsIHRoYXQuZGV2aWNlSWQpXHJcblx0XHRcdFx0XHRcdHNlcnZpY2VMaXN0ID0gcmVzLnNlcnZpY2VzO1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlcnZpY2VMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHNlcnZpY2UgPSBzZXJ2aWNlTGlzdFtpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoc2VydmljZS51dWlkLmluZGV4T2YoXCJGRkYwXCIpICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnNlcnZpY2VJZCA9IHNlcnZpY2UudXVpZDtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuZ2V0QkxFRGV2aWNlQ2hhcmFjdGVyaXN0aWNzKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiuvuWkh+eahEZGRTDnmoRzZXJ2aWNlSWTvvJogXCIgKyB0aGF0LnNlcnZpY2VJZCk7XHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGgubGlua0JsdWV0b290aEZhaWxcIilcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPluiuvuWkh+eahFVVSUTlpLHotKU6JywgcmVzKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog6I635Y+W5oyH5a6a5pyN5Yqh55qE54m55b6B5YC8XHJcblx0XHRcdCAqL1xyXG5cdFx0XHRnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5nZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3Moe1xyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gKiDor7tyZWFkOiB0cnVlLCAvLyzlhpl3cml0ZTogdHJ1ZSwgLy8s6YCa55+lbm90aWZ5OiB0cnVlXHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzLmNoYXJhY3RlcmlzdGljcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBpdGVtID0gcmVzLmNoYXJhY3RlcmlzdGljc1tpXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoaXRlbS51dWlkLmluZGV4T2YoJzAwMDBGRkYxJykgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQubm90aWZ5ID0gaXRlbS51dWlkXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChpdGVtLnV1aWQuaW5kZXhPZignMDAwMEZGRjInKSAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC53cml0ZSA9IGl0ZW0udXVpZFxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGF0LnRleHRMaW5rID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGgubGlua0JsdWV0b290aFN1Y2Nlc3NcIilcclxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXHJcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC5ub3RpZnksXHJcblx0XHRcdFx0XHRcdFx0c3RhdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHVuaS5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKHtcclxuXHRcdFx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQud3JpdGUsXHJcblx0XHRcdFx0XHRcdFx0c3RhdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHRoYXQubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSgpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iOt+WPlueJueW+geWAvOWksei0pTonLCBKU09OLnN0cmluZ2lmeShyZXMpKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaOpeaUtuiTneeJmeaVsOaNrlxyXG5cdFx0XHRub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZSh7XHJcblx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSwgLy8g5ZCv55SoIG5vdGlmeSDlip/og71cclxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQubm90aWZ5LFxyXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcclxuXHRcdFx0XHRcdFx0dW5pLm9uQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZShmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgdmFsdWUgPSB0aGF0LiR0b29scy5hYjJoZXgocmVzLnZhbHVlLCBcIlwiKTtcclxuXHRcdFx0XHRcdFx0XHRsZXQgZGF0YSA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZyg3LCAxMCksIDE2KVxyXG5cdFx0XHRcdFx0XHRcdGxldCB1bml0ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDEwLCAxMikpXHJcblx0XHRcdFx0XHRcdFx0bGV0IGRpZ2l0ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDEyLCAxNCkpXHJcblx0XHRcdFx0XHRcdFx0aWYgKGRpZ2l0ID09IFwiMVwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRkYXRhID0gZGF0YSAvIDEwXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmIChkaWdpdCA9PSBcIjJcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YSA9IGRhdGEgLyAxMDBcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHVuaXQgPT0gXCIwXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudW5pdCA9IFwiY21cIlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAodW5pdCA9PSBcIjFcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC51bml0ID0gXCJpbmNoXCJcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHVuaXQgPT0gXCIyXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudW5pdCA9IFwiZnRcIlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAoTnVtYmVyKGRhdGEpIDwgMjApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGV4dCA9IHRoYXQuJHQoXCJsaW5rQmx1ZXRvb3RoLmVycm9yT3BlcmF0aW9uXCIpXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh1bml0ID09IFwiMlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhMSA9IGRhdGEgLyAxMlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YTIgPSBOdW1iZXIoZGF0YTEgLSBNYXRoLmZsb29yKGRhdGExKSkgKiAxMlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmhlaWdodDIgPSBkYXRhXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaGVpZ2h0ID0gTWF0aC5mbG9vcihkYXRhMSkgKyBcIidcIiArIGRhdGEyLnRvRml4ZWQoMSlcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaGVpZ2h0MiA9IGRhdGFcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oZWlnaHQgPSBkYXRhXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnRleHQgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5oZWlnaHRUZXh0XCIpICsgdGhhdC5oZWlnaHQgKyB0aGF0LnVuaXRcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaXNIZWlnaHQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwiRzAyXCIsIHZhbHVlLCB1bml0LCBkYXRhLCB0aGF0LmhlaWdodCwgdGhhdC5oZWlnaHQyKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWwocmVzKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5rWL6YeP5aSx6LSlXCIsIHJlcy52YWx1ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5L+d5a2Y5rWL6YeP57uT5p6cXHJcblx0XHRcdGhhbmRsZUdldE1lYXN1cmUoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0bGV0IGhlaWdodCA9IDBcclxuXHRcdFx0XHRpZiAoIXRoYXQud2VpZ2h0KSB7XHJcblx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2codGhhdC4kdChcInRpcHMudmVyaWZ5V2VpZ2h0XCIpKVxyXG5cdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGF0LnVuaXQgPT0gJ2Z0Jykge1xyXG5cdFx0XHRcdFx0aGVpZ2h0ID0gTnVtYmVyKHRoYXQuaGVpZ2h0MiAqIDIuNTQpLnRvRml4ZWQoMilcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0aGVpZ2h0ID0gdGhhdC5oZWlnaHQyXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi5o+Q5Lqk6Lqr6auYXCIsIGhlaWdodClcclxuXHRcdFx0XHR0aGF0LiRtb2RlbC5nZXRtZWFzdXJlZnVuaXQoe1xyXG5cdFx0XHRcdFx0YWRjOiAwLFxyXG5cdFx0XHRcdFx0d2VpZ2h0OiB0aGF0LndlaWdodCxcclxuXHRcdFx0XHRcdGhlaWdodDogaGVpZ2h0LFxyXG5cdFx0XHRcdFx0YXVkX2lkOiB0aGF0LnVzZXJJbmZvLmlkXHJcblx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xyXG5cdFx0XHRcdFx0dGhhdC5pc0hlaWdodCA9IGZhbHNlXHJcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaChcImdldFJlc3VsdFwiLCB7XHJcblx0XHRcdFx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKCdnZXRVc2VySW5mbycsIHtcclxuXHRcdFx0XHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhhdC4kdG9vbHMubXNnKHRoYXQuJHQoXCJ0aXBzLm1zZ1N1Y2Nlc3NcIikpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2codGhhdC4kdChcInRpcHMubXNnRmFpbFwiKSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoYXQuVW5sb2FkID0gdHJ1ZVxyXG5cdFx0XHRcdFx0dW5pLnN3aXRjaFRhYih7XHJcblx0XHRcdFx0XHRcdHVybDogXCIvcGFnZXMvaG9tZS9ob21lXCJcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmNsb3NlQkxFQ29ubmVjdGlvbigpXHJcblx0XHRcdFx0XHRcdHRoYXQuY2xvc2VCbHVldG9vdGhBZGFwdGVyKClcclxuXHRcdFx0XHRcdH0sIDUwMClcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVIZWlnaHQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC5oZWlnaHQgPSBcIlwiXHJcblx0XHRcdFx0dGhhdC50ZXh0ID0gXCJcIlxyXG5cdFx0XHRcdHRoYXQuaXNIZWlnaHQgPSBmYWxzZVxyXG5cdFx0XHRcdC8vIGxldCBqID0gTnVtYmVyKDIgKyAzKS50b1N0cmluZygxNilcclxuXHRcdFx0XHQvLyBsZXQgc3RyID0gXCI1QTAyMDNcIiArIGouc3Vic3RyKGoubGVuZ3RoIC0gMiwgMilcclxuXHRcdFx0XHQvLyBsZXQgYnVmID0gbmV3IFVpbnQ4QXJyYXkoc3RyLm1hdGNoKC9bXFxkYS1mXXsyfS9naSkubWFwKGZ1bmN0aW9uKGgpIHtcclxuXHRcdFx0XHQvLyBcdHJldHVybiBwYXJzZUludChoLCAxNilcclxuXHRcdFx0XHQvLyB9KSlcclxuXHRcdFx0XHQvLyB1bmkud3JpdGVCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKHtcclxuXHRcdFx0XHQvLyBcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdC8vIFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcclxuXHRcdFx0XHQvLyBcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQud3JpdGUsXHJcblx0XHRcdFx0Ly8gXHR2YWx1ZTogYnVmLmJ1ZmZlcixcclxuXHRcdFx0XHQvLyBcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblxyXG5cdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZygn5LiL5Y+R5oyH5Luk5oiQ5YqfJywgcmVzLmVyck1zZylcclxuXHRcdFx0XHQvLyBcdH0sXHJcblx0XHRcdFx0Ly8gXHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZyhcIuS4i+WPkeaMh+S7pOWksei0pVwiLCByZXMpO1xyXG5cdFx0XHRcdC8vIFx0fSxcclxuXHRcdFx0XHQvLyB9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDnm5HlkKzok53niZnov57mjqXnirbmgIFcclxuXHRcdFx0b25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLnm5HlkKzok53niZnov57mjqXnirbmgIFcIiwgcmVzLmNvbm5lY3RlZClcclxuXHRcdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUNvbm5lY3RlZFwiLCByZXMuY29ubmVjdGVkKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog5pat5byA6JOd54mZ5qih5Z2XXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRjbG9zZUJsdWV0b290aEFkYXB0ZXIoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5jbG9zZUJsdWV0b290aEFkYXB0ZXIoe1xyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+iTneeJmeaooeWdl+WFs+mXreaIkOWKnycpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDmlq3lvIDok53niZnov57mjqVcclxuXHRcdFx0ICovXHJcblx0XHRcdGNsb3NlQkxFQ29ubmVjdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNsb3NlQkxFQ29ubmVjdGlvbih7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmlq3lvIDok53niZnov57mjqXmiJDlip8nKTtcclxuXHRcdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQ29ubmVjdGVkXCIsIGZhbHNlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuXHQuaW1hZ2UzIHtcclxuXHRcdHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xyXG5cdFx0aGVpZ2h0OiAzNDBweCAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0LnN0YXR1cyB7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdGhlaWdodDogMzVweDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAzNXB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMTVweDtcclxuXHRcdG1hcmdpbjogMTVweCBhdXRvO1xyXG5cdFx0cGFkZGluZzogMCAxNXB4O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZGRhNjtcclxuXHR9XHJcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///335\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar myTime;\nvar _default = {\n data: function data() {\n return {\n text: \"\",\n weight: \"\",\n height: \"\",\n height2: \"\",\n deviceId: \"\",\n macAddr: \"\",\n write: \"\",\n notify: \"\",\n unit: \"cm\",\n Unload: false,\n isHeight: false,\n isConnection: 0,\n isdevice: false,\n textLink: \"\"\n };\n },\n computed: _objectSpread(_objectSpread({}, (0, _vuex.mapState)([\"user\", \"isConnected\", \"isBluetoothTyle\"])), {}, {\n userInfo: function userInfo() {\n return this.user;\n }\n }),\n onUnload: function onUnload() {\n var that = this;\n if (!that.Unload) {\n clearTimeout(myTime);\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n __f__(\"log\", \"页面返回onUnload\", \" at pageTwo/devices/G02.vue:71\");\n }\n },\n onLoad: function onLoad(options) {\n var that = this;\n that.weight = that.userInfo.weight;\n that.deviceId = options.deviceId;\n that.createBLEConnection();\n that.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n var text = that.$t(\"linkBluetooth.deviceDisconnection\");\n that.$tools.showModal(text);\n }\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n var text = that.$t(\"linkBluetooth.offBluetooth\");\n that.$tools.showModal(text);\n }\n }\n },\n methods: {\n // 连接蓝牙\n createBLEConnection: function createBLEConnection() {\n var that = this;\n uni.createBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetooth\");\n setTimeout(function () {\n that.getBLEDeviceServices();\n }, 1000);\n },\n fail: function fail(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothFail\");\n __f__(\"log\", \"设备连接失败,请重新连接\", res, that.deviceId, \" at pageTwo/devices/G02.vue:114\");\n }\n });\n },\n /**\n * 获取设备的UUID\n */\n getBLEDeviceServices: function getBLEDeviceServices() {\n var serviceList = [];\n var that = this;\n uni.getBLEDeviceServices({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", \"获取设备的UUID成功\", res, that.deviceId, \" at pageTwo/devices/G02.vue:127\");\n serviceList = res.services;\n for (var i = 0; i < serviceList.length; i++) {\n var service = serviceList[i];\n if (service.uuid.indexOf(\"FFF0\") != -1) {\n that.serviceId = service.uuid;\n that.getBLEDeviceCharacteristics();\n __f__(\"log\", \"设备的FFE0的serviceId: \" + that.serviceId, \" at pageTwo/devices/G02.vue:134\");\n break;\n }\n }\n },\n fail: function fail(res) {\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothFail\");\n __f__(\"log\", '获取设备的UUID失败:', res, \" at pageTwo/devices/G02.vue:141\");\n }\n });\n },\n /**\n * 获取指定服务的特征值\n */\n getBLEDeviceCharacteristics: function getBLEDeviceCharacteristics() {\n var that = this;\n uni.getBLEDeviceCharacteristics({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n success: function success(res) {\n // * 读read: true, //,写write: true, //,通知notify: true\n for (var i = 0; i < res.characteristics.length; i++) {\n var item = res.characteristics[i];\n if (item.uuid.indexOf('0000FFF1') != -1) {\n that.notify = item.uuid;\n } else if (item.uuid.indexOf('0000FFF2') != -1) {\n that.write = item.uuid;\n }\n }\n that.textLink = that.$t(\"linkBluetooth.linkBluetoothSuccess\");\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n state: true\n });\n uni.notifyBLECharacteristicValueChange({\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.write,\n state: true\n });\n that.notifyBLECharacteristicValue();\n },\n fail: function fail(res) {\n __f__(\"log\", '获取特征值失败:', JSON.stringify(res), \" at pageTwo/devices/G02.vue:179\");\n }\n });\n },\n // 接收蓝牙数据\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.deviceId,\n serviceId: that.serviceId,\n characteristicId: that.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n var data = parseInt(value.substring(7, 10), 16);\n var unit = parseInt(value.substring(10, 12));\n var digit = parseInt(value.substring(12, 14));\n if (digit == \"1\") {\n data = data / 10;\n }\n if (digit == \"2\") {\n data = data / 100;\n }\n if (unit == \"0\") {\n that.unit = \"cm\";\n }\n if (unit == \"1\") {\n that.unit = \"inch\";\n }\n if (unit == \"2\") {\n that.unit = \"ft\";\n }\n if (Number(data) < 20) {\n that.text = that.$t(\"linkBluetooth.errorOperation\");\n } else {\n if (unit == \"2\") {\n var data1 = data / 12;\n var data2 = Number(data1 - Math.floor(data1)) * 12;\n that.height2 = data;\n that.height = Math.floor(data1) + \"'\" + data2.toFixed(1);\n } else {\n that.height2 = data;\n that.height = data;\n }\n that.text = that.$t(\"linkBluetooth.heightText\") + that.height + that.unit;\n that.isHeight = true;\n }\n __f__(\"log\", \"G02\", value, unit, data, that.height, that.height2, \" at pageTwo/devices/G02.vue:227\");\n });\n },\n fail: function fail(res) {\n __f__(\"log\", \"测量失败\", res.value, \" at pageTwo/devices/G02.vue:231\");\n }\n });\n },\n // 保存测量结果\n handleGetMeasure: function handleGetMeasure() {\n var that = this;\n var height = 0;\n if (!that.weight) {\n that.$tools.msg(that.$t(\"tips.verifyWeight\"));\n return;\n }\n if (that.unit == 'ft') {\n height = Number(that.height2 * 2.54).toFixed(2);\n } else {\n height = that.height2;\n }\n __f__(\"log\", \"提交身高\", height, \" at pageTwo/devices/G02.vue:248\");\n that.$model.getmeasurefunit({\n adc: 0,\n weight: that.weight,\n height: height,\n aud_id: that.userInfo.id\n }).then(function (res) {\n that.isHeight = false;\n if (res.code == 0) {\n that.$store.dispatch(\"getResult\", {\n aud_id: uni.getStorageSync('userid')\n });\n that.$store.dispatch('getUserInfo', {\n aud_id: uni.getStorageSync('userid')\n });\n that.$tools.msg(that.$t(\"tips.msgSuccess\"));\n } else {\n that.$tools.msg(that.$t(\"tips.msgFail\"));\n }\n that.Unload = true;\n uni.switchTab({\n url: \"/pages/home/home\"\n });\n setTimeout(function () {\n that.closeBLEConnection();\n that.closeBluetoothAdapter();\n }, 500);\n });\n },\n handleHeight: function handleHeight() {\n var that = this;\n that.height = \"\";\n that.text = \"\";\n that.isHeight = false;\n // let j = Number(2 + 3).toString(16)\n // let str = \"5A0203\" + j.substr(j.length - 2, 2)\n // let buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function(h) {\n // \treturn parseInt(h, 16)\n // }))\n // uni.writeBLECharacteristicValue({\n // \tdeviceId: that.deviceId,\n // \tserviceId: that.serviceId,\n // \tcharacteristicId: that.write,\n // \tvalue: buf.buffer,\n // \tsuccess: res => {\n\n // \t\tconsole.log('下发指令成功', res.errMsg)\n // \t},\n // \tfail: res => {\n // \t\tconsole.log(\"下发指令失败\", res);\n // \t},\n // })\n },\n // 监听蓝牙连接状态\n onBLEConnectionStateChange: function onBLEConnectionStateChange() {\n var that = this;\n uni.onBLEConnectionStateChange(function (res) {\n __f__(\"log\", \"监听蓝牙连接状态\", res.connected, \" at pageTwo/devices/G02.vue:305\");\n that.$store.commit(\"changeConnected\", res.connected);\n });\n },\n /**\n * 断开蓝牙模块\n */\n closeBluetoothAdapter: function closeBluetoothAdapter() {\n var that = this;\n uni.closeBluetoothAdapter({\n success: function success(res) {\n __f__(\"log\", '蓝牙模块关闭成功', \" at pageTwo/devices/G02.vue:316\");\n }\n });\n },\n /**\n * 断开蓝牙连接\n */\n closeBLEConnection: function closeBLEConnection() {\n var that = this;\n uni.closeBLEConnection({\n deviceId: that.deviceId,\n success: function success(res) {\n __f__(\"log\", '断开蓝牙连接成功', \" at pageTwo/devices/G02.vue:328\");\n that.$store.commit(\"changeConnected\", false);\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZVR3by9kZXZpY2VzL0cwMi52dWUiXSwibmFtZXMiOlsiZGF0YSIsInRleHQiLCJ3ZWlnaHQiLCJoZWlnaHQiLCJoZWlnaHQyIiwiZGV2aWNlSWQiLCJtYWNBZGRyIiwid3JpdGUiLCJub3RpZnkiLCJ1bml0IiwiVW5sb2FkIiwiaXNIZWlnaHQiLCJpc0Nvbm5lY3Rpb24iLCJpc2RldmljZSIsInRleHRMaW5rIiwiY29tcHV0ZWQiLCJ1c2VySW5mbyIsIm9uVW5sb2FkIiwiY2xlYXJUaW1lb3V0IiwidGhhdCIsIm9uTG9hZCIsInVuaSIsIndhdGNoIiwiaXNDb25uZWN0ZWQiLCJpc0JsdWV0b290aFR5bGUiLCJtZXRob2RzIiwiY3JlYXRlQkxFQ29ubmVjdGlvbiIsInN1Y2Nlc3MiLCJzZXRUaW1lb3V0IiwiZmFpbCIsImdldEJMRURldmljZVNlcnZpY2VzIiwic2VydmljZUxpc3QiLCJnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MiLCJzZXJ2aWNlSWQiLCJjaGFyYWN0ZXJpc3RpY0lkIiwic3RhdGUiLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwiaGFuZGxlR2V0TWVhc3VyZSIsImFkYyIsImF1ZF9pZCIsInVybCIsImhhbmRsZUhlaWdodCIsIm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlIiwiY2xvc2VCbHVldG9vdGhBZGFwdGVyIiwiY2xvc2VCTEVDb25uZWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQW1DQTtBQUVBO0FBQUE7QUFDQTtBQUFBLGVBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsMENBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQUEsRUFDQTtFQUNBQztJQUNBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUE7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBRDtJQUNBQTtJQUNBQTtJQUNBQTtJQUNBRTtNQUNBRjtJQUNBO0VBQ0E7RUFDQUc7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7UUFDQUo7TUFDQTtJQUNBO0lBQ0FLO01BQ0E7TUFDQTtRQUNBO1FBQ0FMO01BQ0E7SUFDQTtFQUNBO0VBQ0FNO0lBQ0E7SUFDQUM7TUFDQTtNQUNBTDtRQUNBaEI7UUFDQXNCO1VBQ0FSO1VBQ0FTO1lBQ0FUO1VBQ0E7UUFDQTtRQUNBVTtVQUNBVjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7QUFDQTtBQUNBO0lBQ0FXO01BQ0E7TUFDQTtNQUNBVDtRQUNBaEI7UUFDQXNCO1VBQ0E7VUFDQUk7VUFDQTtZQUNBO1lBQ0E7Y0FDQVo7Y0FDQUE7Y0FDQTtjQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FVO1VBQ0FWO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWE7TUFDQTtNQUNBWDtRQUNBaEI7UUFDQTRCO1FBQ0FOO1VBQ0E7VUFDQTtZQUNBO1lBQ0E7Y0FDQVI7WUFDQTtjQUNBQTtZQUNBO1VBQ0E7VUFDQUE7VUFDQUU7WUFDQWhCO1lBQ0E0QjtZQUNBQztZQUNBQztVQUNBO1VBQ0FkO1lBQ0FoQjtZQUNBNEI7WUFDQUM7WUFDQUM7VUFDQTtVQUNBaEI7UUFDQTtRQUNBVTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtNQUNBZjtRQUNBYztRQUFBO1FBQ0E5QjtRQUNBNEI7UUFDQUM7UUFDQVA7VUFDQU47WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FyQjtZQUNBO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FtQjtZQUNBO1lBQ0E7Y0FDQUE7WUFDQTtZQUNBO2NBQ0FBO1lBQ0E7WUFDQTtjQUNBQTtZQUNBO2NBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0FBO2dCQUNBQTtjQUNBO2dCQUNBQTtnQkFDQUE7Y0FDQTtjQUNBQTtjQUNBQTtZQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0FVO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBUTtNQUNBO01BQ0E7TUFDQTtRQUNBbEI7UUFDQTtNQUNBO01BQ0E7UUFDQWhCO01BQ0E7UUFDQUE7TUFDQTtNQUNBO01BQ0FnQjtRQUNBbUI7UUFDQXBDO1FBQ0FDO1FBQ0FvQztNQUNBO1FBQ0FwQjtRQUNBO1VBQ0FBO1lBQ0FvQjtVQUNBO1VBQ0FwQjtZQUNBb0I7VUFDQTtVQUNBcEI7UUFDQTtVQUNBQTtRQUNBO1FBQ0FBO1FBQ0FFO1VBQ0FtQjtRQUNBO1FBQ0FaO1VBQ0FUO1VBQ0FBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FzQjtNQUNBO01BQ0F0QjtNQUNBQTtNQUNBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBdUI7TUFDQTtNQUNBckI7UUFDQTtRQUNBRjtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQXdCO01BQ0E7TUFDQXRCO1FBQ0FNO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtBQUNBO0FBQ0E7SUFDQWlCO01BQ0E7TUFDQXZCO1FBQ0FoQjtRQUNBc0I7VUFDQTtVQUNBUjtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIzMzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ3ZWlnaHRQYWdlc1wiPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50IFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInN0YXR1cyBvdmVyZmxvd1wiPnt7dGV4dExpbmt9fTwvdmlldz5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ0ZXh0XCI+e3t0ZXh0fX08L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3BhZ2VUd28vc3RhdGljL0hDLnBuZ1wiIGNsYXNzPVwiaW1hZ2UzXCI+PC9pbWFnZT5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInRpcHNcIj5cclxuXHRcdFx0XHQ8dGV4dD57eyR0KFwidGlwcy5tc2dUaXRsZVwiKX19OjwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4xLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9uRGV2aWNlTWVhc3VyZVRpcHNcIil9fTwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4yLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9wZW5EZXZpY2VlTWVhc3VyZVRpcHNcIil9fTwvdGV4dD5cclxuXHRcdFx0XHQ8dGV4dD4zLHt7JHQoXCJsaW5rQmx1ZXRvb3RoLm9wZW5EZXZpY2VlTWVhc3VyZVRpcHMyXCIpfX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0g5omL5Yqo6K6w5b2VIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ3cmFwcGVyXCIgdi1pZj1cImlzSGVpZ2h0XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj48L3ZpZXc+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaDRcIj57eyR0KFwibGlua0JsdWV0b290aC5tZWFzdXJlUmVzdWx0VGlwc1wiKX19PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiQmx1ZS1ib3hcIj5cclxuXHRcdFx0XHRcdHt7JHQoJ2xpbmtCbHVldG9vdGgubm93SGVpZ2h0Jyl9fe+8mjx0ZXh0Pnt7aGVpZ2h0fX17e3VuaXR9fTwvdGV4dD5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJCbHVlLWJveFwiPlxyXG5cdFx0XHRcdFx0e3skdCgnbGlua0JsdWV0b290aC5sYXN0V2VpZ2h0Jyl9fe+8mlxyXG5cdFx0XHRcdFx0PGlucHV0IHYtbW9kZWw9XCJ3ZWlnaHRcIiB0eXBlPVwiZGlnaXRcIiA6cGxhY2Vob2xkZXI9XCIkdCgndGlwcy52ZXJpZnlXZWlnaHQnKVwiIC8+a2dcclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJCbHVlLWJ0biBCbHVlLWNsb3NlXCIgQGNsaWNrPVwiaGFuZGxlSGVpZ2h0XCI+e3skdChcImxpbmtCbHVldG9vdGgucmVtZWFzdXJlXCIpfX08L3ZpZXc+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJCbHVlLWJ0blwiIEBjbGljaz1cImhhbmRsZUdldE1lYXN1cmVcIj57eyR0KFwibGlua0JsdWV0b290aC5TYXZlUmVzdWx0XCIpfX08L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB7XHJcblx0XHRtYXBTdGF0ZVxyXG5cdH0gZnJvbSBcInZ1ZXhcIjtcclxuXHRsZXQgbXlUaW1lO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0dGV4dDogXCJcIixcclxuXHRcdFx0XHR3ZWlnaHQ6IFwiXCIsXHJcblx0XHRcdFx0aGVpZ2h0OiBcIlwiLFxyXG5cdFx0XHRcdGhlaWdodDI6IFwiXCIsXHJcblx0XHRcdFx0ZGV2aWNlSWQ6IFwiXCIsXHJcblx0XHRcdFx0bWFjQWRkcjogXCJcIixcclxuXHRcdFx0XHR3cml0ZTogXCJcIixcclxuXHRcdFx0XHRub3RpZnk6IFwiXCIsXHJcblx0XHRcdFx0dW5pdDogXCJjbVwiLFxyXG5cdFx0XHRcdFVubG9hZDogZmFsc2UsXHJcblx0XHRcdFx0aXNIZWlnaHQ6IGZhbHNlLFxyXG5cdFx0XHRcdGlzQ29ubmVjdGlvbjogMCxcclxuXHRcdFx0XHRpc2RldmljZTogZmFsc2UsXHJcblx0XHRcdFx0dGV4dExpbms6IFwiXCJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC4uLm1hcFN0YXRlKFtcInVzZXJcIiwgXCJpc0Nvbm5lY3RlZFwiLCBcImlzQmx1ZXRvb3RoVHlsZVwiXSksXHJcblx0XHRcdHVzZXJJbmZvKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnVzZXJcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uVW5sb2FkOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdGlmICghdGhhdC5VbmxvYWQpIHtcclxuXHRcdFx0XHRjbGVhclRpbWVvdXQobXlUaW1lKVxyXG5cdFx0XHRcdHRoYXQuY2xvc2VCTEVDb25uZWN0aW9uKClcclxuXHRcdFx0XHR0aGF0LmNsb3NlQmx1ZXRvb3RoQWRhcHRlcigpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLpobXpnaLov5Tlm55vblVubG9hZFwiKVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKG9wdGlvbnMpIHtcclxuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdHRoYXQud2VpZ2h0ID0gdGhhdC51c2VySW5mby53ZWlnaHRcclxuXHRcdFx0dGhhdC5kZXZpY2VJZCA9IG9wdGlvbnMuZGV2aWNlSWRcclxuXHRcdFx0dGhhdC5jcmVhdGVCTEVDb25uZWN0aW9uKClcclxuXHRcdFx0dGhhdC5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpXHJcblx0XHRcdHVuaS5vbkJsdWV0b290aEFkYXB0ZXJTdGF0ZUNoYW5nZShmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VCbHVldG9vdGhcIiwgcmVzLmF2YWlsYWJsZSk7XHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0aXNDb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmICghdGhhdC5pc0Nvbm5lY3RlZCkge1xyXG5cdFx0XHRcdFx0bGV0IHRleHQgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5kZXZpY2VEaXNjb25uZWN0aW9uXCIpXHJcblx0XHRcdFx0XHR0aGF0LiR0b29scy5zaG93TW9kYWwodGV4dClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGlzQmx1ZXRvb3RoVHlsZTogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKCF0aGF0LmlzQmx1ZXRvb3RoVHlsZSkge1xyXG5cdFx0XHRcdFx0bGV0IHRleHQgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5vZmZCbHVldG9vdGhcIilcclxuXHRcdFx0XHRcdHRoYXQuJHRvb2xzLnNob3dNb2RhbCh0ZXh0KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOi/nuaOpeiTneeJmVxyXG5cdFx0XHRjcmVhdGVCTEVDb25uZWN0aW9uKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkuY3JlYXRlQkxFQ29ubmVjdGlvbih7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5saW5rQmx1ZXRvb3RoXCIpXHJcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhhdC5nZXRCTEVEZXZpY2VTZXJ2aWNlcygpXHJcblx0XHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0dGhhdC50ZXh0TGluayA9IHRoYXQuJHQoXCJsaW5rQmx1ZXRvb3RoLmxpbmtCbHVldG9vdGhGYWlsXCIpXHJcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6K6+5aSH6L+e5o6l5aSx6LSl77yM6K+36YeN5paw6L+e5o6lXCIsIHJlcywgdGhhdC5kZXZpY2VJZCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDojrflj5borr7lpIfnmoRVVUlEXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRnZXRCTEVEZXZpY2VTZXJ2aWNlcygpIHtcclxuXHRcdFx0XHRsZXQgc2VydmljZUxpc3QgPSBbXTtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmdldEJMRURldmljZVNlcnZpY2VzKHtcclxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLojrflj5borr7lpIfnmoRVVUlE5oiQ5YqfXCIsIHJlcywgdGhhdC5kZXZpY2VJZClcclxuXHRcdFx0XHRcdFx0c2VydmljZUxpc3QgPSByZXMuc2VydmljZXM7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgc2VydmljZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgc2VydmljZSA9IHNlcnZpY2VMaXN0W2ldO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChzZXJ2aWNlLnV1aWQuaW5kZXhPZihcIkZGRjBcIikgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuc2VydmljZUlkID0gc2VydmljZS51dWlkO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5nZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MoKTtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6K6+5aSH55qERkZFMOeahHNlcnZpY2VJZO+8miBcIiArIHRoYXQuc2VydmljZUlkKTtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGZhaWw6IHJlcyA9PiB7XHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5saW5rQmx1ZXRvb3RoRmFpbFwiKVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W6K6+5aSH55qEVVVJROWksei0pTonLCByZXMpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDojrflj5bmjIflrprmnI3liqHnmoTnibnlvoHlgLxcclxuXHRcdFx0ICovXHJcblx0XHRcdGdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcygpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmdldEJMRURldmljZUNoYXJhY3RlcmlzdGljcyh7XHJcblx0XHRcdFx0XHRkZXZpY2VJZDogdGhhdC5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyAqIOivu3JlYWQ6IHRydWUsIC8vLOWGmXdyaXRlOiB0cnVlLCAvLyzpgJrnn6Vub3RpZnk6IHRydWVcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY2hhcmFjdGVyaXN0aWNzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGl0ZW0gPSByZXMuY2hhcmFjdGVyaXN0aWNzW2ldO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChpdGVtLnV1aWQuaW5kZXhPZignMDAwMEZGRjEnKSAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5ub3RpZnkgPSBpdGVtLnV1aWRcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGl0ZW0udXVpZC5pbmRleE9mKCcwMDAwRkZGMicpICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndyaXRlID0gaXRlbS51dWlkXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoYXQudGV4dExpbmsgPSB0aGF0LiR0KFwibGlua0JsdWV0b290aC5saW5rQmx1ZXRvb3RoU3VjY2Vzc1wiKVxyXG5cdFx0XHRcdFx0XHR1bmkubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZUNoYW5nZSh7XHJcblx0XHRcdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdFx0XHRjaGFyYWN0ZXJpc3RpY0lkOiB0aGF0Lm5vdGlmeSxcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5zZXJ2aWNlSWQsXHJcblx0XHRcdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC53cml0ZSxcclxuXHRcdFx0XHRcdFx0XHRzdGF0ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhhdC5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlKClcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6I635Y+W54m55b6B5YC85aSx6LSlOicsIEpTT04uc3RyaW5naWZ5KHJlcykpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5o6l5pS26JOd54mZ5pWw5o2uXHJcblx0XHRcdG5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKHtcclxuXHRcdFx0XHRcdHN0YXRlOiB0cnVlLCAvLyDlkK/nlKggbm90aWZ5IOWKn+iDvVxyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0XHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC5ub3RpZnksXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0XHR1bmkub25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCB2YWx1ZSA9IHRoYXQuJHRvb2xzLmFiMmhleChyZXMudmFsdWUsIFwiXCIpO1xyXG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDcsIDEwKSwgMTYpXHJcblx0XHRcdFx0XHRcdFx0bGV0IHVuaXQgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMTAsIDEyKSlcclxuXHRcdFx0XHRcdFx0XHRsZXQgZGlnaXQgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMTIsIDE0KSlcclxuXHRcdFx0XHRcdFx0XHRpZiAoZGlnaXQgPT0gXCIxXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGRhdGEgPSBkYXRhIC8gMTBcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKGRpZ2l0ID09IFwiMlwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRkYXRhID0gZGF0YSAvIDEwMFxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAodW5pdCA9PSBcIjBcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC51bml0ID0gXCJjbVwiXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmICh1bml0ID09IFwiMVwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LnVuaXQgPSBcImluY2hcIlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAodW5pdCA9PSBcIjJcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC51bml0ID0gXCJmdFwiXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmIChOdW1iZXIoZGF0YSkgPCAyMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50ZXh0ID0gdGhhdC4kdChcImxpbmtCbHVldG9vdGguZXJyb3JPcGVyYXRpb25cIilcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHVuaXQgPT0gXCIyXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGRhdGExID0gZGF0YSAvIDEyXHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhMiA9IE51bWJlcihkYXRhMSAtIE1hdGguZmxvb3IoZGF0YTEpKSAqIDEyXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaGVpZ2h0MiA9IGRhdGFcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oZWlnaHQgPSBNYXRoLmZsb29yKGRhdGExKSArIFwiJ1wiICsgZGF0YTIudG9GaXhlZCgxKVxyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oZWlnaHQyID0gZGF0YVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmhlaWdodCA9IGRhdGFcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGV4dCA9IHRoYXQuJHQoXCJsaW5rQmx1ZXRvb3RoLmhlaWdodFRleHRcIikgKyB0aGF0LmhlaWdodCArIHRoYXQudW5pdFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pc0hlaWdodCA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCJHMDJcIiwgdmFsdWUsIHVuaXQsIGRhdGEsIHRoYXQuaGVpZ2h0LCB0aGF0LmhlaWdodDIpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbChyZXMpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLmtYvph4/lpLHotKVcIiwgcmVzLnZhbHVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDkv53lrZjmtYvph4/nu5PmnpxcclxuXHRcdFx0aGFuZGxlR2V0TWVhc3VyZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRsZXQgaGVpZ2h0ID0gMFxyXG5cdFx0XHRcdGlmICghdGhhdC53ZWlnaHQpIHtcclxuXHRcdFx0XHRcdHRoYXQuJHRvb2xzLm1zZyh0aGF0LiR0KFwidGlwcy52ZXJpZnlXZWlnaHRcIikpXHJcblx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoYXQudW5pdCA9PSAnZnQnKSB7XHJcblx0XHRcdFx0XHRoZWlnaHQgPSBOdW1iZXIodGhhdC5oZWlnaHQyICogMi41NCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRoZWlnaHQgPSB0aGF0LmhlaWdodDJcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLmj5DkuqTouqvpq5hcIiwgaGVpZ2h0KVxyXG5cdFx0XHRcdHRoYXQuJG1vZGVsLmdldG1lYXN1cmVmdW5pdCh7XHJcblx0XHRcdFx0XHRhZGM6IDAsXHJcblx0XHRcdFx0XHR3ZWlnaHQ6IHRoYXQud2VpZ2h0LFxyXG5cdFx0XHRcdFx0aGVpZ2h0OiBoZWlnaHQsXHJcblx0XHRcdFx0XHRhdWRfaWQ6IHRoYXQudXNlckluZm8uaWRcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHR0aGF0LmlzSGVpZ2h0ID0gZmFsc2VcclxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAwKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKFwiZ2V0UmVzdWx0XCIsIHtcclxuXHRcdFx0XHRcdFx0XHRhdWRfaWQ6IHVuaS5nZXRTdG9yYWdlU3luYygndXNlcmlkJylcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0dGhhdC4kc3RvcmUuZGlzcGF0Y2goJ2dldFVzZXJJbmZvJywge1xyXG5cdFx0XHRcdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2codGhhdC4kdChcInRpcHMubXNnU3VjY2Vzc1wiKSlcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuJHRvb2xzLm1zZyh0aGF0LiR0KFwidGlwcy5tc2dGYWlsXCIpKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhhdC5VbmxvYWQgPSB0cnVlXHJcblx0XHRcdFx0XHR1bmkuc3dpdGNoVGFiKHtcclxuXHRcdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9ob21lL2hvbWVcIlxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuY2xvc2VCTEVDb25uZWN0aW9uKClcclxuXHRcdFx0XHRcdFx0dGhhdC5jbG9zZUJsdWV0b290aEFkYXB0ZXIoKVxyXG5cdFx0XHRcdFx0fSwgNTAwKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZUhlaWdodCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR0aGF0LmhlaWdodCA9IFwiXCJcclxuXHRcdFx0XHR0aGF0LnRleHQgPSBcIlwiXHJcblx0XHRcdFx0dGhhdC5pc0hlaWdodCA9IGZhbHNlXHJcblx0XHRcdFx0Ly8gbGV0IGogPSBOdW1iZXIoMiArIDMpLnRvU3RyaW5nKDE2KVxyXG5cdFx0XHRcdC8vIGxldCBzdHIgPSBcIjVBMDIwM1wiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxyXG5cdFx0XHRcdC8vIGxldCBidWYgPSBuZXcgVWludDhBcnJheShzdHIubWF0Y2goL1tcXGRhLWZdezJ9L2dpKS5tYXAoZnVuY3Rpb24oaCkge1xyXG5cdFx0XHRcdC8vIFx0cmV0dXJuIHBhcnNlSW50KGgsIDE2KVxyXG5cdFx0XHRcdC8vIH0pKVxyXG5cdFx0XHRcdC8vIHVuaS53cml0ZUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoe1xyXG5cdFx0XHRcdC8vIFx0ZGV2aWNlSWQ6IHRoYXQuZGV2aWNlSWQsXHJcblx0XHRcdFx0Ly8gXHRzZXJ2aWNlSWQ6IHRoYXQuc2VydmljZUlkLFxyXG5cdFx0XHRcdC8vIFx0Y2hhcmFjdGVyaXN0aWNJZDogdGhhdC53cml0ZSxcclxuXHRcdFx0XHQvLyBcdHZhbHVlOiBidWYuYnVmZmVyLFxyXG5cdFx0XHRcdC8vIFx0c3VjY2VzczogcmVzID0+IHtcclxuXHJcblx0XHRcdFx0Ly8gXHRcdGNvbnNvbGUubG9nKCfkuIvlj5HmjIfku6TmiJDlip8nLCByZXMuZXJyTXNnKVxyXG5cdFx0XHRcdC8vIFx0fSxcclxuXHRcdFx0XHQvLyBcdGZhaWw6IHJlcyA9PiB7XHJcblx0XHRcdFx0Ly8gXHRcdGNvbnNvbGUubG9nKFwi5LiL5Y+R5oyH5Luk5aSx6LSlXCIsIHJlcyk7XHJcblx0XHRcdFx0Ly8gXHR9LFxyXG5cdFx0XHRcdC8vIH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOebkeWQrOiTneeJmei/nuaOpeeKtuaAgVxyXG5cdFx0XHRvbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHR1bmkub25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuebkeWQrOiTneeJmei/nuaOpeeKtuaAgVwiLCByZXMuY29ubmVjdGVkKVxyXG5cdFx0XHRcdFx0dGhhdC4kc3RvcmUuY29tbWl0KFwiY2hhbmdlQ29ubmVjdGVkXCIsIHJlcy5jb25uZWN0ZWQpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDmlq3lvIDok53niZnmqKHlnZdcclxuXHRcdFx0ICovXHJcblx0XHRcdGNsb3NlQmx1ZXRvb3RoQWRhcHRlcigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0dW5pLmNsb3NlQmx1ZXRvb3RoQWRhcHRlcih7XHJcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn6JOd54mZ5qih5Z2X5YWz6Zet5oiQ5YqfJyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOaWreW8gOiTneeJmei/nuaOpVxyXG5cdFx0XHQgKi9cclxuXHRcdFx0Y2xvc2VCTEVDb25uZWN0aW9uKCkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR1bmkuY2xvc2VCTEVDb25uZWN0aW9uKHtcclxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmRldmljZUlkLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+aWreW8gOiTneeJmei/nuaOpeaIkOWKnycpO1xyXG5cdFx0XHRcdFx0XHR0aGF0LiRzdG9yZS5jb21taXQoXCJjaGFuZ2VDb25uZWN0ZWRcIiwgZmFsc2UpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZCBsYW5nPVwic2Nzc1wiPlxyXG5cdC5pbWFnZTMge1xyXG5cdFx0d2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XHJcblx0XHRoZWlnaHQ6IDM0MHB4ICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHQuc3RhdHVzIHtcclxuXHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0aGVpZ2h0OiAzNXB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDM1cHg7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxNXB4O1xyXG5cdFx0bWFyZ2luOiAxNXB4IGF1dG87XHJcblx0XHRwYWRkaW5nOiAwIDE1cHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkZGE2O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///335\n"); /***/ }), /* 336 */ @@ -34840,7 +35375,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _D_H /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar innerAudioContext = null;\nvar _default = {\n data: function data() {\n return {\n bpm: 0,\n isend: false,\n weight: 0,\n Ycount: 0,\n time_m: \"\",\n time_s: \"\",\n time: 0,\n kcal: 0,\n Bcount: 0,\n continuous: 0,\n info: {},\n isToggle: false,\n isEnd: false,\n iswrapper: false,\n isStart: false\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"isConnected\", \"isBluetoothTyle\"])),\n onLoad: function onLoad(options) {\n var that = this;\n innerAudioContext = uni.createInnerAudioContext();\n if (options && options.info) {\n var info = options.info;\n that.info = JSON.parse(info);\n that.notifyBLECharacteristicValue();\n setTimeout(function () {\n that.handleStart('开始');\n }, 900);\n setTimeout(function () {\n that.handleStart('连续');\n }, 1200);\n }\n that.handleAudioStart();\n that.$Bluetooth.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n onUnload: function onUnload() {\n var that = this;\n if (innerAudioContext) {\n innerAudioContext.destroy(); // 销毁实例\n }\n\n that.handleEnd();\n __f__(\"log\", \"PCT01返回onUnload\", \" at pageTwo/devices/PCT01.vue:118\");\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n uni.showModal({\n title: '连接已断开',\n content: '训练过程中已与设备连接中断,请重新连接设备再开始训练',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n that.handleTarget();\n }\n }\n });\n __f__(\"log\", \"蓝牙是否连接\", that.isConnected, \" at pageTwo/devices/PCT01.vue:134\");\n }\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n __f__(\"log\", \"蓝牙是否打开\", that.isBluetoothTyle, \" at pageTwo/devices/PCT01.vue:140\");\n }\n },\n // 开始跳绳\n isStart: function isStart() {\n var that = this;\n if (that.isStart) {\n that.handleAudio();\n }\n },\n // 切换模式\n isToggle: function isToggle() {\n var that = this;\n if (that.isToggle) {\n uni.showModal({\n title: '友情提示',\n content: '训练过程中请勿切换训练,返回训练',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n that.handleTarget();\n }, 600);\n }\n }\n });\n }\n },\n // 模式被结束\n isEnd: function isEnd() {\n var that = this;\n if (that.isEnd) {\n setTimeout(function () {\n that.handleStart('停止');\n }, 200);\n setTimeout(function () {\n that.handleGetMeasure();\n }, 400);\n }\n },\n // \n weight: function weight() {\n var that = this;\n if (that.info.active == 1) {\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == that.weight) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n }\n if (that.info.active == 2) {\n var time = that.time_m * 60 + that.time_s;\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == that.weight && Number(time) > 10) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n if (that.time_m == \"00\" && that.time_s == \"10\") {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/time.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n }\n if (that.info.active == 3) {\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == Number(that.Ycount) - Number(that.weight) && Number(that.weight) != 0) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n if (Number(that.weight) == 10) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/number.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n }\n }\n },\n methods: {\n handleAudioStart: function handleAudioStart() {\n var that = this;\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/Start.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 5000);\n },\n handleAudio: function handleAudio() {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = true;\n innerAudioContext.src = '/pageTwo/static/flight.mp3';\n innerAudioContext.play();\n },\n // 接收蓝牙数据\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.info.deviceId,\n serviceId: that.info.serviceId,\n characteristicId: that.info.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n var count = parseInt(value.substring(8, 12), 16);\n var Ycount = parseInt(value.substring(12, 16), 16); //设置次数\n var time = parseInt(value.substring(16, 20), 16); //运行时间/秒\n var timeDown = parseInt(value.substring(20, 24), 16); //倒计时时间\n var type = parseInt(value.substring(30, 32), 16); //当前状态\n var weight = parseInt(value.substring(32, 34), 16); //重量\n var kcal = parseInt(value.substring(34, 38), 16); //卡路里\n var minutes = null;\n var seconds = null;\n if (type == 0 || type == 4) {\n that.weight = count; //个数\n that.Ycount = Ycount;\n that.time = time;\n that.kcal = kcal / 10;\n if (that.info.active != 2 && count != 0) {\n //自由模式 + 计数\n minutes = Math.floor(time % 3600 / 60);\n seconds = time % 60;\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n }\n if (that.info.active == 2) {\n //计时\n var T = Number(timeDown) - Number(time);\n minutes = Math.floor(T % 3600 / 60);\n seconds = T % 60;\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n }\n that.Bcount = parseInt(value.substring(24, 26), 16); //绊绳个数\n that.continuous = parseInt(value.substring(26, 30), 16); //连续个数\n __f__(\"log\", \"自由模式\", count, kcal, time, that.time_m, that.time_s, weight, \" at pageTwo/devices/PCT01.vue:310\");\n }\n if ((type == 2 || type == 3) && !that.isToggle) {\n setTimeout(function () {\n that.isToggle = true;\n that.handleStart('停止');\n }, 200);\n __f__(\"log\", \"当前状态被切换\", \" at pageTwo/devices/PCT01.vue:317\");\n }\n if (type == 4 && !that.isEnd) {\n that.isEnd = true;\n __f__(\"log\", \"当前状态被结束\", \" at pageTwo/devices/PCT01.vue:322\");\n }\n });\n },\n fail: function fail(res) {\n __f__(\"log\", \"测量失败\", res.value, \" at pageTwo/devices/PCT01.vue:328\");\n }\n });\n },\n SendData: function SendData(str) {\n var that = this;\n var buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function (h) {\n return parseInt(h, 16);\n }));\n uni.writeBLECharacteristicValue({\n deviceId: that.info.deviceId,\n serviceId: that.info.serviceId,\n characteristicId: that.info.write,\n value: buf.buffer,\n success: function success(res) {\n __f__(\"log\", '下发指令成功', res.errMsg, \" at pageTwo/devices/PCT01.vue:343\");\n },\n fail: function fail(res) {\n __f__(\"log\", \"下发指令失败\", res, \" at pageTwo/devices/PCT01.vue:346\");\n }\n });\n },\n onlongpress: function onlongpress() {\n var that = this;\n uni.vibrateLong({\n success: function success() {\n __f__(\"log\", '短震动', \" at pageTwo/devices/PCT01.vue:354\");\n if (Number(that.time) < 10) {\n uni.showModal({\n title: '友情提示',\n content: '本次跳绳时间低于10秒,记录将不会被保存?',\n confirmText: \"继续\",\n cancelText: \"返回\",\n success: function success(res) {\n if (res.cancel) {\n that.isStart = false;\n innerAudioContext.stop();\n uni.navigateBack({\n //返回\n delta: 1\n });\n }\n }\n });\n } else {\n that.handleStart('停止');\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n that.handleGetMeasure();\n }, 800);\n }\n },\n fail: function fail(err) {\n __f__(\"error\", '震动失败:', err, \" at pageTwo/devices/PCT01.vue:383\");\n }\n });\n },\n // 保存测量结果\n handleGetMeasure: function handleGetMeasure() {\n var that = this;\n if (that.info.active == 3 && that.weight == 0 && that.Ycount != 0) {\n __f__(\"log\", \"1\", that.weight, that.Ycount, \" at pageTwo/devices/PCT01.vue:391\");\n that.weight = that.Ycount;\n } else if (that.info.active == 3 && that.weight != 0 && that.Ycount != 0) {\n __f__(\"log\", \"2\", that.weight, that.Ycount, \" at pageTwo/devices/PCT01.vue:394\");\n that.weight = Number(that.Ycount) - Number(that.weight);\n }\n if (that.info.active == 2) {\n that.time_m = Math.floor(that.time % 3600 / 60);\n that.time_s = that.time % 60;\n }\n __f__(\"log\", \"111111保存\", that.weight, that.Ycount, that.time_m, that.time_s, \" at pageTwo/devices/PCT01.vue:401\");\n that.$model.getskipResult({\n aud_id: uni.getStorageSync('userid'),\n kcal: Math.floor(that.kcal),\n num: that.weight,\n time_m: Number(that.time_m),\n time_s: that.time_s,\n type: that.info.active == 1 ? 'free' : that.info.active == 2 ? 'time' : 'num'\n }).then(function (res) {\n __f__(\"log\", \"保存\", that.time, res, \" at pageTwo/devices/PCT01.vue:410\");\n that.isStart = false;\n innerAudioContext.stop();\n if (res.code == 0) {\n that.bpm = that.weight / (that.time / 60);\n that.iswrapper = true;\n that.info.isSuccessful = true;\n that.$store.dispatch('getUserInfo', {\n aud_id: uni.getStorageSync('userid')\n });\n } else {\n that.$tools.msg(res.msg);\n }\n });\n },\n // 开始指令\n handleStart: function handleStart(text) {\n var that = this;\n var j = null;\n var str = null;\n if (text == '连续') {\n j = Number(165 + 5 + 3).toString(16);\n str = \"A5050300\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"连续连续\", str, \" at pageTwo/devices/PCT01.vue:433\");\n }\n if (text == '停止') {\n j = Number(165 + 5 + 3 + 5).toString(16);\n str = \"A5050305\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"停止连续\", str, \" at pageTwo/devices/PCT01.vue:438\");\n }\n if (text == '开始') {\n j = Number(165 + 5 + 5).toString(16);\n str = \"A5050500\" + j.substr(j.length - 2, 2);\n }\n if (text == '结束') {\n j = Number(165 + 5 + 5 + 1).toString(16);\n str = \"A5050501\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"结束指令\", str, \" at pageTwo/devices/PCT01.vue:447\");\n }\n if (text == '继续') {\n j = Number(165 + 5 + 4).toString(16);\n str = \"A5050400\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"继续指令\", str, \" at pageTwo/devices/PCT01.vue:452\");\n }\n if (text == '暂停') {\n j = Number(165 + 5 + 4 + 1).toString(16);\n str = \"A5050401\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"暂停指令\", str, \" at pageTwo/devices/PCT01.vue:457\");\n }\n that.SendData(str);\n },\n handleTarget: function handleTarget() {\n var that = this;\n innerAudioContext.stop();\n uni.navigateBack({\n //返回\n delta: 1\n });\n },\n // \n handleEnd: function handleEnd() {\n var that = this;\n that.handleStart('停止');\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n uni.$emit('updateData', JSON.stringify(that.info));\n }, 600);\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZVR3by9kZXZpY2VzL1BDVDAxLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiYnBtIiwiaXNlbmQiLCJ3ZWlnaHQiLCJZY291bnQiLCJ0aW1lX20iLCJ0aW1lX3MiLCJ0aW1lIiwia2NhbCIsIkJjb3VudCIsImNvbnRpbnVvdXMiLCJpbmZvIiwiaXNUb2dnbGUiLCJpc0VuZCIsImlzd3JhcHBlciIsImlzU3RhcnQiLCJjb21wdXRlZCIsIm9uTG9hZCIsImlubmVyQXVkaW9Db250ZXh0IiwidGhhdCIsInNldFRpbWVvdXQiLCJ1bmkiLCJvblVubG9hZCIsIndhdGNoIiwiaXNDb25uZWN0ZWQiLCJ0aXRsZSIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwic3VjY2VzcyIsImlzQmx1ZXRvb3RoVHlsZSIsIm1ldGhvZHMiLCJoYW5kbGVBdWRpb1N0YXJ0IiwiaGFuZGxlQXVkaW8iLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwic3RhdGUiLCJkZXZpY2VJZCIsInNlcnZpY2VJZCIsImNoYXJhY3RlcmlzdGljSWQiLCJtaW51dGVzIiwic2Vjb25kcyIsImZhaWwiLCJTZW5kRGF0YSIsInZhbHVlIiwib25sb25ncHJlc3MiLCJjb25maXJtVGV4dCIsImNhbmNlbFRleHQiLCJkZWx0YSIsImhhbmRsZUdldE1lYXN1cmUiLCJhdWRfaWQiLCJudW0iLCJ0eXBlIiwiaGFuZGxlU3RhcnQiLCJqIiwic3RyIiwiaGFuZGxlVGFyZ2V0IiwiaGFuZGxlRW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWdFQTtBQUVBO0FBQUE7QUFDQTtBQUFBLGVBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsNEJBQ0Esd0RBQ0E7RUFDQUM7SUFDQTtJQUNBQztJQUNBO01BQ0E7TUFDQUM7TUFDQUE7TUFDQUM7UUFDQUQ7TUFDQTtNQUNBQztRQUNBRDtNQUNBO0lBQ0E7SUFDQUE7SUFDQUE7SUFDQUU7TUFDQUY7SUFDQTtFQUNBO0VBQ0FHO0lBQ0E7SUFDQTtNQUNBSjtJQUNBOztJQUNBQztJQUNBO0VBQ0E7RUFDQUk7SUFDQUM7TUFDQTtNQUNBO1FBQ0FIO1VBQ0FJO1VBQ0FDO1VBQ0FDO1VBQ0FDO1lBQ0E7Y0FDQVQ7WUFDQTtVQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQVU7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWQ7TUFDQTtNQUNBO1FBQ0FJO01BQ0E7SUFDQTtJQUNBO0lBQ0FQO01BQ0E7TUFDQTtRQUNBUztVQUNBSTtVQUNBQztVQUNBQztVQUNBQztZQUNBO2NBQ0FSO2dCQUNBRDtjQUNBO2NBQ0FDO2dCQUNBRDtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FOO01BQ0E7TUFDQTtRQUNBTztVQUNBRDtRQUNBO1FBQ0FDO1VBQ0FEO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWhCO01BQ0E7TUFDQTtRQUNBZ0I7VUFDQTtZQUNBRDtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBRTtjQUNBRjtjQUNBQztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBQTtVQUNBO1lBQ0FEO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FFO2NBQ0FGO2NBQ0FDO1lBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQUQ7VUFDQUE7VUFDQUE7VUFDQUE7VUFDQUU7WUFDQUY7WUFDQUM7VUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBQTtVQUNBLGlGQUNBaEI7WUFDQWU7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUU7Y0FDQUY7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBRDtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBRTtZQUNBRjtZQUNBQztVQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQVc7SUFDQUM7TUFDQTtNQUNBYjtNQUNBQTtNQUNBQTtNQUNBQTtNQUNBRTtRQUNBRjtRQUNBQztNQUNBO0lBQ0E7SUFDQWE7TUFDQWQ7TUFDQUE7TUFDQUE7TUFDQUE7SUFDQTtJQUNBO0lBQ0FlO01BQ0E7TUFDQVo7UUFDQWE7UUFBQTtRQUNBQztRQUNBQztRQUNBQztRQUNBVDtVQUNBUDtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7Y0FDQUY7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQTtnQkFBQTtnQkFDQW1CO2dCQUNBQztnQkFDQXBCO2dCQUNBQTtjQUNBO2NBQ0E7Z0JBQUE7Z0JBQ0E7Z0JBQ0FtQjtnQkFDQUM7Z0JBQ0FwQjtnQkFDQUE7Y0FDQTtjQUNBQTtjQUNBQTtjQUNBO1lBQ0E7WUFDQTtjQUNBQztnQkFDQUQ7Z0JBQ0FBO2NBQ0E7Y0FDQTtZQUVBO1lBQ0E7Y0FDQUE7Y0FDQTtZQUNBO1VBRUE7UUFDQTtRQUNBcUI7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0FwQjtRQUNBYztRQUNBQztRQUNBQztRQUNBSztRQUNBZDtVQUNBO1FBQ0E7UUFDQVk7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBRztNQUNBO01BQ0F0QjtRQUNBTztVQUNBO1VBQ0E7WUFDQVA7Y0FDQUk7Y0FDQUM7Y0FDQWtCO2NBQ0FDO2NBQ0FqQjtnQkFDQTtrQkFDQVQ7a0JBQ0FEO2tCQUNBRztvQkFBQTtvQkFDQXlCO2tCQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0EzQjtZQUNBQztjQUNBRDtZQUNBO1lBQ0FDO2NBQ0FEO1lBQ0E7VUFFQTtRQUNBO1FBQ0FxQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtNQUNBO1FBQ0E7UUFDQTVCO01BQ0E7UUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQUE7UUFDQUE7TUFDQTtNQUNBO01BQ0FBO1FBQ0E2QjtRQUNBeEM7UUFDQXlDO1FBQ0E1QztRQUNBQztRQUNBNEM7TUFDQTtRQUNBO1FBQ0EvQjtRQUNBRDtRQUNBO1VBQ0FDO1VBQ0FBO1VBQ0FBO1VBQ0FBO1lBQ0E2QjtVQUNBO1FBQ0E7VUFDQTdCO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWdDO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQUM7UUFDQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQUM7UUFDQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQUM7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBbEM7SUFDQTtJQUNBbUM7TUFDQTtNQUNBcEM7TUFDQUc7UUFBQTtRQUNBeUI7TUFDQTtJQUNBO0lBQ0E7SUFDQVM7TUFDQTtNQUNBcEM7TUFDQUM7UUFDQUQ7TUFDQTtNQUNBQztRQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzUwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldyBjbGFzcz1cImNvbnRlbnQgc2tpcHBpbmdcIj5cblx0XHQ8IS0t6Ieq55Sx6K6t57uDICAtLT5cblx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+e3tpbmZvLmFjdGl2ZT09MT8n6Ieq55Sx6LezJzppbmZvLmFjdGl2ZT09Mj8n5YCS6K6h5pe2Jzon5YCS6K6h5pWwJ319PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwic2tpcHRvcFwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj57e2luZm8uYWN0aXZlPT0xPyfoh6rnlLHmrKHmlbAnOmluZm8uYWN0aXZlPT0yP1wi5Liq5pWwXCI6J+ebruagh+asoeaVsCd9fTx0ZXh0Pnt7d2VpZ2h0fX08L3RleHQ+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPlxuXHRcdFx0XHRcdHt7aW5mby5hY3RpdmU9PTI/J+ebruagh+aXtumVvyDliIY656eSJzpcIuWIhjrnp5JcIn19PHRleHQ+e3t0aW1lX20/dGltZV9tOicwMCd9fTp7e3RpbWVfcz90aW1lX3M6JzAwJ319PC90ZXh0PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj7mtojogJcva2NhbDx0ZXh0Pnt7TWF0aC5mbG9vcihrY2FsKX19PC90ZXh0Pjwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdDxpbWFnZSBzcmM9XCIvcGFnZVR3by9zdGF0aWMvdDAxLmdpZlwiPjwvaW1hZ2U+XG5cdFx0PC92aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwiZW5kXCIgQGxvbmdwcmVzcz1cIm9ubG9uZ3ByZXNzXCI+6ZW/5oyJ57uT5p2fPC92aWV3PlxuXHRcdDwhLS0g5oql5ZGKIC0tPlxuXHRcdDx2aWV3IGNsYXNzPVwid3JhcHBlclwiIHYtaWY9XCJpc3dyYXBwZXJcIj5cblx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlZGl0XCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlZGl0ZW1cIj5cblx0XHRcdFx0XHRcdDx2aWV3PuW5s+Wdh+mAn+W6pu+8mjx0ZXh0IGNsYXNzPVwiY3llbGxvIEJsdWUgc2l6ZTIwIG1yLTVcIj57e2JwbS50b0ZpeGVkKDEpfX08L3RleHQ+YnBtPC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzaXplMTIgYzk5OSBcIj4oYnBtPeS4qi/liIbpkp8pPC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNlbnRlclwiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIvcGFnZVR3by9zdGF0aWMvZHVhbi5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdOS4reaWreasoeaVsFxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY3llbGxvIEJsdWUgc2l6ZTIwIG1yLTVcIj57e0Jjb3VudH19PC90ZXh0PuasoVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PCEtLSAgLS0+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cblx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9wYWdlVHdvL3N0YXRpYy94dS5wbmdcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdOacgOmVv+i/nue7rVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiY3llbGxvIEJsdWUgc2l6ZTIwIG1yLTVcIj57e2NvbnRpbnVvdXN9fTwvdGV4dD7kuKpcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+PHRleHQ+e3t3ZWlnaHR9fTwvdGV4dD7orq3nu4PkuKrmlbA8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+PHRleHQ+e3t0aW1lX20/dGltZV9tOicwMCd9fTp7e3RpbWVfcz90aW1lX3M6JzAwJ319PC90ZXh0PuWIhjrnp5I8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+PHRleHQ+e3tNYXRoLmZsb29yKGtjYWwpfX08L3RleHQ+5raI6ICXL2tjYWw8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnRuXCIgQGNsaWNrPVwiaGFuZGxlVGFyZ2V0XCI+5a6M5oiQPC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHQ8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXHRpbXBvcnQge1xuXHRcdG1hcFN0YXRlXG5cdH0gZnJvbSBcInZ1ZXhcIjtcblx0bGV0IGlubmVyQXVkaW9Db250ZXh0ID0gbnVsbDtcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRicG06IDAsXG5cdFx0XHRcdGlzZW5kOiBmYWxzZSxcblx0XHRcdFx0d2VpZ2h0OiAwLFxuXHRcdFx0XHRZY291bnQ6IDAsXG5cdFx0XHRcdHRpbWVfbTogXCJcIixcblx0XHRcdFx0dGltZV9zOiBcIlwiLFxuXHRcdFx0XHR0aW1lOiAwLFxuXHRcdFx0XHRrY2FsOiAwLFxuXHRcdFx0XHRCY291bnQ6IDAsXG5cdFx0XHRcdGNvbnRpbnVvdXM6IDAsXG5cdFx0XHRcdGluZm86IHt9LFxuXHRcdFx0XHRpc1RvZ2dsZTogZmFsc2UsXG5cdFx0XHRcdGlzRW5kOiBmYWxzZSxcblx0XHRcdFx0aXN3cmFwcGVyOiBmYWxzZSxcblx0XHRcdFx0aXNTdGFydDogZmFsc2Vcblx0XHRcdH1cblx0XHR9LFxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHQuLi5tYXBTdGF0ZShbXCJpc0Nvbm5lY3RlZFwiLCBcImlzQmx1ZXRvb3RoVHlsZVwiXSksXG5cdFx0fSxcblx0XHRvbkxvYWQob3B0aW9ucykge1xuXHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRpbm5lckF1ZGlvQ29udGV4dCA9IHVuaS5jcmVhdGVJbm5lckF1ZGlvQ29udGV4dCgpXG5cdFx0XHRpZiAob3B0aW9ucyAmJiBvcHRpb25zLmluZm8pIHtcblx0XHRcdFx0bGV0IGluZm8gPSBvcHRpb25zLmluZm9cblx0XHRcdFx0dGhhdC5pbmZvID0gSlNPTi5wYXJzZShpbmZvKVxuXHRcdFx0XHR0aGF0Lm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoKVxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+W8gOWniycpXG5cdFx0XHRcdH0sIDkwMClcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCfov57nu60nKVxuXHRcdFx0XHR9LCAxMjAwKVxuXHRcdFx0fVxuXHRcdFx0dGhhdC5oYW5kbGVBdWRpb1N0YXJ0KClcblx0XHRcdHRoYXQuJEJsdWV0b290aC5vbkJMRUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpXG5cdFx0XHR1bmkub25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUJsdWV0b290aFwiLCByZXMuYXZhaWxhYmxlKTtcblx0XHRcdH0pXG5cdFx0fSxcblx0XHRvblVubG9hZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdGlmIChpbm5lckF1ZGlvQ29udGV4dCkge1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5kZXN0cm95KCk7IC8vIOmUgOavgeWunuS+i1xuXHRcdFx0fVxuXHRcdFx0dGhhdC5oYW5kbGVFbmQoKVxuXHRcdFx0Y29uc29sZS5sb2coXCJQQ1QwMei/lOWbnm9uVW5sb2FkXCIpXG5cdFx0fSxcblx0XHR3YXRjaDoge1xuXHRcdFx0aXNDb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0aWYgKCF0aGF0LmlzQ29ubmVjdGVkKSB7XG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XG5cdFx0XHRcdFx0XHR0aXRsZTogJ+i/nuaOpeW3suaWreW8gCcsXG5cdFx0XHRcdFx0XHRjb250ZW50OiAn6K6t57uD6L+H56iL5Lit5bey5LiO6K6+5aSH6L+e5o6l5Lit5pat77yM6K+36YeN5paw6L+e5o6l6K6+5aSH5YaN5byA5aeL6K6t57uDJyxcblx0XHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxuXHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXMuY29uZmlybSkge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlVGFyZ2V0KClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLok53niZnmmK/lkKbov57mjqVcIiwgdGhhdC5pc0Nvbm5lY3RlZClcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGlzQmx1ZXRvb3RoVHlsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpZiAoIXRoYXQuaXNCbHVldG9vdGhUeWxlKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLok53niZnmmK/lkKbmiZPlvIBcIiwgdGhhdC5pc0JsdWV0b290aFR5bGUpXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHQvLyDlvIDlp4vot7Pnu7Ncblx0XHRcdGlzU3RhcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0aWYgKHRoYXQuaXNTdGFydCkge1xuXHRcdFx0XHRcdHRoYXQuaGFuZGxlQXVkaW8oKVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Ly8g5YiH5o2i5qih5byPXG5cdFx0XHRpc1RvZ2dsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpZiAodGhhdC5pc1RvZ2dsZSkge1xuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xuXHRcdFx0XHRcdFx0dGl0bGU6ICflj4vmg4Xmj5DnpLonLFxuXHRcdFx0XHRcdFx0Y29udGVudDogJ+iuree7g+i/h+eoi+S4reivt+WLv+WIh+aNouiuree7g++8jOi/lOWbnuiuree7gycsXG5cdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCgn57uT5p2fJylcblx0XHRcdFx0XHRcdFx0XHR9LCA0MDApXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlVGFyZ2V0KClcblx0XHRcdFx0XHRcdFx0XHR9LCA2MDApXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Ly8g5qih5byP6KKr57uT5p2fXG5cdFx0XHRpc0VuZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpZiAodGhhdC5pc0VuZCkge1xuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCflgZzmraInKVxuXHRcdFx0XHRcdH0sIDIwMClcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVHZXRNZWFzdXJlKClcblx0XHRcdFx0XHR9LCA0MDApXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHQvLyBcblx0XHRcdHdlaWdodDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAxKSB7XG5cdFx0XHRcdFx0dGhhdC4kdmlkZW8udmlkZW8uZm9yRWFjaChpdGUgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKE51bWJlcihpdGUubmFtZSkgPT0gdGhhdC53ZWlnaHQpIHtcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuYXV0b3BsYXkgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnNyYyA9IGl0ZS52aWRlbztcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQucGxheSgpXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3RvcCgpO1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlQXVkaW8oKVxuXHRcdFx0XHRcdFx0XHR9LCAzMDAwKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoYXQuaW5mby5hY3RpdmUgPT0gMikge1xuXHRcdFx0XHRcdGxldCB0aW1lID0gdGhhdC50aW1lX20gKiA2MCArIHRoYXQudGltZV9zXG5cdFx0XHRcdFx0dGhhdC4kdmlkZW8udmlkZW8uZm9yRWFjaChpdGUgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKChOdW1iZXIoaXRlLm5hbWUpID09IHRoYXQud2VpZ2h0KSAmJiAoTnVtYmVyKHRpbWUpID4gMTApKSB7XG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQubG9vcCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSBpdGUudmlkZW87XG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnN0b3AoKTtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcblx0XHRcdFx0XHRcdFx0fSwgMzAwMClcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdGlmICh0aGF0LnRpbWVfbSA9PSBcIjAwXCIgJiYgdGhhdC50aW1lX3MgPT0gXCIxMFwiKSB7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5hdXRvcGxheSA9IHRydWU7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSAnL3BhZ2VUd28vc3RhdGljL3RpbWUubXAzJztcblx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxuXHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3RvcCgpO1xuXHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcblx0XHRcdFx0XHRcdH0sIDMwMDApXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGF0LmluZm8uYWN0aXZlID09IDMpIHtcblx0XHRcdFx0XHR0aGF0LiR2aWRlby52aWRlby5mb3JFYWNoKGl0ZSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoKE51bWJlcihpdGUubmFtZSkgPT0gKE51bWJlcih0aGF0Llljb3VudCkgLSBOdW1iZXIodGhhdC53ZWlnaHQpKSkgJiYgTnVtYmVyKHRoYXRcblx0XHRcdFx0XHRcdFx0XHQud2VpZ2h0KSAhPSAwKSB7XG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQubG9vcCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSBpdGUudmlkZW87XG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnN0b3AoKTtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcblx0XHRcdFx0XHRcdFx0fSwgMzAwMClcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdGlmIChOdW1iZXIodGhhdC53ZWlnaHQpID09IDEwKSB7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5hdXRvcGxheSA9IHRydWU7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSAnL3BhZ2VUd28vc3RhdGljL251bWJlci5tcDMnO1xuXHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQucGxheSgpXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XG5cdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlQXVkaW8oKVxuXHRcdFx0XHRcdFx0fSwgMzAwMClcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0fSxcblx0XHRtZXRob2RzOiB7XG5cdFx0XHRoYW5kbGVBdWRpb1N0YXJ0KCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuYXV0b3BsYXkgPSB0cnVlO1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XG5cdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnNyYyA9ICcvcGFnZVR3by9zdGF0aWMvU3RhcnQubXAzJztcblx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQucGxheSgpXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3RvcCgpO1xuXHRcdFx0XHRcdHRoYXQuaGFuZGxlQXVkaW8oKVxuXHRcdFx0XHR9LCA1MDAwKVxuXHRcdFx0fSxcblx0XHRcdGhhbmRsZUF1ZGlvKCkge1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5hdXRvcGxheSA9IHRydWU7XG5cdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0Lmxvb3AgPSB0cnVlO1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSAnL3BhZ2VUd28vc3RhdGljL2ZsaWdodC5tcDMnO1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5wbGF5KClcblx0XHRcdH0sXG5cdFx0XHQvLyDmjqXmlLbok53niZnmlbDmja5cblx0XHRcdG5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdFx0dW5pLm5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2Uoe1xuXHRcdFx0XHRcdHN0YXRlOiB0cnVlLCAvLyDlkK/nlKggbm90aWZ5IOWKn+iDvVxuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmluZm8uZGV2aWNlSWQsXG5cdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LmluZm8uc2VydmljZUlkLFxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQuaW5mby5ub3RpZnksXG5cdFx0XHRcdFx0c3VjY2VzcyhyZXMpIHtcblx0XHRcdFx0XHRcdHVuaS5vbkJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2UoZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0XHRcdGxldCB2YWx1ZSA9IHRoYXQuJHRvb2xzLmFiMmhleChyZXMudmFsdWUsIFwiXCIpO1xuXHRcdFx0XHRcdFx0XHRsZXQgY291bnQgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoOCwgMTIpLCAxNilcblx0XHRcdFx0XHRcdFx0bGV0IFljb3VudCA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygxMiwgMTYpLCAxNikgLy/orr7nva7mrKHmlbBcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWUgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMTYsIDIwKSwgMTYpIC8v6L+Q6KGM5pe26Ze0L+enklxuXHRcdFx0XHRcdFx0XHRsZXQgdGltZURvd24gPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMjAsIDI0KSwgMTYpIC8v5YCS6K6h5pe25pe26Ze0XG5cdFx0XHRcdFx0XHRcdGxldCB0eXBlID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDMwLCAzMiksIDE2KSAvL+W9k+WJjeeKtuaAgVxuXHRcdFx0XHRcdFx0XHRsZXQgd2VpZ2h0ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDMyLCAzNCksIDE2KSAvL+mHjemHj1xuXHRcdFx0XHRcdFx0XHRsZXQga2NhbCA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygzNCwgMzgpLCAxNikgLy/ljaHot6/ph4xcblx0XHRcdFx0XHRcdFx0bGV0IG1pbnV0ZXMgPSBudWxsXG5cdFx0XHRcdFx0XHRcdGxldCBzZWNvbmRzID0gbnVsbFxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZSA9PSAwIHx8IHR5cGUgPT0gNCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQud2VpZ2h0ID0gY291bnQgLy/kuKrmlbBcblx0XHRcdFx0XHRcdFx0XHR0aGF0Llljb3VudCA9IFljb3VudFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQudGltZSA9IHRpbWVcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmtjYWwgPSBrY2FsIC8gMTBcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSAhPSAyICYmIGNvdW50ICE9IDApIHsgLy/oh6rnlLHmqKHlvI8gKyAg6K6h5pWwXG5cdFx0XHRcdFx0XHRcdFx0XHRtaW51dGVzID0gTWF0aC5mbG9vcigodGltZSAlIDM2MDApIC8gNjApXG5cdFx0XHRcdFx0XHRcdFx0XHRzZWNvbmRzID0gdGltZSAlIDYwXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpbWVfbSA9IG1pbnV0ZXMgPiA5ID8gbWludXRlcyA6ICcwJyArIG1pbnV0ZXNcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQudGltZV9zID0gc2Vjb25kcyA+IDkgPyBzZWNvbmRzIDogJzAnICsgc2Vjb25kc1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAyKSB7IC8v6K6h5pe2XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgVCA9IE51bWJlcih0aW1lRG93bikgLSBOdW1iZXIodGltZSlcblx0XHRcdFx0XHRcdFx0XHRcdG1pbnV0ZXMgPSBNYXRoLmZsb29yKChUICUgMzYwMCkgLyA2MClcblx0XHRcdFx0XHRcdFx0XHRcdHNlY29uZHMgPSBUICUgNjBcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQudGltZV9tID0gbWludXRlcyA+IDkgPyBtaW51dGVzIDogJzAnICsgbWludXRlc1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aW1lX3MgPSBzZWNvbmRzID4gOSA/IHNlY29uZHMgOiAnMCcgKyBzZWNvbmRzXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuQmNvdW50ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDI0LCAyNiksIDE2KSAvL+e7iue7s+S4quaVsFxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuY29udGludW91cyA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygyNiwgMzApLCAxNikgLy/ov57nu63kuKrmlbBcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiHqueUseaooeW8j1wiLCBjb3VudCwga2NhbCwgdGltZSwgdGhhdC50aW1lX20sIHRoYXQudGltZV9zLCB3ZWlnaHQpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYgKCh0eXBlID09IDIgfHwgdHlwZSA9PSAzKSAmJiAhdGhhdC5pc1RvZ2dsZSkge1xuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmlzVG9nZ2xlID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCgn5YGc5q2iJylcblx0XHRcdFx0XHRcdFx0XHR9LCAyMDApXG5cdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLlvZPliY3nirbmgIHooqvliIfmjaJcIilcblxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlID09IDQgJiYgIXRoYXQuaXNFbmQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmlzRW5kID0gdHJ1ZVxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5b2T5YmN54q25oCB6KKr57uT5p2fXCIpXG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGZhaWwocmVzKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIua1i+mHj+Wksei0pVwiLCByZXMudmFsdWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0sXG5cdFx0XHRTZW5kRGF0YShzdHIpIHtcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXG5cdFx0XHRcdGxldCBidWYgPSBuZXcgVWludDhBcnJheShzdHIubWF0Y2goL1tcXGRhLWZdezJ9L2dpKS5tYXAoZnVuY3Rpb24oaCkge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZUludChoLCAxNilcblx0XHRcdFx0fSkpXG5cdFx0XHRcdHVuaS53cml0ZUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoe1xuXHRcdFx0XHRcdGRldmljZUlkOiB0aGF0LmluZm8uZGV2aWNlSWQsXG5cdFx0XHRcdFx0c2VydmljZUlkOiB0aGF0LmluZm8uc2VydmljZUlkLFxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQuaW5mby53cml0ZSxcblx0XHRcdFx0XHR2YWx1ZTogYnVmLmJ1ZmZlcixcblx0XHRcdFx0XHRzdWNjZXNzOiByZXMgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S4i+WPkeaMh+S7pOaIkOWKnycsIHJlcy5lcnJNc2cpXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRmYWlsOiByZXMgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkuIvlj5HmjIfku6TlpLHotKVcIiwgcmVzKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdG9ubG9uZ3ByZXNzKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0dW5pLnZpYnJhdGVMb25nKHtcblx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnn63pnIfliqgnKTtcblx0XHRcdFx0XHRcdGlmIChOdW1iZXIodGhhdC50aW1lKSA8IDEwKSB7XG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiAn5Y+L5oOF5o+Q56S6Jyxcblx0XHRcdFx0XHRcdFx0XHRjb250ZW50OiAn5pys5qyh6Lez57uz5pe26Ze05L2O5LqOMTDnp5LvvIzorrDlvZXlsIbkuI3kvJrooqvkv53lrZjvvJ8nLFxuXHRcdFx0XHRcdFx0XHRcdGNvbmZpcm1UZXh0OiBcIue7p+e7rVwiLFxuXHRcdFx0XHRcdFx0XHRcdGNhbmNlbFRleHQ6IFwi6L+U5ZueXCIsXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVzLmNhbmNlbCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmlzU3RhcnQgPSBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soeyAvL+i/lOWbnlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlbHRhOiAxXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+WBnOatoicpXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCgn57uT5p2fJylcblx0XHRcdFx0XHRcdFx0fSwgNDAwKVxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlR2V0TWVhc3VyZSgpXG5cdFx0XHRcdFx0XHRcdH0sIDgwMClcblxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZmFpbDogZnVuY3Rpb24oZXJyKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCfpnIfliqjlpLHotKXvvJonLCBlcnIpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5L+d5a2Y5rWL6YeP57uT5p6cXG5cdFx0XHRoYW5kbGVHZXRNZWFzdXJlKCkge1xuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcblx0XHRcdFx0aWYgKHRoYXQuaW5mby5hY3RpdmUgPT0gMyAmJiB0aGF0LndlaWdodCA9PSAwICYmIHRoYXQuWWNvdW50ICE9IDApIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIjFcIiwgdGhhdC53ZWlnaHQsIHRoYXQuWWNvdW50KVxuXHRcdFx0XHRcdHRoYXQud2VpZ2h0ID0gdGhhdC5ZY291bnRcblx0XHRcdFx0fSBlbHNlIGlmICh0aGF0LmluZm8uYWN0aXZlID09IDMgJiYgdGhhdC53ZWlnaHQgIT0gMCAmJiB0aGF0Llljb3VudCAhPSAwKSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCIyXCIsIHRoYXQud2VpZ2h0LCB0aGF0Llljb3VudClcblx0XHRcdFx0XHR0aGF0LndlaWdodCA9IE51bWJlcih0aGF0Llljb3VudCkgLSBOdW1iZXIodGhhdC53ZWlnaHQpXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoYXQuaW5mby5hY3RpdmUgPT0gMikge1xuXHRcdFx0XHRcdHRoYXQudGltZV9tID0gTWF0aC5mbG9vcigodGhhdC50aW1lICUgMzYwMCkgLyA2MClcblx0XHRcdFx0XHR0aGF0LnRpbWVfcyA9IHRoYXQudGltZSAlIDYwXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc29sZS5sb2coXCIxMTExMTHkv53lrZhcIiwgdGhhdC53ZWlnaHQsIHRoYXQuWWNvdW50LCB0aGF0LnRpbWVfbSwgdGhhdC50aW1lX3MpXG5cdFx0XHRcdHRoYXQuJG1vZGVsLmdldHNraXBSZXN1bHQoe1xuXHRcdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKSxcblx0XHRcdFx0XHRrY2FsOiBNYXRoLmZsb29yKHRoYXQua2NhbCksXG5cdFx0XHRcdFx0bnVtOiB0aGF0LndlaWdodCxcblx0XHRcdFx0XHR0aW1lX206IE51bWJlcih0aGF0LnRpbWVfbSksXG5cdFx0XHRcdFx0dGltZV9zOiB0aGF0LnRpbWVfcyxcblx0XHRcdFx0XHR0eXBlOiB0aGF0LmluZm8uYWN0aXZlID09IDEgPyAnZnJlZScgOiB0aGF0LmluZm8uYWN0aXZlID09IDIgPyAndGltZScgOiAnbnVtJ1xuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkv53lrZhcIiwgdGhhdC50aW1lLCByZXMpXG5cdFx0XHRcdFx0dGhhdC5pc1N0YXJ0ID0gZmFsc2Vcblx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKClcblx0XHRcdFx0XHRpZiAocmVzLmNvZGUgPT0gMCkge1xuXHRcdFx0XHRcdFx0dGhhdC5icG0gPSB0aGF0LndlaWdodCAvICh0aGF0LnRpbWUgLyA2MClcblx0XHRcdFx0XHRcdHRoYXQuaXN3cmFwcGVyID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhhdC5pbmZvLmlzU3VjY2Vzc2Z1bCA9IHRydWVcblx0XHRcdFx0XHRcdHRoYXQuJHN0b3JlLmRpc3BhdGNoKCdnZXRVc2VySW5mbycsIHtcblx0XHRcdFx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2cocmVzLm1zZylcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8g5byA5aeL5oyH5LukXG5cdFx0XHRoYW5kbGVTdGFydCh0ZXh0KSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRsZXQgaiA9IG51bGxcblx0XHRcdFx0bGV0IHN0ciA9IG51bGxcblx0XHRcdFx0aWYgKHRleHQgPT0gJ+i/nue7rScpIHtcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyAzKS50b1N0cmluZygxNilcblx0XHRcdFx0XHRzdHIgPSBcIkE1MDUwMzAwXCIgKyBqLnN1YnN0cihqLmxlbmd0aCAtIDIsIDIpXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLov57nu63ov57nu61cIiwgc3RyKVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0ZXh0ID09ICflgZzmraInKSB7XG5cdFx0XHRcdFx0aiA9IE51bWJlcigxNjUgKyA1ICsgMyArIDUpLnRvU3RyaW5nKDE2KVxuXHRcdFx0XHRcdHN0ciA9IFwiQTUwNTAzMDVcIiArIGouc3Vic3RyKGoubGVuZ3RoIC0gMiwgMilcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWBnOatoui/nue7rVwiLCBzdHIpXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRleHQgPT0gJ+W8gOWniycpIHtcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyA1KS50b1N0cmluZygxNilcblx0XHRcdFx0XHRzdHIgPSBcIkE1MDUwNTAwXCIgKyBqLnN1YnN0cihqLmxlbmd0aCAtIDIsIDIpXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRleHQgPT0gJ+e7k+adnycpIHtcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyA1ICsgMSkudG9TdHJpbmcoMTYpXG5cdFx0XHRcdFx0c3RyID0gXCJBNTA1MDUwMVwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi57uT5p2f5oyH5LukXCIsIHN0cilcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGV4dCA9PSAn57un57utJykge1xuXHRcdFx0XHRcdGogPSBOdW1iZXIoMTY1ICsgNSArIDQpLnRvU3RyaW5nKDE2KVxuXHRcdFx0XHRcdHN0ciA9IFwiQTUwNTA0MDBcIiArIGouc3Vic3RyKGoubGVuZ3RoIC0gMiwgMilcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIue7p+e7reaMh+S7pFwiLCBzdHIpXG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRleHQgPT0gJ+aaguWBnCcpIHtcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyA0ICsgMSkudG9TdHJpbmcoMTYpXG5cdFx0XHRcdFx0c3RyID0gXCJBNTA1MDQwMVwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5pqC5YGc5oyH5LukXCIsIHN0cilcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGF0LlNlbmREYXRhKHN0cilcblx0XHRcdH0sXG5cdFx0XHRoYW5kbGVUYXJnZXQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soeyAvL+i/lOWbnlxuXHRcdFx0XHRcdGRlbHRhOiAxXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8gXG5cdFx0XHRoYW5kbGVFbmQoKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xuXHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCflgZzmraInKVxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+e7k+adnycpXG5cdFx0XHRcdH0sIDQwMClcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHR1bmkuJGVtaXQoJ3VwZGF0ZURhdGEnLCBKU09OLnN0cmluZ2lmeSh0aGF0LmluZm8pKVxuXHRcdFx0XHR9LCA2MDApXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuXHRAaW1wb3J0IFwiLi9zY3NzL1BDVDAxLnNjc3NcIjtcbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///350\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _vuex = __webpack_require__(/*! vuex */ 46);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar innerAudioContext = null;\nvar _default = {\n data: function data() {\n return {\n bpm: 0,\n isend: false,\n weight: 0,\n Ycount: 0,\n time_m: \"\",\n time_s: \"\",\n time: 0,\n kcal: 0,\n Bcount: 0,\n continuous: 0,\n info: {},\n isToggle: false,\n isEnd: false,\n iswrapper: false,\n isStart: false\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"isConnected\", \"isBluetoothTyle\"])),\n onLoad: function onLoad(options) {\n var that = this;\n innerAudioContext = uni.createInnerAudioContext();\n if (options && options.info) {\n var info = options.info;\n that.info = JSON.parse(info);\n that.notifyBLECharacteristicValue();\n setTimeout(function () {\n that.handleStart('开始');\n }, 900);\n setTimeout(function () {\n that.handleStart('连续');\n }, 1200);\n }\n that.handleAudioStart();\n that.$Bluetooth.onBLEConnectionStateChange();\n uni.onBluetoothAdapterStateChange(function (res) {\n that.$store.commit(\"changeBluetooth\", res.available);\n });\n },\n onUnload: function onUnload() {\n var that = this;\n if (innerAudioContext) {\n innerAudioContext.destroy(); // 销毁实例\n }\n\n that.handleEnd();\n __f__(\"log\", \"PCT01返回onUnload\", \" at pageTwo/devices/PCT01.vue:118\");\n },\n watch: {\n isConnected: function isConnected() {\n var that = this;\n if (!that.isConnected) {\n uni.showModal({\n title: '连接已断开',\n content: '训练过程中已与设备连接中断,请重新连接设备再开始训练',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n that.handleTarget();\n }\n }\n });\n __f__(\"log\", \"蓝牙是否连接\", that.isConnected, \" at pageTwo/devices/PCT01.vue:134\");\n }\n },\n isBluetoothTyle: function isBluetoothTyle() {\n var that = this;\n if (!that.isBluetoothTyle) {\n __f__(\"log\", \"蓝牙是否打开\", that.isBluetoothTyle, \" at pageTwo/devices/PCT01.vue:140\");\n }\n },\n // 开始跳绳\n isStart: function isStart() {\n var that = this;\n if (that.isStart) {\n that.handleAudio();\n }\n },\n // 切换模式\n isToggle: function isToggle() {\n var that = this;\n if (that.isToggle) {\n uni.showModal({\n title: '友情提示',\n content: '训练过程中请勿切换训练,返回训练',\n showCancel: false,\n success: function success(res) {\n if (res.confirm) {\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n that.handleTarget();\n }, 600);\n }\n }\n });\n }\n },\n // 模式被结束\n isEnd: function isEnd() {\n var that = this;\n if (that.isEnd) {\n setTimeout(function () {\n that.handleStart('停止');\n }, 200);\n setTimeout(function () {\n that.handleGetMeasure();\n }, 400);\n }\n },\n // \n weight: function weight() {\n var that = this;\n if (that.info.active == 1) {\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == that.weight) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n }\n if (that.info.active == 2) {\n var time = that.time_m * 60 + that.time_s;\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == that.weight && Number(time) > 10) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n if (that.time_m == \"00\" && that.time_s == \"10\") {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/time.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n }\n if (that.info.active == 3) {\n that.$video.video.forEach(function (ite) {\n if (Number(ite.name) == Number(that.Ycount) - Number(that.weight) && Number(that.weight) != 0) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = ite.video;\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n });\n if (Number(that.weight) == 10) {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/number.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 3000);\n }\n }\n }\n },\n methods: {\n handleAudioStart: function handleAudioStart() {\n var that = this;\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = false;\n innerAudioContext.src = '/pageTwo/static/Start.mp3';\n innerAudioContext.play();\n setTimeout(function () {\n innerAudioContext.stop();\n that.handleAudio();\n }, 5000);\n },\n handleAudio: function handleAudio() {\n innerAudioContext.autoplay = true;\n innerAudioContext.loop = true;\n innerAudioContext.src = '/pageTwo/static/flight.mp3';\n innerAudioContext.play();\n },\n // 接收蓝牙数据\n notifyBLECharacteristicValue: function notifyBLECharacteristicValue() {\n var that = this;\n uni.notifyBLECharacteristicValueChange({\n state: true,\n // 启用 notify 功能\n deviceId: that.info.deviceId,\n serviceId: that.info.serviceId,\n characteristicId: that.info.notify,\n success: function success(res) {\n uni.onBLECharacteristicValueChange(function (res) {\n var value = that.$tools.ab2hex(res.value, \"\");\n var count = parseInt(value.substring(8, 12), 16);\n var Ycount = parseInt(value.substring(12, 16), 16); //设置次数\n var time = parseInt(value.substring(16, 20), 16); //运行时间/秒\n var timeDown = parseInt(value.substring(20, 24), 16); //倒计时时间\n var type = parseInt(value.substring(30, 32), 16); //当前状态\n var weight = parseInt(value.substring(32, 34), 16); //重量\n var kcal = parseInt(value.substring(34, 38), 16); //卡路里\n var minutes = null;\n var seconds = null;\n if (type == 0 || type == 4) {\n that.weight = count; //个数\n that.Ycount = Ycount;\n that.time = time;\n that.kcal = kcal / 10;\n if (that.info.active != 2 && count != 0) {\n //自由模式 + 计数\n minutes = Math.floor(time % 3600 / 60);\n seconds = time % 60;\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n }\n if (that.info.active == 2) {\n //计时\n var T = Number(timeDown) - Number(time);\n minutes = Math.floor(T % 3600 / 60);\n seconds = T % 60;\n that.time_m = minutes > 9 ? minutes : '0' + minutes;\n that.time_s = seconds > 9 ? seconds : '0' + seconds;\n }\n that.Bcount = parseInt(value.substring(24, 26), 16); //绊绳个数\n that.continuous = parseInt(value.substring(26, 30), 16); //连续个数\n __f__(\"log\", \"自由模式\", count, kcal, time, that.time_m, that.time_s, weight, \" at pageTwo/devices/PCT01.vue:310\");\n }\n if ((type == 2 || type == 3) && !that.isToggle) {\n setTimeout(function () {\n that.isToggle = true;\n that.handleStart('停止');\n }, 200);\n __f__(\"log\", \"当前状态被切换\", \" at pageTwo/devices/PCT01.vue:317\");\n }\n if (type == 4 && !that.isEnd) {\n that.isEnd = true;\n __f__(\"log\", \"当前状态被结束\", \" at pageTwo/devices/PCT01.vue:322\");\n }\n });\n },\n fail: function fail(res) {\n __f__(\"log\", \"测量失败\", res.value, \" at pageTwo/devices/PCT01.vue:328\");\n }\n });\n },\n SendData: function SendData(str) {\n var that = this;\n var buf = new Uint8Array(str.match(/[\\da-f]{2}/gi).map(function (h) {\n return parseInt(h, 16);\n }));\n uni.writeBLECharacteristicValue({\n deviceId: that.info.deviceId,\n serviceId: that.info.serviceId,\n characteristicId: that.info.write,\n value: buf.buffer,\n success: function success(res) {\n __f__(\"log\", '下发指令成功', res.errMsg, \" at pageTwo/devices/PCT01.vue:343\");\n },\n fail: function fail(res) {\n __f__(\"log\", \"下发指令失败\", res, \" at pageTwo/devices/PCT01.vue:346\");\n }\n });\n },\n onlongpress: function onlongpress() {\n var that = this;\n uni.vibrateLong({\n success: function success() {\n __f__(\"log\", '短震动', \" at pageTwo/devices/PCT01.vue:354\");\n if (Number(that.time) < 10) {\n uni.showModal({\n title: '友情提示',\n content: '本次跳绳时间低于10秒,记录将不会被保存?',\n confirmText: \"继续\",\n cancelText: \"返回\",\n success: function success(res) {\n if (res.cancel) {\n that.isStart = false;\n innerAudioContext.stop();\n uni.navigateBack({\n //返回\n delta: 1\n });\n }\n }\n });\n } else {\n that.handleStart('停止');\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n that.handleGetMeasure();\n }, 800);\n }\n },\n fail: function fail(err) {\n __f__(\"error\", '震动失败:', err, \" at pageTwo/devices/PCT01.vue:383\");\n }\n });\n },\n // 保存测量结果\n handleGetMeasure: function handleGetMeasure() {\n var that = this;\n if (that.info.active == 3 && that.weight == 0 && that.Ycount != 0) {\n __f__(\"log\", \"1\", that.weight, that.Ycount, \" at pageTwo/devices/PCT01.vue:391\");\n that.weight = that.Ycount;\n } else if (that.info.active == 3 && that.weight != 0 && that.Ycount != 0) {\n __f__(\"log\", \"2\", that.weight, that.Ycount, \" at pageTwo/devices/PCT01.vue:394\");\n that.weight = Number(that.Ycount) - Number(that.weight);\n }\n if (that.info.active == 2) {\n that.time_m = Math.floor(that.time % 3600 / 60);\n that.time_s = that.time % 60;\n }\n __f__(\"log\", \"111111保存\", that.weight, that.Ycount, that.time_m, that.time_s, \" at pageTwo/devices/PCT01.vue:401\");\n that.$model.getskipResult({\n aud_id: uni.getStorageSync('userid'),\n kcal: Math.floor(that.kcal),\n num: that.weight,\n time_m: Number(that.time_m),\n time_s: that.time_s,\n type: that.info.active == 1 ? 'free' : that.info.active == 2 ? 'time' : 'num'\n }).then(function (res) {\n __f__(\"log\", \"保存\", that.time, res, \" at pageTwo/devices/PCT01.vue:410\");\n that.isStart = false;\n innerAudioContext.stop();\n if (res.code == 0) {\n that.bpm = that.weight / (that.time / 60);\n that.iswrapper = true;\n that.info.isSuccessful = true;\n that.$store.dispatch('getUserInfo', {\n aud_id: uni.getStorageSync('userid')\n });\n } else {\n that.$tools.msg(res.msg);\n }\n });\n },\n // 开始指令\n handleStart: function handleStart(text) {\n var that = this;\n var j = null;\n var str = null;\n if (text == '连续') {\n j = Number(165 + 5 + 3).toString(16);\n str = \"A5050300\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"连续连续\", str, \" at pageTwo/devices/PCT01.vue:433\");\n }\n if (text == '停止') {\n j = Number(165 + 5 + 3 + 5).toString(16);\n str = \"A5050305\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"停止连续\", str, \" at pageTwo/devices/PCT01.vue:438\");\n }\n if (text == '开始') {\n j = Number(165 + 5 + 5).toString(16);\n str = \"A5050500\" + j.substr(j.length - 2, 2);\n }\n if (text == '结束') {\n j = Number(165 + 5 + 5 + 1).toString(16);\n str = \"A5050501\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"结束指令\", str, \" at pageTwo/devices/PCT01.vue:447\");\n }\n if (text == '继续') {\n j = Number(165 + 5 + 4).toString(16);\n str = \"A5050400\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"继续指令\", str, \" at pageTwo/devices/PCT01.vue:452\");\n }\n if (text == '暂停') {\n j = Number(165 + 5 + 4 + 1).toString(16);\n str = \"A5050401\" + j.substr(j.length - 2, 2);\n __f__(\"log\", \"暂停指令\", str, \" at pageTwo/devices/PCT01.vue:457\");\n }\n that.SendData(str);\n },\n handleTarget: function handleTarget() {\n var that = this;\n innerAudioContext.stop();\n uni.navigateBack({\n //返回\n delta: 1\n });\n },\n // \n handleEnd: function handleEnd() {\n var that = this;\n that.handleStart('停止');\n setTimeout(function () {\n that.handleStart('结束');\n }, 400);\n setTimeout(function () {\n uni.$emit('updateData', JSON.stringify(that.info));\n }, 600);\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZVR3by9kZXZpY2VzL1BDVDAxLnZ1ZSJdLCJuYW1lcyI6WyJkYXRhIiwiYnBtIiwiaXNlbmQiLCJ3ZWlnaHQiLCJZY291bnQiLCJ0aW1lX20iLCJ0aW1lX3MiLCJ0aW1lIiwia2NhbCIsIkJjb3VudCIsImNvbnRpbnVvdXMiLCJpbmZvIiwiaXNUb2dnbGUiLCJpc0VuZCIsImlzd3JhcHBlciIsImlzU3RhcnQiLCJjb21wdXRlZCIsIm9uTG9hZCIsImlubmVyQXVkaW9Db250ZXh0IiwidGhhdCIsInNldFRpbWVvdXQiLCJ1bmkiLCJvblVubG9hZCIsIndhdGNoIiwiaXNDb25uZWN0ZWQiLCJ0aXRsZSIsImNvbnRlbnQiLCJzaG93Q2FuY2VsIiwic3VjY2VzcyIsImlzQmx1ZXRvb3RoVHlsZSIsIm1ldGhvZHMiLCJoYW5kbGVBdWRpb1N0YXJ0IiwiaGFuZGxlQXVkaW8iLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwic3RhdGUiLCJkZXZpY2VJZCIsInNlcnZpY2VJZCIsImNoYXJhY3RlcmlzdGljSWQiLCJtaW51dGVzIiwic2Vjb25kcyIsImZhaWwiLCJTZW5kRGF0YSIsInZhbHVlIiwib25sb25ncHJlc3MiLCJjb25maXJtVGV4dCIsImNhbmNlbFRleHQiLCJkZWx0YSIsImhhbmRsZUdldE1lYXN1cmUiLCJhdWRfaWQiLCJudW0iLCJ0eXBlIiwiaGFuZGxlU3RhcnQiLCJqIiwic3RyIiwiaGFuZGxlVGFyZ2V0IiwiaGFuZGxlRW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWdFQTtBQUVBO0FBQUE7QUFDQTtBQUFBLGVBQ0E7RUFDQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsNEJBQ0Esd0RBQ0E7RUFDQUM7SUFDQTtJQUNBQztJQUNBO01BQ0E7TUFDQUM7TUFDQUE7TUFDQUM7UUFDQUQ7TUFDQTtNQUNBQztRQUNBRDtNQUNBO0lBQ0E7SUFDQUE7SUFDQUE7SUFDQUU7TUFDQUY7SUFDQTtFQUNBO0VBQ0FHO0lBQ0E7SUFDQTtNQUNBSjtJQUNBOztJQUNBQztJQUNBO0VBQ0E7RUFDQUk7SUFDQUM7TUFDQTtNQUNBO1FBQ0FIO1VBQ0FJO1VBQ0FDO1VBQ0FDO1VBQ0FDO1lBQ0E7Y0FDQVQ7WUFDQTtVQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQVU7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWQ7TUFDQTtNQUNBO1FBQ0FJO01BQ0E7SUFDQTtJQUNBO0lBQ0FQO01BQ0E7TUFDQTtRQUNBUztVQUNBSTtVQUNBQztVQUNBQztVQUNBQztZQUNBO2NBQ0FSO2dCQUNBRDtjQUNBO2NBQ0FDO2dCQUNBRDtjQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FOO01BQ0E7TUFDQTtRQUNBTztVQUNBRDtRQUNBO1FBQ0FDO1VBQ0FEO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWhCO01BQ0E7TUFDQTtRQUNBZ0I7VUFDQTtZQUNBRDtZQUNBQTtZQUNBQTtZQUNBQTtZQUNBRTtjQUNBRjtjQUNBQztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBQTtVQUNBO1lBQ0FEO1lBQ0FBO1lBQ0FBO1lBQ0FBO1lBQ0FFO2NBQ0FGO2NBQ0FDO1lBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQUQ7VUFDQUE7VUFDQUE7VUFDQUE7VUFDQUU7WUFDQUY7WUFDQUM7VUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBQTtVQUNBLGlGQUNBaEI7WUFDQWU7WUFDQUE7WUFDQUE7WUFDQUE7WUFDQUU7Y0FDQUY7Y0FDQUM7WUFDQTtVQUNBO1FBQ0E7UUFDQTtVQUNBRDtVQUNBQTtVQUNBQTtVQUNBQTtVQUNBRTtZQUNBRjtZQUNBQztVQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQVc7SUFDQUM7TUFDQTtNQUNBYjtNQUNBQTtNQUNBQTtNQUNBQTtNQUNBRTtRQUNBRjtRQUNBQztNQUNBO0lBQ0E7SUFDQWE7TUFDQWQ7TUFDQUE7TUFDQUE7TUFDQUE7SUFDQTtJQUNBO0lBQ0FlO01BQ0E7TUFDQVo7UUFDQWE7UUFBQTtRQUNBQztRQUNBQztRQUNBQztRQUNBVDtVQUNBUDtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7Y0FDQUY7Y0FDQUE7Y0FDQUE7Y0FDQUE7Y0FDQTtnQkFBQTtnQkFDQW1CO2dCQUNBQztnQkFDQXBCO2dCQUNBQTtjQUNBO2NBQ0E7Z0JBQUE7Z0JBQ0E7Z0JBQ0FtQjtnQkFDQUM7Z0JBQ0FwQjtnQkFDQUE7Y0FDQTtjQUNBQTtjQUNBQTtjQUNBO1lBQ0E7WUFDQTtjQUNBQztnQkFDQUQ7Z0JBQ0FBO2NBQ0E7Y0FDQTtZQUVBO1lBQ0E7Y0FDQUE7Y0FDQTtZQUNBO1VBRUE7UUFDQTtRQUNBcUI7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0FwQjtRQUNBYztRQUNBQztRQUNBQztRQUNBSztRQUNBZDtVQUNBO1FBQ0E7UUFDQVk7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBRztNQUNBO01BQ0F0QjtRQUNBTztVQUNBO1VBQ0E7WUFDQVA7Y0FDQUk7Y0FDQUM7Y0FDQWtCO2NBQ0FDO2NBQ0FqQjtnQkFDQTtrQkFDQVQ7a0JBQ0FEO2tCQUNBRztvQkFBQTtvQkFDQXlCO2tCQUNBO2dCQUNBO2NBQ0E7WUFDQTtVQUNBO1lBQ0EzQjtZQUNBQztjQUNBRDtZQUNBO1lBQ0FDO2NBQ0FEO1lBQ0E7VUFFQTtRQUNBO1FBQ0FxQjtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQU87TUFDQTtNQUNBO1FBQ0E7UUFDQTVCO01BQ0E7UUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQUE7UUFDQUE7TUFDQTtNQUNBO01BQ0FBO1FBQ0E2QjtRQUNBeEM7UUFDQXlDO1FBQ0E1QztRQUNBQztRQUNBNEM7TUFDQTtRQUNBO1FBQ0EvQjtRQUNBRDtRQUNBO1VBQ0FDO1VBQ0FBO1VBQ0FBO1VBQ0FBO1lBQ0E2QjtVQUNBO1FBQ0E7VUFDQTdCO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQWdDO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQUM7UUFDQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQUM7UUFDQTtNQUNBO01BQ0E7UUFDQUQ7UUFDQUM7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBO1FBQ0FEO1FBQ0FDO1FBQ0E7TUFDQTtNQUNBbEM7SUFDQTtJQUNBbUM7TUFDQTtNQUNBcEM7TUFDQUc7UUFBQTtRQUNBeUI7TUFDQTtJQUNBO0lBQ0E7SUFDQVM7TUFDQTtNQUNBcEM7TUFDQUM7UUFDQUQ7TUFDQTtNQUNBQztRQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzUwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGVudCBza2lwcGluZ1wiPlxyXG5cdFx0PCEtLeiHqueUseiuree7gyAgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+e3tpbmZvLmFjdGl2ZT09MT8n6Ieq55Sx6LezJzppbmZvLmFjdGl2ZT09Mj8n5YCS6K6h5pe2Jzon5YCS6K6h5pWwJ319PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJza2lwdG9wXCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj57e2luZm8uYWN0aXZlPT0xPyfoh6rnlLHmrKHmlbAnOmluZm8uYWN0aXZlPT0yP1wi5Liq5pWwXCI6J+ebruagh+asoeaVsCd9fTx0ZXh0Pnt7d2VpZ2h0fX08L3RleHQ+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj5cclxuXHRcdFx0XHRcdHt7aW5mby5hY3RpdmU9PTI/J+ebruagh+aXtumVvyDliIY656eSJzpcIuWIhjrnp5JcIn19PHRleHQ+e3t0aW1lX20/dGltZV9tOicwMCd9fTp7e3RpbWVfcz90aW1lX3M6JzAwJ319PC90ZXh0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+5raI6ICXL2tjYWw8dGV4dD57e01hdGguZmxvb3Ioa2NhbCl9fTwvdGV4dD48L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiaW1hZ2VcIj5cclxuXHRcdDxpbWFnZSBzcmM9XCIvcGFnZVR3by9zdGF0aWMvdDAxLmdpZlwiPjwvaW1hZ2U+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cImVuZFwiIEBsb25ncHJlc3M9XCJvbmxvbmdwcmVzc1wiPumVv+aMiee7k+adnzwvdmlldz5cclxuXHRcdDwhLS0g5oql5ZGKIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ3cmFwcGVyXCIgdi1pZj1cImlzd3JhcHBlclwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XHJcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJlZGl0XCI+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImVkaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8dmlldz7lubPlnYfpgJ/luqbvvJo8dGV4dCBjbGFzcz1cImN5ZWxsbyBCbHVlIHNpemUyMCBtci01XCI+e3ticG0udG9GaXhlZCgxKX19PC90ZXh0PmJwbTwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzaXplMTIgYzk5OSBcIj4oYnBtPeS4qi/liIbpkp8pPC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi9wYWdlVHdvL3N0YXRpYy9kdWFuLnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx05Lit5pat5qyh5pWwXHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjeWVsbG8gQmx1ZSBzaXplMjAgbXItNVwiPnt7QmNvdW50fX08L3RleHQ+5qyhXHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdDwhLS0gIC0tPlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiL3BhZ2VUd28vc3RhdGljL3h1LnBuZ1wiPjwvaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx05pyA6ZW/6L+e57utXHJcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dmlldz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJjeWVsbG8gQmx1ZSBzaXplMjAgbXItNVwiPnt7Y29udGludW91c319PC90ZXh0PuS4qlxyXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbS1pdGVcIj48dGV4dD57e3dlaWdodH19PC90ZXh0Puiuree7g+S4quaVsDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtLWl0ZVwiPjx0ZXh0Pnt7dGltZV9tP3RpbWVfbTonMDAnfX06e3t0aW1lX3M/dGltZV9zOicwMCd9fTwvdGV4dD7liIY656eSPC92aWV3PlxyXG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW0taXRlXCI+PHRleHQ+e3tNYXRoLmZsb29yKGtjYWwpfX08L3RleHQ+5raI6ICXL2tjYWw8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJ0blwiIEBjbGljaz1cImhhbmRsZVRhcmdldFwiPuWujOaIkDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCB7XHJcblx0XHRtYXBTdGF0ZVxyXG5cdH0gZnJvbSBcInZ1ZXhcIjtcclxuXHRsZXQgaW5uZXJBdWRpb0NvbnRleHQgPSBudWxsO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0YnBtOiAwLFxyXG5cdFx0XHRcdGlzZW5kOiBmYWxzZSxcclxuXHRcdFx0XHR3ZWlnaHQ6IDAsXHJcblx0XHRcdFx0WWNvdW50OiAwLFxyXG5cdFx0XHRcdHRpbWVfbTogXCJcIixcclxuXHRcdFx0XHR0aW1lX3M6IFwiXCIsXHJcblx0XHRcdFx0dGltZTogMCxcclxuXHRcdFx0XHRrY2FsOiAwLFxyXG5cdFx0XHRcdEJjb3VudDogMCxcclxuXHRcdFx0XHRjb250aW51b3VzOiAwLFxyXG5cdFx0XHRcdGluZm86IHt9LFxyXG5cdFx0XHRcdGlzVG9nZ2xlOiBmYWxzZSxcclxuXHRcdFx0XHRpc0VuZDogZmFsc2UsXHJcblx0XHRcdFx0aXN3cmFwcGVyOiBmYWxzZSxcclxuXHRcdFx0XHRpc1N0YXJ0OiBmYWxzZVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0Li4ubWFwU3RhdGUoW1wiaXNDb25uZWN0ZWRcIiwgXCJpc0JsdWV0b290aFR5bGVcIl0pLFxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRpbm5lckF1ZGlvQ29udGV4dCA9IHVuaS5jcmVhdGVJbm5lckF1ZGlvQ29udGV4dCgpXHJcblx0XHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMuaW5mbykge1xyXG5cdFx0XHRcdGxldCBpbmZvID0gb3B0aW9ucy5pbmZvXHJcblx0XHRcdFx0dGhhdC5pbmZvID0gSlNPTi5wYXJzZShpbmZvKVxyXG5cdFx0XHRcdHRoYXQubm90aWZ5QkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSgpXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+W8gOWniycpXHJcblx0XHRcdFx0fSwgOTAwKVxyXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCfov57nu60nKVxyXG5cdFx0XHRcdH0sIDEyMDApXHJcblx0XHRcdH1cclxuXHRcdFx0dGhhdC5oYW5kbGVBdWRpb1N0YXJ0KClcclxuXHRcdFx0dGhhdC4kQmx1ZXRvb3RoLm9uQkxFQ29ubmVjdGlvblN0YXRlQ2hhbmdlKClcclxuXHRcdFx0dW5pLm9uQmx1ZXRvb3RoQWRhcHRlclN0YXRlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdHRoYXQuJHN0b3JlLmNvbW1pdChcImNoYW5nZUJsdWV0b290aFwiLCByZXMuYXZhaWxhYmxlKTtcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHRvblVubG9hZDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRpZiAoaW5uZXJBdWRpb0NvbnRleHQpIHtcclxuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5kZXN0cm95KCk7IC8vIOmUgOavgeWunuS+i1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoYXQuaGFuZGxlRW5kKClcclxuXHRcdFx0Y29uc29sZS5sb2coXCJQQ1QwMei/lOWbnm9uVW5sb2FkXCIpXHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0aXNDb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmICghdGhhdC5pc0Nvbm5lY3RlZCkge1xyXG5cdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiAn6L+e5o6l5bey5pat5byAJyxcclxuXHRcdFx0XHRcdFx0Y29udGVudDogJ+iuree7g+i/h+eoi+S4reW3suS4juiuvuWkh+i/nuaOpeS4reaWre+8jOivt+mHjeaWsOi/nuaOpeiuvuWkh+WGjeW8gOWni+iuree7gycsXHJcblx0XHRcdFx0XHRcdHNob3dDYW5jZWw6IGZhbHNlLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlVGFyZ2V0KClcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiTneeJmeaYr+WQpui/nuaOpVwiLCB0aGF0LmlzQ29ubmVjdGVkKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0aXNCbHVldG9vdGhUeWxlOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAoIXRoYXQuaXNCbHVldG9vdGhUeWxlKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiTneeJmeaYr+WQpuaJk+W8gFwiLCB0aGF0LmlzQmx1ZXRvb3RoVHlsZSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8gOWni+i3s+e7s1xyXG5cdFx0XHRpc1N0YXJ0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpZiAodGhhdC5pc1N0YXJ0KSB7XHJcblx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWIh+aNouaooeW8j1xyXG5cdFx0XHRpc1RvZ2dsZTogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHRoYXQuaXNUb2dnbGUpIHtcclxuXHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHR0aXRsZTogJ+WPi+aDheaPkOekuicsXHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICforq3nu4Pov4fnqIvkuK3or7fli7/liIfmjaLorq3nu4PvvIzov5Tlm57orq3nu4MnLFxyXG5cdFx0XHRcdFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHJlcy5jb25maXJtKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCfnu5PmnZ8nKVxyXG5cdFx0XHRcdFx0XHRcdFx0fSwgNDAwKVxyXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVUYXJnZXQoKVxyXG5cdFx0XHRcdFx0XHRcdFx0fSwgNjAwKVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaooeW8j+iiq+e7k+adn1xyXG5cdFx0XHRpc0VuZDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHRoYXQuaXNFbmQpIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+WBnOatoicpXHJcblx0XHRcdFx0XHR9LCAyMDApXHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUdldE1lYXN1cmUoKVxyXG5cdFx0XHRcdFx0fSwgNDAwKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gXHJcblx0XHRcdHdlaWdodDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0aWYgKHRoYXQuaW5mby5hY3RpdmUgPT0gMSkge1xyXG5cdFx0XHRcdFx0dGhhdC4kdmlkZW8udmlkZW8uZm9yRWFjaChpdGUgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoTnVtYmVyKGl0ZS5uYW1lKSA9PSB0aGF0LndlaWdodCkge1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3JjID0gaXRlLnZpZGVvO1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcclxuXHRcdFx0XHRcdFx0XHR9LCAzMDAwKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAyKSB7XHJcblx0XHRcdFx0XHRsZXQgdGltZSA9IHRoYXQudGltZV9tICogNjAgKyB0aGF0LnRpbWVfc1xyXG5cdFx0XHRcdFx0dGhhdC4kdmlkZW8udmlkZW8uZm9yRWFjaChpdGUgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoKE51bWJlcihpdGUubmFtZSkgPT0gdGhhdC53ZWlnaHQpICYmIChOdW1iZXIodGltZSkgPiAxMCkpIHtcclxuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5hdXRvcGxheSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQubG9vcCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnNyYyA9IGl0ZS52aWRlbztcclxuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5wbGF5KClcclxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3RvcCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVBdWRpbygpXHJcblx0XHRcdFx0XHRcdFx0fSwgMzAwMClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdGlmICh0aGF0LnRpbWVfbSA9PSBcIjAwXCIgJiYgdGhhdC50aW1lX3MgPT0gXCIxMFwiKSB7XHJcblx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQubG9vcCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zcmMgPSAnL3BhZ2VUd28vc3RhdGljL3RpbWUubXAzJztcclxuXHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQucGxheSgpXHJcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3RvcCgpO1xyXG5cdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlQXVkaW8oKVxyXG5cdFx0XHRcdFx0XHR9LCAzMDAwKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAzKSB7XHJcblx0XHRcdFx0XHR0aGF0LiR2aWRlby52aWRlby5mb3JFYWNoKGl0ZSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICgoTnVtYmVyKGl0ZS5uYW1lKSA9PSAoTnVtYmVyKHRoYXQuWWNvdW50KSAtIE51bWJlcih0aGF0LndlaWdodCkpKSAmJiBOdW1iZXIodGhhdFxyXG5cdFx0XHRcdFx0XHRcdFx0LndlaWdodCkgIT0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3JjID0gaXRlLnZpZGVvO1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcclxuXHRcdFx0XHRcdFx0XHR9LCAzMDAwKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0aWYgKE51bWJlcih0aGF0LndlaWdodCkgPT0gMTApIHtcclxuXHRcdFx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuYXV0b3BsYXkgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnNyYyA9ICcvcGFnZVR3by9zdGF0aWMvbnVtYmVyLm1wMyc7XHJcblx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnN0b3AoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcclxuXHRcdFx0XHRcdFx0fSwgMzAwMClcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRoYW5kbGVBdWRpb1N0YXJ0KCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LmF1dG9wbGF5ID0gdHJ1ZTtcclxuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5sb29wID0gZmFsc2U7XHJcblx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3JjID0gJy9wYWdlVHdvL3N0YXRpYy9TdGFydC5tcDMnO1xyXG5cdFx0XHRcdGlubmVyQXVkaW9Db250ZXh0LnBsYXkoKVxyXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XHJcblx0XHRcdFx0XHR0aGF0LmhhbmRsZUF1ZGlvKClcclxuXHRcdFx0XHR9LCA1MDAwKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVBdWRpbygpIHtcclxuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5hdXRvcGxheSA9IHRydWU7XHJcblx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQubG9vcCA9IHRydWU7XHJcblx0XHRcdFx0aW5uZXJBdWRpb0NvbnRleHQuc3JjID0gJy9wYWdlVHdvL3N0YXRpYy9mbGlnaHQubXAzJztcclxuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5wbGF5KClcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5o6l5pS26JOd54mZ5pWw5o2uXHJcblx0XHRcdG5vdGlmeUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHVuaS5ub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKHtcclxuXHRcdFx0XHRcdHN0YXRlOiB0cnVlLCAvLyDlkK/nlKggbm90aWZ5IOWKn+iDvVxyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuaW5mby5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5pbmZvLnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQuaW5mby5ub3RpZnksXHJcblx0XHRcdFx0XHRzdWNjZXNzKHJlcykge1xyXG5cdFx0XHRcdFx0XHR1bmkub25CTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlKGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdGxldCB2YWx1ZSA9IHRoYXQuJHRvb2xzLmFiMmhleChyZXMudmFsdWUsIFwiXCIpO1xyXG5cdFx0XHRcdFx0XHRcdGxldCBjb3VudCA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZyg4LCAxMiksIDE2KVxyXG5cdFx0XHRcdFx0XHRcdGxldCBZY291bnQgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMTIsIDE2KSwgMTYpIC8v6K6+572u5qyh5pWwXHJcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWUgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMTYsIDIwKSwgMTYpIC8v6L+Q6KGM5pe26Ze0L+enklxyXG5cdFx0XHRcdFx0XHRcdGxldCB0aW1lRG93biA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygyMCwgMjQpLCAxNikgLy/lgJLorqHml7bml7bpl7RcclxuXHRcdFx0XHRcdFx0XHRsZXQgdHlwZSA9IHBhcnNlSW50KHZhbHVlLnN1YnN0cmluZygzMCwgMzIpLCAxNikgLy/lvZPliY3nirbmgIFcclxuXHRcdFx0XHRcdFx0XHRsZXQgd2VpZ2h0ID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDMyLCAzNCksIDE2KSAvL+mHjemHj1xyXG5cdFx0XHRcdFx0XHRcdGxldCBrY2FsID0gcGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKDM0LCAzOCksIDE2KSAvL+WNoei3r+mHjFxyXG5cdFx0XHRcdFx0XHRcdGxldCBtaW51dGVzID0gbnVsbFxyXG5cdFx0XHRcdFx0XHRcdGxldCBzZWNvbmRzID0gbnVsbFxyXG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlID09IDAgfHwgdHlwZSA9PSA0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LndlaWdodCA9IGNvdW50IC8v5Liq5pWwXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0Llljb3VudCA9IFljb3VudFxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC50aW1lID0gdGltZVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5rY2FsID0ga2NhbCAvIDEwXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSAhPSAyICYmIGNvdW50ICE9IDApIHsgLy/oh6rnlLHmqKHlvI8gKyAg6K6h5pWwXHJcblx0XHRcdFx0XHRcdFx0XHRcdG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0aW1lICUgMzYwMCkgLyA2MClcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2Vjb25kcyA9IHRpbWUgJSA2MFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGF0LnRpbWVfbSA9IG1pbnV0ZXMgPiA5ID8gbWludXRlcyA6ICcwJyArIG1pbnV0ZXNcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aW1lX3MgPSBzZWNvbmRzID4gOSA/IHNlY29uZHMgOiAnMCcgKyBzZWNvbmRzXHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAyKSB7IC8v6K6h5pe2XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBUID0gTnVtYmVyKHRpbWVEb3duKSAtIE51bWJlcih0aW1lKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRtaW51dGVzID0gTWF0aC5mbG9vcigoVCAlIDM2MDApIC8gNjApXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNlY29uZHMgPSBUICUgNjBcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhhdC50aW1lX20gPSBtaW51dGVzID4gOSA/IG1pbnV0ZXMgOiAnMCcgKyBtaW51dGVzXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQudGltZV9zID0gc2Vjb25kcyA+IDkgPyBzZWNvbmRzIDogJzAnICsgc2Vjb25kc1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5CY291bnQgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMjQsIDI2KSwgMTYpIC8v57uK57uz5Liq5pWwXHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmNvbnRpbnVvdXMgPSBwYXJzZUludCh2YWx1ZS5zdWJzdHJpbmcoMjYsIDMwKSwgMTYpIC8v6L+e57ut5Liq5pWwXHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuiHqueUseaooeW8j1wiLCBjb3VudCwga2NhbCwgdGltZSwgdGhhdC50aW1lX20sIHRoYXQudGltZV9zLCB3ZWlnaHQpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmICgodHlwZSA9PSAyIHx8IHR5cGUgPT0gMykgJiYgIXRoYXQuaXNUb2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaXNUb2dnbGUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuaGFuZGxlU3RhcnQoJ+WBnOatoicpXHJcblx0XHRcdFx0XHRcdFx0XHR9LCAyMDApXHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuW9k+WJjeeKtuaAgeiiq+WIh+aNolwiKVxyXG5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKHR5cGUgPT0gNCAmJiAhdGhhdC5pc0VuZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5pc0VuZCA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5b2T5YmN54q25oCB6KKr57uT5p2fXCIpXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRmYWlsKHJlcykge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIua1i+mHj+Wksei0pVwiLCByZXMudmFsdWUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdFNlbmREYXRhKHN0cikge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCBidWYgPSBuZXcgVWludDhBcnJheShzdHIubWF0Y2goL1tcXGRhLWZdezJ9L2dpKS5tYXAoZnVuY3Rpb24oaCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KGgsIDE2KVxyXG5cdFx0XHRcdH0pKVxyXG5cdFx0XHRcdHVuaS53cml0ZUJMRUNoYXJhY3RlcmlzdGljVmFsdWUoe1xyXG5cdFx0XHRcdFx0ZGV2aWNlSWQ6IHRoYXQuaW5mby5kZXZpY2VJZCxcclxuXHRcdFx0XHRcdHNlcnZpY2VJZDogdGhhdC5pbmZvLnNlcnZpY2VJZCxcclxuXHRcdFx0XHRcdGNoYXJhY3RlcmlzdGljSWQ6IHRoYXQuaW5mby53cml0ZSxcclxuXHRcdFx0XHRcdHZhbHVlOiBidWYuYnVmZmVyLFxyXG5cdFx0XHRcdFx0c3VjY2VzczogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+S4i+WPkeaMh+S7pOaIkOWKnycsIHJlcy5lcnJNc2cpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogcmVzID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkuIvlj5HmjIfku6TlpLHotKVcIiwgcmVzKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0b25sb25ncHJlc3MoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dW5pLnZpYnJhdGVMb25nKHtcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn55+t6ZyH5YqoJyk7XHJcblx0XHRcdFx0XHRcdGlmIChOdW1iZXIodGhhdC50aW1lKSA8IDEwKSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dNb2RhbCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogJ+WPi+aDheaPkOekuicsXHJcblx0XHRcdFx0XHRcdFx0XHRjb250ZW50OiAn5pys5qyh6Lez57uz5pe26Ze05L2O5LqOMTDnp5LvvIzorrDlvZXlsIbkuI3kvJrooqvkv53lrZjvvJ8nLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZmlybVRleHQ6IFwi57un57utXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRjYW5jZWxUZXh0OiBcIui/lOWbnlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXMuY2FuY2VsKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdC5pc1N0YXJ0ID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7IC8v6L+U5ZueXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWx0YTogMVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCflgZzmraInKVxyXG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGF0LmhhbmRsZVN0YXJ0KCfnu5PmnZ8nKVxyXG5cdFx0XHRcdFx0XHRcdH0sIDQwMClcclxuXHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhhdC5oYW5kbGVHZXRNZWFzdXJlKClcclxuXHRcdFx0XHRcdFx0XHR9LCA4MDApXHJcblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZmFpbDogZnVuY3Rpb24oZXJyKSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ+mch+WKqOWksei0pe+8micsIGVycik7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOS/neWtmOa1i+mHj+e7k+aenFxyXG5cdFx0XHRoYW5kbGVHZXRNZWFzdXJlKCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGlmICh0aGF0LmluZm8uYWN0aXZlID09IDMgJiYgdGhhdC53ZWlnaHQgPT0gMCAmJiB0aGF0Llljb3VudCAhPSAwKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIjFcIiwgdGhhdC53ZWlnaHQsIHRoYXQuWWNvdW50KVxyXG5cdFx0XHRcdFx0dGhhdC53ZWlnaHQgPSB0aGF0Llljb3VudFxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhhdC5pbmZvLmFjdGl2ZSA9PSAzICYmIHRoYXQud2VpZ2h0ICE9IDAgJiYgdGhhdC5ZY291bnQgIT0gMCkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCIyXCIsIHRoYXQud2VpZ2h0LCB0aGF0Llljb3VudClcclxuXHRcdFx0XHRcdHRoYXQud2VpZ2h0ID0gTnVtYmVyKHRoYXQuWWNvdW50KSAtIE51bWJlcih0aGF0LndlaWdodClcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoYXQuaW5mby5hY3RpdmUgPT0gMikge1xyXG5cdFx0XHRcdFx0dGhhdC50aW1lX20gPSBNYXRoLmZsb29yKCh0aGF0LnRpbWUgJSAzNjAwKSAvIDYwKVxyXG5cdFx0XHRcdFx0dGhhdC50aW1lX3MgPSB0aGF0LnRpbWUgJSA2MFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIjExMTExMeS/neWtmFwiLCB0aGF0LndlaWdodCwgdGhhdC5ZY291bnQsIHRoYXQudGltZV9tLCB0aGF0LnRpbWVfcylcclxuXHRcdFx0XHR0aGF0LiRtb2RlbC5nZXRza2lwUmVzdWx0KHtcclxuXHRcdFx0XHRcdGF1ZF9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKCd1c2VyaWQnKSxcclxuXHRcdFx0XHRcdGtjYWw6IE1hdGguZmxvb3IodGhhdC5rY2FsKSxcclxuXHRcdFx0XHRcdG51bTogdGhhdC53ZWlnaHQsXHJcblx0XHRcdFx0XHR0aW1lX206IE51bWJlcih0aGF0LnRpbWVfbSksXHJcblx0XHRcdFx0XHR0aW1lX3M6IHRoYXQudGltZV9zLFxyXG5cdFx0XHRcdFx0dHlwZTogdGhhdC5pbmZvLmFjdGl2ZSA9PSAxID8gJ2ZyZWUnIDogdGhhdC5pbmZvLmFjdGl2ZSA9PSAyID8gJ3RpbWUnIDogJ251bSdcclxuXHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuS/neWtmFwiLCB0aGF0LnRpbWUsIHJlcylcclxuXHRcdFx0XHRcdHRoYXQuaXNTdGFydCA9IGZhbHNlXHJcblx0XHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKClcclxuXHRcdFx0XHRcdGlmIChyZXMuY29kZSA9PSAwKSB7XHJcblx0XHRcdFx0XHRcdHRoYXQuYnBtID0gdGhhdC53ZWlnaHQgLyAodGhhdC50aW1lIC8gNjApXHJcblx0XHRcdFx0XHRcdHRoYXQuaXN3cmFwcGVyID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR0aGF0LmluZm8uaXNTdWNjZXNzZnVsID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR0aGF0LiRzdG9yZS5kaXNwYXRjaCgnZ2V0VXNlckluZm8nLCB7XHJcblx0XHRcdFx0XHRcdFx0YXVkX2lkOiB1bmkuZ2V0U3RvcmFnZVN5bmMoJ3VzZXJpZCcpXHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGF0LiR0b29scy5tc2cocmVzLm1zZylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlvIDlp4vmjIfku6RcclxuXHRcdFx0aGFuZGxlU3RhcnQodGV4dCkge1xyXG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpc1xyXG5cdFx0XHRcdGxldCBqID0gbnVsbFxyXG5cdFx0XHRcdGxldCBzdHIgPSBudWxsXHJcblx0XHRcdFx0aWYgKHRleHQgPT0gJ+i/nue7rScpIHtcclxuXHRcdFx0XHRcdGogPSBOdW1iZXIoMTY1ICsgNSArIDMpLnRvU3RyaW5nKDE2KVxyXG5cdFx0XHRcdFx0c3RyID0gXCJBNTA1MDMwMFwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLov57nu63ov57nu61cIiwgc3RyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5YGc5q2iJykge1xyXG5cdFx0XHRcdFx0aiA9IE51bWJlcigxNjUgKyA1ICsgMyArIDUpLnRvU3RyaW5nKDE2KVxyXG5cdFx0XHRcdFx0c3RyID0gXCJBNTA1MDMwNVwiICsgai5zdWJzdHIoai5sZW5ndGggLSAyLCAyKVxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCLlgZzmraLov57nu61cIiwgc3RyKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGV4dCA9PSAn5byA5aeLJykge1xyXG5cdFx0XHRcdFx0aiA9IE51bWJlcigxNjUgKyA1ICsgNSkudG9TdHJpbmcoMTYpXHJcblx0XHRcdFx0XHRzdHIgPSBcIkE1MDUwNTAwXCIgKyBqLnN1YnN0cihqLmxlbmd0aCAtIDIsIDIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0ZXh0ID09ICfnu5PmnZ8nKSB7XHJcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyA1ICsgMSkudG9TdHJpbmcoMTYpXHJcblx0XHRcdFx0XHRzdHIgPSBcIkE1MDUwNTAxXCIgKyBqLnN1YnN0cihqLmxlbmd0aCAtIDIsIDIpXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIue7k+adn+aMh+S7pFwiLCBzdHIpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0ZXh0ID09ICfnu6fnu60nKSB7XHJcblx0XHRcdFx0XHRqID0gTnVtYmVyKDE2NSArIDUgKyA0KS50b1N0cmluZygxNilcclxuXHRcdFx0XHRcdHN0ciA9IFwiQTUwNTA0MDBcIiArIGouc3Vic3RyKGoubGVuZ3RoIC0gMiwgMilcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi57un57ut5oyH5LukXCIsIHN0cilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRleHQgPT0gJ+aaguWBnCcpIHtcclxuXHRcdFx0XHRcdGogPSBOdW1iZXIoMTY1ICsgNSArIDQgKyAxKS50b1N0cmluZygxNilcclxuXHRcdFx0XHRcdHN0ciA9IFwiQTUwNTA0MDFcIiArIGouc3Vic3RyKGoubGVuZ3RoIC0gMiwgMilcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5pqC5YGc5oyH5LukXCIsIHN0cilcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhhdC5TZW5kRGF0YShzdHIpXHJcblx0XHRcdH0sXHJcblx0XHRcdGhhbmRsZVRhcmdldCgpIHtcclxuXHRcdFx0XHRsZXQgdGhhdCA9IHRoaXNcclxuXHRcdFx0XHRpbm5lckF1ZGlvQ29udGV4dC5zdG9wKCk7XHJcblx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7IC8v6L+U5ZueXHJcblx0XHRcdFx0XHRkZWx0YTogMVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIFxyXG5cdFx0XHRoYW5kbGVFbmQoKSB7XHJcblx0XHRcdFx0bGV0IHRoYXQgPSB0aGlzXHJcblx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCgn5YGc5q2iJylcclxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0dGhhdC5oYW5kbGVTdGFydCgn57uT5p2fJylcclxuXHRcdFx0XHR9LCA0MDApXHJcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHVuaS4kZW1pdCgndXBkYXRlRGF0YScsIEpTT04uc3RyaW5naWZ5KHRoYXQuaW5mbykpXHJcblx0XHRcdFx0fSwgNjAwKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHRAaW1wb3J0IFwiLi9zY3NzL1BDVDAxLnNjc3NcIjtcclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///350\n"); /***/ }), /* 351 */ @@ -38584,6 +39119,7 @@ var render = function () { _vm._$s(32, "i", !_vm.hideSecond) ? _c( "picker-view-column", + { attrs: { _i: 32 } }, _vm._l( _vm._$s(33, "f", { forItems: _vm.seconds }), function (item, index, $25, $35) { @@ -39586,7 +40122,7 @@ var render = function () { ], 1 ) - : _c("view", [ + : _c("view", { attrs: { _i: "16-" + $30 } }, [ _c( "view", { @@ -40142,7 +40678,7 @@ var render = function () { ]), ]), _vm._$s("14-" + $31, "i", item.v2) - ? _c("view", [ + ? _c("view", { attrs: { _i: "14-" + $31 } }, [ _vm._v( _vm._$s( "14-" + $31, @@ -40162,7 +40698,7 @@ var render = function () { ]) : _vm._e(), _vm._$s("16-" + $31, "i", item.v3) - ? _c("view", [ + ? _c("view", { attrs: { _i: "16-" + $31 } }, [ _vm._v( _vm._$s( "16-" + $31, @@ -40257,7 +40793,7 @@ var render = function () { ]), ]), _vm._$s("24-" + $32, "i", ite.v2) - ? _c("view", [ + ? _c("view", { attrs: { _i: "24-" + $32 } }, [ _vm._v( _vm._$s( "24-" + $32, @@ -40277,7 +40813,7 @@ var render = function () { ]) : _vm._e(), _vm._$s("26-" + $32, "i", ite.v3) - ? _c("view", [ + ? _c("view", { attrs: { _i: "26-" + $32 } }, [ _vm._v( _vm._$s( "26-" + $32, @@ -40568,7 +41104,7 @@ var render = function () { ), ]), _vm._$s(15, "i", Number(_vm.memInfo.weightdiff) > 0) - ? _c("text", [ + ? _c("text", { attrs: { _i: 15 } }, [ _vm._v( _vm._$s( 15, @@ -40577,7 +41113,7 @@ var render = function () { ) ), ]) - : _c("text", [ + : _c("text", { attrs: { _i: 16 } }, [ _vm._v( _vm._$s( 16, @@ -40606,7 +41142,7 @@ var render = function () { ), ]), _vm._$s(19, "i", Number(_vm.memInfo.fat_wdiff) > 0) - ? _c("text", [ + ? _c("text", { attrs: { _i: 19 } }, [ _vm._v( _vm._$s( 19, @@ -40615,7 +41151,7 @@ var render = function () { ) ), ]) - : _c("text", [ + : _c("text", { attrs: { _i: 20 } }, [ _vm._v( _vm._$s( 20, @@ -40740,7 +41276,7 @@ var render = function () { ite.diffval == "0.00" || ite.diffval == "00:00:00" ) - ? _c("text", [ + ? _c("text", { attrs: { _i: "37-" + $30 } }, [ _vm._v( _vm._$s( "37-" + $30, diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js index db7a964a..fff7b5cc 100644 --- a/unpackage/dist/dev/app-plus/app-view.js +++ b/unpackage/dist/dev/app-plus/app-view.js @@ -3460,7 +3460,7 @@ module.exports = function (url, options) { } // eslint-disable-next-line no-underscore-dangle, no-param-reassign url = url && url.__esModule ? url.default : url - let isAbsoluteFile = false + var isAbsoluteFile = false if (typeof url !== 'string') { if (url.protocol && url.protocol === 'file:' && url.pathname) { isAbsoluteFile = true @@ -18769,59 +18769,61 @@ var render = function () { 1 ), _vm._l(_vm._$g(37, "f"), function (ite, ind, $20, $30) { - return _c( - "uni-view", - { - key: ite, - staticClass: _vm._$g("37-" + $30, "sc"), - attrs: { _i: "37-" + $30 }, - }, - [ - _c( + return _vm._$g("37-" + $30, "i") + ? _c( "uni-view", { - staticClass: _vm._$g("38-" + $30, "sc"), - attrs: { _i: "38-" + $30 }, - on: { - click: function ($event) { - return _vm.$handleViewEvent($event) - }, - }, + key: ite, + staticClass: _vm._$g("37-" + $30, "sc"), + attrs: { _i: "37-" + $30 }, }, [ _c( "uni-view", { - staticClass: _vm._$g("39-" + $30, "sc"), - attrs: { _i: "39-" + $30 }, + staticClass: _vm._$g("38-" + $30, "sc"), + attrs: { _i: "38-" + $30 }, + on: { + click: function ($event) { + return _vm.$handleViewEvent($event) + }, + }, }, [ _c( "uni-view", { - staticClass: _vm._$g("40-" + $30, "sc"), - attrs: { _i: "40-" + $30 }, + staticClass: _vm._$g("39-" + $30, "sc"), + attrs: { _i: "39-" + $30 }, }, - [_vm._v(_vm._$g("40-" + $30, "t0-0"))] + [ + _c( + "uni-view", + { + staticClass: _vm._$g("40-" + $30, "sc"), + attrs: { _i: "40-" + $30 }, + }, + [_vm._v(_vm._$g("40-" + $30, "t0-0"))] + ), + ], + 1 + ), + _c( + "uni-view", + { + staticClass: _vm._$g("41-" + $30, "sc"), + attrs: { _i: "41-" + $30 }, + }, + [_c("uni-icons", { attrs: { _i: "42-" + $30 } })], + 1 ), ], 1 ), - _c( - "uni-view", - { - staticClass: _vm._$g("41-" + $30, "sc"), - attrs: { _i: "41-" + $30 }, - }, - [_c("uni-icons", { attrs: { _i: "42-" + $30 } })], - 1 - ), ], 1 - ), - ], - 1 - ) + ) + : _vm._e() }), ], 2 diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json index 35b54033..540e0894 100644 --- a/unpackage/dist/dev/app-plus/manifest.json +++ b/unpackage/dist/dev/app-plus/manifest.json @@ -1 +1 @@ -{"@platforms":["android","iPhone","iPad"],"id":"__UNI__20604F1","name":"Reedaw","version":{"name":"1.3.4","code":134},"description":"面向儿童青少年的健康体质测量APP","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Bluetooth":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"light","background":"#37cc92"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"template":"index.html","compattible":{"ignoreVersion":true},"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"splashscreen":{"androidStyle":"common","android":{"hdpi":"static/logo.png","xhdpi":"static/logo.png","xxhdpi":"static/logo.png"},"useOriginalMsgbox":true},"google":{"permissions":["","","","","","","","","","","","","","",""],"abiFilters":["arm64-v8a","x86"]},"apple":{"dSYMs":false,"idfa":false,"privacyDescription":{"NSBluetoothAlwaysUsageDescription":"需要蓝牙权限来连接设备","NSBluetoothPeripheralUsageDescription":"使用蓝牙与外设通信"}},"plugins":{"share":{},"ad":{},"geolocation":{"system":{"__platform__":["ios"]}},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false,"version":"2"},"allowsInlineMediaPlayback":true,"safearea":{"background":"#fff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.24","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333","fontSize":"14px","selectedColor":"#37cc92","backgroundColor":"#fff","list":[{"pagePath":"pages/home/home","iconPath":"static/shou.png","selectedIconPath":"static/shou2.png"},{"pagePath":"pages/zixun/list","iconPath":"static/ping.png","selectedIconPath":"static/ping2.png"},{"pagePath":"pages/my/me","iconPath":"static/wo.png","selectedIconPath":"static/wo2.png"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"},"locale":"zh-Hans","fallbackLocale":"en"} \ No newline at end of file +{"@platforms":["android","iPhone","iPad"],"id":"__UNI__20604F1","name":"Reedaw","version":{"name":"1.3.4","code":134},"description":"面向儿童青少年的健康体质测量APP","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Bluetooth":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"light","background":"#37cc92"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"template":"index.html","compattible":{"ignoreVersion":true},"distribute":{"icons":{"android":{"hdpi":"unpackage/res/icons/72x72.png","xhdpi":"unpackage/res/icons/96x96.png","xxhdpi":"unpackage/res/icons/144x144.png","xxxhdpi":"unpackage/res/icons/192x192.png"},"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"}}},"splashscreen":{"androidStyle":"common","android":{"hdpi":"static/logo.png","xhdpi":"static/logo.png","xxhdpi":"static/logo.png"},"useOriginalMsgbox":true},"google":{"permissions":["","","","","","","","","","","","","","",""],"abiFilters":["arm64-v8a","x86"]},"apple":{"dSYMs":false,"idfa":false,"privacyDescription":{"NSBluetoothAlwaysUsageDescription":"需要蓝牙权限来连接设备","NSBluetoothPeripheralUsageDescription":"使用蓝牙与外设通信"}},"plugins":{"share":{},"ad":{},"geolocation":{"system":{"__platform__":["ios"]}},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false,"version":"2"},"allowsInlineMediaPlayback":true,"safearea":{"background":"#fff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"4.76","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#333","fontSize":"14px","selectedColor":"#37cc92","backgroundColor":"#fff","list":[{"pagePath":"pages/home/home","iconPath":"static/shou.png","selectedIconPath":"static/shou2.png"},{"pagePath":"pages/zixun/list","iconPath":"static/ping.png","selectedIconPath":"static/ping2.png"},{"pagePath":"pages/my/me","iconPath":"static/wo.png","selectedIconPath":"static/wo2.png"}],"borderStyle":"rgba(0,0,0,0.4)","height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"},"locale":"zh-Hans","fallbackLocale":"en"} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/view.css b/unpackage/dist/dev/app-plus/view.css index b516770c..231f1ec5 100644 --- a/unpackage/dist/dev/app-plus/view.css +++ b/unpackage/dist/dev/app-plus/view.css @@ -1 +1 @@ -*{margin:0;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}input[type=search]::-webkit-search-cancel-button{display:none}@font-face{font-weight:400;font-style:normal;font-family:uni;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx+AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5ZvCRR/EAAASUAAAKtGhlYWQLKIN9AAAA4AAAADZoaGVhCCwD+gAAALwAAAAkaG10eEJo//8AAAHUAAAASGxvY2EYqhW6AAAEbAAAACZtYXhwASEAVQAAARgAAAAgbmFtZeNcHtgAAA9IAAAB5nBvc3T6bLhLAAARMAAAAOYAAQAAA+gAAABaA+j/////A+kAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAACkCj3dfDzz1AAsD6AAAAADUER9XAAAAANQRH1f//wAAA+kD6gAAAAgAAgAAAAAAAAABAAAAEgBJAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPqAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+j//wPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARgCMANIBJgF4AcQCMgJgAqgC/ANIA6YD/gROBKAE9AVaAAAAAgAAAAADrwOtABQAKQAAASIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAfV4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NlteA608O2Rn8GdjOzw8O2Nn8GdkOzz8rzc1W17bXlw1Nzc1XF7bXls1NwAAAAACAAAAAAOzA7MAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTBwYiLwEmNjsBETQ2OwEyFhURMzIWAe52Z2Q7PT07ZGd2fGpmOz4+O2ZpIXYOKA52Dg0XXQsHJgcLXRcNA7M+O2ZqfHZnZDs9PTtkZ3Z9aWY7Pv3wmhISmhIaARcICwsI/ukaAAMAAAAAA+UD5QAXACMALAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAxQrASI1AzQ7ATIHJyImNDYyFhQGAe6Ecm9BRERBb3KEiXZxQkREQnF1aQIxAwgCQgMBIxIZGSQZGQPkREJxdomEcm9BRERBb3KEinVxQkT9HQICAWICAjEZIxkZIxkAAAAAAwAAAAADsQPkABsAKgAzAAABBgcGBwYHBjcRFBcWFxYXNjc2NzY1ESQXJicmBzMyFhUDFAYrASInAzQ2EyImNDYyFhQGAfVBQTg7LDt/IEc+bF5sbF1tPUj+2KhQQVVvNAQGDAMCJgUBCwYeDxYWHhUVA+QPEg4SDhIpCv6tj3VkST4dHT5JZHWPAVNeNRkSGPwGBP7GAgMFAToEBv5AFR8VFR8VAAAAAgAAAAADsQPkABkALgAAAQYHBgc2BREUFxYXFhc2NzY3NjURJBcmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9VVVQk+v/tFHPmxebGxdbT1I/tGvT0JVo/7VBASKAwMSAQUBcQEFAgESAgUBEQQD4xMYEhk3YP6sjnVlSD8cHD9IZXWOAVRgNxkSGP62/tkDA48EBBkCAVYCAQHlAQIQBAAAAAACAAAAAAPkA+QAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTAQYiLwEmPwE2Mh8BFjI3ATYyHwEWAe6Ecm9BQ0NCbnODiXVxQkREQnF1kf6gAQUBowMDFgEFAYUCBQEBQwIFARUEA+NEQnF1iYNzbkJDQ0FvcoSJdXFCRP6j/qUBAagEBR4CAWYBAQENAgIVBAAAAAQAAAAAA68DrQAUACkAPwBDAAABIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYTBQ4BLwEmBg8BBhYfARYyNwE+ASYiFzAfAQH1eGdkOzw8O2Rn8GZkOzw8O2RmeG5eWzY3NzZbXtteWzY3NzZbXmn+9gYSBmAGDwUDBQEGfQUQBgElBQELEBUBAQOtPDtkZ/BnYzs8PDtjZ/BnZDs8/K83NVte215cNTc3NVxe215bNTcCJt0FAQVJBQIGBAcRBoAGBQEhBQ8LBAEBAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUHGgzLDCELAh0LHwsNCgr9uQoeCgGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA+UD5gAXACwAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBi8BJicmNRM0NjsBMhYVExceAQHvhHJvQUNDQm5zg4l1cUJEREJxdVcQAwT6AwIEEAMCKwIDDsUCAQPlREJxdYmDc25CQ0NBb3KEiXVxQkT9VhwEAncCAgMGAXoCAwMC/q2FAgQAAAQAAAAAA68DrQADABgALQAzAAABMB8BAyIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAyMVMzUjAuUBAfJ4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NltemyT92QKDAQEBLDw7ZGfwZ2M7PDw7Y2fwZ2Q7PPyvNzVbXtteXDU3NzVcXtteWzU3AjH9JAAAAAMAAAAAA+QD5AAXACcAMAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAzMyFhUDFAYrASImNQM0NhMiJjQ2MhYUBgHuhHJvQUNDQm5zg4l1cUJEREJxdZ42BAYMAwInAwMMBh8PFhYeFhYD40RCcXWJg3NuQkNDQW9yhIl1cUJE/vYGBf7AAgMDAgFABQb+NhYfFhYfFgAABAAAAAADwAPAAAgAEgAoAD0AAAEyNjQmIgYUFhcjFTMRIxUzNSMDIgcGBwYVFBYXFjMyNzY3NjU0Jy4BAyInJicmNDc2NzYyFxYXFhQHBgcGAfQYISEwISFRjzk5yTorhG5rPT99am+DdmhlPD4+PMyFbV5bNTc3NVte2l5bNTc3NVteAqAiLyIiLyI5Hf7EHBwCsT89a26Ed8w8Pj48ZWh2g29qffyjNzVbXtpeWzU3NzVbXtpeWzU3AAADAAAAAAOoA6gACwAgADUAAAEHJwcXBxc3FzcnNwMiBwYHBhQXFhcWMjc2NzY0JyYnJgMiJyYnJjQ3Njc2MhcWFxYUBwYHBgKOmpocmpocmpocmpq2dmZiOjs7OmJm7GZiOjs7OmJmdmtdWTQ2NjRZXdZdWTQ2NjRZXQKqmpocmpocmpocmpoBGTs6YmbsZmI6Ozs6YmbsZmI6O/zCNjRZXdZdWTQ2NjRZXdZdWTQ2AAMAAAAAA+kD6gAaAC8AMAAAAQYHBiMiJyYnJjQ3Njc2MhcWFxYVFAcGBwEHATI3Njc2NCcmJyYiBwYHBhQXFhcWMwKONUBCR21dWjU3NzVaXdpdWzU2GBcrASM5/eBXS0grKysrSEuuSkkqLCwqSUpXASMrFxg2NVtd2l1aNTc3NVpdbUdCQDX+3jkBGSsrSEuuSkkqLCwqSUquS0grKwAC//8AAAPoA+gAFAAwAAABIgcGBwYQFxYXFiA3Njc2ECcmJyYTFg4BIi8BBwYuATQ/AScmPgEWHwE3Nh4BBg8BAfSIdHFDRERDcXQBEHRxQ0REQ3F0SQoBFBsKoqgKGxMKqKIKARQbCqKoChsUAQqoA+hEQ3F0/vB0cUNERENxdAEQdHFDRP1jChsTCqiiCgEUGwqiqAobFAEKqKIKARQbCqIAAAIAAAAAA+QD5AAXADQAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMUBiMFFxYUDwEGLwEuAT8BNh8BFhQPAQUyFh0BAe6Ecm9BQ0NCbnODiXVxQkREQnF1fwQC/pGDAQEVAwTsAgEC7AQEFAIBhAFwAgMD40RCcXWJg3NuQkNDQW9yhIl1cUJE/fYCAwuVAgQCFAQE0AIFAtEEBBQCBQGVCwMDJwAAAAUAAAAAA9QD0wAjACcANwBHAEgAAAERFAYjISImNREjIiY9ATQ2MyE1NDYzITIWHQEhMhYdARQGIyERIREHIgYVERQWOwEyNjURNCYjISIGFREUFjsBMjY1ETQmKwEDeyYb/XYbJkMJDQ0JAQYZEgEvExkBBgkNDQn9CQJc0QkNDQktCQ0NCf7sCQ0NCS0JDQ0JLQMi/TQbJiYbAswMCiwJDS4SGRkSLg0JLAoM/UwCtGsNCf5NCQ0NCQGzCQ0NCf5NCQ0NCQGzCQ0AAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}@font-face{font-weight:400;font-style:normal;font-family:unibtn;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg8SAzoAAAC8AAAAYGNtYXAAILNAAAABHAAAAGRnYXNwAAAAEAAAAYAAAAAIZ2x5ZnVT/G4AAAGIAAAEHGhlYWQOAdVuAAAFpAAAADZoaGVhB3wDzAAABdwAAAAkaG10eCIABqYAAAYAAAAALGxvY2EDqgTMAAAGLAAAABhtYXhwAA8ATQAABkQAAAAgbmFtZXBR8sQAAAZkAAAB2nBvc3QAAwAAAAAIQAAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADmUAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQASAAAAA4ACAACAAYAAQAg5gLmBuZQ//3//wAAAAAAIOYA5gTmUP/9//8AAf/jGgQaAxm6AAMAAQAAAAAAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQFgAHkCwQLqABYAAAEmNDc2MhcBHgEVFAYHAQYiJyY0NwkBAWAICAcWBwE1BAQEBP7LBxYHCAgBIv7eAsUHFwcICP7cBAsFBgsE/twICAcXCAETARMAAAEBWAB5ArkC6gAXAAAJAhYUBwYiJwEuATU0NjcBNjIXFhQHMQK5/t4BIggICBUI/swFAwMFATQIFQgICALF/u3+7QgXBwgIASQECwYFCwQBJAgIBxcHAAACANAAaQO6Aw0AHAA2AAAlFAYjISImNRE0NjsBNSMiBhURFBYzITI2PQEjFRMnBxcHDgMPATM1PgE3PgE/AgcXNyc3A1IHBP3CBAYGBLDAERgYEQJfERcuaKQhbndKgmM9BQEvBTYtLXVABmpuIaQBAaUEBwcEAagFBjEZEf40ERkZEqWUAbysI3MBBjxffkcIBzxuKysyBAEBdCKsAgIAAgCXAF4DcwMbADEASgAAAS4BLwIuASMiBg8CDgEHBhYfAQcGFhceATMyNj8BFx4BMzI2Nz4BJzQwNSc3PgEnBTYmLwE3PgE/ARceAR8BBw4BHwEnJgYPAQNzAgoG42cDCgcGCgNk4wYKAgEDBKUlAQUFAwYEAgUDyswCBQMGCgMCAQEoowUDAv38AQMEjcIFCQJWWAIJBcOMBAMBIq4FCwSuAhQGCAEfzQYGBgbOIwEIBgYMBJ/iBgwEAgICAWxqAQEGBgMJAwEB3qEFDAa2BgoEiB0BBgWxsAUGARuJBAsFwVoDAQJcAAIAvwB1A1ADEQAhAD4AAAEiBh0BFAYjISImPQE0JiMiBh0BHgEzITI2PQE0JicuASM3AS4BIyIGBwEGFBceATMyNjcBNjIXARYyNz4BJwL3Cg4LB/51CAsOCgkPASYbAYwbJwQDAwkFWf7mChgNDRgJ/uYGBwMJBQQIBAEZBRAFARoHEwcGAQYBsA4J4gcLCwfiCQ4OCeIbJycb4gQJAwQDNAEaCgkJCf7lBxMGBAMDAwEZBQX+5wYHBhMHAAAAAAMA3AF2AzEB+gALABcAJAAAATI2NTQmIyIGFRQWITI2NTQmIyIGFRQWITI2NTQmIyIGFRQWMwEeHCcnHBsnJwEDHCcnHBsnJwEEGycnGxwnJxwBdicbGycnGxsnJxsbJycbGycnGxsnJxsbJwAAAAABAOwAnQMUAs4AJQAAATc2NCcmIg8BJyYiBwYUHwEHBhQXHgEzMjY/ARceATMyNjc2NCcCKOwJCQgYCOzqCBgICQnq7AkJBAoGBQsE7OwECwUGCgQJCQG76gkXCQgI6+sICAgYCOvrCBgIBAQEBOvtBQQFBAgXCQABAAAAAQAA3hDrLV8PPPUACwQAAAAAANWUyKsAAAAA1ZTIqwAAAAADugMbAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAO6AAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWAEAAFYBAAA0AQAAJcEAAC/BAAA3AQAAOwAAAAAAAoAFAAeAEoAdgDGAToBmgHSAg4AAQAAAAsASwADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAAcAnwABAAAAAAADAA4ASwABAAAAAAAEAA4AtAABAAAAAAAFAAsAKgABAAAAAAAGAA4AdQABAAAAAAAKABoA3gADAAEECQABABwADgADAAEECQACAA4ApgADAAEECQADABwAWQADAAEECQAEABwAwgADAAEECQAFABYANQADAAEECQAGABwAgwADAAEECQAKADQA+HN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFJlZ3VsYXIAUgBlAGcAdQBsAGEAcnN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdEZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}body,html{-webkit-user-select:none;user-select:none;width:100%}html{height:100%;height:100vh;width:100%;width:100vw}body{overflow-x:hidden;background-color:#fff}[class*=" uni-icon-"],[class^=uni-icon-]{display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 uni;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"],[class^=uni-btn-icon]{display:inline-block;font:normal normal normal 14px/1 unibtn;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"]:before,[class^=uni-btn-icon]:before{margin:0;box-sizing:border-box}.uni-icon-success-no-circle:before{content:"\EA08"}.uni-icon-error:before{content:"\EA0B"}.uni-loading,uni-button[loading]:before{background:rgba(0,0,0,0) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}@-webkit-keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[nvue] uni-scroll-view,[nvue] uni-swiper-item,[nvue] uni-view{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-basis:auto;flex-basis:auto;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start}[nvue] uni-button{margin:0}[nvue-dir-row] uni-label,[nvue-dir-row] uni-swiper-item,[nvue-dir-row] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}[nvue-dir-column] uni-label,[nvue-dir-column] uni-swiper-item,[nvue-dir-column] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}[nvue-dir-row-reverse] uni-label,[nvue-dir-row-reverse] uni-swiper-item,[nvue-dir-row-reverse] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}[nvue-dir-column-reverse] uni-label,[nvue-dir-column-reverse] uni-swiper-item,[nvue-dir-column-reverse] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video,[nvue] uni-view{position:relative;border:0 solid #000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}html{--UI-BG:#fff;--UI-BG-1:#f7f7f7;--UI-BG-2:#fff;--UI-BG-3:#f7f7f7;--UI-BG-4:#4c4c4c;--UI-BG-5:#fff;--UI-FG:#000;--UI-FG-0:rgba(0,0,0,0.9);--UI-FG-HALF:rgba(0,0,0,0.9);--UI-FG-1:rgba(0,0,0,0.5);--UI-FG-2:rgba(0,0,0,0.3);--UI-FG-3:rgba(0,0,0,0.1)}@media (prefers-color-scheme:dark){html{--UI-BG-COLOR-ACTIVE:#373737;--UI-BORDER-COLOR-1:#373737;--UI-BG:#000;--UI-BG-0:#191919;--UI-BG-1:#1f1f1f;--UI-BG-2:#232323;--UI-BG-3:#2f2f2f;--UI-BG-4:#606060;--UI-BG-5:#2c2c2c;--UI-FG:#fff;--UI-FG-0:hsla(0,0%,100%,0.8);--UI-FG-HALF:hsla(0,0%,100%,0.6);--UI-FG-1:hsla(0,0%,100%,0.5);--UI-FG-2:hsla(0,0%,100%,0.3);--UI-FG-3:hsla(0,0%,100%,0.05)}body{background-color:var(--UI-BG-0);color:var(--UI-FG-0)}}uni-audio{display:none}uni-audio[controls]{display:inline-block}uni-audio[hidden]{display:none}.uni-audio-default{max-width:100%;min-width:302px;height:65px;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:2.5px;display:inline-block;overflow:hidden}.uni-audio-left{width:65px;height:65px;float:left;background-color:#e6e6e6;background-size:100% 100%;background-position:50% 50%}.uni-audio-button{width:24px;height:24px;margin:20.5px;background-size:cover}.uni-audio-button.play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAB4dJREFUaAXNWg1MlVUYvpcfIRCJ+MnCaOBl8dOcOCEQZ9kmI5cQG5Yb6MifKbMaGVobOtlibTWHDpgpxBUwF07826iFsMkYJhg559JdGiQSkUzSBA0QkZ7n4/u+nXsvwf3jwru99/y/3/N+3znvec97rlbjABofH38GYtaAV4MjwDqwH9gHTBoE3wd3gA3gi+B6rVY7hHR2CKD9wFngs+BHYGuJYziWMqiscwgP8wLvBQ+AHUWURZle1mqhtXQAhLui7xZwPvgFsBENDg7+Drp069at2z09Pf03b978u6mpqZ+dVq1aFRAVFeW/aNGigNDQ0JfDwsISfXx8wowETBT+QpIPLsf0GpuomvrXIgUAPhhizoGXi+II+tq1az/o9fpLFRUVd8S26fJZWVkLN2/enBgTE/PW/PnzF5v0b0P5HSjxp0m9WXFaBQD+NYw6C1bf+vDwcF9DQ4N+/fr19ciPm0m1osLT01N76tSpNaD3PTw8FgpD+TXSoESrUGeWnVIBgM/EiDKwJ0eiPNrS0nJsw4YNNd3d3aOscxSFhIS4V1dXpyckJGRB5jxZ7jDSbVDiW7lslriY1cgVMvjjKErgR0dH/zl06NCuFStWfOdo8HwkZVL2wYMHP3ny5AlNLonPPi5jkSpMfyb9AhjAadMIlsBjrndmZ2fnnThxos9UwEyUMzIynj9y5EgB1gb3ExK/xBuTTSczBQCeC/ZnsDTnCR6f9YMbN25QiNMoOjras7W1tcjb2ztcfijXRKzpwjaaQgBPU0lrI4HntOGbdzZ4AuYzt2/fvm9sbOweyyBiOidjlCr4Y6QAyrTzkqlEx9GSkpJ9zpo2BGNKfHZRUdF+1D+W24iNGFVSpxAAcxekryK9/cuXLx/FoqpWe85iBlPpvbi4uB0yBE4lHabSvyyLX2AXyhJ42nmYytPsMBcI+80ZWKZeGQsxEqtEkgJ4+3Sm9sh1Gm5SM2EqFfnWpsRSV1dXIYzbI2NWv0AqGiXXl+4Bd1ihs0XZu3fvHhgYGNBXVVUlWDTAyk7p6ekNIyMj7fIwYiVmIwWkNvo2trgHAQEBy+CghW7cuPGLvr6+L3fu3PmSJNBBP8R09erVHwVxEwrgU/AwkqQ00DFT8lamqkEICgqKKy4u1sMU7li6dKnVLvL/Pbe0tLRFaEsidi1+UlB5ng3ctBYsWLBV6GRxFnJ4yjIj7CX36uvrS1NTU+uwEM3ara3Al/gaTl+EPC6Vi/hNRUhHR8dPSt5Rqbu7+3Nr1679rL+//3BBQYHyYJvFd3V1iTNkNRV4RZF2G6TkHZ36+vpG5uXlHcah59Pk5GSbj5AY3y1gi6ACisOk4UlKaJyJrBYnsuTa2trjzc3N7/r7+9N1sYo6OzsfCAN0VEB9GzwGCo0zlnV1dfVOTEzMhn3Xl5eXx1rzIBOMflRAsv8UopxhrRFoT18vL68QHCu/am9vz7FUjglGHyow6xQcHBxjKwgqwKCTRIweKHlnpZhGDfC7LP4CJhgH3QCUxzd/AmboA0kP8zNNcDt+w8ZUvHv37l+tedaSJUueFfrfpwJ0oSVLxLiN0DgjWWxsDxobG79JSUn53haXRafT+QrAOjiFDEoFg05K3tEpduoxg8FweuXKlRlJSUm1toAnpvDwcB55FTJQAdUFYMRMaXFkil34l9zc3K2RkZElV65ceWSPbCz414XxF6kAXWfpdMNwHyNmQge7skNDQ3dOnjy5PzAwMLewsLDLLmEYDJMb5ObmFiXLIeZ6FxzNGOK+IFeyk91f4enTpyNtbW3HIiIiNsHCNCmy7U1zcnKWCTIuEDu/AOn8RKLRMFbJcJ9StjRlBIN94Y40ZmZmboqNja3iScrS8dP1IyaEWt4W+kmYaYVILHA/8GGglbHKdevWqV+FHaYjOGofw811hcfZOV1fW9pxzE1wcXGJlscSq6SA+qZhJfai8nN2wNHtDhb0pt7eXoe9Qcq1lRg3hRvNkLtyytuHfAHlKVOI+UIwQxYaRolramrSmZ8LhLefJIAnRmKVSFUAHbiq8yeqNRpGiWE5XlXKs5WWlZUthu3/SHh+voxVqlKnEEuYRvTPee5czjKjxDCr2bMVnYNF9IO7fRRQAokHxIuPeCig3t4YKcAeUCIYiRrcffjwYUd8fPyHzo6PwuJ4XL9+/QAWrjILOHWmDu5SAWjHa500sBSNZoibUWKGvNnuDOKbNwFPLLytITYjUteAWIuOvNbZptQxxF1ZWXnYGWuCc57TRnjzhMFbGmIyI7MpJPbAdMpEuQzsKdc/hi+jT0tLO+NoE0tTSWsjL9h58vP45qe8YppSAQqBEmaXfAy0MlbJcJ+tXqUMUMMdlpsUIuE78JYVO89mznn7LvmUh8gL+xzKknVS6hmrZLiPETNrr1npmNG3oXsg7LCKaFobx1yzKhKhBE3sFnA+mCFuI4IyBuyWzYjb/MHQh+lFN09SPIxgirxIlxhepeIWiHL41vPBFl90i4MtykOROfVXA4tAT9YJisyJP3tMu4gnA29aB2UY4V4DXg1m/FMH9gMrMSd6jwwe8PxtAPMU6JC/2/wHuyI2cMsNBRIAAAAASUVORK5CYII=)}.uni-audio-button.pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABatJREFUaAXVWl1IpFUYnllZGUf3wlz6MXER1ES7s83VUDJw6KpdaSTDwMnYFSK6KNirooHullKQCNzQRjZ/wom1u9ALQ0mT1ktFdEBWXLdibaH1jwmx5zme83W+z2Hm+7bZmc8X3jl/73vO837n/z3j9aSBjo6O8lBNC7gZXAUuBxeCz4FJj8APwTHwCngaPOX1evcRZocAuhAcAt8G74KdEnWoyzpobGYIjfnBn4D/BqeLWBfr9Du1wmtXAZXnQPY9cBj8HNhEe3t7sbW1tfn19fW7m5ubD5aXl7dnZmYeUKipqel8dXV1UUlJyfmysrILFRUV9X6/n8PMSveREQYPYHgdWgsTpW0ZAPDPQ3kC/JJeCUEvLi7+NDg4+EskEvldL0sVD4VCz3Z1db1SW1v7egJj7kD/Coy4l6qelAYAfB0quQ02vno8Hr8/OTkZaWtrmzo4ODhK1Uiycp/P5x0fH28JBAKh3Nxcow3osDdaYcRCMv2kBgD8O1D+BuyTlcTn5+cj7e3t0Y2NjX+SVey0rLS09OzY2Fiwvr4+BN1cqX+A8CqM+E6mTwRnTuTIDAn+FpIC/OHh4V+9vb0fNzQ0jKYbPJtknaybbbAtCYNt35JYZJY5SNgDctj8DFEBfnd3d627u/vT4eHhP8zqTybV0dHxTH9//+f5+fkVsgX2xKuJhtMJAwCeE/Y3sBiPBF9XV/fh0tISK8kY1dTU+BYWFvo0IzgnLlontmkIATyXSq42Ajy7kl8+0+D5ldgm29aGEzFNSIwUEWQyADlc59VSGe/r6/ssU8PmGI75l20TA3LjsoTYiNEgYwjBMu6CPKuIr4/Vph+TasyQzGJkbm7ubaxO1yQEDqVyDKU9pvUe+AhpAZ7rPJbKHyjgBuKyTUwSCzESqyBhAL4+D1PXZZ6Hm9STWCpV/U5DYiEmTe+6xOwRQwiJEAq/pQCPB0VFRdf+7w7LutJJ3LG3t7dvaseOdzGMImoIXVaN8WzjNvDERkzEpnAiFJjP4OvzMhJQBTyYqbjdEDov7+/vf4+6pu0wZQcGBi7arV/JWbAFiN2Lnzcg8COFuGkVFBSo2a70UoYEhC5+OqWgJoAv+mdeXt5bWpat6M7Ozk1tc7vMIfSa0lxdXf1VxZ2ETsGz7sfRoV4sFtMxNtOAF1hAugs6jrn3lxcmDV0VDTBuRrxJaYWujFowltMA40LNa6ArUWugLBgLaYByfXjUHVaTd13UgvEcDTjVRAPodBJE74GKuzW0YHxEA+gxE0TXh4q7NbRgfEgDeIQWRL+Nirs1tGCM0YAVBZZOJxV3a2jBuEIDphVYesxU3EnIY4ETeco+jg71LBinacAUWNxueFSlx4yCTmh0dPRLJ4AoOzIy8oWTNihLbNpxmpin1H2AnrcrFJqdnf0KM901tzFiUoQ94M3GxsYPZHoC94FW9gBJnEYZoa8SBy1hGNNuIWIiNg2PwKwbIPYDdhF9lZqgK6LEpA0fYv3PAHQF94IbCikdrcXFxWdVOtsh/abEpOG4ITGbvBI9EBA3f3qJo9FoUFPIapROX81zTYzEKkgNIQ8s4qwOH2d7PPQS9/T0vKjS2QqJQXqsFYSwxCrSpsmK6yVdi7zx0APmoVuvs7Pz/Wx55+jkHRoa+jonJ+cp4gHdAV+CAcbrjckASsCI0+vcpQGw7h6CVrDwRvMCTS8xvwbLM0Fsy+KZJha+1hCbiYw5oOdCkM86V1UejWBXZmJOsA22pXkeCIOvNAmfmk4MIQWaIYZTwiemYDAY3dracsUTU1IDpBGn95FP9Yac2KfzmVUzgkssHxfCYOGGR2gQvXp0jNG3lOyh+wKosrLykmWMq3q4SYXBth+6laLtEL3hqr8a2AZuFYQhrvizR8pJbAWeKA1j6OFuATeDq8D09hWClc+Jp0ceGHn/5hWWt8C0/N3mX15C4bDnCIuAAAAAAElFTkSuQmCC)}.uni-audio-right{box-sizing:border-box;height:65px;margin-left:65px;padding:11px 16.5px 13.5px 15px;overflow:hidden}.uni-audio-time{margin-top:3.5px;height:16.5px;font-size:12px;color:#888;float:right}.uni-audio-info{margin-right:70px;overflow:hidden}.uni-audio-name{height:22.5px;line-height:22.5px;margin-bottom:3.5px;font-size:14px;color:#353535}.uni-audio-author,.uni-audio-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uni-audio-author{height:14.5px;line-height:14.5px;font-size:12px;color:#888}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8;cursor:pointer}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:hsla(0,0%,100%,.6);cursor:not-allowed}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:rgba(0,0,0,0)}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:rgba(0,0,0,0)}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:not([disabled]){cursor:progress}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}uni-button[loading][type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:rgba(0,0,0,0)}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:rgba(0,0,0,0)}uni-button[loading][type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:rgba(0,0,0,0)}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(0,122,255,.6);border-color:rgba(0,122,255,.6);background-color:rgba(0,0,0,0)}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:rgba(0,0,0,0)}@media (prefers-color-scheme:dark){uni-button,uni-button[type=default]{color:#d6d6d6;background-color:#343434}.button-hover,.button-hover[type=default]{color:#d6d6d6;background-color:hsla(0,0%,100%,.1)}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.08)}uni-button[type=primary][plain][disabled]{color:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.2)}uni-button[type=default][plain]{color:#d6d6d6;border:1px solid #d6d6d6}.button-hover[type=default][plain]{color:hsla(0,0%,58.8%,.6);border-color:hsla(0,0%,58.8%,.6);background-color:rgba(50,50,50,.2)}uni-button[type=default][plain][disabled]{border-color:hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.2)}}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox-group[hidden]{display:none}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-checkbox[hidden]{display:none}uni-checkbox[disabled]{cursor:not-allowed}uni-checkbox .uni-checkbox-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-checkbox .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}@media (hover:hover){uni-checkbox:not([disabled]) .uni-checkbox-input:hover{border-color:var(--HOVER-BD-COLOR,#007aff)!important}}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{color:#007aff}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-checkbox-group{display:block}.ql-container{display:block;position:relative;box-sizing:border-box;-webkit-user-select:text;user-select:text;outline:none;overflow:hidden;width:100%;height:200px;min-height:200px}.ql-container[hidden]{display:none}.ql-container .ql-editor{position:relative;font-size:inherit;line-height:inherit;font-family:inherit;min-height:inherit;width:100%;height:100%;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-overflow-scrolling:touch}.ql-container .ql-editor::-webkit-scrollbar{width:0!important}.ql-container .ql-editor.scroll-disabled{overflow:hidden}.ql-container .ql-image-overlay{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;box-sizing:border-box;border:1px dashed #ccc;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-user-select:none;user-select:none}.ql-container .ql-image-overlay .ql-image-size{position:absolute;padding:4px 8px;text-align:center;background-color:#fff;color:#888;border:1px solid #ccc;box-sizing:border-box;opacity:.8;right:4px;top:4px;font-size:12px;display:inline-block;width:auto}.ql-container .ql-image-overlay .ql-image-toolbar{position:relative;text-align:center;box-sizing:border-box;background:#000;border-radius:5px;color:#fff;font-size:0;min-height:24px;z-index:100}.ql-container .ql-image-overlay .ql-image-toolbar span{display:inline-block;cursor:pointer;padding:5px;font-size:12px;border-right:1px solid #fff}.ql-container .ql-image-overlay .ql-image-toolbar span:last-child{border-right:0}.ql-container .ql-image-overlay .ql-image-toolbar span.triangle-up{padding:0;position:absolute;top:-12px;left:50%;-webkit-transform:translatex(-50%);transform:translatex(-50%);width:0;height:0;border-width:6px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.ql-container .ql-image-overlay .ql-image-handle{position:absolute;height:12px;width:12px;border-radius:50%;border:1px solid #ccc;box-sizing:border-box;background:#fff}.ql-container img{display:inline-block;max-width:100%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;height:100%;outline:none;overflow-y:auto;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:2em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl),.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:2em}.ql-editor .ql-indent-2:not(.ql-direction-rtl),.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:4em}.ql-editor .ql-indent-3:not(.ql-direction-rtl),.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor .ql-indent-4:not(.ql-direction-rtl),.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:8em}.ql-editor .ql-indent-5:not(.ql-direction-rtl),.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:10em}.ql-editor .ql-indent-6:not(.ql-direction-rtl),.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor .ql-indent-7:not(.ql-direction-rtl),.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:14em}.ql-editor .ql-indent-8:not(.ql-direction-rtl),.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:16em}.ql-editor .ql-indent-9:not(.ql-direction-rtl),.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;pointer-events:none;position:absolute}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}uni-icon{display:inline-block;font-size:0;box-sizing:border-box}uni-icon[hidden]{display:none}uni-icon>i{font:normal normal normal 14px/1 weui}uni-icon>i:before{margin:0;box-sizing:border-box}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx8AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5Zp+UEEcAAASUAAAIvGhlYWQUqc7xAAAA4AAAADZoaGVhB/YD+wAAALwAAAAkaG10eEJoAAAAAAHUAAAASGxvY2EUxhJeAAAEbAAAACZtYXhwASEAQwAAARgAAAAgbmFtZeNcHtgAAA1QAAAB5nBvc3T6OoZLAAAPOAAAAOYAAQAAA+gAAABaA+gAAAAAA7MAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAAMCU2KdfDzz1AAsD6AAAAADY7EUUAAAAANjsRRQAAAAAA7MD5AAAAAgAAgAAAAAAAAABAAAAEgA3AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPoAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARACKAMQBEgFgAZIB4gH6AioCeAK0AwwDZAOiA9wEEAReAAAAAgAAAAADlQOVABQAKQAAJSInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAIAAAAAA7MDswAXAC0AAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBiIvASY2OwERNDY7ATIWFREzMhYB7nZnZDs9PTtkZ3Z8amY7Pj47Zmkhdg4oDnYODRddCwcmBwtdFw0Dsz47Zmp8dmdkOz09O2Rndn1pZjs+/fCaEhKaEhoBFwgLCwj+6RoAAwAAAAADlQOVABQAGAAhAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDETMRJzI2NCYiBhQWAfRxYV83OTk3X2HiYV83OTk3X2GQPh8RGRkiGRlTOTdfYeJhXzc5OTdfYeJhXzc5AfT+3QEjKhgjGBgjGAAAAAACAAAAAAOxA+QAFwAsAAABBgcGDwERFBcWFxYXNjc2NzY1EScmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9WlsP3A3Rz5sXmxsXW09SDdwQGuP/tUEBIoDAxIBBQFxAQUCARICBQERBAPjFyASJBL+rI51ZUg/HBw/SGV1jgFUEiQSIP66/tkDA48EBBkCAVYCAQHlAQIQBAAAAAADAAAAAAOxA+QAFwAmAC8AAAEGBwYPAREUFxYXFhc2NzY3NjURJyYnJgczMhYVAxQGKwEiJwM0NhMiJjQ2MhYUBgH1aWtAcDdHPmxebGxdbT1IN3BAa4M0BAYMAwImBQELBh4PFhYeFRUD5BggEiQS/q2PdWRJPh0dPklkdY8BUxIkEiD4BgT+xgIDBQE6BAb+QBUfFRUfFQAAAAACAAAAAAOVA5UAFAAaAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJwcXAScB9HFhXzc5OTdfYeJhXzc5OTdfYaJzLJ8BFi1TOTdfYeJhXzc5OTdfYeJhXzc5AUhzLJ8BFSwAAAAAAwAAAAADlQOVABQAKQAvAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTNxcBJzcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1Uz8iT+6p8jUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIBBPIj/uufJAAAAAEAAAAAA5kDGAAHAAAlATcXARcBBgGF/vg7zgHYOv3vAcsBCTvPAdg7/e4BAAAAAAIAAAAAA5UDlQAFABoAAAE1IxUXNwMiJyYnJjQ3Njc2MhcWFxYUBwYHBgITPrEsvnFhXzc5OTdfYeJhXzc5OTdfYQIO4PqxLP7kOTdfYeJhXzc5OTdfYeJhXzc5AAAAAAMAAAAAA5UDlQAFABoALwAAARcHJzUzAyInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAg2iI7EyGXFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1UCCaIksfr9ZTk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAMAAAAAA5UDlQAUABgAIQAAJSInJicmNDc2NzYyFxYXFhQHBgcGAxMzEwMyNjQmIg4BFgH0cWFfNzk5N19h4mFfNzk5N19hkQU2BSAQFRUgFQEWUzk3X2HiYV83OTk3X2HiYV83OQKV/sQBPP43Fh8VFR8WAAAAAAQAAAAAA5UDlQAUACkALQA2AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTMxEjEyImNDYyFhQGAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVSzIyGREZGSIZGVM5N19h4mFfNzk5N19h4mFfNzkyMjFTVchVUzEyMjFTVchVUzEyAcL+3QFNGCMYGCMYAAAAAwAAAAADlQOVABQAKQA1AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTFwcnByc3JzcXNxcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1WHgiOCgiOCgiOCgiNTOTdfYeJhXzc5OTdfYeJhXzc5MjIxU1XIVVMxMjIxU1XIVVMxMgFvgiOCgiOCgiOCgiMAAAACAAAAAANUA0IAGAAlAAABFwcnDgEjIicmJyY0NzY3NjIXFhcWFRQGJzQuASIOARQeATI+AQKoqyOsJ180T0RCJycnJ0JEn0RCJiglDUFvg29BQW+Db0EBYKwjrCAjKCZCRJ9EQicnJydCRE82YZdBb0FBb4NvQUFvAAAAAgAAAAADlQOVAAsAIAAAATcnBycHFwcXNxc3AyInJicmNDc2NzYyFxYXFhQHBgcGAiB9LH19LH19LH19LKlxYV83OTk3X2HiYV83OTk3X2EB9H0sfX0sfX0sfX0s/tw5N19h4mFfNzk5N19h4mFfNzkAAAACAAAAAAOVA5UAFAAcAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJzcnBwYfAQH0cWFfNzk5N19h4mFfNzk5N19hHoqKK7UBAbVTOTdfYeJhXzc5OTdfYeJhXzc5ARKPjy27AQG6AAAAAAUAAAAAA1cDbAAJAB0AJwArAC8AAAETHgEzITI2NxMzAw4BIyEiJicDIzU0NjMhMhYdASUyFh0BIzU0NjMHMxMjEzMDIwEaIgETDQEuDRMBIjIiAjAh/tIhMAIiVgwJApoJDP7xCQzQDAkVMhUyiTIVMgLd/cgOEhIOAjj9xSEuLiECOx4IDAwIHo4MCR0dCQz6/okBd/6JAAAAAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlLXN1Y2Nlc3MJc2FmZS13YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}.uni-icon-success:before{content:"\EA06"}.uni-icon-success_circle:before{content:"\EA07"}.uni-icon-success_no_circle:before{content:"\EA08"}.uni-icon-safe_success:before{content:"\EA04"}.uni-icon-safe_warn:before{content:"\EA05"}.uni-icon-info:before{content:"\EA03"}.uni-icon-info_circle:before{content:"\EA0C"}.uni-icon-warn:before{content:"\EA0B"}.uni-icon-waiting:before{content:"\EA09"}.uni-icon-waiting_circle:before{content:"\EA0A"}.uni-icon-circle:before{content:"\EA01"}.uni-icon-cancel:before{content:"\EA0D"}.uni-icon-download:before{content:"\EA02"}.uni-icon-search:before{content:"\EA0E"}.uni-icon-clear:before{content:"\EA0F"}.uni-icon-safe_success,.uni-icon-success,.uni-icon-success_circle,.uni-icon-success_no_circle{color:#007aff}.uni-icon-safe_warn{color:#ffbe00}.uni-icon-info{color:#10aeff}.uni-icon-info_circle{color:#007aff}.uni-icon-warn{color:#f76260}.uni-icon-waiting,.uni-icon-waiting_circle{color:#10aeff}.uni-icon-circle{color:#c9c9c9}.uni-icon-cancel{color:#f43530}.uni-icon-download{color:#007aff}.uni-icon-clear,.uni-icon-search{color:#b2b2b2}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div,uni-image>img{width:100%;height:100%}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;display:block;position:absolute;top:0;left:0;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em;overflow:hidden}uni-input[hidden]{display:none}.uni-input-form,.uni-input-input,.uni-input-placeholder,.uni-input-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-form,.uni-input-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.uni-input-input,.uni-input-placeholder{width:100%}.uni-input-placeholder{position:absolute;top:auto!important;left:0;color:grey;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all;pointer-events:none;line-height:inherit}.uni-input-input{position:relative;display:block;height:100%;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button,.uni-input-input[type=search]::-webkit-search-decoration{display:none}.uni-input-input::-webkit-inner-spin-button,.uni-input-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}.uni-input-input:disabled{-webkit-text-fill-color:currentcolor}.uni-label-pointer{cursor:pointer}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0;left:0;position:absolute;cursor:grab}uni-movable-view[hidden]{display:none}uni-navigator{height:auto;width:auto;display:block;cursor:pointer}uni-navigator[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}uni-picker-view-column{-webkit-flex:1;-webkit-box-flex:1;flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%;overflow:hidden}.uni-picker-view-mask{transform:translateZ(0);-webkit-transform:translateZ(0)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-mask{top:0;height:100%;margin:0 auto;background:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.uni-picker-view-indicator{height:34px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0;cursor:pointer}.uni-picker-view-content>*{height:34px;overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}@media (prefers-color-scheme:dark){.uni-picker-view-indicator:before{border-top-color:var(--UI-FG-3)}.uni-picker-view-indicator:after{border-bottom-color:var(--UI-FG-3)}.uni-picker-view-mask{background-image:-webkit-linear-gradient(top,rgba(35,35,35,.95),rgba(35,35,35,.6)),-webkit-linear-gradient(bottom,rgba(35,35,35,.95),rgba(35,35,35,.6));background-image:linear-gradient(180deg,rgba(35,35,35,.95),rgba(35,35,35,.6)),linear-gradient(0deg,rgba(35,35,35,.95),rgba(35,35,35,.6))}}uni-picker-view{display:block}uni-picker-view .uni-picker-view-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-progress{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{-webkit-flex:1;-webkit-box-flex:1;flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio-group[hidden]{display:none}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-radio[hidden]{display:none}uni-radio[disabled]{cursor:not-allowed}uni-radio .uni-radio-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-radio .uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}@media (any-hover:hover){uni-radio:not([disabled]) .uni-radio-input:hover{border-color:var(--HOVER-BD-COLOR,#007aff)!important}}uni-radio .uni-radio-input.uni-radio-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-radio .uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}uni-radio .uni-radio-input.uni-radio-input-disabled:before{color:#adadad}uni-radio-group{display:block}@-webkit-keyframes once-show{0%{top:0}}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;-webkit-animation:once-show 1ms;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;max-height:inherit}.uni-scroll-view,.uni-scroll-view-content{width:100%;height:100%}.uni-scroll-view-refresher{position:relative;overflow:hidden}.uni-scroll-view-refresh{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.uni-scroll-view-refresh,.uni-scroll-view-refresh-inner{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.uni-scroll-view-refresh-inner{line-height:0;width:40px;height:40px;border-radius:50%;background-color:#fff;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.uni-scroll-view-refresh__spinner{-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation:uni-scroll-view-refresh-rotate 2s linear infinite;animation:uni-scroll-view-refresh-rotate 2s linear infinite}.uni-scroll-view-refresh__spinner>circle{stroke:currentColor;stroke-linecap:round;-webkit-animation:uni-scroll-view-refresh-dash 2s linear infinite;animation:uni-scroll-view-refresh-dash 2s linear infinite}@-webkit-keyframes uni-scroll-view-refresh-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-scroll-view-refresh-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{-webkit-flex:1;-webkit-box-flex:1;flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-handle-wrapper,uni-slider .uni-slider-track{-webkit-transition:background-color .3s ease;transition:background-color .3s ease}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:rgba(0,0,0,0);z-index:3;cursor:grab}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:rgba(0,0,0,0);z-index:1}uni-slider .uni-slider-value{width:3ch;color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%;cursor:grab}uni-swiper-item[hidden]{display:none}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}uni-swiper .uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}uni-swiper .uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}uni-swiper .uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}uni-swiper .uni-swiper-dots{position:absolute;font-size:0}uni-swiper .uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;-webkit-transform:translate(-50%);transform:translate(-50%)}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}uni-swiper .uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;-webkit-transform:translateY(-50%);transform:translateY(-50%)}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}uni-swiper .uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}uni-swiper .uni-swiper-dot-active{background-color:#000}uni-swiper .uni-swiper-navigation{width:26px;height:26px;cursor:pointer;position:absolute;top:50%;margin-top:-13px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-transition:all .2s;transition:all .2s;border-radius:50%;opacity:1}uni-swiper .uni-swiper-navigation-disabled{opacity:.35;cursor:not-allowed}uni-swiper .uni-swiper-navigation-hide{opacity:0;cursor:auto;pointer-events:none}uni-swiper .uni-swiper-navigation-prev{left:10px}uni-swiper .uni-swiper-navigation-prev i{margin-left:-1px;left:10px}uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical{top:18px;left:50%;margin-left:-13px}uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical i{-webkit-transform:rotate(90deg);transform:rotate(90deg);margin-left:auto;margin-top:-2px}uni-swiper .uni-swiper-navigation-next{right:10px}uni-swiper .uni-swiper-navigation-next i{-webkit-transform:rotate(180deg);transform:rotate(180deg)}uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical{top:auto;bottom:5px;left:50%;margin-left:-13px}uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical i{margin-top:2px;-webkit-transform:rotate(270deg);transform:rotate(270deg)}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-switch[hidden]{display:none}uni-switch[disabled]{cursor:not-allowed}uni-switch .uni-switch-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-switch .uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}uni-switch[disabled] .uni-switch-input{opacity:.7}uni-switch .uni-switch-input:before{width:50px;background-color:#fdfdfd}uni-switch .uni-switch-input:after,uni-switch .uni-switch-input:before{content:" ";position:absolute;top:0;left:0;height:30px;border-radius:15px;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}uni-switch .uni-switch-input:after{width:30px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}uni-switch .uni-switch-input.uni-switch-input-checked:before{-webkit-transform:scale(0);transform:scale(0)}uni-switch .uni-switch-input.uni-switch-input-checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch:not([disabled]) .uni-checkbox-input:hover{border-color:#007aff}uni-switch .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:inherit;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}@media (prefers-color-scheme:dark){uni-switch .uni-switch-input{border-color:#3b3b3f}uni-switch .uni-switch-input,uni-switch .uni-switch-input:before{background-color:#3b3b3f}uni-switch .uni-switch-input:after{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-checkbox-input{background-color:#2c2c2c;border:1px solid #656565}}uni-text[selectable]{cursor:auto;user-select:text;-webkit-user-select:text}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal;white-space:pre-wrap;word-break:break-all}uni-textarea[hidden]{display:none}.uni-textarea-compute,.uni-textarea-line,.uni-textarea-placeholder,.uni-textarea-textarea,.uni-textarea-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%;min-height:inherit;overflow-y:hidden}.uni-textarea-compute,.uni-textarea-line,.uni-textarea-placeholder,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:inherit;word-break:inherit}.uni-textarea-placeholder{color:grey;overflow:hidden}.uni-textarea-compute,.uni-textarea-line{visibility:hidden;height:auto}.uni-textarea-line{width:1em}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-fix-margin{width:auto;right:0;margin:0 -3px}.uni-textarea-textarea:disabled{-webkit-text-fill-color:currentcolor}uni-ad{display:block;overflow:hidden}uni-ad[hidden]{display:none}uni-ad .uni-ad-container{width:100%;min-height:1px}uni-cover-image{display:block;line-height:1.2;overflow:hidden;height:100%;width:100%;pointer-events:auto}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;visibility:hidden;text-overflow:inherit;overflow:hidden;white-space:inherit;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;-webkit-flex-wrap:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}uni-live-pusher{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-live-pusher[hidden]{display:none}.uni-live-pusher-container{left:0;background-color:#000}.uni-live-pusher-container,.uni-live-pusher-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-live-pusher-slot{pointer-events:none}uni-map{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-map[hidden]{display:none}.uni-map-container{left:0;background-color:rgba(0,0,0,0)}.uni-map-container,.uni-map-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-map-slot{pointer-events:none}uni-picker{display:block}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{left:0;background-color:#000}.uni-video-container,.uni-video-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-video-slot{pointer-events:none}uni-view{display:block}uni-view[hidden]{display:none}uni-web-view{position:absolute;left:0;right:0;top:0;bottom:0} \ No newline at end of file +*{margin:0;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}input[type=search]::-webkit-search-cancel-button{display:none}@font-face{font-weight:400;font-style:normal;font-family:uni;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx+AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5ZvCRR/EAAASUAAAKtGhlYWQLKIN9AAAA4AAAADZoaGVhCCwD+gAAALwAAAAkaG10eEJo//8AAAHUAAAASGxvY2EYqhW6AAAEbAAAACZtYXhwASEAVQAAARgAAAAgbmFtZeNcHtgAAA9IAAAB5nBvc3T6bLhLAAARMAAAAOYAAQAAA+gAAABaA+j/////A+kAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAACkCj3dfDzz1AAsD6AAAAADUER9XAAAAANQRH1f//wAAA+kD6gAAAAgAAgAAAAAAAAABAAAAEgBJAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPqAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+j//wPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARgCMANIBJgF4AcQCMgJgAqgC/ANIA6YD/gROBKAE9AVaAAAAAgAAAAADrwOtABQAKQAAASIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAfV4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NlteA608O2Rn8GdjOzw8O2Nn8GdkOzz8rzc1W17bXlw1Nzc1XF7bXls1NwAAAAACAAAAAAOzA7MAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTBwYiLwEmNjsBETQ2OwEyFhURMzIWAe52Z2Q7PT07ZGd2fGpmOz4+O2ZpIXYOKA52Dg0XXQsHJgcLXRcNA7M+O2ZqfHZnZDs9PTtkZ3Z9aWY7Pv3wmhISmhIaARcICwsI/ukaAAMAAAAAA+UD5QAXACMALAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAxQrASI1AzQ7ATIHJyImNDYyFhQGAe6Ecm9BRERBb3KEiXZxQkREQnF1aQIxAwgCQgMBIxIZGSQZGQPkREJxdomEcm9BRERBb3KEinVxQkT9HQICAWICAjEZIxkZIxkAAAAAAwAAAAADsQPkABsAKgAzAAABBgcGBwYHBjcRFBcWFxYXNjc2NzY1ESQXJicmBzMyFhUDFAYrASInAzQ2EyImNDYyFhQGAfVBQTg7LDt/IEc+bF5sbF1tPUj+2KhQQVVvNAQGDAMCJgUBCwYeDxYWHhUVA+QPEg4SDhIpCv6tj3VkST4dHT5JZHWPAVNeNRkSGPwGBP7GAgMFAToEBv5AFR8VFR8VAAAAAgAAAAADsQPkABkALgAAAQYHBgc2BREUFxYXFhc2NzY3NjURJBcmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9VVVQk+v/tFHPmxebGxdbT1I/tGvT0JVo/7VBASKAwMSAQUBcQEFAgESAgUBEQQD4xMYEhk3YP6sjnVlSD8cHD9IZXWOAVRgNxkSGP62/tkDA48EBBkCAVYCAQHlAQIQBAAAAAACAAAAAAPkA+QAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTAQYiLwEmPwE2Mh8BFjI3ATYyHwEWAe6Ecm9BQ0NCbnODiXVxQkREQnF1kf6gAQUBowMDFgEFAYUCBQEBQwIFARUEA+NEQnF1iYNzbkJDQ0FvcoSJdXFCRP6j/qUBAagEBR4CAWYBAQENAgIVBAAAAAQAAAAAA68DrQAUACkAPwBDAAABIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYTBQ4BLwEmBg8BBhYfARYyNwE+ASYiFzAfAQH1eGdkOzw8O2Rn8GZkOzw8O2RmeG5eWzY3NzZbXtteWzY3NzZbXmn+9gYSBmAGDwUDBQEGfQUQBgElBQELEBUBAQOtPDtkZ/BnYzs8PDtjZ/BnZDs8/K83NVte215cNTc3NVxe215bNTcCJt0FAQVJBQIGBAcRBoAGBQEhBQ8LBAEBAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUHGgzLDCELAh0LHwsNCgr9uQoeCgGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA+UD5gAXACwAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBi8BJicmNRM0NjsBMhYVExceAQHvhHJvQUNDQm5zg4l1cUJEREJxdVcQAwT6AwIEEAMCKwIDDsUCAQPlREJxdYmDc25CQ0NBb3KEiXVxQkT9VhwEAncCAgMGAXoCAwMC/q2FAgQAAAQAAAAAA68DrQADABgALQAzAAABMB8BAyIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAyMVMzUjAuUBAfJ4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NltemyT92QKDAQEBLDw7ZGfwZ2M7PDw7Y2fwZ2Q7PPyvNzVbXtteXDU3NzVcXtteWzU3AjH9JAAAAAMAAAAAA+QD5AAXACcAMAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAzMyFhUDFAYrASImNQM0NhMiJjQ2MhYUBgHuhHJvQUNDQm5zg4l1cUJEREJxdZ42BAYMAwInAwMMBh8PFhYeFhYD40RCcXWJg3NuQkNDQW9yhIl1cUJE/vYGBf7AAgMDAgFABQb+NhYfFhYfFgAABAAAAAADwAPAAAgAEgAoAD0AAAEyNjQmIgYUFhcjFTMRIxUzNSMDIgcGBwYVFBYXFjMyNzY3NjU0Jy4BAyInJicmNDc2NzYyFxYXFhQHBgcGAfQYISEwISFRjzk5yTorhG5rPT99am+DdmhlPD4+PMyFbV5bNTc3NVte2l5bNTc3NVteAqAiLyIiLyI5Hf7EHBwCsT89a26Ed8w8Pj48ZWh2g29qffyjNzVbXtpeWzU3NzVbXtpeWzU3AAADAAAAAAOoA6gACwAgADUAAAEHJwcXBxc3FzcnNwMiBwYHBhQXFhcWMjc2NzY0JyYnJgMiJyYnJjQ3Njc2MhcWFxYUBwYHBgKOmpocmpocmpocmpq2dmZiOjs7OmJm7GZiOjs7OmJmdmtdWTQ2NjRZXdZdWTQ2NjRZXQKqmpocmpocmpocmpoBGTs6YmbsZmI6Ozs6YmbsZmI6O/zCNjRZXdZdWTQ2NjRZXdZdWTQ2AAMAAAAAA+kD6gAaAC8AMAAAAQYHBiMiJyYnJjQ3Njc2MhcWFxYVFAcGBwEHATI3Njc2NCcmJyYiBwYHBhQXFhcWMwKONUBCR21dWjU3NzVaXdpdWzU2GBcrASM5/eBXS0grKysrSEuuSkkqLCwqSUpXASMrFxg2NVtd2l1aNTc3NVpdbUdCQDX+3jkBGSsrSEuuSkkqLCwqSUquS0grKwAC//8AAAPoA+gAFAAwAAABIgcGBwYQFxYXFiA3Njc2ECcmJyYTFg4BIi8BBwYuATQ/AScmPgEWHwE3Nh4BBg8BAfSIdHFDRERDcXQBEHRxQ0REQ3F0SQoBFBsKoqgKGxMKqKIKARQbCqKoChsUAQqoA+hEQ3F0/vB0cUNERENxdAEQdHFDRP1jChsTCqiiCgEUGwqiqAobFAEKqKIKARQbCqIAAAIAAAAAA+QD5AAXADQAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMUBiMFFxYUDwEGLwEuAT8BNh8BFhQPAQUyFh0BAe6Ecm9BQ0NCbnODiXVxQkREQnF1fwQC/pGDAQEVAwTsAgEC7AQEFAIBhAFwAgMD40RCcXWJg3NuQkNDQW9yhIl1cUJE/fYCAwuVAgQCFAQE0AIFAtEEBBQCBQGVCwMDJwAAAAUAAAAAA9QD0wAjACcANwBHAEgAAAERFAYjISImNREjIiY9ATQ2MyE1NDYzITIWHQEhMhYdARQGIyERIREHIgYVERQWOwEyNjURNCYjISIGFREUFjsBMjY1ETQmKwEDeyYb/XYbJkMJDQ0JAQYZEgEvExkBBgkNDQn9CQJc0QkNDQktCQ0NCf7sCQ0NCS0JDQ0JLQMi/TQbJiYbAswMCiwJDS4SGRkSLg0JLAoM/UwCtGsNCf5NCQ0NCQGzCQ0NCf5NCQ0NCQGzCQ0AAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}@font-face{font-weight:400;font-style:normal;font-family:unibtn;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg8SAzoAAAC8AAAAYGNtYXAAILNAAAABHAAAAGRnYXNwAAAAEAAAAYAAAAAIZ2x5ZnVT/G4AAAGIAAAEHGhlYWQOAdVuAAAFpAAAADZoaGVhB3wDzAAABdwAAAAkaG10eCIABqYAAAYAAAAALGxvY2EDqgTMAAAGLAAAABhtYXhwAA8ATQAABkQAAAAgbmFtZXBR8sQAAAZkAAAB2nBvc3QAAwAAAAAIQAAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADmUAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQASAAAAA4ACAACAAYAAQAg5gLmBuZQ//3//wAAAAAAIOYA5gTmUP/9//8AAf/jGgQaAxm6AAMAAQAAAAAAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQFgAHkCwQLqABYAAAEmNDc2MhcBHgEVFAYHAQYiJyY0NwkBAWAICAcWBwE1BAQEBP7LBxYHCAgBIv7eAsUHFwcICP7cBAsFBgsE/twICAcXCAETARMAAAEBWAB5ArkC6gAXAAAJAhYUBwYiJwEuATU0NjcBNjIXFhQHMQK5/t4BIggICBUI/swFAwMFATQIFQgICALF/u3+7QgXBwgIASQECwYFCwQBJAgIBxcHAAACANAAaQO6Aw0AHAA2AAAlFAYjISImNRE0NjsBNSMiBhURFBYzITI2PQEjFRMnBxcHDgMPATM1PgE3PgE/AgcXNyc3A1IHBP3CBAYGBLDAERgYEQJfERcuaKQhbndKgmM9BQEvBTYtLXVABmpuIaQBAaUEBwcEAagFBjEZEf40ERkZEqWUAbysI3MBBjxffkcIBzxuKysyBAEBdCKsAgIAAgCXAF4DcwMbADEASgAAAS4BLwIuASMiBg8CDgEHBhYfAQcGFhceATMyNj8BFx4BMzI2Nz4BJzQwNSc3PgEnBTYmLwE3PgE/ARceAR8BBw4BHwEnJgYPAQNzAgoG42cDCgcGCgNk4wYKAgEDBKUlAQUFAwYEAgUDyswCBQMGCgMCAQEoowUDAv38AQMEjcIFCQJWWAIJBcOMBAMBIq4FCwSuAhQGCAEfzQYGBgbOIwEIBgYMBJ/iBgwEAgICAWxqAQEGBgMJAwEB3qEFDAa2BgoEiB0BBgWxsAUGARuJBAsFwVoDAQJcAAIAvwB1A1ADEQAhAD4AAAEiBh0BFAYjISImPQE0JiMiBh0BHgEzITI2PQE0JicuASM3AS4BIyIGBwEGFBceATMyNjcBNjIXARYyNz4BJwL3Cg4LB/51CAsOCgkPASYbAYwbJwQDAwkFWf7mChgNDRgJ/uYGBwMJBQQIBAEZBRAFARoHEwcGAQYBsA4J4gcLCwfiCQ4OCeIbJycb4gQJAwQDNAEaCgkJCf7lBxMGBAMDAwEZBQX+5wYHBhMHAAAAAAMA3AF2AzEB+gALABcAJAAAATI2NTQmIyIGFRQWITI2NTQmIyIGFRQWITI2NTQmIyIGFRQWMwEeHCcnHBsnJwEDHCcnHBsnJwEEGycnGxwnJxwBdicbGycnGxsnJxsbJycbGycnGxsnJxsbJwAAAAABAOwAnQMUAs4AJQAAATc2NCcmIg8BJyYiBwYUHwEHBhQXHgEzMjY/ARceATMyNjc2NCcCKOwJCQgYCOzqCBgICQnq7AkJBAoGBQsE7OwECwUGCgQJCQG76gkXCQgI6+sICAgYCOvrCBgIBAQEBOvtBQQFBAgXCQABAAAAAQAA3hDrLV8PPPUACwQAAAAAANWUyKsAAAAA1ZTIqwAAAAADugMbAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAO6AAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWAEAAFYBAAA0AQAAJcEAAC/BAAA3AQAAOwAAAAAAAoAFAAeAEoAdgDGAToBmgHSAg4AAQAAAAsASwADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAAcAnwABAAAAAAADAA4ASwABAAAAAAAEAA4AtAABAAAAAAAFAAsAKgABAAAAAAAGAA4AdQABAAAAAAAKABoA3gADAAEECQABABwADgADAAEECQACAA4ApgADAAEECQADABwAWQADAAEECQAEABwAwgADAAEECQAFABYANQADAAEECQAGABwAgwADAAEECQAKADQA+HN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFJlZ3VsYXIAUgBlAGcAdQBsAGEAcnN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdEZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}body,html{-webkit-user-select:none;user-select:none;width:100%}html{height:100%;height:100vh;width:100%;width:100vw}body{overflow-x:hidden;background-color:#fff}[class*=" uni-icon-"],[class^=uni-icon-]{display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 uni;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"],[class^=uni-btn-icon]{display:inline-block;font:normal normal normal 14px/1 unibtn;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"]:before,[class^=uni-btn-icon]:before{margin:0;box-sizing:border-box}.uni-icon-success-no-circle:before{content:"\EA08"}.uni-icon-error:before{content:"\EA0B"}.uni-loading,uni-button[loading]:before{background:rgba(0,0,0,0) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}@-webkit-keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[nvue] uni-scroll-view,[nvue] uni-swiper-item,[nvue] uni-view{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-basis:auto;flex-basis:auto;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start}[nvue] uni-button{margin:0}[nvue-dir-row] uni-label,[nvue-dir-row] uni-swiper-item,[nvue-dir-row] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}[nvue-dir-column] uni-label,[nvue-dir-column] uni-swiper-item,[nvue-dir-column] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}[nvue-dir-row-reverse] uni-label,[nvue-dir-row-reverse] uni-swiper-item,[nvue-dir-row-reverse] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}[nvue-dir-column-reverse] uni-label,[nvue-dir-column-reverse] uni-swiper-item,[nvue-dir-column-reverse] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video,[nvue] uni-view{position:relative;border:0 solid #000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}html{--UI-BG:#fff;--UI-BG-1:#f7f7f7;--UI-BG-2:#fff;--UI-BG-3:#f7f7f7;--UI-BG-4:#4c4c4c;--UI-BG-5:#fff;--UI-FG:#000;--UI-FG-0:rgba(0,0,0,0.9);--UI-FG-HALF:rgba(0,0,0,0.9);--UI-FG-1:rgba(0,0,0,0.5);--UI-FG-2:rgba(0,0,0,0.3);--UI-FG-3:rgba(0,0,0,0.1)}@media (prefers-color-scheme:dark){html{--UI-BG-COLOR-ACTIVE:#373737;--UI-BORDER-COLOR-1:#373737;--UI-BG:#000;--UI-BG-0:#191919;--UI-BG-1:#1f1f1f;--UI-BG-2:#232323;--UI-BG-3:#2f2f2f;--UI-BG-4:#606060;--UI-BG-5:#2c2c2c;--UI-FG:#fff;--UI-FG-0:hsla(0,0%,100%,0.8);--UI-FG-HALF:hsla(0,0%,100%,0.6);--UI-FG-1:hsla(0,0%,100%,0.5);--UI-FG-2:hsla(0,0%,100%,0.3);--UI-FG-3:hsla(0,0%,100%,0.05)}body{background-color:var(--UI-BG-0);color:var(--UI-FG-0)}}uni-audio{display:none}uni-audio[controls]{display:inline-block}uni-audio[hidden]{display:none}.uni-audio-default{max-width:100%;min-width:302px;height:65px;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:2.5px;display:inline-block;overflow:hidden}.uni-audio-left{width:65px;height:65px;float:left;background-color:#e6e6e6;background-size:100% 100%;background-position:50% 50%}.uni-audio-button{width:24px;height:24px;margin:20.5px;background-size:cover}.uni-audio-button.play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAB4dJREFUaAXNWg1MlVUYvpcfIRCJ+MnCaOBl8dOcOCEQZ9kmI5cQG5Yb6MifKbMaGVobOtlibTWHDpgpxBUwF07826iFsMkYJhg559JdGiQSkUzSBA0QkZ7n4/u+nXsvwf3jwru99/y/3/N+3znvec97rlbjABofH38GYtaAV4MjwDqwH9gHTBoE3wd3gA3gi+B6rVY7hHR2CKD9wFngs+BHYGuJYziWMqiscwgP8wLvBQ+AHUWURZle1mqhtXQAhLui7xZwPvgFsBENDg7+Drp069at2z09Pf03b978u6mpqZ+dVq1aFRAVFeW/aNGigNDQ0JfDwsISfXx8wowETBT+QpIPLsf0GpuomvrXIgUAPhhizoGXi+II+tq1az/o9fpLFRUVd8S26fJZWVkLN2/enBgTE/PW/PnzF5v0b0P5HSjxp0m9WXFaBQD+NYw6C1bf+vDwcF9DQ4N+/fr19ciPm0m1osLT01N76tSpNaD3PTw8FgpD+TXSoESrUGeWnVIBgM/EiDKwJ0eiPNrS0nJsw4YNNd3d3aOscxSFhIS4V1dXpyckJGRB5jxZ7jDSbVDiW7lslriY1cgVMvjjKErgR0dH/zl06NCuFStWfOdo8HwkZVL2wYMHP3ny5AlNLonPPi5jkSpMfyb9AhjAadMIlsBjrndmZ2fnnThxos9UwEyUMzIynj9y5EgB1gb3ExK/xBuTTSczBQCeC/ZnsDTnCR6f9YMbN25QiNMoOjras7W1tcjb2ztcfijXRKzpwjaaQgBPU0lrI4HntOGbdzZ4AuYzt2/fvm9sbOweyyBiOidjlCr4Y6QAyrTzkqlEx9GSkpJ9zpo2BGNKfHZRUdF+1D+W24iNGFVSpxAAcxekryK9/cuXLx/FoqpWe85iBlPpvbi4uB0yBE4lHabSvyyLX2AXyhJ42nmYytPsMBcI+80ZWKZeGQsxEqtEkgJ4+3Sm9sh1Gm5SM2EqFfnWpsRSV1dXIYzbI2NWv0AqGiXXl+4Bd1ihs0XZu3fvHhgYGNBXVVUlWDTAyk7p6ekNIyMj7fIwYiVmIwWkNvo2trgHAQEBy+CghW7cuPGLvr6+L3fu3PmSJNBBP8R09erVHwVxEwrgU/AwkqQ00DFT8lamqkEICgqKKy4u1sMU7li6dKnVLvL/Pbe0tLRFaEsidi1+UlB5ng3ctBYsWLBV6GRxFnJ4yjIj7CX36uvrS1NTU+uwEM3ara3Al/gaTl+EPC6Vi/hNRUhHR8dPSt5Rqbu7+3Nr1679rL+//3BBQYHyYJvFd3V1iTNkNRV4RZF2G6TkHZ36+vpG5uXlHcah59Pk5GSbj5AY3y1gi6ACisOk4UlKaJyJrBYnsuTa2trjzc3N7/r7+9N1sYo6OzsfCAN0VEB9GzwGCo0zlnV1dfVOTEzMhn3Xl5eXx1rzIBOMflRAsv8UopxhrRFoT18vL68QHCu/am9vz7FUjglGHyow6xQcHBxjKwgqwKCTRIweKHlnpZhGDfC7LP4CJhgH3QCUxzd/AmboA0kP8zNNcDt+w8ZUvHv37l+tedaSJUueFfrfpwJ0oSVLxLiN0DgjWWxsDxobG79JSUn53haXRafT+QrAOjiFDEoFg05K3tEpduoxg8FweuXKlRlJSUm1toAnpvDwcB55FTJQAdUFYMRMaXFkil34l9zc3K2RkZElV65ceWSPbCz414XxF6kAXWfpdMNwHyNmQge7skNDQ3dOnjy5PzAwMLewsLDLLmEYDJMb5ObmFiXLIeZ6FxzNGOK+IFeyk91f4enTpyNtbW3HIiIiNsHCNCmy7U1zcnKWCTIuEDu/AOn8RKLRMFbJcJ9StjRlBIN94Y40ZmZmboqNja3iScrS8dP1IyaEWt4W+kmYaYVILHA/8GGglbHKdevWqV+FHaYjOGofw811hcfZOV1fW9pxzE1wcXGJlscSq6SA+qZhJfai8nN2wNHtDhb0pt7eXoe9Qcq1lRg3hRvNkLtyytuHfAHlKVOI+UIwQxYaRolramrSmZ8LhLefJIAnRmKVSFUAHbiq8yeqNRpGiWE5XlXKs5WWlZUthu3/SHh+voxVqlKnEEuYRvTPee5czjKjxDCr2bMVnYNF9IO7fRRQAokHxIuPeCig3t4YKcAeUCIYiRrcffjwYUd8fPyHzo6PwuJ4XL9+/QAWrjILOHWmDu5SAWjHa500sBSNZoibUWKGvNnuDOKbNwFPLLytITYjUteAWIuOvNbZptQxxF1ZWXnYGWuCc57TRnjzhMFbGmIyI7MpJPbAdMpEuQzsKdc/hi+jT0tLO+NoE0tTSWsjL9h58vP45qe8YppSAQqBEmaXfAy0MlbJcJ+tXqUMUMMdlpsUIuE78JYVO89mznn7LvmUh8gL+xzKknVS6hmrZLiPETNrr1npmNG3oXsg7LCKaFobx1yzKhKhBE3sFnA+mCFuI4IyBuyWzYjb/MHQh+lFN09SPIxgirxIlxhepeIWiHL41vPBFl90i4MtykOROfVXA4tAT9YJisyJP3tMu4gnA29aB2UY4V4DXg1m/FMH9gMrMSd6jwwe8PxtAPMU6JC/2/wHuyI2cMsNBRIAAAAASUVORK5CYII=)}.uni-audio-button.pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABatJREFUaAXVWl1IpFUYnllZGUf3wlz6MXER1ES7s83VUDJw6KpdaSTDwMnYFSK6KNirooHullKQCNzQRjZ/wom1u9ALQ0mT1ktFdEBWXLdibaH1jwmx5zme83W+z2Hm+7bZmc8X3jl/73vO837n/z3j9aSBjo6O8lBNC7gZXAUuBxeCz4FJj8APwTHwCngaPOX1evcRZocAuhAcAt8G74KdEnWoyzpobGYIjfnBn4D/BqeLWBfr9Du1wmtXAZXnQPY9cBj8HNhEe3t7sbW1tfn19fW7m5ubD5aXl7dnZmYeUKipqel8dXV1UUlJyfmysrILFRUV9X6/n8PMSveREQYPYHgdWgsTpW0ZAPDPQ3kC/JJeCUEvLi7+NDg4+EskEvldL0sVD4VCz3Z1db1SW1v7egJj7kD/Coy4l6qelAYAfB0quQ02vno8Hr8/OTkZaWtrmzo4ODhK1Uiycp/P5x0fH28JBAKh3Nxcow3osDdaYcRCMv2kBgD8O1D+BuyTlcTn5+cj7e3t0Y2NjX+SVey0rLS09OzY2Fiwvr4+BN1cqX+A8CqM+E6mTwRnTuTIDAn+FpIC/OHh4V+9vb0fNzQ0jKYbPJtknaybbbAtCYNt35JYZJY5SNgDctj8DFEBfnd3d627u/vT4eHhP8zqTybV0dHxTH9//+f5+fkVsgX2xKuJhtMJAwCeE/Y3sBiPBF9XV/fh0tISK8kY1dTU+BYWFvo0IzgnLlontmkIATyXSq42Ajy7kl8+0+D5ldgm29aGEzFNSIwUEWQyADlc59VSGe/r6/ssU8PmGI75l20TA3LjsoTYiNEgYwjBMu6CPKuIr4/Vph+TasyQzGJkbm7ubaxO1yQEDqVyDKU9pvUe+AhpAZ7rPJbKHyjgBuKyTUwSCzESqyBhAL4+D1PXZZ6Hm9STWCpV/U5DYiEmTe+6xOwRQwiJEAq/pQCPB0VFRdf+7w7LutJJ3LG3t7dvaseOdzGMImoIXVaN8WzjNvDERkzEpnAiFJjP4OvzMhJQBTyYqbjdEDov7+/vf4+6pu0wZQcGBi7arV/JWbAFiN2Lnzcg8COFuGkVFBSo2a70UoYEhC5+OqWgJoAv+mdeXt5bWpat6M7Ozk1tc7vMIfSa0lxdXf1VxZ2ETsGz7sfRoV4sFtMxNtOAF1hAugs6jrn3lxcmDV0VDTBuRrxJaYWujFowltMA40LNa6ArUWugLBgLaYByfXjUHVaTd13UgvEcDTjVRAPodBJE74GKuzW0YHxEA+gxE0TXh4q7NbRgfEgDeIQWRL+Nirs1tGCM0YAVBZZOJxV3a2jBuEIDphVYesxU3EnIY4ETeco+jg71LBinacAUWNxueFSlx4yCTmh0dPRLJ4AoOzIy8oWTNihLbNpxmpin1H2AnrcrFJqdnf0KM901tzFiUoQ94M3GxsYPZHoC94FW9gBJnEYZoa8SBy1hGNNuIWIiNg2PwKwbIPYDdhF9lZqgK6LEpA0fYv3PAHQF94IbCikdrcXFxWdVOtsh/abEpOG4ITGbvBI9EBA3f3qJo9FoUFPIapROX81zTYzEKkgNIQ8s4qwOH2d7PPQS9/T0vKjS2QqJQXqsFYSwxCrSpsmK6yVdi7zx0APmoVuvs7Pz/Wx55+jkHRoa+jonJ+cp4gHdAV+CAcbrjckASsCI0+vcpQGw7h6CVrDwRvMCTS8xvwbLM0Fsy+KZJha+1hCbiYw5oOdCkM86V1UejWBXZmJOsA22pXkeCIOvNAmfmk4MIQWaIYZTwiemYDAY3dracsUTU1IDpBGn95FP9Yac2KfzmVUzgkssHxfCYOGGR2gQvXp0jNG3lOyh+wKosrLykmWMq3q4SYXBth+6laLtEL3hqr8a2AZuFYQhrvizR8pJbAWeKA1j6OFuATeDq8D09hWClc+Jp0ceGHn/5hWWt8C0/N3mX15C4bDnCIuAAAAAAElFTkSuQmCC)}.uni-audio-right{box-sizing:border-box;height:65px;margin-left:65px;padding:11px 16.5px 13.5px 15px;overflow:hidden}.uni-audio-time{margin-top:3.5px;height:16.5px;font-size:12px;color:#888;float:right}.uni-audio-info{margin-right:70px;overflow:hidden}.uni-audio-name{height:22.5px;line-height:22.5px;margin-bottom:3.5px;font-size:14px;color:#353535}.uni-audio-author,.uni-audio-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uni-audio-author{height:14.5px;line-height:14.5px;font-size:12px;color:#888}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8;cursor:pointer}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:hsla(0,0%,100%,.6);cursor:not-allowed}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:rgba(0,0,0,0)}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:rgba(0,0,0,0)}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:not([disabled]){cursor:progress}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}uni-button[loading][type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:rgba(0,0,0,0)}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:rgba(0,0,0,0)}uni-button[loading][type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:rgba(0,0,0,0)}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(0,122,255,.6);border-color:rgba(0,122,255,.6);background-color:rgba(0,0,0,0)}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:rgba(0,0,0,0)}@media (prefers-color-scheme:dark){uni-button,uni-button[type=default]{color:#d6d6d6;background-color:#343434}.button-hover,.button-hover[type=default]{color:#d6d6d6;background-color:hsla(0,0%,100%,.1)}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.08)}uni-button[type=primary][plain][disabled]{color:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.2)}uni-button[type=default][plain]{color:#d6d6d6;border:1px solid #d6d6d6}.button-hover[type=default][plain]{color:hsla(0,0%,58.8%,.6);border-color:hsla(0,0%,58.8%,.6);background-color:rgba(50,50,50,.2)}uni-button[type=default][plain][disabled]{border-color:hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.2)}}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox-group[hidden]{display:none}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-checkbox[hidden]{display:none}uni-checkbox[disabled]{cursor:not-allowed}uni-checkbox .uni-checkbox-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-checkbox .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}@media (hover:hover){uni-checkbox:not([disabled]) .uni-checkbox-input:hover{border-color:var(--HOVER-BD-COLOR,#007aff)!important}}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{color:#007aff}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-checkbox-group{display:block}.ql-container{display:block;position:relative;box-sizing:border-box;-webkit-user-select:text;user-select:text;outline:none;overflow:hidden;width:100%;height:200px;min-height:200px}.ql-container[hidden]{display:none}.ql-container .ql-editor{position:relative;font-size:inherit;line-height:inherit;font-family:inherit;min-height:inherit;width:100%;height:100%;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-overflow-scrolling:touch}.ql-container .ql-editor::-webkit-scrollbar{width:0!important}.ql-container .ql-editor.scroll-disabled{overflow:hidden}.ql-container .ql-image-overlay{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;box-sizing:border-box;border:1px dashed #ccc;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-user-select:none;user-select:none}.ql-container .ql-image-overlay .ql-image-size{position:absolute;padding:4px 8px;text-align:center;background-color:#fff;color:#888;border:1px solid #ccc;box-sizing:border-box;opacity:.8;right:4px;top:4px;font-size:12px;display:inline-block;width:auto}.ql-container .ql-image-overlay .ql-image-toolbar{position:relative;text-align:center;box-sizing:border-box;background:#000;border-radius:5px;color:#fff;font-size:0;min-height:24px;z-index:100}.ql-container .ql-image-overlay .ql-image-toolbar span{display:inline-block;cursor:pointer;padding:5px;font-size:12px;border-right:1px solid #fff}.ql-container .ql-image-overlay .ql-image-toolbar span:last-child{border-right:0}.ql-container .ql-image-overlay .ql-image-toolbar span.triangle-up{padding:0;position:absolute;top:-12px;left:50%;-webkit-transform:translatex(-50%);transform:translatex(-50%);width:0;height:0;border-width:6px;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #000 rgba(0,0,0,0)}.ql-container .ql-image-overlay .ql-image-handle{position:absolute;height:12px;width:12px;border-radius:50%;border:1px solid #ccc;box-sizing:border-box;background:#fff}.ql-container img{display:inline-block;max-width:100%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;height:100%;outline:none;overflow-y:auto;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:2em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl),.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:2em}.ql-editor .ql-indent-2:not(.ql-direction-rtl),.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:4em}.ql-editor .ql-indent-3:not(.ql-direction-rtl),.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor .ql-indent-4:not(.ql-direction-rtl),.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:8em}.ql-editor .ql-indent-5:not(.ql-direction-rtl),.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:10em}.ql-editor .ql-indent-6:not(.ql-direction-rtl),.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor .ql-indent-7:not(.ql-direction-rtl),.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:14em}.ql-editor .ql-indent-8:not(.ql-direction-rtl),.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:16em}.ql-editor .ql-indent-9:not(.ql-direction-rtl),.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;pointer-events:none;position:absolute}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}uni-icon{display:inline-block;font-size:0;box-sizing:border-box}uni-icon[hidden]{display:none}uni-icon>i{font:normal normal normal 14px/1 weui}uni-icon>i:before{margin:0;box-sizing:border-box}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx8AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5Zp+UEEcAAASUAAAIvGhlYWQUqc7xAAAA4AAAADZoaGVhB/YD+wAAALwAAAAkaG10eEJoAAAAAAHUAAAASGxvY2EUxhJeAAAEbAAAACZtYXhwASEAQwAAARgAAAAgbmFtZeNcHtgAAA1QAAAB5nBvc3T6OoZLAAAPOAAAAOYAAQAAA+gAAABaA+gAAAAAA7MAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAAMCU2KdfDzz1AAsD6AAAAADY7EUUAAAAANjsRRQAAAAAA7MD5AAAAAgAAgAAAAAAAAABAAAAEgA3AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPoAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARACKAMQBEgFgAZIB4gH6AioCeAK0AwwDZAOiA9wEEAReAAAAAgAAAAADlQOVABQAKQAAJSInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAIAAAAAA7MDswAXAC0AAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBiIvASY2OwERNDY7ATIWFREzMhYB7nZnZDs9PTtkZ3Z8amY7Pj47Zmkhdg4oDnYODRddCwcmBwtdFw0Dsz47Zmp8dmdkOz09O2Rndn1pZjs+/fCaEhKaEhoBFwgLCwj+6RoAAwAAAAADlQOVABQAGAAhAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDETMRJzI2NCYiBhQWAfRxYV83OTk3X2HiYV83OTk3X2GQPh8RGRkiGRlTOTdfYeJhXzc5OTdfYeJhXzc5AfT+3QEjKhgjGBgjGAAAAAACAAAAAAOxA+QAFwAsAAABBgcGDwERFBcWFxYXNjc2NzY1EScmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9WlsP3A3Rz5sXmxsXW09SDdwQGuP/tUEBIoDAxIBBQFxAQUCARICBQERBAPjFyASJBL+rI51ZUg/HBw/SGV1jgFUEiQSIP66/tkDA48EBBkCAVYCAQHlAQIQBAAAAAADAAAAAAOxA+QAFwAmAC8AAAEGBwYPAREUFxYXFhc2NzY3NjURJyYnJgczMhYVAxQGKwEiJwM0NhMiJjQ2MhYUBgH1aWtAcDdHPmxebGxdbT1IN3BAa4M0BAYMAwImBQELBh4PFhYeFRUD5BggEiQS/q2PdWRJPh0dPklkdY8BUxIkEiD4BgT+xgIDBQE6BAb+QBUfFRUfFQAAAAACAAAAAAOVA5UAFAAaAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJwcXAScB9HFhXzc5OTdfYeJhXzc5OTdfYaJzLJ8BFi1TOTdfYeJhXzc5OTdfYeJhXzc5AUhzLJ8BFSwAAAAAAwAAAAADlQOVABQAKQAvAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTNxcBJzcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1Uz8iT+6p8jUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIBBPIj/uufJAAAAAEAAAAAA5kDGAAHAAAlATcXARcBBgGF/vg7zgHYOv3vAcsBCTvPAdg7/e4BAAAAAAIAAAAAA5UDlQAFABoAAAE1IxUXNwMiJyYnJjQ3Njc2MhcWFxYUBwYHBgITPrEsvnFhXzc5OTdfYeJhXzc5OTdfYQIO4PqxLP7kOTdfYeJhXzc5OTdfYeJhXzc5AAAAAAMAAAAAA5UDlQAFABoALwAAARcHJzUzAyInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAg2iI7EyGXFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1UCCaIksfr9ZTk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAMAAAAAA5UDlQAUABgAIQAAJSInJicmNDc2NzYyFxYXFhQHBgcGAxMzEwMyNjQmIg4BFgH0cWFfNzk5N19h4mFfNzk5N19hkQU2BSAQFRUgFQEWUzk3X2HiYV83OTk3X2HiYV83OQKV/sQBPP43Fh8VFR8WAAAAAAQAAAAAA5UDlQAUACkALQA2AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTMxEjEyImNDYyFhQGAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVSzIyGREZGSIZGVM5N19h4mFfNzk5N19h4mFfNzkyMjFTVchVUzEyMjFTVchVUzEyAcL+3QFNGCMYGCMYAAAAAwAAAAADlQOVABQAKQA1AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTFwcnByc3JzcXNxcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1WHgiOCgiOCgiOCgiNTOTdfYeJhXzc5OTdfYeJhXzc5MjIxU1XIVVMxMjIxU1XIVVMxMgFvgiOCgiOCgiOCgiMAAAACAAAAAANUA0IAGAAlAAABFwcnDgEjIicmJyY0NzY3NjIXFhcWFRQGJzQuASIOARQeATI+AQKoqyOsJ180T0RCJycnJ0JEn0RCJiglDUFvg29BQW+Db0EBYKwjrCAjKCZCRJ9EQicnJydCRE82YZdBb0FBb4NvQUFvAAAAAgAAAAADlQOVAAsAIAAAATcnBycHFwcXNxc3AyInJicmNDc2NzYyFxYXFhQHBgcGAiB9LH19LH19LH19LKlxYV83OTk3X2HiYV83OTk3X2EB9H0sfX0sfX0sfX0s/tw5N19h4mFfNzk5N19h4mFfNzkAAAACAAAAAAOVA5UAFAAcAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJzcnBwYfAQH0cWFfNzk5N19h4mFfNzk5N19hHoqKK7UBAbVTOTdfYeJhXzc5OTdfYeJhXzc5ARKPjy27AQG6AAAAAAUAAAAAA1cDbAAJAB0AJwArAC8AAAETHgEzITI2NxMzAw4BIyEiJicDIzU0NjMhMhYdASUyFh0BIzU0NjMHMxMjEzMDIwEaIgETDQEuDRMBIjIiAjAh/tIhMAIiVgwJApoJDP7xCQzQDAkVMhUyiTIVMgLd/cgOEhIOAjj9xSEuLiECOx4IDAwIHo4MCR0dCQz6/okBd/6JAAAAAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlLXN1Y2Nlc3MJc2FmZS13YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}.uni-icon-success:before{content:"\EA06"}.uni-icon-success_circle:before{content:"\EA07"}.uni-icon-success_no_circle:before{content:"\EA08"}.uni-icon-safe_success:before{content:"\EA04"}.uni-icon-safe_warn:before{content:"\EA05"}.uni-icon-info:before{content:"\EA03"}.uni-icon-info_circle:before{content:"\EA0C"}.uni-icon-warn:before{content:"\EA0B"}.uni-icon-waiting:before{content:"\EA09"}.uni-icon-waiting_circle:before{content:"\EA0A"}.uni-icon-circle:before{content:"\EA01"}.uni-icon-cancel:before{content:"\EA0D"}.uni-icon-download:before{content:"\EA02"}.uni-icon-search:before{content:"\EA0E"}.uni-icon-clear:before{content:"\EA0F"}.uni-icon-safe_success,.uni-icon-success,.uni-icon-success_circle,.uni-icon-success_no_circle{color:#007aff}.uni-icon-safe_warn{color:#ffbe00}.uni-icon-info{color:#10aeff}.uni-icon-info_circle{color:#007aff}.uni-icon-warn{color:#f76260}.uni-icon-waiting,.uni-icon-waiting_circle{color:#10aeff}.uni-icon-circle{color:#c9c9c9}.uni-icon-cancel{color:#f43530}.uni-icon-download{color:#007aff}.uni-icon-clear,.uni-icon-search{color:#b2b2b2}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div,uni-image>img{width:100%;height:100%}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;display:block;position:absolute;top:0;left:0;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em;overflow:hidden}uni-input[hidden]{display:none}.uni-input-form,.uni-input-input,.uni-input-placeholder,.uni-input-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-form,.uni-input-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.uni-input-input,.uni-input-placeholder{width:100%}.uni-input-placeholder{position:absolute;top:auto!important;left:0;color:grey;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all;pointer-events:none;line-height:inherit}.uni-input-input{position:relative;display:block;height:100%;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button,.uni-input-input[type=search]::-webkit-search-decoration{display:none}.uni-input-input::-webkit-inner-spin-button,.uni-input-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}.uni-input-input:disabled{-webkit-text-fill-color:currentcolor}.uni-label-pointer{cursor:pointer}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0;left:0;position:absolute;cursor:grab}uni-movable-view[hidden]{display:none}uni-navigator{height:auto;width:auto;display:block;cursor:pointer}uni-navigator[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}uni-picker-view-column{-webkit-flex:1;-webkit-box-flex:1;flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%;overflow:hidden}.uni-picker-view-mask{transform:translateZ(0);-webkit-transform:translateZ(0)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-mask{top:0;height:100%;margin:0 auto;background:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.uni-picker-view-indicator{height:34px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0;cursor:pointer}.uni-picker-view-content>*{height:34px;overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}@media (prefers-color-scheme:dark){.uni-picker-view-indicator:before{border-top-color:var(--UI-FG-3)}.uni-picker-view-indicator:after{border-bottom-color:var(--UI-FG-3)}.uni-picker-view-mask{background-image:-webkit-linear-gradient(top,rgba(35,35,35,.95),rgba(35,35,35,.6)),-webkit-linear-gradient(bottom,rgba(35,35,35,.95),rgba(35,35,35,.6));background-image:linear-gradient(180deg,rgba(35,35,35,.95),rgba(35,35,35,.6)),linear-gradient(0deg,rgba(35,35,35,.95),rgba(35,35,35,.6))}}uni-picker-view{display:block}uni-picker-view .uni-picker-view-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-progress{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{-webkit-flex:1;-webkit-box-flex:1;flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio-group[hidden]{display:none}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-radio[hidden]{display:none}uni-radio[disabled]{cursor:not-allowed}uni-radio .uni-radio-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-radio .uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}@media (any-hover:hover){uni-radio:not([disabled]) .uni-radio-input:hover{border-color:var(--HOVER-BD-COLOR,#007aff)!important}}uni-radio .uni-radio-input.uni-radio-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-radio .uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}uni-radio .uni-radio-input.uni-radio-input-disabled:before{color:#adadad}uni-radio-group{display:block}@-webkit-keyframes once-show{0%{top:0}}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;-webkit-animation:once-show 1ms;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;max-height:inherit}.uni-scroll-view,.uni-scroll-view-content{width:100%;height:100%}.uni-scroll-view-refresher{position:relative;overflow:hidden}.uni-scroll-view-refresh{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.uni-scroll-view-refresh,.uni-scroll-view-refresh-inner{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.uni-scroll-view-refresh-inner{line-height:0;width:40px;height:40px;border-radius:50%;background-color:#fff;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.uni-scroll-view-refresh__spinner{-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation:uni-scroll-view-refresh-rotate 2s linear infinite;animation:uni-scroll-view-refresh-rotate 2s linear infinite}.uni-scroll-view-refresh__spinner>circle{stroke:currentColor;stroke-linecap:round;-webkit-animation:uni-scroll-view-refresh-dash 2s linear infinite;animation:uni-scroll-view-refresh-dash 2s linear infinite}@-webkit-keyframes uni-scroll-view-refresh-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-scroll-view-refresh-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{-webkit-flex:1;-webkit-box-flex:1;flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-handle-wrapper,uni-slider .uni-slider-track{-webkit-transition:background-color .3s ease;transition:background-color .3s ease}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:rgba(0,0,0,0);z-index:3;cursor:grab}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:rgba(0,0,0,0);z-index:1}uni-slider .uni-slider-value{width:3ch;color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%;cursor:grab}uni-swiper-item[hidden]{display:none}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}uni-swiper .uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}uni-swiper .uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}uni-swiper .uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}uni-swiper .uni-swiper-dots{position:absolute;font-size:0}uni-swiper .uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;-webkit-transform:translate(-50%);transform:translate(-50%)}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}uni-swiper .uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;-webkit-transform:translateY(-50%);transform:translateY(-50%)}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}uni-swiper .uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}uni-swiper .uni-swiper-dot-active{background-color:#000}uni-swiper .uni-swiper-navigation{width:26px;height:26px;cursor:pointer;position:absolute;top:50%;margin-top:-13px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-transition:all .2s;transition:all .2s;border-radius:50%;opacity:1}uni-swiper .uni-swiper-navigation-disabled{opacity:.35;cursor:not-allowed}uni-swiper .uni-swiper-navigation-hide{opacity:0;cursor:auto;pointer-events:none}uni-swiper .uni-swiper-navigation-prev{left:10px}uni-swiper .uni-swiper-navigation-prev i{margin-left:-1px;left:10px}uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical{top:18px;left:50%;margin-left:-13px}uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical i{-webkit-transform:rotate(90deg);transform:rotate(90deg);margin-left:auto;margin-top:-2px}uni-swiper .uni-swiper-navigation-next{right:10px}uni-swiper .uni-swiper-navigation-next i{-webkit-transform:rotate(180deg);transform:rotate(180deg)}uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical{top:auto;bottom:5px;left:50%;margin-left:-13px}uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical i{margin-top:2px;-webkit-transform:rotate(270deg);transform:rotate(270deg)}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-switch[hidden]{display:none}uni-switch[disabled]{cursor:not-allowed}uni-switch .uni-switch-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-switch .uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}uni-switch[disabled] .uni-switch-input{opacity:.7}uni-switch .uni-switch-input:before{width:50px;background-color:#fdfdfd}uni-switch .uni-switch-input:after,uni-switch .uni-switch-input:before{content:" ";position:absolute;top:0;left:0;height:30px;border-radius:15px;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}uni-switch .uni-switch-input:after{width:30px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}uni-switch .uni-switch-input.uni-switch-input-checked:before{-webkit-transform:scale(0);transform:scale(0)}uni-switch .uni-switch-input.uni-switch-input-checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch:not([disabled]) .uni-checkbox-input:hover{border-color:#007aff}uni-switch .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:inherit;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}@media (prefers-color-scheme:dark){uni-switch .uni-switch-input{border-color:#3b3b3f}uni-switch .uni-switch-input,uni-switch .uni-switch-input:before{background-color:#3b3b3f}uni-switch .uni-switch-input:after{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-checkbox-input{background-color:#2c2c2c;border:1px solid #656565}}uni-text[selectable]{cursor:auto;user-select:text;-webkit-user-select:text}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal;white-space:pre-wrap;word-break:break-all}uni-textarea[hidden]{display:none}.uni-textarea-compute,.uni-textarea-line,.uni-textarea-placeholder,.uni-textarea-textarea,.uni-textarea-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%;min-height:inherit;overflow-y:hidden}.uni-textarea-compute,.uni-textarea-line,.uni-textarea-placeholder,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:inherit;word-break:inherit}.uni-textarea-placeholder{color:grey;overflow:hidden}.uni-textarea-compute,.uni-textarea-line{visibility:hidden;height:auto}.uni-textarea-line{width:1em}.uni-textarea-compute-auto-height{overflow-wrap:break-word}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-fix-margin{width:auto;right:0;margin:0 -3px}.uni-textarea-textarea:disabled{-webkit-text-fill-color:currentcolor}uni-ad{display:block;overflow:hidden}uni-ad[hidden]{display:none}uni-ad .uni-ad-container{width:100%;min-height:1px}uni-cover-image{display:block;line-height:1.2;overflow:hidden;height:100%;width:100%;pointer-events:auto}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;visibility:hidden;text-overflow:inherit;overflow:hidden;white-space:inherit;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;-webkit-flex-wrap:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}uni-live-pusher{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-live-pusher[hidden]{display:none}.uni-live-pusher-container{left:0;background-color:#000}.uni-live-pusher-container,.uni-live-pusher-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-live-pusher-slot{pointer-events:none}uni-map{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-map[hidden]{display:none}.uni-map-container{left:0;background-color:rgba(0,0,0,0)}.uni-map-container,.uni-map-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-map-slot{pointer-events:none}uni-picker{display:block}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{left:0;background-color:#000}.uni-video-container,.uni-video-slot{width:100%;height:100%;position:absolute;top:0;overflow:hidden}.uni-video-slot{pointer-events:none}uni-view{display:block}uni-view[hidden]{display:none}uni-web-view{position:absolute;left:0;right:0;top:0;bottom:0} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/view.umd.min.js b/unpackage/dist/dev/app-plus/view.umd.min.js index c0aa824d..96e79a0d 100644 --- a/unpackage/dist/dev/app-plus/view.umd.min.js +++ b/unpackage/dist/dev/app-plus/view.umd.min.js @@ -1,6 +1,6 @@ -(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["uni"]=e():t["uni"]=e()})("undefined"!==typeof self?self:this,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="393d")}({"005f":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var i="onPageCreate"},"01aa":function(t,e,n){"use strict";var i=n("e32e"),r=n.n(i);r.a},"0372":function(t,e,n){"use strict";n.d(e,"d",(function(){return w})),n.d(e,"b",(function(){return S})),n.d(e,"c",(function(){return k})),n.d(e,"a",(function(){return x}));var i=n("e8d9"),r=(n("340d"),n("c80c"),n("0a80")),o=n("c14b"),a=n("0dbd"),s=n("1da9"),c=n("4ef5");function u(t){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var h,d,f="zh-Hans",p="zh-Hant",v="en",m="fr",g="es",_={};function b(){if(C()){var t=Object.keys(__uniConfig.locales);t.length&&t.forEach((function(t){var e=_[t],n=__uniConfig.locales[t];e?Object.assign(e,n):_[t]=n}))}}Object.assign(_,(h={},l(h,v,r),l(h,g,o),l(h,m,a),l(h,f,s),l(h,p,c),h)),d="object"===("undefined"===typeof weex?"undefined":u(weex))?weex.requireModule("plus").getLanguage():"",b();var y=Object(i["a"])(d,_),w=y.t,S=y.mixin={beforeCreate:function(){var t=this,e=y.i18n.watchLocale((function(){t.$forceUpdate()}));this.$once("hook:beforeDestroy",(function(){e()}))},methods:{$$t:function(t,e){return w(t,e)}}},k=y.setLocale,x=y.getLocale;function C(){return"undefined"!==typeof __uniConfig&&__uniConfig.locales&&!!Object.keys(__uniConfig.locales).length}},"04a6":function(t,e,n){},"07b5":function(t,e,n){},"07d6":function(t,e,n){},"0834":function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"c",(function(){return r})),n.d(e,"h",(function(){return o})),n.d(e,"e",(function(){return a})),n.d(e,"g",(function(){return s})),n.d(e,"i",(function(){return c})),n.d(e,"a",(function(){return u})),n.d(e,"m",(function(){return l})),n.d(e,"j",(function(){return h})),n.d(e,"b",(function(){return d})),n.d(e,"l",(function(){return f})),n.d(e,"n",(function(){return p})),n.d(e,"k",(function(){return v})),n.d(e,"f",(function(){return m}));var i=2,r=4,o=6,a=10,s=20,c="vdSync",u="__uniapp__service",l="webviewReady",h="vdSyncCallback",d="invokeApi",f="webviewInserted",p="webviewRemoved",v="webviewId",m="setLocale"},"083e":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return v}));var i=n("0834"),r=n("e534");function o(t,e){return l(t)||u(t,e)||s(t,e)||a()}function a(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(t,e){if(t){if("string"===typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{};h(this,e),this.pageId=t,this.addBatchVData=Object.create(null),this.updateBatchVData=[],this.vms=Object.create(null),this.version=n.version}return f(e,[{key:"addVData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addBatchVData[t]=[e,n]}},{key:"updateVData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.updateBatchVData.push([t,e])}},{key:"addVm",value:function(t){var e=t._$id,n=this.vms[e];if(n){var i=Object(r["a"])(n,p(n),this.version);n._$id=i,this.vms[i]=n}this.vms[e]=t}},{key:"initVm",value:function(t){t._$id=Object(r["a"])(t,p(t),this.version);var e=this.addBatchVData[t._$id];e?delete this.addBatchVData[t._$id]:e=[{},{}];var n=e,i=o(n,2),a=i[0],s=i[1];Object.assign(t.$options,s),t.$r=a||Object.create(null),this.addVm(t)}},{key:"sendUIEvent",value:function(e,n,r){t.publishHandler(i["i"],{data:[[i["g"],[[e,n,r]]]],options:{timestamp:Date.now()}})}},{key:"clearAddBatchVData",value:function(){this.addBatchVData=Object.create(null)}},{key:"flush",value:function(){var t=this;this.updateBatchVData.forEach((function(e){var n=o(e,2),i=n[0],r=n[1],a=t.vms[i];if(!a)return console.error("Not found ".concat(i));Object.keys(r).forEach((function(t){Object.assign(a.$r[t]||(a.$r[t]=Object.create(null)),r[t])})),a.$forceUpdate()})),this.updateBatchVData.length=0}}]),e}()}).call(this,n("31d2"))},"09b2":function(t,e,n){"use strict";var i=n("3231");function r(t){var e;while(t){var n=getComputedStyle(t),i=n.transform||n.webkitTransform;e=(!i||"none"===i)&&e,e="fixed"===n.position||e,t=t.parentElement}return e}e["a"]={name:"Native",data:function(){return{position:{top:"0px",left:"0px",width:"0px",height:"0px",position:"static"},hidden:!1}},provide:function(){return{parentOnDraw:this._onDraw}},inject:{parentOnDraw:{default:null}},created:function(){this.isNative=!0,this.onCanInsertCallbacks=[],this.onDrawCallbacks=[]},mounted:function(){this._updatePosition(),this.onCanInsertCallbacks.forEach((function(t){return t()})),this.onCanInsertCallbacks=null,this.$on("uni-view-update",this._requestPositionUpdate)},methods:{_updatePosition:function(){var t=(this.$refs.container||this.$el).getBoundingClientRect();if(this.hidden=0===t.width||0===t.height,!this.hidden){var e=this.position;e.position=r(this.$el)?"absolute":"static";var n=["top","left","width","height"];n.forEach((function(n){var r=t[n];r="top"===n?r+("static"===e.position?document.documentElement.scrollTop||document.body.scrollTop||0:Object(i["a"])()):r,e[n]=r+"px"}))}},_requestPositionUpdate:function(){var t=this;this._positionUpdateRequest&&cancelAnimationFrame(this._positionUpdateRequest),this._positionUpdateRequest=requestAnimationFrame((function(){delete t._positionUpdateRequest,t._updatePosition()}))},_onParentReady:function(t){var e=this,n=function(n){t(n),e.onDrawCallbacks.forEach((function(t){return t(e.position)})),e.onDrawCallbacks=null};this._onSelfReady((function(){e.parentOnDraw?e.parentOnDraw(n):n({top:"0px",left:"0px",width:Number.MAX_SAFE_INTEGER+"px",height:Number.MAX_SAFE_INTEGER+"px",position:"static"})}))},_onSelfReady:function(t){this.onCanInsertCallbacks?this.onCanInsertCallbacks.push(t):t()},_onDraw:function(t){this.onDrawCallbacks?this.onDrawCallbacks.push(t):t(this.position)}}}},"0a18":function(t,e,n){"use strict";var i=n("c9d5"),r=n.n(i);r.a},"0a80":function(t){t.exports=JSON.parse('{"uni.app.quit":"Press back button again to exit","uni.async.error":"The connection timed out, click the screen to try again.","uni.showActionSheet.cancel":"Cancel","uni.showToast.unpaired":"Please note showToast must be paired with hideToast","uni.showLoading.unpaired":"Please note showLoading must be paired with hideLoading","uni.showModal.cancel":"Cancel","uni.showModal.confirm":"OK","uni.chooseImage.cancel":"Cancel","uni.chooseImage.sourceType.album":"Album","uni.chooseImage.sourceType.camera":"Camera","uni.chooseVideo.cancel":"Cancel","uni.chooseVideo.sourceType.album":"Album","uni.chooseVideo.sourceType.camera":"Camera","uni.chooseFile.notUserActivation":"File chooser dialog can only be shown with a user activation","uni.previewImage.cancel":"Cancel","uni.previewImage.button.save":"Save Image","uni.previewImage.save.success":"Saved successfully","uni.previewImage.save.fail":"Save failed","uni.setClipboardData.success":"Content copied","uni.scanCode.title":"Scan code","uni.scanCode.album":"Album","uni.scanCode.fail":"Recognition failure","uni.scanCode.flash.on":"Tap to turn light on","uni.scanCode.flash.off":"Tap to turn light off","uni.startSoterAuthentication.authContent":"Fingerprint recognition","uni.startSoterAuthentication.waitingContent":"Unrecognizable","uni.picker.done":"Done","uni.picker.cancel":"Cancel","uni.video.danmu":"Danmu","uni.video.volume":"Volume","uni.button.feedback.title":"feedback","uni.button.feedback.send":"send","uni.chooseLocation.search":"Find Place","uni.chooseLocation.cancel":"Cancel"}')},"0abb":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-icon",t._g({},t.$listeners),[n("i",{class:"uni-icon-"+t.type,style:{"font-size":t._converPx(t.size),color:t.color},attrs:{role:"img"}})])},r=[],o={name:"Icon",props:{type:{type:String,required:!0,default:""},size:{type:[String,Number],default:23},color:{type:String,default:""}},methods:{_converPx:function(t){return/^-?\d+[ur]px$/i.test(t)?t.replace(/(^-?\d+)[ur]px$/i,(function(t,e){return"".concat(uni.upx2px(parseFloat(e)),"px")})):/^-?[\d\.]+$/.test(t)?"".concat(t,"px"):t||""}}},a=o,s=(n("5b38"),n("8844")),c=Object(s["a"])(a,i,r,!1,null,null,null);e["default"]=c.exports},"0b62":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var i={};function r(t,e,n){var r="string"===typeof t?window[t]:t;if(r)n();else{var o=i[e];if(!o){o=i[e]=[];var a=document.createElement("script");a.src=e,document.body.appendChild(a),a.onload=function(){o.forEach((function(t){return t()})),delete i[e]}}o.push(n)}}},"0c40":function(t,e,n){"use strict";(function(t){var i=n("340d"),r=n("0db8"),o=n("0e4a"),a=n("88a8");t.subscribe("getSelectedTextRange",(function(e){var n=e.pageId,i=e.callbackId,r=document.activeElement,o=r.tagName.toLowerCase(),a=["input","textarea"],s={};a.includes(o)?(s.errMsg="getSelectedTextRange:ok",s.start=r.selectionStart,s.end=r.selectionEnd):s.errMsg="getSelectedTextRange:fail no focused",t.publishHandler("onGetSelectedTextRange",{callbackId:i,data:s},n)}));var s,c=200;e["a"]={name:"Field",mixins:[r["a"],o["a"],a["a"]],model:{prop:"value",event:"update:value"},props:{value:{type:[String,Number],default:""},autoFocus:{type:[Boolean,String],default:!1},focus:{type:[Boolean,String],default:!1},cursor:{type:[Number,String],default:-1},selectionStart:{type:[Number,String],default:-1},selectionEnd:{type:[Number,String],default:-1},confirmHold:{type:Boolean,default:!1},ignoreCompositionEvent:{type:Boolean,default:!0}},data:function(){return{composing:!1,valueSync:this._getValueString(this.value,this.type),focusSync:this.focus,fixColor:0===String(navigator.vendor).indexOf("Apple")&&CSS.supports("image-orientation:from-image")}},watch:{focus:function(t){t?this._focus():this._blur()},focusSync:function(t){this.$emit("update:focus",t)},cursorNumber:function(){this._checkCursor()},selectionStartNumber:function(){this._checkSelection()},selectionEndNumber:function(){this._checkSelection()}},computed:{needFocus:function(){return this.autoFocus||this.focus},cursorNumber:function(){var t=Number(this.cursor);return isNaN(t)?-1:t},selectionStartNumber:function(){var t=Number(this.selectionStart);return isNaN(t)?-1:t},selectionEndNumber:function(){var t=Number(this.selectionEnd);return isNaN(t)?-1:t}},created:function(){var t=this,e=this.__valueChange=Object(i["c"])((function(e){t.valueSync=t._getValueString(e,t.type)}),100);this.$watch("value",e),this.__triggerInput=Object(i["m"])((function(e,n){t.__valueChange.cancel(),t.$emit("update:value",n.value),t.$trigger("input",e,n)}),100),this.$triggerInput=function(e,n,i){t.__valueChange.cancel(),t.__triggerInput(e,n),i&&t.__triggerInput.flush()}},beforeDestroy:function(){this.__valueChange.cancel(),this.__triggerInput.cancel()},directives:{field:{inserted:function(t,e,n){n.context._initField(t)}}},methods:{_getValueString:function(t,e){return"number"===e&&isNaN(Number(t))&&(t=""),null===t?"":String(t)},_initField:function(t){var e=this;this._field=t,s=s||Date.now(),this.needFocus&&setTimeout((function(){e._focus()}))},_focus:function(){if(this.needFocus){var t=this._field;if(t&&window.plus){var e=c-(Date.now()-s);e>0?setTimeout(this._focus.bind(this),e):(t.focus(),this.userInteract||plus.key.showSoftKeybord())}else setTimeout(this._focus.bind(this),100)}},_blur:function(){var t=this._field;t&&t.blur()},_onFocus:function(t){this.focusSync=!0,this.$trigger("focus",t,{value:this.valueSync}),this._checkSelection(),this._checkCursor()},_onBlur:function(t){this.composing&&(this.composing=!1,this._onInput(t,!0)),this.focusSync=!1;var e,n=t.target;"number"===n.type?(n.type="text",e=n.selectionEnd,n.type="number"):e=n.selectionEnd,this.$trigger("blur",t,{value:this.valueSync,cursor:e})},_checkSelection:function(){var t=this._field;this.focusSync&&this.selectionStartNumber>-1&&this.selectionEndNumber>-1&&"number"!==t.type&&(t.selectionStart=this.selectionStartNumber,t.selectionEnd=this.selectionEndNumber)},_checkCursor:function(){var t=this._field;this.focusSync&&this.selectionStartNumber<0&&this.selectionEndNumber<0&&this.cursorNumber>-1&&"number"!==t.type&&(t.selectionEnd=t.selectionStart=this.cursorNumber)}}}}).call(this,n("31d2"))},"0c61":function(t,e,n){},"0db3":function(t,e,n){"use strict";function i(t,e){if(t===e._$id)return e;for(var n=e.$children,r=n.length,o=0;o=0&&e.item(n)!==this);return n>-1}),t}n.d(e,"b",(function(){return r})),n.d(e,"a",(function(){return o}))},"0db8":function(t,e,n){"use strict";function i(t,e){for(var n=this.$children,r=n.length,o=arguments.length,a=new Array(o>2?o-2:0),s=2;s2?r-2:0),a=2;a2?n-2:0),o=2;o=13)&&document.activeElement.blur()};t.addEventListener("focus",(function(){e=!0,clearTimeout(i),document.addEventListener("click",h,!1),s=l,a&&n.$trigger("keyboardheightchange",{},{height:a,duration:0}),f(n),d(n)})),r&&t.addEventListener("click",(function(){!n.disabled&&e&&0===a&&d(n)})),r||(parseInt(o)<12&&t.addEventListener("touchstart",(function(){n.disabled||e||d(n)})),parseFloat(o)>=14.6&&!c&&Object(u["j"])((function(){var t=plus.webview.currentWebview();c=t.getStyle()||{}})));var v=function(){document.removeEventListener("click",h,!1),s=null,a&&n.$trigger("keyboardheightchange",{},{height:0,duration:0}),p(n),r&&(i=setTimeout((function(){d(n,!0)}),300)),n.isApple&&document.documentElement.scrollTo(document.documentElement.scrollLeft,document.documentElement.scrollTop)};t.addEventListener("blur",(function(){n.isApple&&t.blur(),e=!1,v()}))}}}},"0ee4":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},"120f":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-resize-sensor",{on:{"~animationstart":function(e){return t.update(e)}}},[n("div",{on:{scroll:t.update}},[n("div")]),n("div",{on:{scroll:t.update}},[n("div")])])},r=[],o=1e5,a={name:"ResizeSensor",props:{initial:{type:[Boolean,String],default:!1}},data:function(){return{size:{width:-1,height:-1}}},watch:{size:{deep:!0,handler:function(t){this.$emit("resize",Object.assign({},t))}}},mounted:function(){!0===this.initial&&this.$nextTick(this.update),this.$el.offsetParent!==this.$el.parentNode&&(this.$el.parentNode.style.position="relative"),"AnimationEvent"in window||this.reset()},activated:function(){this.reset()},methods:{reset:function(){var t=this.$el.firstChild;t.scrollLeft=o,t.scrollTop=o;var e=this.$el.lastChild;e.scrollLeft=o,e.scrollTop=o},update:function(){this.size.width=this.$el.offsetWidth,this.size.height=this.$el.offsetHeight,this.reset()}}},s=a,c=(n("2eb1"),n("8844")),u=Object(c["a"])(s,i,r,!1,null,null,null);e["default"]=u.exports},1332:function(t,e,n){},"15ad":function(t,e,n){},"15f4":function(t,e,n){"use strict";(function(t){var i=n("909e"),r=n("d97d"),o=n("df5a"),a=n("0b62");function s(t){return s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(){return"ios"===plus.os.name.toLowerCase()}e["a"]={name:"Editor",mixins:[i["f"],i["a"],i["d"]],props:{id:{type:String,default:""},readOnly:{type:[Boolean,String],default:!1},placeholder:{type:String,default:""},showImgSize:{type:[Boolean,String],default:!1},showImgToolbar:{type:[Boolean,String],default:!1},showImgResize:{type:[Boolean,String],default:!1}},data:function(){return{quillReady:!1}},computed:{},watch:{readOnly:function(t){if(this.quillReady){var e=this.quill;e.enable(!t),t||e.blur()}},placeholder:function(t){this.quillReady&&this.setPlaceHolder(t)}},mounted:function(){var t=this,e=[];this.showImgSize&&e.push("DisplaySize"),this.showImgToolbar&&e.push("Toolbar"),this.showImgResize&&e.push("Resize");var n="./__uniappquill.js";Object(a["a"])(window.Quill,n,(function(){if(e.length){var n="./__uniappquillimageresize.js";Object(a["a"])(window.ImageResize,n,(function(){t.initQuill(e)}))}else t.initQuill(e)}))},methods:{_textChangeHandler:function(){this.$trigger("input",{},this.getContents())},_handleSubscribe:function(e){var n,i,r,o=this,a=e.type,c=e.data,u=c.options,l=c.callbackId,h=this.quill,d=window.Quill;if(this.quillReady){switch(a){case"format":var f=u.name,p=void 0===f?"":f,v=u.value,m=void 0!==v&&v;i=h.getSelection(!0);var g=h.getFormat(i)[p]||!1;if(["bold","italic","underline","strike","ins"].includes(p))m=!g;else if("direction"===p){m=("rtl"!==m||!g)&&m;var _=h.getFormat(i).align;"rtl"!==m||_?m||"right"!==_||h.format("align",!1,d.sources.USER):h.format("align","right",d.sources.USER)}else if("indent"===p){var b="rtl"===h.getFormat(i).direction;m="+1"===m,b&&(m=!m),m=m?"+1":"-1"}else"list"===p&&(m="check"===m?"unchecked":m,g="checked"===g?"unchecked":g),m=g&&g!==(m||!1)||!g&&m?m:!g;h.format(p,m,d.sources.USER);break;case"insertDivider":i=h.getSelection(!0),h.insertText(i.index,"\n",d.sources.USER),h.insertEmbed(i.index+1,"divider",!0,d.sources.USER),h.setSelection(i.index+2,d.sources.SILENT);break;case"insertImage":i=h.getSelection(!0);var y=u.src,w=void 0===y?"":y,S=u.alt,k=void 0===S?"":S,x=u.width,C=void 0===x?"":x,T=u.height,O=void 0===T?"":T,$=u.extClass,E=void 0===$?"":$,I=u.data,A=void 0===I?{}:I,M=this.$getRealPath(w);h.insertEmbed(i.index,"image",M,d.sources.SILENT);var P=!!/^(file|blob):/.test(M)&&M;h.formatText(i.index,1,"data-local",P,d.sources.SILENT),h.formatText(i.index,1,"alt",k,d.sources.SILENT),h.formatText(i.index,1,"width",C,d.sources.SILENT),h.formatText(i.index,1,"height",O,d.sources.SILENT),h.formatText(i.index,1,"class",E,d.sources.SILENT),h.formatText(i.index,1,"data-custom",Object.keys(A).map((function(t){return"".concat(t,"=").concat(A[t])})).join("&"),d.sources.SILENT),h.setSelection(i.index+1,d.sources.SILENT),h.scrollIntoView(),setTimeout((function(){o._textChangeHandler()}),1e3);break;case"insertText":i=h.getSelection(!0);var j=u.text,L=void 0===j?"":j;h.insertText(i.index,L,d.sources.USER),h.setSelection(i.index+L.length,0,d.sources.SILENT);break;case"setContents":var N=u.delta,D=u.html;"object"===s(N)?h.setContents(N,d.sources.SILENT):"string"===typeof D?h.setContents(this.html2delta(D),d.sources.SILENT):r="contents is missing";break;case"getContents":n=this.getContents();break;case"clear":h.setContents([]);break;case"removeFormat":i=h.getSelection(!0);var R=d.import("parchment");i.length?h.removeFormat(i,d.sources.USER):Object.keys(h.getFormat(i)).forEach((function(t){R.query(t,R.Scope.INLINE)&&h.format(t,!1)}));break;case"undo":h.history.undo();break;case"redo":h.history.redo();break;case"blur":h.blur();break;case"getSelectionText":i=h.selection.savedRange,n={text:""},i&&0!==i.length&&(n.text=h.getText(i.index,i.length));break;case"scrollIntoView":h.scrollIntoView();break;default:break}this.updateStatus(i)}else r="not ready";l&&t.publishHandler("onEditorMethodCallback",{callbackId:l,data:Object.assign({},n,{errMsg:"".concat(a,":").concat(r?"fail "+r:"ok")})},this.$page.id)},setPlaceHolder:function(t){var e="data-placeholder",n=this.quill.root;n.getAttribute(e)!==t&&n.setAttribute(e,t)},initQuill:function(t){var e=this,n=window.Quill;o["a"](n);var i={toolbar:!1,readOnly:this.readOnly,placeholder:this.placeholder,modules:{}};t.length&&(n.register("modules/ImageResize",window.ImageResize.default),i.modules.ImageResize={modules:t});var r=this.quill=new n(this.$el,i),a=r.root,s=["focus","blur","input"];s.forEach((function(t){a.addEventListener(t,(function(n){var i=e.getContents();if("input"===t){if(c()){var r=(i.html.match(/([\s\S]*)<\/span>/)||[])[1],o=r&&r.replace(/\s/g,"")?"":e.placeholder;e.setPlaceHolder(o)}n.stopPropagation()}else e.$trigger(t,n,i)}))})),r.on(n.events.TEXT_CHANGE,this._textChangeHandler),r.on(n.events.SELECTION_CHANGE,this.updateStatus.bind(this)),r.on(n.events.SCROLL_OPTIMIZE,(function(){var t=r.selection.getRange()[0];e.updateStatus(t)})),r.clipboard.addMatcher(Node.ELEMENT_NODE,(function(t,n){return e.skipMatcher||(n.ops=n.ops.filter((function(t){var e=t.insert;return"string"===typeof e})).map((function(t){var e=t.insert;return{insert:e}}))),n})),this.initKeyboard(a),this.quillReady=!0,this.$trigger("ready",event,{})},getContents:function(){var t=this.quill,e=t.root[["inner", "HTML"].join("")],n=t.getText(),i=t.getContents();return{html:e,text:n,delta:i}},html2delta:function(t){var e,n=["span","strong","b","ins","em","i","u","a","del","s","sub","sup","img","div","p","h1","h2","h3","h4","h5","h6","hr","ol","ul","li","br"],i="";Object(r["a"])(t,{start:function(t,r,o){if(n.includes(t)){e=!1;var a=r.map((function(t){var e=t.name,n=t.value;return"".concat(e,'="').concat(n,'"')})).join(" "),s="<".concat(t," ").concat(a," ").concat(o?"/":"",">");i+=s}else e=!o},end:function(t){e||(i+=""))},chars:function(t){e||(i+=t)}}),this.skipMatcher=!0;var o=this.quill.clipboard.convert(i);return this.skipMatcher=!1,o},updateStatus:function(t){var e=this,n=t?this.quill.getFormat(t):{},i=Object.keys(n);(i.length!==Object.keys(this.__status||{}).length||i.find((function(t){return n[t]!==e.__status[t]})))&&(this.__status=n,this.$trigger("statuschange",{},n))}}}}).call(this,n("31d2"))},1720:function(t,e,n){"use strict";var i=n("a187"),r=n.n(i);r.a},"1af3":function(t,e,n){"use strict";function i(t){return s(t)||a(t)||o(t)||r()}function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(t,e){if(t){if("string"===typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function a(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}function s(t){if(Array.isArray(t))return c(t)}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n=0&&(s.length=1),d.push("".concat(a,"(").concat(s.join(","),")"));else if(r.concat(o).includes(s[0])){a=s[0];var c=s[1];h[a]=o.includes(a)?u(c):c}})),h.transform=h.webkitTransform=d.join(" "),h.transition=h.webkitTransition=Object.keys(h).map((function(t){return"".concat(l(t)," ").concat(c.duration,"ms ").concat(c.timingFunction," ").concat(c.delay,"ms")})).join(","),h.transformOrigin=h.webkitTransformOrigin=s.transformOrigin,h}function d(t){var e=t.animation;if(e&&e.actions&&e.actions.length){var n=0,i=e.actions,r=e.actions.length;setTimeout((function(){o()}),0)}function o(){var e=i[n],a=e.option.transition,s=h(e);Object.keys(s).forEach((function(e){t.$el.style[e]=s[e]})),n+=1,n>>16&65535|0,a=0;while(0!==n){a=n>2e3?2e3:n,n-=a;do{r=r+e[i++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0}t.exports=i},"2ace":function(t,e,n){"use strict";(function(t){var i=n("340d");e["a"]={props:{id:{type:String,default:""}},created:function(){var t=this;this._addListeners(this.id),this.$watch("id",(function(e,n){t._removeListeners(n,!0),t._addListeners(e,!0)}))},beforeDestroy:function(){this._removeListeners(this.id)},methods:{_addListeners:function(e,n){var r=this;if(!n||e){var o=this.$options.listeners;Object(i["g"])(o)&&Object.keys(o).forEach((function(i){n?0!==i.indexOf("@")&&0!==i.indexOf("uni-")&&t.on("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]]):0===i.indexOf("@")?r.$on("uni-".concat(i.substr(1)),r[o[i]]):0===i.indexOf("uni-")?t.on(i,r[o[i]]):e&&t.on("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]])}))}},_removeListeners:function(e,n){var r=this;if(!n||e){var o=this.$options.listeners;Object(i["g"])(o)&&Object.keys(o).forEach((function(i){n?0!==i.indexOf("@")&&0!==i.indexOf("uni-")&&t.off("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]]):0===i.indexOf("@")?r.$off("uni-".concat(i.substr(1)),r[o[i]]):0===i.indexOf("uni-")?t.off(i,r[o[i]]):e&&t.off("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]])}))}}}}}).call(this,n("31d2"))},"2b44":function(t,e,n){"use strict";var i=n("82de"),r=15,o=852,a=592,s=0,c=1,u=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],h=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],d=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],f=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(t,e,n,p,v,m,g,_){var b,y,w,S,k,x,C,T,O,$=_.bits,E=0,I=0,A=0,M=0,P=0,j=0,L=0,N=0,D=0,R=0,B=null,F=0,z=new i.Buf16(r+1),V=new i.Buf16(r+1),H=null,Y=0;for(E=0;E<=r;E++)z[E]=0;for(I=0;I=1;M--)if(0!==z[M])break;if(P>M&&(P=M),0===M)return v[m++]=20971520,v[m++]=20971520,_.bits=1,0;for(A=1;A0&&(t===s||1!==M))return-1;for(V[1]=0,E=1;Eo||t===u&&D>a)return 1;for(;;){C=E-L,g[I]x?(T=H[Y+g[I]],O=B[F+g[I]]):(T=96,O=0),b=1<>L)+y]=C<<24|T<<16|O|0}while(0!==y);b=1<>=1;if(0!==b?(R&=b-1,R+=b):R=0,I++,0===--z[E]){if(E===M)break;E=e[n+g[I]]}if(E>P&&(R&S)!==w){0===L&&(L=P),k+=A,j=E-L,N=1<o||t===u&&D>a)return 1;w=R&S,v[w]=P<<24|j<<16|k-m|0}}return 0!==R&&(v[k+R]=E-L<<24|64<<16|0),_.bits=P,0}},"2be0":function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var i=n("340d"),r=n("909e");function o(){this.$dispatch("Form","uni-form-group-update",{type:"add",vm:this})}function a(){this.$dispatch("Form","uni-form-group-update",{type:"remove",vm:this})}var s={name:"uni://form-field",init:function(t,e){e.constructor.options.props&&e.constructor.options.props.name&&e.constructor.options.props.value||(e.constructor.options.props||(e.constructor.options.props={}),e.constructor.options.props.name||(e.constructor.options.props.name=t.props.name={type:String}),e.constructor.options.props.value||(e.constructor.options.props.value=t.props.value={type:null})),t.propsData||(t.propsData={});var n=e.$vnode;if(n&&n.data&&n.data.attrs&&(Object(i["e"])(n.data.attrs,"name")&&(t.propsData.name=n.data.attrs.name),Object(i["e"])(n.data.attrs,"value")&&(t.propsData.value=n.data.attrs.value)),!e.constructor.options.methods||!e.constructor.options.methods._getFormData){e.constructor.options.methods||(e.constructor.options.methods={}),t.methods||(t.methods={});var s={_getFormData:function(){return this.name?{key:this.name,value:this.value}:{}},_resetFormData:function(){this.value=""}};Object.assign(e.constructor.options.methods,s),Object.assign(t.methods,s),Object.assign(e.constructor.options.methods,r["a"].methods),Object.assign(t.methods,r["a"].methods);var c=t.created;e.constructor.options.created=t.created=c?[].concat(o,c):[o];var u=t.beforeDestroy;e.constructor.options.beforeDestroy=t.beforeDestroy=u?[].concat(a,u):[a]}}};function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var u=c({},s.name,s);function l(t,e){t.behaviors.forEach((function(n){var i=u[n];i&&i.init(t,e)}))}},"2c65":function(t,e,n){"use strict";var i=n("7e48"),r=n("82de"),o=n("2e30"),a=n("d233"),s=n("d80f"),c=n("87de"),u=n("ea4b"),l=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(t);this.options=r.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=i.inflateInit2(this.strm,e.windowBits);if(n!==a.Z_OK)throw new Error(s[n]);if(this.header=new u,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"===typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=i.inflateSetDictionary(this.strm,e.dictionary),n!==a.Z_OK)))throw new Error(s[n])}function d(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg||s[n.err];return n.result}function f(t,e){return e=e||{},e.raw=!0,d(t,e)}h.prototype.push=function(t,e){var n,s,c,u,h,d=this.strm,f=this.options.chunkSize,p=this.options.dictionary,v=!1;if(this.ended)return!1;s=e===~~e?e:!0===e?a.Z_FINISH:a.Z_NO_FLUSH,"string"===typeof t?d.input=o.binstring2buf(t):"[object ArrayBuffer]"===l.call(t)?d.input=new Uint8Array(t):d.input=t,d.next_in=0,d.avail_in=d.input.length;do{if(0===d.avail_out&&(d.output=new r.Buf8(f),d.next_out=0,d.avail_out=f),n=i.inflate(d,a.Z_NO_FLUSH),n===a.Z_NEED_DICT&&p&&(n=i.inflateSetDictionary(this.strm,p)),n===a.Z_BUF_ERROR&&!0===v&&(n=a.Z_OK,v=!1),n!==a.Z_STREAM_END&&n!==a.Z_OK)return this.onEnd(n),this.ended=!0,!1;d.next_out&&(0!==d.avail_out&&n!==a.Z_STREAM_END&&(0!==d.avail_in||s!==a.Z_FINISH&&s!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(c=o.utf8border(d.output,d.next_out),u=d.next_out-c,h=o.buf2string(d.output,c),d.next_out=u,d.avail_out=f-u,u&&r.arraySet(d.output,d.output,c,u,0),this.onData(h)):this.onData(r.shrinkBuf(d.output,d.next_out)))),0===d.avail_in&&0===d.avail_out&&(v=!0)}while((d.avail_in>0||0===d.avail_out)&&n!==a.Z_STREAM_END);return n===a.Z_STREAM_END&&(s=a.Z_FINISH),s===a.Z_FINISH?(n=i.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===a.Z_OK):s!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),d.avail_out=0,!0)},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=h,e.inflate=d,e.inflateRaw=f,e.ungzip=d},"2cc9":function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;n=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;function c(t,e){if(e<65534&&(t.subarray&&o||!t.subarray&&r))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",a=0;a>>6,e[a++]=128|63&n):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},e.buf2binstring=function(t){return c(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n4)u[i++]=65533,n+=o-1;else{r&=2===o?31:3===o?15:7;while(o>1&&n1?u[i++]=65533:r<65536?u[i++]=r:(r-=65536,u[i++]=55296|r>>10&1023,u[i++]=56320|1023&r)}return c(u,i)},e.utf8border=function(t,e){var n;e=e||t.length,e>t.length&&(e=t.length),n=e-1;while(n>=0&&128===(192&t[n]))n--;return n<0||0===n?e:n+a[t[n]]>e?n:e}},"2eb1":function(t,e,n){"use strict";var i=n("0c61"),r=n.n(i);r.a},"31d2":function(t,e,n){"use strict";n.r(e),n.d(e,"on",(function(){return v})),n.d(e,"off",(function(){return m})),n.d(e,"once",(function(){return g})),n.d(e,"emit",(function(){return _})),n.d(e,"subscribe",(function(){return b})),n.d(e,"unsubscribe",(function(){return y})),n.d(e,"subscribeHandler",(function(){return w})),n.d(e,"publishHandler",(function(){return f["a"]}));var i=n("4f39");function r(t){var e=t.pageStyle,n=t.rootFontSize,i=document.querySelector("uni-page-body")||document.body;i.setAttribute("style",e),n&&document.documentElement.style.fontSize!==n&&(document.documentElement.style.fontSize=n)}var o=n("49c2"),a=n("d661"),s=n("c08f"),c={setPageMeta:r,requestComponentInfo:o["a"],requestComponentObserver:a["b"],destroyComponentObserver:a["a"],requestMediaQueryObserver:s["b"],destroyMediaQueryObserver:s["a"]},u=n("493f"),l=n("fa95"),h=n("6149");function d(t){Object.keys(c).forEach((function(e){t(e,c[e])})),t("pageScrollTo",u["c"]),t("loadFontFace",l["a"]),Object(h["a"])(t)}var f=n("b379"),p=new i["a"],v=p.$on.bind(p),m=p.$off.bind(p),g=p.$once.bind(p),_=p.$emit.bind(p);function b(t,e){return v("service."+t,e)}function y(t,e){return m("service."+t,e)}function w(t,e,n){_("service."+t,e,n)}d(b)},3231:function(t,e,n){"use strict";function i(){return plus.navigator.isImmersedStatusbar()?Math.round("iOS"===plus.os.name?plus.navigator.getSafeAreaInsets().top:plus.navigator.getStatusbarHeight()):0}n.d(e,"a",(function(){return o}));var r=n("c80c");function o(){var t=plus.webview.currentWebview(),e=t.getStyle();return e=e&&e.titleNView,e&&"default"===e.type?r["a"]+i():0}},"340d":function(t,e,n){"use strict";n.d(e,"l",(function(){return i})),n.d(e,"f",(function(){return u})),n.d(e,"h",(function(){return l})),n.d(e,"g",(function(){return h})),n.d(e,"e",(function(){return d})),n.d(e,"n",(function(){return f})),n.d(e,"a",(function(){return p})),n.d(e,"b",(function(){return m})),n.d(e,"c",(function(){return g})),n.d(e,"m",(function(){return _})),n.d(e,"i",(function(){return b})),n.d(e,"d",(function(){return y})),n.d(e,"k",(function(){return w})),n.d(e,"j",(function(){return S}));var i=!1;try{var r={};Object.defineProperty(r,"passive",{get:function(){i=!0}}),window.addEventListener("test-passive",null,r)}catch(k){}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;"function"!==typeof atob||atob;var s=Object.prototype.toString,c=Object.prototype.hasOwnProperty;Object.assign;function u(t){return"function"===typeof t}function l(t){return"string"===typeof t}function h(t){return"[object Object]"===s.call(t)}function d(t,e){return c.call(t,e)}function f(t){return s.call(t).slice(8,-1)}function p(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var v=/-(\w)/g,m=p((function(t){return t.replace(v,(function(t,e){return e?e.toUpperCase():""}))}));p((function(t){return t.charAt(0).toUpperCase()+t.slice(1)}));function g(t,e){var n,i=function(){var i=arguments,r=this;clearTimeout(n);var o=function(){return t.apply(r,i)};n=setTimeout(o,e)};return i.cancel=function(){clearTimeout(n)},i}function _(t,e){var n,i,r=0,o=function(){for(var o=this,a=arguments.length,s=new Array(a),c=0;c0&&(e.__lines__.forEach((function(t){e.removeOverlay(t)})),e.__lines__=[]),t.forEach((function(t){var n=t.color,i=t.width,r=t.points.map((function(t){return new plus.maps.Point(t.longitude,t.latitude)})),o=new plus.maps.Polyline(r);if(n){var a=c(n);o.setStrokeColor(a.color),o.setStrokeOpacity(a.opacity)}i&&o.setLineWidth(i),e.addOverlay(o),e.__lines__.push(o)}))},_addMapCircles:function(t){var e=this.map;e.__circles__.length>0&&(e.__circles__.forEach((function(t){e.removeOverlay(t)})),e.__circles__=[]),t.forEach((function(t){var n=t.latitude,i=t.longitude,r=t.color,o=t.fillColor,a=t.radius,s=t.strokeWidth,u=new plus.maps.Circle(new plus.maps.Point(i,n),a);if(r){var l=c(r);u.setStrokeColor(l.color),u.setStrokeOpacity(l.opacity)}if(o){var h=c(o);u.setFillColor(h.color),u.setFillOpacity(h.opacity)}s&&u.setLineWidth(s),e.addOverlay(u),e.__circles__.push(u)}))},_addMapPolygons:function(t){var e=this.map,n=e.__polygons__;n.forEach((function(t){e.removeOverlay(t)})),n.length=0,t.forEach((function(t){var i=t.points,r=t.strokeWidth,o=t.strokeColor,a=t.fillColor,s=[];i&&i.forEach((function(t){var e=t.latitude,n=t.longitude;s.push(new plus.maps.Point(n,e))}));var u=new plus.maps.Polygon(s);if(o){var l=c(o);u.setStrokeColor(l.color),u.setStrokeOpacity(l.opacity)}if(a){var h=c(a);u.setFillColor(h.color),u.setFillOpacity(h.opacity)}r&&u.setLineWidth(r),e.addOverlay(u),n.push(u)}))}}}}).call(this,n("31d2"))},3596:function(t,e,n){},"36a6":function(t,e,n){},"383e":function(t,e,n){"use strict";n.r(e);var i=n("39bd"),r=n("340d");var o,a,s={name:"Swiper",mixins:[i["a"]],props:{indicatorDots:{type:[Boolean,String],default:!1},vertical:{type:[Boolean,String],default:!1},autoplay:{type:[Boolean,String],default:!1},circular:{type:[Boolean,String],default:!1},interval:{type:[Number,String],default:5e3},duration:{type:[Number,String],default:500},current:{type:[Number,String],default:0},indicatorColor:{type:String,default:""},indicatorActiveColor:{type:String,default:""},previousMargin:{type:String,default:""},nextMargin:{type:String,default:""},currentItemId:{type:String,default:""},skipHiddenItemLayout:{type:[Boolean,String],default:!1},displayMultipleItems:{type:[Number,String],default:1},disableTouch:{type:[Boolean,String],default:!1},navigation:{type:[Boolean,String],default:!1},navigationColor:{type:String,default:"#fff"},navigationActiveColor:{type:String,default:"rgba(53, 53, 53, 0.6)"}},data:function(){return{currentSync:Math.round(this.current)||0,currentItemIdSync:this.currentItemId||"",userTracking:!1,currentChangeSource:"",items:[],isNavigationAuto:!1,hideNavigation:!1,prevDisabled:!1,nextDisabled:!1}},computed:{intervalNumber:function(){var t=Number(this.interval);return isNaN(t)?5e3:t},durationNumber:function(){var t=Number(this.duration);return isNaN(t)?500:t},displayMultipleItemsNumber:function(){var t=Math.round(this.displayMultipleItems);return isNaN(t)?1:t},slidesStyle:function(){var t={};return(this.nextMargin||this.previousMargin)&&(t=this.vertical?{left:0,right:0,top:this._upx2px(this.previousMargin),bottom:this._upx2px(this.nextMargin)}:{top:0,bottom:0,left:this._upx2px(this.previousMargin),right:this._upx2px(this.nextMargin)}),t},slideFrameStyle:function(){var t=Math.abs(100/this.displayMultipleItemsNumber)+"%";return{width:this.vertical?"100%":t,height:this.vertical?t:"100%"}},swiperEnabled:function(){return this.items.length>this.displayMultipleItemsNumber},circularEnabled:function(){return this.circular&&this.swiperEnabled}},watch:{vertical:function(){this._resetLayout()},circular:function(){this._resetLayout()},intervalNumber:function(t){this._timer&&(this._cancelSchedule(),this._scheduleAutoplay())},current:function(t){this._currentCheck()},currentSync:function(t,e){this._currentChanged(t,e),this.$emit("update:current",t),this._setNavigationState()},currentItemId:function(t){this._currentCheck()},currentItemIdSync:function(t){this.$emit("update:currentItemId",t)},displayMultipleItemsNumber:function(){this._resetLayout()},navigation:{immediate:!0,handler:function(t){this.isNavigationAuto="auto"===t,this.hideNavigation=!0!==t||this.isNavigationAuto,this._navigationSwiperAddMouseEvent()}},items:function(){this._setNavigationState()},swiperEnabled:function(t){t||(this.prevDisabled=!0,this.nextDisabled=!0,this.isNavigationAuto&&(this.hideNavigation=!0))}},created:function(){this._invalid=!0,this._viewportPosition=0,this._viewportMoveRatio=1,this._animating=null,this._requestedAnimation=!1,this._userDirectionChecked=!1,this._contentTrackViewport=0,this._contentTrackSpeed=0,this._contentTrackT=0},mounted:function(){var t=this;this._currentCheck(),this.touchtrack(this.$refs.slidesWrapper,"_handleContentTrack",!0),this._resetLayout(),this.$watch((function(){return t.autoplay&&!t.userTracking}),this._inintAutoplay),this._inintAutoplay(this.autoplay&&!this.userTracking),this.$watch("items.length",this._resetLayout),this._navigationSwiperAddMouseEvent()},beforeDestroy:function(){this._cancelSchedule(),cancelAnimationFrame(this._animationFrame)},methods:{_inintAutoplay:function(t){t?this._scheduleAutoplay():this._cancelSchedule()},_currentCheck:function(){var t=-1;if(this.currentItemId)for(var e=0,n=this.items;er/2?1:0)}var o=this.items[t];o&&this._itemReady(o,(function(){var t=n.currentItemIdSync=o.componentInstance.itemId||"";n.$trigger("change",{},{current:n.currentSync,currentItemId:t,source:i})}))},_scheduleAutoplay:function(){var t=this;function e(){t._timer=null,t.currentChangeSource="autoplay",t.circularEnabled?t.currentSync=t._normalizeCurrentValue(t.currentSync+1):t.currentSync=t.currentSync+t.displayMultipleItemsNumbere-this.displayMultipleItemsNumber)return e-this.displayMultipleItemsNumber;return n},_upx2px:function(t){return/\d+[ur]px$/i.test(t)&&t.replace(/\d+[ur]px$/i,(function(t){return"".concat(uni.upx2px(parseFloat(t)),"px")})),t||""},_resetLayout:function(){if(this._isMounted){this._cancelSchedule(),this._endViewportAnimation();for(var t=this.items,e=0;e0&&this._viewportMoveRatio<1||(this._viewportMoveRatio=1)}var r=this._viewportPosition;this._viewportPosition=-2;var o=this.currentSync;o>=0?(this._invalid=!1,this.userTracking?(this._updateViewport(r+o-this._contentTrackViewport),this._contentTrackViewport=o):(this._updateViewport(o),this.autoplay&&this._scheduleAutoplay())):(this._invalid=!0,this._updateViewport(-this.displayMultipleItemsNumber-1))}},_checkCircularLayout:function(t){if(!this._invalid)for(var e=this.items,n=e.length,i=t+this.displayMultipleItemsNumber,r=0;r=this.items.length&&(t-=this.items.length),t=this._transitionStart%1>.5||this._transitionStart<0?t-1:t,this.$trigger("transition",{},{dx:this.vertical?0:t*r.offsetWidth,dy:this.vertical?t*r.offsetHeight:0})},_animateFrameFuncProto:function(){var t=this;if(this._animating){var e=this._animating,n=e.toPos,i=e.acc,r=e.endTime,o=e.source,a=r-Date.now();if(a<=0){this._updateViewport(n),this._animating=null,this._requestedAnimation=!1,this._transitionStart=null;var s=this.items[this.currentSync];s&&this._itemReady(s,(function(){var e=s.componentInstance.itemId||"";t.$trigger("animationfinish",{},{current:t.currentSync,currentItemId:e,source:o})}))}else{var c=i*a*a/2,u=n+c;this._updateViewport(u),this._animationFrame=requestAnimationFrame(this._animateFrameFuncProto.bind(this))}}else this._requestedAnimation=!1},_animateViewport:function(t,e,n){this._cancelViewportAnimation();var i=this.durationNumber,r=this.items.length,o=this._viewportPosition;if(this.circularEnabled)if(n<0){for(;ot;)o-=r}else if(n>0){for(;o>t;)o-=r;for(;o+rt;)o-=r;o+r-tr)&&(i<0?i=-o(-i):i>r&&(i=r+o(i-r)),e._contentTrackSpeed=0),e._updateViewport(i)}var s=this._contentTrackT-n||1;this.vertical?a(-t.dy/this.$refs.slideFrame.offsetHeight,-t.ddy/s):a(-t.dx/this.$refs.slideFrame.offsetWidth,-t.ddx/s)},_handleTrackEnd:function(t){this.userTracking=!1;var e=this._contentTrackSpeed/Math.abs(this._contentTrackSpeed),n=0;!t&&Math.abs(this._contentTrackSpeed)>.2&&(n=.5*e);var i=this._normalizeCurrentValue(this._viewportPosition+n);t?this._updateViewport(this._contentTrackViewport):(this.currentChangeSource="touch",this.currentSync=i,this._animateViewport(i,"touch",0!==n?n:0===i&&this.circularEnabled&&this._viewportPosition>=1?1:0))},_handleContentTrack:function(t){if(!this.disableTouch&&this.items.length&&!this._invalid){if("start"===t.detail.state)return this.userTracking=!0,this._userDirectionChecked=!1,this._handleTrackStart();if("end"===t.detail.state)return this._handleTrackEnd(!1);if("cancel"===t.detail.state)return this._handleTrackEnd(!0);if(this.userTracking){if(!this._userDirectionChecked){this._userDirectionChecked=!0;var e=Math.abs(t.detail.dx),n=Math.abs(t.detail.dy);if((e>=n&&this.vertical||e<=n&&!this.vertical)&&(this.userTracking=!1),!this.userTracking)return void(this.autoplay&&this._scheduleAutoplay())}return this._handleTrackMove(t.detail),!1}}},_onSwiperDotClick:function(t){this._animateViewport(this.currentSync=t,this.currentChangeSource="click",this.circularEnabled?1:0)},_navigationClick:function(t,e,n){if(t.stopPropagation(),!n){var i=this.items.length,r=this.currentSync;switch(e){case"prev":r--,r<0&&this.circularEnabled&&(r=i-1);break;case"next":r++,r>=i&&this.circularEnabled&&(r=0);break}this._onSwiperDotClick(r)}},_navigationMouseMove:function(t){var e=this;clearTimeout(this.hideNavigationTimer);var n=t.clientX,i=t.clientY,r=this.$refs.slidesWrapper.getBoundingClientRect(),o=r.left,a=r.right,s=r.top,c=r.bottom,u=r.width,l=r.height,h=!1;h=this.vertical?!(i-s=t}},render:function(t){var e=this,n=[],i=[];this.$slots.default&&Object(r["d"])(this.$slots.default,t).forEach((function(t){t.componentOptions&&"v-uni-swiper-item"===t.componentOptions.tag&&i.push(t)}));for(var o=function(i,r){var o=e.currentSync;n.push(t("div",{on:{click:function(){return e._onSwiperDotClick(i)}},class:{"uni-swiper-dot":!0,"uni-swiper-dot-active":i=o||i0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return Array.isArray(t[e])&&t[e].length}function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=JSON.parse(JSON.stringify(t));return e}function a(t){var e={},n=t.__vue__;function r(t,n){var r=t.$attrs;for(var o in r)if(o.startsWith("data-")){var a=Object(i["b"])(o.substr(5).toLowerCase()),s=r[o];e[a]=n?s:e[a]||s}}if(n){var a=n;while(a&&a.$el===t)r(a),a=a.$children[0];var s=n.$parent;while(s&&s.$el===t)r(s,!0),s=s.$parent}else e=Object.assign({},t.dataset,t.__uniDataset);return o(e)}},3934:function(t,e,n){},"393d":function(t,e,n){"use strict";if(n.r(e),n.d(e,"upx2px",(function(){return a["h"]})),n.d(e,"navigateTo",(function(){return a["d"]})),n.d(e,"navigateBack",(function(){return a["c"]})),n.d(e,"reLaunch",(function(){return a["e"]})),n.d(e,"redirectTo",(function(){return a["f"]})),n.d(e,"switchTab",(function(){return a["g"]})),n.d(e,"getSystemInfoSync",(function(){return a["b"]})),n.d(e,"canIUse",(function(){return a["a"]})),"undefined"!==typeof window){var i=window.document.currentScript,r=n("a944");i=r(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:r});var o=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var a=n("1c83")},"39bd":function(t,e,n){"use strict";var i=function(t,e,n,i){t.addEventListener(e,(function(t){"function"===typeof n&&!1===n(t)&&(t.preventDefault(),t.stopPropagation())}),{capture:i,passive:!1})};e["a"]={beforeDestroy:function(){document.removeEventListener("mousemove",this.__mouseMoveEventListener),document.removeEventListener("mouseup",this.__mouseUpEventListener)},methods:{touchtrack:function(t,e,n){var r,o,a,s=this,c=this,u=0,l=0,h=0,d=0,f=function(t,n,i,r){if(!1===c[e]({target:t.target,currentTarget:t.currentTarget,preventDefault:t.preventDefault.bind(t),stopPropagation:t.stopPropagation.bind(t),touches:t.touches,changedTouches:t.changedTouches,detail:{state:n,x:i,y:r,dx:i-u,dy:r-l,ddx:i-h,ddy:r-d,timeStamp:t.timeStamp}}))return!1},p=null;i(t,"touchstart",(function(t){if(o=!0,1===t.touches.length&&!p)return p=t,u=h=t.touches[0].pageX,l=d=t.touches[0].pageY,f(t,"start",u,l)})),i(t,"mousedown",(function(t){if(a=!0,!o&&!p)return p=t,u=h=t.pageX,l=d=t.pageY,f(t,"start",u,l)})),i(t,"touchmove",(function(t){if(1===t.touches.length&&p){var e=f(t,"move",t.touches[0].pageX,t.touches[0].pageY);return h=t.touches[0].pageX,d=t.touches[0].pageY,e}}));var v=this.__clickEventListener=function(t){t.preventDefault(),t.stopPropagation()},m=this.__mouseMoveEventListener=function(t){if(!o&&a&&p){!r&&(Math.abs(h-u)>2||Math.abs(d-l)>2)&&(document.addEventListener("click",v,!0),r=!0);var e=f(t,"move",t.pageX,t.pageY);return h=t.pageX,d=t.pageY,e}};document.addEventListener("mousemove",m),i(t,"touchend",(function(t){if(0===t.touches.length&&p)return o=!1,p=null,f(t,"end",t.changedTouches[0].pageX,t.changedTouches[0].pageY)}));var g=this.__mouseUpEventListener=function(t){if(a=!1,!o&&p)return r&&setTimeout((function(){document.removeEventListener("click",s.__clickEventListener,!0),r=!1}),0),p=null,f(t,"end",t.pageX,t.pageY)};document.addEventListener("mouseup",g),i(t,"touchcancel",(function(t){if(p){o=!1;var e=p;return p=null,f(t,n?"cancel":"end",e.touches[0].pageX,e.touches[0].pageY)}}))}}}},"3a3e":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-radio-group",t._g({},t.$listeners),[t._t("default")],2)},r=[],o=n("909e"),a={name:"RadioGroup",mixins:[o["a"],o["e"]],props:{name:{type:String,default:""}},data:function(){return{radioList:[]}},listeners:{"@radio-change":"_changeHandler","@radio-group-update":"_radioGroupUpdateHandler"},mounted:function(){this._resetRadioGroupValue(this.radioList.length-1)},created:function(){this.$dispatch("Form","uni-form-group-update",{type:"add",vm:this})},beforeDestroy:function(){this.$dispatch("Form","uni-form-group-update",{type:"remove",vm:this})},methods:{_changeHandler:function(t,e){var n=this.radioList.indexOf(e);this._resetRadioGroupValue(n,!0),this.$trigger("change",t,{value:e.radioValue})},_radioGroupUpdateHandler:function(t){if("add"===t.type)this.radioList.push(t.vm);else{var e=this.radioList.indexOf(t.vm);this.radioList.splice(e,1)}},_resetRadioGroupValue:function(t,e){var n=this;this.radioList.forEach((function(i,r){r!==t&&(e?n.radioList[r].radioChecked=!1:n.radioList.forEach((function(t,e){r>=e||n.radioList[e].radioChecked&&(n.radioList[r].radioChecked=!1)})))}))},_getFormData:function(){var t={};if(""!==this.name){var e="";this.radioList.forEach((function(t){t.radioChecked&&(e=t.value)})),t.value=e,t.key=this.name}return t}}},s=a,c=(n("01aa"),n("8844")),u=Object(c["a"])(s,i,r,!1,null,null,null);e["default"]=u.exports},"3c5f":function(t,e,n){"use strict";var i=n("df50"),r=n.n(i);r.a},"3e92":function(t,e,n){"use strict";var i=n("d0aa"),r=n.n(i);r.a},4452:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var i=0;function r(t,e,n){var r="".concat(Date.now()).concat(i++),o=t.split(","),a=o[0],s=o[1],c=(a.match(/data:image\/(\S+?);/)||[null,"png"])[1].replace("jpeg","jpg"),u="".concat(r,".").concat(c),l="".concat(e,"/").concat(u),h=e.indexOf("/"),d=e.substring(0,h),f=e.substring(h+1);plus.io.resolveLocalFileSystemURL(d,(function(t){t.getDirectory(f,{create:!0,exclusive:!1},(function(t){t.getFile(u,{create:!0,exclusive:!1},(function(t){t.createWriter((function(t){t.onwrite=function(){n(null,l)},t.onerror=n,t.seek(0),t.writeAsBinary(s)}),n)}),n)}),n)}),n)}},"466b":function(t,e,n){},"48fe":function(t,e,n){},"493c":function(t,e,n){"use strict";var i=n("f5ee"),r=n.n(i);r.a},"493f":function(t,e,n){"use strict";(function(t){n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return c}));var i,r=n("b379");function o(t){t.preventDefault()}function a(t){var e=t.scrollTop,n=t.selector,i=t.duration;if("undefined"===typeof e){var r=document.querySelector(n);if(r){var o=r.getBoundingClientRect(),a=o.top;o.height;e=a+window.pageYOffset}}var s=document.documentElement,c=s.clientHeight,u=s.scrollHeight;function l(t){if(t<=0)window.scrollTo(0,e);else{var n=e-window.scrollY;requestAnimationFrame((function(){window.scrollTo(0,window.scrollY+n/t*10),l(t-10)}))}}e=Math.min(e,u-c),0!==i?window.scrollY!==e&&l(i):s.scrollTop=document.body.scrollTop=e}var s=0;function c(e,n){var o=n.enablePageScroll,a=n.enablePageReachBottom,c=n.onReachBottomDistance,u=n.enableTransparentTitleNView,l=!1,h=!1,d=!0;function f(){var t=document.documentElement.scrollHeight,e=window.innerHeight,n=window.scrollY,i=n>0&&t>e&&n+e+c>=t,r=Math.abs(t-s)>c;return!i||h&&!r?(!i&&h&&(h=!1),!1):(s=t,h=!0,!0)}function p(){var n=getCurrentPages();if(n.length&&n[n.length-1].$page.id===e){var s=window.pageYOffset;o&&Object(r["a"])("onPageScroll",{scrollTop:s},e),u&&t.emit("onPageScroll",{scrollTop:s}),a&&d&&(c()||(i=setTimeout(c,300))),l=!1}function c(){if(f())return Object(r["a"])("onReachBottom",{},e),d=!1,setTimeout((function(){d=!0}),350),!0}}return function(){clearTimeout(i),l||requestAnimationFrame(p),l=!0}}}).call(this,n("31d2"))},"49c2":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return l}));var i=n("38ce"),r=n("340d"),o=n("96a6"),a=n("0db3");function s(t){var e={};if(t.id&&(e.id=""),t.dataset&&(e.dataset={}),t.rect&&(e.left=0,e.right=0,e.top=0,e.bottom=0),t.size&&(e.width=document.documentElement.clientWidth,e.height=document.documentElement.clientHeight),t.scrollOffset){var n=document.documentElement,i=document.body;e.scrollLeft=n.scrollLeft||i.scrollLeft||0,e.scrollTop=n.scrollTop||i.scrollTop||0,e.scrollHeight=n.scrollHeight||i.scrollHeight||0,e.scrollWidth=n.scrollWidth||i.scrollWidth||0}return e}function c(t,e){var n={},a=Object(o["a"])(),s=a.top;if(e.id&&(n.id=t.id),e.dataset&&(n.dataset=Object(i["a"])(t)),e.rect||e.size){var c=t.getBoundingClientRect();e.rect&&(n.left=c.left,n.right=c.right,n.top=c.top-s,n.bottom=c.bottom-s),e.size&&(n.width=c.width,n.height=c.height)}if(Array.isArray(e.properties)){var u=t.__vue__&&t.__vue__.$props;u&&e.properties.forEach((function(t){"string"===typeof t&&(t=Object(r["b"])(t),null!=u[t]&&(n[t]=u[t]))}))}if(e.scrollOffset&&("UNI-SCROLL-VIEW"===t.tagName&&t.__vue__&&t.__vue__.getScrollPosition?Object.assign(n,t.__vue__.getScrollPosition()):(n.scrollLeft=0,n.scrollTop=0,n.scrollHeight=0,n.scrollWidth=0)),Array.isArray(e.computedStyle)){var l=getComputedStyle(t);e.computedStyle.forEach((function(t){n[t]=l[t]}))}return e.context&&t.__vue__&&t.__vue__._getContextInfo&&(n.context=t.__vue__._getContextInfo()),n}function u(t,e,n,i,r){var o=Object(a["a"])(Object(a["b"])(e,t));if(!o||o&&8===o.nodeType)return i?null:[];if(i){var s=o.matches(n)?o:o.querySelector(n);return s?c(s,r):null}var u=[],l=o.querySelectorAll(n);return l&&l.length&&(u=[].map.call(l,(function(t){return c(t,r)}))),o.matches(n)&&u.unshift(c(o,r)),u}function l(e,n){var i,r=e.reqId,o=e.reqs;if(n._isVue)i=n;else{var a=getCurrentPages(),c=a.find((function(t){return t.$page.id===n}));if(!c)throw new Error("Not Found:Page[".concat(n,"]"));i=c.$vm}var l=[];o.forEach((function(t){var e=t.component,n=t.selector,r=t.single,o=t.fields;0===e?l.push(s(o)):l.push(u(i,e,n,r,o))})),t.publishHandler("onRequestComponentInfo",{reqId:r,res:l})}}).call(this,n("31d2"))},"49c7":function(t,e,n){"use strict";var i=n("07d6"),r=n.n(i);r.a},"4ba6":function(t,e,n){"use strict";function i(t,e,n){return t>e-n&&t0){var u=(-n-Math.sqrt(o))/(2*i),l=(-n+Math.sqrt(o))/(2*i),h=(e-u*t)/(l-u),d=t-h;return{x:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*e+h*n},dx:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*u*e+h*l*n}}}var f=Math.sqrt(4*i*r-n*n)/(2*i),p=-n/2*i,v=t,m=(e-p*t)/f;return{x:function(t){return Math.pow(Math.E,p*t)*(v*Math.cos(f*t)+m*Math.sin(f*t))},dx:function(t){var e=Math.pow(Math.E,p*t),n=Math.cos(f*t),i=Math.sin(f*t);return e*(m*f*n-v*f*i)+p*e*(m*i+v*n)}}},o.prototype.x=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._endPosition+this._solution.x(t):0},o.prototype.dx=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._solution.dx(t):0},o.prototype.setEnd=function(t,e,n){if(n||(n=(new Date).getTime()),t!==this._endPosition||!r(e,.4)){e=e||0;var i=this._endPosition;this._solution&&(r(e,.4)&&(e=this._solution.dx((n-this._startTime)/1e3)),i=this._solution.x((n-this._startTime)/1e3),r(e,.4)&&(e=0),r(i,.4)&&(i=0),i+=this._endPosition),this._solution&&r(i-t,.4)&&r(e,.4)||(this._endPosition=t,this._solution=this._solve(i-this._endPosition,e),this._startTime=n)}},o.prototype.snap=function(t){this._startTime=(new Date).getTime(),this._endPosition=t,this._solution={x:function(){return 0},dx:function(){return 0}}},o.prototype.done=function(t){return t||(t=(new Date).getTime()),i(this.x(),this._endPosition,.4)&&r(this.dx(),.4)},o.prototype.reconfigure=function(t,e,n){this._m=t,this._k=e,this._c=n,this.done()||(this._solution=this._solve(this.x()-this._endPosition,this.dx()),this._startTime=(new Date).getTime())},o.prototype.springConstant=function(){return this._k},o.prototype.damping=function(){return this._c},o.prototype.configuration=function(){function t(t,e){t.reconfigure(1,e,t.damping())}function e(t,e){t.reconfigure(1,t.springConstant(),e)}return[{label:"Spring Constant",read:this.springConstant.bind(this),write:t.bind(this,this),min:100,max:1e3},{label:"Damping",read:this.damping.bind(this),write:e.bind(this,this),min:1,max:500}]}},"4dc6":function(t,e,n){"use strict";var i=n("655d"),r=n.n(i);r.a},"4ead":function(t,e,n){"use strict";var i=n("a004"),r=n.n(i),o=n("38ce"),a=n("340d");function s(t){t.config.errorHandler=function(e,n,i){var r=Object(a["n"])(e);t.util.warn("Error in ".concat(i,': "').concat("Error"===r?e.toString():e,'"'),n);var s="function"===typeof getApp&&getApp();s&&Object(o["b"])(s.$options,"onError")?s.__call_hook("onError",e):console.error(e)};var e=t.config.isReservedTag;t.config.isReservedTag=function(t){return-1!==r.a.indexOf(t)||e(t)},t.config.ignoredElements=r.a;var n=t.config.getTagNamespace,i=["switch","image","text","view"];t.config.getTagNamespace=function(t){return!~i.indexOf(t)&&n(t)}}var c=n("9602"),u=n("95eb"),l=n("d96c");function h(t){Object.defineProperty(t.prototype,"$page",{get:function(){return getCurrentPages()[0].$page}}),t.prototype.$handleVModelEvent=function(t,e){l["b"].sendUIEvent(this._$id,t,{type:"input",target:{value:e}})},t.prototype.$handleViewEvent=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.stop&&t.stopPropagation(),e.prevent&&t.preventDefault();var n=this.$handleEvent(t),i=this._$id,r=t.$origCurrentTarget||t.currentTarget,o=(r===this.$el&&"page"!==this.$options.mpType?"r-":"")+n.options.nid;if("undefined"===typeof o)return console.error("[".concat(i,"] nid not found"));delete n._processed,delete n.mp,delete n.preventDefault,delete n.stopPropagation,delete n.options,delete n.$origCurrentTarget,l["b"].sendUIEvent(i,o,n)}}n("249f"),e["a"]={install:function(t,e){t.prototype._$getRealPath=u["a"],s(t),c["a"].install(t,e),Object(l["a"])(t),h(t)}}},"4ef5":function(t){t.exports=JSON.parse('{"uni.app.quit":"再按一次退出應用","uni.async.error":"連接服務器超時,點擊屏幕重試","uni.showActionSheet.cancel":"取消","uni.showToast.unpaired":"請注意 showToast 與 hideToast 必須配對使用","uni.showLoading.unpaired":"請注意 showLoading 與 hideLoading 必須配對使用","uni.showModal.cancel":"取消","uni.showModal.confirm":"確定","uni.chooseImage.cancel":"取消","uni.chooseImage.sourceType.album":"從相冊選擇","uni.chooseImage.sourceType.camera":"拍攝","uni.chooseVideo.cancel":"取消","uni.chooseVideo.sourceType.album":"從相冊選擇","uni.chooseVideo.sourceType.camera":"拍攝","uni.chooseFile.notUserActivation":"文件選擇器對話框只能在由用戶激活時顯示","uni.previewImage.cancel":"取消","uni.previewImage.button.save":"保存圖像","uni.previewImage.save.success":"保存圖像到相冊成功","uni.previewImage.save.fail":"保存圖像到相冊失敗","uni.setClipboardData.success":"內容已復制","uni.scanCode.title":"掃碼","uni.scanCode.album":"相冊","uni.scanCode.fail":"識別失敗","uni.scanCode.flash.on":"輕觸照亮","uni.scanCode.flash.off":"輕觸關閉","uni.startSoterAuthentication.authContent":"指紋識別中...","uni.startSoterAuthentication.waitingContent":"無法識別","uni.picker.done":"完成","uni.picker.cancel":"取消","uni.video.danmu":"彈幕","uni.video.volume":"音量","uni.button.feedback.title":"問題反饋","uni.button.feedback.send":"發送","uni.chooseLocation.search":"搜索地點","uni.chooseLocation.cancel":"取消"}')},"4f39":function(t,e,n){"use strict";(function(t){function n(t){return n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)} +(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["uni"]=e():t["uni"]=e()})("undefined"!==typeof self?self:this,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="393d")}({"005f":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var i="onPageCreate"},"01aa":function(t,e,n){"use strict";var i=n("e32e"),r=n.n(i);r.a},"0372":function(t,e,n){"use strict";n.d(e,"d",(function(){return w})),n.d(e,"b",(function(){return S})),n.d(e,"c",(function(){return k})),n.d(e,"a",(function(){return x}));var i=n("e8d9"),r=(n("340d"),n("c80c"),n("0a80")),o=n("c14b"),a=n("0dbd"),s=n("1da9"),c=n("4ef5");function u(t){return u="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u(t)}function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var h,d,f="zh-Hans",p="zh-Hant",v="en",m="fr",g="es",_={};function b(){if(C()){var t=Object.keys(__uniConfig.locales);t.length&&t.forEach((function(t){var e=_[t],n=__uniConfig.locales[t];e?Object.assign(e,n):_[t]=n}))}}Object.assign(_,(h={},l(h,v,r),l(h,g,o),l(h,m,a),l(h,f,s),l(h,p,c),h)),d="object"===("undefined"===typeof weex?"undefined":u(weex))?weex.requireModule("plus").getLanguage():"",b();var y=Object(i["a"])(d,_),w=y.t,S=y.mixin={beforeCreate:function(){var t=this,e=y.i18n.watchLocale((function(){t.$forceUpdate()}));this.$once("hook:beforeDestroy",(function(){e()}))},methods:{$$t:function(t,e){return w(t,e)}}},k=y.setLocale,x=y.getLocale;function C(){return"undefined"!==typeof __uniConfig&&__uniConfig.locales&&!!Object.keys(__uniConfig.locales).length}},"04a6":function(t,e,n){},"07b5":function(t,e,n){},"07d6":function(t,e,n){},"0834":function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"c",(function(){return r})),n.d(e,"h",(function(){return o})),n.d(e,"e",(function(){return a})),n.d(e,"g",(function(){return s})),n.d(e,"i",(function(){return c})),n.d(e,"a",(function(){return u})),n.d(e,"m",(function(){return l})),n.d(e,"j",(function(){return h})),n.d(e,"b",(function(){return d})),n.d(e,"l",(function(){return f})),n.d(e,"n",(function(){return p})),n.d(e,"k",(function(){return v})),n.d(e,"f",(function(){return m}));var i=2,r=4,o=6,a=10,s=20,c="vdSync",u="__uniapp__service",l="webviewReady",h="vdSyncCallback",d="invokeApi",f="webviewInserted",p="webviewRemoved",v="webviewId",m="setLocale"},"083e":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return v}));var i=n("0834"),r=n("e534");function o(t,e){return l(t)||u(t,e)||s(t,e)||a()}function a(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(t,e){if(t){if("string"===typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:{};h(this,e),this.pageId=t,this.addBatchVData=Object.create(null),this.updateBatchVData=[],this.vms=Object.create(null),this.version=n.version}return f(e,[{key:"addVData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addBatchVData[t]=[e,n]}},{key:"updateVData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.updateBatchVData.push([t,e])}},{key:"addVm",value:function(t){var e=t._$id,n=this.vms[e];if(n){var i=Object(r["a"])(n,p(n),this.version);n._$id=i,this.vms[i]=n}this.vms[e]=t}},{key:"initVm",value:function(t){t._$id=Object(r["a"])(t,p(t),this.version);var e=this.addBatchVData[t._$id];e?delete this.addBatchVData[t._$id]:e=[{},{}];var n=e,i=o(n,2),a=i[0],s=i[1];Object.assign(t.$options,s),t.$r=a||Object.create(null),this.addVm(t)}},{key:"sendUIEvent",value:function(e,n,r){t.publishHandler(i["i"],{data:[[i["g"],[[e,n,r]]]],options:{timestamp:Date.now()}})}},{key:"clearAddBatchVData",value:function(){this.addBatchVData=Object.create(null)}},{key:"flush",value:function(){var t=this;this.updateBatchVData.forEach((function(e){var n=o(e,2),i=n[0],r=n[1],a=t.vms[i];if(!a)return console.error("Not found ".concat(i));Object.keys(r).forEach((function(t){Object.assign(a.$r[t]||(a.$r[t]=Object.create(null)),r[t])})),a.$forceUpdate()})),this.updateBatchVData.length=0}}]),e}()}).call(this,n("31d2"))},"09b2":function(t,e,n){"use strict";var i=n("3231");function r(t){var e;while(t){var n=getComputedStyle(t),i=n.transform||n.webkitTransform;e=(!i||"none"===i)&&e,e="fixed"===n.position||e,t=t.parentElement}return e}e["a"]={name:"Native",data:function(){return{position:{top:"0px",left:"0px",width:"0px",height:"0px",position:"static"},hidden:!1}},provide:function(){return{parentOnDraw:this._onDraw}},inject:{parentOnDraw:{default:null}},created:function(){this.isNative=!0,this.onCanInsertCallbacks=[],this.onDrawCallbacks=[]},mounted:function(){this._updatePosition(),this.onCanInsertCallbacks.forEach((function(t){return t()})),this.onCanInsertCallbacks=null,this.$on("uni-view-update",this._requestPositionUpdate)},methods:{_updatePosition:function(){var t=(this.$refs.container||this.$el).getBoundingClientRect();if(this.hidden=0===t.width||0===t.height,!this.hidden){var e=this.position;e.position=r(this.$el)?"absolute":"static";var n=["top","left","width","height"];n.forEach((function(n){var r=t[n];r="top"===n?r+("static"===e.position?document.documentElement.scrollTop||document.body.scrollTop||0:Object(i["a"])()):r,e[n]=r+"px"}))}},_requestPositionUpdate:function(){var t=this;this._positionUpdateRequest&&cancelAnimationFrame(this._positionUpdateRequest),this._positionUpdateRequest=requestAnimationFrame((function(){delete t._positionUpdateRequest,t._updatePosition()}))},_onParentReady:function(t){var e=this,n=function(n){t(n),e.onDrawCallbacks.forEach((function(t){return t(e.position)})),e.onDrawCallbacks=null};this._onSelfReady((function(){e.parentOnDraw?e.parentOnDraw(n):n({top:"0px",left:"0px",width:Number.MAX_SAFE_INTEGER+"px",height:Number.MAX_SAFE_INTEGER+"px",position:"static"})}))},_onSelfReady:function(t){this.onCanInsertCallbacks?this.onCanInsertCallbacks.push(t):t()},_onDraw:function(t){this.onDrawCallbacks?this.onDrawCallbacks.push(t):t(this.position)}}}},"0a18":function(t,e,n){"use strict";var i=n("c9d5"),r=n.n(i);r.a},"0a80":function(t){t.exports=JSON.parse('{"uni.app.quit":"Press back button again to exit","uni.async.error":"The connection timed out, click the screen to try again.","uni.showActionSheet.cancel":"Cancel","uni.showToast.unpaired":"Please note showToast must be paired with hideToast","uni.showLoading.unpaired":"Please note showLoading must be paired with hideLoading","uni.showModal.cancel":"Cancel","uni.showModal.confirm":"OK","uni.chooseImage.cancel":"Cancel","uni.chooseImage.sourceType.album":"Album","uni.chooseImage.sourceType.camera":"Camera","uni.chooseVideo.cancel":"Cancel","uni.chooseVideo.sourceType.album":"Album","uni.chooseVideo.sourceType.camera":"Camera","uni.chooseFile.notUserActivation":"File chooser dialog can only be shown with a user activation","uni.previewImage.cancel":"Cancel","uni.previewImage.button.save":"Save Image","uni.previewImage.save.success":"Saved successfully","uni.previewImage.save.fail":"Save failed","uni.setClipboardData.success":"Content copied","uni.scanCode.title":"Scan code","uni.scanCode.album":"Album","uni.scanCode.fail":"Recognition failure","uni.scanCode.flash.on":"Tap to turn light on","uni.scanCode.flash.off":"Tap to turn light off","uni.startSoterAuthentication.authContent":"Fingerprint recognition","uni.startSoterAuthentication.waitingContent":"Unrecognizable","uni.picker.done":"Done","uni.picker.cancel":"Cancel","uni.video.danmu":"Danmu","uni.video.volume":"Volume","uni.button.feedback.title":"feedback","uni.button.feedback.send":"send","uni.chooseLocation.search":"Find Place","uni.chooseLocation.cancel":"Cancel"}')},"0abb":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-icon",t._g({},t.$listeners),[n("i",{class:"uni-icon-"+t.type,style:{"font-size":t._converPx(t.size),color:t.color},attrs:{role:"img"}})])},r=[],o={name:"Icon",props:{type:{type:String,required:!0,default:""},size:{type:[String,Number],default:23},color:{type:String,default:""}},methods:{_converPx:function(t){return/^-?\d+[ur]px$/i.test(t)?t.replace(/(^-?\d+)[ur]px$/i,(function(t,e){return"".concat(uni.upx2px(parseFloat(e)),"px")})):/^-?[\d\.]+$/.test(t)?"".concat(t,"px"):t||""}}},a=o,s=(n("5b38"),n("8844")),c=Object(s["a"])(a,i,r,!1,null,null,null);e["default"]=c.exports},"0b62":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var i={};function r(t,e,n){var r="string"===typeof t?window[t]:t;if(r)n();else{var o=i[e];if(!o){o=i[e]=[];var a=document.createElement("script");a.src=e,document.body.appendChild(a),a.onload=function(){o.forEach((function(t){return t()})),delete i[e]}}o.push(n)}}},"0c40":function(t,e,n){"use strict";(function(t){var i=n("340d"),r=n("0db8"),o=n("0e4a"),a=n("88a8");t.subscribe("getSelectedTextRange",(function(e){var n=e.pageId,i=e.callbackId,r=document.activeElement,o=r.tagName.toLowerCase(),a=["input","textarea"],s={};a.includes(o)?(s.errMsg="getSelectedTextRange:ok",s.start=r.selectionStart,s.end=r.selectionEnd):s.errMsg="getSelectedTextRange:fail no focused",t.publishHandler("onGetSelectedTextRange",{callbackId:i,data:s},n)}));var s,c=200;e["a"]={name:"Field",mixins:[r["a"],o["a"],a["a"]],model:{prop:"value",event:"update:value"},props:{value:{type:[String,Number],default:""},autoFocus:{type:[Boolean,String],default:!1},focus:{type:[Boolean,String],default:!1},cursor:{type:[Number,String],default:-1},selectionStart:{type:[Number,String],default:-1},selectionEnd:{type:[Number,String],default:-1},confirmHold:{type:Boolean,default:!1},ignoreCompositionEvent:{type:Boolean,default:!0}},data:function(){return{composing:!1,valueSync:this._getValueString(this.value,this.type),focusSync:this.focus,fixColor:0===String(navigator.vendor).indexOf("Apple")&&CSS.supports("image-orientation:from-image")}},watch:{focus:function(t){t?this._focus():this._blur()},focusSync:function(t){this.$emit("update:focus",t)},cursorNumber:function(){this._checkCursor()},selectionStartNumber:function(){this._checkSelection()},selectionEndNumber:function(){this._checkSelection()}},computed:{needFocus:function(){return this.autoFocus||this.focus},cursorNumber:function(){var t=Number(this.cursor);return isNaN(t)?-1:t},selectionStartNumber:function(){var t=Number(this.selectionStart);return isNaN(t)?-1:t},selectionEndNumber:function(){var t=Number(this.selectionEnd);return isNaN(t)?-1:t}},created:function(){var t=this,e=this.__valueChange=Object(i["c"])((function(e){t.valueSync=t._getValueString(e,t.type)}),100);this.$watch("value",e),this.__triggerInput=Object(i["n"])((function(e,n){t.__valueChange.cancel(),t.$emit("update:value",n.value),t.$trigger("input",e,n)}),100),this.$triggerInput=function(e,n,i){t.__valueChange.cancel(),t.__triggerInput(e,n),i&&t.__triggerInput.flush()}},beforeDestroy:function(){this.__valueChange.cancel(),this.__triggerInput.cancel()},directives:{field:{inserted:function(t,e,n){n.context._initField(t)}}},methods:{_getValueString:function(t,e){return"number"===e&&isNaN(Number(t))&&(t=""),null===t?"":String(t)},_initField:function(t){var e=this;this._field=t,s=s||Date.now(),this.needFocus&&setTimeout((function(){e._focus()}))},_focus:function(){if(this.needFocus){var t=this._field;if(t&&window.plus){var e=c-(Date.now()-s);e>0?setTimeout(this._focus.bind(this),e):(t.focus(),this.userInteract||"none"===this.inputmode||plus.key.showSoftKeybord())}else setTimeout(this._focus.bind(this),100)}},_blur:function(){var t=this._field;t&&t.blur()},_onFocus:function(t){this.focusSync=!0,this.$trigger("focus",t,{value:this.valueSync}),this._checkSelection(),this._checkCursor()},_onBlur:function(t){this.composing&&(this.composing=!1,this._onInput(t,!0)),this.focusSync=!1;var e,n=t.target;"number"===n.type?(n.type="text",e=n.selectionEnd,n.type="number"):e=n.selectionEnd,this.$trigger("blur",t,{value:this.valueSync,cursor:e})},_checkSelection:function(){var t=this._field;this.focusSync&&this.selectionStartNumber>-1&&this.selectionEndNumber>-1&&"number"!==t.type&&(t.selectionStart=this.selectionStartNumber,t.selectionEnd=this.selectionEndNumber)},_checkCursor:function(){var t=this._field;this.focusSync&&this.selectionStartNumber<0&&this.selectionEndNumber<0&&this.cursorNumber>-1&&"number"!==t.type&&(t.selectionEnd=t.selectionStart=this.cursorNumber)}}}}).call(this,n("31d2"))},"0c61":function(t,e,n){},"0db3":function(t,e,n){"use strict";function i(t,e){if(t===e._$id)return e;for(var n=e.$children,r=n.length,o=0;o=0&&e.item(n)!==this);return n>-1}),t}n.d(e,"b",(function(){return r})),n.d(e,"a",(function(){return o}))},"0db8":function(t,e,n){"use strict";function i(t,e){for(var n=this.$children,r=n.length,o=arguments.length,a=new Array(o>2?o-2:0),s=2;s2?r-2:0),a=2;a2?n-2:0),o=2;o=13)&&document.activeElement.blur()};t.addEventListener("focus",(function(){e=!0,clearTimeout(i),document.addEventListener("click",h,!1),s=l,a&&n.$trigger("keyboardheightchange",{},{height:a,duration:0}),f(n),d(n)})),r&&t.addEventListener("click",(function(){!n.disabled&&e&&0===a&&d(n)})),r||(parseInt(o)<12&&t.addEventListener("touchstart",(function(){n.disabled||e||d(n)})),parseFloat(o)>=14.6&&!c&&Object(u["k"])((function(){var t=plus.webview.currentWebview();c=t.getStyle()||{}})));var v=function(){document.removeEventListener("click",h,!1),s=null,a&&n.$trigger("keyboardheightchange",{},{height:0,duration:0}),p(n),r&&(i=setTimeout((function(){d(n,!0)}),300)),n.isApple&&document.documentElement.scrollTo(document.documentElement.scrollLeft,document.documentElement.scrollTop)};t.addEventListener("blur",(function(){n.isApple&&t.blur(),e=!1,v()}))}}}},"0ee4":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},"120f":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-resize-sensor",{on:{"~animationstart":function(e){return t.update(e)}}},[n("div",{on:{scroll:t.update}},[n("div")]),n("div",{on:{scroll:t.update}},[n("div")])])},r=[],o=1e5,a={name:"ResizeSensor",props:{initial:{type:[Boolean,String],default:!1}},data:function(){return{size:{width:-1,height:-1}}},watch:{size:{deep:!0,handler:function(t){this.$emit("resize",Object.assign({},t))}}},mounted:function(){!0===this.initial&&this.$nextTick(this.update),this.$el.offsetParent!==this.$el.parentNode&&(this.$el.parentNode.style.position="relative"),"AnimationEvent"in window||this.reset()},activated:function(){this.reset()},methods:{reset:function(){var t=this.$el.firstChild;t.scrollLeft=o,t.scrollTop=o;var e=this.$el.lastChild;e.scrollLeft=o,e.scrollTop=o},update:function(){this.size.width=this.$el.offsetWidth,this.size.height=this.$el.offsetHeight,this.reset()}}},s=a,c=(n("2eb1"),n("8844")),u=Object(c["a"])(s,i,r,!1,null,null,null);e["default"]=u.exports},1332:function(t,e,n){},"15ad":function(t,e,n){},"15f4":function(t,e,n){"use strict";(function(t){var i=n("909e"),r=n("d97d"),o=n("df5a"),a=n("0b62");function s(t){return s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(){return"ios"===plus.os.name.toLowerCase()}e["a"]={name:"Editor",mixins:[i["f"],i["a"],i["d"]],props:{id:{type:String,default:""},readOnly:{type:[Boolean,String],default:!1},placeholder:{type:String,default:""},showImgSize:{type:[Boolean,String],default:!1},showImgToolbar:{type:[Boolean,String],default:!1},showImgResize:{type:[Boolean,String],default:!1}},data:function(){return{quillReady:!1}},computed:{},watch:{readOnly:function(t){if(this.quillReady){var e=this.quill;e.enable(!t),t||e.blur()}},placeholder:function(t){this.quillReady&&this.setPlaceHolder(t)}},mounted:function(){var t=this,e=[];this.showImgSize&&e.push("DisplaySize"),this.showImgToolbar&&e.push("Toolbar"),this.showImgResize&&e.push("Resize");var n="./__uniappquill.js";Object(a["a"])(window.Quill,n,(function(){if(e.length){var n="./__uniappquillimageresize.js";Object(a["a"])(window.ImageResize,n,(function(){t.initQuill(e)}))}else t.initQuill(e)}))},methods:{_textChangeHandler:function(){this.$trigger("input",{},this.getContents())},_handleSubscribe:function(e){var n,i,r,o=this,a=e.type,c=e.data,u=c.options,l=c.callbackId,h=this.quill,d=window.Quill;if(this.quillReady){switch(a){case"format":var f=u.name,p=void 0===f?"":f,v=u.value,m=void 0!==v&&v;i=h.getSelection(!0);var g=h.getFormat(i)[p]||!1;if(["bold","italic","underline","strike","ins"].includes(p))m=!g;else if("direction"===p){m=("rtl"!==m||!g)&&m;var _=h.getFormat(i).align;"rtl"!==m||_?m||"right"!==_||h.format("align",!1,d.sources.USER):h.format("align","right",d.sources.USER)}else if("indent"===p){var b="rtl"===h.getFormat(i).direction;m="+1"===m,b&&(m=!m),m=m?"+1":"-1"}else"list"===p&&(m="check"===m?"unchecked":m,g="checked"===g?"unchecked":g),m=g&&g!==(m||!1)||!g&&m?m:!g;h.format(p,m,d.sources.USER);break;case"insertDivider":i=h.getSelection(!0),h.insertText(i.index,"\n",d.sources.USER),h.insertEmbed(i.index+1,"divider",!0,d.sources.USER),h.setSelection(i.index+2,d.sources.SILENT);break;case"insertImage":i=h.getSelection(!0);var y=u.src,w=void 0===y?"":y,S=u.alt,k=void 0===S?"":S,x=u.width,C=void 0===x?"":x,T=u.height,O=void 0===T?"":T,$=u.extClass,E=void 0===$?"":$,I=u.data,A=void 0===I?{}:I,M=this.$getRealPath(w);h.insertEmbed(i.index,"image",M,d.sources.SILENT);var P=!!/^(file|blob):/.test(M)&&M;h.formatText(i.index,1,"data-local",P,d.sources.SILENT),h.formatText(i.index,1,"alt",k,d.sources.SILENT),h.formatText(i.index,1,"width",C,d.sources.SILENT),h.formatText(i.index,1,"height",O,d.sources.SILENT),h.formatText(i.index,1,"class",E,d.sources.SILENT),h.formatText(i.index,1,"data-custom",Object.keys(A).map((function(t){return"".concat(t,"=").concat(A[t])})).join("&"),d.sources.SILENT),h.setSelection(i.index+1,d.sources.SILENT),h.scrollIntoView(),setTimeout((function(){o._textChangeHandler()}),1e3);break;case"insertText":i=h.getSelection(!0);var j=u.text,L=void 0===j?"":j;h.insertText(i.index,L,d.sources.USER),h.setSelection(i.index+L.length,0,d.sources.SILENT);break;case"setContents":var N=u.delta,D=u.html;"object"===s(N)?h.setContents(N,d.sources.SILENT):"string"===typeof D?h.setContents(this.html2delta(D),d.sources.SILENT):r="contents is missing";break;case"getContents":n=this.getContents();break;case"clear":h.setContents([]);break;case"removeFormat":i=h.getSelection(!0);var R=d.import("parchment");i.length?h.removeFormat(i,d.sources.USER):Object.keys(h.getFormat(i)).forEach((function(t){R.query(t,R.Scope.INLINE)&&h.format(t,!1)}));break;case"undo":h.history.undo();break;case"redo":h.history.redo();break;case"blur":h.blur();break;case"getSelectionText":i=h.selection.savedRange,n={text:""},i&&0!==i.length&&(n.text=h.getText(i.index,i.length));break;case"scrollIntoView":h.scrollIntoView();break;default:break}this.updateStatus(i)}else r="not ready";l&&t.publishHandler("onEditorMethodCallback",{callbackId:l,data:Object.assign({},n,{errMsg:"".concat(a,":").concat(r?"fail "+r:"ok")})},this.$page.id)},setPlaceHolder:function(t){var e="data-placeholder",n=this.quill.root;n.getAttribute(e)!==t&&n.setAttribute(e,t)},initQuill:function(t){var e=this,n=window.Quill;o["a"](n);var i={toolbar:!1,readOnly:this.readOnly,placeholder:this.placeholder,modules:{}};t.length&&(n.register("modules/ImageResize",window.ImageResize.default),i.modules.ImageResize={modules:t});var r=this.quill=new n(this.$el,i),a=r.root,s=["focus","blur","input"];s.forEach((function(t){a.addEventListener(t,(function(n){var i=e.getContents();if("input"===t){if(c()){var r=(i.html.match(/([\s\S]*)<\/span>/)||[])[1],o=r&&r.replace(/\s/g,"")?"":e.placeholder;e.setPlaceHolder(o)}n.stopPropagation()}else e.$trigger(t,n,i)}))})),r.on(n.events.TEXT_CHANGE,this._textChangeHandler),r.on(n.events.SELECTION_CHANGE,this.updateStatus.bind(this)),r.on(n.events.SCROLL_OPTIMIZE,(function(){var t=r.selection.getRange()[0];e.updateStatus(t)})),r.clipboard.addMatcher(Node.ELEMENT_NODE,(function(t,n){return e.skipMatcher||(n.ops=n.ops.filter((function(t){var e=t.insert;return"string"===typeof e})).map((function(t){var e=t.insert;return{insert:e}}))),n})),this.initKeyboard(a),this.quillReady=!0,this.$trigger("ready",event,{})},getContents:function(){var t=this.quill,e=t.root[["inner", "HTML"].join("")],n=t.getText(),i=t.getContents();return{html:e,text:n,delta:i}},html2delta:function(t){var e,n=["span","strong","b","ins","em","i","u","a","del","s","sub","sup","img","div","p","h1","h2","h3","h4","h5","h6","hr","ol","ul","li","br"],i="";Object(r["a"])(t,{start:function(t,r,o){if(n.includes(t)){e=!1;var a=r.map((function(t){var e=t.name,n=t.value;return"".concat(e,'="').concat(n,'"')})).join(" "),s="<".concat(t," ").concat(a," ").concat(o?"/":"",">");i+=s}else e=!o},end:function(t){e||(i+=""))},chars:function(t){e||(i+=t)}}),this.skipMatcher=!0;var o=this.quill.clipboard.convert(i);return this.skipMatcher=!1,o},updateStatus:function(t){var e=this,n=t?this.quill.getFormat(t):{},i=Object.keys(n);(i.length!==Object.keys(this.__status||{}).length||i.find((function(t){return n[t]!==e.__status[t]})))&&(this.__status=n,this.$trigger("statuschange",{},n))}}}}).call(this,n("31d2"))},1720:function(t,e,n){"use strict";var i=n("a187"),r=n.n(i);r.a},"1af3":function(t,e,n){"use strict";function i(t){return s(t)||a(t)||o(t)||r()}function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(t,e){if(t){if("string"===typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function a(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}function s(t){if(Array.isArray(t))return c(t)}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n=0&&(s.length=1),d.push("".concat(a,"(").concat(s.join(","),")"));else if(r.concat(o).includes(s[0])){a=s[0];var c=s[1];h[a]=o.includes(a)?u(c):c}})),h.transform=h.webkitTransform=d.join(" "),h.transition=h.webkitTransition=Object.keys(h).map((function(t){return"".concat(l(t)," ").concat(c.duration,"ms ").concat(c.timingFunction," ").concat(c.delay,"ms")})).join(","),h.transformOrigin=h.webkitTransformOrigin=s.transformOrigin,h}function d(t){var e=t.animation;if(e&&e.actions&&e.actions.length){var n=0,i=e.actions,r=e.actions.length;setTimeout((function(){o()}),0)}function o(){var e=i[n],a=e.option.transition,s=h(e);Object.keys(s).forEach((function(e){t.$el.style[e]=s[e]})),n+=1,n>>16&65535|0,a=0;while(0!==n){a=n>2e3?2e3:n,n-=a;do{r=r+e[i++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0}t.exports=i},"2ace":function(t,e,n){"use strict";(function(t){var i=n("340d");e["a"]={props:{id:{type:String,default:""}},created:function(){var t=this;this._addListeners(this.id),this.$watch("id",(function(e,n){t._removeListeners(n,!0),t._addListeners(e,!0)}))},beforeDestroy:function(){this._removeListeners(this.id)},methods:{_addListeners:function(e,n){var r=this;if(!n||e){var o=this.$options.listeners;Object(i["g"])(o)&&Object.keys(o).forEach((function(i){n?0!==i.indexOf("@")&&0!==i.indexOf("uni-")&&t.on("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]]):0===i.indexOf("@")?r.$on("uni-".concat(i.substr(1)),r[o[i]]):0===i.indexOf("uni-")?t.on(i,r[o[i]]):e&&t.on("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]])}))}},_removeListeners:function(e,n){var r=this;if(!n||e){var o=this.$options.listeners;Object(i["g"])(o)&&Object.keys(o).forEach((function(i){n?0!==i.indexOf("@")&&0!==i.indexOf("uni-")&&t.off("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]]):0===i.indexOf("@")?r.$off("uni-".concat(i.substr(1)),r[o[i]]):0===i.indexOf("uni-")?t.off(i,r[o[i]]):e&&t.off("uni-".concat(i,"-").concat(r.$page.id,"-").concat(e),r[o[i]])}))}}}}}).call(this,n("31d2"))},"2b44":function(t,e,n){"use strict";var i=n("82de"),r=15,o=852,a=592,s=0,c=1,u=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],h=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],d=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],f=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(t,e,n,p,v,m,g,_){var b,y,w,S,k,x,C,T,O,$=_.bits,E=0,I=0,A=0,M=0,P=0,j=0,L=0,N=0,D=0,R=0,B=null,F=0,z=new i.Buf16(r+1),V=new i.Buf16(r+1),H=null,Y=0;for(E=0;E<=r;E++)z[E]=0;for(I=0;I=1;M--)if(0!==z[M])break;if(P>M&&(P=M),0===M)return v[m++]=20971520,v[m++]=20971520,_.bits=1,0;for(A=1;A0&&(t===s||1!==M))return-1;for(V[1]=0,E=1;Eo||t===u&&D>a)return 1;for(;;){C=E-L,g[I]x?(T=H[Y+g[I]],O=B[F+g[I]]):(T=96,O=0),b=1<>L)+y]=C<<24|T<<16|O|0}while(0!==y);b=1<>=1;if(0!==b?(R&=b-1,R+=b):R=0,I++,0===--z[E]){if(E===M)break;E=e[n+g[I]]}if(E>P&&(R&S)!==w){0===L&&(L=P),k+=A,j=E-L,N=1<o||t===u&&D>a)return 1;w=R&S,v[w]=P<<24|j<<16|k-m|0}}return 0!==R&&(v[k+R]=E-L<<24|64<<16|0),_.bits=P,0}},"2be0":function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var i=n("340d"),r=n("909e");function o(){this.$dispatch("Form","uni-form-group-update",{type:"add",vm:this})}function a(){this.$dispatch("Form","uni-form-group-update",{type:"remove",vm:this})}var s={name:"uni://form-field",init:function(t,e){e.constructor.options.props&&e.constructor.options.props.name&&e.constructor.options.props.value||(e.constructor.options.props||(e.constructor.options.props={}),e.constructor.options.props.name||(e.constructor.options.props.name=t.props.name={type:String}),e.constructor.options.props.value||(e.constructor.options.props.value=t.props.value={type:null})),t.propsData||(t.propsData={});var n=e.$vnode;if(n&&n.data&&n.data.attrs&&(Object(i["e"])(n.data.attrs,"name")&&(t.propsData.name=n.data.attrs.name),Object(i["e"])(n.data.attrs,"value")&&(t.propsData.value=n.data.attrs.value)),!e.constructor.options.methods||!e.constructor.options.methods._getFormData){e.constructor.options.methods||(e.constructor.options.methods={}),t.methods||(t.methods={});var s={_getFormData:function(){return this.name?{key:this.name,value:this.value}:{}},_resetFormData:function(){this.value=""}};Object.assign(e.constructor.options.methods,s),Object.assign(t.methods,s),Object.assign(e.constructor.options.methods,r["a"].methods),Object.assign(t.methods,r["a"].methods);var c=t.created;e.constructor.options.created=t.created=c?[].concat(o,c):[o];var u=t.beforeDestroy;e.constructor.options.beforeDestroy=t.beforeDestroy=u?[].concat(a,u):[a]}}};function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var u=c({},s.name,s);function l(t,e){t.behaviors.forEach((function(n){var i=u[n];i&&i.init(t,e)}))}},"2c65":function(t,e,n){"use strict";var i=n("7e48"),r=n("82de"),o=n("2e30"),a=n("d233"),s=n("d80f"),c=n("87de"),u=n("ea4b"),l=Object.prototype.toString;function h(t){if(!(this instanceof h))return new h(t);this.options=r.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var n=i.inflateInit2(this.strm,e.windowBits);if(n!==a.Z_OK)throw new Error(s[n]);if(this.header=new u,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"===typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=i.inflateSetDictionary(this.strm,e.dictionary),n!==a.Z_OK)))throw new Error(s[n])}function d(t,e){var n=new h(e);if(n.push(t,!0),n.err)throw n.msg||s[n.err];return n.result}function f(t,e){return e=e||{},e.raw=!0,d(t,e)}h.prototype.push=function(t,e){var n,s,c,u,h,d=this.strm,f=this.options.chunkSize,p=this.options.dictionary,v=!1;if(this.ended)return!1;s=e===~~e?e:!0===e?a.Z_FINISH:a.Z_NO_FLUSH,"string"===typeof t?d.input=o.binstring2buf(t):"[object ArrayBuffer]"===l.call(t)?d.input=new Uint8Array(t):d.input=t,d.next_in=0,d.avail_in=d.input.length;do{if(0===d.avail_out&&(d.output=new r.Buf8(f),d.next_out=0,d.avail_out=f),n=i.inflate(d,a.Z_NO_FLUSH),n===a.Z_NEED_DICT&&p&&(n=i.inflateSetDictionary(this.strm,p)),n===a.Z_BUF_ERROR&&!0===v&&(n=a.Z_OK,v=!1),n!==a.Z_STREAM_END&&n!==a.Z_OK)return this.onEnd(n),this.ended=!0,!1;d.next_out&&(0!==d.avail_out&&n!==a.Z_STREAM_END&&(0!==d.avail_in||s!==a.Z_FINISH&&s!==a.Z_SYNC_FLUSH)||("string"===this.options.to?(c=o.utf8border(d.output,d.next_out),u=d.next_out-c,h=o.buf2string(d.output,c),d.next_out=u,d.avail_out=f-u,u&&r.arraySet(d.output,d.output,c,u,0),this.onData(h)):this.onData(r.shrinkBuf(d.output,d.next_out)))),0===d.avail_in&&0===d.avail_out&&(v=!0)}while((d.avail_in>0||0===d.avail_out)&&n!==a.Z_STREAM_END);return n===a.Z_STREAM_END&&(s=a.Z_FINISH),s===a.Z_FINISH?(n=i.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===a.Z_OK):s!==a.Z_SYNC_FLUSH||(this.onEnd(a.Z_OK),d.avail_out=0,!0)},h.prototype.onData=function(t){this.chunks.push(t)},h.prototype.onEnd=function(t){t===a.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=r.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=h,e.inflate=d,e.inflateRaw=f,e.ungzip=d},"2cc9":function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;n=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;function c(t,e){if(e<65534&&(t.subarray&&o||!t.subarray&&r))return String.fromCharCode.apply(null,i.shrinkBuf(t,e));for(var n="",a=0;a>>6,e[a++]=128|63&n):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|63&n):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|63&n);return e},e.buf2binstring=function(t){return c(t,t.length)},e.binstring2buf=function(t){for(var e=new i.Buf8(t.length),n=0,r=e.length;n4)u[i++]=65533,n+=o-1;else{r&=2===o?31:3===o?15:7;while(o>1&&n1?u[i++]=65533:r<65536?u[i++]=r:(r-=65536,u[i++]=55296|r>>10&1023,u[i++]=56320|1023&r)}return c(u,i)},e.utf8border=function(t,e){var n;e=e||t.length,e>t.length&&(e=t.length),n=e-1;while(n>=0&&128===(192&t[n]))n--;return n<0||0===n?e:n+a[t[n]]>e?n:e}},"2eb1":function(t,e,n){"use strict";var i=n("0c61"),r=n.n(i);r.a},"31d2":function(t,e,n){"use strict";n.r(e),n.d(e,"on",(function(){return v})),n.d(e,"off",(function(){return m})),n.d(e,"once",(function(){return g})),n.d(e,"emit",(function(){return _})),n.d(e,"subscribe",(function(){return b})),n.d(e,"unsubscribe",(function(){return y})),n.d(e,"subscribeHandler",(function(){return w})),n.d(e,"publishHandler",(function(){return f["a"]}));var i=n("4f39");function r(t){var e=t.pageStyle,n=t.rootFontSize,i=document.querySelector("uni-page-body")||document.body;i.setAttribute("style",e),n&&document.documentElement.style.fontSize!==n&&(document.documentElement.style.fontSize=n)}var o=n("49c2"),a=n("d661"),s=n("c08f"),c={setPageMeta:r,requestComponentInfo:o["a"],requestComponentObserver:a["b"],destroyComponentObserver:a["a"],requestMediaQueryObserver:s["b"],destroyMediaQueryObserver:s["a"]},u=n("493f"),l=n("fa95"),h=n("6149");function d(t){Object.keys(c).forEach((function(e){t(e,c[e])})),t("pageScrollTo",u["c"]),t("loadFontFace",l["a"]),Object(h["a"])(t)}var f=n("b379"),p=new i["a"],v=p.$on.bind(p),m=p.$off.bind(p),g=p.$once.bind(p),_=p.$emit.bind(p);function b(t,e){return v("service."+t,e)}function y(t,e){return m("service."+t,e)}function w(t,e,n){_("service."+t,e,n)}d(b)},3231:function(t,e,n){"use strict";function i(){return plus.navigator.isImmersedStatusbar()?Math.round("iOS"===plus.os.name?plus.navigator.getSafeAreaInsets().top:plus.navigator.getStatusbarHeight()):0}n.d(e,"a",(function(){return o}));var r=n("c80c");function o(){var t=plus.webview.currentWebview(),e=t.getStyle();return e=e&&e.titleNView,e&&"default"===e.type?r["a"]+i():0}},"340d":function(t,e,n){"use strict";n.d(e,"m",(function(){return i})),n.d(e,"f",(function(){return u})),n.d(e,"h",(function(){return l})),n.d(e,"g",(function(){return h})),n.d(e,"e",(function(){return d})),n.d(e,"o",(function(){return f})),n.d(e,"a",(function(){return p})),n.d(e,"j",(function(){return v})),n.d(e,"b",(function(){return g})),n.d(e,"c",(function(){return _})),n.d(e,"n",(function(){return b})),n.d(e,"i",(function(){return y})),n.d(e,"d",(function(){return w})),n.d(e,"l",(function(){return S})),n.d(e,"k",(function(){return k}));var i=!1;try{var r={};Object.defineProperty(r,"passive",{get:function(){i=!0}}),window.addEventListener("test-passive",null,r)}catch(x){}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=/^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;"function"!==typeof atob||atob;var s=Object.prototype.toString,c=Object.prototype.hasOwnProperty;Array.isArray,Object.assign;function u(t){return"function"===typeof t}function l(t){return"string"===typeof t}function h(t){return"[object Object]"===s.call(t)}function d(t,e){return c.call(t,e)}function f(t){return s.call(t).slice(8,-1)}function p(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}function v(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return function(){if(t){for(var i=arguments.length,r=new Array(i),o=0;o0&&(e.__lines__.forEach((function(t){e.removeOverlay(t)})),e.__lines__=[]),t.forEach((function(t){var n=t.color,i=t.width,r=t.points.map((function(t){return new plus.maps.Point(t.longitude,t.latitude)})),o=new plus.maps.Polyline(r);if(n){var a=c(n);o.setStrokeColor(a.color),o.setStrokeOpacity(a.opacity)}i&&o.setLineWidth(i),e.addOverlay(o),e.__lines__.push(o)}))},_addMapCircles:function(t){var e=this.map;e.__circles__.length>0&&(e.__circles__.forEach((function(t){e.removeOverlay(t)})),e.__circles__=[]),t.forEach((function(t){var n=t.latitude,i=t.longitude,r=t.color,o=t.fillColor,a=t.radius,s=t.strokeWidth,u=new plus.maps.Circle(new plus.maps.Point(i,n),a);if(r){var l=c(r);u.setStrokeColor(l.color),u.setStrokeOpacity(l.opacity)}if(o){var h=c(o);u.setFillColor(h.color),u.setFillOpacity(h.opacity)}s&&u.setLineWidth(s),e.addOverlay(u),e.__circles__.push(u)}))},_addMapPolygons:function(t){var e=this.map,n=e.__polygons__;n.forEach((function(t){e.removeOverlay(t)})),n.length=0,t.forEach((function(t){var i=t.points,r=t.strokeWidth,o=t.strokeColor,a=t.fillColor,s=[];i&&i.forEach((function(t){var e=t.latitude,n=t.longitude;s.push(new plus.maps.Point(n,e))}));var u=new plus.maps.Polygon(s);if(o){var l=c(o);u.setStrokeColor(l.color),u.setStrokeOpacity(l.opacity)}if(a){var h=c(a);u.setFillColor(h.color),u.setFillOpacity(h.opacity)}r&&u.setLineWidth(r),e.addOverlay(u),n.push(u)}))}}}}).call(this,n("31d2"))},3596:function(t,e,n){},"36a6":function(t,e,n){},"383e":function(t,e,n){"use strict";n.r(e);var i=n("39bd"),r=n("340d");var o,a,s={name:"Swiper",mixins:[i["a"]],props:{indicatorDots:{type:[Boolean,String],default:!1},vertical:{type:[Boolean,String],default:!1},autoplay:{type:[Boolean,String],default:!1},circular:{type:[Boolean,String],default:!1},interval:{type:[Number,String],default:5e3},duration:{type:[Number,String],default:500},current:{type:[Number,String],default:0},indicatorColor:{type:String,default:""},indicatorActiveColor:{type:String,default:""},previousMargin:{type:String,default:""},nextMargin:{type:String,default:""},currentItemId:{type:String,default:""},skipHiddenItemLayout:{type:[Boolean,String],default:!1},displayMultipleItems:{type:[Number,String],default:1},disableTouch:{type:[Boolean,String],default:!1},navigation:{type:[Boolean,String],default:!1},navigationColor:{type:String,default:"#fff"},navigationActiveColor:{type:String,default:"rgba(53, 53, 53, 0.6)"}},data:function(){return{currentSync:Math.round(this.current)||0,currentItemIdSync:this.currentItemId||"",userTracking:!1,currentChangeSource:"",items:[],isNavigationAuto:!1,hideNavigation:!1,prevDisabled:!1,nextDisabled:!1}},computed:{intervalNumber:function(){var t=Number(this.interval);return isNaN(t)?5e3:t},durationNumber:function(){var t=Number(this.duration);return isNaN(t)?500:t},displayMultipleItemsNumber:function(){var t=Math.round(this.displayMultipleItems);return isNaN(t)?1:t},slidesStyle:function(){var t={};return(this.nextMargin||this.previousMargin)&&(t=this.vertical?{left:0,right:0,top:this._upx2px(this.previousMargin),bottom:this._upx2px(this.nextMargin)}:{top:0,bottom:0,left:this._upx2px(this.previousMargin),right:this._upx2px(this.nextMargin)}),t},slideFrameStyle:function(){var t=Math.abs(100/this.displayMultipleItemsNumber)+"%";return{width:this.vertical?"100%":t,height:this.vertical?t:"100%"}},swiperEnabled:function(){return this.items.length>this.displayMultipleItemsNumber},circularEnabled:function(){return this.circular&&this.swiperEnabled}},watch:{vertical:function(){this._resetLayout()},circular:function(){this._resetLayout()},intervalNumber:function(t){this._timer&&(this._cancelSchedule(),this._scheduleAutoplay())},current:function(t){this._currentCheck()},currentSync:function(t,e){this._currentChanged(t,e),this.$emit("update:current",t),this._setNavigationState()},currentItemId:function(t){this._currentCheck()},currentItemIdSync:function(t){this.$emit("update:currentItemId",t)},displayMultipleItemsNumber:function(){this._resetLayout()},navigation:{immediate:!0,handler:function(t){this.isNavigationAuto="auto"===t,this.hideNavigation=!0!==t||this.isNavigationAuto,this._navigationSwiperAddMouseEvent()}},items:function(){this._setNavigationState()},swiperEnabled:function(t){t||(this.prevDisabled=!0,this.nextDisabled=!0,this.isNavigationAuto&&(this.hideNavigation=!0))}},created:function(){this._invalid=!0,this._viewportPosition=0,this._viewportMoveRatio=1,this._animating=null,this._requestedAnimation=!1,this._userDirectionChecked=!1,this._contentTrackViewport=0,this._contentTrackSpeed=0,this._contentTrackT=0},mounted:function(){var t=this;this._currentCheck(),this.touchtrack(this.$refs.slidesWrapper,"_handleContentTrack",!0),this._resetLayout(),this.$watch((function(){return t.autoplay&&!t.userTracking}),this._inintAutoplay),this._inintAutoplay(this.autoplay&&!this.userTracking),this.$watch("items.length",this._resetLayout),this._navigationSwiperAddMouseEvent()},beforeDestroy:function(){this._cancelSchedule(),cancelAnimationFrame(this._animationFrame)},methods:{_inintAutoplay:function(t){t?this._scheduleAutoplay():this._cancelSchedule()},_currentCheck:function(){var t=-1;if(this.currentItemId)for(var e=0,n=this.items;er/2?1:0)}var o=this.items[t];o&&this._itemReady(o,(function(){var t=n.currentItemIdSync=o.componentInstance.itemId||"";n.$trigger("change",{},{current:n.currentSync,currentItemId:t,source:i})}))},_scheduleAutoplay:function(){var t=this;function e(){t._timer=null,t.currentChangeSource="autoplay",t.circularEnabled?t.currentSync=t._normalizeCurrentValue(t.currentSync+1):t.currentSync=t.currentSync+t.displayMultipleItemsNumbere-this.displayMultipleItemsNumber)return e-this.displayMultipleItemsNumber;return n},_upx2px:function(t){return/\d+[ur]px$/i.test(t)&&t.replace(/\d+[ur]px$/i,(function(t){return"".concat(uni.upx2px(parseFloat(t)),"px")})),t||""},_resetLayout:function(){if(this._isMounted){this._cancelSchedule(),this._endViewportAnimation();for(var t=this.items,e=0;e0&&this._viewportMoveRatio<1||(this._viewportMoveRatio=1)}var r=this._viewportPosition;this._viewportPosition=-2;var o=this.currentSync;o>=0?(this._invalid=!1,this.userTracking?(this._updateViewport(r+o-this._contentTrackViewport),this._contentTrackViewport=o):(this._updateViewport(o),this.autoplay&&this._scheduleAutoplay())):(this._invalid=!0,this._updateViewport(-this.displayMultipleItemsNumber-1))}},_checkCircularLayout:function(t){if(!this._invalid)for(var e=this.items,n=e.length,i=t+this.displayMultipleItemsNumber,r=0;r=this.items.length&&(t-=this.items.length),t=this._transitionStart%1>.5||this._transitionStart<0?t-1:t,this.$trigger("transition",{},{dx:this.vertical?0:t*r.offsetWidth,dy:this.vertical?t*r.offsetHeight:0})},_animateFrameFuncProto:function(){var t=this;if(this._animating){var e=this._animating,n=e.toPos,i=e.acc,r=e.endTime,o=e.source,a=r-Date.now();if(a<=0){this._updateViewport(n),this._animating=null,this._requestedAnimation=!1,this._transitionStart=null;var s=this.items[this.currentSync];s&&this._itemReady(s,(function(){var e=s.componentInstance.itemId||"";t.$trigger("animationfinish",{},{current:t.currentSync,currentItemId:e,source:o})}))}else{var c=i*a*a/2,u=n+c;this._updateViewport(u),this._animationFrame=requestAnimationFrame(this._animateFrameFuncProto.bind(this))}}else this._requestedAnimation=!1},_animateViewport:function(t,e,n){this._cancelViewportAnimation();var i=this.durationNumber,r=this.items.length,o=this._viewportPosition;if(this.circularEnabled)if(n<0){for(;ot;)o-=r}else if(n>0){for(;o>t;)o-=r;for(;o+rt;)o-=r;o+r-tr)&&(i<0?i=-o(-i):i>r&&(i=r+o(i-r)),e._contentTrackSpeed=0),e._updateViewport(i)}var s=this._contentTrackT-n||1;this.vertical?a(-t.dy/this.$refs.slideFrame.offsetHeight,-t.ddy/s):a(-t.dx/this.$refs.slideFrame.offsetWidth,-t.ddx/s)},_handleTrackEnd:function(t){this.userTracking=!1;var e=this._contentTrackSpeed/Math.abs(this._contentTrackSpeed),n=0;!t&&Math.abs(this._contentTrackSpeed)>.2&&(n=.5*e);var i=this._normalizeCurrentValue(this._viewportPosition+n);t?this._updateViewport(this._contentTrackViewport):(this.currentChangeSource="touch",this.currentSync=i,this._animateViewport(i,"touch",0!==n?n:0===i&&this.circularEnabled&&this._viewportPosition>=1?1:0))},_handleContentTrack:function(t){if(!this.disableTouch&&this.items.length&&!this._invalid){if("start"===t.detail.state)return this.userTracking=!0,this._userDirectionChecked=!1,this._handleTrackStart();if("end"===t.detail.state)return this._handleTrackEnd(!1);if("cancel"===t.detail.state)return this._handleTrackEnd(!0);if(this.userTracking){if(!this._userDirectionChecked){this._userDirectionChecked=!0;var e=Math.abs(t.detail.dx),n=Math.abs(t.detail.dy);if((e>=n&&this.vertical||e<=n&&!this.vertical)&&(this.userTracking=!1),!this.userTracking)return void(this.autoplay&&this._scheduleAutoplay())}return this._handleTrackMove(t.detail),!1}}},_onSwiperDotClick:function(t){this._animateViewport(this.currentSync=t,this.currentChangeSource="click",this.circularEnabled?1:0)},_navigationClick:function(t,e,n){if(t.stopPropagation(),!n){var i=this.items.length,r=this.currentSync;switch(e){case"prev":r--,r<0&&this.circularEnabled&&(r=i-1);break;case"next":r++,r>=i&&this.circularEnabled&&(r=0);break}this._onSwiperDotClick(r)}},_navigationMouseMove:function(t){var e=this;clearTimeout(this.hideNavigationTimer);var n=t.clientX,i=t.clientY,r=this.$refs.slidesWrapper.getBoundingClientRect(),o=r.left,a=r.right,s=r.top,c=r.bottom,u=r.width,l=r.height,h=!1;h=this.vertical?!(i-s=t}},render:function(t){var e=this,n=[],i=[];this.$slots.default&&Object(r["d"])(this.$slots.default,t).forEach((function(t){t.componentOptions&&"v-uni-swiper-item"===t.componentOptions.tag&&i.push(t)}));for(var o=function(i,r){var o=e.currentSync;n.push(t("div",{on:{click:function(){return e._onSwiperDotClick(i)}},class:{"uni-swiper-dot":!0,"uni-swiper-dot-active":i=o||i0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return Array.isArray(t[e])&&t[e].length}function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=JSON.parse(JSON.stringify(t));return e}function a(t){var e={},n=t.__vue__;function r(t,n){var r=t.$attrs;for(var o in r)if(o.startsWith("data-")){var a=Object(i["b"])(o.substr(5).toLowerCase()),s=r[o];e[a]=n?s:e[a]||s}}if(n){var a=n;while(a&&a.$el===t)r(a),a=a.$children[0];var s=n.$parent;while(s&&s.$el===t)r(s,!0),s=s.$parent}else e=Object.assign({},t.dataset,t.__uniDataset);return o(e)}},3934:function(t,e,n){},"393d":function(t,e,n){"use strict";if(n.r(e),n.d(e,"upx2px",(function(){return a["h"]})),n.d(e,"navigateTo",(function(){return a["d"]})),n.d(e,"navigateBack",(function(){return a["c"]})),n.d(e,"reLaunch",(function(){return a["e"]})),n.d(e,"redirectTo",(function(){return a["f"]})),n.d(e,"switchTab",(function(){return a["g"]})),n.d(e,"getSystemInfoSync",(function(){return a["b"]})),n.d(e,"canIUse",(function(){return a["a"]})),"undefined"!==typeof window){var i=window.document.currentScript,r=n("a944");i=r(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:r});var o=i&&i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);o&&(n.p=o[1])}var a=n("1c83")},"39bd":function(t,e,n){"use strict";var i=function(t,e,n,i){t.addEventListener(e,(function(t){"function"===typeof n&&!1===n(t)&&(t.preventDefault(),t.stopPropagation())}),{capture:i,passive:!1})};e["a"]={beforeDestroy:function(){document.removeEventListener("mousemove",this.__mouseMoveEventListener),document.removeEventListener("mouseup",this.__mouseUpEventListener)},methods:{touchtrack:function(t,e,n){var r,o,a,s=this,c=this,u=0,l=0,h=0,d=0,f=function(t,n,i,r){if(!1===c[e]({target:t.target,currentTarget:t.currentTarget,preventDefault:t.preventDefault.bind(t),stopPropagation:t.stopPropagation.bind(t),touches:t.touches,changedTouches:t.changedTouches,detail:{state:n,x:i,y:r,dx:i-u,dy:r-l,ddx:i-h,ddy:r-d,timeStamp:t.timeStamp}}))return!1},p=null;i(t,"touchstart",(function(t){if(o=!0,1===t.touches.length&&!p)return p=t,u=h=t.touches[0].pageX,l=d=t.touches[0].pageY,f(t,"start",u,l)})),i(t,"mousedown",(function(t){if(a=!0,!o&&!p)return p=t,u=h=t.pageX,l=d=t.pageY,f(t,"start",u,l)})),i(t,"touchmove",(function(t){if(1===t.touches.length&&p){var e=f(t,"move",t.touches[0].pageX,t.touches[0].pageY);return h=t.touches[0].pageX,d=t.touches[0].pageY,e}}));var v=this.__clickEventListener=function(t){t.preventDefault(),t.stopPropagation()},m=this.__mouseMoveEventListener=function(t){if(!o&&a&&p){!r&&(Math.abs(h-u)>2||Math.abs(d-l)>2)&&(document.addEventListener("click",v,!0),r=!0);var e=f(t,"move",t.pageX,t.pageY);return h=t.pageX,d=t.pageY,e}};document.addEventListener("mousemove",m),i(t,"touchend",(function(t){if(0===t.touches.length&&p)return o=!1,p=null,f(t,"end",t.changedTouches[0].pageX,t.changedTouches[0].pageY)}));var g=this.__mouseUpEventListener=function(t){if(a=!1,!o&&p)return r&&setTimeout((function(){document.removeEventListener("click",s.__clickEventListener,!0),r=!1}),0),p=null,f(t,"end",t.pageX,t.pageY)};document.addEventListener("mouseup",g),i(t,"touchcancel",(function(t){if(p){o=!1;var e=p;return p=null,f(t,n?"cancel":"end",e.touches[0].pageX,e.touches[0].pageY)}}))}}}},"3a3e":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-radio-group",t._g({},t.$listeners),[t._t("default")],2)},r=[],o=n("909e"),a={name:"RadioGroup",mixins:[o["a"],o["e"]],props:{name:{type:String,default:""}},data:function(){return{radioList:[]}},listeners:{"@radio-change":"_changeHandler","@radio-group-update":"_radioGroupUpdateHandler"},mounted:function(){this._resetRadioGroupValue(this.radioList.length-1)},created:function(){this.$dispatch("Form","uni-form-group-update",{type:"add",vm:this})},beforeDestroy:function(){this.$dispatch("Form","uni-form-group-update",{type:"remove",vm:this})},methods:{_changeHandler:function(t,e){var n=this.radioList.indexOf(e);this._resetRadioGroupValue(n,!0),this.$trigger("change",t,{value:e.radioValue})},_radioGroupUpdateHandler:function(t){if("add"===t.type)this.radioList.push(t.vm);else{var e=this.radioList.indexOf(t.vm);this.radioList.splice(e,1)}},_resetRadioGroupValue:function(t,e){var n=this;this.radioList.forEach((function(i,r){r!==t&&(e?n.radioList[r].radioChecked=!1:n.radioList.forEach((function(t,e){r>=e||n.radioList[e].radioChecked&&(n.radioList[r].radioChecked=!1)})))}))},_getFormData:function(){var t={};if(""!==this.name){var e="";this.radioList.forEach((function(t){t.radioChecked&&(e=t.value)})),t.value=e,t.key=this.name}return t}}},s=a,c=(n("01aa"),n("8844")),u=Object(c["a"])(s,i,r,!1,null,null,null);e["default"]=u.exports},"3c5f":function(t,e,n){"use strict";var i=n("df50"),r=n.n(i);r.a},"3e92":function(t,e,n){"use strict";var i=n("d0aa"),r=n.n(i);r.a},4452:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var i=0;function r(t,e,n){var r="".concat(Date.now()).concat(i++),o=t.split(","),a=o[0],s=o[1],c=(a.match(/data:image\/(\S+?);/)||[null,"png"])[1].replace("jpeg","jpg"),u="".concat(r,".").concat(c),l="".concat(e,"/").concat(u),h=e.indexOf("/"),d=e.substring(0,h),f=e.substring(h+1);plus.io.resolveLocalFileSystemURL(d,(function(t){t.getDirectory(f,{create:!0,exclusive:!1},(function(t){t.getFile(u,{create:!0,exclusive:!1},(function(t){t.createWriter((function(t){t.onwrite=function(){n(null,l)},t.onerror=n,t.seek(0),t.writeAsBinary(s)}),n)}),n)}),n)}),n)}},"466b":function(t,e,n){},"48fe":function(t,e,n){},"493c":function(t,e,n){"use strict";var i=n("f5ee"),r=n.n(i);r.a},"493f":function(t,e,n){"use strict";(function(t){n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return c}));var i,r=n("b379");function o(t){t.preventDefault()}function a(t){var e=t.scrollTop,n=t.selector,i=t.duration;if("undefined"===typeof e){var r=document.querySelector(n);if(r){var o=r.getBoundingClientRect(),a=o.top;o.height;e=a+window.pageYOffset}}var s=document.documentElement,c=s.clientHeight,u=s.scrollHeight;function l(t){if(t<=0)window.scrollTo(0,e);else{var n=e-window.scrollY;requestAnimationFrame((function(){window.scrollTo(0,window.scrollY+n/t*10),l(t-10)}))}}e=Math.min(e,u-c),0!==i?window.scrollY!==e&&l(i):s.scrollTop=document.body.scrollTop=e}var s=0;function c(e,n){var o=n.enablePageScroll,a=n.enablePageReachBottom,c=n.onReachBottomDistance,u=n.enableTransparentTitleNView,l=!1,h=!1,d=!0;function f(){var t=document.documentElement.scrollHeight,e=window.innerHeight,n=window.scrollY,i=n>0&&t>e&&n+e+c>=t,r=Math.abs(t-s)>c;return!i||h&&!r?(!i&&h&&(h=!1),!1):(s=t,h=!0,!0)}function p(){var n=getCurrentPages();if(n.length&&n[n.length-1].$page.id===e){var s=window.pageYOffset;o&&Object(r["a"])("onPageScroll",{scrollTop:s},e),u&&t.emit("onPageScroll",{scrollTop:s}),a&&d&&(c()||(i=setTimeout(c,300))),l=!1}function c(){if(f())return Object(r["a"])("onReachBottom",{},e),d=!1,setTimeout((function(){d=!0}),350),!0}}return function(){clearTimeout(i),l||requestAnimationFrame(p),l=!0}}}).call(this,n("31d2"))},"49c2":function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return l}));var i=n("38ce"),r=n("340d"),o=n("96a6"),a=n("0db3");function s(t){var e={};if(t.id&&(e.id=""),t.dataset&&(e.dataset={}),t.rect&&(e.left=0,e.right=0,e.top=0,e.bottom=0),t.size&&(e.width=document.documentElement.clientWidth,e.height=document.documentElement.clientHeight),t.scrollOffset){var n=document.documentElement,i=document.body;e.scrollLeft=n.scrollLeft||i.scrollLeft||0,e.scrollTop=n.scrollTop||i.scrollTop||0,e.scrollHeight=n.scrollHeight||i.scrollHeight||0,e.scrollWidth=n.scrollWidth||i.scrollWidth||0}return e}function c(t,e){var n={},a=Object(o["a"])(),s=a.top;if(e.id&&(n.id=t.id),e.dataset&&(n.dataset=Object(i["a"])(t)),e.rect||e.size){var c=t.getBoundingClientRect();e.rect&&(n.left=c.left,n.right=c.right,n.top=c.top-s,n.bottom=c.bottom-s),e.size&&(n.width=c.width,n.height=c.height)}if(Array.isArray(e.properties)){var u=t.__vue__&&t.__vue__.$props;u&&e.properties.forEach((function(t){"string"===typeof t&&(t=Object(r["b"])(t),null!=u[t]&&(n[t]=u[t]))}))}if(e.scrollOffset&&("UNI-SCROLL-VIEW"===t.tagName&&t.__vue__&&t.__vue__.getScrollPosition?Object.assign(n,t.__vue__.getScrollPosition()):(n.scrollLeft=0,n.scrollTop=0,n.scrollHeight=0,n.scrollWidth=0)),Array.isArray(e.computedStyle)){var l=getComputedStyle(t);e.computedStyle.forEach((function(t){n[t]=l[t]}))}return e.context&&t.__vue__&&t.__vue__._getContextInfo&&(n.context=t.__vue__._getContextInfo()),n}function u(t,e,n,i,r){var o=Object(a["a"])(Object(a["b"])(e,t));if(!o||o&&8===o.nodeType)return i?null:[];if(i){var s=o.matches(n)?o:o.querySelector(n);return s?c(s,r):null}var u=[],l=o.querySelectorAll(n);return l&&l.length&&(u=[].map.call(l,(function(t){return c(t,r)}))),o.matches(n)&&u.unshift(c(o,r)),u}function l(e,n){var i,r=e.reqId,o=e.reqs;if(n._isVue)i=n;else{var a=getCurrentPages(),c=a.find((function(t){return t.$page.id===n}));if(!c)throw new Error("Not Found:Page[".concat(n,"]"));i=c.$vm}var l=[];o.forEach((function(t){var e=t.component,n=t.selector,r=t.single,o=t.fields;0===e?l.push(s(o)):l.push(u(i,e,n,r,o))})),t.publishHandler("onRequestComponentInfo",{reqId:r,res:l})}}).call(this,n("31d2"))},"49c7":function(t,e,n){"use strict";var i=n("07d6"),r=n.n(i);r.a},"4ba6":function(t,e,n){"use strict";function i(t,e,n){return t>e-n&&t0){var u=(-n-Math.sqrt(o))/(2*i),l=(-n+Math.sqrt(o))/(2*i),h=(e-u*t)/(l-u),d=t-h;return{x:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*e+h*n},dx:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*u*e+h*l*n}}}var f=Math.sqrt(4*i*r-n*n)/(2*i),p=-n/2*i,v=t,m=(e-p*t)/f;return{x:function(t){return Math.pow(Math.E,p*t)*(v*Math.cos(f*t)+m*Math.sin(f*t))},dx:function(t){var e=Math.pow(Math.E,p*t),n=Math.cos(f*t),i=Math.sin(f*t);return e*(m*f*n-v*f*i)+p*e*(m*i+v*n)}}},o.prototype.x=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._endPosition+this._solution.x(t):0},o.prototype.dx=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._solution.dx(t):0},o.prototype.setEnd=function(t,e,n){if(n||(n=(new Date).getTime()),t!==this._endPosition||!r(e,.4)){e=e||0;var i=this._endPosition;this._solution&&(r(e,.4)&&(e=this._solution.dx((n-this._startTime)/1e3)),i=this._solution.x((n-this._startTime)/1e3),r(e,.4)&&(e=0),r(i,.4)&&(i=0),i+=this._endPosition),this._solution&&r(i-t,.4)&&r(e,.4)||(this._endPosition=t,this._solution=this._solve(i-this._endPosition,e),this._startTime=n)}},o.prototype.snap=function(t){this._startTime=(new Date).getTime(),this._endPosition=t,this._solution={x:function(){return 0},dx:function(){return 0}}},o.prototype.done=function(t){return t||(t=(new Date).getTime()),i(this.x(),this._endPosition,.4)&&r(this.dx(),.4)},o.prototype.reconfigure=function(t,e,n){this._m=t,this._k=e,this._c=n,this.done()||(this._solution=this._solve(this.x()-this._endPosition,this.dx()),this._startTime=(new Date).getTime())},o.prototype.springConstant=function(){return this._k},o.prototype.damping=function(){return this._c},o.prototype.configuration=function(){function t(t,e){t.reconfigure(1,e,t.damping())}function e(t,e){t.reconfigure(1,t.springConstant(),e)}return[{label:"Spring Constant",read:this.springConstant.bind(this),write:t.bind(this,this),min:100,max:1e3},{label:"Damping",read:this.damping.bind(this),write:e.bind(this,this),min:1,max:500}]}},"4dc6":function(t,e,n){"use strict";var i=n("655d"),r=n.n(i);r.a},"4ead":function(t,e,n){"use strict";var i=n("a004"),r=n.n(i),o=n("38ce"),a=n("340d");function s(t){t.config.errorHandler=function(e,n,i){var r=Object(a["o"])(e);t.util.warn("Error in ".concat(i,': "').concat("Error"===r?e.toString():e,'"'),n);var s="function"===typeof getApp&&getApp();s&&Object(o["b"])(s.$options,"onError")?s.__call_hook("onError",e):console.error(e)};var e=t.config.isReservedTag;t.config.isReservedTag=function(t){return-1!==r.a.indexOf(t)||e(t)},t.config.ignoredElements=r.a;var n=t.config.getTagNamespace,i=["switch","image","text","view"];t.config.getTagNamespace=function(t){return!~i.indexOf(t)&&n(t)}}var c=n("9602"),u=n("95eb"),l=n("d96c");function h(t){Object.defineProperty(t.prototype,"$page",{get:function(){return getCurrentPages()[0].$page}}),t.prototype.$handleVModelEvent=function(t,e){l["b"].sendUIEvent(this._$id,t,{type:"input",target:{value:e}})},t.prototype.$handleViewEvent=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.stop&&t.stopPropagation(),e.prevent&&t.preventDefault();var n=this.$handleEvent(t),i=this._$id,r=t.$origCurrentTarget||t.currentTarget,o=(r===this.$el&&"page"!==this.$options.mpType?"r-":"")+n.options.nid;if("undefined"===typeof o)return console.error("[".concat(i,"] nid not found"));delete n._processed,delete n.mp,delete n.preventDefault,delete n.stopPropagation,delete n.options,delete n.$origCurrentTarget,l["b"].sendUIEvent(i,o,n)}}n("249f"),e["a"]={install:function(t,e){t.prototype._$getRealPath=u["a"],s(t),c["a"].install(t,e),Object(l["a"])(t),h(t)}}},"4ef5":function(t){t.exports=JSON.parse('{"uni.app.quit":"再按一次退出應用","uni.async.error":"連接服務器超時,點擊屏幕重試","uni.showActionSheet.cancel":"取消","uni.showToast.unpaired":"請注意 showToast 與 hideToast 必須配對使用","uni.showLoading.unpaired":"請注意 showLoading 與 hideLoading 必須配對使用","uni.showModal.cancel":"取消","uni.showModal.confirm":"確定","uni.chooseImage.cancel":"取消","uni.chooseImage.sourceType.album":"從相冊選擇","uni.chooseImage.sourceType.camera":"拍攝","uni.chooseVideo.cancel":"取消","uni.chooseVideo.sourceType.album":"從相冊選擇","uni.chooseVideo.sourceType.camera":"拍攝","uni.chooseFile.notUserActivation":"文件選擇器對話框只能在由用戶激活時顯示","uni.previewImage.cancel":"取消","uni.previewImage.button.save":"保存圖像","uni.previewImage.save.success":"保存圖像到相冊成功","uni.previewImage.save.fail":"保存圖像到相冊失敗","uni.setClipboardData.success":"內容已復制","uni.scanCode.title":"掃碼","uni.scanCode.album":"相冊","uni.scanCode.fail":"識別失敗","uni.scanCode.flash.on":"輕觸照亮","uni.scanCode.flash.off":"輕觸關閉","uni.startSoterAuthentication.authContent":"指紋識別中...","uni.startSoterAuthentication.waitingContent":"無法識別","uni.picker.done":"完成","uni.picker.cancel":"取消","uni.video.danmu":"彈幕","uni.video.volume":"音量","uni.button.feedback.title":"問題反饋","uni.button.feedback.send":"發送","uni.chooseLocation.search":"搜索地點","uni.chooseLocation.cancel":"取消"}')},"4f39":function(t,e,n){"use strict";(function(t){function n(t){return n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)} /*! * Vue.js v2.6.11 * (c) 2014-2022 Evan You * Released under the MIT License. - */var i=Object.freeze({});function r(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function a(t){return!0===t}function s(t){return!1===t}function c(t){return"string"===typeof t||"number"===typeof t||"symbol"===n(t)||"boolean"===typeof t}function u(t){return null!==t&&"object"===n(t)}var l=Object.prototype.toString;function h(t){return"[object Object]"===l.call(t)}function d(t){return"[object RegExp]"===l.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function p(t){return o(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function v(t){return null==t?"":Array.isArray(t)||h(t)&&t.toString===l?JSON.stringify(t,null,2):String(t)}function m(t){var e=parseFloat(t);return isNaN(e)?t:e}function g(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}var y=Object.prototype.hasOwnProperty;function w(t,e){return y.call(t,e)}function S(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var k=/-(\w)/g,x=S((function(t){return t.replace(k,(function(t,e){return e?e.toUpperCase():""}))})),C=S((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),T=/\B([A-Z])/g,O=S((function(t){return t.replace(T,"-$1").toLowerCase()}));function $(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function E(t,e){return t.bind(e)}var I=Function.prototype.bind?E:$;function A(t,e){e=e||0;var n=t.length-e,i=new Array(n);while(n--)i[n]=t[n+e];return i}function M(t,e){for(var n in e)t[n]=e[n];return t}function P(t){for(var e={},n=0;n0,it=tt&&tt.indexOf("edge/")>0,rt=(tt&&tt.indexOf("android"),tt&&/iphone|ipad|ipod|ios/.test(tt)||"ios"===Q),ot=(tt&&/chrome\/\d+/.test(tt),tt&&/phantomjs/.test(tt),tt&&tt.match(/firefox\/(\d+)/)),at={}.watch,st=!1;if(K)try{var ct={};Object.defineProperty(ct,"passive",{get:function(){st=!0}}),window.addEventListener("test-passive",null,ct)}catch(Ma){}var ut=function(){return void 0===Z&&(Z=!K&&!J&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),Z},lt=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ht(t){return"function"===typeof t&&/native code/.test(t.toString())}var dt,ft="undefined"!==typeof Symbol&&ht(Symbol)&&"undefined"!==typeof Reflect&&ht(Reflect.ownKeys);dt="undefined"!==typeof Set&&ht(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var pt=j,vt=0,mt=function(){this.id=vt++,this.subs=[]};function gt(t){mt.SharedObject.targetStack.push(t),mt.SharedObject.target=t,mt.target=t}function _t(){mt.SharedObject.targetStack.pop(),mt.SharedObject.target=mt.SharedObject.targetStack[mt.SharedObject.targetStack.length-1],mt.target=mt.SharedObject.target}mt.prototype.addSub=function(t){this.subs.push(t)},mt.prototype.removeSub=function(t){b(this.subs,t)},mt.prototype.depend=function(){mt.SharedObject.target&&mt.SharedObject.target.addDep(this)},mt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(o&&!w(r,"default"))a=!1;else if(""===a||a===O(t)){var c=te(String,r.type);(c<0||s0&&(i=$e(i,(e||"")+"_"+n),Oe(i[0])&&Oe(u)&&(l[s]=St(u.text+i[0].text),i.shift()),l.push.apply(l,i)):c(i)?Oe(u)?l[s]=St(u.text+i):""!==i&&l.push(St(i)):Oe(i)&&Oe(u)?l[s]=St(u.text+i.text):(a(t._isVList)&&o(i.tag)&&r(i.key)&&o(e)&&(i.key="__vlist"+e+"_"+n+"__"),l.push(i)));return l}function Ee(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function Ie(t){var e=Ae(t.$options.inject,t);e&&(Et(!1),Object.keys(e).forEach((function(n){jt(t,n,e[n])})),Et(!0))}function Ae(t,e){if(t){for(var n=Object.create(null),i=ft?Reflect.ownKeys(t):Object.keys(t),r=0;r0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==i&&s===n.$key&&!o&&!n.$hasNormal)return n;for(var c in r={},t)t[c]&&"$"!==c[0]&&(r[c]=Le(e,c,t[c]))}else r={};for(var u in e)u in r||(r[u]=Ne(e,u));return t&&Object.isExtensible(t)&&(t._normalized=r),U(r,"$stable",a),U(r,"$key",s),U(r,"$hasNormal",o),r}function Le(t,e,i){var r=function(){var t=arguments.length?i.apply(null,arguments):i({});return t=t&&"object"===n(t)&&!Array.isArray(t)?[t]:Te(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return i.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Ne(t,e){return function(){return t[e]}}function De(t,e){var n,i,r,a,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),i=0,r=t.length;i1?A(n):n;for(var i=A(arguments,1),r='event handler for "'+t+'"',o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Zn=function(){return Gn.now()})}function Kn(){var t,e;for(qn=Zn(),Wn=!0,zn.sort((function(t,e){return t.id-e.id})),Un=0;UnUn&&zn[n].id>t.id)n--;zn.splice(n+1,0,t)}else zn.push(t);Yn||(Yn=!0,pe(Kn))}}var ni=0,ii=function(t,e,n,i,r){this.vm=t,r&&(t._watcher=this),t._watchers.push(this),i?(this.deep=!!i.deep,this.user=!!i.user,this.lazy=!!i.lazy,this.sync=!!i.sync,this.before=i.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ni,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new dt,this.newDepIds=new dt,this.expression="","function"===typeof e?this.getter=e:(this.getter=q(e),this.getter||(this.getter=j)),this.value=this.lazy?void 0:this.get()};ii.prototype.get=function(){var t;gt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(Ma){if(!this.user)throw Ma;ee(Ma,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&me(t),_t(),this.cleanupDeps()}return t},ii.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},ii.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},ii.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ei(this)},ii.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(Ma){ee(Ma,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},ii.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},ii.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},ii.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||b(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var ri={enumerable:!0,configurable:!0,get:j,set:j};function oi(t,e,n){ri.get=function(){return this[e][n]},ri.set=function(t){this[e][n]=t},Object.defineProperty(t,n,ri)}function ai(t){t._watchers=[];var e=t.$options;e.props&&si(t,e.props),e.methods&&vi(t,e.methods),e.data?ci(t):Pt(t._data={},!0),e.computed&&hi(t,e.computed),e.watch&&e.watch!==at&&mi(t,e.watch)}function si(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[],o=!t.$parent;o||Et(!1);var a=function(o){r.push(o);var a=Gt(o,e,n,t);jt(i,o,a),o in t||oi(t,"_props",o)};for(var s in e)a(s);Et(!0)}function ci(t){var e=t.$options.data;e=t._data="function"===typeof e?ui(e,t):e||{},h(e)||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);while(r--){var o=n[r];0,i&&w(i,o)||W(o)||oi(t,"_data",o)}Pt(e,!0)}function ui(t,e){gt();try{return t.call(e,e)}catch(Ma){return ee(Ma,e,"data()"),{}}finally{_t()}}var li={lazy:!0};function hi(t,e){var n=t._computedWatchers=Object.create(null),i=ut();for(var r in e){var o=e[r],a="function"===typeof o?o:o.get;0,i||(n[r]=new ii(t,a||j,j,li)),r in t||di(t,r,o)}}function di(t,e,n){var i=!ut();"function"===typeof n?(ri.get=i?fi(e):pi(n),ri.set=j):(ri.get=n.get?i&&!1!==n.cache?fi(e):pi(n.get):j,ri.set=n.set||j),Object.defineProperty(t,e,ri)}function fi(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),mt.SharedObject.target&&e.depend(),e.value}}function pi(t){return function(){return t.call(this,this)}}function vi(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?j:I(e[n],t)}function mi(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1)return this;var n=A(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function Ti(t){t.mixin=function(t){return this.options=qt(this.options,t),this}}function Oi(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,i=n.cid,r=t._Ctor||(t._Ctor={});if(r[i])return r[i];var o=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=qt(n.options,t),a["super"]=n,a.options.props&&$i(a),a.options.computed&&Ei(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,z.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=M({},a.options),r[i]=a,a}}function $i(t){var e=t.options.props;for(var n in e)oi(t.prototype,"_props",n)}function Ei(t){var e=t.options.computed;for(var n in e)di(t.prototype,n,e[n])}function Ii(t){z.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&h(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function Ai(t){return t&&(t.Ctor.options.name||t.tag)}function Mi(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Pi(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var o in n){var a=n[o];if(a){var s=Ai(a.componentOptions);s&&!e(s)&&ji(n,o,i,r)}}}function ji(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,b(n,e)}yi(xi),_i(xi),In(xi),jn(xi),bn(xi);var Li=[String,RegExp,Array],Ni={name:"keep-alive",abstract:!0,props:{include:Li,exclude:Li,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)ji(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){Pi(t,(function(t){return Mi(e,t)}))})),this.$watch("exclude",(function(e){Pi(t,(function(t){return!Mi(e,t)}))}))},render:function(){var t=this.$slots.default,e=xn(t),n=e&&e.componentOptions;if(n){var i=Ai(n),r=this,o=r.include,a=r.exclude;if(o&&(!i||!Mi(o,i))||a&&i&&Mi(a,i))return e;var s=this,c=s.cache,u=s.keys,l=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;c[l]?(e.componentInstance=c[l].componentInstance,b(u,l),u.push(l)):(c[l]=e,u.push(l),this.max&&u.length>parseInt(this.max)&&ji(c,u[0],u,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Di={KeepAlive:Ni};function Ri(t){var e={get:function(){return H}};Object.defineProperty(t,"config",e),t.util={warn:pt,extend:M,mergeOptions:qt,defineReactive:jt},t.set=Lt,t.delete=Nt,t.nextTick=pe,t.observable=function(t){return Pt(t),t},t.options=Object.create(null),z.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,M(t.options.components,Di),Ci(t),Ti(t),Oi(t),Ii(t)}Ri(xi),Object.defineProperty(xi.prototype,"$isServer",{get:ut}),Object.defineProperty(xi.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(xi,"FunctionalRenderContext",{value:Je}),xi.version="2.6.11";var Bi=g("style,class"),Fi=g("input,textarea,option,select,progress"),zi=function(t,e,n){return"value"===n&&Fi(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Vi=g("contenteditable,draggable,spellcheck"),Hi=g("events,caret,typing,plaintext-only"),Yi=function(t,e){return Zi(e)||"false"===e?"false":"contenteditable"===t&&Hi(e)?e:"true"},Wi=g("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ui="http://www.w3.org/1999/xlink",Xi=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},qi=function(t){return Xi(t)?t.slice(6,t.length):""},Zi=function(t){return null==t||!1===t};function Gi(t){var e=t.data,n=t,i=t;while(o(i.componentInstance))i=i.componentInstance._vnode,i&&i.data&&(e=Ki(i.data,e));while(o(n=n.parent))n&&n.data&&(e=Ki(e,n.data));return Ji(e.staticClass,e.class)}function Ki(t,e){return{staticClass:Qi(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Ji(t,e){return o(t)||o(e)?Qi(t,tr(e)):""}function Qi(t,e){return t?e?t+" "+e:t:e||""}function tr(t){return Array.isArray(t)?er(t):u(t)?nr(t):"string"===typeof t?t:""}function er(t){for(var e,n="",i=0,r=t.length;i-1?cr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:cr[t]=/HTMLUnknownElement/.test(e.toString())}var lr=g("text,number,password,search,email,tel,url");function hr(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function dr(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function fr(t,e){return document.createElementNS(ir[t],e)}function pr(t){return document.createTextNode(t)}function vr(t){return document.createComment(t)}function mr(t,e,n){t.insertBefore(e,n)}function gr(t,e){t.removeChild(e)}function _r(t,e){t.appendChild(e)}function br(t){return t.parentNode}function yr(t){return t.nextSibling}function wr(t){return t.tagName}function Sr(t,e){t.textContent=e}function kr(t,e){t.setAttribute(e,"")}var xr=Object.freeze({createElement:dr,createElementNS:fr,createTextNode:pr,createComment:vr,insertBefore:mr,removeChild:gr,appendChild:_r,parentNode:br,nextSibling:yr,tagName:wr,setTextContent:Sr,setStyleScope:kr}),Cr={create:function(t,e){Tr(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Tr(t,!0),Tr(e))},destroy:function(t){Tr(t,!0)}};function Tr(t,e){var n=t.data.ref;if(o(n)){var i=t.context,r=t.componentInstance||t.elm,a=i.$refs;e?Array.isArray(a[n])?b(a[n],r):a[n]===r&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(r)<0&&a[n].push(r):a[n]=[r]:a[n]=r}}var Or=new bt("",{},[]),$r=["create","activate","update","remove","destroy"];function Er(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&Ir(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&r(e.asyncFactory.error))}function Ir(t,e){if("input"!==t.tag)return!0;var n,i=o(n=t.data)&&o(n=n.attrs)&&n.type,r=o(n=e.data)&&o(n=n.attrs)&&n.type;return i===r||lr(i)&&lr(r)}function Ar(t,e,n){var i,r,a={};for(i=e;i<=n;++i)r=t[i].key,o(r)&&(a[r]=i);return a}function Mr(t){var e,n,i={},s=t.modules,u=t.nodeOps;for(e=0;e<$r.length;++e)for(i[$r[e]]=[],n=0;nv?(h=r(n[_+1])?null:n[_+1].elm,k(t,h,n,p,_,i)):p>_&&C(e,d,v)}function $(t,e,n,i){for(var r=n;r-1?Ur(t,e,n):Wi(e)?Zi(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Vi(e)?t.setAttribute(e,Yi(e,n)):Xi(e)?Zi(n)?t.removeAttributeNS(Ui,qi(e)):t.setAttributeNS(Ui,e,n):Ur(t,e,n)}function Ur(t,e,n){if(Zi(n))t.removeAttribute(e);else{if(et&&!nt&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function e(n){n.stopImmediatePropagation(),t.removeEventListener("input",e)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var Xr={create:Yr,update:Yr};function qr(t,e){var n=e.elm,i=e.data,a=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(a)||r(a.staticClass)&&r(a.class))&&r(n.__wxsAddClass)&&r(n.__wxsRemoveClass))){var s=Gi(e),c=n._transitionClasses;if(o(c)&&(s=Qi(s,tr(c))),Array.isArray(n.__wxsRemoveClass)&&n.__wxsRemoveClass.length){var u=s.split(/\s+/);n.__wxsRemoveClass.forEach((function(t){var e=u.findIndex((function(e){return e===t}));-1!==e&&u.splice(e,1)})),s=u.join(" "),n.__wxsRemoveClass.length=0}if(n.__wxsAddClass){var l=s.split(/\s+/).concat(n.__wxsAddClass.split(/\s+/)),h=Object.create(null);l.forEach((function(t){t&&(h[t]=1)})),s=Object.keys(h).join(" ")}var d=e.context,f=d.$options.mpOptions&&d.$options.mpOptions.externalClasses;Array.isArray(f)&&f.forEach((function(t){var e=d[x(t)];e&&(s=s.replace(t,e))})),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Zr,Gr={create:qr,update:qr},Kr="__r",Jr="__c";function Qr(t){if(o(t[Kr])){var e=et?"change":"input";t[e]=[].concat(t[Kr],t[e]||[]),delete t[Kr]}o(t[Jr])&&(t.change=[].concat(t[Jr],t.change||[]),delete t[Jr])}function to(t,e,n){var i=Zr;return function r(){var o=e.apply(null,arguments);null!==o&&io(t,r,n,i)}}var eo=ae&&!(ot&&Number(ot[1])<=53);function no(t,e,n,i){if(eo){var r=qn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Zr.addEventListener(t,e,st?{capture:n,passive:i}:n)}function io(t,e,n,i){(i||Zr).removeEventListener(t,e._wrapper||e,n)}function ro(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},i=t.data.on||{};Zr=e.elm,Qr(n),ye(n,i,no,io,to,e.context),Zr=void 0}}var oo,ao={create:ro,update:ro};function so(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in o(c.__ob__)&&(c=e.data.domProps=M({},c)),s)n in c||(a[n]="");for(n in c){if(i=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=i;var u=r(i)?"":String(i);co(a,u)&&(a.value=u)}else if("innerHTML"===n&&or(a.tagName)&&r(a[["inner", "HTML"].join("")])){oo=oo||document.createElement("div"),oo[["inner", "HTML"].join("")]=""+i+"";var l=oo.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(l.firstChild)a.appendChild(l.firstChild)}else if(i!==s[n])try{a[n]=i}catch(Ma){}}}}function co(t,e){return!t.composing&&("OPTION"===t.tagName||uo(t,e)||lo(t,e))}function uo(t,e){var n=!0;try{n=document.activeElement!==t}catch(Ma){}return n&&t.value!==e}function lo(t,e){var n=t.value,i=t._vModifiers;if(o(i)){if(i.number)return m(n)!==m(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}var ho={create:so,update:so},fo=S((function(t){var e={},n=/;(?![^(]*\))/g,i=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(i);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function po(t){var e=vo(t.style);return t.staticStyle?M(t.staticStyle,e):e}function vo(t){return Array.isArray(t)?P(t):"string"===typeof t?fo(t):t}function mo(t,e){var n,i={};if(e){var r=t;while(r.componentInstance)r=r.componentInstance._vnode,r&&r.data&&(n=po(r.data))&&M(i,n)}(n=po(t.data))&&M(i,n);var o=t;while(o=o.parent)o.data&&(n=po(o.data))&&M(i,n);return i}var go,_o=/^--/,bo=/\s*!important$/,yo=/\b([+-]?\d+(\.\d+)?)[r|u]px\b/g,wo=function(t){return"string"===typeof t?t.replace(yo,(function(t,e){return uni.upx2px(e)+"px"})):t},So=/url\(\s*['"](.+?\.(jpg|gif|png))['"]\s*\)/,ko=/url\(\s*([a-zA-Z0-9\.\-\_\/]+?\.(jpg|gif|png))\s*\)/,xo=function(t,e){if("string"===typeof t&&-1!==t.indexOf("url(")){var n=t.match(So)||t.match(ko);n&&3===n.length&&(t=t.replace(n[1],e._$getRealPath(n[1])))}return t},Co=function(t,e,n,i){if(i&&i._$getRealPath&&n&&(n=xo(n,i)),_o.test(e))t.style.setProperty(e,n);else if(bo.test(n))t.style.setProperty(O(e),n.replace(bo,""),"important");else{var r=Oo(e);if(Array.isArray(n))for(var o=0,a=n.length;o-1?e.split(Io).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Mo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Io).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";while(n.indexOf(i)>=0)n=n.replace(i," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Po(t){if(t){if("object"===n(t)){var e={};return!1!==t.css&&M(e,jo(t.name||"v")),M(e,t),e}return"string"===typeof t?jo(t):void 0}}var jo=S((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),Lo=K&&!nt,No="transition",Do="animation",Ro="transition",Bo="transitionend",Fo="animation",zo="animationend";Lo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ro="WebkitTransition",Bo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Fo="WebkitAnimation",zo="webkitAnimationEnd"));var Vo=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Ho(t){Vo((function(){Vo(t)}))}function Yo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Ao(t,e))}function Wo(t,e){t._transitionClasses&&b(t._transitionClasses,e),Mo(t,e)}function Uo(t,e,n){var i=qo(t,e),r=i.type,o=i.timeout,a=i.propCount;if(!r)return n();var s=r===No?Bo:zo,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n=No,l=a,h=o.length):e===Do?u>0&&(n=Do,l=u,h=c.length):(l=Math.max(a,u),n=l>0?a>u?No:Do:null,h=n?n===No?o.length:c.length:0);var d=n===No&&Xo.test(i[Ro+"Property"]);return{type:n,timeout:l,propCount:h,hasTransform:d}}function Zo(t,e){while(t.length1}function ea(t,e){!0!==e.data.show&&Ko(e)}var na=K?{create:ea,activate:ea,remove:function(t,e){!0!==t.data.show?Jo(t,e):e()}}:{},ia=[Hr,Xr,Gr,ao,ho,Eo,na],ra=ia.concat(Fr),oa=Mr({nodeOps:xr,modules:ra});nt&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&fa(t,"input")}));var aa={inserted:function(t,e,n,i){"select"===n.tag?(i.elm&&!i.elm._vOptions?we(n,"postpatch",(function(){aa.componentUpdated(t,e,n)})):sa(t,e,n.context),t._vOptions=[].map.call(t.options,la)):("textarea"===n.tag||lr(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",ha),t.addEventListener("compositionend",da),t.addEventListener("change",da),nt&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){sa(t,e,n.context);var i=t._vOptions,r=t._vOptions=[].map.call(t.options,la);if(r.some((function(t,e){return!D(t,i[e])}))){var o=t.multiple?e.value.some((function(t){return ua(t,r)})):e.value!==e.oldValue&&ua(e.value,r);o&&fa(t,"change")}}}};function sa(t,e,n){ca(t,e,n),(et||it)&&setTimeout((function(){ca(t,e,n)}),0)}function ca(t,e,n){var i=e.value,r=t.multiple;if(!r||Array.isArray(i)){for(var o,a,s=0,c=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(D(la(a),i))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function ua(t,e){return e.every((function(e){return!D(e,t)}))}function la(t){return"_value"in t?t._value:t.value}function ha(t){t.target.composing=!0}function da(t){t.target.composing&&(t.target.composing=!1,fa(t.target,"input"))}function fa(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function pa(t){return!t.componentInstance||t.data&&t.data.transition?t:pa(t.componentInstance._vnode)}var va={bind:function(t,e,n){var i=e.value;n=pa(n);var r=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,Ko(n,(function(){t.style.display=o}))):t.style.display=i?o:"none"},update:function(t,e,n){var i=e.value,r=e.oldValue;if(!i!==!r){n=pa(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,i?Ko(n,(function(){t.style.display=t.__vOriginalDisplay})):Jo(n,(function(){t.style.display="none"}))):t.style.display=i?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}},ma={model:aa,show:va},ga={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function _a(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?_a(xn(e.children)):t}function ba(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var o in r)e[x(o)]=r[o];return e}function ya(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function wa(t){while(t=t.parent)if(t.data.transition)return!0}function Sa(t,e){return e.key===t.key&&e.tag===t.tag}var ka=function(t){return t.tag||kn(t)},xa=function(t){return"show"===t.name},Ca={name:"transition",props:ga,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(ka),n.length)){0;var i=this.mode;0;var r=n[0];if(wa(this.$vnode))return r;var o=_a(r);if(!o)return r;if(this._leaving)return ya(t,r);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:c(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=ba(this),u=this._vnode,l=_a(u);if(o.data.directives&&o.data.directives.some(xa)&&(o.data.show=!0),l&&l.data&&!Sa(o,l)&&!kn(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var h=l.data.transition=M({},s);if("out-in"===i)return this._leaving=!0,we(h,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),ya(t,r);if("in-out"===i){if(kn(o))return u;var d,f=function(){d()};we(s,"afterEnter",f),we(s,"enterCancelled",f),we(h,"delayLeave",(function(t){d=t}))}}return r}}},Ta=M({tag:String,moveClass:String},ga);delete Ta.mode;var Oa={props:Ta,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Mn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],a=ba(this),s=0;s>>24,v>>>=S,m-=S,S=w>>>16&255,0===S)$[s++]=65535&w;else{if(!(16&S)){if(0===(64&S)){w=g[(65535&w)+(v&(1<>>=S,m-=S),m<15&&(v+=O[o++]<>>24,v>>>=S,m-=S,S=w>>>16&255,!(16&S)){if(0===(64&S)){w=_[(65535&w)+(v&(1<l){t.msg="invalid distance too far back",n.mode=i;break t}if(v>>>=S,m-=S,S=s-c,x>S){if(S=x-S,S>d&&n.sane){t.msg="invalid distance too far back",n.mode=i;break t}if(C=0,T=p,0===f){if(C+=h-S,S2)$[s++]=T[C++],$[s++]=T[C++],$[s++]=T[C++],k-=3;k&&($[s++]=T[C++],k>1&&($[s++]=T[C++]))}else{C=s-x;do{$[s++]=$[C++],$[s++]=$[C++],$[s++]=$[C++],k-=3}while(k>2);k&&($[s++]=$[C++],k>1&&($[s++]=$[C++]))}break}}break}}while(o>3,o-=k,m-=k<<3,v&=(1<4?9:0)}function et(t){var e=t.length;while(--e>=0)t[e]=0}function nt(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(r.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function it(t,e){o._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,nt(t.strm)}function rt(t,e){t.pending_buf[t.pending++]=e}function ot(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function at(t,e,n,i){var o=t.avail_in;return o>i&&(o=i),0===o?0:(t.avail_in-=o,r.arraySet(e,t.input,t.next_in,o,n),1===t.state.wrap?t.adler=a(t.adler,e,o,n):2===t.state.wrap&&(t.adler=s(t.adler,e,o,n)),t.next_in+=o,t.total_in+=o,o)}function st(t,e){var n,i,r=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,c=t.strstart>t.w_size-B?t.strstart-(t.w_size-B):0,u=t.window,l=t.w_mask,h=t.prev,d=t.strstart+R,f=u[o+a-1],p=u[o+a];t.prev_length>=t.good_match&&(r>>=2),s>t.lookahead&&(s=t.lookahead);do{if(n=e,u[n+a]===p&&u[n+a-1]===f&&u[n]===u[o]&&u[++n]===u[o+1]){o+=2,n++;do{}while(u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&u[++o]===u[++n]&&oa){if(t.match_start=e,a=i,i>=s)break;f=u[o+a-1],p=u[o+a]}}}while((e=h[e&l])>c&&0!==--r);return a<=t.lookahead?a:t.lookahead}function ct(t){var e,n,i,o,a,s=t.w_size;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-B)){r.arraySet(t.window,t.window,s,s,0),t.match_start-=s,t.strstart-=s,t.block_start-=s,n=t.hash_size,e=n;do{i=t.head[--e],t.head[e]=i>=s?i-s:0}while(--n);n=s,e=n;do{i=t.prev[--e],t.prev[e]=i>=s?i-s:0}while(--n);o+=s}if(0===t.strm.avail_in)break;if(n=at(t.strm,t.window,t.strstart+t.lookahead,o),t.lookahead+=n,t.lookahead+t.insert>=D){a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(ct(t),0===t.lookahead&&e===u)return q;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,it(t,!1),0===t.strm.avail_out))return q;if(t.strstart-t.block_start>=t.w_size-B&&(it(t,!1),0===t.strm.avail_out))return q}return t.insert=0,e===d?(it(t,!0),0===t.strm.avail_out?G:K):(t.strstart>t.block_start&&(it(t,!1),t.strm.avail_out),q)}function lt(t,e){for(var n,i;;){if(t.lookahead=D&&(t.ins_h=(t.ins_h<=D)if(i=o._tr_tally(t,t.strstart-t.match_start,t.match_length-D),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=D){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=D&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=D-1)),t.prev_length>=D&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-D,i=o._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-D),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=(t.ins_h<=D&&t.strstart>0&&(r=t.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){a=t.strstart+R;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&rt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=D?(n=o._tr_tally(t,1,t.match_length-D),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(it(t,!1),0===t.strm.avail_out))return q}return t.insert=0,e===d?(it(t,!0),0===t.strm.avail_out?G:K):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?q:Z}function ft(t,e){for(var n;;){if(0===t.lookahead&&(ct(t),0===t.lookahead)){if(e===u)return q;break}if(t.match_length=0,n=o._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(it(t,!1),0===t.strm.avail_out))return q}return t.insert=0,e===d?(it(t,!0),0===t.strm.avail_out?G:K):t.last_lit&&(it(t,!1),0===t.strm.avail_out)?q:Z}function pt(t,e,n,i,r){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=r}function vt(t){t.window_size=2*t.w_size,et(t.head),t.max_lazy_match=i[t.level].max_lazy,t.good_match=i[t.level].good_length,t.nice_match=i[t.level].nice_length,t.max_chain_length=i[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=D-1,t.match_available=0,t.ins_h=0}function mt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=T,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(2*L),this.dyn_dtree=new r.Buf16(2*(2*P+1)),this.bl_tree=new r.Buf16(2*(2*j+1)),et(this.dyn_ltree),et(this.dyn_dtree),et(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(N+1),this.heap=new r.Buf16(2*M+1),et(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*M+1),et(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function gt(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=C,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?z:U,t.adler=2===e.wrap?0:1,e.last_flush=u,o._tr_init(e),p):Q(t,m)}function _t(t){var e=gt(t);return e===p&&vt(t.state),e}function bt(t,e){return t&&t.state?2!==t.state.wrap?m:(t.state.gzhead=e,p):m}function yt(t,e,n,i,o,a){if(!t)return m;var s=1;if(e===b&&(e=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),o<1||o>O||n!==T||i<8||i>15||e<0||e>9||a<0||a>k)return Q(t,m);8===i&&(i=9);var c=new mt;return t.state=c,c.strm=t,c.wrap=s,c.gzhead=null,c.w_bits=i,c.w_size=1<f||e<0)return t?Q(t,m):m;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||r.status===X&&e!==d)return Q(t,0===t.avail_out?_:m);if(r.strm=t,n=r.last_flush,r.last_flush=e,r.status===z)if(2===r.wrap)t.adler=0,rt(r,31),rt(r,139),rt(r,8),r.gzhead?(rt(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),rt(r,255&r.gzhead.time),rt(r,r.gzhead.time>>8&255),rt(r,r.gzhead.time>>16&255),rt(r,r.gzhead.time>>24&255),rt(r,9===r.level?2:r.strategy>=w||r.level<2?4:0),rt(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(rt(r,255&r.gzhead.extra.length),rt(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=s(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=V):(rt(r,0),rt(r,0),rt(r,0),rt(r,0),rt(r,0),rt(r,9===r.level?2:r.strategy>=w||r.level<2?4:0),rt(r,J),r.status=U);else{var g=T+(r.w_bits-8<<4)<<8,b=-1;b=r.strategy>=w||r.level<2?0:r.level<6?1:6===r.level?2:3,g|=b<<6,0!==r.strstart&&(g|=F),g+=31-g%31,r.status=U,ot(r,g),0!==r.strstart&&(ot(r,t.adler>>>16),ot(r,65535&t.adler)),t.adler=1}if(r.status===V)if(r.gzhead.extra){a=r.pending;while(r.gzindex<(65535&r.gzhead.extra.length)){if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),nt(t),a=r.pending,r.pending===r.pending_buf_size))break;rt(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++}r.gzhead.hcrc&&r.pending>a&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=H)}else r.status=H;if(r.status===H)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),nt(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindexa&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.gzindex=0,r.status=Y)}else r.status=Y;if(r.status===Y)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),nt(t),a=r.pending,r.pending===r.pending_buf_size)){c=1;break}c=r.gzindexa&&(t.adler=s(t.adler,r.pending_buf,r.pending-a,a)),0===c&&(r.status=W)}else r.status=W;if(r.status===W&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&nt(t),r.pending+2<=r.pending_buf_size&&(rt(r,255&t.adler),rt(r,t.adler>>8&255),t.adler=0,r.status=U)):r.status=U),0!==r.pending){if(nt(t),0===t.avail_out)return r.last_flush=-1,p}else if(0===t.avail_in&&tt(e)<=tt(n)&&e!==d)return Q(t,_);if(r.status===X&&0!==t.avail_in)return Q(t,_);if(0!==t.avail_in||0!==r.lookahead||e!==u&&r.status!==X){var y=r.strategy===w?ft(r,e):r.strategy===S?dt(r,e):i[r.level].func(r,e);if(y!==G&&y!==K||(r.status=X),y===q||y===G)return 0===t.avail_out&&(r.last_flush=-1),p;if(y===Z&&(e===l?o._tr_align(r):e!==f&&(o._tr_stored_block(r,0,0,!1),e===h&&(et(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),nt(t),0===t.avail_out))return r.last_flush=-1,p}return e!==d?p:r.wrap<=0?v:(2===r.wrap?(rt(r,255&t.adler),rt(r,t.adler>>8&255),rt(r,t.adler>>16&255),rt(r,t.adler>>24&255),rt(r,255&t.total_in),rt(r,t.total_in>>8&255),rt(r,t.total_in>>16&255),rt(r,t.total_in>>24&255)):(ot(r,t.adler>>>16),ot(r,65535&t.adler)),nt(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?p:v)}function kt(t){var e;return t&&t.state?(e=t.state.status,e!==z&&e!==V&&e!==H&&e!==Y&&e!==W&&e!==U&&e!==X?Q(t,m):(t.state=null,e===U?Q(t,g):p)):m}function xt(t,e){var n,i,o,s,c,u,l,h,d=e.length;if(!t||!t.state)return m;if(n=t.state,s=n.wrap,2===s||1===s&&n.status!==z||n.lookahead)return m;1===s&&(t.adler=a(t.adler,e,d,0)),n.wrap=0,d>=n.w_size&&(0===s&&(et(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new r.Buf8(n.w_size),r.arraySet(h,e,d-n.w_size,n.w_size,0),e=h,d=n.w_size),c=t.avail_in,u=t.next_in,l=t.input,t.avail_in=d,t.next_in=0,t.input=e,ct(n);while(n.lookahead>=D){i=n.strstart,o=n.lookahead-(D-1);do{n.ins_h=(n.ins_h< should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab")}}},l=u,h=(n("9848"),n("8844")),d=Object(h["a"])(l,i,r,!1,null,null,null);e["default"]=d.exports},"5e27":function(t,e,n){"use strict";var i=n("2d10"),r=n.n(i);r.a},6140:function(t,e,n){},6149:function(t,e,n){"use strict";(function(t,i){n.d(e,"a",(function(){return f}));var r=n("340d"),o=n("0372"),a=n("493f"),s=n("005f"),c=n("0834"),u=!!r["l"]&&{passive:!1};function l(e){var n=e.statusbarHeight,i=e.windowTop,r=e.windowBottom;if(t.__WINDOW_TOP=i,t.__WINDOW_BOTTOM=r,uni.canIUse("css.var")){var o=document.documentElement.style;o.setProperty("--window-left","0px"),o.setProperty("--window-right","0px"),o.setProperty("--window-top",i+"px"),o.setProperty("--window-bottom",r+"px"),o.setProperty("--status-bar-height",n+"px")}}function h(t,e){var n=t.locale,i=t.statusbarHeight,r=t.windowTop,s=t.windowBottom,c=t.disableScroll,h=t.onPageScroll,d=t.onPageReachBottom,f=t.onReachBottomDistance;Object(o["c"])(n),l({statusbarHeight:i,windowTop:r,windowBottom:s}),c?document.addEventListener("touchmove",a["b"],u):(h||d)&&requestAnimationFrame((function(){document.addEventListener("scroll",Object(a["a"])(e,{enablePageScroll:h,enablePageReachBottom:d,onReachBottomDistance:f}))}))}function d(){i.publishHandler("webviewReady")}function f(t){t(c["m"],d),t(s["a"],h),t(c["f"],o["c"])}}).call(this,n("0ee4"),n("31d2"))},6183:function(t,e,n){},"62cb":function(t,e,n){},"63b1":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-canvas",t._g({attrs:{"canvas-id":t.canvasId,"disable-scroll":t.disableScroll}},t._listeners),[n("canvas",{ref:"canvas",attrs:{width:"300",height:"150"}}),n("div",{staticStyle:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden"}},[t._t("default")],2),n("v-uni-resize-sensor",{ref:"sensor",on:{resize:t._resize}})],1)},r=[],o=n("89b6"),a=o["a"],s=(n("ebc5"),n("8844")),c=Object(s["a"])(a,i,r,!1,null,null,null);e["default"]=c.exports},"655d":function(t,e,n){},"65ce":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-movable-view",t._g({},t.$listeners),[n("v-uni-resize-sensor",{on:{resize:t.setParent}}),t._t("default")],2)},r=[],o=n("39bd");function a(t,e,n){return t>e-n&&tthis._t&&(t=this._t,this._lastDt=t);var e=this._x_v*t+.5*this._x_a*Math.pow(t,2)+this._x_s,n=this._y_v*t+.5*this._y_a*Math.pow(t,2)+this._y_s;return(this._x_a>0&&ethis._endPositionX)&&(e=this._endPositionX),(this._y_a>0&&nthis._endPositionY)&&(n=this._endPositionY),{x:e,y:n}},u.prototype.ds=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),t>this._t&&(t=this._t),{dx:this._x_v+this._x_a*t,dy:this._y_v+this._y_a*t}},u.prototype.delta=function(){return{x:-1.5*Math.pow(this._x_v,2)/this._x_a||0,y:-1.5*Math.pow(this._y_v,2)/this._y_a||0}},u.prototype.dt=function(){return-this._x_v/this._x_a},u.prototype.done=function(){var t=a(this.s().x,this._endPositionX)||a(this.s().y,this._endPositionY)||this._lastDt===this._t;return this._lastDt=null,t},u.prototype.setEnd=function(t,e){this._endPositionX=t,this._endPositionY=e},u.prototype.reconfigure=function(t,e){this._m=t,this._f=1e3*e},l.prototype._solve=function(t,e){var n=this._c,i=this._m,r=this._k,o=n*n-4*i*r;if(0===o){var a=-n/(2*i),s=t,c=e/(a*t);return{x:function(t){return(s+c*t)*Math.pow(Math.E,a*t)},dx:function(t){var e=Math.pow(Math.E,a*t);return a*(s+c*t)*e+c*e}}}if(o>0){var u=(-n-Math.sqrt(o))/(2*i),l=(-n+Math.sqrt(o))/(2*i),h=(e-u*t)/(l-u),d=t-h;return{x:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*e+h*n},dx:function(t){var e,n;return t===this._t&&(e=this._powER1T,n=this._powER2T),this._t=t,e||(e=this._powER1T=Math.pow(Math.E,u*t)),n||(n=this._powER2T=Math.pow(Math.E,l*t)),d*u*e+h*l*n}}}var f=Math.sqrt(4*i*r-n*n)/(2*i),p=-n/2*i,v=t,m=(e-p*t)/f;return{x:function(t){return Math.pow(Math.E,p*t)*(v*Math.cos(f*t)+m*Math.sin(f*t))},dx:function(t){var e=Math.pow(Math.E,p*t),n=Math.cos(f*t),i=Math.sin(f*t);return e*(m*f*n-v*f*i)+p*e*(m*i+v*n)}}},l.prototype.x=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._endPosition+this._solution.x(t):0},l.prototype.dx=function(t){return void 0===t&&(t=((new Date).getTime()-this._startTime)/1e3),this._solution?this._solution.dx(t):0},l.prototype.setEnd=function(t,e,n){if(n||(n=(new Date).getTime()),t!==this._endPosition||!s(e,.1)){e=e||0;var i=this._endPosition;this._solution&&(s(e,.1)&&(e=this._solution.dx((n-this._startTime)/1e3)),i=this._solution.x((n-this._startTime)/1e3),s(e,.1)&&(e=0),s(i,.1)&&(i=0),i+=this._endPosition),this._solution&&s(i-t,.1)&&s(e,.1)||(this._endPosition=t,this._solution=this._solve(i-this._endPosition,e),this._startTime=n)}},l.prototype.snap=function(t){this._startTime=(new Date).getTime(),this._endPosition=t,this._solution={x:function(){return 0},dx:function(){return 0}}},l.prototype.done=function(t){return t||(t=(new Date).getTime()),a(this.x(),this._endPosition,.1)&&s(this.dx(),.1)},l.prototype.reconfigure=function(t,e,n){this._m=t,this._k=e,this._c=n,this.done()||(this._solution=this._solve(this.x()-this._endPosition,this.dx()),this._startTime=(new Date).getTime())},l.prototype.springConstant=function(){return this._k},l.prototype.damping=function(){return this._c},l.prototype.configuration=function(){function t(t,e){t.reconfigure(1,e,t.damping())}function e(t,e){t.reconfigure(1,t.springConstant(),e)}return[{label:"Spring Constant",read:this.springConstant.bind(this),write:t.bind(this,this),min:100,max:1e3},{label:"Damping",read:this.damping.bind(this),write:e.bind(this,this),min:1,max:500}]},h.prototype.setEnd=function(t,e,n,i){var r=(new Date).getTime();this._springX.setEnd(t,i,r),this._springY.setEnd(e,i,r),this._springScale.setEnd(n,i,r),this._startTime=r},h.prototype.x=function(){var t=((new Date).getTime()-this._startTime)/1e3;return{x:this._springX.x(t),y:this._springY.x(t),scale:this._springScale.x(t)}},h.prototype.done=function(){var t=(new Date).getTime();return this._springX.done(t)&&this._springY.done(t)&&this._springScale.done(t)},h.prototype.reconfigure=function(t,e,n){this._springX.reconfigure(t,e,n),this._springY.reconfigure(t,e,n),this._springScale.reconfigure(t,e,n)};var d=n("9ac0"),f=!1;function p(t){f||(f=!0,requestAnimationFrame((function(){t(),f=!1})))}function v(t,e){if(t===e)return 0;var n=t.offsetLeft;return t.offsetParent?n+=v(t.offsetParent,e):0}function m(t,e){if(t===e)return 0;var n=t.offsetTop;return t.offsetParent?n+=m(t.offsetParent,e):0}function g(t,e){return+((1e3*t-1e3*e)/1e3).toFixed(1)}function _(t,e,n){var i=function(t){t&&t.id&&cancelAnimationFrame(t.id),t&&(t.cancelled=!0)},r={id:0,cancelled:!1};function o(e,n,i,r){if(!e||!e.cancelled){i(n);var a=t.done();a||e.cancelled||(e.id=requestAnimationFrame(o.bind(null,e,n,i,r))),a&&r&&r(n)}}return o(r,t,e,n),{cancel:i.bind(null,r),model:t}}var b={name:"MovableView",mixins:[o["a"]],props:{direction:{type:String,default:"none"},inertia:{type:[Boolean,String],default:!1},outOfBounds:{type:[Boolean,String],default:!1},x:{type:[Number,String],default:0},y:{type:[Number,String],default:0},damping:{type:[Number,String],default:20},friction:{type:[Number,String],default:2},disabled:{type:[Boolean,String],default:!1},scale:{type:[Boolean,String],default:!1},scaleMin:{type:[Number,String],default:.5},scaleMax:{type:[Number,String],default:10},scaleValue:{type:[Number,String],default:1},animation:{type:[Boolean,String],default:!0}},data:function(){return{xSync:this._getPx(this.x),ySync:this._getPx(this.y),scaleValueSync:Number(this.scaleValue)||1,width:0,height:0,minX:0,minY:0,maxX:0,maxY:0}},computed:{dampingNumber:function(){var t=Number(this.damping);return isNaN(t)?20:t},frictionNumber:function(){var t=Number(this.friction);return isNaN(t)||t<=0?2:t},scaleMinNumber:function(){var t=Number(this.scaleMin);return isNaN(t)?.5:t},scaleMaxNumber:function(){var t=Number(this.scaleMax);return isNaN(t)?10:t},xMove:function(){return"all"===this.direction||"horizontal"===this.direction},yMove:function(){return"all"===this.direction||"vertical"===this.direction}},watch:{x:function(t){this.xSync=this._getPx(t)},xSync:function(t){this._setX(t)},y:function(t){this.ySync=this._getPx(t)},ySync:function(t){this._setY(t)},disabled:function(){this.__handleTouchStart()},scaleValue:function(t){this.scaleValueSync=Number(t)||0},scaleValueSync:function(t){this._setScaleValue(t)},scaleMinNumber:function(){this._setScaleMinOrMax()},scaleMaxNumber:function(){this._setScaleMinOrMax()}},created:function(){this._offset={x:0,y:0},this._scaleOffset={x:0,y:0},this._translateX=0,this._translateY=0,this._scale=1,this._oldScale=1,this._STD=new h(1,9*Math.pow(this.dampingNumber,2)/40,this.dampingNumber),this._friction=new u(1,this.frictionNumber),this._declineX=new c,this._declineY=new c,this.__touchInfo={historyX:[0,0],historyY:[0,0],historyT:[0,0]}},mounted:function(){this.touchtrack(this.$el,"_onTrack"),this.setParent(),this._friction.reconfigure(1,this.frictionNumber),this._STD.reconfigure(1,9*Math.pow(this.dampingNumber,2)/40,this.dampingNumber),this.$el.style.transformOrigin="center",Object(d["b"])()},methods:{_getPx:function(t){return/\d+[ur]px$/i.test(t)?uni.upx2px(parseFloat(t)):Number(t)||0},_setX:function(t){if(this.xMove){if(t+this._scaleOffset.x===this._translateX)return this._translateX;this._SFA&&this._SFA.cancel(),this._animationTo(t+this._scaleOffset.x,this.ySync+this._scaleOffset.y,this._scale)}return t},_setY:function(t){if(this.yMove){if(t+this._scaleOffset.y===this._translateY)return this._translateY;this._SFA&&this._SFA.cancel(),this._animationTo(this.xSync+this._scaleOffset.x,t+this._scaleOffset.y,this._scale)}return t},_setScaleMinOrMax:function(){if(!this.scale)return!1;this._updateScale(this._scale,!0),this._updateOldScale(this._scale)},_setScaleValue:function(t){return!!this.scale&&(t=this._adjustScale(t),this._updateScale(t,!0),this._updateOldScale(t),t)},__handleTouchStart:function(){this._isScaling||this.disabled||(Object(d["a"])({disable:!0}),this._FA&&this._FA.cancel(),this._SFA&&this._SFA.cancel(),this.__touchInfo.historyX=[0,0],this.__touchInfo.historyY=[0,0],this.__touchInfo.historyT=[0,0],this.xMove&&(this.__baseX=this._translateX),this.yMove&&(this.__baseY=this._translateY),this.$el.style.willChange="transform",this._checkCanMove=null,this._firstMoveDirection=null,this._isTouching=!0)},__handleTouchMove:function(t){var e=this;if(!this._isScaling&&!this.disabled&&this._isTouching){var n=this._translateX,i=this._translateY;if(null===this._firstMoveDirection&&(this._firstMoveDirection=Math.abs(t.detail.dx/t.detail.dy)>1?"htouchmove":"vtouchmove"),this.xMove&&(n=t.detail.dx+this.__baseX,this.__touchInfo.historyX.shift(),this.__touchInfo.historyX.push(n),this.yMove||null!==this._checkCanMove||(this._checkCanMove=Math.abs(t.detail.dx/t.detail.dy)<1)),this.yMove&&(i=t.detail.dy+this.__baseY,this.__touchInfo.historyY.shift(),this.__touchInfo.historyY.push(i),this.xMove||null!==this._checkCanMove||(this._checkCanMove=Math.abs(t.detail.dy/t.detail.dx)<1)),this.__touchInfo.historyT.shift(),this.__touchInfo.historyT.push(t.detail.timeStamp),!this._checkCanMove){t.preventDefault();var r="touch";nthis.maxX&&(this.outOfBounds?(r="touch-out-of-bounds",n=this.maxX+this._declineX.x(n-this.maxX)):n=this.maxX),ithis.maxY&&(this.outOfBounds?(r="touch-out-of-bounds",i=this.maxY+this._declineY.x(i-this.maxY)):i=this.maxY),p((function(){e._setTransform(n,i,e._scale,r)}))}}},__handleTouchEnd:function(){var t=this;if(!this._isScaling&&!this.disabled&&this._isTouching&&(Object(d["a"])({disable:!1}),this.$el.style.willChange="auto",this._isTouching=!1,!this._checkCanMove&&!this._revise("out-of-bounds")&&this.inertia)){var e=1e3*(this.__touchInfo.historyX[1]-this.__touchInfo.historyX[0])/(this.__touchInfo.historyT[1]-this.__touchInfo.historyT[0]),n=1e3*(this.__touchInfo.historyY[1]-this.__touchInfo.historyY[0])/(this.__touchInfo.historyT[1]-this.__touchInfo.historyT[0]);this._friction.setV(e,n),this._friction.setS(this._translateX,this._translateY);var i=this._friction.delta().x,r=this._friction.delta().y,o=i+this._translateX,a=r+this._translateY;othis.maxX&&(o=this.maxX,a=this._translateY+(this.maxX-this._translateX)*r/i),athis.maxY&&(a=this.maxY,o=this._translateX+(this.maxY-this._translateY)*i/r),this._friction.setEnd(o,a),this._FA=_(this._friction,(function(){var e=t._friction.s(),n=e.x,i=e.y;t._setTransform(n,i,t._scale,"friction")}),(function(){t._FA.cancel()}))}},_onTrack:function(t){switch(t.detail.state){case"start":this.__handleTouchStart();break;case"move":this.__handleTouchMove(t);break;case"end":this.__handleTouchEnd()}},_getLimitXY:function(t,e){var n=!1;return t>this.maxX?(t=this.maxX,n=!0):tthis.maxY?(e=this.maxY,n=!0):e3&&void 0!==arguments[3]?arguments[3]:"",r=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0;null!==t&&"NaN"!==t.toString()&&"number"===typeof t||(t=this._translateX||0),null!==e&&"NaN"!==e.toString()&&"number"===typeof e||(e=this._translateY||0),t=Number(t.toFixed(1)),e=Number(e.toFixed(1)),n=Number(n.toFixed(1)),this._translateX===t&&this._translateY===e||r||this.$trigger("change",{},{x:g(t,this._scaleOffset.x),y:g(e,this._scaleOffset.y),source:i}),this.scale||(n=this._scale),n=this._adjustScale(n),n=+n.toFixed(3),o&&n!==this._scale&&this.$trigger("scale",{},{x:t,y:e,scale:n});var a="translateX("+t+"px) translateY("+e+"px) translateZ(0px) scale("+n+")";this.$el.style.transform=a,this.$el.style.webkitTransform=a,this._translateX=t,this._translateY=e,this._scale=n}}},y=b,w=(n("5e27"),n("8844")),S=Object(w["a"])(y,i,r,!1,null,null,null);e["default"]=S.exports},"65db":function(t,e,n){},6632:function(t,e,n){"use strict";var i=n("82de"),r=4,o=0,a=1,s=2;function c(t){var e=t.length;while(--e>=0)t[e]=0}var u=0,l=1,h=2,d=3,f=258,p=29,v=256,m=v+1+p,g=30,_=19,b=2*m+1,y=15,w=16,S=7,k=256,x=16,C=17,T=18,O=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],$=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],E=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],I=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],A=512,M=new Array(2*(m+2));c(M);var P=new Array(2*g);c(P);var j=new Array(A);c(j);var L=new Array(f-d+1);c(L);var N=new Array(p);c(N);var D,R,B,F=new Array(g);function z(t,e,n,i,r){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}function V(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function H(t){return t<256?j[t]:j[256+(t>>>7)]}function Y(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function W(t,e,n){t.bi_valid>w-n?(t.bi_buf|=e<>w-t.bi_valid,t.bi_valid+=n-w):(t.bi_buf|=e<>>=1,n<<=1}while(--e>0);return n>>>1}function q(t){16===t.bi_valid?(Y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function Z(t,e){var n,i,r,o,a,s,c=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,h=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,f=e.stat_desc.extra_base,p=e.stat_desc.max_length,v=0;for(o=0;o<=y;o++)t.bl_count[o]=0;for(c[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;np&&(o=p,v++),c[2*i+1]=o,i>u||(t.bl_count[o]++,a=0,i>=f&&(a=d[i-f]),s=c[2*i],t.opt_len+=s*(o+a),h&&(t.static_len+=s*(l[2*i+1]+a)));if(0!==v){do{o=p-1;while(0===t.bl_count[o])o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,v-=2}while(v>0);for(o=p;0!==o;o--){i=t.bl_count[o];while(0!==i)r=t.heap[--n],r>u||(c[2*r+1]!==o&&(t.opt_len+=(o-c[2*r+1])*c[2*r],c[2*r+1]=o),i--)}}}function G(t,e,n){var i,r,o=new Array(y+1),a=0;for(i=1;i<=y;i++)o[i]=a=a+n[i-1]<<1;for(r=0;r<=e;r++){var s=t[2*r+1];0!==s&&(t[2*r]=X(o[s]++,s))}}function K(){var t,e,n,i,r,o=new Array(y+1);for(n=0,i=0;i>=7;i8?Y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function tt(t,e,n,r){Q(t),r&&(Y(t,n),Y(t,~n)),i.arraySet(t.pending_buf,t.window,e,n,t.pending),t.pending+=n}function et(t,e,n,i){var r=2*e,o=2*n;return t[r]>1;n>=1;n--)nt(t,o,n);r=c;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],nt(t,o,1),i=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=i,o[2*r]=o[2*n]+o[2*i],t.depth[r]=(t.depth[n]>=t.depth[i]?t.depth[n]:t.depth[i])+1,o[2*n+1]=o[2*i+1]=r,t.heap[1]=r++,nt(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],Z(t,e),G(o,u,t.bl_count)}function ot(t,e,n){var i,r,o=-1,a=e[1],s=0,c=7,u=4;for(0===a&&(c=138,u=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)r=a,a=e[2*(i+1)+1],++s=3;e--)if(0!==t.bl_tree[2*I[e]+1])break;return t.opt_len+=3*(e+1)+5+5+4,e}function ct(t,e,n,i){var r;for(W(t,e-257,5),W(t,n-1,5),W(t,i-4,4),r=0;r>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return a;for(e=32;e0?(t.strm.data_type===s&&(t.strm.data_type=ut(t)),rt(t,t.l_desc),rt(t,t.d_desc),c=st(t),o=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=o&&(o=a)):o=a=n+5,n+4<=o&&-1!==e?dt(t,e,n,i):t.strategy===r||a===o?(W(t,(l<<1)+(i?1:0),3),it(t,M,P)):(W(t,(h<<1)+(i?1:0),3),ct(t,t.l_desc.max_code+1,t.d_desc.max_code+1,c+1),it(t,t.dyn_ltree,t.dyn_dtree)),J(t),i&&Q(t)}function vt(t,e,n){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(L[n]+v+1)]++,t.dyn_dtree[2*H(e)]++),t.last_lit===t.lit_bufsize-1}e._tr_init=ht,e._tr_stored_block=dt,e._tr_flush_block=pt,e._tr_tally=vt,e._tr_align=ft},6729:function(t,e,n){},"6a2e":function(t,e,n){},"76d7":function(t,e,n){"use strict";var i=n("3934"),r=n.n(i);r.a},"7aa4":function(t,e,n){},"7aa9":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-rich-text",t._g({},t.$listeners),[n("div",{ref:"content"},[n("v-uni-resize-sensor",{ref:"sensor",on:{resize:function(e){return t._updateView()}}})],1)])},r=[],o=n("d97d");function a(t){return t.replace(/<\?xml.*\?>\n/,"").replace(/\n/,"").replace(/\n/,"")}function s(t){return t.reduce((function(t,e){var n=e.value,i=e.name;return n.match(/ /)&&-1===["style","src"].indexOf(i)&&(n=n.split(" ")),t[i]?Array.isArray(t[i])?t[i].push(n):t[i]=[t[i],n]:t[i]=n,t}),{})}function c(t){t=a(t);var e=[],n={node:"root",children:[]};return Object(o["a"])(t,{start:function(t,i,r){var o={name:t};if(0!==i.length&&(o.attrs=s(i)),r){var a=e[0]||n;a.children||(a.children=[]),a.children.push(o)}else e.unshift(o)},end:function(t){var i=e.shift();if(i.name!==t&&console.error("invalid state: mismatch end tag"),0===e.length)n.children.push(i);else{var r=e[0];r.children||(r.children=[]),r.children.push(i)}},chars:function(t){var i={type:"text",text:t};if(0===e.length)n.children.push(i);else{var r=e[0];r.children||(r.children=[]),r.children.push(i)}},comment:function(t){var n={node:"comment",text:t},i=e[0];i&&(i.children||(i.children=[]),i.children.push(n))}}),n.children}var u=n("340d"),l=n("95eb"),h={a:"",abbr:"",address:"",article:"",aside:"",b:"",bdi:"",bdo:["dir"],big:"",blockquote:"",br:"",caption:"",center:"",cite:"",code:"",col:["span","width"],colgroup:["span","width"],dd:"",del:"",div:"",dl:"",dt:"",em:"",fieldset:"",font:"",footer:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:"",header:"",hr:"",i:"",img:["alt","src","height","width"],ins:"",label:"",legend:"",li:"",mark:"",nav:"",ol:["start","type"],p:"",pre:"",q:"",rt:"",ruby:"",s:"",section:"",small:"",span:"",strong:"",sub:"",sup:"",table:["width"],tbody:"",td:["colspan","height","rowspan","width"],tfoot:"",th:["colspan","height","rowspan","width"],thead:"",tr:["colspan","height","rowspan","width"],tt:"",u:"",ul:""},d={amp:"&",gt:">",lt:"<",nbsp:" ",quot:'"',apos:"'"};function f(t){return t.replace(/&(([a-zA-Z]+)|(#x{0,1}[\da-zA-Z]+));/gi,(function(t,e){if(Object(u["e"])(d,e)&&d[e])return d[e];if(/^#[0-9]{1,4}$/.test(e))return String.fromCharCode(e.slice(1));if(/^#x[0-9a-f]{1,4}$/i.test(e))return String.fromCharCode("0"+e.slice(1));var n=document.createElement("div");return n[["inner", "HTML"].join("")]=t,n.innerText||n.textContent}))}function p(t,e,n){return"img"===t&&"src"===e?Object(l["a"])(n):n}function v(t,e,n,i){return t.forEach((function(t){if(Object(u["g"])(t))if(Object(u["e"])(t,"type")&&"node"!==t.type)"text"===t.type&&"string"===typeof t.text&&""!==t.text&&e.appendChild(document.createTextNode(f(t.text)));else{if("string"!==typeof t.name||!t.name)return;var r=t.name.toLowerCase();if(!Object(u["e"])(h,r))return;var o=document.createElement(r);if(!o)return;var a=t.attrs;if(n&&o.setAttribute(n,""),Object(u["g"])(a)){var s=h[r]||[];Object.keys(a).forEach((function(t){var e=a[t];switch(t){case"class":Array.isArray(e)&&(e=e.join(" "));case"style":o.setAttribute(t,e);break;default:-1!==s.indexOf(t)&&o.setAttribute(t,p(r,t,e))}}))}m(t,o,i);var c=t.children;Array.isArray(c)&&c.length&&v(t.children,o,n,i),e.appendChild(o)}})),e}function m(t,e,n){["a","img"].includes(t.name)&&n&&(e.setAttribute("onClick","return false;"),e.addEventListener("click",(function(e){n(e,{node:t}),e.stopPropagation()}),!0))}var g={name:"RichText",props:{nodes:{type:[Array,String],default:function(){return[]}}},watch:{nodes:function(t){this._renderNodes(t)}},mounted:function(){this._renderNodes(this.nodes)},methods:{_renderNodes:function(t){var e="",n=this;while(n)!e&&(e=n.$options._scopeId),n=n.$parent;var i=!!this.$listeners.itemclick;if(this._isMounted){"string"===typeof t&&(t=c(t));var r=v(t,document.createDocumentFragment(),e,i&&this.triggerItemClick);r.appendChild(this.$refs.sensor.$el);var o=this.$refs.content;o[["inner", "HTML"].join("")]="",o.appendChild(r)}},_updateView:function(){window.dispatchEvent(new CustomEvent("updateview"))},triggerItemClick:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.$trigger("itemclick",t,e)}}},_=g,b=n("8844"),y=Object(b["a"])(_,i,r,!1,null,null,null);e["default"]=y.exports},"7cb0":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-web-view",t._g({},t.$listeners))},r=[],o=n("94b3"),a=o["a"],s=(n("bdb5"),n("8844")),c=Object(s["a"])(a,i,r,!1,null,null,null);e["default"]=c.exports},"7cce":function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return c}));var i=n("340d"),r=function(){var t=document.createElement("canvas");t.height=t.width=0;var e=t.getContext("2d"),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/n}(),o=function(t,e){for(var n in t)Object(i["e"])(t,n)&&e(t[n],n)},a={fillRect:"all",clearRect:"all",strokeRect:"all",moveTo:"all",lineTo:"all",arc:[0,1,2],arcTo:"all",bezierCurveTo:"all",isPointinPath:"all",isPointinStroke:"all",quadraticCurveTo:"all",rect:"all",translate:"all",createRadialGradient:"all",createLinearGradient:"all",transform:[4,5],setTransform:[4,5]},s=CanvasRenderingContext2D.prototype;function c(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t.width=t.offsetWidth*(e?r:1),t.height=t.offsetHeight*(e?r:1),t.__hidpi__=e,t.__context2d__=t.getContext("2d"),t.__context2d__.__hidpi__=e}s.drawImageByCanvas=function(t){return function(e,n,i,o,a,s,c,u,l,h){if(!this.__hidpi__)return t.apply(this,arguments);n*=r,i*=r,o*=r,a*=r,s*=r,c*=r,u=h?u*r:u,l=h?l*r:l,t.call(this,e,n,i,o,a,s,c,u,l)}}(s.drawImage),1!==r&&(o(a,(function(t,e){s[e]=function(e){return function(){if(!this.__hidpi__)return e.apply(this,arguments);var n=Array.prototype.slice.call(arguments);if("all"===t)n=n.map((function(t){return t*r}));else if(Array.isArray(t))for(var i=0;i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function ot(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function at(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=S,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new i.Buf32(tt),e.distcode=e.distdyn=new i.Buf32(et),e.sane=1,e.back=-1,p):g}function st(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,at(t)):g}function ct(t,e){var n,i;return t&&t.state?(i=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?g:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,st(t))):g}function ut(t,e){var n,i;return t?(i=new ot,t.state=i,i.window=null,n=ct(t,e),n!==p&&(t.state=null),n):g}function lt(t){return ut(t,it)}var ht,dt,ft=!0;function pt(t){if(ft){var e;ht=new i.Buf32(512),dt=new i.Buf32(32),e=0;while(e<144)t.lens[e++]=8;while(e<256)t.lens[e++]=9;while(e<280)t.lens[e++]=7;while(e<288)t.lens[e++]=8;s(u,t.lens,0,288,ht,0,t.work,{bits:9}),e=0;while(e<32)t.lens[e++]=5;s(l,t.lens,0,32,dt,0,t.work,{bits:5}),ft=!1}t.lencode=ht,t.lenbits=9,t.distcode=dt,t.distbits=5}function vt(t,e,n,r){var o,a=t.state;return null===a.window&&(a.wsize=1<=a.wsize?(i.arraySet(a.window,e,n-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(o=a.wsize-a.wnext,o>r&&(o=r),i.arraySet(a.window,e,n-r,o,a.wnext),r-=o,r?(i.arraySet(a.window,e,n-r,r,0),a.wnext=r,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,n.check=o(n.check,Ot,2,0),st=0,ct=0,n.mode=k;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&st)<<8)+(st>>8))%31){t.msg="incorrect header check",n.mode=K;break}if((15&st)!==w){t.msg="unknown compression method",n.mode=K;break}if(st>>>=4,ct-=4,St=8+(15&st),0===n.wbits)n.wbits=St;else if(St>n.wbits){t.msg="invalid window size",n.mode=K;break}n.dmax=1<>8&1),512&n.flags&&(Ot[0]=255&st,Ot[1]=st>>>8&255,n.check=o(n.check,Ot,2,0)),st=0,ct=0,n.mode=x;case x:while(ct<32){if(0===ot)break t;ot--,st+=tt[nt++]<>>8&255,Ot[2]=st>>>16&255,Ot[3]=st>>>24&255,n.check=o(n.check,Ot,4,0)),st=0,ct=0,n.mode=C;case C:while(ct<16){if(0===ot)break t;ot--,st+=tt[nt++]<>8),512&n.flags&&(Ot[0]=255&st,Ot[1]=st>>>8&255,n.check=o(n.check,Ot,2,0)),st=0,ct=0,n.mode=T;case T:if(1024&n.flags){while(ct<16){if(0===ot)break t;ot--,st+=tt[nt++]<>>8&255,n.check=o(n.check,Ot,2,0)),st=0,ct=0}else n.head&&(n.head.extra=null);n.mode=O;case O:if(1024&n.flags&&(ht=n.length,ht>ot&&(ht=ot),ht&&(n.head&&(St=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),i.arraySet(n.head.extra,tt,nt,ht,St)),512&n.flags&&(n.check=o(n.check,tt,ht,nt)),ot-=ht,nt+=ht,n.length-=ht),n.length))break t;n.length=0,n.mode=$;case $:if(2048&n.flags){if(0===ot)break t;ht=0;do{St=tt[nt+ht++],n.head&&St&&n.length<65536&&(n.head.name+=String.fromCharCode(St))}while(St&&ht>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=P;break;case A:while(ct<32){if(0===ot)break t;ot--,st+=tt[nt++]<>>=7&ct,ct-=7&ct,n.mode=q;break}while(ct<3){if(0===ot)break t;ot--,st+=tt[nt++]<>>=1,ct-=1,3&st){case 0:n.mode=L;break;case 1:if(pt(n),n.mode=z,e===f){st>>>=2,ct-=2;break t}break;case 2:n.mode=R;break;case 3:t.msg="invalid block type",n.mode=K}st>>>=2,ct-=2;break;case L:st>>>=7&ct,ct-=7&ct;while(ct<32){if(0===ot)break t;ot--,st+=tt[nt++]<>>16^65535)){t.msg="invalid stored block lengths",n.mode=K;break}if(n.length=65535&st,st=0,ct=0,n.mode=N,e===f)break t;case N:n.mode=D;case D:if(ht=n.length,ht){if(ht>ot&&(ht=ot),ht>at&&(ht=at),0===ht)break t;i.arraySet(et,tt,nt,ht,it),ot-=ht,nt+=ht,at-=ht,it+=ht,n.length-=ht;break}n.mode=P;break;case R:while(ct<14){if(0===ot)break t;ot--,st+=tt[nt++]<>>=5,ct-=5,n.ndist=1+(31&st),st>>>=5,ct-=5,n.ncode=4+(15&st),st>>>=4,ct-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=K;break}n.have=0,n.mode=B;case B:while(n.have>>=3,ct-=3}while(n.have<19)n.lens[$t[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,xt={bits:n.lenbits},kt=s(c,n.lens,0,19,n.lencode,0,n.work,xt),n.lenbits=xt.bits,kt){t.msg="invalid code lengths set",n.mode=K;break}n.have=0,n.mode=F;case F:while(n.have>>24,gt=Tt>>>16&255,_t=65535&Tt,mt<=ct)break;if(0===ot)break t;ot--,st+=tt[nt++]<>>=mt,ct-=mt,n.lens[n.have++]=_t;else{if(16===_t){Ct=mt+2;while(ct>>=mt,ct-=mt,0===n.have){t.msg="invalid bit length repeat",n.mode=K;break}St=n.lens[n.have-1],ht=3+(3&st),st>>>=2,ct-=2}else if(17===_t){Ct=mt+3;while(ct>>=mt,ct-=mt,St=0,ht=3+(7&st),st>>>=3,ct-=3}else{Ct=mt+7;while(ct>>=mt,ct-=mt,St=0,ht=11+(127&st),st>>>=7,ct-=7}if(n.have+ht>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=K;break}while(ht--)n.lens[n.have++]=St}}if(n.mode===K)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=K;break}if(n.lenbits=9,xt={bits:n.lenbits},kt=s(u,n.lens,0,n.nlen,n.lencode,0,n.work,xt),n.lenbits=xt.bits,kt){t.msg="invalid literal/lengths set",n.mode=K;break}if(n.distbits=6,n.distcode=n.distdyn,xt={bits:n.distbits},kt=s(l,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,xt),n.distbits=xt.bits,kt){t.msg="invalid distances set",n.mode=K;break}if(n.mode=z,e===f)break t;case z:n.mode=V;case V:if(ot>=6&&at>=258){t.next_out=it,t.avail_out=at,t.next_in=nt,t.avail_in=ot,n.hold=st,n.bits=ct,a(t,lt),it=t.next_out,et=t.output,at=t.avail_out,nt=t.next_in,tt=t.input,ot=t.avail_in,st=n.hold,ct=n.bits,n.mode===P&&(n.back=-1);break}for(n.back=0;;){if(Tt=n.lencode[st&(1<>>24,gt=Tt>>>16&255,_t=65535&Tt,mt<=ct)break;if(0===ot)break t;ot--,st+=tt[nt++]<>bt)],mt=Tt>>>24,gt=Tt>>>16&255,_t=65535&Tt,bt+mt<=ct)break;if(0===ot)break t;ot--,st+=tt[nt++]<>>=bt,ct-=bt,n.back+=bt}if(st>>>=mt,ct-=mt,n.back+=mt,n.length=_t,0===gt){n.mode=X;break}if(32>){n.back=-1,n.mode=P;break}if(64>){t.msg="invalid literal/length code",n.mode=K;break}n.extra=15>,n.mode=H;case H:if(n.extra){Ct=n.extra;while(ct>>=n.extra,ct-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Y;case Y:for(;;){if(Tt=n.distcode[st&(1<>>24,gt=Tt>>>16&255,_t=65535&Tt,mt<=ct)break;if(0===ot)break t;ot--,st+=tt[nt++]<>bt)],mt=Tt>>>24,gt=Tt>>>16&255,_t=65535&Tt,bt+mt<=ct)break;if(0===ot)break t;ot--,st+=tt[nt++]<>>=bt,ct-=bt,n.back+=bt}if(st>>>=mt,ct-=mt,n.back+=mt,64>){t.msg="invalid distance code",n.mode=K;break}n.offset=_t,n.extra=15>,n.mode=W;case W:if(n.extra){Ct=n.extra;while(ct>>=n.extra,ct-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=K;break}n.mode=U;case U:if(0===at)break t;if(ht=lt-at,n.offset>ht){if(ht=n.offset-ht,ht>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=K;break}ht>n.wnext?(ht-=n.wnext,dt=n.wsize-ht):dt=n.wnext-ht,ht>n.length&&(ht=n.length),ft=n.window}else ft=et,dt=it-n.offset,ht=n.length;ht>at&&(ht=at),at-=ht,n.length-=ht;do{et[it++]=ft[dt++]}while(--ht);0===n.length&&(n.mode=V);break;case X:if(0===at)break t;et[it++]=n.length,at--,n.mode=V;break;case q:if(n.wrap){while(ct<32){if(0===ot)break t;ot--,st|=tt[nt++]<10&&(t=2*Math.round(t/2)),t}var s={name:"Image",props:{src:{type:String,default:""},mode:{type:String,default:"scaleToFill"},lazyLoad:{type:[Boolean,String],default:!1},draggable:{type:Boolean,default:!1}},data:function(){return{originalWidth:0,originalHeight:0,originalStyle:{width:"",height:""},contentPath:""}},computed:{ratio:function(){return this.originalWidth&&this.originalHeight?this.originalWidth/this.originalHeight:0},style:function(){var t="auto",e="",n="no-repeat";switch(this.mode){case"aspectFit":t="contain",e="center center";break;case"aspectFill":t="cover",e="center center";break;case"widthFix":case"heightFix":t="100% 100%";break;case"top":e="center top";break;case"bottom":e="center bottom";break;case"center":e="center center";break;case"left":e="left center";break;case"right":e="right center";break;case"top left":e="left top";break;case"top right":e="right top";break;case"bottom left":e="left bottom";break;case"bottom right":e="right bottom";break;default:t="100% 100%",e="0% 0%";break}return{"background-image":this.contentPath?'url("'.concat(this.contentPath,'")'):"none","background-position":e,"background-size":t,"background-repeat":n}}},watch:{src:function(t,e){this._loadImage()},mode:function(t,e){"widthFix"!==e&&"heightFix"!==e||this._resetSize(),"widthFix"!==t&&"heightFix"!==t||this._fixSize()},contentPath:function(t){!t&&this.__img&&(this.__img.remove(),delete this.__img)}},mounted:function(){this.originalStyle.width=this.$el.style.width||"",this.originalStyle.height=this.$el.style.height||"",this._loadImage()},beforeDestroy:function(){this._clearImage()},methods:{_fixSize:function(){if(this.ratio){var t=this.$el;if("widthFix"===this.mode){var e=t.offsetWidth;e&&(t.style.height=a(e/this.ratio)+"px")}else if("heightFix"===this.mode){var n=t.offsetHeight;n&&(t.style.width=a(n*this.ratio)+"px")}}window.dispatchEvent(new CustomEvent("updateview"))},_resetSize:function(){this.$el.style.width=this.originalStyle.width,this.$el.style.height=this.originalStyle.height},_resetData:function(){this.originalWidth=0,this.originalHeight=0,this.contentPath=""},_loadImage:function(){var t=this,e=this.$getRealPath(this.src);if(e){var n=this._img=this._img||new Image;n.onload=function(i){t._img=null;var r=t.originalWidth=n.width,o=t.originalHeight=n.height;t._fixSize(),t.contentPath=e,n.draggable=t.draggable,t.__img&&t.__img.remove(),t.__img=n,t.$el.appendChild(n),t.$trigger("load",i,{width:r,height:o})},n.onerror=function(e){t._img=null,t._resetData(),t.$trigger("error",e,{errMsg:"GET ".concat(t.src," 404 (Not Found)")})},n.src=e}else this._clearImage(),this._resetData()},_clearImage:function(){var t=this._img;t&&(t.onload=null,t.onerror=null,this._img=null)}}},c=s,u=(n("4dc6"),n("8844")),l=Object(u["a"])(c,i,r,!1,null,null,null);e["default"]=l.exports},"801b":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("uni-progress",t._g({staticClass:"uni-progress"},t.$listeners),[n("div",{staticClass:"uni-progress-bar",style:t.outerBarStyle},[n("div",{staticClass:"uni-progress-inner-bar",style:t.innerBarStyle})]),t.showInfo?[n("p",{staticClass:"uni-progress-info"},[t._v(" "+t._s(t.currentPercent)+"% ")])]:t._e()],2)},r=[],o={activeColor:"#007AFF",backgroundColor:"#EBEBEB",activeMode:"backwards"},a={name:"Progress",props:{percent:{type:[Number,String],default:0,validator:function(t){return!isNaN(parseFloat(t,10))}},showInfo:{type:[Boolean,String],default:!1},strokeWidth:{type:[Number,String],default:6,validator:function(t){return!isNaN(parseFloat(t,10))}},color:{type:String,default:o.activeColor},activeColor:{type:String,default:o.activeColor},backgroundColor:{type:String,default:o.backgroundColor},active:{type:[Boolean,String],default:!1},activeMode:{type:String,default:o.activeMode},duration:{type:[Number,String],default:30,validator:function(t){return!isNaN(parseFloat(t,10))}}},data:function(){return{currentPercent:0,strokeTimer:0,lastPercent:0}},computed:{outerBarStyle:function(){return"background-color: ".concat(this.backgroundColor,"; height: ").concat(this.strokeWidth,"px;")},innerBarStyle:function(){var t="";return t=this.color!==o.activeColor&&this.activeColor===o.activeColor?this.color:this.activeColor,"width: ".concat(this.currentPercent,"%;background-color: ").concat(t)},realPercent:function(){var t=parseFloat(this.percent,10);return t<0&&(t=0),t>100&&(t=100),t}},watch:{realPercent:function(t,e){this.strokeTimer&&clearInterval(this.strokeTimer),this.lastPercent=e||0,this._activeAnimation()}},created:function(){this._activeAnimation()},methods:{_activeAnimation:function(){var t=this;this.active?(this.currentPercent=this.activeMode===o.activeMode?0:this.lastPercent,this.strokeTimer=setInterval((function(){t.currentPercent+1>t.realPercent?(t.currentPercent=t.realPercent,t.strokeTimer&&clearInterval(t.strokeTimer)):t.currentPercent+=1}),parseFloat(this.duration))):this.currentPercent=this.realPercent}}},s=a,c=(n("a18d"),n("8844")),u=Object(c["a"])(s,i,r,!1,null,null,null);e["default"]=u.exports},"82de":function(t,e,n){"use strict";var i="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Int32Array;function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){var e=Array.prototype.slice.call(arguments,1);while(e.length){var n=e.shift();if(n){if("object"!==typeof n)throw new TypeError(n+"must be non-object");for(var i in n)r(n,i)&&(t[i]=n[i])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var o={arraySet:function(t,e,n,i,r){if(e.subarray&&t.subarray)t.set(e.subarray(n,n+i),r);else for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:{};if(!i){var e=["touchstart","touchmove","touchend","mousedown","mouseup"];e.forEach((function(t){document.addEventListener(t,(function(){!s&&c(!0),s++,setTimeout((function(){!--s&&c(!1)}),0)}),o)})),i=!0}a.push(t)}function l(t){var e=a.indexOf(t);e>=0&&a.splice(e,1)}e["a"]={data:function(){return{userInteract:!1}},mounted:function(){u(this)},beforeDestroy:function(){l(this)},addInteractListener:u,getStatus:function(){return!!s}}},"89b6":function(t,e,n){"use strict";(function(t){var i,r=n("909e"),o=n("7cce"),a=n("4452"),s=n("a82d");function c(t){return d(t)||h(t)||l(t)||u()}function u(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(t,e){if(t){if("string"===typeof t)return f(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(t,e):void 0}}function h(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}function d(t){if(Array.isArray(t))return f(t)}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return i||(i=document.createElement("canvas")),i.width=t,i.height=e,i}e["a"]={name:"Canvas",mixins:[r["f"]],props:{canvasId:{type:String,default:""},disableScroll:{type:[Boolean,String],default:!1},hidpi:{type:Boolean,default:!0}},data:function(){return{actionsWaiting:!1}},computed:{id:function(){return this.canvasId},_listeners:function(){var t=this,e=Object.assign({},this.$listeners),n=["touchstart","touchmove","touchend"];return n.forEach((function(n){var i=e[n],r=[];i&&r.push((function(e){t.$trigger(n,Object.assign({},e,{touches:v(e.currentTarget,e.touches),changedTouches:v(e.currentTarget,e.changedTouches)}))})),t.disableScroll&&"touchmove"===n&&r.push(t._touchmove),e[n]=r})),e},pixelRatio:function(){return this.hidpi?o["a"]:1}},created:function(){this._actionsDefer=[],this._images={}},mounted:function(){this._resize()},beforeDestroy:function(){var t=this.$refs.canvas;t.height=t.width=0},methods:{_handleSubscribe:function(t){var e=t.type,n=t.data,i=void 0===n?{}:n,r=this[e];0!==e.indexOf("_")&&"function"===typeof r&&r(i)},_resize:function(t){var e=this.$refs.canvas,n=!t||e.width!==Math.floor(t.width*this.pixelRatio)||e.height!==Math.floor(t.height*this.pixelRatio);if(n)if(e.width>0&&e.height>0){var i=e.getContext("2d"),r=i.getImageData(0,0,e.width,e.height);Object(o["b"])(e,this.hidpi),i.putImageData(r,0,0)}else Object(o["b"])(e,this.hidpi)},_touchmove:function(t){t.preventDefault()},actionsChanged:function(e){var n=this,i=e.actions,r=e.reserve,o=e.callbackId,a=this;if(i)if(this.actionsWaiting)this._actionsDefer.push([i,r,o]);else{var s=this.$refs.canvas,u=s.getContext("2d");r||(u.fillStyle="#000000",u.strokeStyle="#000000",u.shadowColor="#000000",u.shadowBlur=0,u.shadowOffsetX=0,u.shadowOffsetY=0,u.setTransform(1,0,0,1,0,0),u.clearRect(0,0,s.width,s.height)),this.preloadImage(i);var l=function(t){var e=i[t],r=e.method,s=e.data;if(/^set/.test(r)&&"setTransform"!==r){var l,h=r[3].toLowerCase()+r.slice(4);if("fillStyle"===h||"strokeStyle"===h){if("normal"===s[0])l=p(s[1]);else if("linear"===s[0]){var v=u.createLinearGradient.apply(u,c(s[1]));s[2].forEach((function(t){var e=t[0],n=p(t[1]);v.addColorStop(e,n)})),l=v}else if("radial"===s[0]){var m=s[1][0],g=s[1][1],_=s[1][2],b=u.createRadialGradient(m,g,0,m,g,_);s[2].forEach((function(t){var e=t[0],n=p(t[1]);b.addColorStop(e,n)})),l=b}else if("pattern"===s[0]){var y=n.checkImageLoaded(s[1],i.slice(t+1),o,(function(t){t&&(u[h]=u.createPattern(t,s[2]))}));return y?"continue":"break"}u[h]=l}else if("globalAlpha"===h)u[h]=s[0]/255;else if("shadow"===h)d=["shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor"],s.forEach((function(t,e){u[d[e]]="shadowColor"===d[e]?p(t):t}));else if("fontSize"===h){var w=u.__font__||u.font;u.__font__=u.font=w.replace(/\d+\.?\d*px/,s[0]+"px")}else"lineDash"===h?(u.setLineDash(s[0]),u.lineDashOffset=s[1]||0):"textBaseline"===h?("normal"===s[0]&&(s[0]="alphabetic"),u[h]=s[0]):"font"===h?u.__font__=u.font=s[0]:u[h]=s[0]}else if("fillPath"===r||"strokePath"===r)r=r.replace(/Path/,""),u.beginPath(),s.forEach((function(t){u[t.method].apply(u,t.data)})),u[r]();else if("fillText"===r)u.fillText.apply(u,s);else if("drawImage"===r){if(f=function(){var e=c(s),n=e[0],r=e.slice(1);if(a._images=a._images||{},!a.checkImageLoaded(n,i.slice(t+1),o,(function(t){t&&u.drawImage.apply(u,[t].concat(c(r.slice(4,8)),c(r.slice(0,4))))})))return"break"}(),"break"===f)return"break"}else"clip"===r?(s.forEach((function(t){u[t.method].apply(u,t.data)})),u.clip()):u[r].apply(u,s)};t:for(var h=0;h0&&void 0!==arguments[0])||arguments[0];return!!a["l"]&&{passive:t}},u=c(),l={name:"ScrollView",mixins:[o["a"]],props:{scrollX:{type:[Boolean,String],default:!1},scrollY:{type:[Boolean,String],default:!1},upperThreshold:{type:[Number,String],default:50},lowerThreshold:{type:[Number,String],default:50},scrollTop:{type:[Number,String],default:0},scrollLeft:{type:[Number,String],default:0},scrollIntoView:{type:String,default:""},scrollWithAnimation:{type:[Boolean,String],default:!1},enableBackToTop:{type:[Boolean,String],default:!1},refresherEnabled:{type:[Boolean,String],default:!1},refresherThreshold:{type:Number,default:45},refresherDefaultStyle:{type:String,default:"back"},refresherBackground:{type:String,default:"#fff"},refresherTriggered:{type:[Boolean,String],default:!1}},data:function(){return{lastScrollTop:this.scrollTopNumber,lastScrollLeft:this.scrollLeftNumber,lastScrollToUpperTime:0,lastScrollToLowerTime:0,refresherHeight:0,refreshRotate:0,refreshState:""}},computed:{upperThresholdNumber:function(){var t=Number(this.upperThreshold);return isNaN(t)?50:t},lowerThresholdNumber:function(){var t=Number(this.lowerThreshold);return isNaN(t)?50:t},scrollTopNumber:function(){return Number(this.scrollTop)||0},scrollLeftNumber:function(){return Number(this.scrollLeft)||0}},watch:{scrollTopNumber:function(t){this._scrollTopChanged(t)},scrollLeftNumber:function(t){this._scrollLeftChanged(t)},scrollIntoView:function(t){this._scrollIntoViewChanged(t)},refresherTriggered:function(t){!0===t?this._setRefreshState("refreshing"):!1===t&&this._setRefreshState("restore")}},mounted:function(){var t=this,e=null,n=null;this._attached=!0,this.toUpperNumber=0,this.triggerAbort=!1,this.beforeRefreshing=!1,this._scrollTopChanged(this.scrollTopNumber),this._scrollLeftChanged(this.scrollLeftNumber),this._scrollIntoViewChanged(this.scrollIntoView),this.__handleScroll=function(e){e.preventDefault(),e.stopPropagation(),t._handleScroll.bind(t,e)()},this.__handleTouchMove=function(i){if(null!==e){var r=i.touches[0].pageX,o=i.touches[0].pageY,a=t.$refs.main;if(Math.abs(r-e.x)>Math.abs(o-e.y))if(t.scrollX){if(0===a.scrollLeft&&r>e.x)return void(n=!1);if(a.scrollWidth===a.offsetWidth+a.scrollLeft&&re.y)n=!1,t.refresherEnabled&&!1!==i.cancelable&&i.preventDefault();else{if(a.scrollHeight===a.offsetHeight+a.scrollTop&&o0&&(t.triggerAbort=!0,t.$trigger("refresherpulling",i,{deltaY:s})));var c=t.refresherHeight/t.refresherThreshold;t.refreshRotate=360*(c>1?1:c)}}},this.__handleTouchStart=function(t){1===t.touches.length&&(Object(s["a"])({disable:!0}),e={x:t.touches[0].pageX,y:t.touches[0].pageY})},this.__handleTouchEnd=function(n){e=null,Object(s["a"])({disable:!1}),t.refresherHeight>=t.refresherThreshold?t._setRefreshState("refreshing"):t._setRefreshState("refresherabort")},this.$refs.main.addEventListener("touchstart",this.__handleTouchStart,u),this.$refs.main.addEventListener("touchmove",this.__handleTouchMove,c(!1)),this.$refs.main.addEventListener("scroll",this.__handleScroll,c(!1)),this.$refs.main.addEventListener("touchend",this.__handleTouchEnd,u),Object(s["b"])()},activated:function(){this.scrollY&&(this.$refs.main.scrollTop=this.lastScrollTop),this.scrollX&&(this.$refs.main.scrollLeft=this.lastScrollLeft)},beforeDestroy:function(){this.$refs.main.removeEventListener("touchstart",this.__handleTouchStart,u),this.$refs.main.removeEventListener("touchmove",this.__handleTouchMove,u),this.$refs.main.removeEventListener("scroll",this.__handleScroll,c(!1)),this.$refs.main.removeEventListener("touchend",this.__handleTouchEnd,u)},methods:{scrollTo:function(t,e){var n=this.$refs.main;t<0?t=0:"x"===e&&t>n.scrollWidth-n.offsetWidth?t=n.scrollWidth-n.offsetWidth:"y"===e&&t>n.scrollHeight-n.offsetHeight&&(t=n.scrollHeight-n.offsetHeight);var i=0,r="";"x"===e?i=n.scrollLeft-t:"y"===e&&(i=n.scrollTop-t),0!==i&&(this.$refs.content.style.transition="transform .3s ease-out",this.$refs.content.style.webkitTransition="-webkit-transform .3s ease-out","x"===e?r="translateX("+i+"px) translateZ(0)":"y"===e&&(r="translateY("+i+"px) translateZ(0)"),this.$refs.content.removeEventListener("transitionend",this.__transitionEnd),this.$refs.content.removeEventListener("webkitTransitionEnd",this.__transitionEnd),this.__transitionEnd=this._transitionEnd.bind(this,t,e),this.$refs.content.addEventListener("transitionend",this.__transitionEnd),this.$refs.content.addEventListener("webkitTransitionEnd",this.__transitionEnd),"x"===e?n.style.overflowX="hidden":"y"===e&&(n.style.overflowY="hidden"),this.$refs.content.style.transform=r,this.$refs.content.style.webkitTransform=r)},_handleTrack:function(t){if("start"===t.detail.state)return this._x=t.detail.x,this._y=t.detail.y,void(this._noBubble=null);"end"===t.detail.state&&(this._noBubble=!1),null===this._noBubble&&this.scrollY&&(Math.abs(this._y-t.detail.y)/Math.abs(this._x-t.detail.x)>1?this._noBubble=!0:this._noBubble=!1),null===this._noBubble&&this.scrollX&&(Math.abs(this._x-t.detail.x)/Math.abs(this._y-t.detail.y)>1?this._noBubble=!0:this._noBubble=!1),this._x=t.detail.x,this._y=t.detail.y,this._noBubble&&t.stopPropagation()},_handleScroll:function(t){var e=t.target;this.$trigger("scroll",t,{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,deltaX:this.lastScrollLeft-e.scrollLeft,deltaY:this.lastScrollTop-e.scrollTop}),this.scrollY&&(e.scrollTop<=this.upperThresholdNumber&&this.lastScrollTop-e.scrollTop>0&&t.timeStamp-this.lastScrollToUpperTime>200&&(this.$trigger("scrolltoupper",t,{direction:"top"}),this.lastScrollToUpperTime=t.timeStamp),e.scrollTop+e.offsetHeight+this.lowerThresholdNumber>=e.scrollHeight&&this.lastScrollTop-e.scrollTop<0&&t.timeStamp-this.lastScrollToLowerTime>200&&(this.$trigger("scrolltolower",t,{direction:"bottom"}),this.lastScrollToLowerTime=t.timeStamp)),this.scrollX&&(e.scrollLeft<=this.upperThresholdNumber&&this.lastScrollLeft-e.scrollLeft>0&&t.timeStamp-this.lastScrollToUpperTime>200&&(this.$trigger("scrolltoupper",t,{direction:"left"}),this.lastScrollToUpperTime=t.timeStamp),e.scrollLeft+e.offsetWidth+this.lowerThresholdNumber>=e.scrollWidth&&this.lastScrollLeft-e.scrollLeft<0&&t.timeStamp-this.lastScrollToLowerTime>200&&(this.$trigger("scrolltolower",t,{direction:"right"}),this.lastScrollToLowerTime=t.timeStamp)),this.lastScrollTop=e.scrollTop,this.lastScrollLeft=e.scrollLeft},_scrollTopChanged:function(t){this.scrollY&&(this._innerSetScrollTop?this._innerSetScrollTop=!1:this.scrollWithAnimation?this.scrollTo(t,"y"):this.$refs.main.scrollTop=t)},_scrollLeftChanged:function(t){this.scrollX&&(this._innerSetScrollLeft?this._innerSetScrollLeft=!1:this.scrollWithAnimation?this.scrollTo(t,"x"):this.$refs.main.scrollLeft=t)},_scrollIntoViewChanged:function(t){if(t){if(!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(t))return void console.error("id error: scroll-into-view=".concat(t));var e=this.$el.querySelector("#"+t);if(e){var n=this.$refs.main.getBoundingClientRect(),i=e.getBoundingClientRect();if(this.scrollX){var r=i.left-n.left,o=this.$refs.main.scrollLeft,a=o+r;this.scrollWithAnimation?this.scrollTo(a,"x"):this.$refs.main.scrollLeft=a}if(this.scrollY){var s=i.top-n.top,c=this.$refs.main.scrollTop,u=c+s;this.scrollWithAnimation?this.scrollTo(u,"y"):this.$refs.main.scrollTop=u}}}},_transitionEnd:function(t,e){this.$refs.content.style.transition="",this.$refs.content.style.webkitTransition="",this.$refs.content.style.transform="",this.$refs.content.style.webkitTransform="";var n=this.$refs.main;"x"===e?(n.style.overflowX=this.scrollX?"auto":"hidden",n.scrollLeft=t):"y"===e&&(n.style.overflowY=this.scrollY?"auto":"hidden",n.scrollTop=t),this.$refs.content.removeEventListener("transitionend",this.__transitionEnd),this.$refs.content.removeEventListener("webkitTransitionEnd",this.__transitionEnd)},_setRefreshState:function(t){switch(t){case"refreshing":this.refresherHeight=this.refresherThreshold,this.beforeRefreshing||(this.beforeRefreshing=!0,this.$trigger("refresherrefresh",{},{}));break;case"restore":case"refresherabort":this.beforeRefreshing=!1,this.refresherHeight=this.toUpperNumber=0,"restore"===t&&(this.triggerAbort=!1,this.$trigger("refresherrestore",{},{})),"refresherabort"===t&&this.triggerAbort&&(this.triggerAbort=!1,this.$trigger("refresherabort",{},{}));break}this.refreshState=t},getScrollPosition:function(){var t=this.$refs.main;return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop,scrollHeight:t.scrollHeight,scrollWidth:t.scrollWidth}}}},h=l,d=(n("f08e"),n("8844")),f=Object(d["a"])(h,i,r,!1,null,null,null);e["default"]=f.exports},9080:function(t,e,n){},"909e":function(t,e,n){"use strict";n.d(e,"a",(function(){return i["a"]})),n.d(e,"e",(function(){return r["a"]})),n.d(e,"c",(function(){return o})),n.d(e,"f",(function(){return a["a"]})),n.d(e,"d",(function(){return s["a"]})),n.d(e,"b",(function(){return c["a"]}));var i=n("0db8"),r=n("2ace"),o={data:function(){return{hovering:!1}},props:{hoverClass:{type:String,default:"none"},hoverStopPropagation:{type:Boolean,default:!1},hoverStartTime:{type:[Number,String],default:50},hoverStayTime:{type:[Number,String],default:400}},methods:{_hoverTouchStart:function(t){t.touches.length>1||this._handleHoverStart(t)},_hoverMousedown:function(t){this._hoverTouch||(this._handleHoverStart(t),window.addEventListener("mouseup",this._hoverMouseup))},_handleHoverStart:function(t){var e=this;t._hoverPropagationStopped||this.hoverClass&&"none"!==this.hoverClass&&!this.disabled&&(this.hoverStopPropagation&&(t._hoverPropagationStopped=!0),this._hoverTouch=!0,this._hoverStartTimer=setTimeout((function(){e.hovering=!0,e._hoverTouch||e._hoverReset()}),this.hoverStartTime))},_hoverMouseup:function(){this._hoverTouch&&(this._handleHoverEnd(),window.removeEventListener("mouseup",this._hoverMouseup))},_hoverTouchEnd:function(){this._handleHoverEnd()},_handleHoverEnd:function(){this._hoverTouch=!1,this.hovering&&this._hoverReset()},_hoverReset:function(){var t=this;requestAnimationFrame((function(){clearTimeout(t._hoverStayTimer),t._hoverStayTimer=setTimeout((function(){t.hovering=!1}),t.hoverStayTime)}))},_hoverTouchCancel:function(){this._hoverTouch=!1,this.hovering=!1,clearTimeout(this._hoverStartTimer)}}},a=n("23a1"),s=n("0e4a"),c=n("0c40");n("88a8")},"94b3":function(t,e,n){"use strict";(function(t){var i=n("0834"),r=n("c80c"),o=!1,a=function(t){var e=t.webviewStyles,n=t.htmlId,i=t.updateTitle,a=plus.webview.currentWebview(),s=Object.assign({"uni-app":"none",isUniH5:!0,contentAdjust:!1},e),c=a.getTitleNView();c&&(plus.navigator.isImmersedStatusbar()?s.top=r["a"]+plus.navigator.getStatusbarHeight():s.top=r["a"],s.bottom=0),o=plus.webview.create("",n,s),c&&o.addEventListener("titleUpdate",(function(){if(i){var t=o.getTitle();a.setStyle({titleNView:{titleText:t&&"null"!==t?t:" "}})}})),plus.webview.currentWebview().append(o)},s=function(t){var e=t.src,n=t.webviewStyles,i=e||"";i&&(/^(http|https):\/\//.test(i)&&n.progress&&o.setStyle({progress:{color:n.progress.color}}),o.loadURL(i))},c=function(){plus.webview.currentWebview().remove(o),o.close("none"),o=!1};e["a"]={name:"WebView",props:{src:{type:String,default:""},updateTitle:{type:Boolean,default:!0},webviewStyles:{type:Object,default:function(){return{}}}},watch:{src:function(t,e){o&&s({src:this.$getRealPath(t),webviewStyles:this.webviewStyles})}},mounted:function(){this.htmlId=i["k"]+this.$page.id,a({webviewStyles:this.webviewStyles,htmlId:this.htmlId,updateTitle:this.updateTitle}),s({src:this.$getRealPath(this.src),webviewStyles:this.webviewStyles}),t.publishHandler(i["l"],{},this.$page.id)},beforeDestroy:function(){c(),t.publishHandler(i["n"],{},this.$page.id)}}}).call(this,n("31d2"))},9593:function(t,e,n){"use strict";var i=n("83c2"),r=n.n(i);r.a},"95bd":function(t,e,n){"use strict";var i=n("1fdf"),r=n.n(i);r.a},"95eb":function(t,e,n){"use strict";function i(t,e){if(e){if(0===e.indexOf("/"))return e}else{if(e=t,0===e.indexOf("/"))return e;var n=getCurrentPages();t=n.length?n[n.length-1].$page.route:""}if(0===e.indexOf("./"))return i(t,e.substr(2));for(var r=e.split("/"),o=r.length,a=0;a0?t.split("/"):[];return s.splice(s.length-a-1,a+1),"/"+s.concat(r).join("/")}n.d(e,"a",(function(){return u}));var r,o=/^([a-z-]+:)?\/\//i,a=/^data:.*,.*/;function s(t){return plus.io.convertLocalFileSystemURL(t).replace(/^\/?apps\//,"/android_asset/apps/").replace(/\/$/,"")}function c(t){return r||(r="file://"+s("_www")+"/"),r+t}function u(t){if(0===t.indexOf("/"))return 0===t.indexOf("//")?"https:"+t:t.startsWith("/storage/")||t.startsWith("/sdcard/")||t.includes("/Containers/Data/Application/")?"file://"+t:c(t.substr(1));if(o.test(t)||a.test(t)||0===t.indexOf("blob:"))return t;if(0===t.indexOf("_www")||0===t.indexOf("_do"))return"file://"+s(t);var e=getCurrentPages();return e.length?c(i(e[e.length-1].$page.route,t).substr(1)):t}},9602:function(t,e,n){"use strict";(function(t){n("38ce");var i=n("cce2"),r=n("2be0"),o=n("f98c");e["a"]={install:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.routes;Object(i["a"])();var n=function(t,e){for(var n=t.target;n&&n!==e;n=n.parentNode)if(n.tagName&&0===n.tagName.indexOf("UNI-"))break;return n};t.prototype.$handleEvent=function(t){if(t instanceof Event){var e=n(t,this.$el);t=i["b"].call(this,t.type,t,{},e||t.target,t.currentTarget)}return t},t.prototype.$getComponentDescriptor=function(t,e){return Object(o["b"])(t||this,e)},Object.defineProperty(t.prototype,"$ownerInstance",{get:function(){return this.$getComponentDescriptor(this)}}),t.prototype.$handleWxsEvent=function(t){if(t instanceof Event){var e=t.currentTarget,r=e&&(e.__vue__||e),o=e&&r.$getComponentDescriptor&&r.$getComponentDescriptor(r,!1),a=t;t=i["b"].call(this,a.type,a,{},n(a,this.$el)||a.target,a.currentTarget),t.instance=o,t.preventDefault=function(){return a.preventDefault()},t.stopPropagation=function(){return a.stopPropagation()}}return t},t.mixin({beforeCreate:function(){var t=this,e=this.$options,n=e.wxs;n&&Object.keys(n).forEach((function(e){t[e]=n[e]})),e.behaviors&&e.behaviors.length&&Object(r["a"])(e,this)}})}}}).call(this,n("31d2"))},"960c":function(t,e,n){"use strict";n.r(e);var i,r,o={name:"View",functional:!0,render:function(t,e){return t("uni-view",e.data,e.children)}},a=o,s=(n("e443"),n("8844")),c=Object(s["a"])(a,i,r,!1,null,null,null);e["default"]=c.exports},"96a6":function(t,e,n){"use strict";function i(){return{top:0,bottom:0,left:0,right:0}}n.d(e,"a",(function(){return i}))},9848:function(t,e,n){"use strict";var i=n("65db"),r=n.n(i);r.a},9854:function(t,e,n){"use strict";var i=n("f669"),r=n.n(i);r.a},"9a7c":function(t,e,n){"use strict";(function(t){var i=n("909e"),r=n("09b2"),o=["adpid","data"];e["a"]={name:"Ad",mixins:[i["f"],r["a"]],props:{adpid:{type:[Number,String],default:""},data:{type:Object,default:null},dataCount:{type:Number,default:5},channel:{type:String,default:""}},data:function(){return{hidden:!1}},computed:{attrs:function(){var t=this,e={};return o.forEach((function(n){var i=t.$props[n];i="src"===n?t.$getRealPath(i):i,e[n.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))]=i})),e}},watch:{hidden:function(t){this.adView&&this.adView[t?"hide":"show"]()},adpid:function(t){t&&this._loadData(t)},data:function(t){t&&this._fillData(t)}},mounted:function(){var e=this;this._onParentReady((function(){e._adId="AdView-"+e._newGUID();var n=Object.assign({id:e._adId},e.position),i=e.adView=plus.ad.createAdView(n);i.interceptTouchEvent(!1),plus.webview.currentWebview().append(i),e.hidden&&i.hide(),e.$watch("attrs",(function(){e._request()}),{deep:!0}),e.$watch("position",(function(){e.adView&&e.adView.setStyle(e.position)}),{deep:!0}),i.setDislikeListener&&i.setDislikeListener((function(t){e.adView&&e.adView.close(),e.$refs.container.style.height="0px",e._updateView(),e.$trigger("close",{},t)})),i.setRenderingListener&&i.setRenderingListener((function(t){0===t.result?(e.$refs.container.style.height=t.height+"px",e._updateView()):e.$trigger("error",{},{errCode:t.result})})),i.setAdClickedListener((function(t){e.$trigger("adclicked",{},t)})),e._callbackId=e.$page.id+e._adId,t.subscribe(e._callbackId,e._handleAdData.bind(e)),e._request()}))},beforeDestroy:function(){this.adView&&this.adView.close(),delete this.adView},methods:{_handleAdData:function(t){var e=t.type,n=t.data,i=void 0===n?{}:n;switch(e){case"success":this._fillData(i);break;case"fail":this.$trigger("error",{},i);break}},_request:function(){this.adView&&(this.data?this._fillData(this.data):this.adpid&&this._loadData())},_loadData:function(e){var n={adpid:e||this.adpid,width:this.position.width,count:this.dataCount,ext:{channel:this.channel}};t.publishHandler("onAdMethodCallback",{callbackId:this._callbackId,data:n},this.$page.id)},_fillData:function(t){this.adView.renderingBind(t),this.$trigger("load",{},{})},_updateView:function(){window.dispatchEvent(new CustomEvent("updateview"))},_newGUID:function(){for(var t="",e="xxxxxxxx-xxxx",n=0;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n=0)&&(this.valueSync.length=t.length,t.forEach((function(t,e){t!==n.valueSync[e]&&n.$set(n.valueSync,e,t)})))},valueSync:{deep:!0,handler:function(t,e){if(""===this.changeSource)this._valueChanged(t);else{this.changeSource="";var n=t.map((function(t){return t}));this.$emit("update:value",n),this.$trigger("change",{},{value:n})}}}},methods:{getItemIndex:function(t){return this.items.indexOf(t)},getItemValue:function(t){return this.valueSync[this.getItemIndex(t.$vnode)]||0},setItemValue:function(t,e){var n=this.getItemIndex(t.$vnode),i=this.valueSync[n];i!==e&&(this.changeSource="touch",this.$set(this.valueSync,n,e))},_valueChanged:function(t){this.items.forEach((function(e,n){e.componentInstance.setCurrent(t[n]||0)}))},_resize:function(t){var e=t.height;this.height=e}},render:function(t){var e=[];return this.$slots.default&&Object(i["d"])(this.$slots.default,t).forEach((function(t){t.componentOptions&&"v-uni-picker-view-column"===t.componentOptions.tag&&e.push(t)})),this.items=e,t("uni-picker-view",{on:this.$listeners},[t("v-uni-resize-sensor",{attrs:{initial:!0},on:{resize:this._resize}}),t("div",{ref:"wrapper",class:"uni-picker-view-wrapper"},e)])}},f=d,p=(n("1720"),n("8844")),v=Object(p["a"])(f,l,h,!1,null,null,null);e["default"]=v.exports},a004:function(t,e){t.exports=["uni-app","uni-layout","uni-content","uni-main","uni-top-window","uni-left-window","uni-right-window","uni-tabbar","uni-page","uni-page-head","uni-page-wrapper","uni-page-body","uni-page-refresh","uni-actionsheet","uni-modal","uni-toast","uni-resize-sensor","uni-shadow-root","uni-ad","uni-audio","uni-button","uni-camera","uni-canvas","uni-checkbox","uni-checkbox-group","uni-cover-image","uni-cover-view","uni-editor","uni-form","uni-functional-page-navigator","uni-icon","uni-image","uni-input","uni-label","uni-live-player","uni-live-pusher","uni-map","uni-movable-area","uni-movable-view","uni-navigator","uni-official-account","uni-open-data","uni-picker","uni-picker-view","uni-picker-view-column","uni-progress","uni-radio","uni-radio-group","uni-rich-text","uni-scroll-view","uni-slider","uni-swiper","uni-swiper-item","uni-switch","uni-text","uni-textarea","uni-video","uni-view","uni-web-view"]},a048:function(t,e,n){"use strict";(function(t){var i=n("909e"),r=n("2cc9"),o=n("ea56"),a=n("3231"),s=n("0372"),c=n("c80c"),u={SELECTOR:"selector",MULTISELECTOR:"multiSelector",TIME:"time",DATE:"date"},l={YEAR:"year",MONTH:"month",DAY:"day"};function h(t){return t>9?t:"0".concat(t)}function d(t,e){t=String(t||"");var n=new Date;return e===u.TIME?(t=t.split(":"),2===t.length&&n.setHours(parseInt(t[0]),parseInt(t[1]))):(t=t.split("-"),3===t.length&&n.setFullYear(parseInt(t[0]),parseInt(t[1]-1),parseInt(t[2]))),n}function f(){if(this.mode===u.TIME)return"00:00";if(this.mode===u.DATE){var t=(new Date).getFullYear()-100;switch(this.fields){case l.YEAR:return t;case l.MONTH:return t+"-01";default:return t+"-01-01"}}return""}function p(){if(this.mode===u.TIME)return"23:59";if(this.mode===u.DATE){var t=(new Date).getFullYear()+100;switch(this.fields){case l.YEAR:return t;case l.MONTH:return t+"-12";default:return t+"-12-31"}}return""}e["a"]={name:"Picker",mixins:[s["b"],i["a"]],props:{name:{type:String,default:""},range:{type:Array,default:function(){return[]}},rangeKey:{type:String,default:""},value:{type:[Number,String,Array],default:0},mode:{type:String,default:u.SELECTOR,validator:function(t){return Object.values(u).indexOf(t)>=0}},fields:{type:String,default:""},start:{type:String,default:f},end:{type:String,default:p},disabled:{type:[Boolean,String],default:!1}},data:function(){return{valueSync:null,theme:__uniConfig.darkmode?plus.navigator.getUIStyle():"light"}},watch:{value:function(){this._setValueSync()}},created:function(){var e=this;this.$dispatch("Form","uni-form-group-update",{type:"add",vm:this}),Object.keys(this.$props).forEach((function(t){"name"!==t&&e.$watch(t,(function(n){var i={};i[t]=n,e._updatePicker(i)}))})),this._setValueSync(),t.subscribe(c["b"],this._onThemeChange)},mounted:function(){o["a"]((function(t){t&&o["b"]()}))},beforeDestroy:function(){this.$dispatch("Form","uni-form-group-update",{type:"remove",vm:this}),t.unsubscribe(c["b"],this._onThemeChange)},methods:{_setValueSync:function(){var t=this.value;switch(this.mode){case u.MULTISELECTOR:Array.isArray(t)||(t=[]),Array.isArray(this.valueSync)||(this.valueSync=[]);for(var e=this.valueSync.length=Math.max(t.length,this.range.length),n=0;ne?e:s.mul.call(Math.round((t-n)/this.step),this.step)+n},_getValueWidth:function(){return 100*(this.sliderValue-this.min)/(this.max-this.min)+"%"},_getBgColor:function(){return"#e9e9e9"!==this.backgroundColor?this.backgroundColor:"#007aff"!==this.color?this.color:"#007aff"},_getActiveColor:function(){return"#007aff"!==this.activeColor?this.activeColor:"#e9e9e9"!==this.selectedColor?this.selectedColor:"#e9e9e9"},_onTrack:function(t){if(!this.disabled)return"move"===t.detail.state?(this._onUserChangedValue({x:t.detail.x}),this.$trigger("changing",t,{value:this.sliderValue}),!1):"end"===t.detail.state&&this.$trigger("change",t,{value:this.sliderValue})},_onClick:function(t){this.disabled||(this._onUserChangedValue(t),this.$trigger("change",t,{value:this.sliderValue}))},_resetFormData:function(){this.sliderValue=this.min},_getFormData:function(){var t={};return""!==this.name&&(t.value=this.sliderValue,t.key=this.name),t}}},u=c,l=(n("f2a9"),n("8844")),h=Object(l["a"])(u,i,r,!1,null,null,null);e["default"]=h.exports},a187:function(t,e,n){},a18d:function(t,e,n){"use strict";var i=n("07b5"),r=n.n(i);r.a},a1d7:function(t,e,n){var i={"./audio/index.vue":"d55f","./button/index.vue":"d6fb","./canvas/index.vue":"63b1","./checkbox-group/index.vue":"d514","./checkbox/index.vue":"ca37","./editor/index.vue":"b1d2","./form/index.vue":"baa1","./icon/index.vue":"0abb","./image/index.vue":"7efa","./input/index.vue":"e0e1","./label/index.vue":"2a78","./movable-area/index.vue":"dbe8","./movable-view/index.vue":"65ce","./navigator/index.vue":"5c1f","./picker-view-column/index.vue":"e510","./picker-view/index.vue":"9eba","./progress/index.vue":"801b","./radio-group/index.vue":"3a3e","./radio/index.vue":"1f8a","./resize-sensor/index.vue":"120f","./rich-text/index.vue":"7aa9","./scroll-view/index.vue":"8f80","./slider/index.vue":"a050","./swiper-item/index.vue":"2066","./swiper/index.vue":"383e","./switch/index.vue":"c1f1","./text/index.vue":"e9d1","./textarea/index.vue":"da9d"};function r(t){var e=o(t);return n(e)}function o(t){if(!n.o(i,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return i[t]}r.keys=function(){return Object.keys(i)},r.resolve=o,t.exports=r,r.id="a1d7"},a5bd:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}));var i=[];function r(){return i}function o(t,e){i.length=0,i.push({$page:{id:t,route:e}})}},a770:function(t,e){(function(){"use strict";if("object"===typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=window.document,e=[];i.prototype.THROTTLE_TIMEOUT=100,i.prototype.POLL_INTERVAL=null,i.prototype.USE_MUTATION_OBSERVER=!0,i.prototype.observe=function(t){var e=this._observationTargets.some((function(e){return e.element==t}));if(!e){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},i.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},i.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},i.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},i.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,n){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==n[e-1]}))},i.prototype._parseRootMargin=function(t){var e=t||"0px",n=e.split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},i.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(a(window,"resize",this._checkForIntersections,!0),a(t,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in window&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},i.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,s(window,"resize",this._checkForIntersections,!0),s(t,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},i.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():l();this._observationTargets.forEach((function(i){var o=i.element,a=u(o),s=this._rootContainsTarget(o),c=i.entry,l=t&&s&&this._computeTargetAndRootIntersection(o,e),h=i.entry=new n({time:r(),target:o,boundingClientRect:a,rootBounds:e,intersectionRect:l});c?t&&s?this._hasCrossedThreshold(c,h)&&this._queuedEntries.push(h):c&&c.isIntersecting&&this._queuedEntries.push(h):this._queuedEntries.push(h)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},i.prototype._computeTargetAndRootIntersection=function(e,n){if("none"!=window.getComputedStyle(e).display){var i=u(e),r=i,o=d(e),a=!1;while(!a){var s=null,l=1==o.nodeType?window.getComputedStyle(o):{};if("none"==l.display)return;if(o==this.root||o==t?(a=!0,s=n):o!=t.body&&o!=t.documentElement&&"visible"!=l.overflow&&(s=u(o)),s&&(r=c(s,r),!r))break;o=d(o)}return r}},i.prototype._getRootRect=function(){var e;if(this.root)e=u(this.root);else{var n=t.documentElement,i=t.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},i.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,n){return"px"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100})),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},i.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,i=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==i)for(var r=0;r=0&&s>=0&&{top:n,bottom:i,left:r,right:o,width:a,height:s}}function u(t){var e;try{e=t.getBoundingClientRect()}catch(n){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):l()}function l(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function h(t,e){var n=e;while(n){if(n==t)return!0;n=d(n)}return!1}function d(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}})()},a82d:function(t,e,n){"use strict";function i(t){return new Promise((function(e,n){function i(){var i=new plus.nativeObj.Bitmap("bitmap_".concat(Date.now(),"_").concat(Math.random(),"}"));i.load(t,(function(){e(i.toBase64Data()),i.clear()}),(function(t){i.clear(),n(t)}))}plus.io.resolveLocalFileSystemURL(t,(function(t){t.file((function(t){var n=new plus.io.FileReader;n.onload=function(t){e(t.target.result)},n.onerror=i,n.readAsDataURL(t)}),i)}),i)}))}function r(t){return new Promise((function(e,n){0===t.indexOf("http://")||0===t.indexOf("https://")?plus.downloader.createDownload(t,{filename:"_doc/uniapp_temp/download/"},(function(t,i){200===i?e(t.filename):n(new Error("network fail"))})).start():e(t)}))}function o(t){return r(t).then((function(t){return window.webkit&&window.webkit.messageHandlers?i(t):plus.io.convertLocalFileSystemURL(t)}))}n.d(e,"a",(function(){return o}))},a944:function(t,e,n){var i,r,o;(function(n,a){r=[],i=a,o="function"===typeof i?i.apply(e,r):i,void 0===o||(t.exports=o)})("undefined"!==typeof self&&self,(function(){function t(){if(document.currentScript)return document.currentScript;try{throw new Error}catch(h){var t,e,n,i=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,r=/@([^@]*):(\d+):(\d+)\s*$/gi,o=i.exec(h.stack)||r.exec(h.stack),a=o&&o[1]||!1,s=o&&o[2]||!1,c=document.location.href.replace(document.location.hash,""),u=document.getElementsByTagName("script");a===c&&(t=document.documentElement.outerHTML,e=new RegExp("(?:[^\\n]+?\\n){0,"+(s-2)+"}[^<]*