diff --git a/.gitignore b/.gitignore index 9eecb4f105..9d85e7a8cf 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,8 @@ output/ build/ dist/ -paddleocr.egg-info/ \ No newline at end of file +paddleocr.egg-info/ +/deploy/android_demo/app/OpenCV/ +/deploy/android_demo/app/PaddleLite/ +/deploy/android_demo/app/.cxx/ +/deploy/android_demo/app/cache/ diff --git a/MANIFEST.in b/MANIFEST.in index 4c16c09d58..d674fabc5d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,9 @@ -include LICENSE.txt +include LICENSE include README.md -recursive-include ppocr/utils *.txt utility.py logging.py -recursive-include ppocr/data/ *.py +recursive-include ppocr/utils *.txt utility.py logging.py network.py +recursive-include ppocr/data *.py recursive-include ppocr/postprocess *.py -recursive-include tools/infer *.py \ No newline at end of file +recursive-include tools/infer *.py +recursive-include ppocr/utils/e2e_utils *.py +recursive-include ppstructure *.py \ No newline at end of file diff --git a/PPOCRLabel/PPOCRLabel.py b/PPOCRLabel/PPOCRLabel.py index 99c3cce70a..6e5323a436 100644 --- a/PPOCRLabel/PPOCRLabel.py +++ b/PPOCRLabel/PPOCRLabel.py @@ -27,7 +27,12 @@ import json import cv2 + __dir__ = os.path.dirname(os.path.abspath(__file__)) + +import numpy as np + + sys.path.append(__dir__) sys.path.append(os.path.abspath(os.path.join(__dir__, '../..'))) sys.path.append("..") @@ -78,7 +83,7 @@ class WindowMixin(object): addActions(menu, actions) return menu - def toolbar(self, title, actions=None): + def toolbar(self, title, actions=None): toolbar = ToolBar(title) toolbar.setObjectName(u'%sToolBar' % title) # toolbar.setOrientation(Qt.Vertical) @@ -92,13 +97,13 @@ class WindowMixin(object): class MainWindow(QMainWindow, WindowMixin): FIT_WINDOW, FIT_WIDTH, MANUAL_ZOOM = list(range(3)) - def __init__(self, lang="ch", defaultFilename=None, defaultPrefdefClassFile=None, defaultSaveDir=None): + def __init__(self, lang="ch", gpu=False, defaultFilename=None, defaultPrefdefClassFile=None, defaultSaveDir=None): super(MainWindow, self).__init__() self.setWindowTitle(__appname__) # Load setting in the main thread self.settings = Settings() - self.settings.load() + self.settings.load() settings = self.settings self.lang = lang # Load string bundle for i18n @@ -108,7 +113,7 @@ class MainWindow(QMainWindow, WindowMixin): getStr = lambda strId: self.stringBundle.getString(strId) self.defaultSaveDir = defaultSaveDir - self.ocr = PaddleOCR(use_pdserving=False, use_angle_cls=True, det=True, cls=True, use_gpu=False, lang=lang) + self.ocr = PaddleOCR(use_pdserving=False, use_angle_cls=True, det=True, cls=True, use_gpu=gpu, lang=lang) if os.path.exists('./data/paddle.png'): result = self.ocr.ocr('./data/paddle.png', cls=True, det=True) @@ -147,6 +152,7 @@ class MainWindow(QMainWindow, WindowMixin): self.itemsToShapesbox = {} self.shapesToItemsbox = {} self.prevLabelText = getStr('tempLabel') + self.noLabelText = getStr('nullLabel') self.model = 'paddle' self.PPreader = None self.autoSaveNum = 5 @@ -158,7 +164,7 @@ class MainWindow(QMainWindow, WindowMixin): filelistLayout = QVBoxLayout() filelistLayout.setContentsMargins(0, 0, 0, 0) filelistLayout.addWidget(self.fileListWidget) - + self.AutoRecognition = QToolButton() self.AutoRecognition.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.AutoRecognition.setIcon(newIcon('Auto')) @@ -175,7 +181,7 @@ class MainWindow(QMainWindow, WindowMixin): self.filedock.setObjectName(getStr('files')) self.filedock.setWidget(fileListContainer) self.addDockWidget(Qt.LeftDockWidgetArea, self.filedock) - + ######## Right area ########## listLayout = QVBoxLayout() listLayout.setContentsMargins(0, 0, 0, 0) @@ -249,7 +255,7 @@ class MainWindow(QMainWindow, WindowMixin): self.imgsplider.setMaximum(150) self.imgsplider.setSingleStep(1) self.imgsplider.setTickPosition(QSlider.TicksBelow) - self.imgsplider.setTickInterval(1) + self.imgsplider.setTickInterval(1) op = QGraphicsOpacityEffect() op.setOpacity(0.2) self.imgsplider.setGraphicsEffect(op) @@ -265,7 +271,9 @@ class MainWindow(QMainWindow, WindowMixin): self.zoomWidget = ZoomWidget() self.colorDialog = ColorDialog(parent=self) self.zoomWidgetValue = self.zoomWidget.value() - + + self.msgBox = QMessageBox() + ########## thumbnail ######### hlayout = QHBoxLayout() m = (0, 0, 0, 0) @@ -293,7 +301,7 @@ class MainWindow(QMainWindow, WindowMixin): self.nextButton.setStyleSheet('border: none;') self.nextButton.clicked.connect(self.openNextImg) self.nextButton.setShortcut('d') - + hlayout.addWidget(self.preButton) hlayout.addWidget(self.iconlist) hlayout.addWidget(self.nextButton) @@ -302,7 +310,7 @@ class MainWindow(QMainWindow, WindowMixin): iconListContainer = QWidget() iconListContainer.setLayout(hlayout) iconListContainer.setFixedHeight(100) - + ########### Canvas ########### self.canvas = Canvas(parent=self) self.canvas.zoomRequest.connect(self.zoomRequest) @@ -359,6 +367,9 @@ class MainWindow(QMainWindow, WindowMixin): opendir = action(getStr('openDir'), self.openDirDialog, 'Ctrl+u', 'open', getStr('openDir')) + open_dataset_dir = action(getStr('openDatasetDir'), self.openDatasetDirDialog, + 'Ctrl+p', 'open', getStr('openDatasetDir'), enabled=False) + save = action(getStr('save'), self.saveFile, 'Ctrl+V', 'verify', getStr('saveDetail'), enabled=False) @@ -397,6 +408,7 @@ class MainWindow(QMainWindow, WindowMixin): help = action(getStr('tutorial'), self.showTutorialDialog, None, 'help', getStr('tutorialDetail')) showInfo = action(getStr('info'), self.showInfoDialog, None, 'help', getStr('info')) showSteps = action(getStr('steps'), self.showStepsDialog, None, 'help', getStr('steps')) + showKeys = action(getStr('keys'), self.showKeysDialog, None, 'help', getStr('keys')) zoom = QWidgetAction(self) zoom.setDefaultWidget(self.zoomWidget) @@ -437,7 +449,7 @@ class MainWindow(QMainWindow, WindowMixin): AutoRec = action(getStr('autoRecognition'), self.autoRecognition, '', 'Auto', getStr('autoRecognition'), enabled=False) - reRec = action(getStr('reRecognition'), self.reRecognition, + reRec = action(getStr('reRecognition'), self.reRecognition, 'Ctrl+Shift+R', 'reRec', getStr('reRecognition'), enabled=False) singleRere = action(getStr('singleRe'), self.singleRerecognition, @@ -455,6 +467,12 @@ class MainWindow(QMainWindow, WindowMixin): undoLastPoint = action(getStr("undoLastPoint"), self.canvas.undoLastPoint, 'Ctrl+Z', "undo", getStr("undoLastPoint"), enabled=False) + rotateLeft = action(getStr("rotateLeft"), partial(self.rotateImgAction,1), + 'Ctrl+Alt+L', "rotateLeft", getStr("rotateLeft"), enabled=False) + + rotateRight = action(getStr("rotateRight"), partial(self.rotateImgAction,-1), + 'Ctrl+Alt+R', "rotateRight", getStr("rotateRight"), enabled=False) + undo = action(getStr("undo"), self.undoShapeEdit, 'Ctrl+Z', "undo", getStr("undo"), enabled=False) @@ -518,13 +536,14 @@ class MainWindow(QMainWindow, WindowMixin): zoom=zoom, zoomIn=zoomIn, zoomOut=zoomOut, zoomOrg=zoomOrg, fitWindow=fitWindow, fitWidth=fitWidth, zoomActions=zoomActions, saveLabel=saveLabel, - undo=undo, undoLastPoint=undoLastPoint, + undo=undo, undoLastPoint=undoLastPoint,open_dataset_dir=open_dataset_dir, + rotateLeft=rotateLeft,rotateRight=rotateRight, fileMenuActions=( - opendir, saveLabel, resetAll, quit), + opendir, open_dataset_dir, saveLabel, resetAll, quit), beginner=(), advanced=(), editMenu=(createpoly, edit, copy, delete,singleRere,None, undo, undoLastPoint, - None, color1, self.drawSquaresOption), - beginnerContext=(create, edit, copy, delete, singleRere), + None, rotateLeft, rotateRight, None, color1, self.drawSquaresOption), + beginnerContext=(create, edit, copy, delete, singleRere, rotateLeft, rotateRight,), advancedContext=(createMode, editMode, edit, copy, delete, shapeLineColor, shapeFillColor), onLoadActive=( @@ -562,9 +581,9 @@ class MainWindow(QMainWindow, WindowMixin): self.autoSaveOption.triggered.connect(self.autoSaveFunc) addActions(self.menus.file, - (opendir, None, saveLabel, saveRec, self.autoSaveOption, None, resetAll, deleteImg, quit)) + (opendir, open_dataset_dir, None, saveLabel, saveRec, self.autoSaveOption, None, resetAll, deleteImg, quit)) - addActions(self.menus.help, (showSteps, showInfo)) + addActions(self.menus.help, (showKeys,showSteps, showInfo)) addActions(self.menus.view, ( self.displayLabelOption, self.labelDialogOption, None, @@ -759,6 +778,10 @@ class MainWindow(QMainWindow, WindowMixin): msg = stepsInfo(self.lang) QMessageBox.information(self, u'Information', msg) + def showKeysDialog(self): + msg = keysInfo(self.lang) + QMessageBox.information(self, u'Information', msg) + def createShape(self): assert self.beginner() self.canvas.setEditing(False) @@ -772,6 +795,38 @@ class MainWindow(QMainWindow, WindowMixin): self.actions.create.setEnabled(False) self.actions.undoLastPoint.setEnabled(True) + def rotateImg(self, filename, k, _value): + + self.actions.rotateRight.setEnabled(_value) + pix = cv2.imread(filename) + pix = np.rot90(pix, k) + cv2.imwrite(filename, pix) + self.canvas.update() + self.loadFile(filename) + + def rotateImgWarn(self): + if self.lang == 'ch': + self.msgBox.warning (self, "提示", "\n 该图片已经有标注框,旋转操作会打乱标注,建议清除标注框后旋转。") + else: + self.msgBox.warning (self, "Warn", "\n The picture already has a label box, and rotation will disrupt the label.\ + It is recommended to clear the label box and rotate it.") + + def rotateImgAction(self, k=1, _value=False): + + filename = self.mImgList[self.currIndex] + + if os.path.exists(filename): + if self.itemsToShapesbox: + self.rotateImgWarn() + else: + self.saveFile() + self.dirty = False + self.rotateImg(filename=filename, k=k, _value=True) + else: + self.rotateImgWarn() + self.actions.rotateRight.setEnabled(False) + self.actions.rotateLeft.setEnabled(False) + def toggleDrawingSensitive(self, drawing=True): """In the middle of drawing, toggling between modes should be disabled.""" self.actions.editMode.setEnabled(not drawing) @@ -879,7 +934,12 @@ class MainWindow(QMainWindow, WindowMixin): self.updateComboBox() def updateBoxlist(self): - for shape in self.canvas.selectedShapes+[self.canvas.hShape]: + self.canvas.selectedShapes_hShape = [] + if self.canvas.hShape != None: + self.canvas.selectedShapes_hShape = self.canvas.selectedShapes + [self.canvas.hShape] + else: + self.canvas.selectedShapes_hShape = self.canvas.selectedShapes + for shape in self.canvas.selectedShapes_hShape: item = self.shapesToItemsbox[shape] # listitem text = [(int(p.x()), int(p.y())) for p in shape.points] item.setText(str(text)) @@ -1020,7 +1080,7 @@ class MainWindow(QMainWindow, WindowMixin): item.setText(str([(int(p.x()), int(p.y())) for p in shape.points])) self.updateComboBox() - def updateComboBox(self): # TODO:貌似没用 + def updateComboBox(self): # Get the unique labels and add them to the Combobox. itemsTextList = [str(self.labelList.item(i).text()) for i in range(self.labelList.count())] @@ -1040,7 +1100,7 @@ class MainWindow(QMainWindow, WindowMixin): return dict(label=s.label, # str line_color=s.line_color.getRgb(), fill_color=s.fill_color.getRgb(), - points=[(p.x(), p.y()) for p in s.points], # QPonitF + points=[(int(p.x()), int(p.y())) for p in s.points], # QPonitF # add chris difficult=s.difficult) # bool @@ -1069,7 +1129,7 @@ class MainWindow(QMainWindow, WindowMixin): # print('Image:{0} -> Annotation:{1}'.format(self.filePath, annotationFilePath)) return True except: - self.errorMessage(u'Error saving label data') + self.errorMessage(u'Error saving label data', u'Error saving label data') return False def copySelectedShape(self): @@ -1238,6 +1298,8 @@ class MainWindow(QMainWindow, WindowMixin): def loadFile(self, filePath=None): """Load the specified file, or the last opened file if None.""" + if self.dirty: + self.mayContinue() self.resetState() self.canvas.setEnabled(False) if filePath is None: @@ -1266,7 +1328,7 @@ class MainWindow(QMainWindow, WindowMixin): titem = self.iconlist.item(i) titem.setSelected(True) self.iconlist.scrollToItem(titem) - break + break else: self.fileListWidget.clear() self.mImgList.clear() @@ -1274,7 +1336,7 @@ class MainWindow(QMainWindow, WindowMixin): # if unicodeFilePath and self.iconList.count() > 0: # if unicodeFilePath in self.mImgList: - + if unicodeFilePath and os.path.exists(unicodeFilePath): self.canvas.verified = False @@ -1305,7 +1367,7 @@ class MainWindow(QMainWindow, WindowMixin): self.addRecentFile(self.filePath) self.toggleActions(True) self.showBoundingBoxFromPPlabel(filePath) - + self.setWindowTitle(__appname__ + ' ' + filePath) # Default : select last item if there is at least one item @@ -1317,7 +1379,7 @@ class MainWindow(QMainWindow, WindowMixin): return True return False - + def showBoundingBoxFromPPlabel(self, filePath): imgidx = self.getImglabelidx(filePath) if imgidx not in self.PPlabel.keys(): @@ -1410,6 +1472,7 @@ class MainWindow(QMainWindow, WindowMixin): def loadRecent(self, filename): if self.mayContinue(): + print(filename,"======") self.loadFile(filename) def scanAllImages(self, folderPath): @@ -1445,6 +1508,23 @@ class MainWindow(QMainWindow, WindowMixin): self.lastOpenDir = targetDirPath self.importDirImages(targetDirPath) + def openDatasetDirDialog(self,): + if self.lastOpenDir and os.path.exists(self.lastOpenDir): + if platform.system() == 'Windows': + os.startfile(self.lastOpenDir) + else: + os.system('open ' + os.path.normpath(self.lastOpenDir)) + defaultOpenDirPath = self.lastOpenDir + + else: + if self.lang == 'ch': + self.msgBox.warning(self, "提示", "\n 原文件夹已不存在,请从新选择数据集路径!") + else: + self.msgBox.warning(self, "Warn", "\n The original folder no longer exists, please choose the data set path again!") + + self.actions.open_dataset_dir.setEnabled(False) + defaultOpenDirPath = os.path.dirname(self.filePath) if self.filePath else '.' + def importDirImages(self, dirpath, isDelete = False): if not self.mayContinue() or not dirpath: return @@ -1492,6 +1572,10 @@ class MainWindow(QMainWindow, WindowMixin): self.reRecogButton.setEnabled(True) self.actions.AutoRec.setEnabled(True) self.actions.reRec.setEnabled(True) + self.actions.open_dataset_dir.setEnabled(True) + self.actions.rotateLeft.setEnabled(True) + self.actions.rotateRight.setEnabled(True) + def openPrevImg(self, _value=False): @@ -1500,7 +1584,7 @@ class MainWindow(QMainWindow, WindowMixin): if self.filePath is None: return - + currIndex = self.mImgList.index(self.filePath) self.mImgList5 = self.mImgList[:5] if currIndex - 1 >= 0: @@ -1530,7 +1614,7 @@ class MainWindow(QMainWindow, WindowMixin): if filename: print('file name in openNext is ',filename) self.loadFile(filename) - + def updateFileListIcon(self, filename): pass @@ -1642,7 +1726,7 @@ class MainWindow(QMainWindow, WindowMixin): proc.startDetached(os.path.abspath(__file__)) def mayContinue(self): # - if not self.dirty: + if not self.dirty: return True else: discardChanges = self.discardChangesDialog() @@ -1802,10 +1886,14 @@ class MainWindow(QMainWindow, WindowMixin): result.insert(0, box) print('result in reRec is ', result) self.result_dic.append(result) - if result[1][0] == shape.label: - print('label no change') - else: - rec_flag += 1 + else: + print('Can not recognise the box') + self.result_dic.append([box,(self.noLabelText,0)]) + + if self.noLabelText == shape.label or result[1][0] == shape.label: + print('label no change') + else: + rec_flag += 1 if len(self.result_dic) > 0 and rec_flag > 0: self.saveFile(mode='Auto') @@ -1836,9 +1924,14 @@ class MainWindow(QMainWindow, WindowMixin): print('label no change') else: shape.label = result[1][0] - self.singleLabel(shape) - self.setDirty() - print(box) + else: + print('Can not recognise the box') + if self.noLabelText == shape.label: + print('label no change') + else: + shape.label = self.noLabelText + self.singleLabel(shape) + self.setDirty() def autolcm(self): vbox = QVBoxLayout() @@ -2027,6 +2120,8 @@ def read(filename, default=None): except: return default +def str2bool(v): + return v.lower() in ("true", "t", "1") def get_main_app(argv=[]): """ @@ -2038,13 +2133,14 @@ def get_main_app(argv=[]): app.setWindowIcon(newIcon("app")) # Tzutalin 201705+: Accept extra agruments to change predefined class file argparser = argparse.ArgumentParser() - argparser.add_argument("--lang", default='en', nargs="?") + argparser.add_argument("--lang", type=str, default='en', nargs="?") + argparser.add_argument("--gpu", type=str2bool, default=False, nargs="?") argparser.add_argument("--predefined_classes_file", default=os.path.join(os.path.dirname(__file__), "data", "predefined_classes.txt"), nargs="?") args = argparser.parse_args(argv[1:]) # Usage : labelImg.py image predefClassFile saveDir - win = MainWindow(lang=args.lang, + win = MainWindow(lang=args.lang, gpu=args.gpu, defaultPrefdefClassFile=args.predefined_classes_file) win.show() return app, win @@ -2057,7 +2153,7 @@ def main(): if __name__ == '__main__': - + resource_file = './libs/resources.py' if not os.path.exists(resource_file): output = os.system('pyrcc5 -o libs/resources.py resources.qrc') diff --git a/PPOCRLabel/README.md b/PPOCRLabel/README.md index 633d042b73..2d6e7f98bb 100644 --- a/PPOCRLabel/README.md +++ b/PPOCRLabel/README.md @@ -8,9 +8,12 @@ PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, w ### Recent Update +- 2021.8.11: + - New functions: Open the dataset folder, image rotation (Note: Please delete the label box before rotating the image) (by [Wei-JL](https://github.com/Wei-JL)) + - Added shortcut key description (Help-Shortcut Key), repaired the direction shortcut key movement function under batch processing (by [d2623587501](https://github.com/d2623587501)) - 2021.2.5: New batch processing and undo functions (by [Evezerest](https://github.com/Evezerest)): - - Batch processing function: Press and hold the Ctrl key to select the box, you can move, copy, and delete in batches. - - Undo function: In the process of drawing a four-point label box or after editing the box, press Ctrl+Z to undo the previous operation. + - **Batch processing function**: Press and hold the Ctrl key to select the box, you can move, copy, and delete in batches. + - **Undo function**: In the process of drawing a four-point label box or after editing the box, press Ctrl+Z to undo the previous operation. - Fix image rotation and size problems, optimize the process of editing the mark frame (by [ninetailskim](https://github.com/ninetailskim)、 [edencfc](https://github.com/edencfc)). - 2021.1.11: Optimize the labeling experience (by [edencfc](https://github.com/edencfc)), - Users can choose whether to pop up the label input dialog after drawing the detection box in "View - Pop-up Label Input Dialog". @@ -23,17 +26,51 @@ PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, w ## Installation -### 1. Install PaddleOCR +### 1. Environment Preparation -PaddleOCR models has been built in PPOCRLabel, please refer to [PaddleOCR installation document](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md) to prepare PaddleOCR and make sure it works. +#### **Install PaddlePaddle 2.0** + +```bash +pip3 install --upgrade pip + +# If you have cuda9 or cuda10 installed on your machine, please run the following command to install +python3 -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple + +# If you only have cpu on your machine, please run the following command to install +python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple +``` + +For more software version requirements, please refer to the instructions in [Installation Document](https://www.paddlepaddle.org.cn/install/quick) for operation. + +#### **Install PaddleOCR** + +```bash +# Recommend +git clone https://github.com/PaddlePaddle/PaddleOCR + +# If you cannot pull successfully due to network problems, you can also choose to use the code hosting on the cloud: + +git clone https://gitee.com/paddlepaddle/PaddleOCR + +# Note: The cloud-hosting code may not be able to synchronize the update with this GitHub project in real time. There might be a delay of 3-5 days. Please give priority to the recommended method. +``` + +#### **Install Third-party Libraries** + +```bash +cd PaddleOCR +pip3 install -r requirements.txt +``` + +If you getting this error `OSError: [WinError 126] The specified module could not be found` when you install shapely on windows. Please try to download Shapely whl file using http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely. + +Reference: [Solve shapely installation on windows](https://stackoverflow.com/questions/44398265/install-shapely-oserror-winerror-126-the-specified-module-could-not-be-found) ### 2. Install PPOCRLabel -#### Windows + Anaconda +#### Windows -Download and install [Anaconda](https://www.anaconda.com/download/#download) (Python 3+) - -``` +```bash pip install pyqt5 cd ./PPOCRLabel # Change the directory to the PPOCRLabel folder python PPOCRLabel.py @@ -41,15 +78,15 @@ python PPOCRLabel.py #### Ubuntu Linux -``` +```bash pip3 install pyqt5 pip3 install trash-cli cd ./PPOCRLabel # Change the directory to the PPOCRLabel folder python3 PPOCRLabel.py ``` -#### macOS -``` +#### MacOS +```bash pip3 install pyqt5 pip3 uninstall opencv-python # Uninstall opencv manually as it conflicts with pyqt pip3 install opencv-contrib-python-headless==4.2.0.32 # Install the headless version of opencv @@ -79,11 +116,11 @@ python3 PPOCRLabel.py 7. Double click the result in 'recognition result' list to manually change inaccurate recognition results. -8. Click "Check", the image status will switch to "√",then the program automatically jump to the next. +8. **Click "Check", the image status will switch to "√",then the program automatically jump to the next.** 9. Click "Delete Image" and the image will be deleted to the recycle bin. -10. Labeling result: the user can save manually through the menu "File - Save Label", while the program will also save automatically if "File - Auto Save Label Mode" is selected. The manually checked label will be stored in *Label.txt* under the opened picture folder. Click "PaddleOCR"-"Save Recognition Results" in the menu bar, the recognition training data of such pictures will be saved in the *crop_img* folder, and the recognition label will be saved in *rec_gt.txt*[4]. +10. Labeling result: the user can export the label result manually through the menu "File - Export Label", while the program will also export automatically if "File - Auto export Label Mode" is selected. The manually checked label will be stored in *Label.txt* under the opened picture folder. Click "File"-"Export Recognition Results" in the menu bar, the recognition training data of such pictures will be saved in the *crop_img* folder, and the recognition label will be saved in *rec_gt.txt*[4]. ### Note @@ -97,10 +134,10 @@ python3 PPOCRLabel.py | File name | Description | | :-----------: | :----------------------------------------------------------: | -| Label.txt | The detection label file can be directly used for PPOCR detection model training. After the user saves 5 label results, the file will be automatically saved. It will also be written when the user closes the application or changes the file folder. | +| Label.txt | The detection label file can be directly used for PPOCR detection model training. After the user saves 5 label results, the file will be automatically exported. It will also be written when the user closes the application or changes the file folder. | | fileState.txt | The picture status file save the image in the current folder that has been manually confirmed by the user. | | Cache.cach | Cache files to save the results of model recognition. | -| rec_gt.txt | The recognition label file, which can be directly used for PPOCR identification model training, is generated after the user clicks on the menu bar "File"-"Save recognition result". | +| rec_gt.txt | The recognition label file, which can be directly used for PPOCR identification model training, is generated after the user clicks on the menu bar "File"-"Export recognition result". | | crop_img | The recognition data, generated at the same time with *rec_gt.txt* | ## Explanation @@ -134,16 +171,16 @@ python3 PPOCRLabel.py - Custom model: The model trained by users can be replaced by modifying PPOCRLabel.py in [PaddleOCR class instantiation](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/PPOCRLabel.py#L110) referring [Custom Model Code](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/whl_en.md#use-custom-model) -### Save +### Export Label Result -PPOCRLabel supports three ways to save Label.txt +PPOCRLabel supports three ways to export Label.txt -- Automatically save: After selecting "File - Auto Save Label Mode", the program will automatically write the annotations into Label.txt every time the user confirms an image. If this option is not turned on, it will be automatically saved after detecting that the user has manually checked 5 images. -- Manual save: Click "File-Save Marking Results" to manually save the label. -- Close application save +- Automatically export: After selecting "File - Auto Export Label Mode", the program will automatically write the annotations into Label.txt every time the user confirms an image. If this option is not turned on, it will be automatically exported after detecting that the user has manually checked 5 images. +- Manual export: Click "File-Export Marking Results" to manually export the label. +- Close application export -### Export partial recognition results +### Export Partial Recognition Results For some data that are difficult to recognize, the recognition results will not be exported by **unchecking** the corresponding tags in the recognition results checkbox. diff --git a/PPOCRLabel/README_ch.md b/PPOCRLabel/README_ch.md index c214698f40..ecc2ab600e 100644 --- a/PPOCRLabel/README_ch.md +++ b/PPOCRLabel/README_ch.md @@ -8,9 +8,12 @@ PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置P #### 近期更新 +- 2021.8.11: + - 新增功能:打开数据所在文件夹、图像旋转(注意:旋转前的图片上不能存在标记框)(by [Wei-JL](https://github.com/Wei-JL)) + - 新增快捷键说明(帮助-快捷键)、修复批处理下的方向快捷键移动功能(by [d2623587501](https://github.com/d2623587501)) - 2021.2.5:新增批处理与撤销功能(by [Evezerest](https://github.com/Evezerest)) - - 批处理功能:按住Ctrl键选择标记框后可批量移动、复制、删除。 - - 撤销功能:在绘制四点标注框过程中或对框进行编辑操作后,按下Ctrl+Z可撤销上一部操作。 + - **批处理功能**:按住Ctrl键选择标记框后可批量移动、复制、删除、重新识别。 + - **撤销功能**:在绘制四点标注框过程中或对框进行编辑操作后,按下Ctrl+Z可撤销上一部操作。 - 修复图像旋转和尺寸问题、优化编辑标记框过程(by [ninetailskim](https://github.com/ninetailskim)、 [edencfc](https://github.com/edencfc)) - 2021.1.11:优化标注体验(by [edencfc](https://github.com/edencfc)): - 用户可在“视图 - 弹出标记输入框”选择在画完检测框后标记输入框是否弹出。 @@ -27,13 +30,48 @@ PPOCRLabel是一款适用于OCR领域的半自动化图形标注工具,内置P ## 安装 -### 1. 安装PaddleOCR -PPOCRLabel内置PaddleOCR模型,故请参考[PaddleOCR安装文档](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md)准备好PaddleOCR,并确保PaddleOCR安装成功。 +### 1. 环境搭建 +#### 安装PaddlePaddle + +```bash +pip3 install --upgrade pip + +如果您的机器安装的是CUDA9或CUDA10,请运行以下命令安装 +python3 -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple + +如果您的机器是CPU,请运行以下命令安装 + +python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple +``` + +更多的版本需求,请参照[安装文档](https://www.paddlepaddle.org.cn/install/quick)中的说明进行操作。 + +#### **安装PaddleOCR** + +```bash +【推荐】git clone https://github.com/PaddlePaddle/PaddleOCR + +如果因为网络问题无法pull成功,也可选择使用码云上的托管: + +git clone https://gitee.com/paddlepaddle/PaddleOCR + +注:码云托管代码可能无法实时同步本github项目更新,存在3~5天延时,请优先使用推荐方式。 +``` + +#### 安装第三方库 + +```bash +cd PaddleOCR +pip3 install -r requirements.txt +``` + +注意,windows环境下,建议从[这里](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely)下载shapely安装包完成安装, 直接通过pip安装的shapely库可能出现`[winRrror 126] 找不到指定模块的问题`。 ### 2. 安装PPOCRLabel -#### Windows + Anaconda -``` +#### Windows + +```bash pip install pyqt5 cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下 python PPOCRLabel.py --lang ch @@ -41,15 +79,15 @@ python PPOCRLabel.py --lang ch #### Ubuntu Linux -``` +```bash pip3 install pyqt5 pip3 install trash-cli cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下 python3 PPOCRLabel.py --lang ch ``` -#### macOS -``` +#### MacOS +```bash pip3 install pyqt5 pip3 uninstall opencv-python # 由于mac版本的opencv与pyqt有冲突,需先手动卸载opencv pip3 install opencv-contrib-python-headless==4.2.0.32 # 安装headless版本的open-cv @@ -57,6 +95,8 @@ cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下 python3 PPOCRLabel.py --lang ch ``` + + ## 使用 ### 操作步骤 @@ -68,9 +108,9 @@ python3 PPOCRLabel.py --lang ch 5. 标记框绘制完成后,用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。 6. 重新识别:将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PPOCR模型会对当前图片中的**所有检测框**重新识别[3]。 7. 内容更改:双击识别结果,对不准确的识别结果进行手动更改。 -8. **确认标记**:点击 “确认”,图片状态切换为 “√”,跳转至下一张。 +8. **确认标记:点击 “确认”,图片状态切换为 “√”,跳转至下一张。** 9. 删除:点击 “删除图像”,图片将会被删除至回收站。 -10. 保存结果:用户可以通过菜单中“文件-保存标记结果”手动保存,同时也可以点击“文件 - 自动保存标记结果”开启自动保存。手动确认过的标记将会被存放在所打开图片文件夹下的*Label.txt*中。在菜单栏点击 “文件” - "保存识别结果"后,会将此类图片的识别训练数据保存在*crop_img*文件夹下,识别标签保存在*rec_gt.txt*中[4]。 +10. 导出结果:用户可以通过菜单中“文件-导出标记结果”手动导出,同时也可以点击“文件 - 自动导出标记结果”开启自动导出。手动确认过的标记将会被存放在所打开图片文件夹下的*Label.txt*中。在菜单栏点击 “文件” - "导出识别结果"后,会将此类图片的识别训练数据保存在*crop_img*文件夹下,识别标签保存在*rec_gt.txt*中[4]。 ### 注意 @@ -84,10 +124,10 @@ python3 PPOCRLabel.py --lang ch | 文件名 | 说明 | | :-----------: | :----------------------------------------------------------: | -| Label.txt | 检测标签,可直接用于PPOCR检测模型训练。用户每保存5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。 | +| Label.txt | 检测标签,可直接用于PPOCR检测模型训练。用户每确认5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。 | | fileState.txt | 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。 | | Cache.cach | 缓存文件,保存模型自动识别的结果。 | -| rec_gt.txt | 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "保存识别结果"后产生。 | +| rec_gt.txt | 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "导出识别结果"后产生。 | | crop_img | 识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。 | ## 说明 @@ -120,19 +160,19 @@ python3 PPOCRLabel.py --lang ch - 自定义模型:用户可根据[自定义模型代码使用](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/whl.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9E%8B),通过修改PPOCRLabel.py中针对[PaddleOCR类的实例化](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/PPOCRLabel.py#L110)替换成自己训练的模型。 -### 保存方式 +### 导出标记结果 -PPOCRLabel支持三种保存方式: +PPOCRLabel支持三种导出方式: -- 自动保存:点击“文件 - 自动保存标记结果”后,用户每确认过一张图片,程序自动将标记结果写入Label.txt中。若未开启此选项,则检测到用户手动确认过5张图片后进行自动保存。 -- 手动保存:点击“文件 - 保存标记结果”手动保存标记。 -- 关闭应用程序保存 +- 自动导出:点击“文件 - 自动导出标记结果”后,用户每确认过一张图片,程序自动将标记结果写入Label.txt中。若未开启此选项,则检测到用户手动确认过5张图片后进行自动导出。 +- 手动导出:点击“文件 - 导出标记结果”手动导出标记。 +- 关闭应用程序导出 ### 导出部分识别结果 针对部分难以识别的数据,通过在识别结果的复选框中**取消勾选**相应的标记,其识别结果不会被导出。 -*注意:识别结果中的复选框状态仍需用户手动点击保存后才能保留* +*注意:识别结果中的复选框状态仍需用户手动点击确认后才能保留* ### 错误提示 - 如果同时使用whl包安装了paddleocr,其优先级大于通过paddleocr.py调用PaddleOCR类,whl包未更新时会导致程序异常。 diff --git a/PPOCRLabel/libs/canvas.py b/PPOCRLabel/libs/canvas.py index fe81798ec8..d5662ac79a 100644 --- a/PPOCRLabel/libs/canvas.py +++ b/PPOCRLabel/libs/canvas.py @@ -23,6 +23,7 @@ except ImportError: from libs.shape import Shape from libs.utils import distance +import copy CURSOR_DEFAULT = Qt.ArrowCursor CURSOR_POINT = Qt.PointingHandCursor @@ -45,7 +46,7 @@ class Canvas(QWidget): CREATE, EDIT = list(range(2)) _fill_drawing = False # draw shadows - epsilon = 11.0 + epsilon = 5.0 def __init__(self, *args, **kwargs): super(Canvas, self).__init__(*args, **kwargs) @@ -81,6 +82,7 @@ class Canvas(QWidget): self.fourpoint = True # ADD self.pointnum = 0 self.movingShape = False + self.selectCountShape = False #initialisation for panning self.pan_initial_pos = QPoint() @@ -702,6 +704,10 @@ class Canvas(QWidget): def keyPressEvent(self, ev): key = ev.key() + shapesBackup = [] + shapesBackup = copy.deepcopy(self.shapes) + self.shapesBackups.pop() + self.shapesBackups.append(shapesBackup) if key == Qt.Key_Escape and self.current: print('ESC press') self.current = None @@ -709,41 +715,48 @@ class Canvas(QWidget): self.update() elif key == Qt.Key_Return and self.canCloseShape(): self.finalise() - elif key == Qt.Key_Left and self.selectedShape: + elif key == Qt.Key_Left and self.selectedShapes: self.moveOnePixel('Left') - elif key == Qt.Key_Right and self.selectedShape: + elif key == Qt.Key_Right and self.selectedShapes: self.moveOnePixel('Right') - elif key == Qt.Key_Up and self.selectedShape: + elif key == Qt.Key_Up and self.selectedShapes: self.moveOnePixel('Up') - elif key == Qt.Key_Down and self.selectedShape: + elif key == Qt.Key_Down and self.selectedShapes: self.moveOnePixel('Down') def moveOnePixel(self, direction): # print(self.selectedShape.points) - if direction == 'Left' and not self.moveOutOfBound(QPointF(-1.0, 0)): - # print("move Left one pixel") - self.selectedShape.points[0] += QPointF(-1.0, 0) - self.selectedShape.points[1] += QPointF(-1.0, 0) - self.selectedShape.points[2] += QPointF(-1.0, 0) - self.selectedShape.points[3] += QPointF(-1.0, 0) - elif direction == 'Right' and not self.moveOutOfBound(QPointF(1.0, 0)): - # print("move Right one pixel") - self.selectedShape.points[0] += QPointF(1.0, 0) - self.selectedShape.points[1] += QPointF(1.0, 0) - self.selectedShape.points[2] += QPointF(1.0, 0) - self.selectedShape.points[3] += QPointF(1.0, 0) - elif direction == 'Up' and not self.moveOutOfBound(QPointF(0, -1.0)): - # print("move Up one pixel") - self.selectedShape.points[0] += QPointF(0, -1.0) - self.selectedShape.points[1] += QPointF(0, -1.0) - self.selectedShape.points[2] += QPointF(0, -1.0) - self.selectedShape.points[3] += QPointF(0, -1.0) - elif direction == 'Down' and not self.moveOutOfBound(QPointF(0, 1.0)): - # print("move Down one pixel") - self.selectedShape.points[0] += QPointF(0, 1.0) - self.selectedShape.points[1] += QPointF(0, 1.0) - self.selectedShape.points[2] += QPointF(0, 1.0) - self.selectedShape.points[3] += QPointF(0, 1.0) + self.selectCount = len(self.selectedShapes) + self.selectCountShape = True + for i in range(len(self.selectedShapes)): + self.selectedShape = self.selectedShapes[i] + if direction == 'Left' and not self.moveOutOfBound(QPointF(-1.0, 0)): + # print("move Left one pixel") + self.selectedShape.points[0] += QPointF(-1.0, 0) + self.selectedShape.points[1] += QPointF(-1.0, 0) + self.selectedShape.points[2] += QPointF(-1.0, 0) + self.selectedShape.points[3] += QPointF(-1.0, 0) + elif direction == 'Right' and not self.moveOutOfBound(QPointF(1.0, 0)): + # print("move Right one pixel") + self.selectedShape.points[0] += QPointF(1.0, 0) + self.selectedShape.points[1] += QPointF(1.0, 0) + self.selectedShape.points[2] += QPointF(1.0, 0) + self.selectedShape.points[3] += QPointF(1.0, 0) + elif direction == 'Up' and not self.moveOutOfBound(QPointF(0, -1.0)): + # print("move Up one pixel") + self.selectedShape.points[0] += QPointF(0, -1.0) + self.selectedShape.points[1] += QPointF(0, -1.0) + self.selectedShape.points[2] += QPointF(0, -1.0) + self.selectedShape.points[3] += QPointF(0, -1.0) + elif direction == 'Down' and not self.moveOutOfBound(QPointF(0, 1.0)): + # print("move Down one pixel") + self.selectedShape.points[0] += QPointF(0, 1.0) + self.selectedShape.points[1] += QPointF(0, 1.0) + self.selectedShape.points[2] += QPointF(0, 1.0) + self.selectedShape.points[3] += QPointF(0, 1.0) + shapesBackup = [] + shapesBackup = copy.deepcopy(self.shapes) + self.shapesBackups.append(shapesBackup) self.shapeMoved.emit() self.repaint() @@ -840,6 +853,7 @@ class Canvas(QWidget): def restoreShape(self): if not self.isShapeRestorable: return + self.shapesBackups.pop() # latest shapesBackup = self.shapesBackups.pop() self.shapes = shapesBackup diff --git a/PPOCRLabel/libs/resources.py b/PPOCRLabel/libs/resources.py index 808da2530c..d7ee7c8360 100644 --- a/PPOCRLabel/libs/resources.py +++ b/PPOCRLabel/libs/resources.py @@ -2,13 +2,370 @@ # Resource object code # -# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) +# Created by: The Resource Compiler for PyQt5 (Qt v5.9.7) # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore qt_resource_data = b"\ +\x00\x00\x06\x33\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x10\x00\x00\ +\x0b\x10\x01\xad\x23\xbd\x75\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd3\x09\x09\x14\x30\x03\x75\x06\x85\x3f\x00\x00\x05\xc0\x49\x44\ +\x41\x54\x78\xda\xc5\x97\x4d\x6c\x1b\xd7\x11\xc7\x7f\xbb\x5c\x7e\ +\x73\xad\x95\xe4\xc8\x72\x9c\x2a\x52\x80\x26\x46\x9a\xda\x54\x84\ +\xd4\x69\x9b\x16\x16\x20\x07\x69\x51\x24\x05\x9a\x22\x40\x0e\x59\ +\x03\x86\x7b\xe8\xc5\xe8\xb9\x28\x24\xf4\xd2\xab\xdd\x1e\x7b\xf1\ +\xa2\x97\xa2\x48\x51\xb4\x75\x5a\xc4\x68\x2b\xa1\x89\x03\x3b\x85\ +\x62\x26\x76\x52\x35\x82\x2d\xda\xaa\xf5\x41\x52\x21\x25\x92\xbb\ +\xfc\x58\xbe\xd7\xc3\x92\x14\x29\x92\x26\x9b\x4b\x1e\x30\xc4\xf2\ +\xbd\x99\xf7\xff\xef\xbc\xd9\x99\x79\x8a\x94\x92\x2f\x72\x68\x00\ +\xa6\x69\x0e\x6c\xb0\xfa\x98\x35\x09\x4c\x4a\xc9\xe9\xc6\x9c\x90\ +\x20\x04\x4b\x02\x92\xcf\x6c\x99\xc9\x41\xf7\xb2\x2c\xcb\x23\xd0\ +\x6f\xdc\x99\xb0\x0c\xe0\x2c\x60\x22\x88\xb7\x3a\xad\x0e\x8e\x80\ +\x79\x80\xdb\xe3\x56\x42\x48\x2c\x29\xb8\x7c\x32\x6d\xe6\x06\xf2\ +\x40\x1f\xf0\x05\xe0\x02\x60\xa8\x0a\x44\xc3\x10\xf4\xc3\x89\x47\ +\xf3\x44\xc3\x41\x00\xa4\x28\xf3\xde\x5d\x1d\xbb\x04\xc5\x32\xf1\ +\x72\x95\x38\x30\x7f\xf3\xb0\x75\x69\x3a\x63\x2e\x7c\x2e\x02\x6b\ +\x8f\x5b\x86\x90\x2c\x02\x71\x4d\x85\x58\x18\xbe\x7b\xb2\x4a\x7c\ +\x4a\x65\xfa\x09\x1f\xa0\xb7\x68\x07\xf8\x09\xb0\x9e\x11\x7c\xb8\ +\x26\x78\xe7\xd6\x2e\xd7\xd6\x46\x0d\xe1\x32\xbf\x3c\x6a\xbd\x02\ +\xcc\xce\xec\x74\xf7\x86\xd6\x03\x3c\x5e\x07\x37\xf4\x10\xcc\x3e\ +\x5d\xe1\xfb\xa7\x34\x46\x74\x3f\x00\x99\x3d\xc1\xda\x86\x4d\xc5\ +\x15\x08\xa9\x34\xed\x9e\x7d\x52\x67\xf6\x84\xca\xec\x89\x51\xde\ +\xfe\xc0\xe5\x8f\x37\x4a\x7c\xb2\x15\x8b\x0b\xc1\xda\x0d\xc3\x9a\ +\x3d\x95\x33\x13\x7d\x09\xb4\xbc\xb9\xf1\xc4\x61\x87\x1f\x7c\xdd\ +\x4f\x7c\x2a\x00\xc0\xc6\x8e\xcb\xd6\x8e\x03\xc0\x8b\x33\x7a\x07\ +\xf1\xab\xcb\x79\x00\x9e\x9a\xd0\x79\xe1\x69\x8d\x2f\x3f\x1a\xe1\ +\xcd\xa5\x6d\xfe\x74\xfb\x88\x01\x2c\x5e\x1f\xb2\xa6\x9e\xdf\x6d\ +\xf7\x44\x07\x81\x06\xb8\x11\x85\x73\x73\x41\x8e\x0c\xab\x38\x55\ +\x48\x65\x2b\x14\x8b\x0e\xdf\xf9\xda\x50\xcf\xf3\x6c\x90\xba\xba\ +\x9c\x67\xe2\xa8\xce\xa1\xa8\xca\xeb\x67\xc6\xa8\xc9\x14\x57\x6e\ +\x8f\x19\xc0\x22\x30\xdd\x6a\xa3\x76\x09\xb8\xb8\x1e\x82\xd7\x9e\ +\x77\x89\x86\x54\x0a\x0e\x64\xf3\xa2\x2f\xf8\x41\x22\xf7\x37\xf3\ +\x14\x1c\x70\x6b\x0a\x67\x9e\x3b\xcc\xf1\x71\x1b\x21\x89\xbf\x77\ +\xc8\x5a\xe8\x4a\xa0\xfe\xa9\x5d\x50\x15\x78\x6e\xaa\xc2\xe4\xb8\ +\x86\x53\x05\xa7\x0a\x77\x1e\x14\x3b\xc0\x37\xb3\x70\x6d\x05\xde\ +\x59\x81\xeb\xab\x90\x2f\xb5\x93\xf8\xd6\x57\xf5\xa6\x7d\x34\xac\ +\xf2\xf2\xa9\x00\x7e\x1f\x08\xc9\x85\x77\x75\xcb\xe8\xe6\x81\xb3\ +\x80\x71\x28\x02\x27\xa6\x34\xf2\x0e\x4d\x19\x1f\x6e\x73\x14\x4e\ +\x05\x6e\x26\x61\xb7\xbe\xfe\x59\x01\xfe\x9e\xa8\x50\x2c\xb9\x4d\ +\x9d\x70\x00\xca\x95\xfd\x3d\x8e\x8e\x68\x3c\xfb\xa5\x3c\x80\x21\ +\x24\x67\xbb\x11\x30\x55\x05\xa6\x27\xaa\x80\x8a\x5d\xa2\x29\x41\ +\x7f\x3b\x81\x8f\xd7\x69\x5b\xb7\x4b\x9e\x07\xd6\xb7\x9d\x36\x3d\ +\xbf\xe6\xad\xad\x6d\xd5\xf8\xd7\xaa\x8b\x1e\x0b\xa0\xa9\x20\x04\ +\x66\x5b\x10\xae\x3e\x66\x4d\x22\x88\x87\x43\x30\x14\x53\x29\x96\ +\xdb\xdd\x69\x87\x02\xcd\xe7\xb2\x0b\x9f\x6e\x42\xd5\x6d\xd7\xd9\ +\xdd\x49\x73\xfc\xf4\xb1\xb6\xb9\x7f\x7c\x58\x25\x99\x56\xb0\x5d\ +\xad\x09\x37\x12\x83\x8d\x2c\xf1\xa5\x88\x35\x09\x24\x1b\x2b\x93\ +\x52\x7a\x6e\x0b\xf8\x3a\x09\xdc\x49\xf9\xf8\xcb\x4d\x18\x89\xc1\ +\xea\x46\xe7\x79\xbb\xf6\x36\xaf\x7c\xd3\x68\x9b\xfb\xf7\x7f\x05\ +\x9f\x6c\xfa\x3b\x02\x34\x16\x06\xb2\x20\x25\xfb\x04\x1a\x85\x25\ +\xa4\xd5\x28\xd7\x7c\x94\x6b\x9d\x91\xfd\xf1\x7a\x8f\x54\x5a\xd9\ +\xe6\x47\xdf\x1b\x25\x1a\xda\xff\xa2\xed\xb2\xe4\xd7\x57\xab\x40\ +\xb0\x43\x3f\xe8\x07\x29\x41\x78\x98\x4b\x5a\x6b\x51\x31\x22\x35\ +\x8a\x65\xdf\xc0\x95\x31\x50\xbe\xc7\x8f\x5f\x3d\xd6\x01\xfe\x8b\ +\xdf\x57\x58\xcf\x05\xbb\xda\x84\x03\x1e\x96\xd7\x06\x28\x5e\x0c\ +\x88\x7a\x75\x13\x42\xa1\xe0\x0c\x06\x2e\x4b\x29\x7e\xfe\x46\x77\ +\xf0\x95\xad\xe0\xc3\x6d\x5b\xca\xa9\x47\x40\x78\x7f\xb2\xb6\x86\ +\xcf\xdf\x1f\x5c\x41\xf2\xd2\x71\xd1\x06\x9e\xde\x93\xfc\xea\x4a\ +\x95\x4f\xb7\x83\xa8\x4a\x6f\xdb\x83\xf1\xd5\xd8\x61\x49\xc0\x7c\ +\x55\x28\x94\xab\x0f\x67\xee\xd5\x7e\x85\xa7\x26\x22\x6d\x6b\xbf\ +\x7c\xab\xc6\xdd\x4c\x00\xad\xcf\x09\x96\xab\x80\x14\x00\x4b\xe0\ +\xab\x7b\x00\x92\x8d\x04\xe3\xd6\xc0\xa7\xca\x16\x50\xa5\x79\x44\ +\xa0\x34\x7f\x15\xf6\x75\xee\x67\x24\x6b\x69\x0d\x65\x80\xa3\xcb\ +\x15\x00\xcf\x36\xd9\x4c\x44\xcf\x6c\x99\x49\x21\x49\xec\xd9\xa0\ +\x2a\x1e\x68\x43\xc0\x9b\x3b\x28\x99\xc2\xfe\xab\x2e\xdf\x55\xba\ +\xea\x74\x93\xd4\x1e\x00\x89\xb9\xca\xb9\x64\x5b\x35\x94\x02\xab\ +\x2c\x88\xdb\x25\x17\x23\xd6\xbf\x53\xfb\xdd\xfb\x31\x36\xf2\x50\ +\x2c\x79\x35\x21\x30\x40\x73\xb7\x99\x75\x71\xbd\x04\x66\x75\x2b\ +\xc7\x97\x81\xf9\xf5\x1d\xd5\x38\x32\xdc\x7f\x33\xbb\xf0\x19\x46\ +\xc0\x4f\x48\xba\x8c\x0f\xe9\x64\xed\xfe\x0c\xfe\xb3\xa1\x00\x32\ +\x57\xc7\x6a\xaf\x05\x27\xd3\x66\x4e\x48\x2e\x15\x2b\x2a\xd9\xdd\ +\x02\xe1\x00\x3d\xc5\x27\xf2\xfc\xec\x87\x7e\x5e\x9c\xd1\x79\xf9\ +\x1b\xc3\xfc\xf4\x55\x0d\x23\xca\x43\x6d\xb6\x32\x79\x9c\xb2\x04\ +\xc4\xa5\xb9\xca\xb9\x5c\xd7\x7e\xa0\xde\x40\x26\x3e\x7a\x10\xa3\ +\x54\xcc\xe2\xd7\xe8\x2e\x8a\xcb\xe3\x47\xf5\xb6\xe4\x32\x39\x46\ +\x4f\xfd\xbd\xdc\x0e\xd7\xef\x84\x01\x91\x98\xab\x9c\x5f\xe8\xd9\ +\x90\xd4\xc7\xac\x10\xe4\xfe\xb6\x32\x4c\xa5\x90\x26\xe8\xa7\x43\ +\xc2\x91\x30\x4e\xe5\xc0\x91\x94\xe8\xaa\x6b\xef\xa5\x78\xeb\xd6\ +\x10\x20\x72\xc0\xec\x41\xb0\x0e\x02\x33\x3b\x66\x4e\x48\x66\xa5\ +\x24\x77\xe5\xf6\x23\x64\x52\xa9\x0e\x77\xea\xb1\x10\xbf\xbd\xe6\ +\x55\xc5\x7b\x69\xf8\xc3\xfb\x50\x72\x3b\xdd\xbe\xb9\xb9\xc9\x9b\ +\xcb\x23\x4d\xf0\xb9\xca\xf9\xdc\x40\x5d\xf1\xa9\x9c\x99\xb8\x3e\ +\x64\x4d\x09\xc9\xe2\xdb\x2b\x63\xf1\xc3\xf7\x6d\xce\x7c\xa5\xc0\ +\xe8\xe8\x58\x53\x67\xcf\x86\xbf\x7e\xb0\x6f\xd3\x92\x14\xc9\xa4\ +\x1e\xf0\xe7\x8f\x86\x48\x17\x1e\x01\x44\xa2\x17\xf8\x43\xef\x05\ +\xf5\xee\x75\xfa\x5d\xdd\x5a\x48\x15\x23\x17\x7e\x73\x23\x62\x1c\ +\xd3\xf3\xcc\x4c\xec\x32\x36\x1c\x24\x14\x0c\x11\x8d\x79\x71\x50\ +\x2c\xe6\x71\x1c\x87\xad\x4c\x89\x1b\xf7\x0c\x36\xf6\x8e\x00\xe4\ +\xbc\x80\x3b\xff\xf9\x2e\x26\x8d\xf1\x42\xde\x5c\xf8\x67\xcc\xba\ +\x08\x9c\x5d\xdf\xd5\xcd\xf5\x5b\x7a\xbc\x5e\x4e\x5b\x0a\x4b\x0c\ +\x64\xa4\x91\xe1\x12\xde\x77\x2e\x2e\xf7\x7a\xeb\xff\x8b\x00\xc0\ +\xb7\x0b\x66\x0e\xb8\x08\x5c\x5c\x0c\x7b\x97\x53\xe0\x74\xb3\xaa\ +\x35\x73\x3b\xc9\x46\x86\x1b\x74\x28\x5f\xf4\xf5\xfc\x7f\x92\x93\ +\xb2\xba\x6d\x79\x43\x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x04\xa3\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ +\x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ +\xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ +\x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ +\xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ +\x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ +\x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ +\xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ +\x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ +\x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ +\x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ +\x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ +\x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ +\x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ +\x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ +\x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ +\x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ +\x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ +\x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ +\xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ +\x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ +\x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ +\xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ +\x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ +\x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ +\x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ +\xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ +\xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ +\x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ +\x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ +\x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ +\x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ +\x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ +\xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ +\x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ +\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ +\x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ +\x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ +\xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ +\x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ +\x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ +\x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ +\x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ +\x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ +\xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ +\xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ +\xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ +\xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ +\xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ +\x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ +\x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ +\x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ +\xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ +\x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ +\xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ +\x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ +\x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ +\xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ +\xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ +\x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ +\x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ +\x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ +\x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ +\x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ +\x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ +\xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ +\x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ +\x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ +\x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ +\x00\x00\x0a\xfb\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x0a\x8d\x49\x44\x41\x54\x78\xda\xed\ +\x9a\x5d\x88\x5d\x57\x15\xc7\x7f\x6b\xef\x73\xee\xbd\x93\x3b\x33\ +\x99\xc9\x57\x9b\x8f\x36\x4d\x93\xd2\x54\x6d\x5a\x8a\x6d\xb5\x05\ +\x5b\x29\x05\x5f\x0c\x54\x2a\x88\x2f\x16\x41\x6c\xc5\x22\x14\xd1\ +\x17\x1f\x7d\xb1\x42\xc5\x52\xf0\x31\x42\x5f\xaa\xd0\xaa\xd5\x46\ +\xb0\x54\x90\x52\xa5\x82\x6d\xac\xd4\xa4\x24\x4d\xd3\x4c\xcd\xe4\ +\xab\x99\x4e\x3a\xf7\xfb\x9c\xbd\xbc\x73\xcf\x3e\xb3\xe6\xce\x4c\ +\x26\x93\x20\x82\xe0\x86\x35\x7b\xdf\x7d\xf6\x39\x67\xfd\xd7\xfa\ +\xff\xd7\xde\x07\x26\x51\x55\xfe\x97\x5b\x02\xfc\xef\x03\x10\x79\ +\x8a\xb5\xb5\xfc\xa1\xc4\xcb\x63\xd5\x6a\xba\x03\xc8\x89\x2d\x68\ +\x61\x00\x22\x50\x49\x33\xfe\x33\x99\x4d\xc9\x73\x59\xfc\x2c\xdf\ +\x69\x77\x8f\x06\xe5\x19\xf0\x2f\xab\x3e\x71\x25\x19\xc8\x1f\xdf\ +\x7d\xcb\xe6\xa7\x1f\xf8\xfa\xbd\x8c\x6c\xdb\x04\x79\x00\x20\x00\ +\x93\x23\x30\x5e\x53\xb2\xe0\x09\xb3\x67\xd8\x5b\x3f\xc7\xf8\xfa\ +\x3a\x21\x5c\x1d\x08\x11\x41\xb3\x2e\x7f\x39\x1a\x98\x9d\xd8\xcb\ +\xba\x11\x45\x15\xbc\x17\x4e\xbf\x33\x7d\xcb\x6f\x7f\xf6\xda\xfe\ +\xe9\xa9\xd9\x87\x81\xe7\xd7\x08\x20\x4c\x8e\x8f\xd5\xbe\xbf\xff\ +\x07\x5f\xe4\xaf\xcd\x8d\xcc\x4e\x83\x77\x20\x02\x59\x80\xfb\x6f\ +\x84\x5d\x9b\x61\xb6\x05\xa2\x4d\x76\xef\xf2\x6c\xd9\xb2\x91\x3c\ +\x0f\x57\x0d\xc0\xd3\xe6\xc5\xd7\xcf\xf1\xf7\xc6\x04\xbb\x6e\x76\ +\x68\x0e\x12\x60\xd3\x67\x36\xf0\x8d\x1b\x37\xf0\xe4\x23\xbf\xfc\ +\xce\x95\x00\xd8\xba\xf3\xe6\x8d\x1b\x3f\x4c\x27\xf9\x60\x1a\xd6\ +\xa5\x10\x04\x5c\x04\xd0\x6a\x06\x2e\xce\xf6\xad\xe5\x48\xfb\xe3\ +\xe3\xc7\xa7\x39\x75\x6a\x06\xd5\xb5\x3b\xbc\xb8\xa9\x2a\xd5\xa4\ +\x47\xb3\x51\xa1\xa7\x4a\xde\xa5\x00\x20\x30\x7d\x1a\xee\xb8\x61\ +\x33\xdb\x77\xad\xdf\x7d\x25\x22\x76\xce\x3b\x51\x15\xd2\x04\x12\ +\x0f\x02\x88\x14\x96\xe7\xd0\x6a\x43\xb3\x6f\xa3\x99\x50\xab\xa5\ +\x7d\xab\xac\x49\x07\xaa\x90\xb8\x1c\xe7\x14\x80\x4e\xcf\x01\x8e\ +\x4a\x02\x3e\xf5\x88\x53\x9c\x03\x55\x7b\x67\xde\x13\x5c\xbf\x5d\ +\x02\x80\xae\xf8\x1a\x45\x0b\x87\x89\x4d\xcc\xba\x19\xcc\x35\xa1\ +\xd1\xb7\x8a\x08\xa3\xa3\x23\xd4\xeb\x97\xd7\x80\x77\x42\xb3\xd9\ +\xe2\xd5\x37\xdb\x9c\x9d\xad\xe2\x7d\xe0\xbe\xdb\x33\xb6\x5d\x33\ +\x89\xa7\x4b\x92\xe4\x08\x45\xa6\x03\x0c\x80\x10\x83\xa6\xfd\xb6\ +\x04\x40\xb8\x1e\xc2\x23\x95\x24\xdd\x87\x10\xcc\xf5\x3e\xe0\x2c\ +\x9d\x9c\x3a\xfe\x51\xda\x78\xfa\x20\x1f\xce\x05\x44\x73\x44\x0c\ +\xee\xc5\x54\x79\xd3\x05\x7a\xb9\x50\x91\x36\x7f\x5e\xdf\x23\x49\ +\xfc\xaa\x14\xf2\x3e\xe9\x9b\xa3\xd7\x47\x7f\xe8\x58\xc2\xe9\x8f\ +\x2a\x90\x2b\x9d\xaf\x55\x78\xf4\x9b\x5b\x48\x05\xbc\xef\x40\xa4\ +\x2a\xae\xe8\x15\x08\x5a\xf4\x18\x80\xb0\xaf\x3e\x9a\xbe\xf4\xa5\ +\x6f\xdd\xb3\x63\xfd\x9e\x6d\xe4\x99\xc2\x00\x25\xd4\x52\xd8\x54\ +\x87\x2c\x53\x5a\xb3\x0d\x76\x57\xa6\xd8\xbb\x7b\x23\xbd\xdc\xbc\ +\x53\x04\x0b\xb6\x90\x05\x59\x95\x3e\x89\x87\x43\x6f\x9f\xe7\xad\ +\xb9\xeb\x19\xdf\x38\xc2\xcd\x5e\x49\x12\x08\x9d\x0e\xbf\x3f\xf0\ +\x37\xce\x9d\x3e\xc4\x8f\x7f\x74\x7b\x7f\xae\x87\x8b\xdc\x77\x62\ +\x94\x55\x2d\x0c\x03\xa0\xdf\xdb\xff\xd8\xbd\x3b\xf2\x7b\x3e\xcd\ +\xab\xef\x81\x8f\x68\x73\x85\x1b\x46\xe1\xd6\x3d\xd0\xed\xc1\xdc\ +\xc5\x16\x7b\xea\x19\xfb\x6e\xbd\x9e\x5e\x16\xb8\xda\x56\x4d\x85\ +\x33\x33\xf0\xdc\xeb\x5b\xb9\xed\xb6\x71\x5a\xf1\x51\xa3\x75\xf8\ +\xea\x0f\xb7\xf2\xec\x77\x5f\xe0\xf0\xe1\x8f\x18\xa9\xd5\x91\x66\ +\x41\x9d\x10\x0c\xc0\xfc\x38\x2c\x06\x30\x3e\x56\xbd\x77\xc7\xdd\ +\x37\xf1\xe2\x3b\x40\x66\x25\x52\x81\x46\xaa\xcc\x5c\xc8\xe9\x76\ +\x85\x4e\x2b\x70\x6a\x76\x86\x6e\xa3\x49\x50\xae\xba\xa5\x89\x72\ +\xe6\x4c\x9b\x76\x03\xda\x2d\x90\xe8\xdc\xb9\x26\x4c\xec\x1c\x63\ +\xef\x5d\x3b\x78\xf7\xe8\x2c\xd5\xea\xfa\x02\x00\x0c\x51\x29\x2c\ +\xcd\x80\x38\xf1\x01\x47\xea\x20\xf8\x32\x03\x86\xb2\xdd\x86\x4e\ +\x57\xe9\x76\x20\xa9\x27\x54\xab\x09\x6b\x29\xf1\x0a\x78\x09\xa4\ +\x3e\x80\x40\x2f\x73\x04\x75\x03\x00\xe9\xa0\xc2\x14\xef\x02\x70\ +\xa5\x83\x01\x10\x8f\x13\x87\x4f\x04\x11\x5d\x46\xa1\x65\x00\x50\ +\x14\x8d\x0f\xb0\x85\xb8\xe8\x45\xb3\xad\x74\x3a\xd0\x6b\x07\xaa\ +\x1b\x52\xc6\xc6\x46\xc9\x83\x5e\x7e\x37\x0d\x3d\x0e\x1d\x99\xe1\ +\xd8\xe9\x75\x84\x1c\xf6\x6c\x6d\x72\xc7\x27\x26\xa9\x54\x52\xaa\ +\xb5\x1c\x89\x95\xad\x34\xca\x4a\xa3\x90\x24\x0e\xef\xbd\x55\x21\ +\x03\xb1\x1c\x80\x52\x4c\x98\xe3\x51\xf1\xf3\x16\x94\x76\x7b\xde\ +\xa0\xd7\x81\x4a\x9a\x32\x32\x92\x92\xe5\x97\x07\x90\x48\xce\x3f\ +\x4e\x8c\xf2\xcc\xef\x76\x41\x57\x79\x74\xff\x09\xee\xbf\xcb\x23\ +\x2e\x25\x4d\x93\x62\xc7\xb5\xa0\x45\x3f\x0a\x07\x7d\xe2\x48\xbc\ +\x8b\xd1\x37\x0a\x89\xb3\x35\x43\x65\x34\xa8\x21\x74\x0e\x9c\x3d\ +\x90\x56\x4b\x69\x77\x20\xeb\xea\xfc\x83\x63\xfa\x2f\x0f\x20\x75\ +\x09\xe2\x7a\xd0\x53\x00\x92\xf2\x5e\xef\x49\x13\xb7\xe0\x38\x62\ +\xef\x93\xe8\x4b\xe2\xdc\xe0\x5d\xc2\x30\x33\x5c\x14\xb1\x95\xd1\ +\xe8\x64\x1e\x86\x1f\x26\x18\xda\x66\x04\x90\x77\x75\x50\xdf\x2b\ +\x15\x8f\x64\x6b\x01\xe0\x71\x25\x27\xa4\x88\xea\xfc\xbd\x38\x4f\ +\x92\xfa\x21\xe7\x1c\x31\xe3\x14\xbe\x78\x97\x91\x38\xf3\x43\x82\ +\xe9\x64\x45\x0a\xe5\xc1\x68\x23\x25\x17\xc5\x32\xd0\x6a\x43\x18\ +\x54\x28\x5f\x6c\x52\xac\x01\x80\xf7\xf8\x52\xa5\x30\x18\x27\x49\ +\x01\x20\xf2\xdb\xa2\x8b\x05\x50\x81\x67\x9e\x0f\xf4\xb6\xd4\xd8\ +\x70\x8b\xd1\xcc\x00\xac\x40\x21\x8d\x4e\x6b\x18\xf4\xc6\xb7\x8c\ +\xbe\xf3\x05\x00\x72\xe6\x1d\x18\xd0\x00\x59\x1b\x00\xa7\x0e\xda\ +\x02\x30\x18\xa7\x15\x0f\x32\x4f\x21\x8f\x08\x98\xd9\x79\x47\x83\ +\x32\x53\xdf\xc0\xbe\xfb\x36\x30\x31\xaa\xe4\x19\xb8\xa5\x14\xd2\ +\xa5\x14\xca\x41\x18\x46\x2a\x51\xc4\x65\x06\xc8\x75\xc0\xe3\x6a\ +\x65\x6d\x1a\x70\x24\x6c\xbf\x36\xe7\xee\x3b\x2f\x02\x0c\xc6\xce\ +\x25\x83\x00\xf4\x6d\x58\xa0\x50\xfc\x89\x74\xde\xbc\x05\xb6\x6e\ +\x87\x6e\x53\x08\x6a\x41\x9d\xef\x43\x0e\xba\x5c\xc4\x31\x12\x6e\ +\x58\xcc\xaa\x45\x06\x9a\x2d\x10\x55\x7c\x92\x0c\xa2\xa8\xb2\x96\ +\x93\x66\x95\x87\x1f\x9c\xe0\xcb\x0f\x6a\xcc\xf2\x04\xe2\xab\x24\ +\xa9\x2b\x34\x20\x82\x49\x04\xc4\xce\x3a\x5c\x3b\x02\xbb\xc6\xa0\ +\x9b\x2a\x4e\x84\x56\x06\x17\xda\xf1\x08\xaf\x10\x96\x6b\xc0\x28\ +\x24\x60\x7c\x0b\x46\x21\xa7\x8a\x73\xd2\x37\xd7\x37\x65\x2d\x6d\ +\x62\x62\xdc\x0e\x7e\x0a\x21\x68\xf1\x6c\xef\x10\x86\xb3\x4e\xe4\ +\x77\x96\xc3\x67\xb7\x35\xf8\xca\xde\x39\x5a\xad\x0c\x27\x8e\x57\ +\xde\xaf\x73\xa1\xe5\x57\x16\x31\x6a\x22\x66\xa1\x8c\xda\x79\xa8\ +\xd9\x54\x1a\x7d\x4b\x45\x19\xa9\x40\xad\x92\x91\x88\x72\xb5\x2d\ +\xa9\xc0\x68\x75\x21\xea\x66\xa5\x2f\x0a\x1b\xc7\xab\x6c\x1a\x5f\ +\x47\x3e\xd2\xa5\xd1\x68\x01\x0a\x97\xd4\x40\x34\x27\xa0\x4b\x28\ +\x04\xd0\xcd\x21\x0b\xd0\x0b\x9e\x9f\xfe\x2a\xe1\x9a\xc9\x16\x59\ +\x86\xf1\x1d\xac\xc9\x2a\xba\xc0\x4e\xa3\xc7\xa7\x52\xf0\xbe\x3f\ +\x1e\xde\x44\x89\x0e\xce\x53\x15\x5c\xbf\xaf\x92\x85\x26\x79\x50\ +\x9c\xc3\xaa\x10\x4b\x34\x60\xa7\x3d\x33\x02\xd4\xd6\x7b\x6e\xfc\ +\xdc\xd8\x42\xb4\x0e\x77\x26\xf8\x67\x0b\xa3\x99\x23\x8a\x31\xce\ +\x11\xc7\x8b\x37\x45\xb0\x35\xb1\xb6\x27\x37\xc1\x9d\x63\x10\xb2\ +\xe1\xe3\x32\x91\xdf\xd6\x74\x40\x3b\x0d\xf6\x3e\x5d\xb6\x0f\x0c\ +\x53\xc8\x8e\x16\xe5\x8b\x53\x59\x40\x3f\x5e\x03\x6f\xce\x61\xe5\ +\x6d\xc9\x98\xe5\xd7\xc5\x0d\x5f\x93\xf8\x1e\x5b\x63\x7a\x04\xb0\ +\xe0\x86\xb8\xd1\x1a\xad\x55\x57\xc8\x80\xf3\xd0\x53\xd8\x35\x09\ +\x37\x6c\xb0\x07\x89\x58\x2f\x0c\x8f\x05\xe3\x86\xb3\x75\x36\x1f\ +\x3b\x9b\xb3\xdf\x10\x41\x00\xe7\xdb\x16\xf9\x10\xec\x3d\x1a\x01\ +\xa8\xea\x50\x06\xc2\xb2\x0c\xa8\x3d\x74\x53\x5d\x79\x60\xf3\x71\ +\x5c\x68\xa3\x08\x22\xf3\xe6\x70\xae\x18\x23\x71\x0e\x87\xb8\x72\ +\x2c\x88\x2b\x7b\x17\x29\xe4\x90\xb8\xd6\x95\xf7\x39\x37\x18\x4b\ +\xb4\x4a\x22\x1c\x39\x5f\xe3\x95\xa9\x0a\x4e\xac\xa4\x23\xc3\x5f\ +\xe4\x41\x2f\x71\x9c\x36\x94\x46\x83\x2c\x57\x7c\xf6\x31\x9b\x27\ +\xc6\x49\x6b\x63\x20\x1a\x69\x23\x0b\x20\xc4\x81\x17\x89\x7b\x87\ +\xe0\x88\x34\x2b\x1d\xf6\xa5\x0f\xe6\x2c\x10\x03\x00\x12\xe7\x43\ +\xaf\xc5\xbb\x17\x72\x3b\x4a\x5b\x74\x97\x01\x70\x52\xd0\x57\xc3\ +\xca\x1b\x59\x04\x60\x9a\xa8\x8d\x4e\x52\xed\x9b\x86\xf8\x95\xe6\ +\x30\xfe\x4a\x61\x5e\x2e\x39\xbf\xa6\xd6\xee\x76\xe8\xe5\x8a\x60\ +\x1a\x08\xcb\x34\xa0\xf3\x66\x7b\xd3\x6a\x14\x32\x00\x3a\x40\x8e\ +\xda\x37\xa8\x0f\xa0\xb2\x04\xec\x7c\xaf\xe5\xbc\x39\xaf\x26\xf2\ +\x55\x9b\x6a\x18\x38\x07\x31\xfb\x40\xae\xcb\x44\x5c\xe8\xc2\x19\ +\x00\x65\xb9\x88\x63\x14\x4d\x38\xe5\xe7\x9c\x94\xa0\x88\x62\x0d\ +\x10\x5c\x1c\x97\x11\x73\x10\xa7\x08\xd8\xbc\xc4\xac\x5c\xa2\x59\ +\xd5\x11\x03\x6b\x1c\x8f\xbf\x8d\x42\xab\x1c\xa7\x15\x2a\x2e\x02\ +\x08\x45\x06\x04\x4c\xf5\x21\xf6\xab\x80\x10\x57\x02\xb0\xf9\xbc\ +\xa4\x9f\xac\x9e\x81\x32\x78\x30\xbc\xd3\x6a\x28\x35\xa0\x45\x76\ +\xdd\x0a\x3b\x31\x6a\x1b\x99\xf1\x50\xb1\xf2\x17\x91\x63\x99\x50\ +\xc0\x1b\x88\x62\x6d\x19\x71\xac\xd9\x7c\x19\xe1\xe5\xfc\xce\x83\ +\x5a\x06\x22\x5d\x75\x71\xf4\x43\xb0\x2f\xc6\x15\x35\x80\xf1\xd7\ +\x89\xdd\x04\x5a\x7e\x29\x19\x2d\xb0\x4c\x88\x65\xa2\x88\xf6\xe0\ +\xb7\x1d\x49\x82\x1a\x20\x29\x69\xe2\x96\x55\x98\xb8\xdf\x58\xb6\ +\x8d\x22\x71\x1c\xd4\x02\xec\x20\xac\xbc\x91\x99\xf8\x54\x25\x46\ +\x45\x71\xce\xf4\x11\xb0\xc3\xd4\x72\x4d\xd8\x1a\x00\x62\xc4\x88\ +\xeb\x3c\x10\xb0\x79\x6b\x45\x06\x9c\x60\xeb\x43\xd1\xdb\x29\x21\ +\xd2\xcc\x18\x82\x22\x2b\x7f\x13\x7b\x57\x44\xc5\x28\x54\x18\x98\ +\x80\x9c\x5b\x19\x84\x2e\xd6\x80\x09\x9b\x82\x19\x96\x09\x35\x4d\ +\xc4\xe8\x2a\x56\x7a\x87\x0f\x6b\x8a\xed\x03\x89\x40\xea\xb1\x33\ +\xc8\x4a\x1b\x19\x02\xaa\xa6\x01\x43\x6d\xe5\x33\xb0\x32\x08\x82\ +\xed\x09\x6a\xc2\x2e\x9d\x37\x0a\x9a\xb0\x23\x85\x14\x00\x11\x63\ +\x43\x45\x7a\x40\xe8\xf7\x6d\xea\xd5\xc0\xba\xaa\x52\x19\x81\x86\ +\xc2\xb1\x23\x17\x60\xf6\xe2\xc9\x21\x0a\xe5\x5a\x02\xb0\xb4\x21\ +\x3a\x9c\x81\xc5\x20\x74\x15\x61\x0b\x50\x8a\x39\x98\xf8\x70\xa0\ +\x45\x07\xa1\xe4\xb3\x92\xc7\x8d\xcc\x3b\xdb\xbd\x9f\xfd\xd3\x0c\ +\x6f\x25\xa7\xe8\x75\x32\x54\x2b\x9c\x68\xf5\x68\x4b\x8b\xf7\x8e\ +\xcd\x72\xf8\xb9\x57\x20\x6f\x1d\xc0\x28\x64\xd1\x22\x8a\x68\x25\ +\x0a\xc1\x62\x2d\x2c\xd7\x84\x62\xd1\x46\x6d\xed\xe2\x52\xeb\x2c\ +\x23\xb1\x44\x86\x72\x1f\x30\x90\x22\x1c\x3c\xf0\xc6\xf9\x83\x07\ +\x8e\x34\x58\xc0\xa4\x80\x7a\xb4\xf7\x1e\x64\x3f\x81\xe4\x05\x2c\ +\x03\x42\xae\xca\xfb\x53\x27\x98\x6b\x34\xd8\xb7\x73\x37\x20\xe5\ +\x3e\x60\x14\x92\xe8\x98\x46\xd1\xea\xca\x9a\xf0\x80\x9a\x26\x50\ +\x93\x04\xaa\x20\xc5\xfd\xa6\x01\xb5\x0c\xb0\x50\x61\x3a\x8f\x03\ +\xcf\x01\x75\x30\x51\x83\x74\xc0\x67\x30\x5c\x85\x24\x04\xe8\x4c\ +\xbf\x4d\x6b\xe6\x2c\xf9\xd6\xed\x28\x0e\x19\x3a\xfa\x46\x87\x17\ +\x8f\x31\x70\x5c\x42\x13\x16\x71\x0c\x8d\xd8\xfd\x01\x25\x37\xed\ +\x40\x3c\xef\x83\xeb\xc4\x99\x06\xab\xb4\x84\xc8\x21\x15\xf8\xd4\ +\x9d\x5f\x20\x64\x39\x89\x3a\xf2\x3c\x47\x5c\xac\x4a\x56\x9f\x11\ +\xb5\x7d\x01\x35\xea\x40\x14\xac\x62\x6b\x25\xf6\x98\xb0\x8b\xdf\ +\x96\x11\x82\x12\x72\x8d\xef\xb2\x7d\x68\x2d\xcd\x00\x64\xdd\xa3\ +\x1f\xbe\x7b\xf6\xba\x7c\xdf\x1e\xd6\xe1\x09\xad\x9c\x5a\x1a\xa8\ +\x4a\x17\x2f\x19\xce\xe5\x84\xc8\x03\x2d\xab\x94\x13\x94\x62\x8c\ +\x9a\x73\xaa\x71\xde\x36\x2e\x3b\x76\x0f\x7e\x47\x93\xc2\xba\x69\ +\x4e\x25\x55\xaa\x15\x48\xab\x70\xf2\x78\x60\xee\xe4\xd9\x1c\xdc\ +\xf4\xda\x01\x10\x9e\xfa\xe0\xd7\x7f\xfc\xfc\xab\x49\x2a\xd7\x7e\ +\xf2\x3a\x5c\x1e\x68\x9e\xdd\xc9\xc1\x13\x6d\x90\x93\x58\x93\x28\ +\x36\xc1\xbe\xae\x5c\xbc\x24\x46\x37\x71\x71\x2c\xf1\x52\x79\x5d\ +\x6c\xce\x95\xeb\x6b\xfc\xab\x51\xe5\x22\x4a\x73\xae\xcd\x1b\xbf\ +\x78\x8d\xec\xe4\xfb\x2f\x43\xfa\xfa\x15\x00\xf0\x2f\x85\x8b\xb3\ +\x0f\x4d\xfd\xfc\x85\x6f\x4f\xd5\xc7\x77\x23\xe8\xeb\x9a\x98\x6a\ +\x57\x6d\x0a\x5c\xcd\x12\xc5\x82\xa2\xe0\xd4\xd1\xe9\x34\xe8\x7e\ +\xfc\x07\x48\x9e\x04\x74\xcd\x00\x54\x9f\x00\xf8\xcd\xbc\xfd\xff\ +\xbf\x55\xfe\xcb\xed\xdf\x99\xd5\xe1\x33\x6b\x2f\x52\xdc\x00\x00\ +\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\x73\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -83,265 +440,863 @@ qt_resource_data = b"\ \x01\x9d\x80\x23\xf6\xf8\x2f\x65\xfb\x8e\x7f\x07\xf8\x13\x7f\x10\ \x23\x23\x63\x99\xf1\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ -\x00\x00\x08\x58\ +\x00\x00\x07\x7b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ +\x67\x9b\xee\x3c\x1a\x00\x00\x07\x0d\x49\x44\x41\x54\x58\x85\xc5\ +\x97\x49\x6c\x1c\x65\x16\xc7\x7f\xef\xab\xea\xcd\x6e\xdb\xe9\xb6\ +\xe3\x71\x1c\xdb\x31\x31\x6d\x07\x05\xc5\x09\x4b\x34\xc9\x44\x80\ +\x66\xc4\xa2\x44\x42\x39\x70\xe4\x80\x10\x20\x84\x10\x52\x0e\x13\ +\x0e\x20\x61\x09\x44\x16\x89\x1c\xb8\xc0\x81\x2b\x42\x82\x03\x17\ +\x92\x81\x64\x32\x08\x65\x63\x11\x0e\x26\x13\x5b\x4a\x3c\xce\x82\ +\xdb\x59\xec\x76\xa7\xbb\xdd\x5d\xd5\xdd\xb5\xcc\xa1\xaa\xab\x17\ +\x5b\x73\x8b\xe6\x93\x4a\x5f\x2d\xaf\xde\xff\x5f\xff\xf7\xbe\xf7\ +\xbd\x12\xd7\x75\x39\x28\xb2\x17\x98\x00\xc6\x81\x30\xf7\x77\x54\ +\x80\x29\x60\xe2\xa8\xeb\x9e\x90\xbf\xc3\xde\xae\x58\xec\xf8\xdf\ +\x1e\x7a\x88\x1d\x43\x43\x44\x74\xfd\xbe\xa2\x97\x2d\x8b\x8b\x37\ +\x6f\x72\x7a\x66\x86\x9c\x61\xec\xd3\x81\x89\xbf\x6e\xd9\xc2\xf8\ +\xc6\x8d\x5c\x99\x9f\x67\x3e\x93\xa1\x6a\x59\x6b\xbe\x2c\x22\x68\ +\x22\x28\xa5\xd0\xfc\x43\x29\x85\x26\x12\x9c\x2b\xa5\x50\xbe\x4d\ +\xeb\xac\x2b\x45\x22\x1e\xe7\xd1\xa1\x21\x5c\xd7\xe5\xeb\x8b\x17\ +\x27\x74\x60\x7c\x7c\x70\x90\xab\xe9\x34\xf9\xe1\x61\x52\xaf\xbe\ +\x8a\x16\x89\xac\x85\x8e\x00\x4a\x04\x44\x50\xfe\x3d\x25\x82\xf8\ +\xcf\xa4\xe5\x9c\xc6\xfb\x00\xd5\x2a\xa5\x33\x67\xc8\xcd\xce\x32\ +\x3e\x38\xc8\xd7\x17\x2f\x8e\xeb\x40\x38\xac\x69\xa4\x33\x19\x52\ +\xaf\xbd\x86\x1e\x8f\xaf\xc6\x6e\x70\x12\xea\xea\x22\xdc\xdd\x4d\ +\x28\x91\x40\xeb\xea\xc2\xb2\x6d\xcc\x4c\x06\x29\x14\xd0\x56\x56\ +\x70\x56\x56\x02\xb5\xa4\x75\x0e\x85\x88\x3f\xf1\x04\xf9\xcb\x97\ +\x59\xe7\xe1\x84\x75\x00\xd7\x75\xa9\xda\x36\xae\x6d\x63\xf9\x0e\ +\x5a\xc1\xe3\x23\x23\x24\x77\xed\x42\x8f\xc5\x56\x11\xec\xec\xef\ +\xaf\xc7\xb8\x58\xe4\xc6\xe9\xd3\x24\x0b\x05\x10\x09\xd4\x0b\x66\ +\xc7\x01\x11\x5c\xd7\x05\x20\x20\x00\x60\x15\x8b\x88\xa6\x35\xc7\ +\x3c\x16\xa3\xf7\xa9\xa7\xe8\x18\x1d\x5d\x33\x2f\x5a\x47\xa4\xbd\ +\x9d\xd1\xe7\x9f\xe7\xc6\xe4\x24\x32\x39\x49\xbb\x52\x75\x70\x11\ +\xc4\x71\x50\xad\x04\x1c\xff\xc2\x2e\x16\xc1\x27\x20\x40\x7c\x78\ +\x98\xfe\xfd\xfb\x09\x35\x84\xc5\xb1\x6d\x96\xe6\xe7\xb9\x33\x37\ +\xc7\xdd\xb9\x39\xda\x22\x11\x12\x43\x43\x74\x0f\x0f\xd3\x3d\x30\ +\x80\xf2\x01\x37\x3d\xf2\x08\xc5\xcd\x9b\xb9\xf6\xd5\x57\xf4\x57\ +\x2a\x01\x01\xd7\x71\x50\x4a\x05\x98\x1e\x01\xc7\x01\xa0\x9a\xcf\ +\x23\xa1\x10\x4a\x04\x3d\x1e\x5f\x05\x7e\xed\xb7\xdf\xf8\xd7\xa7\ +\x9f\xb2\x29\x14\x62\x7d\x3c\xce\x48\x2c\x86\x52\x0a\xb9\x71\x83\ +\xdc\xf7\xdf\x73\x2b\x12\xa1\x6f\xff\x7e\x7a\xb7\x6c\x01\xa0\x7d\ +\xdd\x3a\x1e\x78\xe1\x05\xa6\x3e\xfa\x88\x2d\x89\x84\xa7\x80\xeb\ +\xa2\x44\x02\x4c\x05\x60\xfb\x17\xb7\x4e\x9e\xa4\xba\xbc\x8c\x5d\ +\x2a\xd1\xbf\x6f\x5f\x00\x5e\x35\x4d\xfe\xf1\xf1\xc7\x9c\x3b\x72\ +\x84\x3f\xb7\xb7\xf3\x40\x7b\x3b\x1d\x80\x6b\x9a\xb8\x86\x81\x6b\ +\x18\x44\x2c\x8b\x64\xa9\x84\xf5\xc5\x17\x5c\xff\xf2\x4b\xaa\xe5\ +\xb2\x47\x22\x91\x60\xfd\x73\xcf\x91\xcb\x66\xc1\x34\x11\xd3\x44\ +\x44\x02\x4c\xd5\x14\x82\x5c\x8e\xa5\x1f\x7e\xa0\x63\x64\x84\x75\ +\xdb\xb7\x07\x5f\x7e\xea\x93\x4f\xa8\x5e\xb8\xc0\x63\x3d\x3d\x84\ +\x2c\xcb\x03\x35\x4d\x22\x03\x03\x44\x06\x07\x71\x0d\xc3\x73\xee\ +\xcf\x91\xc9\x49\xf2\xdf\x7c\x13\xbc\x9f\xda\xb3\x87\x74\x77\x37\ +\xf8\x64\x95\x48\x80\x19\x28\xa0\xc0\x93\xb3\x5a\x65\xe8\xc5\x17\ +\xeb\xb2\xff\xfa\x2b\x37\x4f\x9c\x60\x24\x16\xf3\x80\x4b\x25\x1c\ +\xc3\x20\xf9\xec\xb3\xf4\xbf\xf1\x06\x7d\xaf\xbf\x4e\x61\xd7\x2e\ +\x8c\x5c\x0e\xd7\x34\xa1\x54\x02\xc3\xc0\x3a\x73\x86\xc2\xcc\x4c\ +\xe0\xe7\xd1\x97\x5f\xe6\xf2\xfc\xbc\xa7\x40\x83\xea\xaa\x96\x03\ +\xb5\x8a\xd6\x91\x4a\x11\x4e\x26\x83\x84\x3b\xfe\xc1\x07\xec\xe8\ +\xec\xf4\xd8\x97\x4a\x01\x89\xf8\xce\x9d\x81\xf3\x4d\x4f\x3e\xc9\ +\xd5\x3b\x77\xa0\x54\xf2\x48\x18\x06\x18\x06\xe5\xcf\x3f\xc7\xb5\ +\x6d\x00\x62\x5d\x5d\x64\xc3\x61\x9c\x4c\x06\x59\x95\x03\xae\x1b\ +\x94\xd3\x75\xdb\xb6\x05\x8e\xef\x5e\xb9\x42\x78\x66\x86\x68\x0b\ +\x38\xa6\x89\x34\x54\xcb\x70\x2c\x46\xae\x50\x80\x1a\xb8\x69\x82\ +\x69\xe2\xcc\xcf\x53\x4d\xa7\x03\xbb\xe8\x86\x0d\x54\xd3\x69\x94\ +\x08\x76\x63\x08\x1c\xc7\x09\x6a\x79\x57\x03\x81\xf4\xd4\x14\x5d\ +\x8e\x43\x35\x9d\xc6\x5a\x5a\xf2\xe4\xad\x81\x34\x0e\xd7\x85\x4a\ +\x05\xca\x65\xa4\x5c\x0e\x08\x88\x69\xe2\xcc\xcd\x05\x66\xbd\xa9\ +\x14\xf7\x2c\x6b\x0d\x05\x6a\x21\x50\x8a\x8e\x87\x1f\x0e\x5e\x58\ +\xf8\xfd\x77\x92\xa1\x90\xb7\xb6\x0d\x03\x7b\x79\x19\xf7\xde\x3d\ +\xdc\x62\xd1\x03\x6d\x1c\x95\x4a\xf0\xf5\x52\x2a\x41\x3e\x8f\x9b\ +\xcd\x62\x5d\xba\x14\x98\xfc\x69\xeb\x56\x32\xd5\x2a\x4a\xa9\x20\ +\x07\x74\x00\xdb\xb6\xd1\x94\x42\x6a\x55\xcb\x1f\x22\x42\x5c\xd7\ +\x83\xdd\x4c\x03\xc4\xb6\xbd\xaf\x6c\x19\x52\x2e\x23\x86\x51\xdf\ +\x90\xfc\x8d\xaa\xc5\x21\x2b\xb6\xed\x2d\x43\x3f\x37\x14\x80\xe5\ +\x87\x40\x53\x0a\x63\x7a\x3a\xb0\xdf\x38\x3e\x4e\xb1\x41\x9d\xc6\ +\xed\xb6\x75\x28\x1f\x50\x35\x80\x8b\x08\xa1\xb1\xb1\xc0\x66\xf1\ +\xf2\x65\x12\xe1\x30\x4a\x04\xab\x29\x04\xb6\x8d\xf8\xab\xa0\xd8\ +\x40\xa0\x7f\xdb\x36\x0a\xb5\xfc\x68\xd9\xdb\x57\x29\xb0\x06\xb8\ +\x12\x41\x4f\xa5\xea\x04\xa6\xa7\x59\x1f\x89\xac\x56\xc0\x76\x9c\ +\xa0\xd1\x30\x1a\xd6\xee\xfa\x54\x0a\xab\xaf\x6f\xcd\x06\xa3\x55\ +\x83\x46\xd0\xda\xa1\xf5\xf5\xa1\x86\x86\x02\x9b\xcc\xcc\x4c\x9d\ +\x40\x6b\x12\x8a\x2f\x6f\xe5\xfa\x75\x2a\xd9\xac\xf7\x50\xd3\x78\ +\xfc\xfd\xf7\x29\xf8\x3b\x58\x23\x89\x46\xa2\x77\x2e\x5d\x22\xa2\ +\x69\xcd\x21\x50\x8a\xb6\x03\x07\x82\xdd\xd5\xc8\x66\x51\xe9\x34\ +\xba\x52\xab\x0b\x91\x65\xdb\x75\xe7\x22\xa4\x8f\x1e\x0d\x9c\x0f\ +\xef\xde\x8d\xb1\x6f\x5f\xd0\xfd\xd4\xec\x4a\x9f\x7d\xc6\xad\x1f\ +\x7f\xe4\xe6\xf9\xf3\x9c\x3f\x76\x8c\x91\xb6\xb6\x26\xf0\xf0\xde\ +\xbd\xe8\xe3\xe3\x81\x9f\x73\x87\x0e\x31\x16\x8f\x7b\xca\x89\x60\ +\xf9\x21\xd0\x6b\x0a\xa8\x5a\x5f\x27\x42\xe9\xf4\x69\x16\x4f\x9d\ +\x62\xfd\xd3\x4f\x03\xb0\xfb\xed\xb7\xf9\xb7\xae\x93\x38\x79\x32\ +\x20\x61\xcf\xce\x22\xef\xbc\x43\xbe\x5a\x65\x4f\x28\x44\x5b\x34\ +\xda\x04\x1e\x79\xe5\x95\x00\x7c\xf6\xdb\x6f\x29\x9f\x3d\xcb\x58\ +\x6f\x6f\xd0\xa6\xad\x0a\x41\x6b\xa2\xe5\x8e\x1d\xc3\xcc\x64\x00\ +\x08\xc5\x62\xec\x78\xf7\x5d\xc2\x87\x0f\x53\xee\xe9\xa9\xc7\x59\ +\x29\xfa\xa2\x51\xda\x74\xdd\x6b\x5e\x36\x6c\xa0\xfd\xc3\x0f\x89\ +\xbd\xf9\x26\x2a\x1a\x05\xa0\xb4\xb8\xc8\xcf\x47\x8e\xf0\x97\x64\ +\xd2\x03\x6f\x21\xa0\xd7\x42\x10\x0d\x87\x9b\x62\xec\xe6\x72\xdc\ +\x7d\xef\x3d\x7a\x26\x26\x68\xeb\xe9\x01\xa0\x7f\xf7\x6e\x9c\x9d\ +\x3b\x29\x5e\xbb\x46\xe5\xca\x15\xe4\xea\x55\x22\x9a\x86\x36\x3a\ +\x8a\x4a\xa5\x08\x6d\xda\xd4\xd4\x51\x95\x16\x17\xf9\xe7\xc1\x83\ +\x6c\xd7\x34\xda\x43\xa1\x00\xdc\x6d\x0d\x41\x53\x0e\x34\xcc\xf6\ +\xd4\x14\x0b\x2f\xbd\x44\xe4\xad\xb7\x18\x7c\xe6\x19\x4f\x32\x5d\ +\xa7\x23\x95\x82\x86\xe5\xb5\xd6\xf8\xcf\x77\xdf\x31\x79\xf4\x28\ +\x8f\xe9\x3a\x03\x1d\x1d\xf5\xce\xd8\x6f\x4a\x56\x13\x80\xb5\x7b\ +\xf9\x95\x15\xd4\xe1\xc3\xcc\x9e\x3d\xcb\xc6\x03\x07\x88\x25\x12\ +\xff\x13\xd8\xc8\x66\x39\x77\xe8\x10\xea\xc2\x05\xf6\x26\x12\x84\ +\x35\xad\x19\xdc\xb7\x6b\x26\xe0\x38\xb8\xb0\xe6\x7a\xd7\x94\x42\ +\x44\xe8\x38\x7f\x9e\xc5\x73\xe7\xb8\xdd\xdb\x8b\x1a\x1d\x25\x36\ +\x36\x46\xf7\xd6\xad\x80\x57\xe1\x32\xd3\xd3\x54\x66\x67\x89\x2e\ +\x2c\x30\x12\x8b\x31\xd0\xdd\xdd\x14\xf3\xc6\x7f\x84\xaa\x6d\x07\ +\x95\x50\x07\x2a\xa6\x65\x85\x8b\xa6\x49\xb4\xb3\x73\x4d\xf0\x5a\ +\xd2\xb5\x29\xc5\x83\xcb\xcb\xc8\x4f\x3f\xa1\x7e\xf9\x05\xd3\x71\ +\xc8\x59\x16\x09\x4d\x63\x73\x38\xec\xad\xf1\x64\xb2\x0e\xb8\x06\ +\xb8\x88\x90\x5e\x5a\xc2\xf4\xfe\xbe\x2a\x3a\x30\x75\xbb\x50\x78\ +\x5c\xc3\xeb\x84\x93\x9d\x9d\x28\xd7\x45\xfc\xd6\xb9\x26\x59\x6d\ +\xef\x73\xfc\xbf\x22\xc7\x75\x89\x2a\x45\x9b\x5f\xd9\xc4\xbf\x27\ +\xae\x5b\x07\xac\x9d\xfb\xfe\x6c\xdb\x66\x7e\x71\x91\xab\x0b\x0b\ +\xdc\x2e\x14\x00\xa6\x74\x60\xe2\x66\x3e\x7f\xdc\x05\xca\xb6\xcd\ +\x82\x5f\x05\xef\xd7\xb0\x5d\x97\xc5\x52\x89\x3f\xf2\x79\x80\x09\ +\xf9\x7f\xff\x9e\xff\x17\xc5\xd6\x3d\x9a\xb0\xf3\x6b\xe8\x00\x00\ +\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\xd7\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x01\ +\x91\x49\x44\x41\x54\x58\x09\xed\x57\xdd\x6d\x84\x30\x0c\x3e\xa0\ +\x0b\x54\x55\x75\xdd\x06\xba\x40\x17\xe8\x3b\x62\x0c\x6e\x0a\x7e\ +\x76\xa9\x7a\xbc\x76\x92\x4a\x9d\x01\x38\x3b\xcd\x87\x4c\x5a\xd3\ +\x43\x84\xe3\xa1\x44\xba\x8b\x63\x27\xb6\xbf\x2f\x36\x52\x0e\x87\ +\xff\x3e\x02\x10\x90\xa6\x69\x0f\xf9\x16\x73\x5d\xd7\x26\xf6\x9d\ +\x0c\x16\x04\x41\xd7\xf7\xfd\x97\xd4\xf9\x96\x29\xc6\x23\xc5\x08\ +\xe1\x77\x94\x00\x07\xa7\xcc\x9e\x60\x5c\x63\x26\xa6\x3f\xc9\xef\ +\x11\xbe\x87\x4c\xa0\xb8\xf5\xbc\x27\x30\xaa\x01\x49\xbf\xef\xae\ +\x40\xd5\xcb\x18\x2c\x6f\x7e\x05\x2a\x03\x5a\xc6\x2e\x82\xa5\xeb\ +\xcd\x19\xd8\x13\x50\x6b\x60\x69\x17\x5c\x5b\x43\x9b\x5f\x81\xca\ +\xc0\xb5\x08\xf6\x2e\x58\xca\x80\x7a\x05\x4b\x1d\x4f\x9c\x7f\x23\ +\xdb\x3d\xec\xab\x26\x90\x65\x59\xd2\x75\xdd\x3b\x07\x0b\xc3\xf0\ +\xb9\x2c\xcb\x33\xd5\xd6\x2b\x82\x1b\xbd\x5c\xf8\x96\x29\x78\x0e\ +\x9f\x52\x86\x8e\x67\x95\x81\xb9\xdf\x01\xb7\x6b\x2c\xfa\x98\x62\ +\x34\x36\x60\xcc\x3a\x66\xc1\xae\xcd\xb4\xda\x77\x00\x88\x89\xfa\ +\x9c\x7f\x1c\x0d\x3a\x13\xd9\xfe\xa9\x0c\xb8\x88\xe4\xa1\xbf\x64\ +\x89\x1e\x88\x89\x51\x66\xe2\x07\x0b\xab\x30\x00\xa4\x40\xce\x09\ +\x43\x86\x0d\x20\xbc\x27\xc0\xe8\xc9\xb9\xb9\x7b\xa0\xe7\x60\x56\ +\x1e\x58\x60\x1d\x0f\xf5\x0a\xbe\xcd\xf3\xff\x05\xc2\x58\x2b\x64\ +\xbb\x27\x61\xef\xe6\x75\xc2\x02\x6f\x9e\xf3\x30\xa1\xbd\x1f\x55\ +\x55\xbd\xf0\x59\x0c\x7b\xf7\xa6\xef\xa1\xd3\xe6\x28\x8a\x92\xa2\ +\x28\x9a\x11\x03\xf6\xc5\x32\x3c\x1a\xb4\xc3\xac\xa7\xbd\x0f\xae\ +\x1d\xe8\xe9\xbe\xcd\x47\xc7\xb5\xf3\x1a\x49\xb6\x6d\x7b\xa2\x65\ +\x32\x30\xf0\xdb\xe6\x39\x3a\x38\xa6\x33\x0d\x75\x50\x32\x75\x96\ +\xd8\x3e\x93\x3d\xe6\x44\xbd\x15\xa1\x40\x9f\x93\xf3\xc9\x21\x3b\ +\xe2\x02\x11\x97\xac\xfa\x31\x31\x38\xd5\x00\x00\x00\x00\x49\x45\ +\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x05\x55\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ +\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd3\x01\x09\x0a\x09\x03\x5d\x4a\xcd\x3e\x00\x00\x04\xd2\x49\x44\ +\x41\x54\x78\xda\xbd\x94\x6f\x48\x95\x57\x1c\xc7\x3f\xcf\xf3\xdc\ +\xeb\x9d\xde\xeb\xbc\x7a\xef\x75\xa0\xd9\x35\xbd\xb0\x69\xea\xa2\ +\x49\x84\x5b\x28\x1a\x43\x73\x68\x21\xad\x26\xfd\x31\x26\x24\x1b\ +\xad\x16\xc4\x10\xc6\x20\x88\xb9\x37\x0e\xdf\xd5\x5e\x8c\xc5\x20\ +\x46\x6b\x25\x73\xf6\x42\x25\xb6\x4c\x2c\xff\x34\x72\x7a\x85\xea\ +\x8a\x9a\x7f\xe1\xfa\x87\xf2\xa6\xf7\xde\xe7\x79\xce\xb3\x17\x99\ +\x69\xf3\x4a\xbd\xd9\x0f\x0e\xe7\x70\x7e\xf0\xfb\x9c\xef\x39\xbf\ +\xf3\x95\x88\x10\x25\x25\x25\x65\x7e\xbf\x7f\x7f\x28\x14\xca\xd3\ +\x34\x6d\xb3\xae\xeb\x00\x8f\x80\xce\xb8\xb8\xb8\x2b\x3d\x3d\x3d\ +\x4d\xbc\x42\x48\x2f\x6f\x1c\x3e\x7c\x78\x7b\x5f\x5f\xdf\xf7\xb2\ +\x2c\xe7\x17\x15\x15\x91\x93\x93\x83\xc3\xe1\x40\x08\x81\xdf\xef\ +\xa7\xbb\xbb\x9b\x96\x96\x16\x34\x4d\xbb\x99\x9c\x9c\x7c\xba\xab\ +\xab\xeb\xef\x57\x06\x14\x14\x14\x94\x4d\x4d\x4d\x5d\xcd\xcb\xcb\ +\x33\x55\x54\x54\x90\x98\x98\x88\xd9\x6c\x46\x92\x24\x84\x10\xa8\ +\xaa\x4a\x30\x18\x64\x72\x72\x92\x4b\x97\x2e\x71\xfb\xf6\x6d\xcd\ +\x6e\xb7\x57\x0c\x0d\x0d\x45\x54\xa3\x3c\x5f\x94\x97\x97\x6f\x7f\ +\xf8\xf0\x61\xdb\xbe\x7d\xfb\x4c\x47\x8f\x1e\xc5\xe9\x74\x12\x1b\ +\x1b\x4b\x42\x42\x02\x4e\xa7\x13\x97\xcb\x85\xc3\xe1\xc0\x66\xb3\ +\x61\xb3\xd9\xc8\xce\xce\x66\x69\x69\x49\xbe\x77\xef\xde\xfe\x4d\ +\x9b\x36\x5d\x9f\x9b\x9b\x9b\xda\x10\x10\x0e\x87\x7f\xc9\xcb\xcb\ +\x4b\xab\xae\xae\xc6\x66\xb3\x61\xb7\xdb\x71\xb9\x5c\xd8\x6c\x36\ +\x2c\x16\x0b\x8a\xa2\xa0\x28\x0a\x16\x8b\x85\xd8\xd8\x58\xac\x56\ +\x2b\xe9\xe9\xe9\x3c\x78\xf0\x40\xf6\xf9\x7c\xef\x84\x42\xa1\x8b\ +\xeb\x01\x64\x80\x6d\xdb\xb6\x95\x09\x21\xf2\x8f\x1c\x39\x42\x4c\ +\x4c\x0c\x76\xbb\x1d\xa7\xd3\x49\x54\x54\x14\x8a\xa2\x20\xcb\x32\ +\xb2\x2c\xaf\x40\x64\x59\xc6\x6a\xb5\x92\x96\x96\x46\x4d\x4d\x0d\ +\x86\x61\xe4\x27\x24\x24\x94\x45\x54\x60\x18\xc6\xd7\x85\x85\x85\ +\x39\x19\x19\x19\x68\x9a\x86\x10\x82\xc7\x8f\x1f\xa3\x28\x0a\x31\ +\x31\x31\x48\xd2\x8b\xa7\x32\x0c\x03\x00\x21\x04\xba\xae\xe3\x70\ +\x38\x18\x1b\x1b\xc3\xeb\xf5\xea\x9a\xa6\x35\xae\xa7\xa0\x22\x1c\ +\x0e\x1f\x2a\x2d\x2d\xc5\xe3\xf1\x90\x9d\x9d\x4d\x7a\x7a\x3a\x6d\ +\xdd\xf7\x39\x74\xa6\x81\x89\x89\x89\x95\xa2\x86\x61\xb0\xf7\xb3\ +\x73\xfc\x78\xa5\xf5\x45\x97\x48\x12\xbb\x77\xef\x46\xd7\xf5\xbc\ +\x48\x57\xf4\x9b\xa2\x28\xa4\xa4\xa4\x60\xb1\x58\xb8\x3f\x3c\xc1\ +\x07\x9f\x7c\xc5\xc5\x6b\x37\x78\x3b\x2d\x19\xa7\xd3\x89\xcf\xe7\ +\x43\x08\x81\x61\x18\xec\xc9\xcf\xe5\xa7\x6b\x37\x28\xaa\xfa\x86\ +\xfb\xc3\xcf\xe0\x1e\x8f\x07\x60\x73\xa4\x36\x35\xe2\xe3\xe3\x69\ +\x6e\x6e\xe6\xfc\xd5\x0e\xbc\xbe\x31\x5e\x27\x72\x33\xb7\xb0\xbf\ +\x30\x9b\xd2\xd2\x52\x4d\x55\x55\xf3\xcb\x79\x13\x40\x52\x52\x12\ +\xc3\xc3\xc3\x9c\xfb\xe2\x00\x23\x93\x33\x7c\xf9\xdd\xb3\x86\xf8\ +\xa8\x20\x97\xda\x9a\x8f\x51\x55\x95\x40\x20\x80\xdf\xef\xe7\xcf\ +\xbb\x3e\x7e\xfe\xfd\x2f\x00\xbe\x3d\x79\x80\x24\xe7\x9b\xb4\xb7\ +\xb7\xa3\xeb\xfa\xa3\x88\x5d\xb4\x63\xc7\x0e\x5a\x5b\x5b\x09\x06\ +\x83\xa4\x26\x39\x69\x3e\x5f\xcb\x89\xca\x62\x7a\xfa\x7d\x84\x42\ +\x21\x34\x4d\x43\x96\x65\xec\x76\x3b\xbf\xdf\xe8\xe6\xc3\xf7\xdf\ +\xe5\xd7\xfa\x93\xa4\xbc\x15\x4f\x28\x14\xa2\xa5\xa5\x05\x21\x44\ +\x67\xc4\x2b\x6a\x6a\x6a\xe2\xe0\xc1\x83\x5c\xbe\x7c\x19\x8f\xc7\ +\x83\xc9\xa4\x10\x0e\xab\xcc\xcf\xcf\xaf\x74\x90\x24\x49\x68\x9a\ +\x86\xae\xeb\x58\xad\x56\xa2\xa3\xa3\x09\x06\x83\x0c\x0e\x0e\x72\ +\xec\xd8\x31\x84\x10\xe5\x40\xd3\xba\x0a\xb2\xb2\xb6\x92\x9b\x9b\ +\x4b\x5d\x5d\x1d\x81\xc0\x02\x8b\x8b\x8b\xe8\xba\x4e\x42\x7c\x3c\ +\x76\xbb\x1d\x9b\xcd\x46\x74\x74\x34\x26\x93\x09\x45\x91\x99\x9e\ +\x9e\x66\x61\x61\x81\x27\x4f\x9e\x50\x5f\x5f\x8f\x10\xe2\xe6\x7a\ +\xc5\x57\x14\xa8\xaa\xca\xad\x5b\xb7\xd8\xb3\x67\x0f\xc5\xc5\xc5\ +\x9c\x3a\x75\x0a\xb3\xd9\x8c\xa2\xc8\x18\xc6\xb3\xd3\xeb\xba\x8e\ +\xa6\x69\x84\x42\x41\x66\x66\x66\x89\x8b\x8b\xa3\xa1\xa1\x81\xb6\ +\xb6\x36\x0d\xd8\x0b\x5c\xdf\x10\xd0\xdf\xdf\x8f\x77\x60\x80\x4f\ +\xab\xab\xc9\xcc\xcc\xe4\xf8\xf1\xe3\xa4\xa5\x6d\x41\x96\x65\x84\ +\x30\x10\x42\x20\x84\xe0\xe9\xd3\x00\x7d\x7d\xff\xd0\xd8\xd8\xc8\ +\xe0\xe0\xa0\x06\x2c\x2e\xd7\x39\x03\xfc\x10\x01\x10\x66\x6e\x6e\ +\x8e\x91\x91\x51\xe6\xe7\xe7\x39\x7b\xf6\x2c\xdd\xdd\xdd\xec\xda\ +\xb5\x8b\x9d\x3b\x77\xe2\x76\xbb\x01\x18\x1a\xf2\xd1\xd1\xd1\xc1\ +\x9d\x3b\x5d\x00\x37\x81\xd3\xc0\x55\x20\x7e\xd9\x15\x66\x80\x13\ +\x40\xf3\x5a\x40\x38\xcc\xec\xec\x2c\x48\x60\x08\x83\xb1\xf1\x31\ +\xbc\xde\x41\xfe\x68\x6a\xa2\xa7\xb7\x97\xc9\xc9\x49\x00\x5c\x2e\ +\x17\xd3\xd3\xd3\x00\xe5\xcb\xc5\x26\x00\x52\x53\x53\x07\x00\x69\ +\x64\x64\x44\x06\x54\xa0\x04\xe8\x5c\x01\xe8\xba\x8e\xdf\xef\x47\ +\x08\xb1\x46\xde\xf8\xf8\xf8\x1a\x0f\x1a\x1a\x1a\xa2\xb2\xb2\x12\ +\x20\x15\x18\x5d\x4e\xb9\x81\xbb\x35\x35\x35\x71\xbd\xbd\xbd\x5a\ +\x6f\x6f\xaf\xba\xfc\xbf\x32\x80\x51\xd3\xea\x02\x92\x24\xad\xf8\ +\x0e\x40\x72\x72\xf2\x1a\x83\x0b\x04\x02\xcf\x53\xa3\xab\xce\x31\ +\x0a\xbc\x77\xe1\xc2\x85\x81\xda\xda\xda\x98\xa8\xa8\x28\x73\x67\ +\x67\xe7\x12\xe0\x05\xb6\xca\xab\x01\xcf\xfd\x66\xf5\xfa\xe5\xbd\ +\x0d\x22\xab\xae\xae\x4e\xcd\xc9\xc9\x31\xdc\x6e\xf7\x1b\x6b\xde\ +\xa0\xbd\xbd\x1d\x55\x55\xff\x63\xc9\xab\xd5\x00\x4c\x4c\x4c\x50\ +\x55\x55\xe5\x05\xb2\xd6\x01\xb8\x97\xe7\x3b\x40\x22\x50\x08\x8c\ +\x00\x7c\x0e\x18\xaf\x31\xaa\x37\x50\xe1\x5e\x35\xfe\x9f\xf8\x17\ +\xc1\x08\x40\x3b\x9d\x7d\xa8\x8b\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x10\x75\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\xc8\x00\x00\x00\xc8\x08\x06\x00\x00\x00\xad\x58\xae\x9e\ +\x00\x00\x10\x3c\x49\x44\x41\x54\x78\x5e\xed\x9d\x0d\x8c\x5d\xc7\ +\x55\xc7\xcf\x79\xbb\x71\xb6\x1f\xa9\x48\x3f\x68\xd5\x40\xa3\xa8\ +\x2a\x55\x23\x02\x52\x12\x9a\x8a\x46\xa4\x34\x22\x25\x08\x90\xa8\ +\x70\xbf\x28\x42\xaa\x43\xd2\xd8\xde\xbd\x73\x77\x6d\x43\x45\x51\ +\x1e\x1f\xa9\x2d\xb0\xdf\x3b\xf7\xad\x53\x57\xdb\xd2\x46\x0d\xa5\ +\x9f\xa9\x28\x6d\x93\x0a\x68\x9b\xb4\x49\x0b\xa4\x69\x2a\x41\xd2\ +\x52\x48\x30\x4a\x29\x48\x90\x78\x0d\xc4\x89\xb3\xfb\xde\x41\x13\ +\xad\xc1\x09\xb6\x77\xee\xdc\x99\xfb\xe6\xbd\xf9\x5f\x69\x65\xcb\ +\x9e\x73\xe6\x9c\xff\xff\xfe\x34\xf7\xed\xbb\x77\x2e\x13\x0e\x28\ +\x00\x05\x4e\xab\x00\x43\x1b\x28\x00\x05\x4e\xaf\x00\x00\xc1\xd9\ +\x01\x05\xce\xa0\x00\x00\xc1\xe9\x01\x05\x00\x08\xce\x01\x28\xe0\ +\xa7\x00\x56\x10\x3f\xdd\x10\x95\x89\x02\x00\x24\x13\xa3\xd1\xa6\ +\x9f\x02\x00\xc4\x4f\x37\x44\x65\xa2\x00\x00\xc9\xc4\x68\xb4\xe9\ +\xa7\x00\x00\xf1\xd3\x0d\x51\x99\x28\x00\x40\x32\x31\x1a\x6d\xfa\ +\x29\x00\x40\xfc\x74\x43\x54\x26\x0a\x00\x90\x4c\x8c\x46\x9b\x7e\ +\x0a\x00\x10\x3f\xdd\x10\x95\x89\x02\x00\x24\x13\xa3\xd1\xa6\x9f\ +\x02\x00\xc4\x4f\x37\x44\x65\xa2\x00\x00\xc9\xc4\x68\xb4\xe9\xa7\ +\x00\x00\xf1\xd3\x0d\x51\x99\x28\x00\x40\x32\x31\x1a\x6d\xfa\x29\ +\x00\x40\xfc\x74\x43\x54\x26\x0a\x00\x90\x04\x8d\x5e\x5a\x5a\xba\ +\x70\x38\x1c\x7e\x98\x88\xe6\x54\xb5\xaa\xaa\xea\xfd\x09\x96\x99\ +\x45\x49\x00\x24\x41\x9b\x8d\x31\x5d\x22\xba\xe1\x44\x69\xaa\x7a\ +\xa0\xaa\xaa\x5d\x09\x96\x3a\xf5\x25\x01\x90\x04\x2d\x7e\x26\x20\ +\xb6\x44\x66\xfe\xdc\xfa\xfa\xba\x59\x5e\x5e\x7e\x30\xc1\x92\xa7\ +\xb6\x24\x00\x92\xa0\xb5\xa7\x02\x64\xa3\xcc\x7f\x20\xa2\x42\x44\ +\x6e\x4f\xb0\xec\xa9\x2c\x09\x80\x24\x68\xeb\x19\x00\x39\x51\x6d\ +\x29\x22\x92\x60\xe9\x53\x57\x12\x00\x49\xd0\x52\x07\x40\x48\x55\ +\xdf\x27\x22\xdb\x99\x59\x13\x6c\x61\x6a\x4a\x02\x20\x09\x5a\xe9\ +\x02\x88\x2d\x5b\x55\xbf\x3c\x3b\x3b\xbb\xf3\xc0\x81\x03\x0f\x24\ +\xd8\xc6\x54\x94\x04\x40\x12\xb4\xd1\x15\x90\x0d\x48\xbe\x3f\x33\ +\x33\xb3\xd0\xeb\xf5\x6e\x4d\xb0\x95\x89\x2f\x09\x80\x24\x68\x61\ +\x1d\x40\x4e\x2a\xff\xdd\x22\x72\x63\x82\xed\x4c\x74\x49\x00\x24\ +\x41\xfb\x3c\x01\xb1\x9d\xdc\xc2\xcc\xd7\xf5\xfb\xfd\xc7\x13\x6c\ +\x6b\x22\x4b\x02\x20\x09\xda\xd6\x00\x10\xdb\xcd\xdf\x10\xd1\xf5\ +\x22\xf2\xcd\x04\x5b\x9b\xb8\x92\x00\x48\x82\x96\x35\x04\xc4\x76\ +\x74\x94\x88\x76\x88\xc8\x47\x12\x6c\x6f\xa2\x4a\x02\x20\x09\xda\ +\x15\x00\x90\x13\x5d\xdd\x28\x22\xef\x4e\xb0\xc5\x89\x29\x09\x80\ +\x24\x68\x55\x40\x40\x6c\x77\x9f\x9e\x9b\x9b\xbb\x66\xdf\xbe\x7d\ +\x47\x12\x6c\x35\xf9\x92\x00\x48\x4b\x16\xed\xd9\xb3\xe7\xa5\xc7\ +\x8f\x1f\xbf\x88\x99\xed\xcf\x0f\xaa\xea\xf3\x98\xf9\x1c\x22\x7a\ +\x9e\xfd\xbb\xfd\x73\xe3\xe7\xa9\x7f\x23\xa2\xb3\x03\x96\x76\x7f\ +\xa7\xd3\xb9\xb6\xd7\xeb\x7d\x2d\x60\xce\x2c\x52\x01\x90\xc0\x36\ +\xef\xda\xb5\xeb\x39\xa3\xd1\xe8\xa2\xe1\x70\xf8\x14\x0c\x44\x74\ +\xe2\xe7\x05\x81\xa7\xaa\x9b\x6e\x9d\x99\xdf\xd9\xef\xf7\xff\xa8\ +\x6e\x60\xce\xe3\x01\x48\x00\xf7\x8b\xa2\xb8\x8c\x99\xaf\x26\xa2\ +\x9f\x25\xa2\xcb\x02\xa4\x8c\x96\x82\x99\x0f\xf4\xfb\x7d\xdc\x3a\ +\xef\xa8\x30\x00\x71\x14\xea\xe4\x61\x65\x59\x3e\x5f\x55\xaf\x56\ +\xd5\x2b\x99\xf9\x4a\x22\x7a\x99\x47\x9a\xb1\x85\x30\xf3\x6d\xaa\ +\x7a\x8d\x88\xfc\xeb\xd8\x8a\x98\x90\x89\x01\x88\xa3\x51\x4b\x4b\ +\x4b\x2f\x1c\x8d\x46\x6f\x52\x55\xbb\x4a\x58\x28\x9e\xed\x18\x9a\ +\xe4\x30\x66\xfe\xa7\x0d\x48\xbe\x94\x64\x81\x89\x14\x05\x40\x36\ +\x31\xa2\x28\x8a\xcb\x99\xf9\x4d\x44\x64\x7f\x5e\x9c\x88\x6f\x21\ +\xcb\xd8\x29\x22\x37\x85\x4c\x38\x4d\xb9\x00\xc8\x29\xdc\xdc\xb3\ +\x67\xcf\x39\x6b\x6b\x6b\x76\xb5\xb0\x50\x5c\x35\x4d\x86\x9f\xa6\ +\x97\x9f\x16\x91\x3b\x32\xe8\xb3\x76\x8b\x00\xe4\x24\xc9\x8c\x31\ +\x17\x13\xd1\x5b\x37\x56\x8b\x89\xfa\x5c\x51\xdb\xf9\x93\x02\x98\ +\x79\x47\xbf\xdf\x7f\x6f\x93\x1c\xd3\x1a\x0b\x40\xec\x3d\x19\x3b\ +\x76\x9c\xbf\x65\xcb\x96\x79\x55\x5d\x20\xa2\xb3\xa6\xd5\xec\x53\ +\xf5\xa5\xaa\xf7\x8d\x46\xa3\x37\x2c\x2f\x2f\xff\x7b\x4e\x7d\xbb\ +\xf6\x9a\x35\x20\xf6\x3b\x8b\xf5\xf5\xf5\x05\x0b\x06\x33\xbf\xc4\ +\x55\xb4\x69\x19\xa7\xaa\x7f\x72\xee\xb9\xe7\x6e\xeb\x76\xbb\x4f\ +\x4c\x4b\x4f\xa1\xfb\xc8\x16\x10\x63\xcc\xb5\x44\x34\x4f\x44\x3f\ +\x1a\x5a\xd4\x49\xc8\xa7\xaa\xbf\x5d\x55\xd5\xef\x4f\x42\xad\xe3\ +\xac\x31\x3b\x40\x8c\x31\x6f\x24\x22\x7b\x29\x75\xc5\x38\x85\x1f\ +\xe3\xdc\x8f\xaa\xea\xb5\x55\x55\xe1\x09\x44\x07\x13\xb2\x01\x64\ +\xe3\xcb\xbd\xbd\x44\x64\x57\x8e\x5c\x8f\xaf\x13\xd1\x36\x11\xf9\ +\x76\xae\x02\xd4\xed\x3b\x0b\x40\x8a\xa2\xf8\x19\x66\xde\x47\x44\ +\xf6\xb7\x54\xb9\x1e\x1f\x14\x91\x6d\xb9\x36\xef\xdb\xf7\xd4\x03\ +\x62\x8c\x79\x17\x11\xbd\xc7\x57\xa0\x88\x71\xff\xbd\xf1\x60\xd3\ +\x2a\x33\x1f\x55\xd5\xa3\xcc\x7c\x44\x55\x1f\x21\xa2\x47\x4f\xde\ +\x7a\x34\x40\x0d\xbb\x45\x64\x7f\x80\x3c\xd9\xa5\x98\x5a\x40\x16\ +\x16\x16\x5e\xd1\xe9\x74\xec\xaa\x61\x3f\x73\x8c\xf3\x38\xac\xaa\ +\x0f\x74\x3a\x9d\xfb\xed\x9f\xaa\x7a\xff\x59\x67\x9d\xf5\xc0\xfe\ +\xfd\xfb\x1f\x3b\x5d\x51\x01\x9f\x07\x79\x78\xe3\xf1\xdb\xcf\x8f\ +\x53\x80\x49\x9e\x7b\x2a\x01\x31\xc6\xd8\x2f\xfb\xec\xe7\x8d\xf3\ +\xc7\x60\xce\x7f\x30\xf3\x9d\x44\xf4\xf9\xb9\xb9\xb9\x3f\xdb\xbb\ +\x77\xaf\x5d\x11\x6a\x1d\x81\x00\xf9\xcb\x8d\x0d\x1c\x1e\xaa\x35\ +\x39\x06\x3f\x4d\x81\xa9\x03\xa4\x28\x8a\xdf\x63\xe6\xb6\x1f\x33\ +\xbd\x87\x99\xbf\x34\x1c\x0e\xbf\x32\x18\x0c\x6e\x6b\x7a\x8e\x05\ +\x00\xe4\x26\x11\xd9\xd9\xb4\x0e\xc4\x13\x4d\x15\x20\xc6\x18\xbb\ +\x5f\x6d\xd1\x92\xb1\xab\x44\xf4\x29\x66\xbe\xb5\xdf\xef\x7f\x21\ +\xe4\x9c\xbe\x80\xa8\xaa\xdd\x86\x74\xa1\xaa\xaa\x83\x21\xeb\xc9\ +\x39\xd7\xd4\x00\x62\x8c\xb1\x4f\xca\xbd\xa3\x05\x33\xed\xe5\x93\ +\xfd\x0e\xe1\x53\xb1\x9e\xa7\xf0\x01\x44\x55\xbf\xa3\xaa\x3b\x07\ +\x83\xc1\x17\x5b\xd0\x20\x9b\x29\x26\x1e\x90\x6e\xb7\x3b\xb7\xba\ +\xba\x6a\x5f\x07\xf0\xba\xc8\xae\x7d\xb6\xd3\xe9\xac\xf4\x7a\xbd\ +\xcf\x45\x9e\x87\x3c\x00\xf9\xcc\xfa\xfa\xfa\xf6\x83\x07\x0f\x7e\ +\x3f\x76\x6d\xb9\xe5\x9f\x68\x40\xe6\xe7\xe7\x5f\x34\x33\x33\xf3\ +\xb7\x91\x9f\xd3\x68\x0d\x8c\x13\x27\x5f\x4d\x40\xfe\x40\x44\x7e\ +\x23\xb7\x13\xb7\xad\x7e\x27\x16\x90\xc5\xc5\xc5\x1f\x19\x8d\x46\ +\x7f\x1f\x51\xa8\xd6\xc1\xa8\x03\x08\x33\xff\x97\xaa\x1a\x11\xf9\ +\x60\x44\x0d\xb2\x4f\x3d\x91\x80\x14\x45\xf1\x13\xcc\x6c\xb7\xd8\ +\x8c\x71\x1c\xb6\xbf\x22\x16\x91\x95\x18\xc9\x5d\x72\x6e\xb6\x82\ +\xa8\xea\xbd\xcc\x6c\xdf\x34\x75\xb7\x4b\x3e\x8c\xf1\x57\x60\xe2\ +\x00\xd9\xbd\x7b\xf7\x4b\xd6\xd6\xd6\x62\x6d\x36\x70\xd3\x70\x38\ +\xdc\xb7\xbc\xbc\xfc\x3d\x7f\x49\x9b\x47\x9e\x09\x10\x7b\x8b\x7a\ +\xa7\xd3\x99\xef\xf7\xfb\xf6\xdb\x76\x1c\x91\x15\x98\x38\x40\x8a\ +\xa2\xb0\x5f\xc4\x05\xdd\x63\x4a\x55\xef\x9a\x99\x99\xd9\xdb\xeb\ +\xf5\x1a\x7f\x87\x11\xc2\xaf\xd3\x01\xa2\xaa\x37\x54\x55\xf5\xbb\ +\x21\xe6\x40\x0e\x37\x05\x26\x0a\x10\x63\xcc\x3d\x44\x74\xa9\x5b\ +\x6b\xce\xa3\x96\x45\xc4\xde\xfe\x9e\xcc\xf1\x4c\x40\x98\xf9\xdf\ +\x46\xa3\x91\xa9\xaa\xea\xe3\xc9\x14\x99\x49\x21\x13\x03\x88\x31\ +\xe6\x93\x44\xf4\xcb\x81\x7d\x59\x10\x91\xe5\xc0\x39\x1b\xa7\x33\ +\xc6\xfc\x2a\x11\x7d\x78\x23\xd1\x57\x36\xde\x6c\xfb\xad\xc6\x89\ +\x91\xa0\xb6\x02\x13\x01\x88\x31\xe6\x0f\x89\x28\xe4\x6e\x80\xff\ +\x68\xbf\x71\x4e\xf9\x75\xca\x1b\xab\xc8\x83\xc7\x8e\x1d\xbb\x75\ +\x65\x65\xe5\x58\x6d\x67\x11\x10\x44\x81\xe4\x01\x29\xcb\x72\xbb\ +\xaa\x86\xdc\xb7\xe9\x76\x66\x5e\xe8\xf7\xfb\x16\x12\x1c\x50\xe0\ +\x8c\x0a\x24\x0d\x88\x31\xe6\xf5\x44\x14\xec\xd6\x09\xfb\xea\xe4\ +\xaa\xaa\xae\xc7\x39\x01\x05\x5c\x15\x48\x16\x90\x6e\xb7\xfb\xec\ +\x23\x47\x8e\x7c\x91\x99\x5f\xe3\xda\xcc\x26\xe3\xf0\x92\xcb\x40\ +\x42\xe6\x94\x26\x59\x40\x8c\x31\x7d\x22\x32\x21\xcc\x50\xd5\x5f\ +\xab\xaa\xea\xc4\x87\xde\x10\x29\x91\x23\x13\x05\x92\x04\xa4\x28\ +\x8a\x37\x33\xf3\xc7\x42\x78\xa0\xaa\xbf\x50\x55\x55\xf4\x1b\x0c\ +\x43\xd4\x8a\x1c\xe9\x29\x90\x1c\x20\x4b\x4b\x4b\xe7\x0f\x87\x43\ +\xfb\xb9\xe3\xe5\x4d\xe5\x52\xd5\xab\xaa\xaa\xfa\x8b\xa6\x79\x10\ +\x9f\xaf\x02\xc9\x01\x62\x8c\xf9\x63\x22\xfa\x95\xa6\x96\x30\xf3\ +\x62\xbf\xdf\xb7\x97\x69\x38\xa0\x80\xb7\x02\x49\x01\x52\x96\xe5\ +\x4e\x55\x0d\xf1\xc5\x1d\x1e\x39\xf5\x3e\x25\x10\x78\xb2\x02\xc9\ +\x00\xb2\x7b\xf7\xee\x97\xaf\xad\xad\xd9\x8d\xcd\x5e\xd4\xd0\x22\ +\xec\xff\xd4\x50\x40\x84\xff\x9f\x02\xc9\x00\x52\x14\xc5\x4d\xcc\ +\xbc\xbd\xa1\x39\x1f\x15\x91\xb7\x35\xcc\x81\x70\x28\xf0\xbf\x0a\ +\x24\x01\x88\x31\xc6\x3e\x2e\xfb\xe5\x86\xbe\xd8\x7b\x95\xec\x8b\ +\x60\xec\x66\x0a\x38\xa0\x40\x10\x05\x52\x01\xe4\x33\x44\xf4\x8b\ +\x0d\x3b\xfa\x25\x11\xf9\xd3\x86\x39\x10\x0e\x05\x9e\xa6\xc0\xd8\ +\x01\x29\x8a\xe2\xed\xcc\x7c\x4b\x43\x5f\x44\x44\xca\x86\x39\x10\ +\x0e\x05\xfe\x9f\x02\x63\x05\x64\x7e\x7e\xfe\xec\x99\x99\x99\xaf\ +\x35\xdc\x54\x1a\x97\x56\x38\xb1\xa3\x29\x30\x56\x40\xca\xb2\xfc\ +\x4d\x55\xb5\x5b\x84\x36\x39\x70\x69\xd5\x44\x3d\xc4\x9e\x51\x81\ +\xb1\x01\x62\xdf\x24\xfb\xe4\x93\x4f\xda\x2d\x7b\x9a\xec\x9f\x8b\ +\xef\x3b\x70\x82\x47\x55\x60\x6c\x80\x18\x63\xae\x21\xa2\xf7\x37\ +\xe8\xee\x5f\x66\x66\x66\x5e\x7b\xe0\xc0\x81\x7f\x6e\x90\x03\xa1\ +\x50\x20\xcd\x15\xa4\x28\x0a\xbb\xfb\xf8\x95\x0d\xfc\x29\xed\x27\ +\xf3\x06\xf1\x08\x85\x02\x9b\x2a\x30\x96\x15\x24\xc0\xf7\x1e\x77\ +\x8a\x48\xf0\xad\x46\xbb\xdd\xee\x96\xa3\x47\x8f\xfe\x98\xaa\x3e\ +\x77\x53\xe5\x30\x60\x2c\x0a\x0c\x87\xc3\x87\x97\x97\x97\x1f\x6c\ +\x6b\xf2\xb1\x00\x52\x14\xc5\x21\x66\x7e\xa7\x6f\x93\xa1\x6f\x61\ +\x2f\xcb\xf2\x2a\x55\xed\x12\xd1\x25\x44\xb4\xc5\xb7\x2e\xc4\xb5\ +\xa6\x80\xdd\xdc\xef\xcf\x45\xe4\xba\xd8\x33\xb6\x0e\x48\x59\x96\ +\xe7\xa9\xea\xdf\x11\xd1\x0f\x78\x36\x17\xf4\x5e\xab\xb2\x2c\x3f\ +\xa1\xaa\x5b\x3d\x6b\x41\xd8\x98\x15\xe8\x74\x3a\x17\xf7\x7a\xbd\ +\xfb\x62\x95\xd1\x3a\x20\x45\x51\x2c\x31\xb3\xf7\xfb\xf2\x54\xf5\ +\x8a\xaa\xaa\xec\x56\x38\x8d\x8f\xcd\xb6\xf8\x6c\x3c\x01\x12\xb4\ +\xa1\xc0\xb1\xe3\xc7\x8f\xff\xd0\xa1\x43\x87\x8e\xc4\x98\xac\x75\ +\x40\x8c\x31\x7f\x45\x44\x97\x79\x36\x63\x97\xd5\x37\x78\xc6\x3e\ +\x2d\x6c\xd7\xae\x5d\xcf\x59\x5f\x5f\xff\x2e\x11\xbd\x34\x44\x3e\ +\xe4\x18\x9f\x02\xaa\x7a\x6b\x55\x55\xa1\xf7\x4c\x7b\xaa\xa1\x56\ +\x01\x29\x8a\xe2\x32\x66\xb6\x80\x78\x1d\xa3\xd1\xe8\x1d\x83\xc1\ +\xe0\x43\x5e\xc1\xcf\x08\x8a\xbc\x01\x76\x88\x12\x91\xc3\x5d\x81\ +\x47\x44\xe4\x85\xee\xc3\xdd\x47\xb6\x0a\x88\x31\xe6\x06\x22\xb2\ +\x1f\x86\x6b\x1f\xaa\xfa\x60\xa7\xd3\xb9\xa8\xdf\xef\x3f\x5e\x3b\ +\xf8\x14\x01\x65\x59\x6e\x53\xd5\x0f\x84\xc8\x85\x1c\x49\x28\x70\ +\xa1\x88\x7c\x3b\x74\x25\x6d\x03\xd2\xe4\xf2\xea\x46\x11\x09\xf6\ +\x72\x4e\x7c\xfe\x08\x7d\x2a\x8d\x3d\x9f\x7d\xd4\xe1\x8e\xd0\x55\ +\xb4\x06\x48\x80\xcb\xab\x8b\x06\x83\x81\xfd\xed\x57\x90\x03\x80\ +\x04\x91\x31\xa5\x24\x93\x0d\x48\x93\xcb\x2b\x22\xba\x5d\x44\x7e\ +\x2e\xa4\x1b\x00\x24\xa4\x9a\x49\xe4\x9a\x78\x40\x9a\x5c\x5e\x05\ +\xdf\x85\x1d\x80\x24\x71\x52\x87\x2c\x62\x72\x01\x69\x7a\x79\xc5\ +\xcc\xaf\x08\xbd\xd9\x34\x00\x09\x79\x6e\x26\x91\x6b\xa2\x01\xb9\ +\x8e\x99\xdf\xe7\x29\x63\xf0\xcb\x2b\x5b\x07\x00\xf1\x74\x23\xdd\ +\xb0\xc9\x05\xc4\x18\x73\x90\x88\x76\x78\x6a\x1b\xfc\xf2\x0a\x80\ +\x78\x3a\x91\x76\xd8\x44\x03\x72\x17\x11\xbd\xd6\x47\xdf\x18\x97\ +\x57\x00\xc4\xc7\x89\xe4\x63\x26\x13\x90\xad\x5b\xb7\x6e\x39\xef\ +\xbc\xf3\xfe\x93\x88\xce\xf6\x90\xf8\x9b\x22\x62\xef\xb0\x0d\x7e\ +\x34\xbc\xc4\xfa\x9d\xe0\x05\x21\xa1\x55\xe0\x0a\x22\xf2\x7d\x8c\ +\x61\x32\x01\x59\x58\x58\xb8\xa4\xd3\xe9\x7c\xc3\xd3\xff\x0f\x88\ +\xc8\xaf\x7b\xc6\x9e\x31\xac\x21\x20\x51\xcc\x88\xd1\xe7\x24\xe5\ +\x34\xc6\xd8\xbd\xd1\xf2\x02\xa4\x28\x8a\x6d\xcc\xec\x7b\x4b\xc7\ +\x76\x11\x39\x14\xc3\x64\x00\x12\x43\xd5\x66\x39\xb3\x04\xc4\x18\ +\x63\x7f\x7b\xe5\xf5\x60\x8b\xaa\xbe\xa6\xaa\xaa\xbf\x6e\x26\xfb\ +\xa9\xa3\x01\x48\x0c\x55\x9b\xe5\xcc\x12\x90\xb2\x2c\xef\x56\xd5\ +\x9f\xf4\x91\xee\xd8\xb1\x63\x5b\x56\x56\x56\xd6\x7c\x62\x37\x8b\ +\x01\x20\x9b\x29\xd4\xfe\xff\x67\x09\x48\x51\x14\x0f\x31\xf3\x05\ +\x1e\x72\xdf\x2b\x22\x97\x7a\xc4\x39\x85\x00\x10\x27\x99\x5a\x1d\ +\x94\x2b\x20\x8f\x33\xf3\x5c\x5d\xa5\x55\xf5\x63\x55\x55\xbd\xb5\ +\x6e\x9c\xeb\x78\x00\xe2\xaa\x54\x7b\xe3\xb2\x03\xc4\x18\x63\x9f\ +\x3b\xf7\x7a\x14\x52\x55\xf7\x55\x55\xf5\xae\x58\xf6\x00\x90\x58\ +\xca\xfa\xe7\xcd\x11\x90\x57\x11\xd1\x03\x3e\x92\x8d\x46\xa3\xeb\ +\x07\x83\x81\xef\xed\x29\x9b\x4e\x09\x40\x36\x95\xa8\xf5\x01\x39\ +\x02\xf2\x7a\x22\xb2\x2f\xe4\xac\x7d\x8c\x46\xa3\xab\x07\x83\xc1\ +\x17\x6a\x07\x3a\x06\x00\x10\x47\xa1\x5a\x1c\x96\x1d\x20\x65\x59\ +\xbe\x4d\x55\x3f\xe2\xa3\xf1\xfa\xfa\xfa\xab\x0e\x1e\x3c\xf8\x1d\ +\x9f\x58\x97\x18\x00\xe2\xa2\x52\xbb\x63\x72\x04\x64\x49\x55\xbd\ +\xb6\xf8\x59\x5d\x5d\x7d\xd6\xcd\x37\xdf\xfc\x44\x2c\x8b\x00\x48\ +\x2c\x65\xfd\xf3\x66\x07\x88\xef\x49\xc8\xcc\x4f\xf4\xfb\xfd\x67\ +\xf9\x4b\xbd\x79\xa4\x6f\x6d\x1b\x99\x71\xab\xc9\xe6\x12\xd7\x1e\ +\x01\x40\xdc\x25\x7b\x54\x44\x5e\xe0\x3e\xbc\xfe\x48\x00\x52\x5f\ +\xb3\xd8\x11\x00\xc4\x5d\xe1\xef\x89\xc8\x0f\xbb\x0f\xaf\x3f\x12\ +\x80\xd4\xd7\x2c\x76\x04\x00\x71\x57\xf8\xbb\x22\xf2\x4a\xf7\xe1\ +\xf5\x47\x02\x90\xfa\x9a\xc5\x8e\x00\x20\x8e\x0a\x33\xf3\x7d\xfd\ +\x7e\xff\x62\xc7\xe1\x5e\xc3\x00\x88\x97\x6c\x51\x83\x00\x88\xbb\ +\xbc\x77\x8b\xc8\xe5\xee\xc3\xeb\x8f\x04\x20\xf5\x35\x8b\x1d\x01\ +\x40\xdc\x15\xbe\x47\x44\x5e\xed\x3e\xbc\xfe\x48\x00\x52\x5f\xb3\ +\xd8\x11\x00\xc4\x5d\xe1\xc3\x22\xe2\x73\x07\xb0\xf3\x0c\x00\xc4\ +\x59\xaa\xd6\x06\x66\x07\x48\x51\x14\x0b\xcc\x5c\x79\x28\xfc\x98\ +\x88\x44\x7d\x0d\x1a\x00\xf1\x70\x25\x72\x48\x76\x80\x2c\x2e\x2e\ +\xbe\x7d\x34\x1a\xdd\xe2\xa3\xeb\xec\xec\xec\x73\xf7\xef\xdf\xff\ +\x98\x4f\xac\x4b\x0c\x00\x71\x51\xa9\xdd\x31\x39\x02\xf2\xf3\xa3\ +\xd1\xe8\xb3\x9e\x32\x5f\x20\x22\xf6\x5d\x74\x51\x0e\x00\x12\x45\ +\xd6\x46\x49\xb3\x03\xa4\x28\x8a\x9f\x62\xe6\x3b\x7d\x54\x53\xd5\ +\x57\x57\x55\x75\x8f\x4f\xac\x4b\x0c\x00\x71\x51\xa9\xdd\x31\xd9\ +\x01\xb2\xb8\xb8\xf8\xe3\xa3\xd1\xe8\x5b\x3e\x32\xab\xea\x5b\xaa\ +\xaa\xfa\xb8\x4f\xac\x4b\x0c\x00\x71\x51\xa9\xdd\x31\xd9\x01\xb2\ +\x73\xe7\xce\x0b\x66\x67\x67\x1f\xf2\x94\x39\xe8\x0b\x73\x9e\x59\ +\x03\x00\xf1\x74\x25\x62\x58\x76\x80\x94\x65\xf9\x7c\x55\x7d\xc4\ +\x47\xd3\x98\x2f\x66\xb4\xf5\x00\x10\x1f\x57\xe2\xc6\x64\x07\x48\ +\xb7\xdb\x9d\x5d\x5d\x5d\xf5\xfe\x46\x3c\xc6\x2b\xb5\x4e\x58\x0c\ +\x40\xe2\x9e\xec\x3e\xd9\xb3\x03\xc4\x47\xa4\xb6\x62\x00\x48\x5b\ +\x4a\xbb\xcf\x03\x40\xdc\xb5\x8a\x3e\x12\x80\x44\x97\xb8\xf6\x04\ +\x00\xa4\xb6\x64\xf1\x02\x00\x48\x3c\x6d\x7d\x33\x03\x10\x5f\xe5\ +\x22\xc4\x01\x90\x08\xa2\x36\x4c\x09\x40\x1a\x0a\x18\x32\x1c\x80\ +\x84\x54\x33\x4c\x2e\x00\x12\x46\xc7\x20\x59\x00\x48\x10\x19\x83\ +\x26\x01\x20\x41\xe5\x6c\x96\x0c\x80\x34\xd3\x2f\x46\x34\x00\x89\ +\xa1\xaa\x67\x4e\x00\xe2\x29\x5c\xc4\x30\x00\x12\x51\xdc\xba\xa9\ +\x01\x48\x5d\xc5\xe2\x8f\x07\x20\xf1\x35\x76\x9e\x01\x80\x38\x4b\ +\xd5\xda\x40\x00\xd2\x9a\xd4\x9b\x4f\x04\x40\x36\xd7\xa8\xed\x11\ +\x00\xa4\x6d\xc5\xcf\x30\x1f\x00\x49\xc8\x8c\x8d\x52\x00\x48\x42\ +\x9e\x00\x90\x84\xcc\x00\x20\x49\x9a\xd1\x25\xa2\x1b\x3c\x2b\xc3\ +\xe6\xd5\x9e\xc2\x9d\x29\x0c\x2b\x48\x04\x51\x7d\x53\x62\x05\xf1\ +\x55\x2e\x5e\x1c\x00\x89\xa7\x6d\xed\xcc\x00\xa4\xb6\x64\xd1\x03\ +\x00\x48\x74\x89\xdd\x27\x00\x20\xee\x5a\xb5\x35\x12\x80\xb4\xa5\ +\xb4\xc3\x3c\x00\xc4\x41\xa4\x96\x87\x00\x90\x96\x05\xdf\xe4\x03\ +\x21\x3e\xa4\x27\xe4\x87\x2d\x05\x80\x24\x64\x08\x56\x90\x84\xcc\ +\xc0\xaf\x79\x93\x34\x03\x2b\x48\x62\xb6\x60\x05\x49\xc8\x10\xac\ +\x20\x09\x99\x81\x15\x24\x49\x33\xb0\x82\x24\x66\x0b\x56\x90\x84\ +\x0c\xc1\x0a\x92\x90\x19\x58\x41\x92\x34\x03\x2b\x48\x62\xb6\x60\ +\x05\x49\xc8\x10\xac\x20\x09\x99\x81\x15\x24\x49\x33\xb0\x82\x24\ +\x66\x0b\x56\x90\x84\x0c\xc1\x0a\x92\x90\x19\x58\x41\x92\x34\x03\ +\x2b\x48\x62\xb6\x60\x05\x49\xc8\x10\xac\x20\x09\x99\x81\x15\x24\ +\x49\x33\xb0\x82\x24\x66\x0b\x56\x90\x84\x0c\xc1\x0a\x92\x90\x19\ +\x58\x41\x92\x34\x03\x2b\x48\x62\xb6\x60\x05\x49\xc8\x10\xac\x20\ +\x09\x99\x81\x15\x24\x49\x33\xb0\x82\x24\x66\x0b\x56\x90\x84\x0c\ +\xc1\x0a\x92\x90\x19\x58\x41\x92\x34\xa3\xc9\x0a\x72\x47\x7a\x1d\ +\x4d\x4d\x45\xaf\xf3\xec\x24\xca\x56\x4c\xec\x59\xcc\xc4\x87\x35\ +\x5c\x41\x26\xbe\xff\x29\x6c\x00\x80\x84\x34\x15\x80\x84\x54\x33\ +\x89\x5c\x00\x24\xa4\x0d\x00\x24\xa4\x9a\x49\xe4\x02\x20\x21\x6d\ +\x00\x20\x21\xd5\x4c\x22\x17\x00\x09\x69\x03\x00\x09\xa9\x66\x12\ +\xb9\x00\x48\x48\x1b\x00\x48\x48\x35\x93\xc8\x05\x40\x42\xda\x00\ +\x40\x42\xaa\x99\x44\x2e\x00\x12\xd2\x06\x00\x12\x52\xcd\x24\x72\ +\x01\x90\x90\x36\x14\x45\xb1\x95\x99\x3f\x11\x32\x27\x72\x8d\x4f\ +\x81\x4e\xa7\xf3\xb2\x5e\xaf\xf7\x70\xe8\x0a\xb2\xfd\xa2\x70\x69\ +\x69\xe9\xc2\xe1\x70\x78\x7f\x68\x41\x91\x6f\x2c\x0a\x1c\x16\x91\ +\x0b\x62\xcc\x9c\x2d\x20\x56\x4c\x63\xcc\x37\x88\xe8\x92\x18\xc2\ +\x22\x67\x7b\x0a\xa8\xea\x7b\xaa\xaa\xfa\xad\x18\x33\xe6\x0e\xc8\ +\xd5\x44\x74\x5b\x0c\x61\x91\xb3\x35\x05\xee\x16\x91\xcb\x63\xcd\ +\x96\x35\x20\x56\x54\x7c\x16\x89\x75\x6a\xb5\x92\xf7\x5e\x11\xb9\ +\x34\xe6\x4c\xd9\x03\xb2\x01\xc9\x8b\x3b\x9d\xce\x6e\x55\xb5\x97\ +\x5b\xf6\xe7\x9c\x98\xa2\x23\x77\x23\x05\x0e\x13\xd1\x57\x89\xe8\ +\x2e\x11\x59\x69\x94\xc9\x21\x18\x80\x38\x88\x84\x21\xf9\x2a\x00\ +\x40\xf2\xf5\x1e\x9d\x3b\x28\x00\x40\x1c\x44\xc2\x90\x7c\x15\x00\ +\x20\xf9\x7a\x8f\xce\x1d\x14\x00\x20\x0e\x22\x61\x48\xbe\x0a\x00\ +\x90\x7c\xbd\x47\xe7\x0e\x0a\x00\x10\x07\x91\x30\x24\x5f\x05\x00\ +\x48\xbe\xde\xa3\x73\x07\x05\x00\x88\x83\x48\x18\x92\xaf\x02\x00\ +\x24\x5f\xef\xd1\xb9\x83\x02\x00\xc4\x41\x24\x0c\xc9\x57\x01\x00\ +\x92\xaf\xf7\xe8\xdc\x41\x01\x00\xe2\x20\x12\x86\xe4\xab\x00\x00\ +\xc9\xd7\x7b\x74\xee\xa0\x00\x00\x71\x10\x09\x43\xf2\x55\x00\x80\ +\xe4\xeb\x3d\x3a\x77\x50\x00\x80\x38\x88\x84\x21\xf9\x2a\x00\x40\ +\xf2\xf5\x1e\x9d\x3b\x28\x00\x40\x1c\x44\xc2\x90\x7c\x15\x00\x20\ +\xf9\x7a\x8f\xce\x1d\x14\x00\x20\x0e\x22\x61\x48\xbe\x0a\x00\x90\ +\x7c\xbd\x47\xe7\x0e\x0a\x00\x10\x07\x91\x30\x24\x5f\x05\x00\x48\ +\xbe\xde\xa3\x73\x07\x05\x00\x88\x83\x48\x18\x92\xaf\x02\xff\x03\ +\x39\x5c\xc9\x23\xd1\xf6\x50\x87\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x08\x19\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ \x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ \x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x07\xea\x49\x44\x41\x54\x78\xda\xed\ -\x57\x6b\x6c\x14\xd7\x15\x3e\xf7\xce\xec\x7a\xd7\x76\x36\x7e\xcb\ -\x4e\x00\x97\x85\x04\x27\x04\x28\xe0\xda\x78\xcd\x8a\x26\x31\x76\ -\x6c\x13\x27\x8e\xb0\x1b\xa2\x18\xc5\xb4\x34\x22\x52\x15\x4a\xca\ -\x8f\xa8\xf4\x47\x9b\x56\xaa\xd2\x87\xaa\x3a\xa1\x52\x10\xa2\x55\ -\xdd\x28\x8a\xa5\x22\x12\x22\xa7\x34\xb1\x1d\xdb\x3c\x6d\x8c\xa1\ -\xf1\x0f\xc0\x8f\xf8\x0d\xc6\x6b\xf0\xae\x3d\xbb\x3b\x3b\x8f\x7e\ -\x33\xf6\x76\x65\x66\x41\xfc\xcb\x9f\x5e\xe9\x6a\x76\x66\xee\x9c\ -\xef\x3b\xdf\x39\xe7\x9e\xbb\x4c\xd7\x75\xfa\x36\x07\xa7\x6f\x79\ -\x88\xd1\x1f\xbf\xcc\xcd\x25\x55\x51\x88\x18\x23\xa8\x92\xc8\x38\ -\x3f\xe4\x4a\x49\x79\x31\x18\x08\x9c\x51\x65\xf9\x67\x58\x78\x87\ -\x43\x2d\xae\x69\x26\x6b\x86\xdf\xc2\xe2\x6f\xba\x5b\x45\xdc\xc3\ -\x46\x12\x63\xec\x37\xc9\xc9\xc9\x2f\x48\x81\x40\x1b\xbe\x3b\x20\ -\x32\x76\xdb\xfc\x1e\xf3\x47\x73\x73\x51\x02\x4b\x87\xa6\x69\x5c\ -\x13\x84\xdf\x7d\x7f\xed\xda\x37\xf2\x67\x67\xe9\x9a\xcb\xf5\xc4\ -\xbf\xc6\xc6\xb2\x35\x59\xde\x0d\xb0\x19\x7a\x80\xa1\xe9\x7a\x02\ -\x28\x35\x14\xaf\x5b\x57\x9f\xb7\x6c\x19\x0d\x4a\xd2\x6b\xa7\x5b\ -\x5b\x5d\x6a\x24\xb2\x9b\x0b\xc2\xfc\x3d\x43\xa0\xa9\x2a\x8f\x30\ -\xf6\x7b\xef\x86\x0d\x6f\x94\x80\xa1\x0b\xaa\xe4\x87\x42\x54\x9a\ -\x99\x59\xc9\x44\xf1\x98\xaa\xeb\xae\x07\x00\xb7\xa9\x9a\xd6\x50\ -\xe8\x76\xd7\x6f\xca\xc9\xa1\xa4\xf5\xeb\x69\xa3\xdb\x4d\x9e\xed\ -\xdb\x5f\xc2\xf3\x0f\x40\xc2\x01\x95\x2d\x04\x4c\xc9\x34\x51\x7c\ -\x6f\x5b\x51\xd1\x4f\xb7\xdf\xbe\x4d\x7a\x59\x19\x89\x1f\x7d\x44\ -\xda\x81\x03\xf4\x5d\x9f\x8f\x9e\x4b\x4d\xad\x12\x6d\xb6\x26\x8d\ -\x28\xe7\x3e\xe0\x2e\x78\x7e\xd4\x93\x9b\xbb\x77\x63\x7a\x3a\xe9\ -\xd5\xd5\x64\x3b\x78\x90\xb4\x92\x12\xda\xb8\x72\x25\x6d\xdd\xb9\ -\xf3\x15\xe2\xfc\x43\x4d\x51\xb2\x2c\x04\x60\xf8\xe7\xdb\xbc\xde\ -\x7d\x15\xf0\x5c\x7c\xfa\x69\x12\xf6\xef\x27\x1a\x1b\x23\x7b\x55\ -\x15\xb1\x43\x87\x68\xed\xcc\x0c\x95\x3b\x1c\xa5\x82\x28\x1e\x85\ -\x12\x29\x77\x83\xc3\x01\x51\x67\xac\x61\x6b\x56\x56\xdd\x06\xa7\ -\x93\x58\x6d\x2d\x25\x94\x96\x12\x8d\x8f\x93\x50\x58\x48\xac\xb8\ -\x98\x36\xe5\xe5\x51\x71\x5d\x5d\x35\x13\x84\xdf\x5a\x08\x3c\x94\ -\x99\x59\xe3\x31\xa4\xe1\x78\xf4\xe6\x9b\x44\x13\x13\x44\x7e\xbf\ -\x69\xc0\x51\x51\x41\xec\xed\xb7\x69\x15\xee\x9f\x15\x84\x72\xc4\ -\xb1\x11\xde\xa6\x51\x8c\xbc\x43\x65\xec\xf0\x16\x97\x6b\xf7\x13\ -\xa2\x48\x6c\xd7\x2e\x4a\x34\xc0\x6f\xde\x24\x0a\x04\xcc\x2b\xcb\ -\xcf\x27\x4a\x4b\xa3\x75\x20\x91\x91\x97\x57\x66\x21\x10\x9a\x99\ -\x69\xef\x33\xc0\x51\x09\xfa\xb1\x63\x64\xc6\x29\x18\x5c\x30\x00\ -\x25\x9c\x30\xc8\x41\xc2\x1d\x0e\xd3\x33\x8a\x52\x29\x72\xde\xa8\ -\xc1\x24\xa6\x91\x70\x87\x0b\x45\x71\x6f\x1e\xc0\xa9\xae\x8e\x92\ -\x10\x3e\xba\x75\x6b\xe1\x5b\x49\x22\x52\x55\xd2\xbb\xba\x4c\x87\ -\x86\xe0\x90\x7f\x68\xa8\xdb\x52\x86\x5a\x28\x74\xf0\xf3\x8e\x8e\ -\x2c\xf2\x78\x76\x14\x7e\xfc\x31\x29\x00\x17\x77\xec\x20\x9a\x5f\ -\x4c\x5a\x18\x4a\x42\x68\x28\x12\x21\xf7\x3b\xef\x90\x9d\xa8\xbc\ -\x35\x21\xe1\x84\xa2\xeb\x92\x57\xd3\x4a\x57\xa3\xb4\x6c\x00\x77\ -\x81\xa8\x09\x8e\x7b\x73\x38\x1c\xa4\x5e\xbe\x4c\xbc\xb7\x97\xfa\ -\x61\xa3\xbd\xb1\xf1\x82\x2a\x49\xfb\xa3\xb8\xff\xdb\x09\x7f\xf5\ -\xe8\xa3\xa4\x45\x22\xe9\xdc\x6e\xff\x5b\x45\x41\x41\x65\x7e\x7f\ -\x3f\x29\x95\x95\x24\x96\x97\x9b\x24\x60\x70\x41\x95\xe4\x64\xf2\ -\xb7\xb6\x52\xf0\xdd\x77\x69\x14\x9e\xc9\x82\x40\x6e\x82\x0c\xfb\ -\xf6\x51\xea\xf3\xcf\x2f\xac\x85\x4d\x73\x6d\x42\x02\x29\x43\x43\ -\xc4\x2f\x5d\xa2\x61\x54\x53\x6b\x53\xd3\x05\x45\x92\x6a\xc4\x84\ -\x84\x91\x3d\x58\x67\x29\x43\xce\xb9\x8f\x42\xa1\x57\xff\xdd\xdd\ -\xdd\x7c\x65\xc5\x0a\x62\x27\x4e\x90\xfc\xe9\xa7\xa6\x31\x53\x4a\ -\x24\xa8\x11\x4f\x57\x51\x11\x39\x90\xa4\xd9\x00\x5a\x01\xa5\x6c\ -\xf5\xf5\x94\x8a\x4c\xa7\xe9\x69\x73\x4d\x54\xf6\x48\x5f\x1f\xe9\ -\x9d\x9d\x34\x8a\x50\x7c\x75\xfc\x78\x8f\x32\x3f\x5f\x2b\xda\xed\ -\x23\x06\xc1\xb8\x0a\xe0\xa3\x05\x46\x8a\x92\x63\x73\x3a\xff\x5a\ -\xf2\xf8\xe3\xa5\x4f\x21\x19\x19\x64\xb5\x7b\x3c\x04\x72\x31\xef\ -\x12\x13\xe9\x4e\x7b\x3b\xc1\x28\x65\x20\xe6\xd1\x77\x98\xa6\xe7\ -\xf2\xe8\x28\xa9\xdd\xdd\x34\x81\x9c\xea\x68\x6b\xbb\x24\x07\x02\ -\x3f\x80\xe7\xd7\xa3\xe0\x7b\x24\xe9\xde\x04\x04\x3c\xd3\x15\xc5\ -\xc5\x6d\xb6\xbf\x97\xb8\xdd\x55\x4f\x4d\x4e\x92\x0e\x0f\x9d\x20\ -\x01\xef\x62\x24\xec\x76\x43\xb6\x18\xf8\x62\xcc\xc3\x23\x23\xa4\ -\xf4\xf4\xd0\xa4\x2c\x53\xfb\xd9\xb3\xe7\x91\x4f\xb5\x00\x5f\xe2\ -\x39\x08\x2c\x4d\x42\x3d\x76\x35\xa7\xc0\xb9\x1f\xdb\x6f\x7d\xdb\ -\xe0\xe0\x3f\xec\xcb\x97\x3f\xe7\x6e\x6e\x26\x09\x06\x13\x37\x6f\ -\x36\x01\xa3\x89\x89\x11\x03\x07\xa1\xd0\xd5\xab\x24\x23\xe3\xa7\ -\x91\x33\x1d\xbd\xbd\x5d\x6a\x38\xbc\x2b\x2a\xfb\x7d\x9b\x51\x32\ -\xa4\x8a\x2e\x62\xb8\x32\xc2\x10\x84\x19\x34\xa2\x5d\x5f\x0e\x0f\ -\x7f\xa2\x64\x66\x7a\xbf\x73\xea\x14\x31\xa8\xe4\xc4\xf6\x4a\xb2\ -\x1c\x03\x66\xcc\x58\x4b\xe1\xc1\x41\x92\xce\x9d\xa3\x69\xd8\x3a\ -\xd3\xdf\x7f\x45\x09\x85\x5e\xc0\xc6\x35\xf9\x40\xdd\x50\x84\x41\ -\xdd\x00\x66\x6c\xc1\x29\x5c\x99\x71\x45\x99\x29\x91\x88\x24\xdb\ -\x6c\xa4\xa3\x04\x6f\xb7\xb4\x98\x57\x8e\x1c\x40\x7f\x30\xc0\xcd\ -\x7b\x10\xa5\x59\x78\x6f\x83\x2a\x6a\x52\x12\x45\x64\x39\xcc\x34\ -\xcd\xcf\xf1\xdc\xec\x80\xb0\x6d\x76\x51\x4c\x81\xc8\x9a\x84\x7f\ -\x4a\x4d\x5d\x42\x00\x3f\x16\xba\x1a\xe7\x7f\xf1\xae\x5a\x55\xff\ -\xe4\xd4\x14\xf9\x86\x87\x29\x62\xe4\x28\xa6\x8e\x44\x43\xef\x30\ -\x89\x72\x63\x72\x4e\x22\xb6\x60\x01\x33\xed\x91\x47\xc8\x70\xfb\ -\x74\x57\xd7\x67\x0c\x1d\x10\x34\x67\xee\x26\x50\x8b\xfb\xa5\x65\ -\x68\x6d\xcb\x36\x6c\x32\x0d\x85\x6b\xd6\xd4\xaf\x43\x5b\xf6\x03\ -\x5c\x37\x0c\x44\xdf\x63\x47\x94\x51\x01\x11\x94\x9d\x06\x05\x18\ -\x08\x80\x85\x79\xf5\xa3\x79\x2d\xc3\x7e\x51\x54\x5c\x5c\x89\xfb\ -\x63\xda\x7d\xba\x28\xbf\x07\xb8\x0b\x9e\x1f\x2d\xde\xb4\x69\xef\ -\x66\xd4\xb0\xff\xda\xb5\x25\xe0\x2c\x36\xcd\xd8\x33\x4c\x28\x16\ -\x7b\x07\x12\x81\x1b\x37\x68\x25\x54\x2d\x2a\x2b\xab\x12\xec\x76\ -\xb3\x8b\x3e\x10\x01\x5d\xd3\x44\x8d\xf3\x06\x6f\x51\x51\x5d\x21\ -\xf6\x6e\xe9\xeb\xaf\x01\x1e\x1b\x51\x10\x15\x33\x05\x33\x1d\x53\ -\xb3\xda\x35\x49\xcc\xa1\x87\xb8\xd1\x96\x3d\xd5\xd5\xa5\x28\xe9\ -\xa3\x1a\x3e\xb9\x2f\x01\x80\x3b\x20\xfb\x61\x8f\xd7\xbb\x3b\x1f\ -\xed\x57\xba\x78\x31\xea\x79\x6c\x44\xc1\x11\xff\x08\x6a\x7e\x1e\ -\xa5\x97\x0e\x05\x20\xf3\x92\x75\xa6\x22\x58\x33\x8f\xd0\xe5\x42\ -\x89\x82\x9a\x9a\x72\x24\x6d\x23\xec\xa5\xc5\x25\x80\x04\x4c\xc6\ -\x51\xec\xfd\x2d\xa5\xa5\x7b\xb7\x20\xe6\x41\x94\x93\x1a\x2f\x3c\ -\x06\x38\x80\x65\xc4\xf8\x0c\xe7\xff\x39\x4d\x74\x61\x16\xde\xa6\ -\xe3\x59\x3c\x25\x08\xe4\xa4\x81\x01\x5a\x9d\x9d\x4d\xf9\x75\x75\ -\x95\xe8\x35\x06\x89\x6c\x0b\x01\x48\xf6\xeb\xe2\xb2\xb2\x3d\x5e\ -\x80\x2b\xed\xed\xa6\x31\x16\x07\xfc\x61\x00\xcf\xc1\xa3\x8e\x48\ -\xa4\x2b\xac\xeb\x15\x78\xb6\xfd\x6c\x30\x78\xf2\x16\x14\x48\x45\ -\x69\xaa\x66\x17\xb4\x2a\x11\xbe\x7e\x9d\xd6\xe0\x88\xf7\xbd\xd7\ -\x5f\x2f\xe7\x4e\xe7\x1f\x2d\x04\x92\xb2\xb2\x76\xac\x77\x21\x59\ -\xbf\xf8\x22\xae\xe7\xba\x01\x8e\xf7\x81\xcc\x4c\xea\xf4\xfb\x2f\ -\xc8\xaa\xba\x53\x24\x1a\x83\x01\x3f\xd4\x7b\xad\xcb\xe7\xfb\xec\ -\x96\xaa\x52\x2a\xd6\x20\x94\x96\xbc\xd1\xa1\x84\x8a\xe6\xb4\x0a\ -\x07\x92\x94\xd5\xab\xb7\x59\x08\x04\xa7\xa6\xbe\xbc\x66\xb4\x48\ -\xaf\x37\xae\xe7\x0f\x21\x99\x02\x38\xe1\x76\xfa\x7c\x3d\xb2\xa2\ -\xd4\x8a\x8c\x8d\xc4\x9c\x64\x3e\x54\xce\xab\x17\xc7\xc6\x9a\x7d\ -\x8a\x42\x0f\xe3\xe4\xa3\xdf\xad\x04\x9e\x0b\x8f\x3d\x46\x23\xd8\ -\x2d\x67\x87\x86\xba\x2c\x04\xb8\xaa\xfe\xa2\xb3\xb9\xf9\x78\x0f\ -\x36\x11\x7b\x41\x41\xec\x85\x01\x8e\xf8\xf9\x96\x2f\xa7\xb6\xf1\ -\xf1\x4b\xe1\x70\xf8\x65\x1b\xe7\xc3\x96\x6c\xe6\xfc\x8e\xaa\x28\ -\x3f\x3c\x7f\xf5\xea\xa9\x1b\x92\x44\x2e\x10\x26\x90\x40\x72\x99\ -\x87\x98\x04\x9c\x8c\xbf\x41\x78\xcf\x1f\x39\x72\x46\x99\x9b\x7b\ -\xcb\x42\x00\xb5\x3c\xc5\x64\xf9\x95\xce\x93\x27\x3f\xbc\x0c\x12\ -\x4e\x34\x1d\xe3\x65\x32\xbc\xbe\x81\x8f\xbf\x1a\x18\x38\x1f\x0e\ -\x06\x5f\x14\x39\xbf\x1e\x83\xb5\x90\x98\x04\x89\x9a\xee\x2b\x57\ -\x3e\x19\x87\x9a\x06\x71\x06\x12\x49\x38\x11\x8f\xa0\xa4\xcf\x1d\ -\x39\xd2\xa2\xfa\xfd\x2f\x09\x44\x03\x71\xcb\x50\xb0\xd9\x42\xa2\ -\xae\xff\xf8\x5c\x4b\xcb\x3f\xfb\x32\x32\xc8\xb1\x75\x2b\x4d\x20\ -\x71\xda\xfb\xfa\xba\x14\xa3\xab\x09\xc2\x88\x25\x37\x18\x33\xe3\ -\x1d\x9d\x9c\x31\x3f\xc2\x51\xdf\xdb\xdd\xfd\xf9\x04\x40\x9d\x90\ -\x7d\x1c\xbb\xe5\xc5\xa6\xa6\xd3\x68\x60\x75\x00\xbf\x49\xf1\x7a\ -\xc1\xfb\x88\x5b\xb4\x69\x20\x5e\xa9\x30\xf4\x87\x8c\x9c\x9c\x67\ -\x66\xa7\xa7\x7b\x71\x8c\xfa\x09\x17\x84\x51\x8a\x33\x9c\x0b\x5d\ -\x31\xd6\x41\x17\xaf\xb0\x92\xc1\x45\xf1\xcf\x29\x39\x39\xc5\xfe\ -\xa9\xa9\x6e\x38\xf0\x16\xbc\xfd\x26\xfa\x5d\xcd\x22\xee\xff\xff\ -\x1d\xff\x17\xef\xd2\xfe\x9f\xb7\x3d\x84\x48\x00\x00\x00\x00\x49\ -\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x03\x12\ +\x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ +\x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ +\xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ +\x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ +\x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ +\x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ +\x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ +\x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ +\xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ +\x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ +\x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ +\x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ +\xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ +\xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ +\x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ +\x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ +\x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ +\xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ +\xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ +\xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ +\xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ +\x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ +\x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ +\xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ +\xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ +\xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ +\xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ +\x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ +\xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ +\x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ +\x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ +\x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ +\x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ +\x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ +\x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ +\x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ +\x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ +\x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ +\xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ +\x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ +\x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ +\xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ +\x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ +\x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ +\xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ +\x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ +\x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ +\x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ +\x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ +\x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ +\x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ +\x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ +\x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ +\x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ +\x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ +\x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ +\xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ +\x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ +\x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ +\x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ +\xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ +\x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ +\x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ +\x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ +\x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ +\xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ +\xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ +\x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ +\x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ +\xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ +\x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ +\x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ +\xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ +\xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ +\x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ +\x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ +\x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ +\xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ +\x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ +\x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ +\x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ +\x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ +\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ +\x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ +\x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ +\x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ +\x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ +\xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ +\xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ +\x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ +\x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ +\x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ +\xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ +\x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ +\xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ +\x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ +\xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ +\x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ +\xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ +\xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ +\xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ +\x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ +\xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ +\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ +\x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ +\xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ +\x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ +\x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ +\x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ +\x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ +\x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ +\x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ +\x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ +\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ +\x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ +\x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ +\xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ +\x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ +\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ +\xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ +\xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ +\x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ +\xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ +\x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x01\x4f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x04\x00\x00\x00\xfd\x0b\x31\x0c\ +\x00\x00\x01\x16\x49\x44\x41\x54\x78\x01\xed\x96\x4b\x4a\x03\x41\ +\x14\x45\xcf\x20\x66\x1a\x14\x5d\x81\x26\xad\x7b\x08\x82\x38\xd0\ +\x6d\x88\xe0\x46\x14\x07\xe2\x36\x32\x51\x83\x9a\x55\x28\x22\xb8\ +\x03\x23\x22\x0e\x84\x56\xb4\x03\x7e\xba\x53\x4a\xf3\x28\x32\x10\ +\x2c\x0b\xee\x24\xd4\x39\xe3\xcb\x85\xa2\xea\xbd\x22\x31\x85\x24\ +\x12\x1d\x4e\xc8\x29\xa9\xbc\xe3\x09\xdd\x2f\x8e\x18\xb0\x4c\x20\ +\x19\xcf\xb8\x08\x5f\x58\x21\x88\x33\x5c\xa4\x37\x34\x09\xe0\x15\ +\x17\xed\x21\x01\x38\xf3\x3f\xf4\x2c\x33\x66\x5d\x53\xd0\x62\x68\ +\xa9\x07\xe6\x14\x05\xb0\x4a\x65\xb9\xbe\xa6\x00\xf6\x7d\x72\x5b\ +\x53\x30\xc3\x95\x25\x0b\x96\x14\x05\xd0\xa1\xb0\xec\x25\x0d\x45\ +\x01\xec\xf8\xf4\x9e\xa6\x00\xff\x4c\x2b\xba\x9a\x82\x79\x1e\x2d\ +\x3f\xa4\xa5\x28\x80\x0d\x3f\x10\x7b\x9a\x82\x4d\x6d\xc1\x82\x3f\ +\xa2\x5b\xcd\x11\x9d\x5b\xba\xa4\xab\xbd\xa6\xbb\x9a\x87\x36\xb2\ +\xec\x05\x0d\xe5\xa8\x78\x63\x51\x3b\xec\xb6\xb4\xe3\xfa\x58\xb3\ +\x70\xee\x2c\x75\xcf\xac\x72\x65\x56\xac\xf1\x27\x05\x2e\xda\x03\ +\x02\x18\xe0\x22\xbd\xa6\x49\x00\x19\x39\x2e\xc2\x9c\x8c\x40\xda\ +\x1c\xf1\xc4\x7b\xed\x47\xed\x67\xed\xd7\x8f\x65\xed\xc4\x87\xd2\ +\x6e\xfe\x29\x6d\x12\x89\xc4\x54\xf3\x0d\x0a\x7f\x93\xd6\xf9\xe7\ +\x0c\x36\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x04\xb5\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x1c\x00\x00\x00\x1e\x08\x06\x00\x00\x00\x3f\xc5\x7e\x9f\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x04\ +\x6f\x49\x44\x41\x54\x48\x0d\xbd\x96\x6b\x68\x93\x57\x18\xc7\x9b\ +\x34\xa9\xa8\xd4\x2b\xce\xb6\x54\xa7\x78\x2b\x65\xe8\xa4\x2d\xf3\ +\xcb\x86\xf5\x0e\x32\xfd\xe0\x0c\x82\x8a\x0a\x92\xde\x28\xa5\xc3\ +\xa2\x43\x1d\x65\x4a\xfd\xd2\x0f\x42\x95\x5e\xac\x28\x38\x05\x2b\ +\x38\x10\x65\xb0\xba\x8a\xe0\xb5\x69\x55\xbc\x0b\x32\x6b\xd5\xd8\ +\x74\x3a\x87\xb4\xc9\xd2\xa4\xc9\x7e\x4f\x78\x4f\x7c\xdf\xf2\xe6\ +\x4d\xf4\x83\x07\x4e\x9e\xfb\xf3\x3f\xcf\xf3\x9e\x73\x72\xd2\xd2\ +\x3e\xf3\x48\x4f\x05\x2f\x1a\x8d\xda\x7c\x3e\xdf\xe2\xae\xae\xae\ +\x9e\x54\xfc\xad\x7c\x52\x02\xec\xeb\xeb\xab\x03\xb4\xb5\xa8\xa8\ +\x28\x00\xe8\x55\xab\x84\xc9\x6c\xf6\x64\x0e\xa5\xa5\xa5\x5b\x01\ +\xfb\x09\xbf\x50\x24\x12\xf1\x24\xf3\x4f\x66\xb7\x04\x04\x6c\x31\ +\x20\x2d\x92\xc4\x6e\xb7\x97\xb6\xb4\xb4\x5c\x4a\x96\x30\x99\xdd\ +\x96\xc8\xa1\xa2\xa2\x62\x6e\x38\x1c\xbe\x41\x75\x13\x6d\x36\xdb\ +\x79\xfc\xa4\xba\xa5\xcc\x59\xe8\xb2\xa0\x41\xf4\xef\xa0\xb7\x99\ +\x57\x32\x32\x32\x4e\x36\x34\x34\xbc\x84\xb7\x1c\xa6\x80\xd5\xd5\ +\xd5\x93\x06\x07\x07\x6f\x12\x39\xdb\x32\x5a\x67\x04\x3c\x82\x78\ +\x16\x5a\xd3\xd4\xd4\xd4\xa3\x33\x19\x58\xd3\x96\xfa\xfd\xfe\x56\ +\xbc\xe2\x60\x5a\xb2\x56\xda\xba\x8a\x99\xdb\xdc\xdc\x6c\xcf\xc9\ +\xc9\x71\xc2\xcf\xc4\xb6\x0e\xdf\x53\xcc\x20\x95\xff\xc0\x27\x78\ +\x54\x52\x52\x52\x6e\x40\xd1\x09\x0e\x1d\x1f\x67\x33\x33\x33\x37\ +\x0f\x0c\x0c\xb8\x09\xfe\x11\x65\x2e\x89\x64\x61\x4b\xa1\xb7\xb3\ +\xb3\xb3\x2f\x03\x12\x45\x0e\x33\x7b\xb4\x79\xb6\xaa\xaa\x6a\x6a\ +\x20\x10\xa8\x43\xde\x86\xdf\x61\xb7\xdb\x3d\x8f\x6f\x5e\x85\x6c\ +\x18\xa6\x2d\x55\x1e\x04\x49\x15\x1b\x01\xde\x89\x2e\x4f\xd3\xdf\ +\x24\xd1\x22\xe5\x33\x92\xb2\xd1\x5c\x00\x1e\x67\x8e\x66\x61\x7b\ +\xe9\xc6\x7e\xbd\x8f\x25\xa0\x72\x24\xd8\x46\x9b\xd6\x22\xef\x62\ +\x01\xbf\xf2\x8d\x0e\x29\x9b\x19\x05\x74\x25\x8b\xbc\x80\xcd\x0e\ +\xe8\x4a\x40\xdb\xcd\xfc\x52\xd2\xd5\xd6\xd6\x9a\x7e\xf7\x91\xc1\ +\x74\xa7\x86\x19\x65\xa1\x0f\xda\xda\xda\xe2\x17\x4c\x4a\x15\x56\ +\x56\x56\x8e\xa2\xca\xc9\xfa\xa4\x1c\x99\x70\x56\x56\xd6\x7b\x16\ +\xf0\x9f\x5e\xaf\x78\xf4\x0e\xaf\xd7\x7b\x0f\x39\x8f\x2a\xb7\x53\ +\xe5\x51\xb1\xa5\xb4\xda\x60\x30\xb8\x6c\x68\x68\xe8\x95\x7e\xd2\ +\x32\x1f\x09\xfd\x54\x70\x87\x16\x7e\xa5\x80\x14\x05\x30\x0c\xd0\ +\x2f\x9a\xbc\x49\xe9\x53\x02\x54\xce\xd0\x7f\x48\x72\x54\x9b\xc7\ +\x91\xff\xa2\xf2\x05\xcc\x3f\xcd\x5a\xcd\x6e\x3f\x87\x6f\x00\xfb\ +\xb7\x74\x69\x8a\xe4\x31\x3d\x16\x62\x48\x30\x7a\x69\xcd\x76\x65\ +\xe3\x1b\x8d\x27\xe1\x1b\x12\x7e\x41\xb5\x5f\xa3\xbf\xa5\x6c\x42\ +\xeb\xeb\xeb\x07\xe9\xc0\x15\xd8\xe5\x74\x69\x21\xf4\x8f\x8f\xad\ +\x50\xf2\xc4\x47\x7a\x7a\xfa\x6c\xc0\x64\xd1\x72\x2e\xdf\xc4\x0d\ +\x46\xe6\x99\x26\x4e\x17\x1a\xab\x90\x55\xc8\x1d\xb9\x91\xe0\x8b\ +\x9c\x31\xb9\x35\x12\x8d\x7c\xaa\x7a\xaa\x19\x47\x0d\x0f\x0f\x67\ +\x0b\xcf\x51\x39\xc0\x51\xe9\x35\x0b\xd2\x3a\x90\x06\x8d\x6d\x3a\ +\x55\xe1\x0c\xc0\xb6\xa1\x5c\x6e\x16\xa4\xd3\xf9\xe1\x7b\xf1\x9b\ +\x00\xcd\x85\xbe\xa0\xca\x42\xc0\x76\xeb\x7c\x0c\x2c\x79\xc5\x57\ +\x00\xff\x15\x1a\x03\x64\x85\xb1\xff\x39\x8c\xdf\x88\x32\xd1\x20\ +\xe8\x31\x1d\x58\x82\xff\x1c\x7c\xee\xe2\x3f\x83\x2a\xeb\xa8\xda\ +\x99\x28\x06\xfd\x34\xcd\xd6\x2f\x34\x06\x58\x5c\x5c\xfc\x80\x64\ +\x03\xc8\x79\xb2\x11\x34\x87\x84\xa4\xb1\xb1\xf1\x1d\x95\xb9\x70\ +\x90\x8a\x57\x10\xfb\xb3\x99\xb3\x1c\x78\x16\xf5\x9d\xd8\x38\x46\ +\x37\x84\xc6\x00\x5d\x2e\xd7\x30\xfc\x75\xa6\x8d\xd5\x6f\x16\x43\ +\xb2\x01\xe8\x13\x7c\x76\x68\x7e\xbb\xca\xcb\xcb\x65\x97\x1a\x46\ +\x47\x47\xc7\x32\x14\xb2\x93\xef\xd3\x99\xd7\x62\x54\xdf\x30\x8d\ +\x95\xd4\x8b\x02\xba\x9b\x2a\xc7\x08\xaf\x06\x01\x72\x9b\x78\x99\ +\x7f\x2b\x9d\x50\x92\x34\x42\xce\x10\xd3\xcf\xc5\x73\x90\xb8\x59\ +\x7a\xbb\xe4\xd2\xe4\x63\x4a\x6f\xb8\xda\xd8\xad\x97\x71\x92\x16\ +\xec\x23\x99\x69\x9b\x54\x60\x32\x4a\xae\x4d\xe4\x3a\xc1\x62\xfb\ +\xa1\x33\xc9\x27\xed\xff\x50\xa1\x08\x7c\x17\x79\x2c\x49\x7b\xf7\ +\xb0\xda\xf5\xa2\xfb\x94\x51\x56\x56\x36\x1f\x90\x66\x2d\xb6\x46\ +\x81\x89\x1c\xbf\xc5\x45\xf0\x78\x3c\x2f\x0a\x0a\x0a\xde\xc2\xae\ +\x66\x65\x6b\x0a\x0b\x0b\x5f\x77\x77\x77\xcb\x9b\x25\xe5\x21\x0f\ +\x2f\xc0\x7e\x27\x60\x1c\x39\x8e\x8c\xfc\x3f\x34\x00\x4a\x56\x00\ +\x3c\xbc\x3f\x33\x08\x2a\x46\x14\xd0\x39\xc8\xb7\x78\x8f\xc6\xce\ +\x91\xf8\x98\x0d\xd9\xdd\xf8\xee\x23\xee\x30\xf6\xb1\x80\x9d\xe6\ +\x61\xe5\xee\xec\xec\x94\x8e\xc5\x87\xe1\x1b\xc6\xb5\x30\xac\x74\ +\x03\x5b\x59\xde\x36\x63\x99\x21\x12\xc8\x03\xe9\x02\xba\x6b\x0e\ +\x87\xc3\xc7\x26\x09\x3a\x9d\xce\x1c\xe4\x7c\xce\xa2\xfc\x39\xcb\ +\x27\x98\x84\x4f\x04\xd0\x03\x54\xb6\x17\x5e\xae\x3c\xc3\x48\x08\ +\x28\x5e\x3c\x15\xbf\x0c\x85\x42\x7b\x60\xb7\x30\xad\x0e\xb7\xb8\ +\xcb\x6d\xd2\xce\xb1\xda\xc1\x91\xb9\x1b\x53\x98\xfc\x58\x02\x2a\ +\x7f\xfe\x5a\x72\xb9\xed\xbf\x47\x5e\xc5\xcc\x67\xca\x5f\x8d\xbc\ +\x59\xbc\x54\xf3\x1c\x90\x76\xe8\x6f\x54\xf5\x10\xbd\xe5\xf8\x1f\ +\x26\x14\xf6\x13\xa6\x79\x97\x77\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x04\x4f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd7\x09\x08\x0c\x24\x01\x84\xbe\xe4\xfd\x00\x00\x00\x0f\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x69\x64\x20\x6c\x6f\x67\ +\x6f\x86\xc6\x77\xb9\x00\x00\x03\xc1\x49\x44\x41\x54\x38\xcb\xad\ +\x95\x4b\x68\x5c\x55\x18\xc7\x7f\xe7\xcc\xcd\x4c\x26\x89\xd5\x98\ +\x92\x96\x36\x4e\xd3\x18\xd1\xb6\x98\xfa\x98\x26\xa8\xf8\xc0\x42\ +\xa5\x49\x4b\x7d\x60\x75\xa3\x28\x2a\xa5\x10\x1f\x50\x95\x6e\x14\ +\xba\x91\x2e\x04\x17\x8a\xee\x7c\xe0\x83\x2a\x42\xab\xd0\x04\x52\ +\x92\x58\x8a\x8b\xf4\x11\xfb\x48\x66\x48\x86\x56\xdb\x8a\x64\xd3\ +\x36\x36\x93\xcc\xbd\x33\x77\xce\xdf\xc5\xcc\x24\x69\x1a\x5c\x68\ +\xff\xf0\x71\xee\xe2\xf0\x3f\xbf\xef\x3b\xdf\x77\x2e\x80\xfa\xfa\ +\x7b\x74\x23\x56\xe6\xab\xaf\xbf\x47\x37\x42\x65\xf3\x59\x19\x40\ +\x92\x18\x4d\x9f\x7e\x45\xc2\x97\x54\x90\x08\x24\x85\xc2\x15\x91\ +\x9c\x04\xc6\x60\x9d\xa3\x0a\xc9\x93\x51\x54\x52\x14\x88\x4b\x8a\ +\x6d\xb8\xaf\xe3\x63\x63\x4c\xc5\x0f\x00\xaf\xaf\xbf\x07\x4a\xee\ +\x01\x98\x40\x92\x2f\x91\x07\x15\x40\x61\xf0\xe7\x87\x5b\x9c\xff\ +\xfb\xb3\xb8\x20\x81\xad\xbd\x60\xe2\x77\xfe\xec\x2d\xdf\x31\x08\ +\x08\xc9\x48\x32\xe5\xcc\xd9\xb4\xb1\xf3\x7a\xe2\x33\xa3\x27\xb7\ +\x83\xc9\x39\xa7\x1c\x28\x90\x94\x0f\xce\xef\xd9\x12\x8f\x4e\xbc\ +\xd7\xbc\xfe\x25\x30\x11\x9c\x73\x9c\x3f\xf3\x3d\x33\xe1\xea\x8f\ +\xbc\xe5\x3b\x7e\x41\x8a\x3b\x29\xde\x91\x7c\xe0\x8b\x85\xc4\xb6\ +\x42\x0c\x26\x00\x05\x40\x20\xf0\x81\x5c\x71\x26\xf5\x5c\xcb\x3d\ +\x2f\xf0\x6b\xda\x27\x12\x0e\x11\x71\xc3\xac\x5a\xfb\x18\xca\xa5\ +\xb7\xc9\x29\x28\x65\x46\xa1\x42\x3c\x5f\xde\xa6\x8d\x9d\x48\x42\ +\x28\x3c\xf7\xf2\xab\x7d\x2e\xe7\xe3\xfc\x00\xe5\x03\x5c\xbe\xc0\ +\xc5\xe2\x1e\x7a\x5f\xdb\x45\xd3\x2d\xb5\xb4\x34\x66\x91\x35\x50\ +\x9c\x4e\x08\x42\x20\x94\x08\x81\x6b\xca\xb0\xb0\xc6\xa1\xc2\x22\ +\x0f\x25\x12\x98\x20\xc0\x06\x79\x4c\x21\xcf\x13\x4b\x37\x53\x18\ +\x8f\xf0\xc6\x27\x2b\x38\xf8\xc1\x34\x84\x79\x30\xf6\x0f\x4a\xc6\ +\x45\x49\x6e\xb1\x1a\xcf\x12\x1b\x21\x24\x70\x8e\x8b\x99\x0c\xe4\ +\x72\xa4\xee\x78\x90\xab\x26\x46\xc3\xd2\x95\x5c\xbe\xf4\x17\x83\ +\xa3\xb7\xd1\x14\x7c\x06\xd1\xc4\x3e\x24\x01\x32\xa6\x64\xbc\x90\ +\xd8\xce\x11\x97\x3a\xfc\xea\xe4\x64\xf9\x0e\x0c\x87\xe2\x09\x1a\ +\x9a\x56\x11\x4c\x4f\x51\xbf\x6c\x25\xdf\x1e\x48\x4d\x4f\xfb\xf5\ +\xef\x47\x56\xec\x3e\x50\xe2\x50\xd9\xff\xfa\x1a\xdb\xca\x49\x0e\ +\x45\x8c\xb1\xc8\x18\x96\x2c\x6d\x60\x6c\xfd\xe3\x9c\xae\x6f\x26\ +\xea\x19\xac\x42\x22\x11\xc3\xd9\xcb\xcd\xb1\x6f\x32\x6f\xe6\x05\ +\x11\x49\x16\x64\xe4\xb0\xff\x4a\x0c\x78\x78\x11\x46\xb2\x59\x4e\ +\x4d\x4d\x71\x30\xb6\x9c\x65\x89\x26\x94\x9f\x21\x56\x65\x71\xc1\ +\x0c\xb7\x36\x36\x7a\x63\x99\x8b\xef\x20\x3c\xc0\x13\x78\x47\x8f\ +\x9f\x48\x2c\x46\x3c\xdb\xc7\xbf\x9d\x3a\xf1\x24\xe0\x3b\xe7\x66\ +\x06\xcf\x5c\x59\x7d\xf0\xf0\xf8\xe7\xf1\x25\xf5\x91\xca\x9c\x1a\ +\x03\x9e\x35\xf8\x53\x57\xc2\xae\x47\x5a\xbb\xdb\x5b\xeb\x2e\x08\ +\xd5\xec\xec\xde\xf5\xe3\xfe\x1f\xf6\x71\x7b\x4b\xcb\xe2\x7d\x2c\ +\xb9\x98\x93\x62\x82\xea\x73\x13\xfe\xd3\xd1\x2a\x1b\xc9\x4f\x4f\ +\x12\x4c\x5d\x99\x8b\xec\x24\x9e\x67\xbd\xb3\x13\xfe\x56\x49\x31\ +\xa0\x0a\xe0\xa9\xed\xcf\xf3\xf5\x77\x5f\x2d\x4e\x7c\xe2\xe4\xb1\ +\x17\x4b\x23\xed\x7c\xa4\x40\xa8\xd4\xa3\xc2\x49\x32\x42\x16\xc9\ +\x93\xa8\x12\x8a\x22\x55\x03\xd5\x3b\x5f\x7f\xfb\xcb\xa1\x23\x87\ +\xe9\x78\xf8\x51\x9c\x73\xeb\x46\x86\x8f\x8f\x01\xc5\xf9\x93\x17\ +\x2b\x6f\x8e\x03\x35\x88\x1a\x50\xad\x50\x9d\xa4\x1a\xa0\x12\x71\ +\x20\x2e\xa8\xa6\x14\xa4\xd3\x69\x86\x8e\x1c\xc6\x5a\x3b\xda\xba\ +\x66\xed\xbd\x15\xea\xff\xf5\x5c\xb6\x25\xdb\x25\x49\xe3\xe3\x63\ +\xca\x66\xb3\x6a\x4b\xb6\xab\x2d\xd9\xbe\xc6\xf6\xf5\xf7\x60\x8c\ +\xe1\xd0\x40\xef\x7f\x5a\x2b\xaa\xab\xbb\x89\x4c\x66\x8c\xde\x9f\ +\xf6\x03\xa4\x0c\x50\x0f\xdc\x5c\x8e\x5a\xe6\x52\x8c\x02\x16\x70\ +\xb3\x13\x33\xa7\x22\x10\x00\xf9\xb6\x64\x7b\xff\xa9\x63\x43\x00\ +\x0c\x0c\x0c\xf0\xd6\xbb\xbb\x33\xc6\x98\x6d\x1e\x70\x15\xc8\x01\ +\x97\x00\xaf\x7c\xd3\xd1\xf2\xb7\x2d\xff\x72\xae\xfd\xed\x94\x0e\ +\x2b\x56\x5e\xb6\xf5\x1b\x3a\x78\x66\x6b\x17\xdd\xdd\xdd\x7f\xdf\ +\x7f\xf7\xba\xf4\xf0\x48\x6a\xaf\x57\xde\x50\xa4\xf4\x54\x32\x8f\ +\xce\x56\xee\xa0\xd2\x3d\x0b\x8c\x2b\xd9\x70\xfa\xf8\x51\x0b\x1c\ +\x48\x26\x93\x5b\x3a\x3b\x3b\xef\x1a\x1e\x49\x35\x18\x6e\x90\xda\ +\x92\xed\x5d\xc0\xa7\x65\xc0\xbd\xff\x00\x7c\x02\xcd\x92\x88\x3c\ +\x0a\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x02\xa3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x3c\x00\x00\x00\x3c\x08\x06\x00\x00\x00\x3a\xfc\xd9\x72\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ \x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe2\x03\x02\x04\x32\x2f\x3b\x59\x63\x86\x00\x00\x00\x19\x74\x45\ +\xe2\x03\x02\x04\x34\x31\x97\x0c\xf9\x63\x00\x00\x00\x19\x74\x45\ \x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ \x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x02\x7a\x49\x44\x41\x54\x68\xde\xed\xd8\x4b\xa8\x8d\x6b\x1c\ -\xc7\xf1\xcf\xc6\xce\xe6\xd8\x25\xb9\x0d\x44\x88\x72\xa2\x30\xc1\ -\x84\x5c\x42\x71\x9c\x11\x29\x45\x06\x88\x94\x5c\x06\xe4\x32\x31\ -\x33\x32\xa0\x64\xe2\x96\x08\x21\x85\x93\xd2\x49\x92\x94\x5b\x29\ -\xb9\x76\x8a\x48\x31\x71\x89\xe3\xb2\x2d\x93\x47\xbd\xad\xde\x77\ -\xaf\xb5\x77\x6b\x6f\x7b\x6f\xff\x6f\xad\xc9\xfb\xfe\xff\xbf\xe7\ -\xf9\x3d\x97\xff\xf3\xac\x97\x20\x08\x82\x20\x08\x82\x20\x08\x82\ -\x20\x08\x82\xa0\x6d\x18\x8b\x26\x94\xb0\xfc\x77\x30\xfc\x4f\x32\ -\x7b\x17\xdd\xbb\xba\xd9\x39\xc9\x6c\x09\xb3\xba\xba\xd9\xee\xb8\ -\x97\xcc\x9e\xef\xcc\x46\x86\x60\x0b\xea\x2a\xc4\xad\x48\x66\x9b\ -\xf0\x67\xe6\xf9\x06\x8c\xec\xe8\x26\xbb\x61\x36\x4e\xe3\x1b\xee\ -\x54\x88\x6f\xc4\xab\x64\x78\x5f\x99\xce\x87\xa4\x71\x18\x63\x3a\ -\x9a\xd1\xfe\xd8\x84\x27\x99\xbd\x58\xc2\xa1\x0a\x79\x3b\x53\xdc\ -\x7b\x0c\xca\x3c\x1f\x55\xa6\xf3\x1d\x27\x30\xfe\x57\x9a\xac\xc3\ -\x94\x34\x03\xff\x97\x75\xb0\x84\xd7\xf8\xbb\xc2\x92\xff\x98\x62\ -\xb7\x96\xbd\x1b\x8a\x2b\x39\x9a\x25\x9c\xc3\xa4\xf6\x34\xda\x88\ -\x55\xe9\xf8\xc8\xeb\xd0\x4d\x2c\x43\x43\x05\x9d\x43\x29\xfe\x39\ -\x7a\x17\x0c\xe8\x4c\x5c\x2b\x68\xe7\x12\xa6\xb6\xa5\xd1\x71\xd8\ -\x8b\x77\x39\x8d\x7f\xc1\x51\x4c\xae\xa2\x48\xc1\xc4\xb4\x4c\x4b\ -\x58\x5a\xc5\x4a\x9a\x83\x1b\x05\xc6\xaf\xa6\xba\x51\x57\x4b\xb3\ -\x97\x0a\x1a\x7b\x89\x1d\x18\xdc\xc2\xad\xf0\x6f\xca\xbf\x9d\x0a\ -\x54\xb5\x79\xf3\x70\xab\xa0\x2f\x67\x6a\x65\x76\x40\x8e\xf8\x63\ -\x2c\x46\x7d\x2b\xf4\x16\x64\x74\xa6\xb7\xb2\x76\xac\xcb\xe9\xd3\ -\xa9\x5a\x19\x9e\x95\x23\xfe\x1d\xc7\x5a\x71\x5c\xd4\xe3\x41\xa6\ -\xf8\xb4\xd4\xe8\x4c\x9c\xcd\xdc\xb9\xb3\xbf\xed\xb5\x32\xfc\x07\ -\x36\xa6\xe5\x5b\xde\x48\x13\x8e\xa4\x63\xa4\x1a\xd6\xa6\xbc\x6f\ -\x2d\x18\xac\x46\xac\xc1\xfd\x82\xa5\x7c\x1b\x2b\xd1\xa7\xd6\x45\ -\xab\x01\xab\xf1\x5f\x81\xf1\x03\x18\xd1\x4c\x7e\x5f\xbc\x49\xf1\ -\x7b\xab\x68\x6f\x34\x76\xe3\x6d\x4e\x7b\x9f\x70\x30\x1d\x4f\x75\ -\xda\x98\xfa\x74\xec\x3c\xc8\xe9\xc8\x57\xec\xc7\xb0\x9c\xbc\x5d\ -\x29\xe6\x1d\x06\x36\xa3\x3f\x17\x17\x0b\x66\xf3\x21\xd6\xa3\xdf\ -\xaf\xba\xf4\x2f\x2a\x38\x8f\xaf\x96\xc5\x0e\xc7\xe7\xf4\x6e\x73\ -\x33\x9a\x3d\xd3\xa0\x95\x0f\xe2\x49\xcc\x68\x8f\xd9\xac\xb6\x98\ -\xcc\xc7\xf5\x4c\x27\xf7\x94\xc5\x1c\x4f\xcf\x9f\xa1\x57\x33\x5a\ -\x13\x32\x1a\xcf\xb0\xad\x85\x47\x5e\xbb\x1b\x9f\x81\xcb\xe9\x1f\ -\xd0\x4f\x26\x67\x4c\x2c\xa9\xa0\xb1\x14\x17\xf0\x57\x67\xfb\x08\ -\xd0\x23\x33\x08\xd7\x32\x57\xce\x6e\x55\xe6\x75\x5a\x16\x66\x66\ -\x77\x5a\x57\xff\x92\xd1\x13\x4f\x6b\x7d\xed\xeb\xc8\x6c\xcc\x54\ -\xd9\xd1\x1d\x71\xbf\xd5\x9a\x17\xe9\xa2\xf2\x02\x8f\x04\x41\x10\ -\x04\x41\x10\x04\x41\x10\x04\x41\x10\x04\x6d\xc8\x0f\xf0\x6b\xdf\ -\x7c\xd8\x29\x0f\xa9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ -\x82\ -\x00\x00\x04\x4b\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ -\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd2\x01\x07\x0b\x04\x27\xfe\xa6\x99\x03\x00\x00\x03\xc8\x49\x44\ -\x41\x54\x78\xda\xb5\x96\xc1\x4b\x1c\x67\x14\xc0\x7f\xdf\xb7\x3a\ -\x8b\xee\xae\x6e\xdd\x55\x10\xa3\x2b\x9a\x43\x2f\x5a\x0d\x7a\x70\ -\x84\x28\xe8\x65\x23\xae\x04\xeb\x51\x3d\xd4\xc3\x5e\x52\x30\x37\ -\xff\x02\x0f\x42\xc0\xff\xa0\x3d\x84\x1e\x96\x88\x94\x56\xd0\x9e\ -\x84\x44\xa3\xd2\x9a\x88\x20\xba\x4a\x52\xc1\x48\x58\x11\x5a\x75\ -\x67\x66\x67\xbe\x99\x5e\xdc\xa9\x6d\xa3\x96\x62\x3f\x78\xf0\x78\ -\xf3\x78\xbf\xef\xbd\xc7\x7b\xdf\xc0\xff\x7c\xc4\x75\x1f\x92\xc9\ -\x64\x2a\x97\xcb\x8d\x58\x96\xa5\x3b\x8e\xd3\xa0\x94\x02\x38\x04\ -\x56\x2a\x2b\x2b\x33\x1b\x1b\x1b\xdf\xff\x27\xc0\xe8\xe8\xe8\x83\ -\xb7\x6f\xdf\x3e\x93\x52\xf6\xf4\xf5\xf5\xd1\xda\xda\x4a\x2c\x16\ -\xc3\x75\x5d\x72\xb9\x1c\xeb\xeb\xeb\x2c\x2e\x2e\xe2\x38\xce\x72\ -\x5d\x5d\xdd\xd3\xb5\xb5\xb5\x5f\xfe\x35\xa0\xb7\xb7\x37\x75\x7c\ -\x7c\xfc\x42\xd7\xf5\x92\xe1\xe1\x61\x6a\x6a\x6a\x28\x2d\x2d\x45\ -\x08\x81\xeb\xba\xd8\xb6\x8d\x69\x9a\x7c\xf8\xf0\x81\xe7\xcf\x9f\ -\xb3\xba\xba\xea\x44\xa3\xd1\xe1\x83\x83\x83\x6b\xb3\x09\x14\x95\ -\xa1\xa1\xa1\x07\xd9\x6c\xf6\xa7\xc7\x8f\x1f\x97\x8c\x8f\x8f\x13\ -\x8f\xc7\x89\x44\x22\x54\x55\x55\x11\x8f\xc7\xa9\xae\xae\x26\x16\ -\x8b\x11\x0e\x87\x09\x87\xc3\xb4\xb4\xb4\x60\x18\x86\x7c\xf3\xe6\ -\xcd\xc8\xbd\x7b\xf7\x7e\x3c\x3d\x3d\x3d\xbe\x11\x50\x28\x14\xbe\ -\xd3\x75\xbd\x69\x62\x62\x82\x70\x38\x4c\x34\x1a\xa5\xba\xba\x9a\ -\x70\x38\x4c\x30\x18\x24\x10\x08\x10\x08\x04\x08\x06\x83\x44\x22\ -\x11\x42\xa1\x10\xcd\xcd\xcd\xec\xed\xed\xc9\xfd\xfd\xfd\xcf\x2d\ -\xcb\xfa\xe6\x53\x00\x09\xd0\xd6\xd6\x96\x72\x5d\xb7\x67\x6c\x6c\ -\x8c\xf2\xf2\x72\xa2\xd1\x28\xf1\x78\x1c\x4d\xd3\x08\x04\x02\x3c\ -\x7a\xf4\x88\x81\x81\x01\x1f\x22\xa5\x24\x14\x0a\xd1\xd4\xd4\x44\ -\x3a\x9d\xc6\xf3\xbc\x9e\xaa\xaa\xaa\xd4\xb5\x80\x5c\x2e\x37\x92\ -\x4a\xa5\xa8\xad\xad\x25\x14\x0a\x51\x51\x51\x81\x10\x02\x29\x25\ -\x42\xfc\xd9\x26\x21\x04\x42\x08\x1f\x22\xa5\xa4\xad\xad\x8d\x64\ -\x32\x89\x61\x18\x23\xd7\x02\x2c\xcb\xd2\xbb\xbb\xbb\xd1\x34\x8d\ -\x48\x24\x82\x10\x02\xcf\xf3\xf0\x3c\xef\x2f\xce\x45\xdb\x55\xbb\ -\x10\x82\xfe\xfe\x7e\x94\x52\xfa\xa7\x00\x25\x00\x4a\xa9\x86\xfa\ -\xfa\x7a\x82\xc1\xa0\x1f\x7c\x60\x60\xc0\x0f\x70\x65\x36\x7c\x40\ -\x26\x93\xf1\xf5\xfb\xf7\xef\x03\x34\xdc\x04\x40\x08\x41\x49\x49\ -\x09\x4a\x29\x94\x52\x78\x9e\xe7\xc3\x3e\x95\x81\x52\x0a\xdb\xb6\ -\x71\x1c\x07\xdb\xb6\xff\x91\xed\xdf\x01\x87\xef\xde\xbd\x6b\xaa\ -\xab\xab\xc3\xb6\x6d\x84\x10\xcc\xcd\xcd\xf9\xb5\x1e\x1c\x1c\x04\ -\x60\x7e\x7e\x1e\xc7\x71\x50\x4a\x61\x9a\x26\xb6\x6d\x53\x28\x14\ -\xd8\xdd\xdd\x45\x29\x75\x78\x6d\x0f\x3c\xcf\x5b\x59\x5a\x5a\xc2\ -\x34\x4d\x0a\x85\x02\x96\x65\x51\x28\x14\x7c\xdd\x75\x5d\x5c\xd7\ -\xf5\x6d\xa6\x69\x62\x18\x06\x96\x65\x61\x59\x16\x8b\x8b\x8b\xb8\ -\xae\xbb\x72\x2d\x40\x4a\x99\xc9\x64\x32\x64\xb3\x59\x0c\xc3\x20\ -\x9f\xcf\x63\x18\x86\x2f\x45\x40\x3e\x9f\xf7\xc5\xb2\x2c\x0c\xc3\ -\x60\x67\x67\x87\x85\x85\x05\x80\xcc\x4d\xab\x22\xa1\x69\xda\xb7\ -\x9d\x9d\x9d\x3d\xb3\xb3\xb3\x68\x9a\x86\x94\x12\x4d\xd3\xfc\x3e\ -\x08\x21\xfc\xfe\x14\x57\xc6\xc5\xc5\x05\x93\x93\x93\x6c\x6d\x6d\ -\x2d\x03\xbd\x37\x4d\xf2\x6f\x52\xca\xad\xa3\xa3\xa3\xaf\x3e\x7e\ -\xfc\x28\xdb\xdb\xdb\xfd\xe6\x15\xcb\x65\x18\x86\x5f\x9e\x7c\x3e\ -\xcf\xd9\xd9\x19\x33\x33\x33\xac\xae\xae\x3a\xc0\xd7\x40\xf6\xc6\ -\x55\xe1\xba\xae\x26\x84\x58\xde\xdd\xdd\x1d\xd9\xdc\xdc\x94\xf5\ -\xf5\xf5\x94\x95\x95\xf9\xc1\x8b\xf5\x3e\x3f\x3f\x67\x7b\x7b\x9b\ -\xe9\xe9\x69\x5e\xbf\x7e\xed\x00\x79\xe0\x4b\xe0\x14\xf8\xf9\xb6\ -\x75\x9d\x00\x62\x42\x88\x67\x52\xca\x9e\x87\x0f\x1f\xd2\xd5\xd5\ -\x45\x63\x63\x23\x00\x07\x07\x07\xbc\x7a\xf5\x8a\x97\x2f\x5f\x02\ -\x2c\x03\x4f\x81\x17\xc0\x67\x97\x97\x3d\x01\x9e\x00\x3f\xdc\xf6\ -\xe0\x24\x80\x2f\x80\x11\x40\xbf\x32\x44\x87\xc0\xca\x65\x43\x4f\ -\x80\x23\x80\xc6\xc6\xc6\x6d\x40\xbc\x7f\xff\x5e\x02\x36\x90\xbc\ -\xf4\xbb\xf5\x24\x6e\x90\xab\x3e\x27\xe9\x74\xda\xee\xe8\xe8\x30\ -\x80\xdf\x2f\xcb\x96\xb8\xcb\xa7\x37\x01\x9c\x4d\x4d\x4d\x29\x5d\ -\xd7\x1d\xe0\x0c\x38\xbf\x4b\x48\x31\x2b\x33\x9d\x4e\xdb\x89\x44\ -\xc2\xbe\x6b\xc0\x55\xc8\x31\xa0\x80\x1e\x20\x21\xee\xf8\x2f\xe5\ -\xea\x8d\x7f\x05\xf8\x03\xd8\xcb\xf0\xd4\x8e\x80\x5e\x37\x00\x00\ -\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x02\x0b\x49\x44\x41\x54\x68\xde\xed\x98\xcd\x4b\x94\x51\x14\ +\xc6\x7f\x16\x96\x7d\x2c\xa2\x55\x1b\x3f\x90\xc0\x45\x60\x21\x6e\ +\x5b\x04\x15\x45\x14\x06\x23\xae\x5a\xbb\x90\x72\x21\x6d\x4a\xa5\ +\x76\x41\x7f\x41\xae\xda\x88\x91\xd2\x22\x17\x66\x10\xa2\x92\x50\ +\x18\x45\x05\x81\x04\xd9\x2a\x22\xa5\x60\x48\xc4\x84\x69\x73\x16\ +\x0f\x2f\x33\x13\xfa\x5e\x21\xc6\xe7\x07\x97\xfb\xce\x73\xce\x7d\ +\xee\xdc\x97\x73\xef\x65\x06\x8c\x31\xc6\x18\x63\x8c\x31\xc6\x18\ +\x63\x8c\x49\x4e\x0f\x50\x8a\x76\x26\xb5\xf9\x9e\xff\x70\xc1\xed\ +\xf2\xfc\x61\x37\x2d\xf8\x1b\xb0\xb2\x9b\x16\xfc\x7e\x27\xcc\xb7\ +\xb2\xe0\x59\xd9\x5b\xa7\x32\xb1\xe3\xc0\x9f\x88\x7d\x02\xf6\x49\ +\xac\x1e\xb8\x01\xbc\x04\x7e\x46\x9b\x03\x7a\xcb\xcc\x7f\x04\x68\ +\xaa\x50\xce\x5b\xf1\x49\xc2\x7d\x59\x70\x4f\x26\xf6\x48\x62\x67\ +\x45\xef\x00\xde\x4a\x2c\xdb\x9e\x03\x7b\x25\xff\xb4\xc4\xae\xe5\ +\xf0\x49\x42\xb7\x4c\x30\x2c\x7a\xa7\xe8\xe3\xa2\x9f\x00\xd6\x24\ +\x36\x0d\xdc\x01\x1e\x02\x9b\xa2\xdf\x94\x31\x7d\xa2\x9f\xcc\xe1\ +\x93\x84\x66\x31\x1f\x0d\xad\x0e\x78\x11\xda\x9a\x94\xe3\x81\x28\ +\xc9\x12\xb0\x01\x5c\xce\x78\x15\xc4\xeb\xb5\xe8\x0f\x42\xdb\x04\ +\xf6\xe7\xf0\x49\x42\x1d\xf0\x3d\xcc\x17\x43\xbb\x20\x13\xde\x92\ +\xdc\xeb\xa2\xdf\xae\xe0\xb5\x1a\xf1\xdf\xa2\x2f\x84\xf6\x31\xa7\ +\x4f\x32\x26\xc3\xbc\x18\x7b\xe6\x5d\x7c\xfe\x0c\x34\x48\xde\x94\ +\x7c\xd1\xd6\x32\x3e\xf5\x52\xa6\x5f\xe5\x00\x2d\x86\x36\x96\xc3\ +\x27\xe9\xb5\xf4\x2a\xfa\xc3\xc0\x80\xec\xb3\x7e\x60\x5d\xf2\x8e\ +\xc9\x73\xb1\x8c\xcf\x95\x28\x57\x80\x67\xd1\xb7\x84\xaf\x5e\x49\ +\xdb\xf1\x49\xca\x79\x79\xe3\x1b\xd1\x3f\x2d\x93\x37\x56\xa5\x14\ +\x3b\x81\x1f\x11\x5b\x05\x1a\x43\xef\x92\x31\x97\x72\xf8\x24\xe5\ +\x68\xe6\x3a\x58\xaf\x50\x6a\x85\x4c\xde\x13\x60\x08\x78\x2c\xf7\ +\x75\x09\xb8\x28\x63\x86\x45\x6f\xca\xe1\x93\x9c\x25\x99\xe8\x6e\ +\x95\xbc\x91\x2a\xf7\xe6\x97\x38\xf0\x94\x89\x88\xfd\x8a\xc3\x68\ +\xbb\x3e\x49\x69\x00\x96\x63\xb2\x65\xe0\xe0\x3f\x4e\xf5\x02\x30\ +\x13\x25\x57\x04\xde\x00\x83\xc0\xa1\x2a\x2f\x72\x3e\xa7\x4f\x52\ +\x06\xe5\xed\x5e\xad\xf5\xdf\xa9\xcd\x72\x05\x4c\x67\xca\xae\x26\ +\x99\x90\xd3\xb9\xad\xd6\x17\x7b\x4e\x4a\xf9\x9e\xff\x94\x31\xc6\ +\x18\x63\x8c\x31\xc6\x18\x63\x8c\x31\xc6\x98\x54\xfc\x05\x94\x34\ +\xe4\xeb\x87\xd7\x3b\x14\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ +\x60\x82\ \x00\x00\xe7\x64\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -4047,94 +5002,4234 @@ qt_resource_data = b"\ \xdb\x7a\x7d\xef\x63\xb7\x4e\xaf\xf8\x4b\x1e\xa9\x77\xff\x03\xbd\ \xa0\x7f\xb0\xc0\x59\x80\x24\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ -\x00\x00\x05\x55\ +\x00\x00\x03\x12\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x3c\x00\x00\x00\x3c\x08\x06\x00\x00\x00\x3a\xfc\xd9\x72\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ +\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xe2\x03\x02\x04\x32\x2f\x3b\x59\x63\x86\x00\x00\x00\x19\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ +\x00\x02\x7a\x49\x44\x41\x54\x68\xde\xed\xd8\x4b\xa8\x8d\x6b\x1c\ +\xc7\xf1\xcf\xc6\xce\xe6\xd8\x25\xb9\x0d\x44\x88\x72\xa2\x30\xc1\ +\x84\x5c\x42\x71\x9c\x11\x29\x45\x06\x88\x94\x5c\x06\xe4\x32\x31\ +\x33\x32\xa0\x64\xe2\x96\x08\x21\x85\x93\xd2\x49\x92\x94\x5b\x29\ +\xb9\x76\x8a\x48\x31\x71\x89\xe3\xb2\x2d\x93\x47\xbd\xad\xde\x77\ +\xaf\xb5\x77\x6b\x6f\x7b\x6f\xff\x6f\xad\xc9\xfb\xfe\xff\xbf\xe7\ +\xf9\x3d\x97\xff\xf3\xac\x97\x20\x08\x82\x20\x08\x82\x20\x08\x82\ +\x20\x08\x82\xa0\x6d\x18\x8b\x26\x94\xb0\xfc\x77\x30\xfc\x4f\x32\ +\x7b\x17\xdd\xbb\xba\xd9\x39\xc9\x6c\x09\xb3\xba\xba\xd9\xee\xb8\ +\x97\xcc\x9e\xef\xcc\x46\x86\x60\x0b\xea\x2a\xc4\xad\x48\x66\x9b\ +\xf0\x67\xe6\xf9\x06\x8c\xec\xe8\x26\xbb\x61\x36\x4e\xe3\x1b\xee\ +\x54\x88\x6f\xc4\xab\x64\x78\x5f\x99\xce\x87\xa4\x71\x18\x63\x3a\ +\x9a\xd1\xfe\xd8\x84\x27\x99\xbd\x58\xc2\xa1\x0a\x79\x3b\x53\xdc\ +\x7b\x0c\xca\x3c\x1f\x55\xa6\xf3\x1d\x27\x30\xfe\x57\x9a\xac\xc3\ +\x94\x34\x03\xff\x97\x75\xb0\x84\xd7\xf8\xbb\xc2\x92\xff\x98\x62\ +\xb7\x96\xbd\x1b\x8a\x2b\x39\x9a\x25\x9c\xc3\xa4\xf6\x34\xda\x88\ +\x55\xe9\xf8\xc8\xeb\xd0\x4d\x2c\x43\x43\x05\x9d\x43\x29\xfe\x39\ +\x7a\x17\x0c\xe8\x4c\x5c\x2b\x68\xe7\x12\xa6\xb6\xa5\xd1\x71\xd8\ +\x8b\x77\x39\x8d\x7f\xc1\x51\x4c\xae\xa2\x48\xc1\xc4\xb4\x4c\x4b\ +\x58\x5a\xc5\x4a\x9a\x83\x1b\x05\xc6\xaf\xa6\xba\x51\x57\x4b\xb3\ +\x97\x0a\x1a\x7b\x89\x1d\x18\xdc\xc2\xad\xf0\x6f\xca\xbf\x9d\x0a\ +\x54\xb5\x79\xf3\x70\xab\xa0\x2f\x67\x6a\x65\x76\x40\x8e\xf8\x63\ +\x2c\x46\x7d\x2b\xf4\x16\x64\x74\xa6\xb7\xb2\x76\xac\xcb\xe9\xd3\ +\xa9\x5a\x19\x9e\x95\x23\xfe\x1d\xc7\x5a\x71\x5c\xd4\xe3\x41\xa6\ +\xf8\xb4\xd4\xe8\x4c\x9c\xcd\xdc\xb9\xb3\xbf\xed\xb5\x32\xfc\x07\ +\x36\xa6\xe5\x5b\xde\x48\x13\x8e\xa4\x63\xa4\x1a\xd6\xa6\xbc\x6f\ +\x2d\x18\xac\x46\xac\xc1\xfd\x82\xa5\x7c\x1b\x2b\xd1\xa7\xd6\x45\ +\xab\x01\xab\xf1\x5f\x81\xf1\x03\x18\xd1\x4c\x7e\x5f\xbc\x49\xf1\ +\x7b\xab\x68\x6f\x34\x76\xe3\x6d\x4e\x7b\x9f\x70\x30\x1d\x4f\x75\ +\xda\x98\xfa\x74\xec\x3c\xc8\xe9\xc8\x57\xec\xc7\xb0\x9c\xbc\x5d\ +\x29\xe6\x1d\x06\x36\xa3\x3f\x17\x17\x0b\x66\xf3\x21\xd6\xa3\xdf\ +\xaf\xba\xf4\x2f\x2a\x38\x8f\xaf\x96\xc5\x0e\xc7\xe7\xf4\x6e\x73\ +\x33\x9a\x3d\xd3\xa0\x95\x0f\xe2\x49\xcc\x68\x8f\xd9\xac\xb6\x98\ +\xcc\xc7\xf5\x4c\x27\xf7\x94\xc5\x1c\x4f\xcf\x9f\xa1\x57\x33\x5a\ +\x13\x32\x1a\xcf\xb0\xad\x85\x47\x5e\xbb\x1b\x9f\x81\xcb\xe9\x1f\ +\xd0\x4f\x26\x67\x4c\x2c\xa9\xa0\xb1\x14\x17\xf0\x57\x67\xfb\x08\ +\xd0\x23\x33\x08\xd7\x32\x57\xce\x6e\x55\xe6\x75\x5a\x16\x66\x66\ +\x77\x5a\x57\xff\x92\xd1\x13\x4f\x6b\x7d\xed\xeb\xc8\x6c\xcc\x54\ +\xd9\xd1\x1d\x71\xbf\xd5\x9a\x17\xe9\xa2\xf2\x02\x8f\x04\x41\x10\ +\x04\x41\x10\x04\x41\x10\x04\x41\x10\x04\x6d\xc8\x0f\xf0\x6b\xdf\ +\x7c\xd8\x29\x0f\xa9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x02\x86\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ -\xbb\x7f\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ \x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd3\x01\x09\x0a\x09\x03\x5d\x4a\xcd\x3e\x00\x00\x04\xd2\x49\x44\ -\x41\x54\x78\xda\xbd\x94\x6f\x48\x95\x57\x1c\xc7\x3f\xcf\xf3\xdc\ -\xeb\x9d\xde\xeb\xbc\x7a\xef\x75\xa0\xd9\x35\xbd\xb0\x69\xea\xa2\ -\x49\x84\x5b\x28\x1a\x43\x73\x68\x21\xad\x26\xfd\x31\x26\x24\x1b\ -\xad\x16\xc4\x10\xc6\x20\x88\xb9\x37\x0e\xdf\xd5\x5e\x8c\xc5\x20\ -\x46\x6b\x25\x73\xf6\x42\x25\xb6\x4c\x2c\xff\x34\x72\x7a\x85\xea\ -\x8a\x9a\x7f\xe1\xfa\x87\xf2\xa6\xf7\xde\xe7\x79\xce\xb3\x17\x99\ -\x69\xf3\x4a\xbd\xd9\x0f\x0e\xe7\x70\x7e\xf0\xfb\x9c\xef\x39\xbf\ -\xf3\x95\x88\x10\x25\x25\x25\x65\x7e\xbf\x7f\x7f\x28\x14\xca\xd3\ -\x34\x6d\xb3\xae\xeb\x00\x8f\x80\xce\xb8\xb8\xb8\x2b\x3d\x3d\x3d\ -\x4d\xbc\x42\x48\x2f\x6f\x1c\x3e\x7c\x78\x7b\x5f\x5f\xdf\xf7\xb2\ -\x2c\xe7\x17\x15\x15\x91\x93\x93\x83\xc3\xe1\x40\x08\x81\xdf\xef\ -\xa7\xbb\xbb\x9b\x96\x96\x16\x34\x4d\xbb\x99\x9c\x9c\x7c\xba\xab\ -\xab\xeb\xef\x57\x06\x14\x14\x14\x94\x4d\x4d\x4d\x5d\xcd\xcb\xcb\ -\x33\x55\x54\x54\x90\x98\x98\x88\xd9\x6c\x46\x92\x24\x84\x10\xa8\ -\xaa\x4a\x30\x18\x64\x72\x72\x92\x4b\x97\x2e\x71\xfb\xf6\x6d\xcd\ -\x6e\xb7\x57\x0c\x0d\x0d\x45\x54\xa3\x3c\x5f\x94\x97\x97\x6f\x7f\ -\xf8\xf0\x61\xdb\xbe\x7d\xfb\x4c\x47\x8f\x1e\xc5\xe9\x74\x12\x1b\ -\x1b\x4b\x42\x42\x02\x4e\xa7\x13\x97\xcb\x85\xc3\xe1\xc0\x66\xb3\ -\x61\xb3\xd9\xc8\xce\xce\x66\x69\x69\x49\xbe\x77\xef\xde\xfe\x4d\ -\x9b\x36\x5d\x9f\x9b\x9b\x9b\xda\x10\x10\x0e\x87\x7f\xc9\xcb\xcb\ -\x4b\xab\xae\xae\xc6\x66\xb3\x61\xb7\xdb\x71\xb9\x5c\xd8\x6c\x36\ -\x2c\x16\x0b\x8a\xa2\xa0\x28\x0a\x16\x8b\x85\xd8\xd8\x58\xac\x56\ -\x2b\xe9\xe9\xe9\x3c\x78\xf0\x40\xf6\xf9\x7c\xef\x84\x42\xa1\x8b\ -\xeb\x01\x64\x80\x6d\xdb\xb6\x95\x09\x21\xf2\x8f\x1c\x39\x42\x4c\ -\x4c\x0c\x76\xbb\x1d\xa7\xd3\x49\x54\x54\x14\x8a\xa2\x20\xcb\x32\ -\xb2\x2c\xaf\x40\x64\x59\xc6\x6a\xb5\x92\x96\x96\x46\x4d\x4d\x0d\ -\x86\x61\xe4\x27\x24\x24\x94\x45\x54\x60\x18\xc6\xd7\x85\x85\x85\ -\x39\x19\x19\x19\x68\x9a\x86\x10\x82\xc7\x8f\x1f\xa3\x28\x0a\x31\ -\x31\x31\x48\xd2\x8b\xa7\x32\x0c\x03\x00\x21\x04\xba\xae\xe3\x70\ -\x38\x18\x1b\x1b\xc3\xeb\xf5\xea\x9a\xa6\x35\xae\xa7\xa0\x22\x1c\ -\x0e\x1f\x2a\x2d\x2d\xc5\xe3\xf1\x90\x9d\x9d\x4d\x7a\x7a\x3a\x6d\ -\xdd\xf7\x39\x74\xa6\x81\x89\x89\x89\x95\xa2\x86\x61\xb0\xf7\xb3\ -\x73\xfc\x78\xa5\xf5\x45\x97\x48\x12\xbb\x77\xef\x46\xd7\xf5\xbc\ -\x48\x57\xf4\x9b\xa2\x28\xa4\xa4\xa4\x60\xb1\x58\xb8\x3f\x3c\xc1\ -\x07\x9f\x7c\xc5\xc5\x6b\x37\x78\x3b\x2d\x19\xa7\xd3\x89\xcf\xe7\ -\x43\x08\x81\x61\x18\xec\xc9\xcf\xe5\xa7\x6b\x37\x28\xaa\xfa\x86\ -\xfb\xc3\xcf\xe0\x1e\x8f\x07\x60\x73\xa4\x36\x35\xe2\xe3\xe3\x69\ -\x6e\x6e\xe6\xfc\xd5\x0e\xbc\xbe\x31\x5e\x27\x72\x33\xb7\xb0\xbf\ -\x30\x9b\xd2\xd2\x52\x4d\x55\x55\xf3\xcb\x79\x13\x40\x52\x52\x12\ -\xc3\xc3\xc3\x9c\xfb\xe2\x00\x23\x93\x33\x7c\xf9\xdd\xb3\x86\xf8\ -\xa8\x20\x97\xda\x9a\x8f\x51\x55\x95\x40\x20\x80\xdf\xef\xe7\xcf\ -\xbb\x3e\x7e\xfe\xfd\x2f\x00\xbe\x3d\x79\x80\x24\xe7\x9b\xb4\xb7\ -\xb7\xa3\xeb\xfa\xa3\x88\x5d\xb4\x63\xc7\x0e\x5a\x5b\x5b\x09\x06\ -\x83\xa4\x26\x39\x69\x3e\x5f\xcb\x89\xca\x62\x7a\xfa\x7d\x84\x42\ -\x21\x34\x4d\x43\x96\x65\xec\x76\x3b\xbf\xdf\xe8\xe6\xc3\xf7\xdf\ -\xe5\xd7\xfa\x93\xa4\xbc\x15\x4f\x28\x14\xa2\xa5\xa5\x05\x21\x44\ -\x67\xc4\x2b\x6a\x6a\x6a\xe2\xe0\xc1\x83\x5c\xbe\x7c\x19\x8f\xc7\ -\x83\xc9\xa4\x10\x0e\xab\xcc\xcf\xcf\xaf\x74\x90\x24\x49\x68\x9a\ -\x86\xae\xeb\x58\xad\x56\xa2\xa3\xa3\x09\x06\x83\x0c\x0e\x0e\x72\ -\xec\xd8\x31\x84\x10\xe5\x40\xd3\xba\x0a\xb2\xb2\xb6\x92\x9b\x9b\ -\x4b\x5d\x5d\x1d\x81\xc0\x02\x8b\x8b\x8b\xe8\xba\x4e\x42\x7c\x3c\ -\x76\xbb\x1d\x9b\xcd\x46\x74\x74\x34\x26\x93\x09\x45\x91\x99\x9e\ -\x9e\x66\x61\x61\x81\x27\x4f\x9e\x50\x5f\x5f\x8f\x10\xe2\xe6\x7a\ -\xc5\x57\x14\xa8\xaa\xca\xad\x5b\xb7\xd8\xb3\x67\x0f\xc5\xc5\xc5\ -\x9c\x3a\x75\x0a\xb3\xd9\x8c\xa2\xc8\x18\xc6\xb3\xd3\xeb\xba\x8e\ -\xa6\x69\x84\x42\x41\x66\x66\x66\x89\x8b\x8b\xa3\xa1\xa1\x81\xb6\ -\xb6\x36\x0d\xd8\x0b\x5c\xdf\x10\xd0\xdf\xdf\x8f\x77\x60\x80\x4f\ -\xab\xab\xc9\xcc\xcc\xe4\xf8\xf1\xe3\xa4\xa5\x6d\x41\x96\x65\x84\ -\x30\x10\x42\x20\x84\xe0\xe9\xd3\x00\x7d\x7d\xff\xd0\xd8\xd8\xc8\ -\xe0\xe0\xa0\x06\x2c\x2e\xd7\x39\x03\xfc\x10\x01\x10\x66\x6e\x6e\ -\x8e\x91\x91\x51\xe6\xe7\xe7\x39\x7b\xf6\x2c\xdd\xdd\xdd\xec\xda\ -\xb5\x8b\x9d\x3b\x77\xe2\x76\xbb\x01\x18\x1a\xf2\xd1\xd1\xd1\xc1\ -\x9d\x3b\x5d\x00\x37\x81\xd3\xc0\x55\x20\x7e\xd9\x15\x66\x80\x13\ -\x40\xf3\x5a\x40\x38\xcc\xec\xec\x2c\x48\x60\x08\x83\xb1\xf1\x31\ -\xbc\xde\x41\xfe\x68\x6a\xa2\xa7\xb7\x97\xc9\xc9\x49\x00\x5c\x2e\ -\x17\xd3\xd3\xd3\x00\xe5\xcb\xc5\x26\x00\x52\x53\x53\x07\x00\x69\ -\x64\x64\x44\x06\x54\xa0\x04\xe8\x5c\x01\xe8\xba\x8e\xdf\xef\x47\ -\x08\xb1\x46\xde\xf8\xf8\xf8\x1a\x0f\x1a\x1a\x1a\xa2\xb2\xb2\x12\ -\x20\x15\x18\x5d\x4e\xb9\x81\xbb\x35\x35\x35\x71\xbd\xbd\xbd\x5a\ -\x6f\x6f\xaf\xba\xfc\xbf\x32\x80\x51\xd3\xea\x02\x92\x24\xad\xf8\ -\x0e\x40\x72\x72\xf2\x1a\x83\x0b\x04\x02\xcf\x53\xa3\xab\xce\x31\ -\x0a\xbc\x77\xe1\xc2\x85\x81\xda\xda\xda\x98\xa8\xa8\x28\x73\x67\ -\x67\xe7\x12\xe0\x05\xb6\xca\xab\x01\xcf\xfd\x66\xf5\xfa\xe5\xbd\ -\x0d\x22\xab\xae\xae\x4e\xcd\xc9\xc9\x31\xdc\x6e\xf7\x1b\x6b\xde\ -\xa0\xbd\xbd\x1d\x55\x55\xff\x63\xc9\xab\xd5\x00\x4c\x4c\x4c\x50\ -\x55\x55\xe5\x05\xb2\xd6\x01\xb8\x97\xe7\x3b\x40\x22\x50\x08\x8c\ -\x00\x7c\x0e\x18\xaf\x31\xaa\x37\x50\xe1\x5e\x35\xfe\x9f\xf8\x17\ -\xc1\x08\x40\x3b\x9d\x7d\xa8\x8b\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xd2\x02\x01\x0b\x00\x03\xc4\x02\x9d\xda\x00\x00\x02\x03\x49\x44\ +\x41\x54\x78\xda\xbd\x95\xbf\xab\xda\x50\x14\xc7\x3f\x79\x7d\x2d\ +\x0a\xa5\x94\x82\x98\x74\x2b\x05\x41\xfa\x63\x08\x8a\xbc\xff\xc1\ +\xff\xc1\x31\x05\x41\xb2\xb9\x14\xb4\x0e\xdd\x8a\x6e\x25\x20\xd4\ +\xd1\xcd\x41\xe7\x2e\x19\x44\x04\x47\xfd\x0b\x1e\xa8\x9b\xa0\x49\ +\x90\x36\xb7\x4b\xae\xcd\x8b\xfa\x12\x2d\xf4\xc0\x81\x5c\xc8\x3d\ +\x9f\x73\xee\xf7\xdc\x73\xe1\x3f\xd9\x17\x40\x5c\xe8\x9f\x81\xa7\ +\x80\x92\x04\x20\x46\xa3\x91\xf0\x3c\x2f\xd6\x1d\xc7\x11\xb6\x6d\ +\x4b\xc8\xab\x00\x72\xd6\x24\x5d\x78\x9e\xc7\x66\xb3\x49\x5c\x72\ +\x36\x9b\x05\x78\x0b\xac\x81\x5d\x00\x3c\xb2\xdb\xf0\x62\x30\x18\ +\xb0\x5e\xaf\x01\x48\xa5\x52\x54\x2a\x15\xa6\xd3\x29\xb3\xd9\x0c\ +\xc3\x30\xb0\x2c\x0b\x5d\xd7\x29\x16\x8b\x72\x4b\x2a\x88\xa1\x9c\ +\x03\x5c\x54\x81\x10\x7f\x63\xa8\xaa\x0a\xf0\x11\xb8\x07\x36\x80\ +\x7f\x6a\xcb\x03\x40\xb5\x5a\xc5\x75\x5d\xda\xed\x36\xad\x56\x8b\ +\x6c\x36\x8b\xae\xeb\x14\x0a\x05\x19\xf0\x12\x33\x80\x1f\x84\x00\ +\x62\xb5\x5a\x9d\x74\x40\x0c\x87\x43\x91\xd4\xe6\xf3\xf9\xa1\x09\ +\xce\x6a\x20\xcf\x5c\x1e\x4b\xb9\x5c\x4e\x9c\x7a\x3e\x9f\x97\x9f\ +\x2f\x63\x35\x10\x42\xa0\xaa\x2a\x42\x08\xfa\xfd\x3e\xcb\xe5\x12\ +\x80\x74\x3a\x8d\x61\x18\x8c\xc7\x63\x26\x93\x09\xa6\x69\xd2\xe9\ +\x74\x28\x95\x4a\xdc\xdd\xdd\xa1\x28\x0a\xc0\xbb\x93\x1a\x00\x07\ +\x1d\x32\x99\x0c\xcd\x66\xf3\x81\xc0\x49\x2c\x00\x7c\x88\xad\xc0\ +\xf7\x7d\x34\x4d\x43\x08\x41\xad\x56\xc3\x71\x1c\xba\xdd\x2e\xf5\ +\x7a\x1d\x4d\xd3\x0e\x19\x87\x2b\x39\x0b\xe8\xf5\x7a\x27\x35\x68\ +\x34\x1a\xd7\x56\xf0\xfe\x00\xd8\xed\x76\x6c\xb7\xdb\xc4\x1a\xc8\ +\x33\x07\x0e\x55\x58\x96\x85\xeb\xba\x98\xa6\x79\x0c\xb0\x6d\x9b\ +\x5c\x2e\xf7\x28\xe0\x5f\x2a\xf8\x04\x7c\x8f\xbb\xc5\x52\x03\x20\ +\x56\x87\x28\xe0\x16\x78\x0e\xbc\x00\x9e\x05\x23\x44\xfa\x6b\xe0\ +\xe7\xb5\x5d\x24\x2f\xda\x6f\x60\x0b\xec\x81\x9b\xd0\x8c\x52\x80\ +\x95\xdc\x74\x89\x06\xd1\x59\x14\x1d\x7e\xe1\xb5\x02\xfc\xba\x56\ +\x83\x9b\xe8\x51\x47\xdc\x97\x53\x72\xb1\x58\x24\x0e\x1e\xfa\xd7\ +\x4f\x94\x0c\xf0\xf5\x8a\x27\xf5\x1b\xf0\x46\x49\x98\xd4\x63\x4d\ +\xa0\x44\xdf\x96\xc0\xf7\xc0\x26\x29\x40\x01\x9e\x04\xc1\xa3\x4d\ +\x70\x2a\x86\x08\x1a\x67\xaf\x5c\xf8\x88\xc4\x35\xc5\x91\x9e\x7f\ +\x00\xb7\xae\x9e\x43\x7d\xb2\x82\x67\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x76\x50\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\x2a\x00\x00\x01\x08\x08\x06\x00\x00\x00\xe8\x5e\xb9\x12\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\xd0\xcb\x00\x00\ +\xd0\xcb\x01\x9f\x0e\xc0\x23\x00\x00\x00\x09\x76\x70\x41\x67\x00\ +\x00\x01\x2a\x00\x00\x01\x08\x00\xdc\x89\x70\xd2\x00\x00\x74\x99\ +\x49\x44\x41\x54\x78\xda\xed\xbd\x67\x98\x5d\xd7\x79\x1e\xfa\xae\ +\x73\xce\xcc\x99\x72\xa6\x62\x66\x30\x00\x06\x04\x2b\xc0\xde\x04\ +\x52\x50\xa5\x2c\x51\x85\x12\x65\x39\xb2\x64\xcb\x45\x91\xcb\x75\ +\x42\xdf\x9b\x9b\xe7\x96\x27\xbe\x6e\x71\xb9\x56\x6c\xc5\x92\x15\ +\xeb\xda\x4a\x64\x3b\x91\xe4\xc4\x91\x13\x3b\x11\x25\xf6\x02\x12\ +\x20\x08\x90\x60\x01\x09\x90\x00\x89\x4e\xf4\x36\xfd\xcc\xcc\xe9\ +\x7b\xaf\xfb\x63\xb7\x55\xf7\x5e\xfb\x94\x29\xc4\xfe\xf0\x0c\xce\ +\xde\xab\xaf\x5d\xde\xfd\x7e\xdf\x5a\xdf\x5a\x04\x89\x5c\xf6\x32\ +\xba\xe5\x01\xef\xf0\x23\x00\xfe\x0f\x00\xb7\x00\x28\x02\xf8\x01\ +\x80\xff\x02\xe0\x34\x00\x5c\xd8\xfd\x9d\xa5\x6e\x6a\x22\x97\xa9\ +\xa4\x97\xba\x01\x89\x2c\xad\x30\x20\xb5\x05\xc0\xb7\x01\xdc\x03\ +\x60\x00\xc0\x08\x80\x0f\x03\xb8\x19\xc0\x7e\x00\x17\x73\x63\x9b\ +\x31\x7f\xe6\xd5\xa5\x6e\x72\x22\x97\xa1\xa4\x96\xba\x01\x89\x2c\ +\x0b\x69\x03\xf0\xcf\x01\xdc\xaa\x08\xff\x14\x80\xef\x03\xf8\x38\ +\x00\xc2\x00\x5b\x22\x89\x2c\x9a\x24\x40\x95\x08\x00\xf4\x01\xb8\ +\x3d\x24\xfe\x76\x00\x7f\x03\xe0\x17\x01\xb4\x25\x60\x95\xc8\x62\ +\x4b\x02\x54\x89\x00\x40\xb7\xfb\x17\x26\x1b\x00\x7c\x0b\xc0\xff\ +\x05\xa0\x27\x01\xab\x44\x16\x53\x12\xa0\x4a\x24\x8e\x0c\x00\xf8\ +\x7d\x00\xff\x06\xc0\x48\x02\x56\x89\x2c\x96\x24\x40\x95\x48\x5c\ +\xe9\x04\xf0\xeb\x00\xfe\x03\x80\xeb\x46\xb7\x3c\x80\x04\xb0\x12\ +\x69\xb5\x24\x40\x95\x48\x3d\x92\x01\xf0\x79\x00\xdf\x83\x33\x5a\ +\x98\x80\x55\x22\x2d\x95\x04\xa8\x12\x69\x44\x3e\x00\x07\xac\x3e\ +\x07\x20\x95\x80\x55\x22\xad\x92\x04\xa8\x12\x69\x54\xae\x07\xf0\ +\x1d\x00\xff\x0c\x40\x47\x02\x56\x89\xb4\x42\x12\xa0\x4a\xa4\x19\ +\x32\x0a\xe0\x4f\x01\xfc\x0e\x80\xfe\x04\xac\x12\x69\xb6\x24\x40\ +\x95\x48\xa4\xa4\x52\x69\xd0\xe8\x64\x3d\x00\x7e\x03\xc0\x37\x01\ +\x8c\x25\x46\xf6\x44\x9a\x29\x09\x50\x25\x12\x2a\x94\x52\xac\x1d\ +\x1b\xc3\x5d\x77\xde\x8c\x74\x3a\x0d\x4a\x43\x21\xab\x1d\xc0\x57\ +\xe0\x4c\x0e\xbd\x05\x48\x8c\xec\x89\x34\x47\x12\xa0\x4a\x24\x54\ +\x28\x05\x7a\x7b\xba\xf1\x4b\x5f\xfc\x38\x3e\xff\xe9\x0f\xa2\xb3\ +\xb3\x23\x0a\xac\x52\x08\xdc\x6e\x3e\x8a\xc4\xed\x26\x91\x26\x48\ +\x02\x54\x89\x44\x0a\xa5\x14\xb9\xee\x2c\xbe\xf4\x93\x1f\xc2\x57\ +\xbe\xf8\x71\xf4\xf7\xf5\xc0\xb6\x23\x95\xc1\x3b\x01\xfc\x47\x00\ +\x5f\x02\x90\x49\xc0\x2a\x91\x46\x24\x01\xaa\x44\x8c\x84\x52\x8a\ +\xf6\x4c\x06\xf7\x7d\xe4\x4e\xfc\xfa\x57\x3e\x8b\x75\x6b\x86\x4d\ +\xc0\xea\x2a\x00\x7f\x01\x67\xe9\x98\xee\x04\xac\x12\xa9\x57\x12\ +\xa0\x4a\xc4\x58\x28\x00\x42\x08\xde\x77\xe7\x26\xfc\xcb\x5f\xfd\ +\x1c\x6e\xd8\xb8\x21\x4a\x0d\x04\x80\x55\x00\xfe\x10\xc0\x57\x01\ +\x0c\x25\x60\x95\x48\x3d\x92\x00\x55\x22\xb1\x85\x52\x8a\x9b\xae\ +\x1b\xc3\xbf\xfc\x95\xcf\x61\xcb\x7b\x6e\x02\x40\xa2\x00\xab\x0b\ +\xc0\xbf\x80\xb3\xde\xd5\x35\xc9\x88\x60\x22\x71\x25\x01\xaa\x44\ +\xc2\x85\xb8\xbf\x94\xfd\xa1\xb0\x6d\x8a\xf5\xa3\x83\x78\xe0\xcb\ +\x9f\xc6\x27\x7f\xe2\x2e\xb4\xb5\xb5\x45\x81\x55\x06\xc0\xcf\x00\ +\xf8\x2e\x80\xbb\x80\x64\x44\x30\x11\x73\x49\x80\x2a\x11\x23\xa1\ +\x00\xa8\xfb\xbf\x07\x5a\x36\xa5\x18\xec\xeb\xc6\x2f\x7d\xf1\x63\ +\xf8\xe2\x67\xef\x41\x77\x77\x27\xec\x68\x55\xf0\xc3\x70\x46\x04\ +\x3f\x83\xc4\xed\x26\x11\x43\x49\x80\x2a\x11\x73\xa1\x01\x48\x79\ +\x62\x53\x8a\xce\x8e\x76\x7c\xfe\xbe\xf7\xe1\x57\xbe\x74\x1f\x86\ +\x06\xfb\x4d\x8c\xec\x37\x02\xf8\x6b\x00\xbf\x02\x20\x9b\x80\x55\ +\x22\x51\x92\x00\x55\x22\x91\x42\x23\xc2\x29\xa5\x68\x4b\xa7\xf0\ +\xb1\xf7\xdf\x82\xff\xf5\x2b\x9f\xc5\x86\xf5\xa3\x26\xcc\x6a\x2d\ +\x80\x3f\x03\xf0\x9b\x00\xfa\x12\xb0\x4a\x24\x4c\x92\xcd\x1d\x2e\ +\x73\xc9\x8d\x6d\x06\x80\x7e\x00\xff\x14\xce\x08\x1d\x27\x14\xc0\ +\xf0\xc8\x30\x3e\xf0\x9e\x4d\xe8\xca\x66\xfc\x30\xa8\x12\x02\x58\ +\xb7\x7a\x10\xd7\x5e\xb5\x0e\x17\x2e\xcd\xe0\xe2\xf8\x34\x08\x41\ +\x98\x64\x01\xbc\x0f\xc0\x6a\x00\x7b\x72\x63\x9b\xe7\x92\x0d\x24\ +\x12\x51\x49\xc2\xa8\x12\x31\x12\xc7\x3a\x45\x64\x90\x72\xcd\x56\ +\xde\xa1\x4d\x29\x36\x5e\xb9\x06\xff\xdb\x2f\x7d\x16\x1f\xda\x72\ +\x2b\x48\x2a\x15\x65\x64\xcf\x02\xf8\x55\x38\xaa\xe0\x8d\x40\x62\ +\x64\x4f\x44\x96\x04\xa8\x12\x31\x10\xaa\xa6\x51\x54\x79\x08\x9b\ +\xda\x18\x1d\xee\xc3\xaf\xfd\xfc\x27\x71\xff\xbd\x5b\x90\xcd\xb6\ +\x9b\xb8\xdd\x7c\x06\x8e\x91\xfd\xc3\x40\x02\x56\x89\xf0\x92\x00\ +\x55\x22\x86\x22\xa0\x12\x95\x0e\xb9\x74\x94\x52\xf4\xe6\x3a\xf1\ +\xf3\x3f\x75\x0f\x7e\xee\x9f\x7c\x0c\xbd\x3d\x39\x13\x23\xfb\x5d\ +\x70\xa6\x2f\xfc\x0c\x12\xb7\x9b\x44\x18\x49\x80\x2a\x11\x73\x89\ +\x04\x28\x3e\xc4\xb6\x29\xb2\xed\x19\xdc\xff\xd1\xcd\xf8\x5f\x7e\ +\xe1\xd3\x18\x5d\xbd\xca\x04\xac\xae\x81\x33\x31\xf4\x5f\x00\xe8\ +\x4a\xc0\x2a\x11\x20\x31\xa6\x5f\xf6\x12\xcf\x98\xde\xa6\xd0\x00\ +\x15\x21\x42\x10\x21\x04\x57\xac\x1d\xc6\x95\x63\xa3\x38\x7d\x7e\ +\x02\x53\xd3\x79\x90\x70\x2b\x7b\x17\x1c\x15\x30\x07\xc7\xc8\x5e\ +\x4c\x8c\xec\x97\xb7\x24\x8c\x2a\x91\x68\xa1\xe1\x0c\xaa\x5a\xb3\ +\x61\x59\x9e\xca\x27\xe7\x75\xfe\x28\x6e\xd9\x74\x05\xfe\xc5\x2f\ +\xfd\x24\xee\xbc\x75\x93\x49\xad\x5d\x70\x9c\x99\xff\x12\xc0\x95\ +\x40\x62\xb7\xba\x9c\x25\x01\xaa\x44\x62\x08\x85\x08\x59\x04\xc0\ +\xec\x42\x05\x27\x2f\xe6\x51\xae\x58\x20\x62\x72\xe6\xd0\xa6\x14\ +\x1b\xd6\x0d\xe3\x81\x2f\x7f\x06\x1f\xfd\xe0\x9d\x26\x0b\xf1\x65\ +\xe0\x2c\x13\xf3\x5d\x38\xcb\xc6\x24\x60\x75\x99\x4a\x02\x54\x89\ +\x44\x0a\xe5\xff\x93\xe2\x28\xa5\x98\x98\x2d\xe1\xf8\xf9\x59\x2c\ +\x94\xaa\x4c\x26\xe9\x10\x36\xa5\x58\x35\x90\xc3\x57\xbe\x78\x2f\ +\x7e\xea\xbe\x0f\xa2\x2b\x7a\x21\x3e\x02\xe0\x27\xe0\x8c\x08\x7e\ +\x0a\xc9\x42\x7c\x97\xa5\x24\x40\x95\x48\x6c\xa1\x34\xf8\x63\x42\ +\x31\x3b\x5f\xc6\xb1\xb3\x33\x98\x9d\x2f\xbb\x21\xcc\xec\x75\xff\ +\x98\x82\x52\x8a\xee\xce\x2c\x7e\xfa\xbe\xf7\xe3\x17\xbf\xf0\x09\ +\x0c\xf4\xf7\x9a\xcc\x64\xbf\x05\xce\x12\xc7\xbf\x04\xa0\x3d\x01\ +\xab\xcb\x4b\x12\x63\xfa\x65\x2e\x46\xc6\xf4\xe1\x61\xbc\xff\x3d\ +\x9b\xd0\x99\xcd\xc8\x86\x72\x00\x85\x52\x0d\xd3\x73\x0e\x38\x55\ +\x2c\x1b\xf9\x42\x05\xe9\x34\x41\x57\xb6\x0d\x84\x04\x00\xc5\x15\ +\x0a\x20\x9d\x4a\xe1\xaa\x2b\x46\xb1\x76\x74\x18\x27\xcf\x5c\x44\ +\x7e\x6e\x21\xca\xc8\xde\x0b\xe0\x23\x6e\xb5\xaf\xe7\xc6\x36\x57\ +\x12\x23\xfb\xe5\x21\x09\xa3\x4a\xc4\x4c\x28\x00\x10\x45\x18\xcf\ +\x9a\x00\xa0\x5c\xb1\x70\xf2\x42\x1e\xe7\x26\xe7\x61\xd9\x36\x74\ +\x7a\xa0\xb3\x10\x1f\x70\xd7\x6d\xd7\xe2\xd7\xbf\xf2\x93\xb8\x61\ +\xe3\x55\x88\x26\x56\xe8\x03\xf0\xbb\x70\xb6\xe7\x1a\x05\x12\xbb\ +\xd5\xe5\x20\x09\x50\x25\x62\x2e\x14\x92\x3d\x9d\x03\x29\x26\xbc\ +\x66\x51\x9c\x19\x9f\xc3\xa9\x8b\x79\x54\x6b\xb6\x03\x71\x9a\x39\ +\x58\x94\x52\x5c\x7f\xf5\x5a\xfc\xfa\x3f\xbd\x1f\x5b\x36\xdf\x84\ +\x54\x8a\x44\x01\x56\x16\xc0\xaf\xc1\xd9\xf8\x74\x13\x90\x80\xd5\ +\xbb\x5d\x12\xa0\x4a\xc4\x48\x68\xd8\xf4\x4e\x66\x99\x2a\xca\x20\ +\x19\xa5\x14\x17\xa7\x0b\x38\x7e\x6e\x16\x85\x72\xcd\x4f\xaa\x12\ +\xdb\xa6\x58\x3b\x32\x80\x5f\xfd\xb9\x4f\xe1\x13\x1f\x79\x2f\xda\ +\xdb\x23\x17\xe2\x4b\xc3\xd9\x4a\xfe\xfb\x70\xb6\x96\x4f\xc0\xea\ +\x5d\x2c\x09\x50\x25\x62\x2c\xf2\xe4\x84\x00\x9c\xa8\x10\xc3\x1a\ +\xdc\xa7\xe6\x4a\x38\x76\x76\x06\xf9\x42\x45\x5b\xb0\x37\x7d\xa1\ +\xbf\xa7\x0b\x3f\xf7\xb9\x7b\xf0\x85\xcf\xde\x83\x9e\x5c\xb7\xc9\ +\x9a\xec\x5b\x00\x7c\x0f\xc0\xe7\x01\xa4\x13\xb0\x7a\x77\x4a\x02\ +\x54\x89\xc4\x12\x5e\xfb\x53\xcf\x4a\xa7\x0a\x93\x54\xbe\x50\xc5\ +\xb1\xb3\x33\x98\xca\x17\xa5\xc2\x78\x35\xd0\x46\x67\x47\x1b\x3e\ +\xfb\xb1\xbb\xf0\x95\x9f\xfd\x24\x86\x87\x06\x4d\xc0\xea\x3a\x00\ +\xff\x01\xc0\xaf\x03\xe8\x48\xc0\xea\xdd\x27\xc9\xa8\xdf\x65\x2e\ +\x26\xa3\x7e\x43\xc3\xc3\x78\xdf\x1d\x9b\xd0\xd9\x91\x81\xa8\xbc\ +\x11\x00\x0b\xee\xa8\x9f\x0a\xa0\xbc\x03\x02\x8a\xaa\x65\x23\xbf\ +\x50\x01\x21\x04\xdd\x1d\x6d\x20\x84\x5d\x36\x86\x2f\x37\x95\x72\ +\xdc\x6e\xc6\xd6\x8e\xe0\xcc\xf9\x49\x4c\xcf\x44\xba\xdd\x74\x03\ +\xb8\x07\x40\x27\x80\xd7\x72\x63\x9b\x4b\xc9\x88\xe0\xbb\x47\x12\ +\x46\x95\x48\xb4\x88\x96\x72\xf1\x54\x30\x92\xf3\xc9\x79\xee\x55\ +\xa9\xd9\x38\x75\x31\x8f\x53\x97\xe6\x50\xb5\x6c\xbe\x00\xef\x8c\ +\x61\x65\xb7\xdd\x70\x25\x1e\xf8\xf2\xfd\xb8\xed\xe6\xeb\x4c\x5a\ +\xda\x0d\xe0\xff\x06\xf0\x2d\x00\x57\x00\x89\xdd\xea\xdd\x22\x09\ +\x50\x25\x62\x2e\x94\x28\xf1\xca\xff\x65\xfc\xfa\x44\xd3\x3a\x9b\ +\xcf\xb2\x29\xce\x4f\xcc\xe3\x9d\xf3\x33\x28\x57\x6a\xdc\xa4\x07\ +\x51\xcb\xa3\x94\xe2\xaa\xf5\x23\xf8\xb5\x9f\xff\x34\x3e\xfc\xbe\ +\xdb\x4d\xdc\x6e\xda\x00\xfc\x22\x80\xff\x04\xe0\x36\x20\x01\xab\ +\x77\x83\x24\x40\x95\x88\x91\x88\x33\xcc\x25\x42\xa5\x00\x27\x2f\ +\xc8\xdb\x13\x22\x50\x07\x9d\x11\xc1\xf1\x99\x22\x8e\x9e\x9d\xc1\ +\x5c\xb1\x0a\xbf\x08\x55\xdd\x94\x62\x64\x55\x2f\xbe\xfc\x85\x8f\ +\xe1\xfe\x8f\xbf\x1f\x9d\x66\x6e\x37\xf7\x02\xf8\x5b\xf7\x37\x71\ +\xbb\x59\xe1\x92\x00\x55\x22\xc6\x42\x43\x63\x64\xf6\x24\xad\xb8\ +\xe0\xea\x74\x6c\xf8\xcc\x7c\x19\x47\xce\x4c\x63\x6a\xae\x14\x5a\ +\xba\x4d\x29\x7a\xba\x3b\xf1\xf9\xfb\x3e\x80\x2f\xfd\xd4\xc7\xd0\ +\xdf\xdf\x6b\x62\x64\xbf\x0d\x0e\xb3\xfa\x45\x00\x6d\x09\x58\xad\ +\x5c\x49\x80\x2a\x11\x33\x89\xd8\x8a\x46\xcb\x9e\xbc\x48\x4a\xa5\ +\x70\x0f\x67\x16\x8a\x35\x1c\x3b\x3b\x8b\x8b\xd3\x05\x0e\x7c\xc4\ +\xb9\x5a\xd4\xa6\xc8\xb6\xa7\xf1\xf1\x0f\xdd\x86\x5f\xfe\xd2\x7d\ +\x58\xbb\x66\xd8\x04\xac\xae\x80\x63\xb3\xfa\xbf\x01\xe4\x12\xb0\ +\x5a\x99\x92\x00\x55\x22\xf5\x09\x3b\x3b\x9d\x2a\x36\x7e\x60\x26\ +\x52\xa9\x00\x8a\xc5\x17\x42\x80\x72\xb5\x86\x77\xce\xcf\xe2\xcc\ +\xf8\x3c\x2c\x71\x15\x50\x06\xad\x28\xa5\x48\x11\x82\xbb\x6f\xbb\ +\x0e\xbf\xf6\x8b\xf7\x63\xd3\x75\x1b\x4c\x5a\x3b\x00\xe0\xf7\x01\ +\xfc\x09\x80\x91\x04\xac\x56\x9e\x24\xd3\x13\x2e\x73\x31\x9d\x9e\ +\xb0\xe5\xce\x8d\xe8\xca\xb6\xc9\xfb\x3c\x10\x60\xa1\x54\xc5\xf4\ +\x5c\x89\x43\x1f\xe5\x5e\x10\x3a\x1b\x94\x5b\xa8\x4d\x29\xe6\x0a\ +\x15\x54\x6b\x36\xba\x3b\xdb\x90\x49\xa7\xa4\xe5\x65\xd8\x22\x86\ +\x07\x7b\x71\xdd\xd5\xeb\x31\x93\x2f\xe0\xc2\xa5\x49\xd8\x36\x0d\ +\xdb\x9e\x2b\x03\xe0\x3d\x00\xae\x85\xe3\xd0\x3c\x95\x4c\x5f\x58\ +\x39\x92\x30\xaa\x44\xcc\x84\x7a\x33\xd0\xb5\x91\xea\x99\xeb\xca\ +\x25\x61\xbc\x5c\xd4\x07\x29\x2f\xda\xa6\x14\x17\xa6\x16\x70\xf4\ +\xec\x8c\xbb\xb6\x95\x1e\xfc\xa8\x4d\x31\xb6\x7a\x10\xbf\xf4\x33\ +\x1f\xc7\xc7\x3e\xb4\x19\xd9\xac\x91\xdb\xcd\xe7\xe1\xcc\x64\xdf\ +\x02\x24\x23\x82\x2b\x45\x12\xa0\x4a\x24\x52\xd4\x5e\x7e\xe2\x28\ +\x9f\xda\x7d\x46\x2e\xcb\xfd\xe7\x1a\xb3\xa4\x5d\xe2\x3d\xb7\x9b\ +\x7c\x11\x87\x4f\x4f\x63\x76\xa1\xac\x58\x06\x19\x3e\xd3\xa2\xd4\ +\xc6\x40\x5f\x37\x7e\xf6\x27\x3f\x8c\xcf\xdd\xf7\x21\xe4\x72\x5d\ +\x26\x76\xab\x0f\xc0\x01\xab\xcf\x01\x48\x25\x60\xb5\xfc\x25\x01\ +\xaa\x44\x0c\x44\xc5\x95\xf8\xa8\x30\x70\x72\x92\x05\xec\x49\x3d\ +\x22\x08\x9f\xb5\x79\x31\x73\x85\x0a\x0e\x9f\x9e\xc1\xc4\x4c\x51\ +\x72\x80\x66\x57\xb9\xa2\x94\xa2\xab\xb3\x1d\x9f\xf9\xe8\x5d\xf8\ +\x85\x9f\xfe\x04\x86\x87\x06\x4c\xc0\xea\x7a\x38\xab\x2f\xfc\x73\ +\x00\xd9\x04\xac\x96\xb7\x24\x40\x95\x48\xb4\x78\xac\x87\x3a\x06\ +\x20\x16\x94\x02\x58\x21\x8a\x6c\x34\x16\x40\x89\xac\x0c\x00\x8a\ +\x95\x1a\x8e\x9e\x9d\xc1\xb9\xf1\x79\x66\xab\x2d\x95\x81\x9e\xa2\ +\x3d\x93\xc2\x87\xef\xbe\x11\xbf\xfc\xa5\x4f\xe3\xca\x2b\xd6\x9a\ +\x80\xd5\x28\x9c\x75\xad\xfe\x35\x80\xfe\x04\xac\x96\xaf\x24\x40\ +\x95\x48\xa8\xf8\xf0\xe3\x81\x8c\xf6\xdd\x0f\x54\x40\x09\x9c\x62\ +\x02\x14\x37\x22\x08\x67\x97\x9b\x13\x17\xf2\x38\x71\x61\x16\xd5\ +\x9a\x05\x7d\x0b\x9c\x11\xc4\xdb\x6f\xbc\x12\xbf\xfa\xf3\x9f\xc6\ +\xad\x37\x5d\x87\x50\xef\x40\x47\x72\x00\xfe\x15\x80\x7f\x07\x60\ +\x2c\x01\xab\xe5\x29\xc9\xa8\xdf\x65\x2e\x51\xa3\x7e\x00\xb0\x6a\ +\x68\x08\xef\xbb\x63\x23\xba\x3a\xda\xa4\x38\xe2\x8e\xfa\x4d\xcd\ +\x15\x75\x0b\x79\x2a\x03\xa5\xf5\xad\x54\x5a\x25\xa3\xef\x79\x23\ +\x82\xa5\xaa\x85\x5c\x67\x3b\xda\xd2\xa9\x90\xf4\xc0\x60\x7f\x0e\ +\xd7\x5e\x3d\x86\x85\x62\x05\xe7\x2e\x4e\xc0\xb2\xec\x30\xa7\xe6\ +\x34\x80\x5b\x01\xdc\x0c\x60\x5f\x6e\x6c\xf3\xa5\x64\x44\x70\x79\ +\x49\xc2\xa8\x12\x69\x5c\x04\xb5\x4e\xc5\x9c\x58\xf6\x14\xc6\xa0\ +\xd8\x70\xd1\xa1\x99\x02\xb8\x34\x5d\xc4\xa1\x53\xd3\xc8\x17\xaa\ +\x8a\xf4\xec\x39\xc5\xe8\x50\x1f\x7e\xfe\xf3\x1f\xc5\xa7\x3e\xba\ +\xc5\x64\xb7\x9b\x14\x80\x4f\xc2\x59\x88\xef\xa3\x48\xdc\x6e\x96\ +\x95\x24\x40\x95\x88\x91\xc8\x8b\xe5\xa9\xfd\xfe\xc4\x04\x61\xe0\ +\x24\x83\x8b\xf7\x27\xb8\xe4\x30\xf1\x00\x30\xb3\x50\xc2\xa1\xd3\ +\x53\x98\xcc\x97\xc2\x0d\xf8\x94\xa2\x37\xd7\x81\x9f\xfa\xe4\xfb\ +\xf0\xd3\x9f\xfd\x09\x53\xb7\x9b\x3b\xe1\xb8\xdd\xfc\x1c\x80\x4c\ +\x02\x56\xcb\x43\x12\xa0\x4a\xc4\x48\xb4\xe3\x7e\x0c\xdd\xf1\x40\ +\x26\x0e\x38\xb1\x71\x92\xcf\xa0\x14\xef\x08\x01\xb0\x50\xac\xe2\ +\xf0\xe9\x69\x9c\x9f\x5c\x50\x82\x8f\xdf\x02\x9b\xa2\x23\x9b\xc1\ +\xbd\x1f\xb8\x0d\x5f\xfe\xc2\x27\x4c\xdd\x6e\xae\x04\xf0\x17\x70\ +\x76\x6a\xee\x4e\xc0\x6a\xe9\x25\x01\xaa\x44\xcc\x85\x52\x35\x8d\ +\xa2\x1e\x24\xc9\x76\xa7\x70\xc6\x13\x0f\xa0\xfc\x74\x6e\x58\xb9\ +\x6a\xe1\xd8\xb9\x19\x9c\xbc\x38\x87\x9a\xbf\xb6\x55\x30\xd3\x9d\ +\x75\xf1\x49\xa7\x09\xee\xbe\xfd\x3a\xfc\xf2\x97\xee\xc3\xa6\x6b\ +\x8d\xdc\x6e\x06\x01\xfc\x21\x80\xaf\x02\x18\x4e\xc0\x6a\x69\x25\ +\x31\xa6\x5f\xe6\x62\x62\x4c\x1f\x1c\x1a\xc2\x96\xdb\x37\xa2\x4b\ +\xb5\xc2\x27\x01\xe6\x8b\x55\x4c\xb9\x6a\x58\x94\xb0\x06\x72\x40\ +\xc1\xd0\xa0\x02\x36\x2a\x85\xfb\x18\x69\x03\xf9\x85\x32\x2a\x55\ +\x1b\x3d\x5d\x6d\xc8\xa4\x89\xba\x50\x57\x86\x57\xf5\xe1\xaa\x2b\ +\xd7\x21\x3f\x57\xc0\x85\x4b\x53\xb0\xed\x50\x23\x7b\x1b\x80\xcd\ +\x00\xae\x86\xb3\x6a\xe8\x74\x62\x64\x5f\x1a\x49\x18\x55\x22\x86\ +\xc2\xf3\x1d\x89\x54\x85\xe5\x14\x6c\x4f\x61\xec\x49\xc7\xa0\xbc\ +\x70\x6e\xbe\xa7\x1b\x66\x53\x8a\xf3\x53\xf3\x38\x74\x6a\x1a\xf3\ +\xc5\xaa\x5c\x3f\xdb\x4e\x4a\x71\xc5\x9a\x55\xf8\x85\x9f\xbe\x17\ +\x3f\xf1\xc1\xf7\x20\x9b\x6d\x8f\x52\x05\x33\x00\xbe\x08\x67\x26\ +\xfb\xdd\x40\xe2\x76\xb3\x14\x92\x00\x55\x22\x46\xe2\xbc\xec\x44\ +\x37\x3f\xdd\x49\xc3\xae\xa6\x10\x02\x4e\x66\xea\x5d\x34\x40\x01\ +\xbc\x9a\x37\x99\x2f\xe1\xed\x93\xd3\x98\x76\xb7\x94\x07\x34\x8c\ +\xcd\xa6\x18\xea\xcf\xe1\x0b\x9f\xf9\x10\x3e\xfb\xc9\x0f\x9a\xee\ +\x76\xf3\x21\x38\x60\x75\x3f\x12\xb7\x9b\x45\x97\x04\xa8\x12\x69\ +\x4c\xc4\x91\x3a\x0e\x98\xc2\xc1\x29\x8a\x3d\x01\xe1\x00\xc5\x3a\ +\x34\x7b\x51\x73\x85\x0a\x0e\x9d\x9a\xc2\xc5\xe9\x02\xc4\xd5\x62\ +\x78\xbb\x15\x45\x77\x57\x3b\x3e\xf5\x91\xf7\xe0\x67\xff\xc9\xc7\ +\x4c\xdd\x6e\x6e\x04\xf0\x57\x00\x7e\x15\x89\xdb\xcd\xa2\x4a\x02\ +\x54\x89\x98\x89\x37\x2d\x9d\x33\xa6\xf3\x8a\x9f\x76\xba\x02\xa2\ +\xc0\xa9\x4e\x80\xa2\x72\x3d\x84\x00\xc5\x72\x0d\x87\x4f\x4f\xe3\ +\xf4\xa5\xb9\x60\x6d\x2b\x45\xd9\x94\x52\x64\xdb\xd2\xf8\xc0\xe6\ +\x1b\xf0\xe5\x2f\x7e\xca\xd4\xed\x66\x2d\x80\x6f\x00\xf8\x2d\x00\ +\x7d\x09\x58\x2d\x8e\x24\x40\x95\x08\x10\x6e\x62\xe2\x9c\x80\xc5\ +\x99\x51\xf2\xd6\xa3\x6e\x2a\x5a\x3f\x38\x51\x05\xda\x45\x01\x94\ +\x53\x27\xf5\x81\xa6\x6a\xd9\x78\xe7\xfc\x2c\x8e\x9f\x9d\x41\xa5\ +\x6a\xfb\xae\x34\x3c\xa4\x3a\xff\xa7\x53\x04\xb7\xdd\xb0\x01\x5f\ +\xf9\xd9\x4f\xe1\x96\x1b\xaf\x75\xb6\xf1\x0a\xbf\x22\xbd\x00\x7e\ +\x13\x0e\x60\xad\x4d\xc0\xaa\xf5\x92\x59\xea\x06\x78\xe2\xde\xec\ +\x34\x9c\xd5\x18\xc7\x00\x64\x15\xc9\x0c\xc6\x95\xa4\xf4\xa4\x09\ +\x65\x34\x2a\xf5\x94\xd1\x68\xbd\xa6\xf9\x29\x1c\x96\x90\xd5\xa6\ +\xf0\x37\x9f\xa1\xda\x42\xf5\xd3\x10\xf8\xb9\x54\xa1\x29\xc4\x09\ +\xa0\xe0\xd9\x90\xbe\x6e\x2a\x97\x47\x1d\x23\xfb\x99\xf1\x79\x94\ +\xab\x36\xae\x5e\xdb\x87\xae\x6c\x46\x55\x89\x2f\x57\x5f\xb1\x1a\ +\x5f\xfe\xc2\x27\xf0\xd0\x53\xbb\xf0\xd2\x9e\x03\xa8\x56\x6b\x61\ +\x23\x82\x59\x00\xbf\x02\x60\x0d\x80\xff\x67\x74\xcb\x03\x07\x00\ +\xe0\xc2\xee\xef\x18\x5e\xf6\x44\xe2\xc8\xb2\x00\x2a\x17\xa4\x06\ +\x01\xfc\xef\x00\x3e\x03\x60\x03\x5a\xcb\xf6\x9a\x01\x3e\xad\x96\ +\xc5\x6c\x63\x1a\xce\x14\x85\x88\x96\x10\x75\xb3\x54\x3a\x9a\x17\ +\x15\x13\x9c\x9c\xa0\x06\x00\x4a\xc8\x40\x01\x5c\x9a\x29\xa0\x5c\ +\xad\xe1\x9a\x75\xfd\xe8\xeb\x6e\xe7\x22\x79\xb2\x47\x31\x3a\xdc\ +\x87\x9f\xf9\xec\x47\xd0\xd7\x9b\xc3\xb6\x9d\x7b\x50\x28\x94\xc2\ +\xc0\x2a\x05\xe7\x79\x1d\x81\xe3\xd8\xbc\x63\x74\xcb\x03\x34\x01\ +\xab\xe6\xcb\x92\x03\x95\x0b\x52\x59\x38\x8b\xef\xff\x2b\x38\x73\ +\x57\x12\x59\x69\x12\x32\xb1\xd3\x8d\xd6\x9c\x78\x41\xf2\x24\xa9\ +\x46\x00\x8a\x0f\xa7\x98\x99\x2b\xe3\xed\x93\x93\xb8\x66\x6d\x3f\ +\x86\xfb\x3a\xb5\xe5\x53\x4a\xd1\xdf\xdb\x85\xfb\x3f\xbe\x05\xfd\ +\x7d\x3d\x78\xec\xe9\x17\x4c\x76\x69\xbe\x0b\x8e\xdb\xcd\xef\x00\ +\xf8\x9f\xa3\x5b\x1e\xa8\x25\x60\xd5\x5c\x59\xf2\x09\x9f\xee\x84\ +\xc3\x3b\x01\x7c\x13\x40\xcf\x52\xb7\x27\x11\x59\x06\x87\x86\xb0\ +\xe5\x8e\xeb\x9c\x35\xd3\x21\x03\xd2\x7c\xb1\x8a\xc9\x7c\xb0\xdd\ +\x55\x84\x06\xc8\x04\x99\x83\x93\x53\x6f\x7c\x80\xf2\xcf\x09\x50\ +\xa9\xda\x98\x99\x2f\x23\x95\x22\xe8\xee\x6a\xd3\x82\x0f\x05\xd0\ +\x9e\x49\x63\xfd\xba\x11\x0c\xad\x1a\xc0\xb9\x0b\x93\xc8\xcf\x2d\ +\x44\x81\xd5\x20\x80\x8f\x00\xa8\x00\x78\x23\x37\xb6\xb9\x9a\x4c\ +\x0c\x6d\x9e\x2c\x17\xa0\xfa\x30\x9c\xbd\xd7\x0c\x96\x0f\x4a\x64\ +\xb1\x65\xd5\xf0\x30\xee\xbe\xed\x3a\x74\x75\xb4\x49\x20\x45\x08\ +\x30\x5f\x70\x80\x2a\x4c\x9d\x0b\xa2\x14\xd3\xcb\xd1\x42\x80\x62\ +\x22\x09\x80\x9a\x4d\x31\x33\x5f\x86\x4d\x29\x7a\xbb\xda\x91\x4e\ +\x11\xb9\x0c\x37\x63\x3a\x05\xac\x59\x3d\x88\x75\x6b\x47\x30\x31\ +\x39\x8b\xc9\xe9\xd9\xa8\x4b\xd5\x05\xe0\x83\x70\x3e\xb8\xaf\xe5\ +\xc6\x36\x17\x12\xb0\x6a\x8e\x2c\x17\xa0\xba\x1b\xc0\x4f\x22\x01\ +\xaa\xe5\x27\x24\x85\xd5\x6b\xc7\x70\xd7\x2d\x57\x69\xd7\xa3\x9a\ +\x2f\x56\x31\x31\x5b\x32\x66\x4d\xc2\xa1\x52\xb4\xe0\xa4\xc8\x1c\ +\x05\x50\x7c\x98\xb3\xb6\xd5\xec\x42\x19\xe5\x8a\x85\x9e\xae\x2c\ +\xda\x32\x29\x01\xfc\x82\xd4\x84\x00\x43\x83\xbd\xd8\x70\xc5\x5a\ +\xcc\x2d\x14\x71\x31\xda\xed\xa6\x1d\x8e\x2a\xb8\x01\x0e\x58\xcd\ +\x24\x6e\x37\x8d\xcb\x72\x01\xaa\x3b\x90\x00\xd5\xf2\x13\x4a\x91\ +\xcd\xf5\x61\x74\xfd\x95\xb8\x63\xd3\x1a\x2d\x50\xcd\x15\x2b\x98\ +\xcc\x17\xe5\x31\xc1\x18\xc0\xe4\x54\xa7\x30\xc6\x87\x14\x10\x0a\ +\x50\x6e\x00\x15\x52\xb3\x76\xff\xf9\x62\x15\x0b\xa5\x2a\xba\x3b\ +\xda\x90\x6d\x4b\x4b\x20\xc5\x96\xd7\xd7\xd3\x85\xab\x37\xac\x45\ +\xcd\xb6\x71\xfe\xc2\x04\x6a\x35\x2b\x6a\x21\xbe\x9b\xe1\xec\xd4\ +\x7c\x00\xc0\xb9\x04\xac\x1a\x93\x15\x01\x54\xa2\x1b\x45\xf2\xd7\ +\xcc\x3f\xaa\x08\x23\x20\xe9\x34\xda\xba\x7a\xd1\x3b\xba\x01\x7d\ +\xfd\x7d\xb8\xfd\xda\x61\x74\x77\x64\x14\x13\x14\x88\x92\x51\x19\ +\xcf\x8d\x88\x09\x4e\x7c\x7c\x4c\x80\x12\x12\x53\x00\xc5\x52\x0d\ +\xb3\x0b\x65\x74\xb6\x67\xd0\x99\xcd\x40\x91\xcc\xaf\xaa\xbb\x33\ +\x8b\xab\xae\x58\x8b\xf6\x6c\x3b\xce\x9e\x1f\x47\xb9\x5c\x09\x03\ +\x2b\x02\xe0\x2a\x00\xef\x07\x70\x02\xc0\xb1\x04\xac\xea\x97\x25\ +\x1f\xf5\x8b\x92\x6c\xb6\x1d\x37\xdc\xb0\x09\xab\x06\x7b\x23\x52\ +\x12\xf7\x7f\xaa\x1c\x7d\xe2\x9e\x27\xca\x65\x79\x17\x4b\x34\x72\ +\xa8\x82\x09\x21\xc8\x64\x3b\xd1\xd6\xd1\x0d\x92\x4a\xa3\xa7\xab\ +\x1d\xed\x6d\x69\x7f\x8b\x2b\x3e\x31\xe5\x3e\x24\x91\x2d\xd2\x0c\ +\x0d\x46\x8f\x0a\xfa\x05\xe8\xeb\x8a\x01\x50\xec\x41\x7e\xa1\x82\ +\xb7\x4e\x4e\xe2\xea\xb5\xfd\x18\x1d\xec\x96\x36\x31\x0d\x7c\x18\ +\x29\x7a\xba\xb3\xb8\xf7\x43\x77\xa2\xaf\x37\x87\x47\x9e\xda\x85\ +\x4b\xe3\x53\x51\x46\xf6\x9b\x01\xfc\x35\x9c\x9d\x9a\xff\x6e\x74\ +\xcb\x03\x95\x64\x44\x30\xbe\x2c\x6b\xa0\x72\xb6\x41\xea\xc0\x47\ +\xdf\x7f\x2b\x36\x5d\xb3\x16\x80\x06\x5b\x88\xf3\x5f\x14\xee\xa8\ +\x9e\x27\xa2\x3b\x23\xe6\x38\x46\xd4\x85\x29\xcb\x35\x48\x62\x5e\ +\x5f\x4c\x51\x82\x92\x2e\x9d\x00\x28\xa9\x14\x31\x9f\x7e\xc0\x86\ +\xd7\x09\x4c\x72\x1a\x3d\x7b\xe2\xc3\xf5\x00\x15\xf4\xcd\x3b\x76\ +\x0e\x1c\xb7\x1b\x0b\x87\x4e\x4d\xa3\x54\xb1\x70\xc5\xea\x1e\xa4\ +\x35\xfd\xa5\x14\xe8\x68\xcf\x60\xcb\x9d\xd7\xa3\x27\xd7\x85\x87\ +\x9e\x78\x1e\xef\x9c\x3c\x17\x05\x56\x63\x70\x46\xb5\xd7\x01\xf8\ +\xd6\xe8\x96\x07\xf2\x09\x58\xc5\x93\x65\x0d\x54\x80\xf3\x10\xa5\ +\x52\x04\x29\x12\x4c\x36\x54\x83\x15\x45\xc0\xaa\xc2\xcb\x93\xc2\ +\xfc\x23\x86\x6a\x11\x44\x96\x25\xe7\xd7\x65\xe0\x29\xdc\x52\x82\ +\x95\x79\x05\x71\x6b\xa0\x91\x7e\x72\x4d\x03\x27\x26\x30\x16\x40\ +\xb9\x07\xba\x8d\x25\x6a\x96\x8d\x77\xce\xcd\xa2\x5c\xa9\xe1\xaa\ +\x35\x7d\xc8\xb6\xa7\x35\x9b\xa8\x02\xe9\x74\x0a\xb7\x5c\xbf\x01\ +\xb9\xee\x4e\x3c\xfc\xe4\x4e\xec\x7f\xfb\x78\xd4\x96\xf2\x7d\x00\ +\x7e\x1b\x0e\x58\xfd\xc1\xe8\x96\x07\x2e\x00\xc9\x4c\x76\x53\x59\ +\xf6\x36\xaa\xae\xce\x0e\xdc\x7e\xeb\x26\x0c\x0d\xe4\xa4\xbc\x44\ +\x1b\xd0\x0c\x76\xc5\x84\xc4\x00\x2d\xa1\x19\x26\xa9\x4c\x93\xd5\ +\x2d\xcd\x00\x35\x2d\x04\xb9\xc6\xf4\x89\xd9\x52\x78\x7a\xe3\xc9\ +\xa0\xd4\xa8\x8c\x7a\x00\xca\xf9\x61\x72\x2a\xda\x64\x53\x8a\xfc\ +\x42\x05\x85\x72\xcd\x57\x79\xd5\x4d\xa0\x20\x00\x06\xfa\xba\x71\ +\xe5\x15\x6b\x51\xae\x54\x71\x21\x7a\xb7\x9b\x0c\x9c\x67\x7d\x13\ +\x80\xbd\x00\x26\x12\xbb\x95\x99\xac\x08\xa0\xba\xe3\xd6\x4d\x18\ +\xea\x77\xe7\x82\x0a\x29\xc2\x54\x41\x6d\x3c\x9b\x74\xc9\x01\x4b\ +\x4e\x14\x99\x7c\x19\xd9\xd6\xbc\xe9\x09\x93\xb3\x66\xf3\xa8\x94\ +\xd1\x61\xcc\x89\x89\x50\x41\x58\xb3\x00\x4a\x64\x83\x0b\xa5\x2a\ +\xf2\x0b\x15\x74\x77\xb4\xa1\xa3\x3d\xc3\x14\x25\x1b\xe4\x72\x5d\ +\x1d\xb8\x6a\xc3\x3a\xa4\x52\x69\x9c\xbb\x30\x8e\x4a\xb8\x8f\x60\ +\x0a\x0e\x50\xdd\x05\xe0\x10\x80\xd3\x09\x58\x45\xcb\xca\x58\x3d\ +\x81\x6a\x8e\x11\x8c\x54\xc9\xe9\xbd\x31\xad\x88\xa2\xa9\xfc\xe0\ +\xca\x65\xba\x21\xfc\x8f\x51\xb3\xa9\x5b\x47\x74\x26\x76\x1c\x8e\ +\x1f\x85\x0b\x49\xaa\xfe\x6b\xb5\x28\xea\x0c\xeb\xa3\xd4\x3c\x66\ +\x59\x05\x4a\xa9\xfe\x1e\x7a\xc9\xc0\x82\x04\x0d\xbd\xae\x41\x1d\ +\xde\xbd\x0a\x5c\xa9\xf5\x9b\x4b\x50\x39\x3f\x80\x99\xf9\x32\x0e\ +\x1c\x9f\xc0\xc5\xe9\x42\x50\xab\xa2\xb1\x14\x40\x5f\x4f\x27\x3e\ +\xf9\xd1\xbb\xf1\xb9\xfb\xee\xc1\xe0\x80\xd1\x6e\x37\xef\x85\xe3\ +\x76\xf3\xd3\x00\xd2\xc9\x0a\x0c\xe1\xb2\x32\x18\xd5\x2d\x9b\xb0\ +\x6a\xa0\x27\x44\xd5\x0b\x63\x56\xce\x81\x91\xad\xa9\x85\xec\x4a\ +\xd1\xa4\x7a\x72\x35\x46\xa6\xe2\x9b\x9d\xa2\x8b\x24\x04\xf3\xae\ +\xea\xa7\x06\x55\x6a\x56\xa4\x76\x80\x52\xc1\xb6\x22\xd8\x93\x73\ +\x18\xce\xa0\x9c\xf0\x68\x35\xb3\x62\x59\x98\xce\x97\x90\x4a\x11\ +\xf4\x74\xb6\x73\x4c\x49\xcc\xd3\x96\x49\x63\xdd\x9a\x61\xac\x5a\ +\x35\x80\x8b\x97\xa6\x4c\xdc\x6e\x56\x01\xf8\x09\x00\x45\x00\xfb\ +\x13\xb7\x1b\xbd\x2c\x7b\x63\x3a\x2b\xd2\xac\x02\xea\xd8\x14\x2c\ +\x66\x29\xc7\x30\x30\xab\xd7\x76\xc5\x15\xa3\xb0\x9c\x13\x21\xbc\ +\x6e\xf0\x32\xce\x4c\x62\x84\xb6\x56\x08\x21\xb0\x6c\xd7\x90\x6e\ +\x0a\x4a\x8a\x04\x71\xc1\x89\x0b\x52\xa8\x77\x80\x19\x40\xe9\xea\ +\xf1\x5a\x40\xe0\xec\x76\x73\xe4\xf4\x34\x4a\x65\xc7\xc8\xde\xd6\ +\x96\x92\xcb\x76\xcf\xdb\x33\x69\xdc\x71\xf3\xb5\xe8\xc9\x75\xe1\ +\x91\x27\x77\xe2\xd0\xd1\x53\x51\x57\x61\x18\xc0\x1f\xc3\x19\x19\ +\xfc\xb7\xa3\x5b\x1e\x98\x4a\x0c\xec\xb2\xac\x28\xa0\xf2\x24\x18\ +\xdf\x03\xce\x4f\x2e\xe0\xec\xc4\x3c\x08\x91\x79\x87\x9e\x21\xc9\ +\xa8\x42\x54\xe9\x88\x1c\xa3\x08\xe2\xcb\x8c\x62\x5a\x44\x0f\x33\ +\xe1\xac\x50\x5b\x9c\x61\x64\x7c\x18\x73\x72\x44\xd3\xaa\x72\xd5\ +\xf2\x55\x38\xad\xd0\xb0\x53\x0d\xb3\xa1\x11\xc5\xb4\x0c\xa0\xdc\ +\x52\x99\x04\x96\x4d\x71\xf2\x42\x1e\xa5\x8a\x85\x6b\xc7\xfa\xd1\ +\xd5\x91\x11\x17\x38\xf5\x0f\xd3\x29\x82\x8d\x57\xad\xc3\xcf\xfc\ +\xd4\xbd\x78\x7c\xeb\x8b\x78\xfd\xcd\x43\x51\x33\xd9\x73\x00\xfe\ +\x4f\x38\xeb\x82\xfd\xee\xe8\x96\x07\x4e\x02\xc9\x88\x20\x2b\x2b\ +\x0c\xa8\x02\x4e\xe5\x1d\x15\x4a\x35\x4c\xcd\x16\x7d\x54\x62\x1f\ +\x05\xd5\x83\x41\x54\x0c\x2b\xcc\x40\x4f\xf4\x8a\x97\x16\x08\xa3\ +\x8c\xf9\x26\x03\x02\x50\x03\x60\x1c\x69\x05\xc3\xd2\x81\x91\x72\ +\x42\xad\x36\x4f\x34\x60\x44\xc5\xab\x60\xb1\x15\x00\xc5\x8a\x4d\ +\x81\xf3\x93\xf3\x28\x57\x6b\xd8\xb8\x7e\x10\x7d\xdd\xed\xca\x2d\ +\xbc\x9c\xeb\x41\xb1\x7e\xcd\x20\x3e\x7f\xff\x3d\xe8\xed\xe9\xc6\ +\xae\x97\xf7\xa1\x54\xaa\x44\x6d\xcd\xf5\x0b\x00\x46\x01\xfc\x06\ +\x80\xd7\x47\xb7\x3c\x90\x80\x95\x2b\x2b\xc3\x98\x2e\x59\x30\x19\ +\x55\x8f\x38\xff\x11\x30\xf8\x40\xbc\x17\x27\x98\xd0\x47\x08\xff\ +\x32\x39\xe7\x94\xc3\x01\xe2\x97\xc7\x94\x23\xb4\x43\x55\x16\x5b\ +\x07\xab\x97\x4a\x84\xc6\xcb\xcb\x57\x21\xa5\x01\x5b\x16\xa1\xee\ +\x1c\x31\xa1\xbe\xb0\x3f\x22\xf7\xa3\x59\x7f\xaa\xf6\xfb\x97\x5a\ +\x30\x7e\xab\x86\x06\x24\x97\x1d\xcd\x40\x00\x6f\x7c\xf7\xca\x8e\ +\xbb\x03\x33\xd5\x1a\xca\x65\xdb\xb8\xdb\x3e\xcd\x24\x4f\x6f\xa3\ +\x54\x0a\x60\x72\xb6\x84\x37\x8f\x8d\x63\x7c\xa6\xa8\x78\x22\xf9\ +\x8e\x0c\x0d\xe4\xf0\xe9\x7b\xdf\x87\x4f\xdf\xfb\x01\xf4\xf6\x44\ +\xee\x76\x43\x00\xdc\x0b\x67\xb7\x9b\x4f\x00\x20\x89\x91\xdd\x91\ +\x95\x6d\x4c\x07\x30\x35\x57\xc6\xd4\x9c\x33\x87\x47\xa5\xe9\xb0\ +\xac\x44\xc9\x80\x04\xe3\x93\xce\xd8\x2d\xa9\x86\x21\x46\x52\x35\ +\xd3\x52\x1b\xb1\xe2\xcc\xa1\x8a\x6b\x99\x6a\x36\xa3\xa2\x31\x63\ +\x69\xcc\x42\x4c\x99\x13\x60\xce\x9e\xf4\xe5\xf2\x01\x3a\x80\xe2\ +\xd2\x30\x19\xcb\x55\x1b\x53\x73\x25\x64\xd2\x69\xe4\xfc\xb5\xad\ +\xd4\x2a\x68\xb6\x3d\x83\xb1\x75\x23\xe8\xef\xeb\xc5\xf9\x8b\x13\ +\x98\x5f\x28\x46\x19\xd9\x47\xe1\xac\x6d\x35\x05\xe0\xed\xdc\xd8\ +\x66\xeb\x72\x37\xb2\xaf\x1c\xa0\x72\xe7\x51\x89\xf7\x77\x2a\x5f\ +\xc2\x54\x3e\x58\x2e\x56\x65\x4c\x37\xb2\x5d\xd5\x09\x58\x4e\xde\ +\x78\xa0\xe5\x94\x53\x07\x70\x69\x12\x98\x01\x52\xbd\xb0\x15\x6f\ +\xbe\x43\x1c\x70\xd2\xa9\x7c\x71\xc1\xc9\x89\x33\x30\xe4\xd3\x06\ +\x00\x4a\x2c\x94\x00\x55\x8b\x62\x7a\xce\xd9\x21\xba\xb7\xbb\x8d\ +\x5b\xdb\x4a\x2c\x37\x93\x4e\x61\x74\x64\x15\x56\x8f\x0c\x61\x62\ +\x72\x1a\x33\xb3\xf3\x51\x97\xb2\x0f\xc0\x3d\x6e\xad\xfb\x72\x63\ +\x9b\x2b\x97\x33\x58\xad\x1c\xa0\x1a\xe0\x17\xff\xf4\x00\x60\x2a\ +\x5f\xc2\xa4\xc7\xa8\x88\x08\x49\xfc\x49\x33\x01\x4b\x15\x14\xf1\ +\x95\x34\x03\x2d\x45\xc1\xc6\x10\xd3\x24\x0a\x45\x22\x63\xf5\x7f\ +\x84\x57\x08\x95\x05\xca\x00\xa5\x86\xa6\xa8\xa9\x48\x91\xec\x89\ +\x09\x68\x16\x40\x09\x58\x05\xcb\xb6\x31\x33\x57\x46\xa5\x66\xa3\ +\x37\x97\x45\x26\xad\x1f\x11\x4c\xa7\x08\x86\x06\xfb\x30\xb6\x6e\ +\x35\xf2\x73\x0b\x18\x9f\x98\x01\xa5\x08\x73\xbb\xe9\x04\xf0\x01\ +\x38\xab\x87\xee\xc9\x8d\x6d\x5e\xb8\x5c\x27\x87\xae\x58\xa0\x02\ +\x9c\x1b\x3c\x95\x2f\x61\x6a\xae\xe4\x67\x14\xc1\xa2\x59\x80\xc5\ +\x1d\x35\xc8\xb2\xe4\x3a\x14\x71\x06\x95\x34\x05\x97\x04\x1b\x9d\ +\x0c\x36\x5a\x8b\x9a\xd1\xbc\xa9\xd0\xb4\x7e\xfd\x44\xea\x6f\xdd\ +\xaa\x9d\x10\x68\x02\x50\x41\x78\x08\x83\x12\x4e\x45\xdb\x57\x7e\ +\xa1\x82\x85\x62\x0d\xbd\x5d\xed\xc8\xb6\xa7\x95\x99\x28\x9c\xe7\ +\xa2\xbf\x37\x87\x2b\xd6\xaf\x45\xb5\x5a\xc5\x85\x4b\x93\xb0\xac\ +\xd0\x11\xc1\x0c\x80\xf7\x00\xb8\x0e\xc0\xeb\x00\x26\x2f\x47\xb0\ +\x5a\x39\x40\xa5\x71\xa1\x99\x9a\xf3\x54\x3f\x3e\x5c\xcb\xae\x98\ +\x00\x13\xc0\xe2\xc3\xe3\xb3\x2c\xb1\x2d\x61\x12\x95\x8c\xd4\x81\ +\x56\x66\xaa\xa4\x1a\x88\x78\x31\x54\x01\x4d\xd1\x53\xc9\x52\xf4\ +\xed\x30\x55\xed\xf8\x38\x13\x70\x62\xd2\x69\x0a\xd7\x01\x94\x58\ +\xce\x42\xa9\x8a\xd9\xf9\x32\xba\x3a\xda\x9c\xb5\xad\xa8\xb2\x38\ +\x10\x02\xe4\xba\xb2\xd8\x30\xb6\x16\x99\x74\x1a\xe7\x2f\x4e\xa0\ +\x52\xa9\x46\xb9\xdd\xdc\x00\x07\xb0\x0e\xe2\x32\x74\xbb\x59\x79\ +\x40\xe5\x89\x52\xf5\x93\xcb\x6f\x25\x60\x71\x47\x31\x30\xa4\x59\ +\xc0\xc5\xd7\x15\x4a\xcf\x22\xdb\x64\x9e\xc0\x4b\xc4\xfc\x51\x35\ +\xfb\xa2\x11\x6d\x52\x72\x23\xaa\x06\x21\xe2\x0f\xb7\x46\x19\xc7\ +\x83\xb3\x56\x03\x94\x58\x07\x05\x45\xb1\xe2\xcc\x64\xcf\xb6\x65\ +\x90\xeb\x6a\xd7\x5c\x01\x27\x53\x47\xb6\x0d\xeb\xd6\xad\x46\x4f\ +\x77\x37\xce\x5f\x98\x40\xa1\x58\x8a\x7a\x36\xd6\xc3\x59\x93\xfd\ +\x0c\x80\x23\xb9\xb1\xcd\xf4\x72\x01\xab\x15\x03\x54\x83\x9e\x31\ +\x9d\x8d\x24\xc0\x64\xbe\x84\xa9\xb9\xa2\xff\xa2\x46\x81\x15\xd0\ +\x38\x60\xf1\x71\x0a\x23\x7e\x4c\xe2\x63\x0a\x5c\x72\xdd\x11\xe9\ +\xf4\xb3\x4b\xe3\xd9\xa1\x88\x08\x48\x42\x21\x52\x61\xe1\x43\x7b\ +\x91\x03\xf4\x3a\x9b\x16\x55\xb7\x5c\x9c\xc7\xde\x4c\x80\x72\xf2\ +\x85\xcf\xd9\x62\xf7\x21\x24\x00\x2a\x96\x8d\xa9\x7c\x11\x29\x42\ +\xd0\xdb\x9d\x75\x97\x28\x52\xb7\xb1\x3d\x93\xc6\x9a\xd1\x21\x0c\ +\x0d\xf5\xe3\xd2\xf8\x14\x66\xa3\xdd\x6e\x86\xe0\xb8\xdd\x2c\x00\ +\x78\x33\x37\xb6\xb9\x76\x39\x80\xd5\x8a\x01\x2a\x91\x51\x79\x09\ +\xa7\xe6\x8a\xce\x56\x4d\x84\x67\x15\x8b\x0f\x58\x4c\xfa\xd0\x4a\ +\x42\x83\x95\xed\x34\x15\x6e\x9e\x58\x0c\x8b\x7c\xd0\x6a\x8d\xfa\ +\xc7\x02\x92\x3f\x69\x4a\x2f\x46\x40\x44\xd4\x91\xd4\x07\x44\x55\ +\x59\x54\x5b\xa4\x9f\xa2\xde\x51\x3c\xc4\x07\x28\x27\x8f\x1a\x79\ +\x2d\x8b\x62\x6a\xae\x84\x9a\x45\xd1\x9b\x6b\x47\x26\x1d\x3e\x22\ +\x38\xbc\x6a\x00\x6b\xd6\x8c\x60\x66\x26\x8f\xa9\xa9\x59\x44\x48\ +\x0e\xce\x88\x60\x07\x9c\x0d\x24\x4a\xef\x76\xb0\x5a\xb1\x40\x05\ +\x37\x31\x67\x4c\xf7\x81\xa6\xd9\x80\x15\x9c\xc5\x05\x2d\xa9\x9c\ +\xba\x18\x8e\xba\xdd\xea\xfa\x65\x14\x88\xb6\x7d\xc5\x15\x51\xbd\ +\x13\x98\x57\x84\x11\x3e\x96\xaf\x8d\x10\x2c\xaa\x7d\xb2\x7d\x8b\ +\x89\xa6\x7c\x8e\xa6\x03\x94\x90\x99\x2d\x9f\xba\xe5\xcc\x2e\x94\ +\x51\x2c\x57\xd1\xeb\xed\x76\xa3\x99\x79\x9f\x4a\x11\x0c\xf4\xe5\ +\xb0\x7e\x6c\x0d\x8a\xc5\x32\x2e\x8e\x1b\xed\x76\xb3\x05\xce\x42\ +\x7c\x7b\x72\x63\x9b\xf3\xef\x66\xbb\xd5\x0a\x03\x2a\x2a\x25\x11\ +\x47\xfd\x00\x48\xec\x0a\xa8\x13\xb0\x98\x40\x15\xec\xb4\x0a\xb4\ +\x4c\xa2\x89\xa6\x01\x44\xca\x48\x22\xe2\x43\x6a\x20\xba\x3f\x98\ +\xd9\xdf\x4d\x27\x81\x42\x66\x26\x7a\xee\x44\xb4\x69\x24\x10\x20\ +\xf2\x44\xcd\xb0\xb6\x34\x03\xa0\x82\x9f\x20\xc1\x5c\xa1\x8a\x7c\ +\xa1\x82\x9e\xae\x76\x74\xb6\x67\x84\xf2\xd8\xde\x11\xf4\xe4\x3a\ +\x71\xc5\xfa\x51\x80\x02\x17\x2e\x4e\xa2\x5a\x0b\x5d\xdb\x2a\x0d\ +\x67\xa7\x9b\x9b\x00\xbc\x01\xe0\xe2\xbb\x15\xac\x56\x84\x0b\x8d\ +\x4c\xff\x05\x87\x05\xaa\xf8\xd2\x52\xb5\xab\x05\x97\xcc\x5b\x0f\ +\x89\x59\xb8\x4d\x74\xd6\xd1\xb9\x5a\x78\xee\x16\x61\xf6\x90\xe0\ +\x4f\xe3\x42\x22\xba\x8f\x28\xbe\xf4\xca\x68\x02\x0d\xf2\x42\xb0\ +\xee\xcb\xea\x1f\x55\x1a\xb1\x35\x0c\x88\x46\xfd\x51\x4d\x27\xd4\ +\x9d\xa1\x42\x30\x9f\x92\x67\x64\xdc\x87\x86\x8a\x39\xa0\xe8\x04\ +\x05\xeb\x6a\xe4\x97\x29\x7c\xb2\xc4\xd6\x89\xcf\x80\x78\xff\x82\ +\x7c\x34\x00\x53\x11\xa4\x94\xcf\x48\x50\x0e\xe0\xd8\x52\xf7\x1e\ +\x1d\xc7\xc5\xe9\x42\x68\xb7\x08\x80\x55\xfd\x3d\xf8\xc4\x4f\xbc\ +\x17\xf7\xdd\xfb\x3e\xf4\xf5\xe6\x4c\xdc\x6e\x3e\x09\xe0\xfb\x00\ +\x3e\x0a\xbc\x3b\xdd\x6e\x56\x04\xa3\xba\xfd\x96\x4d\x18\xec\x53\ +\xcd\x4c\x27\xc1\xcc\x74\x40\xc1\x7e\xd8\x30\x33\x75\xa8\x3e\x96\ +\x15\x9c\x99\x98\x97\xe4\x34\x66\xaa\x28\x53\x8b\xa6\x1d\x81\x0a\ +\xa6\x6d\x06\x31\x24\x54\xd1\xbd\x30\xfe\xd3\xd8\xc0\xf9\x20\x95\ +\x71\x9a\x49\x28\xb1\x1f\x01\x87\x59\xdb\x96\xa8\x82\xf9\x9d\x66\ +\xd3\x1b\x8c\xe2\x71\x6d\xd1\xa9\x8b\xdc\x47\x32\xdc\xa0\x5f\xae\ +\x5a\x98\xcc\x17\x91\x4e\xa7\xd0\xd3\xed\xae\x6d\xa5\x99\x67\x91\ +\x6d\xcf\x60\xcd\xe8\x08\x06\x06\x7a\x71\xf1\xd2\xa4\x89\xdb\xcd\ +\x1a\x00\x1f\x01\x30\x0e\xe0\x60\x6e\x6c\xb3\xfd\x6e\x62\x56\x2b\ +\x06\xa8\x24\x63\xba\x9b\x72\x32\x5f\xc2\x64\xbe\x08\x0e\x8a\x5a\ +\x00\x58\x52\x79\x61\x75\x19\xaa\x87\xe1\xed\x60\x20\x49\x65\x17\ +\x17\x3b\xab\x0e\x82\xce\x55\x27\xb4\x4f\x7e\x8c\xa1\xcd\x29\x4c\ +\xa8\x7a\x92\x82\xf4\x7e\x12\xf8\x8c\x88\x68\xd3\x32\xf5\x87\xcf\ +\x20\x65\xce\x34\xc6\x2d\xb9\x99\x42\x9d\xf5\x01\x94\x58\x16\x15\ +\x02\xab\x16\xc5\x54\xde\x71\xbb\xe9\xeb\xce\xf2\x6e\x37\x42\x39\ +\x6d\x99\x14\x56\x0f\x0f\x62\xf5\xc8\x10\xa6\xa6\x66\x31\x3d\x3b\ +\x17\x75\xb5\xfb\xe1\x80\x55\x0d\x8e\xdb\xcd\xbb\x66\x21\xbe\x15\ +\x04\x54\x39\x65\xfe\xa9\xb9\x62\xc0\xa8\xc4\x51\x37\x25\x88\x40\ +\x09\x5a\xe1\xf6\xa6\xc5\x05\x2d\x36\xbd\x0a\x68\x88\x22\x40\xdd\ +\x47\xd3\x41\x03\xc7\x28\x4e\xea\x01\x22\x00\x3a\xd4\xf0\x99\x94\ +\xa2\x58\x65\x0d\x94\x35\xd0\xeb\x8b\xa7\xde\x3c\x00\x29\x8d\x8c\ +\x10\x94\xb9\x46\x3a\xc3\xbb\x6e\xaa\x81\xb2\x09\x1a\x3b\x94\x5c\ +\x0e\x1f\xe8\x9d\x13\x00\xb6\x4d\x31\x3d\x57\x46\xa9\x6a\xa1\x2f\ +\x97\x45\x26\x93\x82\xce\xbf\x31\x4d\x08\x06\x07\x7a\x31\xb6\x76\ +\x14\xf3\xf3\x05\x8c\x4f\x4e\xc3\xb6\x43\x9f\xa5\x4e\x38\x73\xad\ +\x06\xe0\x18\xd9\x0b\xef\x06\xbb\xd5\xca\x07\xaa\xbc\x6a\x66\x7a\ +\xfd\x80\x05\x34\x81\x65\x09\x11\x61\x70\x11\x5e\x97\x00\x49\x4c\ +\x87\x88\xa2\x53\x41\xaf\x09\x10\xa3\xad\x04\x4a\x5c\x33\x10\xc2\ +\x95\x40\x25\x54\x52\x03\x0e\x35\x2d\x5e\x4a\xeb\x32\x2e\xe5\x8c\ +\x50\x80\xe1\x4f\x7c\xd5\x94\x68\x08\x55\x10\xde\x2c\x80\xf2\x63\ +\x55\x1b\x56\x30\x65\x50\x38\x6e\x37\x73\xc5\x0a\x7a\xbb\xda\xd1\ +\xd1\x9e\x56\x14\xe2\x8e\x08\x12\x82\xde\x9e\x6e\xac\x5f\x3f\x0a\ +\xab\x56\xc3\xc5\x4b\x93\xa8\x85\xbb\xdd\xb4\x01\xd8\x0c\xe0\x1a\ +\x00\xaf\x01\x98\x5e\xe9\x60\xb5\x22\x8c\xe9\x80\xd2\x3c\xcb\xc7\ +\x29\x2c\xe0\x7e\x1e\xc9\xd8\xc9\x17\xaa\x5b\xe3\x48\xaa\x47\x61\ +\x78\xd5\x9a\x8f\x99\x40\x7e\x8d\x26\x3e\x07\x6f\x74\x07\xd7\x06\ +\xc9\xf0\xcc\x74\x88\x8a\x4f\x3d\x53\x3e\x65\x2b\x15\x9a\x24\x89\ +\x67\x60\x27\x2a\x73\xb8\x0c\x3e\x94\xfb\xd3\x9a\xce\xf9\x0a\x84\ +\xca\xd5\x6c\x4a\x1c\x6a\x70\xd3\x52\xbe\x2c\x0a\xc2\xd9\xa7\xf8\ +\xeb\xe2\x75\x28\xb8\xdf\x8a\x42\xdc\xfc\x7c\x22\xc9\xd7\x50\xfb\ +\xec\xe8\x9f\x93\x20\x0f\x55\x3e\x0f\x62\x18\xa5\x14\x17\xa7\x0b\ +\xd8\x7b\x74\x1c\x13\xcc\xda\x56\xaa\xb4\x29\x02\x8c\x0c\xf6\xe1\ +\x53\xf7\xbe\x1f\xf7\xde\x73\x37\x72\xdd\x9d\x51\x46\xf6\x34\x80\ +\x2f\xc0\x59\xdb\xea\x6e\x00\x58\xc9\x46\xf6\x15\x03\x54\x9e\x48\ +\x37\x9b\x3d\x96\x00\xa6\x3e\xc0\x12\x77\x2d\x31\x05\x2d\xb6\x7d\ +\xaa\x41\xa9\x50\xe0\x22\xe2\xe6\x95\x54\x7a\xc1\x04\x92\xc5\xab\ +\x56\x6c\xba\xb0\x70\xf6\x44\x19\x20\xb3\xa1\x68\x30\x12\x53\x29\ +\x3a\x1b\x52\x0e\x37\xf2\xc7\xd4\x4d\x01\xcd\x64\x78\x22\x00\x91\ +\x57\x8e\x77\x2d\xc1\xa8\xc3\x54\x36\xe6\xbb\x05\x53\x2e\x2f\xfc\ +\x4c\xf2\xb3\xc2\xb7\x3c\x0c\xa0\x3c\x90\x12\x23\x45\x80\xf2\x9e\ +\x1b\x02\x60\x66\xae\x8c\xbd\x47\xc7\x71\x76\x7c\x5e\xf5\x7d\xe1\ +\xee\x7f\x5f\xae\x0b\x1f\xfe\xc0\x9d\xb8\xff\x93\x1f\xc2\xd0\x60\ +\x9f\xc9\x6e\x37\x1f\x82\x33\x22\xf8\x59\x00\xa9\x95\x0a\x56\x2b\ +\x46\xf5\x1b\xec\xcf\x39\x77\x50\x48\x31\x35\xeb\x1a\xd3\x15\x23\ +\x5d\xa1\x06\x6a\xe6\x20\xdc\xde\xa4\x50\xa1\x22\x54\x24\x1d\x25\ +\xd7\xd5\x43\x84\x42\x09\xf3\x1f\x51\xa6\x97\x51\x48\x5e\x62\x39\ +\xac\x73\xea\x81\x86\x88\x5e\xb9\xbf\x54\x93\xc9\x33\x72\xeb\x8d\ +\xef\x24\xaa\x78\x55\xa3\x42\x46\x03\xc3\xfa\x40\x19\x14\x23\xa2\ +\xf1\x5d\x37\x10\xc1\x82\x0c\x91\xeb\x53\xaa\x78\x4c\x84\x4e\xcd\ +\x0b\x92\x29\x8c\xf8\x6e\x5d\x95\x9a\x8d\xc9\xd9\xa2\x03\x46\xdd\ +\x59\xa4\x15\xcf\x50\xe0\x76\x93\xc2\xea\x91\x55\x18\x1e\x1a\xc0\ +\xf8\xc4\x14\x66\xf3\x91\x6e\x37\xc3\x70\x8c\xec\x79\x38\xbb\xdd\ +\xac\xb8\x85\xf8\x56\x16\x50\xb1\xc2\x8c\xfa\x05\xc6\x74\xc4\x02\ +\x2c\xee\x28\xc2\x8e\xe5\x1c\x36\x0f\xb4\xf8\xbc\xf2\xda\xed\x5a\ +\xdf\x45\xa2\x68\x07\xd7\x76\x12\x0b\x84\xf4\x20\xad\xb3\x35\x45\ +\x18\xdb\x15\x18\xe5\x60\x97\xe2\xc5\x93\x0e\x82\x13\x95\xad\xc9\ +\x07\x68\xaa\x06\x85\x40\x3d\x55\xd5\x23\xe8\x8b\xde\x01\x65\x6a\ +\xd4\xdc\xfc\x46\x01\xca\x49\xaa\x01\x29\xa6\x2d\x96\x4d\x31\x99\ +\x2f\xa1\x5a\xb3\xd1\xef\x1a\xd9\xf9\xaa\x82\x32\x32\xe9\x14\x56\ +\x0d\xf6\x61\xed\xe8\x08\x66\xf3\xf3\x98\x9c\x9e\x45\x84\xf4\xc0\ +\x01\xab\x36\x00\xaf\xe7\xc6\x36\x97\x57\x92\xdd\x6a\x65\x00\xd5\ +\xcd\x9b\x30\xd8\xa7\x36\xa6\x3b\xd3\x13\x82\xed\xc4\x59\xc0\x82\ +\xa2\xc0\xe6\xb0\x2c\x75\x0a\xb3\x39\x54\x61\xf5\x11\x65\xfd\xe1\ +\x9b\x54\xe8\x0c\xee\x41\xa8\xce\x50\x2e\x19\xf9\xe5\x85\xdf\xeb\ +\x10\xaa\x3c\x0c\xbf\x28\xe2\x09\x89\x28\x8a\x1d\xa1\x84\x30\xa2\ +\xa7\xa8\x97\x79\xc9\x25\xe3\x39\x82\x6b\x4f\x59\x1f\x43\x05\x52\ +\x86\x02\x94\x1b\x60\x0c\x50\x7e\x7a\x3e\xde\xb6\x1d\x55\xb0\x50\ +\xaa\xa1\x2f\x97\x45\x7b\x26\x2d\x81\x94\x27\xe9\x14\x41\x5f\x6f\ +\x0e\x63\xeb\x46\x51\x2e\x57\x70\x69\x7c\x1a\x56\xb8\xdb\x4d\x16\ +\xc0\xfb\xe0\x2c\x75\xbc\x07\xc0\xdc\x4a\x01\xab\x15\x63\xa3\x0a\ +\x6c\x05\xca\x08\xf9\x94\xb1\x17\xd4\x65\xc7\x0a\xb3\x65\x29\x0c\ +\xf0\x6c\xd9\x26\x4b\xe6\xca\xef\x92\x6c\xcc\x75\x44\x66\x08\xce\ +\x8b\x29\x1b\x6f\x28\x07\x5e\x81\xa1\x46\x3d\x1b\xdd\x35\x96\x13\ +\xef\x4f\x7f\xd5\xcd\x11\x27\x30\xc0\xfb\x65\x2b\x40\x8f\x2b\x51\ +\x51\x7c\x60\x2f\x22\x5a\x10\xf2\xaf\xa2\x50\x98\x38\x75\x41\xb2\ +\x43\x71\xba\x1d\x61\x8b\x54\x7e\x80\xf8\xba\xd5\xcf\x54\x94\x1d\ +\x4a\xea\x2a\x63\x13\x55\x5d\x14\x0a\xe0\xec\xc4\x3c\x5e\x3b\x7c\ +\x09\x53\xf9\x92\xf2\xfa\x7b\xc9\x53\x29\x82\xd1\xe1\x41\x7c\xfa\ +\x13\x1f\xc4\x3d\x1f\xb8\x03\x9d\x1d\xd9\x28\xbb\x55\x3b\x80\x5f\ +\x06\xf0\xd7\x70\x5c\x6f\x56\x84\x91\x7d\xc5\x00\x95\x27\x2a\x80\ +\x70\x23\x9a\x04\x58\x71\x41\x8b\x35\xc1\xcb\x23\x42\x72\x3d\xc4\ +\x3f\xa7\x6e\x3a\x0e\x25\xfc\x8a\x78\x66\x41\xb9\xb7\x49\x67\x03\ +\xd3\x4c\x09\xa0\xd2\x21\xb8\x82\xb9\xed\xd5\xd9\x2b\xa0\x99\x66\ +\xa0\xb8\x8e\x5a\x6f\x1a\xbf\xd1\xc1\x9f\x34\x37\x8c\xeb\xbe\x68\ +\x8c\x57\x3f\x05\x7e\x84\x00\xd0\x44\xe6\x89\x6e\x31\x2a\xaa\x2a\ +\xd4\x1d\x24\x96\xeb\x01\x00\x42\xd4\xcf\x00\x93\xca\x14\xa0\xc4\ +\x51\x5b\xbe\x0c\xe7\x77\x72\xb6\x88\xd7\x8f\x5c\xc2\x85\xa9\x05\ +\xa9\x3c\xf6\x24\x45\x80\xc1\xbe\x1c\x3e\xfa\xa1\xbb\x70\xdf\xbd\ +\xef\x43\x7f\xb4\xdb\x4d\x0a\xc0\xa7\xe1\x18\xd9\xef\x01\x96\xbf\ +\xdb\xcd\x8a\x03\x2a\x4f\x38\x78\xa0\xf2\xc3\x10\xa4\x33\x03\xac\ +\x30\x96\x65\x0a\x5a\xec\x43\x28\x01\x17\x00\xbd\x65\x5b\xe0\x8b\ +\x04\xf2\x39\x37\x1a\x15\x80\x2a\x5b\x01\x5f\x6f\x3c\x26\xc4\x19\ +\x94\xa8\xa3\x06\x89\x20\xa4\xc4\x21\x12\xf1\xa7\xb9\x67\xf2\x0d\ +\xe2\x3a\xaf\x8e\x82\xd7\x3c\xc1\x48\x2f\xaa\x88\x0c\x53\xf2\xda\ +\x28\x0e\xfa\xf9\xf7\x58\x7c\x18\x98\x26\x48\x93\x45\x19\x7a\x26\ +\x3e\x07\xcd\x02\x28\xca\x64\x20\x04\x98\x2b\x54\xb0\xf7\xe8\x38\ +\x4e\x9c\xcf\xc3\x56\x8d\x28\x32\x57\x2d\xd7\xdd\x81\xf7\x6e\xbe\ +\x05\x9f\xfb\xf4\x3d\x58\x33\xb2\xca\x64\x44\x70\x33\x80\xef\x02\ +\xf8\x19\x00\x99\xe5\x0c\x56\x2b\xc3\x46\xa5\x32\xa6\xbb\xe2\xb9\ +\xd0\x68\x7d\xf4\x42\x87\xe8\x4d\xed\x58\x7c\x2a\x9d\xb1\x5a\x3f\ +\xaa\xc7\xe4\xf5\xdf\x2f\xde\xe5\xc7\x37\x84\xab\x6c\x49\xda\x55\ +\x12\x74\xbb\x2b\x2b\x98\x8b\xe2\xc2\x68\x67\xa2\x1b\x80\x8e\x56\ +\x42\x8c\x45\x11\x97\x95\x53\x77\x41\xd5\xed\x17\x27\x7b\x52\xd5\ +\x19\x4b\x9e\x54\x2a\x16\x93\x88\x1f\xcb\xe4\x8d\xf1\x4e\x7e\x55\ +\xab\x83\xfb\x14\x65\x83\x72\x7e\xe4\x46\xcb\xb6\x2c\x45\x6f\xdc\ +\xd3\x9a\x45\x31\x91\x2f\xc1\xb2\xa9\x63\x64\x4f\xc9\xba\xbc\x77\ +\xda\x96\x49\x63\x68\x68\x00\xa3\xab\x57\x61\x7a\x66\x16\xd3\x33\ +\x91\x6e\x37\x03\x70\x8c\xec\x15\x00\x6f\xe4\xc6\x36\x57\x97\xa3\ +\xdd\x6a\x65\x01\x15\x6f\x4c\x00\xe0\x00\xd5\x04\x6b\x4c\x37\xd8\ +\xdc\x41\x3a\xd5\x6d\xb5\x85\x06\x41\x2b\x06\x20\x49\xed\x66\x46\ +\xde\xd4\x23\x82\x44\x0d\x92\xaa\xa5\x97\x25\xb0\x51\x4f\x7b\xf0\ +\xff\x54\x1f\x62\x53\xa0\x52\x18\xc6\x95\x33\xd6\x69\x38\xfa\x51\ +\x42\x35\xe1\x80\x6e\xf9\x16\x2a\x18\xb4\x02\x36\xc5\x1b\xde\xd9\ +\xc2\x7c\xd6\xa4\xb1\x26\x70\xc8\x48\x82\x84\xba\x75\xa5\xd8\x03\ +\xaa\x41\x13\x15\x89\x63\x43\x55\xae\x38\x36\x75\xf6\x11\x2c\x55\ +\x2c\xf4\x77\x67\xd1\xde\x96\x52\x34\xdb\x39\x4b\x13\x82\xfe\xbe\ +\x5e\xac\x5b\xbb\x1a\x85\x42\xd1\x71\xbb\xa1\xa1\xb7\xb0\x0b\xce\ +\x7c\xab\x5e\x38\x46\xf6\xe2\x72\x03\xab\x15\xa3\xfa\x51\x2a\xdb\ +\x8e\x00\xd5\x97\x29\x64\xe9\x96\x28\xb5\x30\xa6\x6a\x28\xda\xb4\ +\x58\x1b\x8d\xa4\xea\x09\xea\x04\xc7\x1e\x94\x43\xea\xc2\x68\x13\ +\xc3\x04\x74\xd7\xc1\xb7\xb1\x30\xaa\xab\x7c\x11\xc0\xb4\x9b\x6d\ +\xb0\x42\xa7\x8d\x02\x27\xaa\xf9\x33\xc9\xe4\xed\x00\x4d\xd4\xb6\ +\x33\xad\x29\xce\xed\xa8\xd2\xe6\x04\x28\x47\x2e\x79\xa6\x06\x29\ +\x3c\xd0\xe8\x44\xfb\x27\x4f\x7d\x94\x9a\x14\x61\xee\xa7\x4a\xc5\ +\xe3\xc2\xf5\x6a\x1e\x1f\xc6\xb6\x2f\xc8\x6c\xdb\x14\xa7\x2e\xe6\ +\xf1\xfa\xd1\x4b\x98\x99\xaf\x28\x2e\x4c\xf0\x93\x49\x13\xac\x1b\ +\x1d\xc2\xfd\x9f\xfa\x30\xde\x7f\xd7\x2d\xc8\xb6\x65\xa2\x54\xc1\ +\x2e\x00\xff\x12\xc0\x5f\x02\xb8\x2a\xea\x2e\x2e\xb6\xac\x18\x46\ +\x35\xa0\x98\x9e\x40\xe0\x6c\xaf\x3d\x31\x5b\x12\x09\x06\x9f\xce\ +\x50\x2d\xe4\xe3\x34\xac\x49\x8e\x96\x4a\x10\xb7\x8e\x77\x43\xb9\ +\xc2\x88\xc4\xaa\x54\x2c\x8b\x89\x13\x1a\x22\x4e\x67\x60\x23\x08\ +\x9f\x42\xd1\x39\xef\x44\x63\xe0\xae\x47\x58\xb2\x24\x45\xea\x5f\ +\x10\x35\x33\x61\x19\x97\x00\x38\x9a\xa9\x0c\xe2\x77\x44\x26\x2a\ +\xee\x6b\xcf\x12\x28\x69\xb5\x06\xc2\xa8\x8b\x41\xf9\xbc\xb6\x28\ +\x74\x90\xb2\x75\xd6\xc7\xa0\xc4\xeb\xc0\x59\x36\x15\x65\xcc\x17\ +\xab\x98\x9a\x2b\xa1\xbb\xb3\x0d\xdd\x1d\x19\x29\x81\xaf\x78\x10\ +\x82\xae\x8e\x2c\xc6\xd6\x8d\x22\x9b\x6d\xc3\x85\x0b\x13\x28\x47\ +\xef\x76\x73\x13\x80\xdb\xe1\x4c\x0c\x3d\xbf\x5c\x98\xd5\x8a\x61\ +\x54\x2a\x61\xbe\x45\xd2\x17\x8b\x4b\xa7\xf3\xcf\x53\xb0\x80\x20\ +\x2e\xa0\x52\x2a\xb2\xa0\x1f\xd5\x33\xd1\x9b\x78\x83\xac\x17\x24\ +\xda\x94\xd9\xd7\x88\x0a\x2f\xa8\xef\xf3\x26\x96\xcc\x3a\xee\x89\ +\xed\xf6\x3b\x12\x03\x94\xa2\x8c\xe5\x2c\x96\x78\x64\x29\xa2\x10\ +\x76\x0a\x83\xae\x4a\x48\xfd\xd5\x74\x86\x8a\x60\xc3\xdf\x2d\xa9\ +\xab\xdc\x4d\x14\xd8\x10\x5c\x90\x64\xf1\x9f\x6d\x8c\x12\x87\x02\ +\xbb\x18\x61\x23\xa8\xfa\x99\x11\x43\xd9\xe7\x87\x7b\x9e\x35\xcf\ +\xb4\x97\x76\x66\xae\x84\xd7\x0e\x5f\xc4\xe9\x8b\x73\xa0\xb6\xba\ +\x7b\x80\xf3\xb1\xeb\xcd\x75\xe2\x03\xef\xbd\x1d\xf7\x7f\xf2\x43\ +\x18\x5e\x15\xe9\x76\x43\xe0\xd8\xac\xbe\x0f\xe0\x3e\x2c\x13\xb7\ +\x9b\x15\xc1\xa8\x6e\xbb\x25\x6c\xc2\x67\xd1\xb7\x51\xc9\xac\x45\ +\x2f\x71\x6c\x59\x72\xbc\xce\x08\xcf\x8c\x44\xb1\x6c\x88\x6b\x0f\ +\xe1\xdb\xc7\xda\xb1\xc4\x76\x0b\xf5\x10\xbe\x60\x08\xc5\xf1\x61\ +\x1a\xda\x18\x3e\x9f\x53\x6f\xab\x0b\x93\x48\x6d\x4f\x55\x4b\xd8\ +\x46\xa5\x1a\xd6\xc1\xe3\x45\x70\xb1\x28\x0b\x94\x22\x00\x72\x2a\ +\xb3\xca\x48\xa9\xe8\x2d\xf3\x01\x91\x8d\xdc\x94\x07\x3f\xc2\xe6\ +\x51\xb0\x3b\xae\xab\x6a\x3b\x54\x10\xc3\xd3\x27\x35\x13\x73\x62\ +\x08\x01\xaa\x35\x1b\xe3\xb3\x45\x10\x00\x7d\xb9\x2c\x52\x29\xf5\ +\x9d\x23\xc4\x31\xb2\x0f\x0f\xaf\xc2\xc8\xf0\x20\x26\x27\xa7\x31\ +\x93\x9f\x8f\x72\xbb\x19\x81\x03\x58\xd3\x00\x0e\x2c\xb5\xdb\xcd\ +\x8a\x00\x2a\x4f\xf5\x53\x5d\xd6\xc9\xd9\x22\x26\x67\xf9\x65\x5e\ +\xf4\x4b\xa0\xc8\x12\xb9\x74\x4b\x1c\xd0\x62\x8e\x7d\x63\x38\x11\ +\x81\x86\x69\xa1\x46\xb5\x13\x31\x46\x0b\xc0\x44\x63\x14\x87\x01\ +\xe4\xf8\xed\x90\x55\x2c\x4d\x52\x50\xd6\xfc\xc3\xfc\x11\x4d\x38\ +\x2f\xdc\xab\x18\x59\x17\x7b\x40\xc3\x52\x53\xdd\x82\x89\x7a\x1b\ +\x96\x00\x3b\xca\xe3\xa0\x48\xb1\xdd\x44\x62\x65\xbc\x4a\xca\x8e\ +\x08\xf2\x7d\xe7\xc3\xa4\x18\x03\x80\x72\x5b\xc9\x84\x59\xb6\x33\ +\x22\x58\xa9\xda\xe8\xef\xe9\x40\x5b\x46\x56\x92\xbc\xf4\x99\x74\ +\x0a\x03\x03\x7d\x58\x3b\x3a\x8c\xb9\xf9\x79\x4c\x4e\xe5\x23\xee\ +\x06\x7a\xe1\x80\x55\x0a\xc0\xde\xdc\xd8\xe6\xf2\x52\x81\xd5\x8a\ +\x02\x2a\x9f\x65\x33\xa9\x26\x67\x9d\xed\xb2\x74\x1f\xc7\x46\x58\ +\x96\x94\x5e\x03\x5a\x84\x47\x49\x88\x7e\x7a\xec\xfe\x7a\x84\xff\ +\x4f\x00\x28\xa2\x68\xa7\xa0\x8a\x08\x75\x28\xd3\x33\x94\x4a\xab\ +\x5c\x85\xc6\x0b\xc9\x98\x3a\xa2\xa7\xe6\xe8\x0b\x93\x76\xac\x11\ +\x2a\xd7\x13\xa9\xc0\xf8\x45\xe5\x62\x79\xa6\x44\x04\xc0\xe1\x5e\ +\x7e\x2a\xa1\x80\x4f\x88\x98\x1b\xc1\x32\x34\xdd\xa8\x20\x7f\xca\ +\x77\x24\x36\x40\x29\x9a\x26\xe7\xa1\x52\x98\xcf\xfa\x6c\x60\x7a\ +\xae\x8c\xf9\x52\x15\xfd\xb9\xac\xbf\xa5\xbc\xaa\xce\x54\x0a\xe8\ +\xe9\xe9\xc6\xd8\xba\x35\xa8\x55\xca\xb8\x38\x3e\x0d\xcb\x0a\x75\ +\xbb\xe9\x00\xf0\x7e\x38\x8e\xcd\x7b\x72\x63\x9b\xe7\x97\x02\xac\ +\x56\x16\x50\x29\x86\xa4\x26\xf2\x45\xdf\x98\x0e\x70\x1f\x36\x4e\ +\xe2\xb0\x2c\xc0\x1c\xb4\x08\x0b\x24\x02\x5b\x52\xa9\x70\x22\xf3\ +\xe2\x1a\x2c\xb1\x2f\x05\x70\xb1\xea\x25\xd7\x8e\x90\x1e\x91\x90\ +\xbe\x9a\x32\x30\x36\x7d\x5c\xdd\x10\xb2\xb1\x9b\x2f\x4c\xa1\x92\ +\xa9\xf1\x41\x28\x94\x86\x06\xc9\x4f\x8b\x44\xaf\x14\x40\xc4\xe8\ +\x92\xc2\xbd\x51\x5c\x36\xbf\x14\x25\xca\x4a\xcc\x4a\x0d\x50\x62\ +\x5b\xa3\x00\xca\x0f\xf5\xf3\x3a\x07\xf9\x42\x05\x33\xf3\x65\xf4\ +\x74\x65\xd1\xc5\xec\x76\x23\xd6\x99\x22\x04\x5d\x9d\x1d\x18\x5b\ +\x37\x8a\x4c\x8a\xe0\xc2\xa5\x49\x54\xab\xa1\xbb\xdd\x64\xe0\xbc\ +\xa3\xd7\xc3\x71\x68\x9e\x58\x6c\x23\xfb\x0a\x03\x2a\x59\x26\x67\ +\x1d\xa7\x64\xa2\x7b\x90\x1a\x64\x59\x00\x42\x27\x5c\x7a\xc7\x7e\ +\x12\x46\x1d\x93\x56\xe9\x64\x99\x14\x91\xc3\xd8\x70\xa6\x95\x21\ +\x2a\x21\x7f\x22\xab\x81\x44\x45\x5c\x18\x7c\x90\x75\xb5\x3a\x30\ +\x48\x2c\x94\x0b\xa5\xda\xa4\xd4\x08\x8c\x58\xab\x8f\xcc\xa6\xc2\ +\xec\x4e\x1e\x73\x63\xea\x60\x75\x34\x0e\x3c\xf8\x8b\xc4\xaa\x6e\ +\xbe\x5b\x11\x05\x6c\x4a\x51\xb3\x6c\x54\x2d\x1b\x55\x8b\xa2\x56\ +\x73\x8e\xfd\xb0\x9a\x0d\xcb\x72\x56\x41\xb0\xd9\xc1\x16\x78\x7f\ +\x04\x84\x1d\x69\x14\x40\x2a\x4a\xcd\xe3\x9a\xad\x18\x65\x24\x00\ +\x16\x4a\x35\x4c\xce\x16\xd1\x99\x75\xb6\x94\xd7\x5d\x61\x02\x20\ +\xdb\xde\x8e\x35\x6b\x56\xa3\xa7\xbb\x03\x17\x2e\x4e\xa0\x58\xaa\ +\x44\x8d\x08\x6e\x82\xb3\x08\xdf\x21\x00\xa7\x16\x13\xac\x32\x8d\ +\x17\xb1\x48\x42\xf5\x11\xce\x8a\x96\x3c\x00\xf8\x43\xb4\xf2\x67\ +\xd5\xbf\xc1\x84\x1d\xf5\x09\x01\x2d\x76\x94\x84\x10\x45\x42\xd7\ +\x6c\x41\xfc\xd2\x1d\x90\xa1\xfe\x6b\xc4\xbe\x08\xd4\xb7\x93\x10\ +\x78\xf9\xfc\xd6\xfa\xe1\x7e\x58\x08\x02\x53\x45\xb4\xd8\x11\x2a\ +\x66\x13\x6d\x2c\x62\xf3\x42\x45\xa4\xa3\xc2\x38\x3d\x55\xe7\x50\ +\xde\x3a\xde\x02\xae\x88\x17\xec\x42\x80\x73\x33\xb5\xc8\xe7\xde\ +\x57\x91\xa1\x70\xf7\x9f\x79\xf1\x7d\x30\x72\x46\x84\x6b\x2e\xf0\ +\x58\x96\x8d\x9a\x6d\xa3\x5a\xa3\xa8\xd6\x6c\xd4\x2c\xcb\x01\x1e\ +\xef\xcf\x9f\xa7\xc7\x02\x0c\xaf\xbe\x11\xe2\x3d\x01\x81\xfd\x8e\ +\x10\x82\x4c\x2a\x85\x4c\x9a\x20\x9d\x4e\x21\x93\x22\x48\xa5\x53\ +\x48\xa7\x08\xd2\x29\x82\x14\x21\x0c\x48\xe8\xd5\x3c\x91\x45\x71\ +\x97\xcc\xc5\xfe\xb9\x42\x15\xaf\x1d\xb9\x84\x1b\x2a\x35\x5c\x39\ +\xda\xcb\x1b\xd9\x99\xeb\x43\x08\xd0\xdd\x95\xc5\x7b\xee\xb8\x09\ +\xb9\x5c\x37\x9e\xde\xbe\x1b\xe7\x2e\x4c\x46\x19\xd9\xef\x86\xe3\ +\x76\xf3\x5b\x00\x1e\x1c\xdd\xf2\x80\x75\x61\xf7\x77\xd0\x6a\x59\ +\x31\x40\x25\xbf\x70\x4c\x38\x85\x8f\x48\x54\x03\x58\x00\x03\x5a\ +\x02\x60\x39\x71\xe6\xa0\x45\x88\xe3\x07\x47\x98\x3a\x89\xf8\xde\ +\x11\x84\x34\x9a\x06\x0f\x43\x30\xe9\x85\x3b\xf7\x6c\x26\x6c\x9b\ +\xfd\x6e\x12\xf9\xc1\x63\xc1\x4f\x7f\xc1\xf4\x7a\x6f\xe4\xa4\x0a\ +\xd1\x40\x15\x42\x83\x8c\xcc\x58\x2c\x3d\x14\x55\x1d\x45\x01\xd4\ +\xbf\x31\x92\xf2\xc4\x37\xd1\x4f\x22\xb3\x0d\x9b\x3a\x93\x26\xab\ +\x35\x1b\x95\x9a\x8d\x4a\xcd\x42\xb9\x6a\xa1\x52\xb5\x1c\x36\xe4\ +\x03\x92\xad\x1c\xf5\x13\xfd\x02\x95\xec\xc6\x6f\xbe\xcd\x4d\x3b\ +\x10\xa9\x91\x07\x5e\x29\x42\x90\x4a\x11\x64\xd2\x29\xb4\x67\x52\ +\x68\xcb\xa4\x90\x49\x07\x7f\x84\xf0\xcf\x96\x0e\xa0\xc4\xce\x96\ +\x2a\x35\xbc\x79\x7c\x02\x85\x72\x0d\x1b\xd7\x0f\x20\xeb\xee\xd2\ +\xac\xba\x66\x1d\xd9\x36\xdc\x70\xfd\xd5\xe8\xee\xea\xc4\xd3\xdb\ +\x76\xe3\xe8\x89\xb3\x51\x77\xef\x5a\x00\xff\x1e\xc0\x5a\x00\x7f\ +\x33\xba\xe5\x81\x62\xab\xc1\x6a\xc5\xaa\x7e\x5e\xc2\x09\xc5\xa8\ +\x9f\x98\x4a\xb7\x57\x27\x7f\xc0\xc6\xc9\x2f\x34\x6f\xae\x60\xcb\ +\x8d\x32\x9c\xab\x5d\x68\xb4\x69\xc4\x3a\xa4\x36\x46\xfb\x03\x72\ +\xda\x8f\xaa\xdf\x3a\xf0\x62\x42\x54\x4c\xc8\x54\x2d\x34\x35\x63\ +\x51\x63\xb0\xa3\xfa\x42\x59\x77\x1a\xf1\xfa\xb9\xc0\x54\xae\xda\ +\x98\x2f\x56\x31\xb3\x50\xc1\x64\xbe\x88\xe9\xb9\x32\x66\x17\x2a\ +\x98\x2f\x54\x51\xac\x58\xa8\xd6\x2c\x58\x16\x33\xd7\x8e\x38\xa3\ +\xa1\xbe\xad\xd1\x3d\xe7\xc6\x00\x58\xb5\xda\x4f\x03\x3f\x8d\x77\ +\x9f\x02\x15\x5f\x6e\xbc\xa7\x4e\x5a\x2e\x78\x96\x2a\x16\x0a\xa5\ +\x1a\x16\x4a\x35\x2c\x94\xaa\x98\x2f\x56\x51\xac\xd4\x50\xa9\x3a\ +\x20\xea\x56\xcb\x95\xa5\xdb\xf9\xc6\x01\x66\x8a\xa9\x7c\x11\xc5\ +\x92\xe5\x8c\x08\xb6\xe9\xa7\x4d\xa6\x52\x29\xf4\xf6\xe6\x30\xb6\ +\x76\x35\x8a\xc5\x12\xc6\x27\x66\x60\xdb\x14\x21\xe4\xaa\x1b\xc0\ +\x87\xdd\xdf\xd7\x72\x63\x9b\x8b\xad\x54\x03\x57\x16\x50\x51\x39\ +\xc5\xe4\xac\x6b\x4c\x67\x44\xbb\x38\x5e\x18\x60\x49\x27\x5e\x90\ +\xc2\xc6\xc4\x1a\xbd\x19\x55\x90\x7d\xb8\xfd\x1f\x09\x84\x84\x99\ +\xeb\x42\x79\x41\x59\x5c\xcb\xd5\x64\x48\xb9\x7c\xb1\x1a\x68\xe5\ +\x5e\x11\x80\x44\xc3\x89\x64\x79\x52\x6d\xf1\x1e\x92\xd7\x4c\x68\ +\x68\x46\x7f\xb4\x50\xf9\x52\x12\x30\x57\x1e\x96\x4d\x51\xa9\xd8\ +\x98\x2f\xd5\x30\xbb\x50\x71\x56\x80\x9d\x2b\x61\x76\xa1\x82\x62\ +\xa5\x86\x5a\xcd\xb1\x1f\x79\xe0\xe7\xe7\x16\x07\x2e\x3c\xb0\xe1\ +\xee\x89\x68\x0f\x14\xee\x1d\x67\x9f\x64\xee\x5e\x08\x58\xe9\x84\ +\x07\xb0\x1a\x0a\xa5\x2a\x16\x4a\x35\x14\x4a\x01\x70\x39\xac\x9e\ +\x04\x20\x49\x15\x6c\x93\x02\x33\x0b\x0e\x30\xf7\x76\x67\xa5\x2d\ +\xe5\xd9\xb4\x29\x42\xd0\xd5\xd5\x89\xf5\xeb\x46\x01\xd8\xb8\x78\ +\x69\x0a\xb5\x5a\xe8\x6e\x37\xed\x70\x54\xc1\x2b\xe0\x8c\x08\xce\ +\xb6\xca\x6e\xb5\xb2\x80\x4a\x14\xe2\x30\xaa\x89\x59\x61\x03\x52\ +\x2f\xba\x5e\x96\x25\x9d\x78\x5f\x52\x1e\x94\xf8\x72\x88\xc4\xaa\ +\x42\x1f\x72\xc5\x4a\x9f\x22\xc0\x28\x5f\x06\x37\x6f\x98\x13\x33\ +\xd7\x05\x8e\x3a\x06\xf1\x91\x4b\x28\xab\x6e\x46\x0c\x09\x53\xff\ +\x64\x26\xc5\xb4\x8d\x86\xe4\xe5\xb6\x7c\xf7\x58\x9f\xf3\x32\xcf\ +\x17\x1d\x60\x9a\xca\x97\x30\x3d\x5f\x42\x7e\xa1\x8c\x42\xb9\x86\ +\xaa\x65\xbb\xc0\x04\x7e\xfc\xc0\x05\x37\x7e\xfa\x85\x02\xac\x48\ +\x93\xc0\xca\x0f\xab\xff\xaa\x7a\xc6\xfc\x72\xd5\x42\xa1\x54\x45\ +\xa1\x54\x45\xb1\x5c\x43\xb5\x66\x39\xec\xc7\xef\x4f\x60\x46\xf0\ +\xf8\xe6\x7c\xb1\x8a\xa9\x7c\x09\xdd\x1d\x6d\xc8\x75\xb6\xfb\x65\ +\x8a\x13\x6c\x53\x04\xe8\xe8\xc8\x62\xdd\x9a\x51\x74\x64\xdb\x70\ +\xe1\xe2\x64\x94\xdb\x4d\x1a\xc0\x2d\x00\x6e\x05\xf0\x26\x80\x0b\ +\xad\x00\xab\x15\x02\x54\x1b\x31\xd0\xd7\xad\xcc\xef\x01\x95\x34\ +\x7a\x26\xa4\x6b\x14\xb4\x38\x60\x62\xbf\xb6\x8a\x87\x97\x7d\xe0\ +\xb5\xf1\x42\x25\x44\x78\x21\x58\x96\xc0\x03\x95\xae\xcd\x72\xb8\ +\x8a\x79\x49\xb9\x0c\x00\x2b\xae\x18\x4d\xea\x0c\x6b\x10\xc3\xd4\ +\x54\x98\x66\x53\x8a\x4a\xcd\xc6\x5c\xb1\x8a\xe9\xb9\x32\x26\xf3\ +\x25\xcc\x16\x9c\xe5\x7b\x59\x60\x0a\xae\xb7\x0b\x10\xe2\x28\xad\ +\x70\x1f\xfd\x33\xa2\x07\x9f\xba\xc1\x4a\xc5\xc2\x1b\x14\x4a\x1d\ +\x06\x59\xae\x5a\x28\x96\x6b\x28\x94\x6b\x28\x55\x2c\x58\xb6\xcd\ +\xb0\xad\xe0\x9a\x17\xcb\x16\xc6\x67\x8b\x68\x6f\x4b\xa1\xb7\x3b\ +\xeb\x34\x4e\x65\xcf\x23\x40\x5b\x5b\x06\xa3\xab\x87\x31\xd0\x9f\ +\xc3\xa5\x4b\x93\x58\x28\x94\xc2\xda\x4d\x00\x5c\x0d\x67\x99\xe3\ +\x77\x00\x1c\x6f\x36\x58\xad\x18\xa0\xea\x67\x18\x15\x9b\xc8\x07\ +\x2a\x29\x92\x48\x69\x81\x70\xc0\xd2\xc5\xfb\xeb\x9c\x2b\xbf\xbc\ +\xa2\x13\xb2\x02\x70\x88\xa2\x2c\x26\x8d\x12\x90\x8c\x19\x17\x53\ +\x17\x91\x7b\x1d\x17\xa0\xd5\x42\xb8\x3f\x76\x36\xbb\x7a\xd3\x51\ +\xf9\x8f\xaa\x8a\x53\x88\xe8\x87\xe6\x33\x27\x9b\xa2\x52\xb5\x30\ +\x57\xa8\x60\x6a\xae\x8c\xa9\xb9\x12\xf2\x0b\x15\xf7\xc5\x64\xed\ +\x37\x41\x4e\x99\x31\xc9\x80\x25\x81\x95\xf0\xb1\x09\xf0\x8c\x59\ +\x2c\xc6\x10\xac\x84\xab\x2d\x80\x95\xe9\xb5\x37\x17\x8f\x71\x95\ +\x2a\x16\x8a\x95\x1a\x8a\x95\x1a\xaa\x35\x17\xb4\x52\x8e\xd1\xbe\ +\x6a\xd9\x18\x9f\x29\x82\x52\x60\x20\xd7\xc1\x6d\x29\x0f\xf0\x63\ +\x3b\x99\x74\x1a\x43\xab\x06\xb1\x7a\x78\x00\x53\xd3\xb3\x98\xcd\ +\x2f\x44\x35\x61\x35\x9c\x15\x43\xa7\x00\xbc\x95\x1b\xdb\x6c\x37\ +\x0b\xac\x56\x06\x50\xdd\xbc\x11\xfd\xbd\xde\x84\x4f\xfe\x01\x18\ +\x9f\x2d\x3a\x9b\x37\x8a\x24\x45\x3e\x30\x04\xad\x20\x65\xf0\x4c\ +\xb3\x2f\xb6\x38\xa1\x93\x79\x00\x35\x0f\x70\x30\xc7\x8a\xc9\x2f\ +\xd4\x4f\x84\x38\xf6\x40\x3d\x17\x4a\x06\x32\x81\xaf\xf1\xbd\x11\ +\x56\xc5\x94\xb2\x71\x21\xe2\x9f\xea\xea\x78\x62\x36\x55\x9d\x18\ +\x24\xa7\xac\xd1\xdc\x65\x4e\xe5\xaa\x8d\x7c\xa1\x8a\xc9\xb9\x12\ +\xa6\xe6\xca\x98\x2b\x54\x51\xae\x3a\xaa\x0e\x7b\x8f\x44\x3f\x4b\ +\x25\x60\x49\xd7\x83\x61\x57\x5e\x3a\xa6\xb1\xaa\x81\x11\xf6\x9a\ +\x45\x81\x15\x6f\xbf\xe4\x0e\x00\xa1\x4d\xcd\x16\x8f\x6d\x55\xaa\ +\x0e\x68\x95\x3c\xd0\x82\xf3\x31\x98\xca\x97\x50\xae\x5a\x18\xe8\ +\xc9\xfa\x6e\x37\xe2\xe0\x2b\x01\x90\x4e\xa7\xd0\xd7\xdf\x8b\xb1\ +\x35\x23\x98\x9f\x5f\xc0\xc4\xd4\xac\xca\x54\xcc\x4a\x1f\x80\x8f\ +\xb8\xc7\x7b\x73\x63\x9b\x2b\xcd\x00\xab\x95\x03\x54\x92\x8d\xca\ +\x49\x3a\x31\xc3\xaa\x7e\x62\xac\x78\x12\x0f\xb4\x88\xea\xcb\xab\ +\x79\x88\x45\xd6\xa5\x65\x52\xdc\x0b\xc4\x37\x44\xb6\x6d\xe9\x58\ +\x95\x82\x81\x89\x2f\x15\x53\x46\xa8\xaa\x41\x94\x87\x4d\x97\xa8\ +\xc9\xe8\x5e\xff\x29\x75\xf6\xb8\x73\x98\x93\x0b\x4e\xc5\x0a\x2a\ +\x55\x1b\xb6\xb7\x52\x02\x6b\x40\xe6\xbb\xca\x15\xce\xcf\xb7\xd5\ +\xb0\x2b\x36\xaf\xc8\xae\x20\xdf\xe7\x66\x80\x95\xee\x19\x69\xa5\ +\xd8\xb6\xa3\x2e\x97\x2a\x8e\x7a\x58\xa9\xda\x98\x9e\x2b\x61\xa1\ +\x54\xc5\x40\xae\x03\xd9\x2c\x03\x05\xc2\xc7\x24\x95\x22\xe8\xce\ +\x75\x63\xfd\xba\x51\x58\xb5\x2a\x2e\x8d\x4f\x99\xba\xdd\x0c\xc1\ +\x31\xb2\x2f\x34\x0a\x56\x2b\x0b\xa8\x14\x93\x37\x27\x66\x8b\x18\ +\x9f\x09\x1f\xf5\xab\x1b\xb4\x38\xba\x2f\xa8\x7f\x1a\x67\x64\xff\ +\xe1\xd5\x01\x8e\xee\xe1\xd6\x00\x1b\x5f\x84\x08\x9c\x5e\x31\x32\ +\x42\x11\x39\x73\x38\x10\x91\x88\x78\x43\x15\x4f\xf7\xc7\xfd\x13\ +\xd6\x5e\xb1\x29\x50\xb5\x6c\xcc\x15\x5d\xb5\x2e\x5f\xc2\x5c\xb1\ +\xea\x82\x13\xfc\x6b\x23\x31\x4b\x0f\xb0\x04\xc0\x61\x01\x2b\x60\ +\x4c\x08\xda\x21\x5e\xe7\x30\x55\x10\xc1\xfd\xe4\xef\x37\x09\xbf\ +\x9f\x1a\xb0\x12\x6e\x49\xd4\x5d\x69\x89\xd8\xcc\x68\xe2\xf8\x4c\ +\x11\xe3\x33\x05\xf4\x76\x67\xd1\xc3\x18\xd9\x3d\x61\x47\x04\x3b\ +\x3a\xb2\x58\xb7\x76\x14\x6d\x6d\x29\x5c\xb8\x34\x89\x4a\xb8\xdb\ +\x4d\x1b\x80\x3b\x01\x6c\x84\xe3\x76\x33\xd9\x88\xdd\x6a\xc5\x00\ +\x55\x9f\xcb\xa8\xc4\x04\xe3\x1a\x63\x3a\xa0\x61\x49\xd2\x01\x7f\ +\xc2\xaa\x02\x60\x8e\xb9\x07\x57\x63\xb3\xe2\x1e\x52\x0e\x84\xfc\ +\x60\x1e\x54\x84\x34\xa6\xee\x33\xa2\x1a\x21\xbd\xbc\x11\x9d\xe6\ +\x4e\x15\xec\x86\x5f\x51\x41\x43\x7f\x62\x09\x3f\x4d\xd1\xeb\x67\ +\xcd\xb2\x31\x5f\xae\x61\xda\x05\xa7\xbc\xa7\xd6\x51\x41\xad\xe3\ +\x2e\x98\x5a\x15\x16\x19\x96\x52\x6d\xd7\xb1\x5d\xa6\x51\xe1\x60\ +\xa5\x4f\xa3\x03\x2b\xf1\x8e\x36\x7b\x24\xb0\x51\xb1\x29\xc5\xcc\ +\x7c\x19\x67\xc6\xe7\x91\x6d\x4b\xa3\xb7\xdb\x5d\x2e\x46\xe5\x36\ +\x46\x80\xf6\xb6\x36\xac\x1d\x1d\x41\x6f\xae\x13\x17\x2e\x4d\xa2\ +\x58\x2a\x47\xb9\xdd\x5c\x0f\x67\x13\x89\xb7\x01\x9c\xae\x17\xac\ +\x56\x0c\x50\xf5\x6b\x56\xf8\x9c\x98\x29\x62\x7c\xb6\xe8\x5f\xc8\ +\x20\x46\x48\x1b\x07\xb4\x14\x0f\x5e\xf8\x7c\x29\x06\xa8\x22\xd9\ +\x13\xa4\x87\x99\x65\x5e\xe2\xcb\xc6\x81\xa8\x08\x64\xe2\x8b\x20\ +\x19\x70\xd9\x8c\x7a\x56\xe5\xcd\x23\x62\xac\x34\xf1\x45\xc2\x33\ +\x9e\xfe\x7a\x51\x96\x45\x51\x28\xd7\x30\x33\x5f\xc1\xe4\x5c\x19\ +\xb3\x0b\x65\x1e\x9c\x54\x6d\x90\xd8\x14\x03\x58\xc2\x05\x23\xda\ +\x6b\xa8\x60\x57\xd2\xdc\xa9\x28\xb0\x0a\x4f\x13\x65\x9f\x94\xc0\ +\x8a\x63\x5d\xf5\x5d\xf6\x66\x08\x21\x04\xa5\x8a\x85\x73\x93\xf3\ +\xa0\x00\x7a\xbb\xdb\x99\x38\xa6\x6d\x8e\xf7\x17\xd2\xde\xda\x56\ +\x43\xfd\x18\x9f\x9c\x46\x7e\xae\x10\x05\xb6\xeb\x01\x7c\x10\xc0\ +\x59\x00\x87\x73\x63\x9b\x69\x5c\xb0\x5a\xd1\x40\x05\x28\x46\xfd\ +\x20\xde\xf4\xb8\xa0\xa5\x7a\xa0\x21\x3d\x88\xba\x38\x15\x98\x98\ +\x01\x58\xf4\x86\x0f\xfe\xcb\xc5\x37\x81\xeb\x23\x11\xca\x54\xd1\ +\x2e\xe9\xf2\xe8\xe2\x22\x42\xc3\xc5\x29\x98\x82\xc0\xb2\x1d\x70\ +\x72\x26\x60\x3a\x93\x0f\x8b\xe5\x5a\x30\x5a\xa7\x68\x4f\x60\x87\ +\xe2\x1b\xa7\x62\x59\x3a\xc0\x62\x4e\x95\x13\x30\xbd\xbb\xc4\x6a\ +\x66\xec\xf5\x65\x8d\xec\xe1\x60\x15\x71\x5f\xd9\xf6\x73\x57\x94\ +\xff\x7a\x2d\x2d\x58\x01\xd5\x1a\xc5\xc5\xe9\x02\xaa\x35\x1b\x03\ +\xb9\x0e\x10\x42\x50\xb3\x1c\xdb\x20\x61\xae\x83\x33\x22\x98\x42\ +\x7f\x7f\x3f\xd6\x8e\x0e\x21\x9f\x9f\xc3\xd4\x74\xe4\xda\x56\x43\ +\x00\x3e\x02\xa0\x00\x67\x99\xe3\x5a\x1c\xb0\x5a\x11\x40\x75\x5b\ +\x08\x50\x8d\xcf\x16\x31\xee\x8e\xfa\x29\xd9\x42\x0c\xd0\xf2\x1e\ +\x42\xee\xa1\x53\x3c\xc4\x2a\x56\xe5\xbf\x30\x4c\xa1\x51\x6a\x81\ +\x8a\x49\x89\xac\xd0\xd4\x6e\xc5\xd6\x27\x9d\xab\xd2\xa9\x2f\x87\ +\x00\x70\x44\x9d\x28\x4c\xdc\xe4\x96\x4d\x51\xaa\x58\xc8\x2f\x94\ +\xfd\x99\xe1\x05\x17\x9c\xa8\xd7\x78\xe6\xcf\x63\x42\x52\x8d\x1e\ +\x68\x41\x03\x5a\x4c\x7b\x45\x95\x50\x65\xbf\x52\x83\x9b\xde\x3e\ +\xa8\x1b\x3c\xe1\xef\x71\xc4\xfd\xe6\xa6\xac\xc8\x0c\x7b\x29\xed\ +\x55\xdc\xa5\x26\x8e\x2a\x38\x3e\x53\xc0\x7c\xa9\x8a\xa1\xbe\x0e\ +\xb4\xb7\xa5\xdd\x15\x21\x6c\x58\x9c\x4a\xee\x38\x53\xe7\x72\x39\ +\xac\x5f\x37\x82\x72\xb9\x8c\x4b\x13\xd3\xb0\xc3\xb7\x94\xcf\xc1\ +\xd9\xed\xa6\x13\x8e\xdb\x4d\xc9\x14\xac\x56\x0e\x50\xf5\xea\x18\ +\x55\x01\x13\x33\x45\x89\xed\xc4\x05\x2d\x22\x3e\x60\x9a\x49\x7e\ +\xde\xcc\x5f\x29\x4e\xc3\x8c\x58\x1f\x30\x08\xf1\xec\x43\x1e\x9c\ +\x43\xdb\x17\xd5\x03\x2d\xf6\x49\x04\x2b\x3f\x34\x82\x45\x8a\xc0\ +\x44\xb4\x89\x85\x30\x06\x59\x3c\x70\x9a\x75\xe7\x3a\xcd\xb8\xb3\ +\xc3\x6b\x2e\x38\x71\xd8\x24\x67\xd7\x02\x17\x5b\x97\x96\x65\x31\ +\x27\x2a\xc0\x12\xab\x90\x3f\x04\x21\x46\xf6\x18\x60\x25\x3e\x2f\ +\x7c\x98\xd0\x1e\xb6\x1d\x8a\xb6\x2e\xa5\x4c\xbb\x73\xd5\xfa\x73\ +\x1d\xe8\xee\x6c\xf3\x97\xac\xf1\x96\xb1\xf1\x9c\xf3\x53\x29\x82\ +\xce\xae\x4e\x8c\xad\x5d\x8d\x14\xa1\xb8\x10\xed\x76\x93\x05\xf0\ +\x5e\x00\xfd\x00\x76\x98\x4e\x5f\x58\x31\x40\xd5\xd7\xab\x5e\xe1\ +\x93\x65\x54\x80\xfc\x92\x03\x9a\x77\x4c\x7c\xc1\x09\xfb\x2b\x80\ +\x0f\x09\x4a\x56\xdb\x17\xf8\xaf\xa4\xf6\x2b\xab\x7b\xc8\xd9\x34\ +\x4c\x39\x12\xf3\x82\xfc\x20\x2b\x87\xe4\xb9\x9e\x6b\x54\x0a\xaf\ +\x33\x2a\xe3\xbb\x26\xb9\x4a\x2c\x9b\xa2\x5c\xb1\x90\x77\x77\x46\ +\xf1\xd4\xba\x9a\x45\xdd\xb9\x38\xfc\xbf\x00\x71\xc0\xfd\x89\xe0\ +\xe5\x77\x46\x35\x15\x21\x04\xb0\xd8\x0b\xa8\xfc\x60\x48\xd7\x2d\ +\x04\xac\xd8\xfb\xa4\x05\x2b\x3e\x6d\xd8\x07\x8c\x57\xfd\x08\xdf\ +\x0e\xae\xad\x06\x37\x64\x11\x64\xae\x50\xc5\xa5\xe9\x02\x72\x9d\ +\xed\xe8\xeb\xce\xfa\xe1\xd4\x75\xf6\x0e\x66\xc0\x03\x1d\xd9\x2c\ +\xd6\xad\x1d\x41\x77\x67\x16\xe7\x2f\x4d\xa0\x5c\x8e\x74\xbb\xb9\ +\x09\xc0\x49\x38\x73\xad\x22\x0d\xec\x2b\x68\x17\x1a\x7e\x59\x57\ +\x9d\xe7\x7d\xb0\xcd\x7b\xb0\x62\x59\xb0\x70\x19\xa4\x32\xbc\x65\ +\x3c\x82\xa5\x6a\x29\x82\x10\x61\xbd\x25\xc2\xa4\xf3\x51\x13\x10\ +\x27\x9e\xb0\xa3\xef\xdc\xf6\x4c\x90\x8f\x83\x32\xe4\xb5\xb7\x21\ +\xe6\x55\xdc\x78\x71\xe1\x38\x67\x67\x1d\x5e\x81\x52\xaf\x07\x05\ +\x10\x4a\x41\xb8\xad\x78\xa8\x32\x35\x8b\x85\x36\xdc\xa9\x04\xa5\ +\x2a\xc6\xf3\x25\x9c\x9b\x5a\xc0\xb9\xe9\x82\xb3\x39\xa6\x67\x14\ +\xf7\x40\x42\x41\x9b\x82\xd3\x70\xf0\x52\x81\x96\x8a\x65\x89\x80\ +\x15\xaa\x0e\x6a\x55\x41\x11\xac\x34\x1f\x15\x25\x58\xc9\x69\x39\ +\x40\x54\x80\x95\xe2\xd0\x6f\x2b\x1b\xb2\xd4\x42\x88\xc3\xac\x76\ +\xed\x3f\x87\x43\xa7\xa7\xfd\x49\xb6\x9e\x50\xea\x8c\xdc\x96\xdd\ +\x15\x28\xda\xda\xdb\x71\xe7\x1d\x37\xe3\xfe\x4f\x7e\x10\xab\x87\ +\xfa\xa3\xa6\x02\x77\x01\xf8\x1c\x9c\xd5\x17\x22\x65\xc5\xac\x47\ +\x05\xc8\x4b\x2c\x51\xf5\x7b\xc5\xa4\x0f\x16\x04\xf2\x1e\x1f\x16\ +\x44\x38\xa5\x8b\x7a\x3f\xcc\x83\xe6\xae\xc7\x47\xbc\x38\xca\xaa\ +\x56\xc4\x5f\x1f\x8a\x7a\x0f\x9d\x9f\x9e\x79\x0a\x29\x40\xbd\x87\ +\x97\x06\x79\x79\x61\x91\xcd\x3d\x27\x6c\xfa\xa0\x8d\xd2\x62\x79\ +\x14\xa0\xec\x42\x6d\x70\x1b\x25\x94\xaf\x9c\x4d\x1c\xf5\x62\xb8\ +\x6d\xb0\x28\x45\xb5\xea\xb8\x66\x94\x2a\x35\x94\xab\x16\x6a\x16\ +\x65\x46\xea\x74\x25\x78\x9d\x80\x7f\xed\xf9\x10\x37\x15\x37\x1b\ +\xd4\xbb\x04\x54\x8a\xf7\x6d\x5b\x80\x0b\xb0\xec\xe5\xf2\xae\x4f\ +\xb0\x2a\x82\xbf\xe6\x39\x71\xe0\x3c\x58\xc5\x85\xf8\xae\x3a\x84\ +\xb0\x6b\x98\x51\xdf\xf5\x8d\x80\x38\xbb\x35\xbb\x33\xb4\xa9\x93\ +\xd0\x4d\x2f\xc6\x07\xc7\x5e\xa1\x84\x52\x66\x6d\x2c\xb7\x8d\xd4\ +\x7b\xbe\x18\x3b\x9d\xb7\xda\x1d\xa3\x2d\x78\x7e\x7a\x11\xdb\x5a\ +\x2d\x8a\x10\x02\x2c\x94\xaa\x38\x37\x31\x8f\x2b\x47\x7b\x91\x4d\ +\xa9\x95\x30\xcb\xa6\x80\x4d\x91\x4a\xa5\x30\xb6\x6e\x0d\x46\x86\ +\x07\x70\x71\x62\x26\x8a\x1e\x76\xc0\x50\xab\x5b\x51\x40\xc5\x2f\ +\x49\x1b\x3c\xd4\xe2\xfd\x54\x5d\x1b\x1d\x68\x11\x22\xae\xb6\xc9\ +\xe4\xe1\xbe\x8e\xc1\x67\x33\x58\xc0\x4e\x88\x13\xda\x25\x28\x77\ +\x6e\x98\x1b\xef\x52\x66\x6f\x1b\x72\xaf\xcd\x1e\x10\x49\xa0\x8c\ +\x60\xf7\x60\x1f\x96\x54\x6c\x4e\x6c\x51\xc8\x64\x4f\xaa\xd9\xc1\ +\x85\x82\x75\xbf\x70\xc0\xa9\x52\x63\x96\x16\x71\x13\x9a\xd9\x53\ +\x82\x8e\x11\x02\xff\xc5\xe7\xee\xa7\x50\x0c\x61\xa8\x25\x0b\x5a\ +\xf5\x02\x16\x07\x44\x0c\x58\x79\x8b\xdf\xf9\xd7\x9e\xba\x20\xe2\ +\xb7\x33\x0a\xac\x20\xa5\x0d\xf0\x2a\x28\x8b\x50\x12\xb4\xc7\xfb\ +\x70\x79\x75\xbb\xb0\x15\x00\x26\x03\xd0\x24\x7c\xcd\xae\x56\x0b\ +\x85\xb3\x3d\xfc\x35\xeb\xfa\x71\xe7\xc6\x11\x64\xdb\xc2\x31\x85\ +\x10\x82\xa9\xa9\x69\x6c\x7b\xfe\x65\xbc\x7d\xf8\x94\xc9\xf3\x71\ +\x1c\x40\xd1\xa4\x2d\x2b\x06\xa8\x54\xeb\x49\x47\xa5\xd5\x5d\x27\ +\xca\x3c\x4a\x5c\x62\x17\x81\x7c\x20\x70\xd1\xc4\x61\x02\xde\x0b\ +\x41\xdc\x97\xd9\xfb\x36\xc2\xff\x42\x06\x31\x0c\xab\x22\x54\x00\ +\x2c\xa6\x6e\xaf\x44\x56\x05\x11\xd3\x48\x7d\x61\x80\x90\x61\x5f\ +\x32\x63\xe2\xf5\x46\xca\xe4\x27\x8a\x24\xb6\xed\x38\xb4\x56\xaa\ +\x36\x4a\x55\x07\x9c\x58\xd6\xe4\x49\xca\x04\x9b\x54\xe2\xd5\x45\ +\xe4\xc0\x80\x3c\xc9\xc0\xe5\xf5\xd1\x04\xb0\x58\x62\xe6\x83\x03\ +\x02\x80\xf4\xd7\x2c\xa7\x41\x5e\x07\xc8\x78\x76\x65\x0e\x56\xea\ +\xb4\x1e\xcb\x06\x55\x80\x15\xdb\x75\x8a\x00\xbc\xfc\x20\xc2\x00\ +\xaa\x8a\x7f\x2e\x8e\x50\x0a\xb4\xb7\xa5\x70\xd3\x95\x43\xb8\xf9\ +\xea\x55\xc8\xb6\xa5\x43\x41\x93\x10\xe0\xdc\xb9\xf3\xd8\xba\xfd\ +\x25\xbc\x73\xea\xbc\x49\x15\x07\x01\x7c\x07\x40\xd5\x64\x75\xd0\ +\x25\x07\xaa\x54\xa6\x03\x76\xad\x64\x96\x58\xa5\xbf\x50\x6f\xcd\ +\x74\x70\xc8\xc4\x52\x7d\x20\x0c\xb4\x18\x8c\x52\xb0\x25\x0a\x1a\ +\xb8\x7c\xb0\x0f\x17\xdb\x1e\xb6\x5d\x5c\x5e\xe6\x21\xf4\xbf\xda\ +\x72\x3d\x5e\x18\x9b\x07\x0c\xd3\x93\x54\x52\xb6\x97\x92\x16\x29\ +\x30\x3a\x4e\xd5\xf5\xe2\x9c\x25\x77\x6b\x2e\x6b\x2a\x57\x6d\x67\ +\x39\x5e\xcb\x86\x6d\x0b\xb3\xc8\x75\xf7\xc2\xd8\x9e\x42\xb9\x1f\ +\x25\xb3\x13\xd4\x5b\x16\xac\xfd\x4b\xcf\xb2\x2c\x0d\x60\x79\x1f\ +\x17\x2d\xbb\x62\x55\x41\x4e\x53\x23\x4a\xb0\xf2\xef\x8d\x08\x56\ +\xcc\xa5\x8e\x06\x2b\xe6\x56\x51\x96\x75\x45\xa8\x80\xec\xb3\xb9\ +\xc8\x58\x45\x29\xd0\xd5\x91\xc1\x1d\xd7\x8d\x60\xe3\xd8\x00\xd2\ +\x29\x12\xbe\x1a\x2b\xa5\x38\x7a\xec\x04\xb6\x6e\x7f\x09\x17\xc7\ +\xa7\x4d\x98\xd4\x21\x00\xbf\x01\x67\xfd\x2a\x23\x59\x72\xa0\xea\ +\x18\xde\x88\xc2\xb9\x7d\x46\xb3\xdd\x02\x16\x01\x9e\x30\xf8\x80\ +\xc1\xda\x43\xc2\x41\xcb\x67\x2b\xac\x21\x94\x05\x19\x1f\x3c\xd8\ +\x17\x9f\x30\xf5\x32\x46\x52\xd6\x66\x25\x74\xc3\x09\xe3\x0d\x63\ +\xbc\xea\x16\xe4\x0d\x8a\x12\xd4\x45\x9f\x9d\x89\x65\x53\xc5\x1a\ +\xea\x2c\x22\x10\x7f\x27\x15\xdb\xa6\xa8\x5a\xce\x5a\xe1\xd5\x9a\ +\x03\x4c\x1e\x63\xa2\xc2\x75\x90\x49\x8f\xa4\x00\xc7\x10\xc2\xfd\ +\x30\x77\x48\x09\x5e\x32\x68\x09\x2c\x8b\x53\xdd\x35\x80\x25\xaa\ +\x83\xac\xea\x05\x57\xc5\x72\x59\x72\xb8\xdd\x4a\x63\x93\x62\xed\ +\x47\x02\x73\x0a\x46\x44\xa8\xcf\xc0\x38\xb6\xe7\xb7\x29\x42\x05\ +\xf4\x91\x74\x71\x59\x15\xa5\x40\x7f\x4f\x16\x77\x6d\x1a\xc5\x15\ +\xab\x7b\x84\x7b\x26\xdc\x59\x42\x50\xab\xd5\xf0\xe6\xfe\x83\xd8\ +\xbe\x73\x0f\x66\xe7\x16\x4c\x40\xea\x05\x00\xff\xca\xfd\x85\xe9\ +\x5a\xeb\x4b\x0d\x54\xa4\x73\x78\x23\x2d\x9c\xdb\x67\x9c\x81\xd5\ +\x12\x88\x18\x06\xe6\xa1\x0f\x01\x2d\x2f\x8f\x7f\x4c\x19\xd0\xe1\ +\x0c\xcf\x24\x30\x90\xb3\x15\xb1\x5f\x79\xef\xab\xca\x15\x2c\x1b\ +\x9c\x82\x32\x18\xb0\xa3\x0c\x88\x29\x41\x92\xef\x35\x6f\xcc\x87\ +\x74\x4c\x5d\xf6\x60\x51\x0a\xcb\x72\x1c\x4f\xbd\x8d\x0c\x6a\x96\ +\xed\xcf\x7f\x11\x41\x57\x9e\x00\xaf\xb7\x6b\xc9\x77\xd0\xe4\x66\ +\xa9\x92\x07\x2a\xab\x9f\x98\xaa\x40\x8b\x67\x59\x22\x60\x29\x55\ +\x42\x51\x1d\x74\x3f\x4c\x2c\x10\xb1\xaa\x60\x14\x58\x81\xb0\xf5\ +\x51\x2e\x6d\x60\xa7\x62\xd5\x3c\x91\x4d\x05\xc6\x75\x95\x0a\xe8\ +\x0f\xc8\x68\x54\xc0\xc5\x34\xac\x8f\xae\xea\xc6\xdd\xd7\x8f\x62\ +\xa4\xbf\x33\x14\x1e\x09\x21\x28\x97\x4a\x78\xe9\x95\x7d\x78\xf1\ +\xd5\x37\xa3\xb6\xda\x02\x00\x0b\xc0\x43\x00\x7e\x13\xc0\x61\xc0\ +\x1c\xa4\x80\xa5\x03\x2a\xbf\x47\xeb\x3f\xfe\x31\x4c\xee\xfb\xc7\ +\xba\x0a\xa1\x8a\x13\xe5\xa8\x9e\x08\x5a\x4a\x20\x10\x2d\xba\x2e\ +\x63\x61\xd9\x0d\xf1\x9f\x59\xef\xfb\xe7\x26\x0d\x10\x8c\xb3\x59\ +\x11\xc6\x66\xc5\xc4\x39\x35\xb2\xb6\x2e\xf0\xf5\xb3\xba\x27\x43\ +\xfc\xfc\xf7\x96\x06\xfb\xc6\x59\xae\x6d\xc9\xdb\x5b\xae\x66\x39\ +\xe7\xc1\x9e\x74\xec\xb5\x20\xbe\x8a\x24\x3d\x52\x51\xe0\x44\x94\ +\x87\xda\x90\xa0\x1f\x8a\x7b\xc5\x04\xa8\x81\x8b\x07\x2d\xce\xbe\ +\xe6\x52\x68\x51\x25\x14\x01\x8b\x65\x57\xac\x8a\xa7\x52\x05\xa3\ +\xc0\x8a\x53\xed\x18\x55\x4c\x05\x56\x9c\x29\x3d\xcc\xb8\xce\xa8\ +\x80\x9c\x7d\x60\x89\x54\x40\x42\x80\x0d\xa3\x7d\xd8\xbc\x69\x35\ +\xfa\xba\xdb\x23\xec\x51\x04\x73\x73\x73\x78\x6e\xe7\x2b\xd8\xbb\ +\xff\x48\xd4\x04\x4f\xc0\x31\x98\x7f\x17\xc0\x1f\x01\xb8\x58\xcf\ +\x8e\x35\x4b\x01\x54\x6c\x8f\xc8\xa3\x5f\x00\x5d\xf7\x0d\x76\x3c\ +\x5f\x16\xdb\xa6\x28\x96\x6b\xce\x0b\x46\x00\x6f\x89\x55\xc7\x17\ +\xc9\x79\x31\x53\xfe\x8c\x64\xf5\xec\xec\xa0\xf2\xe0\x9b\xc5\xa9\ +\x55\x94\xfa\x54\x9c\x63\x49\xec\xd6\x56\xf2\xb8\x60\x60\x39\x52\ +\xda\xcf\x00\x0d\x2a\x48\xaa\x9f\xaf\x96\x00\x80\x0d\xd8\xee\xcb\ +\x6a\x83\xfa\xb3\x81\x2d\x9b\xa2\x66\xdb\xb0\x2d\xef\xd8\xdb\x63\ +\x8e\xdb\xf8\x4b\x66\x5d\x2c\x7b\x92\xee\x84\x66\xc2\xa7\x94\x3e\ +\xbe\xd2\x17\x9a\x9b\x50\xe5\x87\xc6\x87\xfe\x80\xee\xf2\xcc\xd9\ +\x6b\xb3\x16\xb0\x02\x10\x02\xc0\x4c\x0d\x61\xd8\x95\x38\x0a\x67\ +\x0a\x56\xde\xf5\xe5\xf6\x07\x24\x7e\x1b\xfd\x27\x2b\xca\x5e\xc5\ +\xde\x76\xc1\x5e\xb5\xd8\x2a\x20\x05\x90\x49\x11\x5c\x7f\xc5\x20\ +\x6e\xbb\x76\x18\x9d\xd9\x4c\x24\x48\x8d\x8f\x4f\x60\xeb\xf6\xdd\ +\x38\x72\xec\xb4\x6c\xda\x90\x65\x1a\xc0\xd7\x01\xfc\x25\x80\xb9\ +\x7a\xb7\xd5\x5a\x6c\xa0\x22\xe2\x6f\x9a\x10\xac\x7e\xef\x3f\x0b\ +\x7d\x0d\x6c\xea\x18\x7d\xfd\x87\x87\xf9\x6f\x7a\xae\x84\xf1\x99\ +\x82\xb3\x89\x63\x8a\x20\x45\x52\xee\xaf\xb3\x86\x0e\x71\x37\x77\ +\x4c\x11\x67\x01\xb0\x54\x2a\x05\x42\x68\x00\x6c\xbe\xf9\x87\x80\ +\x53\xfa\x3c\xf5\x40\x7c\xe1\x85\xee\xb0\x54\xdd\x4b\x41\xd9\x97\ +\x86\x39\x0e\x58\x18\x05\xe0\x6d\x68\x09\x7f\x63\x4b\xdb\xa6\xb0\ +\xa8\xd3\x5f\xea\x87\x79\xa9\x85\xa1\x75\xee\x3a\x30\x70\x63\x04\ +\x50\x1a\xf6\x14\xda\x57\x3e\x28\x2e\x6c\xc9\xa0\x24\xce\x36\xe7\ +\xf7\xc9\x0b\x30\x9c\xe1\xa0\x9c\x2d\xca\x2d\x43\x02\x2c\x86\x5d\ +\xb1\xe4\x84\x65\x57\xf5\x82\x15\x33\x1a\xe7\xab\x65\x08\x1f\x09\ +\x54\xda\xab\x34\x2a\x20\x37\x38\xa3\x08\x6a\x36\xab\xa2\x14\xe8\ +\x68\x4f\xe3\xd6\x6b\x86\x71\xc3\x86\x41\xb4\xa5\x53\x91\xe5\x9f\ +\x3c\x79\x1a\x4f\x6f\xdf\x8d\x33\xe7\xc6\x4d\xec\x51\xa7\x00\xfc\ +\x6b\x00\x7f\x0f\xc3\xd1\x3d\x9d\x2c\x16\x50\x11\xc5\x31\xf3\x1b\ +\xef\xea\x53\xe6\x3f\x67\xbe\x8f\x0d\x85\xa9\xc7\x29\x9c\x61\x0d\ +\x9e\x9f\x9e\xb7\xe9\xa3\xf3\xeb\x31\xb4\x80\xa5\x11\x38\xc0\x06\ +\x17\xe0\xd8\x38\xf6\xf1\x51\x33\xb7\x80\x1a\x79\xe0\xe2\xb5\x97\ +\x05\x1b\x9d\xda\x2a\xae\xc2\xc0\xdb\x92\x04\x08\x61\x19\x51\xbd\ +\x00\x15\x06\x4e\xc4\x04\x90\xa2\x52\x50\x39\x15\x61\x63\x20\x03\ +\x97\x12\xb4\x3c\x96\xa5\x00\x2c\x96\xf1\xf8\x6c\x8a\x70\xc6\xf6\ +\x48\xb0\x82\x08\x46\xf5\x81\x15\xd7\x1e\x95\xbd\x2a\x44\x05\x64\ +\x4d\x06\x94\x9d\xa8\xd5\x02\x56\x45\x29\x45\x4f\x57\x3b\xde\xb3\ +\x69\x35\xae\x5e\xd3\xe7\xcf\x27\x54\xde\x61\x42\x60\x5b\x16\xde\ +\x3e\x74\x14\xcf\xee\x78\x05\x93\xd3\x79\x13\x90\xda\x07\xc7\x68\ +\xbe\x15\x00\x6d\x74\x83\xd2\xc5\x00\xaa\x08\x90\x82\x6e\xec\xbd\ +\xe1\xca\x00\xef\x0b\xc4\x18\x90\x29\x05\x25\x14\x96\xad\x59\x25\ +\x41\x62\x2b\x8c\xff\x9f\xe0\x84\xaa\x4c\xc3\xa8\x71\x7e\xd9\x60\ +\x00\x93\x65\x25\x0a\x7f\x40\x33\x07\x58\x26\x0d\x77\xee\x17\xc4\ +\x5f\x0b\x95\x8a\x47\x98\xf4\xc2\xc5\x0b\xb5\x41\xc5\x66\x55\x44\ +\x09\xca\x01\x07\x0d\x0a\x0a\x3e\x40\xcc\x2c\x33\x06\x95\xb4\x80\ +\x65\xc0\xae\xb4\x60\x85\x30\x30\x52\x81\x15\xcb\x6c\x02\x10\x91\ +\x55\x3f\x8d\xbd\x2a\x4c\x05\x64\x28\x93\x8e\x4d\x35\x83\x55\x51\ +\x0a\x0c\xf5\x75\xe1\xee\x1b\x46\xb1\x66\x55\xb8\x07\x0b\x21\x04\ +\xd5\x6a\x05\x7b\x5e\xdf\x8f\x9d\x2f\xee\xc5\x7c\xf8\x6e\x34\xde\ +\x1d\x7c\x06\x0e\x48\xed\x05\xe2\x19\xcd\x75\xd2\x6a\xa0\x12\x41\ +\x2a\x0c\xb4\x5a\xdb\x10\x22\xfc\xba\xff\x71\x2f\xbe\x94\x86\x05\ +\x1d\x01\xd8\xfc\x74\x8a\x34\x6c\x1c\x73\x1c\x06\x52\x2a\xb0\x0b\ +\xa2\xc2\x41\xaa\x19\x00\xa5\x04\x27\x2d\x70\xc5\xbc\xf6\xca\x13\ +\xc2\x00\x93\x73\xc0\xf6\xcf\x8b\x0b\xfa\xc9\xba\xb7\xb8\xf9\x5d\ +\x3d\x3b\x00\x35\x28\xd9\x15\x3b\x77\xca\x49\xe7\xaa\xf9\xbe\x0d\ +\xdb\x1c\xac\x7c\x55\xce\x27\x50\x8c\x0a\x17\x62\xaf\x32\x55\x01\ +\x7d\x20\x52\x4d\x7f\x67\xea\x6f\x44\xd6\x8f\xe4\x70\xd7\xf5\xa3\ +\x18\xec\xed\x88\xb4\x47\x15\x0a\x05\xec\x7a\xf1\x35\xbc\xb2\xf7\ +\x6d\x54\xc2\xf7\xf7\x03\x80\x0a\x80\xff\x0e\xe0\x77\xe1\xa8\x7d\ +\x4d\x01\x29\xa0\xb5\x40\xa5\x03\x29\xa2\x49\xd3\x62\x11\xaa\xe5\ +\x11\xc5\x7f\xf8\x83\x46\x6a\x00\x88\x47\x10\xbe\x28\xae\xaa\x56\ +\x81\x94\x5e\xd5\x13\xd5\xbc\x50\x80\xd2\x81\x53\x50\x65\xe4\xe5\ +\x54\xaa\x8b\x9c\xd0\xe0\x7f\xdd\x54\x05\x1f\x98\x78\x84\xf2\xe2\ +\x24\x96\x25\x02\x16\x09\x6c\x81\xfe\x3b\x2d\xb0\x2b\xb5\x2a\xe8\ +\x5e\x33\x4a\x65\xb0\x82\xde\x66\xa5\x9c\x63\xc5\x61\x0a\x51\xda\ +\xab\x54\x2a\xa0\xd7\x68\xad\x0a\x08\xd6\xaa\xd9\xd8\x74\x05\x8a\ +\xc0\x1d\xe6\x3d\x1b\x47\xfc\xa5\x5b\xb4\xb7\x97\x10\x4c\x4f\x4f\ +\x63\xdb\x8e\x97\x71\xe0\xd0\x3b\xb0\x2c\x1a\x05\x52\xf3\x00\xbe\ +\x0d\x6a\xff\x29\x08\x99\xba\xb0\xfb\xaf\x62\xb5\x2f\x4a\x5a\x05\ +\x54\x24\xe2\x57\x08\xa3\x26\xaf\x46\xfd\x8d\xe1\x98\x92\x0c\x3a\ +\x22\xbb\x92\x3c\xde\x15\x2d\x96\xc1\x89\x30\xc9\xf4\x2f\x7c\xd3\ +\x41\x4a\x61\xb7\x92\x96\x3f\x01\x9f\x89\x6f\x96\x02\xe4\x94\xd7\ +\xaf\x9e\x5b\x24\x33\x41\x4f\x82\x81\x06\xf1\x3a\xba\x20\x12\x0b\ +\xb0\x22\xd8\x15\x61\xd2\x71\x06\x74\x70\xaa\x20\x6b\x1b\x52\x1a\ +\xd8\xc1\xaa\x61\x3c\xcb\x09\xb3\x57\xe9\x54\x40\x42\x35\xdc\x48\ +\xd2\xfb\xd0\x10\x89\x0a\xdc\x61\x56\xe1\xe6\xab\x87\x0c\xdd\x61\ +\x2e\x60\xeb\xf6\xdd\xbe\x3b\x4c\xc4\xc7\xeb\x12\x40\xbf\x6a\xd7\ +\xca\xff\xf1\xbe\x1f\x7c\xaf\xf8\xb7\x1b\x9b\xff\x3a\xb7\x02\xa8\ +\x62\x82\xd4\x62\xb0\x2a\xa2\x3e\xe5\x7e\x89\x36\xab\xa4\xf2\x71\ +\x11\x50\xa8\x7c\xe0\xde\x3c\xd1\xc6\xc5\xd6\x59\x0f\x48\xe9\x55\ +\x3d\xfd\x9a\x4b\xb1\x00\x4a\x04\xbb\x88\x4b\xab\x4b\xa9\x63\x52\ +\x62\x7f\x01\x70\x0c\x81\xed\x73\x00\x12\x54\x01\x58\x2c\x08\x41\ +\xcd\xae\x58\xb0\x02\x22\xed\x56\x32\x98\x31\x60\xc5\xda\x90\x24\ +\x15\x31\x40\x1e\x25\xce\x08\x2a\x20\xd8\x7a\x5b\xc8\xaa\x44\x77\ +\x98\x54\x84\x3b\x0c\x40\x71\xf4\xe8\x09\x3c\x6d\xee\x0e\x73\x04\ +\xd4\xfe\xed\x4a\xfe\xfc\x8f\xa6\xde\x7e\xd8\xfa\xdb\x8d\xdf\xf7\ +\xbf\x15\x66\x0f\x90\x99\x34\x1b\xa8\xe2\x82\x54\xcb\xc5\x88\x4d\ +\x71\x20\xa0\x56\xf9\x04\x14\x51\xb2\x2a\xd9\xb9\x98\x05\x22\xb1\ +\x4d\xe6\x20\xa5\xb3\x47\x89\xaa\x26\xcf\xaa\xf8\x36\x73\xfd\x50\ +\x81\x4b\x04\x38\x85\x3f\xaf\xaa\x48\xde\xe6\xc4\xc7\x40\x7a\x8c\ +\xd9\xb9\x6a\x2a\x1f\x4d\x7f\x95\x09\x0e\xb0\xa2\xd9\x55\xa0\x0a\ +\xea\xed\x56\x1c\x58\x79\xa0\xa1\x01\xab\x30\xe3\xba\xd2\x5e\xa5\ +\x51\x01\x63\xb3\xa9\x3a\x58\x95\xca\x1d\x46\x7f\x7f\x09\xac\x5a\ +\x0d\x6f\xc4\x73\x87\x79\x89\x5a\xd5\xdf\x98\x7a\xeb\x47\x3b\xab\ +\x0b\x93\xec\xdd\x6e\x02\x0f\xe4\xa5\x99\x40\x55\x0f\x48\x11\xf7\ +\x8a\xb6\x10\xb4\x4c\xd8\x14\x00\x12\x5e\x04\xcf\x66\x14\x2a\x1f\ +\x0b\x52\x02\x10\xb1\xe9\x44\xc0\x64\x0b\xab\x0f\xa4\x1a\x03\x28\ +\x9d\x5a\x27\x3f\xa3\xe1\xb7\x48\x8c\xa5\x21\xe9\x89\x4f\x81\xbc\ +\xb4\x60\x1e\xe9\xe0\xba\xa9\x58\x96\x6f\x1f\xf2\xce\x01\x85\x8a\ +\xc7\xd8\x8a\xc0\x02\x11\x24\x00\xe2\xc1\x0a\xfe\x2b\xc6\x82\x15\ +\xc7\xe0\x20\xb2\x19\xb6\x52\x16\xb4\x22\x54\xc0\x10\xc3\xba\xcf\ +\x9e\x1a\x60\x55\x14\xc0\xe8\xaa\x2e\xdc\x7d\xfd\x1a\x0c\xf7\x77\ +\x86\xdf\x3b\x42\x50\x2e\x97\xf0\xd2\xcb\x71\xdc\x61\xe8\xa3\x76\ +\xb5\xfc\x5b\x97\xf6\x7c\xff\x20\x9c\x05\x38\x29\x53\x75\x93\x94\ +\xd6\x40\x9a\x05\x54\xf5\x83\x54\x0b\x99\x55\x2c\x36\xe5\x1d\x89\ +\x6c\x4a\x62\x1a\x1a\x95\x4f\xa8\x93\x6f\x87\x9a\xbd\x49\x6d\x69\ +\x22\x48\xf1\xed\x90\x7d\xbe\x55\x00\x15\x06\x4e\x3a\x76\xa4\xbd\ +\xf6\x21\x71\xe2\x77\x89\x05\x2e\x9e\x4d\xb9\xdf\x31\xc6\x9e\xe5\ +\x78\xc1\x04\x3a\x20\xaf\xe2\x81\x5b\xe5\xc0\x53\x05\xd9\x69\x0c\ +\x2a\xb6\x04\x56\xe5\xf2\xd5\x3c\x06\x38\x3c\x8d\x8f\x61\x42\xa2\ +\x71\x9d\x9d\xb9\x6e\xa4\x02\x72\xaf\x30\x0f\x76\x7e\x11\xcc\x6f\ +\x9c\xd7\x9e\x10\xe0\xca\x98\xee\x30\x3b\x76\xbe\x82\xd7\xf7\x1f\ +\x41\xad\x66\x47\x81\x54\x09\xd4\xfe\x5b\xab\x3c\xf7\xd5\xf1\xbd\ +\x7f\x7f\x1e\xc1\x2a\xc1\x4d\xe4\x82\xb2\x34\x03\xa8\x96\x25\x48\ +\x29\x8b\x8f\x6a\x85\x09\xab\x52\x65\x93\xde\x62\xdd\xdc\x2b\x3e\ +\xa3\x08\x8c\x7c\xba\xb8\x20\x65\xc6\xa2\xa2\x01\x8a\x68\xc2\xe3\ +\x5c\xef\xf0\xe7\x92\x2b\x97\xfa\xfc\xc8\x8d\x93\x47\x0a\xbd\xeb\ +\x24\x7a\x26\x38\x80\xc5\xb0\x2b\x6f\x3a\x43\x84\x2a\x48\xdc\x37\ +\x3f\x50\xc1\x04\xb0\xe2\xa6\x37\xf0\x6c\x46\xa5\xb3\x99\xa8\x80\ +\x5e\xe5\x1c\x4b\x52\x18\xd6\xb9\xbc\xcc\x3b\xae\x67\x55\x01\xb8\ +\x53\x0a\x64\xd2\xf1\xdd\x61\x9e\x79\x6e\x37\x0e\x1f\x3b\xad\x70\ +\x86\x97\x64\x96\xda\xd6\x37\x2b\xf9\x73\x7f\x39\x7d\xf0\xd1\x3c\ +\x02\x90\x12\x1b\xdc\x74\xb0\x6a\x14\xa8\x9a\x01\x52\xa4\x09\x80\ +\x2b\x37\x8c\x08\xbf\x7e\x65\x21\x6c\xca\x0b\x57\xcd\x99\xf2\x52\ +\x29\xa9\x53\x88\xca\xc7\x25\x51\xdb\xa5\x78\xd5\x8f\x69\x4d\x23\ +\x20\xa5\x9c\x9e\xa0\x03\x28\x33\x70\x12\x0d\xe0\x61\x29\x75\x42\ +\x59\x04\x12\xdb\xcc\x80\x96\x8a\x65\xf9\x0c\x8b\x9d\x46\x40\x18\ +\x76\x65\xaa\x0a\xb2\xd4\x46\xc0\x1e\x4e\x1d\xf3\x03\xc0\x31\x30\ +\xb5\xea\x45\x82\x36\x88\x2a\xa0\x5f\x2e\x04\x03\x15\xfb\xfe\xd6\ +\xcb\xaa\x5c\xd0\xa5\x2d\x77\x87\x39\x43\xad\xea\x1f\xce\x9f\x79\ +\xf5\xef\x17\xce\xef\xab\x82\x07\x29\x45\x47\x9a\x0b\x56\x8d\x00\ +\x55\x93\x40\x4a\xca\xd3\x24\xd1\xa9\x6b\x51\x2d\x50\x34\x9f\x08\ +\x65\xb0\xd9\x04\x40\xe4\x5a\xa0\xb1\x4b\x49\xc6\x73\x4e\x1d\x34\ +\x07\x29\x79\x52\xa9\x22\x3d\xd3\x0e\x70\xf9\xd8\xda\xd5\x77\xc0\ +\x1c\x98\x62\xdc\x15\xa1\x32\xce\xc6\xc2\x54\x17\xa8\x87\x2c\x00\ +\x05\xfd\x61\x47\xf7\x40\x78\xdb\x95\x4e\x15\x14\xc1\x8a\x57\x03\ +\x35\xeb\x9e\x83\x61\x39\xcc\xab\xe6\xbf\x7d\x8a\xf9\x55\x41\x67\ +\x7c\x3d\x91\xb3\x97\x89\xe0\x55\x1f\xab\xe2\xd9\x54\x4f\x57\x9b\ +\xb9\x3b\x8c\x6d\xe1\xed\x43\xc7\xf0\xec\x73\x2f\x1b\xba\xc3\xd0\ +\xfd\x76\xb5\xf4\xdb\xd3\x07\x1f\x79\xba\xba\x30\xe9\x35\xdd\xbb\ +\x23\x2a\x20\x6a\x3a\x58\xd5\x0b\x54\x44\x73\xbe\x2c\x40\x4a\x66\ +\x51\xaa\x5f\x93\xf9\x54\x9a\x86\x2a\x0c\xe8\x7e\x49\x3e\x70\x29\ +\x98\x9b\x92\x41\x35\x08\x52\x1c\x96\x10\x89\xe8\x71\xe3\x96\x46\ +\x00\x45\x22\x58\x95\x78\x60\x28\x94\xfb\x61\xda\xa4\x06\xad\xc0\ +\xa0\xce\x33\xac\x60\xba\x02\x71\xcf\x99\x11\x38\x88\xac\x29\x50\ +\xb1\xe2\x80\x15\x3b\x12\xe8\xd1\x22\xde\x5e\xc5\xd3\x30\x11\x38\ +\xd4\x6c\x8a\x0d\x8c\xcf\xaa\xb4\xc6\x2e\x0a\x0c\xf5\x75\xe2\xae\ +\xeb\xe3\xb8\xc3\x1c\xc0\xce\xdd\x7b\x31\xbf\x50\x8c\x76\x87\xa1\ +\xf4\x39\xab\x3c\xf7\x5b\xe3\x7b\x7f\xf0\xba\x5b\x73\x18\x48\x85\ +\x81\x15\x84\xf0\x58\x52\x0f\x50\x11\xcd\xb1\x2a\x8d\x0e\x8c\x5a\ +\xc8\xa4\x98\x62\x25\xc4\x89\x40\x30\x13\x36\xa5\x98\xa5\x2e\x4f\ +\x37\xd0\xf7\x54\x65\x3c\xe7\x92\x36\x09\xa4\x22\x59\x94\x70\xe5\ +\x75\x0f\x2c\x0f\x66\x0d\xdc\x2e\xbf\xff\x3c\x62\x71\x4f\xb0\xaf\ +\xda\x05\x31\x12\x60\x79\x36\x2c\x0d\xbb\xf2\xd7\x1b\x03\x8d\x01\ +\x56\xec\xdb\xc5\x83\x95\xff\x56\xb1\x60\x05\xd1\xf0\xce\x20\x28\ +\x07\x36\xc2\x44\x50\x08\xbf\x22\x9b\x0a\x61\x55\xe2\x08\xa0\x27\ +\x63\x23\x39\x6c\xbe\x7e\x14\x83\x3d\xd9\x66\xbb\xc3\x54\x41\xed\ +\xff\x59\x5d\x18\xff\x83\xc9\xfd\x0f\x9e\x84\xb3\x5b\x0c\x3b\xb2\ +\xc7\xde\x59\x13\xd6\xa4\x02\x31\x63\x69\xa5\xea\x17\xc6\xb2\xf8\ +\xe3\xe6\x9b\xa8\x22\x90\xd1\x90\x4d\x85\xb0\x2a\x42\x34\x15\x31\ +\x91\x61\x2a\x9f\x72\x84\x8f\x05\x84\x38\x20\x25\x4d\xf4\x0c\x61\ +\x51\x06\x00\x15\x05\x4e\x44\x7b\x22\x08\x55\x9d\xf2\x68\xce\x02\ +\x17\xa3\x75\x39\x31\x22\x60\xb1\x36\x2c\x6e\xc6\xb8\xf3\x86\xb3\ +\x3b\xe4\x44\xae\x7b\xce\x82\x0b\x33\x45\x80\x41\x25\x69\xb9\x60\ +\xd5\xab\x18\xb0\xa9\x90\x51\x40\x8d\x61\x5d\xfd\xde\xca\xac\x4a\ +\xf5\x9b\x4a\x11\x5c\xb3\xb6\x1f\x77\x5c\x37\x82\xee\xce\x68\xa3\ +\xf9\xf4\xf4\x0c\xb6\xed\x78\x09\x07\x0e\xbd\x03\xdb\x8e\x74\x87\ +\x29\x50\xbb\xf6\x57\xe5\xe9\x13\x7f\x36\x73\x64\xeb\x14\xe4\x91\ +\x3d\xdd\xb1\xe9\x6f\x6c\x89\x0b\x54\x26\x60\xa4\x0b\x0f\x49\xdb\ +\xbc\x79\x54\x3c\x80\xe8\x8c\xdf\x61\x5d\x53\x1c\x2b\xcb\x20\xdc\ +\xff\x3a\x95\x4f\xd5\x73\xa1\x89\x5c\x7d\xbc\xfb\x0e\x9a\x06\x52\ +\x42\x35\x6a\x80\xd2\x80\x93\x39\xa1\x62\xb5\x02\x39\xbd\x7f\xca\ +\xb1\xa9\xe0\xa2\xb0\x8e\xc2\x6c\x7f\x7d\xc0\x72\xfb\xcd\x2e\xb3\ +\x02\xee\x5c\x50\x05\xc3\xd6\x3d\x87\xc8\xa6\x84\x49\x99\xc2\x85\ +\x89\x5e\xdb\x9c\xbf\x8e\x9c\x0a\xc8\xe2\x13\xe2\xb3\x2a\x9f\xc1\ +\xc1\x59\xbf\xac\x2d\x93\xc6\x8d\x57\x0e\xe2\xa6\x2b\x9d\xdd\x61\ +\xec\x10\x94\x22\x84\xe0\xfc\xf9\x0b\x78\x7a\xdb\x6e\xd3\xdd\x61\ +\xc6\xa9\x55\xfe\xd3\xf9\x33\xaf\x7d\x7f\xe1\xfc\xbe\x02\xe4\x91\ +\x3d\xef\xa6\xc5\x55\xf5\x1a\x02\xad\x38\x40\x15\x07\x8c\x10\x91\ +\x96\xfb\xa5\x30\x78\x07\xea\x6e\xa6\x10\xc3\xb1\x25\x22\x9c\x33\ +\xbf\x61\x8d\x26\xea\x5f\x55\x33\xb8\x51\x3e\xbf\x0d\x21\x76\xa9\ +\x7a\x41\x8a\x04\x75\x70\xe9\xa5\xf6\x19\xce\xa9\x52\x5e\x4a\x0e\ +\x7e\x63\xdd\x03\xca\x1e\xb1\x80\x2d\x82\x56\x28\x60\xa9\xd8\x15\ +\x05\x4f\x8e\x62\x6c\xd2\x00\x7e\x8a\x80\xb4\xbd\x55\xc4\x64\x50\ +\x1f\x40\x42\x46\x01\x83\x9b\xc3\x1b\xd6\x8d\x58\x95\xe2\x1a\x76\ +\x75\x64\x70\xfb\xb5\xc3\xb8\x76\x5d\xbf\xef\x0e\xc3\x12\x41\x3e\ +\x9b\xe7\x0e\xb3\xdb\xd0\x1d\x86\x1e\xb3\xab\xc5\x3f\x98\x3e\xf4\ +\xe4\xc3\xd5\xf9\x8b\x16\xd4\x23\x7b\xa6\x80\x13\x07\xc4\x22\xc5\ +\x14\xa8\x1a\x06\x23\xc5\x2f\x9b\xaf\x29\x38\xa5\x37\x41\x99\x34\ +\x5f\x88\x97\x50\x2b\x84\x71\xf9\x49\x58\x60\x08\x57\xf9\xb8\xdc\ +\x3e\x48\x71\x94\x47\x60\x32\x06\x4c\x8b\x6b\xb2\x0c\x52\x6a\xbb\ +\x15\xcb\xe6\x54\x97\x88\x68\xc2\xe3\x49\xc0\xa6\x82\x42\x9c\x97\ +\x8b\xe1\x55\x34\x0a\xb0\x88\x7b\xce\xb2\x2b\xaf\x9f\x75\xee\x28\ +\xc3\xb2\x16\x15\x78\x68\xe6\x57\xe9\x5e\x51\x3f\xca\x84\x4d\x79\ +\xbf\x3a\x56\xc5\x00\x26\x6c\xa0\x3f\x97\xc5\x7b\x36\x8e\x60\xfd\ +\x48\xf4\xee\x30\x56\xad\x86\x37\x0e\xb8\xee\x30\x79\x03\x77\x18\ +\x6a\xbf\x5a\x2b\xe5\x7f\x67\xe2\x8d\x7f\x78\x11\xd4\x66\x6f\x59\ +\x18\x08\x99\xfe\xea\xf2\x23\x24\x0d\x27\xcd\x56\xfd\xc2\xc0\x48\ +\x0c\x6f\x1e\x89\x12\x8b\x0c\xa1\x46\x6a\x36\x45\xc2\xb2\xf0\xbf\ +\x1a\x36\xa5\xec\x8c\x90\x99\x3b\x15\x18\x10\x07\x2f\x1c\x20\x09\ +\x6c\x8c\x6d\xaf\x5f\xbf\x08\x4a\x24\x94\x45\x11\xfe\x3f\x05\x7b\ +\x8a\x06\xa7\x38\x37\x8f\x6a\x32\x3a\xe0\x44\x82\x34\xde\x66\xad\ +\x61\x80\xe5\x5e\x0f\xd1\xdf\x0e\x0c\xb3\x71\xc2\xa3\x76\x94\x61\ +\x47\xd3\x88\x6c\x5c\xf7\x49\x10\xf3\x1e\xa9\x54\x40\x18\x18\xd6\ +\xfd\xbe\xc4\x61\x55\xbc\xac\x1e\xec\xc2\x5d\x9b\x56\x63\xa8\x5f\ +\xbd\x86\x94\xdf\x95\x14\x41\xb9\x54\xc6\x4b\xaf\xec\xc5\x8b\xaf\ +\x18\xb9\xc3\xd8\xd4\xb6\x9e\xac\x2e\x5c\xfa\xbd\xa9\x03\x3f\x3e\ +\xc4\xdc\xa1\x56\xa9\x7a\x51\x20\xa6\x14\x13\xa0\x32\x01\x1d\xd3\ +\xbc\xaa\x32\x48\x2b\xac\xe9\x22\x9b\x32\x55\x5a\x82\x64\xf1\xd8\ +\x54\xa8\x01\xdd\x2f\x92\x57\xf9\xe0\x57\xc3\xb3\x25\x22\xc6\xb1\ +\x4d\x88\x09\x52\x61\x2c\x4a\x0b\x50\x8a\xcb\xc4\xf1\xae\x98\x9f\ +\x98\x80\x4d\xf9\xff\x05\x77\xdc\xeb\xaa\x0b\x36\xa1\x80\x25\xec\ +\x28\x53\x0f\x58\x05\xa3\x81\xec\x48\x9a\xde\xb8\x2e\x39\x11\x87\ +\xbc\x6e\x52\x54\x1c\x56\xe5\xb7\x03\xbe\x11\xdf\x73\x6a\xde\xb0\ +\xba\x17\x77\x5e\x37\x82\xde\xee\x76\xd9\xb7\x8f\x01\x3b\xdf\x1d\ +\xe6\xf9\x57\xf1\xfa\xfe\xc3\x26\xee\x30\x65\x6a\x57\x7f\x50\x9e\ +\x7a\xe7\x6b\x33\x47\x9f\x65\xdd\x61\x1a\x65\x49\x61\x8f\x42\x5d\ +\x2a\x60\x23\x36\x2a\x31\xbc\xde\xdf\xa6\x88\xe8\xd7\x67\x52\xbb\ +\xf7\xba\xaa\x41\x2d\x3e\x9b\x12\xde\xf9\xd0\xde\x72\xcd\xe4\x18\ +\x14\x0b\x52\x7c\x10\xd7\xd6\x98\x20\x15\xce\xa2\xd4\x00\xe5\xa7\ +\x6c\x90\x55\xf1\xa0\xc4\xd4\x2f\x6c\x14\x1a\x84\x6b\x00\x8b\xb8\ +\xe0\xc2\x00\x91\xa7\x0a\xb2\x76\xab\x38\x60\x85\x10\xe3\xba\x18\ +\x61\xbc\x63\x4c\x3d\xac\x4a\x34\xca\x53\x20\x93\x4a\xe1\xba\xf5\ +\xfd\xb8\xf5\xaa\x21\x74\x64\xd3\x01\x18\xb3\x00\xcb\xdc\x6b\x67\ +\x77\x98\x97\x70\xf8\xd8\x29\x13\x77\x98\xbc\x5d\x2b\xff\xc5\xc2\ +\xb9\xd7\xbf\xb3\x70\x6e\xef\x1c\xf8\xe9\x07\xaa\x5b\x1d\x87\x25\ +\x35\x13\xdc\x00\x44\x03\x95\x29\xc8\xc4\x0d\x47\x44\x78\x3c\xd1\ +\xd0\x00\xbe\x72\xc5\x2a\x9d\x26\x3d\x8c\xc1\xa6\xbc\x76\x28\x0d\ +\xe8\x60\xd5\x4b\x7d\x39\x62\x9b\x39\x30\xe1\x22\x63\x80\x54\x0c\ +\x80\x92\x00\x53\xd1\xf3\xf0\x40\x45\x32\xe1\x51\x0c\x80\x8b\x30\ +\xf1\x94\x03\x34\xd5\xf6\x57\xfe\xe8\x1c\xd1\xa8\x82\x7e\x3a\x3d\ +\x58\xc9\xf8\xa3\xb7\x57\x89\x1b\x82\xb2\x2a\xa0\x34\x11\x14\x02\ +\x88\x71\xd3\x15\xe2\xb0\x2a\x02\x1b\x14\xd9\xf6\x34\x6e\xbe\x6a\ +\x15\x36\xad\xef\x47\x5b\x3a\x05\x3b\x84\x7f\x10\x02\x9c\x3c\x79\ +\x06\x4f\x6f\xdb\x8d\xd3\xe7\x2e\x19\xd8\xa3\xe8\x39\xbb\x5a\xf8\ +\x93\x99\x63\xcf\xfe\x43\x65\xf6\x6c\x05\xc1\xea\x07\x61\x00\x13\ +\x05\x36\x3a\x96\x14\x15\x1e\x05\x66\x00\x9a\xe7\xeb\x17\x37\x9c\ +\x18\xa4\x8d\xdd\x08\xb9\xf0\x38\x45\xf3\x4d\xaa\x97\x4d\x71\x60\ +\x18\x06\x76\x24\x48\x23\xb3\xaa\x20\xc0\x07\x39\x0e\x4c\x1a\x07\ +\x29\xd1\x3d\x46\xc5\x9e\x94\x0c\x51\xb8\xa6\x51\x57\x98\x72\x89\ +\x5c\xa8\xa1\xaa\x78\xe2\xb3\x2c\x8e\x61\x29\xd9\x95\x7b\x6d\x54\ +\xaa\x60\x04\x58\x39\x20\x44\x02\x9b\x94\x5b\x33\x15\x98\x8e\x97\ +\x4e\xa7\x02\x4a\x6f\x55\xe8\xeb\xa6\x79\xdf\x15\xe8\x45\x6d\xa0\ +\xa7\xb3\x0d\xb7\x5f\x3b\x82\x2b\x47\x7b\x7c\xf7\x21\xbe\x58\x17\ +\x16\x09\x60\xdb\x36\xde\x3a\x78\x0c\xcf\x6c\x7f\xc9\xcc\x1d\x86\ +\xda\x6f\xd7\x4a\xb3\xbf\x3f\xf5\xd6\x43\xcf\xd8\xd5\x22\x05\xbf\ +\x44\x8b\x49\x8f\xea\x65\x49\xc6\xec\x49\x25\x61\x40\x55\x2f\x9b\ +\x8a\xcf\xbe\x68\xe4\xf3\x6e\x26\xe2\x1b\xcf\xfc\x72\x6c\xc6\x3f\ +\x0f\x99\x1a\xa0\xbd\x1c\xc2\xb1\xe8\x4e\x43\xd4\xb9\x94\xf5\x70\ +\xc9\x05\x00\x63\x6b\x51\x80\x50\x14\x48\x11\xfe\xbf\xf0\x39\x55\ +\x7c\x02\x45\xbd\x42\x7b\x74\x97\x45\x14\xaa\x86\xb5\x60\xe0\x8f\ +\x2a\x40\x4b\x06\x2c\xe2\x66\x52\x2e\x23\x0c\x05\x73\x32\x01\x2b\ +\x8e\x5a\x09\x6f\x5f\x4c\xd5\x2d\x36\xab\x52\xb2\x2b\x27\x70\x55\ +\x5f\x07\xde\xb3\x71\x04\xa3\x03\x5d\xee\x35\x51\xbf\xdb\x29\x42\ +\x50\xa9\x56\xb0\xe7\xb5\xfd\xd8\xf1\xc2\x5e\xcc\x17\xa2\xdd\x61\ +\x28\xb5\x76\x55\xe7\x2e\xfd\xde\xd4\x5b\x3f\xde\xeb\x56\x2b\x3e\ +\xd4\x51\xcc\xa6\x5e\x96\xd4\x30\xab\x6a\xc6\xcc\xf4\x26\xa4\xaf\ +\xdf\x98\x6e\x46\xdd\x62\x32\x2b\x81\x09\x99\xb1\xa9\x88\xe9\x08\ +\x22\x3a\x84\xaa\x7c\x0c\x6e\x70\xc6\x73\xa1\x62\x03\x90\x8a\x64\ +\x51\x5a\x80\x52\x5c\x39\xc5\x65\x0c\xc5\x29\x55\x24\x07\x5e\xc1\ +\xd6\x57\x40\xc0\xb4\x7c\x10\x62\x55\x42\x1f\x10\x9c\x84\xa2\x2a\ +\x68\x0a\x56\x3e\x30\x91\x08\x7b\x95\x97\x34\x84\x4d\x35\x87\x55\ +\x05\x87\xeb\x86\x72\xb8\x73\xe3\x08\x06\x7a\xb2\x4e\x1f\x58\xeb\ +\x3d\x47\xc4\x08\x0a\x0b\x0b\x78\xfe\x85\x3d\x78\xf9\x75\x23\x77\ +\x98\x1a\xb5\x6b\x0f\x95\xa6\xde\xf9\xea\xec\xd1\x67\x4e\x22\xb0\ +\x47\xe9\x46\xf0\x4c\x01\x24\x2e\x4b\xaa\x9b\x55\xe9\x80\xaa\xd9\ +\x6c\x2a\xaa\x9c\x06\x45\x7e\xd1\xe3\xcc\x44\x8f\x32\xa2\xeb\xf2\ +\x85\x5b\xd3\x35\xe5\x85\xb1\x2a\x45\x80\x04\x52\x7e\x79\xf5\x83\ +\x94\x9f\x52\xc6\x3d\xae\x4e\xa9\xbb\xaa\x40\xa3\x2b\xec\x09\x95\ +\xc0\x8b\x1f\xed\x73\xd2\xc8\xfb\xf5\x69\x96\x11\x46\xc4\x68\x9f\ +\xff\x5a\xb0\x3e\x77\x8c\x73\x8b\xc4\x6c\x64\x15\x30\xb8\x7a\x8a\ +\x89\xa0\x9c\x6a\xa8\x5b\x9d\x53\x33\x02\xe8\x15\x4f\x9d\xfb\x78\ +\xf5\xda\x5e\xdc\x7e\xcd\x30\xba\x3a\xf4\xee\x30\xde\x87\x65\x7a\ +\x7a\x06\xcf\x6c\xdf\x8d\xfd\x07\x8f\xc3\x8a\x76\x87\x29\xda\xb5\ +\xf2\x77\x0b\x17\xde\xf8\xd6\xfc\x99\x3d\xac\x3b\x0c\x98\xe6\x89\ +\xc7\xd0\xa4\x61\xcf\xeb\xfd\x35\x2d\x87\x93\x66\xad\x9e\xd0\x48\ +\x9a\xe6\x80\x96\x4e\x77\xe3\x00\x81\x28\x81\x02\xca\x5f\xa2\x2c\ +\x57\x9a\xd5\x2d\x55\x17\xce\xa6\x64\x9e\x12\xa4\xe1\xa7\x29\x88\ +\xc6\x73\xb6\xc8\x38\x20\x25\x02\x56\xd0\x2e\x13\x80\x92\xda\xab\ +\xb9\x5b\x62\xb0\xf2\x5d\xa3\x6c\x1d\xa2\x2d\xca\x0b\x95\x99\x8d\ +\xc7\xae\xd8\x89\x9e\x9e\x2a\x18\x35\x35\x41\x98\x75\x20\xcf\x20\ +\x67\xa6\x01\xa8\xd6\x8f\x62\x67\xad\x1b\x91\x01\xe9\xb5\xe3\x01\ +\x8f\xc5\x05\x0a\x8a\xb6\x4c\x0a\xd7\x5f\x31\x80\x1b\x37\x0c\xa2\ +\x3d\xc3\xae\x21\x25\x63\x08\x21\xc0\xd9\x73\x17\xf0\xd4\xb3\x2f\ +\xe2\xf8\xc9\x73\x61\xb7\xc3\xbb\xc6\x93\x76\xa5\xf0\xe7\xf9\x13\ +\x3b\xff\x73\x69\xea\x1d\xd1\x1d\xc6\x14\x40\x54\x0d\x8a\xea\x7d\ +\xa3\x69\x24\xc9\x68\x0a\x52\x9d\xc7\x65\x53\x71\xd3\xd5\x2d\x3a\ +\xf0\x50\x28\x2f\x11\xdd\x25\x11\x8d\x65\x38\x85\x66\xa4\x2f\xb4\ +\xd3\xcc\x89\x88\xab\x32\x23\x94\x5b\xa5\x74\x75\x69\x36\x48\xa9\ +\x00\x2a\x1a\xa7\x42\xaf\x2a\x1b\xe8\x3f\xa1\x22\x68\x71\x80\xa5\ +\xde\x0d\x99\x80\xf0\xb6\xab\x28\xb0\x82\x30\x7d\x80\x35\x47\x6b\ +\xed\x55\x01\x50\x82\x8d\x65\x40\xcb\x8c\x55\x29\xde\x74\xaf\x9d\ +\x04\xa0\x36\x45\x57\x36\x83\x5b\xae\x5a\x85\x6b\xd6\xf6\x23\x95\ +\x52\x6b\x8b\x81\x8a\x4b\x71\xe4\xe8\x09\x3c\xf9\xec\x6e\x5c\xb8\ +\x34\x65\x62\x34\x3f\x51\x2b\xe5\xff\x78\xe6\xd0\xe3\x8f\xd4\x4a\ +\xb3\x9e\x3b\x4c\x5c\xf6\x24\x86\x37\x9b\x2d\x19\x83\xa2\x89\x31\ +\xdd\x34\x7c\xc9\xc5\x5c\x35\xd1\xcf\x44\x6f\xb8\xbb\x51\x6c\x8a\ +\x73\x22\x56\xb3\x36\x0e\x30\x25\xe3\x39\x53\xb4\x62\xba\xb9\x1e\ +\xa4\x88\x54\x9d\x29\x40\xc9\x57\x80\xc4\x7f\x0a\x5c\x7b\x13\x5b\ +\x9f\x0c\x5a\x3c\x60\xe9\xd9\x95\x21\x58\x31\x4c\xc8\xb7\x49\x69\ +\xed\x55\x3a\x36\xa5\x67\x44\x5a\x62\x20\x00\x9e\xe4\x03\x48\x29\ +\xfa\x72\x59\xdc\x71\xed\x30\xc6\x86\x72\x5e\xcf\xd5\x45\xb9\xee\ +\x30\xfb\xde\x7c\x1b\xcf\xec\x78\xc5\xc8\x1d\x86\x52\xeb\xf5\xea\ +\xfc\xf8\x1f\x4e\xbd\xf5\xe3\xdd\xc1\x5e\x5e\x0d\x4d\x21\x68\xb6\ +\xc4\x05\x4a\x09\xa8\xe2\x82\x53\xbd\xec\x2b\xaa\x5c\xf3\xee\xb2\ +\x4f\xbe\x82\x9e\x04\x18\x40\xb8\x73\xb9\x15\x3a\x95\x8d\x05\x06\ +\xef\x97\x67\x38\xea\x79\x53\x2a\x36\xc5\xa3\x0d\xd7\x36\x3f\x56\ +\xad\xf2\x01\xea\xba\xb8\x76\x30\xf5\xa8\x40\x4a\xc9\xa2\x4c\x01\ +\x4a\x64\x62\xf5\xdc\x2b\x30\x2b\x4f\x8a\x9b\x85\xba\x07\x2c\x60\ +\xa9\xd8\x95\x31\x58\xf9\x23\x6f\x8c\xea\x07\xde\xb8\xce\xad\xed\ +\xa4\x71\x6b\x51\x83\x97\xf8\x1b\xe4\x15\xb7\x68\x57\xc9\xc8\x40\ +\x27\xee\xbc\x6e\x04\x43\xbd\x11\xee\x30\x24\x85\x72\xa9\x88\x17\ +\x5e\xda\x8b\x5d\x2f\xbd\x81\x62\xa9\x6c\xe0\x0e\x53\x7b\xa6\x3c\ +\x7d\xf2\x8f\x66\x8e\x3c\x7d\x08\xfa\xa9\x07\x6c\x35\xf5\x86\x37\ +\xcc\x92\xe2\x84\x9b\x1a\xd3\x4d\xc3\xd1\x60\x78\xc3\x52\xbf\xda\ +\x17\xa5\x9b\x1a\x34\x39\x92\x4d\x85\x30\x38\x45\x84\x6e\x61\x3e\ +\x36\x5d\x3d\x20\xc5\xba\xe8\xb0\xf5\xc8\x00\x25\xe4\x8d\x79\x39\ +\x7c\xa1\x8a\x6c\xc4\x05\x2d\x2d\x60\xa9\xd9\x55\x24\x58\x41\x8e\ +\x97\x8d\xeb\x60\xd8\x14\xaf\x02\x8a\x9b\x2f\x84\xdb\x99\xf8\x7e\ +\xc9\x6f\x25\xcb\xe0\x9c\xb2\xd7\xaf\xee\xc1\xed\xd7\x0c\xa1\xa7\ +\xab\x8d\x61\x7d\x6c\x83\x82\x76\xcd\xe5\xe7\xb0\x6d\xc7\x4b\x78\ +\xed\x8d\x43\xa8\xd6\xac\x28\x90\xaa\xd8\xb5\xf2\x3f\x14\x2e\x1d\ +\xf8\xb3\xf9\x53\x2f\x9f\x47\x30\xb2\xd7\xa8\xfa\xd5\x54\xc0\xa9\ +\xa3\x3e\x00\xad\xdd\x29\x39\x4e\x78\x63\x1f\x6a\xa3\x6a\x82\xf8\ +\x70\x40\x52\x97\x65\x34\x25\x41\x51\xa6\x9a\xc1\x05\x85\x29\x67\ +\xaf\x43\xad\xf2\x41\x8c\x63\x6b\x92\xb1\x51\x01\x52\xe2\xb2\x30\ +\xdc\x01\x07\x50\x52\xbd\x0a\x00\x35\x16\x37\xb9\xcf\x34\x18\x86\ +\x13\x00\x56\xc0\xb7\xb8\x35\xcf\x3d\x03\xba\x29\x58\xa9\x96\x66\ +\x41\xc0\x9e\xb8\x69\x09\xaa\x76\xea\x54\x41\xef\x97\x63\x53\x0a\ +\x30\xd3\xbc\x6e\x99\xb4\xb3\xd0\xdd\xcd\x57\xad\x42\x47\x7b\x5a\ +\xf2\xd9\xe3\x30\x94\x10\x5c\xba\x34\x8e\xa7\x9e\x7d\x11\x07\x8f\ +\x9c\xf4\xc1\x56\x2f\x74\xce\xae\x14\xff\x6a\xee\xd4\xee\xbf\x29\ +\x4e\x1c\x66\x77\x87\x69\xb5\xc4\x56\xe1\xea\x15\x16\xa8\x9a\xa5\ +\xf6\x89\xe7\xa6\xe1\xf1\x2f\x91\xea\x54\xa9\xfe\x29\xd4\x3e\x11\ +\x49\x04\x36\x24\xf9\x0e\x82\x8f\xd7\xa2\x9d\x48\x7b\x18\x40\x88\ +\xcc\xa2\xbd\x22\x9a\x85\xf9\xc4\xb6\x72\xa0\x63\x0e\x52\xa1\x0c\ +\x4a\xa1\x6a\x46\xdd\x0b\x5f\xa8\x98\x2c\xb8\x76\x2c\x68\x11\x3f\ +\x8c\xf8\x0c\x8b\xdd\x82\x9d\x55\x05\xa3\xc0\x4a\xf2\xcb\xe3\xec\ +\x55\x41\x73\x55\xeb\x48\x79\xe1\x4a\xc3\x7a\x08\xab\x92\x01\x2d\ +\x60\x77\x36\x05\xb2\x6d\x69\xdc\xb0\x61\x00\x1b\xc7\xfa\x91\x49\ +\x85\xed\x0e\xe3\x94\x70\xe2\xe4\x29\x3c\xb1\xf5\x05\x9c\x3a\x6b\ +\xe4\x0e\x73\xc1\x2a\xe7\xbf\x31\x73\x74\xeb\xff\xa8\xce\x8f\x8b\ +\xbb\xc3\xe8\x9a\xb8\xd8\xe1\xba\x73\xe3\xf0\x38\xc6\xf4\xb8\x6a\ +\xdf\xe2\x0a\x31\x0a\xd2\xc6\xd6\x83\x9e\xa1\x6c\x4a\xf3\xc2\xeb\ +\x67\xb2\xeb\xd8\x14\xcb\x6e\x88\x54\x1e\xd7\x06\x6d\xd1\x0a\x75\ +\x50\x97\x86\x29\x9f\x68\x2e\xaa\xf1\x35\x62\x12\x52\xe1\xc0\xb7\ +\x46\x11\x1e\xb0\xa8\xef\xff\x27\xb2\x2b\x33\xb0\xf2\xc1\x86\xa1\ +\x55\xd2\x0e\xc7\xaa\xd7\x42\x78\xd5\x74\xfa\x92\x88\x5f\x60\xeb\ +\x12\x58\x15\x05\x90\xeb\x6c\xc3\xad\x57\x0f\x61\xc3\xea\x1e\x1e\ +\xeb\x44\x10\x05\x40\x2d\x1b\x6f\xbd\x7d\x04\x4f\x6d\xdb\x8d\x89\ +\xa9\x59\x03\xa3\xb9\x7d\xa8\xb6\x30\xfe\x6f\xa6\xde\x7e\x74\x1b\ +\xb5\x2a\x36\xe4\x9e\x35\xaa\xa6\x45\x85\xc7\x79\x12\x1a\x9a\x02\ +\x61\x32\x3d\xa1\x19\xd2\x52\x30\x23\x82\xa1\x97\x3f\x53\x37\xa3\ +\x2e\xb5\x4f\x54\xb9\x42\x7b\x45\xd4\x65\xe9\x52\x19\x20\x25\x4f\ +\xe6\x84\x25\x63\x38\x90\x22\x32\x00\x29\x59\x97\x90\xc6\x2f\x4a\ +\xa6\xab\x6a\x58\x57\x74\x46\x3b\x10\x46\xb9\xac\x81\xba\xc7\x00\ +\x16\x0d\x4a\x56\xed\xc3\x17\x05\x56\x81\x41\x5b\x20\x41\x0c\x42\ +\x48\x2a\xa0\x60\x58\x37\x67\x55\xe0\xeb\x82\xfc\xe6\x0d\xf6\x64\ +\x71\xfb\xb5\xc3\x58\x3d\xd0\x85\xb0\xf7\x9c\x10\x82\x4a\xb9\x82\ +\x57\xf6\xbc\x89\xed\xbb\xf6\x18\xed\x0e\x43\xed\xda\xee\xca\xec\ +\x99\xaf\x4e\x1f\x7a\x62\x9f\x5b\x2d\xfb\x04\x2d\x25\x08\x35\x43\ +\xa4\x32\x9b\x6d\xa3\x32\x65\x5b\x42\x78\xa3\xd7\x29\xa2\x3a\x22\ +\xbc\xcf\x11\x3a\x98\x56\xed\x8b\xea\xa5\xce\x77\x50\x51\x2f\xef\ +\xce\xa2\xb0\x75\x09\x6c\x4a\x5c\xd7\x8a\xad\x97\x67\x72\x2c\xeb\ +\x8a\x9e\x9d\x2e\x6b\xaa\x44\x38\x17\x3a\x29\x82\x5c\xd4\xb5\x71\ +\x25\xd8\x86\xdd\x3f\x83\x1f\x44\x83\xb6\xc9\x3b\xca\x98\x83\x95\ +\xcf\x9d\x08\xe4\x39\x4d\x3e\x68\x41\xcb\xa6\x4c\x57\x3a\xe0\x32\ +\x49\xc7\x8e\xac\x59\xd5\x8d\xdb\xaf\x19\x42\x7f\x2e\x2b\x62\x9b\ +\x30\xb7\x8a\xa0\xb0\x50\xc0\x73\x3b\x5f\xc1\x4b\x7b\x0e\xa0\x6c\ +\xe2\x0e\x63\x55\x1e\x2b\x5e\x3a\xf4\x6f\xf3\x27\x77\x9d\x84\xbc\ +\xf2\x81\xae\xaa\xb8\xe1\x71\x59\x8f\x31\x3b\xaa\x47\x3c\xa0\x32\ +\x04\x14\x6d\x78\x9d\x00\xd5\x18\xd3\x22\xba\x00\x11\x10\x22\x4a\ +\x89\xa3\xf6\x11\x29\x0f\x89\xc8\x6b\x06\xa4\x91\x0d\x10\xd2\xa8\ +\x54\x3e\x6e\x0a\x01\x11\x6b\x0e\x63\x5d\x66\x00\xd5\xc8\xcd\x62\ +\x01\x93\x05\x2d\xd5\x7e\x7d\x61\x5b\x5b\x85\x82\x15\xaf\xf1\x49\ +\x01\x6a\x67\x61\xce\xa9\x06\xf2\xb0\xa0\x50\x8e\x77\xa8\xf8\x05\ +\x05\x48\x8a\xe0\xaa\xd5\x3d\xb8\xf9\xaa\x55\xe8\x56\xb9\xc3\x30\ +\x55\x10\x42\x30\x35\x39\x8d\xa7\xb7\xbd\x88\x37\xde\x3a\x06\xcb\ +\x32\x70\x87\xa9\x16\xff\x6e\xfe\xcc\x2b\x7f\x59\xb8\xf8\x96\xe8\ +\x0e\x13\x76\xe9\x5b\xa1\xfe\xd5\x9b\xae\xae\x7a\xa3\xa6\x27\x44\ +\x85\x37\x43\xa5\x8b\x5f\x86\x41\x0e\x62\x10\x5b\x8f\xda\xa7\x67\ +\x63\xec\xaf\x02\x30\x88\x2e\x8b\x01\x9b\x12\x54\x4e\xb5\xca\x47\ +\x84\xea\x59\x80\x31\x07\x29\xd1\x1e\xa6\x7b\x6f\x0c\xb6\x00\xf7\ +\xc5\x9b\x86\xc0\x95\xec\xb3\x29\x57\xd9\x12\xd8\x55\x6c\xb0\x62\ +\xe6\x43\xf1\xf6\xaa\x08\x36\xc5\x36\x8a\x9a\xa4\xd5\x30\x29\x0a\ +\xb4\xa5\x53\xd8\x38\xd6\x8f\x4d\xeb\xfb\xd1\xde\x96\x12\xe6\x6f\ +\x89\xd7\x0f\x38\x7b\xe6\x3c\x1e\xdf\xba\x0b\xc7\x4e\x9c\x0b\xbd\ +\xd6\x4e\xf9\x74\xca\xaa\xcc\x7d\x7b\xf6\xf8\x8e\xff\x5a\x99\x3d\ +\xa3\xdb\x1d\x66\x39\x4b\x43\x80\x55\xcf\xe6\x0e\xcb\x52\xc4\x97\ +\x3f\xac\x0b\x44\x99\x51\x50\x6d\x74\x6a\x9f\xb6\x64\x81\x99\xe9\ +\xe8\x5e\x38\x6a\xc5\xe9\xa4\x54\x1f\x0b\x52\x41\x98\xd0\x6f\x1d\ +\x48\x89\x2c\x4a\xc1\xa0\xe2\x80\x93\xd4\x6c\x26\xaf\xbf\xe2\xa6\ +\xfb\x9f\xc7\xb0\x4c\xf6\xe1\xd3\x82\x15\x37\xfa\x17\xe8\x6e\x66\ +\x4b\xb0\xc8\xac\x4a\x4a\x0f\xdd\x14\x05\xc0\x06\xd0\x91\xcd\xe0\ +\xa6\x0d\x83\xb8\x7a\x4d\xaf\xbb\x3b\x8c\xa8\xef\xb1\xef\x1f\xc5\ +\xa1\xc3\xef\xe0\x89\xad\x2f\xe0\xfc\xc5\x49\x13\x77\x98\x53\xd5\ +\xc2\xd4\xd7\x67\x0e\x3d\xf1\x98\x55\x99\xaf\x29\x9e\x96\x46\x59\ +\xcb\x52\x8a\x51\x9b\x4c\x67\xa6\x37\xda\x90\xd6\xf5\x52\x60\x00\ +\xaa\xda\xe5\x17\x19\x3a\x34\x31\xd0\xbe\x34\x2b\x85\x46\x74\xbd\ +\xa9\x6c\xca\x3b\x12\x41\x96\x4d\xc3\x02\x0d\x09\xc0\x22\x1c\xa4\ +\x14\x00\x45\xf4\xbd\x34\xc1\x2d\xe5\xcc\x6b\x37\xa3\x04\x58\x8a\ +\xdd\x62\x9c\x70\xc5\x82\x77\xec\xcb\x2f\xaa\x61\x60\x9e\x7e\x49\ +\x75\x23\xd0\xce\x0f\xe0\xd0\x48\xfc\x95\xf4\x4a\xbf\x7f\xbd\xdd\ +\x6d\xb8\xed\xaa\x21\xac\x1d\x8a\xde\x52\xbd\x56\xab\x61\xef\xbe\ +\xb7\xf0\xf4\xf6\x97\x31\x33\x3b\x1f\x3d\xb2\x67\x5b\x6f\x54\xf2\ +\xe7\xfe\x78\xfa\xd0\xe3\xbb\x0d\x76\x87\xd1\xf5\x28\x2a\xbc\x51\ +\x60\x6b\x05\x00\x72\x65\x36\xd3\x98\x6e\x0a\x48\x4d\x01\x2e\x1d\ +\x61\x61\x7f\x4d\x26\x26\x9a\x10\x9a\xe8\xba\x64\xb6\x14\x0a\x8e\ +\x71\x58\x94\xb2\x4e\xbd\xca\xc7\xe3\x2f\x0b\x3c\xf1\x41\x2a\xce\ +\x26\xa5\xda\x66\x13\x80\x7d\x86\x39\xa2\x21\x02\x16\xcb\xae\x4c\ +\x56\xe7\x64\x18\x53\xd0\xa6\x10\x15\x10\x3c\x56\xe9\x58\x95\x38\ +\x02\xa8\x64\x55\x6e\x8d\xc3\xfd\x9d\xb8\xed\x9a\x55\x18\xea\xed\ +\xe0\x96\x0b\x96\x90\x80\x10\x94\x4a\x45\xec\x7a\xf1\x35\x3c\xff\ +\xe2\x3e\x33\x77\x18\xab\xfa\x5c\x69\xf2\xe8\x9f\xcc\x1e\x7f\xee\ +\x30\x73\xc1\xc3\x00\x61\xb1\x00\x67\xd1\x01\xac\x15\x33\xd3\x17\ +\x51\xfc\xb9\xcc\x8c\xef\x25\xfb\x35\xf5\x3e\xb3\xd0\x1a\x42\xb9\ +\xb9\x33\xfe\x03\xcc\xff\xaa\x9e\x50\x3e\x0d\x75\x1f\x7a\x75\x1e\ +\xee\x2b\xaf\x68\x03\x57\xbc\xb6\x1d\x44\x1d\xce\x76\x93\x92\xc0\ +\x47\x4e\x8c\x0b\x9a\x1e\xa4\x73\xcf\x29\x03\x62\x94\xb9\x8a\xec\ +\xeb\xef\x1d\x50\x16\x18\xd9\x3b\xa1\x7a\xe7\xd8\xb9\x46\x7e\xba\ +\x80\x89\x04\x61\x84\x63\x57\xbe\x6a\x17\x01\x56\x4c\xb3\xd4\x2a\ +\xa0\x7f\x63\xd9\x04\xdc\x13\x12\xe7\x51\xf3\xcb\xf0\x40\x6e\x6c\ +\x55\x37\x6e\xb9\x7a\x95\xeb\x0e\x43\x15\xe9\x83\xb6\xcf\xce\xe6\ +\xf1\xcc\xf6\xdd\xd8\xb3\xf7\xa0\x99\x3b\x4c\xb5\xf4\xe0\xc2\xf9\ +\xbd\x7f\xbe\x70\x6e\xaf\xb7\x3b\x4c\x2b\x54\xb6\xa5\x64\x4c\xb1\ +\xa4\x1e\xa0\x5a\x54\xe6\x14\x55\x6a\x57\x36\x83\xc1\xde\x4e\x10\ +\xd1\xc9\xd7\x7d\x11\x59\x23\x38\x7b\xae\x9d\x54\xe9\x96\xa3\x5f\ +\xb2\x58\x15\xae\x8b\x07\x5f\x17\x5b\x8f\x4a\xbd\x0b\x53\xfb\x14\ +\x75\x48\x69\xb8\x7e\xe8\xc2\x88\x74\xac\x5a\xdb\x8a\xbb\xe4\xa1\ +\xcc\x0a\xa8\x59\x14\xc5\xb2\x05\xc9\x29\x45\x60\x68\xdc\xc7\xc4\ +\x65\x5a\xdc\x8e\x32\x08\xd4\x3c\x4f\x15\x54\xae\x76\x00\x06\x90\ +\x3c\x50\x03\xe5\x3e\x3c\x51\xab\x72\x06\xec\x4a\x60\x55\xe2\x6c\ +\x75\x51\x53\xa4\x40\x3a\x45\x70\xf5\x9a\x5e\xdc\x78\xc5\x00\xb2\ +\x8c\x3b\x0c\xff\x36\x3b\x6d\x02\x21\xb8\x78\x71\x1c\x4f\x6c\xdd\ +\x85\xb7\x0f\x9d\x80\xad\xb9\x9e\x4c\x05\x73\x56\x79\xfe\x7b\x73\ +\x27\x5f\xfc\x4f\xa5\xa9\xe3\x8b\xe9\x0e\xd3\x0c\x69\x19\xf0\xad\ +\x70\x46\x05\x5c\xbd\xb6\x1f\xeb\x47\x7a\x24\x10\x00\xa0\x7e\x41\ +\xdd\x08\x9d\x1a\x14\xe4\x53\xa8\x54\x41\x06\x46\xeb\xe3\x1f\x3a\ +\x0e\x88\x98\x32\xfd\x10\x22\xa6\x25\xe1\xe5\x33\x85\xb2\x2a\x1a\ +\xd7\x53\xa1\x7f\x92\xfa\x07\x1e\x58\x38\x75\x4f\x0a\x03\x84\xd2\ +\x35\x71\x41\x1f\x26\xf2\x65\xec\x3f\x39\x03\xcb\xe2\xe3\xa8\x70\ +\xe4\xb7\x81\x61\x5a\x22\xc3\x52\x6e\x6f\xc5\x4e\xca\xe4\x96\x7d\ +\x11\x96\x12\x16\x27\x6c\xfa\x7d\x50\x4f\x33\x30\x7f\x55\x9c\x7a\ +\x6c\x00\xed\x6d\x69\x6c\x5a\xdf\x8f\xeb\xd6\xf6\x21\x93\x26\xae\ +\xba\xa7\x2f\xec\x9d\x77\x4e\xe1\xb1\xa7\x76\xe2\xe4\x99\x8b\xc1\ +\xc7\x54\x27\xd4\xbe\x58\x2b\xce\x7c\x6b\xe6\xe8\xd6\x07\x6b\x85\ +\xa9\x32\x5a\xc7\xa4\xa2\x3b\xbc\xcc\x8c\xee\x2b\x1e\xa8\xda\x32\ +\x29\x64\xdb\x9c\x8f\x0e\xfb\x52\x07\xe7\xce\x7f\xe2\x4b\x1e\xbc\ +\xc7\x8a\x35\x99\x04\x84\x89\x05\x3e\x5e\x06\xca\x03\x25\xa8\x0e\ +\xd4\x54\xf5\x08\xcc\x8c\x0d\x15\x9e\xf4\xb0\x32\xe2\x80\x94\x10\ +\xa2\xbe\x56\x0a\x21\x84\xa0\x3d\x53\x73\xea\x10\xdb\xc6\x1e\xf9\ +\xe0\x44\x83\xa2\xfd\xa9\x05\x40\xf8\xf6\x56\x6a\xb0\xe2\x30\x08\ +\x02\x16\x45\xb2\x2a\xc5\x08\x20\x82\x79\x59\x62\x06\x6a\x03\xb9\ +\x8e\x0c\x6e\xba\x72\x10\xeb\x87\x73\x81\xda\x0d\xe6\x8d\x66\xee\ +\xb3\x65\x59\x38\xf0\xd6\x61\x3c\xbe\xf5\x05\x4c\x4c\x1a\xb8\xc3\ +\xd8\xd6\x91\xea\xfc\xc5\x3f\x9d\x3e\xf8\xf8\x36\x6a\x57\x03\x0d\ +\x3c\x11\x00\x2b\x14\xa8\xc4\x3b\xa8\xf2\x15\x65\x3e\xb2\x7c\x46\ +\xe9\x3c\xfc\x99\x90\xa8\x7f\x48\x1d\x52\x9d\xe2\xcb\xc4\x54\x15\ +\x7e\xee\xbe\xbc\x9e\x1d\x2d\xac\xf9\x21\xdd\x61\x08\x8c\x90\x47\ +\x82\x24\x21\x1d\xd1\xe6\x97\xc5\xe7\x46\x8c\x55\x4b\x91\x87\x01\ +\x48\x1a\x4c\x98\x0a\xda\x8c\x30\x9b\x14\x78\x1b\x22\xd8\xfd\xf7\ +\xfc\x40\xe1\xe2\xd7\xc1\xaa\x24\xe0\x23\xfe\x4c\xf9\x81\x9e\x2c\ +\x6e\xbd\x7a\x15\x46\xfa\x3a\x41\x43\xae\x08\x21\x04\x95\x4a\x05\ +\x2f\xbf\xb2\x0f\xcf\xee\x78\x15\x73\xd1\xee\x30\xa0\x56\xf5\xe5\ +\xf2\xcc\xc9\xaf\xcd\x1c\xd9\xba\xcf\x6d\xc5\x52\x33\x9a\x65\xc5\ +\xa6\x80\xfa\x80\xca\x14\xed\x5b\xfc\x55\x20\x75\x97\xae\x7c\x4d\ +\x89\x32\x32\x24\x9f\x41\x1d\x22\xbb\x21\xaa\x44\x92\x96\x26\x9d\ +\x87\x37\x40\x47\x63\x64\x3a\xa4\x9a\x1b\x16\xc9\xc0\xc2\x6a\x24\ +\x0e\xc3\xf3\xd9\x94\xc8\x66\x3d\xa1\xfc\xab\x4d\x5c\xc0\xf0\x18\ +\x16\xb7\xe0\x9d\xe1\xf6\x56\x9a\xd3\xba\x59\x55\x18\x36\x8c\x0e\ +\x76\xe2\x96\xab\x56\xa1\x3f\xd7\x0e\x6a\xeb\x52\x3a\xd7\x62\x61\ +\xbe\x80\x6d\x3b\x5e\xc6\x8b\xaf\xbc\x69\xe4\x0e\x63\xd7\xca\x4f\ +\x15\x2e\x1e\xf8\xb3\xf9\xd3\x2f\x9f\xc0\xd2\xa9\x7a\xcd\x12\xd3\ +\xb6\xc7\xee\xe3\xca\x62\x54\x91\x48\x11\x03\x4a\x48\x58\xb0\x61\ +\x39\x4a\x35\x33\x4e\xd5\xe6\xed\x25\x2a\x78\x95\xb5\x37\x7d\xc9\ +\x8a\xaa\xe2\x82\x14\x89\x4a\x10\x72\x9d\xfc\x5c\xc2\x7e\x7d\xe2\ +\xdc\x29\x2d\x58\x79\xf6\x2a\x76\x0a\x81\x6e\x7b\xf4\x30\x56\xa5\ +\xea\x94\x62\x84\xd5\x69\x13\xc1\x86\xd5\x39\xdc\x74\xc5\x00\x3a\ +\x3d\x77\x18\x05\x55\xf7\xae\xcb\xe4\xe4\x14\x9e\xdc\xfa\x02\xf6\ +\x1d\x38\x02\xcb\xb2\xa3\x8c\xe6\x45\xbb\x52\xf8\x6f\x73\xa7\x5f\ +\xfe\x4e\x71\xfc\xd0\x24\x96\xc6\x68\xde\x32\x60\x69\xb6\x34\x13\ +\xa8\x5a\xc8\xb4\x48\x64\x0c\x11\x5f\xda\x10\xbb\x92\x59\xc9\x8a\ +\x17\x99\x98\xe4\x23\x06\x21\xfa\x6c\x44\x09\x18\x3a\x36\x26\xc0\ +\xaa\x50\x06\xcb\x12\x45\x00\x26\x91\xc0\x25\x56\x15\xde\x0b\x42\ +\x02\xc3\x38\x27\x94\xfb\x01\xb7\x7e\x94\x57\x6c\xc4\x26\x0d\x5c\ +\x43\x42\x56\x3c\xe0\xe6\x3b\x29\x58\x95\x7a\xf2\xa6\x5a\xda\x32\ +\x29\x5c\xb3\xa6\x17\x1b\xc7\xfa\xd1\x9e\x21\x72\x5b\x84\x6b\x7e\ +\xe6\xcc\x39\x3c\xfa\xe4\xf3\x38\xfa\xce\x59\xff\x7a\x68\x85\xd2\ +\x99\x5a\x79\xf6\x3b\xf9\x63\xcf\xfd\x7d\x65\xee\xbc\xe7\x0e\x13\ +\x06\x06\x8d\x02\x4a\xb3\x01\x69\xd1\x01\x4e\x04\xaa\x56\xa8\x6b\ +\x0d\x97\x49\x6d\x0b\xd4\xb6\x61\x0b\xe3\x39\xec\x97\x9a\x30\xff\ +\x29\x5f\x5c\x8d\x01\x5c\x4a\xab\x53\x5f\xa4\xf5\x9a\xf8\xf3\x70\ +\x1f\x39\xa2\x01\x52\x22\x9c\x33\xed\xd7\xb4\x57\x9b\x5f\xec\x2f\ +\xd7\x27\xb9\x47\x52\xfb\xa4\x0e\x03\xa9\x54\x0a\xa9\x54\xd8\x87\ +\x9e\xb0\xb9\xa1\xbc\xcd\x84\x99\x49\xe5\x4f\x63\x72\x73\x18\x6e\ +\xd2\xc0\xab\x80\x4c\x55\xda\x79\x07\x6a\x26\xa5\xce\xc2\xab\x7f\ +\x94\x52\x74\xb4\xa7\x71\xc3\xfa\x7e\x6c\x18\xed\x41\x9a\x10\x79\ +\x8e\x14\x23\x94\x52\x1c\x3a\x74\x1c\x8f\x3d\xb5\x13\xe7\x0c\xdc\ +\x61\x28\xb5\x4f\xd7\x16\xc6\xff\xdd\xf4\xe1\x27\x1f\xb7\x2b\x05\ +\x4b\xb8\x68\xf5\x02\x40\x5c\x80\x5a\xb6\x80\xa4\x2b\x73\x59\xab\ +\x7e\x84\x10\x14\x0a\x45\xec\xd8\xf5\x2a\x3a\xb2\xed\xbe\x0a\xe0\ +\xc6\x46\x64\x56\x1e\xea\x13\x45\xc5\x9a\x42\x6d\xd4\x10\x74\x54\ +\x76\x6d\x60\x8c\xb6\xc6\x69\xaf\x9b\x58\x7c\x5b\x08\x21\xc8\x76\ +\x64\x31\xb2\x6e\x0c\xab\xd7\xae\xc5\xba\x55\xdd\xe8\xeb\x6a\x63\ +\x4c\xe7\x7c\xd3\x04\x13\x15\x87\x28\xc1\x21\x95\x01\x2b\x02\xac\ +\x82\xa9\x0d\x31\x66\x91\xeb\x08\x93\xa8\x22\x4a\x46\x75\x8a\xde\ +\xae\x36\xdc\x7c\xe5\x20\xd6\x0c\x76\xf1\xdd\x90\x8a\x72\xdc\x61\ +\x5e\x7b\xfd\x00\x9e\x7c\x76\xb7\xa1\x3b\x4c\x6d\x7f\x65\xf6\xcc\ +\x9f\xce\x1c\x7e\x6a\x37\x0d\xdc\x61\x28\xcc\x01\xa5\x55\xcc\x6a\ +\xc9\x55\xbb\x28\xf1\x80\x4a\x64\x3d\x51\xe7\x51\xe1\xa6\x12\x76\ +\x93\x00\x00\xa5\x72\x15\xfb\xde\x3a\xb6\xc8\x97\x72\xd9\xdf\xb7\ +\x45\x93\x8e\xce\xfd\xb8\xf1\x8e\x3b\xf0\x93\x9f\x78\x2f\xfa\xba\ +\xdb\xfd\x7d\xf6\x24\x12\x15\x62\x24\xf3\xc0\xc9\x07\xad\xa8\xa5\ +\x84\x19\xb0\x52\xba\xe6\x85\xb2\x29\x26\x91\x62\xf9\x17\x65\x52\ +\x57\x86\xfa\x3a\x71\xf3\x95\x03\x58\xd5\x93\xd5\x8e\xf4\x02\x00\ +\x49\x11\x14\x0b\x45\x3c\xff\xc2\x1e\xec\x78\xe1\x75\x14\x8a\x26\ +\xee\x30\x95\x9d\xc5\xf1\xc3\x5f\xcf\x9f\xd8\x79\x88\xb9\x3a\x8b\ +\xc5\x78\x9a\x21\x8d\xd6\x55\x2f\x18\x53\x20\x9a\x51\xd5\x0b\x58\ +\x4d\x05\xb6\x14\x21\x8d\xc1\x61\x6c\x59\xd4\xca\x96\xb5\x94\x4b\ +\x45\x1c\x3f\xf8\x36\xca\x1f\xbc\x15\xa9\xa1\x1c\x6c\xcd\xf3\x46\ +\xa0\x63\x92\xf2\x8e\xc8\xa1\x4b\x09\x33\xc6\x6c\xbf\x64\xcd\xda\ +\xe6\x6a\x56\xa5\x02\x23\xfd\x88\x9e\xd7\xf6\xb5\xab\xba\x70\xd3\ +\x95\x03\xc8\x75\x2a\xdc\x61\x98\x71\x47\xb8\xee\x30\x4f\x3f\xfb\ +\x22\x5e\x79\xed\x2d\x43\x77\x98\xe2\x43\xf3\x67\x5f\xfb\x8b\xc2\ +\x85\x37\xcf\x63\xf9\x3f\x5c\xcd\x56\x2b\x9b\xc2\x16\xeb\x55\xfd\ +\x9a\x0d\x58\x16\x12\x59\x96\x42\x08\x41\xa9\xb0\x80\xf9\xfc\x2c\ +\x40\x46\xa0\xb2\x2a\x13\xef\x43\xa2\xd1\x5b\x89\xab\x56\x05\x2a\ +\x1e\x03\x56\xf0\xe6\x7e\x89\x60\xa5\x61\x53\x41\xb1\x1a\x56\x25\ +\xab\x77\xbc\x31\x9d\x8d\x77\xdc\x61\xae\x5c\xdd\x83\xeb\xd7\xf7\ +\x21\xdb\x96\x0e\xd9\x78\xc1\xe9\xe7\xf9\x0b\x97\xf0\xd8\x53\x3b\ +\xf1\xd6\xc1\x77\x4c\xdc\x61\xe6\xad\xf2\xdc\x7f\xce\x9f\xd8\xf5\ +\xbd\xf2\xf4\xc9\x59\xa8\x8d\xe6\x54\xf8\xd5\x85\x9b\xa6\x6b\x34\ +\x3c\x4a\x9a\x0d\x50\x46\xa2\x02\xaa\x45\x37\xa8\xdb\xb5\xca\xe9\ +\x54\x5b\xd7\x02\x80\x9e\x26\xd7\x9b\x48\x13\x84\xda\x14\x95\x72\ +\x49\x0a\x67\xb1\x49\x87\x53\x01\x9b\x22\x2e\x40\x05\x13\x3d\xfd\ +\xd1\x3e\x04\xcc\x4a\x9c\xbd\xab\xf5\xc1\x83\x68\x08\x8f\x16\x16\ +\xd3\x6c\x0a\xb4\x67\xd2\xb8\x6e\x5d\x2f\xae\x59\xd3\x8b\x4c\x8a\ +\x70\xab\x1f\xa8\x48\xd8\xb1\xe3\x27\xf1\xf0\x13\xcf\xe3\xe4\xe9\ +\x0b\x26\xee\x30\x97\xaa\x85\xa9\x6f\xcf\x1e\x7d\xe6\xc1\x5a\x71\ +\xda\x73\x87\x91\x2e\x8d\xee\x92\x99\xdc\x96\x25\x0a\xaf\x37\x5d\ +\x1c\x91\xca\x8c\xc3\xa8\xe2\xaa\x73\xa6\x80\x47\xaa\x73\x17\x0e\ +\x65\x3a\x7a\xdf\x06\x49\xdd\xdd\x82\x4e\x27\xd2\x64\xe1\xc7\x33\ +\x18\x4b\xba\x72\xd0\xcf\x9b\xd6\x09\xdf\x60\xce\xa9\x83\xdc\xf6\ +\x56\x22\x31\x0a\x57\xd9\xf8\x36\xa9\xd5\x3f\xbe\xd5\x41\x5b\xba\ +\x3b\x32\xb8\x71\x7d\x3f\xd6\x0d\x75\x07\xab\x8b\xaa\xca\x75\xdd\ +\x61\xde\xdc\x7f\x08\x8f\x3d\xb5\x0b\xe3\x93\x33\x26\xee\x30\xc7\ +\x2a\x73\xe7\xfe\x6c\xe6\xf0\x53\xdb\xa9\x55\xf5\x76\x87\xf1\x2f\ +\x83\x2a\x8b\xe6\xbc\xa5\x2c\x25\x86\x2c\xb9\x11\x3f\x15\x92\xa9\ +\x59\xd4\x31\x2a\x3f\x99\x3d\xbe\x7d\xdc\x2a\xcf\x7d\x0d\xd4\xde\ +\x6f\xda\xf0\x44\x96\x46\xfc\x01\x48\x6f\x3a\x3a\x09\xec\x53\xaa\ +\x3f\x6f\xea\x3a\x11\xf2\xf2\x36\x78\x06\xe4\x88\x3c\xd9\x41\xb7\ +\xaa\x84\xd6\xa0\x2f\xac\x98\x21\x4e\x43\xeb\xef\xce\xe2\xce\x6b\ +\x87\x7c\x9f\x3d\x08\xd9\xfd\x73\x42\x50\xad\x54\xb0\xeb\x85\x3d\ +\xf8\xe1\xc3\xdb\xcc\x40\xca\xaa\xbe\x5a\x9a\x3c\xfa\xdb\xd3\x6f\ +\x3f\xf6\x2c\xb5\xaa\x61\x1f\x71\xf6\x17\x9a\x73\x44\xa4\x33\x55\ +\x17\xe3\xe6\xab\xb7\xde\x66\xb5\x5b\xca\xdf\x8a\xe9\x09\xf5\x30\ +\x2c\x3a\xbe\xf7\xef\x9f\x1d\xbc\xf1\x73\x17\x32\x5d\x83\xf7\x11\ +\x92\x5a\x0f\x42\xda\x22\x76\x6a\x54\xf5\x8d\x2f\xdf\x77\x6a\xe3\ +\xd4\x03\x45\x1b\xa8\x26\x9c\x49\xef\x17\x40\xc3\xd3\x29\x06\xc5\ +\x15\xd5\x11\xa9\x55\xda\xfa\x69\xd8\x9b\x21\xb4\x2d\x32\x9f\xae\ +\x0e\x90\x54\xa6\x2f\x95\xe9\xbc\x1b\x84\x64\xc3\x2a\xa3\x61\x2f\ +\x2a\x91\x8a\x0d\xa8\x04\x71\x95\x35\x7f\xda\x80\xbc\xee\xb9\xaf\ +\xc6\x69\x67\x9a\x2b\xda\x13\xa9\xfe\xf1\x0c\x6e\x75\x5f\x27\x6e\ +\xda\x30\x80\xbe\x6e\xf7\xf1\xa2\xea\x3c\x8e\x3b\xcc\x02\x9e\xd9\ +\xfe\x12\x76\xbd\xf4\x86\xa1\x3b\x4c\x69\x6b\xe1\xc2\xfe\x7f\x37\ +\x7f\xe6\xd5\x93\x90\x59\x54\xbd\xbf\xd0\x9c\xc7\x91\xc5\x56\xfb\ +\x9a\xce\xf0\x74\x40\x25\x9a\x29\xc5\x70\x5d\xfa\x46\xc2\xc9\xd4\ +\x5b\x3f\x3e\x00\xe0\x40\xba\xa3\xbf\x3d\x95\x6e\x4b\x79\x00\x42\ +\x29\x65\xbe\x99\xec\xf8\x33\x3c\xfd\x80\x0f\x77\xdf\x04\x7e\xbc\ +\x89\x7a\x2f\xb5\x58\x96\x62\x80\x9d\xad\x8f\x9d\x08\x14\xe4\xa1\ +\x7c\x1e\x22\xe5\xe3\xf2\x44\xa4\x45\x54\x5a\xa6\x6e\x1a\x9a\x3e\ +\x46\x79\x41\xdf\xa9\x5d\xb3\x73\x63\x77\xdd\xd0\xb5\xe6\x96\x1b\ +\x09\xd2\x5a\xa0\x52\xd9\x6d\x7c\xf6\xa4\xb0\xd9\x48\x9b\x8b\x0a\ +\x53\x06\x4c\x96\x12\xe6\xab\x8c\x1e\xbd\xe3\x6c\x5e\x8c\xa4\x08\ +\xc1\xd8\x50\x37\x6e\x58\xdf\x8f\xce\x2c\x6b\x34\x67\x52\xbb\x87\ +\x29\x42\x30\x31\x39\x85\xc7\x9f\xda\x89\xd7\xdf\x3c\x6c\xe2\x0e\ +\x53\xb2\x2a\x0b\xff\x30\x7f\xea\xe5\xbf\x2a\x4e\x1c\x9e\x84\x1e\ +\xa4\xa4\x8c\x88\x96\xb8\x46\xf6\xb8\xac\xc5\xb4\x9e\xa8\x36\x37\ +\x6b\x74\x50\x99\xde\x74\x66\xba\x0e\xb0\x9a\x15\xee\x49\x0a\x00\ +\xb1\x4a\x33\x96\xe5\x8c\x04\x6a\xc9\x7d\x93\x7f\xbd\x63\x93\x97\ +\xbc\xde\xb2\x4d\xea\x88\x53\x8e\x2e\x2e\x4e\xbc\x77\x6c\x83\xda\ +\x35\x68\x85\x06\xaa\x1e\x33\xe0\x2f\x89\x10\x48\xbc\x6f\x03\xf1\ +\xbf\x1c\x12\x58\x49\x4b\x09\x6b\x76\x1d\x96\x57\x37\x15\x76\x3d\ +\x96\x90\x2d\x58\x43\x2a\x93\x4e\xe1\xea\xd1\x1e\x5c\xbb\xa6\x17\ +\xed\x19\x12\xb1\x64\x30\x70\xfa\xf4\x59\x3c\xf4\xf8\x0e\x1c\x39\ +\x7e\xc6\x0d\x0b\x01\x29\x4a\x67\x6a\xa5\x99\xff\x98\x3f\xfe\xdc\ +\x0f\x2a\x73\x17\x54\xee\x30\xaa\xe3\x7a\xc1\x07\x9a\x7c\x61\x12\ +\x95\x77\xb1\xd5\xb8\xba\xea\x0b\x53\xfd\x5a\x31\xfa\x17\x56\xbe\ +\xf8\xb8\x49\x8c\x4b\xf8\x85\x26\xbe\x1e\x69\x65\x3f\xc3\xfa\xad\ +\x03\xf0\xb0\xeb\xa4\xcb\x17\x96\x2e\xea\x18\xfa\x71\xbb\x90\x8b\ +\x45\xf8\x6c\x32\xa3\x72\xc3\x19\xc0\x92\xb7\xb7\x0a\x5a\xa3\x77\ +\xbf\x8b\x56\xff\x54\x54\x8f\xda\x40\x47\x7b\x1a\x9b\xd6\xf5\xe2\ +\x8a\x91\x1c\x52\x06\xee\x30\x07\x0f\x1e\xc7\x43\x4f\xec\xc0\xb9\ +\x0b\x13\x26\xee\x30\x67\xaa\xf3\x97\xfe\xbf\x99\xc3\x4f\x3e\x6e\ +\x57\x8b\x35\xf0\x20\xd5\x2c\x26\x14\x56\x46\x54\xd9\x51\xf9\x10\ +\x33\xfd\x92\x19\xed\x4d\xa6\x27\xd4\xcb\x9a\xa2\x7e\x75\xe5\xc7\ +\xad\x37\xaa\x1c\x84\x94\x11\xd5\xb6\x46\xca\x08\x03\xa4\xa8\x38\ +\x56\x54\x71\x61\x61\xaa\xbc\xba\xf8\xa0\x4f\xc4\xec\x21\x24\x9a\ +\x03\xce\xc0\xed\x63\x90\x73\x10\x68\x78\x24\x00\x2b\x6e\xf3\x05\ +\x9e\x55\x85\x6d\xa6\xa0\xeb\x86\x14\x4a\x29\x7a\xba\xda\x70\xe3\ +\xfa\x7e\xac\x1e\xe8\x0c\xef\x93\xeb\x0e\xf3\xea\x9e\xfd\x78\x7c\ +\xeb\x8b\x98\x9e\x9d\x33\x71\x87\x39\x50\x9e\x39\xf5\x8d\xd9\x23\ +\xcf\xbc\x44\xa9\x25\x36\xb3\x11\x30\x42\x0b\xca\x88\x2a\xdb\x34\ +\x7d\xdc\xb6\xd5\x0b\x80\x52\x3b\x5a\x39\x3d\xa1\x9e\x32\x9b\x05\ +\x82\x26\xc0\xa0\x6b\x4b\x23\xc0\xd3\x2c\xb0\x8a\x93\x1e\x9a\xf8\ +\x30\x11\xdf\x6b\x6a\x90\x87\xd5\xaa\x98\x90\xe0\x97\xf0\xa7\x60\ +\xf7\xeb\xa3\x61\x30\xaa\xfd\x55\xab\x7f\xe1\x6d\x74\x60\x6e\x55\ +\x6f\x07\x6e\xbc\xa2\x1f\x03\xb9\x76\x80\x65\x6a\x42\x3b\x3c\x77\ +\x98\xe7\x76\xbe\x8a\x6d\x3b\xf7\x98\xba\xc3\xec\x2a\x8e\x1f\xfa\ +\xb3\xfc\x89\x5d\x07\xe1\x9a\x2b\x60\xfe\xd2\x86\xa9\x82\xf5\xa8\ +\x7c\x71\xeb\x6d\x16\x98\xc4\x91\x46\x54\x57\x00\xe6\x2e\x34\xcb\ +\x85\x55\x21\x46\x1a\xd3\x3a\xeb\x01\xa0\x7a\xfb\xda\x08\x58\xb1\ +\x62\xc2\xae\xa0\x48\x03\x7d\x3a\x02\x68\x1f\x1c\x79\x45\x0a\x2f\ +\xcc\xff\x23\xaa\x5c\xf0\x8d\xe6\xc1\x08\x1f\xe1\x54\x40\x9d\x1b\ +\x8c\xa6\x34\xe7\x48\x67\xa7\x72\x65\xcd\x60\x17\x6e\x5c\xdf\x8f\ +\xee\xce\x8c\x52\xd5\x0b\x70\xd0\x71\x87\x79\xe2\xe9\x5d\x78\x69\ +\xcf\x01\x43\x77\x98\xc2\x23\x8e\x3b\xcc\x7e\x6f\x77\x18\xf6\xba\ +\xb5\x0a\xa4\xea\x55\xf9\x10\x11\x6e\x92\x66\xb1\xd8\x54\x68\x1b\ +\xa3\x46\xfd\x1a\x0d\x8f\x93\xb7\x11\x96\x04\x98\xbf\xfc\x30\x28\ +\xcb\xa4\x7d\xf5\xb4\x5d\x97\x07\x11\x61\x26\xf1\x3a\x31\x49\x63\ +\xc4\xa8\x78\x43\xb5\x10\x0e\x7e\x29\x1b\x6f\x09\xdf\x00\xac\x22\ +\x4b\xe7\x0a\x14\xd5\xbf\x28\xa1\x70\xdc\x61\xae\x18\xe9\xc6\x75\ +\x6b\x7b\x5d\x77\x18\xaa\x2c\x1b\xa0\xbe\x3b\xcc\xc3\x8f\xef\xc0\ +\x81\x83\xc7\x61\x53\x44\x8d\xec\x2d\x58\xa5\xb9\xff\x92\x3f\xb1\ +\xeb\x7b\xe5\x19\xdf\x1d\xc6\xab\x3a\xce\x6f\x54\x9c\xaa\x6b\x61\ +\x69\x9b\x01\x6c\xcd\x60\x76\x51\xed\x6f\x28\xdc\x44\xf5\x6b\x15\ +\x7b\x32\x01\x87\xa8\xb6\x98\xd6\xa9\x2a\xb7\x55\x4c\x28\xea\xfd\ +\xaa\xc7\x0e\x05\xc3\x78\x20\x1c\xe8\x00\x75\xbb\xcc\x80\x4a\xd7\ +\x1b\xc8\x8c\xca\xb1\x47\x01\xa0\xaa\x25\x58\x58\x5b\x15\x94\x7b\ +\x2c\x4a\x2a\x5a\x58\x03\xa9\xe3\x0e\x73\xed\x9a\x1e\x5c\xb9\x3a\ +\x87\x4c\x8a\x48\xcb\xc4\x88\x6d\x3e\x7a\xec\x24\x7e\xfc\xd8\x76\ +\x9c\x38\x65\xe4\x0e\x33\x5e\x2d\x4c\xfd\xfb\xd9\xa3\x5b\x1f\xac\ +\x15\x67\xc4\xdd\x61\xe2\x02\x51\xb3\x59\x96\xe2\x6a\xc4\x2e\x4b\ +\x95\xdf\xa4\xec\x46\xeb\x34\x62\x53\x40\x7d\xa3\x7e\x8b\xc1\x9e\ +\x74\xe9\x11\x23\x6d\x33\xd5\x37\x2c\x51\x1c\x2b\x26\x4c\xca\x94\ +\x80\x88\x75\xd0\xe8\x5b\x1a\x64\x95\xd5\x40\xf7\x94\x65\x54\x3e\ +\x9b\xe2\xed\x4c\x61\x4d\x56\x26\x09\x5d\xe7\xc5\xf9\xbf\x2b\x9b\ +\xc6\xa6\xb1\x3e\xac\x5d\xd5\x15\xfe\x85\x70\xdd\x61\xf6\xbd\x71\ +\x10\x0f\x3f\xf9\x3c\xc6\x27\x66\x0c\xdd\x61\xce\x7f\x73\xe6\xf0\ +\x93\xac\x3b\xcc\x72\x01\xa9\x66\x00\x43\xa3\xe0\x03\x4d\xbe\xd0\ +\xcb\x1a\x37\xaf\xa9\x31\xbd\x95\xec\x29\x6e\x1d\xba\x7c\x30\x48\ +\xb3\x5c\xc1\x4a\x25\x51\x4c\x2a\xea\x18\x9a\x38\x5d\x6d\xf1\x18\ +\x15\x73\x95\x1d\x37\x3f\xfe\xb2\x07\xcb\x05\xb3\x1d\x90\x6d\x52\ +\x72\xa1\x1a\x3b\x95\x1b\x28\xa2\x44\x7f\x77\x3b\x6e\x58\xdf\x87\ +\xa1\xde\x0e\x00\x14\x3a\x6d\x2f\x05\x82\x72\xa5\x82\x5d\x2f\xbe\ +\x8e\xa7\xb6\xbd\x84\xb9\xf9\x82\x89\x3b\xcc\x9e\xd2\xd4\xf1\xaf\ +\xcf\x1e\xdb\xb6\x0f\x81\x39\x6e\xb9\x82\x94\xd4\x7c\xcd\x31\x0c\ +\xca\x32\x66\x3a\x21\x69\x1b\x65\x76\x9c\xc4\x59\x8f\xca\x14\x04\ +\x74\xe1\x71\x01\xa8\x91\x32\x9a\xa9\xbe\x35\x5a\x0e\x10\x0e\x14\ +\x71\xf2\xc6\xb5\x4f\x99\xa6\x33\x66\x54\x44\x79\x4e\xfc\xd7\xd8\ +\xd5\xf6\xe0\xd8\xac\xa8\xbf\x84\x0b\x54\x93\x33\xeb\x11\x26\xef\ +\x48\x5f\x07\x6e\x58\xdf\x87\xde\xce\xb6\xd0\xe2\x08\x21\x98\x9f\ +\x5b\xc0\xd3\xdb\x5e\xc4\xf3\x2f\xee\x33\x71\x87\xb1\x5c\x77\x98\ +\x6f\xba\xee\x30\xa6\xaa\x5e\x54\x7c\x2b\x41\xaa\x95\x80\xd1\x2a\ +\xd5\xce\x04\x4c\x01\xc4\xb3\x51\x89\xe7\x71\x18\x4e\xbd\x20\x16\ +\x27\x6d\xab\x18\x91\x4e\xef\x08\x8b\xd3\xa5\x47\x9d\x79\xa3\x8e\ +\xa1\x89\x83\xa2\x3c\x40\xfd\x40\xd5\x09\x1d\x44\x3a\x12\xb5\x35\ +\x03\xad\xcf\x58\xbc\xd9\xe9\x63\x43\xdd\xd8\xb8\xae\x17\x9d\xed\ +\xd1\x6b\x48\x4d\x4c\x4c\xe1\x91\x27\x9e\xc7\x6b\x6f\x1c\x82\x65\ +\x51\x13\x77\x98\x7f\x9c\x3f\xf5\xf2\x77\x18\x77\x18\xf1\xfa\x34\ +\x02\x1e\x4b\xc9\xc8\x9a\xa9\x56\x9a\xf4\x11\x06\x69\xc3\xd2\xfb\ +\x12\xd7\x29\xb9\x51\x96\xd4\x28\x8b\x69\x46\x7b\x5a\xc5\x96\xea\ +\x61\x57\xcd\xb4\x4f\xa9\xe2\xa2\xa0\x20\xa8\x4f\xb9\x85\x8c\xb9\ +\xc8\xab\xae\x9b\xe6\x33\x4f\x4d\x01\x64\xd2\x04\x57\xae\xce\xe1\ +\xea\xd1\x1c\xda\xd3\x29\x7e\x0d\x29\xb1\x6c\x02\x9c\x3a\x75\x16\ +\x3f\x7a\xf4\x39\x1c\x3e\x76\xda\x0f\xd3\x57\x40\x67\x6b\xa5\x99\ +\xbf\x99\x3d\xfe\xdc\x0f\xaa\x8e\x3b\x8c\xc2\x96\xa7\xec\x64\x33\ +\xd8\xcf\x62\x81\x94\xea\xb2\xc6\x2d\xcb\xa4\xbc\xa6\xa8\x7c\x9e\ +\xc4\xb5\x51\x99\xa4\x69\x44\xd5\xd3\x95\x15\x16\xbe\x94\x60\xa5\ +\x4b\x0f\xa8\xdf\xc1\x7a\xec\x53\xaa\xfc\xaa\x34\x71\x41\x4a\xbc\ +\xde\x0d\x01\x15\x10\x80\x40\xa8\xed\x3c\x4e\x79\x4c\x19\x94\x02\ +\x1d\x6d\x69\x5c\xb7\xb6\x07\x63\x43\xdd\x48\x91\xa8\xf2\x29\x0e\ +\xbc\x75\x14\x3f\x7e\xf4\x39\x9c\x35\x70\x87\x01\xb5\xcf\x56\xe7\ +\xc7\xbf\x35\x7d\xf8\xc9\xc7\xec\x6a\xa1\x26\x56\xaf\xb8\x5e\x40\ +\xf4\x0b\xbc\x1c\x41\xaa\x5e\x35\xcd\xa4\xff\xf5\x80\x91\xd1\x63\ +\x52\xcf\xcc\xf4\xa5\x66\x3e\xcb\x09\xac\x00\x73\x40\xd2\xa5\x0b\ +\xbb\x59\x51\xf1\x62\x7d\x61\xe7\x61\xe5\x34\x0c\x52\x00\x6f\xc8\ +\x6e\x42\x81\x5c\x19\xb9\xce\x0c\xae\x1f\xeb\xc3\x48\x7f\x87\x1b\ +\xa1\xae\x81\x10\x82\x5a\xb5\x86\x97\x5f\x7d\x13\x8f\x3e\xbd\x0b\ +\xd3\x33\x46\xee\x30\x6f\x55\x66\xcf\x7c\x7d\xe6\xf0\xd3\x2f\x52\ +\x6a\xb1\xd5\xc7\x55\x73\xe2\x02\x98\x69\x9e\x56\x81\xd4\x72\x61\ +\x6a\x91\xd2\xe8\x9a\xe9\x4b\xc5\x7c\x5a\x51\x3e\x2b\xa6\xea\x55\ +\x23\xea\x9e\x58\x66\xd4\x8d\x6b\xa6\xf1\x5c\x52\x69\x88\xef\x3a\ +\x5c\x9f\xd0\x90\xe6\xd3\xc8\x7c\xe1\x32\x98\x6b\xc7\xf5\xeb\xfb\ +\xd0\xdf\xdd\x1e\x9a\xc7\xd9\x5e\xad\x84\x6d\x3b\x5e\xc6\xb3\x3b\ +\x5e\x35\x75\x87\x79\xc1\xdd\x1d\xe6\x20\xf4\xf7\xa1\x11\xe0\x31\ +\x0d\x33\x4d\x1f\x96\x77\x29\x41\xaa\x1e\xf6\x69\x2c\xf5\xda\xa8\ +\xd8\xe3\x46\xc0\x04\x11\x65\xc5\xa9\x27\x2a\xad\x4a\xea\x55\xed\ +\xea\x61\x57\xba\xe3\x30\x75\x4e\xd7\x66\x20\xbc\x4e\xc4\x28\xcf\ +\x89\x37\xb4\x51\xc9\x94\x99\xca\x47\x2e\xe3\x51\xc4\x40\x93\x55\ +\xdb\xf8\xd5\x03\x9d\xd8\xb4\xae\x07\xdd\xd9\x4c\xf8\x45\x21\x04\ +\x33\x33\xb3\x78\xec\xc9\x9d\xd8\xfd\xea\x01\x54\x6b\xb5\x28\x90\ +\xaa\xda\xd5\xe2\x23\x0b\xe7\xf6\x7e\x6b\xe1\xfc\xbe\x73\x08\xdf\ +\x78\x81\x3d\xae\x07\xa0\xa2\xd2\xd6\x0b\x6a\xcd\x66\x5f\x51\x71\ +\x8d\x96\xaf\xbb\x1e\x91\x52\x0f\xa3\x6a\x44\xd5\x33\x29\xab\x55\ +\x60\x15\x55\x0e\x0c\xf3\xb1\x12\xc5\xae\x54\x69\x9b\x09\x46\xf5\ +\x1b\xcf\xe5\xfb\x40\x11\xf3\xe1\x09\x0a\xa2\x42\x6e\xca\xd7\xa2\ +\xf8\x0d\x5b\x93\x93\xc2\x59\xbc\x6e\xfd\x70\x97\xb3\x86\x54\x1b\ +\xb3\xa5\xba\x22\x1b\x21\x04\xe7\xcf\x5f\xc4\x8f\x1e\xdd\x8e\xfd\ +\x6f\x1f\xf7\xfd\x00\x43\x5a\xbd\x60\x95\xe7\xff\x73\xfe\xc4\xae\ +\xef\x96\xa7\x4f\xcc\x2a\xae\x9b\xc9\x8b\xd5\x8c\x17\x3a\x2a\xbe\ +\x95\x71\xf5\x96\x23\x5d\xcc\x88\xeb\x80\x18\x65\x69\xa5\x59\xdb\ +\x65\xb5\x5a\xd5\x33\x2d\x0f\x4d\xac\x83\x95\x7a\x47\xea\xa2\xca\ +\x84\xa2\x5c\x28\xd2\x35\x4b\xe5\xd3\xe5\x8b\x2f\x4c\xcf\xa9\x0b\ +\x3c\x1c\xf8\xf8\x58\xc5\x2a\x85\x51\x3b\xc6\x38\x76\xae\xb6\x74\ +\x0a\x57\x8f\x76\x63\xc3\x48\x0e\xe9\x14\xbf\x86\x94\x74\x11\x09\ +\x70\xe4\xc8\x09\x3c\xf8\xc8\x36\xbc\x73\xea\xbc\x89\xd1\x7c\xbc\ +\x56\x9c\xfe\xf6\xcc\x91\xad\xff\xd3\xdd\x1d\x46\x75\xff\xe2\x00\ +\x94\xee\x38\x0e\xb0\xb5\x02\xc0\x96\x82\x91\xc5\xb9\x0e\xb1\xa4\ +\x91\x35\xd3\x1b\x55\xc5\x9a\x05\x56\xac\x98\xa8\x7d\x26\x20\x07\ +\xc3\x36\x88\xe5\xc2\xb0\x4c\x28\xf2\x46\xa5\x37\x55\xe3\xe2\xa6\ +\x75\xd3\x99\x4e\x4f\x70\xd6\x38\x20\x62\xe9\x0a\x3e\x46\xd9\x34\ +\x54\x5f\x9e\x7f\x44\x1d\x77\x98\xeb\xd6\xf6\x62\xcd\x40\xa7\x33\ +\x8a\xa8\x9c\x24\x45\x7d\x77\x98\xbd\xfb\x0e\xe2\xc7\x8f\xed\xc0\ +\xa5\x89\x69\x83\x85\xee\xac\xe3\xd5\xb9\x8b\xdf\x98\x3e\xfc\xe4\ +\xb3\xb4\x56\x16\xdd\x61\xd0\xe2\xe3\x46\x40\x28\x2c\x5d\xa3\x69\ +\x1a\x2d\xb3\xde\x76\xc4\x92\x46\x37\x77\x58\x0e\x60\x15\x55\x07\ +\x10\x1f\xc0\x60\x90\x0e\x30\x07\xbb\x7a\x8e\xc3\x24\x2e\x10\x45\ +\x95\x4d\x89\x89\x8d\x4a\x20\x4c\x22\xa5\xe6\x2e\x84\xc4\x82\xa8\ +\x0f\x5c\xde\xca\x0a\xc1\x39\x40\x29\x45\x6f\x77\x1b\xae\x5f\xd7\ +\x87\xc1\x9e\xf6\xf0\x8e\x10\x82\x4a\xb9\x82\xe7\x5f\x78\x0d\x4f\ +\x3c\xb3\xdb\xcc\x1d\xc6\xae\xee\x29\x4f\x9f\xfc\xb7\x33\x47\xb6\ +\xbe\x2e\x5c\x3f\x13\xf6\xd4\xac\xe3\xe5\xa6\x06\xd6\x5b\xd6\xa2\ +\x82\x14\xd0\xdc\x5d\x68\x96\x2b\x58\xc5\x89\x63\x25\x0e\x20\x85\ +\xe5\x81\x41\x3e\x55\x1a\xc0\xec\xe6\xea\x54\x97\x28\x95\x4e\xf7\ +\xb2\x2a\x44\x54\xd9\x9c\xe2\xfd\x4a\x7c\xc4\x91\x55\x3b\x8e\x55\ +\x85\xc8\x70\x6f\x07\x36\x8d\xf5\xa2\xa7\xa3\x0d\x61\x66\x78\x42\ +\x08\xe6\xe7\xe7\xf1\xe4\xd6\x17\xb0\xe3\xc5\xbd\x28\x97\x4d\xdc\ +\x61\xca\x5b\x8b\x97\xde\xfa\xc6\xdc\xa9\x97\xde\x41\xf8\x9a\xe6\ +\xaa\x30\x13\x15\xa6\x59\x6c\xaa\x9e\x3c\x2b\x01\xa4\x1a\x96\x66\ +\x00\x55\xa3\x60\xd1\x88\x8a\xb6\x98\xf6\xa7\x7a\x0c\xe7\x51\xc7\ +\xaa\xbc\x50\x94\x65\x92\x2e\x2c\x7d\x14\x53\x33\x57\xfd\x38\x74\ +\x22\x3e\xca\x51\xaa\xb8\x20\x0c\x4a\xa9\xd9\x14\x05\x08\xb0\x6e\ +\xb0\x0b\xd7\xad\xe9\x41\x67\x7b\x3a\x62\xa6\x39\xc1\xf8\xf8\x14\ +\x1e\x7a\xec\x39\xec\xd9\x77\xd0\xc0\x1d\x06\x65\xbb\x5a\xf8\xef\ +\x73\xa7\x5f\xf9\xf7\xc5\x4b\x6f\x8f\x23\x00\x29\x53\x70\x52\x5d\ +\xf7\x7a\x01\x4a\x17\xde\x0c\xa0\x89\x9b\x37\x2e\x03\x6a\x14\xa4\ +\x1a\x06\xac\x66\x31\xaa\x66\x80\x15\x50\x1f\x80\xc5\x8d\xd3\xd5\ +\x03\x44\xb7\x0b\x21\x65\xc3\xb0\x4e\x95\x2c\x85\xca\xc7\xf7\xdb\ +\x60\xf5\x04\x2a\xe5\x14\x9e\x49\xca\x56\x44\xa5\x3c\x94\x49\x40\ +\x29\x45\x26\x45\xb0\x61\x24\x87\xab\x56\x77\xa3\x2d\x9d\x92\xcd\ +\x51\x4c\x00\x21\x04\x27\x4e\x9e\xc5\x83\x0f\x3f\x8b\x43\x47\xcd\ +\xdc\x61\xac\x72\xfe\xaf\x67\x8f\x3f\xf7\x5f\x2a\xf9\x73\x0b\x9a\ +\xeb\xd0\x28\x38\xe9\xe2\xea\x05\xa8\xa8\xb4\xad\x64\x4a\xad\x8e\ +\x6b\x48\x5a\xa1\xfa\xb1\xc7\xad\x52\xd1\xe2\x02\x4c\x3d\xec\x4a\ +\x15\xd6\x2c\xc0\x42\x48\x99\x88\xa8\x23\xaa\x2e\x13\x11\xf3\x1a\ +\x33\x2a\x81\x50\x05\xe1\xd4\x19\xf5\x93\x1a\xe5\x63\x58\x50\xbc\ +\x4d\x29\x3a\xda\x52\xb8\x66\x4d\x0f\xd6\xad\xea\x72\x76\x87\xf1\ +\x93\xaa\xd4\x3e\x8a\xfd\x07\x8e\xe0\x87\x0f\x6f\xc3\xd9\xf3\x86\ +\xee\x30\x85\xc9\x6f\xce\x1c\x7e\xea\x11\xab\x3c\xe7\xb9\xc3\xc8\ +\xc5\x86\x83\x4e\x9c\xb4\x8b\x05\x50\x51\xf1\xcb\x15\xc0\x1a\x96\ +\x66\xef\x94\xbc\x9c\xc0\x4a\x97\x1e\x30\x07\x33\x56\x74\xf1\x71\ +\x00\x0b\x9a\x32\xe3\xc6\xe9\xd2\x9b\xd4\xa9\x92\x58\x79\xfc\x8e\ +\x2b\x1e\x4d\x0a\x55\x58\xc0\xa4\x6c\x0a\xe4\x3a\x32\xd8\xb8\xae\ +\x17\x23\x7d\x1d\xa1\x2d\xf0\x76\x87\x79\xe9\x95\x37\xf0\xf0\x13\ +\x3b\x0d\xdd\x61\xac\xb7\x2a\x73\xe7\xbe\x36\x73\xe8\x89\x5d\xd4\ +\xb6\x54\xa5\x47\xbd\x48\x8d\xaa\x7d\xec\x79\x9c\x34\x71\xe2\x1b\ +\x01\xb8\x15\x07\x52\x40\xeb\xb6\x74\x07\x9a\x3f\x0d\xa1\x51\x36\ +\x24\x86\xd5\x3b\xdd\x40\x15\xaf\xab\x4b\x0c\xaf\xd7\x5e\x55\xaf\ +\xca\x67\x9a\x27\x82\x51\x11\xa8\xf6\x3f\x67\x9f\x4e\x0a\xf8\xce\ +\xc8\x41\x3c\xe5\x12\x52\x00\x83\xb9\x36\x6c\x5a\xd7\x8b\xbe\xee\ +\x76\x45\x59\x94\xad\x11\x85\x62\x09\xcf\x6e\x7f\x09\x5b\x9f\x7b\ +\x15\x85\x62\x29\x0a\xa4\x28\xb5\xaa\x3b\x4b\x53\xc7\xbe\x36\x7b\ +\x6c\xfb\xdb\x21\xfd\x8f\x0b\x4e\x61\xf1\x71\x8f\xc5\xcb\x16\x96\ +\xbe\x55\x2c\xaa\x91\xf2\x4c\xe2\x9a\x0a\x50\x9e\xb4\x02\xa8\xd8\ +\x8e\xc4\xb1\x47\xb1\xd2\x6c\x5b\x13\x62\x96\x17\x37\x1e\x9a\x34\ +\xad\x98\x7a\xd0\x4c\x95\x0f\xfe\xb9\xf1\xf4\x04\x41\xe7\xf3\xe3\ +\x1c\xb8\xa2\x52\xfa\xa0\xb2\xd5\x7d\x1d\xd8\xa8\x72\x87\xa1\x6c\ +\x2a\xf8\xee\x30\x8f\x3c\xf1\x3c\x5e\x7c\x79\xbf\x99\x3b\x4c\xad\ +\xf4\x50\xe1\xc2\x9b\xdf\x9c\x3f\xb3\xe7\x2c\xc2\x37\x02\x85\x22\ +\xbc\x5e\x70\xaa\x27\x5d\xb3\x00\x2a\x4e\x7c\x2b\x58\x57\x54\xfa\ +\xa6\x4a\x2b\x81\xca\x6b\xb8\x29\x10\x35\x6b\x94\x0f\x88\x0f\x70\ +\xf5\xc6\xc3\xa0\x0e\xd5\x31\x60\x76\x53\x4d\xd2\x36\x02\x5c\x88\ +\x93\x97\xb2\xff\x09\xc0\xa1\x66\x54\x8e\xa4\x08\xb0\x7e\x55\x17\ +\xae\x5e\xd3\x83\x6c\x26\x25\x81\x14\x7b\x4e\x08\xc1\xb9\x73\x17\ +\xf1\xe0\x23\xdb\xf0\xe6\x5b\xc7\x4c\xdc\x61\x0a\x76\xa5\xf0\xfd\ +\xb9\x53\xbb\xff\xaa\x38\x71\x64\x16\xfa\x7b\xd3\x08\xb3\x6a\x25\ +\xcb\x6a\x36\x18\xd5\x93\x67\xd9\xa9\x7a\xa2\xb4\x1a\xa8\xbc\x0e\ +\xb4\xda\x58\xce\x8a\xe9\xd4\x82\xa8\x3c\xaa\xf8\x7a\x8e\xc3\xa4\ +\x9e\xa9\x07\x51\x69\xeb\x01\x2e\x77\xc2\x67\x34\xab\xf2\x3b\x48\ +\x83\xae\xea\x5c\x5c\x28\xa5\x68\xcf\xa4\x70\xd5\xea\x1c\xae\x18\ +\xee\x76\x76\x87\x11\x0a\x63\x55\x3e\x02\xe0\xf0\x91\x77\xf0\xc3\ +\x87\x9e\xc5\xf1\x93\x26\xee\x30\x74\xc2\x2a\xcf\x7e\x6b\xe6\xc8\ +\x33\xff\x50\x5d\x18\x67\xdd\x61\x54\xfd\x8f\x0b\x5e\xad\x66\x59\ +\x51\x60\xa2\x0a\xaf\xa7\xac\xc5\x04\xb0\x96\xc9\x62\x00\x95\xd7\ +\x91\xc5\x06\x24\x28\xf2\x46\x01\x12\x9b\x07\x86\x65\x21\x22\x0d\ +\x0c\xf2\x84\xd5\x09\x4d\xde\x66\x82\x9c\x11\x48\x09\x19\xdc\x42\ +\x3d\xfd\x8e\x82\x9b\x8d\x4e\x81\x4e\xc1\x1d\x46\x07\x52\x81\x3b\ +\xcc\xdb\x78\xf0\x91\xe7\x0c\xdd\x61\xec\xe3\xb5\x85\x89\xaf\x4d\ +\x1f\x7a\xfc\x69\xbb\x5a\x8c\xf3\xf2\x34\x0b\x9c\x4c\xcb\x6a\x24\ +\x8d\x69\x7c\x54\x58\x54\x99\xcd\x00\xb0\x96\xca\x62\x01\x15\xdb\ +\x21\x53\xfb\x13\x14\xe9\x21\xe4\xad\x57\x75\x63\xcb\x06\xe2\x83\ +\x47\x3d\xaa\x9c\x0a\x68\xea\x05\x2d\xd3\x3a\xe2\xe4\xa9\xeb\x81\ +\xa3\xc2\x9f\x27\x3d\x5d\x6d\xb8\x7e\xac\x17\xab\x7a\xb2\xca\x4c\ +\x2c\x48\x39\xee\x30\x7b\xf0\xf8\xd6\x17\x91\x9f\x33\x71\x87\xb1\ +\xf6\x54\x66\xcf\x7c\x75\xfa\xd0\xe3\x7b\xc0\xb3\x28\x55\xf3\xa2\ +\xc2\x5a\x01\x4e\xa6\xe9\x9a\x09\x50\x8d\xc6\xc7\x05\xbf\x45\x01\ +\x28\x4f\x16\x13\xa8\xd8\x8e\xb6\xca\xfe\x14\x77\x6a\x01\x1b\xaf\ +\x0a\x37\x8d\x17\xeb\xd1\xb5\x13\x9a\xb8\x28\x80\xa9\x07\x80\xe2\ +\xb4\x3d\xc2\x98\x4e\xc3\xa1\xcc\x9d\x96\xee\xd9\xa8\x86\x7a\xb3\ +\xd8\x34\xd6\x2b\xef\x0e\x43\xd9\x1f\xea\xba\xc3\x2c\xe0\xc9\xa7\ +\x77\x61\xfb\x0b\xaf\x1b\xb9\xc3\x50\xab\xf2\x74\x71\xe2\xe8\x9f\ +\xe4\xdf\xd9\x71\x1c\xc1\x6e\xc5\xba\xfe\xd5\x1b\x56\x2f\x38\x85\ +\xc5\x99\xe4\x89\x03\x50\xf5\xe4\x5b\x51\x2c\x8a\x95\xa5\x00\x2a\ +\xaf\xa3\xad\x56\xf7\x4c\xe3\x4d\xc2\x4d\xe2\xc3\xda\x6e\x1a\xa7\ +\xeb\x77\x58\x5d\xf5\x4a\x2c\xd6\xe6\xe0\x14\xe5\x0d\xe6\xc2\x84\ +\x4f\x02\x8a\x75\xab\xba\x70\xdd\x5a\x77\x77\x18\xf0\x35\x70\xf6\ +\x28\x77\x77\x98\x1f\x3f\xba\x1d\xaf\xee\x35\x74\x87\xa9\x95\xfe\ +\xdb\xc2\xb9\xbd\x7f\xbe\x70\x6e\x2f\xeb\x0e\x23\xd4\x22\x35\x1b\ +\x06\xe1\x8d\x82\x57\x3d\xec\x49\x15\x57\x2f\x40\x99\xd4\xd9\x6c\ +\x35\x70\x51\x65\xa9\x80\x8a\xed\xf0\x62\xa9\x7b\xcd\x04\x2c\xd3\ +\x34\xba\x7a\x75\x71\x26\xea\x70\x23\x13\x4c\x75\x62\x60\xa3\x0a\ +\x9e\x59\x6f\xfe\x39\x3b\xe1\x33\xed\xb9\xc3\xb8\xbb\xc3\xc8\xeb\ +\xa7\x07\x01\x84\x10\x9c\x3c\x79\x16\x3f\x7c\xe8\x59\x1c\x3c\x7a\ +\xca\x0d\x0b\xad\x7b\xd6\xaa\x2c\xfc\x87\xfc\x3b\x3b\xbf\x57\x9e\ +\x3e\x61\xe2\x0e\x03\x83\xb8\x46\xc1\x6a\x31\x55\xc0\xb0\xf0\xc5\ +\x56\x03\x97\x44\x96\x12\xa8\xd8\x0b\xd0\x4a\x75\x4f\x77\x6c\x62\ +\x67\xaa\x07\xb0\xe2\xb0\x27\xc4\x28\x37\xae\xc4\xc9\x6f\x1b\x2d\ +\xf3\xe2\x0b\x03\x3d\x94\xa0\x2d\x93\xc2\xc6\x75\x7d\x58\x33\xd8\ +\x89\x34\x21\x8c\x63\xb1\xfa\xdd\xdf\x7f\xe0\x08\x7e\xf8\xd0\x36\ +\x9c\x39\x3f\x6e\x32\xb2\x77\xb6\x56\x9a\xfd\xfa\xcc\xe1\x27\x7f\ +\x54\x2b\x4e\xd7\x0c\xfa\xd4\x88\x0a\x28\x86\xb7\x42\x25\x8c\x9b\ +\x46\x97\x27\x0e\x00\xa9\xc2\x97\x3d\x8b\x62\x65\x39\x00\x15\xd0\ +\x5a\x75\xcf\x74\xa4\x0f\xa8\x5f\xb5\x43\x44\xb8\x2a\xae\x1e\x3b\ +\x95\xaa\x6d\x71\xd5\x40\x4d\x39\x26\x40\x45\x15\x21\x14\xbd\x5d\ +\x6d\xe8\xeb\x6e\xf3\xcf\x95\x95\xb2\xee\x30\x8f\xef\xc4\xd4\x4c\ +\xde\x64\x64\xef\xad\xda\xc2\xf8\x1f\x4d\xbd\xf5\xf0\x0e\x6a\xd7\ +\xd8\xb6\xab\x1b\xd3\x9c\xf0\xa5\xb4\x57\x35\x0b\xdc\x5a\xa1\x06\ +\x2e\xa9\x2c\x17\xa0\xf2\xc4\x14\x90\x4c\x80\x2d\x2c\x1e\x0d\xa4\ +\x89\x33\x47\xaa\x11\x95\xcf\x44\x9a\x61\xab\x72\xfa\x19\xc5\x6c\ +\x00\x77\xf2\x39\x95\xf4\xb4\xa8\xac\x84\x10\x14\x5d\x77\x98\xa7\ +\xb7\xbf\x62\xe6\x0e\x63\xd7\x9e\xaf\xcc\x9e\xf9\xa3\xe9\x43\x4f\ +\xec\x47\x60\x34\x37\x79\x89\x56\xb2\x0a\x28\x9e\x2f\x26\x40\x45\ +\xd5\xb7\xa4\xb2\xdc\x80\x0a\x68\xcc\xfe\xd4\xac\x99\xe4\x26\x69\ +\xe2\xce\x91\x8a\xcb\x7a\x16\x43\xe5\x03\x93\xd6\x28\xbd\xa3\xee\ +\x05\xab\x24\x44\xa1\x14\x21\xc0\xcc\x4c\x1e\x8f\x3e\xf1\x3c\x5e\ +\x78\xf9\x4d\x13\x77\x98\x1a\xb5\x2a\x3f\x2a\x8e\x1f\xfe\x5a\xfe\ +\xc4\xce\x33\x50\xef\x0e\x63\xd2\xbf\x46\x54\xc0\x56\xb1\xaa\xb0\ +\xb4\xad\x3c\x5e\x51\x6a\x9e\x4a\x96\x23\x50\x79\x62\x62\x7f\x6a\ +\xc5\x4c\xf2\x7a\x66\x9b\x37\x73\x94\xaf\xd1\x89\x9d\x3a\x09\x2b\ +\xc7\x33\xa6\x1b\xd7\x11\x98\xa1\x18\x23\xb9\x10\x97\x22\x04\xe7\ +\xce\x5d\xc2\x8f\x1e\xd9\x8e\x37\xde\x3a\x0a\x9b\x46\xb9\xc3\x60\ +\xc1\xae\x95\xbe\x3b\x7f\x66\xcf\xb7\x0b\x17\xde\x9c\x86\x1e\xa4\ +\x94\x4d\x31\x08\x8f\xc3\xb6\x16\x43\x05\x0c\x8b\x6b\x36\x40\xa9\ +\xc2\x4d\xd8\xe4\xb2\x90\xe5\x0c\x54\x80\x9a\xbd\xc4\x1d\xbd\x6b\ +\x16\x18\xe9\xca\x6d\x24\xae\x11\x95\x0f\x75\xe6\x55\x89\x91\xea\ +\x17\x5d\x08\x2f\x87\x8f\x9e\xc0\x0f\x1f\xda\x86\xe3\x27\xcf\x81\ +\x10\x82\xf0\x1a\xe8\x84\x55\x59\xf8\x66\xfe\xf8\x8e\xff\x5a\x9e\ +\x39\x55\x82\x5a\xdd\x33\xa9\x36\x2a\x5c\x17\xb7\x58\x2a\x60\x58\ +\x5c\xb3\x40\xac\x5e\x35\x71\xd9\xca\x72\x07\x2a\x4f\x4c\x41\x65\ +\x31\x5c\x5f\xe2\xa8\x7f\xcb\x5d\xe5\xf3\x84\x92\x08\x63\xba\x69\ +\xa1\x84\x00\x96\x65\x63\xdf\x1b\x07\xf1\xa3\x47\x9f\xc3\xc5\xf1\ +\x68\x77\x18\x50\xfb\x78\xad\x34\xfb\xd5\xe9\x83\x8f\x3e\x6e\x95\ +\xe7\xc5\xdd\x61\xea\x05\xaa\xb0\xf8\xc5\x50\x01\xa3\xce\xe3\x02\ +\x54\x23\x69\x56\x2c\x40\x79\xb2\x52\x80\xca\x93\x66\x03\x96\x2a\ +\x0d\x42\xf2\x34\x92\x6e\x39\x4f\xec\x8c\x5e\xe6\x85\xc2\x77\xe7\ +\xd3\xe1\x0e\x21\x04\x95\x4a\x05\x3b\x5f\x78\x1d\x8f\x6f\x7d\xc1\ +\xcc\x1d\x86\xda\xaf\xd6\x16\xc6\xff\x60\xf2\xc0\x8f\x5e\x02\xa5\ +\x04\xf1\x40\x4a\x68\xa1\x71\xb8\x69\xda\x46\x59\x55\x58\xfc\x62\ +\x80\xd8\x8a\x07\x28\x4f\x56\x1a\x50\x79\xd2\x28\x60\x85\xa5\x69\ +\x96\xf1\x1c\x11\xf1\xd4\x20\x2c\x6e\xb9\xf5\x48\xe0\xeb\x17\xa9\ +\xfd\x39\xd5\x8a\x6b\x9b\x13\x00\x24\x45\x30\x3f\x5f\xc0\x53\xcf\ +\xbc\x80\xed\xbb\x5e\x47\xb9\x5c\x89\x02\x29\x9b\xda\xb5\x27\x2b\ +\xb3\x67\xfe\xdf\xe9\x43\x4f\x1c\x41\xb4\xaa\xb7\x18\x2a\x60\x3d\ +\x4c\x2b\x6e\x7c\xa3\x00\xd5\x48\x9a\x15\x07\x50\x9e\xac\x54\xa0\ +\xf2\xa4\x5e\xc0\xaa\x67\x1e\x54\x58\xba\x46\x1d\x8c\xeb\x05\x2e\ +\xd3\xf2\xa3\x84\x82\xa4\xa8\x3e\x52\x77\xe6\x56\x4d\x08\x26\x26\ +\xa6\xf1\xf0\xe3\xcf\xe1\x95\xd7\xdf\x86\x65\xd9\x91\xee\x30\xd4\ +\xaa\xfe\xd7\xc2\xa5\x83\xdf\x98\x3b\xb9\xeb\x22\x1a\x33\x9a\x37\ +\x12\xdf\x2c\x15\x50\x0c\x6b\xa5\x0a\x18\x96\xee\x5d\x07\x50\x9e\ +\xac\x74\xa0\xf2\x24\x8e\x61\xbc\x51\x1b\x55\x54\x79\xcd\x70\x30\ +\x5e\x4c\x5f\x3e\x0a\x80\xd6\x67\x4a\x77\xfc\xf3\x4e\x9d\x3a\x8b\ +\x07\x1f\xd9\x86\x83\x47\x3c\x77\x98\xd0\xd2\x66\xed\x5a\xe9\x2f\ +\x17\xce\xec\xf9\xeb\x85\x0b\x6f\xce\xa1\x39\x20\x65\x92\x76\x31\ +\x55\xc0\xa8\xf3\x7a\xd2\x36\x6a\x68\x5f\xd1\xf2\x6e\x01\x2a\x4f\ +\xe2\x8e\xf0\xb1\x79\x74\x12\x97\x3d\xc5\xb5\x53\x99\xb4\xc1\xa4\ +\xec\xb8\xc2\xcf\xf2\x26\xd1\xc6\x74\xd5\x76\x56\x07\xde\x3e\x86\ +\x07\x1f\xd9\x86\x33\xe7\xcc\xdc\x61\xec\x6a\xe1\x8f\x67\x8e\x3e\ +\xf3\x3f\x2a\xf9\x73\xd5\x3a\xfb\xd4\x6c\x15\xb0\x59\x00\xb6\x9c\ +\x58\xd6\xbb\x06\xa0\x3c\x79\xb7\x01\x95\x27\xcd\x9c\x6e\x10\x96\ +\xae\x51\x95\xaf\xd1\x3c\xcd\x9b\x99\x6e\xba\x5d\x16\x0d\xdc\x61\ +\x5e\xdd\xb3\x1f\x0f\x3f\xb9\x13\x93\xd3\x79\xa4\xa2\x47\xf6\x0e\ +\xd4\x4a\xf9\xdf\x9f\xdc\xff\xc3\x67\xa9\x55\xa9\xf7\xfa\x98\xa4\ +\x6f\x74\x5a\x42\x58\xdc\x4a\x51\x01\xdf\x75\xf2\x6e\x05\x2a\x4f\ +\x9a\x39\xdd\xa0\x19\xbe\x7a\xf5\x3c\x48\xf5\xf8\xf8\x99\xd4\x45\ +\xb9\xb2\x0d\x9d\x92\x09\x21\x28\x95\x4a\xd8\xbe\xe3\x15\x6c\x7d\ +\xee\x15\x2c\x14\x4a\x51\x20\x45\x41\xed\x1d\xd5\x85\x89\xdf\x9b\ +\xdc\xff\xc3\x7d\x6e\x9d\x81\x01\x3f\x9e\x98\xa6\x8f\x0b\x56\xba\ +\xf0\x56\xab\x80\xe2\x79\x02\x50\x1a\x79\xb7\x03\x95\x27\x71\xa7\ +\x05\x44\xa5\x6b\xc6\xc4\xcd\x46\xe7\x4c\x35\x92\x57\x71\x5d\x22\ +\x66\xa6\x53\xea\xbb\xc3\x3c\xfe\xd4\x2e\xbc\xf0\xca\x9b\xa8\x56\ +\xa3\x77\x87\xa1\xb6\xf5\xa0\xe3\xb3\xf7\xf8\x49\x00\x69\xa6\xde\ +\x46\x5f\xae\x7a\xc0\x28\x2c\xbe\x59\x86\xf5\x46\xa7\x34\x24\xe0\ +\xa4\x90\xcb\x05\xa8\x58\x69\x06\x7b\x0a\x13\x15\x03\xaa\x67\xdd\ +\xa9\x7a\xa4\x7e\x75\x2a\x14\x70\x08\x08\x21\x38\x7f\x61\x1c\x3f\ +\x7a\x78\x9b\xe3\x0e\x63\x47\xbb\xc3\x50\xab\xfa\x37\xc5\x89\xc3\ +\x7f\x9e\x7f\xe7\xf9\x49\x38\x20\xd5\x08\xb8\xd4\x93\xbe\x15\x76\ +\x29\x55\x58\x33\x55\xc0\xb8\x79\x2f\x0b\xb9\x1c\x81\xca\x93\x7a\ +\x0d\xe4\x8b\x35\xca\xd7\xec\x39\x53\xa1\xbe\x7e\x61\xeb\x51\x11\ +\x00\xc7\xde\x39\x8d\xed\xcf\xbf\x8a\xa3\xef\x9c\x71\xdc\x61\xc2\ +\x4d\x52\xe3\xb4\x56\xfe\xfa\xfc\xd9\x3d\xdf\x5f\x38\xff\x46\x11\ +\xcd\x1f\xd9\x33\xcd\xd7\x8c\xb9\x55\xaa\xb0\xa5\x54\x01\x2f\x4b\ +\xb9\x9c\x81\x8a\x95\x66\x81\x96\x89\x2c\x99\x9b\x0c\x78\xb5\x4f\ +\x88\xd3\x03\x55\xcd\xb2\xb0\x6b\xf7\x3e\x54\xa2\x55\x3d\x00\xf4\ +\x98\x5d\x2d\xfe\xc1\xf4\xc1\xc7\x1f\xaa\x2e\x8c\x8b\xee\x30\x71\ +\xda\xda\x8c\x74\xef\x16\x15\xf0\xb2\x97\x04\xa8\x64\x79\xb7\xaa\ +\x7c\x61\xf5\x50\x42\x52\xd0\xe1\x18\xa5\x14\xd5\x9a\x65\x32\xfd\ +\xe0\x15\xab\x32\xff\x3b\x13\x6f\xfc\xe3\x0b\xd4\xaa\x34\x0a\xaa\ +\xcd\x4c\xbb\x52\x55\xc0\x44\x5c\x49\x80\x2a\x5c\x96\xd3\x28\x5f\ +\xbd\x62\xe6\xeb\x17\x73\x5f\x3f\x41\x2c\x50\xfb\x89\x5a\x71\xfa\ +\x5f\x4f\xbc\xf1\x8f\x07\x61\xa6\xea\x85\x49\xb3\xc1\xad\x19\x2a\ +\x60\xab\x98\x56\x02\x4e\x06\x92\x00\x95\xb9\xbc\x1b\x55\xbe\x20\ +\x0d\xa9\xbb\x6d\x25\x4a\xad\xbf\xab\xe6\xcf\xff\xf1\xd4\xdb\x8f\ +\x9c\x47\xe3\x20\xa5\x6a\x7f\xa3\x69\x9a\xa1\x02\xd6\x33\x09\xd4\ +\xb4\xec\x44\x22\x24\x01\xaa\xfa\x24\x6a\x76\xf9\x62\x39\x18\x37\ +\x8b\x7d\x85\xfa\xfa\x85\xc8\x2c\xb5\x6b\x7f\x5e\x9e\x3e\xf9\xed\ +\x99\x23\x4f\xe7\xb1\x34\x20\xd5\x8c\x74\xcd\x9a\x9d\x5e\x4f\x79\ +\x89\x18\x48\x02\x54\x8d\x8b\x89\xcd\xa9\xd1\xb9\x5b\x26\xac\x48\ +\x55\x96\xae\x8d\x8a\xf2\x63\xab\x7e\x67\xa8\x55\xfd\xa3\xf9\xb3\ +\xaf\xfd\x60\xe1\xdc\xeb\xf5\xba\xc3\x44\xc9\x62\xa8\x80\xcd\x48\ +\x9f\x00\x53\x8b\x25\x01\xaa\xe6\x4b\xb3\x41\x2a\x62\x09\xe1\xb0\ +\x91\x3c\x23\x70\x23\x70\xa6\x27\xc4\xe9\xe2\x9b\xb4\x56\xf9\x9d\ +\xa9\x83\x8f\x3e\x55\x9d\xbf\xe4\xd5\xd3\xea\x17\xb3\x51\x15\xb0\ +\x5e\xf5\xb0\x5e\x15\x30\x91\x26\x4a\x02\x54\xad\x97\x56\xcd\x8f\ +\x6a\xa6\xd1\x9d\x02\xc4\x32\x28\x8b\x02\x74\xbb\x5d\x2d\xfd\xe6\ +\xa5\x3d\x7f\xfb\x1a\xcc\x97\x0b\x6e\x86\x34\xc3\x56\x15\x96\xa6\ +\x59\xe1\x89\xb4\x40\x12\xa0\x5a\x7c\xd1\xb1\xa6\x66\x3e\xf8\x71\ +\x40\x8c\x02\x80\x6d\x95\xcf\xa7\xda\x3a\x2f\x01\x58\xa3\x49\x57\ +\x05\xa5\xff\xc3\xaa\x2e\xfc\xde\xf8\x6b\x7f\x77\x1c\xd1\x33\xcd\ +\x5b\x7d\xcd\xea\x4d\xdf\xac\x49\xa0\x89\x2c\xa2\xa4\x1b\x2f\x22\ +\x91\x16\x49\xe3\xbb\x2d\xc4\x28\x3f\xdd\xd6\x5d\x6c\xef\x19\xbd\ +\x1e\x84\xdc\xad\x48\xbb\x00\x4a\xbf\x6d\x55\x16\x7e\x77\xfc\xf5\ +\xbf\x3b\x87\x80\x49\x2d\x85\x2c\x95\x0a\x98\xc8\x12\x4a\x02\x54\ +\x2b\x4f\x5a\x02\x60\x95\xfc\x59\xab\x7b\xed\x6d\x47\x49\x2a\xbd\ +\x1e\xc0\x35\x70\x9e\x0d\x1b\xc0\x09\x50\xfb\xdf\xd4\xca\x73\xdf\ +\x9c\xd8\xfb\x83\x59\xa8\x41\x2a\x7a\xfa\x43\xf3\xa4\xd5\x2a\x60\ +\x22\xcb\x50\x5a\xfd\xd5\x4e\x64\x71\xa5\xd1\x91\x41\xba\xfa\xae\ +\x5f\x5d\x4d\x52\x99\xcf\x80\x60\x03\x80\x12\xb5\xed\x47\xcb\xd3\ +\x27\xde\x9a\x39\xf2\xb4\x55\x47\xf9\xcd\x96\x56\xb9\xe2\x24\xb2\ +\xcc\x65\xa9\x1f\xbc\x44\x16\x5f\x74\xab\x8c\x7a\x12\x36\xf2\xb8\ +\x94\xd2\xe8\x84\xdb\x44\x56\xb0\x2c\x87\x07\x30\x91\x95\x21\xad\ +\x7a\x56\x12\xc0\x49\x24\x52\xfe\x7f\x90\xbe\xf8\xd8\xd4\xeb\x70\ +\x25\x00\x00\x00\x14\x74\x45\x58\x74\x41\x75\x74\x68\x6f\x72\x00\ +\x4a\x61\x6b\x75\x62\x20\x53\x74\x65\x69\x6e\x65\x72\xe6\xfb\xf7\ +\x2f\x00\x00\x00\x49\x74\x45\x58\x74\x43\x6f\x70\x79\x72\x69\x67\ +\x68\x74\x00\x50\x75\x62\x6c\x69\x63\x20\x44\x6f\x6d\x61\x69\x6e\ +\x20\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\ +\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\ +\x6e\x73\x65\x73\x2f\x70\x75\x62\x6c\x69\x63\x64\x6f\x6d\x61\x69\ +\x6e\x2f\x59\xc3\xfe\xca\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\ +\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\ +\x36\x2d\x32\x30\x54\x32\x33\x3a\x32\x34\x3a\x32\x35\x2d\x30\x34\ +\x3a\x30\x30\x77\x9c\x29\x53\x00\x00\x00\x25\x74\x45\x58\x74\x64\ +\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\ +\x30\x36\x2d\x32\x30\x54\x32\x33\x3a\x32\x34\x3a\x32\x35\x2d\x30\ +\x34\x3a\x30\x30\x06\xc1\x91\xef\x00\x00\x00\x19\x74\x45\x58\x74\ +\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\ +\x21\x74\x45\x58\x74\x53\x6f\x75\x72\x63\x65\x00\x68\x74\x74\x70\ +\x3a\x2f\x2f\x6a\x69\x6d\x6d\x61\x63\x2e\x6d\x75\x73\x69\x63\x68\ +\x61\x6c\x6c\x2e\x63\x7a\x69\x66\xe3\x5e\x00\x00\x00\x0d\x74\x45\ +\x58\x74\x54\x69\x74\x6c\x65\x00\x47\x6f\x20\x44\x6f\x77\x6e\xf3\ +\xfd\x14\x79\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0e\x35\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ +\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x26\x00\x00\x80\x84\ +\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00\x75\x30\x00\x00\xea\x60\ +\x00\x00\x3a\x98\x00\x00\x17\x70\x9c\xba\x51\x3c\x00\x00\x00\x06\ +\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\ +\x00\x07\x74\x49\x4d\x45\x07\xe1\x0a\x0d\x0f\x2b\x18\xc7\x56\x80\ +\xf9\x00\x00\x0d\x39\x49\x44\x41\x54\x68\xde\xc5\x5a\x7b\x78\x54\ +\xd5\xb5\xff\xad\xbd\xcf\xcc\x99\xcc\xe4\x01\x12\x20\x0f\x0a\x21\ +\x10\x5a\x79\xa3\x20\x05\x4b\x79\x84\x14\x10\x3e\xe4\xa5\x55\xf4\ +\x16\xea\x15\x42\x91\x54\x7c\xf5\xbb\xe5\xbb\xdc\xeb\x47\x51\x1e\ +\x1f\xca\x45\x81\xe2\xb5\x80\x82\xa0\x48\xa1\x48\x23\x85\x0b\x0a\ +\x52\xaa\x28\x04\x81\x12\x08\x31\x10\x9e\x81\xbc\x33\x79\xcd\x9c\ +\x39\xe7\xec\x75\xff\x98\x09\x86\x90\x4c\x48\xe4\xfb\xba\xfe\x59\ +\xf3\x9d\xb3\x67\xad\xdf\x7a\xec\xbd\xd7\xda\xfb\xd0\xe8\xd1\x23\ +\x04\x6e\x27\x02\xc0\x21\xae\x00\x88\x46\x38\x03\xa0\x03\x07\x0e\ +\xd9\x42\x88\x87\x99\xf9\x1d\x66\xee\x45\x44\x60\x66\x84\xe1\xd5\ +\x00\xde\x88\x8f\x8f\x5b\x32\x74\xe8\x43\x66\x45\x85\xb7\x55\x7a\ +\x43\x1c\x00\x58\xd4\xfb\xb3\x08\xf1\xfa\xbf\x65\xe8\xfd\x1d\xdc\ +\xe1\x70\xa0\x57\xaf\xfb\x75\x66\x9e\x0d\xa0\x17\x11\x05\x05\x85\ +\xe7\x91\x00\xd2\x8b\x8a\x8a\x7f\x32\x7d\xfa\x63\xad\xd2\x1b\xe2\ +\x75\xe3\x44\x7d\x03\xea\xf3\xa6\x3c\xc3\x75\x1e\x89\x8c\xf4\xd0\ +\x95\x2b\x57\x3d\x44\xb8\x1f\x2d\xa3\x58\x80\xbb\x4f\x99\xf2\xb4\ +\x6a\x8d\xde\x86\xcf\xeb\x0c\xe0\x30\x0a\x1b\x15\xf2\xe4\x93\xd3\ +\x6c\xd3\xb4\xee\x63\x46\x87\x16\x1a\xa0\x29\xc5\x9d\x99\xb9\xb9\ +\x71\xcd\x82\x07\x40\xf5\xc3\xd7\x22\x21\x93\x27\x4f\x83\x65\x59\ +\xb1\x00\xda\xb6\xd0\x00\x00\xe8\xb2\x6a\xd5\x32\x11\xe6\x7d\x73\ +\xe0\x6f\x45\xa8\x6e\x62\xdc\x46\x9d\x3b\x77\xe2\xf4\xf4\x7f\xb7\ +\x9e\x7f\xfe\x37\x2a\x25\xa5\x9b\x6a\x4c\x08\x91\x8b\x99\xb9\x13\ +\x00\x77\x4b\xd1\x33\x73\x97\x35\x6b\xde\x75\x3a\x1c\xda\x1d\xef\ +\x22\x22\x5c\x9c\x9a\x3a\x82\xd7\xaf\x7f\xc7\x4a\x4b\x1b\xc5\xba\ +\xee\x6c\x38\x81\xeb\x13\xd1\xe8\xd1\x23\x64\xdd\x0b\x66\x46\xd7\ +\xae\x5d\xf8\x83\x0f\x3e\x8e\xb3\x2c\xf3\x61\x66\x54\x46\x46\x7a\ +\xb2\x7e\xf9\xcb\xa9\x25\x1d\x3b\xb6\xa7\xac\xac\x93\x64\x18\x06\ +\x0d\x1a\xf4\x80\x5a\xba\x74\xa5\x12\x42\xfc\x8e\x99\x97\xb5\x22\ +\x02\x59\x1e\x8f\x67\x5c\x55\x55\x55\xf1\x98\x31\xa9\x9a\x52\x8a\ +\x3b\x76\xec\x80\x19\x33\x9e\x52\xb3\x66\xcd\x73\x15\x14\xdc\xe8\ +\xa1\x14\xf7\x21\xa2\x8b\xbd\x7b\xdf\x7f\x3c\x31\x31\xde\x36\x8c\ +\x40\x63\x59\xa2\x68\xf4\xe8\x11\xb7\x66\x7d\x4a\x4a\x37\xde\xb0\ +\xe1\x83\x0e\xa6\x69\x6e\x64\xe6\x5f\x00\xf0\x03\x38\x29\x04\xed\ +\x12\x42\x66\x26\x25\x75\xbe\x90\x9b\x9b\x67\x78\x3c\x9e\x04\xbf\ +\xdf\x3f\x9d\x99\x9f\x03\x90\xd4\x0a\x03\x0c\x22\xfc\x45\x4a\x6d\ +\x75\xa7\x4e\x89\x5f\x4f\x98\x30\x46\x6d\xd8\xb0\xb9\x9d\x61\x18\ +\x3f\xb7\x6d\x35\x15\xc0\x48\x00\x1d\x01\x94\x08\x41\xcf\x9d\x39\ +\xf3\xf5\x9f\x33\x32\x5e\x91\x8d\xc8\xe1\xba\x08\x40\x08\x41\xb1\ +\xb1\xed\xd4\x47\x1f\xed\xf8\x3d\x33\xff\xa1\x41\xb8\x18\x40\x01\ +\x11\xf6\x11\xd1\x09\xa5\xf8\x09\x00\x43\x43\xa1\xfd\x21\x54\x48\ +\x44\x1b\x00\xd4\x00\x3c\x91\x19\xfd\x00\xe8\xb7\xe7\x08\x8e\x3b\ +\x1c\xce\xc9\x19\x19\xb3\x0b\x4e\x9e\xfc\x67\x7d\x7d\x5c\x67\x00\ +\x01\x90\xfb\xf7\x1f\xb4\x75\xdd\xd9\xcf\x34\xad\x4f\x00\x74\x0e\ +\xa3\xb4\x2e\x27\xef\x15\xd5\xcd\xc1\x26\x17\x12\x22\xfa\xaf\x89\ +\x13\xc7\x2d\xf1\xf9\x7c\x64\xdb\xea\x36\x2c\x02\x80\xf0\x78\xdc\ +\x9c\x92\xd2\x4d\x37\x4d\xeb\xb9\x66\xc0\xe3\x1e\x83\xaf\x03\x4e\ +\xe1\xde\x33\xf3\xb3\x9f\x7e\xba\xaf\xcf\x6f\x7f\x3b\xc7\x6e\x60\ +\x38\x09\x66\xe6\x5d\xbb\x3e\x52\xf9\xf9\x97\x86\x03\x98\x76\x8f\ +\xc1\xdd\x2b\xea\x62\xdb\x6a\xde\xac\x59\xcf\x3b\x5d\x2e\xfd\x16\ +\x78\x00\x2c\xfa\xf5\xeb\x03\x8f\x27\x2e\x86\x19\xf3\x01\xb4\xf9\ +\x57\x23\x6d\x8a\x98\x79\x5a\x51\x51\xf1\xa8\xcc\xcc\x7d\x16\xea\ +\x2d\xab\xf2\xab\xaf\xbe\x61\xa5\xd4\xaf\x98\x79\x1e\xbe\xaf\x35\ +\x7e\x08\x59\x00\xbc\x00\xca\x01\xf8\x42\x9e\x72\xdc\x03\xb9\x2e\ +\x66\x8e\x6d\xdb\xb6\xcd\x9e\x61\xc3\x86\xf8\xca\xcb\x2b\x24\x00\ +\xa5\x69\x9a\x96\x62\xdb\xf6\xdc\x7b\xa0\xe4\x26\x11\x7d\x4a\x44\ +\x9f\x09\x21\xbe\x13\x82\xaa\x98\xa1\x29\xa5\x12\x94\x52\x83\x00\ +\x7e\x94\x19\x03\x7e\xa0\x9e\x51\x5e\x6f\xe5\xb4\x3e\x7d\x7a\xfd\ +\xe9\xe2\xc5\x4b\x8a\x99\x89\x88\x68\x39\x80\x97\xd0\xfa\xc9\x69\ +\x02\xf8\xc4\xe1\xd0\x96\xf7\xed\xdb\xfb\xe4\xb1\x63\x27\xcc\x25\ +\x4b\x5e\x25\x22\xa2\xc8\x48\x0f\x12\x12\xe2\x39\x27\x27\x97\x5e\ +\x7b\x6d\x45\xac\x61\x18\x4f\x29\xa5\x5e\x02\x90\xd8\x5a\x0b\x88\ +\x70\x42\xd7\xf5\xf1\x4f\x3e\x39\xad\xf8\xca\x95\x6b\x4c\x44\xb4\ +\x07\xc0\xb8\x56\xca\x0b\x10\xd1\xaa\xa8\xa8\xc8\xd7\xd7\xac\x79\ +\xc3\xbb\x65\xcb\x36\x69\x9a\x56\x63\xe3\xb8\x63\xc7\x0e\xa8\xac\ +\xac\xe2\xbf\xfd\x6d\x7f\xaa\x6d\xdb\x6b\x00\xa4\xb4\x52\x67\xa1\ +\xd3\xe9\x1c\xed\xf7\xfb\xb3\xd3\xd2\x46\x0a\x41\x84\x9d\x00\x2a\ +\x5a\x29\x6c\x53\x4c\x4c\xf4\x1f\x1e\x7f\x7c\x72\xe5\x7b\xef\x6d\ +\x69\x12\x3c\x00\x2a\x2c\x2c\x82\x61\x18\xc2\x34\xcd\xfd\x52\xca\ +\x97\x00\x94\xb4\x2e\x02\xf4\x45\x44\x84\xeb\xca\xd4\xa9\x13\x25\ +\x00\x16\x51\x51\xd1\x9b\x84\xa0\x0c\x00\x97\x5b\x28\x2b\xdb\xe9\ +\x74\x2c\xdb\xbd\xfb\xa3\xea\xfc\xfc\xcb\x4d\xa5\xdf\x6d\x55\xa5\ +\x52\x8a\x1f\x79\x24\x4d\xeb\xd9\xf3\xc7\x7b\x88\xe8\x4f\x2d\xd4\ +\x67\x10\xd1\xbb\x4e\xa7\xe3\xc5\x69\xd3\x1e\xad\xa9\xac\xac\x0a\ +\xee\x03\x63\xc7\xa6\x5a\xf3\xe6\xa5\x6f\x95\x52\x4e\x07\x70\xa4\ +\x05\x9e\x78\xdf\xef\x37\x2e\x2c\x5a\xb4\xac\xa9\x95\xab\xd1\x92\ +\xd8\x34\x2d\x4e\x4f\xff\x35\x4b\x29\x37\xb5\xc0\x69\x25\x42\x88\ +\x05\x51\x51\x91\x2f\x64\x64\xa4\xdf\xc8\xcf\xbf\x5c\xb7\xf9\xb1\ +\x28\x2d\x2d\xc3\xb9\x73\xe7\xc5\xda\xb5\x6f\x7c\xa5\xeb\xfa\xd3\ +\x44\xd8\x08\x20\xd0\x8c\xc0\x22\x21\xc4\xfe\x9c\x9c\xe3\x68\xa2\ +\x31\x09\x5b\xcf\x67\x66\xee\xa3\xe4\xe4\xa4\x0b\x44\x77\xe5\xb0\ +\x6c\x29\xe5\x33\xbd\x7a\xfd\x64\x55\x6a\xea\x70\xff\x89\x13\xa7\ +\x45\x5d\x9b\x0a\x80\x64\x72\x72\x92\x60\x66\xca\xce\xce\x11\x93\ +\x26\x8d\xf7\x9e\x3a\x75\xe6\x70\x20\x60\x0e\x45\xf8\x2a\xf3\x6c\ +\x54\x54\xe4\x9a\x82\x82\x9b\x81\xda\xda\xda\x86\x65\x40\xb3\xcd\ +\x88\x52\x8a\x8e\x1d\x3b\x61\x12\x89\x2e\x00\xc6\x84\xd1\xe3\x93\ +\x52\xce\xb1\x2c\xeb\xaf\x03\x06\xf4\x93\x3e\x9f\xbf\x1e\xf6\xa0\ +\xae\x3a\x05\x41\x53\xb3\x73\x44\x44\x84\xcb\x4f\x44\x66\x38\x97\ +\x10\xa1\x30\x3a\x3a\xda\xe7\xf5\x56\xb6\xc8\xf3\x77\xca\xa1\xeb\ +\x00\xec\x30\xaa\x98\x99\xab\x99\x99\x2c\xab\xd1\x05\x82\x34\xd4\ +\xdf\x96\xa5\x60\x87\xc3\x41\xcc\x1c\xae\xb8\x02\x33\x20\xa5\xe0\ +\x06\xe3\x5a\x04\x3e\x44\x06\xbe\xaf\x6e\x6b\x01\x54\x85\x9e\x69\ +\x00\xa2\x00\x94\x4a\x29\xcb\x9a\x68\xd9\xb9\x7e\x04\x08\x00\xf7\ +\xe9\xd3\x8b\xcb\xcb\x2b\x1c\x44\xa4\x21\x3c\xb5\xab\xa8\xf0\x46\ +\xc4\xc4\x44\x73\x3d\x61\x2d\x02\x3f\x77\xee\xb3\xc2\xe5\x72\x1d\ +\x23\xa2\x45\x42\x88\xf9\x52\x8a\x47\x74\xdd\x39\xca\xe9\x74\x0e\ +\xd7\x75\x7d\xa4\x94\xf2\x17\x0e\x87\x63\x6a\xb7\x6e\x49\xe7\xc6\ +\x8e\x4d\x6b\x6c\xa1\x20\x84\x94\x09\x21\x04\xaf\x5a\xb5\x5c\xad\ +\x58\xf1\x76\xa2\xdf\x6f\xbc\xc9\xcc\x43\x9b\x31\xa0\x6b\x4d\x4d\ +\x6d\xc2\x84\x09\x63\xb9\x95\x9e\x47\x6e\x6e\x9e\xf8\xd9\xcf\x7e\ +\x7a\x53\x29\xb5\x78\xc1\x82\x97\xdf\x4a\x4c\x4c\x38\x2e\x84\x28\ +\x15\x42\x10\x11\x6a\xdb\xb6\x8d\x39\x37\x73\xe6\xd3\x27\xcf\x9e\ +\x3d\x6f\x4a\x29\x1b\x0b\x41\xb0\x37\x7f\xf1\xc5\xe7\xa8\x7d\xfb\ +\xf6\xb4\x70\xe1\xe2\xc1\x4a\xa9\x65\xcc\x3c\x0c\xcd\x13\x0b\x21\ +\xe6\xdb\xb6\xfd\xd6\xe8\xd1\x23\xb4\x96\x82\x17\x42\xa0\x77\xef\ +\x9e\xf6\x96\x2d\x1f\x7b\x4a\x4b\x4b\x07\x28\xc5\x8f\x30\xf3\x20\ +\x22\x74\x62\x46\x04\x82\x05\x61\x11\x11\x9d\x24\xa2\x3d\x1e\x8f\ +\xfb\xef\x19\x19\xe9\x95\x59\x59\xdf\x92\x65\xd9\x24\x84\xe0\xf8\ +\xf8\x38\xd8\xb6\xcd\x14\x1b\xdb\x4e\x2f\x2b\x2b\x7f\x2c\xd4\x46\ +\x26\xdd\x05\xf8\x3a\xca\x72\xbb\x23\x26\x67\x66\x7e\x7c\xed\xb5\ +\xd7\x56\x68\x77\x0b\xde\xe9\x74\xc2\xe7\xf3\xa9\x23\x47\x8e\x0e\ +\xb2\x2c\xeb\x05\x04\xcb\x98\x68\x04\x27\x73\x25\x82\x73\xc1\x01\ +\x20\x06\xc1\xf6\xd2\x4f\x84\xcf\x85\x90\x4b\x1f\x7d\x74\xc2\x97\ +\x4a\x59\xb8\x76\xad\x40\x9e\x39\x73\xae\xad\xae\x3b\xab\xa5\xcf\ +\xe7\xff\x35\x80\x95\x00\xe2\x5a\x00\x1e\x00\xe2\x2d\xcb\xc2\x91\ +\x23\x47\x0f\x0f\x1e\x3c\xd0\x2c\x2d\x2d\x93\xcd\x81\x77\xb9\x74\ +\x9c\x3b\x97\x4b\xa7\x4f\x67\xff\x9b\x6d\xdb\xeb\x10\xec\xab\x8b\ +\x89\x68\xb3\x10\x62\xb9\xa6\x69\x2b\x35\x4d\xfe\xaf\x94\x72\x33\ +\x80\x3d\x00\xae\x02\xe8\x04\xe0\xa7\xcc\x3c\x26\x27\x27\xb7\x78\ +\xc6\x8c\xe9\xa7\xb6\x6e\xdd\x3e\xc0\xb2\xcc\x0f\xfd\x7e\x23\x5e\ +\x12\xd1\x22\x00\x7d\x5b\x08\x1e\x21\xa0\xfd\x2b\x2a\xbc\x81\xcb\ +\x97\xaf\x9e\x78\xec\xb1\x49\xc6\xd5\xab\xd7\x45\x53\x27\x6e\x52\ +\x4a\x94\x97\x57\xf0\xd9\xb3\xe7\x9f\x51\x4a\xbd\x19\xf2\xf0\x16\ +\xa7\xd3\x91\xf1\xe0\x83\x03\x36\x5d\xb9\x72\xf5\xac\x65\xd5\x14\ +\x0d\x1e\x3c\xb0\xe2\xf1\xc7\xa7\x94\xcc\x99\xf3\xec\x45\xaf\xd7\ +\x7b\xe8\xd2\xa5\x2b\x7b\x99\xd9\x03\x60\x08\x80\x51\x9f\x7f\xfe\ +\x45\x3e\x80\xfb\x98\x39\x03\x80\x4d\x44\xb4\x0c\xc0\xcb\x68\x7d\ +\x39\xed\x27\xc2\x26\x87\xc3\xb9\x72\xfc\xf8\xb1\xb9\x3b\x76\xec\ +\xe2\xf9\xf3\xe7\x12\x33\xa3\xb4\xb4\x8c\x8a\x8b\x4b\xa0\x94\xa2\ +\xfd\xfb\x0f\x5a\x0e\x87\x63\x8c\x6d\xdb\x9b\x01\x44\x13\xd1\x92\ +\xb6\x6d\xdb\xbc\xf9\xfa\xeb\xff\x5d\xbd\x73\xe7\x6e\x69\xdb\x77\ +\x6e\x07\x44\xc4\x4f\x3c\x31\x95\xe7\xcf\xff\x0f\x77\x4d\x4d\xed\ +\x7f\x32\xf3\xcb\x00\x2e\x11\x61\x17\x33\x5e\x00\xf0\x77\xd2\x34\ +\xd9\xdd\xb6\xd5\x76\x00\xfd\x5b\x69\x00\x42\xa9\x73\x81\x88\x76\ +\x09\x41\x07\xa4\x94\xf9\x52\x4a\x1f\x80\x40\xdf\xbe\xbd\xcb\x86\ +\x0c\x19\x64\xaf\x5f\xbf\x39\xb6\xaa\xaa\x7a\x3b\x80\x9f\x13\xe1\ +\xad\xb8\xb8\xb8\xdf\x4f\x9a\x34\xde\x9f\x9b\x9b\xd7\x9c\xe3\xb8\ +\x53\xa7\x04\x6c\xdf\xfe\x89\xc7\xe7\xf3\xad\x65\xe6\xa7\x00\x94\ +\x01\xb8\x0f\xc0\x17\x14\x0a\xef\x2c\xa5\xd4\x6a\x00\xce\x1f\x60\ +\x44\x1d\xf9\x42\x0a\xfc\x44\x28\x91\x52\x9b\x6d\x9a\xe6\x69\x21\ +\xc4\x4c\x66\x5e\x0f\xe0\x94\xcb\xa5\x4f\xda\xbd\x7b\xdb\xd5\x65\ +\xcb\x56\x86\x6d\x61\x85\x10\xfc\xa3\x1f\x25\x22\x39\x39\x59\x2d\ +\x58\xf0\x2a\x3b\x1c\x5a\x2f\xdb\x56\x7f\x05\xd0\x35\x34\xe4\x0b\ +\xb1\x7d\xfb\xfb\xe4\x72\xe9\x7f\x26\xc2\xc1\x7b\x00\x1e\x00\x22\ +\x10\xec\xb8\xba\x31\xa3\x27\x80\x98\xae\x5d\xbb\x38\x01\x4c\x09\ +\x62\xa2\x8d\x3e\x9f\xff\xca\xdd\x80\xaf\xa8\xf0\xca\xad\x5b\xb7\ +\x77\x58\xbc\x78\x59\x37\x97\x4b\xef\xea\x70\x38\xfc\x00\x0e\xdf\ +\x36\xee\x9d\x77\x36\x8a\xea\xea\x9a\x0a\x22\xf1\x3f\x08\x36\xe3\ +\xf7\x92\xae\x69\x9a\xfc\xee\xc6\x8d\xc2\x24\x66\x7e\x00\xc0\x0d\ +\x21\xc4\x67\xeb\xd7\xaf\x6e\x36\x6d\xe6\xcf\x9f\xcb\x27\x4e\x9c\ +\xea\x6f\x18\xc6\x5e\xbf\xdf\x38\x14\x08\x98\x87\xfd\x7e\xe3\x20\ +\x80\x89\xf5\xc7\x09\x00\x3c\x71\xe2\x38\x11\x1f\xdf\xf1\x10\x11\ +\x7d\x7c\x8f\x0d\x28\x88\x8f\x8f\xf3\x9a\xa6\xd9\x09\x40\x7b\x00\ +\xf9\xd1\xd1\xd1\x05\x7b\xf7\x1e\x08\x57\x6b\x31\x00\x1a\x37\x6e\ +\xaa\x12\x82\x88\xf9\xb6\x2b\x25\x00\xa8\x06\x70\x05\xc1\xc9\x7c\ +\x44\x00\x20\x9f\xcf\x4f\x3b\x76\x7c\x60\x08\x21\xd6\xa0\xf9\x26\ +\x43\xe1\x2e\x89\x88\xbc\x73\xe6\x3c\x63\x10\x21\x16\x80\x93\x88\ +\x0a\xdb\xb4\x89\xf1\x55\x55\x55\x37\x7b\x1f\x31\x66\xcc\x28\xad\ +\x47\x8f\x94\x2c\xb7\xdb\x3d\xd6\xe9\x74\x0c\x77\xb9\xf4\xe1\x4e\ +\xa7\x73\x84\xae\xeb\x23\x74\xdd\x39\x52\xd7\xf5\x11\x11\x11\xee\ +\x25\x75\x3b\xa8\x5c\xb8\x70\xb1\x48\x4f\x9f\x79\xe6\x8f\x7f\xdc\ +\xf0\x6e\xd3\x87\xbb\xb4\x17\xc0\x09\x66\x9e\x8e\xe0\xba\x1c\x36\ +\x15\x98\x19\xdf\x7d\x77\x81\x98\x83\x46\x33\x33\x49\xd9\x64\xea\ +\x37\x68\x3f\x59\xc5\xc7\x77\xa4\xd4\xd4\xe1\x37\x1d\x0e\x0d\xba\ +\xee\x42\x20\x10\x80\x10\x02\x42\x10\xaa\xab\x6b\x70\xf3\x66\x21\ +\x6e\x95\xd3\x4a\x29\x4a\x48\x88\x57\x6e\x77\xc4\xc6\x9a\x9a\xda\ +\xe1\x00\x46\x03\xf0\x13\xd1\xb7\x00\x76\x39\x1c\xda\x9e\x1e\x3d\ +\xba\xe7\x9e\x3e\x9d\x6d\xba\xdd\x11\xbb\x0c\x23\xf0\x34\x33\xff\ +\x06\x61\xca\x0f\x22\x8a\xd9\xb7\xef\x33\x8d\x88\x2a\x10\xec\xf2\ +\xda\x17\x15\x15\xbb\xfa\xf6\xed\x55\x5d\x51\xe1\x6d\xb6\x14\x67\ +\x66\xce\xce\x3e\x17\xae\xdf\xe6\xfa\xf7\x03\x0c\x40\xa4\xa4\x74\ +\xb7\xdf\x7f\x7f\x4b\x27\xc3\x30\x86\x10\x09\xaf\xcb\xa5\x1f\x9b\ +\x3d\xfb\x99\xf2\xb2\xb2\x52\x14\x16\x16\x0b\xd3\x34\x11\x19\xe9\ +\xe1\x5d\xbb\x3e\xb5\xef\xe2\x82\xe3\x9c\xc7\xe3\x1e\x65\x9a\x66\ +\x64\x20\x60\x1e\x02\x20\x35\x4d\x4b\xfd\xf0\xc3\xf5\x39\xeb\xd6\ +\x6d\x10\xe1\xc0\xa3\x99\xb2\x24\x44\x4a\x26\x27\x27\xd5\xc5\x94\ +\x00\x70\x59\x59\x99\x4c\x4b\x4b\xf5\x1e\x3d\x7a\x2c\xdb\xb6\x6b\ +\x2f\xb4\x6b\x77\x9f\x91\x9f\x7f\x89\x2a\x2b\xab\x84\x52\xc1\xf4\ +\x0f\x04\x4c\xba\x78\xf1\x92\x92\x52\xc4\x31\xf3\x94\x30\xa9\xe4\ +\xb2\x6d\x7b\x5f\x97\x2e\x9d\xcf\x96\x97\x57\x0c\x03\xf0\x20\xc0\ +\xb9\xdb\xb6\xed\x3c\x9a\x9c\x9c\xd4\xf0\xde\xb7\xa5\xe0\x6f\x5d\ +\xf2\xa9\x86\x42\x72\x72\xce\x8b\xb4\xb4\x91\xe2\xcb\x2f\xbf\x96\ +\x25\x25\xa5\x8d\x1e\x7f\x33\x2b\x02\xe8\x3a\x80\x9a\x30\x4a\xa2\ +\x98\x79\x54\x5e\xde\x45\x43\x08\xb1\x13\x80\x52\x8a\x67\xb8\xdd\ +\x11\x9d\x17\x2e\xfc\x9d\x8d\xef\xbb\xc1\x56\x81\x47\x68\x19\x6d\ +\x95\x90\x6d\xdb\xde\x83\xc3\xa1\x15\xa3\x99\x43\x31\x66\x9e\xe4\ +\x72\xe9\x89\x6e\xb7\x3b\x13\xc1\x4d\xe8\x01\xbf\xdf\xff\xd2\x8c\ +\x19\x73\x22\xfa\xf7\xef\x63\x33\x73\xab\xc1\x23\x74\x2a\x51\x37\ +\x07\x5a\x24\x24\x3f\xff\xb2\xb8\x70\xe1\x92\xb2\x2c\x73\x0a\xc2\ +\x9f\x75\x76\x50\x4a\x15\x19\x86\xb1\x5f\xd3\xb4\x02\x66\x1e\x03\ +\xe0\xe1\xca\xca\x2a\x75\xfe\x7c\x5e\xd6\xd2\xa5\xaf\xfa\x8f\x1f\ +\xff\x56\x70\xb0\x8c\x6d\x09\x78\x81\xd0\x1c\x68\x98\x8b\x77\x25\ +\xc4\xb6\x2d\x96\x52\xda\x45\x45\xc5\x43\x01\xf4\x0b\x33\x9e\x00\ +\x74\xd7\x75\xfd\xff\xd6\xad\x5b\xf9\x4d\x66\xe6\x3e\x2f\x33\x8f\ +\x04\x90\xea\xf3\xf9\x3a\xef\xd8\xf1\xc9\x05\xb7\xdb\x53\xf4\x8f\ +\x7f\x1c\x55\x97\x2f\xe7\x71\x5c\x5c\x1c\x4a\x4a\x4a\x60\xdb\xf6\ +\x5d\x1d\xd7\xd4\x6f\x07\x5b\xe4\x01\xd3\xb4\xc4\xea\xd5\xcb\x03\ +\x69\x69\x93\xde\x36\x4d\x2b\x1e\xc1\xc3\xda\x3b\x6e\xd2\x11\xfc\ +\x4c\xe2\x06\x33\xdb\x9a\xa6\x51\x62\x62\xc2\xc6\xeb\xd7\x0b\x0c\ +\xa5\xd4\x22\x00\xbf\x0a\x04\xcc\x91\xa7\x4e\xfd\x33\x53\xd3\xb4\ +\x03\x52\x8a\x8b\x42\x08\x6f\x54\x54\x54\xd1\x43\x0f\x3d\x68\x18\ +\x86\x11\x0e\xbc\x00\x60\x53\xe8\x6b\x15\x42\xd3\x11\xe0\x46\x80\ +\xdd\x12\x12\x1b\xdb\xce\xde\xb7\xef\xb3\xe8\xda\x5a\x5f\x5b\x22\ +\xa2\xe0\x57\x29\xa1\x3f\x32\x98\x88\x84\x10\x54\x35\x70\xe0\x80\ +\x72\x5d\xd7\x95\x94\x92\xbc\xde\x4a\x95\x95\xf5\xed\x40\xd3\xb4\ +\xe6\x23\xd8\x52\xb6\xc1\xf7\x17\x23\x3e\x22\x7a\x3b\x3d\x7d\xe6\ +\x8a\xbc\xbc\xfc\xfa\xa9\xd5\x10\xbc\x02\x82\xe7\x2f\xf5\x3f\x71\ +\xa9\xcf\xeb\xff\xb1\xe1\x18\xbb\x8e\x97\x94\x94\xd2\xa4\x49\x13\ +\xbc\x7d\xfa\xf4\xf4\xba\xdd\x6e\xd4\xd6\xd6\xc2\xe9\x74\xc2\x34\ +\x2d\x08\x21\xe0\x70\x68\x38\x78\xf0\x30\x55\x56\x56\xc1\xb6\x6d\ +\xb2\x2c\x4b\x45\x46\x7a\x68\xed\xda\x37\xbf\x79\xe5\x95\x85\xb3\ +\xbc\xde\xca\x21\xcc\x3c\x15\xc0\x30\x00\x49\x00\xb7\x63\x46\x4c\ +\xff\xfe\x7d\x39\x2f\x2f\x5f\x35\xa5\xb7\xee\xf9\xff\x03\x78\x8c\ +\x5f\x99\x77\x2f\x9e\x77\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\ +\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x37\x2d\x31\ +\x30\x2d\x31\x33\x54\x32\x33\x3a\x34\x33\x3a\x30\x33\x2b\x30\x38\ +\x3a\x30\x30\x27\xbf\x77\xe8\x00\x00\x00\x25\x74\x45\x58\x74\x64\ +\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x37\x2d\ +\x31\x30\x2d\x31\x33\x54\x32\x33\x3a\x34\x32\x3a\x35\x30\x2b\x30\ +\x38\x3a\x30\x30\xc0\x28\xb0\x93\x00\x00\x00\x00\x49\x45\x4e\x44\ \xae\x42\x60\x82\ +\x00\x00\x09\x4d\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x09\x02\x49\x44\x41\x54\x68\x81\xed\x9a\x7b\x54\ +\x93\xf7\x19\xc7\x3f\x6f\x02\x04\x84\x70\xf1\x08\x82\x17\x44\x10\ +\xc1\x8a\xab\xb4\x38\xb1\xd5\xf5\x88\x99\x52\x56\x95\x7a\xc6\x2c\ +\x9d\xb5\x30\xd6\x33\xa7\xa7\xdd\xe9\x6d\x2d\x3b\x6e\x6d\x57\xb7\ +\xb5\xb5\xad\xae\xb6\xdb\xa9\xb6\xd4\x56\x5d\xab\x5d\x77\x4a\x71\ +\x30\x10\x5b\x6a\x5b\xea\x44\x04\x05\xa3\xf5\x16\xa1\x48\x02\x28\ +\x97\x24\xe4\x9e\xbc\xfb\x83\x06\xd3\x98\x40\x02\xa8\xff\xec\x39\ +\x27\xe7\x79\x79\xf3\xfb\x3d\xf9\x7c\x7f\xcf\xf3\xbb\xbc\x09\xf0\ +\x7f\xbb\xb9\x26\x78\xba\xa9\x50\x28\x12\x81\x6d\x52\xa9\xf4\x4e\ +\x41\x10\x22\x6e\x30\x93\xbb\xd9\xec\x76\xfb\x29\x51\x14\x37\x55\ +\x57\x57\xef\x1b\xb6\xb5\x42\xa1\x88\xc8\xcb\xcb\xeb\xac\xab\xab\ +\x13\x4d\x26\x93\x38\x52\x73\x38\x1c\x63\xf2\x32\x1a\x8d\x62\x5d\ +\x5d\x9d\x98\x97\x97\x27\x2e\x5c\xb8\xf0\x01\x77\xde\x00\xf7\x1b\ +\xfd\xfd\xfd\x6b\x36\x6c\xd8\x10\x9d\x91\x91\x81\x28\x8a\x38\x1c\ +\x0e\x00\x44\x51\xfc\x9e\xf7\x74\x6f\x24\xde\x97\x78\xb3\x67\xcf\ +\x26\x3f\x3f\x9f\x2d\x5b\xb6\x3c\x01\xfc\x03\xb0\x3b\xfb\x48\xdc\ +\x05\x88\xa2\x78\x4b\x42\x42\xc2\xf7\x82\x7b\x83\x77\x58\xad\xf4\ +\x2a\x95\x58\xf5\xfa\xeb\x06\x2f\x8a\x22\x16\x8b\x85\xe9\xd3\xa7\ +\x23\x08\xc2\x14\x20\xdc\x95\xd7\x93\x00\xe9\x50\x01\x9d\xd7\xa7\ +\xb7\x6f\xe7\xc3\x19\x33\xa8\x5c\xba\x98\x0a\x85\x82\x2b\x97\x2e\ +\x5d\x17\x78\x37\x36\x80\x60\xd7\x7b\xd7\x94\xd0\x50\x81\x01\x1c\ +\x76\x3b\x5f\xad\x5b\x87\x55\xd5\xc8\xfd\x7f\x9e\x87\xc4\x78\x86\ +\xb6\xb4\x55\x1c\x2e\x28\x20\x63\xe7\x4e\xa2\xe3\xe2\xc6\x14\xde\ +\x53\x5b\x57\xbb\x26\x03\xce\x9a\xf7\x26\xa8\xae\xb8\x98\x10\x73\ +\x2b\x4b\x57\x9a\x90\x98\xcf\x72\x79\xee\x1a\xda\x02\x57\xb0\xf8\ +\xd5\x1f\xd1\xf8\xd8\x63\xf4\xf6\xf4\x8c\x39\xbc\xd3\xbb\xb3\x79\ +\x15\xe0\x4d\x7d\xf7\x89\x13\xa8\x76\x95\x90\xb9\x48\x0f\x61\x12\ +\xfa\xa6\xcc\x42\x1f\xbb\x86\x84\xf8\xf1\x84\x4b\x0e\x90\xf5\xdb\ +\x78\xea\x37\x6e\x44\xef\x65\x4e\x8c\x76\x01\xf0\x49\x80\xfb\x07\ +\xb8\x5e\xb7\x56\x56\x92\x56\xa0\xa0\x3f\xc4\x41\x73\xf4\x22\xbe\ +\x74\x6c\xa0\x5d\x7d\x85\x28\xe1\x6b\xa4\x53\x1e\x22\x2c\xa4\x9a\ +\xdb\x73\x64\x1c\xdb\xbc\x19\xa3\xd1\x38\xa6\xf0\xde\xcc\xd3\x24\ +\xf6\xfa\x61\x53\x72\x73\xf9\x66\x7f\x23\xff\x11\x57\x52\xdf\x97\ +\x4b\x88\xb4\x83\x59\x92\x42\x64\xda\xd7\x41\x10\x61\xf2\x23\xc4\ +\x25\x1f\x62\xf2\xf8\x16\x1a\x76\xec\xc0\x62\xb1\x8c\x19\xbc\xcf\ +\x19\x70\x6d\xe4\x1e\x64\x7c\x52\x12\xb7\xfe\x6d\x07\x92\xb7\x3f\ +\x64\x55\xda\x46\xb2\x26\xdd\x4f\x94\xec\x04\xf4\x1f\x82\xde\x8f\ +\x40\x12\x0c\xb1\x45\xcc\x59\x7e\x86\x30\xf5\x67\x34\xec\xd9\x83\ +\xd5\x6a\x1d\x13\x78\x77\xb6\x61\x05\x78\x0b\x92\xb0\x60\x01\xd3\ +\x1f\x7f\x96\x23\x2f\x06\x22\x4a\x62\x41\xca\xc0\xab\xbf\x0a\xb4\ +\xa5\x10\x18\x0d\x13\x56\xb3\x60\xbd\x16\x73\xd5\x4e\x4e\x94\x96\ +\x62\xb7\xdb\x47\x0d\xef\x7e\xed\x55\xc0\x50\x1b\x98\xd3\xa7\x64\ +\x67\x33\x4e\x51\xc8\xb1\x0f\xe7\xe3\x10\xc6\x0f\x08\x90\x88\xd0\ +\x5f\x06\xba\x2a\x08\x8a\x87\xf0\x65\xe4\xbc\x22\xa7\x6b\xc7\xcb\ +\x28\x6b\x6a\x7c\x8a\x3b\xdc\xea\x65\xb7\x0f\x6e\xc0\xde\x05\x0c\ +\x97\x01\xa7\xbf\x75\xcd\x1a\x74\xf2\x3b\xb8\xd8\x90\x8b\x28\x91\ +\x0f\x88\x10\xec\xa0\xdb\x0b\x86\x1a\x18\x37\x0b\x42\x6f\x27\x6f\ +\xd7\x74\x2e\x3c\x53\xcc\xd9\xfa\xfa\x11\xc3\xbb\x0e\xee\xb0\x02\ +\xfc\x09\x9a\xb1\x7e\x3d\xe7\x1a\x23\x38\x7f\x64\x05\xa2\x24\xe2\ +\xbb\x4c\x58\x41\xbb\x1b\x8c\x5f\x42\xd8\x7c\x08\x9e\xca\x9a\x4f\ +\x32\x38\xf1\xf0\xc3\xb4\x7e\xf3\xcd\xa8\xe0\xfd\xda\xc8\x7c\x09\ +\x2e\x08\x02\x99\xcf\x3e\xcb\xa9\xcf\x03\xd1\xb4\xfc\x1c\xd1\x18\ +\x04\x36\x40\x30\x41\xdf\x7b\x60\xaa\x87\xb0\xc5\x08\x52\x28\xd8\ +\x7f\x17\x8d\x8f\x3e\x8a\xa6\xad\x6d\xc4\x22\x7c\x9a\xc4\xfe\xd6\ +\xaa\x44\x22\x61\xc1\x4b\x2f\x51\xfb\x7a\x0b\x5a\xd3\x3a\xd0\x49\ +\x41\x07\x98\x74\xd0\xf3\x16\x58\x9a\x20\x62\x05\xd2\x40\x35\xab\ +\xdf\xce\xa0\xa1\xb8\x98\xcb\x5d\x5d\x7e\x8b\x18\xd1\x32\xea\x6b\ +\xf0\x20\x99\x8c\x3b\xdf\x7c\x93\xf2\xe2\x46\x8c\x21\xeb\x07\x04\ +\x68\x81\xde\x6e\x50\x97\x80\xf1\x0c\x44\xe4\x23\x1b\xa7\xe4\xee\ +\xdf\x25\xd3\xf0\xdc\x73\x68\xb5\x5a\xbf\x44\xb8\x5f\xfb\x24\xc0\ +\xd7\x91\x01\x18\x27\x97\x73\xc7\xf6\xed\xec\x2b\xa8\xc1\x1a\xfe\ +\xcb\xab\x22\xba\xdb\xa1\xad\x04\xfa\x5b\x21\xbc\x88\xa8\xb8\x7a\ +\xee\xfc\x59\x14\x0d\xaf\xbd\x86\xc1\x60\xf0\x4b\x84\x5f\xcb\xa8\ +\x3f\xf0\xce\xbf\x23\x63\x63\x59\x50\x52\xc2\xae\xb5\x87\xb0\x44\ +\xe4\x5f\x15\xd1\xa9\x82\x96\x12\x30\x74\x80\xfc\x21\xa6\xa4\xd6\ +\x33\x73\x5a\x0f\x8d\x25\x25\x98\xcd\x66\x9f\xe1\xfd\x3a\x0b\xf9\ +\x0b\xef\xf4\x31\x33\x66\x90\xbe\xe5\xaf\x7c\xb0\xa1\x0e\x7b\x48\ +\xd6\x80\x08\x1d\xa0\x39\x0d\xaa\x3d\x60\xd4\x43\xc4\x43\xa4\x2d\ +\xb9\x80\xd0\xfc\x29\xcd\x07\x0f\x62\xb1\x58\x7c\x16\x31\xac\x00\ +\xe7\x69\x74\x24\xf0\x4e\x9f\x30\x7f\x3e\x33\x7f\xff\x17\xca\xb6\ +\x6a\xb1\xc9\x32\xaf\x66\xa2\xed\x28\xa8\xf6\x82\x55\x80\x88\x7c\ +\x32\x73\x17\xd2\x59\x56\x46\x5b\x5b\x9b\x4f\xf0\x7e\x6d\x64\x23\ +\x85\x77\xfa\x99\x59\x59\x44\xe6\x16\xf2\xd9\x47\x21\x38\x82\x52\ +\xae\x8a\x38\x7f\x08\x2e\x7c\x0c\xd6\x60\x82\xa6\xdf\x4e\x47\x4d\ +\x0d\xad\x2a\x95\x5f\xc7\x8d\x21\x05\x8c\x66\xe4\xdd\xfd\x9c\xd5\ +\xab\xb1\xcf\x5d\xc6\xd1\xa6\x74\xec\x21\xf1\x60\x06\xf4\x22\xf4\ +\x3b\xb0\x7d\xeb\x20\x78\xce\x5c\xa2\x6f\x49\xc6\x72\xfa\x34\x7d\ +\x7d\x7d\xc3\x42\xfb\x55\x42\xa3\x85\x77\xfa\x8c\xa2\x22\xd4\x8e\ +\xc9\x5c\xd0\xe5\xc0\xd4\x1c\xc4\x99\x4f\xa3\x0f\xcd\xc1\x38\x73\ +\x16\x0e\xbb\x85\x5b\xf2\x96\x63\x6d\x6a\x42\xa3\xd1\x8c\xed\x3e\ +\x30\x16\xf0\x4e\x9f\xf9\xe4\x93\x34\x36\xdb\x78\xf1\xfe\x83\xec\ +\xd9\x5c\x41\xbb\x4e\x8b\xcd\x70\x19\x9b\xb1\x9b\xbe\x94\x44\xba\ +\x8e\xd5\xa3\x51\xab\xbd\x0e\x9e\x3b\x9b\xab\x5d\xf3\x50\x3f\xd6\ +\xf0\x00\x82\x20\xb0\xe8\xf9\xe7\x09\x5b\xb6\x8c\xcb\xe5\xe5\x7c\ +\x5c\xb8\x99\x98\xb4\x78\xc8\xfd\x31\x8f\xfc\xab\x96\x5f\xa4\x26\ +\x31\xf1\xdc\x39\x74\xb7\xdd\x46\x78\x78\xb8\xd7\xf2\xf1\x54\x42\ +\xd7\x08\x70\xcd\xc0\x58\xc0\xbb\x8a\xb8\x6d\xd1\x22\xf4\xe9\xe9\ +\x9c\xbb\xf7\x5e\x3a\x2b\x2b\x51\x6f\xd9\x4b\x7e\xca\x54\x34\x61\ +\x21\xd8\x95\x4a\x3a\x3a\x3a\x90\xcb\xe5\x1e\xfb\xbb\x5f\x7b\x15\ +\xe0\x49\xe9\x68\xe1\x5d\x7d\x68\x68\x28\x3f\xc8\xc8\xc0\x94\x96\ +\xc6\xc5\x95\x2b\x99\x54\x51\x41\x47\x69\x29\x97\xcd\x66\x64\x2b\ +\x56\x90\x98\x98\x88\x20\x08\xd7\xf4\xf3\x36\x07\x9c\x02\x96\x00\ +\x49\x00\x3a\x9d\x6e\x56\x69\x69\x29\xf5\xf5\xf5\x1e\xf7\x03\x6f\ +\xa3\xe1\x6f\xbb\x79\xf3\xe6\x91\x32\x7b\x36\xf1\x89\x89\xa8\x72\ +\x72\xb8\x74\xe4\x08\x66\xbd\x1e\xbd\x5e\x8f\x5c\x2e\xf7\x2f\x03\ +\xf1\xf1\xf1\xc5\x45\x45\x45\x77\xc5\xc4\xc4\x88\x0e\x87\x43\x2a\ +\x95\x4a\x07\x47\xc1\x5b\xc7\xd1\x58\x6d\x6d\x2d\x36\x9b\x8d\xe4\ +\xe4\x64\x82\x83\x83\x49\x4d\x4d\x25\x29\x29\x89\xde\xde\x5e\x82\ +\x83\x83\xbd\x66\xd0\xd3\x46\x16\x00\x20\x08\x82\x90\x9f\x9f\x1f\ +\x90\x9c\x9c\x3c\xf8\x46\xc7\xc9\x46\x9a\x5b\xd5\x04\x8d\x8f\x25\ +\x29\xfd\x56\x26\x05\x0d\x79\xea\xf0\xcb\x02\x03\x03\xd1\x68\x34\ +\xdf\x83\x0b\x08\x08\x60\xc2\x84\x09\x43\x96\x9f\x5f\x67\x21\x73\ +\xe7\xbf\x51\xe4\xe4\x50\x7a\xbe\x13\xb9\xf4\xbb\x9a\xb4\xf7\x71\ +\xf8\x9c\x76\xb0\xcd\xc5\xa3\x27\xe9\xeb\xfd\x96\x4f\x2b\x3f\xe5\ +\x4c\xef\xc0\x79\xc6\x66\xd0\xf0\x79\x79\x19\x15\x07\x6a\x38\xda\ +\xd8\x44\xf3\x89\xa3\x54\x57\x7e\x81\x5a\x6f\x1b\x88\xdb\xd3\xca\ +\xa9\xe3\x8d\x28\x95\x4a\xaa\x3f\x3f\xeb\x15\xd6\x93\xf7\x64\x5e\ +\x05\xc8\x42\x1b\x91\x04\x44\xf2\xc7\xfb\x96\x0e\x0a\xd8\xff\xf0\ +\x3d\xfc\x64\xf9\x07\x83\x6d\xfa\x9a\x7e\xcd\xf8\xe8\x39\x68\x8e\ +\x3c\xc1\xdc\xe4\xd5\x00\x34\xec\xfe\x29\x59\x2b\xee\xe3\x6c\xc3\ +\xd7\x3c\x7d\x77\x36\xbd\xb5\xbf\x61\xd9\xf2\x5c\x8e\x2b\x3b\xd1\ +\xb5\x6c\x67\x72\x6c\x2a\x5a\x6c\x5c\xfc\xba\x8c\x5f\xad\xff\x83\ +\x5f\x0b\x80\x5f\x19\x50\xbd\xab\x24\x74\x62\x21\xe3\x24\x03\xf0\ +\xbd\xa7\xdf\xa0\xe8\x58\x02\x01\x5d\xef\x0f\xb6\x31\x1f\xef\x41\ +\x1a\x18\xc3\x3f\xf7\x99\x79\x6a\xdb\x0b\x00\xd8\x9b\x7a\x70\xd8\ +\x0d\x6c\xdc\x76\x85\x2a\xd5\x45\x02\x9a\x7b\x09\x9d\x58\x48\xf6\ +\x0f\x27\x61\xed\x57\xa3\xb7\x99\xf8\xef\x29\x2d\x77\x3d\xb0\x8e\ +\xea\x8a\xad\x3e\xc3\x83\x8f\x8f\x94\x4e\xab\xa9\xb8\x44\x74\xe6\ +\xf2\x81\x8e\xb6\x4e\xa2\x67\x9d\xa5\xf3\xf0\x2e\x9e\x8a\x38\x4e\ +\x8b\x79\x60\x32\x7d\xb9\xbf\x8d\xa9\x39\x6f\x32\xb9\xbb\x95\xd2\ +\xd3\x03\x0f\x27\x5f\x94\xb7\x33\x6e\xc2\x2a\x9e\x2a\x2e\xa4\xba\ +\xa2\x8c\x67\xde\x50\x12\xb3\xe0\x1e\x40\x64\xfb\xbe\xf9\xa8\xbe\ +\xda\x4d\x5b\xcd\xfb\xbc\x57\x67\x62\xda\x94\x68\xbf\xca\xc7\xa7\ +\x7d\x00\xe0\xe8\x2b\x8f\xf2\x6a\x9b\x1e\x71\xc2\x56\x0a\x0a\x76\ +\xf2\xee\xbb\xef\x41\xd2\x3b\x98\xba\x3f\xa1\xbc\xdb\xc8\xe1\xb7\ +\xce\xb0\x25\xa9\x9c\x17\x5a\x75\x48\xa7\xbe\xc6\x91\x99\x4b\xf8\ +\xd3\xba\x14\x2e\x55\xbe\xcc\x4b\xdf\xea\x08\x9b\x67\xe5\xb3\x9d\ +\xcb\xd8\x58\x77\x09\x80\xb8\x2b\x6f\xb1\x76\xf9\xe3\xec\xda\x7f\ +\x0c\x75\xdf\x23\x84\x4f\x4d\x25\x33\x2d\xd2\x6f\x78\x4f\x19\x10\ +\x00\xa6\x4d\x9b\x76\xf0\xc0\x81\x03\x59\xae\xab\xd0\xf5\xb4\x92\ +\x92\x12\xda\xdb\xdb\x59\xbb\x76\xad\x4f\x22\x64\x32\x19\x2a\x95\ +\x8a\xec\xec\xec\x6e\x83\xc1\x90\x06\xa8\x9d\xb1\x06\x33\x50\x5b\ +\x5b\x4b\x4b\x4b\xcb\x0d\x11\xa0\x54\x2a\x89\x8c\xf4\x3d\x03\xce\ +\x0d\xd5\x6b\x09\x19\x0c\x86\xdd\x9b\x36\x6d\x6a\x01\x30\x99\x4c\ +\x77\x28\x14\x8a\x94\xa8\xa8\xa8\x21\xeb\xcf\xdb\xd2\xe6\x6b\xbb\ +\xb4\xb4\x34\x9f\xe1\x9d\xe6\x75\x23\xeb\xea\xea\x7a\xa7\xab\xab\ +\xeb\x1d\x00\xa9\x54\xfa\xf7\x07\x1f\x7c\x30\x25\x3d\x3d\x7d\xf0\ +\x9b\xe5\xb1\x3c\x0b\x8d\xd4\x3b\x1c\x0e\x9f\xbf\xd8\x3a\x7f\xf2\ +\xe4\x49\x02\x03\x03\x6f\x3a\xb4\xd3\x87\x85\x85\xd1\xd4\xd4\x04\ +\xd0\x81\xcb\x4f\xac\xde\x6c\x62\x5c\x5c\x5c\x67\x55\x55\x95\x68\ +\xb5\x5a\xc5\x9b\x6d\x56\xab\x55\xac\xac\xac\x14\x63\x62\x62\x1c\ +\x12\x89\xe4\x79\x20\xcc\x15\xd6\xe3\xbf\x1a\x00\x39\xc0\x8b\xc0\ +\x34\xbc\x2c\xb5\x37\xd8\xae\x00\xfb\x81\x6d\x80\xd2\xf5\x0d\x6f\ +\x02\x00\x22\x81\x14\x40\x76\xfd\xb8\x7c\x36\x3d\xd0\xce\x40\x09\ +\x8d\xed\xd1\xf8\x66\xdb\xff\x00\x0b\x62\x0d\xcf\xef\xd6\x72\x27\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x07\xe2\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x07\x74\x49\x44\x41\x54\x78\xda\xd5\ +\x59\x69\x4c\x54\x57\x18\x35\x21\xe2\x8a\xfc\x20\x10\x11\xca\xa8\ +\xd8\x61\x70\x60\x06\x4a\x91\xaa\x58\x94\x68\x54\xa4\x2e\x35\x26\ +\x60\x63\xa8\x68\x30\x06\xe2\xb8\x47\x62\x0d\xee\x8a\x8e\xe2\x86\ +\xbb\x8e\xbb\xb8\xa2\xe3\x2e\x28\x6e\xe3\x8a\x8e\xbb\xb8\x27\x28\ +\x7f\xc4\xa4\x09\x86\x5f\xfe\x38\xbd\xe7\xbe\xe2\x65\x22\x10\x41\ +\x68\x99\x97\x7c\x2c\x61\xde\x7b\xe7\x7c\xdf\xf9\xce\xfd\xee\xa5\ +\x05\x80\x16\x8d\x75\xf5\x8a\x8a\xf2\x16\x61\x13\x51\x24\x22\xa5\ +\x45\x13\x5f\x00\xe4\x97\xc6\x02\x6f\xee\x63\x36\xbf\x1d\xd3\xa6\ +\x0d\x2c\x9e\x9e\x18\xa0\xd7\xe3\x07\x7f\x7f\x9d\x3b\x10\x20\x78\ +\x0b\x01\x67\xb4\x6d\x0b\xc7\xd0\xa1\xb0\xf7\xe8\x81\xe1\xfe\xfe\ +\xe8\xa6\xd3\xa5\x35\x5f\x02\x4a\x32\xf9\x04\x9b\xd9\xa1\x03\x4a\ +\x4f\x9e\x04\x4e\x9f\x76\x03\x02\x4a\x32\xce\x3f\xda\xb7\x47\x6e\ +\x74\x34\x2a\x5f\xbf\x06\x00\xf7\x20\xc0\x06\x8d\x37\x18\xfe\xfe\ +\x53\x68\xbd\x30\x3d\x1d\xa8\xa8\x00\x3e\x7f\xd6\x42\x54\xa1\x99\ +\x12\x50\x2e\xf3\x5b\x60\x20\x2c\xad\x5a\xa1\x74\xff\x7e\xe0\xd3\ +\x27\xd7\x38\x76\xac\x59\x12\x20\x78\x1d\x25\x93\xe4\xed\x0d\xab\ +\x68\xd8\xca\x9b\x37\x81\x8f\x1f\x81\xf2\x72\x15\x1f\x3e\x00\x87\ +\x0f\x7f\x21\x10\xd1\xbd\xfb\x26\xde\xf7\x7f\x13\x20\xf8\x61\x94\ +\x0c\x2d\xd2\x9e\x9c\x0c\xbc\x79\x03\x94\x95\x01\xef\xdf\x6b\xf1\ +\xee\x9d\x16\xa5\xa5\x40\x5e\x9e\x24\x40\x79\xfd\xee\xe7\x87\x04\ +\x9d\x0e\x24\x2e\x9e\x91\x45\x32\xff\x35\x01\x82\xcf\x21\x88\x8c\ +\x76\xed\x50\xb2\x6a\x95\x06\x9e\x0d\xcb\x78\xf5\x4a\x8b\x97\x2f\ +\x81\x17\x2f\xb4\x78\xfe\x1c\x28\x29\x41\x69\x7e\x3e\x1c\x8b\x16\ +\xc1\x36\x68\x10\x2c\x5e\x5e\x60\xe5\x06\x06\x07\x83\xae\x25\x22\ +\xae\x89\x09\x28\xc9\x8c\xf2\xf1\xc1\xfc\xa0\x20\x94\x9f\x38\x21\ +\x81\xe1\xd9\x33\xe0\xe9\x53\x2d\x9e\x3c\x01\x1e\x3f\x06\x1e\x3d\ +\x02\x1e\x3e\xd4\xe2\xc1\x03\xe0\xfe\x7d\xc0\xe9\x04\xee\xdd\xd3\ +\xe2\xee\x5d\x38\x17\x2e\x84\xd5\x68\x64\x65\x64\x55\xd8\x4b\x7c\ +\x47\x93\x10\x60\x86\xe2\xc2\xc2\xa4\x64\xf2\x12\x12\x80\x5b\xb7\ +\x6a\x04\x47\x60\x28\x2e\x06\xee\xdc\x01\x6e\xdf\xd6\x3e\xc7\xde\ +\xb8\x71\x03\xb8\x7e\x5d\x0b\x87\x03\xb8\x76\x0d\xb8\x7a\x15\xb8\ +\x72\x45\x56\xd1\xda\xb5\x2b\x68\xbf\x94\x25\x1d\xad\x51\x09\x50\ +\xab\x2c\x75\x86\x78\x81\x73\xce\x9c\xda\x40\xd6\x08\x0e\x97\x2f\ +\x03\x97\x2e\x01\x45\x45\xc0\xc5\x8b\xc0\x85\x0b\x40\x61\x21\x70\ +\xfe\xbc\x16\x67\xcf\x02\x67\xce\xc8\xb5\xc2\x39\x71\x22\x2c\x2d\ +\x5b\x82\x8e\xc6\x6a\x7c\x1f\x01\x65\x91\x45\x6c\x3c\x4a\xa6\x74\ +\xeb\xd6\x9a\x80\xd6\x0c\xb2\xa0\x40\x03\x78\xee\x9c\x02\x79\xea\ +\x94\x5c\x13\x40\xe9\xd9\xed\xd2\x5e\x21\xfa\x02\x47\x8f\x02\x47\ +\x8e\x00\x87\x0e\xa1\x72\xdd\x3a\x58\x85\x5b\x51\xa6\x94\x2b\x31\ +\x34\x88\x00\xb5\x18\x6b\x36\x4b\xc9\xd8\xfa\xf4\x41\xe5\xf1\xe3\ +\x35\x81\x65\x36\x6b\x07\x4a\x90\xbc\x8f\x40\x35\x90\xd2\x52\x71\ +\xf0\x20\x70\xe0\x80\x74\x27\xec\xdb\x07\xec\xdd\x0b\xec\xde\x0d\ +\xec\xda\x05\xec\xdc\x09\x6c\xde\x0c\x9b\xe8\x0d\xbe\x5b\x91\xa8\ +\x3f\x01\x0b\x5d\xa2\xd0\x62\xd1\x40\xec\xd9\x43\x70\x5a\x66\x5d\ +\xc1\x32\xa3\x0a\xac\x96\x51\x02\x65\x46\xab\x03\xe5\x33\x14\xd0\ +\x1d\x3b\x80\xed\xdb\x81\x6d\xdb\x80\x2d\x5b\x24\x68\x6c\xdc\x08\ +\x6c\xd8\x00\xac\x5f\x0f\xe4\xe4\xc0\x11\x1b\xeb\x42\xa2\xbe\x04\ +\xe2\xe8\x0c\x16\xa1\xfb\x92\x4d\x9b\x98\x79\xbe\x80\x2f\xd4\xc0\ +\xa9\xcc\xba\x66\x95\x2b\xb1\x06\x56\x65\xd4\x66\xd3\xee\xa3\x04\ +\xab\x03\xcd\xcd\x05\xd6\xae\x05\xd6\xac\x01\x68\xc7\x2b\x57\x02\ +\x2b\x56\x00\xcb\x97\x03\xd9\xd9\x80\x70\xa9\x3c\xa3\x51\x36\x77\ +\x4c\x64\xe4\x29\x81\xcf\xa3\xbe\x3d\x90\xd2\xcf\x60\xa8\x90\xf3\ +\xcd\xd4\xa9\xd4\xbf\x06\xc8\x6a\xd5\x5e\x46\x62\xfc\x5d\x49\x40\ +\x65\x56\x03\xcb\xcf\xb8\x82\x5d\xbd\x5a\x81\xe5\x73\x96\x2d\x03\ +\x96\x2e\x05\x16\x2f\x06\xc4\x1a\x81\x05\x0b\x80\x79\xf3\x80\xac\ +\x2c\x80\x86\x21\xde\x6b\xeb\xd4\x09\xec\xc3\x68\xb3\x39\xbb\xde\ +\x2e\x24\x96\xfe\x9e\xbd\xc3\xc3\x9f\xc8\x09\x33\x2e\x0e\x95\xd4\ +\x3e\x25\x43\x00\x4b\x96\xf0\xa5\xcc\x14\x7f\x66\xf6\x08\x4e\x03\ +\x29\x9a\x51\x65\x56\x81\x65\x66\xf9\x59\xde\xf3\x15\xd8\xd9\xb3\ +\x81\x19\x33\x80\x49\x93\x80\x71\xe3\x00\xae\xf0\x62\x2f\x51\x19\ +\x1f\x8f\xf9\xe2\xfd\x74\x42\x81\x27\xb1\xde\x36\x1a\xda\xad\x9b\ +\x1f\x4b\x28\x67\x7c\x11\xa5\xcc\x38\x1b\x9a\x20\x49\x60\xfe\x7c\ +\x60\xee\x5c\x05\x62\xd6\x2c\x60\xe6\x4c\x60\xda\x34\xfe\xac\x81\ +\x62\x05\x27\x4f\xd6\xc0\x65\x64\x00\xc2\x32\x31\x61\x02\x30\x7e\ +\x3c\x90\x9a\xaa\x81\x1d\x35\x0a\x18\x39\x12\x18\x3e\x5c\x02\xc7\ +\x90\x21\xc0\xe0\xc1\xc0\xc0\x81\x28\x8d\x89\xc1\x38\x0f\x0f\xf4\ +\x36\x99\xca\x04\xa4\x36\x0d\x59\x89\x3d\xa2\x4d\xa6\x4c\xee\xb2\ +\xf8\x20\x07\xb3\x56\x5c\xcc\x06\xad\x9b\xc0\x94\x29\xb5\x83\x4e\ +\x49\x01\xc6\x8c\x01\x46\x8f\x06\x92\x92\xea\x24\x80\xfe\xfd\x61\ +\xef\xd2\x45\xda\x6b\x54\x78\x78\x4e\x83\x67\xa1\x70\x83\x21\x96\ +\x59\xa0\xa4\x6c\x89\x89\x94\x14\x5d\x89\xd2\xa8\x8b\x00\x6d\x95\ +\x84\x55\xd0\x04\xd8\x27\xd4\xfe\xd8\xb1\xdf\x44\xa0\x52\xd8\x79\ +\x66\xeb\xd6\x60\x5f\x76\xf4\xf5\xd5\x37\x80\x80\x92\xd4\x2f\x91\ +\x91\x0e\xb9\xc0\xe9\xf5\x94\x14\x47\x05\xda\x5f\xad\x04\x4a\x84\ +\x8c\xec\x69\x69\x55\x41\x67\x23\x79\x45\x88\xee\xc5\xcf\xd7\x41\ +\x00\xfd\xfa\xc1\x11\x12\x22\x5d\x29\xd2\x68\xcc\xa5\x2a\xbe\x67\ +\x3f\xe0\x41\x57\x90\x23\x86\xb7\xb7\xab\xa4\x58\x09\x57\x02\x1c\ +\xa7\x59\x7e\x39\x26\xb0\x97\xb8\xc6\x08\x77\x63\x02\xe8\x70\x8a\ +\x0c\x17\x3b\xca\xac\x16\x02\x10\x46\x92\xd9\xaa\x95\xaa\xc2\xf7\ +\xee\xc8\x7e\x0a\x0b\x1b\x1c\x67\x34\x56\xc8\x21\x8f\x8d\x48\x10\ +\x85\x85\x94\xc6\x57\x04\x08\xdc\x64\x30\x58\xb9\x2b\xe3\x77\xd1\ +\x53\x45\x04\x22\x2a\xc9\xbe\xa2\x24\x15\x11\x1a\x44\x2d\x04\x1c\ +\x82\x34\x93\x61\x0e\x0d\xcd\x66\x22\xbf\x7b\x4f\x2c\x00\xf9\xc7\ +\x44\x44\xdc\xe4\x43\x99\xd1\x72\xbb\x9d\x20\xb8\x0e\x28\x02\x5f\ +\x6f\x29\xdb\x8b\xf0\x11\xa1\x0b\x0b\x09\xf9\xab\xa7\xd1\x58\xcc\ +\xbf\xb3\x9a\xac\x08\xef\x97\x76\x3d\x62\xc4\x57\x04\x2a\x7b\xf6\ +\x84\x45\x39\x92\x4f\x63\x9d\x4a\x78\xf4\x30\x9b\x37\x71\xf5\x26\ +\x08\x27\x7d\x9f\x20\x38\x6a\x4c\x9f\xfe\x2d\x7b\x62\xef\xf0\x90\ +\x90\xb4\x5f\xbb\x77\x2f\x73\x59\x73\x0a\x0a\xe8\x56\x2e\x04\x20\ +\x9a\xd9\xa6\xed\xec\xd0\x35\x28\x68\x58\xa3\x9e\x0b\x09\x8b\x4b\ +\xa6\x2c\x28\x29\x36\x2b\x49\x70\x7a\xb5\x8b\x5d\x98\x22\x50\x77\ +\x35\x45\x6f\x1d\x66\xaf\xb0\x9a\x24\x21\xd7\x9c\xc4\x44\x17\x02\ +\x4e\x83\x41\xf6\x91\x90\xf0\x5e\x71\x9b\x67\xa3\x9e\xcc\x09\x49\ +\x84\x72\xf5\xa6\xa4\xac\x51\x51\x04\x41\x32\xb5\x11\xa8\x75\xcd\ +\x11\x19\x56\x24\x28\xcb\x84\x84\x2f\x04\xd0\xab\x57\x75\x19\xf9\ +\x35\xc5\xd9\xa8\x67\x8f\x88\x88\x3c\x66\x92\x03\x21\x89\x10\x90\ +\x2e\x20\x20\xf9\x5b\x1f\x20\xac\x3a\xd5\x85\x04\x67\x2a\x45\x00\ +\x36\x5f\x5f\xf9\xcc\x80\x8e\x1d\xe3\x1b\x99\x80\xba\x7e\x36\x99\ +\x26\x52\x52\x72\x97\x15\x1e\x5e\x42\x95\xd5\xf7\x8c\x95\x95\x63\ +\x4f\x48\x39\xa6\xa7\x7f\x21\xe0\x10\x16\xce\x2a\x1b\xf5\xfa\x2c\ +\x56\xad\x49\x08\xf0\xe2\x89\xf4\x8f\x9d\x3b\xa7\xfe\x0b\x5e\xd7\ +\x80\x53\x3f\x5b\x52\x95\x3b\xb1\x1f\x06\x0c\x90\x04\xca\x23\x22\ +\xb8\x5f\xe0\x68\x61\xa7\x09\x34\x11\x01\xa5\x6b\x0e\x61\x0d\x3d\ +\x30\xe6\x31\x3d\xdd\x8d\x16\xcd\xa9\x97\x04\x10\x13\xc3\x3e\xa8\ +\xaa\x6c\xa0\x0b\x81\x66\x76\x55\x6d\xb0\x94\x94\x84\x2b\x91\x80\ +\xd5\xcb\x8b\xff\x77\x20\x60\x7d\xf3\x25\xa0\x48\xe4\x53\x32\x9c\ +\xa3\xb8\x41\x22\x01\x7b\x40\x00\xd8\x5f\x34\x07\x77\x20\xa0\x63\ +\xb6\xe9\x68\xf2\xc8\xa6\x6f\x5f\x38\xc4\x88\xcd\x26\x37\x04\x07\ +\x4f\xa5\xf3\x35\x63\x02\xaa\xa1\x59\x05\x4e\xc0\x9c\x7a\x4b\x0c\ +\x06\x4e\xa7\xf2\xd0\x98\xe3\x89\x3b\x10\x30\xb3\x17\x38\xf8\xf1\ +\x50\xa1\xdc\x64\xaa\x4e\xc0\xaf\x79\x13\x50\x24\x9c\x9c\x5e\xe5\ +\xe2\x26\x46\x94\x34\x01\x59\xcc\x61\xc5\xe2\x4f\xfe\xee\x42\x20\ +\x85\x0b\x18\xf7\x20\xdc\x77\x54\x23\x10\xe8\x2e\x04\xbc\xb9\x91\ +\xa2\xa5\xf2\x0c\x2a\xd3\xd3\xb3\x8a\x80\xde\x0d\x08\x28\x4b\xad\ +\x92\x11\xd7\x02\x8e\xe1\xee\x46\xc0\x42\x19\x71\xdf\x41\x5b\xa5\ +\xbd\xba\x1b\x01\x1d\xdd\x88\xdb\x58\xb7\x24\xc0\xab\xaf\xd1\xf8\ +\x96\xa3\x76\x35\x02\x61\x6e\x45\x80\x7d\xc0\x93\x0d\xee\x37\x38\ +\xb2\x73\xda\x75\x37\x02\x66\xfe\xdb\x2b\x3e\x34\x54\xee\x09\xdc\ +\xab\x02\xea\x6a\x43\xe0\x22\xcc\x22\x7c\x88\xfd\x1f\xf9\x92\x41\ +\x48\x3f\x71\x1a\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x04\x4e\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd2\x01\x07\x0b\x01\x15\x4b\x06\x3c\xc6\x00\x00\x03\xcb\x49\x44\ +\x41\x54\x78\xda\xb5\x96\xcf\x4b\x1c\x49\x14\xc7\x3f\x5d\xd3\x3d\ +\x62\xa2\xf8\x63\x8c\x60\x12\x33\x92\xbb\xae\x88\x17\x5b\x50\xc1\ +\x40\x18\x08\xe3\x06\x57\x84\xe0\x68\xbc\xcd\x25\x07\x73\x8a\xf9\ +\x07\x3c\xe9\x7f\x21\xa8\x43\x2e\xc1\x04\x8c\x27\x41\x4d\x34\xd9\ +\x55\x83\x10\x44\x44\x57\x34\x1e\x46\x3c\x98\x66\x7a\xba\xbb\xaa\ +\x7b\x0f\x71\x1a\x25\x8e\x2e\x8b\x5b\xf0\xa0\xba\xaa\x78\x9f\xf7\ +\xbe\xf5\xba\xaa\xe0\x7f\x6e\x5a\xb1\x89\x44\x22\x91\xcc\x66\xb3\ +\x7d\x8e\xe3\x98\x52\xca\x07\x4a\x29\x80\x7d\x60\xb9\xa2\xa2\x22\ +\xf3\xf9\xf3\xe7\xb7\xff\x09\x90\x4a\xa5\x5a\x36\x36\x36\x26\x84\ +\x10\x9d\xdd\xdd\xdd\x34\x35\x35\x11\x8b\xc5\xf0\x7d\x9f\x6c\x36\ +\xcb\xea\xea\x2a\x73\x73\x73\x48\x29\x17\xee\xdd\xbb\xf7\x72\x65\ +\x65\xe5\xaf\x7f\x0d\xe8\xea\xea\x4a\x1e\x1d\x1d\xbd\x31\x4d\x53\ +\xef\xed\xed\xa5\xb6\xb6\x16\xc3\x30\xd0\x34\x0d\xdf\xf7\xf1\x3c\ +\x8f\x7c\x3e\xcf\xf7\xef\xdf\x99\x9c\x9c\xe4\xe3\xc7\x8f\xb2\xb2\ +\xb2\xb2\x77\x67\x67\xa7\x68\x36\x91\x42\xa7\xa7\xa7\xa7\x65\x7b\ +\x7b\x7b\xfe\xe9\xd3\xa7\xfa\xd0\xd0\x10\x35\x35\x35\x94\x97\x97\ +\x53\x5d\x5d\x4d\x4d\x4d\x0d\x77\xee\xdc\x21\x16\x8b\x51\x56\x56\ +\x46\x59\x59\x19\x8d\x8d\x8d\xd8\xb6\x2d\xd6\xd7\xd7\xfb\xee\xdf\ +\xbf\xff\xee\xe4\xe4\xe4\xe8\x32\x80\x5e\xe8\x7c\xfd\xfa\x75\xc2\ +\x34\x4d\xbd\xbf\xbf\x9f\xd7\xaf\x5f\x63\x18\x06\x86\x61\x20\x84\ +\x60\x7a\x7a\x9a\x20\x08\xe8\xef\xef\x27\x08\x02\x82\x20\xc0\xf3\ +\x3c\x5e\xbd\x7a\xc5\xe1\xe1\xa1\xfe\xe5\xcb\x97\x09\xa0\xeb\x32\ +\x80\x00\x68\x6e\x6e\x4e\xfa\xbe\xdf\x39\x38\x38\xc8\xad\x5b\xb7\ +\x88\x46\xa3\x94\x94\x94\x20\x84\x40\xd3\x34\x84\x10\x61\x5f\xd3\ +\x7e\xaa\x1a\x89\x44\x78\xf8\xf0\x21\xe9\x74\x9a\x20\x08\x3a\xab\ +\xab\xab\x93\x45\x01\xd9\x6c\xb6\x2f\x99\x4c\x52\x57\x57\xc7\xed\ +\xdb\xb7\xd1\xf5\x9f\x89\x65\x32\x19\x32\x99\x4c\xe8\x78\x66\x66\ +\x86\xa9\xa9\xa9\xf0\x5b\x08\x41\x73\x73\x33\x89\x44\x02\xdb\xb6\ +\xfb\x8a\x02\x1c\xc7\x31\xdb\xdb\xdb\x89\x46\xa3\x94\x97\x97\x87\ +\x51\x06\x41\x70\x61\x71\x41\x9e\x0b\x55\xa2\x69\x3c\x7a\xf4\x08\ +\xa5\x94\x59\xb4\x8a\xaa\xaa\xaa\xbc\xd9\xd9\x59\xfd\xee\xdd\xbb\ +\x54\x56\x56\x12\x8d\x46\x89\x44\x22\x44\x22\x11\x84\x10\xa1\x73\ +\xdf\xf7\x51\x4a\xe1\x79\x5e\x58\x51\xb9\x5c\x8e\x83\x83\x03\x1e\ +\x3f\x7e\x2c\x5d\xd7\x35\x2e\xdd\x64\xa5\x14\x9a\xa6\xa1\xeb\x3a\ +\x4a\x29\xce\x7e\xaa\x5f\xb2\x28\xcc\x9d\x07\x49\x29\xf1\x3c\xef\ +\x97\xcc\x2e\x48\xa4\x94\xda\xdf\xdd\xdd\x0d\x6b\x7d\x60\x60\x80\ +\x67\xcf\x9e\x21\xa5\x0c\xed\xbc\xb3\x54\x2a\xc5\xf0\xf0\x30\x9e\ +\xe7\xe1\xba\x2e\x5b\x5b\x5b\x28\xa5\xf6\x8b\x02\x82\x20\x58\xfe\ +\xf0\xe1\x03\xf9\x7c\x1e\xd7\x75\xc3\x28\x5d\xd7\xc5\x71\x9c\xd0\ +\x5c\xd7\xc5\x75\xdd\x30\x83\xc2\xf8\xdc\xdc\x1c\xbe\xef\x2f\x17\ +\x05\x08\x21\x32\x99\x4c\x86\xed\xed\x6d\x6c\xdb\x0e\xa5\x48\xa5\ +\x52\x0c\x0c\x0c\x60\xdb\x36\x8e\xe3\x90\x4a\xa5\x78\xfe\xfc\x39\ +\x52\x4a\x94\x52\xd8\xb6\xcd\xb7\x6f\xdf\x78\xff\xfe\x3d\x40\xa6\ +\x28\xc0\xb2\xac\x0d\x29\xe5\xc2\xd8\xd8\x18\x96\x65\x5d\xd0\x57\ +\x29\x85\x65\x59\xe1\x78\xc1\xa4\x94\x9c\x9e\x9e\x32\x3e\x3e\x8e\ +\xef\xfb\x0b\xc0\xdb\x2b\xcf\x22\xc3\x30\x5a\x80\x95\x27\x4f\x9e\ +\xe8\x23\x23\x23\x18\x86\x81\xae\xeb\x61\xcd\xfb\xbe\x1f\x6e\xb4\ +\xeb\xba\xe4\x72\x39\xc6\xc7\xc7\x99\x9f\x9f\x97\xc0\xef\xc0\xbb\ +\x2b\xcf\x22\xdf\xf7\xa3\x9a\xa6\x2d\x6c\x6d\x6d\xf5\xad\xad\xad\ +\x89\xfa\xfa\x7a\x4a\x4b\x4b\x71\x5d\x37\x94\xc8\x71\x1c\x2c\xcb\ +\x62\x73\x73\x93\xb1\xb1\x31\x3e\x7d\xfa\x24\x81\x1c\xf0\x07\x70\ +\x02\xfc\x79\xdd\x71\x1d\x07\x62\x9a\xa6\x4d\x08\x21\x3a\x3b\x3a\ +\x3a\x68\x6b\x6b\xa3\xa1\xa1\x01\x80\x9d\x9d\x1d\x96\x96\x96\x58\ +\x5c\x5c\x04\x58\x00\x5e\x02\x6f\x80\xaa\xb3\x60\x8f\x81\x17\xc0\ +\xec\x75\x17\x4e\x1c\xf8\x0d\xe8\x03\x4c\xe0\xc1\xd9\xf8\x3e\xb0\ +\x7c\xb6\xa1\xc7\xc0\x21\x40\x43\x43\xc3\x26\xa0\xed\xed\xed\x09\ +\xc0\x03\x12\x67\xeb\xae\x6d\xf1\x2b\xec\xfc\x9a\xe3\x74\x3a\xed\ +\xb5\xb6\xb6\xda\xc0\xe9\x99\x6c\xf1\x9b\xbc\x7a\xe3\xc0\x8f\xd1\ +\xd1\x51\x65\x9a\xa6\x04\x7e\x00\xd6\x4d\x42\x0a\x59\xe5\xd3\xe9\ +\xb4\x17\x8f\xc7\xbd\x9b\x06\x9c\x87\x1c\x01\x0a\xe8\x04\xe2\xda\ +\x0d\xbf\x52\xce\x47\xfc\x37\xc0\x3f\x72\x9e\x0b\x66\xc1\xc5\x97\ +\x96\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x04\x32\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd2\x01\x07\x0b\x05\x06\xab\xd4\xb8\x1c\x00\x00\x03\xaf\x49\x44\ +\x41\x54\x78\xda\xb5\x96\xcd\x4b\x63\x57\x14\xc0\x7f\xf7\x46\x13\ +\x34\x89\x93\x9a\x28\x88\x1f\x09\x8e\x8b\x6e\x9c\xea\xe0\xc6\x27\ +\xe8\x80\x6e\x82\x10\x19\xac\x4b\x75\xd1\x59\x64\xd3\x2e\x66\xe7\ +\x6a\x96\xb3\x18\x98\xbf\xa1\x9b\xa1\x8b\x30\x2e\x4a\x2b\x68\x57\ +\x82\xdf\xd2\x8e\x16\x41\x34\x7e\x4c\x05\xbf\x88\x08\xad\x21\xef\ +\xf3\xbe\xd7\x8d\x79\x38\x1d\xa3\xa5\xd8\x0b\x07\x0e\xe7\x1d\xce\ +\xef\x9e\x73\x38\xe7\x3e\xf8\x9f\x8f\xa8\xf4\x21\x9d\x4e\x67\x0a\ +\x85\xc2\x98\x69\x9a\x9a\xe3\x38\x6d\x4a\x29\x80\x23\x60\xe9\xd1\ +\xa3\x47\xb9\xf5\xf5\xf5\x1f\xff\x13\x60\x7c\x7c\xfc\xe9\xe6\xe6\ +\xe6\x5b\x29\xe5\xc0\xe0\xe0\x20\x4f\x9e\x3c\x21\x1e\x8f\xe3\xba\ +\x2e\x85\x42\x81\xb5\xb5\x35\x66\x67\x67\x71\x1c\x67\xbe\xb9\xb9\ +\xf9\xe5\xea\xea\xea\x6f\xff\x1a\xf0\xec\xd9\xb3\xcc\xe9\xe9\xe9\ +\x7b\x4d\xd3\xaa\x46\x47\x47\x69\x6c\x6c\xa4\xba\xba\x1a\x21\x04\ +\xae\xeb\x62\xdb\x36\x86\x61\x70\x72\x72\xc2\xbb\x77\xef\x58\x5e\ +\x5e\x76\x62\xb1\xd8\xe8\xfe\xfe\x7e\xc5\x6c\x02\x65\x65\x64\x64\ +\xe4\x69\x3e\x9f\xff\xe5\xf9\xf3\xe7\x55\x93\x93\x93\x24\x12\x09\ +\xa2\xd1\x28\xf5\xf5\xf5\x24\x12\x09\x1a\x1a\x1a\x88\xc7\xe3\x44\ +\x22\x11\x22\x91\x08\x9d\x9d\x9d\xe8\xba\x2e\x37\x36\x36\xc6\x5a\ +\x5a\x5a\x7e\xbe\xbc\xbc\x3c\xbd\x13\x60\x59\xd6\x0f\x9a\xa6\xb5\ +\xbf\x78\xf1\x82\x48\x24\x42\x2c\x16\xa3\xa1\xa1\x81\x48\x24\x42\ +\x28\x14\x22\x10\x08\x10\x08\x04\x08\x85\x42\x44\xa3\x51\xc2\xe1\ +\x30\x8f\x1f\x3f\x66\x77\x77\x57\xee\xed\xed\x7d\x69\x9a\xe6\xf7\ +\xb7\x01\x24\x40\x57\x57\x57\xc6\x75\xdd\x81\x89\x89\x09\x6a\x6b\ +\x6b\x89\xc5\x62\x24\x12\x09\x82\xc1\x20\x81\x40\x00\x29\x25\x52\ +\x4a\x1f\x22\xa5\x24\x1c\x0e\xd3\xde\xde\x4e\x36\x9b\xc5\xf3\xbc\ +\x81\xfa\xfa\xfa\x4c\x45\x40\xa1\x50\x18\xcb\x64\x32\x34\x35\x35\ +\x11\x0e\x87\xa9\xab\xab\x43\x08\x81\x94\x12\x21\xc4\x67\x72\x13\ +\xda\xd5\xd5\x45\x3a\x9d\x46\xd7\xf5\xb1\x8a\x00\xd3\x34\xb5\xbe\ +\xbe\x3e\x82\xc1\x20\xd1\x68\x14\x21\x04\x9e\xe7\xe1\x79\xde\x27\ +\xce\x65\xdb\x4d\xbb\x10\x82\xa1\xa1\x21\x94\x52\xda\x6d\x80\x2a\ +\x00\xa5\x54\x5b\x6b\x6b\x2b\xa1\x50\xc8\x0f\x3e\x3c\x3c\xec\x07\ +\xb8\x0d\x90\xcb\xe5\x7c\xbd\xa3\xa3\x03\xa0\xed\x2e\x00\x42\x08\ +\xaa\xaa\xaa\x50\x4a\xa1\x94\xc2\xf3\x3c\x1f\x76\x1b\x40\x29\x85\ +\x6d\xdb\x38\x8e\x83\x6d\xdb\x9f\x65\xfb\x4f\xc0\xd1\xe1\xe1\x61\ +\x7b\x73\x73\x33\xb6\x6d\x23\x84\x60\x7a\x7a\xda\xaf\x75\x39\xb8\ +\xeb\xba\x38\x8e\x83\x52\x0a\xc3\x30\xb0\x6d\x1b\xcb\xb2\xd8\xd9\ +\xd9\x41\x29\x75\x54\xb1\x07\x9e\xe7\x2d\xcd\xcd\xcd\x61\x18\x06\ +\x96\x65\x61\x9a\x26\x96\x65\xf9\x7a\x59\xca\x36\xc3\x30\xd0\x75\ +\xdd\xb7\xcf\xce\xce\xe2\xba\xee\x52\x45\x80\x94\x32\x97\xcb\xe5\ +\xc8\xe7\xf3\xe8\xba\x4e\xa9\x54\x42\xd7\xf5\x4f\xc4\x34\x4d\x4a\ +\xa5\x92\x2f\xa6\x69\xa2\xeb\x3a\xdb\xdb\xdb\xcc\xcc\xcc\x00\xe4\ +\x2a\x0e\x9a\x65\x59\x86\x10\xa2\xfb\xe0\xe0\x20\x35\x38\x38\x88\ +\xeb\xba\x58\x96\xe5\xaf\x07\xcb\xb2\xb0\x6d\xdb\xcf\xa2\x0c\x2b\ +\x16\x8b\xbc\x7a\xf5\x8a\xb3\xb3\xb3\x79\x60\xea\xae\x49\xfe\x53\ +\x4a\xf9\xfb\xf1\xf1\xf1\x37\xe7\xe7\xe7\xb2\xbb\xbb\xdb\x6f\x5e\ +\x39\xa8\xae\xeb\x7e\x79\x4a\xa5\x12\x57\x57\x57\xbc\x79\xf3\x86\ +\xe5\xe5\x65\x07\xf8\x0e\xc8\xdf\xb9\x2a\x5c\xd7\x0d\x0a\x21\xe6\ +\x77\x76\x76\xc6\x3e\x7c\xf8\x20\x5b\x5b\x5b\xa9\xa9\xa9\xf1\x83\ +\x97\xeb\x5d\x2c\x16\xd9\xda\xda\xe2\xf5\xeb\xd7\xac\xac\xac\x38\ +\x40\x09\xf8\x1a\xb8\x04\x7e\xbd\x6f\x5d\x27\x81\xb8\x10\xe2\xad\ +\x94\x72\xa0\xbf\xbf\x9f\xde\xde\x5e\x52\xa9\x14\x00\xfb\xfb\xfb\ +\x2c\x2e\x2e\xb2\xb0\xb0\x00\x30\x0f\xbc\x04\xde\x03\x5f\x5c\x5f\ +\xf6\x02\xf8\x16\xf8\xe9\xbe\x07\x27\x09\x7c\x05\x8c\x01\xda\x8d\ +\x21\x3a\x02\x96\xae\x1b\x7a\x01\x1c\x03\xa4\x52\xa9\x2d\x40\x7c\ +\xfc\xf8\x51\x02\x36\x90\xbe\xf6\xbb\xf7\x24\xef\x90\x9b\x3e\x17\ +\xd9\x6c\xd6\xee\xe9\xe9\xd1\x81\xbf\xae\xcb\x96\x7c\xc8\xa7\x37\ +\x09\x5c\x4d\x4d\x4d\x29\x4d\xd3\x1c\xe0\x0a\x28\x3e\x24\xa4\x9c\ +\x95\x91\xcd\x66\xed\x64\x32\x69\x3f\x34\xe0\x26\xe4\x14\x50\xc0\ +\x00\x90\x14\x0f\xfc\x97\x72\xf3\xc6\x7f\x00\xfc\x0d\x91\xe4\x07\ +\x58\x63\x81\xe3\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ +\x00\x00\x0c\x27\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x0b\xb9\x49\x44\x41\x54\x78\xda\xed\ +\x9a\x69\x6c\x55\x75\x1a\xc6\xdf\xee\xfb\x42\xb9\x2d\x16\x68\xb1\ +\x55\xa9\xa5\x55\x06\x64\x71\xc0\x01\x15\x41\x59\x15\x70\x45\x27\ +\x63\x70\xe2\x18\xcd\x64\xf8\x30\x93\x99\x2f\x66\x26\x99\x0f\x33\ +\xc9\x4c\x32\x93\xcc\x17\x27\x31\x66\x12\x0c\x6a\x94\x2d\x58\xf6\ +\x22\x4b\x51\xd9\x97\x0e\xa5\x28\xfb\xda\xd2\x52\x0a\x5d\x6e\xdb\ +\xbb\x74\x7e\xcf\x7f\xee\xb9\xb9\x69\x30\xd3\x6b\xd0\xc4\x0c\x37\ +\x79\x73\xee\x39\xf7\x9c\xff\xff\x79\xde\xf7\x79\x97\x53\x48\xe8\ +\xef\xef\xb7\x1f\xf2\x27\x11\xbb\x43\xe0\x0e\x81\xff\x67\x02\xc9\ +\xb7\xba\x38\x67\xce\x9c\x41\x2f\x40\x11\xf0\x6c\x08\x36\x2e\x1c\ +\x0e\x57\x61\x95\x7c\x2f\x0f\x87\x43\x39\xe1\x70\xbf\x0a\x85\x1f\ +\x3b\x8b\x1d\x8f\xd8\x01\xee\x69\xc2\x2c\x14\x0a\xe9\x59\x77\xf4\ +\xce\xbd\xef\x03\x0b\xcc\xe9\xd3\xa7\x07\x41\x20\xfe\xcf\x78\x68\ +\x3c\x17\x0a\x05\x97\x04\x02\x81\xd2\x84\x84\x44\x36\x4e\xb0\x84\ +\x84\x04\x4b\x4e\x4e\x37\x7d\xfa\xfa\x7a\x8d\xdf\x1d\xb0\x60\xb0\ +\xcf\x12\x13\x13\x5b\xb9\x6f\x15\x3f\x7d\xc4\x7d\x3b\x00\x1a\xba\ +\x0d\x11\x88\xfb\x33\x81\x8d\xdf\x06\xdc\x93\xa1\x50\x38\x2d\x3b\ +\x3b\xdf\xaa\xab\xab\xec\xee\xbb\xcb\xb0\x51\x36\x74\x68\x81\xa5\ +\xa4\xa4\x38\x4f\xf6\xf6\xf6\xd9\xb5\x6b\xd7\xec\xec\xd9\x73\x78\ +\xf1\x94\x9d\x3c\xd9\xe0\x6b\x6e\xbe\xf4\x7a\x28\x14\x78\x3d\x39\ +\x39\xa5\x8e\xb5\xfe\x84\xad\xff\xbe\x08\xc8\xad\xbf\x0b\x06\x03\ +\xbf\x0a\x85\xfa\xf3\x4b\x4a\x2a\x6c\xca\x94\xa9\x36\x69\xd2\x44\ +\x80\x97\x58\x76\x76\x06\x1e\x4e\x20\x0a\x61\xbc\x2d\x39\x84\x3d\ +\x23\x12\x41\xeb\xec\xf4\xdb\x85\x0b\x97\xed\xf0\xe1\x43\xf6\xc5\ +\x17\x75\xd6\xd8\x78\xf8\x91\xde\x5e\xff\x5a\x88\xfc\x8b\x75\xdf\ +\xc6\x9a\xe2\x01\x23\x7d\xc6\x93\x03\x23\xb9\xff\x9d\x40\xa0\x6f\ +\x6e\x6e\xae\xcf\x66\xcc\x98\x6b\x0b\x16\xcc\xb1\x92\x12\x9f\xe9\ +\x83\xde\x23\xa0\x43\x3a\x0e\xf8\x1e\x56\x34\x94\x35\x10\x94\xcc\ +\x12\xad\xb5\xb5\xdd\x3e\xfb\x6c\xbb\xd5\xd4\xac\x84\xd4\x49\x4b\ +\x4a\x4a\xae\xe7\x86\x9f\x05\x83\xc1\x43\x83\xc8\x81\xb8\x09\xdc\ +\xc3\xbd\xab\x91\xcc\x03\x15\x15\xe3\x6d\xe9\xd2\xa5\x36\x61\xc2\ +\x18\xef\xb7\x48\x02\x3a\xaf\x7f\x23\x89\x40\xc0\xfb\x2e\x70\x61\ +\x01\x96\x01\xec\xbc\x7d\xf4\xd1\x0a\xab\xab\xdb\x28\x82\x4d\xc0\ +\xfa\x29\xeb\x6d\xbd\x9d\x49\x5c\xcc\x86\x6b\xd8\xb8\x7a\xf2\xe4\ +\x19\xf6\xe6\x9b\xbf\xb0\x91\x23\x7d\xb1\xbf\x0b\xe0\xff\x20\xe0\ +\x11\xf4\xaa\x8c\x29\xa1\xf9\xde\x63\x23\x46\x0c\xb3\xd7\x5e\x7b\ +\xdd\x72\x73\xf3\x6c\xe3\xc6\x95\x77\x05\x02\x3d\x1f\x90\xe4\x4f\ +\xb1\xec\x81\xdb\xd1\x07\xb2\xf0\xc4\x7b\x7d\x7d\x81\xea\x89\x13\ +\xa7\xd9\xb2\x65\xbf\x8c\x82\xe7\x1a\xe1\xaf\xb5\x86\x86\xaf\x5d\ +\xc2\x12\xfa\x6f\x00\xef\x59\xd0\x9d\x03\xce\x9a\x9b\x5b\x6c\xd7\ +\xae\x2f\xec\xea\xd5\x56\xbb\x79\xb3\xcb\xd2\xd2\x92\xed\xc5\x17\ +\x97\xd8\xac\x59\x8b\x24\x45\x1f\xf7\x7d\x48\x14\x4a\x30\xf3\xec\ +\xdb\x12\xf8\x0d\x9a\x7f\x4a\xb2\x79\xeb\xad\x37\xac\xa8\x28\xd7\ +\x5d\xf4\xfb\x7b\xec\xdd\x77\x57\x38\x60\xb5\xb5\x75\xb6\x7b\xf7\ +\x7e\x91\x18\x00\x58\x16\x8e\x78\x5f\xe4\x1c\x78\x97\xc4\x87\x0e\ +\x1d\xb1\xd1\xa3\x4b\x6d\xef\xde\x7d\x76\xe5\x4a\x33\x24\xba\xdd\ +\xb3\x4f\x3f\xbd\xd0\xa6\x4d\x9b\x63\x94\xe4\x7b\x89\xfa\x5f\x06\ +\x10\x88\x5b\x42\xe3\x58\x68\x59\x6e\xee\x50\x69\x9e\x50\xfb\xa2\ +\xe0\x57\xac\x58\x6b\xe5\xe5\xa3\x48\xe4\x29\xd6\xd4\xd4\x6a\x9f\ +\x7c\xe2\xaa\xa0\x55\x55\x55\x58\x4f\x4f\xdf\xc0\x08\xe8\xe8\x92\ +\xf7\xe2\xc5\x26\xc0\x1f\xb5\x85\x0b\x67\xda\x7d\xf7\xdd\x6d\xc3\ +\x86\xf9\xec\xd3\x4f\xb7\xb3\xd6\x3d\x96\x9f\x9f\x67\x59\x59\x99\ +\x36\x7f\xfe\x22\x3b\x75\xea\x38\xd6\xf0\x3c\xd5\x69\x2d\x0a\xf8\ +\xe0\x5b\x49\x88\x07\xff\x88\xe5\x51\x6d\x48\xd8\xca\x28\xf8\xe5\ +\xcb\x57\x21\xa3\x62\x7b\xfc\xf1\x1f\xe3\xbd\x26\x36\x4d\xb3\x57\ +\x5e\x59\x68\x9f\x7f\xbe\x8f\xf2\xd8\x40\x03\x4b\x1e\x08\xde\x79\ +\xfe\xd2\xa5\x26\x3b\x70\xe0\x20\x52\x99\x6b\xa5\xa5\xc5\x9c\x5f\ +\xb6\xfb\xef\x2f\xa7\x92\xcd\xa0\x9c\x36\xd2\x2b\xda\xad\xbd\xbd\ +\xc3\x7c\x3e\x9f\xcd\x9e\xbd\xd8\x32\x32\xb2\x12\x90\xdd\x1f\xc0\ +\x90\x89\x0d\x9a\x80\x80\xcb\xc6\xaa\x49\x95\x96\xde\x67\xcf\x3c\ +\x33\x2f\xfa\xdb\xce\x9d\x7b\x1d\xf8\x99\x33\xa7\xa2\xe3\xab\xce\ +\xab\x5d\x5d\xdd\x54\x13\x23\x11\x5f\xb0\xfa\xfa\xe3\x80\xac\xe7\ +\x3c\x29\x1a\x05\x33\x07\x1e\x72\xf5\xf6\xd2\x4b\x0b\xac\xb0\xb0\ +\xc0\xae\x5f\x6f\x17\x51\xe5\x00\x24\xca\xb8\x3e\x4f\x4d\x8e\x3e\ +\xd1\x85\x9c\x3a\x6c\xec\xd8\x71\x34\xc6\x09\x06\x86\xd1\xc8\x67\ +\x0e\x16\x2f\x81\xf0\x12\x1e\x4a\x1e\x3f\x7e\x32\xd2\x19\x1a\xfd\ +\x6d\xd4\xa8\x11\xc8\xe0\x0a\xb2\x69\xb1\x9c\x9c\x6c\x5d\x72\x60\ +\xbb\xbb\xfd\x00\x4a\xb4\xe7\x9e\x9b\x0d\x90\xb3\x24\xf6\x57\xf2\ +\xba\xb3\xcb\x97\x9b\xed\xe8\xd1\x63\xb6\x68\xd1\x4c\x2b\x2e\xf6\ +\x01\xf0\xa6\x9e\x71\xe3\x46\x66\x66\x06\x51\xed\x85\xf4\x31\xd6\ +\xcb\x73\xf9\x72\xe3\x46\x87\x2b\xaf\x0f\x3e\x38\xd1\x52\x53\xd3\ +\x95\x3f\x6f\x80\x25\x29\x1e\x02\x79\x84\x6e\x49\x5e\x9e\x8f\xea\ +\x90\x8f\x4c\xda\x74\x99\xc4\x0a\x92\x78\xe5\x2c\x3c\xc6\xd6\xac\ +\xa9\x65\x61\xa3\xf3\x3a\x12\xf2\xa6\x22\x81\x9c\xd2\xed\xe5\x97\ +\x17\xd8\x89\x13\x27\x19\x19\xce\x38\xa2\x47\x8e\xd4\x8b\x18\x0d\ +\xaf\x18\x89\xdc\xd0\xbd\x02\xcf\xda\xa9\x3c\x9f\x63\x6b\xd7\xd6\ +\xda\xb9\x73\xcd\x44\xa6\x48\x95\x8a\xd1\x23\x80\x9c\xda\x34\x4b\ +\x21\xb5\x7b\x94\xd0\x8f\x69\x48\x8c\x87\xc0\x43\x2c\x34\xb2\xb4\ +\x74\x34\x67\x29\x94\xbb\x83\x9a\x67\x54\xde\x00\xe9\x27\xbc\x63\ +\x6c\xdc\xb8\x2a\x7b\xff\xfd\x35\x5c\x33\x3c\x17\x25\x11\x8d\xc4\ +\xab\xaf\x2e\xa6\xda\x5c\xc2\xb3\x87\xed\x85\x17\xe6\x92\xac\x05\ +\x78\xd6\x79\xde\xf4\x49\x4f\x4f\xe3\xb9\x5c\xd6\x58\x0b\xc9\x76\ +\x22\x3b\x4a\x40\x23\xbd\x22\x48\x4e\x34\x10\x19\x3f\x72\x2d\x17\ +\xd9\x44\x08\x4c\x89\x83\x40\xb8\x3a\x31\x31\xc9\x86\x0c\x29\x34\ +\x24\x2e\xc9\x50\x26\x0f\x45\xbb\xad\x3c\x5d\x51\x51\x0e\x89\x07\ +\xec\xe3\x8f\x37\x00\xba\x17\x4f\x66\x79\x72\xa2\x0a\xf5\x12\xfa\ +\x24\x24\x33\x8b\x68\xcc\xb7\xbb\xee\x1a\x2a\x6d\x7b\xb2\x01\x7c\ +\x3a\x25\x37\x8d\xca\xb5\x89\x5c\xe8\x46\x56\xc5\xf2\x3a\xc0\x5d\ +\x83\x23\xb7\x2e\x42\xea\x34\x7b\x05\xa8\x4c\x3e\x1c\xa2\xa1\x30\ +\x54\x3d\x68\x02\x80\xac\x44\x83\xc8\x21\x57\xfa\x13\x25\xea\xf5\ +\x51\xe9\x54\x00\xf4\x3b\xa0\x7b\x28\x83\x9a\x3c\x4b\x25\x01\xbc\ +\x17\x76\x7a\xd6\x47\x89\xad\x6a\x25\x39\x15\x14\xe4\x5a\x47\x47\ +\xa7\xbb\xc6\x47\xb2\xa1\xba\x64\xda\xba\x75\xdb\x88\x50\x0b\xe4\ +\x8a\x35\xe4\x45\xde\x0b\x12\x90\x4e\x93\x9d\x3f\x7f\x1c\x32\x22\ +\xd4\xa7\x4a\x04\xd9\x54\xed\x59\x16\x4f\x04\xca\xfe\xab\xd1\x0c\ +\x11\x70\x9e\xe7\x94\x59\x65\xbf\xed\xdb\x77\x94\x3b\x34\x6d\x3a\ +\x39\x29\x27\xd0\x69\x09\x7d\xe1\x53\x36\xec\x57\x1d\xd7\xef\xf2\ +\xb6\x24\x21\xe9\x79\x9e\x67\xbd\x34\x07\xfe\xc3\x0f\x6b\x48\xec\ +\x36\x8a\xc3\x70\xdd\x13\x05\xdf\xd2\x72\xc9\xce\x9c\xa9\x97\x84\ +\x34\x5d\x89\x84\x88\xf3\x5c\xa6\xee\x29\x1c\x34\x01\x00\xe7\x78\ +\x15\x44\xe0\x79\xdf\xf0\xae\x33\x02\x1f\x20\x27\xf6\x20\x89\x6e\ +\xcf\xd3\x10\x18\x8e\x86\x4b\x24\x09\xbc\xed\x07\x64\x9a\x00\x0b\ +\xb8\x4c\xf7\x29\x3f\xdc\x7a\x2b\x57\x6e\xc6\xcb\x9d\x74\xf4\x22\ +\x15\x05\xe5\x95\x00\x23\xd3\x53\x54\xaf\x7a\xae\xf5\x6a\x2b\x01\ +\x96\x6c\x3c\x59\xca\xa9\x19\x83\xee\xc4\xfd\xb8\x23\xa6\x9c\xea\ +\xe8\x45\x41\x46\x55\x69\x50\x5d\x57\x35\xa2\x72\x38\xc7\x00\x3a\ +\x5d\xb3\x3e\x00\xd4\x71\xe5\xf1\x20\xe6\x96\xf1\x40\x08\x2c\x89\ +\xdc\x29\x32\x00\xd4\x9a\xc6\xf9\x75\xc0\x9f\xb4\xb6\xb6\x26\x6f\ +\x40\x96\xc3\xb4\xaf\xf7\x5a\xe9\xed\x9f\x30\x68\x02\x6c\xe4\x27\ +\xb4\x92\x0f\x60\x52\xe5\x89\x98\xc5\x0c\x00\x49\x84\xbb\xd5\xb6\ +\x6d\xdb\x89\xf7\x47\xa0\x73\x1f\x0d\xa9\xcd\x9e\x7d\x76\x16\x9a\ +\x2e\x50\x92\x0b\xb0\xee\x8f\x8d\xaa\xf4\xaf\xa4\x46\x6e\x35\x94\ +\xe6\xcb\x10\xbe\xc6\x73\x17\x20\xdd\x27\xb2\x1e\x50\x6f\xaf\x68\ +\x24\xf4\x3b\xa7\xbd\x71\x8c\x12\xfd\xe7\xd0\x1f\xd5\xa4\x5b\x1e\ +\x89\x89\x84\x16\xf7\x66\xf9\x44\x47\xec\xf8\xf1\xaf\xd1\xed\x79\ +\xc6\x81\xc7\xd4\xa4\x54\x81\x3c\xcd\x93\x7c\xc9\x58\x8a\x24\x24\ +\xd3\xf4\x0a\x89\x14\x48\xcc\xe3\x95\x33\x87\x3c\xb8\xa0\x4e\xab\ +\xa8\x0e\x00\xaf\x63\x3f\xd7\x93\x24\x2f\x0a\x46\x97\x40\xb5\xc6\ +\xd3\x07\x1a\x61\x8d\x9e\xdb\xbd\x6e\xea\x85\x35\x72\x74\xba\x55\ +\x65\xa0\x39\x8d\x62\xb6\x99\x67\xc3\x87\x17\x0a\xbc\x80\x0a\xbc\ +\x80\x2b\x31\x25\x15\x40\x2b\x27\xa2\x89\x4d\x19\x4d\x75\xbd\xe1\ +\x91\x47\x1e\x25\x9a\x19\xba\x26\x67\xc4\x38\x29\x24\xc7\x49\x8a\ +\x80\xef\x24\xcf\xba\x85\xea\x7c\x1c\x49\xdc\x7f\x0c\xcf\xa0\xcb\ +\x66\x6d\xec\x25\x33\xe6\xbd\xe3\x3a\xf0\x34\xa7\xe1\xb6\x64\xc9\ +\x3c\x9a\x4d\x11\xe0\x7b\x62\xc1\x3b\x9d\x6f\xd8\x50\xc7\x9b\xd6\ +\x46\x2a\x51\xd0\x23\x11\x89\x44\x1f\x4d\x2c\x83\xf9\x67\xbe\x4d\ +\x9e\xfc\x13\xee\xcf\x54\xc5\xf1\x0a\x86\xf6\xe1\x5a\x3a\x84\x53\ +\xc0\x70\x55\x51\x92\x84\x1a\xe2\x89\xc0\x7e\x36\x6b\x3f\x77\xee\ +\x2b\xc9\x88\x4d\x93\xb5\x80\xb7\x81\x12\x95\x12\x38\x12\xf0\xf3\ +\xd5\x61\xe5\x79\x81\x8b\x01\x9f\xc2\xa8\xb1\x9d\xc1\x6f\x27\xbd\ +\x63\x0f\x65\x73\x03\x20\x42\x78\x3e\x96\x84\x22\x91\xcc\x14\x3b\ +\xdf\xa6\x4f\x7f\x82\xe7\xb2\x54\x81\x3c\xfd\x73\x9e\x21\x47\x52\ +\x2c\xce\x46\xca\xaa\xed\x89\x87\x40\x33\x5e\x5f\xd9\xd2\x72\x85\ +\x24\xbb\xe8\x00\x71\x2e\xcf\x3b\x59\x94\x95\x95\xdb\xe2\xc5\x4f\ +\x0a\xbc\x80\x78\xa5\x92\xee\x9b\xe2\x36\x5d\xbf\x7e\x27\x3d\x63\ +\x17\x9e\xef\x60\xf3\x6e\x48\x7c\xa9\x12\x4b\xd2\xf6\x28\x91\x75\ +\xaf\x37\xad\xd2\xfc\xd2\xb4\x16\x6f\x62\x73\x89\x4a\x81\x22\xc1\ +\x5e\x29\xac\x95\x49\x97\x6e\xa1\xb4\x36\x8a\xb4\x5e\xf2\x0f\xc6\ +\xd1\x89\x9d\xce\x97\xe3\x91\xfe\x33\x67\x1a\x05\x5e\xad\x5f\xde\ +\xd1\x11\x8f\x4d\x96\xe6\xe5\x99\xa8\x6c\x24\x19\x91\xdb\xb2\x65\ +\x0f\x6f\x68\x9f\xa1\xdd\x76\x6f\x0b\x48\x76\x40\x68\x07\x1d\x7b\ +\x1b\x7a\x0e\x8a\xa8\x17\x09\x91\x00\x78\x26\xf3\xff\xa3\xac\x59\ +\xce\xb9\x22\x95\xc3\x7a\xa9\x14\x87\x13\x54\xb4\x4e\xdd\xfb\x4f\ +\x16\xea\x89\xa7\x91\xc9\xea\x48\xa2\xbd\xa7\x4e\x1d\x63\x2e\x39\ +\xcf\xa6\x19\xd2\x25\x72\xe9\xb0\xad\x5b\x77\x33\x06\x5c\x15\x68\ +\x40\x38\xf0\x0e\x50\x4d\xcd\x6e\x4a\xeb\x36\xc0\x5f\xe7\x3c\xda\ +\x47\x94\x90\x44\xe3\x26\x92\xaa\x55\x24\x58\x23\xe0\x3d\xa3\x23\ +\xbd\xa0\x1b\xc9\x6d\xc1\xdb\xff\x56\xd7\xa5\xa7\x0c\x21\x5a\x37\ +\x18\xe8\x8e\x08\x4e\x33\xeb\x7c\x8c\x59\xbc\x04\x42\x6c\xfc\x7b\ +\xbf\xbf\xab\x6f\xff\xfe\x1d\xaa\xc5\x2c\x9e\xa5\x47\xf0\xcc\x57\ +\x6c\xb8\x95\x06\xd4\x62\x90\x74\x1d\x75\xd3\xa6\x2f\x01\xb8\xdd\ +\xd5\x76\xb3\x68\x4d\xf7\x1a\xa1\xc0\xe2\xcd\xeb\xdc\xb3\xd5\x56\ +\xad\xaa\x55\xd3\x93\x8c\x04\x9e\xee\xbc\x91\xa8\xad\x23\x3a\x9d\ +\x44\xa3\x50\x4e\x61\x64\xd9\xc5\xe8\xad\xb5\xec\xaf\x3c\xdf\x16\ +\x0f\x81\xd8\x3f\xb0\x6e\x62\xa8\x5b\xae\x36\xdf\xd0\x70\x40\xb9\ +\x80\x77\x72\x05\x46\xef\xab\xb6\x7a\xf5\x16\xa2\x23\x50\x87\x90\ +\xce\x56\xca\x6e\xab\x7e\x8b\x05\xcf\x3a\x72\x86\xac\x5f\x92\x11\ +\x41\x22\x58\xe3\x2a\x54\x6b\x6b\x87\x1c\xc1\xf9\x3a\xae\x5f\xb7\ +\xbc\xbc\xe1\xc8\x27\x9b\x48\x9c\xa0\xbf\x1c\x16\x94\x3a\xec\xef\ +\x71\xff\x65\xae\xaa\x2a\xfa\xee\x20\x40\xc3\x20\xb3\x8d\xfb\xc6\ +\x4c\x9d\x3a\x9b\x09\xf4\x41\x24\x72\x53\x40\x94\xd4\xe8\xb6\x0c\ +\x4f\xb5\x6a\x14\xb8\x45\x37\xbd\xd5\xd1\x75\x56\xc0\x16\x32\x3f\ +\x8d\xe6\xc5\xe7\x20\x91\xe9\x10\x78\x06\xc1\x7c\xa2\x7a\xda\x36\ +\x6f\x5e\x85\xcc\xfc\x1d\x6c\x3f\x0d\x3b\x1c\x53\x5c\x06\x47\xa0\ +\xb2\xb2\x72\xe0\xa5\xb1\x54\x87\xcd\x24\x70\xd1\xc3\x0f\xcf\xb4\ +\xf2\xf2\x4a\x12\xd3\x0f\x89\x76\x91\x51\x69\xd5\x52\x58\x2c\x78\ +\x67\x03\xc8\x78\xe6\xfe\x4a\xad\xef\xaa\x36\xbc\x4b\x14\xca\xf3\ +\xae\x64\xee\xd8\xb1\x1e\x59\xb5\x05\x58\xec\x79\x6c\x0d\x66\xb7\ +\x83\x80\x36\x9b\x81\xe7\x56\xe0\xe5\xa2\x49\x93\x1e\x67\x8c\x1e\ +\xab\xde\x20\x02\x68\xf7\x06\x5e\xed\x11\xb0\x58\xf9\xdc\xf2\x28\ +\x69\x9a\xb9\x31\x01\xd0\xb9\x48\x32\x5f\xd2\x52\xc5\x01\xfc\x06\ +\xf5\x1d\xcd\x3c\xcb\xb0\x77\x30\xbb\x9d\x04\xb4\xf9\x44\x4a\xe7\ +\x72\x8e\x15\xa5\xa5\xf7\xda\x43\x0f\x4d\xe7\xad\xcd\xa7\x06\xc4\ +\xc6\x5d\x54\x9a\x6e\xac\x33\xd2\x55\x43\xb1\xe0\x23\x9b\xab\xea\ +\xa4\xab\xf3\xca\xf3\xca\x29\x8d\x2b\xf4\x89\x3a\x69\x5e\xf7\xaa\ +\xf6\x2e\xc5\x56\x63\xf6\x5d\x10\x90\x95\x62\x7f\xa6\xbd\xbf\xc4\ +\x1b\x1b\x39\x51\x2d\x2d\xeb\xf5\x53\x39\x20\x32\xb2\x58\x12\x98\ +\xa9\x97\xa8\xa3\x6b\x3c\x10\x10\x35\x29\x79\x5d\xa5\x92\xef\xae\ +\xda\x6c\xc7\x7e\xed\xfd\x3d\xf4\xbb\x24\xe0\x35\xba\x57\x18\xc2\ +\x7e\x0b\xd0\x6a\xde\xdc\x18\x2d\xca\x98\x89\xca\x78\x87\x1d\x8a\ +\x2c\xb2\x25\x0b\x6f\xd3\xc8\x33\x41\x25\x2b\xc9\xde\x42\xa2\x9e\ +\x35\x35\x48\x35\x29\x3e\x17\xb0\x7f\x60\x7f\xc3\x82\x98\x7d\x5f\ +\x04\x74\xcc\xe2\xfa\x5c\x8e\x3f\x27\x3f\xa6\x13\x81\x54\x3c\xac\ +\x77\x58\xf4\x9d\x19\x7d\x27\x80\xa8\x46\xe2\x88\xcc\x7a\xd4\x6d\ +\x43\x1a\x0f\x58\xf6\x3d\xec\x13\xee\x69\xf1\xf6\xf9\xbe\x09\xe8\ +\xba\x67\x3f\xc2\x1e\xe6\x5a\x15\xc7\x32\x8e\x45\x7a\x0d\x8c\xfc\ +\x23\x5f\x1f\x4b\x5c\xd5\x7b\x06\x8f\x35\x6a\x30\x8b\xfc\x43\x5f\ +\xaf\x07\xec\xdb\x12\xb8\xf3\x5f\x0d\xee\x10\xb8\x43\xe0\x07\xfe\ +\xf9\x0f\x4e\x33\x44\x96\xd0\x41\x78\x46\x00\x00\x00\x00\x49\x45\ +\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0b\x9a\ +\x73\ +\x61\x76\x65\x41\x73\x44\x65\x74\x61\x69\x6c\x3d\xe5\xb0\x87\xe6\ +\xa0\x87\xe7\xad\xbe\xe4\xbf\x9d\xe5\xad\x98\xe5\x88\xb0\xe5\x85\ +\xb6\xe4\xbb\x96\xe6\x96\x87\xe4\xbb\xb6\x0a\x63\x68\x61\x6e\x67\ +\x65\x53\x61\x76\x65\x44\x69\x72\x3d\xe6\x94\xb9\xe5\x8f\x98\xe5\ +\xad\x98\xe6\x94\xbe\xe7\x9b\xae\xe5\xbd\x95\x0a\x6f\x70\x65\x6e\ +\x46\x69\x6c\x65\x3d\xe6\x89\x93\xe5\xbc\x80\xe6\x96\x87\xe4\xbb\ +\xb6\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\ +\x44\x65\x74\x61\x69\x6c\x3d\xe6\x9b\xb4\xe6\x94\xb9\xe7\xba\xbf\ +\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0a\x72\x65\x73\x65\x74\x41\ +\x6c\x6c\x3d\xe9\x87\x8d\xe7\xbd\xae\xe7\x95\x8c\xe9\x9d\xa2\xe4\ +\xb8\x8e\xe4\xbf\x9d\xe5\xad\x98\xe5\x9c\xb0\xe5\x9d\x80\x0a\x63\ +\x72\x74\x42\x6f\x78\x3d\xe7\x9f\xa9\xe5\xbd\xa2\xe6\xa0\x87\xe6\ +\xb3\xa8\x0a\x63\x72\x74\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\ +\xe5\x88\x9b\xe5\xbb\xba\xe4\xb8\x80\xe4\xb8\xaa\xe6\x96\xb0\xe7\ +\x9a\x84\xe5\x8c\xba\xe5\x9d\x97\x0a\x64\x75\x70\x42\x6f\x78\x44\ +\x65\x74\x61\x69\x6c\x3d\xe5\xa4\x8d\xe5\x88\xb6\xe5\x8c\xba\xe5\ +\x9d\x97\x0a\x76\x65\x72\x69\x66\x79\x49\x6d\x67\x3d\xe9\xaa\x8c\ +\xe8\xaf\x81\xe5\x9b\xbe\xe5\x83\x8f\x0a\x7a\x6f\x6f\x6d\x69\x6e\ +\x44\x65\x74\x61\x69\x6c\x3d\xe6\x94\xbe\xe5\xa4\xa7\x0a\x76\x65\ +\x72\x69\x66\x79\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\xe9\xaa\ +\x8c\xe8\xaf\x81\xe5\x9b\xbe\xe5\x83\x8f\x0a\x73\x61\x76\x65\x44\ +\x65\x74\x61\x69\x6c\x3d\xe4\xbf\x9d\xe5\xad\x98\xe6\xa0\x87\xe7\ +\xad\xbe\xe6\x96\x87\xe4\xbb\xb6\x0a\x6f\x70\x65\x6e\x46\x69\x6c\ +\x65\x44\x65\x74\x61\x69\x6c\x3d\xe6\x89\x93\xe5\xbc\x80\xe5\x9b\ +\xbe\xe5\x83\x8f\xe6\x96\x87\xe4\xbb\xb6\x0a\x66\x69\x74\x57\x69\ +\x64\x74\x68\x44\x65\x74\x61\x69\x6c\x3d\xe8\xb0\x83\xe6\x95\xb4\ +\xe5\xae\xbd\xe5\xba\xa6\xe9\x80\x82\xe5\xba\x94\xe5\x88\xb0\xe7\ +\xaa\x97\xe5\x8f\xa3\xe5\xae\xbd\xe5\xba\xa6\x0a\x74\x75\x74\x6f\ +\x72\x69\x61\x6c\x3d\x50\x61\x64\x64\x6c\x65\x4f\x43\x52\xe5\x9c\ +\xb0\xe5\x9d\x80\x0a\x65\x64\x69\x74\x4c\x61\x62\x65\x6c\x3d\xe7\ +\xbc\x96\xe8\xbe\x91\xe6\xa0\x87\xe7\xad\xbe\x0a\x6f\x70\x65\x6e\ +\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x44\x65\x74\x61\x69\x6c\ +\x3d\xe6\x89\x93\xe5\xbc\x80\xe6\xa0\x87\xe7\xad\xbe\xe6\x96\x87\ +\xe4\xbb\xb6\x0a\x71\x75\x69\x74\x3d\xe9\x80\x80\xe5\x87\xba\x0a\ +\x73\x68\x61\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x44\x65\ +\x74\x61\x69\x6c\x3d\xe6\x9b\xb4\xe6\x94\xb9\xe5\xa1\xab\xe5\x85\ +\x85\xe9\xa2\x9c\xe8\x89\xb2\x0a\x63\x6c\x6f\x73\x65\x43\x75\x72\ +\x44\x65\x74\x61\x69\x6c\x3d\xe5\x85\xb3\xe9\x97\xad\xe5\xbd\x93\ +\xe5\x89\x8d\xe6\x96\x87\xe4\xbb\xb6\x0a\x63\x6c\x6f\x73\x65\x43\ +\x75\x72\x3d\xe5\x85\xb3\xe9\x97\xad\xe6\x96\x87\xe4\xbb\xb6\x0a\ +\x64\x65\x6c\x65\x74\x65\x49\x6d\x67\x3d\xe5\x88\xa0\xe9\x99\xa4\ +\xe5\x9b\xbe\xe5\x83\x8f\x0a\x64\x65\x6c\x65\x74\x65\x49\x6d\x67\ +\x44\x65\x74\x61\x69\x6c\x3d\xe5\x88\xa0\xe9\x99\xa4\xe5\xbd\x93\ +\xe5\x89\x8d\xe5\x9b\xbe\xe5\x83\x8f\x0a\x66\x69\x74\x57\x69\x6e\ +\x3d\xe8\xb0\x83\xe6\x95\xb4\xe5\x88\xb0\xe7\xaa\x97\xe5\x8f\xa3\ +\xe5\xa4\xa7\xe5\xb0\x8f\x0a\x64\x65\x6c\x42\x6f\x78\x3d\xe5\x88\ +\xa0\xe9\x99\xa4\xe9\x80\x89\xe6\x8b\xa9\xe7\x9a\x84\xe5\x8c\xba\ +\xe5\x9d\x97\x0a\x62\x6f\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\ +\x44\x65\x74\x61\x69\x6c\x3d\xe9\x80\x89\xe6\x8b\xa9\xe7\xba\xbf\ +\xe6\xa1\x86\xe9\xa2\x9c\xe8\x89\xb2\x0a\x6f\x72\x69\x67\x69\x6e\ +\x61\x6c\x73\x69\x7a\x65\x3d\xe5\x8e\x9f\xe5\xa7\x8b\xe5\xa4\xa7\ +\xe5\xb0\x8f\x0a\x72\x65\x73\x65\x74\x41\x6c\x6c\x44\x65\x74\x61\ +\x69\x6c\x3d\xe9\x87\x8d\xe7\xbd\xae\xe6\x89\x80\xe6\x9c\x89\xe8\ +\xae\xbe\xe5\xae\x9a\x0a\x7a\x6f\x6f\x6d\x6f\x75\x74\x44\x65\x74\ +\x61\x69\x6c\x3d\xe6\x94\xbe\xe5\xa4\xa7\xe7\x94\xbb\xe9\x9d\xa2\ +\x0a\x73\x61\x76\x65\x3d\xe7\xa1\xae\xe8\xae\xa4\x0a\x73\x61\x76\ +\x65\x41\x73\x3d\xe5\x8f\xa6\xe5\xad\x98\xe4\xb8\xba\x0a\x66\x69\ +\x74\x57\x69\x6e\x44\x65\x74\x61\x69\x6c\x3d\xe7\xbc\xa9\xe6\x94\ +\xbe\xe5\x88\xb0\xe5\xbd\x93\xe5\x89\x8d\xe7\xaa\x97\xe5\x8f\xa3\ +\xe5\xa4\xa7\xe5\xb0\x8f\x0a\x6f\x70\x65\x6e\x44\x69\x72\x3d\xe6\ +\x89\x93\xe5\xbc\x80\xe7\x9b\xae\xe5\xbd\x95\x0a\x6f\x70\x65\x6e\ +\x44\x61\x74\x61\x73\x65\x74\x44\x69\x72\x3d\xe6\x89\x93\xe5\xbc\ +\x80\xe6\x95\xb0\xe6\x8d\xae\xe9\x9b\x86\xe8\xb7\xaf\xe5\xbe\x84\ +\x0a\x63\x6f\x70\x79\x50\x72\x65\x76\x42\x6f\x75\x6e\x64\x69\x6e\ +\x67\x3d\xe5\xa4\x8d\xe5\x88\xb6\xe5\xbd\x93\xe5\x89\x8d\xe5\x9b\ +\xbe\xe5\x83\x8f\xe4\xb8\xad\xe7\x9a\x84\xe4\xb8\x8a\xe4\xb8\x80\ +\xe4\xb8\xaa\xe8\xbe\xb9\xe7\x95\x8c\xe6\xa1\x86\x0a\x73\x68\x6f\ +\x77\x48\x69\x64\x65\x3d\xe6\x98\xbe\xe7\xa4\xba\x2f\xe9\x9a\x90\ +\xe8\x97\x8f\xe6\xa0\x87\xe7\xad\xbe\x0a\x63\x68\x61\x6e\x67\x65\ +\x53\x61\x76\x65\x46\x6f\x72\x6d\x61\x74\x3d\xe6\x9b\xb4\xe6\x94\ +\xb9\xe5\xad\x98\xe5\x82\xa8\xe6\xa0\xbc\xe5\xbc\x8f\x0a\x73\x68\ +\x61\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3d\xe5\xa1\xab\ +\xe5\x85\x85\xe9\xa2\x9c\xe8\x89\xb2\x0a\x71\x75\x69\x74\x41\x70\ +\x70\x3d\xe9\x80\x80\xe5\x87\xba\xe7\xa8\x8b\xe5\xba\x8f\x0a\x64\ +\x75\x70\x42\x6f\x78\x3d\xe5\xa4\x8d\xe5\x88\xb6\xe5\x8c\xba\xe5\ +\x9d\x97\x0a\x64\x65\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\ +\xe5\x88\xa0\xe9\x99\xa4\xe5\x8c\xba\xe5\x9d\x97\x0a\x7a\x6f\x6f\ +\x6d\x69\x6e\x3d\xe6\x94\xbe\xe5\xa4\xa7\xe7\x94\xbb\xe9\x9d\xa2\ +\x0a\x69\x6e\x66\x6f\x3d\xe4\xbf\xa1\xe6\x81\xaf\x0a\x6f\x70\x65\ +\x6e\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x3d\xe5\xbc\x80\xe5\ +\x90\xaf\xe6\xa0\x87\xe7\xad\xbe\x0a\x70\x72\x65\x76\x49\x6d\x67\ +\x44\x65\x74\x61\x69\x6c\x3d\xe4\xb8\x8a\xe4\xb8\x80\xe4\xb8\xaa\ +\xe5\x9b\xbe\xe5\x83\x8f\x0a\x66\x69\x74\x57\x69\x64\x74\x68\x3d\ +\xe7\xbc\xa9\xe6\x94\xbe\xe5\x88\xb0\xe5\xbd\x93\xe5\x89\x8d\xe7\ +\x94\xbb\xe9\x9d\xa2\xe5\xae\xbd\xe5\xba\xa6\x0a\x7a\x6f\x6f\x6d\ +\x6f\x75\x74\x3d\xe7\xbc\xa9\xe5\xb0\x8f\xe7\x94\xbb\xe9\x9d\xa2\ +\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\x76\x65\x64\x41\x6e\x6e\x6f\ +\x74\x61\x74\x69\x6f\x6e\x44\x69\x72\x3d\xe6\x9b\xb4\xe6\x94\xb9\ +\xe4\xbf\x9d\xe5\xad\x98\xe6\xa0\x87\xe7\xad\xbe\xe6\x96\x87\xe4\ +\xbb\xb6\xe7\x9a\x84\xe9\xa2\x84\xe8\xae\xbe\xe7\x9b\xae\xe5\xbd\ +\x95\x0a\x6e\x65\x78\x74\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\ +\xe4\xb8\x8b\xe4\xb8\x80\xe4\xb8\xaa\xe5\x9b\xbe\xe5\x83\x8f\x0a\ +\x6f\x72\x69\x67\x69\x6e\x61\x6c\x73\x69\x7a\x65\x44\x65\x74\x61\ +\x69\x6c\x3d\xe6\x94\xbe\xe5\xa4\xa7\xe5\x88\xb0\xe5\x8e\x9f\xe5\ +\xa7\x8b\xe5\xa4\xa7\xe5\xb0\x8f\x0a\x70\x72\x65\x76\x49\x6d\x67\ +\x3d\xe4\xb8\x8a\xe4\xb8\x80\xe5\xbc\xa0\x0a\x74\x75\x74\x6f\x72\ +\x69\x61\x6c\x44\x65\x74\x61\x69\x6c\x3d\xe6\x98\xbe\xe7\xa4\xba\ +\xe7\xa4\xba\xe8\x8c\x83\xe5\x86\x85\xe5\xae\xb9\x0a\x73\x68\x61\ +\x70\x65\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\xe5\xbd\xa2\xe7\ +\x8a\xb6\xe7\xba\xbf\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0a\x62\ +\x6f\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\xe5\x8c\xba\xe5\ +\x9d\x97\xe7\xba\xbf\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0a\x65\ +\x64\x69\x74\x4c\x61\x62\x65\x6c\x44\x65\x74\x61\x69\x6c\x3d\xe4\ +\xbf\xae\xe6\x94\xb9\xe5\xbd\x93\xe5\x89\x8d\xe6\x89\x80\xe9\x80\ +\x89\xe7\x9a\x84\xe5\x8c\xba\xe5\x9d\x97\xe9\xa2\x9c\xe8\x89\xb2\ +\x0a\x6e\x65\x78\x74\x49\x6d\x67\x3d\xe4\xb8\x8b\xe4\xb8\x80\xe5\ +\xbc\xa0\x0a\x75\x73\x65\x44\x65\x66\x61\x75\x6c\x74\x4c\x61\x62\ +\x65\x6c\x3d\xe4\xbd\xbf\xe7\x94\xa8\xe9\xa2\x84\xe8\xae\xbe\xe6\ +\xa0\x87\xe7\xad\xbe\x0a\x75\x73\x65\x44\x69\x66\x66\x69\x63\x75\ +\x6c\x74\x3d\xe6\x9c\x89\xe9\x9a\xbe\xe5\xba\xa6\xe7\x9a\x84\x0a\ +\x62\x6f\x78\x4c\x61\x62\x65\x6c\x54\x65\x78\x74\x3d\xe5\x8c\xba\ +\xe5\x9d\x97\xe7\x9a\x84\xe6\xa0\x87\xe7\xad\xbe\x0a\x6c\x61\x62\ +\x65\x6c\x73\x3d\xe6\xa0\x87\xe7\xad\xbe\x0a\x61\x75\x74\x6f\x53\ +\x61\x76\x65\x4d\x6f\x64\x65\x3d\xe8\x87\xaa\xe5\x8a\xa8\xe4\xbf\ +\x9d\xe5\xad\x98\xe6\xa8\xa1\xe5\xbc\x8f\x0a\x73\x69\x6e\x67\x6c\ +\x65\x43\x6c\x73\x4d\x6f\x64\x65\x3d\xe5\x8d\x95\xe4\xb8\x80\xe7\ +\xb1\xbb\xe5\x88\xab\xe6\xa8\xa1\xe5\xbc\x8f\x0a\x64\x69\x73\x70\ +\x6c\x61\x79\x4c\x61\x62\x65\x6c\x3d\xe6\x98\xbe\xe7\xa4\xba\xe7\ +\xb1\xbb\xe5\x88\xab\x0a\x66\x69\x6c\x65\x4c\x69\x73\x74\x3d\xe6\ +\x96\x87\xe4\xbb\xb6\xe5\x88\x97\xe8\xa1\xa8\x0a\x66\x69\x6c\x65\ +\x73\x3d\xe6\x96\x87\xe4\xbb\xb6\x0a\x61\x64\x76\x61\x6e\x63\x65\ +\x64\x4d\x6f\x64\x65\x3d\xe4\xb8\x93\xe5\xae\xb6\xe6\xa8\xa1\xe5\ +\xbc\x8f\x0a\x61\x64\x76\x61\x6e\x63\x65\x64\x4d\x6f\x64\x65\x44\ +\x65\x74\x61\x69\x6c\x3d\xe5\x88\x87\xe6\x8d\xa2\xe5\x88\xb0\xe4\ +\xb8\x93\xe5\xae\xb6\xe6\xa8\xa1\xe5\xbc\x8f\x0a\x73\x68\x6f\x77\ +\x41\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\xe6\x98\xbe\ +\xe7\xa4\xba\xe6\x89\x80\xe6\x9c\x89\xe5\x8c\xba\xe5\x9d\x97\x0a\ +\x68\x69\x64\x65\x41\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\ +\x3d\xe9\x9a\x90\xe8\x97\x8f\xe6\x89\x80\xe6\x9c\x89\xe5\x8c\xba\ +\xe5\x9d\x97\x0a\x61\x6e\x6e\x6f\x50\x61\x6e\x65\x6c\x3d\xe6\xa0\ +\x87\xe6\xb3\xa8\xe9\x9d\xa2\xe6\x9d\xbf\x0a\x61\x6e\x6e\x6f\x3d\ +\xe6\xa0\x87\xe6\xb3\xa8\x0a\x61\x64\x64\x4e\x65\x77\x42\x62\x6f\ +\x78\x3d\xe6\x96\xb0\xe6\xa1\x86\x0a\x72\x65\x4c\x61\x62\x65\x6c\ +\x3d\xe9\x87\x8d\xe6\xa0\x87\xe6\xb3\xa8\x0a\x63\x68\x6f\x6f\x73\ +\x65\x6d\x6f\x64\x65\x6c\x3d\xe9\x80\x89\xe6\x8b\xa9\xe6\xa8\xa1\ +\xe5\x9e\x8b\x0a\x74\x69\x70\x63\x68\x6f\x6f\x73\x65\x6d\x6f\x64\ +\x65\x6c\x3d\xe9\x80\x89\xe6\x8b\xa9\x4f\x43\x52\xe6\xa8\xa1\xe5\ +\x9e\x8b\x0a\x49\x6d\x61\x67\x65\x52\x65\x73\x69\x7a\x65\x3d\xe5\ +\x9b\xbe\xe7\x89\x87\xe7\xbc\xa9\xe6\x94\xbe\x0a\x49\x52\x3d\xe5\ +\x9b\xbe\xe7\x89\x87\xe7\xbc\xa9\xe6\x94\xbe\x0a\x61\x75\x74\x6f\ +\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x3d\xe8\x87\xaa\xe5\ +\x8a\xa8\xe6\xa0\x87\xe6\xb3\xa8\x0a\x72\x65\x52\x65\x63\x6f\x67\ +\x6e\x69\x74\x69\x6f\x6e\x3d\xe9\x87\x8d\xe6\x96\xb0\xe8\xaf\x86\ +\xe5\x88\xab\x0a\x6d\x66\x69\x6c\x65\x3d\xe6\x96\x87\xe4\xbb\xb6\ +\x0a\x6d\x65\x64\x69\x74\x3d\xe7\xbc\x96\xe8\xbe\x91\x0a\x6d\x76\ +\x69\x65\x77\x3d\xe8\xa7\x86\xe5\x9b\xbe\x0a\x6d\x68\x65\x6c\x70\ +\x3d\xe5\xb8\xae\xe5\x8a\xa9\x0a\x69\x63\x6f\x6e\x4c\x69\x73\x74\ +\x3d\xe7\xbc\xa9\xe7\x95\xa5\xe5\x9b\xbe\x0a\x64\x65\x74\x65\x63\ +\x74\x69\x6f\x6e\x42\x6f\x78\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\ +\xe6\xa3\x80\xe6\xb5\x8b\xe6\xa1\x86\xe4\xbd\x8d\xe7\xbd\xae\x0a\ +\x72\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x52\x65\x73\x75\x6c\ +\x74\x3d\xe8\xaf\x86\xe5\x88\xab\xe7\xbb\x93\xe6\x9e\x9c\x0a\x63\ +\x72\x65\x61\x74\x50\x6f\x6c\x79\x67\x6f\x6e\x3d\xe5\x9b\x9b\xe7\ +\x82\xb9\xe6\xa0\x87\xe6\xb3\xa8\x0a\x64\x72\x61\x77\x53\x71\x75\ +\x61\x72\x65\x73\x3d\xe6\xad\xa3\xe6\x96\xb9\xe5\xbd\xa2\xe6\xa0\ +\x87\xe6\xb3\xa8\x0a\x72\x6f\x74\x61\x74\x65\x4c\x65\x66\x74\x3d\ +\xe5\x9b\xbe\xe7\x89\x87\xe5\xb7\xa6\xe6\x97\x8b\xe8\xbd\xac\x39\ +\x30\xe5\xba\xa6\x0a\x72\x6f\x74\x61\x74\x65\x52\x69\x67\x68\x74\ +\x3d\xe5\x9b\xbe\xe7\x89\x87\xe5\x8f\xb3\xe6\x97\x8b\xe8\xbd\xac\ +\x39\x30\xe5\xba\xa6\x0a\x73\x61\x76\x65\x52\x65\x63\x3d\xe5\xaf\ +\xbc\xe5\x87\xba\xe8\xaf\x86\xe5\x88\xab\xe7\xbb\x93\xe6\x9e\x9c\ +\x0a\x74\x65\x6d\x70\x4c\x61\x62\x65\x6c\x3d\xe5\xbe\x85\xe8\xaf\ +\x86\xe5\x88\xab\x0a\x6e\x75\x6c\x6c\x4c\x61\x62\x65\x6c\x3d\xe6\ +\x97\xa0\xe6\xb3\x95\xe8\xaf\x86\xe5\x88\xab\x0a\x73\x74\x65\x70\ +\x73\x3d\xe6\x93\x8d\xe4\xbd\x9c\xe6\xad\xa5\xe9\xaa\xa4\x0a\x6b\ +\x65\x79\x73\x3d\xe5\xbf\xab\xe6\x8d\xb7\xe9\x94\xae\x0a\x63\x68\ +\x6f\x73\x65\x4d\x6f\x64\x65\x6c\x4c\x67\x3d\xe9\x80\x89\xe6\x8b\ +\xa9\xe6\xa8\xa1\xe5\x9e\x8b\xe8\xaf\xad\xe8\xa8\x80\x0a\x63\x61\ +\x6e\x63\x65\x6c\x3d\xe5\x8f\x96\xe6\xb6\x88\x0a\x6f\x6b\x3d\xe7\ +\xa1\xae\xe8\xae\xa4\x0a\x61\x75\x74\x6f\x6c\x61\x62\x65\x6c\x69\ +\x6e\x67\x3d\xe8\x87\xaa\xe5\x8a\xa8\xe6\xa0\x87\xe6\xb3\xa8\xe4\ +\xb8\xad\x0a\x68\x69\x64\x65\x42\x6f\x78\x3d\xe9\x9a\x90\xe8\x97\ +\x8f\xe6\x89\x80\xe6\x9c\x89\xe6\xa0\x87\xe6\xb3\xa8\x0a\x73\x68\ +\x6f\x77\x42\x6f\x78\x3d\xe6\x98\xbe\xe7\xa4\xba\xe6\x89\x80\xe6\ +\x9c\x89\xe6\xa0\x87\xe6\xb3\xa8\x0a\x73\x61\x76\x65\x4c\x61\x62\ +\x65\x6c\x3d\xe5\xaf\xbc\xe5\x87\xba\xe6\xa0\x87\xe8\xae\xb0\xe7\ +\xbb\x93\xe6\x9e\x9c\x0a\x73\x69\x6e\x67\x6c\x65\x52\x65\x3d\xe9\ +\x87\x8d\xe8\xaf\x86\xe5\x88\xab\xe6\xad\xa4\xe5\x8c\xba\xe5\x9d\ +\x97\x0a\x6c\x61\x62\x65\x6c\x44\x69\x61\x6c\x6f\x67\x4f\x70\x74\ +\x69\x6f\x6e\x3d\xe5\xbc\xb9\xe5\x87\xba\xe6\xa0\x87\xe8\xae\xb0\ +\xe8\xbe\x93\xe5\x85\xa5\xe6\xa1\x86\x0a\x75\x6e\x64\x6f\x3d\xe6\ +\x92\xa4\xe9\x94\x80\x0a\x75\x6e\x64\x6f\x4c\x61\x73\x74\x50\x6f\ +\x69\x6e\x74\x3d\xe6\x92\xa4\xe9\x94\x80\xe4\xb8\x8a\xe4\xb8\xaa\ +\xe7\x82\xb9\x0a\x61\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\ +\x3d\xe8\x87\xaa\xe5\x8a\xa8\xe5\xaf\xbc\xe5\x87\xba\xe6\xa0\x87\ +\xe8\xae\xb0\xe7\xbb\x93\xe6\x9e\x9c\ +\x00\x00\x04\x44\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd3\x0a\x17\x0a\x12\x16\x5e\xb7\xf3\xf2\x00\x00\x00\x1d\x74\x45\ +\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ +\x64\x20\x77\x69\x74\x68\x20\x54\x68\x65\x20\x47\x49\x4d\x50\xef\ +\x64\x25\x6e\x00\x00\x03\xa8\x49\x44\x41\x54\x78\xda\xad\x96\x5f\ +\x68\x1c\x55\x18\xc5\x7f\x77\x76\x36\x9b\x34\xe9\xda\x6e\xda\xb2\ +\x2a\x98\x27\x31\x55\xfa\x66\xdb\x6d\x82\x42\x5e\x35\x45\xf0\x29\ +\x46\x10\x82\xe0\x83\xa2\x82\xb5\x11\x04\x8b\xcf\xea\x8b\x0f\xe2\ +\x9f\x60\x7c\x08\x41\x6a\x71\x5b\xcd\xa3\x88\x6d\xd3\xc4\x9a\x36\ +\x69\x35\x14\x2a\xad\x94\xe2\x96\x4d\x28\x49\x48\xc8\xee\xce\xec\ +\xcc\xbd\x9f\x0f\x33\x3b\xfb\x67\x92\xda\xa2\x1f\x5c\x66\x19\x66\ +\xce\x39\xdf\xf9\xee\x3d\xb3\xf0\x3f\xd4\xd0\xd0\x90\x75\x3f\xcf\ +\xbd\x04\xc8\x03\xac\x32\xb0\x91\x4e\xa7\xa5\xb7\xb7\x57\x46\x46\ +\x46\x6e\x00\xed\x80\xda\x8e\x40\x16\x17\x17\xa5\x5c\x2e\xcb\xbf\ +\x95\xeb\xba\xe2\xba\x8e\xb8\xae\x23\xc5\x62\x51\x0a\x85\x82\xcc\ +\xcf\xcf\x4b\x4f\x4f\x4f\x01\xd8\x03\x6c\xd9\xd1\x7d\x81\xd7\x49\ +\x1c\x59\x5b\x5b\x95\xd3\xa7\xf3\xb2\xbc\xbc\x2c\x22\x22\x53\x53\ +\x53\x92\xcb\xe5\x34\x90\xae\x91\xd8\x8d\x0c\x1d\x1d\x1d\x00\x4c\ +\x4f\x4f\xc7\xd9\x45\x50\x4a\x21\x22\x88\x08\x5a\xfb\x38\x8e\x4b\ +\xa9\x54\x22\x95\x4a\x01\x30\x30\x30\x80\xe3\x38\xd6\xf0\xf0\xf0\ +\xc7\x9e\xe7\xbd\x13\xda\xd8\x88\x11\x2f\x63\x8c\x68\xad\xc5\xf7\ +\xbd\xe8\xea\x79\x9e\xb8\xae\x23\x1b\x1b\x1b\x32\x3e\x3e\xbe\xdd\ +\x8c\x46\x80\xa4\x6a\x21\x88\x3a\xa8\x29\x15\x31\x04\xb7\x25\x9c\ +\x5f\x70\x1f\xc0\xf7\x35\x4b\x4b\x45\xb2\xfb\xf6\xf1\xdb\xa5\x39\ +\x4e\x9c\xf8\x10\xaf\xd8\x4f\xe5\x4a\x86\xf4\x73\x53\x00\x9d\x31\ +\x82\x56\xe0\xe0\x2a\x4d\x16\x21\x82\xb2\x2c\xaa\xae\xcb\xca\xea\ +\x2a\x9e\xeb\xf0\xf8\x13\xfb\xf1\xef\x3e\x83\x37\x97\xe2\xb5\xb1\ +\xa2\x4c\x9c\xb9\xa6\x80\xbd\x76\xab\xd7\xc6\x68\xce\x9f\x9f\x8e\ +\x94\x06\x80\x20\x08\x0a\x85\x84\x0e\x18\x2d\x18\xa3\x31\xc6\xf0\ +\xfc\xe0\x51\xfc\xe5\x7e\xbc\xb9\x76\x8e\x7f\xb7\x46\x08\xfe\x3e\ +\xd0\x1e\xeb\xc0\xf3\xaa\x0d\xc0\x21\x09\x82\x18\x41\x59\x0a\x31\ +\x75\x8b\x44\x84\x9d\xe9\x87\xa8\x16\xfa\xa8\x2e\xec\xe0\xcd\xc9\ +\x4d\xbe\x39\x79\xb1\x86\xf7\x32\x70\x6e\x8b\x0e\x0c\x17\xa6\x2f\ +\x44\x4a\x03\xc0\x78\x07\xbe\xaf\x19\x1c\x3c\x8a\x7b\xeb\x08\xee\ +\xa5\x76\x5e\x9f\x58\x65\x22\xbf\xc0\xdb\x6f\xbc\xca\xa7\x9f\x7d\ +\x0d\xb0\x0e\x38\x71\x02\xad\x39\xd2\x97\x43\x4c\xa8\xb2\xc1\xaa\ +\x68\x9b\x1a\xc3\xae\xdd\xdd\xb8\x37\x73\x94\xaf\xed\xe1\xbd\x53\ +\x77\x98\xc8\x2f\x30\xf6\xe5\xe7\xdc\xbe\x75\xbd\x06\xb5\x06\xb8\ +\x5b\x77\x30\x33\x13\xf8\x1c\xda\x61\x85\xc0\x4a\xa9\xc8\x73\xe7\ +\xfa\x61\x2a\xf3\x29\x46\xcf\xfc\xcd\xd8\xb7\x57\x19\x1d\x3d\x46\ +\xa6\x3b\x43\x69\x3d\x53\x83\xaa\x00\xda\xde\xea\x48\xf7\xf7\xf5\ +\x21\x08\xc6\x98\x26\x02\x80\x5d\xbb\xbb\x29\xff\x71\x88\xd2\xe5\ +\x14\x6f\xe5\xd7\x99\xcc\x5f\x65\xec\xab\x2f\xc8\x64\x32\x3c\x9c\ +\xcd\xb2\xbe\x72\x27\xd2\x1a\x3b\xc9\x00\xbe\xf6\x99\x99\x99\xad\ +\xcd\x3d\x1c\x74\x30\x50\xcf\xf3\x00\xb8\x7d\xf3\x59\x3e\xfa\xf1\ +\x27\x26\xf3\xbf\x73\xfc\xdd\x63\x14\x97\x96\x10\x84\x03\x07\x9e\ +\x42\xb5\x44\x5d\x8c\x40\x6b\x4d\xee\xf0\xa1\x48\x71\x6d\xb7\x78\ +\x5e\x95\x47\x1e\x7d\x8c\x17\x06\xf6\xb2\xff\xc5\x4f\x00\xf8\xfe\ +\xd4\x49\xba\x76\x76\x91\xcd\x66\x49\xa5\xda\x50\x4a\x61\x29\xeb\ +\xde\x04\x46\x6b\x66\x67\x67\x43\x60\xa2\xf3\xe0\xba\x2e\x00\x3f\ +\xfc\x72\x97\x73\x67\x7f\x46\x59\x8a\xae\xce\x4e\x6c\x3b\x49\x5b\ +\x5b\x92\x44\x22\x81\x52\xf1\xa4\x8e\x5b\xe4\x7b\x1c\x3c\xf8\x74\ +\x93\x7a\x31\x06\x5f\xfb\xfc\x75\xe3\x4f\x94\x05\x95\x8a\x43\x32\ +\x69\x07\xf3\xb1\xac\xe8\xcc\x68\xad\x31\x46\x6f\x4f\x50\xad\x56\ +\xd1\x5a\x87\xf6\x04\xfb\x1e\x15\xcc\xc5\x18\x83\x36\x3e\xc6\x37\ +\x24\x93\x36\x89\x44\xa2\x1e\x1b\x4a\x45\xef\x35\x38\x1b\x27\xd8\ +\xdc\xdc\x44\x6b\x1d\x78\xa3\x68\x52\xa8\x94\x42\x29\x85\x6d\xdb\ +\xc1\xef\xb0\xbb\xda\xdc\x1a\xb3\xab\xb1\x9a\x26\x52\x28\x14\x40\ +\x0c\x22\x06\x63\xea\xab\x51\xa9\xa5\x14\xad\x32\x83\x38\x21\xcc\ +\x26\xd9\xbe\x83\x8b\xbf\x9e\x65\x47\x9b\x0a\x22\x41\x24\x8a\x68\ +\x23\x26\x0c\x6a\x1a\x94\xab\xc8\xef\x1a\xa8\x11\xc3\xe5\x85\x2b\ +\xd4\xf7\x78\x73\xbd\xf2\x80\x1f\xfd\x7b\xad\x0f\x80\x27\x5b\xd3\ +\xd4\x06\xba\xc3\x95\xfc\x8f\xff\x64\x3c\x60\x05\x58\xf9\x07\xbb\ +\x78\x04\xf0\x58\x0d\x4c\x09\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ +\x00\x00\x04\x4b\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ +\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ +\xd2\x01\x07\x0b\x04\x27\xfe\xa6\x99\x03\x00\x00\x03\xc8\x49\x44\ +\x41\x54\x78\xda\xb5\x96\xc1\x4b\x1c\x67\x14\xc0\x7f\xdf\xb7\x3a\ +\x8b\xee\xae\x6e\xdd\x55\x10\xa3\x2b\x9a\x43\x2f\x5a\x0d\x7a\x70\ +\x84\x28\xe8\x65\x23\xae\x04\xeb\x51\x3d\xd4\xc3\x5e\x52\x30\x37\ +\xff\x02\x0f\x42\xc0\xff\xa0\x3d\x84\x1e\x96\x88\x94\x56\xd0\x9e\ +\x84\x44\xa3\xd2\x9a\x88\x20\xba\x4a\x52\xc1\x48\x58\x11\x5a\x75\ +\x67\x66\x67\xbe\x99\x5e\xdc\xa9\x6d\xa3\x96\x62\x3f\x78\xf0\x78\ +\xf3\x78\xbf\xef\xbd\xc7\x7b\xdf\xc0\xff\x7c\xc4\x75\x1f\x92\xc9\ +\x64\x2a\x97\xcb\x8d\x58\x96\xa5\x3b\x8e\xd3\xa0\x94\x02\x38\x04\ +\x56\x2a\x2b\x2b\x33\x1b\x1b\x1b\xdf\xff\x27\xc0\xe8\xe8\xe8\x83\ +\xb7\x6f\xdf\x3e\x93\x52\xf6\xf4\xf5\xf5\xd1\xda\xda\x4a\x2c\x16\ +\xc3\x75\x5d\x72\xb9\x1c\xeb\xeb\xeb\x2c\x2e\x2e\xe2\x38\xce\x72\ +\x5d\x5d\xdd\xd3\xb5\xb5\xb5\x5f\xfe\x35\xa0\xb7\xb7\x37\x75\x7c\ +\x7c\xfc\x42\xd7\xf5\x92\xe1\xe1\x61\x6a\x6a\x6a\x28\x2d\x2d\x45\ +\x08\x81\xeb\xba\xd8\xb6\x8d\x69\x9a\x7c\xf8\xf0\x81\xe7\xcf\x9f\ +\xb3\xba\xba\xea\x44\xa3\xd1\xe1\x83\x83\x83\x6b\xb3\x09\x14\x95\ +\xa1\xa1\xa1\x07\xd9\x6c\xf6\xa7\xc7\x8f\x1f\x97\x8c\x8f\x8f\x13\ +\x8f\xc7\x89\x44\x22\x54\x55\x55\x11\x8f\xc7\xa9\xae\xae\x26\x16\ +\x8b\x11\x0e\x87\x09\x87\xc3\xb4\xb4\xb4\x60\x18\x86\x7c\xf3\xe6\ +\xcd\xc8\xbd\x7b\xf7\x7e\x3c\x3d\x3d\x3d\xbe\x11\x50\x28\x14\xbe\ +\xd3\x75\xbd\x69\x62\x62\x82\x70\x38\x4c\x34\x1a\xa5\xba\xba\x9a\ +\x70\x38\x4c\x30\x18\x24\x10\x08\x10\x08\x04\x08\x06\x83\x44\x22\ +\x11\x42\xa1\x10\xcd\xcd\xcd\xec\xed\xed\xc9\xfd\xfd\xfd\xcf\x2d\ +\xcb\xfa\xe6\x53\x00\x09\xd0\xd6\xd6\x96\x72\x5d\xb7\x67\x6c\x6c\ +\x8c\xf2\xf2\x72\xa2\xd1\x28\xf1\x78\x1c\x4d\xd3\x08\x04\x02\x3c\ +\x7a\xf4\x88\x81\x81\x01\x1f\x22\xa5\x24\x14\x0a\xd1\xd4\xd4\x44\ +\x3a\x9d\xc6\xf3\xbc\x9e\xaa\xaa\xaa\xd4\xb5\x80\x5c\x2e\x37\x92\ +\x4a\xa5\xa8\xad\xad\x25\x14\x0a\x51\x51\x51\x81\x10\x02\x29\x25\ +\x42\xfc\xd9\x26\x21\x04\x42\x08\x1f\x22\xa5\xa4\xad\xad\x8d\x64\ +\x32\x89\x61\x18\x23\xd7\x02\x2c\xcb\xd2\xbb\xbb\xbb\xd1\x34\x8d\ +\x48\x24\x82\x10\x02\xcf\xf3\xf0\x3c\xef\x2f\xce\x45\xdb\x55\xbb\ +\x10\x82\xfe\xfe\x7e\x94\x52\xfa\xa7\x00\x25\x00\x4a\xa9\x86\xfa\ +\xfa\x7a\x82\xc1\xa0\x1f\x7c\x60\x60\xc0\x0f\x70\x65\x36\x7c\x40\ +\x26\x93\xf1\xf5\xfb\xf7\xef\x03\x34\xdc\x04\x40\x08\x41\x49\x49\ +\x09\x4a\x29\x94\x52\x78\x9e\xe7\xc3\x3e\x95\x81\x52\x0a\xdb\xb6\ +\x71\x1c\x07\xdb\xb6\xff\x91\xed\xdf\x01\x87\xef\xde\xbd\x6b\xaa\ +\xab\xab\xc3\xb6\x6d\x84\x10\xcc\xcd\xcd\xf9\xb5\x1e\x1c\x1c\x04\ +\x60\x7e\x7e\x1e\xc7\x71\x50\x4a\x61\x9a\x26\xb6\x6d\x53\x28\x14\ +\xd8\xdd\xdd\x45\x29\x75\x78\x6d\x0f\x3c\xcf\x5b\x59\x5a\x5a\xc2\ +\x34\x4d\x0a\x85\x02\x96\x65\x51\x28\x14\x7c\xdd\x75\x5d\x5c\xd7\ +\xf5\x6d\xa6\x69\x62\x18\x06\x96\x65\x61\x59\x16\x8b\x8b\x8b\xb8\ +\xae\xbb\x72\x2d\x40\x4a\x99\xc9\x64\x32\x64\xb3\x59\x0c\xc3\x20\ +\x9f\xcf\x63\x18\x86\x2f\x45\x40\x3e\x9f\xf7\xc5\xb2\x2c\x0c\xc3\ +\x60\x67\x67\x87\x85\x85\x05\x80\xcc\x4d\xab\x22\xa1\x69\xda\xb7\ +\x9d\x9d\x9d\x3d\xb3\xb3\xb3\x68\x9a\x86\x94\x12\x4d\xd3\xfc\x3e\ +\x08\x21\xfc\xfe\x14\x57\xc6\xc5\xc5\x05\x93\x93\x93\x6c\x6d\x6d\ +\x2d\x03\xbd\x37\x4d\xf2\x6f\x52\xca\xad\xa3\xa3\xa3\xaf\x3e\x7e\ +\xfc\x28\xdb\xdb\xdb\xfd\xe6\x15\xcb\x65\x18\x86\x5f\x9e\x7c\x3e\ +\xcf\xd9\xd9\x19\x33\x33\x33\xac\xae\xae\x3a\xc0\xd7\x40\xf6\xc6\ +\x55\xe1\xba\xae\x26\x84\x58\xde\xdd\xdd\x1d\xd9\xdc\xdc\x94\xf5\ +\xf5\xf5\x94\x95\x95\xf9\xc1\x8b\xf5\x3e\x3f\x3f\x67\x7b\x7b\x9b\ +\xe9\xe9\x69\x5e\xbf\x7e\xed\x00\x79\xe0\x4b\xe0\x14\xf8\xf9\xb6\ +\x75\x9d\x00\x62\x42\x88\x67\x52\xca\x9e\x87\x0f\x1f\xd2\xd5\xd5\ +\x45\x63\x63\x23\x00\x07\x07\x07\xbc\x7a\xf5\x8a\x97\x2f\x5f\x02\ +\x2c\x03\x4f\x81\x17\xc0\x67\x97\x97\x3d\x01\x9e\x00\x3f\xdc\xf6\ +\xe0\x24\x80\x2f\x80\x11\x40\xbf\x32\x44\x87\xc0\xca\x65\x43\x4f\ +\x80\x23\x80\xc6\xc6\xc6\x6d\x40\xbc\x7f\xff\x5e\x02\x36\x90\xbc\ +\xf4\xbb\xf5\x24\x6e\x90\xab\x3e\x27\xe9\x74\xda\xee\xe8\xe8\x30\ +\x80\xdf\x2f\xcb\x96\xb8\xcb\xa7\x37\x01\x9c\x4d\x4d\x4d\x29\x5d\ +\xd7\x1d\xe0\x0c\x38\xbf\x4b\x48\x31\x2b\x33\x9d\x4e\xdb\x89\x44\ +\xc2\xbe\x6b\xc0\x55\xc8\x31\xa0\x80\x1e\x20\x21\xee\xf8\x2f\xe5\ +\xea\x8d\x7f\x05\xf8\x03\xd8\xcb\xf0\xd4\x8e\x80\x5e\x37\x00\x00\ +\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x08\x96\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ +\xa7\x93\x00\x00\x08\x4b\x49\x44\x41\x54\x68\x81\xed\x99\x59\x6c\ +\x5c\xd5\x1d\x87\xbf\xbb\xcc\xea\x59\x3c\xbb\x97\xc4\x4b\xbc\x11\ +\x27\x26\x09\x01\x15\x2a\x14\xd4\x96\x50\xa9\x0b\x11\x09\xa8\x55\ +\x91\x20\x2f\x54\x95\xda\xbe\x54\x7d\xaa\x5a\x35\x20\x2a\xf1\x90\ +\x87\x2a\x40\xa1\x2a\x05\x4a\x68\x1a\x22\x91\x92\x86\xe0\x42\xd2\ +\x34\x24\x61\xb1\xe3\x38\xb6\x63\x3b\xc1\x8e\x67\xbc\x3b\x33\xe3\ +\x75\x3c\xcb\x9d\x99\xbb\xf4\xc1\xa4\x35\x59\x88\x1d\x4c\xcd\x83\ +\x3f\xe9\x3c\xcd\x3d\x67\xbe\xdf\x3d\x77\xce\xcc\xff\x3f\xb0\xc2\ +\x0a\x2b\xac\xb0\xc2\x17\x40\x58\x6e\x81\x9b\xb2\x0b\x91\x20\x15\ +\x38\x88\xf2\x18\xa9\xab\x5f\x16\x97\xc3\x69\xc1\xbc\x48\x0d\x21\ +\x3e\x10\x4c\x42\x1f\x09\x22\x3c\xce\xba\xab\x2f\x91\x96\xc3\xeb\ +\xa6\x18\x08\x04\xf9\x19\x08\x07\x03\x45\xc1\xca\xfa\xda\x3a\xd2\ +\x8a\x52\xa0\x8c\x2a\xe5\xb4\x70\x04\xc8\x5e\xb9\x54\x5e\x46\xcd\ +\xeb\xf3\xbc\x6d\xb5\xf0\xac\xfa\x8a\xc5\x6a\xfa\x56\x79\xd5\x2a\ +\xbe\x53\xbd\x86\x98\xa2\x70\x49\x17\x11\xf2\x92\xd5\x40\x0b\x01\ +\x33\x57\x2e\xff\x4a\x05\x90\xf6\x58\x1f\x13\x54\xfd\x59\x7f\x49\ +\xd0\xb5\xb1\xae\x8c\x9d\x95\x95\x1c\x8b\x46\x79\xbf\x3b\xcc\xec\ +\xe5\x64\xc6\x38\x66\x9c\x02\x94\xf9\x73\xbe\x12\x01\x6c\x7b\x6c\ +\xab\x54\x55\x7c\xc5\x24\x99\xee\x5f\x5d\x5b\xc4\xb6\xba\x4a\xb6\ +\x95\x96\xb2\x6f\x70\x90\xf7\x3a\xc3\x44\x7b\xc7\x33\xfa\x5f\xb5\ +\x17\xe9\xd7\x4f\x00\xa3\xf3\xe7\x2e\x7b\x00\xeb\x6e\xf7\x8f\xf5\ +\x1c\xbb\x7d\xa5\x2e\xe7\xda\xba\x12\x76\x56\x95\x53\xe3\x32\x73\ +\x70\x70\x84\x77\x3a\xc3\x44\x7b\x26\xb2\xfa\x81\xfc\xcb\x7a\xbb\ +\x7a\x18\xf8\x08\x50\xe7\xcf\x5f\xb6\x00\xce\xdd\x4e\xbf\xaa\x99\ +\xfe\x28\x49\xd2\xf6\xe2\x3a\x1f\x5b\xd7\xae\xe6\xc1\x32\x1b\x79\ +\x71\x98\xc6\x51\x0f\x6f\x75\x86\xb9\xdc\x3d\xa1\xaa\x87\x73\xaf\ +\x69\x2d\xf9\x43\xc0\x87\x40\xee\xea\x75\x96\x25\x80\xfd\x99\xd0\ +\x36\x2d\xaf\xbf\xe4\x0a\xd8\xfc\x55\xeb\x82\x3c\x5a\x53\x46\xd0\ +\xdb\xc7\x34\x59\x7a\x46\x6b\x38\xd0\xd6\xc7\x58\xc7\xa4\xaa\x1e\ +\xc9\xbe\xa6\x9d\x56\xfe\x0e\x9c\x66\xde\xc9\x33\x9f\xeb\x07\xd8\ +\x55\x61\xb5\xca\xd9\x90\xf2\xeb\xb1\x81\x25\x35\xdf\x55\x62\x77\ +\x48\xfa\x6e\x51\x10\x7f\x52\xb4\xd6\x2f\xdc\x53\x5b\xc4\xf6\x4a\ +\x3b\x31\xf3\x09\x14\xdc\x0c\x8c\xae\x67\x5f\x7b\x3f\xa3\x1d\x93\ +\x46\xfe\xb4\xf2\x56\xfe\x74\xfa\x2d\xe0\x24\x90\xb9\xd1\x92\xd7\ +\x7c\x13\x17\x3e\x5d\x5c\xae\x6b\xe2\x49\x41\x14\xca\xf4\xa4\xfe\ +\xb1\x31\xaa\x6d\x4b\xee\x8d\xc6\xbe\xa8\xbb\xf3\xa9\xd2\x7b\x04\ +\x43\xd8\x6b\x2d\x34\x57\x95\x37\x78\xf9\xc1\x6d\xa5\x54\x06\xe2\ +\x8c\xc9\x2d\x14\xe8\x41\x62\x97\x37\xf1\xfa\xf9\x61\x86\x5a\xc7\ +\xc9\x36\x25\x0f\x67\x0e\x4d\xfd\x05\x38\xc6\xbc\x23\xf3\x7a\x5c\ +\xb3\x03\x86\x6a\x7e\xc2\x19\xb4\x96\x15\xd7\xbb\x18\x39\x3f\x73\ +\x77\x4a\x4d\x35\x59\xb7\xb8\xbf\xa9\x9c\x9c\x89\xdc\x92\xf9\x9e\ +\x6a\x8b\x7b\x32\xf7\xa4\x80\xf0\x4b\xef\x1a\xa7\xd4\x50\xef\xe5\ +\xe1\x2a\x0f\x82\xf3\x13\xe2\xe2\x28\x36\xdd\x47\x32\xbe\x99\xbf\ +\x75\x8e\x30\x72\x76\x9a\x5c\xab\xf2\x5e\xe6\xd0\xd4\x3e\xe0\xf8\ +\xcd\xe4\xaf\x1b\x40\xcc\x4a\x26\x51\x17\x59\xef\x75\xe1\xdd\x6c\ +\xa5\x4b\x8b\x57\x24\x75\xf9\x38\xb0\xe8\x10\x85\xbf\xa9\xdc\x20\ +\x44\xf5\xd7\xcd\x2e\xeb\xfa\xe2\xf5\x6e\xb6\xd6\xf8\xb9\xbb\x4c\ +\x27\x65\xb9\x40\x96\x04\x66\xdd\x4d\x26\xb6\x91\x57\xce\x8f\x31\ +\x7c\x66\x86\x5c\x47\xe6\xfd\xf4\x9b\xf1\xd7\x80\x7f\x01\x53\x0b\ +\x79\x8f\x6b\x7e\x4a\x38\xbe\x5e\x38\x94\x4f\xf3\x53\xd5\x2b\x0b\ +\x8f\xd7\x17\x33\x61\x17\x99\x49\xa9\x85\x86\xcd\xb4\xc3\x70\xcb\ +\x87\xb5\xbe\xf4\xe4\x4d\x57\xdd\xb5\xce\xec\xbb\xd7\xf3\x3b\x11\ +\xf1\x55\x4f\x95\xa3\xe8\xf6\x3b\x03\xec\x6c\x08\xb1\xa6\x78\x96\ +\xac\x39\x8a\x86\x82\xa0\x59\x98\x8d\x35\xf0\x6a\x7b\x9c\xa1\xe6\ +\x69\xb2\x9d\xc9\x53\xc9\x03\x63\x7f\x66\xee\xb1\x59\xf0\x23\x7b\ +\x4d\x80\xf4\x07\xd3\x13\xf6\x3b\xfc\x5b\x74\x49\xaa\xf4\x15\x59\ +\xf8\xf6\x6a\x3f\x63\x26\x83\x44\x52\x77\x21\xcb\x3b\x64\x93\xf0\ +\x76\x6e\x30\x3d\x71\xa3\x05\x03\xbf\x5a\xb7\xd1\x96\xd3\xdf\xb5\ +\x14\x98\x1e\x2a\xd9\xe4\x11\xbf\xbb\x21\xc8\x83\x35\x2e\xac\xee\ +\x69\x54\x29\x85\x4e\x0e\x43\x17\x48\xc6\x6b\x78\xbd\x7d\x9a\xe1\ +\x33\x09\xb2\x17\x53\xcd\x89\xfd\xc3\x7f\x02\xde\x03\x2e\x2f\x54\ +\xfe\xba\x01\x00\x0a\xee\x0a\x0c\x6a\x0a\x3b\x33\x1e\x91\xfb\xcb\ +\xaa\xd9\xe8\xf7\x32\x20\x27\x99\x4d\xea\x2e\xdd\x6e\x79\x44\x74\ +\xca\x8d\xb9\x48\x32\xfe\x99\x49\x8f\x3c\x22\x05\xbf\x27\xfe\x56\ +\x34\x84\xbd\xee\x32\x5b\x51\xcd\xe6\x42\x7e\xb8\xce\x47\xc3\x6a\ +\x13\xa2\x2d\x8d\x26\x28\xe8\x64\xd1\x75\x9d\xd9\x68\x25\xfb\xce\ +\x27\x19\x6a\x4e\x90\xb9\x98\x6e\x9d\xd9\xd7\xff\x02\x73\x77\x7e\ +\x64\x31\xf2\x37\x0c\x90\x6e\x1e\xef\xb7\x6f\x0c\xee\xd0\x4c\x52\ +\xc8\xe1\xcb\x70\x5f\xc9\x03\xac\x72\xa6\x19\x92\x52\x24\x53\x38\ +\x0c\x93\x69\x87\xe8\x92\xfe\x1b\xc2\xff\x8b\x0d\xb5\x4e\xf7\xc4\ +\x11\x93\x55\x7e\x34\xb0\xc1\x29\x6e\xd9\x58\xc8\xf6\xb5\x5e\x8a\ +\xfd\x32\x82\x9c\x43\x63\x4e\x5e\xd3\x35\x66\x62\x25\xbc\xd1\x91\ +\x66\xe0\xa3\x24\xe9\x4b\xe9\xce\xa9\xfd\xfd\x7f\xc0\x30\x8e\x02\ +\x83\x8b\x95\xbf\x61\x00\x80\x82\x0d\xa1\x84\x96\x93\xb6\xe7\xfc\ +\x02\xf5\x01\x99\x3a\xcf\xd7\x08\x16\x4c\x31\x24\x65\x48\xa5\x05\ +\x07\xa2\xf5\x61\xc1\x69\x69\xf4\x3d\x54\xfd\x23\x49\x10\xdf\x74\ +\xac\xb2\x94\x97\xdf\xe1\x60\x5b\x83\x9b\x7b\xd7\xf8\x71\x3a\x44\ +\x34\x21\x8b\x86\x82\x46\x16\x55\xcf\x33\x19\xf5\x71\xa0\x5d\xa1\ +\xbf\x49\x41\x89\x64\x7a\xa6\x0e\xf4\x3e\x67\xe4\xf5\x63\xc0\xad\ +\x9d\x70\x9f\x17\x20\x55\x75\x5f\xb7\x53\x9a\x7a\x22\x6f\x11\x9d\ +\x85\x81\x24\xb5\xde\x0a\x8a\xec\xab\xf0\x17\x4c\x33\x2c\x2a\x64\ +\x52\x82\x43\xb4\xda\x76\x9a\xac\xf2\xf7\x3d\xeb\xac\xf2\x9d\x9b\ +\xec\x6c\xaf\xf7\x71\x5b\x89\x0f\xd9\xac\xa3\x31\x4f\xde\xc8\x31\ +\x11\x73\x71\xb0\x3d\xcf\x60\x53\x0e\x65\x40\x19\x1e\x3f\xd8\xfb\ +\xbc\x9e\x56\x8f\x01\x3d\xb7\x2a\xff\xb9\x01\xe8\xee\x36\x9c\xeb\ +\x8b\x44\x43\x95\xb6\xaa\x7e\x81\xea\x80\x80\xcb\xea\xc2\x6f\xf7\ +\xe3\xb3\x27\x18\x11\x73\x64\x55\xd1\x14\x6c\xb0\xf0\xc0\xed\x76\ +\xb6\xd6\x95\x12\xf2\x38\xd0\xc5\xdc\x55\xf2\x59\x62\x51\x3b\x87\ +\xda\x35\x06\x5a\x54\xd2\x61\x65\x64\xfc\xcd\x0b\xbf\xd7\x66\xb3\ +\x8d\xc0\x05\xc0\xf8\x72\x02\x00\xee\x6f\x54\x9c\x23\x21\xfc\x5c\ +\xb1\x89\x96\x50\x28\x45\xb9\x27\x00\xa2\x86\xb7\xc0\x85\xcb\x96\ +\x44\x76\xeb\xdc\x5f\xe7\x60\x73\x45\x09\x76\xab\x34\x4f\xfc\x53\ +\x79\x14\xe2\x71\x99\x77\x3a\x04\x22\x4d\x2a\xa9\x4b\xd9\xcb\xf1\ +\x43\x5d\x7b\xd4\x84\xf2\x4f\xa0\xfb\x8b\xca\xdf\x34\x40\xe2\xe3\ +\x61\xd5\x75\xdb\xaa\x10\xba\xe9\x6e\xd5\xab\xb3\x26\x20\x61\xb3\ +\xc8\x20\x68\xf8\x9d\x4e\x6a\x43\x05\x94\x7a\x5c\x88\x92\x3a\xf7\ +\x21\x9d\x27\xae\x91\x25\x1a\x13\x38\xd2\x2a\x13\x3e\xa3\x93\xee\ +\x55\xc7\xe3\xef\x74\x3e\x9b\x9f\x4a\x1f\x05\x3a\x96\x42\x1e\x16\ +\x50\xd4\xeb\x92\xfd\x69\x35\x2e\x64\x23\xfd\x70\x21\x3a\x4c\x8e\ +\x14\x79\x52\x18\x42\x1a\xb3\x59\x43\x15\x32\xa8\xa4\xc9\x93\x46\ +\x25\x83\x4a\x06\x8d\x2c\xc3\x51\x9d\xc6\x73\x12\x91\x56\x83\x4c\ +\x8f\x3e\x1d\x7f\xb7\xeb\x85\xdc\x44\xf2\x28\x70\x0e\xd0\x97\x42\ +\x1e\x16\x50\xd4\xcf\xb6\x47\x32\x85\x75\x65\xf5\x82\x61\x6a\xd0\ +\xbd\x79\x2a\x82\x60\x31\x1b\xe8\x7c\xf6\x59\xff\xdf\x50\x18\x89\ +\xea\x1c\x6f\x33\x13\x39\x2b\xa2\x5c\xd0\x67\xa3\xc7\xcf\xbf\xa8\ +\x5c\x9e\x6a\x04\xce\x00\xda\x52\xc9\xc3\x02\xdb\x2a\x82\x6c\x7b\ +\x52\x1d\x95\x8c\xc8\x80\x44\x5f\x2c\x4e\xfe\xd3\x5d\x98\x1b\x57\ +\xee\xfe\xdc\x18\x89\xab\xfc\xbb\xcd\x42\xf8\xac\x89\x4c\x97\x94\ +\x89\x9f\xea\x7a\x29\x33\x3a\xd1\x08\x34\x71\x55\x35\xb5\x14\x2c\ +\xa8\xad\x32\xdd\x71\x69\xc2\x53\x5b\xbd\x45\x10\xe5\x4a\xbd\x30\ +\x4f\x59\x71\x1e\xd9\x94\x9f\xb7\x0b\x73\x63\x6c\x5c\xe7\x44\xab\ +\x83\x70\xab\x05\xa5\x4b\xcc\xc6\x3e\x3a\xff\xd2\x6c\xff\xd8\x95\ +\x6a\x2a\xbf\xd4\xf2\xb0\x88\xc6\x96\xa0\x0a\x4f\x69\x03\x26\x06\ +\x86\x4d\xf4\x47\x53\x9f\xd9\x05\x95\x34\x23\xe3\x79\x4e\xb5\x16\ +\x10\x3e\x67\x25\xd7\x61\xca\xc5\x9a\xbb\x5e\x4e\x44\x86\xdf\x66\ +\xae\x8e\xbd\xa6\x14\x5c\x2a\x16\xdc\xd8\x9a\xbc\x78\x69\xc0\x57\ +\x55\xb7\x03\x59\x0a\x19\x85\x39\xca\x4a\x52\x88\x72\x16\x8d\x1c\ +\xd1\x49\xf8\xb0\xc5\xc3\xa5\x36\x27\xf9\x76\x8b\x1a\x3d\xd7\xb9\ +\x77\xba\x37\xfc\x0f\xe0\x04\x57\xb5\x41\x96\x9a\x45\xb5\x16\x05\ +\x95\x67\xb4\x88\x95\xa1\x21\x1b\x03\x51\x8d\x3c\x29\xa2\x53\x2a\ +\x1f\x9e\x75\xd1\xd7\xee\x24\xdf\x6a\xd7\xc7\x3b\x3e\x79\x63\xf2\ +\x93\xde\x2b\xf2\x37\x2c\x05\x97\x8a\x45\x05\xb8\xb8\x79\xd3\x7e\ +\x63\x96\xc1\x74\xd8\x4e\x4f\xd8\x4a\x74\x4a\xa3\xe9\xac\x8f\x70\ +\x9b\x17\xad\xa5\xc0\x98\xbc\xd0\x73\x30\xd6\xdd\x79\x90\x39\xf9\ +\x6b\x1a\xb1\x5f\x06\x8b\xeb\x8d\x9e\x38\x61\x04\xca\xd7\xca\x62\ +\xd6\xfa\x40\xce\xaf\x33\x99\x30\x13\x69\x0b\xa1\x35\x3b\x99\xe8\ +\x0d\xbf\x3d\xda\xd1\xf2\x06\x73\xd5\xd4\xf4\x97\x62\x7b\x1d\x16\ +\xdd\x9d\x0e\xe6\x1c\xcf\x19\x53\xf2\x54\xb2\xcf\xc5\x40\x47\x08\ +\xbd\xd9\xcd\x4c\xdf\xd0\xd1\x91\xf6\x8f\xf7\xb3\x88\x52\x70\xa9\ +\x58\x74\x77\xba\xbf\xbf\x4d\xf5\x97\x54\xe7\xa4\x89\xc2\xad\x44\ +\xec\x24\x86\x86\x4f\x46\xce\x1d\xdf\xcb\x9c\x7c\x74\xe9\x15\x3f\ +\x9f\x5b\xfe\x83\xc3\x13\x28\xbb\x37\x97\xcf\xde\x95\x9a\x8e\x0e\ +\x30\x77\x54\x8e\x2d\x9d\xd6\x0a\x2b\xac\xb0\xc2\x0a\xff\x27\xfe\ +\x03\x72\x48\xe3\xb0\x1d\x11\x42\x9d\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x09\x40\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x08\xd2\x49\x44\x41\x54\x78\xda\xed\ +\x99\x79\x70\x95\xd5\x19\x87\x9f\xf3\x6d\x77\xc9\xbe\x6f\x04\xb3\ +\x10\x43\x88\x44\xc4\x20\x8a\x20\xc5\x36\x18\x0a\x62\x15\xaa\x23\ +\xa8\x6d\xc5\x76\xb4\x5a\xa7\xa3\x4e\x3b\xb6\xce\xb4\x9d\xb1\x8e\ +\xfd\xc3\xa9\x8e\xb5\x55\x2b\x6e\x80\x20\x19\xb1\x08\x26\xb2\x88\ +\xa0\x20\xa2\x48\x58\x22\xa1\x2c\x22\x89\x82\x59\x09\x49\xee\xfe\ +\x7d\xdf\xe9\x31\x89\x93\xb1\xf8\x67\xb9\x89\x53\xde\x99\xdf\xdc\ +\x33\x73\xef\x9d\x79\x7e\xef\xf7\x9e\xf9\xde\xf3\x1e\x43\x4a\xc9\ +\x77\x39\x0c\xe0\xbc\x81\xf3\x06\xfe\x57\x06\xc4\xcd\x29\x7c\x6b\ +\x48\x94\x84\x92\x0e\xae\x18\x5c\xbb\xda\x80\x86\xd7\x02\xa4\x36\ +\x28\x47\xfc\xd7\xef\x07\xbf\x1f\x5a\x9f\xfd\xdf\xe1\xc8\x43\xf2\ +\x07\xe0\x72\x04\xcb\x60\x40\xed\x67\xe1\xec\xde\x3d\x2a\x9f\xc0\ +\x58\x5c\xb1\x1c\x87\x19\xe8\x12\x6c\xed\x62\x0c\xf7\x0e\x04\x3f\ +\x07\xb6\x8f\xf6\x12\xaa\xc4\x16\xaf\x5b\x1e\xb7\x6c\xec\xf5\xdd\ +\xb4\xf9\x63\x84\xf7\xfb\x88\x1d\x48\x1d\x8f\x64\x23\x9a\xbc\x17\ +\x78\x6e\xb4\x1a\x98\x4a\x4c\x5b\xa5\x99\x6e\xd1\xec\x25\x9f\xa3\ +\x55\x47\x38\xdd\xe6\xc5\x28\xe9\x20\x58\x14\x20\xd2\x90\xa7\x9c\ +\x68\x7f\x43\x97\x67\x80\xba\xd1\x66\x60\x0e\x51\xf1\x8c\x37\x25\ +\x56\x38\xfb\x17\xad\x8c\x9f\xd2\xcb\xc9\x3e\x3f\x09\xc2\x43\x58\ +\x97\xf8\x2e\xe9\x07\xb3\x95\x48\x7d\x81\x87\x90\xf1\x0c\xba\x6c\ +\x06\x9a\x46\x89\x01\x39\x9f\x88\xbe\x32\x31\x3b\xe2\x9f\x73\x57\ +\x2b\x45\x13\xfb\x09\x07\x0d\xd2\x4d\x9b\x7c\xbf\xe4\x84\xeb\xc3\ +\x13\x05\xaa\x02\xc8\x40\x1b\xd1\xfa\x31\x69\xe8\xf2\x69\xe0\x1a\ +\x20\x30\xd2\x06\x16\x13\xd5\x96\x26\xe7\x85\x3d\x73\xee\x6a\x61\ +\x6c\x45\x88\x88\x82\x97\x52\x43\x13\x50\x99\xd0\x47\x77\x2c\x91\ +\x5e\x69\x62\xc5\xfc\xb8\xea\x49\x38\xc7\x7b\x70\x9a\x53\xaf\xc4\ +\x74\x6f\x04\x5e\x18\x21\x03\x02\xe0\x37\x84\xb5\x87\xb3\x4a\x02\ +\xe6\xbc\x7b\x5a\x49\xcf\x8b\x0e\xc1\x0b\x40\xe0\x48\x48\xd4\xa3\ +\xcc\xcf\x29\xa1\xbe\xa3\x93\xce\x40\x17\x96\x6e\xe1\x4c\xeb\x21\ +\x70\x2c\x09\x5c\x6d\xf1\x08\x1a\xe0\x41\x82\xfa\x23\xf9\x13\xfa\ +\x98\x7b\x67\x2b\xc9\x99\x36\xb1\xb0\xf1\xb5\x31\x24\x2e\xae\x94\ +\x94\x25\x5e\x4d\x55\x4a\x0d\x53\xd2\x74\x1e\x3f\xb6\x82\x23\x7d\ +\x2d\x58\xf9\x31\x42\xc9\x36\x6e\xb7\x35\x69\x24\xf6\x80\x8e\xe4\ +\x51\xa2\xe2\x81\xe2\xcb\x7a\xa8\xb9\xf5\x24\x49\xe9\x0a\x3e\x32\ +\x0c\xaf\xd0\xd1\x30\xa9\x48\xbe\x9a\xf2\xa4\xef\x91\xee\x29\xe3\ +\x82\x84\x14\xee\x2e\x6e\xa3\xae\x73\x05\xcd\x07\x34\xce\x84\x74\ +\x10\xf4\xc5\xdb\x80\x89\x94\x4b\x89\xea\xb7\x96\x28\xf8\x79\x4b\ +\xbe\xc0\xb4\x24\xb1\xa8\x01\x00\x08\x5c\xe9\x20\x30\xa8\x4c\xa9\ +\x65\x5c\xe2\x55\xe4\x7a\xcb\xd1\x30\xf8\xa4\x77\x1b\x27\xec\xf5\ +\xf8\x5a\x22\x74\x2c\xcb\xc1\x0d\xea\x41\x0c\xf9\x60\x1c\x0d\xc8\ +\x64\xa4\x78\x8a\xa8\x76\xcb\xb8\xe9\x5d\xd4\x2c\xfe\x12\xc3\x00\ +\x3b\xa6\x33\x0c\x6f\x23\xb0\xa8\x4a\x9d\x4f\x49\xe2\x15\x64\x7b\ +\xc6\x21\xd0\x39\x12\xd8\xce\xde\x40\x1d\x7b\x1a\xdb\x79\xfb\xe9\ +\x7c\xfa\xdb\x8d\x5e\x3c\xf2\x36\x60\x6d\x9c\x0c\x88\x4c\x5c\x56\ +\x61\x8b\xef\x57\xd6\xb6\x33\xf5\x87\x5d\x58\x06\x38\x8e\x40\x22\ +\x00\x0d\x47\x3a\x58\x22\x91\x8b\x53\xaf\x67\x6c\xc2\x64\x72\x3d\ +\x15\x38\xd2\xa6\xb9\x7f\x33\xfb\x82\x75\xec\xda\xde\xcf\xd6\x67\ +\xc7\x10\x0d\x68\x2d\x0a\x7e\x11\xb0\x23\x3e\x2f\x32\x41\x2e\x0e\ +\x6b\x71\xc5\x65\xe5\xb3\x3b\x98\x54\xdb\x8d\xa9\x03\x2e\x80\x18\ +\xca\x7c\x0c\x4b\x4b\x64\xd2\x57\xf0\xfe\x29\xaa\x6c\x2a\xb0\xdd\ +\x10\xff\xee\xdf\xc6\xde\xd0\x4a\xde\xdf\x12\xe3\xdd\xa5\x05\xd8\ +\x11\xed\x04\x96\x5c\x08\xec\x8e\x53\x2b\x21\x27\xe2\x68\xcf\x0b\ +\x5d\x56\x97\x5f\xd3\xce\x45\x33\xce\xa0\x4b\x94\x86\xe1\x1d\x05\ +\xef\xd7\x33\x54\xe6\x6f\xa0\xd0\x7f\xe9\x40\xd9\x44\x9c\x3e\x95\ +\xf9\x4d\xec\xeb\xff\x17\xef\xd5\x3b\xec\xaa\xcb\xc5\xb6\x69\x54\ +\xf0\x8b\x91\x34\xc7\xab\x99\xab\xc6\x16\xab\x84\xe1\x96\x8e\x9f\ +\xdb\x41\xe9\xe4\x00\xba\x0b\xa6\x01\x86\x0e\x20\x88\x49\x87\x24\ +\x23\x9b\xc9\xa9\x37\x92\xef\x9b\xa8\xe0\x2f\x24\xe0\x9c\xe6\x60\ +\x5f\x03\x7b\x7b\xd7\xf2\xee\x3a\x9d\x0f\x57\x67\x83\xc6\x76\x0c\ +\x95\x79\x57\xb4\xc5\xe7\x40\x23\x98\x8a\xea\x28\x75\xaf\x93\x57\ +\x5c\xd3\x45\xfe\xc4\x20\x9a\x0d\xba\x05\xa6\x0e\x02\xb0\xa5\x4b\ +\xb2\x99\xc3\xe4\x94\x85\x83\xf0\xde\x72\x7a\x63\x1d\x34\x07\x36\ +\xd0\x78\x66\x0d\xef\xbc\xe6\xa5\xf1\x8d\x2c\x30\xe5\x66\x04\xb7\ +\x7c\x0d\x1f\x0f\x03\x0b\x14\xfc\x73\x7a\x82\x9d\x7a\x41\x6d\x27\ +\x39\x25\x11\x74\x07\xcc\x21\x78\x53\x80\x23\x21\xdd\x1a\xc3\x25\ +\xa9\x37\x91\xe7\xad\x24\x53\x95\x4d\x77\xb4\x85\xa6\xc0\x3a\xf6\ +\x76\x35\xf0\xd6\x4b\x29\x1c\xd9\x91\x0a\x96\xb3\x12\x21\x96\x28\ +\xf8\x50\xbc\x8e\x94\x8b\x15\xfc\x3f\xf4\x64\x3b\x29\xbf\xa6\x93\ +\xd4\xc2\x18\x9a\x03\x86\x05\xa6\x06\x96\x92\x03\xaa\x54\x8a\x54\ +\xcd\xff\x98\x3c\xcf\x04\x32\x3c\xc5\x74\x45\x4f\x28\xf8\xd7\x69\ +\x6c\xdf\xc4\x86\x97\x53\x38\xba\x33\x19\x2c\xf7\x59\xa4\xb8\x07\ +\x49\x2c\x5e\x67\xe2\xbb\x88\x89\x27\x8c\xac\x88\x99\x31\xfd\x34\ +\x49\xb9\x36\x86\x03\x96\xa5\xa4\x83\xa1\xa4\x09\x28\xf0\x8d\xa7\ +\x32\x65\xbe\xca\xfc\x45\xa4\x99\x85\xb4\x47\x8e\x29\xf8\x35\x7c\ +\xd4\xba\x8d\x4d\xcb\x53\x39\xf1\x71\x32\x78\xdd\x47\x90\xe2\x8f\ +\x4a\xb1\x38\x1c\xea\x05\x4a\xbf\xc7\xe6\x61\x2d\x27\x42\xd2\x95\ +\x3d\xf8\x33\x9c\x01\x78\xd3\x1c\x2a\x1b\x0d\x34\xa5\xc2\x84\xf1\ +\x4c\x4a\x5d\x48\xb6\xa7\x82\x54\xab\x90\xb6\x70\x33\xfb\x02\xaf\ +\xb2\xbb\x65\x07\x6f\xfe\x33\x87\xf6\xc3\x7e\x07\xbf\xf3\x10\x52\ +\x3c\xaa\x14\xaf\xa9\x84\xfc\x33\x8e\xfc\x1d\x39\x51\xbc\x57\x9c\ +\xc1\x93\xec\x62\xb8\xc3\x65\x63\x28\x21\xa0\x34\xb1\x8a\x4b\xd3\ +\xae\x57\xf5\x5e\x46\x8a\x91\xcf\xa9\x70\x13\xfb\x83\xab\xd8\x75\ +\xec\x43\xde\x7a\x31\x9b\x8e\x63\x5e\x1b\x9f\x7b\x1f\x52\x3c\x19\ +\xaf\xb1\x8a\x07\xf8\x3b\xb6\xb8\x9d\xc2\x10\xfa\xc5\xfd\x58\x3e\ +\x89\x29\x87\xb2\xae\x0f\xc2\x6b\x02\x26\xa6\x4d\xa3\x3a\x7d\xf6\ +\xc0\x0b\xca\xaf\x67\xf2\x79\x68\x0f\xfb\x82\xaf\xb0\xa3\xa9\x89\ +\x8d\x2f\x67\xd3\x7b\xca\x13\xc4\xeb\x2e\x42\x6a\x6b\x91\x10\x0f\ +\x03\xd6\x40\x53\xe6\x68\x8b\x29\x0a\xc1\x84\x00\xa6\x22\xb7\x00\ +\x4b\x53\x1a\x82\xd7\x05\x54\x29\xf8\xc9\x69\xb5\xe4\xf9\x2a\x48\ +\x30\x32\x68\x0d\xee\x61\x7f\x68\x39\xdb\x0f\x34\xd1\xf0\x7c\x1e\ +\xc1\xd3\x66\x97\x82\xbf\x15\x57\x34\xc4\x67\xb0\x25\xc8\xc2\xe5\ +\x79\x60\x1e\xa5\x41\x28\x0f\x22\x04\x98\x62\x38\xf3\xba\x18\x2c\ +\x9f\xea\xac\x59\x4c\xc9\xac\xa1\xc0\x3f\x1e\x9f\x9e\xc0\x67\xc1\ +\x9d\x2a\xf3\xcb\x78\x67\xe7\x71\xde\x59\x9d\x4b\xa8\x57\x3f\x8e\ +\x47\xde\x8e\x23\xb6\xc6\x6b\x32\x67\x02\x2f\x83\xa8\xa5\x2c\x08\ +\xe3\x22\xe0\x80\xc1\x37\x37\xab\xa9\x0b\x66\xe4\xcc\xe1\xd2\x8c\ +\x99\x14\xfa\xcb\xf1\xea\x7e\x8e\x07\xb7\xd3\xd8\xbf\x9c\x2d\x3b\ +\x5a\xd9\xba\x3a\x07\x3b\xac\x1f\xc5\x94\xf3\x91\xa2\xf9\xdc\x8c\ +\x16\x85\xcb\x59\x21\xc4\x4c\x6c\x6a\xc9\x0d\x43\xc9\x20\x3c\xf2\ +\x9b\xf0\x3e\xc3\x54\xf0\x3f\x60\x92\x82\x1f\xa3\x32\xef\xd1\x7d\ +\x0a\x7e\x1b\x8d\xbd\x2b\xd8\xfc\xde\xe7\x6c\x7d\x2d\x07\x69\x8b\ +\xbd\x58\xf2\x26\x5c\x71\xf8\xdc\xcd\x46\x35\xc9\x59\x21\xb9\x03\ +\x03\xac\x62\x97\xa8\x00\xdc\xc1\x72\xb1\xf4\x41\x78\xbf\x61\x31\ +\xbb\xe0\x3a\x95\xf9\xcb\x29\x4e\xac\x44\x10\xe5\x70\xa0\x81\x7d\ +\x7d\xcb\x78\xb3\xbe\x8f\x8f\x36\x64\x83\x60\x23\x86\xfc\xa9\x82\ +\x3f\x75\x6e\x87\xbb\xe2\x2c\x03\x13\x88\x45\xe7\xce\x2a\xbd\x88\ +\x84\x42\xc9\xfa\xce\xbd\xa0\x0d\x35\x66\x02\x12\x15\xfc\xbc\xb1\ +\x0b\x54\xe6\x2f\xa3\x28\xa9\x62\xa0\x45\xfe\x34\xb4\x99\x03\x7d\ +\xcb\x59\xbf\x2e\x40\xe3\xd6\x74\xd0\xe5\x06\x04\x5f\x65\xfe\x0c\ +\x40\x7c\x0d\x48\xf9\x80\x61\xea\x89\xbf\xbe\x7c\x36\x49\xf9\x89\ +\xbc\x7d\xfa\x20\x21\x37\x0a\x40\xa6\x37\x85\x1f\x15\x5d\xcb\xa4\ +\x74\x05\x9f\x58\x46\xcc\x0d\x71\x28\x50\xcf\xfe\xae\xd7\xd8\xf4\ +\x56\x3f\x4d\xef\x0f\xc0\xbf\x08\xe2\x57\x48\xfa\x61\x38\xe2\x55\ +\x42\x05\x44\x22\x0b\x66\x5e\x38\x99\x59\x65\x55\xf8\xbd\xe9\xdc\ +\x3e\x76\x1e\x4f\x1d\x5d\xc3\x98\xb4\x2c\x16\x14\x5f\xc7\xa4\xcc\ +\x4b\x28\x4d\x1e\x4f\xc8\xe9\xe6\x60\x7f\x3d\xbb\x3b\x57\xb2\xe5\ +\x0d\xf8\x74\x4f\x2a\x58\xee\x13\x20\xee\xc3\xfd\xb6\x8d\x05\xe7\ +\x7e\x13\x4b\x16\xa1\x91\xbc\xa8\x6a\x3a\x1e\x6f\x32\x61\xcd\xe0\ +\xa1\x8a\x3b\x39\x10\x38\x81\xe1\xf5\x52\x9d\xa5\x6a\x3e\xa9\x94\ +\xde\x58\x3b\xfb\xfb\xd6\xb3\xeb\xcb\x3a\xd5\xcb\x0b\xbe\x68\x4e\ +\x00\x9f\xfb\x18\x52\x3c\xa0\xe0\xf9\x46\xc4\xb1\x84\xf2\xb0\xed\ +\xfb\xa7\x97\x4d\xe4\xda\xca\x69\x84\x85\x01\x86\x45\x96\x37\x83\ +\x35\x33\x97\x72\xdb\xce\xfb\x79\xe5\xe8\x5a\x6e\x2e\x9b\xcb\x91\ +\xd0\x46\x76\x1c\x5f\xcf\x07\x0d\x3a\xdd\x2d\x7e\xf0\xca\x7b\x71\ +\x87\x5b\x83\x91\x32\x70\x03\x8e\xcc\xb9\x2a\x77\x0a\x59\x69\xb9\ +\xf4\xc5\x24\x9a\x95\x40\x4c\x37\xc8\xf0\xa4\xf3\x66\xcd\x4b\x3c\ +\x79\x68\x29\x7f\xd9\xf5\x24\x9d\x27\x0f\xd3\x79\xc8\x20\xd0\xe6\ +\x75\xb1\xdc\x25\x48\xed\x45\x80\x91\x34\x60\xa8\xcf\x9f\xe0\xf8\ +\x79\xfa\x95\x83\xcc\x28\x3e\x46\xed\xf4\xa9\x80\x1f\x2c\x1f\x5d\ +\x3d\xed\xbc\x7f\x74\x0f\x2d\xcd\x1d\x9c\xfa\x38\xc0\xc9\x2f\x0d\ +\x94\xbb\x56\x3c\xee\x6f\x91\x62\x25\x12\x46\xda\xc0\x42\x34\x77\ +\x0a\x3d\x39\x74\x77\x84\xf9\xe5\x5f\xeb\x78\x35\xb3\x00\x33\x05\ +\xd6\x36\x6e\x62\xc5\x07\xeb\x38\x72\xf2\x18\xc4\x6c\x1b\xd3\xf7\ +\x31\x1e\xbd\x1e\x29\x5f\x40\x8a\x56\x00\x18\x59\x03\x3a\x9a\xbc\ +\x9b\xde\x24\xe8\xcc\x80\x94\x18\xc7\xc3\x9f\x30\xeb\xf1\x9f\xe1\ +\xf8\x7b\x09\xf7\xf6\xc7\x10\xda\x61\x0c\x6b\xb3\xd2\x6a\xa4\xf8\ +\x50\xc9\x1e\xce\xfa\xc8\x1b\xa8\x06\xa6\xe1\xe8\x50\xf4\x19\x24\ +\xf7\x82\x61\x3b\x01\xc7\x3d\x40\x58\x5b\x85\xc7\xb3\x19\x29\x9a\ +\x94\x22\x48\x40\x8e\xbe\x6b\xd6\xb9\x48\x34\xd2\x7a\x24\x82\x43\ +\x38\xda\x4a\x5c\xb1\x19\x61\xee\x41\x43\x41\x8f\xfe\x7b\xe2\x04\ +\xe0\x4f\x48\xb6\x28\xf0\xdd\x48\x82\xdf\xa9\x7b\x62\xf9\x8c\xbc\ +\xff\xfc\x4d\xfd\x79\x03\xff\x67\x06\xfe\x03\x1b\x85\x94\x1a\x1f\ +\xbe\x73\xb2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x08\x58\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ +\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ +\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ +\x79\x71\xc9\x65\x3c\x00\x00\x07\xea\x49\x44\x41\x54\x78\xda\xed\ +\x57\x6b\x6c\x14\xd7\x15\x3e\xf7\xce\xec\x7a\xd7\x76\x36\x7e\xcb\ +\x4e\x00\x97\x85\x04\x27\x04\x28\xe0\xda\x78\xcd\x8a\x26\x31\x76\ +\x6c\x13\x27\x8e\xb0\x1b\xa2\x18\xc5\xb4\x34\x22\x52\x15\x4a\xca\ +\x8f\xa8\xf4\x47\x9b\x56\xaa\xd2\x87\xaa\x3a\xa1\x52\x10\xa2\x55\ +\xdd\x28\x8a\xa5\x22\x12\x22\xa7\x34\xb1\x1d\xdb\x3c\x6d\x8c\xa1\ +\xf1\x0f\xc0\x8f\xf8\x0d\xc6\x6b\xf0\xae\x3d\xbb\x3b\x3b\x8f\x7e\ +\x33\xf6\x76\x65\x66\x41\xfc\xcb\x9f\x5e\xe9\x6a\x76\x66\xee\x9c\ +\xef\x3b\xdf\x39\xe7\x9e\xbb\x4c\xd7\x75\xfa\x36\x07\xa7\x6f\x79\ +\x88\xd1\x1f\xbf\xcc\xcd\x25\x55\x51\x88\x18\x23\xa8\x92\xc8\x38\ +\x3f\xe4\x4a\x49\x79\x31\x18\x08\x9c\x51\x65\xf9\x67\x58\x78\x87\ +\x43\x2d\xae\x69\x26\x6b\x86\xdf\xc2\xe2\x6f\xba\x5b\x45\xdc\xc3\ +\x46\x12\x63\xec\x37\xc9\xc9\xc9\x2f\x48\x81\x40\x1b\xbe\x3b\x20\ +\x32\x76\xdb\xfc\x1e\xf3\x47\x73\x73\x51\x02\x4b\x87\xa6\x69\x5c\ +\x13\x84\xdf\x7d\x7f\xed\xda\x37\xf2\x67\x67\xe9\x9a\xcb\xf5\xc4\ +\xbf\xc6\xc6\xb2\x35\x59\xde\x0d\xb0\x19\x7a\x80\xa1\xe9\x7a\x02\ +\x28\x35\x14\xaf\x5b\x57\x9f\xb7\x6c\x19\x0d\x4a\xd2\x6b\xa7\x5b\ +\x5b\x5d\x6a\x24\xb2\x9b\x0b\xc2\xfc\x3d\x43\xa0\xa9\x2a\x8f\x30\ +\xf6\x7b\xef\x86\x0d\x6f\x94\x80\xa1\x0b\xaa\xe4\x87\x42\x54\x9a\ +\x99\x59\xc9\x44\xf1\x98\xaa\xeb\xae\x07\x00\xb7\xa9\x9a\xd6\x50\ +\xe8\x76\xd7\x6f\xca\xc9\xa1\xa4\xf5\xeb\x69\xa3\xdb\x4d\x9e\xed\ +\xdb\x5f\xc2\xf3\x0f\x40\xc2\x01\x95\x2d\x04\x4c\xc9\x34\x51\x7c\ +\x6f\x5b\x51\xd1\x4f\xb7\xdf\xbe\x4d\x7a\x59\x19\x89\x1f\x7d\x44\ +\xda\x81\x03\xf4\x5d\x9f\x8f\x9e\x4b\x4d\xad\x12\x6d\xb6\x26\x8d\ +\x28\xe7\x3e\xe0\x2e\x78\x7e\xd4\x93\x9b\xbb\x77\x63\x7a\x3a\xe9\ +\xd5\xd5\x64\x3b\x78\x90\xb4\x92\x12\xda\xb8\x72\x25\x6d\xdd\xb9\ +\xf3\x15\xe2\xfc\x43\x4d\x51\xb2\x2c\x04\x60\xf8\xe7\xdb\xbc\xde\ +\x7d\x15\xf0\x5c\x7c\xfa\x69\x12\xf6\xef\x27\x1a\x1b\x23\x7b\x55\ +\x15\xb1\x43\x87\x68\xed\xcc\x0c\x95\x3b\x1c\xa5\x82\x28\x1e\x85\ +\x12\x29\x77\x83\xc3\x01\x51\x67\xac\x61\x6b\x56\x56\xdd\x06\xa7\ +\x93\x58\x6d\x2d\x25\x94\x96\x12\x8d\x8f\x93\x50\x58\x48\xac\xb8\ +\x98\x36\xe5\xe5\x51\x71\x5d\x5d\x35\x13\x84\xdf\x5a\x08\x3c\x94\ +\x99\x59\xe3\x31\xa4\xe1\x78\xf4\xe6\x9b\x44\x13\x13\x44\x7e\xbf\ +\x69\xc0\x51\x51\x41\xec\xed\xb7\x69\x15\xee\x9f\x15\x84\x72\xc4\ +\xb1\x11\xde\xa6\x51\x8c\xbc\x43\x65\xec\xf0\x16\x97\x6b\xf7\x13\ +\xa2\x48\x6c\xd7\x2e\x4a\x34\xc0\x6f\xde\x24\x0a\x04\xcc\x2b\xcb\ +\xcf\x27\x4a\x4b\xa3\x75\x20\x91\x91\x97\x57\x66\x21\x10\x9a\x99\ +\x69\xef\x33\xc0\x51\x09\xfa\xb1\x63\x64\xc6\x29\x18\x5c\x30\x00\ +\x25\x9c\x30\xc8\x41\xc2\x1d\x0e\xd3\x33\x8a\x52\x29\x72\xde\xa8\ +\xc1\x24\xa6\x91\x70\x87\x0b\x45\x71\x6f\x1e\xc0\xa9\xae\x8e\x92\ +\x10\x3e\xba\x75\x6b\xe1\x5b\x49\x22\x52\x55\xd2\xbb\xba\x4c\x87\ +\x86\xe0\x90\x7f\x68\xa8\xdb\x52\x86\x5a\x28\x74\xf0\xf3\x8e\x8e\ +\x2c\xf2\x78\x76\x14\x7e\xfc\x31\x29\x00\x17\x77\xec\x20\x9a\x5f\ +\x4c\x5a\x18\x4a\x42\x68\x28\x12\x21\xf7\x3b\xef\x90\x9d\xa8\xbc\ +\x35\x21\xe1\x84\xa2\xeb\x92\x57\xd3\x4a\x57\xa3\xb4\x6c\x00\x77\ +\x81\xa8\x09\x8e\x7b\x73\x38\x1c\xa4\x5e\xbe\x4c\xbc\xb7\x97\xfa\ +\x61\xa3\xbd\xb1\xf1\x82\x2a\x49\xfb\xa3\xb8\xff\xdb\x09\x7f\xf5\ +\xe8\xa3\xa4\x45\x22\xe9\xdc\x6e\xff\x5b\x45\x41\x41\x65\x7e\x7f\ +\x3f\x29\x95\x95\x24\x96\x97\x9b\x24\x60\x70\x41\x95\xe4\x64\xf2\ +\xb7\xb6\x52\xf0\xdd\x77\x69\x14\x9e\xc9\x82\x40\x6e\x82\x0c\xfb\ +\xf6\x51\xea\xf3\xcf\x2f\xac\x85\x4d\x73\x6d\x42\x02\x29\x43\x43\ +\xc4\x2f\x5d\xa2\x61\x54\x53\x6b\x53\xd3\x05\x45\x92\x6a\xc4\x84\ +\x84\x91\x3d\x58\x67\x29\x43\xce\xb9\x8f\x42\xa1\x57\xff\xdd\xdd\ +\xdd\x7c\x65\xc5\x0a\x62\x27\x4e\x90\xfc\xe9\xa7\xa6\x31\x53\x4a\ +\x24\xa8\x11\x4f\x57\x51\x11\x39\x90\xa4\xd9\x00\x5a\x01\xa5\x6c\ +\xf5\xf5\x94\x8a\x4c\xa7\xe9\x69\x73\x4d\x54\xf6\x48\x5f\x1f\xe9\ +\x9d\x9d\x34\x8a\x50\x7c\x75\xfc\x78\x8f\x32\x3f\x5f\x2b\xda\xed\ +\x23\x06\xc1\xb8\x0a\xe0\xa3\x05\x46\x8a\x92\x63\x73\x3a\xff\x5a\ +\xf2\xf8\xe3\xa5\x4f\x21\x19\x19\x64\xb5\x7b\x3c\x04\x72\x31\xef\ +\x12\x13\xe9\x4e\x7b\x3b\xc1\x28\x65\x20\xe6\xd1\x77\x98\xa6\xe7\ +\xf2\xe8\x28\xa9\xdd\xdd\x34\x81\x9c\xea\x68\x6b\xbb\x24\x07\x02\ +\x3f\x80\xe7\xd7\xa3\xe0\x7b\x24\xe9\xde\x04\x04\x3c\xd3\x15\xc5\ +\xc5\x6d\xb6\xbf\x97\xb8\xdd\x55\x4f\x4d\x4e\x92\x0e\x0f\x9d\x20\ +\x01\xef\x62\x24\xec\x76\x43\xb6\x18\xf8\x62\xcc\xc3\x23\x23\xa4\ +\xf4\xf4\xd0\xa4\x2c\x53\xfb\xd9\xb3\xe7\x91\x4f\xb5\x00\x5f\xe2\ +\x39\x08\x2c\x4d\x42\x3d\x76\x35\xa7\xc0\xb9\x1f\xdb\x6f\x7d\xdb\ +\xe0\xe0\x3f\xec\xcb\x97\x3f\xe7\x6e\x6e\x26\x09\x06\x13\x37\x6f\ +\x36\x01\xa3\x89\x89\x11\x03\x07\xa1\xd0\xd5\xab\x24\x23\xe3\xa7\ +\x91\x33\x1d\xbd\xbd\x5d\x6a\x38\xbc\x2b\x2a\xfb\x7d\x9b\x51\x32\ +\xa4\x8a\x2e\x62\xb8\x32\xc2\x10\x84\x19\x34\xa2\x5d\x5f\x0e\x0f\ +\x7f\xa2\x64\x66\x7a\xbf\x73\xea\x14\x31\xa8\xe4\xc4\xf6\x4a\xb2\ +\x1c\x03\x66\xcc\x58\x4b\xe1\xc1\x41\x92\xce\x9d\xa3\x69\xd8\x3a\ +\xd3\xdf\x7f\x45\x09\x85\x5e\xc0\xc6\x35\xf9\x40\xdd\x50\x84\x41\ +\xdd\x00\x66\x6c\xc1\x29\x5c\x99\x71\x45\x99\x29\x91\x88\x24\xdb\ +\x6c\xa4\xa3\x04\x6f\xb7\xb4\x98\x57\x8e\x1c\x40\x7f\x30\xc0\xcd\ +\x7b\x10\xa5\x59\x78\x6f\x83\x2a\x6a\x52\x12\x45\x64\x39\xcc\x34\ +\xcd\xcf\xf1\xdc\xec\x80\xb0\x6d\x76\x51\x4c\x81\xc8\x9a\x84\x7f\ +\x4a\x4d\x5d\x42\x00\x3f\x16\xba\x1a\xe7\x7f\xf1\xae\x5a\x55\xff\ +\xe4\xd4\x14\xf9\x86\x87\x29\x62\xe4\x28\xa6\x8e\x44\x43\xef\x30\ +\x89\x72\x63\x72\x4e\x22\xb6\x60\x01\x33\xed\x91\x47\xc8\x70\xfb\ +\x74\x57\xd7\x67\x0c\x1d\x10\x34\x67\xee\x26\x50\x8b\xfb\xa5\x65\ +\x68\x6d\xcb\x36\x6c\x32\x0d\x85\x6b\xd6\xd4\xaf\x43\x5b\xf6\x03\ +\x5c\x37\x0c\x44\xdf\x63\x47\x94\x51\x01\x11\x94\x9d\x06\x05\x18\ +\x08\x80\x85\x79\xf5\xa3\x79\x2d\xc3\x7e\x51\x54\x5c\x5c\x89\xfb\ +\x63\xda\x7d\xba\x28\xbf\x07\xb8\x0b\x9e\x1f\x2d\xde\xb4\x69\xef\ +\x66\xd4\xb0\xff\xda\xb5\x25\xe0\x2c\x36\xcd\xd8\x33\x4c\x28\x16\ +\x7b\x07\x12\x81\x1b\x37\x68\x25\x54\x2d\x2a\x2b\xab\x12\xec\x76\ +\xb3\x8b\x3e\x10\x01\x5d\xd3\x44\x8d\xf3\x06\x6f\x51\x51\x5d\x21\ +\xf6\x6e\xe9\xeb\xaf\x01\x1e\x1b\x51\x10\x15\x33\x05\x33\x1d\x53\ +\xb3\xda\x35\x49\xcc\xa1\x87\xb8\xd1\x96\x3d\xd5\xd5\xa5\x28\xe9\ +\xa3\x1a\x3e\xb9\x2f\x01\x80\x3b\x20\xfb\x61\x8f\xd7\xbb\x3b\x1f\ +\xed\x57\xba\x78\x31\xea\x79\x6c\x44\xc1\x11\xff\x08\x6a\x7e\x1e\ +\xa5\x97\x0e\x05\x20\xf3\x92\x75\xa6\x22\x58\x33\x8f\xd0\xe5\x42\ +\x89\x82\x9a\x9a\x72\x24\x6d\x23\xec\xa5\xc5\x25\x80\x04\x4c\xc6\ +\x51\xec\xfd\x2d\xa5\xa5\x7b\xb7\x20\xe6\x41\x94\x93\x1a\x2f\x3c\ +\x06\x38\x80\x65\xc4\xf8\x0c\xe7\xff\x39\x4d\x74\x61\x16\xde\xa6\ +\xe3\x59\x3c\x25\x08\xe4\xa4\x81\x01\x5a\x9d\x9d\x4d\xf9\x75\x75\ +\x95\xe8\x35\x06\x89\x6c\x0b\x01\x48\xf6\xeb\xe2\xb2\xb2\x3d\x5e\ +\x80\x2b\xed\xed\xa6\x31\x16\x07\xfc\x61\x00\xcf\xc1\xa3\x8e\x48\ +\xa4\x2b\xac\xeb\x15\x78\xb6\xfd\x6c\x30\x78\xf2\x16\x14\x48\x45\ +\x69\xaa\x66\x17\xb4\x2a\x11\xbe\x7e\x9d\xd6\xe0\x88\xf7\xbd\xd7\ +\x5f\x2f\xe7\x4e\xe7\x1f\x2d\x04\x92\xb2\xb2\x76\xac\x77\x21\x59\ +\xbf\xf8\x22\xae\xe7\xba\x01\x8e\xf7\x81\xcc\x4c\xea\xf4\xfb\x2f\ +\xc8\xaa\xba\x53\x24\x1a\x83\x01\x3f\xd4\x7b\xad\xcb\xe7\xfb\xec\ +\x96\xaa\x52\x2a\xd6\x20\x94\x96\xbc\xd1\xa1\x84\x8a\xe6\xb4\x0a\ +\x07\x92\x94\xd5\xab\xb7\x59\x08\x04\xa7\xa6\xbe\xbc\x66\xb4\x48\ +\xaf\x37\xae\xe7\x0f\x21\x99\x02\x38\xe1\x76\xfa\x7c\x3d\xb2\xa2\ +\xd4\x8a\x8c\x8d\xc4\x9c\x64\x3e\x54\xce\xab\x17\xc7\xc6\x9a\x7d\ +\x8a\x42\x0f\xe3\xe4\xa3\xdf\xad\x04\x9e\x0b\x8f\x3d\x46\x23\xd8\ +\x2d\x67\x87\x86\xba\x2c\x04\xb8\xaa\xfe\xa2\xb3\xb9\xf9\x78\x0f\ +\x36\x11\x7b\x41\x41\xec\x85\x01\x8e\xf8\xf9\x96\x2f\xa7\xb6\xf1\ +\xf1\x4b\xe1\x70\xf8\x65\x1b\xe7\xc3\x96\x6c\xe6\xfc\x8e\xaa\x28\ +\x3f\x3c\x7f\xf5\xea\xa9\x1b\x92\x44\x2e\x10\x26\x90\x40\x72\x99\ +\x87\x98\x04\x9c\x8c\xbf\x41\x78\xcf\x1f\x39\x72\x46\x99\x9b\x7b\ +\xcb\x42\x00\xb5\x3c\xc5\x64\xf9\x95\xce\x93\x27\x3f\xbc\x0c\x12\ +\x4e\x34\x1d\xe3\x65\x32\xbc\xbe\x81\x8f\xbf\x1a\x18\x38\x1f\x0e\ +\x06\x5f\x14\x39\xbf\x1e\x83\xb5\x90\x98\x04\x89\x9a\xee\x2b\x57\ +\x3e\x19\x87\x9a\x06\x71\x06\x12\x49\x38\x11\x8f\xa0\xa4\xcf\x1d\ +\x39\xd2\xa2\xfa\xfd\x2f\x09\x44\x03\x71\xcb\x50\xb0\xd9\x42\xa2\ +\xae\xff\xf8\x5c\x4b\xcb\x3f\xfb\x32\x32\xc8\xb1\x75\x2b\x4d\x20\ +\x71\xda\xfb\xfa\xba\x14\xa3\xab\x09\xc2\x88\x25\x37\x18\x33\xe3\ +\x1d\x9d\x9c\x31\x3f\xc2\x51\xdf\xdb\xdd\xfd\xf9\x04\x40\x9d\x90\ +\x7d\x1c\xbb\xe5\xc5\xa6\xa6\xd3\x68\x60\x75\x00\xbf\x49\xf1\x7a\ +\xc1\xfb\x88\x5b\xb4\x69\x20\x5e\xa9\x30\xf4\x87\x8c\x9c\x9c\x67\ +\x66\xa7\xa7\x7b\x71\x8c\xfa\x09\x17\x84\x51\x8a\x33\x9c\x0b\x5d\ +\x31\xd6\x41\x17\xaf\xb0\x92\xc1\x45\xf1\xcf\x29\x39\x39\xc5\xfe\ +\xa9\xa9\x6e\x38\xf0\x16\xbc\xfd\x26\xfa\x5d\xcd\x22\xee\xff\xff\ +\x1d\xff\x17\xef\xd2\xfe\x9f\xb7\x3d\x84\x48\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x10\x78\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\xc8\x00\x00\x00\xc8\x08\x06\x00\x00\x00\xad\x58\xae\x9e\ +\x00\x00\x10\x3f\x49\x44\x41\x54\x78\x5e\xed\x9d\x0b\xac\x1e\x45\ +\x15\xc7\xcf\xd9\x7b\xdb\x42\x20\x42\x89\x06\x15\x09\x04\x08\x12\ +\xde\xa2\x3c\x0c\x82\x10\x04\xc4\x08\x04\x63\x45\xe5\x91\x02\x16\ +\xa9\xb6\x77\x67\xbf\xde\x46\x5e\x89\x25\x18\x21\xb5\x37\x3b\x7b\ +\xfb\x00\x0a\x3e\x80\x04\x4c\x4d\x90\x48\x22\x0a\x28\x68\x10\x91\ +\x00\x51\x8b\x12\x83\x84\x87\x8f\x08\x11\x83\x3c\xe5\xb6\x77\xc7\ +\x0c\x7e\x90\x4b\xbd\x8f\xdd\xb3\x33\xfb\xed\xec\xfe\x27\x21\x97\ +\xa4\x73\xce\xcc\xfc\xce\xfe\xf2\xed\xf7\xd8\x19\x26\x34\x10\x00\ +\x81\x19\x09\x30\xd8\x80\x00\x08\xcc\x4c\x00\x82\xe0\xea\x00\x81\ +\x59\x08\x40\x10\x5c\x1e\x20\x00\x41\x70\x0d\x80\x80\x8c\x00\x5e\ +\x41\x64\xdc\x10\xd5\x11\x02\x10\xa4\x23\x85\xc6\x32\x65\x04\x20\ +\x88\x8c\x1b\xa2\x3a\x42\x00\x82\x74\xa4\xd0\x58\xa6\x8c\x00\x04\ +\x91\x71\x43\x54\x47\x08\x40\x90\x8e\x14\x1a\xcb\x94\x11\x80\x20\ +\x32\x6e\x88\xea\x08\x01\x08\xd2\x91\x42\x63\x99\x32\x02\x10\x44\ +\xc6\x0d\x51\x1d\x21\x00\x41\x3a\x52\x68\x2c\x53\x46\x00\x82\xc8\ +\xb8\x21\xaa\x23\x04\x20\x48\x47\x0a\x8d\x65\xca\x08\x40\x10\x19\ +\x37\x44\x75\x84\x00\x04\xe9\x48\xa1\xb1\x4c\x19\x01\x08\x22\xe3\ +\x86\xa8\x8e\x10\x80\x20\x03\x2c\x74\x1c\xc7\x4b\x98\x79\x15\x33\ +\x3f\x1d\x45\xd1\x92\xb1\xb1\xb1\x3f\x0e\x70\x3a\x18\x7a\x1a\x02\ +\x10\x64\x40\x97\x85\x52\xea\x5b\x44\x34\x3a\x65\xf8\x2b\xb4\xd6\ +\xab\x06\x34\x1d\x0c\x3b\x03\x01\x08\x52\xf3\xa5\xa1\x94\xda\x93\ +\x88\x32\x22\x3a\x6d\x9b\xa1\x21\x48\xcd\xb5\x28\x32\x1c\x04\x29\ +\x42\xc9\x51\x9f\x24\x49\x4e\xca\xf3\x3c\x63\xe6\xfd\xa6\x49\x09\ +\x41\x1c\x71\x76\x99\x06\x82\xb8\xa4\x39\x4b\xae\x38\x8e\x97\x31\ +\xf3\xda\x59\xba\x40\x90\x9a\x6a\x51\x66\x18\x08\x52\x86\x96\xa0\ +\xaf\x31\x86\x93\x24\xb1\xb7\x54\xcb\xe7\x08\x87\x20\x02\xbe\xbe\ +\x43\x20\x88\x47\xc2\x71\x1c\x7f\x90\x99\xad\x1c\x27\x17\x18\x06\ +\x82\x14\x80\x54\x77\x17\x08\xe2\x89\x78\x92\x24\xa7\x1a\x63\xd6\ +\x13\xd1\xee\x05\x87\x80\x20\x05\x41\xd5\xd9\x0d\x82\x78\xa0\x9d\ +\x24\xc9\x0a\x63\xcc\x9a\x92\xa9\x21\x48\x49\x60\x75\x74\x87\x20\ +\x0e\x29\x27\x49\xb2\xbd\xfd\x08\xd7\x18\xb3\x44\x90\x16\x82\x08\ +\xa0\xf9\x0e\x81\x20\x8e\x08\x2f\x5f\xbe\xfc\x90\xa1\xa1\x21\x7b\ +\x4b\x75\xb4\x30\x25\x04\x11\x82\xf3\x19\x06\x41\x1c\xd0\x8d\xe3\ +\x78\x51\x14\x45\xd7\x19\x63\x16\x56\x48\x07\x41\x2a\xc0\xf3\x15\ +\x0a\x41\x2a\x92\x4d\x92\xe4\x72\x63\xcc\x95\x15\xd3\xd8\x70\x08\ +\xe2\x00\xa2\xeb\x14\x10\x44\x48\x54\x29\xb5\x33\x11\x6d\x20\xa2\ +\x2f\x08\x53\x6c\x1b\x06\x41\x1c\x81\x74\x99\x06\x82\x08\x68\x26\ +\x49\x72\x04\x11\x6d\x34\xc6\x1c\x22\x08\x9f\x29\xe4\x0d\x22\x7a\ +\x99\x99\x5f\x36\xc6\xbc\x6c\xff\xdf\xfe\x8d\xa2\xc8\xfe\xfd\x37\ +\x11\xbd\x48\x44\xcf\x19\x63\x36\x2f\x58\xb0\x60\xf3\xea\xd5\xab\ +\xff\xee\x70\x6c\xa4\x9a\x81\x00\x04\x29\x79\x69\xc4\x71\x7c\x2e\ +\x33\xdf\x40\x44\xf3\x4a\x86\xba\xee\xfe\x02\x11\x6d\xb6\xff\x59\ +\x69\x86\x86\x86\x36\x47\x51\xb4\x79\xcd\x9a\x35\xaf\xba\x1e\xa8\ +\xcb\xf9\x20\x48\x89\xea\x27\x49\x72\xb5\x31\xe6\x6b\x25\x42\x6a\ +\xef\xca\xcc\x0f\x10\xd1\x1d\xc6\x98\x9f\x68\xad\x7f\x5b\xfb\x04\ +\x5a\x36\x20\x04\x29\x50\xd0\x38\x8e\x77\x65\xe6\xeb\x89\xe8\xd4\ +\x02\xdd\x9b\xd4\xe5\x49\x2b\x0b\x11\xfd\x82\x88\xee\xd3\x5a\xdb\ +\xdb\x34\xb4\x12\x04\x20\xc8\x1c\xb0\x94\x52\xc7\x11\x91\xbd\xa5\ +\xda\xbb\x04\xd7\x26\x76\x7d\x85\x88\xee\x61\xe6\xbb\xa3\x28\xda\ +\x34\x36\x36\xf6\xcf\x26\x4e\xb2\x69\x73\x82\x20\xb3\x54\x24\x49\ +\x92\xaf\xf4\x7f\x4f\xd5\xb4\xba\x55\x9d\xcf\x73\x44\xb4\xc9\x18\ +\xb3\x29\xcb\xb2\xfb\xab\x26\x6b\x73\x3c\x04\x99\xa1\xba\x71\x1c\ +\x1f\xc9\xcc\x0f\xb6\xb9\xf8\xfd\xb5\xdd\xc5\xcc\x9b\xe6\xcd\x9b\ +\xb7\x69\xf5\xea\xd5\xf6\xd3\x33\xb4\x29\x04\x20\xc8\x0c\x97\x83\ +\x52\x6a\x31\x11\x7d\xb7\x43\x57\xcb\xb3\xf6\x55\x85\x88\x6e\xd5\ +\x5a\x3f\xda\xa1\x75\xcf\xba\x54\x08\x32\x03\x9e\x24\x49\x76\x31\ +\xc6\xdc\x4d\x44\x87\x75\xec\x62\xd9\xc2\xcc\xe3\x13\x13\x13\x6b\ +\xd7\xaf\x5f\xff\x4c\xc7\xd6\xfe\x7f\xcb\x85\x20\xb3\x5c\x01\x8b\ +\x17\x2f\xde\x6e\xe1\xc2\x85\xd7\x1b\x63\xce\xee\xda\x85\x62\x8c\ +\xf9\x87\x15\x65\x78\x78\x78\xbc\xcb\xdf\xad\x40\x90\x02\x57\xbe\ +\x52\xea\x12\x22\xfa\x66\x81\xae\x6d\xec\xf2\x18\x11\xad\xd5\x5a\ +\x6f\x6c\xe3\xe2\xe6\x5a\x13\x04\x99\x8b\x50\xff\xdf\x93\x24\x39\ +\xdd\x18\x63\x3f\xee\x7d\x77\xc1\x90\xb6\x75\xb3\xdf\xa5\x8c\x6b\ +\xad\x6f\x6b\xdb\xc2\x66\x5b\x0f\x04\x29\x51\xed\x5e\xaf\xb7\x6f\ +\x9e\xe7\xf6\x0b\xc3\x63\x4b\x84\xb5\xad\xeb\x46\x66\xbe\x24\x4d\ +\xd3\x7f\xb5\x6d\x61\xd3\xad\x07\x82\x08\xaa\x1c\xc7\xf1\x35\xcc\ +\x7c\x91\x20\xb4\x2d\x21\x8f\x1a\x63\x2e\xce\xb2\xcc\x7e\x88\xd1\ +\xea\x06\x41\x84\xe5\x55\x4a\xd9\x6d\x7c\xc6\x85\xe1\xd3\x85\x5d\ +\x41\x44\xf6\x27\xf4\xf6\x3f\xfb\xe0\xd5\xb6\x7f\x77\x74\x38\x96\ +\xab\x54\x97\x6a\xad\xaf\x72\x95\xac\x89\x79\x20\x48\x85\xaa\xc4\ +\x71\x7c\x22\x33\xdb\x37\xaf\x76\x3b\xd1\xaa\x6d\xd6\xe7\x41\x46\ +\x47\x47\x77\xd8\xb2\x65\xcb\xfe\xcc\x7c\x00\x33\xef\x9f\xe7\xf9\ +\x9b\x7f\x1d\x8d\x5d\x65\xee\xb7\xe5\x79\x7e\xf1\xf8\xf8\xf8\x13\ +\x55\x92\x34\x35\x16\x82\x54\xac\xcc\x8a\x15\x2b\xf6\xc8\xf3\x7c\ +\x83\x31\xe6\x53\x15\x53\x89\x1e\x98\xea\x7f\x5f\x63\xf7\xdd\xfa\ +\x64\x7f\xff\xad\x5d\x2b\xce\x43\x12\x6e\xbf\x2f\xb9\x44\x6b\x7d\ +\xab\x24\xb8\xc9\x31\x10\xc4\x51\x75\xa6\xd9\xad\xbd\x6c\x66\x91\ +\x20\xdb\x0e\xd2\xeb\xf5\x8e\xcf\xf3\xfc\x04\x22\x3a\x91\x88\xec\ +\x83\x5d\x75\xb6\xab\xb4\xd6\x97\xd6\x39\xa0\xef\xb1\x20\x88\x43\ +\xc2\x4a\xa9\x2f\x11\xd1\x75\x44\x14\x09\xd2\x3a\x11\x64\xea\xb8\ +\xf6\x97\xc8\xc6\x98\xd3\x98\xf9\x74\x22\xda\x4b\x30\xa7\xd2\x21\ +\xcc\x7c\x63\x9a\xa6\xf6\x67\x3a\xad\x68\x10\xc4\x71\x19\xe3\x38\ +\x3e\x96\x99\xed\xf6\x3f\x07\x96\x4c\xed\x5c\x90\xb7\xc6\xbf\xf0\ +\xc2\x0b\xe7\xed\xb8\xe3\x8e\xa7\xe5\x79\x6e\x45\x39\x4b\x28\x70\ +\x99\xe5\xdc\xa3\xb5\xb6\xaf\x60\xc1\x37\x08\xe2\xa1\x84\x2b\x57\ +\xae\x7c\xef\x96\x2d\x5b\xec\x9e\xbc\x9f\x2b\x91\xde\x9b\x20\x53\ +\xe7\xd0\xeb\xf5\x0e\x31\xc6\x9c\x6f\x8c\xb9\x80\x88\x76\x28\x31\ +\xbf\xb2\x5d\x1f\x9f\x98\x98\x38\x62\xc3\x86\x0d\xf6\x39\x94\x60\ +\x1b\x04\xf1\x58\xba\x38\x8e\xaf\x64\xe6\xcb\x0b\x0e\x51\x8b\x20\ +\x6f\xcd\xc5\x7e\xe9\x39\x45\x14\x5f\xbf\x0e\xb0\x9b\x4d\x1c\xaa\ +\xb5\x7e\xba\x20\x83\xc6\x75\x83\x20\x9e\x4b\xa2\x94\x3a\x87\x88\ +\xd6\x11\xd1\xbb\xe6\x18\xaa\x56\x41\xa6\x88\xb2\x7b\x9e\xe7\xf6\ +\xd5\xe4\xeb\xbe\x50\x0c\x0d\x0d\x7d\x64\x6c\x6c\xec\x11\x5f\xf9\ +\x7d\xe6\x85\x20\x3e\xe9\xf6\x73\xdb\x87\xaf\xa2\x28\xd2\xc6\x98\ +\xa3\x66\x19\x6e\x20\x82\xbc\x35\x9f\xfe\xa3\xc5\x56\x12\xfb\x88\ +\xb1\xf3\xc6\xcc\x07\xa7\x69\x6a\x77\x61\x09\xaa\x41\x90\x9a\xca\ +\xb5\x74\xe9\xd2\x85\x0b\x16\x2c\xd0\x44\x74\xee\x0c\x43\x0e\x54\ +\x90\x29\xa2\xd8\x83\x44\x7d\xbd\x9a\x2c\x0c\x6d\xe3\x08\x08\x52\ +\x93\x20\x53\x2e\xc0\xcb\x88\xe8\x1b\xd3\x0c\xdb\x08\x41\xec\xbc\ +\x3c\xbe\x9a\x3c\xab\xb5\xde\xa3\x66\xe4\x95\x86\x83\x20\x95\xf0\ +\xc9\x82\x7b\xbd\xde\x22\x7b\x98\x27\x11\xbd\x6f\x4a\x86\xc6\x08\ +\x32\x45\xe6\x6d\x8f\xaa\x96\x2d\xf8\x9d\x51\xb7\x6b\xad\xcf\x70\ +\x91\xa8\x8e\x1c\x10\xa4\x0e\xca\xd3\x8c\x61\x3f\x6e\xed\x4b\xf2\ +\xf1\xfe\x3f\x9f\xa7\xb5\xfe\xde\x80\xa6\x33\xe3\xb0\xfd\x0f\x19\ +\xac\x28\xce\x7e\xc2\x62\x8c\xb9\x3a\xcb\x32\xfb\x10\x5a\xe3\x1b\ +\x04\x19\x60\x89\xec\x81\x3b\xc6\x18\xfb\x29\xd7\xfb\xb5\xd6\xf6\ +\xde\xbf\x91\x2d\x8e\xe3\x83\x99\xd9\x4a\x72\x92\xc3\x09\xae\xd4\ +\x5a\x97\x3d\x85\xcb\xe1\xf0\xc5\x52\x41\x90\x62\x9c\xd0\xeb\x7f\ +\xef\x4d\x5c\xdf\x72\x5d\xa0\xb5\xfe\x4e\x93\xe1\x42\x90\x26\x57\ +\xa7\x81\x73\x53\x4a\xd9\x4f\xb8\x9c\xbd\xda\x31\xf3\x89\x69\x9a\ +\xde\xd3\xc0\xa5\xbe\x39\x25\x08\xd2\xd4\xca\x34\x78\x5e\x8e\x25\ +\x79\xb4\x2f\x49\x23\x1f\xe1\x85\x20\x0d\xbe\x10\x9b\x3c\xb5\x38\ +\x8e\x57\x32\xf3\x6a\x17\x73\xb4\x1b\x83\xa7\x69\x7a\xa1\x8b\x5c\ +\xae\x73\x40\x10\xd7\x44\x3b\x94\x4f\x29\x65\x4f\xd7\xba\xc5\xc5\ +\x92\x99\x79\x69\x9a\xa6\xd7\xba\xc8\xe5\x32\x07\x04\x71\x49\xb3\ +\x83\xb9\x7a\xbd\xde\x09\x79\x9e\xbb\x78\x0f\xf1\x52\xff\x56\xeb\ +\xa1\x26\x61\x84\x20\x4d\xaa\x46\xa0\x73\x71\xb5\x8f\x31\x33\xdf\ +\xbb\xd3\x4e\x3b\x9d\xb4\x6a\xd5\xaa\xad\x4d\x41\x01\x41\x9a\x52\ +\x89\xc0\xe7\x11\xc7\xf1\xe5\xcc\x5c\xf9\xb4\x5f\x66\x1e\x4b\xd3\ +\x74\xb4\x29\x38\x20\x48\x53\x2a\xd1\x82\x79\x28\xa5\x6e\x9c\xe5\ +\xc7\x98\x85\x57\x68\x8c\x39\xa6\x29\xe7\x96\x40\x90\xc2\x65\x43\ +\xc7\xb9\x08\xf4\x7f\xb1\x7c\x27\x11\x1d\x39\x57\xdf\xd9\xfe\x9d\ +\x99\x7f\x90\xa6\x69\x99\xa7\x31\xab\x0c\x37\x6b\x2c\x04\xf1\x86\ +\xb6\x9b\x89\x57\xac\x58\xf1\xb1\xc9\xc9\x49\xfb\xa6\x7d\x41\x15\ +\x02\xcc\xfc\x99\x34\x4d\x7f\x58\x25\x87\x8b\x58\x08\xe2\x82\x22\ +\x72\xbc\x83\x80\x52\xaa\x47\x44\x63\x15\xb1\xd8\x43\x47\x8f\xaf\ +\x98\xa3\x72\x38\x04\xa9\x8c\x10\x09\xa6\x23\xa0\x94\xfa\x3e\x11\ +\x9d\x59\x91\xce\x97\x07\x7d\xec\x02\x04\xa9\x58\x41\x84\x4f\x4f\ +\x20\x49\x92\xbd\xfa\x27\x74\x55\xd9\x8f\xeb\x0f\x13\x13\x13\x47\ +\x0d\x72\x67\x14\x08\x82\x2b\xdc\x1b\x81\x38\x8e\xcf\x64\x66\xfb\ +\x4a\x22\x6e\xcc\x7c\x59\x9a\xa6\x03\x3b\xbc\x08\x82\x88\x4b\x87\ +\xc0\x22\x04\x94\x52\x76\x47\x97\xaf\x16\xe9\x3b\x43\x9f\x67\xe6\ +\xcf\x9f\x7f\xd0\xa0\x4e\xe0\x85\x20\x15\x2a\x87\xd0\xb9\x09\xd8\ +\xcd\xbd\x27\x27\x27\x7f\x45\x44\xbb\xcd\xdd\x7b\xc6\x1e\x4b\xb4\ +\xd6\xf6\x74\xaf\xda\x1b\x04\xa9\x1d\x79\xf7\x06\x54\x4a\x29\x22\ +\x4a\xa5\x2b\x37\xc6\xfc\x2c\xcb\xb2\x4f\x48\xe3\xab\xc4\xd5\x2a\ +\x48\xaf\xd7\xb3\x9b\x94\xed\x5d\x65\xc2\x88\xf5\x4a\xe0\xa5\xd7\ +\x5e\x7b\x6d\xf3\xc6\x8d\x1b\xb7\xb8\x1e\x45\x29\x75\x1f\x11\xbd\ +\xf5\xfc\xbd\x24\xfd\xf1\x5a\x6b\x9b\xa3\xd6\x56\x8b\x20\xfd\x47\ +\x35\x3f\xdb\x80\xc3\x5e\x6a\x85\x1b\xe8\x60\x6f\x10\xd1\xc3\x44\ +\x74\x93\xcb\x8f\x58\xe3\x38\xfe\x34\x33\xdf\x21\x65\x62\x8c\xb9\ +\x36\xcb\xb2\xa5\xd2\x78\x69\x9c\x57\x41\x94\x52\x47\x13\xd1\xfd\ +\xd2\xc9\x21\x6e\xe0\x04\xee\xd4\x5a\x57\x3d\x18\xe8\xed\x45\x28\ +\xa5\xbe\x4d\x44\xe7\x0b\x57\xf5\x22\x33\x1f\x98\xa6\xe9\xdf\x84\ +\xf1\xa2\x30\x6f\x82\x28\xa5\xec\x9e\x4f\x76\xd3\xe2\xf9\xa2\x99\ +\x21\xa8\x11\x04\x5c\xfe\xe4\xa3\x7f\x34\x84\x3d\x4e\x5a\xd4\x8c\ +\x31\xa3\x59\x96\x55\xfd\x86\xbe\xd4\xd8\x3e\x05\xb9\x9d\x88\xec\ +\x79\x14\x68\x61\x13\x78\x72\x62\x62\xe2\x50\x57\x5f\xd6\x29\xa5\ +\x7e\x2a\xdd\x3e\x88\x99\x1f\x4c\xd3\xf4\xa3\x75\xe2\xf4\x29\xc8\ +\x63\x44\x74\x40\x9d\x8b\xc1\x58\x7e\x08\xe4\x79\x7e\xf4\xf8\xf8\ +\xf8\x03\x2e\xb2\x8f\x8c\x8c\x9c\x17\x45\x91\x78\xab\x9f\x3c\xcf\ +\x0f\x1a\x1f\x1f\xb7\xd7\x56\x2d\xcd\xa7\x20\xf6\x6c\x88\xb9\xb6\ +\xfc\xaf\x65\x91\x18\xa4\x1a\x01\x97\xcf\x8b\xdb\xcd\xf2\xf2\x3c\ +\xdf\xcc\xcc\xa2\x4f\x33\x99\x59\xa5\x69\x6a\xb7\x6d\xad\xa5\xf9\ +\x14\xc4\xd4\xb2\x02\x0c\x52\x07\x01\xa7\xfb\x06\x2b\xa5\xec\xe6\ +\xdd\x76\x13\x6f\x49\xfb\x91\xd6\xba\xb6\x5b\x77\x08\x22\x29\x51\ +\xf7\x62\x9c\x0a\x32\x32\x32\x72\x60\x14\x45\xd2\xb3\x42\x5e\x1d\ +\x1e\x1e\xde\x6b\xcd\x9a\x35\xcf\xd7\x51\x06\x08\x52\x07\xe5\xf0\ +\xc7\x70\x2a\x88\xc5\xa1\x94\xfa\x31\x11\x9d\x22\x44\xf3\xc5\xba\ +\xce\x64\x87\x20\xc2\x0a\x75\x2c\xcc\x87\x20\xcb\x89\x68\x5c\xc8\ +\xf1\x06\xad\xf5\x12\x61\x6c\xa9\x30\x08\x52\x0a\x57\x67\x3b\x3b\ +\x17\x24\x49\x92\x7d\x8c\x31\x4f\x48\x88\x1a\x63\x9e\xca\xb2\xac\ +\xca\x73\x26\x85\x87\x85\x20\x85\x51\x75\xba\xa3\x73\x41\xaa\xde\ +\x66\xd9\xf3\x1e\xb3\x2c\xfb\x8d\xef\xaa\x40\x10\xdf\x84\xdb\x91\ +\xdf\x97\x20\xe2\xdb\x2c\x63\x4c\x9c\x65\x99\xf4\x16\xad\x70\x55\ +\x20\x48\x61\x54\x9d\xee\xe8\x45\x90\x8a\xb7\x59\xb7\x64\x59\x76\ +\x96\xef\xaa\x34\x51\x10\xfb\x93\x66\xf1\xef\x75\x7c\x03\x0b\x3c\ +\xbf\xf4\xf4\x5a\x2f\x82\xf4\x6f\xb3\x7e\x47\x44\x07\x97\xe5\x6a\ +\x8c\x79\x32\xcb\xb2\x7d\xca\xc6\x95\xed\xdf\x48\x41\x9a\xb0\xdd\ +\x4b\x59\x90\x4d\xef\xdf\x3f\xb9\xf6\x5e\xe1\x3c\x7d\x0a\x72\x13\ +\x11\xd9\x63\xe8\x4a\xb7\xad\x5b\xb7\xee\xb5\x6e\xdd\xba\xa7\x4a\ +\x07\x96\x08\x80\x20\x25\x60\x85\xdc\xb5\xc1\x82\xd8\x7d\x78\xed\ +\xd1\x6e\xa5\x1b\x33\x9f\x95\xa6\xa9\x93\xe3\x17\x66\x1a\x1c\x82\ +\x94\x2e\x4b\x98\x01\x4d\x15\x24\x49\x92\x63\x8c\x31\xbf\x14\x52\ +\x5d\xaf\xb5\x5e\x26\x8c\x2d\x14\x06\x41\x0a\x61\x0a\xbf\x53\x53\ +\x05\x59\xb4\x68\xd1\xfc\xdd\x76\xdb\xcd\x3e\xc5\x58\xba\x31\xf3\ +\x03\x69\x9a\xda\x87\xf2\xbc\x35\x08\xe2\x0d\x6d\xb3\x12\x37\x55\ +\x10\x4b\x49\x29\xf5\x08\x11\x1d\x56\x96\x58\x1d\x5f\x18\x42\x90\ +\xb2\x55\x09\xb4\x7f\x93\x05\x89\xe3\xf8\x56\x66\xfe\x7c\x59\xb4\ +\xc6\x98\xff\x64\x59\xb6\x7d\xd9\xb8\x32\xfd\x21\x48\x19\x5a\x01\ +\xf7\x6d\xb8\x20\x57\x31\xf3\xc5\x42\xbc\x0b\xb5\xd6\x2f\x0a\x63\ +\xe7\x0c\x83\x20\x73\x22\x6a\x47\x87\x26\x0b\x32\x32\x32\x72\x51\ +\x14\x45\xd7\x08\x49\xef\xaf\xb5\x7e\x5c\x18\x3b\x67\x18\x04\x99\ +\x13\x51\x3b\x3a\x34\x5c\x90\x4f\x46\x51\x64\x0f\xde\x91\xb4\x13\ +\xb4\xd6\x3f\x97\x04\x16\x89\x81\x20\x45\x28\xb5\xa0\x4f\x93\x05\ +\x59\xb6\x6c\xd9\x7e\xc3\xc3\xc3\xa2\x57\x01\xdf\xdf\x85\x40\x90\ +\x16\x5c\xfc\x45\x96\xd0\x64\x41\x16\x2f\x5e\xbc\xdd\xce\x3b\xef\ +\xfc\x7a\x91\x75\x6c\xdb\x87\x99\x47\xd3\x34\xf5\xb6\x15\x10\x04\ +\x91\x54\x25\xc0\x98\x26\x0b\x62\x71\x26\x49\xf2\xba\x31\x66\x3b\ +\x01\x5a\x6f\x3f\x83\xb1\x73\x81\x20\x82\x8a\x84\x18\xd2\x74\x41\ +\x94\x52\x2f\x10\xd1\x2e\x02\xb6\x10\x44\x00\x0d\x21\xdb\x10\x08\ +\x40\x90\xbf\x10\xd1\x07\x04\x85\x83\x20\x02\x68\x08\x09\x4f\x90\ +\x3f\x11\xd1\xbe\x82\xc2\x41\x10\x01\x34\x84\x04\x26\x48\x92\x24\ +\x8f\x1a\x63\x3e\x24\x28\x1c\x04\x11\x40\x43\x48\x60\x82\x28\xa5\ +\xec\x29\x00\x92\x1f\x1e\x42\x10\x5c\xed\xd5\x09\x04\xf0\x1e\xe4\ +\x21\x22\x3a\x5c\xb0\x52\x08\x22\x80\x86\x90\xf0\x5e\x41\xec\x93\ +\x81\x7b\x0a\x0a\x07\x41\x04\xd0\x10\x12\x9e\x20\xaf\x10\xd1\x0e\ +\x65\x0b\xe7\x72\x63\xed\xe9\xc6\xc6\xf7\x20\x65\x2b\x12\x68\xff\ +\x26\xdf\x62\x8d\x8e\x8e\xee\xb0\x75\xeb\x56\x2b\x48\xe9\xe6\xf2\ +\x80\x1f\x08\x52\x1a\x7f\x7b\x02\x9a\x2c\x88\x52\xca\xde\x5a\x89\ +\x36\x5f\x70\x79\x76\x09\x04\x69\xcf\xf5\x5e\x7a\x25\x4d\x16\x24\ +\x8e\xe3\xc3\x99\xd9\xbe\x49\x2f\xdd\x26\x27\x27\xf7\x59\xbb\x76\ +\xed\x93\xa5\x03\x0b\x06\xe0\x16\xab\x20\xa8\xd0\xbb\x35\x59\x90\ +\x91\x91\x91\x33\xa2\x28\xba\x4d\xc0\x78\xeb\xc4\xc4\xc4\x42\x57\ +\xc7\xc3\xe1\x15\x44\x50\x81\xb6\x84\x34\x59\x90\x38\x8e\x57\x30\ +\xf3\x1a\x01\xeb\xbf\x6a\xad\x77\x17\xc4\x15\x0e\xc1\x2b\x48\x61\ +\x54\x61\x77\x6c\xb2\x20\x49\x92\xdc\x6c\x8c\x39\x5b\x40\xf8\x61\ +\xad\xb5\xe4\xbb\x93\xc2\x43\x41\x90\xc2\xa8\xc2\xee\xd8\x64\x41\ +\xfa\x73\x13\x01\xd6\x5a\xdb\xad\x6a\xbd\x35\x08\xe2\x0d\x6d\xb3\ +\x12\x37\x59\x90\x66\x91\x7a\xe7\x6c\x20\x48\x93\xab\xe3\x70\x6e\ +\x10\x44\x06\x13\x82\xc8\xb8\x05\x17\x05\x41\x64\x25\x83\x20\x32\ +\x6e\xc1\x45\x41\x10\x59\xc9\x20\x88\x8c\x5b\x70\x51\x10\x44\x56\ +\x32\x08\x22\xe3\x16\x5c\x14\x04\x91\x95\x0c\x82\xc8\xb8\x05\x17\ +\x05\x41\x64\x25\x83\x20\x32\x6e\xc1\x45\x41\x10\x59\xc9\x20\x88\ +\x8c\x5b\x70\x51\x10\x44\x56\x32\x08\x22\xe3\x16\x5c\x14\x04\x91\ +\x95\x0c\x82\xc8\xb8\x05\x17\x05\x41\x64\x25\x83\x20\x32\x6e\xc1\ +\x45\x41\x10\x59\xc9\x20\x88\x8c\x5b\x70\x51\x10\x44\x56\x32\x08\ +\x22\xe3\x16\x5c\x14\x04\x91\x95\x0c\x82\xc8\xb8\x05\x17\x05\x41\ +\x64\x25\x83\x20\x32\x6e\xc1\x45\x41\x10\x59\xc9\x20\x88\x8c\x5b\ +\x70\x51\x10\x44\x56\x32\x08\x22\xe3\x16\x5c\x14\x04\x91\x95\x0c\ +\x82\xc8\xb8\x05\x17\x05\x41\x64\x25\x83\x20\x32\x6e\xc1\x45\x41\ +\x10\x59\xc9\x20\x88\x8c\x5b\x70\x51\x10\x44\x56\x32\x08\x22\xe3\ +\x16\x5c\x14\x04\x91\x95\x0c\x82\xc8\xb8\x05\x17\x05\x41\x64\x25\ +\x83\x20\x32\x6e\xc1\x45\x41\x10\x59\xc9\x20\x88\x8c\x5b\x70\x51\ +\x10\x44\x56\x32\x08\x22\xe3\x16\x5c\x14\x04\x91\x95\x0c\x82\xc8\ +\xb8\x05\x17\x05\x41\x64\x25\x83\x20\x32\x6e\xc1\x45\x41\x10\x59\ +\xc9\x20\x88\x8c\x5b\x70\x51\x10\x44\x56\x32\x08\x22\xe3\x16\x5c\ +\x14\x04\x91\x95\x0c\x82\xc8\xb8\x05\x17\x05\x41\x64\x25\x83\x20\ +\x32\x6e\xc1\x45\x41\x10\x59\xc9\x20\x88\x8c\x5b\x70\x51\x10\x44\ +\x56\x32\x08\x22\xe3\x16\x5c\x14\x04\x91\x95\x0c\x82\xc8\xb8\x05\ +\x17\x05\x41\x64\x25\x83\x20\x32\x6e\xc1\x45\x41\x10\x59\xc9\x1a\ +\x29\x88\x6c\x29\x88\x2a\x40\xe0\xb8\x02\x7d\xa6\xeb\x72\x85\xd6\ +\x7a\x95\x30\x36\xe8\xb0\x26\x0a\x12\x34\xd0\x96\x4e\x1e\x82\xb8\ +\x2e\xac\x52\xca\xb8\xce\x89\x7c\x03\x23\x00\x41\x5c\xa3\x87\x20\ +\xae\x89\x0e\x34\x1f\x04\x71\x8d\x1f\x82\xb8\x26\x3a\xd0\x7c\x10\ +\xc4\x35\x7e\x08\xe2\x9a\xe8\x40\xf3\x41\x10\xd7\xf8\x21\x88\x6b\ +\xa2\x03\xcd\x07\x41\x5c\xe3\x87\x20\xae\x89\x0e\x34\x1f\x04\x71\ +\x8d\x1f\x82\xb8\x26\x3a\xd0\x7c\x10\xc4\x35\x7e\xa5\xd4\xf3\x44\ +\xf4\x1e\xd7\x79\x91\x6f\x20\x04\xce\xd5\x5a\xdf\x3c\x90\x91\x07\ +\x3c\xa8\xcf\x2f\x0a\x1f\x21\xa2\xc3\x06\xbc\x3e\x0c\xef\x80\x80\ +\x31\xe6\x90\x2c\xcb\x7e\xef\x20\x55\x70\x29\x7c\x0a\x32\x4e\x44\ +\xcb\x83\x23\x82\x09\x6f\x4b\xe0\x2e\xad\xf5\xc9\x5d\xc5\xe2\x4d\ +\x10\x0b\x54\x29\xf5\x04\x11\xed\xd3\x55\xb8\x6d\x58\x77\x97\x5f\ +\x3d\x6c\xfd\xbc\x0a\x62\x07\x48\x92\x64\x93\x31\x66\x51\x1b\x2e\ +\x96\x0e\xae\x61\x44\x6b\xbd\xb6\x83\xeb\x7e\x7b\xc9\xde\x05\xe9\ +\xbf\x92\x9c\x43\x44\xa7\x10\xd1\x87\x89\x68\xdf\x2e\x03\x6f\xf8\ +\xda\x5f\x22\xa2\x5f\x33\xb3\x7d\xbf\xb1\x31\x4d\xd3\x3f\x37\x7c\ +\xbe\xde\xa7\x57\x8b\x20\xde\x57\x81\x01\x40\xc0\x13\x01\x08\xe2\ +\x09\x2c\xd2\xb6\x83\x00\x04\x69\x47\x1d\xb1\x0a\x4f\x04\x20\x88\ +\x27\xb0\x48\xdb\x0e\x02\x10\xa4\x1d\x75\xc4\x2a\x3c\x11\x80\x20\ +\x9e\xc0\x22\x6d\x3b\x08\x40\x90\x76\xd4\x11\xab\xf0\x44\x00\x82\ +\x78\x02\x8b\xb4\xed\x20\x00\x41\xda\x51\x47\xac\xc2\x13\x01\x08\ +\xe2\x09\x2c\xd2\xb6\x83\x00\x04\x69\x47\x1d\xb1\x0a\x4f\x04\x20\ +\x88\x27\xb0\x48\xdb\x0e\x02\x10\xa4\x1d\x75\xc4\x2a\x3c\x11\x80\ +\x20\x9e\xc0\x22\x6d\x3b\x08\x40\x90\x76\xd4\x11\xab\xf0\x44\x00\ +\x82\x78\x02\x8b\xb4\xed\x20\x00\x41\xda\x51\x47\xac\xc2\x13\x01\ +\x08\xe2\x09\x2c\xd2\xb6\x83\x00\x04\x69\x47\x1d\xb1\x0a\x4f\x04\ +\x20\x88\x27\xb0\x48\xdb\x0e\x02\x10\xa4\x1d\x75\xc4\x2a\x3c\x11\ +\x80\x20\x9e\xc0\x22\x6d\x3b\x08\x40\x90\x76\xd4\x11\xab\xf0\x44\ +\x00\x82\x78\x02\x8b\xb4\xed\x20\x00\x41\xda\x51\x47\xac\xc2\x13\ +\x81\xff\x02\x47\xb6\x8f\x23\x5e\xd2\x05\xf5\x00\x00\x00\x00\x49\ +\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x05\xb5\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\ +\x8e\x7c\xfb\x51\x93\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\ +\x25\x00\x00\x80\x83\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\ +\x30\x00\x00\xea\x60\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\ +\x46\x00\x00\x05\x2b\x49\x44\x41\x54\x78\xda\x62\xf8\xff\xff\x3f\ +\x03\x2d\x30\x40\x00\x96\xc4\x20\x05\x80\x18\x84\x81\x01\xad\x2c\ +\x78\x2e\xd5\x47\x2c\x1e\xbc\x95\xfe\xc2\xff\xff\x65\xdb\xb2\x03\ +\x09\x64\x72\xcb\xdd\x61\x66\xe8\xbd\x23\x33\x31\xe7\xc4\xa1\xaa\ +\xf0\x23\xcc\xfc\xaa\xea\x22\xa2\xd8\xfb\x39\x32\x22\xee\x39\xc6\ +\xc0\xf6\x68\xad\x41\x44\x6e\x3e\x01\x84\x62\xb0\x88\x88\x08\x83\ +\x81\x81\x01\x83\x91\x91\x11\x48\x3d\x9f\xb5\xb5\x75\x47\x67\x67\ +\xe7\xcb\x0d\x1b\x36\xfc\x3f\x70\xe0\xc0\xff\x43\x87\x0e\xfd\x5f\ +\xb3\x66\xcd\x7f\xa0\xd8\xff\x98\x98\x98\x67\xf2\xf2\xf2\x25\x20\ +\x85\xc2\xc2\xc2\x0c\x4c\x4c\x4c\x28\x06\x03\x04\x10\xdc\x60\x90\ +\xad\x42\x42\x42\x0c\x1a\x1a\x1a\x0c\x40\x0d\xd1\xdb\xb6\x6d\xfb\ +\xff\xfb\xf7\xef\xff\xd8\xc0\xfb\xf7\xef\xff\xef\xde\xbd\xfb\x7f\ +\x73\x73\xf3\xff\xc8\xc8\xc8\xff\x9c\x9c\x9c\x66\x20\x0b\x80\xbe\ +\x82\x1b\x0c\x10\x40\x60\x83\xc1\xc1\x20\x26\xc6\x00\xf4\x2a\x88\ +\x1d\x7c\xea\xd4\xa9\xff\xb8\xc0\xaf\x5f\xbf\xfe\x7f\xfb\xf6\xed\ +\xff\x9b\x37\x6f\xfe\xaf\x5c\xb9\xf2\x7f\x4d\x4d\xcd\xff\xb0\xb0\ +\xb0\xff\x40\x73\x79\x41\xae\x86\x19\x0c\x10\x40\x70\x83\x05\x05\ +\x05\x41\x96\x2a\xce\x99\x33\xe7\xff\x9f\x3f\x7f\x70\x1a\x0c\x33\ +\xf4\xd5\xab\x57\xff\x2f\x5c\xb8\xf0\xbf\xad\xad\xed\x7f\x49\x49\ +\xc9\x7f\x19\x19\x99\x4e\x58\x84\x30\x32\x32\x32\x00\x04\x10\xd8\ +\x60\x11\x60\x10\x70\x00\x6d\x89\x8d\x8b\x3b\x7a\xfb\xce\x9d\xff\ +\xf8\xc0\xe7\x2f\x5f\xfe\xbf\x78\xf1\xe2\xff\xd3\xa7\x4f\xff\x1f\ +\x3f\x7e\xfc\xff\xa4\x49\x93\xc0\x61\xee\xe3\xe3\xf3\x0d\x68\xa6\ +\x00\xcc\x60\x80\x00\x02\x1b\x2c\x0c\x72\x2d\x23\xa3\xec\xcc\x25\ +\x4b\xfe\xff\x05\x0a\xfc\xc1\x63\xf0\xc7\x9f\x3f\xff\x3f\x7b\xfe\ +\xfc\xff\xdd\xbb\x77\xff\xcf\x9a\x35\xeb\xff\xbc\x79\xf3\xfe\x4f\ +\x9f\x3e\xfd\x7f\x5e\x5e\xde\x7f\x31\x31\xb1\x6a\x98\xab\x01\x02\ +\x08\x92\xe6\x80\x40\xcd\xca\xaa\xfc\xc4\xb5\x6b\xff\x3f\x00\x23\ +\xe5\x4c\x61\xe1\xff\xf3\xd9\xd9\xff\xaf\xe6\xe6\xfe\xbf\x03\xd4\ +\x70\x0f\x88\xef\x26\x25\xfd\x3f\xe6\xef\xff\xff\xdc\x9e\x3d\xff\ +\x5f\x00\x23\x6f\xe9\xd2\xa5\xff\x67\xcc\x98\xf1\x7f\xc1\x82\x05\ +\xff\x67\xcf\x9e\xfd\xbf\xae\xae\xee\xbf\xa5\xa5\xe5\x35\x98\xb9\ +\x00\x01\x04\x37\x38\x3b\x21\xe1\xe6\x2b\x1b\x9b\xff\x1f\x95\x94\ +\xfe\xbf\x96\x93\xfb\xff\x16\x88\x5f\x88\x89\xfd\xbf\xc2\xc0\xf0\ +\x7f\x13\x10\xf7\x03\x71\x85\xac\xec\xff\xc5\xcb\x97\xff\x5f\xb6\ +\x7a\x35\xd8\xa5\x0b\x81\x86\x82\xe2\x04\xe4\xf2\xd6\xd6\xd6\xff\ +\xe1\xe1\xe1\x20\xc3\x64\x40\x91\x08\x10\x40\x10\x83\xb9\xb9\x59\ +\x4f\x02\x0d\x3a\xc3\xc4\xf4\xff\x84\xa0\xe0\xff\xeb\xca\xca\xff\ +\x8f\x00\x0d\x59\xa6\xa0\xf0\xbf\xc7\xd8\xf8\x7f\x63\x5c\xdc\xff\ +\xce\x89\x13\xff\xcf\x06\xa6\xe7\xc5\xab\x56\xfd\x5f\x01\x4c\x0d\ +\xcb\x81\x16\xcc\x9f\x3f\x1f\xec\xea\xa9\x53\xa7\xfe\xef\xea\xea\ +\xfa\x9f\x0b\xf4\x21\x2f\x2f\x6f\x06\x28\xf9\x02\x04\x10\xd8\x60\ +\x71\x06\x06\x8d\x7b\xbc\xbc\xff\x73\x81\x36\xe6\x66\x64\xfc\xcf\ +\x0c\x09\xf9\x9f\x01\x0c\x8a\xd2\xf6\xf6\xff\x5d\xc0\x70\x9f\xb7\ +\x75\xeb\xff\x95\x5b\xb6\xfc\x5f\xbf\x69\xd3\xff\xf5\x40\xc3\x57\ +\xac\x58\xf1\x7f\xf1\xe2\xc5\xe0\x20\x98\x32\x65\xca\xff\x09\x13\ +\x26\x80\x23\xb0\xb2\xb2\xf2\xbf\x8a\x8a\xca\x4a\x50\x08\x00\x04\ +\x10\xd8\x60\x59\x06\x06\xed\xf3\xdc\xdc\xff\x73\x81\x12\xb3\x81\ +\x19\x63\xf9\xce\x9d\xff\x37\x00\xc3\x7a\x1d\x90\xbd\x6e\xe3\xc6\ +\xff\x1b\x81\x06\xae\x5b\xbf\x1e\x9c\xeb\x40\x2e\x5d\x02\xb4\x0c\ +\xe4\x5a\x50\xa4\x81\x0c\xed\xee\xee\xfe\xdf\x0e\x74\x44\x6d\x6d\ +\xed\x7f\x60\x71\x70\x15\x64\x2e\x40\x00\x81\x0d\x66\x03\x66\x9a\ +\xbd\xc0\x30\x14\xe3\xe3\x9b\x27\xac\xa4\xd4\xea\xed\xeb\xfb\xb0\ +\xa7\xa7\xe7\xff\xda\xb5\x6b\xff\x83\xb2\x33\x28\x23\x2c\x5b\xb6\ +\x0c\x6c\xe0\xc2\x85\x0b\xc1\xe1\x0a\x32\x74\x22\x30\x78\x40\x86\ +\x82\xc2\xb7\xa1\xa1\x01\x6c\xb0\xaf\xaf\xef\x2f\x50\x71\x00\x10\ +\x40\x60\x83\xb9\x81\xac\x76\x06\x86\x63\xf6\x0c\x0c\x1d\xca\x90\ +\x72\x02\x04\x02\xec\xec\xec\xae\x80\x32\x00\x28\x05\x2c\x5a\xb4\ +\xe8\xff\xdc\xb9\x73\xc1\x11\x05\x0a\x53\x98\x4b\x41\xf2\xf5\xf5\ +\xf5\xff\xab\xab\xab\xff\x57\x55\x55\xfd\x0f\x08\x08\x00\x45\xa0\ +\x24\x40\x00\x81\x0d\x36\x07\xb2\x8c\x81\x06\x05\x30\x30\x6c\x86\ +\x99\xca\x0b\xc9\x89\x0c\xc2\x22\x22\x4d\xb9\xc0\xe4\x36\x79\xf2\ +\x64\xb0\x2b\x61\x86\x82\x22\x0b\xe6\x52\x98\xa1\x15\x15\x15\xff\ +\x6d\x6c\x6c\x1e\x00\xb5\x71\x02\x04\x10\x3c\xb9\x21\x03\x61\x20\ +\x36\x80\xb2\x15\x95\x95\x41\x45\xa2\x7b\x54\x54\x14\x38\x82\xfa\ +\xfb\xfb\xe1\xde\x07\xb9\x14\x54\x56\x80\x0c\x2d\x2b\x2b\xfb\x9f\ +\x04\x4c\xeb\xc0\xf2\xa6\x16\xa4\x0f\x20\x80\xc0\x06\xfb\x00\x19\ +\x7e\x0c\x0c\xbe\xbd\x40\x17\x27\x32\x30\x4c\x04\x72\x45\x34\xa0\ +\x06\x6b\x6a\x6b\x33\x08\x08\x80\x73\xaa\xaa\xb7\xb7\xf7\x27\x90\ +\xeb\x1a\x1b\x1b\xe1\x86\x82\x5c\x59\x54\x54\xf4\x3f\x28\x28\xe8\ +\x3f\x3f\x3f\x7f\x1f\x50\x1d\x3b\x48\x31\x40\x00\x81\x0d\xb6\x64\ +\x60\x70\xff\x9f\x93\xf3\x1f\xa8\xf2\xff\x7f\x5d\xdd\xff\xa7\x80\ +\x11\x09\x4c\x29\xbe\x30\x1f\x88\x03\x0b\x29\x0e\x0e\x70\xd9\xce\ +\x20\x2b\x2b\x3b\x21\x30\x30\xf0\x7f\x5a\x5a\xda\xff\xac\xac\xac\ +\xff\xa9\xa9\xa9\xff\x4d\x4d\x4d\x9f\x00\xa5\xfc\x91\x7d\x0d\x10\ +\x40\x60\x83\xe7\x30\x30\xf4\x01\xa3\xf4\x3f\x30\xba\xff\x03\x53\ +\xfc\x7f\x60\x0c\xfc\xcf\x67\x60\x78\x88\xac\x8e\x8f\x8f\x0f\x25\ +\xb4\x80\x65\x70\x34\xb0\xfc\x6e\x66\x67\x67\xcf\x06\xf2\xe5\xd1\ +\x83\x13\x20\x80\xc0\x06\xcb\x31\x30\xd8\xce\x05\xba\xf2\x88\xb0\ +\xf0\xff\x43\xc0\x5c\xd7\x28\x24\xf4\x93\x87\x81\x21\x1d\x59\x1d\ +\x28\x38\xc0\xa5\x16\x14\x80\x2a\x05\x69\x69\x69\x58\x30\x61\x00\ +\x80\x00\x02\x1b\x6c\x80\xe0\x6a\x03\xb1\x1e\x3c\x9c\xd0\x0c\x06\ +\x97\x01\x50\x00\xaa\xc6\x80\xc1\x02\xb6\x00\x1b\x00\x08\x30\x00\ +\x69\x36\x5f\x67\xcd\x5c\xcb\xcb\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x0b\xe5\ +\x6f\ +\x70\x65\x6e\x46\x69\x6c\x65\x3d\x4f\x70\x65\x6e\x0a\x6f\x70\x65\ +\x6e\x46\x69\x6c\x65\x44\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\x6e\ +\x20\x69\x6d\x61\x67\x65\x20\x6f\x72\x20\x6c\x61\x62\x65\x6c\x20\ +\x66\x69\x6c\x65\x0a\x71\x75\x69\x74\x3d\x51\x75\x69\x74\x0a\x71\ +\x75\x69\x74\x41\x70\x70\x3d\x51\x75\x69\x74\x20\x61\x70\x70\x6c\ +\x69\x63\x61\x74\x69\x6f\x6e\x0a\x6f\x70\x65\x6e\x44\x69\x72\x3d\ +\x4f\x70\x65\x6e\x20\x44\x69\x72\x0a\x6f\x70\x65\x6e\x44\x61\x74\ +\x61\x73\x65\x74\x44\x69\x72\x3d\x4f\x70\x65\x6e\x20\x44\x61\x74\ +\x61\x73\x65\x74\x44\x69\x72\x0a\x63\x6f\x70\x79\x50\x72\x65\x76\ +\x42\x6f\x75\x6e\x64\x69\x6e\x67\x3d\x43\x6f\x70\x79\x20\x70\x72\ +\x65\x76\x69\x6f\x75\x73\x20\x42\x6f\x75\x6e\x64\x69\x6e\x67\x20\ +\x42\x6f\x78\x65\x73\x20\x69\x6e\x20\x74\x68\x65\x20\x63\x75\x72\ +\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\x20\x0a\x63\x68\x61\x6e\ +\x67\x65\x53\x61\x76\x65\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\ +\x6e\x44\x69\x72\x3d\x43\x68\x61\x6e\x67\x65\x20\x64\x65\x66\x61\ +\x75\x6c\x74\x20\x73\x61\x76\x65\x64\x20\x41\x6e\x6e\x6f\x74\x61\ +\x74\x69\x6f\x6e\x20\x64\x69\x72\x0a\x6f\x70\x65\x6e\x41\x6e\x6e\ +\x6f\x74\x61\x74\x69\x6f\x6e\x3d\x4f\x70\x65\x6e\x20\x41\x6e\x6e\ +\x6f\x74\x61\x74\x69\x6f\x6e\x0a\x6f\x70\x65\x6e\x41\x6e\x6e\x6f\ +\x74\x61\x74\x69\x6f\x6e\x44\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\ +\x6e\x20\x61\x6e\x20\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\ +\x66\x69\x6c\x65\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\x76\x65\x44\ +\x69\x72\x3d\x43\x68\x61\x6e\x67\x65\x20\x53\x61\x76\x65\x20\x44\ +\x69\x72\x0a\x6e\x65\x78\x74\x49\x6d\x67\x3d\x4e\x65\x78\x74\x20\ +\x49\x6d\x61\x67\x65\x0a\x6e\x65\x78\x74\x49\x6d\x67\x44\x65\x74\ +\x61\x69\x6c\x3d\x4f\x70\x65\x6e\x20\x74\x68\x65\x20\x6e\x65\x78\ +\x74\x20\x49\x6d\x61\x67\x65\x0a\x70\x72\x65\x76\x49\x6d\x67\x3d\ +\x50\x72\x65\x76\x20\x49\x6d\x61\x67\x65\x0a\x70\x72\x65\x76\x49\ +\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\x6e\x20\x74\x68\ +\x65\x20\x70\x72\x65\x76\x69\x6f\x75\x73\x20\x49\x6d\x61\x67\x65\ +\x0a\x76\x65\x72\x69\x66\x79\x49\x6d\x67\x3d\x56\x65\x72\x69\x66\ +\x79\x20\x49\x6d\x61\x67\x65\x0a\x76\x65\x72\x69\x66\x79\x49\x6d\ +\x67\x44\x65\x74\x61\x69\x6c\x3d\x56\x65\x72\x69\x66\x79\x20\x49\ +\x6d\x61\x67\x65\x0a\x73\x61\x76\x65\x3d\x43\x68\x65\x63\x6b\x0a\ +\x73\x61\x76\x65\x44\x65\x74\x61\x69\x6c\x3d\x53\x61\x76\x65\x20\ +\x74\x68\x65\x20\x6c\x61\x62\x65\x6c\x73\x20\x74\x6f\x20\x61\x20\ +\x66\x69\x6c\x65\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\x76\x65\x46\ +\x6f\x72\x6d\x61\x74\x3d\x43\x68\x61\x6e\x67\x65\x20\x73\x61\x76\ +\x65\x20\x66\x6f\x72\x6d\x61\x74\x0a\x73\x61\x76\x65\x41\x73\x3d\ +\x53\x61\x76\x65\x20\x41\x73\x0a\x73\x61\x76\x65\x41\x73\x44\x65\ +\x74\x61\x69\x6c\x3d\x53\x61\x76\x65\x20\x74\x68\x65\x20\x6c\x61\ +\x62\x65\x6c\x73\x20\x74\x6f\x20\x61\x20\x64\x69\x66\x66\x65\x72\ +\x65\x6e\x74\x20\x66\x69\x6c\x65\x0a\x63\x6c\x6f\x73\x65\x43\x75\ +\x72\x3d\x43\x6c\x6f\x73\x65\x0a\x63\x6c\x6f\x73\x65\x43\x75\x72\ +\x44\x65\x74\x61\x69\x6c\x3d\x43\x6c\x6f\x73\x65\x20\x74\x68\x65\ +\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x66\x69\x6c\x65\x0a\x64\x65\ +\x6c\x65\x74\x65\x49\x6d\x67\x3d\x44\x65\x6c\x65\x74\x65\x20\x63\ +\x75\x72\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\x0a\x64\x65\x6c\ +\x65\x74\x65\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\x44\x65\x6c\ +\x65\x74\x65\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\ +\x69\x6d\x61\x67\x65\x0a\x72\x65\x73\x65\x74\x41\x6c\x6c\x3d\x52\ +\x65\x73\x65\x74\x20\x49\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x61\ +\x6e\x64\x20\x53\x61\x76\x65\x20\x44\x69\x72\x0a\x72\x65\x73\x65\ +\x74\x41\x6c\x6c\x44\x65\x74\x61\x69\x6c\x3d\x52\x65\x73\x65\x74\ +\x20\x41\x6c\x6c\x0a\x62\x6f\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\ +\x72\x3d\x42\x6f\x78\x20\x4c\x69\x6e\x65\x20\x43\x6f\x6c\x6f\x72\ +\x0a\x62\x6f\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x44\x65\x74\ +\x61\x69\x6c\x3d\x43\x68\x6f\x6f\x73\x65\x20\x42\x6f\x78\x20\x6c\ +\x69\x6e\x65\x20\x63\x6f\x6c\x6f\x72\x0a\x63\x72\x74\x42\x6f\x78\ +\x3d\x43\x72\x65\x61\x74\x65\x20\x52\x65\x63\x74\x42\x6f\x78\x0a\ +\x63\x72\x74\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\x44\x72\x61\ +\x77\x20\x61\x20\x6e\x65\x77\x20\x62\x6f\x78\x0a\x64\x65\x6c\x42\ +\x6f\x78\x3d\x44\x65\x6c\x65\x74\x65\x20\x52\x65\x63\x74\x42\x6f\ +\x78\x0a\x64\x65\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\x52\ +\x65\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x62\x6f\x78\x0a\x64\x75\ +\x70\x42\x6f\x78\x3d\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x52\ +\x65\x63\x74\x42\x6f\x78\x0a\x64\x75\x70\x42\x6f\x78\x44\x65\x74\ +\x61\x69\x6c\x3d\x43\x72\x65\x61\x74\x65\x20\x61\x20\x64\x75\x70\ +\x6c\x69\x63\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\x20\x73\x65\ +\x6c\x65\x63\x74\x65\x64\x20\x62\x6f\x78\x0a\x74\x75\x74\x6f\x72\ +\x69\x61\x6c\x3d\x50\x61\x64\x64\x6c\x65\x4f\x43\x52\x20\x75\x72\ +\x6c\x0a\x74\x75\x74\x6f\x72\x69\x61\x6c\x44\x65\x74\x61\x69\x6c\ +\x3d\x53\x68\x6f\x77\x20\x64\x65\x6d\x6f\x0a\x69\x6e\x66\x6f\x3d\ +\x49\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x0a\x7a\x6f\x6f\x6d\ +\x69\x6e\x3d\x5a\x6f\x6f\x6d\x20\x49\x6e\x0a\x7a\x6f\x6f\x6d\x69\ +\x6e\x44\x65\x74\x61\x69\x6c\x3d\x49\x6e\x63\x72\x65\x61\x73\x65\ +\x20\x7a\x6f\x6f\x6d\x20\x6c\x65\x76\x65\x6c\x0a\x7a\x6f\x6f\x6d\ +\x6f\x75\x74\x3d\x5a\x6f\x6f\x6d\x20\x4f\x75\x74\x0a\x7a\x6f\x6f\ +\x6d\x6f\x75\x74\x44\x65\x74\x61\x69\x6c\x3d\x44\x65\x63\x72\x65\ +\x61\x73\x65\x20\x7a\x6f\x6f\x6d\x20\x6c\x65\x76\x65\x6c\x0a\x6f\ +\x72\x69\x67\x69\x6e\x61\x6c\x73\x69\x7a\x65\x3d\x4f\x72\x69\x67\ +\x69\x6e\x61\x6c\x20\x73\x69\x7a\x65\x0a\x6f\x72\x69\x67\x69\x6e\ +\x61\x6c\x73\x69\x7a\x65\x44\x65\x74\x61\x69\x6c\x3d\x5a\x6f\x6f\ +\x6d\x20\x74\x6f\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x73\x69\ +\x7a\x65\x0a\x66\x69\x74\x57\x69\x6e\x3d\x46\x69\x74\x20\x57\x69\ +\x6e\x64\x6f\x77\x0a\x66\x69\x74\x57\x69\x6e\x44\x65\x74\x61\x69\ +\x6c\x3d\x5a\x6f\x6f\x6d\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x20\x77\ +\x69\x6e\x64\x6f\x77\x20\x73\x69\x7a\x65\x0a\x66\x69\x74\x57\x69\ +\x64\x74\x68\x3d\x46\x69\x74\x20\x57\x69\x64\x74\x68\x0a\x66\x69\ +\x74\x57\x69\x64\x74\x68\x44\x65\x74\x61\x69\x6c\x3d\x5a\x6f\x6f\ +\x6d\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x20\x77\x69\x6e\x64\x6f\x77\ +\x20\x77\x69\x64\x74\x68\x0a\x65\x64\x69\x74\x4c\x61\x62\x65\x6c\ +\x3d\x45\x64\x69\x74\x20\x4c\x61\x62\x65\x6c\x0a\x65\x64\x69\x74\ +\x4c\x61\x62\x65\x6c\x44\x65\x74\x61\x69\x6c\x3d\x4d\x6f\x64\x69\ +\x66\x79\x20\x74\x68\x65\x20\x6c\x61\x62\x65\x6c\x20\x6f\x66\x20\ +\x74\x68\x65\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x42\x6f\x78\ +\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\ +\x53\x68\x61\x70\x65\x20\x4c\x69\x6e\x65\x20\x43\x6f\x6c\x6f\x72\ +\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x44\ +\x65\x74\x61\x69\x6c\x3d\x43\x68\x61\x6e\x67\x65\x20\x74\x68\x65\ +\x20\x6c\x69\x6e\x65\x20\x63\x6f\x6c\x6f\x72\x20\x66\x6f\x72\x20\ +\x74\x68\x69\x73\x20\x73\x70\x65\x63\x69\x66\x69\x63\x20\x73\x68\ +\x61\x70\x65\x0a\x73\x68\x61\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\ +\x6f\x72\x3d\x53\x68\x61\x70\x65\x20\x46\x69\x6c\x6c\x20\x43\x6f\ +\x6c\x6f\x72\x0a\x73\x68\x61\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\ +\x6f\x72\x44\x65\x74\x61\x69\x6c\x3d\x43\x68\x61\x6e\x67\x65\x20\ +\x74\x68\x65\x20\x66\x69\x6c\x6c\x20\x63\x6f\x6c\x6f\x72\x20\x66\ +\x6f\x72\x20\x74\x68\x69\x73\x20\x73\x70\x65\x63\x69\x66\x69\x63\ +\x20\x73\x68\x61\x70\x65\x0a\x73\x68\x6f\x77\x48\x69\x64\x65\x3d\ +\x53\x68\x6f\x77\x2f\x48\x69\x64\x65\x20\x4c\x61\x62\x65\x6c\x20\ +\x50\x61\x6e\x65\x6c\x0a\x75\x73\x65\x44\x65\x66\x61\x75\x6c\x74\ +\x4c\x61\x62\x65\x6c\x3d\x55\x73\x65\x20\x64\x65\x66\x61\x75\x6c\ +\x74\x20\x6c\x61\x62\x65\x6c\x0a\x75\x73\x65\x44\x69\x66\x66\x69\ +\x63\x75\x6c\x74\x3d\x44\x69\x66\x66\x69\x63\x75\x6c\x74\x0a\x62\ +\x6f\x78\x4c\x61\x62\x65\x6c\x54\x65\x78\x74\x3d\x42\x6f\x78\x20\ +\x4c\x61\x62\x65\x6c\x73\x0a\x6c\x61\x62\x65\x6c\x73\x3d\x4c\x61\ +\x62\x65\x6c\x73\x0a\x61\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\ +\x65\x3d\x41\x75\x74\x6f\x20\x53\x61\x76\x65\x20\x6d\x6f\x64\x65\ +\x0a\x73\x69\x6e\x67\x6c\x65\x43\x6c\x73\x4d\x6f\x64\x65\x3d\x53\ +\x69\x6e\x67\x6c\x65\x20\x43\x6c\x61\x73\x73\x20\x4d\x6f\x64\x65\ +\x0a\x64\x69\x73\x70\x6c\x61\x79\x4c\x61\x62\x65\x6c\x3d\x44\x69\ +\x73\x70\x6c\x61\x79\x20\x4c\x61\x62\x65\x6c\x73\x0a\x66\x69\x6c\ +\x65\x4c\x69\x73\x74\x3d\x46\x69\x6c\x65\x20\x4c\x69\x73\x74\x0a\ +\x66\x69\x6c\x65\x73\x3d\x46\x69\x6c\x65\x73\x0a\x61\x64\x76\x61\ +\x6e\x63\x65\x64\x4d\x6f\x64\x65\x3d\x41\x64\x76\x61\x6e\x63\x65\ +\x64\x20\x4d\x6f\x64\x65\x0a\x61\x64\x76\x61\x6e\x63\x65\x64\x4d\ +\x6f\x64\x65\x44\x65\x74\x61\x69\x6c\x3d\x53\x77\x74\x69\x63\x68\ +\x20\x74\x6f\x20\x61\x64\x76\x61\x6e\x63\x65\x64\x20\x6d\x6f\x64\ +\x65\x0a\x73\x68\x6f\x77\x41\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\ +\x69\x6c\x3d\x53\x68\x6f\x77\x20\x61\x6c\x6c\x20\x62\x6f\x75\x6e\ +\x64\x69\x6e\x67\x20\x62\x6f\x78\x65\x73\x0a\x68\x69\x64\x65\x41\ +\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\x48\x69\x64\x65\ +\x20\x61\x6c\x6c\x20\x62\x6f\x75\x6e\x64\x69\x6e\x67\x20\x62\x6f\ +\x78\x65\x73\x0a\x61\x6e\x6e\x6f\x50\x61\x6e\x65\x6c\x3d\x61\x6e\ +\x6e\x6f\x20\x50\x61\x6e\x65\x6c\x0a\x61\x6e\x6e\x6f\x3d\x61\x6e\ +\x6e\x6f\x0a\x61\x64\x64\x4e\x65\x77\x42\x62\x6f\x78\x3d\x6e\x65\ +\x77\x20\x62\x62\x6f\x78\x0a\x72\x65\x4c\x61\x62\x65\x6c\x3d\x72\ +\x65\x4c\x61\x62\x65\x6c\x0a\x63\x68\x6f\x6f\x73\x65\x6d\x6f\x64\ +\x65\x6c\x3d\x43\x68\x6f\x6f\x73\x65\x20\x4f\x43\x52\x20\x6d\x6f\ +\x64\x65\x6c\x0a\x74\x69\x70\x63\x68\x6f\x6f\x73\x65\x6d\x6f\x64\ +\x65\x6c\x3d\x43\x68\x6f\x6f\x73\x65\x20\x4f\x43\x52\x20\x6d\x6f\ +\x64\x65\x6c\x20\x66\x72\x6f\x6d\x20\x64\x69\x72\x0a\x49\x6d\x61\ +\x67\x65\x52\x65\x73\x69\x7a\x65\x3d\x49\x6d\x61\x67\x65\x20\x52\ +\x65\x73\x69\x7a\x65\x0a\x49\x52\x3d\x49\x6d\x61\x67\x65\x20\x52\ +\x65\x73\x69\x7a\x65\x0a\x61\x75\x74\x6f\x52\x65\x63\x6f\x67\x6e\ +\x69\x74\x69\x6f\x6e\x3d\x41\x75\x74\x6f\x20\x52\x65\x63\x6f\x67\ +\x6e\x69\x74\x69\x6f\x6e\x0a\x72\x65\x52\x65\x63\x6f\x67\x6e\x69\ +\x74\x69\x6f\x6e\x3d\x52\x65\x2d\x72\x65\x63\x6f\x67\x6e\x69\x74\ +\x69\x6f\x6e\x0a\x6d\x66\x69\x6c\x65\x3d\x46\x69\x6c\x65\x0a\x6d\ +\x65\x64\x69\x74\x3d\x45\x64\x69\x74\x0a\x6d\x76\x69\x65\x77\x3d\ +\x56\x69\x65\x77\x0a\x6d\x68\x65\x6c\x70\x3d\x48\x65\x6c\x70\x0a\ +\x69\x63\x6f\x6e\x4c\x69\x73\x74\x3d\x49\x63\x6f\x6e\x20\x4c\x69\ +\x73\x74\x0a\x64\x65\x74\x65\x63\x74\x69\x6f\x6e\x42\x6f\x78\x70\ +\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x44\x65\x74\x65\x63\x74\x69\x6f\ +\x6e\x20\x62\x6f\x78\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x0a\x72\ +\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x52\x65\x73\x75\x6c\x74\ +\x3d\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x20\x72\x65\x73\ +\x75\x6c\x74\x0a\x63\x72\x65\x61\x74\x50\x6f\x6c\x79\x67\x6f\x6e\ +\x3d\x43\x72\x65\x61\x74\x65\x20\x51\x75\x61\x64\x72\x69\x6c\x61\ +\x74\x65\x72\x61\x6c\x0a\x72\x6f\x74\x61\x74\x65\x4c\x65\x66\x74\ +\x3d\x4c\x65\x66\x74\x20\x74\x75\x72\x6e\x20\x39\x30\x20\x64\x65\ +\x67\x72\x65\x65\x73\x0a\x72\x6f\x74\x61\x74\x65\x52\x69\x67\x68\ +\x74\x3d\x52\x69\x67\x68\x74\x20\x74\x75\x72\x6e\x20\x39\x30\x20\ +\x64\x65\x67\x72\x65\x65\x73\x0a\x64\x72\x61\x77\x53\x71\x75\x61\ +\x72\x65\x73\x3d\x44\x72\x61\x77\x20\x53\x71\x75\x61\x72\x65\x73\ +\x0a\x73\x61\x76\x65\x52\x65\x63\x3d\x45\x78\x70\x6f\x72\x74\x20\ +\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x20\x52\x65\x73\x75\ +\x6c\x74\x0a\x74\x65\x6d\x70\x4c\x61\x62\x65\x6c\x3d\x54\x45\x4d\ +\x50\x4f\x52\x41\x52\x59\x0a\x6e\x75\x6c\x6c\x4c\x61\x62\x65\x6c\ +\x3d\x4e\x55\x4c\x4c\x0a\x73\x74\x65\x70\x73\x3d\x53\x74\x65\x70\ +\x73\x0a\x6b\x65\x79\x73\x3d\x53\x68\x6f\x72\x74\x63\x75\x74\x20\ +\x4b\x65\x79\x73\x0a\x63\x68\x6f\x73\x65\x4d\x6f\x64\x65\x6c\x4c\ +\x67\x3d\x43\x68\x6f\x6f\x73\x65\x20\x4d\x6f\x64\x65\x6c\x20\x4c\ +\x61\x6e\x67\x75\x61\x67\x65\x0a\x63\x61\x6e\x63\x65\x6c\x3d\x43\ +\x61\x6e\x63\x65\x6c\x0a\x6f\x6b\x3d\x4f\x4b\x0a\x61\x75\x74\x6f\ +\x6c\x61\x62\x65\x6c\x69\x6e\x67\x3d\x41\x75\x74\x6f\x6d\x61\x74\ +\x69\x63\x20\x4c\x61\x62\x65\x6c\x69\x6e\x67\x0a\x68\x69\x64\x65\ +\x42\x6f\x78\x3d\x48\x69\x64\x65\x20\x41\x6c\x6c\x20\x42\x6f\x78\ +\x0a\x73\x68\x6f\x77\x42\x6f\x78\x3d\x53\x68\x6f\x77\x20\x41\x6c\ +\x6c\x20\x42\x6f\x78\x0a\x73\x61\x76\x65\x4c\x61\x62\x65\x6c\x3d\ +\x45\x78\x70\x6f\x72\x74\x20\x4c\x61\x62\x65\x6c\x0a\x73\x69\x6e\ +\x67\x6c\x65\x52\x65\x3d\x52\x65\x2d\x72\x65\x63\x6f\x67\x6e\x69\ +\x74\x69\x6f\x6e\x20\x52\x65\x63\x74\x42\x6f\x78\x0a\x6c\x61\x62\ +\x65\x6c\x44\x69\x61\x6c\x6f\x67\x4f\x70\x74\x69\x6f\x6e\x3d\x50\ +\x6f\x70\x2d\x75\x70\x20\x4c\x61\x62\x65\x6c\x20\x49\x6e\x70\x75\ +\x74\x20\x44\x69\x61\x6c\x6f\x67\x0a\x75\x6e\x64\x6f\x3d\x55\x6e\ +\x64\x6f\x0a\x75\x6e\x64\x6f\x4c\x61\x73\x74\x50\x6f\x69\x6e\x74\ +\x3d\x55\x6e\x64\x6f\x20\x4c\x61\x73\x74\x20\x50\x6f\x69\x6e\x74\ +\x0a\x61\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\x3d\x41\x75\ +\x74\x6f\x20\x45\x78\x70\x6f\x72\x74\x20\x4c\x61\x62\x65\x6c\x20\ +\x4d\x6f\x64\x65\ +\x00\x00\x04\xf0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xba\x57\xed\x3f\ +\x00\x00\x03\x00\x50\x4c\x54\x45\x09\x16\x28\x09\x16\x28\x09\x14\ +\x25\x09\x15\x27\x09\x14\x25\x08\x13\x23\x07\x11\x20\x07\x0f\x1c\ +\x06\x0d\x18\x04\x0a\x13\x03\x07\x0d\x02\x04\x07\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x01\x01\x01\x02\x02\x02\x03\x03\x03\x06\x06\x06\x0a\x0a\x0a\ +\x10\x10\x10\x17\x17\x17\x21\x21\x21\x28\x28\x28\x2c\x2c\x2c\x2d\ +\x2d\x2d\x2e\x2e\x2e\x2f\x2f\x2f\x30\x30\x30\x31\x31\x31\x32\x32\ +\x32\x33\x33\x33\x34\x34\x34\x35\x35\x35\x36\x36\x36\x37\x37\x37\ +\x38\x38\x38\x39\x39\x39\x3a\x3a\x3a\x3b\x3b\x3b\x3c\x3c\x3c\x3d\ +\x3d\x3d\x3e\x3e\x3e\x3f\x3f\x3f\x40\x40\x40\x41\x41\x41\x42\x42\ +\x42\x43\x43\x43\x44\x44\x44\x45\x45\x45\x46\x46\x46\x47\x47\x47\ +\x48\x48\x48\x49\x49\x49\x4a\x4a\x4a\x4b\x4b\x4b\x4c\x4c\x4c\x4d\ +\x4d\x4d\x4e\x4e\x4e\x4f\x4f\x4f\x50\x50\x50\x51\x51\x51\x52\x52\ +\x52\x53\x53\x53\x54\x54\x54\x55\x55\x55\x56\x56\x56\x57\x57\x57\ +\x58\x58\x58\x59\x59\x59\x5a\x5a\x5a\x5b\x5b\x5b\x5c\x5c\x5c\x5d\ +\x5d\x5d\x5e\x5e\x5e\x5f\x5f\x5f\x60\x60\x60\x61\x61\x61\x62\x62\ +\x62\x63\x63\x63\x64\x64\x64\x65\x65\x65\x66\x66\x66\x67\x67\x67\ +\x68\x68\x68\x69\x69\x69\x6a\x6a\x6a\x6b\x6b\x6b\x6c\x6c\x6c\x6d\ +\x6d\x6d\x6e\x6e\x6e\x6f\x6f\x6f\x70\x70\x70\x71\x71\x71\x72\x72\ +\x72\x73\x73\x73\x75\x75\x75\x77\x77\x77\x79\x79\x78\x7a\x7b\x7a\ +\x7c\x7d\x7c\x7f\x7f\x7e\x81\x82\x7f\x84\x85\x81\x84\x85\x82\x85\ +\x86\x83\x86\x87\x83\x86\x88\x84\x87\x88\x84\x87\x89\x84\x87\x89\ +\x85\x87\x89\x85\x88\x89\x85\x83\x86\x85\x7f\x84\x85\x7c\x82\x85\ +\x7a\x81\x85\x76\x81\x8b\x76\x82\x8e\x77\x84\x90\x79\x85\x90\x7d\ +\x87\x8e\x83\x89\x8c\x85\x8b\x8c\x89\x8c\x8c\x8a\x8d\x8b\x8c\x8d\ +\x8a\x8e\x8f\x8d\x90\x91\x8f\x92\x92\x91\x94\x94\x93\x95\x95\x95\ +\x97\x97\x97\x99\x99\x99\x9a\x9a\x9a\x9b\x9b\x9b\x9c\x9c\x9c\x9d\ +\x9d\x9d\x9e\x9e\x9e\x9f\x9f\x9f\xa0\xa0\xa0\xa1\xa1\xa1\xa2\xa2\ +\xa2\xa3\xa3\xa3\xa4\xa4\xa4\xa5\xa5\xa5\xa7\xa7\xa6\xa8\xa8\xa8\ +\xa9\xaa\xa9\xaa\xab\xaa\xab\xac\xab\xac\xad\xac\xad\xad\xad\xae\ +\xae\xad\xae\xaf\xae\xaf\xb0\xaf\xb0\xb0\xaf\xb1\xb1\xb0\xb1\xb2\ +\xb1\xb2\xb3\xb2\xb3\xb4\xb3\xb4\xb5\xb4\xb6\xb6\xb6\xb7\xb7\xb7\ +\xb8\xb8\xb8\xb9\xb9\xb9\xba\xba\xba\xbb\xbb\xbb\xbc\xbc\xbc\xbd\ +\xbe\xbd\xbe\xbf\xbe\xbf\xc0\xbf\xc0\xc0\xc0\xc1\xc1\xc1\xc2\xc2\ +\xc1\xc3\xc3\xc2\xc4\xc4\xc3\xc6\xc6\xc6\xc9\xc9\xc9\xcd\xcd\xcd\ +\xcf\xcf\xcf\xd1\xd1\xd1\xd3\xd3\xd3\xd5\xd5\xd4\xd6\xd6\xd5\xd8\ +\xd8\xd8\xda\xda\xda\xdc\xdc\xdc\xde\xde\xdd\xdf\xdf\xdf\xe0\xe0\ +\xe0\xe2\xe2\xe2\xe3\xe3\xe3\xe5\xe5\xe4\xe6\xe6\xe6\xe8\xe8\xe7\ +\xe9\xe9\xe9\xeb\xeb\xea\xeb\xeb\xeb\xec\xec\xec\xec\xec\xec\xee\ +\xee\xed\xef\xef\xef\xf1\xf1\xf1\xef\xef\xef\xef\xef\xee\xef\xef\ +\xee\xef\xef\xef\xf0\xf0\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xf2\xf2\xf2\ +\xf3\xf3\xf3\xf4\xf4\xf4\xf5\xf5\xf5\xf6\xf6\xf6\xf7\xf7\xf6\xf7\ +\xf7\xf7\xf8\xf8\xf8\xf9\xf9\xf9\xfa\xfa\xfa\xfb\xfb\xfb\xfc\xfc\ +\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\ +\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ +\xff\xff\xff\xff\xff\xff\xff\xff\x7e\xee\x29\x02\x00\x00\x01\x00\ +\x74\x52\x4e\x53\xd1\xd2\xd3\xc8\xb9\xa9\x93\x78\x5d\x43\x2c\x17\ +\x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x06\x0a\x10\x17\x21\x28\ +\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\ +\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\ +\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\ +\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\ +\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x71\x6f\x6e\x6d\x6d\x68\x68\x62\ +\x6f\x7c\x8a\x95\x9e\xa6\xae\xb6\xbf\xcd\xd2\xd7\xdb\xe1\xe7\xea\ +\xeb\xeb\xe8\xe6\xdc\xd1\xbe\xac\xa1\x9c\x96\x97\x98\x99\x9a\x9b\ +\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa2\xa2\xa1\xa1\xa1\xa3\xa2\xa2\ +\xa2\xa3\xa3\xa4\xa5\xa6\xa8\xaa\xad\xb0\xb3\xb7\xb8\xb9\xba\xbb\ +\xc0\xc5\xc8\xcb\xcd\xce\xcf\xce\xce\xcf\xd3\xd6\xdc\xe0\xe4\xe8\ +\xea\xee\xf1\xf3\xf5\xf6\xf7\xf8\xf9\xfa\xfa\xfb\xfb\xfb\xfc\xfc\ +\xfc\xfd\xfd\xfd\xfd\xfa\xf6\xf3\xef\xeb\xe7\xe0\xd8\xd0\xc8\xbf\ +\xb6\xae\xa5\x9c\x92\x88\x7d\x72\x68\x66\x64\x63\x62\x5b\x55\x51\ +\x4d\x4a\x46\x48\xa6\xfd\x00\x6d\x00\x00\x00\x9f\x49\x44\x41\x54\ +\x18\xd3\xb5\xd0\x31\x0e\x82\x40\x10\x85\x61\xe0\x12\x1e\x76\x54\ +\x54\xa0\xd9\x1d\xf3\xe2\x11\xd4\xc4\xd6\x58\xd3\x10\x0b\x3b\x02\ +\xd1\x42\xa9\xc6\x53\x50\x8e\xee\x02\x31\x9a\xd8\xf2\x17\x53\x7c\ +\xc9\x6e\x26\x13\x4c\xfe\x14\x8c\x87\x34\xf4\x85\x44\xb3\x0c\x40\ +\x1a\x0f\xea\x91\xa6\x40\xc1\xc6\xf0\x1e\x2b\xea\xd1\x3d\xc2\xae\ +\x62\x91\xd0\xf2\x15\xa9\xd7\x80\x28\xc6\xf6\x26\x46\x24\xb2\xa6\ +\xa9\xb1\xa4\x0e\x53\x3c\x45\x4c\x18\x39\x7c\x48\x83\x39\xf9\x3f\ +\x4f\x09\x44\xd8\xba\x58\x4a\xe0\xa0\x1e\x35\xcf\x50\x56\x58\x73\ +\x71\x3f\x63\x91\xab\xf6\x2b\xe9\x71\x83\xae\xe4\xe2\xe8\xb3\xbc\ +\xaa\xb6\xed\xcb\x4d\x1d\xf9\x4a\xbf\xbd\x01\x0c\x0e\x70\x72\x00\ +\x75\x19\xc2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x77\xc9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -6054,2684 +11149,56 @@ qt_resource_data = b"\ \x66\xe3\x5e\x00\x00\x00\x0d\x74\x45\x58\x74\x54\x69\x74\x6c\x65\ \x00\x47\x6f\x20\x44\x6f\x77\x6e\xf3\xfd\x14\x79\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x01\xd7\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x01\ -\x91\x49\x44\x41\x54\x58\x09\xed\x57\xdd\x6d\x84\x30\x0c\x3e\xa0\ -\x0b\x54\x55\x75\xdd\x06\xba\x40\x17\xe8\x3b\x62\x0c\x6e\x0a\x7e\ -\x76\xa9\x7a\xbc\x76\x92\x4a\x9d\x01\x38\x3b\xcd\x87\x4c\x5a\xd3\ -\x43\x84\xe3\xa1\x44\xba\x8b\x63\x27\xb6\xbf\x2f\x36\x52\x0e\x87\ -\xff\x3e\x02\x10\x90\xa6\x69\x0f\xf9\x16\x73\x5d\xd7\x26\xf6\x9d\ -\x0c\x16\x04\x41\xd7\xf7\xfd\x97\xd4\xf9\x96\x29\xc6\x23\xc5\x08\ -\xe1\x77\x94\x00\x07\xa7\xcc\x9e\x60\x5c\x63\x26\xa6\x3f\xc9\xef\ -\x11\xbe\x87\x4c\xa0\xb8\xf5\xbc\x27\x30\xaa\x01\x49\xbf\xef\xae\ -\x40\xd5\xcb\x18\x2c\x6f\x7e\x05\x2a\x03\x5a\xc6\x2e\x82\xa5\xeb\ -\xcd\x19\xd8\x13\x50\x6b\x60\x69\x17\x5c\x5b\x43\x9b\x5f\x81\xca\ -\xc0\xb5\x08\xf6\x2e\x58\xca\x80\x7a\x05\x4b\x1d\x4f\x9c\x7f\x23\ -\xdb\x3d\xec\xab\x26\x90\x65\x59\xd2\x75\xdd\x3b\x07\x0b\xc3\xf0\ -\xb9\x2c\xcb\x33\xd5\xd6\x2b\x82\x1b\xbd\x5c\xf8\x96\x29\x78\x0e\ -\x9f\x52\x86\x8e\x67\x95\x81\xb9\xdf\x01\xb7\x6b\x2c\xfa\x98\x62\ -\x34\x36\x60\xcc\x3a\x66\xc1\xae\xcd\xb4\xda\x77\x00\x88\x89\xfa\ -\x9c\x7f\x1c\x0d\x3a\x13\xd9\xfe\xa9\x0c\xb8\x88\xe4\xa1\xbf\x64\ -\x89\x1e\x88\x89\x51\x66\xe2\x07\x0b\xab\x30\x00\xa4\x40\xce\x09\ -\x43\x86\x0d\x20\xbc\x27\xc0\xe8\xc9\xb9\xb9\x7b\xa0\xe7\x60\x56\ -\x1e\x58\x60\x1d\x0f\xf5\x0a\xbe\xcd\xf3\xff\x05\xc2\x58\x2b\x64\ -\xbb\x27\x61\xef\xe6\x75\xc2\x02\x6f\x9e\xf3\x30\xa1\xbd\x1f\x55\ -\x55\xbd\xf0\x59\x0c\x7b\xf7\xa6\xef\xa1\xd3\xe6\x28\x8a\x92\xa2\ -\x28\x9a\x11\x03\xf6\xc5\x32\x3c\x1a\xb4\xc3\xac\xa7\xbd\x0f\xae\ -\x1d\xe8\xe9\xbe\xcd\x47\xc7\xb5\xf3\x1a\x49\xb6\x6d\x7b\xa2\x65\ -\x32\x30\xf0\xdb\xe6\x39\x3a\x38\xa6\x33\x0d\x75\x50\x32\x75\x96\ -\xd8\x3e\x93\x3d\xe6\x44\xbd\x15\xa1\x40\x9f\x93\xf3\xc9\x21\x3b\ -\xe2\x02\x11\x97\xac\xfa\x31\x31\x38\xd5\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x02\x86\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ -\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd2\x02\x01\x0b\x00\x03\xc4\x02\x9d\xda\x00\x00\x02\x03\x49\x44\ -\x41\x54\x78\xda\xbd\x95\xbf\xab\xda\x50\x14\xc7\x3f\x79\x7d\x2d\ -\x0a\xa5\x94\x82\x98\x74\x2b\x05\x41\xfa\x63\x08\x8a\xbc\xff\xc1\ -\xff\xc1\x31\x05\x41\xb2\xb9\x14\xb4\x0e\xdd\x8a\x6e\x25\x20\xd4\ -\xd1\xcd\x41\xe7\x2e\x19\x44\x04\x47\xfd\x0b\x1e\xa8\x9b\xa0\x49\ -\x90\x36\xb7\x4b\xae\xcd\x8b\xfa\x12\x2d\xf4\xc0\x81\x5c\xc8\x3d\ -\x9f\x73\xee\xf7\xdc\x73\xe1\x3f\xd9\x17\x40\x5c\xe8\x9f\x81\xa7\ -\x80\x92\x04\x20\x46\xa3\x91\xf0\x3c\x2f\xd6\x1d\xc7\x11\xb6\x6d\ -\x4b\xc8\xab\x00\x72\xd6\x24\x5d\x78\x9e\xc7\x66\xb3\x49\x5c\x72\ -\x36\x9b\x05\x78\x0b\xac\x81\x5d\x00\x3c\xb2\xdb\xf0\x62\x30\x18\ -\xb0\x5e\xaf\x01\x48\xa5\x52\x54\x2a\x15\xa6\xd3\x29\xb3\xd9\x0c\ -\xc3\x30\xb0\x2c\x0b\x5d\xd7\x29\x16\x8b\x72\x4b\x2a\x88\xa1\x9c\ -\x03\x5c\x54\x81\x10\x7f\x63\xa8\xaa\x0a\xf0\x11\xb8\x07\x36\x80\ -\x7f\x6a\xcb\x03\x40\xb5\x5a\xc5\x75\x5d\xda\xed\x36\xad\x56\x8b\ -\x6c\x36\x8b\xae\xeb\x14\x0a\x05\x19\xf0\x12\x33\x80\x1f\x84\x00\ -\x62\xb5\x5a\x9d\x74\x40\x0c\x87\x43\x91\xd4\xe6\xf3\xf9\xa1\x09\ -\xce\x6a\x20\xcf\x5c\x1e\x4b\xb9\x5c\x4e\x9c\x7a\x3e\x9f\x97\x9f\ -\x2f\x63\x35\x10\x42\xa0\xaa\x2a\x42\x08\xfa\xfd\x3e\xcb\xe5\x12\ -\x80\x74\x3a\x8d\x61\x18\x8c\xc7\x63\x26\x93\x09\xa6\x69\xd2\xe9\ -\x74\x28\x95\x4a\xdc\xdd\xdd\xa1\x28\x0a\xc0\xbb\x93\x1a\x00\x07\ -\x1d\x32\x99\x0c\xcd\x66\xf3\x81\xc0\x49\x2c\x00\x7c\x88\xad\xc0\ -\xf7\x7d\x34\x4d\x43\x08\x41\xad\x56\xc3\x71\x1c\xba\xdd\x2e\xf5\ -\x7a\x1d\x4d\xd3\x0e\x19\x87\x2b\x39\x0b\xe8\xf5\x7a\x27\x35\x68\ -\x34\x1a\xd7\x56\xf0\xfe\x00\xd8\xed\x76\x6c\xb7\xdb\xc4\x1a\xc8\ -\x33\x07\x0e\x55\x58\x96\x85\xeb\xba\x98\xa6\x79\x0c\xb0\x6d\x9b\ -\x5c\x2e\xf7\x28\xe0\x5f\x2a\xf8\x04\x7c\x8f\xbb\xc5\x52\x03\x20\ -\x56\x87\x28\xe0\x16\x78\x0e\xbc\x00\x9e\x05\x23\x44\xfa\x6b\xe0\ -\xe7\xb5\x5d\x24\x2f\xda\x6f\x60\x0b\xec\x81\x9b\xd0\x8c\x52\x80\ -\x95\xdc\x74\x89\x06\xd1\x59\x14\x1d\x7e\xe1\xb5\x02\xfc\xba\x56\ -\x83\x9b\xe8\x51\x47\xdc\x97\x53\x72\xb1\x58\x24\x0e\x1e\xfa\xd7\ -\x4f\x94\x0c\xf0\xf5\x8a\x27\xf5\x1b\xf0\x46\x49\x98\xd4\x63\x4d\ -\xa0\x44\xdf\x96\xc0\xf7\xc0\x26\x29\x40\x01\x9e\x04\xc1\xa3\x4d\ -\x70\x2a\x86\x08\x1a\x67\xaf\x5c\xf8\x88\xc4\x35\xc5\x91\x9e\x7f\ -\x00\xb7\xae\x9e\x43\x7d\xb2\x82\x67\x00\x00\x00\x00\x49\x45\x4e\ -\x44\xae\x42\x60\x82\ -\x00\x00\x04\x4f\ +\x00\x00\x02\xfd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd7\x09\x08\x0c\x24\x01\x84\xbe\xe4\xfd\x00\x00\x00\x0f\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x69\x64\x20\x6c\x6f\x67\ -\x6f\x86\xc6\x77\xb9\x00\x00\x03\xc1\x49\x44\x41\x54\x38\xcb\xad\ -\x95\x4b\x68\x5c\x55\x18\xc7\x7f\xe7\xcc\xcd\x4c\x26\x89\xd5\x98\ -\x92\x96\x36\x4e\xd3\x18\xd1\xb6\x98\xfa\x98\x26\xa8\xf8\xc0\x42\ -\xa5\x49\x4b\x7d\x60\x75\xa3\x28\x2a\xa5\x10\x1f\x50\x95\x6e\x14\ -\xba\x91\x2e\x04\x17\x8a\xee\x7c\xe0\x83\x2a\x42\xab\xd0\x04\x52\ -\x92\x58\x8a\x8b\xf4\x11\xfb\x48\x66\x48\x86\x56\xdb\x8a\x64\xd3\ -\x36\x36\x93\xcc\xbd\x33\x77\xce\xdf\xc5\xcc\x24\x69\x1a\x5c\x68\ -\xff\xf0\x71\xee\xe2\xf0\x3f\xbf\xef\x3b\xdf\x77\x2e\x80\xfa\xfa\ -\x7b\x74\x23\x56\xe6\xab\xaf\xbf\x47\x37\x42\x65\xf3\x59\x19\x40\ -\x92\x18\x4d\x9f\x7e\x45\xc2\x97\x54\x90\x08\x24\x85\xc2\x15\x91\ -\x9c\x04\xc6\x60\x9d\xa3\x0a\xc9\x93\x51\x54\x52\x14\x88\x4b\x8a\ -\x6d\xb8\xaf\xe3\x63\x63\x4c\xc5\x0f\x00\xaf\xaf\xbf\x07\x4a\xee\ -\x01\x98\x40\x92\x2f\x91\x07\x15\x40\x61\xf0\xe7\x87\x5b\x9c\xff\ -\xfb\xb3\xb8\x20\x81\xad\xbd\x60\xe2\x77\xfe\xec\x2d\xdf\x31\x08\ -\x08\xc9\x48\x32\xe5\xcc\xd9\xb4\xb1\xf3\x7a\xe2\x33\xa3\x27\xb7\ -\x83\xc9\x39\xa7\x1c\x28\x90\x94\x0f\xce\xef\xd9\x12\x8f\x4e\xbc\ -\xd7\xbc\xfe\x25\x30\x11\x9c\x73\x9c\x3f\xf3\x3d\x33\xe1\xea\x8f\ -\xbc\xe5\x3b\x7e\x41\x8a\x3b\x29\xde\x91\x7c\xe0\x8b\x85\xc4\xb6\ -\x42\x0c\x26\x00\x05\x40\x20\xf0\x81\x5c\x71\x26\xf5\x5c\xcb\x3d\ -\x2f\xf0\x6b\xda\x27\x12\x0e\x11\x71\xc3\xac\x5a\xfb\x18\xca\xa5\ -\xb7\xc9\x29\x28\x65\x46\xa1\x42\x3c\x5f\xde\xa6\x8d\x9d\x48\x42\ -\x28\x3c\xf7\xf2\xab\x7d\x2e\xe7\xe3\xfc\x00\xe5\x03\x5c\xbe\xc0\ -\xc5\xe2\x1e\x7a\x5f\xdb\x45\xd3\x2d\xb5\xb4\x34\x66\x91\x35\x50\ -\x9c\x4e\x08\x42\x20\x94\x08\x81\x6b\xca\xb0\xb0\xc6\xa1\xc2\x22\ -\x0f\x25\x12\x98\x20\xc0\x06\x79\x4c\x21\xcf\x13\x4b\x37\x53\x18\ -\x8f\xf0\xc6\x27\x2b\x38\xf8\xc1\x34\x84\x79\x30\xf6\x0f\x4a\xc6\ -\x45\x49\x6e\xb1\x1a\xcf\x12\x1b\x21\x24\x70\x8e\x8b\x99\x0c\xe4\ -\x72\xa4\xee\x78\x90\xab\x26\x46\xc3\xd2\x95\x5c\xbe\xf4\x17\x83\ -\xa3\xb7\xd1\x14\x7c\x06\xd1\xc4\x3e\x24\x01\x32\xa6\x64\xbc\x90\ -\xd8\xce\x11\x97\x3a\xfc\xea\xe4\x64\xf9\x0e\x0c\x87\xe2\x09\x1a\ -\x9a\x56\x11\x4c\x4f\x51\xbf\x6c\x25\xdf\x1e\x48\x4d\x4f\xfb\xf5\ -\xef\x47\x56\xec\x3e\x50\xe2\x50\xd9\xff\xfa\x1a\xdb\xca\x49\x0e\ -\x45\x8c\xb1\xc8\x18\x96\x2c\x6d\x60\x6c\xfd\xe3\x9c\xae\x6f\x26\ -\xea\x19\xac\x42\x22\x11\xc3\xd9\xcb\xcd\xb1\x6f\x32\x6f\xe6\x05\ -\x11\x49\x16\x64\xe4\xb0\xff\x4a\x0c\x78\x78\x11\x46\xb2\x59\x4e\ -\x4d\x4d\x71\x30\xb6\x9c\x65\x89\x26\x94\x9f\x21\x56\x65\x71\xc1\ -\x0c\xb7\x36\x36\x7a\x63\x99\x8b\xef\x20\x3c\xc0\x13\x78\x47\x8f\ -\x9f\x48\x2c\x46\x3c\xdb\xc7\xbf\x9d\x3a\xf1\x24\xe0\x3b\xe7\x66\ -\x06\xcf\x5c\x59\x7d\xf0\xf0\xf8\xe7\xf1\x25\xf5\x91\xca\x9c\x1a\ -\x03\x9e\x35\xf8\x53\x57\xc2\xae\x47\x5a\xbb\xdb\x5b\xeb\x2e\x08\ -\xd5\xec\xec\xde\xf5\xe3\xfe\x1f\xf6\x71\x7b\x4b\xcb\xe2\x7d\x2c\ -\xb9\x98\x93\x62\x82\xea\x73\x13\xfe\xd3\xd1\x2a\x1b\xc9\x4f\x4f\ -\x12\x4c\x5d\x99\x8b\xec\x24\x9e\x67\xbd\xb3\x13\xfe\x56\x49\x31\ -\xa0\x0a\xe0\xa9\xed\xcf\xf3\xf5\x77\x5f\x2d\x4e\x7c\xe2\xe4\xb1\ -\x17\x4b\x23\xed\x7c\xa4\x40\xa8\xd4\xa3\xc2\x49\x32\x42\x16\xc9\ -\x93\xa8\x12\x8a\x22\x55\x03\xd5\x3b\x5f\x7f\xfb\xcb\xa1\x23\x87\ -\xe9\x78\xf8\x51\x9c\x73\xeb\x46\x86\x8f\x8f\x01\xc5\xf9\x93\x17\ -\x2b\x6f\x8e\x03\x35\x88\x1a\x50\xad\x50\x9d\xa4\x1a\xa0\x12\x71\ -\x20\x2e\xa8\xa6\x14\xa4\xd3\x69\x86\x8e\x1c\xc6\x5a\x3b\xda\xba\ -\x66\xed\xbd\x15\xea\xff\xf5\x5c\xb6\x25\xdb\x25\x49\xe3\xe3\x63\ -\xca\x66\xb3\x6a\x4b\xb6\xab\x2d\xd9\xbe\xc6\xf6\xf5\xf7\x60\x8c\ -\xe1\xd0\x40\xef\x7f\x5a\x2b\xaa\xab\xbb\x89\x4c\x66\x8c\xde\x9f\ -\xf6\x03\xa4\x0c\x50\x0f\xdc\x5c\x8e\x5a\xe6\x52\x8c\x02\x16\x70\ -\xb3\x13\x33\xa7\x22\x10\x00\xf9\xb6\x64\x7b\xff\xa9\x63\x43\x00\ -\x0c\x0c\x0c\xf0\xd6\xbb\xbb\x33\xc6\x98\x6d\x1e\x70\x15\xc8\x01\ -\x97\x00\xaf\x7c\xd3\xd1\xf2\xb7\x2d\xff\x72\xae\xfd\xed\x94\x0e\ -\x2b\x56\x5e\xb6\xf5\x1b\x3a\x78\x66\x6b\x17\xdd\xdd\xdd\x7f\xdf\ -\x7f\xf7\xba\xf4\xf0\x48\x6a\xaf\x57\xde\x50\xa4\xf4\x54\x32\x8f\ -\xce\x56\xee\xa0\xd2\x3d\x0b\x8c\x2b\xd9\x70\xfa\xf8\x51\x0b\x1c\ -\x48\x26\x93\x5b\x3a\x3b\x3b\xef\x1a\x1e\x49\x35\x18\x6e\x90\xda\ -\x92\xed\x5d\xc0\xa7\x65\xc0\xbd\xff\x00\x7c\x02\xcd\x92\x88\x3c\ -\x0a\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x08\x96\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x08\x4b\x49\x44\x41\x54\x68\x81\xed\x99\x59\x6c\ -\x5c\xd5\x1d\x87\xbf\xbb\xcc\xea\x59\x3c\xbb\x97\xc4\x4b\xbc\x11\ -\x27\x26\x09\x01\x15\x2a\x14\xd4\x96\x50\xa9\x0b\x11\x09\xa8\x55\ -\x91\x20\x2f\x54\x95\xda\xbe\x54\x7d\xaa\x5a\x35\x20\x2a\xf1\x90\ -\x87\x2a\x40\xa1\x2a\x05\x4a\x68\x1a\x22\x91\x92\x86\xe0\x42\xd2\ -\x34\x24\x61\xb1\xe3\x38\xb6\x63\x3b\xc1\x8e\x67\xbc\x3b\x33\xe3\ -\x75\x3c\xcb\x9d\x99\xbb\xf4\xc1\xa4\x35\x59\x88\x1d\x4c\xcd\x83\ -\x3f\xe9\x3c\xcd\x3d\x67\xbe\xdf\x3d\x77\xce\xcc\xff\x3f\xb0\xc2\ -\x0a\x2b\xac\xb0\xc2\x17\x40\x58\x6e\x81\x9b\xb2\x0b\x91\x20\x15\ -\x38\x88\xf2\x18\xa9\xab\x5f\x16\x97\xc3\x69\xc1\xbc\x48\x0d\x21\ -\x3e\x10\x4c\x42\x1f\x09\x22\x3c\xce\xba\xab\x2f\x91\x96\xc3\xeb\ -\xa6\x18\x08\x04\xf9\x19\x08\x07\x03\x45\xc1\xca\xfa\xda\x3a\xd2\ -\x8a\x52\xa0\x8c\x2a\xe5\xb4\x70\x04\xc8\x5e\xb9\x54\x5e\x46\xcd\ -\xeb\xf3\xbc\x6d\xb5\xf0\xac\xfa\x8a\xc5\x6a\xfa\x56\x79\xd5\x2a\ -\xbe\x53\xbd\x86\x98\xa2\x70\x49\x17\x11\xf2\x92\xd5\x40\x0b\x01\ -\x33\x57\x2e\xff\x4a\x05\x90\xf6\x58\x1f\x13\x54\xfd\x59\x7f\x49\ -\xd0\xb5\xb1\xae\x8c\x9d\x95\x95\x1c\x8b\x46\x79\xbf\x3b\xcc\xec\ -\xe5\x64\xc6\x38\x66\x9c\x02\x94\xf9\x73\xbe\x12\x01\x6c\x7b\x6c\ -\xab\x54\x55\x7c\xc5\x24\x99\xee\x5f\x5d\x5b\xc4\xb6\xba\x4a\xb6\ -\x95\x96\xb2\x6f\x70\x90\xf7\x3a\xc3\x44\x7b\xc7\x33\xfa\x5f\xb5\ -\x17\xe9\xd7\x4f\x00\xa3\xf3\xe7\x2e\x7b\x00\xeb\x6e\xf7\x8f\xf5\ -\x1c\xbb\x7d\xa5\x2e\xe7\xda\xba\x12\x76\x56\x95\x53\xe3\x32\x73\ -\x70\x70\x84\x77\x3a\xc3\x44\x7b\x26\xb2\xfa\x81\xfc\xcb\x7a\xbb\ -\x7a\x18\xf8\x08\x50\xe7\xcf\x5f\xb6\x00\xce\xdd\x4e\xbf\xaa\x99\ -\xfe\x28\x49\xd2\xf6\xe2\x3a\x1f\x5b\xd7\xae\xe6\xc1\x32\x1b\x79\ -\x71\x98\xc6\x51\x0f\x6f\x75\x86\xb9\xdc\x3d\xa1\xaa\x87\x73\xaf\ -\x69\x2d\xf9\x43\xc0\x87\x40\xee\xea\x75\x96\x25\x80\xfd\x99\xd0\ -\x36\x2d\xaf\xbf\xe4\x0a\xd8\xfc\x55\xeb\x82\x3c\x5a\x53\x46\xd0\ -\xdb\xc7\x34\x59\x7a\x46\x6b\x38\xd0\xd6\xc7\x58\xc7\xa4\xaa\x1e\ -\xc9\xbe\xa6\x9d\x56\xfe\x0e\x9c\x66\xde\xc9\x33\x9f\xeb\x07\xd8\ -\x55\x61\xb5\xca\xd9\x90\xf2\xeb\xb1\x81\x25\x35\xdf\x55\x62\x77\ -\x48\xfa\x6e\x51\x10\x7f\x52\xb4\xd6\x2f\xdc\x53\x5b\xc4\xf6\x4a\ -\x3b\x31\xf3\x09\x14\xdc\x0c\x8c\xae\x67\x5f\x7b\x3f\xa3\x1d\x93\ -\x46\xfe\xb4\xf2\x56\xfe\x74\xfa\x2d\xe0\x24\x90\xb9\xd1\x92\xd7\ -\x7c\x13\x17\x3e\x5d\x5c\xae\x6b\xe2\x49\x41\x14\xca\xf4\xa4\xfe\ -\xb1\x31\xaa\x6d\x4b\xee\x8d\xc6\xbe\xa8\xbb\xf3\xa9\xd2\x7b\x04\ -\x43\xd8\x6b\x2d\x34\x57\x95\x37\x78\xf9\xc1\x6d\xa5\x54\x06\xe2\ -\x8c\xc9\x2d\x14\xe8\x41\x62\x97\x37\xf1\xfa\xf9\x61\x86\x5a\xc7\ -\xc9\x36\x25\x0f\x67\x0e\x4d\xfd\x05\x38\xc6\xbc\x23\xf3\x7a\x5c\ -\xb3\x03\x86\x6a\x7e\xc2\x19\xb4\x96\x15\xd7\xbb\x18\x39\x3f\x73\ -\x77\x4a\x4d\x35\x59\xb7\xb8\xbf\xa9\x9c\x9c\x89\xdc\x92\xf9\x9e\ -\x6a\x8b\x7b\x32\xf7\xa4\x80\xf0\x4b\xef\x1a\xa7\xd4\x50\xef\xe5\ -\xe1\x2a\x0f\x82\xf3\x13\xe2\xe2\x28\x36\xdd\x47\x32\xbe\x99\xbf\ -\x75\x8e\x30\x72\x76\x9a\x5c\xab\xf2\x5e\xe6\xd0\xd4\x3e\xe0\xf8\ -\xcd\xe4\xaf\x1b\x40\xcc\x4a\x26\x51\x17\x59\xef\x75\xe1\xdd\x6c\ -\xa5\x4b\x8b\x57\x24\x75\xf9\x38\xb0\xe8\x10\x85\xbf\xa9\xdc\x20\ -\x44\xf5\xd7\xcd\x2e\xeb\xfa\xe2\xf5\x6e\xb6\xd6\xf8\xb9\xbb\x4c\ -\x27\x65\xb9\x40\x96\x04\x66\xdd\x4d\x26\xb6\x91\x57\xce\x8f\x31\ -\x7c\x66\x86\x5c\x47\xe6\xfd\xf4\x9b\xf1\xd7\x80\x7f\x01\x53\x0b\ -\x79\x8f\x6b\x7e\x4a\x38\xbe\x5e\x38\x94\x4f\xf3\x53\xd5\x2b\x0b\ -\x8f\xd7\x17\x33\x61\x17\x99\x49\xa9\x85\x86\xcd\xb4\xc3\x70\xcb\ -\x87\xb5\xbe\xf4\xe4\x4d\x57\xdd\xb5\xce\xec\xbb\xd7\xf3\x3b\x11\ -\xf1\x55\x4f\x95\xa3\xe8\xf6\x3b\x03\xec\x6c\x08\xb1\xa6\x78\x96\ -\xac\x39\x8a\x86\x82\xa0\x59\x98\x8d\x35\xf0\x6a\x7b\x9c\xa1\xe6\ -\x69\xb2\x9d\xc9\x53\xc9\x03\x63\x7f\x66\xee\xb1\x59\xf0\x23\x7b\ -\x4d\x80\xf4\x07\xd3\x13\xf6\x3b\xfc\x5b\x74\x49\xaa\xf4\x15\x59\ -\xf8\xf6\x6a\x3f\x63\x26\x83\x44\x52\x77\x21\xcb\x3b\x64\x93\xf0\ -\x76\x6e\x30\x3d\x71\xa3\x05\x03\xbf\x5a\xb7\xd1\x96\xd3\xdf\xb5\ -\x14\x98\x1e\x2a\xd9\xe4\x11\xbf\xbb\x21\xc8\x83\x35\x2e\xac\xee\ -\x69\x54\x29\x85\x4e\x0e\x43\x17\x48\xc6\x6b\x78\xbd\x7d\x9a\xe1\ -\x33\x09\xb2\x17\x53\xcd\x89\xfd\xc3\x7f\x02\xde\x03\x2e\x2f\x54\ -\xfe\xba\x01\x00\x0a\xee\x0a\x0c\x6a\x0a\x3b\x33\x1e\x91\xfb\xcb\ -\xaa\xd9\xe8\xf7\x32\x20\x27\x99\x4d\xea\x2e\xdd\x6e\x79\x44\x74\ -\xca\x8d\xb9\x48\x32\xfe\x99\x49\x8f\x3c\x22\x05\xbf\x27\xfe\x56\ -\x34\x84\xbd\xee\x32\x5b\x51\xcd\xe6\x42\x7e\xb8\xce\x47\xc3\x6a\ -\x13\xa2\x2d\x8d\x26\x28\xe8\x64\xd1\x75\x9d\xd9\x68\x25\xfb\xce\ -\x27\x19\x6a\x4e\x90\xb9\x98\x6e\x9d\xd9\xd7\xff\x02\x73\x77\x7e\ -\x64\x31\xf2\x37\x0c\x90\x6e\x1e\xef\xb7\x6f\x0c\xee\xd0\x4c\x52\ -\xc8\xe1\xcb\x70\x5f\xc9\x03\xac\x72\xa6\x19\x92\x52\x24\x53\x38\ -\x0c\x93\x69\x87\xe8\x92\xfe\x1b\xc2\xff\x8b\x0d\xb5\x4e\xf7\xc4\ -\x11\x93\x55\x7e\x34\xb0\xc1\x29\x6e\xd9\x58\xc8\xf6\xb5\x5e\x8a\ -\xfd\x32\x82\x9c\x43\x63\x4e\x5e\xd3\x35\x66\x62\x25\xbc\xd1\x91\ -\x66\xe0\xa3\x24\xe9\x4b\xe9\xce\xa9\xfd\xfd\x7f\xc0\x30\x8e\x02\ -\x83\x8b\x95\xbf\x61\x00\x80\x82\x0d\xa1\x84\x96\x93\xb6\xe7\xfc\ -\x02\xf5\x01\x99\x3a\xcf\xd7\x08\x16\x4c\x31\x24\x65\x48\xa5\x05\ -\x07\xa2\xf5\x61\xc1\x69\x69\xf4\x3d\x54\xfd\x23\x49\x10\xdf\x74\ -\xac\xb2\x94\x97\xdf\xe1\x60\x5b\x83\x9b\x7b\xd7\xf8\x71\x3a\x44\ -\x34\x21\x8b\x86\x82\x46\x16\x55\xcf\x33\x19\xf5\x71\xa0\x5d\xa1\ -\xbf\x49\x41\x89\x64\x7a\xa6\x0e\xf4\x3e\x67\xe4\xf5\x63\xc0\xad\ -\x9d\x70\x9f\x17\x20\x55\x75\x5f\xb7\x53\x9a\x7a\x22\x6f\x11\x9d\ -\x85\x81\x24\xb5\xde\x0a\x8a\xec\xab\xf0\x17\x4c\x33\x2c\x2a\x64\ -\x52\x82\x43\xb4\xda\x76\x9a\xac\xf2\xf7\x3d\xeb\xac\xf2\x9d\x9b\ -\xec\x6c\xaf\xf7\x71\x5b\x89\x0f\xd9\xac\xa3\x31\x4f\xde\xc8\x31\ -\x11\x73\x71\xb0\x3d\xcf\x60\x53\x0e\x65\x40\x19\x1e\x3f\xd8\xfb\ -\xbc\x9e\x56\x8f\x01\x3d\xb7\x2a\xff\xb9\x01\xe8\xee\x36\x9c\xeb\ -\x8b\x44\x43\x95\xb6\xaa\x7e\x81\xea\x80\x80\xcb\xea\xc2\x6f\xf7\ -\xe3\xb3\x27\x18\x11\x73\x64\x55\xd1\x14\x6c\xb0\xf0\xc0\xed\x76\ -\xb6\xd6\x95\x12\xf2\x38\xd0\xc5\xdc\x55\xf2\x59\x62\x51\x3b\x87\ -\xda\x35\x06\x5a\x54\xd2\x61\x65\x64\xfc\xcd\x0b\xbf\xd7\x66\xb3\ -\x8d\xc0\x05\xc0\xf8\x72\x02\x00\xee\x6f\x54\x9c\x23\x21\xfc\x5c\ -\xb1\x89\x96\x50\x28\x45\xb9\x27\x00\xa2\x86\xb7\xc0\x85\xcb\x96\ -\x44\x76\xeb\xdc\x5f\xe7\x60\x73\x45\x09\x76\xab\x34\x4f\xfc\x53\ -\x79\x14\xe2\x71\x99\x77\x3a\x04\x22\x4d\x2a\xa9\x4b\xd9\xcb\xf1\ -\x43\x5d\x7b\xd4\x84\xf2\x4f\xa0\xfb\x8b\xca\xdf\x34\x40\xe2\xe3\ -\x61\xd5\x75\xdb\xaa\x10\xba\xe9\x6e\xd5\xab\xb3\x26\x20\x61\xb3\ -\xc8\x20\x68\xf8\x9d\x4e\x6a\x43\x05\x94\x7a\x5c\x88\x92\x3a\xf7\ -\x21\x9d\x27\xae\x91\x25\x1a\x13\x38\xd2\x2a\x13\x3e\xa3\x93\xee\ -\x55\xc7\xe3\xef\x74\x3e\x9b\x9f\x4a\x1f\x05\x3a\x96\x42\x1e\x16\ -\x50\xd4\xeb\x92\xfd\x69\x35\x2e\x64\x23\xfd\x70\x21\x3a\x4c\x8e\ -\x14\x79\x52\x18\x42\x1a\xb3\x59\x43\x15\x32\xa8\xa4\xc9\x93\x46\ -\x25\x83\x4a\x06\x8d\x2c\xc3\x51\x9d\xc6\x73\x12\x91\x56\x83\x4c\ -\x8f\x3e\x1d\x7f\xb7\xeb\x85\xdc\x44\xf2\x28\x70\x0e\xd0\x97\x42\ -\x1e\x16\x50\xd4\xcf\xb6\x47\x32\x85\x75\x65\xf5\x82\x61\x6a\xd0\ -\xbd\x79\x2a\x82\x60\x31\x1b\xe8\x7c\xf6\x59\xff\xdf\x50\x18\x89\ -\xea\x1c\x6f\x33\x13\x39\x2b\xa2\x5c\xd0\x67\xa3\xc7\xcf\xbf\xa8\ -\x5c\x9e\x6a\x04\xce\x00\xda\x52\xc9\xc3\x02\xdb\x2a\x82\x6c\x7b\ -\x52\x1d\x95\x8c\xc8\x80\x44\x5f\x2c\x4e\xfe\xd3\x5d\x98\x1b\x57\ -\xee\xfe\xdc\x18\x89\xab\xfc\xbb\xcd\x42\xf8\xac\x89\x4c\x97\x94\ -\x89\x9f\xea\x7a\x29\x33\x3a\xd1\x08\x34\x71\x55\x35\xb5\x14\x2c\ -\xa8\xad\x32\xdd\x71\x69\xc2\x53\x5b\xbd\x45\x10\xe5\x4a\xbd\x30\ -\x4f\x59\x71\x1e\xd9\x94\x9f\xb7\x0b\x73\x63\x6c\x5c\xe7\x44\xab\ -\x83\x70\xab\x05\xa5\x4b\xcc\xc6\x3e\x3a\xff\xd2\x6c\xff\xd8\x95\ -\x6a\x2a\xbf\xd4\xf2\xb0\x88\xc6\x96\xa0\x0a\x4f\x69\x03\x26\x06\ -\x86\x4d\xf4\x47\x53\x9f\xd9\x05\x95\x34\x23\xe3\x79\x4e\xb5\x16\ -\x10\x3e\x67\x25\xd7\x61\xca\xc5\x9a\xbb\x5e\x4e\x44\x86\xdf\x66\ -\xae\x8e\xbd\xa6\x14\x5c\x2a\x16\xdc\xd8\x9a\xbc\x78\x69\xc0\x57\ -\x55\xb7\x03\x59\x0a\x19\x85\x39\xca\x4a\x52\x88\x72\x16\x8d\x1c\ -\xd1\x49\xf8\xb0\xc5\xc3\xa5\x36\x27\xf9\x76\x8b\x1a\x3d\xd7\xb9\ -\x77\xba\x37\xfc\x0f\xe0\x04\x57\xb5\x41\x96\x9a\x45\xb5\x16\x05\ -\x95\x67\xb4\x88\x95\xa1\x21\x1b\x03\x51\x8d\x3c\x29\xa2\x53\x2a\ -\x1f\x9e\x75\xd1\xd7\xee\x24\xdf\x6a\xd7\xc7\x3b\x3e\x79\x63\xf2\ -\x93\xde\x2b\xf2\x37\x2c\x05\x97\x8a\x45\x05\xb8\xb8\x79\xd3\x7e\ -\x63\x96\xc1\x74\xd8\x4e\x4f\xd8\x4a\x74\x4a\xa3\xe9\xac\x8f\x70\ -\x9b\x17\xad\xa5\xc0\x98\xbc\xd0\x73\x30\xd6\xdd\x79\x90\x39\xf9\ -\x6b\x1a\xb1\x5f\x06\x8b\xeb\x8d\x9e\x38\x61\x04\xca\xd7\xca\x62\ -\xd6\xfa\x40\xce\xaf\x33\x99\x30\x13\x69\x0b\xa1\x35\x3b\x99\xe8\ -\x0d\xbf\x3d\xda\xd1\xf2\x06\x73\xd5\xd4\xf4\x97\x62\x7b\x1d\x16\ -\xdd\x9d\x0e\xe6\x1c\xcf\x19\x53\xf2\x54\xb2\xcf\xc5\x40\x47\x08\ -\xbd\xd9\xcd\x4c\xdf\xd0\xd1\x91\xf6\x8f\xf7\xb3\x88\x52\x70\xa9\ -\x58\x74\x77\xba\xbf\xbf\x4d\xf5\x97\x54\xe7\xa4\x89\xc2\xad\x44\ -\xec\x24\x86\x86\x4f\x46\xce\x1d\xdf\xcb\x9c\x7c\x74\xe9\x15\x3f\ -\x9f\x5b\xfe\x83\xc3\x13\x28\xbb\x37\x97\xcf\xde\x95\x9a\x8e\x0e\ -\x30\x77\x54\x8e\x2d\x9d\xd6\x0a\x2b\xac\xb0\xc2\x0a\xff\x27\xfe\ -\x03\x72\x48\xe3\xb0\x1d\x11\x42\x9d\x00\x00\x00\x00\x49\x45\x4e\ -\x44\xae\x42\x60\x82\ -\x00\x00\x04\x4e\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ -\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd2\x01\x07\x0b\x01\x15\x4b\x06\x3c\xc6\x00\x00\x03\xcb\x49\x44\ -\x41\x54\x78\xda\xb5\x96\xcf\x4b\x1c\x49\x14\xc7\x3f\x5d\xd3\x3d\ -\x62\xa2\xf8\x63\x8c\x60\x12\x33\x92\xbb\xae\x88\x17\x5b\x50\xc1\ -\x40\x18\x08\xe3\x06\x57\x84\xe0\x68\xbc\xcd\x25\x07\x73\x8a\xf9\ -\x07\x3c\xe9\x7f\x21\xa8\x43\x2e\xc1\x04\x8c\x27\x41\x4d\x34\xd9\ -\x55\x83\x10\x44\x44\x57\x34\x1e\x46\x3c\x98\x66\x7a\xba\xbb\xaa\ -\x7b\x0f\x71\x1a\x25\x8e\x2e\x8b\x5b\xf0\xa0\xba\xaa\x78\x9f\xf7\ -\xbe\xf5\xba\xaa\xe0\x7f\x6e\x5a\xb1\x89\x44\x22\x91\xcc\x66\xb3\ -\x7d\x8e\xe3\x98\x52\xca\x07\x4a\x29\x80\x7d\x60\xb9\xa2\xa2\x22\ -\xf3\xf9\xf3\xe7\xb7\xff\x09\x90\x4a\xa5\x5a\x36\x36\x36\x26\x84\ -\x10\x9d\xdd\xdd\xdd\x34\x35\x35\x11\x8b\xc5\xf0\x7d\x9f\x6c\x36\ -\xcb\xea\xea\x2a\x73\x73\x73\x48\x29\x17\xee\xdd\xbb\xf7\x72\x65\ -\x65\xe5\xaf\x7f\x0d\xe8\xea\xea\x4a\x1e\x1d\x1d\xbd\x31\x4d\x53\ -\xef\xed\xed\xa5\xb6\xb6\x16\xc3\x30\xd0\x34\x0d\xdf\xf7\xf1\x3c\ -\x8f\x7c\x3e\xcf\xf7\xef\xdf\x99\x9c\x9c\xe4\xe3\xc7\x8f\xb2\xb2\ -\xb2\xb2\x77\x67\x67\xa7\x68\x36\x91\x42\xa7\xa7\xa7\xa7\x65\x7b\ -\x7b\x7b\xfe\xe9\xd3\xa7\xfa\xd0\xd0\x10\x35\x35\x35\x94\x97\x97\ -\x53\x5d\x5d\x4d\x4d\x4d\x0d\x77\xee\xdc\x21\x16\x8b\x51\x56\x56\ -\x46\x59\x59\x19\x8d\x8d\x8d\xd8\xb6\x2d\xd6\xd7\xd7\xfb\xee\xdf\ -\xbf\xff\xee\xe4\xe4\xe4\xe8\x32\x80\x5e\xe8\x7c\xfd\xfa\x75\xc2\ -\x34\x4d\xbd\xbf\xbf\x9f\xd7\xaf\x5f\x63\x18\x06\x86\x61\x20\x84\ -\x60\x7a\x7a\x9a\x20\x08\xe8\xef\xef\x27\x08\x02\x82\x20\xc0\xf3\ -\x3c\x5e\xbd\x7a\xc5\xe1\xe1\xa1\xfe\xe5\xcb\x97\x09\xa0\xeb\x32\ -\x80\x00\x68\x6e\x6e\x4e\xfa\xbe\xdf\x39\x38\x38\xc8\xad\x5b\xb7\ -\x88\x46\xa3\x94\x94\x94\x20\x84\x40\xd3\x34\x84\x10\x61\x5f\xd3\ -\x7e\xaa\x1a\x89\x44\x78\xf8\xf0\x21\xe9\x74\x9a\x20\x08\x3a\xab\ -\xab\xab\x93\x45\x01\xd9\x6c\xb6\x2f\x99\x4c\x52\x57\x57\xc7\xed\ -\xdb\xb7\xd1\xf5\x9f\x89\x65\x32\x19\x32\x99\x4c\xe8\x78\x66\x66\ -\x86\xa9\xa9\xa9\xf0\x5b\x08\x41\x73\x73\x33\x89\x44\x02\xdb\xb6\ -\xfb\x8a\x02\x1c\xc7\x31\xdb\xdb\xdb\x89\x46\xa3\x94\x97\x97\x87\ -\x51\x06\x41\x70\x61\x71\x41\x9e\x0b\x55\xa2\x69\x3c\x7a\xf4\x08\ -\xa5\x94\x59\xb4\x8a\xaa\xaa\xaa\xbc\xd9\xd9\x59\xfd\xee\xdd\xbb\ -\x54\x56\x56\x12\x8d\x46\x89\x44\x22\x44\x22\x11\x84\x10\xa1\x73\ -\xdf\xf7\x51\x4a\xe1\x79\x5e\x58\x51\xb9\x5c\x8e\x83\x83\x03\x1e\ -\x3f\x7e\x2c\x5d\xd7\x35\x2e\xdd\x64\xa5\x14\x9a\xa6\xa1\xeb\x3a\ -\x4a\x29\xce\x7e\xaa\x5f\xb2\x28\xcc\x9d\x07\x49\x29\xf1\x3c\xef\ -\x97\xcc\x2e\x48\xa4\x94\xda\xdf\xdd\xdd\x0d\x6b\x7d\x60\x60\x80\ -\x67\xcf\x9e\x21\xa5\x0c\xed\xbc\xb3\x54\x2a\xc5\xf0\xf0\x30\x9e\ -\xe7\xe1\xba\x2e\x5b\x5b\x5b\x28\xa5\xf6\x8b\x02\x82\x20\x58\xfe\ -\xf0\xe1\x03\xf9\x7c\x1e\xd7\x75\xc3\x28\x5d\xd7\xc5\x71\x9c\xd0\ -\x5c\xd7\xc5\x75\xdd\x30\x83\xc2\xf8\xdc\xdc\x1c\xbe\xef\x2f\x17\ -\x05\x08\x21\x32\x99\x4c\x86\xed\xed\x6d\x6c\xdb\x0e\xa5\x48\xa5\ -\x52\x0c\x0c\x0c\x60\xdb\x36\x8e\xe3\x90\x4a\xa5\x78\xfe\xfc\x39\ -\x52\x4a\x94\x52\xd8\xb6\xcd\xb7\x6f\xdf\x78\xff\xfe\x3d\x40\xa6\ -\x28\xc0\xb2\xac\x0d\x29\xe5\xc2\xd8\xd8\x18\x96\x65\x5d\xd0\x57\ -\x29\x85\x65\x59\xe1\x78\xc1\xa4\x94\x9c\x9e\x9e\x32\x3e\x3e\x8e\ -\xef\xfb\x0b\xc0\xdb\x2b\xcf\x22\xc3\x30\x5a\x80\x95\x27\x4f\x9e\ -\xe8\x23\x23\x23\x18\x86\x81\xae\xeb\x61\xcd\xfb\xbe\x1f\x6e\xb4\ -\xeb\xba\xe4\x72\x39\xc6\xc7\xc7\x99\x9f\x9f\x97\xc0\xef\xc0\xbb\ -\x2b\xcf\x22\xdf\xf7\xa3\x9a\xa6\x2d\x6c\x6d\x6d\xf5\xad\xad\xad\ -\x89\xfa\xfa\x7a\x4a\x4b\x4b\x71\x5d\x37\x94\xc8\x71\x1c\x2c\xcb\ -\x62\x73\x73\x93\xb1\xb1\x31\x3e\x7d\xfa\x24\x81\x1c\xf0\x07\x70\ -\x02\xfc\x79\xdd\x71\x1d\x07\x62\x9a\xa6\x4d\x08\x21\x3a\x3b\x3a\ -\x3a\x68\x6b\x6b\xa3\xa1\xa1\x01\x80\x9d\x9d\x1d\x96\x96\x96\x58\ -\x5c\x5c\x04\x58\x00\x5e\x02\x6f\x80\xaa\xb3\x60\x8f\x81\x17\xc0\ -\xec\x75\x17\x4e\x1c\xf8\x0d\xe8\x03\x4c\xe0\xc1\xd9\xf8\x3e\xb0\ -\x7c\xb6\xa1\xc7\xc0\x21\x40\x43\x43\xc3\x26\xa0\xed\xed\xed\x09\ -\xc0\x03\x12\x67\xeb\xae\x6d\xf1\x2b\xec\xfc\x9a\xe3\x74\x3a\xed\ -\xb5\xb6\xb6\xda\xc0\xe9\x99\x6c\xf1\x9b\xbc\x7a\xe3\xc0\x8f\xd1\ -\xd1\x51\x65\x9a\xa6\x04\x7e\x00\xd6\x4d\x42\x0a\x59\xe5\xd3\xe9\ -\xb4\x17\x8f\xc7\xbd\x9b\x06\x9c\x87\x1c\x01\x0a\xe8\x04\xe2\xda\ -\x0d\xbf\x52\xce\x47\xfc\x37\xc0\x3f\x72\x9e\x0b\x66\xc1\xc5\x97\ -\x96\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x76\x50\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x01\x2a\x00\x00\x01\x08\x08\x06\x00\x00\x00\xe8\x5e\xb9\x12\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\xd0\xcb\x00\x00\ -\xd0\xcb\x01\x9f\x0e\xc0\x23\x00\x00\x00\x09\x76\x70\x41\x67\x00\ -\x00\x01\x2a\x00\x00\x01\x08\x00\xdc\x89\x70\xd2\x00\x00\x74\x99\ -\x49\x44\x41\x54\x78\xda\xed\xbd\x67\x98\x5d\xd7\x79\x1e\xfa\xae\ -\x73\xce\xcc\x99\x72\xa6\x62\x66\x30\x00\x06\x04\x2b\xc0\xde\x04\ -\x52\x50\xa5\x2c\x51\x85\x12\x65\x39\xb2\x64\xcb\x45\x91\xcb\x75\ -\x42\xdf\x9b\x9b\xe7\x96\x27\xbe\x6e\x71\xb9\x56\x6c\xc5\x92\x15\ -\xeb\xda\x4a\x64\x3b\x91\xe4\xc4\x91\x13\x3b\x11\x25\xf6\x02\x12\ -\x20\x08\x90\x60\x01\x09\x90\x00\x89\x4e\xf4\x36\xfd\xcc\xcc\xe9\ -\x7b\xaf\xfb\x63\xb7\x55\xf7\x5e\xfb\x94\x29\xc4\xfe\xf0\x0c\xce\ -\xde\xab\xaf\x5d\xde\xfd\x7e\xdf\x5a\xdf\x5a\x04\x89\x5c\xf6\x32\ -\xba\xe5\x01\xef\xf0\x23\x00\xfe\x0f\x00\xb7\x00\x28\x02\xf8\x01\ -\x80\xff\x02\xe0\x34\x00\x5c\xd8\xfd\x9d\xa5\x6e\x6a\x22\x97\xa9\ -\xa4\x97\xba\x01\x89\x2c\xad\x30\x20\xb5\x05\xc0\xb7\x01\xdc\x03\ -\x60\x00\xc0\x08\x80\x0f\x03\xb8\x19\xc0\x7e\x00\x17\x73\x63\x9b\ -\x31\x7f\xe6\xd5\xa5\x6e\x72\x22\x97\xa1\xa4\x96\xba\x01\x89\x2c\ -\x0b\x69\x03\xf0\xcf\x01\xdc\xaa\x08\xff\x14\x80\xef\x03\xf8\x38\ -\x00\xc2\x00\x5b\x22\x89\x2c\x9a\x24\x40\x95\x08\x00\xf4\x01\xb8\ -\x3d\x24\xfe\x76\x00\x7f\x03\xe0\x17\x01\xb4\x25\x60\x95\xc8\x62\ -\x4b\x02\x54\x89\x00\x40\xb7\xfb\x17\x26\x1b\x00\x7c\x0b\xc0\xff\ -\x05\xa0\x27\x01\xab\x44\x16\x53\x12\xa0\x4a\x24\x8e\x0c\x00\xf8\ -\x7d\x00\xff\x06\xc0\x48\x02\x56\x89\x2c\x96\x24\x40\x95\x48\x5c\ -\xe9\x04\xf0\xeb\x00\xfe\x03\x80\xeb\x46\xb7\x3c\x80\x04\xb0\x12\ -\x69\xb5\x24\x40\x95\x48\x3d\x92\x01\xf0\x79\x00\xdf\x83\x33\x5a\ -\x98\x80\x55\x22\x2d\x95\x04\xa8\x12\x69\x44\x3e\x00\x07\xac\x3e\ -\x07\x20\x95\x80\x55\x22\xad\x92\x04\xa8\x12\x69\x54\xae\x07\xf0\ -\x1d\x00\xff\x0c\x40\x47\x02\x56\x89\xb4\x42\x12\xa0\x4a\xa4\x19\ -\x32\x0a\xe0\x4f\x01\xfc\x0e\x80\xfe\x04\xac\x12\x69\xb6\x24\x40\ -\x95\x48\xa4\xa4\x52\x69\xd0\xe8\x64\x3d\x00\x7e\x03\xc0\x37\x01\ -\x8c\x25\x46\xf6\x44\x9a\x29\x09\x50\x25\x12\x2a\x94\x52\xac\x1d\ -\x1b\xc3\x5d\x77\xde\x8c\x74\x3a\x0d\x4a\x43\x21\xab\x1d\xc0\x57\ -\xe0\x4c\x0e\xbd\x05\x48\x8c\xec\x89\x34\x47\x12\xa0\x4a\x24\x54\ -\x28\x05\x7a\x7b\xba\xf1\x4b\x5f\xfc\x38\x3e\xff\xe9\x0f\xa2\xb3\ -\xb3\x23\x0a\xac\x52\x08\xdc\x6e\x3e\x8a\xc4\xed\x26\x91\x26\x48\ -\x02\x54\x89\x44\x0a\xa5\x14\xb9\xee\x2c\xbe\xf4\x93\x1f\xc2\x57\ -\xbe\xf8\x71\xf4\xf7\xf5\xc0\xb6\x23\x95\xc1\x3b\x01\xfc\x47\x00\ -\x5f\x02\x90\x49\xc0\x2a\x91\x46\x24\x01\xaa\x44\x8c\x84\x52\x8a\ -\xf6\x4c\x06\xf7\x7d\xe4\x4e\xfc\xfa\x57\x3e\x8b\x75\x6b\x86\x4d\ -\xc0\xea\x2a\x00\x7f\x01\x67\xe9\x98\xee\x04\xac\x12\xa9\x57\x12\ -\xa0\x4a\xc4\x58\x28\x00\x42\x08\xde\x77\xe7\x26\xfc\xcb\x5f\xfd\ -\x1c\x6e\xd8\xb8\x21\x4a\x0d\x04\x80\x55\x00\xfe\x10\xc0\x57\x01\ -\x0c\x25\x60\x95\x48\x3d\x92\x00\x55\x22\xb1\x85\x52\x8a\x9b\xae\ -\x1b\xc3\xbf\xfc\x95\xcf\x61\xcb\x7b\x6e\x02\x40\xa2\x00\xab\x0b\ -\xc0\xbf\x80\xb3\xde\xd5\x35\xc9\x88\x60\x22\x71\x25\x01\xaa\x44\ -\xc2\x85\xb8\xbf\x94\xfd\xa1\xb0\x6d\x8a\xf5\xa3\x83\x78\xe0\xcb\ -\x9f\xc6\x27\x7f\xe2\x2e\xb4\xb5\xb5\x45\x81\x55\x06\xc0\xcf\x00\ -\xf8\x2e\x80\xbb\x80\x64\x44\x30\x11\x73\x49\x80\x2a\x11\x23\xa1\ -\x00\xa8\xfb\xbf\x07\x5a\x36\xa5\x18\xec\xeb\xc6\x2f\x7d\xf1\x63\ -\xf8\xe2\x67\xef\x41\x77\x77\x27\xec\x68\x55\xf0\xc3\x70\x46\x04\ -\x3f\x83\xc4\xed\x26\x11\x43\x49\x80\x2a\x11\x73\xa1\x01\x48\x79\ -\x62\x53\x8a\xce\x8e\x76\x7c\xfe\xbe\xf7\xe1\x57\xbe\x74\x1f\x86\ -\x06\xfb\x4d\x8c\xec\x37\x02\xf8\x6b\x00\xbf\x02\x20\x9b\x80\x55\ -\x22\x51\x92\x00\x55\x22\x91\x42\x23\xc2\x29\xa5\x68\x4b\xa7\xf0\ -\xb1\xf7\xdf\x82\xff\xf5\x2b\x9f\xc5\x86\xf5\xa3\x26\xcc\x6a\x2d\ -\x80\x3f\x03\xf0\x9b\x00\xfa\x12\xb0\x4a\x24\x4c\x92\xcd\x1d\x2e\ -\x73\xc9\x8d\x6d\x06\x80\x7e\x00\xff\x14\xce\x08\x1d\x27\x14\xc0\ -\xf0\xc8\x30\x3e\xf0\x9e\x4d\xe8\xca\x66\xfc\x30\xa8\x12\x02\x58\ -\xb7\x7a\x10\xd7\x5e\xb5\x0e\x17\x2e\xcd\xe0\xe2\xf8\x34\x08\x41\ -\x98\x64\x01\xbc\x0f\xc0\x6a\x00\x7b\x72\x63\x9b\xe7\x92\x0d\x24\ -\x12\x51\x49\xc2\xa8\x12\x31\x12\xc7\x3a\x45\x64\x90\x72\xcd\x56\ -\xde\xa1\x4d\x29\x36\x5e\xb9\x06\xff\xdb\x2f\x7d\x16\x1f\xda\x72\ -\x2b\x48\x2a\x15\x65\x64\xcf\x02\xf8\x55\x38\xaa\xe0\x8d\x40\x62\ -\x64\x4f\x44\x96\x04\xa8\x12\x31\x10\xaa\xa6\x51\x54\x79\x08\x9b\ -\xda\x18\x1d\xee\xc3\xaf\xfd\xfc\x27\x71\xff\xbd\x5b\x90\xcd\xb6\ -\x9b\xb8\xdd\x7c\x06\x8e\x91\xfd\xc3\x40\x02\x56\x89\xf0\x92\x00\ -\x55\x22\x86\x22\xa0\x12\x95\x0e\xb9\x74\x94\x52\xf4\xe6\x3a\xf1\ -\xf3\x3f\x75\x0f\x7e\xee\x9f\x7c\x0c\xbd\x3d\x39\x13\x23\xfb\x5d\ -\x70\xa6\x2f\xfc\x0c\x12\xb7\x9b\x44\x18\x49\x80\x2a\x11\x73\x89\ -\x04\x28\x3e\xc4\xb6\x29\xb2\xed\x19\xdc\xff\xd1\xcd\xf8\x5f\x7e\ -\xe1\xd3\x18\x5d\xbd\xca\x04\xac\xae\x81\x33\x31\xf4\x5f\x00\xe8\ -\x4a\xc0\x2a\x11\x20\x31\xa6\x5f\xf6\x12\xcf\x98\xde\xa6\xd0\x00\ -\x15\x21\x42\x10\x21\x04\x57\xac\x1d\xc6\x95\x63\xa3\x38\x7d\x7e\ -\x02\x53\xd3\x79\x90\x70\x2b\x7b\x17\x1c\x15\x30\x07\xc7\xc8\x5e\ -\x4c\x8c\xec\x97\xb7\x24\x8c\x2a\x91\x68\xa1\xe1\x0c\xaa\x5a\xb3\ -\x61\x59\x9e\xca\x27\xe7\x75\xfe\x28\x6e\xd9\x74\x05\xfe\xc5\x2f\ -\xfd\x24\xee\xbc\x75\x93\x49\xad\x5d\x70\x9c\x99\xff\x12\xc0\x95\ -\x40\x62\xb7\xba\x9c\x25\x01\xaa\x44\x62\x08\x85\x08\x59\x04\xc0\ -\xec\x42\x05\x27\x2f\xe6\x51\xae\x58\x20\x62\x72\xe6\xd0\xa6\x14\ -\x1b\xd6\x0d\xe3\x81\x2f\x7f\x06\x1f\xfd\xe0\x9d\x26\x0b\xf1\x65\ -\xe0\x2c\x13\xf3\x5d\x38\xcb\xc6\x24\x60\x75\x99\x4a\x02\x54\x89\ -\x44\x0a\xe5\xff\x93\xe2\x28\xa5\x98\x98\x2d\xe1\xf8\xf9\x59\x2c\ -\x94\xaa\x4c\x26\xe9\x10\x36\xa5\x58\x35\x90\xc3\x57\xbe\x78\x2f\ -\x7e\xea\xbe\x0f\xa2\x2b\x7a\x21\x3e\x02\xe0\x27\xe0\x8c\x08\x7e\ -\x0a\xc9\x42\x7c\x97\xa5\x24\x40\x95\x48\x6c\xa1\x34\xf8\x63\x42\ -\x31\x3b\x5f\xc6\xb1\xb3\x33\x98\x9d\x2f\xbb\x21\xcc\xec\x75\xff\ -\x98\x82\x52\x8a\xee\xce\x2c\x7e\xfa\xbe\xf7\xe3\x17\xbf\xf0\x09\ -\x0c\xf4\xf7\x9a\xcc\x64\xbf\x05\xce\x12\xc7\xbf\x04\xa0\x3d\x01\ -\xab\xcb\x4b\x12\x63\xfa\x65\x2e\x46\xc6\xf4\xe1\x61\xbc\xff\x3d\ -\x9b\xd0\x99\xcd\xc8\x86\x72\x00\x85\x52\x0d\xd3\x73\x0e\x38\x55\ -\x2c\x1b\xf9\x42\x05\xe9\x34\x41\x57\xb6\x0d\x84\x04\x00\xc5\x15\ -\x0a\x20\x9d\x4a\xe1\xaa\x2b\x46\xb1\x76\x74\x18\x27\xcf\x5c\x44\ -\x7e\x6e\x21\xca\xc8\xde\x0b\xe0\x23\x6e\xb5\xaf\xe7\xc6\x36\x57\ -\x12\x23\xfb\xe5\x21\x09\xa3\x4a\xc4\x4c\x28\x00\x10\x45\x18\xcf\ -\x9a\x00\xa0\x5c\xb1\x70\xf2\x42\x1e\xe7\x26\xe7\x61\xd9\x36\x74\ -\x7a\xa0\xb3\x10\x1f\x70\xd7\x6d\xd7\xe2\xd7\xbf\xf2\x93\xb8\x61\ -\xe3\x55\x88\x26\x56\xe8\x03\xf0\xbb\x70\xb6\xe7\x1a\x05\x12\xbb\ -\xd5\xe5\x20\x09\x50\x25\x62\x2e\x14\x92\x3d\x9d\x03\x29\x26\xbc\ -\x66\x51\x9c\x19\x9f\xc3\xa9\x8b\x79\x54\x6b\xb6\x03\x71\x9a\x39\ -\x58\x94\x52\x5c\x7f\xf5\x5a\xfc\xfa\x3f\xbd\x1f\x5b\x36\xdf\x84\ -\x54\x8a\x44\x01\x56\x16\xc0\xaf\xc1\xd9\xf8\x74\x13\x90\x80\xd5\ -\xbb\x5d\x12\xa0\x4a\xc4\x48\x68\xd8\xf4\x4e\x66\x99\x2a\xca\x20\ -\x19\xa5\x14\x17\xa7\x0b\x38\x7e\x6e\x16\x85\x72\xcd\x4f\xaa\x12\ -\xdb\xa6\x58\x3b\x32\x80\x5f\xfd\xb9\x4f\xe1\x13\x1f\x79\x2f\xda\ -\xdb\x23\x17\xe2\x4b\xc3\xd9\x4a\xfe\xfb\x70\xb6\x96\x4f\xc0\xea\ -\x5d\x2c\x09\x50\x25\x62\x2c\xf2\xe4\x84\x00\x9c\xa8\x10\xc3\x1a\ -\xdc\xa7\xe6\x4a\x38\x76\x76\x06\xf9\x42\x45\x5b\xb0\x37\x7d\xa1\ -\xbf\xa7\x0b\x3f\xf7\xb9\x7b\xf0\x85\xcf\xde\x83\x9e\x5c\xb7\xc9\ -\x9a\xec\x5b\x00\x7c\x0f\xc0\xe7\x01\xa4\x13\xb0\x7a\x77\x4a\x02\ -\x54\x89\xc4\x12\x5e\xfb\x53\xcf\x4a\xa7\x0a\x93\x54\xbe\x50\xc5\ -\xb1\xb3\x33\x98\xca\x17\xa5\xc2\x78\x35\xd0\x46\x67\x47\x1b\x3e\ -\xfb\xb1\xbb\xf0\x95\x9f\xfd\x24\x86\x87\x06\x4d\xc0\xea\x3a\x00\ -\xff\x01\xc0\xaf\x03\xe8\x48\xc0\xea\xdd\x27\xc9\xa8\xdf\x65\x2e\ -\x26\xa3\x7e\x43\xc3\xc3\x78\xdf\x1d\x9b\xd0\xd9\x91\x81\xa8\xbc\ -\x11\x00\x0b\xee\xa8\x9f\x0a\xa0\xbc\x03\x02\x8a\xaa\x65\x23\xbf\ -\x50\x01\x21\x04\xdd\x1d\x6d\x20\x84\x5d\x36\x86\x2f\x37\x95\x72\ -\xdc\x6e\xc6\xd6\x8e\xe0\xcc\xf9\x49\x4c\xcf\x44\xba\xdd\x74\x03\ -\xb8\x07\x40\x27\x80\xd7\x72\x63\x9b\x4b\xc9\x88\xe0\xbb\x47\x12\ -\x46\x95\x48\xb4\x88\x96\x72\xf1\x54\x30\x92\xf3\xc9\x79\xee\x55\ -\xa9\xd9\x38\x75\x31\x8f\x53\x97\xe6\x50\xb5\x6c\xbe\x00\xef\x8c\ -\x61\x65\xb7\xdd\x70\x25\x1e\xf8\xf2\xfd\xb8\xed\xe6\xeb\x4c\x5a\ -\xda\x0d\xe0\xff\x06\xf0\x2d\x00\x57\x00\x89\xdd\xea\xdd\x22\x09\ -\x50\x25\x62\x2e\x94\x28\xf1\xca\xff\x65\xfc\xfa\x44\xd3\x3a\x9b\ -\xcf\xb2\x29\xce\x4f\xcc\xe3\x9d\xf3\x33\x28\x57\x6a\xdc\xa4\x07\ -\x51\xcb\xa3\x94\xe2\xaa\xf5\x23\xf8\xb5\x9f\xff\x34\x3e\xfc\xbe\ -\xdb\x4d\xdc\x6e\xda\x00\xfc\x22\x80\xff\x04\xe0\x36\x20\x01\xab\ -\x77\x83\x24\x40\x95\x88\x91\x88\x33\xcc\x25\x42\xa5\x00\x27\x2f\ -\xc8\xdb\x13\x22\x50\x07\x9d\x11\xc1\xf1\x99\x22\x8e\x9e\x9d\xc1\ -\x5c\xb1\x0a\xbf\x08\x55\xdd\x94\x62\x64\x55\x2f\xbe\xfc\x85\x8f\ -\xe1\xfe\x8f\xbf\x1f\x9d\x66\x6e\x37\xf7\x02\xf8\x5b\xf7\x37\x71\ -\xbb\x59\xe1\x92\x00\x55\x22\xc6\x42\x43\x63\x64\xf6\x24\xad\xb8\ -\xe0\xea\x74\x6c\xf8\xcc\x7c\x19\x47\xce\x4c\x63\x6a\xae\x14\x5a\ -\xba\x4d\x29\x7a\xba\x3b\xf1\xf9\xfb\x3e\x80\x2f\xfd\xd4\xc7\xd0\ -\xdf\xdf\x6b\x62\x64\xbf\x0d\x0e\xb3\xfa\x45\x00\x6d\x09\x58\xad\ -\x5c\x49\x80\x2a\x11\x33\x89\xd8\x8a\x46\xcb\x9e\xbc\x48\x4a\xa5\ -\x70\x0f\x67\x16\x8a\x35\x1c\x3b\x3b\x8b\x8b\xd3\x05\x0e\x7c\xc4\ -\xb9\x5a\xd4\xa6\xc8\xb6\xa7\xf1\xf1\x0f\xdd\x86\x5f\xfe\xd2\x7d\ -\x58\xbb\x66\xd8\x04\xac\xae\x80\x63\xb3\xfa\xbf\x01\xe4\x12\xb0\ -\x5a\x99\x92\x00\x55\x22\xf5\x09\x3b\x3b\x9d\x2a\x36\x7e\x60\x26\ -\x52\xa9\x00\x8a\xc5\x17\x42\x80\x72\xb5\x86\x77\xce\xcf\xe2\xcc\ -\xf8\x3c\x2c\x71\x15\x50\x06\xad\x28\xa5\x48\x11\x82\xbb\x6f\xbb\ -\x0e\xbf\xf6\x8b\xf7\x63\xd3\x75\x1b\x4c\x5a\x3b\x00\xe0\xf7\x01\ -\xfc\x09\x80\x91\x04\xac\x56\x9e\x24\xd3\x13\x2e\x73\x31\x9d\x9e\ -\xb0\xe5\xce\x8d\xe8\xca\xb6\xc9\xfb\x3c\x10\x60\xa1\x54\xc5\xf4\ -\x5c\x89\x43\x1f\xe5\x5e\x10\x3a\x1b\x94\x5b\xa8\x4d\x29\xe6\x0a\ -\x15\x54\x6b\x36\xba\x3b\xdb\x90\x49\xa7\xa4\xe5\x65\xd8\x22\x86\ -\x07\x7b\x71\xdd\xd5\xeb\x31\x93\x2f\xe0\xc2\xa5\x49\xd8\x36\x0d\ -\xdb\x9e\x2b\x03\xe0\x3d\x00\xae\x85\xe3\xd0\x3c\x95\x4c\x5f\x58\ -\x39\x92\x30\xaa\x44\xcc\x84\x7a\x33\xd0\xb5\x91\xea\x99\xeb\xca\ -\x25\x61\xbc\x5c\xd4\x07\x29\x2f\xda\xa6\x14\x17\xa6\x16\x70\xf4\ -\xec\x8c\xbb\xb6\x95\x1e\xfc\xa8\x4d\x31\xb6\x7a\x10\xbf\xf4\x33\ -\x1f\xc7\xc7\x3e\xb4\x19\xd9\xac\x91\xdb\xcd\xe7\xe1\xcc\x64\xdf\ -\x02\x24\x23\x82\x2b\x45\x12\xa0\x4a\x24\x52\xd4\x5e\x7e\xe2\x28\ -\x9f\xda\x7d\x46\x2e\xcb\xfd\xe7\x1a\xb3\xa4\x5d\xe2\x3d\xb7\x9b\ -\x7c\x11\x87\x4f\x4f\x63\x76\xa1\xac\x58\x06\x19\x3e\xd3\xa2\xd4\ -\xc6\x40\x5f\x37\x7e\xf6\x27\x3f\x8c\xcf\xdd\xf7\x21\xe4\x72\x5d\ -\x26\x76\xab\x0f\xc0\x01\xab\xcf\x01\x48\x25\x60\xb5\xfc\x25\x01\ -\xaa\x44\x0c\x44\xc5\x95\xf8\xa8\x30\x70\x72\x92\x05\xec\x49\x3d\ -\x22\x08\x9f\xb5\x79\x31\x73\x85\x0a\x0e\x9f\x9e\xc1\xc4\x4c\x51\ -\x72\x80\x66\x57\xb9\xa2\x94\xa2\xab\xb3\x1d\x9f\xf9\xe8\x5d\xf8\ -\x85\x9f\xfe\x04\x86\x87\x06\x4c\xc0\xea\x7a\x38\xab\x2f\xfc\x73\ -\x00\xd9\x04\xac\x96\xb7\x24\x40\x95\x48\xb4\x78\xac\x87\x3a\x06\ -\x20\x16\x94\x02\x58\x21\x8a\x6c\x34\x16\x40\x89\xac\x0c\x00\x8a\ -\x95\x1a\x8e\x9e\x9d\xc1\xb9\xf1\x79\x66\xab\x2d\x95\x81\x9e\xa2\ -\x3d\x93\xc2\x87\xef\xbe\x11\xbf\xfc\xa5\x4f\xe3\xca\x2b\xd6\x9a\ -\x80\xd5\x28\x9c\x75\xad\xfe\x35\x80\xfe\x04\xac\x96\xaf\x24\x40\ -\x95\x48\xa8\xf8\xf0\xe3\x81\x8c\xf6\xdd\x0f\x54\x40\x09\x9c\x62\ -\x02\x14\x37\x22\x08\x67\x97\x9b\x13\x17\xf2\x38\x71\x61\x16\xd5\ -\x9a\x05\x7d\x0b\x9c\x11\xc4\xdb\x6f\xbc\x12\xbf\xfa\xf3\x9f\xc6\ -\xad\x37\x5d\x87\x50\xef\x40\x47\x72\x00\xfe\x15\x80\x7f\x07\x60\ -\x2c\x01\xab\xe5\x29\xc9\xa8\xdf\x65\x2e\x51\xa3\x7e\x00\xb0\x6a\ -\x68\x08\xef\xbb\x63\x23\xba\x3a\xda\xa4\x38\xe2\x8e\xfa\x4d\xcd\ -\x15\x75\x0b\x79\x2a\x03\xa5\xf5\xad\x54\x5a\x25\xa3\xef\x79\x23\ -\x82\xa5\xaa\x85\x5c\x67\x3b\xda\xd2\xa9\x90\xf4\xc0\x60\x7f\x0e\ -\xd7\x5e\x3d\x86\x85\x62\x05\xe7\x2e\x4e\xc0\xb2\xec\x30\xa7\xe6\ -\x34\x80\x5b\x01\xdc\x0c\x60\x5f\x6e\x6c\xf3\xa5\x64\x44\x70\x79\ -\x49\xc2\xa8\x12\x69\x5c\x04\xb5\x4e\xc5\x9c\x58\xf6\x14\xc6\xa0\ -\xd8\x70\xd1\xa1\x99\x02\xb8\x34\x5d\xc4\xa1\x53\xd3\xc8\x17\xaa\ -\x8a\xf4\xec\x39\xc5\xe8\x50\x1f\x7e\xfe\xf3\x1f\xc5\xa7\x3e\xba\ -\xc5\x64\xb7\x9b\x14\x80\x4f\xc2\x59\x88\xef\xa3\x48\xdc\x6e\x96\ -\x95\x24\x40\x95\x88\x91\xc8\x8b\xe5\xa9\xfd\xfe\xc4\x04\x61\xe0\ -\x24\x83\x8b\xf7\x27\xb8\xe4\x30\xf1\x00\x30\xb3\x50\xc2\xa1\xd3\ -\x53\x98\xcc\x97\xc2\x0d\xf8\x94\xa2\x37\xd7\x81\x9f\xfa\xe4\xfb\ -\xf0\xd3\x9f\xfd\x09\x53\xb7\x9b\x3b\xe1\xb8\xdd\xfc\x1c\x80\x4c\ -\x02\x56\xcb\x43\x12\xa0\x4a\xc4\x48\xb4\xe3\x7e\x0c\xdd\xf1\x40\ -\x26\x0e\x38\xb1\x71\x92\xcf\xa0\x14\xef\x08\x01\xb0\x50\xac\xe2\ -\xf0\xe9\x69\x9c\x9f\x5c\x50\x82\x8f\xdf\x02\x9b\xa2\x23\x9b\xc1\ -\xbd\x1f\xb8\x0d\x5f\xfe\xc2\x27\x4c\xdd\x6e\xae\x04\xf0\x17\x70\ -\x76\x6a\xee\x4e\xc0\x6a\xe9\x25\x01\xaa\x44\xcc\x85\x52\x35\x8d\ -\xa2\x1e\x24\xc9\x76\xa7\x70\xc6\x13\x0f\xa0\xfc\x74\x6e\x58\xb9\ -\x6a\xe1\xd8\xb9\x19\x9c\xbc\x38\x87\x9a\xbf\xb6\x55\x30\xd3\x9d\ -\x75\xf1\x49\xa7\x09\xee\xbe\xfd\x3a\xfc\xf2\x97\xee\xc3\xa6\x6b\ -\x8d\xdc\x6e\x06\x01\xfc\x21\x80\xaf\x02\x18\x4e\xc0\x6a\x69\x25\ -\x31\xa6\x5f\xe6\x62\x62\x4c\x1f\x1c\x1a\xc2\x96\xdb\x37\xa2\x4b\ -\xb5\xc2\x27\x01\xe6\x8b\x55\x4c\xb9\x6a\x58\x94\xb0\x06\x72\x40\ -\xc1\xd0\xa0\x02\x36\x2a\x85\xfb\x18\x69\x03\xf9\x85\x32\x2a\x55\ -\x1b\x3d\x5d\x6d\xc8\xa4\x89\xba\x50\x57\x86\x57\xf5\xe1\xaa\x2b\ -\xd7\x21\x3f\x57\xc0\x85\x4b\x53\xb0\xed\x50\x23\x7b\x1b\x80\xcd\ -\x00\xae\x86\xb3\x6a\xe8\x74\x62\x64\x5f\x1a\x49\x18\x55\x22\x86\ -\xc2\xf3\x1d\x89\x54\x85\xe5\x14\x6c\x4f\x61\xec\x49\xc7\xa0\xbc\ -\x70\x6e\xbe\xa7\x1b\x66\x53\x8a\xf3\x53\xf3\x38\x74\x6a\x1a\xf3\ -\xc5\xaa\x5c\x3f\xdb\x4e\x4a\x71\xc5\x9a\x55\xf8\x85\x9f\xbe\x17\ -\x3f\xf1\xc1\xf7\x20\x9b\x6d\x8f\x52\x05\x33\x00\xbe\x08\x67\x26\ -\xfb\xdd\x40\xe2\x76\xb3\x14\x92\x00\x55\x22\x46\xe2\xbc\xec\x44\ -\x37\x3f\xdd\x49\xc3\xae\xa6\x10\x02\x4e\x66\xea\x5d\x34\x40\x01\ -\xbc\x9a\x37\x99\x2f\xe1\xed\x93\xd3\x98\x76\xb7\x94\x07\x34\x8c\ -\xcd\xa6\x18\xea\xcf\xe1\x0b\x9f\xf9\x10\x3e\xfb\xc9\x0f\x9a\xee\ -\x76\xf3\x21\x38\x60\x75\x3f\x12\xb7\x9b\x45\x97\x04\xa8\x12\x69\ -\x4c\xc4\x91\x3a\x0e\x98\xc2\xc1\x29\x8a\x3d\x01\xe1\x00\xc5\x3a\ -\x34\x7b\x51\x73\x85\x0a\x0e\x9d\x9a\xc2\xc5\xe9\x02\xc4\xd5\x62\ -\x78\xbb\x15\x45\x77\x57\x3b\x3e\xf5\x91\xf7\xe0\x67\xff\xc9\xc7\ -\x4c\xdd\x6e\x6e\x04\xf0\x57\x00\x7e\x15\x89\xdb\xcd\xa2\x4a\x02\ -\x54\x89\x98\x89\x37\x2d\x9d\x33\xa6\xf3\x8a\x9f\x76\xba\x02\xa2\ -\xc0\xa9\x4e\x80\xa2\x72\x3d\x84\x00\xc5\x72\x0d\x87\x4f\x4f\xe3\ -\xf4\xa5\xb9\x60\x6d\x2b\x45\xd9\x94\x52\x64\xdb\xd2\xf8\xc0\xe6\ -\x1b\xf0\xe5\x2f\x7e\xca\xd4\xed\x66\x2d\x80\x6f\x00\xf8\x2d\x00\ -\x7d\x09\x58\x2d\x8e\x24\x40\x95\x08\x10\x6e\x62\xe2\x9c\x80\xc5\ -\x99\x51\xf2\xd6\xa3\x6e\x2a\x5a\x3f\x38\x51\x05\xda\x45\x01\x94\ -\x53\x27\xf5\x81\xa6\x6a\xd9\x78\xe7\xfc\x2c\x8e\x9f\x9d\x41\xa5\ -\x6a\xfb\xae\x34\x3c\xa4\x3a\xff\xa7\x53\x04\xb7\xdd\xb0\x01\x5f\ -\xf9\xd9\x4f\xe1\x96\x1b\xaf\x75\xb6\xf1\x0a\xbf\x22\xbd\x00\x7e\ -\x13\x0e\x60\xad\x4d\xc0\xaa\xf5\x92\x59\xea\x06\x78\xe2\xde\xec\ -\x34\x9c\xd5\x18\xc7\x00\x64\x15\xc9\x0c\xc6\x95\xa4\xf4\xa4\x09\ -\x65\x34\x2a\xf5\x94\xd1\x68\xbd\xa6\xf9\x29\x1c\x96\x90\xd5\xa6\ -\xf0\x37\x9f\xa1\xda\x42\xf5\xd3\x10\xf8\xb9\x54\xa1\x29\xc4\x09\ -\xa0\xe0\xd9\x90\xbe\x6e\x2a\x97\x47\x1d\x23\xfb\x99\xf1\x79\x94\ -\xab\x36\xae\x5e\xdb\x87\xae\x6c\x46\x55\x89\x2f\x57\x5f\xb1\x1a\ -\x5f\xfe\xc2\x27\xf0\xd0\x53\xbb\xf0\xd2\x9e\x03\xa8\x56\x6b\x61\ -\x23\x82\x59\x00\xbf\x02\x60\x0d\x80\xff\x67\x74\xcb\x03\x07\x00\ -\xe0\xc2\xee\xef\x18\x5e\xf6\x44\xe2\xc8\xb2\x00\x2a\x17\xa4\x06\ -\x01\xfc\xef\x00\x3e\x03\x60\x03\x5a\xcb\xf6\x9a\x01\x3e\xad\x96\ -\xc5\x6c\x63\x1a\xce\x14\x85\x88\x96\x10\x75\xb3\x54\x3a\x9a\x17\ -\x15\x13\x9c\x9c\xa0\x06\x00\x4a\xc8\x40\x01\x5c\x9a\x29\xa0\x5c\ -\xad\xe1\x9a\x75\xfd\xe8\xeb\x6e\xe7\x22\x79\xb2\x47\x31\x3a\xdc\ -\x87\x9f\xf9\xec\x47\xd0\xd7\x9b\xc3\xb6\x9d\x7b\x50\x28\x94\xc2\ -\xc0\x2a\x05\xe7\x79\x1d\x81\xe3\xd8\xbc\x63\x74\xcb\x03\x34\x01\ -\xab\xe6\xcb\x92\x03\x95\x0b\x52\x59\x38\x8b\xef\xff\x2b\x38\x73\ -\x57\x12\x59\x69\x12\x32\xb1\xd3\x8d\xd6\x9c\x78\x41\xf2\x24\xa9\ -\x46\x00\x8a\x0f\xa7\x98\x99\x2b\xe3\xed\x93\x93\xb8\x66\x6d\x3f\ -\x86\xfb\x3a\xb5\xe5\x53\x4a\xd1\xdf\xdb\x85\xfb\x3f\xbe\x05\xfd\ -\x7d\x3d\x78\xec\xe9\x17\x4c\x76\x69\xbe\x0b\x8e\xdb\xcd\xef\x00\ -\xf8\x9f\xa3\x5b\x1e\xa8\x25\x60\xd5\x5c\x59\xf2\x09\x9f\xee\x84\ -\xc3\x3b\x01\x7c\x13\x40\xcf\x52\xb7\x27\x11\x59\x06\x87\x86\xb0\ -\xe5\x8e\xeb\x9c\x35\xd3\x21\x03\xd2\x7c\xb1\x8a\xc9\x7c\xb0\xdd\ -\x55\x84\x06\xc8\x04\x99\x83\x93\x53\x6f\x7c\x80\xf2\xcf\x09\x50\ -\xa9\xda\x98\x99\x2f\x23\x95\x22\xe8\xee\x6a\xd3\x82\x0f\x05\xd0\ -\x9e\x49\x63\xfd\xba\x11\x0c\xad\x1a\xc0\xb9\x0b\x93\xc8\xcf\x2d\ -\x44\x81\xd5\x20\x80\x8f\x00\xa8\x00\x78\x23\x37\xb6\xb9\x9a\x4c\ -\x0c\x6d\x9e\x2c\x17\xa0\xfa\x30\x9c\xbd\xd7\x0c\x96\x0f\x4a\x64\ -\xb1\x65\xd5\xf0\x30\xee\xbe\xed\x3a\x74\x75\xb4\x49\x20\x45\x08\ -\x30\x5f\x70\x80\x2a\x4c\x9d\x0b\xa2\x14\xd3\xcb\xd1\x42\x80\x62\ -\x22\x09\x80\x9a\x4d\x31\x33\x5f\x86\x4d\x29\x7a\xbb\xda\x91\x4e\ -\x11\xb9\x0c\x37\x63\x3a\x05\xac\x59\x3d\x88\x75\x6b\x47\x30\x31\ -\x39\x8b\xc9\xe9\xd9\xa8\x4b\xd5\x05\xe0\x83\x70\x3e\xb8\xaf\xe5\ -\xc6\x36\x17\x12\xb0\x6a\x8e\x2c\x17\xa0\xba\x1b\xc0\x4f\x22\x01\ -\xaa\xe5\x27\x24\x85\xd5\x6b\xc7\x70\xd7\x2d\x57\x69\xd7\xa3\x9a\ -\x2f\x56\x31\x31\x5b\x32\x66\x4d\xc2\xa1\x52\xb4\xe0\xa4\xc8\x1c\ -\x05\x50\x7c\x98\xb3\xb6\xd5\xec\x42\x19\xe5\x8a\x85\x9e\xae\x2c\ -\xda\x32\x29\x01\xfc\x82\xd4\x84\x00\x43\x83\xbd\xd8\x70\xc5\x5a\ -\xcc\x2d\x14\x71\x31\xda\xed\xa6\x1d\x8e\x2a\xb8\x01\x0e\x58\xcd\ -\x24\x6e\x37\x8d\xcb\x72\x01\xaa\x3b\x90\x00\xd5\xf2\x13\x4a\x91\ -\xcd\xf5\x61\x74\xfd\x95\xb8\x63\xd3\x1a\x2d\x50\xcd\x15\x2b\x98\ -\xcc\x17\xe5\x31\xc1\x18\xc0\xe4\x54\xa7\x30\xc6\x87\x14\x10\x0a\ -\x50\x6e\x00\x15\x52\xb3\x76\xff\xf9\x62\x15\x0b\xa5\x2a\xba\x3b\ -\xda\x90\x6d\x4b\x4b\x20\xc5\x96\xd7\xd7\xd3\x85\xab\x37\xac\x45\ -\xcd\xb6\x71\xfe\xc2\x04\x6a\x35\x2b\x6a\x21\xbe\x9b\xe1\xec\xd4\ -\x7c\x00\xc0\xb9\x04\xac\x1a\x93\x15\x01\x54\xa2\x1b\x45\xf2\xd7\ -\xcc\x3f\xaa\x08\x23\x20\xe9\x34\xda\xba\x7a\xd1\x3b\xba\x01\x7d\ -\xfd\x7d\xb8\xfd\xda\x61\x74\x77\x64\x14\x13\x14\x88\x92\x51\x19\ -\xcf\x8d\x88\x09\x4e\x7c\x7c\x4c\x80\x12\x12\x53\x00\xc5\x52\x0d\ -\xb3\x0b\x65\x74\xb6\x67\xd0\x99\xcd\x40\x91\xcc\xaf\xaa\xbb\x33\ -\x8b\xab\xae\x58\x8b\xf6\x6c\x3b\xce\x9e\x1f\x47\xb9\x5c\x09\x03\ -\x2b\x02\xe0\x2a\x00\xef\x07\x70\x02\xc0\xb1\x04\xac\xea\x97\x25\ -\x1f\xf5\x8b\x92\x6c\xb6\x1d\x37\xdc\xb0\x09\xab\x06\x7b\x23\x52\ -\x12\xf7\x7f\xaa\x1c\x7d\xe2\x9e\x27\xca\x65\x79\x17\x4b\x34\x72\ -\xa8\x82\x09\x21\xc8\x64\x3b\xd1\xd6\xd1\x0d\x92\x4a\xa3\xa7\xab\ -\x1d\xed\x6d\x69\x7f\x8b\x2b\x3e\x31\xe5\x3e\x24\x91\x2d\xd2\x0c\ -\x0d\x46\x8f\x0a\xfa\x05\xe8\xeb\x8a\x01\x50\xec\x41\x7e\xa1\x82\ -\xb7\x4e\x4e\xe2\xea\xb5\xfd\x18\x1d\xec\x96\x36\x31\x0d\x7c\x18\ -\x29\x7a\xba\xb3\xb8\xf7\x43\x77\xa2\xaf\x37\x87\x47\x9e\xda\x85\ -\x4b\xe3\x53\x51\x46\xf6\x9b\x01\xfc\x35\x9c\x9d\x9a\xff\x6e\x74\ -\xcb\x03\x95\x64\x44\x30\xbe\x2c\x6b\xa0\x72\xb6\x41\xea\xc0\x47\ -\xdf\x7f\x2b\x36\x5d\xb3\x16\x80\x06\x5b\x88\xf3\x5f\x14\xee\xa8\ -\x9e\x27\xa2\x3b\x23\xe6\x38\x46\xd4\x85\x29\xcb\x35\x48\x62\x5e\ -\x5f\x4c\x51\x82\x92\x2e\x9d\x00\x28\xa9\x14\x31\x9f\x7e\xc0\x86\ -\xd7\x09\x4c\x72\x1a\x3d\x7b\xe2\xc3\xf5\x00\x15\xf4\xcd\x3b\x76\ -\x0e\x1c\xb7\x1b\x0b\x87\x4e\x4d\xa3\x54\xb1\x70\xc5\xea\x1e\xa4\ -\x35\xfd\xa5\x14\xe8\x68\xcf\x60\xcb\x9d\xd7\xa3\x27\xd7\x85\x87\ -\x9e\x78\x1e\xef\x9c\x3c\x17\x05\x56\x63\x70\x46\xb5\xd7\x01\xf8\ -\xd6\xe8\x96\x07\xf2\x09\x58\xc5\x93\x65\x0d\x54\x80\xf3\x10\xa5\ -\x52\x04\x29\x12\x4c\x36\x54\x83\x15\x45\xc0\xaa\xc2\xcb\x93\xc2\ -\xfc\x23\x86\x6a\x11\x44\x96\x25\xe7\xd7\x65\xe0\x29\xdc\x52\x82\ -\x95\x79\x05\x71\x6b\xa0\x91\x7e\x72\x4d\x03\x27\x26\x30\x16\x40\ -\xb9\x07\xba\x8d\x25\x6a\x96\x8d\x77\xce\xcd\xa2\x5c\xa9\xe1\xaa\ -\x35\x7d\xc8\xb6\xa7\x35\x9b\xa8\x02\xe9\x74\x0a\xb7\x5c\xbf\x01\ -\xb9\xee\x4e\x3c\xfc\xe4\x4e\xec\x7f\xfb\x78\xd4\x96\xf2\x7d\x00\ -\x7e\x1b\x0e\x58\xfd\xc1\xe8\x96\x07\x2e\x00\xc9\x4c\x76\x53\x59\ -\xf6\x36\xaa\xae\xce\x0e\xdc\x7e\xeb\x26\x0c\x0d\xe4\xa4\xbc\x44\ -\x1b\xd0\x0c\x76\xc5\x84\xc4\x00\x2d\xa1\x19\x26\xa9\x4c\x93\xd5\ -\x2d\xcd\x00\x35\x2d\x04\xb9\xc6\xf4\x89\xd9\x52\x78\x7a\xe3\xc9\ -\xa0\xd4\xa8\x8c\x7a\x00\xca\xf9\x61\x72\x2a\xda\x64\x53\x8a\xfc\ -\x42\x05\x85\x72\xcd\x57\x79\xd5\x4d\xa0\x20\x00\x06\xfa\xba\x71\ -\xe5\x15\x6b\x51\xae\x54\x71\x21\x7a\xb7\x9b\x0c\x9c\x67\x7d\x13\ -\x80\xbd\x00\x26\x12\xbb\x95\x99\xac\x08\xa0\xba\xe3\xd6\x4d\x18\ -\xea\x77\xe7\x82\x0a\x29\xc2\x54\x41\x6d\x3c\x9b\x74\xc9\x01\x4b\ -\x4e\x14\x99\x7c\x19\xd9\xd6\xbc\xe9\x09\x93\xb3\x66\xf3\xa8\x94\ -\xd1\x61\xcc\x89\x89\x50\x41\x58\xb3\x00\x4a\x64\x83\x0b\xa5\x2a\ -\xf2\x0b\x15\x74\x77\xb4\xa1\xa3\x3d\xc3\x14\x25\x1b\xe4\x72\x5d\ -\x1d\xb8\x6a\xc3\x3a\xa4\x52\x69\x9c\xbb\x30\x8e\x4a\xb8\x8f\x60\ -\x0a\x0e\x50\xdd\x05\xe0\x10\x80\xd3\x09\x58\x45\xcb\xca\x58\x3d\ -\x81\x6a\x8e\x11\x8c\x54\xc9\xe9\xbd\x31\xad\x88\xa2\xa9\xfc\xe0\ -\xca\x65\xba\x21\xfc\x8f\x51\xb3\xa9\x5b\x47\x74\x26\x76\x1c\x8e\ -\x1f\x85\x0b\x49\xaa\xfe\x6b\xb5\x28\xea\x0c\xeb\xa3\xd4\x3c\x66\ -\x59\x05\x4a\xa9\xfe\x1e\x7a\xc9\xc0\x82\x04\x0d\xbd\xae\x41\x1d\ -\xde\xbd\x0a\x5c\xa9\xf5\x9b\x4b\x50\x39\x3f\x80\x99\xf9\x32\x0e\ -\x1c\x9f\xc0\xc5\xe9\x42\x50\xab\xa2\xb1\x14\x40\x5f\x4f\x27\x3e\ -\xf9\xd1\xbb\xf1\xb9\xfb\xee\xc1\xe0\x80\xd1\x6e\x37\xef\x85\xe3\ -\x76\xf3\xd3\x00\xd2\xc9\x0a\x0c\xe1\xb2\x32\x18\xd5\x2d\x9b\xb0\ -\x6a\xa0\x27\x44\xd5\x0b\x63\x56\xce\x81\x91\xad\xa9\x85\xec\x4a\ -\xd1\xa4\x7a\x72\x35\x46\xa6\xe2\x9b\x9d\xa2\x8b\x24\x04\xf3\xae\ -\xea\xa7\x06\x55\x6a\x56\xa4\x76\x80\x52\xc1\xb6\x22\xd8\x93\x73\ -\x18\xce\xa0\x9c\xf0\x68\x35\xb3\x62\x59\x98\xce\x97\x90\x4a\x11\ -\xf4\x74\xb6\x73\x4c\x49\xcc\xd3\x96\x49\x63\xdd\x9a\x61\xac\x5a\ -\x35\x80\x8b\x97\xa6\x4c\xdc\x6e\x56\x01\xf8\x09\x00\x45\x00\xfb\ -\x13\xb7\x1b\xbd\x2c\x7b\x63\x3a\x2b\xd2\xac\x02\xea\xd8\x14\x2c\ -\x66\x29\xc7\x30\x30\xab\xd7\x76\xc5\x15\xa3\xb0\x9c\x13\x21\xbc\ -\x6e\xf0\x32\xce\x4c\x62\x84\xb6\x56\x08\x21\xb0\x6c\xd7\x90\x6e\ -\x0a\x4a\x8a\x04\x71\xc1\x89\x0b\x52\xa8\x77\x80\x19\x40\xe9\xea\ -\xf1\x5a\x40\xe0\xec\x76\x73\xe4\xf4\x34\x4a\x65\xc7\xc8\xde\xd6\ -\x96\x92\xcb\x76\xcf\xdb\x33\x69\xdc\x71\xf3\xb5\xe8\xc9\x75\xe1\ -\x91\x27\x77\xe2\xd0\xd1\x53\x51\x57\x61\x18\xc0\x1f\xc3\x19\x19\ -\xfc\xb7\xa3\x5b\x1e\x98\x4a\x0c\xec\xb2\xac\x28\xa0\xf2\x24\x18\ -\xdf\x03\xce\x4f\x2e\xe0\xec\xc4\x3c\x08\x91\x79\x87\x9e\x21\xc9\ -\xa8\x42\x54\xe9\x88\x1c\xa3\x08\xe2\xcb\x8c\x62\x5a\x44\x0f\x33\ -\xe1\xac\x50\x5b\x9c\x61\x64\x7c\x18\x73\x72\x44\xd3\xaa\x72\xd5\ -\xf2\x55\x38\xad\xd0\xb0\x53\x0d\xb3\xa1\x11\xc5\xb4\x0c\xa0\xdc\ -\x52\x99\x04\x96\x4d\x71\xf2\x42\x1e\xa5\x8a\x85\x6b\xc7\xfa\xd1\ -\xd5\x91\x11\x17\x38\xf5\x0f\xd3\x29\x82\x8d\x57\xad\xc3\xcf\xfc\ -\xd4\xbd\x78\x7c\xeb\x8b\x78\xfd\xcd\x43\x51\x33\xd9\x73\x00\xfe\ -\x4f\x38\xeb\x82\xfd\xee\xe8\x96\x07\x4e\x02\xc9\x88\x20\x2b\x2b\ -\x0c\xa8\x02\x4e\xe5\x1d\x15\x4a\x35\x4c\xcd\x16\x7d\x54\x62\x1f\ -\x05\xd5\x83\x41\x54\x0c\x2b\xcc\x40\x4f\xf4\x8a\x97\x16\x08\xa3\ -\x8c\xf9\x26\x03\x02\x50\x03\x60\x1c\x69\x05\xc3\xd2\x81\x91\x72\ -\x42\xad\x36\x4f\x34\x60\x44\xc5\xab\x60\xb1\x15\x00\xc5\x8a\x4d\ -\x81\xf3\x93\xf3\x28\x57\x6b\xd8\xb8\x7e\x10\x7d\xdd\xed\xca\x2d\ -\xbc\x9c\xeb\x41\xb1\x7e\xcd\x20\x3e\x7f\xff\x3d\xe8\xed\xe9\xc6\ -\xae\x97\xf7\xa1\x54\xaa\x44\x6d\xcd\xf5\x0b\x00\x46\x01\xfc\x06\ -\x80\xd7\x47\xb7\x3c\x90\x80\x95\x2b\x2b\xc3\x98\x2e\x59\x30\x19\ -\x55\x8f\x38\xff\x11\x30\xf8\x40\xbc\x17\x27\x98\xd0\x47\x08\xff\ -\x32\x39\xe7\x94\xc3\x01\xe2\x97\xc7\x94\x23\xb4\x43\x55\x16\x5b\ -\x07\xab\x97\x4a\x84\xc6\xcb\xcb\x57\x21\xa5\x01\x5b\x16\xa1\xee\ -\x1c\x31\xa1\xbe\xb0\x3f\x22\xf7\xa3\x59\x7f\xaa\xf6\xfb\x97\x5a\ -\x30\x7e\xab\x86\x06\x24\x97\x1d\xcd\x40\x00\x6f\x7c\xf7\xca\x8e\ -\xbb\x03\x33\xd5\x1a\xca\x65\xdb\xb8\xdb\x3e\xcd\x24\x4f\x6f\xa3\ -\x54\x0a\x60\x72\xb6\x84\x37\x8f\x8d\x63\x7c\xa6\xa8\x78\x22\xf9\ -\x8e\x0c\x0d\xe4\xf0\xe9\x7b\xdf\x87\x4f\xdf\xfb\x01\xf4\xf6\x44\ -\xee\x76\x43\x00\xdc\x0b\x67\xb7\x9b\x4f\x00\x20\x89\x91\xdd\x91\ -\x95\x6d\x4c\x07\x30\x35\x57\xc6\xd4\x9c\x33\x87\x47\xa5\xe9\xb0\ -\xac\x44\xc9\x80\x04\xe3\x93\xce\xd8\x2d\xa9\x86\x21\x46\x52\x35\ -\xd3\x52\x1b\xb1\xe2\xcc\xa1\x8a\x6b\x99\x6a\x36\xa3\xa2\x31\x63\ -\x69\xcc\x42\x4c\x99\x13\x60\xce\x9e\xf4\xe5\xf2\x01\x3a\x80\xe2\ -\xd2\x30\x19\xcb\x55\x1b\x53\x73\x25\x64\xd2\x69\xe4\xfc\xb5\xad\ -\xd4\x2a\x68\xb6\x3d\x83\xb1\x75\x23\xe8\xef\xeb\xc5\xf9\x8b\x13\ -\x98\x5f\x28\x46\x19\xd9\x47\xe1\xac\x6d\x35\x05\xe0\xed\xdc\xd8\ -\x66\xeb\x72\x37\xb2\xaf\x1c\xa0\x72\xe7\x51\x89\xf7\x77\x2a\x5f\ -\xc2\x54\x3e\x58\x2e\x56\x65\x4c\x37\xb2\x5d\xd5\x09\x58\x4e\xde\ -\x78\xa0\xe5\x94\x53\x07\x70\x69\x12\x98\x01\x52\xbd\xb0\x15\x6f\ -\xbe\x43\x1c\x70\xd2\xa9\x7c\x71\xc1\xc9\x89\x33\x30\xe4\xd3\x06\ -\x00\x4a\x2c\x94\x00\x55\x8b\x62\x7a\xce\xd9\x21\xba\xb7\xbb\x8d\ -\x5b\xdb\x4a\x2c\x37\x93\x4e\x61\x74\x64\x15\x56\x8f\x0c\x61\x62\ -\x72\x1a\x33\xb3\xf3\x51\x97\xb2\x0f\xc0\x3d\x6e\xad\xfb\x72\x63\ -\x9b\x2b\x97\x33\x58\xad\x1c\xa0\x1a\xe0\x17\xff\xf4\x00\x60\x2a\ -\x5f\xc2\xa4\xc7\xa8\x88\x08\x49\xfc\x49\x33\x01\x4b\x15\x14\xf1\ -\x95\x34\x03\x2d\x45\xc1\xc6\x10\xd3\x24\x0a\x45\x22\x63\xf5\x7f\ -\x84\x57\x08\x95\x05\xca\x00\xa5\x86\xa6\xa8\xa9\x48\x91\xec\x89\ -\x09\x68\x16\x40\x09\x58\x05\xcb\xb6\x31\x33\x57\x46\xa5\x66\xa3\ -\x37\x97\x45\x26\xad\x1f\x11\x4c\xa7\x08\x86\x06\xfb\x30\xb6\x6e\ -\x35\xf2\x73\x0b\x18\x9f\x98\x01\xa5\x08\x73\xbb\xe9\x04\xf0\x01\ -\x38\xab\x87\xee\xc9\x8d\x6d\x5e\xb8\x5c\x27\x87\xae\x58\xa0\x02\ -\x9c\x1b\x3c\x95\x2f\x61\x6a\xae\xe4\x67\x14\xc1\xa2\x59\x80\xc5\ -\x1d\x35\xc8\xb2\xe4\x3a\x14\x71\x06\x95\x34\x05\x97\x04\x1b\x9d\ -\x0c\x36\x5a\x8b\x9a\xd1\xbc\xa9\xd0\xb4\x7e\xfd\x44\xea\x6f\xdd\ -\xaa\x9d\x10\x68\x02\x50\x41\x78\x08\x83\x12\x4e\x45\xdb\x57\x7e\ -\xa1\x82\x85\x62\x0d\xbd\x5d\xed\xc8\xb6\xa7\x95\x99\x28\x9c\xe7\ -\xa2\xbf\x37\x87\x2b\xd6\xaf\x45\xb5\x5a\xc5\x85\x4b\x93\xb0\xac\ -\xd0\x11\xc1\x0c\x80\xf7\x00\xb8\x0e\xc0\xeb\x00\x26\x2f\x47\xb0\ -\x5a\x39\x40\xa5\x71\xa1\x99\x9a\xf3\x54\x3f\x3e\x5c\xcb\xae\x98\ -\x00\x13\xc0\xe2\xc3\xe3\xb3\x2c\xb1\x2d\x61\x12\x95\x8c\xd4\x81\ -\x56\x66\xaa\xa4\x1a\x88\x78\x31\x54\x01\x4d\xd1\x53\xc9\x52\xf4\ -\xed\x30\x55\xed\xf8\x38\x13\x70\x62\xd2\x69\x0a\xd7\x01\x94\x58\ -\xce\x42\xa9\x8a\xd9\xf9\x32\xba\x3a\xda\x9c\xb5\xad\xa8\xb2\x38\ -\x10\x02\xe4\xba\xb2\xd8\x30\xb6\x16\x99\x74\x1a\xe7\x2f\x4e\xa0\ -\x52\xa9\x46\xb9\xdd\xdc\x00\x07\xb0\x0e\xe2\x32\x74\xbb\x59\x79\ -\x40\xe5\x89\x52\xf5\x93\xcb\x6f\x25\x60\x71\x47\x31\x30\xa4\x59\ -\xc0\xc5\xd7\x15\x4a\xcf\x22\xdb\x64\x9e\xc0\x4b\xc4\xfc\x51\x35\ -\xfb\xa2\x11\x6d\x52\x72\x23\xaa\x06\x21\xe2\x0f\xb7\x46\x19\xc7\ -\x83\xb3\x56\x03\x94\x58\x07\x05\x45\xb1\xe2\xcc\x64\xcf\xb6\x65\ -\x90\xeb\x6a\xd7\x5c\x01\x27\x53\x47\xb6\x0d\xeb\xd6\xad\x46\x4f\ -\x77\x37\xce\x5f\x98\x40\xa1\x58\x8a\x7a\x36\xd6\xc3\x59\x93\xfd\ -\x0c\x80\x23\xb9\xb1\xcd\xf4\x72\x01\xab\x15\x03\x54\x83\x9e\x31\ -\x9d\x8d\x24\xc0\x64\xbe\x84\xa9\xb9\xa2\xff\xa2\x46\x81\x15\xd0\ -\x38\x60\xf1\x71\x0a\x23\x7e\x4c\xe2\x63\x0a\x5c\x72\xdd\x11\xe9\ -\xf4\xb3\x4b\xe3\xd9\xa1\x88\x08\x48\x42\x21\x52\x61\xe1\x43\x7b\ -\x91\x03\xf4\x3a\x9b\x16\x55\xb7\x5c\x9c\xc7\xde\x4c\x80\x72\xf2\ -\x85\xcf\xd9\x62\xf7\x21\x24\x00\x2a\x96\x8d\xa9\x7c\x11\x29\x42\ -\xd0\xdb\x9d\x75\x97\x28\x52\xb7\xb1\x3d\x93\xc6\x9a\xd1\x21\x0c\ -\x0d\xf5\xe3\xd2\xf8\x14\x66\xa3\xdd\x6e\x86\xe0\xb8\xdd\x2c\x00\ -\x78\x33\x37\xb6\xb9\x76\x39\x80\xd5\x8a\x01\x2a\x91\x51\x79\x09\ -\xa7\xe6\x8a\xce\x56\x4d\x84\x67\x15\x8b\x0f\x58\x4c\xfa\xd0\x4a\ -\x42\x83\x95\xed\x34\x15\x6e\x9e\x58\x0c\x8b\x7c\xd0\x6a\x8d\xfa\ -\xc7\x02\x92\x3f\x69\x4a\x2f\x46\x40\x44\xd4\x91\xd4\x07\x44\x55\ -\x59\x54\x5b\xa4\x9f\xa2\xde\x51\x3c\xc4\x07\x28\x27\x8f\x1a\x79\ -\x2d\x8b\x62\x6a\xae\x84\x9a\x45\xd1\x9b\x6b\x47\x26\x1d\x3e\x22\ -\x38\xbc\x6a\x00\x6b\xd6\x8c\x60\x66\x26\x8f\xa9\xa9\x59\x44\x48\ -\x0e\xce\x88\x60\x07\x9c\x0d\x24\x4a\xef\x76\xb0\x5a\xb1\x40\x05\ -\x37\x31\x67\x4c\xf7\x81\xa6\xd9\x80\x15\x9c\xc5\x05\x2d\xa9\x9c\ -\xba\x18\x8e\xba\xdd\xea\xfa\x65\x14\x88\xb6\x7d\xc5\x15\x51\xbd\ -\x13\x98\x57\x84\x11\x3e\x96\xaf\x8d\x10\x2c\xaa\x7d\xb2\x7d\x8b\ -\x89\xa6\x7c\x8e\xa6\x03\x94\x90\x99\x2d\x9f\xba\xe5\xcc\x2e\x94\ -\x51\x2c\x57\xd1\xeb\xed\x76\xa3\x99\x79\x9f\x4a\x11\x0c\xf4\xe5\ -\xb0\x7e\x6c\x0d\x8a\xc5\x32\x2e\x8e\x1b\xed\x76\xb3\x05\xce\x42\ -\x7c\x7b\x72\x63\x9b\xf3\xef\x66\xbb\xd5\x0a\x03\x2a\x2a\x25\x11\ -\x47\xfd\x00\x48\xec\x0a\xa8\x13\xb0\x98\x40\x15\xec\xb4\x0a\xb4\ -\x4c\xa2\x89\xa6\x01\x44\xca\x48\x22\xe2\x43\x6a\x20\xba\x3f\x98\ -\xd9\xdf\x4d\x27\x81\x42\x66\x26\x7a\xee\x44\xb4\x69\x24\x10\x20\ -\xf2\x44\xcd\xb0\xb6\x34\x03\xa0\x82\x9f\x20\xc1\x5c\xa1\x8a\x7c\ -\xa1\x82\x9e\xae\x76\x74\xb6\x67\x84\xf2\xd8\xde\x11\xf4\xe4\x3a\ -\x71\xc5\xfa\x51\x80\x02\x17\x2e\x4e\xa2\x5a\x0b\x5d\xdb\x2a\x0d\ -\x67\xa7\x9b\x9b\x00\xbc\x01\xe0\xe2\xbb\x15\xac\x56\x84\x0b\x8d\ -\x4c\xff\x05\x87\x05\xaa\xf8\xd2\x52\xb5\xab\x05\x97\xcc\x5b\x0f\ -\x89\x59\xb8\x4d\x74\xd6\xd1\xb9\x5a\x78\xee\x16\x61\xf6\x90\xe0\ -\x4f\xe3\x42\x22\xba\x8f\x28\xbe\xf4\xca\x68\x02\x0d\xf2\x42\xb0\ -\xee\xcb\xea\x1f\x55\x1a\xb1\x35\x0c\x88\x46\xfd\x51\x4d\x27\xd4\ -\x9d\xa1\x42\x30\x9f\x92\x67\x64\xdc\x87\x86\x8a\x39\xa0\xe8\x04\ -\x05\xeb\x6a\xe4\x97\x29\x7c\xb2\xc4\xd6\x89\xcf\x80\x78\xff\x82\ -\x7c\x34\x00\x53\x11\xa4\x94\xcf\x48\x50\x0e\xe0\xd8\x52\xf7\x1e\ -\x1d\xc7\xc5\xe9\x42\x68\xb7\x08\x80\x55\xfd\x3d\xf8\xc4\x4f\xbc\ -\x17\xf7\xdd\xfb\x3e\xf4\xf5\xe6\x4c\xdc\x6e\x3e\x09\xe0\xfb\x00\ -\x3e\x0a\xbc\x3b\xdd\x6e\x56\x04\xa3\xba\xfd\x96\x4d\x18\xec\x53\ -\xcd\x4c\x27\xc1\xcc\x74\x40\xc1\x7e\xd8\x30\x33\x75\xa8\x3e\x96\ -\x15\x9c\x99\x98\x97\xe4\x34\x66\xaa\x28\x53\x8b\xa6\x1d\x81\x0a\ -\xa6\x6d\x06\x31\x24\x54\xd1\xbd\x30\xfe\xd3\xd8\xc0\xf9\x20\x95\ -\x71\x9a\x49\x28\xb1\x1f\x01\x87\x59\xdb\x96\xa8\x82\xf9\x9d\x66\ -\xd3\x1b\x8c\xe2\x71\x6d\xd1\xa9\x8b\xdc\x47\x32\xdc\xa0\x5f\xae\ -\x5a\x98\xcc\x17\x91\x4e\xa7\xd0\xd3\xed\xae\x6d\xa5\x99\x67\x91\ -\x6d\xcf\x60\xcd\xe8\x08\x06\x06\x7a\x71\xf1\xd2\xa4\x89\xdb\xcd\ -\x1a\x00\x1f\x01\x30\x0e\xe0\x60\x6e\x6c\xb3\xfd\x6e\x62\x56\x2b\ -\x06\xa8\x24\x63\xba\x9b\x72\x32\x5f\xc2\x64\xbe\x08\x0e\x8a\x5a\ -\x00\x58\x52\x79\x61\x75\x19\xaa\x87\xe1\xed\x60\x20\x49\x65\x17\ -\x17\x3b\xab\x0e\x82\xce\x55\x27\xb4\x4f\x7e\x8c\xa1\xcd\x29\x4c\ -\xa8\x7a\x92\x82\xf4\x7e\x12\xf8\x8c\x88\x68\xd3\x32\xf5\x87\xcf\ -\x20\x65\xce\x34\xc6\x2d\xb9\x99\x42\x9d\xf5\x01\x94\x58\x16\x15\ -\x02\xab\x16\xc5\x54\xde\x71\xbb\xe9\xeb\xce\xf2\x6e\x37\x42\x39\ -\x6d\x99\x14\x56\x0f\x0f\x62\xf5\xc8\x10\xa6\xa6\x66\x31\x3d\x3b\ -\x17\x75\xb5\xfb\xe1\x80\x55\x0d\x8e\xdb\xcd\xbb\x66\x21\xbe\x15\ -\x04\x54\x39\x65\xfe\xa9\xb9\x62\xc0\xa8\xc4\x51\x37\x25\x88\x40\ -\x09\x5a\xe1\xf6\xa6\xc5\x05\x2d\x36\xbd\x0a\x68\x88\x22\x40\xdd\ -\x47\xd3\x41\x03\xc7\x28\x4e\xea\x01\x22\x00\x3a\xd4\xf0\x99\x94\ -\xa2\x58\x65\x0d\x94\x35\xd0\xeb\x8b\xa7\xde\x3c\x00\x29\x8d\x8c\ -\x10\x94\xb9\x46\x3a\xc3\xbb\x6e\xaa\x81\xb2\x09\x1a\x3b\x94\x5c\ -\x0e\x1f\xe8\x9d\x13\x00\xb6\x4d\x31\x3d\x57\x46\xa9\x6a\xa1\x2f\ -\x97\x45\x26\x93\x82\xce\xbf\x31\x4d\x08\x06\x07\x7a\x31\xb6\x76\ -\x14\xf3\xf3\x05\x8c\x4f\x4e\xc3\xb6\x43\x9f\xa5\x4e\x38\x73\xad\ -\x06\xe0\x18\xd9\x0b\xef\x06\xbb\xd5\xca\x07\xaa\xbc\x6a\x66\x7a\ -\xfd\x80\x05\x34\x81\x65\x09\x11\x61\x70\x11\x5e\x97\x00\x49\x4c\ -\x87\x88\xa2\x53\x41\xaf\x09\x10\xa3\xad\x04\x4a\x5c\x33\x10\xc2\ -\x95\x40\x25\x54\x52\x03\x0e\x35\x2d\x5e\x4a\xeb\x32\x2e\xe5\x8c\ -\x50\x80\xe1\x4f\x7c\xd5\x94\x68\x08\x55\x10\xde\x2c\x80\xf2\x63\ -\x55\x1b\x56\x30\x65\x50\x38\x6e\x37\x73\xc5\x0a\x7a\xbb\xda\xd1\ -\xd1\x9e\x56\x14\xe2\x8e\x08\x12\x82\xde\x9e\x6e\xac\x5f\x3f\x0a\ -\xab\x56\xc3\xc5\x4b\x93\xa8\x85\xbb\xdd\xb4\x01\xd8\x0c\xe0\x1a\ -\x00\xaf\x01\x98\x5e\xe9\x60\xb5\x22\x8c\xe9\x80\xd2\x3c\xcb\xc7\ -\x29\x2c\xe0\x7e\x1e\xc9\xd8\xc9\x17\xaa\x5b\xe3\x48\xaa\x47\x61\ -\x78\xd5\x9a\x8f\x99\x40\x7e\x8d\x26\x3e\x07\x6f\x74\x07\xd7\x06\ -\xc9\xf0\xcc\x74\x88\x8a\x4f\x3d\x53\x3e\x65\x2b\x15\x9a\x24\x89\ -\x67\x60\x27\x2a\x73\xb8\x0c\x3e\x94\xfb\xd3\x9a\xce\xf9\x0a\x84\ -\xca\xd5\x6c\x4a\x1c\x6a\x70\xd3\x52\xbe\x2c\x0a\xc2\xd9\xa7\xf8\ -\xeb\xe2\x75\x28\xb8\xdf\x8a\x42\xdc\xfc\x7c\x22\xc9\xd7\x50\xfb\ -\xec\xe8\x9f\x93\x20\x0f\x55\x3e\x0f\x62\x18\xa5\x14\x17\xa7\x0b\ -\xd8\x7b\x74\x1c\x13\xcc\xda\x56\xaa\xb4\x29\x02\x8c\x0c\xf6\xe1\ -\x53\xf7\xbe\x1f\xf7\xde\x73\x37\x72\xdd\x9d\x51\x46\xf6\x34\x80\ -\x2f\xc0\x59\xdb\xea\x6e\x00\x58\xc9\x46\xf6\x15\x03\x54\x9e\x48\ -\x37\x9b\x3d\x96\x00\xa6\x3e\xc0\x12\x77\x2d\x31\x05\x2d\xb6\x7d\ -\xaa\x41\xa9\x50\xe0\x22\xe2\xe6\x95\x54\x7a\xc1\x04\x92\xc5\xab\ -\x56\x6c\xba\xb0\x70\xf6\x44\x19\x20\xb3\xa1\x68\x30\x12\x53\x29\ -\x3a\x1b\x52\x0e\x37\xf2\xc7\xd4\x4d\x01\xcd\x64\x78\x22\x00\x91\ -\x57\x8e\x77\x2d\xc1\xa8\xc3\x54\x36\xe6\xbb\x05\x53\x2e\x2f\xfc\ -\x4c\xf2\xb3\xc2\xb7\x3c\x0c\xa0\x3c\x90\x12\x23\x45\x80\xf2\x9e\ -\x1b\x02\x60\x66\xae\x8c\xbd\x47\xc7\x71\x76\x7c\x5e\xf5\x7d\xe1\ -\xee\x7f\x5f\xae\x0b\x1f\xfe\xc0\x9d\xb8\xff\x93\x1f\xc2\xd0\x60\ -\x9f\xc9\x6e\x37\x1f\x82\x33\x22\xf8\x59\x00\xa9\x95\x0a\x56\x2b\ -\x46\xf5\x1b\xec\xcf\x39\x77\x50\x48\x31\x35\xeb\x1a\xd3\x15\x23\ -\x5d\xa1\x06\x6a\xe6\x20\xdc\xde\xa4\x50\xa1\x22\x54\x24\x1d\x25\ -\xd7\xd5\x43\x84\x42\x09\xf3\x1f\x51\xa6\x97\x51\x48\x5e\x62\x39\ -\xac\x73\xea\x81\x86\x88\x5e\xb9\xbf\x54\x93\xc9\x33\x72\xeb\x8d\ -\xef\x24\xaa\x78\x55\xa3\x42\x46\x03\xc3\xfa\x40\x19\x14\x23\xa2\ -\xf1\x5d\x37\x10\xc1\x82\x0c\x91\xeb\x53\xaa\x78\x4c\x84\x4e\xcd\ -\x0b\x92\x29\x8c\xf8\x6e\x5d\x95\x9a\x8d\xc9\xd9\xa2\x03\x46\xdd\ -\x59\xa4\x15\xcf\x50\xe0\x76\x93\xc2\xea\x91\x55\x18\x1e\x1a\xc0\ -\xf8\xc4\x14\x66\xf3\x91\x6e\x37\xc3\x70\x8c\xec\x79\x38\xbb\xdd\ -\xac\xb8\x85\xf8\x56\x16\x50\xb1\xc2\x8c\xfa\x05\xc6\x74\xc4\x02\ -\x2c\xee\x28\xc2\x8e\xe5\x1c\x36\x0f\xb4\xf8\xbc\xf2\xda\xed\x5a\ -\xdf\x45\xa2\x68\x07\xd7\x76\x12\x0b\x84\xf4\x20\xad\xb3\x35\x45\ -\x18\xdb\x15\x18\xe5\x60\x97\xe2\xc5\x93\x0e\x82\x13\x95\xad\xc9\ -\x07\x68\xaa\x06\x85\x40\x3d\x55\xd5\x23\xe8\x8b\xde\x01\x65\x6a\ -\xd4\xdc\xfc\x46\x01\xca\x49\xaa\x01\x29\xa6\x2d\x96\x4d\x31\x99\ -\x2f\xa1\x5a\xb3\xd1\xef\x1a\xd9\xf9\xaa\x82\x32\x32\xe9\x14\x56\ -\x0d\xf6\x61\xed\xe8\x08\x66\xf3\xf3\x98\x9c\x9e\x45\x84\xf4\xc0\ -\x01\xab\x36\x00\xaf\xe7\xc6\x36\x97\x57\x92\xdd\x6a\x65\x00\xd5\ -\xcd\x9b\x30\xd8\xa7\x36\xa6\x3b\xd3\x13\x82\xed\xc4\x59\xc0\x82\ -\xa2\xc0\xe6\xb0\x2c\x75\x0a\xb3\x39\x54\x61\xf5\x11\x65\xfd\xe1\ -\x9b\x54\xe8\x0c\xee\x41\xa8\xce\x50\x2e\x19\xf9\xe5\x85\xdf\xeb\ -\x10\xaa\x3c\x0c\xbf\x28\xe2\x09\x89\x28\x8a\x1d\xa1\x84\x30\xa2\ -\xa7\xa8\x97\x79\xc9\x25\xe3\x39\x82\x6b\x4f\x59\x1f\x43\x05\x52\ -\x86\x02\x94\x1b\x60\x0c\x50\x7e\x7a\x3e\xde\xb6\x1d\x55\xb0\x50\ -\xaa\xa1\x2f\x97\x45\x7b\x26\x2d\x81\x94\x27\xe9\x14\x41\x5f\x6f\ -\x0e\x63\xeb\x46\x51\x2e\x57\x70\x69\x7c\x1a\x56\xb8\xdb\x4d\x16\ -\xc0\xfb\xe0\x2c\x75\xbc\x07\xc0\xdc\x4a\x01\xab\x15\x63\xa3\x0a\ -\x6c\x05\xca\x08\xf9\x94\xb1\x17\xd4\x65\xc7\x0a\xb3\x65\x29\x0c\ -\xf0\x6c\xd9\x26\x4b\xe6\xca\xef\x92\x6c\xcc\x75\x44\x66\x08\xce\ -\x8b\x29\x1b\x6f\x28\x07\x5e\x81\xa1\x46\x3d\x1b\xdd\x35\x96\x13\ -\xef\x4f\x7f\xd5\xcd\x11\x27\x30\xc0\xfb\x65\x2b\x40\x8f\x2b\x51\ -\x51\x7c\x60\x2f\x22\x5a\x10\xf2\xaf\xa2\x50\x98\x38\x75\x41\xb2\ -\x43\x71\xba\x1d\x61\x8b\x54\x7e\x80\xf8\xba\xd5\xcf\x54\x94\x1d\ -\x4a\xea\x2a\x63\x13\x55\x5d\x14\x0a\xe0\xec\xc4\x3c\x5e\x3b\x7c\ -\x09\x53\xf9\x92\xf2\xfa\x7b\xc9\x53\x29\x82\xd1\xe1\x41\x7c\xfa\ -\x13\x1f\xc4\x3d\x1f\xb8\x03\x9d\x1d\xd9\x28\xbb\x55\x3b\x80\x5f\ -\x06\xf0\xd7\x70\x5c\x6f\x56\x84\x91\x7d\xc5\x00\x95\x27\x2a\x80\ -\x70\x23\x9a\x04\x58\x71\x41\x8b\x35\xc1\xcb\x23\x42\x72\x3d\xc4\ -\x3f\xa7\x6e\x3a\x0e\x25\xfc\x8a\x78\x66\x41\xb9\xb7\x49\x67\x03\ -\xd3\x4c\x09\xa0\xd2\x21\xb8\x82\xb9\xed\xd5\xd9\x2b\xa0\x99\x66\ -\xa0\xb8\x8e\x5a\x6f\x1a\xbf\xd1\xc1\x9f\x34\x37\x8c\xeb\xbe\x68\ -\x8c\x57\x3f\x05\x7e\x84\x00\xd0\x44\xe6\x89\x6e\x31\x2a\xaa\x2a\ -\xd4\x1d\x24\x96\xeb\x01\x00\x42\xd4\xcf\x00\x93\xca\x14\xa0\xc4\ -\x51\x5b\xbe\x0c\xe7\x77\x72\xb6\x88\xd7\x8f\x5c\xc2\x85\xa9\x05\ -\xa9\x3c\xf6\x24\x45\x80\xc1\xbe\x1c\x3e\xfa\xa1\xbb\x70\xdf\xbd\ -\xef\x43\x7f\xb4\xdb\x4d\x0a\xc0\xa7\xe1\x18\xd9\xef\x01\x96\xbf\ -\xdb\xcd\x8a\x03\x2a\x4f\x38\x78\xa0\xf2\xc3\x10\xa4\x33\x03\xac\ -\x30\x96\x65\x0a\x5a\xec\x43\x28\x01\x17\x00\xbd\x65\x5b\xe0\x8b\ -\x04\xf2\x39\x37\x1a\x15\x80\x2a\x5b\x01\x5f\x6f\x3c\x26\xc4\x19\ -\x94\xa8\xa3\x06\x89\x20\xa4\xc4\x21\x12\xf1\xa7\xb9\x67\xf2\x0d\ -\xe2\x3a\xaf\x8e\x82\xd7\x3c\xc1\x48\x2f\xaa\x88\x0c\x53\xf2\xda\ -\x28\x0e\xfa\xf9\xf7\x58\x7c\x18\x98\x26\x48\x93\x45\x19\x7a\x26\ -\x3e\x07\xcd\x02\x28\xca\x64\x20\x04\x98\x2b\x54\xb0\xf7\xe8\x38\ -\x4e\x9c\xcf\xc3\x56\x8d\x28\x32\x57\x2d\xd7\xdd\x81\xf7\x6e\xbe\ -\x05\x9f\xfb\xf4\x3d\x58\x33\xb2\xca\x64\x44\x70\x33\x80\xef\x02\ -\xf8\x19\x00\x99\xe5\x0c\x56\x2b\xc3\x46\xa5\x32\xa6\xbb\xe2\xb9\ -\xd0\x68\x7d\xf4\x42\x87\xe8\x4d\xed\x58\x7c\x2a\x9d\xb1\x5a\x3f\ -\xaa\xc7\xe4\xf5\xdf\x2f\xde\xe5\xc7\x37\x84\xab\x6c\x49\xda\x55\ -\x12\x74\xbb\x2b\x2b\x98\x8b\xe2\xc2\x68\x67\xa2\x1b\x80\x8e\x56\ -\x42\x8c\x45\x11\x97\x95\x53\x77\x41\xd5\xed\x17\x27\x7b\x52\xd5\ -\x19\x4b\x9e\x54\x2a\x16\x93\x88\x1f\xcb\xe4\x8d\xf1\x4e\x7e\x55\ -\xab\x83\xfb\x14\x65\x83\x72\x7e\xe4\x46\xcb\xb6\x2c\x45\x6f\xdc\ -\xd3\x9a\x45\x31\x91\x2f\xc1\xb2\xa9\x63\x64\x4f\xc9\xba\xbc\x77\ -\xda\x96\x49\x63\x68\x68\x00\xa3\xab\x57\x61\x7a\x66\x16\xd3\x33\ -\x91\x6e\x37\x03\x70\x8c\xec\x15\x00\x6f\xe4\xc6\x36\x57\x97\xa3\ -\xdd\x6a\x65\x01\x15\x6f\x4c\x00\xe0\x00\xd5\x04\x6b\x4c\x37\xd8\ -\xdc\x41\x3a\xd5\x6d\xb5\x85\x06\x41\x2b\x06\x20\x49\xed\x66\x46\ -\xde\xd4\x23\x82\x44\x0d\x92\xaa\xa5\x97\x25\xb0\x51\x4f\x7b\xf0\ -\xff\x54\x1f\x62\x53\xa0\x52\x18\xc6\x95\x33\xd6\x69\x38\xfa\x51\ -\x42\x35\xe1\x80\x6e\xf9\x16\x2a\x18\xb4\x02\x36\xc5\x1b\xde\xd9\ -\xc2\x7c\xd6\xa4\xb1\x26\x70\xc8\x48\x82\x84\xba\x75\xa5\xd8\x03\ -\xaa\x41\x13\x15\x89\x63\x43\x55\xae\x38\x36\x75\xf6\x11\x2c\x55\ -\x2c\xf4\x77\x67\xd1\xde\x96\x52\x34\xdb\x39\x4b\x13\x82\xfe\xbe\ -\x5e\xac\x5b\xbb\x1a\x85\x42\xd1\x71\xbb\xa1\xa1\xb7\xb0\x0b\xce\ -\x7c\xab\x5e\x38\x46\xf6\xe2\x72\x03\xab\x15\xa3\xfa\x51\x2a\xdb\ -\x8e\x00\xd5\x97\x29\x64\xe9\x96\x28\xb5\x30\xa6\x6a\x28\xda\xb4\ -\x58\x1b\x8d\xa4\xea\x09\xea\x04\xc7\x1e\x94\x43\xea\xc2\x68\x13\ -\xc3\x04\x74\xd7\xc1\xb7\xb1\x30\xaa\xab\x7c\x11\xc0\xb4\x9b\x6d\ -\xb0\x42\xa7\x8d\x02\x27\xaa\xf9\x33\xc9\xe4\xed\x00\x4d\xd4\xb6\ -\x33\xad\x29\xce\xed\xa8\xd2\xe6\x04\x28\x47\x2e\x79\xa6\x06\x29\ -\x3c\xd0\xe8\x44\xfb\x27\x4f\x7d\x94\x9a\x14\x61\xee\xa7\x4a\xc5\ -\xe3\xc2\xf5\x6a\x1e\x1f\xc6\xb6\x2f\xc8\x6c\xdb\x14\xa7\x2e\xe6\ -\xf1\xfa\xd1\x4b\x98\x99\xaf\x28\x2e\x4c\xf0\x93\x49\x13\xac\x1b\ -\x1d\xc2\xfd\x9f\xfa\x30\xde\x7f\xd7\x2d\xc8\xb6\x65\xa2\x54\xc1\ -\x2e\x00\xff\x12\xc0\x5f\x02\xb8\x2a\xea\x2e\x2e\xb6\xac\x18\x46\ -\x35\xa0\x98\x9e\x40\xe0\x6c\xaf\x3d\x31\x5b\x12\x09\x06\x9f\xce\ -\x50\x2d\xe4\xe3\x34\xac\x49\x8e\x96\x4a\x10\xb7\x8e\x77\x43\xb9\ -\xc2\x88\xc4\xaa\x54\x2c\x8b\x89\x13\x1a\x22\x4e\x67\x60\x23\x08\ -\x9f\x42\xd1\x39\xef\x44\x63\xe0\xae\x47\x58\xb2\x24\x45\xea\x5f\ -\x10\x35\x33\x61\x19\x97\x00\x38\x9a\xa9\x0c\xe2\x77\x44\x26\x2a\ -\xee\x6b\xcf\x12\x28\x69\xb5\x06\xc2\xa8\x8b\x41\xf9\xbc\xb6\x28\ -\x74\x90\xb2\x75\xd6\xc7\xa0\xc4\xeb\xc0\x59\x36\x15\x65\xcc\x17\ -\xab\x98\x9a\x2b\xa1\xbb\xb3\x0d\xdd\x1d\x19\x29\x81\xaf\x78\x10\ -\x82\xae\x8e\x2c\xc6\xd6\x8d\x22\x9b\x6d\xc3\x85\x0b\x13\x28\x47\ -\xef\x76\x73\x13\x80\xdb\xe1\x4c\x0c\x3d\xbf\x5c\x98\xd5\x8a\x61\ -\x54\x2a\x61\xbe\x45\xd2\x17\x8b\x4b\xa7\xf3\xcf\x53\xb0\x80\x20\ -\x2e\xa0\x52\x2a\xb2\xa0\x1f\xd5\x33\xd1\x9b\x78\x83\xac\x17\x24\ -\xda\x94\xd9\xd7\x88\x0a\x2f\xa8\xef\xf3\x26\x96\xcc\x3a\xee\x89\ -\xed\xf6\x3b\x12\x03\x94\xa2\x8c\xe5\x2c\x96\x78\x64\x29\xa2\x10\ -\x76\x0a\x83\xae\x4a\x48\xfd\xd5\x74\x86\x8a\x60\xc3\xdf\x2d\xa9\ -\xab\xdc\x4d\x14\xd8\x10\x5c\x90\x64\xf1\x9f\x6d\x8c\x12\x87\x02\ -\xbb\x18\x61\x23\xa8\xfa\x99\x11\x43\xd9\xe7\x87\x7b\x9e\x35\xcf\ -\xb4\x97\x76\x66\xae\x84\xd7\x0e\x5f\xc4\xe9\x8b\x73\xa0\xb6\xba\ -\x7b\x80\xf3\xb1\xeb\xcd\x75\xe2\x03\xef\xbd\x1d\xf7\x7f\xf2\x43\ -\x18\x5e\x15\xe9\x76\x43\xe0\xd8\xac\xbe\x0f\xe0\x3e\x2c\x13\xb7\ -\x9b\x15\xc1\xa8\x6e\xbb\x25\x6c\xc2\x67\xd1\xb7\x51\xc9\xac\x45\ -\x2f\x71\x6c\x59\x72\xbc\xce\x08\xcf\x8c\x44\xb1\x6c\x88\x6b\x0f\ -\xe1\xdb\xc7\xda\xb1\xc4\x76\x0b\xf5\x10\xbe\x60\x08\xc5\xf1\x61\ -\x1a\xda\x18\x3e\x9f\x53\x6f\xab\x0b\x93\x48\x6d\x4f\x55\x4b\xd8\ -\x46\xa5\x1a\xd6\xc1\xe3\x45\x70\xb1\x28\x0b\x94\x22\x00\x72\x2a\ -\xb3\xca\x48\xa9\xe8\x2d\xf3\x01\x91\x8d\xdc\x94\x07\x3f\xc2\xe6\ -\x51\xb0\x3b\xae\xab\x6a\x3b\x54\x10\xc3\xd3\x27\x35\x13\x73\x62\ -\x08\x01\xaa\x35\x1b\xe3\xb3\x45\x10\x00\x7d\xb9\x2c\x52\x29\xf5\ -\x9d\x23\xc4\x31\xb2\x0f\x0f\xaf\xc2\xc8\xf0\x20\x26\x27\xa7\x31\ -\x93\x9f\x8f\x72\xbb\x19\x81\x03\x58\xd3\x00\x0e\x2c\xb5\xdb\xcd\ -\x8a\x00\x2a\x4f\xf5\x53\x5d\xd6\xc9\xd9\x22\x26\x67\xf9\x65\x5e\ -\xf4\x4b\xa0\xc8\x12\xb9\x74\x4b\x1c\xd0\x62\x8e\x7d\x63\x38\x11\ -\x81\x86\x69\xa1\x46\xb5\x13\x31\x46\x0b\xc0\x44\x63\x14\x87\x01\ -\xe4\xf8\xed\x90\x55\x2c\x4d\x52\x50\xd6\xfc\xc3\xfc\x11\x4d\x38\ -\x2f\xdc\xab\x18\x59\x17\x7b\x40\xc3\x52\x53\xdd\x82\x89\x7a\x1b\ -\x96\x00\x3b\xca\xe3\xa0\x48\xb1\xdd\x44\x62\x65\xbc\x4a\xca\x8e\ -\x08\xf2\x7d\xe7\xc3\xa4\x18\x03\x80\x72\x5b\xc9\x84\x59\xb6\x33\ -\x22\x58\xa9\xda\xe8\xef\xe9\x40\x5b\x46\x56\x92\xbc\xf4\x99\x74\ -\x0a\x03\x03\x7d\x58\x3b\x3a\x8c\xb9\xf9\x79\x4c\x4e\xe5\x23\xee\ -\x06\x7a\xe1\x80\x55\x0a\xc0\xde\xdc\xd8\xe6\xf2\x52\x81\xd5\x8a\ -\x02\x2a\x9f\x65\x33\xa9\x26\x67\x9d\xed\xb2\x74\x1f\xc7\x46\x58\ -\x96\x94\x5e\x03\x5a\x84\x47\x49\x88\x7e\x7a\xec\xfe\x7a\x84\xff\ -\x4f\x00\x28\xa2\x68\xa7\xa0\x8a\x08\x75\x28\xd3\x33\x94\x4a\xab\ -\x5c\x85\xc6\x0b\xc9\x98\x3a\xa2\xa7\xe6\xe8\x0b\x93\x76\xac\x11\ -\x2a\xd7\x13\xa9\xc0\xf8\x45\xe5\x62\x79\xa6\x44\x04\xc0\xe1\x5e\ -\x7e\x2a\xa1\x80\x4f\x88\x98\x1b\xc1\x32\x34\xdd\xa8\x20\x7f\xca\ -\x77\x24\x36\x40\x29\x9a\x26\xe7\xa1\x52\x98\xcf\xfa\x6c\x60\x7a\ -\xae\x8c\xf9\x52\x15\xfd\xb9\xac\xbf\xa5\xbc\xaa\xce\x54\x0a\xe8\ -\xe9\xe9\xc6\xd8\xba\x35\xa8\x55\xca\xb8\x38\x3e\x0d\xcb\x0a\x75\ -\xbb\xe9\x00\xf0\x7e\x38\x8e\xcd\x7b\x72\x63\x9b\xe7\x97\x02\xac\ -\x56\x16\x50\x29\x86\xa4\x26\xf2\x45\xdf\x98\x0e\x70\x1f\x36\x4e\ -\xe2\xb0\x2c\xc0\x1c\xb4\x08\x0b\x24\x02\x5b\x52\xa9\x70\x22\xf3\ -\xe2\x1a\x2c\xb1\x2f\x05\x70\xb1\xea\x25\xd7\x8e\x90\x1e\x91\x90\ -\xbe\x9a\x32\x30\x36\x7d\x5c\xdd\x10\xb2\xb1\x9b\x2f\x4c\xa1\x92\ -\xa9\xf1\x41\x28\x94\x86\x06\xc9\x4f\x8b\x44\xaf\x14\x40\xc4\xe8\ -\x92\xc2\xbd\x51\x5c\x36\xbf\x14\x25\xca\x4a\xcc\x4a\x0d\x50\x62\ -\x5b\xa3\x00\xca\x0f\xf5\xf3\x3a\x07\xf9\x42\x05\x33\xf3\x65\xf4\ -\x74\x65\xd1\xc5\xec\x76\x23\xd6\x99\x22\x04\x5d\x9d\x1d\x18\x5b\ -\x37\x8a\x4c\x8a\xe0\xc2\xa5\x49\x54\xab\xa1\xbb\xdd\x64\xe0\xbc\ -\xa3\xd7\xc3\x71\x68\x9e\x58\x6c\x23\xfb\x0a\x03\x2a\x59\x26\x67\ -\x1d\xa7\x64\xa2\x7b\x90\x1a\x64\x59\x00\x42\x27\x5c\x7a\xc7\x7e\ -\x12\x46\x1d\x93\x56\xe9\x64\x99\x14\x91\xc3\xd8\x70\xa6\x95\x21\ -\x2a\x21\x7f\x22\xab\x81\x44\x45\x5c\x18\x7c\x90\x75\xb5\x3a\x30\ -\x48\x2c\x94\x0b\xa5\xda\xa4\xd4\x08\x8c\x58\xab\x8f\xcc\xa6\xc2\ -\xec\x4e\x1e\x73\x63\xea\x60\x75\x34\x0e\x3c\xf8\x8b\xc4\xaa\x6e\ -\xbe\x5b\x11\x05\x6c\x4a\x51\xb3\x6c\x54\x2d\x1b\x55\x8b\xa2\x56\ -\x73\x8e\xfd\xb0\x9a\x0d\xcb\x72\x56\x41\xb0\xd9\xc1\x16\x78\x7f\ -\x04\x84\x1d\x69\x14\x40\x2a\x4a\xcd\xe3\x9a\xad\x18\x65\x24\x00\ -\x16\x4a\x35\x4c\xce\x16\xd1\x99\x75\xb6\x94\xd7\x5d\x61\x02\x20\ -\xdb\xde\x8e\x35\x6b\x56\xa3\xa7\xbb\x03\x17\x2e\x4e\xa0\x58\xaa\ -\x44\x8d\x08\x6e\x82\xb3\x08\xdf\x21\x00\xa7\x16\x13\xac\x32\x8d\ -\x17\xb1\x48\x42\xf5\x11\xce\x8a\x96\x3c\x00\xf8\x43\xb4\xf2\x67\ -\xd5\xbf\xc1\x84\x1d\xf5\x09\x01\x2d\x76\x94\x84\x10\x45\x42\xd7\ -\x6c\x41\xfc\xd2\x1d\x90\xa1\xfe\x6b\xc4\xbe\x08\xd4\xb7\x93\x10\ -\x78\xf9\xfc\xd6\xfa\xe1\x7e\x58\x08\x02\x53\x45\xb4\xd8\x11\x2a\ -\x66\x13\x6d\x2c\x62\xf3\x42\x45\xa4\xa3\xc2\x38\x3d\x55\xe7\x50\ -\xde\x3a\xde\x02\xae\x88\x17\xec\x42\x80\x73\x33\xb5\xc8\xe7\xde\ -\x57\x91\xa1\x70\xf7\x9f\x79\xf1\x7d\x30\x72\x46\x84\x6b\x2e\xf0\ -\x58\x96\x8d\x9a\x6d\xa3\x5a\xa3\xa8\xd6\x6c\xd4\x2c\xcb\x01\x1e\ -\xef\xcf\x9f\xa7\xc7\x02\x0c\xaf\xbe\x11\xe2\x3d\x01\x81\xfd\x8e\ -\x10\x82\x4c\x2a\x85\x4c\x9a\x20\x9d\x4e\x21\x93\x22\x48\xa5\x53\ -\x48\xa7\x08\xd2\x29\x82\x14\x21\x0c\x48\xe8\xd5\x3c\x91\x45\x71\ -\x97\xcc\xc5\xfe\xb9\x42\x15\xaf\x1d\xb9\x84\x1b\x2a\x35\x5c\x39\ -\xda\xcb\x1b\xd9\x99\xeb\x43\x08\xd0\xdd\x95\xc5\x7b\xee\xb8\x09\ -\xb9\x5c\x37\x9e\xde\xbe\x1b\xe7\x2e\x4c\x46\x19\xd9\xef\x86\xe3\ -\x76\xf3\x5b\x00\x1e\x1c\xdd\xf2\x80\x75\x61\xf7\x77\xd0\x6a\x59\ -\x31\x40\x25\xbf\x70\x4c\x38\x85\x8f\x48\x54\x03\x58\x00\x03\x5a\ -\x02\x60\x39\x71\xe6\xa0\x45\x88\xe3\x07\x47\x98\x3a\x89\xf8\xde\ -\x11\x84\x34\x9a\x06\x0f\x43\x30\xe9\x85\x3b\xf7\x6c\x26\x6c\x9b\ -\xfd\x6e\x12\xf9\xc1\x63\xc1\x4f\x7f\xc1\xf4\x7a\x6f\xe4\xa4\x0a\ -\xd1\x40\x15\x42\x83\x8c\xcc\x58\x2c\x3d\x14\x55\x1d\x45\x01\xd4\ -\xbf\x31\x92\xf2\xc4\x37\xd1\x4f\x22\xb3\x0d\x9b\x3a\x93\x26\xab\ -\x35\x1b\x95\x9a\x8d\x4a\xcd\x42\xb9\x6a\xa1\x52\xb5\x1c\x36\xe4\ -\x03\x92\xad\x1c\xf5\x13\xfd\x02\x95\xec\xc6\x6f\xbe\xcd\x4d\x3b\ -\x10\xa9\x91\x07\x5e\x29\x42\x90\x4a\x11\x64\xd2\x29\xb4\x67\x52\ -\x68\xcb\xa4\x90\x49\x07\x7f\x84\xf0\xcf\x96\x0e\xa0\xc4\xce\x96\ -\x2a\x35\xbc\x79\x7c\x02\x85\x72\x0d\x1b\xd7\x0f\x20\xeb\xee\xd2\ -\xac\xba\x66\x1d\xd9\x36\xdc\x70\xfd\xd5\xe8\xee\xea\xc4\xd3\xdb\ -\x76\xe3\xe8\x89\xb3\x51\x77\xef\x5a\x00\xff\x1e\xc0\x5a\x00\x7f\ -\x33\xba\xe5\x81\x62\xab\xc1\x6a\xc5\xaa\x7e\x5e\xc2\x09\xc5\xa8\ -\x9f\x98\x4a\xb7\x57\x27\x7f\xc0\xc6\xc9\x2f\x34\x6f\xae\x60\xcb\ -\x8d\x32\x9c\xab\x5d\x68\xb4\x69\xc4\x3a\xa4\x36\x46\xfb\x03\x72\ -\xda\x8f\xaa\xdf\x3a\xf0\x62\x42\x54\x4c\xc8\x54\x2d\x34\x35\x63\ -\x51\x63\xb0\xa3\xfa\x42\x59\x77\x1a\xf1\xfa\xb9\xc0\x54\xae\xda\ -\x98\x2f\x56\x31\xb3\x50\xc1\x64\xbe\x88\xe9\xb9\x32\x66\x17\x2a\ -\x98\x2f\x54\x51\xac\x58\xa8\xd6\x2c\x58\x16\x33\xd7\x8e\x38\xa3\ -\xa1\xbe\xad\xd1\x3d\xe7\xc6\x00\x58\xb5\xda\x4f\x03\x3f\x8d\x77\ -\x9f\x02\x15\x5f\x6e\xbc\xa7\x4e\x5a\x2e\x78\x96\x2a\x16\x0a\xa5\ -\x1a\x16\x4a\x35\x2c\x94\xaa\x98\x2f\x56\x51\xac\xd4\x50\xa9\x3a\ -\x20\xea\x56\xcb\x95\xa5\xdb\xf9\xc6\x01\x66\x8a\xa9\x7c\x11\xc5\ -\x92\xe5\x8c\x08\xb6\xe9\xa7\x4d\xa6\x52\x29\xf4\xf6\xe6\x30\xb6\ -\x76\x35\x8a\xc5\x12\xc6\x27\x66\x60\xdb\x14\x21\xe4\xaa\x1b\xc0\ -\x87\xdd\xdf\xd7\x72\x63\x9b\x8b\xad\x54\x03\x57\x16\x50\x51\x39\ -\xc5\xe4\xac\x6b\x4c\x67\x44\xbb\x38\x5e\x18\x60\x49\x27\x5e\x90\ -\xc2\xc6\xc4\x1a\xbd\x19\x55\x90\x7d\xb8\xfd\x1f\x09\x84\x84\x99\ -\xeb\x42\x79\x41\x59\x5c\xcb\xd5\x64\x48\xb9\x7c\xb1\x1a\x68\xe5\ -\x5e\x11\x80\x44\xc3\x89\x64\x79\x52\x6d\xf1\x1e\x92\xd7\x4c\x68\ -\x68\x46\x7f\xb4\x50\xf9\x52\x12\x30\x57\x1e\x96\x4d\x51\xa9\xd8\ -\x98\x2f\xd5\x30\xbb\x50\x71\x56\x80\x9d\x2b\x61\x76\xa1\x82\x62\ -\xa5\x86\x5a\xcd\xb1\x1f\x79\xe0\xe7\xe7\x16\x07\x2e\x3c\xb0\xe1\ -\xee\x89\x68\x0f\x14\xee\x1d\x67\x9f\x64\xee\x5e\x08\x58\xe9\x84\ -\x07\xb0\x1a\x0a\xa5\x2a\x16\x4a\x35\x14\x4a\x01\x70\x39\xac\x9e\ -\x04\x20\x49\x15\x6c\x93\x02\x33\x0b\x0e\x30\xf7\x76\x67\xa5\x2d\ -\xe5\xd9\xb4\x29\x42\xd0\xd5\xd5\x89\xf5\xeb\x46\x01\xd8\xb8\x78\ -\x69\x0a\xb5\x5a\xe8\x6e\x37\xed\x70\x54\xc1\x2b\xe0\x8c\x08\xce\ -\xb6\xca\x6e\xb5\xb2\x80\x4a\x14\xe2\x30\xaa\x89\x59\x61\x03\x52\ -\x2f\xba\x5e\x96\x25\x9d\x78\x5f\x52\x1e\x94\xf8\x72\x88\xc4\xaa\ -\x42\x1f\x72\xc5\x4a\x9f\x22\xc0\x28\x5f\x06\x37\x6f\x98\x13\x33\ -\xd7\x05\x8e\x3a\x06\xf1\x91\x4b\x28\xab\x6e\x46\x0c\x09\x53\xff\ -\x64\x26\xc5\xb4\x8d\x86\xe4\xe5\xb6\x7c\xf7\x58\x9f\xf3\x32\xcf\ -\x17\x1d\x60\x9a\xca\x97\x30\x3d\x5f\x42\x7e\xa1\x8c\x42\xb9\x86\ -\xaa\x65\xbb\xc0\x04\x7e\xfc\xc0\x05\x37\x7e\xfa\x85\x02\xac\x48\ -\x93\xc0\xca\x0f\xab\xff\xaa\x7a\xc6\xfc\x72\xd5\x42\xa1\x54\x45\ -\xa1\x54\x45\xb1\x5c\x43\xb5\x66\x39\xec\xc7\xef\x4f\x60\x46\xf0\ -\xf8\xe6\x7c\xb1\x8a\xa9\x7c\x09\xdd\x1d\x6d\xc8\x75\xb6\xfb\x65\ -\x8a\x13\x6c\x53\x04\xe8\xe8\xc8\x62\xdd\x9a\x51\x74\x64\xdb\x70\ -\xe1\xe2\x64\x94\xdb\x4d\x1a\xc0\x2d\x00\x6e\x05\xf0\x26\x80\x0b\ -\xad\x00\xab\x15\x02\x54\x1b\x31\xd0\xd7\xad\xcc\xef\x01\x95\x34\ -\x7a\x26\xa4\x6b\x14\xb4\x38\x60\x62\xbf\xb6\x8a\x87\x97\x7d\xe0\ -\xb5\xf1\x42\x25\x44\x78\x21\x58\x96\xc0\x03\x95\xae\xcd\x72\xb8\ -\x8a\x79\x49\xb9\x0c\x00\x2b\xae\x18\x4d\xea\x0c\x6b\x10\xc3\xd4\ -\x54\x98\x66\x53\x8a\x4a\xcd\xc6\x5c\xb1\x8a\xe9\xb9\x32\x26\xf3\ -\x25\xcc\x16\x9c\xe5\x7b\x59\x60\x0a\xae\xb7\x0b\x10\xe2\x28\xad\ -\x70\x1f\xfd\x33\xa2\x07\x9f\xba\xc1\x4a\xc5\xc2\x1b\x14\x4a\x1d\ -\x06\x59\xae\x5a\x28\x96\x6b\x28\x94\x6b\x28\x55\x2c\x58\xb6\xcd\ -\xb0\xad\xe0\x9a\x17\xcb\x16\xc6\x67\x8b\x68\x6f\x4b\xa1\xb7\x3b\ -\xeb\x34\x4e\x65\xcf\x23\x40\x5b\x5b\x06\xa3\xab\x87\x31\xd0\x9f\ -\xc3\xa5\x4b\x93\x58\x28\x94\xc2\xda\x4d\x00\x5c\x0d\x67\x99\xe3\ -\x77\x00\x1c\x6f\x36\x58\xad\x18\xa0\xea\x67\x18\x15\x9b\xc8\x07\ -\x2a\x29\x92\x48\x69\x81\x70\xc0\xd2\xc5\xfb\xeb\x9c\x2b\xbf\xbc\ -\xa2\x13\xb2\x02\x70\x88\xa2\x2c\x26\x8d\x12\x90\x8c\x19\x17\x53\ -\x17\x91\x7b\x1d\x17\xa0\xd5\x42\xb8\x3f\x76\x36\xbb\x7a\xd3\x51\ -\xf9\x8f\xaa\x8a\x53\x88\xe8\x87\xe6\x33\x27\x9b\xa2\x52\xb5\x30\ -\x57\xa8\x60\x6a\xae\x8c\xa9\xb9\x12\xf2\x0b\x15\xf7\xc5\x64\xed\ -\x37\x41\x4e\x99\x31\xc9\x80\x25\x81\x95\xf0\xb1\x09\xf0\x8c\x59\ -\x2c\xc6\x10\xac\x84\xab\x2d\x80\x95\xe9\xb5\x37\x17\x8f\x71\x95\ -\x2a\x16\x8a\x95\x1a\x8a\x95\x1a\xaa\x35\x17\xb4\x52\x8e\xd1\xbe\ -\x6a\xd9\x18\x9f\x29\x82\x52\x60\x20\xd7\xc1\x6d\x29\x0f\xf0\x63\ -\x3b\x99\x74\x1a\x43\xab\x06\xb1\x7a\x78\x00\x53\xd3\xb3\x98\xcd\ -\x2f\x44\x35\x61\x35\x9c\x15\x43\xa7\x00\xbc\x95\x1b\xdb\x6c\x37\ -\x0b\xac\x56\x06\x50\xdd\xbc\x11\xfd\xbd\xde\x84\x4f\xfe\x01\x18\ -\x9f\x2d\x3a\x9b\x37\x8a\x24\x45\x3e\x30\x04\xad\x20\x65\xf0\x4c\ -\xb3\x2f\xb6\x38\xa1\x93\x79\x00\x35\x0f\x70\x30\xc7\x8a\xc9\x2f\ -\xd4\x4f\x84\x38\xf6\x40\x3d\x17\x4a\x06\x32\x81\xaf\xf1\xbd\x11\ -\x56\xc5\x94\xb2\x71\x21\xe2\x9f\xea\xea\x78\x62\x36\x55\x9d\x18\ -\x24\xa7\xac\xd1\xdc\x65\x4e\xe5\xaa\x8d\x7c\xa1\x8a\xc9\xb9\x12\ -\xa6\xe6\xca\x98\x2b\x54\x51\xae\x3a\xaa\x0e\x7b\x8f\x44\x3f\x4b\ -\x25\x60\x49\xd7\x83\x61\x57\x5e\x3a\xa6\xb1\xaa\x81\x11\xf6\x9a\ -\x45\x81\x15\x6f\xbf\xe4\x0e\x00\xa1\x4d\xcd\x16\x8f\x6d\x55\xaa\ -\x0e\x68\x95\x3c\xd0\x82\xf3\x31\x98\xca\x97\x50\xae\x5a\x18\xe8\ -\xc9\xfa\x6e\x37\xe2\xe0\x2b\x01\x90\x4e\xa7\xd0\xd7\xdf\x8b\xb1\ -\x35\x23\x98\x9f\x5f\xc0\xc4\xd4\xac\xca\x54\xcc\x4a\x1f\x80\x8f\ -\xb8\xc7\x7b\x73\x63\x9b\x2b\xcd\x00\xab\x95\x03\x54\x92\x8d\xca\ -\x49\x3a\x31\xc3\xaa\x7e\x62\xac\x78\x12\x0f\xb4\x88\xea\xcb\xab\ -\x79\x88\x45\xd6\xa5\x65\x52\xdc\x0b\xc4\x37\x44\xb6\x6d\xe9\x58\ -\x95\x82\x81\x89\x2f\x15\x53\x46\xa8\xaa\x41\x94\x87\x4d\x97\xa8\ -\xc9\xe8\x5e\xff\x29\x75\xf6\xb8\x73\x98\x93\x0b\x4e\xc5\x0a\x2a\ -\x55\x1b\xb6\xb7\x52\x02\x6b\x40\xe6\xbb\xca\x15\xce\xcf\xb7\xd5\ -\xb0\x2b\x36\xaf\xc8\xae\x20\xdf\xe7\x66\x80\x95\xee\x19\x69\xa5\ -\xd8\xb6\xa3\x2e\x97\x2a\x8e\x7a\x58\xa9\xda\x98\x9e\x2b\x61\xa1\ -\x54\xc5\x40\xae\x03\xd9\x2c\x03\x05\xc2\xc7\x24\x95\x22\xe8\xce\ -\x75\x63\xfd\xba\x51\x58\xb5\x2a\x2e\x8d\x4f\x99\xba\xdd\x0c\xc1\ -\x31\xb2\x2f\x34\x0a\x56\x2b\x0b\xa8\x14\x93\x37\x27\x66\x8b\x18\ -\x9f\x09\x1f\xf5\xab\x1b\xb4\x38\xba\x2f\xa8\x7f\x1a\x67\x64\xff\ -\xe1\xd5\x01\x8e\xee\xe1\xd6\x00\x1b\x5f\x84\x08\x9c\x5e\x31\x32\ -\x42\x11\x39\x73\x38\x10\x91\x88\x78\x43\x15\x4f\xf7\xc7\xfd\x13\ -\xd6\x5e\xb1\x29\x50\xb5\x6c\xcc\x15\x5d\xb5\x2e\x5f\xc2\x5c\xb1\ -\xea\x82\x13\xfc\x6b\x23\x31\x4b\x0f\xb0\x04\xc0\x61\x01\x2b\x60\ -\x4c\x08\xda\x21\x5e\xe7\x30\x55\x10\xc1\xfd\xe4\xef\x37\x09\xbf\ -\x9f\x1a\xb0\x12\x6e\x49\xd4\x5d\x69\x89\xd8\xcc\x68\xe2\xf8\x4c\ -\x11\xe3\x33\x05\xf4\x76\x67\xd1\xc3\x18\xd9\x3d\x61\x47\x04\x3b\ -\x3a\xb2\x58\xb7\x76\x14\x6d\x6d\x29\x5c\xb8\x34\x89\x4a\xb8\xdb\ -\x4d\x1b\x80\x3b\x01\x6c\x84\xe3\x76\x33\xd9\x88\xdd\x6a\xc5\x00\ -\x55\x9f\xcb\xa8\xc4\x04\xe3\x1a\x63\x3a\xa0\x61\x49\xd2\x01\x7f\ -\xc2\xaa\x02\x60\x8e\xb9\x07\x57\x63\xb3\xe2\x1e\x52\x0e\x84\xfc\ -\x60\x1e\x54\x84\x34\xa6\xee\x33\xa2\x1a\x21\xbd\xbc\x11\x9d\xe6\ -\x4e\x15\xec\x86\x5f\x51\x41\x43\x7f\x62\x09\x3f\x4d\xd1\xeb\x67\ -\xcd\xb2\x31\x5f\xae\x61\xda\x05\xa7\xbc\xa7\xd6\x51\x41\xad\xe3\ -\x2e\x98\x5a\x15\x16\x19\x96\x52\x6d\xd7\xb1\x5d\xa6\x51\xe1\x60\ -\xa5\x4f\xa3\x03\x2b\xf1\x8e\x36\x7b\x24\xb0\x51\xb1\x29\xc5\xcc\ -\x7c\x19\x67\xc6\xe7\x91\x6d\x4b\xa3\xb7\xdb\x5d\x2e\x46\xe5\x36\ -\x46\x80\xf6\xb6\x36\xac\x1d\x1d\x41\x6f\xae\x13\x17\x2e\x4d\xa2\ -\x58\x2a\x47\xb9\xdd\x5c\x0f\x67\x13\x89\xb7\x01\x9c\xae\x17\xac\ -\x56\x0c\x50\xf5\x6b\x56\xf8\x9c\x98\x29\x62\x7c\xb6\xe8\x5f\xc8\ -\x20\x46\x48\x1b\x07\xb4\x14\x0f\x5e\xf8\x7c\x29\x06\xa8\x22\xd9\ -\x13\xa4\x87\x99\x65\x5e\xe2\xcb\xc6\x81\xa8\x08\x64\xe2\x8b\x20\ -\x19\x70\xd9\x8c\x7a\x56\xe5\xcd\x23\x62\xac\x34\xf1\x45\xc2\x33\ -\x9e\xfe\x7a\x51\x96\x45\x51\x28\xd7\x30\x33\x5f\xc1\xe4\x5c\x19\ -\xb3\x0b\x65\x1e\x9c\x54\x6d\x90\xd8\x14\x03\x58\xc2\x05\x23\xda\ -\x6b\xa8\x60\x57\xd2\xdc\xa9\x28\xb0\x0a\x4f\x13\x65\x9f\x94\xc0\ -\x8a\x63\x5d\xf5\x5d\xf6\x66\x08\x21\x04\xa5\x8a\x85\x73\x93\xf3\ -\xa0\x00\x7a\xbb\xdb\x99\x38\xa6\x6d\x8e\xf7\x17\xd2\xde\xda\x56\ -\x43\xfd\x18\x9f\x9c\x46\x7e\xae\x10\x05\xb6\xeb\x01\x7c\x10\xc0\ -\x59\x00\x87\x73\x63\x9b\x69\x5c\xb0\x5a\xd1\x40\x05\x28\x46\xfd\ -\x20\xde\xf4\xb8\xa0\xa5\x7a\xa0\x21\x3d\x88\xba\x38\x15\x98\x98\ -\x01\x58\xf4\x86\x0f\xfe\xcb\xc5\x37\x81\xeb\x23\x11\xca\x54\xd1\ -\x2e\xe9\xf2\xe8\xe2\x22\x42\xc3\xc5\x29\x98\x82\xc0\xb2\x1d\x70\ -\x72\x26\x60\x3a\x93\x0f\x8b\xe5\x5a\x30\x5a\xa7\x68\x4f\x60\x87\ -\xe2\x1b\xa7\x62\x59\x3a\xc0\x62\x4e\x95\x13\x30\xbd\xbb\xc4\x6a\ -\x66\xec\xf5\x65\x8d\xec\xe1\x60\x15\x71\x5f\xd9\xf6\x73\x57\x94\ -\xff\x7a\x2d\x2d\x58\x01\xd5\x1a\xc5\xc5\xe9\x02\xaa\x35\x1b\x03\ -\xb9\x0e\x10\x42\x50\xb3\x1c\xdb\x20\x61\xae\x83\x33\x22\x98\x42\ -\x7f\x7f\x3f\xd6\x8e\x0e\x21\x9f\x9f\xc3\xd4\x74\xe4\xda\x56\x43\ -\x00\x3e\x02\xa0\x00\x67\x99\xe3\x5a\x1c\xb0\x5a\x11\x40\x75\x5b\ -\x08\x50\x8d\xcf\x16\x31\xee\x8e\xfa\x29\xd9\x42\x0c\xd0\xf2\x1e\ -\x42\xee\xa1\x53\x3c\xc4\x2a\x56\xe5\xbf\x30\x4c\xa1\x51\x6a\x81\ -\x8a\x49\x89\xac\xd0\xd4\x6e\xc5\xd6\x27\x9d\xab\xd2\xa9\x2f\x87\ -\x00\x70\x44\x9d\x28\x4c\xdc\xe4\x96\x4d\x51\xaa\x58\xc8\x2f\x94\ -\xfd\x99\xe1\x05\x17\x9c\xa8\xd7\x78\xe6\xcf\x63\x42\x52\x8d\x1e\ -\x68\x41\x03\x5a\x4c\x7b\x45\x95\x50\x65\xbf\x52\x83\x9b\xde\x3e\ -\xa8\x1b\x3c\xe1\xef\x71\xc4\xfd\xe6\xa6\xac\xc8\x0c\x7b\x29\xed\ -\x55\xdc\xa5\x26\x8e\x2a\x38\x3e\x53\xc0\x7c\xa9\x8a\xa1\xbe\x0e\ -\xb4\xb7\xa5\xdd\x15\x21\x6c\x58\x9c\x4a\xee\x38\x53\xe7\x72\x39\ -\xac\x5f\x37\x82\x72\xb9\x8c\x4b\x13\xd3\xb0\xc3\xb7\x94\xcf\xc1\ -\xd9\xed\xa6\x13\x8e\xdb\x4d\xc9\x14\xac\x56\x0e\x50\xf5\xea\x18\ -\x55\x01\x13\x33\x45\x89\xed\xc4\x05\x2d\x22\x3e\x60\x9a\x49\x7e\ -\xde\xcc\x5f\x29\x4e\xc3\x8c\x58\x1f\x30\x08\xf1\xec\x43\x1e\x9c\ -\x43\xdb\x17\xd5\x03\x2d\xf6\x49\x04\x2b\x3f\x34\x82\x45\x8a\xc0\ -\x44\xb4\x89\x85\x30\x06\x59\x3c\x70\x9a\x75\xe7\x3a\xcd\xb8\xb3\ -\xc3\x6b\x2e\x38\x71\xd8\x24\x67\xd7\x02\x17\x5b\x97\x96\x65\x31\ -\x27\x2a\xc0\x12\xab\x90\x3f\x04\x21\x46\xf6\x18\x60\x25\x3e\x2f\ -\x7c\x98\xd0\x1e\xb6\x1d\x8a\xb6\x2e\xa5\x4c\xbb\x73\xd5\xfa\x73\ -\x1d\xe8\xee\x6c\xf3\x97\xac\xf1\x96\xb1\xf1\x9c\xf3\x53\x29\x82\ -\xce\xae\x4e\x8c\xad\x5d\x8d\x14\xa1\xb8\x10\xed\x76\x93\x05\xf0\ -\x5e\x00\xfd\x00\x76\x98\x4e\x5f\x58\x31\x40\xd5\xd7\xab\x5e\xe1\ -\x93\x65\x54\x80\xfc\x92\x03\x9a\x77\x4c\x7c\xc1\x09\xfb\x2b\x80\ -\x0f\x09\x4a\x56\xdb\x17\xf8\xaf\xa4\xf6\x2b\xab\x7b\xc8\xd9\x34\ -\x4c\x39\x12\xf3\x82\xfc\x20\x2b\x87\xe4\xb9\x9e\x6b\x54\x0a\xaf\ -\x33\x2a\xe3\xbb\x26\xb9\x4a\x2c\x9b\xa2\x5c\xb1\x90\x77\x77\x46\ -\xf1\xd4\xba\x9a\x45\xdd\xb9\x38\xfc\xbf\x00\x71\xc0\xfd\x89\xe0\ -\xe5\x77\x46\x35\x15\x21\x04\xb0\xd8\x0b\xa8\xfc\x60\x48\xd7\x2d\ -\x04\xac\xd8\xfb\xa4\x05\x2b\x3e\x6d\xd8\x07\x8c\x57\xfd\x08\xdf\ -\x0e\xae\xad\x06\x37\x64\x11\x64\xae\x50\xc5\xa5\xe9\x02\x72\x9d\ -\xed\xe8\xeb\xce\xfa\xe1\xd4\x75\xf6\x0e\x66\xc0\x03\x1d\xd9\x2c\ -\xd6\xad\x1d\x41\x77\x67\x16\xe7\x2f\x4d\xa0\x5c\x8e\x74\xbb\xb9\ -\x09\xc0\x49\x38\x73\xad\x22\x0d\xec\x2b\x68\x17\x1a\x7e\x59\x57\ -\x9d\xe7\x7d\xb0\xcd\x7b\xb0\x62\x59\xb0\x70\x19\xa4\x32\xbc\x65\ -\x3c\x82\xa5\x6a\x29\x82\x10\x61\xbd\x25\xc2\xa4\xf3\x51\x13\x10\ -\x27\x9e\xb0\xa3\xef\xdc\xf6\x4c\x90\x8f\x83\x32\xe4\xb5\xb7\x21\ -\xe6\x55\xdc\x78\x71\xe1\x38\x67\x67\x1d\x5e\x81\x52\xaf\x07\x05\ -\x10\x4a\x41\xb8\xad\x78\xa8\x32\x35\x8b\x85\x36\xdc\xa9\x04\xa5\ -\x2a\xc6\xf3\x25\x9c\x9b\x5a\xc0\xb9\xe9\x82\xb3\x39\xa6\x67\x14\ -\xf7\x40\x42\x41\x9b\x82\xd3\x70\xf0\x52\x81\x96\x8a\x65\x89\x80\ -\x15\xaa\x0e\x6a\x55\x41\x11\xac\x34\x1f\x15\x25\x58\xc9\x69\x39\ -\x40\x54\x80\x95\xe2\xd0\x6f\x2b\x1b\xb2\xd4\x42\x88\xc3\xac\x76\ -\xed\x3f\x87\x43\xa7\xa7\xfd\x49\xb6\x9e\x50\xea\x8c\xdc\x96\xdd\ -\x15\x28\xda\xda\xdb\x71\xe7\x1d\x37\xe3\xfe\x4f\x7e\x10\xab\x87\ -\xfa\xa3\xa6\x02\x77\x01\xf8\x1c\x9c\xd5\x17\x22\x65\xc5\xac\x47\ -\x05\xc8\x4b\x2c\x51\xf5\x7b\xc5\xa4\x0f\x16\x04\xf2\x1e\x1f\x16\ -\x44\x38\xa5\x8b\x7a\x3f\xcc\x83\xe6\xae\xc7\x47\xbc\x38\xca\xaa\ -\x56\xc4\x5f\x1f\x8a\x7a\x0f\x9d\x9f\x9e\x79\x0a\x29\x40\xbd\x87\ -\x97\x06\x79\x79\x61\x91\xcd\x3d\x27\x6c\xfa\xa0\x8d\xd2\x62\x79\ -\x14\xa0\xec\x42\x6d\x70\x1b\x25\x94\xaf\x9c\x4d\x1c\xf5\x62\xb8\ -\x6d\xb0\x28\x45\xb5\xea\xb8\x66\x94\x2a\x35\x94\xab\x16\x6a\x16\ -\x65\x46\xea\x74\x25\x78\x9d\x80\x7f\xed\xf9\x10\x37\x15\x37\x1b\ -\xd4\xbb\x04\x54\x8a\xf7\x6d\x5b\x80\x0b\xb0\xec\xe5\xf2\xae\x4f\ -\xb0\x2a\x82\xbf\xe6\x39\x71\xe0\x3c\x58\xc5\x85\xf8\xae\x3a\x84\ -\xb0\x6b\x98\x51\xdf\xf5\x8d\x80\x38\xbb\x35\xbb\x33\xb4\xa9\x93\ -\xd0\x4d\x2f\xc6\x07\xc7\x5e\xa1\x84\x52\x66\x6d\x2c\xb7\x8d\xd4\ -\x7b\xbe\x18\x3b\x9d\xb7\xda\x1d\xa3\x2d\x78\x7e\x7a\x11\xdb\x5a\ -\x2d\x8a\x10\x02\x2c\x94\xaa\x38\x37\x31\x8f\x2b\x47\x7b\x91\x4d\ -\xa9\x95\x30\xcb\xa6\x80\x4d\x91\x4a\xa5\x30\xb6\x6e\x0d\x46\x86\ -\x07\x70\x71\x62\x26\x8a\x1e\x76\xc0\x50\xab\x5b\x51\x40\xc5\x2f\ -\x49\x1b\x3c\xd4\xe2\xfd\x54\x5d\x1b\x1d\x68\x11\x22\xae\xb6\xc9\ -\xe4\xe1\xbe\x8e\xc1\x67\x33\x58\xc0\x4e\x88\x13\xda\x25\x28\x77\ -\x6e\x98\x1b\xef\x52\x66\x6f\x1b\x72\xaf\xcd\x1e\x10\x49\xa0\x8c\ -\x60\xf7\x60\x1f\x96\x54\x6c\x4e\x6c\x51\xc8\x64\x4f\xaa\xd9\xc1\ -\x85\x82\x75\xbf\x70\xc0\xa9\x52\x63\x96\x16\x71\x13\x9a\xd9\x53\ -\x82\x8e\x11\x02\xff\xc5\xe7\xee\xa7\x50\x0c\x61\xa8\x25\x0b\x5a\ -\xf5\x02\x16\x07\x44\x0c\x58\x79\x8b\xdf\xf9\xd7\x9e\xba\x20\xe2\ -\xb7\x33\x0a\xac\x20\xa5\x0d\xf0\x2a\x28\x8b\x50\x12\xb4\xc7\xfb\ -\x70\x79\x75\xbb\xb0\x15\x00\x26\x03\xd0\x24\x7c\xcd\xae\x56\x0b\ -\x85\xb3\x3d\xfc\x35\xeb\xfa\x71\xe7\xc6\x11\x64\xdb\xc2\x31\x85\ -\x10\x82\xa9\xa9\x69\x6c\x7b\xfe\x65\xbc\x7d\xf8\x94\xc9\xf3\x71\ -\x1c\x40\xd1\xa4\x2d\x2b\x06\xa8\x54\xeb\x49\x47\xa5\xd5\x5d\x27\ -\xca\x3c\x4a\x5c\x62\x17\x81\x7c\x20\x70\xd1\xc4\x61\x02\xde\x0b\ -\x41\xdc\x97\xd9\xfb\x36\xc2\xff\x42\x06\x31\x0c\xab\x22\x54\x00\ -\x2c\xa6\x6e\xaf\x44\x56\x05\x11\xd3\x48\x7d\x61\x80\x90\x61\x5f\ -\x32\x63\xe2\xf5\x46\xca\xe4\x27\x8a\x24\xb6\xed\x38\xb4\x56\xaa\ -\x36\x4a\x55\x07\x9c\x58\xd6\xe4\x49\xca\x04\x9b\x54\xe2\xd5\x45\ -\xe4\xc0\x80\x3c\xc9\xc0\xe5\xf5\xd1\x04\xb0\x58\x62\xe6\x83\x03\ -\x02\x80\xf4\xd7\x2c\xa7\x41\x5e\x07\xc8\x78\x76\x65\x0e\x56\xea\ -\xb4\x1e\xcb\x06\x55\x80\x15\xdb\x75\x8a\x00\xbc\xfc\x20\xc2\x00\ -\xaa\x8a\x7f\x2e\x8e\x50\x0a\xb4\xb7\xa5\x70\xd3\x95\x43\xb8\xf9\ -\xea\x55\xc8\xb6\xa5\x43\x41\x93\x10\xe0\xdc\xb9\xf3\xd8\xba\xfd\ -\x25\xbc\x73\xea\xbc\x49\x15\x07\x01\x7c\x07\x40\xd5\x64\x75\xd0\ -\x25\x07\xaa\x54\xa6\x03\x76\xad\x64\x96\x58\xa5\xbf\x50\x6f\xcd\ -\x74\x70\xc8\xc4\x52\x7d\x20\x0c\xb4\x18\x8c\x52\xb0\x25\x0a\x1a\ -\xb8\x7c\xb0\x0f\x17\xdb\x1e\xb6\x5d\x5c\x5e\xe6\x21\xf4\xbf\xda\ -\x72\x3d\x5e\x18\x9b\x07\x0c\xd3\x93\x54\x52\xb6\x97\x92\x16\x29\ -\x30\x3a\x4e\xd5\xf5\xe2\x9c\x25\x77\x6b\x2e\x6b\x2a\x57\x6d\x67\ -\x39\x5e\xcb\x86\x6d\x0b\xb3\xc8\x75\xf7\xc2\xd8\x9e\x42\xb9\x1f\ -\x25\xb3\x13\xd4\x5b\x16\xac\xfd\x4b\xcf\xb2\x2c\x0d\x60\x79\x1f\ -\x17\x2d\xbb\x62\x55\x41\x4e\x53\x23\x4a\xb0\xf2\xef\x8d\x08\x56\ -\xcc\xa5\x8e\x06\x2b\xe6\x56\x51\x96\x75\x45\xa8\x80\xec\xb3\xb9\ -\xc8\x58\x45\x29\xd0\xd5\x91\xc1\x1d\xd7\x8d\x60\xe3\xd8\x00\xd2\ -\x29\x12\xbe\x1a\x2b\xa5\x38\x7a\xec\x04\xb6\x6e\x7f\x09\x17\xc7\ -\xa7\x4d\x98\xd4\x21\x00\xbf\x01\x67\xfd\x2a\x23\x59\x72\xa0\xea\ -\x18\xde\x88\xc2\xb9\x7d\x46\xb3\xdd\x02\x16\x01\x9e\x30\xf8\x80\ -\xc1\xda\x43\xc2\x41\xcb\x67\x2b\xac\x21\x94\x05\x19\x1f\x3c\xd8\ -\x17\x9f\x30\xf5\x32\x46\x52\xd6\x66\x25\x74\xc3\x09\xe3\x0d\x63\ -\xbc\xea\x16\xe4\x0d\x8a\x12\xd4\x45\x9f\x9d\x89\x65\x53\xc5\x1a\ -\xea\x2c\x22\x10\x7f\x27\x15\xdb\xa6\xa8\x5a\xce\x5a\xe1\xd5\x9a\ -\x03\x4c\x1e\x63\xa2\xc2\x75\x90\x49\x8f\xa4\x00\xc7\x10\xc2\xfd\ -\x30\x77\x48\x09\x5e\x32\x68\x09\x2c\x8b\x53\xdd\x35\x80\x25\xaa\ -\x83\xac\xea\x05\x57\xc5\x72\x59\x72\xb8\xdd\x4a\x63\x93\x62\xed\ -\x47\x02\x73\x0a\x46\x44\xa8\xcf\xc0\x38\xb6\xe7\xb7\x29\x42\x05\ -\xf4\x91\x74\x71\x59\x15\xa5\x40\x7f\x4f\x16\x77\x6d\x1a\xc5\x15\ -\xab\x7b\x84\x7b\x26\xdc\x59\x42\x50\xab\xd5\xf0\xe6\xfe\x83\xd8\ -\xbe\x73\x0f\x66\xe7\x16\x4c\x40\xea\x05\x00\xff\xca\xfd\x85\xe9\ -\x5a\xeb\x4b\x0d\x54\xa4\x73\x78\x23\x2d\x9c\xdb\x67\x9c\x81\xd5\ -\x12\x88\x18\x06\xe6\xa1\x0f\x01\x2d\x2f\x8f\x7f\x4c\x19\xd0\xe1\ -\x0c\xcf\x24\x30\x90\xb3\x15\xb1\x5f\x79\xef\xab\xca\x15\x2c\x1b\ -\x9c\x82\x32\x18\xb0\xa3\x0c\x88\x29\x41\x92\xef\x35\x6f\xcc\x87\ -\x74\x4c\x5d\xf6\x60\x51\x0a\xcb\x72\x1c\x4f\xbd\x8d\x0c\x6a\x96\ -\xed\xcf\x7f\x11\x41\x57\x9e\x00\xaf\xb7\x6b\xc9\x77\xd0\xe4\x66\ -\xa9\x92\x07\x2a\xab\x9f\x98\xaa\x40\x8b\x67\x59\x22\x60\x29\x55\ -\x42\x51\x1d\x74\x3f\x4c\x2c\x10\xb1\xaa\x60\x14\x58\x81\xb0\xf5\ -\x51\x2e\x6d\x60\xa7\x62\xd5\x3c\x91\x4d\x05\xc6\x75\x95\x0a\xe8\ -\x0f\xc8\x68\x54\xc0\xc5\x34\xac\x8f\xae\xea\xc6\xdd\xd7\x8f\x62\ -\xa4\xbf\x33\x14\x1e\x09\x21\x28\x97\x4a\x78\xe9\x95\x7d\x78\xf1\ -\xd5\x37\xa3\xb6\xda\x02\x00\x0b\xc0\x43\x00\x7e\x13\xc0\x61\xc0\ -\x1c\xa4\x80\xa5\x03\x2a\xbf\x47\xeb\x3f\xfe\x31\x4c\xee\xfb\xc7\ -\xba\x0a\xa1\x8a\x13\xe5\xa8\x9e\x08\x5a\x4a\x20\x10\x2d\xba\x2e\ -\x63\x61\xd9\x0d\xf1\x9f\x59\xef\xfb\xe7\x26\x0d\x10\x8c\xb3\x59\ -\x11\xc6\x66\xc5\xc4\x39\x35\xb2\xb6\x2e\xf0\xf5\xb3\xba\x27\x43\ -\xfc\xfc\xf7\x96\x06\xfb\xc6\x59\xae\x6d\xc9\xdb\x5b\xae\x66\x39\ -\xe7\xc1\x9e\x74\xec\xb5\x20\xbe\x8a\x24\x3d\x52\x51\xe0\x44\x94\ -\x87\xda\x90\xa0\x1f\x8a\x7b\xc5\x04\xa8\x81\x8b\x07\x2d\xce\xbe\ -\xe6\x52\x68\x51\x25\x14\x01\x8b\x65\x57\xac\x8a\xa7\x52\x05\xa3\ -\xc0\x8a\x53\xed\x18\x55\x4c\x05\x56\x9c\x29\x3d\xcc\xb8\xce\xa8\ -\x80\x9c\x7d\x60\x89\x54\x40\x42\x80\x0d\xa3\x7d\xd8\xbc\x69\x35\ -\xfa\xba\xdb\x23\xec\x51\x04\x73\x73\x73\x78\x6e\xe7\x2b\xd8\xbb\ -\xff\x48\xd4\x04\x4f\xc0\x31\x98\x7f\x17\xc0\x1f\x01\xb8\x58\xcf\ -\x8e\x35\x4b\x01\x54\x6c\x8f\xc8\xa3\x5f\x00\x5d\xf7\x0d\x76\x3c\ -\x5f\x16\xdb\xa6\x28\x96\x6b\xce\x0b\x46\x00\x6f\x89\x55\xc7\x17\ -\xc9\x79\x31\x53\xfe\x8c\x64\xf5\xec\xec\xa0\xf2\xe0\x9b\xc5\xa9\ -\x55\x94\xfa\x54\x9c\x63\x49\xec\xd6\x56\xf2\xb8\x60\x60\x39\x52\ -\xda\xcf\x00\x0d\x2a\x48\xaa\x9f\xaf\x96\x00\x80\x0d\xd8\xee\xcb\ -\x6a\x83\xfa\xb3\x81\x2d\x9b\xa2\x66\xdb\xb0\x2d\xef\xd8\xdb\x63\ -\x8e\xdb\xf8\x4b\x66\x5d\x2c\x7b\x92\xee\x84\x66\xc2\xa7\x94\x3e\ -\xbe\xd2\x17\x9a\x9b\x50\xe5\x87\xc6\x87\xfe\x80\xee\xf2\xcc\xd9\ -\x6b\xb3\x16\xb0\x02\x10\x02\xc0\x4c\x0d\x61\xd8\x95\x38\x0a\x67\ -\x0a\x56\xde\xf5\xe5\xf6\x07\x24\x7e\x1b\xfd\x27\x2b\xca\x5e\xc5\ -\xde\x76\xc1\x5e\xb5\xd8\x2a\x20\x05\x90\x49\x11\x5c\x7f\xc5\x20\ -\x6e\xbb\x76\x18\x9d\xd9\x4c\x24\x48\x8d\x8f\x4f\x60\xeb\xf6\xdd\ -\x38\x72\xec\xb4\x6c\xda\x90\x65\x1a\xc0\xd7\x01\xfc\x25\x80\xb9\ -\x7a\xb7\xd5\x5a\x6c\xa0\x22\xe2\x6f\x9a\x10\xac\x7e\xef\x3f\x0b\ -\x7d\x0d\x6c\xea\x18\x7d\xfd\x87\x87\xf9\x6f\x7a\xae\x84\xf1\x99\ -\x82\xb3\x89\x63\x8a\x20\x45\x52\xee\xaf\xb3\x86\x0e\x71\x37\x77\ -\x4c\x11\x67\x01\xb0\x54\x2a\x05\x42\x68\x00\x6c\xbe\xf9\x87\x80\ -\x53\xfa\x3c\xf5\x40\x7c\xe1\x85\xee\xb0\x54\xdd\x4b\x41\xd9\x97\ -\x86\x39\x0e\x58\x18\x05\xe0\x6d\x68\x09\x7f\x63\x4b\xdb\xa6\xb0\ -\xa8\xd3\x5f\xea\x87\x79\xa9\x85\xa1\x75\xee\x3a\x30\x70\x63\x04\ -\x50\x1a\xf6\x14\xda\x57\x3e\x28\x2e\x6c\xc9\xa0\x24\xce\x36\xe7\ -\xf7\xc9\x0b\x30\x9c\xe1\xa0\x9c\x2d\xca\x2d\x43\x02\x2c\x86\x5d\ -\xb1\xe4\x84\x65\x57\xf5\x82\x15\x33\x1a\xe7\xab\x65\x08\x1f\x09\ -\x54\xda\xab\x34\x2a\x20\x37\x38\xa3\x08\x6a\x36\xab\xa2\x14\xe8\ -\x68\x4f\xe3\xd6\x6b\x86\x71\xc3\x86\x41\xb4\xa5\x53\x91\xe5\x9f\ -\x3c\x79\x1a\x4f\x6f\xdf\x8d\x33\xe7\xc6\x4d\xec\x51\xa7\x00\xfc\ -\x6b\x00\x7f\x0f\xc3\xd1\x3d\x9d\x2c\x16\x50\x11\xc5\x31\xf3\x1b\ -\xef\xea\x53\xe6\x3f\x67\xbe\x8f\x0d\x85\xa9\xc7\x29\x9c\x61\x0d\ -\x9e\x9f\x9e\xb7\xe9\xa3\xf3\xeb\x31\xb4\x80\xa5\x11\x38\xc0\x06\ -\x17\xe0\xd8\x38\xf6\xf1\x51\x33\xb7\x80\x1a\x79\xe0\xe2\xb5\x97\ -\x05\x1b\x9d\xda\x2a\xae\xc2\xc0\xdb\x92\x04\x08\x61\x19\x51\xbd\ -\x00\x15\x06\x4e\xc4\x04\x90\xa2\x52\x50\x39\x15\x61\x63\x20\x03\ -\x97\x12\xb4\x3c\x96\xa5\x00\x2c\x96\xf1\xf8\x6c\x8a\x70\xc6\xf6\ -\x48\xb0\x82\x08\x46\xf5\x81\x15\xd7\x1e\x95\xbd\x2a\x44\x05\x64\ -\x4d\x06\x94\x9d\xa8\xd5\x02\x56\x45\x29\x45\x4f\x57\x3b\xde\xb3\ -\x69\x35\xae\x5e\xd3\xe7\xcf\x27\x54\xde\x61\x42\x60\x5b\x16\xde\ -\x3e\x74\x14\xcf\xee\x78\x05\x93\xd3\x79\x13\x90\xda\x07\xc7\x68\ -\xbe\x15\x00\x6d\x74\x83\xd2\xc5\x00\xaa\x08\x90\x82\x6e\xec\xbd\ -\xe1\xca\x00\xef\x0b\xc4\x18\x90\x29\x05\x25\x14\x96\xad\x59\x25\ -\x41\x62\x2b\x8c\xff\x9f\xe0\x84\xaa\x4c\xc3\xa8\x71\x7e\xd9\x60\ -\x00\x93\x65\x25\x0a\x7f\x40\x33\x07\x58\x26\x0d\x77\xee\x17\xc4\ -\x5f\x0b\x95\x8a\x47\x98\xf4\xc2\xc5\x0b\xb5\x41\xc5\x66\x55\x44\ -\x09\xca\x01\x07\x0d\x0a\x0a\x3e\x40\xcc\x2c\x33\x06\x95\xb4\x80\ -\x65\xc0\xae\xb4\x60\x85\x30\x30\x52\x81\x15\xcb\x6c\x02\x10\x91\ -\x55\x3f\x8d\xbd\x2a\x4c\x05\x64\x28\x93\x8e\x4d\x35\x83\x55\x51\ -\x0a\x0c\xf5\x75\xe1\xee\x1b\x46\xb1\x66\x55\xb8\x07\x0b\x21\x04\ -\xd5\x6a\x05\x7b\x5e\xdf\x8f\x9d\x2f\xee\xc5\x7c\xf8\x6e\x34\xde\ -\x1d\x7c\x06\x0e\x48\xed\x05\xe2\x19\xcd\x75\xd2\x6a\xa0\x12\x41\ -\x2a\x0c\xb4\x5a\xdb\x10\x22\xfc\xba\xff\x71\x2f\xbe\x94\x86\x05\ -\x1d\x01\xd8\xfc\x74\x8a\x34\x6c\x1c\x73\x1c\x06\x52\x2a\xb0\x0b\ -\xa2\xc2\x41\xaa\x19\x00\xa5\x04\x27\x2d\x70\xc5\xbc\xf6\xca\x13\ -\xc2\x00\x93\x73\xc0\xf6\xcf\x8b\x0b\xfa\xc9\xba\xb7\xb8\xf9\x5d\ -\x3d\x3b\x00\x35\x28\xd9\x15\x3b\x77\xca\x49\xe7\xaa\xf9\xbe\x0d\ -\xdb\x1c\xac\x7c\x55\xce\x27\x50\x8c\x0a\x17\x62\xaf\x32\x55\x01\ -\x7d\x20\x52\x4d\x7f\x67\xea\x6f\x44\xd6\x8f\xe4\x70\xd7\xf5\xa3\ -\x18\xec\xed\x88\xb4\x47\x15\x0a\x05\xec\x7a\xf1\x35\xbc\xb2\xf7\ -\x6d\x54\xc2\xf7\xf7\x03\x80\x0a\x80\xff\x0e\xe0\x77\xe1\xa8\x7d\ -\x4d\x01\x29\xa0\xb5\x40\xa5\x03\x29\xa2\x49\xd3\x62\x11\xaa\xe5\ -\x11\xc5\x7f\xf8\x83\x46\x6a\x00\x88\x47\x10\xbe\x28\xae\xaa\x56\ -\x81\x94\x5e\xd5\x13\xd5\xbc\x50\x80\xd2\x81\x53\x50\x65\xe4\xe5\ -\x54\xaa\x8b\x9c\xd0\xe0\x7f\xdd\x54\x05\x1f\x98\x78\x84\xf2\xe2\ -\x24\x96\x25\x02\x16\x09\x6c\x81\xfe\x3b\x2d\xb0\x2b\xb5\x2a\xe8\ -\x5e\x33\x4a\x65\xb0\x82\xde\x66\xa5\x9c\x63\xc5\x61\x0a\x51\xda\ -\xab\x54\x2a\xa0\xd7\x68\xad\x0a\x08\xd6\xaa\xd9\xd8\x74\x05\x8a\ -\xc0\x1d\xe6\x3d\x1b\x47\xfc\xa5\x5b\xb4\xb7\x97\x10\x4c\x4f\x4f\ -\x63\xdb\x8e\x97\x71\xe0\xd0\x3b\xb0\x2c\x1a\x05\x52\xf3\x00\xbe\ -\x0d\x6a\xff\x29\x08\x99\xba\xb0\xfb\xaf\x62\xb5\x2f\x4a\x5a\x05\ -\x54\x24\xe2\x57\x08\xa3\x26\xaf\x46\xfd\x8d\xe1\x98\x92\x0c\x3a\ -\x22\xbb\x92\x3c\xde\x15\x2d\x96\xc1\x89\x30\xc9\xf4\x2f\x7c\xd3\ -\x41\x4a\x61\xb7\x92\x96\x3f\x01\x9f\x89\x6f\x96\x02\xe4\x94\xd7\ -\xaf\x9e\x5b\x24\x33\x41\x4f\x82\x81\x06\xf1\x3a\xba\x20\x12\x0b\ -\xb0\x22\xd8\x15\x61\xd2\x71\x06\x74\x70\xaa\x20\x6b\x1b\x52\x1a\ -\xd8\xc1\xaa\x61\x3c\xcb\x09\xb3\x57\xe9\x54\x40\x42\x35\xdc\x48\ -\xd2\xfb\xd0\x10\x89\x0a\xdc\x61\x56\xe1\xe6\xab\x87\x0c\xdd\x61\ -\x2e\x60\xeb\xf6\xdd\xbe\x3b\x4c\xc4\xc7\xeb\x12\x40\xbf\x6a\xd7\ -\xca\xff\xf1\xbe\x1f\x7c\xaf\xf8\xb7\x1b\x9b\xff\x3a\xb7\x02\xa8\ -\x62\x82\xd4\x62\xb0\x2a\xa2\x3e\xe5\x7e\x89\x36\xab\xa4\xf2\x71\ -\x11\x50\xa8\x7c\xe0\xde\x3c\xd1\xc6\xc5\xd6\x59\x0f\x48\xe9\x55\ -\x3d\xfd\x9a\x4b\xb1\x00\x4a\x04\xbb\x88\x4b\xab\x4b\xa9\x63\x52\ -\x62\x7f\x01\x70\x0c\x81\xed\x73\x00\x12\x54\x01\x58\x2c\x08\x41\ -\xcd\xae\x58\xb0\x02\x22\xed\x56\x32\x98\x31\x60\xc5\xda\x90\x24\ -\x15\x31\x40\x1e\x25\xce\x08\x2a\x20\xd8\x7a\x5b\xc8\xaa\x44\x77\ -\x98\x54\x84\x3b\x0c\x40\x71\xf4\xe8\x09\x3c\x6d\xee\x0e\x73\x04\ -\xd4\xfe\xed\x4a\xfe\xfc\x8f\xa6\xde\x7e\xd8\xfa\xdb\x8d\xdf\xf7\ -\xbf\x15\x66\x0f\x90\x99\x34\x1b\xa8\xe2\x82\x54\xcb\xc5\x88\x4d\ -\x71\x20\xa0\x56\xf9\x04\x14\x51\xb2\x2a\xd9\xb9\x98\x05\x22\xb1\ -\x4d\xe6\x20\xa5\xb3\x47\x89\xaa\x26\xcf\xaa\xf8\x36\x73\xfd\x50\ -\x81\x4b\x04\x38\x85\x3f\xaf\xaa\x48\xde\xe6\xc4\xc7\x40\x7a\x8c\ -\xd9\xb9\x6a\x2a\x1f\x4d\x7f\x95\x09\x0e\xb0\xa2\xd9\x55\xa0\x0a\ -\xea\xed\x56\x1c\x58\x79\xa0\xa1\x01\xab\x30\xe3\xba\xd2\x5e\xa5\ -\x51\x01\x63\xb3\xa9\x3a\x58\x95\xca\x1d\x46\x7f\x7f\x09\xac\x5a\ -\x0d\x6f\xc4\x73\x87\x79\x89\x5a\xd5\xdf\x98\x7a\xeb\x47\x3b\xab\ -\x0b\x93\xec\xdd\x6e\x02\x0f\xe4\xa5\x99\x40\x55\x0f\x48\x11\xf7\ -\x8a\xb6\x10\xb4\x4c\xd8\x14\x00\x12\x5e\x04\xcf\x66\x14\x2a\x1f\ -\x0b\x52\x02\x10\xb1\xe9\x44\xc0\x64\x0b\xab\x0f\xa4\x1a\x03\x28\ -\x9d\x5a\x27\x3f\xa3\xe1\xb7\x48\x8c\xa5\x21\xe9\x89\x4f\x81\xbc\ -\xb4\x60\x1e\xe9\xe0\xba\xa9\x58\x96\x6f\x1f\xf2\xce\x01\x85\x8a\ -\xc7\xd8\x8a\xc0\x02\x11\x24\x00\xe2\xc1\x0a\xfe\x2b\xc6\x82\x15\ -\xc7\xe0\x20\xb2\x19\xb6\x52\x16\xb4\x22\x54\xc0\x10\xc3\xba\xcf\ -\x9e\x1a\x60\x55\x14\xc0\xe8\xaa\x2e\xdc\x7d\xfd\x1a\x0c\xf7\x77\ -\x86\xdf\x3b\x42\x50\x2e\x97\xf0\xd2\xcb\x71\xdc\x61\xe8\xa3\x76\ -\xb5\xfc\x5b\x97\xf6\x7c\xff\x20\x9c\x05\x38\x29\x53\x75\x93\x94\ -\xd6\x40\x9a\x05\x54\xf5\x83\x54\x0b\x99\x55\x2c\x36\xe5\x1d\x89\ -\x6c\x4a\x62\x1a\x1a\x95\x4f\xa8\x93\x6f\x87\x9a\xbd\x49\x6d\x69\ -\x22\x48\xf1\xed\x90\x7d\xbe\x55\x00\x15\x06\x4e\x3a\x76\xa4\xbd\ -\xf6\x21\x71\xe2\x77\x89\x05\x2e\x9e\x4d\xb9\xdf\x31\xc6\x9e\xe5\ -\x78\xc1\x04\x3a\x20\xaf\xe2\x81\x5b\xe5\xc0\x53\x05\xd9\x69\x0c\ -\x2a\xb6\x04\x56\xe5\xf2\xd5\x3c\x06\x38\x3c\x8d\x8f\x61\x42\xa2\ -\x71\x9d\x9d\xb9\x6e\xa4\x02\x72\xaf\x30\x0f\x76\x7e\x11\xcc\x6f\ -\x9c\xd7\x9e\x10\xe0\xca\x98\xee\x30\x3b\x76\xbe\x82\xd7\xf7\x1f\ -\x41\xad\x66\x47\x81\x54\x09\xd4\xfe\x5b\xab\x3c\xf7\xd5\xf1\xbd\ -\x7f\x7f\x1e\xc1\x2a\xc1\x4d\xe4\x82\xb2\x34\x03\xa8\x96\x25\x48\ -\x29\x8b\x8f\x6a\x85\x09\xab\x52\x65\x93\xde\x62\xdd\xdc\x2b\x3e\ -\xa3\x08\x8c\x7c\xba\xb8\x20\x65\xc6\xa2\xa2\x01\x8a\x68\xc2\xe3\ -\x5c\xef\xf0\xe7\x92\x2b\x97\xfa\xfc\xc8\x8d\x93\x47\x0a\xbd\xeb\ -\x24\x7a\x26\x38\x80\xc5\xb0\x2b\x6f\x3a\x43\x84\x2a\x48\xdc\x37\ -\x3f\x50\xc1\x04\xb0\xe2\xa6\x37\xf0\x6c\x46\xa5\xb3\x99\xa8\x80\ -\x5e\xe5\x1c\x4b\x52\x18\xd6\xb9\xbc\xcc\x3b\xae\x67\x55\x01\xb8\ -\x53\x0a\x64\xd2\xf1\xdd\x61\x9e\x79\x6e\x37\x0e\x1f\x3b\xad\x70\ -\x86\x97\x64\x96\xda\xd6\x37\x2b\xf9\x73\x7f\x39\x7d\xf0\xd1\x3c\ -\x02\x90\x12\x1b\xdc\x74\xb0\x6a\x14\xa8\x9a\x01\x52\xa4\x09\x80\ -\x2b\x37\x8c\x08\xbf\x7e\x65\x21\x6c\xca\x0b\x57\xcd\x99\xf2\x52\ -\x29\xa9\x53\x88\xca\xc7\x25\x51\xdb\xa5\x78\xd5\x8f\x69\x4d\x23\ -\x20\xa5\x9c\x9e\xa0\x03\x28\x33\x70\x12\x0d\xe0\x61\x29\x75\x42\ -\x59\x04\x12\xdb\xcc\x80\x96\x8a\x65\xf9\x0c\x8b\x9d\x46\x40\x18\ -\x76\x65\xaa\x0a\xb2\xd4\x46\xc0\x1e\x4e\x1d\xf3\x03\xc0\x31\x30\ -\xb5\xea\x45\x82\x36\x88\x2a\xa0\x5f\x2e\x04\x03\x15\xfb\xfe\xd6\ -\xcb\xaa\x5c\xd0\xa5\x2d\x77\x87\x39\x43\xad\xea\x1f\xce\x9f\x79\ -\xf5\xef\x17\xce\xef\xab\x82\x07\x29\x45\x47\x9a\x0b\x56\x8d\x00\ -\x55\x93\x40\x4a\xca\xd3\x24\xd1\xa9\x6b\x51\x2d\x50\x34\x9f\x08\ -\x65\xb0\xd9\x04\x40\xe4\x5a\xa0\xb1\x4b\x49\xc6\x73\x4e\x1d\x34\ -\x07\x29\x79\x52\xa9\x22\x3d\xd3\x0e\x70\xf9\xd8\xda\xd5\x77\xc0\ -\x1c\x98\x62\xdc\x15\xa1\x32\xce\xc6\xc2\x54\x17\xa8\x87\x2c\x00\ -\x05\xfd\x61\x47\xf7\x40\x78\xdb\x95\x4e\x15\x14\xc1\x8a\x57\x03\ -\x35\xeb\x9e\x83\x61\x39\xcc\xab\xe6\xbf\x7d\x8a\xf9\x55\x41\x67\ -\x7c\x3d\x91\xb3\x97\x89\xe0\x55\x1f\xab\xe2\xd9\x54\x4f\x57\x9b\ -\xb9\x3b\x8c\x6d\xe1\xed\x43\xc7\xf0\xec\x73\x2f\x1b\xba\xc3\xd0\ -\xfd\x76\xb5\xf4\xdb\xd3\x07\x1f\x79\xba\xba\x30\xe9\x35\xdd\xbb\ -\x23\x2a\x20\x6a\x3a\x58\xd5\x0b\x54\x44\x73\xbe\x2c\x40\x4a\x66\ -\x51\xaa\x5f\x93\xf9\x54\x9a\x86\x2a\x0c\xe8\x7e\x49\x3e\x70\x29\ -\x98\x9b\x92\x41\x35\x08\x52\x1c\x96\x10\x89\xe8\x71\xe3\x96\x46\ -\x00\x45\x22\x58\x95\x78\x60\x28\x94\xfb\x61\xda\xa4\x06\xad\xc0\ -\xa0\xce\x33\xac\x60\xba\x02\x71\xcf\x99\x11\x38\x88\xac\x29\x50\ -\xb1\xe2\x80\x15\x3b\x12\xe8\xd1\x22\xde\x5e\xc5\xd3\x30\x11\x38\ -\xd4\x6c\x8a\x0d\x8c\xcf\xaa\xb4\xc6\x2e\x0a\x0c\xf5\x75\xe2\xae\ -\xeb\xe3\xb8\xc3\x1c\xc0\xce\xdd\x7b\x31\xbf\x50\x8c\x76\x87\xa1\ -\xf4\x39\xab\x3c\xf7\x5b\xe3\x7b\x7f\xf0\xba\x5b\x73\x18\x48\x85\ -\x81\x15\x84\xf0\x58\x52\x0f\x50\x11\xcd\xb1\x2a\x8d\x0e\x8c\x5a\ -\xc8\xa4\x98\x62\x25\xc4\x89\x40\x30\x13\x36\xa5\x98\xa5\x2e\x4f\ -\x37\xd0\xf7\x54\x65\x3c\xe7\x92\x36\x09\xa4\x22\x59\x94\x70\xe5\ -\x75\x0f\x2c\x0f\x66\x0d\xdc\x2e\xbf\xff\x3c\x62\x71\x4f\xb0\xaf\ -\xda\x05\x31\x12\x60\x79\x36\x2c\x0d\xbb\xf2\xd7\x1b\x03\x8d\x01\ -\x56\xec\xdb\xc5\x83\x95\xff\x56\xb1\x60\x05\xd1\xf0\xce\x20\x28\ -\x07\x36\xc2\x44\x50\x08\xbf\x22\x9b\x0a\x61\x55\xe2\x08\xa0\x27\ -\x63\x23\x39\x6c\xbe\x7e\x14\x83\x3d\xd9\x66\xbb\xc3\x54\x41\xed\ -\xff\x59\x5d\x18\xff\x83\xc9\xfd\x0f\x9e\x84\xb3\x5b\x0c\x3b\xb2\ -\xc7\xde\x59\x13\xd6\xa4\x02\x31\x63\x69\xa5\xea\x17\xc6\xb2\xf8\ -\xe3\xe6\x9b\xa8\x22\x90\xd1\x90\x4d\x85\xb0\x2a\x42\x34\x15\x31\ -\x91\x61\x2a\x9f\x72\x84\x8f\x05\x84\x38\x20\x25\x4d\xf4\x0c\x61\ -\x51\x06\x00\x15\x05\x4e\x44\x7b\x22\x08\x55\x9d\xf2\x68\xce\x02\ -\x17\xa3\x75\x39\x31\x22\x60\xb1\x36\x2c\x6e\xc6\xb8\xf3\x86\xb3\ -\x3b\xe4\x44\xae\x7b\xce\x82\x0b\x33\x45\x80\x41\x25\x69\xb9\x60\ -\xd5\xab\x18\xb0\xa9\x90\x51\x40\x8d\x61\x5d\xfd\xde\xca\xac\x4a\ -\xf5\x9b\x4a\x11\x5c\xb3\xb6\x1f\x77\x5c\x37\x82\xee\xce\x68\xa3\ -\xf9\xf4\xf4\x0c\xb6\xed\x78\x09\x07\x0e\xbd\x03\xdb\x8e\x74\x87\ -\x29\x50\xbb\xf6\x57\xe5\xe9\x13\x7f\x36\x73\x64\xeb\x14\xe4\x91\ -\x3d\xdd\xb1\xe9\x6f\x6c\x89\x0b\x54\x26\x60\xa4\x0b\x0f\x49\xdb\ -\xbc\x79\x54\x3c\x80\xe8\x8c\xdf\x61\x5d\x53\x1c\x2b\xcb\x20\xdc\ -\xff\x3a\x95\x4f\xd5\x73\xa1\x89\x5c\x7d\xbc\xfb\x0e\x9a\x06\x52\ -\x42\x35\x6a\x80\xd2\x80\x93\x39\xa1\x62\xb5\x02\x39\xbd\x7f\xca\ -\xb1\xa9\xe0\xa2\xb0\x8e\xc2\x6c\x7f\x7d\xc0\x72\xfb\xcd\x2e\xb3\ -\x02\xee\x5c\x50\x05\xc3\xd6\x3d\x87\xc8\xa6\x84\x49\x99\xc2\x85\ -\x89\x5e\xdb\x9c\xbf\x8e\x9c\x0a\xc8\xe2\x13\xe2\xb3\x2a\x9f\xc1\ -\xc1\x59\xbf\xac\x2d\x93\xc6\x8d\x57\x0e\xe2\xa6\x2b\x9d\xdd\x61\ -\xec\x10\x94\x22\x84\xe0\xfc\xf9\x0b\x78\x7a\xdb\x6e\xd3\xdd\x61\ -\xc6\xa9\x55\xfe\xd3\xf9\x33\xaf\x7d\x7f\xe1\xfc\xbe\x02\xe4\x91\ -\x3d\xef\xa6\xc5\x55\xf5\x1a\x02\xad\x38\x40\x15\x07\x8c\x10\x91\ -\x96\xfb\xa5\x30\x78\x07\xea\x6e\xa6\x10\xc3\xb1\x25\x22\x9c\x33\ -\xbf\x61\x8d\x26\xea\x5f\x55\x33\xb8\x51\x3e\xbf\x0d\x21\x76\xa9\ -\x7a\x41\x8a\x04\x75\x70\xe9\xa5\xf6\x19\xce\xa9\x52\x5e\x4a\x0e\ -\x7e\x63\xdd\x03\xca\x1e\xb1\x80\x2d\x82\x56\x28\x60\xa9\xd8\x15\ -\x05\x4f\x8e\x62\x6c\xd2\x00\x7e\x8a\x80\xb4\xbd\x55\xc4\x64\x50\ -\x1f\x40\x42\x46\x01\x83\x9b\xc3\x1b\xd6\x8d\x58\x95\xe2\x1a\x76\ -\x75\x64\x70\xfb\xb5\xc3\xb8\x76\x5d\xbf\xef\x0e\xc3\x12\x41\x3e\ -\x9b\xe7\x0e\xb3\xdb\xd0\x1d\x86\x1e\xb3\xab\xc5\x3f\x98\x3e\xf4\ -\xe4\xc3\xd5\xf9\x8b\x16\xd4\x23\x7b\xa6\x80\x13\x07\xc4\x22\xc5\ -\x14\xa8\x1a\x06\x23\xc5\x2f\x9b\xaf\x29\x38\xa5\x37\x41\x99\x34\ -\x5f\x88\x97\x50\x2b\x84\x71\xf9\x49\x58\x60\x08\x57\xf9\xb8\xdc\ -\x3e\x48\x71\x94\x47\x60\x32\x06\x4c\x8b\x6b\xb2\x0c\x52\x6a\xbb\ -\x15\xcb\xe6\x54\x97\x88\x68\xc2\xe3\x49\xc0\xa6\x82\x42\x9c\x97\ -\x8b\xe1\x55\x34\x0a\xb0\x88\x7b\xce\xb2\x2b\xaf\x9f\x75\xee\x28\ -\xc3\xb2\x16\x15\x78\x68\xe6\x57\xe9\x5e\x51\x3f\xca\x84\x4d\x79\ -\xbf\x3a\x56\xc5\x00\x26\x6c\xa0\x3f\x97\xc5\x7b\x36\x8e\x60\xfd\ -\x48\xf4\xee\x30\x56\xad\x86\x37\x0e\xb8\xee\x30\x79\x03\x77\x18\ -\x6a\xbf\x5a\x2b\xe5\x7f\x67\xe2\x8d\x7f\x78\x11\xd4\x66\x6f\x59\ -\x18\x08\x99\xfe\xea\xf2\x23\x24\x0d\x27\xcd\x56\xfd\xc2\xc0\x48\ -\x0c\x6f\x1e\x89\x12\x8b\x0c\xa1\x46\x6a\x36\x45\xc2\xb2\xf0\xbf\ -\x1a\x36\xa5\xec\x8c\x90\x99\x3b\x15\x18\x10\x07\x2f\x1c\x20\x09\ -\x6c\x8c\x6d\xaf\x5f\xbf\x08\x4a\x24\x94\x45\x11\xfe\x3f\x05\x7b\ -\x8a\x06\xa7\x38\x37\x8f\x6a\x32\x3a\xe0\x44\x82\x34\xde\x66\xad\ -\x61\x80\xe5\x5e\x0f\xd1\xdf\x0e\x0c\xb3\x71\xc2\xa3\x76\x94\x61\ -\x47\xd3\x88\x6c\x5c\xf7\x49\x10\xf3\x1e\xa9\x54\x40\x18\x18\xd6\ -\xfd\xbe\xc4\x61\x55\xbc\xac\x1e\xec\xc2\x5d\x9b\x56\x63\xa8\x5f\ -\xbd\x86\x94\xdf\x95\x14\x41\xb9\x54\xc6\x4b\xaf\xec\xc5\x8b\xaf\ -\x18\xb9\xc3\xd8\xd4\xb6\x9e\xac\x2e\x5c\xfa\xbd\xa9\x03\x3f\x3e\ -\xc4\xdc\xa1\x56\xa9\x7a\x51\x20\xa6\x14\x13\xa0\x32\x01\x1d\xd3\ -\xbc\xaa\x32\x48\x2b\xac\xe9\x22\x9b\x32\x55\x5a\x82\x64\xf1\xd8\ -\x54\xa8\x01\xdd\x2f\x92\x57\xf9\xe0\x57\xc3\xb3\x25\x22\xc6\xb1\ -\x4d\x88\x09\x52\x61\x2c\x4a\x0b\x50\x8a\xcb\xc4\xf1\xae\x98\x9f\ -\x98\x80\x4d\xf9\xff\x05\x77\xdc\xeb\xaa\x0b\x36\xa1\x80\x25\xec\ -\x28\x53\x0f\x58\x05\xa3\x81\xec\x48\x9a\xde\xb8\x2e\x39\x11\x87\ -\xbc\x6e\x52\x54\x1c\x56\xe5\xb7\x03\xbe\x11\xdf\x73\x6a\xde\xb0\ -\xba\x17\x77\x5e\x37\x82\xde\xee\x76\xd9\xb7\x8f\x01\x3b\xdf\x1d\ -\xe6\xf9\x57\xf1\xfa\xfe\xc3\x26\xee\x30\x65\x6a\x57\x7f\x50\x9e\ -\x7a\xe7\x6b\x33\x47\x9f\x65\xdd\x61\x1a\x65\x49\x61\x8f\x42\x5d\ -\x2a\x60\x23\x36\x2a\x31\xbc\xde\xdf\xa6\x88\xe8\xd7\x67\x52\xbb\ -\xf7\xba\xaa\x41\x2d\x3e\x9b\x12\xde\xf9\xd0\xde\x72\xcd\xe4\x18\ -\x14\x0b\x52\x7c\x10\xd7\xd6\x98\x20\x15\xce\xa2\xd4\x00\xe5\xa7\ -\x6c\x90\x55\xf1\xa0\xc4\xd4\x2f\x6c\x14\x1a\x84\x6b\x00\x8b\xb8\ -\xe0\xc2\x00\x91\xa7\x0a\xb2\x76\xab\x38\x60\x85\x10\xe3\xba\x18\ -\x61\xbc\x63\x4c\x3d\xac\x4a\x34\xca\x53\x20\x93\x4a\xe1\xba\xf5\ -\xfd\xb8\xf5\xaa\x21\x74\x64\xd3\x01\x18\xb3\x00\xcb\xdc\x6b\x67\ -\x77\x98\x97\x70\xf8\xd8\x29\x13\x77\x98\xbc\x5d\x2b\xff\xc5\xc2\ -\xb9\xd7\xbf\xb3\x70\x6e\xef\x1c\xf8\xe9\x07\xaa\x5b\x1d\x87\x25\ -\x35\x13\xdc\x00\x44\x03\x95\x29\xc8\xc4\x0d\x47\x44\x78\x3c\xd1\ -\xd0\x00\xbe\x72\xc5\x2a\x9d\x26\x3d\x8c\xc1\xa6\xbc\x76\x28\x0d\ -\xe8\x60\xd5\x4b\x7d\x39\x62\x9b\x39\x30\xe1\x22\x63\x80\x54\x0c\ -\x80\x92\x00\x53\xd1\xf3\xf0\x40\x45\x32\xe1\x51\x0c\x80\x8b\x30\ -\xf1\x94\x03\x34\xd5\xf6\x57\xfe\xe8\x1c\xd1\xa8\x82\x7e\x3a\x3d\ -\x58\xc9\xf8\xa3\xb7\x57\x89\x1b\x82\xb2\x2a\xa0\x34\x11\x14\x02\ -\x88\x71\xd3\x15\xe2\xb0\x2a\x02\x1b\x14\xd9\xf6\x34\x6e\xbe\x6a\ -\x15\x36\xad\xef\x47\x5b\x3a\x05\x3b\x84\x7f\x10\x02\x9c\x3c\x79\ -\x06\x4f\x6f\xdb\x8d\xd3\xe7\x2e\x19\xd8\xa3\xe8\x39\xbb\x5a\xf8\ -\x93\x99\x63\xcf\xfe\x43\x65\xf6\x6c\x05\xc1\xea\x07\x61\x00\x13\ -\x05\x36\x3a\x96\x14\x15\x1e\x05\x66\x00\x9a\xe7\xeb\x17\x37\x9c\ -\x18\xa4\x8d\xdd\x08\xb9\xf0\x38\x45\xf3\x4d\xaa\x97\x4d\x71\x60\ -\x18\x06\x76\x24\x48\x23\xb3\xaa\x20\xc0\x07\x39\x0e\x4c\x1a\x07\ -\x29\xd1\x3d\x46\xc5\x9e\x94\x0c\x51\xb8\xa6\x51\x57\x98\x72\x89\ -\x5c\xa8\xa1\xaa\x78\xe2\xb3\x2c\x8e\x61\x29\xd9\x95\x7b\x6d\x54\ -\xaa\x60\x04\x58\x39\x20\x44\x02\x9b\x94\x5b\x33\x15\x98\x8e\x97\ -\x4e\xa7\x02\x4a\x6f\x55\xe8\xeb\xa6\x79\xdf\x15\xe8\x45\x6d\xa0\ -\xa7\xb3\x0d\xb7\x5f\x3b\x82\x2b\x47\x7b\x7c\xf7\x21\xbe\x58\x17\ -\x16\x09\x60\xdb\x36\xde\x3a\x78\x0c\xcf\x6c\x7f\xc9\xcc\x1d\x86\ -\xda\x6f\xd7\x4a\xb3\xbf\x3f\xf5\xd6\x43\xcf\xd8\xd5\x22\x05\xbf\ -\x44\x8b\x49\x8f\xea\x65\x49\xc6\xec\x49\x25\x61\x40\x55\x2f\x9b\ -\x8a\xcf\xbe\x68\xe4\xf3\x6e\x26\xe2\x1b\xcf\xfc\x72\x6c\xc6\x3f\ -\x0f\x99\x1a\xa0\xbd\x1c\xc2\xb1\xe8\x4e\x43\xd4\xb9\x94\xf5\x70\ -\xc9\x05\x00\x63\x6b\x51\x80\x50\x14\x48\x11\xfe\xbf\xf0\x39\x55\ -\x7c\x02\x45\xbd\x42\x7b\x74\x97\x45\x14\xaa\x86\xb5\x60\xe0\x8f\ -\x2a\x40\x4b\x06\x2c\xe2\x66\x52\x2e\x23\x0c\x05\x73\x32\x01\x2b\ -\x8e\x5a\x09\x6f\x5f\x4c\xd5\x2d\x36\xab\x52\xb2\x2b\x27\x70\x55\ -\x5f\x07\xde\xb3\x71\x04\xa3\x03\x5d\xee\x35\x51\xbf\xdb\x29\x42\ -\x50\xa9\x56\xb0\xe7\xb5\xfd\xd8\xf1\xc2\x5e\xcc\x17\xa2\xdd\x61\ -\x28\xb5\x76\x55\xe7\x2e\xfd\xde\xd4\x5b\x3f\xde\xeb\x56\x2b\x3e\ -\xd4\x51\xcc\xa6\x5e\x96\xd4\x30\xab\x6a\xc6\xcc\xf4\x26\xa4\xaf\ -\xdf\x98\x6e\x46\xdd\x62\x32\x2b\x81\x09\x99\xb1\xa9\x88\xe9\x08\ -\x22\x3a\x84\xaa\x7c\x0c\x6e\x70\xc6\x73\xa1\x62\x03\x90\x8a\x64\ -\x51\x5a\x80\x52\x5c\x39\xc5\x65\x0c\xc5\x29\x55\x24\x07\x5e\xc1\ -\xd6\x57\x40\xc0\xb4\x7c\x10\x62\x55\x42\x1f\x10\x9c\x84\xa2\x2a\ -\x68\x0a\x56\x3e\x30\x91\x08\x7b\x95\x97\x34\x84\x4d\x35\x87\x55\ -\x05\x87\xeb\x86\x72\xb8\x73\xe3\x08\x06\x7a\xb2\x4e\x1f\x58\xeb\ -\x3d\x47\xc4\x08\x0a\x0b\x0b\x78\xfe\x85\x3d\x78\xf9\x75\x23\x77\ -\x98\x1a\xb5\x6b\x0f\x95\xa6\xde\xf9\xea\xec\xd1\x67\x4e\x22\xb0\ -\x47\xe9\x46\xf0\x4c\x01\x24\x2e\x4b\xaa\x9b\x55\xe9\x80\xaa\xd9\ -\x6c\x2a\xaa\x9c\x06\x45\x7e\xd1\xe3\xcc\x44\x8f\x32\xa2\xeb\xf2\ -\x85\x5b\xd3\x35\xe5\x85\xb1\x2a\x45\x80\x04\x52\x7e\x79\xf5\x83\ -\x94\x9f\x52\xc6\x3d\xae\x4e\xa9\xbb\xaa\x40\xa3\x2b\xec\x09\x95\ -\xc0\x8b\x1f\xed\x73\xd2\xc8\xfb\xf5\x69\x96\x11\x46\xc4\x68\x9f\ -\xff\x5a\xb0\x3e\x77\x8c\x73\x8b\xc4\x6c\x64\x15\x30\xb8\x7a\x8a\ -\x89\xa0\x9c\x6a\xa8\x5b\x9d\x53\x33\x02\xe8\x15\x4f\x9d\xfb\x78\ -\xf5\xda\x5e\xdc\x7e\xcd\x30\xba\x3a\xf4\xee\x30\xde\x87\x65\x7a\ -\x7a\x06\xcf\x6c\xdf\x8d\xfd\x07\x8f\xc3\x8a\x76\x87\x29\xda\xb5\ -\xf2\x77\x0b\x17\xde\xf8\xd6\xfc\x99\x3d\xac\x3b\x0c\x98\xe6\x89\ -\xc7\xd0\xa4\x61\xcf\xeb\xfd\x35\x2d\x87\x93\x66\xad\x9e\xd0\x48\ -\x9a\xe6\x80\x96\x4e\x77\xe3\x00\x81\x28\x81\x02\xca\x5f\xa2\x2c\ -\x57\x9a\xd5\x2d\x55\x17\xce\xa6\x64\x9e\x12\xa4\xe1\xa7\x29\x88\ -\xc6\x73\xb6\xc8\x38\x20\x25\x02\x56\xd0\x2e\x13\x80\x92\xda\xab\ -\xb9\x5b\x62\xb0\xf2\x5d\xa3\x6c\x1d\xa2\x2d\xca\x0b\x95\x99\x8d\ -\xc7\xae\xd8\x89\x9e\x9e\x2a\x18\x35\x35\x41\x98\x75\x20\xcf\x20\ -\x67\xa6\x01\xa8\xd6\x8f\x62\x67\xad\x1b\x91\x01\xe9\xb5\xe3\x01\ -\x8f\xc5\x05\x0a\x8a\xb6\x4c\x0a\xd7\x5f\x31\x80\x1b\x37\x0c\xa2\ -\x3d\xc3\xae\x21\x25\x63\x08\x21\xc0\xd9\x73\x17\xf0\xd4\xb3\x2f\ -\xe2\xf8\xc9\x73\x61\xb7\xc3\xbb\xc6\x93\x76\xa5\xf0\xe7\xf9\x13\ -\x3b\xff\x73\x69\xea\x1d\xd1\x1d\xc6\x14\x40\x54\x0d\x8a\xea\x7d\ -\xa3\x69\x24\xc9\x68\x0a\x52\x9d\xc7\x65\x53\x71\xd3\xd5\x2d\x3a\ -\xf0\x50\x28\x2f\x11\xdd\x25\x11\x8d\x65\x38\x85\x66\xa4\x2f\xb4\ -\xd3\xcc\x89\x88\xab\x32\x23\x94\x5b\xa5\x74\x75\x69\x36\x48\xa9\ -\x00\x2a\x1a\xa7\x42\xaf\x2a\x1b\xe8\x3f\xa1\x22\x68\x71\x80\xa5\ -\xde\x0d\x99\x80\xf0\xb6\xab\x28\xb0\x82\x30\x7d\x80\x35\x47\x6b\ -\xed\x55\x01\x50\x82\x8d\x65\x40\xcb\x8c\x55\x29\xde\x74\xaf\x9d\ -\x04\xa0\x36\x45\x57\x36\x83\x5b\xae\x5a\x85\x6b\xd6\xf6\x23\x95\ -\x52\x6b\x8b\x81\x8a\x4b\x71\xe4\xe8\x09\x3c\xf9\xec\x6e\x5c\xb8\ -\x34\x65\x62\x34\x3f\x51\x2b\xe5\xff\x78\xe6\xd0\xe3\x8f\xd4\x4a\ -\xb3\x9e\x3b\x4c\x5c\xf6\x24\x86\x37\x9b\x2d\x19\x83\xa2\x89\x31\ -\xdd\x34\x7c\xc9\xc5\x5c\x35\xd1\xcf\x44\x6f\xb8\xbb\x51\x6c\x8a\ -\x73\x22\x56\xb3\x36\x0e\x30\x25\xe3\x39\x53\xb4\x62\xba\xb9\x1e\ -\xa4\x88\x54\x9d\x29\x40\xc9\x57\x80\xc4\x7f\x0a\x5c\x7b\x13\x5b\ -\x9f\x0c\x5a\x3c\x60\xe9\xd9\x95\x21\x58\x31\x4c\xc8\xb7\x49\x69\ -\xed\x55\x3a\x36\xa5\x67\x44\x5a\x62\x20\x00\x9e\xe4\x03\x48\x29\ -\xfa\x72\x59\xdc\x71\xed\x30\xc6\x86\x72\x5e\xcf\xd5\x45\xb9\xee\ -\x30\xfb\xde\x7c\x1b\xcf\xec\x78\xc5\xc8\x1d\x86\x52\xeb\xf5\xea\ -\xfc\xf8\x1f\x4e\xbd\xf5\xe3\xdd\xc1\x5e\x5e\x0d\x4d\x21\x68\xb6\ -\xc4\x05\x4a\x09\xa8\xe2\x82\x53\xbd\xec\x2b\xaa\x5c\xf3\xee\xb2\ -\x4f\xbe\x82\x9e\x04\x18\x40\xb8\x73\xb9\x15\x3a\x95\x8d\x05\x06\ -\xef\x97\x67\x38\xea\x79\x53\x2a\x36\xc5\xa3\x0d\xd7\x36\x3f\x56\ -\xad\xf2\x01\xea\xba\xb8\x76\x30\xf5\xa8\x40\x4a\xc9\xa2\x4c\x01\ -\x4a\x64\x62\xf5\xdc\x2b\x30\x2b\x4f\x8a\x9b\x85\xba\x07\x2c\x60\ -\xa9\xd8\x95\x31\x58\xf9\x23\x6f\x8c\xea\x07\xde\xb8\xce\xad\xed\ -\xa4\x71\x6b\x51\x83\x97\xf8\x1b\xe4\x15\xb7\x68\x57\xc9\xc8\x40\ -\x27\xee\xbc\x6e\x04\x43\xbd\x11\xee\x30\x24\x85\x72\xa9\x88\x17\ -\x5e\xda\x8b\x5d\x2f\xbd\x81\x62\xa9\x6c\xe0\x0e\x53\x7b\xa6\x3c\ -\x7d\xf2\x8f\x66\x8e\x3c\x7d\x08\xfa\xa9\x07\x6c\x35\xf5\x86\x37\ -\xcc\x92\xe2\x84\x9b\x1a\xd3\x4d\xc3\xd1\x60\x78\xc3\x52\xbf\xda\ -\x17\xa5\x9b\x1a\x34\x39\x92\x4d\x85\x30\x38\x45\x84\x6e\x61\x3e\ -\x36\x5d\x3d\x20\xc5\xba\xe8\xb0\xf5\xc8\x00\x25\xe4\x8d\x79\x39\ -\x7c\xa1\x8a\x6c\xc4\x05\x2d\x2d\x60\xa9\xd9\x55\x24\x58\x41\x8e\ -\x97\x8d\xeb\x60\xd8\x14\xaf\x02\x8a\x9b\x2f\x84\xdb\x99\xf8\x7e\ -\xc9\x6f\x25\xcb\xe0\x9c\xb2\xd7\xaf\xee\xc1\xed\xd7\x0c\xa1\xa7\ -\xab\x8d\x61\x7d\x6c\x83\x82\x76\xcd\xe5\xe7\xb0\x6d\xc7\x4b\x78\ -\xed\x8d\x43\xa8\xd6\xac\x28\x90\xaa\xd8\xb5\xf2\x3f\x14\x2e\x1d\ -\xf8\xb3\xf9\x53\x2f\x9f\x47\x30\xb2\xd7\xa8\xfa\xd5\x54\xc0\xa9\ -\xa3\x3e\x00\xad\xdd\x29\x39\x4e\x78\x63\x1f\x6a\xa3\x6a\x82\xf8\ -\x70\x40\x52\x97\x65\x34\x25\x41\x51\xa6\x9a\xc1\x05\x85\x29\x67\ -\xaf\x43\xad\xf2\x41\x8c\x63\x6b\x92\xb1\x51\x01\x52\xe2\xb2\x30\ -\xdc\x01\x07\x50\x52\xbd\x0a\x00\x35\x16\x37\xb9\xcf\x34\x18\x86\ -\x13\x00\x56\xc0\xb7\xb8\x35\xcf\x3d\x03\xba\x29\x58\xa9\x96\x66\ -\x41\xc0\x9e\xb8\x69\x09\xaa\x76\xea\x54\x41\xef\x97\x63\x53\x0a\ -\x30\xd3\xbc\x6e\x99\xb4\xb3\xd0\xdd\xcd\x57\xad\x42\x47\x7b\x5a\ -\xf2\xd9\xe3\x30\x94\x10\x5c\xba\x34\x8e\xa7\x9e\x7d\x11\x07\x8f\ -\x9c\xf4\xc1\x56\x2f\x74\xce\xae\x14\xff\x6a\xee\xd4\xee\xbf\x29\ -\x4e\x1c\x66\x77\x87\x69\xb5\xc4\x56\xe1\xea\x15\x16\xa8\x9a\xa5\ -\xf6\x89\xe7\xa6\xe1\xf1\x2f\x91\xea\x54\xa9\xfe\x29\xd4\x3e\x11\ -\x49\x04\x36\x24\xf9\x0e\x82\x8f\xd7\xa2\x9d\x48\x7b\x18\x40\x88\ -\xcc\xa2\xbd\x22\x9a\x85\xf9\xc4\xb6\x72\xa0\x63\x0e\x52\xa1\x0c\ -\x4a\xa1\x6a\x46\xdd\x0b\x5f\xa8\x98\x2c\xb8\x76\x2c\x68\x11\x3f\ -\x8c\xf8\x0c\x8b\xdd\x82\x9d\x55\x05\xa3\xc0\x4a\xf2\xcb\xe3\xec\ -\x55\x41\x73\x55\xeb\x48\x79\xe1\x4a\xc3\x7a\x08\xab\x92\x01\x2d\ -\x60\x77\x36\x05\xb2\x6d\x69\xdc\xb0\x61\x00\x1b\xc7\xfa\x91\x49\ -\x85\xed\x0e\xe3\x94\x70\xe2\xe4\x29\x3c\xb1\xf5\x05\x9c\x3a\x6b\ -\xe4\x0e\x73\xc1\x2a\xe7\xbf\x31\x73\x74\xeb\xff\xa8\xce\x8f\x8b\ -\xbb\xc3\xe8\x9a\xb8\xd8\xe1\xba\x73\xe3\xf0\x38\xc6\xf4\xb8\x6a\ -\xdf\xe2\x0a\x31\x0a\xd2\xc6\xd6\x83\x9e\xa1\x6c\x4a\xf3\xc2\xeb\ -\x67\xb2\xeb\xd8\x14\xcb\x6e\x88\x54\x1e\xd7\x06\x6d\xd1\x0a\x75\ -\x50\x97\x86\x29\x9f\x68\x2e\xaa\xf1\x35\x62\x12\x52\xe1\xc0\xb7\ -\x46\x11\x1e\xb0\xa8\xef\xff\x27\xb2\x2b\x33\xb0\xf2\xc1\x86\xa1\ -\x55\xd2\x0e\xc7\xaa\xd7\x42\x78\xd5\x74\xfa\x92\x88\x5f\x60\xeb\ -\x12\x58\x15\x05\x90\xeb\x6c\xc3\xad\x57\x0f\x61\xc3\xea\x1e\x1e\ -\xeb\x44\x10\x05\x40\x2d\x1b\x6f\xbd\x7d\x04\x4f\x6d\xdb\x8d\x89\ -\xa9\x59\x03\xa3\xb9\x7d\xa8\xb6\x30\xfe\x6f\xa6\xde\x7e\x74\x1b\ -\xb5\x2a\x36\xe4\x9e\x35\xaa\xa6\x45\x85\xc7\x79\x12\x1a\x9a\x02\ -\x61\x32\x3d\xa1\x19\xd2\x52\x30\x23\x82\xa1\x97\x3f\x53\x37\xa3\ -\x2e\xb5\x4f\x54\xb9\x42\x7b\x45\xd4\x65\xe9\x52\x19\x20\x25\x4f\ -\xe6\x84\x25\x63\x38\x90\x22\x32\x00\x29\x59\x97\x90\xc6\x2f\x4a\ -\xa6\xab\x6a\x58\x57\x74\x46\x3b\x10\x46\xb9\xac\x81\xba\xc7\x00\ -\x16\x0d\x4a\x56\xed\xc3\x17\x05\x56\x81\x41\x5b\x20\x41\x0c\x42\ -\x48\x2a\xa0\x60\x58\x37\x67\x55\xe0\xeb\x82\xfc\xe6\x0d\xf6\x64\ -\x71\xfb\xb5\xc3\x58\x3d\xd0\x85\xb0\xf7\x9c\x10\x82\x4a\xb9\x82\ -\x57\xf6\xbc\x89\xed\xbb\xf6\x18\xed\x0e\x43\xed\xda\xee\xca\xec\ -\x99\xaf\x4e\x1f\x7a\x62\x9f\x5b\x2d\xfb\x04\x2d\x25\x08\x35\x43\ -\xa4\x32\x9b\x6d\xa3\x32\x65\x5b\x42\x78\xa3\xd7\x29\xa2\x3a\x22\ -\xbc\xcf\x11\x3a\x98\x56\xed\x8b\xea\xa5\xce\x77\x50\x51\x2f\xef\ -\xce\xa2\xb0\x75\x09\x6c\x4a\x5c\xd7\x8a\xad\x97\x67\x72\x2c\xeb\ -\x8a\x9e\x9d\x2e\x6b\xaa\x44\x38\x17\x3a\x29\x82\x5c\xd4\xb5\x71\ -\x25\xd8\x86\xdd\x3f\x83\x1f\x44\x83\xb6\xc9\x3b\xca\x98\x83\x95\ -\xcf\x9d\x08\xe4\x39\x4d\x3e\x68\x41\xcb\xa6\x4c\x57\x3a\xe0\x32\ -\x49\xc7\x8e\xac\x59\xd5\x8d\xdb\xaf\x19\x42\x7f\x2e\x2b\x62\x9b\ -\x30\xb7\x8a\xa0\xb0\x50\xc0\x73\x3b\x5f\xc1\x4b\x7b\x0e\xa0\x6c\ -\xe2\x0e\x63\x55\x1e\x2b\x5e\x3a\xf4\x6f\xf3\x27\x77\x9d\x84\xbc\ -\xf2\x81\xae\xaa\xb8\xe1\x71\x59\x8f\x31\x3b\xaa\x47\x3c\xa0\x32\ -\x04\x14\x6d\x78\x9d\x00\xd5\x18\xd3\x22\xba\x00\x11\x10\x22\x4a\ -\x89\xa3\xf6\x11\x29\x0f\x89\xc8\x6b\x06\xa4\x91\x0d\x10\xd2\xa8\ -\x54\x3e\x6e\x0a\x01\x11\x6b\x0e\x63\x5d\x66\x00\xd5\xc8\xcd\x62\ -\x01\x93\x05\x2d\xd5\x7e\x7d\x61\x5b\x5b\x85\x82\x15\xaf\xf1\x49\ -\x01\x6a\x67\x61\xce\xa9\x06\xf2\xb0\xa0\x50\x8e\x77\xa8\xf8\x05\ -\x05\x48\x8a\xe0\xaa\xd5\x3d\xb8\xf9\xaa\x55\xe8\x56\xb9\xc3\x30\ -\x55\x10\x42\x30\x35\x39\x8d\xa7\xb7\xbd\x88\x37\xde\x3a\x06\xcb\ -\x32\x70\x87\xa9\x16\xff\x6e\xfe\xcc\x2b\x7f\x59\xb8\xf8\x96\xe8\ -\x0e\x13\x76\xe9\x5b\xa1\xfe\xd5\x9b\xae\xae\x7a\xa3\xa6\x27\x44\ -\x85\x37\x43\xa5\x8b\x5f\x86\x41\x0e\x62\x10\x5b\x8f\xda\xa7\x67\ -\x63\xec\xaf\x02\x30\x88\x2e\x8b\x01\x9b\x12\x54\x4e\xb5\xca\x47\ -\x84\xea\x59\x80\x31\x07\x29\xd1\x1e\xa6\x7b\x6f\x0c\xb6\x00\xf7\ -\xc5\x9b\x86\xc0\x95\xec\xb3\x29\x57\xd9\x12\xd8\x55\x6c\xb0\x62\ -\xe6\x43\xf1\xf6\xaa\x08\x36\xc5\x36\x8a\x9a\xa4\xd5\x30\x29\x0a\ -\xb4\xa5\x53\xd8\x38\xd6\x8f\x4d\xeb\xfb\xd1\xde\x96\x12\xe6\x6f\ -\x89\xd7\x0f\x38\x7b\xe6\x3c\x1e\xdf\xba\x0b\xc7\x4e\x9c\x0b\xbd\ -\xd6\x4e\xf9\x74\xca\xaa\xcc\x7d\x7b\xf6\xf8\x8e\xff\x5a\x99\x3d\ -\xa3\xdb\x1d\x66\x39\x4b\x43\x80\x55\xcf\xe6\x0e\xcb\x52\xc4\x97\ -\x3f\xac\x0b\x44\x99\x51\x50\x6d\x74\x6a\x9f\xb6\x64\x81\x99\xe9\ -\xe8\x5e\x38\x6a\xc5\xe9\xa4\x54\x1f\x0b\x52\x41\x98\xd0\x6f\x1d\ -\x48\x89\x2c\x4a\xc1\xa0\xe2\x80\x93\xd4\x6c\x26\xaf\xbf\xe2\xa6\ -\xfb\x9f\xc7\xb0\x4c\xf6\xe1\xd3\x82\x15\x37\xfa\x17\xe8\x6e\x66\ -\x4b\xb0\xc8\xac\x4a\x4a\x0f\xdd\x14\x05\xc0\x06\xd0\x91\xcd\xe0\ -\xa6\x0d\x83\xb8\x7a\x4d\xaf\xbb\x3b\x8c\xa8\xef\xb1\xef\x1f\xc5\ -\xa1\xc3\xef\xe0\x89\xad\x2f\xe0\xfc\xc5\x49\x13\x77\x98\x53\xd5\ -\xc2\xd4\xd7\x67\x0e\x3d\xf1\x98\x55\x99\xaf\x29\x9e\x96\x46\x59\ -\xcb\x52\x8a\x51\x9b\x4c\x67\xa6\x37\xda\x90\xd6\xf5\x52\x60\x00\ -\xaa\xda\xe5\x17\x19\x3a\x34\x31\xd0\xbe\x34\x2b\x85\x46\x74\xbd\ -\xa9\x6c\xca\x3b\x12\x41\x96\x4d\xc3\x02\x0d\x09\xc0\x22\x1c\xa4\ -\x14\x00\x45\xf4\xbd\x34\xc1\x2d\xe5\xcc\x6b\x37\xa3\x04\x58\x8a\ -\xdd\x62\x9c\x70\xc5\x82\x77\xec\xcb\x2f\xaa\x61\x60\x9e\x7e\x49\ -\x75\x23\xd0\xce\x0f\xe0\xd0\x48\xfc\x95\xf4\x4a\xbf\x7f\xbd\xdd\ -\x6d\xb8\xed\xaa\x21\xac\x1d\x8a\xde\x52\xbd\x56\xab\x61\xef\xbe\ -\xb7\xf0\xf4\xf6\x97\x31\x33\x3b\x1f\x3d\xb2\x67\x5b\x6f\x54\xf2\ -\xe7\xfe\x78\xfa\xd0\xe3\xbb\x0d\x76\x87\xd1\xf5\x28\x2a\xbc\x51\ -\x60\x6b\x05\x00\x72\x65\x36\xd3\x98\x6e\x0a\x48\x4d\x01\x2e\x1d\ -\x61\x61\x7f\x4d\x26\x26\x9a\x10\x9a\xe8\xba\x64\xb6\x14\x0a\x8e\ -\x71\x58\x94\xb2\x4e\xbd\xca\xc7\xe3\x2f\x0b\x3c\xf1\x41\x2a\xce\ -\x26\xa5\xda\x66\x13\x80\x7d\x86\x39\xa2\x21\x02\x16\xcb\xae\x4c\ -\x56\xe7\x64\x18\x53\xd0\xa6\x10\x15\x10\x3c\x56\xe9\x58\x95\x38\ -\x02\xa8\x64\x55\x6e\x8d\xc3\xfd\x9d\xb8\xed\x9a\x55\x18\xea\xed\ -\xe0\x96\x0b\x96\x90\x80\x10\x94\x4a\x45\xec\x7a\xf1\x35\x3c\xff\ -\xe2\x3e\x33\x77\x18\xab\xfa\x5c\x69\xf2\xe8\x9f\xcc\x1e\x7f\xee\ -\x30\x73\xc1\xc3\x00\x61\xb1\x00\x67\xd1\x01\xac\x15\x33\xd3\x17\ -\x51\xfc\xb9\xcc\x8c\xef\x25\xfb\x35\xf5\x3e\xb3\xd0\x1a\x42\xb9\ -\xb9\x33\xfe\x03\xcc\xff\xaa\x9e\x50\x3e\x0d\x75\x1f\x7a\x75\x1e\ -\xee\x2b\xaf\x68\x03\x57\xbc\xb6\x1d\x44\x1d\xce\x76\x93\x92\xc0\ -\x47\x4e\x8c\x0b\x9a\x1e\xa4\x73\xcf\x29\x03\x62\x94\xb9\x8a\xec\ -\xeb\xef\x1d\x50\x16\x18\xd9\x3b\xa1\x7a\xe7\xd8\xb9\x46\x7e\xba\ -\x80\x89\x04\x61\x84\x63\x57\xbe\x6a\x17\x01\x56\x4c\xb3\xd4\x2a\ -\xa0\x7f\x63\xd9\x04\xdc\x13\x12\xe7\x51\xf3\xcb\xf0\x40\x6e\x6c\ -\x55\x37\x6e\xb9\x7a\x95\xeb\x0e\x43\x15\xe9\x83\xb6\xcf\xce\xe6\ -\xf1\xcc\xf6\xdd\xd8\xb3\xf7\xa0\x99\x3b\x4c\xb5\xf4\xe0\xc2\xf9\ -\xbd\x7f\xbe\x70\x6e\xaf\xb7\x3b\x4c\x2b\x54\xb6\xa5\x64\x4c\xb1\ -\xa4\x1e\xa0\x5a\x54\xe6\x14\x55\x6a\x57\x36\x83\xc1\xde\x4e\x10\ -\xd1\xc9\xd7\x7d\x11\x59\x23\x38\x7b\xae\x9d\x54\xe9\x96\xa3\x5f\ -\xb2\x58\x15\xae\x8b\x07\x5f\x17\x5b\x8f\x4a\xbd\x0b\x53\xfb\x14\ -\x75\x48\x69\xb8\x7e\xe8\xc2\x88\x74\xac\x5a\xdb\x8a\xbb\xe4\xa1\ -\xcc\x0a\xa8\x59\x14\xc5\xb2\x05\xc9\x29\x45\x60\x68\xdc\xc7\xc4\ -\x65\x5a\xdc\x8e\x32\x08\xd4\x3c\x4f\x15\x54\xae\x76\x00\x06\x90\ -\x3c\x50\x03\xe5\x3e\x3c\x51\xab\x72\x06\xec\x4a\x60\x55\xe2\x6c\ -\x75\x51\x53\xa4\x40\x3a\x45\x70\xf5\x9a\x5e\xdc\x78\xc5\x00\xb2\ -\x8c\x3b\x0c\xff\x36\x3b\x6d\x02\x21\xb8\x78\x71\x1c\x4f\x6c\xdd\ -\x85\xb7\x0f\x9d\x80\xad\xb9\x9e\x4c\x05\x73\x56\x79\xfe\x7b\x73\ -\x27\x5f\xfc\x4f\xa5\xa9\xe3\x8b\xe9\x0e\xd3\x0c\x69\x19\xf0\xad\ -\x70\x46\x05\x5c\xbd\xb6\x1f\xeb\x47\x7a\x24\x10\x00\xa0\x7e\x41\ -\xdd\x08\x9d\x1a\x14\xe4\x53\xa8\x54\x41\x06\x46\xeb\xe3\x1f\x3a\ -\x0e\x88\x98\x32\xfd\x10\x22\xa6\x25\xe1\xe5\x33\x85\xb2\x2a\x1a\ -\xd7\x53\xa1\x7f\x92\xfa\x07\x1e\x58\x38\x75\x4f\x0a\x03\x84\xd2\ -\x35\x71\x41\x1f\x26\xf2\x65\xec\x3f\x39\x03\xcb\xe2\xe3\xa8\x70\ -\xe4\xb7\x81\x61\x5a\x22\xc3\x52\x6e\x6f\xc5\x4e\xca\xe4\x96\x7d\ -\x11\x96\x12\x16\x27\x6c\xfa\x7d\x50\x4f\x33\x30\x7f\x55\x9c\x7a\ -\x6c\x00\xed\x6d\x69\x6c\x5a\xdf\x8f\xeb\xd6\xf6\x21\x93\x26\xae\ -\xba\xa7\x2f\xec\x9d\x77\x4e\xe1\xb1\xa7\x76\xe2\xe4\x99\x8b\xc1\ -\xc7\x54\x27\xd4\xbe\x58\x2b\xce\x7c\x6b\xe6\xe8\xd6\x07\x6b\x85\ -\xa9\x32\x5a\xc7\xa4\xa2\x3b\xbc\xcc\x8c\xee\x2b\x1e\xa8\xda\x32\ -\x29\x64\xdb\x9c\x8f\x0e\xfb\x52\x07\xe7\xce\x7f\xe2\x4b\x1e\xbc\ -\xc7\x8a\x35\x99\x04\x84\x89\x05\x3e\x5e\x06\xca\x03\x25\xa8\x0e\ -\xd4\x54\xf5\x08\xcc\x8c\x0d\x15\x9e\xf4\xb0\x32\xe2\x80\x94\x10\ -\xa2\xbe\x56\x0a\x21\x84\xa0\x3d\x53\x73\xea\x10\xdb\xc6\x1e\xf9\ -\xe0\x44\x83\xa2\xfd\xa9\x05\x40\xf8\xf6\x56\x6a\xb0\xe2\x30\x08\ -\x02\x16\x45\xb2\x2a\xc5\x08\x20\x82\x79\x59\x62\x06\x6a\x03\xb9\ -\x8e\x0c\x6e\xba\x72\x10\xeb\x87\x73\x81\xda\x0d\xe6\x8d\x66\xee\ -\xb3\x65\x59\x38\xf0\xd6\x61\x3c\xbe\xf5\x05\x4c\x4c\x1a\xb8\xc3\ -\xd8\xd6\x91\xea\xfc\xc5\x3f\x9d\x3e\xf8\xf8\x36\x6a\x57\x03\x0d\ -\x3c\x11\x00\x2b\x14\xa8\xc4\x3b\xa8\xf2\x15\x65\x3e\xb2\x7c\x46\ -\xe9\x3c\xfc\x99\x90\xa8\x7f\x48\x1d\x52\x9d\xe2\xcb\xc4\x54\x15\ -\x7e\xee\xbe\xbc\x9e\x1d\x2d\xac\xf9\x21\xdd\x61\x08\x8c\x90\x47\ -\x82\x24\x21\x1d\xd1\xe6\x97\xc5\xe7\x46\x8c\x55\x4b\x91\x87\x01\ -\x48\x1a\x4c\x98\x0a\xda\x8c\x30\x9b\x14\x78\x1b\x22\xd8\xfd\xf7\ -\xfc\x40\xe1\xe2\xd7\xc1\xaa\x24\xe0\x23\xfe\x4c\xf9\x81\x9e\x2c\ -\x6e\xbd\x7a\x15\x46\xfa\x3a\x41\x43\xae\x08\x21\x04\x95\x4a\x05\ -\x2f\xbf\xb2\x0f\xcf\xee\x78\x15\x73\xd1\xee\x30\xa0\x56\xf5\xe5\ -\xf2\xcc\xc9\xaf\xcd\x1c\xd9\xba\xcf\x6d\xc5\x52\x33\x9a\x65\xc5\ -\xa6\x80\xfa\x80\xca\x14\xed\x5b\xfc\x55\x20\x75\x97\xae\x7c\x4d\ -\x89\x32\x32\x24\x9f\x41\x1d\x22\xbb\x21\xaa\x44\x92\x96\x26\x9d\ -\x87\x37\x40\x47\x63\x64\x3a\xa4\x9a\x1b\x16\xc9\xc0\xc2\x6a\x24\ -\x0e\xc3\xf3\xd9\x94\xc8\x66\x3d\xa1\xfc\xab\x4d\x5c\xc0\xf0\x18\ -\x16\xb7\xe0\x9d\xe1\xf6\x56\x9a\xd3\xba\x59\x55\x18\x36\x8c\x0e\ -\x76\xe2\x96\xab\x56\xa1\x3f\xd7\x0e\x6a\xeb\x52\x3a\xd7\x62\x61\ -\xbe\x80\x6d\x3b\x5e\xc6\x8b\xaf\xbc\x69\xe4\x0e\x63\xd7\xca\x4f\ -\x15\x2e\x1e\xf8\xb3\xf9\xd3\x2f\x9f\xc0\xd2\xa9\x7a\xcd\x12\xd3\ -\xb6\xc7\xee\xe3\xca\x62\x54\x91\x48\x11\x03\x4a\x48\x58\xb0\x61\ -\x39\x4a\x35\x33\x4e\xd5\xe6\xed\x25\x2a\x78\x95\xb5\x37\x7d\xc9\ -\x8a\xaa\xe2\x82\x14\x89\x4a\x10\x72\x9d\xfc\x5c\xc2\x7e\x7d\xe2\ -\xdc\x29\x2d\x58\x79\xf6\x2a\x76\x0a\x81\x6e\x7b\xf4\x30\x56\xa5\ -\xea\x94\x62\x84\xd5\x69\x13\xc1\x86\xd5\x39\xdc\x74\xc5\x00\x3a\ -\x3d\x77\x18\x05\x55\xf7\xae\xcb\xe4\xe4\x14\x9e\xdc\xfa\x02\xf6\ -\x1d\x38\x02\xcb\xb2\xa3\x8c\xe6\x45\xbb\x52\xf8\x6f\x73\xa7\x5f\ -\xfe\x4e\x71\xfc\xd0\x24\x96\xc6\x68\xde\x32\x60\x69\xb6\x34\x13\ -\xa8\x5a\xc8\xb4\x48\x64\x0c\x11\x5f\xda\x10\xbb\x92\x59\xc9\x8a\ -\x17\x99\x98\xe4\x23\x06\x21\xfa\x6c\x44\x09\x18\x3a\x36\x26\xc0\ -\xaa\x50\x06\xcb\x12\x45\x00\x26\x91\xc0\x25\x56\x15\xde\x0b\x42\ -\x02\xc3\x38\x27\x94\xfb\x01\xb7\x7e\x94\x57\x6c\xc4\x26\x0d\x5c\ -\x43\x42\x56\x3c\xe0\xe6\x3b\x29\x58\x95\x7a\xf2\xa6\x5a\xda\x32\ -\x29\x5c\xb3\xa6\x17\x1b\xc7\xfa\xd1\x9e\x21\x72\x5b\x84\x6b\x7e\ -\xe6\xcc\x39\x3c\xfa\xe4\xf3\x38\xfa\xce\x59\xff\x7a\x68\x85\xd2\ -\x99\x5a\x79\xf6\x3b\xf9\x63\xcf\xfd\x7d\x65\xee\xbc\xe7\x0e\x13\ -\x06\x06\x8d\x02\x4a\xb3\x01\x69\xd1\x01\x4e\x04\xaa\x56\xa8\x6b\ -\x0d\x97\x49\x6d\x0b\xd4\xb6\x61\x0b\xe3\x39\xec\x97\x9a\x30\xff\ -\x29\x5f\x5c\x8d\x01\x5c\x4a\xab\x53\x5f\xa4\xf5\x9a\xf8\xf3\x70\ -\x1f\x39\xa2\x01\x52\x22\x9c\x33\xed\xd7\xb4\x57\x9b\x5f\xec\x2f\ -\xd7\x27\xb9\x47\x52\xfb\xa4\x0e\x03\xa9\x54\x0a\xa9\x54\xd8\x87\ -\x9e\xb0\xb9\xa1\xbc\xcd\x84\x99\x49\xe5\x4f\x63\x72\x73\x18\x6e\ -\xd2\xc0\xab\x80\x4c\x55\xda\x79\x07\x6a\x26\xa5\xce\xc2\xab\x7f\ -\x94\x52\x74\xb4\xa7\x71\xc3\xfa\x7e\x6c\x18\xed\x41\x9a\x10\x79\ -\x8e\x14\x23\x94\x52\x1c\x3a\x74\x1c\x8f\x3d\xb5\x13\xe7\x0c\xdc\ -\x61\x28\xb5\x4f\xd7\x16\xc6\xff\xdd\xf4\xe1\x27\x1f\xb7\x2b\x05\ -\x4b\xb8\x68\xf5\x02\x40\x5c\x80\x5a\xb6\x80\xa4\x2b\x73\x59\xab\ -\x7e\x84\x10\x14\x0a\x45\xec\xd8\xf5\x2a\x3a\xb2\xed\xbe\x0a\xe0\ -\xc6\x46\x64\x56\x1e\xea\x13\x45\xc5\x9a\x42\x6d\xd4\x10\x74\x54\ -\x76\x6d\x60\x8c\xb6\xc6\x69\xaf\x9b\x58\x7c\x5b\x08\x21\xc8\x76\ -\x64\x31\xb2\x6e\x0c\xab\xd7\xae\xc5\xba\x55\xdd\xe8\xeb\x6a\x63\ -\x4c\xe7\x7c\xd3\x04\x13\x15\x87\x28\xc1\x21\x95\x01\x2b\x02\xac\ -\x82\xa9\x0d\x31\x66\x91\xeb\x08\x93\xa8\x22\x4a\x46\x75\x8a\xde\ -\xae\x36\xdc\x7c\xe5\x20\xd6\x0c\x76\xf1\xdd\x90\x8a\x72\xdc\x61\ -\x5e\x7b\xfd\x00\x9e\x7c\x76\xb7\xa1\x3b\x4c\x6d\x7f\x65\xf6\xcc\ -\x9f\xce\x1c\x7e\x6a\x37\x0d\xdc\x61\x28\xcc\x01\xa5\x55\xcc\x6a\ -\xc9\x55\xbb\x28\xf1\x80\x4a\x64\x3d\x51\xe7\x51\xe1\xa6\x12\x76\ -\x93\x00\x00\xa5\x72\x15\xfb\xde\x3a\xb6\xc8\x97\x72\xd9\xdf\xb7\ -\x45\x93\x8e\xce\xfd\xb8\xf1\x8e\x3b\xf0\x93\x9f\x78\x2f\xfa\xba\ -\xdb\xfd\x7d\xf6\x24\x12\x15\x62\x24\xf3\xc0\xc9\x07\xad\xa8\xa5\ -\x84\x19\xb0\x52\xba\xe6\x85\xb2\x29\x26\x91\x62\xf9\x17\x65\x52\ -\x57\x86\xfa\x3a\x71\xf3\x95\x03\x58\xd5\x93\xd5\x8e\xf4\x02\x00\ -\x49\x11\x14\x0b\x45\x3c\xff\xc2\x1e\xec\x78\xe1\x75\x14\x8a\x26\ -\xee\x30\x95\x9d\xc5\xf1\xc3\x5f\xcf\x9f\xd8\x79\x88\xb9\x3a\x8b\ -\xc5\x78\x9a\x21\x8d\xd6\x55\x2f\x18\x53\x20\x9a\x51\xd5\x0b\x58\ -\x4d\x05\xb6\x14\x21\x8d\xc1\x61\x6c\x59\xd4\xca\x96\xb5\x94\x4b\ -\x45\x1c\x3f\xf8\x36\xca\x1f\xbc\x15\xa9\xa1\x1c\x6c\xcd\xf3\x46\ -\xa0\x63\x92\xf2\x8e\xc8\xa1\x4b\x09\x33\xc6\x6c\xbf\x64\xcd\xda\ -\xe6\x6a\x56\xa5\x02\x23\xfd\x88\x9e\xd7\xf6\xb5\xab\xba\x70\xd3\ -\x95\x03\xc8\x75\x2a\xdc\x61\x98\x71\x47\xb8\xee\x30\x4f\x3f\xfb\ -\x22\x5e\x79\xed\x2d\x43\x77\x98\xe2\x43\xf3\x67\x5f\xfb\x8b\xc2\ -\x85\x37\xcf\x63\xf9\x3f\x5c\xcd\x56\x2b\x9b\xc2\x16\xeb\x55\xfd\ -\x9a\x0d\x58\x16\x12\x59\x96\x42\x08\x41\xa9\xb0\x80\xf9\xfc\x2c\ -\x40\x46\xa0\xb2\x2a\x13\xef\x43\xa2\xd1\x5b\x89\xab\x56\x05\x2a\ -\x1e\x03\x56\xf0\xe6\x7e\x89\x60\xa5\x61\x53\x41\xb1\x1a\x56\x25\ -\xab\x77\xbc\x31\x9d\x8d\x77\xdc\x61\xae\x5c\xdd\x83\xeb\xd7\xf7\ -\x21\xdb\x96\x0e\xd9\x78\xc1\xe9\xe7\xf9\x0b\x97\xf0\xd8\x53\x3b\ -\xf1\xd6\xc1\x77\x4c\xdc\x61\xe6\xad\xf2\xdc\x7f\xce\x9f\xd8\xf5\ -\xbd\xf2\xf4\xc9\x59\xa8\x8d\xe6\x54\xf8\xd5\x85\x9b\xa6\x6b\x34\ -\x3c\x4a\x9a\x0d\x50\x46\xa2\x02\xaa\x45\x37\xa8\xdb\xb5\xca\xe9\ -\x54\x5b\xd7\x02\x80\x9e\x26\xd7\x9b\x48\x13\x84\xda\x14\x95\x72\ -\x49\x0a\x67\xb1\x49\x87\x53\x01\x9b\x22\x2e\x40\x05\x13\x3d\xfd\ -\xd1\x3e\x04\xcc\x4a\x9c\xbd\xab\xf5\xc1\x83\x68\x08\x8f\x16\x16\ -\xd3\x6c\x0a\xb4\x67\xd2\xb8\x6e\x5d\x2f\xae\x59\xd3\x8b\x4c\x8a\ -\x70\xab\x1f\xa8\x48\xd8\xb1\xe3\x27\xf1\xf0\x13\xcf\xe3\xe4\xe9\ -\x0b\x26\xee\x30\x97\xaa\x85\xa9\x6f\xcf\x1e\x7d\xe6\xc1\x5a\x71\ -\xda\x73\x87\x91\x2e\x8d\xee\x92\x99\xdc\x96\x25\x0a\xaf\x37\x5d\ -\x1c\x91\xca\x8c\xc3\xa8\xe2\xaa\x73\xa6\x80\x47\xaa\x73\x17\x0e\ -\x65\x3a\x7a\xdf\x06\x49\xdd\xdd\x82\x4e\x27\xd2\x64\xe1\xc7\x33\ -\x18\x4b\xba\x72\xd0\xcf\x9b\xd6\x09\xdf\x60\xce\xa9\x83\xdc\xf6\ -\x56\x22\x31\x0a\x57\xd9\xf8\x36\xa9\xd5\x3f\xbe\xd5\x41\x5b\xba\ -\x3b\x32\xb8\x71\x7d\x3f\xd6\x0d\x75\x07\xab\x8b\xaa\xca\x75\xdd\ -\x61\xde\xdc\x7f\x08\x8f\x3d\xb5\x0b\xe3\x93\x33\x26\xee\x30\xc7\ -\x2a\x73\xe7\xfe\x6c\xe6\xf0\x53\xdb\xa9\x55\xf5\x76\x87\xf1\x2f\ -\x83\x2a\x8b\xe6\xbc\xa5\x2c\x25\x86\x2c\xb9\x11\x3f\x15\x92\xa9\ -\x59\xd4\x31\x2a\x3f\x99\x3d\xbe\x7d\xdc\x2a\xcf\x7d\x0d\xd4\xde\ -\x6f\xda\xf0\x44\x96\x46\xfc\x01\x48\x6f\x3a\x3a\x09\xec\x53\xaa\ -\x3f\x6f\xea\x3a\x11\xf2\xf2\x36\x78\x06\xe4\x88\x3c\xd9\x41\xb7\ -\xaa\x84\xd6\xa0\x2f\xac\x98\x21\x4e\x43\xeb\xef\xce\xe2\xce\x6b\ -\x87\x7c\x9f\x3d\x08\xd9\xfd\x73\x42\x50\xad\x54\xb0\xeb\x85\x3d\ -\xf8\xe1\xc3\xdb\xcc\x40\xca\xaa\xbe\x5a\x9a\x3c\xfa\xdb\xd3\x6f\ -\x3f\xf6\x2c\xb5\xaa\x61\x1f\x71\xf6\x17\x9a\x73\x44\xa4\x33\x55\ -\x17\xe3\xe6\xab\xb7\xde\x66\xb5\x5b\xca\xdf\x8a\xe9\x09\xf5\x30\ -\x2c\x3a\xbe\xf7\xef\x9f\x1d\xbc\xf1\x73\x17\x32\x5d\x83\xf7\x11\ -\x92\x5a\x0f\x42\xda\x22\x76\x6a\x54\xf5\x8d\x2f\xdf\x77\x6a\xe3\ -\xd4\x03\x45\x1b\xa8\x26\x9c\x49\xef\x17\x40\xc3\xd3\x29\x06\xc5\ -\x15\xd5\x11\xa9\x55\xda\xfa\x69\xd8\x9b\x21\xb4\x2d\x32\x9f\xae\ -\x0e\x90\x54\xa6\x2f\x95\xe9\xbc\x1b\x84\x64\xc3\x2a\xa3\x61\x2f\ -\x2a\x91\x8a\x0d\xa8\x04\x71\x95\x35\x7f\xda\x80\xbc\xee\xb9\xaf\ -\xc6\x69\x67\x9a\x2b\xda\x13\xa9\xfe\xf1\x0c\x6e\x75\x5f\x27\x6e\ -\xda\x30\x80\xbe\x6e\xf7\xf1\xa2\xea\x3c\x8e\x3b\xcc\x02\x9e\xd9\ -\xfe\x12\x76\xbd\xf4\x86\xa1\x3b\x4c\x69\x6b\xe1\xc2\xfe\x7f\x37\ -\x7f\xe6\xd5\x93\x90\x59\x54\xbd\xbf\xd0\x9c\xc7\x91\xc5\x56\xfb\ -\x9a\xce\xf0\x74\x40\x25\x9a\x29\xc5\x70\x5d\xfa\x46\xc2\xc9\xd4\ -\x5b\x3f\x3e\x00\xe0\x40\xba\xa3\xbf\x3d\x95\x6e\x4b\x79\x00\x42\ -\x29\x65\xbe\x99\xec\xf8\x33\x3c\xfd\x80\x0f\x77\xdf\x04\x7e\xbc\ -\x89\x7a\x2f\xb5\x58\x96\x62\x80\x9d\xad\x8f\x9d\x08\x14\xe4\xa1\ -\x7c\x1e\x22\xe5\xe3\xf2\x44\xa4\x45\x54\x5a\xa6\x6e\x1a\x9a\x3e\ -\x46\x79\x41\xdf\xa9\x5d\xb3\x73\x63\x77\xdd\xd0\xb5\xe6\x96\x1b\ -\x09\xd2\x5a\xa0\x52\xd9\x6d\x7c\xf6\xa4\xb0\xd9\x48\x9b\x8b\x0a\ -\x53\x06\x4c\x96\x12\xe6\xab\x8c\x1e\xbd\xe3\x6c\x5e\x8c\xa4\x08\ -\xc1\xd8\x50\x37\x6e\x58\xdf\x8f\xce\x2c\x6b\x34\x67\x52\xbb\x87\ -\x29\x42\x30\x31\x39\x85\xc7\x9f\xda\x89\xd7\xdf\x3c\x6c\xe2\x0e\ -\x53\xb2\x2a\x0b\xff\x30\x7f\xea\xe5\xbf\x2a\x4e\x1c\x9e\x84\x1e\ -\xa4\xa4\x8c\x88\x96\xb8\x46\xf6\xb8\xac\xc5\xb4\x9e\xa8\x36\x37\ -\x6b\x74\x50\x99\xde\x74\x66\xba\x0e\xb0\x9a\x15\xee\x49\x0a\x00\ -\xb1\x4a\x33\x96\xe5\x8c\x04\x6a\xc9\x7d\x93\x7f\xbd\x63\x93\x97\ -\xbc\xde\xb2\x4d\xea\x88\x53\x8e\x2e\x2e\x4e\xbc\x77\x6c\x83\xda\ -\x35\x68\x85\x06\xaa\x1e\x33\xe0\x2f\x89\x10\x48\xbc\x6f\x03\xf1\ -\xbf\x1c\x12\x58\x49\x4b\x09\x6b\x76\x1d\x96\x57\x37\x15\x76\x3d\ -\x96\x90\x2d\x58\x43\x2a\x93\x4e\xe1\xea\xd1\x1e\x5c\xbb\xa6\x17\ -\xed\x19\x12\xb1\x64\x30\x70\xfa\xf4\x59\x3c\xf4\xf8\x0e\x1c\x39\ -\x7e\xc6\x0d\x0b\x01\x29\x4a\x67\x6a\xa5\x99\xff\x98\x3f\xfe\xdc\ -\x0f\x2a\x73\x17\x54\xee\x30\xaa\xe3\x7a\xc1\x07\x9a\x7c\x61\x12\ -\x95\x77\xb1\xd5\xb8\xba\xea\x0b\x53\xfd\x5a\x31\xfa\x17\x56\xbe\ -\xf8\xb8\x49\x8c\x4b\xf8\x85\x26\xbe\x1e\x69\x65\x3f\xc3\xfa\xad\ -\x03\xf0\xb0\xeb\xa4\xcb\x17\x96\x2e\xea\x18\xfa\x71\xbb\x90\x8b\ -\x45\xf8\x6c\x32\xa3\x72\xc3\x19\xc0\x92\xb7\xb7\x0a\x5a\xa3\x77\ -\xbf\x8b\x56\xff\x54\x54\x8f\xda\x40\x47\x7b\x1a\x9b\xd6\xf5\xe2\ -\x8a\x91\x1c\x52\x06\xee\x30\x07\x0f\x1e\xc7\x43\x4f\xec\xc0\xb9\ -\x0b\x13\x26\xee\x30\x67\xaa\xf3\x97\xfe\xbf\x99\xc3\x4f\x3e\x6e\ -\x57\x8b\x35\xf0\x20\xd5\x2c\x26\x14\x56\x46\x54\xd9\x51\xf9\x10\ -\x33\xfd\x92\x19\xed\x4d\xa6\x27\xd4\xcb\x9a\xa2\x7e\x75\xe5\xc7\ -\xad\x37\xaa\x1c\x84\x94\x11\xd5\xb6\x46\xca\x08\x03\xa4\xa8\x38\ -\x56\x54\x71\x61\x61\xaa\xbc\xba\xf8\xa0\x4f\xc4\xec\x21\x24\x9a\ -\x03\xce\xc0\xed\x63\x90\x73\x10\x68\x78\x24\x00\x2b\x6e\xf3\x05\ -\x9e\x55\x85\x6d\xa6\xa0\xeb\x86\x14\x4a\x29\x7a\xba\xda\x70\xe3\ -\xfa\x7e\xac\x1e\xe8\x0c\xef\x93\xeb\x0e\xf3\xea\x9e\xfd\x78\x7c\ -\xeb\x8b\x98\x9e\x9d\x33\x71\x87\x39\x50\x9e\x39\xf5\x8d\xd9\x23\ -\xcf\xbc\x44\xa9\x25\x36\xb3\x11\x30\x42\x0b\xca\x88\x2a\xdb\x34\ -\x7d\xdc\xb6\xd5\x0b\x80\x52\x3b\x5a\x39\x3d\xa1\x9e\x32\x9b\x05\ -\x82\x26\xc0\xa0\x6b\x4b\x23\xc0\xd3\x2c\xb0\x8a\x93\x1e\x9a\xf8\ -\x30\x11\xdf\x6b\x6a\x90\x87\xd5\xaa\x98\x90\xe0\x97\xf0\xa7\x60\ -\xf7\xeb\xa3\x61\x30\xaa\xfd\x55\xab\x7f\xe1\x6d\x74\x60\x6e\x55\ -\x6f\x07\x6e\xbc\xa2\x1f\x03\xb9\x76\x80\x65\x6a\x42\x3b\x3c\x77\ -\x98\xe7\x76\xbe\x8a\x6d\x3b\xf7\x98\xba\xc3\xec\x2a\x8e\x1f\xfa\ -\xb3\xfc\x89\x5d\x07\xe1\x9a\x2b\x60\xfe\xd2\x86\xa9\x82\xf5\xa8\ -\x7c\x71\xeb\x6d\x16\x98\xc4\x91\x46\x54\x57\x00\xe6\x2e\x34\xcb\ -\x85\x55\x21\x46\x1a\xd3\x3a\xeb\x01\xa0\x7a\xfb\xda\x08\x58\xb1\ -\x62\xc2\xae\xa0\x48\x03\x7d\x3a\x02\x68\x1f\x1c\x79\x45\x0a\x2f\ -\xcc\xff\x23\xaa\x5c\xf0\x8d\xe6\xc1\x08\x1f\xe1\x54\x40\x9d\x1b\ -\x8c\xa6\x34\xe7\x48\x67\xa7\x72\x65\xcd\x60\x17\x6e\x5c\xdf\x8f\ -\xee\xce\x8c\x52\xd5\x0b\x70\xd0\x71\x87\x79\xe2\xe9\x5d\x78\x69\ -\xcf\x01\x43\x77\x98\xc2\x23\x8e\x3b\xcc\x7e\x6f\x77\x18\xf6\xba\ -\xb5\x0a\xa4\xea\x55\xf9\x10\x11\x6e\x92\x66\xb1\xd8\x54\x68\x1b\ -\xa3\x46\xfd\x1a\x0d\x8f\x93\xb7\x11\x96\x04\x98\xbf\xfc\x30\x28\ -\xcb\xa4\x7d\xf5\xb4\x5d\x97\x07\x11\x61\x26\xf1\x3a\x31\x49\x63\ -\xc4\xa8\x78\x43\xb5\x10\x0e\x7e\x29\x1b\x6f\x09\xdf\x00\xac\x22\ -\x4b\xe7\x0a\x14\xd5\xbf\x28\xa1\x70\xdc\x61\xae\x18\xe9\xc6\x75\ -\x6b\x7b\x5d\x77\x18\xaa\x2c\x1b\xa0\xbe\x3b\xcc\xc3\x8f\xef\xc0\ -\x81\x83\xc7\x61\x53\x44\x8d\xec\x2d\x58\xa5\xb9\xff\x92\x3f\xb1\ -\xeb\x7b\xe5\x19\xdf\x1d\xc6\xab\x3a\xce\x6f\x54\x9c\xaa\x6b\x61\ -\x69\x9b\x01\x6c\xcd\x60\x76\x51\xed\x6f\x28\xdc\x44\xf5\x6b\x15\ -\x7b\x32\x01\x87\xa8\xb6\x98\xd6\xa9\x2a\xb7\x55\x4c\x28\xea\xfd\ -\xaa\xc7\x0e\x05\xc3\x78\x20\x1c\xe8\x00\x75\xbb\xcc\x80\x4a\xd7\ -\x1b\xc8\x8c\xca\xb1\x47\x01\xa0\xaa\x25\x58\x58\x5b\x15\x94\x7b\ -\x2c\x4a\x2a\x5a\x58\x03\xa9\xe3\x0e\x73\xed\x9a\x1e\x5c\xb9\x3a\ -\x87\x4c\x8a\x48\xcb\xc4\x88\x6d\x3e\x7a\xec\x24\x7e\xfc\xd8\x76\ -\x9c\x38\x65\xe4\x0e\x33\x5e\x2d\x4c\xfd\xfb\xd9\xa3\x5b\x1f\xac\ -\x15\x67\xc4\xdd\x61\xe2\x02\x51\xb3\x59\x96\xe2\x6a\xc4\x2e\x4b\ -\x95\xdf\xa4\xec\x46\xeb\x34\x62\x53\x40\x7d\xa3\x7e\x8b\xc1\x9e\ -\x74\xe9\x11\x23\x6d\x33\xd5\x37\x2c\x51\x1c\x2b\x26\x4c\xca\x94\ -\x80\x88\x75\xd0\xe8\x5b\x1a\x64\x95\xd5\x40\xf7\x94\x65\x54\x3e\ -\x9b\xe2\xed\x4c\x61\x4d\x56\x26\x09\x5d\xe7\xc5\xf9\xbf\x2b\x9b\ -\xc6\xa6\xb1\x3e\xac\x5d\xd5\x15\xfe\x85\x70\xdd\x61\xf6\xbd\x71\ -\x10\x0f\x3f\xf9\x3c\xc6\x27\x66\x0c\xdd\x61\xce\x7f\x73\xe6\xf0\ -\x93\xac\x3b\xcc\x72\x01\xa9\x66\x00\x43\xa3\xe0\x03\x4d\xbe\xd0\ -\xcb\x1a\x37\xaf\xa9\x31\xbd\x95\xec\x29\x6e\x1d\xba\x7c\x30\x48\ -\xb3\x5c\xc1\x4a\x25\x51\x4c\x2a\xea\x18\x9a\x38\x5d\x6d\xf1\x18\ -\x15\x73\x95\x1d\x37\x3f\xfe\xb2\x07\xcb\x05\xb3\x1d\x90\x6d\x52\ -\x72\xa1\x1a\x3b\x95\x1b\x28\xa2\x44\x7f\x77\x3b\x6e\x58\xdf\x87\ -\xa1\xde\x0e\x00\x14\x3a\x6d\x2f\x05\x82\x72\xa5\x82\x5d\x2f\xbe\ -\x8e\xa7\xb6\xbd\x84\xb9\xf9\x82\x89\x3b\xcc\x9e\xd2\xd4\xf1\xaf\ -\xcf\x1e\xdb\xb6\x0f\x81\x39\x6e\xb9\x82\x94\xd4\x7c\xcd\x31\x0c\ -\xca\x32\x66\x3a\x21\x69\x1b\x65\x76\x9c\xc4\x59\x8f\xca\x14\x04\ -\x74\xe1\x71\x01\xa8\x91\x32\x9a\xa9\xbe\x35\x5a\x0e\x10\x0e\x14\ -\x71\xf2\xc6\xb5\x4f\x99\xa6\x33\x66\x54\x44\x79\x4e\xfc\xd7\xd8\ -\xd5\xf6\xe0\xd8\xac\xa8\xbf\x84\x0b\x54\x93\x33\xeb\x11\x26\xef\ -\x48\x5f\x07\x6e\x58\xdf\x87\xde\xce\xb6\xd0\xe2\x08\x21\x98\x9f\ -\x5b\xc0\xd3\xdb\x5e\xc4\xf3\x2f\xee\x33\x71\x87\xb1\x5c\x77\x98\ -\x6f\xba\xee\x30\xa6\xaa\x5e\x54\x7c\x2b\x41\xaa\x95\x80\xd1\x2a\ -\xd5\xce\x04\x4c\x01\xc4\xb3\x51\x89\xe7\x71\x18\x4e\xbd\x20\x16\ -\x27\x6d\xab\x18\x91\x4e\xef\x08\x8b\xd3\xa5\x47\x9d\x79\xa3\x8e\ -\xa1\x89\x83\xa2\x3c\x40\xfd\x40\xd5\x09\x1d\x44\x3a\x12\xb5\x35\ -\x03\xad\xcf\x58\xbc\xd9\xe9\x63\x43\xdd\xd8\xb8\xae\x17\x9d\xed\ -\xd1\x6b\x48\x4d\x4c\x4c\xe1\x91\x27\x9e\xc7\x6b\x6f\x1c\x82\x65\ -\x51\x13\x77\x98\x7f\x9c\x3f\xf5\xf2\x77\x18\x77\x18\xf1\xfa\x34\ -\x02\x1e\x4b\xc9\xc8\x9a\xa9\x56\x9a\xf4\x11\x06\x69\xc3\xd2\xfb\ -\x12\xd7\x29\xb9\x51\x96\xd4\x28\x8b\x69\x46\x7b\x5a\xc5\x96\xea\ -\x61\x57\xcd\xb4\x4f\xa9\xe2\xa2\xa0\x20\xa8\x4f\xb9\x85\x8c\xb9\ -\xc8\xab\xae\x9b\xe6\x33\x4f\x4d\x01\x64\xd2\x04\x57\xae\xce\xe1\ -\xea\xd1\x1c\xda\xd3\x29\x7e\x0d\x29\xb1\x6c\x02\x9c\x3a\x75\x16\ -\x3f\x7a\xf4\x39\x1c\x3e\x76\xda\x0f\xd3\x57\x40\x67\x6b\xa5\x99\ -\xbf\x99\x3d\xfe\xdc\x0f\xaa\x8e\x3b\x8c\xc2\x96\xa7\xec\x64\x33\ -\xd8\xcf\x62\x81\x94\xea\xb2\xc6\x2d\xcb\xa4\xbc\xa6\xa8\x7c\x9e\ -\xc4\xb5\x51\x99\xa4\x69\x44\xd5\xd3\x95\x15\x16\xbe\x94\x60\xa5\ -\x4b\x0f\xa8\xdf\xc1\x7a\xec\x53\xaa\xfc\xaa\x34\x71\x41\x4a\xbc\ -\xde\x0d\x01\x15\x10\x80\x40\xa8\xed\x3c\x4e\x79\x4c\x19\x94\x02\ -\x1d\x6d\x69\x5c\xb7\xb6\x07\x63\x43\xdd\x48\x91\xa8\xf2\x29\x0e\ -\xbc\x75\x14\x3f\x7e\xf4\x39\x9c\x35\x70\x87\x01\xb5\xcf\x56\xe7\ -\xc7\xbf\x35\x7d\xf8\xc9\xc7\xec\x6a\xa1\x26\x56\xaf\xb8\x5e\x40\ -\xf4\x0b\xbc\x1c\x41\xaa\x5e\x35\xcd\xa4\xff\xf5\x80\x91\xd1\x63\ -\x52\xcf\xcc\xf4\xa5\x66\x3e\xcb\x09\xac\x00\x73\x40\xd2\xa5\x0b\ -\xbb\x59\x51\xf1\x62\x7d\x61\xe7\x61\xe5\x34\x0c\x52\x00\x6f\xc8\ -\x6e\x42\x81\x5c\x19\xb9\xce\x0c\xae\x1f\xeb\xc3\x48\x7f\x87\x1b\ -\xa1\xae\x81\x10\x82\x5a\xb5\x86\x97\x5f\x7d\x13\x8f\x3e\xbd\x0b\ -\xd3\x33\x46\xee\x30\x6f\x55\x66\xcf\x7c\x7d\xe6\xf0\xd3\x2f\x52\ -\x6a\xb1\xd5\xc7\x55\x73\xe2\x02\x98\x69\x9e\x56\x81\xd4\x72\x61\ -\x6a\x91\xd2\xe8\x9a\xe9\x4b\xc5\x7c\x5a\x51\x3e\x2b\xa6\xea\x55\ -\x23\xea\x9e\x58\x66\xd4\x8d\x6b\xa6\xf1\x5c\x52\x69\x88\xef\x3a\ -\x5c\x9f\xd0\x90\xe6\xd3\xc8\x7c\xe1\x32\x98\x6b\xc7\xf5\xeb\xfb\ -\xd0\xdf\xdd\x1e\x9a\xc7\xd9\x5e\xad\x84\x6d\x3b\x5e\xc6\xb3\x3b\ -\x5e\x35\x75\x87\x79\xc1\xdd\x1d\xe6\x20\xf4\xf7\xa1\x11\xe0\x31\ -\x0d\x33\x4d\x1f\x96\x77\x29\x41\xaa\x1e\xf6\x69\x2c\xf5\xda\xa8\ -\xd8\xe3\x46\xc0\x04\x11\x65\xc5\xa9\x27\x2a\xad\x4a\xea\x55\xed\ -\xea\x61\x57\xba\xe3\x30\x75\x4e\xd7\x66\x20\xbc\x4e\xc4\x28\xcf\ -\x89\x37\xb4\x51\xc9\x94\x99\xca\x47\x2e\xe3\x51\xc4\x40\x93\x55\ -\xdb\xf8\xd5\x03\x9d\xd8\xb4\xae\x07\xdd\xd9\x4c\xf8\x45\x21\x04\ -\x33\x33\xb3\x78\xec\xc9\x9d\xd8\xfd\xea\x01\x54\x6b\xb5\x28\x90\ -\xaa\xda\xd5\xe2\x23\x0b\xe7\xf6\x7e\x6b\xe1\xfc\xbe\x73\x08\xdf\ -\x78\x81\x3d\xae\x07\xa0\xa2\xd2\xd6\x0b\x6a\xcd\x66\x5f\x51\x71\ -\x8d\x96\xaf\xbb\x1e\x91\x52\x0f\xa3\x6a\x44\xd5\x33\x29\xab\x55\ -\x60\x15\x55\x0e\x0c\xf3\xb1\x12\xc5\xae\x54\x69\x9b\x09\x46\xf5\ -\x1b\xcf\xe5\xfb\x40\x11\xf3\xe1\x09\x0a\xa2\x42\x6e\xca\xd7\xa2\ -\xf8\x0d\x5b\x93\x93\xc2\x59\xbc\x6e\xfd\x70\x97\xb3\x86\x54\x1b\ -\xb3\xa5\xba\x22\x1b\x21\x04\xe7\xcf\x5f\xc4\x8f\x1e\xdd\x8e\xfd\ -\x6f\x1f\xf7\xfd\x00\x43\x5a\xbd\x60\x95\xe7\xff\x73\xfe\xc4\xae\ -\xef\x96\xa7\x4f\xcc\x2a\xae\x9b\xc9\x8b\xd5\x8c\x17\x3a\x2a\xbe\ -\x95\x71\xf5\x96\x23\x5d\xcc\x88\xeb\x80\x18\x65\x69\xa5\x59\xdb\ -\x65\xb5\x5a\xd5\x33\x2d\x0f\x4d\xac\x83\x95\x7a\x47\xea\xa2\xca\ -\x84\xa2\x5c\x28\xd2\x35\x4b\xe5\xd3\xe5\x8b\x2f\x4c\xcf\xa9\x0b\ -\x3c\x1c\xf8\xf8\x58\xc5\x2a\x85\x51\x3b\xc6\x38\x76\xae\xb6\x74\ -\x0a\x57\x8f\x76\x63\xc3\x48\x0e\xe9\x14\xbf\x86\x94\x74\x11\x09\ -\x70\xe4\xc8\x09\x3c\xf8\xc8\x36\xbc\x73\xea\xbc\x89\xd1\x7c\xbc\ -\x56\x9c\xfe\xf6\xcc\x91\xad\xff\xd3\xdd\x1d\x46\x75\xff\xe2\x00\ -\x94\xee\x38\x0e\xb0\xb5\x02\xc0\x96\x82\x91\xc5\xb9\x0e\xb1\xa4\ -\x91\x35\xd3\x1b\x55\xc5\x9a\x05\x56\xac\x98\xa8\x7d\x26\x20\x07\ -\xc3\x36\x88\xe5\xc2\xb0\x4c\x28\xf2\x46\xa5\x37\x55\xe3\xe2\xa6\ -\x75\xd3\x99\x4e\x4f\x70\xd6\x38\x20\x62\xe9\x0a\x3e\x46\xd9\x34\ -\x54\x5f\x9e\x7f\x44\x1d\x77\x98\xeb\xd6\xf6\x62\xcd\x40\xa7\x33\ -\x8a\xa8\x9c\x24\x45\x7d\x77\x98\xbd\xfb\x0e\xe2\xc7\x8f\xed\xc0\ -\xa5\x89\x69\x83\x85\xee\xac\xe3\xd5\xb9\x8b\xdf\x98\x3e\xfc\xe4\ -\xb3\xb4\x56\x16\xdd\x61\xd0\xe2\xe3\x46\x40\x28\x2c\x5d\xa3\x69\ -\x1a\x2d\xb3\xde\x76\xc4\x92\x46\x37\x77\x58\x0e\x60\x15\x55\x07\ -\x10\x1f\xc0\x60\x90\x0e\x30\x07\xbb\x7a\x8e\xc3\x24\x2e\x10\x45\ -\x95\x4d\x89\x89\x8d\x4a\x20\x4c\x22\xa5\xe6\x2e\x84\xc4\x82\xa8\ -\x0f\x5c\xde\xca\x0a\xc1\x39\x40\x29\x45\x6f\x77\x1b\xae\x5f\xd7\ -\x87\xc1\x9e\xf6\xf0\x8e\x10\x82\x4a\xb9\x82\xe7\x5f\x78\x0d\x4f\ -\x3c\xb3\xdb\xcc\x1d\xc6\xae\xee\x29\x4f\x9f\xfc\xb7\x33\x47\xb6\ -\xbe\x2e\x5c\x3f\x13\xf6\xd4\xac\xe3\xe5\xa6\x06\xd6\x5b\xd6\xa2\ -\x82\x14\xd0\xdc\x5d\x68\x96\x2b\x58\xc5\x89\x63\x25\x0e\x20\x85\ -\xe5\x81\x41\x3e\x55\x1a\xc0\xec\xe6\xea\x54\x97\x28\x95\x4e\xf7\ -\xb2\x2a\x44\x54\xd9\x9c\xe2\xfd\x4a\x7c\xc4\x91\x55\x3b\x8e\x55\ -\x85\xc8\x70\x6f\x07\x36\x8d\xf5\xa2\xa7\xa3\x0d\x61\x66\x78\x42\ -\x08\xe6\xe7\xe7\xf1\xe4\xd6\x17\xb0\xe3\xc5\xbd\x28\x97\x4d\xdc\ -\x61\xca\x5b\x8b\x97\xde\xfa\xc6\xdc\xa9\x97\xde\x41\xf8\x9a\xe6\ -\xaa\x30\x13\x15\xa6\x59\x6c\xaa\x9e\x3c\x2b\x01\xa4\x1a\x96\x66\ -\x00\x55\xa3\x60\xd1\x88\x8a\xb6\x98\xf6\xa7\x7a\x0c\xe7\x51\xc7\ -\xaa\xbc\x50\x94\x65\x92\x2e\x2c\x7d\x14\x53\x33\x57\xfd\x38\x74\ -\x22\x3e\xca\x51\xaa\xb8\x20\x0c\x4a\xa9\xd9\x14\x05\x08\xb0\x6e\ -\xb0\x0b\xd7\xad\xe9\x41\x67\x7b\x3a\x62\xa6\x39\xc1\xf8\xf8\x14\ -\x1e\x7a\xec\x39\xec\xd9\x77\xd0\xc0\x1d\x06\x65\xbb\x5a\xf8\xef\ -\x73\xa7\x5f\xf9\xf7\xc5\x4b\x6f\x8f\x23\x00\x29\x53\x70\x52\x5d\ -\xf7\x7a\x01\x4a\x17\xde\x0c\xa0\x89\x9b\x37\x2e\x03\x6a\x14\xa4\ -\x1a\x06\xac\x66\x31\xaa\x66\x80\x15\x50\x1f\x80\xc5\x8d\xd3\xd5\ -\x03\x44\xb7\x0b\x21\x65\xc3\xb0\x4e\x95\x2c\x85\xca\xc7\xf7\xdb\ -\x60\xf5\x04\x2a\xe5\x14\x9e\x49\xca\x56\x44\xa5\x3c\x94\x49\x40\ -\x29\x45\x26\x45\xb0\x61\x24\x87\xab\x56\x77\xa3\x2d\x9d\x92\xcd\ -\x51\x4c\x00\x21\x04\x27\x4e\x9e\xc5\x83\x0f\x3f\x8b\x43\x47\xcd\ -\xdc\x61\xac\x72\xfe\xaf\x67\x8f\x3f\xf7\x5f\x2a\xf9\x73\x0b\x9a\ -\xeb\xd0\x28\x38\xe9\xe2\xea\x05\xa8\xa8\xb4\xad\x64\x4a\xad\x8e\ -\x6b\x48\x5a\xa1\xfa\xb1\xc7\xad\x52\xd1\xe2\x02\x4c\x3d\xec\x4a\ -\x15\xd6\x2c\xc0\x42\x48\x99\x88\xa8\x23\xaa\x2e\x13\x11\xf3\x1a\ -\x33\x2a\x81\x50\x05\xe1\xd4\x19\xf5\x93\x1a\xe5\x63\x58\x50\xbc\ -\x4d\x29\x3a\xda\x52\xb8\x66\x4d\x0f\xd6\xad\xea\x72\x76\x87\xf1\ -\x93\xaa\xd4\x3e\x8a\xfd\x07\x8e\xe0\x87\x0f\x6f\xc3\xd9\xf3\x86\ -\xee\x30\x85\xc9\x6f\xce\x1c\x7e\xea\x11\xab\x3c\xe7\xb9\xc3\xc8\ -\xc5\x86\x83\x4e\x9c\xb4\x8b\x05\x50\x51\xf1\xcb\x15\xc0\x1a\x96\ -\x66\xef\x94\xbc\x9c\xc0\x4a\x97\x1e\x30\x07\x33\x56\x74\xf1\x71\ -\x00\x0b\x9a\x32\xe3\xc6\xe9\xd2\x9b\xd4\xa9\x92\x58\x79\xfc\x8e\ -\x2b\x1e\x4d\x0a\x55\x58\xc0\xa4\x6c\x0a\xe4\x3a\x32\xd8\xb8\xae\ -\x17\x23\x7d\x1d\xa1\x2d\xf0\x76\x87\x79\xe9\x95\x37\xf0\xf0\x13\ -\x3b\x0d\xdd\x61\xac\xb7\x2a\x73\xe7\xbe\x36\x73\xe8\x89\x5d\xd4\ -\xb6\x54\xa5\x47\xbd\x48\x8d\xaa\x7d\xec\x79\x9c\x34\x71\xe2\x1b\ -\x01\xb8\x15\x07\x52\x40\xeb\xb6\x74\x07\x9a\x3f\x0d\xa1\x51\x36\ -\x24\x86\xd5\x3b\xdd\x40\x15\xaf\xab\x4b\x0c\xaf\xd7\x5e\x55\xaf\ -\xca\x67\x9a\x27\x82\x51\x11\xa8\xf6\x3f\x67\x9f\x4e\x0a\xf8\xce\ -\xc8\x41\x3c\xe5\x12\x52\x00\x83\xb9\x36\x6c\x5a\xd7\x8b\xbe\xee\ -\x76\x45\x59\x94\xad\x11\x85\x62\x09\xcf\x6e\x7f\x09\x5b\x9f\x7b\ -\x15\x85\x62\x29\x0a\xa4\x28\xb5\xaa\x3b\x4b\x53\xc7\xbe\x36\x7b\ -\x6c\xfb\xdb\x21\xfd\x8f\x0b\x4e\x61\xf1\x71\x8f\xc5\xcb\x16\x96\ -\xbe\x55\x2c\xaa\x91\xf2\x4c\xe2\x9a\x0a\x50\x9e\xb4\x02\xa8\xd8\ -\x8e\xc4\xb1\x47\xb1\xd2\x6c\x5b\x13\x62\x96\x17\x37\x1e\x9a\x34\ -\xad\x98\x7a\xd0\x4c\x95\x0f\xfe\xb9\xf1\xf4\x04\x41\xe7\xf3\xe3\ -\x1c\xb8\xa2\x52\xfa\xa0\xb2\xd5\x7d\x1d\xd8\xa8\x72\x87\xa1\x6c\ -\x2a\xf8\xee\x30\x8f\x3c\xf1\x3c\x5e\x7c\x79\xbf\x99\x3b\x4c\xad\ -\xf4\x50\xe1\xc2\x9b\xdf\x9c\x3f\xb3\xe7\x2c\xc2\x37\x02\x85\x22\ -\xbc\x5e\x70\xaa\x27\x5d\xb3\x00\x2a\x4e\x7c\x2b\x58\x57\x54\xfa\ -\xa6\x4a\x2b\x81\xca\x6b\xb8\x29\x10\x35\x6b\x94\x0f\x88\x0f\x70\ -\xf5\xc6\xc3\xa0\x0e\xd5\x31\x60\x76\x53\x4d\xd2\x36\x02\x5c\x88\ -\x93\x97\xb2\xff\x09\xc0\xa1\x66\x54\x8e\xa4\x08\xb0\x7e\x55\x17\ -\xae\x5e\xd3\x83\x6c\x26\x25\x81\x14\x7b\x4e\x08\xc1\xb9\x73\x17\ -\xf1\xe0\x23\xdb\xf0\xe6\x5b\xc7\x4c\xdc\x61\x0a\x76\xa5\xf0\xfd\ -\xb9\x53\xbb\xff\xaa\x38\x71\x64\x16\xfa\x7b\xd3\x08\xb3\x6a\x25\ -\xcb\x6a\x36\x18\xd5\x93\x67\xd9\xa9\x7a\xa2\xb4\x1a\xa8\xbc\x0e\ -\xb4\xda\x58\xce\x8a\xe9\xd4\x82\xa8\x3c\xaa\xf8\x7a\x8e\xc3\xa4\ -\x9e\xa9\x07\x51\x69\xeb\x01\x2e\x77\xc2\x67\x34\xab\xf2\x3b\x48\ -\x83\xae\xea\x5c\x5c\x28\xa5\x68\xcf\xa4\x70\xd5\xea\x1c\xae\x18\ -\xee\x76\x76\x87\x11\x0a\x63\x55\x3e\x02\xe0\xf0\x91\x77\xf0\xc3\ -\x87\x9e\xc5\xf1\x93\x26\xee\x30\x74\xc2\x2a\xcf\x7e\x6b\xe6\xc8\ -\x33\xff\x50\x5d\x18\x67\xdd\x61\x54\xfd\x8f\x0b\x5e\xad\x66\x59\ -\x51\x60\xa2\x0a\xaf\xa7\xac\xc5\x04\xb0\x96\xc9\x62\x00\x95\xd7\ -\x91\xc5\x06\x24\x28\xf2\x46\x01\x12\x9b\x07\x86\x65\x21\x22\x0d\ -\x0c\xf2\x84\xd5\x09\x4d\xde\x66\x82\x9c\x11\x48\x09\x19\xdc\x42\ -\x3d\xfd\x8e\x82\x9b\x8d\x4e\x81\x4e\xc1\x1d\x46\x07\x52\x81\x3b\ -\xcc\xdb\x78\xf0\x91\xe7\x0c\xdd\x61\xec\xe3\xb5\x85\x89\xaf\x4d\ -\x1f\x7a\xfc\x69\xbb\x5a\x8c\xf3\xf2\x34\x0b\x9c\x4c\xcb\x6a\x24\ -\x8d\x69\x7c\x54\x58\x54\x99\xcd\x00\xb0\x96\xca\x62\x01\x15\xdb\ -\x21\x53\xfb\x13\x14\xe9\x21\xe4\xad\x57\x75\x63\xcb\x06\xe2\x83\ -\x47\x3d\xaa\x9c\x0a\x68\xea\x05\x2d\xd3\x3a\xe2\xe4\xa9\xeb\x81\ -\xa3\xc2\x9f\x27\x3d\x5d\x6d\xb8\x7e\xac\x17\xab\x7a\xb2\xca\x4c\ -\x2c\x48\x39\xee\x30\x7b\xf0\xf8\xd6\x17\x91\x9f\x33\x71\x87\xb1\ -\xf6\x54\x66\xcf\x7c\x75\xfa\xd0\xe3\x7b\xc0\xb3\x28\x55\xf3\xa2\ -\xc2\x5a\x01\x4e\xa6\xe9\x9a\x09\x50\x8d\xc6\xc7\x05\xbf\x45\x01\ -\x28\x4f\x16\x13\xa8\xd8\x8e\xb6\xca\xfe\x14\x77\x6a\x01\x1b\xaf\ -\x0a\x37\x8d\x17\xeb\xd1\xb5\x13\x9a\xb8\x28\x80\xa9\x07\x80\xe2\ -\xb4\x3d\xc2\x98\x4e\xc3\xa1\xcc\x9d\x96\xee\xd9\xa8\x86\x7a\xb3\ -\xd8\x34\xd6\x2b\xef\x0e\x43\xd9\x1f\xea\xba\xc3\x2c\xe0\xc9\xa7\ -\x77\x61\xfb\x0b\xaf\x1b\xb9\xc3\x50\xab\xf2\x74\x71\xe2\xe8\x9f\ -\xe4\xdf\xd9\x71\x1c\xc1\x6e\xc5\xba\xfe\xd5\x1b\x56\x2f\x38\x85\ -\xc5\x99\xe4\x89\x03\x50\xf5\xe4\x5b\x51\x2c\x8a\x95\xa5\x00\x2a\ -\xaf\xa3\xad\x56\xf7\x4c\xe3\x4d\xc2\x4d\xe2\xc3\xda\x6e\x1a\xa7\ -\xeb\x77\x58\x5d\xf5\x4a\x2c\xd6\xe6\xe0\x14\xe5\x0d\xe6\xc2\x84\ -\x4f\x02\x8a\x75\xab\xba\x70\xdd\x5a\x77\x77\x18\xf0\x35\x70\xf6\ -\x28\x77\x77\x98\x1f\x3f\xba\x1d\xaf\xee\x35\x74\x87\xa9\x95\xfe\ -\xdb\xc2\xb9\xbd\x7f\xbe\x70\x6e\x2f\xeb\x0e\x23\xd4\x22\x35\x1b\ -\x06\xe1\x8d\x82\x57\x3d\xec\x49\x15\x57\x2f\x40\x99\xd4\xd9\x6c\ -\x35\x70\x51\x65\xa9\x80\x8a\xed\xf0\x62\xa9\x7b\xcd\x04\x2c\xd3\ -\x34\xba\x7a\x75\x71\x26\xea\x70\x23\x13\x4c\x75\x62\x60\xa3\x0a\ -\x9e\x59\x6f\xfe\x39\x3b\xe1\x33\xed\xb9\xc3\xb8\xbb\xc3\xc8\xeb\ -\xa7\x07\x01\x84\x10\x9c\x3c\x79\x16\x3f\x7c\xe8\x59\x1c\x3c\x7a\ -\xca\x0d\x0b\xad\x7b\xd6\xaa\x2c\xfc\x87\xfc\x3b\x3b\xbf\x57\x9e\ -\x3e\x61\xe2\x0e\x03\x83\xb8\x46\xc1\x6a\x31\x55\xc0\xb0\xf0\xc5\ -\x56\x03\x97\x44\x96\x12\xa8\xd8\x0b\xd0\x4a\x75\x4f\x77\x6c\x62\ -\x67\xaa\x07\xb0\xe2\xb0\x27\xc4\x28\x37\xae\xc4\xc9\x6f\x1b\x2d\ -\xf3\xe2\x0b\x03\x3d\x94\xa0\x2d\x93\xc2\xc6\x75\x7d\x58\x33\xd8\ -\x89\x34\x21\x8c\x63\xb1\xfa\xdd\xdf\x7f\xe0\x08\x7e\xf8\xd0\x36\ -\x9c\x39\x3f\x6e\x32\xb2\x77\xb6\x56\x9a\xfd\xfa\xcc\xe1\x27\x7f\ -\x54\x2b\x4e\xd7\x0c\xfa\xd4\x88\x0a\x28\x86\xb7\x42\x25\x8c\x9b\ -\x46\x97\x27\x0e\x00\xa9\xc2\x97\x3d\x8b\x62\x65\x39\x00\x15\xd0\ -\x5a\x75\xcf\x74\xa4\x0f\xa8\x5f\xb5\x43\x44\xb8\x2a\xae\x1e\x3b\ -\x95\xaa\x6d\x71\xd5\x40\x4d\x39\x26\x40\x45\x15\x21\x14\xbd\x5d\ -\x6d\xe8\xeb\x6e\xf3\xcf\x95\x95\xb2\xee\x30\x8f\xef\xc4\xd4\x4c\ -\xde\x64\x64\xef\xad\xda\xc2\xf8\x1f\x4d\xbd\xf5\xf0\x0e\x6a\xd7\ -\xd8\xb6\xab\x1b\xd3\x9c\xf0\xa5\xb4\x57\x35\x0b\xdc\x5a\xa1\x06\ -\x2e\xa9\x2c\x17\xa0\xf2\xc4\x14\x90\x4c\x80\x2d\x2c\x1e\x0d\xa4\ -\x89\x33\x47\xaa\x11\x95\xcf\x44\x9a\x61\xab\x72\xfa\x19\xc5\x6c\ -\x00\x77\xf2\x39\x95\xf4\xb4\xa8\xac\x84\x10\x14\x5d\x77\x98\xa7\ -\xb7\xbf\x62\xe6\x0e\x63\xd7\x9e\xaf\xcc\x9e\xf9\xa3\xe9\x43\x4f\ -\xec\x47\x60\x34\x37\x79\x89\x56\xb2\x0a\x28\x9e\x2f\x26\x40\x45\ -\xd5\xb7\xa4\xb2\xdc\x80\x0a\x68\xcc\xfe\xd4\xac\x99\xe4\x26\x69\ -\xe2\xce\x91\x8a\xcb\x7a\x16\x43\xe5\x03\x93\xd6\x28\xbd\xa3\xee\ -\x05\xab\x24\x44\xa1\x14\x21\xc0\xcc\x4c\x1e\x8f\x3e\xf1\x3c\x5e\ -\x78\xf9\x4d\x13\x77\x98\x1a\xb5\x2a\x3f\x2a\x8e\x1f\xfe\x5a\xfe\ -\xc4\xce\x33\x50\xef\x0e\x63\xd2\xbf\x46\x54\xc0\x56\xb1\xaa\xb0\ -\xb4\xad\x3c\x5e\x51\x6a\x9e\x4a\x96\x23\x50\x79\x62\x62\x7f\x6a\ -\xc5\x4c\xf2\x7a\x66\x9b\x37\x73\x94\xaf\xd1\x89\x9d\x3a\x09\x2b\ -\xc7\x33\xa6\x1b\xd7\x11\x98\xa1\x18\x23\xb9\x10\x97\x22\x04\xe7\ -\xce\x5d\xc2\x8f\x1e\xd9\x8e\x37\xde\x3a\x0a\x9b\x46\xb9\xc3\x60\ -\xc1\xae\x95\xbe\x3b\x7f\x66\xcf\xb7\x0b\x17\xde\x9c\x86\x1e\xa4\ -\x94\x4d\x31\x08\x8f\xc3\xb6\x16\x43\x05\x0c\x8b\x6b\x36\x40\xa9\ -\xc2\x4d\xd8\xe4\xb2\x90\xe5\x0c\x54\x80\x9a\xbd\xc4\x1d\xbd\x6b\ -\x16\x18\xe9\xca\x6d\x24\xae\x11\x95\x0f\x75\xe6\x55\x89\x91\xea\ -\x17\x5d\x08\x2f\x87\x8f\x9e\xc0\x0f\x1f\xda\x86\xe3\x27\xcf\x81\ -\x10\x82\xf0\x1a\xe8\x84\x55\x59\xf8\x66\xfe\xf8\x8e\xff\x5a\x9e\ -\x39\x55\x82\x5a\xdd\x33\xa9\x36\x2a\x5c\x17\xb7\x58\x2a\x60\x58\ -\x5c\xb3\x40\xac\x5e\x35\x71\xd9\xca\x72\x07\x2a\x4f\x4c\x41\x65\ -\x31\x5c\x5f\xe2\xa8\x7f\xcb\x5d\xe5\xf3\x84\x92\x08\x63\xba\x69\ -\xa1\x84\x00\x96\x65\x63\xdf\x1b\x07\xf1\xa3\x47\x9f\xc3\xc5\xf1\ -\x68\x77\x18\x50\xfb\x78\xad\x34\xfb\xd5\xe9\x83\x8f\x3e\x6e\x95\ -\xe7\xc5\xdd\x61\xea\x05\xaa\xb0\xf8\xc5\x50\x01\xa3\xce\xe3\x02\ -\x54\x23\x69\x56\x2c\x40\x79\xb2\x52\x80\xca\x93\x66\x03\x96\x2a\ -\x0d\x42\xf2\x34\x92\x6e\x39\x4f\xec\x8c\x5e\xe6\x85\xc2\x77\xe7\ -\xd3\xe1\x0e\x21\x04\x95\x4a\x05\x3b\x5f\x78\x1d\x8f\x6f\x7d\xc1\ -\xcc\x1d\x86\xda\xaf\xd6\x16\xc6\xff\x60\xf2\xc0\x8f\x5e\x02\xa5\ -\x04\xf1\x40\x4a\x68\xa1\x71\xb8\x69\xda\x46\x59\x55\x58\xfc\x62\ -\x80\xd8\x8a\x07\x28\x4f\x56\x1a\x50\x79\xd2\x28\x60\x85\xa5\x69\ -\x96\xf1\x1c\x11\xf1\xd4\x20\x2c\x6e\xb9\xf5\x48\xe0\xeb\x17\xa9\ -\xfd\x39\xd5\x8a\x6b\x9b\x13\x00\x24\x45\x30\x3f\x5f\xc0\x53\xcf\ -\xbc\x80\xed\xbb\x5e\x47\xb9\x5c\x89\x02\x29\x9b\xda\xb5\x27\x2b\ -\xb3\x67\xfe\xdf\xe9\x43\x4f\x1c\x41\xb4\xaa\xb7\x18\x2a\x60\x3d\ -\x4c\x2b\x6e\x7c\xa3\x00\xd5\x48\x9a\x15\x07\x50\x9e\xac\x54\xa0\ -\xf2\xa4\x5e\xc0\xaa\x67\x1e\x54\x58\xba\x46\x1d\x8c\xeb\x05\x2e\ -\xd3\xf2\xa3\x84\x82\xa4\xa8\x3e\x52\x77\xe6\x56\x4d\x08\x26\x26\ -\xa6\xf1\xf0\xe3\xcf\xe1\x95\xd7\xdf\x86\x65\xd9\x91\xee\x30\xd4\ -\xaa\xfe\xd7\xc2\xa5\x83\xdf\x98\x3b\xb9\xeb\x22\x1a\x33\x9a\x37\ -\x12\xdf\x2c\x15\x50\x0c\x6b\xa5\x0a\x18\x96\xee\x5d\x07\x50\x9e\ -\xac\x74\xa0\xf2\x24\x8e\x61\xbc\x51\x1b\x55\x54\x79\xcd\x70\x30\ -\x5e\x4c\x5f\x3e\x0a\x80\xd6\x67\x4a\x77\xfc\xf3\x4e\x9d\x3a\x8b\ -\x07\x1f\xd9\x86\x83\x47\x3c\x77\x98\xd0\xd2\x66\xed\x5a\xe9\x2f\ -\x17\xce\xec\xf9\xeb\x85\x0b\x6f\xce\xa1\x39\x20\x65\x92\x76\x31\ -\x55\xc0\xa8\xf3\x7a\xd2\x36\x6a\x68\x5f\xd1\xf2\x6e\x01\x2a\x4f\ -\xe2\x8e\xf0\xb1\x79\x74\x12\x97\x3d\xc5\xb5\x53\x99\xb4\xc1\xa4\ -\xec\xb8\xc2\xcf\xf2\x26\xd1\xc6\x74\xd5\x76\x56\x07\xde\x3e\x86\ -\x07\x1f\xd9\x86\x33\xe7\xcc\xdc\x61\xec\x6a\xe1\x8f\x67\x8e\x3e\ -\xf3\x3f\x2a\xf9\x73\xd5\x3a\xfb\xd4\x6c\x15\xb0\x59\x00\xb6\x9c\ -\x58\xd6\xbb\x06\xa0\x3c\x79\xb7\x01\x95\x27\xcd\x9c\x6e\x10\x96\ -\xae\x51\x95\xaf\xd1\x3c\xcd\x9b\x99\x6e\xba\x5d\x16\x0d\xdc\x61\ -\x5e\xdd\xb3\x1f\x0f\x3f\xb9\x13\x93\xd3\x79\xa4\xa2\x47\xf6\x0e\ -\xd4\x4a\xf9\xdf\x9f\xdc\xff\xc3\x67\xa9\x55\xa9\xf7\xfa\x98\xa4\ -\x6f\x74\x5a\x42\x58\xdc\x4a\x51\x01\xdf\x75\xf2\x6e\x05\x2a\x4f\ -\x9a\x39\xdd\xa0\x19\xbe\x7a\xf5\x3c\x48\xf5\xf8\xf8\x99\xd4\x45\ -\xb9\xb2\x0d\x9d\x92\x09\x21\x28\x95\x4a\xd8\xbe\xe3\x15\x6c\x7d\ -\xee\x15\x2c\x14\x4a\x51\x20\x45\x41\xed\x1d\xd5\x85\x89\xdf\x9b\ -\xdc\xff\xc3\x7d\x6e\x9d\x81\x01\x3f\x9e\x98\xa6\x8f\x0b\x56\xba\ -\xf0\x56\xab\x80\xe2\x79\x02\x50\x1a\x79\xb7\x03\x95\x27\x71\xa7\ -\x05\x44\xa5\x6b\xc6\xc4\xcd\x46\xe7\x4c\x35\x92\x57\x71\x5d\x22\ -\x66\xa6\x53\xea\xbb\xc3\x3c\xfe\xd4\x2e\xbc\xf0\xca\x9b\xa8\x56\ -\xa3\x77\x87\xa1\xb6\xf5\xa0\xe3\xb3\xf7\xf8\x49\x00\x69\xa6\xde\ -\x46\x5f\xae\x7a\xc0\x28\x2c\xbe\x59\x86\xf5\x46\xa7\x34\x24\xe0\ -\xa4\x90\xcb\x05\xa8\x58\x69\x06\x7b\x0a\x13\x15\x03\xaa\x67\xdd\ -\xa9\x7a\xa4\x7e\x75\x2a\x14\x70\x08\x08\x21\x38\x7f\x61\x1c\x3f\ -\x7a\x78\x9b\xe3\x0e\x63\x47\xbb\xc3\x50\xab\xfa\x37\xc5\x89\xc3\ -\x7f\x9e\x7f\xe7\xf9\x49\x38\x20\xd5\x08\xb8\xd4\x93\xbe\x15\x76\ -\x29\x55\x58\x33\x55\xc0\xb8\x79\x2f\x0b\xb9\x1c\x81\xca\x93\x7a\ -\x0d\xe4\x8b\x35\xca\xd7\xec\x39\x53\xa1\xbe\x7e\x61\xeb\x51\x11\ -\x00\xc7\xde\x39\x8d\xed\xcf\xbf\x8a\xa3\xef\x9c\x71\xdc\x61\xc2\ -\x4d\x52\xe3\xb4\x56\xfe\xfa\xfc\xd9\x3d\xdf\x5f\x38\xff\x46\x11\ -\xcd\x1f\xd9\x33\xcd\xd7\x8c\xb9\x55\xaa\xb0\xa5\x54\x01\x2f\x4b\ -\xb9\x9c\x81\x8a\x95\x66\x81\x96\x89\x2c\x99\x9b\x0c\x78\xb5\x4f\ -\x88\xd3\x03\x55\xcd\xb2\xb0\x6b\xf7\x3e\x54\xa2\x55\x3d\x00\xf4\ -\x98\x5d\x2d\xfe\xc1\xf4\xc1\xc7\x1f\xaa\x2e\x8c\x8b\xee\x30\x71\ -\xda\xda\x8c\x74\xef\x16\x15\xf0\xb2\x97\x04\xa8\x64\x79\xb7\xaa\ -\x7c\x61\xf5\x50\x42\x52\xd0\xe1\x18\xa5\x14\xd5\x9a\x65\x32\xfd\ -\xe0\x15\xab\x32\xff\x3b\x13\x6f\xfc\xe3\x0b\xd4\xaa\x34\x0a\xaa\ -\xcd\x4c\xbb\x52\x55\xc0\x44\x5c\x49\x80\x2a\x5c\x96\xd3\x28\x5f\ -\xbd\x62\xe6\xeb\x17\x73\x5f\x3f\x41\x2c\x50\xfb\x89\x5a\x71\xfa\ -\x5f\x4f\xbc\xf1\x8f\x07\x61\xa6\xea\x85\x49\xb3\xc1\xad\x19\x2a\ -\x60\xab\x98\x56\x02\x4e\x06\x92\x00\x95\xb9\xbc\x1b\x55\xbe\x20\ -\x0d\xa9\xbb\x6d\x25\x4a\xad\xbf\xab\xe6\xcf\xff\xf1\xd4\xdb\x8f\ -\x9c\x47\xe3\x20\xa5\x6a\x7f\xa3\x69\x9a\xa1\x02\xd6\x33\x09\xd4\ -\xb4\xec\x44\x22\x24\x01\xaa\xfa\x24\x6a\x76\xf9\x62\x39\x18\x37\ -\x8b\x7d\x85\xfa\xfa\x85\xc8\x2c\xb5\x6b\x7f\x5e\x9e\x3e\xf9\xed\ -\x99\x23\x4f\xe7\xb1\x34\x20\xd5\x8c\x74\xcd\x9a\x9d\x5e\x4f\x79\ -\x89\x18\x48\x02\x54\x8d\x8b\x89\xcd\xa9\xd1\xb9\x5b\x26\xac\x48\ -\x55\x96\xae\x8d\x8a\xf2\x63\xab\x7e\x67\xa8\x55\xfd\xa3\xf9\xb3\ -\xaf\xfd\x60\xe1\xdc\xeb\xf5\xba\xc3\x44\xc9\x62\xa8\x80\xcd\x48\ -\x9f\x00\x53\x8b\x25\x01\xaa\xe6\x4b\xb3\x41\x2a\x62\x09\xe1\xb0\ -\x91\x3c\x23\x70\x23\x70\xa6\x27\xc4\xe9\xe2\x9b\xb4\x56\xf9\x9d\ -\xa9\x83\x8f\x3e\x55\x9d\xbf\xe4\xd5\xd3\xea\x17\xb3\x51\x15\xb0\ -\x5e\xf5\xb0\x5e\x15\x30\x91\x26\x4a\x02\x54\xad\x97\x56\xcd\x8f\ -\x6a\xa6\xd1\x9d\x02\xc4\x32\x28\x8b\x02\x74\xbb\x5d\x2d\xfd\xe6\ -\xa5\x3d\x7f\xfb\x1a\xcc\x97\x0b\x6e\x86\x34\xc3\x56\x15\x96\xa6\ -\x59\xe1\x89\xb4\x40\x12\xa0\x5a\x7c\xd1\xb1\xa6\x66\x3e\xf8\x71\ -\x40\x8c\x02\x80\x6d\x95\xcf\xa7\xda\x3a\x2f\x01\x58\xa3\x49\x57\ -\x05\xa5\xff\xc3\xaa\x2e\xfc\xde\xf8\x6b\x7f\x77\x1c\xd1\x33\xcd\ -\x5b\x7d\xcd\xea\x4d\xdf\xac\x49\xa0\x89\x2c\xa2\xa4\x1b\x2f\x22\ -\x91\x16\x49\xe3\xbb\x2d\xc4\x28\x3f\xdd\xd6\x5d\x6c\xef\x19\xbd\ -\x1e\x84\xdc\xad\x48\xbb\x00\x4a\xbf\x6d\x55\x16\x7e\x77\xfc\xf5\ -\xbf\x3b\x87\x80\x49\x2d\x85\x2c\x95\x0a\x98\xc8\x12\x4a\x02\x54\ -\x2b\x4f\x5a\x02\x60\x95\xfc\x59\xab\x7b\xed\x6d\x47\x49\x2a\xbd\ -\x1e\xc0\x35\x70\x9e\x0d\x1b\xc0\x09\x50\xfb\xdf\xd4\xca\x73\xdf\ -\x9c\xd8\xfb\x83\x59\xa8\x41\x2a\x7a\xfa\x43\xf3\xa4\xd5\x2a\x60\ -\x22\xcb\x50\x5a\xfd\xd5\x4e\x64\x71\xa5\xd1\x91\x41\xba\xfa\xae\ -\x5f\x5d\x4d\x52\x99\xcf\x80\x60\x03\x80\x12\xb5\xed\x47\xcb\xd3\ -\x27\xde\x9a\x39\xf2\xb4\x55\x47\xf9\xcd\x96\x56\xb9\xe2\x24\xb2\ -\xcc\x65\xa9\x1f\xbc\x44\x16\x5f\x74\xab\x8c\x7a\x12\x36\xf2\xb8\ -\x94\xd2\xe8\x84\xdb\x44\x56\xb0\x2c\x87\x07\x30\x91\x95\x21\xad\ -\x7a\x56\x12\xc0\x49\x24\x52\xfe\x7f\x90\xbe\xf8\xd8\xd4\xeb\x70\ -\x25\x00\x00\x00\x14\x74\x45\x58\x74\x41\x75\x74\x68\x6f\x72\x00\ -\x4a\x61\x6b\x75\x62\x20\x53\x74\x65\x69\x6e\x65\x72\xe6\xfb\xf7\ -\x2f\x00\x00\x00\x49\x74\x45\x58\x74\x43\x6f\x70\x79\x72\x69\x67\ -\x68\x74\x00\x50\x75\x62\x6c\x69\x63\x20\x44\x6f\x6d\x61\x69\x6e\ -\x20\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\ -\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\ -\x6e\x73\x65\x73\x2f\x70\x75\x62\x6c\x69\x63\x64\x6f\x6d\x61\x69\ -\x6e\x2f\x59\xc3\xfe\xca\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\ -\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\ -\x36\x2d\x32\x30\x54\x32\x33\x3a\x32\x34\x3a\x32\x35\x2d\x30\x34\ -\x3a\x30\x30\x77\x9c\x29\x53\x00\x00\x00\x25\x74\x45\x58\x74\x64\ -\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x30\x2d\ -\x30\x36\x2d\x32\x30\x54\x32\x33\x3a\x32\x34\x3a\x32\x35\x2d\x30\ -\x34\x3a\x30\x30\x06\xc1\x91\xef\x00\x00\x00\x19\x74\x45\x58\x74\ -\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\ -\x21\x74\x45\x58\x74\x53\x6f\x75\x72\x63\x65\x00\x68\x74\x74\x70\ -\x3a\x2f\x2f\x6a\x69\x6d\x6d\x61\x63\x2e\x6d\x75\x73\x69\x63\x68\ -\x61\x6c\x6c\x2e\x63\x7a\x69\x66\xe3\x5e\x00\x00\x00\x0d\x74\x45\ -\x58\x74\x54\x69\x74\x6c\x65\x00\x47\x6f\x20\x44\x6f\x77\x6e\xf3\ -\xfd\x14\x79\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x05\xb5\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ -\x01\x00\x9a\x9c\x18\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\ -\x8e\x7c\xfb\x51\x93\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\ -\x25\x00\x00\x80\x83\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\ -\x30\x00\x00\xea\x60\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\ -\x46\x00\x00\x05\x2b\x49\x44\x41\x54\x78\xda\x62\xf8\xff\xff\x3f\ -\x03\x2d\x30\x40\x00\x96\xc4\x20\x05\x80\x18\x84\x81\x01\xad\x2c\ -\x78\x2e\xd5\x47\x2c\x1e\xbc\x95\xfe\xc2\xff\xff\x65\xdb\xb2\x03\ -\x09\x64\x72\xcb\xdd\x61\x66\xe8\xbd\x23\x33\x31\xe7\xc4\xa1\xaa\ -\xf0\x23\xcc\xfc\xaa\xea\x22\xa2\xd8\xfb\x39\x32\x22\xee\x39\xc6\ -\xc0\xf6\x68\xad\x41\x44\x6e\x3e\x01\x84\x62\xb0\x88\x88\x08\x83\ -\x81\x81\x01\x83\x91\x91\x11\x48\x3d\x9f\xb5\xb5\x75\x47\x67\x67\ -\xe7\xcb\x0d\x1b\x36\xfc\x3f\x70\xe0\xc0\xff\x43\x87\x0e\xfd\x5f\ -\xb3\x66\xcd\x7f\xa0\xd8\xff\x98\x98\x98\x67\xf2\xf2\xf2\x25\x20\ -\x85\xc2\xc2\xc2\x0c\x4c\x4c\x4c\x28\x06\x03\x04\x10\xdc\x60\x90\ -\xad\x42\x42\x42\x0c\x1a\x1a\x1a\x0c\x40\x0d\xd1\xdb\xb6\x6d\xfb\ -\xff\xfb\xf7\xef\xff\xd8\xc0\xfb\xf7\xef\xff\xef\xde\xbd\xfb\x7f\ -\x73\x73\xf3\xff\xc8\xc8\xc8\xff\x9c\x9c\x9c\x66\x20\x0b\x80\xbe\ -\x82\x1b\x0c\x10\x40\x60\x83\xc1\xc1\x20\x26\xc6\x00\xf4\x2a\x88\ -\x1d\x7c\xea\xd4\xa9\xff\xb8\xc0\xaf\x5f\xbf\xfe\x7f\xfb\xf6\xed\ -\xff\x9b\x37\x6f\xfe\xaf\x5c\xb9\xf2\x7f\x4d\x4d\xcd\xff\xb0\xb0\ -\xb0\xff\x40\x73\x79\x41\xae\x86\x19\x0c\x10\x40\x70\x83\x05\x05\ -\x05\x41\x96\x2a\xce\x99\x33\xe7\xff\x9f\x3f\x7f\x70\x1a\x0c\x33\ -\xf4\xd5\xab\x57\xff\x2f\x5c\xb8\xf0\xbf\xad\xad\xed\x7f\x49\x49\ -\xc9\x7f\x19\x19\x99\x4e\x58\x84\x30\x32\x32\x32\x00\x04\x10\xd8\ -\x60\x11\x60\x10\x70\x00\x6d\x89\x8d\x8b\x3b\x7a\xfb\xce\x9d\xff\ -\xf8\xc0\xe7\x2f\x5f\xfe\xbf\x78\xf1\xe2\xff\xd3\xa7\x4f\xff\x1f\ -\x3f\x7e\xfc\xff\xa4\x49\x93\xc0\x61\xee\xe3\xe3\xf3\x0d\x68\xa6\ -\x00\xcc\x60\x80\x00\x02\x1b\x2c\x0c\x72\x2d\x23\xa3\xec\xcc\x25\ -\x4b\xfe\xff\x05\x0a\xfc\xc1\x63\xf0\xc7\x9f\x3f\xff\x3f\x7b\xfe\ -\xfc\xff\xdd\xbb\x77\xff\xcf\x9a\x35\xeb\xff\xbc\x79\xf3\xfe\x4f\ -\x9f\x3e\xfd\x7f\x5e\x5e\xde\x7f\x31\x31\xb1\x6a\x98\xab\x01\x02\ -\x08\x92\xe6\x80\x40\xcd\xca\xaa\xfc\xc4\xb5\x6b\xff\x3f\x00\x23\ -\xe5\x4c\x61\xe1\xff\xf3\xd9\xd9\xff\xaf\xe6\xe6\xfe\xbf\x03\xd4\ -\x70\x0f\x88\xef\x26\x25\xfd\x3f\xe6\xef\xff\xff\xdc\x9e\x3d\xff\ -\x5f\x00\x23\x6f\xe9\xd2\xa5\xff\x67\xcc\x98\xf1\x7f\xc1\x82\x05\ -\xff\x67\xcf\x9e\xfd\xbf\xae\xae\xee\xbf\xa5\xa5\xe5\x35\x98\xb9\ -\x00\x01\x04\x37\x38\x3b\x21\xe1\xe6\x2b\x1b\x9b\xff\x1f\x95\x94\ -\xfe\xbf\x96\x93\xfb\xff\x16\x88\x5f\x88\x89\xfd\xbf\xc2\xc0\xf0\ -\x7f\x13\x10\xf7\x03\x71\x85\xac\xec\xff\xc5\xcb\x97\xff\x5f\xb6\ -\x7a\x35\xd8\xa5\x0b\x81\x86\x82\xe2\x04\xe4\xf2\xd6\xd6\xd6\xff\ -\xe1\xe1\xe1\x20\xc3\x64\x40\x91\x08\x10\x40\x10\x83\xb9\xb9\x59\ -\x4f\x02\x0d\x3a\xc3\xc4\xf4\xff\x84\xa0\xe0\xff\xeb\xca\xca\xff\ -\x8f\x00\x0d\x59\xa6\xa0\xf0\xbf\xc7\xd8\xf8\x7f\x63\x5c\xdc\xff\ -\xce\x89\x13\xff\xcf\x06\xa6\xe7\xc5\xab\x56\xfd\x5f\x01\x4c\x0d\ -\xcb\x81\x16\xcc\x9f\x3f\x1f\xec\xea\xa9\x53\xa7\xfe\xef\xea\xea\ -\xfa\x9f\x0b\xf4\x21\x2f\x2f\x6f\x06\x28\xf9\x02\x04\x10\xd8\x60\ -\x71\x06\x06\x8d\x7b\xbc\xbc\xff\x73\x81\x36\xe6\x66\x64\xfc\xcf\ -\x0c\x09\xf9\x9f\x01\x0c\x8a\xd2\xf6\xf6\xff\x5d\xc0\x70\x9f\xb7\ -\x75\xeb\xff\x95\x5b\xb6\xfc\x5f\xbf\x69\xd3\xff\xf5\x40\xc3\x57\ -\xac\x58\xf1\x7f\xf1\xe2\xc5\xe0\x20\x98\x32\x65\xca\xff\x09\x13\ -\x26\x80\x23\xb0\xb2\xb2\xf2\xbf\x8a\x8a\xca\x4a\x50\x08\x00\x04\ -\x10\xd8\x60\x59\x06\x06\xed\xf3\xdc\xdc\xff\x73\x81\x12\xb3\x81\ -\x19\x63\xf9\xce\x9d\xff\x37\x00\xc3\x7a\x1d\x90\xbd\x6e\xe3\xc6\ -\xff\x1b\x81\x06\xae\x5b\xbf\x1e\x9c\xeb\x40\x2e\x5d\x02\xb4\x0c\ -\xe4\x5a\x50\xa4\x81\x0c\xed\xee\xee\xfe\xdf\x0e\x74\x44\x6d\x6d\ -\xed\x7f\x60\x71\x70\x15\x64\x2e\x40\x00\x81\x0d\x66\x03\x66\x9a\ -\xbd\xc0\x30\x14\xe3\xe3\x9b\x27\xac\xa4\xd4\xea\xed\xeb\xfb\xb0\ -\xa7\xa7\xe7\xff\xda\xb5\x6b\xff\x83\xb2\x33\x28\x23\x2c\x5b\xb6\ -\x0c\x6c\xe0\xc2\x85\x0b\xc1\xe1\x0a\x32\x74\x22\x30\x78\x40\x86\ -\x82\xc2\xb7\xa1\xa1\x01\x6c\xb0\xaf\xaf\xef\x2f\x50\x71\x00\x10\ -\x40\x60\x83\xb9\x81\xac\x76\x06\x86\x63\xf6\x0c\x0c\x1d\xca\x90\ -\x72\x02\x04\x02\xec\xec\xec\xae\x80\x32\x00\x28\x05\x2c\x5a\xb4\ -\xe8\xff\xdc\xb9\x73\xc1\x11\x05\x0a\x53\x98\x4b\x41\xf2\xf5\xf5\ -\xf5\xff\xab\xab\xab\xff\x57\x55\x55\xfd\x0f\x08\x08\x00\x45\xa0\ -\x24\x40\x00\x81\x0d\x36\x07\xb2\x8c\x81\x06\x05\x30\x30\x6c\x86\ -\x99\xca\x0b\xc9\x89\x0c\xc2\x22\x22\x4d\xb9\xc0\xe4\x36\x79\xf2\ -\x64\xb0\x2b\x61\x86\x82\x22\x0b\xe6\x52\x98\xa1\x15\x15\x15\xff\ -\x6d\x6c\x6c\x1e\x00\xb5\x71\x02\x04\x10\x3c\xb9\x21\x03\x61\x20\ -\x36\x80\xb2\x15\x95\x95\x41\x45\xa2\x7b\x54\x54\x14\x38\x82\xfa\ -\xfb\xfb\xe1\xde\x07\xb9\x14\x54\x56\x80\x0c\x2d\x2b\x2b\xfb\x9f\ -\x04\x4c\xeb\xc0\xf2\xa6\x16\xa4\x0f\x20\x80\xc0\x06\xfb\x00\x19\ -\x7e\x0c\x0c\xbe\xbd\x40\x17\x27\x32\x30\x4c\x04\x72\x45\x34\xa0\ -\x06\x6b\x6a\x6b\x33\x08\x08\x80\x73\xaa\xaa\xb7\xb7\xf7\x27\x90\ -\xeb\x1a\x1b\x1b\xe1\x86\x82\x5c\x59\x54\x54\xf4\x3f\x28\x28\xe8\ -\x3f\x3f\x3f\x7f\x1f\x50\x1d\x3b\x48\x31\x40\x00\x81\x0d\xb6\x64\ -\x60\x70\xff\x9f\x93\xf3\x1f\xa8\xf2\xff\x7f\x5d\xdd\xff\xa7\x80\ -\x11\x09\x4c\x29\xbe\x30\x1f\x88\x03\x0b\x29\x0e\x0e\x70\xd9\xce\ -\x20\x2b\x2b\x3b\x21\x30\x30\xf0\x7f\x5a\x5a\xda\xff\xac\xac\xac\ -\xff\xa9\xa9\xa9\xff\x4d\x4d\x4d\x9f\x00\xa5\xfc\x91\x7d\x0d\x10\ -\x40\x60\x83\xe7\x30\x30\xf4\x01\xa3\xf4\x3f\x30\xba\xff\x03\x53\ -\xfc\x7f\x60\x0c\xfc\xcf\x67\x60\x78\x88\xac\x8e\x8f\x8f\x0f\x25\ -\xb4\x80\x65\x70\x34\xb0\xfc\x6e\x66\x67\x67\xcf\x06\xf2\xe5\xd1\ -\x83\x13\x20\x80\xc0\x06\xcb\x31\x30\xd8\xce\x05\xba\xf2\x88\xb0\ -\xf0\xff\x43\xc0\x5c\xd7\x28\x24\xf4\x93\x87\x81\x21\x1d\x59\x1d\ -\x28\x38\xc0\xa5\x16\x14\x80\x2a\x05\x69\x69\x69\x58\x30\x61\x00\ -\x80\x00\x02\x1b\x6c\x80\xe0\x6a\x03\xb1\x1e\x3c\x9c\xd0\x0c\x06\ -\x97\x01\x50\x00\xaa\xc6\x80\xc1\x02\xb6\x00\x1b\x00\x08\x30\x00\ -\x69\x36\x5f\x67\xcd\x5c\xcb\xcb\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x0e\x35\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x26\x00\x00\x80\x84\ -\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00\x75\x30\x00\x00\xea\x60\ -\x00\x00\x3a\x98\x00\x00\x17\x70\x9c\xba\x51\x3c\x00\x00\x00\x06\ -\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\ -\x00\x07\x74\x49\x4d\x45\x07\xe1\x0a\x0d\x0f\x2b\x18\xc7\x56\x80\ -\xf9\x00\x00\x0d\x39\x49\x44\x41\x54\x68\xde\xc5\x5a\x7b\x78\x54\ -\xd5\xb5\xff\xad\xbd\xcf\xcc\x99\xcc\xe4\x01\x12\x20\x0f\x0a\x21\ -\x10\x5a\x79\xa3\x20\x05\x4b\x79\x84\x14\x10\x3e\xe4\xa5\x55\xf4\ -\x16\xea\x15\x42\x91\x54\x7c\xf5\xbb\xe5\xbb\xdc\xeb\x47\x51\x1e\ -\x1f\xca\x45\x81\xe2\xb5\x80\x82\xa0\x48\xa1\x48\x23\x85\x0b\x0a\ -\x52\xaa\x28\x04\x81\x12\x08\x31\x10\x9e\x81\xbc\x33\x79\xcd\x9c\ -\x39\xe7\xec\x75\xff\x98\x09\x86\x90\x4c\x48\xe4\xfb\xba\xfe\x59\ -\xf3\x9d\xb3\x67\xad\xdf\x7a\xec\xbd\xd7\xda\xfb\xd0\xe8\xd1\x23\ -\x04\x6e\x27\x02\xc0\x21\xae\x00\x88\x46\x38\x03\xa0\x03\x07\x0e\ -\xd9\x42\x88\x87\x99\xf9\x1d\x66\xee\x45\x44\x60\x66\x84\xe1\xd5\ -\x00\xde\x88\x8f\x8f\x5b\x32\x74\xe8\x43\x66\x45\x85\xb7\x55\x7a\ -\x43\x1c\x00\x58\xd4\xfb\xb3\x08\xf1\xfa\xbf\x65\xe8\xfd\x1d\xdc\ -\xe1\x70\xa0\x57\xaf\xfb\x75\x66\x9e\x0d\xa0\x17\x11\x05\x05\x85\ -\xe7\x91\x00\xd2\x8b\x8a\x8a\x7f\x32\x7d\xfa\x63\xad\xd2\x1b\xe2\ -\x75\xe3\x44\x7d\x03\xea\xf3\xa6\x3c\xc3\x75\x1e\x89\x8c\xf4\xd0\ -\x95\x2b\x57\x3d\x44\xb8\x1f\x2d\xa3\x58\x80\xbb\x4f\x99\xf2\xb4\ -\x6a\x8d\xde\x86\xcf\xeb\x0c\xe0\x30\x0a\x1b\x15\xf2\xe4\x93\xd3\ -\x6c\xd3\xb4\xee\x63\x46\x87\x16\x1a\xa0\x29\xc5\x9d\x99\xb9\xb9\ -\x71\xcd\x82\x07\x40\xf5\xc3\xd7\x22\x21\x93\x27\x4f\x83\x65\x59\ -\xb1\x00\xda\xb6\xd0\x00\x00\xe8\xb2\x6a\xd5\x32\x11\xe6\x7d\x73\ -\xe0\x6f\x45\xa8\x6e\x62\xdc\x46\x9d\x3b\x77\xe2\xf4\xf4\x7f\xb7\ -\x9e\x7f\xfe\x37\x2a\x25\xa5\x9b\x6a\x4c\x08\x91\x8b\x99\xb9\x13\ -\x00\x77\x4b\xd1\x33\x73\x97\x35\x6b\xde\x75\x3a\x1c\xda\x1d\xef\ -\x22\x22\x5c\x9c\x9a\x3a\x82\xd7\xaf\x7f\xc7\x4a\x4b\x1b\xc5\xba\ -\xee\x6c\x38\x81\xeb\x13\xd1\xe8\xd1\x23\x64\xdd\x0b\x66\x46\xd7\ -\xae\x5d\xf8\x83\x0f\x3e\x8e\xb3\x2c\xf3\x61\x66\x54\x46\x46\x7a\ -\xb2\x7e\xf9\xcb\xa9\x25\x1d\x3b\xb6\xa7\xac\xac\x93\x64\x18\x06\ -\x0d\x1a\xf4\x80\x5a\xba\x74\xa5\x12\x42\xfc\x8e\x99\x97\xb5\x22\ -\x02\x59\x1e\x8f\x67\x5c\x55\x55\x55\xf1\x98\x31\xa9\x9a\x52\x8a\ -\x3b\x76\xec\x80\x19\x33\x9e\x52\xb3\x66\xcd\x73\x15\x14\xdc\xe8\ -\xa1\x14\xf7\x21\xa2\x8b\xbd\x7b\xdf\x7f\x3c\x31\x31\xde\x36\x8c\ -\x40\x63\x59\xa2\x68\xf4\xe8\x11\xb7\x66\x7d\x4a\x4a\x37\xde\xb0\ -\xe1\x83\x0e\xa6\x69\x6e\x64\xe6\x5f\x00\xf0\x03\x38\x29\x04\xed\ -\x12\x42\x66\x26\x25\x75\xbe\x90\x9b\x9b\x67\x78\x3c\x9e\x04\xbf\ -\xdf\x3f\x9d\x99\x9f\x03\x90\xd4\x0a\x03\x0c\x22\xfc\x45\x4a\x6d\ -\x75\xa7\x4e\x89\x5f\x4f\x98\x30\x46\x6d\xd8\xb0\xb9\x9d\x61\x18\ -\x3f\xb7\x6d\x35\x15\xc0\x48\x00\x1d\x01\x94\x08\x41\xcf\x9d\x39\ -\xf3\xf5\x9f\x33\x32\x5e\x91\x8d\xc8\xe1\xba\x08\x40\x08\x41\xb1\ -\xb1\xed\xd4\x47\x1f\xed\xf8\x3d\x33\xff\xa1\x41\xb8\x18\x40\x01\ -\x11\xf6\x11\xd1\x09\xa5\xf8\x09\x00\x43\x43\xa1\xfd\x21\x54\x48\ -\x44\x1b\x00\xd4\x00\x3c\x91\x19\xfd\x00\xe8\xb7\xe7\x08\x8e\x3b\ -\x1c\xce\xc9\x19\x19\xb3\x0b\x4e\x9e\xfc\x67\x7d\x7d\x5c\x67\x00\ -\x01\x90\xfb\xf7\x1f\xb4\x75\xdd\xd9\xcf\x34\xad\x4f\x00\x74\x0e\ -\xa3\xb4\x2e\x27\xef\x15\xd5\xcd\xc1\x26\x17\x12\x22\xfa\xaf\x89\ -\x13\xc7\x2d\xf1\xf9\x7c\x64\xdb\xea\x36\x2c\x02\x80\xf0\x78\xdc\ -\x9c\x92\xd2\x4d\x37\x4d\xeb\xb9\x66\xc0\xe3\x1e\x83\xaf\x03\x4e\ -\xe1\xde\x33\xf3\xb3\x9f\x7e\xba\xaf\xcf\x6f\x7f\x3b\xc7\x6e\x60\ -\x38\x09\x66\xe6\x5d\xbb\x3e\x52\xf9\xf9\x97\x86\x03\x98\x76\x8f\ -\xc1\xdd\x2b\xea\x62\xdb\x6a\xde\xac\x59\xcf\x3b\x5d\x2e\xfd\x16\ -\x78\x00\x2c\xfa\xf5\xeb\x03\x8f\x27\x2e\x86\x19\xf3\x01\xb4\xf9\ -\x57\x23\x6d\x8a\x98\x79\x5a\x51\x51\xf1\xa8\xcc\xcc\x7d\x16\xea\ -\x2d\xab\xf2\xab\xaf\xbe\x61\xa5\xd4\xaf\x98\x79\x1e\xbe\xaf\x35\ -\x7e\x08\x59\x00\xbc\x00\xca\x01\xf8\x42\x9e\x72\xdc\x03\xb9\x2e\ -\x66\x8e\x6d\xdb\xb6\xcd\x9e\x61\xc3\x86\xf8\xca\xcb\x2b\x24\x00\ -\xa5\x69\x9a\x96\x62\xdb\xf6\xdc\x7b\xa0\xe4\x26\x11\x7d\x4a\x44\ -\x9f\x09\x21\xbe\x13\x82\xaa\x98\xa1\x29\xa5\x12\x94\x52\x83\x00\ -\x7e\x94\x19\x03\x7e\xa0\x9e\x51\x5e\x6f\xe5\xb4\x3e\x7d\x7a\xfd\ -\xe9\xe2\xc5\x4b\x8a\x99\x89\x88\x68\x39\x80\x97\xd0\xfa\xc9\x69\ -\x02\xf8\xc4\xe1\xd0\x96\xf7\xed\xdb\xfb\xe4\xb1\x63\x27\xcc\x25\ -\x4b\x5e\x25\x22\xa2\xc8\x48\x0f\x12\x12\xe2\x39\x27\x27\x97\x5e\ -\x7b\x6d\x45\xac\x61\x18\x4f\x29\xa5\x5e\x02\x90\xd8\x5a\x0b\x88\ -\x70\x42\xd7\xf5\xf1\x4f\x3e\x39\xad\xf8\xca\x95\x6b\x4c\x44\xb4\ -\x07\xc0\xb8\x56\xca\x0b\x10\xd1\xaa\xa8\xa8\xc8\xd7\xd7\xac\x79\ -\xc3\xbb\x65\xcb\x36\x69\x9a\x56\x63\xe3\xb8\x63\xc7\x0e\xa8\xac\ -\xac\xe2\xbf\xfd\x6d\x7f\xaa\x6d\xdb\x6b\x00\xa4\xb4\x52\x67\xa1\ -\xd3\xe9\x1c\xed\xf7\xfb\xb3\xd3\xd2\x46\x0a\x41\x84\x9d\x00\x2a\ -\x5a\x29\x6c\x53\x4c\x4c\xf4\x1f\x1e\x7f\x7c\x72\xe5\x7b\xef\x6d\ -\x69\x12\x3c\x00\x2a\x2c\x2c\x82\x61\x18\xc2\x34\xcd\xfd\x52\xca\ -\x97\x00\x94\xb4\x2e\x02\xf4\x45\x44\x84\xeb\xca\xd4\xa9\x13\x25\ -\x00\x16\x51\x51\xd1\x9b\x84\xa0\x0c\x00\x97\x5b\x28\x2b\xdb\xe9\ -\x74\x2c\xdb\xbd\xfb\xa3\xea\xfc\xfc\xcb\x4d\xa5\xdf\x6d\x55\xa5\ -\x52\x8a\x1f\x79\x24\x4d\xeb\xd9\xf3\xc7\x7b\x88\xe8\x4f\x2d\xd4\ -\x67\x10\xd1\xbb\x4e\xa7\xe3\xc5\x69\xd3\x1e\xad\xa9\xac\xac\x0a\ -\xee\x03\x63\xc7\xa6\x5a\xf3\xe6\xa5\x6f\x95\x52\x4e\x07\x70\xa4\ -\x05\x9e\x78\xdf\xef\x37\x2e\x2c\x5a\xb4\xac\xa9\x95\xab\xd1\x92\ -\xd8\x34\x2d\x4e\x4f\xff\x35\x4b\x29\x37\xb5\xc0\x69\x25\x42\x88\ -\x05\x51\x51\x91\x2f\x64\x64\xa4\xdf\xc8\xcf\xbf\x5c\xb7\xf9\xb1\ -\x28\x2d\x2d\xc3\xb9\x73\xe7\xc5\xda\xb5\x6f\x7c\xa5\xeb\xfa\xd3\ -\x44\xd8\x08\x20\xd0\x8c\xc0\x22\x21\xc4\xfe\x9c\x9c\xe3\x68\xa2\ -\x31\x09\x5b\xcf\x67\x66\xee\xa3\xe4\xe4\xa4\x0b\x44\x77\xe5\xb0\ -\x6c\x29\xe5\x33\xbd\x7a\xfd\x64\x55\x6a\xea\x70\xff\x89\x13\xa7\ -\x45\x5d\x9b\x0a\x80\x64\x72\x72\x92\x60\x66\xca\xce\xce\x11\x93\ -\x26\x8d\xf7\x9e\x3a\x75\xe6\x70\x20\x60\x0e\x45\xf8\x2a\xf3\x6c\ -\x54\x54\xe4\x9a\x82\x82\x9b\x81\xda\xda\xda\x86\x65\x40\xb3\xcd\ -\x88\x52\x8a\x8e\x1d\x3b\x61\x12\x89\x2e\x00\xc6\x84\xd1\xe3\x93\ -\x52\xce\xb1\x2c\xeb\xaf\x03\x06\xf4\x93\x3e\x9f\xbf\x1e\xf6\xa0\ -\xae\x3a\x05\x41\x53\xb3\x73\x44\x44\x84\xcb\x4f\x44\x66\x38\x97\ -\x10\xa1\x30\x3a\x3a\xda\xe7\xf5\x56\xb6\xc8\xf3\x77\xca\xa1\xeb\ -\x00\xec\x30\xaa\x98\x99\xab\x99\x99\x2c\xab\xd1\x05\x82\x34\xd4\ -\xdf\x96\xa5\x60\x87\xc3\x41\xcc\x1c\xae\xb8\x02\x33\x20\xa5\xe0\ -\x06\xe3\x5a\x04\x3e\x44\x06\xbe\xaf\x6e\x6b\x01\x54\x85\x9e\x69\ -\x00\xa2\x00\x94\x4a\x29\xcb\x9a\x68\xd9\xb9\x7e\x04\x08\x00\xf7\ -\xe9\xd3\x8b\xcb\xcb\x2b\x1c\x44\xa4\x21\x3c\xb5\xab\xa8\xf0\x46\ -\xc4\xc4\x44\x73\x3d\x61\x2d\x02\x3f\x77\xee\xb3\xc2\xe5\x72\x1d\ -\x23\xa2\x45\x42\x88\xf9\x52\x8a\x47\x74\xdd\x39\xca\xe9\x74\x0e\ -\xd7\x75\x7d\xa4\x94\xf2\x17\x0e\x87\x63\x6a\xb7\x6e\x49\xe7\xc6\ -\x8e\x4d\x6b\x6c\xa1\x20\x84\x94\x09\x21\x04\xaf\x5a\xb5\x5c\xad\ -\x58\xf1\x76\xa2\xdf\x6f\xbc\xc9\xcc\x43\x9b\x31\xa0\x6b\x4d\x4d\ -\x6d\xc2\x84\x09\x63\xb9\x95\x9e\x47\x6e\x6e\x9e\xf8\xd9\xcf\x7e\ -\x7a\x53\x29\xb5\x78\xc1\x82\x97\xdf\x4a\x4c\x4c\x38\x2e\x84\x28\ -\x15\x42\x10\x11\x6a\xdb\xb6\x8d\x39\x37\x73\xe6\xd3\x27\xcf\x9e\ -\x3d\x6f\x4a\x29\x1b\x0b\x41\xb0\x37\x7f\xf1\xc5\xe7\xa8\x7d\xfb\ -\xf6\xb4\x70\xe1\xe2\xc1\x4a\xa9\x65\xcc\x3c\x0c\xcd\x13\x0b\x21\ -\xe6\xdb\xb6\xfd\xd6\xe8\xd1\x23\xb4\x96\x82\x17\x42\xa0\x77\xef\ -\x9e\xf6\x96\x2d\x1f\x7b\x4a\x4b\x4b\x07\x28\xc5\x8f\x30\xf3\x20\ -\x22\x74\x62\x46\x04\x82\x05\x61\x11\x11\x9d\x24\xa2\x3d\x1e\x8f\ -\xfb\xef\x19\x19\xe9\x95\x59\x59\xdf\x92\x65\xd9\x24\x84\xe0\xf8\ -\xf8\x38\xd8\xb6\xcd\x14\x1b\xdb\x4e\x2f\x2b\x2b\x7f\x2c\xd4\x46\ -\x26\xdd\x05\xf8\x3a\xca\x72\xbb\x23\x26\x67\x66\x7e\x7c\xed\xb5\ -\xd7\x56\x68\x77\x0b\xde\xe9\x74\xc2\xe7\xf3\xa9\x23\x47\x8e\x0e\ -\xb2\x2c\xeb\x05\x04\xcb\x98\x68\x04\x27\x73\x25\x82\x73\xc1\x01\ -\x20\x06\xc1\xf6\xd2\x4f\x84\xcf\x85\x90\x4b\x1f\x7d\x74\xc2\x97\ -\x4a\x59\xb8\x76\xad\x40\x9e\x39\x73\xae\xad\xae\x3b\xab\xa5\xcf\ -\xe7\xff\x35\x80\x95\x00\xe2\x5a\x00\x1e\x00\xe2\x2d\xcb\xc2\x91\ -\x23\x47\x0f\x0f\x1e\x3c\xd0\x2c\x2d\x2d\x93\xcd\x81\x77\xb9\x74\ -\x9c\x3b\x97\x4b\xa7\x4f\x67\xff\x9b\x6d\xdb\xeb\x10\xec\xab\x8b\ -\x89\x68\xb3\x10\x62\xb9\xa6\x69\x2b\x35\x4d\xfe\xaf\x94\x72\x33\ -\x80\x3d\x00\xae\x02\xe8\x04\xe0\xa7\xcc\x3c\x26\x27\x27\xb7\x78\ -\xc6\x8c\xe9\xa7\xb6\x6e\xdd\x3e\xc0\xb2\xcc\x0f\xfd\x7e\x23\x5e\ -\x12\xd1\x22\x00\x7d\x5b\x08\x1e\x21\xa0\xfd\x2b\x2a\xbc\x81\xcb\ -\x97\xaf\x9e\x78\xec\xb1\x49\xc6\xd5\xab\xd7\x45\x53\x27\x6e\x52\ -\x4a\x94\x97\x57\xf0\xd9\xb3\xe7\x9f\x51\x4a\xbd\x19\xf2\xf0\x16\ -\xa7\xd3\x91\xf1\xe0\x83\x03\x36\x5d\xb9\x72\xf5\xac\x65\xd5\x14\ -\x0d\x1e\x3c\xb0\xe2\xf1\xc7\xa7\x94\xcc\x99\xf3\xec\x45\xaf\xd7\ -\x7b\xe8\xd2\xa5\x2b\x7b\x99\xd9\x03\x60\x08\x80\x51\x9f\x7f\xfe\ -\x45\x3e\x80\xfb\x98\x39\x03\x80\x4d\x44\xb4\x0c\xc0\xcb\x68\x7d\ -\x39\xed\x27\xc2\x26\x87\xc3\xb9\x72\xfc\xf8\xb1\xb9\x3b\x76\xec\ -\xe2\xf9\xf3\xe7\x12\x33\xa3\xb4\xb4\x8c\x8a\x8b\x4b\xa0\x94\xa2\ -\xfd\xfb\x0f\x5a\x0e\x87\x63\x8c\x6d\xdb\x9b\x01\x44\x13\xd1\x92\ -\xb6\x6d\xdb\xbc\xf9\xfa\xeb\xff\x5d\xbd\x73\xe7\x6e\x69\xdb\x77\ -\x6e\x07\x44\xc4\x4f\x3c\x31\x95\xe7\xcf\xff\x0f\x77\x4d\x4d\xed\ -\x7f\x32\xf3\xcb\x00\x2e\x11\x61\x17\x33\x5e\x00\xf0\x77\xd2\x34\ -\xd9\xdd\xb6\xd5\x76\x00\xfd\x5b\x69\x00\x42\xa9\x73\x81\x88\x76\ -\x09\x41\x07\xa4\x94\xf9\x52\x4a\x1f\x80\x40\xdf\xbe\xbd\xcb\x86\ -\x0c\x19\x64\xaf\x5f\xbf\x39\xb6\xaa\xaa\x7a\x3b\x80\x9f\x13\xe1\ -\xad\xb8\xb8\xb8\xdf\x4f\x9a\x34\xde\x9f\x9b\x9b\xd7\x9c\xe3\xb8\ -\x53\xa7\x04\x6c\xdf\xfe\x89\xc7\xe7\xf3\xad\x65\xe6\xa7\x00\x94\ -\x01\xb8\x0f\xc0\x17\x14\x0a\xef\x2c\xa5\xd4\x6a\x00\xce\x1f\x60\ -\x44\x1d\xf9\x42\x0a\xfc\x44\x28\x91\x52\x9b\x6d\x9a\xe6\x69\x21\ -\xc4\x4c\x66\x5e\x0f\xe0\x94\xcb\xa5\x4f\xda\xbd\x7b\xdb\xd5\x65\ -\xcb\x56\x86\x6d\x61\x85\x10\xfc\xa3\x1f\x25\x22\x39\x39\x59\x2d\ -\x58\xf0\x2a\x3b\x1c\x5a\x2f\xdb\x56\x7f\x05\xd0\x35\x34\xe4\x0b\ -\xb1\x7d\xfb\xfb\xe4\x72\xe9\x7f\x26\xc2\xc1\x7b\x00\x1e\x00\x22\ -\x10\xec\xb8\xba\x31\xa3\x27\x80\x98\xae\x5d\xbb\x38\x01\x4c\x09\ -\x62\xa2\x8d\x3e\x9f\xff\xca\xdd\x80\xaf\xa8\xf0\xca\xad\x5b\xb7\ -\x77\x58\xbc\x78\x59\x37\x97\x4b\xef\xea\x70\x38\xfc\x00\x0e\xdf\ -\x36\xee\x9d\x77\x36\x8a\xea\xea\x9a\x0a\x22\xf1\x3f\x08\x36\xe3\ -\xf7\x92\xae\x69\x9a\xfc\xee\xc6\x8d\xc2\x24\x66\x7e\x00\xc0\x0d\ -\x21\xc4\x67\xeb\xd7\xaf\x6e\x36\x6d\xe6\xcf\x9f\xcb\x27\x4e\x9c\ -\xea\x6f\x18\xc6\x5e\xbf\xdf\x38\x14\x08\x98\x87\xfd\x7e\xe3\x20\ -\x80\x89\xf5\xc7\x09\x00\x3c\x71\xe2\x38\x11\x1f\xdf\xf1\x10\x11\ -\x7d\x7c\x8f\x0d\x28\x88\x8f\x8f\xf3\x9a\xa6\xd9\x09\x40\x7b\x00\ -\xf9\xd1\xd1\xd1\x05\x7b\xf7\x1e\x08\x57\x6b\x31\x00\x1a\x37\x6e\ -\xaa\x12\x82\x88\xf9\xb6\x2b\x25\x00\xa8\x06\x70\x05\xc1\xc9\x7c\ -\x44\x00\x20\x9f\xcf\x4f\x3b\x76\x7c\x60\x08\x21\xd6\xa0\xf9\x26\ -\x43\xe1\x2e\x89\x88\xbc\x73\xe6\x3c\x63\x10\x21\x16\x80\x93\x88\ -\x0a\xdb\xb4\x89\xf1\x55\x55\x55\x37\x7b\x1f\x31\x66\xcc\x28\xad\ -\x47\x8f\x94\x2c\xb7\xdb\x3d\xd6\xe9\x74\x0c\x77\xb9\xf4\xe1\x4e\ -\xa7\x73\x84\xae\xeb\x23\x74\xdd\x39\x52\xd7\xf5\x11\x11\x11\xee\ -\x25\x75\x3b\xa8\x5c\xb8\x70\xb1\x48\x4f\x9f\x79\xe6\x8f\x7f\xdc\ -\xf0\x6e\xd3\x87\xbb\xb4\x17\xc0\x09\x66\x9e\x8e\xe0\xba\x1c\x36\ -\x15\x98\x19\xdf\x7d\x77\x81\x98\x83\x46\x33\x33\x49\xd9\x64\xea\ -\x37\x68\x3f\x59\xc5\xc7\x77\xa4\xd4\xd4\xe1\x37\x1d\x0e\x0d\xba\ -\xee\x42\x20\x10\x80\x10\x02\x42\x10\xaa\xab\x6b\x70\xf3\x66\x21\ -\x6e\x95\xd3\x4a\x29\x4a\x48\x88\x57\x6e\x77\xc4\xc6\x9a\x9a\xda\ -\xe1\x00\x46\x03\xf0\x13\xd1\xb7\x00\x76\x39\x1c\xda\x9e\x1e\x3d\ -\xba\xe7\x9e\x3e\x9d\x6d\xba\xdd\x11\xbb\x0c\x23\xf0\x34\x33\xff\ -\x06\x61\xca\x0f\x22\x8a\xd9\xb7\xef\x33\x8d\x88\x2a\x10\xec\xf2\ -\xda\x17\x15\x15\xbb\xfa\xf6\xed\x55\x5d\x51\xe1\x6d\xb6\x14\x67\ -\x66\xce\xce\x3e\x17\xae\xdf\xe6\xfa\xf7\x03\x0c\x40\xa4\xa4\x74\ -\xb7\xdf\x7f\x7f\x4b\x27\xc3\x30\x86\x10\x09\xaf\xcb\xa5\x1f\x9b\ -\x3d\xfb\x99\xf2\xb2\xb2\x52\x14\x16\x16\x0b\xd3\x34\x11\x19\xe9\ -\xe1\x5d\xbb\x3e\xb5\xef\xe2\x82\xe3\x9c\xc7\xe3\x1e\x65\x9a\x66\ -\x64\x20\x60\x1e\x02\x20\x35\x4d\x4b\xfd\xf0\xc3\xf5\x39\xeb\xd6\ -\x6d\x10\xe1\xc0\xa3\x99\xb2\x24\x44\x4a\x26\x27\x27\xd5\xc5\x94\ -\x00\x70\x59\x59\x99\x4c\x4b\x4b\xf5\x1e\x3d\x7a\x2c\xdb\xb6\x6b\ -\x2f\xb4\x6b\x77\x9f\x91\x9f\x7f\x89\x2a\x2b\xab\x84\x52\xc1\xf4\ -\x0f\x04\x4c\xba\x78\xf1\x92\x92\x52\xc4\x31\xf3\x94\x30\xa9\xe4\ -\xb2\x6d\x7b\x5f\x97\x2e\x9d\xcf\x96\x97\x57\x0c\x03\xf0\x20\xc0\ -\xb9\xdb\xb6\xed\x3c\x9a\x9c\x9c\xd4\xf0\xde\xb7\xa5\xe0\x6f\x5d\ -\xf2\xa9\x86\x42\x72\x72\xce\x8b\xb4\xb4\x91\xe2\xcb\x2f\xbf\x96\ -\x25\x25\xa5\x8d\x1e\x7f\x33\x2b\x02\xe8\x3a\x80\x9a\x30\x4a\xa2\ -\x98\x79\x54\x5e\xde\x45\x43\x08\xb1\x13\x80\x52\x8a\x67\xb8\xdd\ -\x11\x9d\x17\x2e\xfc\x9d\x8d\xef\xbb\xc1\x56\x81\x47\x68\x19\x6d\ -\x95\x90\x6d\xdb\xde\x83\xc3\xa1\x15\xa3\x99\x43\x31\x66\x9e\xe4\ -\x72\xe9\x89\x6e\xb7\x3b\x13\xc1\x4d\xe8\x01\xbf\xdf\xff\xd2\x8c\ -\x19\x73\x22\xfa\xf7\xef\x63\x33\x73\xab\xc1\x23\x74\x2a\x51\x37\ -\x07\x5a\x24\x24\x3f\xff\xb2\xb8\x70\xe1\x92\xb2\x2c\x73\x0a\xc2\ -\x9f\x75\x76\x50\x4a\x15\x19\x86\xb1\x5f\xd3\xb4\x02\x66\x1e\x03\ -\xe0\xe1\xca\xca\x2a\x75\xfe\x7c\x5e\xd6\xd2\xa5\xaf\xfa\x8f\x1f\ -\xff\x56\x70\xb0\x8c\x6d\x09\x78\x81\xd0\x1c\x68\x98\x8b\x77\x25\ -\xc4\xb6\x2d\x96\x52\xda\x45\x45\xc5\x43\x01\xf4\x0b\x33\x9e\x00\ -\x74\xd7\x75\xfd\xff\xd6\xad\x5b\xf9\x4d\x66\xe6\x3e\x2f\x33\x8f\ -\x04\x90\xea\xf3\xf9\x3a\xef\xd8\xf1\xc9\x05\xb7\xdb\x53\xf4\x8f\ -\x7f\x1c\x55\x97\x2f\xe7\x71\x5c\x5c\x1c\x4a\x4a\x4a\x60\xdb\xf6\ -\x5d\x1d\xd7\xd4\x6f\x07\x5b\xe4\x01\xd3\xb4\xc4\xea\xd5\xcb\x03\ -\x69\x69\x93\xde\x36\x4d\x2b\x1e\xc1\xc3\xda\x3b\x6e\xd2\x11\xfc\ -\x4c\xe2\x06\x33\xdb\x9a\xa6\x51\x62\x62\xc2\xc6\xeb\xd7\x0b\x0c\ -\xa5\xd4\x22\x00\xbf\x0a\x04\xcc\x91\xa7\x4e\xfd\x33\x53\xd3\xb4\ -\x03\x52\x8a\x8b\x42\x08\x6f\x54\x54\x54\xd1\x43\x0f\x3d\x68\x18\ -\x86\x11\x0e\xbc\x00\x60\x53\xe8\x6b\x15\x42\xd3\x11\xe0\x46\x80\ -\xdd\x12\x12\x1b\xdb\xce\xde\xb7\xef\xb3\xe8\xda\x5a\x5f\x5b\x22\ -\xa2\xe0\x57\x29\xa1\x3f\x32\x98\x88\x84\x10\x54\x35\x70\xe0\x80\ -\x72\x5d\xd7\x95\x94\x92\xbc\xde\x4a\x95\x95\xf5\xed\x40\xd3\xb4\ -\xe6\x23\xd8\x52\xb6\xc1\xf7\x17\x23\x3e\x22\x7a\x3b\x3d\x7d\xe6\ -\x8a\xbc\xbc\xfc\xfa\xa9\xd5\x10\xbc\x02\x82\xe7\x2f\xf5\x3f\x71\ -\xa9\xcf\xeb\xff\xb1\xe1\x18\xbb\x8e\x97\x94\x94\xd2\xa4\x49\x13\ -\xbc\x7d\xfa\xf4\xf4\xba\xdd\x6e\xd4\xd6\xd6\xc2\xe9\x74\xc2\x34\ -\x2d\x08\x21\xe0\x70\x68\x38\x78\xf0\x30\x55\x56\x56\xc1\xb6\x6d\ -\xb2\x2c\x4b\x45\x46\x7a\x68\xed\xda\x37\xbf\x79\xe5\x95\x85\xb3\ -\xbc\xde\xca\x21\xcc\x3c\x15\xc0\x30\x00\x49\x00\xb7\x63\x46\x4c\ -\xff\xfe\x7d\x39\x2f\x2f\x5f\x35\xa5\xb7\xee\xf9\xff\x03\x78\x8c\ -\x5f\x99\x77\x2f\x9e\x77\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\ -\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x37\x2d\x31\ -\x30\x2d\x31\x33\x54\x32\x33\x3a\x34\x33\x3a\x30\x33\x2b\x30\x38\ -\x3a\x30\x30\x27\xbf\x77\xe8\x00\x00\x00\x25\x74\x45\x58\x74\x64\ -\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x31\x37\x2d\ -\x31\x30\x2d\x31\x33\x54\x32\x33\x3a\x34\x32\x3a\x35\x30\x2b\x30\ -\x38\x3a\x30\x30\xc0\x28\xb0\x93\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x06\x33\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x10\x00\x00\ -\x0b\x10\x01\xad\x23\xbd\x75\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd3\x09\x09\x14\x30\x03\x75\x06\x85\x3f\x00\x00\x05\xc0\x49\x44\ -\x41\x54\x78\xda\xc5\x97\x4d\x6c\x1b\xd7\x11\xc7\x7f\xbb\x5c\x7e\ -\x73\xad\x95\xe4\xc8\x72\x9c\x2a\x52\x80\x26\x46\x9a\xda\x54\x84\ -\xd4\x69\x9b\x16\x16\x20\x07\x69\x51\x24\x05\x9a\x22\x40\x0e\x59\ -\x03\x86\x7b\xe8\xc5\xe8\xb9\x28\x24\xf4\xd2\xab\xdd\x1e\x7b\xf1\ -\xa2\x97\xa2\x48\x51\xb4\x75\x5a\xc4\x68\x2b\xa1\x89\x03\x3b\x85\ -\x62\x26\x76\x52\x35\x82\x2d\xda\xaa\xf5\x41\x52\x21\x25\x92\xbb\ -\xfc\x58\xbe\xd7\xc3\x92\x14\x29\x92\x26\x9b\x4b\x1e\x30\xc4\xf2\ -\xbd\x99\xf7\xff\xef\xbc\xd9\x99\x79\x8a\x94\x92\x2f\x72\x68\x00\ -\xa6\x69\x0e\x6c\xb0\xfa\x98\x35\x09\x4c\x4a\xc9\xe9\xc6\x9c\x90\ -\x20\x04\x4b\x02\x92\xcf\x6c\x99\xc9\x41\xf7\xb2\x2c\xcb\x23\xd0\ -\x6f\xdc\x99\xb0\x0c\xe0\x2c\x60\x22\x88\xb7\x3a\xad\x0e\x8e\x80\ -\x79\x80\xdb\xe3\x56\x42\x48\x2c\x29\xb8\x7c\x32\x6d\xe6\x06\xf2\ -\x40\x1f\xf0\x05\xe0\x02\x60\xa8\x0a\x44\xc3\x10\xf4\xc3\x89\x47\ -\xf3\x44\xc3\x41\x00\xa4\x28\xf3\xde\x5d\x1d\xbb\x04\xc5\x32\xf1\ -\x72\x95\x38\x30\x7f\xf3\xb0\x75\x69\x3a\x63\x2e\x7c\x2e\x02\x6b\ -\x8f\x5b\x86\x90\x2c\x02\x71\x4d\x85\x58\x18\xbe\x7b\xb2\x4a\x7c\ -\x4a\x65\xfa\x09\x1f\xa0\xb7\x68\x07\xf8\x09\xb0\x9e\x11\x7c\xb8\ -\x26\x78\xe7\xd6\x2e\xd7\xd6\x46\x0d\xe1\x32\xbf\x3c\x6a\xbd\x02\ -\xcc\xce\xec\x74\xf7\x86\xd6\x03\x3c\x5e\x07\x37\xf4\x10\xcc\x3e\ -\x5d\xe1\xfb\xa7\x34\x46\x74\x3f\x00\x99\x3d\xc1\xda\x86\x4d\xc5\ -\x15\x08\xa9\x34\xed\x9e\x7d\x52\x67\xf6\x84\xca\xec\x89\x51\xde\ -\xfe\xc0\xe5\x8f\x37\x4a\x7c\xb2\x15\x8b\x0b\xc1\xda\x0d\xc3\x9a\ -\x3d\x95\x33\x13\x7d\x09\xb4\xbc\xb9\xf1\xc4\x61\x87\x1f\x7c\xdd\ -\x4f\x7c\x2a\x00\xc0\xc6\x8e\xcb\xd6\x8e\x03\xc0\x8b\x33\x7a\x07\ -\xf1\xab\xcb\x79\x00\x9e\x9a\xd0\x79\xe1\x69\x8d\x2f\x3f\x1a\xe1\ -\xcd\xa5\x6d\xfe\x74\xfb\x88\x01\x2c\x5e\x1f\xb2\xa6\x9e\xdf\x6d\ -\xf7\x44\x07\x81\x06\xb8\x11\x85\x73\x73\x41\x8e\x0c\xab\x38\x55\ -\x48\x65\x2b\x14\x8b\x0e\xdf\xf9\xda\x50\xcf\xf3\x6c\x90\xba\xba\ -\x9c\x67\xe2\xa8\xce\xa1\xa8\xca\xeb\x67\xc6\xa8\xc9\x14\x57\x6e\ -\x8f\x19\xc0\x22\x30\xdd\x6a\xa3\x76\x09\xb8\xb8\x1e\x82\xd7\x9e\ -\x77\x89\x86\x54\x0a\x0e\x64\xf3\xa2\x2f\xf8\x41\x22\xf7\x37\xf3\ -\x14\x1c\x70\x6b\x0a\x67\x9e\x3b\xcc\xf1\x71\x1b\x21\x89\xbf\x77\ -\xc8\x5a\xe8\x4a\xa0\xfe\xa9\x5d\x50\x15\x78\x6e\xaa\xc2\xe4\xb8\ -\x86\x53\x05\xa7\x0a\x77\x1e\x14\x3b\xc0\x37\xb3\x70\x6d\x05\xde\ -\x59\x81\xeb\xab\x90\x2f\xb5\x93\xf8\xd6\x57\xf5\xa6\x7d\x34\xac\ -\xf2\xf2\xa9\x00\x7e\x1f\x08\xc9\x85\x77\x75\xcb\xe8\xe6\x81\xb3\ -\x80\x71\x28\x02\x27\xa6\x34\xf2\x0e\x4d\x19\x1f\x6e\x73\x14\x4e\ -\x05\x6e\x26\x61\xb7\xbe\xfe\x59\x01\xfe\x9e\xa8\x50\x2c\xb9\x4d\ -\x9d\x70\x00\xca\x95\xfd\x3d\x8e\x8e\x68\x3c\xfb\xa5\x3c\x80\x21\ -\x24\x67\xbb\x11\x30\x55\x05\xa6\x27\xaa\x80\x8a\x5d\xa2\x29\x41\ -\x7f\x3b\x81\x8f\xd7\x69\x5b\xb7\x4b\x9e\x07\xd6\xb7\x9d\x36\x3d\ -\xbf\xe6\xad\xad\x6d\xd5\xf8\xd7\xaa\x8b\x1e\x0b\xa0\xa9\x20\x04\ -\x66\x5b\x10\xae\x3e\x66\x4d\x22\x88\x87\x43\x30\x14\x53\x29\x96\ -\xdb\xdd\x69\x87\x02\xcd\xe7\xb2\x0b\x9f\x6e\x42\xd5\x6d\xd7\xd9\ -\xdd\x49\x73\xfc\xf4\xb1\xb6\xb9\x7f\x7c\x58\x25\x99\x56\xb0\x5d\ -\xad\x09\x37\x12\x83\x8d\x2c\xf1\xa5\x88\x35\x09\x24\x1b\x2b\x93\ -\x52\x7a\x6e\x0b\xf8\x3a\x09\xdc\x49\xf9\xf8\xcb\x4d\x18\x89\xc1\ -\xea\x46\xe7\x79\xbb\xf6\x36\xaf\x7c\xd3\x68\x9b\xfb\xf7\x7f\x05\ -\x9f\x6c\xfa\x3b\x02\x34\x16\x06\xb2\x20\x25\xfb\x04\x1a\x85\x25\ -\xa4\xd5\x28\xd7\x7c\x94\x6b\x9d\x91\xfd\xf1\x7a\x8f\x54\x5a\xd9\ -\xe6\x47\xdf\x1b\x25\x1a\xda\xff\xa2\xed\xb2\xe4\xd7\x57\xab\x40\ -\xb0\x43\x3f\xe8\x07\x29\x41\x78\x98\x4b\x5a\x6b\x51\x31\x22\x35\ -\x8a\x65\xdf\xc0\x95\x31\x50\xbe\xc7\x8f\x5f\x3d\xd6\x01\xfe\x8b\ -\xdf\x57\x58\xcf\x05\xbb\xda\x84\x03\x1e\x96\xd7\x06\x28\x5e\x0c\ -\x88\x7a\x75\x13\x42\xa1\xe0\x0c\x06\x2e\x4b\x29\x7e\xfe\x46\x77\ -\xf0\x95\xad\xe0\xc3\x6d\x5b\xca\xa9\x47\x40\x78\x7f\xb2\xb6\x86\ -\xcf\xdf\x1f\x5c\x41\xf2\xd2\x71\xd1\x06\x9e\xde\x93\xfc\xea\x4a\ -\x95\x4f\xb7\x83\xa8\x4a\x6f\xdb\x83\xf1\xd5\xd8\x61\x49\xc0\x7c\ -\x55\x28\x94\xab\x0f\x67\xee\xd5\x7e\x85\xa7\x26\x22\x6d\x6b\xbf\ -\x7c\xab\xc6\xdd\x4c\x00\xad\xcf\x09\x96\xab\x80\x14\x00\x4b\xe0\ -\xab\x7b\x00\x92\x8d\x04\xe3\xd6\xc0\xa7\xca\x16\x50\xa5\x79\x44\ -\xa0\x34\x7f\x15\xf6\x75\xee\x67\x24\x6b\x69\x0d\x65\x80\xa3\xcb\ -\x15\x00\xcf\x36\xd9\x4c\x44\xcf\x6c\x99\x49\x21\x49\xec\xd9\xa0\ -\x2a\x1e\x68\x43\xc0\x9b\x3b\x28\x99\xc2\xfe\xab\x2e\xdf\x55\xba\ -\xea\x74\x93\xd4\x1e\x00\x89\xb9\xca\xb9\x64\x5b\x35\x94\x02\xab\ -\x2c\x88\xdb\x25\x17\x23\xd6\xbf\x53\xfb\xdd\xfb\x31\x36\xf2\x50\ -\x2c\x79\x35\x21\x30\x40\x73\xb7\x99\x75\x71\xbd\x04\x66\x75\x2b\ -\xc7\x97\x81\xf9\xf5\x1d\xd5\x38\x32\xdc\x7f\x33\xbb\xf0\x19\x46\ -\xc0\x4f\x48\xba\x8c\x0f\xe9\x64\xed\xfe\x0c\xfe\xb3\xa1\x00\x32\ -\x57\xc7\x6a\xaf\x05\x27\xd3\x66\x4e\x48\x2e\x15\x2b\x2a\xd9\xdd\ -\x02\xe1\x00\x3d\xc5\x27\xf2\xfc\xec\x87\x7e\x5e\x9c\xd1\x79\xf9\ -\x1b\xc3\xfc\xf4\x55\x0d\x23\xca\x43\x6d\xb6\x32\x79\x9c\xb2\x04\ -\xc4\xa5\xb9\xca\xb9\x5c\xd7\x7e\xa0\xde\x40\x26\x3e\x7a\x10\xa3\ -\x54\xcc\xe2\xd7\xe8\x2e\x8a\xcb\xe3\x47\xf5\xb6\xe4\x32\x39\x46\ -\x4f\xfd\xbd\xdc\x0e\xd7\xef\x84\x01\x91\x98\xab\x9c\x5f\xe8\xd9\ -\x90\xd4\xc7\xac\x10\xe4\xfe\xb6\x32\x4c\xa5\x90\x26\xe8\xa7\x43\ -\xc2\x91\x30\x4e\xe5\xc0\x91\x94\xe8\xaa\x6b\xef\xa5\x78\xeb\xd6\ -\x10\x20\x72\xc0\xec\x41\xb0\x0e\x02\x33\x3b\x66\x4e\x48\x66\xa5\ -\x24\x77\xe5\xf6\x23\x64\x52\xa9\x0e\x77\xea\xb1\x10\xbf\xbd\xe6\ -\x55\xc5\x7b\x69\xf8\xc3\xfb\x50\x72\x3b\xdd\xbe\xb9\xb9\xc9\x9b\ -\xcb\x23\x4d\xf0\xb9\xca\xf9\xdc\x40\x5d\xf1\xa9\x9c\x99\xb8\x3e\ -\x64\x4d\x09\xc9\xe2\xdb\x2b\x63\xf1\xc3\xf7\x6d\xce\x7c\xa5\xc0\ -\xe8\xe8\x58\x53\x67\xcf\x86\xbf\x7e\xb0\x6f\xd3\x92\x14\xc9\xa4\ -\x1e\xf0\xe7\x8f\x86\x48\x17\x1e\x01\x44\xa2\x17\xf8\x43\xef\x05\ -\xf5\xee\x75\xfa\x5d\xdd\x5a\x48\x15\x23\x17\x7e\x73\x23\x62\x1c\ -\xd3\xf3\xcc\x4c\xec\x32\x36\x1c\x24\x14\x0c\x11\x8d\x79\x71\x50\ -\x2c\xe6\x71\x1c\x87\xad\x4c\x89\x1b\xf7\x0c\x36\xf6\x8e\x00\xe4\ -\xbc\x80\x3b\xff\xf9\x2e\x26\x8d\xf1\x42\xde\x5c\xf8\x67\xcc\xba\ -\x08\x9c\x5d\xdf\xd5\xcd\xf5\x5b\x7a\xbc\x5e\x4e\x5b\x0a\x4b\x0c\ -\x64\xa4\x91\xe1\x12\xde\x77\x2e\x2e\xf7\x7a\xeb\xff\x8b\x00\xc0\ -\xb7\x0b\x66\x0e\xb8\x08\x5c\x5c\x0c\x7b\x97\x53\xe0\x74\xb3\xaa\ -\x35\x73\x3b\xc9\x46\x86\x1b\x74\x28\x5f\xf4\xf5\xfc\x7f\x92\x93\ -\xb2\xba\x6d\x79\x43\x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ +\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ +\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ +\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x7a\x49\x44\ +\x41\x54\x38\x8d\xd5\x95\x4b\x48\x55\x41\x1c\xc6\x7f\x73\x3c\x5e\ +\x6e\x47\xc3\x67\x56\x54\x84\x49\x50\x9b\x5a\x48\xad\xdc\x44\x48\ +\x19\x29\x2d\xad\x36\xb9\x68\x55\xd1\x26\x6a\x11\x81\x1b\x17\x9a\ +\xe8\xa2\x27\x44\xed\x6a\x13\x14\x14\x24\x5a\xbb\x5c\xb9\x90\x6a\ +\x51\x1a\x59\x54\xa2\x5d\xef\xfb\xde\x73\xee\xe3\xdc\x73\xe6\xdf\ +\x42\xf2\x51\x72\xcd\x2e\x2e\xfa\x60\x60\x1e\xdf\x7c\xf3\xcd\x7f\ +\x66\xfe\xa3\x44\x84\xf5\x80\xb1\x2e\xaa\x80\xf9\xab\xd2\xd4\xd6\ +\xdb\x82\xa9\x86\xb5\xd6\xd6\xb2\x95\x0d\x23\x83\x27\x47\xa6\x86\ +\xae\x8c\xae\x45\x58\x89\x08\x4d\x6d\xbd\x2d\xc1\x8a\xf2\xa1\xcb\ +\x67\x8f\x55\x6e\xdf\x5a\xb3\x8c\x30\x3d\x1b\xa7\xef\xde\x0b\x3b\ +\xe7\x14\xda\xd6\x22\x3e\x2f\xdc\xde\xe7\x5c\x3b\xdf\x6e\x05\x2d\ +\x8b\xd9\x58\x76\x19\x61\x6b\xed\x06\x72\x99\x0c\x83\xf7\x87\xdd\ +\x94\x93\x0b\x14\x13\x33\x94\xf2\xcc\xf2\xb2\x9e\xc9\xa7\x97\xba\ +\x4d\x00\xad\xb5\x55\x51\x61\xf1\xfe\x5b\xe2\x0f\x72\xca\xc9\xd3\ +\x50\x1d\xe4\xea\x85\x13\x01\xa5\x54\x51\x97\xb9\xbc\x6b\x76\x0f\ +\x3e\xb9\x0a\x74\x2f\xc4\x38\x96\xca\xa0\x67\x46\xf1\x92\xdf\xd1\ +\x5a\x10\xd1\x68\x3d\x5f\x92\x5a\x33\xa9\x35\xbe\xbf\xd8\xa7\xb5\ +\xbf\xac\x6d\xd5\xed\x64\xff\xa1\x53\x68\x11\x13\x96\x1c\x5e\x38\ +\x9e\xc5\x0e\x7d\xa2\xbf\x6f\x80\xd5\x9c\xfd\x0e\xad\x7d\x4e\x9e\ +\xee\x24\x1c\x5f\x0c\xe3\x82\xf0\x5c\xcc\x26\x67\x67\x50\x4a\xe1\ +\xba\x2e\x22\xc2\xfc\x1d\x17\xbe\xfd\x48\x70\xe5\xc6\x4b\xde\x4c\ +\xcc\x14\x91\x6f\x66\xec\xd1\x08\x86\x61\xd0\xd4\xde\xd7\xb5\x20\ +\x3c\x1b\xb5\x09\x38\x36\x00\xbf\x0c\x8b\xc0\xc3\xa1\xb7\xdc\x7a\ +\x3c\x46\x47\x6b\x33\x5d\x9d\x87\x59\x6d\x2f\xe1\x58\x9a\x9e\x9b\ +\xcf\xee\xa8\x5d\xc7\x7b\xbb\x80\x07\x5a\xeb\x15\x89\xfb\xf6\xee\ +\xa0\xa3\xf5\x00\x62\x98\x84\x53\x79\x74\x91\x97\x1a\x30\x0d\xaa\ +\x83\x8a\xeb\x77\x9f\x87\x4c\xe0\xf6\xb9\xae\xa3\x6c\xae\xaf\x5a\ +\x91\xec\x7a\x9a\x70\x2a\x4f\xd6\xcd\xae\x38\xbe\x14\xe5\x40\x24\ +\xe1\x60\x18\xc6\xb4\x69\x9a\x65\xb3\x6e\xc1\x6f\xfc\x32\x67\x93\ +\x2f\xac\xec\xfa\x6f\x21\x62\x10\x89\xdb\x88\xc8\x67\x13\x98\x08\ +\x45\xd2\x8d\xb5\x0d\x75\x78\x7e\x69\x09\x49\x6b\x88\xc6\xd3\x14\ +\x0a\xde\x84\x59\x28\x78\xe3\xa1\x48\xa2\xad\x66\x53\x2d\x9e\x5f\ +\x9a\x63\x5f\x6b\x22\xd1\x14\x22\xf2\xd5\x10\x91\x0f\xa1\x70\xd2\ +\xd5\xa2\xd0\x42\x49\xc5\x17\x88\x27\xec\x3c\xf0\xdd\x00\x26\xa3\ +\xd1\x44\x01\x4a\xcf\xcb\x22\x42\x32\x9d\x26\xfe\x71\x64\xa3\x09\ +\x4c\xda\x76\x36\xe8\x38\x59\xaa\x2a\xad\x55\x27\x17\x43\xda\xce\ +\x90\xcd\xba\xe5\xce\xf4\x78\x40\x89\x08\x5b\x0e\x9e\xe9\xb7\x1a\ +\xf6\x5c\x14\x59\x7c\x89\xff\x02\xa5\xc4\x4b\x4e\xbd\x7e\x15\x9b\ +\x18\x1a\x50\x22\x82\x52\xaa\x1e\xd8\x0d\x44\x4b\xb2\x0c\xdb\x00\ +\x05\xbc\x53\xff\xdd\x9f\xf7\x13\x77\x5b\x6b\x82\x49\x2e\xb3\xc2\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x0b\xe1\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -8925,2191 +11392,274 @@ qt_resource_data = b"\ \x31\x54\x31\x32\x3a\x30\x35\x3a\x30\x31\x2b\x30\x38\x3a\x30\x30\ \x8e\xd1\x94\x42\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ -\x00\x00\x07\x7b\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\ -\x67\x9b\xee\x3c\x1a\x00\x00\x07\x0d\x49\x44\x41\x54\x58\x85\xc5\ -\x97\x49\x6c\x1c\x65\x16\xc7\x7f\xef\xab\xea\xcd\x6e\xdb\xe9\xb6\ -\xe3\x71\x1c\xdb\x31\x31\x6d\x07\x05\xc5\x09\x4b\x34\xc9\x44\x80\ -\x66\xc4\xa2\x44\x42\x39\x70\xe4\x80\x10\x20\x84\x10\x52\x0e\x13\ -\x0e\x20\x61\x09\x44\x16\x89\x1c\xb8\xc0\x81\x2b\x42\x82\x03\x17\ -\x92\x81\x64\x32\x08\x65\x63\x11\x0e\x26\x13\x5b\x4a\x3c\xce\x82\ -\xdb\x59\xec\x76\xa7\xbb\xdd\x5d\xd5\xdd\xb5\xcc\xa1\xaa\xab\x17\ -\x5b\x73\x8b\xe6\x93\x4a\x5f\x2d\xaf\xde\xff\x5f\xff\xf7\xbe\xf7\ -\xbd\x12\xd7\x75\x39\x28\xb2\x17\x98\x00\xc6\x81\x30\xf7\x77\x54\ -\x80\x29\x60\xe2\xa8\xeb\x9e\x90\xbf\xc3\xde\xae\x58\xec\xf8\xdf\ -\x1e\x7a\x88\x1d\x43\x43\x44\x74\xfd\xbe\xa2\x97\x2d\x8b\x8b\x37\ -\x6f\x72\x7a\x66\x86\x9c\x61\xec\xd3\x81\x89\xbf\x6e\xd9\xc2\xf8\ -\xc6\x8d\x5c\x99\x9f\x67\x3e\x93\xa1\x6a\x59\x6b\xbe\x2c\x22\x68\ -\x22\x28\xa5\xd0\xfc\x43\x29\x85\x26\x12\x9c\x2b\xa5\x50\xbe\x4d\ -\xeb\xac\x2b\x45\x22\x1e\xe7\xd1\xa1\x21\x5c\xd7\xe5\xeb\x8b\x17\ -\x27\x74\x60\x7c\x7c\x70\x90\xab\xe9\x34\xf9\xe1\x61\x52\xaf\xbe\ -\x8a\x16\x89\xac\x85\x8e\x00\x4a\x04\x44\x50\xfe\x3d\x25\x82\xf8\ -\xcf\xa4\xe5\x9c\xc6\xfb\x00\xd5\x2a\xa5\x33\x67\xc8\xcd\xce\x32\ -\x3e\x38\xc8\xd7\x17\x2f\x8e\xeb\x40\x38\xac\x69\xa4\x33\x19\x52\ -\xaf\xbd\x86\x1e\x8f\xaf\xc6\x6e\x70\x12\xea\xea\x22\xdc\xdd\x4d\ -\x28\x91\x40\xeb\xea\xc2\xb2\x6d\xcc\x4c\x06\x29\x14\xd0\x56\x56\ -\x70\x56\x56\x02\xb5\xa4\x75\x0e\x85\x88\x3f\xf1\x04\xf9\xcb\x97\ -\x59\xe7\xe1\x84\x75\x00\xd7\x75\xa9\xda\x36\xae\x6d\x63\xf9\x0e\ -\x5a\xc1\xe3\x23\x23\x24\x77\xed\x42\x8f\xc5\x56\x11\xec\xec\xef\ -\xaf\xc7\xb8\x58\xe4\xc6\xe9\xd3\x24\x0b\x05\x10\x09\xd4\x0b\x66\ -\xc7\x01\x11\x5c\xd7\x05\x20\x20\x00\x60\x15\x8b\x88\xa6\x35\xc7\ -\x3c\x16\xa3\xf7\xa9\xa7\xe8\x18\x1d\x5d\x33\x2f\x5a\x47\xa4\xbd\ -\x9d\xd1\xe7\x9f\xe7\xc6\xe4\x24\x32\x39\x49\xbb\x52\x75\x70\x11\ -\xc4\x71\x50\xad\x04\x1c\xff\xc2\x2e\x16\xc1\x27\x20\x40\x7c\x78\ -\x98\xfe\xfd\xfb\x09\x35\x84\xc5\xb1\x6d\x96\xe6\xe7\xb9\x33\x37\ -\xc7\xdd\xb9\x39\xda\x22\x11\x12\x43\x43\x74\x0f\x0f\xd3\x3d\x30\ -\x80\xf2\x01\x37\x3d\xf2\x08\xc5\xcd\x9b\xb9\xf6\xd5\x57\xf4\x57\ -\x2a\x01\x01\xd7\x71\x50\x4a\x05\x98\x1e\x01\xc7\x01\xa0\x9a\xcf\ -\x23\xa1\x10\x4a\x04\x3d\x1e\x5f\x05\x7e\xed\xb7\xdf\xf8\xd7\xa7\ -\x9f\xb2\x29\x14\x62\x7d\x3c\xce\x48\x2c\x86\x52\x0a\xb9\x71\x83\ -\xdc\xf7\xdf\x73\x2b\x12\xa1\x6f\xff\x7e\x7a\xb7\x6c\x01\xa0\x7d\ -\xdd\x3a\x1e\x78\xe1\x05\xa6\x3e\xfa\x88\x2d\x89\x84\xa7\x80\xeb\ -\xa2\x44\x02\x4c\x05\x60\xfb\x17\xb7\x4e\x9e\xa4\xba\xbc\x8c\x5d\ -\x2a\xd1\xbf\x6f\x5f\x00\x5e\x35\x4d\xfe\xf1\xf1\xc7\x9c\x3b\x72\ -\x84\x3f\xb7\xb7\xf3\x40\x7b\x3b\x1d\x80\x6b\x9a\xb8\x86\x81\x6b\ -\x18\x44\x2c\x8b\x64\xa9\x84\xf5\xc5\x17\x5c\xff\xf2\x4b\xaa\xe5\ -\xb2\x47\x22\x91\x60\xfd\x73\xcf\x91\xcb\x66\xc1\x34\x11\xd3\x44\ -\x44\x02\x4c\xd5\x14\x82\x5c\x8e\xa5\x1f\x7e\xa0\x63\x64\x84\x75\ -\xdb\xb7\x07\x5f\x7e\xea\x93\x4f\xa8\x5e\xb8\xc0\x63\x3d\x3d\x84\ -\x2c\xcb\x03\x35\x4d\x22\x03\x03\x44\x06\x07\x71\x0d\xc3\x73\xee\ -\xcf\x91\xc9\x49\xf2\xdf\x7c\x13\xbc\x9f\xda\xb3\x87\x74\x77\x37\ -\xf8\x64\x95\x48\x80\x19\x28\xa0\xc0\x93\xb3\x5a\x65\xe8\xc5\x17\ -\xeb\xb2\xff\xfa\x2b\x37\x4f\x9c\x60\x24\x16\xf3\x80\x4b\x25\x1c\ -\xc3\x20\xf9\xec\xb3\xf4\xbf\xf1\x06\x7d\xaf\xbf\x4e\x61\xd7\x2e\ -\x8c\x5c\x0e\xd7\x34\xa1\x54\x02\xc3\xc0\x3a\x73\x86\xc2\xcc\x4c\ -\xe0\xe7\xd1\x97\x5f\xe6\xf2\xfc\xbc\xa7\x40\x83\xea\xaa\x96\x03\ -\xb5\x8a\xd6\x91\x4a\x11\x4e\x26\x83\x84\x3b\xfe\xc1\x07\xec\xe8\ -\xec\xf4\xd8\x97\x4a\x01\x89\xf8\xce\x9d\x81\xf3\x4d\x4f\x3e\xc9\ -\xd5\x3b\x77\xa0\x54\xf2\x48\x18\x06\x18\x06\xe5\xcf\x3f\xc7\xb5\ -\x6d\x00\x62\x5d\x5d\x64\xc3\x61\x9c\x4c\x06\x59\x95\x03\xae\x1b\ -\x94\xd3\x75\xdb\xb6\x05\x8e\xef\x5e\xb9\x42\x78\x66\x86\x68\x0b\ -\x38\xa6\x89\x34\x54\xcb\x70\x2c\x46\xae\x50\x80\x1a\xb8\x69\x82\ -\x69\xe2\xcc\xcf\x53\x4d\xa7\x03\xbb\xe8\x86\x0d\x54\xd3\x69\x94\ -\x08\x76\x63\x08\x1c\xc7\x09\x6a\x79\x57\x03\x81\xf4\xd4\x14\x5d\ -\x8e\x43\x35\x9d\xc6\x5a\x5a\xf2\xe4\xad\x81\x34\x0e\xd7\x85\x4a\ -\x05\xca\x65\xa4\x5c\x0e\x08\x88\x69\xe2\xcc\xcd\x05\x66\xbd\xa9\ -\x14\xf7\x2c\x6b\x0d\x05\x6a\x21\x50\x8a\x8e\x87\x1f\x0e\x5e\x58\ -\xf8\xfd\x77\x92\xa1\x90\xb7\xb6\x0d\x03\x7b\x79\x19\xf7\xde\x3d\ -\xdc\x62\xd1\x03\x6d\x1c\x95\x4a\xf0\xf5\x52\x2a\x41\x3e\x8f\x9b\ -\xcd\x62\x5d\xba\x14\x98\xfc\x69\xeb\x56\x32\xd5\x2a\x4a\xa9\x20\ -\x07\x74\x00\xdb\xb6\xd1\x94\x42\x6a\x55\xcb\x1f\x22\x42\x5c\xd7\ -\x83\xdd\x4c\x03\xc4\xb6\xbd\xaf\x6c\x19\x52\x2e\x23\x86\x51\xdf\ -\x90\xfc\x8d\xaa\xc5\x21\x2b\xb6\xed\x2d\x43\x3f\x37\x14\x80\xe5\ -\x87\x40\x53\x0a\x63\x7a\x3a\xb0\xdf\x38\x3e\x4e\xb1\x41\x9d\xc6\ -\xed\xb6\x75\x28\x1f\x50\x35\x80\x8b\x08\xa1\xb1\xb1\xc0\x66\xf1\ -\xf2\x65\x12\xe1\x30\x4a\x04\xab\x29\x04\xb6\x8d\xf8\xab\xa0\xd8\ -\x40\xa0\x7f\xdb\x36\x0a\xb5\xfc\x68\xd9\xdb\x57\x29\xb0\x06\xb8\ -\x12\x41\x4f\xa5\xea\x04\xa6\xa7\x59\x1f\x89\xac\x56\xc0\x76\x9c\ -\xa0\xd1\x30\x1a\xd6\xee\xfa\x54\x0a\xab\xaf\x6f\xcd\x06\xa3\x55\ -\x83\x46\xd0\xda\xa1\xf5\xf5\xa1\x86\x86\x02\x9b\xcc\xcc\x4c\x9d\ -\x40\x6b\x12\x8a\x2f\x6f\xe5\xfa\x75\x2a\xd9\xac\xf7\x50\xd3\x78\ -\xfc\xfd\xf7\x29\xf8\x3b\x58\x23\x89\x46\xa2\x77\x2e\x5d\x22\xa2\ -\x69\xcd\x21\x50\x8a\xb6\x03\x07\x82\xdd\xd5\xc8\x66\x51\xe9\x34\ -\xba\x52\xab\x0b\x91\x65\xdb\x75\xe7\x22\xa4\x8f\x1e\x0d\x9c\x0f\ -\xef\xde\x8d\xb1\x6f\x5f\xd0\xfd\xd4\xec\x4a\x9f\x7d\xc6\xad\x1f\ -\x7f\xe4\xe6\xf9\xf3\x9c\x3f\x76\x8c\x91\xb6\xb6\x26\xf0\xf0\xde\ -\xbd\xe8\xe3\xe3\x81\x9f\x73\x87\x0e\x31\x16\x8f\x7b\xca\x89\x60\ -\xf9\x21\xd0\x6b\x0a\xa8\x5a\x5f\x27\x42\xe9\xf4\x69\x16\x4f\x9d\ -\x62\xfd\xd3\x4f\x03\xb0\xfb\xed\xb7\xf9\xb7\xae\x93\x38\x79\x32\ -\x20\x61\xcf\xce\x22\xef\xbc\x43\xbe\x5a\x65\x4f\x28\x44\x5b\x34\ -\xda\x04\x1e\x79\xe5\x95\x00\x7c\xf6\xdb\x6f\x29\x9f\x3d\xcb\x58\ -\x6f\x6f\xd0\xa6\xad\x0a\x41\x6b\xa2\xe5\x8e\x1d\xc3\xcc\x64\x00\ -\x08\xc5\x62\xec\x78\xf7\x5d\xc2\x87\x0f\x53\xee\xe9\xa9\xc7\x59\ -\x29\xfa\xa2\x51\xda\x74\xdd\x6b\x5e\x36\x6c\xa0\xfd\xc3\x0f\x89\ -\xbd\xf9\x26\x2a\x1a\x05\xa0\xb4\xb8\xc8\xcf\x47\x8e\xf0\x97\x64\ -\xd2\x03\x6f\x21\xa0\xd7\x42\x10\x0d\x87\x9b\x62\xec\xe6\x72\xdc\ -\x7d\xef\x3d\x7a\x26\x26\x68\xeb\xe9\x01\xa0\x7f\xf7\x6e\x9c\x9d\ -\x3b\x29\x5e\xbb\x46\xe5\xca\x15\xe4\xea\x55\x22\x9a\x86\x36\x3a\ -\x8a\x4a\xa5\x08\x6d\xda\xd4\xd4\x51\x95\x16\x17\xf9\xe7\xc1\x83\ -\x6c\xd7\x34\xda\x43\xa1\x00\xdc\x6d\x0d\x41\x53\x0e\x34\xcc\xf6\ -\xd4\x14\x0b\x2f\xbd\x44\xe4\xad\xb7\x18\x7c\xe6\x19\x4f\x32\x5d\ -\xa7\x23\x95\x82\x86\xe5\xb5\xd6\xf8\xcf\x77\xdf\x31\x79\xf4\x28\ -\x8f\xe9\x3a\x03\x1d\x1d\xf5\xce\xd8\x6f\x4a\x56\x13\x80\xb5\x7b\ -\xf9\x95\x15\xd4\xe1\xc3\xcc\x9e\x3d\xcb\xc6\x03\x07\x88\x25\x12\ -\xff\x13\xd8\xc8\x66\x39\x77\xe8\x10\xea\xc2\x05\xf6\x26\x12\x84\ -\x35\xad\x19\xdc\xb7\x6b\x26\xe0\x38\xb8\xb0\xe6\x7a\xd7\x94\x42\ -\x44\xe8\x38\x7f\x9e\xc5\x73\xe7\xb8\xdd\xdb\x8b\x1a\x1d\x25\x36\ -\x36\x46\xf7\xd6\xad\x80\x57\xe1\x32\xd3\xd3\x54\x66\x67\x89\x2e\ -\x2c\x30\x12\x8b\x31\xd0\xdd\xdd\x14\xf3\xc6\x7f\x84\xaa\x6d\x07\ -\x95\x50\x07\x2a\xa6\x65\x85\x8b\xa6\x49\xb4\xb3\x73\x4d\xf0\x5a\ -\xd2\xb5\x29\xc5\x83\xcb\xcb\xc8\x4f\x3f\xa1\x7e\xf9\x05\xd3\x71\ -\xc8\x59\x16\x09\x4d\x63\x73\x38\xec\xad\xf1\x64\xb2\x0e\xb8\x06\ -\xb8\x88\x90\x5e\x5a\xc2\xf4\xfe\xbe\x2a\x3a\x30\x75\xbb\x50\x78\ -\x5c\xc3\xeb\x84\x93\x9d\x9d\x28\xd7\x45\xfc\xd6\xb9\x26\x59\x6d\ -\xef\x73\xfc\xbf\x22\xc7\x75\x89\x2a\x45\x9b\x5f\xd9\xc4\xbf\x27\ -\xae\x5b\x07\xac\x9d\xfb\xfe\x6c\xdb\x66\x7e\x71\x91\xab\x0b\x0b\ -\xdc\x2e\x14\x00\xa6\x74\x60\xe2\x66\x3e\x7f\xdc\x05\xca\xb6\xcd\ -\x82\x5f\x05\xef\xd7\xb0\x5d\x97\xc5\x52\x89\x3f\xf2\x79\x80\x09\ -\xf9\x7f\xff\x9e\xff\x17\xc5\xd6\x3d\x9a\xb0\xf3\x6b\xe8\x00\x00\ -\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x0b\xc1\ -\x6f\ -\x70\x65\x6e\x46\x69\x6c\x65\x3d\x4f\x70\x65\x6e\x0d\x0a\x6f\x70\ -\x65\x6e\x46\x69\x6c\x65\x44\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\ -\x6e\x20\x69\x6d\x61\x67\x65\x20\x6f\x72\x20\x6c\x61\x62\x65\x6c\ -\x20\x66\x69\x6c\x65\x0d\x0a\x71\x75\x69\x74\x3d\x51\x75\x69\x74\ -\x0d\x0a\x71\x75\x69\x74\x41\x70\x70\x3d\x51\x75\x69\x74\x20\x61\ -\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x0d\x0a\x6f\x70\x65\x6e\ -\x44\x69\x72\x3d\x4f\x70\x65\x6e\x20\x44\x69\x72\x0d\x0a\x63\x6f\ -\x70\x79\x50\x72\x65\x76\x42\x6f\x75\x6e\x64\x69\x6e\x67\x3d\x43\ -\x6f\x70\x79\x20\x70\x72\x65\x76\x69\x6f\x75\x73\x20\x42\x6f\x75\ -\x6e\x64\x69\x6e\x67\x20\x42\x6f\x78\x65\x73\x20\x69\x6e\x20\x74\ -\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\ -\x20\x0d\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\x76\x65\x64\x41\x6e\ -\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x44\x69\x72\x3d\x43\x68\x61\x6e\ -\x67\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x73\x61\x76\x65\x64\ -\x20\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x64\x69\x72\x0d\ -\x0a\x6f\x70\x65\x6e\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x3d\ -\x4f\x70\x65\x6e\x20\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x0d\ -\x0a\x6f\x70\x65\x6e\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x44\ -\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\x6e\x20\x61\x6e\x20\x61\x6e\ -\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x66\x69\x6c\x65\x0d\x0a\x63\ -\x68\x61\x6e\x67\x65\x53\x61\x76\x65\x44\x69\x72\x3d\x43\x68\x61\ -\x6e\x67\x65\x20\x53\x61\x76\x65\x20\x44\x69\x72\x0d\x0a\x6e\x65\ -\x78\x74\x49\x6d\x67\x3d\x4e\x65\x78\x74\x20\x49\x6d\x61\x67\x65\ -\x0d\x0a\x6e\x65\x78\x74\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\ -\x4f\x70\x65\x6e\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x49\x6d\ -\x61\x67\x65\x0d\x0a\x70\x72\x65\x76\x49\x6d\x67\x3d\x50\x72\x65\ -\x76\x20\x49\x6d\x61\x67\x65\x0d\x0a\x70\x72\x65\x76\x49\x6d\x67\ -\x44\x65\x74\x61\x69\x6c\x3d\x4f\x70\x65\x6e\x20\x74\x68\x65\x20\ -\x70\x72\x65\x76\x69\x6f\x75\x73\x20\x49\x6d\x61\x67\x65\x0d\x0a\ -\x76\x65\x72\x69\x66\x79\x49\x6d\x67\x3d\x56\x65\x72\x69\x66\x79\ -\x20\x49\x6d\x61\x67\x65\x0d\x0a\x76\x65\x72\x69\x66\x79\x49\x6d\ -\x67\x44\x65\x74\x61\x69\x6c\x3d\x56\x65\x72\x69\x66\x79\x20\x49\ -\x6d\x61\x67\x65\x0d\x0a\x73\x61\x76\x65\x3d\x43\x68\x65\x63\x6b\ -\x0d\x0a\x73\x61\x76\x65\x44\x65\x74\x61\x69\x6c\x3d\x53\x61\x76\ -\x65\x20\x74\x68\x65\x20\x6c\x61\x62\x65\x6c\x73\x20\x74\x6f\x20\ -\x61\x20\x66\x69\x6c\x65\x0d\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\ -\x76\x65\x46\x6f\x72\x6d\x61\x74\x3d\x43\x68\x61\x6e\x67\x65\x20\ -\x73\x61\x76\x65\x20\x66\x6f\x72\x6d\x61\x74\x0d\x0a\x73\x61\x76\ -\x65\x41\x73\x3d\x53\x61\x76\x65\x20\x41\x73\x0d\x0a\x73\x61\x76\ -\x65\x41\x73\x44\x65\x74\x61\x69\x6c\x3d\x53\x61\x76\x65\x20\x74\ -\x68\x65\x20\x6c\x61\x62\x65\x6c\x73\x20\x74\x6f\x20\x61\x20\x64\ -\x69\x66\x66\x65\x72\x65\x6e\x74\x20\x66\x69\x6c\x65\x0d\x0a\x63\ -\x6c\x6f\x73\x65\x43\x75\x72\x3d\x43\x6c\x6f\x73\x65\x0d\x0a\x63\ -\x6c\x6f\x73\x65\x43\x75\x72\x44\x65\x74\x61\x69\x6c\x3d\x43\x6c\ -\x6f\x73\x65\x20\x74\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\ -\x66\x69\x6c\x65\x0d\x0a\x64\x65\x6c\x65\x74\x65\x49\x6d\x67\x3d\ -\x44\x65\x6c\x65\x74\x65\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x69\ -\x6d\x61\x67\x65\x0d\x0a\x64\x65\x6c\x65\x74\x65\x49\x6d\x67\x44\ -\x65\x74\x61\x69\x6c\x3d\x44\x65\x6c\x65\x74\x65\x20\x74\x68\x65\ -\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x69\x6d\x61\x67\x65\x0d\x0a\ -\x72\x65\x73\x65\x74\x41\x6c\x6c\x3d\x52\x65\x73\x65\x74\x20\x49\ -\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x61\x6e\x64\x20\x53\x61\x76\ -\x65\x20\x44\x69\x72\x0d\x0a\x72\x65\x73\x65\x74\x41\x6c\x6c\x44\ -\x65\x74\x61\x69\x6c\x3d\x52\x65\x73\x65\x74\x20\x41\x6c\x6c\x0d\ -\x0a\x62\x6f\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\x42\x6f\ -\x78\x20\x4c\x69\x6e\x65\x20\x43\x6f\x6c\x6f\x72\x0d\x0a\x62\x6f\ -\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x44\x65\x74\x61\x69\x6c\ -\x3d\x43\x68\x6f\x6f\x73\x65\x20\x42\x6f\x78\x20\x6c\x69\x6e\x65\ -\x20\x63\x6f\x6c\x6f\x72\x0d\x0a\x63\x72\x74\x42\x6f\x78\x3d\x43\ -\x72\x65\x61\x74\x65\x20\x52\x65\x63\x74\x42\x6f\x78\x0d\x0a\x63\ -\x72\x74\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\x44\x72\x61\x77\ -\x20\x61\x20\x6e\x65\x77\x20\x62\x6f\x78\x0d\x0a\x64\x65\x6c\x42\ -\x6f\x78\x3d\x44\x65\x6c\x65\x74\x65\x20\x52\x65\x63\x74\x42\x6f\ -\x78\x0d\x0a\x64\x65\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\ -\x52\x65\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x62\x6f\x78\x0d\x0a\ -\x64\x75\x70\x42\x6f\x78\x3d\x44\x75\x70\x6c\x69\x63\x61\x74\x65\ -\x20\x52\x65\x63\x74\x42\x6f\x78\x0d\x0a\x64\x75\x70\x42\x6f\x78\ -\x44\x65\x74\x61\x69\x6c\x3d\x43\x72\x65\x61\x74\x65\x20\x61\x20\ -\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6f\x66\x20\x74\x68\x65\ -\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x62\x6f\x78\x0d\x0a\x74\ -\x75\x74\x6f\x72\x69\x61\x6c\x3d\x50\x61\x64\x64\x6c\x65\x4f\x43\ -\x52\x20\x75\x72\x6c\x0d\x0a\x74\x75\x74\x6f\x72\x69\x61\x6c\x44\ -\x65\x74\x61\x69\x6c\x3d\x53\x68\x6f\x77\x20\x64\x65\x6d\x6f\x0d\ -\x0a\x69\x6e\x66\x6f\x3d\x49\x6e\x66\x6f\x72\x6d\x61\x74\x69\x6f\ -\x6e\x0d\x0a\x7a\x6f\x6f\x6d\x69\x6e\x3d\x5a\x6f\x6f\x6d\x20\x49\ -\x6e\x0d\x0a\x7a\x6f\x6f\x6d\x69\x6e\x44\x65\x74\x61\x69\x6c\x3d\ -\x49\x6e\x63\x72\x65\x61\x73\x65\x20\x7a\x6f\x6f\x6d\x20\x6c\x65\ -\x76\x65\x6c\x0d\x0a\x7a\x6f\x6f\x6d\x6f\x75\x74\x3d\x5a\x6f\x6f\ -\x6d\x20\x4f\x75\x74\x0d\x0a\x7a\x6f\x6f\x6d\x6f\x75\x74\x44\x65\ -\x74\x61\x69\x6c\x3d\x44\x65\x63\x72\x65\x61\x73\x65\x20\x7a\x6f\ -\x6f\x6d\x20\x6c\x65\x76\x65\x6c\x0d\x0a\x6f\x72\x69\x67\x69\x6e\ -\x61\x6c\x73\x69\x7a\x65\x3d\x4f\x72\x69\x67\x69\x6e\x61\x6c\x20\ -\x73\x69\x7a\x65\x0d\x0a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x73\x69\ -\x7a\x65\x44\x65\x74\x61\x69\x6c\x3d\x5a\x6f\x6f\x6d\x20\x74\x6f\ -\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x20\x73\x69\x7a\x65\x0d\x0a\ -\x66\x69\x74\x57\x69\x6e\x3d\x46\x69\x74\x20\x57\x69\x6e\x64\x6f\ -\x77\x0d\x0a\x66\x69\x74\x57\x69\x6e\x44\x65\x74\x61\x69\x6c\x3d\ -\x5a\x6f\x6f\x6d\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x20\x77\x69\x6e\ -\x64\x6f\x77\x20\x73\x69\x7a\x65\x0d\x0a\x66\x69\x74\x57\x69\x64\ -\x74\x68\x3d\x46\x69\x74\x20\x57\x69\x64\x74\x68\x0d\x0a\x66\x69\ -\x74\x57\x69\x64\x74\x68\x44\x65\x74\x61\x69\x6c\x3d\x5a\x6f\x6f\ -\x6d\x20\x66\x6f\x6c\x6c\x6f\x77\x73\x20\x77\x69\x6e\x64\x6f\x77\ -\x20\x77\x69\x64\x74\x68\x0d\x0a\x65\x64\x69\x74\x4c\x61\x62\x65\ -\x6c\x3d\x45\x64\x69\x74\x20\x4c\x61\x62\x65\x6c\x0d\x0a\x65\x64\ -\x69\x74\x4c\x61\x62\x65\x6c\x44\x65\x74\x61\x69\x6c\x3d\x4d\x6f\ -\x64\x69\x66\x79\x20\x74\x68\x65\x20\x6c\x61\x62\x65\x6c\x20\x6f\ -\x66\x20\x74\x68\x65\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x42\ -\x6f\x78\x0d\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\x6c\ -\x6f\x72\x3d\x53\x68\x61\x70\x65\x20\x4c\x69\x6e\x65\x20\x43\x6f\ -\x6c\x6f\x72\x0d\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\ -\x6c\x6f\x72\x44\x65\x74\x61\x69\x6c\x3d\x43\x68\x61\x6e\x67\x65\ -\x20\x74\x68\x65\x20\x6c\x69\x6e\x65\x20\x63\x6f\x6c\x6f\x72\x20\ -\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x73\x70\x65\x63\x69\x66\x69\ -\x63\x20\x73\x68\x61\x70\x65\x0d\x0a\x73\x68\x61\x70\x65\x46\x69\ -\x6c\x6c\x43\x6f\x6c\x6f\x72\x3d\x53\x68\x61\x70\x65\x20\x46\x69\ -\x6c\x6c\x20\x43\x6f\x6c\x6f\x72\x0d\x0a\x73\x68\x61\x70\x65\x46\ -\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x44\x65\x74\x61\x69\x6c\x3d\x43\ -\x68\x61\x6e\x67\x65\x20\x74\x68\x65\x20\x66\x69\x6c\x6c\x20\x63\ -\x6f\x6c\x6f\x72\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x73\x70\ -\x65\x63\x69\x66\x69\x63\x20\x73\x68\x61\x70\x65\x0d\x0a\x73\x68\ -\x6f\x77\x48\x69\x64\x65\x3d\x53\x68\x6f\x77\x2f\x48\x69\x64\x65\ -\x20\x4c\x61\x62\x65\x6c\x20\x50\x61\x6e\x65\x6c\x0d\x0a\x75\x73\ -\x65\x44\x65\x66\x61\x75\x6c\x74\x4c\x61\x62\x65\x6c\x3d\x55\x73\ -\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x6c\x61\x62\x65\x6c\x0d\ -\x0a\x75\x73\x65\x44\x69\x66\x66\x69\x63\x75\x6c\x74\x3d\x44\x69\ -\x66\x66\x69\x63\x75\x6c\x74\x0d\x0a\x62\x6f\x78\x4c\x61\x62\x65\ -\x6c\x54\x65\x78\x74\x3d\x42\x6f\x78\x20\x4c\x61\x62\x65\x6c\x73\ -\x0d\x0a\x6c\x61\x62\x65\x6c\x73\x3d\x4c\x61\x62\x65\x6c\x73\x0d\ -\x0a\x61\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\x3d\x41\x75\ -\x74\x6f\x20\x53\x61\x76\x65\x20\x6d\x6f\x64\x65\x0d\x0a\x73\x69\ -\x6e\x67\x6c\x65\x43\x6c\x73\x4d\x6f\x64\x65\x3d\x53\x69\x6e\x67\ -\x6c\x65\x20\x43\x6c\x61\x73\x73\x20\x4d\x6f\x64\x65\x0d\x0a\x64\ -\x69\x73\x70\x6c\x61\x79\x4c\x61\x62\x65\x6c\x3d\x44\x69\x73\x70\ -\x6c\x61\x79\x20\x4c\x61\x62\x65\x6c\x73\x0d\x0a\x66\x69\x6c\x65\ -\x4c\x69\x73\x74\x3d\x46\x69\x6c\x65\x20\x4c\x69\x73\x74\x0d\x0a\ -\x66\x69\x6c\x65\x73\x3d\x46\x69\x6c\x65\x73\x0d\x0a\x61\x64\x76\ -\x61\x6e\x63\x65\x64\x4d\x6f\x64\x65\x3d\x41\x64\x76\x61\x6e\x63\ -\x65\x64\x20\x4d\x6f\x64\x65\x0d\x0a\x61\x64\x76\x61\x6e\x63\x65\ -\x64\x4d\x6f\x64\x65\x44\x65\x74\x61\x69\x6c\x3d\x53\x77\x74\x69\ -\x63\x68\x20\x74\x6f\x20\x61\x64\x76\x61\x6e\x63\x65\x64\x20\x6d\ -\x6f\x64\x65\x0d\x0a\x73\x68\x6f\x77\x41\x6c\x6c\x42\x6f\x78\x44\ -\x65\x74\x61\x69\x6c\x3d\x53\x68\x6f\x77\x20\x61\x6c\x6c\x20\x62\ -\x6f\x75\x6e\x64\x69\x6e\x67\x20\x62\x6f\x78\x65\x73\x0d\x0a\x68\ -\x69\x64\x65\x41\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\ -\x48\x69\x64\x65\x20\x61\x6c\x6c\x20\x62\x6f\x75\x6e\x64\x69\x6e\ -\x67\x20\x62\x6f\x78\x65\x73\x0d\x0a\x61\x6e\x6e\x6f\x50\x61\x6e\ -\x65\x6c\x3d\x61\x6e\x6e\x6f\x20\x50\x61\x6e\x65\x6c\x0d\x0a\x61\ -\x6e\x6e\x6f\x3d\x61\x6e\x6e\x6f\x0d\x0a\x61\x64\x64\x4e\x65\x77\ -\x42\x62\x6f\x78\x3d\x6e\x65\x77\x20\x62\x62\x6f\x78\x0d\x0a\x72\ -\x65\x4c\x61\x62\x65\x6c\x3d\x72\x65\x4c\x61\x62\x65\x6c\x0d\x0a\ -\x63\x68\x6f\x6f\x73\x65\x6d\x6f\x64\x65\x6c\x3d\x43\x68\x6f\x6f\ -\x73\x65\x20\x4f\x43\x52\x20\x6d\x6f\x64\x65\x6c\x0d\x0a\x74\x69\ -\x70\x63\x68\x6f\x6f\x73\x65\x6d\x6f\x64\x65\x6c\x3d\x43\x68\x6f\ -\x6f\x73\x65\x20\x4f\x43\x52\x20\x6d\x6f\x64\x65\x6c\x20\x66\x72\ -\x6f\x6d\x20\x64\x69\x72\x0d\x0a\x49\x6d\x61\x67\x65\x52\x65\x73\ -\x69\x7a\x65\x3d\x49\x6d\x61\x67\x65\x20\x52\x65\x73\x69\x7a\x65\ -\x0d\x0a\x49\x52\x3d\x49\x6d\x61\x67\x65\x20\x52\x65\x73\x69\x7a\ -\x65\x0d\x0a\x61\x75\x74\x6f\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\ -\x6f\x6e\x3d\x41\x75\x74\x6f\x20\x52\x65\x63\x6f\x67\x6e\x69\x74\ -\x69\x6f\x6e\x0d\x0a\x72\x65\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\ -\x6f\x6e\x3d\x52\x65\x2d\x72\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\ -\x6e\x0d\x0a\x6d\x66\x69\x6c\x65\x3d\x46\x69\x6c\x65\x0d\x0a\x6d\ -\x65\x64\x69\x74\x3d\x45\x69\x64\x74\x0d\x0a\x6d\x76\x69\x65\x77\ -\x3d\x56\x69\x65\x77\x0d\x0a\x6d\x68\x65\x6c\x70\x3d\x48\x65\x6c\ -\x70\x0d\x0a\x69\x63\x6f\x6e\x4c\x69\x73\x74\x3d\x49\x63\x6f\x6e\ -\x20\x4c\x69\x73\x74\x0d\x0a\x64\x65\x74\x65\x63\x74\x69\x6f\x6e\ -\x42\x6f\x78\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x44\x65\x74\x65\ -\x63\x74\x69\x6f\x6e\x20\x62\x6f\x78\x20\x70\x6f\x73\x69\x74\x69\ -\x6f\x6e\x0d\x0a\x72\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x52\ -\x65\x73\x75\x6c\x74\x3d\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\ -\x6e\x20\x72\x65\x73\x75\x6c\x74\x0d\x0a\x63\x72\x65\x61\x74\x50\ -\x6f\x6c\x79\x67\x6f\x6e\x3d\x43\x72\x65\x61\x74\x65\x20\x51\x75\ -\x61\x64\x72\x69\x6c\x61\x74\x65\x72\x61\x6c\x0d\x0a\x64\x72\x61\ -\x77\x53\x71\x75\x61\x72\x65\x73\x3d\x44\x72\x61\x77\x20\x53\x71\ -\x75\x61\x72\x65\x73\x0d\x0a\x73\x61\x76\x65\x52\x65\x63\x3d\x53\ -\x61\x76\x65\x20\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x20\ -\x52\x65\x73\x75\x6c\x74\x0d\x0a\x74\x65\x6d\x70\x4c\x61\x62\x65\ -\x6c\x3d\x54\x45\x4d\x50\x4f\x52\x41\x52\x59\x0d\x0a\x73\x74\x65\ -\x70\x73\x3d\x53\x74\x65\x70\x73\x0d\x0a\x63\x68\x6f\x73\x65\x4d\ -\x6f\x64\x65\x6c\x4c\x67\x3d\x43\x68\x6f\x6f\x73\x65\x20\x4d\x6f\ -\x64\x65\x6c\x20\x4c\x61\x6e\x67\x75\x61\x67\x65\x0d\x0a\x63\x61\ -\x6e\x63\x65\x6c\x3d\x43\x61\x6e\x63\x65\x6c\x0d\x0a\x6f\x6b\x3d\ -\x4f\x4b\x0d\x0a\x61\x75\x74\x6f\x6c\x61\x62\x65\x6c\x69\x6e\x67\ -\x3d\x41\x75\x74\x6f\x6d\x61\x74\x69\x63\x20\x4c\x61\x62\x65\x6c\ -\x69\x6e\x67\x0d\x0a\x68\x69\x64\x65\x42\x6f\x78\x3d\x48\x69\x64\ -\x65\x20\x41\x6c\x6c\x20\x42\x6f\x78\x0d\x0a\x73\x68\x6f\x77\x42\ -\x6f\x78\x3d\x53\x68\x6f\x77\x20\x41\x6c\x6c\x20\x42\x6f\x78\x0d\ -\x0a\x73\x61\x76\x65\x4c\x61\x62\x65\x6c\x3d\x53\x61\x76\x65\x20\ -\x4c\x61\x62\x65\x6c\x0d\x0a\x73\x69\x6e\x67\x6c\x65\x52\x65\x3d\ -\x52\x65\x2d\x72\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x20\x52\ -\x65\x63\x74\x42\x6f\x78\x0d\x0a\x6c\x61\x62\x65\x6c\x44\x69\x61\ -\x6c\x6f\x67\x4f\x70\x74\x69\x6f\x6e\x3d\x50\x6f\x70\x2d\x75\x70\ -\x20\x4c\x61\x62\x65\x6c\x20\x49\x6e\x70\x75\x74\x20\x44\x69\x61\ -\x6c\x6f\x67\x0d\x0a\x75\x6e\x64\x6f\x3d\x55\x6e\x64\x6f\x0d\x0a\ -\x75\x6e\x64\x6f\x4c\x61\x73\x74\x50\x6f\x69\x6e\x74\x3d\x55\x6e\ -\x64\x6f\x20\x4c\x61\x73\x74\x20\x50\x6f\x69\x6e\x74\x0d\x0a\x61\ -\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\x3d\x41\x75\x74\x6f\ -\x20\x53\x61\x76\x65\x20\x4c\x61\x62\x65\x6c\x20\x4d\x6f\x64\x65\ -\ -\x00\x00\x04\xb5\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x1c\x00\x00\x00\x1e\x08\x06\x00\x00\x00\x3f\xc5\x7e\x9f\ -\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x04\ -\x6f\x49\x44\x41\x54\x48\x0d\xbd\x96\x6b\x68\x93\x57\x18\xc7\x9b\ -\x34\xa9\xa8\xd4\x2b\xce\xb6\x54\xa7\x78\x2b\x65\xe8\xa4\x2d\xf3\ -\xcb\x86\xf5\x0e\x32\xfd\xe0\x0c\x82\x8a\x0a\x92\xde\x28\xa5\xc3\ -\xa2\x43\x1d\x65\x4a\xfd\xd2\x0f\x42\x95\x5e\xac\x28\x38\x05\x2b\ -\x38\x10\x65\xb0\xba\x8a\xe0\xb5\x69\x55\xbc\x0b\x32\x6b\xd5\xd8\ -\x74\x3a\x87\xb4\xc9\xd2\xa4\xc9\x7e\x4f\x78\x4f\x7c\xdf\xf2\xe6\ -\x4d\xf4\x83\x07\x4e\x9e\xfb\xf3\x3f\xcf\xf3\x9e\x73\x72\xd2\xd2\ -\x3e\xf3\x48\x4f\x05\x2f\x1a\x8d\xda\x7c\x3e\xdf\xe2\xae\xae\xae\ -\x9e\x54\xfc\xad\x7c\x52\x02\xec\xeb\xeb\xab\x03\xb4\xb5\xa8\xa8\ -\x28\x00\xe8\x55\xab\x84\xc9\x6c\xf6\x64\x0e\xa5\xa5\xa5\x5b\x01\ -\xfb\x09\xbf\x50\x24\x12\xf1\x24\xf3\x4f\x66\xb7\x04\x04\x6c\x31\ -\x20\x2d\x92\xc4\x6e\xb7\x97\xb6\xb4\xb4\x5c\x4a\x96\x30\x99\xdd\ -\x96\xc8\xa1\xa2\xa2\x62\x6e\x38\x1c\xbe\x41\x75\x13\x6d\x36\xdb\ -\x79\xfc\xa4\xba\xa5\xcc\x59\xe8\xb2\xa0\x41\xf4\xef\xa0\xb7\x99\ -\x57\x32\x32\x32\x4e\x36\x34\x34\xbc\x84\xb7\x1c\xa6\x80\xd5\xd5\ -\xd5\x93\x06\x07\x07\x6f\x12\x39\xdb\x32\x5a\x67\x04\x3c\x82\x78\ -\x16\x5a\xd3\xd4\xd4\xd4\xa3\x33\x19\x58\xd3\x96\xfa\xfd\xfe\x56\ -\xbc\xe2\x60\x5a\xb2\x56\xda\xba\x8a\x99\xdb\xdc\xdc\x6c\xcf\xc9\ -\xc9\x71\xc2\xcf\xc4\xb6\x0e\xdf\x53\xcc\x20\x95\xff\xc0\x27\x78\ -\x54\x52\x52\x52\x6e\x40\xd1\x09\x0e\x1d\x1f\x67\x33\x33\x33\x37\ -\x0f\x0c\x0c\xb8\x09\xfe\x11\x65\x2e\x89\x64\x61\x4b\xa1\xb7\xb3\ -\xb3\xb3\x2f\x03\x12\x45\x0e\x33\x7b\xb4\x79\xb6\xaa\xaa\x6a\x6a\ -\x20\x10\xa8\x43\xde\x86\xdf\x61\xb7\xdb\x3d\x8f\x6f\x5e\x85\x6c\ -\x18\xa6\x2d\x55\x1e\x04\x49\x15\x1b\x01\xde\x89\x2e\x4f\xd3\xdf\ -\x24\xd1\x22\xe5\x33\x92\xb2\xd1\x5c\x00\x1e\x67\x8e\x66\x61\x7b\ -\xe9\xc6\x7e\xbd\x8f\x25\xa0\x72\x24\xd8\x46\x9b\xd6\x22\xef\x62\ -\x01\xbf\xf2\x8d\x0e\x29\x9b\x19\x05\x74\x25\x8b\xbc\x80\xcd\x0e\ -\xe8\x4a\x40\xdb\xcd\xfc\x52\xd2\xd5\xd6\xd6\x9a\x7e\xf7\x91\xc1\ -\x74\xa7\x86\x19\x65\xa1\x0f\xda\xda\xda\xe2\x17\x4c\x4a\x15\x56\ -\x56\x56\x8e\xa2\xca\xc9\xfa\xa4\x1c\x99\x70\x56\x56\xd6\x7b\x16\ -\xf0\x9f\x5e\xaf\x78\xf4\x0e\xaf\xd7\x7b\x0f\x39\x8f\x2a\xb7\x53\ -\xe5\x51\xb1\xa5\xb4\xda\x60\x30\xb8\x6c\x68\x68\xe8\x95\x7e\xd2\ -\x32\x1f\x09\xfd\x54\x70\x87\x16\x7e\xa5\x80\x14\x05\x30\x0c\xd0\ -\x2f\x9a\xbc\x49\xe9\x53\x02\x54\xce\xd0\x7f\x48\x72\x54\x9b\xc7\ -\x91\xff\xa2\xf2\x05\xcc\x3f\xcd\x5a\xcd\x6e\x3f\x87\x6f\x00\xfb\ -\xb7\x74\x69\x8a\xe4\x31\x3d\x16\x62\x48\x30\x7a\x69\xcd\x76\x65\ -\xe3\x1b\x8d\x27\xe1\x1b\x12\x7e\x41\xb5\x5f\xa3\xbf\xa5\x6c\x42\ -\xeb\xeb\xeb\x07\xe9\xc0\x15\xd8\xe5\x74\x69\x21\xf4\x8f\x8f\xad\ -\x50\xf2\xc4\x47\x7a\x7a\xfa\x6c\xc0\x64\xd1\x72\x2e\xdf\xc4\x0d\ -\x46\xe6\x99\x26\x4e\x17\x1a\xab\x90\x55\xc8\x1d\xb9\x91\xe0\x8b\ -\x9c\x31\xb9\x35\x12\x8d\x7c\xaa\x7a\xaa\x19\x47\x0d\x0f\x0f\x67\ -\x0b\xcf\x51\x39\xc0\x51\xe9\x35\x0b\xd2\x3a\x90\x06\x8d\x6d\x3a\ -\x55\xe1\x0c\xc0\xb6\xa1\x5c\x6e\x16\xa4\xd3\xf9\xe1\x7b\xf1\x9b\ -\x00\xcd\x85\xbe\xa0\xca\x42\xc0\x76\xeb\x7c\x0c\x2c\x79\xc5\x57\ -\x00\xff\x15\x1a\x03\x64\x85\xb1\xff\x39\x8c\xdf\x88\x32\xd1\x20\ -\xe8\x31\x1d\x58\x82\xff\x1c\x7c\xee\xe2\x3f\x83\x2a\xeb\xa8\xda\ -\x99\x28\x06\xfd\x34\xcd\xd6\x2f\x34\x06\x58\x5c\x5c\xfc\x80\x64\ -\x03\xc8\x79\xb2\x11\x34\x87\x84\xa4\xb1\xb1\xf1\x1d\x95\xb9\x70\ -\x90\x8a\x57\x10\xfb\xb3\x99\xb3\x1c\x78\x16\xf5\x9d\xd8\x38\x46\ -\x37\x84\xc6\x00\x5d\x2e\xd7\x30\xfc\x75\xa6\x8d\xd5\x6f\x16\x43\ -\xb2\x01\xe8\x13\x7c\x76\x68\x7e\xbb\xca\xcb\xcb\x65\x97\x1a\x46\ -\x47\x47\xc7\x32\x14\xb2\x93\xef\xd3\x99\xd7\x62\x54\xdf\x30\x8d\ -\x95\xd4\x8b\x02\xba\x9b\x2a\xc7\x08\xaf\x06\x01\x72\x9b\x78\x99\ -\x7f\x2b\x9d\x50\x92\x34\x42\xce\x10\xd3\xcf\xc5\x73\x90\xb8\x59\ -\x7a\xbb\xe4\xd2\xe4\x63\x4a\x6f\xb8\xda\xd8\xad\x97\x71\x92\x16\ -\xec\x23\x99\x69\x9b\x54\x60\x32\x4a\xae\x4d\xe4\x3a\xc1\x62\xfb\ -\xa1\x33\xc9\x27\xed\xff\x50\xa1\x08\x7c\x17\x79\x2c\x49\x7b\xf7\ -\xb0\xda\xf5\xa2\xfb\x94\x51\x56\x56\x36\x1f\x90\x66\x2d\xb6\x46\ -\x81\x89\x1c\xbf\xc5\x45\xf0\x78\x3c\x2f\x0a\x0a\x0a\xde\xc2\xae\ -\x66\x65\x6b\x0a\x0b\x0b\x5f\x77\x77\x77\xcb\x9b\x25\xe5\x21\x0f\ -\x2f\xc0\x7e\x27\x60\x1c\x39\x8e\x8c\xfc\x3f\x34\x00\x4a\x56\x00\ -\x3c\xbc\x3f\x33\x08\x2a\x46\x14\xd0\x39\xc8\xb7\x78\x8f\xc6\xce\ -\x91\xf8\x98\x0d\xd9\xdd\xf8\xee\x23\xee\x30\xf6\xb1\x80\x9d\xe6\ -\x61\xe5\xee\xec\xec\x94\x8e\xc5\x87\xe1\x1b\xc6\xb5\x30\xac\x74\ -\x03\x5b\x59\xde\x36\x63\x99\x21\x12\xc8\x03\xe9\x02\xba\x6b\x0e\ -\x87\xc3\xc7\x26\x09\x3a\x9d\xce\x1c\xe4\x7c\xce\xa2\xfc\x39\xcb\ -\x27\x98\x84\x4f\x04\xd0\x03\x54\xb6\x17\x5e\xae\x3c\xc3\x48\x08\ -\x28\x5e\x3c\x15\xbf\x0c\x85\x42\x7b\x60\xb7\x30\xad\x0e\xb7\xb8\ -\xcb\x6d\xd2\xce\xb1\xda\xc1\x91\xb9\x1b\x53\x98\xfc\x58\x02\x2a\ -\x7f\xfe\x5a\x72\xb9\xed\xbf\x47\x5e\xc5\xcc\x67\xca\x5f\x8d\xbc\ -\x59\xbc\x54\xf3\x1c\x90\x76\xe8\x6f\x54\xf5\x10\xbd\xe5\xf8\x1f\ -\x26\x14\xf6\x13\xa6\x79\x97\x77\x00\x00\x00\x00\x49\x45\x4e\x44\ -\xae\x42\x60\x82\ -\x00\x00\x09\x4d\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x09\x02\x49\x44\x41\x54\x68\x81\xed\x9a\x7b\x54\ -\x93\xf7\x19\xc7\x3f\x6f\x02\x04\x84\x70\xf1\x08\x82\x17\x44\x10\ -\xc1\x8a\xab\xb4\x38\xb1\xd5\xf5\x88\x99\x52\x56\x95\x7a\xc6\x2c\ -\x9d\xb5\x30\xd6\x33\xa7\xa7\xdd\xe9\x6d\x2d\x3b\x6e\x6d\x57\xb7\ -\xb5\xb5\xad\xae\xb6\xdb\xa9\xb6\xd4\x56\x5d\xab\x5d\x77\x4a\x71\ -\x30\x10\x5b\x6a\x5b\xea\x44\x04\x05\xa3\xf5\x16\xa1\x48\x02\x28\ -\x97\x24\xe4\x9e\xbc\xfb\x83\x06\xd3\x98\x40\x02\xa8\xff\xec\x39\ -\x27\xe7\x79\x79\xf3\xfb\x3d\xf9\x7c\x7f\xcf\xf3\xbb\xbc\x09\xf0\ -\x7f\xbb\xb9\x26\x78\xba\xa9\x50\x28\x12\x81\x6d\x52\xa9\xf4\x4e\ -\x41\x10\x22\x6e\x30\x93\xbb\xd9\xec\x76\xfb\x29\x51\x14\x37\x55\ -\x57\x57\xef\x1b\xb6\xb5\x42\xa1\x88\xc8\xcb\xcb\xeb\xac\xab\xab\ -\x13\x4d\x26\x93\x38\x52\x73\x38\x1c\x63\xf2\x32\x1a\x8d\x62\x5d\ -\x5d\x9d\x98\x97\x97\x27\x2e\x5c\xb8\xf0\x01\x77\xde\x00\xf7\x1b\ -\xfd\xfd\xfd\x6b\x36\x6c\xd8\x10\x9d\x91\x91\x81\x28\x8a\x38\x1c\ -\x0e\x00\x44\x51\xfc\x9e\xf7\x74\x6f\x24\xde\x97\x78\xb3\x67\xcf\ -\x26\x3f\x3f\x9f\x2d\x5b\xb6\x3c\x01\xfc\x03\xb0\x3b\xfb\x48\xdc\ -\x05\x88\xa2\x78\x4b\x42\x42\xc2\xf7\x82\x7b\x83\x77\x58\xad\xf4\ -\x2a\x95\x58\xf5\xfa\xeb\x06\x2f\x8a\x22\x16\x8b\x85\xe9\xd3\xa7\ -\x23\x08\xc2\x14\x20\xdc\x95\xd7\x93\x00\xe9\x50\x01\x9d\xd7\xa7\ -\xb7\x6f\xe7\xc3\x19\x33\xa8\x5c\xba\x98\x0a\x85\x82\x2b\x97\x2e\ -\x5d\x17\x78\x37\x36\x80\x60\xd7\x7b\xd7\x94\xd0\x50\x81\x01\x1c\ -\x76\x3b\x5f\xad\x5b\x87\x55\xd5\xc8\xfd\x7f\x9e\x87\xc4\x78\x86\ -\xb6\xb4\x55\x1c\x2e\x28\x20\x63\xe7\x4e\xa2\xe3\xe2\xc6\x14\xde\ -\x53\x5b\x57\xbb\x26\x03\xce\x9a\xf7\x26\xa8\xae\xb8\x98\x10\x73\ -\x2b\x4b\x57\x9a\x90\x98\xcf\x72\x79\xee\x1a\xda\x02\x57\xb0\xf8\ -\xd5\x1f\xd1\xf8\xd8\x63\xf4\xf6\xf4\x8c\x39\xbc\xd3\xbb\xb3\x79\ -\x15\xe0\x4d\x7d\xf7\x89\x13\xa8\x76\x95\x90\xb9\x48\x0f\x61\x12\ -\xfa\xa6\xcc\x42\x1f\xbb\x86\x84\xf8\xf1\x84\x4b\x0e\x90\xf5\xdb\ -\x78\xea\x37\x6e\x44\xef\x65\x4e\x8c\x76\x01\xf0\x49\x80\xfb\x07\ -\xb8\x5e\xb7\x56\x56\x92\x56\xa0\xa0\x3f\xc4\x41\x73\xf4\x22\xbe\ -\x74\x6c\xa0\x5d\x7d\x85\x28\xe1\x6b\xa4\x53\x1e\x22\x2c\xa4\x9a\ -\xdb\x73\x64\x1c\xdb\xbc\x19\xa3\xd1\x38\xa6\xf0\xde\xcc\xd3\x24\ -\xf6\xfa\x61\x53\x72\x73\xf9\x66\x7f\x23\xff\x11\x57\x52\xdf\x97\ -\x4b\x88\xb4\x83\x59\x92\x42\x64\xda\xd7\x41\x10\x61\xf2\x23\xc4\ -\x25\x1f\x62\xf2\xf8\x16\x1a\x76\xec\xc0\x62\xb1\x8c\x19\xbc\xcf\ -\x19\x70\x6d\xe4\x1e\x64\x7c\x52\x12\xb7\xfe\x6d\x07\x92\xb7\x3f\ -\x64\x55\xda\x46\xb2\x26\xdd\x4f\x94\xec\x04\xf4\x1f\x82\xde\x8f\ -\x40\x12\x0c\xb1\x45\xcc\x59\x7e\x86\x30\xf5\x67\x34\xec\xd9\x83\ -\xd5\x6a\x1d\x13\x78\x77\xb6\x61\x05\x78\x0b\x92\xb0\x60\x01\xd3\ -\x1f\x7f\x96\x23\x2f\x06\x22\x4a\x62\x41\xca\xc0\xab\xbf\x0a\xb4\ -\xa5\x10\x18\x0d\x13\x56\xb3\x60\xbd\x16\x73\xd5\x4e\x4e\x94\x96\ -\x62\xb7\xdb\x47\x0d\xef\x7e\xed\x55\xc0\x50\x1b\x98\xd3\xa7\x64\ -\x67\x33\x4e\x51\xc8\xb1\x0f\xe7\xe3\x10\xc6\x0f\x08\x90\x88\xd0\ -\x5f\x06\xba\x2a\x08\x8a\x87\xf0\x65\xe4\xbc\x22\xa7\x6b\xc7\xcb\ -\x28\x6b\x6a\x7c\x8a\x3b\xdc\xea\x65\xb7\x0f\x6e\xc0\xde\x05\x0c\ -\x97\x01\xa7\xbf\x75\xcd\x1a\x74\xf2\x3b\xb8\xd8\x90\x8b\x28\x91\ -\x0f\x88\x10\xec\xa0\xdb\x0b\x86\x1a\x18\x37\x0b\x42\x6f\x27\x6f\ -\xd7\x74\x2e\x3c\x53\xcc\xd9\xfa\xfa\x11\xc3\xbb\x0e\xee\xb0\x02\ -\xfc\x09\x9a\xb1\x7e\x3d\xe7\x1a\x23\x38\x7f\x64\x05\xa2\x24\xe2\ -\xbb\x4c\x58\x41\xbb\x1b\x8c\x5f\x42\xd8\x7c\x08\x9e\xca\x9a\x4f\ -\x32\x38\xf1\xf0\xc3\xb4\x7e\xf3\xcd\xa8\xe0\xfd\xda\xc8\x7c\x09\ -\x2e\x08\x02\x99\xcf\x3e\xcb\xa9\xcf\x03\xd1\xb4\xfc\x1c\xd1\x18\ -\x04\x36\x40\x30\x41\xdf\x7b\x60\xaa\x87\xb0\xc5\x08\x52\x28\xd8\ -\x7f\x17\x8d\x8f\x3e\x8a\xa6\xad\x6d\xc4\x22\x7c\x9a\xc4\xfe\xd6\ -\xaa\x44\x22\x61\xc1\x4b\x2f\x51\xfb\x7a\x0b\x5a\xd3\x3a\xd0\x49\ -\x41\x07\x98\x74\xd0\xf3\x16\x58\x9a\x20\x62\x05\xd2\x40\x35\xab\ -\xdf\xce\xa0\xa1\xb8\x98\xcb\x5d\x5d\x7e\x8b\x18\xd1\x32\xea\x6b\ -\xf0\x20\x99\x8c\x3b\xdf\x7c\x93\xf2\xe2\x46\x8c\x21\xeb\x07\x04\ -\x68\x81\xde\x6e\x50\x97\x80\xf1\x0c\x44\xe4\x23\x1b\xa7\xe4\xee\ -\xdf\x25\xd3\xf0\xdc\x73\x68\xb5\x5a\xbf\x44\xb8\x5f\xfb\x24\xc0\ -\xd7\x91\x01\x18\x27\x97\x73\xc7\xf6\xed\xec\x2b\xa8\xc1\x1a\xfe\ -\xcb\xab\x22\xba\xdb\xa1\xad\x04\xfa\x5b\x21\xbc\x88\xa8\xb8\x7a\ -\xee\xfc\x59\x14\x0d\xaf\xbd\x86\xc1\x60\xf0\x4b\x84\x5f\xcb\xa8\ -\x3f\xf0\xce\xbf\x23\x63\x63\x59\x50\x52\xc2\xae\xb5\x87\xb0\x44\ -\xe4\x5f\x15\xd1\xa9\x82\x96\x12\x30\x74\x80\xfc\x21\xa6\xa4\xd6\ -\x33\x73\x5a\x0f\x8d\x25\x25\x98\xcd\x66\x9f\xe1\xfd\x3a\x0b\xf9\ -\x0b\xef\xf4\x31\x33\x66\x90\xbe\xe5\xaf\x7c\xb0\xa1\x0e\x7b\x48\ -\xd6\x80\x08\x1d\xa0\x39\x0d\xaa\x3d\x60\xd4\x43\xc4\x43\xa4\x2d\ -\xb9\x80\xd0\xfc\x29\xcd\x07\x0f\x62\xb1\x58\x7c\x16\x31\xac\x00\ -\xe7\x69\x74\x24\xf0\x4e\x9f\x30\x7f\x3e\x33\x7f\xff\x17\xca\xb6\ -\x6a\xb1\xc9\x32\xaf\x66\xa2\xed\x28\xa8\xf6\x82\x55\x80\x88\x7c\ -\x32\x73\x17\xd2\x59\x56\x46\x5b\x5b\x9b\x4f\xf0\x7e\x6d\x64\x23\ -\x85\x77\xfa\x99\x59\x59\x44\xe6\x16\xf2\xd9\x47\x21\x38\x82\x52\ -\xae\x8a\x38\x7f\x08\x2e\x7c\x0c\xd6\x60\x82\xa6\xdf\x4e\x47\x4d\ -\x0d\xad\x2a\x95\x5f\xc7\x8d\x21\x05\x8c\x66\xe4\xdd\xfd\x9c\xd5\ -\xab\xb1\xcf\x5d\xc6\xd1\xa6\x74\xec\x21\xf1\x60\x06\xf4\x22\xf4\ -\x3b\xb0\x7d\xeb\x20\x78\xce\x5c\xa2\x6f\x49\xc6\x72\xfa\x34\x7d\ -\x7d\x7d\xc3\x42\xfb\x55\x42\xa3\x85\x77\xfa\x8c\xa2\x22\xd4\x8e\ -\xc9\x5c\xd0\xe5\xc0\xd4\x1c\xc4\x99\x4f\xa3\x0f\xcd\xc1\x38\x73\ -\x16\x0e\xbb\x85\x5b\xf2\x96\x63\x6d\x6a\x42\xa3\xd1\x8c\xed\x3e\ -\x30\x16\xf0\x4e\x9f\xf9\xe4\x93\x34\x36\xdb\x78\xf1\xfe\x83\xec\ -\xd9\x5c\x41\xbb\x4e\x8b\xcd\x70\x19\x9b\xb1\x9b\xbe\x94\x44\xba\ -\x8e\xd5\xa3\x51\xab\xbd\x0e\x9e\x3b\x9b\xab\x5d\xf3\x50\x3f\xd6\ -\xf0\x00\x82\x20\xb0\xe8\xf9\xe7\x09\x5b\xb6\x8c\xcb\xe5\xe5\x7c\ -\x5c\xb8\x99\x98\xb4\x78\xc8\xfd\x31\x8f\xfc\xab\x96\x5f\xa4\x26\ -\x31\xf1\xdc\x39\x74\xb7\xdd\x46\x78\x78\xb8\xd7\xf2\xf1\x54\x42\ -\xd7\x08\x70\xcd\xc0\x58\xc0\xbb\x8a\xb8\x6d\xd1\x22\xf4\xe9\xe9\ -\x9c\xbb\xf7\x5e\x3a\x2b\x2b\x51\x6f\xd9\x4b\x7e\xca\x54\x34\x61\ -\x21\xd8\x95\x4a\x3a\x3a\x3a\x90\xcb\xe5\x1e\xfb\xbb\x5f\x7b\x15\ -\xe0\x49\xe9\x68\xe1\x5d\x7d\x68\x68\x28\x3f\xc8\xc8\xc0\x94\x96\ -\xc6\xc5\x95\x2b\x99\x54\x51\x41\x47\x69\x29\x97\xcd\x66\x64\x2b\ -\x56\x90\x98\x98\x88\x20\x08\xd7\xf4\xf3\x36\x07\x9c\x02\x96\x00\ -\x49\x00\x3a\x9d\x6e\x56\x69\x69\x29\xf5\xf5\xf5\x1e\xf7\x03\x6f\ -\xa3\xe1\x6f\xbb\x79\xf3\xe6\x91\x32\x7b\x36\xf1\x89\x89\xa8\x72\ -\x72\xb8\x74\xe4\x08\x66\xbd\x1e\xbd\x5e\x8f\x5c\x2e\xf7\x2f\x03\ -\xf1\xf1\xf1\xc5\x45\x45\x45\x77\xc5\xc4\xc4\x88\x0e\x87\x43\x2a\ -\x95\x4a\x07\x47\xc1\x5b\xc7\xd1\x58\x6d\x6d\x2d\x36\x9b\x8d\xe4\ -\xe4\x64\x82\x83\x83\x49\x4d\x4d\x25\x29\x29\x89\xde\xde\x5e\x82\ -\x83\x83\xbd\x66\xd0\xd3\x46\x16\x00\x20\x08\x82\x90\x9f\x9f\x1f\ -\x90\x9c\x9c\x3c\xf8\x46\xc7\xc9\x46\x9a\x5b\xd5\x04\x8d\x8f\x25\ -\x29\xfd\x56\x26\x05\x0d\x79\xea\xf0\xcb\x02\x03\x03\xd1\x68\x34\ -\xdf\x83\x0b\x08\x08\x60\xc2\x84\x09\x43\x96\x9f\x5f\x67\x21\x73\ -\xe7\xbf\x51\xe4\xe4\x50\x7a\xbe\x13\xb9\xf4\xbb\x9a\xb4\xf7\x71\ -\xf8\x9c\x76\xb0\xcd\xc5\xa3\x27\xe9\xeb\xfd\x96\x4f\x2b\x3f\xe5\ -\x4c\xef\xc0\x79\xc6\x66\xd0\xf0\x79\x79\x19\x15\x07\x6a\x38\xda\ -\xd8\x44\xf3\x89\xa3\x54\x57\x7e\x81\x5a\x6f\x1b\x88\xdb\xd3\xca\ -\xa9\xe3\x8d\x28\x95\x4a\xaa\x3f\x3f\xeb\x15\xd6\x93\xf7\x64\x5e\ -\x05\xc8\x42\x1b\x91\x04\x44\xf2\xc7\xfb\x96\x0e\x0a\xd8\xff\xf0\ -\x3d\xfc\x64\xf9\x07\x83\x6d\xfa\x9a\x7e\xcd\xf8\xe8\x39\x68\x8e\ -\x3c\xc1\xdc\xe4\xd5\x00\x34\xec\xfe\x29\x59\x2b\xee\xe3\x6c\xc3\ -\xd7\x3c\x7d\x77\x36\xbd\xb5\xbf\x61\xd9\xf2\x5c\x8e\x2b\x3b\xd1\ -\xb5\x6c\x67\x72\x6c\x2a\x5a\x6c\x5c\xfc\xba\x8c\x5f\xad\xff\x83\ -\x5f\x0b\x80\x5f\x19\x50\xbd\xab\x24\x74\x62\x21\xe3\x24\x03\xf0\ -\xbd\xa7\xdf\xa0\xe8\x58\x02\x01\x5d\xef\x0f\xb6\x31\x1f\xef\x41\ -\x1a\x18\xc3\x3f\xf7\x99\x79\x6a\xdb\x0b\x00\xd8\x9b\x7a\x70\xd8\ -\x0d\x6c\xdc\x76\x85\x2a\xd5\x45\x02\x9a\x7b\x09\x9d\x58\x48\xf6\ -\x0f\x27\x61\xed\x57\xa3\xb7\x99\xf8\xef\x29\x2d\x77\x3d\xb0\x8e\ -\xea\x8a\xad\x3e\xc3\x83\x8f\x8f\x94\x4e\xab\xa9\xb8\x44\x74\xe6\ -\xf2\x81\x8e\xb6\x4e\xa2\x67\x9d\xa5\xf3\xf0\x2e\x9e\x8a\x38\x4e\ -\x8b\x79\x60\x32\x7d\xb9\xbf\x8d\xa9\x39\x6f\x32\xb9\xbb\x95\xd2\ -\xd3\x03\x0f\x27\x5f\x94\xb7\x33\x6e\xc2\x2a\x9e\x2a\x2e\xa4\xba\ -\xa2\x8c\x67\xde\x50\x12\xb3\xe0\x1e\x40\x64\xfb\xbe\xf9\xa8\xbe\ -\xda\x4d\x5b\xcd\xfb\xbc\x57\x67\x62\xda\x94\x68\xbf\xca\xc7\xa7\ -\x7d\x00\xe0\xe8\x2b\x8f\xf2\x6a\x9b\x1e\x71\xc2\x56\x0a\x0a\x76\ -\xf2\xee\xbb\xef\x41\xd2\x3b\x98\xba\x3f\xa1\xbc\xdb\xc8\xe1\xb7\ -\xce\xb0\x25\xa9\x9c\x17\x5a\x75\x48\xa7\xbe\xc6\x91\x99\x4b\xf8\ -\xd3\xba\x14\x2e\x55\xbe\xcc\x4b\xdf\xea\x08\x9b\x67\xe5\xb3\x9d\ -\xcb\xd8\x58\x77\x09\x80\xb8\x2b\x6f\xb1\x76\xf9\xe3\xec\xda\x7f\ -\x0c\x75\xdf\x23\x84\x4f\x4d\x25\x33\x2d\xd2\x6f\x78\x4f\x19\x10\ -\x00\xa6\x4d\x9b\x76\xf0\xc0\x81\x03\x59\xae\xab\xd0\xf5\xb4\x92\ -\x92\x12\xda\xdb\xdb\x59\xbb\x76\xad\x4f\x22\x64\x32\x19\x2a\x95\ -\x8a\xec\xec\xec\x6e\x83\xc1\x90\x06\xa8\x9d\xb1\x06\x33\x50\x5b\ -\x5b\x4b\x4b\x4b\xcb\x0d\x11\xa0\x54\x2a\x89\x8c\xf4\x3d\x03\xce\ -\x0d\xd5\x6b\x09\x19\x0c\x86\xdd\x9b\x36\x6d\x6a\x01\x30\x99\x4c\ -\x77\x28\x14\x8a\x94\xa8\xa8\xa8\x21\xeb\xcf\xdb\xd2\xe6\x6b\xbb\ -\xb4\xb4\x34\x9f\xe1\x9d\xe6\x75\x23\xeb\xea\xea\x7a\xa7\xab\xab\ -\xeb\x1d\x00\xa9\x54\xfa\xf7\x07\x1f\x7c\x30\x25\x3d\x3d\x7d\xf0\ -\x9b\xe5\xb1\x3c\x0b\x8d\xd4\x3b\x1c\x0e\x9f\xbf\xd8\x3a\x7f\xf2\ -\xe4\x49\x02\x03\x03\x6f\x3a\xb4\xd3\x87\x85\x85\xd1\xd4\xd4\x04\ -\xd0\x81\xcb\x4f\xac\xde\x6c\x62\x5c\x5c\x5c\x67\x55\x55\x95\x68\ -\xb5\x5a\xc5\x9b\x6d\x56\xab\x55\xac\xac\xac\x14\x63\x62\x62\x1c\ -\x12\x89\xe4\x79\x20\xcc\x15\xd6\xe3\xbf\x1a\x00\x39\xc0\x8b\xc0\ -\x34\xbc\x2c\xb5\x37\xd8\xae\x00\xfb\x81\x6d\x80\xd2\xf5\x0d\x6f\ -\x02\x00\x22\x81\x14\x40\x76\xfd\xb8\x7c\x36\x3d\xd0\xce\x40\x09\ -\x8d\xed\xd1\xf8\x66\xdb\xff\x00\x0b\x62\x0d\xcf\xef\xd6\x72\x27\ -\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x04\xf0\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x14\x00\x00\x00\x14\x08\x03\x00\x00\x00\xba\x57\xed\x3f\ -\x00\x00\x03\x00\x50\x4c\x54\x45\x09\x16\x28\x09\x16\x28\x09\x14\ -\x25\x09\x15\x27\x09\x14\x25\x08\x13\x23\x07\x11\x20\x07\x0f\x1c\ -\x06\x0d\x18\x04\x0a\x13\x03\x07\x0d\x02\x04\x07\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x01\x01\x01\x02\x02\x02\x03\x03\x03\x06\x06\x06\x0a\x0a\x0a\ -\x10\x10\x10\x17\x17\x17\x21\x21\x21\x28\x28\x28\x2c\x2c\x2c\x2d\ -\x2d\x2d\x2e\x2e\x2e\x2f\x2f\x2f\x30\x30\x30\x31\x31\x31\x32\x32\ -\x32\x33\x33\x33\x34\x34\x34\x35\x35\x35\x36\x36\x36\x37\x37\x37\ -\x38\x38\x38\x39\x39\x39\x3a\x3a\x3a\x3b\x3b\x3b\x3c\x3c\x3c\x3d\ -\x3d\x3d\x3e\x3e\x3e\x3f\x3f\x3f\x40\x40\x40\x41\x41\x41\x42\x42\ -\x42\x43\x43\x43\x44\x44\x44\x45\x45\x45\x46\x46\x46\x47\x47\x47\ -\x48\x48\x48\x49\x49\x49\x4a\x4a\x4a\x4b\x4b\x4b\x4c\x4c\x4c\x4d\ -\x4d\x4d\x4e\x4e\x4e\x4f\x4f\x4f\x50\x50\x50\x51\x51\x51\x52\x52\ -\x52\x53\x53\x53\x54\x54\x54\x55\x55\x55\x56\x56\x56\x57\x57\x57\ -\x58\x58\x58\x59\x59\x59\x5a\x5a\x5a\x5b\x5b\x5b\x5c\x5c\x5c\x5d\ -\x5d\x5d\x5e\x5e\x5e\x5f\x5f\x5f\x60\x60\x60\x61\x61\x61\x62\x62\ -\x62\x63\x63\x63\x64\x64\x64\x65\x65\x65\x66\x66\x66\x67\x67\x67\ -\x68\x68\x68\x69\x69\x69\x6a\x6a\x6a\x6b\x6b\x6b\x6c\x6c\x6c\x6d\ -\x6d\x6d\x6e\x6e\x6e\x6f\x6f\x6f\x70\x70\x70\x71\x71\x71\x72\x72\ -\x72\x73\x73\x73\x75\x75\x75\x77\x77\x77\x79\x79\x78\x7a\x7b\x7a\ -\x7c\x7d\x7c\x7f\x7f\x7e\x81\x82\x7f\x84\x85\x81\x84\x85\x82\x85\ -\x86\x83\x86\x87\x83\x86\x88\x84\x87\x88\x84\x87\x89\x84\x87\x89\ -\x85\x87\x89\x85\x88\x89\x85\x83\x86\x85\x7f\x84\x85\x7c\x82\x85\ -\x7a\x81\x85\x76\x81\x8b\x76\x82\x8e\x77\x84\x90\x79\x85\x90\x7d\ -\x87\x8e\x83\x89\x8c\x85\x8b\x8c\x89\x8c\x8c\x8a\x8d\x8b\x8c\x8d\ -\x8a\x8e\x8f\x8d\x90\x91\x8f\x92\x92\x91\x94\x94\x93\x95\x95\x95\ -\x97\x97\x97\x99\x99\x99\x9a\x9a\x9a\x9b\x9b\x9b\x9c\x9c\x9c\x9d\ -\x9d\x9d\x9e\x9e\x9e\x9f\x9f\x9f\xa0\xa0\xa0\xa1\xa1\xa1\xa2\xa2\ -\xa2\xa3\xa3\xa3\xa4\xa4\xa4\xa5\xa5\xa5\xa7\xa7\xa6\xa8\xa8\xa8\ -\xa9\xaa\xa9\xaa\xab\xaa\xab\xac\xab\xac\xad\xac\xad\xad\xad\xae\ -\xae\xad\xae\xaf\xae\xaf\xb0\xaf\xb0\xb0\xaf\xb1\xb1\xb0\xb1\xb2\ -\xb1\xb2\xb3\xb2\xb3\xb4\xb3\xb4\xb5\xb4\xb6\xb6\xb6\xb7\xb7\xb7\ -\xb8\xb8\xb8\xb9\xb9\xb9\xba\xba\xba\xbb\xbb\xbb\xbc\xbc\xbc\xbd\ -\xbe\xbd\xbe\xbf\xbe\xbf\xc0\xbf\xc0\xc0\xc0\xc1\xc1\xc1\xc2\xc2\ -\xc1\xc3\xc3\xc2\xc4\xc4\xc3\xc6\xc6\xc6\xc9\xc9\xc9\xcd\xcd\xcd\ -\xcf\xcf\xcf\xd1\xd1\xd1\xd3\xd3\xd3\xd5\xd5\xd4\xd6\xd6\xd5\xd8\ -\xd8\xd8\xda\xda\xda\xdc\xdc\xdc\xde\xde\xdd\xdf\xdf\xdf\xe0\xe0\ -\xe0\xe2\xe2\xe2\xe3\xe3\xe3\xe5\xe5\xe4\xe6\xe6\xe6\xe8\xe8\xe7\ -\xe9\xe9\xe9\xeb\xeb\xea\xeb\xeb\xeb\xec\xec\xec\xec\xec\xec\xee\ -\xee\xed\xef\xef\xef\xf1\xf1\xf1\xef\xef\xef\xef\xef\xee\xef\xef\ -\xee\xef\xef\xef\xf0\xf0\xf0\xf0\xf0\xf0\xf1\xf1\xf1\xf2\xf2\xf2\ -\xf3\xf3\xf3\xf4\xf4\xf4\xf5\xf5\xf5\xf6\xf6\xf6\xf7\xf7\xf6\xf7\ -\xf7\xf7\xf8\xf8\xf8\xf9\xf9\xf9\xfa\xfa\xfa\xfb\xfb\xfb\xfc\xfc\ -\xfb\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\xfe\ -\xfe\xfe\xfe\xfe\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ -\xff\xff\xff\xff\xff\xff\xff\xff\x7e\xee\x29\x02\x00\x00\x01\x00\ -\x74\x52\x4e\x53\xd1\xd2\xd3\xc8\xb9\xa9\x93\x78\x5d\x43\x2c\x17\ -\x03\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x06\x0a\x10\x17\x21\x28\ -\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\ -\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\ -\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\ -\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\ -\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x71\x6f\x6e\x6d\x6d\x68\x68\x62\ -\x6f\x7c\x8a\x95\x9e\xa6\xae\xb6\xbf\xcd\xd2\xd7\xdb\xe1\xe7\xea\ -\xeb\xeb\xe8\xe6\xdc\xd1\xbe\xac\xa1\x9c\x96\x97\x98\x99\x9a\x9b\ -\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa2\xa2\xa1\xa1\xa1\xa3\xa2\xa2\ -\xa2\xa3\xa3\xa4\xa5\xa6\xa8\xaa\xad\xb0\xb3\xb7\xb8\xb9\xba\xbb\ -\xc0\xc5\xc8\xcb\xcd\xce\xcf\xce\xce\xcf\xd3\xd6\xdc\xe0\xe4\xe8\ -\xea\xee\xf1\xf3\xf5\xf6\xf7\xf8\xf9\xfa\xfa\xfb\xfb\xfb\xfc\xfc\ -\xfc\xfd\xfd\xfd\xfd\xfa\xf6\xf3\xef\xeb\xe7\xe0\xd8\xd0\xc8\xbf\ -\xb6\xae\xa5\x9c\x92\x88\x7d\x72\x68\x66\x64\x63\x62\x5b\x55\x51\ -\x4d\x4a\x46\x48\xa6\xfd\x00\x6d\x00\x00\x00\x9f\x49\x44\x41\x54\ -\x18\xd3\xb5\xd0\x31\x0e\x82\x40\x10\x85\x61\xe0\x12\x1e\x76\x54\ -\x54\xa0\xd9\x1d\xf3\xe2\x11\xd4\xc4\xd6\x58\xd3\x10\x0b\x3b\x02\ -\xd1\x42\xa9\xc6\x53\x50\x8e\xee\x02\x31\x9a\xd8\xf2\x17\x53\x7c\ -\xc9\x6e\x26\x13\x4c\xfe\x14\x8c\x87\x34\xf4\x85\x44\xb3\x0c\x40\ -\x1a\x0f\xea\x91\xa6\x40\xc1\xc6\xf0\x1e\x2b\xea\xd1\x3d\xc2\xae\ -\x62\x91\xd0\xf2\x15\xa9\xd7\x80\x28\xc6\xf6\x26\x46\x24\xb2\xa6\ -\xa9\xb1\xa4\x0e\x53\x3c\x45\x4c\x18\x39\x7c\x48\x83\x39\xf9\x3f\ -\x4f\x09\x44\xd8\xba\x58\x4a\xe0\xa0\x1e\x35\xcf\x50\x56\x58\x73\ -\x71\x3f\x63\x91\xab\xf6\x2b\xe9\x71\x83\xae\xe4\xe2\xe8\xb3\xbc\ -\xaa\xb6\xed\xcb\x4d\x1d\xf9\x4a\xbf\xbd\x01\x0c\x0e\x70\x72\x00\ -\x75\x19\xc2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x02\xfd\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x16\x00\x00\x00\x16\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\ -\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ -\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ -\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ -\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ -\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x7a\x49\x44\ -\x41\x54\x38\x8d\xd5\x95\x4b\x48\x55\x41\x1c\xc6\x7f\x73\x3c\x5e\ -\x6e\x47\xc3\x67\x56\x54\x84\x49\x50\x9b\x5a\x48\xad\xdc\x44\x48\ -\x19\x29\x2d\xad\x36\xb9\x68\x55\xd1\x26\x6a\x11\x81\x1b\x17\x9a\ -\xe8\xa2\x27\x44\xed\x6a\x13\x14\x14\x24\x5a\xbb\x5c\xb9\x90\x6a\ -\x51\x1a\x59\x54\xa2\x5d\xef\xfb\xde\x73\xee\xe3\xdc\x73\xe6\xdf\ -\x42\xf2\x51\x72\xcd\x2e\x2e\xfa\x60\x60\x1e\xdf\x7c\xf3\xcd\x7f\ -\x66\xfe\xa3\x44\x84\xf5\x80\xb1\x2e\xaa\x80\xf9\xab\xd2\xd4\xd6\ -\xdb\x82\xa9\x86\xb5\xd6\xd6\xb2\x95\x0d\x23\x83\x27\x47\xa6\x86\ -\xae\x8c\xae\x45\x58\x89\x08\x4d\x6d\xbd\x2d\xc1\x8a\xf2\xa1\xcb\ -\x67\x8f\x55\x6e\xdf\x5a\xb3\x8c\x30\x3d\x1b\xa7\xef\xde\x0b\x3b\ -\xe7\x14\xda\xd6\x22\x3e\x2f\xdc\xde\xe7\x5c\x3b\xdf\x6e\x05\x2d\ -\x8b\xd9\x58\x76\x19\x61\x6b\xed\x06\x72\x99\x0c\x83\xf7\x87\xdd\ -\x94\x93\x0b\x14\x13\x33\x94\xf2\xcc\xf2\xb2\x9e\xc9\xa7\x97\xba\ -\x4d\x00\xad\xb5\x55\x51\x61\xf1\xfe\x5b\xe2\x0f\x72\xca\xc9\xd3\ -\x50\x1d\xe4\xea\x85\x13\x01\xa5\x54\x51\x97\xb9\xbc\x6b\x76\x0f\ -\x3e\xb9\x0a\x74\x2f\xc4\x38\x96\xca\xa0\x67\x46\xf1\x92\xdf\xd1\ -\x5a\x10\xd1\x68\x3d\x5f\x92\x5a\x33\xa9\x35\xbe\xbf\xd8\xa7\xb5\ -\xbf\xac\x6d\xd5\xed\x64\xff\xa1\x53\x68\x11\x13\x96\x1c\x5e\x38\ -\x9e\xc5\x0e\x7d\xa2\xbf\x6f\x80\xd5\x9c\xfd\x0e\xad\x7d\x4e\x9e\ -\xee\x24\x1c\x5f\x0c\xe3\x82\xf0\x5c\xcc\x26\x67\x67\x50\x4a\xe1\ -\xba\x2e\x22\xc2\xfc\x1d\x17\xbe\xfd\x48\x70\xe5\xc6\x4b\xde\x4c\ -\xcc\x14\x91\x6f\x66\xec\xd1\x08\x86\x61\xd0\xd4\xde\xd7\xb5\x20\ -\x3c\x1b\xb5\x09\x38\x36\x00\xbf\x0c\x8b\xc0\xc3\xa1\xb7\xdc\x7a\ -\x3c\x46\x47\x6b\x33\x5d\x9d\x87\x59\x6d\x2f\xe1\x58\x9a\x9e\x9b\ -\xcf\xee\xa8\x5d\xc7\x7b\xbb\x80\x07\x5a\xeb\x15\x89\xfb\xf6\xee\ -\xa0\xa3\xf5\x00\x62\x98\x84\x53\x79\x74\x91\x97\x1a\x30\x0d\xaa\ -\x83\x8a\xeb\x77\x9f\x87\x4c\xe0\xf6\xb9\xae\xa3\x6c\xae\xaf\x5a\ -\x91\xec\x7a\x9a\x70\x2a\x4f\xd6\xcd\xae\x38\xbe\x14\xe5\x40\x24\ -\xe1\x60\x18\xc6\xb4\x69\x9a\x65\xb3\x6e\xc1\x6f\xfc\x32\x67\x93\ -\x2f\xac\xec\xfa\x6f\x21\x62\x10\x89\xdb\x88\xc8\x67\x13\x98\x08\ -\x45\xd2\x8d\xb5\x0d\x75\x78\x7e\x69\x09\x49\x6b\x88\xc6\xd3\x14\ -\x0a\xde\x84\x59\x28\x78\xe3\xa1\x48\xa2\xad\x66\x53\x2d\x9e\x5f\ -\x9a\x63\x5f\x6b\x22\xd1\x14\x22\xf2\xd5\x10\x91\x0f\xa1\x70\xd2\ -\xd5\xa2\xd0\x42\x49\xc5\x17\x88\x27\xec\x3c\xf0\xdd\x00\x26\xa3\ -\xd1\x44\x01\x4a\xcf\xcb\x22\x42\x32\x9d\x26\xfe\x71\x64\xa3\x09\ -\x4c\xda\x76\x36\xe8\x38\x59\xaa\x2a\xad\x55\x27\x17\x43\xda\xce\ -\x90\xcd\xba\xe5\xce\xf4\x78\x40\x89\x08\x5b\x0e\x9e\xe9\xb7\x1a\ -\xf6\x5c\x14\x59\x7c\x89\xff\x02\xa5\xc4\x4b\x4e\xbd\x7e\x15\x9b\ -\x18\x1a\x50\x22\x82\x52\xaa\x1e\xd8\x0d\x44\x4b\xb2\x0c\xdb\x00\ -\x05\xbc\x53\xff\xdd\x9f\xf7\x13\x77\x5b\x6b\x82\x49\x2e\xb3\xc2\ -\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x09\x40\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x08\xd2\x49\x44\x41\x54\x78\xda\xed\ -\x99\x79\x70\x95\xd5\x19\x87\x9f\xf3\x6d\x77\xc9\xbe\x6f\x04\xb3\ -\x10\x43\x88\x44\xc4\x20\x8a\x20\xc5\x36\x18\x0a\x62\x15\xaa\x23\ -\xa8\x6d\xc5\x76\xb4\x5a\xa7\xa3\x4e\x3b\xb6\xce\xb4\x9d\xb1\x8e\ -\xfd\xc3\xa9\x8e\xb5\x55\x2b\x6e\x80\x20\x19\xb1\x08\x26\xb2\x88\ -\xa0\x20\xa2\x48\x58\x22\xa1\x2c\x22\x89\x82\x59\x09\x49\xee\xfe\ -\x7d\xdf\xe9\x31\x89\x93\xb1\xf8\x67\xb9\x89\x53\xde\x99\xdf\xdc\ -\x33\x73\xef\x9d\x79\x7e\xef\xf7\x9e\xf9\xde\xf3\x1e\x43\x4a\xc9\ -\x77\x39\x0c\xe0\xbc\x81\xf3\x06\xfe\x57\x06\xc4\xcd\x29\x7c\x6b\ -\x48\x94\x84\x92\x0e\xae\x18\x5c\xbb\xda\x80\x86\xd7\x02\xa4\x36\ -\x28\x47\xfc\xd7\xef\x07\xbf\x1f\x5a\x9f\xfd\xdf\xe1\xc8\x43\xf2\ -\x07\xe0\x72\x04\xcb\x60\x40\xed\x67\xe1\xec\xde\x3d\x2a\x9f\xc0\ -\x58\x5c\xb1\x1c\x87\x19\xe8\x12\x6c\xed\x62\x0c\xf7\x0e\x04\x3f\ -\x07\xb6\x8f\xf6\x12\xaa\xc4\x16\xaf\x5b\x1e\xb7\x6c\xec\xf5\xdd\ -\xb4\xf9\x63\x84\xf7\xfb\x88\x1d\x48\x1d\x8f\x64\x23\x9a\xbc\x17\ -\x78\x6e\xb4\x1a\x98\x4a\x4c\x5b\xa5\x99\x6e\xd1\xec\x25\x9f\xa3\ -\x55\x47\x38\xdd\xe6\xc5\x28\xe9\x20\x58\x14\x20\xd2\x90\xa7\x9c\ -\x68\x7f\x43\x97\x67\x80\xba\xd1\x66\x60\x0e\x51\xf1\x8c\x37\x25\ -\x56\x38\xfb\x17\xad\x8c\x9f\xd2\xcb\xc9\x3e\x3f\x09\xc2\x43\x58\ -\x97\xf8\x2e\xe9\x07\xb3\x95\x48\x7d\x81\x87\x90\xf1\x0c\xba\x6c\ -\x06\x9a\x46\x89\x01\x39\x9f\x88\xbe\x32\x31\x3b\xe2\x9f\x73\x57\ -\x2b\x45\x13\xfb\x09\x07\x0d\xd2\x4d\x9b\x7c\xbf\xe4\x84\xeb\xc3\ -\x13\x05\xaa\x02\xc8\x40\x1b\xd1\xfa\x31\x69\xe8\xf2\x69\xe0\x1a\ -\x20\x30\xd2\x06\x16\x13\xd5\x96\x26\xe7\x85\x3d\x73\xee\x6a\x61\ -\x6c\x45\x88\x88\x82\x97\x52\x43\x13\x50\x99\xd0\x47\x77\x2c\x91\ -\x5e\x69\x62\xc5\xfc\xb8\xea\x49\x38\xc7\x7b\x70\x9a\x53\xaf\xc4\ -\x74\x6f\x04\x5e\x18\x21\x03\x02\xe0\x37\x84\xb5\x87\xb3\x4a\x02\ -\xe6\xbc\x7b\x5a\x49\xcf\x8b\x0e\xc1\x0b\x40\xe0\x48\x48\xd4\xa3\ -\xcc\xcf\x29\xa1\xbe\xa3\x93\xce\x40\x17\x96\x6e\xe1\x4c\xeb\x21\ -\x70\x2c\x09\x5c\x6d\xf1\x08\x1a\xe0\x41\x82\xfa\x23\xf9\x13\xfa\ -\x98\x7b\x67\x2b\xc9\x99\x36\xb1\xb0\xf1\xb5\x31\x24\x2e\xae\x94\ -\x94\x25\x5e\x4d\x55\x4a\x0d\x53\xd2\x74\x1e\x3f\xb6\x82\x23\x7d\ -\x2d\x58\xf9\x31\x42\xc9\x36\x6e\xb7\x35\x69\x24\xf6\x80\x8e\xe4\ -\x51\xa2\xe2\x81\xe2\xcb\x7a\xa8\xb9\xf5\x24\x49\xe9\x0a\x3e\x32\ -\x0c\xaf\xd0\xd1\x30\xa9\x48\xbe\x9a\xf2\xa4\xef\x91\xee\x29\xe3\ -\x82\x84\x14\xee\x2e\x6e\xa3\xae\x73\x05\xcd\x07\x34\xce\x84\x74\ -\x10\xf4\xc5\xdb\x80\x89\x94\x4b\x89\xea\xb7\x96\x28\xf8\x79\x4b\ -\xbe\xc0\xb4\x24\xb1\xa8\x01\x00\x08\x5c\xe9\x20\x30\xa8\x4c\xa9\ -\x65\x5c\xe2\x55\xe4\x7a\xcb\xd1\x30\xf8\xa4\x77\x1b\x27\xec\xf5\ -\xf8\x5a\x22\x74\x2c\xcb\xc1\x0d\xea\x41\x0c\xf9\x60\x1c\x0d\xc8\ -\x64\xa4\x78\x8a\xa8\x76\xcb\xb8\xe9\x5d\xd4\x2c\xfe\x12\xc3\x00\ -\x3b\xa6\x33\x0c\x6f\x23\xb0\xa8\x4a\x9d\x4f\x49\xe2\x15\x64\x7b\ -\xc6\x21\xd0\x39\x12\xd8\xce\xde\x40\x1d\x7b\x1a\xdb\x79\xfb\xe9\ -\x7c\xfa\xdb\x8d\x5e\x3c\xf2\x36\x60\x6d\x9c\x0c\x88\x4c\x5c\x56\ -\x61\x8b\xef\x57\xd6\xb6\x33\xf5\x87\x5d\x58\x06\x38\x8e\x40\x22\ -\x00\x0d\x47\x3a\x58\x22\x91\x8b\x53\xaf\x67\x6c\xc2\x64\x72\x3d\ -\x15\x38\xd2\xa6\xb9\x7f\x33\xfb\x82\x75\xec\xda\xde\xcf\xd6\x67\ -\xc7\x10\x0d\x68\x2d\x0a\x7e\x11\xb0\x23\x3e\x2f\x32\x41\x2e\x0e\ -\x6b\x71\xc5\x65\xe5\xb3\x3b\x98\x54\xdb\x8d\xa9\x03\x2e\x80\x18\ -\xca\x7c\x0c\x4b\x4b\x64\xd2\x57\xf0\xfe\x29\xaa\x6c\x2a\xb0\xdd\ -\x10\xff\xee\xdf\xc6\xde\xd0\x4a\xde\xdf\x12\xe3\xdd\xa5\x05\xd8\ -\x11\xed\x04\x96\x5c\x08\xec\x8e\x53\x2b\x21\x27\xe2\x68\xcf\x0b\ -\x5d\x56\x97\x5f\xd3\xce\x45\x33\xce\xa0\x4b\x94\x86\xe1\x1d\x05\ -\xef\xd7\x33\x54\xe6\x6f\xa0\xd0\x7f\xe9\x40\xd9\x44\x9c\x3e\x95\ -\xf9\x4d\xec\xeb\xff\x17\xef\xd5\x3b\xec\xaa\xcb\xc5\xb6\x69\x54\ -\xf0\x8b\x91\x34\xc7\xab\x99\xab\xc6\x16\xab\x84\xe1\x96\x8e\x9f\ -\xdb\x41\xe9\xe4\x00\xba\x0b\xa6\x01\x86\x0e\x20\x88\x49\x87\x24\ -\x23\x9b\xc9\xa9\x37\x92\xef\x9b\xa8\xe0\x2f\x24\xe0\x9c\xe6\x60\ -\x5f\x03\x7b\x7b\xd7\xf2\xee\x3a\x9d\x0f\x57\x67\x83\xc6\x76\x0c\ -\x95\x79\x57\xb4\xc5\xe7\x40\x23\x98\x8a\xea\x28\x75\xaf\x93\x57\ -\x5c\xd3\x45\xfe\xc4\x20\x9a\x0d\xba\x05\xa6\x0e\x02\xb0\xa5\x4b\ -\xb2\x99\xc3\xe4\x94\x85\x83\xf0\xde\x72\x7a\x63\x1d\x34\x07\x36\ -\xd0\x78\x66\x0d\xef\xbc\xe6\xa5\xf1\x8d\x2c\x30\xe5\x66\x04\xb7\ -\x7c\x0d\x1f\x0f\x03\x0b\x14\xfc\x73\x7a\x82\x9d\x7a\x41\x6d\x27\ -\x39\x25\x11\x74\x07\xcc\x21\x78\x53\x80\x23\x21\xdd\x1a\xc3\x25\ -\xa9\x37\x91\xe7\xad\x24\x53\x95\x4d\x77\xb4\x85\xa6\xc0\x3a\xf6\ -\x76\x35\xf0\xd6\x4b\x29\x1c\xd9\x91\x0a\x96\xb3\x12\x21\x96\x28\ -\xf8\x50\xbc\x8e\x94\x8b\x15\xfc\x3f\xf4\x64\x3b\x29\xbf\xa6\x93\ -\xd4\xc2\x18\x9a\x03\x86\x05\xa6\x06\x96\x92\x03\xaa\x54\x8a\x54\ -\xcd\xff\x98\x3c\xcf\x04\x32\x3c\xc5\x74\x45\x4f\x28\xf8\xd7\x69\ -\x6c\xdf\xc4\x86\x97\x53\x38\xba\x33\x19\x2c\xf7\x59\xa4\xb8\x07\ -\x49\x2c\x5e\x67\xe2\xbb\x88\x89\x27\x8c\xac\x88\x99\x31\xfd\x34\ -\x49\xb9\x36\x86\x03\x96\xa5\xa4\x83\xa1\xa4\x09\x28\xf0\x8d\xa7\ -\x32\x65\xbe\xca\xfc\x45\xa4\x99\x85\xb4\x47\x8e\x29\xf8\x35\x7c\ -\xd4\xba\x8d\x4d\xcb\x53\x39\xf1\x71\x32\x78\xdd\x47\x90\xe2\x8f\ -\x4a\xb1\x38\x1c\xea\x05\x4a\xbf\xc7\xe6\x61\x2d\x27\x42\xd2\x95\ -\x3d\xf8\x33\x9c\x01\x78\xd3\x1c\x2a\x1b\x0d\x34\xa5\xc2\x84\xf1\ -\x4c\x4a\x5d\x48\xb6\xa7\x82\x54\xab\x90\xb6\x70\x33\xfb\x02\xaf\ -\xb2\xbb\x65\x07\x6f\xfe\x33\x87\xf6\xc3\x7e\x07\xbf\xf3\x10\x52\ -\x3c\xaa\x14\xaf\xa9\x84\xfc\x33\x8e\xfc\x1d\x39\x51\xbc\x57\x9c\ -\xc1\x93\xec\x62\xb8\xc3\x65\x63\x28\x21\xa0\x34\xb1\x8a\x4b\xd3\ -\xae\x57\xf5\x5e\x46\x8a\x91\xcf\xa9\x70\x13\xfb\x83\xab\xd8\x75\ -\xec\x43\xde\x7a\x31\x9b\x8e\x63\x5e\x1b\x9f\x7b\x1f\x52\x3c\x19\ -\xaf\xb1\x8a\x07\xf8\x3b\xb6\xb8\x9d\xc2\x10\xfa\xc5\xfd\x58\x3e\ -\x89\x29\x87\xb2\xae\x0f\xc2\x6b\x02\x26\xa6\x4d\xa3\x3a\x7d\xf6\ -\xc0\x0b\xca\xaf\x67\xf2\x79\x68\x0f\xfb\x82\xaf\xb0\xa3\xa9\x89\ -\x8d\x2f\x67\xd3\x7b\xca\x13\xc4\xeb\x2e\x42\x6a\x6b\x91\x10\x0f\ -\x03\xd6\x40\x53\xe6\x68\x8b\x29\x0a\xc1\x84\x00\xa6\x22\xb7\x00\ -\x4b\x53\x1a\x82\xd7\x05\x54\x29\xf8\xc9\x69\xb5\xe4\xf9\x2a\x48\ -\x30\x32\x68\x0d\xee\x61\x7f\x68\x39\xdb\x0f\x34\xd1\xf0\x7c\x1e\ -\xc1\xd3\x66\x97\x82\xbf\x15\x57\x34\xc4\x67\xb0\x25\xc8\xc2\xe5\ -\x79\x60\x1e\xa5\x41\x28\x0f\x22\x04\x98\x62\x38\xf3\xba\x18\x2c\ -\x9f\xea\xac\x59\x4c\xc9\xac\xa1\xc0\x3f\x1e\x9f\x9e\xc0\x67\xc1\ -\x9d\x2a\xf3\xcb\x78\x67\xe7\x71\xde\x59\x9d\x4b\xa8\x57\x3f\x8e\ -\x47\xde\x8e\x23\xb6\xc6\x6b\x32\x67\x02\x2f\x83\xa8\xa5\x2c\x08\ -\xe3\x22\xe0\x80\xc1\x37\x37\xab\xa9\x0b\x66\xe4\xcc\xe1\xd2\x8c\ -\x99\x14\xfa\xcb\xf1\xea\x7e\x8e\x07\xb7\xd3\xd8\xbf\x9c\x2d\x3b\ -\x5a\xd9\xba\x3a\x07\x3b\xac\x1f\xc5\x94\xf3\x91\xa2\xf9\xdc\x8c\ -\x16\x85\xcb\x59\x21\xc4\x4c\x6c\x6a\xc9\x0d\x43\xc9\x20\x3c\xf2\ -\x9b\xf0\x3e\xc3\x54\xf0\x3f\x60\x92\x82\x1f\xa3\x32\xef\xd1\x7d\ -\x0a\x7e\x1b\x8d\xbd\x2b\xd8\xfc\xde\xe7\x6c\x7d\x2d\x07\x69\x8b\ -\xbd\x58\xf2\x26\x5c\x71\xf8\xdc\xcd\x46\x35\xc9\x59\x21\xb9\x03\ -\x03\xac\x62\x97\xa8\x00\xdc\xc1\x72\xb1\xf4\x41\x78\xbf\x61\x31\ -\xbb\xe0\x3a\x95\xf9\xcb\x29\x4e\xac\x44\x10\xe5\x70\xa0\x81\x7d\ -\x7d\xcb\x78\xb3\xbe\x8f\x8f\x36\x64\x83\x60\x23\x86\xfc\xa9\x82\ -\x3f\x75\x6e\x87\xbb\xe2\x2c\x03\x13\x88\x45\xe7\xce\x2a\xbd\x88\ -\x84\x42\xc9\xfa\xce\xbd\xa0\x0d\x35\x66\x02\x12\x15\xfc\xbc\xb1\ -\x0b\x54\xe6\x2f\xa3\x28\xa9\x62\xa0\x45\xfe\x34\xb4\x99\x03\x7d\ -\xcb\x59\xbf\x2e\x40\xe3\xd6\x74\xd0\xe5\x06\x04\x5f\x65\xfe\x0c\ -\x40\x7c\x0d\x48\xf9\x80\x61\xea\x89\xbf\xbe\x7c\x36\x49\xf9\x89\ -\xbc\x7d\xfa\x20\x21\x37\x0a\x40\xa6\x37\x85\x1f\x15\x5d\xcb\xa4\ -\x74\x05\x9f\x58\x46\xcc\x0d\x71\x28\x50\xcf\xfe\xae\xd7\xd8\xf4\ -\x56\x3f\x4d\xef\x0f\xc0\xbf\x08\xe2\x57\x48\xfa\x61\x38\xe2\x55\ -\x42\x05\x44\x22\x0b\x66\x5e\x38\x99\x59\x65\x55\xf8\xbd\xe9\xdc\ -\x3e\x76\x1e\x4f\x1d\x5d\xc3\x98\xb4\x2c\x16\x14\x5f\xc7\xa4\xcc\ -\x4b\x28\x4d\x1e\x4f\xc8\xe9\xe6\x60\x7f\x3d\xbb\x3b\x57\xb2\xe5\ -\x0d\xf8\x74\x4f\x2a\x58\xee\x13\x20\xee\xc3\xfd\xb6\x8d\x05\xe7\ -\x7e\x13\x4b\x16\xa1\x91\xbc\xa8\x6a\x3a\x1e\x6f\x32\x61\xcd\xe0\ -\xa1\x8a\x3b\x39\x10\x38\x81\xe1\xf5\x52\x9d\xa5\x6a\x3e\xa9\x94\ -\xde\x58\x3b\xfb\xfb\xd6\xb3\xeb\xcb\x3a\xd5\xcb\x0b\xbe\x68\x4e\ -\x00\x9f\xfb\x18\x52\x3c\xa0\xe0\xf9\x46\xc4\xb1\x84\xf2\xb0\xed\ -\xfb\xa7\x97\x4d\xe4\xda\xca\x69\x84\x85\x01\x86\x45\x96\x37\x83\ -\x35\x33\x97\x72\xdb\xce\xfb\x79\xe5\xe8\x5a\x6e\x2e\x9b\xcb\x91\ -\xd0\x46\x76\x1c\x5f\xcf\x07\x0d\x3a\xdd\x2d\x7e\xf0\xca\x7b\x71\ -\x87\x5b\x83\x91\x32\x70\x03\x8e\xcc\xb9\x2a\x77\x0a\x59\x69\xb9\ -\xf4\xc5\x24\x9a\x95\x40\x4c\x37\xc8\xf0\xa4\xf3\x66\xcd\x4b\x3c\ -\x79\x68\x29\x7f\xd9\xf5\x24\x9d\x27\x0f\xd3\x79\xc8\x20\xd0\xe6\ -\x75\xb1\xdc\x25\x48\xed\x45\x80\x91\x34\x60\xa8\xcf\x9f\xe0\xf8\ -\x79\xfa\x95\x83\xcc\x28\x3e\x46\xed\xf4\xa9\x80\x1f\x2c\x1f\x5d\ -\x3d\xed\xbc\x7f\x74\x0f\x2d\xcd\x1d\x9c\xfa\x38\xc0\xc9\x2f\x0d\ -\x94\xbb\x56\x3c\xee\x6f\x91\x62\x25\x12\x46\xda\xc0\x42\x34\x77\ -\x0a\x3d\x39\x74\x77\x84\xf9\xe5\x5f\xeb\x78\x35\xb3\x00\x33\x05\ -\xd6\x36\x6e\x62\xc5\x07\xeb\x38\x72\xf2\x18\xc4\x6c\x1b\xd3\xf7\ -\x31\x1e\xbd\x1e\x29\x5f\x40\x8a\x56\x00\x18\x59\x03\x3a\x9a\xbc\ -\x9b\xde\x24\xe8\xcc\x80\x94\x18\xc7\xc3\x9f\x30\xeb\xf1\x9f\xe1\ -\xf8\x7b\x09\xf7\xf6\xc7\x10\xda\x61\x0c\x6b\xb3\xd2\x6a\xa4\xf8\ -\x50\xc9\x1e\xce\xfa\xc8\x1b\xa8\x06\xa6\xe1\xe8\x50\xf4\x19\x24\ -\xf7\x82\x61\x3b\x01\xc7\x3d\x40\x58\x5b\x85\xc7\xb3\x19\x29\x9a\ -\x94\x22\x48\x40\x8e\xbe\x6b\xd6\xb9\x48\x34\xd2\x7a\x24\x82\x43\ -\x38\xda\x4a\x5c\xb1\x19\x61\xee\x41\x43\x41\x8f\xfe\x7b\xe2\x04\ -\xe0\x4f\x48\xb6\x28\xf0\xdd\x48\x82\xdf\xa9\x7b\x62\xf9\x8c\xbc\ -\xff\xfc\x4d\xfd\x79\x03\xff\x67\x06\xfe\x03\x1b\x85\x94\x1a\x1f\ -\xbe\x73\xb2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x0c\x27\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x0b\xb9\x49\x44\x41\x54\x78\xda\xed\ -\x9a\x69\x6c\x55\x75\x1a\xc6\xdf\xee\xfb\x42\xb9\x2d\x16\x68\xb1\ -\x55\xa9\xa5\x55\x06\x64\x71\xc0\x01\x15\x41\x59\x15\x70\x45\x27\ -\x63\x70\xe2\x18\xcd\x64\xf8\x30\x93\x99\x2f\x66\x26\x99\x0f\x33\ -\xc9\x4c\x32\x93\xcc\x17\x27\x31\x66\x12\x0c\x6a\x94\x2d\x58\xf6\ -\x22\x4b\x51\xd9\x97\x0e\xa5\x28\xfb\xda\xd2\x52\x0a\x5d\x6e\xdb\ -\xbb\x74\x7e\xcf\x7f\xee\xb9\xb9\x69\x30\xd3\x6b\xd0\xc4\x0c\x37\ -\x79\x73\xee\x39\xf7\x9c\xff\xff\x79\xde\xf7\x79\x97\x53\x48\xe8\ -\xef\xef\xb7\x1f\xf2\x27\x11\xbb\x43\xe0\x0e\x81\xff\x67\x02\xc9\ -\xb7\xba\x38\x67\xce\x9c\x41\x2f\x40\x11\xf0\x6c\x08\x36\x2e\x1c\ -\x0e\x57\x61\x95\x7c\x2f\x0f\x87\x43\x39\xe1\x70\xbf\x0a\x85\x1f\ -\x3b\x8b\x1d\x8f\xd8\x01\xee\x69\xc2\x2c\x14\x0a\xe9\x59\x77\xf4\ -\xce\xbd\xef\x03\x0b\xcc\xe9\xd3\xa7\x07\x41\x20\xfe\xcf\x78\x68\ -\x3c\x17\x0a\x05\x97\x04\x02\x81\xd2\x84\x84\x44\x36\x4e\xb0\x84\ -\x84\x04\x4b\x4e\x4e\x37\x7d\xfa\xfa\x7a\x8d\xdf\x1d\xb0\x60\xb0\ -\xcf\x12\x13\x13\x5b\xb9\x6f\x15\x3f\x7d\xc4\x7d\x3b\x00\x1a\xba\ -\x0d\x11\x88\xfb\x33\x81\x8d\xdf\x06\xdc\x93\xa1\x50\x38\x2d\x3b\ -\x3b\xdf\xaa\xab\xab\xec\xee\xbb\xcb\xb0\x51\x36\x74\x68\x81\xa5\ -\xa4\xa4\x38\x4f\xf6\xf6\xf6\xd9\xb5\x6b\xd7\xec\xec\xd9\x73\x78\ -\xf1\x94\x9d\x3c\xd9\xe0\x6b\x6e\xbe\xf4\x7a\x28\x14\x78\x3d\x39\ -\x39\xa5\x8e\xb5\xfe\x84\xad\xff\xbe\x08\xc8\xad\xbf\x0b\x06\x03\ -\xbf\x0a\x85\xfa\xf3\x4b\x4a\x2a\x6c\xca\x94\xa9\x36\x69\xd2\x44\ -\x80\x97\x58\x76\x76\x06\x1e\x4e\x20\x0a\x61\xbc\x2d\x39\x84\x3d\ -\x23\x12\x41\xeb\xec\xf4\xdb\x85\x0b\x97\xed\xf0\xe1\x43\xf6\xc5\ -\x17\x75\xd6\xd8\x78\xf8\x91\xde\x5e\xff\x5a\x88\xfc\x8b\x75\xdf\ -\xc6\x9a\xe2\x01\x23\x7d\xc6\x93\x03\x23\xb9\xff\x9d\x40\xa0\x6f\ -\x6e\x6e\xae\xcf\x66\xcc\x98\x6b\x0b\x16\xcc\xb1\x92\x12\x9f\xe9\ -\x83\xde\x23\xa0\x43\x3a\x0e\xf8\x1e\x56\x34\x94\x35\x10\x94\xcc\ -\x12\xad\xb5\xb5\xdd\x3e\xfb\x6c\xbb\xd5\xd4\xac\x84\xd4\x49\x4b\ -\x4a\x4a\xae\xe7\x86\x9f\x05\x83\xc1\x43\x83\xc8\x81\xb8\x09\xdc\ -\xc3\xbd\xab\x91\xcc\x03\x15\x15\xe3\x6d\xe9\xd2\xa5\x36\x61\xc2\ -\x18\xef\xb7\x48\x02\x3a\xaf\x7f\x23\x89\x40\xc0\xfb\x2e\x70\x61\ -\x01\x96\x01\xec\xbc\x7d\xf4\xd1\x0a\xab\xab\xdb\x28\x82\x4d\xc0\ -\xfa\x29\xeb\x6d\xbd\x9d\x49\x5c\xcc\x86\x6b\xd8\xb8\x7a\xf2\xe4\ -\x19\xf6\xe6\x9b\xbf\xb0\x91\x23\x7d\xb1\xbf\x0b\xe0\xff\x20\xe0\ -\x11\xf4\xaa\x8c\x29\xa1\xf9\xde\x63\x23\x46\x0c\xb3\xd7\x5e\x7b\ -\xdd\x72\x73\xf3\x6c\xe3\xc6\x95\x77\x05\x02\x3d\x1f\x90\xe4\x4f\ -\xb1\xec\x81\xdb\xd1\x07\xb2\xf0\xc4\x7b\x7d\x7d\x81\xea\x89\x13\ -\xa7\xd9\xb2\x65\xbf\x8c\x82\xe7\x1a\xe1\xaf\xb5\x86\x86\xaf\x5d\ -\xc2\x12\xfa\x6f\x00\xef\x59\xd0\x9d\x03\xce\x9a\x9b\x5b\x6c\xd7\ -\xae\x2f\xec\xea\xd5\x56\xbb\x79\xb3\xcb\xd2\xd2\x92\xed\xc5\x17\ -\x97\xd8\xac\x59\x8b\x24\x45\x1f\xf7\x7d\x48\x14\x4a\x30\xf3\xec\ -\xdb\x12\xf8\x0d\x9a\x7f\x4a\xb2\x79\xeb\xad\x37\xac\xa8\x28\xd7\ -\x5d\xf4\xfb\x7b\xec\xdd\x77\x57\x38\x60\xb5\xb5\x75\xb6\x7b\xf7\ -\x7e\x91\x18\x00\x58\x16\x8e\x78\x5f\xe4\x1c\x78\x97\xc4\x87\x0e\ -\x1d\xb1\xd1\xa3\x4b\x6d\xef\xde\x7d\x76\xe5\x4a\x33\x24\xba\xdd\ -\xb3\x4f\x3f\xbd\xd0\xa6\x4d\x9b\x63\x94\xe4\x7b\x89\xfa\x5f\x06\ -\x10\x88\x5b\x42\xe3\x58\x68\x59\x6e\xee\x50\x69\x9e\x50\xfb\xa2\ -\xe0\x57\xac\x58\x6b\xe5\xe5\xa3\x48\xe4\x29\xd6\xd4\xd4\x6a\x9f\ -\x7c\xe2\xaa\xa0\x55\x55\x55\x58\x4f\x4f\xdf\xc0\x08\xe8\xe8\x92\ -\xf7\xe2\xc5\x26\xc0\x1f\xb5\x85\x0b\x67\xda\x7d\xf7\xdd\x6d\xc3\ -\x86\xf9\xec\xd3\x4f\xb7\xb3\xd6\x3d\x96\x9f\x9f\x67\x59\x59\x99\ -\x36\x7f\xfe\x22\x3b\x75\xea\x38\xd6\xf0\x3c\xd5\x69\x2d\x0a\xf8\ -\xe0\x5b\x49\x88\x07\xff\x88\xe5\x51\x6d\x48\xd8\xca\x28\xf8\xe5\ -\xcb\x57\x21\xa3\x62\x7b\xfc\xf1\x1f\xe3\xbd\x26\x36\x4d\xb3\x57\ -\x5e\x59\x68\x9f\x7f\xbe\x8f\xf2\xd8\x40\x03\x4b\x1e\x08\xde\x79\ -\xfe\xd2\xa5\x26\x3b\x70\xe0\x20\x52\x99\x6b\xa5\xa5\xc5\x9c\x5f\ -\xb6\xfb\xef\x2f\xa7\x92\xcd\xa0\x9c\x36\xd2\x2b\xda\xad\xbd\xbd\ -\xc3\x7c\x3e\x9f\xcd\x9e\xbd\xd8\x32\x32\xb2\x12\x90\xdd\x1f\xc0\ -\x90\x89\x0d\x9a\x80\x80\xcb\xc6\xaa\x49\x95\x96\xde\x67\xcf\x3c\ -\x33\x2f\xfa\xdb\xce\x9d\x7b\x1d\xf8\x99\x33\xa7\xa2\xe3\xab\xce\ -\xab\x5d\x5d\xdd\x54\x13\x23\x11\x5f\xb0\xfa\xfa\xe3\x80\xac\xe7\ -\x3c\x29\x1a\x05\x33\x07\x1e\x72\xf5\xf6\xd2\x4b\x0b\xac\xb0\xb0\ -\xc0\xae\x5f\x6f\x17\x51\xe5\x00\x24\xca\xb8\x3e\x4f\x4d\x8e\x3e\ -\xd1\x85\x9c\x3a\x6c\xec\xd8\x71\x34\xc6\x09\x06\x86\xd1\xc8\x67\ -\x0e\x16\x2f\x81\xf0\x12\x1e\x4a\x1e\x3f\x7e\x32\xd2\x19\x1a\xfd\ -\x6d\xd4\xa8\x11\xc8\xe0\x0a\xb2\x69\xb1\x9c\x9c\x6c\x5d\x72\x60\ -\xbb\xbb\xfd\x00\x4a\xb4\xe7\x9e\x9b\x0d\x90\xb3\x24\xf6\x57\xf2\ -\xba\xb3\xcb\x97\x9b\xed\xe8\xd1\x63\xb6\x68\xd1\x4c\x2b\x2e\xf6\ -\x01\xf0\xa6\x9e\x71\xe3\x46\x66\x66\x06\x51\xed\x85\xf4\x31\xd6\ -\xcb\x73\xf9\x72\xe3\x46\x87\x2b\xaf\x0f\x3e\x38\xd1\x52\x53\xd3\ -\x95\x3f\x6f\x80\x25\x29\x1e\x02\x79\x84\x6e\x49\x5e\x9e\x8f\xea\ -\x90\x8f\x4c\xda\x74\x99\xc4\x0a\x92\x78\xe5\x2c\x3c\xc6\xd6\xac\ -\xa9\x65\x61\xa3\xf3\x3a\x12\xf2\xa6\x22\x81\x9c\xd2\xed\xe5\x97\ -\x17\xd8\x89\x13\x27\x19\x19\xce\x38\xa2\x47\x8e\xd4\x8b\x18\x0d\ -\xaf\x18\x89\xdc\xd0\xbd\x02\xcf\xda\xa9\x3c\x9f\x63\x6b\xd7\xd6\ -\xda\xb9\x73\xcd\x44\xa6\x48\x95\x8a\xd1\x23\x80\x9c\xda\x34\x4b\ -\x21\xb5\x7b\x94\xd0\x8f\x69\x48\x8c\x87\xc0\x43\x2c\x34\xb2\xb4\ -\x74\x34\x67\x29\x94\xbb\x83\x9a\x67\x54\xde\x00\xe9\x27\xbc\x63\ -\x6c\xdc\xb8\x2a\x7b\xff\xfd\x35\x5c\x33\x3c\x17\x25\x11\x8d\xc4\ -\xab\xaf\x2e\xa6\xda\x5c\xc2\xb3\x87\xed\x85\x17\xe6\x92\xac\x05\ -\x78\xd6\x79\xde\xf4\x49\x4f\x4f\xe3\xb9\x5c\xd6\x58\x0b\xc9\x76\ -\x22\x3b\x4a\x40\x23\xbd\x22\x48\x4e\x34\x10\x19\x3f\x72\x2d\x17\ -\xd9\x44\x08\x4c\x89\x83\x40\xb8\x3a\x31\x31\xc9\x86\x0c\x29\x34\ -\x24\x2e\xc9\x50\x26\x0f\x45\xbb\xad\x3c\x5d\x51\x51\x0e\x89\x07\ -\xec\xe3\x8f\x37\x00\xba\x17\x4f\x66\x79\x72\xa2\x0a\xf5\x12\xfa\ -\x24\x24\x33\x8b\x68\xcc\xb7\xbb\xee\x1a\x2a\x6d\x7b\xb2\x01\x7c\ -\x3a\x25\x37\x8d\xca\xb5\x89\x5c\xe8\x46\x56\xc5\xf2\x3a\xc0\x5d\ -\x83\x23\xb7\x2e\x42\xea\x34\x7b\x05\xa8\x4c\x3e\x1c\xa2\xa1\x30\ -\x54\x3d\x68\x02\x80\xac\x44\x83\xc8\x21\x57\xfa\x13\x25\xea\xf5\ -\x51\xe9\x54\x00\xf4\x3b\xa0\x7b\x28\x83\x9a\x3c\x4b\x25\x01\xbc\ -\x17\x76\x7a\xd6\x47\x89\xad\x6a\x25\x39\x15\x14\xe4\x5a\x47\x47\ -\xa7\xbb\xc6\x47\xb2\xa1\xba\x64\xda\xba\x75\xdb\x88\x50\x0b\xe4\ -\x8a\x35\xe4\x45\xde\x0b\x12\x90\x4e\x93\x9d\x3f\x7f\x1c\x32\x22\ -\xd4\xa7\x4a\x04\xd9\x54\xed\x59\x16\x4f\x04\xca\xfe\xab\xd1\x0c\ -\x11\x70\x9e\xe7\x94\x59\x65\xbf\xed\xdb\x77\x94\x3b\x34\x6d\x3a\ -\x39\x29\x27\xd0\x69\x09\x7d\xe1\x53\x36\xec\x57\x1d\xd7\xef\xf2\ -\xb6\x24\x21\xe9\x79\x9e\x67\xbd\x34\x07\xfe\xc3\x0f\x6b\x48\xec\ -\x36\x8a\xc3\x70\xdd\x13\x05\xdf\xd2\x72\xc9\xce\x9c\xa9\x97\x84\ -\x34\x5d\x89\x84\x88\xf3\x5c\xa6\xee\x29\x1c\x34\x01\x00\xe7\x78\ -\x15\x44\xe0\x79\xdf\xf0\xae\x33\x02\x1f\x20\x27\xf6\x20\x89\x6e\ -\xcf\xd3\x10\x18\x8e\x86\x4b\x24\x09\xbc\xed\x07\x64\x9a\x00\x0b\ -\xb8\x4c\xf7\x29\x3f\xdc\x7a\x2b\x57\x6e\xc6\xcb\x9d\x74\xf4\x22\ -\x15\x05\xe5\x95\x00\x23\xd3\x53\x54\xaf\x7a\xae\xf5\x6a\x2b\x01\ -\x96\x6c\x3c\x59\xca\xa9\x19\x83\xee\xc4\xfd\xb8\x23\xa6\x9c\xea\ -\xe8\x45\x41\x46\x55\x69\x50\x5d\x57\x35\xa2\x72\x38\xc7\x00\x3a\ -\x5d\xb3\x3e\x00\xd4\x71\xe5\xf1\x20\xe6\x96\xf1\x40\x08\x2c\x89\ -\xdc\x29\x32\x00\xd4\x9a\xc6\xf9\x75\xc0\x9f\xb4\xb6\xb6\x26\x6f\ -\x40\x96\xc3\xb4\xaf\xf7\x5a\xe9\xed\x9f\x30\x68\x02\x6c\xe4\x27\ -\xb4\x92\x0f\x60\x52\xe5\x89\x98\xc5\x0c\x00\x49\x84\xbb\xd5\xb6\ -\x6d\xdb\x89\xf7\x47\xa0\x73\x1f\x0d\xa9\xcd\x9e\x7d\x76\x16\x9a\ -\x2e\x50\x92\x0b\xb0\xee\x8f\x8d\xaa\xf4\xaf\xa4\x46\x6e\x35\x94\ -\xe6\xcb\x10\xbe\xc6\x73\x17\x20\xdd\x27\xb2\x1e\x50\x6f\xaf\x68\ -\x24\xf4\x3b\xa7\xbd\x71\x8c\x12\xfd\xe7\xd0\x1f\xd5\xa4\x5b\x1e\ -\x89\x89\x84\x16\xf7\x66\xf9\x44\x47\xec\xf8\xf1\xaf\xd1\xed\x79\ -\xc6\x81\xc7\xd4\xa4\x54\x81\x3c\xcd\x93\x7c\xc9\x58\x8a\x24\x24\ -\xd3\xf4\x0a\x89\x14\x48\xcc\xe3\x95\x33\x87\x3c\xb8\xa0\x4e\xab\ -\xa8\x0e\x00\xaf\x63\x3f\xd7\x93\x24\x2f\x0a\x46\x97\x40\xb5\xc6\ -\xd3\x07\x1a\x61\x8d\x9e\xdb\xbd\x6e\xea\x85\x35\x72\x74\xba\x55\ -\x65\xa0\x39\x8d\x62\xb6\x99\x67\xc3\x87\x17\x0a\xbc\x80\x0a\xbc\ -\x80\x2b\x31\x25\x15\x40\x2b\x27\xa2\x89\x4d\x19\x4d\x75\xbd\xe1\ -\x91\x47\x1e\x25\x9a\x19\xba\x26\x67\xc4\x38\x29\x24\xc7\x49\x8a\ -\x80\xef\x24\xcf\xba\x85\xea\x7c\x1c\x49\xdc\x7f\x0c\xcf\xa0\xcb\ -\x66\x6d\xec\x25\x33\xe6\xbd\xe3\x3a\xf0\x34\xa7\xe1\xb6\x64\xc9\ -\x3c\x9a\x4d\x11\xe0\x7b\x62\xc1\x3b\x9d\x6f\xd8\x50\xc7\x9b\xd6\ -\x46\x2a\x51\xd0\x23\x11\x89\x44\x1f\x4d\x2c\x83\xf9\x67\xbe\x4d\ -\x9e\xfc\x13\xee\xcf\x54\xc5\xf1\x0a\x86\xf6\xe1\x5a\x3a\x84\x53\ -\xc0\x70\x55\x51\x92\x84\x1a\xe2\x89\xc0\x7e\x36\x6b\x3f\x77\xee\ -\x2b\xc9\x88\x4d\x93\xb5\x80\xb7\x81\x12\x95\x12\x38\x12\xf0\xf3\ -\xd5\x61\xe5\x79\x81\x8b\x01\x9f\xc2\xa8\xb1\x9d\xc1\x6f\x27\xbd\ -\x63\x0f\x65\x73\x03\x20\x42\x78\x3e\x96\x84\x22\x91\xcc\x14\x3b\ -\xdf\xa6\x4f\x7f\x82\xe7\xb2\x54\x81\x3c\xfd\x73\x9e\x21\x47\x52\ -\x2c\xce\x46\xca\xaa\xed\x89\x87\x40\x33\x5e\x5f\xd9\xd2\x72\x85\ -\x24\xbb\xe8\x00\x71\x2e\xcf\x3b\x59\x94\x95\x95\xdb\xe2\xc5\x4f\ -\x0a\xbc\x80\x78\xa5\x92\xee\x9b\xe2\x36\x5d\xbf\x7e\x27\x3d\x63\ -\x17\x9e\xef\x60\xf3\x6e\x48\x7c\xa9\x12\x4b\xd2\xf6\x28\x91\x75\ -\xaf\x37\xad\xd2\xfc\xd2\xb4\x16\x6f\x62\x73\x89\x4a\x81\x22\xc1\ -\x5e\x29\xac\x95\x49\x97\x6e\xa1\xb4\x36\x8a\xb4\x5e\xf2\x0f\xc6\ -\xd1\x89\x9d\xce\x97\xe3\x91\xfe\x33\x67\x1a\x05\x5e\xad\x5f\xde\ -\xd1\x11\x8f\x4d\x96\xe6\xe5\x99\xa8\x6c\x24\x19\x91\xdb\xb2\x65\ -\x0f\x6f\x68\x9f\xa1\xdd\x76\x6f\x0b\x48\x76\x40\x68\x07\x1d\x7b\ -\x1b\x7a\x0e\x8a\xa8\x17\x09\x91\x00\x78\x26\xf3\xff\xa3\xac\x59\ -\xce\xb9\x22\x95\xc3\x7a\xa9\x14\x87\x13\x54\xb4\x4e\xdd\xfb\x4f\ -\x16\xea\x89\xa7\x91\xc9\xea\x48\xa2\xbd\xa7\x4e\x1d\x63\x2e\x39\ -\xcf\xa6\x19\xd2\x25\x72\xe9\xb0\xad\x5b\x77\x33\x06\x5c\x15\x68\ -\x40\x38\xf0\x0e\x50\x4d\xcd\x6e\x4a\xeb\x36\xc0\x5f\xe7\x3c\xda\ -\x47\x94\x90\x44\xe3\x26\x92\xaa\x55\x24\x58\x23\xe0\x3d\xa3\x23\ -\xbd\xa0\x1b\xc9\x6d\xc1\xdb\xff\x56\xd7\xa5\xa7\x0c\x21\x5a\x37\ -\x18\xe8\x8e\x08\x4e\x33\xeb\x7c\x8c\x59\xbc\x04\x42\x6c\xfc\x7b\ -\xbf\xbf\xab\x6f\xff\xfe\x1d\xaa\xc5\x2c\x9e\xa5\x47\xf0\xcc\x57\ -\x6c\xb8\x95\x06\xd4\x62\x90\x74\x1d\x75\xd3\xa6\x2f\x01\xb8\xdd\ -\xd5\x76\xb3\x68\x4d\xf7\x1a\xa1\xc0\xe2\xcd\xeb\xdc\xb3\xd5\x56\ -\xad\xaa\x55\xd3\x93\x8c\x04\x9e\xee\xbc\x91\xa8\xad\x23\x3a\x9d\ -\x44\xa3\x50\x4e\x61\x64\xd9\xc5\xe8\xad\xb5\xec\xaf\x3c\xdf\x16\ -\x0f\x81\xd8\x3f\xb0\x6e\x62\xa8\x5b\xae\x36\xdf\xd0\x70\x40\xb9\ -\x80\x77\x72\x05\x46\xef\xab\xb6\x7a\xf5\x16\xa2\x23\x50\x87\x90\ -\xce\x56\xca\x6e\xab\x7e\x8b\x05\xcf\x3a\x72\x86\xac\x5f\x92\x11\ -\x41\x22\x58\xe3\x2a\x54\x6b\x6b\x87\x1c\xc1\xf9\x3a\xae\x5f\xb7\ -\xbc\xbc\xe1\xc8\x27\x9b\x48\x9c\xa0\xbf\x1c\x16\x94\x3a\xec\xef\ -\x71\xff\x65\xae\xaa\x2a\xfa\xee\x20\x40\xc3\x20\xb3\x8d\xfb\xc6\ -\x4c\x9d\x3a\x9b\x09\xf4\x41\x24\x72\x53\x40\x94\xd4\xe8\xb6\x0c\ -\x4f\xb5\x6a\x14\xb8\x45\x37\xbd\xd5\xd1\x75\x56\xc0\x16\x32\x3f\ -\x8d\xe6\xc5\xe7\x20\x91\xe9\x10\x78\x06\xc1\x7c\xa2\x7a\xda\x36\ -\x6f\x5e\x85\xcc\xfc\x1d\x6c\x3f\x0d\x3b\x1c\x53\x5c\x06\x47\xa0\ -\xb2\xb2\x72\xe0\xa5\xb1\x54\x87\xcd\x24\x70\xd1\xc3\x0f\xcf\xb4\ -\xf2\xf2\x4a\x12\xd3\x0f\x89\x76\x91\x51\x69\xd5\x52\x58\x2c\x78\ -\x67\x03\xc8\x78\xe6\xfe\x4a\xad\xef\xaa\x36\xbc\x4b\x14\xca\xf3\ -\xae\x64\xee\xd8\xb1\x1e\x59\xb5\x05\x58\xec\x79\x6c\x0d\x66\xb7\ -\x83\x80\x36\x9b\x81\xe7\x56\xe0\xe5\xa2\x49\x93\x1e\x67\x8c\x1e\ -\xab\xde\x20\x02\x68\xf7\x06\x5e\xed\x11\xb0\x58\xf9\xdc\xf2\x28\ -\x69\x9a\xb9\x31\x01\xd0\xb9\x48\x32\x5f\xd2\x52\xc5\x01\xfc\x06\ -\xf5\x1d\xcd\x3c\xcb\xb0\x77\x30\xbb\x9d\x04\xb4\xf9\x44\x4a\xe7\ -\x72\x8e\x15\xa5\xa5\xf7\xda\x43\x0f\x4d\xe7\xad\xcd\xa7\x06\xc4\ -\xc6\x5d\x54\x9a\x6e\xac\x33\xd2\x55\x43\xb1\xe0\x23\x9b\xab\xea\ -\xa4\xab\xf3\xca\xf3\xca\x29\x8d\x2b\xf4\x89\x3a\x69\x5e\xf7\xaa\ -\xf6\x2e\xc5\x56\x63\xf6\x5d\x10\x90\x95\x62\x7f\xa6\xbd\xbf\xc4\ -\x1b\x1b\x39\x51\x2d\x2d\xeb\xf5\x53\x39\x20\x32\xb2\x58\x12\x98\ -\xa9\x97\xa8\xa3\x6b\x3c\x10\x10\x35\x29\x79\x5d\xa5\x92\xef\xae\ -\xda\x6c\xc7\x7e\xed\xfd\x3d\xf4\xbb\x24\xe0\x35\xba\x57\x18\xc2\ -\x7e\x0b\xd0\x6a\xde\xdc\x18\x2d\xca\x98\x89\xca\x78\x87\x1d\x8a\ -\x2c\xb2\x25\x0b\x6f\xd3\xc8\x33\x41\x25\x2b\xc9\xde\x42\xa2\x9e\ -\x35\x35\x48\x35\x29\x3e\x17\xb0\x7f\x60\x7f\xc3\x82\x98\x7d\x5f\ -\x04\x74\xcc\xe2\xfa\x5c\x8e\x3f\x27\x3f\xa6\x13\x81\x54\x3c\xac\ -\x77\x58\xf4\x9d\x19\x7d\x27\x80\xa8\x46\xe2\x88\xcc\x7a\xd4\x6d\ -\x43\x1a\x0f\x58\xf6\x3d\xec\x13\xee\x69\xf1\xf6\xf9\xbe\x09\xe8\ -\xba\x67\x3f\xc2\x1e\xe6\x5a\x15\xc7\x32\x8e\x45\x7a\x0d\x8c\xfc\ -\x23\x5f\x1f\x4b\x5c\xd5\x7b\x06\x8f\x35\x6a\x30\x8b\xfc\x43\x5f\ -\xaf\x07\xec\xdb\x12\xb8\xf3\x5f\x0d\xee\x10\xb8\x43\xe0\x07\xfe\ -\xf9\x0f\x4e\x33\x44\x96\xd0\x41\x78\x46\x00\x00\x00\x00\x49\x45\ -\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x02\xa3\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x3c\x00\x00\x00\x3c\x08\x06\x00\x00\x00\x3a\xfc\xd9\x72\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\ -\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xe2\x03\x02\x04\x34\x31\x97\x0c\xf9\x63\x00\x00\x00\x19\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x57\x81\x0e\x17\x00\ -\x00\x02\x0b\x49\x44\x41\x54\x68\xde\xed\x98\xcd\x4b\x94\x51\x14\ -\xc6\x7f\x16\x96\x7d\x2c\xa2\x55\x1b\x3f\x90\xc0\x45\x60\x21\x6e\ -\x5b\x04\x15\x45\x14\x06\x23\xae\x5a\xbb\x90\x72\x21\x6d\x4a\xa5\ -\x76\x41\x7f\x41\xae\xda\x88\x91\xd2\x22\x17\x66\x10\xa2\x92\x50\ -\x18\x45\x05\x81\x04\xd9\x2a\x22\xa5\x60\x48\xc4\x84\x69\x73\x16\ -\x0f\x2f\x33\x13\xfa\x5e\x21\xc6\xe7\x07\x97\xfb\xce\x73\xce\x7d\ -\xee\xdc\x97\x73\xef\x65\x06\x8c\x31\xc6\x18\x63\x8c\x31\xc6\x18\ -\x63\x8c\x49\x4e\x0f\x50\x8a\x76\x26\xb5\xf9\x9e\xff\x70\xc1\xed\ -\xf2\xfc\x61\x37\x2d\xf8\x1b\xb0\xb2\x9b\x16\xfc\x7e\x27\xcc\xb7\ -\xb2\xe0\x59\xd9\x5b\xa7\x32\xb1\xe3\xc0\x9f\x88\x7d\x02\xf6\x49\ -\xac\x1e\xb8\x01\xbc\x04\x7e\x46\x9b\x03\x7a\xcb\xcc\x7f\x04\x68\ -\xaa\x50\xce\x5b\xf1\x49\xc2\x7d\x59\x70\x4f\x26\xf6\x48\x62\x67\ -\x45\xef\x00\xde\x4a\x2c\xdb\x9e\x03\x7b\x25\xff\xb4\xc4\xae\xe5\ -\xf0\x49\x42\xb7\x4c\x30\x2c\x7a\xa7\xe8\xe3\xa2\x9f\x00\xd6\x24\ -\x36\x0d\xdc\x01\x1e\x02\x9b\xa2\xdf\x94\x31\x7d\xa2\x9f\xcc\xe1\ -\x93\x84\x66\x31\x1f\x0d\xad\x0e\x78\x11\xda\x9a\x94\xe3\x81\x28\ -\xc9\x12\xb0\x01\x5c\xce\x78\x15\xc4\xeb\xb5\xe8\x0f\x42\xdb\x04\ -\xf6\xe7\xf0\x49\x42\x1d\xf0\x3d\xcc\x17\x43\xbb\x20\x13\xde\x92\ -\xdc\xeb\xa2\xdf\xae\xe0\xb5\x1a\xf1\xdf\xa2\x2f\x84\xf6\x31\xa7\ -\x4f\x32\x26\xc3\xbc\x18\x7b\xe6\x5d\x7c\xfe\x0c\x34\x48\xde\x94\ -\x7c\xd1\xd6\x32\x3e\xf5\x52\xa6\x5f\xe5\x00\x2d\x86\x36\x96\xc3\ -\x27\xe9\xb5\xf4\x2a\xfa\xc3\xc0\x80\xec\xb3\x7e\x60\x5d\xf2\x8e\ -\xc9\x73\xb1\x8c\xcf\x95\x28\x57\x80\x67\xd1\xb7\x84\xaf\x5e\x49\ -\xdb\xf1\x49\xca\x79\x79\xe3\x1b\xd1\x3f\x2d\x93\x37\x56\xa5\x14\ -\x3b\x81\x1f\x11\x5b\x05\x1a\x43\xef\x92\x31\x97\x72\xf8\x24\xe5\ -\x68\xe6\x3a\x58\xaf\x50\x6a\x85\x4c\xde\x13\x60\x08\x78\x2c\xf7\ -\x75\x09\xb8\x28\x63\x86\x45\x6f\xca\xe1\x93\x9c\x25\x99\xe8\x6e\ -\x95\xbc\x91\x2a\xf7\xe6\x97\x38\xf0\x94\x89\x88\xfd\x8a\xc3\x68\ -\xbb\x3e\x49\x69\x00\x96\x63\xb2\x65\xe0\xe0\x3f\x4e\xf5\x02\x30\ -\x13\x25\x57\x04\xde\x00\x83\xc0\xa1\x2a\x2f\x72\x3e\xa7\x4f\x52\ -\x06\xe5\xed\x5e\xad\xf5\xdf\xa9\xcd\x72\x05\x4c\x67\xca\xae\x26\ -\x99\x90\xd3\xb9\xad\xd6\x17\x7b\x4e\x4a\xf9\x9e\xff\x94\x31\xc6\ -\x18\x63\x8c\x31\xc6\x18\x63\x8c\x31\xc6\x98\x54\xfc\x05\x94\x34\ -\xe4\xeb\x87\xd7\x3b\x14\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ -\x00\x00\x07\xe2\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x07\x74\x49\x44\x41\x54\x78\xda\xd5\ -\x59\x69\x4c\x54\x57\x18\x35\x21\xe2\x8a\xfc\x20\x10\x11\xca\xa8\ -\xd8\x61\x70\x60\x06\x4a\x91\xaa\x58\x94\x68\x54\xa4\x2e\x35\x26\ -\x60\x63\xa8\x68\x30\x06\xe2\xb8\x47\x62\x0d\xee\x8a\x8e\xe2\x86\ -\xbb\x8e\xbb\xb8\xa2\xe3\x2e\x28\x6e\xe3\x8a\x8e\xbb\xb8\x27\x28\ -\x7f\xc4\xa4\x09\x86\x5f\xfe\x38\xbd\xe7\xbe\xe2\x65\x22\x10\x41\ -\x68\x99\x97\x7c\x2c\x61\xde\x7b\xe7\x7c\xdf\xf9\xce\xfd\xee\xa5\ -\x05\x80\x16\x8d\x75\xf5\x8a\x8a\xf2\x16\x61\x13\x51\x24\x22\xa5\ -\x45\x13\x5f\x00\xe4\x97\xc6\x02\x6f\xee\x63\x36\xbf\x1d\xd3\xa6\ -\x0d\x2c\x9e\x9e\x18\xa0\xd7\xe3\x07\x7f\x7f\x9d\x3b\x10\x20\x78\ -\x0b\x01\x67\xb4\x6d\x0b\xc7\xd0\xa1\xb0\xf7\xe8\x81\xe1\xfe\xfe\ -\xe8\xa6\xd3\xa5\x35\x5f\x02\x4a\x32\xf9\x04\x9b\xd9\xa1\x03\x4a\ -\x4f\x9e\x04\x4e\x9f\x76\x03\x02\x4a\x32\xce\x3f\xda\xb7\x47\x6e\ -\x74\x34\x2a\x5f\xbf\x06\x00\xf7\x20\xc0\x06\x8d\x37\x18\xfe\xfe\ -\x53\x68\xbd\x30\x3d\x1d\xa8\xa8\x00\x3e\x7f\xd6\x42\x54\xa1\x99\ -\x12\x50\x2e\xf3\x5b\x60\x20\x2c\xad\x5a\xa1\x74\xff\x7e\xe0\xd3\ -\x27\xd7\x38\x76\xac\x59\x12\x20\x78\x1d\x25\x93\xe4\xed\x0d\xab\ -\x68\xd8\xca\x9b\x37\x81\x8f\x1f\x81\xf2\x72\x15\x1f\x3e\x00\x87\ -\x0f\x7f\x21\x10\xd1\xbd\xfb\x26\xde\xf7\x7f\x13\x20\xf8\x61\x94\ -\x0c\x2d\xd2\x9e\x9c\x0c\xbc\x79\x03\x94\x95\x01\xef\xdf\x6b\xf1\ -\xee\x9d\x16\xa5\xa5\x40\x5e\x9e\x24\x40\x79\xfd\xee\xe7\x87\x04\ -\x9d\x0e\x24\x2e\x9e\x91\x45\x32\xff\x35\x01\x82\xcf\x21\x88\x8c\ -\x76\xed\x50\xb2\x6a\x95\x06\x9e\x0d\xcb\x78\xf5\x4a\x8b\x97\x2f\ -\x81\x17\x2f\xb4\x78\xfe\x1c\x28\x29\x41\x69\x7e\x3e\x1c\x8b\x16\ -\xc1\x36\x68\x10\x2c\x5e\x5e\x60\xe5\x06\x06\x07\x83\xae\x25\x22\ -\xae\x89\x09\x28\xc9\x8c\xf2\xf1\xc1\xfc\xa0\x20\x94\x9f\x38\x21\ -\x81\xe1\xd9\x33\xe0\xe9\x53\x2d\x9e\x3c\x01\x1e\x3f\x06\x1e\x3d\ -\x02\x1e\x3e\xd4\xe2\xc1\x03\xe0\xfe\x7d\xc0\xe9\x04\xee\xdd\xd3\ -\xe2\xee\x5d\x38\x17\x2e\x84\xd5\x68\x64\x65\x64\x55\xd8\x4b\x7c\ -\x47\x93\x10\x60\x86\xe2\xc2\xc2\xa4\x64\xf2\x12\x12\x80\x5b\xb7\ -\x6a\x04\x47\x60\x28\x2e\x06\xee\xdc\x01\x6e\xdf\xd6\x3e\xc7\xde\ -\xb8\x71\x03\xb8\x7e\x5d\x0b\x87\x03\xb8\x76\x0d\xb8\x7a\x15\xb8\ -\x72\x45\x56\xd1\xda\xb5\x2b\x68\xbf\x94\x25\x1d\xad\x51\x09\x50\ -\xab\x2c\x75\x86\x78\x81\x73\xce\x9c\xda\x40\xd6\x08\x0e\x97\x2f\ -\x03\x97\x2e\x01\x45\x45\xc0\xc5\x8b\xc0\x85\x0b\x40\x61\x21\x70\ -\xfe\xbc\x16\x67\xcf\x02\x67\xce\xc8\xb5\xc2\x39\x71\x22\x2c\x2d\ -\x5b\x82\x8e\xc6\x6a\x7c\x1f\x01\x65\x91\x45\x6c\x3c\x4a\xa6\x74\ -\xeb\xd6\x9a\x80\xd6\x0c\xb2\xa0\x40\x03\x78\xee\x9c\x02\x79\xea\ -\x94\x5c\x13\x40\xe9\xd9\xed\xd2\x5e\x21\xfa\x02\x47\x8f\x02\x47\ -\x8e\x00\x87\x0e\xa1\x72\xdd\x3a\x58\x85\x5b\x51\xa6\x94\x2b\x31\ -\x34\x88\x00\xb5\x18\x6b\x36\x4b\xc9\xd8\xfa\xf4\x41\xe5\xf1\xe3\ -\x35\x81\x65\x36\x6b\x07\x4a\x90\xbc\x8f\x40\x35\x90\xd2\x52\x71\ -\xf0\x20\x70\xe0\x80\x74\x27\xec\xdb\x07\xec\xdd\x0b\xec\xde\x0d\ -\xec\xda\x05\xec\xdc\x09\x6c\xde\x0c\x9b\xe8\x0d\xbe\x5b\x91\xa8\ -\x3f\x01\x0b\x5d\xa2\xd0\x62\xd1\x40\xec\xd9\x43\x70\x5a\x66\x5d\ -\xc1\x32\xa3\x0a\xac\x96\x51\x02\x65\x46\xab\x03\xe5\x33\x14\xd0\ -\x1d\x3b\x80\xed\xdb\x81\x6d\xdb\x80\x2d\x5b\x24\x68\x6c\xdc\x08\ -\x6c\xd8\x00\xac\x5f\x0f\xe4\xe4\xc0\x11\x1b\xeb\x42\xa2\xbe\x04\ -\xe2\xe8\x0c\x16\xa1\xfb\x92\x4d\x9b\x98\x79\xbe\x80\x2f\xd4\xc0\ -\xa9\xcc\xba\x66\x95\x2b\xb1\x06\x56\x65\xd4\x66\xd3\xee\xa3\x04\ -\xab\x03\xcd\xcd\x05\xd6\xae\x05\xd6\xac\x01\x68\xc7\x2b\x57\x02\ -\x2b\x56\x00\xcb\x97\x03\xd9\xd9\x80\x70\xa9\x3c\xa3\x51\x36\x77\ -\x4c\x64\xe4\x29\x81\xcf\xa3\xbe\x3d\x90\xd2\xcf\x60\xa8\x90\xf3\ -\xcd\xd4\xa9\xd4\xbf\x06\xc8\x6a\xd5\x5e\x46\x62\xfc\x5d\x49\x40\ -\x65\x56\x03\xcb\xcf\xb8\x82\x5d\xbd\x5a\x81\xe5\x73\x96\x2d\x03\ -\x96\x2e\x05\x16\x2f\x06\xc4\x1a\x81\x05\x0b\x80\x79\xf3\x80\xac\ -\x2c\x80\x86\x21\xde\x6b\xeb\xd4\x09\xec\xc3\x68\xb3\x39\xbb\xde\ -\x2e\x24\x96\xfe\x9e\xbd\xc3\xc3\x9f\xc8\x09\x33\x2e\x0e\x95\xd4\ -\x3e\x25\x43\x00\x4b\x96\xf0\xa5\xcc\x14\x7f\x66\xf6\x08\x4e\x03\ -\x29\x9a\x51\x65\x56\x81\x65\x66\xf9\x59\xde\xf3\x15\xd8\xd9\xb3\ -\x81\x19\x33\x80\x49\x93\x80\x71\xe3\x00\xae\xf0\x62\x2f\x51\x19\ -\x1f\x8f\xf9\xe2\xfd\x74\x42\x81\x27\xb1\xde\x36\x1a\xda\xad\x9b\ -\x1f\x4b\x28\x67\x7c\x11\xa5\xcc\x38\x1b\x9a\x20\x49\x60\xfe\x7c\ -\x60\xee\x5c\x05\x62\xd6\x2c\x60\xe6\x4c\x60\xda\x34\xfe\xac\x81\ -\x62\x05\x27\x4f\xd6\xc0\x65\x64\x00\xc2\x32\x31\x61\x02\x30\x7e\ -\x3c\x90\x9a\xaa\x81\x1d\x35\x0a\x18\x39\x12\x18\x3e\x5c\x02\xc7\ -\x90\x21\xc0\xe0\xc1\xc0\xc0\x81\x28\x8d\x89\xc1\x38\x0f\x0f\xf4\ -\x36\x99\xca\x04\xa4\x36\x0d\x59\x89\x3d\xa2\x4d\xa6\x4c\xee\xb2\ -\xf8\x20\x07\xb3\x56\x5c\xcc\x06\xad\x9b\xc0\x94\x29\xb5\x83\x4e\ -\x49\x01\xc6\x8c\x01\x46\x8f\x06\x92\x92\xea\x24\x80\xfe\xfd\x61\ -\xef\xd2\x45\xda\x6b\x54\x78\x78\x4e\x83\x67\xa1\x70\x83\x21\x96\ -\x59\xa0\xa4\x6c\x89\x89\x94\x14\x5d\x89\xd2\xa8\x8b\x00\x6d\x95\ -\x84\x55\xd0\x04\xd8\x27\xd4\xfe\xd8\xb1\xdf\x44\xa0\x52\xd8\x79\ -\x66\xeb\xd6\x60\x5f\x76\xf4\xf5\xd5\x37\x80\x80\x92\xd4\x2f\x91\ -\x91\x0e\xb9\xc0\xe9\xf5\x94\x14\x47\x05\xda\x5f\xad\x04\x4a\x84\ -\x8c\xec\x69\x69\x55\x41\x67\x23\x79\x45\x88\xee\xc5\xcf\xd7\x41\ -\x00\xfd\xfa\xc1\x11\x12\x22\x5d\x29\xd2\x68\xcc\xa5\x2a\xbe\x67\ -\x3f\xe0\x41\x57\x90\x23\x86\xb7\xb7\xab\xa4\x58\x09\x57\x02\x1c\ -\xa7\x59\x7e\x39\x26\xb0\x97\xb8\xc6\x08\x77\x63\x02\xe8\x70\x8a\ -\x0c\x17\x3b\xca\xac\x16\x02\x10\x46\x92\xd9\xaa\x95\xaa\xc2\xf7\ -\xee\xc8\x7e\x0a\x0b\x1b\x1c\x67\x34\x56\xc8\x21\x8f\x8d\x48\x10\ -\x85\x85\x94\xc6\x57\x04\x08\xdc\x64\x30\x58\xb9\x2b\xe3\x77\xd1\ -\x53\x45\x04\x22\x2a\xc9\xbe\xa2\x24\x15\x11\x1a\x44\x2d\x04\x1c\ -\x82\x34\x93\x61\x0e\x0d\xcd\x66\x22\xbf\x7b\x4f\x2c\x00\xf9\xc7\ -\x44\x44\xdc\xe4\x43\x99\xd1\x72\xbb\x9d\x20\xb8\x0e\x28\x02\x5f\ -\x6f\x29\xdb\x8b\xf0\x11\xa1\x0b\x0b\x09\xf9\xab\xa7\xd1\x58\xcc\ -\xbf\xb3\x9a\xac\x08\xef\x97\x76\x3d\x62\xc4\x57\x04\x2a\x7b\xf6\ -\x84\x45\x39\x92\x4f\x63\x9d\x4a\x78\xf4\x30\x9b\x37\x71\xf5\x26\ -\x08\x27\x7d\x9f\x20\x38\x6a\x4c\x9f\xfe\x2d\x7b\x62\xef\xf0\x90\ -\x90\xb4\x5f\xbb\x77\x2f\x73\x59\x73\x0a\x0a\xe8\x56\x2e\x04\x20\ -\x9a\xd9\xa6\xed\xec\xd0\x35\x28\x68\x58\xa3\x9e\x0b\x09\x8b\x4b\ -\xa6\x2c\x28\x29\x36\x2b\x49\x70\x7a\xb5\x8b\x5d\x98\x22\x50\x77\ -\x35\x45\x6f\x1d\x66\xaf\xb0\x9a\x24\x21\xd7\x9c\xc4\x44\x17\x02\ -\x4e\x83\x41\xf6\x91\x90\xf0\x5e\x71\x9b\x67\xa3\x9e\xcc\x09\x49\ -\x84\x72\xf5\xa6\xa4\xac\x51\x51\x04\x41\x32\xb5\x11\xa8\x75\xcd\ -\x11\x19\x56\x24\x28\xcb\x84\x84\x2f\x04\xd0\xab\x57\x75\x19\xf9\ -\x35\xc5\xd9\xa8\x67\x8f\x88\x88\x3c\x66\x92\x03\x21\x89\x10\x90\ -\x2e\x20\x20\xf9\x5b\x1f\x20\xac\x3a\xd5\x85\x04\x67\x2a\x45\x00\ -\x36\x5f\x5f\xf9\xcc\x80\x8e\x1d\xe3\x1b\x99\x80\xba\x7e\x36\x99\ -\x26\x52\x52\x72\x97\x15\x1e\x5e\x42\x95\xd5\xf7\x8c\x95\x95\x63\ -\x4f\x48\x39\xa6\xa7\x7f\x21\xe0\x10\x16\xce\x2a\x1b\xf5\xfa\x2c\ -\x56\xad\x49\x08\xf0\xe2\x89\xf4\x8f\x9d\x3b\xa7\xfe\x0b\x5e\xd7\ -\x80\x53\x3f\x5b\x52\x95\x3b\xb1\x1f\x06\x0c\x90\x04\xca\x23\x22\ -\xb8\x5f\xe0\x68\x61\xa7\x09\x34\x11\x01\xa5\x6b\x0e\x61\x0d\x3d\ -\x30\xe6\x31\x3d\xdd\x8d\x16\xcd\xa9\x97\x04\x10\x13\xc3\x3e\xa8\ -\xaa\x6c\xa0\x0b\x81\x66\x76\x55\x6d\xb0\x94\x94\x84\x2b\x91\x80\ -\xd5\xcb\x8b\xff\x77\x20\x60\x7d\xf3\x25\xa0\x48\xe4\x53\x32\x9c\ -\xa3\xb8\x41\x22\x01\x7b\x40\x00\xd8\x5f\x34\x07\x77\x20\xa0\x63\ -\xb6\xe9\x68\xf2\xc8\xa6\x6f\x5f\x38\xc4\x88\xcd\x26\x37\x04\x07\ -\x4f\xa5\xf3\x35\x63\x02\xaa\xa1\x59\x05\x4e\xc0\x9c\x7a\x4b\x0c\ -\x06\x4e\xa7\xf2\xd0\x98\xe3\x89\x3b\x10\x30\xb3\x17\x38\xf8\xf1\ -\x50\xa1\xdc\x64\xaa\x4e\xc0\xaf\x79\x13\x50\x24\x9c\x9c\x5e\xe5\ -\xe2\x26\x46\x94\x34\x01\x59\xcc\x61\xc5\xe2\x4f\xfe\xee\x42\x20\ -\x85\x0b\x18\xf7\x20\xdc\x77\x54\x23\x10\xe8\x2e\x04\xbc\xb9\x91\ -\xa2\xa5\xf2\x0c\x2a\xd3\xd3\xb3\x8a\x80\xde\x0d\x08\x28\x4b\xad\ -\x92\x11\xd7\x02\x8e\xe1\xee\x46\xc0\x42\x19\x71\xdf\x41\x5b\xa5\ -\xbd\xba\x1b\x01\x1d\xdd\x88\xdb\x58\xb7\x24\xc0\xab\xaf\xd1\xf8\ -\x96\xa3\x76\x35\x02\x61\x6e\x45\x80\x7d\xc0\x93\x0d\xee\x37\x38\ -\xb2\x73\xda\x75\x37\x02\x66\xfe\xdb\x2b\x3e\x34\x54\xee\x09\xdc\ -\xab\x02\xea\x6a\x43\xe0\x22\xcc\x22\x7c\x88\xfd\x1f\xf9\x92\x41\ -\x48\x3f\x71\x1a\xd8\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ -\x82\ -\x00\x00\x08\x19\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x07\xab\x49\x44\x41\x54\x58\xc3\xad\ -\x57\x5b\x50\x93\x67\x1a\xf6\xca\xce\xec\xcc\xf6\x62\x2f\xbc\xd9\ -\xe9\xce\xec\x6e\xbd\xda\xd9\x9b\xb5\xce\xba\x3b\x7b\xb0\xad\xcc\ -\x7a\xb1\xce\xce\x3a\xb3\x76\x54\x70\x75\xdb\xe2\x81\xd6\xb6\x54\ -\x04\xbb\xa5\x20\x6d\xc1\x82\x06\x08\x07\x51\x42\x80\x80\x80\x02\ -\x21\x81\x10\x92\x40\x48\x10\x73\x24\x21\x67\x72\x80\x04\x42\x20\ -\x9c\x09\x47\xb5\x54\x78\xf6\xfb\x7e\x13\x16\x30\x58\x8b\x7d\x67\ -\x9e\xf9\x2f\x92\xfc\xcf\xfb\x3e\xcf\xfb\xbe\xdf\x97\x5d\x00\x76\ -\xfd\x98\x20\xf1\x0b\x82\x14\x02\x03\xc1\x75\x82\x03\xcf\xfd\xfe\ -\x8f\x48\xbc\x9b\x20\xe1\x57\xaf\xef\xb5\x2a\x8c\xd6\x65\xdb\x02\ -\x60\x19\x1e\x5b\x09\x27\xf1\x33\xfa\x19\x81\x22\xfc\xdc\x3e\x76\ -\x48\x7e\x8a\xa0\xb9\xb6\x59\x1c\x32\xcf\xad\x42\x39\xfe\x1d\x44\ -\xf6\x51\xd8\xc7\xe6\xe8\x87\x86\x3d\x7b\xf6\x58\x53\x52\xae\x2c\ -\xca\x3a\x3a\x10\x4e\xe2\xe5\x49\xc3\xc4\x31\x04\xb7\x3e\x49\xf9\ -\x2c\x60\x9b\x5d\x59\x53\x4d\x03\x4d\xb6\x11\x34\xeb\xfb\x20\x31\ -\x79\x60\x19\x9d\xc5\xbb\xef\xbe\x3f\xc5\xab\xbe\x83\xf1\x89\x29\ -\x4c\x4f\xcf\xae\x92\xef\xd7\xbc\x74\x02\x11\x9f\x0f\xbe\x1d\xe3\ -\xb2\x04\x43\x4f\xb4\x33\x40\x8b\x7b\x06\xcd\x3d\x2e\x34\xeb\xec\ -\xa8\x57\xf6\x20\x87\x53\x85\x32\x5e\x35\x43\xbc\xb0\xf4\x90\x81\ -\xc1\x60\x5c\x26\xbf\x4b\x7c\xe1\x04\x48\x1c\x24\x38\x41\xfd\xdd\ -\xea\x73\x27\xf1\xb9\x27\x04\x48\x87\x97\xc1\xd7\xbb\x20\x22\x55\ -\x37\xdc\x37\xa2\xb8\x4e\x88\x2c\x56\x3e\xcc\x56\xdb\x3a\x71\x04\ -\x2c\x16\x6b\x2c\xfc\xce\xe7\x27\x10\x91\x36\x93\x95\x3f\x46\x7d\ -\xa5\xfe\x12\xc4\x6f\xf4\x59\x31\xb6\x02\x7e\xef\x20\x5a\x7b\x9c\ -\xe0\x3f\x30\xa1\x4c\x28\x43\x46\x0e\x1b\xb2\x0e\xf9\x26\xd2\xf9\ -\xc5\x65\xcc\x2d\x2c\x21\x34\xbf\x88\xbd\x7b\xf7\x5a\xc9\x3b\x7e\ -\xba\x6d\x02\x24\x7e\x43\x90\x46\x3d\x35\x13\x69\x75\xb3\x80\xd2\ -\x3f\x0f\xcb\xc4\xe2\x9a\x50\xa1\x5a\xb4\x6c\xf1\x59\xa0\xb6\xa0\ -\xa6\x5d\x8d\x2f\xb2\x73\x71\xb7\x9e\xff\x0c\x31\x25\x9d\x09\xcd\ -\x63\x62\x6a\x06\x83\x43\x81\x27\xe4\xdd\xbc\x2d\xd3\xb0\x3b\x92\ -\x03\x33\x26\xd4\x53\xb5\xd3\xfb\x58\x4f\x88\xc5\x03\x21\x88\x2c\ -\x43\x50\xba\x46\xd0\xed\x09\x42\xe5\x9b\x42\x9b\x73\xfc\xa9\xcf\ -\x5a\x1b\xee\x2a\x74\xc8\xbc\xc9\x45\x09\xa7\x6c\x93\xcf\x9b\x88\ -\x27\xa7\x11\x18\x1d\xc3\x80\x6f\x08\xa2\xd6\xd6\x25\xc2\x51\xdb\ -\x28\x12\x87\xc6\x1f\xaf\x82\x2f\x62\x94\x4d\x89\x24\x90\x22\xea\ -\x52\x2d\x9a\x42\xab\xe8\x18\x79\x04\xa1\xc5\xcf\x10\x53\x74\xf6\ -\x0d\xa3\xd3\xe1\x87\xd4\x3c\x80\x16\xbd\x03\x0d\x5d\x06\x14\xd5\ -\x0a\x90\x91\x95\x0d\x2f\x79\xf1\xc6\xaa\xa9\xd4\xb3\x73\x0b\x4c\ -\xc5\x94\xd8\xdd\xef\x85\xc9\x62\x05\xb7\xbc\x12\xa5\xe5\x95\x4b\ -\x13\xf3\xcb\xab\x23\x0f\x01\x37\xd9\x11\xe6\xd9\x15\x84\x97\x15\ -\x13\x06\xcb\x3c\xd0\x68\xf2\xa3\xdd\xee\x5f\x27\x96\x3b\x86\x20\ -\xb3\x78\xd7\x7d\xe6\x08\xa4\xf8\x3c\x33\x1b\x2a\x8d\x36\xaa\xdc\ -\x53\x33\x21\x8c\x8e\x8d\x33\x15\xd3\x26\xe4\x37\x09\xf1\xc1\xc5\ -\x8f\x51\x73\xaf\x01\xbe\x65\x60\xfc\x11\xa0\x23\x13\x23\xf2\xce\ -\xa1\xbe\x5d\xb9\xb8\x51\x01\x83\x81\x74\x74\x4d\xa7\x1e\x0a\x67\ -\x80\xa9\xb8\xdd\xea\x83\xd8\xe8\x42\x93\xca\xcc\xf8\x7c\xe5\xcb\ -\x2c\x88\xda\x24\x51\x89\xa7\x67\xe7\x18\x1b\x86\x86\x47\x60\x77\ -\x38\x49\x82\x3a\x24\x7c\xf8\x21\xae\xb3\x0b\xe1\x99\x5c\x80\x6f\ -\x09\xd0\x90\xde\xe1\x0f\x2c\x81\xab\x1f\xc4\x7d\xef\x04\xdd\x07\ -\x1d\x61\xeb\xff\x9f\xc0\x1d\xb9\x16\x1d\xf6\x21\x48\xcc\xfd\x4f\ -\x7d\xee\xd4\x22\x9d\x55\x84\xaa\x9a\xba\x4d\x3e\x47\xe4\x8e\xf8\ -\x3c\x3c\x12\x84\xd3\xdd\x0f\xbd\xc1\x88\xc2\xe2\x62\x9c\x7e\x2f\ -\x1e\x3d\x03\x01\xf4\x2f\x02\x83\x84\xbc\xc5\xff\x2d\xee\x3a\x43\ -\x28\x51\x91\xf7\xf6\x05\xf1\x4e\xdc\xbf\x7d\x84\x33\x69\xe3\x20\ -\x18\xf4\x33\xab\xe0\xc9\x54\x68\x35\x38\xd1\xd8\xdd\x0b\x9e\x58\ -\x89\xac\x5c\xf6\x33\x3e\x47\xaa\x9e\x9c\x9e\x65\xe4\xee\xf7\x0e\ -\xa2\xd7\x6c\x41\x43\x03\x1f\x27\x62\xe3\x20\xe9\xd6\xc0\x45\xcf\ -\x01\x52\x90\x24\xb8\x86\xb2\x9e\x00\x6e\xb4\xdb\x50\xd1\x1b\x44\ -\x85\xce\x8b\x4a\x7e\x0b\x6d\xbe\x9b\x5b\x27\xd1\xa0\x99\xf8\x16\ -\x65\x22\x05\xee\x29\xf4\x28\x13\xc8\x90\x78\x35\x0b\x1a\xad\x3e\ -\xaa\xdc\x63\x13\x93\xf0\x0d\x0d\xc3\x66\xef\x83\xb4\x5d\x8e\xc4\ -\x4b\x97\x90\xc3\xca\xc3\xd4\x63\xc0\x4e\x7a\x49\x31\x4e\xfa\x89\ -\x94\x7f\x5b\x3b\x84\x7c\x85\x13\x25\x6a\x1f\x4a\xd5\x03\xe8\xf2\ -\x30\xa3\x28\x22\xf8\xf9\x33\x09\x74\x8f\x2e\xa1\xa8\xbe\x15\xa5\ -\x7c\x09\xb2\x4a\x2a\xf0\xcf\xe3\x71\x51\xe5\xf6\x07\x46\xd1\xe7\ -\xf2\x40\xab\x37\x20\xfd\x6a\x06\x92\xbf\x48\x83\xcd\x37\x02\x27\ -\xa9\xda\x40\x1a\x4c\xe0\x7b\x88\x52\x9d\x1f\x45\xdd\xfd\x0c\x71\ -\x41\x97\x1b\xc5\xdd\x1e\x88\x9c\x41\xfc\xf9\xcd\xb7\x5d\x84\xeb\ -\x6c\xb4\x43\xd0\x28\xf7\x4e\x23\xa7\xfc\x1e\xb2\x4b\xab\xf1\x51\ -\xea\x57\x48\xfe\x6f\xea\xfa\x58\x51\xb9\x47\x82\xe3\xf0\x0c\xf8\ -\x60\x34\x99\x51\xc9\xab\xc2\xfb\x67\xcf\x41\xfe\x40\x03\x3f\xe9\ -\x6e\xb2\x8d\x19\xb9\x6f\x69\x06\x19\xd2\x9b\x2a\x2f\x72\xe5\x0e\ -\xe4\x75\xf6\xa1\xf0\xbe\x1b\x1c\x95\x1b\xf9\x9c\xca\x29\xc2\x53\ -\xb8\xdd\x29\xdc\x2b\x76\x04\x90\x51\xc8\xc5\x95\x6b\x79\x38\x11\ -\x9f\x80\x9b\xb7\x6e\x33\x63\x15\x91\xdb\x6a\x73\x40\x22\x6d\xc7\ -\x85\x84\x0f\x50\x74\xbb\x0c\xf3\x2b\x80\x9f\x34\x58\xf7\x24\x20\ -\x1c\x7c\x84\x4a\xd3\x18\x38\xfa\x61\x86\x9c\x56\xfd\x55\xb3\x1e\ -\xac\x0e\x3b\xb8\x3a\x1f\xd9\x21\x1e\x7a\x2f\xe0\x13\xbc\xba\x5d\ -\x02\x26\xbe\xc1\x83\x94\x6f\xd8\x38\x9f\x9c\x8a\x03\x7f\x3d\x04\ -\x63\xaf\x99\xe9\x6e\x2a\xb7\x46\xd7\x83\xa4\xcb\xc9\x48\xff\x3a\ -\x8b\x8c\xd5\x3c\x53\xb5\x71\xf6\xa9\xdc\x35\xf6\x69\x5c\x97\x59\ -\x19\xd9\xbf\x6e\x21\xa7\xa0\xd4\x82\x74\xbe\x1a\x57\x9b\x34\x60\ -\xc9\xcc\x10\xbb\x82\xf8\xe5\xaf\x5f\xa7\x67\xc0\x3b\xe1\x75\x1f\ -\x35\xcc\x35\xdd\x66\x7c\x94\x96\x85\xb8\x73\x17\xf1\x97\x43\x31\ -\x4c\xd5\x74\x99\xf0\xaa\xaa\x71\xfa\xf4\x19\x68\xcc\x0e\x8c\x92\ -\x2d\x36\x14\x1e\xab\x5a\xc7\x0c\x78\xe6\x71\x70\x0d\x23\x4c\xa3\ -\x65\x8a\x0c\x8c\xec\xb4\xfa\x9c\xb6\x5e\x94\x74\x39\xd0\x66\xf7\ -\xaf\x1e\x3d\x11\x4b\x47\x2e\x6f\xc3\x79\x13\x35\x2c\x5c\x99\x1a\ -\xf1\x97\x3e\xc7\xd1\xd8\x33\xf8\x38\x31\x09\x86\x5e\x13\x1a\x9b\ -\x04\xf8\xdd\x1b\xfb\x51\x4f\xd4\xf1\x90\x99\xee\x9a\x00\xaa\xad\ -\x93\x60\x2b\x5d\x0c\x39\xf5\xbc\xf0\xbe\x67\xbd\xea\xcc\x16\x3d\ -\x4a\x55\x1e\x08\x6d\x01\x94\xd4\xf1\x43\xe1\x65\x53\x40\xf0\xca\ -\xf7\x25\x60\x2b\x6e\x6a\xc7\xa9\x84\x44\xc4\x1c\x39\x8a\xdc\x7c\ -\x36\x5a\x5a\xc5\x38\x14\x13\x83\x2f\x39\x35\xc8\x14\x6a\x98\xe6\ -\xa2\xd5\xd2\x27\xf5\x9a\x7a\x4c\x13\xa1\x49\x64\xb7\x99\x90\xdb\ -\x6e\x46\xb9\xda\x8d\x06\xa5\x76\x39\x2c\x39\x3d\xf9\x4e\x13\xec\ -\xd9\x72\xd4\x47\x0d\x3b\xab\x46\x88\x63\xff\x39\x8f\xdf\xee\xfb\ -\x3d\x1a\xf9\x02\x9c\xbf\x90\x80\x93\xf1\x17\x70\xa3\xad\x07\x19\ -\xc4\x4f\x4a\x14\xe9\x6e\xba\x58\xa8\xef\x2c\xfa\x94\x98\x50\x28\ -\xb7\x40\xe9\x0e\x3c\xf9\x57\xec\x29\x2a\x77\x2d\xc1\x67\x04\xfb\ -\xb6\xb9\xe4\x44\x8d\xbe\xcc\xb2\x5a\xfc\xe3\xe4\x19\x1c\x3c\xf4\ -\x37\xb0\x72\xf3\xb0\xef\xc0\x1f\x50\x20\xd1\x21\x89\x27\x65\x2a\ -\xa6\x4b\x85\x3e\xbf\x21\xd5\x46\xe4\x2e\x90\x5b\x21\xb0\x0c\xae\ -\xe5\xdc\xe2\xd2\x11\x13\x13\xe4\x87\x6f\x3c\xaf\x3c\xe7\x96\x15\ -\x35\x9c\x69\x45\xe5\xf8\xfb\xb1\x58\x1c\x3f\x19\x87\x37\xf6\xef\ -\xc7\x8d\x3a\x11\x92\xab\xa4\x0c\x21\xed\x70\xea\x35\x55\x21\x8b\ -\x34\x5b\xc9\x03\x37\x2a\x34\x6e\xd4\x49\x3a\x17\xc3\x72\x73\x08\ -\x8e\x6d\x95\xfb\x87\x24\xe0\x4a\x65\x73\x70\xe4\xf8\x29\x1c\x3e\ -\x7c\x98\x8c\x63\x2e\x32\x05\x2a\x5c\x22\xd5\xd3\x5d\x7e\x4d\xdc\ -\x0b\x36\xe9\x74\x76\xa7\x1d\x77\x8c\xe4\x88\xb6\xf9\x9e\x84\xb7\ -\x1a\x95\xfb\x22\xbd\x49\xfd\x80\x0b\x6d\xf4\x04\x32\x4a\x78\x4c\ -\x0f\x9c\x4b\x49\xc3\xb5\xa6\x2e\x7c\xc2\x6d\x65\x36\x59\xf1\x83\ -\x01\x5c\x97\x9a\xc1\x51\x7b\x20\xf3\x04\xd7\xce\x25\x26\x05\x36\ -\xc8\xfd\xc7\x9d\xc8\x1d\xd5\x82\xdc\x1a\x01\xce\x5e\x4e\x45\x81\ -\x58\x85\x78\xf6\x5d\x5c\xa9\x55\x90\xaa\xfb\xc0\x96\xdb\x50\xad\ -\x75\xe3\xae\x54\x41\x2f\x10\xca\x0d\x72\xbf\xba\xd3\x6a\xa3\x05\ -\xb7\xa2\x51\xf8\x1d\xaf\x43\x8d\x4f\xb9\x2d\x88\xcb\xe6\xe1\x9a\ -\x48\x8f\xaa\x1e\x2f\x9a\x35\xe6\xc7\x7f\x7a\xf3\x2d\x57\x78\xac\ -\xa8\xdc\xaf\xbd\xac\xdc\xd1\xe2\x08\xdd\x05\x5c\x75\x1f\xde\xcb\ -\xaf\x45\xb9\x76\x00\x32\x67\x60\xf5\xc2\xa7\x97\xa9\xdc\xf7\x08\ -\xd2\xa9\xdc\x3b\xf8\x03\xf3\xc2\xf1\x13\x82\xca\x1c\xee\x9d\x50\ -\x0b\x39\x94\xb8\x0d\xc2\xc8\x16\xa3\x17\x87\xc3\x2f\x22\xf7\x0e\ -\xff\xda\x6d\x8a\xdd\x61\x99\xd5\x1b\xb6\xd8\x6b\xbb\x5e\x32\xbe\ -\x2f\x89\xff\x01\x66\xb9\x5f\xfc\x11\x80\x3d\xcf\x00\x00\x00\x00\ -\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x04\x32\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ -\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd2\x01\x07\x0b\x05\x06\xab\xd4\xb8\x1c\x00\x00\x03\xaf\x49\x44\ -\x41\x54\x78\xda\xb5\x96\xcd\x4b\x63\x57\x14\xc0\x7f\xf7\x46\x13\ -\x34\x89\x93\x9a\x28\x88\x1f\x09\x8e\x8b\x6e\x9c\xea\xe0\xc6\x27\ -\xe8\x80\x6e\x82\x10\x19\xac\x4b\x75\xd1\x59\x64\xd3\x2e\x66\xe7\ -\x6a\x96\xb3\x18\x98\xbf\xa1\x9b\xa1\x8b\x30\x2e\x4a\x2b\x68\x57\ -\x82\xdf\xd2\x8e\x16\x41\x34\x7e\x4c\x05\xbf\x88\x08\xad\x21\xef\ -\xf3\xbe\xd7\x8d\x79\x38\x1d\xa3\xa5\xd8\x0b\x07\x0e\xe7\x1d\xce\ -\xef\x9e\x73\x38\xe7\x3e\xf8\x9f\x8f\xa8\xf4\x21\x9d\x4e\x67\x0a\ -\x85\xc2\x98\x69\x9a\x9a\xe3\x38\x6d\x4a\x29\x80\x23\x60\xe9\xd1\ -\xa3\x47\xb9\xf5\xf5\xf5\x1f\xff\x13\x60\x7c\x7c\xfc\xe9\xe6\xe6\ -\xe6\x5b\x29\xe5\xc0\xe0\xe0\x20\x4f\x9e\x3c\x21\x1e\x8f\xe3\xba\ -\x2e\x85\x42\x81\xb5\xb5\x35\x66\x67\x67\x71\x1c\x67\xbe\xb9\xb9\ -\xf9\xe5\xea\xea\xea\x6f\xff\x1a\xf0\xec\xd9\xb3\xcc\xe9\xe9\xe9\ -\x7b\x4d\xd3\xaa\x46\x47\x47\x69\x6c\x6c\xa4\xba\xba\x1a\x21\x04\ -\xae\xeb\x62\xdb\x36\x86\x61\x70\x72\x72\xc2\xbb\x77\xef\x58\x5e\ -\x5e\x76\x62\xb1\xd8\xe8\xfe\xfe\x7e\xc5\x6c\x02\x65\x65\x64\x64\ -\xe4\x69\x3e\x9f\xff\xe5\xf9\xf3\xe7\x55\x93\x93\x93\x24\x12\x09\ -\xa2\xd1\x28\xf5\xf5\xf5\x24\x12\x09\x1a\x1a\x1a\x88\xc7\xe3\x44\ -\x22\x11\x22\x91\x08\x9d\x9d\x9d\xe8\xba\x2e\x37\x36\x36\xc6\x5a\ -\x5a\x5a\x7e\xbe\xbc\xbc\x3c\xbd\x13\x60\x59\xd6\x0f\x9a\xa6\xb5\ -\xbf\x78\xf1\x82\x48\x24\x42\x2c\x16\xa3\xa1\xa1\x81\x48\x24\x42\ -\x28\x14\x22\x10\x08\x10\x08\x04\x08\x85\x42\x44\xa3\x51\xc2\xe1\ -\x30\x8f\x1f\x3f\x66\x77\x77\x57\xee\xed\xed\x7d\x69\x9a\xe6\xf7\ -\xb7\x01\x24\x40\x57\x57\x57\xc6\x75\xdd\x81\x89\x89\x09\x6a\x6b\ -\x6b\x89\xc5\x62\x24\x12\x09\x82\xc1\x20\x81\x40\x00\x29\x25\x52\ -\x4a\x1f\x22\xa5\x24\x1c\x0e\xd3\xde\xde\x4e\x36\x9b\xc5\xf3\xbc\ -\x81\xfa\xfa\xfa\x4c\x45\x40\xa1\x50\x18\xcb\x64\x32\x34\x35\x35\ -\x11\x0e\x87\xa9\xab\xab\x43\x08\x81\x94\x12\x21\xc4\x67\x72\x13\ -\xda\xd5\xd5\x45\x3a\x9d\x46\xd7\xf5\xb1\x8a\x00\xd3\x34\xb5\xbe\ -\xbe\x3e\x82\xc1\x20\xd1\x68\x14\x21\x04\x9e\xe7\xe1\x79\xde\x27\ -\xce\x65\xdb\x4d\xbb\x10\x82\xa1\xa1\x21\x94\x52\xda\x6d\x80\x2a\ -\x00\xa5\x54\x5b\x6b\x6b\x2b\xa1\x50\xc8\x0f\x3e\x3c\x3c\xec\x07\ -\xb8\x0d\x90\xcb\xe5\x7c\xbd\xa3\xa3\x03\xa0\xed\x2e\x00\x42\x08\ -\xaa\xaa\xaa\x50\x4a\xa1\x94\xc2\xf3\x3c\x1f\x76\x1b\x40\x29\x85\ -\x6d\xdb\x38\x8e\x83\x6d\xdb\x9f\x65\xfb\x4f\xc0\xd1\xe1\xe1\x61\ -\x7b\x73\x73\x33\xb6\x6d\x23\x84\x60\x7a\x7a\xda\xaf\x75\x39\xb8\ -\xeb\xba\x38\x8e\x83\x52\x0a\xc3\x30\xb0\x6d\x1b\xcb\xb2\xd8\xd9\ -\xd9\x41\x29\x75\x54\xb1\x07\x9e\xe7\x2d\xcd\xcd\xcd\x61\x18\x06\ -\x96\x65\x61\x9a\x26\x96\x65\xf9\x7a\x59\xca\x36\xc3\x30\xd0\x75\ -\xdd\xb7\xcf\xce\xce\xe2\xba\xee\x52\x45\x80\x94\x32\x97\xcb\xe5\ -\xc8\xe7\xf3\xe8\xba\x4e\xa9\x54\x42\xd7\xf5\x4f\xc4\x34\x4d\x4a\ -\xa5\x92\x2f\xa6\x69\xa2\xeb\x3a\xdb\xdb\xdb\xcc\xcc\xcc\x00\xe4\ -\x2a\x0e\x9a\x65\x59\x86\x10\xa2\xfb\xe0\xe0\x20\x35\x38\x38\x88\ -\xeb\xba\x58\x96\xe5\xaf\x07\xcb\xb2\xb0\x6d\xdb\xcf\xa2\x0c\x2b\ -\x16\x8b\xbc\x7a\xf5\x8a\xb3\xb3\xb3\x79\x60\xea\xae\x49\xfe\x53\ -\x4a\xf9\xfb\xf1\xf1\xf1\x37\xe7\xe7\xe7\xb2\xbb\xbb\xdb\x6f\x5e\ -\x39\xa8\xae\xeb\x7e\x79\x4a\xa5\x12\x57\x57\x57\xbc\x79\xf3\x86\ -\xe5\xe5\x65\x07\xf8\x0e\xc8\xdf\xb9\x2a\x5c\xd7\x0d\x0a\x21\xe6\ -\x77\x76\x76\xc6\x3e\x7c\xf8\x20\x5b\x5b\x5b\xa9\xa9\xa9\xf1\x83\ -\x97\xeb\x5d\x2c\x16\xd9\xda\xda\xe2\xf5\xeb\xd7\xac\xac\xac\x38\ -\x40\x09\xf8\x1a\xb8\x04\x7e\xbd\x6f\x5d\x27\x81\xb8\x10\xe2\xad\ -\x94\x72\xa0\xbf\xbf\x9f\xde\xde\x5e\x52\xa9\x14\x00\xfb\xfb\xfb\ -\x2c\x2e\x2e\xb2\xb0\xb0\x00\x30\x0f\xbc\x04\xde\x03\x5f\x5c\x5f\ -\xf6\x02\xf8\x16\xf8\xe9\xbe\x07\x27\x09\x7c\x05\x8c\x01\xda\x8d\ -\x21\x3a\x02\x96\xae\x1b\x7a\x01\x1c\x03\xa4\x52\xa9\x2d\x40\x7c\ -\xfc\xf8\x51\x02\x36\x90\xbe\xf6\xbb\xf7\x24\xef\x90\x9b\x3e\x17\ -\xd9\x6c\xd6\xee\xe9\xe9\xd1\x81\xbf\xae\xcb\x96\x7c\xc8\xa7\x37\ -\x09\x5c\x4d\x4d\x4d\x29\x4d\xd3\x1c\xe0\x0a\x28\x3e\x24\xa4\x9c\ -\x95\x91\xcd\x66\xed\x64\x32\x69\x3f\x34\xe0\x26\xe4\x14\x50\xc0\ -\x00\x90\x14\x0f\xfc\x97\x72\xf3\xc6\x7f\x00\xfc\x0d\x91\xe4\x07\ -\x58\x63\x81\xe3\x00\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ -\x82\ -\x00\x00\x01\x4f\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x04\x00\x00\x00\xfd\x0b\x31\x0c\ -\x00\x00\x01\x16\x49\x44\x41\x54\x78\x01\xed\x96\x4b\x4a\x03\x41\ -\x14\x45\xcf\x20\x66\x1a\x14\x5d\x81\x26\xad\x7b\x08\x82\x38\xd0\ -\x6d\x88\xe0\x46\x14\x07\xe2\x36\x32\x51\x83\x9a\x55\x28\x22\xb8\ -\x03\x23\x22\x0e\x84\x56\xb4\x03\x7e\xba\x53\x4a\xf3\x28\x32\x10\ -\x2c\x0b\xee\x24\xd4\x39\xe3\xcb\x85\xa2\xea\xbd\x22\x31\x85\x24\ -\x12\x1d\x4e\xc8\x29\xa9\xbc\xe3\x09\xdd\x2f\x8e\x18\xb0\x4c\x20\ -\x19\xcf\xb8\x08\x5f\x58\x21\x88\x33\x5c\xa4\x37\x34\x09\xe0\x15\ -\x17\xed\x21\x01\x38\xf3\x3f\xf4\x2c\x33\x66\x5d\x53\xd0\x62\x68\ -\xa9\x07\xe6\x14\x05\xb0\x4a\x65\xb9\xbe\xa6\x00\xf6\x7d\x72\x5b\ -\x53\x30\xc3\x95\x25\x0b\x96\x14\x05\xd0\xa1\xb0\xec\x25\x0d\x45\ -\x01\xec\xf8\xf4\x9e\xa6\x00\xff\x4c\x2b\xba\x9a\x82\x79\x1e\x2d\ -\x3f\xa4\xa5\x28\x80\x0d\x3f\x10\x7b\x9a\x82\x4d\x6d\xc1\x82\x3f\ -\xa2\x5b\xcd\x11\x9d\x5b\xba\xa4\xab\xbd\xa6\xbb\x9a\x87\x36\xb2\ -\xec\x05\x0d\xe5\xa8\x78\x63\x51\x3b\xec\xb6\xb4\xe3\xfa\x58\xb3\ -\x70\xee\x2c\x75\xcf\xac\x72\x65\x56\xac\xf1\x27\x05\x2e\xda\x03\ -\x02\x18\xe0\x22\xbd\xa6\x49\x00\x19\x39\x2e\xc2\x9c\x8c\x40\xda\ -\x1c\xf1\xc4\x7b\xed\x47\xed\x67\xed\xd7\x8f\x65\xed\xc4\x87\xd2\ -\x6e\xfe\x29\x6d\x12\x89\xc4\x54\xf3\x0d\x0a\x7f\x93\xd6\xf9\xe7\ -\x0c\x36\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x04\xa3\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xd6\xd8\xd4\x4f\x58\x32\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x04\x35\x49\x44\x41\x54\x58\xc3\xe5\ -\x97\xcd\x8f\x54\x45\x14\xc5\x7f\xb7\xea\xd6\x7b\xaf\xdb\x6e\xc7\ -\xf9\x40\x9d\x89\x46\x4d\x34\x99\x44\x8d\x1a\x48\x98\xc4\x8c\x1f\ -\x1b\xfe\x02\x4c\x5c\xf1\x07\x18\x16\x2e\x4d\x5c\x6b\x58\xc3\x8e\ -\xc4\x8d\x1b\x17\xce\x82\x68\x74\x41\x5c\x18\x0d\xe2\xc4\xc6\x00\ -\x3d\x60\x50\x51\x19\x60\x02\xa2\x0e\x0c\x83\xd3\xfd\x5e\xf7\x94\ -\x8b\xaa\xee\xf9\x60\xe6\x0d\x84\x51\x16\x56\x52\xa9\xce\x7b\xb7\ -\xeb\x9e\x3a\xf7\xd4\xa9\x7a\xea\xbd\xe7\x7e\x36\xe5\x3e\xb7\x3e\ -\x80\x5d\xbb\x76\xbd\x03\xec\xfd\x8f\xf2\x4e\x35\x1a\x8d\x03\xeb\ -\x19\xd8\xbb\xef\xbd\xa3\x3b\x1f\x1f\x76\x00\x9c\x3c\x3a\xcf\xcc\ -\x97\x37\x58\x9c\xef\xdc\x53\xa6\xda\xa0\xf2\xdc\x6b\x03\xbc\xb8\ -\x67\x10\x80\x8b\x7f\x16\x7c\xf8\xee\x1e\x80\xdb\x00\x70\xfc\xec\ -\x1c\xdf\x3f\x30\x04\x78\x2e\xfd\xb8\xc0\xfe\xb7\xce\x6f\xcb\x72\ -\x0f\x1d\x79\x9a\x0b\x23\x96\xd3\x9f\x1f\x64\xfc\xd5\x7d\x9b\x6b\ -\x40\x45\xb0\x16\x40\x78\x70\x2c\x23\xcb\xb2\x6d\x01\x30\x30\x96\ -\x61\x8d\x50\x1b\x7c\x14\x23\x25\x22\x14\x2b\xd8\x18\x91\xd5\x95\ -\x73\xe7\xce\x83\x2a\xb8\x04\xd2\x14\xb2\x0c\xd2\x2c\x8c\x49\x0a\ -\x49\x12\xde\x77\x3a\x90\xe7\x90\xb7\xa1\xd5\x82\x76\x2b\x8e\x6d\ -\x28\x72\xb2\xfa\x38\xd6\x0a\xe3\xaf\xbc\x49\x6b\xf1\xfa\xe6\x00\ -\xac\x15\xac\x15\x04\xb0\x46\xd8\xbd\x7b\xe7\x16\x6b\xeb\x86\xae\ -\x80\x5a\xa8\x56\x81\xea\x6d\x51\x8d\xaf\x04\xb5\x82\xf7\xa0\xa6\ -\x84\x01\x67\x05\x35\x82\x08\xa8\x0a\x95\x2c\xc3\x23\x20\x1e\x08\ -\xc0\xf0\x1e\x2f\x02\xde\x23\x12\x26\x15\x7c\x88\x23\xc4\x21\x1e\ -\x3c\x21\x5e\x40\x4d\x58\x18\x40\xd7\x4a\x89\x06\xac\xa0\xda\x63\ -\x00\x9a\x33\xbf\x05\x8a\x53\x07\x69\x02\x95\x04\xb2\x34\xf6\x04\ -\x12\x07\x4e\xa1\xe8\x40\x5e\x40\x2b\x8f\xbd\x05\x4b\x39\xb4\x73\ -\xc8\x0b\x54\x87\x71\x3d\x00\x2a\xe5\x25\x70\x31\x40\xd5\x30\x39\ -\xf9\xd2\xd6\x0a\xf3\x3e\xd0\xaf\x16\xaa\x1b\x8b\xf6\xd8\x27\x61\ -\x61\xbd\x1c\x25\x25\x20\x00\xf0\x81\x8d\x34\x4d\xa3\x3a\xc3\xb3\ -\x98\x11\x89\x6c\x07\xda\x63\x09\x56\x98\x5f\x29\x46\xfc\x61\xcd\ -\x72\x7f\x61\x1d\x2d\xd1\x80\x3a\x09\x54\x49\x18\x4f\x34\x2f\xe0\ -\x9d\x85\xc4\x21\x89\xc3\x67\x09\x92\x69\xd8\x11\x89\xe2\x13\x87\ -\x58\x8b\xef\x76\x91\xbc\x80\xbc\x03\xed\x02\xdf\x6a\x23\xed\x02\ -\xf2\x02\x9f\x77\x50\x1d\x45\xd5\x20\x78\x3a\xeb\x54\x78\x9b\x06\ -\x9c\x33\x78\x0f\x03\x8f\x24\xbc\xfe\xf2\xf3\x77\x68\xe8\x36\x68\ -\xa4\xbe\xf1\xeb\xc6\xfc\xdf\xb1\x04\x52\x5e\x82\x44\x4d\x5f\x84\ -\x8f\x0d\xa5\x38\xe7\xb6\xc5\x88\x9e\x18\x4b\xb9\x76\xb3\x03\x08\ -\x9d\x52\x11\xaa\x90\xb8\x50\xef\x5a\xc5\x30\x7d\xb1\xcb\x40\xc5\ -\xb0\x0e\xf4\x26\xad\x57\xf9\x55\x2e\xe1\xe1\xc6\xd2\x32\xf5\xcc\ -\x70\x7d\xc9\x84\x2d\xe9\x4a\x19\x10\x9c\x1a\xc0\x73\xe5\x66\x97\ -\x2b\x37\xbb\xac\x51\x57\x3f\xd7\xaa\x64\x7e\xc5\x27\xa2\x29\xac\ -\x05\x15\xc3\x9c\x0b\xb5\x77\xa6\x6c\x17\xa8\xc1\xa9\x20\xc8\x1a\ -\x35\xaf\x9b\x35\x1a\x8f\x59\x31\x9e\xfe\x7b\xe9\xef\x14\x00\xf1\ -\x82\xef\x9b\x58\x30\x2b\x57\x56\x02\x55\x21\xd1\x90\xfc\xe7\x53\ -\xdf\xf2\xeb\x99\x13\x2c\x2d\xde\xb8\xa7\xfa\x57\x6a\x03\x3c\xf5\ -\xec\x4e\x9e\x79\x61\x02\x0f\xa8\x33\x5b\x31\x10\x03\x7c\x87\xf7\ -\xf7\xbf\xc1\xc2\xc2\x02\xb7\x6e\xdd\xa2\x28\x0a\x44\x04\x6b\x2d\ -\xd6\x5a\x54\x15\x55\xc5\x39\x87\xaa\x62\xad\xc5\x98\xf0\xdf\xe5\ -\xe5\x65\xf2\x3c\xef\xf7\x23\xcd\xf9\xb8\xf2\x2d\x18\x70\x56\x50\ -\x17\x18\xdc\x31\x3a\xb6\x72\x4f\x38\x7e\x9c\xe9\xe9\x69\x8c\x31\ -\x78\xef\x99\x98\x98\x60\x72\x72\xf2\x8e\x59\xd8\x31\x3a\xd6\xdf\ -\x86\xae\xd4\x09\x55\x70\x36\xac\xa2\x56\xaf\xf7\x6b\x39\x33\x33\ -\xc3\xd0\xd0\x10\xd6\x5a\xbc\xf7\x34\x9b\xcd\xbb\x02\x50\xab\xd7\ -\x70\xd1\x88\xb4\xd4\x88\x14\x9c\x0b\x27\x5c\xa0\x2a\x00\xa8\x56\ -\xab\x64\x59\xd6\xa7\xb8\x37\xde\x69\x73\x1a\xa9\x17\x41\x4b\xad\ -\x38\x1e\xc7\xbd\x23\xb4\xd7\x8c\x31\x88\x44\xdf\x8f\x3a\xb8\xab\ -\x9b\xaf\x35\xa8\x0d\xf3\xf6\x18\x2e\x3d\x8e\x83\x29\x6d\xe3\xd5\ -\xdb\x12\xa9\xf7\xe5\x56\x6c\xad\xf4\x91\x0e\x8e\x0c\xc3\xf2\xef\ -\xdb\x02\xe0\xa1\x91\x61\xd4\xc2\xb5\x2b\x97\x59\x9c\xbf\xbe\x05\ -\x03\x36\xf8\xc0\x60\xad\x02\x0b\xdb\xc3\xc0\x50\xad\xc2\xec\xc5\ -\x4b\x9c\xfd\xee\x1b\xce\x9f\x9c\x9e\x03\xa6\x36\x04\x60\x24\x5e\ -\x4a\x05\x12\x0b\xed\x91\x27\xa9\x3d\x0c\x6f\x1f\x38\xc8\x66\xc7\ -\x81\x27\x3a\xf1\x2a\xe7\x35\x1e\x32\x81\x14\x28\xba\x70\xf9\xea\ -\x55\xce\x34\x8e\xd1\xfc\xfa\x8b\xb9\xd9\x1f\x4e\x1d\x02\x0e\x6f\ -\x08\xe0\xb3\x8f\x3e\xe0\xa7\xd3\x27\x57\x99\xe9\xda\xa3\x86\x55\ -\xe6\xbb\x1e\x04\x1b\x3c\x5f\x1d\x6f\x7c\x77\xee\x8f\xd9\x5f\x0e\ -\x01\x87\x1b\x8d\xc6\x5f\x1b\x01\x98\x9a\xfe\xf4\xe3\x7f\xf5\x73\ -\x6c\x7d\xf2\x35\x00\xe2\xb7\xda\x81\xff\xdd\xd7\xf1\x3f\x4d\xf0\ -\x4b\xb9\xe8\x46\x89\xaf\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ -\x60\x82\ -\x00\x00\x0b\x73\ -\x73\ -\x61\x76\x65\x41\x73\x44\x65\x74\x61\x69\x6c\x3d\xe5\xb0\x87\xe6\ -\xa0\x87\xe7\xad\xbe\xe4\xbf\x9d\xe5\xad\x98\xe5\x88\xb0\xe5\x85\ -\xb6\xe4\xbb\x96\xe6\x96\x87\xe4\xbb\xb6\x0d\x0a\x63\x68\x61\x6e\ -\x67\x65\x53\x61\x76\x65\x44\x69\x72\x3d\xe6\x94\xb9\xe5\x8f\x98\ -\xe5\xad\x98\xe6\x94\xbe\xe7\x9b\xae\xe5\xbd\x95\x0d\x0a\x6f\x70\ -\x65\x6e\x46\x69\x6c\x65\x3d\xe6\x89\x93\xe5\xbc\x80\xe6\x96\x87\ -\xe4\xbb\xb6\x0d\x0a\x73\x68\x61\x70\x65\x4c\x69\x6e\x65\x43\x6f\ -\x6c\x6f\x72\x44\x65\x74\x61\x69\x6c\x3d\xe6\x9b\xb4\xe6\x94\xb9\ -\xe7\xba\xbf\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0d\x0a\x72\x65\ -\x73\x65\x74\x41\x6c\x6c\x3d\xe9\x87\x8d\xe7\xbd\xae\xe7\x95\x8c\ -\xe9\x9d\xa2\xe4\xb8\x8e\xe4\xbf\x9d\xe5\xad\x98\xe5\x9c\xb0\xe5\ -\x9d\x80\x0d\x0a\x63\x72\x74\x42\x6f\x78\x3d\xe7\x9f\xa9\xe5\xbd\ -\xa2\xe6\xa0\x87\xe6\xb3\xa8\x0d\x0a\x63\x72\x74\x42\x6f\x78\x44\ -\x65\x74\x61\x69\x6c\x3d\xe5\x88\x9b\xe5\xbb\xba\xe4\xb8\x80\xe4\ -\xb8\xaa\xe6\x96\xb0\xe7\x9a\x84\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\ -\x64\x75\x70\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\xe5\xa4\x8d\ -\xe5\x88\xb6\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\x76\x65\x72\x69\x66\ -\x79\x49\x6d\x67\x3d\xe9\xaa\x8c\xe8\xaf\x81\xe5\x9b\xbe\xe5\x83\ -\x8f\x0d\x0a\x7a\x6f\x6f\x6d\x69\x6e\x44\x65\x74\x61\x69\x6c\x3d\ -\xe6\x94\xbe\xe5\xa4\xa7\x0d\x0a\x76\x65\x72\x69\x66\x79\x49\x6d\ -\x67\x44\x65\x74\x61\x69\x6c\x3d\xe9\xaa\x8c\xe8\xaf\x81\xe5\x9b\ -\xbe\xe5\x83\x8f\x0d\x0a\x73\x61\x76\x65\x44\x65\x74\x61\x69\x6c\ -\x3d\xe4\xbf\x9d\xe5\xad\x98\xe6\xa0\x87\xe7\xad\xbe\xe6\x96\x87\ -\xe4\xbb\xb6\x0d\x0a\x6f\x70\x65\x6e\x46\x69\x6c\x65\x44\x65\x74\ -\x61\x69\x6c\x3d\xe6\x89\x93\xe5\xbc\x80\xe5\x9b\xbe\xe5\x83\x8f\ -\xe6\x96\x87\xe4\xbb\xb6\x0d\x0a\x66\x69\x74\x57\x69\x64\x74\x68\ -\x44\x65\x74\x61\x69\x6c\x3d\xe8\xb0\x83\xe6\x95\xb4\xe5\xae\xbd\ -\xe5\xba\xa6\xe9\x80\x82\xe5\xba\x94\xe5\x88\xb0\xe7\xaa\x97\xe5\ -\x8f\xa3\xe5\xae\xbd\xe5\xba\xa6\x0d\x0a\x74\x75\x74\x6f\x72\x69\ -\x61\x6c\x3d\x50\x61\x64\x64\x6c\x65\x4f\x43\x52\xe5\x9c\xb0\xe5\ -\x9d\x80\x0d\x0a\x65\x64\x69\x74\x4c\x61\x62\x65\x6c\x3d\xe7\xbc\ -\x96\xe8\xbe\x91\xe6\xa0\x87\xe7\xad\xbe\x0d\x0a\x6f\x70\x65\x6e\ -\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x44\x65\x74\x61\x69\x6c\ -\x3d\xe6\x89\x93\xe5\xbc\x80\xe6\xa0\x87\xe7\xad\xbe\xe6\x96\x87\ -\xe4\xbb\xb6\x0d\x0a\x71\x75\x69\x74\x3d\xe9\x80\x80\xe5\x87\xba\ -\x0d\x0a\x73\x68\x61\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\ -\x44\x65\x74\x61\x69\x6c\x3d\xe6\x9b\xb4\xe6\x94\xb9\xe5\xa1\xab\ -\xe5\x85\x85\xe9\xa2\x9c\xe8\x89\xb2\x0d\x0a\x63\x6c\x6f\x73\x65\ -\x43\x75\x72\x44\x65\x74\x61\x69\x6c\x3d\xe5\x85\xb3\xe9\x97\xad\ -\xe5\xbd\x93\xe5\x89\x8d\xe6\x96\x87\xe4\xbb\xb6\x0d\x0a\x63\x6c\ -\x6f\x73\x65\x43\x75\x72\x3d\xe5\x85\xb3\xe9\x97\xad\xe6\x96\x87\ -\xe4\xbb\xb6\x0d\x0a\x64\x65\x6c\x65\x74\x65\x49\x6d\x67\x3d\xe5\ -\x88\xa0\xe9\x99\xa4\xe5\x9b\xbe\xe5\x83\x8f\x0d\x0a\x64\x65\x6c\ -\x65\x74\x65\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\xe5\x88\xa0\ -\xe9\x99\xa4\xe5\xbd\x93\xe5\x89\x8d\xe5\x9b\xbe\xe5\x83\x8f\x0d\ -\x0a\x66\x69\x74\x57\x69\x6e\x3d\xe8\xb0\x83\xe6\x95\xb4\xe5\x88\ -\xb0\xe7\xaa\x97\xe5\x8f\xa3\xe5\xa4\xa7\xe5\xb0\x8f\x0d\x0a\x64\ -\x65\x6c\x42\x6f\x78\x3d\xe5\x88\xa0\xe9\x99\xa4\xe9\x80\x89\xe6\ -\x8b\xa9\xe7\x9a\x84\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\x62\x6f\x78\ -\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x44\x65\x74\x61\x69\x6c\x3d\ -\xe9\x80\x89\xe6\x8b\xa9\xe7\xba\xbf\xe6\xa1\x86\xe9\xa2\x9c\xe8\ -\x89\xb2\x0d\x0a\x6f\x72\x69\x67\x69\x6e\x61\x6c\x73\x69\x7a\x65\ -\x3d\xe5\x8e\x9f\xe5\xa7\x8b\xe5\xa4\xa7\xe5\xb0\x8f\x0d\x0a\x72\ -\x65\x73\x65\x74\x41\x6c\x6c\x44\x65\x74\x61\x69\x6c\x3d\xe9\x87\ -\x8d\xe7\xbd\xae\xe6\x89\x80\xe6\x9c\x89\xe8\xae\xbe\xe5\xae\x9a\ -\x0d\x0a\x7a\x6f\x6f\x6d\x6f\x75\x74\x44\x65\x74\x61\x69\x6c\x3d\ -\xe6\x94\xbe\xe5\xa4\xa7\xe7\x94\xbb\xe9\x9d\xa2\x0d\x0a\x73\x61\ -\x76\x65\x3d\xe7\xa1\xae\xe8\xae\xa4\x0d\x0a\x73\x61\x76\x65\x41\ -\x73\x3d\xe5\x8f\xa6\xe5\xad\x98\xe4\xb8\xba\x0d\x0a\x66\x69\x74\ -\x57\x69\x6e\x44\x65\x74\x61\x69\x6c\x3d\xe7\xbc\xa9\xe6\x94\xbe\ -\xe5\x88\xb0\xe5\xbd\x93\xe5\x89\x8d\xe7\xaa\x97\xe5\x8f\xa3\xe5\ -\xa4\xa7\xe5\xb0\x8f\x0d\x0a\x6f\x70\x65\x6e\x44\x69\x72\x3d\xe6\ -\x89\x93\xe5\xbc\x80\xe7\x9b\xae\xe5\xbd\x95\x0d\x0a\x63\x6f\x70\ -\x79\x50\x72\x65\x76\x42\x6f\x75\x6e\x64\x69\x6e\x67\x3d\xe5\xa4\ -\x8d\xe5\x88\xb6\xe5\xbd\x93\xe5\x89\x8d\xe5\x9b\xbe\xe5\x83\x8f\ -\xe4\xb8\xad\xe7\x9a\x84\xe4\xb8\x8a\xe4\xb8\x80\xe4\xb8\xaa\xe8\ -\xbe\xb9\xe7\x95\x8c\xe6\xa1\x86\x0d\x0a\x73\x68\x6f\x77\x48\x69\ -\x64\x65\x3d\xe6\x98\xbe\xe7\xa4\xba\x2f\xe9\x9a\x90\xe8\x97\x8f\ -\xe6\xa0\x87\xe7\xad\xbe\x0d\x0a\x63\x68\x61\x6e\x67\x65\x53\x61\ -\x76\x65\x46\x6f\x72\x6d\x61\x74\x3d\xe6\x9b\xb4\xe6\x94\xb9\xe5\ -\xad\x98\xe5\x82\xa8\xe6\xa0\xbc\xe5\xbc\x8f\x0d\x0a\x73\x68\x61\ -\x70\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3d\xe5\xa1\xab\xe5\ -\x85\x85\xe9\xa2\x9c\xe8\x89\xb2\x0d\x0a\x71\x75\x69\x74\x41\x70\ -\x70\x3d\xe9\x80\x80\xe5\x87\xba\xe7\xa8\x8b\xe5\xba\x8f\x0d\x0a\ -\x64\x75\x70\x42\x6f\x78\x3d\xe5\xa4\x8d\xe5\x88\xb6\xe5\x8c\xba\ -\xe5\x9d\x97\x0d\x0a\x64\x65\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\ -\x6c\x3d\xe5\x88\xa0\xe9\x99\xa4\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\ -\x7a\x6f\x6f\x6d\x69\x6e\x3d\xe6\x94\xbe\xe5\xa4\xa7\xe7\x94\xbb\ -\xe9\x9d\xa2\x0d\x0a\x69\x6e\x66\x6f\x3d\xe4\xbf\xa1\xe6\x81\xaf\ -\x0d\x0a\x6f\x70\x65\x6e\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\ -\x3d\xe5\xbc\x80\xe5\x90\xaf\xe6\xa0\x87\xe7\xad\xbe\x0d\x0a\x70\ -\x72\x65\x76\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\xe4\xb8\x8a\ -\xe4\xb8\x80\xe4\xb8\xaa\xe5\x9b\xbe\xe5\x83\x8f\x0d\x0a\x66\x69\ -\x74\x57\x69\x64\x74\x68\x3d\xe7\xbc\xa9\xe6\x94\xbe\xe5\x88\xb0\ -\xe5\xbd\x93\xe5\x89\x8d\xe7\x94\xbb\xe9\x9d\xa2\xe5\xae\xbd\xe5\ -\xba\xa6\x0d\x0a\x7a\x6f\x6f\x6d\x6f\x75\x74\x3d\xe7\xbc\xa9\xe5\ -\xb0\x8f\xe7\x94\xbb\xe9\x9d\xa2\x0d\x0a\x63\x68\x61\x6e\x67\x65\ -\x53\x61\x76\x65\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x44\ -\x69\x72\x3d\xe6\x9b\xb4\xe6\x94\xb9\xe4\xbf\x9d\xe5\xad\x98\xe6\ -\xa0\x87\xe7\xad\xbe\xe6\x96\x87\xe4\xbb\xb6\xe7\x9a\x84\xe9\xa2\ -\x84\xe8\xae\xbe\xe7\x9b\xae\xe5\xbd\x95\x0d\x0a\x6e\x65\x78\x74\ -\x49\x6d\x67\x44\x65\x74\x61\x69\x6c\x3d\xe4\xb8\x8b\xe4\xb8\x80\ -\xe4\xb8\xaa\xe5\x9b\xbe\xe5\x83\x8f\x0d\x0a\x6f\x72\x69\x67\x69\ -\x6e\x61\x6c\x73\x69\x7a\x65\x44\x65\x74\x61\x69\x6c\x3d\xe6\x94\ -\xbe\xe5\xa4\xa7\xe5\x88\xb0\xe5\x8e\x9f\xe5\xa7\x8b\xe5\xa4\xa7\ -\xe5\xb0\x8f\x0d\x0a\x70\x72\x65\x76\x49\x6d\x67\x3d\xe4\xb8\x8a\ -\xe4\xb8\x80\xe5\xbc\xa0\x0d\x0a\x74\x75\x74\x6f\x72\x69\x61\x6c\ -\x44\x65\x74\x61\x69\x6c\x3d\xe6\x98\xbe\xe7\xa4\xba\xe7\xa4\xba\ -\xe8\x8c\x83\xe5\x86\x85\xe5\xae\xb9\x0d\x0a\x73\x68\x61\x70\x65\ -\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\xe5\xbd\xa2\xe7\x8a\xb6\ -\xe7\xba\xbf\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0d\x0a\x62\x6f\ -\x78\x4c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x3d\xe5\x8c\xba\xe5\x9d\ -\x97\xe7\xba\xbf\xe6\x9d\xa1\xe9\xa2\x9c\xe8\x89\xb2\x0d\x0a\x65\ -\x64\x69\x74\x4c\x61\x62\x65\x6c\x44\x65\x74\x61\x69\x6c\x3d\xe4\ -\xbf\xae\xe6\x94\xb9\xe5\xbd\x93\xe5\x89\x8d\xe6\x89\x80\xe9\x80\ -\x89\xe7\x9a\x84\xe5\x8c\xba\xe5\x9d\x97\xe9\xa2\x9c\xe8\x89\xb2\ -\x0d\x0a\x6e\x65\x78\x74\x49\x6d\x67\x3d\xe4\xb8\x8b\xe4\xb8\x80\ -\xe5\xbc\xa0\x0d\x0a\x75\x73\x65\x44\x65\x66\x61\x75\x6c\x74\x4c\ -\x61\x62\x65\x6c\x3d\xe4\xbd\xbf\xe7\x94\xa8\xe9\xa2\x84\xe8\xae\ -\xbe\xe6\xa0\x87\xe7\xad\xbe\x0d\x0a\x75\x73\x65\x44\x69\x66\x66\ -\x69\x63\x75\x6c\x74\x3d\xe6\x9c\x89\xe9\x9a\xbe\xe5\xba\xa6\xe7\ -\x9a\x84\x0d\x0a\x62\x6f\x78\x4c\x61\x62\x65\x6c\x54\x65\x78\x74\ -\x3d\xe5\x8c\xba\xe5\x9d\x97\xe7\x9a\x84\xe6\xa0\x87\xe7\xad\xbe\ -\x0d\x0a\x6c\x61\x62\x65\x6c\x73\x3d\xe6\xa0\x87\xe7\xad\xbe\x0d\ -\x0a\x61\x75\x74\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\x3d\xe8\x87\ -\xaa\xe5\x8a\xa8\xe4\xbf\x9d\xe5\xad\x98\xe6\xa8\xa1\xe5\xbc\x8f\ -\x0d\x0a\x73\x69\x6e\x67\x6c\x65\x43\x6c\x73\x4d\x6f\x64\x65\x3d\ -\xe5\x8d\x95\xe4\xb8\x80\xe7\xb1\xbb\xe5\x88\xab\xe6\xa8\xa1\xe5\ -\xbc\x8f\x0d\x0a\x64\x69\x73\x70\x6c\x61\x79\x4c\x61\x62\x65\x6c\ -\x3d\xe6\x98\xbe\xe7\xa4\xba\xe7\xb1\xbb\xe5\x88\xab\x0d\x0a\x66\ -\x69\x6c\x65\x4c\x69\x73\x74\x3d\xe6\x96\x87\xe4\xbb\xb6\xe5\x88\ -\x97\xe8\xa1\xa8\x0d\x0a\x66\x69\x6c\x65\x73\x3d\xe6\x96\x87\xe4\ -\xbb\xb6\x0d\x0a\x61\x64\x76\x61\x6e\x63\x65\x64\x4d\x6f\x64\x65\ -\x3d\xe4\xb8\x93\xe5\xae\xb6\xe6\xa8\xa1\xe5\xbc\x8f\x0d\x0a\x61\ -\x64\x76\x61\x6e\x63\x65\x64\x4d\x6f\x64\x65\x44\x65\x74\x61\x69\ -\x6c\x3d\xe5\x88\x87\xe6\x8d\xa2\xe5\x88\xb0\xe4\xb8\x93\xe5\xae\ -\xb6\xe6\xa8\xa1\xe5\xbc\x8f\x0d\x0a\x73\x68\x6f\x77\x41\x6c\x6c\ -\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\xe6\x98\xbe\xe7\xa4\xba\ -\xe6\x89\x80\xe6\x9c\x89\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\x68\x69\ -\x64\x65\x41\x6c\x6c\x42\x6f\x78\x44\x65\x74\x61\x69\x6c\x3d\xe9\ -\x9a\x90\xe8\x97\x8f\xe6\x89\x80\xe6\x9c\x89\xe5\x8c\xba\xe5\x9d\ -\x97\x0d\x0a\x61\x6e\x6e\x6f\x50\x61\x6e\x65\x6c\x3d\xe6\xa0\x87\ -\xe6\xb3\xa8\xe9\x9d\xa2\xe6\x9d\xbf\x0d\x0a\x61\x6e\x6e\x6f\x3d\ -\xe6\xa0\x87\xe6\xb3\xa8\x0d\x0a\x61\x64\x64\x4e\x65\x77\x42\x62\ -\x6f\x78\x3d\xe6\x96\xb0\xe6\xa1\x86\x0d\x0a\x72\x65\x4c\x61\x62\ -\x65\x6c\x3d\xe9\x87\x8d\xe6\xa0\x87\xe6\xb3\xa8\x0d\x0a\x63\x68\ -\x6f\x6f\x73\x65\x6d\x6f\x64\x65\x6c\x3d\xe9\x80\x89\xe6\x8b\xa9\ -\xe6\xa8\xa1\xe5\x9e\x8b\x0d\x0a\x74\x69\x70\x63\x68\x6f\x6f\x73\ -\x65\x6d\x6f\x64\x65\x6c\x3d\xe9\x80\x89\xe6\x8b\xa9\x4f\x43\x52\ -\xe6\xa8\xa1\xe5\x9e\x8b\x0d\x0a\x49\x6d\x61\x67\x65\x52\x65\x73\ -\x69\x7a\x65\x3d\xe5\x9b\xbe\xe7\x89\x87\xe7\xbc\xa9\xe6\x94\xbe\ -\x0d\x0a\x49\x52\x3d\xe5\x9b\xbe\xe7\x89\x87\xe7\xbc\xa9\xe6\x94\ -\xbe\x0d\x0a\x61\x75\x74\x6f\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\ -\x6f\x6e\x3d\xe8\x87\xaa\xe5\x8a\xa8\xe6\xa0\x87\xe6\xb3\xa8\x0d\ -\x0a\x72\x65\x52\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x3d\xe9\ -\x87\x8d\xe6\x96\xb0\xe8\xaf\x86\xe5\x88\xab\x0d\x0a\x6d\x66\x69\ -\x6c\x65\x3d\xe6\x96\x87\xe4\xbb\xb6\x0d\x0a\x6d\x65\x64\x69\x74\ -\x3d\xe7\xbc\x96\xe8\xbe\x91\x0d\x0a\x6d\x76\x69\x65\x77\x3d\xe8\ -\xa7\x86\xe5\x9b\xbe\x0d\x0a\x6d\x68\x65\x6c\x70\x3d\xe5\xb8\xae\ -\xe5\x8a\xa9\x0d\x0a\x69\x63\x6f\x6e\x4c\x69\x73\x74\x3d\xe7\xbc\ -\xa9\xe7\x95\xa5\xe5\x9b\xbe\x0d\x0a\x64\x65\x74\x65\x63\x74\x69\ -\x6f\x6e\x42\x6f\x78\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\xe6\xa3\ -\x80\xe6\xb5\x8b\xe6\xa1\x86\xe4\xbd\x8d\xe7\xbd\xae\x0d\x0a\x72\ -\x65\x63\x6f\x67\x6e\x69\x74\x69\x6f\x6e\x52\x65\x73\x75\x6c\x74\ -\x3d\xe8\xaf\x86\xe5\x88\xab\xe7\xbb\x93\xe6\x9e\x9c\x0d\x0a\x63\ -\x72\x65\x61\x74\x50\x6f\x6c\x79\x67\x6f\x6e\x3d\xe5\x9b\x9b\xe7\ -\x82\xb9\xe6\xa0\x87\xe6\xb3\xa8\x0d\x0a\x64\x72\x61\x77\x53\x71\ -\x75\x61\x72\x65\x73\x3d\xe6\xad\xa3\xe6\x96\xb9\xe5\xbd\xa2\xe6\ -\xa0\x87\xe6\xb3\xa8\x0d\x0a\x73\x61\x76\x65\x52\x65\x63\x3d\xe4\ -\xbf\x9d\xe5\xad\x98\xe8\xaf\x86\xe5\x88\xab\xe7\xbb\x93\xe6\x9e\ -\x9c\x0d\x0a\x74\x65\x6d\x70\x4c\x61\x62\x65\x6c\x3d\xe5\xbe\x85\ -\xe8\xaf\x86\xe5\x88\xab\x0d\x0a\x73\x74\x65\x70\x73\x3d\xe6\x93\ -\x8d\xe4\xbd\x9c\xe6\xad\xa5\xe9\xaa\xa4\x0d\x0a\x63\x68\x6f\x73\ -\x65\x4d\x6f\x64\x65\x6c\x4c\x67\x3d\xe9\x80\x89\xe6\x8b\xa9\xe6\ -\xa8\xa1\xe5\x9e\x8b\xe8\xaf\xad\xe8\xa8\x80\x0d\x0a\x63\x61\x6e\ -\x63\x65\x6c\x3d\xe5\x8f\x96\xe6\xb6\x88\x0d\x0a\x6f\x6b\x3d\xe7\ -\xa1\xae\xe8\xae\xa4\x0d\x0a\x61\x75\x74\x6f\x6c\x61\x62\x65\x6c\ -\x69\x6e\x67\x3d\xe8\x87\xaa\xe5\x8a\xa8\xe6\xa0\x87\xe6\xb3\xa8\ -\xe4\xb8\xad\x0d\x0a\x68\x69\x64\x65\x42\x6f\x78\x3d\xe9\x9a\x90\ -\xe8\x97\x8f\xe6\x89\x80\xe6\x9c\x89\xe6\xa0\x87\xe6\xb3\xa8\x0d\ -\x0a\x73\x68\x6f\x77\x42\x6f\x78\x3d\xe6\x98\xbe\xe7\xa4\xba\xe6\ -\x89\x80\xe6\x9c\x89\xe6\xa0\x87\xe6\xb3\xa8\x0d\x0a\x73\x61\x76\ -\x65\x4c\x61\x62\x65\x6c\x3d\xe4\xbf\x9d\xe5\xad\x98\xe6\xa0\x87\ -\xe8\xae\xb0\xe7\xbb\x93\xe6\x9e\x9c\x0d\x0a\x73\x69\x6e\x67\x6c\ -\x65\x52\x65\x3d\xe9\x87\x8d\xe8\xaf\x86\xe5\x88\xab\xe6\xad\xa4\ -\xe5\x8c\xba\xe5\x9d\x97\x0d\x0a\x6c\x61\x62\x65\x6c\x44\x69\x61\ -\x6c\x6f\x67\x4f\x70\x74\x69\x6f\x6e\x3d\xe5\xbc\xb9\xe5\x87\xba\ -\xe6\xa0\x87\xe8\xae\xb0\xe8\xbe\x93\xe5\x85\xa5\xe6\xa1\x86\x0d\ -\x0a\x75\x6e\x64\x6f\x3d\xe6\x92\xa4\xe9\x94\x80\x0d\x0a\x75\x6e\ -\x64\x6f\x4c\x61\x73\x74\x50\x6f\x69\x6e\x74\x3d\xe6\x92\xa4\xe9\ -\x94\x80\xe4\xb8\x8a\xe4\xb8\xaa\xe7\x82\xb9\x0d\x0a\x61\x75\x74\ -\x6f\x53\x61\x76\x65\x4d\x6f\x64\x65\x3d\xe8\x87\xaa\xe5\x8a\xa8\ -\xe4\xbf\x9d\xe5\xad\x98\xe6\xa0\x87\xe8\xae\xb0\xe7\xbb\x93\xe6\ -\x9e\x9c\ -\x00\x00\x0a\xfb\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ -\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xaf\xc8\x37\x05\x8a\xe9\ -\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\ -\x00\x41\x64\x6f\x62\x65\x20\x49\x6d\x61\x67\x65\x52\x65\x61\x64\ -\x79\x71\xc9\x65\x3c\x00\x00\x0a\x8d\x49\x44\x41\x54\x78\xda\xed\ -\x9a\x5d\x88\x5d\x57\x15\xc7\x7f\x6b\xef\x73\xee\xbd\x93\x3b\x33\ -\x99\xc9\x57\x9b\x8f\x36\x4d\x93\xd2\x54\x6d\x5a\x8a\x6d\xb5\x05\ -\x5b\x29\x05\x5f\x0c\x54\x2a\x88\x2f\x16\x41\x6c\xc5\x22\x14\xd1\ -\x17\x1f\x7d\xb1\x42\xc5\x52\xf0\x31\x42\x5f\xaa\xd0\xaa\xd5\x46\ -\xb0\x54\x90\x52\xa5\x82\x6d\xac\xd4\xa4\x24\x4d\xd3\x4c\xcd\xe4\ -\xab\x99\x4e\x3a\xf7\xfb\x9c\xbd\xbc\x73\xcf\x3e\xb3\xe6\xce\x4c\ -\x26\x93\x20\x82\xe0\x86\x35\x7b\xdf\x7d\xf6\x39\x67\xfd\xd7\xfa\ -\xff\xd7\xde\x07\x26\x51\x55\xfe\x97\x5b\x02\xfc\xef\x03\x10\x79\ -\x8a\xb5\xb5\xfc\xa1\xc4\xcb\x63\xd5\x6a\xba\x03\xc8\x89\x2d\x68\ -\x61\x00\x22\x50\x49\x33\xfe\x33\x99\x4d\xc9\x73\x59\xfc\x2c\xdf\ -\x69\x77\x8f\x06\xe5\x19\xf0\x2f\xab\x3e\x71\x25\x19\xc8\x1f\xdf\ -\x7d\xcb\xe6\xa7\x1f\xf8\xfa\xbd\x8c\x6c\xdb\x04\x79\x00\x20\x00\ -\x93\x23\x30\x5e\x53\xb2\xe0\x09\xb3\x67\xd8\x5b\x3f\xc7\xf8\xfa\ -\x3a\x21\x5c\x1d\x08\x11\x41\xb3\x2e\x7f\x39\x1a\x98\x9d\xd8\xcb\ -\xba\x11\x45\x15\xbc\x17\x4e\xbf\x33\x7d\xcb\x6f\x7f\xf6\xda\xfe\ -\xe9\xa9\xd9\x87\x81\xe7\xd7\x08\x20\x4c\x8e\x8f\xd5\xbe\xbf\xff\ -\x07\x5f\xe4\xaf\xcd\x8d\xcc\x4e\x83\x77\x20\x02\x59\x80\xfb\x6f\ -\x84\x5d\x9b\x61\xb6\x05\xa2\x4d\x76\xef\xf2\x6c\xd9\xb2\x91\x3c\ -\x0f\x57\x0d\xc0\xd3\xe6\xc5\xd7\xcf\xf1\xf7\xc6\x04\xbb\x6e\x76\ -\x68\x0e\x12\x60\xd3\x67\x36\xf0\x8d\x1b\x37\xf0\xe4\x23\xbf\xfc\ -\xce\x95\x00\xd8\xba\xf3\xe6\x8d\x1b\x3f\x4c\x27\xf9\x60\x1a\xd6\ -\xa5\x10\x04\x5c\x04\xd0\x6a\x06\x2e\xce\xf6\xad\xe5\x48\xfb\xe3\ -\xe3\xc7\xa7\x39\x75\x6a\x06\xd5\xb5\x3b\xbc\xb8\xa9\x2a\xd5\xa4\ -\x47\xb3\x51\xa1\xa7\x4a\xde\xa5\x00\x20\x30\x7d\x1a\xee\xb8\x61\ -\x33\xdb\x77\xad\xdf\x7d\x25\x22\x76\xce\x3b\x51\x15\xd2\x04\x12\ -\x0f\x02\x88\x14\x96\xe7\xd0\x6a\x43\xb3\x6f\xa3\x99\x50\xab\xa5\ -\x7d\xab\xac\x49\x07\xaa\x90\xb8\x1c\xe7\x14\x80\x4e\xcf\x01\x8e\ -\x4a\x02\x3e\xf5\x88\x53\x9c\x03\x55\x7b\x67\xde\x13\x5c\xbf\x5d\ -\x02\x80\xae\xf8\x1a\x45\x0b\x87\x89\x4d\xcc\xba\x19\xcc\x35\xa1\ -\xd1\xb7\x8a\x08\xa3\xa3\x23\xd4\xeb\x97\xd7\x80\x77\x42\xb3\xd9\ -\xe2\xd5\x37\xdb\x9c\x9d\xad\xe2\x7d\xe0\xbe\xdb\x33\xb6\x5d\x33\ -\x89\xa7\x4b\x92\xe4\x08\x45\xa6\x03\x0c\x80\x10\x83\xa6\xfd\xb6\ -\x04\x40\xb8\x1e\xc2\x23\x95\x24\xdd\x87\x10\xcc\xf5\x3e\xe0\x2c\ -\x9d\x9c\x3a\xfe\x51\xda\x78\xfa\x20\x1f\xce\x05\x44\x73\x44\x0c\ -\xee\xc5\x54\x79\xd3\x05\x7a\xb9\x50\x91\x36\x7f\x5e\xdf\x23\x49\ -\xfc\xaa\x14\xf2\x3e\xe9\x9b\xa3\xd7\x47\x7f\xe8\x58\xc2\xe9\x8f\ -\x2a\x90\x2b\x9d\xaf\x55\x78\xf4\x9b\x5b\x48\x05\xbc\xef\x40\xa4\ -\x2a\xae\xe8\x15\x08\x5a\xf4\x18\x80\xb0\xaf\x3e\x9a\xbe\xf4\xa5\ -\x6f\xdd\xb3\x63\xfd\x9e\x6d\xe4\x99\xc2\x00\x25\xd4\x52\xd8\x54\ -\x87\x2c\x53\x5a\xb3\x0d\x76\x57\xa6\xd8\xbb\x7b\x23\xbd\xdc\xbc\ -\x53\x04\x0b\xb6\x90\x05\x59\x95\x3e\x89\x87\x43\x6f\x9f\xe7\xad\ -\xb9\xeb\x19\xdf\x38\xc2\xcd\x5e\x49\x12\x08\x9d\x0e\xbf\x3f\xf0\ -\x37\xce\x9d\x3e\xc4\x8f\x7f\x74\x7b\x7f\xae\x87\x8b\xdc\x77\x62\ -\x94\x55\x2d\x0c\x03\xa0\xdf\xdb\xff\xd8\xbd\x3b\xf2\x7b\x3e\xcd\ -\xab\xef\x81\x8f\x68\x73\x85\x1b\x46\xe1\xd6\x3d\xd0\xed\xc1\xdc\ -\xc5\x16\x7b\xea\x19\xfb\x6e\xbd\x9e\x5e\x16\xb8\xda\x56\x4d\x85\ -\x33\x33\xf0\xdc\xeb\x5b\xb9\xed\xb6\x71\x5a\xf1\x51\xa3\x75\xf8\ -\xea\x0f\xb7\xf2\xec\x77\x5f\xe0\xf0\xe1\x8f\x18\xa9\xd5\x91\x66\ -\x41\x9d\x10\x0c\xc0\xfc\x38\x2c\x06\x30\x3e\x56\xbd\x77\xc7\xdd\ -\x37\xf1\xe2\x3b\x40\x66\x25\x52\x81\x46\xaa\xcc\x5c\xc8\xe9\x76\ -\x85\x4e\x2b\x70\x6a\x76\x86\x6e\xa3\x49\x50\xae\xba\xa5\x89\x72\ -\xe6\x4c\x9b\x76\x03\xda\x2d\x90\xe8\xdc\xb9\x26\x4c\xec\x1c\x63\ -\xef\x5d\x3b\x78\xf7\xe8\x2c\xd5\xea\xfa\x02\x00\x0c\x51\x29\x2c\ -\xcd\x80\x38\xf1\x01\x47\xea\x20\xf8\x32\x03\x86\xb2\xdd\x86\x4e\ -\x57\xe9\x76\x20\xa9\x27\x54\xab\x09\x6b\x29\xf1\x0a\x78\x09\xa4\ -\x3e\x80\x40\x2f\x73\x04\x75\x03\x00\xe9\xa0\xc2\x14\xef\x02\x70\ -\xa5\x83\x01\x10\x8f\x13\x87\x4f\x04\x11\x5d\x46\xa1\x65\x00\x50\ -\x14\x8d\x0f\xb0\x85\xb8\xe8\x45\xb3\xad\x74\x3a\xd0\x6b\x07\xaa\ -\x1b\x52\xc6\xc6\x46\xc9\x83\x5e\x7e\x37\x0d\x3d\x0e\x1d\x99\xe1\ -\xd8\xe9\x75\x84\x1c\xf6\x6c\x6d\x72\xc7\x27\x26\xa9\x54\x52\xaa\ -\xb5\x1c\x89\x95\xad\x34\xca\x4a\xa3\x90\x24\x0e\xef\xbd\x55\x21\ -\x03\xb1\x1c\x80\x52\x4c\x98\xe3\x51\xf1\xf3\x16\x94\x76\x7b\xde\ -\xa0\xd7\x81\x4a\x9a\x32\x32\x92\x92\xe5\x97\x07\x90\x48\xce\x3f\ -\x4e\x8c\xf2\xcc\xef\x76\x41\x57\x79\x74\xff\x09\xee\xbf\xcb\x23\ -\x2e\x25\x4d\x93\x62\xc7\xb5\xa0\x45\x3f\x0a\x07\x7d\xe2\x48\xbc\ -\x8b\xd1\x37\x0a\x89\xb3\x35\x43\x65\x34\xa8\x21\x74\x0e\x9c\x3d\ -\x90\x56\x4b\x69\x77\x20\xeb\xea\xfc\x83\x63\xfa\x2f\x0f\x20\x75\ -\x09\xe2\x7a\xd0\x53\x00\x92\xf2\x5e\xef\x49\x13\xb7\xe0\x38\x62\ -\xef\x93\xe8\x4b\xe2\xdc\xe0\x5d\xc2\x30\x33\x5c\x14\xb1\x95\xd1\ -\xe8\x64\x1e\x86\x1f\x26\x18\xda\x66\x04\x90\x77\x75\x50\xdf\x2b\ -\x15\x8f\x64\x6b\x01\xe0\x71\x25\x27\xa4\x88\xea\xfc\xbd\x38\x4f\ -\x92\xfa\x21\xe7\x1c\x31\xe3\x14\xbe\x78\x97\x91\x38\xf3\x43\x82\ -\xe9\x64\x45\x0a\xe5\xc1\x68\x23\x25\x17\xc5\x32\xd0\x6a\x43\x18\ -\x54\x28\x5f\x6c\x52\xac\x01\x80\xf7\xf8\x52\xa5\x30\x18\x27\x49\ -\x01\x20\xf2\xdb\xa2\x8b\x05\x50\x81\x67\x9e\x0f\xf4\xb6\xd4\xd8\ -\x70\x8b\xd1\xcc\x00\xac\x40\x21\x8d\x4e\x6b\x18\xf4\xc6\xb7\x8c\ -\xbe\xf3\x05\x00\x72\xe6\x1d\x18\xd0\x00\x59\x1b\x00\xa7\x0e\xda\ -\x02\x30\x18\xa7\x15\x0f\x32\x4f\x21\x8f\x08\x98\xd9\x79\x47\x83\ -\x32\x53\xdf\xc0\xbe\xfb\x36\x30\x31\xaa\xe4\x19\xb8\xa5\x14\xd2\ -\xa5\x14\xca\x41\x18\x46\x2a\x51\xc4\x65\x06\xc8\x75\xc0\xe3\x6a\ -\x65\x6d\x1a\x70\x24\x6c\xbf\x36\xe7\xee\x3b\x2f\x02\x0c\xc6\xce\ -\x25\x83\x00\xf4\x6d\x58\xa0\x50\xfc\x89\x74\xde\xbc\x05\xb6\x6e\ -\x87\x6e\x53\x08\x6a\x41\x9d\xef\x43\x0e\xba\x5c\xc4\x31\x12\x6e\ -\x58\xcc\xaa\x45\x06\x9a\x2d\x10\x55\x7c\x92\x0c\xa2\xa8\xb2\x96\ -\x93\x66\x95\x87\x1f\x9c\xe0\xcb\x0f\x6a\xcc\xf2\x04\xe2\xab\x24\ -\xa9\x2b\x34\x20\x82\x49\x04\xc4\xce\x3a\x5c\x3b\x02\xbb\xc6\xa0\ -\x9b\x2a\x4e\x84\x56\x06\x17\xda\xf1\x08\xaf\x10\x96\x6b\xc0\x28\ -\x24\x60\x7c\x0b\x46\x21\xa7\x8a\x73\xd2\x37\xd7\x37\x65\x2d\x6d\ -\x62\x62\xdc\x0e\x7e\x0a\x21\x68\xf1\x6c\xef\x10\x86\xb3\x4e\xe4\ -\x77\x96\xc3\x67\xb7\x35\xf8\xca\xde\x39\x5a\xad\x0c\x27\x8e\x57\ -\xde\xaf\x73\xa1\xe5\x57\x16\x31\x6a\x22\x66\xa1\x8c\xda\x79\xa8\ -\xd9\x54\x1a\x7d\x4b\x45\x19\xa9\x40\xad\x92\x91\x88\x72\xb5\x2d\ -\xa9\xc0\x68\x75\x21\xea\x66\xa5\x2f\x0a\x1b\xc7\xab\x6c\x1a\x5f\ -\x47\x3e\xd2\xa5\xd1\x68\x01\x0a\x97\xd4\x40\x34\x27\xa0\x4b\x28\ -\x04\xd0\xcd\x21\x0b\xd0\x0b\x9e\x9f\xfe\x2a\xe1\x9a\xc9\x16\x59\ -\x86\xf1\x1d\xac\xc9\x2a\xba\xc0\x4e\xa3\xc7\xa7\x52\xf0\xbe\x3f\ -\x1e\xde\x44\x89\x0e\xce\x53\x15\x5c\xbf\xaf\x92\x85\x26\x79\x50\ -\x9c\xc3\xaa\x10\x4b\x34\x60\xa7\x3d\x33\x02\xd4\xd6\x7b\x6e\xfc\ -\xdc\xd8\x42\xb4\x0e\x77\x26\xf8\x67\x0b\xa3\x99\x23\x8a\x31\xce\ -\x11\xc7\x8b\x37\x45\xb0\x35\xb1\xb6\x27\x37\xc1\x9d\x63\x10\xb2\ -\xe1\xe3\x32\x91\xdf\xd6\x74\x40\x3b\x0d\xf6\x3e\x5d\xb6\x0f\x0c\ -\x53\xc8\x8e\x16\xe5\x8b\x53\x59\x40\x3f\x5e\x03\x6f\xce\x61\xe5\ -\x6d\xc9\x98\xe5\xd7\xc5\x0d\x5f\x93\xf8\x1e\x5b\x63\x7a\x04\xb0\ -\xe0\x86\xb8\xd1\x1a\xad\x55\x57\xc8\x80\xf3\xd0\x53\xd8\x35\x09\ -\x37\x6c\xb0\x07\x89\x58\x2f\x0c\x8f\x05\xe3\x86\xb3\x75\x36\x1f\ -\x3b\x9b\xb3\xdf\x10\x41\x00\xe7\xdb\x16\xf9\x10\xec\x3d\x1a\x01\ -\xa8\xea\x50\x06\xc2\xb2\x0c\xa8\x3d\x74\x53\x5d\x79\x60\xf3\x71\ -\x5c\x68\xa3\x08\x22\xf3\xe6\x70\xae\x18\x23\x71\x0e\x87\xb8\x72\ -\x2c\x88\x2b\x7b\x17\x29\xe4\x90\xb8\xd6\x95\xf7\x39\x37\x18\x4b\ -\xb4\x4a\x22\x1c\x39\x5f\xe3\x95\xa9\x0a\x4e\xac\xa4\x23\xc3\x5f\ -\xe4\x41\x2f\x71\x9c\x36\x94\x46\x83\x2c\x57\x7c\xf6\x31\x9b\x27\ -\xc6\x49\x6b\x63\x20\x1a\x69\x23\x0b\x20\xc4\x81\x17\x89\x7b\x87\ -\xe0\x88\x34\x2b\x1d\xf6\xa5\x0f\xe6\x2c\x10\x03\x00\x12\xe7\x43\ -\xaf\xc5\xbb\x17\x72\x3b\x4a\x5b\x74\x97\x01\x70\x52\xd0\x57\xc3\ -\xca\x1b\x59\x04\x60\x9a\xa8\x8d\x4e\x52\xed\x9b\x86\xf8\x95\xe6\ -\x30\xfe\x4a\x61\x5e\x2e\x39\xbf\xa6\xd6\xee\x76\xe8\xe5\x8a\x60\ -\x1a\x08\xcb\x34\xa0\xf3\x66\x7b\xd3\x6a\x14\x32\x00\x3a\x40\x8e\ -\xda\x37\xa8\x0f\xa0\xb2\x04\xec\x7c\xaf\xe5\xbc\x39\xaf\x26\xf2\ -\x55\x9b\x6a\x18\x38\x07\x31\xfb\x40\xae\xcb\x44\x5c\xe8\xc2\x19\ -\x00\x65\xb9\x88\x63\x14\x4d\x38\xe5\xe7\x9c\x94\xa0\x88\x62\x0d\ -\x10\x5c\x1c\x97\x11\x73\x10\xa7\x08\xd8\xbc\xc4\xac\x5c\xa2\x59\ -\xd5\x11\x03\x6b\x1c\x8f\xbf\x8d\x42\xab\x1c\xa7\x15\x2a\x2e\x02\ -\x08\x45\x06\x04\x4c\xf5\x21\xf6\xab\x80\x10\x57\x02\xb0\xf9\xbc\ -\xa4\x9f\xac\x9e\x81\x32\x78\x30\xbc\xd3\x6a\x28\x35\xa0\x45\x76\ -\xdd\x0a\x3b\x31\x6a\x1b\x99\xf1\x50\xb1\xf2\x17\x91\x63\x99\x50\ -\xc0\x1b\x88\x62\x6d\x19\x71\xac\xd9\x7c\x19\xe1\xe5\xfc\xce\x83\ -\x5a\x06\x22\x5d\x75\x71\xf4\x43\xb0\x2f\xc6\x15\x35\x80\xf1\xd7\ -\x89\xdd\x04\x5a\x7e\x29\x19\x2d\xb0\x4c\x88\x65\xa2\x88\xf6\xe0\ -\xb7\x1d\x49\x82\x1a\x20\x29\x69\xe2\x96\x55\x98\xb8\xdf\x58\xb6\ -\x8d\x22\x71\x1c\xd4\x02\xec\x20\xac\xbc\x91\x99\xf8\x54\x25\x46\ -\x45\x71\xce\xf4\x11\xb0\xc3\xd4\x72\x4d\xd8\x1a\x00\x62\xc4\x88\ -\xeb\x3c\x10\xb0\x79\x6b\x45\x06\x9c\x60\xeb\x43\xd1\xdb\x29\x21\ -\xd2\xcc\x18\x82\x22\x2b\x7f\x13\x7b\x57\x44\xc5\x28\x54\x18\x98\ -\x80\x9c\x5b\x19\x84\x2e\xd6\x80\x09\x9b\x82\x19\x96\x09\x35\x4d\ -\xc4\xe8\x2a\x56\x7a\x87\x0f\x6b\x8a\xed\x03\x89\x40\xea\xb1\x33\ -\xc8\x4a\x1b\x19\x02\xaa\xa6\x01\x43\x6d\xe5\x33\xb0\x32\x08\x82\ -\xed\x09\x6a\xc2\x2e\x9d\x37\x0a\x9a\xb0\x23\x85\x14\x00\x11\x63\ -\x43\x45\x7a\x40\xe8\xf7\x6d\xea\xd5\xc0\xba\xaa\x52\x19\x81\x86\ -\xc2\xb1\x23\x17\x60\xf6\xe2\xc9\x21\x0a\xe5\x5a\x02\xb0\xb4\x21\ -\x3a\x9c\x81\xc5\x20\x74\x15\x61\x0b\x50\x8a\x39\x98\xf8\x70\xa0\ -\x45\x07\xa1\xe4\xb3\x92\xc7\x8d\xcc\x3b\xdb\xbd\x9f\xfd\xd3\x0c\ -\x6f\x25\xa7\xe8\x75\x32\x54\x2b\x9c\x68\xf5\x68\x4b\x8b\xf7\x8e\ -\xcd\x72\xf8\xb9\x57\x20\x6f\x1d\xc0\x28\x64\xd1\x22\x8a\x68\x25\ -\x0a\xc1\x62\x2d\x2c\xd7\x84\x62\xd1\x46\x6d\xed\xe2\x52\xeb\x2c\ -\x23\xb1\x44\x86\x72\x1f\x30\x90\x22\x1c\x3c\xf0\xc6\xf9\x83\x07\ -\x8e\x34\x58\xc0\xa4\x80\x7a\xb4\xf7\x1e\x64\x3f\x81\xe4\x05\x2c\ -\x03\x42\xae\xca\xfb\x53\x27\x98\x6b\x34\xd8\xb7\x73\x37\x20\xe5\ -\x3e\x60\x14\x92\xe8\x98\x46\xd1\xea\xca\x9a\xf0\x80\x9a\x26\x50\ -\x93\x04\xaa\x20\xc5\xfd\xa6\x01\xb5\x0c\xb0\x50\x61\x3a\x8f\x03\ -\xcf\x01\x75\x30\x51\x83\x74\xc0\x67\x30\x5c\x85\x24\x04\xe8\x4c\ -\xbf\x4d\x6b\xe6\x2c\xf9\xd6\xed\x28\x0e\x19\x3a\xfa\x46\x87\x17\ -\x8f\x31\x70\x5c\x42\x13\x16\x71\x0c\x8d\xd8\xfd\x01\x25\x37\xed\ -\x40\x3c\xef\x83\xeb\xc4\x99\x06\xab\xb4\x84\xc8\x21\x15\xf8\xd4\ -\x9d\x5f\x20\x64\x39\x89\x3a\xf2\x3c\x47\x5c\xac\x4a\x56\x9f\x11\ -\xb5\x7d\x01\x35\xea\x40\x14\xac\x62\x6b\x25\xf6\x98\xb0\x8b\xdf\ -\x96\x11\x82\x12\x72\x8d\xef\xb2\x7d\x68\x2d\xcd\x00\x64\xdd\xa3\ -\x1f\xbe\x7b\xf6\xba\x7c\xdf\x1e\xd6\xe1\x09\xad\x9c\x5a\x1a\xa8\ -\x4a\x17\x2f\x19\xce\xe5\x84\xc8\x03\x2d\xab\x94\x13\x94\x62\x8c\ -\x9a\x73\xaa\x71\xde\x36\x2e\x3b\x76\x0f\x7e\x47\x93\xc2\xba\x69\ -\x4e\x25\x55\xaa\x15\x48\xab\x70\xf2\x78\x60\xee\xe4\xd9\x1c\xdc\ -\xf4\xda\x01\x10\x9e\xfa\xe0\xd7\x7f\xfc\xfc\xab\x49\x2a\xd7\x7e\ -\xf2\x3a\x5c\x1e\x68\x9e\xdd\xc9\xc1\x13\x6d\x90\x93\x58\x93\x28\ -\x36\xc1\xbe\xae\x5c\xbc\x24\x46\x37\x71\x71\x2c\xf1\x52\x79\x5d\ -\x6c\xce\x95\xeb\x6b\xfc\xab\x51\xe5\x22\x4a\x73\xae\xcd\x1b\xbf\ -\x78\x8d\xec\xe4\xfb\x2f\x43\xfa\xfa\x15\x00\xf0\x2f\x85\x8b\xb3\ -\x0f\x4d\xfd\xfc\x85\x6f\x4f\xd5\xc7\x77\x23\xe8\xeb\x9a\x98\x6a\ -\x57\x6d\x0a\x5c\xcd\x12\xc5\x82\xa2\xe0\xd4\xd1\xe9\x34\xe8\x7e\ -\xfc\x07\x48\x9e\x04\x74\xcd\x00\x54\x9f\x00\xf8\xcd\xbc\xfd\xff\ -\xbf\x55\xfe\xcb\xed\xdf\x99\xd5\xe1\x33\x6b\x2f\x52\xdc\x00\x00\ -\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ -\x00\x00\x04\x44\ -\x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ -\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ -\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x12\x00\x00\ -\x0b\x12\x01\xd2\xdd\x7e\xfc\x00\x00\x00\x07\x74\x49\x4d\x45\x07\ -\xd3\x0a\x17\x0a\x12\x16\x5e\xb7\xf3\xf2\x00\x00\x00\x1d\x74\x45\ -\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\ -\x64\x20\x77\x69\x74\x68\x20\x54\x68\x65\x20\x47\x49\x4d\x50\xef\ -\x64\x25\x6e\x00\x00\x03\xa8\x49\x44\x41\x54\x78\xda\xad\x96\x5f\ -\x68\x1c\x55\x18\xc5\x7f\x77\x76\x36\x9b\x34\xe9\xda\x6e\xda\xb2\ -\x2a\x98\x27\x31\x55\xfa\x66\xdb\x6d\x82\x42\x5e\x35\x45\xf0\x29\ -\x46\x10\x82\xe0\x83\xa2\x82\xb5\x11\x04\x8b\xcf\xea\x8b\x0f\xe2\ -\x9f\x60\x7c\x08\x41\x6a\x71\x5b\xcd\xa3\x88\x6d\xd3\xc4\x9a\x36\ -\x69\x35\x14\x2a\xad\x94\xe2\x96\x4d\x28\x49\x48\xc8\xee\xce\xec\ -\xcc\xbd\x9f\x0f\x33\x3b\xfb\x67\x92\xda\xa2\x1f\x5c\x66\x19\x66\ -\xce\x39\xdf\xf9\xee\x3d\xb3\xf0\x3f\xd4\xd0\xd0\x90\x75\x3f\xcf\ -\xbd\x04\xc8\x03\xac\x32\xb0\x91\x4e\xa7\xa5\xb7\xb7\x57\x46\x46\ -\x46\x6e\x00\xed\x80\xda\x8e\x40\x16\x17\x17\xa5\x5c\x2e\xcb\xbf\ -\x95\xeb\xba\xe2\xba\x8e\xb8\xae\x23\xc5\x62\x51\x0a\x85\x82\xcc\ -\xcf\xcf\x4b\x4f\x4f\x4f\x01\xd8\x03\x6c\xd9\xd1\x7d\x81\xd7\x49\ -\x1c\x59\x5b\x5b\x95\xd3\xa7\xf3\xb2\xbc\xbc\x2c\x22\x22\x53\x53\ -\x53\x92\xcb\xe5\x34\x90\xae\x91\xd8\x8d\x0c\x1d\x1d\x1d\x00\x4c\ -\x4f\x4f\xc7\xd9\x45\x50\x4a\x21\x22\x88\x08\x5a\xfb\x38\x8e\x4b\ -\xa9\x54\x22\x95\x4a\x01\x30\x30\x30\x80\xe3\x38\xd6\xf0\xf0\xf0\ -\xc7\x9e\xe7\xbd\x13\xda\xd8\x88\x11\x2f\x63\x8c\x68\xad\xc5\xf7\ -\xbd\xe8\xea\x79\x9e\xb8\xae\x23\x1b\x1b\x1b\x32\x3e\x3e\xbe\xdd\ -\x8c\x46\x80\xa4\x6a\x21\x88\x3a\xa8\x29\x15\x31\x04\xb7\x25\x9c\ -\x5f\x70\x1f\xc0\xf7\x35\x4b\x4b\x45\xb2\xfb\xf6\xf1\xdb\xa5\x39\ -\x4e\x9c\xf8\x10\xaf\xd8\x4f\xe5\x4a\x86\xf4\x73\x53\x00\x9d\x31\ -\x82\x56\xe0\xe0\x2a\x4d\x16\x21\x82\xb2\x2c\xaa\xae\xcb\xca\xea\ -\x2a\x9e\xeb\xf0\xf8\x13\xfb\xf1\xef\x3e\x83\x37\x97\xe2\xb5\xb1\ -\xa2\x4c\x9c\xb9\xa6\x80\xbd\x76\xab\xd7\xc6\x68\xce\x9f\x9f\x8e\ -\x94\x06\x80\x20\x08\x0a\x85\x84\x0e\x18\x2d\x18\xa3\x31\xc6\xf0\ -\xfc\xe0\x51\xfc\xe5\x7e\xbc\xb9\x76\x8e\x7f\xb7\x46\x08\xfe\x3e\ -\xd0\x1e\xeb\xc0\xf3\xaa\x0d\xc0\x21\x09\x82\x18\x41\x59\x0a\x31\ -\x75\x8b\x44\x84\x9d\xe9\x87\xa8\x16\xfa\xa8\x2e\xec\xe0\xcd\xc9\ -\x4d\xbe\x39\x79\xb1\x86\xf7\x32\x70\x6e\x8b\x0e\x0c\x17\xa6\x2f\ -\x44\x4a\x03\xc0\x78\x07\xbe\xaf\x19\x1c\x3c\x8a\x7b\xeb\x08\xee\ -\xa5\x76\x5e\x9f\x58\x65\x22\xbf\xc0\xdb\x6f\xbc\xca\xa7\x9f\x7d\ -\x0d\xb0\x0e\x38\x71\x02\xad\x39\xd2\x97\x43\x4c\xa8\xb2\xc1\xaa\ -\x68\x9b\x1a\xc3\xae\xdd\xdd\xb8\x37\x73\x94\xaf\xed\xe1\xbd\x53\ -\x77\x98\xc8\x2f\x30\xf6\xe5\xe7\xdc\xbe\x75\xbd\x06\xb5\x06\xb8\ -\x5b\x77\x30\x33\x13\xf8\x1c\xda\x61\x85\xc0\x4a\xa9\xc8\x73\xe7\ -\xfa\x61\x2a\xf3\x29\x46\xcf\xfc\xcd\xd8\xb7\x57\x19\x1d\x3d\x46\ -\xa6\x3b\x43\x69\x3d\x53\x83\xaa\x00\xda\xde\xea\x48\xf7\xf7\xf5\ -\x21\x08\xc6\x98\x26\x02\x80\x5d\xbb\xbb\x29\xff\x71\x88\xd2\xe5\ -\x14\x6f\xe5\xd7\x99\xcc\x5f\x65\xec\xab\x2f\xc8\x64\x32\x3c\x9c\ -\xcd\xb2\xbe\x72\x27\xd2\x1a\x3b\xc9\x00\xbe\xf6\x99\x99\x99\xad\ -\xcd\x3d\x1c\x74\x30\x50\xcf\xf3\x00\xb8\x7d\xf3\x59\x3e\xfa\xf1\ -\x27\x26\xf3\xbf\x73\xfc\xdd\x63\x14\x97\x96\x10\x84\x03\x07\x9e\ -\x42\xb5\x44\x5d\x8c\x40\x6b\x4d\xee\xf0\xa1\x48\x71\x6d\xb7\x78\ -\x5e\x95\x47\x1e\x7d\x8c\x17\x06\xf6\xb2\xff\xc5\x4f\x00\xf8\xfe\ -\xd4\x49\xba\x76\x76\x91\xcd\x66\x49\xa5\xda\x50\x4a\x61\x29\xeb\ -\xde\x04\x46\x6b\x66\x67\x67\x43\x60\xa2\xf3\xe0\xba\x2e\x00\x3f\ -\xfc\x72\x97\x73\x67\x7f\x46\x59\x8a\xae\xce\x4e\x6c\x3b\x49\x5b\ -\x5b\x92\x44\x22\x81\x52\xf1\xa4\x8e\x5b\xe4\x7b\x1c\x3c\xf8\x74\ -\x93\x7a\x31\x06\x5f\xfb\xfc\x75\xe3\x4f\x94\x05\x95\x8a\x43\x32\ -\x69\x07\xf3\xb1\xac\xe8\xcc\x68\xad\x31\x46\x6f\x4f\x50\xad\x56\ -\xd1\x5a\x87\xf6\x04\xfb\x1e\x15\xcc\xc5\x18\x83\x36\x3e\xc6\x37\ -\x24\x93\x36\x89\x44\xa2\x1e\x1b\x4a\x45\xef\x35\x38\x1b\x27\xd8\ -\xdc\xdc\x44\x6b\x1d\x78\xa3\x68\x52\xa8\x94\x42\x29\x85\x6d\xdb\ -\xc1\xef\xb0\xbb\xda\xdc\x1a\xb3\xab\xb1\x9a\x26\x52\x28\x14\x40\ -\x0c\x22\x06\x63\xea\xab\x51\xa9\xa5\x14\xad\x32\x83\x38\x21\xcc\ -\x26\xd9\xbe\x83\x8b\xbf\x9e\x65\x47\x9b\x0a\x22\x41\x24\x8a\x68\ -\x23\x26\x0c\x6a\x1a\x94\xab\xc8\xef\x1a\xa8\x11\xc3\xe5\x85\x2b\ -\xd4\xf7\x78\x73\xbd\xf2\x80\x1f\xfd\x7b\xad\x0f\x80\x27\x5b\xd3\ -\xd4\x06\xba\xc3\x95\xfc\x8f\xff\x64\x3c\x60\x05\x58\xf9\x07\xbb\ -\x78\x04\xf0\x58\x0d\x4c\x09\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ -\x42\x60\x82\ " qt_resource_name = b"\ \x00\x04\ -\x00\x08\x16\x5d\ -\x00\x7a\ -\x00\x6f\x00\x6f\x00\x6d\ -\x00\x06\ -\x06\xac\x2c\xa5\ -\x00\x64\ -\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\ -\x00\x0a\ -\x03\x87\xc0\x73\ -\x00\x66\ -\x00\x6f\x00\x72\x00\x6d\x00\x61\x00\x74\x00\x5f\x00\x76\x00\x6f\x00\x63\ -\x00\x07\ -\x01\x66\x02\xfe\ -\x00\x7a\ -\x00\x6f\x00\x6f\x00\x6d\x00\x2d\x00\x69\x00\x6e\ -\x00\x03\ -\x00\x00\x68\x70\ -\x00\x61\ -\x00\x70\x00\x70\ -\x00\x09\ -\x07\x4d\x21\xa8\ -\x00\x66\ -\x00\x69\x00\x74\x00\x2d\x00\x77\x00\x69\x00\x64\x00\x74\x00\x68\ -\x00\x04\ -\x00\x07\x78\xc6\ -\x00\x70\ -\x00\x72\x00\x65\x00\x76\ -\x00\x04\ -\x00\x04\x8c\xaf\ -\x00\x41\ -\x00\x75\x00\x74\x00\x6f\ -\x00\x04\ -\x00\x06\xa6\x79\ -\x00\x63\ -\x00\x6f\x00\x70\x00\x79\ -\x00\x03\ -\x00\x00\x74\xc7\ -\x00\x6e\ -\x00\x65\x00\x77\ -\x00\x04\ -\x00\x06\xb6\x45\ -\x00\x64\ -\x00\x6f\x00\x6e\x00\x65\ -\x00\x0a\ -\x04\xd5\xeb\x87\ -\x00\x66\ -\x00\x69\x00\x74\x00\x2d\x00\x77\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\ -\x00\x04\ -\x00\x07\x4c\xf4\ -\x00\x6e\ -\x00\x65\x00\x78\x00\x74\ -\x00\x05\ -\x00\x6a\x63\x62\ -\x00\x63\ -\x00\x6f\x00\x6c\x00\x6f\x00\x72\ -\x00\x08\ -\x0c\x9c\xab\x2c\ -\x00\x72\ -\x00\x65\x00\x73\x00\x65\x00\x74\x00\x61\x00\x6c\x00\x6c\ -\x00\x04\ \x00\x06\xec\x30\ \x00\x68\ \x00\x65\x00\x6c\x00\x70\ -\x00\x06\ -\x07\xcc\x8f\xd9\ -\x00\x76\ -\x00\x65\x00\x72\x00\x69\x00\x66\x00\x79\ -\x00\x04\ -\x00\x07\x8c\x04\ -\x00\x71\ -\x00\x75\x00\x69\x00\x74\ -\x00\x07\ -\x0a\xb9\x04\x03\ -\x00\x73\ -\x00\x74\x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\ -\x00\x05\ -\x00\x78\xa8\xb3\ -\x00\x72\ -\x00\x65\x00\x52\x00\x65\x00\x63\ -\x00\x06\ -\x07\x27\x8c\x33\ -\x00\x6c\ -\x00\x61\x00\x62\x00\x65\x00\x6c\x00\x73\ -\x00\x04\ -\x00\x06\xef\xa5\ -\x00\x68\ -\x00\x69\x00\x64\x00\x65\ -\x00\x04\ -\x00\x06\xd0\x25\ -\x00\x66\ -\x00\x69\x00\x6c\x00\x65\ -\x00\x0a\ -\x06\x8b\x64\x25\ -\x00\x63\ -\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x5f\x00\x6c\x00\x69\x00\x6e\x00\x65\ -\x00\x05\ -\x00\x6a\x36\x95\ -\x00\x63\ -\x00\x6c\x00\x6f\x00\x73\x00\x65\ -\x00\x0b\ -\x08\x7c\x58\x4f\ -\x00\x66\ -\x00\x6f\x00\x72\x00\x6d\x00\x61\x00\x74\x00\x5f\x00\x79\x00\x6f\x00\x6c\x00\x6f\ -\x00\x04\ -\x00\x07\xc4\xaf\ -\x00\x75\ -\x00\x6e\x00\x64\x00\x6f\ -\x00\x04\ -\x00\x07\x66\xbe\ -\x00\x6f\ -\x00\x70\x00\x65\x00\x6e\ -\x00\x08\ -\x06\x60\x56\xe4\ -\x00\x7a\ -\x00\x6f\x00\x6f\x00\x6d\x00\x2d\x00\x6f\x00\x75\x00\x74\ -\x00\x06\ -\x06\xcf\x6c\x94\ -\x00\x65\ -\x00\x78\x00\x70\x00\x65\x00\x72\x00\x74\ \x00\x04\ \x00\x07\x98\xc5\ \x00\x73\ \x00\x61\x00\x76\x00\x65\ -\x00\x0d\ -\x03\x22\xb9\x5e\ -\x00\x73\ -\x00\x74\x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x2d\x00\x7a\x00\x68\x00\x2d\x00\x43\x00\x4e\ \x00\x07\ \x09\x8c\x83\x63\ \x00\x73\ \x00\x61\x00\x76\x00\x65\x00\x2d\x00\x61\x00\x73\ \x00\x04\ +\x00\x08\x16\x5d\ +\x00\x7a\ +\x00\x6f\x00\x6f\x00\x6d\ +\x00\x04\ +\x00\x07\x8c\x04\ +\x00\x71\ +\x00\x75\x00\x69\x00\x74\ +\x00\x04\ +\x00\x04\x8c\xaf\ +\x00\x41\ +\x00\x75\x00\x74\x00\x6f\ +\x00\x09\ +\x07\x4d\x21\xa8\ +\x00\x66\ +\x00\x69\x00\x74\x00\x2d\x00\x77\x00\x69\x00\x64\x00\x74\x00\x68\ +\x00\x0b\ +\x0a\x5a\x28\xf4\ +\x00\x72\ +\x00\x6f\x00\x74\x00\x61\x00\x74\x00\x65\x00\x52\x00\x69\x00\x67\x00\x68\x00\x74\ +\x00\x04\ +\x00\x07\x66\xbe\ +\x00\x6f\ +\x00\x70\x00\x65\x00\x6e\ +\x00\x06\ +\x06\xcf\x6c\x94\ +\x00\x65\ +\x00\x78\x00\x70\x00\x65\x00\x72\x00\x74\ +\x00\x05\ +\x00\x78\xa8\xb3\ +\x00\x72\ +\x00\x65\x00\x52\x00\x65\x00\x63\ +\x00\x03\ +\x00\x00\x74\xc7\ +\x00\x6e\ +\x00\x65\x00\x77\ +\x00\x0b\ +\x08\x7c\x58\x4f\ +\x00\x66\ +\x00\x6f\x00\x72\x00\x6d\x00\x61\x00\x74\x00\x5f\x00\x79\x00\x6f\x00\x6c\x00\x6f\ +\x00\x03\ +\x00\x00\x68\x70\ +\x00\x61\ +\x00\x70\x00\x70\ +\x00\x0a\ +\x03\x87\xc0\x73\ +\x00\x66\ +\x00\x6f\x00\x72\x00\x6d\x00\x61\x00\x74\x00\x5f\x00\x76\x00\x6f\x00\x63\ +\x00\x04\ +\x00\x06\xa6\x79\ +\x00\x63\ +\x00\x6f\x00\x70\x00\x79\ +\x00\x04\ +\x00\x07\x4c\xf4\ +\x00\x6e\ +\x00\x65\x00\x78\x00\x74\ +\x00\x08\ +\x0c\x9c\xab\x2c\ +\x00\x72\ +\x00\x65\x00\x73\x00\x65\x00\x74\x00\x61\x00\x6c\x00\x6c\ +\x00\x06\ +\x07\x27\x8c\x33\ +\x00\x6c\ +\x00\x61\x00\x62\x00\x65\x00\x6c\x00\x73\ +\x00\x04\ +\x00\x07\xc4\xaf\ +\x00\x75\ +\x00\x6e\x00\x64\x00\x6f\ +\x00\x0a\ +\x04\xd5\xeb\x87\ +\x00\x66\ +\x00\x69\x00\x74\x00\x2d\x00\x77\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\ +\x00\x08\ +\x06\x60\x56\xe4\ +\x00\x7a\ +\x00\x6f\x00\x6f\x00\x6d\x00\x2d\x00\x6f\x00\x75\x00\x74\ +\x00\x05\ +\x00\x6a\x36\x95\ +\x00\x63\ +\x00\x6c\x00\x6f\x00\x73\x00\x65\ +\x00\x0d\ +\x03\x22\xb9\x5e\ +\x00\x73\ +\x00\x74\x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x2d\x00\x7a\x00\x68\x00\x2d\x00\x43\x00\x4e\ +\x00\x04\ \x00\x06\xbb\x04\ \x00\x65\ \x00\x64\x00\x69\x00\x74\ +\x00\x07\ +\x01\x66\x02\xfe\ +\x00\x7a\ +\x00\x6f\x00\x6f\x00\x6d\x00\x2d\x00\x69\x00\x6e\ +\x00\x04\ +\x00\x06\xb6\x45\ +\x00\x64\ +\x00\x6f\x00\x6e\x00\x65\ +\x00\x0a\ +\x06\x8b\x64\x25\ +\x00\x63\ +\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x5f\x00\x6c\x00\x69\x00\x6e\x00\x65\ +\x00\x06\ +\x06\xac\x2c\xa5\ +\x00\x64\ +\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\ +\x00\x0a\ +\x08\xa9\x06\x94\ +\x00\x72\ +\x00\x6f\x00\x74\x00\x61\x00\x74\x00\x65\x00\x4c\x00\x65\x00\x66\x00\x74\ +\x00\x05\ +\x00\x6a\x63\x62\ +\x00\x63\ +\x00\x6f\x00\x6c\x00\x6f\x00\x72\ +\x00\x07\ +\x0a\xb9\x04\x03\ +\x00\x73\ +\x00\x74\x00\x72\x00\x69\x00\x6e\x00\x67\x00\x73\ +\x00\x04\ +\x00\x06\xef\xa5\ +\x00\x68\ +\x00\x69\x00\x64\x00\x65\ +\x00\x04\ +\x00\x07\x78\xc6\ +\x00\x70\ +\x00\x72\x00\x65\x00\x76\ +\x00\x04\ +\x00\x06\xd0\x25\ +\x00\x66\ +\x00\x69\x00\x6c\x00\x65\ +\x00\x06\ +\x07\xcc\x8f\xd9\ +\x00\x76\ +\x00\x65\x00\x72\x00\x69\x00\x66\x00\x79\ " qt_resource_struct_v1 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x01\ -\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x14\x38\ -\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x01\x7d\x2b\ -\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x01\x78\xc6\ -\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x01\x7a\xa1\ -\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x81\x7e\ -\x00\x00\x02\x50\x00\x00\x00\x00\x00\x01\x00\x02\x9c\xce\ -\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x02\x51\x0e\ -\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x02\x18\xb0\ -\x00\x00\x01\x68\x00\x00\x00\x00\x00\x01\x00\x02\x4c\x1a\ -\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x01\x8e\x6a\ -\x00\x00\x01\xd8\x00\x00\x00\x00\x00\x01\x00\x02\x74\x0b\ -\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x01\x00\xf9\ -\x00\x00\x01\x24\x00\x00\x00\x00\x00\x01\x00\x02\x2a\xcc\ -\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x02\x81\xb1\ -\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x02\x6c\x25\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x01\ +\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x4e\xa3\ +\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x47\xa9\ +\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x21\xd3\ +\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x01\x39\x21\ +\x00\x00\x01\xe0\x00\x00\x00\x00\x00\x01\x00\x01\xfa\x57\ +\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x01\xf1\xc0\ +\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x02\xb3\x70\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x02\x5d\x53\ -\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x02\x04\xbe\ -\x00\x00\x01\x46\x00\x00\x00\x00\x00\x01\x00\x02\x3e\x10\ -\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xe9\ -\x00\x00\x02\x1c\x00\x00\x00\x00\x00\x01\x00\x02\x86\x58\ -\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xd3\ -\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x01\x8a\x18\ -\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x02\x7c\x28\ -\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x02\x54\x0f\ -\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x04\x77\ -\x00\x00\x01\xfc\x00\x00\x00\x00\x00\x01\x00\x02\x80\x5e\ -\x00\x00\x01\x56\x00\x00\x00\x00\x00\x01\x00\x02\x42\xc9\ -\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\xfb\xa0\ -\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x02\x1e\xe7\ -\x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x02\x69\x7e\ -\x00\x00\x02\x3c\x00\x00\x00\x00\x00\x01\x00\x02\x91\xcf\ -\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x02\x32\x4b\ -\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x02\x0a\x77\ +\x00\x00\x02\x58\x00\x00\x00\x00\x00\x01\x00\x02\x36\xaf\ +\x00\x00\x01\x1a\x00\x00\x00\x00\x00\x01\x00\x01\x3b\xab\ +\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x39\x80\ +\x00\x00\x02\x66\x00\x00\x00\x00\x00\x01\x00\x02\x3b\xa3\ +\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x54\ +\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x06\x37\ +\x00\x00\x01\x50\x00\x00\x00\x00\x00\x01\x00\x01\xc9\x89\ +\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\ +\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x01\xd9\xf7\ +\x00\x00\x02\x34\x00\x00\x00\x00\x00\x01\x00\x02\x25\x0d\ +\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x42\xf0\ +\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x01\xf6\x08\ +\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x01\xe6\x22\ +\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x01\x36\x0b\ +\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x01\xd1\x6f\ +\x00\x00\x01\x78\x00\x00\x00\x00\x00\x01\x00\x01\xd5\xc1\ +\x00\x00\x01\xee\x00\x00\x00\x00\x00\x01\x00\x02\x02\xf1\ +\x00\x00\x02\x08\x00\x00\x00\x00\x00\x01\x00\x02\x0c\x35\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x41\x9d\ +\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x01\xc0\x38\ +\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xae\ +\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x02\xb6\x71\ +\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00\x4b\xfc\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x02\x14\x91\ +\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xde\ +\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x29\x07\ +\x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x02\x2a\xc6\ +\x00\x00\x01\x28\x00\x00\x00\x00\x00\x01\x00\x01\xb1\xff\ " qt_resource_struct_v2 = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x22\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x14\x38\ -\x00\x00\x01\x76\x60\x64\xa4\xf6\ -\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x01\x7d\x2b\ -\x00\x00\x01\x76\x60\x64\xa4\xfd\ -\x00\x00\x00\x80\x00\x00\x00\x00\x00\x01\x00\x01\x78\xc6\ -\x00\x00\x01\x76\x60\x64\xa4\xf6\ -\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x01\x7a\xa1\ -\x00\x00\x01\x76\x60\x64\xa4\xf8\ -\x00\x00\x00\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x81\x7e\ -\x00\x00\x01\x76\x60\x64\xa4\xf7\ -\x00\x00\x02\x50\x00\x00\x00\x00\x00\x01\x00\x02\x9c\xce\ -\x00\x00\x01\x76\x60\x64\xa4\xf8\ -\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x02\x51\x0e\ -\x00\x00\x01\x76\x60\x64\xa4\xfa\ -\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x02\x18\xb0\ -\x00\x00\x01\x76\x60\x64\xa4\xfc\ -\x00\x00\x01\x68\x00\x00\x00\x00\x00\x01\x00\x02\x4c\x1a\ -\x00\x00\x01\x76\x60\x64\xa4\xf9\ -\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x01\x8e\x6a\ -\x00\x00\x01\x76\x60\x64\xa4\xfd\ -\x00\x00\x01\xd8\x00\x00\x00\x00\x00\x01\x00\x02\x74\x0b\ -\x00\x00\x01\x76\x60\x64\xa4\xfd\ -\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x01\x00\xf9\ -\x00\x00\x01\x76\x60\x64\xa4\xfe\ -\x00\x00\x01\x24\x00\x00\x00\x00\x00\x01\x00\x02\x2a\xcc\ -\x00\x00\x01\x76\x60\x64\xa4\xfe\ -\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x02\x81\xb1\ -\x00\x00\x01\x76\x60\x64\xa4\xff\ -\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x02\x6c\x25\ -\x00\x00\x01\x76\x60\x64\xa5\x00\ +\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x4e\xa3\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x47\xa9\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x21\xd3\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x01\x39\x21\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\xe0\x00\x00\x00\x00\x00\x01\x00\x01\xfa\x57\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x01\xf1\xc0\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x02\xb3\x70\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x76\x60\x64\xa5\x00\ -\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x02\x5d\x53\ -\x00\x00\x01\x76\x60\x64\xa4\xf7\ -\x00\x00\x00\xde\x00\x00\x00\x00\x00\x01\x00\x02\x04\xbe\ -\x00\x00\x01\x76\x60\x64\xa4\xf8\ -\x00\x00\x01\x46\x00\x00\x00\x00\x00\x01\x00\x02\x3e\x10\ -\x00\x00\x01\x76\x60\x64\xa4\xfe\ -\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x0f\xe9\ -\x00\x00\x01\x76\x60\x64\xa5\x01\ -\x00\x00\x02\x1c\x00\x00\x00\x00\x00\x01\x00\x02\x86\x58\ -\x00\x00\x01\x77\x70\x51\x4d\x6a\ -\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xd3\ -\x00\x00\x01\x76\x60\x64\xa4\xfb\ -\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x01\x8a\x18\ -\x00\x00\x01\x76\x60\x64\xa4\xf9\ -\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x02\x7c\x28\ -\x00\x00\x01\x76\x60\x64\xa5\x00\ -\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x02\x54\x0f\ -\x00\x00\x01\x76\x60\x64\xa4\xf7\ -\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x04\x77\ -\x00\x00\x01\x76\x60\x64\xa4\xf6\ -\x00\x00\x01\xfc\x00\x00\x00\x00\x00\x01\x00\x02\x80\x5e\ -\x00\x00\x01\x76\x60\x64\xa4\xf9\ -\x00\x00\x01\x56\x00\x00\x00\x00\x00\x01\x00\x02\x42\xc9\ -\x00\x00\x01\x76\x60\x64\xa4\xfc\ -\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\xfb\xa0\ -\x00\x00\x01\x76\x60\x64\xa4\xfa\ -\x00\x00\x01\x12\x00\x00\x00\x00\x00\x01\x00\x02\x1e\xe7\ -\x00\x00\x01\x76\x60\x64\xa5\x00\ -\x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x02\x69\x7e\ -\x00\x00\x01\x76\x60\x64\xa4\xfb\ -\x00\x00\x02\x3c\x00\x00\x00\x00\x00\x01\x00\x02\x91\xcf\ -\x00\x00\x01\x76\x60\x64\xa4\xff\ -\x00\x00\x01\x32\x00\x00\x00\x00\x00\x01\x00\x02\x32\x4b\ -\x00\x00\x01\x77\x70\x51\xed\x0c\ -\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x02\x0a\x77\ -\x00\x00\x01\x76\x60\x64\xa4\xfe\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x58\x00\x00\x00\x00\x00\x01\x00\x02\x36\xaf\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x1a\x00\x00\x00\x00\x00\x01\x00\x01\x3b\xab\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x39\x80\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x66\x00\x00\x00\x00\x00\x01\x00\x02\x3b\xa3\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x54\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x06\x37\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x50\x00\x00\x00\x00\x00\x01\x00\x01\xc9\x89\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x15\xdd\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x01\xd9\xf7\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x34\x00\x00\x00\x00\x00\x01\x00\x02\x25\x0d\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00\x42\xf0\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x01\xf6\x08\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x9e\x00\x00\x00\x00\x00\x01\x00\x01\xe6\x22\ +\x00\x00\x01\x7b\x33\x10\xef\x28\ +\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x01\x00\x01\x36\x0b\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x01\xd1\x6f\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x78\x00\x00\x00\x00\x00\x01\x00\x01\xd5\xc1\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\xee\x00\x00\x00\x00\x00\x01\x00\x02\x02\xf1\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x08\x00\x00\x00\x00\x00\x01\x00\x02\x0c\x35\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x41\x9d\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x01\xc0\x38\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x23\xae\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x02\xb6\x71\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\xca\x00\x00\x00\x00\x00\x01\x00\x00\x4b\xfc\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x02\x14\x91\ +\x00\x00\x01\x7a\xd3\xc3\x71\x58\ +\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xde\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ +\x00\x00\x00\x72\x00\x00\x00\x00\x00\x01\x00\x00\x29\x07\ +\x00\x00\x01\x7a\xd3\xc3\x65\xa0\ +\x00\x00\x02\x44\x00\x00\x00\x00\x00\x01\x00\x02\x2a\xc6\ +\x00\x00\x01\x7b\x33\x12\xd7\x70\ +\x00\x00\x01\x28\x00\x00\x00\x00\x00\x01\x00\x01\xb1\xff\ +\x00\x00\x01\x7a\x50\x6d\xd4\x88\ " -qt_version = [int(v) for v in QtCore.qVersion().split('.')] -if qt_version < [5, 8, 0]: +qt_version = QtCore.qVersion().split('.') +if qt_version < ['5', '8', '0']: rcc_version = 1 qt_resource_struct = qt_resource_struct_v1 else: diff --git a/PPOCRLabel/libs/utils.py b/PPOCRLabel/libs/utils.py index cb1c92e7a9..296f56318c 100644 --- a/PPOCRLabel/libs/utils.py +++ b/PPOCRLabel/libs/utils.py @@ -124,6 +124,15 @@ def natural_sort(list, key=lambda s:s): def get_rotate_crop_image(img, points): + # Use Green's theory to judge clockwise or counterclockwise + # author: biyanhua + d = 0.0 + for index in range(-1, 3): + d += -0.5 * (points[index + 1][1] + points[index][1]) * ( + points[index + 1][0] - points[index][0]) + if d < 0: # counterclockwise + tmp = np.array(points) + points[1], points[3] = tmp[3], tmp[1] try: img_crop_width = int( @@ -165,6 +174,7 @@ def stepsInfo(lang='en'): "10. 标注结果:关闭应用程序或切换文件路径后,手动保存过的标签将会被存放在所打开图片文件夹下的" \ "*Label.txt*中。在菜单栏点击 “PaddleOCR” - 保存识别结果后,会将此类图片的识别训练数据保存在*crop_img*文件夹下," \ "识别标签保存在*rec_gt.txt*中。\n" + else: msg = "1. Build and launch using the instructions above.\n" \ "2. Click 'Open Dir' in Menu/File to select the folder of the picture.\n"\ @@ -178,5 +188,57 @@ def stepsInfo(lang='en'): "8. Click 'Save', the image status will switch to '√',then the program automatically jump to the next.\n"\ "9. Click 'Delete Image' and the image will be deleted to the recycle bin.\n"\ "10. Labeling result: After closing the application or switching the file path, the manually saved label will be stored in *Label.txt* under the opened picture folder.\n"\ - " Click PaddleOCR-Save Recognition Results in the menu bar, the recognition training data of such pictures will be saved in the *crop_img* folder, and the recognition label will be saved in *rec_gt.txt*.\n" + " Click PaddleOCR-Save Recognition Results in the menu bar, the recognition training data of such pictures will be saved in the *crop_img* folder, and the recognition label will be saved in *rec_gt.txt*.\n" + + return msg + +def keysInfo(lang='en'): + if lang == 'ch': + msg = "快捷键\t\t\t说明\n" \ + "———————————————————————\n"\ + "Ctrl + shift + R\t\t对当前图片的所有标记重新识别\n" \ + "W\t\t\t新建矩形框\n" \ + "Q\t\t\t新建四点框\n" \ + "Ctrl + E\t\t编辑所选框标签\n" \ + "Ctrl + R\t\t重新识别所选标记\n" \ + "Ctrl + C\t\t复制并粘贴选中的标记框\n" \ + "Ctrl + 鼠标左键\t\t多选标记框\n" \ + "Backspace\t\t删除所选框\n" \ + "Ctrl + V\t\t确认本张图片标记\n" \ + "Ctrl + Shift + d\t删除本张图片\n" \ + "D\t\t\t下一张图片\n" \ + "A\t\t\t上一张图片\n" \ + "Ctrl++\t\t\t缩小\n" \ + "Ctrl--\t\t\t放大\n" \ + "↑→↓←\t\t\t移动标记框\n" \ + "———————————————————————\n" \ + "注:Mac用户Command键替换上述Ctrl键" + + else: + msg = "Shortcut Keys\t\tDescription\n" \ + "———————————————————————\n" \ + "Ctrl + shift + R\t\tRe-recognize all the labels\n" \ + "\t\t\tof the current image\n" \ + "\n"\ + "W\t\t\tCreate a rect box\n" \ + "Q\t\t\tCreate a four-points box\n" \ + "Ctrl + E\t\tEdit label of the selected box\n" \ + "Ctrl + R\t\tRe-recognize the selected box\n" \ + "Ctrl + C\t\tCopy and paste the selected\n" \ + "\t\t\tbox\n" \ + "\n"\ + "Ctrl + Left Mouse\tMulti select the label\n" \ + "Button\t\t\tbox\n" \ + "\n"\ + "Backspace\t\tDelete the selected box\n" \ + "Ctrl + V\t\tCheck image\n" \ + "Ctrl + Shift + d\tDelete image\n" \ + "D\t\t\tNext image\n" \ + "A\t\t\tPrevious image\n" \ + "Ctrl++\t\t\tZoom in\n" \ + "Ctrl--\t\t\tZoom out\n" \ + "↑→↓←\t\t\tMove selected box" \ + "———————————————————————\n" \ + "Notice:For Mac users, use the 'Command' key instead of the 'Ctrl' key" + return msg \ No newline at end of file diff --git a/PPOCRLabel/resources.qrc b/PPOCRLabel/resources.qrc index 7b1179d882..14b52aa0bb 100644 --- a/PPOCRLabel/resources.qrc +++ b/PPOCRLabel/resources.qrc @@ -18,6 +18,8 @@ resources/icons/quit.png resources/icons/copy.png resources/icons/edit.png +resources/icons/rotateLeft.png +resources/icons/rotateRight.png resources/icons/open.png resources/icons/save.png resources/icons/format_voc.png diff --git a/PPOCRLabel/resources/icons/rotateLeft.png b/PPOCRLabel/resources/icons/rotateLeft.png new file mode 100644 index 0000000000..62f26af925 Binary files /dev/null and b/PPOCRLabel/resources/icons/rotateLeft.png differ diff --git a/PPOCRLabel/resources/icons/rotateRight.png b/PPOCRLabel/resources/icons/rotateRight.png new file mode 100644 index 0000000000..e0adb1a0c8 Binary files /dev/null and b/PPOCRLabel/resources/icons/rotateRight.png differ diff --git a/PPOCRLabel/resources/strings/strings-zh-CN.properties b/PPOCRLabel/resources/strings/strings-zh-CN.properties index 6af16edfaf..1cd4da7611 100644 --- a/PPOCRLabel/resources/strings/strings-zh-CN.properties +++ b/PPOCRLabel/resources/strings/strings-zh-CN.properties @@ -31,6 +31,7 @@ save=确认 saveAs=另存为 fitWinDetail=缩放到当前窗口大小 openDir=打开目录 +openDatasetDir=打开数据集路径 copyPrevBounding=复制当前图像中的上一个边界框 showHide=显示/隐藏标签 changeSaveFormat=更改存储格式 @@ -85,18 +86,22 @@ detectionBoxposition=检测框位置 recognitionResult=识别结果 creatPolygon=四点标注 drawSquares=正方形标注 -saveRec=保存识别结果 +rotateLeft=图片左旋转90度 +rotateRight=图片右旋转90度 +saveRec=导出识别结果 tempLabel=待识别 +nullLabel=无法识别 steps=操作步骤 +keys=快捷键 choseModelLg=选择模型语言 cancel=取消 ok=确认 autolabeling=自动标注中 hideBox=隐藏所有标注 showBox=显示所有标注 -saveLabel=保存标记结果 +saveLabel=导出标记结果 singleRe=重识别此区块 labelDialogOption=弹出标记输入框 undo=撤销 undoLastPoint=撤销上个点 -autoSaveMode=自动保存标记结果 \ No newline at end of file +autoSaveMode=自动导出标记结果 \ No newline at end of file diff --git a/PPOCRLabel/resources/strings/strings.properties b/PPOCRLabel/resources/strings/strings.properties index 168c8b882a..70036e6560 100644 --- a/PPOCRLabel/resources/strings/strings.properties +++ b/PPOCRLabel/resources/strings/strings.properties @@ -3,6 +3,7 @@ openFileDetail=Open image or label file quit=Quit quitApp=Quit application openDir=Open Dir +openDatasetDir=Open DatasetDir copyPrevBounding=Copy previous Bounding Boxes in the current image changeSavedAnnotationDir=Change default saved Annotation dir openAnnotation=Open Annotation @@ -77,26 +78,30 @@ IR=Image Resize autoRecognition=Auto Recognition reRecognition=Re-recognition mfile=File -medit=Eidt +medit=Edit mview=View mhelp=Help iconList=Icon List detectionBoxposition=Detection box position recognitionResult=Recognition result creatPolygon=Create Quadrilateral +rotateLeft=Left turn 90 degrees +rotateRight=Right turn 90 degrees drawSquares=Draw Squares -saveRec=Save Recognition Result +saveRec=Export Recognition Result tempLabel=TEMPORARY +nullLabel=NULL steps=Steps +keys=Shortcut Keys choseModelLg=Choose Model Language cancel=Cancel ok=OK autolabeling=Automatic Labeling hideBox=Hide All Box showBox=Show All Box -saveLabel=Save Label +saveLabel=Export Label singleRe=Re-recognition RectBox labelDialogOption=Pop-up Label Input Dialog undo=Undo undoLastPoint=Undo Last Point -autoSaveMode=Auto Save Label Mode \ No newline at end of file +autoSaveMode=Auto Export Label Mode \ No newline at end of file diff --git a/README.md b/README.md index a5c52bdb35..0072e481a5 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ PaddleOCR supports both dynamic graph and static graph programming paradigm
- + +
The above pictures are the visualizations of the general ppocr_server model. For more effect pictures, please see [More visualizations](./doc/doc_en/visualization_en.md). @@ -42,7 +43,7 @@ The above pictures are the visualizations of the general ppocr_server model. For - Scan the QR code below with your Wechat, you can access to official technical exchange group. Look forward to your participation.
- +
@@ -94,7 +95,7 @@ For a new language request, please refer to [Guideline for new language_requests - [Python Inference](./doc/doc_en/inference_en.md) - [C++ Inference](./deploy/cpp_infer/readme_en.md) - [Serving](./deploy/pdserving/README.md) - - [Mobile](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme_en.md) + - [Mobile](./deploy/lite/readme_en.md) - [Benchmark](./doc/doc_en/benchmark_en.md) - Data Annotation and Synthesis - [Semi-automatic Annotation Tool: PPOCRLabel](./PPOCRLabel/README.md) diff --git a/README_ch.md b/README_ch.md index a6d456a531..aec248f81c 100755 --- a/README_ch.md +++ b/README_ch.md @@ -8,9 +8,9 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - 静态图版本:develop分支 **近期更新** +- 2021.4.8 release 2.1版本,新增AAAI 2021论文[端到端识别算法PGNet](./doc/doc_ch/pgnet.md)开源,[多语言模型](./doc/doc_ch/multi_languages.md)支持种类增加到80+。 - 2021.2.1 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数162个,每周一都会更新,欢迎大家持续关注。 -- 2021.1.26,28,29 PaddleOCR官方研发团队带来技术深入解读三日直播课,1月26日、28日、29日晚上19:30,[直播地址](https://live.bilibili.com/21689802) -- 2021.1.21 更新多语言识别模型,目前支持语种超过27种,[多语言模型下载](./doc/doc_ch/models_list.md),包括中文简体、中文繁体、英文、法文、德文、韩文、日文、意大利文、西班牙文、葡萄牙文、俄罗斯文、阿拉伯文等,后续计划可以参考[多语言研发计划](https://github.com/PaddlePaddle/PaddleOCR/issues/1048) +- 2021.1.21 更新多语言识别模型,目前支持语种超过27种,包括中文简体、中文繁体、英文、法文、德文、韩文、日文、意大利文、西班牙文、葡萄牙文、俄罗斯文、阿拉伯文等,后续计划可以参考[多语言研发计划](https://github.com/PaddlePaddle/PaddleOCR/issues/1048) - 2020.12.15 更新数据合成工具[Style-Text](./StyleText/README_ch.md),可以批量合成大量与目标场景类似的图像,在多个场景验证,效果明显提升。 - 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README_ch.md),辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。 - 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 @@ -46,7 +46,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - 微信扫描二维码加入官方交流群,获得更高效的问题答疑,与各行各业开发者充分交流,期待您的加入。
- +
## 快速体验 @@ -74,11 +74,13 @@ PaddleOCR同时支持动态图与静态图两种编程范式 ## 文档教程 - [快速安装](./doc/doc_ch/installation.md) - [中文OCR模型快速使用](./doc/doc_ch/quickstart.md) +- [多语言OCR模型快速使用](./doc/doc_ch/multi_languages.md) - [代码组织结构](./doc/doc_ch/tree.md) - 算法介绍 - [文本检测](./doc/doc_ch/algorithm_overview.md) - [文本识别](./doc/doc_ch/algorithm_overview.md) - - [PP-OCR Pipline](#PP-OCR) + - [PP-OCR Pipeline](#PP-OCR) + - [端到端PGNet算法](./doc/doc_ch/pgnet.md) - 模型训练/评估 - [文本检测](./doc/doc_ch/detection.md) - [文本识别](./doc/doc_ch/recognition.md) @@ -89,7 +91,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) - [基于C++预测引擎推理](./deploy/cpp_infer/readme.md) - [服务化部署](./deploy/pdserving/README_CN.md) - - [端侧部署](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme.md) + - [端侧部署](./deploy/lite/readme.md) - [Benchmark](./doc/doc_ch/benchmark.md) - 数据集 - [通用中英文OCR数据集](./doc/doc_ch/datasets.md) @@ -112,7 +114,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式 -## PP-OCR Pipline +## PP-OCR Pipeline
diff --git a/StyleText/engine/text_drawers.py b/StyleText/engine/text_drawers.py index aeec75c337..20375c1361 100644 --- a/StyleText/engine/text_drawers.py +++ b/StyleText/engine/text_drawers.py @@ -66,6 +66,7 @@ class StdTextDrawer(object): corpus_list.append(corpus[0:i]) text_input_list.append(text_input) corpus = corpus[i:] + i = 0 break draw.text((char_x, 2), char_i, fill=(0, 0, 0), font=font) char_x += char_size @@ -78,7 +79,6 @@ class StdTextDrawer(object): corpus_list.append(corpus[0:i]) text_input_list.append(text_input) - corpus = corpus[i:] break return corpus_list, text_input_list diff --git a/__init__.py b/__init__.py index 7d94f66be0..e22e466a84 100644 --- a/__init__.py +++ b/__init__.py @@ -11,7 +11,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import paddleocr +from .paddleocr import * -__all__ = ['PaddleOCR', 'draw_ocr'] -from .paddleocr import PaddleOCR -from .tools.infer.utility import draw_ocr +__version__ = paddleocr.VERSION +__all__ = ['PaddleOCR', 'PPStructure', 'draw_ocr', 'draw_structure_result', 'save_structure_res','download_with_progressbar'] diff --git a/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml b/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml index e001c37642..87718cad68 100644 --- a/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml +++ b/configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1200 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [3000, 2000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained checkpoints: diff --git a/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml b/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml index 4229248df4..7b07ef9964 100644 --- a/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml +++ b/configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1200 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [3000, 2000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet18_vd_pretrained checkpoints: diff --git a/configs/det/ch_ppocr_v2.1/ch_det_lite_train_cml_v2.1.yml b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_cml_v2.1.yml new file mode 100644 index 0000000000..dcf0e1f25f --- /dev/null +++ b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_cml_v2.1.yml @@ -0,0 +1,202 @@ +Global: + use_gpu: true + epoch_num: 1200 + log_smooth_window: 20 + print_batch_step: 2 + save_model_dir: ./output/ch_db_mv3/ + save_epoch_step: 1200 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [3000, 2000] + cal_metric_during_train: False + pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_en/img_10.jpg + save_res_path: ./output/det_db/predicts_db.txt + +Architecture: + name: DistillationModel + algorithm: Distillation + Models: + Student: + pretrained: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + freeze_params: false + return_all_feats: false + model_type: det + algorithm: DB + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: DBFPN + out_channels: 96 + Head: + name: DBHead + k: 50 + Student2: + pretrained: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + freeze_params: false + return_all_feats: false + model_type: det + algorithm: DB + Transform: + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: DBFPN + out_channels: 96 + Head: + name: DBHead + k: 50 + Teacher: + pretrained: ./pretrain_models/ch_ppocr_server_v2.0_det_train/best_accuracy + freeze_params: true + return_all_feats: false + model_type: det + algorithm: DB + Transform: + Backbone: + name: ResNet + layers: 18 + Neck: + name: DBFPN + out_channels: 256 + Head: + name: DBHead + k: 50 + +Loss: + name: CombinedLoss + loss_config_list: + - DistillationDilaDBLoss: + weight: 1.0 + model_name_pairs: + - ["Student", "Teacher"] + - ["Student2", "Teacher"] + key: maps + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + - DistillationDMLLoss: + model_name_pairs: + - ["Student", "Student2"] + maps_name: "thrink_maps" + weight: 1.0 + # act: None + model_name_pairs: ["Student", "Student2"] + key: maps + - DistillationDBLoss: + weight: 1.0 + model_name_list: ["Student", "Student2"] + # key: maps + # name: DBLoss + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + warmup_epoch: 2 + regularizer: + name: 'L2' + factor: 0 + +PostProcess: + name: DistillationDBPostProcess + model_name: ["Student", "Student2", "Teacher"] + # key: maps + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 + +Metric: + name: DistillationMetric + base_metric_name: DetMetric + main_indicator: hmean + key: "Student" + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/train_icdar2015_label.txt + ratio_list: [1.0] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - IaaAugment: + augmenter_args: + - { 'type': Fliplr, 'args': { 'p': 0.5 } } + - { 'type': Affine, 'args': { 'rotate': [-10, 10] } } + - { 'type': Resize, 'args': { 'size': [0.5, 3] } } + - EastRandomCropData: + size: [960, 960] + max_tries: 50 + keep_ratio: true + - MakeBorderMap: + shrink_ratio: 0.4 + thresh_min: 0.3 + thresh_max: 0.7 + - MakeShrinkMap: + shrink_ratio: 0.4 + min_text_size: 8 + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list + loader: + shuffle: True + drop_last: False + batch_size_per_card: 8 + num_workers: 4 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/test_icdar2015_label.txt + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - DetResizeForTest: +# image_shape: [736, 1280] + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'shape', 'polys', 'ignore_tags'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 # must be 1 + num_workers: 2 diff --git a/configs/det/ch_ppocr_v2.1/ch_det_lite_train_distill_v2.1.yml b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_distill_v2.1.yml new file mode 100644 index 0000000000..1159d71bf9 --- /dev/null +++ b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_distill_v2.1.yml @@ -0,0 +1,174 @@ +Global: + use_gpu: true + epoch_num: 1200 + log_smooth_window: 20 + print_batch_step: 2 + save_model_dir: ./output/ch_db_mv3/ + save_epoch_step: 1200 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [3000, 2000] + cal_metric_during_train: False + pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_en/img_10.jpg + save_res_path: ./output/det_db/predicts_db.txt + +Architecture: + name: DistillationModel + algorithm: Distillation + Models: + Student: + pretrained: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + freeze_params: false + return_all_feats: false + model_type: det + algorithm: DB + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: DBFPN + out_channels: 96 + Head: + name: DBHead + k: 50 + Teacher: + pretrained: ./pretrain_models/ch_ppocr_server_v2.0_det_train/best_accuracy + freeze_params: true + return_all_feats: false + model_type: det + algorithm: DB + Transform: + Backbone: + name: ResNet + layers: 18 + Neck: + name: DBFPN + out_channels: 256 + Head: + name: DBHead + k: 50 + +Loss: + name: CombinedLoss + loss_config_list: + - DistillationDilaDBLoss: + weight: 1.0 + model_name_pairs: + - ["Student", "Teacher"] + key: maps + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + - DistillationDBLoss: + weight: 1.0 + model_name_list: ["Student", "Teacher"] + # key: maps + name: DBLoss + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + warmup_epoch: 2 + regularizer: + name: 'L2' + factor: 0 + +PostProcess: + name: DistillationDBPostProcess + model_name: ["Student", "Student2"] + key: head_out + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 + +Metric: + name: DistillationMetric + base_metric_name: DetMetric + main_indicator: hmean + key: "Student" + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/train_icdar2015_label.txt + ratio_list: [1.0] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - IaaAugment: + augmenter_args: + - { 'type': Fliplr, 'args': { 'p': 0.5 } } + - { 'type': Affine, 'args': { 'rotate': [-10, 10] } } + - { 'type': Resize, 'args': { 'size': [0.5, 3] } } + - EastRandomCropData: + size: [960, 960] + max_tries: 50 + keep_ratio: true + - MakeBorderMap: + shrink_ratio: 0.4 + thresh_min: 0.3 + thresh_max: 0.7 + - MakeShrinkMap: + shrink_ratio: 0.4 + min_text_size: 8 + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list + loader: + shuffle: True + drop_last: False + batch_size_per_card: 8 + num_workers: 4 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/test_icdar2015_label.txt + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - DetResizeForTest: +# image_shape: [736, 1280] + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'shape', 'polys', 'ignore_tags'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 # must be 1 + num_workers: 2 diff --git a/configs/det/ch_ppocr_v2.1/ch_det_lite_train_dml_v2.1.yml b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_dml_v2.1.yml new file mode 100644 index 0000000000..7fe2d2e1a0 --- /dev/null +++ b/configs/det/ch_ppocr_v2.1/ch_det_lite_train_dml_v2.1.yml @@ -0,0 +1,176 @@ +Global: + use_gpu: true + epoch_num: 1200 + log_smooth_window: 20 + print_batch_step: 2 + save_model_dir: ./output/ch_db_mv3/ + save_epoch_step: 1200 + # evaluation is run every 5000 iterations after the 4000th iteration + eval_batch_step: [3000, 2000] + cal_metric_during_train: False + pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_en/img_10.jpg + save_res_path: ./output/det_db/predicts_db.txt + +Architecture: + name: DistillationModel + algorithm: Distillation + Models: + Student: + pretrained: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + freeze_params: false + return_all_feats: false + model_type: det + algorithm: DB + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: DBFPN + out_channels: 96 + Head: + name: DBHead + k: 50 + Student2: + pretrained: ./pretrain_models/MobileNetV3_large_x0_5_pretrained + freeze_params: false + return_all_feats: false + model_type: det + algorithm: DB + Transform: + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: DBFPN + out_channels: 96 + Head: + name: DBHead + k: 50 + + +Loss: + name: CombinedLoss + loss_config_list: + - DistillationDMLLoss: + model_name_pairs: + - ["Student", "Student2"] + maps_name: "thrink_maps" + weight: 1.0 + act: "softmax" + model_name_pairs: ["Student", "Student2"] + key: maps + - DistillationDBLoss: + weight: 1.0 + model_name_list: ["Student", "Student2"] + # key: maps + name: DBLoss + balance_loss: true + main_loss_type: DiceLoss + alpha: 5 + beta: 10 + ohem_ratio: 3 + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + warmup_epoch: 2 + regularizer: + name: 'L2' + factor: 0 + +PostProcess: + name: DistillationDBPostProcess + model_name: ["Student", "Student2"] + key: head_out + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 + +Metric: + name: DistillationMetric + base_metric_name: DetMetric + main_indicator: hmean + key: "Student" + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/train_icdar2015_label.txt + ratio_list: [1.0] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - IaaAugment: + augmenter_args: + - { 'type': Fliplr, 'args': { 'p': 0.5 } } + - { 'type': Affine, 'args': { 'rotate': [-10, 10] } } + - { 'type': Resize, 'args': { 'size': [0.5, 3] } } + - EastRandomCropData: + size: [960, 960] + max_tries: 50 + keep_ratio: true + - MakeBorderMap: + shrink_ratio: 0.4 + thresh_min: 0.3 + thresh_max: 0.7 + - MakeShrinkMap: + shrink_ratio: 0.4 + min_text_size: 8 + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list + loader: + shuffle: True + drop_last: False + batch_size_per_card: 8 + num_workers: 4 + +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data/icdar2015/text_localization/ + label_file_list: + - ./train_data/icdar2015/text_localization/test_icdar2015_label.txt + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - DetLabelEncode: # Class handling label + - DetResizeForTest: +# image_shape: [736, 1280] + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'shape', 'polys', 'ignore_tags'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 # must be 1 + num_workers: 2 diff --git a/configs/det/det_mv3_db.yml b/configs/det/det_mv3_db.yml index f8aab70543..b69ed58cd6 100644 --- a/configs/det/det_mv3_db.yml +++ b/configs/det/det_mv3_db.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1200 # evaluation is run every 2000 iterations eval_batch_step: [0, 2000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained checkpoints: diff --git a/configs/det/det_mv3_east.yml b/configs/det/det_mv3_east.yml index 187ac16054..4ae32ab004 100644 --- a/configs/det/det_mv3_east.yml +++ b/configs/det/det_mv3_east.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1000 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [4000, 5000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained checkpoints: diff --git a/configs/det/det_r50_vd_db.yml b/configs/det/det_r50_vd_db.yml index 3fa8948d17..42b3898ef4 100644 --- a/configs/det/det_r50_vd_db.yml +++ b/configs/det/det_r50_vd_db.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1200 # evaluation is run every 2000 iterations eval_batch_step: [0,2000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet50_vd_ssld_pretrained checkpoints: diff --git a/configs/det/det_r50_vd_east.yml b/configs/det/det_r50_vd_east.yml index abef0b6116..0253c5bd99 100644 --- a/configs/det/det_r50_vd_east.yml +++ b/configs/det/det_r50_vd_east.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1000 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [4000, 5000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet50_vd_pretrained/ checkpoints: diff --git a/configs/det/det_r50_vd_sast_icdar15.yml b/configs/det/det_r50_vd_sast_icdar15.yml index c24cae9013..dbfcefca96 100755 --- a/configs/det/det_r50_vd_sast_icdar15.yml +++ b/configs/det/det_r50_vd_sast_icdar15.yml @@ -7,19 +7,15 @@ Global: save_epoch_step: 1000 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [4000, 5000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet50_vd_ssld_pretrained/ - checkpoints: + checkpoints: save_inference_dir: use_visualdl: False - infer_img: + infer_img: save_res_path: ./output/sast_r50_vd_ic15/predicts_sast.txt + Architecture: model_type: det algorithm: SAST diff --git a/configs/det/det_r50_vd_sast_totaltext.yml b/configs/det/det_r50_vd_sast_totaltext.yml index e6f467c6ec..88dd31f3c2 100755 --- a/configs/det/det_r50_vd_sast_totaltext.yml +++ b/configs/det/det_r50_vd_sast_totaltext.yml @@ -7,11 +7,6 @@ Global: save_epoch_step: 1000 # evaluation is run every 5000 iterations after the 4000th iteration eval_batch_step: [4000, 5000] - # 1. If pretrained_model is saved in static mode, such as classification pretrained model - # from static branch, load_static_weights must be set as True. - # 2. If you want to finetune the pretrained models we provide in the docs, - # you should set load_static_weights as False. - load_static_weights: True cal_metric_during_train: False pretrained_model: ./pretrain_models/ResNet50_vd_ssld_pretrained/ checkpoints: diff --git a/configs/e2e/e2e_r50_vd_pg.yml b/configs/e2e/e2e_r50_vd_pg.yml new file mode 100644 index 0000000000..4a6e19f446 --- /dev/null +++ b/configs/e2e/e2e_r50_vd_pg.yml @@ -0,0 +1,114 @@ +Global: + use_gpu: True + epoch_num: 600 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/pgnet_r50_vd_totaltext/ + save_epoch_step: 10 + # evaluation is run every 0 iterationss after the 1000th iteration + eval_batch_step: [ 0, 1000 ] + cal_metric_during_train: False + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: + valid_set: totaltext # two mode: totaltext valid curved words, partvgg valid non-curved words + save_res_path: ./output/pgnet_r50_vd_totaltext/predicts_pgnet.txt + character_dict_path: ppocr/utils/ic15_dict.txt + character_type: EN + max_text_length: 50 # the max length in seq + max_text_nums: 30 # the max seq nums in a pic + tcl_len: 64 + +Architecture: + model_type: e2e + algorithm: PGNet + Transform: + Backbone: + name: ResNet + layers: 50 + Neck: + name: PGFPN + Head: + name: PGHead + +Loss: + name: PGLoss + tcl_bs: 64 + max_text_length: 50 # the same as Global: max_text_length + max_text_nums: 30 # the same as Global:max_text_nums + pad_num: 36 # the length of dict for pad + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + learning_rate: 0.001 + regularizer: + name: 'L2' + factor: 0 + + +PostProcess: + name: PGPostProcess + score_thresh: 0.5 + mode: fast # fast or slow two ways + +Metric: + name: E2EMetric + mode: A # two ways for eval, A: label from txt, B: label from gt_mat + gt_mat_dir: ./train_data/total_text/gt # the dir of gt_mat + character_dict_path: ppocr/utils/ic15_dict.txt + main_indicator: f_score_e2e + +Train: + dataset: + name: PGDataSet + data_dir: ./train_data/total_text/train + label_file_list: [./train_data/total_text/train/train.txt] + ratio_list: [1.0] + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - E2ELabelEncodeTrain: + - PGProcessTrain: + batch_size: 14 # same as loader: batch_size_per_card + min_crop_size: 24 + min_text_size: 4 + max_text_size: 512 + - KeepKeys: + keep_keys: [ 'images', 'tcl_maps', 'tcl_label_maps', 'border_maps','direction_maps', 'training_masks', 'label_list', 'pos_list', 'pos_mask' ] # dataloader will return list in this order + loader: + shuffle: True + drop_last: True + batch_size_per_card: 14 + num_workers: 16 + +Eval: + dataset: + name: PGDataSet + data_dir: ./train_data/total_text/test + label_file_list: [./train_data/total_text/test/test.txt] + transforms: + - DecodeImage: # load image + img_mode: RGB + channel_first: False + - E2ELabelEncodeTest: + - E2EResizeForTest: + max_side_len: 768 + - NormalizeImage: + scale: 1./255. + mean: [ 0.485, 0.456, 0.406 ] + std: [ 0.229, 0.224, 0.225 ] + order: 'hwc' + - ToCHWImage: + - KeepKeys: + keep_keys: [ 'image', 'shape', 'polys', 'texts', 'ignore_tags', 'img_id'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 1 # must be 1 + num_workers: 2 \ No newline at end of file diff --git a/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml b/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml index 6a524e22cf..717c16814b 100644 --- a/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml +++ b/configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: True + save_res_path: ./output/rec/predicts_chinese_common_v2.0.txt Optimizer: diff --git a/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml b/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml index c96621c568..660465f301 100644 --- a/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml +++ b/configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: True + save_res_path: ./output/rec/predicts_chinese_lite_v2.0.txt Optimizer: diff --git a/configs/rec/ch_ppocr_v2.1/rec_chinese_lite_train_distillation_v2.1.yml b/configs/rec/ch_ppocr_v2.1/rec_chinese_lite_train_distillation_v2.1.yml new file mode 100644 index 0000000000..27ba4fd70b --- /dev/null +++ b/configs/rec/ch_ppocr_v2.1/rec_chinese_lite_train_distillation_v2.1.yml @@ -0,0 +1,159 @@ +Global: + debug: false + use_gpu: true + epoch_num: 800 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_chinese_lite_distillation_v2.1 + save_epoch_step: 3 + eval_batch_step: [0, 2000] + cal_metric_during_train: true + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: false + infer_img: doc/imgs_words/ch/word_1.jpg + character_dict_path: ppocr/utils/ppocr_keys_v1.txt + character_type: ch + max_text_length: 25 + infer_mode: false + use_space_char: true + distributed: true + save_res_path: ./output/rec/predicts_chinese_lite_distillation_v2.1.txt + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Piecewise + decay_epochs : [700, 800] + values : [0.001, 0.0001] + warmup_epoch: 5 + regularizer: + name: L2 + factor: 2.0e-05 + +Architecture: + model_type: &model_type "rec" + name: DistillationModel + algorithm: Distillation + Models: + Teacher: + pretrained: + freeze_params: false + return_all_feats: true + model_type: *model_type + algorithm: CRNN + Transform: + Backbone: + name: MobileNetV1Enhance + scale: 0.5 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 64 + Head: + name: CTCHead + mid_channels: 96 + fc_decay: 0.00002 + Student: + pretrained: + freeze_params: false + return_all_feats: true + model_type: *model_type + algorithm: CRNN + Transform: + Backbone: + name: MobileNetV1Enhance + scale: 0.5 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 64 + Head: + name: CTCHead + mid_channels: 96 + fc_decay: 0.00002 + + +Loss: + name: CombinedLoss + loss_config_list: + - DistillationCTCLoss: + weight: 1.0 + model_name_list: ["Student", "Teacher"] + key: head_out + - DistillationDMLLoss: + weight: 1.0 + act: "softmax" + model_name_pairs: + - ["Student", "Teacher"] + key: head_out + - DistillationDistanceLoss: + weight: 1.0 + mode: "l2" + model_name_pairs: + - ["Student", "Teacher"] + key: backbone_out + +PostProcess: + name: DistillationCTCLabelDecode + model_name: ["Student", "Teacher"] + key: head_out + +Metric: + name: DistillationMetric + base_metric_name: RecMetric + main_indicator: acc + key: "Student" + +Train: + dataset: + name: SimpleDataSet + data_dir: ./train_data/ + label_file_list: + - ./train_data/train_list.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: + - CTCLabelEncode: + - RecResizeImg: + image_shape: [3, 32, 320] + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: true + batch_size_per_card: 128 + drop_last: true + num_sections: 1 + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: ./train_data + label_file_list: + - ./train_data/val_list.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: + - RecResizeImg: + image_shape: [3, 32, 320] + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 128 + num_workers: 8 diff --git a/configs/rec/multi_language/generate_multi_language_configs.py b/configs/rec/multi_language/generate_multi_language_configs.py index 027a65c0c7..6759ca2a46 100644 --- a/configs/rec/multi_language/generate_multi_language_configs.py +++ b/configs/rec/multi_language/generate_multi_language_configs.py @@ -19,21 +19,56 @@ import logging logging.basicConfig(level=logging.INFO) support_list = { - 'it':'italian', 'xi':'spanish', 'pu':'portuguese', 'ru':'russian', 'ar':'arabic', - 'ta':'tamil', 'ug':'uyghur', 'fa':'persian', 'ur':'urdu', 'rs':'serbian latin', - 'oc':'occitan', 'rsc':'serbian cyrillic', 'bg':'bulgarian', 'uk':'ukranian', 'be':'belarusian', - 'te':'telugu', 'ka':'kannada', 'chinese_cht':'chinese tradition','hi':'hindi','mr':'marathi', - 'ne':'nepali', + 'it': 'italian', + 'xi': 'spanish', + 'pu': 'portuguese', + 'ru': 'russian', + 'ar': 'arabic', + 'ta': 'tamil', + 'ug': 'uyghur', + 'fa': 'persian', + 'ur': 'urdu', + 'rs': 'serbian latin', + 'oc': 'occitan', + 'rsc': 'serbian cyrillic', + 'bg': 'bulgarian', + 'uk': 'ukranian', + 'be': 'belarusian', + 'te': 'telugu', + 'ka': 'kannada', + 'chinese_cht': 'chinese tradition', + 'hi': 'hindi', + 'mr': 'marathi', + 'ne': 'nepali', } -assert( - os.path.isfile("./rec_multi_language_lite_train.yml") - ),"Loss basic configuration file rec_multi_language_lite_train.yml.\ + +latin_lang = [ + 'af', 'az', 'bs', 'cs', 'cy', 'da', 'de', 'es', 'et', 'fr', 'ga', 'hr', + 'hu', 'id', 'is', 'it', 'ku', 'la', 'lt', 'lv', 'mi', 'ms', 'mt', 'nl', + 'no', 'oc', 'pi', 'pl', 'pt', 'ro', 'rs_latin', 'sk', 'sl', 'sq', 'sv', + 'sw', 'tl', 'tr', 'uz', 'vi', 'latin' +] +arabic_lang = ['ar', 'fa', 'ug', 'ur'] +cyrillic_lang = [ + 'ru', 'rs_cyrillic', 'be', 'bg', 'uk', 'mn', 'abq', 'ady', 'kbd', 'ava', + 'dar', 'inh', 'che', 'lbe', 'lez', 'tab', 'cyrillic' +] +devanagari_lang = [ + 'hi', 'mr', 'ne', 'bh', 'mai', 'ang', 'bho', 'mah', 'sck', 'new', 'gom', + 'sa', 'bgc', 'devanagari' +] +multi_lang = latin_lang + arabic_lang + cyrillic_lang + devanagari_lang + +assert (os.path.isfile("./rec_multi_language_lite_train.yml") + ), "Loss basic configuration file rec_multi_language_lite_train.yml.\ You can download it from \ https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/configs/rec/multi_language/" - -global_config = yaml.load(open("./rec_multi_language_lite_train.yml", 'rb'), Loader=yaml.Loader) + +global_config = yaml.load( + open("./rec_multi_language_lite_train.yml", 'rb'), Loader=yaml.Loader) project_path = os.path.abspath(os.path.join(os.getcwd(), "../../../")) + class ArgsParser(ArgumentParser): def __init__(self): super(ArgsParser, self).__init__( @@ -41,15 +76,30 @@ class ArgsParser(ArgumentParser): self.add_argument( "-o", "--opt", nargs='+', help="set configuration options") self.add_argument( - "-l", "--language", nargs='+', help="set language type, support {}".format(support_list)) + "-l", + "--language", + nargs='+', + help="set language type, support {}".format(support_list)) self.add_argument( - "--train",type=str,help="you can use this command to change the train dataset default path") + "--train", + type=str, + help="you can use this command to change the train dataset default path" + ) self.add_argument( - "--val",type=str,help="you can use this command to change the eval dataset default path") + "--val", + type=str, + help="you can use this command to change the eval dataset default path" + ) self.add_argument( - "--dict",type=str,help="you can use this command to change the dictionary default path") + "--dict", + type=str, + help="you can use this command to change the dictionary default path" + ) self.add_argument( - "--data_dir",type=str,help="you can use this command to change the dataset default root path") + "--data_dir", + type=str, + help="you can use this command to change the dataset default root path" + ) def parse_args(self, argv=None): args = super(ArgsParser, self).parse_args(argv) @@ -68,21 +118,37 @@ class ArgsParser(ArgumentParser): return config def _set_language(self, type): - assert(type),"please use -l or --language to choose language type" + lang = type[0] + assert (type), "please use -l or --language to choose language type" assert( - type[0] in support_list.keys() + lang in support_list.keys() or lang in multi_lang ),"the sub_keys(-l or --language) can only be one of support list: \n{},\nbut get: {}, " \ - "please check your running command".format(support_list, type) - global_config['Global']['character_dict_path'] = 'ppocr/utils/dict/{}_dict.txt'.format(type[0]) - global_config['Global']['save_model_dir'] = './output/rec_{}_lite'.format(type[0]) - global_config['Train']['dataset']['label_file_list'] = ["train_data/{}_train.txt".format(type[0])] - global_config['Eval']['dataset']['label_file_list'] = ["train_data/{}_val.txt".format(type[0])] - global_config['Global']['character_type'] = type[0] - assert( - os.path.isfile(os.path.join(project_path,global_config['Global']['character_dict_path'])) - ),"Loss default dictionary file {}_dict.txt.You can download it from \ -https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/ppocr/utils/dict/".format(type[0]) - return type[0] + "please check your running command".format(multi_lang, type) + if lang in latin_lang: + lang = "latin" + elif lang in arabic_lang: + lang = "arabic" + elif lang in cyrillic_lang: + lang = "cyrillic" + elif lang in devanagari_lang: + lang = "devanagari" + global_config['Global'][ + 'character_dict_path'] = 'ppocr/utils/dict/{}_dict.txt'.format(lang) + global_config['Global'][ + 'save_model_dir'] = './output/rec_{}_lite'.format(lang) + global_config['Train']['dataset'][ + 'label_file_list'] = ["train_data/{}_train.txt".format(lang)] + global_config['Eval']['dataset'][ + 'label_file_list'] = ["train_data/{}_val.txt".format(lang)] + global_config['Global']['character_type'] = lang + assert ( + os.path.isfile( + os.path.join(project_path, global_config['Global'][ + 'character_dict_path'])) + ), "Loss default dictionary file {}_dict.txt.You can download it from \ +https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/ppocr/utils/dict/".format( + lang) + return lang def merge_config(config): @@ -110,43 +176,51 @@ def merge_config(config): cur[sub_key] = value else: cur = cur[sub_key] - -def loss_file(path): - assert( - os.path.exists(path) - ),"There is no such file:{},Please do not forget to put in the specified file".format(path) - + +def loss_file(path): + assert ( + os.path.exists(path) + ), "There is no such file:{},Please do not forget to put in the specified file".format( + path) + + if __name__ == '__main__': FLAGS = ArgsParser().parse_args() merge_config(FLAGS.opt) save_file_path = 'rec_{}_lite_train.yml'.format(FLAGS.language) if os.path.isfile(save_file_path): os.remove(save_file_path) - + if FLAGS.train: global_config['Train']['dataset']['label_file_list'] = [FLAGS.train] - train_label_path = os.path.join(project_path,FLAGS.train) + train_label_path = os.path.join(project_path, FLAGS.train) loss_file(train_label_path) if FLAGS.val: global_config['Eval']['dataset']['label_file_list'] = [FLAGS.val] - eval_label_path = os.path.join(project_path,FLAGS.val) + eval_label_path = os.path.join(project_path, FLAGS.val) loss_file(eval_label_path) if FLAGS.dict: global_config['Global']['character_dict_path'] = FLAGS.dict - dict_path = os.path.join(project_path,FLAGS.dict) + dict_path = os.path.join(project_path, FLAGS.dict) loss_file(dict_path) if FLAGS.data_dir: global_config['Eval']['dataset']['data_dir'] = FLAGS.data_dir global_config['Train']['dataset']['data_dir'] = FLAGS.data_dir - data_dir = os.path.join(project_path,FLAGS.data_dir) + data_dir = os.path.join(project_path, FLAGS.data_dir) loss_file(data_dir) - + with open(save_file_path, 'w') as f: - yaml.dump(dict(global_config), f, default_flow_style=False, sort_keys=False) + yaml.dump( + dict(global_config), f, default_flow_style=False, sort_keys=False) logging.info("Project path is :{}".format(project_path)) - logging.info("Train list path set to :{}".format(global_config['Train']['dataset']['label_file_list'][0])) - logging.info("Eval list path set to :{}".format(global_config['Eval']['dataset']['label_file_list'][0])) - logging.info("Dataset root path set to :{}".format(global_config['Eval']['dataset']['data_dir'])) - logging.info("Dict path set to :{}".format(global_config['Global']['character_dict_path'])) - logging.info("Config file set to :configs/rec/multi_language/{}".format(save_file_path)) + logging.info("Train list path set to :{}".format(global_config['Train'][ + 'dataset']['label_file_list'][0])) + logging.info("Eval list path set to :{}".format(global_config['Eval'][ + 'dataset']['label_file_list'][0])) + logging.info("Dataset root path set to :{}".format(global_config['Eval'][ + 'dataset']['data_dir'])) + logging.info("Dict path set to :{}".format(global_config['Global'][ + 'character_dict_path'])) + logging.info("Config file set to :configs/rec/multi_language/{}". + format(save_file_path)) diff --git a/configs/rec/multi_language/rec_arabic_lite_train.yml b/configs/rec/multi_language/rec_arabic_lite_train.yml new file mode 100644 index 0000000000..6dcfd1b699 --- /dev/null +++ b/configs/rec/multi_language/rec_arabic_lite_train.yml @@ -0,0 +1,111 @@ +Global: + use_gpu: true + epoch_num: 500 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_arabic_lite + save_epoch_step: 3 + eval_batch_step: + - 0 + - 2000 + cal_metric_during_train: true + pretrained_model: null + checkpoints: null + save_inference_dir: null + use_visualdl: false + infer_img: null + character_dict_path: ppocr/utils/dict/arabic_dict.txt + character_type: arabic + max_text_length: 25 + infer_mode: false + use_space_char: true +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + regularizer: + name: L2 + factor: 1.0e-05 +Architecture: + model_type: rec + algorithm: CRNN + Transform: null + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: small + small_stride: + - 1 + - 2 + - 2 + - 2 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 48 + Head: + name: CTCHead + fc_decay: 1.0e-05 +Loss: + name: CTCLoss +PostProcess: + name: CTCLabelDecode +Metric: + name: RecMetric + main_indicator: acc +Train: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/arabic_train.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: null + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: true + batch_size_per_card: 256 + drop_last: true + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/arabic_val.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 256 + num_workers: 8 diff --git a/configs/rec/multi_language/rec_cyrillic_lite_train.yml b/configs/rec/multi_language/rec_cyrillic_lite_train.yml new file mode 100644 index 0000000000..52527c1dfb --- /dev/null +++ b/configs/rec/multi_language/rec_cyrillic_lite_train.yml @@ -0,0 +1,111 @@ +Global: + use_gpu: true + epoch_num: 500 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_cyrillic_lite + save_epoch_step: 3 + eval_batch_step: + - 0 + - 2000 + cal_metric_during_train: true + pretrained_model: null + checkpoints: null + save_inference_dir: null + use_visualdl: false + infer_img: null + character_dict_path: ppocr/utils/dict/cyrillic_dict.txt + character_type: cyrillic + max_text_length: 25 + infer_mode: false + use_space_char: true +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + regularizer: + name: L2 + factor: 1.0e-05 +Architecture: + model_type: rec + algorithm: CRNN + Transform: null + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: small + small_stride: + - 1 + - 2 + - 2 + - 2 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 48 + Head: + name: CTCHead + fc_decay: 1.0e-05 +Loss: + name: CTCLoss +PostProcess: + name: CTCLabelDecode +Metric: + name: RecMetric + main_indicator: acc +Train: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/cyrillic_train.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: null + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: true + batch_size_per_card: 256 + drop_last: true + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/cyrillic_val.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 256 + num_workers: 8 diff --git a/configs/rec/multi_language/rec_devanagari_lite_train.yml b/configs/rec/multi_language/rec_devanagari_lite_train.yml new file mode 100644 index 0000000000..e1a7c829c3 --- /dev/null +++ b/configs/rec/multi_language/rec_devanagari_lite_train.yml @@ -0,0 +1,111 @@ +Global: + use_gpu: true + epoch_num: 500 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_devanagari_lite + save_epoch_step: 3 + eval_batch_step: + - 0 + - 2000 + cal_metric_during_train: true + pretrained_model: null + checkpoints: null + save_inference_dir: null + use_visualdl: false + infer_img: null + character_dict_path: ppocr/utils/dict/devanagari_dict.txt + character_type: devanagari + max_text_length: 25 + infer_mode: false + use_space_char: true +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + regularizer: + name: L2 + factor: 1.0e-05 +Architecture: + model_type: rec + algorithm: CRNN + Transform: null + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: small + small_stride: + - 1 + - 2 + - 2 + - 2 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 48 + Head: + name: CTCHead + fc_decay: 1.0e-05 +Loss: + name: CTCLoss +PostProcess: + name: CTCLabelDecode +Metric: + name: RecMetric + main_indicator: acc +Train: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/devanagari_train.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: null + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: true + batch_size_per_card: 256 + drop_last: true + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/devanagari_val.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 256 + num_workers: 8 diff --git a/configs/rec/multi_language/rec_en_number_lite_train.yml b/configs/rec/multi_language/rec_en_number_lite_train.yml index 13eda8481c..fff4dfcd90 100644 --- a/configs/rec/multi_language/rec_en_number_lite_train.yml +++ b/configs/rec/multi_language/rec_en_number_lite_train.yml @@ -15,11 +15,11 @@ Global: use_visualdl: False infer_img: # for data or label process - character_dict_path: ppocr/utils/dict/en_dict.txt + character_dict_path: ppocr/utils/en_dict.txt character_type: EN max_text_length: 25 infer_mode: False - use_space_char: False + use_space_char: True Optimizer: diff --git a/configs/rec/multi_language/rec_latin_lite_train.yml b/configs/rec/multi_language/rec_latin_lite_train.yml new file mode 100644 index 0000000000..e71112b4b4 --- /dev/null +++ b/configs/rec/multi_language/rec_latin_lite_train.yml @@ -0,0 +1,111 @@ +Global: + use_gpu: true + epoch_num: 500 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec_latin_lite + save_epoch_step: 3 + eval_batch_step: + - 0 + - 2000 + cal_metric_during_train: true + pretrained_model: null + checkpoints: null + save_inference_dir: null + use_visualdl: false + infer_img: null + character_dict_path: ppocr/utils/dict/latin_dict.txt + character_type: latin + max_text_length: 25 + infer_mode: false + use_space_char: true +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + lr: + name: Cosine + learning_rate: 0.001 + regularizer: + name: L2 + factor: 1.0e-05 +Architecture: + model_type: rec + algorithm: CRNN + Transform: null + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: small + small_stride: + - 1 + - 2 + - 2 + - 2 + Neck: + name: SequenceEncoder + encoder_type: rnn + hidden_size: 48 + Head: + name: CTCHead + fc_decay: 1.0e-05 +Loss: + name: CTCLoss +PostProcess: + name: CTCLabelDecode +Metric: + name: RecMetric + main_indicator: acc +Train: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/latin_train.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - RecAug: null + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: true + batch_size_per_card: 256 + drop_last: true + num_workers: 8 +Eval: + dataset: + name: SimpleDataSet + data_dir: train_data/ + label_file_list: + - train_data/latin_val.txt + transforms: + - DecodeImage: + img_mode: BGR + channel_first: false + - CTCLabelEncode: null + - RecResizeImg: + image_shape: + - 3 + - 32 + - 320 + - KeepKeys: + keep_keys: + - image + - label + - length + loader: + shuffle: false + drop_last: false + batch_size_per_card: 256 + num_workers: 8 diff --git a/configs/rec/rec_icdar15_train.yml b/configs/rec/rec_icdar15_train.yml index 5ae47c67d8..500d2333f2 100644 --- a/configs/rec/rec_icdar15_train.yml +++ b/configs/rec/rec_icdar15_train.yml @@ -10,7 +10,7 @@ Global: cal_metric_during_train: True pretrained_model: checkpoints: - save_inference_dir: + save_inference_dir: ./ use_visualdl: False infer_img: doc/imgs_words_en/word_10.png # for data or label process @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_ic15.txt Optimizer: name: Adam @@ -59,8 +60,8 @@ Metric: Train: dataset: name: SimpleDataSet - data_dir: ./train_data/ - label_file_list: ["./train_data/train_list.txt"] + data_dir: ./train_data/ic15_data/ + label_file_list: ["./train_data/ic15_data/rec_gt_train.txt"] transforms: - DecodeImage: # load image img_mode: BGR @@ -80,8 +81,8 @@ Train: Eval: dataset: name: SimpleDataSet - data_dir: ./train_data/ - label_file_list: ["./train_data/train_list.txt"] + data_dir: ./train_data/ic15_data + label_file_list: ["./train_data/ic15_data/rec_gt_test.txt"] transforms: - DecodeImage: # load image img_mode: BGR diff --git a/configs/rec/rec_mtb_nrtr.yml b/configs/rec/rec_mtb_nrtr.yml new file mode 100644 index 0000000000..635c392d70 --- /dev/null +++ b/configs/rec/rec_mtb_nrtr.yml @@ -0,0 +1,102 @@ +Global: + use_gpu: True + epoch_num: 21 + log_smooth_window: 20 + print_batch_step: 10 + save_model_dir: ./output/rec/nrtr/ + save_epoch_step: 1 + # evaluation is run every 2000 iterations + eval_batch_step: [0, 2000] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_words_en/word_10.png + # for data or label process + character_dict_path: + character_type: EN_symbol + max_text_length: 25 + infer_mode: False + use_space_char: True + save_res_path: ./output/rec/predicts_nrtr.txt + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.99 + clip_norm: 5.0 + lr: + name: Cosine + learning_rate: 0.0005 + warmup_epoch: 2 + regularizer: + name: 'L2' + factor: 0. + +Architecture: + model_type: rec + algorithm: NRTR + in_channels: 1 + Transform: + Backbone: + name: MTB + cnn_num: 2 + Head: + name: Transformer + d_model: 512 + num_encoder_layers: 6 + beam_size: 10 # When Beam size is greater than 0, it means to use beam search when evaluation. + + +Loss: + name: NRTRLoss + smoothing: True + +PostProcess: + name: NRTRLabelDecode + +Metric: + name: RecMetric + main_indicator: acc + +Train: + dataset: + name: LMDBDataSet + data_dir: ./train_data/data_lmdb_release/training/ + transforms: + - NRTRDecodeImage: # load image + img_mode: BGR + channel_first: False + - NRTRLabelEncode: # Class handling label + - NRTRRecResizeImg: + image_shape: [100, 32] + resize_type: PIL # PIL or OpenCV + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: True + batch_size_per_card: 512 + drop_last: True + num_workers: 8 + +Eval: + dataset: + name: LMDBDataSet + data_dir: ./train_data/data_lmdb_release/evaluation/ + transforms: + - NRTRDecodeImage: # load image + img_mode: BGR + channel_first: False + - NRTRLabelEncode: # Class handling label + - NRTRRecResizeImg: + image_shape: [100, 32] + resize_type: PIL # PIL or OpenCV + - KeepKeys: + keep_keys: ['image', 'label', 'length'] # dataloader will return list in this order + loader: + shuffle: False + drop_last: False + batch_size_per_card: 256 + num_workers: 1 + use_shared_memory: False diff --git a/configs/rec/rec_mv3_none_bilstm_ctc.yml b/configs/rec/rec_mv3_none_bilstm_ctc.yml index 900e98b6b3..9e0bd23edb 100644 --- a/configs/rec/rec_mv3_none_bilstm_ctc.yml +++ b/configs/rec/rec_mv3_none_bilstm_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_mv3_none_bilstm_ctc.txt Optimizer: name: Adam diff --git a/configs/rec/rec_mv3_none_none_ctc.yml b/configs/rec/rec_mv3_none_none_ctc.yml index 6d86b90c00..904afe1134 100644 --- a/configs/rec/rec_mv3_none_none_ctc.yml +++ b/configs/rec/rec_mv3_none_none_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_mv3_none_none_ctc.txt Optimizer: name: Adam diff --git a/configs/rec/rec_mv3_tps_bilstm_att.yml b/configs/rec/rec_mv3_tps_bilstm_att.yml index 33aed74d83..feaeb0545c 100644 --- a/configs/rec/rec_mv3_tps_bilstm_att.yml +++ b/configs/rec/rec_mv3_tps_bilstm_att.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_mv3_tps_bilstm_att.txt Optimizer: diff --git a/configs/rec/rec_mv3_tps_bilstm_ctc.yml b/configs/rec/rec_mv3_tps_bilstm_ctc.yml index 026c6a9dfb..65ab23c42a 100644 --- a/configs/rec/rec_mv3_tps_bilstm_ctc.yml +++ b/configs/rec/rec_mv3_tps_bilstm_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_mv3_tps_bilstm_ctc.txt Optimizer: name: Adam diff --git a/configs/rec/rec_r34_vd_none_bilstm_ctc.yml b/configs/rec/rec_r34_vd_none_bilstm_ctc.yml index 4052d426e5..331bb36ed8 100644 --- a/configs/rec/rec_r34_vd_none_bilstm_ctc.yml +++ b/configs/rec/rec_r34_vd_none_bilstm_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_r34_vd_none_bilstm_ctc.txt Optimizer: name: Adam diff --git a/configs/rec/rec_r34_vd_none_none_ctc.yml b/configs/rec/rec_r34_vd_none_none_ctc.yml index c3e1d9a3a9..695a46958f 100644 --- a/configs/rec/rec_r34_vd_none_none_ctc.yml +++ b/configs/rec/rec_r34_vd_none_none_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_r34_vd_none_none_ctc.txt Optimizer: name: Adam diff --git a/configs/rec/rec_r34_vd_tps_bilstm_att.yml b/configs/rec/rec_r34_vd_tps_bilstm_att.yml index 87a1455984..fdd3588c84 100644 --- a/configs/rec/rec_r34_vd_tps_bilstm_att.yml +++ b/configs/rec/rec_r34_vd_tps_bilstm_att.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_b3_rare_r34_none_gru.txt Optimizer: diff --git a/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml b/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml index 8b80b82dd6..67108a6eac 100644 --- a/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml +++ b/configs/rec/rec_r34_vd_tps_bilstm_ctc.yml @@ -19,6 +19,7 @@ Global: max_text_length: 25 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_r34_vd_tps_bilstm_ctc.txt Optimizer: name: Adam @@ -37,7 +38,7 @@ Architecture: name: TPS num_fiducial: 20 loc_lr: 0.1 - model_name: small + model_name: large Backbone: name: ResNet layers: 34 diff --git a/configs/rec/rec_r50_fpn_srn.yml b/configs/rec/rec_r50_fpn_srn.yml index 34a997f3c3..fa7b1ae4e5 100644 --- a/configs/rec/rec_r50_fpn_srn.yml +++ b/configs/rec/rec_r50_fpn_srn.yml @@ -20,6 +20,7 @@ Global: num_heads: 8 infer_mode: False use_space_char: False + save_res_path: ./output/rec/predicts_srn.txt Optimizer: diff --git a/configs/table/table_mv3.yml b/configs/table/table_mv3.yml new file mode 100755 index 0000000000..a74e18d318 --- /dev/null +++ b/configs/table/table_mv3.yml @@ -0,0 +1,116 @@ +Global: + use_gpu: true + epoch_num: 50 + log_smooth_window: 20 + print_batch_step: 5 + save_model_dir: ./output/table_mv3/ + save_epoch_step: 5 + # evaluation is run every 400 iterations after the 0th iteration + eval_batch_step: [0, 400] + cal_metric_during_train: True + pretrained_model: + checkpoints: + save_inference_dir: + use_visualdl: False + infer_img: doc/imgs_words/ch/word_1.jpg + # for data or label process + character_dict_path: ppocr/utils/dict/table_structure_dict.txt + character_type: en + max_text_length: 100 + max_elem_length: 500 + max_cell_num: 500 + infer_mode: False + process_total_num: 0 + process_cut_num: 0 + + +Optimizer: + name: Adam + beta1: 0.9 + beta2: 0.999 + clip_norm: 5.0 + lr: + learning_rate: 0.001 + regularizer: + name: 'L2' + factor: 0.00000 + +Architecture: + model_type: table + algorithm: TableAttn + Backbone: + name: MobileNetV3 + scale: 1.0 + model_name: small + disable_se: True + Head: + name: TableAttentionHead + hidden_size: 256 + l2_decay: 0.00001 + loc_type: 2 + +Loss: + name: TableAttentionLoss + structure_weight: 100.0 + loc_weight: 10000.0 + +PostProcess: + name: TableLabelDecode + +Metric: + name: TableMetric + main_indicator: acc + +Train: + dataset: + name: PubTabDataSet + data_dir: train_data/table/pubtabnet/train/ + label_file_path: train_data/table/pubtabnet/PubTabNet_2.0.0_train.jsonl + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - ResizeTableImage: + max_len: 488 + - TableLabelEncode: + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - PaddingTableImage: + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'structure', 'bbox_list', 'sp_tokens', 'bbox_list_mask'] + loader: + shuffle: True + batch_size_per_card: 32 + drop_last: True + num_workers: 1 + +Eval: + dataset: + name: PubTabDataSet + data_dir: train_data/table/pubtabnet/val/ + label_file_path: train_data/table/pubtabnet/PubTabNet_2.0.0_val.jsonl + transforms: + - DecodeImage: # load image + img_mode: BGR + channel_first: False + - ResizeTableImage: + max_len: 488 + - TableLabelEncode: + - NormalizeImage: + scale: 1./255. + mean: [0.485, 0.456, 0.406] + std: [0.229, 0.224, 0.225] + order: 'hwc' + - PaddingTableImage: + - ToCHWImage: + - KeepKeys: + keep_keys: ['image', 'structure', 'bbox_list', 'sp_tokens', 'bbox_list_mask'] + loader: + shuffle: False + drop_last: False + batch_size_per_card: 16 + num_workers: 1 diff --git a/deploy/android_demo/.gitignore b/deploy/android_demo/.gitignore new file mode 100644 index 0000000000..93dcb29353 --- /dev/null +++ b/deploy/android_demo/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/* +.DS_Store +/build +/captures +.externalNativeBuild + diff --git a/deploy/android_demo/README.md b/deploy/android_demo/README.md new file mode 100644 index 0000000000..1642323ebb --- /dev/null +++ b/deploy/android_demo/README.md @@ -0,0 +1,19 @@ +# 如何快速测试 +### 1. 安装最新版本的Android Studio +可以从 https://developer.android.com/studio 下载。本Demo使用是4.0版本Android Studio编写。 + +### 2. 按照NDK 20 以上版本 +Demo测试的时候使用的是NDK 20b版本,20版本以上均可以支持编译成功。 + +如果您是初学者,可以用以下方式安装和测试NDK编译环境。 +点击 File -> New ->New Project, 新建 "Native C++" project + +### 3. 导入项目 +点击 File->New->Import Project..., 然后跟着Android Studio的引导导入 + + +# 获得更多支持 +前往[端计算模型生成平台EasyEdge](https://ai.baidu.com/easyedge/app/open_source_demo?referrerUrl=paddlelite),获得更多开发支持: + +- Demo APP:可使用手机扫码安装,方便手机端快速体验文字识别 +- SDK:模型被封装为适配不同芯片硬件和操作系统SDK,包括完善的接口,方便进行二次开发 diff --git a/deploy/android_demo/app/.gitignore b/deploy/android_demo/app/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/deploy/android_demo/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/deploy/android_demo/app/build.gradle b/deploy/android_demo/app/build.gradle new file mode 100644 index 0000000000..cff8d5f611 --- /dev/null +++ b/deploy/android_demo/app/build.gradle @@ -0,0 +1,98 @@ +import java.security.MessageDigest + +apply plugin: 'com.android.application' + +android { + compileSdkVersion 29 + defaultConfig { + applicationId "com.baidu.paddle.lite.demo.ocr" + minSdkVersion 23 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cppFlags "-std=c++11 -frtti -fexceptions -Wno-format" + arguments '-DANDROID_PLATFORM=android-23', '-DANDROID_STL=c++_shared' ,"-DANDROID_ARM_NEON=TRUE" + } + } + ndk { + // abiFilters "arm64-v8a", "armeabi-v7a" + abiFilters "arm64-v8a", "armeabi-v7a" + ldLibs "jnigraphics" + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + externalNativeBuild { + cmake { + path "src/main/cpp/CMakeLists.txt" + version "3.10.2" + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} + +def archives = [ + [ + 'src' : 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/paddle_lite_libs_v2_9_0.tar.gz', + 'dest': 'PaddleLite' + ], + [ + 'src' : 'https://paddlelite-demo.bj.bcebos.com/libs/android/opencv-4.2.0-android-sdk.tar.gz', + 'dest': 'OpenCV' + ], + [ + 'src' : 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ocr_v2_for_cpu.tar.gz', + 'dest' : 'src/main/assets/models' + ], + [ + 'src' : 'https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_dict.tar.gz', + 'dest' : 'src/main/assets/labels' + ] +] + +task downloadAndExtractArchives(type: DefaultTask) { + doFirst { + println "Downloading and extracting archives including libs and models" + } + doLast { + // Prepare cache folder for archives + String cachePath = "cache" + if (!file("${cachePath}").exists()) { + mkdir "${cachePath}" + } + archives.eachWithIndex { archive, index -> + MessageDigest messageDigest = MessageDigest.getInstance('MD5') + messageDigest.update(archive.src.bytes) + String cacheName = new BigInteger(1, messageDigest.digest()).toString(32) + // Download the target archive if not exists + boolean copyFiles = !file("${archive.dest}").exists() + if (!file("${cachePath}/${cacheName}.tar.gz").exists()) { + ant.get(src: archive.src, dest: file("${cachePath}/${cacheName}.tar.gz")) + copyFiles = true; // force to copy files from the latest archive files + } + // Extract the target archive if its dest path does not exists + if (copyFiles) { + copy { + from tarTree("${cachePath}/${cacheName}.tar.gz") + into "${archive.dest}" + } + } + } + } +} +preBuild.dependsOn downloadAndExtractArchives \ No newline at end of file diff --git a/deploy/android_demo/app/proguard-rules.pro b/deploy/android_demo/app/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/deploy/android_demo/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/deploy/android_demo/app/src/androidTest/java/com/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java b/deploy/android_demo/app/src/androidTest/java/com/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java new file mode 100644 index 0000000000..77b179da46 --- /dev/null +++ b/deploy/android_demo/app/src/androidTest/java/com/baidu/paddle/lite/demo/ocr/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.baidu.paddle.lite.demo", appContext.getPackageName()); + } +} diff --git a/deploy/android_demo/app/src/main/AndroidManifest.xml b/deploy/android_demo/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..54482b1dcc --- /dev/null +++ b/deploy/android_demo/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/assets/images/0.jpg b/deploy/android_demo/app/src/main/assets/images/0.jpg new file mode 100644 index 0000000000..8517e125c5 Binary files /dev/null and b/deploy/android_demo/app/src/main/assets/images/0.jpg differ diff --git a/deploy/android_demo/app/src/main/assets/images/180.jpg b/deploy/android_demo/app/src/main/assets/images/180.jpg new file mode 100644 index 0000000000..b1bb8a4568 Binary files /dev/null and b/deploy/android_demo/app/src/main/assets/images/180.jpg differ diff --git a/deploy/android_demo/app/src/main/assets/images/270.jpg b/deploy/android_demo/app/src/main/assets/images/270.jpg new file mode 100644 index 0000000000..568739043b Binary files /dev/null and b/deploy/android_demo/app/src/main/assets/images/270.jpg differ diff --git a/deploy/android_demo/app/src/main/assets/images/90.jpg b/deploy/android_demo/app/src/main/assets/images/90.jpg new file mode 100644 index 0000000000..49e949aa9c Binary files /dev/null and b/deploy/android_demo/app/src/main/assets/images/90.jpg differ diff --git a/deploy/android_demo/app/src/main/cpp/CMakeLists.txt b/deploy/android_demo/app/src/main/cpp/CMakeLists.txt new file mode 100644 index 0000000000..742786ad6a --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/CMakeLists.txt @@ -0,0 +1,117 @@ +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html + +# Sets the minimum version of CMake required to build the native library. + +cmake_minimum_required(VERSION 3.4.1) + +# Creates and names a library, sets it as either STATIC or SHARED, and provides +# the relative paths to its source code. You can define multiple libraries, and +# CMake builds them for you. Gradle automatically packages shared libraries with +# your APK. + +set(PaddleLite_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../PaddleLite") +include_directories(${PaddleLite_DIR}/cxx/include) + +set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../OpenCV/sdk/native/jni") +message(STATUS "opencv dir: ${OpenCV_DIR}") +find_package(OpenCV REQUIRED) +message(STATUS "OpenCV libraries: ${OpenCV_LIBS}") +include_directories(${OpenCV_INCLUDE_DIRS}) +aux_source_directory(. SOURCES) +set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -ffast-math -Ofast -Os" + ) +set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -fdata-sections -ffunction-sections" + ) +set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--gc-sections -Wl,-z,nocopyreloc") + +add_library( + # Sets the name of the library. + Native + # Sets the library as a shared library. + SHARED + # Provides a relative path to your source file(s). + ${SOURCES}) + +find_library( + # Sets the name of the path variable. + log-lib + # Specifies the name of the NDK library that you want CMake to locate. + log) + +add_library( + # Sets the name of the library. + paddle_light_api_shared + # Sets the library as a shared library. + SHARED + # Provides a relative path to your source file(s). + IMPORTED) + +set_target_properties( + # Specifies the target library. + paddle_light_api_shared + # Specifies the parameter you want to define. + PROPERTIES + IMPORTED_LOCATION + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libpaddle_light_api_shared.so + # Provides the path to the library you want to import. +) + + +# Specifies libraries CMake should link to your target library. You can link +# multiple libraries, such as libraries you define in this build script, +# prebuilt third-party libraries, or system libraries. + +target_link_libraries( + # Specifies the target library. + Native + paddle_light_api_shared + ${OpenCV_LIBS} + GLESv2 + EGL + jnigraphics + ${log-lib} +) + +add_custom_command( + TARGET Native + POST_BUILD + COMMAND + ${CMAKE_COMMAND} -E copy + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libc++_shared.so + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libc++_shared.so) + +add_custom_command( + TARGET Native + POST_BUILD + COMMAND + ${CMAKE_COMMAND} -E copy + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libpaddle_light_api_shared.so + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpaddle_light_api_shared.so) + +add_custom_command( + TARGET Native + POST_BUILD + COMMAND + ${CMAKE_COMMAND} -E copy + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libhiai.so + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libhiai.so) + +add_custom_command( + TARGET Native + POST_BUILD + COMMAND + ${CMAKE_COMMAND} -E copy + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libhiai_ir.so + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libhiai_ir.so) + +add_custom_command( + TARGET Native + POST_BUILD + COMMAND + ${CMAKE_COMMAND} -E copy + ${PaddleLite_DIR}/cxx/libs/${ANDROID_ABI}/libhiai_ir_build.so + ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libhiai_ir_build.so) \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/common.h b/deploy/android_demo/app/src/main/cpp/common.h new file mode 100644 index 0000000000..fc4740787e --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/common.h @@ -0,0 +1,37 @@ +// +// Created by fu on 4/25/18. +// + +#pragma once +#import +#import + +#ifdef __ANDROID__ + +#include + +#define LOG_TAG "OCR_NDK" + +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) +#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) +#else +#include +#define LOGI(format, ...) \ + fprintf(stdout, "[" LOG_TAG "]" format "\n", ##__VA_ARGS__) +#define LOGW(format, ...) \ + fprintf(stdout, "[" LOG_TAG "]" format "\n", ##__VA_ARGS__) +#define LOGE(format, ...) \ + fprintf(stderr, "[" LOG_TAG "]Error: " format "\n", ##__VA_ARGS__) +#endif + +enum RETURN_CODE { RETURN_OK = 0 }; + +enum NET_TYPE { NET_OCR = 900100, NET_OCR_INTERNAL = 991008 }; + +template inline T product(const std::vector &vec) { + if (vec.empty()) { + return 0; + } + return std::accumulate(vec.begin(), vec.end(), 1, std::multiplies()); +} diff --git a/deploy/android_demo/app/src/main/cpp/native.cpp b/deploy/android_demo/app/src/main/cpp/native.cpp new file mode 100644 index 0000000000..963c5246d5 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/native.cpp @@ -0,0 +1,114 @@ +// +// Created by fujiayi on 2020/7/5. +// + +#include "native.h" +#include "ocr_ppredictor.h" +#include +#include +#include + +static paddle::lite_api::PowerMode str_to_cpu_mode(const std::string &cpu_mode); + +extern "C" JNIEXPORT jlong JNICALL +Java_com_baidu_paddle_lite_demo_ocr_OCRPredictorNative_init( + JNIEnv *env, jobject thiz, jstring j_det_model_path, + jstring j_rec_model_path, jstring j_cls_model_path, jint j_thread_num, + jstring j_cpu_mode) { + std::string det_model_path = jstring_to_cpp_string(env, j_det_model_path); + std::string rec_model_path = jstring_to_cpp_string(env, j_rec_model_path); + std::string cls_model_path = jstring_to_cpp_string(env, j_cls_model_path); + int thread_num = j_thread_num; + std::string cpu_mode = jstring_to_cpp_string(env, j_cpu_mode); + ppredictor::OCR_Config conf; + conf.thread_num = thread_num; + conf.mode = str_to_cpu_mode(cpu_mode); + ppredictor::OCR_PPredictor *orc_predictor = + new ppredictor::OCR_PPredictor{conf}; + orc_predictor->init_from_file(det_model_path, rec_model_path, cls_model_path); + return reinterpret_cast(orc_predictor); +} + +/** + * "LITE_POWER_HIGH" convert to paddle::lite_api::LITE_POWER_HIGH + * @param cpu_mode + * @return + */ +static paddle::lite_api::PowerMode +str_to_cpu_mode(const std::string &cpu_mode) { + static std::map cpu_mode_map{ + {"LITE_POWER_HIGH", paddle::lite_api::LITE_POWER_HIGH}, + {"LITE_POWER_LOW", paddle::lite_api::LITE_POWER_HIGH}, + {"LITE_POWER_FULL", paddle::lite_api::LITE_POWER_FULL}, + {"LITE_POWER_NO_BIND", paddle::lite_api::LITE_POWER_NO_BIND}, + {"LITE_POWER_RAND_HIGH", paddle::lite_api::LITE_POWER_RAND_HIGH}, + {"LITE_POWER_RAND_LOW", paddle::lite_api::LITE_POWER_RAND_LOW}}; + std::string upper_key; + std::transform(cpu_mode.cbegin(), cpu_mode.cend(), upper_key.begin(), + ::toupper); + auto index = cpu_mode_map.find(upper_key); + if (index == cpu_mode_map.end()) { + LOGE("cpu_mode not found %s", upper_key.c_str()); + return paddle::lite_api::LITE_POWER_HIGH; + } else { + return index->second; + } +} + +extern "C" JNIEXPORT jfloatArray JNICALL +Java_com_baidu_paddle_lite_demo_ocr_OCRPredictorNative_forward( + JNIEnv *env, jobject thiz, jlong java_pointer, jfloatArray buf, + jfloatArray ddims, jobject original_image) { + LOGI("begin to run native forward"); + if (java_pointer == 0) { + LOGE("JAVA pointer is NULL"); + return cpp_array_to_jfloatarray(env, nullptr, 0); + } + cv::Mat origin = bitmap_to_cv_mat(env, original_image); + if (origin.size == 0) { + LOGE("origin bitmap cannot convert to CV Mat"); + return cpp_array_to_jfloatarray(env, nullptr, 0); + } + ppredictor::OCR_PPredictor *ppredictor = + (ppredictor::OCR_PPredictor *)java_pointer; + std::vector dims_float_arr = jfloatarray_to_float_vector(env, ddims); + std::vector dims_arr; + dims_arr.resize(dims_float_arr.size()); + std::copy(dims_float_arr.cbegin(), dims_float_arr.cend(), dims_arr.begin()); + + // 这里值有点大,就不调用jfloatarray_to_float_vector了 + int64_t buf_len = (int64_t)env->GetArrayLength(buf); + jfloat *buf_data = env->GetFloatArrayElements(buf, JNI_FALSE); + float *data = (jfloat *)buf_data; + std::vector results = + ppredictor->infer_ocr(dims_arr, data, buf_len, NET_OCR, origin); + LOGI("infer_ocr finished with boxes %ld", results.size()); + // 这里将std::vector 序列化成 + // float数组,传输到java层再反序列化 + std::vector float_arr; + for (const ppredictor::OCRPredictResult &r : results) { + float_arr.push_back(r.points.size()); + float_arr.push_back(r.word_index.size()); + float_arr.push_back(r.score); + for (const std::vector &point : r.points) { + float_arr.push_back(point.at(0)); + float_arr.push_back(point.at(1)); + } + for (int index : r.word_index) { + float_arr.push_back(index); + } + } + return cpp_array_to_jfloatarray(env, float_arr.data(), float_arr.size()); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_baidu_paddle_lite_demo_ocr_OCRPredictorNative_release( + JNIEnv *env, jobject thiz, jlong java_pointer) { + if (java_pointer == 0) { + LOGE("JAVA pointer is NULL"); + return; + } + ppredictor::OCR_PPredictor *ppredictor = + (ppredictor::OCR_PPredictor *)java_pointer; + delete ppredictor; +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/native.h b/deploy/android_demo/app/src/main/cpp/native.h new file mode 100644 index 0000000000..9b8e4e40e3 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/native.h @@ -0,0 +1,137 @@ +// +// Created by fujiayi on 2020/7/5. +// + +#pragma once + +#include "common.h" +#include +#include +#include +#include +#include + +inline std::string jstring_to_cpp_string(JNIEnv *env, jstring jstr) { + // In java, a unicode char will be encoded using 2 bytes (utf16). + // so jstring will contain characters utf16. std::string in c++ is + // essentially a string of bytes, not characters, so if we want to + // pass jstring from JNI to c++, we have convert utf16 to bytes. + if (!jstr) { + return ""; + } + const jclass stringClass = env->GetObjectClass(jstr); + const jmethodID getBytes = + env->GetMethodID(stringClass, "getBytes", "(Ljava/lang/String;)[B"); + const jbyteArray stringJbytes = (jbyteArray)env->CallObjectMethod( + jstr, getBytes, env->NewStringUTF("UTF-8")); + + size_t length = (size_t)env->GetArrayLength(stringJbytes); + jbyte *pBytes = env->GetByteArrayElements(stringJbytes, NULL); + + std::string ret = std::string(reinterpret_cast(pBytes), length); + env->ReleaseByteArrayElements(stringJbytes, pBytes, JNI_ABORT); + + env->DeleteLocalRef(stringJbytes); + env->DeleteLocalRef(stringClass); + return ret; +} + +inline jstring cpp_string_to_jstring(JNIEnv *env, std::string str) { + auto *data = str.c_str(); + jclass strClass = env->FindClass("java/lang/String"); + jmethodID strClassInitMethodID = + env->GetMethodID(strClass, "", "([BLjava/lang/String;)V"); + + jbyteArray bytes = env->NewByteArray(strlen(data)); + env->SetByteArrayRegion(bytes, 0, strlen(data), + reinterpret_cast(data)); + + jstring encoding = env->NewStringUTF("UTF-8"); + jstring res = (jstring)( + env->NewObject(strClass, strClassInitMethodID, bytes, encoding)); + + env->DeleteLocalRef(strClass); + env->DeleteLocalRef(encoding); + env->DeleteLocalRef(bytes); + + return res; +} + +inline jfloatArray cpp_array_to_jfloatarray(JNIEnv *env, const float *buf, + int64_t len) { + if (len == 0) { + return env->NewFloatArray(0); + } + jfloatArray result = env->NewFloatArray(len); + env->SetFloatArrayRegion(result, 0, len, buf); + return result; +} + +inline jintArray cpp_array_to_jintarray(JNIEnv *env, const int *buf, + int64_t len) { + jintArray result = env->NewIntArray(len); + env->SetIntArrayRegion(result, 0, len, buf); + return result; +} + +inline jbyteArray cpp_array_to_jbytearray(JNIEnv *env, const int8_t *buf, + int64_t len) { + jbyteArray result = env->NewByteArray(len); + env->SetByteArrayRegion(result, 0, len, buf); + return result; +} + +inline jlongArray int64_vector_to_jlongarray(JNIEnv *env, + const std::vector &vec) { + jlongArray result = env->NewLongArray(vec.size()); + jlong *buf = new jlong[vec.size()]; + for (size_t i = 0; i < vec.size(); ++i) { + buf[i] = (jlong)vec[i]; + } + env->SetLongArrayRegion(result, 0, vec.size(), buf); + delete[] buf; + return result; +} + +inline std::vector jlongarray_to_int64_vector(JNIEnv *env, + jlongArray data) { + int data_size = env->GetArrayLength(data); + jlong *data_ptr = env->GetLongArrayElements(data, nullptr); + std::vector data_vec(data_ptr, data_ptr + data_size); + env->ReleaseLongArrayElements(data, data_ptr, 0); + return data_vec; +} + +inline std::vector jfloatarray_to_float_vector(JNIEnv *env, + jfloatArray data) { + int data_size = env->GetArrayLength(data); + jfloat *data_ptr = env->GetFloatArrayElements(data, nullptr); + std::vector data_vec(data_ptr, data_ptr + data_size); + env->ReleaseFloatArrayElements(data, data_ptr, 0); + return data_vec; +} + +inline cv::Mat bitmap_to_cv_mat(JNIEnv *env, jobject bitmap) { + AndroidBitmapInfo info; + int result = AndroidBitmap_getInfo(env, bitmap, &info); + if (result != ANDROID_BITMAP_RESULT_SUCCESS) { + LOGE("AndroidBitmap_getInfo failed, result: %d", result); + return cv::Mat{}; + } + if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) { + LOGE("Bitmap format is not RGBA_8888 !"); + return cv::Mat{}; + } + unsigned char *srcData = NULL; + AndroidBitmap_lockPixels(env, bitmap, (void **)&srcData); + cv::Mat mat = cv::Mat::zeros(info.height, info.width, CV_8UC4); + memcpy(mat.data, srcData, info.height * info.width * 4); + AndroidBitmap_unlockPixels(env, bitmap); + cv::cvtColor(mat, mat, cv::COLOR_RGBA2BGR); + /** + if (!cv::imwrite("/sdcard/1/copy.jpg", mat)){ + LOGE("Write image failed " ); + } + */ + return mat; +} diff --git a/deploy/android_demo/app/src/main/cpp/ocr_clipper.cpp b/deploy/android_demo/app/src/main/cpp/ocr_clipper.cpp new file mode 100644 index 0000000000..4a531fcf4f --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_clipper.cpp @@ -0,0 +1,4380 @@ +/******************************************************************************* +* * +* Author : Angus Johnson * +* Version : 6.4.2 * +* Date : 27 February 2017 * +* Website : http://www.angusj.com * +* Copyright : Angus Johnson 2010-2017 * +* * +* License: * +* Use, modification & distribution is subject to Boost Software License Ver 1. * +* http://www.boost.org/LICENSE_1_0.txt * +* * +* Attributions: * +* The code in this library is an extension of Bala Vatti's clipping algorithm: * +* "A generic solution to polygon clipping" * +* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. * +* http://portal.acm.org/citation.cfm?id=129906 * +* * +* Computer graphics and geometric modeling: implementation and algorithms * +* By Max K. Agoston * +* Springer; 1 edition (January 4, 2005) * +* http://books.google.com/books?q=vatti+clipping+agoston * +* * +* See also: * +* "Polygon Offsetting by Computing Winding Numbers" * +* Paper no. DETC2005-85513 pp. 565-575 * +* ASME 2005 International Design Engineering Technical Conferences * +* and Computers and Information in Engineering Conference (IDETC/CIE2005) * +* September 24-28, 2005 , Long Beach, California, USA * +* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf * +* * +*******************************************************************************/ + +/******************************************************************************* +* * +* This is a translation of the Delphi Clipper library and the naming style * +* used has retained a Delphi flavour. * +* * +*******************************************************************************/ + +#include "ocr_clipper.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ClipperLib { + +static double const pi = 3.141592653589793238; +static double const two_pi = pi * 2; +static double const def_arc_tolerance = 0.25; + +enum Direction { dRightToLeft, dLeftToRight }; + +static int const Unassigned = -1; // edge not currently 'owning' a solution +static int const Skip = -2; // edge that would otherwise close a path + +#define HORIZONTAL (-1.0E+40) +#define TOLERANCE (1.0e-20) +#define NEAR_ZERO(val) (((val) > -TOLERANCE) && ((val) < TOLERANCE)) + +struct TEdge { + IntPoint Bot; + IntPoint Curr; // current (updated for every new scanbeam) + IntPoint Top; + double Dx; + PolyType PolyTyp; + EdgeSide Side; // side only refers to current side of solution poly + int WindDelta; // 1 or -1 depending on winding direction + int WindCnt; + int WindCnt2; // winding count of the opposite polytype + int OutIdx; + TEdge *Next; + TEdge *Prev; + TEdge *NextInLML; + TEdge *NextInAEL; + TEdge *PrevInAEL; + TEdge *NextInSEL; + TEdge *PrevInSEL; +}; + +struct IntersectNode { + TEdge *Edge1; + TEdge *Edge2; + IntPoint Pt; +}; + +struct LocalMinimum { + cInt Y; + TEdge *LeftBound; + TEdge *RightBound; +}; + +struct OutPt; + +// OutRec: contains a path in the clipping solution. Edges in the AEL will +// carry a pointer to an OutRec when they are part of the clipping solution. +struct OutRec { + int Idx; + bool IsHole; + bool IsOpen; + OutRec *FirstLeft; // see comments in clipper.pas + PolyNode *PolyNd; + OutPt *Pts; + OutPt *BottomPt; +}; + +struct OutPt { + int Idx; + IntPoint Pt; + OutPt *Next; + OutPt *Prev; +}; + +struct Join { + OutPt *OutPt1; + OutPt *OutPt2; + IntPoint OffPt; +}; + +struct LocMinSorter { + inline bool operator()(const LocalMinimum &locMin1, + const LocalMinimum &locMin2) { + return locMin2.Y < locMin1.Y; + } +}; + +//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ + +inline cInt Round(double val) { + if ((val < 0)) + return static_cast(val - 0.5); + else + return static_cast(val + 0.5); +} +//------------------------------------------------------------------------------ + +inline cInt Abs(cInt val) { return val < 0 ? -val : val; } + +//------------------------------------------------------------------------------ +// PolyTree methods ... +//------------------------------------------------------------------------------ + +void PolyTree::Clear() { + for (PolyNodes::size_type i = 0; i < AllNodes.size(); ++i) + delete AllNodes[i]; + AllNodes.resize(0); + Childs.resize(0); +} +//------------------------------------------------------------------------------ + +PolyNode *PolyTree::GetFirst() const { + if (!Childs.empty()) + return Childs[0]; + else + return 0; +} +//------------------------------------------------------------------------------ + +int PolyTree::Total() const { + int result = (int)AllNodes.size(); + // with negative offsets, ignore the hidden outer polygon ... + if (result > 0 && Childs[0] != AllNodes[0]) + result--; + return result; +} + +//------------------------------------------------------------------------------ +// PolyNode methods ... +//------------------------------------------------------------------------------ + +PolyNode::PolyNode() : Parent(0), Index(0), m_IsOpen(false) {} +//------------------------------------------------------------------------------ + +int PolyNode::ChildCount() const { return (int)Childs.size(); } +//------------------------------------------------------------------------------ + +void PolyNode::AddChild(PolyNode &child) { + unsigned cnt = (unsigned)Childs.size(); + Childs.push_back(&child); + child.Parent = this; + child.Index = cnt; +} +//------------------------------------------------------------------------------ + +PolyNode *PolyNode::GetNext() const { + if (!Childs.empty()) + return Childs[0]; + else + return GetNextSiblingUp(); +} +//------------------------------------------------------------------------------ + +PolyNode *PolyNode::GetNextSiblingUp() const { + if (!Parent) // protects against PolyTree.GetNextSiblingUp() + return 0; + else if (Index == Parent->Childs.size() - 1) + return Parent->GetNextSiblingUp(); + else + return Parent->Childs[Index + 1]; +} +//------------------------------------------------------------------------------ + +bool PolyNode::IsHole() const { + bool result = true; + PolyNode *node = Parent; + while (node) { + result = !result; + node = node->Parent; + } + return result; +} +//------------------------------------------------------------------------------ + +bool PolyNode::IsOpen() const { return m_IsOpen; } +//------------------------------------------------------------------------------ + +#ifndef use_int32 + +//------------------------------------------------------------------------------ +// Int128 class (enables safe math on signed 64bit integers) +// eg Int128 val1((long64)9223372036854775807); //ie 2^63 -1 +// Int128 val2((long64)9223372036854775807); +// Int128 val3 = val1 * val2; +// val3.AsString => "85070591730234615847396907784232501249" (8.5e+37) +//------------------------------------------------------------------------------ + +class Int128 { +public: + ulong64 lo; + long64 hi; + + Int128(long64 _lo = 0) { + lo = (ulong64)_lo; + if (_lo < 0) + hi = -1; + else + hi = 0; + } + + Int128(const Int128 &val) : lo(val.lo), hi(val.hi) {} + + Int128(const long64 &_hi, const ulong64 &_lo) : lo(_lo), hi(_hi) {} + + Int128 &operator=(const long64 &val) { + lo = (ulong64)val; + if (val < 0) + hi = -1; + else + hi = 0; + return *this; + } + + bool operator==(const Int128 &val) const { + return (hi == val.hi && lo == val.lo); + } + + bool operator!=(const Int128 &val) const { return !(*this == val); } + + bool operator>(const Int128 &val) const { + if (hi != val.hi) + return hi > val.hi; + else + return lo > val.lo; + } + + bool operator<(const Int128 &val) const { + if (hi != val.hi) + return hi < val.hi; + else + return lo < val.lo; + } + + bool operator>=(const Int128 &val) const { return !(*this < val); } + + bool operator<=(const Int128 &val) const { return !(*this > val); } + + Int128 &operator+=(const Int128 &rhs) { + hi += rhs.hi; + lo += rhs.lo; + if (lo < rhs.lo) + hi++; + return *this; + } + + Int128 operator+(const Int128 &rhs) const { + Int128 result(*this); + result += rhs; + return result; + } + + Int128 &operator-=(const Int128 &rhs) { + *this += -rhs; + return *this; + } + + Int128 operator-(const Int128 &rhs) const { + Int128 result(*this); + result -= rhs; + return result; + } + + Int128 operator-() const // unary negation + { + if (lo == 0) + return Int128(-hi, 0); + else + return Int128(~hi, ~lo + 1); + } + + operator double() const { + const double shift64 = 18446744073709551616.0; // 2^64 + if (hi < 0) { + if (lo == 0) + return (double)hi * shift64; + else + return -(double)(~lo + ~hi * shift64); + } else + return (double)(lo + hi * shift64); + } +}; +//------------------------------------------------------------------------------ + +Int128 Int128Mul(long64 lhs, long64 rhs) { + bool negate = (lhs < 0) != (rhs < 0); + + if (lhs < 0) + lhs = -lhs; + ulong64 int1Hi = ulong64(lhs) >> 32; + ulong64 int1Lo = ulong64(lhs & 0xFFFFFFFF); + + if (rhs < 0) + rhs = -rhs; + ulong64 int2Hi = ulong64(rhs) >> 32; + ulong64 int2Lo = ulong64(rhs & 0xFFFFFFFF); + + // nb: see comments in clipper.pas + ulong64 a = int1Hi * int2Hi; + ulong64 b = int1Lo * int2Lo; + ulong64 c = int1Hi * int2Lo + int1Lo * int2Hi; + + Int128 tmp; + tmp.hi = long64(a + (c >> 32)); + tmp.lo = long64(c << 32); + tmp.lo += long64(b); + if (tmp.lo < b) + tmp.hi++; + if (negate) + tmp = -tmp; + return tmp; +}; +#endif + +//------------------------------------------------------------------------------ +// Miscellaneous global functions +//------------------------------------------------------------------------------ + +bool Orientation(const Path &poly) { return Area(poly) >= 0; } +//------------------------------------------------------------------------------ + +double Area(const Path &poly) { + int size = (int)poly.size(); + if (size < 3) + return 0; + + double a = 0; + for (int i = 0, j = size - 1; i < size; ++i) { + a += ((double)poly[j].X + poly[i].X) * ((double)poly[j].Y - poly[i].Y); + j = i; + } + return -a * 0.5; +} +//------------------------------------------------------------------------------ + +double Area(const OutPt *op) { + const OutPt *startOp = op; + if (!op) + return 0; + double a = 0; + do { + a += (double)(op->Prev->Pt.X + op->Pt.X) * + (double)(op->Prev->Pt.Y - op->Pt.Y); + op = op->Next; + } while (op != startOp); + return a * 0.5; +} +//------------------------------------------------------------------------------ + +double Area(const OutRec &outRec) { return Area(outRec.Pts); } +//------------------------------------------------------------------------------ + +bool PointIsVertex(const IntPoint &Pt, OutPt *pp) { + OutPt *pp2 = pp; + do { + if (pp2->Pt == Pt) + return true; + pp2 = pp2->Next; + } while (pp2 != pp); + return false; +} +//------------------------------------------------------------------------------ + +// See "The Point in Polygon Problem for Arbitrary Polygons" by Hormann & +// Agathos +// http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.5498&rep=rep1&type=pdf +int PointInPolygon(const IntPoint &pt, const Path &path) { + // returns 0 if false, +1 if true, -1 if pt ON polygon boundary + int result = 0; + size_t cnt = path.size(); + if (cnt < 3) + return 0; + IntPoint ip = path[0]; + for (size_t i = 1; i <= cnt; ++i) { + IntPoint ipNext = (i == cnt ? path[0] : path[i]); + if (ipNext.Y == pt.Y) { + if ((ipNext.X == pt.X) || + (ip.Y == pt.Y && ((ipNext.X > pt.X) == (ip.X < pt.X)))) + return -1; + } + if ((ip.Y < pt.Y) != (ipNext.Y < pt.Y)) { + if (ip.X >= pt.X) { + if (ipNext.X > pt.X) + result = 1 - result; + else { + double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - + (double)(ipNext.X - pt.X) * (ip.Y - pt.Y); + if (!d) + return -1; + if ((d > 0) == (ipNext.Y > ip.Y)) + result = 1 - result; + } + } else { + if (ipNext.X > pt.X) { + double d = (double)(ip.X - pt.X) * (ipNext.Y - pt.Y) - + (double)(ipNext.X - pt.X) * (ip.Y - pt.Y); + if (!d) + return -1; + if ((d > 0) == (ipNext.Y > ip.Y)) + result = 1 - result; + } + } + } + ip = ipNext; + } + return result; +} +//------------------------------------------------------------------------------ + +int PointInPolygon(const IntPoint &pt, OutPt *op) { + // returns 0 if false, +1 if true, -1 if pt ON polygon boundary + int result = 0; + OutPt *startOp = op; + for (;;) { + if (op->Next->Pt.Y == pt.Y) { + if ((op->Next->Pt.X == pt.X) || + (op->Pt.Y == pt.Y && ((op->Next->Pt.X > pt.X) == (op->Pt.X < pt.X)))) + return -1; + } + if ((op->Pt.Y < pt.Y) != (op->Next->Pt.Y < pt.Y)) { + if (op->Pt.X >= pt.X) { + if (op->Next->Pt.X > pt.X) + result = 1 - result; + else { + double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - + (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y); + if (!d) + return -1; + if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) + result = 1 - result; + } + } else { + if (op->Next->Pt.X > pt.X) { + double d = (double)(op->Pt.X - pt.X) * (op->Next->Pt.Y - pt.Y) - + (double)(op->Next->Pt.X - pt.X) * (op->Pt.Y - pt.Y); + if (!d) + return -1; + if ((d > 0) == (op->Next->Pt.Y > op->Pt.Y)) + result = 1 - result; + } + } + } + op = op->Next; + if (startOp == op) + break; + } + return result; +} +//------------------------------------------------------------------------------ + +bool Poly2ContainsPoly1(OutPt *OutPt1, OutPt *OutPt2) { + OutPt *op = OutPt1; + do { + // nb: PointInPolygon returns 0 if false, +1 if true, -1 if pt on polygon + int res = PointInPolygon(op->Pt, OutPt2); + if (res >= 0) + return res > 0; + op = op->Next; + } while (op != OutPt1); + return true; +} +//---------------------------------------------------------------------- + +bool SlopesEqual(const TEdge &e1, const TEdge &e2, bool UseFullInt64Range) { +#ifndef use_int32 + if (UseFullInt64Range) + return Int128Mul(e1.Top.Y - e1.Bot.Y, e2.Top.X - e2.Bot.X) == + Int128Mul(e1.Top.X - e1.Bot.X, e2.Top.Y - e2.Bot.Y); + else +#endif + return (e1.Top.Y - e1.Bot.Y) * (e2.Top.X - e2.Bot.X) == + (e1.Top.X - e1.Bot.X) * (e2.Top.Y - e2.Bot.Y); +} +//------------------------------------------------------------------------------ + +bool SlopesEqual(const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, + bool UseFullInt64Range) { +#ifndef use_int32 + if (UseFullInt64Range) + return Int128Mul(pt1.Y - pt2.Y, pt2.X - pt3.X) == + Int128Mul(pt1.X - pt2.X, pt2.Y - pt3.Y); + else +#endif + return (pt1.Y - pt2.Y) * (pt2.X - pt3.X) == + (pt1.X - pt2.X) * (pt2.Y - pt3.Y); +} +//------------------------------------------------------------------------------ + +bool SlopesEqual(const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, + const IntPoint pt4, bool UseFullInt64Range) { +#ifndef use_int32 + if (UseFullInt64Range) + return Int128Mul(pt1.Y - pt2.Y, pt3.X - pt4.X) == + Int128Mul(pt1.X - pt2.X, pt3.Y - pt4.Y); + else +#endif + return (pt1.Y - pt2.Y) * (pt3.X - pt4.X) == + (pt1.X - pt2.X) * (pt3.Y - pt4.Y); +} +//------------------------------------------------------------------------------ + +inline bool IsHorizontal(TEdge &e) { return e.Dx == HORIZONTAL; } +//------------------------------------------------------------------------------ + +inline double GetDx(const IntPoint pt1, const IntPoint pt2) { + return (pt1.Y == pt2.Y) ? HORIZONTAL + : (double)(pt2.X - pt1.X) / (pt2.Y - pt1.Y); +} +//--------------------------------------------------------------------------- + +inline void SetDx(TEdge &e) { + cInt dy = (e.Top.Y - e.Bot.Y); + if (dy == 0) + e.Dx = HORIZONTAL; + else + e.Dx = (double)(e.Top.X - e.Bot.X) / dy; +} +//--------------------------------------------------------------------------- + +inline void SwapSides(TEdge &Edge1, TEdge &Edge2) { + EdgeSide Side = Edge1.Side; + Edge1.Side = Edge2.Side; + Edge2.Side = Side; +} +//------------------------------------------------------------------------------ + +inline void SwapPolyIndexes(TEdge &Edge1, TEdge &Edge2) { + int OutIdx = Edge1.OutIdx; + Edge1.OutIdx = Edge2.OutIdx; + Edge2.OutIdx = OutIdx; +} +//------------------------------------------------------------------------------ + +inline cInt TopX(TEdge &edge, const cInt currentY) { + return (currentY == edge.Top.Y) + ? edge.Top.X + : edge.Bot.X + Round(edge.Dx * (currentY - edge.Bot.Y)); +} +//------------------------------------------------------------------------------ + +void IntersectPoint(TEdge &Edge1, TEdge &Edge2, IntPoint &ip) { +#ifdef use_xyz + ip.Z = 0; +#endif + + double b1, b2; + if (Edge1.Dx == Edge2.Dx) { + ip.Y = Edge1.Curr.Y; + ip.X = TopX(Edge1, ip.Y); + return; + } else if (Edge1.Dx == 0) { + ip.X = Edge1.Bot.X; + if (IsHorizontal(Edge2)) + ip.Y = Edge2.Bot.Y; + else { + b2 = Edge2.Bot.Y - (Edge2.Bot.X / Edge2.Dx); + ip.Y = Round(ip.X / Edge2.Dx + b2); + } + } else if (Edge2.Dx == 0) { + ip.X = Edge2.Bot.X; + if (IsHorizontal(Edge1)) + ip.Y = Edge1.Bot.Y; + else { + b1 = Edge1.Bot.Y - (Edge1.Bot.X / Edge1.Dx); + ip.Y = Round(ip.X / Edge1.Dx + b1); + } + } else { + b1 = Edge1.Bot.X - Edge1.Bot.Y * Edge1.Dx; + b2 = Edge2.Bot.X - Edge2.Bot.Y * Edge2.Dx; + double q = (b2 - b1) / (Edge1.Dx - Edge2.Dx); + ip.Y = Round(q); + if (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx)) + ip.X = Round(Edge1.Dx * q + b1); + else + ip.X = Round(Edge2.Dx * q + b2); + } + + if (ip.Y < Edge1.Top.Y || ip.Y < Edge2.Top.Y) { + if (Edge1.Top.Y > Edge2.Top.Y) + ip.Y = Edge1.Top.Y; + else + ip.Y = Edge2.Top.Y; + if (std::fabs(Edge1.Dx) < std::fabs(Edge2.Dx)) + ip.X = TopX(Edge1, ip.Y); + else + ip.X = TopX(Edge2, ip.Y); + } + // finally, don't allow 'ip' to be BELOW curr.Y (ie bottom of scanbeam) ... + if (ip.Y > Edge1.Curr.Y) { + ip.Y = Edge1.Curr.Y; + // use the more vertical edge to derive X ... + if (std::fabs(Edge1.Dx) > std::fabs(Edge2.Dx)) + ip.X = TopX(Edge2, ip.Y); + else + ip.X = TopX(Edge1, ip.Y); + } +} +//------------------------------------------------------------------------------ + +void ReversePolyPtLinks(OutPt *pp) { + if (!pp) + return; + OutPt *pp1, *pp2; + pp1 = pp; + do { + pp2 = pp1->Next; + pp1->Next = pp1->Prev; + pp1->Prev = pp2; + pp1 = pp2; + } while (pp1 != pp); +} +//------------------------------------------------------------------------------ + +void DisposeOutPts(OutPt *&pp) { + if (pp == 0) + return; + pp->Prev->Next = 0; + while (pp) { + OutPt *tmpPp = pp; + pp = pp->Next; + delete tmpPp; + } +} +//------------------------------------------------------------------------------ + +inline void InitEdge(TEdge *e, TEdge *eNext, TEdge *ePrev, const IntPoint &Pt) { + std::memset(e, 0, sizeof(TEdge)); + e->Next = eNext; + e->Prev = ePrev; + e->Curr = Pt; + e->OutIdx = Unassigned; +} +//------------------------------------------------------------------------------ + +void InitEdge2(TEdge &e, PolyType Pt) { + if (e.Curr.Y >= e.Next->Curr.Y) { + e.Bot = e.Curr; + e.Top = e.Next->Curr; + } else { + e.Top = e.Curr; + e.Bot = e.Next->Curr; + } + SetDx(e); + e.PolyTyp = Pt; +} +//------------------------------------------------------------------------------ + +TEdge *RemoveEdge(TEdge *e) { + // removes e from double_linked_list (but without removing from memory) + e->Prev->Next = e->Next; + e->Next->Prev = e->Prev; + TEdge *result = e->Next; + e->Prev = 0; // flag as removed (see ClipperBase.Clear) + return result; +} +//------------------------------------------------------------------------------ + +inline void ReverseHorizontal(TEdge &e) { + // swap horizontal edges' Top and Bottom x's so they follow the natural + // progression of the bounds - ie so their xbots will align with the + // adjoining lower edge. [Helpful in the ProcessHorizontal() method.] + std::swap(e.Top.X, e.Bot.X); +#ifdef use_xyz + std::swap(e.Top.Z, e.Bot.Z); +#endif +} +//------------------------------------------------------------------------------ + +void SwapPoints(IntPoint &pt1, IntPoint &pt2) { + IntPoint tmp = pt1; + pt1 = pt2; + pt2 = tmp; +} +//------------------------------------------------------------------------------ + +bool GetOverlapSegment(IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, + IntPoint pt2b, IntPoint &pt1, IntPoint &pt2) { + // precondition: segments are Collinear. + if (Abs(pt1a.X - pt1b.X) > Abs(pt1a.Y - pt1b.Y)) { + if (pt1a.X > pt1b.X) + SwapPoints(pt1a, pt1b); + if (pt2a.X > pt2b.X) + SwapPoints(pt2a, pt2b); + if (pt1a.X > pt2a.X) + pt1 = pt1a; + else + pt1 = pt2a; + if (pt1b.X < pt2b.X) + pt2 = pt1b; + else + pt2 = pt2b; + return pt1.X < pt2.X; + } else { + if (pt1a.Y < pt1b.Y) + SwapPoints(pt1a, pt1b); + if (pt2a.Y < pt2b.Y) + SwapPoints(pt2a, pt2b); + if (pt1a.Y < pt2a.Y) + pt1 = pt1a; + else + pt1 = pt2a; + if (pt1b.Y > pt2b.Y) + pt2 = pt1b; + else + pt2 = pt2b; + return pt1.Y > pt2.Y; + } +} +//------------------------------------------------------------------------------ + +bool FirstIsBottomPt(const OutPt *btmPt1, const OutPt *btmPt2) { + OutPt *p = btmPt1->Prev; + while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) + p = p->Prev; + double dx1p = std::fabs(GetDx(btmPt1->Pt, p->Pt)); + p = btmPt1->Next; + while ((p->Pt == btmPt1->Pt) && (p != btmPt1)) + p = p->Next; + double dx1n = std::fabs(GetDx(btmPt1->Pt, p->Pt)); + + p = btmPt2->Prev; + while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) + p = p->Prev; + double dx2p = std::fabs(GetDx(btmPt2->Pt, p->Pt)); + p = btmPt2->Next; + while ((p->Pt == btmPt2->Pt) && (p != btmPt2)) + p = p->Next; + double dx2n = std::fabs(GetDx(btmPt2->Pt, p->Pt)); + + if (std::max(dx1p, dx1n) == std::max(dx2p, dx2n) && + std::min(dx1p, dx1n) == std::min(dx2p, dx2n)) + return Area(btmPt1) > 0; // if otherwise identical use orientation + else + return (dx1p >= dx2p && dx1p >= dx2n) || (dx1n >= dx2p && dx1n >= dx2n); +} +//------------------------------------------------------------------------------ + +OutPt *GetBottomPt(OutPt *pp) { + OutPt *dups = 0; + OutPt *p = pp->Next; + while (p != pp) { + if (p->Pt.Y > pp->Pt.Y) { + pp = p; + dups = 0; + } else if (p->Pt.Y == pp->Pt.Y && p->Pt.X <= pp->Pt.X) { + if (p->Pt.X < pp->Pt.X) { + dups = 0; + pp = p; + } else { + if (p->Next != pp && p->Prev != pp) + dups = p; + } + } + p = p->Next; + } + if (dups) { + // there appears to be at least 2 vertices at BottomPt so ... + while (dups != p) { + if (!FirstIsBottomPt(p, dups)) + pp = dups; + dups = dups->Next; + while (dups->Pt != pp->Pt) + dups = dups->Next; + } + } + return pp; +} +//------------------------------------------------------------------------------ + +bool Pt2IsBetweenPt1AndPt3(const IntPoint pt1, const IntPoint pt2, + const IntPoint pt3) { + if ((pt1 == pt3) || (pt1 == pt2) || (pt3 == pt2)) + return false; + else if (pt1.X != pt3.X) + return (pt2.X > pt1.X) == (pt2.X < pt3.X); + else + return (pt2.Y > pt1.Y) == (pt2.Y < pt3.Y); +} +//------------------------------------------------------------------------------ + +bool HorzSegmentsOverlap(cInt seg1a, cInt seg1b, cInt seg2a, cInt seg2b) { + if (seg1a > seg1b) + std::swap(seg1a, seg1b); + if (seg2a > seg2b) + std::swap(seg2a, seg2b); + return (seg1a < seg2b) && (seg2a < seg1b); +} + +//------------------------------------------------------------------------------ +// ClipperBase class methods ... +//------------------------------------------------------------------------------ + +ClipperBase::ClipperBase() // constructor +{ + m_CurrentLM = m_MinimaList.begin(); // begin() == end() here + m_UseFullRange = false; +} +//------------------------------------------------------------------------------ + +ClipperBase::~ClipperBase() // destructor +{ + Clear(); +} +//------------------------------------------------------------------------------ + +void RangeTest(const IntPoint &Pt, bool &useFullRange) { + if (useFullRange) { + if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange) + throw clipperException("Coordinate outside allowed range"); + } else if (Pt.X > loRange || Pt.Y > loRange || -Pt.X > loRange || + -Pt.Y > loRange) { + useFullRange = true; + RangeTest(Pt, useFullRange); + } +} +//------------------------------------------------------------------------------ + +TEdge *FindNextLocMin(TEdge *E) { + for (;;) { + while (E->Bot != E->Prev->Bot || E->Curr == E->Top) + E = E->Next; + if (!IsHorizontal(*E) && !IsHorizontal(*E->Prev)) + break; + while (IsHorizontal(*E->Prev)) + E = E->Prev; + TEdge *E2 = E; + while (IsHorizontal(*E)) + E = E->Next; + if (E->Top.Y == E->Prev->Bot.Y) + continue; // ie just an intermediate horz. + if (E2->Prev->Bot.X < E->Bot.X) + E = E2; + break; + } + return E; +} +//------------------------------------------------------------------------------ + +TEdge *ClipperBase::ProcessBound(TEdge *E, bool NextIsForward) { + TEdge *Result = E; + TEdge *Horz = 0; + + if (E->OutIdx == Skip) { + // if edges still remain in the current bound beyond the skip edge then + // create another LocMin and call ProcessBound once more + if (NextIsForward) { + while (E->Top.Y == E->Next->Bot.Y) + E = E->Next; + // don't include top horizontals when parsing a bound a second time, + // they will be contained in the opposite bound ... + while (E != Result && IsHorizontal(*E)) + E = E->Prev; + } else { + while (E->Top.Y == E->Prev->Bot.Y) + E = E->Prev; + while (E != Result && IsHorizontal(*E)) + E = E->Next; + } + + if (E == Result) { + if (NextIsForward) + Result = E->Next; + else + Result = E->Prev; + } else { + // there are more edges in the bound beyond result starting with E + if (NextIsForward) + E = Result->Next; + else + E = Result->Prev; + MinimaList::value_type locMin; + locMin.Y = E->Bot.Y; + locMin.LeftBound = 0; + locMin.RightBound = E; + E->WindDelta = 0; + Result = ProcessBound(E, NextIsForward); + m_MinimaList.push_back(locMin); + } + return Result; + } + + TEdge *EStart; + + if (IsHorizontal(*E)) { + // We need to be careful with open paths because this may not be a + // true local minima (ie E may be following a skip edge). + // Also, consecutive horz. edges may start heading left before going right. + if (NextIsForward) + EStart = E->Prev; + else + EStart = E->Next; + if (IsHorizontal(*EStart)) // ie an adjoining horizontal skip edge + { + if (EStart->Bot.X != E->Bot.X && EStart->Top.X != E->Bot.X) + ReverseHorizontal(*E); + } else if (EStart->Bot.X != E->Bot.X) + ReverseHorizontal(*E); + } + + EStart = E; + if (NextIsForward) { + while (Result->Top.Y == Result->Next->Bot.Y && Result->Next->OutIdx != Skip) + Result = Result->Next; + if (IsHorizontal(*Result) && Result->Next->OutIdx != Skip) { + // nb: at the top of a bound, horizontals are added to the bound + // only when the preceding edge attaches to the horizontal's left vertex + // unless a Skip edge is encountered when that becomes the top divide + Horz = Result; + while (IsHorizontal(*Horz->Prev)) + Horz = Horz->Prev; + if (Horz->Prev->Top.X > Result->Next->Top.X) + Result = Horz->Prev; + } + while (E != Result) { + E->NextInLML = E->Next; + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Prev->Top.X) + ReverseHorizontal(*E); + E = E->Next; + } + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Prev->Top.X) + ReverseHorizontal(*E); + Result = Result->Next; // move to the edge just beyond current bound + } else { + while (Result->Top.Y == Result->Prev->Bot.Y && Result->Prev->OutIdx != Skip) + Result = Result->Prev; + if (IsHorizontal(*Result) && Result->Prev->OutIdx != Skip) { + Horz = Result; + while (IsHorizontal(*Horz->Next)) + Horz = Horz->Next; + if (Horz->Next->Top.X == Result->Prev->Top.X || + Horz->Next->Top.X > Result->Prev->Top.X) + Result = Horz->Next; + } + + while (E != Result) { + E->NextInLML = E->Prev; + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X) + ReverseHorizontal(*E); + E = E->Prev; + } + if (IsHorizontal(*E) && E != EStart && E->Bot.X != E->Next->Top.X) + ReverseHorizontal(*E); + Result = Result->Prev; // move to the edge just beyond current bound + } + + return Result; +} +//------------------------------------------------------------------------------ + +bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) { +#ifdef use_lines + if (!Closed && PolyTyp == ptClip) + throw clipperException("AddPath: Open paths must be subject."); +#else + if (!Closed) + throw clipperException("AddPath: Open paths have been disabled."); +#endif + + int highI = (int)pg.size() - 1; + if (Closed) + while (highI > 0 && (pg[highI] == pg[0])) + --highI; + while (highI > 0 && (pg[highI] == pg[highI - 1])) + --highI; + if ((Closed && highI < 2) || (!Closed && highI < 1)) + return false; + + // create a new edge array ... + TEdge *edges = new TEdge[highI + 1]; + + bool IsFlat = true; + // 1. Basic (first) edge initialization ... + try { + edges[1].Curr = pg[1]; + RangeTest(pg[0], m_UseFullRange); + RangeTest(pg[highI], m_UseFullRange); + InitEdge(&edges[0], &edges[1], &edges[highI], pg[0]); + InitEdge(&edges[highI], &edges[0], &edges[highI - 1], pg[highI]); + for (int i = highI - 1; i >= 1; --i) { + RangeTest(pg[i], m_UseFullRange); + InitEdge(&edges[i], &edges[i + 1], &edges[i - 1], pg[i]); + } + } catch (...) { + delete[] edges; + throw; // range test fails + } + TEdge *eStart = &edges[0]; + + // 2. Remove duplicate vertices, and (when closed) collinear edges ... + TEdge *E = eStart, *eLoopStop = eStart; + for (;;) { + // nb: allows matching start and end points when not Closed ... + if (E->Curr == E->Next->Curr && (Closed || E->Next != eStart)) { + if (E == E->Next) + break; + if (E == eStart) + eStart = E->Next; + E = RemoveEdge(E); + eLoopStop = E; + continue; + } + if (E->Prev == E->Next) + break; // only two vertices + else if (Closed && SlopesEqual(E->Prev->Curr, E->Curr, E->Next->Curr, + m_UseFullRange) && + (!m_PreserveCollinear || + !Pt2IsBetweenPt1AndPt3(E->Prev->Curr, E->Curr, E->Next->Curr))) { + // Collinear edges are allowed for open paths but in closed paths + // the default is to merge adjacent collinear edges into a single edge. + // However, if the PreserveCollinear property is enabled, only overlapping + // collinear edges (ie spikes) will be removed from closed paths. + if (E == eStart) + eStart = E->Next; + E = RemoveEdge(E); + E = E->Prev; + eLoopStop = E; + continue; + } + E = E->Next; + if ((E == eLoopStop) || (!Closed && E->Next == eStart)) + break; + } + + if ((!Closed && (E == E->Next)) || (Closed && (E->Prev == E->Next))) { + delete[] edges; + return false; + } + + if (!Closed) { + m_HasOpenPaths = true; + eStart->Prev->OutIdx = Skip; + } + + // 3. Do second stage of edge initialization ... + E = eStart; + do { + InitEdge2(*E, PolyTyp); + E = E->Next; + if (IsFlat && E->Curr.Y != eStart->Curr.Y) + IsFlat = false; + } while (E != eStart); + + // 4. Finally, add edge bounds to LocalMinima list ... + + // Totally flat paths must be handled differently when adding them + // to LocalMinima list to avoid endless loops etc ... + if (IsFlat) { + if (Closed) { + delete[] edges; + return false; + } + E->Prev->OutIdx = Skip; + MinimaList::value_type locMin; + locMin.Y = E->Bot.Y; + locMin.LeftBound = 0; + locMin.RightBound = E; + locMin.RightBound->Side = esRight; + locMin.RightBound->WindDelta = 0; + for (;;) { + if (E->Bot.X != E->Prev->Top.X) + ReverseHorizontal(*E); + if (E->Next->OutIdx == Skip) + break; + E->NextInLML = E->Next; + E = E->Next; + } + m_MinimaList.push_back(locMin); + m_edges.push_back(edges); + return true; + } + + m_edges.push_back(edges); + bool leftBoundIsForward; + TEdge *EMin = 0; + + // workaround to avoid an endless loop in the while loop below when + // open paths have matching start and end points ... + if (E->Prev->Bot == E->Prev->Top) + E = E->Next; + + for (;;) { + E = FindNextLocMin(E); + if (E == EMin) + break; + else if (!EMin) + EMin = E; + + // E and E.Prev now share a local minima (left aligned if horizontal). + // Compare their slopes to find which starts which bound ... + MinimaList::value_type locMin; + locMin.Y = E->Bot.Y; + if (E->Dx < E->Prev->Dx) { + locMin.LeftBound = E->Prev; + locMin.RightBound = E; + leftBoundIsForward = false; // Q.nextInLML = Q.prev + } else { + locMin.LeftBound = E; + locMin.RightBound = E->Prev; + leftBoundIsForward = true; // Q.nextInLML = Q.next + } + + if (!Closed) + locMin.LeftBound->WindDelta = 0; + else if (locMin.LeftBound->Next == locMin.RightBound) + locMin.LeftBound->WindDelta = -1; + else + locMin.LeftBound->WindDelta = 1; + locMin.RightBound->WindDelta = -locMin.LeftBound->WindDelta; + + E = ProcessBound(locMin.LeftBound, leftBoundIsForward); + if (E->OutIdx == Skip) + E = ProcessBound(E, leftBoundIsForward); + + TEdge *E2 = ProcessBound(locMin.RightBound, !leftBoundIsForward); + if (E2->OutIdx == Skip) + E2 = ProcessBound(E2, !leftBoundIsForward); + + if (locMin.LeftBound->OutIdx == Skip) + locMin.LeftBound = 0; + else if (locMin.RightBound->OutIdx == Skip) + locMin.RightBound = 0; + m_MinimaList.push_back(locMin); + if (!leftBoundIsForward) + E = E2; + } + return true; +} +//------------------------------------------------------------------------------ + +bool ClipperBase::AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed) { + bool result = false; + for (Paths::size_type i = 0; i < ppg.size(); ++i) + if (AddPath(ppg[i], PolyTyp, Closed)) + result = true; + return result; +} +//------------------------------------------------------------------------------ + +void ClipperBase::Clear() { + DisposeLocalMinimaList(); + for (EdgeList::size_type i = 0; i < m_edges.size(); ++i) { + TEdge *edges = m_edges[i]; + delete[] edges; + } + m_edges.clear(); + m_UseFullRange = false; + m_HasOpenPaths = false; +} +//------------------------------------------------------------------------------ + +void ClipperBase::Reset() { + m_CurrentLM = m_MinimaList.begin(); + if (m_CurrentLM == m_MinimaList.end()) + return; // ie nothing to process + std::sort(m_MinimaList.begin(), m_MinimaList.end(), LocMinSorter()); + + m_Scanbeam = ScanbeamList(); // clears/resets priority_queue + // reset all edges ... + for (MinimaList::iterator lm = m_MinimaList.begin(); lm != m_MinimaList.end(); + ++lm) { + InsertScanbeam(lm->Y); + TEdge *e = lm->LeftBound; + if (e) { + e->Curr = e->Bot; + e->Side = esLeft; + e->OutIdx = Unassigned; + } + + e = lm->RightBound; + if (e) { + e->Curr = e->Bot; + e->Side = esRight; + e->OutIdx = Unassigned; + } + } + m_ActiveEdges = 0; + m_CurrentLM = m_MinimaList.begin(); +} +//------------------------------------------------------------------------------ + +void ClipperBase::DisposeLocalMinimaList() { + m_MinimaList.clear(); + m_CurrentLM = m_MinimaList.begin(); +} +//------------------------------------------------------------------------------ + +bool ClipperBase::PopLocalMinima(cInt Y, const LocalMinimum *&locMin) { + if (m_CurrentLM == m_MinimaList.end() || (*m_CurrentLM).Y != Y) + return false; + locMin = &(*m_CurrentLM); + ++m_CurrentLM; + return true; +} +//------------------------------------------------------------------------------ + +IntRect ClipperBase::GetBounds() { + IntRect result; + MinimaList::iterator lm = m_MinimaList.begin(); + if (lm == m_MinimaList.end()) { + result.left = result.top = result.right = result.bottom = 0; + return result; + } + result.left = lm->LeftBound->Bot.X; + result.top = lm->LeftBound->Bot.Y; + result.right = lm->LeftBound->Bot.X; + result.bottom = lm->LeftBound->Bot.Y; + while (lm != m_MinimaList.end()) { + // todo - needs fixing for open paths + result.bottom = std::max(result.bottom, lm->LeftBound->Bot.Y); + TEdge *e = lm->LeftBound; + for (;;) { + TEdge *bottomE = e; + while (e->NextInLML) { + if (e->Bot.X < result.left) + result.left = e->Bot.X; + if (e->Bot.X > result.right) + result.right = e->Bot.X; + e = e->NextInLML; + } + result.left = std::min(result.left, e->Bot.X); + result.right = std::max(result.right, e->Bot.X); + result.left = std::min(result.left, e->Top.X); + result.right = std::max(result.right, e->Top.X); + result.top = std::min(result.top, e->Top.Y); + if (bottomE == lm->LeftBound) + e = lm->RightBound; + else + break; + } + ++lm; + } + return result; +} +//------------------------------------------------------------------------------ + +void ClipperBase::InsertScanbeam(const cInt Y) { m_Scanbeam.push(Y); } +//------------------------------------------------------------------------------ + +bool ClipperBase::PopScanbeam(cInt &Y) { + if (m_Scanbeam.empty()) + return false; + Y = m_Scanbeam.top(); + m_Scanbeam.pop(); + while (!m_Scanbeam.empty() && Y == m_Scanbeam.top()) { + m_Scanbeam.pop(); + } // Pop duplicates. + return true; +} +//------------------------------------------------------------------------------ + +void ClipperBase::DisposeAllOutRecs() { + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) + DisposeOutRec(i); + m_PolyOuts.clear(); +} +//------------------------------------------------------------------------------ + +void ClipperBase::DisposeOutRec(PolyOutList::size_type index) { + OutRec *outRec = m_PolyOuts[index]; + if (outRec->Pts) + DisposeOutPts(outRec->Pts); + delete outRec; + m_PolyOuts[index] = 0; +} +//------------------------------------------------------------------------------ + +void ClipperBase::DeleteFromAEL(TEdge *e) { + TEdge *AelPrev = e->PrevInAEL; + TEdge *AelNext = e->NextInAEL; + if (!AelPrev && !AelNext && (e != m_ActiveEdges)) + return; // already deleted + if (AelPrev) + AelPrev->NextInAEL = AelNext; + else + m_ActiveEdges = AelNext; + if (AelNext) + AelNext->PrevInAEL = AelPrev; + e->NextInAEL = 0; + e->PrevInAEL = 0; +} +//------------------------------------------------------------------------------ + +OutRec *ClipperBase::CreateOutRec() { + OutRec *result = new OutRec; + result->IsHole = false; + result->IsOpen = false; + result->FirstLeft = 0; + result->Pts = 0; + result->BottomPt = 0; + result->PolyNd = 0; + m_PolyOuts.push_back(result); + result->Idx = (int)m_PolyOuts.size() - 1; + return result; +} +//------------------------------------------------------------------------------ + +void ClipperBase::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2) { + // check that one or other edge hasn't already been removed from AEL ... + if (Edge1->NextInAEL == Edge1->PrevInAEL || + Edge2->NextInAEL == Edge2->PrevInAEL) + return; + + if (Edge1->NextInAEL == Edge2) { + TEdge *Next = Edge2->NextInAEL; + if (Next) + Next->PrevInAEL = Edge1; + TEdge *Prev = Edge1->PrevInAEL; + if (Prev) + Prev->NextInAEL = Edge2; + Edge2->PrevInAEL = Prev; + Edge2->NextInAEL = Edge1; + Edge1->PrevInAEL = Edge2; + Edge1->NextInAEL = Next; + } else if (Edge2->NextInAEL == Edge1) { + TEdge *Next = Edge1->NextInAEL; + if (Next) + Next->PrevInAEL = Edge2; + TEdge *Prev = Edge2->PrevInAEL; + if (Prev) + Prev->NextInAEL = Edge1; + Edge1->PrevInAEL = Prev; + Edge1->NextInAEL = Edge2; + Edge2->PrevInAEL = Edge1; + Edge2->NextInAEL = Next; + } else { + TEdge *Next = Edge1->NextInAEL; + TEdge *Prev = Edge1->PrevInAEL; + Edge1->NextInAEL = Edge2->NextInAEL; + if (Edge1->NextInAEL) + Edge1->NextInAEL->PrevInAEL = Edge1; + Edge1->PrevInAEL = Edge2->PrevInAEL; + if (Edge1->PrevInAEL) + Edge1->PrevInAEL->NextInAEL = Edge1; + Edge2->NextInAEL = Next; + if (Edge2->NextInAEL) + Edge2->NextInAEL->PrevInAEL = Edge2; + Edge2->PrevInAEL = Prev; + if (Edge2->PrevInAEL) + Edge2->PrevInAEL->NextInAEL = Edge2; + } + + if (!Edge1->PrevInAEL) + m_ActiveEdges = Edge1; + else if (!Edge2->PrevInAEL) + m_ActiveEdges = Edge2; +} +//------------------------------------------------------------------------------ + +void ClipperBase::UpdateEdgeIntoAEL(TEdge *&e) { + if (!e->NextInLML) + throw clipperException("UpdateEdgeIntoAEL: invalid call"); + + e->NextInLML->OutIdx = e->OutIdx; + TEdge *AelPrev = e->PrevInAEL; + TEdge *AelNext = e->NextInAEL; + if (AelPrev) + AelPrev->NextInAEL = e->NextInLML; + else + m_ActiveEdges = e->NextInLML; + if (AelNext) + AelNext->PrevInAEL = e->NextInLML; + e->NextInLML->Side = e->Side; + e->NextInLML->WindDelta = e->WindDelta; + e->NextInLML->WindCnt = e->WindCnt; + e->NextInLML->WindCnt2 = e->WindCnt2; + e = e->NextInLML; + e->Curr = e->Bot; + e->PrevInAEL = AelPrev; + e->NextInAEL = AelNext; + if (!IsHorizontal(*e)) + InsertScanbeam(e->Top.Y); +} +//------------------------------------------------------------------------------ + +bool ClipperBase::LocalMinimaPending() { + return (m_CurrentLM != m_MinimaList.end()); +} + +//------------------------------------------------------------------------------ +// TClipper methods ... +//------------------------------------------------------------------------------ + +Clipper::Clipper(int initOptions) + : ClipperBase() // constructor +{ + m_ExecuteLocked = false; + m_UseFullRange = false; + m_ReverseOutput = ((initOptions & ioReverseSolution) != 0); + m_StrictSimple = ((initOptions & ioStrictlySimple) != 0); + m_PreserveCollinear = ((initOptions & ioPreserveCollinear) != 0); + m_HasOpenPaths = false; +#ifdef use_xyz + m_ZFill = 0; +#endif +} +//------------------------------------------------------------------------------ + +#ifdef use_xyz +void Clipper::ZFillFunction(ZFillCallback zFillFunc) { m_ZFill = zFillFunc; } +//------------------------------------------------------------------------------ +#endif + +bool Clipper::Execute(ClipType clipType, Paths &solution, + PolyFillType fillType) { + return Execute(clipType, solution, fillType, fillType); +} +//------------------------------------------------------------------------------ + +bool Clipper::Execute(ClipType clipType, PolyTree &polytree, + PolyFillType fillType) { + return Execute(clipType, polytree, fillType, fillType); +} +//------------------------------------------------------------------------------ + +bool Clipper::Execute(ClipType clipType, Paths &solution, + PolyFillType subjFillType, PolyFillType clipFillType) { + if (m_ExecuteLocked) + return false; + if (m_HasOpenPaths) + throw clipperException( + "Error: PolyTree struct is needed for open path clipping."); + m_ExecuteLocked = true; + solution.resize(0); + m_SubjFillType = subjFillType; + m_ClipFillType = clipFillType; + m_ClipType = clipType; + m_UsingPolyTree = false; + bool succeeded = ExecuteInternal(); + if (succeeded) + BuildResult(solution); + DisposeAllOutRecs(); + m_ExecuteLocked = false; + return succeeded; +} +//------------------------------------------------------------------------------ + +bool Clipper::Execute(ClipType clipType, PolyTree &polytree, + PolyFillType subjFillType, PolyFillType clipFillType) { + if (m_ExecuteLocked) + return false; + m_ExecuteLocked = true; + m_SubjFillType = subjFillType; + m_ClipFillType = clipFillType; + m_ClipType = clipType; + m_UsingPolyTree = true; + bool succeeded = ExecuteInternal(); + if (succeeded) + BuildResult2(polytree); + DisposeAllOutRecs(); + m_ExecuteLocked = false; + return succeeded; +} +//------------------------------------------------------------------------------ + +void Clipper::FixHoleLinkage(OutRec &outrec) { + // skip OutRecs that (a) contain outermost polygons or + //(b) already have the correct owner/child linkage ... + if (!outrec.FirstLeft || + (outrec.IsHole != outrec.FirstLeft->IsHole && outrec.FirstLeft->Pts)) + return; + + OutRec *orfl = outrec.FirstLeft; + while (orfl && ((orfl->IsHole == outrec.IsHole) || !orfl->Pts)) + orfl = orfl->FirstLeft; + outrec.FirstLeft = orfl; +} +//------------------------------------------------------------------------------ + +bool Clipper::ExecuteInternal() { + bool succeeded = true; + try { + Reset(); + m_Maxima = MaximaList(); + m_SortedEdges = 0; + + succeeded = true; + cInt botY, topY; + if (!PopScanbeam(botY)) + return false; + InsertLocalMinimaIntoAEL(botY); + while (PopScanbeam(topY) || LocalMinimaPending()) { + ProcessHorizontals(); + ClearGhostJoins(); + if (!ProcessIntersections(topY)) { + succeeded = false; + break; + } + ProcessEdgesAtTopOfScanbeam(topY); + botY = topY; + InsertLocalMinimaIntoAEL(botY); + } + } catch (...) { + succeeded = false; + } + + if (succeeded) { + // fix orientations ... + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + OutRec *outRec = m_PolyOuts[i]; + if (!outRec->Pts || outRec->IsOpen) + continue; + if ((outRec->IsHole ^ m_ReverseOutput) == (Area(*outRec) > 0)) + ReversePolyPtLinks(outRec->Pts); + } + + if (!m_Joins.empty()) + JoinCommonEdges(); + + // unfortunately FixupOutPolygon() must be done after JoinCommonEdges() + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + OutRec *outRec = m_PolyOuts[i]; + if (!outRec->Pts) + continue; + if (outRec->IsOpen) + FixupOutPolyline(*outRec); + else + FixupOutPolygon(*outRec); + } + + if (m_StrictSimple) + DoSimplePolygons(); + } + + ClearJoins(); + ClearGhostJoins(); + return succeeded; +} +//------------------------------------------------------------------------------ + +void Clipper::SetWindingCount(TEdge &edge) { + TEdge *e = edge.PrevInAEL; + // find the edge of the same polytype that immediately preceeds 'edge' in AEL + while (e && ((e->PolyTyp != edge.PolyTyp) || (e->WindDelta == 0))) + e = e->PrevInAEL; + if (!e) { + if (edge.WindDelta == 0) { + PolyFillType pft = + (edge.PolyTyp == ptSubject ? m_SubjFillType : m_ClipFillType); + edge.WindCnt = (pft == pftNegative ? -1 : 1); + } else + edge.WindCnt = edge.WindDelta; + edge.WindCnt2 = 0; + e = m_ActiveEdges; // ie get ready to calc WindCnt2 + } else if (edge.WindDelta == 0 && m_ClipType != ctUnion) { + edge.WindCnt = 1; + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; // ie get ready to calc WindCnt2 + } else if (IsEvenOddFillType(edge)) { + // EvenOdd filling ... + if (edge.WindDelta == 0) { + // are we inside a subj polygon ... + bool Inside = true; + TEdge *e2 = e->PrevInAEL; + while (e2) { + if (e2->PolyTyp == e->PolyTyp && e2->WindDelta != 0) + Inside = !Inside; + e2 = e2->PrevInAEL; + } + edge.WindCnt = (Inside ? 0 : 1); + } else { + edge.WindCnt = edge.WindDelta; + } + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; // ie get ready to calc WindCnt2 + } else { + // nonZero, Positive or Negative filling ... + if (e->WindCnt * e->WindDelta < 0) { + // prev edge is 'decreasing' WindCount (WC) toward zero + // so we're outside the previous polygon ... + if (Abs(e->WindCnt) > 1) { + // outside prev poly but still inside another. + // when reversing direction of prev poly use the same WC + if (e->WindDelta * edge.WindDelta < 0) + edge.WindCnt = e->WindCnt; + // otherwise continue to 'decrease' WC ... + else + edge.WindCnt = e->WindCnt + edge.WindDelta; + } else + // now outside all polys of same polytype so set own WC ... + edge.WindCnt = (edge.WindDelta == 0 ? 1 : edge.WindDelta); + } else { + // prev edge is 'increasing' WindCount (WC) away from zero + // so we're inside the previous polygon ... + if (edge.WindDelta == 0) + edge.WindCnt = (e->WindCnt < 0 ? e->WindCnt - 1 : e->WindCnt + 1); + // if wind direction is reversing prev then use same WC + else if (e->WindDelta * edge.WindDelta < 0) + edge.WindCnt = e->WindCnt; + // otherwise add to WC ... + else + edge.WindCnt = e->WindCnt + edge.WindDelta; + } + edge.WindCnt2 = e->WindCnt2; + e = e->NextInAEL; // ie get ready to calc WindCnt2 + } + + // update WindCnt2 ... + if (IsEvenOddAltFillType(edge)) { + // EvenOdd filling ... + while (e != &edge) { + if (e->WindDelta != 0) + edge.WindCnt2 = (edge.WindCnt2 == 0 ? 1 : 0); + e = e->NextInAEL; + } + } else { + // nonZero, Positive or Negative filling ... + while (e != &edge) { + edge.WindCnt2 += e->WindDelta; + e = e->NextInAEL; + } + } +} +//------------------------------------------------------------------------------ + +bool Clipper::IsEvenOddFillType(const TEdge &edge) const { + if (edge.PolyTyp == ptSubject) + return m_SubjFillType == pftEvenOdd; + else + return m_ClipFillType == pftEvenOdd; +} +//------------------------------------------------------------------------------ + +bool Clipper::IsEvenOddAltFillType(const TEdge &edge) const { + if (edge.PolyTyp == ptSubject) + return m_ClipFillType == pftEvenOdd; + else + return m_SubjFillType == pftEvenOdd; +} +//------------------------------------------------------------------------------ + +bool Clipper::IsContributing(const TEdge &edge) const { + PolyFillType pft, pft2; + if (edge.PolyTyp == ptSubject) { + pft = m_SubjFillType; + pft2 = m_ClipFillType; + } else { + pft = m_ClipFillType; + pft2 = m_SubjFillType; + } + + switch (pft) { + case pftEvenOdd: + // return false if a subj line has been flagged as inside a subj polygon + if (edge.WindDelta == 0 && edge.WindCnt != 1) + return false; + break; + case pftNonZero: + if (Abs(edge.WindCnt) != 1) + return false; + break; + case pftPositive: + if (edge.WindCnt != 1) + return false; + break; + default: // pftNegative + if (edge.WindCnt != -1) + return false; + } + + switch (m_ClipType) { + case ctIntersection: + switch (pft2) { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 != 0); + case pftPositive: + return (edge.WindCnt2 > 0); + default: + return (edge.WindCnt2 < 0); + } + break; + case ctUnion: + switch (pft2) { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + break; + case ctDifference: + if (edge.PolyTyp == ptSubject) + switch (pft2) { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + else + switch (pft2) { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 != 0); + case pftPositive: + return (edge.WindCnt2 > 0); + default: + return (edge.WindCnt2 < 0); + } + break; + case ctXor: + if (edge.WindDelta == 0) // XOr always contributing unless open + switch (pft2) { + case pftEvenOdd: + case pftNonZero: + return (edge.WindCnt2 == 0); + case pftPositive: + return (edge.WindCnt2 <= 0); + default: + return (edge.WindCnt2 >= 0); + } + else + return true; + break; + default: + return true; + } +} +//------------------------------------------------------------------------------ + +OutPt *Clipper::AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) { + OutPt *result; + TEdge *e, *prevE; + if (IsHorizontal(*e2) || (e1->Dx > e2->Dx)) { + result = AddOutPt(e1, Pt); + e2->OutIdx = e1->OutIdx; + e1->Side = esLeft; + e2->Side = esRight; + e = e1; + if (e->PrevInAEL == e2) + prevE = e2->PrevInAEL; + else + prevE = e->PrevInAEL; + } else { + result = AddOutPt(e2, Pt); + e1->OutIdx = e2->OutIdx; + e1->Side = esRight; + e2->Side = esLeft; + e = e2; + if (e->PrevInAEL == e1) + prevE = e1->PrevInAEL; + else + prevE = e->PrevInAEL; + } + + if (prevE && prevE->OutIdx >= 0 && prevE->Top.Y < Pt.Y && e->Top.Y < Pt.Y) { + cInt xPrev = TopX(*prevE, Pt.Y); + cInt xE = TopX(*e, Pt.Y); + if (xPrev == xE && (e->WindDelta != 0) && (prevE->WindDelta != 0) && + SlopesEqual(IntPoint(xPrev, Pt.Y), prevE->Top, IntPoint(xE, Pt.Y), + e->Top, m_UseFullRange)) { + OutPt *outPt = AddOutPt(prevE, Pt); + AddJoin(result, outPt, e->Top); + } + } + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt) { + AddOutPt(e1, Pt); + if (e2->WindDelta == 0) + AddOutPt(e2, Pt); + if (e1->OutIdx == e2->OutIdx) { + e1->OutIdx = Unassigned; + e2->OutIdx = Unassigned; + } else if (e1->OutIdx < e2->OutIdx) + AppendPolygon(e1, e2); + else + AppendPolygon(e2, e1); +} +//------------------------------------------------------------------------------ + +void Clipper::AddEdgeToSEL(TEdge *edge) { + // SEL pointers in PEdge are reused to build a list of horizontal edges. + // However, we don't need to worry about order with horizontal edge + // processing. + if (!m_SortedEdges) { + m_SortedEdges = edge; + edge->PrevInSEL = 0; + edge->NextInSEL = 0; + } else { + edge->NextInSEL = m_SortedEdges; + edge->PrevInSEL = 0; + m_SortedEdges->PrevInSEL = edge; + m_SortedEdges = edge; + } +} +//------------------------------------------------------------------------------ + +bool Clipper::PopEdgeFromSEL(TEdge *&edge) { + if (!m_SortedEdges) + return false; + edge = m_SortedEdges; + DeleteFromSEL(m_SortedEdges); + return true; +} +//------------------------------------------------------------------------------ + +void Clipper::CopyAELToSEL() { + TEdge *e = m_ActiveEdges; + m_SortedEdges = e; + while (e) { + e->PrevInSEL = e->PrevInAEL; + e->NextInSEL = e->NextInAEL; + e = e->NextInAEL; + } +} +//------------------------------------------------------------------------------ + +void Clipper::AddJoin(OutPt *op1, OutPt *op2, const IntPoint OffPt) { + Join *j = new Join; + j->OutPt1 = op1; + j->OutPt2 = op2; + j->OffPt = OffPt; + m_Joins.push_back(j); +} +//------------------------------------------------------------------------------ + +void Clipper::ClearJoins() { + for (JoinList::size_type i = 0; i < m_Joins.size(); i++) + delete m_Joins[i]; + m_Joins.resize(0); +} +//------------------------------------------------------------------------------ + +void Clipper::ClearGhostJoins() { + for (JoinList::size_type i = 0; i < m_GhostJoins.size(); i++) + delete m_GhostJoins[i]; + m_GhostJoins.resize(0); +} +//------------------------------------------------------------------------------ + +void Clipper::AddGhostJoin(OutPt *op, const IntPoint OffPt) { + Join *j = new Join; + j->OutPt1 = op; + j->OutPt2 = 0; + j->OffPt = OffPt; + m_GhostJoins.push_back(j); +} +//------------------------------------------------------------------------------ + +void Clipper::InsertLocalMinimaIntoAEL(const cInt botY) { + const LocalMinimum *lm; + while (PopLocalMinima(botY, lm)) { + TEdge *lb = lm->LeftBound; + TEdge *rb = lm->RightBound; + + OutPt *Op1 = 0; + if (!lb) { + // nb: don't insert LB into either AEL or SEL + InsertEdgeIntoAEL(rb, 0); + SetWindingCount(*rb); + if (IsContributing(*rb)) + Op1 = AddOutPt(rb, rb->Bot); + } else if (!rb) { + InsertEdgeIntoAEL(lb, 0); + SetWindingCount(*lb); + if (IsContributing(*lb)) + Op1 = AddOutPt(lb, lb->Bot); + InsertScanbeam(lb->Top.Y); + } else { + InsertEdgeIntoAEL(lb, 0); + InsertEdgeIntoAEL(rb, lb); + SetWindingCount(*lb); + rb->WindCnt = lb->WindCnt; + rb->WindCnt2 = lb->WindCnt2; + if (IsContributing(*lb)) + Op1 = AddLocalMinPoly(lb, rb, lb->Bot); + InsertScanbeam(lb->Top.Y); + } + + if (rb) { + if (IsHorizontal(*rb)) { + AddEdgeToSEL(rb); + if (rb->NextInLML) + InsertScanbeam(rb->NextInLML->Top.Y); + } else + InsertScanbeam(rb->Top.Y); + } + + if (!lb || !rb) + continue; + + // if any output polygons share an edge, they'll need joining later ... + if (Op1 && IsHorizontal(*rb) && m_GhostJoins.size() > 0 && + (rb->WindDelta != 0)) { + for (JoinList::size_type i = 0; i < m_GhostJoins.size(); ++i) { + Join *jr = m_GhostJoins[i]; + // if the horizontal Rb and a 'ghost' horizontal overlap, then convert + // the 'ghost' join to a real join ready for later ... + if (HorzSegmentsOverlap(jr->OutPt1->Pt.X, jr->OffPt.X, rb->Bot.X, + rb->Top.X)) + AddJoin(jr->OutPt1, Op1, jr->OffPt); + } + } + + if (lb->OutIdx >= 0 && lb->PrevInAEL && + lb->PrevInAEL->Curr.X == lb->Bot.X && lb->PrevInAEL->OutIdx >= 0 && + SlopesEqual(lb->PrevInAEL->Bot, lb->PrevInAEL->Top, lb->Curr, lb->Top, + m_UseFullRange) && + (lb->WindDelta != 0) && (lb->PrevInAEL->WindDelta != 0)) { + OutPt *Op2 = AddOutPt(lb->PrevInAEL, lb->Bot); + AddJoin(Op1, Op2, lb->Top); + } + + if (lb->NextInAEL != rb) { + + if (rb->OutIdx >= 0 && rb->PrevInAEL->OutIdx >= 0 && + SlopesEqual(rb->PrevInAEL->Curr, rb->PrevInAEL->Top, rb->Curr, + rb->Top, m_UseFullRange) && + (rb->WindDelta != 0) && (rb->PrevInAEL->WindDelta != 0)) { + OutPt *Op2 = AddOutPt(rb->PrevInAEL, rb->Bot); + AddJoin(Op1, Op2, rb->Top); + } + + TEdge *e = lb->NextInAEL; + if (e) { + while (e != rb) { + // nb: For calculating winding counts etc, IntersectEdges() assumes + // that param1 will be to the Right of param2 ABOVE the intersection + // ... + IntersectEdges(rb, e, lb->Curr); // order important here + e = e->NextInAEL; + } + } + } + } +} +//------------------------------------------------------------------------------ + +void Clipper::DeleteFromSEL(TEdge *e) { + TEdge *SelPrev = e->PrevInSEL; + TEdge *SelNext = e->NextInSEL; + if (!SelPrev && !SelNext && (e != m_SortedEdges)) + return; // already deleted + if (SelPrev) + SelPrev->NextInSEL = SelNext; + else + m_SortedEdges = SelNext; + if (SelNext) + SelNext->PrevInSEL = SelPrev; + e->NextInSEL = 0; + e->PrevInSEL = 0; +} +//------------------------------------------------------------------------------ + +#ifdef use_xyz +void Clipper::SetZ(IntPoint &pt, TEdge &e1, TEdge &e2) { + if (pt.Z != 0 || !m_ZFill) + return; + else if (pt == e1.Bot) + pt.Z = e1.Bot.Z; + else if (pt == e1.Top) + pt.Z = e1.Top.Z; + else if (pt == e2.Bot) + pt.Z = e2.Bot.Z; + else if (pt == e2.Top) + pt.Z = e2.Top.Z; + else + (*m_ZFill)(e1.Bot, e1.Top, e2.Bot, e2.Top, pt); +} +//------------------------------------------------------------------------------ +#endif + +void Clipper::IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &Pt) { + bool e1Contributing = (e1->OutIdx >= 0); + bool e2Contributing = (e2->OutIdx >= 0); + +#ifdef use_xyz + SetZ(Pt, *e1, *e2); +#endif + +#ifdef use_lines + // if either edge is on an OPEN path ... + if (e1->WindDelta == 0 || e2->WindDelta == 0) { + // ignore subject-subject open path intersections UNLESS they + // are both open paths, AND they are both 'contributing maximas' ... + if (e1->WindDelta == 0 && e2->WindDelta == 0) + return; + + // if intersecting a subj line with a subj poly ... + else if (e1->PolyTyp == e2->PolyTyp && e1->WindDelta != e2->WindDelta && + m_ClipType == ctUnion) { + if (e1->WindDelta == 0) { + if (e2Contributing) { + AddOutPt(e1, Pt); + if (e1Contributing) + e1->OutIdx = Unassigned; + } + } else { + if (e1Contributing) { + AddOutPt(e2, Pt); + if (e2Contributing) + e2->OutIdx = Unassigned; + } + } + } else if (e1->PolyTyp != e2->PolyTyp) { + // toggle subj open path OutIdx on/off when Abs(clip.WndCnt) == 1 ... + if ((e1->WindDelta == 0) && abs(e2->WindCnt) == 1 && + (m_ClipType != ctUnion || e2->WindCnt2 == 0)) { + AddOutPt(e1, Pt); + if (e1Contributing) + e1->OutIdx = Unassigned; + } else if ((e2->WindDelta == 0) && (abs(e1->WindCnt) == 1) && + (m_ClipType != ctUnion || e1->WindCnt2 == 0)) { + AddOutPt(e2, Pt); + if (e2Contributing) + e2->OutIdx = Unassigned; + } + } + return; + } +#endif + + // update winding counts... + // assumes that e1 will be to the Right of e2 ABOVE the intersection + if (e1->PolyTyp == e2->PolyTyp) { + if (IsEvenOddFillType(*e1)) { + int oldE1WindCnt = e1->WindCnt; + e1->WindCnt = e2->WindCnt; + e2->WindCnt = oldE1WindCnt; + } else { + if (e1->WindCnt + e2->WindDelta == 0) + e1->WindCnt = -e1->WindCnt; + else + e1->WindCnt += e2->WindDelta; + if (e2->WindCnt - e1->WindDelta == 0) + e2->WindCnt = -e2->WindCnt; + else + e2->WindCnt -= e1->WindDelta; + } + } else { + if (!IsEvenOddFillType(*e2)) + e1->WindCnt2 += e2->WindDelta; + else + e1->WindCnt2 = (e1->WindCnt2 == 0) ? 1 : 0; + if (!IsEvenOddFillType(*e1)) + e2->WindCnt2 -= e1->WindDelta; + else + e2->WindCnt2 = (e2->WindCnt2 == 0) ? 1 : 0; + } + + PolyFillType e1FillType, e2FillType, e1FillType2, e2FillType2; + if (e1->PolyTyp == ptSubject) { + e1FillType = m_SubjFillType; + e1FillType2 = m_ClipFillType; + } else { + e1FillType = m_ClipFillType; + e1FillType2 = m_SubjFillType; + } + if (e2->PolyTyp == ptSubject) { + e2FillType = m_SubjFillType; + e2FillType2 = m_ClipFillType; + } else { + e2FillType = m_ClipFillType; + e2FillType2 = m_SubjFillType; + } + + cInt e1Wc, e2Wc; + switch (e1FillType) { + case pftPositive: + e1Wc = e1->WindCnt; + break; + case pftNegative: + e1Wc = -e1->WindCnt; + break; + default: + e1Wc = Abs(e1->WindCnt); + } + switch (e2FillType) { + case pftPositive: + e2Wc = e2->WindCnt; + break; + case pftNegative: + e2Wc = -e2->WindCnt; + break; + default: + e2Wc = Abs(e2->WindCnt); + } + + if (e1Contributing && e2Contributing) { + if ((e1Wc != 0 && e1Wc != 1) || (e2Wc != 0 && e2Wc != 1) || + (e1->PolyTyp != e2->PolyTyp && m_ClipType != ctXor)) { + AddLocalMaxPoly(e1, e2, Pt); + } else { + AddOutPt(e1, Pt); + AddOutPt(e2, Pt); + SwapSides(*e1, *e2); + SwapPolyIndexes(*e1, *e2); + } + } else if (e1Contributing) { + if (e2Wc == 0 || e2Wc == 1) { + AddOutPt(e1, Pt); + SwapSides(*e1, *e2); + SwapPolyIndexes(*e1, *e2); + } + } else if (e2Contributing) { + if (e1Wc == 0 || e1Wc == 1) { + AddOutPt(e2, Pt); + SwapSides(*e1, *e2); + SwapPolyIndexes(*e1, *e2); + } + } else if ((e1Wc == 0 || e1Wc == 1) && (e2Wc == 0 || e2Wc == 1)) { + // neither edge is currently contributing ... + + cInt e1Wc2, e2Wc2; + switch (e1FillType2) { + case pftPositive: + e1Wc2 = e1->WindCnt2; + break; + case pftNegative: + e1Wc2 = -e1->WindCnt2; + break; + default: + e1Wc2 = Abs(e1->WindCnt2); + } + switch (e2FillType2) { + case pftPositive: + e2Wc2 = e2->WindCnt2; + break; + case pftNegative: + e2Wc2 = -e2->WindCnt2; + break; + default: + e2Wc2 = Abs(e2->WindCnt2); + } + + if (e1->PolyTyp != e2->PolyTyp) { + AddLocalMinPoly(e1, e2, Pt); + } else if (e1Wc == 1 && e2Wc == 1) + switch (m_ClipType) { + case ctIntersection: + if (e1Wc2 > 0 && e2Wc2 > 0) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctUnion: + if (e1Wc2 <= 0 && e2Wc2 <= 0) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctDifference: + if (((e1->PolyTyp == ptClip) && (e1Wc2 > 0) && (e2Wc2 > 0)) || + ((e1->PolyTyp == ptSubject) && (e1Wc2 <= 0) && (e2Wc2 <= 0))) + AddLocalMinPoly(e1, e2, Pt); + break; + case ctXor: + AddLocalMinPoly(e1, e2, Pt); + } + else + SwapSides(*e1, *e2); + } +} +//------------------------------------------------------------------------------ + +void Clipper::SetHoleState(TEdge *e, OutRec *outrec) { + TEdge *e2 = e->PrevInAEL; + TEdge *eTmp = 0; + while (e2) { + if (e2->OutIdx >= 0 && e2->WindDelta != 0) { + if (!eTmp) + eTmp = e2; + else if (eTmp->OutIdx == e2->OutIdx) + eTmp = 0; + } + e2 = e2->PrevInAEL; + } + if (!eTmp) { + outrec->FirstLeft = 0; + outrec->IsHole = false; + } else { + outrec->FirstLeft = m_PolyOuts[eTmp->OutIdx]; + outrec->IsHole = !outrec->FirstLeft->IsHole; + } +} +//------------------------------------------------------------------------------ + +OutRec *GetLowermostRec(OutRec *outRec1, OutRec *outRec2) { + // work out which polygon fragment has the correct hole state ... + if (!outRec1->BottomPt) + outRec1->BottomPt = GetBottomPt(outRec1->Pts); + if (!outRec2->BottomPt) + outRec2->BottomPt = GetBottomPt(outRec2->Pts); + OutPt *OutPt1 = outRec1->BottomPt; + OutPt *OutPt2 = outRec2->BottomPt; + if (OutPt1->Pt.Y > OutPt2->Pt.Y) + return outRec1; + else if (OutPt1->Pt.Y < OutPt2->Pt.Y) + return outRec2; + else if (OutPt1->Pt.X < OutPt2->Pt.X) + return outRec1; + else if (OutPt1->Pt.X > OutPt2->Pt.X) + return outRec2; + else if (OutPt1->Next == OutPt1) + return outRec2; + else if (OutPt2->Next == OutPt2) + return outRec1; + else if (FirstIsBottomPt(OutPt1, OutPt2)) + return outRec1; + else + return outRec2; +} +//------------------------------------------------------------------------------ + +bool OutRec1RightOfOutRec2(OutRec *outRec1, OutRec *outRec2) { + do { + outRec1 = outRec1->FirstLeft; + if (outRec1 == outRec2) + return true; + } while (outRec1); + return false; +} +//------------------------------------------------------------------------------ + +OutRec *Clipper::GetOutRec(int Idx) { + OutRec *outrec = m_PolyOuts[Idx]; + while (outrec != m_PolyOuts[outrec->Idx]) + outrec = m_PolyOuts[outrec->Idx]; + return outrec; +} +//------------------------------------------------------------------------------ + +void Clipper::AppendPolygon(TEdge *e1, TEdge *e2) { + // get the start and ends of both output polygons ... + OutRec *outRec1 = m_PolyOuts[e1->OutIdx]; + OutRec *outRec2 = m_PolyOuts[e2->OutIdx]; + + OutRec *holeStateRec; + if (OutRec1RightOfOutRec2(outRec1, outRec2)) + holeStateRec = outRec2; + else if (OutRec1RightOfOutRec2(outRec2, outRec1)) + holeStateRec = outRec1; + else + holeStateRec = GetLowermostRec(outRec1, outRec2); + + // get the start and ends of both output polygons and + // join e2 poly onto e1 poly and delete pointers to e2 ... + + OutPt *p1_lft = outRec1->Pts; + OutPt *p1_rt = p1_lft->Prev; + OutPt *p2_lft = outRec2->Pts; + OutPt *p2_rt = p2_lft->Prev; + + // join e2 poly onto e1 poly and delete pointers to e2 ... + if (e1->Side == esLeft) { + if (e2->Side == esLeft) { + // z y x a b c + ReversePolyPtLinks(p2_lft); + p2_lft->Next = p1_lft; + p1_lft->Prev = p2_lft; + p1_rt->Next = p2_rt; + p2_rt->Prev = p1_rt; + outRec1->Pts = p2_rt; + } else { + // x y z a b c + p2_rt->Next = p1_lft; + p1_lft->Prev = p2_rt; + p2_lft->Prev = p1_rt; + p1_rt->Next = p2_lft; + outRec1->Pts = p2_lft; + } + } else { + if (e2->Side == esRight) { + // a b c z y x + ReversePolyPtLinks(p2_lft); + p1_rt->Next = p2_rt; + p2_rt->Prev = p1_rt; + p2_lft->Next = p1_lft; + p1_lft->Prev = p2_lft; + } else { + // a b c x y z + p1_rt->Next = p2_lft; + p2_lft->Prev = p1_rt; + p1_lft->Prev = p2_rt; + p2_rt->Next = p1_lft; + } + } + + outRec1->BottomPt = 0; + if (holeStateRec == outRec2) { + if (outRec2->FirstLeft != outRec1) + outRec1->FirstLeft = outRec2->FirstLeft; + outRec1->IsHole = outRec2->IsHole; + } + outRec2->Pts = 0; + outRec2->BottomPt = 0; + outRec2->FirstLeft = outRec1; + + int OKIdx = e1->OutIdx; + int ObsoleteIdx = e2->OutIdx; + + e1->OutIdx = + Unassigned; // nb: safe because we only get here via AddLocalMaxPoly + e2->OutIdx = Unassigned; + + TEdge *e = m_ActiveEdges; + while (e) { + if (e->OutIdx == ObsoleteIdx) { + e->OutIdx = OKIdx; + e->Side = e1->Side; + break; + } + e = e->NextInAEL; + } + + outRec2->Idx = outRec1->Idx; +} +//------------------------------------------------------------------------------ + +OutPt *Clipper::AddOutPt(TEdge *e, const IntPoint &pt) { + if (e->OutIdx < 0) { + OutRec *outRec = CreateOutRec(); + outRec->IsOpen = (e->WindDelta == 0); + OutPt *newOp = new OutPt; + outRec->Pts = newOp; + newOp->Idx = outRec->Idx; + newOp->Pt = pt; + newOp->Next = newOp; + newOp->Prev = newOp; + if (!outRec->IsOpen) + SetHoleState(e, outRec); + e->OutIdx = outRec->Idx; + return newOp; + } else { + OutRec *outRec = m_PolyOuts[e->OutIdx]; + // OutRec.Pts is the 'Left-most' point & OutRec.Pts.Prev is the 'Right-most' + OutPt *op = outRec->Pts; + + bool ToFront = (e->Side == esLeft); + if (ToFront && (pt == op->Pt)) + return op; + else if (!ToFront && (pt == op->Prev->Pt)) + return op->Prev; + + OutPt *newOp = new OutPt; + newOp->Idx = outRec->Idx; + newOp->Pt = pt; + newOp->Next = op; + newOp->Prev = op->Prev; + newOp->Prev->Next = newOp; + op->Prev = newOp; + if (ToFront) + outRec->Pts = newOp; + return newOp; + } +} +//------------------------------------------------------------------------------ + +OutPt *Clipper::GetLastOutPt(TEdge *e) { + OutRec *outRec = m_PolyOuts[e->OutIdx]; + if (e->Side == esLeft) + return outRec->Pts; + else + return outRec->Pts->Prev; +} +//------------------------------------------------------------------------------ + +void Clipper::ProcessHorizontals() { + TEdge *horzEdge; + while (PopEdgeFromSEL(horzEdge)) + ProcessHorizontal(horzEdge); +} +//------------------------------------------------------------------------------ + +inline bool IsMinima(TEdge *e) { + return e && (e->Prev->NextInLML != e) && (e->Next->NextInLML != e); +} +//------------------------------------------------------------------------------ + +inline bool IsMaxima(TEdge *e, const cInt Y) { + return e && e->Top.Y == Y && !e->NextInLML; +} +//------------------------------------------------------------------------------ + +inline bool IsIntermediate(TEdge *e, const cInt Y) { + return e->Top.Y == Y && e->NextInLML; +} +//------------------------------------------------------------------------------ + +TEdge *GetMaximaPair(TEdge *e) { + if ((e->Next->Top == e->Top) && !e->Next->NextInLML) + return e->Next; + else if ((e->Prev->Top == e->Top) && !e->Prev->NextInLML) + return e->Prev; + else + return 0; +} +//------------------------------------------------------------------------------ + +TEdge *GetMaximaPairEx(TEdge *e) { + // as GetMaximaPair() but returns 0 if MaxPair isn't in AEL (unless it's + // horizontal) + TEdge *result = GetMaximaPair(e); + if (result && + (result->OutIdx == Skip || + (result->NextInAEL == result->PrevInAEL && !IsHorizontal(*result)))) + return 0; + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::SwapPositionsInSEL(TEdge *Edge1, TEdge *Edge2) { + if (!(Edge1->NextInSEL) && !(Edge1->PrevInSEL)) + return; + if (!(Edge2->NextInSEL) && !(Edge2->PrevInSEL)) + return; + + if (Edge1->NextInSEL == Edge2) { + TEdge *Next = Edge2->NextInSEL; + if (Next) + Next->PrevInSEL = Edge1; + TEdge *Prev = Edge1->PrevInSEL; + if (Prev) + Prev->NextInSEL = Edge2; + Edge2->PrevInSEL = Prev; + Edge2->NextInSEL = Edge1; + Edge1->PrevInSEL = Edge2; + Edge1->NextInSEL = Next; + } else if (Edge2->NextInSEL == Edge1) { + TEdge *Next = Edge1->NextInSEL; + if (Next) + Next->PrevInSEL = Edge2; + TEdge *Prev = Edge2->PrevInSEL; + if (Prev) + Prev->NextInSEL = Edge1; + Edge1->PrevInSEL = Prev; + Edge1->NextInSEL = Edge2; + Edge2->PrevInSEL = Edge1; + Edge2->NextInSEL = Next; + } else { + TEdge *Next = Edge1->NextInSEL; + TEdge *Prev = Edge1->PrevInSEL; + Edge1->NextInSEL = Edge2->NextInSEL; + if (Edge1->NextInSEL) + Edge1->NextInSEL->PrevInSEL = Edge1; + Edge1->PrevInSEL = Edge2->PrevInSEL; + if (Edge1->PrevInSEL) + Edge1->PrevInSEL->NextInSEL = Edge1; + Edge2->NextInSEL = Next; + if (Edge2->NextInSEL) + Edge2->NextInSEL->PrevInSEL = Edge2; + Edge2->PrevInSEL = Prev; + if (Edge2->PrevInSEL) + Edge2->PrevInSEL->NextInSEL = Edge2; + } + + if (!Edge1->PrevInSEL) + m_SortedEdges = Edge1; + else if (!Edge2->PrevInSEL) + m_SortedEdges = Edge2; +} +//------------------------------------------------------------------------------ + +TEdge *GetNextInAEL(TEdge *e, Direction dir) { + return dir == dLeftToRight ? e->NextInAEL : e->PrevInAEL; +} +//------------------------------------------------------------------------------ + +void GetHorzDirection(TEdge &HorzEdge, Direction &Dir, cInt &Left, + cInt &Right) { + if (HorzEdge.Bot.X < HorzEdge.Top.X) { + Left = HorzEdge.Bot.X; + Right = HorzEdge.Top.X; + Dir = dLeftToRight; + } else { + Left = HorzEdge.Top.X; + Right = HorzEdge.Bot.X; + Dir = dRightToLeft; + } +} +//------------------------------------------------------------------------ + +/******************************************************************************* +* Notes: Horizontal edges (HEs) at scanline intersections (ie at the Top or * +* Bottom of a scanbeam) are processed as if layered. The order in which HEs * +* are processed doesn't matter. HEs intersect with other HE Bot.Xs only [#] * +* (or they could intersect with Top.Xs only, ie EITHER Bot.Xs OR Top.Xs), * +* and with other non-horizontal edges [*]. Once these intersections are * +* processed, intermediate HEs then 'promote' the Edge above (NextInLML) into * +* the AEL. These 'promoted' edges may in turn intersect [%] with other HEs. * +*******************************************************************************/ + +void Clipper::ProcessHorizontal(TEdge *horzEdge) { + Direction dir; + cInt horzLeft, horzRight; + bool IsOpen = (horzEdge->WindDelta == 0); + + GetHorzDirection(*horzEdge, dir, horzLeft, horzRight); + + TEdge *eLastHorz = horzEdge, *eMaxPair = 0; + while (eLastHorz->NextInLML && IsHorizontal(*eLastHorz->NextInLML)) + eLastHorz = eLastHorz->NextInLML; + if (!eLastHorz->NextInLML) + eMaxPair = GetMaximaPair(eLastHorz); + + MaximaList::const_iterator maxIt; + MaximaList::const_reverse_iterator maxRit; + if (m_Maxima.size() > 0) { + // get the first maxima in range (X) ... + if (dir == dLeftToRight) { + maxIt = m_Maxima.begin(); + while (maxIt != m_Maxima.end() && *maxIt <= horzEdge->Bot.X) + maxIt++; + if (maxIt != m_Maxima.end() && *maxIt >= eLastHorz->Top.X) + maxIt = m_Maxima.end(); + } else { + maxRit = m_Maxima.rbegin(); + while (maxRit != m_Maxima.rend() && *maxRit > horzEdge->Bot.X) + maxRit++; + if (maxRit != m_Maxima.rend() && *maxRit <= eLastHorz->Top.X) + maxRit = m_Maxima.rend(); + } + } + + OutPt *op1 = 0; + + for (;;) // loop through consec. horizontal edges + { + + bool IsLastHorz = (horzEdge == eLastHorz); + TEdge *e = GetNextInAEL(horzEdge, dir); + while (e) { + + // this code block inserts extra coords into horizontal edges (in output + // polygons) whereever maxima touch these horizontal edges. This helps + //'simplifying' polygons (ie if the Simplify property is set). + if (m_Maxima.size() > 0) { + if (dir == dLeftToRight) { + while (maxIt != m_Maxima.end() && *maxIt < e->Curr.X) { + if (horzEdge->OutIdx >= 0 && !IsOpen) + AddOutPt(horzEdge, IntPoint(*maxIt, horzEdge->Bot.Y)); + maxIt++; + } + } else { + while (maxRit != m_Maxima.rend() && *maxRit > e->Curr.X) { + if (horzEdge->OutIdx >= 0 && !IsOpen) + AddOutPt(horzEdge, IntPoint(*maxRit, horzEdge->Bot.Y)); + maxRit++; + } + } + }; + + if ((dir == dLeftToRight && e->Curr.X > horzRight) || + (dir == dRightToLeft && e->Curr.X < horzLeft)) + break; + + // Also break if we've got to the end of an intermediate horizontal edge + // ... + // nb: Smaller Dx's are to the right of larger Dx's ABOVE the horizontal. + if (e->Curr.X == horzEdge->Top.X && horzEdge->NextInLML && + e->Dx < horzEdge->NextInLML->Dx) + break; + + if (horzEdge->OutIdx >= 0 && !IsOpen) // note: may be done multiple times + { +#ifdef use_xyz + if (dir == dLeftToRight) + SetZ(e->Curr, *horzEdge, *e); + else + SetZ(e->Curr, *e, *horzEdge); +#endif + op1 = AddOutPt(horzEdge, e->Curr); + TEdge *eNextHorz = m_SortedEdges; + while (eNextHorz) { + if (eNextHorz->OutIdx >= 0 && + HorzSegmentsOverlap(horzEdge->Bot.X, horzEdge->Top.X, + eNextHorz->Bot.X, eNextHorz->Top.X)) { + OutPt *op2 = GetLastOutPt(eNextHorz); + AddJoin(op2, op1, eNextHorz->Top); + } + eNextHorz = eNextHorz->NextInSEL; + } + AddGhostJoin(op1, horzEdge->Bot); + } + + // OK, so far we're still in range of the horizontal Edge but make sure + // we're at the last of consec. horizontals when matching with eMaxPair + if (e == eMaxPair && IsLastHorz) { + if (horzEdge->OutIdx >= 0) + AddLocalMaxPoly(horzEdge, eMaxPair, horzEdge->Top); + DeleteFromAEL(horzEdge); + DeleteFromAEL(eMaxPair); + return; + } + + if (dir == dLeftToRight) { + IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y); + IntersectEdges(horzEdge, e, Pt); + } else { + IntPoint Pt = IntPoint(e->Curr.X, horzEdge->Curr.Y); + IntersectEdges(e, horzEdge, Pt); + } + TEdge *eNext = GetNextInAEL(e, dir); + SwapPositionsInAEL(horzEdge, e); + e = eNext; + } // end while(e) + + // Break out of loop if HorzEdge.NextInLML is not also horizontal ... + if (!horzEdge->NextInLML || !IsHorizontal(*horzEdge->NextInLML)) + break; + + UpdateEdgeIntoAEL(horzEdge); + if (horzEdge->OutIdx >= 0) + AddOutPt(horzEdge, horzEdge->Bot); + GetHorzDirection(*horzEdge, dir, horzLeft, horzRight); + + } // end for (;;) + + if (horzEdge->OutIdx >= 0 && !op1) { + op1 = GetLastOutPt(horzEdge); + TEdge *eNextHorz = m_SortedEdges; + while (eNextHorz) { + if (eNextHorz->OutIdx >= 0 && + HorzSegmentsOverlap(horzEdge->Bot.X, horzEdge->Top.X, + eNextHorz->Bot.X, eNextHorz->Top.X)) { + OutPt *op2 = GetLastOutPt(eNextHorz); + AddJoin(op2, op1, eNextHorz->Top); + } + eNextHorz = eNextHorz->NextInSEL; + } + AddGhostJoin(op1, horzEdge->Top); + } + + if (horzEdge->NextInLML) { + if (horzEdge->OutIdx >= 0) { + op1 = AddOutPt(horzEdge, horzEdge->Top); + UpdateEdgeIntoAEL(horzEdge); + if (horzEdge->WindDelta == 0) + return; + // nb: HorzEdge is no longer horizontal here + TEdge *ePrev = horzEdge->PrevInAEL; + TEdge *eNext = horzEdge->NextInAEL; + if (ePrev && ePrev->Curr.X == horzEdge->Bot.X && + ePrev->Curr.Y == horzEdge->Bot.Y && ePrev->WindDelta != 0 && + (ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y && + SlopesEqual(*horzEdge, *ePrev, m_UseFullRange))) { + OutPt *op2 = AddOutPt(ePrev, horzEdge->Bot); + AddJoin(op1, op2, horzEdge->Top); + } else if (eNext && eNext->Curr.X == horzEdge->Bot.X && + eNext->Curr.Y == horzEdge->Bot.Y && eNext->WindDelta != 0 && + eNext->OutIdx >= 0 && eNext->Curr.Y > eNext->Top.Y && + SlopesEqual(*horzEdge, *eNext, m_UseFullRange)) { + OutPt *op2 = AddOutPt(eNext, horzEdge->Bot); + AddJoin(op1, op2, horzEdge->Top); + } + } else + UpdateEdgeIntoAEL(horzEdge); + } else { + if (horzEdge->OutIdx >= 0) + AddOutPt(horzEdge, horzEdge->Top); + DeleteFromAEL(horzEdge); + } +} +//------------------------------------------------------------------------------ + +bool Clipper::ProcessIntersections(const cInt topY) { + if (!m_ActiveEdges) + return true; + try { + BuildIntersectList(topY); + size_t IlSize = m_IntersectList.size(); + if (IlSize == 0) + return true; + if (IlSize == 1 || FixupIntersectionOrder()) + ProcessIntersectList(); + else + return false; + } catch (...) { + m_SortedEdges = 0; + DisposeIntersectNodes(); + throw clipperException("ProcessIntersections error"); + } + m_SortedEdges = 0; + return true; +} +//------------------------------------------------------------------------------ + +void Clipper::DisposeIntersectNodes() { + for (size_t i = 0; i < m_IntersectList.size(); ++i) + delete m_IntersectList[i]; + m_IntersectList.clear(); +} +//------------------------------------------------------------------------------ + +void Clipper::BuildIntersectList(const cInt topY) { + if (!m_ActiveEdges) + return; + + // prepare for sorting ... + TEdge *e = m_ActiveEdges; + m_SortedEdges = e; + while (e) { + e->PrevInSEL = e->PrevInAEL; + e->NextInSEL = e->NextInAEL; + e->Curr.X = TopX(*e, topY); + e = e->NextInAEL; + } + + // bubblesort ... + bool isModified; + do { + isModified = false; + e = m_SortedEdges; + while (e->NextInSEL) { + TEdge *eNext = e->NextInSEL; + IntPoint Pt; + if (e->Curr.X > eNext->Curr.X) { + IntersectPoint(*e, *eNext, Pt); + if (Pt.Y < topY) + Pt = IntPoint(TopX(*e, topY), topY); + IntersectNode *newNode = new IntersectNode; + newNode->Edge1 = e; + newNode->Edge2 = eNext; + newNode->Pt = Pt; + m_IntersectList.push_back(newNode); + + SwapPositionsInSEL(e, eNext); + isModified = true; + } else + e = eNext; + } + if (e->PrevInSEL) + e->PrevInSEL->NextInSEL = 0; + else + break; + } while (isModified); + m_SortedEdges = 0; // important +} +//------------------------------------------------------------------------------ + +void Clipper::ProcessIntersectList() { + for (size_t i = 0; i < m_IntersectList.size(); ++i) { + IntersectNode *iNode = m_IntersectList[i]; + { + IntersectEdges(iNode->Edge1, iNode->Edge2, iNode->Pt); + SwapPositionsInAEL(iNode->Edge1, iNode->Edge2); + } + delete iNode; + } + m_IntersectList.clear(); +} +//------------------------------------------------------------------------------ + +bool IntersectListSort(IntersectNode *node1, IntersectNode *node2) { + return node2->Pt.Y < node1->Pt.Y; +} +//------------------------------------------------------------------------------ + +inline bool EdgesAdjacent(const IntersectNode &inode) { + return (inode.Edge1->NextInSEL == inode.Edge2) || + (inode.Edge1->PrevInSEL == inode.Edge2); +} +//------------------------------------------------------------------------------ + +bool Clipper::FixupIntersectionOrder() { + // pre-condition: intersections are sorted Bottom-most first. + // Now it's crucial that intersections are made only between adjacent edges, + // so to ensure this the order of intersections may need adjusting ... + CopyAELToSEL(); + std::sort(m_IntersectList.begin(), m_IntersectList.end(), IntersectListSort); + size_t cnt = m_IntersectList.size(); + for (size_t i = 0; i < cnt; ++i) { + if (!EdgesAdjacent(*m_IntersectList[i])) { + size_t j = i + 1; + while (j < cnt && !EdgesAdjacent(*m_IntersectList[j])) + j++; + if (j == cnt) + return false; + std::swap(m_IntersectList[i], m_IntersectList[j]); + } + SwapPositionsInSEL(m_IntersectList[i]->Edge1, m_IntersectList[i]->Edge2); + } + return true; +} +//------------------------------------------------------------------------------ + +void Clipper::DoMaxima(TEdge *e) { + TEdge *eMaxPair = GetMaximaPairEx(e); + if (!eMaxPair) { + if (e->OutIdx >= 0) + AddOutPt(e, e->Top); + DeleteFromAEL(e); + return; + } + + TEdge *eNext = e->NextInAEL; + while (eNext && eNext != eMaxPair) { + IntersectEdges(e, eNext, e->Top); + SwapPositionsInAEL(e, eNext); + eNext = e->NextInAEL; + } + + if (e->OutIdx == Unassigned && eMaxPair->OutIdx == Unassigned) { + DeleteFromAEL(e); + DeleteFromAEL(eMaxPair); + } else if (e->OutIdx >= 0 && eMaxPair->OutIdx >= 0) { + if (e->OutIdx >= 0) + AddLocalMaxPoly(e, eMaxPair, e->Top); + DeleteFromAEL(e); + DeleteFromAEL(eMaxPair); + } +#ifdef use_lines + else if (e->WindDelta == 0) { + if (e->OutIdx >= 0) { + AddOutPt(e, e->Top); + e->OutIdx = Unassigned; + } + DeleteFromAEL(e); + + if (eMaxPair->OutIdx >= 0) { + AddOutPt(eMaxPair, e->Top); + eMaxPair->OutIdx = Unassigned; + } + DeleteFromAEL(eMaxPair); + } +#endif + else + throw clipperException("DoMaxima error"); +} +//------------------------------------------------------------------------------ + +void Clipper::ProcessEdgesAtTopOfScanbeam(const cInt topY) { + TEdge *e = m_ActiveEdges; + while (e) { + // 1. process maxima, treating them as if they're 'bent' horizontal edges, + // but exclude maxima with horizontal edges. nb: e can't be a horizontal. + bool IsMaximaEdge = IsMaxima(e, topY); + + if (IsMaximaEdge) { + TEdge *eMaxPair = GetMaximaPairEx(e); + IsMaximaEdge = (!eMaxPair || !IsHorizontal(*eMaxPair)); + } + + if (IsMaximaEdge) { + if (m_StrictSimple) + m_Maxima.push_back(e->Top.X); + TEdge *ePrev = e->PrevInAEL; + DoMaxima(e); + if (!ePrev) + e = m_ActiveEdges; + else + e = ePrev->NextInAEL; + } else { + // 2. promote horizontal edges, otherwise update Curr.X and Curr.Y ... + if (IsIntermediate(e, topY) && IsHorizontal(*e->NextInLML)) { + UpdateEdgeIntoAEL(e); + if (e->OutIdx >= 0) + AddOutPt(e, e->Bot); + AddEdgeToSEL(e); + } else { + e->Curr.X = TopX(*e, topY); + e->Curr.Y = topY; +#ifdef use_xyz + e->Curr.Z = + topY == e->Top.Y ? e->Top.Z : (topY == e->Bot.Y ? e->Bot.Z : 0); +#endif + } + + // When StrictlySimple and 'e' is being touched by another edge, then + // make sure both edges have a vertex here ... + if (m_StrictSimple) { + TEdge *ePrev = e->PrevInAEL; + if ((e->OutIdx >= 0) && (e->WindDelta != 0) && ePrev && + (ePrev->OutIdx >= 0) && (ePrev->Curr.X == e->Curr.X) && + (ePrev->WindDelta != 0)) { + IntPoint pt = e->Curr; +#ifdef use_xyz + SetZ(pt, *ePrev, *e); +#endif + OutPt *op = AddOutPt(ePrev, pt); + OutPt *op2 = AddOutPt(e, pt); + AddJoin(op, op2, pt); // StrictlySimple (type-3) join + } + } + + e = e->NextInAEL; + } + } + + // 3. Process horizontals at the Top of the scanbeam ... + m_Maxima.sort(); + ProcessHorizontals(); + m_Maxima.clear(); + + // 4. Promote intermediate vertices ... + e = m_ActiveEdges; + while (e) { + if (IsIntermediate(e, topY)) { + OutPt *op = 0; + if (e->OutIdx >= 0) + op = AddOutPt(e, e->Top); + UpdateEdgeIntoAEL(e); + + // if output polygons share an edge, they'll need joining later ... + TEdge *ePrev = e->PrevInAEL; + TEdge *eNext = e->NextInAEL; + if (ePrev && ePrev->Curr.X == e->Bot.X && ePrev->Curr.Y == e->Bot.Y && + op && ePrev->OutIdx >= 0 && ePrev->Curr.Y > ePrev->Top.Y && + SlopesEqual(e->Curr, e->Top, ePrev->Curr, ePrev->Top, + m_UseFullRange) && + (e->WindDelta != 0) && (ePrev->WindDelta != 0)) { + OutPt *op2 = AddOutPt(ePrev, e->Bot); + AddJoin(op, op2, e->Top); + } else if (eNext && eNext->Curr.X == e->Bot.X && + eNext->Curr.Y == e->Bot.Y && op && eNext->OutIdx >= 0 && + eNext->Curr.Y > eNext->Top.Y && + SlopesEqual(e->Curr, e->Top, eNext->Curr, eNext->Top, + m_UseFullRange) && + (e->WindDelta != 0) && (eNext->WindDelta != 0)) { + OutPt *op2 = AddOutPt(eNext, e->Bot); + AddJoin(op, op2, e->Top); + } + } + e = e->NextInAEL; + } +} +//------------------------------------------------------------------------------ + +void Clipper::FixupOutPolyline(OutRec &outrec) { + OutPt *pp = outrec.Pts; + OutPt *lastPP = pp->Prev; + while (pp != lastPP) { + pp = pp->Next; + if (pp->Pt == pp->Prev->Pt) { + if (pp == lastPP) + lastPP = pp->Prev; + OutPt *tmpPP = pp->Prev; + tmpPP->Next = pp->Next; + pp->Next->Prev = tmpPP; + delete pp; + pp = tmpPP; + } + } + + if (pp == pp->Prev) { + DisposeOutPts(pp); + outrec.Pts = 0; + return; + } +} +//------------------------------------------------------------------------------ + +void Clipper::FixupOutPolygon(OutRec &outrec) { + // FixupOutPolygon() - removes duplicate points and simplifies consecutive + // parallel edges by removing the middle vertex. + OutPt *lastOK = 0; + outrec.BottomPt = 0; + OutPt *pp = outrec.Pts; + bool preserveCol = m_PreserveCollinear || m_StrictSimple; + + for (;;) { + if (pp->Prev == pp || pp->Prev == pp->Next) { + DisposeOutPts(pp); + outrec.Pts = 0; + return; + } + + // test for duplicate points and collinear edges ... + if ((pp->Pt == pp->Next->Pt) || (pp->Pt == pp->Prev->Pt) || + (SlopesEqual(pp->Prev->Pt, pp->Pt, pp->Next->Pt, m_UseFullRange) && + (!preserveCol || + !Pt2IsBetweenPt1AndPt3(pp->Prev->Pt, pp->Pt, pp->Next->Pt)))) { + lastOK = 0; + OutPt *tmp = pp; + pp->Prev->Next = pp->Next; + pp->Next->Prev = pp->Prev; + pp = pp->Prev; + delete tmp; + } else if (pp == lastOK) + break; + else { + if (!lastOK) + lastOK = pp; + pp = pp->Next; + } + } + outrec.Pts = pp; +} +//------------------------------------------------------------------------------ + +int PointCount(OutPt *Pts) { + if (!Pts) + return 0; + int result = 0; + OutPt *p = Pts; + do { + result++; + p = p->Next; + } while (p != Pts); + return result; +} +//------------------------------------------------------------------------------ + +void Clipper::BuildResult(Paths &polys) { + polys.reserve(m_PolyOuts.size()); + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + if (!m_PolyOuts[i]->Pts) + continue; + Path pg; + OutPt *p = m_PolyOuts[i]->Pts->Prev; + int cnt = PointCount(p); + if (cnt < 2) + continue; + pg.reserve(cnt); + for (int i = 0; i < cnt; ++i) { + pg.push_back(p->Pt); + p = p->Prev; + } + polys.push_back(pg); + } +} +//------------------------------------------------------------------------------ + +void Clipper::BuildResult2(PolyTree &polytree) { + polytree.Clear(); + polytree.AllNodes.reserve(m_PolyOuts.size()); + // add each output polygon/contour to polytree ... + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); i++) { + OutRec *outRec = m_PolyOuts[i]; + int cnt = PointCount(outRec->Pts); + if ((outRec->IsOpen && cnt < 2) || (!outRec->IsOpen && cnt < 3)) + continue; + FixHoleLinkage(*outRec); + PolyNode *pn = new PolyNode(); + // nb: polytree takes ownership of all the PolyNodes + polytree.AllNodes.push_back(pn); + outRec->PolyNd = pn; + pn->Parent = 0; + pn->Index = 0; + pn->Contour.reserve(cnt); + OutPt *op = outRec->Pts->Prev; + for (int j = 0; j < cnt; j++) { + pn->Contour.push_back(op->Pt); + op = op->Prev; + } + } + + // fixup PolyNode links etc ... + polytree.Childs.reserve(m_PolyOuts.size()); + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); i++) { + OutRec *outRec = m_PolyOuts[i]; + if (!outRec->PolyNd) + continue; + if (outRec->IsOpen) { + outRec->PolyNd->m_IsOpen = true; + polytree.AddChild(*outRec->PolyNd); + } else if (outRec->FirstLeft && outRec->FirstLeft->PolyNd) + outRec->FirstLeft->PolyNd->AddChild(*outRec->PolyNd); + else + polytree.AddChild(*outRec->PolyNd); + } +} +//------------------------------------------------------------------------------ + +void SwapIntersectNodes(IntersectNode &int1, IntersectNode &int2) { + // just swap the contents (because fIntersectNodes is a single-linked-list) + IntersectNode inode = int1; // gets a copy of Int1 + int1.Edge1 = int2.Edge1; + int1.Edge2 = int2.Edge2; + int1.Pt = int2.Pt; + int2.Edge1 = inode.Edge1; + int2.Edge2 = inode.Edge2; + int2.Pt = inode.Pt; +} +//------------------------------------------------------------------------------ + +inline bool E2InsertsBeforeE1(TEdge &e1, TEdge &e2) { + if (e2.Curr.X == e1.Curr.X) { + if (e2.Top.Y > e1.Top.Y) + return e2.Top.X < TopX(e1, e2.Top.Y); + else + return e1.Top.X > TopX(e2, e1.Top.Y); + } else + return e2.Curr.X < e1.Curr.X; +} +//------------------------------------------------------------------------------ + +bool GetOverlap(const cInt a1, const cInt a2, const cInt b1, const cInt b2, + cInt &Left, cInt &Right) { + if (a1 < a2) { + if (b1 < b2) { + Left = std::max(a1, b1); + Right = std::min(a2, b2); + } else { + Left = std::max(a1, b2); + Right = std::min(a2, b1); + } + } else { + if (b1 < b2) { + Left = std::max(a2, b1); + Right = std::min(a1, b2); + } else { + Left = std::max(a2, b2); + Right = std::min(a1, b1); + } + } + return Left < Right; +} +//------------------------------------------------------------------------------ + +inline void UpdateOutPtIdxs(OutRec &outrec) { + OutPt *op = outrec.Pts; + do { + op->Idx = outrec.Idx; + op = op->Prev; + } while (op != outrec.Pts); +} +//------------------------------------------------------------------------------ + +void Clipper::InsertEdgeIntoAEL(TEdge *edge, TEdge *startEdge) { + if (!m_ActiveEdges) { + edge->PrevInAEL = 0; + edge->NextInAEL = 0; + m_ActiveEdges = edge; + } else if (!startEdge && E2InsertsBeforeE1(*m_ActiveEdges, *edge)) { + edge->PrevInAEL = 0; + edge->NextInAEL = m_ActiveEdges; + m_ActiveEdges->PrevInAEL = edge; + m_ActiveEdges = edge; + } else { + if (!startEdge) + startEdge = m_ActiveEdges; + while (startEdge->NextInAEL && + !E2InsertsBeforeE1(*startEdge->NextInAEL, *edge)) + startEdge = startEdge->NextInAEL; + edge->NextInAEL = startEdge->NextInAEL; + if (startEdge->NextInAEL) + startEdge->NextInAEL->PrevInAEL = edge; + edge->PrevInAEL = startEdge; + startEdge->NextInAEL = edge; + } +} +//---------------------------------------------------------------------- + +OutPt *DupOutPt(OutPt *outPt, bool InsertAfter) { + OutPt *result = new OutPt; + result->Pt = outPt->Pt; + result->Idx = outPt->Idx; + if (InsertAfter) { + result->Next = outPt->Next; + result->Prev = outPt; + outPt->Next->Prev = result; + outPt->Next = result; + } else { + result->Prev = outPt->Prev; + result->Next = outPt; + outPt->Prev->Next = result; + outPt->Prev = result; + } + return result; +} +//------------------------------------------------------------------------------ + +bool JoinHorz(OutPt *op1, OutPt *op1b, OutPt *op2, OutPt *op2b, + const IntPoint Pt, bool DiscardLeft) { + Direction Dir1 = (op1->Pt.X > op1b->Pt.X ? dRightToLeft : dLeftToRight); + Direction Dir2 = (op2->Pt.X > op2b->Pt.X ? dRightToLeft : dLeftToRight); + if (Dir1 == Dir2) + return false; + + // When DiscardLeft, we want Op1b to be on the Left of Op1, otherwise we + // want Op1b to be on the Right. (And likewise with Op2 and Op2b.) + // So, to facilitate this while inserting Op1b and Op2b ... + // when DiscardLeft, make sure we're AT or RIGHT of Pt before adding Op1b, + // otherwise make sure we're AT or LEFT of Pt. (Likewise with Op2b.) + if (Dir1 == dLeftToRight) { + while (op1->Next->Pt.X <= Pt.X && op1->Next->Pt.X >= op1->Pt.X && + op1->Next->Pt.Y == Pt.Y) + op1 = op1->Next; + if (DiscardLeft && (op1->Pt.X != Pt.X)) + op1 = op1->Next; + op1b = DupOutPt(op1, !DiscardLeft); + if (op1b->Pt != Pt) { + op1 = op1b; + op1->Pt = Pt; + op1b = DupOutPt(op1, !DiscardLeft); + } + } else { + while (op1->Next->Pt.X >= Pt.X && op1->Next->Pt.X <= op1->Pt.X && + op1->Next->Pt.Y == Pt.Y) + op1 = op1->Next; + if (!DiscardLeft && (op1->Pt.X != Pt.X)) + op1 = op1->Next; + op1b = DupOutPt(op1, DiscardLeft); + if (op1b->Pt != Pt) { + op1 = op1b; + op1->Pt = Pt; + op1b = DupOutPt(op1, DiscardLeft); + } + } + + if (Dir2 == dLeftToRight) { + while (op2->Next->Pt.X <= Pt.X && op2->Next->Pt.X >= op2->Pt.X && + op2->Next->Pt.Y == Pt.Y) + op2 = op2->Next; + if (DiscardLeft && (op2->Pt.X != Pt.X)) + op2 = op2->Next; + op2b = DupOutPt(op2, !DiscardLeft); + if (op2b->Pt != Pt) { + op2 = op2b; + op2->Pt = Pt; + op2b = DupOutPt(op2, !DiscardLeft); + }; + } else { + while (op2->Next->Pt.X >= Pt.X && op2->Next->Pt.X <= op2->Pt.X && + op2->Next->Pt.Y == Pt.Y) + op2 = op2->Next; + if (!DiscardLeft && (op2->Pt.X != Pt.X)) + op2 = op2->Next; + op2b = DupOutPt(op2, DiscardLeft); + if (op2b->Pt != Pt) { + op2 = op2b; + op2->Pt = Pt; + op2b = DupOutPt(op2, DiscardLeft); + }; + }; + + if ((Dir1 == dLeftToRight) == DiscardLeft) { + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + } else { + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + } + return true; +} +//------------------------------------------------------------------------------ + +bool Clipper::JoinPoints(Join *j, OutRec *outRec1, OutRec *outRec2) { + OutPt *op1 = j->OutPt1, *op1b; + OutPt *op2 = j->OutPt2, *op2b; + + // There are 3 kinds of joins for output polygons ... + // 1. Horizontal joins where Join.OutPt1 & Join.OutPt2 are vertices anywhere + // along (horizontal) collinear edges (& Join.OffPt is on the same + // horizontal). + // 2. Non-horizontal joins where Join.OutPt1 & Join.OutPt2 are at the same + // location at the Bottom of the overlapping segment (& Join.OffPt is above). + // 3. StrictSimple joins where edges touch but are not collinear and where + // Join.OutPt1, Join.OutPt2 & Join.OffPt all share the same point. + bool isHorizontal = (j->OutPt1->Pt.Y == j->OffPt.Y); + + if (isHorizontal && (j->OffPt == j->OutPt1->Pt) && + (j->OffPt == j->OutPt2->Pt)) { + // Strictly Simple join ... + if (outRec1 != outRec2) + return false; + op1b = j->OutPt1->Next; + while (op1b != op1 && (op1b->Pt == j->OffPt)) + op1b = op1b->Next; + bool reverse1 = (op1b->Pt.Y > j->OffPt.Y); + op2b = j->OutPt2->Next; + while (op2b != op2 && (op2b->Pt == j->OffPt)) + op2b = op2b->Next; + bool reverse2 = (op2b->Pt.Y > j->OffPt.Y); + if (reverse1 == reverse2) + return false; + if (reverse1) { + op1b = DupOutPt(op1, false); + op2b = DupOutPt(op2, true); + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } else { + op1b = DupOutPt(op1, true); + op2b = DupOutPt(op2, false); + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } + } else if (isHorizontal) { + // treat horizontal joins differently to non-horizontal joins since with + // them we're not yet sure where the overlapping is. OutPt1.Pt & OutPt2.Pt + // may be anywhere along the horizontal edge. + op1b = op1; + while (op1->Prev->Pt.Y == op1->Pt.Y && op1->Prev != op1b && + op1->Prev != op2) + op1 = op1->Prev; + while (op1b->Next->Pt.Y == op1b->Pt.Y && op1b->Next != op1 && + op1b->Next != op2) + op1b = op1b->Next; + if (op1b->Next == op1 || op1b->Next == op2) + return false; // a flat 'polygon' + + op2b = op2; + while (op2->Prev->Pt.Y == op2->Pt.Y && op2->Prev != op2b && + op2->Prev != op1b) + op2 = op2->Prev; + while (op2b->Next->Pt.Y == op2b->Pt.Y && op2b->Next != op2 && + op2b->Next != op1) + op2b = op2b->Next; + if (op2b->Next == op2 || op2b->Next == op1) + return false; // a flat 'polygon' + + cInt Left, Right; + // Op1 --> Op1b & Op2 --> Op2b are the extremites of the horizontal edges + if (!GetOverlap(op1->Pt.X, op1b->Pt.X, op2->Pt.X, op2b->Pt.X, Left, Right)) + return false; + + // DiscardLeftSide: when overlapping edges are joined, a spike will created + // which needs to be cleaned up. However, we don't want Op1 or Op2 caught up + // on the discard Side as either may still be needed for other joins ... + IntPoint Pt; + bool DiscardLeftSide; + if (op1->Pt.X >= Left && op1->Pt.X <= Right) { + Pt = op1->Pt; + DiscardLeftSide = (op1->Pt.X > op1b->Pt.X); + } else if (op2->Pt.X >= Left && op2->Pt.X <= Right) { + Pt = op2->Pt; + DiscardLeftSide = (op2->Pt.X > op2b->Pt.X); + } else if (op1b->Pt.X >= Left && op1b->Pt.X <= Right) { + Pt = op1b->Pt; + DiscardLeftSide = op1b->Pt.X > op1->Pt.X; + } else { + Pt = op2b->Pt; + DiscardLeftSide = (op2b->Pt.X > op2->Pt.X); + } + j->OutPt1 = op1; + j->OutPt2 = op2; + return JoinHorz(op1, op1b, op2, op2b, Pt, DiscardLeftSide); + } else { + // nb: For non-horizontal joins ... + // 1. Jr.OutPt1.Pt.Y == Jr.OutPt2.Pt.Y + // 2. Jr.OutPt1.Pt > Jr.OffPt.Y + + // make sure the polygons are correctly oriented ... + op1b = op1->Next; + while ((op1b->Pt == op1->Pt) && (op1b != op1)) + op1b = op1b->Next; + bool Reverse1 = ((op1b->Pt.Y > op1->Pt.Y) || + !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange)); + if (Reverse1) { + op1b = op1->Prev; + while ((op1b->Pt == op1->Pt) && (op1b != op1)) + op1b = op1b->Prev; + if ((op1b->Pt.Y > op1->Pt.Y) || + !SlopesEqual(op1->Pt, op1b->Pt, j->OffPt, m_UseFullRange)) + return false; + }; + op2b = op2->Next; + while ((op2b->Pt == op2->Pt) && (op2b != op2)) + op2b = op2b->Next; + bool Reverse2 = ((op2b->Pt.Y > op2->Pt.Y) || + !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange)); + if (Reverse2) { + op2b = op2->Prev; + while ((op2b->Pt == op2->Pt) && (op2b != op2)) + op2b = op2b->Prev; + if ((op2b->Pt.Y > op2->Pt.Y) || + !SlopesEqual(op2->Pt, op2b->Pt, j->OffPt, m_UseFullRange)) + return false; + } + + if ((op1b == op1) || (op2b == op2) || (op1b == op2b) || + ((outRec1 == outRec2) && (Reverse1 == Reverse2))) + return false; + + if (Reverse1) { + op1b = DupOutPt(op1, false); + op2b = DupOutPt(op2, true); + op1->Prev = op2; + op2->Next = op1; + op1b->Next = op2b; + op2b->Prev = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } else { + op1b = DupOutPt(op1, true); + op2b = DupOutPt(op2, false); + op1->Next = op2; + op2->Prev = op1; + op1b->Prev = op2b; + op2b->Next = op1b; + j->OutPt1 = op1; + j->OutPt2 = op1b; + return true; + } + } +} +//---------------------------------------------------------------------- + +static OutRec *ParseFirstLeft(OutRec *FirstLeft) { + while (FirstLeft && !FirstLeft->Pts) + FirstLeft = FirstLeft->FirstLeft; + return FirstLeft; +} +//------------------------------------------------------------------------------ + +void Clipper::FixupFirstLefts1(OutRec *OldOutRec, OutRec *NewOutRec) { + // tests if NewOutRec contains the polygon before reassigning FirstLeft + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + OutRec *outRec = m_PolyOuts[i]; + OutRec *firstLeft = ParseFirstLeft(outRec->FirstLeft); + if (outRec->Pts && firstLeft == OldOutRec) { + if (Poly2ContainsPoly1(outRec->Pts, NewOutRec->Pts)) + outRec->FirstLeft = NewOutRec; + } + } +} +//---------------------------------------------------------------------- + +void Clipper::FixupFirstLefts2(OutRec *InnerOutRec, OutRec *OuterOutRec) { + // A polygon has split into two such that one is now the inner of the other. + // It's possible that these polygons now wrap around other polygons, so check + // every polygon that's also contained by OuterOutRec's FirstLeft container + //(including 0) to see if they've become inner to the new inner polygon ... + OutRec *orfl = OuterOutRec->FirstLeft; + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + OutRec *outRec = m_PolyOuts[i]; + + if (!outRec->Pts || outRec == OuterOutRec || outRec == InnerOutRec) + continue; + OutRec *firstLeft = ParseFirstLeft(outRec->FirstLeft); + if (firstLeft != orfl && firstLeft != InnerOutRec && + firstLeft != OuterOutRec) + continue; + if (Poly2ContainsPoly1(outRec->Pts, InnerOutRec->Pts)) + outRec->FirstLeft = InnerOutRec; + else if (Poly2ContainsPoly1(outRec->Pts, OuterOutRec->Pts)) + outRec->FirstLeft = OuterOutRec; + else if (outRec->FirstLeft == InnerOutRec || + outRec->FirstLeft == OuterOutRec) + outRec->FirstLeft = orfl; + } +} +//---------------------------------------------------------------------- +void Clipper::FixupFirstLefts3(OutRec *OldOutRec, OutRec *NewOutRec) { + // reassigns FirstLeft WITHOUT testing if NewOutRec contains the polygon + for (PolyOutList::size_type i = 0; i < m_PolyOuts.size(); ++i) { + OutRec *outRec = m_PolyOuts[i]; + OutRec *firstLeft = ParseFirstLeft(outRec->FirstLeft); + if (outRec->Pts && firstLeft == OldOutRec) + outRec->FirstLeft = NewOutRec; + } +} +//---------------------------------------------------------------------- + +void Clipper::JoinCommonEdges() { + for (JoinList::size_type i = 0; i < m_Joins.size(); i++) { + Join *join = m_Joins[i]; + + OutRec *outRec1 = GetOutRec(join->OutPt1->Idx); + OutRec *outRec2 = GetOutRec(join->OutPt2->Idx); + + if (!outRec1->Pts || !outRec2->Pts) + continue; + if (outRec1->IsOpen || outRec2->IsOpen) + continue; + + // get the polygon fragment with the correct hole state (FirstLeft) + // before calling JoinPoints() ... + OutRec *holeStateRec; + if (outRec1 == outRec2) + holeStateRec = outRec1; + else if (OutRec1RightOfOutRec2(outRec1, outRec2)) + holeStateRec = outRec2; + else if (OutRec1RightOfOutRec2(outRec2, outRec1)) + holeStateRec = outRec1; + else + holeStateRec = GetLowermostRec(outRec1, outRec2); + + if (!JoinPoints(join, outRec1, outRec2)) + continue; + + if (outRec1 == outRec2) { + // instead of joining two polygons, we've just created a new one by + // splitting one polygon into two. + outRec1->Pts = join->OutPt1; + outRec1->BottomPt = 0; + outRec2 = CreateOutRec(); + outRec2->Pts = join->OutPt2; + + // update all OutRec2.Pts Idx's ... + UpdateOutPtIdxs(*outRec2); + + if (Poly2ContainsPoly1(outRec2->Pts, outRec1->Pts)) { + // outRec1 contains outRec2 ... + outRec2->IsHole = !outRec1->IsHole; + outRec2->FirstLeft = outRec1; + + if (m_UsingPolyTree) + FixupFirstLefts2(outRec2, outRec1); + + if ((outRec2->IsHole ^ m_ReverseOutput) == (Area(*outRec2) > 0)) + ReversePolyPtLinks(outRec2->Pts); + + } else if (Poly2ContainsPoly1(outRec1->Pts, outRec2->Pts)) { + // outRec2 contains outRec1 ... + outRec2->IsHole = outRec1->IsHole; + outRec1->IsHole = !outRec2->IsHole; + outRec2->FirstLeft = outRec1->FirstLeft; + outRec1->FirstLeft = outRec2; + + if (m_UsingPolyTree) + FixupFirstLefts2(outRec1, outRec2); + + if ((outRec1->IsHole ^ m_ReverseOutput) == (Area(*outRec1) > 0)) + ReversePolyPtLinks(outRec1->Pts); + } else { + // the 2 polygons are completely separate ... + outRec2->IsHole = outRec1->IsHole; + outRec2->FirstLeft = outRec1->FirstLeft; + + // fixup FirstLeft pointers that may need reassigning to OutRec2 + if (m_UsingPolyTree) + FixupFirstLefts1(outRec1, outRec2); + } + + } else { + // joined 2 polygons together ... + + outRec2->Pts = 0; + outRec2->BottomPt = 0; + outRec2->Idx = outRec1->Idx; + + outRec1->IsHole = holeStateRec->IsHole; + if (holeStateRec == outRec2) + outRec1->FirstLeft = outRec2->FirstLeft; + outRec2->FirstLeft = outRec1; + + if (m_UsingPolyTree) + FixupFirstLefts3(outRec2, outRec1); + } + } +} + +//------------------------------------------------------------------------------ +// ClipperOffset support functions ... +//------------------------------------------------------------------------------ + +DoublePoint GetUnitNormal(const IntPoint &pt1, const IntPoint &pt2) { + if (pt2.X == pt1.X && pt2.Y == pt1.Y) + return DoublePoint(0, 0); + + double Dx = (double)(pt2.X - pt1.X); + double dy = (double)(pt2.Y - pt1.Y); + double f = 1 * 1.0 / std::sqrt(Dx * Dx + dy * dy); + Dx *= f; + dy *= f; + return DoublePoint(dy, -Dx); +} + +//------------------------------------------------------------------------------ +// ClipperOffset class +//------------------------------------------------------------------------------ + +ClipperOffset::ClipperOffset(double miterLimit, double arcTolerance) { + this->MiterLimit = miterLimit; + this->ArcTolerance = arcTolerance; + m_lowest.X = -1; +} +//------------------------------------------------------------------------------ + +ClipperOffset::~ClipperOffset() { Clear(); } +//------------------------------------------------------------------------------ + +void ClipperOffset::Clear() { + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) + delete m_polyNodes.Childs[i]; + m_polyNodes.Childs.clear(); + m_lowest.X = -1; +} +//------------------------------------------------------------------------------ + +void ClipperOffset::AddPath(const Path &path, JoinType joinType, + EndType endType) { + int highI = (int)path.size() - 1; + if (highI < 0) + return; + PolyNode *newNode = new PolyNode(); + newNode->m_jointype = joinType; + newNode->m_endtype = endType; + + // strip duplicate points from path and also get index to the lowest point ... + if (endType == etClosedLine || endType == etClosedPolygon) + while (highI > 0 && path[0] == path[highI]) + highI--; + newNode->Contour.reserve(highI + 1); + newNode->Contour.push_back(path[0]); + int j = 0, k = 0; + for (int i = 1; i <= highI; i++) + if (newNode->Contour[j] != path[i]) { + j++; + newNode->Contour.push_back(path[i]); + if (path[i].Y > newNode->Contour[k].Y || + (path[i].Y == newNode->Contour[k].Y && + path[i].X < newNode->Contour[k].X)) + k = j; + } + if (endType == etClosedPolygon && j < 2) { + delete newNode; + return; + } + m_polyNodes.AddChild(*newNode); + + // if this path's lowest pt is lower than all the others then update m_lowest + if (endType != etClosedPolygon) + return; + if (m_lowest.X < 0) + m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k); + else { + IntPoint ip = m_polyNodes.Childs[(int)m_lowest.X]->Contour[(int)m_lowest.Y]; + if (newNode->Contour[k].Y > ip.Y || + (newNode->Contour[k].Y == ip.Y && newNode->Contour[k].X < ip.X)) + m_lowest = IntPoint(m_polyNodes.ChildCount() - 1, k); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::AddPaths(const Paths &paths, JoinType joinType, + EndType endType) { + for (Paths::size_type i = 0; i < paths.size(); ++i) + AddPath(paths[i], joinType, endType); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::FixOrientations() { + // fixup orientations of all closed paths if the orientation of the + // closed path with the lowermost vertex is wrong ... + if (m_lowest.X >= 0 && + !Orientation(m_polyNodes.Childs[(int)m_lowest.X]->Contour)) { + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) { + PolyNode &node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedPolygon || + (node.m_endtype == etClosedLine && Orientation(node.Contour))) + ReversePath(node.Contour); + } + } else { + for (int i = 0; i < m_polyNodes.ChildCount(); ++i) { + PolyNode &node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedLine && !Orientation(node.Contour)) + ReversePath(node.Contour); + } + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::Execute(Paths &solution, double delta) { + solution.clear(); + FixOrientations(); + DoOffset(delta); + + // now clean up 'corners' ... + Clipper clpr; + clpr.AddPaths(m_destPolys, ptSubject, true); + if (delta > 0) { + clpr.Execute(ctUnion, solution, pftPositive, pftPositive); + } else { + IntRect r = clpr.GetBounds(); + Path outer(4); + outer[0] = IntPoint(r.left - 10, r.bottom + 10); + outer[1] = IntPoint(r.right + 10, r.bottom + 10); + outer[2] = IntPoint(r.right + 10, r.top - 10); + outer[3] = IntPoint(r.left - 10, r.top - 10); + + clpr.AddPath(outer, ptSubject, true); + clpr.ReverseSolution(true); + clpr.Execute(ctUnion, solution, pftNegative, pftNegative); + if (solution.size() > 0) + solution.erase(solution.begin()); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::Execute(PolyTree &solution, double delta) { + solution.Clear(); + FixOrientations(); + DoOffset(delta); + + // now clean up 'corners' ... + Clipper clpr; + clpr.AddPaths(m_destPolys, ptSubject, true); + if (delta > 0) { + clpr.Execute(ctUnion, solution, pftPositive, pftPositive); + } else { + IntRect r = clpr.GetBounds(); + Path outer(4); + outer[0] = IntPoint(r.left - 10, r.bottom + 10); + outer[1] = IntPoint(r.right + 10, r.bottom + 10); + outer[2] = IntPoint(r.right + 10, r.top - 10); + outer[3] = IntPoint(r.left - 10, r.top - 10); + + clpr.AddPath(outer, ptSubject, true); + clpr.ReverseSolution(true); + clpr.Execute(ctUnion, solution, pftNegative, pftNegative); + // remove the outer PolyNode rectangle ... + if (solution.ChildCount() == 1 && solution.Childs[0]->ChildCount() > 0) { + PolyNode *outerNode = solution.Childs[0]; + solution.Childs.reserve(outerNode->ChildCount()); + solution.Childs[0] = outerNode->Childs[0]; + solution.Childs[0]->Parent = outerNode->Parent; + for (int i = 1; i < outerNode->ChildCount(); ++i) + solution.AddChild(*outerNode->Childs[i]); + } else + solution.Clear(); + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoOffset(double delta) { + m_destPolys.clear(); + m_delta = delta; + + // if Zero offset, just copy any CLOSED polygons to m_p and return ... + if (NEAR_ZERO(delta)) { + m_destPolys.reserve(m_polyNodes.ChildCount()); + for (int i = 0; i < m_polyNodes.ChildCount(); i++) { + PolyNode &node = *m_polyNodes.Childs[i]; + if (node.m_endtype == etClosedPolygon) + m_destPolys.push_back(node.Contour); + } + return; + } + + // see offset_triginometry3.svg in the documentation folder ... + if (MiterLimit > 2) + m_miterLim = 2 / (MiterLimit * MiterLimit); + else + m_miterLim = 0.5; + + double y; + if (ArcTolerance <= 0.0) + y = def_arc_tolerance; + else if (ArcTolerance > std::fabs(delta) * def_arc_tolerance) + y = std::fabs(delta) * def_arc_tolerance; + else + y = ArcTolerance; + // see offset_triginometry2.svg in the documentation folder ... + double steps = pi / std::acos(1 - y / std::fabs(delta)); + if (steps > std::fabs(delta) * pi) + steps = std::fabs(delta) * pi; // ie excessive precision check + m_sin = std::sin(two_pi / steps); + m_cos = std::cos(two_pi / steps); + m_StepsPerRad = steps / two_pi; + if (delta < 0.0) + m_sin = -m_sin; + + m_destPolys.reserve(m_polyNodes.ChildCount() * 2); + for (int i = 0; i < m_polyNodes.ChildCount(); i++) { + PolyNode &node = *m_polyNodes.Childs[i]; + m_srcPoly = node.Contour; + + int len = (int)m_srcPoly.size(); + if (len == 0 || + (delta <= 0 && (len < 3 || node.m_endtype != etClosedPolygon))) + continue; + + m_destPoly.clear(); + if (len == 1) { + if (node.m_jointype == jtRound) { + double X = 1.0, Y = 0.0; + for (cInt j = 1; j <= steps; j++) { + m_destPoly.push_back(IntPoint(Round(m_srcPoly[0].X + X * delta), + Round(m_srcPoly[0].Y + Y * delta))); + double X2 = X; + X = X * m_cos - m_sin * Y; + Y = X2 * m_sin + Y * m_cos; + } + } else { + double X = -1.0, Y = -1.0; + for (int j = 0; j < 4; ++j) { + m_destPoly.push_back(IntPoint(Round(m_srcPoly[0].X + X * delta), + Round(m_srcPoly[0].Y + Y * delta))); + if (X < 0) + X = 1; + else if (Y < 0) + Y = 1; + else + X = -1; + } + } + m_destPolys.push_back(m_destPoly); + continue; + } + // build m_normals ... + m_normals.clear(); + m_normals.reserve(len); + for (int j = 0; j < len - 1; ++j) + m_normals.push_back(GetUnitNormal(m_srcPoly[j], m_srcPoly[j + 1])); + if (node.m_endtype == etClosedLine || node.m_endtype == etClosedPolygon) + m_normals.push_back(GetUnitNormal(m_srcPoly[len - 1], m_srcPoly[0])); + else + m_normals.push_back(DoublePoint(m_normals[len - 2])); + + if (node.m_endtype == etClosedPolygon) { + int k = len - 1; + for (int j = 0; j < len; ++j) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + } else if (node.m_endtype == etClosedLine) { + int k = len - 1; + for (int j = 0; j < len; ++j) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + m_destPoly.clear(); + // re-build m_normals ... + DoublePoint n = m_normals[len - 1]; + for (int j = len - 1; j > 0; j--) + m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y); + m_normals[0] = DoublePoint(-n.X, -n.Y); + k = 0; + for (int j = len - 1; j >= 0; j--) + OffsetPoint(j, k, node.m_jointype); + m_destPolys.push_back(m_destPoly); + } else { + int k = 0; + for (int j = 1; j < len - 1; ++j) + OffsetPoint(j, k, node.m_jointype); + + IntPoint pt1; + if (node.m_endtype == etOpenButt) { + int j = len - 1; + pt1 = IntPoint((cInt)Round(m_srcPoly[j].X + m_normals[j].X * delta), + (cInt)Round(m_srcPoly[j].Y + m_normals[j].Y * delta)); + m_destPoly.push_back(pt1); + pt1 = IntPoint((cInt)Round(m_srcPoly[j].X - m_normals[j].X * delta), + (cInt)Round(m_srcPoly[j].Y - m_normals[j].Y * delta)); + m_destPoly.push_back(pt1); + } else { + int j = len - 1; + k = len - 2; + m_sinA = 0; + m_normals[j] = DoublePoint(-m_normals[j].X, -m_normals[j].Y); + if (node.m_endtype == etOpenSquare) + DoSquare(j, k); + else + DoRound(j, k); + } + + // re-build m_normals ... + for (int j = len - 1; j > 0; j--) + m_normals[j] = DoublePoint(-m_normals[j - 1].X, -m_normals[j - 1].Y); + m_normals[0] = DoublePoint(-m_normals[1].X, -m_normals[1].Y); + + k = len - 1; + for (int j = k - 1; j > 0; --j) + OffsetPoint(j, k, node.m_jointype); + + if (node.m_endtype == etOpenButt) { + pt1 = IntPoint((cInt)Round(m_srcPoly[0].X - m_normals[0].X * delta), + (cInt)Round(m_srcPoly[0].Y - m_normals[0].Y * delta)); + m_destPoly.push_back(pt1); + pt1 = IntPoint((cInt)Round(m_srcPoly[0].X + m_normals[0].X * delta), + (cInt)Round(m_srcPoly[0].Y + m_normals[0].Y * delta)); + m_destPoly.push_back(pt1); + } else { + k = 1; + m_sinA = 0; + if (node.m_endtype == etOpenSquare) + DoSquare(0, 1); + else + DoRound(0, 1); + } + m_destPolys.push_back(m_destPoly); + } + } +} +//------------------------------------------------------------------------------ + +void ClipperOffset::OffsetPoint(int j, int &k, JoinType jointype) { + // cross product ... + m_sinA = (m_normals[k].X * m_normals[j].Y - m_normals[j].X * m_normals[k].Y); + if (std::fabs(m_sinA * m_delta) < 1.0) { + // dot product ... + double cosA = + (m_normals[k].X * m_normals[j].X + m_normals[j].Y * m_normals[k].Y); + if (cosA > 0) // angle => 0 degrees + { + m_destPoly.push_back( + IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta))); + return; + } + // else angle => 180 degrees + } else if (m_sinA > 1.0) + m_sinA = 1.0; + else if (m_sinA < -1.0) + m_sinA = -1.0; + + if (m_sinA * m_delta < 0) { + m_destPoly.push_back( + IntPoint(Round(m_srcPoly[j].X + m_normals[k].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[k].Y * m_delta))); + m_destPoly.push_back(m_srcPoly[j]); + m_destPoly.push_back( + IntPoint(Round(m_srcPoly[j].X + m_normals[j].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta))); + } else + switch (jointype) { + case jtMiter: { + double r = 1 + (m_normals[j].X * m_normals[k].X + + m_normals[j].Y * m_normals[k].Y); + if (r >= m_miterLim) + DoMiter(j, k, r); + else + DoSquare(j, k); + break; + } + case jtSquare: + DoSquare(j, k); + break; + case jtRound: + DoRound(j, k); + break; + } + k = j; +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoSquare(int j, int k) { + double dx = std::tan(std::atan2(m_sinA, m_normals[k].X * m_normals[j].X + + m_normals[k].Y * m_normals[j].Y) / + 4); + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + m_delta * (m_normals[k].X - m_normals[k].Y * dx)), + Round(m_srcPoly[j].Y + + m_delta * (m_normals[k].Y + m_normals[k].X * dx)))); + m_destPoly.push_back(IntPoint( + Round(m_srcPoly[j].X + m_delta * (m_normals[j].X + m_normals[j].Y * dx)), + Round(m_srcPoly[j].Y + + m_delta * (m_normals[j].Y - m_normals[j].X * dx)))); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoMiter(int j, int k, double r) { + double q = m_delta / r; + m_destPoly.push_back( + IntPoint(Round(m_srcPoly[j].X + (m_normals[k].X + m_normals[j].X) * q), + Round(m_srcPoly[j].Y + (m_normals[k].Y + m_normals[j].Y) * q))); +} +//------------------------------------------------------------------------------ + +void ClipperOffset::DoRound(int j, int k) { + double a = std::atan2(m_sinA, m_normals[k].X * m_normals[j].X + + m_normals[k].Y * m_normals[j].Y); + int steps = std::max((int)Round(m_StepsPerRad * std::fabs(a)), 1); + + double X = m_normals[k].X, Y = m_normals[k].Y, X2; + for (int i = 0; i < steps; ++i) { + m_destPoly.push_back(IntPoint(Round(m_srcPoly[j].X + X * m_delta), + Round(m_srcPoly[j].Y + Y * m_delta))); + X2 = X; + X = X * m_cos - m_sin * Y; + Y = X2 * m_sin + Y * m_cos; + } + m_destPoly.push_back( + IntPoint(Round(m_srcPoly[j].X + m_normals[j].X * m_delta), + Round(m_srcPoly[j].Y + m_normals[j].Y * m_delta))); +} + +//------------------------------------------------------------------------------ +// Miscellaneous public functions +//------------------------------------------------------------------------------ + +void Clipper::DoSimplePolygons() { + PolyOutList::size_type i = 0; + while (i < m_PolyOuts.size()) { + OutRec *outrec = m_PolyOuts[i++]; + OutPt *op = outrec->Pts; + if (!op || outrec->IsOpen) + continue; + do // for each Pt in Polygon until duplicate found do ... + { + OutPt *op2 = op->Next; + while (op2 != outrec->Pts) { + if ((op->Pt == op2->Pt) && op2->Next != op && op2->Prev != op) { + // split the polygon into two ... + OutPt *op3 = op->Prev; + OutPt *op4 = op2->Prev; + op->Prev = op4; + op4->Next = op; + op2->Prev = op3; + op3->Next = op2; + + outrec->Pts = op; + OutRec *outrec2 = CreateOutRec(); + outrec2->Pts = op2; + UpdateOutPtIdxs(*outrec2); + if (Poly2ContainsPoly1(outrec2->Pts, outrec->Pts)) { + // OutRec2 is contained by OutRec1 ... + outrec2->IsHole = !outrec->IsHole; + outrec2->FirstLeft = outrec; + if (m_UsingPolyTree) + FixupFirstLefts2(outrec2, outrec); + } else if (Poly2ContainsPoly1(outrec->Pts, outrec2->Pts)) { + // OutRec1 is contained by OutRec2 ... + outrec2->IsHole = outrec->IsHole; + outrec->IsHole = !outrec2->IsHole; + outrec2->FirstLeft = outrec->FirstLeft; + outrec->FirstLeft = outrec2; + if (m_UsingPolyTree) + FixupFirstLefts2(outrec, outrec2); + } else { + // the 2 polygons are separate ... + outrec2->IsHole = outrec->IsHole; + outrec2->FirstLeft = outrec->FirstLeft; + if (m_UsingPolyTree) + FixupFirstLefts1(outrec, outrec2); + } + op2 = op; // ie get ready for the Next iteration + } + op2 = op2->Next; + } + op = op->Next; + } while (op != outrec->Pts); + } +} +//------------------------------------------------------------------------------ + +void ReversePath(Path &p) { std::reverse(p.begin(), p.end()); } +//------------------------------------------------------------------------------ + +void ReversePaths(Paths &p) { + for (Paths::size_type i = 0; i < p.size(); ++i) + ReversePath(p[i]); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygon(const Path &in_poly, Paths &out_polys, + PolyFillType fillType) { + Clipper c; + c.StrictlySimple(true); + c.AddPath(in_poly, ptSubject, true); + c.Execute(ctUnion, out_polys, fillType, fillType); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, + PolyFillType fillType) { + Clipper c; + c.StrictlySimple(true); + c.AddPaths(in_polys, ptSubject, true); + c.Execute(ctUnion, out_polys, fillType, fillType); +} +//------------------------------------------------------------------------------ + +void SimplifyPolygons(Paths &polys, PolyFillType fillType) { + SimplifyPolygons(polys, polys, fillType); +} +//------------------------------------------------------------------------------ + +inline double DistanceSqrd(const IntPoint &pt1, const IntPoint &pt2) { + double Dx = ((double)pt1.X - pt2.X); + double dy = ((double)pt1.Y - pt2.Y); + return (Dx * Dx + dy * dy); +} +//------------------------------------------------------------------------------ + +double DistanceFromLineSqrd(const IntPoint &pt, const IntPoint &ln1, + const IntPoint &ln2) { + // The equation of a line in general form (Ax + By + C = 0) + // given 2 points (x�,y�) & (x�,y�) is ... + //(y� - y�)x + (x� - x�)y + (y� - y�)x� - (x� - x�)y� = 0 + // A = (y� - y�); B = (x� - x�); C = (y� - y�)x� - (x� - x�)y� + // perpendicular distance of point (x�,y�) = (Ax� + By� + C)/Sqrt(A� + B�) + // see http://en.wikipedia.org/wiki/Perpendicular_distance + double A = double(ln1.Y - ln2.Y); + double B = double(ln2.X - ln1.X); + double C = A * ln1.X + B * ln1.Y; + C = A * pt.X + B * pt.Y - C; + return (C * C) / (A * A + B * B); +} +//--------------------------------------------------------------------------- + +bool SlopesNearCollinear(const IntPoint &pt1, const IntPoint &pt2, + const IntPoint &pt3, double distSqrd) { + // this function is more accurate when the point that's geometrically + // between the other 2 points is the one that's tested for distance. + // ie makes it more likely to pick up 'spikes' ... + if (Abs(pt1.X - pt2.X) > Abs(pt1.Y - pt2.Y)) { + if ((pt1.X > pt2.X) == (pt1.X < pt3.X)) + return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd; + else if ((pt2.X > pt1.X) == (pt2.X < pt3.X)) + return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd; + else + return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd; + } else { + if ((pt1.Y > pt2.Y) == (pt1.Y < pt3.Y)) + return DistanceFromLineSqrd(pt1, pt2, pt3) < distSqrd; + else if ((pt2.Y > pt1.Y) == (pt2.Y < pt3.Y)) + return DistanceFromLineSqrd(pt2, pt1, pt3) < distSqrd; + else + return DistanceFromLineSqrd(pt3, pt1, pt2) < distSqrd; + } +} +//------------------------------------------------------------------------------ + +bool PointsAreClose(IntPoint pt1, IntPoint pt2, double distSqrd) { + double Dx = (double)pt1.X - pt2.X; + double dy = (double)pt1.Y - pt2.Y; + return ((Dx * Dx) + (dy * dy) <= distSqrd); +} +//------------------------------------------------------------------------------ + +OutPt *ExcludeOp(OutPt *op) { + OutPt *result = op->Prev; + result->Next = op->Next; + op->Next->Prev = result; + result->Idx = 0; + return result; +} +//------------------------------------------------------------------------------ + +void CleanPolygon(const Path &in_poly, Path &out_poly, double distance) { + // distance = proximity in units/pixels below which vertices + // will be stripped. Default ~= sqrt(2). + + size_t size = in_poly.size(); + + if (size == 0) { + out_poly.clear(); + return; + } + + OutPt *outPts = new OutPt[size]; + for (size_t i = 0; i < size; ++i) { + outPts[i].Pt = in_poly[i]; + outPts[i].Next = &outPts[(i + 1) % size]; + outPts[i].Next->Prev = &outPts[i]; + outPts[i].Idx = 0; + } + + double distSqrd = distance * distance; + OutPt *op = &outPts[0]; + while (op->Idx == 0 && op->Next != op->Prev) { + if (PointsAreClose(op->Pt, op->Prev->Pt, distSqrd)) { + op = ExcludeOp(op); + size--; + } else if (PointsAreClose(op->Prev->Pt, op->Next->Pt, distSqrd)) { + ExcludeOp(op->Next); + op = ExcludeOp(op); + size -= 2; + } else if (SlopesNearCollinear(op->Prev->Pt, op->Pt, op->Next->Pt, + distSqrd)) { + op = ExcludeOp(op); + size--; + } else { + op->Idx = 1; + op = op->Next; + } + } + + if (size < 3) + size = 0; + out_poly.resize(size); + for (size_t i = 0; i < size; ++i) { + out_poly[i] = op->Pt; + op = op->Next; + } + delete[] outPts; +} +//------------------------------------------------------------------------------ + +void CleanPolygon(Path &poly, double distance) { + CleanPolygon(poly, poly, distance); +} +//------------------------------------------------------------------------------ + +void CleanPolygons(const Paths &in_polys, Paths &out_polys, double distance) { + out_polys.resize(in_polys.size()); + for (Paths::size_type i = 0; i < in_polys.size(); ++i) + CleanPolygon(in_polys[i], out_polys[i], distance); +} +//------------------------------------------------------------------------------ + +void CleanPolygons(Paths &polys, double distance) { + CleanPolygons(polys, polys, distance); +} +//------------------------------------------------------------------------------ + +void Minkowski(const Path &poly, const Path &path, Paths &solution, bool isSum, + bool isClosed) { + int delta = (isClosed ? 1 : 0); + size_t polyCnt = poly.size(); + size_t pathCnt = path.size(); + Paths pp; + pp.reserve(pathCnt); + if (isSum) + for (size_t i = 0; i < pathCnt; ++i) { + Path p; + p.reserve(polyCnt); + for (size_t j = 0; j < poly.size(); ++j) + p.push_back(IntPoint(path[i].X + poly[j].X, path[i].Y + poly[j].Y)); + pp.push_back(p); + } + else + for (size_t i = 0; i < pathCnt; ++i) { + Path p; + p.reserve(polyCnt); + for (size_t j = 0; j < poly.size(); ++j) + p.push_back(IntPoint(path[i].X - poly[j].X, path[i].Y - poly[j].Y)); + pp.push_back(p); + } + + solution.clear(); + solution.reserve((pathCnt + delta) * (polyCnt + 1)); + for (size_t i = 0; i < pathCnt - 1 + delta; ++i) + for (size_t j = 0; j < polyCnt; ++j) { + Path quad; + quad.reserve(4); + quad.push_back(pp[i % pathCnt][j % polyCnt]); + quad.push_back(pp[(i + 1) % pathCnt][j % polyCnt]); + quad.push_back(pp[(i + 1) % pathCnt][(j + 1) % polyCnt]); + quad.push_back(pp[i % pathCnt][(j + 1) % polyCnt]); + if (!Orientation(quad)) + ReversePath(quad); + solution.push_back(quad); + } +} +//------------------------------------------------------------------------------ + +void MinkowskiSum(const Path &pattern, const Path &path, Paths &solution, + bool pathIsClosed) { + Minkowski(pattern, path, solution, true, pathIsClosed); + Clipper c; + c.AddPaths(solution, ptSubject, true); + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +void TranslatePath(const Path &input, Path &output, const IntPoint delta) { + // precondition: input != output + output.resize(input.size()); + for (size_t i = 0; i < input.size(); ++i) + output[i] = IntPoint(input[i].X + delta.X, input[i].Y + delta.Y); +} +//------------------------------------------------------------------------------ + +void MinkowskiSum(const Path &pattern, const Paths &paths, Paths &solution, + bool pathIsClosed) { + Clipper c; + for (size_t i = 0; i < paths.size(); ++i) { + Paths tmp; + Minkowski(pattern, paths[i], tmp, true, pathIsClosed); + c.AddPaths(tmp, ptSubject, true); + if (pathIsClosed) { + Path tmp2; + TranslatePath(paths[i], tmp2, pattern[0]); + c.AddPath(tmp2, ptClip, true); + } + } + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +void MinkowskiDiff(const Path &poly1, const Path &poly2, Paths &solution) { + Minkowski(poly1, poly2, solution, false, true); + Clipper c; + c.AddPaths(solution, ptSubject, true); + c.Execute(ctUnion, solution, pftNonZero, pftNonZero); +} +//------------------------------------------------------------------------------ + +enum NodeType { ntAny, ntOpen, ntClosed }; + +void AddPolyNodeToPaths(const PolyNode &polynode, NodeType nodetype, + Paths &paths) { + bool match = true; + if (nodetype == ntClosed) + match = !polynode.IsOpen(); + else if (nodetype == ntOpen) + return; + + if (!polynode.Contour.empty() && match) + paths.push_back(polynode.Contour); + for (int i = 0; i < polynode.ChildCount(); ++i) + AddPolyNodeToPaths(*polynode.Childs[i], nodetype, paths); +} +//------------------------------------------------------------------------------ + +void PolyTreeToPaths(const PolyTree &polytree, Paths &paths) { + paths.resize(0); + paths.reserve(polytree.Total()); + AddPolyNodeToPaths(polytree, ntAny, paths); +} +//------------------------------------------------------------------------------ + +void ClosedPathsFromPolyTree(const PolyTree &polytree, Paths &paths) { + paths.resize(0); + paths.reserve(polytree.Total()); + AddPolyNodeToPaths(polytree, ntClosed, paths); +} +//------------------------------------------------------------------------------ + +void OpenPathsFromPolyTree(PolyTree &polytree, Paths &paths) { + paths.resize(0); + paths.reserve(polytree.Total()); + // Open paths are top level only, so ... + for (int i = 0; i < polytree.ChildCount(); ++i) + if (polytree.Childs[i]->IsOpen()) + paths.push_back(polytree.Childs[i]->Contour); +} +//------------------------------------------------------------------------------ + +std::ostream &operator<<(std::ostream &s, const IntPoint &p) { + s << "(" << p.X << "," << p.Y << ")"; + return s; +} +//------------------------------------------------------------------------------ + +std::ostream &operator<<(std::ostream &s, const Path &p) { + if (p.empty()) + return s; + Path::size_type last = p.size() - 1; + for (Path::size_type i = 0; i < last; i++) + s << "(" << p[i].X << "," << p[i].Y << "), "; + s << "(" << p[last].X << "," << p[last].Y << ")\n"; + return s; +} +//------------------------------------------------------------------------------ + +std::ostream &operator<<(std::ostream &s, const Paths &p) { + for (Paths::size_type i = 0; i < p.size(); i++) + s << p[i]; + s << "\n"; + return s; +} +//------------------------------------------------------------------------------ + +} // ClipperLib namespace diff --git a/deploy/android_demo/app/src/main/cpp/ocr_clipper.hpp b/deploy/android_demo/app/src/main/cpp/ocr_clipper.hpp new file mode 100644 index 0000000000..60af2bb733 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_clipper.hpp @@ -0,0 +1,544 @@ +/******************************************************************************* +* * +* Author : Angus Johnson * +* Version : 6.4.2 * +* Date : 27 February 2017 * +* Website : http://www.angusj.com * +* Copyright : Angus Johnson 2010-2017 * +* * +* License: * +* Use, modification & distribution is subject to Boost Software License Ver 1. * +* http://www.boost.org/LICENSE_1_0.txt * +* * +* Attributions: * +* The code in this library is an extension of Bala Vatti's clipping algorithm: * +* "A generic solution to polygon clipping" * +* Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63. * +* http://portal.acm.org/citation.cfm?id=129906 * +* * +* Computer graphics and geometric modeling: implementation and algorithms * +* By Max K. Agoston * +* Springer; 1 edition (January 4, 2005) * +* http://books.google.com/books?q=vatti+clipping+agoston * +* * +* See also: * +* "Polygon Offsetting by Computing Winding Numbers" * +* Paper no. DETC2005-85513 pp. 565-575 * +* ASME 2005 International Design Engineering Technical Conferences * +* and Computers and Information in Engineering Conference (IDETC/CIE2005) * +* September 24-28, 2005 , Long Beach, California, USA * +* http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf * +* * +*******************************************************************************/ + +#ifndef clipper_hpp +#define clipper_hpp + +#define CLIPPER_VERSION "6.4.2" + +// use_int32: When enabled 32bit ints are used instead of 64bit ints. This +// improve performance but coordinate values are limited to the range +/- 46340 +//#define use_int32 + +// use_xyz: adds a Z member to IntPoint. Adds a minor cost to perfomance. +//#define use_xyz + +// use_lines: Enables line clipping. Adds a very minor cost to performance. +#define use_lines + +// use_deprecated: Enables temporary support for the obsolete functions +//#define use_deprecated + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ClipperLib { + +enum ClipType { ctIntersection, ctUnion, ctDifference, ctXor }; +enum PolyType { ptSubject, ptClip }; +// By far the most widely used winding rules for polygon filling are +// EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Quartz, SVG, Gr32) +// Others rules include Positive, Negative and ABS_GTR_EQ_TWO (only in OpenGL) +// see http://glprogramming.com/red/chapter11.html +enum PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative }; + +#ifdef use_int32 +typedef int cInt; +static cInt const loRange = 0x7FFF; +static cInt const hiRange = 0x7FFF; +#else +typedef signed long long cInt; +static cInt const loRange = 0x3FFFFFFF; +static cInt const hiRange = 0x3FFFFFFFFFFFFFFFLL; +typedef signed long long long64; // used by Int128 class +typedef unsigned long long ulong64; + +#endif + +struct IntPoint { + cInt X; + cInt Y; +#ifdef use_xyz + cInt Z; + IntPoint(cInt x = 0, cInt y = 0, cInt z = 0) : X(x), Y(y), Z(z){}; +#else + + IntPoint(cInt x = 0, cInt y = 0) : X(x), Y(y){}; +#endif + + friend inline bool operator==(const IntPoint &a, const IntPoint &b) { + return a.X == b.X && a.Y == b.Y; + } + + friend inline bool operator!=(const IntPoint &a, const IntPoint &b) { + return a.X != b.X || a.Y != b.Y; + } +}; +//------------------------------------------------------------------------------ + +typedef std::vector Path; +typedef std::vector Paths; + +inline Path &operator<<(Path &poly, const IntPoint &p) { + poly.push_back(p); + return poly; +} + +inline Paths &operator<<(Paths &polys, const Path &p) { + polys.push_back(p); + return polys; +} + +std::ostream &operator<<(std::ostream &s, const IntPoint &p); + +std::ostream &operator<<(std::ostream &s, const Path &p); + +std::ostream &operator<<(std::ostream &s, const Paths &p); + +struct DoublePoint { + double X; + double Y; + + DoublePoint(double x = 0, double y = 0) : X(x), Y(y) {} + + DoublePoint(IntPoint ip) : X((double)ip.X), Y((double)ip.Y) {} +}; +//------------------------------------------------------------------------------ + +#ifdef use_xyz +typedef void (*ZFillCallback)(IntPoint &e1bot, IntPoint &e1top, IntPoint &e2bot, + IntPoint &e2top, IntPoint &pt); +#endif + +enum InitOptions { + ioReverseSolution = 1, + ioStrictlySimple = 2, + ioPreserveCollinear = 4 +}; +enum JoinType { jtSquare, jtRound, jtMiter }; +enum EndType { + etClosedPolygon, + etClosedLine, + etOpenButt, + etOpenSquare, + etOpenRound +}; + +class PolyNode; + +typedef std::vector PolyNodes; + +class PolyNode { +public: + PolyNode(); + + virtual ~PolyNode(){}; + Path Contour; + PolyNodes Childs; + PolyNode *Parent; + + PolyNode *GetNext() const; + + bool IsHole() const; + + bool IsOpen() const; + + int ChildCount() const; + +private: + // PolyNode& operator =(PolyNode& other); + unsigned Index; // node index in Parent.Childs + bool m_IsOpen; + JoinType m_jointype; + EndType m_endtype; + + PolyNode *GetNextSiblingUp() const; + + void AddChild(PolyNode &child); + + friend class Clipper; // to access Index + friend class ClipperOffset; +}; + +class PolyTree : public PolyNode { +public: + ~PolyTree() { Clear(); }; + + PolyNode *GetFirst() const; + + void Clear(); + + int Total() const; + +private: + // PolyTree& operator =(PolyTree& other); + PolyNodes AllNodes; + + friend class Clipper; // to access AllNodes +}; + +bool Orientation(const Path &poly); + +double Area(const Path &poly); + +int PointInPolygon(const IntPoint &pt, const Path &path); + +void SimplifyPolygon(const Path &in_poly, Paths &out_polys, + PolyFillType fillType = pftEvenOdd); + +void SimplifyPolygons(const Paths &in_polys, Paths &out_polys, + PolyFillType fillType = pftEvenOdd); + +void SimplifyPolygons(Paths &polys, PolyFillType fillType = pftEvenOdd); + +void CleanPolygon(const Path &in_poly, Path &out_poly, double distance = 1.415); + +void CleanPolygon(Path &poly, double distance = 1.415); + +void CleanPolygons(const Paths &in_polys, Paths &out_polys, + double distance = 1.415); + +void CleanPolygons(Paths &polys, double distance = 1.415); + +void MinkowskiSum(const Path &pattern, const Path &path, Paths &solution, + bool pathIsClosed); + +void MinkowskiSum(const Path &pattern, const Paths &paths, Paths &solution, + bool pathIsClosed); + +void MinkowskiDiff(const Path &poly1, const Path &poly2, Paths &solution); + +void PolyTreeToPaths(const PolyTree &polytree, Paths &paths); + +void ClosedPathsFromPolyTree(const PolyTree &polytree, Paths &paths); + +void OpenPathsFromPolyTree(PolyTree &polytree, Paths &paths); + +void ReversePath(Path &p); + +void ReversePaths(Paths &p); + +struct IntRect { + cInt left; + cInt top; + cInt right; + cInt bottom; +}; + +// enums that are used internally ... +enum EdgeSide { esLeft = 1, esRight = 2 }; + +// forward declarations (for stuff used internally) ... +struct TEdge; +struct IntersectNode; +struct LocalMinimum; +struct OutPt; +struct OutRec; +struct Join; + +typedef std::vector PolyOutList; +typedef std::vector EdgeList; +typedef std::vector JoinList; +typedef std::vector IntersectList; + +//------------------------------------------------------------------------------ + +// ClipperBase is the ancestor to the Clipper class. It should not be +// instantiated directly. This class simply abstracts the conversion of sets of +// polygon coordinates into edge objects that are stored in a LocalMinima list. +class ClipperBase { +public: + ClipperBase(); + + virtual ~ClipperBase(); + + virtual bool AddPath(const Path &pg, PolyType PolyTyp, bool Closed); + + bool AddPaths(const Paths &ppg, PolyType PolyTyp, bool Closed); + + virtual void Clear(); + + IntRect GetBounds(); + + bool PreserveCollinear() { return m_PreserveCollinear; }; + + void PreserveCollinear(bool value) { m_PreserveCollinear = value; }; + +protected: + void DisposeLocalMinimaList(); + + TEdge *AddBoundsToLML(TEdge *e, bool IsClosed); + + virtual void Reset(); + + TEdge *ProcessBound(TEdge *E, bool IsClockwise); + + void InsertScanbeam(const cInt Y); + + bool PopScanbeam(cInt &Y); + + bool LocalMinimaPending(); + + bool PopLocalMinima(cInt Y, const LocalMinimum *&locMin); + + OutRec *CreateOutRec(); + + void DisposeAllOutRecs(); + + void DisposeOutRec(PolyOutList::size_type index); + + void SwapPositionsInAEL(TEdge *edge1, TEdge *edge2); + + void DeleteFromAEL(TEdge *e); + + void UpdateEdgeIntoAEL(TEdge *&e); + + typedef std::vector MinimaList; + MinimaList::iterator m_CurrentLM; + MinimaList m_MinimaList; + + bool m_UseFullRange; + EdgeList m_edges; + bool m_PreserveCollinear; + bool m_HasOpenPaths; + PolyOutList m_PolyOuts; + TEdge *m_ActiveEdges; + + typedef std::priority_queue ScanbeamList; + ScanbeamList m_Scanbeam; +}; +//------------------------------------------------------------------------------ + +class Clipper : public virtual ClipperBase { +public: + Clipper(int initOptions = 0); + + bool Execute(ClipType clipType, Paths &solution, + PolyFillType fillType = pftEvenOdd); + + bool Execute(ClipType clipType, Paths &solution, PolyFillType subjFillType, + PolyFillType clipFillType); + + bool Execute(ClipType clipType, PolyTree &polytree, + PolyFillType fillType = pftEvenOdd); + + bool Execute(ClipType clipType, PolyTree &polytree, PolyFillType subjFillType, + PolyFillType clipFillType); + + bool ReverseSolution() { return m_ReverseOutput; }; + + void ReverseSolution(bool value) { m_ReverseOutput = value; }; + + bool StrictlySimple() { return m_StrictSimple; }; + + void StrictlySimple(bool value) { m_StrictSimple = value; }; +// set the callback function for z value filling on intersections (otherwise Z +// is 0) +#ifdef use_xyz + void ZFillFunction(ZFillCallback zFillFunc); +#endif +protected: + virtual bool ExecuteInternal(); + +private: + JoinList m_Joins; + JoinList m_GhostJoins; + IntersectList m_IntersectList; + ClipType m_ClipType; + typedef std::list MaximaList; + MaximaList m_Maxima; + TEdge *m_SortedEdges; + bool m_ExecuteLocked; + PolyFillType m_ClipFillType; + PolyFillType m_SubjFillType; + bool m_ReverseOutput; + bool m_UsingPolyTree; + bool m_StrictSimple; +#ifdef use_xyz + ZFillCallback m_ZFill; // custom callback +#endif + + void SetWindingCount(TEdge &edge); + + bool IsEvenOddFillType(const TEdge &edge) const; + + bool IsEvenOddAltFillType(const TEdge &edge) const; + + void InsertLocalMinimaIntoAEL(const cInt botY); + + void InsertEdgeIntoAEL(TEdge *edge, TEdge *startEdge); + + void AddEdgeToSEL(TEdge *edge); + + bool PopEdgeFromSEL(TEdge *&edge); + + void CopyAELToSEL(); + + void DeleteFromSEL(TEdge *e); + + void SwapPositionsInSEL(TEdge *edge1, TEdge *edge2); + + bool IsContributing(const TEdge &edge) const; + + bool IsTopHorz(const cInt XPos); + + void DoMaxima(TEdge *e); + + void ProcessHorizontals(); + + void ProcessHorizontal(TEdge *horzEdge); + + void AddLocalMaxPoly(TEdge *e1, TEdge *e2, const IntPoint &pt); + + OutPt *AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &pt); + + OutRec *GetOutRec(int idx); + + void AppendPolygon(TEdge *e1, TEdge *e2); + + void IntersectEdges(TEdge *e1, TEdge *e2, IntPoint &pt); + + OutPt *AddOutPt(TEdge *e, const IntPoint &pt); + + OutPt *GetLastOutPt(TEdge *e); + + bool ProcessIntersections(const cInt topY); + + void BuildIntersectList(const cInt topY); + + void ProcessIntersectList(); + + void ProcessEdgesAtTopOfScanbeam(const cInt topY); + + void BuildResult(Paths &polys); + + void BuildResult2(PolyTree &polytree); + + void SetHoleState(TEdge *e, OutRec *outrec); + + void DisposeIntersectNodes(); + + bool FixupIntersectionOrder(); + + void FixupOutPolygon(OutRec &outrec); + + void FixupOutPolyline(OutRec &outrec); + + bool IsHole(TEdge *e); + + bool FindOwnerFromSplitRecs(OutRec &outRec, OutRec *&currOrfl); + + void FixHoleLinkage(OutRec &outrec); + + void AddJoin(OutPt *op1, OutPt *op2, const IntPoint offPt); + + void ClearJoins(); + + void ClearGhostJoins(); + + void AddGhostJoin(OutPt *op, const IntPoint offPt); + + bool JoinPoints(Join *j, OutRec *outRec1, OutRec *outRec2); + + void JoinCommonEdges(); + + void DoSimplePolygons(); + + void FixupFirstLefts1(OutRec *OldOutRec, OutRec *NewOutRec); + + void FixupFirstLefts2(OutRec *InnerOutRec, OutRec *OuterOutRec); + + void FixupFirstLefts3(OutRec *OldOutRec, OutRec *NewOutRec); + +#ifdef use_xyz + void SetZ(IntPoint &pt, TEdge &e1, TEdge &e2); +#endif +}; +//------------------------------------------------------------------------------ + +class ClipperOffset { +public: + ClipperOffset(double miterLimit = 2.0, double roundPrecision = 0.25); + + ~ClipperOffset(); + + void AddPath(const Path &path, JoinType joinType, EndType endType); + + void AddPaths(const Paths &paths, JoinType joinType, EndType endType); + + void Execute(Paths &solution, double delta); + + void Execute(PolyTree &solution, double delta); + + void Clear(); + + double MiterLimit; + double ArcTolerance; + +private: + Paths m_destPolys; + Path m_srcPoly; + Path m_destPoly; + std::vector m_normals; + double m_delta, m_sinA, m_sin, m_cos; + double m_miterLim, m_StepsPerRad; + IntPoint m_lowest; + PolyNode m_polyNodes; + + void FixOrientations(); + + void DoOffset(double delta); + + void OffsetPoint(int j, int &k, JoinType jointype); + + void DoSquare(int j, int k); + + void DoMiter(int j, int k, double r); + + void DoRound(int j, int k); +}; +//------------------------------------------------------------------------------ + +class clipperException : public std::exception { +public: + clipperException(const char *description) : m_descr(description) {} + + virtual ~clipperException() throw() {} + + virtual const char *what() const throw() { return m_descr.c_str(); } + +private: + std::string m_descr; +}; +//------------------------------------------------------------------------------ + +} // ClipperLib namespace + +#endif // clipper_hpp diff --git a/deploy/android_demo/app/src/main/cpp/ocr_cls_process.cpp b/deploy/android_demo/app/src/main/cpp/ocr_cls_process.cpp new file mode 100644 index 0000000000..e7de9b0b1c --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_cls_process.cpp @@ -0,0 +1,46 @@ +// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "ocr_cls_process.h" +#include +#include +#include +#include +#include +#include + +const std::vector CLS_IMAGE_SHAPE = {3, 48, 192}; + +cv::Mat cls_resize_img(const cv::Mat &img) { + int imgC = CLS_IMAGE_SHAPE[0]; + int imgW = CLS_IMAGE_SHAPE[2]; + int imgH = CLS_IMAGE_SHAPE[1]; + + float ratio = float(img.cols) / float(img.rows); + int resize_w = 0; + if (ceilf(imgH * ratio) > imgW) + resize_w = imgW; + else + resize_w = int(ceilf(imgH * ratio)); + + cv::Mat resize_img; + cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, + cv::INTER_CUBIC); + + if (resize_w < imgW) { + cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, int(imgW - resize_w), + cv::BORDER_CONSTANT, {0, 0, 0}); + } + return resize_img; +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_cls_process.h b/deploy/android_demo/app/src/main/cpp/ocr_cls_process.h new file mode 100644 index 0000000000..1c30ee1071 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_cls_process.h @@ -0,0 +1,23 @@ +// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include "common.h" +#include +#include + +extern const std::vector CLS_IMAGE_SHAPE; + +cv::Mat cls_resize_img(const cv::Mat &img); \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.cpp b/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.cpp new file mode 100644 index 0000000000..44c34a2800 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.cpp @@ -0,0 +1,142 @@ +// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "ocr_crnn_process.h" +#include +#include +#include +#include +#include +#include + +const std::string CHARACTER_TYPE = "ch"; +const int MAX_DICT_LENGTH = 6624; +const std::vector REC_IMAGE_SHAPE = {3, 32, 320}; + +static cv::Mat crnn_resize_norm_img(cv::Mat img, float wh_ratio) { + int imgC = REC_IMAGE_SHAPE[0]; + int imgW = REC_IMAGE_SHAPE[2]; + int imgH = REC_IMAGE_SHAPE[1]; + + if (CHARACTER_TYPE == "ch") + imgW = int(32 * wh_ratio); + + float ratio = float(img.cols) / float(img.rows); + int resize_w = 0; + if (ceilf(imgH * ratio) > imgW) + resize_w = imgW; + else + resize_w = int(ceilf(imgH * ratio)); + cv::Mat resize_img; + cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, + cv::INTER_CUBIC); + + resize_img.convertTo(resize_img, CV_32FC3, 1 / 255.f); + + for (int h = 0; h < resize_img.rows; h++) { + for (int w = 0; w < resize_img.cols; w++) { + resize_img.at(h, w)[0] = + (resize_img.at(h, w)[0] - 0.5) * 2; + resize_img.at(h, w)[1] = + (resize_img.at(h, w)[1] - 0.5) * 2; + resize_img.at(h, w)[2] = + (resize_img.at(h, w)[2] - 0.5) * 2; + } + } + + cv::Mat dist; + cv::copyMakeBorder(resize_img, dist, 0, 0, 0, int(imgW - resize_w), + cv::BORDER_CONSTANT, {0, 0, 0}); + + return dist; +} + +cv::Mat crnn_resize_img(const cv::Mat &img, float wh_ratio) { + int imgC = REC_IMAGE_SHAPE[0]; + int imgW = REC_IMAGE_SHAPE[2]; + int imgH = REC_IMAGE_SHAPE[1]; + + if (CHARACTER_TYPE == "ch") { + imgW = int(32 * wh_ratio); + } + + float ratio = float(img.cols) / float(img.rows); + int resize_w = 0; + if (ceilf(imgH * ratio) > imgW) + resize_w = imgW; + else + resize_w = int(ceilf(imgH * ratio)); + cv::Mat resize_img; + cv::resize(img, resize_img, cv::Size(resize_w, imgH)); + return resize_img; +} + +cv::Mat get_rotate_crop_image(const cv::Mat &srcimage, + const std::vector> &box) { + + std::vector> points = box; + + int x_collect[4] = {box[0][0], box[1][0], box[2][0], box[3][0]}; + int y_collect[4] = {box[0][1], box[1][1], box[2][1], box[3][1]}; + int left = int(*std::min_element(x_collect, x_collect + 4)); + int right = int(*std::max_element(x_collect, x_collect + 4)); + int top = int(*std::min_element(y_collect, y_collect + 4)); + int bottom = int(*std::max_element(y_collect, y_collect + 4)); + + cv::Mat img_crop; + srcimage(cv::Rect(left, top, right - left, bottom - top)).copyTo(img_crop); + + for (int i = 0; i < points.size(); i++) { + points[i][0] -= left; + points[i][1] -= top; + } + + int img_crop_width = int(sqrt(pow(points[0][0] - points[1][0], 2) + + pow(points[0][1] - points[1][1], 2))); + int img_crop_height = int(sqrt(pow(points[0][0] - points[3][0], 2) + + pow(points[0][1] - points[3][1], 2))); + + cv::Point2f pts_std[4]; + pts_std[0] = cv::Point2f(0., 0.); + pts_std[1] = cv::Point2f(img_crop_width, 0.); + pts_std[2] = cv::Point2f(img_crop_width, img_crop_height); + pts_std[3] = cv::Point2f(0.f, img_crop_height); + + cv::Point2f pointsf[4]; + pointsf[0] = cv::Point2f(points[0][0], points[0][1]); + pointsf[1] = cv::Point2f(points[1][0], points[1][1]); + pointsf[2] = cv::Point2f(points[2][0], points[2][1]); + pointsf[3] = cv::Point2f(points[3][0], points[3][1]); + + cv::Mat M = cv::getPerspectiveTransform(pointsf, pts_std); + + cv::Mat dst_img; + cv::warpPerspective(img_crop, dst_img, M, + cv::Size(img_crop_width, img_crop_height), + cv::BORDER_REPLICATE); + + if (float(dst_img.rows) >= float(dst_img.cols) * 1.5) { + /* + cv::Mat srcCopy = cv::Mat(dst_img.rows, dst_img.cols, dst_img.depth()); + cv::transpose(dst_img, srcCopy); + cv::flip(srcCopy, srcCopy, 0); + return srcCopy; + */ + cv::transpose(dst_img, dst_img); + cv::flip(dst_img, dst_img, 0); + return dst_img; + } else { + return dst_img; + } +} diff --git a/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.h b/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.h new file mode 100644 index 0000000000..0346afe457 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_crnn_process.h @@ -0,0 +1,20 @@ +// +// Created by fujiayi on 2020/7/3. +// +#pragma once + +#include "common.h" +#include +#include + +extern const std::vector REC_IMAGE_SHAPE; + +cv::Mat get_rotate_crop_image(const cv::Mat &srcimage, + const std::vector> &box); + +cv::Mat crnn_resize_img(const cv::Mat &img, float wh_ratio); + +template +inline size_t argmax(ForwardIterator first, ForwardIterator last) { + return std::distance(first, std::max_element(first, last)); +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.cpp b/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.cpp new file mode 100644 index 0000000000..9816ea4ac3 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.cpp @@ -0,0 +1,342 @@ +// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "ocr_clipper.hpp" +#include "opencv2/core.hpp" +#include "opencv2/imgcodecs.hpp" +#include "opencv2/imgproc.hpp" +#include +#include +#include + +static void getcontourarea(float **box, float unclip_ratio, float &distance) { + int pts_num = 4; + float area = 0.0f; + float dist = 0.0f; + for (int i = 0; i < pts_num; i++) { + area += box[i][0] * box[(i + 1) % pts_num][1] - + box[i][1] * box[(i + 1) % pts_num][0]; + dist += sqrtf((box[i][0] - box[(i + 1) % pts_num][0]) * + (box[i][0] - box[(i + 1) % pts_num][0]) + + (box[i][1] - box[(i + 1) % pts_num][1]) * + (box[i][1] - box[(i + 1) % pts_num][1])); + } + area = fabs(float(area / 2.0)); + + distance = area * unclip_ratio / dist; +} + +static cv::RotatedRect unclip(float **box) { + float unclip_ratio = 2.0; + float distance = 1.0; + + getcontourarea(box, unclip_ratio, distance); + + ClipperLib::ClipperOffset offset; + ClipperLib::Path p; + p << ClipperLib::IntPoint(int(box[0][0]), int(box[0][1])) + << ClipperLib::IntPoint(int(box[1][0]), int(box[1][1])) + << ClipperLib::IntPoint(int(box[2][0]), int(box[2][1])) + << ClipperLib::IntPoint(int(box[3][0]), int(box[3][1])); + offset.AddPath(p, ClipperLib::jtRound, ClipperLib::etClosedPolygon); + + ClipperLib::Paths soln; + offset.Execute(soln, distance); + std::vector points; + + for (int j = 0; j < soln.size(); j++) { + for (int i = 0; i < soln[soln.size() - 1].size(); i++) { + points.emplace_back(soln[j][i].X, soln[j][i].Y); + } + } + cv::RotatedRect res = cv::minAreaRect(points); + + return res; +} + +static float **Mat2Vec(cv::Mat mat) { + auto **array = new float *[mat.rows]; + for (int i = 0; i < mat.rows; ++i) { + array[i] = new float[mat.cols]; + } + for (int i = 0; i < mat.rows; ++i) { + for (int j = 0; j < mat.cols; ++j) { + array[i][j] = mat.at(i, j); + } + } + + return array; +} + +static void quickSort(float **s, int l, int r) { + if (l < r) { + int i = l, j = r; + float x = s[l][0]; + float *xp = s[l]; + while (i < j) { + while (i < j && s[j][0] >= x) { + j--; + } + if (i < j) { + std::swap(s[i++], s[j]); + } + while (i < j && s[i][0] < x) { + i++; + } + if (i < j) { + std::swap(s[j--], s[i]); + } + } + s[i] = xp; + quickSort(s, l, i - 1); + quickSort(s, i + 1, r); + } +} + +static void quickSort_vector(std::vector> &box, int l, int r, + int axis) { + if (l < r) { + int i = l, j = r; + int x = box[l][axis]; + std::vector xp(box[l]); + while (i < j) { + while (i < j && box[j][axis] >= x) { + j--; + } + if (i < j) { + std::swap(box[i++], box[j]); + } + while (i < j && box[i][axis] < x) { + i++; + } + if (i < j) { + std::swap(box[j--], box[i]); + } + } + box[i] = xp; + quickSort_vector(box, l, i - 1, axis); + quickSort_vector(box, i + 1, r, axis); + } +} + +static std::vector> +order_points_clockwise(std::vector> pts) { + std::vector> box = pts; + quickSort_vector(box, 0, int(box.size() - 1), 0); + std::vector> leftmost = {box[0], box[1]}; + std::vector> rightmost = {box[2], box[3]}; + + if (leftmost[0][1] > leftmost[1][1]) { + std::swap(leftmost[0], leftmost[1]); + } + + if (rightmost[0][1] > rightmost[1][1]) { + std::swap(rightmost[0], rightmost[1]); + } + + std::vector> rect = {leftmost[0], rightmost[0], rightmost[1], + leftmost[1]}; + return rect; +} + +static float **get_mini_boxes(cv::RotatedRect box, float &ssid) { + ssid = box.size.width >= box.size.height ? box.size.height : box.size.width; + + cv::Mat points; + cv::boxPoints(box, points); + // sorted box points + auto array = Mat2Vec(points); + quickSort(array, 0, 3); + + float *idx1 = array[0], *idx2 = array[1], *idx3 = array[2], *idx4 = array[3]; + if (array[3][1] <= array[2][1]) { + idx2 = array[3]; + idx3 = array[2]; + } else { + idx2 = array[2]; + idx3 = array[3]; + } + if (array[1][1] <= array[0][1]) { + idx1 = array[1]; + idx4 = array[0]; + } else { + idx1 = array[0]; + idx4 = array[1]; + } + + array[0] = idx1; + array[1] = idx2; + array[2] = idx3; + array[3] = idx4; + + return array; +} + +template T clamp(T x, T min, T max) { + if (x > max) { + return max; + } + if (x < min) { + return min; + } + return x; +} + +static float clampf(float x, float min, float max) { + if (x > max) + return max; + if (x < min) + return min; + return x; +} + +float box_score_fast(float **box_array, cv::Mat pred) { + auto array = box_array; + int width = pred.cols; + int height = pred.rows; + + float box_x[4] = {array[0][0], array[1][0], array[2][0], array[3][0]}; + float box_y[4] = {array[0][1], array[1][1], array[2][1], array[3][1]}; + + int xmin = clamp(int(std::floorf(*(std::min_element(box_x, box_x + 4)))), 0, + width - 1); + int xmax = clamp(int(std::ceilf(*(std::max_element(box_x, box_x + 4)))), 0, + width - 1); + int ymin = clamp(int(std::floorf(*(std::min_element(box_y, box_y + 4)))), 0, + height - 1); + int ymax = clamp(int(std::ceilf(*(std::max_element(box_y, box_y + 4)))), 0, + height - 1); + + cv::Mat mask; + mask = cv::Mat::zeros(ymax - ymin + 1, xmax - xmin + 1, CV_8UC1); + + cv::Point root_point[4]; + root_point[0] = cv::Point(int(array[0][0]) - xmin, int(array[0][1]) - ymin); + root_point[1] = cv::Point(int(array[1][0]) - xmin, int(array[1][1]) - ymin); + root_point[2] = cv::Point(int(array[2][0]) - xmin, int(array[2][1]) - ymin); + root_point[3] = cv::Point(int(array[3][0]) - xmin, int(array[3][1]) - ymin); + const cv::Point *ppt[1] = {root_point}; + int npt[] = {4}; + cv::fillPoly(mask, ppt, npt, 1, cv::Scalar(1)); + + cv::Mat croppedImg; + pred(cv::Rect(xmin, ymin, xmax - xmin + 1, ymax - ymin + 1)) + .copyTo(croppedImg); + + auto score = cv::mean(croppedImg, mask)[0]; + return score; +} + +std::vector>> +boxes_from_bitmap(const cv::Mat &pred, const cv::Mat &bitmap) { + const int min_size = 3; + const int max_candidates = 1000; + const float box_thresh = 0.5; + + int width = bitmap.cols; + int height = bitmap.rows; + + std::vector> contours; + std::vector hierarchy; + + cv::findContours(bitmap, contours, hierarchy, cv::RETR_LIST, + cv::CHAIN_APPROX_SIMPLE); + + int num_contours = + contours.size() >= max_candidates ? max_candidates : contours.size(); + + std::vector>> boxes; + + for (int _i = 0; _i < num_contours; _i++) { + float ssid; + cv::RotatedRect box = cv::minAreaRect(contours[_i]); + auto array = get_mini_boxes(box, ssid); + + auto box_for_unclip = array; + // end get_mini_box + + if (ssid < min_size) { + continue; + } + + float score; + score = box_score_fast(array, pred); + // end box_score_fast + if (score < box_thresh) { + continue; + } + + // start for unclip + cv::RotatedRect points = unclip(box_for_unclip); + // end for unclip + + cv::RotatedRect clipbox = points; + auto cliparray = get_mini_boxes(clipbox, ssid); + + if (ssid < min_size + 2) + continue; + + int dest_width = pred.cols; + int dest_height = pred.rows; + std::vector> intcliparray; + + for (int num_pt = 0; num_pt < 4; num_pt++) { + std::vector a{int(clampf(roundf(cliparray[num_pt][0] / float(width) * + float(dest_width)), + 0, float(dest_width))), + int(clampf(roundf(cliparray[num_pt][1] / + float(height) * float(dest_height)), + 0, float(dest_height)))}; + intcliparray.emplace_back(std::move(a)); + } + boxes.emplace_back(std::move(intcliparray)); + + } // end for + return boxes; +} + +int _max(int a, int b) { return a >= b ? a : b; } + +int _min(int a, int b) { return a >= b ? b : a; } + +std::vector>> +filter_tag_det_res(const std::vector>> &o_boxes, + float ratio_h, float ratio_w, const cv::Mat &srcimg) { + int oriimg_h = srcimg.rows; + int oriimg_w = srcimg.cols; + std::vector>> boxes{o_boxes}; + std::vector>> root_points; + for (int n = 0; n < boxes.size(); n++) { + boxes[n] = order_points_clockwise(boxes[n]); + for (int m = 0; m < boxes[0].size(); m++) { + boxes[n][m][0] /= ratio_w; + boxes[n][m][1] /= ratio_h; + + boxes[n][m][0] = int(_min(_max(boxes[n][m][0], 0), oriimg_w - 1)); + boxes[n][m][1] = int(_min(_max(boxes[n][m][1], 0), oriimg_h - 1)); + } + } + + for (int n = 0; n < boxes.size(); n++) { + int rect_width, rect_height; + rect_width = int(sqrt(pow(boxes[n][0][0] - boxes[n][1][0], 2) + + pow(boxes[n][0][1] - boxes[n][1][1], 2))); + rect_height = int(sqrt(pow(boxes[n][0][0] - boxes[n][3][0], 2) + + pow(boxes[n][0][1] - boxes[n][3][1], 2))); + if (rect_width <= 10 || rect_height <= 10) + continue; + root_points.push_back(boxes[n]); + } + return root_points; +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.h b/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.h new file mode 100644 index 0000000000..327da36ce3 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_db_post_process.h @@ -0,0 +1,13 @@ +// +// Created by fujiayi on 2020/7/2. +// +#pragma once +#include +#include + +std::vector>> +boxes_from_bitmap(const cv::Mat &pred, const cv::Mat &bitmap); + +std::vector>> +filter_tag_det_res(const std::vector>> &o_boxes, + float ratio_h, float ratio_w, const cv::Mat &srcimg); \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.cpp b/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.cpp new file mode 100644 index 0000000000..c68456e17a --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.cpp @@ -0,0 +1,261 @@ +// +// Created by fujiayi on 2020/7/1. +// + +#include "ocr_ppredictor.h" +#include "common.h" +#include "ocr_cls_process.h" +#include "ocr_crnn_process.h" +#include "ocr_db_post_process.h" +#include "preprocess.h" + +namespace ppredictor { + +OCR_PPredictor::OCR_PPredictor(const OCR_Config &config) : _config(config) {} + +int OCR_PPredictor::init(const std::string &det_model_content, + const std::string &rec_model_content, + const std::string &cls_model_content) { + _det_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR, _config.mode}); + _det_predictor->init_nb(det_model_content); + + _rec_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR_INTERNAL, _config.mode}); + _rec_predictor->init_nb(rec_model_content); + + _cls_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR_INTERNAL, _config.mode}); + _cls_predictor->init_nb(cls_model_content); + return RETURN_OK; +} + +int OCR_PPredictor::init_from_file(const std::string &det_model_path, + const std::string &rec_model_path, + const std::string &cls_model_path) { + _det_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR, _config.mode}); + _det_predictor->init_from_file(det_model_path); + + _rec_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR_INTERNAL, _config.mode}); + _rec_predictor->init_from_file(rec_model_path); + + _cls_predictor = std::unique_ptr( + new PPredictor{_config.thread_num, NET_OCR_INTERNAL, _config.mode}); + _cls_predictor->init_from_file(cls_model_path); + return RETURN_OK; +} +/** + * for debug use, show result of First Step + * @param filter_boxes + * @param boxes + * @param srcimg + */ +static void +visual_img(const std::vector>> &filter_boxes, + const std::vector>> &boxes, + const cv::Mat &srcimg) { + // visualization + cv::Point rook_points[filter_boxes.size()][4]; + for (int n = 0; n < filter_boxes.size(); n++) { + for (int m = 0; m < filter_boxes[0].size(); m++) { + rook_points[n][m] = + cv::Point(int(filter_boxes[n][m][0]), int(filter_boxes[n][m][1])); + } + } + + cv::Mat img_vis; + srcimg.copyTo(img_vis); + for (int n = 0; n < boxes.size(); n++) { + const cv::Point *ppt[1] = {rook_points[n]}; + int npt[] = {4}; + cv::polylines(img_vis, ppt, npt, 1, 1, CV_RGB(0, 255, 0), 2, 8, 0); + } + // 调试用,自行替换需要修改的路径 + cv::imwrite("/sdcard/1/vis.png", img_vis); +} + +std::vector +OCR_PPredictor::infer_ocr(const std::vector &dims, + const float *input_data, int input_len, int net_flag, + cv::Mat &origin) { + PredictorInput input = _det_predictor->get_first_input(); + input.set_dims(dims); + input.set_data(input_data, input_len); + std::vector results = _det_predictor->infer(); + PredictorOutput &res = results.at(0); + std::vector>> filtered_box = calc_filtered_boxes( + res.get_float_data(), res.get_size(), (int)dims[2], (int)dims[3], origin); + LOGI("Filter_box size %ld", filtered_box.size()); + return infer_rec(filtered_box, origin); +} + +std::vector OCR_PPredictor::infer_rec( + const std::vector>> &boxes, + const cv::Mat &origin_img) { + std::vector mean = {0.5f, 0.5f, 0.5f}; + std::vector scale = {1 / 0.5f, 1 / 0.5f, 1 / 0.5f}; + std::vector dims = {1, 3, 0, 0}; + std::vector ocr_results; + + PredictorInput input = _rec_predictor->get_first_input(); + for (auto bp = boxes.crbegin(); bp != boxes.crend(); ++bp) { + const std::vector> &box = *bp; + cv::Mat crop_img = get_rotate_crop_image(origin_img, box); + crop_img = infer_cls(crop_img); + + float wh_ratio = float(crop_img.cols) / float(crop_img.rows); + cv::Mat input_image = crnn_resize_img(crop_img, wh_ratio); + input_image.convertTo(input_image, CV_32FC3, 1 / 255.0f); + const float *dimg = reinterpret_cast(input_image.data); + int input_size = input_image.rows * input_image.cols; + + dims[2] = input_image.rows; + dims[3] = input_image.cols; + input.set_dims(dims); + + neon_mean_scale(dimg, input.get_mutable_float_data(), input_size, mean, + scale); + + std::vector results = _rec_predictor->infer(); + const float *predict_batch = results.at(0).get_float_data(); + const std::vector predict_shape = results.at(0).get_shape(); + + OCRPredictResult res; + + // ctc decode + int argmax_idx; + int last_index = 0; + float score = 0.f; + int count = 0; + float max_value = 0.0f; + + for (int n = 0; n < predict_shape[1]; n++) { + argmax_idx = int(argmax(&predict_batch[n * predict_shape[2]], + &predict_batch[(n + 1) * predict_shape[2]])); + max_value = + float(*std::max_element(&predict_batch[n * predict_shape[2]], + &predict_batch[(n + 1) * predict_shape[2]])); + if (argmax_idx > 0 && (!(n > 0 && argmax_idx == last_index))) { + score += max_value; + count += 1; + res.word_index.push_back(argmax_idx); + } + last_index = argmax_idx; + } + score /= count; + if (res.word_index.empty()) { + continue; + } + res.score = score; + res.points = box; + ocr_results.emplace_back(std::move(res)); + } + LOGI("ocr_results finished %lu", ocr_results.size()); + return ocr_results; +} + +cv::Mat OCR_PPredictor::infer_cls(const cv::Mat &img, float thresh) { + std::vector mean = {0.5f, 0.5f, 0.5f}; + std::vector scale = {1 / 0.5f, 1 / 0.5f, 1 / 0.5f}; + std::vector dims = {1, 3, 0, 0}; + std::vector ocr_results; + + PredictorInput input = _cls_predictor->get_first_input(); + + cv::Mat input_image = cls_resize_img(img); + input_image.convertTo(input_image, CV_32FC3, 1 / 255.0f); + const float *dimg = reinterpret_cast(input_image.data); + int input_size = input_image.rows * input_image.cols; + + dims[2] = input_image.rows; + dims[3] = input_image.cols; + input.set_dims(dims); + + neon_mean_scale(dimg, input.get_mutable_float_data(), input_size, mean, + scale); + + std::vector results = _cls_predictor->infer(); + + const float *scores = results.at(0).get_float_data(); + float score = 0; + int label = 0; + for (int64_t i = 0; i < results.at(0).get_size(); i++) { + LOGI("output scores [%f]", scores[i]); + if (scores[i] > score) { + score = scores[i]; + label = i; + } + } + cv::Mat srcimg; + img.copyTo(srcimg); + if (label % 2 == 1 && score > thresh) { + cv::rotate(srcimg, srcimg, 1); + } + return srcimg; +} + +std::vector>> +OCR_PPredictor::calc_filtered_boxes(const float *pred, int pred_size, + int output_height, int output_width, + const cv::Mat &origin) { + const double threshold = 0.3; + const double maxvalue = 1; + + cv::Mat pred_map = cv::Mat::zeros(output_height, output_width, CV_32F); + memcpy(pred_map.data, pred, pred_size * sizeof(float)); + cv::Mat cbuf_map; + pred_map.convertTo(cbuf_map, CV_8UC1); + + cv::Mat bit_map; + cv::threshold(cbuf_map, bit_map, threshold, maxvalue, cv::THRESH_BINARY); + + std::vector>> boxes = + boxes_from_bitmap(pred_map, bit_map); + float ratio_h = output_height * 1.0f / origin.rows; + float ratio_w = output_width * 1.0f / origin.cols; + std::vector>> filter_boxes = + filter_tag_det_res(boxes, ratio_h, ratio_w, origin); + return filter_boxes; +} + +std::vector +OCR_PPredictor::postprocess_rec_word_index(const PredictorOutput &res) { + const int *rec_idx = res.get_int_data(); + const std::vector> rec_idx_lod = res.get_lod(); + + std::vector pred_idx; + for (int n = int(rec_idx_lod[0][0]); n < int(rec_idx_lod[0][1] * 2); n += 2) { + pred_idx.emplace_back(rec_idx[n]); + } + return pred_idx; +} + +float OCR_PPredictor::postprocess_rec_score(const PredictorOutput &res) { + const float *predict_batch = res.get_float_data(); + const std::vector predict_shape = res.get_shape(); + const std::vector> predict_lod = res.get_lod(); + int blank = predict_shape[1]; + float score = 0.f; + int count = 0; + for (int n = predict_lod[0][0]; n < predict_lod[0][1] - 1; n++) { + int argmax_idx = argmax(predict_batch + n * predict_shape[1], + predict_batch + (n + 1) * predict_shape[1]); + float max_value = predict_batch[n * predict_shape[1] + argmax_idx]; + if (blank - 1 - argmax_idx > 1e-5) { + score += max_value; + count += 1; + } + } + if (count == 0) { + LOGE("calc score count 0"); + } else { + score /= count; + } + LOGI("calc score: %f", score); + return score; +} + +NET_TYPE OCR_PPredictor::get_net_flag() const { return NET_OCR; } +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.h b/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.h new file mode 100644 index 0000000000..588f25cb06 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ocr_ppredictor.h @@ -0,0 +1,122 @@ +// +// Created by fujiayi on 2020/7/1. +// + +#pragma once + +#include "ppredictor.h" +#include +#include +#include + +namespace ppredictor { + +/** + * Config + */ +struct OCR_Config { + int thread_num = 4; // Thread num + paddle::lite_api::PowerMode mode = + paddle::lite_api::LITE_POWER_HIGH; // PaddleLite Mode +}; + +/** + * PolyGone Result + */ +struct OCRPredictResult { + std::vector word_index; + std::vector> points; + float score; +}; + +/** + * OCR there are 2 models + * 1. First model(det),select polygones to show where are the texts + * 2. crop from the origin images, use these polygones to infer + */ +class OCR_PPredictor : public PPredictor_Interface { +public: + OCR_PPredictor(const OCR_Config &config); + + virtual ~OCR_PPredictor() {} + + /** + * 初始化二个模型的Predictor + * @param det_model_content + * @param rec_model_content + * @return + */ + int init(const std::string &det_model_content, + const std::string &rec_model_content, + const std::string &cls_model_content); + int init_from_file(const std::string &det_model_path, + const std::string &rec_model_path, + const std::string &cls_model_path); + /** + * Return OCR result + * @param dims + * @param input_data + * @param input_len + * @param net_flag + * @param origin + * @return + */ + virtual std::vector + infer_ocr(const std::vector &dims, const float *input_data, + int input_len, int net_flag, cv::Mat &origin); + + virtual NET_TYPE get_net_flag() const; + +private: + /** + * calcul Polygone from the result image of first model + * @param pred + * @param output_height + * @param output_width + * @param origin + * @return + */ + std::vector>> + calc_filtered_boxes(const float *pred, int pred_size, int output_height, + int output_width, const cv::Mat &origin); + + /** + * infer for second model + * + * @param boxes + * @param origin + * @return + */ + std::vector + infer_rec(const std::vector>> &boxes, + const cv::Mat &origin); + + /** + * infer for cls model + * + * @param boxes + * @param origin + * @return + */ + cv::Mat infer_cls(const cv::Mat &origin, float thresh = 0.9); + + /** + * Postprocess or sencod model to extract text + * @param res + * @return + */ + std::vector postprocess_rec_word_index(const PredictorOutput &res); + + /** + * calculate confidence of second model text result + * @param res + * @return + */ + float postprocess_rec_score(const PredictorOutput &res); + + std::unique_ptr _det_predictor; + std::unique_ptr _rec_predictor; + std::unique_ptr _cls_predictor; + OCR_Config _config; +}; +} diff --git a/deploy/android_demo/app/src/main/cpp/ppredictor.cpp b/deploy/android_demo/app/src/main/cpp/ppredictor.cpp new file mode 100644 index 0000000000..dcbc76911f --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ppredictor.cpp @@ -0,0 +1,65 @@ +#include "ppredictor.h" +#include "common.h" + +namespace ppredictor { +PPredictor::PPredictor(int thread_num, int net_flag, + paddle::lite_api::PowerMode mode) + : _thread_num(thread_num), _net_flag(net_flag), _mode(mode) {} + +int PPredictor::init_nb(const std::string &model_content) { + paddle::lite_api::MobileConfig config; + config.set_model_from_buffer(model_content); + return _init(config); +} + +int PPredictor::init_from_file(const std::string &model_content) { + paddle::lite_api::MobileConfig config; + config.set_model_from_file(model_content); + return _init(config); +} + +template int PPredictor::_init(ConfigT &config) { + config.set_threads(_thread_num); + config.set_power_mode(_mode); + _predictor = paddle::lite_api::CreatePaddlePredictor(config); + LOGI("paddle instance created"); + return RETURN_OK; +} + +PredictorInput PPredictor::get_input(int index) { + PredictorInput input{_predictor->GetInput(index), index, _net_flag}; + _is_input_get = true; + return input; +} + +std::vector PPredictor::get_inputs(int num) { + std::vector results; + for (int i = 0; i < num; i++) { + results.emplace_back(get_input(i)); + } + return results; +} + +PredictorInput PPredictor::get_first_input() { return get_input(0); } + +std::vector PPredictor::infer() { + LOGI("infer Run start %d", _net_flag); + std::vector results; + if (!_is_input_get) { + return results; + } + _predictor->Run(); + LOGI("infer Run end"); + + for (int i = 0; i < _predictor->GetOutputNames().size(); i++) { + std::unique_ptr output_tensor = + _predictor->GetOutput(i); + LOGI("output tensor[%d] size %ld", i, product(output_tensor->shape())); + PredictorOutput result{std::move(output_tensor), i, _net_flag}; + results.emplace_back(std::move(result)); + } + return results; +} + +NET_TYPE PPredictor::get_net_flag() const { return (NET_TYPE)_net_flag; } +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/ppredictor.h b/deploy/android_demo/app/src/main/cpp/ppredictor.h new file mode 100644 index 0000000000..836861aac9 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/ppredictor.h @@ -0,0 +1,63 @@ +#pragma once + +#include "paddle_api.h" +#include "predictor_input.h" +#include "predictor_output.h" + +namespace ppredictor { + +/** + * PaddleLite Preditor Common Interface + */ +class PPredictor_Interface { +public: + virtual ~PPredictor_Interface() {} + + virtual NET_TYPE get_net_flag() const = 0; +}; + +/** + * Common Predictor + */ +class PPredictor : public PPredictor_Interface { +public: + PPredictor( + int thread_num, int net_flag = 0, + paddle::lite_api::PowerMode mode = paddle::lite_api::LITE_POWER_HIGH); + + virtual ~PPredictor() {} + + /** + * init paddlitelite opt model,nb format ,or use ini_paddle + * @param model_content + * @return 0 + */ + virtual int init_nb(const std::string &model_content); + + virtual int init_from_file(const std::string &model_content); + + std::vector infer(); + + std::shared_ptr get_predictor() { + return _predictor; + } + + virtual std::vector get_inputs(int num); + + virtual PredictorInput get_input(int index); + + virtual PredictorInput get_first_input(); + + virtual NET_TYPE get_net_flag() const; + +protected: + template int _init(ConfigT &config); + +private: + int _thread_num; + paddle::lite_api::PowerMode _mode; + std::shared_ptr _predictor; + bool _is_input_get = false; + int _net_flag; +}; +} diff --git a/deploy/android_demo/app/src/main/cpp/predictor_input.cpp b/deploy/android_demo/app/src/main/cpp/predictor_input.cpp new file mode 100644 index 0000000000..f0b4bf8a82 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/predictor_input.cpp @@ -0,0 +1,28 @@ +#include "predictor_input.h" + +namespace ppredictor { + +void PredictorInput::set_dims(std::vector dims) { + // yolov3 + if (_net_flag == 101 && _index == 1) { + _tensor->Resize({1, 2}); + _tensor->mutable_data()[0] = (int)dims.at(2); + _tensor->mutable_data()[1] = (int)dims.at(3); + } else { + _tensor->Resize(dims); + } + _is_dims_set = true; +} + +float *PredictorInput::get_mutable_float_data() { + if (!_is_dims_set) { + LOGE("PredictorInput::set_dims is not called"); + } + return _tensor->mutable_data(); +} + +void PredictorInput::set_data(const float *input_data, int input_float_len) { + float *input_raw_data = get_mutable_float_data(); + memcpy(input_raw_data, input_data, input_float_len * sizeof(float)); +} +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/predictor_input.h b/deploy/android_demo/app/src/main/cpp/predictor_input.h new file mode 100644 index 0000000000..f3fd6cfe47 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/predictor_input.h @@ -0,0 +1,26 @@ +#pragma once + +#include "common.h" +#include +#include + +namespace ppredictor { +class PredictorInput { +public: + PredictorInput(std::unique_ptr &&tensor, int index, + int net_flag) + : _tensor(std::move(tensor)), _index(index), _net_flag(net_flag) {} + + void set_dims(std::vector dims); + + float *get_mutable_float_data(); + + void set_data(const float *input_data, int input_float_len); + +private: + std::unique_ptr _tensor; + bool _is_dims_set = false; + int _index; + int _net_flag; +}; +} diff --git a/deploy/android_demo/app/src/main/cpp/predictor_output.cpp b/deploy/android_demo/app/src/main/cpp/predictor_output.cpp new file mode 100644 index 0000000000..e9cfdbc319 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/predictor_output.cpp @@ -0,0 +1,26 @@ +#include "predictor_output.h" +namespace ppredictor { +const float *PredictorOutput::get_float_data() const { + return _tensor->data(); +} + +const int *PredictorOutput::get_int_data() const { + return _tensor->data(); +} + +const std::vector> PredictorOutput::get_lod() const { + return _tensor->lod(); +} + +int64_t PredictorOutput::get_size() const { + if (_net_flag == NET_OCR) { + return _tensor->shape().at(2) * _tensor->shape().at(3); + } else { + return product(_tensor->shape()); + } +} + +const std::vector PredictorOutput::get_shape() const { + return _tensor->shape(); +} +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/predictor_output.h b/deploy/android_demo/app/src/main/cpp/predictor_output.h new file mode 100644 index 0000000000..8e8c9ba014 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/predictor_output.h @@ -0,0 +1,31 @@ +#pragma once + +#include "common.h" +#include +#include + +namespace ppredictor { +class PredictorOutput { +public: + PredictorOutput() {} + PredictorOutput(std::unique_ptr &&tensor, + int index, int net_flag) + : _tensor(std::move(tensor)), _index(index), _net_flag(net_flag) {} + + const float *get_float_data() const; + const int *get_int_data() const; + int64_t get_size() const; + const std::vector> get_lod() const; + const std::vector get_shape() const; + + std::vector data; // return float, or use data_int + std::vector data_int; // several layers return int ,or use data + std::vector shape; // PaddleLite output shape + std::vector> lod; // PaddleLite output lod + +private: + std::unique_ptr _tensor; + int _index; + int _net_flag; +}; +} diff --git a/deploy/android_demo/app/src/main/cpp/preprocess.cpp b/deploy/android_demo/app/src/main/cpp/preprocess.cpp new file mode 100644 index 0000000000..e99b2cd184 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/preprocess.cpp @@ -0,0 +1,82 @@ +#include "preprocess.h" +#include + +cv::Mat bitmap_to_cv_mat(JNIEnv *env, jobject bitmap) { + AndroidBitmapInfo info; + int result = AndroidBitmap_getInfo(env, bitmap, &info); + if (result != ANDROID_BITMAP_RESULT_SUCCESS) { + LOGE("AndroidBitmap_getInfo failed, result: %d", result); + return cv::Mat{}; + } + if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) { + LOGE("Bitmap format is not RGBA_8888 !"); + return cv::Mat{}; + } + unsigned char *srcData = NULL; + AndroidBitmap_lockPixels(env, bitmap, (void **)&srcData); + cv::Mat mat = cv::Mat::zeros(info.height, info.width, CV_8UC4); + memcpy(mat.data, srcData, info.height * info.width * 4); + AndroidBitmap_unlockPixels(env, bitmap); + cv::cvtColor(mat, mat, cv::COLOR_RGBA2BGR); + /** + if (!cv::imwrite("/sdcard/1/copy.jpg", mat)){ + LOGE("Write image failed " ); + } + */ + + return mat; +} + +cv::Mat resize_img(const cv::Mat &img, int height, int width) { + if (img.rows == height && img.cols == width) { + return img; + } + cv::Mat new_img; + cv::resize(img, new_img, cv::Size(height, width)); + return new_img; +} + +// fill tensor with mean and scale and trans layout: nhwc -> nchw, neon speed up +void neon_mean_scale(const float *din, float *dout, int size, + const std::vector &mean, + const std::vector &scale) { + if (mean.size() != 3 || scale.size() != 3) { + LOGE("[ERROR] mean or scale size must equal to 3"); + return; + } + + float32x4_t vmean0 = vdupq_n_f32(mean[0]); + float32x4_t vmean1 = vdupq_n_f32(mean[1]); + float32x4_t vmean2 = vdupq_n_f32(mean[2]); + float32x4_t vscale0 = vdupq_n_f32(scale[0]); + float32x4_t vscale1 = vdupq_n_f32(scale[1]); + float32x4_t vscale2 = vdupq_n_f32(scale[2]); + + float *dout_c0 = dout; + float *dout_c1 = dout + size; + float *dout_c2 = dout + size * 2; + + int i = 0; + for (; i < size - 3; i += 4) { + float32x4x3_t vin3 = vld3q_f32(din); + float32x4_t vsub0 = vsubq_f32(vin3.val[0], vmean0); + float32x4_t vsub1 = vsubq_f32(vin3.val[1], vmean1); + float32x4_t vsub2 = vsubq_f32(vin3.val[2], vmean2); + float32x4_t vs0 = vmulq_f32(vsub0, vscale0); + float32x4_t vs1 = vmulq_f32(vsub1, vscale1); + float32x4_t vs2 = vmulq_f32(vsub2, vscale2); + vst1q_f32(dout_c0, vs0); + vst1q_f32(dout_c1, vs1); + vst1q_f32(dout_c2, vs2); + + din += 12; + dout_c0 += 4; + dout_c1 += 4; + dout_c2 += 4; + } + for (; i < size; i++) { + *(dout_c0++) = (*(din++) - mean[0]) * scale[0]; + *(dout_c1++) = (*(din++) - mean[1]) * scale[1]; + *(dout_c2++) = (*(din++) - mean[2]) * scale[2]; + } +} \ No newline at end of file diff --git a/deploy/android_demo/app/src/main/cpp/preprocess.h b/deploy/android_demo/app/src/main/cpp/preprocess.h new file mode 100644 index 0000000000..7909152730 --- /dev/null +++ b/deploy/android_demo/app/src/main/cpp/preprocess.h @@ -0,0 +1,12 @@ +#pragma once + +#include "common.h" +#include +#include +cv::Mat bitmap_to_cv_mat(JNIEnv *env, jobject bitmap); + +cv::Mat resize_img(const cv::Mat &img, int height, int width); + +void neon_mean_scale(const float *din, float *dout, int size, + const std::vector &mean, + const std::vector &scale); diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/AppCompatPreferenceActivity.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/AppCompatPreferenceActivity.java new file mode 100644 index 0000000000..49af0afea4 --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/AppCompatPreferenceActivity.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.baidu.paddle.lite.demo.ocr; + +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.view.MenuInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.LayoutRes; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.appcompat.widget.Toolbar; + +/** + * A {@link PreferenceActivity} which implements and proxies the necessary calls + * to be used with AppCompat. + *

+ * This technique can be used with an {@link android.app.Activity} class, not just + * {@link PreferenceActivity}. + */ +public abstract class AppCompatPreferenceActivity extends PreferenceActivity { + private AppCompatDelegate mDelegate; + + @Override + protected void onCreate(Bundle savedInstanceState) { + getDelegate().installViewFactory(); + getDelegate().onCreate(savedInstanceState); + super.onCreate(savedInstanceState); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + getDelegate().onPostCreate(savedInstanceState); + } + + public ActionBar getSupportActionBar() { + return getDelegate().getSupportActionBar(); + } + + public void setSupportActionBar(@Nullable Toolbar toolbar) { + getDelegate().setSupportActionBar(toolbar); + } + + @Override + public MenuInflater getMenuInflater() { + return getDelegate().getMenuInflater(); + } + + @Override + public void setContentView(@LayoutRes int layoutResID) { + getDelegate().setContentView(layoutResID); + } + + @Override + public void setContentView(View view) { + getDelegate().setContentView(view); + } + + @Override + public void setContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().setContentView(view, params); + } + + @Override + public void addContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().addContentView(view, params); + } + + @Override + protected void onPostResume() { + super.onPostResume(); + getDelegate().onPostResume(); + } + + @Override + protected void onTitleChanged(CharSequence title, int color) { + super.onTitleChanged(title, color); + getDelegate().setTitle(title); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + getDelegate().onConfigurationChanged(newConfig); + } + + @Override + protected void onStop() { + super.onStop(); + getDelegate().onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getDelegate().onDestroy(); + } + + public void invalidateOptionsMenu() { + getDelegate().invalidateOptionsMenu(); + } + + private AppCompatDelegate getDelegate() { + if (mDelegate == null) { + mDelegate = AppCompatDelegate.create(this, null); + } + return mDelegate; + } +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MainActivity.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MainActivity.java new file mode 100644 index 0000000000..b4ea34e2a3 --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MainActivity.java @@ -0,0 +1,509 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.Manifest; +import android.app.ProgressDialog; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.media.ExifInterface; +import android.content.res.AssetManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Message; +import android.preference.PreferenceManager; +import android.provider.MediaStore; +import android.text.method.ScrollingMovementMethod; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class MainActivity extends AppCompatActivity { + private static final String TAG = MainActivity.class.getSimpleName(); + public static final int OPEN_GALLERY_REQUEST_CODE = 0; + public static final int TAKE_PHOTO_REQUEST_CODE = 1; + + public static final int REQUEST_LOAD_MODEL = 0; + public static final int REQUEST_RUN_MODEL = 1; + public static final int RESPONSE_LOAD_MODEL_SUCCESSED = 0; + public static final int RESPONSE_LOAD_MODEL_FAILED = 1; + public static final int RESPONSE_RUN_MODEL_SUCCESSED = 2; + public static final int RESPONSE_RUN_MODEL_FAILED = 3; + + protected ProgressDialog pbLoadModel = null; + protected ProgressDialog pbRunModel = null; + + protected Handler receiver = null; // Receive messages from worker thread + protected Handler sender = null; // Send command to worker thread + protected HandlerThread worker = null; // Worker thread to load&run model + + // UI components of object detection + protected TextView tvInputSetting; + protected TextView tvStatus; + protected ImageView ivInputImage; + protected TextView tvOutputResult; + protected TextView tvInferenceTime; + + // Model settings of object detection + protected String modelPath = ""; + protected String labelPath = ""; + protected String imagePath = ""; + protected int cpuThreadNum = 1; + protected String cpuPowerMode = ""; + protected String inputColorFormat = ""; + protected long[] inputShape = new long[]{}; + protected float[] inputMean = new float[]{}; + protected float[] inputStd = new float[]{}; + protected float scoreThreshold = 0.1f; + private String currentPhotoPath; + private AssetManager assetManager =null; + + protected Predictor predictor = new Predictor(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + // Clear all setting items to avoid app crashing due to the incorrect settings + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.clear(); + editor.apply(); + + // Setup the UI components + tvInputSetting = findViewById(R.id.tv_input_setting); + tvStatus = findViewById(R.id.tv_model_img_status); + ivInputImage = findViewById(R.id.iv_input_image); + tvInferenceTime = findViewById(R.id.tv_inference_time); + tvOutputResult = findViewById(R.id.tv_output_result); + tvInputSetting.setMovementMethod(ScrollingMovementMethod.getInstance()); + tvOutputResult.setMovementMethod(ScrollingMovementMethod.getInstance()); + + // Prepare the worker thread for mode loading and inference + receiver = new Handler() { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case RESPONSE_LOAD_MODEL_SUCCESSED: + if(pbLoadModel!=null && pbLoadModel.isShowing()){ + pbLoadModel.dismiss(); + } + onLoadModelSuccessed(); + break; + case RESPONSE_LOAD_MODEL_FAILED: + if(pbLoadModel!=null && pbLoadModel.isShowing()){ + pbLoadModel.dismiss(); + } + Toast.makeText(MainActivity.this, "Load model failed!", Toast.LENGTH_SHORT).show(); + onLoadModelFailed(); + break; + case RESPONSE_RUN_MODEL_SUCCESSED: + if(pbRunModel!=null && pbRunModel.isShowing()){ + pbRunModel.dismiss(); + } + onRunModelSuccessed(); + break; + case RESPONSE_RUN_MODEL_FAILED: + if(pbRunModel!=null && pbRunModel.isShowing()){ + pbRunModel.dismiss(); + } + Toast.makeText(MainActivity.this, "Run model failed!", Toast.LENGTH_SHORT).show(); + onRunModelFailed(); + break; + default: + break; + } + } + }; + + worker = new HandlerThread("Predictor Worker"); + worker.start(); + sender = new Handler(worker.getLooper()) { + public void handleMessage(Message msg) { + switch (msg.what) { + case REQUEST_LOAD_MODEL: + // Load model and reload test image + if (onLoadModel()) { + receiver.sendEmptyMessage(RESPONSE_LOAD_MODEL_SUCCESSED); + } else { + receiver.sendEmptyMessage(RESPONSE_LOAD_MODEL_FAILED); + } + break; + case REQUEST_RUN_MODEL: + // Run model if model is loaded + if (onRunModel()) { + receiver.sendEmptyMessage(RESPONSE_RUN_MODEL_SUCCESSED); + } else { + receiver.sendEmptyMessage(RESPONSE_RUN_MODEL_FAILED); + } + break; + default: + break; + } + } + }; + } + + @Override + protected void onResume() { + super.onResume(); + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + boolean settingsChanged = false; + String model_path = sharedPreferences.getString(getString(R.string.MODEL_PATH_KEY), + getString(R.string.MODEL_PATH_DEFAULT)); + String label_path = sharedPreferences.getString(getString(R.string.LABEL_PATH_KEY), + getString(R.string.LABEL_PATH_DEFAULT)); + String image_path = sharedPreferences.getString(getString(R.string.IMAGE_PATH_KEY), + getString(R.string.IMAGE_PATH_DEFAULT)); + settingsChanged |= !model_path.equalsIgnoreCase(modelPath); + settingsChanged |= !label_path.equalsIgnoreCase(labelPath); + settingsChanged |= !image_path.equalsIgnoreCase(imagePath); + int cpu_thread_num = Integer.parseInt(sharedPreferences.getString(getString(R.string.CPU_THREAD_NUM_KEY), + getString(R.string.CPU_THREAD_NUM_DEFAULT))); + settingsChanged |= cpu_thread_num != cpuThreadNum; + String cpu_power_mode = + sharedPreferences.getString(getString(R.string.CPU_POWER_MODE_KEY), + getString(R.string.CPU_POWER_MODE_DEFAULT)); + settingsChanged |= !cpu_power_mode.equalsIgnoreCase(cpuPowerMode); + String input_color_format = + sharedPreferences.getString(getString(R.string.INPUT_COLOR_FORMAT_KEY), + getString(R.string.INPUT_COLOR_FORMAT_DEFAULT)); + settingsChanged |= !input_color_format.equalsIgnoreCase(inputColorFormat); + long[] input_shape = + Utils.parseLongsFromString(sharedPreferences.getString(getString(R.string.INPUT_SHAPE_KEY), + getString(R.string.INPUT_SHAPE_DEFAULT)), ","); + float[] input_mean = + Utils.parseFloatsFromString(sharedPreferences.getString(getString(R.string.INPUT_MEAN_KEY), + getString(R.string.INPUT_MEAN_DEFAULT)), ","); + float[] input_std = + Utils.parseFloatsFromString(sharedPreferences.getString(getString(R.string.INPUT_STD_KEY) + , getString(R.string.INPUT_STD_DEFAULT)), ","); + settingsChanged |= input_shape.length != inputShape.length; + settingsChanged |= input_mean.length != inputMean.length; + settingsChanged |= input_std.length != inputStd.length; + if (!settingsChanged) { + for (int i = 0; i < input_shape.length; i++) { + settingsChanged |= input_shape[i] != inputShape[i]; + } + for (int i = 0; i < input_mean.length; i++) { + settingsChanged |= input_mean[i] != inputMean[i]; + } + for (int i = 0; i < input_std.length; i++) { + settingsChanged |= input_std[i] != inputStd[i]; + } + } + float score_threshold = + Float.parseFloat(sharedPreferences.getString(getString(R.string.SCORE_THRESHOLD_KEY), + getString(R.string.SCORE_THRESHOLD_DEFAULT))); + settingsChanged |= scoreThreshold != score_threshold; + if (settingsChanged) { + modelPath = model_path; + labelPath = label_path; + imagePath = image_path; + cpuThreadNum = cpu_thread_num; + cpuPowerMode = cpu_power_mode; + inputColorFormat = input_color_format; + inputShape = input_shape; + inputMean = input_mean; + inputStd = input_std; + scoreThreshold = score_threshold; + // Update UI + tvInputSetting.setText("Model: " + modelPath.substring(modelPath.lastIndexOf("/") + 1) + "\n" + "CPU" + + " Thread Num: " + Integer.toString(cpuThreadNum) + "\n" + "CPU Power Mode: " + cpuPowerMode); + tvInputSetting.scrollTo(0, 0); + // Reload model if configure has been changed +// loadModel(); + set_img(); + } + } + + public void loadModel() { + pbLoadModel = ProgressDialog.show(this, "", "loading model...", false, false); + sender.sendEmptyMessage(REQUEST_LOAD_MODEL); + } + + public void runModel() { + pbRunModel = ProgressDialog.show(this, "", "running model...", false, false); + sender.sendEmptyMessage(REQUEST_RUN_MODEL); + } + + public boolean onLoadModel() { + return predictor.init(MainActivity.this, modelPath, labelPath, cpuThreadNum, + cpuPowerMode, + inputColorFormat, + inputShape, inputMean, + inputStd, scoreThreshold); + } + + public boolean onRunModel() { + return predictor.isLoaded() && predictor.runModel(); + } + + public void onLoadModelSuccessed() { + // Load test image from path and run model + tvStatus.setText("STATUS: load model successed"); + } + + public void onLoadModelFailed() { + tvStatus.setText("STATUS: load model failed"); + } + + public void onRunModelSuccessed() { + tvStatus.setText("STATUS: run model successed"); + // Obtain results and update UI + tvInferenceTime.setText("Inference time: " + predictor.inferenceTime() + " ms"); + Bitmap outputImage = predictor.outputImage(); + if (outputImage != null) { + ivInputImage.setImageBitmap(outputImage); + } + tvOutputResult.setText(predictor.outputResult()); + tvOutputResult.scrollTo(0, 0); + } + + public void onRunModelFailed() { + tvStatus.setText("STATUS: run model failed"); + } + + public void onImageChanged(Bitmap image) { + // Rerun model if users pick test image from gallery or camera + if (image != null && predictor.isLoaded()) { + predictor.setInputImage(image); + runModel(); + } + } + + public void set_img() { + // Load test image from path and run model + try { + assetManager= getAssets(); + InputStream in=assetManager.open(imagePath); + Bitmap bmp=BitmapFactory.decodeStream(in); + ivInputImage.setImageBitmap(bmp); + } catch (IOException e) { + Toast.makeText(MainActivity.this, "Load image failed!", Toast.LENGTH_SHORT).show(); + e.printStackTrace(); + } + } + + public void onSettingsClicked() { + startActivity(new Intent(MainActivity.this, SettingsActivity.class)); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_action_options, menu); + return true; + } + + public boolean onPrepareOptionsMenu(Menu menu) { + boolean isLoaded = predictor.isLoaded(); + return super.onPrepareOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + break; + case R.id.settings: + if (requestAllPermissions()) { + // Make sure we have SDCard r&w permissions to load model from SDCard + onSettingsClicked(); + } + break; + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, + @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (grantResults[0] != PackageManager.PERMISSION_GRANTED || grantResults[1] != PackageManager.PERMISSION_GRANTED) { + Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show(); + } + } + + private boolean requestAllPermissions() { + if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) + != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, + Manifest.permission.CAMERA) + != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CAMERA}, + 0); + return false; + } + return true; + } + + private void openGallery() { + Intent intent = new Intent(Intent.ACTION_PICK, null); + intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); + startActivityForResult(intent, OPEN_GALLERY_REQUEST_CODE); + } + + private void takePhoto() { + Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + // Ensure that there's a camera activity to handle the intent + if (takePictureIntent.resolveActivity(getPackageManager()) != null) { + // Create the File where the photo should go + File photoFile = null; + try { + photoFile = createImageFile(); + } catch (IOException ex) { + Log.e("MainActitity", ex.getMessage(), ex); + Toast.makeText(MainActivity.this, + "Create Camera temp file failed: " + ex.getMessage(), Toast.LENGTH_SHORT).show(); + } + // Continue only if the File was successfully created + if (photoFile != null) { + Log.i(TAG, "FILEPATH " + getExternalFilesDir("Pictures").getAbsolutePath()); + Uri photoURI = FileProvider.getUriForFile(this, + "com.baidu.paddle.lite.demo.ocr.fileprovider", + photoFile); + currentPhotoPath = photoFile.getAbsolutePath(); + takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); + startActivityForResult(takePictureIntent, TAKE_PHOTO_REQUEST_CODE); + Log.i(TAG, "startActivityForResult finished"); + } + } + + } + + private File createImageFile() throws IOException { + // Create an image file name + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); + String imageFileName = "JPEG_" + timeStamp + "_"; + File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES); + File image = File.createTempFile( + imageFileName, /* prefix */ + ".bmp", /* suffix */ + storageDir /* directory */ + ); + + return image; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case OPEN_GALLERY_REQUEST_CODE: + if (data == null) { + break; + } + try { + ContentResolver resolver = getContentResolver(); + Uri uri = data.getData(); + Bitmap image = MediaStore.Images.Media.getBitmap(resolver, uri); + String[] proj = {MediaStore.Images.Media.DATA}; + Cursor cursor = managedQuery(uri, proj, null, null, null); + cursor.moveToFirst(); + if (image != null) { +// onImageChanged(image); + ivInputImage.setImageBitmap(image); + } + } catch (IOException e) { + Log.e(TAG, e.toString()); + } + break; + case TAKE_PHOTO_REQUEST_CODE: + if (currentPhotoPath != null) { + ExifInterface exif = null; + try { + exif = new ExifInterface(currentPhotoPath); + } catch (IOException e) { + e.printStackTrace(); + } + int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, + ExifInterface.ORIENTATION_UNDEFINED); + Log.i(TAG, "rotation " + orientation); + Bitmap image = BitmapFactory.decodeFile(currentPhotoPath); + image = Utils.rotateBitmap(image, orientation); + if (image != null) { +// onImageChanged(image); + ivInputImage.setImageBitmap(image); + } + } else { + Log.e(TAG, "currentPhotoPath is null"); + } + break; + default: + break; + } + } + } + + public void btn_load_model_click(View view) { + if (predictor.isLoaded()){ + tvStatus.setText("STATUS: model has been loaded"); + }else{ + tvStatus.setText("STATUS: load model ......"); + loadModel(); + } + } + + public void btn_run_model_click(View view) { + Bitmap image =((BitmapDrawable)ivInputImage.getDrawable()).getBitmap(); + if(image == null) { + tvStatus.setText("STATUS: image is not exists"); + } + else if (!predictor.isLoaded()){ + tvStatus.setText("STATUS: model is not loaded"); + }else{ + tvStatus.setText("STATUS: run model ...... "); + predictor.setInputImage(image); + runModel(); + } + } + public void btn_choice_img_click(View view) { + if (requestAllPermissions()) { + openGallery(); + } + } + + public void btn_take_photo_click(View view) { + if (requestAllPermissions()) { + takePhoto(); + } + } + + @Override + protected void onDestroy() { + if (predictor != null) { + predictor.releaseModel(); + } + worker.quit(); + super.onDestroy(); + } +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MiniActivity.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MiniActivity.java new file mode 100644 index 0000000000..38c9829471 --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/MiniActivity.java @@ -0,0 +1,157 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.Build; +import android.os.Bundle; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import java.io.IOException; +import java.io.InputStream; + +public class MiniActivity extends AppCompatActivity { + + + public static final int REQUEST_LOAD_MODEL = 0; + public static final int REQUEST_RUN_MODEL = 1; + public static final int REQUEST_UNLOAD_MODEL = 2; + public static final int RESPONSE_LOAD_MODEL_SUCCESSED = 0; + public static final int RESPONSE_LOAD_MODEL_FAILED = 1; + public static final int RESPONSE_RUN_MODEL_SUCCESSED = 2; + public static final int RESPONSE_RUN_MODEL_FAILED = 3; + + private static final String TAG = "MiniActivity"; + + protected Handler receiver = null; // Receive messages from worker thread + protected Handler sender = null; // Send command to worker thread + protected HandlerThread worker = null; // Worker thread to load&run model + protected volatile Predictor predictor = null; + + private String assetModelDirPath = "models/ocr_v2_for_cpu"; + private String assetlabelFilePath = "labels/ppocr_keys_v1.txt"; + + private Button button; + private ImageView imageView; // image result + private TextView textView; // text result + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_mini); + + Log.i(TAG, "SHOW in Logcat"); + + // Prepare the worker thread for mode loading and inference + worker = new HandlerThread("Predictor Worker"); + worker.start(); + sender = new Handler(worker.getLooper()) { + public void handleMessage(Message msg) { + switch (msg.what) { + case REQUEST_LOAD_MODEL: + // Load model and reload test image + if (!onLoadModel()) { + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(MiniActivity.this, "Load model failed!", Toast.LENGTH_SHORT).show(); + } + }); + } + break; + case REQUEST_RUN_MODEL: + // Run model if model is loaded + final boolean isSuccessed = onRunModel(); + runOnUiThread(new Runnable() { + @Override + public void run() { + if (isSuccessed){ + onRunModelSuccessed(); + }else{ + Toast.makeText(MiniActivity.this, "Run model failed!", Toast.LENGTH_SHORT).show(); + } + } + }); + break; + } + } + }; + sender.sendEmptyMessage(REQUEST_LOAD_MODEL); // corresponding to REQUEST_LOAD_MODEL, to call onLoadModel() + + imageView = findViewById(R.id.imageView); + textView = findViewById(R.id.sample_text); + button = findViewById(R.id.button); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sender.sendEmptyMessage(REQUEST_RUN_MODEL); + } + }); + + + } + + @Override + protected void onDestroy() { + onUnloadModel(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + worker.quitSafely(); + } else { + worker.quit(); + } + super.onDestroy(); + } + + /** + * call in onCreate, model init + * + * @return + */ + private boolean onLoadModel() { + if (predictor == null) { + predictor = new Predictor(); + } + return predictor.init(this, assetModelDirPath, assetlabelFilePath); + } + + /** + * init engine + * call in onCreate + * + * @return + */ + private boolean onRunModel() { + try { + String assetImagePath = "images/0.jpg"; + InputStream imageStream = getAssets().open(assetImagePath); + Bitmap image = BitmapFactory.decodeStream(imageStream); + // Input is Bitmap + predictor.setInputImage(image); + return predictor.isLoaded() && predictor.runModel(); + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + private void onRunModelSuccessed() { + Log.i(TAG, "onRunModelSuccessed"); + textView.setText(predictor.outputResult); + imageView.setImageBitmap(predictor.outputImage); + } + + private void onUnloadModel() { + if (predictor != null) { + predictor.releaseModel(); + } + } +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OCRPredictorNative.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OCRPredictorNative.java new file mode 100644 index 0000000000..1fa419e32a --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OCRPredictorNative.java @@ -0,0 +1,102 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.graphics.Bitmap; +import android.util.Log; + +import java.util.ArrayList; +import java.util.concurrent.atomic.AtomicBoolean; + +public class OCRPredictorNative { + + private static final AtomicBoolean isSOLoaded = new AtomicBoolean(); + + public static void loadLibrary() throws RuntimeException { + if (!isSOLoaded.get() && isSOLoaded.compareAndSet(false, true)) { + try { + System.loadLibrary("Native"); + } catch (Throwable e) { + RuntimeException exception = new RuntimeException( + "Load libNative.so failed, please check it exists in apk file.", e); + throw exception; + } + } + } + + private Config config; + + private long nativePointer = 0; + + public OCRPredictorNative(Config config) { + this.config = config; + loadLibrary(); + nativePointer = init(config.detModelFilename, config.recModelFilename,config.clsModelFilename, + config.cpuThreadNum, config.cpuPower); + Log.i("OCRPredictorNative", "load success " + nativePointer); + + } + + + public ArrayList runImage(float[] inputData, int width, int height, int channels, Bitmap originalImage) { + Log.i("OCRPredictorNative", "begin to run image " + inputData.length + " " + width + " " + height); + float[] dims = new float[]{1, channels, height, width}; + float[] rawResults = forward(nativePointer, inputData, dims, originalImage); + ArrayList results = postprocess(rawResults); + return results; + } + + public static class Config { + public int cpuThreadNum; + public String cpuPower; + public String detModelFilename; + public String recModelFilename; + public String clsModelFilename; + + } + + public void destory(){ + if (nativePointer > 0) { + release(nativePointer); + nativePointer = 0; + } + } + + protected native long init(String detModelPath, String recModelPath,String clsModelPath, int threadNum, String cpuMode); + + protected native float[] forward(long pointer, float[] buf, float[] ddims, Bitmap originalImage); + + protected native void release(long pointer); + + private ArrayList postprocess(float[] raw) { + ArrayList results = new ArrayList(); + int begin = 0; + + while (begin < raw.length) { + int point_num = Math.round(raw[begin]); + int word_num = Math.round(raw[begin + 1]); + OcrResultModel model = parse(raw, begin + 2, point_num, word_num); + begin += 2 + 1 + point_num * 2 + word_num; + results.add(model); + } + + return results; + } + + private OcrResultModel parse(float[] raw, int begin, int pointNum, int wordNum) { + int current = begin; + OcrResultModel model = new OcrResultModel(); + model.setConfidence(raw[current]); + current++; + for (int i = 0; i < pointNum; i++) { + model.addPoints(Math.round(raw[current + i * 2]), Math.round(raw[current + i * 2 + 1])); + } + current += (pointNum * 2); + for (int i = 0; i < wordNum; i++) { + int index = Math.round(raw[current + i]); + model.addWordIndex(index); + } + Log.i("OCRPredictorNative", "word finished " + wordNum); + return model; + } + + +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OcrResultModel.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OcrResultModel.java new file mode 100644 index 0000000000..9494574e0d --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/OcrResultModel.java @@ -0,0 +1,52 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.graphics.Point; + +import java.util.ArrayList; +import java.util.List; + +public class OcrResultModel { + private List points; + private List wordIndex; + private String label; + private float confidence; + + public OcrResultModel() { + super(); + points = new ArrayList<>(); + wordIndex = new ArrayList<>(); + } + + public void addPoints(int x, int y) { + Point point = new Point(x, y); + points.add(point); + } + + public void addWordIndex(int index) { + wordIndex.add(index); + } + + public List getPoints() { + return points; + } + + public List getWordIndex() { + return wordIndex; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public float getConfidence() { + return confidence; + } + + public void setConfidence(float confidence) { + this.confidence = confidence; + } +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Predictor.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Predictor.java new file mode 100644 index 0000000000..b474d8886a --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Predictor.java @@ -0,0 +1,356 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.Point; +import android.util.Log; + +import java.io.File; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Vector; + +import static android.graphics.Color.*; + +public class Predictor { + private static final String TAG = Predictor.class.getSimpleName(); + public boolean isLoaded = false; + public int warmupIterNum = 1; + public int inferIterNum = 1; + public int cpuThreadNum = 4; + public String cpuPowerMode = "LITE_POWER_HIGH"; + public String modelPath = ""; + public String modelName = ""; + protected OCRPredictorNative paddlePredictor = null; + protected float inferenceTime = 0; + // Only for object detection + protected Vector wordLabels = new Vector(); + protected String inputColorFormat = "BGR"; + protected long[] inputShape = new long[]{1, 3, 960}; + protected float[] inputMean = new float[]{0.485f, 0.456f, 0.406f}; + protected float[] inputStd = new float[]{1.0f / 0.229f, 1.0f / 0.224f, 1.0f / 0.225f}; + protected float scoreThreshold = 0.1f; + protected Bitmap inputImage = null; + protected Bitmap outputImage = null; + protected volatile String outputResult = ""; + protected float preprocessTime = 0; + protected float postprocessTime = 0; + + + public Predictor() { + } + + public boolean init(Context appCtx, String modelPath, String labelPath) { + isLoaded = loadModel(appCtx, modelPath, cpuThreadNum, cpuPowerMode); + if (!isLoaded) { + return false; + } + isLoaded = loadLabel(appCtx, labelPath); + return isLoaded; + } + + + public boolean init(Context appCtx, String modelPath, String labelPath, int cpuThreadNum, String cpuPowerMode, + String inputColorFormat, + long[] inputShape, float[] inputMean, + float[] inputStd, float scoreThreshold) { + if (inputShape.length != 3) { + Log.e(TAG, "Size of input shape should be: 3"); + return false; + } + if (inputMean.length != inputShape[1]) { + Log.e(TAG, "Size of input mean should be: " + Long.toString(inputShape[1])); + return false; + } + if (inputStd.length != inputShape[1]) { + Log.e(TAG, "Size of input std should be: " + Long.toString(inputShape[1])); + return false; + } + if (inputShape[0] != 1) { + Log.e(TAG, "Only one batch is supported in the image classification demo, you can use any batch size in " + + "your Apps!"); + return false; + } + if (inputShape[1] != 1 && inputShape[1] != 3) { + Log.e(TAG, "Only one/three channels are supported in the image classification demo, you can use any " + + "channel size in your Apps!"); + return false; + } + if (!inputColorFormat.equalsIgnoreCase("BGR")) { + Log.e(TAG, "Only BGR color format is supported."); + return false; + } + boolean isLoaded = init(appCtx, modelPath, labelPath); + if (!isLoaded) { + return false; + } + this.inputColorFormat = inputColorFormat; + this.inputShape = inputShape; + this.inputMean = inputMean; + this.inputStd = inputStd; + this.scoreThreshold = scoreThreshold; + return true; + } + + protected boolean loadModel(Context appCtx, String modelPath, int cpuThreadNum, String cpuPowerMode) { + // Release model if exists + releaseModel(); + + // Load model + if (modelPath.isEmpty()) { + return false; + } + String realPath = modelPath; + if (!modelPath.substring(0, 1).equals("/")) { + // Read model files from custom path if the first character of mode path is '/' + // otherwise copy model to cache from assets + realPath = appCtx.getCacheDir() + "/" + modelPath; + Utils.copyDirectoryFromAssets(appCtx, modelPath, realPath); + } + if (realPath.isEmpty()) { + return false; + } + + OCRPredictorNative.Config config = new OCRPredictorNative.Config(); + config.cpuThreadNum = cpuThreadNum; + config.detModelFilename = realPath + File.separator + "ch_ppocr_mobile_v2.0_det_opt.nb"; + config.recModelFilename = realPath + File.separator + "ch_ppocr_mobile_v2.0_rec_opt.nb"; + config.clsModelFilename = realPath + File.separator + "ch_ppocr_mobile_v2.0_cls_opt.nb"; + Log.e("Predictor", "model path" + config.detModelFilename + " ; " + config.recModelFilename + ";" + config.clsModelFilename); + config.cpuPower = cpuPowerMode; + paddlePredictor = new OCRPredictorNative(config); + + this.cpuThreadNum = cpuThreadNum; + this.cpuPowerMode = cpuPowerMode; + this.modelPath = realPath; + this.modelName = realPath.substring(realPath.lastIndexOf("/") + 1); + return true; + } + + public void releaseModel() { + if (paddlePredictor != null) { + paddlePredictor.destory(); + paddlePredictor = null; + } + isLoaded = false; + cpuThreadNum = 1; + cpuPowerMode = "LITE_POWER_HIGH"; + modelPath = ""; + modelName = ""; + } + + protected boolean loadLabel(Context appCtx, String labelPath) { + wordLabels.clear(); + wordLabels.add("black"); + // Load word labels from file + try { + InputStream assetsInputStream = appCtx.getAssets().open(labelPath); + int available = assetsInputStream.available(); + byte[] lines = new byte[available]; + assetsInputStream.read(lines); + assetsInputStream.close(); + String words = new String(lines); + String[] contents = words.split("\n"); + for (String content : contents) { + wordLabels.add(content); + } + Log.i(TAG, "Word label size: " + wordLabels.size()); + } catch (Exception e) { + Log.e(TAG, e.getMessage()); + return false; + } + return true; + } + + + public boolean runModel() { + if (inputImage == null || !isLoaded()) { + return false; + } + + // Pre-process image, and feed input tensor with pre-processed data + + Bitmap scaleImage = Utils.resizeWithStep(inputImage, Long.valueOf(inputShape[2]).intValue(), 32); + + Date start = new Date(); + int channels = (int) inputShape[1]; + int width = scaleImage.getWidth(); + int height = scaleImage.getHeight(); + float[] inputData = new float[channels * width * height]; + if (channels == 3) { + int[] channelIdx = null; + if (inputColorFormat.equalsIgnoreCase("RGB")) { + channelIdx = new int[]{0, 1, 2}; + } else if (inputColorFormat.equalsIgnoreCase("BGR")) { + channelIdx = new int[]{2, 1, 0}; + } else { + Log.i(TAG, "Unknown color format " + inputColorFormat + ", only RGB and BGR color format is " + + "supported!"); + return false; + } + + int[] channelStride = new int[]{width * height, width * height * 2}; + int[] pixels=new int[width*height]; + scaleImage.getPixels(pixels,0,scaleImage.getWidth(),0,0,scaleImage.getWidth(),scaleImage.getHeight()); + for (int i = 0; i < pixels.length; i++) { + int color = pixels[i]; + float[] rgb = new float[]{(float) red(color) / 255.0f, (float) green(color) / 255.0f, + (float) blue(color) / 255.0f}; + inputData[i] = (rgb[channelIdx[0]] - inputMean[0]) / inputStd[0]; + inputData[i + channelStride[0]] = (rgb[channelIdx[1]] - inputMean[1]) / inputStd[1]; + inputData[i+ channelStride[1]] = (rgb[channelIdx[2]] - inputMean[2]) / inputStd[2]; + } + } else if (channels == 1) { + int[] pixels=new int[width*height]; + scaleImage.getPixels(pixels,0,scaleImage.getWidth(),0,0,scaleImage.getWidth(),scaleImage.getHeight()); + for (int i = 0; i < pixels.length; i++) { + int color = pixels[i]; + float gray = (float) (red(color) + green(color) + blue(color)) / 3.0f / 255.0f; + inputData[i] = (gray - inputMean[0]) / inputStd[0]; + } + } else { + Log.i(TAG, "Unsupported channel size " + Integer.toString(channels) + ", only channel 1 and 3 is " + + "supported!"); + return false; + } + float[] pixels = inputData; + Log.i(TAG, "pixels " + pixels[0] + " " + pixels[1] + " " + pixels[2] + " " + pixels[3] + + " " + pixels[pixels.length / 2] + " " + pixels[pixels.length / 2 + 1] + " " + pixels[pixels.length - 2] + " " + pixels[pixels.length - 1]); + Date end = new Date(); + preprocessTime = (float) (end.getTime() - start.getTime()); + + // Warm up + for (int i = 0; i < warmupIterNum; i++) { + paddlePredictor.runImage(inputData, width, height, channels, inputImage); + } + warmupIterNum = 0; // do not need warm + // Run inference + start = new Date(); + ArrayList results = paddlePredictor.runImage(inputData, width, height, channels, inputImage); + end = new Date(); + inferenceTime = (end.getTime() - start.getTime()) / (float) inferIterNum; + + results = postprocess(results); + Log.i(TAG, "[stat] Preprocess Time: " + preprocessTime + + " ; Inference Time: " + inferenceTime + " ;Box Size " + results.size()); + drawResults(results); + + return true; + } + + + public boolean isLoaded() { + return paddlePredictor != null && isLoaded; + } + + public String modelPath() { + return modelPath; + } + + public String modelName() { + return modelName; + } + + public int cpuThreadNum() { + return cpuThreadNum; + } + + public String cpuPowerMode() { + return cpuPowerMode; + } + + public float inferenceTime() { + return inferenceTime; + } + + public Bitmap inputImage() { + return inputImage; + } + + public Bitmap outputImage() { + return outputImage; + } + + public String outputResult() { + return outputResult; + } + + public float preprocessTime() { + return preprocessTime; + } + + public float postprocessTime() { + return postprocessTime; + } + + + public void setInputImage(Bitmap image) { + if (image == null) { + return; + } + this.inputImage = image.copy(Bitmap.Config.ARGB_8888, true); + } + + private ArrayList postprocess(ArrayList results) { + for (OcrResultModel r : results) { + StringBuffer word = new StringBuffer(); + for (int index : r.getWordIndex()) { + if (index >= 0 && index < wordLabels.size()) { + word.append(wordLabels.get(index)); + } else { + Log.e(TAG, "Word index is not in label list:" + index); + word.append("×"); + } + } + r.setLabel(word.toString()); + } + return results; + } + + private void drawResults(ArrayList results) { + StringBuffer outputResultSb = new StringBuffer(""); + for (int i = 0; i < results.size(); i++) { + OcrResultModel result = results.get(i); + StringBuilder sb = new StringBuilder(""); + sb.append(result.getLabel()); + sb.append(" ").append(result.getConfidence()); + sb.append("; Points: "); + for (Point p : result.getPoints()) { + sb.append("(").append(p.x).append(",").append(p.y).append(") "); + } + Log.i(TAG, sb.toString()); // show LOG in Logcat panel + outputResultSb.append(i + 1).append(": ").append(result.getLabel()).append("\n"); + } + outputResult = outputResultSb.toString(); + outputImage = inputImage; + Canvas canvas = new Canvas(outputImage); + Paint paintFillAlpha = new Paint(); + paintFillAlpha.setStyle(Paint.Style.FILL); + paintFillAlpha.setColor(Color.parseColor("#3B85F5")); + paintFillAlpha.setAlpha(50); + + Paint paint = new Paint(); + paint.setColor(Color.parseColor("#3B85F5")); + paint.setStrokeWidth(5); + paint.setStyle(Paint.Style.STROKE); + + for (OcrResultModel result : results) { + Path path = new Path(); + List points = result.getPoints(); + path.moveTo(points.get(0).x, points.get(0).y); + for (int i = points.size() - 1; i >= 0; i--) { + Point p = points.get(i); + path.lineTo(p.x, p.y); + } + canvas.drawPath(path, paint); + canvas.drawPath(path, paintFillAlpha); + } + } + +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/SettingsActivity.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/SettingsActivity.java new file mode 100644 index 0000000000..c26fe6ea43 --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/SettingsActivity.java @@ -0,0 +1,201 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.CheckBoxPreference; +import android.preference.EditTextPreference; +import android.preference.ListPreference; + +import androidx.appcompat.app.ActionBar; + +import java.util.ArrayList; +import java.util.List; + + +public class SettingsActivity extends AppCompatPreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { + ListPreference lpChoosePreInstalledModel = null; + CheckBoxPreference cbEnableCustomSettings = null; + EditTextPreference etModelPath = null; + EditTextPreference etLabelPath = null; + ListPreference etImagePath = null; + ListPreference lpCPUThreadNum = null; + ListPreference lpCPUPowerMode = null; + ListPreference lpInputColorFormat = null; + EditTextPreference etInputShape = null; + EditTextPreference etInputMean = null; + EditTextPreference etInputStd = null; + EditTextPreference etScoreThreshold = null; + + List preInstalledModelPaths = null; + List preInstalledLabelPaths = null; + List preInstalledImagePaths = null; + List preInstalledInputShapes = null; + List preInstalledCPUThreadNums = null; + List preInstalledCPUPowerModes = null; + List preInstalledInputColorFormats = null; + List preInstalledInputMeans = null; + List preInstalledInputStds = null; + List preInstalledScoreThresholds = null; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.settings); + ActionBar supportActionBar = getSupportActionBar(); + if (supportActionBar != null) { + supportActionBar.setDisplayHomeAsUpEnabled(true); + } + + // Initialized pre-installed models + preInstalledModelPaths = new ArrayList(); + preInstalledLabelPaths = new ArrayList(); + preInstalledImagePaths = new ArrayList(); + preInstalledInputShapes = new ArrayList(); + preInstalledCPUThreadNums = new ArrayList(); + preInstalledCPUPowerModes = new ArrayList(); + preInstalledInputColorFormats = new ArrayList(); + preInstalledInputMeans = new ArrayList(); + preInstalledInputStds = new ArrayList(); + preInstalledScoreThresholds = new ArrayList(); + // Add ssd_mobilenet_v1_pascalvoc_for_cpu + preInstalledModelPaths.add(getString(R.string.MODEL_PATH_DEFAULT)); + preInstalledLabelPaths.add(getString(R.string.LABEL_PATH_DEFAULT)); + preInstalledImagePaths.add(getString(R.string.IMAGE_PATH_DEFAULT)); + preInstalledCPUThreadNums.add(getString(R.string.CPU_THREAD_NUM_DEFAULT)); + preInstalledCPUPowerModes.add(getString(R.string.CPU_POWER_MODE_DEFAULT)); + preInstalledInputColorFormats.add(getString(R.string.INPUT_COLOR_FORMAT_DEFAULT)); + preInstalledInputShapes.add(getString(R.string.INPUT_SHAPE_DEFAULT)); + preInstalledInputMeans.add(getString(R.string.INPUT_MEAN_DEFAULT)); + preInstalledInputStds.add(getString(R.string.INPUT_STD_DEFAULT)); + preInstalledScoreThresholds.add(getString(R.string.SCORE_THRESHOLD_DEFAULT)); + + // Setup UI components + lpChoosePreInstalledModel = + (ListPreference) findPreference(getString(R.string.CHOOSE_PRE_INSTALLED_MODEL_KEY)); + String[] preInstalledModelNames = new String[preInstalledModelPaths.size()]; + for (int i = 0; i < preInstalledModelPaths.size(); i++) { + preInstalledModelNames[i] = + preInstalledModelPaths.get(i).substring(preInstalledModelPaths.get(i).lastIndexOf("/") + 1); + } + lpChoosePreInstalledModel.setEntries(preInstalledModelNames); + lpChoosePreInstalledModel.setEntryValues(preInstalledModelPaths.toArray(new String[preInstalledModelPaths.size()])); + cbEnableCustomSettings = + (CheckBoxPreference) findPreference(getString(R.string.ENABLE_CUSTOM_SETTINGS_KEY)); + etModelPath = (EditTextPreference) findPreference(getString(R.string.MODEL_PATH_KEY)); + etModelPath.setTitle("Model Path (SDCard: " + Utils.getSDCardDirectory() + ")"); + etLabelPath = (EditTextPreference) findPreference(getString(R.string.LABEL_PATH_KEY)); + etImagePath = (ListPreference) findPreference(getString(R.string.IMAGE_PATH_KEY)); + lpCPUThreadNum = + (ListPreference) findPreference(getString(R.string.CPU_THREAD_NUM_KEY)); + lpCPUPowerMode = + (ListPreference) findPreference(getString(R.string.CPU_POWER_MODE_KEY)); + lpInputColorFormat = + (ListPreference) findPreference(getString(R.string.INPUT_COLOR_FORMAT_KEY)); + etInputShape = (EditTextPreference) findPreference(getString(R.string.INPUT_SHAPE_KEY)); + etInputMean = (EditTextPreference) findPreference(getString(R.string.INPUT_MEAN_KEY)); + etInputStd = (EditTextPreference) findPreference(getString(R.string.INPUT_STD_KEY)); + etScoreThreshold = (EditTextPreference) findPreference(getString(R.string.SCORE_THRESHOLD_KEY)); + } + + private void reloadPreferenceAndUpdateUI() { + SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences(); + boolean enableCustomSettings = + sharedPreferences.getBoolean(getString(R.string.ENABLE_CUSTOM_SETTINGS_KEY), false); + String modelPath = sharedPreferences.getString(getString(R.string.CHOOSE_PRE_INSTALLED_MODEL_KEY), + getString(R.string.MODEL_PATH_DEFAULT)); + int modelIdx = lpChoosePreInstalledModel.findIndexOfValue(modelPath); + if (modelIdx >= 0 && modelIdx < preInstalledModelPaths.size()) { + if (!enableCustomSettings) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString(getString(R.string.MODEL_PATH_KEY), preInstalledModelPaths.get(modelIdx)); + editor.putString(getString(R.string.LABEL_PATH_KEY), preInstalledLabelPaths.get(modelIdx)); + editor.putString(getString(R.string.IMAGE_PATH_KEY), preInstalledImagePaths.get(modelIdx)); + editor.putString(getString(R.string.CPU_THREAD_NUM_KEY), preInstalledCPUThreadNums.get(modelIdx)); + editor.putString(getString(R.string.CPU_POWER_MODE_KEY), preInstalledCPUPowerModes.get(modelIdx)); + editor.putString(getString(R.string.INPUT_COLOR_FORMAT_KEY), + preInstalledInputColorFormats.get(modelIdx)); + editor.putString(getString(R.string.INPUT_SHAPE_KEY), preInstalledInputShapes.get(modelIdx)); + editor.putString(getString(R.string.INPUT_MEAN_KEY), preInstalledInputMeans.get(modelIdx)); + editor.putString(getString(R.string.INPUT_STD_KEY), preInstalledInputStds.get(modelIdx)); + editor.putString(getString(R.string.SCORE_THRESHOLD_KEY), + preInstalledScoreThresholds.get(modelIdx)); + editor.apply(); + } + lpChoosePreInstalledModel.setSummary(modelPath); + } + cbEnableCustomSettings.setChecked(enableCustomSettings); + etModelPath.setEnabled(enableCustomSettings); + etLabelPath.setEnabled(enableCustomSettings); + etImagePath.setEnabled(enableCustomSettings); + lpCPUThreadNum.setEnabled(enableCustomSettings); + lpCPUPowerMode.setEnabled(enableCustomSettings); + lpInputColorFormat.setEnabled(enableCustomSettings); + etInputShape.setEnabled(enableCustomSettings); + etInputMean.setEnabled(enableCustomSettings); + etInputStd.setEnabled(enableCustomSettings); + etScoreThreshold.setEnabled(enableCustomSettings); + modelPath = sharedPreferences.getString(getString(R.string.MODEL_PATH_KEY), + getString(R.string.MODEL_PATH_DEFAULT)); + String labelPath = sharedPreferences.getString(getString(R.string.LABEL_PATH_KEY), + getString(R.string.LABEL_PATH_DEFAULT)); + String imagePath = sharedPreferences.getString(getString(R.string.IMAGE_PATH_KEY), + getString(R.string.IMAGE_PATH_DEFAULT)); + String cpuThreadNum = sharedPreferences.getString(getString(R.string.CPU_THREAD_NUM_KEY), + getString(R.string.CPU_THREAD_NUM_DEFAULT)); + String cpuPowerMode = sharedPreferences.getString(getString(R.string.CPU_POWER_MODE_KEY), + getString(R.string.CPU_POWER_MODE_DEFAULT)); + String inputColorFormat = sharedPreferences.getString(getString(R.string.INPUT_COLOR_FORMAT_KEY), + getString(R.string.INPUT_COLOR_FORMAT_DEFAULT)); + String inputShape = sharedPreferences.getString(getString(R.string.INPUT_SHAPE_KEY), + getString(R.string.INPUT_SHAPE_DEFAULT)); + String inputMean = sharedPreferences.getString(getString(R.string.INPUT_MEAN_KEY), + getString(R.string.INPUT_MEAN_DEFAULT)); + String inputStd = sharedPreferences.getString(getString(R.string.INPUT_STD_KEY), + getString(R.string.INPUT_STD_DEFAULT)); + String scoreThreshold = sharedPreferences.getString(getString(R.string.SCORE_THRESHOLD_KEY), + getString(R.string.SCORE_THRESHOLD_DEFAULT)); + etModelPath.setSummary(modelPath); + etModelPath.setText(modelPath); + etLabelPath.setSummary(labelPath); + etLabelPath.setText(labelPath); + etImagePath.setSummary(imagePath); + etImagePath.setValue(imagePath); + lpCPUThreadNum.setValue(cpuThreadNum); + lpCPUThreadNum.setSummary(cpuThreadNum); + lpCPUPowerMode.setValue(cpuPowerMode); + lpCPUPowerMode.setSummary(cpuPowerMode); + lpInputColorFormat.setValue(inputColorFormat); + lpInputColorFormat.setSummary(inputColorFormat); + etInputShape.setSummary(inputShape); + etInputShape.setText(inputShape); + etInputMean.setSummary(inputMean); + etInputMean.setText(inputMean); + etInputStd.setSummary(inputStd); + etInputStd.setText(inputStd); + etScoreThreshold.setText(scoreThreshold); + etScoreThreshold.setSummary(scoreThreshold); + } + + @Override + protected void onResume() { + super.onResume(); + getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); + reloadPreferenceAndUpdateUI(); + } + + @Override + protected void onPause() { + super.onPause(); + getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key.equals(getString(R.string.CHOOSE_PRE_INSTALLED_MODEL_KEY))) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putBoolean(getString(R.string.ENABLE_CUSTOM_SETTINGS_KEY), false); + editor.commit(); + } + reloadPreferenceAndUpdateUI(); + } +} diff --git a/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Utils.java b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Utils.java new file mode 100644 index 0000000000..ef46805760 --- /dev/null +++ b/deploy/android_demo/app/src/main/java/com/baidu/paddle/lite/demo/ocr/Utils.java @@ -0,0 +1,159 @@ +package com.baidu.paddle.lite.demo.ocr; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.media.ExifInterface; +import android.os.Environment; + +import java.io.*; + +public class Utils { + private static final String TAG = Utils.class.getSimpleName(); + + public static void copyFileFromAssets(Context appCtx, String srcPath, String dstPath) { + if (srcPath.isEmpty() || dstPath.isEmpty()) { + return; + } + InputStream is = null; + OutputStream os = null; + try { + is = new BufferedInputStream(appCtx.getAssets().open(srcPath)); + os = new BufferedOutputStream(new FileOutputStream(new File(dstPath))); + byte[] buffer = new byte[1024]; + int length = 0; + while ((length = is.read(buffer)) != -1) { + os.write(buffer, 0, length); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + os.close(); + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + public static void copyDirectoryFromAssets(Context appCtx, String srcDir, String dstDir) { + if (srcDir.isEmpty() || dstDir.isEmpty()) { + return; + } + try { + if (!new File(dstDir).exists()) { + new File(dstDir).mkdirs(); + } + for (String fileName : appCtx.getAssets().list(srcDir)) { + String srcSubPath = srcDir + File.separator + fileName; + String dstSubPath = dstDir + File.separator + fileName; + if (new File(srcSubPath).isDirectory()) { + copyDirectoryFromAssets(appCtx, srcSubPath, dstSubPath); + } else { + copyFileFromAssets(appCtx, srcSubPath, dstSubPath); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static float[] parseFloatsFromString(String string, String delimiter) { + String[] pieces = string.trim().toLowerCase().split(delimiter); + float[] floats = new float[pieces.length]; + for (int i = 0; i < pieces.length; i++) { + floats[i] = Float.parseFloat(pieces[i].trim()); + } + return floats; + } + + public static long[] parseLongsFromString(String string, String delimiter) { + String[] pieces = string.trim().toLowerCase().split(delimiter); + long[] longs = new long[pieces.length]; + for (int i = 0; i < pieces.length; i++) { + longs[i] = Long.parseLong(pieces[i].trim()); + } + return longs; + } + + public static String getSDCardDirectory() { + return Environment.getExternalStorageDirectory().getAbsolutePath(); + } + + public static boolean isSupportedNPU() { + return false; + // String hardware = android.os.Build.HARDWARE; + // return hardware.equalsIgnoreCase("kirin810") || hardware.equalsIgnoreCase("kirin990"); + } + + public static Bitmap resizeWithStep(Bitmap bitmap, int maxLength, int step) { + int width = bitmap.getWidth(); + int height = bitmap.getHeight(); + int maxWH = Math.max(width, height); + float ratio = 1; + int newWidth = width; + int newHeight = height; + if (maxWH > maxLength) { + ratio = maxLength * 1.0f / maxWH; + newWidth = (int) Math.floor(ratio * width); + newHeight = (int) Math.floor(ratio * height); + } + + newWidth = newWidth - newWidth % step; + if (newWidth == 0) { + newWidth = step; + } + newHeight = newHeight - newHeight % step; + if (newHeight == 0) { + newHeight = step; + } + return Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, true); + } + + public static Bitmap rotateBitmap(Bitmap bitmap, int orientation) { + + Matrix matrix = new Matrix(); + switch (orientation) { + case ExifInterface.ORIENTATION_NORMAL: + return bitmap; + case ExifInterface.ORIENTATION_FLIP_HORIZONTAL: + matrix.setScale(-1, 1); + break; + case ExifInterface.ORIENTATION_ROTATE_180: + matrix.setRotate(180); + break; + case ExifInterface.ORIENTATION_FLIP_VERTICAL: + matrix.setRotate(180); + matrix.postScale(-1, 1); + break; + case ExifInterface.ORIENTATION_TRANSPOSE: + matrix.setRotate(90); + matrix.postScale(-1, 1); + break; + case ExifInterface.ORIENTATION_ROTATE_90: + matrix.setRotate(90); + break; + case ExifInterface.ORIENTATION_TRANSVERSE: + matrix.setRotate(-90); + matrix.postScale(-1, 1); + break; + case ExifInterface.ORIENTATION_ROTATE_270: + matrix.setRotate(-90); + break; + default: + return bitmap; + } + try { + Bitmap bmRotated = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); + bitmap.recycle(); + return bmRotated; + } + catch (OutOfMemoryError e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/deploy/android_demo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/deploy/android_demo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000000..1f6bb29060 --- /dev/null +++ b/deploy/android_demo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/deploy/android_demo/app/src/main/res/drawable/ic_launcher_background.xml b/deploy/android_demo/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..0d025f9bf6 --- /dev/null +++ b/deploy/android_demo/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deploy/android_demo/app/src/main/res/layout/activity_main.xml b/deploy/android_demo/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000..5caf568ee8 --- /dev/null +++ b/deploy/android_demo/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,148 @@ + + + + + + + + + +