电量助手
// ==UserScript==
// @name 电量助手
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.3
// @description 根据电量变化通知电量情况,设备充电状态提示,充电完成提醒,消耗特定电量后提醒
// @author Exisi
// @background
// @grant GM_notification
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @homepage https://scriptcat.org/script-show-page/824
// @supportURL https://exi.ink
// ==/UserScript==
/* ==UserConfig==
电量提示:
low_battery:
title: 低电量提示开关
description: 设备低于指定电量时发送通知
type: checkbox
default: false
low_battery_value:
title: 低电量百分比
description: 达到以下数值时通知
type: mult-select
default: [15]
values: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
---
电源状态:
incharging:
title: 电源接入提醒开关
description: 电源接入时发送通知
type: checkbox
default: false
nocharging:
title: 电源断开提示开关
description: 电源断开时发送通知
type: checkbox
default: false
---
充电提醒:
tocharging:
title: 充电提醒开关
description: 始终提醒为设备连接电源
type: checkbox
default: false
tocharging_interval:
title: 充电提醒间隔
description: 每降低以下百分比时,发送充电提醒
type: number
default: 5
min: 1
max: 99
unit: (%)
full_battery:
title: 充电完成提醒开关
description: 设备电量达到 100% 时发送通知
type: checkbox
default: false
---
通知设置:
notice:
title: 通知时长
description: 设置通知显示的时间,默认4000(毫秒)
type: number
default: 4000
min: 0
unit: ms
==/UserConfig== */
return new Promise((resolve, reject) => {
let setting = getConfig();
console.log(setting);
getBattery(setting);
});
function getConfig() {
let setting = {
low_battery: {
enable: GM_getValue("电量提示.low_battery") ?? false,
values: GM_getValue("电量提示.low_battery_value") ?? [15],
},
status: {
incharging: GM_getValue("电源状态.incharging") ?? false,
nocharging: GM_getValue("电源状态.nocharging") ?? false,
},
reminder: {
tocharging: GM_getValue("充电提醒.tocharging") ?? false,
tocharging_interval: GM_getValue("充电提醒.tocharging_interval") ?? 5,
full_battery: GM_getValue("充电提醒.full_battery") ?? false,
},
notice: {
timeout: GM_getValue("通知设置.notice") ?? 4000,
},
};
return setting;
}
function getBattery(setting) {
navigator.getBattery().then((battery) => {
battery.onchargingchange = () => {
updateChargingInfo(battery, setting);
};
battery.onlevelchange = () => {
updateChargeLevelInfo(battery, setting);
setChargingReminder(battery, setting);
};
});
}
function updateChargingInfo(battery, setting) {
if (!(setting.status.incharging && setting.status.nocharging)) return;
let ischarging = battery.charging;
if (ischarging && setting.status.incharging)
notification("电源状态", "电源已连接", setting.notice.timeout);
if (!ischarging && setting.status.nocharging)
notification("电源状态", "电源已断开", setting.notice.timeout);
}
function updateChargeLevelInfo(battery, setting) {
let level = battery.level * 100;
if (level == 100 && setting.reminder.full_battery)
notification(
"充电提醒",
"充电完成,当前电量 " + level + " %,可以断开电源",
setting.notice.timeout
);
if (battery.charging || !setting.low_battery) return;
let levels = setting.low_battery.values;
if (!levels.includes(level)) return;
if (level > 30)
notification(
"电量提示",
"当前电量 " + level + " %",
setting.notice.timeout
);
if (level <= 30)
notification(
"低电量提示",
"当前电量 " + level + " %",
setting.notice.timeout
);
if (level <= 15)
notification(
"低电量提示",
"当前电量 " + level + " %,请及时充电",
setting.notice.timeout
);
}
function setChargingReminder(battery, setting) {
if (battery.charging) GM_setValue("mincount", 0);
if (!setting.reminder.tocharging || battery.charging) return;
let limit = setting.reminder.tocharging_interval;
let mincount = GM_getValue("mincount") == null ? 0 : GM_getValue("mincount");
mincount++;
if (mincount < limit) {
GM_setValue("mincount", mincount);
} else {
GM_setValue("mincount", 0);
notification("充电提醒", "请为设备连接电源", setting.notice.timeout);
}
}
function notification(title, value, timeout) {
GM_notification({
title: title,
text: value,
timeout: timeout,
image:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAAXNSR0IArs4c6QAAAqZQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ez/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKS0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2+3/2Or90Oj/0+T2xuT//+VZ/+VU/uRY/+NO/OJYveD//+JGytrr/+A6995Wtdz//90t89pU/9se7tZT/9kRr9X37NRS/9cHvs7e6tJR/9UA/tQA589Q/NMA6bDV48xPp8zs984A3sdNssHQ7scA1sBLnb/eqrjG0LtJ470AyLNFoq+8krLO1bIAvqtCmqaziqjDlqOvtqQ//3xCxqUAkp6q+3pA+HhAgJy19Xc/jJikrZs883Y/8XU+73Q+upsA6nI8/1WVeZOqpJM5hJCb5W87/0yQ8lCNq44A22o4m4s1hHnCfIaQcIie6k6IgXe+lIUzf3PA3UqBdn2Hj4AyyWEz/zWBmoEAeG6wd2q8/zB+ZXuP9zN8h3kv7jF4/yd5Z3J9x0J0tlgvgHMsbmC4iXMA/x903i5wqlMsd2spWml2/xVv0CtpsTtnoE4pemYAbWIm/wpoVl9owihiXFOPozZfkkcl/wJjZVsj+wJhVFdfsyVa9QJf7gJcaFcAhkEiXVQgR1Jc3QNWRUtRlCNOXU4AVEwdSD91PUpWzQJPQUdMbzYcVEYATEQafiJFugFINUBKNjtBpQFAQjsXXS0YRjoANi9baRs4UigVkAE3ODITOzEAKi81LChBUxcuegEvQB8QMikAKycPJCA8ISQrSQ8lYQElHSAiIh8MGB0iLhYMIx0ASgEdHRoKFhkcOwQZGRUFLQcVEhMWIAoLEA4DDA0PFgcHEQUJCQkFCAUDAwIBAAAAaA1J/AAAACZ0Uk5TAAQLExohKTE1O0NKUltkbXZ/h4+Ul6CmqrO5wcjQ197k6e70+v4sFh/hAAAlS0lEQVR42uzdz28TZx7H8e/458aJ7dhunMSJ49/Odk9VJJ8q9VipEnugUsVhpYpjxY0itEJCbKlYDlErsb0sRFrRhQOoEnAppAcQUigHQqVKVVGDAiTf/6QOP0Lmmcdm/Iw9nmeez+tfyJt5ZiYfJhQc0ancbLlSb3I/jepSqZBJEIRMPFdusXvV4qRFEBpTCy0eVDUfJQiF9BIraRSQQAgkF1hZPYuDQHNWrsleLMYJNBZbYI/qUwTaSlTZs9Y0gaYm6jwMBQItJes8HHkCDcVrPCw4BTQUWeKhaU0S6KbIQ1TH06Bu0jxUCwRaiVR5uNIEOplhid1HN9ZWZf51/I2TZ9bubrNEDb8X0Em8yQ7bN1Z7OW63tolnQc3NsMPd1Z7+eVy0tsWieoRAF7EmC14I//yFA8DhzCZeBmhsmgXba6u9HZc5+YAFSwS6KLPd7tqqiwuAUMAmCyYI9JBgwY3VPo73cGYLvxTSVJbtNlddXACc1tiuTKCHebYTDwDnI4DcJtu0YgRaqLHNo1WFE0B2CcA4SA9Rtrvh7gRwOrmNB0EdTbDdqssAnB6wTZFAB2m2+XXV5S2A0w38SlBHGbZ5oB7AGh4DdDTNNnfVAzjDNhUCHeRGFUCNQAcIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIwHAIIEQiyansdH6mODeAJbbZetTPg34esU1zbgCzM/ncdGYCnxVQFpkslCot1l19sYi/PzC4ifxik8OjWkzjUuBeIlfh0GnOT+HT425YmUUOqVoBX5t7Fysdwn/8bzWLuB3oJzJd45BrzSKBnlJLbIBmAZ+bkooV2RBVfHVSItNgc8zhoVAQmWWjVPHFKZukEaf/Qc0cwb50mN76uTWPe8E3svq/8VexiBuBV3JsqCV8dmxPkft5sXnzwtmzJ75QcvQf43P02KnzF9e3uJ8qXgoRzXBPWzdPHOqo+2C5PX4rn13Y2O1dAK4BOe5h+9rnHU/+1g6KlS83uIcl0+8Dsiy3eeLDjjd/bQfJJ9/vstSi2c8CUy2W2fii0wnVz7/ro4s7LDNPBovXWWL7bOcl3Y9/RwJ38Fcp7axFlrj2ccezIP78u45usVPT3LfCBXba7l79w3f9f2NlnZ2qpt4ITrbYYeNQmH/+7fby+V3cBrwWqbDDnQ/D/fPvOvKCmfEd+q48O1x79fMPy/O/3OFtFlUjpCqVLy3V6uNSWyrlUxYpSTRZdLEzBB+0g+7vzgLypCSSq/L4VXNK/S6w6Gan0wntA8BBh3dY0EyQgnRQJrS1NA0sxaL1DzsGHAAvHd1lwRwNzArShrJoeb4A/PqxGQfAS+dZ0ErQgCIlDpJShAYywYKdTzud0D8B7FteZ0GRBhS0EeUcDWSeBWc7xhwAe1a22K4Zp4FMc9BM0wCSLbZb75h0Aeg6yoIZGkQseCP6RtzDS+CdQx2D7gBeWme7ukUDCNIN4Buz5JpVY7sLpl0A2u2PXnh4HRgL4oy6FSe3Jtlu+2PjLgDt9kW2m9f6DmBPjtyaxQWgewnYYZtmlFxb4CBaIJeshuwC4F1bL9+zXYbcsoJ4AjA3LcW3gBc7Zj0DvvaJ8k1UnIMprrgE/tTEE6BrQ/UzhBMcTBNqJ9hmx8gToN3+ku0SigE8u+raueF6yjYpciXSZJvzHQOfAfas7LJNllxKst3D/7n11elh+pHtkmq3AJ+aeQvQtaF4ExBlwW23Afz79BB9t8t2UaX/DLLdMfQWwPFLwTK5VWW7p1dcBvCf08Pz9R+sdhNTcOxATFmCiA6zTUP9TfAvY7gE3FN9F1xim7Om3gO22+8rPkbRFKseAv89PSyXlLetFbb53NR7wK7fxbtol6wKC55d9fkQ+PopC6oWuWK12OaQsfeA7fYdxccAyvC4D4F7LMqq3cLudAwO4KLypqLMop98PQT+z6KypfYe83eTAzilvA5PNlnw3M9D4NxTFjST5FKCbTbNfQp0vAuc8fRljd98PAR+ZlFO9UX2hskBHFVfhlqL6ofAV+M7AJwvAtdNDuCIh2VtouE4BK77dAice6Z8ADjnQHdMDuAzL/9NODu2Q+BnySQYAfgeAJVYdN+XQ+AHFi1aCGAMAcTqLNjx4xD49jkLGglCAGMIgDIsenLZZQHfnFb2mEVZQgBjCYDmWHRfeRmgfgCUCAGMKYBojQU7t0b8QvDbHRbU4whgXAHQFIv+GPEh8IRFaUIAYwuAZln0cKSHwI8smicEMMYAolUW7I7yEPhuhwW1GAIYZwCUajkOgStuDwGVFZhoihDAWAOgoo+HgPMAKBICGHMAkYpf+zDnDJirUQQw7gBoosWqI+FvPB4ArUlCAGMPgAo+7cPusWiGEEAAAogs+XIIXGJRJYIAghAAJZs+jISdM+DWBCGAQARAeR8OAecBUCAEEJAArLKHfZjqCmwpggCCEgAlPIyE1WfACCAwAdC0h32Y6gwYAQQoAFrwcAiozYARQKACiHsYCavNgBFAoALwNBJWmQEjgIAFQKUR7cPkM2AEELgARjUSls+AEUDgAhjZSPgxizKEAAIYgOeRsPsZMAIIZAAeR8LuZ8AIIJgBeBwJu58BI4CABuBpJOx+BowAAhvA0EfCzhVYLYYAghuAp5Gw2xkwAghwADTj4RBwNwNGAIEOYKgj4UuSGTACCHYAnkbCbmbACCDgAXgeCfefASOAwAdgeRsJ958BI4DgBzCskfA52QwYAWgQwJBGws4DIE8IQIsAPH1Est8MGAHoEYCnkXC/FRgC0CQAzyNh+QwYAWgTgMeRsHwGjAA0CsDjSPjccxY0E4QANAqAsix6MsAh8FgyA0YAWgXgaST8A4sWLASgWQAeRsLXnTPgOCEAzQJQHwlffsKiDCEA7QJQHgnfZ1GJEICGASiOhK87Z8AxBKBjAGoj4cuyGTAC0DIApZHwQ8kMGAFoGoDCSPiWZAaMAHQNYPCR8BXZDBgBaBvAwCPhhywqEgLQOIABR8K3JDNgBDA6h9lmlgR+j4SvPJXMgBHA6HzUf3Ll+0j4F8kMGAGM0iYfNEEjYJVdHwK3JTNgBODfnw8vk8DnkfBV2QwYAYzU8rqwuRuFnPMQcHkA5AkBjNjKBr/WmCKRvyPh25IZMAIYuffPv+A9pSQ5+DoSviqbASMAPxI4cuq9TJwkfB0J/8aiHCEAn/yFpPwcCf8kmQEjgHY7JAG8cyR8XTYDRgDtdkgCkI6E+x8AWUIAXWEJ4B0j4fuSGTAC2BOaAPqOhK/vSGbACGBPaAKgtGQk3G8GjABeCk8AspFwnxkwAnglRAFEa9J9mHwGjABeC1EA0pFwrxkwAngtTAFIR8LyGTACeCNUAUQkI2HZDDiKAPaFKgDZSPiqbAaMAPaFKwDJSPgZi4qEAN4KWQCOkbBTNYoADghZAM6RsGQGjAAOCFsAVOD+ZggBHBS6AKwy91OJIACb0AUgjISdM2AEYBO+ACjHveUJAfhu+fCx96ai5ODDSNg5A0YAfls+tcVdrbk4+SXRYLlmkhCAz1bW+bV6ivySZrkMIQCfLd/hfY0k+SXX6wYAAfjsGB+wSL6ZbrGolSMiBOAr5/8O9s1kle2qk0SEAPzl/D6AfyL5Or/VyEeoCwH4y/mFED9FMvOvGqjPZyL0EgLwl/MbQX6LJVPJGO1DAPsMCcAOAbyFABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAOMKIBqNxePRaIR0gACGEYCVSKWz+eJ8uVpv8AGNSrk0W8hlUnGLAgoBeAsglsoUSpUWv0urulCcTsUocBCAcgDRyVypzoOplQrpOAUJAlAKIJmdrbCq6lw2GZgjAQEMHEB0aqbKXjVK2WBcCRDAYAFM5MstHpJyPmVRbwjgrYAEkMhV/mTv7n6iyNI4jguoBMe3gYiyMqK8SMwBOrykeVnBoywL6iq4MCPNqLvMymxwEjVemEXCxYbEaEjUZIXMBSFeIGYiMQibNQzJBL0QQiIjwXSwcbvr+U92RVc8dU43VU89xXZS5/Mv9Neuql+dRqCVnf5F1AZ0AAQIA0hOzQI37E9L2aCkA0CjDyBpxz5wz76dSRtkOgAk+gCSd+WAu3IztkqXAh0ABn0Aidu/gvWQtcO0HesAEMgDSPoyG9ZLTpqwFOoAEIgD2JiWA+spNz15wyc6AATSADal5cJ6y8v4lIAOAIEygJw8QAmHQgsLC6FQGJnA7s0bVugAsPABoEUWpob7ei63NTfW8lW1J5rbLvf0DU8tROxdCFZWYh3AqjgOIDIz3NchfOwK1f66lutD02HLCbz/O3E6gFXxGYAxM9zTXMvXVFXKPvA1dA7MGmDF/m06gM/EXwDGTH/HCW5FRTETlLfcnrYSQWaKDuCTOAsgNN7TyK2pKGIKle1Di7CWvPQkHcBH8RRAcLitllvkL2LRFDYNrNnA/q06gA/iJoDgcEct59h//XIDQYhtz0YdwHvxEYAxdbmWYz9+NV/rhAGxZG/TAayXkjGIJdjfyK2rKmYWHeudh1h2J+oA1sWZNxDDjJ1//Ly6lNnga5+EGLJSdADuy79pxPru7+B2+AuYTadHDIgqLy1BB+CymhcQlfG4mXPib39Zw1AEotq7UQfgqjNLEI0x3sxt8RcynLohA6I5sEUH4KIuA6Kx+/FXFTG8hugXgtwdOgC3HHoA0cy0cXv8zJmTEzGeBnQA63z5D/Yc5cirP177PESRuVEH4ILjS6AW6a/n9lQUMAJlvWFQy9qsAyB3ZhnUnjdzm0oZkYYJUMv5QgdA7JIBSuG+Wo74+qfSHgSl3O06AFI3QW2qkSO+/gkdGQW1nToAQvdAKdLH7fIzau0hUErVAVDJfwBKM80ccfknVzcJSrt0AO5+/sP13KbqYuYG340IqKQn6AAIHPoJVEId3K7qIuaSpiCo7E7QATiW/whUZhq5ADH+UjoyCSrpOgDHfgSVx/X2P/8C5iLfXVDZpQNw4/M3ejgnePyj1RkBhVQdAP3zf7gD8fkzBIobgZ06AAe6QCHYjPj8C5n7GuZBYbsOAO1bQ3n7F6efP2OVkyDL3aIDQDoVBtlUfVx+/39QNgGynGQdAErNkvrzj7P7f4FvBGT7N+oAEErmQDYe358/Y74hkH2VqAOwLf9fIHtcG+efP2OFAyDbowOw7ab684+j/TcaVQE7dQAEP/8br+U8Tt7/xFI4BJK8LToAW2qW1fd/cfH+F3MnmL1JB2DDoTmiz9/P/h98oyDJTNABOHoDMFPP43gAMCmbBEmaDsCysyAJNvK4fwD4TOWs4jZAB2BRyRKYhZr5+jwAlFX6GIWGoLwHJekArBkDM6ODr8MN4MneySAABCduHGOONYXBLEMHYMk1kPRw928AT08Yq8GNNjCn2kGyXQdgQU0YzIY5QhWzw3fbgM9FeguZQ3fBLGeTDmBtz8DseT1HKHL4Gm+0jDnjmwCz3+gA1nSJ5gGAlzp9bINRH3Omch7MtukA1lCyTHMDWIEabkR3mUNNETA5kKQDiO0nMOvnCNUFqNc3IqOJOXQDzNJ1ADbfAT2vdf0CcBuimGQOFU6C2RYdgK13AOFm1y8AVyGqJubQkSCY7EvQAdiZAHq42xNgqwFRDTCnWsFshw7Axh3gOMfw4xY72SxzbAhMspN0AJZfAoYa3Z6AToYglnLmVOUimOzSAURx3CC5APBiZlndIsR0ktFPwrmbdQAWHwGfH+UIFYi3tnR3gbJRMNmjA1A6TvMEwIvQA6DsNHPuWAhMknUAlt4C93EMP34AlNUxAtfBJEMHoHAKTIL1Lm+AA7AWw8cI+GbBJEUHYOEt4GX0FwB+AHwLgnlGokV6K6gDWPsL4DnHqHY0AL4clLZgEhNgkqIDWOsRwGjjGKVOBsDXF5+CYIjRaIiAKEMHYFJjgOgxx6hyMgC+/SHwCwh63fq5WN5mHUDsEdBoRn4B4AfAd1cCgdcgaGdEjoVBtEsHICgJUxwD5NUOBsBIdyAQeIfYgVAHBHM36gBi/TEgo5Fj+PEDoHEnEAh8B6LDjMrhEIhSdQCfyX+D+AJAbwBl0yC7H/ivbhCEGHPtKyA7UQew6izRFwB+AHwYeO+O9DaYzOEwiLbpAFaNkTwC8CL0APg0sGIQBKNu/t2IvTqA6M+AbRyjAj0A/nIusOKpdCyYToMBos06gGh/DmaKoxSjB8DzgRXmGeA6ozQKolQdwEf5v4Kow70RqF05AAZWSDNAK6PUBKIDCTqAD86AaOGoa7eALRHlAPg/Eek8EKVpEG3VAahXwD6OUoQfAD/6AURljJB89dmjA1iRvwSCyAmOUYEeAD/pBkGQ0SoPgSAnUQeg+jXQOHfpNcBh9QC46j4IphmxIRBt0wG894DkFpAXYAfAVQ9BMMKINYFojw5AcQVYqOUYFegBcNXPILjNqM2CIDdRByA/A/S7cwUoHFIOgIKXIOhk1HpBtE0HIP+voG3uvAe6qx4ABW9B0MKoNYBotw7g4MFXIFjgrlwBrqsHQME5A3cmHD8FHNABHKwhugKgBkDRFRBEfMz1a0CyDuAaiJo5SgFqABTdwp4Jx18DvtQBjElXAPr3AKfVA6DZIAgmmIT8OSDT8wEcClMcBeJ+xAAoQZ8Jxx8MykvyegCnSH4OxIvtDoC3AjL8mXD8j4S2ej2ALhBE6jlGNWIAlMlnwun5QiBI9XoAYyRHQSoQA6DsHfqn4fhjIZleD2CJ5E2wHzEASv4CokrmhqvmNdjbAdSQzIC8GDEAChBnwpFOgijF2wFcIrkF4IgBUHZH8TKYXmEQBDu9HcCPFD8J51WIAVD2EHEmHGECBHu8HcALkh3YjxgABYgz4VRrcJa3A1gmOQtSihgAZS8RZ8KdnwrJS/RyADUgaqS8B2wIWhsAUWfC8coMEKR4OYCzIAhynEInAyDiTDjp64DtXg6gi2QGqnI2AKrPhBtlDAExBaV5OYBHIOin2wF9E5YHQPUMsMjcchsEe70cwAsQ9JA9BBSOxBgALc0AoVHJyEBvSzn5Hw/O8nIAyySHQUqtDYA/nwvEch+sCI80ER8KyUvwbgAlIDpB9RBww8IAKH8DWDRymDnii4Bgk3cDOA6CECc6DtapGgC/C8TWDVYtNjFH5kGwxbsBfAuCGY5SbWkA/D6whosGWBVyVsAkCLZ7N4BrJD8KrEINgLLXYFmogfAngqneDeAezVMgagCUPQTrpn10bwPSvRvAI5KnwArUACj7PgLWdTK8ThBkeDeAZyC4TDADlNsaAPFfAYs+soOhmd4NYI76XaB6ABwMWHP+NVjXytBOgyDLuwEs0exAyAFQduXfYNkQQ6sDQbZ3AwiTvAwuXWMADFjX/Q6smmVoZfIUSB/Aby/ce/Li17W9Upsbu3Qo1oTX9WzulXMgqucoxbEHwHMBG668hqjo3haGQZBEH8CFJxFw6s3X0Z/fl4Ecfggsxg+AsvMPrV4GjjC0RRBsog7gwhxQMP4c6w970gtyZ38erhUzAMouDr40wII6siMhm2kD+P0TIBI+HmXAjcsAUAOg2p+6b90xk64NZWQBJJMG8Mc3QGbsoEL+K3DHgqN3QUfUPwGmMijlyvCmXQzgm2WgY5Qo/6hTXAYwCZLIrQCV+2A2ShdACmEA34SB0tfKc3wumeE4wjEb8W9AUrllgNlVuteBW+gC+MMyUDK6fid7EI8BFM6qBkAq3REwC5fT/TjoC7oAXgCtf/xV9s94DKBFNQBSufIOJHdZPH4D/B2I/e0/7N3/T1X3HcfxDxeVoAi2Bmz5Vh1wG3OUmza3o9p2jRiFQgNamGPGWd2md9SpxDXEUvmlbFrDHM06jcbObPFbLCZTIW5KNGCIEo1URnaRa733vP6TlSyd/ZzPOdxzPud97j1yP48/QZ85n895nw+fGxF96cc9wAmTASCV3dMQRGsIAiDfA2x8AlpTERN7n/owgGGTASCRXz6CQG/VNB9uAr8A+QpgZtBnc4CZAGLgTX+632C3ZBG/uAtRp/Yd/80BHoPWYMTcA38FUK1pYSSXeHRVYiyw7SasNgC+mwRuByl9MGJh7yj89C1ACMDaI8eTgasQXVituTPuzbeAkyD07a2DEWtHRhMgp6+X/xgUh023ueshpA4JDYQ0l2LgzCMK4D54Twf/fCypg+b2RpL5+KB7CXAa5M8DjMGu6f2OBoCi4RrNpRB4ROcB3tLBmT52yIbfRtJomuxE0BnYNr3HzQAQ429rbtWCU8FoAvgAvFOHfB/AFDhb5QNog313t8kPABGtJ7oojP5M4BZD6If8H8ADslPBoUnY95X8ADDWpH3Pd6eCt4Pz4DkIYJTu7wI6YV/817IDwESbRmAnOMWZG8Atur8MCo3BvvM/T+5XZgPAnRqFLnCKMjeAQXD63fxtYFMCtj0iGADS/ZD80swN4DTJNZHvcJdC2rI76QDwNkR93lwVWZC5ARyhmQV/v7TGYdfnBANAsknwoswN4GNw9Dp3x4KbxgjeA8gHgKI4OAsyN4BIgvZvw0IdYwQBWAwAwxqRWnCqAhkcwBT5nwdv6rk8PC6KCwE4HACOva1RaQNnBcvgAEZp3gMdH8H4k/QAkP4tsDSTAxikvSPGWhScTyUGgGQugFOYyQGcpjkUpiVTY/81cI/ZALDVw7uCCzI5gCM0FwVWO7ySIUEwACS7JjA3kwOI6DTfAx1O3x85GwB2aZSawMvO6ACmaH40zOG+67ajAeBRjVQnOMtZRgcwSvOzgQ6n71elB4D0e8DizA7ga3Bi6+S+Bjicvn9FMACkuh3ixcwO4AhIZoGvOdt4fy5xApDKBvAWZXYAxmFwtze7wDg4++2fAHxXI9YOTlV2hgfwgGQU9Kaj6Ts+JBgAEl0UXMYyPIBBcGLrvdgEbALnW4kBIJXVk+AUZnoAX4JkElDt5LF7V3oASD8FWJzpAezVyX87VNQDzk2JASCVHvDmZ3oAkf+Q3BLxppN19zzBCUCiqwHKWcYHMEjz46GrHPyr/0ViAEhkjQ7OUhXAEfB6PZgEjCcZA1y1uAyaXgd4C1UAkafgjNCvASEdnD2SA0D6FaAioAKIjJKsAe/Y/6E+fZvEAJDGuzo4LzMVQOS052tAKzjTNk4ArtE80QlegQogEtmbIHkP+LHthfdu0gHgZL2mpWIFqJqnAjBZA1qo14A+cK5KDABp1OvglDAVgMkacI56DbgMzvkkA8B4q0bJukTkqwDM1oBYHel7gHgmXGIASCIUNX4JVAGYrgHdcmvAKrtnwiUGgCR2glfMVACma8AI6aEA8Uy4xACQxAB4+SoA7vJZt9vAtTbPhMsNAOm3gBUBFYD5TSHoJ9wGimfCJQaAJE6AV8RUABbfA/Rmum2geCZc4k+AKayJg5erAvi/KZCcClhl60y4xACQwlHwypkKwOp0OGINZNNA8Uy49QBwg+adcBS8AhWA9SgAvWTTQPFMuMwAkP4zQGW2CmCWbWCsgexNcLVwJtxiALhJ81B4UtgCqgB+4KBO8ghYa+dMeAoGgKIu8KoWqAA4o+SPAOsz4R/ehahD81JNFLyXmQqAcwQkLwJrk58JlxgA0h8GRq4KIMmbYLyZaBh0FJyb8gNAeWti4JUyzwPQnz5fEjDoJ3oEXADnvMQAkHwIiMWeBDC36FtpdgE3wLkL0Y2w5qlGXRgCqQCSG1lH8giYBE9iAEj9GRB5KgA79hE8AoQz4RIDQOpzAChjKgA7og0EB0PeRRKxRs1b4XEY5KkA7DlH8EWgHhzpAaC8PvEBoALwdB9YbTkIlB8AymvSYbBQBWDXRJ3rcwGhBGbToXksNAxhCKgCsO24+33gGGbRo3mtBwaVC1QAEouA/D6wD9bOaF5rjMPgRaYCcGCiwfUvCMDS5ZDmsfAYDFYEVACO9Lv+JDAMjjAATOkMGPlMBZCCcdDaHywCrRIDQCJtMCplKgCHYs1uF4EzEgNAErVRcQeoAnDsXp3LRSA8DFG0UfNa6AaMXmApC+DfZ235vd8cm4ZRv9s3gTViAZONWho2AGVZKQzgr7b84ZDfnIKg2+04KHwBvOF6zXPtMKrKZSqA5G4RTAOEcVDbGJ6JdoU0zzXFYbSUqQBs+GwKRrEW18fDQm0XopgRH+gIa96rnYRRWUAFYMvfZedB4rsgb0Nra2t9WEuFmjEYVSxgKgDZADBSJ7UNSJfQAAQFTAUgHwCurZOfBqTeCQiKmQrATQA4Lr0RTL2jECzPVgFIByBfwDuvaWnQBUFlLlMBuAwAvTIFVGsp1wFRPlMBuA4AvXKvAim2U4egiKkAJAIgGQm+uVpLqXYdgrKACoAkAPT6/mWwQ4dgxXymAqAJAMd9/jLYCVFFLlMBUAWAc+v8XEAPRFV5TAVAFwD663xbQOgETBQwFQBlABhp8GkBNQMwUchUALQBYKLZlwXUDsPES1kqAOoAEN3qwwKaJmHi5SymAiAPAIle3xXQHoeJkgBTAZAEIG4FfTUPCPXBTGmAqQC8CQD3mn00Fa69ATNl2UwF4D6AO3dgJrbPeQHVmifaojBTms1UAAQBXHn9n1bLgC++Dof7dFis/yoAkgCCK6/D1MRWxwXQnxBpHIOp4gBTARAFEFx5Bab03vVpfhkIdcUBi/d/FQBZAMFX/wZz97Y6fhmg3Ao2DcNcYRZTAZAFMOMAzOnnGtK2EQj1JGCq6gXGVAC0AQR3JGBuYl+ajoq2jsFcRR5TAZAHENz8BBaGWtKwDNQPwMKKXKYCoA5gxk/uQ3IdoH8bqOlLwELZfKYCoA9gxspLsBLrrUvhQyDcGYWVogBTARAH8MxHOlkCa6X3gqH2cVipXMKYCsC7AIKbH8NStLsuBQ+BUMc4LC3PZSoATwMIvn4d1qK9DR7vBGq6JmGteB5TAXgQAO9AAtYS/S0ergO1R2PArI9/FYAnAfDee4hZ6Nd2rfdkHVjdejmBWZTlMBWAVwHwforZRY83O1gH7H0dqO0Zx2yqlgaYCsAnAQD6UHeDg63A6mQrf/uAjlmV5zKmAvBPAAD0EfsNrJ1tNxhuuxDH7CpfDDAVgM8CAJAY6m1xmUB950AcyZTmMKYC8GEAMybO7WuwuRdYpfHWtJ0YQ3I/KshiKgDfBjBjor+7ZZ2dBKqf7fl2nhjWYUNlYTZjKgB/BzAjdq+/d1dD0pfC17RwY3vfQBQ2leQwpgJ4HgL4n+hI//HuXS3N4sy4rrllV/fx/pGoDvvKFrGUyQXnjhDAFnCmn98AvgbnYtBoB1yLT9wbGRq6NmNoaOTeRAzOlS9mKZQDzn0hgA/A+8dzG8AUOCeDRh+BU7S4DKn3yuIslkrzwflGCOAtHZyps3YC+OMh3xkE70DQ6BPhDua8UqRWeX4WS61scJ68IfgGvOl/nX3+Avjs1CgMNgeNDoOzhH1nYTFSp2QRS7kAeBuFAC5iTkqsDBpdMr2DL6eoAqlQuSyHpcMKcLYIAfwGc9L1oOC+xW8xZxeUw2uvvDCPpUcJOL8TNwFPMBftCBq9Ggcnhz2Tu6wS3ql8aRFLmyJwTr4h+AJz0GNxBXgPnKoAv1nKL6mCF6pKC7JZGi0B56EYwMY45p5PgoID4JQzo3kF9A2ULZnP0isPvPfFAg5jznm4Mii4As5LbIbYQCWoVJaI//upNw/GTYDgrfuYY/TNQcHKJ/Z+iy+waGk53FtemBdgvlAufA0QvD/X9oGHg6KfgbeQWZufv+wVyFu+rGAB841CcPSNb4i265hLLr4aFF0CpyLAZpf93/buXjdtKIoD+OUryHy7KAkfBie2sUunCokpEiNSJDIkS4dKqCNzmDJ2YWbkDaIsUaeyM0aKujBYQir836RV1Uq1fV0lQBP7Hv9egXPPOfce7nVWrml4Ll0p55MsUHJw+tzlGK0hjru26dVZb/MtnoNc6UjR8BRGsyLnUix4Ei33PoBnKE4VmFkmx80OT/EmpIJcrtSbGrx0VakeyXkpYMv+bwqcRl2ewRxCsD+aPG0bTlsV6VgylU5LmWzup0xGSh8kYyz4CnCPhPnGS4TeetYxua7h1GB0JAxPCuA7Gy8Qava0Z/K1l54KQEgFTsuzrp/B+HZhh/BkcLN6uJtcWKafCZyMBCMkB5dpdy8sMyzO13A6ZpTEVDhtrrr78M4MCWsOlwwjpQCXb31SKWACwi0gNwXgnlIKuNzAJcuIKQKc88DdvTVDoGfDRWHUxE/gNu7uwXsz+DqPIJ8AOBsBbIY0ikB7Abc6I6gGt/WIQhHozOFmBGhU+3JSBtw2Y/F3ArxXQmVGkgyvqehtwMUSHs0wzG/+g5gCr3lf6AjgvQxnSIyolAYveyhuBHS+gKPEyMq2wPF1IOZWwPpkg6PKCCuDZzXpC5gDLhfgUQPyT93XEauCazXt7xoBAdsLfFiAS0sz0uJ18H2/He4YAQE6D+jdPIJPJ9sA/pFowI89G/XD3whYFzdz+DEIHgG7JVX42zzcT0ZXg/5Z+CLA6vTOL69n8xX8tfIswpINEGVEv/8v8RpI0qP8/1usAoJOiPf/DnIL1CgBvrjzCqQTkNIqEx0A+UqQagROo/LvVdBAROs4Sv88iTKNTqBJ7ArAM0gKhKcVo+r/D1IVQjuVSV0B3IZUE7cQqEXSs9+nSpaaEJBeyUbJ/6mkQ8FiQK/mo8X/PMn8kQoh6LWSFK39rcTT+TeVekM91RE6LU1tKtXDYiaIz3S9nB8FSCD/PhpylQAAAABJRU5ErkJggg==",
});
}