From ffe101a3bc4d7427fa2354803f22fd34c0f8ac8f Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Tue, 31 Oct 2017 12:15:06 +0100 Subject: [PATCH 1/6] correcting missing values --- src/DragbarHandler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DragbarHandler.js b/src/DragbarHandler.js index cf299fe..847580c 100644 --- a/src/DragbarHandler.js +++ b/src/DragbarHandler.js @@ -85,7 +85,7 @@ function DragbarHandler(canvas) { _dragbars.x = new fabric.Rect($.extend({}, config.dragBar, { axis: 'x', - width: canvas.getImage().width, + width: canvas.getImage().width * canvas.getImage().scaleY, height: config.dragBar.size, lockMovementY: true, selectable: true, @@ -98,7 +98,7 @@ function DragbarHandler(canvas) { _dragbars.y = new fabric.Rect($.extend({}, config.dragBar, { axis: 'y', width: config.dragBar.size, - height: canvas.getImage().height, + height: canvas.getImage().height * canvas.getImage().scaleY, lockMovementX: true, selectable: true, hoverCursor: 'ns-resize', From 0b508d15afb4aa1d49716b9e303cffe679918532 Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Tue, 31 Oct 2017 12:20:47 +0100 Subject: [PATCH 2/6] added dist --- dist/image-editor.js | 3848 +++++++++++++++++++++--------------------- 1 file changed, 1924 insertions(+), 1924 deletions(-) diff --git a/dist/image-editor.js b/dist/image-editor.js index 1c24a90..e95c09b 100644 --- a/dist/image-editor.js +++ b/dist/image-editor.js @@ -1,1056 +1,1056 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o max) { - return max; - } - return value; -} - -module.exports = assertBetween; +'use strict'; + +function assertBetween(value, min, max) { + if (value < min) { + return min; + } + if (value > max) { + return max; + } + return value; +} + +module.exports = assertBetween; },{}],27:[function(require,module,exports){ -'use strict'; - -function assertKeyValuePair(key, value) { - if (typeof key === 'object') { - return key; - } - - var returnValue = {}; - returnValue[key] = value; - - return returnValue; -} - -module.exports = assertKeyValuePair; +'use strict'; + +function assertKeyValuePair(key, value) { + if (typeof key === 'object') { + return key; + } + + var returnValue = {}; + returnValue[key] = value; + + return returnValue; +} + +module.exports = assertKeyValuePair; },{}],28:[function(require,module,exports){ -'use strict'; - -/** - * @param {fabric.Image} obj - * @param {int} width - * @param {int} height - * @param {string} units - * @return {Object} - * axis: STRING, - * dim: OBJECT( width: NUMBER, height: NUMBER), - * width: NUMBER, - * height: NUMBER, - * ppmm: NUMBER - */ -function calcCrop(obj, width, height, units) { - var cropRatio = width / height; - var objRatio = obj.width / obj.height; - - var returnValue = { - image: obj, - axis: objRatio > cropRatio ? 'x' : 'y', - dim: { - width: Number(width), - height: Number(height), - units: units - }, - width: obj.width * obj.scaleX, - height: obj.height * obj.scaleY, - objectRatio: objRatio, - cropRatio: cropRatio - }; - - if (objRatio > cropRatio) { - returnValue.width *= cropRatio / objRatio; - } else { - returnValue.height /= cropRatio / objRatio; - } - - // Pixels per millimeter - returnValue.ppmm = returnValue.width / ((returnValue.dim.width * obj.scaleX) * 10); - - return returnValue; -} - -module.exports = calcCrop; +'use strict'; + +/** + * @param {fabric.Image} obj + * @param {int} width + * @param {int} height + * @param {string} units + * @return {Object} + * axis: STRING, + * dim: OBJECT( width: NUMBER, height: NUMBER), + * width: NUMBER, + * height: NUMBER, + * ppmm: NUMBER + */ +function calcCrop(obj, width, height, units) { + var cropRatio = width / height; + var objRatio = obj.width / obj.height; + + var returnValue = { + image: obj, + axis: objRatio > cropRatio ? 'x' : 'y', + dim: { + width: Number(width), + height: Number(height), + units: units + }, + width: obj.width * obj.scaleX, + height: obj.height * obj.scaleY, + objectRatio: objRatio, + cropRatio: cropRatio + }; + + if (objRatio > cropRatio) { + returnValue.width *= cropRatio / objRatio; + } else { + returnValue.height /= cropRatio / objRatio; + } + + // Pixels per millimeter + returnValue.ppmm = returnValue.width / ((returnValue.dim.width * obj.scaleX) * 10); + + return returnValue; +} + +module.exports = calcCrop; },{}],29:[function(require,module,exports){ -'use strict'; - -function isAspectChanged(x1, y1, x2, y2) { - return (Math.abs(x1 / y1 - x2 / y2) > 0.01); -} - -module.exports = isAspectChanged; +'use strict'; + +function isAspectChanged(x1, y1, x2, y2) { + return (Math.abs(x1 / y1 - x2 / y2) > 0.01); +} + +module.exports = isAspectChanged; },{}],30:[function(require,module,exports){ -'use strict'; - -function isFullscreen() { - return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; -} - -module.exports = isFullscreen; +'use strict'; + +function isFullscreen() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; +} + +module.exports = isFullscreen; },{}],31:[function(require,module,exports){ -'use strict'; - -function isMobile() { - return $(window).width() < 768; -} - -module.exports = isMobile; +'use strict'; + +function isMobile() { + return $(window).width() < 768; +} + +module.exports = isMobile; },{}],32:[function(require,module,exports){ -'use strict'; - -var MouseMetrics = { - previousMouseData: { - x: null, - y: null - }, - - deletePreviousMouseData: function() { - MouseMetrics.previousMouseData = { - x: null, - y: null - }; - }, - - setPreviousMouseData: function(values) { - MouseMetrics.previousMouseData = { - x: values.x || null, - y: values.y || null, - }; - }, -}; - -module.exports = MouseMetrics; +'use strict'; + +var MouseMetrics = { + previousMouseData: { + x: null, + y: null + }, + + deletePreviousMouseData: function() { + MouseMetrics.previousMouseData = { + x: null, + y: null + }; + }, + + setPreviousMouseData: function(values) { + MouseMetrics.previousMouseData = { + x: values.x || null, + y: values.y || null, + }; + }, +}; + +module.exports = MouseMetrics; },{}],33:[function(require,module,exports){ -'use strict'; - -/** - * @param {fabric.Object} obj - * @param {Object} bounds - * @return {fabric.Object} - */ -function setPositionInside(obj, bounds) { - ['left', 'top'].forEach(function (v) { - if (obj[v] < bounds[v].min) { - obj.set(v, bounds[v].min).setCoords(); - } - - if (obj[v] > bounds[v].max) { - obj.set(v, bounds[v].max).setCoords(); - } - }); - return obj; -} - -module.exports = setPositionInside; +'use strict'; + +/** + * @param {fabric.Object} obj + * @param {Object} bounds + * @return {fabric.Object} + */ +function setPositionInside(obj, bounds) { + ['left', 'top'].forEach(function (v) { + if (obj[v] < bounds[v].min) { + obj.set(v, bounds[v].min).setCoords(); + } + + if (obj[v] > bounds[v].max) { + obj.set(v, bounds[v].max).setCoords(); + } + }); + return obj; +} + +module.exports = setPositionInside; },{}],34:[function(require,module,exports){ -'use strict'; - -/** - * @param {Object} obj - * @param {Object} properties - */ -function setProperties(obj, properties) { - for (var o in properties) { - if (properties.hasOwnProperty(o)) { - Object.defineProperty(obj, o, properties[o]); - } - } -} - -module.exports = setProperties; +'use strict'; + +/** + * @param {Object} obj + * @param {Object} properties + */ +function setProperties(obj, properties) { + for (var o in properties) { + if (properties.hasOwnProperty(o)) { + Object.defineProperty(obj, o, properties[o]); + } + } +} + +module.exports = setProperties; },{}],35:[function(require,module,exports){ -'use strict'; - -function supportsFullscreen() { - - return document.documentElement.requestFullscreen || document.documentElement.webkitRequestFullScreen || document.documentElement.mozRequestFullScreen || document.documentElement.msRequestFullscreen; - -} - -module.exports = supportsFullscreen; +'use strict'; + +function supportsFullscreen() { + + return document.documentElement.requestFullscreen || document.documentElement.webkitRequestFullScreen || document.documentElement.mozRequestFullScreen || document.documentElement.msRequestFullscreen; + +} + +module.exports = supportsFullscreen; },{}],36:[function(require,module,exports){ -'use strict'; - -var isFullscreen = require('./is-fullscreen'); -/** - * Toggles the full screen state for passed DOM object - * @param {HTMLElement} elm - */ -function toggleFullscreen(elem) { - if (isFullscreen()) { - if (document.exitFullscreen) { - document.exitFullscreen(); - } else if (document.msExitFullscreen) { - document.msExitFullscreen(); - } else if (document.mozCancelFullScreen) { - document.mozCancelFullScreen(); - } else if (document.webkitCancelFullScreen) { - document.webkitCancelFullScreen(); - } - return; - } - - if (elem.requestFullscreen) { - elem.requestFullscreen(); - } else if (elem.webkitRequestFullScreen) { - elem.webkitRequestFullScreen(); - } else if (elem.mozRequestFullScreen) { - elem.mozRequestFullScreen(); - } else if (elem.msRequestFullscreen) { - elem.msRequestFullscreen(); - } -} - -module.exports = toggleFullscreen; +'use strict'; + +var isFullscreen = require('./is-fullscreen'); +/** + * Toggles the full screen state for passed DOM object + * @param {HTMLElement} elm + */ +function toggleFullscreen(elem) { + if (isFullscreen()) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + return; + } + + if (elem.requestFullscreen) { + elem.requestFullscreen(); + } else if (elem.webkitRequestFullScreen) { + elem.webkitRequestFullScreen(); + } else if (elem.mozRequestFullScreen) { + elem.mozRequestFullScreen(); + } else if (elem.msRequestFullscreen) { + elem.msRequestFullscreen(); + } +} + +module.exports = toggleFullscreen; },{"./is-fullscreen":30}]},{},[24]); From 6f7d8f31387172a0ba78cb911c3893f790fe7908 Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Tue, 31 Oct 2017 13:03:46 +0100 Subject: [PATCH 3/6] fixed gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2882f76..94e0cd8 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ node_modules *.sublime-workspace *.idea dist +*.DS_Store +package-lock.json From b2631cdcd74d72c5ef48088ce961acc4ff023d56 Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Wed, 1 Nov 2017 13:17:49 +0100 Subject: [PATCH 4/6] center image on resize --- src/Canvas.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Canvas.js b/src/Canvas.js index 0309cc9..bff57db 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -62,6 +62,7 @@ var Canvas = fabric.util.createClass(fabric.Canvas, { this.getViewport().reset(); } this.sendToBack(this.getImage()); + this.getImage().center(); this.getDragbars().resetPosition(); this.renderAll(); }, From ef9be4c907dba84f81f67253ae53cf8d7e757991 Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Wed, 1 Nov 2017 13:18:33 +0100 Subject: [PATCH 5/6] gulped changes --- dist/image-editor.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/image-editor.js b/dist/image-editor.js index e95c09b..b29f3c9 100644 --- a/dist/image-editor.js +++ b/dist/image-editor.js @@ -423,6 +423,7 @@ var Canvas = fabric.util.createClass(fabric.Canvas, { this.getViewport().reset(); } this.sendToBack(this.getImage()); + this.getImage().center(); this.getDragbars().resetPosition(); this.renderAll(); }, From 08b6a19e1a5543ae4db986a5ee456dddca3ab90a Mon Sep 17 00:00:00 2001 From: sofiekedvik Date: Wed, 1 Nov 2017 14:17:13 +0100 Subject: [PATCH 6/6] changed gitignore --- .gitignore | 2 - dist/js/init.js | 596 +++++++++ dist/js/main.js | 2373 ++++++++++++++++++++++++++++++++++++ dist/js/main.min.js | 1 + dist/js/pw-image-editor.js | 2371 +++++++++++++++++++++++++++++++++++ 5 files changed, 5341 insertions(+), 2 deletions(-) create mode 100644 dist/js/init.js create mode 100644 dist/js/main.js create mode 100644 dist/js/main.min.js create mode 100644 dist/js/pw-image-editor.js diff --git a/.gitignore b/.gitignore index e100dec..24e364d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,5 @@ node_modules *.sublime-project *.sublime-workspace *.idea -dist/* -dist *.DS_Store package-lock.json diff --git a/dist/js/init.js b/dist/js/init.js new file mode 100644 index 0000000..649bca8 --- /dev/null +++ b/dist/js/init.js @@ -0,0 +1,596 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o max) { + return max; + } + return value; +} + +module.exports = assertBetween; + +},{}],11:[function(require,module,exports){ +'use strict'; + +function assertKeyValuePair(key, value) { + if (typeof key === 'object') { + return key; + } + + var returnValue = {}; + returnValue[key] = value; + + return returnValue; +} + +module.exports = assertKeyValuePair; + +},{}],12:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Image} obj + * @param {int} width + * @param {int} height + * @param {string} units + * @return {Object} + * axis: STRING, + * dim: OBJECT( width: NUMBER, height: NUMBER), + * width: NUMBER, + * height: NUMBER, + * ppmm: NUMBER + */ +function calcCrop(obj, width, height, units) { + var cropRatio = width / height; + var objRatio = obj.width / obj.height; + + var returnValue = { + image: obj, + axis: objRatio > cropRatio ? 'x' : 'y', + dim: { + width: Number(width), + height: Number(height), + units: units + }, + width: obj.width * obj.scaleX, + height: obj.height * obj.scaleY, + objectRatio: objRatio, + cropRatio: cropRatio + }; + + if (objRatio > cropRatio) { + returnValue.width *= cropRatio / objRatio; + } else { + returnValue.height /= cropRatio / objRatio; + } + + // Pixels per millimeter + returnValue.ppmm = returnValue.width / ((returnValue.dim.width * obj.scaleX) * 10); + + return returnValue; +} + +module.exports = calcCrop; + +},{}],13:[function(require,module,exports){ +'use strict'; + +function isAspectChanged(x1, y1, x2, y2) { + return (Math.abs(x1 / y1 - x2 / y2) > 0.01); +} + +module.exports = isAspectChanged; + +},{}],14:[function(require,module,exports){ +'use strict'; + +function isFullscreen() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; +} + +module.exports = isFullscreen; + +},{}],15:[function(require,module,exports){ +'use strict'; + +function isMobile() { + return $(window).width() < 768; +} + +module.exports = isMobile; + +},{}],16:[function(require,module,exports){ +'use strict'; + +var MouseMetrics = { + previousMouseData: { + x: null, + y: null + }, + + deletePreviousMouseData: function() { + MouseMetrics.previousMouseData = { + x: null, + y: null + }; + }, + + setPreviousMouseData: function(values) { + MouseMetrics.previousMouseData = { + x: values.x || null, + y: values.y || null, + }; + }, +}; + +module.exports = MouseMetrics; + +},{}],17:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Object} obj + * @param {Object} bounds + * @return {fabric.Object} + */ +function setPositionInside(obj, bounds) { + ['left', 'top'].forEach(function (v) { + if (obj[v] < bounds[v].min) { + obj.set(v, bounds[v].min).setCoords(); + } + + if (obj[v] > bounds[v].max) { + obj.set(v, bounds[v].max).setCoords(); + } + }); + return obj; +} + +module.exports = setPositionInside; + +},{}],18:[function(require,module,exports){ +'use strict'; + +/** + * @param {Object} obj + * @param {Object} properties + */ +function setProperties(obj, properties) { + for (var o in properties) { + if (properties.hasOwnProperty(o)) { + Object.defineProperty(obj, o, properties[o]); + } + } +} + +module.exports = setProperties; + +},{}],19:[function(require,module,exports){ +'use strict'; + +function supportsFullscreen() { + + return document.documentElement.requestFullscreen || document.documentElement.webkitRequestFullScreen || document.documentElement.mozRequestFullScreen || document.documentElement.msRequestFullscreen; + +} + +module.exports = supportsFullscreen; + +},{}],20:[function(require,module,exports){ +'use strict'; + +var isFullscreen = require('./is-fullscreen'); +/** + * Toggles the full screen state for passed DOM object + * @param {HTMLElement} elm + */ +function toggleFullscreen(elem) { + if (isFullscreen()) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + return; + } + + if (elem.requestFullscreen) { + elem.requestFullscreen(); + } else if (elem.webkitRequestFullScreen) { + elem.webkitRequestFullScreen(); + } else if (elem.mozRequestFullScreen) { + elem.mozRequestFullScreen(); + } else if (elem.msRequestFullscreen) { + elem.msRequestFullscreen(); + } +} + +module.exports = toggleFullscreen; + +},{"./is-fullscreen":14}],21:[function(require,module,exports){ +'use strict'; + +var config = require('./includes/config'); +var util = require('./includes/util'); + +/** + * This is just an example usage of the image editor. Also this is used for testing. + * This code can be pretty messy, but that is fine because nothing of this will come to + * production. + */ + +(function() { + var $document = $(document); + var $window = $(window); + var $wrapper = $('#wrapper'); + var $formControl = $('#form-control'); + var editor = null; + + // Inputs for the editor + var $input = { + w: $formControl.find('input[name="w"]'), + h: $formControl.find('input[name="h"]'), + units: $formControl.find('select[name="units"]'), + image_id: $formControl.find('input[name="image_id"]'), + mirror: $formControl.find('input[name="mirror"]'), + noCrop: $formControl.find('input[name="no-crop"]'), + border: $formControl.find('select[name="canvas-border"]'), + }; + var imageUrl = '//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=450'; + + function getOptimalDimension(values, currentDimension, ratio) { + if (currentDimension === 'h') { + values.width = Math.round(values.height * ratio); + } else { + values.height = Math.round(values.width / ratio); + } + + return values; + } + + function handleDimensionChange() { + var noCropIsChecked = $input.noCrop.is(':checked'); + var data = editor.canvas.getViewport().getData(); + var values = { + width: $input.w.val(), + height: $input.h.val(), + }; + + if (noCropIsChecked) { + var currentDimension = $(this).attr('name') === 'h' ? 'h' : 'w'; + values = getOptimalDimension(values, currentDimension, data.objectRatio); + } + + $input.w.val(values.width); + $input.h.val(values.height); + + editor.crop(values.width, values.height, $input.units.val()); + } + + function handleMirrorChange() { + editor.canvas.getMirror().set(this.checked); + } + + function handleNoCropChange() { + $input.w.trigger('input'); + } + + function handleFrameChange() { + + if ($(this).val() === 'none') { + editor.canvas.toggle3D(false); + } + + editor.canvas.getViewport().setFrame($(this).val()); + } + + function handleResize() { + var width = $wrapper.width(); + var height = util.isFullscreen() ? $window.height() : $wrapper.height(); + if (util.isFullscreen()) { + editor.canvas.getHighResolutionUrl('//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=1000'); + console.log('resized fullscreen'); + } + editor.canvas.resize({width: width, height: height}); + } + + function getWrapperData() { + var $navbar = $('.image-editor__navbar'); + var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; + var isMobile = $window.width() <= config.screenSizes.mobile.max; + var windowHeight = window.innerHeight ? window.innerHeight : $window.height(); + var windowWidth = window.innerWidth ? window.innerWidth : $window.width(); + + return { + width: isFullScreen ? windowWidth : (isMobile ? windowWidth : $wrapper.width()), + height: isFullScreen ? windowHeight : (isMobile ? windowHeight - $navbar.height() : $wrapper.height()) + }; + } + + function eventHandlers() { + $input.w.on('input', handleDimensionChange); + $input.h.on('input', handleDimensionChange); + $input.mirror.on('change', handleMirrorChange); + $input.noCrop.on('change', handleNoCropChange); + $input.border.on('change', handleFrameChange); + + $document + .on('PIE:dragged', function() { + console.log('Dragged the image/dragbar!'); + }) + .on('PIE:needs-dragging', function(e, data) { + console.log('Image needs dragging on: ' + data.axis); + }) + .on('PIE:dragbar-click', function(e, data) { + console.log('Clicked on a dragbar! Axis: ' + data.axis); + }) + .on('PIE:image-start-load', function() { + console.log('Start loading image'); + }) + .on('PIE:image-end-load', function() { + console.log('Image loaded'); + }); + + $window.on('resize', handleResize); + } + + function init() { + + editor = new ImageEditor('canvas-editor', { + type: 'canvas', + buttons: { + showThreeD: '3d', + hideThreeD: 'Flat', + showMurals: 'show-murals', + hideMurals: 'hide-murals', + showRulers: 'show-rulers', + hideRulers: 'hide-rulers', + showFullscreen: 'show-fullscreen', + hideFullscreen: 'exit-fullscreen', + }, + dimensions: getWrapperData() + }) + .loadImage(imageUrl, function() { + $input.w.trigger('input'); + handleResize(); + }); + + eventHandlers(); + } + + init(); + +}()); + +},{"./includes/config":1,"./includes/util":9}]},{},[21]); diff --git a/dist/js/main.js b/dist/js/main.js new file mode 100644 index 0000000..cc304c2 --- /dev/null +++ b/dist/js/main.js @@ -0,0 +1,2373 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o max) { + return max; + } + return value; +} + +module.exports = assertBetween; + +},{}],27:[function(require,module,exports){ +'use strict'; + +function assertKeyValuePair(key, value) { + if (typeof key === 'object') { + return key; + } + + var returnValue = {}; + returnValue[key] = value; + + return returnValue; +} + +module.exports = assertKeyValuePair; + +},{}],28:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Image} obj + * @param {int} width + * @param {int} height + * @param {string} units + * @return {Object} + * axis: STRING, + * dim: OBJECT( width: NUMBER, height: NUMBER), + * width: NUMBER, + * height: NUMBER, + * ppmm: NUMBER + */ +function calcCrop(obj, width, height, units) { + var cropRatio = width / height; + var objRatio = obj.width / obj.height; + + var returnValue = { + image: obj, + axis: objRatio > cropRatio ? 'x' : 'y', + dim: { + width: Number(width), + height: Number(height), + units: units + }, + width: obj.width * obj.scaleX, + height: obj.height * obj.scaleY, + objectRatio: objRatio, + cropRatio: cropRatio + }; + + if (objRatio > cropRatio) { + returnValue.width *= cropRatio / objRatio; + } else { + returnValue.height /= cropRatio / objRatio; + } + + // Pixels per millimeter + returnValue.ppmm = returnValue.width / ((returnValue.dim.width * obj.scaleX) * 10); + + return returnValue; +} + +module.exports = calcCrop; + +},{}],29:[function(require,module,exports){ +'use strict'; + +function isAspectChanged(x1, y1, x2, y2) { + return (Math.abs(x1 / y1 - x2 / y2) > 0.01); +} + +module.exports = isAspectChanged; + +},{}],30:[function(require,module,exports){ +'use strict'; + +function isFullscreen() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; +} + +module.exports = isFullscreen; + +},{}],31:[function(require,module,exports){ +'use strict'; + +function isMobile() { + return $(window).width() < 768; +} + +module.exports = isMobile; + +},{}],32:[function(require,module,exports){ +'use strict'; + +var MouseMetrics = { + previousMouseData: { + x: null, + y: null + }, + + deletePreviousMouseData: function() { + MouseMetrics.previousMouseData = { + x: null, + y: null + }; + }, + + setPreviousMouseData: function(values) { + MouseMetrics.previousMouseData = { + x: values.x || null, + y: values.y || null, + }; + }, +}; + +module.exports = MouseMetrics; + +},{}],33:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Object} obj + * @param {Object} bounds + * @return {fabric.Object} + */ +function setPositionInside(obj, bounds) { + ['left', 'top'].forEach(function (v) { + if (obj[v] < bounds[v].min) { + obj.set(v, bounds[v].min).setCoords(); + } + + if (obj[v] > bounds[v].max) { + obj.set(v, bounds[v].max).setCoords(); + } + }); + return obj; +} + +module.exports = setPositionInside; + +},{}],34:[function(require,module,exports){ +'use strict'; + +/** + * @param {Object} obj + * @param {Object} properties + */ +function setProperties(obj, properties) { + for (var o in properties) { + if (properties.hasOwnProperty(o)) { + Object.defineProperty(obj, o, properties[o]); + } + } +} + +module.exports = setProperties; + +},{}],35:[function(require,module,exports){ +'use strict'; + +function supportsFullscreen() { + + return document.documentElement.requestFullscreen || document.documentElement.webkitRequestFullScreen || document.documentElement.mozRequestFullScreen || document.documentElement.msRequestFullscreen; + +} + +module.exports = supportsFullscreen; + +},{}],36:[function(require,module,exports){ +'use strict'; + +var isFullscreen = require('./is-fullscreen'); +/** + * Toggles the full screen state for passed DOM object + * @param {HTMLElement} elm + */ +function toggleFullscreen(elem) { + if (isFullscreen()) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + return; + } + + if (elem.requestFullscreen) { + elem.requestFullscreen(); + } else if (elem.webkitRequestFullScreen) { + elem.webkitRequestFullScreen(); + } else if (elem.mozRequestFullScreen) { + elem.mozRequestFullScreen(); + } else if (elem.msRequestFullscreen) { + elem.msRequestFullscreen(); + } +} + +module.exports = toggleFullscreen; + +},{"./is-fullscreen":30}],37:[function(require,module,exports){ +'use strict'; + +(function() { + + /** + * Fabric functionality is extended with some custom functionality. This is done before + * we do anything else. + */ + require('./includes/extend-fabric-functionality')(); + + /** + * ImageEditor is the starting point of all files. Here the image editor is created and + * it receives attributes from the initialisation. As this is done from outside of this file, + * the ImageEditor should be available on globally. + */ + window.ImageEditor = require('./includes/ImageEditor'); + +}()); + +},{"./includes/ImageEditor":11,"./includes/extend-fabric-functionality":24}]},{},[37]) + +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvanMvaW5jbHVkZXMvM2RIYW5kbGVyLmpzIiwic3JjL2pzL2luY2x1ZGVzL0FwZXJ0dXJlSGFuZGxlci5qcyIsInNyYy9qcy9pbmNsdWRlcy9CdXR0b25NZW51LmpzIiwic3JjL2pzL2luY2x1ZGVzL0NhbnZhcy5qcyIsInNyYy9qcy9pbmNsdWRlcy9EcmFnSGFuZGxlLmpzIiwic3JjL2pzL2luY2x1ZGVzL0RyYWdiYXJIYW5kbGVyLmpzIiwic3JjL2pzL2luY2x1ZGVzL0RyYWdnYWJsZS5qcyIsInNyYy9qcy9pbmNsdWRlcy9GcmFtZUhhbmRsZXIuanMiLCJzcmMvanMvaW5jbHVkZXMvR29yZUhhbmRsZXIuanMiLCJzcmMvanMvaW5jbHVkZXMvSW1hZ2VEYXRhSGFuZGxlci5qcyIsInNyYy9qcy9pbmNsdWRlcy9JbWFnZUVkaXRvci5qcyIsInNyYy9qcy9pbmNsdWRlcy9NaXJyb3JIYW5kbGVyLmpzIiwic3JjL2pzL2luY2x1ZGVzL1J1bGVySGFuZGxlci5qcyIsInNyYy9qcy9pbmNsdWRlcy9UZXh0QnV0dG9uLmpzIiwic3JjL2pzL2luY2x1ZGVzL1ZpZXdwb3J0LmpzIiwic3JjL2pzL2luY2x1ZGVzL2NvbmZpZy5qcyIsInNyYy9qcy9pbmNsdWRlcy9jb25maWcvYnV0dG9uLW1lbnUuanMiLCJzcmMvanMvaW5jbHVkZXMvY29uZmlnL2RyYWctYmFyLmpzIiwic3JjL2pzL2luY2x1ZGVzL2NvbmZpZy9kcmFnLWhhbmRsZS5qcyIsInNyYy9qcy9pbmNsdWRlcy9jb25maWcvZnJhbWVzLmpzIiwic3JjL2pzL2luY2x1ZGVzL2NvbmZpZy9ydWxlci1oYW5kbGUuanMiLCJzcmMvanMvaW5jbHVkZXMvY29uZmlnL3NjcmVlbi1zaXplcy5qcyIsInNyYy9qcy9pbmNsdWRlcy9jb25maWcvdGV4dC1idXR0b24uanMiLCJzcmMvanMvaW5jbHVkZXMvZXh0ZW5kLWZhYnJpYy1mdW5jdGlvbmFsaXR5LmpzIiwic3JjL2pzL2luY2x1ZGVzL3V0aWwuanMiLCJzcmMvanMvaW5jbHVkZXMvdXRpbHMvYXNzZXJ0LWJldHdlZW4uanMiLCJzcmMvanMvaW5jbHVkZXMvdXRpbHMvYXNzZXJ0LWtleS12YWx1ZS1wYWlyLmpzIiwic3JjL2pzL2luY2x1ZGVzL3V0aWxzL2NhbGMtY3JvcC5qcyIsInNyYy9qcy9pbmNsdWRlcy91dGlscy9pcy1hc3BlY3QtY2hhbmdlZC5qcyIsInNyYy9qcy9pbmNsdWRlcy91dGlscy9pcy1mdWxsc2NyZWVuLmpzIiwic3JjL2pzL2luY2x1ZGVzL3V0aWxzL2lzLW1vYmlsZS5qcyIsInNyYy9qcy9pbmNsdWRlcy91dGlscy9tb3VzZS1tZXRyaWNzLmpzIiwic3JjL2pzL2luY2x1ZGVzL3V0aWxzL3NldC1wb3NpdGlvbi1pbnNpZGUuanMiLCJzcmMvanMvaW5jbHVkZXMvdXRpbHMvc2V0LXByb3BlcnRpZXMuanMiLCJzcmMvanMvaW5jbHVkZXMvdXRpbHMvc3VwcG9ydHMtZnVsbHNjcmVlbi5qcyIsInNyYy9qcy9pbmNsdWRlcy91dGlscy90b2dnbGUtZnVsbHNjcmVlbi5qcyIsInNyYy9qcy9tYWluLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJtYWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogSGFuZGxlcyAzZCBpbWFnZSBvZiBjYW52YXMgcHJvZHVjdHMuXG4gKiBAcGFyYW0ge2NhbnZhc31cbiAqL1xuZnVuY3Rpb24gVGhyZWVESGFuZGxlcihjYW52YXMpIHtcbiAgICB2YXIgX292ZXJsYXkgPSBuZXcgZmFicmljLkdyb3VwKCk7XG4gICAgdmFyIF9pbWFnZTtcblxuICAgIGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICAgIF9vdmVybGF5XG4gICAgICAgICAgICAuc2V0KHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZFdpdGhVcGRhdGUobmV3IGZhYnJpYy5SZWN0KHtcbiAgICAgICAgICAgICAgICAvLyBXaWR0aCBpcyBtYWRlIGJpZ2dlciBhcyB0aGlzIHdvcmtzIGJldHRlciB3aXRoIHJlc2l6aW5nIHRoZSBlZGl0b3JcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FudmFzLndpZHRoICogMixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQsXG4gICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgZmlsbDogY2FudmFzLmJhY2tncm91bmRDb2xvcixcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICBjYW52YXMuYWRkKF9vdmVybGF5KTtcbiAgICB9XG5cbiAgICBpbml0KCk7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgM2QgaW1hZ2UgYnkgcmVtb3ZpbmcgdmlzaWJpbGl0eVxuICAgICAqIEByZXR1cm4ge1RocmVlREhhbmRsZXJ9XG4gICAgICovXG4gICAgdGhpcy5kaXNhYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBfb3ZlcmxheS5zZXRWaXNpYmxlKGZhbHNlKS5jYW52YXMucmVzaXplKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIHRoZSAzZCBpbWFnZSBieSBzZXR0aW5nIHRoZSB3aWR0aCBhbmQgdmlzaWJpbGl0eSBvZiB0aGUgb3ZlcmxheSBhbmQgbW92aW5nIGVsZW1lbnRzIHdoaWNoXG4gICAgICogbmVlZHMgdG8gYmUgdmlzaWJsZSB0byB0aGUgZnJvbnQuXG4gICAgICogQHJldHVybiB7VGhyZWVESGFuZGxlcn1cbiAgICAgKi9cbiAgICB0aGlzLmVuYWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX292ZXJsYXlcbiAgICAgICAgICAgIC5zZXQoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYW52YXMud2lkdGgsXG4gICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgY2FudmFzLmdldEJ1dHRvbk1lbnUoKS5icmluZ1RvRnJvbnQoKTtcbiAgICAgICAgY2FudmFzLnJlbmRlckFsbCgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIDNkIG1vZGUgaXMgZW5hYmxlZC92aXNpYmxlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuaXNFbmFibGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX292ZXJsYXkudmlzaWJsZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIHRoZSBpbWFnZS4gVGhpcyBpcyBtb3N0bHkgZG9uZSB1cG9uIHJlc2l6ZSBvZiB0aGUgd2luZG93XG4gICAgICovXG4gICAgdGhpcy5yZWZyZXNoSW1hZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX292ZXJsYXkuc2V0KHtcbiAgICAgICAgICAgIHdpZHRoOiBjYW52YXMud2lkdGgsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYXBwbHlJbWFnZSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiAoUmUpYWRkcyB0aGUgbmV3L2V4aXN0aW5nIGltYWdlIHdpdGggbmV3IGNvbmZpZ3VyYXRpb24gdG8gdGhlIG92ZXJsYXkuXG4gICAgICogQHBhcmFtIHtpbWd9XG4gICAgICovXG4gICAgdGhpcy5hcHBseUltYWdlID0gZnVuY3Rpb24oaW1nKSB7XG4gICAgICAgIGltZyA9IGltZyB8fCBfaW1hZ2U7XG5cbiAgICAgICAgX292ZXJsYXlcbiAgICAgICAgICAgIC5yZW1vdmUoX2ltYWdlKVxuICAgICAgICAgICAgLmFkZChfaW1hZ2UgPSBjYW52YXMuZ2V0UmVzaXplZEltYWdlKGltZykpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBpbWFnZSBhbmQgZW5hYmxlcyAzZCBtb2RlLlxuICAgICAqIEBwYXJhbSB7aW1nfVxuICAgICAqIEByZXR1cm4ge1RocmVlREhhbmRsZXJ9XG4gICAgICovXG4gICAgdGhpcy5zZXRJbWFnZSA9IGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgaW1nLnNldCh7XG4gICAgICAgICAgICAvLyBJbWFnZSBzaG91bGQgYmUgYWJvdXQgMjBweCBsb3dlciB0aGFuIHRoZSBjZW50ZXIgKGJlY2F1c2Ugb2YgdGhlIGJ1dHRvbnMpXG4gICAgICAgICAgICB0b3A6IDIwLFxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcHBseUltYWdlKGltZyk7XG4gICAgICAgIHJldHVybiB0aGlzLmVuYWJsZSgpO1xuICAgIH07XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBUaHJlZURIYW5kbGVyO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEFwZXJ0dXJlSGFuZGxlciB0YWtlcyBjYXJlIG9mIHRoZSBiYXJzIGFyb3VuZCB0aGUgaW1hZ2UgdG8gc2hvdyB3aGF0IGFyZWEgaGFzIGJlZW4vd2lsbCBiZSBjcm9wcGVkLlxuICogQHBhcmFtIHtjYW52YXN9XG4gKi9cbmZ1bmN0aW9uIEFwZXJ0dXJlSGFuZGxlcihjYW52YXMpIHtcbiAgICB2YXIgX2l0ZW1zID0ge3g6IFtdLCB5OiBbXX07XG5cbiAgICBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICB2YXIgYm91bmRzID0gY2FudmFzO1xuICAgICAgICB2YXIgeFJlY3QgPSBuZXcgZmFicmljLlJlY3Qoe1xuICAgICAgICAgICAgd2lkdGg6IGJvdW5kcy53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogYm91bmRzLmhlaWdodCAvIDIsXG4gICAgICAgICAgICBmaWxsOiBjYW52YXMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgICAgb3BhY2l0eTogMC43LFxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgeVJlY3QgPSB4UmVjdC5jbG9uZSgpLnNldCh7XG4gICAgICAgICAgICB3aWR0aDogYm91bmRzLndpZHRoIC8gMixcbiAgICAgICAgICAgIGhlaWdodDogYm91bmRzLmhlaWdodFxuICAgICAgICB9KTtcblxuICAgICAgICBfaXRlbXMueCA9IFtdLmNvbmNhdChbeFJlY3QsIHhSZWN0LmNsb25lKCldKTtcbiAgICAgICAgX2l0ZW1zLnk9IFtdLmNvbmNhdChbeVJlY3QsIHlSZWN0LmNsb25lKCldKTtcblxuICAgICAgICBbXS5jb25jYXQoX2l0ZW1zLngsIF9pdGVtcy55KS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICBjYW52YXMuYWRkKG8pO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FudmFzLnJlbmRlckFsbCgpO1xuICAgIH1cbiAgICBpbml0KCk7XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGFwZXJ0dXJlcyBhcGVydHVyZXMgb24gdGhlIHZpZXdwb3J0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGF4aXNcbiAgICAgKiBAcGFyYW0ge3ZpZXdwb3J0fVxuICAgICAqL1xuICAgIHRoaXMuYXBwbHkgPSBmdW5jdGlvbiAoYXhpcywgdmlld3BvcnQpIHtcbiAgICAgICAgdGhpcy5nZXRBcGVydHVyZXMoYXhpcykuZm9yRWFjaChmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgby52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBhY3RpdmUgPSB0aGlzLmdldEFwZXJ0dXJlcyhheGlzID09PSAneCcgPyAneScgOiAneCcpO1xuXG4gICAgICAgIGFjdGl2ZS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICBvLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBhY3RpdmVbMF0ud2lkdGg9IGFjdGl2ZVsxXS53aWR0aCA9IGNhbnZhcy53aWR0aDtcbiAgICAgICAgYWN0aXZlWzBdLmhlaWdodCA9IGFjdGl2ZVsxXS5oZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXG4gICAgICAgIGlmIChheGlzID09PSAneScpIHtcbiAgICAgICAgICAgIGFjdGl2ZVswXS50b3AgPSB2aWV3cG9ydC50b3AgLSBhY3RpdmVbMF0uaGVpZ2h0ICsgMC41O1xuICAgICAgICAgICAgYWN0aXZlWzFdLnRvcCA9IHZpZXdwb3J0LnRvcCArIHZpZXdwb3J0LmhlaWdodCAtIDAuNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjdGl2ZVswXS5sZWZ0ID0gdmlld3BvcnQubGVmdCAtIGFjdGl2ZVswXS53aWR0aCArIDAuNTtcbiAgICAgICAgICAgIGFjdGl2ZVsxXS5sZWZ0ID0gdmlld3BvcnQubGVmdCArIHZpZXdwb3J0LndpZHRoIC0gMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXRBcGVydHVyZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICBvLnNldENvb3JkcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW52YXMucmVuZGVyQWxsKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwZXJ0dXJlcyBvbiBzcGVjaWZpZWQgYXhpcy4gSWYgbm8gYXhpcyBpcyBwcm92aWRlZCwgYm90aCB4IGFuZCB5IGFyZSByZXR1cm5lZC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYXhpc1xuICAgICAqIEByZXR1cm5zIHtBcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLmdldEFwZXJ0dXJlcyA9IGZ1bmN0aW9uIChheGlzKSB7XG4gICAgICAgIHJldHVybiBheGlzID8gX2l0ZW1zW2F4aXNdIDogW10uY29uY2F0KF9pdGVtcy54LCBfaXRlbXMueSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdHJhbnNwYXJlbmN5IG9mIHRoZSBhcGVydHVyZXMgZGVwZW5kaW5nIG9uIHRoZSBjcm9wIHN0YXR1c1xuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXBwbHlcbiAgICAgKiBAcmV0dXJucyB7QXBlcnR1cmVIYW5kbGVyfVxuICAgICAqL1xuICAgIHRoaXMuc2V0VHJhbnNwYXJlbnQgPSBmdW5jdGlvbiAoYXBwbHkpIHtcbiAgICAgICAgdGhpcy5nZXRBcGVydHVyZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICBvLm9wYWNpdHkgPSBhcHBseSA/IDAuNyA6IDE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbnZhcy5yZW5kZXJBbGwoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBBcGVydHVyZUhhbmRsZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUZXh0QnV0dG9uID0gcmVxdWlyZSgnLi9UZXh0QnV0dG9uJyk7XG52YXIgY29uZmlnID0gcmVxdWlyZSgnLi9jb25maWcnKTtcbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgbWVudSB3aXRoIHRleHQtYnV0dG9ucyBzZXR0aW5ncyBwcm92aWRlZC4gU2V0dGluZ3Mgd2lsbCBvdmVycmlkZVxuICogdGhlIGRlZmF1bHRzIGZyb20gdGhlIGNvbmZpZyBmaWxlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBjYW52YXNcbiAqIEBwYXJhbSB7T2JqZWN0PX0gc2V0dGluZ3NcbiAqL1xuZnVuY3Rpb24gQnV0dG9uTWVudShjYW52YXMsIHNldHRpbmdzKSB7XG4gICAgdmFyIF90ZXh0QnV0dG9ucyA9IFtdO1xuICAgIHZhciBfd2lkdGggPSAwO1xuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYWxsIGNvbnRhaW5lZCBpdGVtc1xuICAgICAqIEByZXR1cm4ge051bWJlcn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRXaWR0aCgpIHtcbiAgICAgICAgdmFyIHN0YXJ0V2lkdGggPSAwO1xuICAgICAgICBfdGV4dEJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbih0ZXh0QnV0dG9uKSB7XG4gICAgICAgICAgICBzdGFydFdpZHRoICs9IHRleHRCdXR0b24ud2lkdGg7XG4gICAgICAgIH0pO1xuICAgICAgICBfd2lkdGggPSBzdGFydFdpZHRoICs9IHNldHRpbmdzLm1hcmdpbiAqIChfdGV4dEJ1dHRvbnMubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBpdGVtcyB0byB0aGUgYnV0dG9uLW1lbnUuXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSB0ZXh0XG4gICAgICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAgICogQHJldHVybiB7QnV0dG9uTWVudX1cbiAgICAgKi9cbiAgICB0aGlzLmFkZEl0ZW0gPSBmdW5jdGlvbihpZCwgdGV4dCwgY2FsbGJhY2ssIGlzQWN0aXZlKSB7XG4gICAgICAgIF90ZXh0QnV0dG9ucy5wdXNoKFxuICAgICAgICAgICAgbmV3IFRleHRCdXR0b24oaWQsIHRleHQsIHNldHRpbmdzLCBpc0FjdGl2ZSlcbiAgICAgICAgICAgICAgICAub25DbGljayhjYWxsYmFjaylcbiAgICAgICAgICAgICAgICAuc2V0KHtfX2dyb3VwOiB0aGlzfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQnJpbmdzIHRoZSBidXR0b25zIHRvIHRoZSBmcm9udCBpbnNpZGUgdGhlIGNhbnZhc1xuICAgICAqIEByZXR1cm4ge0J1dHRvbk1lbnV9XG4gICAgICovXG4gICAgdGhpcy5icmluZ1RvRnJvbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX3RleHRCdXR0b25zLmZvckVhY2goZnVuY3Rpb24odGV4dEJ1dHRvbikge1xuICAgICAgICAgICAgdGV4dEJ1dHRvbi5icmluZ1RvRnJvbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXR0b25zIGluc2lkZSB0aGUgbWVudS5cbiAgICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLmdldEl0ZW1zID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdGV4dEJ1dHRvbnM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIGJ1dHRvbk1lbnUuXG4gICAgICogQHJldHVybiB7TnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93aWR0aDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYnV0dG9uIHdpdGggaWQ9YnV0dG9uSWQgdG8gYWN0aXZlL25vdCBhY3RpdmUgbW9kZVxuICAgICAqL1xuICAgIHRoaXMuc2V0QnV0dG9uQWN0aXZlID0gZnVuY3Rpb24oYnV0dG9uSWQsIGlzQWN0aXZlKSB7XG4gICAgICAgIF90ZXh0QnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uIChidXR0b24pIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uZ2V0SWQoKSA9PT0gYnV0dG9uSWQpIHtcbiAgICAgICAgICAgICAgICBidXR0b24uc2V0QWN0aXZlKGlzQWN0aXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGJ1dHRvbiB3aXRoIGlkPWJ1dHRvbklkIHRvIGRpc2FibGVkL2VuYWJsZWQgbW9kZVxuICAgICAqL1xuICAgIHRoaXMuc2V0QnV0dG9uRGlzYWJsZWQgPSBmdW5jdGlvbihidXR0b25JZCwgaXNEaXNhYmxlZCkge1xuICAgICAgICBfdGV4dEJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbiAoYnV0dG9uKSB7XG4gICAgICAgICAgICBpZiAoYnV0dG9uLmdldElkKCkgPT09IGJ1dHRvbklkKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLnNldERpc2FibGVkKGlzRGlzYWJsZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSGlkZXMgdGhlIGJ1dHRvbnNcbiAgICAgKi9cbiAgICB0aGlzLmhpZGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX3RleHRCdXR0b25zLmZvckVhY2goZnVuY3Rpb24odGV4dEJ1dHRvbikge1xuICAgICAgICAgICAgdGV4dEJ1dHRvbi5zZXQoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyBhbGwgdGhlIGJ1dHRvbnNcbiAgICAgKi9cbiAgICB0aGlzLnNob3cgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX3RleHRCdXR0b25zLmZvckVhY2goZnVuY3Rpb24odGV4dEJ1dHRvbikge1xuICAgICAgICAgICAgdGV4dEJ1dHRvbi5zZXQoe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjYWxjdWxhdGUgYm91bmRhcmllcyBhbmQgYWRkIGFsbCBpdGVtcyB0byBjYW52YXMgaWYgcmVxdWlyZWRcbiAgICAgKiBAcmV0dXJuIHtCdXR0b25NZW51fVxuICAgICAqL1xuICAgIHRoaXMucmVuZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHNldFdpZHRoKCk7XG5cbiAgICAgICAgdmFyIHN0YXJ0ID0gY2FudmFzLndpZHRoIC8gMiAtIHRoaXMuZ2V0V2lkdGgoKSAvIDI7XG4gICAgICAgIHZhciBjdXJyUG9zID0gTWF0aC5yb3VuZChzdGFydCk7XG5cbiAgICAgICAgX3RleHRCdXR0b25zLmZvckVhY2goZnVuY3Rpb24odGV4dEJ1dHRvbikge1xuICAgICAgICAgICAgdGV4dEJ1dHRvblxuICAgICAgICAgICAgICAgIC5zZXQoe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDEwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjdXJyUG9zXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgICAgIGlmICghdGV4dEJ1dHRvbi5jYW52YXMpIHtcbiAgICAgICAgICAgICAgICB0ZXh0QnV0dG9uLmFkZFRvKGNhbnZhcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyUG9zICs9IE1hdGgucm91bmQodGV4dEJ1dHRvbi53aWR0aCArIHNldHRpbmdzLm1hcmdpbik7XG5cbiAgICAgICAgICAgIC8vIERpc2FibGUgbW92aW5nIG9mIHRleHQtYnV0dG9uc1xuICAgICAgICAgICAgdGV4dEJ1dHRvbi5sb2NrTW92ZW1lbnRYID0gdGV4dEJ1dHRvbi5sb2NrTW92ZW1lbnRZID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FudmFzLnJlbmRlckFsbCgpO1xuXG4gICAgICAgIHRoaXMuc2hvdygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQnV0dG9uTWVudTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIEFwZXJ0dXJlSGFuZGxlciA9IHJlcXVpcmUoJy4vQXBlcnR1cmVIYW5kbGVyJyk7XG52YXIgQnV0dG9uTWVudSA9IHJlcXVpcmUoJy4vQnV0dG9uTWVudScpO1xudmFyIERyYWdiYXJIYW5kbGVyID0gcmVxdWlyZSgnLi9EcmFnYmFySGFuZGxlcicpO1xudmFyIFZpZXdwb3J0ID0gcmVxdWlyZSgnLi9WaWV3cG9ydCcpO1xudmFyIFRocmVlREhhbmRsZXIgPSByZXF1aXJlKCcuLzNkSGFuZGxlcicpO1xudmFyIE1pcnJvckhhbmRsZXIgPSByZXF1aXJlKCcuL01pcnJvckhhbmRsZXInKTtcbnZhciBJbWFnZURhdGFIYW5kbGVyID0gcmVxdWlyZSgnLi9JbWFnZURhdGFIYW5kbGVyJyk7XG5cbnZhciAkZG9jdW1lbnQgPSAkKGRvY3VtZW50KTtcblxuLyoqXG4gKiBDYW52YXMgaXMgdXNpbmcgZmFicmljIHRvIGNyZWF0ZSB0aGUgY2FudmFzIGFuZCBpbml0aWF0ZSBpdCB3aXRoIGl0cyBpbml0aWFsIHNldHRpbmdzLlxuICogSXQgaXMgYWxzbyBoZXJlIG1vc3Qgb2YgdGhlIGludGVyYWN0aW9uIGlzIHRha2luZyBwbGFjZS4gQW5kIG1vc3QgZmlsZXMgYXJlIGNvbm5lY3RlZCB0byB0aGlzIGZpbGUuXG4gKiBGZS4gZ2V0RHJhZ2JhcnMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgZnJvbSBtb3N0IHBsYWNlcyBhcyB0aGUgQ2FudmFzIGNsYXNzIGlzIGF2YWlsYWJsZSBpbiBtb3N0IHBsYWNlcy5cbiAqL1xudmFyIENhbnZhcyA9IGZhYnJpYy51dGlsLmNyZWF0ZUNsYXNzKGZhYnJpYy5DYW52YXMsIHtcbiAgICBpbml0aWFsaXplOiBmdW5jdGlvbiAoaWQsIGRpbWVuc2lvbnMpIHtcbiAgICAgICAgdGhpcy5jYWxsU3VwZXIoJ2luaXRpYWxpemUnLCBpZCwge1xuICAgICAgICAgICAgZW5hYmxlUmV0aW5hU2NhbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIHJlbmRlck9uQWRkUmVtb3ZlOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIEFsbG93IHRvdWNoIHNjcm9sbGluZyBvbiB0b3VjaC1kZXZpY2VzIGxhcmdlciB0aGFuIG1vYmlsZSBzY3JlZW4gc2l6ZXMuXG4gICAgICAgICAgICBhbGxvd1RvdWNoU2Nyb2xsaW5nOiAhdXRpbC5pc01vYmlsZSgpLFxuICAgICAgICAgICAgc3RhdGVmdWw6IGZhbHNlLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2QyZDJkMicsXG4gICAgICAgICAgICBwcmVzZXJ2ZU9iamVjdFN0YWNraW5nOiB0cnVlLFxuICAgICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHdpZHRoOiBkaW1lbnNpb25zLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBFdmVudGhhbmRsZXIgZm9yIG1vdXNldXAgZXZlbnRzIG9uIHRoZSB3aG9sZSBjYW52YXMuXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIHJld3JpdHRlbiBhIGJpdCB0byBub3QgaGF2ZSB0aGF0IG1hbnkgZXZlbnRzIGFmdGVyIHRoZSBpbWFnZSBoYXMgYmVlbiBjcm9wcGVkLlxuICAgICAgICB0aGlzLm9uKCdtb3VzZTp1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldEltYWdlKCkuX19kcmFnZ2VkICYmICF0aGlzLmdldDNkSGFuZGxlcigpLmlzRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBcGVydHVyZXMoKS5zZXRUcmFuc3BhcmVudChmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdldEltYWdlRGF0YSgpLnNldENyb3BEYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF1dGlsLmlzTW9iaWxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVTY3JvbGwoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBldmVudCB0byB0ZWxsIHRoZSBpbWFnZSBoYXMgYmVlbiBkcmFnZ2VkLlxuICAgICAgICAgICAgICAgICRkb2N1bWVudC50cmlnZ2VyKCdQSUU6ZHJhZ2dlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yZW5kZXJBbGwoKTtcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIHJlc2l6ZTogZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgYXJncyA9IGFyZ3MgfHwgeyBoZWlnaHQ6IHRoaXMuaGVpZ2h0LCB3aWR0aDogdGhpcy53aWR0aH07XG5cbiAgICAgICAgdGhpcy5zZXRIZWlnaHQoYXJncy5oZWlnaHQpO1xuICAgICAgICB0aGlzLnNldFdpZHRoKGFyZ3Mud2lkdGgpO1xuICAgICAgICB0aGlzLmdldEJ1dHRvbk1lbnUoKS5yZW5kZXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZ2V0M2RIYW5kbGVyKCkuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0M2RIYW5kbGVyKCkucmVmcmVzaEltYWdlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hJbWFnZSh0aGlzLmdldFJlc2l6ZWRJbWFnZSh0aGlzLmdldEltYWdlKCkpKVxuICAgICAgICAgICAgLy8gdGhpcy5nZXRWaWV3cG9ydCgpLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kVG9CYWNrKHRoaXMuZ2V0SW1hZ2UoKSk7XG4gICAgICAgIHRoaXMuZ2V0RHJhZ2JhcnMoKS5yZXNldFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMucmVuZGVyQWxsKCk7XG4gICAgfSxcblxuICAgIGRpc2FibGVTY3JvbGw6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBhbGxvd1RvdWNoU2Nyb2xsaW5nOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIGVuYWJsZVNjcm9sbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGFsbG93VG91Y2hTY3JvbGxpbmc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG5cbiAgICBnZXQzZEhhbmRsZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0aGlzLl9fM2RIYW5kbGVyIHx8XG4gICAgICAgICAgKHRoaXMuX18zZEhhbmRsZXIgPSBuZXcgVGhyZWVESGFuZGxlcih0aGlzKSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAgKi9cbiAgICBnZXQzZFVybDogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW1hZ2VEYXRhID0gdGhpcy5nZXRJbWFnZURhdGEoKS5nZXREYXRhKCk7XG4gICAgICAgIHZhciBwYXJhbXMgPSBbXG4gICAgICAgICAgICAnaD00MDAnLFxuICAgICAgICAgICAgJ2NhbnZhc1tlZGdlXT0nICsgaW1hZ2VEYXRhLmVkZ2UsXG4gICAgICAgICAgICAnY3JvcFt3XT0nICsgaW1hZ2VEYXRhLndpZHRoLFxuICAgICAgICAgICAgJ2Nyb3BbaF09JyArIGltYWdlRGF0YS5oZWlnaHQsXG4gICAgICAgICAgICAnY3JvcFt4XT0nICsgaW1hZ2VEYXRhLngsXG4gICAgICAgICAgICAnY3JvcFt5XT0nICsgaW1hZ2VEYXRhLnksXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc29sZS5sb2cocGFyYW1zKVxuXG4gICAgICAgIGlmIChpbWFnZURhdGEubWlycm9yZWQpIHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKCdtaXJyb3I9MScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2UoKS5fX3VybC5yZXBsYWNlKC9cXD9oPVxcZCskLywgJz8nKSArIHBhcmFtcy5qb2luKCcmJyk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAgKi9cbiAgICBnZXRIaWdoUmVzb2x1dGlvblVybDogZnVuY3Rpb24gKHVybCwgd2lkdGgsIGhlaWdodCkge1xuICAgICAgICB2YXIgaW1hZ2VEYXRhID0gdGhpcy5nZXRJbWFnZURhdGEoKS5nZXREYXRhKCk7XG4gICAgICAgIHZhciBuZXdVcmw7XG5cbiAgICAgICAgdmFyIHBhcmFtcyA9IFtcbiAgICAgICAgICAgICdoPTEwMDAnLFxuICAgICAgICAgICAgJ2NhbnZhc1tlZGdlXT0nICsgaW1hZ2VEYXRhLmVkZ2UsXG4gICAgICAgICAgICAnY3JvcFt3XT0nICsgaW1hZ2VEYXRhLndpZHRoLFxuICAgICAgICAgICAgJ2Nyb3BbaF09JyArIGltYWdlRGF0YS5oZWlnaHQsXG4gICAgICAgICAgICAnY3JvcFt4XT0nICsgaW1hZ2VEYXRhLngsXG4gICAgICAgICAgICAnY3JvcFt5XT0nICsgaW1hZ2VEYXRhLnksXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGltYWdlRGF0YS5taXJyb3JlZCkge1xuICAgICAgICAgICAgcGFyYW1zLnB1c2goJ21pcnJvcj0xJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5nZXQzZEhhbmRsZXIoKS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgbmV3VXJsID0gdGhpcy5nZXRJbWFnZSgpLl9fdXJsLnJlcGxhY2UoL1xcP2g9XFxkKyQvLCAnPycpICsgcGFyYW1zLmpvaW4oJyYnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybC5yZXBsYWNlKC9cXD9oPVxcZCskLywgJz8nKSArIHBhcmFtcy5qb2luKCcmJyk7XG4gICAgICAgICAgICBuZXdVcmwgPSB0aGlzLmdldEltYWdlKCkuX191cmwgPSB1cmw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZygndXJsOicsIG5ld1VybCk7XG5cbiAgICAgICAgcmV0dXJuIGZhYnJpYy5JbWFnZS5mcm9tVVJMKGVuY29kZVVSSShuZXdVcmwpLCBmdW5jdGlvbiAoaW1nKSB7XG4gICAgICAgICAgICB0aGlzLnNldEltYWdlKGltZyk7XG4gICAgICAgICAgICAvLyBpbWcuX191cmwobmV3VXJsKTtcbiAgICAgICAgICAgIC8vIGltZy5zZW5kVG9CYWNrKCk7XG4gICAgICAgICAgICAvLyBjLmNyb3Aoe3dpZHRoOiAxMDAsIGhlaWdodDogMTAwfSk7XG4gICAgICAgICAgICAvLyBjLnJlc2l6ZSh7d2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodH0pO1xuICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgIH0sXG5cbiAgICBnZXRBcGVydHVyZXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19hcGVydHVyZWhhbmRsZXIgfHxcbiAgICAgICAgICAgICh0aGlzLl9fYXBlcnR1cmVoYW5kbGVyID0gbmV3IEFwZXJ0dXJlSGFuZGxlcih0aGlzKSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge0RyYWdiYXJIYW5kbGVyfVxuICAgICAqL1xuICAgIGdldERyYWdiYXJzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9fZHJhZ2JhcnMgfHxcbiAgICAgICAgICAgICh0aGlzLl9fZHJhZ2JhcnMgPSBuZXcgRHJhZ2JhckhhbmRsZXIodGhpcykpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtmYWJyaWMuSW1hZ2V9XG4gICAgICovXG4gICAgZ2V0SW1hZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19pbWFnZTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7TWlycm9ySGFuZGxlcn1cbiAgICAgKi9cbiAgICBnZXRNaXJyb3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19taXJyb3IgfHxcbiAgICAgICAgICAgICh0aGlzLl9fbWlycm9yID0gbmV3IE1pcnJvckhhbmRsZXIodGhpcy5nZXRJbWFnZSgpKSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge01pcnJvckhhbmRsZXJ9XG4gICAgICovXG4gICAgZ2V0SW1hZ2VEYXRhOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9faW1hZ2VEYXRhIHx8XG4gICAgICAgICAgICAodGhpcy5fX2ltYWdlRGF0YSA9IG5ldyBJbWFnZURhdGFIYW5kbGVyKHRoaXMuZ2V0SW1hZ2UoKSkpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtWaWV3cG9ydH1cbiAgICAgKi9cbiAgICBnZXRWaWV3cG9ydDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fX3ZpZXdwb3J0IHx8XG4gICAgICAgICAgICAodGhpcy5fX3ZpZXdwb3J0ID0gbmV3IFZpZXdwb3J0KHRoaXMpKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWVudSBmb3IgdGhpcyBpbnN0YW5jZVxuICAgICAqIEByZXR1cm5zIHtCdXR0b25NZW51fVxuICAgICAqL1xuICAgIGdldEJ1dHRvbk1lbnU6IGZ1bmN0aW9uIChzZXR0aW5ncykge1xuICAgICAgICBpZiAoIXRoaXMuX19idXR0b25NZW51KSB7XG4gICAgICAgICAgICB2YXIgZGVmYXVsdHMgPSBjb25maWcuYnV0dG9uTWVudVt0aGlzLl9fdHlwZV07XG4gICAgICAgICAgICB0aGlzLl9fYnV0dG9uTWVudSA9IG5ldyBCdXR0b25NZW51KHRoaXMsICQuZXh0ZW5kKHt9LCBkZWZhdWx0cywgc2V0dGluZ3MpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fX2J1dHRvbk1lbnU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFJlbG9hZHMgdGhlIDNEIHZpZXcsIGlmIGl0IGlzIHByZXNlbnRcbiAgICAgKiBAcmV0dXJuIHtDYW52YXN9XG4gICAgICovXG4gICAgcmVmcmVzaDNkVmlldzogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5nZXQzZEhhbmRsZXIoKS5pc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUzRCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7Q2FudmFzfVxuICAgICAqL1xuICAgIHJlbW92ZUltYWdlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5fX2ltYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmUodGhpcy5fX2ltYWdlKTtcbiAgICB9LFxuXG4gICAgcmVmcmVzaEltYWdlOiBmdW5jdGlvbihpbWcpIHtcbiAgICAgICAgdGhpcy5fX2ltYWdlID0gaW1nO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtICB7ZmFicmljLkltYWdlfSBpbWdcbiAgICAgKiBAcmV0dXJuIHtDYW52YXN9XG4gICAgICovXG4gICAgc2V0SW1hZ2U6IGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJbWFnZSgpO1xuICAgICAgICB0aGlzLl9faW1hZ2UgPSBpbWc7XG4gICAgICAgIHRoaXMuX19pbWFnZS5fX2RyYWdnZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fX2ltYWdlLl9fY3JvcHBlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9faW1hZ2UuYWRkVG8odGhpcykuY2VudGVyKCkub24oJ21vdXNlZG93bicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGltZy5jYW52YXMuZ2V0QXBlcnR1cmVzKCkuc2V0VHJhbnNwYXJlbnQodHJ1ZSk7XG4gICAgICAgIH0pLnNldENvb3JkcygpO1xuICAgICAgICB0aGlzLmdldFZpZXdwb3J0KCkucmVzZXQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcblxuICAgIGdldFJlc2l6ZWRJbWFnZTogZnVuY3Rpb24oaW1nKSB7XG4gICAgICAgIC8vIENhbGN1bGF0ZSBtYXhIZWlnaHQgYW5kIG1heFdpZHRoIG9mIHRoZSAzZCBpbWFnZVxuICAgICAgICAvLyBhbmQgc2NhbGUgdGhlIGltYWdlIGFjY29yaW5nIHRvIHRob3NlIHZhbHVlc1xuICAgICAgICB2YXIgbWF4SGVpZ2h0ID0gdGhpcy5nZXRIZWlnaHQoKSAtIDEwMDtcbiAgICAgICAgdmFyIG1heFdpZHRoID0gdGhpcy5nZXRXaWR0aCgpIC0gMTAwO1xuXG4gICAgICAgIGltZy5zY2FsZVRvSGVpZ2h0KG1heEhlaWdodCA8IGltZy5oZWlnaHQgPyBtYXhIZWlnaHQgOiBpbWcuaGVpZ2h0KTtcbiAgICAgICAgaW1nLnNjYWxlVG9XaWR0aChtYXhXaWR0aCA8IChpbWcud2lkdGggKiBpbWcuc2NhbGVYKSA/IG1heFdpZHRoIDogaW1nLndpZHRoICogaW1nLnNjYWxlWCk7XG5cbiAgICAgICAgcmV0dXJuIGltZztcbiAgICB9LFxuXG4gICAgdG9nZ2xlM0Q6IGZ1bmN0aW9uIChzaG93QXMzZCkge1xuXG4gICAgICAgIHRoaXMuZ2V0QnV0dG9uTWVudSgpLnNldEJ1dHRvbkFjdGl2ZSgndG9nZ2xlM2QnLCBzaG93QXMzZCk7XG5cbiAgICAgICAgaWYgKCFzaG93QXMzZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0M2RIYW5kbGVyKCkuZGlzYWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGRvY3VtZW50LnRyaWdnZXIoJ1BJRTppbWFnZS1zdGFydC1sb2FkJyk7XG5cbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHVybDogdGhpcy5nZXQzZFVybCgpLFxuICAgICAgICAgICAgY3Jvc3NEb21haW46IHRydWUsXG4gICAgICAgICAgICB0eXBlOiBcIkhFQURcIixcbiAgICAgICAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgICB9KS5kb25lKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZmFicmljLkltYWdlLmZyb21VUkwoZW5jb2RlVVJJKHRoaXMuZ2V0M2RVcmwoKSksIGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWltZy5fZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAkZG9jdW1lbnQudHJpZ2dlcignUElFOmltYWdlLWVycm9yLWxvYWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0M2RIYW5kbGVyKCkuc2V0SW1hZ2UoaW1nKTtcbiAgICAgICAgICAgICAgICAkZG9jdW1lbnQudHJpZ2dlcignUElFOmltYWdlLWVuZC1sb2FkJyk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYW52YXM7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxudmFyIERyYWdIYW5kbGUgPSBmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgIHZhciBfY3VycmVudEF4aXM7XG4gICAgdmFyIF9kcmFnSGFuZGxlO1xuICAgIHZhciBfbW92ZWRIYW5kbGU7XG5cbiAgICAvLyBFdmVudCBkZWNsYXJhdGlvbnNcbiAgICB2YXIgZXZlbnRzID0ge1xuICAgICAgICBtb3VzZURvd246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF9kcmFnSGFuZGxlID0gdHJ1ZTtcblxuICAgICAgICAgICAgX2N1cnJlbnRBeGlzID0gdGhpcy5heGlzO1xuICAgICAgICAgICAgaGFuZGxlci5jYW52YXMuZ2V0SW1hZ2UoKS50cmlnZ2VyKCdtb3VzZWRvd24nKTtcbiAgICAgICAgfSxcbiAgICAgICAgbW91c2VVcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKCFfZHJhZ0hhbmRsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFfbW92ZWRIYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdQSUU6ZHJhZ2Jhci1jbGljaycsIHsgYXhpczogX2N1cnJlbnRBeGlzIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfZHJhZ0hhbmRsZSA9IGZhbHNlO1xuICAgICAgICAgICAgX21vdmVkSGFuZGxlID0gZmFsc2U7XG4gICAgICAgICAgICBfY3VycmVudEF4aXMgPSBudWxsO1xuICAgICAgICAgICAgdXRpbC5Nb3VzZU1ldHJpY3MuZGVsZXRlUHJldmlvdXNNb3VzZURhdGEoKTtcbiAgICAgICAgICAgIGhhbmRsZXIuY2FudmFzLmdldEltYWdlKCkudHJpZ2dlcignbW91c2V1cCcpO1xuICAgICAgICB9LFxuICAgICAgICBtb3VzZU1vdmU6IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAoIV9kcmFnSGFuZGxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBXZSdyZSB1c2luZyBhIHBvbHlmaWxsIHRvIGNhbGN1bGF0ZSBtb3VkZS90b3VjaCBtb3ZlbWVudCBpZiB0aGUgYnJvd3Nlci9kZXZpY2VcbiAgICAgICAgICAgIC8vIGRvZXMgbm90IHN1cHBvcnQgbW92ZW1lbnRYL21vdmVtZW50WS5cbiAgICAgICAgICAgIHZhciBwcmV2aW91c01vdXNlRGF0YSA9IHV0aWwuTW91c2VNZXRyaWNzLnByZXZpb3VzTW91c2VEYXRhO1xuICAgICAgICAgICAgdmFyIG1vdmVtZW50ID0ge1xuICAgICAgICAgICAgICAgIHg6ICdtb3ZlbWVudFgnIGluIGUuZSA/IGUuZS5tb3ZlbWVudFggOiAocHJldmlvdXNNb3VzZURhdGEueCA/IGUuZS5wYWdlWCAtIHByZXZpb3VzTW91c2VEYXRhLnggOiAwKSxcbiAgICAgICAgICAgICAgICB5OiAnbW92ZW1lbnRZJyBpbiBlLmUgPyBlLmUubW92ZW1lbnRZIDogKHByZXZpb3VzTW91c2VEYXRhLnkgPyBlLmUucGFnZVkgLSBwcmV2aW91c01vdXNlRGF0YS55IDogMClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB1dGlsLk1vdXNlTWV0cmljcy5zZXRQcmV2aW91c01vdXNlRGF0YSh7eDogZS5lLnBhZ2VYLCB5OiBlLmUucGFnZVl9KTtcbiAgICAgICAgICAgIF9tb3ZlZEhhbmRsZSA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmIChfY3VycmVudEF4aXMgPT09ICd4Jykge1xuICAgICAgICAgICAgICAgIGhhbmRsZXIuY2FudmFzLmdldEltYWdlKCkubGVmdCAtPSBtb3ZlbWVudC54O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmNhbnZhcy5nZXRJbWFnZSgpLnRvcCAtPSBtb3ZlbWVudC55O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVHJpZ2dlciBtb3ZpbmcgZm9yIGltYWdlLCB0byBzdGF5IHdpdGhpbiBib3VuZHNcbiAgICAgICAgICAgIGhhbmRsZXIuY2FudmFzLmdldEltYWdlKCkuc2V0Q29vcmRzKCkudHJpZ2dlcignbW92aW5nJyk7XG4gICAgICAgICAgICBoYW5kbGVyLmNhbnZhcy5yZW5kZXJBbGwoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRSZWN0KHRleHQsIHdpZHRoKSB7XG4gICAgICAgIHZhciB0eHQgPSBuZXcgZmFicmljLlRleHQodGV4dCwgY29uZmlnLmRyYWdIYW5kbGUudGV4dCk7XG4gICAgICAgIHZhciByZWN0ID0gbmV3IGZhYnJpYy5SZWN0KCQuZXh0ZW5kKHt9LCBjb25maWcuZHJhZ0hhbmRsZS5yZWN0LCB7XG4gICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgIH0pKTtcblxuICAgICAgICByZXR1cm4gbmV3IGZhYnJpYy5Hcm91cChbcmVjdCwgdHh0XSkuc2V0KHtcbiAgICAgICAgICAgIGV2ZW50ZWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmdldENhbnZhcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZXIuY2FudmFzO1xuICAgIH07XG5cbiAgICB0aGlzLmdldEhhbmRsZXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5fX2hhbmRsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXS5jb25jYXQodGhpcy5fX2hhbmRsZXMueCwgdGhpcy5fX2hhbmRsZXMueSk7XG4gICAgfTtcblxuICAgIHRoaXMuc2V0SGFuZGxlUG9zaXRpb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fX2hhbmRsZXMueS5zZXQoe2xlZnQ6IGhhbmRsZXIuZ2V0VHJhY2tzKCkueS5sZWZ0fSkuc2V0Q29vcmRzKCk7XG4gICAgICAgIHRoaXMuX19oYW5kbGVzLnguc2V0KHt0b3A6IGhhbmRsZXIuZ2V0VHJhY2tzKCkueC50b3B9KS5zZXRDb29yZHMoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZpZXdwb3J0RGF0YSA9IHRoaXMuZ2V0Q2FudmFzKCkuZ2V0Vmlld3BvcnQoKS5nZXREYXRhKCk7XG4gICAgICAgIHZhciB0cmFja3MgPSBoYW5kbGVyLmdldFRyYWNrcygpO1xuXG4gICAgICAgIGlmICh0aGlzLl9faGFuZGxlcykge1xuICAgICAgICAgICAgdGhpcy5nZXRDYW52YXMoKS5yZW1vdmUodGhpcy5fX2hhbmRsZXMueCk7XG4gICAgICAgICAgICB0aGlzLmdldENhbnZhcygpLnJlbW92ZSh0aGlzLl9faGFuZGxlcy55KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX19oYW5kbGVzID0ge1xuICAgICAgICAgICAgeDogZ2V0UmVjdCh2aWV3cG9ydERhdGEuZGltLndpZHRoICsgJyAnICsgdmlld3BvcnREYXRhLmRpbS51bml0cywgdmlld3BvcnREYXRhLndpZHRoKSxcbiAgICAgICAgICAgIHk6IGdldFJlY3Qodmlld3BvcnREYXRhLmRpbS5oZWlnaHQgKyAnICcgKyB2aWV3cG9ydERhdGEuZGltLnVuaXRzLCB2aWV3cG9ydERhdGEuaGVpZ2h0KVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX19oYW5kbGVzLnguYWRkVG8odGhpcy5nZXRDYW52YXMoKSkuY2VudGVySCgpLnNldCh7IHRvcDogdHJhY2tzLngudG9wIH0pLnNldENvb3JkcygpO1xuICAgICAgICB0aGlzLl9faGFuZGxlcy55LmFkZFRvKHRoaXMuZ2V0Q2FudmFzKCkpXG4gICAgICAgICAgICAuc2V0QW5nbGUoLTkwKVxuICAgICAgICAgICAgLmNlbnRlclYoKS5zZXQoeyBsZWZ0OiB0cmFja3MueS5sZWZ0IH0pXG4gICAgICAgICAgICAuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgdGhpcy5nZXRDYW52YXMoKVxuICAgICAgICAgICAgLm9uKCdtb3VzZTptb3ZlJywgZXZlbnRzLm1vdXNlTW92ZSlcbiAgICAgICAgICAgIC5vbignbW91c2U6dXAnLCBldmVudHMubW91c2VVcCk7XG5cbiAgICAgICAgdHJhY2tzLngub24oJ21vdXNlZG93bicsIGV2ZW50cy5tb3VzZURvd24uYmluZCh0cmFja3MueCkpO1xuICAgICAgICB0cmFja3MueS5vbignbW91c2Vkb3duJywgZXZlbnRzLm1vdXNlRG93bi5iaW5kKHRyYWNrcy55KSk7XG4gICAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRHJhZ0hhbmRsZTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIERyYWdIYW5kbGUgPSByZXF1aXJlKCcuL0RyYWdIYW5kbGUnKTtcbnZhciBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG5mdW5jdGlvbiBEcmFnYmFySGFuZGxlcihjYW52YXMpIHtcbiAgICB2YXIgX2RyYWdiYXJzID0ge1xuICAgICAgICB4OiBudWxsLFxuICAgICAgICB5OiBudWxsXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge0RyYWdiYXJIYW5kbGVyfVxuICAgICAqL1xuICAgIHRoaXMuYXBwbHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghY2FudmFzLl9faGFzRHJhZ2JhcnMpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgY2FudmFzLl9faGFzRHJhZ2JhcnMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3luYygpO1xuXG4gICAgICAgIGlmICghdGhpcy5fX2hhbmRsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX19oYW5kbGVzID0gbmV3IERyYWdIYW5kbGUodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9faGFuZGxlcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgICBjYW52YXMucmVuZGVyQWxsKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcblxuICAgIHRoaXMuYnJpbmdUb0Zyb250ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIFtdLmNvbmNhdChfZHJhZ2JhcnMueCwgX2RyYWdiYXJzLnkpLmZvckVhY2goZnVuY3Rpb24gKGRyYWdiYXIpIHtcbiAgICAgICAgICAgIGRyYWdiYXIuYnJpbmdUb0Zyb250KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX19oYW5kbGVzLmdldEhhbmRsZXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgICAgIGhhbmRsZS5icmluZ1RvRnJvbnQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgZHJhZ2JhcnMgZnJvbSBjYW52YXNcbiAgICAgKi9cbiAgICB0aGlzLmNsZWFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBjYW52YXNcbiAgICAgICAgICAgIC5yZW1vdmUoX2RyYWdiYXJzLngpXG4gICAgICAgICAgICAucmVtb3ZlKF9kcmFnYmFycy55KVxuICAgICAgICAgICAgLnJlbmRlckFsbCgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRUcmFja3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfZHJhZ2JhcnM7XG4gICAgfTtcblxuICAgIHRoaXMucmVzZXRQb3NpdGlvbiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoIV9kcmFnYmFycy55IHx8ICFfZHJhZ2JhcnMueCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBfZHJhZ2JhcnMueS5zZXQoe1xuICAgICAgICAgICAgbGVmdDogY2FudmFzLndpZHRoIC0gMzAsXG4gICAgICAgICAgICBoZWlnaHQ6IGNhbnZhcy5nZXRJbWFnZSgpLmhlaWdodCAqIGNhbnZhcy5nZXRJbWFnZSgpLnNjYWxlWSxcbiAgICAgICAgfSkuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgX2RyYWdiYXJzLnguc2V0KHtcbiAgICAgICAgICAgIHRvcDogY2FudmFzLmhlaWdodCAtIDMwLFxuICAgICAgICAgICAgd2lkdGg6IGNhbnZhcy5nZXRJbWFnZSgpLndpZHRoICogY2FudmFzLmdldEltYWdlKCkuc2NhbGVZLFxuICAgICAgICB9KS5zZXRDb29yZHMoKTtcblxuICAgICAgICB0aGlzLl9faGFuZGxlcy5zZXRIYW5kbGVQb3NpdGlvbigpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtEcmFnYmFySGFuZGxlcn1cbiAgICAgKi9cbiAgICB0aGlzLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcblxuICAgICAgICBfZHJhZ2JhcnMueCA9IG5ldyBmYWJyaWMuUmVjdCgkLmV4dGVuZCh7fSwgY29uZmlnLmRyYWdCYXIsIHtcbiAgICAgICAgICAgIGF4aXM6ICd4JyxcbiAgICAgICAgICAgIHdpZHRoOiBjYW52YXMuZ2V0SW1hZ2UoKS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogY29uZmlnLmRyYWdCYXIuc2l6ZSxcbiAgICAgICAgICAgIGxvY2tNb3ZlbWVudFk6IHRydWUsXG4gICAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaG92ZXJDdXJzb3I6ICdldy1yZXNpemUnLFxuICAgICAgICAgICAgbW92ZUN1cnNvcjogJ2V3LXJlc2l6ZScsXG4gICAgICAgIH0pKVxuICAgICAgICAgICAgLmFkZFRvKGNhbnZhcylcbiAgICAgICAgICAgIC5jZW50ZXJIKCkuc2V0KHsgdG9wOiBjYW52YXMuaGVpZ2h0IC0gMzAgfSkuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgX2RyYWdiYXJzLnkgPSBuZXcgZmFicmljLlJlY3QoJC5leHRlbmQoe30sIGNvbmZpZy5kcmFnQmFyLCB7XG4gICAgICAgICAgICBheGlzOiAneScsXG4gICAgICAgICAgICB3aWR0aDogY29uZmlnLmRyYWdCYXIuc2l6ZSxcbiAgICAgICAgICAgIGhlaWdodDogY2FudmFzLmdldEltYWdlKCkuaGVpZ2h0LFxuICAgICAgICAgICAgbG9ja01vdmVtZW50WDogdHJ1ZSxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICBob3ZlckN1cnNvcjogJ25zLXJlc2l6ZScsXG4gICAgICAgICAgICBtb3ZlQ3Vyc29yOiAnbnMtcmVzaXplJyxcbiAgICAgICAgfSkpXG4gICAgICAgICAgICAuYWRkVG8oY2FudmFzKVxuICAgICAgICAgICAgLnNldCh7IGxlZnQ6IGNhbnZhcy53aWR0aCAtIDMwIH0pLnNldENvb3JkcygpO1xuXG4gICAgICAgIGNhbnZhcy5nZXRJbWFnZSgpLm9uKCdtb3ZpbmcnLCB0aGlzLnN5bmMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtEcmFnYmFySGFuZGxlcn1cbiAgICAgKi9cbiAgICB0aGlzLnN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF9kcmFnYmFycy54LnNldCh7bGVmdDogY2FudmFzLmdldEltYWdlKCkubGVmdH0pLnNldENvb3JkcygpO1xuICAgICAgICBfZHJhZ2JhcnMueS5zZXQoe3RvcDogY2FudmFzLmdldEltYWdlKCkudG9wfSkuc2V0Q29vcmRzKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRHJhZ2JhckhhbmRsZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogQHBhcmFtIHtmYWJyaWMuSW1hZ2V9IGltZ1xuICogQHBhcmFtIHtmYWJyaWMuUmVjdH0gYm91bmRpbmdSZWN0XG4gKi9cbmZ1bmN0aW9uIERyYWdnYWJsZShpbWcsIGJvdW5kaW5nUmVjdCkge1xuICAgIHZhciBfYm91bmRzID0gYm91bmRpbmdSZWN0O1xuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgd2hlbiBvYmplY3QgaXMgbW92ZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbk1vdmUoKSB7XG4gICAgICAgIHRoaXMuX19kcmFnZ2VkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmNhbnZhcy5kaXNhYmxlU2Nyb2xsKCk7XG5cbiAgICAgICAgdXRpbC5zZXRQb3NpdGlvbkluc2lkZSh0aGlzLCBfYm91bmRzKTtcbiAgICB9XG5cbiAgICAvLyBBdHRhY2ggb25Nb3ZlIGV2ZW50IHRvIGltYWdlXG4gICAgaW1nLm9uKCdtb3ZpbmcnLCBvbk1vdmUpO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtICB7ZmFicmljLlJlY3R9IGxvY2FsQm91bmRpbmdSZWN0XG4gICAgICogQHJldHVybiB7RHJhZ2dhYmxlfVxuICAgICAqL1xuICAgIHRoaXMuZW5hYmxlID0gZnVuY3Rpb24gKGxvY2FsQm91bmRpbmdSZWN0KSB7XG4gICAgICAgIGlmIChsb2NhbEJvdW5kaW5nUmVjdCkge1xuICAgICAgICAgICAgX2JvdW5kcyA9IGxvY2FsQm91bmRpbmdSZWN0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQFRPRE8gUmVmYWN0b3IgdGhpcywgc2VlIFZpZXdwb3J0LmNhbGNNaW5NYXhCb3VuZHNGb3JSZWN0XG4gICAgICAgIGlmIChpbWcuY2FudmFzLmdldFZpZXdwb3J0KCkuZ2V0RGF0YSgpLmF4aXMgPT09ICd4Jykge1xuICAgICAgICAgICAgX2JvdW5kcy50b3AubWluID0gX2JvdW5kcy50b3AubWF4ID0gaW1nLnRvcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9ib3VuZHMubGVmdC5taW4gPSBfYm91bmRzLmxlZnQubWF4ID0gaW1nLmxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcubG9ja01vdmVtZW50WCA9IGltZy5sb2NrTW92ZW1lbnRZID0gZmFsc2U7XG4gICAgICAgIGltZy5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgaW1nLmhvdmVyQ3Vyc29yID0gJ21vdmUnO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IERyYWdnYWJsZTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnJyk7XG5cbmZ1bmN0aW9uIEZyYW1lSGFuZGxlcih2aWV3cG9ydCkge1xuICAgIHZhciBfZnJhbWVzO1xuICAgIHZhciBfZnJhbWVUeXBlID0gJ2ltYWdlJztcblxuICAgIGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICAgIGluaXRGcmFtZXMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRGcmFtZXNBc0FycmF5KCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgX2ZyYW1lcy50b3AsIF9mcmFtZXMucmlnaHQsIF9mcmFtZXMuYm90dG9tLCBfZnJhbWVzLmxlZnRcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSA0IHJlY3RhbmdsZXMgd2hpY2ggYXJlIHVzZWQgd2hlbiBjdXJyZW50IGNhbnZhcyBzaG91bGQgYmUgZnJhbWVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5pdEZyYW1lcygpIHtcbiAgICAgICAgdmFyIGZyYW1lID0gbmV3IGZhYnJpYy5SZWN0KGNvbmZpZy5mcmFtZXMuZGVmYXVsdCk7XG5cbiAgICAgICAgX2ZyYW1lcyA9IHtcbiAgICAgICAgICAgIHRvcDogZnJhbWUuY2xvbmUoKSxcbiAgICAgICAgICAgIHJpZ2h0OiBmcmFtZS5jbG9uZSgpLFxuICAgICAgICAgICAgYm90dG9tOiBmcmFtZS5jbG9uZSgpLFxuICAgICAgICAgICAgbGVmdDogZnJhbWUuY2xvbmUoKVxuICAgICAgICB9O1xuXG4gICAgICAgIGdldEZyYW1lc0FzQXJyYXkoKS5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICB2aWV3cG9ydC5jYW52YXMuYWRkKG8pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy5nZXRGcmFtZVR5cGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfZnJhbWVUeXBlO1xuICAgIH07XG5cbiAgICB0aGlzLnNldFZpc2libGUgPSBmdW5jdGlvbiAoaXNWaXNpYmxlKSB7XG4gICAgICAgIGlzVmlzaWJsZSA9IHR5cGVvZiBpc1Zpc2libGUgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6ICEhaXNWaXNpYmxlO1xuXG4gICAgICAgIGdldEZyYW1lc0FzQXJyYXkoKS5mb3JFYWNoKGZ1bmN0aW9uIChmcmFtZSkge1xuICAgICAgICAgICAgZnJhbWUuc2V0KHsgdmlzaWJsZTogaXNWaXNpYmxlIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB2aWV3cG9ydC5jYW52YXMucmVuZGVyQWxsKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBwYXNzZWQgZnJhbWV0eXBlIHRvIHBhc3NlZCB2aWV3d3BvcnRcbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd9IGZyYW1lVHlwZSBub25lfGltYWdlfGJsYWNrfHdoaXRlXG4gICAgICogQHJldHVybiB7RnJhbWVIYW5kbGVyfVxuICAgICAqL1xuICAgIHRoaXMuc2V0RnJhbWVzID0gZnVuY3Rpb24gKGZyYW1lVHlwZSkge1xuICAgICAgICB2YXIgYm91bmRzID0gdmlld3BvcnQuZ2V0Qm91bmRzKCk7XG5cbiAgICAgICAgZnJhbWVUeXBlID0gZnJhbWVUeXBlIHx8IF9mcmFtZVR5cGUgfHwgJ2ltYWdlJztcbiAgICAgICAgX2ZyYW1lVHlwZSA9IGZyYW1lVHlwZTtcblxuICAgICAgICBpZiAoIWZyYW1lVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZyYW1lVHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSh0cnVlKTtcblxuICAgICAgICBnZXRGcmFtZXNBc0FycmF5KCkuZm9yRWFjaChmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgby5zZXQoY29uZmlnLmZyYW1lc1tmcmFtZVR5cGVdKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIHZwRGF0YSA9IHZpZXdwb3J0LmdldERhdGEoKTtcbiAgICAgICAgdmFyIGZyYW1lU2l6ZSA9IDI5O1xuICAgICAgICBpZiAodnBEYXRhLmRpbS51bml0cyA9PT0gJ2luY2gnKSB7XG4gICAgICAgICAgICBmcmFtZVNpemUgLz0gMi41NDtcbiAgICAgICAgfVxuXG4gICAgICAgIF9mcmFtZXMudG9wLmhlaWdodCA9XG4gICAgICAgICAgICBfZnJhbWVzLmJvdHRvbS5oZWlnaHQgPVxuICAgICAgICAgICAgICAgIF9mcmFtZXMucmlnaHQud2lkdGggPVxuICAgICAgICAgICAgICAgICAgICBfZnJhbWVzLmxlZnQud2lkdGggPSB2cERhdGEucHBtbSAqIGZyYW1lU2l6ZSAqIHZpZXdwb3J0LmNhbnZhcy5nZXRJbWFnZSgpLnNjYWxlWDtcblxuICAgICAgICBfZnJhbWVzLnRvcC53aWR0aCA9IF9mcmFtZXMuYm90dG9tLndpZHRoID0gdnBEYXRhLndpZHRoO1xuICAgICAgICBfZnJhbWVzLnJpZ2h0LmhlaWdodCA9IF9mcmFtZXMubGVmdC5oZWlnaHQgPSB2cERhdGEuaGVpZ2h0O1xuXG4gICAgICAgIGlmIChmcmFtZVR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgICAgIF9mcmFtZXMudG9wLndpZHRoIC09ICh2cERhdGEucHBtbSAqIGZyYW1lU2l6ZSAqIHZpZXdwb3J0LmNhbnZhcy5nZXRJbWFnZSgpLnNjYWxlWCkgKiAyO1xuICAgICAgICAgICAgX2ZyYW1lcy5ib3R0b20ud2lkdGggPSBfZnJhbWVzLnRvcC53aWR0aDtcbiAgICAgICAgICAgIF9mcmFtZXMucmlnaHQuaGVpZ2h0IC09ICh2cERhdGEucHBtbSAqIGZyYW1lU2l6ZSAqIHZpZXdwb3J0LmNhbnZhcy5nZXRJbWFnZSgpLnNjYWxlWCkgKiAyO1xuICAgICAgICAgICAgX2ZyYW1lcy5sZWZ0LmhlaWdodCA9IF9mcmFtZXMucmlnaHQuaGVpZ2h0O1xuXG4gICAgICAgICAgICBfZnJhbWVzLnRvcC5zZXQoe1xuICAgICAgICAgICAgICAgIHRvcDogYm91bmRzLnRvcCxcbiAgICAgICAgICAgIH0pLmNlbnRlckgoKS5zZXRDb29yZHMoKTtcblxuICAgICAgICAgICAgX2ZyYW1lcy5ib3R0b20uc2V0KHtcbiAgICAgICAgICAgICAgICB0b3A6IChib3VuZHMudG9wICsgYm91bmRzLmhlaWdodCAtIF9mcmFtZXMuYm90dG9tLmhlaWdodCkgLSAxXG4gICAgICAgICAgICB9KS5jZW50ZXJIKCkuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgICAgIF9mcmFtZXMucmlnaHQuc2V0KHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAoYm91bmRzLmxlZnQgKyBib3VuZHMud2lkdGggLSBfZnJhbWVzLnJpZ2h0LndpZHRoKSAtIDFcbiAgICAgICAgICAgIH0pLmNlbnRlclYoKS5zZXRDb29yZHMoKTtcblxuICAgICAgICAgICAgX2ZyYW1lcy5sZWZ0LnNldCh7XG4gICAgICAgICAgICAgICAgbGVmdDogYm91bmRzLmxlZnRcbiAgICAgICAgICAgIH0pLmNlbnRlclYoKS5zZXRDb29yZHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9mcmFtZXMudG9wLnNldCh7XG4gICAgICAgICAgICAgICAgdG9wOiAoYm91bmRzLnRvcCAtIF9mcmFtZXMudG9wLmhlaWdodCkgKyAxLFxuICAgICAgICAgICAgfSkuY2VudGVySCgpLnNldENvb3JkcygpO1xuXG4gICAgICAgICAgICBfZnJhbWVzLmJvdHRvbS5zZXQoe1xuICAgICAgICAgICAgICAgIHRvcDogKGJvdW5kcy50b3AgKyBib3VuZHMuaGVpZ2h0KSAtIDEsXG4gICAgICAgICAgICB9KS5jZW50ZXJIKCkuc2V0Q29vcmRzKCk7XG5cbiAgICAgICAgICAgIF9mcmFtZXMucmlnaHQuc2V0KHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAoYm91bmRzLmxlZnQgKyBib3VuZHMud2lkdGgpIC0gMVxuICAgICAgICAgICAgfSkuY2VudGVyVigpLnNldENvb3JkcygpO1xuXG4gICAgICAgICAgICBfZnJhbWVzLmxlZnQuc2V0KHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAoYm91bmRzLmxlZnQgLSBfZnJhbWVzLmxlZnQud2lkdGgpICsgMVxuICAgICAgICAgICAgfSkuY2VudGVyVigpLnNldENvb3JkcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmlld3BvcnQuY2FudmFzLnJlbmRlckFsbCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRnJhbWVIYW5kbGVyO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBHb3JlSGFuZGxlcih2aWV3cG9ydCkge1xuICAgIHZhciBfZW5hYmxlZCA9IGZhbHNlO1xuICAgIHZhciBfbGluZXMgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge2ZhYnJpYy5MaW5lfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldExpbmUobGVmdCkge1xuICAgICAgICByZXR1cm4gbmV3IGZhYnJpYy5MaW5lKFswLCAwLCAwLCB2aWV3cG9ydC5nZXREYXRhKCkuaGVpZ2h0XSwge1xuICAgICAgICAgICAgZXZlbnRlZDogZmFsc2UsXG4gICAgICAgICAgICBzdHJva2VEYXNoQXJyYXk6IFs1LCA1XSxcbiAgICAgICAgICAgIHN0cm9rZTogJyMwMDAnLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgdG9wOiB2aWV3cG9ydC5nZXRCb3VuZHMoKS50b3BcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7R29yZUhhbmRsZXJ9XG4gICAgICovXG4gICAgdGhpcy5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX2xpbmVzLmZvckVhY2goZnVuY3Rpb24gKGxpbmUpIHtcbiAgICAgICAgICAgIHZpZXdwb3J0LmNhbnZhcy5yZW1vdmUobGluZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBfbGluZXMgPSBbXTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSAge0Jvb2xlYW59IGVuYWJsZWRcbiAgICAgKiBAcmV0dXJuIHtHb3JlSGFuZGxlcn1cbiAgICAgKi9cbiAgICB0aGlzLmVuYWJsZSA9IGZ1bmN0aW9uIChlbmFibGVkKSB7XG4gICAgICAgIF9lbmFibGVkID0gZW5hYmxlZDtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuXG4gICAgICAgIGlmICghX2VuYWJsZWQpIHtcbiAgICAgICAgICAgIHZpZXdwb3J0LmNhbnZhcy5yZW5kZXJBbGwoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBib3VuZHMgPSB2aWV3cG9ydC5nZXRCb3VuZHMoKTtcbiAgICAgICAgdmFyIHN0ZXAgICA9IHZpZXdwb3J0LmdldERhdGEoKS5wcG1tICogNDUwO1xuICAgICAgICB2YXIgY291bnQgID0gTWF0aC5jZWlsKGJvdW5kcy53aWR0aCAvIHN0ZXApO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgX2xpbmVzLnB1c2goZ2V0TGluZShib3VuZHMubGVmdCArIHN0ZXAgKiBpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBfbGluZXMuZm9yRWFjaChmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmlld3BvcnQuY2FudmFzLmFkZChvKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmlld3BvcnQuY2FudmFzLnJlbmRlckFsbCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtHb3JlSGFuZGxlcn1cbiAgICAgKi9cbiAgICB0aGlzLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbmFibGUoX2VuYWJsZWQpO1xuICAgIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gR29yZUhhbmRsZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIEltYWdlRGF0YUhhbmRsZXIoaW1nKSB7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGUgY3JvcHBlZCBpbWFnZSBpcyBkcmFnZ2VkXG4gICAgICogQHJldHVybiB7T2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMuZ2V0Q3JvcERhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Nyb3BEYXRhJykpO1xuICAgIH07XG5cbiAgICB0aGlzLnNldENyb3BEYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB2aWV3cG9ydEJvdW5kcyA9IGltZy5jYW52YXMuZ2V0Vmlld3BvcnQoKS5nZXRCb3VuZHMoKTtcbiAgICAgICAgdmFyIGRyYWdBeGlzID0gaW1nLmNhbnZhcy5nZXRWaWV3cG9ydCgpLmdldERhdGEoKS5heGlzO1xuXG4gICAgICAgIHZhciBjcm9wRGF0YSA9IHtcbiAgICAgICAgICAgIHg6IGRyYWdBeGlzID09PSAneCcgPyAodmlld3BvcnRCb3VuZHMubGVmdCAtIGltZy5sZWZ0KSAvIChpbWcud2lkdGggKiBpbWcuc2NhbGVYKSA6IDAsXG4gICAgICAgICAgICB5OiBkcmFnQXhpcyA9PT0gJ3knID8gKHZpZXdwb3J0Qm91bmRzLnRvcCAtIGltZy50b3ApIC8gKGltZy5oZWlnaHQgKiBpbWcuc2NhbGVZKSA6IDAsXG4gICAgICAgIH1cblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdjcm9wRGF0YScsIEpTT04uc3RyaW5naWZ5KGNyb3BEYXRhKSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVDcm9wRGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjcm9wRGF0YScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYXBwbGllZCB0cmFuc2Zvcm1hdGlvbnMgZm9yIHRoZSBJbWFnZSBhbmQgYWxzb1xuICAgICAqIGhvdyBpdCBpcyBjcm9wcGVkIGFuZCBkcmFnZ2VkLlxuICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgKi9cbiAgICB0aGlzLmdldERhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2aWV3cG9ydERhdGEgPSBpbWcuY2FudmFzLmdldFZpZXdwb3J0KCkuZ2V0RGF0YSgpO1xuXG4gICAgICAgIHZhciByZXR1cm5WYWx1ZSA9ICQuZXh0ZW5kKFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWlycm9yZWQ6IGltZy5jYW52YXMuZ2V0TWlycm9yKCkuZ2V0U3RhdHVzKCksXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmdldENyb3BEYXRhKClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaW1nLmNhbnZhcy5fX3R5cGUgPT09ICdjYW52YXMnKSB7XG4gICAgICAgICAgICB2YXIgZnJhbWVIYW5kbGVyID0gaW1nLmNhbnZhcy5nZXRWaWV3cG9ydCgpLmdldEZyYW1lSGFuZGxlcigpO1xuICAgICAgICAgICAgcmV0dXJuVmFsdWUuZWRnZSA9IGZyYW1lSGFuZGxlci5nZXRGcmFtZVR5cGUoKTtcbiAgICAgICAgICAgIHJldHVyblZhbHVlLmZyYW1lZCA9IHJldHVyblZhbHVlLmVkZ2UgIT09ICdub25lJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEltYWdlRGF0YUhhbmRsZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBDYW52YXMgPSByZXF1aXJlKCcuL0NhbnZhcycpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuZnVuY3Rpb24gSW1hZ2VFZGl0b3IoY2FudmFzSWQsIGFyZ3MpIHtcbiAgICB2YXIgX2NhbnZhcztcblxuICAgIHZhciBfc2V0dGluZ3MgPSAkLmV4dGVuZCh7XG4gICAgICAgIC8vIFR5cGUgZGVmYXVsdHMgdG8gd2FsbHBhcGVyXG4gICAgICAgIHR5cGU6ICd3YWxscGFwZXInLFxuICAgICAgICAvLyBEZWZhdWx0IHRleHRzIG9uIHRoZSBidXR0b25zXG4gICAgICAgIGJ1dHRvbnM6IHtcbiAgICAgICAgICAgIHNob3dUaHJlZUQ6ICczZCcsXG4gICAgICAgICAgICBoaWRlVGhyZWVEOiAnRmxhdCcsXG4gICAgICAgICAgICBzaG93TXVyYWxzOiAnU2hvdyBNdXJhbHMgUGFuZWwnLFxuICAgICAgICAgICAgaGlkZU11cmFsczogJ0hpZGUgTXVyYWxzIFBhbmVsJyxcbiAgICAgICAgICAgIHNob3dSdWxlcnM6ICdTaG93IFJ1bGVyJyxcbiAgICAgICAgICAgIGhpZGVSdWxlcnM6ICdIaWRlIFJ1bGVyJyxcbiAgICAgICAgICAgIHNob3dGdWxsc2NyZWVuOiAnRnVsbHNjcmVlbicsXG4gICAgICAgICAgICBoaWRlRnVsbHNjcmVlbjogJ0V4aXQgRnVsbHNjcmVlbicsXG4gICAgICAgIH1cbiAgICB9LCBhcmdzKTtcblxuICAgIC8vIEluaXRpYWxpemUgY2FudmFzXG4gICAgX2NhbnZhcyA9IG5ldyBDYW52YXMoY2FudmFzSWQsIGFyZ3MuZGltZW5zaW9ucyk7XG5cbiAgICAvLyBMZXQgQ2FudmFzIGtub3cgd2hpY2ggdHlwZSBpdCBpcywgY2FudmFzIG9yIHdhbGxwYXBlciBzaW5jZSBpdCBpc1xuICAgIC8vIGFjY2Vzc2libGUgZm9yIGFsbCBvYmplY3RzIGNvbnRhaW5lZCB3aXRoaW4uXG4gICAgX2NhbnZhcy5zZXQoe1xuICAgICAgICBfX3R5cGU6IF9zZXR0aW5ncy50eXBlXG4gICAgfSk7XG5cbiAgICAvLyBBZGRpbmcgYnV0dG9ucyB0byB0aGUgY2FudmFzIGRlcGVuZGluZyBvbiB3aGljaCB0eXBlIGlzIGFjdGl2ZS5cbiAgICAvLyBJdCBtaWdodCBiZSBiZXR0ZXIgdGhhdCB0aGlzIHJlc2lkZXMgc29tZXdoZXJlIGVsc2UsIGVpdGhlciBpbiBDYW52YXMgb3JcbiAgICAvLyBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBpbWFnZSBlZGl0b3IuXG4gICAgaWYgKF9jYW52YXMuX190eXBlID09PSAnY2FudmFzJykge1xuICAgICAgICBfY2FudmFzLmdldEJ1dHRvbk1lbnUoKVxuICAgICAgICAgICAgLmFkZEl0ZW0oJ3RvZ2dsZTNkJywgW19zZXR0aW5ncy5idXR0b25zLnNob3dUaHJlZUQsIF9zZXR0aW5ncy5idXR0b25zLmhpZGVUaHJlZURdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX2NhbnZhcy50b2dnbGUzRCh0aGlzLmlzQWN0aXZlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX2NhbnZhcy5nZXRCdXR0b25NZW51KClcbiAgICAgICAgICAgIC5hZGRJdGVtKCd0b2dnbGVNdXJhbHMnLCBbX3NldHRpbmdzLmJ1dHRvbnMuc2hvd011cmFscywgX3NldHRpbmdzLmJ1dHRvbnMuaGlkZU11cmFsc10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfY2FudmFzLmdldFZpZXdwb3J0KCkuZ2V0R29yZXMoKS5lbmFibGUodGhpcy5pc0FjdGl2ZSgpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkSXRlbSgndG9nZ2xlUnVsZXJzJywgW19zZXR0aW5ncy5idXR0b25zLnNob3dSdWxlcnMsIF9zZXR0aW5ncy5idXR0b25zLmhpZGVSdWxlcnNdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX2NhbnZhcy5nZXRWaWV3cG9ydCgpLmdldFJ1bGVycygpLmVuYWJsZSh0aGlzLmlzQWN0aXZlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHV0aWwuc3VwcG9ydHNGdWxsc2NyZWVuKCkpIHtcbiAgICAgICAgX2NhbnZhcy5nZXRCdXR0b25NZW51KClcbiAgICAgICAgICAgIC5hZGRJdGVtKCd0b2dnbGVGdWxsc2NyZWVuJywgW19zZXR0aW5ncy5idXR0b25zLnNob3dGdWxsc2NyZWVuLCBfc2V0dGluZ3MuYnV0dG9ucy5leGl0RnVsbHNjcmVlbl0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB1dGlsLnRvZ2dsZUZ1bGxzY3JlZW4oX2NhbnZhcy5nZXRTZWxlY3Rpb25FbGVtZW50KCkucGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfY2FudmFzLmdldEJ1dHRvbk1lbnUoKS5yZW5kZXIoKTtcblxuICAgIC8vIEJpbmRpbmcgZnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnQgdG8gdGhlIGltYWdlLWVkaXRvciB3cmFwcGVyLiBUaGlzIHdheSB3ZSBjYW4gc2V0IHRoZSBjb3JyZWN0IGJ1dHRvbiBhY3RpdmUuXG4gICAgJChfY2FudmFzLmdldFNlbGVjdGlvbkVsZW1lbnQoKS5wYXJlbnROb2RlKS5iaW5kKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIG1vemZ1bGxzY3JlZW5jaGFuZ2UgZnVsbHNjcmVlbmNoYW5nZScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgdmFyIGlzRnVsbHNjcmVlbiA9IGRvY3VtZW50LmZ1bGxTY3JlZW4gfHwgZG9jdW1lbnQubW96RnVsbFNjcmVlbiB8fCBkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW47XG5cbiAgICAgICAgaWYgKGlzRnVsbHNjcmVlbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgX2NhbnZhcy5nZXRCdXR0b25NZW51KCkuZ2V0SXRlbXMoKS5mb3JFYWNoKGZ1bmN0aW9uKGJ1dHRvbikge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5nZXRJZCgpID09PSAndG9nZ2xlRnVsbHNjcmVlbicpIHtcbiAgICAgICAgICAgICAgICBidXR0b24uc2V0QWN0aXZlKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcm9wcyBpbWFnZSB0byBkZXNpcmVkIGRpbWVuc2lvbnNcbiAgICAgKiBAcGFyYW0gIHtpbnR9IHdpZHRoICBbZGVzY3JpcHRpb25dXG4gICAgICogQHBhcmFtICB7aW50fSBoZWlnaHQgW2Rlc2NyaXB0aW9uXVxuICAgICAqIEBwYXJhbSAge3N0cmluZ30gdW5pdHMgY218aW5jaFxuICAgICAqIEByZXR1cm4ge0ltYWdlRWRpdG9yfVxuICAgICAqL1xuICAgIHRoaXMuY3JvcCA9IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0LCB1bml0cykge1xuXG4gICAgICAgIF9jYW52YXMuZ2V0SW1hZ2VEYXRhKCkucmVtb3ZlQ3JvcERhdGEoKTtcblxuICAgICAgICBfY2FudmFzLmdldFZpZXdwb3J0KCkuc2V0KHdpZHRoLCBoZWlnaHQsIHVuaXRzKTtcblxuICAgICAgICB2YXIgc2hvdWxkQmVDcm9wcGVkID0gdXRpbC5pc0FzcGVjdENoYW5nZWQoX2NhbnZhcy5nZXRJbWFnZSgpLndpZHRoLCBfY2FudmFzLmdldEltYWdlKCkuaGVpZ2h0LCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgICAgICBpZiAoc2hvdWxkQmVDcm9wcGVkKSB7XG4gICAgICAgICAgICBfY2FudmFzLmdldEltYWdlKCkuX19kcmFnZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBfY2FudmFzLmdldEltYWdlKCkuX19jcm9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIF9jYW52YXMuZ2V0SW1hZ2VEYXRhKCkuc2V0Q3JvcERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIF9jYW52YXMuZ2V0SW1hZ2UoKS5fX2Nyb3BwZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd8b2JqZWN0fSBrZXlcbiAgICAgKiBAcGFyYW0gIHtvYmplY3R9IGRlZmF1bHRWYWx1ZVxuICAgICAqIEByZXR1cm4ge29iamVjdH1cbiAgICAgKi9cbiAgICB0aGlzLmdldCA9IGZ1bmN0aW9uIChrZXksIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBfc2V0dGluZ3Nba2V5XTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgPyBkZWZhdWx0VmFsdWUgOiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZHMgdGhlIGltYWdlIGludG8gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0gIHtOdW1iZXJ8U3RyaW5nfSB1cmxcbiAgICAgKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHtJbWFnZUVkaXRvcn1cbiAgICAgKi9cbiAgICB0aGlzLmxvYWRJbWFnZSA9IGZ1bmN0aW9uICh1cmwsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nID8gY2FsbGJhY2sgOiBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgZmFicmljLkltYWdlLmZyb21VUkwodGhpcy5fdXJsID0gdXJsLCBmdW5jdGlvbiAoaW1nKSB7XG4gICAgICAgICAgICBfY2FudmFzLnNldEltYWdlKGltZyk7XG4gICAgICAgICAgICBpbWcuX191cmwgPSB1cmw7XG4gICAgICAgICAgICBpbWcuc2VuZFRvQmFjaygpO1xuICAgICAgICAgICAgY2FsbGJhY2soaW1nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd8b2JqZWN0fSBrZXlcbiAgICAgKiBAcGFyYW0gIHtvYmplY3R9IHZhbHVlXG4gICAgICogQHJldHVybiB7SW1hZ2VFZGl0b3J9XG4gICAgICovXG4gICAgdGhpcy5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICAkLmV4dGVuZChfc2V0dGluZ3MsIHV0aWwuYXNzZXJ0S2V5VmFsdWVQYWlyKGtleSwgdmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIHV0aWwuc2V0UHJvcGVydGllcyh0aGlzLCB7XG4gICAgICAgIGNhbnZhczoge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jYW52YXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBJbWFnZUVkaXRvcjtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gTWlycm9ySGFuZGxlcihpbWcpIHtcblxuICAgIHZhciBfbWlycm9yZWQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtICB7Qm9vbGVhbn0gY2hlY2tlZFxuICAgICAqIEByZXR1cm4ge01pcnJvckhhbmRsZXJ9XG4gICAgICovXG4gICAgdGhpcy5zZXQgPSBmdW5jdGlvbihjaGVja2VkKSB7XG4gICAgICAgIF9taXJyb3JlZCA9IChpbWcuZmxpcFggPSBjaGVja2VkKSA/IDEgOiAwO1xuICAgICAgICBpbWcuc2V0Q29vcmRzKCkuY2FudmFzLnJlbmRlckFsbCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0U3RhdHVzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbWlycm9yZWQ7XG4gICAgfVxuXG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBNaXJyb3JIYW5kbGVyO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIFRleHRCdXR0b24gPSByZXF1aXJlKCcuL1RleHRCdXR0b24nKTtcbnZhciBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG5mdW5jdGlvbiBSdWxlckhhbmRsZXIodmlld3BvcnQpIHtcbiAgICB2YXIgX2VuYWJsZWQgPSBmYWxzZTtcbiAgICB2YXIgX2xpbmVzID0geyB4OiBudWxsLCB5OiBudWxsIH07XG4gICAgdmFyIF9yZWN0ID0geyB4OiBudWxsLCB5OiBudWxsIH07XG5cbiAgICB2YXIgRXZlbnQgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmlnZ2VycyB3aGVuIGhhbmRsZWJhciBpcyBtb3ZlZFxuICAgICAgICAgKi9cbiAgICAgICAgb25Nb3ZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB1cGRhdGVSdWxlclRleHQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlUnVsZXJUZXh0KHJ1bGVyKSB7XG4gICAgICAgIHZhciBheGlzID0gcnVsZXIuYXhpcztcbiAgICAgICAgdmFyIGJvdW5kcyA9IHZpZXdwb3J0LmdldEJvdW5kcygpO1xuICAgICAgICB2YXIgcG9zID0gdXRpbC5hc3NlcnRCZXR3ZWVuKHJ1bGVyW2F4aXNdLCBib3VuZHMubWluW2F4aXNdLCBib3VuZHMubWF4W2F4aXNdKTtcbiAgICAgICAgcnVsZXIubWFya2VyW2F4aXNdID0gcnVsZXJbYXhpc10gPSBwb3M7XG4gICAgICAgIHZhciBkaW0gPSAocnVsZXJbYXhpc10gLSBib3VuZHNbYXhpc10pIC8gKHZpZXdwb3J0LmdldERhdGEoKS5wcG1tICogMTAgKiB2aWV3cG9ydC5jYW52YXMuZ2V0SW1hZ2UoKS5zY2FsZVgpO1xuXG4gICAgICAgIGlmIChheGlzID09PSAndG9wJykge1xuICAgICAgICAgICAgZGltID0gdmlld3BvcnQuZ2V0RGF0YSgpLmRpbS5oZWlnaHQgLSBkaW07XG4gICAgICAgIH1cblxuICAgICAgICBydWxlci5zZXRUZXh0KE1hdGgucm91bmQoZGltICogMTAwKSAvIDEwMCArICcgJyArIHZpZXdwb3J0LmdldERhdGEoKS5kaW0udW5pdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge2ZhYnJpYy5MaW5lfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldExpbmUoYXhpcykge1xuICAgICAgICB2YXIgYm91bmRzID0gdmlld3BvcnQuZ2V0Qm91bmRzKCk7XG4gICAgICAgIHJldHVybiBuZXcgZmFicmljLkxpbmUoW1xuICAgICAgICAgICAgICAgIDAsIDAsXG4gICAgICAgICAgICAgICAgYXhpcyA9PT0gJ3gnID8gYm91bmRzLndpZHRoIDogMCxcbiAgICAgICAgICAgICAgICBheGlzID09PSAneScgPyBib3VuZHMuaGVpZ2h0IDogMFxuICAgICAgICAgICAgXSwge1xuICAgICAgICAgICAgZXZlbnRlZDogZmFsc2UsXG4gICAgICAgICAgICBzdHJva2VEYXNoQXJyYXk6IFs1LCA1XSxcbiAgICAgICAgICAgIHN0cm9rZTogJyMwMDAnLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICB0b3A6IGF4aXMgPT09ICd4JyA/IGJvdW5kcy50b3AgKyBib3VuZHMuaGVpZ2h0IC8gMiA6IGJvdW5kcy50b3AsXG4gICAgICAgICAgICBsZWZ0OiBheGlzID09PSAneScgPyBib3VuZHMubGVmdCArIGJvdW5kcy53aWR0aCAvIDIgOiBib3VuZHMubGVmdFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtSdWxlckhhbmRsZXJ9XG4gICAgICovXG4gICAgdGhpcy5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgW10uY29uY2F0KF9yZWN0LngsIF9yZWN0LnksIF9saW5lcy54LCBfbGluZXMueSkuZm9yRWFjaChmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmlld3BvcnQuY2FudmFzLnJlbW92ZShvKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gIHtCb29sZWFufSBlbmFibGVkXG4gICAgICogQHJldHVybiB7UnVsZXJIYW5kbGVyfVxuICAgICAqL1xuICAgIHRoaXMuZW5hYmxlID0gZnVuY3Rpb24gKGVuYWJsZWQpIHtcbiAgICAgICAgdmFyIGJvdW5kcyA9IHZpZXdwb3J0LmdldEJvdW5kcygpO1xuXG4gICAgICAgIHZhciBrZWVwUG9zaXRpb24gPSAoXG4gICAgICAgICAgICBlbmFibGVkICYmIChfZW5hYmxlZCA9PT0gZW5hYmxlZCkgJiZcbiAgICAgICAgICAgIF9saW5lcy54ICYmIChNYXRoLmFicyhfbGluZXMueC53aWR0aCAtIGJvdW5kcy53aWR0aCkgPCAxKSAmJlxuICAgICAgICAgICAgX2xpbmVzLnkgJiYgKE1hdGguYWJzKF9saW5lcy55LmhlaWdodCAtIGJvdW5kcy5oZWlnaHQpIDwgMSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoa2VlcFBvc2l0aW9uKSB7XG4gICAgICAgICAgICB1cGRhdGVSdWxlclRleHQoX3JlY3QueCk7XG4gICAgICAgICAgICB1cGRhdGVSdWxlclRleHQoX3JlY3QueSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIF9lbmFibGVkID0gZW5hYmxlZDtcblxuICAgICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgICAgaWYgKCFfZW5hYmxlZCkge1xuICAgICAgICAgICAgdmlld3BvcnQuY2FudmFzLnJlbmRlckFsbCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBfbGluZXMgPSB7IHg6IGdldExpbmUoJ3gnKSwgeTogZ2V0TGluZSgneScpIH07XG5cbiAgICAgICAgdmlld3BvcnQuY2FudmFzLmFkZChfbGluZXMueCk7XG4gICAgICAgIHZpZXdwb3J0LmNhbnZhcy5hZGQoX2xpbmVzLnkpO1xuXG4gICAgICAgIF9yZWN0LnggPSBuZXcgVGV4dEJ1dHRvbignaG9yaXpvbnRhbFJ1bGVyJywgJ0gnLCBjb25maWcucnVsZXJIYW5kbGUsIHRydWUpXG4gICAgICAgICAgICAuc2V0KGNvbmZpZy5ydWxlckhhbmRsZS54KF9saW5lcywgYm91bmRzKSlcbiAgICAgICAgICAgIC5hZGRUbyh2aWV3cG9ydC5jYW52YXMpXG4gICAgICAgICAgICAub24oJ21vdmluZycsIEV2ZW50Lm9uTW92ZSlcbiAgICAgICAgICAgIC50cmlnZ2VyKCdtb3ZpbmcnKTtcblxuICAgICAgICBfcmVjdC55ID0gbmV3IFRleHRCdXR0b24oJ3ZlcnRpY2FsUnVsZXInLCAnVicsIGNvbmZpZy5ydWxlckhhbmRsZSwgdHJ1ZSlcbiAgICAgICAgICAgIC5zZXQoY29uZmlnLnJ1bGVySGFuZGxlLnkoX2xpbmVzLCBib3VuZHMpKVxuICAgICAgICAgICAgLmFkZFRvKHZpZXdwb3J0LmNhbnZhcylcbiAgICAgICAgICAgIC5vbignbW92aW5nJywgRXZlbnQub25Nb3ZlKVxuICAgICAgICAgICAgLnRyaWdnZXIoJ21vdmluZycpO1xuXG4gICAgICAgIHZpZXdwb3J0LmNhbnZhcy5yZW5kZXJBbGwoKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7UnVsZXJIYW5kbGVyfVxuICAgICAqL1xuICAgIHRoaXMucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuYWJsZShfZW5hYmxlZCk7XG4gICAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSdWxlckhhbmRsZXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSB0ZXh0LWJ1dHRvbiB3aXRoIHRleHQvc2V0dGluZ3MgcHJvdmlkZWQuXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCAtIHRleHQgdG8gYmUgc2hvd24gaW5zaWRlIHRoZSBidXR0b25cbiAqIEBwYXJhbSB7T2JqZWN0fSBzZXR0aW5nc1xuICovXG5mdW5jdGlvbiBUZXh0QnV0dG9uKGlkLCB0ZXh0LCBzZXR0aW5ncywgaXNBY3RpdmUpIHtcbiAgICBmYWJyaWMuR3JvdXAuY2FsbCh0aGlzKTtcblxuICAgIHZhciBfX2FjdGl2ZSA9IGlzQWN0aXZlIHx8IGZhbHNlO1xuICAgIHZhciBfY2FsbGJhY2sgPSBudWxsO1xuICAgIHZhciBfcmVjdCA9IG51bGw7XG4gICAgdmFyIF90ZXh0ID0gbnVsbDtcbiAgICB2YXIgX2lkID0gaWQ7XG4gICAgdmFyIHdpZHRoID0gc2V0dGluZ3MucmVjdCA/IHNldHRpbmdzLnJlY3Qud2lkdGggOiAwO1xuICAgIHZhciBoZWlnaHQgPSBzZXR0aW5ncy5yZWN0ID8gc2V0dGluZ3MucmVjdC5oZWlnaHQgOiAwO1xuXG4gICAgdmFyIF9yZWN0U2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgY29uZmlnLnRleHRCdXR0b24ucmVjdCh3aWR0aCwgaGVpZ2h0KSwgc2V0dGluZ3MucmVjdCk7XG4gICAgdmFyIF90ZXh0U2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgY29uZmlnLnRleHRCdXR0b24udGV4dCwgc2V0dGluZ3MudGV4dCwge1xuICAgICAgICB0ZXh0OiBBcnJheS5pc0FycmF5KHRleHQpID8gdGV4dFswXSA6IHRleHQsXG4gICAgICAgIHRleHRBY3RpdmU6IEFycmF5LmlzQXJyYXkodGV4dCkgPyB0ZXh0WzFdIDogdGV4dCxcbiAgICB9KTtcblxuICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbnRlcmFjdGl2ZVxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhvdmVyQ3Vyc29yID0gY29uZmlnLnRleHRCdXR0b24uY3Vyc29yO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSB0ZXh0IGFuZCByZWN0YW5nbGVcbiAgICBfdGV4dCA9IG5ldyBmYWJyaWMuVGV4dCgnJywgX3RleHRTZXR0aW5ncyk7XG4gICAgX3JlY3QgPSBuZXcgZmFicmljLlJlY3QoX3JlY3RTZXR0aW5ncyk7XG5cbiAgICB0aGlzLmFkZFdpdGhVcGRhdGUoX3JlY3QpLmFkZFdpdGhVcGRhdGUoX3RleHQpO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSB0ZXh0XG4gICAgICogQHJldHVybiB7VGV4dEJ1dHRvbn1cbiAgICAgKi9cbiAgICB0aGlzLnNldFRleHQgPSBmdW5jdGlvbih0ZXh0KSB7XG4gICAgICAgIF90ZXh0LnNldFRleHQoKHRleHQgfHwgJycpLnRvU3RyaW5nKCkpLnNldENvb3JkcygpO1xuXG4gICAgICAgIGlmIChfcmVjdFNldHRpbmdzLmR5bmFtaWNXKSB7XG4gICAgICAgICAgICB0aGlzLndpZHRoID0gX3JlY3Qud2lkdGggPSBfdGV4dC53aWR0aCArIGNvbmZpZy50ZXh0QnV0dG9uLnBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3JlY3RTZXR0aW5ncy5keW5hbWljSCkge1xuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBfcmVjdC5oZWlnaHQgPSBfdGV4dC5oZWlnaHQgKyBjb25maWcudGV4dEJ1dHRvbi5wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0Q29vcmRzKCk7XG4gICAgfTtcblxuICAgIHRoaXMuZ2V0SWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9pZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtCb29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuaXNBY3RpdmUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19hY3RpdmU7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZU1vdXNlRG93bihlKSB7XG4gICAgICAgIHRvZ2dsZUFjdGl2ZVN0eWxlLmNhbGwodGhpcyk7XG4gICAgICAgIF9jYWxsYmFjay5jYWxsKHRoaXMsIGUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9fZ3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuX19ncm91cC5yZW5kZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvZ2dsZUFjdGl2ZVN0eWxlKCkge1xuICAgICAgICBfcmVjdC5zZXRGaWxsKF9yZWN0U2V0dGluZ3NbdGhpcy5pc0FjdGl2ZSgpID8gJ2FjdGl2ZUZpbGwnIDogJ2ZpbGwnXSk7XG4gICAgICAgIF90ZXh0LnNldEZpbGwoX3RleHRTZXR0aW5nc1t0aGlzLmlzQWN0aXZlKCkgPyAnYWN0aXZlRmlsbCcgOiAnZmlsbCddKTtcbiAgICAgICAgdGhpcy5zZXRUZXh0KF90ZXh0U2V0dGluZ3NbdGhpcy5pc0FjdGl2ZSgpID8gJ3RleHRBY3RpdmUnIDogJ3RleHQnXSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNsaWNrID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgX2NhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24oKSB7fTtcbiAgICAgICAgdGhpcy5vbignbW91c2Vkb3duJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIEFzIGluYWN0aXZlIGJ1dHRvbnMgYXJlIHN0aWxsIGNsaWNrYWJsZSwgd2UgZmlyc3QgY2hlY2sgaWYgdGhlIGJ1dHRvbiBpcyBkaXNhYmxlZC5cbiAgICAgICAgICAgIC8vIE9ubHkgdGhlbiB3ZSBzaG91bGQgZG8gc3R1ZmYuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9fYWN0aXZlID0gIXRoaXMuX19hY3RpdmU7XG4gICAgICAgICAgICAgICAgaGFuZGxlTW91c2VEb3duLmNhbGwodGhpcywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0uYmluZCh0aGlzKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICB0aGlzLnNldEFjdGl2ZSA9IGZ1bmN0aW9uIChpc0FjdGl2ZSkge1xuICAgICAgICB0aGlzLl9fYWN0aXZlID0gdHlwZW9mIGlzQWN0aXZlID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiAhIWlzQWN0aXZlO1xuICAgICAgICB0b2dnbGVBY3RpdmVTdHlsZS5jYWxsKHRoaXMpO1xuICAgIH07XG5cbiAgICB0aGlzLnNldERpc2FibGVkID0gZnVuY3Rpb24gKGlzRGlzYWJsZWQpXG4gICAge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgICAgICBfcmVjdC5zZXRGaWxsKF9yZWN0U2V0dGluZ3NbdGhpcy5kaXNhYmxlZCA/ICdkaXNhYmxlZEZpbGwnIDogJ2ZpbGwnXSk7XG4gICAgICAgIF90ZXh0LnNldEZpbGwoX3RleHRTZXR0aW5nc1t0aGlzLmRpc2FibGVkID8gJ2Rpc2FibGVkRmlsbCcgOiAnZmlsbCddKTtcbiAgICB9O1xuXG4gICAgaWYgKF90ZXh0U2V0dGluZ3MudGV4dCkge1xuICAgICAgICB0aGlzLnNldFRleHQoX3RleHRTZXR0aW5ncy50ZXh0KTtcbiAgICB9XG59XG5cblRleHRCdXR0b24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShmYWJyaWMuR3JvdXAucHJvdG90eXBlKTtcblRleHRCdXR0b24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gVGV4dEJ1dHRvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBUZXh0QnV0dG9uO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgRnJhbWVIYW5kbGVyID0gcmVxdWlyZSgnLi9GcmFtZUhhbmRsZXInKTtcbnZhciBHb3JlSGFuZGxlciA9IHJlcXVpcmUoJy4vR29yZUhhbmRsZXInKTtcbnZhciBSdWxlckhhbmRsZXIgPSByZXF1aXJlKCcuL1J1bGVySGFuZGxlcicpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuZnVuY3Rpb24gVmlld3BvcnQoY2FudmFzKSB7XG4gICAgdmFyIF9iZWFtcyA9IFtdO1xuICAgIHZhciBfYm9yZGVyV2lkdGggPSAyO1xuICAgIHZhciBfZGF0YSA9IG51bGw7XG4gICAgdmFyIF9yZWN0O1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdmlld3BvcnQgdG8gcGFnZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFwcGx5KCkge1xuICAgICAgICB2YXIgY3JvcERhdGEgPSBjYW52YXMuZ2V0SW1hZ2VEYXRhKCkuZ2V0Q3JvcERhdGEoKTtcbiAgICAgICAgY2FudmFzLnJlbW92ZShfcmVjdCk7XG5cbiAgICAgICAgX3JlY3QgPSBuZXcgZmFicmljLlJlY3Qoe1xuICAgICAgICAgICAgZXZlbnRlZDogZmFsc2UsXG4gICAgICAgICAgICBmaWxsOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgd2lkdGg6IF9kYXRhLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBfZGF0YS5oZWlnaHQsXG4gICAgICAgICAgICBzdHJva2U6ICcjZmZmJyxcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBjYW52YXMuX190eXBlID09PSAnY2FudmFzJyA/IDAgOiBfYm9yZGVyV2lkdGhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgX3JlY3Qud2lkdGggKz0gX2JvcmRlcldpZHRoO1xuICAgICAgICBfcmVjdC5oZWlnaHQgKz0gX2JvcmRlcldpZHRoO1xuICAgICAgICBfcmVjdC5hZGRUbyhjYW52YXMpLmNlbnRlcigpLnNldENvb3JkcygpO1xuXG4gICAgICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgcG9zaXRpb24gYWZ0ZXIgc2NyZWVucmVzaXplIGFuZCB3aGVuIHRoZVxuICAgICAgICAgICAgLy8gaW1hZ2UgYWxyZWFkeSBoYXMgYmVlbiBjcm9wcGVkIHRvIGEgY2VydGFpbiBwb3NpdGlvbi5cbiAgICAgICAgICAgIHZhciBsZWZ0ID0gX3JlY3QubGVmdCArIF9yZWN0LnN0cm9rZVdpZHRoIC0gKGNhbnZhcy5nZXRJbWFnZSgpLndpZHRoICogY2FudmFzLmdldEltYWdlKCkuc2NhbGVYICogY3JvcERhdGEueCk7XG4gICAgICAgICAgICB2YXIgdG9wID0gX3JlY3QudG9wICsgX3JlY3Quc3Ryb2tlV2lkdGggLSAoY2FudmFzLmdldEltYWdlKCkuaGVpZ2h0ICogY2FudmFzLmdldEltYWdlKCkuc2NhbGVZICogY3JvcERhdGEueSk7XG5cbiAgICAgICAgICAgIGNhbnZhcy5nZXRJbWFnZSgpLnNldCh7IGxlZnQ6IGxlZnQsIHRvcDogdG9wIH0pLnNldENvb3JkcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FudmFzLmdldEltYWdlKCkuY2VudGVyKCkuc2V0Q29vcmRzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW52YXMuZ2V0SW1hZ2UoKS5kcmFnLmVuYWJsZShjYWxjTWluTWF4Qm91bmRzRm9yUmVjdChfcmVjdC5nZXRJbnNpZGVCb3VuZGluZ1JlY3QoKSwgY2FudmFzLmdldEltYWdlKCkpKVxuICAgICAgICBjYW52YXMuZ2V0QXBlcnR1cmVzKCkuYXBwbHkoX2RhdGEuYXhpcywgX3JlY3QuZ2V0Qm91bmRpbmdSZWN0KCkpO1xuXG4gICAgICAgIGlmIChjYW52YXMuX190eXBlICE9PSAnY2FudmFzJykge1xuICAgICAgICAgICAgZHJhd0JlYW1zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZWxmLnNldEZyYW1lKHNlbGYuZ2V0RnJhbWVIYW5kbGVyKCkuZ2V0RnJhbWVUeXBlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FudmFzLmdldERyYWdiYXJzKCkuYXBwbHkoKTtcbiAgICAgICAgLy8gQXBlcnR1cmVzIHNvbWV0aW1lcyBvdmVybGFwcyB0aGUgdmlld3BvcnRzIGJvdW5kaW5nIHJlY3QuXG4gICAgICAgIC8vIFNvbHZlIHRoaXMgYnkgYnJpbmdpbmcgaXQgdG8gdGhlIGZyb250IGFmdGVyIGFwZXJ0dXJlcyBhcmUgYXBwbGllZC5cbiAgICAgICAgX3JlY3QuYnJpbmdUb0Zyb250KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVyIHRoZSBkaWFnb25hbCBsaW5lcyBmcm9tIHZpZXdwb3J0IHRvIGVkZ2Ugb2YgdGhlIGNhbnZhc1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyYXdCZWFtcygpIHtcbiAgICAgICAgX2JlYW1zLmZvckVhY2goZnVuY3Rpb24gKGJlYW0pIHtcbiAgICAgICAgICAgIGNhbnZhcy5yZW1vdmUoYmVhbSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIF9iZWFtcyA9IFtdO1xuXG4gICAgICAgIC8vIFRPUCBMRUZUXG4gICAgICAgIF9iZWFtcy5wdXNoKG5ldyBmYWJyaWMuTGluZShcbiAgICAgICAgICAgIFtfcmVjdC5sZWZ0LCBfcmVjdC50b3AsIF9yZWN0LmxlZnQgLSBfcmVjdC50b3AsIC0xXSwge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogJyNmZmYnLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgICAgICAgICAgfVxuICAgICAgICApKTtcblxuICAgICAgICAvLyBUT1AgUklHSFRcbiAgICAgICAgX2JlYW1zLnB1c2goX2JlYW1zWzBdLmNsb25lKCkuc2V0KHsgZmxpcFg6IHRydWUsIGxlZnQ6IF9yZWN0LmxlZnQgKyBfcmVjdC53aWR0aCB9KSk7XG4gICAgICAgIC8vIEJPVFRPTSBSSUdIVFxuICAgICAgICBfYmVhbXMucHVzaChfYmVhbXNbMV0uY2xvbmUoKS5zZXQoeyBmbGlwWTogdHJ1ZSwgdG9wOiBfcmVjdC50b3AgKyBfcmVjdC5oZWlnaHQgfSkpO1xuICAgICAgICAvLyBCT1RUT00gTEVGVFxuICAgICAgICBfYmVhbXMucHVzaChfYmVhbXNbMF0uY2xvbmUoKS5zZXQoeyBmbGlwWTogdHJ1ZSwgdG9wOiBfcmVjdC50b3AgKyBfcmVjdC5oZWlnaHQgfSkpO1xuXG4gICAgICAgIF9iZWFtcy5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICBjYW52YXMuYWRkKG8pO1xuICAgICAgICAgICAgby5icmluZ1RvRnJvbnQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbiBvYmplY3Qgd2l0aCBtaW4gLyBtYXggdmFsdWVzIGZvciBlYWNoIGF4aXMsIGJhc2VkIG9uIHRoZSBib3VuZHNcbiAgICAgKiBvZiBwYXNzZWQgZmFicmljLlJlY3RcbiAgICAgKiBAcGFyYW0gIHtmYWJyaWMuUmVjdH0gcmVjdFxuICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYWxjTWluTWF4Qm91bmRzRm9yUmVjdChyZWN0LCBpbWcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxlZnQ6IHtcbiAgICAgICAgICAgICAgICBtaW46IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLSAoaW1nLndpZHRoICogaW1nLnNjYWxlWCksXG4gICAgICAgICAgICAgICAgbWF4OiByZWN0LmxlZnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0b3A6IHtcbiAgICAgICAgICAgICAgICBtaW46IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLSAoaW1nLmhlaWdodCAqIGltZy5zY2FsZVkpLFxuICAgICAgICAgICAgICAgIG1heDogcmVjdC50b3BcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcblxuICAgIHRoaXMuZ2V0Qm91bmRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3JlY3QuZ2V0SW5zaWRlQm91bmRpbmdSZWN0KCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge1ZpZXdwb3J0fVxuICAgICAqL1xuICAgIHRoaXMucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChfZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0KF9kYXRhLmRpbS53aWR0aCwgX2RhdGEuZGltLmhlaWdodCwgX2RhdGEuZGltLnVuaXRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtICB7TnVtYmVyfSB3aWR0aFxuICAgICAqIEBwYXJhbSAge051bWJlcn0gaGVpZ2h0XG4gICAgICogQHBhcmFtICB7c3RyaW5nfSB1bml0c1xuICAgICAqIEByZXR1cm4ge1ZpZXdwb3J0fVxuICAgICAqL1xuICAgIHRoaXMuc2V0ID0gZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBvbGREYXRhID0gX2RhdGE7XG5cbiAgICAgICAgX2RhdGEgPSB1dGlsLmNhbGNDcm9wKGNhbnZhcy5nZXRJbWFnZSgpLCB3aWR0aCwgaGVpZ2h0LCB1bml0cyk7XG5cbiAgICAgICAgdmFyIGtlZXBDcm9wcGluZyA9IChvbGREYXRhICYmICF1dGlsLmlzQXNwZWN0Q2hhbmdlZChvbGREYXRhLmRpbS53aWR0aCwgb2xkRGF0YS5kaW0uaGVpZ2h0LCB3aWR0aCwgaGVpZ2h0KSk7XG4gICAgICAgIGlmIChrZWVwQ3JvcHBpbmcpIHtcbiAgICAgICAgICAgIGNhbnZhcy5nZXRJbWFnZURhdGEoKS5zZXRDcm9wRGF0YSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXBwbHkoKTtcbiAgICAgICAgdGhpcy5nZXRHb3JlcygpLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuZ2V0UnVsZXJzKCkucmVzZXQoKTtcblxuICAgICAgICBpZiAoY2FudmFzLmdldEltYWdlKCkuX19jcm9wcGVkICYmICFrZWVwQ3JvcHBpbmcpIHtcbiAgICAgICAgICAgIGNhbnZhcy5nZXRBcGVydHVyZXMoKS5zZXRUcmFuc3BhcmVudCh0cnVlKTtcblxuICAgICAgICAgICAgLy8gVHJpZ2dlciBldmVudCB0byB0ZWxsIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBkcmFnZ2VkLlxuICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignUElFOm5lZWRzLWRyYWdnaW5nJywgeyBheGlzOiBfZGF0YS5heGlzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FudmFzLmdldEJ1dHRvbk1lbnUoKS5icmluZ1RvRnJvbnQoKTtcblxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd9IGZyYW1lVHlwZSB3aGl0ZXxibGFja3xpbWFnZXxub25lXG4gICAgICogQHJldHVybiB7Vmlld3BvcnR9XG4gICAgICovXG4gICAgdGhpcy5zZXRGcmFtZSA9IGZ1bmN0aW9uIChmcmFtZVR5cGUpIHtcbiAgICAgICAgdGhpcy5nZXRGcmFtZUhhbmRsZXIoKS5zZXRGcmFtZXMoZnJhbWVUeXBlKTtcblxuICAgICAgICB2YXIgYnV0dG9ucyA9IGNhbnZhcy5nZXRCdXR0b25NZW51KCkuZ2V0SXRlbXMoKTtcbiAgICAgICAgaWYgKGZyYW1lVHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICBidXR0b25zWzBdLnNldERpc2FibGVkKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYnV0dG9uc1swXS5zZXREaXNhYmxlZChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FudmFzLmdldEJ1dHRvbk1lbnUoKS5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgICBjYW52YXMucmVmcmVzaDNkVmlldygpO1xuICAgIH07XG5cbiAgICB0aGlzLmdldERhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghX2RhdGEpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBkYXRhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9kYXRhO1xuICAgIH07XG5cbiAgICB2YXIgX2ZyYW1lSGFuZGxlciA9IG51bGw7XG5cbiAgICB0aGlzLmdldEZyYW1lSGFuZGxlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF9mcmFtZUhhbmRsZXIgfHwgKF9mcmFtZUhhbmRsZXIgPSBuZXcgRnJhbWVIYW5kbGVyKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRHb3JlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19nb3JlSGFuZGxlciB8fCAodGhpcy5fX2dvcmVIYW5kbGVyID0gbmV3IEdvcmVIYW5kbGVyKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgdGhpcy5nZXRSdWxlcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9fcnVsZXJIYW5kbGVyIHx8ICh0aGlzLl9fcnVsZXJIYW5kbGVyID0gbmV3IFJ1bGVySGFuZGxlcih0aGlzKSk7XG4gICAgfTtcblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFZpZXdwb3J0O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcmFtZXM6IHJlcXVpcmUoJy4vY29uZmlnL2ZyYW1lcycpLFxuICAgIHRleHRCdXR0b246IHJlcXVpcmUoJy4vY29uZmlnL3RleHQtYnV0dG9uJyksXG4gICAgYnV0dG9uTWVudTogcmVxdWlyZSgnLi9jb25maWcvYnV0dG9uLW1lbnUnKSxcbiAgICBydWxlckhhbmRsZTogcmVxdWlyZSgnLi9jb25maWcvcnVsZXItaGFuZGxlJyksXG4gICAgZHJhZ0hhbmRsZTogcmVxdWlyZSgnLi9jb25maWcvZHJhZy1oYW5kbGUnKSxcbiAgICBkcmFnQmFyOiByZXF1aXJlKCcuL2NvbmZpZy9kcmFnLWJhcicpLFxuICAgIHNjcmVlblNpemVzOiByZXF1aXJlKCcuL2NvbmZpZy9zY3JlZW4tc2l6ZXMnKSxcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXG4gICAgY2FudmFzOiB7XG4gICAgICAgIG1hcmdpbjogNSxcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgZmlsbDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgYWN0aXZlRmlsbDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgZGlzYWJsZWRGaWxsOiAnI2ZmZmZmZidcbiAgICAgICAgfSxcbiAgICAgICAgcmVjdDoge1xuICAgICAgICAgICAgZmlsbDogJyMzNDM0MzQnLFxuICAgICAgICAgICAgYWN0aXZlRmlsbDogJyM0OTQ5NDknLFxuICAgICAgICAgICAgZGlzYWJsZWRGaWxsOiAnIzk5OTk5OSdcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgd2FsbHBhcGVyOiB7XG4gICAgICAgIG1hcmdpbjogNSxcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgZmlsbDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgYWN0aXZlRmlsbDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgZGlzYWJsZWRGaWxsOiAnI2ZmZmZmZidcbiAgICAgICAgfSxcbiAgICAgICAgcmVjdDoge1xuICAgICAgICAgICAgZmlsbDogJyMzNDM0MzQnLFxuICAgICAgICAgICAgYWN0aXZlRmlsbDogJyM0OTQ5NDknLFxuICAgICAgICAgICAgZGlzYWJsZWRGaWxsOiAnIzk5OTk5OSdcbiAgICAgICAgfSxcbiAgICB9XG5cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZpbGw6ICcjYmJiYmJiJyxcbiAgICBzaXplOiAyMCxcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHRleHQ6IHtcbiAgICAgICAgZm9udEZhbWlseTogJ2JyZXVlcicsXG4gICAgICAgIGZvbnRTaXplOiAxMixcbiAgICAgICAgZmlsbDogJyNmZmZmZmYnLFxuICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgdG9wOiAyLFxuICAgIH0sXG4gICAgcmVjdDoge1xuICAgICAgICBmaWxsOiAnIzY2NjY2NicsXG4gICAgICAgIGhlaWdodDogMjAsXG4gICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgIH0sXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgZmlsbDogJyMwMDAwMDAnLFxuICAgICAgICBzdHJva2U6ICcjZjMxZmIzJyxcbiAgICAgICAgd2lkdGg6IDEsXG4gICAgICAgIGhlaWdodDogMSxcbiAgICB9LFxuXG4gICAgaW1hZ2U6IHtcbiAgICAgICAgZmlsbDogJ3JnYmEoMCwwLDAsMC4yKScsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgIH0sXG5cbiAgICBibGFjazoge1xuICAgICAgICBmaWxsOiAnIzAwMDAwMCcsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH0sXG5cbiAgICB3aGl0ZToge1xuICAgICAgICBmaWxsOiAnI2ZmZmZmZicsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH0sXG5cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXG4gICAgbGluZTogZnVuY3Rpb24oYXhpcywgYm91bmRzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBldmVudGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHN0cm9rZURhc2hBcnJheTogWzUsIDVdLFxuICAgICAgICAgICAgc3Ryb2tlOiAnIzAwMCcsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMSxcbiAgICAgICAgICAgIHRvcDogYXhpcyA9PT0gJ3gnID8gYm91bmRzLnRvcCArIGJvdW5kcy5oZWlnaHQgLyAyIDogYm91bmRzLnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IGF4aXMgPT09ICd5JyA/IGJvdW5kcy5sZWZ0ICsgYm91bmRzLndpZHRoIC8gMiA6IGJvdW5kcy5sZWZ0XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgdGV4dDoge1xuICAgICAgICBmb250U2l6ZTogMTIsXG4gICAgICAgIHdpZHRoOiA3NSxcbiAgICAgICAgaGVpZ2h0OiAyMCxcbiAgICAgICAgZmlsbDogJyMzM2ZmMzMnLFxuICAgIH0sXG5cbiAgICB4OiBmdW5jdGlvbihsaW5lcywgYm91bmRzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBheGlzOiAnbGVmdCcsXG4gICAgICAgICAgICBtYXJrZXI6IGxpbmVzLnksXG4gICAgICAgICAgICB0b3A6IE1hdGguY2VpbChib3VuZHMudG9wICsgYm91bmRzLmhlaWdodCArIDUpLFxuICAgICAgICAgICAgbGVmdDogbGluZXMueS5sZWZ0LFxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBsb2NrTW92ZW1lbnRZOiB0cnVlLFxuICAgICAgICAgICAgbW92ZUN1cnNvcjogJ2V3LXJlc2l6ZScsXG4gICAgICAgICAgICBob3ZlckN1cnNvcjogJ2V3LXJlc2l6ZScsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHk6IGZ1bmN0aW9uKGxpbmVzLCBib3VuZHMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGF4aXM6ICd0b3AnLFxuICAgICAgICAgICAgbWFya2VyOiBsaW5lcy54LFxuICAgICAgICAgICAgdG9wOiBsaW5lcy54LnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IE1hdGguY2VpbChib3VuZHMubGVmdCArIGJvdW5kcy53aWR0aCArIDUpLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBsb2NrTW92ZW1lbnRYOiB0cnVlLFxuICAgICAgICAgICAgbW92ZUN1cnNvcjogJ25zLXJlc2l6ZScsXG4gICAgICAgICAgICBob3ZlckN1cnNvcjogJ25zLXJlc2l6ZScsXG4gICAgICAgIH1cbiAgICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBtb2JpbGU6IHtcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDc2N1xuICAgIH0sXG4gICAgdGFibGV0OiB7XG4gICAgICAgIG1pbjogNzY4LFxuICAgICAgICBtYXg6IDk4M1xuICAgIH0sXG4gICAgZGVza3RvcDoge1xuICAgICAgICBtaW46IDk4NCxcbiAgICAgICAgbWF4OiAxMzExXG4gICAgfSxcbiAgICBoZDoge1xuICAgICAgICBtaW46IDEzMTIsXG4gICAgICAgIG1heDogOTk5OTlcbiAgICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblxuICAgIHJlY3Q6IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGw6ICcjMzQzNDM0JyxcbiAgICAgICAgICAgIGFjdGl2ZUZpbGw6ICcjNDk0OTQ5JyxcbiAgICAgICAgICAgIGRpc2FibGVkRmlsbDogJyM5OTk5OTknLFxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCB8fCAxLFxuICAgICAgICAgICAgZHluYW1pY1c6ICF3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0IHx8IDEsXG4gICAgICAgICAgICBkeW5hbWljSDogIWhlaWdodCxcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB0ZXh0OiB7XG4gICAgICAgIGZpbGw6ICcjZmZmZmZmJyxcbiAgICAgICAgZm9udEZhbWlseTogJ2JyZXVlcicsXG4gICAgICAgIGZvbnRTaXplOiAxNCxcbiAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgIH0sXG5cbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBwYWRkaW5nOiAyMCxcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBEcmFnZ2FibGUgPSByZXF1aXJlKCcuL0RyYWdnYWJsZScpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuZnVuY3Rpb24gRXh0ZW5kRmFicmljRnVuY3Rpb25hbGl0eSgpIHtcblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGZhYnJpYyBjYW52YXNcbiAgICAkLmV4dGVuZChmYWJyaWMuT2JqZWN0LnByb3RvdHlwZSwge1xuICAgICAgICBjb3JuZXJTaXplOiAwLFxuICAgICAgICBoYXNCb3JkZXJzOiBmYWxzZSxcbiAgICAgICAgaGFzQ29udHJvbHM6IGZhbHNlLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDAsXG4gICAgICAgIGFkZFRvOiBmdW5jdGlvbihjYW52YXMpIHtcbiAgICAgICAgICAgIGNhbnZhcy5hZGQodGhpcyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcbiAgICB9KTtcblxuXG4gICAgdXRpbC5zZXRQcm9wZXJ0aWVzKGZhYnJpYy5JbWFnZS5wcm90b3R5cGUsIHtcbiAgICAgICAgZHJhZzoge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fX2RyYWdnYWJsZSB8fCAodGhpcy5fX2RyYWdnYWJsZSA9IG5ldyBEcmFnZ2FibGUodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkLmV4dGVuZChmYWJyaWMuUmVjdC5wcm90b3R5cGUsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIGlubmVyIGJvdW5kcyBvZiB0aGlzIGZhYnJpYy5SZWN0XG4gICAgICAgICAqIEByZXR1cm4ge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIGdldEluc2lkZUJvdW5kaW5nUmVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgYm91bmRzID0gdGhpcy5nZXRCb3VuZGluZ1JlY3QoKTtcbiAgICAgICAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBib3VuZHMubGVmdCArIHRoaXMuc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgdG9wOiBib3VuZHMudG9wICsgdGhpcy5zdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB3aWR0aDogYm91bmRzLndpZHRoIC0gdGhpcy5zdHJva2VXaWR0aCAqIDIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBib3VuZHMuaGVpZ2h0IC0gdGhpcy5zdHJva2VXaWR0aCAqIDJcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVyblZhbHVlLnJpZ2h0ID0gcmV0dXJuVmFsdWUubGVmdCArIHJldHVyblZhbHVlLndpZHRoO1xuICAgICAgICAgICAgcmV0dXJuVmFsdWUuYm90dG9tID0gcmV0dXJuVmFsdWUudG9wICsgcmV0dXJuVmFsdWUuaGVpZ2h0O1xuXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5taW4gPSB7XG4gICAgICAgICAgICAgICAgbGVmdDogcmV0dXJuVmFsdWUubGVmdCxcbiAgICAgICAgICAgICAgICB0b3A6IHJldHVyblZhbHVlLnRvcFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuVmFsdWUubWF4ID0ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJldHVyblZhbHVlLmxlZnQgKyByZXR1cm5WYWx1ZS53aWR0aCxcbiAgICAgICAgICAgICAgICB0b3A6IHJldHVyblZhbHVlLnRvcCArIHJldHVyblZhbHVlLmhlaWdodFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRXh0ZW5kRmFicmljRnVuY3Rpb25hbGl0eTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cbiAgICBhc3NlcnRLZXlWYWx1ZVBhaXI6IHJlcXVpcmUoJy4vdXRpbHMvYXNzZXJ0LWtleS12YWx1ZS1wYWlyJyksXG4gICAgYXNzZXJ0QmV0d2VlbjogcmVxdWlyZSgnLi91dGlscy9hc3NlcnQtYmV0d2VlbicpLFxuICAgIGNhbGNDcm9wOiByZXF1aXJlKCcuL3V0aWxzL2NhbGMtY3JvcCcpLFxuICAgIHNldFBvc2l0aW9uSW5zaWRlOiByZXF1aXJlKCcuL3V0aWxzL3NldC1wb3NpdGlvbi1pbnNpZGUnKSxcbiAgICBzZXRQcm9wZXJ0aWVzOiByZXF1aXJlKCcuL3V0aWxzL3NldC1wcm9wZXJ0aWVzJyksXG4gICAgdG9nZ2xlRnVsbHNjcmVlbjogcmVxdWlyZSgnLi91dGlscy90b2dnbGUtZnVsbHNjcmVlbicpLFxuICAgIGlzTW9iaWxlOiByZXF1aXJlKCcuL3V0aWxzL2lzLW1vYmlsZScpLFxuICAgIE1vdXNlTWV0cmljczogcmVxdWlyZSgnLi91dGlscy9tb3VzZS1tZXRyaWNzJyksXG4gICAgc3VwcG9ydHNGdWxsc2NyZWVuOiByZXF1aXJlKCcuL3V0aWxzL3N1cHBvcnRzLWZ1bGxzY3JlZW4nKSxcbiAgICBpc0Z1bGxzY3JlZW46IHJlcXVpcmUoJy4vdXRpbHMvaXMtZnVsbHNjcmVlbicpLFxuICAgIGlzQXNwZWN0Q2hhbmdlZDogcmVxdWlyZSgnLi91dGlscy9pcy1hc3BlY3QtY2hhbmdlZCcpLFxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gYXNzZXJ0QmV0d2Vlbih2YWx1ZSwgbWluLCBtYXgpIHtcbiAgICBpZiAodmFsdWUgPCBtaW4pIHtcbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgaWYgKHZhbHVlID4gbWF4KSB7XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NlcnRCZXR3ZWVuO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBhc3NlcnRLZXlWYWx1ZVBhaXIoa2V5LCB2YWx1ZSkge1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIHZhciByZXR1cm5WYWx1ZSA9IHt9O1xuICAgIHJldHVyblZhbHVlW2tleV0gPSB2YWx1ZTtcblxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NlcnRLZXlWYWx1ZVBhaXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQHBhcmFtICB7ZmFicmljLkltYWdlfSBvYmpcbiAqIEBwYXJhbSAge2ludH0gd2lkdGhcbiAqIEBwYXJhbSAge2ludH0gaGVpZ2h0XG4gKiBAcGFyYW0gIHtzdHJpbmd9IHVuaXRzXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiAgICAgICAgICBheGlzOiBTVFJJTkcsXG4gKiAgICAgICAgICBkaW06IE9CSkVDVCggd2lkdGg6IE5VTUJFUiwgaGVpZ2h0OiBOVU1CRVIpLFxuICogICAgICAgICAgd2lkdGg6IE5VTUJFUixcbiAqICAgICAgICAgIGhlaWdodDogTlVNQkVSLFxuICogICAgICAgICAgcHBtbTogTlVNQkVSXG4gKi9cbmZ1bmN0aW9uIGNhbGNDcm9wKG9iaiwgd2lkdGgsIGhlaWdodCwgdW5pdHMpIHtcbiAgICB2YXIgY3JvcFJhdGlvID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgdmFyIG9ialJhdGlvID0gb2JqLndpZHRoIC8gb2JqLmhlaWdodDtcblxuICAgIHZhciByZXR1cm5WYWx1ZSA9IHtcbiAgICAgICAgaW1hZ2U6IG9iaixcbiAgICAgICAgYXhpczogb2JqUmF0aW8gPiBjcm9wUmF0aW8gPyAneCcgOiAneScsXG4gICAgICAgIGRpbToge1xuICAgICAgICAgICAgd2lkdGg6IE51bWJlcih3aWR0aCksXG4gICAgICAgICAgICBoZWlnaHQ6IE51bWJlcihoZWlnaHQpLFxuICAgICAgICAgICAgdW5pdHM6IHVuaXRzXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBvYmoud2lkdGggKiBvYmouc2NhbGVYLFxuICAgICAgICBoZWlnaHQ6IG9iai5oZWlnaHQgKiBvYmouc2NhbGVZLFxuICAgICAgICBvYmplY3RSYXRpbzogb2JqUmF0aW8sXG4gICAgICAgIGNyb3BSYXRpbzogY3JvcFJhdGlvXG4gICAgfTtcblxuICAgIGlmIChvYmpSYXRpbyA+IGNyb3BSYXRpbykge1xuICAgICAgICByZXR1cm5WYWx1ZS53aWR0aCAqPSBjcm9wUmF0aW8gLyBvYmpSYXRpbztcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5WYWx1ZS5oZWlnaHQgLz0gY3JvcFJhdGlvIC8gb2JqUmF0aW87XG4gICAgfVxuXG4gICAgLy8gUGl4ZWxzIHBlciBtaWxsaW1ldGVyXG4gICAgcmV0dXJuVmFsdWUucHBtbSA9IHJldHVyblZhbHVlLndpZHRoIC8gKChyZXR1cm5WYWx1ZS5kaW0ud2lkdGggKiBvYmouc2NhbGVYKSAqIDEwKTtcblxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYWxjQ3JvcDtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gaXNBc3BlY3RDaGFuZ2VkKHgxLCB5MSwgeDIsIHkyKSB7XG4gICAgcmV0dXJuIChNYXRoLmFicyh4MSAvIHkxIC0geDIgLyB5MikgPiAwLjAxKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FzcGVjdENoYW5nZWQ7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGlzRnVsbHNjcmVlbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bGxzY3JlZW47XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGlzTW9iaWxlKCkge1xuICAgIHJldHVybiAkKHdpbmRvdykud2lkdGgoKSA8IDc2ODtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc01vYmlsZTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE1vdXNlTWV0cmljcyA9IHtcbiAgICBwcmV2aW91c01vdXNlRGF0YToge1xuICAgICAgICB4OiBudWxsLFxuICAgICAgICB5OiBudWxsXG4gICAgfSxcblxuICAgIGRlbGV0ZVByZXZpb3VzTW91c2VEYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgTW91c2VNZXRyaWNzLnByZXZpb3VzTW91c2VEYXRhID0ge1xuICAgICAgICAgICAgeDogbnVsbCxcbiAgICAgICAgICAgIHk6IG51bGxcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgc2V0UHJldmlvdXNNb3VzZURhdGE6IGZ1bmN0aW9uKHZhbHVlcykge1xuICAgICAgICBNb3VzZU1ldHJpY3MucHJldmlvdXNNb3VzZURhdGEgPSB7XG4gICAgICAgICAgICB4OiB2YWx1ZXMueCB8fCBudWxsLFxuICAgICAgICAgICAgeTogdmFsdWVzLnkgfHwgbnVsbCxcbiAgICAgICAgfTtcbiAgICB9LFxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBNb3VzZU1ldHJpY3M7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQHBhcmFtICB7ZmFicmljLk9iamVjdH0gb2JqXG4gKiBAcGFyYW0gIHtPYmplY3R9IGJvdW5kc1xuICogQHJldHVybiB7ZmFicmljLk9iamVjdH1cbiAqL1xuZnVuY3Rpb24gc2V0UG9zaXRpb25JbnNpZGUob2JqLCBib3VuZHMpIHtcbiAgICBbJ2xlZnQnLCAndG9wJ10uZm9yRWFjaChmdW5jdGlvbiAodikge1xuICAgICAgICBpZiAob2JqW3ZdIDwgYm91bmRzW3ZdLm1pbikge1xuICAgICAgICAgICAgb2JqLnNldCh2LCBib3VuZHNbdl0ubWluKS5zZXRDb29yZHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvYmpbdl0gPiBib3VuZHNbdl0ubWF4KSB7XG4gICAgICAgICAgICBvYmouc2V0KHYsIGJvdW5kc1t2XS5tYXgpLnNldENvb3JkcygpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRQb3NpdGlvbkluc2lkZTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBAcGFyYW0gIHtPYmplY3R9IG9ialxuICogQHBhcmFtICB7T2JqZWN0fSBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIHNldFByb3BlcnRpZXMob2JqLCBwcm9wZXJ0aWVzKSB7XG4gICAgZm9yICh2YXIgbyBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KG8pKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBvLCBwcm9wZXJ0aWVzW29dKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRQcm9wZXJ0aWVzO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBzdXBwb3J0c0Z1bGxzY3JlZW4oKSB7XG5cbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubW96UmVxdWVzdEZ1bGxTY3JlZW4gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm1zUmVxdWVzdEZ1bGxzY3JlZW47XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdXBwb3J0c0Z1bGxzY3JlZW47XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpc0Z1bGxzY3JlZW4gPSByZXF1aXJlKCcuL2lzLWZ1bGxzY3JlZW4nKTtcbi8qKlxuICogVG9nZ2xlcyB0aGUgZnVsbCBzY3JlZW4gc3RhdGUgZm9yIHBhc3NlZCBET00gb2JqZWN0XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbG1cbiAqL1xuZnVuY3Rpb24gdG9nZ2xlRnVsbHNjcmVlbihlbGVtKSB7XG4gICAgaWYgKGlzRnVsbHNjcmVlbigpKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5leGl0RnVsbHNjcmVlbikge1xuICAgICAgICAgICAgZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubW96Q2FuY2VsRnVsbFNjcmVlbikge1xuICAgICAgICAgICAgZG9jdW1lbnQubW96Q2FuY2VsRnVsbFNjcmVlbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LndlYmtpdENhbmNlbEZ1bGxTY3JlZW4pIHtcbiAgICAgICAgICAgIGRvY3VtZW50LndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgICAgZWxlbS5yZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbikge1xuICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCk7XG4gICAgfSBlbHNlIGlmIChlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBlbGVtLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9nZ2xlRnVsbHNjcmVlbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuKGZ1bmN0aW9uKCkge1xuXG4gICAgLyoqXG4gICAgICogRmFicmljIGZ1bmN0aW9uYWxpdHkgaXMgZXh0ZW5kZWQgd2l0aCBzb21lIGN1c3RvbSBmdW5jdGlvbmFsaXR5LiBUaGlzIGlzIGRvbmUgYmVmb3JlXG4gICAgICogd2UgZG8gYW55dGhpbmcgZWxzZS5cbiAgICAgKi9cbiAgICByZXF1aXJlKCcuL2luY2x1ZGVzL2V4dGVuZC1mYWJyaWMtZnVuY3Rpb25hbGl0eScpKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbWFnZUVkaXRvciBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgYWxsIGZpbGVzLiBIZXJlIHRoZSBpbWFnZSBlZGl0b3IgaXMgY3JlYXRlZCBhbmRcbiAgICAgKiBpdCByZWNlaXZlcyBhdHRyaWJ1dGVzIGZyb20gdGhlIGluaXRpYWxpc2F0aW9uLiBBcyB0aGlzIGlzIGRvbmUgZnJvbSBvdXRzaWRlIG9mIHRoaXMgZmlsZSxcbiAgICAgKiB0aGUgSW1hZ2VFZGl0b3Igc2hvdWxkIGJlIGF2YWlsYWJsZSBvbiBnbG9iYWxseS5cbiAgICAgKi9cbiAgICB3aW5kb3cuSW1hZ2VFZGl0b3IgPSByZXF1aXJlKCcuL2luY2x1ZGVzL0ltYWdlRWRpdG9yJyk7XG5cbn0oKSk7XG4iXSwicHJlRXhpc3RpbmdDb21tZW50IjoiLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW01dlpHVmZiVzlrZFd4bGN5OWljbTkzYzJWeUxYQmhZMnN2WDNCeVpXeDFaR1V1YW5NaUxDSnpjbU12YW5NdmFXNWpiSFZrWlhNdk0yUklZVzVrYkdWeUxtcHpJaXdpYzNKakwycHpMMmx1WTJ4MVpHVnpMMEZ3WlhKMGRYSmxTR0Z1Wkd4bGNpNXFjeUlzSW5OeVl5OXFjeTlwYm1Oc2RXUmxjeTlDZFhSMGIyNU5aVzUxTG1weklpd2ljM0pqTDJwekwybHVZMngxWkdWekwwTmhiblpoY3k1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OUVjbUZuU0dGdVpHeGxMbXB6SWl3aWMzSmpMMnB6TDJsdVkyeDFaR1Z6TDBSeVlXZGlZWEpJWVc1a2JHVnlMbXB6SWl3aWMzSmpMMnB6TDJsdVkyeDFaR1Z6TDBSeVlXZG5ZV0pzWlM1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OUdjbUZ0WlVoaGJtUnNaWEl1YW5NaUxDSnpjbU12YW5NdmFXNWpiSFZrWlhNdlIyOXlaVWhoYm1Sc1pYSXVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12U1cxaFoyVkVZWFJoU0dGdVpHeGxjaTVxY3lJc0luTnlZeTlxY3k5cGJtTnNkV1JsY3k5SmJXRm5aVVZrYVhSdmNpNXFjeUlzSW5OeVl5OXFjeTlwYm1Oc2RXUmxjeTlOYVhKeWIzSklZVzVrYkdWeUxtcHpJaXdpYzNKakwycHpMMmx1WTJ4MVpHVnpMMUoxYkdWeVNHRnVaR3hsY2k1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OVVaWGgwUW5WMGRHOXVMbXB6SWl3aWMzSmpMMnB6TDJsdVkyeDFaR1Z6TDFacFpYZHdiM0owTG1weklpd2ljM0pqTDJwekwybHVZMngxWkdWekwyTnZibVpwWnk1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OWpiMjVtYVdjdlluVjBkRzl1TFcxbGJuVXVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12WTI5dVptbG5MMlJ5WVdjdFltRnlMbXB6SWl3aWMzSmpMMnB6TDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTlrY21GbkxXaGhibVJzWlM1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OWpiMjVtYVdjdlpuSmhiV1Z6TG1weklpd2ljM0pqTDJwekwybHVZMngxWkdWekwyTnZibVpwWnk5eWRXeGxjaTFvWVc1a2JHVXVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12WTI5dVptbG5MM05qY21WbGJpMXphWHBsY3k1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OWpiMjVtYVdjdmRHVjRkQzFpZFhSMGIyNHVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12WlhoMFpXNWtMV1poWW5KcFl5MW1kVzVqZEdsdmJtRnNhWFI1TG1weklpd2ljM0pqTDJwekwybHVZMngxWkdWekwzVjBhV3d1YW5NaUxDSnpjbU12YW5NdmFXNWpiSFZrWlhNdmRYUnBiSE12WVhOelpYSjBMV0psZEhkbFpXNHVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12ZFhScGJITXZZWE56WlhKMExXdGxlUzEyWVd4MVpTMXdZV2x5TG1weklpd2ljM0pqTDJwekwybHVZMngxWkdWekwzVjBhV3h6TDJOaGJHTXRZM0p2Y0M1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OTFkR2xzY3k5cGN5MWhjM0JsWTNRdFkyaGhibWRsWkM1cWN5SXNJbk55WXk5cWN5OXBibU5zZFdSbGN5OTFkR2xzY3k5cGN5MW1kV3hzYzJOeVpXVnVMbXB6SWl3aWMzSmpMMnB6TDJsdVkyeDFaR1Z6TDNWMGFXeHpMMmx6TFcxdlltbHNaUzVxY3lJc0luTnlZeTlxY3k5cGJtTnNkV1JsY3k5MWRHbHNjeTl0YjNWelpTMXRaWFJ5YVdOekxtcHpJaXdpYzNKakwycHpMMmx1WTJ4MVpHVnpMM1YwYVd4ekwzTmxkQzF3YjNOcGRHbHZiaTFwYm5OcFpHVXVhbk1pTENKemNtTXZhbk12YVc1amJIVmtaWE12ZFhScGJITXZjMlYwTFhCeWIzQmxjblJwWlhNdWFuTWlMQ0p6Y21NdmFuTXZhVzVqYkhWa1pYTXZkWFJwYkhNdmMzVndjRzl5ZEhNdFpuVnNiSE5qY21WbGJpNXFjeUlzSW5OeVl5OXFjeTlwYm1Oc2RXUmxjeTkxZEdsc2N5OTBiMmRuYkdVdFpuVnNiSE5qY21WbGJpNXFjeUlzSW5OeVl5OXFjeTl0WVdsdUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTzBGRFFVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVTTNSMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlF6VkdRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVONlNrRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVTnFVMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVU4wU0VFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUXpkSVFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTJwRVFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRemxKUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlEzUkZRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUczdRVU42UkVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlEzSktRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTNwQ1FUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkRNVWhCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGRGJraEJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVONFRVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTFoQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTJwRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVOT1FUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRMmhDUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVTXpRa0U3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlF5OURRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGRGNFSkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHM3UVVNM1FrRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZETDBSQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkRhRUpCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN08wRkRZa0U3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTJSQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRemREUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CT3p0QlExQkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZEVUVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVTlFRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVRzN1FVTjRRa0U3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZEY2tKQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPenRCUTJaQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRMVJCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEJRMnBEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVNJc0ltWnBiR1VpT2lKblpXNWxjbUYwWldRdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lLR1oxYm1OMGFXOXVJR1VvZEN4dUxISXBlMloxYm1OMGFXOXVJSE1vYnl4MUtYdHBaaWdoYmx0dlhTbDdhV1lvSVhSYmIxMHBlM1poY2lCaFBYUjVjR1Z2WmlCeVpYRjFhWEpsUFQxY0ltWjFibU4wYVc5dVhDSW1KbkpsY1hWcGNtVTdhV1lvSVhVbUptRXBjbVYwZFhKdUlHRW9ieXdoTUNrN2FXWW9hU2x5WlhSMWNtNGdhU2h2TENFd0tUdDJZWElnWmoxdVpYY2dSWEp5YjNJb1hDSkRZVzV1YjNRZ1ptbHVaQ0J0YjJSMWJHVWdKMXdpSzI4clhDSW5YQ0lwTzNSb2NtOTNJR1l1WTI5a1pUMWNJazFQUkZWTVJWOU9UMVJmUms5VlRrUmNJaXhtZlhaaGNpQnNQVzViYjEwOWUyVjRjRzl5ZEhNNmUzMTlPM1JiYjExYk1GMHVZMkZzYkNoc0xtVjRjRzl5ZEhNc1puVnVZM1JwYjI0b1pTbDdkbUZ5SUc0OWRGdHZYVnN4WFZ0bFhUdHlaWFIxY200Z2N5aHVQMjQ2WlNsOUxHd3NiQzVsZUhCdmNuUnpMR1VzZEN4dUxISXBmWEpsZEhWeWJpQnVXMjlkTG1WNGNHOXlkSE45ZG1GeUlHazlkSGx3Wlc5bUlISmxjWFZwY21VOVBWd2lablZ1WTNScGIyNWNJaVltY21WeGRXbHlaVHRtYjNJb2RtRnlJRzg5TUR0dlBISXViR1Z1WjNSb08yOHJLeWx6S0hKYmIxMHBPM0psZEhWeWJpQnpmU2tpTENJbmRYTmxJSE4wY21samRDYzdYRzVjYm5aaGNpQjFkR2xzSUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzSnlrN1hHNWNiaThxS2x4dUlDb2dTR0Z1Wkd4bGN5QXpaQ0JwYldGblpTQnZaaUJqWVc1MllYTWdjSEp2WkhWamRITXVYRzRnS2lCQWNHRnlZVzBnZTJOaGJuWmhjMzFjYmlBcUwxeHVablZ1WTNScGIyNGdWR2h5WldWRVNHRnVaR3hsY2loallXNTJZWE1wSUh0Y2JpQWdJQ0IyWVhJZ1gyOTJaWEpzWVhrZ1BTQnVaWGNnWm1GaWNtbGpMa2R5YjNWd0tDazdYRzRnSUNBZ2RtRnlJRjlwYldGblpUdGNibHh1SUNBZ0lHWjFibU4wYVc5dUlHbHVhWFFvS1NCN1hHNGdJQ0FnSUNBZ0lGOXZkbVZ5YkdGNVhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YzJWMEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjJhWE5wWW14bE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pXWjBPaUF3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtRmtaRmRwZEdoVmNHUmhkR1VvYm1WM0lHWmhZbkpwWXk1U1pXTjBLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F2THlCWGFXUjBhQ0JwY3lCdFlXUmxJR0pwWjJkbGNpQmhjeUIwYUdseklIZHZjbXR6SUdKbGRIUmxjaUIzYVhSb0lISmxjMmw2YVc1bklIUm9aU0JsWkdsMGIzSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjNhV1IwYURvZ1kyRnVkbUZ6TG5kcFpIUm9JQ29nTWl4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1pXbG5hSFE2SUdOaGJuWmhjeTVvWldsbmFIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkRzl3T2lBd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeGxablE2SURBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNiRG9nWTJGdWRtRnpMbUpoWTJ0bmNtOTFibVJEYjJ4dmNpeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwcEtUdGNibHh1SUNBZ0lDQWdJQ0JqWVc1MllYTXVZV1JrS0Y5dmRtVnliR0Y1S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwYm1sMEtDazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJFYVhOaFlteGxjeUIwYUdVZ00yUWdhVzFoWjJVZ1lua2djbVZ0YjNacGJtY2dkbWx6YVdKcGJHbDBlVnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMVJvY21WbFJFaGhibVJzWlhKOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NWthWE5oWW14bElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCZmIzWmxjbXhoZVM1elpYUldhWE5wWW14bEtHWmhiSE5sS1M1allXNTJZWE11Y21WemFYcGxLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkZibUZpYkdWeklIUm9aU0F6WkNCcGJXRm5aU0JpZVNCelpYUjBhVzVuSUhSb1pTQjNhV1IwYUNCaGJtUWdkbWx6YVdKcGJHbDBlU0J2WmlCMGFHVWdiM1psY214aGVTQmhibVFnYlc5MmFXNW5JR1ZzWlcxbGJuUnpJSGRvYVdOb1hHNGdJQ0FnSUNvZ2JtVmxaSE1nZEc4Z1ltVWdkbWx6YVdKc1pTQjBieUIwYUdVZ1puSnZiblF1WEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3VkdoeVpXVkVTR0Z1Wkd4bGNuMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbVZ1WVdKc1pTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ1gyOTJaWEpzWVhsY2JpQWdJQ0FnSUNBZ0lDQWdJQzV6WlhRb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIZHBaSFJvT2lCallXNTJZWE11ZDJsa2RHZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkbWx6YVdKc1pUb2dkSEoxWlZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU2t1WW5KcGJtZFViMFp5YjI1MEtDazdYRzVjYmlBZ0lDQWdJQ0FnWTJGdWRtRnpMbWRsZEVKMWRIUnZiazFsYm5Vb0tTNWljbWx1WjFSdlJuSnZiblFvS1R0Y2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6TG5KbGJtUmxja0ZzYkNncE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUTJobFkydHpJR2xtSUROa0lHMXZaR1VnYVhNZ1pXNWhZbXhsWkM5MmFYTnBZbXhsTGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0aWIyOXNaV0Z1ZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWFYTkZibUZpYkdWa0lEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWDI5MlpYSnNZWGt1ZG1semFXSnNaVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WbWNtVnphR1Z6SUhSb1pTQnBiV0ZuWlM0Z1ZHaHBjeUJwY3lCdGIzTjBiSGtnWkc5dVpTQjFjRzl1SUhKbGMybDZaU0J2WmlCMGFHVWdkMmx1Wkc5M1hHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXlaV1p5WlhOb1NXMWhaMlVnUFNCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdYMjkyWlhKc1lYa3VjMlYwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRwWkhSb09pQmpZVzUyWVhNdWQybGtkR2dzWEc0Z0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdVlYQndiSGxKYldGblpTZ3BPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUFvVW1VcFlXUmtjeUIwYUdVZ2JtVjNMMlY0YVhOMGFXNW5JR2x0WVdkbElIZHBkR2dnYm1WM0lHTnZibVpwWjNWeVlYUnBiMjRnZEc4Z2RHaGxJRzkyWlhKc1lYa3VYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHBiV2Q5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1aGNIQnNlVWx0WVdkbElEMGdablZ1WTNScGIyNG9hVzFuS1NCN1hHNGdJQ0FnSUNBZ0lHbHRaeUE5SUdsdFp5QjhmQ0JmYVcxaFoyVTdYRzVjYmlBZ0lDQWdJQ0FnWDI5MlpYSnNZWGxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXlaVzF2ZG1Vb1gybHRZV2RsS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbUZrWkNoZmFXMWhaMlVnUFNCallXNTJZWE11WjJWMFVtVnphWHBsWkVsdFlXZGxLR2x0WnlrcE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQlRaWFJ6SUhSb1pTQnBiV0ZuWlNCaGJtUWdaVzVoWW14bGN5QXpaQ0J0YjJSbExseHVJQ0FnSUNBcUlFQndZWEpoYlNCN2FXMW5mVnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMVJvY21WbFJFaGhibVJzWlhKOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXpaWFJKYldGblpTQTlJR1oxYm1OMGFXOXVJQ2hwYldjcElIdGNiaUFnSUNBZ0lDQWdhVzFuTG5ObGRDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QkpiV0ZuWlNCemFHOTFiR1FnWW1VZ1lXSnZkWFFnTWpCd2VDQnNiM2RsY2lCMGFHRnVJSFJvWlNCalpXNTBaWElnS0dKbFkyRjFjMlVnYjJZZ2RHaGxJR0oxZEhSdmJuTXBYRzRnSUNBZ0lDQWdJQ0FnSUNCMGIzQTZJREl3TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM0pwWjJsdVdEb2dKMk5sYm5SbGNpY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNtbG5hVzVaT2lBblkyVnVkR1Z5Snl4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQ0FnZEdocGN5NWhjSEJzZVVsdFlXZGxLR2x0WnlrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVZ1WVdKc1pTZ3BPMXh1SUNBZ0lIMDdYRzVjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQlVhSEpsWlVSSVlXNWtiR1Z5TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNHZLaXBjYmlBcUlFRndaWEowZFhKbFNHRnVaR3hsY2lCMFlXdGxjeUJqWVhKbElHOW1JSFJvWlNCaVlYSnpJR0Z5YjNWdVpDQjBhR1VnYVcxaFoyVWdkRzhnYzJodmR5QjNhR0YwSUdGeVpXRWdhR0Z6SUdKbFpXNHZkMmxzYkNCaVpTQmpjbTl3Y0dWa0xseHVJQ29nUUhCaGNtRnRJSHRqWVc1MllYTjlYRzRnS2k5Y2JtWjFibU4wYVc5dUlFRndaWEowZFhKbFNHRnVaR3hsY2loallXNTJZWE1wSUh0Y2JpQWdJQ0IyWVhJZ1gybDBaVzF6SUQwZ2UzZzZJRnRkTENCNU9pQmJYWDA3WEc1Y2JpQWdJQ0JtZFc1amRHbHZiaUJwYm1sMEtDa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1ltOTFibVJ6SUQwZ1kyRnVkbUZ6TzF4dUlDQWdJQ0FnSUNCMllYSWdlRkpsWTNRZ1BTQnVaWGNnWm1GaWNtbGpMbEpsWTNRb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJsa2RHZzZJR0p2ZFc1a2N5NTNhV1IwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2hsYVdkb2REb2dZbTkxYm1SekxtaGxhV2RvZENBdklESXNYRzRnSUNBZ0lDQWdJQ0FnSUNCbWFXeHNPaUJqWVc1MllYTXVZbUZqYTJkeWIzVnVaRU52Ykc5eUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNCaFkybDBlVG9nTUM0M0xGeHVJQ0FnSUNBZ0lDQjlLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdlVkpsWTNRZ1BTQjRVbVZqZEM1amJHOXVaU2dwTG5ObGRDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nWW05MWJtUnpMbmRwWkhSb0lDOGdNaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHaGxhV2RvZERvZ1ltOTFibVJ6TG1obGFXZG9kRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ0lDQmZhWFJsYlhNdWVDQTlJRnRkTG1OdmJtTmhkQ2hiZUZKbFkzUXNJSGhTWldOMExtTnNiMjVsS0NsZEtUdGNiaUFnSUNBZ0lDQWdYMmwwWlcxekxuazlJRnRkTG1OdmJtTmhkQ2hiZVZKbFkzUXNJSGxTWldOMExtTnNiMjVsS0NsZEtUdGNibHh1SUNBZ0lDQWdJQ0JiWFM1amIyNWpZWFFvWDJsMFpXMXpMbmdzSUY5cGRHVnRjeTU1S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCallXNTJZWE11WVdSa0tHOHBPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6TG5KbGJtUmxja0ZzYkNncE8xeHVJQ0FnSUgxY2JpQWdJQ0JwYm1sMEtDazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJCY0hCc2FXVnpJR052Ym1acFozVnlZWFJwYjI0Z2RHOGdkR2hsSUdGd1pYSjBkWEpsY3lCaGNHVnlkSFZ5WlhNZ2IyNGdkR2hsSUhacFpYZHdiM0owWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR0Y0YVhOY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNacFpYZHdiM0owZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdVlYQndiSGtnUFNCbWRXNWpkR2x2YmlBb1lYaHBjeXdnZG1sbGQzQnZjblFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSQmNHVnlkSFZ5WlhNb1lYaHBjeWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYnk1MmFYTnBZbXhsSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQWdJSFpoY2lCaFkzUnBkbVVnUFNCMGFHbHpMbWRsZEVGd1pYSjBkWEpsY3loaGVHbHpJRDA5UFNBbmVDY2dQeUFuZVNjZ09pQW5lQ2NwTzF4dVhHNGdJQ0FnSUNBZ0lHRmpkR2wyWlM1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdkxuWnBjMmxpYkdVZ1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0JoWTNScGRtVmJNRjB1ZDJsa2RHZzlJR0ZqZEdsMlpWc3hYUzUzYVdSMGFDQTlJR05oYm5aaGN5NTNhV1IwYUR0Y2JpQWdJQ0FnSUNBZ1lXTjBhWFpsV3pCZExtaGxhV2RvZENBOUlHRmpkR2wyWlZzeFhTNW9aV2xuYUhRZ1BTQmpZVzUyWVhNdWFHVnBaMmgwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoZUdseklEMDlQU0FuZVNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGamRHbDJaVnN3WFM1MGIzQWdQU0IyYVdWM2NHOXlkQzUwYjNBZ0xTQmhZM1JwZG1WYk1GMHVhR1ZwWjJoMElDc2dNQzQxTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVhabFd6RmRMblJ2Y0NBOUlIWnBaWGR3YjNKMExuUnZjQ0FySUhacFpYZHdiM0owTG1obGFXZG9kQ0F0SURBdU5UdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGamRHbDJaVnN3WFM1c1pXWjBJRDBnZG1sbGQzQnZjblF1YkdWbWRDQXRJR0ZqZEdsMlpWc3dYUzUzYVdSMGFDQXJJREF1TlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0ZqZEdsMlpWc3hYUzVzWldaMElEMGdkbWxsZDNCdmNuUXViR1ZtZENBcklIWnBaWGR3YjNKMExuZHBaSFJvSUMwZ01DNDFPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSQmNHVnlkSFZ5WlhNb0tTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHZLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZMbk5sZEVOdmIzSmtjeWdwTzF4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0JqWVc1MllYTXVjbVZ1WkdWeVFXeHNLQ2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGRITWdkR2hsSUdGd1pYSjBkWEpsY3lCdmJpQnpjR1ZqYVdacFpXUWdZWGhwY3k0Z1NXWWdibThnWVhocGN5QnBjeUJ3Y205MmFXUmxaQ3dnWW05MGFDQjRJR0Z1WkNCNUlHRnlaU0J5WlhSMWNtNWxaQzVjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdZWGhwYzF4dUlDQWdJQ0FxSUVCeVpYUjFjbTV6SUh0QmNuSmhlWDFjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1kbGRFRndaWEowZFhKbGN5QTlJR1oxYm1OMGFXOXVJQ2hoZUdsektTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhlR2x6SUQ4Z1gybDBaVzF6VzJGNGFYTmRJRG9nVzEwdVkyOXVZMkYwS0Y5cGRHVnRjeTU0TENCZmFYUmxiWE11ZVNrN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGTmxkSE1nZEhKaGJuTndZWEpsYm1ONUlHOW1JSFJvWlNCaGNHVnlkSFZ5WlhNZ1pHVndaVzVrYVc1bklHOXVJSFJvWlNCamNtOXdJSE4wWVhSMWMxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1lYQndiSGxjYmlBZ0lDQWdLaUJBY21WMGRYSnVjeUI3UVhCbGNuUjFjbVZJWVc1a2JHVnlmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11YzJWMFZISmhibk53WVhKbGJuUWdQU0JtZFc1amRHbHZiaUFvWVhCd2JIa3BJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW5aWFJCY0dWeWRIVnlaWE1vS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdkxtOXdZV05wZEhrZ1BTQmhjSEJzZVNBL0lEQXVOeUE2SURFN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUdOaGJuWmhjeTV5Wlc1a1pYSkJiR3dvS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZUdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCQmNHVnlkSFZ5WlVoaGJtUnNaWEk3WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JuWmhjaUJVWlhoMFFuVjBkRzl1SUQwZ2NtVnhkV2x5WlNnbkxpOVVaWGgwUW5WMGRHOXVKeWs3WEc1MllYSWdZMjl1Wm1sbklEMGdjbVZ4ZFdseVpTZ25MaTlqYjI1bWFXY25LVHRjYm5aaGNpQjFkR2xzSUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzSnlrN1hHNWNiaThxS2x4dUlDb2dRM0psWVhSbGN5QjBhR1VnYldWdWRTQjNhWFJvSUhSbGVIUXRZblYwZEc5dWN5QnpaWFIwYVc1bmN5QndjbTkyYVdSbFpDNGdVMlYwZEdsdVozTWdkMmxzYkNCdmRtVnljbWxrWlZ4dUlDb2dkR2hsSUdSbFptRjFiSFJ6SUdaeWIyMGdkR2hsSUdOdmJtWnBaeUJtYVd4bGN5NWNiaUFxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0JqWVc1MllYTmNiaUFxSUVCd1lYSmhiU0I3VDJKcVpXTjBQWDBnYzJWMGRHbHVaM05jYmlBcUwxeHVablZ1WTNScGIyNGdRblYwZEc5dVRXVnVkU2hqWVc1MllYTXNJSE5sZEhScGJtZHpLU0I3WEc0Z0lDQWdkbUZ5SUY5MFpYaDBRblYwZEc5dWN5QTlJRnRkTzF4dUlDQWdJSFpoY2lCZmQybGtkR2dnUFNBd08xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRMkZzWTNWc1lYUmxjeUIwYUdVZ2QybGtkR2dnYjJZZ1lXeHNJR052Ym5SaGFXNWxaQ0JwZEdWdGMxeHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwNTFiV0psY24xY2JpQWdJQ0FnS2k5Y2JpQWdJQ0JtZFc1amRHbHZiaUJ6WlhSWGFXUjBhQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJSE4wWVhKMFYybGtkR2dnUFNBd08xeHVJQ0FnSUNBZ0lDQmZkR1Y0ZEVKMWRIUnZibk11Wm05eVJXRmphQ2htZFc1amRHbHZiaWgwWlhoMFFuVjBkRzl1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEdGeWRGZHBaSFJvSUNzOUlIUmxlSFJDZFhSMGIyNHVkMmxrZEdnN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0JmZDJsa2RHZ2dQU0J6ZEdGeWRGZHBaSFJvSUNzOUlITmxkSFJwYm1kekxtMWhjbWRwYmlBcUlDaGZkR1Y0ZEVKMWRIUnZibk11YkdWdVozUm9JQzBnTVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FXUmtjeUJwZEdWdGN5QjBieUIwYUdVZ1luVjBkRzl1TFcxbGJuVXVYRzRnSUNBZ0lDb2dRSEJoY21GdElDQjdVM1J5YVc1bmZTQjBaWGgwWEc0Z0lDQWdJQ29nUUhCaGNtRnRJQ0I3Um5WdVkzUnBiMjU5SUdOaGJHeGlZV05yWEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3UW5WMGRHOXVUV1Z1ZFgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtRmtaRWwwWlcwZ1BTQm1kVzVqZEdsdmJpaHBaQ3dnZEdWNGRDd2dZMkZzYkdKaFkyc3NJR2x6UVdOMGFYWmxLU0I3WEc0Z0lDQWdJQ0FnSUY5MFpYaDBRblYwZEc5dWN5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdibVYzSUZSbGVIUkNkWFIwYjI0b2FXUXNJSFJsZUhRc0lITmxkSFJwYm1kekxDQnBjMEZqZEdsMlpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXViMjVEYkdsamF5aGpZV3hzWW1GamF5bGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVjMlYwS0h0ZlgyZHliM1Z3T2lCMGFHbHpmU2xjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUW5KcGJtZHpJSFJvWlNCaWRYUjBiMjV6SUhSdklIUm9aU0JtY205dWRDQnBibk5wWkdVZ2RHaGxJR05oYm5aaGMxeHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwSjFkSFJ2YmsxbGJuVjlYRzRnSUNBZ0lDb3ZYRzRnSUNBZ2RHaHBjeTVpY21sdVoxUnZSbkp2Ym5RZ1BTQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnWDNSbGVIUkNkWFIwYjI1ekxtWnZja1ZoWTJnb1puVnVZM1JwYjI0b2RHVjRkRUoxZEhSdmJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVjRkRUoxZEhSdmJpNWljbWx1WjFSdlJuSnZiblFvS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCSFpYUnpJR0ZzYkNCaWRYUjBiMjV6SUdsdWMybGtaU0IwYUdVZ2JXVnVkUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHRCY25KaGVYMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbWRsZEVsMFpXMXpJRDBnWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCZmRHVjRkRUoxZEhSdmJuTTdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRWRsZEhNZ2RHaGxJR1oxYkd3Z2QybGtkR2dnYjJZZ2RHaGxJR0oxZEhSdmJrMWxiblV1WEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3VG5WdFltVnlmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11WjJWMFYybGtkR2dnUFNCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGOTNhV1IwYUR0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1UyVjBjeUIwYUdVZ1luVjBkRzl1SUhkcGRHZ2dhV1E5WW5WMGRHOXVTV1FnZEc4Z1lXTjBhWFpsTDI1dmRDQmhZM1JwZG1VZ2JXOWtaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11YzJWMFFuVjBkRzl1UVdOMGFYWmxJRDBnWm5WdVkzUnBiMjRvWW5WMGRHOXVTV1FzSUdselFXTjBhWFpsS1NCN1hHNGdJQ0FnSUNBZ0lGOTBaWGgwUW5WMGRHOXVjeTVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hpZFhSMGIyNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hpZFhSMGIyNHVaMlYwU1dRb0tTQTlQVDBnWW5WMGRHOXVTV1FwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaWRYUjBiMjR1YzJWMFFXTjBhWFpsS0dselFXTjBhWFpsS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGTmxkSE1nZEdobElHSjFkSFJ2YmlCM2FYUm9JR2xrUFdKMWRIUnZia2xrSUhSdklHUnBjMkZpYkdWa0wyVnVZV0pzWldRZ2JXOWtaVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11YzJWMFFuVjBkRzl1UkdsellXSnNaV1FnUFNCbWRXNWpkR2x2YmloaWRYUjBiMjVKWkN3Z2FYTkVhWE5oWW14bFpDa2dlMXh1SUNBZ0lDQWdJQ0JmZEdWNGRFSjFkSFJ2Ym5NdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb1luVjBkRzl1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1luVjBkRzl1TG1kbGRFbGtLQ2tnUFQwOUlHSjFkSFJ2Ymtsa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZblYwZEc5dUxuTmxkRVJwYzJGaWJHVmtLR2x6UkdsellXSnNaV1FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1NHbGtaWE1nZEdobElHSjFkSFJ2Ym5OY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtaHBaR1VnUFNCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdYM1JsZUhSQ2RYUjBiMjV6TG1admNrVmhZMmdvWm5WdVkzUnBiMjRvZEdWNGRFSjFkSFJ2YmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGRFSjFkSFJ2Ymk1elpYUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3WVdOcGRIazZJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdsellXSnNaV1E2SUhSeWRXVmNiaUFnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJUYUc5M2N5QmhiR3dnZEdobElHSjFkSFJ2Ym5OY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxuTm9iM2NnUFNCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNBZ0lDQWdYM1JsZUhSQ2RYUjBiMjV6TG1admNrVmhZMmdvWm5WdVkzUnBiMjRvZEdWNGRFSjFkSFJ2YmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGRFSjFkSFJ2Ymk1elpYUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzl3WVdOcGRIazZJREVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWkdsellXSnNaV1E2SUdaaGJITmxYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WallXeGpkV3hoZEdVZ1ltOTFibVJoY21sbGN5QmhibVFnWVdSa0lHRnNiQ0JwZEdWdGN5QjBieUJqWVc1MllYTWdhV1lnY21WeGRXbHlaV1JjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHRDZFhSMGIyNU5aVzUxZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWNtVnVaR1Z5SUQwZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSE5sZEZkcFpIUm9LQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RtRnlJSE4wWVhKMElEMGdZMkZ1ZG1GekxuZHBaSFJvSUM4Z01pQXRJSFJvYVhNdVoyVjBWMmxrZEdnb0tTQXZJREk3WEc0Z0lDQWdJQ0FnSUhaaGNpQmpkWEp5VUc5eklEMGdUV0YwYUM1eWIzVnVaQ2h6ZEdGeWRDazdYRzVjYmlBZ0lDQWdJQ0FnWDNSbGVIUkNkWFIwYjI1ekxtWnZja1ZoWTJnb1puVnVZM1JwYjI0b2RHVjRkRUoxZEhSdmJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVjRkRUoxZEhSdmJseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDNXpaWFFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiM0E2SURFd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWldaME9pQmpkWEp5VUc5elhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXVjMlYwUTI5dmNtUnpLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNnaGRHVjRkRUoxZEhSdmJpNWpZVzUyWVhNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBaWGgwUW5WMGRHOXVMbUZrWkZSdktHTmhiblpoY3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpkWEp5VUc5eklDczlJRTFoZEdndWNtOTFibVFvZEdWNGRFSjFkSFJ2Ymk1M2FXUjBhQ0FySUhObGRIUnBibWR6TG0xaGNtZHBiaWs3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQzh2SUVScGMyRmliR1VnYlc5MmFXNW5JRzltSUhSbGVIUXRZblYwZEc5dWMxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWNGRFSjFkSFJ2Ymk1c2IyTnJUVzkyWlcxbGJuUllJRDBnZEdWNGRFSjFkSFJ2Ymk1c2IyTnJUVzkyWlcxbGJuUlpJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6TG5KbGJtUmxja0ZzYkNncE8xeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyaHZkeWdwTzF4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMDdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1FuVjBkRzl1VFdWdWRUdGNiaUlzSWlkMWMyVWdjM1J5YVdOMEp6dGNibHh1ZG1GeUlHTnZibVpwWnlBOUlISmxjWFZwY21Vb0p5NHZZMjl1Wm1sbkp5azdYRzUyWVhJZ2RYUnBiQ0E5SUhKbGNYVnBjbVVvSnk0dmRYUnBiQ2NwTzF4dWRtRnlJRUZ3WlhKMGRYSmxTR0Z1Wkd4bGNpQTlJSEpsY1hWcGNtVW9KeTR2UVhCbGNuUjFjbVZJWVc1a2JHVnlKeWs3WEc1MllYSWdRblYwZEc5dVRXVnVkU0E5SUhKbGNYVnBjbVVvSnk0dlFuVjBkRzl1VFdWdWRTY3BPMXh1ZG1GeUlFUnlZV2RpWVhKSVlXNWtiR1Z5SUQwZ2NtVnhkV2x5WlNnbkxpOUVjbUZuWW1GeVNHRnVaR3hsY2ljcE8xeHVkbUZ5SUZacFpYZHdiM0owSUQwZ2NtVnhkV2x5WlNnbkxpOVdhV1YzY0c5eWRDY3BPMXh1ZG1GeUlGUm9jbVZsUkVoaGJtUnNaWElnUFNCeVpYRjFhWEpsS0NjdUx6TmtTR0Z1Wkd4bGNpY3BPMXh1ZG1GeUlFMXBjbkp2Y2toaGJtUnNaWElnUFNCeVpYRjFhWEpsS0NjdUwwMXBjbkp2Y2toaGJtUnNaWEluS1R0Y2JuWmhjaUJKYldGblpVUmhkR0ZJWVc1a2JHVnlJRDBnY21WeGRXbHlaU2duTGk5SmJXRm5aVVJoZEdGSVlXNWtiR1Z5SnlrN1hHNWNiblpoY2lBa1pHOWpkVzFsYm5RZ1BTQWtLR1J2WTNWdFpXNTBLVHRjYmx4dUx5b3FYRzRnS2lCRFlXNTJZWE1nYVhNZ2RYTnBibWNnWm1GaWNtbGpJSFJ2SUdOeVpXRjBaU0IwYUdVZ1kyRnVkbUZ6SUdGdVpDQnBibWwwYVdGMFpTQnBkQ0IzYVhSb0lHbDBjeUJwYm1sMGFXRnNJSE5sZEhScGJtZHpMbHh1SUNvZ1NYUWdhWE1nWVd4emJ5Qm9aWEpsSUcxdmMzUWdiMllnZEdobElHbHVkR1Z5WVdOMGFXOXVJR2x6SUhSaGEybHVaeUJ3YkdGalpTNGdRVzVrSUcxdmMzUWdabWxzWlhNZ1lYSmxJR052Ym01bFkzUmxaQ0IwYnlCMGFHbHpJR1pwYkdVdVhHNGdLaUJHWlM0Z1oyVjBSSEpoWjJKaGNuTWdiV1YwYUc5a0lHTmhiaUJpWlNCallXeHNaV1FnWm5KdmJTQnRiM04wSUhCc1lXTmxjeUJoY3lCMGFHVWdRMkZ1ZG1GeklHTnNZWE56SUdseklHRjJZV2xzWVdKc1pTQnBiaUJ0YjNOMElIQnNZV05sY3k1Y2JpQXFMMXh1ZG1GeUlFTmhiblpoY3lBOUlHWmhZbkpwWXk1MWRHbHNMbU55WldGMFpVTnNZWE56S0daaFluSnBZeTVEWVc1MllYTXNJSHRjYmlBZ0lDQnBibWwwYVdGc2FYcGxPaUJtZFc1amRHbHZiaUFvYVdRc0lHUnBiV1Z1YzJsdmJuTXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpZV3hzVTNWd1pYSW9KMmx1YVhScFlXeHBlbVVuTENCcFpDd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pXNWhZbXhsVW1WMGFXNWhVMk5oYkdsdVp6b2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYm1SbGNrOXVRV1JrVW1WdGIzWmxPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFRnNiRzkzSUhSdmRXTm9JSE5qY205c2JHbHVaeUJ2YmlCMGIzVmphQzFrWlhacFkyVnpJR3hoY21kbGNpQjBhR0Z1SUcxdlltbHNaU0J6WTNKbFpXNGdjMmw2WlhNdVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoYkd4dmQxUnZkV05vVTJOeWIyeHNhVzVuT2lBaGRYUnBiQzVwYzAxdlltbHNaU2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM1JoZEdWbWRXdzZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWW1GamEyZHliM1Z1WkVOdmJHOXlPaUFuSTJReVpESmtNaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQndjbVZ6WlhKMlpVOWlhbVZqZEZOMFlXTnJhVzVuT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnNaV04wYVc5dU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRwWkhSb09pQmthVzFsYm5OcGIyNXpMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBPaUJrYVcxbGJuTnBiMjV6TG1obGFXZG9kRnh1SUNBZ0lDQWdJQ0I5S1R0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJGZG1WdWRHaGhibVJzWlhJZ1ptOXlJRzF2ZFhObGRYQWdaWFpsYm5SeklHOXVJSFJvWlNCM2FHOXNaU0JqWVc1MllYTXVYRzRnSUNBZ0lDQWdJQzh2SUZSb2FYTWdjMmh2ZFd4a0lHSmxJSEpsZDNKcGRIUmxiaUJoSUdKcGRDQjBieUJ1YjNRZ2FHRjJaU0IwYUdGMElHMWhibmtnWlhabGJuUnpJR0ZtZEdWeUlIUm9aU0JwYldGblpTQm9ZWE1nWW1WbGJpQmpjbTl3Y0dWa0xseHVJQ0FnSUNBZ0lDQjBhR2x6TG05dUtDZHRiM1Z6WlRwMWNDY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoMGFHbHpMbWRsZEVsdFlXZGxLQ2t1WDE5a2NtRm5aMlZrSUNZbUlDRjBhR2x6TG1kbGRETmtTR0Z1Wkd4bGNpZ3BMbWx6Ulc1aFlteGxaQ2dwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSQmNHVnlkSFZ5WlhNb0tTNXpaWFJVY21GdWMzQmhjbVZ1ZENobVlXeHpaU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbWRsZEVsdFlXZGxSR0YwWVNncExuTmxkRU55YjNCRVlYUmhLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRjFkR2xzTG1selRXOWlhV3hsS0NrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NWxibUZpYkdWVFkzSnZiR3dvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0x5OGdWSEpwWjJkbGNpQmxkbVZ1ZENCMGJ5QjBaV3hzSUhSb1pTQnBiV0ZuWlNCb1lYTWdZbVZsYmlCa2NtRm5aMlZrTGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNSa2IyTjFiV1Z1ZEM1MGNtbG5aMlZ5S0NkUVNVVTZaSEpoWjJkbFpDY3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXlaVzVrWlhKQmJHd29LVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUhKbGMybDZaVG9nWm5WdVkzUnBiMjRnS0dGeVozTXBJSHRjYmlBZ0lDQWdJQ0FnWVhKbmN5QTlJR0Z5WjNNZ2ZId2dleUJvWldsbmFIUTZJSFJvYVhNdWFHVnBaMmgwTENCM2FXUjBhRG9nZEdocGN5NTNhV1IwYUgwN1hHNWNiaUFnSUNBZ0lDQWdkR2hwY3k1elpYUklaV2xuYUhRb1lYSm5jeTVvWldsbmFIUXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxkRmRwWkhSb0tHRnlaM011ZDJsa2RHZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtZGxkRUoxZEhSdmJrMWxiblVvS1M1eVpXNWtaWElvS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFJvYVhNdVoyVjBNMlJJWVc1a2JHVnlLQ2t1YVhORmJtRmliR1ZrS0NrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVaMlYwTTJSSVlXNWtiR1Z5S0NrdWNtVm1jbVZ6YUVsdFlXZGxLQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG5KbFpuSmxjMmhKYldGblpTaDBhR2x6TG1kbGRGSmxjMmw2WldSSmJXRm5aU2gwYUdsekxtZGxkRWx0WVdkbEtDa3BLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdkR2hwY3k1blpYUldhV1YzY0c5eWRDZ3BMbkpsYzJWMEtDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaVzVrVkc5Q1lXTnJLSFJvYVhNdVoyVjBTVzFoWjJVb0tTazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBSSEpoWjJKaGNuTW9LUzV5WlhObGRGQnZjMmwwYVc5dUtDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5UVd4c0tDazdYRzRnSUNBZ2ZTeGNibHh1SUNBZ0lHUnBjMkZpYkdWVFkzSnZiR3c2SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGRDaDdYRzRnSUNBZ0lDQWdJQ0FnSUNCaGJHeHZkMVJ2ZFdOb1UyTnliMnhzYVc1bk9pQm1ZV3h6WlZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmU3hjYmx4dUlDQWdJR1Z1WVdKc1pWTmpjbTlzYkRvZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVjBLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnNiRzkzVkc5MVkyaFRZM0p2Ykd4cGJtYzZJSFJ5ZFdWY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDBzWEc1Y2JpQWdJQ0JuWlhRelpFaGhibVJzWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TGw5Zk0yUklZVzVrYkdWeUlIeDhYRzRnSUNBZ0lDQWdJQ0FnS0hSb2FYTXVYMTh6WkVoaGJtUnNaWElnUFNCdVpYY2dWR2h5WldWRVNHRnVaR3hsY2loMGFHbHpLU2s3WEc0Z0lDQWdmU3hjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTFOMGNtbHVaMzFjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFF6WkZWeWJEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdhVzFoWjJWRVlYUmhJRDBnZEdocGN5NW5aWFJKYldGblpVUmhkR0VvS1M1blpYUkVZWFJoS0NrN1hHNGdJQ0FnSUNBZ0lIWmhjaUJ3WVhKaGJYTWdQU0JiWEc0Z0lDQWdJQ0FnSUNBZ0lDQW5hRDAwTURBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSjJOaGJuWmhjMXRsWkdkbFhUMG5JQ3NnYVcxaFoyVkVZWFJoTG1Wa1oyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBblkzSnZjRnQzWFQwbklDc2dhVzFoWjJWRVlYUmhMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSjJOeWIzQmJhRjA5SnlBcklHbHRZV2RsUkdGMFlTNW9aV2xuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FuWTNKdmNGdDRYVDBuSUNzZ2FXMWhaMlZFWVhSaExuZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNBblkzSnZjRnQ1WFQwbklDc2dhVzFoWjJWRVlYUmhMbmtzWEc0Z0lDQWdJQ0FnSUYwN1hHNWNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNXNiMmNvY0dGeVlXMXpLVnh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHBiV0ZuWlVSaGRHRXViV2x5Y205eVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhjbUZ0Y3k1d2RYTm9LQ2R0YVhKeWIzSTlNU2NwTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWMFNXMWhaMlVvS1M1ZlgzVnliQzV5WlhCc1lXTmxLQzljWEQ5b1BWeGNaQ3NrTHl3Z0p6OG5LU0FySUhCaGNtRnRjeTVxYjJsdUtDY21KeWs3WEc0Z0lDQWdmU3hjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTFOMGNtbHVaMzFjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFJJYVdkb1VtVnpiMngxZEdsdmJsVnliRG9nWm5WdVkzUnBiMjRnS0hWeWJDd2dkMmxrZEdnc0lHaGxhV2RvZENrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnYVcxaFoyVkVZWFJoSUQwZ2RHaHBjeTVuWlhSSmJXRm5aVVJoZEdFb0tTNW5aWFJFWVhSaEtDazdYRzRnSUNBZ0lDQWdJSFpoY2lCdVpYZFZjbXc3WEc1Y2JpQWdJQ0FnSUNBZ2RtRnlJSEJoY21GdGN5QTlJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDZG9QVEV3TURBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSjJOaGJuWmhjMXRsWkdkbFhUMG5JQ3NnYVcxaFoyVkVZWFJoTG1Wa1oyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNBblkzSnZjRnQzWFQwbklDc2dhVzFoWjJWRVlYUmhMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSjJOeWIzQmJhRjA5SnlBcklHbHRZV2RsUkdGMFlTNW9aV2xuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FuWTNKdmNGdDRYVDBuSUNzZ2FXMWhaMlZFWVhSaExuZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNBblkzSnZjRnQ1WFQwbklDc2dhVzFoWjJWRVlYUmhMbmtzWEc0Z0lDQWdJQ0FnSUYwN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dsdFlXZGxSR0YwWVM1dGFYSnliM0psWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dGeVlXMXpMbkIxYzJnb0oyMXBjbkp2Y2oweEp5azdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1blpYUXpaRWhoYm1Sc1pYSW9LUzVwYzBWdVlXSnNaV1FvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WM1ZYSnNJRDBnZEdocGN5NW5aWFJKYldGblpTZ3BMbDlmZFhKc0xuSmxjR3hoWTJVb0wxeGNQMmc5WEZ4a0t5UXZMQ0FuUHljcElDc2djR0Z5WVcxekxtcHZhVzRvSnlZbktUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhWeWJDNXlaWEJzWVdObEtDOWNYRDlvUFZ4Y1pDc2tMeXdnSno4bktTQXJJSEJoY21GdGN5NXFiMmx1S0NjbUp5azdYRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYZFZjbXdnUFNCMGFHbHpMbWRsZEVsdFlXZGxLQ2t1WDE5MWNtd2dQU0IxY213N1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbXh2WnlnbmRYSnNPaWNzSUc1bGQxVnliQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaFluSnBZeTVKYldGblpTNW1jbTl0VlZKTUtHVnVZMjlrWlZWU1NTaHVaWGRWY213cExDQm1kVzVqZEdsdmJpQW9hVzFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuTmxkRWx0WVdkbEtHbHRaeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJwYldjdVgxOTFjbXdvYm1WM1ZYSnNLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR2x0Wnk1elpXNWtWRzlDWVdOcktDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QmpMbU55YjNBb2UzZHBaSFJvT2lBeE1EQXNJR2hsYVdkb2REb2dNVEF3ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCakxuSmxjMmw2WlNoN2QybGtkR2c2SUhkcFpIUm9MQ0JvWldsbmFIUTZJR2hsYVdkb2RIMHBPMXh1SUNBZ0lDQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0FnSUgwc1hHNWNiaUFnSUNCblpYUkJjR1Z5ZEhWeVpYTTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMTloY0dWeWRIVnlaV2hoYm1Sc1pYSWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDBhR2x6TGw5ZllYQmxjblIxY21Wb1lXNWtiR1Z5SUQwZ2JtVjNJRUZ3WlhKMGRYSmxTR0Z1Wkd4bGNpaDBhR2x6S1NrN1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FISmxkSFZ5Ym5NZ2UwUnlZV2RpWVhKSVlXNWtiR1Z5ZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR2RsZEVSeVlXZGlZWEp6T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TGw5ZlpISmhaMkpoY25NZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNoMGFHbHpMbDlmWkhKaFoySmhjbk1nUFNCdVpYY2dSSEpoWjJKaGNraGhibVJzWlhJb2RHaHBjeWtwTzF4dUlDQWdJSDBzWEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0bVlXSnlhV011U1cxaFoyVjlYRzRnSUNBZ0lDb3ZYRzRnSUNBZ1oyVjBTVzFoWjJVNklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgxOXBiV0ZuWlR0Y2JpQWdJQ0I5TEZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN1RXbHljbTl5U0dGdVpHeGxjbjFjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFJOYVhKeWIzSTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMTl0YVhKeWIzSWdmSHhjYmlBZ0lDQWdJQ0FnSUNBZ0lDaDBhR2x6TGw5ZmJXbHljbTl5SUQwZ2JtVjNJRTFwY25KdmNraGhibVJzWlhJb2RHaHBjeTVuWlhSSmJXRm5aU2dwS1NrN1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwMXBjbkp2Y2toaGJtUnNaWEo5WEc0Z0lDQWdJQ292WEc0Z0lDQWdaMlYwU1cxaFoyVkVZWFJoT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TGw5ZmFXMWhaMlZFWVhSaElIeDhYRzRnSUNBZ0lDQWdJQ0FnSUNBb2RHaHBjeTVmWDJsdFlXZGxSR0YwWVNBOUlHNWxkeUJKYldGblpVUmhkR0ZJWVc1a2JHVnlLSFJvYVhNdVoyVjBTVzFoWjJVb0tTa3BPMXh1SUNBZ0lIMHNYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHRXYVdWM2NHOXlkSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQm5aWFJXYVdWM2NHOXlkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWDNacFpYZHdiM0owSUh4OFhHNGdJQ0FnSUNBZ0lDQWdJQ0FvZEdocGN5NWZYM1pwWlhkd2IzSjBJRDBnYm1WM0lGWnBaWGR3YjNKMEtIUm9hWE1wS1R0Y2JpQWdJQ0I5TEZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1IyVjBjeUIwYUdVZ2JXVnVkU0JtYjNJZ2RHaHBjeUJwYm5OMFlXNWpaVnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNXpJSHRDZFhSMGIyNU5aVzUxZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR2RsZEVKMWRIUnZiazFsYm5VNklHWjFibU4wYVc5dUlDaHpaWFIwYVc1bmN5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lYUm9hWE11WDE5aWRYUjBiMjVOWlc1MUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdaR1ZtWVhWc2RITWdQU0JqYjI1bWFXY3VZblYwZEc5dVRXVnVkVnQwYUdsekxsOWZkSGx3WlYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxsOWZZblYwZEc5dVRXVnVkU0E5SUc1bGR5QkNkWFIwYjI1TlpXNTFLSFJvYVhNc0lDUXVaWGgwWlc1a0tIdDlMQ0JrWldaaGRXeDBjeXdnYzJWMGRHbHVaM01wS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVmWDJKMWRIUnZiazFsYm5VN1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGSmxiRzloWkhNZ2RHaGxJRE5FSUhacFpYY3NJR2xtSUdsMElHbHpJSEJ5WlhObGJuUmNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdERZVzUyWVhOOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnY21WbWNtVnphRE5rVm1sbGR6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9kR2hwY3k1blpYUXpaRWhoYm1Sc1pYSW9LUzVwYzBWdVlXSnNaV1FvS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NTBiMmRuYkdVelJDaDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3UTJGdWRtRnpmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lISmxiVzkyWlVsdFlXZGxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doZEdocGN5NWZYMmx0WVdkbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpXMXZkbVVvZEdocGN5NWZYMmx0WVdkbEtUdGNiaUFnSUNCOUxGeHVYRzRnSUNBZ2NtVm1jbVZ6YUVsdFlXZGxPaUJtZFc1amRHbHZiaWhwYldjcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1ZlgybHRZV2RsSUQwZ2FXMW5PMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0I5TEZ4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUNCN1ptRmljbWxqTGtsdFlXZGxmU0JwYldkY2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0RFlXNTJZWE45WEc0Z0lDQWdJQ292WEc0Z0lDQWdjMlYwU1cxaFoyVTZJR1oxYm1OMGFXOXVJQ2hwYldjcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXMXZkbVZKYldGblpTZ3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOWZhVzFoWjJVZ1BTQnBiV2M3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYMTlwYldGblpTNWZYMlJ5WVdkblpXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1ZlgybHRZV2RsTGw5ZlkzSnZjSEJsWkNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbDlmYVcxaFoyVXVZV1JrVkc4b2RHaHBjeWt1WTJWdWRHVnlLQ2t1YjI0b0oyMXZkWE5sWkc5M2JpY3NJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2x0Wnk1allXNTJZWE11WjJWMFFYQmxjblIxY21WektDa3VjMlYwVkhKaGJuTndZWEpsYm5Rb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUgwcExuTmxkRU52YjNKa2N5Z3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtZGxkRlpwWlhkd2IzSjBLQ2t1Y21WelpYUW9LVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlN4Y2JseHVJQ0FnSUdkbGRGSmxjMmw2WldSSmJXRm5aVG9nWm5WdVkzUnBiMjRvYVcxbktTQjdYRzRnSUNBZ0lDQWdJQzh2SUVOaGJHTjFiR0YwWlNCdFlYaElaV2xuYUhRZ1lXNWtJRzFoZUZkcFpIUm9JRzltSUhSb1pTQXpaQ0JwYldGblpWeHVJQ0FnSUNBZ0lDQXZMeUJoYm1RZ2MyTmhiR1VnZEdobElHbHRZV2RsSUdGalkyOXlhVzVuSUhSdklIUm9iM05sSUhaaGJIVmxjMXh1SUNBZ0lDQWdJQ0IyWVhJZ2JXRjRTR1ZwWjJoMElEMGdkR2hwY3k1blpYUklaV2xuYUhRb0tTQXRJREV3TUR0Y2JpQWdJQ0FnSUNBZ2RtRnlJRzFoZUZkcFpIUm9JRDBnZEdocGN5NW5aWFJYYVdSMGFDZ3BJQzBnTVRBd08xeHVYRzRnSUNBZ0lDQWdJR2x0Wnk1elkyRnNaVlJ2U0dWcFoyaDBLRzFoZUVobGFXZG9kQ0E4SUdsdFp5NW9aV2xuYUhRZ1B5QnRZWGhJWldsbmFIUWdPaUJwYldjdWFHVnBaMmgwS1R0Y2JpQWdJQ0FnSUNBZ2FXMW5Mbk5qWVd4bFZHOVhhV1IwYUNodFlYaFhhV1IwYUNBOElDaHBiV2N1ZDJsa2RHZ2dLaUJwYldjdWMyTmhiR1ZZS1NBL0lHMWhlRmRwWkhSb0lEb2dhVzFuTG5kcFpIUm9JQ29nYVcxbkxuTmpZV3hsV0NrN1hHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHbHRaenRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdkRzluWjJ4bE0wUTZJR1oxYm1OMGFXOXVJQ2h6YUc5M1FYTXpaQ2tnZTF4dVhHNGdJQ0FnSUNBZ0lIUm9hWE11WjJWMFFuVjBkRzl1VFdWdWRTZ3BMbk5sZEVKMWRIUnZia0ZqZEdsMlpTZ25kRzluWjJ4bE0yUW5MQ0J6YUc5M1FYTXpaQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z6YUc5M1FYTXpaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WjJWME0yUklZVzVrYkdWeUtDa3VaR2x6WVdKc1pTZ3BPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0pHUnZZM1Z0Wlc1MExuUnlhV2RuWlhJb0oxQkpSVHBwYldGblpTMXpkR0Z5ZEMxc2IyRmtKeWs3WEc1Y2JpQWdJQ0FnSUNBZ0pDNWhhbUY0S0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFZ5YkRvZ2RHaHBjeTVuWlhRelpGVnliQ2dwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZM0p2YzNORWIyMWhhVzQ2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSWtoRlFVUmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhZMmhsT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0I5S1M1a2IyNWxLR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabUZpY21sakxrbHRZV2RsTG1aeWIyMVZVa3dvWlc1amIyUmxWVkpKS0hSb2FYTXVaMlYwTTJSVmNtd29LU2tzSUdaMWJtTjBhVzl1SUNocGJXY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lXbHRaeTVmWld4bGJXVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWtaRzlqZFcxbGJuUXVkSEpwWjJkbGNpZ25VRWxGT21sdFlXZGxMV1Z5Y205eUxXeHZZV1FuS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVoyVjBNMlJJWVc1a2JHVnlLQ2t1YzJWMFNXMWhaMlVvYVcxbktUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWtaRzlqZFcxbGJuUXVkSEpwWjJkbGNpZ25VRWxGT21sdFlXZGxMV1Z1WkMxc2IyRmtKeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQWdJQ0FnSUNCOUxtSnBibVFvZEdocGN5a3BPMXh1SUNBZ0lIMHNYRzU5S1R0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQkRZVzUyWVhNN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNiblpoY2lCamIyNW1hV2NnUFNCeVpYRjFhWEpsS0NjdUwyTnZibVpwWnljcE8xeHVkbUZ5SUhWMGFXd2dQU0J5WlhGMWFYSmxLQ2N1TDNWMGFXd25LVHRjYmx4dWRtRnlJRVJ5WVdkSVlXNWtiR1VnUFNCbWRXNWpkR2x2YmlBb2FHRnVaR3hsY2lrZ2UxeHVJQ0FnSUhaaGNpQmZZM1Z5Y21WdWRFRjRhWE03WEc0Z0lDQWdkbUZ5SUY5a2NtRm5TR0Z1Wkd4bE8xeHVJQ0FnSUhaaGNpQmZiVzkyWldSSVlXNWtiR1U3WEc1Y2JpQWdJQ0F2THlCRmRtVnVkQ0JrWldOc1lYSmhkR2x2Ym5OY2JpQWdJQ0IyWVhJZ1pYWmxiblJ6SUQwZ2UxeHVJQ0FnSUNBZ0lDQnRiM1Z6WlVSdmQyNDZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRjlrY21GblNHRnVaR3hsSUQwZ2RISjFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdYMk4xY25KbGJuUkJlR2x6SUQwZ2RHaHBjeTVoZUdsek8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdGdVpHeGxjaTVqWVc1MllYTXVaMlYwU1cxaFoyVW9LUzUwY21sbloyVnlLQ2R0YjNWelpXUnZkMjRuS1R0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdiVzkxYzJWVmNEb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0NGZlpISmhaMGhoYm1Sc1pTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmZiVzkyWldSSVlXNWtiR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBa0tHUnZZM1Z0Wlc1MEtTNTBjbWxuWjJWeUtDZFFTVVU2WkhKaFoySmhjaTFqYkdsamF5Y3NJSHNnWVhocGN6b2dYMk4xY25KbGJuUkJlR2x6SUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JmWkhKaFowaGhibVJzWlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdYMjF2ZG1Wa1NHRnVaR3hsSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZZM1Z5Y21WdWRFRjRhWE1nUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RYUnBiQzVOYjNWelpVMWxkSEpwWTNNdVpHVnNaWFJsVUhKbGRtbHZkWE5OYjNWelpVUmhkR0VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2hoYm1Sc1pYSXVZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VkSEpwWjJkbGNpZ25iVzkxYzJWMWNDY3BPMXh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCdGIzVnpaVTF2ZG1VNklHWjFibU4wYVc5dUlDaGxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVY5a2NtRm5TR0Z1Wkd4bEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0F2THlCWFpTZHlaU0IxYzJsdVp5QmhJSEJ2YkhsbWFXeHNJSFJ2SUdOaGJHTjFiR0YwWlNCdGIzVmtaUzkwYjNWamFDQnRiM1psYldWdWRDQnBaaUIwYUdVZ1luSnZkM05sY2k5a1pYWnBZMlZjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJR1J2WlhNZ2JtOTBJSE4xY0hCdmNuUWdiVzkyWlcxbGJuUllMMjF2ZG1WdFpXNTBXUzVjYmlBZ0lDQWdJQ0FnSUNBZ0lIWmhjaUJ3Y21WMmFXOTFjMDF2ZFhObFJHRjBZU0E5SUhWMGFXd3VUVzkxYzJWTlpYUnlhV056TG5CeVpYWnBiM1Z6VFc5MWMyVkVZWFJoTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkbUZ5SUcxdmRtVnRaVzUwSUQwZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIZzZJQ2R0YjNabGJXVnVkRmduSUdsdUlHVXVaU0EvSUdVdVpTNXRiM1psYldWdWRGZ2dPaUFvY0hKbGRtbHZkWE5OYjNWelpVUmhkR0V1ZUNBL0lHVXVaUzV3WVdkbFdDQXRJSEJ5WlhacGIzVnpUVzkxYzJWRVlYUmhMbmdnT2lBd0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjVPaUFuYlc5MlpXMWxiblJaSnlCcGJpQmxMbVVnUHlCbExtVXViVzkyWlcxbGJuUlpJRG9nS0hCeVpYWnBiM1Z6VFc5MWMyVkVZWFJoTG5rZ1B5QmxMbVV1Y0dGblpWa2dMU0J3Y21WMmFXOTFjMDF2ZFhObFJHRjBZUzU1SURvZ01DbGNiaUFnSUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IxZEdsc0xrMXZkWE5sVFdWMGNtbGpjeTV6WlhSUWNtVjJhVzkxYzAxdmRYTmxSR0YwWVNoN2VEb2daUzVsTG5CaFoyVllMQ0I1T2lCbExtVXVjR0ZuWlZsOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUY5dGIzWmxaRWhoYm1Sc1pTQTlJSFJ5ZFdVN1hHNWNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaGZZM1Z5Y21WdWRFRjRhWE1nUFQwOUlDZDRKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdoaGJtUnNaWEl1WTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1YkdWbWRDQXRQU0J0YjNabGJXVnVkQzU0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm9ZVzVrYkdWeUxtTmhiblpoY3k1blpYUkpiV0ZuWlNncExuUnZjQ0F0UFNCdGIzWmxiV1Z1ZEM1NU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVkhKcFoyZGxjaUJ0YjNacGJtY2dabTl5SUdsdFlXZGxMQ0IwYnlCemRHRjVJSGRwZEdocGJpQmliM1Z1WkhOY2JpQWdJQ0FnSUNBZ0lDQWdJR2hoYm1Sc1pYSXVZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VjMlYwUTI5dmNtUnpLQ2t1ZEhKcFoyZGxjaWduYlc5MmFXNW5KeWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm9ZVzVrYkdWeUxtTmhiblpoY3k1eVpXNWtaWEpCYkd3b0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMDdYRzVjYmlBZ0lDQm1kVzVqZEdsdmJpQm5aWFJTWldOMEtIUmxlSFFzSUhkcFpIUm9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQjBlSFFnUFNCdVpYY2dabUZpY21sakxsUmxlSFFvZEdWNGRDd2dZMjl1Wm1sbkxtUnlZV2RJWVc1a2JHVXVkR1Y0ZENrN1hHNGdJQ0FnSUNBZ0lIWmhjaUJ5WldOMElEMGdibVYzSUdaaFluSnBZeTVTWldOMEtDUXVaWGgwWlc1a0tIdDlMQ0JqYjI1bWFXY3VaSEpoWjBoaGJtUnNaUzV5WldOMExDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nZDJsa2RHZ3NYRzRnSUNBZ0lDQWdJSDBwS1R0Y2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJR1poWW5KcFl5NUhjbTkxY0NoYmNtVmpkQ3dnZEhoMFhTa3VjMlYwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1YyWlc1MFpXUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG1kbGRFTmhiblpoY3lBOUlHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR2hoYm1Sc1pYSXVZMkZ1ZG1Gek8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCMGFHbHpMbWRsZEVoaGJtUnNaWE1nUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHaHBjeTVmWDJoaGJtUnNaWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCYlhTNWpiMjVqWVhRb2RHaHBjeTVmWDJoaGJtUnNaWE11ZUN3Z2RHaHBjeTVmWDJoaGJtUnNaWE11ZVNrN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhSb2FYTXVjMlYwU0dGdVpHeGxVRzl6YVhScGIyNGdQU0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmWDJoaGJtUnNaWE11ZVM1elpYUW9lMnhsWm5RNklHaGhibVJzWlhJdVoyVjBWSEpoWTJ0ektDa3VlUzVzWldaMGZTa3VjMlYwUTI5dmNtUnpLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYMTlvWVc1a2JHVnpMbmd1YzJWMEtIdDBiM0E2SUdoaGJtUnNaWEl1WjJWMFZISmhZMnR6S0NrdWVDNTBiM0I5S1M1elpYUkRiMjl5WkhNb0tUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE03WEc0Z0lDQWdmVHRjYmx4dUlDQWdJSFJvYVhNdWFXNXBkQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUhacFpYZHdiM0owUkdGMFlTQTlJSFJvYVhNdVoyVjBRMkZ1ZG1GektDa3VaMlYwVm1sbGQzQnZjblFvS1M1blpYUkVZWFJoS0NrN1hHNGdJQ0FnSUNBZ0lIWmhjaUIwY21GamEzTWdQU0JvWVc1a2JHVnlMbWRsZEZSeVlXTnJjeWdwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxsOWZhR0Z1Wkd4bGN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSRFlXNTJZWE1vS1M1eVpXMXZkbVVvZEdocGN5NWZYMmhoYm1Sc1pYTXVlQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR2x6TG1kbGRFTmhiblpoY3lncExuSmxiVzkyWlNoMGFHbHpMbDlmYUdGdVpHeGxjeTU1S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdVgxOW9ZVzVrYkdWeklEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VEb2daMlYwVW1WamRDaDJhV1YzY0c5eWRFUmhkR0V1WkdsdExuZHBaSFJvSUNzZ0p5QW5JQ3NnZG1sbGQzQnZjblJFWVhSaExtUnBiUzUxYm1sMGN5d2dkbWxsZDNCdmNuUkVZWFJoTG5kcFpIUm9LU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIazZJR2RsZEZKbFkzUW9kbWxsZDNCdmNuUkVZWFJoTG1ScGJTNW9aV2xuYUhRZ0t5QW5JQ2NnS3lCMmFXVjNjRzl5ZEVSaGRHRXVaR2x0TG5WdWFYUnpMQ0IyYVdWM2NHOXlkRVJoZEdFdWFHVnBaMmgwS1Z4dUlDQWdJQ0FnSUNCOU8xeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdVgxOW9ZVzVrYkdWekxuZ3VZV1JrVkc4b2RHaHBjeTVuWlhSRFlXNTJZWE1vS1NrdVkyVnVkR1Z5U0NncExuTmxkQ2g3SUhSdmNEb2dkSEpoWTJ0ekxuZ3VkRzl3SUgwcExuTmxkRU52YjNKa2N5Z3BPMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOWZhR0Z1Wkd4bGN5NTVMbUZrWkZSdktIUm9hWE11WjJWMFEyRnVkbUZ6S0NrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YzJWMFFXNW5iR1VvTFRrd0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1ObGJuUmxjbFlvS1M1elpYUW9leUJzWldaME9pQjBjbUZqYTNNdWVTNXNaV1owSUgwcFhHNGdJQ0FnSUNBZ0lDQWdJQ0F1YzJWMFEyOXZjbVJ6S0NrN1hHNWNiaUFnSUNBZ0lDQWdkR2hwY3k1blpYUkRZVzUyWVhNb0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG05dUtDZHRiM1Z6WlRwdGIzWmxKeXdnWlhabGJuUnpMbTF2ZFhObFRXOTJaU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXZiaWduYlc5MWMyVTZkWEFuTENCbGRtVnVkSE11Ylc5MWMyVlZjQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RISmhZMnR6TG5ndWIyNG9KMjF2ZFhObFpHOTNiaWNzSUdWMlpXNTBjeTV0YjNWelpVUnZkMjR1WW1sdVpDaDBjbUZqYTNNdWVDa3BPMXh1SUNBZ0lDQWdJQ0IwY21GamEzTXVlUzV2YmlnbmJXOTFjMlZrYjNkdUp5d2daWFpsYm5SekxtMXZkWE5sUkc5M2JpNWlhVzVrS0hSeVlXTnJjeTU1S1NrN1hHNGdJQ0FnZlR0Y2JuMDdYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUkhKaFowaGhibVJzWlR0Y2JpSXNJaWQxYzJVZ2MzUnlhV04wSnp0Y2JseHVkbUZ5SUVSeVlXZElZVzVrYkdVZ1BTQnlaWEYxYVhKbEtDY3VMMFJ5WVdkSVlXNWtiR1VuS1R0Y2JuWmhjaUJqYjI1bWFXY2dQU0J5WlhGMWFYSmxLQ2N1TDJOdmJtWnBaeWNwTzF4dVhHNW1kVzVqZEdsdmJpQkVjbUZuWW1GeVNHRnVaR3hsY2loallXNTJZWE1wSUh0Y2JpQWdJQ0IyWVhJZ1gyUnlZV2RpWVhKeklEMGdlMXh1SUNBZ0lDQWdJQ0I0T2lCdWRXeHNMRnh1SUNBZ0lDQWdJQ0I1T2lCdWRXeHNYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMFJ5WVdkaVlYSklZVzVrYkdWeWZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVZWEJ3YkhrZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hZMkZ1ZG1GekxsOWZhR0Z6UkhKaFoySmhjbk1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdWFXNXBkQ2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZ1ZG1GekxsOWZhR0Z6UkhKaFoySmhjbk1nUFNCMGNuVmxPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM2x1WXlncE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHaHBjeTVmWDJoaGJtUnNaWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgxOW9ZVzVrYkdWeklEMGdibVYzSUVSeVlXZElZVzVrYkdVb2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5ZmFHRnVaR3hsY3k1cGJtbDBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVpY21sdVoxUnZSbkp2Ym5Rb0tUdGNibHh1SUNBZ0lDQWdJQ0JqWVc1MllYTXVjbVZ1WkdWeVFXeHNLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJR05oYm5aaGN6dGNibHh1SUNBZ0lIUm9hWE11WW5KcGJtZFViMFp5YjI1MElEMGdablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUZ0ZExtTnZibU5oZENoZlpISmhaMkpoY25NdWVDd2dYMlJ5WVdkaVlYSnpMbmtwTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0dSeVlXZGlZWElwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR1J5WVdkaVlYSXVZbkpwYm1kVWIwWnliMjUwS0NrN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYMTlvWVc1a2JHVnpMbWRsZEVoaGJtUnNaWE1vS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNob1lXNWtiR1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2hoYm1Sc1pTNWljbWx1WjFSdlJuSnZiblFvS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlGSmxiVzkyWlhNZ1pISmhaMkpoY25NZ1puSnZiU0JqWVc1MllYTmNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbU5zWldGeUlEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCallXNTJZWE5jYmlBZ0lDQWdJQ0FnSUNBZ0lDNXlaVzF2ZG1Vb1gyUnlZV2RpWVhKekxuZ3BYRzRnSUNBZ0lDQWdJQ0FnSUNBdWNtVnRiM1psS0Y5a2NtRm5ZbUZ5Y3k1NUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5KbGJtUmxja0ZzYkNncE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjenRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdkR2hwY3k1blpYUlVjbUZqYTNNZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJmWkhKaFoySmhjbk03WEc0Z0lDQWdmVHRjYmx4dUlDQWdJSFJvYVhNdWNtVnpaWFJRYjNOcGRHbHZiaUE5SUdaMWJtTjBhVzl1S0NrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvSVY5a2NtRm5ZbUZ5Y3k1NUlIeDhJQ0ZmWkhKaFoySmhjbk11ZUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JmWkhKaFoySmhjbk11ZVM1elpYUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHVm1kRG9nWTJGdWRtRnpMbmRwWkhSb0lDMGdNekFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm9aV2xuYUhRNklHTmhiblpoY3k1blpYUkpiV0ZuWlNncExtaGxhV2RvZENBcUlHTmhiblpoY3k1blpYUkpiV0ZuWlNncExuTmpZV3hsV1N4Y2JpQWdJQ0FnSUNBZ2ZTa3VjMlYwUTI5dmNtUnpLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1gyUnlZV2RpWVhKekxuZ3VjMlYwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJ2Y0RvZ1kyRnVkbUZ6TG1obGFXZG9kQ0F0SURNd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnZDJsa2RHZzZJR05oYm5aaGN5NW5aWFJKYldGblpTZ3BMbmRwWkhSb0lDb2dZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VjMk5oYkdWWkxGeHVJQ0FnSUNBZ0lDQjlLUzV6WlhSRGIyOXlaSE1vS1R0Y2JseHVJQ0FnSUNBZ0lDQjBhR2x6TGw5ZmFHRnVaR3hsY3k1elpYUklZVzVrYkdWUWIzTnBkR2x2YmlncE8xeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0RWNtRm5ZbUZ5U0dGdVpHeGxjbjFjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1sdWFYUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTJ4bFlYSW9LVHRjYmx4dUlDQWdJQ0FnSUNCZlpISmhaMkpoY25NdWVDQTlJRzVsZHlCbVlXSnlhV011VW1WamRDZ2tMbVY0ZEdWdVpDaDdmU3dnWTI5dVptbG5MbVJ5WVdkQ1lYSXNJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHRjRhWE02SUNkNEp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUhkcFpIUm9PaUJqWVc1MllYTXVaMlYwU1cxaFoyVW9LUzUzYVdSMGFDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdobGFXZG9kRG9nWTI5dVptbG5MbVJ5WVdkQ1lYSXVjMmw2WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR3h2WTJ0TmIzWmxiV1Z1ZEZrNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaV3hsWTNSaFlteGxPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYUc5MlpYSkRkWEp6YjNJNklDZGxkeTF5WlhOcGVtVW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JXOTJaVU4xY25OdmNqb2dKMlYzTFhKbGMybDZaU2NzWEc0Z0lDQWdJQ0FnSUgwcEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG1Ga1pGUnZLR05oYm5aaGN5bGNiaUFnSUNBZ0lDQWdJQ0FnSUM1alpXNTBaWEpJS0NrdWMyVjBLSHNnZEc5d09pQmpZVzUyWVhNdWFHVnBaMmgwSUMwZ016QWdmU2t1YzJWMFEyOXZjbVJ6S0NrN1hHNWNiaUFnSUNBZ0lDQWdYMlJ5WVdkaVlYSnpMbmtnUFNCdVpYY2dabUZpY21sakxsSmxZM1FvSkM1bGVIUmxibVFvZTMwc0lHTnZibVpwWnk1a2NtRm5RbUZ5TENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JoZUdsek9pQW5lU2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjNhV1IwYURvZ1kyOXVabWxuTG1SeVlXZENZWEl1YzJsNlpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUdobGFXZG9kRG9nWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1YUdWcFoyaDBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHOWphMDF2ZG1WdFpXNTBXRG9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGJHVmpkR0ZpYkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm9iM1psY2tOMWNuTnZjam9nSjI1ekxYSmxjMmw2WlNjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0YjNabFEzVnljMjl5T2lBbmJuTXRjbVZ6YVhwbEp5eGNiaUFnSUNBZ0lDQWdmU2twWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVZV1JrVkc4b1kyRnVkbUZ6S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdMbk5sZENoN0lHeGxablE2SUdOaGJuWmhjeTUzYVdSMGFDQXRJRE13SUgwcExuTmxkRU52YjNKa2N5Z3BPMXh1WEc0Z0lDQWdJQ0FnSUdOaGJuWmhjeTVuWlhSSmJXRm5aU2dwTG05dUtDZHRiM1pwYm1jbkxDQjBhR2x6TG5ONWJtTXBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdEVjbUZuWW1GeVNHRnVaR3hsY24xY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxuTjVibU1nUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJRjlrY21GblltRnljeTU0TG5ObGRDaDdiR1ZtZERvZ1kyRnVkbUZ6TG1kbGRFbHRZV2RsS0NrdWJHVm1kSDBwTG5ObGRFTnZiM0prY3lncE8xeHVJQ0FnSUNBZ0lDQmZaSEpoWjJKaGNuTXVlUzV6WlhRb2UzUnZjRG9nWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1ZEc5d2ZTa3VjMlYwUTI5dmNtUnpLQ2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUkhKaFoySmhja2hoYm1Sc1pYSTdYRzRpTENJbmRYTmxJSE4wY21samRDYzdYRzVjYm5aaGNpQjFkR2xzSUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzSnlrN1hHNWNiaThxS2x4dUlDb2dRSEJoY21GdElIdG1ZV0p5YVdNdVNXMWhaMlY5SUdsdFoxeHVJQ29nUUhCaGNtRnRJSHRtWVdKeWFXTXVVbVZqZEgwZ1ltOTFibVJwYm1kU1pXTjBYRzRnS2k5Y2JtWjFibU4wYVc5dUlFUnlZV2RuWVdKc1pTaHBiV2NzSUdKdmRXNWthVzVuVW1WamRDa2dlMXh1SUNBZ0lIWmhjaUJmWW05MWJtUnpJRDBnWW05MWJtUnBibWRTWldOME8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dWSEpwWjJkbGNuTWdkMmhsYmlCdlltcGxZM1FnYVhNZ2JXOTJaV1JjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQnZiazF2ZG1Vb0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdVgxOWtjbUZuWjJWa0lEMGdkSEoxWlR0Y2JseHVJQ0FnSUNBZ0lDQjBhR2x6TG1OaGJuWmhjeTVrYVhOaFlteGxVMk55YjJ4c0tDazdYRzVjYmlBZ0lDQWdJQ0FnZFhScGJDNXpaWFJRYjNOcGRHbHZia2x1YzJsa1pTaDBhR2x6TENCZlltOTFibVJ6S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCQmRIUmhZMmdnYjI1TmIzWmxJR1YyWlc1MElIUnZJR2x0WVdkbFhHNGdJQ0FnYVcxbkxtOXVLQ2R0YjNacGJtY25MQ0J2YmsxdmRtVXBPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUhCaGNtRnRJQ0I3Wm1GaWNtbGpMbEpsWTNSOUlHeHZZMkZzUW05MWJtUnBibWRTWldOMFhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN1JISmhaMmRoWW14bGZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVaVzVoWW14bElEMGdablZ1WTNScGIyNGdLR3h2WTJGc1FtOTFibVJwYm1kU1pXTjBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHNiMk5oYkVKdmRXNWthVzVuVW1WamRDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1gySnZkVzVrY3lBOUlHeHZZMkZzUW05MWJtUnBibWRTWldOME8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnTHk4Z1FGUlBSRThnVW1WbVlXTjBiM0lnZEdocGN5d2djMlZsSUZacFpYZHdiM0owTG1OaGJHTk5hVzVOWVhoQ2IzVnVaSE5HYjNKU1pXTjBYRzRnSUNBZ0lDQWdJR2xtSUNocGJXY3VZMkZ1ZG1GekxtZGxkRlpwWlhkd2IzSjBLQ2t1WjJWMFJHRjBZU2dwTG1GNGFYTWdQVDA5SUNkNEp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1gySnZkVzVrY3k1MGIzQXViV2x1SUQwZ1gySnZkVzVrY3k1MGIzQXViV0Y0SUQwZ2FXMW5MblJ2Y0R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRjlpYjNWdVpITXViR1ZtZEM1dGFXNGdQU0JmWW05MWJtUnpMbXhsWm5RdWJXRjRJRDBnYVcxbkxteGxablE3WEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnBiV2N1Ykc5amEwMXZkbVZ0Wlc1MFdDQTlJR2x0Wnk1c2IyTnJUVzkyWlcxbGJuUlpJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR2x0Wnk1elpXeGxZM1JoWW14bElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2FXMW5MbWh2ZG1WeVEzVnljMjl5SUQwZ0oyMXZkbVVuTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOU8xeHVmVnh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUVSeVlXZG5ZV0pzWlR0Y2JpSXNJaWQxYzJVZ2MzUnlhV04wSnp0Y2JseHVkbUZ5SUdOdmJtWnBaeUE5SUhKbGNYVnBjbVVvSnk0dlkyOXVabWxuSnlrN1hHNWNibVoxYm1OMGFXOXVJRVp5WVcxbFNHRnVaR3hsY2loMmFXVjNjRzl5ZENrZ2UxeHVJQ0FnSUhaaGNpQmZabkpoYldWek8xeHVJQ0FnSUhaaGNpQmZabkpoYldWVWVYQmxJRDBnSjJsdFlXZGxKenRjYmx4dUlDQWdJR1oxYm1OMGFXOXVJR2x1YVhRb0tTQjdYRzRnSUNBZ0lDQWdJR2x1YVhSR2NtRnRaWE1vS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JtZFc1amRHbHZiaUJuWlhSR2NtRnRaWE5CYzBGeWNtRjVLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzF4dUlDQWdJQ0FnSUNBZ0lDQWdYMlp5WVcxbGN5NTBiM0FzSUY5bWNtRnRaWE11Y21sbmFIUXNJRjltY21GdFpYTXVZbTkwZEc5dExDQmZabkpoYldWekxteGxablJjYmlBZ0lDQWdJQ0FnWFR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCVFpYUnpJSFJvWlNBMElISmxZM1JoYm1kc1pYTWdkMmhwWTJnZ1lYSmxJSFZ6WldRZ2QyaGxiaUJqZFhKeVpXNTBJR05oYm5aaGN5QnphRzkxYkdRZ1ltVWdabkpoYldWa1hHNGdJQ0FnSUNvdlhHNGdJQ0FnWm5WdVkzUnBiMjRnYVc1cGRFWnlZVzFsY3lncElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdaeVlXMWxJRDBnYm1WM0lHWmhZbkpwWXk1U1pXTjBLR052Ym1acFp5NW1jbUZ0WlhNdVpHVm1ZWFZzZENrN1hHNWNiaUFnSUNBZ0lDQWdYMlp5WVcxbGN5QTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnZjRG9nWm5KaGJXVXVZMnh2Ym1Vb0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhKcFoyaDBPaUJtY21GdFpTNWpiRzl1WlNncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWW05MGRHOXRPaUJtY21GdFpTNWpiRzl1WlNncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYkdWbWREb2dabkpoYldVdVkyeHZibVVvS1Z4dUlDQWdJQ0FnSUNCOU8xeHVYRzRnSUNBZ0lDQWdJR2RsZEVaeVlXMWxjMEZ6UVhKeVlYa29LUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2h2S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyYVdWM2NHOXlkQzVqWVc1MllYTXVZV1JrS0c4cE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBibWwwS0NrN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdFRkSEpwYm1kOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NW5aWFJHY21GdFpWUjVjR1VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmZabkpoYldWVWVYQmxPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQjBhR2x6TG5ObGRGWnBjMmxpYkdVZ1BTQm1kVzVqZEdsdmJpQW9hWE5XYVhOcFlteGxLU0I3WEc0Z0lDQWdJQ0FnSUdselZtbHphV0pzWlNBOUlIUjVjR1Z2WmlCcGMxWnBjMmxpYkdVZ1BUMDlJQ2QxYm1SbFptbHVaV1FuSUQ4Z2RISjFaU0E2SUNFaGFYTldhWE5wWW14bE8xeHVYRzRnSUNBZ0lDQWdJR2RsZEVaeVlXMWxjMEZ6UVhKeVlYa29LUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2htY21GdFpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1puSmhiV1V1YzJWMEtIc2dkbWx6YVdKc1pUb2dhWE5XYVhOcFlteGxJSDBwTzF4dUlDQWdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdJQ0IyYVdWM2NHOXlkQzVqWVc1MllYTXVjbVZ1WkdWeVFXeHNLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dVMlYwY3lCd1lYTnpaV1FnWm5KaGJXVjBlWEJsSUhSdklIQmhjM05sWkNCMmFXVjNkM0J2Y25SY2JpQWdJQ0FnS2lCQWNHRnlZVzBnSUh0emRISnBibWQ5SUdaeVlXMWxWSGx3WlNCdWIyNWxmR2x0WVdkbGZHSnNZV05yZkhkb2FYUmxYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdSbkpoYldWSVlXNWtiR1Z5ZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWMyVjBSbkpoYldWeklEMGdablZ1WTNScGIyNGdLR1p5WVcxbFZIbHdaU2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdZbTkxYm1SeklEMGdkbWxsZDNCdmNuUXVaMlYwUW05MWJtUnpLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1puSmhiV1ZVZVhCbElEMGdabkpoYldWVWVYQmxJSHg4SUY5bWNtRnRaVlI1Y0dVZ2ZId2dKMmx0WVdkbEp6dGNiaUFnSUNBZ0lDQWdYMlp5WVcxbFZIbHdaU0E5SUdaeVlXMWxWSGx3WlR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvSVdaeVlXMWxWSGx3WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLR1p5WVcxbFZIbHdaU0E5UFQwZ0oyNXZibVVuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYUldhWE5wWW14bEtHWmhiSE5sS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyVjBWbWx6YVdKc1pTaDBjblZsS1R0Y2JseHVJQ0FnSUNBZ0lDQm5aWFJHY21GdFpYTkJjMEZ5Y21GNUtDa3VabTl5UldGamFDaG1kVzVqZEdsdmJpQW9ieWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdieTV6WlhRb1kyOXVabWxuTG1aeVlXMWxjMXRtY21GdFpWUjVjR1ZkS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJQ0FnZG1GeUlIWndSR0YwWVNBOUlIWnBaWGR3YjNKMExtZGxkRVJoZEdFb0tUdGNiaUFnSUNBZ0lDQWdkbUZ5SUdaeVlXMWxVMmw2WlNBOUlESTVPMXh1SUNBZ0lDQWdJQ0JwWmlBb2RuQkVZWFJoTG1ScGJTNTFibWwwY3lBOVBUMGdKMmx1WTJnbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCbWNtRnRaVk5wZW1VZ0x6MGdNaTQxTkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJRjltY21GdFpYTXVkRzl3TG1obGFXZG9kQ0E5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZabkpoYldWekxtSnZkSFJ2YlM1b1pXbG5hSFFnUFZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUY5bWNtRnRaWE11Y21sbmFIUXVkMmxrZEdnZ1BWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JmWm5KaGJXVnpMbXhsWm5RdWQybGtkR2dnUFNCMmNFUmhkR0V1Y0hCdGJTQXFJR1p5WVcxbFUybDZaU0FxSUhacFpYZHdiM0owTG1OaGJuWmhjeTVuWlhSSmJXRm5aU2dwTG5OallXeGxXRHRjYmx4dUlDQWdJQ0FnSUNCZlpuSmhiV1Z6TG5SdmNDNTNhV1IwYUNBOUlGOW1jbUZ0WlhNdVltOTBkRzl0TG5kcFpIUm9JRDBnZG5CRVlYUmhMbmRwWkhSb08xeHVJQ0FnSUNBZ0lDQmZabkpoYldWekxuSnBaMmgwTG1obGFXZG9kQ0E5SUY5bWNtRnRaWE11YkdWbWRDNW9aV2xuYUhRZ1BTQjJjRVJoZEdFdWFHVnBaMmgwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2htY21GdFpWUjVjR1VnUFQwOUlDZHBiV0ZuWlNjcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUY5bWNtRnRaWE11ZEc5d0xuZHBaSFJvSUMwOUlDaDJjRVJoZEdFdWNIQnRiU0FxSUdaeVlXMWxVMmw2WlNBcUlIWnBaWGR3YjNKMExtTmhiblpoY3k1blpYUkpiV0ZuWlNncExuTmpZV3hsV0NrZ0tpQXlPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1gyWnlZVzFsY3k1aWIzUjBiMjB1ZDJsa2RHZ2dQU0JmWm5KaGJXVnpMblJ2Y0M1M2FXUjBhRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lGOW1jbUZ0WlhNdWNtbG5hSFF1YUdWcFoyaDBJQzA5SUNoMmNFUmhkR0V1Y0hCdGJTQXFJR1p5WVcxbFUybDZaU0FxSUhacFpYZHdiM0owTG1OaGJuWmhjeTVuWlhSSmJXRm5aU2dwTG5OallXeGxXQ2tnS2lBeU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWDJaeVlXMWxjeTVzWldaMExtaGxhV2RvZENBOUlGOW1jbUZ0WlhNdWNtbG5hSFF1YUdWcFoyaDBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZabkpoYldWekxuUnZjQzV6WlhRb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUnZjRG9nWW05MWJtUnpMblJ2Y0N4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTG1ObGJuUmxja2dvS1M1elpYUkRiMjl5WkhNb0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1gyWnlZVzFsY3k1aWIzUjBiMjB1YzJWMEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBiM0E2SUNoaWIzVnVaSE11ZEc5d0lDc2dZbTkxYm1SekxtaGxhV2RvZENBdElGOW1jbUZ0WlhNdVltOTBkRzl0TG1obGFXZG9kQ2tnTFNBeFhHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1M1alpXNTBaWEpJS0NrdWMyVjBRMjl2Y21SektDazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lGOW1jbUZ0WlhNdWNtbG5hSFF1YzJWMEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaV1owT2lBb1ltOTFibVJ6TG14bFpuUWdLeUJpYjNWdVpITXVkMmxrZEdnZ0xTQmZabkpoYldWekxuSnBaMmgwTG5kcFpIUm9LU0F0SURGY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTG1ObGJuUmxjbFlvS1M1elpYUkRiMjl5WkhNb0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ1gyWnlZVzFsY3k1c1pXWjBMbk5sZENoN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVm1kRG9nWW05MWJtUnpMbXhsWm5SY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTG1ObGJuUmxjbFlvS1M1elpYUkRiMjl5WkhNb0tUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUY5bWNtRnRaWE11ZEc5d0xuTmxkQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEc5d09pQW9ZbTkxYm1SekxuUnZjQ0F0SUY5bWNtRnRaWE11ZEc5d0xtaGxhV2RvZENrZ0t5QXhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTa3VZMlZ1ZEdWeVNDZ3BMbk5sZEVOdmIzSmtjeWdwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JmWm5KaGJXVnpMbUp2ZEhSdmJTNXpaWFFvZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSdmNEb2dLR0p2ZFc1a2N5NTBiM0FnS3lCaWIzVnVaSE11YUdWcFoyaDBLU0F0SURFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5S1M1alpXNTBaWEpJS0NrdWMyVjBRMjl2Y21SektDazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lGOW1jbUZ0WlhNdWNtbG5hSFF1YzJWMEtIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnNaV1owT2lBb1ltOTFibVJ6TG14bFpuUWdLeUJpYjNWdVpITXVkMmxrZEdncElDMGdNVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTa3VZMlZ1ZEdWeVZpZ3BMbk5sZEVOdmIzSmtjeWdwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0JmWm5KaGJXVnpMbXhsWm5RdWMyVjBLSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWldaME9pQW9ZbTkxYm1SekxteGxablFnTFNCZlpuSmhiV1Z6TG14bFpuUXVkMmxrZEdncElDc2dNVnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTa3VZMlZ1ZEdWeVZpZ3BMbk5sZEVOdmIzSmtjeWdwTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdkbWxsZDNCdmNuUXVZMkZ1ZG1GekxuSmxibVJsY2tGc2JDZ3BPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUm5KaGJXVklZVzVrYkdWeU8xeHVJaXdpSjNWelpTQnpkSEpwWTNRbk8xeHVYRzVtZFc1amRHbHZiaUJIYjNKbFNHRnVaR3hsY2loMmFXVjNjRzl5ZENrZ2UxeHVJQ0FnSUhaaGNpQmZaVzVoWW14bFpDQTlJR1poYkhObE8xeHVJQ0FnSUhaaGNpQmZiR2x1WlhNZ1BTQmJYVHRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTJaaFluSnBZeTVNYVc1bGZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUdaMWJtTjBhVzl1SUdkbGRFeHBibVVvYkdWbWRDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVYzSUdaaFluSnBZeTVNYVc1bEtGc3dMQ0F3TENBd0xDQjJhV1YzY0c5eWRDNW5aWFJFWVhSaEtDa3VhR1ZwWjJoMFhTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYWmxiblJsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkSEp2YTJWRVlYTm9RWEp5WVhrNklGczFMQ0ExWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wY205clpUb2dKeU13TURBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeWIydGxWMmxrZEdnNklERXNYRzRnSUNBZ0lDQWdJQ0FnSUNCc1pXWjBPaUJzWldaMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEc5d09pQjJhV1YzY0c5eWRDNW5aWFJDYjNWdVpITW9LUzUwYjNCY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdSMjl5WlVoaGJtUnNaWEo5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1amJHVmhjaUE5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdYMnhwYm1WekxtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tHeHBibVVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFpwWlhkd2IzSjBMbU5oYm5aaGN5NXlaVzF2ZG1Vb2JHbHVaU2s3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQmZiR2x1WlhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUM4cUtseHVJQ0FnSUNBcUlFQndZWEpoYlNBZ2UwSnZiMnhsWVc1OUlHVnVZV0pzWldSY2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0SGIzSmxTR0Z1Wkd4bGNuMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbVZ1WVdKc1pTQTlJR1oxYm1OMGFXOXVJQ2hsYm1GaWJHVmtLU0I3WEc0Z0lDQWdJQ0FnSUY5bGJtRmliR1ZrSUQwZ1pXNWhZbXhsWkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqYkdWaGNpZ3BPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hYMlZ1WVdKc1pXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIWnBaWGR3YjNKMExtTmhiblpoY3k1eVpXNWtaWEpCYkd3b0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJpYjNWdVpITWdQU0IyYVdWM2NHOXlkQzVuWlhSQ2IzVnVaSE1vS1R0Y2JpQWdJQ0FnSUNBZ2RtRnlJSE4wWlhBZ0lDQTlJSFpwWlhkd2IzSjBMbWRsZEVSaGRHRW9LUzV3Y0cxdElDb2dORFV3TzF4dUlDQWdJQ0FnSUNCMllYSWdZMjkxYm5RZ0lEMGdUV0YwYUM1alpXbHNLR0p2ZFc1a2N5NTNhV1IwYUNBdklITjBaWEFwTzF4dVhHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHa2dQU0F4T3lCcElEd2dZMjkxYm5RN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdYMnhwYm1WekxuQjFjMmdvWjJWMFRHbHVaU2hpYjNWdVpITXViR1ZtZENBcklITjBaWEFnS2lCcEtTazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCZmJHbHVaWE11Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1sbGQzQnZjblF1WTJGdWRtRnpMbUZrWkNodktUdGNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ2RtbGxkM0J2Y25RdVkyRnVkbUZ6TG5KbGJtUmxja0ZzYkNncE8xeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0SGIzSmxTR0Z1Wkd4bGNuMWNiaUFnSUNBZ0tpOWNiaUFnSUNCMGFHbHpMbkpsYzJWMElEMGdablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWxibUZpYkdVb1gyVnVZV0pzWldRcE8xeHVJQ0FnSUgwN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUjI5eVpVaGhibVJzWlhJN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNibVoxYm1OMGFXOXVJRWx0WVdkbFJHRjBZVWhoYm1Sc1pYSW9hVzFuS1NCN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkhaWFJ6SUdsdVptOXliV0YwYVc5dUlHRmliM1YwSUdodmR5QjBhR1VnWTNKdmNIQmxaQ0JwYldGblpTQnBjeUJrY21GbloyVmtYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdUMkpxWldOMGZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVaMlYwUTNKdmNFUmhkR0VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQktVMDlPTG5CaGNuTmxLSE5sYzNOcGIyNVRkRzl5WVdkbExtZGxkRWwwWlcwb0oyTnliM0JFWVhSaEp5a3BPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQjBhR2x6TG5ObGRFTnliM0JFWVhSaElEMGdablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQjJhV1YzY0c5eWRFSnZkVzVrY3lBOUlHbHRaeTVqWVc1MllYTXVaMlYwVm1sbGQzQnZjblFvS1M1blpYUkNiM1Z1WkhNb0tUdGNiaUFnSUNBZ0lDQWdkbUZ5SUdSeVlXZEJlR2x6SUQwZ2FXMW5MbU5oYm5aaGN5NW5aWFJXYVdWM2NHOXlkQ2dwTG1kbGRFUmhkR0VvS1M1aGVHbHpPMXh1WEc0Z0lDQWdJQ0FnSUhaaGNpQmpjbTl3UkdGMFlTQTlJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIZzZJR1J5WVdkQmVHbHpJRDA5UFNBbmVDY2dQeUFvZG1sbGQzQnZjblJDYjNWdVpITXViR1ZtZENBdElHbHRaeTVzWldaMEtTQXZJQ2hwYldjdWQybGtkR2dnS2lCcGJXY3VjMk5oYkdWWUtTQTZJREFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjVPaUJrY21GblFYaHBjeUE5UFQwZ0oza25JRDhnS0hacFpYZHdiM0owUW05MWJtUnpMblJ2Y0NBdElHbHRaeTUwYjNBcElDOGdLR2x0Wnk1b1pXbG5hSFFnS2lCcGJXY3VjMk5oYkdWWktTQTZJREFzWEc0Z0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQnpaWE56YVc5dVUzUnZjbUZuWlM1elpYUkpkR1Z0S0NkamNtOXdSR0YwWVNjc0lFcFRUMDR1YzNSeWFXNW5hV1o1S0dOeWIzQkVZWFJoS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXlaVzF2ZG1WRGNtOXdSR0YwWVNBOUlHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0J6WlhOemFXOXVVM1J2Y21GblpTNXlaVzF2ZG1WSmRHVnRLQ2RqY205d1JHRjBZU2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVkbGRITWdZVzRnYjJKcVpXTjBJR052Ym5SaGFXNXBibWNnWVhCd2JHbGxaQ0IwY21GdWMyWnZjbTFoZEdsdmJuTWdabTl5SUhSb1pTQkpiV0ZuWlNCaGJtUWdZV3h6YjF4dUlDQWdJQ0FxSUdodmR5QnBkQ0JwY3lCamNtOXdjR1ZrSUdGdVpDQmtjbUZuWjJWa0xseHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwOWlhbVZqZEgxY2JpQWdJQ0FnS2k5Y2JpQWdJQ0IwYUdsekxtZGxkRVJoZEdFZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQjJhV1YzY0c5eWRFUmhkR0VnUFNCcGJXY3VZMkZ1ZG1GekxtZGxkRlpwWlhkd2IzSjBLQ2t1WjJWMFJHRjBZU2dwTzF4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJ5WlhSMWNtNVdZV3gxWlNBOUlDUXVaWGgwWlc1a0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnZTMwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldseWNtOXlaV1E2SUdsdFp5NWpZVzUyWVhNdVoyVjBUV2x5Y205eUtDa3VaMlYwVTNSaGRIVnpLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDJsa2RHZzZJREV3TUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1pXbG5hSFE2SURFd01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxtZGxkRU55YjNCRVlYUmhLQ2xjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvYVcxbkxtTmhiblpoY3k1ZlgzUjVjR1VnUFQwOUlDZGpZVzUyWVhNbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllYSWdabkpoYldWSVlXNWtiR1Z5SUQwZ2FXMW5MbU5oYm5aaGN5NW5aWFJXYVdWM2NHOXlkQ2dwTG1kbGRFWnlZVzFsU0dGdVpHeGxjaWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdVZtRnNkV1V1WldSblpTQTlJR1p5WVcxbFNHRnVaR3hsY2k1blpYUkdjbUZ0WlZSNWNHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmxaaGJIVmxMbVp5WVcxbFpDQTlJSEpsZEhWeWJsWmhiSFZsTG1Wa1oyVWdJVDA5SUNkdWIyNWxKenRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYUjFjbTVXWVd4MVpUdGNiaUFnSUNCOU8xeHVmVnh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUVsdFlXZGxSR0YwWVVoaGJtUnNaWEk3WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JuWmhjaUJEWVc1MllYTWdQU0J5WlhGMWFYSmxLQ2N1TDBOaGJuWmhjeWNwTzF4dWRtRnlJSFYwYVd3Z1BTQnlaWEYxYVhKbEtDY3VMM1YwYVd3bktUdGNibHh1Wm5WdVkzUnBiMjRnU1cxaFoyVkZaR2wwYjNJb1kyRnVkbUZ6U1dRc0lHRnlaM01wSUh0Y2JpQWdJQ0IyWVhJZ1gyTmhiblpoY3p0Y2JseHVJQ0FnSUhaaGNpQmZjMlYwZEdsdVozTWdQU0FrTG1WNGRHVnVaQ2g3WEc0Z0lDQWdJQ0FnSUM4dklGUjVjR1VnWkdWbVlYVnNkSE1nZEc4Z2QyRnNiSEJoY0dWeVhHNGdJQ0FnSUNBZ0lIUjVjR1U2SUNkM1lXeHNjR0Z3WlhJbkxGeHVJQ0FnSUNBZ0lDQXZMeUJFWldaaGRXeDBJSFJsZUhSeklHOXVJSFJvWlNCaWRYUjBiMjV6WEc0Z0lDQWdJQ0FnSUdKMWRIUnZibk02SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5vYjNkVWFISmxaVVE2SUNjelpDY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCb2FXUmxWR2h5WldWRU9pQW5SbXhoZENjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6YUc5M1RYVnlZV3h6T2lBblUyaHZkeUJOZFhKaGJITWdVR0Z1Wld3bkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdsa1pVMTFjbUZzY3pvZ0owaHBaR1VnVFhWeVlXeHpJRkJoYm1Wc0p5eGNiaUFnSUNBZ0lDQWdJQ0FnSUhOb2IzZFNkV3hsY25NNklDZFRhRzkzSUZKMWJHVnlKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHaHBaR1ZTZFd4bGNuTTZJQ2RJYVdSbElGSjFiR1Z5Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE5vYjNkR2RXeHNjMk55WldWdU9pQW5SblZzYkhOamNtVmxiaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm9hV1JsUm5Wc2JITmpjbVZsYmpvZ0owVjRhWFFnUm5Wc2JITmpjbVZsYmljc1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOUxDQmhjbWR6S1R0Y2JseHVJQ0FnSUM4dklFbHVhWFJwWVd4cGVtVWdZMkZ1ZG1GelhHNGdJQ0FnWDJOaGJuWmhjeUE5SUc1bGR5QkRZVzUyWVhNb1kyRnVkbUZ6U1dRc0lHRnlaM011WkdsdFpXNXphVzl1Y3lrN1hHNWNiaUFnSUNBdkx5Qk1aWFFnUTJGdWRtRnpJR3R1YjNjZ2QyaHBZMmdnZEhsd1pTQnBkQ0JwY3l3Z1kyRnVkbUZ6SUc5eUlIZGhiR3h3WVhCbGNpQnphVzVqWlNCcGRDQnBjMXh1SUNBZ0lDOHZJR0ZqWTJWemMybGliR1VnWm05eUlHRnNiQ0J2WW1wbFkzUnpJR052Ym5SaGFXNWxaQ0IzYVhSb2FXNHVYRzRnSUNBZ1gyTmhiblpoY3k1elpYUW9lMXh1SUNBZ0lDQWdJQ0JmWDNSNWNHVTZJRjl6WlhSMGFXNW5jeTUwZVhCbFhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBdkx5QkJaR1JwYm1jZ1luVjBkRzl1Y3lCMGJ5QjBhR1VnWTJGdWRtRnpJR1JsY0dWdVpHbHVaeUJ2YmlCM2FHbGphQ0IwZVhCbElHbHpJR0ZqZEdsMlpTNWNiaUFnSUNBdkx5QkpkQ0J0YVdkb2RDQmlaU0JpWlhSMFpYSWdkR2hoZENCMGFHbHpJSEpsYzJsa1pYTWdjMjl0Wlhkb1pYSmxJR1ZzYzJVc0lHVnBkR2hsY2lCcGJpQkRZVzUyWVhNZ2IzSmNiaUFnSUNBdkx5QmtkWEpwYm1jZ2RHaGxJR2x1YVhScFlXeHBlbUYwYVc5dUlHOW1JSFJvWlNCcGJXRm5aU0JsWkdsMGIzSXVYRzRnSUNBZ2FXWWdLRjlqWVc1MllYTXVYMTkwZVhCbElEMDlQU0FuWTJGdWRtRnpKeWtnZTF4dUlDQWdJQ0FnSUNCZlkyRnVkbUZ6TG1kbGRFSjFkSFJ2YmsxbGJuVW9LVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtRmtaRWwwWlcwb0ozUnZaMmRzWlROa0p5d2dXMTl6WlhSMGFXNW5jeTVpZFhSMGIyNXpMbk5vYjNkVWFISmxaVVFzSUY5elpYUjBhVzVuY3k1aWRYUjBiMjV6TG1ocFpHVlVhSEpsWlVSZExDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWDJOaGJuWmhjeTUwYjJkbmJHVXpSQ2gwYUdsekxtbHpRV04wYVhabEtDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ1gyTmhiblpoY3k1blpYUkNkWFIwYjI1TlpXNTFLQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWhaR1JKZEdWdEtDZDBiMmRuYkdWTmRYSmhiSE1uTENCYlgzTmxkSFJwYm1kekxtSjFkSFJ2Ym5NdWMyaHZkMDExY21Gc2N5d2dYM05sZEhScGJtZHpMbUoxZEhSdmJuTXVhR2xrWlUxMWNtRnNjMTBzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmZZMkZ1ZG1GekxtZGxkRlpwWlhkd2IzSjBLQ2t1WjJWMFIyOXlaWE1vS1M1bGJtRmliR1VvZEdocGN5NXBjMEZqZEdsMlpTZ3BLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBdVlXUmtTWFJsYlNnbmRHOW5aMnhsVW5Wc1pYSnpKeXdnVzE5elpYUjBhVzVuY3k1aWRYUjBiMjV6TG5Ob2IzZFNkV3hsY25Nc0lGOXpaWFIwYVc1bmN5NWlkWFIwYjI1ekxtaHBaR1ZTZFd4bGNuTmRMQ0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1gyTmhiblpoY3k1blpYUldhV1YzY0c5eWRDZ3BMbWRsZEZKMWJHVnljeWdwTG1WdVlXSnNaU2gwYUdsekxtbHpRV04wYVhabEtDa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFYwYVd3dWMzVndjRzl5ZEhOR2RXeHNjMk55WldWdUtDa3BJSHRjYmlBZ0lDQWdJQ0FnWDJOaGJuWmhjeTVuWlhSQ2RYUjBiMjVOWlc1MUtDbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1aFpHUkpkR1Z0S0NkMGIyZG5iR1ZHZFd4c2MyTnlaV1Z1Snl3Z1cxOXpaWFIwYVc1bmN5NWlkWFIwYjI1ekxuTm9iM2RHZFd4c2MyTnlaV1Z1TENCZmMyVjBkR2x1WjNNdVluVjBkRzl1Y3k1bGVHbDBSblZzYkhOamNtVmxibDBzSUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjFkR2xzTG5SdloyZHNaVVoxYkd4elkzSmxaVzRvWDJOaGJuWmhjeTVuWlhSVFpXeGxZM1JwYjI1RmJHVnRaVzUwS0NrdWNHRnlaVzUwVG05a1pTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCZlkyRnVkbUZ6TG1kbGRFSjFkSFJ2YmsxbGJuVW9LUzV5Wlc1a1pYSW9LVHRjYmx4dUlDQWdJQzh2SUVKcGJtUnBibWNnWm5Wc2JITmpjbVZsYmlCamFHRnVaMlVnWlhabGJuUWdkRzhnZEdobElHbHRZV2RsTFdWa2FYUnZjaUIzY21Gd2NHVnlMaUJVYUdseklIZGhlU0IzWlNCallXNGdjMlYwSUhSb1pTQmpiM0p5WldOMElHSjFkSFJ2YmlCaFkzUnBkbVV1WEc0Z0lDQWdKQ2hmWTJGdWRtRnpMbWRsZEZObGJHVmpkR2x2YmtWc1pXMWxiblFvS1M1d1lYSmxiblJPYjJSbEtTNWlhVzVrS0NkM1pXSnJhWFJtZFd4c2MyTnlaV1Z1WTJoaGJtZGxJRzF2ZW1aMWJHeHpZM0psWlc1amFHRnVaMlVnWm5Wc2JITmpjbVZsYm1Ob1lXNW5aU2NzSUdaMWJtTjBhVzl1S0dVcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdselJuVnNiSE5qY21WbGJpQTlJR1J2WTNWdFpXNTBMbVoxYkd4VFkzSmxaVzRnZkh3Z1pHOWpkVzFsYm5RdWJXOTZSblZzYkZOamNtVmxiaUI4ZkNCa2IyTjFiV1Z1ZEM1M1pXSnJhWFJKYzBaMWJHeFRZM0psWlc0N1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dselJuVnNiSE5qY21WbGJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdYMk5oYm5aaGN5NW5aWFJDZFhSMGIyNU5aVzUxS0NrdVoyVjBTWFJsYlhNb0tTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHSjFkSFJ2YmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHSjFkSFJ2Ymk1blpYUkpaQ2dwSUQwOVBTQW5kRzluWjJ4bFJuVnNiSE5qY21WbGJpY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JpZFhSMGIyNHVjMlYwUVdOMGFYWmxLR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJEY205d2N5QnBiV0ZuWlNCMGJ5QmtaWE5wY21Wa0lHUnBiV1Z1YzJsdmJuTmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ0lIdHBiblI5SUhkcFpIUm9JQ0JiWkdWelkzSnBjSFJwYjI1ZFhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUNCN2FXNTBmU0JvWldsbmFIUWdXMlJsYzJOeWFYQjBhVzl1WFZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0FnZTNOMGNtbHVaMzBnZFc1cGRITWdZMjE4YVc1amFGeHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UwbHRZV2RsUldScGRHOXlmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11WTNKdmNDQTlJR1oxYm1OMGFXOXVJQ2gzYVdSMGFDd2dhR1ZwWjJoMExDQjFibWwwY3lrZ2UxeHVYRzRnSUNBZ0lDQWdJRjlqWVc1MllYTXVaMlYwU1cxaFoyVkVZWFJoS0NrdWNtVnRiM1psUTNKdmNFUmhkR0VvS1R0Y2JseHVJQ0FnSUNBZ0lDQmZZMkZ1ZG1GekxtZGxkRlpwWlhkd2IzSjBLQ2t1YzJWMEtIZHBaSFJvTENCb1pXbG5hSFFzSUhWdWFYUnpLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdjMmh2ZFd4a1FtVkRjbTl3Y0dWa0lEMGdkWFJwYkM1cGMwRnpjR1ZqZEVOb1lXNW5aV1FvWDJOaGJuWmhjeTVuWlhSSmJXRm5aU2dwTG5kcFpIUm9MQ0JmWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1YUdWcFoyaDBMQ0IzYVdSMGFDd2dhR1ZwWjJoMEtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2MyaHZkV3hrUW1WRGNtOXdjR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JmWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1WDE5a2NtRm5aMlZrSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmZZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VYMTlqY205d2NHVmtJRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUY5allXNTJZWE11WjJWMFNXMWhaMlZFWVhSaEtDa3VjMlYwUTNKdmNFUmhkR0VvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJRjlqWVc1MllYTXVaMlYwU1cxaFoyVW9LUzVmWDJOeWIzQndaV1FnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBY0dGeVlXMGdJSHR6ZEhKcGJtZDhiMkpxWldOMGZTQnJaWGxjYmlBZ0lDQWdLaUJBY0dGeVlXMGdJSHR2WW1wbFkzUjlJR1JsWm1GMWJIUldZV3gxWlZ4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTI5aWFtVmpkSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG1kbGRDQTlJR1oxYm1OMGFXOXVJQ2hyWlhrc0lHUmxabUYxYkhSV1lXeDFaU2tnZTF4dUlDQWdJQ0FnSUNCMllYSWdkbUZzZFdVZ1BTQmZjMlYwZEdsdVozTmJhMlY1WFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSNWNHVnZaaUIyWVd4MVpTQTlQVDBnSjNWdVpHVm1hVzVsWkNjZ1B5QmtaV1poZFd4MFZtRnNkV1VnT2lCMllXeDFaVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVEc5aFpITWdkR2hsSUdsdFlXZGxJR2x1ZEc4Z2RHaGxJR05oYm5aaGN5NWNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ0lIdE9kVzFpWlhKOFUzUnlhVzVuZlNCMWNteGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ0lIdEdkVzVqZEdsdmJuMGdZMkZzYkdKaFkydGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdEpiV0ZuWlVWa2FYUnZjbjFjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG14dllXUkpiV0ZuWlNBOUlHWjFibU4wYVc5dUlDaDFjbXdzSUdOaGJHeGlZV05yS1NCN1hHNGdJQ0FnSUNBZ0lHTmhiR3hpWVdOcklEMGdkSGx3Wlc5bUlHTmhiR3hpWVdOcklEMDlQU0FuWm5WdVkzUnBiMjRuSUQ4Z1kyRnNiR0poWTJzZ09pQm1kVzVqZEdsdmJpQW9LU0I3ZlR0Y2JpQWdJQ0FnSUNBZ1ptRmljbWxqTGtsdFlXZGxMbVp5YjIxVlVrd29kR2hwY3k1ZmRYSnNJRDBnZFhKc0xDQm1kVzVqZEdsdmJpQW9hVzFuS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JmWTJGdWRtRnpMbk5sZEVsdFlXZGxLR2x0WnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwYldjdVgxOTFjbXdnUFNCMWNtdzdYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJXY3VjMlZ1WkZSdlFtRmpheWdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMkZzYkdKaFkyc29hVzFuS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0F2S2lwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnSUh0emRISnBibWQ4YjJKcVpXTjBmU0JyWlhsY2JpQWdJQ0FnS2lCQWNHRnlZVzBnSUh0dlltcGxZM1I5SUhaaGJIVmxYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdTVzFoWjJWRlpHbDBiM0o5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1elpYUWdQU0JtZFc1amRHbHZiaUFvYTJWNUxDQjJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQWtMbVY0ZEdWdVpDaGZjMlYwZEdsdVozTXNJSFYwYVd3dVlYTnpaWEowUzJWNVZtRnNkV1ZRWVdseUtHdGxlU3dnZG1Gc2RXVXBLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhWMGFXd3VjMlYwVUhKdmNHVnlkR2xsY3loMGFHbHpMQ0I3WEc0Z0lDQWdJQ0FnSUdOaGJuWmhjem9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaMlYwT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlGOWpZVzUyWVhNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5S1R0Y2JuMWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JKYldGblpVVmthWFJ2Y2p0Y2JpSXNJaWQxYzJVZ2MzUnlhV04wSnp0Y2JseHVablZ1WTNScGIyNGdUV2x5Y205eVNHRnVaR3hsY2locGJXY3BJSHRjYmx4dUlDQWdJSFpoY2lCZmJXbHljbTl5WldRZ1BTQXdPMXh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUUhCaGNtRnRJQ0I3UW05dmJHVmhibjBnWTJobFkydGxaRnh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMDFwY25KdmNraGhibVJzWlhKOVhHNGdJQ0FnSUNvdlhHNGdJQ0FnZEdocGN5NXpaWFFnUFNCbWRXNWpkR2x2YmloamFHVmphMlZrS1NCN1hHNGdJQ0FnSUNBZ0lGOXRhWEp5YjNKbFpDQTlJQ2hwYldjdVpteHBjRmdnUFNCamFHVmphMlZrS1NBL0lERWdPaUF3TzF4dUlDQWdJQ0FnSUNCcGJXY3VjMlYwUTI5dmNtUnpLQ2t1WTJGdWRtRnpMbkpsYm1SbGNrRnNiQ2dwTzF4dVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUm9hWE11WjJWMFUzUmhkSFZ6SUQwZ1puVnVZM1JwYjI0b0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmZiV2x5Y205eVpXUTdYRzRnSUNBZ2ZWeHVYRzVjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQk5hWEp5YjNKSVlXNWtiR1Z5TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNTJZWElnZFhScGJDQTlJSEpsY1hWcGNtVW9KeTR2ZFhScGJDY3BPMXh1ZG1GeUlGUmxlSFJDZFhSMGIyNGdQU0J5WlhGMWFYSmxLQ2N1TDFSbGVIUkNkWFIwYjI0bktUdGNiblpoY2lCamIyNW1hV2NnUFNCeVpYRjFhWEpsS0NjdUwyTnZibVpwWnljcE8xeHVYRzVtZFc1amRHbHZiaUJTZFd4bGNraGhibVJzWlhJb2RtbGxkM0J2Y25RcElIdGNiaUFnSUNCMllYSWdYMlZ1WVdKc1pXUWdQU0JtWVd4elpUdGNiaUFnSUNCMllYSWdYMnhwYm1WeklEMGdleUI0T2lCdWRXeHNMQ0I1T2lCdWRXeHNJSDA3WEc0Z0lDQWdkbUZ5SUY5eVpXTjBJRDBnZXlCNE9pQnVkV3hzTENCNU9pQnVkV3hzSUgwN1hHNWNiaUFnSUNCMllYSWdSWFpsYm5RZ1BTQjdYRzRnSUNBZ0lDQWdJQzhxS2x4dUlDQWdJQ0FnSUNBZ0tpQlVjbWxuWjJWeWN5QjNhR1Z1SUdoaGJtUnNaV0poY2lCcGN5QnRiM1psWkZ4dUlDQWdJQ0FnSUNBZ0tpOWNiaUFnSUNBZ0lDQWdiMjVOYjNabE9pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjFjR1JoZEdWU2RXeGxjbFJsZUhRb2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5TzF4dVhHNGdJQ0FnWm5WdVkzUnBiMjRnZFhCa1lYUmxVblZzWlhKVVpYaDBLSEoxYkdWeUtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCaGVHbHpJRDBnY25Wc1pYSXVZWGhwY3p0Y2JpQWdJQ0FnSUNBZ2RtRnlJR0p2ZFc1a2N5QTlJSFpwWlhkd2IzSjBMbWRsZEVKdmRXNWtjeWdwTzF4dUlDQWdJQ0FnSUNCMllYSWdjRzl6SUQwZ2RYUnBiQzVoYzNObGNuUkNaWFIzWldWdUtISjFiR1Z5VzJGNGFYTmRMQ0JpYjNWdVpITXViV2x1VzJGNGFYTmRMQ0JpYjNWdVpITXViV0Y0VzJGNGFYTmRLVHRjYmlBZ0lDQWdJQ0FnY25Wc1pYSXViV0Z5YTJWeVcyRjRhWE5kSUQwZ2NuVnNaWEpiWVhocGMxMGdQU0J3YjNNN1hHNGdJQ0FnSUNBZ0lIWmhjaUJrYVcwZ1BTQW9jblZzWlhKYllYaHBjMTBnTFNCaWIzVnVaSE5iWVhocGMxMHBJQzhnS0hacFpYZHdiM0owTG1kbGRFUmhkR0VvS1M1d2NHMXRJQ29nTVRBZ0tpQjJhV1YzY0c5eWRDNWpZVzUyWVhNdVoyVjBTVzFoWjJVb0tTNXpZMkZzWlZncE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoaGVHbHpJRDA5UFNBbmRHOXdKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x0SUQwZ2RtbGxkM0J2Y25RdVoyVjBSR0YwWVNncExtUnBiUzVvWldsbmFIUWdMU0JrYVcwN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J5ZFd4bGNpNXpaWFJVWlhoMEtFMWhkR2d1Y205MWJtUW9aR2x0SUNvZ01UQXdLU0F2SURFd01DQXJJQ2NnSnlBcklIWnBaWGR3YjNKMExtZGxkRVJoZEdFb0tTNWthVzB1ZFc1cGRITXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMlpoWW5KcFl5NU1hVzVsZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJR1oxYm1OMGFXOXVJR2RsZEV4cGJtVW9ZWGhwY3lrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWW05MWJtUnpJRDBnZG1sbGQzQnZjblF1WjJWMFFtOTFibVJ6S0NrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dabUZpY21sakxreHBibVVvVzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSURBc0lEQXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZWGhwY3lBOVBUMGdKM2duSUQ4Z1ltOTFibVJ6TG5kcFpIUm9JRG9nTUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGVHbHpJRDA5UFNBbmVTY2dQeUJpYjNWdVpITXVhR1ZwWjJoMElEb2dNRnh1SUNBZ0lDQWdJQ0FnSUNBZ1hTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYWmxiblJsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkSEp2YTJWRVlYTm9RWEp5WVhrNklGczFMQ0ExWFN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wY205clpUb2dKeU13TURBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeWIydGxWMmxrZEdnNklERXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMGIzQTZJR0Y0YVhNZ1BUMDlJQ2Q0SnlBL0lHSnZkVzVrY3k1MGIzQWdLeUJpYjNWdVpITXVhR1ZwWjJoMElDOGdNaUE2SUdKdmRXNWtjeTUwYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWldaME9pQmhlR2x6SUQwOVBTQW5lU2NnUHlCaWIzVnVaSE11YkdWbWRDQXJJR0p2ZFc1a2N5NTNhV1IwYUNBdklESWdPaUJpYjNWdVpITXViR1ZtZEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdFNkV3hsY2toaGJtUnNaWEo5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1amJHVmhjaUE5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdXMTB1WTI5dVkyRjBLRjl5WldOMExuZ3NJRjl5WldOMExua3NJRjlzYVc1bGN5NTRMQ0JmYkdsdVpYTXVlU2t1Wm05eVJXRmphQ2htZFc1amRHbHZiaUFvYnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnZG1sbGQzQnZjblF1WTJGdWRtRnpMbkpsYlc5MlpTaHZLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJBY0dGeVlXMGdJSHRDYjI5c1pXRnVmU0JsYm1GaWJHVmtYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdVblZzWlhKSVlXNWtiR1Z5ZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdVpXNWhZbXhsSUQwZ1puVnVZM1JwYjI0Z0tHVnVZV0pzWldRcElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdKdmRXNWtjeUE5SUhacFpYZHdiM0owTG1kbGRFSnZkVzVrY3lncE8xeHVYRzRnSUNBZ0lDQWdJSFpoY2lCclpXVndVRzl6YVhScGIyNGdQU0FvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmxibUZpYkdWa0lDWW1JQ2hmWlc1aFlteGxaQ0E5UFQwZ1pXNWhZbXhsWkNrZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FnSUY5c2FXNWxjeTU0SUNZbUlDaE5ZWFJvTG1GaWN5aGZiR2x1WlhNdWVDNTNhV1IwYUNBdElHSnZkVzVrY3k1M2FXUjBhQ2tnUENBeEtTQW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ1gyeHBibVZ6TG5rZ0ppWWdLRTFoZEdndVlXSnpLRjlzYVc1bGN5NTVMbWhsYVdkb2RDQXRJR0p2ZFc1a2N5NW9aV2xuYUhRcElEd2dNU2xjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvYTJWbGNGQnZjMmwwYVc5dUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMWNHUmhkR1ZTZFd4bGNsUmxlSFFvWDNKbFkzUXVlQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjFjR1JoZEdWU2RXeGxjbFJsZUhRb1gzSmxZM1F1ZVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJRjlsYm1GaWJHVmtJRDBnWlc1aFlteGxaRHRjYmx4dUlDQWdJQ0FnSUNCMGFHbHpMbU5zWldGeUtDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRmZaVzVoWW14bFpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RtbGxkM0J2Y25RdVkyRnVkbUZ6TG5KbGJtUmxja0ZzYkNncE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JmYkdsdVpYTWdQU0I3SUhnNklHZGxkRXhwYm1Vb0ozZ25LU3dnZVRvZ1oyVjBUR2x1WlNnbmVTY3BJSDA3WEc1Y2JpQWdJQ0FnSUNBZ2RtbGxkM0J2Y25RdVkyRnVkbUZ6TG1Ga1pDaGZiR2x1WlhNdWVDazdYRzRnSUNBZ0lDQWdJSFpwWlhkd2IzSjBMbU5oYm5aaGN5NWhaR1FvWDJ4cGJtVnpMbmtwTzF4dVhHNGdJQ0FnSUNBZ0lGOXlaV04wTG5nZ1BTQnVaWGNnVkdWNGRFSjFkSFJ2YmlnbmFHOXlhWHB2Ym5SaGJGSjFiR1Z5Snl3Z0owZ25MQ0JqYjI1bWFXY3VjblZzWlhKSVlXNWtiR1VzSUhSeWRXVXBYRzRnSUNBZ0lDQWdJQ0FnSUNBdWMyVjBLR052Ym1acFp5NXlkV3hsY2toaGJtUnNaUzU0S0Y5c2FXNWxjeXdnWW05MWJtUnpLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDNWhaR1JVYnloMmFXVjNjRzl5ZEM1allXNTJZWE1wWEc0Z0lDQWdJQ0FnSUNBZ0lDQXViMjRvSjIxdmRtbHVaeWNzSUVWMlpXNTBMbTl1VFc5MlpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1MGNtbG5aMlZ5S0NkdGIzWnBibWNuS1R0Y2JseHVJQ0FnSUNBZ0lDQmZjbVZqZEM1NUlEMGdibVYzSUZSbGVIUkNkWFIwYjI0b0ozWmxjblJwWTJGc1VuVnNaWEluTENBblZpY3NJR052Ym1acFp5NXlkV3hsY2toaGJtUnNaU3dnZEhKMVpTbGNiaUFnSUNBZ0lDQWdJQ0FnSUM1elpYUW9ZMjl1Wm1sbkxuSjFiR1Z5U0dGdVpHeGxMbmtvWDJ4cGJtVnpMQ0JpYjNWdVpITXBLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0xtRmtaRlJ2S0hacFpYZHdiM0owTG1OaGJuWmhjeWxjYmlBZ0lDQWdJQ0FnSUNBZ0lDNXZiaWduYlc5MmFXNW5KeXdnUlhabGJuUXViMjVOYjNabEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnTG5SeWFXZG5aWElvSjIxdmRtbHVaeWNwTzF4dVhHNGdJQ0FnSUNBZ0lIWnBaWGR3YjNKMExtTmhiblpoY3k1eVpXNWtaWEpCYkd3b0tUdGNibHh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN1VuVnNaWEpJWVc1a2JHVnlmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11Y21WelpYUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVZ1WVdKc1pTaGZaVzVoWW14bFpDazdYRzRnSUNBZ2ZUdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCU2RXeGxja2hoYm1Sc1pYSTdYRzRpTENJbmRYTmxJSE4wY21samRDYzdYRzVjYm5aaGNpQmpiMjVtYVdjZ1BTQnlaWEYxYVhKbEtDY3VMMk52Ym1acFp5Y3BPMXh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCMFpYaDBMV0oxZEhSdmJpQjNhWFJvSUhSbGVIUXZjMlYwZEdsdVozTWdjSEp2ZG1sa1pXUXVYRzRnS2lCQWNHRnlZVzBnZTFOMGNtbHVaMzBnZEdWNGRDQXRJSFJsZUhRZ2RHOGdZbVVnYzJodmQyNGdhVzV6YVdSbElIUm9aU0JpZFhSMGIyNWNiaUFxSUVCd1lYSmhiU0I3VDJKcVpXTjBmU0J6WlhSMGFXNW5jMXh1SUNvdlhHNW1kVzVqZEdsdmJpQlVaWGgwUW5WMGRHOXVLR2xrTENCMFpYaDBMQ0J6WlhSMGFXNW5jeXdnYVhOQlkzUnBkbVVwSUh0Y2JpQWdJQ0JtWVdKeWFXTXVSM0p2ZFhBdVkyRnNiQ2gwYUdsektUdGNibHh1SUNBZ0lIWmhjaUJmWDJGamRHbDJaU0E5SUdselFXTjBhWFpsSUh4OElHWmhiSE5sTzF4dUlDQWdJSFpoY2lCZlkyRnNiR0poWTJzZ1BTQnVkV3hzTzF4dUlDQWdJSFpoY2lCZmNtVmpkQ0E5SUc1MWJHdzdYRzRnSUNBZ2RtRnlJRjkwWlhoMElEMGdiblZzYkR0Y2JpQWdJQ0IyWVhJZ1gybGtJRDBnYVdRN1hHNGdJQ0FnZG1GeUlIZHBaSFJvSUQwZ2MyVjBkR2x1WjNNdWNtVmpkQ0EvSUhObGRIUnBibWR6TG5KbFkzUXVkMmxrZEdnZ09pQXdPMXh1SUNBZ0lIWmhjaUJvWldsbmFIUWdQU0J6WlhSMGFXNW5jeTV5WldOMElEOGdjMlYwZEdsdVozTXVjbVZqZEM1b1pXbG5hSFFnT2lBd08xeHVYRzRnSUNBZ2RtRnlJRjl5WldOMFUyVjBkR2x1WjNNZ1BTQWtMbVY0ZEdWdVpDaDdmU3dnWTI5dVptbG5MblJsZUhSQ2RYUjBiMjR1Y21WamRDaDNhV1IwYUN3Z2FHVnBaMmgwS1N3Z2MyVjBkR2x1WjNNdWNtVmpkQ2s3WEc0Z0lDQWdkbUZ5SUY5MFpYaDBVMlYwZEdsdVozTWdQU0FrTG1WNGRHVnVaQ2g3ZlN3Z1kyOXVabWxuTG5SbGVIUkNkWFIwYjI0dWRHVjRkQ3dnYzJWMGRHbHVaM011ZEdWNGRDd2dlMXh1SUNBZ0lDQWdJQ0IwWlhoME9pQkJjbkpoZVM1cGMwRnljbUY1S0hSbGVIUXBJRDhnZEdWNGRGc3dYU0E2SUhSbGVIUXNYRzRnSUNBZ0lDQWdJSFJsZUhSQlkzUnBkbVU2SUVGeWNtRjVMbWx6UVhKeVlYa29kR1Y0ZENrZ1B5QjBaWGgwV3pGZElEb2dkR1Y0ZEN4Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklFMWhhMlVnYzNWeVpTQjNaU2R5WlNCcGJuUmxjbUZqZEdsMlpWeHVJQ0FnSUhSb2FYTXVaR2x6WVdKc1pXUWdQU0JtWVd4elpUdGNiaUFnSUNCMGFHbHpMbWh2ZG1WeVEzVnljMjl5SUQwZ1kyOXVabWxuTG5SbGVIUkNkWFIwYjI0dVkzVnljMjl5TzF4dVhHNGdJQ0FnTHk4Z1NXNXBkR2xoYkdsNlpTQjBaWGgwSUdGdVpDQnlaV04wWVc1bmJHVmNiaUFnSUNCZmRHVjRkQ0E5SUc1bGR5Qm1ZV0p5YVdNdVZHVjRkQ2duSnl3Z1gzUmxlSFJUWlhSMGFXNW5jeWs3WEc0Z0lDQWdYM0psWTNRZ1BTQnVaWGNnWm1GaWNtbGpMbEpsWTNRb1gzSmxZM1JUWlhSMGFXNW5jeWs3WEc1Y2JpQWdJQ0IwYUdsekxtRmtaRmRwZEdoVmNHUmhkR1VvWDNKbFkzUXBMbUZrWkZkcGRHaFZjR1JoZEdVb1gzUmxlSFFwTzF4dVhHNGdJQ0FnTHlvcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUNCN1UzUnlhVzVuZlNCMFpYaDBYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdWR1Y0ZEVKMWRIUnZibjFjYmlBZ0lDQWdLaTljYmlBZ0lDQjBhR2x6TG5ObGRGUmxlSFFnUFNCbWRXNWpkR2x2YmloMFpYaDBLU0I3WEc0Z0lDQWdJQ0FnSUY5MFpYaDBMbk5sZEZSbGVIUW9LSFJsZUhRZ2ZId2dKeWNwTG5SdlUzUnlhVzVuS0NrcExuTmxkRU52YjNKa2N5Z3BPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGZjbVZqZEZObGRIUnBibWR6TG1SNWJtRnRhV05YS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxuZHBaSFJvSUQwZ1gzSmxZM1F1ZDJsa2RHZ2dQU0JmZEdWNGRDNTNhV1IwYUNBcklHTnZibVpwWnk1MFpYaDBRblYwZEc5dUxuQmhaR1JwYm1jN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JwWmlBb1gzSmxZM1JUWlhSMGFXNW5jeTVrZVc1aGJXbGpTQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1b1pXbG5hSFFnUFNCZmNtVmpkQzVvWldsbmFIUWdQU0JmZEdWNGRDNW9aV2xuYUhRZ0t5QmpiMjVtYVdjdWRHVjRkRUoxZEhSdmJpNXdZV1JrYVc1bk8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyVjBRMjl2Y21SektDazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIUm9hWE11WjJWMFNXUWdQU0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUY5cFpEdGNiaUFnSUNCOVhHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdENiMjlzWldGdWZWeHVJQ0FnSUNBcUwxeHVJQ0FnSUhSb2FYTXVhWE5CWTNScGRtVWdQU0JtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYMTloWTNScGRtVTdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lHWjFibU4wYVc5dUlHaGhibVJzWlUxdmRYTmxSRzkzYmlobEtTQjdYRzRnSUNBZ0lDQWdJSFJ2WjJkc1pVRmpkR2wyWlZOMGVXeGxMbU5oYkd3b2RHaHBjeWs3WEc0Z0lDQWdJQ0FnSUY5allXeHNZbUZqYXk1allXeHNLSFJvYVhNc0lHVXBPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TGw5ZlozSnZkWEFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVgxOW5jbTkxY0M1eVpXNWtaWElvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdaMWJtTjBhVzl1SUhSdloyZHNaVUZqZEdsMlpWTjBlV3hsS0NrZ2UxeHVJQ0FnSUNBZ0lDQmZjbVZqZEM1elpYUkdhV3hzS0Y5eVpXTjBVMlYwZEdsdVozTmJkR2hwY3k1cGMwRmpkR2wyWlNncElEOGdKMkZqZEdsMlpVWnBiR3duSURvZ0oyWnBiR3duWFNrN1hHNGdJQ0FnSUNBZ0lGOTBaWGgwTG5ObGRFWnBiR3dvWDNSbGVIUlRaWFIwYVc1bmMxdDBhR2x6TG1selFXTjBhWFpsS0NrZ1B5QW5ZV04wYVhabFJtbHNiQ2NnT2lBblptbHNiQ2RkS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVVpYaDBLRjkwWlhoMFUyVjBkR2x1WjNOYmRHaHBjeTVwYzBGamRHbDJaU2dwSUQ4Z0ozUmxlSFJCWTNScGRtVW5JRG9nSjNSbGVIUW5YU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1dmJrTnNhV05ySUQwZ1puVnVZM1JwYjI0b1kyRnNiR0poWTJzcElIdGNiaUFnSUNBZ0lDQWdYMk5oYkd4aVlXTnJJRDBnWTJGc2JHSmhZMnNnZkh3Z1puVnVZM1JwYjI0b0tTQjdmVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXZiaWduYlc5MWMyVmtiM2R1Snl3Z1puVnVZM1JwYjI0Z0tHVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRUZ6SUdsdVlXTjBhWFpsSUdKMWRIUnZibk1nWVhKbElITjBhV3hzSUdOc2FXTnJZV0pzWlN3Z2QyVWdabWx5YzNRZ1kyaGxZMnNnYVdZZ2RHaGxJR0oxZEhSdmJpQnBjeUJrYVhOaFlteGxaQzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDOHZJRTl1YkhrZ2RHaGxiaUIzWlNCemFHOTFiR1FnWkc4Z2MzUjFabVl1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVhSb2FYTXVaR2x6WVdKc1pXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUdsekxsOWZZV04wYVhabElEMGdJWFJvYVhNdVgxOWhZM1JwZG1VN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FHRnVaR3hsVFc5MWMyVkViM2R1TG1OaGJHd29kR2hwY3l3Z1pTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lIMHVZbWx1WkNoMGFHbHpLU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsek8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCMGFHbHpMbk5sZEVGamRHbDJaU0E5SUdaMWJtTjBhVzl1SUNocGMwRmpkR2wyWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5ZllXTjBhWFpsSUQwZ2RIbHdaVzltSUdselFXTjBhWFpsSUQwOVBTQW5kVzVrWldacGJtVmtKeUEvSUhSeWRXVWdPaUFoSVdselFXTjBhWFpsTzF4dUlDQWdJQ0FnSUNCMGIyZG5iR1ZCWTNScGRtVlRkSGxzWlM1allXeHNLSFJvYVhNcE8xeHVJQ0FnSUgwN1hHNWNiaUFnSUNCMGFHbHpMbk5sZEVScGMyRmliR1ZrSUQwZ1puVnVZM1JwYjI0Z0tHbHpSR2x6WVdKc1pXUXBYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG1ScGMyRmliR1ZrSUQwZ2FYTkVhWE5oWW14bFpEdGNibHh1SUNBZ0lDQWdJQ0JmY21WamRDNXpaWFJHYVd4c0tGOXlaV04wVTJWMGRHbHVaM05iZEdocGN5NWthWE5oWW14bFpDQS9JQ2RrYVhOaFlteGxaRVpwYkd3bklEb2dKMlpwYkd3blhTazdYRzRnSUNBZ0lDQWdJRjkwWlhoMExuTmxkRVpwYkd3b1gzUmxlSFJUWlhSMGFXNW5jMXQwYUdsekxtUnBjMkZpYkdWa0lEOGdKMlJwYzJGaWJHVmtSbWxzYkNjZ09pQW5abWxzYkNkZEtUdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ2FXWWdLRjkwWlhoMFUyVjBkR2x1WjNNdWRHVjRkQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbk5sZEZSbGVIUW9YM1JsZUhSVFpYUjBhVzVuY3k1MFpYaDBLVHRjYmlBZ0lDQjlYRzU5WEc1Y2JsUmxlSFJDZFhSMGIyNHVjSEp2ZEc5MGVYQmxJRDBnVDJKcVpXTjBMbU55WldGMFpTaG1ZV0p5YVdNdVIzSnZkWEF1Y0hKdmRHOTBlWEJsS1R0Y2JsUmxlSFJDZFhSMGIyNHVjSEp2ZEc5MGVYQmxMbU52Ym5OMGNuVmpkRzl5SUQwZ1ZHVjRkRUoxZEhSdmJqdGNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JVWlhoMFFuVjBkRzl1TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNTJZWElnUm5KaGJXVklZVzVrYkdWeUlEMGdjbVZ4ZFdseVpTZ25MaTlHY21GdFpVaGhibVJzWlhJbktUdGNiblpoY2lCSGIzSmxTR0Z1Wkd4bGNpQTlJSEpsY1hWcGNtVW9KeTR2UjI5eVpVaGhibVJzWlhJbktUdGNiblpoY2lCU2RXeGxja2hoYm1Sc1pYSWdQU0J5WlhGMWFYSmxLQ2N1TDFKMWJHVnlTR0Z1Wkd4bGNpY3BPMXh1ZG1GeUlIVjBhV3dnUFNCeVpYRjFhWEpsS0NjdUwzVjBhV3duS1R0Y2JseHVablZ1WTNScGIyNGdWbWxsZDNCdmNuUW9ZMkZ1ZG1GektTQjdYRzRnSUNBZ2RtRnlJRjlpWldGdGN5QTlJRnRkTzF4dUlDQWdJSFpoY2lCZlltOXlaR1Z5VjJsa2RHZ2dQU0F5TzF4dUlDQWdJSFpoY2lCZlpHRjBZU0E5SUc1MWJHdzdYRzRnSUNBZ2RtRnlJRjl5WldOME8xeHVJQ0FnSUhaaGNpQnpaV3htSUQwZ2RHaHBjenRjYmx4dUlDQWdJQzhxS2x4dUlDQWdJQ0FxSUVGd2NHeHBaWE1nZG1sbGQzQnZjblFnZEc4Z2NHRm5aVnh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHRndjR3g1S0NrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWTNKdmNFUmhkR0VnUFNCallXNTJZWE11WjJWMFNXMWhaMlZFWVhSaEtDa3VaMlYwUTNKdmNFUmhkR0VvS1R0Y2JpQWdJQ0FnSUNBZ1kyRnVkbUZ6TG5KbGJXOTJaU2hmY21WamRDazdYRzVjYmlBZ0lDQWdJQ0FnWDNKbFkzUWdQU0J1WlhjZ1ptRmljbWxqTGxKbFkzUW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pYWmxiblJsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1hV3hzT2lBbmRISmhibk53WVhKbGJuUW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2QybGtkR2c2SUY5a1lYUmhMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBPaUJmWkdGMFlTNW9aV2xuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZEhKdmEyVTZJQ2NqWm1abUp5eGNiaUFnSUNBZ0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQmpZVzUyWVhNdVgxOTBlWEJsSUQwOVBTQW5ZMkZ1ZG1Gekp5QS9JREFnT2lCZlltOXlaR1Z5VjJsa2RHaGNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ1gzSmxZM1F1ZDJsa2RHZ2dLejBnWDJKdmNtUmxjbGRwWkhSb08xeHVJQ0FnSUNBZ0lDQmZjbVZqZEM1b1pXbG5hSFFnS3owZ1gySnZjbVJsY2xkcFpIUm9PMXh1SUNBZ0lDQWdJQ0JmY21WamRDNWhaR1JVYnloallXNTJZWE1wTG1ObGJuUmxjaWdwTG5ObGRFTnZiM0prY3lncE8xeHVYRzRnSUNBZ0lDQWdJR2xtSUNoamNtOXdSR0YwWVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnTHk4Z1EyRnNZM1ZzWVhSbElIUm9aU0J1WlhjZ2NHOXphWFJwYjI0Z1lXWjBaWElnYzJOeVpXVnVjbVZ6YVhwbElHRnVaQ0IzYUdWdUlIUm9aVnh1SUNBZ0lDQWdJQ0FnSUNBZ0x5OGdhVzFoWjJVZ1lXeHlaV0ZrZVNCb1lYTWdZbVZsYmlCamNtOXdjR1ZrSUhSdklHRWdZMlZ5ZEdGcGJpQndiM05wZEdsdmJpNWNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnNaV1owSUQwZ1gzSmxZM1F1YkdWbWRDQXJJRjl5WldOMExuTjBjbTlyWlZkcFpIUm9JQzBnS0dOaGJuWmhjeTVuWlhSSmJXRm5aU2dwTG5kcFpIUm9JQ29nWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1YzJOaGJHVllJQ29nWTNKdmNFUmhkR0V1ZUNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IyWVhJZ2RHOXdJRDBnWDNKbFkzUXVkRzl3SUNzZ1gzSmxZM1F1YzNSeWIydGxWMmxrZEdnZ0xTQW9ZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VhR1ZwWjJoMElDb2dZMkZ1ZG1GekxtZGxkRWx0WVdkbEtDa3VjMk5oYkdWWklDb2dZM0p2Y0VSaGRHRXVlU2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJR05oYm5aaGN5NW5aWFJKYldGblpTZ3BMbk5sZENoN0lHeGxablE2SUd4bFpuUXNJSFJ2Y0RvZ2RHOXdJSDBwTG5ObGRFTnZiM0prY3lncE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJGdWRtRnpMbWRsZEVsdFlXZGxLQ2t1WTJWdWRHVnlLQ2t1YzJWMFEyOXZjbVJ6S0NrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqWVc1MllYTXVaMlYwU1cxaFoyVW9LUzVrY21GbkxtVnVZV0pzWlNoallXeGpUV2x1VFdGNFFtOTFibVJ6Um05eVVtVmpkQ2hmY21WamRDNW5aWFJKYm5OcFpHVkNiM1Z1WkdsdVoxSmxZM1FvS1N3Z1kyRnVkbUZ6TG1kbGRFbHRZV2RsS0NrcEtWeHVJQ0FnSUNBZ0lDQmpZVzUyWVhNdVoyVjBRWEJsY25SMWNtVnpLQ2t1WVhCd2JIa29YMlJoZEdFdVlYaHBjeXdnWDNKbFkzUXVaMlYwUW05MWJtUnBibWRTWldOMEtDa3BPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGpZVzUyWVhNdVgxOTBlWEJsSUNFOVBTQW5ZMkZ1ZG1Gekp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pISmhkMEpsWVcxektDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCelpXeG1Mbk5sZEVaeVlXMWxLSE5sYkdZdVoyVjBSbkpoYldWSVlXNWtiR1Z5S0NrdVoyVjBSbkpoYldWVWVYQmxLQ2twTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdZMkZ1ZG1GekxtZGxkRVJ5WVdkaVlYSnpLQ2t1WVhCd2JIa29LVHRjYmlBZ0lDQWdJQ0FnTHk4Z1FYQmxjblIxY21WeklITnZiV1YwYVcxbGN5QnZkbVZ5YkdGd2N5QjBhR1VnZG1sbGQzQnZjblJ6SUdKdmRXNWthVzVuSUhKbFkzUXVYRzRnSUNBZ0lDQWdJQzh2SUZOdmJIWmxJSFJvYVhNZ1lua2dZbkpwYm1kcGJtY2dhWFFnZEc4Z2RHaGxJR1p5YjI1MElHRm1kR1Z5SUdGd1pYSjBkWEpsY3lCaGNtVWdZWEJ3YkdsbFpDNWNiaUFnSUNBZ0lDQWdYM0psWTNRdVluSnBibWRVYjBaeWIyNTBLQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nVW1WdVpHVnlJSFJvWlNCa2FXRm5iMjVoYkNCc2FXNWxjeUJtY205dElIWnBaWGR3YjNKMElIUnZJR1ZrWjJVZ2IyWWdkR2hsSUdOaGJuWmhjMXh1SUNBZ0lDQXFMMXh1SUNBZ0lHWjFibU4wYVc5dUlHUnlZWGRDWldGdGN5Z3BJSHRjYmlBZ0lDQWdJQ0FnWDJKbFlXMXpMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLR0psWVcwcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGJuWmhjeTV5WlcxdmRtVW9ZbVZoYlNrN1hHNGdJQ0FnSUNBZ0lIMHBPMXh1WEc0Z0lDQWdJQ0FnSUY5aVpXRnRjeUE5SUZ0ZE8xeHVYRzRnSUNBZ0lDQWdJQzh2SUZSUFVDQk1SVVpVWEc0Z0lDQWdJQ0FnSUY5aVpXRnRjeTV3ZFhOb0tHNWxkeUJtWVdKeWFXTXVUR2x1WlNoY2JpQWdJQ0FnSUNBZ0lDQWdJRnRmY21WamRDNXNaV1owTENCZmNtVmpkQzUwYjNBc0lGOXlaV04wTG14bFpuUWdMU0JmY21WamRDNTBiM0FzSUMweFhTd2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSE4wY205clpUb2dKeU5tWm1ZbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9PaUF5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FwS1R0Y2JseHVJQ0FnSUNBZ0lDQXZMeUJVVDFBZ1VrbEhTRlJjYmlBZ0lDQWdJQ0FnWDJKbFlXMXpMbkIxYzJnb1gySmxZVzF6V3pCZExtTnNiMjVsS0NrdWMyVjBLSHNnWm14cGNGZzZJSFJ5ZFdVc0lHeGxablE2SUY5eVpXTjBMbXhsWm5RZ0t5QmZjbVZqZEM1M2FXUjBhQ0I5S1NrN1hHNGdJQ0FnSUNBZ0lDOHZJRUpQVkZSUFRTQlNTVWRJVkZ4dUlDQWdJQ0FnSUNCZlltVmhiWE11Y0hWemFDaGZZbVZoYlhOYk1WMHVZMnh2Ym1Vb0tTNXpaWFFvZXlCbWJHbHdXVG9nZEhKMVpTd2dkRzl3T2lCZmNtVmpkQzUwYjNBZ0t5QmZjbVZqZEM1b1pXbG5hSFFnZlNrcE8xeHVJQ0FnSUNBZ0lDQXZMeUJDVDFSVVQwMGdURVZHVkZ4dUlDQWdJQ0FnSUNCZlltVmhiWE11Y0hWemFDaGZZbVZoYlhOYk1GMHVZMnh2Ym1Vb0tTNXpaWFFvZXlCbWJHbHdXVG9nZEhKMVpTd2dkRzl3T2lCZmNtVmpkQzUwYjNBZ0t5QmZjbVZqZEM1b1pXbG5hSFFnZlNrcE8xeHVYRzRnSUNBZ0lDQWdJRjlpWldGdGN5NW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaHZLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpZVzUyWVhNdVlXUmtLRzhwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdieTVpY21sdVoxUnZSbkp2Ym5Rb0tUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeW9xWEc0Z0lDQWdJQ29nUjJWMGN5QmhiaUJ2WW1wbFkzUWdkMmwwYUNCdGFXNGdMeUJ0WVhnZ2RtRnNkV1Z6SUdadmNpQmxZV05vSUdGNGFYTXNJR0poYzJWa0lHOXVJSFJvWlNCaWIzVnVaSE5jYmlBZ0lDQWdLaUJ2WmlCd1lYTnpaV1FnWm1GaWNtbGpMbEpsWTNSY2JpQWdJQ0FnS2lCQWNHRnlZVzBnSUh0bVlXSnlhV011VW1WamRIMGdjbVZqZEZ4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTA5aWFtVmpkSDFjYmlBZ0lDQWdLaTljYmlBZ0lDQm1kVzVqZEdsdmJpQmpZV3hqVFdsdVRXRjRRbTkxYm1SelJtOXlVbVZqZENoeVpXTjBMQ0JwYldjcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bFpuUTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J0YVc0NklISmxZM1F1YkdWbWRDQXJJSEpsWTNRdWQybGtkR2dnTFNBb2FXMW5MbmRwWkhSb0lDb2dhVzFuTG5OallXeGxXQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYldGNE9pQnlaV04wTG14bFpuUmNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYjNBNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnRhVzQ2SUhKbFkzUXVkRzl3SUNzZ2NtVmpkQzVvWldsbmFIUWdMU0FvYVcxbkxtaGxhV2RvZENBcUlHbHRaeTV6WTJGc1pWa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzFoZURvZ2NtVmpkQzUwYjNCY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3lBOUlHTmhiblpoY3p0Y2JseHVJQ0FnSUhSb2FYTXVaMlYwUW05MWJtUnpJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1gzSmxZM1F1WjJWMFNXNXphV1JsUW05MWJtUnBibWRTWldOMEtDazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lDOHFLbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMVpwWlhkd2IzSjBmVnh1SUNBZ0lDQXFMMXh1SUNBZ0lIUm9hWE11Y21WelpYUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hmWkdGMFlTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMlYwS0Y5a1lYUmhMbVJwYlM1M2FXUjBhQ3dnWDJSaGRHRXVaR2x0TG1obGFXZG9kQ3dnWDJSaGRHRXVaR2x0TG5WdWFYUnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEdocGN6dGNiaUFnSUNCOU8xeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dRSEJoY21GdElDQjdUblZ0WW1WeWZTQjNhV1IwYUZ4dUlDQWdJQ0FxSUVCd1lYSmhiU0FnZTA1MWJXSmxjbjBnYUdWcFoyaDBYRzRnSUNBZ0lDb2dRSEJoY21GdElDQjdjM1J5YVc1bmZTQjFibWwwYzF4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTFacFpYZHdiM0owZlZ4dUlDQWdJQ0FxTDF4dUlDQWdJSFJvYVhNdWMyVjBJRDBnWm5WdVkzUnBiMjRnS0hkcFpIUm9MQ0JvWldsbmFIUXNJSFZ1YVhSektTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCdmJHUkVZWFJoSUQwZ1gyUmhkR0U3WEc1Y2JpQWdJQ0FnSUNBZ1gyUmhkR0VnUFNCMWRHbHNMbU5oYkdORGNtOXdLR05oYm5aaGN5NW5aWFJKYldGblpTZ3BMQ0IzYVdSMGFDd2dhR1ZwWjJoMExDQjFibWwwY3lrN1hHNWNiaUFnSUNBZ0lDQWdkbUZ5SUd0bFpYQkRjbTl3Y0dsdVp5QTlJQ2h2YkdSRVlYUmhJQ1ltSUNGMWRHbHNMbWx6UVhOd1pXTjBRMmhoYm1kbFpDaHZiR1JFWVhSaExtUnBiUzUzYVdSMGFDd2diMnhrUkdGMFlTNWthVzB1YUdWcFoyaDBMQ0IzYVdSMGFDd2dhR1ZwWjJoMEtTazdYRzRnSUNBZ0lDQWdJR2xtSUNoclpXVndRM0p2Y0hCcGJtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhiblpoY3k1blpYUkpiV0ZuWlVSaGRHRW9LUzV6WlhSRGNtOXdSR0YwWVNncE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWVhCd2JIa29LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW5aWFJIYjNKbGN5Z3BMbkpsYzJWMEtDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVoyVjBVblZzWlhKektDa3VjbVZ6WlhRb0tUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1kyRnVkbUZ6TG1kbGRFbHRZV2RsS0NrdVgxOWpjbTl3Y0dWa0lDWW1JQ0ZyWldWd1EzSnZjSEJwYm1jcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOaGJuWmhjeTVuWlhSQmNHVnlkSFZ5WlhNb0tTNXpaWFJVY21GdWMzQmhjbVZ1ZENoMGNuVmxLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdMeThnVkhKcFoyZGxjaUJsZG1WdWRDQjBieUIwWld4c0lIUm9aU0JwYldGblpTQnVaV1ZrY3lCMGJ5QmlaU0JrY21GbloyVmtMbHh1SUNBZ0lDQWdJQ0FnSUNBZ0pDaGtiMk4xYldWdWRDa3VkSEpwWjJkbGNpZ25VRWxGT201bFpXUnpMV1J5WVdkbmFXNW5KeXdnZXlCaGVHbHpPaUJmWkdGMFlTNWhlR2x6SUgwcE8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTJGdWRtRnpMbWRsZEVKMWRIUnZiazFsYm5Vb0tTNWljbWx1WjFSdlJuSnZiblFvS1R0Y2JseHVJQ0FnSUgwN1hHNWNiaUFnSUNBdktpcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ0lIdHpkSEpwYm1kOUlHWnlZVzFsVkhsd1pTQjNhR2wwWlh4aWJHRmphM3hwYldGblpYeHViMjVsWEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3Vm1sbGQzQnZjblI5WEc0Z0lDQWdJQ292WEc0Z0lDQWdkR2hwY3k1elpYUkdjbUZ0WlNBOUlHWjFibU4wYVc5dUlDaG1jbUZ0WlZSNWNHVXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW5aWFJHY21GdFpVaGhibVJzWlhJb0tTNXpaWFJHY21GdFpYTW9abkpoYldWVWVYQmxLVHRjYmx4dUlDQWdJQ0FnSUNCMllYSWdZblYwZEc5dWN5QTlJR05oYm5aaGN5NW5aWFJDZFhSMGIyNU5aVzUxS0NrdVoyVjBTWFJsYlhNb0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0daeVlXMWxWSGx3WlNBOVBUMGdKMjV2Ym1VbktTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWRYUjBiMjV6V3pCZExuTmxkRVJwYzJGaWJHVmtLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW5WMGRHOXVjMXN3WFM1elpYUkVhWE5oWW14bFpDaG1ZV3h6WlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMkZ1ZG1GekxtZGxkRUoxZEhSdmJrMWxiblVvS1M1aWNtbHVaMVJ2Um5KdmJuUW9LVHRjYmx4dUlDQWdJQ0FnSUNCallXNTJZWE11Y21WbWNtVnphRE5rVm1sbGR5Z3BPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQjBhR2x6TG1kbGRFUmhkR0VnUFNCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFgyUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OdmJHVXViRzluS0NkdWJ5QmtZWFJoSnlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGOWtZWFJoTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0IyWVhJZ1gyWnlZVzFsU0dGdVpHeGxjaUE5SUc1MWJHdzdYRzVjYmlBZ0lDQjBhR2x6TG1kbGRFWnlZVzFsU0dGdVpHeGxjaUE5SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlGOW1jbUZ0WlVoaGJtUnNaWElnZkh3Z0tGOW1jbUZ0WlVoaGJtUnNaWElnUFNCdVpYY2dSbkpoYldWSVlXNWtiR1Z5S0hSb2FYTXBLVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdkR2hwY3k1blpYUkhiM0psY3lBOUlHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgxOW5iM0psU0dGdVpHeGxjaUI4ZkNBb2RHaHBjeTVmWDJkdmNtVklZVzVrYkdWeUlEMGdibVYzSUVkdmNtVklZVzVrYkdWeUtIUm9hWE1wS1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnZEdocGN5NW5aWFJTZFd4bGNuTWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDlmY25Wc1pYSklZVzVrYkdWeUlIeDhJQ2gwYUdsekxsOWZjblZzWlhKSVlXNWtiR1Z5SUQwZ2JtVjNJRkoxYkdWeVNHRnVaR3hsY2loMGFHbHpLU2s3WEc0Z0lDQWdmVHRjYmx4dWZWeHVYRzV0YjJSMWJHVXVaWGh3YjNKMGN5QTlJRlpwWlhkd2IzSjBPMXh1SWl3aUozVnpaU0J6ZEhKcFkzUW5PMXh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUh0Y2JpQWdJQ0JtY21GdFpYTTZJSEpsY1hWcGNtVW9KeTR2WTI5dVptbG5MMlp5WVcxbGN5Y3BMRnh1SUNBZ0lIUmxlSFJDZFhSMGIyNDZJSEpsY1hWcGNtVW9KeTR2WTI5dVptbG5MM1JsZUhRdFluVjBkRzl1Snlrc1hHNGdJQ0FnWW5WMGRHOXVUV1Z1ZFRvZ2NtVnhkV2x5WlNnbkxpOWpiMjVtYVdjdlluVjBkRzl1TFcxbGJuVW5LU3hjYmlBZ0lDQnlkV3hsY2toaGJtUnNaVG9nY21WeGRXbHlaU2duTGk5amIyNW1hV2N2Y25Wc1pYSXRhR0Z1Wkd4bEp5a3NYRzRnSUNBZ1pISmhaMGhoYm1Sc1pUb2djbVZ4ZFdseVpTZ25MaTlqYjI1bWFXY3ZaSEpoWnkxb1lXNWtiR1VuS1N4Y2JpQWdJQ0JrY21GblFtRnlPaUJ5WlhGMWFYSmxLQ2N1TDJOdmJtWnBaeTlrY21GbkxXSmhjaWNwTEZ4dUlDQWdJSE5qY21WbGJsTnBlbVZ6T2lCeVpYRjFhWEpsS0NjdUwyTnZibVpwWnk5elkzSmxaVzR0YzJsNlpYTW5LU3hjYm4wN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1WEc0Z0lDQWdZMkZ1ZG1Gek9pQjdYRzRnSUNBZ0lDQWdJRzFoY21kcGJqb2dOU3hjYmlBZ0lDQWdJQ0FnZEdWNGREb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ptbHNiRG9nSnlObVptWm1abVluTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZV04wYVhabFJtbHNiRG9nSnlObVptWm1abVluTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR2x6WVdKc1pXUkdhV3hzT2lBbkkyWm1abVptWmlkY2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdjbVZqZERvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWm1sc2JEb2dKeU16TkRNME16UW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhWFpsUm1sc2JEb2dKeU0wT1RRNU5Ea25MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHpZV0pzWldSR2FXeHNPaUFuSXprNU9UazVPU2RjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0I5TEZ4dVhHNGdJQ0FnZDJGc2JIQmhjR1Z5T2lCN1hHNGdJQ0FnSUNBZ0lHMWhjbWRwYmpvZ05TeGNiaUFnSUNBZ0lDQWdkR1Y0ZERvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWm1sc2JEb2dKeU5tWm1abVptWW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXTjBhWFpsUm1sc2JEb2dKeU5tWm1abVptWW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pHbHpZV0pzWldSR2FXeHNPaUFuSTJabVptWm1aaWRjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2NtVmpkRG9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdabWxzYkRvZ0p5TXpORE0wTXpRbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdOMGFYWmxSbWxzYkRvZ0p5TTBPVFE1TkRrbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdsellXSnNaV1JHYVd4c09pQW5Jems1T1RrNU9TZGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQjlYRzVjYm4wN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1SUNBZ0lHWnBiR3c2SUNjalltSmlZbUppSnl4Y2JpQWdJQ0J6YVhwbE9pQXlNQ3hjYm4wN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1SUNBZ0lIUmxlSFE2SUh0Y2JpQWdJQ0FnSUNBZ1ptOXVkRVpoYldsc2VUb2dKMkp5WlhWbGNpY3NYRzRnSUNBZ0lDQWdJR1p2Ym5SVGFYcGxPaUF4TWl4Y2JpQWdJQ0FnSUNBZ1ptbHNiRG9nSnlObVptWm1abVluTEZ4dUlDQWdJQ0FnSUNCdmNtbG5hVzVZT2lBblkyVnVkR1Z5Snl4Y2JpQWdJQ0FnSUNBZ2RHOXdPaUF5TEZ4dUlDQWdJSDBzWEc0Z0lDQWdjbVZqZERvZ2UxeHVJQ0FnSUNBZ0lDQm1hV3hzT2lBbkl6WTJOalkyTmljc1hHNGdJQ0FnSUNBZ0lHaGxhV2RvZERvZ01qQXNYRzRnSUNBZ0lDQWdJRzl5YVdkcGJsZzZJQ2RqWlc1MFpYSW5MRnh1SUNBZ0lIMHNYRzU5TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNXRiMlIxYkdVdVpYaHdiM0owY3lBOUlIdGNibHh1SUNBZ0lHUmxabUYxYkhRNklIdGNiaUFnSUNBZ0lDQWdabWxzYkRvZ0p5TXdNREF3TURBbkxGeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVNklDY2paak14Wm1Jekp5eGNiaUFnSUNBZ0lDQWdkMmxrZEdnNklERXNYRzRnSUNBZ0lDQWdJR2hsYVdkb2REb2dNU3hjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdhVzFoWjJVNklIdGNiaUFnSUNBZ0lDQWdabWxzYkRvZ0ozSm5ZbUVvTUN3d0xEQXNNQzR5S1Njc1hHNGdJQ0FnSUNBZ0lITjBjbTlyWlZkcFpIUm9PaUF4TEZ4dUlDQWdJSDBzWEc1Y2JpQWdJQ0JpYkdGamF6b2dlMXh1SUNBZ0lDQWdJQ0JtYVd4c09pQW5JekF3TURBd01DY3NYRzRnSUNBZ0lDQWdJSE4wY205clpWZHBaSFJvT2lBd0xGeHVJQ0FnSUgwc1hHNWNiaUFnSUNCM2FHbDBaVG9nZTF4dUlDQWdJQ0FnSUNCbWFXeHNPaUFuSTJabVptWm1aaWNzWEc0Z0lDQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXdMRnh1SUNBZ0lIMHNYRzVjYm4wN1hHNGlMQ0luZFhObElITjBjbWxqZENjN1hHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdlMXh1WEc0Z0lDQWdiR2x1WlRvZ1puVnVZM1JwYjI0b1lYaHBjeXdnWW05MWJtUnpLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmxkbVZ1ZEdWa09pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE4wY205clpVUmhjMmhCY25KaGVUb2dXelVzSURWZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSeWIydGxPaUFuSXpBd01DY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCemRISnZhMlZYYVdSMGFEb2dNU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnZjRG9nWVhocGN5QTlQVDBnSjNnbklEOGdZbTkxYm1SekxuUnZjQ0FySUdKdmRXNWtjeTVvWldsbmFIUWdMeUF5SURvZ1ltOTFibVJ6TG5SdmNDeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bFpuUTZJR0Y0YVhNZ1BUMDlJQ2Q1SnlBL0lHSnZkVzVrY3k1c1pXWjBJQ3NnWW05MWJtUnpMbmRwWkhSb0lDOGdNaUE2SUdKdmRXNWtjeTVzWldaMFhHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOUxGeHVYRzRnSUNBZ2RHVjRkRG9nZTF4dUlDQWdJQ0FnSUNCbWIyNTBVMmw2WlRvZ01USXNYRzRnSUNBZ0lDQWdJSGRwWkhSb09pQTNOU3hjYmlBZ0lDQWdJQ0FnYUdWcFoyaDBPaUF5TUN4Y2JpQWdJQ0FnSUNBZ1ptbHNiRG9nSnlNek0yWm1Nek1uTEZ4dUlDQWdJSDBzWEc1Y2JpQWdJQ0I0T2lCbWRXNWpkR2x2Ymloc2FXNWxjeXdnWW05MWJtUnpLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmhlR2x6T2lBbmJHVm1kQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnRZWEpyWlhJNklHeHBibVZ6TG5rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYjNBNklFMWhkR2d1WTJWcGJDaGliM1Z1WkhNdWRHOXdJQ3NnWW05MWJtUnpMbWhsYVdkb2RDQXJJRFVwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiR1ZtZERvZ2JHbHVaWE11ZVM1c1pXWjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2IzSnBaMmx1V0RvZ0oyTmxiblJsY2ljc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJOclRXOTJaVzFsYm5SWk9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiVzkyWlVOMWNuTnZjam9nSjJWM0xYSmxjMmw2WlNjc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JvYjNabGNrTjFjbk52Y2pvZ0oyVjNMWEpsYzJsNlpTY3NYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQjlMRnh1SUNBZ0lIazZJR1oxYm1OMGFXOXVLR3hwYm1WekxDQmliM1Z1WkhNcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdGNGFYTTZJQ2QwYjNBbkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYldGeWEyVnlPaUJzYVc1bGN5NTRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHOXdPaUJzYVc1bGN5NTRMblJ2Y0N4Y2JpQWdJQ0FnSUNBZ0lDQWdJR3hsWm5RNklFMWhkR2d1WTJWcGJDaGliM1Z1WkhNdWJHVm1kQ0FySUdKdmRXNWtjeTUzYVdSMGFDQXJJRFVwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM0pwWjJsdVdUb2dKMk5sYm5SbGNpY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCc2IyTnJUVzkyWlcxbGJuUllPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYlc5MlpVTjFjbk52Y2pvZ0oyNXpMWEpsYzJsNlpTY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCb2IzWmxja04xY25OdmNqb2dKMjV6TFhKbGMybDZaU2NzWEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1OU8xeHVJaXdpSjNWelpTQnpkSEpwWTNRbk8xeHVYRzV0YjJSMWJHVXVaWGh3YjNKMGN5QTlJSHRjYmlBZ0lDQnRiMkpwYkdVNklIdGNiaUFnSUNBZ0lDQWdiV2x1T2lBd0xGeHVJQ0FnSUNBZ0lDQnRZWGc2SURjMk4xeHVJQ0FnSUgwc1hHNGdJQ0FnZEdGaWJHVjBPaUI3WEc0Z0lDQWdJQ0FnSUcxcGJqb2dOelk0TEZ4dUlDQWdJQ0FnSUNCdFlYZzZJRGs0TTF4dUlDQWdJSDBzWEc0Z0lDQWdaR1Z6YTNSdmNEb2dlMXh1SUNBZ0lDQWdJQ0J0YVc0NklEazROQ3hjYmlBZ0lDQWdJQ0FnYldGNE9pQXhNekV4WEc0Z0lDQWdmU3hjYmlBZ0lDQm9aRG9nZTF4dUlDQWdJQ0FnSUNCdGFXNDZJREV6TVRJc1hHNGdJQ0FnSUNBZ0lHMWhlRG9nT1RrNU9UbGNiaUFnSUNCOVhHNTlPMXh1SWl3aUozVnpaU0J6ZEhKcFkzUW5PMXh1WEc1dGIyUjFiR1V1Wlhod2IzSjBjeUE5SUh0Y2JseHVJQ0FnSUhKbFkzUTZJR1oxYm1OMGFXOXVLSGRwWkhSb0xDQm9aV2xuYUhRcElIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdacGJHdzZJQ2NqTXpRek5ETTBKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHRmpkR2wyWlVacGJHdzZJQ2NqTkRrME9UUTVKeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnBjMkZpYkdWa1JtbHNiRG9nSnlNNU9UazVPVGtuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiM0pwWjJsdVdEb2dKMk5sYm5SbGNpY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCdmNtbG5hVzVaT2lBblkyVnVkR1Z5Snl4Y2JpQWdJQ0FnSUNBZ0lDQWdJSGRwWkhSb09pQjNhV1IwYUNCOGZDQXhMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pIbHVZVzFwWTFjNklDRjNhV1IwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2hsYVdkb2REb2dhR1ZwWjJoMElIeDhJREVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtlVzVoYldsalNEb2dJV2hsYVdkb2RDeGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lIMHNYRzVjYmlBZ0lDQjBaWGgwT2lCN1hHNGdJQ0FnSUNBZ0lHWnBiR3c2SUNjalptWm1abVptSnl4Y2JpQWdJQ0FnSUNBZ1ptOXVkRVpoYldsc2VUb2dKMkp5WlhWbGNpY3NYRzRnSUNBZ0lDQWdJR1p2Ym5SVGFYcGxPaUF4TkN4Y2JpQWdJQ0FnSUNBZ2IzSnBaMmx1V0RvZ0oyTmxiblJsY2ljc1hHNGdJQ0FnSUNBZ0lHOXlhV2RwYmxrNklDZGpaVzUwWlhJbkxGeHVJQ0FnSUgwc1hHNWNiaUFnSUNCamRYSnpiM0k2SUNkd2IybHVkR1Z5Snl4Y2JpQWdJQ0J3WVdSa2FXNW5PaUF5TUN4Y2JuMDdYRzRpTENJbmRYTmxJSE4wY21samRDYzdYRzVjYm5aaGNpQkVjbUZuWjJGaWJHVWdQU0J5WlhGMWFYSmxLQ2N1TDBSeVlXZG5ZV0pzWlNjcE8xeHVkbUZ5SUhWMGFXd2dQU0J5WlhGMWFYSmxLQ2N1TDNWMGFXd25LVHRjYmx4dVpuVnVZM1JwYjI0Z1JYaDBaVzVrUm1GaWNtbGpSblZ1WTNScGIyNWhiR2wwZVNncElIdGNibHh1SUNBZ0lDOHZJRk5sZENCa1pXWmhkV3gwSUhaaGJIVmxjeUJtYjNJZ2RHaGxJR1poWW5KcFl5QmpZVzUyWVhOY2JpQWdJQ0FrTG1WNGRHVnVaQ2htWVdKeWFXTXVUMkpxWldOMExuQnliM1J2ZEhsd1pTd2dlMXh1SUNBZ0lDQWdJQ0JqYjNKdVpYSlRhWHBsT2lBd0xGeHVJQ0FnSUNBZ0lDQm9ZWE5DYjNKa1pYSnpPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdhR0Z6UTI5dWRISnZiSE02SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0J3WVdSa2FXNW5PaUF3TEZ4dUlDQWdJQ0FnSUNCelpXeGxZM1JoWW14bE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ2MzUnliMnRsVjJsa2RHZzZJREFzWEc0Z0lDQWdJQ0FnSUdGa1pGUnZPaUJtZFc1amRHbHZiaWhqWVc1MllYTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTmhiblpoY3k1aFpHUW9kR2hwY3lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNCOUtUdGNibHh1WEc0Z0lDQWdkWFJwYkM1elpYUlFjbTl3WlhKMGFXVnpLR1poWW5KcFl5NUpiV0ZuWlM1d2NtOTBiM1I1Y0dVc0lIdGNiaUFnSUNBZ0lDQWdaSEpoWnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWjJWME9pQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZlgyUnlZV2RuWVdKc1pTQjhmQ0FvZEdocGN5NWZYMlJ5WVdkbllXSnNaU0E5SUc1bGR5QkVjbUZuWjJGaWJHVW9kR2hwY3lrcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNBa0xtVjRkR1Z1WkNobVlXSnlhV011VW1WamRDNXdjbTkwYjNSNWNHVXNJSHRjYmlBZ0lDQWdJQ0FnTHlvcVhHNGdJQ0FnSUNBZ0lDQXFJRWRsZEhNZ2RHaGxJR2x1Ym1WeUlHSnZkVzVrY3lCdlppQjBhR2x6SUdaaFluSnBZeTVTWldOMFhHNGdJQ0FnSUNBZ0lDQXFJRUJ5WlhSMWNtNGdlMDlpYW1WamRIMWNiaUFnSUNBZ0lDQWdJQ292WEc0Z0lDQWdJQ0FnSUdkbGRFbHVjMmxrWlVKdmRXNWthVzVuVW1WamREb2dablZ1WTNScGIyNG9LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnWW05MWJtUnpJRDBnZEdocGN5NW5aWFJDYjNWdVpHbHVaMUpsWTNRb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWFIxY201V1lXeDFaU0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc1pXWjBPaUJpYjNWdVpITXViR1ZtZENBcklIUm9hWE11YzNSeWIydGxWMmxrZEdnc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHOXdPaUJpYjNWdVpITXVkRzl3SUNzZ2RHaHBjeTV6ZEhKdmEyVlhhV1IwYUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCM2FXUjBhRG9nWW05MWJtUnpMbmRwWkhSb0lDMGdkR2hwY3k1emRISnZhMlZYYVdSMGFDQXFJRElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYUdWcFoyaDBPaUJpYjNWdVpITXVhR1ZwWjJoMElDMGdkR2hwY3k1emRISnZhMlZYYVdSMGFDQXFJREpjYmlBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmxaaGJIVmxMbkpwWjJoMElEMGdjbVYwZFhKdVZtRnNkV1V1YkdWbWRDQXJJSEpsZEhWeWJsWmhiSFZsTG5kcFpIUm9PMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1Vm1Gc2RXVXVZbTkwZEc5dElEMGdjbVYwZFhKdVZtRnNkV1V1ZEc5d0lDc2djbVYwZFhKdVZtRnNkV1V1YUdWcFoyaDBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY201V1lXeDFaUzV0YVc0Z1BTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiR1ZtZERvZ2NtVjBkWEp1Vm1Gc2RXVXViR1ZtZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGIzQTZJSEpsZEhWeWJsWmhiSFZsTG5SdmNGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVWbUZzZFdVdWJXRjRJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4bFpuUTZJSEpsZEhWeWJsWmhiSFZsTG14bFpuUWdLeUJ5WlhSMWNtNVdZV3gxWlM1M2FXUjBhQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYjNBNklISmxkSFZ5YmxaaGJIVmxMblJ2Y0NBcklISmxkSFZ5YmxaaGJIVmxMbWhsYVdkb2RGeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsZEhWeWJsWmhiSFZsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUlhoMFpXNWtSbUZpY21salJuVnVZM1JwYjI1aGJHbDBlVHRjYmlJc0lpZDFjMlVnYzNSeWFXTjBKenRjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCN1hHNWNiaUFnSUNCaGMzTmxjblJMWlhsV1lXeDFaVkJoYVhJNklISmxjWFZwY21Vb0p5NHZkWFJwYkhNdllYTnpaWEowTFd0bGVTMTJZV3gxWlMxd1lXbHlKeWtzWEc0Z0lDQWdZWE56WlhKMFFtVjBkMlZsYmpvZ2NtVnhkV2x5WlNnbkxpOTFkR2xzY3k5aGMzTmxjblF0WW1WMGQyVmxiaWNwTEZ4dUlDQWdJR05oYkdORGNtOXdPaUJ5WlhGMWFYSmxLQ2N1TDNWMGFXeHpMMk5oYkdNdFkzSnZjQ2NwTEZ4dUlDQWdJSE5sZEZCdmMybDBhVzl1U1c1emFXUmxPaUJ5WlhGMWFYSmxLQ2N1TDNWMGFXeHpMM05sZEMxd2IzTnBkR2x2YmkxcGJuTnBaR1VuS1N4Y2JpQWdJQ0J6WlhSUWNtOXdaWEowYVdWek9pQnlaWEYxYVhKbEtDY3VMM1YwYVd4ekwzTmxkQzF3Y205d1pYSjBhV1Z6Snlrc1hHNGdJQ0FnZEc5bloyeGxSblZzYkhOamNtVmxiam9nY21WeGRXbHlaU2duTGk5MWRHbHNjeTkwYjJkbmJHVXRablZzYkhOamNtVmxiaWNwTEZ4dUlDQWdJR2x6VFc5aWFXeGxPaUJ5WlhGMWFYSmxLQ2N1TDNWMGFXeHpMMmx6TFcxdlltbHNaU2NwTEZ4dUlDQWdJRTF2ZFhObFRXVjBjbWxqY3pvZ2NtVnhkV2x5WlNnbkxpOTFkR2xzY3k5dGIzVnpaUzF0WlhSeWFXTnpKeWtzWEc0Z0lDQWdjM1Z3Y0c5eWRITkdkV3hzYzJOeVpXVnVPaUJ5WlhGMWFYSmxLQ2N1TDNWMGFXeHpMM04xY0hCdmNuUnpMV1oxYkd4elkzSmxaVzRuS1N4Y2JpQWdJQ0JwYzBaMWJHeHpZM0psWlc0NklISmxjWFZwY21Vb0p5NHZkWFJwYkhNdmFYTXRablZzYkhOamNtVmxiaWNwTEZ4dUlDQWdJR2x6UVhOd1pXTjBRMmhoYm1kbFpEb2djbVZ4ZFdseVpTZ25MaTkxZEdsc2N5OXBjeTFoYzNCbFkzUXRZMmhoYm1kbFpDY3BMRnh1ZlR0Y2JpSXNJaWQxYzJVZ2MzUnlhV04wSnp0Y2JseHVablZ1WTNScGIyNGdZWE56WlhKMFFtVjBkMlZsYmloMllXeDFaU3dnYldsdUxDQnRZWGdwSUh0Y2JpQWdJQ0JwWmlBb2RtRnNkV1VnUENCdGFXNHBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzFwYmp0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0haaGJIVmxJRDRnYldGNEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnRZWGc3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmhjM05sY25SQ1pYUjNaV1Z1TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNW1kVzVqZEdsdmJpQmhjM05sY25STFpYbFdZV3gxWlZCaGFYSW9hMlY1TENCMllXeDFaU2tnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYTJWNUlEMDlQU0FuYjJKcVpXTjBKeWtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYTJWNU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhaaGNpQnlaWFIxY201V1lXeDFaU0E5SUh0OU8xeHVJQ0FnSUhKbGRIVnlibFpoYkhWbFcydGxlVjBnUFNCMllXeDFaVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWFIxY201V1lXeDFaVHRjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQmhjM05sY25STFpYbFdZV3gxWlZCaGFYSTdYRzRpTENJbmRYTmxJSE4wY21samRDYzdYRzVjYmk4cUtseHVJQ29nUUhCaGNtRnRJQ0I3Wm1GaWNtbGpMa2x0WVdkbGZTQnZZbXBjYmlBcUlFQndZWEpoYlNBZ2UybHVkSDBnZDJsa2RHaGNiaUFxSUVCd1lYSmhiU0FnZTJsdWRIMGdhR1ZwWjJoMFhHNGdLaUJBY0dGeVlXMGdJSHR6ZEhKcGJtZDlJSFZ1YVhSelhHNGdLaUJBY21WMGRYSnVJSHRQWW1wbFkzUjlYRzRnS2lBZ0lDQWdJQ0FnSUNCaGVHbHpPaUJUVkZKSlRrY3NYRzRnS2lBZ0lDQWdJQ0FnSUNCa2FXMDZJRTlDU2tWRFZDZ2dkMmxrZEdnNklFNVZUVUpGVWl3Z2FHVnBaMmgwT2lCT1ZVMUNSVklwTEZ4dUlDb2dJQ0FnSUNBZ0lDQWdkMmxrZEdnNklFNVZUVUpGVWl4Y2JpQXFJQ0FnSUNBZ0lDQWdJR2hsYVdkb2REb2dUbFZOUWtWU0xGeHVJQ29nSUNBZ0lDQWdJQ0FnY0hCdGJUb2dUbFZOUWtWU1hHNGdLaTljYm1aMWJtTjBhVzl1SUdOaGJHTkRjbTl3S0c5aWFpd2dkMmxrZEdnc0lHaGxhV2RvZEN3Z2RXNXBkSE1wSUh0Y2JpQWdJQ0IyWVhJZ1kzSnZjRkpoZEdsdklEMGdkMmxrZEdnZ0x5Qm9aV2xuYUhRN1hHNGdJQ0FnZG1GeUlHOWlhbEpoZEdsdklEMGdiMkpxTG5kcFpIUm9JQzhnYjJKcUxtaGxhV2RvZER0Y2JseHVJQ0FnSUhaaGNpQnlaWFIxY201V1lXeDFaU0E5SUh0Y2JpQWdJQ0FnSUNBZ2FXMWhaMlU2SUc5aWFpeGNiaUFnSUNBZ0lDQWdZWGhwY3pvZ2IySnFVbUYwYVc4Z1BpQmpjbTl3VW1GMGFXOGdQeUFuZUNjZ09pQW5lU2NzWEc0Z0lDQWdJQ0FnSUdScGJUb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2QybGtkR2c2SUU1MWJXSmxjaWgzYVdSMGFDa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCb1pXbG5hSFE2SUU1MWJXSmxjaWhvWldsbmFIUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RXNXBkSE02SUhWdWFYUnpYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUhkcFpIUm9PaUJ2WW1vdWQybGtkR2dnS2lCdlltb3VjMk5oYkdWWUxGeHVJQ0FnSUNBZ0lDQm9aV2xuYUhRNklHOWlhaTVvWldsbmFIUWdLaUJ2WW1vdWMyTmhiR1ZaTEZ4dUlDQWdJQ0FnSUNCdlltcGxZM1JTWVhScGJ6b2diMkpxVW1GMGFXOHNYRzRnSUNBZ0lDQWdJR055YjNCU1lYUnBiem9nWTNKdmNGSmhkR2x2WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR2xtSUNodlltcFNZWFJwYnlBK0lHTnliM0JTWVhScGJ5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNVdZV3gxWlM1M2FXUjBhQ0FxUFNCamNtOXdVbUYwYVc4Z0x5QnZZbXBTWVhScGJ6dGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTVXWVd4MVpTNW9aV2xuYUhRZ0x6MGdZM0p2Y0ZKaGRHbHZJQzhnYjJKcVVtRjBhVzg3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVUdsNFpXeHpJSEJsY2lCdGFXeHNhVzFsZEdWeVhHNGdJQ0FnY21WMGRYSnVWbUZzZFdVdWNIQnRiU0E5SUhKbGRIVnlibFpoYkhWbExuZHBaSFJvSUM4Z0tDaHlaWFIxY201V1lXeDFaUzVrYVcwdWQybGtkR2dnS2lCdlltb3VjMk5oYkdWWUtTQXFJREV3S1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhSMWNtNVdZV3gxWlR0Y2JuMWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0JqWVd4alEzSnZjRHRjYmlJc0lpZDFjMlVnYzNSeWFXTjBKenRjYmx4dVpuVnVZM1JwYjI0Z2FYTkJjM0JsWTNSRGFHRnVaMlZrS0hneExDQjVNU3dnZURJc0lIa3lLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaE5ZWFJvTG1GaWN5aDRNU0F2SUhreElDMGdlRElnTHlCNU1pa2dQaUF3TGpBeEtUdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCcGMwRnpjR1ZqZEVOb1lXNW5aV1E3WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JtWjFibU4wYVc5dUlHbHpSblZzYkhOamNtVmxiaWdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdaRzlqZFcxbGJuUXVablZzYkhOamNtVmxia1ZzWlcxbGJuUWdmSHdnWkc5amRXMWxiblF1Ylc5NlJuVnNiRk5qY21WbGJrVnNaVzFsYm5RZ2ZId2daRzlqZFcxbGJuUXVkMlZpYTJsMFJuVnNiSE5qY21WbGJrVnNaVzFsYm5RZ2ZId2daRzlqZFcxbGJuUXViWE5HZFd4c2MyTnlaV1Z1Uld4bGJXVnVkRHRjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQnBjMFoxYkd4elkzSmxaVzQ3WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JtWjFibU4wYVc5dUlHbHpUVzlpYVd4bEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlBa0tIZHBibVJ2ZHlrdWQybGtkR2dvS1NBOElEYzJPRHRjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQnBjMDF2WW1sc1pUdGNiaUlzSWlkMWMyVWdjM1J5YVdOMEp6dGNibHh1ZG1GeUlFMXZkWE5sVFdWMGNtbGpjeUE5SUh0Y2JpQWdJQ0J3Y21WMmFXOTFjMDF2ZFhObFJHRjBZVG9nZTF4dUlDQWdJQ0FnSUNCNE9pQnVkV3hzTEZ4dUlDQWdJQ0FnSUNCNU9pQnVkV3hzWEc0Z0lDQWdmU3hjYmx4dUlDQWdJR1JsYkdWMFpWQnlaWFpwYjNWelRXOTFjMlZFWVhSaE9pQm1kVzVqZEdsdmJpZ3BJSHRjYmlBZ0lDQWdJQ0FnVFc5MWMyVk5aWFJ5YVdOekxuQnlaWFpwYjNWelRXOTFjMlZFWVhSaElEMGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2VEb2diblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSGs2SUc1MWJHeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdjMlYwVUhKbGRtbHZkWE5OYjNWelpVUmhkR0U2SUdaMWJtTjBhVzl1S0haaGJIVmxjeWtnZTF4dUlDQWdJQ0FnSUNCTmIzVnpaVTFsZEhKcFkzTXVjSEpsZG1sdmRYTk5iM1Z6WlVSaGRHRWdQU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjRPaUIyWVd4MVpYTXVlQ0I4ZkNCdWRXeHNMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2VUb2dkbUZzZFdWekxua2dmSHdnYm5Wc2JDeGNiaUFnSUNBZ0lDQWdmVHRjYmlBZ0lDQjlMRnh1ZlR0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQk5iM1Z6WlUxbGRISnBZM003WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JpOHFLbHh1SUNvZ1FIQmhjbUZ0SUNCN1ptRmljbWxqTGs5aWFtVmpkSDBnYjJKcVhHNGdLaUJBY0dGeVlXMGdJSHRQWW1wbFkzUjlJR0p2ZFc1a2MxeHVJQ29nUUhKbGRIVnliaUI3Wm1GaWNtbGpMazlpYW1WamRIMWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2MyVjBVRzl6YVhScGIyNUpibk5wWkdVb2IySnFMQ0JpYjNWdVpITXBJSHRjYmlBZ0lDQmJKMnhsWm5RbkxDQW5kRzl3SjEwdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2Rpa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2IySnFXM1pkSUR3Z1ltOTFibVJ6VzNaZExtMXBiaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiMkpxTG5ObGRDaDJMQ0JpYjNWdVpITmJkbDB1YldsdUtTNXpaWFJEYjI5eVpITW9LVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h2WW1wYmRsMGdQaUJpYjNWdVpITmJkbDB1YldGNEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCdlltb3VjMlYwS0hZc0lHSnZkVzVrYzF0MlhTNXRZWGdwTG5ObGRFTnZiM0prY3lncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc5aWFqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCelpYUlFiM05wZEdsdmJrbHVjMmxrWlR0Y2JpSXNJaWQxYzJVZ2MzUnlhV04wSnp0Y2JseHVMeW9xWEc0Z0tpQkFjR0Z5WVcwZ0lIdFBZbXBsWTNSOUlHOWlhbHh1SUNvZ1FIQmhjbUZ0SUNCN1QySnFaV04wZlNCd2NtOXdaWEowYVdWelhHNGdLaTljYm1aMWJtTjBhVzl1SUhObGRGQnliM0JsY25ScFpYTW9iMkpxTENCd2NtOXdaWEowYVdWektTQjdYRzRnSUNBZ1ptOXlJQ2gyWVhJZ2J5QnBiaUJ3Y205d1pYSjBhV1Z6S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h3Y205d1pYSjBhV1Z6TG1oaGMwOTNibEJ5YjNCbGNuUjVLRzhwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2IySnFMQ0J2TENCd2NtOXdaWEowYVdWelcyOWRLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJSDFjYm4xY2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQnpaWFJRY205d1pYSjBhV1Z6TzF4dUlpd2lKM1Z6WlNCemRISnBZM1FuTzF4dVhHNW1kVzVqZEdsdmJpQnpkWEJ3YjNKMGMwWjFiR3h6WTNKbFpXNG9LU0I3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaRzlqZFcxbGJuUXVaRzlqZFcxbGJuUkZiR1Z0Wlc1MExuSmxjWFZsYzNSR2RXeHNjMk55WldWdUlIeDhJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDNTNaV0pyYVhSU1pYRjFaWE4wUm5Wc2JGTmpjbVZsYmlCOGZDQmtiMk4xYldWdWRDNWtiMk4xYldWdWRFVnNaVzFsYm5RdWJXOTZVbVZ4ZFdWemRFWjFiR3hUWTNKbFpXNGdmSHdnWkc5amRXMWxiblF1Wkc5amRXMWxiblJGYkdWdFpXNTBMbTF6VW1WeGRXVnpkRVoxYkd4elkzSmxaVzQ3WEc1Y2JuMWNibHh1Ylc5a2RXeGxMbVY0Y0c5eWRITWdQU0J6ZFhCd2IzSjBjMFoxYkd4elkzSmxaVzQ3WEc0aUxDSW5kWE5sSUhOMGNtbGpkQ2M3WEc1Y2JuWmhjaUJwYzBaMWJHeHpZM0psWlc0Z1BTQnlaWEYxYVhKbEtDY3VMMmx6TFdaMWJHeHpZM0psWlc0bktUdGNiaThxS2x4dUlDb2dWRzluWjJ4bGN5QjBhR1VnWm5Wc2JDQnpZM0psWlc0Z2MzUmhkR1VnWm05eUlIQmhjM05sWkNCRVQwMGdiMkpxWldOMFhHNGdLaUJBY0dGeVlXMGdlMGhVVFV4RmJHVnRaVzUwZlNCbGJHMWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2RHOW5aMnhsUm5Wc2JITmpjbVZsYmlobGJHVnRLU0I3WEc0Z0lDQWdhV1lnS0dselJuVnNiSE5qY21WbGJpZ3BLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGtiMk4xYldWdWRDNWxlR2wwUm5Wc2JITmpjbVZsYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWkc5amRXMWxiblF1WlhocGRFWjFiR3h6WTNKbFpXNG9LVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoa2IyTjFiV1Z1ZEM1dGMwVjRhWFJHZFd4c2MyTnlaV1Z1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjJOMWJXVnVkQzV0YzBWNGFYUkdkV3hzYzJOeVpXVnVLQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb1pHOWpkVzFsYm5RdWJXOTZRMkZ1WTJWc1JuVnNiRk5qY21WbGJpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1pHOWpkVzFsYm5RdWJXOTZRMkZ1WTJWc1JuVnNiRk5qY21WbGJpZ3BPMXh1SUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0dSdlkzVnRaVzUwTG5kbFltdHBkRU5oYm1ObGJFWjFiR3hUWTNKbFpXNHBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHUnZZM1Z0Wlc1MExuZGxZbXRwZEVOaGJtTmxiRVoxYkd4VFkzSmxaVzRvS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHVnNaVzB1Y21WeGRXVnpkRVoxYkd4elkzSmxaVzRwSUh0Y2JpQWdJQ0FnSUNBZ1pXeGxiUzV5WlhGMVpYTjBSblZzYkhOamNtVmxiaWdwTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvWld4bGJTNTNaV0pyYVhSU1pYRjFaWE4wUm5Wc2JGTmpjbVZsYmlrZ2UxeHVJQ0FnSUNBZ0lDQmxiR1Z0TG5kbFltdHBkRkpsY1hWbGMzUkdkV3hzVTJOeVpXVnVLQ2s3WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hsYkdWdExtMXZlbEpsY1hWbGMzUkdkV3hzVTJOeVpXVnVLU0I3WEc0Z0lDQWdJQ0FnSUdWc1pXMHViVzk2VW1WeGRXVnpkRVoxYkd4VFkzSmxaVzRvS1R0Y2JpQWdJQ0I5SUdWc2MyVWdhV1lnS0dWc1pXMHViWE5TWlhGMVpYTjBSblZzYkhOamNtVmxiaWtnZTF4dUlDQWdJQ0FnSUNCbGJHVnRMbTF6VW1WeGRXVnpkRVoxYkd4elkzSmxaVzRvS1R0Y2JpQWdJQ0I5WEc1OVhHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdkRzluWjJ4bFJuVnNiSE5qY21WbGJqdGNiaUlzSWlkMWMyVWdjM1J5YVdOMEp6dGNibHh1S0daMWJtTjBhVzl1S0NrZ2UxeHVYRzRnSUNBZ0x5b3FYRzRnSUNBZ0lDb2dSbUZpY21saklHWjFibU4wYVc5dVlXeHBkSGtnYVhNZ1pYaDBaVzVrWldRZ2QybDBhQ0J6YjIxbElHTjFjM1J2YlNCbWRXNWpkR2x2Ym1Gc2FYUjVMaUJVYUdseklHbHpJR1J2Ym1VZ1ltVm1iM0psWEc0Z0lDQWdJQ29nZDJVZ1pHOGdZVzU1ZEdocGJtY2daV3h6WlM1Y2JpQWdJQ0FnS2k5Y2JpQWdJQ0J5WlhGMWFYSmxLQ2N1TDJsdVkyeDFaR1Z6TDJWNGRHVnVaQzFtWVdKeWFXTXRablZ1WTNScGIyNWhiR2wwZVNjcEtDazdYRzVjYmlBZ0lDQXZLaXBjYmlBZ0lDQWdLaUJKYldGblpVVmthWFJ2Y2lCcGN5QjBhR1VnYzNSaGNuUnBibWNnY0c5cGJuUWdiMllnWVd4c0lHWnBiR1Z6TGlCSVpYSmxJSFJvWlNCcGJXRm5aU0JsWkdsMGIzSWdhWE1nWTNKbFlYUmxaQ0JoYm1SY2JpQWdJQ0FnS2lCcGRDQnlaV05sYVhabGN5QmhkSFJ5YVdKMWRHVnpJR1p5YjIwZ2RHaGxJR2x1YVhScFlXeHBjMkYwYVc5dUxpQkJjeUIwYUdseklHbHpJR1J2Ym1VZ1puSnZiU0J2ZFhSemFXUmxJRzltSUhSb2FYTWdabWxzWlN4Y2JpQWdJQ0FnS2lCMGFHVWdTVzFoWjJWRlpHbDBiM0lnYzJodmRXeGtJR0psSUdGMllXbHNZV0pzWlNCdmJpQm5iRzlpWVd4c2VTNWNiaUFnSUNBZ0tpOWNiaUFnSUNCM2FXNWtiM2N1U1cxaFoyVkZaR2wwYjNJZ1BTQnlaWEYxYVhKbEtDY3VMMmx1WTJ4MVpHVnpMMGx0WVdkbFJXUnBkRzl5SnlrN1hHNWNibjBvS1NrN1hHNGlYWDA9In0= diff --git a/dist/js/main.min.js b/dist/js/main.min.js new file mode 100644 index 0000000..031fb82 --- /dev/null +++ b/dist/js/main.min.js @@ -0,0 +1 @@ +!function t(e,i,n){function r(o,a){if(!i[o]){if(!e[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=i[o]={exports:{}};e[o][0].call(l.exports,function(t){var i=e[o][1][t];return r(i||t)},l,l.exports,t,e,i,n)}return i[o].exports}for(var s="function"==typeof require&&require,o=0;oi?i:t}e.exports=n},{}],27:[function(t,e,i){"use strict";function n(t,e){if("object"==typeof t)return t;var i={};return i[t]=e,i}e.exports=n},{}],28:[function(t,e,i){"use strict";function n(t,e,i,n){var r=e/i,s=t.width/t.height,o={image:t,axis:s>r?"x":"y",dim:{width:Number(e),height:Number(i),units:n},width:t.width*t.scaleX,height:t.height*t.scaleY,objectRatio:s,cropRatio:r};return s>r?o.width*=r/s:o.height/=r/s,o.ppmm=o.width/(o.dim.width*t.scaleX*10),o}e.exports=n},{}],29:[function(t,e,i){"use strict";function n(t,e,i,n){return Math.abs(t/e-i/n)>.01}e.exports=n},{}],30:[function(t,e,i){"use strict";function n(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}e.exports=n},{}],31:[function(t,e,i){"use strict";function n(){return $(window).width()<768}e.exports=n},{}],32:[function(t,e,i){"use strict";var n={previousMouseData:{x:null,y:null},deletePreviousMouseData:function(){n.previousMouseData={x:null,y:null}},setPreviousMouseData:function(t){n.previousMouseData={x:t.x||null,y:t.y||null}}};e.exports=n},{}],33:[function(t,e,i){"use strict";function n(t,e){return["left","top"].forEach(function(i){t[i]e[i].max&&t.set(i,e[i].max).setCoords()}),t}e.exports=n},{}],34:[function(t,e,i){"use strict";function n(t,e){for(var i in e)e.hasOwnProperty(i)&&Object.defineProperty(t,i,e[i])}e.exports=n},{}],35:[function(t,e,i){"use strict";function n(){return document.documentElement.requestFullscreen||document.documentElement.webkitRequestFullScreen||document.documentElement.mozRequestFullScreen||document.documentElement.msRequestFullscreen}e.exports=n},{}],36:[function(t,e,i){"use strict";function n(t){if(r())return void(document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen());t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullScreen?t.webkitRequestFullScreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.msRequestFullscreen&&t.msRequestFullscreen()}var r=t("./is-fullscreen");e.exports=n},{"./is-fullscreen":30}],37:[function(t,e,i){"use strict";!function(){t("./includes/extend-fabric-functionality")(),window.ImageEditor=t("./includes/ImageEditor")}()},{"./includes/ImageEditor":11,"./includes/extend-fabric-functionality":24}]},{},[37]); \ No newline at end of file diff --git a/dist/js/pw-image-editor.js b/dist/js/pw-image-editor.js new file mode 100644 index 0000000..cf3fcaa --- /dev/null +++ b/dist/js/pw-image-editor.js @@ -0,0 +1,2371 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o max) { + return max; + } + return value; +} + +module.exports = assertBetween; + +},{}],27:[function(require,module,exports){ +'use strict'; + +function assertKeyValuePair(key, value) { + if (typeof key === 'object') { + return key; + } + + var returnValue = {}; + returnValue[key] = value; + + return returnValue; +} + +module.exports = assertKeyValuePair; + +},{}],28:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Image} obj + * @param {int} width + * @param {int} height + * @param {string} units + * @return {Object} + * axis: STRING, + * dim: OBJECT( width: NUMBER, height: NUMBER), + * width: NUMBER, + * height: NUMBER, + * ppmm: NUMBER + */ +function calcCrop(obj, width, height, units) { + var cropRatio = width / height; + var objRatio = obj.width / obj.height; + + var returnValue = { + image: obj, + axis: objRatio > cropRatio ? 'x' : 'y', + dim: { + width: Number(width), + height: Number(height), + units: units + }, + width: obj.width * obj.scaleX, + height: obj.height * obj.scaleY, + objectRatio: objRatio, + cropRatio: cropRatio + }; + + if (objRatio > cropRatio) { + returnValue.width *= cropRatio / objRatio; + } else { + returnValue.height /= cropRatio / objRatio; + } + + // Pixels per millimeter + returnValue.ppmm = returnValue.width / ((returnValue.dim.width * obj.scaleX) * 10); + + return returnValue; +} + +module.exports = calcCrop; + +},{}],29:[function(require,module,exports){ +'use strict'; + +function isAspectChanged(x1, y1, x2, y2) { + return (Math.abs(x1 / y1 - x2 / y2) > 0.01); +} + +module.exports = isAspectChanged; + +},{}],30:[function(require,module,exports){ +'use strict'; + +function isFullscreen() { + return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; +} + +module.exports = isFullscreen; + +},{}],31:[function(require,module,exports){ +'use strict'; + +function isMobile() { + return $(window).width() < 768; +} + +module.exports = isMobile; + +},{}],32:[function(require,module,exports){ +'use strict'; + +var MouseMetrics = { + previousMouseData: { + x: null, + y: null + }, + + deletePreviousMouseData: function() { + MouseMetrics.previousMouseData = { + x: null, + y: null + }; + }, + + setPreviousMouseData: function(values) { + MouseMetrics.previousMouseData = { + x: values.x || null, + y: values.y || null, + }; + }, +}; + +module.exports = MouseMetrics; + +},{}],33:[function(require,module,exports){ +'use strict'; + +/** + * @param {fabric.Object} obj + * @param {Object} bounds + * @return {fabric.Object} + */ +function setPositionInside(obj, bounds) { + ['left', 'top'].forEach(function (v) { + if (obj[v] < bounds[v].min) { + obj.set(v, bounds[v].min).setCoords(); + } + + if (obj[v] > bounds[v].max) { + obj.set(v, bounds[v].max).setCoords(); + } + }); + return obj; +} + +module.exports = setPositionInside; + +},{}],34:[function(require,module,exports){ +'use strict'; + +/** + * @param {Object} obj + * @param {Object} properties + */ +function setProperties(obj, properties) { + for (var o in properties) { + if (properties.hasOwnProperty(o)) { + Object.defineProperty(obj, o, properties[o]); + } + } +} + +module.exports = setProperties; + +},{}],35:[function(require,module,exports){ +'use strict'; + +function supportsFullscreen() { + + return document.documentElement.requestFullscreen || document.documentElement.webkitRequestFullScreen || document.documentElement.mozRequestFullScreen || document.documentElement.msRequestFullscreen; + +} + +module.exports = supportsFullscreen; + +},{}],36:[function(require,module,exports){ +'use strict'; + +var isFullscreen = require('./is-fullscreen'); +/** + * Toggles the full screen state for passed DOM object + * @param {HTMLElement} elm + */ +function toggleFullscreen(elem) { + if (isFullscreen()) { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.msExitFullscreen) { + document.msExitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitCancelFullScreen) { + document.webkitCancelFullScreen(); + } + return; + } + + if (elem.requestFullscreen) { + elem.requestFullscreen(); + } else if (elem.webkitRequestFullScreen) { + elem.webkitRequestFullScreen(); + } else if (elem.mozRequestFullScreen) { + elem.mozRequestFullScreen(); + } else if (elem.msRequestFullscreen) { + elem.msRequestFullscreen(); + } +} + +module.exports = toggleFullscreen; + +},{"./is-fullscreen":30}],37:[function(require,module,exports){ +'use strict'; + +(function() { + + /** + * Fabric functionality is extended with some custom functionality. This is done before + * we do anything else. + */ + require('./includes/extend-fabric-functionality')(); + + /** + * ImageEditor is the starting point of all files. Here the image editor is created and + * it receives attributes from the initialisation. As this is done from outside of this file, + * the ImageEditor should be available on globally. + */ + window.ImageEditor = require('./includes/ImageEditor'); + +}()); + +},{"./includes/ImageEditor":11,"./includes/extend-fabric-functionality":24}]},{},[37]);