-
[AE脚本] 储存效果/图层样式 等等
使用方法 只需将storeStyleLayer 传入顶级需要保存的属性组名称即可, 因为原本只想储存图层样式的, 懒得改函数名了 typescript版本 import { activeLayer } from 'base/variables'; class PropertyItem { script: string; constructor(prop: Property, parent: PropertyCollection) { let tmpScript = ''; const propertyMatchName = prop.matchName; const propertyValue = prop.value; const propertyString = parent.name + '.property("' + propertyMatchName + '")'; // 储存值 if (prop.expressionEnabled) { try { const expressionValue = prop.expression; tmpScript += propertyString + '.expression="' + expressionValue + '";\n'; tmpScript += propertyString + '.expressionEnabled=true;\n'; } catch (error) {} } else { // 没有表达式 直接复制值 tmpScript += propertyString + '.setValue(' + propertyValue + ');\n'; } // TODO 储存关键帧 if (prop.numKeys > 0) { } this.script = tmpScript; } parse(): string { return this.script; } } class PropertyCollection { name: string = ''; // 当前层级属性的脚本名称 props: (PropertyItem | PropertyCollection)[] = []; // 储存的属性与属性组 constructor(name: string) { this.name = name; } parse(): string { let tmpScript = ''; for (const prop of this.props) { tmpScript += prop.parse(); } return tmpScript; } add(prop: PropertyItem | PropertyCollection) { this.props.push(prop); } } function storeStyleLayer(layer: Layer, groupName = 'ADBE Layer Styles') { const styles = layer.property(groupName); const rootPropertyCollection = new PropertyCollection(`.property('${groupName}')`); loopPropertyClass(styles, rootPropertyCollection); let tmpScript = rootPropertyCollection.parse(); alert(tmpScript); } function loopPropertyClass(px: _PropertyClasses, parent: PropertyCollection) { // 判断是不是属性 if (px.propertyType === PropertyType.PROPERTY) {…- 0
- 0
- 101
-
-
[AE脚本]使用可执行文件给脚本源码加密
ae脚本源码基本上就是jsx 或者jsxbin, 但是现在很多破解工具, 源码基本上裸奔... 可以通过ae脚本执行exe文件, 其中源码包含在exe文件内部, 再通过exe与ae通信执行脚本, 可以一定程度提高脚本破解难度 大致流程 AE->运行脚本->调用exe->执行真正脚本内容->发送给ae 其中调用exe可以使用cnd直接调用 exe发送给ae 可以使用 cmd AfterFX-脚本- 0
- 0
- 46
-
[AE脚本]给ui快速添加右键菜单
粗略演示 这是代码 function ringhtClickMenu(container, window) { if (container.orientation === stack) { window.addEventListener(blur, function (event) { window.hide(); }); container.addEventListener(mouseup, function (event) { if (event.button === 2 && event.detail === 1) { window.frameLocation = [event.screenX, event.screenY]; window.show(); } }); } else if (container.orientation === row || undefined) { container.orientation = stack; ringhtClickMenu(container, window); } else { return alert(已设置orientation,请单独打组,再把orientation设置为stack, + \n + 再监听组.); } } function myMenu() { var $win = new Window(palette, undefined, undefined, { borderless: true }); var button1 = $win.add(button, undefined, 1); var button2 = $win.add(button, undefined, 2); var button3 = $win.add(button, undefined, 3); var button4 = $win.add(button, undefined, 4); button1.onClick = function () { $win.hide(); alert(1); }; button2.onClick = function () { $win.hide(); alert(2); }; button3.onClick = function () { $win.hide(); alert(3); }; button4.onClick = function () { $win.hide(); alert(4); }; return $win; } var win = new Window(palette); var group = win.add(group); group.size = [360, 240]; group.graphics.backgroundColor = group.graphics.newBrush(group.graphics.BrushType.SOLID_COLOR, [1, 0, 1]); ringhtClickMenu(group, myMenu()); win.show();- 0
- 4
- 215
-
[AE脚本源码]快速选择图层
介绍 文本框输入内容按回车 或者失焦, 就可以选择当前合成包含此文本的图层 js源码 /** * name:Fast Select * version: 0.0.1 * description: You can input some text, then this script will select all layer that contain this text * author: yueli * link: https://www.yuelili.com/ae/ae-dev/ae-dev-script/ae-script-source-code-quickly-select-layers/ */ var panelGlobal = undefined; (function () { var fast_select = panelGlobal instanceof Panel ? panelGlobal : new Window('palette', undefined, undefined, { resizeable: true, }); if (!(panelGlobal instanceof Panel)) fast_select.text = 'Fast Select'; fast_select.preferredSize.width = 104; fast_select.preferredSize.height = 61; fast_select.orientation = 'row'; fast_select.spacing = 10; fast_select.margins = 16; var input = fast_select.add('edittext'); input.text = '输入图层名'; input.onChange = selectLayers; function selectLayers() { if (input.text.length === 0 || input.text == '输入图层名') { return; } var activeComp = app.project.activeItem; if (!activeComp || !(activeComp instanceof CompItem)) { return; } else { app.executeCommand(2004); for (var i = 1; i <= activeComp.layers.length; i++) { var layer = activeComp.layer(i); if (layer.name.indexOf(input.text) !== -1) { layer.selected = true; } } } } fast_select.layout.layout(true); fast_select.layout.resize(); fast_select.onResizing = fast_select.onResize = function () { this.layout.resize(); }; if (fast_select instanceof Window) fast_select.show(); return fast_select; })(); typescript源码 const panelGlobal: any = this; (function () { /* Code for Import https://scriptui.joonas.me — (Triple click to select): {"activeId":1,"items":{"item-0":{"id":0,"type":"Dialog","parentId":false,"style":{"enabled":true,"varName":"fast_select","windowType":"Palette","creationProps":{"su1PanelCoordinates":false,"maximizeButton":false,"minimizeButton":false,"independent":false,"closeButton":true,"borderless":false,"resizeable":true},"text":"Fast Select","preferredSize":[104,61],"margins":16,"orientation":"row","spacing":10,"alignChildren":["right","center"],"item-1":{"id":1,"type":"EditText","parentId":0,"style":{"enabled":true,"varName":"input","creationProps":{"noecho":false,"readonly":false,"multiline":false,"scrollable":false,"borderless":false,"enterKeySignalsOnChange":false},"softWrap":false,"text":"EditText","justify":"left","preferredSize":[0,0],"alignment":null,"helpTip":null},"order":[0,1],"settings":{"importJSON":true,"indentSize":false,"cepExport":false,"includeCSSJS":true,"showDialog":true,"functionWrapper":true,"afterEffectsDockable":true,"itemReferenceList":"None" */ // FAST_SELECT // =========== var fast_select = panelGlobal instanceof…- 0
- 2
- 181
-
[AE脚本开发]使用curl 获取网页信息
curl 命令介绍 https://www.cnblogs.com/zhuzhenwei918/p/6781314.html // 定义缓存文件 var tempFile = new File(Folder.temp.fullName + '/' + 'curl.txt'); // 获取网页信息,并写入文件 system.callSystem("cmd.exe /c \"curl https://zhuanlan.zhihu.com/p/537632849 -o \"" + tempFile.fsName + "\"\""); // 其他操作 可以复制,也可以读取文件内容之类 system.callSystem('cmd.exe /c \"clip < ' + tempFile.fsName + '\"');- 0
- 0
- 320
-
【AE脚本开发】颜色转换
[sc name="zhuanzai" author="jonathantneal" link="https://github.com/jonathantneal/convert-colors/tree/master/src" ][/sc] HEX and RGB @无名 正则hex转rgb function hexToRgb(hex) { var result; hex = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/gi, '$1$1$2$2$3$3'); hex.replace(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/gi, function (match, $1, $2, $3) { result = [parseInt($1, 16), parseInt($2, 16), parseInt($3, 16)]; }); return result; } function hex2rgb(hex) { // #<hex-color>{3,4,6,8} const hexColorMatch = /^#?(?:([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?)$/i; const [, r, g, b, a, rr, gg, bb, aa] = hex.match(hexColorMatch) || []; if (rr !== undefined || r !== undefined) { const red = rr !== undefined ? parseInt(rr, 16) : parseInt(r + r, 16); const green = gg !== undefined ? parseInt(gg, 16) : parseInt(g + g, 16); const blue = bb !== undefined ? parseInt(bb, 16) : parseInt(b + b, 16); const alpha = aa !== undefined ? parseInt(aa, 16) : a !== undefined ? parseInt(a + a, 16) : 255; return [red, green, blue, alpha].map(c => c * 100 / 255); } return undefined; } export function rgb2hex(rgbR, rgbG, rgbB) { return `#${((1 << 24) + (Math.round(rgbR * 255 / 100) << 16) + (Math.round(rgbG * 255 / 100) << 8) + Math.round(rgbB * 255 / 100)).toString(16).slice(1)}`; } HSL and hsv function hsl2hsv(hslH, hslS, hslL) { const hsv1 = hslS * (hslL < 50 ? hslL…- 0
- 0
- 672
-
【AE脚本开发】调用ae自带颜色拾取
Github link=https://github.com/Belonit/AEColorPicker 方法一 外部插件 安装 Windows: 将 AEColorPicker.aex 复制到文件夹 Adobe After Effects 安装目录\Support Files\Plug-ins Mac: 将 AEColorPicker.plugin 复制到文件夹 Applications/Adobe After Effects [version]/Plug-ins 调用 var externalLibrary = new ExternalObject('lib:C:\\AEColorPicker.aex'); var oldColor = 0x20F186; var newColor = externalLibrary.colorPicker(oldColor, dialog_title); if(newColor == -1){ //Returns -1 if user clicked on cancel newColor = oldColor; } 方法二 脚本生成 或者你可以通过一些小技巧使用脚本完成 // https://community.adobe.com/t5/after-effects-discussions/calling-the-after-effects-color-picker-through-script/td-p/11954317 function ColorPicker(startValue) { // find the active comp var crntComp = app.project.activeItem; if (!crntComp || !(crntComp instanceof CompItem)) { alert('Please open a comp first'); return []; } // add a temp null; var newNull = crntComp.layers.addNull(); var newColorControl = newNull('ADBE Effect Parade').addProperty('ADBE Color Control'); var theColorProp = newColorControl('ADBE Color Control-0001'); // set the value given by the function arguments if (startValue && startValue.length == 3) { theColorProp.setValue(startValue); } // prepare to execute var editValueID = 2240; // or app.findMenuCommandId("Edit Value..."); theColorProp.selected = true; app.executeCommand(editValueID); // harvest the result var result = theColorProp.value; // remove the null if (newNull) { newNull.remove(); } return result; } alert(ColorPicker([1, 1, 1]));- 0
- 0
- 530
-
【AE脚本】翻译小助手 | 一键获取效果所有属性
使用前 记得打开 编辑-> 首选项 -> 脚本与表达式 -> 允许脚本访问网络与文件读写 更新 0.0.3 修复了下,少var了一个变量。 使用方法 把文件放在AE脚本路径的UI Panel 文件夹里。 运行ae 选择一个图层,点击“翻译”按钮,将获取图层中的效果的所有参数,并保存到桌面文件(AE translattion xxx.txt)。 后续做笔记啊 弄中英对照都会方便很多 源码 /* 名称:翻译小助手 * 版本号:0.0.2 * 说明:选择一个图层,点击“翻译”按钮,将获取图层中的效果的所有参数,并保存到桌面。 * 源码:https://www.yuelili.com/?p=21499 */ var panelGlobal = this; var dialog = (function () { // UI开始 var dialog = (panelGlobal instanceof Panel) ? panelGlobal : new Window("palette"); if (!(panelGlobal instanceof Panel)) dialog.text = "翻译小助手0.0.1"; dialog.orientation = "column"; dialog.alignChildren = ["center", "top"]; dialog.spacing = 10; dialog.margins = 16; var btn = dialog.add("button", undefined, undefined, { name: "btn" }); btn.helpTip = "选择要翻译的图层"; btn.text = "开始获取属性名称"; btn.onClick = myFunction; // 函数功能区 var res = "" File.prototype.write_file = File.prototype.write_file || function (data) { this.open('w', undefined, undefined); this.encoding = "UTF-8"; this.write(data); this.close(); } function property_recursive(propertyGroup) { for (var i = 1; i <= propertyGroup.numProperties; i++) { var property = propertyGroup.property(i); if (property instanceof PropertyGroup) { property_recursive(property); res += "----\n\n" continue; } res += property.name + "\n"; } } function effect_recursive(layer) { var eff = layer.property("ADBE Effect Parade"); for (var i = 1, l = eff.numProperties; i <= l; i++) { res += "-------" + eff(i).name + "| Start-------\n" property_recursive(eff(i)) // 对每个效果进行操作 res += "-------" + eff(i).name + "| End-------\n" } } function get_format_time() { var nowDate =…- 0
- 0
- 1.2k
-
【AE脚本开发】给脚本写个联网激活机制
/* 激活流程: 1.用户填写授权码; 2.利用授权码与机器码生成网页链接; 3.脚本调用curl程序访问链接。如果授权码有效,得到服务器通过机器码计算出来的激活码;否则得到服务器返回的授权码不可用。 4.将激活码存于本地。 说明:重装系统等原因导致本地激活码丢失,电脑需要再次激活时,只需联网验证机器码即可,无需再次填授权码。这个步骤自己扩展,这里写首次激活的示例。 */ //打开注册面板 function zhuCe(){ if(pc.pcJQM.length == 0 && (!isMac ())){ alert ("请先启用已禁用的网卡!\n然后关闭脚本重新打开。","无法验证激活状态!"); system.callSystem("cmd.exe /c ncpa.cpl"); return; } var zhuCeW = new Window("dialog", "注册"); var res = "group {\ orientation:'column', alignment:['fill','fill'],preferredSize:[0,0] \ GG: Group { \ orientation:'row', alignment:['fill','fill'],preferredSize:[0,0] \ }, \ fen: Panel { alignment:['fill','top'],preferredSize:[300,2] }, \ GG2: Group{\ orientation:'column', alignment:['fill','fill'],preferredSize:[0,0] \ t1 : Group { alignment:['fill','center']\ text: StaticText { text:'注册码:', alignment:['left','center'] }, \ passText: EditText { text:'', characters:20, alignment:['fill','center'] }, \ },\ btn: Group { \ orientation:'row', alignment:['fill','fill'],preferredSize:[0,0] \ zhuCe: Button { text:'注册', alignment:['right','center'],preferredSize:[150,30] }, \ gouMai: Button { text:'去淘宝购买注册码', alignment:['left','center'],preferredSize:[150,30] }, \ }, \ },\ }"; zhuCeW.gr = zhuCeW.add(res); //注册 zhuCeW.gr.GG2.btn.zhuCe.onClick = function(){ var sma = zhuCeW.gr.GG2.t1.passText.text.replace (/\W/g, ""); //app.settings.saveSetting(Hound.name,"sma" , strToUrl (sma)); if(pc.pcJQM.length == 0){alert("识别主板失败!\n请先启用以太网卡(win7:本地连接)。")} if(sma.length == 30){ if(web_jihuo (sma, pc.pcJQM.toString ().replace (/,/g, ''))){alert("注册成功!");zhuCeW.close ()} } else{alert("注册码输入有误!")} } //去淘宝购买注册码 //zhuCeW.gr.GG2.btn.gouMai.onClick = function(){ openURL(url.taobao) ;zhuCeW.close();}; zhuCeW.show(); } //获取机器码 function getPcMac(){ if(isMac ()){ var macId = system.callSystem("ifconfig en0 | awk '/ether/{print $2}'"); macId = macId.substr(0,17); if(macId.substr (0, 8) !=="ifconfig"){ pc.pcJQM.push (mac2jqm (macId)); } var patt = new RegExp(/[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}/ig); var s , j; macId = system.callSystem("ifconfig"); while((s = patt.exec(macId)) != null){ j = s.toString().replace (/\:/g, "").replace(/\s/g,""); if(pc.pcJQM.toString ().indexOf (j) == -1 && pc.pcJQM.length <…- 0
- 0
- 630
-
【AE脚本开发】验证系统 | 在线
本地验证(略) 在线验证 1.根据账号密码、机器码获取信息 https://www.yuelili.com/api/user/get_produt_auth/?username=用户名&password=密码&product=文章ID&mac=MAC码 成功返回 {"status":"ok","cookie":"COOKIE信息","user":{"id":1,"username":"yueli","pay_status":1,"product_info":"可在文章内页设置';","mac":"1" 失败返回 {"status":"error","error":"not paid"} 2.根据订单号获取信息 https://www.yuelili.com/api/user/get_order/?order_id=订单号&product=文章ID 判断依据:pay_status 成功返回: {"status":"ok","pay_status":1,"id":"1","order_price":"0.01","create_time":"1638093503"} 失败返回: {"status":"ok","pay_status":0,"id":null,"order_price":null,"create_time":null} 使用方法 var response = system.callSystem('curl -G -d "username=用户名" -d "password=密码" -d "product=文章ID" -d "mac=机器码" https://www.yuelili.com/api/user/get_produt_auth/'); alert(response ) 然后你在截取需要信息即可 var envatoResponse = system.callSystem('curl -G -d "order_id=订单号" -d "product=文章ID" https://www.yuelili.com/api/user/get_order/'); 其他 1.如何获取文章ID 单击文章有个小链接并粘贴:https://www.yuelili.com/?p=20251 。这个20251就是文章ID 2.如何加入自定义信息 文章创建页面,有个自定义字段,然后拉到最下面。新建:product_info,再输入你的信息,就可以在接口中获取了- 0
- 0
- 309
-
[AE脚本开发]ScriptUI点击控件创建新按钮并绑定事件
// ScriptUI点击控件创建新按钮并绑定事件 v1.0.0 2022-02-06 // Raymond Yan 2022 (RaymondClr@outlook.com / QQ: 1107677019) var mainWindow = new Window("palette", "主界面"); var button = mainWindow.add("button", undefined, "添加按钮"); var count = 1; button.onClick = function () { var newButton = mainWindow.add("button", undefined, "按钮" + count++); newButton.onClick = function () { alert(this.text); }; mainWindow.layout.layout(true); }; mainWindow.show();- 0
- 0
- 231
-
[AE脚本开发]ScriptUI在面板中增减控件
// ScriptUI在面板中增减控件 v1.0.0 2022-02-16 // Raymond Yan 2022 (RaymondClr@outlook.com / QQ: 1107677019) var mainWindow = new Window("palette", "主界面"); var group1 = mainWindow.add("group"); var group2 = mainWindow.add("group"); group2.orientation = "column"; var button1 = group1.add("button", undefined, "添加按钮"); var button2 = group1.add("button", undefined, "移除按钮"); var count = 1; button1.onClick = function () { group2.add("button", undefined, "按钮" + count++); mainWindow.layout.layout(true); }; button2.onClick = function () { count--; if (count <= 0) count = 1; group2.remove(group2.children.length - 1); mainWindow.layout.layout(true); }; mainWindow.show();- 0
- 0
- 194
-
[AE脚本开发]ScriptUI实现输入提示(类网页搜索框)
// ScriptUI实现输入提示 v1.0.0 2022-02-19 // Raymond Yan 2022 (RaymondClr@outlook.com / QQ: 1107677019) var mainWindow = new Window("palette", "主界面"); var inputTips = "请输入内容"; var inputControl = mainWindow.add("edittext", [0, 0, 100, 25], inputTips); inputControl.onActivate = function () { if (this.textCache === inputTips) return; if (this.text === inputTips) this.text = ""; }; inputControl.addEventListener("blur", function () { this.textCache = this.text; if (this.text === "") this.text = inputTips; }); mainWindow.show();- 0
- 0
- 173
-
[AE脚本开发]ScriptUI实现在非法输入时还原上次数值
// ScriptUI实现在非法输入时还原上次数值 v1.0.0 2022-02-24 // Raymond Yan 2022 (RaymondClr@outlook.com / QQ: 1107677019) var mainWindow = new Window("palette", "主界面"); var initialValue = 0; var inputControl = mainWindow.add("edittext", [0, 0, 100, 25], initialValue); inputControl.valueCache = initialValue; inputControl.onChange = function () { if (!/\d+/.test(this.text)) return (this.text = this.valueCache); this.valueCache = Number(this.text); }; mainWindow.show();- 0
- 0
- 149
-
【AE脚本开发】必学!UI:一个按钮,单击执行功能
只要把你的函数放在函数区,然后单击按钮,就可以执行你的函数啦 比如我是单击按钮,alert一段文字。 你也可以把写好的脚本放在ae安装目录\Support Files\Scripts\ScriptUI Panels下,这样就可以停靠了。记得重启ae再打开 代码 /** * 作者:yueli * 源码:https://www.yuelili.com/?p=19664 */ var panelGlobal = this; var palette = (function () { // UI 构建 // ======= var palette = (panelGlobal instanceof Panel) ? panelGlobal : new Window("palette"); if (!(panelGlobal instanceof Panel)) palette.text = "窗口名称"; palette.orientation = "row"; palette.alignChildren = ["center", "top"]; palette.spacing = 10; palette.margins = 16; var create = palette.add("button", undefined, undefined, { name: "create" }); create.helpTip = "提示文字"; create.text = "按钮名称"; create.preferredSize.width = 80; // 按钮长度 create.onClick = create_it // 绑定函数 // 主函数功能区 function create_it() { // 写你的功能 alert("hello world") } // UI 结束区(展示) palette.layout.layout(true); palette.layout.resize(); palette.onResizing = palette.onResize = function () { this.layout.resize(); } if (palette instanceof Window) palette.show(); return palette; }());- 0
- 0
- 667
-
【AE脚本】强制用户选择时间轴合成方法
在AEScript中,要表示当前焦点的时间轴合成,可以使用app.project.activeItem。但有一个小问题,如果项目面板处于焦点状态,它将表示项目面板内当前选定的项目,而不是时间轴合成。 这样一来,当使用带有用户UI界面的脚本,并在按下按钮时执行与时间轴合成内图层相关的操作时,如果用户恰巧选择了项目面板,那么可能会处理完全不同合成内的图层。 为了解决这个问题,可以通过代码强制选择时间轴合成。有一种方法是将查看器设置为活动状态,但是每次按下按钮时查看器会闪烁,给人不太好的视觉效果。 因此,我创建了一个函数,它并不强制选择时间轴合成,而是可以判断"当前没有选择时间轴合成"。以下是代码示例: function mGetActiveItemNotOnPanel() { var mAi = app.project.activeItem; // 1.如果没有活动项目,则返回Null。 // 2.如果是面板,则可能是选择数为零或多个。 // 3.或者没有选择时间轴、查看器或流程图。 if (mAi === null) { return null; } // 如果活动项目不是合成(即选择了面板以外的项目),则返回Null。 if (!(mAi instanceof CompItem)) { return null; } // 主要处理 // 检查活动项目是面板中唯一选定的合成,还是选择了时间轴等。 // 如果选择从面板中移除,但不变为Null,那么活动的是时间轴等,因此返回它。 if (mAi.selected === false) { return mAi; } // 如果选择在面板内,则取消活动项目的面板选择,并重新定义。 mAi.selected = false; var mNewAi = app.project.activeItem; // 如果新的活动项目是Null,则之前活动的是面板内的项目,因此返回Null。 //(将面板选择恢复原样)。 if (mNewAi === null) { mAi.selected = true; return null; } // 如果取消活动项目的选择并重新定义后仍不是Null, // 则说明选择了时间轴等,因此返回新的活动项目。 //(将面板选择恢复原样)。 mAi.selected = true; return mNewAi; } 再来个不带注释的版本 function mGetActiveItemNotOnPanel(){ var mAi = app.project.activeItem; if( mAi === null ){ return null; } if( mAi instanceof CompItem !== true ){ return null; } if( mAi.selected === false ){ return mAi; } mAi.selected = false; mNewAi = app.project.activeItem; if( mNewAi === null ){ mAi.selected = true; return null; } mAi.selected = true; return mNewAi; } 这是一个函数,如果时间轴合成未被选择,则返回null;如果已被选择,则返回该合成。使用这个函数,您可以确保在警报或信息面板中强制用户选择时间轴合成。 我们要判断的是“焦点是在面板还是在时间轴”。通过不同的条件进行筛选。现在让我们详细查看代码。 if (mAi === null) { return null; } 当活动项目为null时,表示焦点在面板上,并且面板内没有选择或选择了多个项目。如果焦点在时间轴上,活动项目不会为null。因此,如果活动项目为null,则可以确定焦点在面板上,因此返回null。 通过上述代码,我们可以确定两种可能的情况,即活动项目不为null时: 此时可能的状态 焦点在面板上,有任意一个选中项(无论选中项是否为合成) 焦点是时间轴,面板中的选择无关紧要(可以是多个、一个或零个) 继续。 if( mAi instanceof CompItem !== true ){ return null;} 如果活动项目是组合以外的任何类型的项目,它将返回 null,因为焦点不应该是时间轴。 而一旦过了这条线,状态就更加有限了。 此时可能的状态 焦点是一个面板,被选中的是一个合成 焦点是时间轴,面板中的选择无关紧要(可以是多个、一个或零个) 继续。 if( mAi.selected === false ){ return mAi;} 这就是这个剧本的秘密! 首先,在前面的 if 语句中,此时我们已经确定活动项不为空。 然而,除了时间轴被聚焦的情况下,selected 是不可能为 false 的,所以我们返回 activeItem。 (如果面板被聚焦,那么active item表示“一个”selected“item”,所以selected不能为false。)并且我通过了这一行, 如果selected为true则状态进一步限定。 此时可能的状态 焦点是一个面板,被选中的是一个组件 焦点为时间轴,面板中选择为多个或一个,选择与时间轴相同的合成 最后 mAi.selected = false; mNewAi = app.project.activeItem;…- 0
- 0
- 106
-
ScriptUI点击控件弹出设置界面示例
// ScriptUI点击控件弹出设置界面示例 v1.0.0 2022-01-16 // Raymond Yan 2022 (RaymondClr@outlook.com / QQ: 1107677019) var mainWindow = new Window("palette", "主界面"); var getWindow1 = new SingletonWindow("palette", "设置面板一"); var getWindow2 = new SingletonWindow("palette", "设置面板二"); var button = mainWindow.add("button", undefined, "设置"); button.onClick = function () { var settingWindow1 = getWindow1(); var checkBox = settingWindow1.add("checkBox", undefined, "一个复选框"); settingWindow1.show(); checkBox.onClick = function () { alert(this.text); }; var settingWindow2 = getWindow2(); var button = settingWindow2.add("button", undefined, "一个按钮"); settingWindow2.show(); button.onClick = function () { alert(this.text); }; }; function SingletonWindow(type, name) { var container = null; return function () { if (container === null || !container.visible) container = new Window(type, name); return container; }; } mainWindow.show();- 0
- 0
- 240
-
【AE脚本】读写首选项
function ReadPreferences() { //此函数目的是读AE首选项中的内容 //例子中主要解决了读取标签中的颜色和名称 var textArray = []; var win = 0; var colors = []; var names = []; if ($.os.indexOf("Windows") != -1) { win = 1; } userData = Folder.userData;//获取首选项所在文件夹 version = app.version.substring(0, 4);//获取版本号 prefixName = ""; lang = app.isoLanguage; //判断AE的语言 一般CN和US就够用了 if (lang == "zh_CN") { prefName = " 设置-indep-general"; } if (lang == "en_US") { prefName = " Prefs-indep-general"; } if (lang == "de_DE") { prefName = " Einstellungen-indep-general"; } if (lang == "es_ES") { prefixName = "Preferencias "; prefName = "-indep-general"; } if (lang == "fr_FR") { prefName = " Préfs-indep-general"; } if (lang == "it_IT") { prefixName = "Preferenze di "; prefName = "-indep-general"; } if (lang == "ja_JP") { prefName = " Prefs-indep-general"; } if (lang == "ko_KR") { prefName = " Prefs-indep-general"; } if (lang == "pt_BR") { prefixName = "Preferências do "; prefName = "-indep-general"; } //判断用户系统是win还是mac if (win == 1) { prefFilePath = userData.toString() + "/Adobe/After Effects/" + version + "/" + prefixName + "Adobe After Effects " + version + prefName + ".txt"; } else { macPath1 = userData.toString(); macPath = macPath1.substring(0, macPath1.lastIndexOf("/") + 1); prefFilePath = macPath + "Preferences/Adobe/After Effects/" + version + "/" + prefixName +…- 0
- 0
- 471
-
-
【脚本相关】借助AutoHotKey来实现保存预设自动化操作(有瑕疵)
半自动化看这边:【脚本相关】使用脚本来半自动化保存预设 前面代码部分一样,后半部分用AutoHotKey模拟点击Ctrl+V以及Alt+S保存,实现自动化保存流程。 不过有瑕疵,像选中效果控件里面的插件,还需要用户手动操作,目前还做不到完全的全自动化。不过也没差了,我们可以在脚本设定好预设保存文件夹、文件名,至于预设什么内容由用户选择也没什么不好2333 因为双方编码不一致,导致传递过去的中文会乱码,所以我这边提供两个方法:一个只允许英文;另一个是把中文参数保存在确定位置的文本文件里,然后用AutoHotKey去解析该文本文件获得内容,并拷贝到剪贴板。 myPreset.jsx var comp = app.project.activeItem; // 获取合成 var layer = comp.selectedLayers; // 获取选中图层 var effect = layer[0].property("ADBE Effect Parade"); // 获取图层的效果列表 var num = effect.numProperties; // 获取效果列表的数量 var plug = effect.property(1); // 序号可以用for遍历,或者用name、matchName查找 // 用名称或者元属性名的时候,如果没找到返回null var isSeleEffect = plug.selected; //检测是否在效果控件选中插件 var presetPath = Folder.temp.fsName + "ae_ffxpath.ffx"; // 声明一个ffx文件的保存全路径,Folder.temp是系统缓存文件夹 copyToClipboard(presetPath); // 把内容推送到系统的剪贴板,如果不用可以注释掉 // https://www.yuelili.com/ae-script-case-transferring-information-to-the-system-clipboard/ function str2cmd(str, list) { var cmd = str; for (i = 0, ii = list.length; i < ii; i++) { var tmp = '"' + list[i] + '"'; // var tmp = list[i]; cmd = cmd.toString().replace("${" + (i + 1) + "}", tmp); } return cmd; } var list = ["(pwcode)\\AutoHotkey","AutoHotkeyU64.exe","autoSavePreset.ahk"]; var cmd = str2cmd('cmd /c start "" /d ${1} ${2} ${3}', list); system.callSystem(cmd); // 启动AutoHotKey待命 app.executeCommand(3075); // 模拟点击 菜单栏的保存预设功能 其中的list是一个占位数组,对应 ${Number},Number从1开始。str2cmd函数原理是替换占位符,再也不用手动用+"'来连接变量。 system.callSystem一定要放在app.executeCommand前面,打开的AutoHotKey可以在后台等待触发条件,一旦保存预设文件窗口弹出,立马模拟点击Ctrl+V以及Alt+S,自动化操作。 如果你的可执行文件放到子文件夹里或者其他位置,那么用/d path指定程序所在的path文件夹就会方便很多,这样你只需要输入程序名即可,打开程序时自动在当前位置寻找程序运行。如果程序在脚本同目录 /d path 可以删掉。 下面是总结出来的cmd字符串指令内容,start 后面必须跟随一个空的双引号,这是因为start会把第一个双引号当成打开新窗口的标题,如果没有/d /min等start参数隔断,会把加了双引号的可执行程序当成标题。 var cmd = 'cmd /c start "" "program.exe" "parameter"' program.exe 可执行文件,在这边是AutoHotKey.exe parameter yao 要传递给可执行文件的参数,这边是一个ahk脚本文件 这行代码的作用是用ahk程序运行ahk脚本文件,在任务栏能看到一个绿绿的H图标就是了,右键可以选择暂停或者编辑脚本文件后需要手动reload导入。 有关start和system.callSystem详细介绍可以移步另一个帖子观看:【脚本相关】关于system.callSystem()踩坑记录与解决方法探索 接下来介绍ahk脚本文件,我已经在代码块里解释清楚了,也没啥可补充的了,另外软件有安装版和解压即用的便携版。 如果是便携版的,需要你把ahk文件打开方式选择成AutoHotKey程序,或者是把文件拽托到exe直接运行,单纯双击exe是没反应的。有几个exe,选择u64就行。 autoSavePreset.ahk clipboard := "" ; 清空剪贴板 ClipWait ; 等待剪贴板重新拷贝新内容 ; clipboard := A_Temp "\ae_ffxpath.ffx" ; A_Temp 是系统缓存文件夹,需要注意ahk无需用+来连接字符串 ; 如果不用剪贴板传递数据,想用确定的文件路径 ; 可以用分号把前面的剪贴板代码注释掉 ; 至于用AutoHotKey读取文本文件,等有空再来研究 = = ; MsgBox % clipboard ; 英文版AE用这个英文关键词,中文用中文关键词 WinWait Save Animation Preset…- 0
- 0
- 479
-
【脚本开发】AE菜单命令
https://hyperbrew.co/blog/after-effects-command-ids 在After Effects中构建脚本或扩展时,有些无法通过API实现的,如撤销/重做、视口控制等。 Command IDs(菜单ID)这时就有了作业,本质上是模仿用户点击一个按钮的行为,或者触发特定功能的热键。 在API中,你总是可以尝试用名字来搜索你想要的命令。 var cmdId = app.findMenuCommandId('Redo'); // Result: 2371 获取菜单(撤销)的ID:2371 app.executeCommand(cmdId); // Execute Redo 执行它 问题是,这种方法相当繁琐,除非提前知道菜单名称。不同语言不同版本还不一样! 解决方案 https://hyperbrew.github.io/after-effects-command-ids 由于Adobe没有提供官方的命令ID列表,我们在React中建立了一个简单的查看器来快速搜索命令,并找到每个版本的After Effects的命令ID。 要使用一个命令,只需找到它的命令ID号,然后用以下方法执行它。 app.executeCommand(2035); 查看器从我们为每个版本的After Effects生成的一系列JSON文件中提取数据。(见下文) 它是如何工作的 没有文档,如何得出清单?幸运的是,它们在应用程序字典文件中。 所在地(中文为例):Adobe After Effects 2020\Support Files\Dictionaries\zh_CN\after_effects_zh_CN.dat "$$$/AE/MenuID/0003/Duplicate_2080=重复(&D)" 然后通过解析器运行该文件,将名称与命令ID分开。下面是我们写的一个解析器,是为了和Node.js脚本一起运行的,欢迎大家试一试。 const fs = require("fs"); const path = require("path"); const stream = require("stream"); const readline = require("readline"); const getCmdIds = (datFile) => { return new Promise((resolve) => { const instream = fs.createReadStream(datFile, "utf8"); const outstream = new stream(); const rl = readline.createInterface(instream, outstream); let menuIDs = {}; rl.on("line", (line) => { if (line.match(/\$\$\$\/AE\/MenuID/)) { line = line.substring(line.lastIndexOf("/") + 1); const data = line.match(/[a-z|A-Z|0-9]*\_[0-9]*/); if (data) { const name = data[0].match(/[a-z|A-Z|0-9]*\_/)[0].slice(0, -1); const number = data[0].match(/\_[0-9]*/)[0].substr(1); if (number && name) { menuIDs[number] = name; } } } }); rl.on("close", () => resolve(menuIDs)); }); }; const version = 2022; const datFile = C:/Program Files/Adobe/Adobe After Effects ${version}/Support Files/Dictionaries/es_ES/after_effects_es_ES.dat; getCmdIds(datFile).then((res) => { console.log(${Object.keys(res).length} Command IDs Found); const txt = JSON.stringify(res, null, "\t"); const outFile = path.join(__dirname, ${version}.json); fs.writeFileSync(outFile, txt, { encoding: "utf-8", }); console.log(File written to: ${outFile}); }); 解析器识别所有的命令ID及其相应的名称,然后将数据保存到一个JSON文件中。我们已经为每个版本的After Effects生成了JSON文件,从After Effects CC 2015到最新的After Effects CC 2022。 这些文件也可以在你自己的脚本或扩展中参考,你可以在下面下载它们。- 0
- 0
- 812
-
【AE脚本】密码登录验证
来源:Youtube:NT 教程 源码 // 登录界面 var regWindow = new Window("palette", "Login", undefined, { closeButton: false }); regWindow.orientation = "column"; var rGroupOne = regWindow.add("group", undefined, "rGroupOne"); rGroupOne.orientation = "row"; var usernameText = rGroupOne.add("statictext", undefined, "Username:"); usernameText.size = [60, 25]; var usernameEditText = rGroupOne.add("edittext", undefined, "login@username.com"); usernameEditText.size = [120, 25]; var rGroupTwo = regWindow.add("group", undefined, "rGroupTwo"); rGroupTwo.orientation = "row"; var passwordText = rGroupTwo.add("statictext", undefined, "Password:"); passwordText.size = [60, 25]; var passwordEditText = rGroupTwo.add("edittext", undefined, ""); passwordEditText.size = [120, 25]; var rGroupThree = regWindow.add("group", undefined, "rGroupThree"); rGroupThree.orientation = "row"; var registerButton = rGroupThree.add("button", undefined, "Register"); var cancelButton = rGroupThree.add("button", undefined, "Cancel"); regWindow.center(); regWindow.show(); // 定义用户信息 var username = "natelovell99@gmail.com"; var password = "password"; // 真正的脚本信息 var ourScript = "// VFX Toolkit Script\r\n\r\n// binary imgs\r\nvar options = \"\\u0089PNG\\r\\n\\x1A\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x19\\x00\\x00\\x00\\x19\\b\\x06\\x00\\x00\\x00\\u00C4\\u00E9\\u0085c\\x00\\x00\\x00\\tpHYs\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x018\\\"\\u00F4@\\x00\\x00\\x00$zTXtCreator\\x00\\x00\\b\\u0099sL\\u00C9OJUpL+I-RpMKKM.)\\x06\\x00Az\\x06\\u00CEjz\\x15\\u00C5\\x00\\x00\\x03\\u0098IDATH\\u0089\\u00A5\\u0096Ah\\\\U\\x14\\u0086\\u00BFs\\u00DF{\\u0093*\\u00E8b\\u00B4\\u00D4\\u0095\\u00B1ILW\\u008A\\r\\u00B8\\n\\u0092!\\u0093N#\\x14\\u00D1\\bq\\u00A4a\\u00CCL\\u00AATD\\u00A9\\u008A\\u00A5X\\u00ED\\u00C2E\\x14\\u00BAHDq\\u00A7\\tc@P\\\"\\u00AD\\u00ABd\\u0092\\u00996\\u008B,\\u00DC\\u00CC\\\"X0\\u00A0Iv\\u00CE\\u00A6\\u00A54 \\u0099y\\u00EF\\u00DD\\u00E3\\\"q2\\u00A6\\u00EF\\r\\x1A\\u00FF\\u00D5y\\u00F7\\u00FE\\u00E7?\\u00EF\\u00DC{\\u00CF\\u00B9\\x17\\u00DA \\u0093\\u00C94\\u00ED\\u0091\\u0091\\x11R\\u00A9T5\\u0095Ji*\\u0095\\u00AAf\\u00B3\\u00D9\\u00E6\\u00DC\\u00993\\u00CF\\u00B6\\u0093A\\u00A2\\x06\\u00D3CC\\x1D6\\f\\u00DF\\x05N8nbbyi\\u00D1\\u009E:u\\u00DA\\u00F5\\u00FD\\u00FA6p\\x04\\u00D8\\u00F1\\u00BC\\u008E\\u0087\\u0097\\u0096\\x16\\u00FD\\u00A1LFB\\u00DF\\u00FF\\x06X7\\u00C6\\u0099.\\u0097\\u0097w\\x0E\\u00EA9QA\\u009E\\u00E8\\u00EC\\u009CU\\u00D5\\u00F7\\u0080gT\\u00AD\\u00DB\\u00DD\\u00DD\\u00FDs\\x18\\x06/\\x03\\u00AF\\u00ECQ\\\\U\\u00BB\\u00DE\\u00D3\\u00D3\\u00F3{\\x18\\x04WT\\u00F5\\x1D\\b\\u00F4\\u00F8\\u00D6\\u00D6\\u00D6\\u008F\\x07\\u00F5\\u00DC\\u0098\\fK\\u00C0\\x18\\u0080\\u00AA~\\x18\\u0086\\u00E1\\u00FB{\\x194\\u00A1\\u00AAsA\\x10\\u00FC\\t<p\\u00C0\\u00EF>\\u0098\\u00C8Ac\\u00AE\\x03\\u00FE\\u00DE\\u00A7\\x1C\\f\\u00D0\\u0082\\x07\\u00D9_\\u00F2\\u00BA\\x18s-\\u008A$\\x00\\u00E9t\\u00BA\\u00C3Z\\u00FB5P2\\u008Es\\u00DD\\u0086\\u00E1\\u0097\\u00AA:\\x16#\\x1C\\x0B\\x11\\u00F9\\u00C2\\x18s\\u00D9Z\\u00FB\\x12\\u0090\\x11c&*\\u00E5r\\u00DD\\x05\\u00B0\\u00A1\\u00BD\\u00A0\\u00E8Y\\u00E0l\\x18\\x04>\\u00E0\\u00FD\\u00D7\\x00\\x00\\u00AA\\u00FAv\\x18\\u0086o\\x00\\x1D\\x00X\\u00FB\\x0B\\u00F0\\u0099\\x19\\x1D\\x1D\\x05\\u00E1D\\x0B\\u00F7P\\x01Z\\u00D0\\u00D1b\\u00F7\\u00A6\\u00C7\\u00CF\\u00E1\\u00DC\\u00BAu\\u008B\\u00DE\\u00DE\\u00DE\\u009F\\u00AC\\u00B5.\\u00F0\\x1C1\\u00C7\\x1A\\b\\u0081\\u009B\\u0088\\u0094\\u0081\\u00BB\\u00C0\\u00E3\\u00C4\\u00EC)\\u00A0\\\"2\\u00E9y\\u0089\\x0B\\u00CB\\u00F3?\\u00EC\\u0092J\\u00A5\\u0092\\u008A\\u00C8W\\u0080\\u00C68m\\u008A\\u0091\\u00BEB\\u00A1\\u0090\\u00BEy\\u00E3\\u00C6\\u00EB\\u0085B!-F\\u00FA\\u0080\\u00CD\\x18\\u00FE\\u008E\\x18\\u00F3i\\u00A9\\u00B4\\u00A8\\x00\\u0092\\u00CD\\u00BE\\u00CA\\u009D\\u00DB\\u00B7=?\\u00F0\\u00DFT\\u00D5\\u00CF\\u00A32\\x10\\u0091>#\\u00B2aU\\u00AF\\u00AAj\\u00BF\\u0088\\u00AC\\x1A\\u0091\\x0F\\u00ACj\\u0097\\u00AAV\\u0089\\u00A87\\x11\\x19\\u00F3\\\\\\u00EF\\u00FB\\u00E4#I\\u00DF\\u00D4j\\x7FT\\x1B~\\u00E3^L\\x00\\u0080\\u0095|>\\u00BF\\x16\\u00EE\\x068\\x0F<\\u00A5\\u00AA\\u00E7C\\u00D5\\u00AB\\u00F9|~\\rX\\u0089\\\\/\\u00D5\\u00B9\\u0086\\u00DF\\u00B8W\\u00AB\\u00D5\\u00AA\\x068I|\\x1D\\x00l\\u00E4r9P\\u00ED?\\u00A0\\u00D2\\u009F\\u00CB\\u00E5\\x006\\u00DA\\u00F8\\x1E\\x01N\\x1A\\u00A0\\n\\u00DC\\u00D7oZ\\u00D0U,\\x16Ad\\u00F5\\x1F\\u00A3\\\"\\u00AB\\u00C5b\\x11\\u00A0\\u00AB\\u008D\\u00EF\\x0EP\\u0095\\u0091\\u0091,\\u00DB\\u00DBw\\u00BC \\u00F0\\u00DFR\\u00D5\\u00A9\\b\\u00E2a\\u00F7d\\u00C2\\u00F5\\u00BCo\\x1FJ&\\u00FD\\u00E6q\\x1D\\x1C\\x1C\\u00EC\\u00B4\\u00D6n\\x12}\\u00847\\u00C5\\u00C8\\u008B\\u00F9\\u00F1\\u00FCZ.\\u0097\\u00A3X,23;\\u00F3\\u00B4Z\\u00BD\\x06\\x1C\\u008F\\u00E07\\u008C\\u00E3\\x1C\\u00AB\\u0094\\u00CBw\\u00F9[0\\u00939-\\u00BE\\u00DF\\u00F8DU/\\u00C7\\x04\\u0081\\u00DD:YAd\\x03\\u00D5. *\\u0083=\\u00EC\\u00D6I\\\"q\\u00A5\\u00B4\\u00B8hexx\\u0098z\\u00BD>\\u00A3\\u00AA\\u00E31\\x0E\\u0087\\u0086\\u0088\\u00CC&\\u0093\\u008F\\u00E5\\u00CD\\u00C2\\u00C2\\x02\\u00C0\\u00AF-s\\u00F6\\x7Fj\\x07-\\u00F6\\u00FA\\u00FC\\u00FCw\\u00BB\\x15o\\u008C\\u0099\\x16\\u00919\\x11y\\u00CDq\\u009Cc@\\u00F9P\\u00F2\\\"\\u00F3\\u008E\\u00EB\\x1E\\x15\\u0091\\u009C\\u0088\\u00CC\\u00891S\\x10w\\u00FD\\u00A6\\u00D3\\u008F\\u0086aX#~\\u00CD#3p\\x1C\\u00E7hyo\\u00B3[\\x11\\u00D9\\u00E0\\u00AC\\u00B5\\u00CF\\u00FF\\u00CB\\x00\\u00CA~\\u00BFs\\u00AD\\u00B5/D\\u0091b\\u00BA\\u00A86\\u009F)\\\"2i\\u008CyRD.\\u00B62D\\u00E4\\u00A21\\u00A6[D&\\u009B^J\\u0086\\b\\u00C4\\\\\\u00BF\\u00EE9\\x11\\u00B9$\\\"3\\u00AE\\u00E7}T\\u00A9T~s\\u00BD\\u00C4\\x14\\u00FB\\u009Da\\u00C7u\\x13\\u00D3\\u0095Je\\u00D3\\u00F3\\u00DC\\u008FEdFD.9\\u00AE3\\x11\\u00FD\\u00D3m\\u0090\\u00C9\\u00A4\\u009Av\\u00BBw\\u00D7\\u00C0\\u00C0@[\\u009D\\u00BF\\x003\\u00AA\\u0080O\\u00B8\\u00FBP\\u00F1\\x00\\x00\\x00\\x00IEND\\u00AEB\\u0082\";\r\n\r\nvar logo = \"\\u0089PNG\\r\\n\\x1A\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\u00AA\\x00\\x00\\x00(\\b\\x06\\x00\\x00\\x00n\\x0EaQ\\x00\\x00\\x00\\tpHYs\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x018\\\"\\u00F4@\\x00\\x00\\x00$zTXtCreator\\x00\\x00\\b\\u0099sL\\u00C9OJUpL+I-RpMKKM.)\\x06\\x00Az\\x06\\u00CEjz\\x15\\u00C5\\x00\\x00 \\x00IDATx\\u009C\\u00D5\\u009Dy\\u00D8%E}\\u00EF?U\\u00D5}\\u0096w\\u009Fyg\\u00DE\\u00D9\\x19\\x19\\u00F6\\x11TP\\u0091Q\\x02\\x02\\u0092\\x18\\x17HTP\\u0088F\\u00F3$7j\\u00BCb\\u00F2Dc\\u00D4\\u00E4jB\\u00A2\\u00D1'\\u00F7\\u00C9MP\\u00AF1\\x01T\\u0094E\\rq%\\\"\\b\\u00B8]\\u0084\\u0091\\u00D9\\u00DE\\u0099\\u0081\\u0099q\\x16\\u0098\\u00F5\\u00DD\\u00CF{\\u00CE\\u00E9\\u00D3\\u00DDUu\\u00FF\\u00A8\\u00EE>\\u00DD\\u00E7\\u009C\\u00D7\\u00DC\\u00ED\\u008F\\u009B\\u00C2~\\u00DE3\\u00DD\\u00D5\\u00D5\\u00D5]\\u00DF\\u00FA\\u00FD\\u00BE\\u00BF\\u00A5Ja\\u00AD\\u00B5\\u00FC\\x07(\\u0087\\u0081\\u00B3\\u00C0$\\u00A7\\u0099m\\u009Cf~\\u00E6,s3\\u0093\\u00D4g\\u00A7\\u00A9\\u00CFM\\u00D3l\\u00CC\\x136\\u009BD\\u00AD\\u00808l\\u00A1\\u00E3\\u00888\\f1qL\\x1C\\u00C5\\u00E88v\\u00BF\\u00E3\\x18\\x1DkL\\u00AC\\u0089\\u00A3\\x18k\\fZ\\x1B\\u008C\\u00D6\\x18m\\u00B0\\u00C6b\\u008C\\u00C1jC\\u00A9Tbll\\fOzLNN2?_'\\nC\\u00AC\\x05\\u00ACE \\u00B0\\x16\\x04 \\u00A5\\x04\\x04\\x02\\u00C0\\x02B\\u00E0)\\x0F\\u00DF\\u00F3)\\u0095||\\u00CFG*\\u0085\\u00D1\\u0086(\\u008A\\b[!q\\x1C\\u00BBg\\x02\\u00D6X\\u00AC\\u00B5\\x18\\u00AD\\u00B1\\u00D6bM2,B \\u0085t\\u00BF\\u00F3#\\u0095\\u00FE\\x16\\\"\\u00FBm\\u008C{\\x07\\u00AD5\\u00C6\\u0098B}\\u00DB\\u00E3~!Dv\\u00A4\\u00CF0\\u00C6\\u00B8~\\x18\\u008B\\u00B5\\u00EEwvK\\u00F2m\\u008C1\\u00EE>\\x04J\\u00A9B;\\u00E9\\u00BB\\x0B!\\u0092o\\u00D2~\\u009E\\u00B5\\u00968\\x19\\u0083\\u00F49\\u00E9y\\u00F7*\\x02!\\u00C8\\u00DAF\\bw\\u00AB\\u00B5\\u0088\\u00FF(@]\\u00A8\\u00CC\\x01G\\u0080\\u0093<\\u00C7d\\u00ED83\\x13\\u00A7\\u0098\\u009F\\u0099\\u00A21?K0?O\\u00B3>O\\u00AB\\u00D9\\u00A0\\u00D5l\\x12\\x06\\x01a\\u00D0BG\\x11Q\\x14\\u00A1\\u00A3(\\x01\\u00B1&\\u008E\\\"L\\u00AC\\u00DD k\\u00835\\x0E\\u00B4X\\x18\\u00E8\\x1Fll\\f\\x1D\\x1Bf\\u00A6\\u00A7\\u00A9\\u00D5jhm\\u00C0\\u00DA\\f\\u00A8 \\u0090\\u00C9\\x07\\u00B6\\x16\\u00AC1\\x19\\b\\x05\\x02%\\x15\\u00BE\\u00EF\\u00A1\\u00A4B\\x1B\\u00E3&K\\x02\\u00A6t\\u0080\\u00B5\\u00C9M\\u0094\\u00DC@\\n!\\u00B2v\\u0080\\u009E\\u0080\\u00B5\\u0090\\u00804\\x01A\\x02t\\u009BL\\u00A8\\u00ACj\\u0086\\u00FF\\u00B4\\u00D7m\\u0090\\u00A5\\x13DJI\\u00A9T\\u00A2\\x19\\x04\\u00E88n?*\\u00B9n\\u008C\\u00C9\\u00DAHA%\\u00A5l\\u00B7)\\x04B\\u00B4\\u00FF\\u009D\\u00DDo,Zk\\u00A2(j\\x035\\u00E9S\\u00F1\\u00DE6Xm\\u00F2\\\\\\u00EF\\u00FF\\x18!\\u00FF\\u009F\\u0094!+Pe\\x15\\u0095\\u00C1\\n\\u00A5J\\u0089R\\u00B9\\u0084_\\u00F2\\u00F0<\\u0085\\u0090 \\u00A5\\u00C0\\u008D\\u0090\\u00C5X\\u0083\\u0090\\x02\\u00A9\\x14\\u00DA\\u00F3\\u00F0\\u00FC\\u00980ham\\\")\\u00ACDX\\u008B5\\x02\\u0084\\u00FBH\\u00B5\\u00FA<\\u00CD\\u00A3MFGG\\x19[6\\u00C6\\u00E2\\u00D1Qfgf\\u00A8\\u00D5j\\u00988\\x194\\u0092\\u00C1I\\u00FA\\x15'@\\u00B4\\u00DA\\x00\\u00AD5q\\x1C'\\u0083 \\u0091\\u00C9@\\u00E6%\\u0091\\u00EB\\u00A1\\u0093\\u00AC6\\u00E9\\u00B2%\\u0091\\u00AE\\t\\u0090\\u00B2\\u0092J\\u00A2T\\u009A& \\u00EA%v\\u00F2\\x12+k\\u00D7\\u00DA\\x02\\u0090\\u00AC\\u00B5\\u0094J%J~\\tc\\f\\u00CDf\\x13\\u009B\\x002_:\\u00EF\\u00E9\\u00F5\\u008C\\u0085\\u00CA\\u00FFJ\\u009D\\u00E2\\u00C3@X\\u00F7n\\u00FFa%j\\x04<\\x0B\\u009C$\\u00E0\\u00A49\\u00C4\\u00D4\\u0099\\x13\\u00D4f&h\\u00D6f\\t\\u00EA5\\u0082\\u00C6<Q\\x10$\\u0092\\u00B4I\\u00AB\\u00D9$j\\u0085\\u0084\\u00AD\\x16Q\\x18\\u00A2\\x13Ij\\u00B4v\\x12\\x01\\x01\\b\\u00AC1\\u00D4S\\x15o\\u00DA\\u0083/\\u0092Y\\u00DF\\u00DF\\u00DFO\\u00B9T\\u00A6\\u00D5j\\u00D1\\u00AC7\\x1D\\u00B8\\x13\\u0090J\\u00E9T\\u00A8\\u00B5\\u00B4F\\u00C7:\\u0093\\u0092\\u00AE\\x0E\\u0099JSR\\x15Tn\\n\\u00D4Lu'\\u00EA\\u00DB\\u00E8D\\x15\\u00E7@\\u0099W\\u0097\\u009D\\x14 S\\u00D7\\u00E9\\u00E5\\u00FC}I\\u009D\\u00FC\\x04QRQ\\u00ADV\\u0091R\\u00D2j\\u00B5h\\x05\\u00AD\\u00B6\\u00FA\\u00B7\\u00D6Q\\u009C<8S\\u008A\\u0092\\u00D4\\u0091\\u00B2=\\u00E9R\\u00A9\\u009AJ\\u00D4\\u00EC\\u00F9\\u00C9_\\u00A3MF\\x1D\\u00E28\\u00FE\\u00A5\\x12u`\\x00\\x1Dk\\x1A\\u00CD\\u00A6\\u0093\\u00A8w3\\u00CE c\\u008C\\u00B0\\u0084\\u00CD\\u00C0 \\u00A0\\u00FE\\u009FB\\u00EA\\x7F\\u00AFL\\x03\\x13\\u00C9\\u00DF\\x19\\u00A6\\u00A81A\\u00AD6Amf\\u008A\\u00FA\\u00DC\\fA\\u00BD\\u0086\\u008D#t\\x14\\x12\\u00B5\\u009A\\x04\\u008D\\x06\\u008D\\u00F9\\x1Aa+@G\\x11:\\u008A\\u00C1\\x1A\\u00AC\\u00D6NM%\\x1C5N\\u00D4|\\x1CE\\u00E8\\u00B8\\u00CDI\\u00DB\\x7F\\u0093\\x0F/$q\\u00AC];\\u00D0\\u0096>8\\u00896;=\\u009B\\u009D7\\u00C6&\\u00F0NU\\x1D\\u00C9\\u00A0\\u00C9\\u00B6t3\\t5\\u00B0\\x16\\u0084\\u00E3\\u00B1R\\u00C8\\u0082\\u00CA\\u00B7\\u00B9\\u00E7\\u0090\\x1C\\u00D6\\u00B8\\u0081M\\u0081\\u00FE\\u00CB\\u00C0'\\u00F2\\u00CA\\u00DD\\u0092\\u00A8\\u00CCLD\\u00A7W\\u00B2\\u00C9&\\u00A5\\u00A4\\u00E4\\u0097\\u00A8T*Xki6\\u009B\\u008E\\u00AF\\x17$$\\x19HS\\x10e\\u00BC9\\u00AB\\u00946\\u00DC>%\\u0092/\\u00D2U:nM\\u00A9\\u0086@8\\r\\u0097\\u0080\\u00DC\\u00F3\\x14\\u008B\\x16-\\\"\\n#\\u00A6\\u00EB3\\u00D9\\u0084\\x10\\u00AF\\u00FD\\u00E4oY\\u00E5W(\\u0095\\u00FBX\\u00B1b5\\u008D\\u00A0A\\x18\\u00B7\\u00A8\\u00F6\\u0097\\u00F0\\u00CA\\u0082r_\\x19\\u00E5y\\u0094*\\x03\\f\\u008C\\u008Cq\\u00FE\\u00BA5\\u009C\\u00C3*6\\u00B2\\u009C\\u0081\\u00E4\\u00A1s8\\x15\\u00DC\\u00AB|\\u0083\\x1D\\u009C\\u0089\\u00A78\\u00DF[\\u0084&\\u00A6I@\\u009D\\x16u\\x02\\u00EAs\\x01\\u0093\\u00C7\\u00E7\\u00A9M\\u00CE\\u00D3\\u00AA\\u00D7i5\\x1B\\u0084\\u00CD\\u0080(\\b\\u0089C\\u00C7!\\u008D\\u008E\\u00D1q\\u0088\\u008EB\\u008C\\u008E\\u00C1j|O\\u00A1\\u00A4\\x04k\\u00D0qL+\\b2#$\\x03N\\u00F2q\\x04d\\u00BC\\u00D3h\\u00E38\\u00A9\\u00D6\\u008EC\\x1A\\u00EBT\\u00B3q\\u00E0\\u0088c\\u009D\\u00F1Nkl\\u00D7\\u00A7\\u00BF\\u00B3\\u00B1I\\u00F9\\u00A3\\u00CDq=\\x04J9 \\u00E6\\u00A5\\n%\\u0081\\u00A3\\x1DX\\u00DA\\u00BC\\u00CE\\u00DA\\x02\\u00FFK9l\\u00C6\\u0097m\\x1B\\u00A8\\u00D6\\u00DA\\u008C\\u00AFf|.\\u0085iNB\\u00A5\\u00BF\\u008Di\\u00AB[\\u00A5\\x14\\u00D5J\\u0095R\\u00A9D\\x1C\\u00C7\\u00B4Z\\u00AD.\\t\\u0099\\u00F2O\\u0093W\\u00FBy\\u00C6\\u0091H\\u00C6\\u00A2\\x01\\u00E4&\\u009F\\u0090\\u00D2I\\u00D8\\x1C_M\\u00DB\\u00CF?\\u00A3,&m*%\\x19\\x19\\x19A\\b\\u00C1\\u00F4\\u00D44A\\u00ABUx'\\u00EF\\u00F43G@\\b\\x06\\x06\\x07\\x10\\u00F3\\u00D3\\u00CC\\u00CE\\u00CD\\x10F!R)J\\u00E52~i\\u0090\\u00F2\\u00C00\\u008BW\\x0E\\x01\\r&\\u009B-\\u00CA\\u00D5\\x1A\\x01\\u00CF\\u00B2\\u009D\\u008Ba\\x01\\u0090\\u00EEf\\u009Ac\\u00EC\\u00C0Gs\\u00F6\\u00B9}<\\u00F4o\\u00FB\\u00F0\\u00AB}\\u00AC\\u00DE:\\u00CC;/\\u00FA}\\fp\\u00EF\\u0099\\u00AF\\x13NMs\\u00E3+\\u00DEH\\u008B\\u0088 \\u008C\\tj\\x01q\\x18\\u00E2\\x16F\\u00C7\\x0E\\u0080Fc\\u008C\\x06\\u00A3\\x01C\\u00B9\\u00EC\\u00A3\\u00E3\\u0088j\\u00B5\\u008C\\u00D1\\u009AV\\x10d|\\u00EA\\u00E9\\x03\\x07x\\u00E0\\u0081\\x07\\u009Ca#$J:U\\x1CG\\x11K\\u0096,\\u00E1Mo\\u00BA\\x01\\x1Dk\\x1E{\\u00F4Q\\u00FE\\u00C7\\u00E3\\u008Fc\\u00B4S\\u00DDK\\u0097.enn\\u008Ef\\u00A3\\u0089\\u00895\\u00C6:C\\u00E7\\u00BA\\u00EB\\u00AEc\\u00ED9kI\\u00E1\\u0096\\x1F\\u00B8Tn\\u00D8T\\u009D\\u00A6F\\x05m\\u00DE\\u00F9\\u00C8\\u00A3\\u008F\\u00B2c\\u00C7\\u008E\\x1C'\\u00B4XR0\\u00D8\\u009C\\u00CA\\u00B6\\x05\\x10Xc\\u00C1\\u00A4\\u00CFj\\u00D7q\\u00CFi\\x03\\u00B5\\x00\\u00A4\\u0082tn\\u009F\\x13BP.\\u0095)\\u0097\\u00CB\\u00C4qL}\\u00BE^\\x18\\u00AB\\f<\\u00A9\\u009A6\\u00B6\\x0B\\u009Cy#*/y\\u008Dq}\\u00B2\\x12\\u00C7\\u00EDs\\x06f\\u00A0%\\u0087\\x03\\u00B3;\\u00A7q\\x13\\u00D1Z\\u00C3\\u00D0\\u00D0\\x10\\u00D5J\\u0095\\u00E9\\u0099\\x19\\x1A\\u008DF\\u0091\\u008B'\\u00FD\\u00F1Zsu\\u00D7\\u00A0W\\u00A2~v\\u0096\\u00D9\\u00A9\\x19,\\u00A0\\u00BC~\\u00D4\\u00E2\\n\\u00E5\\u0092O\\u00B9$)\\u00F9\\u008ArIQ\\u009F\\u009C\\u00E6h\\u00B5F0\\u00AB\\u00D9\\u00BE\\u00EE\\u00E2\\x1E\\x10ue?O3\\x17\\u009Cb\\u00F2\\u00C4\\x14#\\u00CBJ\\u00AC\\u00D9\\u00BC\\u0094\\u009D\\u00DF}\\u0086m+\\u00D7\\u00B1\\u00921W\\u00E7g\\x07\\u00F8\\u0095W\\\\\\u00C9\\u008BX\\u00E7n*\\x01\\u00A3\\x0B6Y('8\\u00C1JVv_\\u00D8\\f\\u00DF\\u00BE\\u00FF\\u00DB\\x18\\u009C\\u00D1b\\u0095r\\u0083j\\x05w\\u00DCz'\\u00FD,\\x06\\u00E0s\\u009F\\u00FE\\x1C\\u00A6e\\u00B2Y~\\u00E6\\u00E4YFGGY\\u00BAh\\u008C\\u00E9\\u00E9if\\u00A6g\\u00D0:\\u00E6co\\u00BF\\x15\\u00FE/l\\u00CE\\u00E3G\\u008F\\u00F3\\u00E4\\u00E3Od\\u00C6\\u0090\\x10\\u008E\\x07w\\u00F2\\u00B2\\u00CC\\u00F5\\u00933\\u008A2\\x15\\u009Fj\\u008A\\x0E\\u008EiiK,(Z\\u00F8\\x05-\\x00Da\\u0084\\u008E5B\\u00CA\\x02\\u00EFl?\\u00C3\\x1Dy\\t\\u0098\\u00A7\\x1A\\u009D\\x12\\u00BA\\x13LF\\u009B\\u00B6{\\u00CA\\u0082R\\u008E@\\u00E6]XZ\\u00EB\\u00C4\\u00A8\\u008C\\u00B0\\u00D6\\u00D2W\\u00EDcp\\u0090z\\u00BD\\u00CE\\u0089\\u0093'\\x17\\u0094\\u00E2\\x00^\\u00DC\\u0088\\u009C\\u00E8\\x1E\\x14\\u00C4\\rM\\u00D4P\\u00F8\\u00E5*~\\u00A5JIU(\\u00F9}T\\u00ABUL\\x183{j\\u0092\\u00F9\\u00B3\\u008A\\u00DAD\\x0BU6\\u00A4\\u00F8\\u00EAU\\u00D62\\u00CA\\u00DD\\u00DF{\\u008C%\\u00EB\\x04\\x07\\x7F8\\u00C9\\u00F0\\u008A2\\u00E7^\\u00B4\\u0092?\\u00BC\\u00F2\\u00DD\\x00<v\\u00F6\\u00A7\\u00ECy\\u00E8\\x19n~\\u00DD;\\x16l\\u00E3Y\\\"41\\x16\\rh\\u009C\\t\\x15\\u00F1\\u00CC\\u00C1q\\u009Ex\\u00F2g\\u00FC\\u00C9\\u009B>\\u00D0\\u00F3\\u00BE\\u0097\\u00BF\\u00F4\\u00E5\\u00FC\\u00E0\\u0091GPR\\u0080t/\\u00FF\\u00FE?~\\x7F\\x06\\u00D2\\u00DF\\u00BF\\u00F5\\u00ED\\u00CCN\\u00CD\\u0081\\x11\\u00A0\\x1DH\\u00A2(\\u00E2\\u00E4\\u00F1\\u0093\\u00F4\\u00F7\\u00F7\\u00B3~\\u00FDz<<N\\u009F>\\u00CD\\u00DE\\u00D9=(\\u0099|t!\\u00A8\\u0094\\u00CB\\u00AC\\u00F5/\\u00E8\\u00F9\\u00DC\\u00D3<\\u00CB\\u00DC\\u00FC\\x1C@f\\u00FC\\u00EC\\u00F1'0\\u00DA\\u00B6Y\\u009B\\x00C\\u00DB\\u00B8\\x02[\\u00A0\\x05\\\"\\x05j\\u00C1\\u00C5D\\x06\\u00D0\\u00CC7i\\u00C9\\u00B4Hj\\u00F4\\u00A5\\u00ED\\u00A7\\u00C5I\\u00BB\\x0E\\u0089\\u0099\\x00\\u00AA\\u00CB\\u0086N\\u009F\\u0091k \\u00A5\\x19&7\\x19\\u00F2u\\x0BE\\u00B4i\\u0081@ =\\u0089R\\nk\\rq\\x1Ce.3\\x0B\\u0094\\u00CB\\x15FFF\\u0088\\u00A2\\u00883g\\u00CE\\x10\\u0086aw{\\u00F9\\u00A6\\u0085\\u00C0\\u00B3\\u00A1Fx%<1L\\u00DC\\u00B2(\\u00A1\\u00F1T\\x05_\\u00F5\\u00E3{U\\u0084\\u0081\\u00E6l\\u009D0\\x10\\u00CCO\\b\\u00E6\\u00CE\\x06\\u0094\\u00FA \\u0098\\u009F\\u0081\\u00D7.\\u00DC\\u00F8\\x1C34\\u00A7&8\\x19\\u0094\\u00B0\\\"\\u00E2\\u00C8\\u00F1\\x1A\\u0097]\\u00FD\\u0082\\u00EC\\u00FA'>\\u00F6w\\u00D4'N\\u00B1\\u00C4\\u00AB\\u00F4\\u00BC\\u00FF\\u008F?\\u00FB)\\x1E\\u00FC\\u00DE\\u0083\\x18\\u00AD\\u009Dqd4\\u00D6j\\u0084\\u00B0\\u00F8\\u00BEdp\\u00A0\\u00BA Pox\\u00C3\\u008D<\\u00FC\\u00E0\\x0F0\\u00C2\\u0085\\u00E5\\u00B2\\u00ED\\u00DBy\\u00F5\\u00B6\\u00EB\\x00\\u00B8\\u00FD{\\u009Fc\\u00C7\\x13O!\\u008C\\u0084\\u00D88c\\u00C7:I \\u0085$\\u00A8\\x07\\x1C=|\\x14m\\fF[~\\u00E3\\u00F5\\u00BFQ\\x18\\u00A4\\x17_\\u00F2b\\u00BE\\u00F07_\\u00E9\\u00F9\\u00DC\\u00D7\\u00BE\\u00EEu\\u00CC\\u00CD\\u00CEe*\\u00DE\\u008D\\u009F\\x03\\u0097\\u00F2\\x14\\u009E\\u00E7eR'u\\u009A'#\\u0091\\x19k\\u00D6\\u00C4\\u0080\\u00C5\\x1A\\u00B0\\u0089\\u0080\\u00C9\\u00F3_asNp\\u0084\\x0BV\\u0098\\\"gt\\x15\\u00B2anK:C\\x06\\u00A8\\u0082\\u008B\\u00C8d6\\\\\\u00F1H\\u00DB\\u00E9\\u00E4\\u00E9\\u00B4\\x7Fg\\x06\\u00A1u\\u0093\\x02\\u00E1\\u00DC\\u0081Q\\x18\\u00D2\\u00EAx\\u008E\\u00E7y\\f\\r\\r\\u00E1\\u00FB>S\\u0093S4\\x1A\\u008D\\u00CCkb\\u00E9\\u00E8S\\u00A7D\\u00C5\\u00F4\\u00A1l\\x05_V\\u0088\\u00E3\\x10%*H\\u00AAH<\\u00E2V\\x04\\u00C4\\u00B4\\x1A\\u0086\\u00B8eh\\u00CE\\u00B5\\u00F0\\u00CA0wf\\x1E\\u00A9\\x16\\u009E\\x0252\\u009Cbhl\\u0088#;\\u008EQ\\x1A\\u00AC\\x10\\x06\\x11\\u00BF\\u00B9\\u00F6f\\x00\\u009A\\u00C0|\\x18@\\\\a}\\u00E9\\u00BC\\u009Em<\\u00F5\\u00C4S\\u0098\\u00C8\\x19\\x13\\u00E9Ws~J\\u0083\\x15\\x10\\x05\\u0086\\u00A7\\u00CE\\u00EE\\u00E3\\u00A2\\u00A5\\u009B\\u00BA\\u00EE\\u00BDp\\u00F4\\x12<\\u00E9\\x13\\u00B6B\\u0096,Y\\u00C2'\\u00DE\\u00F3\\u00B7\\x00\\u00FC\\\"x\\u009A\\u00CF\\u00DE\\u00F6Y\\u0084\\x15\\b#\\x10VB\\u00CA\\u00C7r\\u0081\\u009C\\u0099\\u00A9Y\\u00E7\\u00BB32S\\u00D36A\\u00CD\\u00A6\\r\\u00DD\\u00CFK\\u00CB\\u00CC\\u00E4\\u00B4\\u00FB\\u00D89\\x07\\u00BD\\u0090\\x02%=J~\\x19\\u00CF\\u00F32\\u00A9\\u0083\\x10m\\u008B6\\x19\\x1F\\u00E7w\\u00B5\\u00EEH\\u00BD\\x06\\u009D\\u0096w\\u008EG\\u00A6\\u0081\\u0081\\u00CC\\u00D2\\u00EF0R:\\x07\\u00DE\\b\\u009B9\\u00D3\\u00F3\\u00B5\\u00B9\\u00FB{I\\u00D5\\u008C\\x16\\u00E4\\u0088\\u00AF\\x00'\\u00BD\\x13\\u00A9\\u009B\\u00B5#\\u00A0\\u00D5\\n\\u00B3\\u00E7K\\u00E1$\\u00EB\\u00D0\\u00D0\\x10}\\u00D4j5&\\u00CEN$\\u00FC\\u00D4\\u00B6'Q\\u00D2\\u00C7\\u00F6\\u00E4-\\u00BE\\u0083\\u00B4ZQ\\u00F2\\u00FB\\u0090\\u00B2\\u008C\\u008E<0>:\\u00D4\\u00E80\\\"\\u00AC\\u0087\\u00D4&\\u009AL\\x1E\\u009B\\u00E7\\u00EC/\\u00A6\\b\\u00E6\\u009B\\u00D4\\u00CEN\\u00D3\\u00AA5\\u0089\\u009BUj\\x0B\\f\\u0098\\x01jgk\\f--\\x116\\u009A\\u00CC\\u009E\\b\\x18\\x1DY\\u009C\\x19]\\x7F\\u00FB\\u00ED\\x7F\\u00A0:\\u00D0\\u00C7\\u00C8\\u00D82\\u00E4\\x02m\\u009C|\\u00F6\\x18\\u00A6\\x15Cl\\x10\\u00C6\\\"L\\u00D2\\u00B0\\x11\\u00D8\\x18\\u00AC\\u00B6\\u00DC\\u00F1\\u00CFw.p7\\u00FC\\u00FA\\u00AF\\u00BE\\x06\\u00AB-\\u009F\\u00FF\\u00DC\\u00E7\\u00B3s\\u00BF\\u00F7;\\u00BF\\u0087\\u00B0\\x02\\u0099\\u00FC\\u00A7\\u0084B\\t\\u00E5\\u0080kE\\x06\\x12\\x1DiL\\u00A4\\u00B1\\u00DA\\u00B4%\\u0091\\x11\\x04\\u00DB\\u00B6>\\u00BF\\u00E7\\u00F3\\x0E\\u00CD\\x1E\\u00C0h\\u009B\\x1DhPB\\u00E1+\\x1FOzH\\u00A4k;6DaL\\u00D8\\n\\u00B3#h\\x064\\u009BM\\u0082 p\\u00A1\\u00D5\\u00C8\\u0085V\\u00D3I\\u0094:\\u00A0\\u0084\\x15I_\\u00DA\\u00EA>\\u00BD\\u0096Jclvd\\u00921\\u009D\\u00EB\\u00A9_\\u00D8\\u00B4\\u00C1'z\\u00FC\\u0097\\u00F2\\u00E2\\u008Cs\\u00D8\\\"\\x0F\\u00FEeR7\\u00DFv\\u00CAw\\x17/^\\u008C\\u00E7y\\u009C9}\\u0086\\u00B9\\u00D9\\u00B9D\\u00F8\\u00E4\\u00EE\\u00A3\\u00E8\\u00DB-\\u00F4%q\\u00FDy\\u00C2z\\u0094\\u00BC~l\\u00EC\\x13\\u00B5\\u00E6\\u0089\\u00A2\\b\\u00AF\\u00AC\\u0088\\x1A\\u0082\\u00A0\\x16\\x126C\\u00A2\\u00B0\\u0085\\u00F2\\x05a#B\\u00F9\\x11\\u00E5>\\u008F\\u00C6T\\u00CCYZ\\fR\\u00EE\\x1A4\\x1FhL7\\u00A8\\u009Dm\\u00E0\\u0095%\\u008D\\u00D3'x\\u00F3\\u00EB\\u00DE\\x0F8\\u00A6\\u00F9o_\\u00FD!\\u00D5a\\u00C5\\u00D6m\\u00DBz\\x0E\\u00FA\\x19\\u00CE\\u00A2\\u0083i\\x04e\\u0094_\\x06<\\u00A7\\x1A\\x00\\u0084{y\\x1Dj~\\u00FE\\u00C4\\u00CF\\x17\\x04\\u00EA[n\\u00BC\\u0089U+V\\u00B1B\\u009E\\x03\\u00C0;>\\u00F0Vjs\\u00F3\\u0099\\u00B4\\u0090(\\u00A4TH\\x14\\u00C2\\u00C6\\u00C4&F\\u0090\\u00B8eR\\u00D0f\\u00B4\\u00AF=\\u00EB\\u00B7l\\u00DA\\u00D2\\u00F3y\\u00BBw\\u00ED\\u00CE\\\\Z)\\u0097L}\\u00A1F\\x18B\\x13\\u00D2\\u00DF\\u00DF\\u00CF\\u00F6\\u00CB^\\u00CA\\u00AAU\\u00AB\\u0090Rr\\u00EA\\u00E4)\\x1E~\\u00F8a&&&\\x16x\\x0B7p\\u00ABV\\u00AF\\u00E6\\u00D2K/ell\\u008C(\\u008A8x\\u00F0 ?\\u00FC\\u00E1\\x0Fi6\\u009A@\\x1BO\\u00FD}\\u00FD\\u009C\\x7F\\u00FE\\u00F9\\u0099\\u00A42\\u00C60\\u00BEw\\u00BC \\u00B5\\x1C\\u00EF4\\u00AC\\\\\\u00B9\\u0092\\u0095+Wf\\u0092tzf\\u0086\\u00C3\\u0087\\x0F\\u00E7\\f'\\u00C1\\u009A5kX\\u00B4h\\x11\\u00C7\\u008E\\x1D\\u00E3\\u00EC\\u0099\\u00B3\\u00EE\\u00FD7o\\u00C1\\u00F7\\u00FD\\u00AC\\u0087\\x07\\x0F\\x1Ed\\u00F9\\u00F2\\u00E5\\f\\f\\f\\x14\\u00D4u\\u00DEPL\\u00DDa+\\u0096\\u00AFjj\\u008A\\u00A3G\\u008F\\x16\\u00A5\\u00F4\\x02\\u0091\\u00AA<p=k|<U&\\x0E#Z\\u00CD\\u00C09\\u0098\\u00B5A\\x07\\u0086\\u00A8\\u00D5\\\"\\u008E\\x02\\u0084\\x14D\\u0081E\\u00F9-\\u00A4\\u0084\\u00FAT?\\u00A5\\u00B2\\u00E6\\u00E9\\u00DD\\u00FBY\\u00B7\\u00ED\\u00C2\\u00AE\\x07T\\u0080\\u00F9\\u00A9\\x06sg\\u00EA\\u0094\\u00FB\\x07Q\\u00D4\\u00B8l\\u00D9\\u00B9\\x00|\\u00E2\\u00AE;h\\u00CE\\u00D4i\\u00CD\\u00FBl\\u00BAz\\u0081A\\u00DF\\u00F9\\x14\\u00E8\\x10+4&l!e\\x05!\\x15\\u00A0\\x12O\\u008DE\\u00C7\\u00CE\\u00A1\\u00FF\\u00DD'\\x1F\\u00E2\\u00DA\\x17]\\u00D9\\u00D5\\u00C6\\u009A\\u00CA\\u00F3\\u00B8\\u00F9\\u00DA\\u00DF\\x06\\u00E0\\u00B6\\u00BB\\u00FF\\u008E\\u00BD\\u00BB\\u00C73\\x0E\\u0095/RH<\\u00E5\\u0081\\u0085\\u00D8\\u00C6\\u0099\\u00FALyag\\u0098p\\u00DD\\u00F0\\u00FA\\x05\\u00FA\\u00BC\\u009B\\u00C4\\u00EBD\\x1A\\x0658\\u00FE50<\\u00C8\\u00AD\\u00B7\\u00DE\\u00CA\\u00F6-\\u0097w\\u00DF\\u00F8G\\u00F0\\u00ED\\u009F|\\u0083[n\\u00B9\\x05\\x1D\\u00EBl\\u0080\\x00.\\u00BA\\u00E8B>\\u00F5\\u00A9Oq\\u00CE\\u00D0\\u00B9I\\u00BB1\\\"\\u00E7\\u0081\\u00B8\\u00F5\\x1F>\\u00C6\\x1Dw\\u00DC\\u0091\\u00F5\\u00EDU\\u00D7\\\\\\u00C3\\u00DF|\\u00E8o\\u00DB\\u00FD%b\\u00F3K\\u00B7\\u00B8\\u0089\\u009DS\\u00B5B\\b>\\u00F4\\u00A1\\x0F\\u00F3\\u00CA\\u008B\\u00AF\\u00C9\\u00EA>\\u00F8\\u00F8\\x03\\u00BC\\u00E7=\\u00EF\\u00C9\\u00DCG\\x17_|1_\\u00BC\\u00ED\\u00CB4\\u0099g\\u00FB\\x15\\u00DB\\u00F1}\\x1F%\\x15\\u00DF\\u00B9\\u00FB\\u00DF\\n\\u00DD\\u00FF\\u00B57\\u00BD\\u008A{\\u00EF\\u00BE\\u0097\\u00FE\\x05=\\u00E9\\u00C5\\u00F2\\u00CF\\u00F7}\\u009E\\u008F|\\u00E4#Y\\u009F\\u0093\\x1F\\x05\\u00BA\\x01dFcz\\u00DE\\u00D3\\u0091F\\tE\\u00D4\\u008A\\b\\u009B\\u00A1\\u00FB\\u00C0R\\u0082m\\u00A2\\u00E3 \\u00B1\\u00FA$B\\x06(\\x05q\\u00B3B\\x1C\\u0085T\\u00FBJ\\u009C9y\\x1Cz\\x00U\\x02\\x13\\u00C7\\u00E6h\\u00CC\\u00B4(\\u0095\\x057\\u00DE\\u00F0\\u00D6\\u00EC\\u00DA7\\u00EE\\u00BF\\u009F\\u00B8\\x05\\u00B69\\u00CF\\u00DA\\x04\\u00BC\\u009De\\u00EF\\u00EE=\\fR&i\\t\\u00A6\\u0089s\\u00D4\\u0095\\\\tG\\b\\u008C\\u00B6D-\\u00C1\\u00ED\\u00FFt{O\\u00A0\\u00A6e\\u00D7\\u00B3?\\u00E7\\u00CE;\\u00EEt3\\u00D8y\\u00C7\\u00BBb\\u00CD\\x12\\u0089'=\\u0084r\\u00B4 \\x0B}\\u00DA\\u00B6\\u00D5\\f\\u0096\\u00E1\\u00E1\\u0085\\x07c\\u00CF\\u00EE\\u00BDN\\u00E5\\u00E3\\u00DAwn&\\u00CD\\u00AA\\u0095\\u00ABy\\u00F0\\u00BE\\u0087\\u00B3z\\u00DF\\u00FC\\u00E1\\u00FD\\u00DCr\\u00CB-,\\x19]\\u00C2O\\u00BE\\u00FB8\\x00\\u00BFv\\u00E9k\\u0098\\u00F9\\u00F0L6\\u0080\\x00\\u00AF~\\u00F5\\u00AF\\u00F1_\\u00FF\\u00CB\\u00DFg\\u00FF~\\u00EFG\\u00DE\\u00CD\\x03\\x0F<\\u00C0u\\u00D7_\\u00CF\\u00AD\\u00EF\\u00FF8\\x00\\x1F|\\u00D7\\u00879x\\u00F0 \\u008F>\\u00FA(\\u00D6Z\\u00B6n-j\\u00A8\\u00BD\\u00C7\\u00C6\\x1D7\\u00CDE\\u00DER\\u00A0n\\u00DE\\u00B4\\u00B9Pw|\\u00EFxF\\x05\\u00D6\\u00AF_\\u00CF\\x17o\\u00FB2\\x00W]{\\u00953\\x10\\x11\\\\pA\\u00B7\\u00B7\\u00E3\\u00E9\\u00A7\\u009F\\u00E1\\u00D6\\u00BF\\u00FE\\u00AB\\u00CC\\x1Du\\u00E3\\u008D7\\u00B2iuQ\\x00}\\u00F8\\u00E3\\x7F\\n\\u00B8\\u00EF\\u00F8\\u00A3\\x1F\\u00FD\\u00A8+\\u00C2\\u0095\\u00E7\\u00E0i1\\u00C6$\\u00E1h\\u009BX\\u00FD\\u00DA\\u00D0\\u00AC;\\x15\\x12\\x05-\\u008C\\u0089\\u00F1=\\u008B\\u00B5\\x1Ac\\x00\\u00E9c\\u00F4<^\\t\\u00B0\\u0092V\\x1D\\u00BC\\u00B2\\u00A6>5\\u00C7\\u00E4\\u00C4\\u00E9\\u00AE\\u008E\\u00A7e\\u00FA\\u00B99\\u009Aa\\u0088\\x10\\u0096\\u009B^\\u00FE\\x1A\\x00>\\u00FB/wR\\u009F\\x0E(U\\x15A\\x136\\u009E\\u00D7\\u00DB\\u0090\\u00DA\\u00B0\\u00F1\\u0085\\u00FC\\u00F6\\u00DB~\\x070\\u008E\\u00A5$\\u0091\\u008E\\x1F\\u00FD\\u00E8\\u00C7\\x1C<x\\b!KX\\x14Q\\u00D8\\u00E2\\u00C8\\u00E1C\\u00D4\\u00A83H\\x7F\\u00CF\\u00B6\\u00FE\\u00F3\\x1F\\u00BC\\u00C7Y\\u00CFN\\u009B%\\x12\\u00A3\\b\\u00D6\\u0094\\r)\\u0099p=\\u00E7j\\u00C4\\u00E4\\u00E2\\u00E6F\\x1B6o\\u00DC\\u00DC\\u00F3\\x19\\x00\\u00FB\\u00C6\\u00F7\\u00E5T\\u009F\\u0093\\u00A8\\u00CA\\u00F3\\u00B8\\u00EF\\u00DE{\\x0B\\u00F5\\u00FE\\u00E4\\x03\\x7F\\u0082\\u00D1\\u00863g\\u00CE0m&X$\\u0097\\x00\\u00F0\\u00E6W\\u00DF\\u00CC_\\u00FC\\u00C5_\\u00D0j\\u00B5\\u00B8\\u00E0\\u0082\\x0B\\n \\u00DD\\x7Fb/\\u00DF\\u00FA\\u00D6\\u00B7\\x11B\\u00F0\\u00D0\\u00F7\\x1F\\u0082\\u00F7\\u00B7\\u00DB{\\u00DF-\\u00EF\\u00E3\\u00D1G\\x1EE\\n\\u00C9\\u00F3\\u00B7\\x15\\u00F9\\u00F3\\u00EE]\\u00BB\\u00B3H\\\\!6/%+\\u00FAW\\x17\\u00EA\\u00EE\\u00DA\\u00B9\\u008B(\\u008CX\\u00BDz5\\u00F7\\x7F\\u00F1\\u009B\\x00\\\\u\\u00DD\\u0095\\u009C>}&\\u00A3\\x03[\\u00B6l-\\u00DCS\\u00A7F\\x1C\\u00C5|\\u00E9\\u008B_rom-\\u00D7_w}\\u00B1\\u00DD\\u00C3Oq\\u00FB\\u00ED\\u00B7\\x17\\u00CE\\u00E5=\\x05\\u00D9\\x17\\u00B3\\u00A68&Bd\\u00E7\\u00AC\\u00B5x&\\u00D6\\u00CC\\u00CF\\u00CDb\\u008C&n5\\x11\\\"\\u00C6\\u00A0\\u00B0\\b,\\n\\u00DD\\u00AA!\\u0095\\u00C1\\x1AAP+#\\bQ\\u00B2\\x0F\\x13\\x07\\u009C<\\u00F9\\\\\\u008F!s\\u00A51;Kh\\\"\\u00AEz\\u00E5U\\u00D9\\u00B9;\\u00EF\\u00B8\\x1D\\x1DZ\\u0082X\\x02\\u008A\\u00F3\\u0087Gz\\u00DE\\u00FB\\u00AA\\u008B/\\u00E7U\\x17w\\u00AB\\u00C9cG\\u00FE\\u0080g\\u009E~\\x1AA\\u0088\\u00B5\\x02m|\\u00AC\\x14\\u00DC\\u00F1\\u00C5\\u00DBy\\u00F7M\\u00EF\\u00EA\\u00D9\\u00D6\\x05\\x17\\u00ACg\\u00E7S;\\u00C9\\u0091\\u00B4\\u009E\\u00F5DB\\u00FE\\u0095\\u0090\\u0098\\u00C4\\x05\\u0090\\u00CF\\u00BF4\\u00C6\\u00B0i\\u00D3B\\x16\\u00BF\\u00A6V\\u00CB\\u0099\\u0096\\u0089\\x0B\\u00E9\\u00AD\\u00BF\\u00F56F\\u00C4\\u0092\\u00EC\\u00F4\\u008F\\u00F7<F\\u00A3\\u00DE\\u00C8\\u00FE\\u009D%\\u00A4$e\\u00CB\\u00E6-<\\u00F9\\u00E4\\u0093\\u00FC\\u00D5_\\u00FEU\\u00E1\\u00FC\\u00BD\\u00F7\\u00DC\\u00DB\\x0E[vt\\x7F\\u00EB9\\x17f\\u0096\\u00F5E\\u00E7]T\\u00B8\\u00B6\\u00F3\\u00A9\\u009DDa\\u00E4B\\u00B9I1\\u00C6\\u00B2b\\u00C5\\u00F2\\u00AE7\\u00D8\\u00B9k\\x17#\\u008B\\x16\\u00F1\\u00DDo<\\x00\\u00C0o\\u00BC\\u00F5:N<w\\x02Oy\\x19\\u00C8\\u00B7uH\\u00EC}\\u00FB\\u00F7\\x15\\x13V\\u00ACe\\u00DB\\u00F9\\u00C5:\\u00E3{\\u00F7f\\u00DF\\u00BC\\u00D3s\\u0091z \\u0084H\\u008D\\u00A6v\\u0092N\\u00AA\\u00FAS\\u00CA\\u00E2\\x19\\x1D\\u00D1\\u0098\\u009FE\\u0088\\x18k#G\\u00AEE\\x05\\u00A4O\\x14\\u00D6\\u0091\\u00D2\\r\\u00E8Pau\\u0088\\u00F2}\\u00A2f\\x1D\\u00CF\\x17\\x19\\u00C1\\u00EEU\\u009A\\u00B5:Zj\\u00DEy\\u00F5\\u009B\\x00\\u00F8\\u00CES?a\\u00BEVG\\u0088\\u0083*\\u00D5\\u0081\\u0085\\u00A3=S\\x16\\u00AC\\t]\\u009FL\\u00E4\\u0080\\u0089e\\u00F7\\u00EE\\u00DD\\u00A4\\u008En\\x0BHa1Fp\\u00DF\\u00BD\\u00F7.\\b\\u00D4\\u009B\\u00DE|\\x13;\\u009E\\u00DC\\u0091\\r\\u00B0\\u0094EwO\\u009E\\u0087Z\\u009B8\\u00B7M;)$\\x05\\u00A9\\u00B5\\u0096M\\x1B{\\x03u\\u00F7\\u00916?u\\u008D\\u00BA?\\u00EFzg\\u00B1O?x\\u00F8\\x07\\x05\\u00B57,\\x16\\x17\\u00AE/\\x19]\\u00C2\\u00AA\\x15\\u00AB\\u00B8\\u00E8\\u00BC\\x17\\x15\\u00CE?\\u00F2\\u0083G 1zV\\u00AC\\u00E8\\u008E\\u00C6I\\u00A9\\u00F0\\u00FDR\\u0081\\u00BF\\x02\\u00EC\\u00DA\\u00B5;\\u008B$\\u00A5\\u00EF*\\u00E8V\\u00FB\\x00a+\\u00E4\\u00FB\\u00DF\\u00FF>e\\u00AA|\\u00F8\\u00E3\\x7F\\u00CA\\u00FE\\u00FD\\u00FBI\\u00B3\\u00AB\\x04\\u00CE0\\u00DB\\u00DA!Qw\\u00EF\\u00DA\\u0095\\u0081\\u00D0Z\\u00CB@\\x7F?\\n\\u00BFPg\\u00FF\\u00FE\\u00FD\\u00CE\\u00F8\\u00EA\\u0098\\u0085\\u00EFO;\\u0098\\u0091\\u00CF\\x150\\u00C6Z-t\\x1C\\u00E3Y\\u00DBr\\t\\x1A6\\u00C6e\\u00F6x $qX\\x07\\u00A3\\x1D \\u00A4\\u00C4D\\x02!\\\"\\u00A4*au\\x0Bk\\u00CA\\u009C:\\u00B1\\u0090\\u00B5\\n\\u00ADF\\u008B-\\x17n\\u00CB(\\u00F2\\u00A7?\\u00F39\\u00ACN\\u00DD\\x17M.8\\u00B7\\u00B7!u2\\u0080k\\u00AE~e\\x1B\\u00A4\\\"\\u00C2\\x1A\\r\\x04m?[\\u00EA\\u00D3\\x16\\x16\\x04\\u00FC\\u00CA+^\\u00BE?^q\\u00D1\\x15\\u008Ew\\x1Ag\\u00A8h\\u00A3{r\\u00A2\\u00F4c\\u00A7\\u00A9u\\u00D9\\u0091K\\u00A4\\u00E8T\\u00ADi\\u00D97\\u00BE\\u00AF\\u00C3\\u00F7\\b\\u00E7\\u009Dw\\x1E\\u00C3\\u00B2\\b\\u00C4'\\u009Ex2\\x03N\\x7F\\x7F/\\u00AA\\\"x\\u00DD\\u00EB_\\u00DFu\\u00F6\\u00D8\\u00B1\\u00E3\\u0094\\u00FC\\x12\\u009E\\u00E7q\\u00E1\\u00F3\\u00BBm\\x02\\u0081\\u00E0\\u0082\\u00F3\\u00BB\\u00F9\\u00E3\\u0081\\x03\\x07\\u0092\\x0E%\\u00F5\\x12\\u00A0v\\u00BE\\u00C7\\u00B3\\u00D3G\\u00B9\\u00F7\\u009E{XRq\\u00A1\\u00ED\\x17\\u00BE\\u00E0\\x05|\\u00FDk_K\\u00B8\\u00B6I$\\x1Fl\\u00BD\\u00A08f\\u00BBv\\u00EE*$\\u00A8l\\u00DC\\u00B0\\u00B1\\u00AB\\x0F\\u00E3\\u00E3\\u00FBP\\u00CA+\\u00F8n\\x0B\\u00A1R@%\\u00A9\\u0082\\u00F9d\\x16\\x1Dk\\u00C20\\u00CC\\x12s\\u00A4\\u00D5M\\u00E2\\u00A8\\u0099\\x0B\\u00D9ItX\\u00C7\\u00E8(\\u0089\\n\\u0081\\x0E-\\u00D8\\u00D0\\u00C5k\\u00C3\\x06X\\u008B\\u0094\\u0082\\u00C9\\u00B33=>\\u00B6+q+\\u00E6w\\u00DF\\u00F6N\\x00\\u00F6\\u00CD\\u00CE2=]\\u00C3\\u009A2V[\\u0084\\u00D0l\\u00D9\\u00D4;\\f\\u00B9w\\u00F7\\u00CF\\u009C\\u00DF\\u00CEH\\x04\\nk<\\u009C\\u00A9_!M\\u00CE\\u00C8\\x1F\\u00E7>\\u00EF\\\\\\u00FE\\u00FC\\x0F?\\u00B6?\\x00\\u00AE\\u00BC\\u00F2\\u0095I\\x04\\u00C7\\u00F9\\x17\\u00B56\\u00C4\\u00B1\\u00CE\\u008E(\\u008A\\u00BB\\u008E|\\u00FD\\u00D4'\\u00B9vq\\u00EF\\u0098\\u00F1\\u00DE\\u00BD\\u00E3\\x05\\u00DF\\\"\\x16.{\\u00D9e]\\u00F5\\u00F6\\u00EC\\u00DE\\u0093\\u00F9\\x07\\u00CF?\\u00EF\\u00FC\\u00AE\\u00EB\\u00C7\\u008F\\x1Dg\\u00FBe\\u00DB\\x0B\\u00E7\\u009E\\u009D>F\\x7F_?\\u0083\\x03\\u0083T+U\\u00D6_\\u00D0\\u00EDu\\u00D0q\\u00CC\\u0086\\u00F5\\u00C5\\u00F33\\u00D1$q\\x14!\\u0085py\\u00B2R\\u00B4\\x01\\u00B7\\u00B5\\b\\u00B8\\u00D5\\u008B\\u00D6\\u00B2~U[[\\\\w\\u00CDo\\u00E6\\u00A8\\u008F{\\u00F7R\\u00A9\\u008C\\u00D7\\u00E1\\u008A\\u00DC\\u00B3w\\u00AF3:\\u00DD+\\u00B3yK\\u00B7\\u00F0\\u00D9\\u00BFo\\x7F\\u00DB\\u00A7\\u009Ah\\u00A9\\u00BC\\u00BFUI\\u0095\\u0085\\u009B\\u008D1\\u0084aH\\x10\\x04\\u00B4Z\\u00AD\\u00F6\\u0092\\x1A@\\x1A\\x1D\\u00B9\\x00\\u0096I\\u00C3vA\\u0086b\\u00F7\\x114\\u00D6\\u00C6\\u00C9\\b\\b\\u00AC\\u0089\\u009C\\u00F3\\u00DBf\\u00F1\\u0089\\u009Eelt\\u008C\\u008DC\\u0083\\x00|\\u00FC/?A\\u00DC2x\\u00BE\\u0097I\\u00AC\\u008D\\x1B{\\x1BR\\u00BBw>\\u00895M0\\x06k\\x05\\x02\\t6\\x05\\u00AB\\x0F\\u00A8\\f\\x10\\u00A5R\\u0099\\u00BB\\u00EF\\u00BCg\\u00C1>\\u00A4\\u00E5\\u00A6\\u00B7\\u00DC\\u00D4V\\u00E5\\u00C9\\u00A1c]8\\u00E2,\\u0091\\u00DA\\x14\\u009C\\u00E2)\\u00B0F\\x17/\\u009C-\\u00B3k\\u00E7\\u00AE\\u00AE\\t\\u00B4esq\\u00D0f\\u00E3)\\u00A20\\u00CC\\u00D0\\u00BC\\u00B9\\x07\\u00DF=|\\u00E8\\x10[6\\x17\\u00D5\\u00F2\\u00E1\\u00C3\\u0087\\u00A8V+Xk\\b\\u0082&\\u00EB\\u00D6\\x15=%\\u00C7'\\u008F\\u00B4\\u00E9z\\u00DE\\u00FE}\\u00FB3\\u0087y\\u00E7\\u00B1ysom\\u0096//~\\u00C9K\\u0092|[7\\u00D6\\u00BDh\\u00CF\\u00C1g\\x0E\\x16\\u00DE\\u00B9\\u0093\\u00C3j\\u00A2d\\u00D9\\u008E\\u00CE\\u00D6J\\u00A5G\\u00AA\\u00BD\\u00E2(&\\n#\\u009A\\u008D&\\u008Dz\\u0083\\u00A0\\u00D9\\x0Ez\\u00A4.H,H\\u0099e\\u00BC\\b\\u00ACi\\u00B5#+6\\u008D\\x0Fk0\\u008E\\x16\\x02\\u0094\\x10\\u0099(\\u00F7\\u00BC\\u0085S\\u00AC\\u00DF\\u00FB\\x07.\\u00F9d\\n\\u00D8\\u00B3k/qh\\x12\\u0089\\u00EAa\\u00B5e\\u00EB\\u0096\\u00DE\\u00CE\\u00FE]\\u00BB~\\u008E5-\\u00ACm\\u00825\\u0099\\u0084r\\u00E9\\u00DC\\x02c\\x04\\u00C6H\\u008C6|\\u00EA\\u0093\\u009F\\u00C2Of\\u00F9[~\\u00F7\\x06\\u00BE\\u00F9\\u00F0\\u00FD=\\u00DB\\u00DC\\u00FA\\u00BC\\u00E7\\u00D3\\u00DF\\u00D7\\u0097$Ik\\u00B7\\u00D0/\\u00CD\\u00A2OrS{\\x07\\u00BBm6\\u00BC\\u00DB\\u00B6n\\u00ED\\u00D96\\u00C0\\u0081\\x03\\u00FB)\\u008C\\u0098\\u00B5\\u009C\\u00B3fM\\u00A1\\u00CE\\u00E1C\\u0087\\x0B\\x11\\u0097K.\\u00BE\\u00A4p}\\u00B2y\\u0086f3P\\x16\\r\\u00CC#G\\u008Eb-hm\\u0088\\u00A2\\u0098\\u008B\\u00B6\\u00BD\\u00A0p\\u00FD'?\\u00FD)\\b\\u00C1\\u00B6\\u00E7\\x17\\u00D5\\u00F9\\u00F8\\u00F8>d\\u00C2/e\\u00B2\\u00F4%=\\u0096\\x0F\\x16y\\u00EE\\u00BF>\\u00F8/]\\u00EFt\\u00C3\\u009Bn\\u00C8(\\u0092R\\u008A\\u00AD\\x1D\\u00EF?\\x13N\\u00A1\\u00B5.\\u00E4\\x16tN\\u0096\\u00A7\\u00C6\\u009F\\u00CA\\u0080\\u00D8)\\bR\\x01\\u00D1j\\u00B5\\\\D.t\\u008B\\x1DS)Z\\u00C8]\\u00B5\\x16\\u0097\\u00ACi\\x05\\x10!\\u0085\\u00CA\\x1C\\u00DDR\\u00BA\\u00B5CJ\\x1A\\u0094\\u00F2P\\u00D2CIG\\u00DC\\u00A5\\u0094H\\x146\\u00B2LF=F\\x0Ex\\u00C9\\u00F9N\\x15\\u00FD\\u00CD'o\\u00C3jG\\x05@9\\u00D7\\u0092\\u00B5l^\\u00B3\\u0080\\x1A\\u00DD\\u00B3\\x1B\\u00AC\\u00C6\\u009A\\x10c\\u009A\\u00A4\\u0099\\x14n\\u00B1\\u009B\\u00CCf\\u00F8\\r7\\u00BC\\u0085\\u0097\\u00BF\\u00D0y\\x06>\\u00F5\\u00E9O\\u00B0o|\\x1F_\\u00B8\\u00F3\\x0B\\u00BD;\\x03\\\\\\x7F\\u00DD\\u00F5]\\u00E1\\u00C3\\u00CE#\\u00AF\\u00EA\\n\\u00AA\\x1C\\u00D1\\u00E5\\u00A3L\\u008B&\\u00A2\\u00D9\\f\\\\\\x1F\\u00D3{\\u0080J\\u00B5Z\\u00A8\\u00F7\\u008B#GP\\u009E\\u0087_*Q*\\u0097y\\u00C9K_Z\\u00B8\\u00FE\\u00CDo~\\u00AB\\u00CB\\u00E0\\x00\\u00E7bj\\x05-\\u00D2\\u00C8S\\u0085\\u00BE\\u00C2\\u00F5o\\u00FC\\u00EB7\\x10\\b\\u00B6\\u009EW\\x04\\u00D2\\u00BE}\\u00FB\\n\\u00C6Iz\\u00AC]\\u00BB\\u00B6\\u00EB\\x19\\x1F\\u00FD\\u00E8G9\\u00F8\\u00DC\\u00D3\\u0085s\\u00D7l\\u00BF\\u00B6\\u00AD\\u0096{\\u00F0\\u00DA\\u00F1\\u00BD\\u00E3\\u00D9\\u00B5\\u00B4\\u00DF\\u009B\\u00D7\\x15\\u00B5\\u00C1\\u00DE\\u00BD{\\x01g\\u00E3(\\u00A5P\\u00CAa\\u00C7Z\\u00B7\\x1A5\\u008A\\u00A2$\\u0089}\\u00E11I\\x0F\\u00E9\\u00DC\\u00F3\\x06\\u0081[B\\u0091\\u00AE\\u0081QR\\u00E1y\\u00D65.\\x14\\u009E2xJ\\u00A1\\u0094\\u008F\\u00E7\\u00F9(YB \\u0098\\u009C\\u0098\\u00EA\\u00FE\\u00BAI1\\u00E02\\u00A0b\\u0093-O\\u00C6B_\\u00B5\\u00B7\\u00CF\\x13vf\\x1A\\u00A3c\\u0097Ed\\\"\\u008C\\x0E\\x00\\u00EDH\\u0086\\u00B5\\x18\\x0B\\x1B6l\\u00E0C\\u00B78'\\u00F2\\x0F\\x1E\\x7F\\u0088/\\u00DDu\\x17\\u00DA\\x18\\x0E<\\u00FD4\\x11\\u00AD\\u009E\\u00ED\\u00DE|\\u00F3o-$4\\u00BB\\u00F8e^\\u00E5/\\u00A4\\u00CA\\u00B3\\x01;4\\u009E\\u00D5\\u00CB\\u00D7\\u00AF\\u00CD\\x153!\\u009E{\\u00F69g\\x10)\\u008Fr\\u00A9\\u00CC\\u00AA\\u0091\\u00A2\\u00C4\\u00BD\\u00E3\\u008E;\\n~\\u00C5\\u00B4\\x1C>|8S\\u0097\\u0097\\\\R\\u0094\\u00C2!\\x01?\\u00F9\\u00F1O\\u00E8\\u00AB\\u00F6!;,\\u00FE}\\u00E3\\u00FB\\u00BA$\\u00E9B\\x16\\u00FF\\u00CC\\u00F4\\fw\\u00DDuW\\u00D7\\u00F9W\\u00BE\\u00F2\\u0095\\u0099T\\u00DD\\u00D6\\x11\\u00EE\\x1E\\x1F\\x1Fo\\x1B\\u00A5\\x16\\u0086\\x06\\u0087\\x10\\x1D\\u008B\\u0098\\u00C6\\u00F7\\u008E\\u00A3\\u00A4\\u00CA\\x00o\\u008DM\\u0096\\x03\\u00C5\\x05\\u00A1\\u0091y]\\u0092\\u00C3$\\u0089.\\u00F9C\\u00A6L3\\x1D\\x18)\\u00D2\\u0086c\\u00A4 y\\u0090\\u0087\\x10\\u00D6IS\\u00A1\\\\}\\u00E1\\u0083\\u0081\\u00B3\\u00A7\\x17\\u00F6\\u00A5~\\u00F2\\u00D3\\u009F#\\nB\\u00A7n#\\u008D\\u008D\\r\\u0088>6l\\u00E8-\\u009D\\x0E\\u009E<\\u008E\\u00B5\\u00CE\\u00D1\\u00EBV\\u0085\\u00C6c\\u008C\\x0E1\\u00D6e\\u0083\\u00F7U\\u00FB\\u00B8\\u00EFN\\u00E7D\\x0F\\bx\\u00DF\\u00FB\\u00FE\\b\\u00A3\\u00DB.\\u00A5/|\\u00A5\\u00B7T]6\\u00B8\\u00825\\x1D\\u00EA8_\\u00F2j&\\u009F(\\u009C\\x0EF\\u00A7\\u00EAK\\u00CB\\u00EE]\\u00BB\\x0B*=U\\u00B5\\u00CEw\\u00DB.a+\\u00CC\\u00D6J\\u00BD|{\\u00D1K\\u00F1\\u00C0\\u00A3\\u00DF\\u00E1\\u00D0\\u00C1CXc\\x19\\u00FF\\u00C5\\u009E\\u00C2\\u00B5\\u00B9\\u00D9\\u00B9\\u008C_\\u00FF\\u00EA\\u00B5\\u00BFZ\\u00B8\\u00F6\\u00C1\\x0F\\x7F\\x10!\\x04\\x1B7v[\\u00DB\\u0087\\x0F\\x1F\\u00CE\\u00FA\\u009E_\\n\\u00D2Yw\\u00FC\\u00F0\\x1E\\u008C6\\u00FC\\u00CB\\u00D7{\\u00AB\\u00FFt\\x02\\u00AE[Q4\\u00FE\\u00F6\\u00EE\\u00D9\\u009B]\\u0093R\\u00F2\\u00FC\\u00E7w{D\\u00F6\\u00EC\\u00DD\\u009Be\\u0092\\u00E9$)\\x1C!\\\\\\u00F2v\\u00F2WH\\u0089T*[\\u00C6\\u0092z&\\u00E8\\x10\\x1A\\u00D2\\u00F10\\u00B7\\u00E8\\u00AC}h\\x04&\\u0091\\u00AC\\x1EJ\\u0081$u\\u00C6\\n\\u00C8\\x12r%\\u00A7\\x7F\\tP\\u00EF\\u00FE\\u00CA\\u00DD\\u0098\\u00B8\\u0099\\x18/\\u008E\\x17b,\\u00DBz\\u0084]\\x01v\\u00EF\\u00FA9\\u00D6\\u00A6\\u00C9\\x1C.\\x0F\\u00D5-G\\u0089\\u00B0\\u00DA-\\u00DA\\u00FB\\u00CC\\u00A7o\\u00CBL\\u00B87\\u00BC\\u00E9\\r\\u00B4\\u0082\\u00800\\u008C\\u0092M$\\f_\\u00BE\\u00EB\\u00CB\\x0B\\u00F6\\u00E7\\u00E6\\u009Bn^P\\u00E5\\u00F7\\u00A2\\x05yI\\u00B9jQo\\u0090\\u00A7\\u00FE\\u00C6l\\u00ED\\u0090\\u0094\\u00F8\\u00BE\\u00CF\\u00BD\\x1D\\x11\\u00A9\\u0095+Wf\\u00FC\\u00EB\\u00BD\\u00EF}ov~.\\u009A\\u00E1\\u0096[n\\u00C9\\u00C0\\u00F4\\u008F\\u00FF\\u00F8\\u008F\\u0085\\u00FBV\\u00AD\\\\\\u00855\\u0096\\u0091\\u00E1\\x11^{u\\u00DBu\\u00F5\\u00C0#\\u00DF\\u00E1\\u00EB_\\u00FB:\\u00D6\\u00D8.)Y\\u00D7\\u00B5\\u008C\\x0F\\u00E6\\u008D\\u00C7^F\\u00D7\\u00DE\\u00F1q\\u008C\\u00B5\\u00CC\\u00CC\\u00CE\\u00B2\\u00F3\\u00E9\\u00A7\\n\\u00D7^r\\u00E1\\u00A5x\\u00BEO\\u00A9\\u00DC\\u009Dx\\u00B4{\\u00CF\\u009E\\u00D4c\\u008FT\\u00AA\\u008B#\\u0083\\u00E3\\u00E5\\u00BE\\u00E7r\\x04J~\\u00C9-\\u0087)\\u0095)\\u00F9nY\\u00B6\\u00EF\\u00B9\\u008D9<\\u00E5\\u00E1)\\u00AFM%r%K\\u00F3\\x13B&\\x0E\\u00D7\\x14\\u00D1 \\u00D0\\u00C9GW \\x14\\x02\\u0097?iS\\u0095(\\x04Vk\\x04\\u0096\\u0089\\u00B3g\\u00BA:\\bp\\u00C7W\\u00FF\\u0095V\\u00D0\\u00C2\\u00EA\\u00C8\\u00AD\\b\\u00D5:[\\x03\\u00B5\\x10\\u00DF\\u00DB\\u00B3g\\u00A7S\\u00F7F85\\u009F\\u00AC\\u0097r\\u0089\\u00D31\\u00EFx\\u00FBo\\u00F3\\u00A2M.\\u00FA\\u00F2\\u0091\\u00BF\\u00FE3\\x0E\\x1E<\\u0098\\x10\\u00EFt\\u0087\\x10\\u00C3\\u0089\\x13'xn\\u00EAx\\u00CF\\u00F6\\u00DFr\\u00FD\\u00CD\\u00D9\\u00EF.\\t\\u009A\\u00AA\\u00A1\\x1Ch\\u00D3s\\u00CB\\u0097uGr\\u00D22\\u00BEw\\u00BC\\u00B0x\\u00CAm21;9\\u00C9G?\\u00F8\\x1E\\u00E2p\\u009A\\x1F~\\u00F5\\u009FX\\x1E6\\u00F9O7\\u00DE\\u00C0\\u00E7\\u00FF\\u00FE\\u00BF\\u00B1bh\\b\\byj\\u00FF\\x0E.\\x7F\\u00C5\\u00E5\\u00D4\\u00E6j\\u00D9\\u00F3\\u00EE\\u00BB\\u00F7>\\u00BE\\u00F7\\u00D8\\x03Y\\u00FB\\u00FFp\\u00DBm\\u00BC\\u00FF\\x03\\x1F\\u00E0\\u00C1\\x07\\u00BF\\u00DF\\u00FE\\u00B6\\u00F7\\u00DC\\u00CE\\u00EF\\u00BF\\u00F3\\u009D\\x18\\u00EB\\u00964\\u00AF\\u00DF\\u00B0\\u00A1\\u00D0\\u00A7~5\\u00C8\\u0081\\u009D\\u00CF\\u00F0\\u00CC\\u00EEC\\x1C\\u00DCs\\u0098C{\\x7F\\u00C1\\u00E1\\u00F1#\\u00BC\\u00EB\\u00DD\\u00EF\\u00EEr!\\u00ED\\u00D9\\u00BD'\\u009B\\u0098w}\\u00A9[\\u00FD_}\\u00D5\\u00D5=\\u00FD\\u00A3\\u00CF=\\u00FB\\u009C\\u00DB\\x05&\\x01\\u00DD\\x0B_\\u00F0\\u00C2\\u00AE:\\u00E9F\\x16\\u00E5r\\x19\\u00DF\\u00F7\\u00B3\\u00C3\\u00F3\\u00BC\\u00AEC)\\u00D5\\u00E3\\u00BCB)\\u0089R\\x12/s\\u00A2g\\u00BC,\\u00CE\\u00A8@\\u0092N\\u009B\\u0091e\\u009B\\x0E\\u00A4\\x14\\u0089\\x13^\\u00F3\\u00D8c\\u008F\\u00B2b\\u00F9J\\u008C5hm1FS\\u00AE\\x0E\\u00F3\\u0099O\\x7F\\u00C6\\x19@\\u0082$o\\u00C0\\u00AD\\u00F0DX~\\u00F6\\u00F8N\\x17\\u00B6\\u00D5u M\\u00E0\\u008D\\u00F9\\u00C1C\\x0Fa\\u00AD\\u00F3\\u00DD\\u00DA,\\u00BA\\u00E8\\u00F2\\x0E<\\u00CFg\\u00F1\\u00E2E|\\u00E5\\u00FE\\u00BB9v\\u00CC9\\u00A8]\\u00CA\\u009A\\u00CD\\u0096d\\b\\u00E1\\u00C2\\u0092\\x7F\\u00F6\\u0091?\\u00E3\\u00DAk\\u00AF\\u00EDJ86\\u00C60<4\\u00CC\\u00EC\\u00ECl\\u00FB\\u009D(\\u00AE\\x03\\u00EAT\\u00FD\\u00E0r\\r\\u00BE\\u00F4\\u00B5/&\\u00CF(F\\u00B4\\u00F6\\u00ED\\u00DF\\u00EFT\\x19N\\x17\\r{\\u0092\\u00CB\\u0097\\u0094\\x19\\u00AB(\\u0096\\x1F\\u00FC1\\x7F\\u00F9\\u00FA+\\u00A9\\u009A\\b\\u00B0\\u00A8Ec<\\u00F9\\u00E3o\\u00B3K7hF\\u0096;\\u008E\\u00D4\\u0098\\u0088tap\\u00AD\\u00B5\\u00BC\\u00FD\\x1D\\u00EF\\u00E0\\u008A+\\u00AE\\u00E0\\u008Dox#\\u00EB\\u00D7\\u00AF\\u00E7\\u00F2W\\\\\\u00CE\\u00F8\\u00F88?\\u00FD\\u00E9O\\u00F9\\u00CAW\\u00BE\\u00E2\\u00D2\\u00E4\\u00D2\\u00BE\\t\\u00C1\\u0093O<\\u00E9\\f\\u00AE\\x1E%}\\x17!\\x04\\u00DF\\u00FD\\u00CEw)\\u0097\\u00CA\\u0085\\u00C3\\u00C3\\x0F?\\u009C\\u00D5\\u00FB\\u00D6\\u00B7\\u00BE\\u00C5\\u00D6\\u00AD[\\u00DBRLJ\\u00C20\\u00A4\\u00D9lr\\u00EF7\\u00EE\\u00C9\\u00DE\\u00F9\\u00CC\\u00993\\u0085\\x04\\x17)%;v\\u00EC \\f\\u00C3\\u00CC:x\\u00F0\\x19\\u00AA\\u00D5Ja\\u00FB\\u009E4\\u008B\\x0B\\u00D2\\u00E5\\u00E4\\u00B6\\u008B\\u009A\\u0088\\u009C\\u00D3\\u00BF\\u00D0\\u00FFs7\\u009Fk\\u009D4\\u00F5p\\u00D4\\u00A1\\u009D\\u00B8\\u00A0\\u0094\\x0F\\u00A4\\u00FB\\f%\\u00BCTxHUu\\u00EB\\u0091\\u0084\\u00C6\\u009A\\u00988N;a0\\u00D6\\u00E0\\u0097\\x06h\\x05\\u00AD,\\u00F3\\u00C8\\u00DA\\n\\u00B1\\x0E\\u009D\\u00BF\\u00D6\\u00BA\\tm\\u00C3\\u00F9K\\x13w\\x0E\\u00C2\\\"\\u0088\\u0093H\\u0098B\\b\\x0F\\u00AC\\u00DBY$\\u0085L\\u0092P\\u009EH\\u00F7bt\\u00C3$\\u00AE\\x12\\u0091X\\u0098\\u00F9\\u0090\\\\\\x1E\\u00A8):\\u008B\\u0089\\u00C0\\u00C5\\u00E5\\u00BC\\u00BF\\u00AC(\\u0095r\\u00F4,\\x05=\\u00BB\\u00B6u\\u00C0\\u00E7\\u00CD\\u00CF\\u00AB0Z\\x02O\\n\\u00E6[\\u009A\\u00A9f\\u008C/AX5\\u00EC8\\u00AA\\u00AF\\u00B6\\u00AE\\u00F9\\u00F6/\\x02\\u00BEz\\u00A6El\\u00DBY\\u00F2\\u0099\\u00C7\\u00A5G\\u00F4\\u00ACs\\x02\\u00FD{\\u00A5W\\u00DD\\u00EE\\u0088\\\\\\x1Bp\\u00F9I\\u0098\\u00EFK~em\\u00FE[\\u00B5q\\u00A2\\n\\u00F7\\u00A4\\u00F5:\\u00DDL\\u00F9%\\u00D9\\u00F9\\u00EF\\u009F/\\u00F9\\u00F6R\\x1Bc\\u009CDM#>\\u00D6\\u00A4\\u00AB\\x14\\x13P\\u00E4\\x16\\u0087\\u00A5\\u00A4X&\\u00C1\\x01#\\f\\u00C2F\\u00C9\\u00E0\\u00A7\\u00C0\\u00B1\\u0089k)N@\\u00E5\\u00B2\\u009F\\u008C\\t\\u0091\\u0080\\u00CD\\x02\\u00E2\\x12!\\x14\\x16\\x0Fl\\u00B2l\\x01\\u00E1\\u00CE\\u00A7\\u00C0E\\u00BB:Vg/\\u00D4N\\u00AE\\u00B0\\u00B4\\x13KS\\u00A0\\u00B9:\\u00C2:?\\u009D\\u0094\\x12+-V\\u00B6gm\\u00E7\\u00F7\\x02hg\\u00FEia\\x00\\u0093C\\x02\\x15)(IAM[\\u0096\\u0095\\x14\\u00D6Z\\u00AE^[f\\u00DB\\n\\x1F\\u00A3\\r\\u009E/\\u00F0\\u00A5\\u00A4\\u00D1\\u0090\\u00B4\\u00B4ap@02$h\\u00D6\\r\\u00D3s\\u009A!+\\u00B9te\\u0099\\u00C5\\x15\\u00C9\\u00A3gC\\x0E4ct\\u00BA\\u0089\\u0085,j\\u0082^}\\u00CF\\u0080G7\\u0098\\u00F3%\\u008B\\u00EC\\u00E4&l\\u00E1\\u00FE\\x0E\\u00E9\\u0095|\\u00D1\\u00EC\\u009Et\\u00D9\\u00B8\\u00E7y\\u0099k)\\u00FDf\\u00ADd\\u00ED}'G\\u00EF\\u00D4b\\u00F9\\u00BEw\\u00BEO\\u00BE\\x1Fy\\u00F5/\\u0084\\u00C8\\x12R\\u00AC\\u00CD\\u00ED=emD\\u009A\\u00F8\\u00E0\\x1E\\x11\\\"F)\\u0095[\\u0088\\u00E6\\u00B2\\u00D5\\u00A5\\u00F5\\u00DCp\\u00D9$3\\u00C7\\u00AA\\u00C4\\u00CF\\u0099n\\u00F2\\x15\\u00D3\\u00CE\\u00E54\\b\\f\\x16\\x0FA\\u00FB\\u009C\\u00B5\\x0E\\u00AC\\u00C9\\u0094 sB\\u0090\\x02\\u00B3\\u00BD\\x11W'x\\u0092_\\bD\\x01\\u00BC\\x0E\\u00AC\\x06%\\x04\\u00C2\\x1A\\x17\\x1C\\u00E8\\u0090N\\u00BD\\u0080\\u00B9\\u00D0\\u00ECn\\u009FK\\u0081*\\x10\\u00C6\\u00B0\\u00AA\\u00E2\\u00B1u\\u00C0\\u00E3\\u0082!\\u008F\\u00C7\\u00A75\\x7F\\u00BC}\\u0080g\\u00CF\\u00C4\\fT\\x14X\\u00CB\\u00E2\\x11\\u00C9\\u0092U\\x1E\\u00D1\\u00B1b\\u00E2\\u00B9\\u0088JU\\u00A0\\u00ADa\\u00F12E\\u00B9\\x02Q\\u00CB\\t\\u0084~\\t\\u009E\\u0090\\u00C4gC\\x0E\\u00B5r\\u00A9n\\u00B6w_\\u00BB\\u00C0\\u00D5\\u00C3\\u00F9\\u00DA\\u00EB}R\\t\\u00D8\\u00AB,$\\u00A5\\u00D3{\\u00F2i\\u0082\\u00F9k\\u009D1\\u00FB<;\\u00FB\\u0090\\u00FD5\\u00DD\\u00DF]J\\u0089Tm~\\u00DF\\u00CB\\u00EA\\u00F7\\u00B0\\x02k\\u00E3D\\\\\\u0088\\u00CC\\u008F\\u0085\\x15\\b\\u00E1\\\"6\\x0E\\u00A8\\n\\u0088\\x11R&\\u0099M%\\u00A4p\\u00FC\\u00D0\\u0098\\u0094{\\u00A4\\u00F1\\u00DC\\u00C8\\u00F9\\u00D4,N\\u00DD\\u00E7\\u009E\\u009A.{s\\u00CF(nh R\\u00BE\\u009A\\u00CDl\\u0097\\x1C\\u009A\\u00826\\u00BFi\\u0097M\\u00D5TG~Q\\x00\\x00\\t^IDAT\\u00A5(\\u00E66Zk\\u00F1\\x04\\fynz\\u00D4b\\u008DI\\u00AC\\u00D3_6\\u00A3S\\u00E9\\u00D9\\u00F9\\u00E1\\u00ADm\\x07\\u008A\\u0085pSi\\u00B1'\\u00B9re\\u0089\\r\\u00CB|\\u00AE[\\u00EC\\u00B1\\u00F2\\u00D22\\u00EB\\u00F6E\\u0094+\\\"Y\\x1D\\x00\\u00A2_\\u00C0\\u00B0D\\x1C7\\f\\u008DH\\u0084r\\u00E0\\u00AC\\u008EH\\u00AA\\u00A3\\u008A\\u00DA\\u00A9\\u0098\\u00A1\\u00BAEI\\u00C9\\u0085Jq\\u00B4)8\\x1A\\u00B5\\u00D0I\\u009Fz\\u00A9\\u00C9|\\u00E9\\u0094\\u00F6\\x00\\u00D2Z<,\\u00C1\\x02\\u00EC\\u00A0s\\x17\\u00BE\\u0085\\u00DE;\\u008F}kl\\u0097\\u00B0\\u00C8\\u00EAd\\u00B6K\\u00BB\\u008E\\u0090\\u00EDI]\\u00E8+\\u00BD\\u00B5\\u009A\\u0094\\x12\\u00CF\\u00F32#+M\\u00C0\\u00EE\\u009C\\u00A0jh\\u00F1\\u00D0\\u009Fc;\\x00\\u00C9Tn\\u0096\\u008Fi\\u0093\\u00B4+#p\\u00C6\\u008D@I\\u0091\\u0085\\u00F6\\u008C\\u00D1\\b\\u00D1v\\u00D6\\u00BAM\\u00B2l\\u008EK\\u00A6\\u00D22]W\\x046!\\x04\\u00E9\\u00F9\\u00E4+&\\u00CE\\x15\\u00A1\\u00BA8i\\u00BE\\u00BF\\u00A9\\u00FA\\x07\\u00F0\\u00B1\\u008Cz\\u0092\\u00ED\\u008B|.\\x19\\u00F19\\x15X\\x02m\\u0088M\\x0F\\x15\\u009A\\x07!iv\\u0091\\u00FB\\u00AD\\u0084T\\t6\\u00F6)F<IY\\nFK\\u008Ak\\u0096\\u0097Y7P\\u00E2ek}\\u0086\\x07\\x15+7\\u0097\\u0093\\u0087\\u00EF%\\u00AAoH ,0$AZ$\\x16\\u00DF\\x17D\\r\\u009B$p[\\u00BCAAy\\u0085b\\u00B8\\u00AAh5\\x00#\\u00A8\\b\\u00894p\\u00A4\\x11\\u00A3S\\u00AD\\u00A6\\x17\\u00E0\\u00CC\\u00C9\\u00A9>!\\x18\\u00F1\\x14e\\t\\u00AB<\\u00C1k\\u00C6\\u00CA\\\\\\u00B6\\u00B8\\u00C4T\\u00A0\\t\\rhK\\u00E7\\u0097t#\\u0091\\u00CB\\u0083m\\u00D3\\u009A\\x0E\\u00E5\\u00A4c/\\u00AE\\\\\\u00F8\\u008E\\u00B9\\u00B6\\x16\\u00E2\\u00D5\\u009DB\\\"\\u00B5'|\\u00DF\\u00C7\\u00CB\\u00814M\\u00FBKq\\u00A7\\u00B5[m\\u00E1au\\u00F62\\u00EDF 5\\u00A2\\u00DCyp_?\\u0091*\\u00D2P.)D\\u00F2\\u0080\\u00A0\\x19\\x02.j\\u00E4\\u00E8l\\x1B\\u00A0\\u00D9\\u00EErB%\\r%qu$2\\x11\\u009E\\u00B9\\x05\\u00B7)d\\u00DA\\u00A3\\u0081M\\u00D6\\u00F4w\\u00BC|\\u009Agi-e)3r\\u00B1\\u00AE\\u00AC\\u00B8h\\u00D8\\u00E3\\u00A5+\\u00CA,\\x19\\u0094\\u009Cj\\x1A\\u008E6\\x05\\x07\\u009A1\\u00AD\\u00DCc\\u00F2*H\\u00E69\\u00A8p^\\u00E5\\u00A5\\u00BE\\u00E4\\u00FD\\x1B\\x07X1,\\u0099n\\x18&\\x1A\\u0086e\\u00A3>/\\u00DEP\\u00A2\\x15\\b\\u00E2\\b\\u0096\\u00AC\\u00F0\\u00DC&*\\u00A74\\u00F4\\x0B\\x18*C\\u00BD\\x05~\\u0082\\x12\\x05,U\\u00D0\\u00B0\\u00F8\\u00F3nr\\u0096G\\x05\\f\\x0B\\u00F0!\\n,A\\u00C3R\\u00F5\\x05k\\x06\\x05\\u00ABf\\x05\\u009E\\u00B5\\u0084\\u00BA\\u00F7\\u00A4\\u00CC\\x17)\\x04W\\u008EU\\u00B9l\\u00D4C\\t\\x18\\u00A9\\n\\u00B6\\u00AE\\u00F5\\u00B1\\x16^v\\u00C6g\\u00A2n96g\\u00F8\\u00CE\\u0089\\u00A0\\u00F0\\u00EE\\u009DY\\u00F4\\x0B\\u00A5<\\u00A6\\u0080)\\u00E2\\u00A2\\u00A8\\u0095rB5\\u00ABg\\u00B4.\\u00DC\\u0093\\u0097\\u00D8y\\x0E\\u009B\\u0097\\u00A4\\u009DF\\u00AF\\u008Eu\\x16\\u00F7O\\x13Z\\u00BCl\\u00C0\\u00C8\\u00CF\\u008C\\u00E2,\\u00C9wF\\u00CA\\x18\\u0093\\u00EC~Q\\u00A9\\u0094@\\u00BAM\\u00C1\\u00E28\\u00CA|\\u00AD\\u00D6\\x18\\x10\\u009A\\u00B6\\u0091\\x05\\u00D6\\u0086\\t\\x14L\\u00C2S\\u00DDu!@XI\\u00DEhj\\u009B\\u00F7\\u00B9\\x0F\\u0095S\\u00F1\\u00D9\\u0087\\u00B3\\x16_\\b|,\\u00E7U=.\\x1CP\\u00AC\\x1C\\u00F08\\x7F\\u0091b\\u00CD\\u0098bh\\u00C8\\u00E3\\u00F2\\u009Aa\\u00DF\\u0084\\u00C6\\u0097\\u0082\\u00DD\\u00F5\\u0098\\u00D08\\x03\\u00CF\\u0097\\u0082e\\u00CAi\\u0085\\u00AD\\u00C3\\x1E\\u00A7B\\u00A8E\\x16_\\u00C0U\\u00CB\\u00CB\\u00EC\\u0098\\u008D\\u00B8\\u00EC\\u00A22sS\\u0086UK=\\f\\u00B0\\u00FA\\x05e\\u00A8\\b\\u00FAO\\x1A\\u00E4\\u0080\\u0084A\\tk\\x14\\u009C\\u00E3\\u00C3\\u00E2s\\u00E0\\u00E0/1\\u00F0\\x1C\\u00A0\\x1C\\u00DD \\u00B00eQ\\u009E\\u00C4\\u00EFO\\u00CE\\u00C7\\x16JP\\u00EE\\u0083%\\u008B\\x15\\u00C7OD\\u00C4\\u00B1!\\u0088M\\u00B6CO\\x0B\\u00BF\\x03T\\u00FB\\u00E7\\\"F\\x14\\u00FC\\u00E6\\u00C6*\\u00AB\\u0097+\\u00FAF\\x04~I0\\u00B8H2?kXz2\\u00A6\\\"\\u00AB<|*\\u00C7|\\u00CC|\\u00BA\\u00D7U\\u00DEc\\u0091\\u00FFw\\u00FA\\u00DC.\\u00D8\\u00E6\\u00C6\\u00C1\\u0081\\u00A5xP\\u00DCP#\\u009F\\u00A9\\u009FR\\u0081\\u00F4\\u00FE\\u00D4\\u00E7\\u009C\\u00EE\\u00C6\\u00ED)/\\x03i\\u00BA\\u009BJ~k\\u00CA4\\u00D3\\u00CA\\u00EB\\u00EC\\u0094M\\x1EX\\b\\u00BF%\\u0080J\\u00BA\\x04@\\x14\\u0085\\u0084\\u00A1\\u008F\\u00B5\\u00E9\\u00C7K\\u00A5\\\\\\u00BA\\u00E5\\u00A1\\u00DB\\u00B8\\x06\\u009B\\u00F3\\x13\\n\\u00AF\\u00F8v\\bH\\u00B7i\\u00CC\\u00EA%\\u00CB\\u0094mq\\u00F2\\u00A4\\u00FD26\\u00CD\\u00A6\\u00812p^Y\\x10\\t\\u00C1\\u009A\\u008A\\u00E4\\u008A\\u00B5e\\u0096\\u008D(\\u00FA\\u00AA\\u0082rU\\u00E2\\u00F9\\u0096\\u0097n(\\u00B1nTs\\u008D.\\u00F3\\u00D9\\u00F1\\x06\\u008FM\\u00B4\\u00E8\\u0093\\u0092\\u0097-\\u00F6\\u00B9\\u00F6\\u009C2\\x1B\\u00D7\\u00F9,[\\u00EEq\\u00FC@\\u0084\\u00A8\\bV<\\u00CF\\u0087\\u00D0\\u00B2\\u00E4\\u00C7\\r\\u00FAG\\x14\\u0083\\u00A3\\n\\u00AF$\\u0090\\x15\\x01\\u00EB=\\u00D8\\x1B\\x11E\\u0086\\u00B2\\u0092\\f\\x041\\u00D0\\x0F\\u008F?\\u00E3\\u00F6\\u00CDzV\\u00C3\\u0088\\x04)a\\u00C6B$@\\ndIb\\u008B\\u0098\\u00B70o\\x11\\u008BA\\u00F6\\t\\u00AC4<;\\x13\\u00E1\\x0B\\u009B\\u00B8\\u00EF\\f>$\\u00E1k\\u00E79\\u00F0\\u0085*6\\u00D9\\u009Ei\\x0E\\b\\u00825}\\x1E\\u00BF\\u00B2\\u00BA\\u00CA\\u00F21\\u008F\\u0091en\\u00D3bU\\x01\\u00E9\\t\\u00E2\\u00C0\\u00B2l\\u0091\\u00A2R\\u0092\\fx\\u0092\\x15\\x13!?\\u0099\\u00899\\u00AD\\r&\\x0B\\u00F2,\\u009C@\\u00FE\\u00EF\\u00FDN\\x01\\u0099\\u0096\\u00FC\\x16\\u00E9\\u00F9\\u00FA\\u00F9#\\u009F\\u008D\\u0095w\\u00EC\\u00E7\\u0081\\x1A\\u0086n\\u0081i*M\\u00D3\\u00E2\\u00E5I5\\u00909\\u00AF\\u00BB\\x00l\\rR*\\u00A7\\u0086\\u0085\\\"\\n#\\x1A4\\x10Rf\\u008E~\\u00D7y\\u00E9R\\x03\\x05\\u0090\\u00F1\\u00D46\\u009DH\\u00F4n\\x12Jh\\u00D3\\u0089\\u00CC\\rf\\u008BO\\u00EF\\u00E4C\\u00E9\\u00BFG\\u0094dT\\u00C1b_\\u00F1\\u0092\\u00C5>\\u00E7.R\\f\\u00F5I\\x06\\x07%\\u009E\\u00EF&\\u0096T\\u0082\\u00FE\\u00B2\\u00E0\\u00BC\\x11EP7\\u00FC\\u008E\\u00D7\\u00C7\\u00BEGc\\x06\\x14\\\\:\\u00EA\\u00B3\\u00E5y>\\u00E7^T\\x06\\x0B\\u00AB\\x03\\x18zQ\\t\\u00D6yp8\\u00E6\\u008D%Ii@ 6x0 \\x06\\x1A\\x16B(\\u008F8\\u00FEi\\u00CE\\x18\\u00E4@\\x05N\\u00D6\\x00\\r\\u00A7\\x05\\u009C\\u00B6\\x15\\f\\x19\\u00A8\\n\\u0098\\u00B7 !\\x0E\\u00A0\\u00D5\\u00B0X\\f}\\u008B$\\u00A2O@\\u00C5R\\u00E9\\x17\\u008C\\rK\\u00FA|\\u00B8\\u00B6\\nK\\u00FD>Bm\\u0099\\u008C\\r\\u00DBWU\\u00E8\\u00F7\\x05\\x07\\u00CE\\u00C4<t:dZ[\\u00A6b\\u0093\\u0099\\u00A4W\\u008C\\u0095Y2 \\u00D1\\u0091n\\u00C2R\\x1D\\x12\\u00F4W%\\u00A2\\u00E4\\u00BEW_\\u00BF\\u00C2\\u00F7\\f\\u00D5\\u0092b\\u00E5\\u00B0b\\u00CD\\x19\\u00CD\\u00CE\\u00D9\\u0088\\u009F\\u00CFk\\x02\\x03a\\x17D\\x17\\u00F6\\x00,TRU\\u009E\\x1F\\u009F\\u00BCK\\u00AA\\u00D3\\u0080SJ\\u00E1\\u00FB>\\u00E5r\\u00B9\\u00E0\\u00F2J%h\\u00AA\\u00EAS\\u00D7T\\x1B\\u00A8t\\u00CF\\u00A8v\\u00AF\\u008B\\u00FF0&\\u00A1\\x05&Fc\\x13?Z\\u00EAY\\u00D4\\u00A4\\u009B\\u00D9*%A\\u00A4+\\x06R\\u00A0\\u0091|^\\u0093\\u00806]\\u00CB\\u00ED\\u00E8\\u0082\\u0092\\u00BEKB\\x11m\\u009Fh\\u00EA\\u009A\\u00E8UV\\u0095$W\\u008C\\u0096\\u0090X\\u0096\\u00F5K\\u0096\\u00F4K\\u00CA\\u009E\\u00C0\\u00C4 }h6-FCuL\\u00A2|\\u0081WRl\\u00EES\\u00BCkz1_{f\\u009E\\u00B3\\rC\\u00B5\\u009A\\u00A8\\u00EF\\x01\\u00C1\\u00D0y\\u00BE{\\u008D\\u00D8BY\\u00E0\\u0095\\x05b\\u0085\\u0082\\u00E5>\\u00CC\\u00C50e\\x16\\u00A8\\b8G\\u00C1\\u00E1\\x18Y\\u00AA@=\\u0086\\u00C0mZA,a\\u00AC\\x0F&\\u0081\\u0081\\x00\\u00CA\\x02\\u00A4\\u00C56,&\\u00B6\\u0098\\u00C8b\\u0085%\\u0098\\u00D3\\u0094\\u008E\\u0080\\x1A\\u0080\\u00CA\\x00\\u00BC\\u00E8%e\\u00BC*\\u00D4\\u00CEj6m(9cN\\n\\u00FC\\u0092d\\u00FA\\u00AC!\\u008A\\u00C5\\u00A0\\u00C7T\\u00D3\\u00F2\\u00DF\\u008F6)\\t\\u00D84\\u00E0\\u00E1K\\u00C1D\\u00DDp\\u00B2f\\u00D8\\u00B4\\u00C2\\u00C7\\x1AA\\u00A9\\u00EC\\u00A4m\\x1CJ\\u0084\\u0084\\u00FEAE\\u00DF\\u0090\\u00A5RQTJ\\u009A\\u00A1\\u00B2d\\u00C3\\u00A0\\u0093\\u00CE\\u00F7\\u009Fn1\\x11\\u00DB\\u00BC~\\u00CB@E\\u00EEw/\\x1A\\u00D2\\u00E9\\u00AA\\u00CA\\u00832\\x7Fo>\\u00F8\\u0092\\u00B7\\u00EE\\u00F3\\u00E9~\\u00A9$\\u00CD\\u00A7\\u00FE\\x15\\u00FE\\u00CF2l\\u00B2\\u009F\\u00E2\\u00BF'\\u00FE\\u00DBw$;9'\\u00F7\\u00B4\\x13gm\\u00C2kM\\u008E\\x06\\x18\\x10m\\u00D7Rz>\\x05\\u00A8%1b\\x04X\\u00A12\\u00AF\\x01Y\\x04\\u00C4=7\\u00AF6\\u00D2~Yk9\\x15\\x19\\u0096\\u00F6)\\x17\\u00EB^\\u00E618 \\u0089#H\\u00F6\\u0092 \\b\\f\\x18A\\u00AB.\\u00A8\\f*tdi\\u00D4\\f\\x17.+1RYJk~\\u008E\\u00B0f\\u0099\\u00DD\\x152\\u00BC\\u00DE\\u0087\\u00AD\\u00CA\\u0089\\u0098\\t\\u00B7q\\u009A\\u00BA\\u00C4\\u0087%\\x1E\\u0094}({PnA\\u00D9\\u00C2I\\u00ED\\x0E\\u00EBA\\u00C5#82OiR\\\"\\u0097Vap\\x18\\u0082:\\u00F8u\\u00E8\\u00930\\u00AF\\u00A1\\x05F[T\\t\\u00E2Y\\u0083_\\u0086\\u00B8\\u00E5\\u00DE\\u00A1$\\x04\\u00FE\\u0090D.\\x17\\x10Z\\u0086\\u00CFUNrO$\\u00A8\\u0089\\x05Q\\x10\\u00B3vi\\u0089g\\u00A75\\u00F7\\x1Cm2\\x1D\\x1B.\\u00A8x\\u008CU$\\u009BW\\u00F9\\u00AC\\\\\\u00EA\\u00E1\\x0F\\b\\x16\\u008D*\\u00829\\u00B7\\x17\\u00C2\\u00DC)M\\x18B\\u00B5\\u00DFQ d\\u00FA\\u00FD\\x05\\x03\\u00FD\\u008AJU07g\\u0098\\n-\\u0087\\x03MU\\t\\u0096\\u0097$?\\u009D\\u008A8\\x11-,Q\\x0B\\x1C5\\x1D\\x0B\\u00DA\\u00E3\\u0093\\u00FF\\u00FF%\\u00E8t\\u00FC\\x03Y\\x16Xl\\u00E3\\u0082\\u00BD\\u0091r\\u00D1\\u00BC\\u00BF6o\\u00ECB\\u00A2\\u00FA;yE\\x01\\u00B86\\u00F1\\u00AB&\\n\\u00C7.P\\u00CF\\u0091i\\u0089\\x10\\u00A9\\u00DF5\\u00D7@\\u00F6\\u00EEq\\u0092\\u00E2\\u00E5bP\\u00EE\\x7FI;\\u00D2-\\u00CF\\u00C6\\u00E6\\u00FD\\u00AE\\x0Bp\\x1Ec\\u00A8\\x1Bxd\\\"\\u00E4\\u00D7W\\u0094\\u00B0\\x02'\\x1D\\u00FB\\u00A0\\u00D2\\u0097\\u00AC\\x11\\u00F2a~\\u00C6\\x12\\u0085\\u00E0\\u0087\\u0096V\\u00D3\\x12\\u00D4\\r\\u0083\\u00E5\\u0090\\u00AB_X\\u00A5Q_\\u00CA\\u00FC\\u00CC\\f\\u009E\\x12NE\\u009F\\u00D2\\u00E0'\\u00C6\\u00CFY\\rCUP\\n\\u00BC\\x01P\\x01\\f\\x1B\\u00E8\\u00B7$\\x1C\\u00D7*L\\x1F\\u009A\\u00A7\\u00D5\\u0080\\u00A5\\f\\u0081\\u00EA\\u0083S\\u0093\\u00B0,\\u00F1I\\x1Fu9\\x0B\\u00F3\\u00CFDD\\u0091\\u00A3\\u00ACal\\u00E8_\\u00AC\\u00B0@y\\u00A9\\u00845\\x12\\u00FC\\u00E4]\\u00A5t\\u00BB\\u00C7\\u00D5-\\u008CJgt\\u00D5A\\u00FA\\u0096X\\x1B\\u0082\\x18V\\u0095\\x15\\u00CF\\x05\\u008AW\\u00AF\\u00AEp\\u00F9ye\\u00CEY\\u00EB1x\\u008E\\u0082\\u0095\\n\\u00E6-\\u00FDZ\\u00C1)C\\u00A9,\\x18\\x1C\\x16T\\u00FB\\x05\\u00FD\\u00A3\\n\\u0086\\x05\\x03MK\\u00E5d\\u009Cpe\\x18\\u00EC3\\u00BC\\u00CD\\u00AF\\\"\\u0091\\u0094$\\x1C=\\x1B\\u00B3H\\n\\u00EE9\\x15P\\u00EB\\u00D8 \\\"\\u00BF\\x07k\\x17hs\\u00BF;\\u00C3\\u00A9\\u009Dt\\r\\u00C8xg\\x14E\\x19\\x17M\\r\\u00A6_\\u00E6\\u00E7\\u00FE\\u009F\\u00F1\\u009D\\u00F4\\x051\\u009C'\\x00\\x00\\x00\\x00IEND\\u00AEB\\u0082\";\r\n\r\nvar muzzleOne = \"\\u0089PNG\\r\\n\\x1A\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x19\\x00\\x00\\x00\\x19\\b\\x06\\x00\\x00\\x00\\u00C4\\u00E9\\u0085c\\x00\\x00\\x00\\tpHYs\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x018\\\"\\u00F4@\\x00\\x00\\x00$zTXtCreator\\x00\\x00\\b\\u0099sL\\u00C9OJUpL+I-RpMKKM.)\\x06\\x00Az\\x06\\u00CEjz\\x15\\u00C5\\x00\\x00\\x05\\u00E1IDATH\\u0089\\u00ED\\u0095\\u00CBo\\\\g\\x19\\u00C6\\u009F\\u00F7\\u00BB\\u009Cs\\u00E6\\u00CC\\u00FD\\u00E2\\u00F1d<\\u008Ec;\\u0084$D\\u00C1\\u008Dm\\u0088B\\u009B\\u0086R\\x05\\\"T\\x10R+.\\u0089J\\x17T\\u00AA@l\\u00D9TY\\u00C0\\x0E6\\u00B0b\\u0087\\x04\\x15+\\x10\\x0B*XV\\u0080\\u0080\\x00A)\\u0094\\u00C6q}\\u008D=\\u00F6\\f\\u00B637\\u00CF\\u009C\\u00999\\u00B7\\u00EF\\u00FB\\u00D8\\x14PJ\\u00FF\\x00\\u0090\\u00F8\\u00ED\\u00DEw\\u00F1\\u00FC\\u00A4w\\u00F1\\u00BC\\u00C0\\u00FF\\u00F9o\\u0083\\x1E\\u009B\\u00AE\\x01W\\u0093\\u00E7 \\u00B7\\u00F7\\u00F1\\u00C6\\u00EA\\x007q\\x05gj\\x16.VF\\u008Cs\\u00E2F)N\\u009C\\x19\\u00E5\\u00DAQ\\u00FE\\u00B9\\u008B\\u00C6\\u009A \\f\\u00FB\\x03\\u00BC\\u00FA\\u00ED\\x15sw\\u00FEM\\u00BC\\u0090\\u00AE\\u00E0\\u008D\\u00E3\\u00B7k{\\u00F8X\\t\\u00F8}\\x0B\\u0098[\\u00CC\\u0083?&\\u00D9\\x01>\\x7F\\u00B5\\u0086\\x1B\\u00D7\\u009F\\u00A5\\u00AF}\\u00F9\\x1A\\u00B9g9\\u00CE\\u00F5\\u00DB\\u008C\\u00B4\\u00B6\\u008D\\u00D1\\u0092\\u0088\\u0084\\x01qA\\t\\x06T\\u00AF|\\u00C8d\\x13\\x19Z\\u00B8\\u009CB-\\u0098\\u00C7\\u00F9\\u00AA\\x0B\\f\\u0081\\u00E3,C\\u00B4x\\x03'{\\x0F\\u00F0\\u00F0\\u0082\\u00FF\\u00B8\\u00E4\\u00AB/^\\u00C3\\u00CB\\u00B7>I\\u00E9\\u00F5\\u008E\\x18\\u00FFj\\u00B5\\\\\\t\\u00C3*wl\\u00DF(-\\u00A1\\u00C1\\u00883\\u00CE\\x1D!\\u00EDbRrGr\\u0099\\u00CA.\\u00A7\\u0091d\\x02\\x1F]\\u0098\\u00A63\\u00F3'\\u00E8\\u00C4L\\x15b0\\u00C2\\u00C6\\x1B\\u00EB\\u00B8tx\\x0B\\u00CB\\u00CD\\u00BB\\u00FF>\\u00D7\\u00AD'\\u00A7\\u00F1\\u008D\\u00DB/Q\\u00D27\\u00A2\\u00FE\\u0093\\u00BBU0s6}\\u00BA\\u00FCY\\x13\\u00A9\\u009E\\u008Eu\\u0081\\u00B8h\\u00F4\\u00EE\\x1F\\u00FE@\\u00A6\\x1CF\\u008C\\x18q2$\\u00F9\\u0088;\\u00C2\\u00979\\u00D7H\\u00D7\\x12\\u00CC\\x16\\u00B1\\u00AC%\\u0082\\u00AD{]\\x1D\\u00FE\\u00E6\\x01\\u00BE\\u00F3\\u00C7\\u00BB\\u00A6\\u008D\\x02\\u00C4?%s3\\u00A7\\u0091\\u00E4\\t\\x1A\\u00ACm\\u00D9 T\\u00DDZ\\u00E1\\u0089\\u00F2\\u00E5\\u008F|I\\x05cn\\u00E7\\u00A7\\u00A4W\\u00DF\\u00F4c/\\u00DC\\u00D7\\u0091j\\u0098X\\u00FBFc\\x00m\\u00FCx\\x10\\u00F8\\u00DAWJ\\u00A5mc\\u0094f\\u008E\\u009F\\u00E9e\\u008E:\\x18\\x17\\x12\\u00D1\\u00D7//\\u008Dn\\x1F\\u00AEB<\\u009F\\x06\\u00AE\\u00BEr\\x13\\u00D7?\\u00F1A\\u00F2V\\u00EAb\\u00B8\\u00DB.q\\u009B\\u00E7\\u00B5\\x1F\\u0084\\u00CCv\\u008DH\\u00E6\\u00E4\\u00C4\\u00A5\\x1B\\u00F6\\u00C4\\u0092\\u00B4\\u008B\\x1F\\u00FE\\u00EB\\u00F7\\u00E3a?<\\u00DE\\u00B8\\u00DF\\u00F5v\\u00B6\\u00EF\\u0085\\u00FD\\u00C1\\u00AA\\u0089\\u00E2\\r\\x00M\\u0099\\u00B6Bfq\\u00C4C\\u00DFg\\u0082\\u009A2\\u00E7\\x1E\\u00BC\\u00D6j\\u00C0}(\\u00C0\\u00BFy\\u00FB&\\u00AE>{\\u008E\\r\\u00DF\\u00DCI\\f\\u00D6\\x0FN\\x10\\u00A3i\\u00EE\\u00CA\\x1Awd\\u0089\\u0098\\u009A\\u00CD\\u00CC\\u009E\\u009D\\u00B0\\u00F35&\\x13YX\\u00D9\\u00BC\\x00\\u0094mt\\u0094\\x03\\x05\\u00E7\\u0098\\u00C0\\x05\\u00EE\\b\\u00E1\\u0094KE\\u00A7\\\\>\\u00CD-;\\u00CDm&y\\u0082\\x1B\\x18\\x13,\\u0086\\u00D2<3]R\\u00A2\\u00B7\\x17b\\u00F4\\u00B7F\\u00CE\\u00DB<\\u0098\\u00B1\\u00F2\\u0099i+\\u00EB\\u00CE\\u0092e\\x16DB.\\u00A4O\\u00CDOg\\u00E6\\u0097\\u00B9\\x0E\\u0086\\u0080[\\x00\\u00B3\\\\8\\u00939\\u0084C\\u0081x\\u009C\\u0082S\\u00CA\\u00E4\\\"/xF&S\\u00A4\\u00C2\\u00B8m\\u00E2\\u00A8\\u00AF\\u00E3\\u00ECab\\u00D2l\\u00A6g\\u00B1\\u0091\\u009E\\u00ED\\u00BC}\\u00F4\\u00BB\\u00B7\\x1F\\u0088\\u00D5G{\\u00B8q\\u00E1S\\u00E7k\\u00D7\\u009F\\u00FF\\u00EE\\u00F8\\u00C7\\n\\u00FB\\u00AD\\u00C0\\u0098\\u00F8\\u0084H\\u00B8\\x15\\u0099\\u00CA\\n&$\\u0098\\u00B0\\x00h\\x101p\\u00CBEf\\u00FE\\x03H\\u00CDLA\\x05\\x01\\u008B\\x07\\u00E3\\u00A2\\u00DF\\u00EAb|\\u00D8Ikc\\u009A\\u009Cq\\u00CF\\x18LBShe\\u00F3\\x07\\\"ii\\u00C1\\u00AD!\\x0E\\u00EF\\u00DCY\\u00A9~<\\u00D9\\x1C\\x1D\\u00D4\\x0B\\u0091\\u00D7\\x1F\\x13Q\\u0095U\\u0084\\u00B0r\\x15\\x00\\x11\\u00E2\\u00A0\\r\\u00AD[\\x10v\\x05\\u00C6\\x04\\x00)p;\\x0Bb\\x01L\\u00C4\\x10\\x1E\\u00EF{:\\b7\\u00E2\\u00F1\\u00F8\\x0FD\\u00AC\\u00CF\\u00A4c\\u00FCGG\\x7F\\x1E\\x1F\\u00B5\\u00B6Rs'\\u00CB\\u00A2\\u00BE\\u00AA\\u00E1~.\\u00DF\\u00DF\\u00FC\\u00D1k\\u00AF\\u008A\\u008C\\u00B5\\u00C4m\\u0091sk\\u00A5\\u00E2{}\\n\\u00C4A<\\u0084\\u00DFm@\\u008DG\\u00C8\\u009F\\x7F\\x12V\\u00B6\\b\\u00C0B4<\\u0082\\u00B7\\u00B3\\u0087\\u00DE\\u00CA\\u008E\\x17\\u00F5\\u00FB\\u00BF\\u00D4Q|G\\u0087A}Xo\\u00ED:\\u00E5\\u0092\\x13y^\\u00A3\\u00F0\\u00C4\\u00D4\\u00A1\\u00F7\\u00B0\\u00E7\\u008Aq\\u00BB\\u0085@ZFfSM\\x1D\\x06\\u009B\\u00C62g\\u00CA\\u00CB\\u009FN\\u00EC\\u00FE\\u00FC\\u00C7M\\x1D\\u00AEYa\\u00AFgs\\u00DBv\\u00C6\\u0087\\u008F\\u0086\\u00C3\\u00DD\\u0096\\u0099|\\u00EA\\u00E9<\\u0091\\u0081\\u00B7\\u00BBmF\\u00CD\\u00C6(<\\u00EE\\u00BC\\x13\\u008F\\u00C6\\u0087j\\u00ECw\\u00E2a\\u00D4\\u00D11\\u008EG\\x7Fo\\u00ED\\u00EAP\\x05j\\x18\\u00F3\\u00DC\\u0085\\u00C9\\u0090\\u00AF\\r\\u0086\\u00F8\\u00CA\\x17\\x171q\\u00BA\\x1A\\u00AB\\u00B1\\u00EAE\\u00C7~o\\u00D4\\u00A8\\u00AF\\x07\\u00AD\\u00DEv<\\u00F2\\u00EB\\u00B17l\\u0086\\u00DD\\u00DE\\x16\\u0093r\\u00E4\\x1F\\u00B5\\u00EF\\u0085\\u009D\\u00CE)&\\\\[\\u008D\\u0082\\u00BE\\n\\u00FC\\u00BA\\u0089\\u00E3-\\x1DD\\x1B:2;&6}f\\u008B\\u00A0\\u00B8<\\u00E3\\x15\\x17k\\u0091H\\u00D9D\\x04\\u00E2\\x00\\u0090W\\t,\\\\\\u009A\\u0086[Lk\\u00E5\\u00C7~\\x7F\\u00A3\\x19*?\\n\\u0098$A\\u009C\\u00F5\\u00D4(|\\x0BZo\\x19\\u008D_\\u00CBd\\u00F6Rrj6\\x05\\u00A6\\u00DB:\\x1C\\x1D\\u00AA(<\\u0080\\u00D1[\\\"!\\x1BV\\u00CEm\\u008B\\u0094\\u00DD\\u00B7KI\\u009F\\x18\\u0081\\u0088\\bD\\u008C\\u00DE-_|\\u00EB\\u0087\\u00AFP\\u00ADRf\\u00E3\\u00BD>\\u00EB\\u00FE\\u00E5a\\u00828K\\x10\\u00E7\\u0096\\x0EU\\x04\\u00D2\\u0096;U\\u00E8\\u00DB\\u00C5\\u00B4\\u008E\\x06\\u00E3\\u009C\\u0095\\u00CD/\\x13gY\\u0098\\u0098\\u0091@@\\u0082u\\x18\\u00A7&w\\u00E4\\x11\\u0093\\u00AC\\x0F\\u00CEB\\u00C6\\u0098\\x06#\\u00A6#\\u00CD\\u00FE\\u00D5]/--\\u00E23/.\\u00A1\\u0090\\u00E6D\\x03\\x07\\u00A5\\u0093I\\n\\u00821\\u00A2\\u00D0\\x18\\u00DBe$b\\x06\\u00CB\\u0096$9Ic L\\u00AC,\\x10\\u00B9F\\x1B\\x0B\\x00\\u00B8%\\\"\\u00E2\\u00F0\\u00C0i\\x18\\x1B\\u00A9\\x18\\x07\\u00B4\\u0089\\u0089\\u0083\\u00FE\\u00F3\\u009F|aw\\x16\\u008FZ!:\\\"\\r\\u0095y\\x07\\u0095\\u00DA\\x19\\x10i\\u00A4\\x12\\x15\\u00DC~\\u00F9if\\u00E5RH \\\"R\\u009A\\u00C3\\x18\\u00CBh\\u0090\\u00D1\\u00DApG\\x1Ah\\u00AD\\\"fE\\u00FB\\u00DD\\u008E\\u00EE\\u00F6<\\u00A8a\\u0084(d\\u00EF\\u0091\\u00BCK\\u00AD\\x06\\u00EC\\u00EF\\x03s\\u00F9<\\u00B6\\u00BB]\\x00\\x05\\u009C\\u009DK\\u00E2\\u00B9\\u0085\\x12f\\x16\\u00E717q\\u008A\\u0084\\u008C1_\\u00CD3n\\f3\\u009C\\x1B\\u00C5\\u00C9@\\u00C5\\x18y0\\u00BF\\u00F8\\u00D9\\x1D\\u00FD\\u00BD?\\u00AD\\u00C0\\u00DDh\\u00A0<3\\u00F9\\u00FE\\u0092\\x17\\x00\\u00FC\\u00F4=\\u00BB\\u0093(\\u00C2$\\x1DdT\\x1BAZ\\u00A3\\u0094\\u009B\\u00C4\\u0095\\u00A7j\\u00B88{\\u0091&k\\x12=O\\x01\\u0083\\bo\\u00AD\\u00AD\\u009B\\u00D7_\\u00BF\\u008FN\\u00B7\\u0083\\u0083\\u00F7\\x0B\\u00FF\\u009F\\u00E6\\x1F\\u00BE\\u008B\\u00DB\\u00DA?#5\\u00B1\\x00\\x00\\x00\\x00IEND\\u00AEB\\u0082\";\r\n\r\nvar muzzleTwo = \"\\u0089PNG\\r\\n\\x1A\\n\\x00\\x00\\x00\\rIHDR\\x00\\x00\\x00\\x19\\x00\\x00\\x00\\x19\\b\\x06\\x00\\x00\\x00\\u00C4\\u00E9\\u0085c\\x00\\x00\\x00\\tpHYs\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x01\\x018\\\"\\u00F4@\\x00\\x00\\x00$zTXtCreator\\x00\\x00\\b\\u0099sL\\u00C9OJUpL+I-RpMKKM.)\\x06\\x00Az\\x06\\u00CEjz\\x15\\u00C5\\x00\\x00\\x02\\u00CCIDATH\\u0089\\u00ED\\u00D3\\u00CDkSY\\x18\\u00C7\\u00F1\\u00DF9\\u00E7\\u00BE4\\u00A6i\\u00D3\\u0098\\u00A6\\u00B6)\\u00BD\\u00A9-\\u00ED,F\\u00AAF\\u00DDT\\u00C1\\u0097\\u008D\\x0ET\\x05\\u00DB\\u00D9\\u0088\\x0BE\\x17.u\\u0084\\u008E\\u00CB\\x01w\\u0082\\u00E8Bt%\\u00F8\\u00820\\u00E3F\\x10D\\x17\\u00BA\\x10\\u00DD\\u00A8\\u00DD\\u00A8\\u00C4\\u00A9\\u009A\\u00E2m\\u009B\\u00C6L\\u00DB\\u00D8\\u00F4&7\\u00F7\\u00F5<\\u00B3\\x10\\u00C4\\u0082o\\x7F@>\\u00DB\\u00C3y\\u00BE\\u00F0\\x1C\\x0E\\u00D0\\u00D0\\u00D0\\u00F0#\\u00EC[\\x07w\\u00EF\\u00DCA:m0b\\x1E\\x13\\u008A\\u008E\\u00A9\\u00BCI\\u00E7/\\u009D\\u00A5\\u00DF7\\x1F\\u00C5\\u00F33\\u00C7\\x11\\x1B\\u00EE\\u00C3\\u00D8\\u0096>VV\\u009Ah\\u00E4\\u00EC\\u00CD/n\\u008E\\x01\\u00B8\\u00F5\\u00FD\\b\\x11\\u00F0\\u00DB\\u0089\\x03\\u00F8s\\u00E7(\\u00EBN\\u00AF\\x15\\n\\u0083p\\u00ABK\\u00D4\\u00D4\\u009E\\u0096B\\u00D3Y$\\u009E\\u00E0\\u00BEm\\u00CB\\u00E2\\u00AD\\u00BF6\\u0083\\u0082\\u00AC\\u00F4\\u00FC\\u00A9\\u00C0\\t\\u009E\\u00B1H[uY\\u008F\\u00D5w\\u009DxH\\u00C8N\\x00\\x13\\u00DF\\u0089\\u009C\\u00DF\\u00BF\\x17\\u009B\\u00D6E[W\\u00F7'F\\u00B5\\u00D6h\\u0087\\x16o\\x1Fp\\u00CB\\x1F\\u00E7\\u00EC\\u00B9\\u0085\\u00A7\\u008Ck\\u00CDjK\\u00AA \\u009Dj\\x1F\\u00D7\\u00E5\\u00A8\\u00B2J\\u00F4\\u0086\\u00AEg\\u0087\\u00F5\\u00F0]\\u00E8\\u00E2\\u0099W\\u00A9\\u00DE\\u00FEP\\u00B0\\u00DE\\u00BE\\u009A\\u00E54~\\u00FBo\\x1C\\u00FB\\u00E3\\x14\\u00D6\\x1B\\u00EDL\\u00F920\\u009E\\u00DD\\u00C2\\u0098\\u0082x\\u00FC\\u0097\\u00D4\\u00E9\\u00CC\\u009E\\u00C3'\\u00B9\\u00A6s\\u00A1%\\x19\\u0085\\x1E9\\u00E5\\u00BC\\u00E7.\\u0099~\\u00E0,K\\n\\x13\\\\p \\x10\\x00\\u00C8\\u00B7,\\u00C3]\\u00B0\\x06B\\u00A7\\u00F6qM\\u00A6k>\\u00DA\\u00E5X\\u00D7\\u00F6]\\x0E\\x17J>\\u0086\\u00B7n_\\x19Y\\u00DD\\x19S\\u008D\\u00F5\\u00BD{\\u00DA\\x067\\u00EC\\u00D0Zz\\x04cQ\\x00\\x1C\\x10\\u00D15)}UGV\\u0097~\\x19$\\x03\\u0092A\\r\\u00BE]\\u0092\\u0081\\u00BD$\\u00C1J\\u00F0\\u0097\\u00ED\\b\\x18\\u0084\\u00AAG\\u009A\\u0093\\u009D\\x19'\\u00D9\\x12\\u00C3\\u00ACS\\u0092\\x0F\\x1F?\\u00A1\\u00CF\\u0091G\\u00A7\\u008E\\u00E0\\u00DDLA\\u00C9\\f\\u00F6\\u008F\\b]$\\x01\\u00F5S\\x00\\x04\\u0090\\u00FC\\u00B4[\\u00A6Bh\\u00ED \\u00E91\\\"\\u0090\\u00F4\\u00C2\\u00B0j\\u00BE\\u00A9\\u00F85w\\u00D1\\u00AB\\u00D8\\u00B9\\u00D0\\u00AE\\u00E7\\u00EA\\u00AC\\u00F2_\\x10\\u00EB\\u00F1I\\u008D#\\u00B1!\\u0083a\\t\\u00B6\\u00E2M\\u00C67m\\u00E4\\u00FD\\x1B\\x07\\u008C\\u00CE\\u0094>\\u00B4\\u00F5\\u00C8\\u00A1\\u008B\\u00CD\\u00E9\\u00A1\\u00AE\\u00FAb\\u00CE\\u00B7\\u00DE\\u00BF4\\u00A3\\u00DD\\u00BD=z\\u008B\\u00A1\\u0090$\\u00AA/\\u009A^\\u00BD8;\\u00E3\\u0094\\u00E7Mo\\u00A9v=\\u00B0\\u00BDI%\\u00DA:/\\u00BA\\u00D7\\x15\\u00EE\\u00E5\\u00DE\\u00FB\\u008EU\\u00A7\\u00E7\\u00E6\\x14\\u008CT\\n\\u00DD\\\"\\u0089\\x15\\u00EB\\u008A\\u00D7,Y)Vfd-\\u00B28\\u00FD\\u00E8\\u00DEX\\u00B4\\u00ED\\u00C1Pm\\u00BA\\u00F4\\u008A\\u00EB\\u0099I\\u00CB4\\u00C7\\u0084\\u00AE\\u00F5p5\\u00F9/HU\\u009A:\\x06_\\u00A4\\u0086\\u00F7O\\u0087\\u00AAVv\\u00BD \\u00F4\\u00DD@\\u00BE\\u009C\\u00CCQ\\u00F1uH\\u00FF\\u00DC\\u00BF\\u0082|>\\x0F\\x000|\\u00FD\\u009F\\u009C\\x1E\\u00D9\\u008D\\u00EC\\u00AF\\x1D\\u00EC\\u00EE\\u008B\\t\\u00DA\\u00BE\\u00EB \\u00DB62\\u00CA\\u00E3\\u0089\\u0084\\u009C1\\u00A1\\u00A8\\n\\u00E7\\\\\\u0093R:\\u0096ey\\u00C5\\u00C2\\u00BC\\u00BCv\\u00E3*]\\u00B8p\\u00EEk\\u00A3\\x1A\\x1A\\x1A~\\u00D2\\u00FF\\u00EFLD\\x03\\t\\u00DC\\u00EC\\u00C2\\x00\\x00\\x00\\x00IEND\\u00AEB\\u0082\";\r\n\r\nvar muzzleThree =…- 0
- 0
- 313
-
【PR脚本】示例:移动后面剪辑到前面的末尾
本来想用clip.start。表面上可以读写,但是会报错!! 所以要用try,这样会生效,再忽视错误即可 以下脚本为:移动视频第2轨的 第2个剪辑片段 对齐到 第1个剪辑片段的后面 // Move Next Clip To Previous End var sequence = app.project.activeSequence; // active sequence var clip1 = sequence.videoTracks[1].clips[0] // first clip var clip2 = sequence.videoTracks[1].clips[1] // second clip var new_end_time = clip2.end.seconds - clip2.start.seconds + clip1.end.seconds // second clip new end time , this way, dont change the clip duration // use "clip.start" or "clip.end" will throw an error. I dont know why. try { clip2.start = clip1.end.seconds } catch (error) { try { clip2.end = new_end_time } catch (error) { } }- 0
- 0
- 316
-
【PR脚本】添加到AME渲染
来源 NT油管教程 知识点 1.文件路径要用/或者\ 2.渲染参数中的文件要用字符串 3.可以先判断文件是否存在,file.exists 4.AME的预设文件在C:\Users\你的用户名\Documents\Adobe\Adobe Media Encoder\14.0\Presets\ 里 源码 var sequence = app.project.activeSequence; // 活动序列 app.encoder.launchEncoder(); // 启动AME // var video = File("C:\\Users\\YL\\Desktop\\test.mp4") // var preset = File("C:\\Users\\YL\\Documents\\Adobe\\Adobe Media Encoder\\14.0\\Presets\\IG.epr") // 添加文件到渲染队列 // app.encoder.encodeFile(video.fsNmae, preset.fsNmae, 0, true); // 添加系列到渲染队列 app.encoder.encodeSequence(sequence, "C:\\Users\\YL\\Desktop\\test.mp4", "C:\\Users\\YL\\Documents\\Adobe\\Adobe Media Encoder\\14.0\\Presets\\MY Preset.epr", 0, true); app.encoder.startBatch(); // 开始渲染- 0
- 0
- 363