aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--build_history/blacklist.txt2
-rw-r--r--build_scripts/config.py4
-rw-r--r--build_scripts/main.py4
-rw-r--r--build_scripts/platforms/linux.py12
-rw-r--r--build_scripts/platforms/macos.py3
-rw-r--r--build_scripts/platforms/unix.py15
-rw-r--r--build_scripts/platforms/windows_desktop.py11
-rw-r--r--build_scripts/utils.py58
-rw-r--r--build_scripts/wheel_files.py2
-rw-r--r--build_scripts/wheel_override.py2
-rw-r--r--coin_test_instructions.py7
-rw-r--r--create_wheels.py2
-rw-r--r--doc/changelogs/changes-6.3.272
-rw-r--r--examples/bluetooth/btscanner/device.py4
-rw-r--r--examples/bluetooth/heartrate_game/bluetoothbaseclass.py40
-rw-r--r--examples/bluetooth/heartrate_game/connectionhandler.py51
-rw-r--r--examples/bluetooth/heartrate_game/devicefinder.py122
-rw-r--r--examples/bluetooth/heartrate_game/devicehandler.py307
-rw-r--r--examples/bluetooth/heartrate_game/deviceinfo.py38
-rw-r--r--examples/bluetooth/heartrate_game/doc/heartrate_game.rst9
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_game.pyproject22
-rw-r--r--examples/bluetooth/heartrate_game/heartrate_global.py6
-rw-r--r--examples/bluetooth/heartrate_game/main.py53
-rw-r--r--examples/bluetooth/heartrate_game/qml/App.qml83
-rw-r--r--examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml74
-rw-r--r--examples/bluetooth/heartrate_game/qml/BottomLine.qml12
-rw-r--r--examples/bluetooth/heartrate_game/qml/Connect.qml141
-rw-r--r--examples/bluetooth/heartrate_game/qml/GameButton.qml41
-rw-r--r--examples/bluetooth/heartrate_game/qml/GamePage.qml46
-rw-r--r--examples/bluetooth/heartrate_game/qml/GameSettings.qml54
-rw-r--r--examples/bluetooth/heartrate_game/qml/Measure.qml197
-rw-r--r--examples/bluetooth/heartrate_game/qml/SplashScreen.qml43
-rw-r--r--examples/bluetooth/heartrate_game/qml/Stats.qml52
-rw-r--r--examples/bluetooth/heartrate_game/qml/StatsLabel.qml35
-rw-r--r--examples/bluetooth/heartrate_game/qml/TitleBar.qml50
-rw-r--r--examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.pngbin0 -> 6143 bytes
-rw-r--r--examples/bluetooth/heartrate_game/qml/images/heart.pngbin0 -> 2664 bytes
-rw-r--r--examples/bluetooth/heartrate_game/qml/images/logo.pngbin0 -> 31915 bytes
-rw-r--r--examples/bluetooth/heartrate_game/qml/main.qml63
-rw-r--r--examples/bluetooth/heartrate_game/qml/qmldir1
-rw-r--r--examples/bluetooth/heartrate_server/doc/heartrate_server.rst8
-rw-r--r--examples/bluetooth/heartrate_server/heartrate_server.py94
-rw-r--r--examples/bluetooth/heartrate_server/heartrate_server.pyproject3
-rw-r--r--examples/charts/chartthemes/main.py39
-rw-r--r--examples/charts/donutbreakdown/donutbreakdown.py3
-rw-r--r--examples/charts/legend/legend.py10
-rw-r--r--examples/charts/nesteddonuts/nesteddonuts.py3
-rw-r--r--examples/charts/percentbarchart/percentbarchart.py3
-rw-r--r--examples/corelib/settingseditor/settingseditor.py11
-rw-r--r--examples/corelib/threads/mandelbrot.py3
-rw-r--r--examples/datavisualization/surface/surfacegraph.py14
-rw-r--r--examples/datavisualization/surface_model_numpy/surfacegraph.py14
-rw-r--r--examples/datavisualization/surface_numpy/surfacegraph.py14
-rw-r--r--examples/gui/analogclock/analogclock.pyproject3
-rw-r--r--examples/gui/analogclock/doc/analogclock.rst8
-rw-r--r--examples/gui/analogclock/main.py77
-rw-r--r--examples/multimedia/audiooutput/audiooutput.py2
-rw-r--r--examples/multimedia/player/player.py3
-rw-r--r--examples/network/googlesuggest/googlesuggest.py2
-rw-r--r--examples/opengl/contextinfo/contextinfo.py4
-rw-r--r--examples/opengl/hellogl2/hellogl2.py7
-rw-r--r--examples/opengl/threadedqopenglwidget/glwidget.py1
-rw-r--r--examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst4
-rw-r--r--examples/pdf/quickpdfviewer/main.py49
-rw-r--r--examples/pdf/quickpdfviewer/quickpdfviewer.pyproject3
-rw-r--r--examples/pdf/quickpdfviewer/rc_viewer.py5505
-rw-r--r--examples/pdf/quickpdfviewer/resources/document-open.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-clear.svg15
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-copy.svg15
-rw-r--r--examples/pdf/quickpdfviewer/resources/edit-select-all.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-down-search.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-next-view-page.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/go-up-search.svg8
-rw-r--r--examples/pdf/quickpdfviewer/resources/rotate-left.svg6
-rw-r--r--examples/pdf/quickpdfviewer/resources/rotate-right.svg6
-rw-r--r--examples/pdf/quickpdfviewer/resources/test.pdfbin0 -> 76633 bytes
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-in.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-original.svg13
-rw-r--r--examples/pdf/quickpdfviewer/resources/zoom-out.svg13
-rw-r--r--examples/pdf/quickpdfviewer/viewer.qml307
-rw-r--r--examples/pdf/quickpdfviewer/viewer.qrc20
-rw-r--r--examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst5
-rw-r--r--examples/pdfwidgets/pdfviewer/images/document-open.svgzbin0 -> 4276 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgzbin0 -> 12615 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-next-view.svgzbin0 -> 6360 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgzbin0 -> 12602 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/go-previous-view.svgzbin0 -> 6545 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgzbin0 -> 6121 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgzbin0 -> 6109 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-in.svgzbin0 -> 6033 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-original.svgzbin0 -> 5541 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-out.svgzbin0 -> 5420 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/images/zoom-previous.svgzbin0 -> 5665 bytes
-rw-r--r--examples/pdfwidgets/pdfviewer/main.py27
-rw-r--r--examples/pdfwidgets/pdfviewer/mainwindow.py141
-rw-r--r--examples/pdfwidgets/pdfviewer/mainwindow.ui327
-rw-r--r--examples/pdfwidgets/pdfviewer/pdfviewer.pyproject4
-rw-r--r--examples/pdfwidgets/pdfviewer/resources.qrc11
-rw-r--r--examples/pdfwidgets/pdfviewer/resources_rc.py3468
-rw-r--r--examples/pdfwidgets/pdfviewer/ui_mainwindow.py259
-rw-r--r--examples/pdfwidgets/pdfviewer/zoomselector.py59
-rw-r--r--examples/qml/editingmodel/MovingRectangle.qml (renamed from examples/declarative/editingmodel/MovingRectangle.qml)0
-rw-r--r--examples/qml/editingmodel/doc/editingmodel.rst (renamed from examples/declarative/editingmodel/doc/editingmodel.rst)0
-rw-r--r--examples/qml/editingmodel/doc/qabstractlistmodelqml.png (renamed from examples/declarative/editingmodel/doc/qabstractlistmodelqml.png)bin45810 -> 45810 bytes
-rw-r--r--examples/qml/editingmodel/main.py (renamed from examples/declarative/editingmodel/main.py)0
-rw-r--r--examples/qml/editingmodel/main.pyproject (renamed from examples/declarative/editingmodel/main.pyproject)0
-rw-r--r--examples/qml/editingmodel/main.qml (renamed from examples/declarative/editingmodel/main.qml)0
-rw-r--r--examples/qml/editingmodel/model.py (renamed from examples/declarative/editingmodel/model.py)0
-rw-r--r--examples/qml/referenceexamples/adding/adding.pyproject (renamed from examples/declarative/referenceexamples/adding/adding.pyproject)0
-rw-r--r--examples/qml/referenceexamples/adding/doc/adding.rst (renamed from examples/declarative/referenceexamples/adding/doc/adding.rst)0
-rw-r--r--examples/qml/referenceexamples/adding/example.qml (renamed from examples/declarative/referenceexamples/adding/example.qml)0
-rw-r--r--examples/qml/referenceexamples/adding/main.py (renamed from examples/declarative/referenceexamples/adding/main.py)0
-rw-r--r--examples/qml/referenceexamples/adding/person.py (renamed from examples/declarative/referenceexamples/adding/person.py)0
-rw-r--r--examples/qml/referenceexamples/attached/attached.pyproject (renamed from examples/declarative/referenceexamples/attached/attached.pyproject)0
-rw-r--r--examples/qml/referenceexamples/attached/birthdayparty.py (renamed from examples/declarative/referenceexamples/attached/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/attached/doc/attached.rst (renamed from examples/declarative/referenceexamples/attached/doc/attached.rst)0
-rw-r--r--examples/qml/referenceexamples/attached/example.qml (renamed from examples/declarative/referenceexamples/attached/example.qml)0
-rw-r--r--examples/qml/referenceexamples/attached/main.py (renamed from examples/declarative/referenceexamples/attached/main.py)0
-rw-r--r--examples/qml/referenceexamples/attached/person.py (renamed from examples/declarative/referenceexamples/attached/person.py)0
-rw-r--r--examples/qml/referenceexamples/binding/binding.pyproject (renamed from examples/declarative/referenceexamples/binding/binding.pyproject)0
-rw-r--r--examples/qml/referenceexamples/binding/birthdayparty.py (renamed from examples/declarative/referenceexamples/binding/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/binding/doc/binding.rst (renamed from examples/declarative/referenceexamples/binding/doc/binding.rst)0
-rw-r--r--examples/qml/referenceexamples/binding/example.qml (renamed from examples/declarative/referenceexamples/binding/example.qml)0
-rw-r--r--examples/qml/referenceexamples/binding/happybirthdaysong.py (renamed from examples/declarative/referenceexamples/binding/happybirthdaysong.py)0
-rw-r--r--examples/qml/referenceexamples/binding/main.py (renamed from examples/declarative/referenceexamples/binding/main.py)0
-rw-r--r--examples/qml/referenceexamples/binding/person.py (renamed from examples/declarative/referenceexamples/binding/person.py)0
-rw-r--r--examples/qml/referenceexamples/coercion/birthdayparty.py (renamed from examples/declarative/referenceexamples/coercion/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/coercion/coercion.pyproject (renamed from examples/declarative/referenceexamples/coercion/coercion.pyproject)0
-rw-r--r--examples/qml/referenceexamples/coercion/doc/coercion.rst (renamed from examples/declarative/referenceexamples/coercion/doc/coercion.rst)0
-rw-r--r--examples/qml/referenceexamples/coercion/example.qml (renamed from examples/declarative/referenceexamples/coercion/example.qml)0
-rw-r--r--examples/qml/referenceexamples/coercion/main.py (renamed from examples/declarative/referenceexamples/coercion/main.py)0
-rw-r--r--examples/qml/referenceexamples/coercion/person.py (renamed from examples/declarative/referenceexamples/coercion/person.py)0
-rw-r--r--examples/qml/referenceexamples/default/birthdayparty.py (renamed from examples/declarative/referenceexamples/default/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/default/default.pyproject (renamed from examples/declarative/referenceexamples/default/default.pyproject)0
-rw-r--r--examples/qml/referenceexamples/default/doc/default.rst (renamed from examples/declarative/referenceexamples/default/doc/default.rst)0
-rw-r--r--examples/qml/referenceexamples/default/example.qml (renamed from examples/declarative/referenceexamples/default/example.qml)0
-rw-r--r--examples/qml/referenceexamples/default/main.py (renamed from examples/declarative/referenceexamples/default/main.py)0
-rw-r--r--examples/qml/referenceexamples/default/person.py (renamed from examples/declarative/referenceexamples/default/person.py)0
-rw-r--r--examples/qml/referenceexamples/extended/doc/extended.rst (renamed from examples/declarative/referenceexamples/extended/doc/extended.rst)0
-rw-r--r--examples/qml/referenceexamples/extended/example.qml (renamed from examples/declarative/referenceexamples/extended/example.qml)0
-rw-r--r--examples/qml/referenceexamples/extended/extended.pyproject (renamed from examples/declarative/referenceexamples/extended/extended.pyproject)0
-rw-r--r--examples/qml/referenceexamples/extended/main.py (renamed from examples/declarative/referenceexamples/extended/main.py)0
-rw-r--r--examples/qml/referenceexamples/grouped/birthdayparty.py (renamed from examples/declarative/referenceexamples/grouped/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/grouped/doc/grouped.rst (renamed from examples/declarative/referenceexamples/grouped/doc/grouped.rst)0
-rw-r--r--examples/qml/referenceexamples/grouped/example.qml (renamed from examples/declarative/referenceexamples/grouped/example.qml)0
-rw-r--r--examples/qml/referenceexamples/grouped/grouped.pyproject (renamed from examples/declarative/referenceexamples/grouped/grouped.pyproject)0
-rw-r--r--examples/qml/referenceexamples/grouped/main.py (renamed from examples/declarative/referenceexamples/grouped/main.py)0
-rw-r--r--examples/qml/referenceexamples/grouped/person.py (renamed from examples/declarative/referenceexamples/grouped/person.py)0
-rw-r--r--examples/qml/referenceexamples/methods/birthdayparty.py (renamed from examples/declarative/referenceexamples/methods/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/methods/doc/methods.rst (renamed from examples/declarative/referenceexamples/methods/doc/methods.rst)0
-rw-r--r--examples/qml/referenceexamples/methods/example.qml (renamed from examples/declarative/referenceexamples/methods/example.qml)0
-rw-r--r--examples/qml/referenceexamples/methods/main.py (renamed from examples/declarative/referenceexamples/methods/main.py)0
-rw-r--r--examples/qml/referenceexamples/methods/methods.pyproject (renamed from examples/declarative/referenceexamples/methods/methods.pyproject)0
-rw-r--r--examples/qml/referenceexamples/methods/person.py (renamed from examples/declarative/referenceexamples/methods/person.py)0
-rw-r--r--examples/qml/referenceexamples/properties/birthdayparty.py (renamed from examples/declarative/referenceexamples/properties/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/properties/doc/properties.rst (renamed from examples/declarative/referenceexamples/properties/doc/properties.rst)0
-rw-r--r--examples/qml/referenceexamples/properties/example.qml (renamed from examples/declarative/referenceexamples/properties/example.qml)0
-rw-r--r--examples/qml/referenceexamples/properties/main.py (renamed from examples/declarative/referenceexamples/properties/main.py)0
-rw-r--r--examples/qml/referenceexamples/properties/person.py (renamed from examples/declarative/referenceexamples/properties/person.py)0
-rw-r--r--examples/qml/referenceexamples/properties/properties.pyproject (renamed from examples/declarative/referenceexamples/properties/properties.pyproject)0
-rw-r--r--examples/qml/referenceexamples/valuesource/birthdayparty.py (renamed from examples/declarative/referenceexamples/valuesource/birthdayparty.py)0
-rw-r--r--examples/qml/referenceexamples/valuesource/doc/valuesource.rst (renamed from examples/declarative/referenceexamples/valuesource/doc/valuesource.rst)0
-rw-r--r--examples/qml/referenceexamples/valuesource/example.qml (renamed from examples/declarative/referenceexamples/valuesource/example.qml)0
-rw-r--r--examples/qml/referenceexamples/valuesource/happybirthdaysong.py (renamed from examples/declarative/referenceexamples/valuesource/happybirthdaysong.py)0
-rw-r--r--examples/qml/referenceexamples/valuesource/main.py (renamed from examples/declarative/referenceexamples/valuesource/main.py)0
-rw-r--r--examples/qml/referenceexamples/valuesource/person.py (renamed from examples/declarative/referenceexamples/valuesource/person.py)0
-rw-r--r--examples/qml/referenceexamples/valuesource/valuesource.pyproject (renamed from examples/declarative/referenceexamples/valuesource/valuesource.pyproject)0
-rw-r--r--examples/qml/signals/pytoqml1/main.py (renamed from examples/declarative/signals/pytoqml1/main.py)0
-rw-r--r--examples/qml/signals/pytoqml1/pytoqml1.pyproject (renamed from examples/declarative/signals/pytoqml1/pytoqml1.pyproject)0
-rw-r--r--examples/qml/signals/pytoqml1/view.qml (renamed from examples/declarative/signals/pytoqml1/view.qml)0
-rw-r--r--examples/qml/signals/pytoqml2/main.py (renamed from examples/declarative/signals/pytoqml2/main.py)0
-rw-r--r--examples/qml/signals/pytoqml2/pytoqml2.pyproject (renamed from examples/declarative/signals/pytoqml2/pytoqml2.pyproject)0
-rw-r--r--examples/qml/signals/pytoqml2/view.qml (renamed from examples/declarative/signals/pytoqml2/view.qml)0
-rw-r--r--examples/qml/signals/qmltopy1/main.py (renamed from examples/declarative/signals/qmltopy1/main.py)0
-rw-r--r--examples/qml/signals/qmltopy1/qmltopy1.pyproject (renamed from examples/declarative/signals/qmltopy1/qmltopy1.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy1/view.qml (renamed from examples/declarative/signals/qmltopy1/view.qml)0
-rw-r--r--examples/qml/signals/qmltopy2/main.py (renamed from examples/declarative/signals/qmltopy2/main.py)0
-rw-r--r--examples/qml/signals/qmltopy2/qmltopy2.pyproject (renamed from examples/declarative/signals/qmltopy2/qmltopy2.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy2/view.qml (renamed from examples/declarative/signals/qmltopy2/view.qml)0
-rw-r--r--examples/qml/signals/qmltopy3/main.py (renamed from examples/declarative/signals/qmltopy3/main.py)0
-rw-r--r--examples/qml/signals/qmltopy3/qmltopy3.pyproject (renamed from examples/declarative/signals/qmltopy3/qmltopy3.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy3/view.qml (renamed from examples/declarative/signals/qmltopy3/view.qml)0
-rw-r--r--examples/qml/signals/qmltopy4/main.py (renamed from examples/declarative/signals/qmltopy4/main.py)0
-rw-r--r--examples/qml/signals/qmltopy4/qmltopy4.pyproject (renamed from examples/declarative/signals/qmltopy4/qmltopy4.pyproject)0
-rw-r--r--examples/qml/signals/qmltopy4/view.qml (renamed from examples/declarative/signals/qmltopy4/view.qml)0
-rw-r--r--examples/qml/textproperties/doc/textproperties.png (renamed from examples/declarative/textproperties/doc/textproperties.png)bin14082 -> 14082 bytes
-rw-r--r--examples/qml/textproperties/doc/textproperties.rst (renamed from examples/declarative/textproperties/doc/textproperties.rst)0
-rw-r--r--examples/qml/textproperties/main.py (renamed from examples/declarative/textproperties/main.py)0
-rw-r--r--examples/qml/textproperties/textproperties.pyproject (renamed from examples/declarative/textproperties/textproperties.pyproject)0
-rw-r--r--examples/qml/textproperties/view.qml (renamed from examples/declarative/textproperties/view.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter1-basics/app.qml (renamed from examples/declarative/extending/chapter1-basics/app.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter1-basics/basics.py (renamed from examples/declarative/extending/chapter1-basics/basics.py)0
-rw-r--r--examples/qml/tutorials/extending/chapter1-basics/chapter1-basics.pyproject (renamed from examples/declarative/extending/chapter1-basics/chapter1-basics.pyproject)0
-rw-r--r--examples/qml/tutorials/extending/chapter2-methods/app.qml (renamed from examples/declarative/extending/chapter2-methods/app.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter2-methods/chapter2-methods.pyproject (renamed from examples/declarative/extending/chapter2-methods/chapter2-methods.pyproject)0
-rw-r--r--examples/qml/tutorials/extending/chapter2-methods/methods.py (renamed from examples/declarative/extending/chapter2-methods/methods.py)0
-rw-r--r--examples/qml/tutorials/extending/chapter3-bindings/app.qml (renamed from examples/declarative/extending/chapter3-bindings/app.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter3-bindings/bindings.py (renamed from examples/declarative/extending/chapter3-bindings/bindings.py)0
-rw-r--r--examples/qml/tutorials/extending/chapter3-bindings/chapter3-bindings.pyproject (renamed from examples/declarative/extending/chapter3-bindings/chapter3-bindings.pyproject)0
-rw-r--r--examples/qml/tutorials/extending/chapter4-customPropertyTypes/app.qml (renamed from examples/declarative/extending/chapter4-customPropertyTypes/app.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject (renamed from examples/declarative/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pyproject)0
-rw-r--r--examples/qml/tutorials/extending/chapter4-customPropertyTypes/customPropertyTypes.py (renamed from examples/declarative/extending/chapter4-customPropertyTypes/customPropertyTypes.py)0
-rw-r--r--examples/qml/tutorials/extending/chapter5-listproperties/app.qml (renamed from examples/declarative/extending/chapter5-listproperties/app.qml)0
-rw-r--r--examples/qml/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pyproject (renamed from examples/declarative/extending/chapter5-listproperties/chapter5-listproperties.pyproject)0
-rw-r--r--examples/qml/tutorials/extending/chapter5-listproperties/listproperties.py (renamed from examples/declarative/extending/chapter5-listproperties/listproperties.py)0
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/Charts/piechart.py40
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/Charts/pieslice.py52
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/Charts/plugins.pngbin0 -> 5014 bytes
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/app.qml32
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/chapter6-plugins.pyproject3
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/doc/chapter6-plugins.rst21
-rw-r--r--examples/qml/tutorials/extending/chapter6-plugins/doc/plugins.pngbin0 -> 5014 bytes
-rw-r--r--examples/qml/usingmodel/doc/usingmodel.png (renamed from examples/declarative/usingmodel/doc/usingmodel.png)bin2791 -> 2791 bytes
-rw-r--r--examples/qml/usingmodel/doc/usingmodel.rst (renamed from examples/declarative/usingmodel/doc/usingmodel.rst)0
-rw-r--r--examples/qml/usingmodel/usingmodel.py (renamed from examples/declarative/usingmodel/usingmodel.py)0
-rw-r--r--examples/qml/usingmodel/usingmodel.pyproject (renamed from examples/declarative/usingmodel/usingmodel.pyproject)0
-rw-r--r--examples/qml/usingmodel/view.qml (renamed from examples/declarative/usingmodel/view.qml)0
-rw-r--r--examples/quick/models/objectlistmodel/doc/objectlistmodel.png (renamed from examples/declarative/objectlistmodel/doc/objectlistmodel.png)bin1327 -> 1327 bytes
-rw-r--r--examples/quick/models/objectlistmodel/doc/objectlistmodel.rst (renamed from examples/declarative/objectlistmodel/doc/objectlistmodel.rst)0
-rw-r--r--examples/quick/models/objectlistmodel/objectlistmodel.py (renamed from examples/declarative/objectlistmodel/objectlistmodel.py)0
-rw-r--r--examples/quick/models/objectlistmodel/objectlistmodel.pyproject (renamed from examples/declarative/objectlistmodel/objectlistmodel.pyproject)0
-rw-r--r--examples/quick/models/objectlistmodel/view.qml (renamed from examples/declarative/objectlistmodel/view.qml)0
-rw-r--r--examples/quick/models/stringlistmodel/doc/stringlistmodel.png (renamed from examples/declarative/stringlistmodel/doc/stringlistmodel.png)bin1978 -> 1978 bytes
-rw-r--r--examples/quick/models/stringlistmodel/doc/stringlistmodel.rst (renamed from examples/declarative/stringlistmodel/doc/stringlistmodel.rst)0
-rw-r--r--examples/quick/models/stringlistmodel/stringlistmodel.py (renamed from examples/declarative/stringlistmodel/stringlistmodel.py)0
-rw-r--r--examples/quick/models/stringlistmodel/stringlistmodel.pyproject (renamed from examples/declarative/stringlistmodel/stringlistmodel.pyproject)0
-rw-r--r--examples/quick/models/stringlistmodel/view.qml (renamed from examples/declarative/stringlistmodel/view.qml)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/cuberenderer.py (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/cuberenderer.py)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/demo.qml (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/demo.qml)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/doc/rendercontrol_opengl.rst)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/main.py (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/main.py)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/rendercontrol_opengl.pyproject)0
-rw-r--r--examples/quick/rendercontrol/rendercontrol_opengl/window_singlethreaded.py (renamed from examples/declarative/rendercontrol/rendercontrol_opengl/window_singlethreaded.py)6
-rw-r--r--examples/quick/scenegraph/openglunderqml/doc/openglunderqml.rst (renamed from examples/declarative/openglunderqml/doc/openglunderqml.rst)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/doc/squircle.png (renamed from examples/declarative/openglunderqml/doc/squircle.png)bin37963 -> 37963 bytes
-rw-r--r--examples/quick/scenegraph/openglunderqml/main.py (renamed from examples/declarative/openglunderqml/main.py)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/main.qml (renamed from examples/declarative/openglunderqml/main.qml)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/openglunderqml.pyproject (renamed from examples/declarative/openglunderqml/openglunderqml.pyproject)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/squircle.py (renamed from examples/declarative/openglunderqml/squircle.py)0
-rw-r--r--examples/quick/scenegraph/openglunderqml/squirclerenderer.py (renamed from examples/declarative/openglunderqml/squirclerenderer.py)0
-rw-r--r--examples/quick/shared/Button.qml50
-rw-r--r--examples/quick/shared/CheckBox.qml59
-rw-r--r--examples/quick/shared/FlickrRssModel.qml45
-rw-r--r--examples/quick/shared/Images.qml14
-rw-r--r--examples/quick/shared/Label.qml9
-rw-r--r--examples/quick/shared/LauncherList.qml205
-rw-r--r--examples/quick/shared/README11
-rw-r--r--examples/quick/shared/SimpleLauncherDelegate.qml96
-rw-r--r--examples/quick/shared/Slider.qml82
-rw-r--r--examples/quick/shared/TabSet.qml69
-rw-r--r--examples/quick/shared/TextField.qml43
-rw-r--r--examples/quick/shared/images/back.pngbin0 -> 1590 bytes
-rw-r--r--examples/quick/shared/images/checkmark.pngbin0 -> 809 bytes
-rw-r--r--examples/quick/shared/images/next.pngbin0 -> 1371 bytes
-rw-r--r--examples/quick/shared/images/qt-logo.pngbin0 -> 6208 bytes
-rw-r--r--examples/quick/shared/images/slider_handle.pngbin0 -> 887 bytes
-rw-r--r--examples/quick/shared/images/tab.pngbin0 -> 309 bytes
-rw-r--r--examples/quick/shared/qmldir11
-rw-r--r--examples/quick/shared/quick_shared.qrc15
-rw-r--r--examples/quick/shared/shared.qrc21
-rw-r--r--examples/quick/shared/shared_rc.py1884
-rw-r--r--examples/quick/window/AllScreens.qml42
-rw-r--r--examples/quick/window/CurrentScreen.qml83
-rw-r--r--examples/quick/window/Splash.qml42
-rw-r--r--examples/quick/window/doc/window.pngbin0 -> 9863 bytes
-rw-r--r--examples/quick/window/doc/window.rst35
-rw-r--r--examples/quick/window/main.py37
-rw-r--r--examples/quick/window/resources/icon.icnsbin0 -> 59662 bytes
-rw-r--r--examples/quick/window/resources/icon.icobin0 -> 11825 bytes
-rw-r--r--examples/quick/window/resources/icon.svg208
-rw-r--r--examples/quick/window/resources/icon64.pngbin0 -> 3004 bytes
-rw-r--r--examples/quick/window/window.pyproject3
-rw-r--r--examples/quick/window/window.qml151
-rw-r--r--examples/quick/window/window.qrc8
-rw-r--r--examples/quick/window/window_rc.py328
-rw-r--r--examples/samplebinding/CMakeLists.txt22
-rw-r--r--examples/scriptableapplication/CMakeLists.txt16
-rw-r--r--examples/serialport/terminal/console.py49
-rw-r--r--examples/serialport/terminal/doc/terminal.rst9
-rw-r--r--examples/serialport/terminal/images/application-exit.pngbin0 -> 11200 bytes
-rw-r--r--examples/serialport/terminal/images/clear.pngbin0 -> 12543 bytes
-rw-r--r--examples/serialport/terminal/images/connect.pngbin0 -> 15374 bytes
-rw-r--r--examples/serialport/terminal/images/disconnect.pngbin0 -> 15092 bytes
-rw-r--r--examples/serialport/terminal/images/settings.pngbin0 -> 16039 bytes
-rw-r--r--examples/serialport/terminal/main.py17
-rw-r--r--examples/serialport/terminal/mainwindow.py108
-rw-r--r--examples/serialport/terminal/rc_terminal.py4464
-rw-r--r--examples/serialport/terminal/settingsdialog.py179
-rw-r--r--examples/serialport/terminal/settingsdialog.ui177
-rw-r--r--examples/serialport/terminal/terminal.pyproject4
-rw-r--r--examples/serialport/terminal/terminal.qrc9
-rw-r--r--examples/serialport/terminal/ui_mainwindow.py149
-rw-r--r--examples/serialport/terminal/ui_settingsdialog.py181
-rw-r--r--examples/statemachine/eventtrans/eventtrans.py (renamed from examples/widgets/state-machine/eventtrans/eventtrans.py)0
-rw-r--r--examples/statemachine/eventtrans/eventtrans.pyproject (renamed from examples/widgets/state-machine/eventtrans/eventtrans.pyproject)0
-rw-r--r--examples/statemachine/factstates/factstates.py (renamed from examples/widgets/state-machine/factstates/factstates.py)0
-rw-r--r--examples/statemachine/factstates/factstates.pyproject (renamed from examples/widgets/state-machine/factstates/factstates.pyproject)0
-rw-r--r--examples/statemachine/ping_pong/ping_pong.py (renamed from examples/widgets/state-machine/ping_pong/ping_pong.py)0
-rw-r--r--examples/statemachine/ping_pong/ping_pong.pyproject (renamed from examples/widgets/state-machine/ping_pong/ping_pong.pyproject)0
-rw-r--r--examples/statemachine/rogue/rogue.py (renamed from examples/widgets/state-machine/rogue/rogue.py)0
-rw-r--r--examples/statemachine/rogue/rogue.pyproject (renamed from examples/widgets/state-machine/rogue/rogue.pyproject)0
-rw-r--r--examples/statemachine/trafficlight/doc/trafficlight.png (renamed from examples/widgets/state-machine/trafficlight/doc/trafficlight.png)bin79 -> 79 bytes
-rw-r--r--examples/statemachine/trafficlight/doc/trafficlight.rst (renamed from examples/widgets/state-machine/trafficlight/doc/trafficlight.rst)0
-rw-r--r--examples/statemachine/trafficlight/trafficlight.py (renamed from examples/widgets/state-machine/trafficlight/trafficlight.py)0
-rw-r--r--examples/statemachine/trafficlight/trafficlight.pyproject (renamed from examples/widgets/state-machine/trafficlight/trafficlight.pyproject)0
-rw-r--r--examples/statemachine/twowaybutton/twowaybutton.py (renamed from examples/widgets/state-machine/twowaybutton/twowaybutton.py)0
-rw-r--r--examples/statemachine/twowaybutton/twowaybutton.pyproject (renamed from examples/widgets/state-machine/twowaybutton/twowaybutton.pyproject)0
-rw-r--r--examples/texttospeech/hello_speak/hello_speak.py4
-rw-r--r--examples/webenginequick/nanobrowser/ApplicationRoot.qml40
-rw-r--r--examples/webenginequick/nanobrowser/BrowserDialog.qml27
-rw-r--r--examples/webenginequick/nanobrowser/BrowserWindow.qml755
-rw-r--r--examples/webenginequick/nanobrowser/DownloadView.qml127
-rw-r--r--examples/webenginequick/nanobrowser/FindBar.qml95
-rw-r--r--examples/webenginequick/nanobrowser/FullScreenNotification.qml62
-rw-r--r--examples/webenginequick/nanobrowser/browser.qml16
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/COPYING1
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/go-next.pngbin0 -> 930 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/go-previous.pngbin0 -> 955 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/process-stop.pngbin0 -> 1272 bytes
-rw-r--r--examples/webenginequick/nanobrowser/icons/3rdparty/view-refresh.pngbin0 -> 1364 bytes
-rw-r--r--examples/webenginequick/nanobrowser/nanobrowser.pyproject5
-rw-r--r--examples/webenginequick/nanobrowser/quicknanobrowser.py63
-rw-r--r--examples/webenginequick/nanobrowser/rc_resources.py348
-rw-r--r--examples/webenginequick/nanobrowser/resources.qrc8
-rw-r--r--examples/webenginewidgets/markdowneditor/mainwindow.py2
-rw-r--r--examples/webenginewidgets/simplebrowser/simplebrowser.py6
-rw-r--r--examples/webenginewidgets/tabbedbrowser/browsertabwidget.py15
-rw-r--r--examples/webenginewidgets/tabbedbrowser/webengineview.py5
-rw-r--r--examples/widgetbinding/CMakeLists.txt22
-rw-r--r--examples/widgets/animation/animatedtiles/animatedtiles.py4
-rw-r--r--examples/widgets/animation/appchooser/appchooser.py2
-rw-r--r--examples/widgets/animation/easing/easing.py6
-rw-r--r--examples/widgets/animation/states/states.py2
-rw-r--r--examples/widgets/codeeditor/codeeditor.py4
-rw-r--r--examples/widgets/desktop/screenshot/screenshot.py6
-rw-r--r--examples/widgets/desktop/systray/images/bad.png (renamed from examples/widgets/systray/images/bad.png)bin2496 -> 2496 bytes
-rw-r--r--examples/widgets/desktop/systray/images/heart.png (renamed from examples/widgets/systray/images/heart.png)bin25780 -> 25780 bytes
-rw-r--r--examples/widgets/desktop/systray/images/trash.png (renamed from examples/widgets/systray/images/trash.png)bin12128 -> 12128 bytes
-rw-r--r--examples/widgets/desktop/systray/main.py (renamed from examples/widgets/systray/main.py)0
-rw-r--r--examples/widgets/desktop/systray/rc_systray.py (renamed from examples/widgets/systray/rc_systray.py)0
-rw-r--r--examples/widgets/desktop/systray/systray.pyproject (renamed from examples/widgets/systray/systray.pyproject)0
-rw-r--r--examples/widgets/desktop/systray/systray.qrc (renamed from examples/widgets/systray/systray.qrc)0
-rw-r--r--examples/widgets/desktop/systray/window.py (renamed from examples/widgets/systray/window.py)0
-rw-r--r--examples/widgets/dialogs/classwizard/classwizard.py14
-rw-r--r--examples/widgets/dialogs/classwizard/listchooser.py7
-rw-r--r--examples/widgets/dialogs/findfiles/findfiles.py4
-rw-r--r--examples/widgets/dialogs/standarddialogs/standarddialogs.py20
-rw-r--r--examples/widgets/dialogs/trivialwizard/trivialwizard.py2
-rw-r--r--examples/widgets/draganddrop/dropsite/doc/dropsite.rst8
-rw-r--r--examples/widgets/draganddrop/dropsite/droparea.py67
-rw-r--r--examples/widgets/draganddrop/dropsite/dropsite.pyproject3
-rw-r--r--examples/widgets/draganddrop/dropsite/dropsitewindow.py115
-rw-r--r--examples/widgets/draganddrop/dropsite/main.py15
-rw-r--r--examples/widgets/effects/lighting/lighting.py2
-rw-r--r--examples/widgets/gettext/main.py4
-rw-r--r--examples/widgets/graphicsview/anchorlayout/anchorlayout.py2
-rw-r--r--examples/widgets/graphicsview/diagramscene/diagramscene.py29
-rw-r--r--examples/widgets/graphicsview/dragdroprobot/dragdroprobot.py2
-rw-r--r--examples/widgets/graphicsview/elasticnodes/elasticnodes.py6
-rw-r--r--examples/widgets/imageviewer/imageviewer.py12
-rw-r--r--examples/widgets/itemviews/address_book/address_book.py3
-rw-r--r--examples/widgets/itemviews/address_book/addresswidget.py5
-rw-r--r--examples/widgets/itemviews/basicfiltermodel/basicsortfiltermodel.py5
-rw-r--r--examples/widgets/itemviews/dirview/dirview.py60
-rw-r--r--examples/widgets/itemviews/dirview/dirview.pyproject3
-rw-r--r--examples/widgets/itemviews/dirview/doc/dirview.rst5
-rw-r--r--examples/widgets/itemviews/fetchmore/fetchmore.py5
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/doc/spinboxdelegate.rst5
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.py78
-rw-r--r--examples/widgets/itemviews/spinboxdelegate/spinboxdelegate.pyproject3
-rw-r--r--examples/widgets/itemviews/spreadsheet/doc/spreadsheet.pngbin0 -> 40187 bytes
-rw-r--r--examples/widgets/itemviews/spreadsheet/doc/spreadsheet.rst10
-rw-r--r--examples/widgets/itemviews/spreadsheet/main.py19
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheet.py544
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheetdelegate.py67
-rw-r--r--examples/widgets/itemviews/spreadsheet/spreadsheetitem.py122
-rw-r--r--examples/widgets/layouts/basiclayouts/basiclayouts.py3
-rw-r--r--examples/widgets/linguist/main.py5
-rw-r--r--examples/widgets/mainwindows/application/application.py10
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.py2
-rw-r--r--examples/widgets/mainwindows/mdi/mdi.py17
-rw-r--r--examples/widgets/painting/painter/painter.py2
-rw-r--r--examples/widgets/painting/plot/plot.py5
-rw-r--r--examples/widgets/richtext/orderform/orderform.py7
-rw-r--r--examples/widgets/richtext/textedit/main.py1
-rw-r--r--examples/widgets/richtext/textedit/textedit.py14
-rw-r--r--examples/widgets/richtext/textobject/textobject.py6
-rw-r--r--examples/widgets/tools/regularexpression/regularexpression.py2
-rw-r--r--examples/widgets/tools/regularexpression/regularexpressiondialog.py11
-rw-r--r--examples/widgets/tutorials/addressbook/part2.py6
-rw-r--r--examples/widgets/tutorials/addressbook/part3.py8
-rw-r--r--examples/widgets/tutorials/addressbook/part4.py11
-rw-r--r--examples/widgets/tutorials/addressbook/part5.py10
-rw-r--r--examples/widgets/tutorials/addressbook/part6.py9
-rw-r--r--examples/widgets/tutorials/addressbook/part7.py9
-rw-r--r--examples/widgets/tutorials/cannon/t10.py2
-rw-r--r--examples/widgets/tutorials/cannon/t11.py2
-rw-r--r--examples/widgets/tutorials/cannon/t12.py2
-rw-r--r--examples/widgets/tutorials/cannon/t13.py4
-rw-r--r--examples/widgets/tutorials/cannon/t14.py6
-rw-r--r--examples/widgets/tutorials/cannon/t2.py3
-rw-r--r--examples/widgets/tutorials/cannon/t8.py2
-rw-r--r--examples/widgets/tutorials/cannon/t9.py2
-rw-r--r--examples/widgets/tutorials/modelview/1_readonly.py38
-rw-r--r--examples/widgets/tutorials/modelview/2_formatting.py65
-rw-r--r--examples/widgets/tutorials/modelview/3_changingmodel.py52
-rw-r--r--examples/widgets/tutorials/modelview/4_headers.py43
-rw-r--r--examples/widgets/tutorials/modelview/5_edit.py73
-rw-r--r--examples/widgets/tutorials/modelview/6_treeview.py41
-rw-r--r--examples/widgets/tutorials/modelview/7_selections.py70
-rw-r--r--examples/widgets/tutorials/modelview/doc/modelview.rst4
-rw-r--r--examples/widgets/tutorials/modelview/modelview.pyproject9
-rw-r--r--examples/widgets/widgets/charactermap/charactermap.pyproject4
-rw-r--r--examples/widgets/widgets/charactermap/characterwidget.py133
-rw-r--r--examples/widgets/widgets/charactermap/doc/charactermap.rst8
-rw-r--r--examples/widgets/widgets/charactermap/fontinfodialog.py47
-rw-r--r--examples/widgets/widgets/charactermap/main.py17
-rw-r--r--examples/widgets/widgets/charactermap/mainwindow.py167
-rw-r--r--examples/widgets/widgets/digitalclock/digitalclock.py41
-rw-r--r--examples/widgets/widgets/digitalclock/digitalclock.pyproject3
-rw-r--r--examples/widgets/widgets/digitalclock/doc/digitalclock-screenshot.pngbin0 -> 726 bytes
-rw-r--r--examples/widgets/widgets/digitalclock/doc/digitalclock.rst12
-rw-r--r--examples/widgets/widgets/tetrix/doc/tetrix-screenshot.png (renamed from examples/widgets/tetrix/doc/tetrix-screenshot.png)bin5396 -> 5396 bytes
-rw-r--r--examples/widgets/widgets/tetrix/doc/tetrix.rst (renamed from examples/widgets/tetrix/doc/tetrix.rst)0
-rw-r--r--examples/widgets/widgets/tetrix/tetrix.py (renamed from examples/widgets/tetrix/tetrix.py)6
-rw-r--r--examples/widgets/widgets/tetrix/tetrix.pyproject (renamed from examples/widgets/tetrix/tetrix.pyproject)0
-rw-r--r--examples/widgets/widgetsgallery/widgetgallery.py10
-rw-r--r--requirements.txt1
-rw-r--r--sources/pyside-tools/CMakeLists.txt10
-rw-r--r--sources/pyside-tools/pyside_tool.py12
-rw-r--r--sources/pyside-tools/qtpy2cpp.py62
-rw-r--r--sources/pyside-tools/qtpy2cpp.pyproject (renamed from tools/qtpy2cpp.pyproject)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/astdump.py (renamed from tools/qtpy2cpp_lib/astdump.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/formatter.py (renamed from tools/qtpy2cpp_lib/formatter.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/nodedump.py (renamed from tools/qtpy2cpp_lib/nodedump.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/qt.py (renamed from tools/qtpy2cpp_lib/qt.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp (renamed from tools/qtpy2cpp_lib/tests/baseline/basic_test.cpp)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/baseline/basic_test.py (renamed from tools/qtpy2cpp_lib/tests/baseline/basic_test.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py (renamed from tools/qtpy2cpp_lib/tests/test_qtpy2cpp.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/tokenizer.py (renamed from tools/qtpy2cpp_lib/tokenizer.py)0
-rw-r--r--sources/pyside-tools/qtpy2cpp_lib/visitor.py (renamed from tools/qtpy2cpp_lib/visitor.py)0
-rw-r--r--sources/pyside6/PySide6/QtBluetooth/typesystem_bluetooth.xml2
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core_common.xml75
-rw-r--r--sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml39
-rw-r--r--sources/pyside6/PySide6/QtGui/QtGui_global.post.h.in1
-rw-r--r--sources/pyside6/PySide6/QtGui/typesystem_gui_common.xml88
-rw-r--r--sources/pyside6/PySide6/QtHttpServer/CMakeLists.txt3
-rw-r--r--sources/pyside6/PySide6/QtHttpServer/typesystem_httpserver.xml1
-rw-r--r--sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml2
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/CMakeLists.txt5
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/glue/utils.cpp40
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_includes.xml1
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgeti_v_modifications.xml18
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_includes.xml5
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_glgetv_modifications.xml36
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl.xml206
-rw-r--r--sources/pyside6/PySide6/QtOpenGL/typesystem_opengl_modifications4_1.xml18
-rw-r--r--sources/pyside6/PySide6/QtPdf/CMakeLists.txt41
-rw-r--r--sources/pyside6/PySide6/QtPdf/typesystem_pdf.xml29
-rw-r--r--sources/pyside6/PySide6/QtPdfWidgets/CMakeLists.txt40
-rw-r--r--sources/pyside6/PySide6/QtPdfWidgets/typesystem_pdfwidgets.xml15
-rw-r--r--sources/pyside6/PySide6/QtQuick/typesystem_quick.xml2
-rw-r--r--sources/pyside6/PySide6/QtSerialPort/typesystem_serialport.xml2
-rw-r--r--sources/pyside6/PySide6/QtWidgets/CMakeLists.txt1
-rw-r--r--sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml46
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/CMakeLists.txt48
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/QtWinExtras_global.pre.h.in5
-rw-r--r--sources/pyside6/PySide6/QtWinExtras/typesystem_winextras.xml30
-rw-r--r--sources/pyside6/PySide6/__init__.py.in20
-rw-r--r--sources/pyside6/PySide6/glue/qtcore.cpp48
-rw-r--r--sources/pyside6/PySide6/glue/qtdatavisualization.cpp27
-rw-r--r--sources/pyside6/PySide6/glue/qtgui.cpp148
-rw-r--r--sources/pyside6/PySide6/glue/qtopengl.cpp7
-rw-r--r--sources/pyside6/PySide6/glue/qtwidgets.cpp5
-rw-r--r--sources/pyside6/PySide6/qtguihelper.h2
-rw-r--r--sources/pyside6/PySide6/support/deprecated.py30
-rw-r--r--sources/pyside6/PySide6/templates/gui_common.xml9
-rw-r--r--sources/pyside6/cmake/PySideHelpers.cmake5
-rw-r--r--sources/pyside6/doc/CMakeLists.txt24
-rw-r--r--sources/pyside6/doc/additionaldocs.lst113
-rw-r--r--sources/pyside6/doc/considerations.rst163
-rw-r--r--sources/pyside6/doc/extras/QtCore.QEnum.rst5
-rw-r--r--sources/pyside6/doc/gettingstarted-linux.rst59
-rw-r--r--sources/pyside6/doc/gettingstarted-macOS.rst17
-rw-r--r--sources/pyside6/doc/gettingstarted-windows.rst17
-rw-r--r--sources/pyside6/doc/gettingstarted.rst25
-rw-r--r--sources/pyside6/doc/import_inheritance.py152
-rw-r--r--sources/pyside6/doc/index.rst23
-rw-r--r--sources/pyside6/doc/inheritance_diagram.py127
-rw-r--r--sources/pyside6/doc/json_inheritance.py74
-rw-r--r--sources/pyside6/doc/modules.rst149
-rw-r--r--sources/pyside6/doc/package_details.rst131
-rw-r--r--sources/pyside6/doc/packages.pngbin0 -> 12157 bytes
-rw-r--r--sources/pyside6/doc/porting_from2.rst18
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtpdf.qdocconf.in3
-rw-r--r--sources/pyside6/doc/qtmodules/pyside-qtspatialaudio.qdocconf.in3
-rw-r--r--sources/pyside6/doc/quickstart.rst5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_0.cpp.py4
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_1.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_2.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_3.cpp.py5
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/dialogs/standarddialogs/dialog_4.cpp.py4
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/itemviews/spinboxdelegate/delegate_0.h.py18
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/1_readonly/mymodel_Quoting_ModelView_Tutorial.h.py15
-rw-r--r--sources/pyside6/doc/snippets/qtbase/examples/widgets/tutorials/modelview/5_edit/mymodel_Quoting_ModelView_Tutorial.h.py27
-rw-r--r--sources/pyside6/doc/snippets/qtbase/src/widgets/doc/snippets/stringlistmodel/model_0.h.py24
-rw-r--r--sources/pyside6/doc/tutorials/basictutorial/signals_and_slots.rst2
-rw-r--r--sources/pyside6/doc/tutorials/debugging/mixed_debugging.rst2
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/python_set_interpreter.pngbin0 -> 4664 bytes
-rw-r--r--sources/pyside6/doc/tutorials/debugging/vscode/vscode.rst116
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/qlistview-dnd.py137
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/simplemodel-use.py44
-rw-r--r--sources/pyside6/doc/tutorials/modelviewprogramming/stringlistmodel.py124
-rw-r--r--sources/pyside6/doc/videos.rst96
-rw-r--r--sources/pyside6/libpyside/feature_select.cpp4
-rw-r--r--sources/pyside6/libpyside/pyside.cpp3
-rw-r--r--sources/pyside6/libpyside/pysidelogging_p.h11
-rw-r--r--sources/pyside6/libpyside/pysideproperty.cpp2
-rw-r--r--sources/pyside6/libpyside/pysideqenum.cpp2
-rw-r--r--sources/pyside6/libpyside/pysideqflags.cpp10
-rw-r--r--sources/pyside6/libpyside/pysidesignal.cpp2
-rw-r--r--sources/pyside6/libpyside/signalmanager.cpp96
-rw-r--r--sources/pyside6/libpysideqml/pysideqmlmetacallerror.cpp6
-rw-r--r--sources/pyside6/plugins/uitools/customwidget.cpp2
-rw-r--r--sources/pyside6/tests/QtCore/qenum_test.py37
-rw-r--r--sources/pyside6/tests/QtCore/qflags_test.py59
-rw-r--r--sources/pyside6/tests/QtCore/qmetaobject_test.py12
-rw-r--r--sources/pyside6/tests/QtCore/qsysinfo_test.py10
-rw-r--r--sources/pyside6/tests/QtDataVisualization/datavisualization_test.py17
-rw-r--r--sources/pyside6/tests/QtGui/bug_617.py9
-rw-r--r--sources/pyside6/tests/QtGui/qkeysequence_test.py24
-rw-r--r--sources/pyside6/tests/QtGui/qpen_test.py3
-rw-r--r--sources/pyside6/tests/QtOpenGL/qopenglwindow_test.py1
-rw-r--r--sources/pyside6/tests/QtPdf/CMakeLists.txt (renamed from sources/pyside6/tests/QtWinExtras/CMakeLists.txt)0
-rw-r--r--sources/pyside6/tests/QtPdfWidgets/CMakeLists.txt1
-rw-r--r--sources/pyside6/tests/QtSql/qvarianttype_test.py7
-rw-r--r--sources/pyside6/tests/QtWidgets/qformlayout_test.py65
-rw-r--r--sources/pyside6/tests/QtWidgets/qlabel_test.py3
-rw-r--r--sources/pyside6/tests/QtWidgets/qlayout_test.py7
-rw-r--r--sources/pyside6/tests/pysidetest/CMakeLists.txt7
-rw-r--r--sources/pyside6/tests/pysidetest/enum_test.py115
-rw-r--r--sources/pyside6/tests/pysidetest/new_inherited_functions_test.py14
-rw-r--r--sources/pyside6/tests/pysidetest/qvariant_test.py17
-rw-r--r--sources/pyside6/tests/registry/existence_test.py17
-rw-r--r--sources/pyside6/tests/registry/init_platform.py22
-rw-r--r--sources/pyside6/tests/tools/metaobjectdump/test_metaobjectdump.py2
-rw-r--r--sources/pyside6/tests/tools/pyside6-qml/test_pyside6_qml.py2
-rw-r--r--sources/shiboken6/ApiExtractor/CMakeLists.txt2
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaargument.cpp6
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaargument.h8
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder.cpp8
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetabuilder_p.h1
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaenum.cpp57
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetaenum.h8
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafield.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafield.h2
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.cpp11
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetafunction.h4
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.cpp3
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetalang.h1
-rw-r--r--sources/shiboken6/ApiExtractor/abstractmetatype.cpp16
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction.cpp221
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction.h104
-rw-r--r--sources/shiboken6/ApiExtractor/addedfunction_p.h (renamed from sources/shiboken6/ApiExtractor/modifications_p.h)6
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractor.cpp14
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractor.h1
-rw-r--r--sources/shiboken6/ApiExtractor/apiextractorresult.h5
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp11
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp48
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/compilersupport.h7
-rw-r--r--sources/shiboken6/ApiExtractor/complextypeentry.h17
-rw-r--r--sources/shiboken6/ApiExtractor/containertypeentry.h4
-rw-r--r--sources/shiboken6/ApiExtractor/customconversion.cpp131
-rw-r--r--sources/shiboken6/ApiExtractor/customconversion.h83
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.cpp27
-rw-r--r--sources/shiboken6/ApiExtractor/docparser.h6
-rw-r--r--sources/shiboken6/ApiExtractor/doxygenparser.cpp5
-rw-r--r--sources/shiboken6/ApiExtractor/enumtypeentry.h4
-rw-r--r--sources/shiboken6/ApiExtractor/functiontypeentry.h1
-rw-r--r--sources/shiboken6/ApiExtractor/header_paths.h1
-rw-r--r--sources/shiboken6/ApiExtractor/messages.cpp8
-rw-r--r--sources/shiboken6/ApiExtractor/messages.h4
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.cpp219
-rw-r--r--sources/shiboken6/ApiExtractor/modifications.h116
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel.cpp24
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel.h8
-rw-r--r--sources/shiboken6/ApiExtractor/parser/enumvalue.cpp13
-rw-r--r--sources/shiboken6/ApiExtractor/parser/enumvalue.h2
-rw-r--r--sources/shiboken6/ApiExtractor/primitivetypeentry.h4
-rw-r--r--sources/shiboken6/ApiExtractor/propertyspec.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/pymethoddefentry.cpp4
-rw-r--r--sources/shiboken6/ApiExtractor/pythontypeentry.h1
-rw-r--r--sources/shiboken6/ApiExtractor/qtdocparser.cpp37
-rw-r--r--sources/shiboken6/ApiExtractor/qtdocparser.h11
-rw-r--r--sources/shiboken6/ApiExtractor/reporthandler.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetaclass.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testaddfunction.cpp8
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testarrayargument.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testcodeinjection.cpp16
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionoperator.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testconversionruletag.cpp81
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testenum.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testimplicitconversions.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.cpp28
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifydocumentation.h1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testmodifyfunction.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnestedtypes.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testnumericaltypedef.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreferencetopointer.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testremoveimplconv.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testresolvetype.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testreverseoperators.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testtemplates.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testvoidarg.cpp1
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase.cpp8
-rw-r--r--sources/shiboken6/ApiExtractor/typedatabase.h1
-rw-r--r--sources/shiboken6/ApiExtractor/typeparser.cpp2
-rw-r--r--sources/shiboken6/ApiExtractor/typeparser.h2
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem.cpp400
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem.h30
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem_enums.h8
-rw-r--r--sources/shiboken6/ApiExtractor/typesystem_typedefs.h4
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemparser.cpp150
-rw-r--r--sources/shiboken6/ApiExtractor/typesystemtypeentry.h6
-rw-r--r--sources/shiboken6/ApiExtractor/usingmember.h2
-rw-r--r--sources/shiboken6/ApiExtractor/valuetypeentry.h14
-rw-r--r--sources/shiboken6/cmake/ShibokenHelpers.cmake7
-rw-r--r--sources/shiboken6/data/shiboken6.pc.in2
-rw-r--r--sources/shiboken6/doc/CMakeLists.txt4
-rw-r--r--sources/shiboken6/doc/scripts/patch_qhp.py79
-rw-r--r--sources/shiboken6/doc/shibokengenerator.rst12
-rw-r--r--sources/shiboken6/doc/shibokenmodule.rst33
-rw-r--r--sources/shiboken6/doc/typesystem_specifying_types.rst17
-rw-r--r--sources/shiboken6/generator/CMakeLists.txt2
-rw-r--r--sources/shiboken6/generator/defaultvalue.cpp120
-rw-r--r--sources/shiboken6/generator/defaultvalue.h46
-rw-r--r--sources/shiboken6/generator/generator.cpp151
-rw-r--r--sources/shiboken6/generator/generator.h137
-rw-r--r--sources/shiboken6/generator/generatorcontext.cpp38
-rw-r--r--sources/shiboken6/generator/generatorcontext.h56
-rw-r--r--sources/shiboken6/generator/main.cpp176
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp77
-rw-r--r--sources/shiboken6/generator/qtdoc/qtdocgenerator.h2
-rw-r--r--sources/shiboken6/generator/qtdoc/qtxmltosphinx.cpp10
-rw-r--r--sources/shiboken6/generator/qtdoc/qtxmltosphinx.h4
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.cpp1734
-rw-r--r--sources/shiboken6/generator/shiboken/cppgenerator.h31
-rw-r--r--sources/shiboken6/generator/shiboken/headergenerator.cpp37
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.cpp34
-rw-r--r--sources/shiboken6/generator/shiboken/shibokengenerator.h13
-rw-r--r--sources/shiboken6/libshiboken/CMakeLists.txt1
-rw-r--r--sources/shiboken6/libshiboken/basewrapper.cpp19
-rw-r--r--sources/shiboken6/libshiboken/basewrapper.h8
-rw-r--r--sources/shiboken6/libshiboken/basewrapper_p.h3
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.cpp8
-rw-r--r--sources/shiboken6/libshiboken/pep384impl.h7
-rw-r--r--sources/shiboken6/libshiboken/sbkcpptonumpy.cpp67
-rw-r--r--sources/shiboken6/libshiboken/sbkcpptonumpy.h41
-rw-r--r--sources/shiboken6/libshiboken/sbkenum.cpp188
-rw-r--r--sources/shiboken6/libshiboken/sbkenum_p.h5
-rw-r--r--sources/shiboken6/libshiboken/sbkerrors.cpp17
-rw-r--r--sources/shiboken6/libshiboken/sbkerrors.h2
-rw-r--r--sources/shiboken6/libshiboken/sbkfeature_base.cpp215
-rw-r--r--sources/shiboken6/libshiboken/sbkmodule.cpp2
-rw-r--r--sources/shiboken6/libshiboken/sbknumpy.cpp4
-rw-r--r--sources/shiboken6/libshiboken/sbkstaticstrings.cpp6
-rw-r--r--sources/shiboken6/libshiboken/sbkstaticstrings.h5
-rw-r--r--sources/shiboken6/libshiboken/signature/signature.cpp31
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_extend.cpp8
-rw-r--r--sources/shiboken6/libshiboken/signature/signature_globals.cpp140
-rw-r--r--sources/shiboken6/libshiboken/signature_p.h3
-rw-r--r--sources/shiboken6/libshiboken/voidptr.cpp8
-rw-r--r--sources/shiboken6/shibokenmodule/Shiboken.pyi16
-rw-r--r--sources/shiboken6/shibokenmodule/__init__.py.in3
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/layout.py2
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py10
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py18
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/parser.py21
-rw-r--r--sources/shiboken6/shibokenmodule/typesystem_shiboken.xml39
-rw-r--r--sources/shiboken6/tests/dumpcodemodel/main.cpp55
-rw-r--r--sources/shiboken6/tests/libsample/abstract.cpp2
-rw-r--r--sources/shiboken6/tests/libsample/bytearray.cpp7
-rw-r--r--sources/shiboken6/tests/libsample/bytearray.h1
-rw-r--r--sources/shiboken6/tests/libsample/derived.cpp12
-rw-r--r--sources/shiboken6/tests/libsample/derived.h2
-rw-r--r--sources/shiboken6/tests/libsample/echo.h42
-rw-r--r--sources/shiboken6/tests/libsample/exceptiontest.cpp7
-rw-r--r--sources/shiboken6/tests/libsample/exceptiontest.h2
-rw-r--r--sources/shiboken6/tests/libsample/filter.cpp10
-rw-r--r--sources/shiboken6/tests/libsample/filter.h6
-rw-r--r--sources/shiboken6/tests/libsample/functions.cpp6
-rw-r--r--sources/shiboken6/tests/libsample/handle.h8
-rw-r--r--sources/shiboken6/tests/libsample/implicitconv.cpp14
-rw-r--r--sources/shiboken6/tests/libsample/implicitconv.h2
-rw-r--r--sources/shiboken6/tests/libsample/list.h18
-rw-r--r--sources/shiboken6/tests/libsample/listuser.cpp13
-rw-r--r--sources/shiboken6/tests/libsample/listuser.h9
-rw-r--r--sources/shiboken6/tests/libsample/mapuser.cpp8
-rw-r--r--sources/shiboken6/tests/libsample/mapuser.h4
-rw-r--r--sources/shiboken6/tests/libsample/modelindex.h20
-rw-r--r--sources/shiboken6/tests/libsample/modifications.cpp61
-rw-r--r--sources/shiboken6/tests/libsample/modifications.h32
-rw-r--r--sources/shiboken6/tests/libsample/objectmodel.cpp9
-rw-r--r--sources/shiboken6/tests/libsample/objectmodel.h4
-rw-r--r--sources/shiboken6/tests/libsample/objecttype.cpp18
-rw-r--r--sources/shiboken6/tests/libsample/objecttype.h2
-rw-r--r--sources/shiboken6/tests/libsample/objecttypebyvalue.h14
-rw-r--r--sources/shiboken6/tests/libsample/overload.cpp182
-rw-r--r--sources/shiboken6/tests/libsample/overload.h75
-rw-r--r--sources/shiboken6/tests/libsample/overloadsort.cpp35
-rw-r--r--sources/shiboken6/tests/libsample/overloadsort.h41
-rw-r--r--sources/shiboken6/tests/libsample/pen.cpp16
-rw-r--r--sources/shiboken6/tests/libsample/pen.h5
-rw-r--r--sources/shiboken6/tests/libsample/protected.cpp9
-rw-r--r--sources/shiboken6/tests/libsample/protected.h4
-rw-r--r--sources/shiboken6/tests/libsample/reference.cpp10
-rw-r--r--sources/shiboken6/tests/libsample/reference.h4
-rw-r--r--sources/shiboken6/tests/libsample/samplenamespace.cpp15
-rw-r--r--sources/shiboken6/tests/libsample/sometime.cpp3
-rw-r--r--sources/shiboken6/tests/libsample/str.cpp9
-rw-r--r--sources/shiboken6/tests/libsample/str.h2
-rw-r--r--sources/shiboken6/tests/libsample/strlist.h6
-rw-r--r--sources/shiboken6/tests/libsample/templateptr.cpp2
-rw-r--r--sources/shiboken6/tests/libsample/valueandvirtual.h1
-rw-r--r--sources/shiboken6/tests/libsample/virtualmethods.cpp5
-rw-r--r--sources/shiboken6/tests/libsample/virtualmethods.h2
-rw-r--r--sources/shiboken6/tests/libsmart/smart.cpp6
-rw-r--r--sources/shiboken6/tests/libsmart/smart_integer.h3
-rw-r--r--sources/shiboken6/tests/libsmart/stduniqueptrtestbench.cpp16
-rw-r--r--sources/shiboken6/tests/libsmart/stduniqueptrtestbench.h4
-rw-r--r--sources/shiboken6/tests/minimalbinding/brace_pattern_test.py1
-rw-r--r--sources/shiboken6/tests/otherbinding/signature_test.py1
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp18
-rw-r--r--sources/shiboken6/tests/samplebinding/derived_test.py5
-rw-r--r--sources/shiboken6/tests/samplebinding/enum_test.py11
-rw-r--r--sources/shiboken6/tests/samplebinding/enumfromremovednamespace_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/exception_test.py11
-rw-r--r--sources/shiboken6/tests/samplebinding/namespace_test.py21
-rw-r--r--sources/shiboken6/tests/samplebinding/pointerprimitivetype_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/renaming_test.py1
-rw-r--r--sources/shiboken6/tests/samplebinding/typesystem_sample.xml25
-rw-r--r--sources/shiboken6/tests/smartbinding/CMakeLists.txt1
-rw-r--r--sources/shiboken6/tests/smartbinding/std_unique_ptr_test.py13
-rw-r--r--sources/shiboken6/tests/smartbinding/typesystem_smart.xml2
-rw-r--r--tools/doc_modules.py120
-rw-r--r--tools/example_gallery/main.py18
-rw-r--r--tools/missing_bindings/config.py36
-rw-r--r--tools/missing_bindings/main.py57
-rw-r--r--tools/missing_bindings/requirements.txt4
-rw-r--r--tools/qtcpp2py.py63
-rw-r--r--tools/qtpy2cpp.py65
-rw-r--r--tools/snippets_translate/converter.py118
-rw-r--r--tools/snippets_translate/handlers.py236
-rw-r--r--tools/snippets_translate/main.py142
-rw-r--r--tools/snippets_translate/override.py112
-rw-r--r--tools/snippets_translate/snippets_translate.pyproject3
-rw-r--r--tools/snippets_translate/tests/test_converter.py28
-rw-r--r--tools/snippets_translate/tests/test_snippets.py87
763 files changed, 32863 insertions, 3871 deletions
diff --git a/.gitignore b/.gitignore
index a1cd7fa82..27fd3efc2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -102,6 +102,7 @@ pip-delete-this-directory.txt
# Sphinx documentation
docs/_build/
+html/
# PyBuilder
target/
diff --git a/build_history/blacklist.txt b/build_history/blacklist.txt
index 3355a2b6e..d3455dd60 100644
--- a/build_history/blacklist.txt
+++ b/build_history/blacklist.txt
@@ -33,8 +33,6 @@
linux
darwin
# Open GL functions failures on macOS (2/2020)
-[registry::existence_test]
- darwin
[QtQml::qqmlnetwork_test]
linux ci # extended, see PyPy section below
[QtWidgets::bug_750]
diff --git a/build_scripts/config.py b/build_scripts/config.py
index 89e6d7574..70a63f746 100644
--- a/build_scripts/config.py
+++ b/build_scripts/config.py
@@ -65,6 +65,7 @@ class Config(object):
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
]
self.setup_script_dir = None
@@ -200,7 +201,8 @@ class Config(object):
]
_pyside_tools = ["uic", "rcc", "assistant", "designer", "linguist",
"lupdate", "lrelease", "genpyi", "metaobjectdump",
- "project", "qml", "qmltyperegistrar", "qmllint"]
+ "project", "qml", "qmltyperegistrar", "qmllint", "qmlformat", "qmlls",
+ "qtpy2cpp"]
setup_kwargs['entry_points'] = {
'console_scripts': [f'{PYSIDE}-{tool} = {package_name}.scripts.pyside_tool:{tool}'
for tool in _pyside_tools]
diff --git a/build_scripts/main.py b/build_scripts/main.py
index 806a957e4..94635918c 100644
--- a/build_scripts/main.py
+++ b/build_scripts/main.py
@@ -939,7 +939,7 @@ class PysideBuild(_build, DistUtilsCommandMixin, BuildInfoCollectorMixin):
_vars['dbg_postfix'] = OPTION["DEBUG"] and "_d" or ""
return prepare_packages_win32(self, _vars)
else:
- return prepare_packages_posix(self, _vars)
+ return prepare_packages_posix(self, _vars, self.is_cross_compile)
except IOError as e:
print('setup.py/prepare_packages: ', e)
raise
@@ -1253,7 +1253,7 @@ class PysideRstDocs(Command, DistUtilsCommandMixin):
elif self.name == SHIBOKEN:
self.sphinx_src = self.out_dir
- sphinx_cmd = ["sphinx-build", "-b", "html", "-c", self.sphinx_src,
+ sphinx_cmd = ["sphinx-build", "-b", "html", "-j", "auto", "-c", self.sphinx_src,
self.doc_dir, self.out_dir]
if run_process(sphinx_cmd) != 0:
raise DistutilsSetupError(f"Error running CMake for {self.doc_dir}")
diff --git a/build_scripts/platforms/linux.py b/build_scripts/platforms/linux.py
index 700265dad..a75259698 100644
--- a/build_scripts/platforms/linux.py
+++ b/build_scripts/platforms/linux.py
@@ -4,12 +4,13 @@
import os
from ..config import config
+from ..options import OPTION
from ..utils import (copy_icu_libs, copydir, copyfile, find_files_using_glob,
linux_patch_executable)
from ..versions import PYSIDE
-def prepare_standalone_package_linux(self, _vars):
+def prepare_standalone_package_linux(self, _vars, cross_build=False):
built_modules = _vars['built_modules']
constrain_modules = None
@@ -49,17 +50,18 @@ def prepare_standalone_package_linux(self, _vars):
# Qt is built against system ICU, or in the Coin CI where ICU
# libs are in a different directory) try to find out / resolve
# which ICU libs are used by QtCore (if used at all) using a
- # custom written ldd, and copy the ICU libs to the Pyside Qt
- # dir if necessary. We choose the QtCore lib to inspect, by
+ # custom written ldd (non-cross build only), and copy the ICU
+ # libs to the Pyside Qt dir if necessary.
+ # We choose the QtCore lib to inspect, by
# checking which QtCore library the shiboken6 executable uses.
- if not maybe_icu_libs:
+ if not maybe_icu_libs and not cross_build:
copy_icu_libs(self._patchelf_path, resolved_destination_lib_dir)
# Set RPATH for Qt libs.
self.update_rpath_for_linux_qt_libraries(destination_lib_dir.format(**_vars))
# Patching designer to use the Qt libraries provided in the wheel
- if config.is_internal_pyside_build():
+ if config.is_internal_pyside_build() and not OPTION['NO_QT_TOOLS']:
assistant_path = "{st_build_dir}/{st_package_name}/assistant".format(**_vars)
linux_patch_executable(self._patchelf_path, assistant_path)
designer_path = "{st_build_dir}/{st_package_name}/designer".format(**_vars)
diff --git a/build_scripts/platforms/macos.py b/build_scripts/platforms/macos.py
index 6b8d5e1f8..5ae27103e 100644
--- a/build_scripts/platforms/macos.py
+++ b/build_scripts/platforms/macos.py
@@ -5,6 +5,7 @@ import fnmatch
import os
from ..config import config
+from ..options import OPTION
from ..utils import (copydir, copyfile, macos_add_rpath,
macos_fix_rpaths_for_library)
from ..versions import PYSIDE
@@ -54,7 +55,7 @@ def prepare_standalone_package_macos(self, _vars):
return True
# Patching designer to use the Qt libraries provided in the wheel
- if config.is_internal_pyside_build():
+ if config.is_internal_pyside_build() and not OPTION['NO_QT_TOOLS']:
_macos_patch_executable('assistant', _vars)
_macos_patch_executable('designer', _vars)
_macos_patch_executable('linguist', _vars)
diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py
index f109732e3..5c228953f 100644
--- a/build_scripts/platforms/unix.py
+++ b/build_scripts/platforms/unix.py
@@ -38,7 +38,7 @@ def _copy_gui_executable(name, _vars=None):
return _unix_copy_gui_executable(name, _vars)
-def prepare_packages_posix(self, _vars):
+def prepare_packages_posix(self, _vars, cross_build=False):
executables = []
libexec_executables = []
@@ -111,11 +111,18 @@ def prepare_packages_posix(self, _vars):
_vars=_vars)
# For setting up setuptools entry points
- for script in ("pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py"):
+ for script in ("pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py",
+ "qtpy2cpp.py"):
src = f"{{install_dir}}/bin/{script}"
target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script}"
copyfile(src, target, force=False, _vars=_vars)
+ for script_dir in ("qtpy2cpp_lib",):
+ src = f"{{install_dir}}/bin/{script_dir}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script_dir}"
+ # Exclude subdirectory tests
+ copydir(src, target, _filter=["*.py"], recursive=False, _vars=_vars)
+
# <install>/bin/* -> {st_package_name}/
executables.extend(copydir(
"{install_dir}/bin/",
@@ -129,7 +136,7 @@ def prepare_packages_posix(self, _vars):
executables.extend(copydir(
"{install_dir}/bin/",
"{st_build_dir}/{st_package_name}",
- _filter=["lrelease", "lupdate", "qmllint"],
+ _filter=["lrelease", "lupdate", "qmllint", "qmlformat", "qmlls"],
recursive=False, _vars=_vars))
# Copying assistant/designer
executables.extend(_copy_gui_executable('assistant', _vars=_vars))
@@ -209,7 +216,7 @@ def prepare_packages_posix(self, _vars):
if sys.platform == 'darwin':
prepare_standalone_package_macos(self, _vars)
else:
- prepare_standalone_package_linux(self, _vars)
+ prepare_standalone_package_linux(self, _vars, cross_build)
if config.is_internal_shiboken_generator_build():
# Copy over clang before rpath patching.
diff --git a/build_scripts/platforms/windows_desktop.py b/build_scripts/platforms/windows_desktop.py
index 9dbdd794e..8aec3f37a 100644
--- a/build_scripts/platforms/windows_desktop.py
+++ b/build_scripts/platforms/windows_desktop.py
@@ -115,18 +115,25 @@ def prepare_packages_win32(self, _vars):
_vars=_vars)
# For setting up setuptools entry points
- for script in ("pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py"):
+ for script in ("pyside_tool.py", "metaobjectdump.py", "project.py", "qml.py",
+ "qtpy2cpp.py"):
src = f"{{install_dir}}/bin/{script}"
target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script}"
copyfile(src, target, force=False, _vars=_vars)
+ for script_dir in ("qtpy2cpp_lib",):
+ src = f"{{install_dir}}/bin/{script_dir}"
+ target = f"{{st_build_dir}}/{{st_package_name}}/scripts/{script_dir}"
+ # Exclude subdirectory tests
+ copydir(src, target, _filter=["*.py"], recursive=False, _vars=_vars)
+
# <install>/bin/*.exe,*.dll -> {st_package_name}/
filters = ["pyside*.exe", "pyside*.dll"]
if not OPTION['NO_QT_TOOLS']:
filters.extend(["lrelease.exe", "lupdate.exe", "uic.exe",
"rcc.exe", "qmllint.exe", "qmltyperegistrar.exe"
"assistant.exe", "designer.exe",
- "linguist.exe"])
+ "linguist.exe", "qmlformat.exe", "qmlls.exe"])
copydir(
"{install_dir}/bin/",
"{st_build_dir}/{st_package_name}",
diff --git a/build_scripts/utils.py b/build_scripts/utils.py
index fd9b8f71d..06a9cd1f2 100644
--- a/build_scripts/utils.py
+++ b/build_scripts/utils.py
@@ -15,6 +15,7 @@ import tempfile
import urllib.request as urllib
from collections import defaultdict
from pathlib import Path
+from textwrap import dedent, indent
try:
# Using the distutils implementation within setuptools
@@ -911,6 +912,8 @@ def find_qt_core_library_glob(lib_dir):
# ldd for the specified platforms.
# This has less priority because ICU libs are not used in the default
# Qt configuration build.
+# Note: Uses ldd to query shared library dependencies and thus does not
+# work for cross builds.
def copy_icu_libs(patchelf, destination_lib_dir):
"""
Copy ICU libraries that QtCore depends on,
@@ -1230,6 +1233,40 @@ def parse_cmake_conf_assignments_by_key(source_dir):
return d
+def _configure_failure_message(project_path, cmd, return_code, output, error, env):
+ """Format a verbose message about configure_cmake_project() failures."""
+ cmd_string = ' '.join(cmd)
+ error_text = indent(error.strip(), " ")
+ output_text = indent(output.strip(), " ")
+ result = dedent(f"""
+ Failed to configure CMake project: '{project_path}'
+ Configure args were:
+ {cmd_string}
+ Return code: {return_code}
+ """)
+
+ first = True
+ for k, v in env.items():
+ if k.startswith("CMAKE"):
+ if first:
+ result += "Environment:\n"
+ first = False
+ result += f" {k}={v}\n"
+
+ result += f"\nwith error:\n{error_text}\n"
+
+ CMAKE_CMAKEOUTPUT_LOG_PATTERN = r'See also "([^"]+CMakeOutput\.log)"\.'
+ cmakeoutput_log_match = re.search(CMAKE_CMAKEOUTPUT_LOG_PATTERN, output)
+ if cmakeoutput_log_match:
+ cmakeoutput_log = Path(cmakeoutput_log_match.group(1))
+ if cmakeoutput_log.is_file():
+ log = indent(cmakeoutput_log.read_text().strip(), " ")
+ result += f"CMakeOutput.log:\n{log}\n"
+
+ result += f"Output:\n{output_text}\n"
+ return result
+
+
def configure_cmake_project(project_path,
cmake_path,
build_path=None,
@@ -1257,23 +1294,16 @@ def configure_cmake_project(project_path,
for arg, value in cmake_cache_args:
cmd.extend([f'-D{arg}={value}'])
- cmd_string = ' '.join(cmd)
- # FIXME Python 3.7: Use subprocess.run()
- proc = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- shell=False,
- cwd=build_path,
- universal_newlines=True)
- output, error = proc.communicate()
- proc.wait()
+ proc = subprocess.run(cmd, shell=False, cwd=build_path,
+ capture_output=True, universal_newlines=True)
return_code = proc.returncode
+ output = proc.stdout
+ error = proc.stderr
if return_code != 0:
- raise RuntimeError(f"\nFailed to configure CMake project \n "
- f"'{project_path}' \n with error: \n {error}\n "
- f"Return code: {return_code}\n"
- f"Configure args were:\n {cmd_string}")
+ m = _configure_failure_message(project_path, cmd, return_code,
+ output, error, os.environ)
+ raise RuntimeError(m)
if clean_temp_dir:
remove_tree(build_path)
diff --git a/build_scripts/wheel_files.py b/build_scripts/wheel_files.py
index d9f2d0729..e5e15f218 100644
--- a/build_scripts/wheel_files.py
+++ b/build_scripts/wheel_files.py
@@ -257,6 +257,8 @@ def module_QtCore() -> ModuleData:
data.extra_files.append("lrelease*")
data.extra_files.append("lupdate*")
data.extra_files.append("qmllint*")
+ data.extra_files.append("qmlformat*")
+ data.extra_files.append("qmlls*")
# General translations
data.translations.append("qtbase_*")
diff --git a/build_scripts/wheel_override.py b/build_scripts/wheel_override.py
index 0a359c08e..b118ef765 100644
--- a/build_scripts/wheel_override.py
+++ b/build_scripts/wheel_override.py
@@ -100,7 +100,7 @@ class PysideBuildWheel(_bdist_wheel, DistUtilsCommandMixin):
so_abi = python_target_info['so_abi']
if so_abi and so_abi.startswith('cpython-'):
- interpreter_name, cp_version = so_abi.split('-')
+ interpreter_name, cp_version = so_abi.split('-')[:2]
impl_name = tags.INTERPRETER_SHORT_NAMES.get(interpreter_name) or interpreter_name
impl_ver = f"{py_version_major}{py_version_minor}"
impl = impl_name + impl_ver
diff --git a/coin_test_instructions.py b/coin_test_instructions.py
index e90c9e8af..461805043 100644
--- a/coin_test_instructions.py
+++ b/coin_test_instructions.py
@@ -96,9 +96,10 @@ def run_test_instructions():
# In win machines, there are additional python versions to test with
if CI_HOST_OS == "Windows":
- call_testrunner("3.6.1", str(testRun))
- call_testrunner("3.8.1", str(testRun))
- call_testrunner("3.10.0", str(testRun))
+ if os.environ.get('HOST_OSVERSION_COIN') == 'windows_10_21h2':
+ call_testrunner("3.10.0", str(testRun))
+ else:
+ call_testrunner("3.7.9", str(testRun))
elif CI_HOST_OS == "Linux":
call_testrunner("3.8", str(testRun))
else:
diff --git a/create_wheels.py b/create_wheels.py
index 5bf57f1d5..5b307df72 100644
--- a/create_wheels.py
+++ b/create_wheels.py
@@ -207,6 +207,8 @@ def wheel_pyside6_essentials() -> Tuple[SetupData, List[ModuleData]]:
"pyside6-qmltyperegistrar = PySide6.scripts.pyside_tool:qmltyperegistrar",
"pyside6-qmllint = PySide6.scripts.pyside_tool:qmllint",
"pyside6-qml = PySide6.scripts.pyside_tool:qml",
+ "pyside6-qmlformat = PySide6.scripts.pyside_tool:qmlformat",
+ "pyside6-qmlls = PySide6.scripts.pyside_tool:qmlls"
],
)
diff --git a/doc/changelogs/changes-6.3.2 b/doc/changelogs/changes-6.3.2
new file mode 100644
index 000000000..c2a40a854
--- /dev/null
+++ b/doc/changelogs/changes-6.3.2
@@ -0,0 +1,72 @@
+Qt for Python 6.3.2 is a bug-fix release.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+https://doc.qt.io/qtforpython/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* PySide6 *
+****************************************************************************
+
+ - [PYSIDE-841] New examples have been added (SpinBoxDelegate,
+ Bluetooth heart rate).
+ - [PYSIDE-1312] QFormLayout::takeRow() has been added.
+ - [PYSIDE-1735] The duplication of enum values into the enclosing scope,
+ allowing to write Qt.AlignLeft instead of Qt.Alignment.AlignLeft,
+ is now implemented differently and no longer advertized in PYI
+ files or line completion.
+ - [PYSIDE-1735] The new Python enums are made as compatible to the old ones
+ as possible. It is again allowed to use Qt.Alignment()
+ instead of Qt.AlignmentFlag(0), and a default of 0 is
+ always allowed but also not advertized.
+ Qt.Modifiers/Qt.KeyboardModifierflags can also still be used
+ interchangeably.
+ - [PYSIDE-1735] Most former IntEnum/IntFlag are replaced by pure Enum/Flag
+ classes in a generally compatible way to other implementations.
+ - [PYSIDE-1735] PyEnum handles QKeyCombination correctly with "|" or (deprecated)
+ "+" operators, without falling back to using IntEnum.
+ - [PYSIDE-1735] Python Enums use the newest implementation for Python (3.10)
+ for compatibility and speed.
+ - [PYSIDE-1735] A weird build problem on macOS and other platforms was fixed.
+ - [PYSide-1735] The cleanup calls by were sped up by using PyName for
+ staticMetaObject.
+ - [PYSIDE-1984] The code snippets in the modelview tutorial have been
+ improved.
+ - [PYSIDE-1930] Returning enums from QAbstractItemModel.flags() and
+ QAbstractItemModel.data() has been fixed.
+ - [PYSIDE-1934] The type hinting for the return value of
+ QListWidget.selected_indexes() has been fixed.
+ - [PYSIDE-1960] Initial support for Python 3.11 has been added.
+ - [PYSIDE-1968] The signature of QPixmap.save() has been fixed.
+ - [PYSIDE-1978] The signal
+ QAbstractItemModel.layoutAboutToBeChanged(QList<QPersistentModelIndex>)
+ has been fixed.
+ Also, the error message about using the wrong signal overload
+ has been improved.
+ - [PYSIDE-2030] The converter tools for Python code snippets for the
+ documentation has been improved.
+ - [PYSIDE-2019] Crashes related to QtDataVisualization'QValue3DAxisFormatter
+ have been fixed.
+ - [PYSIDE-2034] The static functions of QMessageBox have been fixed to not
+ block threads.
+ - [PYSIDE-2039] A regression affecting setting override cursors without
+ context manager has been fixed.
+
+
+****************************************************************************
+* Shiboken6 *
+****************************************************************************
+
+ - [PYSIDE-1964] The error message about mistakenly using keyword arguments
+ has been improved.
+ - [PYSIDE-1988] Fixed a mistaken PySequence_Check() type check to be
+ PyTuple_Check(), which only showed in Python 3.11.
diff --git a/examples/bluetooth/btscanner/device.py b/examples/bluetooth/btscanner/device.py
index daf0ab456..02fc53f0b 100644
--- a/examples/bluetooth/btscanner/device.py
+++ b/examples/bluetooth/btscanner/device.py
@@ -88,7 +88,7 @@ class DeviceDiscoveryDialog(QDialog):
else:
self._local_device.setHostMode(QBluetoothLocalDevice.HostPoweredOff)
- @Slot(QBluetoothLocalDevice.HostMode)
+ @Slot("QBluetoothLocalDevice::HostMode")
def host_mode_state_changed(self, mode):
self._ui.power.setChecked(mode != QBluetoothLocalDevice.HostPoweredOff)
self._ui.discoverable.setChecked(mode == QBluetoothLocalDevice.HostDiscoverable)
@@ -118,7 +118,7 @@ class DeviceDiscoveryDialog(QDialog):
elif chosen_action == remove_pair_action:
self._local_device.requestPairing(address, QBluetoothLocalDevice.Unpaired)
- @Slot(QBluetoothAddress, QBluetoothLocalDevice.Pairing)
+ @Slot(QBluetoothAddress, "QBluetoothLocalDevice::Pairing")
def pairing_done(self, address, pairing):
items = self._ui.list.findItems(address.toString(), Qt.MatchContains)
diff --git a/examples/bluetooth/heartrate_game/bluetoothbaseclass.py b/examples/bluetooth/heartrate_game/bluetoothbaseclass.py
new file mode 100644
index 000000000..cc5c9dbd0
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/bluetoothbaseclass.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import QObject, Property, Signal, Slot
+
+
+class BluetoothBaseClass(QObject):
+
+ errorChanged = Signal()
+ infoChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_error = ""
+ self.m_info = ""
+
+ @Property(str, notify=errorChanged)
+ def error(self):
+ return self.m_error
+
+ @error.setter
+ def error(self, e):
+ if self.m_error != e:
+ self.m_error = e
+ self.errorChanged.emit()
+
+ @Property(str, notify=infoChanged)
+ def info(self):
+ return self.m_info
+
+ @info.setter
+ def info(self, i):
+ if self.m_info != i:
+ self.m_info = i
+ self.infoChanged.emit()
+
+ @Slot()
+ def clearMessages(self):
+ self.info = ""
+ self.error = ""
diff --git a/examples/bluetooth/heartrate_game/connectionhandler.py b/examples/bluetooth/heartrate_game/connectionhandler.py
new file mode 100644
index 000000000..5bd7bfbb2
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/connectionhandler.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtBluetooth import QBluetoothLocalDevice
+from PySide6.QtQml import QmlElement
+from PySide6.QtCore import QObject, Property, Signal, Slot
+
+from heartrate_global import simulator
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Shared"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class ConnectionHandler(QObject):
+
+ deviceChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.m_localDevice = QBluetoothLocalDevice()
+ self.m_localDevice.hostModeStateChanged.connect(self.hostModeChanged)
+
+ @Property(bool, notify=deviceChanged)
+ def alive(self):
+ if sys.platform == "darwin":
+ return True
+ if simulator:
+ return True
+ return (self.m_localDevice.isValid()
+ and self.m_localDevice.hostMode() != QBluetoothLocalDevice.HostPoweredOff)
+
+ @Property(bool, constant=True)
+ def requiresAddressType(self):
+ return sys.platform == "linux" # QT_CONFIG(bluez)?
+
+ @Property(str, notify=deviceChanged)
+ def name(self):
+ return self.m_localDevice.name()
+
+ @Property(str, notify=deviceChanged)
+ def address(self):
+ return self.m_localDevice.address().toString()
+
+ @Slot(QBluetoothLocalDevice.HostMode)
+ def hostModeChanged(self, mode):
+ self.deviceChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/devicefinder.py b/examples/bluetooth/heartrate_game/devicefinder.py
new file mode 100644
index 000000000..c69f8ab89
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/devicefinder.py
@@ -0,0 +1,122 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtBluetooth import (QBluetoothDeviceDiscoveryAgent,
+ QBluetoothDeviceInfo)
+from PySide6.QtQml import QmlElement
+from PySide6.QtCore import QTimer, Property, Signal, Slot
+
+from bluetoothbaseclass import BluetoothBaseClass
+from deviceinfo import DeviceInfo
+from heartrate_global import simulator
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Shared"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlElement
+class DeviceFinder(BluetoothBaseClass):
+
+ scanningChanged = Signal()
+ devicesChanged = Signal()
+
+ def __init__(self, handler, parent=None):
+ super().__init__(parent)
+ self.m_deviceHandler = handler
+ self.m_devices = []
+ self.m_demoTimer = QTimer()
+#! [devicediscovery-1]
+ self.m_deviceDiscoveryAgent = QBluetoothDeviceDiscoveryAgent(self)
+ self.m_deviceDiscoveryAgent.setLowEnergyDiscoveryTimeout(15000)
+ self.m_deviceDiscoveryAgent.deviceDiscovered.connect(self.addDevice)
+ self.m_deviceDiscoveryAgent.errorOccurred.connect(self.scanError)
+
+ self.m_deviceDiscoveryAgent.finished.connect(self.scanFinished)
+ self.m_deviceDiscoveryAgent.canceled.connect(self.scanFinished)
+#! [devicediscovery-1]
+ if simulator:
+ self.m_demoTimer.setSingleShot(True)
+ self.m_demoTimer.setInterval(2000)
+ self.m_demoTimer.timeout.connect(self.scanFinished)
+
+ @Slot()
+ def startSearch(self):
+ self.clearMessages()
+ self.m_deviceHandler.setDevice(None)
+ self.m_devices.clear()
+
+ self.devicesChanged.emit()
+
+ if simulator:
+ self.m_demoTimer.start()
+ else:
+#! [devicediscovery-2]
+ self.m_deviceDiscoveryAgent.start(QBluetoothDeviceDiscoveryAgent.LowEnergyMethod)
+#! [devicediscovery-2]
+ self.scanningChanged.emit()
+ self.info = "Scanning for devices..."
+
+#! [devicediscovery-3]
+ @Slot(QBluetoothDeviceInfo)
+ def addDevice(self, device):
+ # If device is LowEnergy-device, add it to the list
+ if device.coreConfigurations() & QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
+ self.m_devices.append(DeviceInfo(device))
+ self.info = "Low Energy device found. Scanning more..."
+#! [devicediscovery-3]
+ self.devicesChanged.emit()
+#! [devicediscovery-4]
+ #...
+#! [devicediscovery-4]
+
+ @Slot(QBluetoothDeviceDiscoveryAgent.Error)
+ def scanError(self, error):
+ if error == QBluetoothDeviceDiscoveryAgent.PoweredOffError:
+ self.error = "The Bluetooth adaptor is powered off."
+ elif error == QBluetoothDeviceDiscoveryAgent.InputOutputError:
+ self.error = "Writing or reading from the device resulted in an error."
+ else:
+ self.error = "An unknown error has occurred."
+
+ @Slot()
+ def scanFinished(self):
+ if simulator:
+ # Only for testing
+ for i in range(5):
+ self.m_devices.append(DeviceInfo(QBluetoothDeviceInfo()))
+
+ if self.m_devices:
+ self.info = "Scanning done."
+ else:
+ self.error = "No Low Energy devices found."
+
+ self.scanningChanged.emit()
+ self.devicesChanged.emit()
+
+ @Slot(str)
+ def connectToService(self, address):
+ self.m_deviceDiscoveryAgent.stop()
+
+ currentDevice = None
+ for entry in self.m_devices:
+ device = entry
+ if device and device.deviceAddress == address:
+ currentDevice = device
+ break
+
+ if currentDevice:
+ self.m_deviceHandler.setDevice(currentDevice)
+
+ self.clearMessages()
+
+ @Property(bool, notify=scanningChanged)
+ def scanning(self):
+ if simulator:
+ return self.m_demoTimer.isActive()
+ return self.m_deviceDiscoveryAgent.isActive()
+
+ @Property("QVariant", notify=devicesChanged)
+ def devices(self):
+ return self.m_devices
diff --git a/examples/bluetooth/heartrate_game/devicehandler.py b/examples/bluetooth/heartrate_game/devicehandler.py
new file mode 100644
index 000000000..421102b28
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/devicehandler.py
@@ -0,0 +1,307 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import struct
+
+from enum import IntEnum
+
+from PySide6.QtBluetooth import (QLowEnergyCharacteristic,
+ QLowEnergyController,
+ QLowEnergyDescriptor,
+ QLowEnergyService,
+ QBluetoothUuid)
+from PySide6.QtQml import QmlNamedElement, QmlUncreatable
+from PySide6.QtCore import (QByteArray, QDateTime, QRandomGenerator, QTimer,
+ Property, Signal, Slot, QEnum)
+
+from bluetoothbaseclass import BluetoothBaseClass
+from heartrate_global import simulator
+
+
+# To be used on the @QmlElement decorator
+# (QML_IMPORT_MINOR_VERSION is optional)
+QML_IMPORT_NAME = "Shared"
+QML_IMPORT_MAJOR_VERSION = 1
+
+
+@QmlNamedElement("AddressType")
+@QmlUncreatable("Enum is not a type")
+class DeviceHandler(BluetoothBaseClass):
+
+ @QEnum
+ class AddressType(IntEnum):
+ PUBLIC_ADDRESS = 1
+ RANDOM_ADDRESS = 2
+
+ measuringChanged = Signal()
+ aliveChanged = Signal()
+ statsChanged = Signal()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.m_control = None
+ self.m_service = None
+ self.m_notificationDesc = QLowEnergyDescriptor()
+ self.m_currentDevice = None
+
+ self.m_foundHeartRateService = False
+ self.m_measuring = False
+ self.m_currentValue = 0
+ self.m_min = 0
+ self.m_max = 0
+ self.m_sum = 0
+ self.m_avg = 0.0
+ self.m_calories = 0.0
+
+ self.m_start = QDateTime()
+ self.m_stop = QDateTime()
+
+ self.m_measurements = []
+ self.m_addressType = QLowEnergyController.PublicAddress
+
+ self.m_demoTimer = QTimer()
+
+ if simulator:
+ self.m_demoTimer.setSingleShot(False)
+ self.m_demoTimer.setInterval(2000)
+ self.m_demoTimer.timeout.connect(self.updateDemoHR)
+ self.m_demoTimer.start()
+ self.updateDemoHR()
+
+ @Property(int)
+ def addressType(self):
+ if self.m_addressType == QLowEnergyController.RandomAddress:
+ return DeviceHandler.AddressType.RANDOM_ADDRESS
+ return DeviceHandler.AddressType.PUBLIC_ADDRESS
+
+ @addressType.setter
+ def addressType(self, type):
+ if type == DeviceHandler.AddressType.PUBLIC_ADDRESS:
+ self.m_addressType = QLowEnergyController.PublicAddress
+ elif type == DeviceHandler.AddressType.RANDOM_ADDRESS:
+ self.m_addressType = QLowEnergyController.RandomAddress
+
+ @Slot(QLowEnergyController.Error)
+ def controllerErrorOccurred(self, device):
+ self.error = "Cannot connect to remote device."
+
+ @Slot()
+ def controllerConnected(self):
+ self.info = "Controller connected. Search services..."
+ self.m_control.discoverServices()
+
+ @Slot()
+ def controllerDisconnected(self):
+ self.error = "LowEnergy controller disconnected"
+
+ def setDevice(self, device):
+ self.clearMessages()
+ self.m_currentDevice = device
+
+ if simulator:
+ self.info = "Demo device connected."
+ return
+
+ # Disconnect and delete old connection
+ if self.m_control:
+ self.m_control.disconnectFromDevice()
+ m_control = None
+
+ # Create new controller and connect it if device available
+ if self.m_currentDevice:
+
+ # Make connections
+#! [Connect-Signals-1]
+ self.m_control = QLowEnergyController.createCentral(self.m_currentDevice.getDevice(), self)
+#! [Connect-Signals-1]
+ self.m_control.setRemoteAddressType(self.m_addressType)
+#! [Connect-Signals-2]
+
+ m_control.serviceDiscovered.connect(self.serviceDiscovered)
+ m_control.discoveryFinished.connect(self.serviceScanDone)
+
+ self.m_control.errorOccurred.connect(self.controllerErrorOccurred)
+ self.m_control.connected.connect(self.controllerConnected)
+ self.m_control.disconnected.connect(self.controllerDisconnected)
+
+ # Connect
+ self.m_control.connectToDevice()
+#! [Connect-Signals-2]
+
+ @Slot()
+ def startMeasurement(self):
+ if self.alive:
+ self.m_start = QDateTime.currentDateTime()
+ self.m_min = 0
+ self.m_max = 0
+ self.m_avg = 0
+ self.m_sum = 0
+ self.m_calories = 0.0
+ self.m_measuring = True
+ self.m_measurements.clear()
+ self.measuringChanged.emit()
+
+ @Slot()
+ def stopMeasurement(self):
+ self.m_measuring = False
+ self.measuringChanged.emit()
+
+#! [Filter HeartRate service 1]
+ @Slot(QBluetoothUuid)
+ def serviceDiscovered(self, gatt):
+ if gatt == QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate):
+ self.info = "Heart Rate service discovered. Waiting for service scan to be done..."
+ self.m_foundHeartRateService = True
+
+#! [Filter HeartRate service 1]
+
+ @Slot()
+ def serviceScanDone(self):
+ self.info = "Service scan done."
+
+ # Delete old service if available
+ if self.m_service:
+ self.m_service = None
+
+#! [Filter HeartRate service 2]
+ # If heartRateService found, create new service
+ if self.m_foundHeartRateService:
+ self.m_service = self.m_control.createServiceObject(QBluetoothUuid(QBluetoothUuid.ServiceClassUuid.HeartRate), self)
+
+ if self.m_service:
+ self.m_service.stateChanged.connect(self.serviceStateChanged)
+ self.m_service.characteristicChanged.connect(self.updateHeartRateValue)
+ self.m_service.descriptorWritten.connect(self.confirmedDescriptorWrite)
+ self.m_service.discoverDetails()
+ else:
+ self.error = "Heart Rate Service not found."
+#! [Filter HeartRate service 2]
+
+# Service functions
+#! [Find HRM characteristic]
+ @Slot(QLowEnergyService.ServiceState)
+ def serviceStateChanged(self, switch):
+ if switch == QLowEnergyService.RemoteServiceDiscovering:
+ self.setInfo(tr("Discovering services..."))
+ elif switch == QLowEnergyService.RemoteServiceDiscovered:
+ self.setInfo(tr("Service discovered."))
+ hrChar = m_service.characteristic(QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement))
+ if hrChar.isValid():
+ self.m_notificationDesc = hrChar.descriptor(QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration)
+ if self.m_notificationDesc.isValid():
+ self.m_service.writeDescriptor(m_notificationDesc,
+ QByteArray.fromHex(b"0100"))
+ else:
+ self.error = "HR Data not found."
+ self.aliveChanged.emit()
+#! [Find HRM characteristic]
+
+#! [Reading value]
+ @Slot(QLowEnergyCharacteristic, QByteArray)
+ def updateHeartRateValue(self, c, value):
+ # ignore any other characteristic change. Shouldn't really happen though
+ if c.uuid() != QBluetoothUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement):
+ return
+
+ data = value.data()
+ flags = int(data[0])
+ # Heart Rate
+ hrvalue = 0
+ if flags & 0x1: # HR 16 bit little endian? otherwise 8 bit
+ hrvalue = struct.unpack("<H", data[1:3])
+ else:
+ hrvalue = struct.unpack("B", data[1:2])
+
+ self.addMeasurement(hrvalue)
+
+#! [Reading value]
+ @Slot()
+ def updateDemoHR(self):
+ randomValue = 0
+ if self.m_currentValue < 30: # Initial value
+ randomValue = 55 + QRandomGenerator.global_().bounded(30)
+ elif not self.m_measuring: # Value when relax
+ random = QRandomGenerator.global_().bounded(5)
+ randomValue = self.m_currentValue - 2 + random
+ randomValue = max(min(randomValue, 55), 75)
+ else: # Measuring
+ random = QRandomGenerator.global_().bounded(10)
+ randomValue = self.m_currentValue + random - 2
+
+ self.addMeasurement(randomValue)
+
+ @Slot(QLowEnergyCharacteristic, QByteArray)
+ def confirmedDescriptorWrite(self, d, value):
+ if (d.isValid() and d == self.m_notificationDesc
+ and value == QByteArray.fromHex(b"0000")):
+ # disabled notifications . assume disconnect intent
+ self.m_control.disconnectFromDevice()
+ self.m_service = None
+
+ @Slot()
+ def disconnectService(self):
+ self.m_foundHeartRateService = False
+
+ # disable notifications
+ if (self.m_notificationDesc.isValid() and self.m_service
+ and self.m_notificationDesc.value() == QByteArray.fromHex(b"0100")):
+ self.m_service.writeDescriptor(self.m_notificationDesc,
+ QByteArray.fromHex(b"0000"))
+ else:
+ if self.m_control:
+ self.m_control.disconnectFromDevice()
+ self.m_service = None
+
+ @Property(bool, notify=measuringChanged)
+ def measuring(self):
+ return self.m_measuring
+
+ @Property(bool, notify=aliveChanged)
+ def alive(self):
+ if simulator:
+ return True
+ if self.m_service:
+ return self.m_service.state() == QLowEnergyService.RemoteServiceDiscovered
+ return False
+
+ @Property(int, notify=statsChanged)
+ def hr(self):
+ return self.m_currentValue
+
+ @Property(int, notify=statsChanged)
+ def time(self):
+ return self.m_start.secsTo(self.m_stop)
+
+ @Property(int, notify=statsChanged)
+ def maxHR(self):
+ return self.m_max
+
+ @Property(int, notify=statsChanged)
+ def minHR(self):
+ return self.m_min
+
+ @Property(float, notify=statsChanged)
+ def average(self):
+ return self.m_avg
+
+ @Property(float, notify=statsChanged)
+ def calories(self):
+ return self.m_calories
+
+ def addMeasurement(self, value):
+ self.m_currentValue = value
+
+ # If measuring and value is appropriate
+ if self.m_measuring and value > 30 and value < 250:
+ self.m_stop = QDateTime.currentDateTime()
+ self.m_measurements.append(value)
+
+ self.m_min = value if self.m_min == 0 else min(value, self.m_min)
+ self.m_max = max(value, self.m_max)
+ self.m_sum += value
+ self.m_avg = float(self.m_sum) / len(self.m_measurements)
+ self.m_calories = ((-55.0969 + (0.6309 * self.m_avg) + (0.1988 * 94)
+ + (0.2017 * 24)) / 4.184) * 60 * self.time / 3600
+
+ self.statsChanged.emit()
diff --git a/examples/bluetooth/heartrate_game/deviceinfo.py b/examples/bluetooth/heartrate_game/deviceinfo.py
new file mode 100644
index 000000000..4ea08628f
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/deviceinfo.py
@@ -0,0 +1,38 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QObject, Property, Signal
+
+from heartrate_global import simulator
+
+
+class DeviceInfo(QObject):
+
+ deviceChanged = Signal()
+
+ def __init__(self, device):
+ super().__init__()
+ self.m_device = device
+
+ def device(self):
+ return self.m_device
+
+ def setDevice(self, device):
+ self.m_device = device
+ self.deviceChanged.emit()
+
+ @Property(str, notify=deviceChanged)
+ def deviceName(self):
+ if simulator:
+ return "Demo device"
+ return self.m_device.name()
+
+ @Property(str, notify=deviceChanged)
+ def deviceAddress(self):
+ if simulator:
+ return "00:11:22:33:44:55"
+ if sys.platform == "Darwin": # workaround for Core Bluetooth:
+ return self.m_device.deviceUuid().toString()
+ return self.m_device.address().toString()
diff --git a/examples/bluetooth/heartrate_game/doc/heartrate_game.rst b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
new file mode 100644
index 000000000..0a0938cad
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/doc/heartrate_game.rst
@@ -0,0 +1,9 @@
+Bluetooth Low Energy Heart Rate Game
+====================================
+
+The Bluetooth Low Energy Heart Rate Game shows how to develop a
+Bluetooth Low Energy application using the Qt Bluetooth API. The
+application covers the scanning for Bluetooth Low Energy devices,
+connecting to a Heart Rate service on the device, writing
+characteristics and descriptors, and receiving updates from the device
+once the heart rate has changed.
diff --git a/examples/bluetooth/heartrate_game/heartrate_game.pyproject b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
new file mode 100644
index 000000000..e4c40874a
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/heartrate_game.pyproject
@@ -0,0 +1,22 @@
+{
+ "files": ["main.py",
+ "bluetoothbaseclass.py",
+ "connectionhandler.py",
+ "devicefinder.py",
+ "devicehandler.py",
+ "deviceinfo.py",
+ "heartrate_global.py",
+ "qml/main.qml",
+ "qml/App.qml",
+ "qml/BluetoothAlarmDialog.qml",
+ "qml/BottomLine.qml",
+ "qml/Connect.qml",
+ "qml/GameButton.qml",
+ "qml/GamePage.qml",
+ "qml/GameSettings.qml",
+ "qml/Measure.qml",
+ "qml/SplashScreen.qml",
+ "qml/Stats.qml",
+ "qml/StatsLabel.qml",
+ "qml/TitleBar.qml"]
+}
diff --git a/examples/bluetooth/heartrate_game/heartrate_global.py b/examples/bluetooth/heartrate_game/heartrate_global.py
new file mode 100644
index 000000000..7d95f1299
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/heartrate_global.py
@@ -0,0 +1,6 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+simulator = sys.platform == "win32"
diff --git a/examples/bluetooth/heartrate_game/main.py b/examples/bluetooth/heartrate_game/main.py
new file mode 100644
index 000000000..a101a05bf
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/main.py
@@ -0,0 +1,53 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/heartrate-game example from Qt v6.x"""
+
+import os
+from pathlib import Path
+import sys
+from argparse import ArgumentParser, Namespace, RawDescriptionHelpFormatter
+
+from PySide6.QtQml import QQmlApplicationEngine, QQmlContext
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QCoreApplication, QLoggingCategory, QUrl
+
+from connectionhandler import ConnectionHandler
+from devicefinder import DeviceFinder
+from devicehandler import DeviceHandler
+from heartrate_global import simulator
+
+
+if __name__ == '__main__':
+ parser = ArgumentParser(prog="heartrate-game",
+ formatter_class=RawDescriptionHelpFormatter)
+
+ parser.add_argument("-v", "--verbose", action="store_true",
+ help="Generate more output")
+ parser.add_argument("-s", "--simulator", action="store_true",
+ help="Use Simulator")
+ options = parser.parse_args()
+ simulator = options.simulator
+ if options.verbose:
+ QLoggingCategory.setFilterRules("qt.bluetooth* = true")
+
+ app = QGuiApplication(sys.argv)
+
+ connectionHandler = ConnectionHandler()
+ deviceHandler = DeviceHandler()
+ deviceFinder = DeviceFinder(deviceHandler)
+
+ engine = QQmlApplicationEngine()
+ engine.setInitialProperties({
+ "connectionHandler": connectionHandler,
+ "deviceFinder": deviceFinder,
+ "deviceHandler": deviceHandler})
+
+ qml_file = os.fspath(Path(__file__).resolve().parent / "qml" / "main.qml")
+ engine.load(QUrl.fromLocalFile(qml_file))
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ ex = QCoreApplication.exec()
+ del engine
+ sys.exit(ex)
diff --git a/examples/bluetooth/heartrate_game/qml/App.qml b/examples/bluetooth/heartrate_game/qml/App.qml
new file mode 100644
index 000000000..1eb532021
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/App.qml
@@ -0,0 +1,83 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: app
+ anchors.fill: parent
+ opacity: 0.0
+
+ Behavior on opacity { NumberAnimation { duration: 500 } }
+
+ property var lastPages: []
+ property int __currentIndex: 0
+
+ function init()
+ {
+ opacity = 1.0
+ showPage("Connect.qml")
+ }
+
+ function prevPage()
+ {
+ lastPages.pop()
+ pageLoader.setSource(lastPages[lastPages.length-1])
+ __currentIndex = lastPages.length-1;
+ }
+
+ function showPage(name)
+ {
+ lastPages.push(name)
+ pageLoader.setSource(name)
+ __currentIndex = lastPages.length-1;
+ }
+
+ TitleBar {
+ id: titleBar
+ currentIndex: __currentIndex
+
+ onTitleClicked: (index) => {
+ if (index < __currentIndex)
+ pageLoader.item.close()
+ }
+ }
+
+ Loader {
+ id: pageLoader
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: titleBar.bottom
+ anchors.bottom: parent.bottom
+
+ onStatusChanged: {
+ if (status === Loader.Ready)
+ {
+ pageLoader.item.init();
+ pageLoader.item.forceActiveFocus()
+ }
+ }
+ }
+
+ Keys.onReleased: (event) => {
+ switch (event.key) {
+ case Qt.Key_Escape:
+ case Qt.Key_Back: {
+ if (__currentIndex > 0) {
+ pageLoader.item.close()
+ event.accepted = true
+ } else {
+ Qt.quit()
+ }
+ break;
+ }
+ default: break;
+ }
+ }
+
+ BluetoothAlarmDialog {
+ id: btAlarmDialog
+ anchors.fill: parent
+ visible: !connectionHandler.alive
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml b/examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml
new file mode 100644
index 000000000..0be61e4f8
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/BluetoothAlarmDialog.qml
@@ -0,0 +1,74 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Item {
+ id: root
+ anchors.fill: parent
+
+ Rectangle {
+ anchors.fill: parent
+ color: "black"
+ opacity: 0.9
+ }
+
+ MouseArea {
+ id: eventEater
+ }
+
+ Rectangle {
+ id: dialogFrame
+
+ anchors.centerIn: parent
+ width: parent.width * 0.8
+ height: parent.height * 0.6
+ border.color: "#454545"
+ color: GameSettings.backgroundColor
+ radius: width * 0.05
+
+ Item {
+ id: dialogContainer
+ anchors.fill: parent
+ anchors.margins: parent.width*0.05
+
+ Image {
+ id: offOnImage
+ anchors.left: quitButton.left
+ anchors.right: quitButton.right
+ anchors.top: parent.top
+ height: GameSettings.heightForWidth(width, sourceSize)
+ source: "images/bt_off_to_on.png"
+ }
+
+ Text {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: offOnImage.bottom
+ anchors.bottom: quitButton.top
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.WordWrap
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ text: qsTr("This application cannot be used without Bluetooth. Please switch Bluetooth ON to continue.")
+ }
+
+ GameButton {
+ id: quitButton
+ anchors.bottom: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: dialogContainer.width * 0.6
+ height: GameSettings.buttonHeight
+ onClicked: Qt.quit()
+
+ Text {
+ anchors.centerIn: parent
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.bigFontSize
+ text: qsTr("Quit")
+ }
+ }
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/BottomLine.qml b/examples/bluetooth/heartrate_game/qml/BottomLine.qml
new file mode 100644
index 000000000..caebc307e
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/BottomLine.qml
@@ -0,0 +1,12 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ width: parent.width * 0.85
+ height: parent.height * 0.05
+ radius: height*0.5
+}
diff --git a/examples/bluetooth/heartrate_game/qml/Connect.qml b/examples/bluetooth/heartrate_game/qml/Connect.qml
new file mode 100644
index 000000000..d9ebbdc51
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/Connect.qml
@@ -0,0 +1,141 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import Shared
+
+GamePage {
+
+ errorMessage: deviceFinder.error
+ infoMessage: deviceFinder.info
+
+ Rectangle {
+ id: viewContainer
+ anchors.top: parent.top
+ anchors.bottom:
+ // only BlueZ platform has address type selection
+ connectionHandler.requiresAddressType ? addressTypeButton.top : searchButton.top
+ anchors.topMargin: GameSettings.fieldMargin + messageHeight
+ anchors.bottomMargin: GameSettings.fieldMargin
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width - GameSettings.fieldMargin*2
+ color: GameSettings.viewColor
+ radius: GameSettings.buttonRadius
+
+
+ Text {
+ id: title
+ width: parent.width
+ height: GameSettings.fieldHeight
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.mediumFontSize
+ text: qsTr("FOUND DEVICES")
+
+ BottomLine {
+ height: 1;
+ width: parent.width
+ color: "#898989"
+ }
+ }
+
+
+ ListView {
+ id: devices
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.top: title.bottom
+ model: deviceFinder.devices
+ clip: true
+
+ delegate: Rectangle {
+ id: box
+ height:GameSettings.fieldHeight * 1.2
+ width: devices.width
+ color: index % 2 === 0 ? GameSettings.delegate1Color : GameSettings.delegate2Color
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ deviceFinder.connectToService(modelData.deviceAddress);
+ app.showPage("Measure.qml")
+ }
+ }
+
+ Text {
+ id: device
+ font.pixelSize: GameSettings.smallFontSize
+ text: modelData.deviceName
+ anchors.top: parent.top
+ anchors.topMargin: parent.height * 0.1
+ anchors.leftMargin: parent.height * 0.1
+ anchors.left: parent.left
+ color: GameSettings.textColor
+ }
+
+ Text {
+ id: deviceAddress
+ font.pixelSize: GameSettings.smallFontSize
+ text: modelData.deviceAddress
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: parent.height * 0.1
+ anchors.rightMargin: parent.height * 0.1
+ anchors.right: parent.right
+ color: Qt.darker(GameSettings.textColor)
+ }
+ }
+ }
+ }
+
+ GameButton {
+ id: addressTypeButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: searchButton.top
+ anchors.bottomMargin: GameSettings.fieldMargin*0.5
+ width: viewContainer.width
+ height: GameSettings.fieldHeight
+ visible: connectionHandler.requiresAddressType // only required on BlueZ
+ state: "public"
+ onClicked: state == "public" ? state = "random" : state = "public"
+
+ states: [
+ State {
+ name: "public"
+ PropertyChanges { target: addressTypeText; text: qsTr("Public Address") }
+ PropertyChanges { target: deviceHandler; addressType: AddressType.PUBLIC_ADDRESS }
+ },
+ State {
+ name: "random"
+ PropertyChanges { target: addressTypeText; text: qsTr("Random Address") }
+ PropertyChanges { target: deviceHandler; addressType: AddressType.RANDOM_ADDRESS }
+ }
+ ]
+
+ Text {
+ id: addressTypeText
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ color: GameSettings.textColor
+ }
+ }
+
+ GameButton {
+ id: searchButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: GameSettings.fieldMargin
+ width: viewContainer.width
+ height: GameSettings.fieldHeight
+ enabled: !deviceFinder.scanning
+ onClicked: deviceFinder.startSearch()
+
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ text: qsTr("START SEARCH")
+ color: searchButton.enabled ? GameSettings.textColor : GameSettings.disabledTextColor
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/GameButton.qml b/examples/bluetooth/heartrate_game/qml/GameButton.qml
new file mode 100644
index 000000000..3ce9d66fd
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/GameButton.qml
@@ -0,0 +1,41 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import "."
+
+Rectangle {
+ id: button
+ color: baseColor
+ onEnabledChanged: checkColor()
+ radius: GameSettings.buttonRadius
+
+ property color baseColor: GameSettings.buttonColor
+ property color pressedColor: GameSettings.buttonPressedColor
+ property color disabledColor: GameSettings.disabledButtonColor
+
+ signal clicked()
+
+ function checkColor()
+ {
+ if (!button.enabled) {
+ button.color = disabledColor
+ } else {
+ if (mouseArea.containsPress)
+ button.color = pressedColor
+ else
+ button.color = baseColor
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ onPressed: checkColor()
+ onReleased: checkColor()
+ onClicked: {
+ checkColor()
+ button.clicked()
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/GamePage.qml b/examples/bluetooth/heartrate_game/qml/GamePage.qml
new file mode 100644
index 000000000..25a5bb3d1
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/GamePage.qml
@@ -0,0 +1,46 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import "."
+
+Item {
+ anchors.fill: parent
+
+ property string errorMessage: ""
+ property string infoMessage: ""
+ property real messageHeight: msg.height
+ property bool hasError: errorMessage != ""
+ property bool hasInfo: infoMessage != ""
+
+ function init()
+ {
+ }
+
+ function close()
+ {
+ app.prevPage()
+ }
+
+ Rectangle {
+ id: msg
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: GameSettings.fieldHeight
+ color: hasError ? GameSettings.errorColor : GameSettings.infoColor
+ visible: hasError || hasInfo
+
+ Text {
+ id: error
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ minimumPixelSize: 5
+ font.pixelSize: GameSettings.smallFontSize
+ fontSizeMode: Text.Fit
+ color: GameSettings.textColor
+ text: hasError ? errorMessage : infoMessage
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/GameSettings.qml b/examples/bluetooth/heartrate_game/qml/GameSettings.qml
new file mode 100644
index 000000000..f265b73c3
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/GameSettings.qml
@@ -0,0 +1,54 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+pragma Singleton
+import QtQuick
+
+Item {
+ property int wHeight
+ property int wWidth
+
+ // Colors
+ readonly property color backgroundColor: "#2d3037"
+ readonly property color buttonColor: "#202227"
+ readonly property color buttonPressedColor: "#6ccaf2"
+ readonly property color disabledButtonColor: "#555555"
+ readonly property color viewColor: "#202227"
+ readonly property color delegate1Color: Qt.darker(viewColor, 1.2)
+ readonly property color delegate2Color: Qt.lighter(viewColor, 1.2)
+ readonly property color textColor: "#ffffff"
+ readonly property color textDarkColor: "#232323"
+ readonly property color disabledTextColor: "#777777"
+ readonly property color sliderColor: "#6ccaf2"
+ readonly property color errorColor: "#ba3f62"
+ readonly property color infoColor: "#3fba62"
+
+ // Font sizes
+ property real microFontSize: hugeFontSize * 0.2
+ property real tinyFontSize: hugeFontSize * 0.4
+ property real smallTinyFontSize: hugeFontSize * 0.5
+ property real smallFontSize: hugeFontSize * 0.6
+ property real mediumFontSize: hugeFontSize * 0.7
+ property real bigFontSize: hugeFontSize * 0.8
+ property real largeFontSize: hugeFontSize * 0.9
+ property real hugeFontSize: (wWidth + wHeight) * 0.03
+ property real giganticFontSize: (wWidth + wHeight) * 0.04
+
+ // Some other values
+ property real fieldHeight: wHeight * 0.08
+ property real fieldMargin: fieldHeight * 0.5
+ property real buttonHeight: wHeight * 0.08
+ property real buttonRadius: buttonHeight * 0.1
+
+ // Some help functions
+ function widthForHeight(h, ss)
+ {
+ return h/ss.height * ss.width;
+ }
+
+ function heightForWidth(w, ss)
+ {
+ return w/ss.width * ss.height;
+ }
+
+}
diff --git a/examples/bluetooth/heartrate_game/qml/Measure.qml b/examples/bluetooth/heartrate_game/qml/Measure.qml
new file mode 100644
index 000000000..c434d5114
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/Measure.qml
@@ -0,0 +1,197 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+GamePage {
+ id: measurePage
+
+ errorMessage: deviceHandler.error
+ infoMessage: deviceHandler.info
+
+ property real __timeCounter: 0;
+ property real __maxTimeCount: 60
+ property string relaxText: qsTr("Relax!\nWhen you are ready, press Start. You have %1s time to increase heartrate so much as possible.\nGood luck!").arg(__maxTimeCount)
+
+ function close()
+ {
+ deviceHandler.stopMeasurement();
+ deviceHandler.disconnectService();
+ app.prevPage();
+ }
+
+ function start()
+ {
+ if (!deviceHandler.measuring) {
+ __timeCounter = 0;
+ deviceHandler.startMeasurement()
+ }
+ }
+
+ function stop()
+ {
+ if (deviceHandler.measuring) {
+ deviceHandler.stopMeasurement()
+ }
+
+ app.showPage("Stats.qml")
+ }
+
+ Timer {
+ id: measureTimer
+ interval: 1000
+ running: deviceHandler.measuring
+ repeat: true
+ onTriggered: {
+ __timeCounter++;
+ if (__timeCounter >= __maxTimeCount)
+ measurePage.stop()
+ }
+ }
+
+ Column {
+ anchors.centerIn: parent
+ spacing: GameSettings.fieldHeight * 0.5
+
+ Rectangle {
+ id: circle
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: Math.min(measurePage.width, measurePage.height-GameSettings.fieldHeight*4) - 2*GameSettings.fieldMargin
+ height: width
+ radius: width*0.5
+ color: GameSettings.viewColor
+
+ Text {
+ id: hintText
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -parent.height*0.1
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ width: parent.width * 0.8
+ height: parent.height * 0.6
+ wrapMode: Text.WordWrap
+ text: measurePage.relaxText
+ visible: !deviceHandler.measuring
+ color: GameSettings.textColor
+ fontSizeMode: Text.Fit
+ minimumPixelSize: 10
+ font.pixelSize: GameSettings.mediumFontSize
+ }
+
+ Text {
+ id: text
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -parent.height*0.15
+ font.pixelSize: parent.width * 0.45
+ text: deviceHandler.hr
+ visible: deviceHandler.measuring
+ color: GameSettings.textColor
+ }
+
+ Item {
+ id: minMaxContainer
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width*0.7
+ height: parent.height * 0.15
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: parent.height*0.16
+ visible: deviceHandler.measuring
+
+ Text {
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ text: deviceHandler.minHR
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.hugeFontSize
+
+ Text {
+ anchors.left: parent.left
+ anchors.bottom: parent.top
+ font.pixelSize: parent.font.pixelSize*0.8
+ color: parent.color
+ text: "MIN"
+ }
+ }
+
+ Text {
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ text: deviceHandler.maxHR
+ color: GameSettings.textColor
+ font.pixelSize: GameSettings.hugeFontSize
+
+ Text {
+ anchors.right: parent.right
+ anchors.bottom: parent.top
+ font.pixelSize: parent.font.pixelSize*0.8
+ color: parent.color
+ text: "MAX"
+ }
+ }
+ }
+
+ Image {
+ id: heart
+ anchors.horizontalCenter: minMaxContainer.horizontalCenter
+ anchors.verticalCenter: minMaxContainer.bottom
+ width: parent.width * 0.2
+ height: width
+ source: "images/heart.png"
+ smooth: true
+ antialiasing: true
+
+ SequentialAnimation{
+ id: heartAnim
+ running: deviceHandler.alive
+ loops: Animation.Infinite
+ alwaysRunToEnd: true
+ PropertyAnimation { target: heart; property: "scale"; to: 1.2; duration: 500; easing.type: Easing.InQuad }
+ PropertyAnimation { target: heart; property: "scale"; to: 1.0; duration: 500; easing.type: Easing.OutQuad }
+ }
+ }
+ }
+
+ Rectangle {
+ id: timeSlider
+ color: GameSettings.viewColor
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: circle.width
+ height: GameSettings.fieldHeight
+ radius: GameSettings.buttonRadius
+
+ Rectangle {
+ height: parent.height
+ radius: parent.radius
+ color: GameSettings.sliderColor
+ width: Math.min(1.0,__timeCounter / __maxTimeCount) * parent.width
+ }
+
+ Text {
+ anchors.centerIn: parent
+ color: "gray"
+ text: (__maxTimeCount - __timeCounter).toFixed(0) + " s"
+ font.pixelSize: GameSettings.bigFontSize
+ }
+ }
+ }
+
+ GameButton {
+ id: startButton
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: GameSettings.fieldMargin
+ width: circle.width
+ height: GameSettings.fieldHeight
+ enabled: !deviceHandler.measuring
+ radius: GameSettings.buttonRadius
+
+ onClicked: start()
+
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: GameSettings.tinyFontSize
+ text: qsTr("START")
+ color: startButton.enabled ? GameSettings.textColor : GameSettings.disabledTextColor
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/SplashScreen.qml b/examples/bluetooth/heartrate_game/qml/SplashScreen.qml
new file mode 100644
index 000000000..23f71f08f
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/SplashScreen.qml
@@ -0,0 +1,43 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import "."
+
+Item {
+ id: root
+ anchors.fill: parent
+
+ property bool appIsReady: false
+ property bool splashIsReady: false
+
+ property bool ready: appIsReady && splashIsReady
+ onReadyChanged: if (ready) readyToGo();
+
+ signal readyToGo()
+
+ function appReady()
+ {
+ appIsReady = true
+ }
+
+ function errorInLoadingApp()
+ {
+ Qt.quit()
+ }
+
+ Image {
+ anchors.centerIn: parent
+ width: Math.min(parent.height, parent.width)*0.6
+ height: GameSettings.heightForWidth(width, sourceSize)
+ source: "images/logo.png"
+ }
+
+ Timer {
+ id: splashTimer
+ interval: 1000
+ onTriggered: splashIsReady = true
+ }
+
+ Component.onCompleted: splashTimer.start()
+}
diff --git a/examples/bluetooth/heartrate_game/qml/Stats.qml b/examples/bluetooth/heartrate_game/qml/Stats.qml
new file mode 100644
index 000000000..b818e85e4
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/Stats.qml
@@ -0,0 +1,52 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+GamePage {
+
+ Column {
+ anchors.centerIn: parent
+ width: parent.width
+
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: GameSettings.hugeFontSize
+ color: GameSettings.textColor
+ text: qsTr("RESULT")
+ }
+
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ font.pixelSize: GameSettings.giganticFontSize*3
+ color: GameSettings.textColor
+ text: (deviceHandler.maxHR - deviceHandler.minHR).toFixed(0)
+ }
+
+ Item {
+ height: GameSettings.fieldHeight
+ width: 1
+ }
+
+ StatsLabel {
+ title: qsTr("MIN")
+ value: deviceHandler.minHR.toFixed(0)
+ }
+
+ StatsLabel {
+ title: qsTr("MAX")
+ value: deviceHandler.maxHR.toFixed(0)
+ }
+
+ StatsLabel {
+ title: qsTr("AVG")
+ value: deviceHandler.average.toFixed(1)
+ }
+
+
+ StatsLabel {
+ title: qsTr("CALORIES")
+ value: deviceHandler.calories.toFixed(3)
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/StatsLabel.qml b/examples/bluetooth/heartrate_game/qml/StatsLabel.qml
new file mode 100644
index 000000000..cd5cda5be
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/StatsLabel.qml
@@ -0,0 +1,35 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import "."
+
+Item {
+ height: GameSettings.fieldHeight
+ width: parent.width
+
+ property alias title: leftText.text
+ property alias value: rightText.text
+
+ Text {
+ id: leftText
+ anchors.left: parent.left
+ height: parent.height
+ width: parent.width * 0.45
+ horizontalAlignment: Text.AlignRight
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ }
+
+ Text {
+ id: rightText
+ anchors.right: parent.right
+ height: parent.height
+ width: parent.width * 0.45
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: GameSettings.mediumFontSize
+ color: GameSettings.textColor
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/TitleBar.qml b/examples/bluetooth/heartrate_game/qml/TitleBar.qml
new file mode 100644
index 000000000..b7de77c4b
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/TitleBar.qml
@@ -0,0 +1,50 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+
+Rectangle {
+ id: titleBar
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: GameSettings.fieldHeight
+ color: GameSettings.viewColor
+
+ property var __titles: ["CONNECT", "MEASURE", "STATS"]
+ property int currentIndex: 0
+
+ signal titleClicked(int index)
+
+ Repeater {
+ model: 3
+ Text {
+ width: titleBar.width / 3
+ height: titleBar.height
+ x: index * width
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: __titles[index]
+ font.pixelSize: GameSettings.tinyFontSize
+ color: titleBar.currentIndex === index ? GameSettings.textColor : GameSettings.disabledTextColor
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: titleClicked(index)
+ }
+ }
+ }
+
+
+ Item {
+ anchors.bottom: parent.bottom
+ width: parent.width / 3
+ height: parent.height
+ x: currentIndex * width
+
+ BottomLine{}
+
+ Behavior on x { NumberAnimation { duration: 200 } }
+ }
+
+}
diff --git a/examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png b/examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png
new file mode 100644
index 000000000..5ea1f3f06
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/images/bt_off_to_on.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/qml/images/heart.png b/examples/bluetooth/heartrate_game/qml/images/heart.png
new file mode 100644
index 000000000..f2b3c0a3e
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/images/heart.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/qml/images/logo.png b/examples/bluetooth/heartrate_game/qml/images/logo.png
new file mode 100644
index 000000000..ea0af7e00
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/images/logo.png
Binary files differ
diff --git a/examples/bluetooth/heartrate_game/qml/main.qml b/examples/bluetooth/heartrate_game/qml/main.qml
new file mode 100644
index 000000000..44d824faf
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/main.qml
@@ -0,0 +1,63 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQuick
+import QtQuick.Window
+import "."
+import Shared
+
+Window {
+ id: wroot
+ visible: true
+ width: 720 * .7
+ height: 1240 * .7
+ title: qsTr("HeartRateGame")
+ color: GameSettings.backgroundColor
+
+ required property ConnectionHandler connectionHandler
+ required property DeviceFinder deviceFinder
+ required property AddressType deviceHandler
+
+ Component.onCompleted: {
+ GameSettings.wWidth = Qt.binding(function() {return width})
+ GameSettings.wHeight = Qt.binding(function() {return height})
+ }
+
+ Loader {
+ id: splashLoader
+ anchors.fill: parent
+ source: "SplashScreen.qml"
+ asynchronous: false
+ visible: true
+
+ onStatusChanged: {
+ if (status === Loader.Ready) {
+ appLoader.setSource("App.qml");
+ }
+ }
+ }
+
+ Connections {
+ target: splashLoader.item
+ function onReadyToGo() {
+ appLoader.visible = true
+ appLoader.item.init()
+ splashLoader.visible = false
+ splashLoader.setSource("")
+ appLoader.item.forceActiveFocus();
+ }
+ }
+
+ Loader {
+ id: appLoader
+ anchors.fill: parent
+ visible: false
+ asynchronous: true
+ onStatusChanged: {
+ if (status === Loader.Ready)
+ splashLoader.item.appReady()
+ if (status === Loader.Error)
+ splashLoader.item.errorInLoadingApp();
+ }
+ }
+}
diff --git a/examples/bluetooth/heartrate_game/qml/qmldir b/examples/bluetooth/heartrate_game/qml/qmldir
new file mode 100644
index 000000000..5e0d2b540
--- /dev/null
+++ b/examples/bluetooth/heartrate_game/qml/qmldir
@@ -0,0 +1 @@
+singleton GameSettings 1.0 GameSettings.qml
diff --git a/examples/bluetooth/heartrate_server/doc/heartrate_server.rst b/examples/bluetooth/heartrate_server/doc/heartrate_server.rst
new file mode 100644
index 000000000..aaa1a0988
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/doc/heartrate_server.rst
@@ -0,0 +1,8 @@
+Bluetooth Low Energy Heart Rate Server
+======================================
+
+The Bluetooth Low Energy Heart Rate Server is a command-line
+application that shows how to develop a Bluetooth GATT server using
+the Qt Bluetooth API. The application covers setting up a GATT
+service, advertising it and notifying clients about changes to
+characteristic values.
diff --git a/examples/bluetooth/heartrate_server/heartrate_server.py b/examples/bluetooth/heartrate_server/heartrate_server.py
new file mode 100644
index 000000000..f98cc6fe8
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/heartrate_server.py
@@ -0,0 +1,94 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""PySide6 port of the bluetooth/heartrate-server example from Qt v6.x"""
+
+import sys
+from enum import Enum
+
+from PySide6.QtBluetooth import (QBluetoothUuid, QLowEnergyAdvertisingData,
+ QLowEnergyAdvertisingParameters,
+ QLowEnergyCharacteristic,
+ QLowEnergyCharacteristicData,
+ QLowEnergyController,
+ QLowEnergyDescriptorData,
+ QLowEnergyServiceData)
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QByteArray, QTimer, QLoggingCategory
+
+
+class ValueChange(Enum):
+ VALUE_UP = 1
+ VALUE_DOWN = 2
+
+
+if __name__ == '__main__':
+ app = QGuiApplication(sys.argv)
+ QLoggingCategory.setFilterRules("qt.bluetooth* = true")
+
+#! [Advertising Data]
+ advertising_data = QLowEnergyAdvertisingData()
+ advertising_data.setDiscoverability(QLowEnergyAdvertisingData.DiscoverabilityGeneral)
+ advertising_data.setIncludePowerLevel(True)
+ advertising_data.setLocalName("HeartRateServer")
+ advertising_data.setServices([QBluetoothUuid.ServiceClassUuid.HeartRate])
+#! [Advertising Data]
+
+#! [Service Data]
+ char_data = QLowEnergyCharacteristicData()
+ char_data.setUuid(QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
+ char_data.setValue(QByteArray(2, 0))
+ char_data.setProperties(QLowEnergyCharacteristic.Notify)
+ client_config = QLowEnergyDescriptorData(QBluetoothUuid.DescriptorType.ClientCharacteristicConfiguration,
+ QByteArray(2, 0))
+ char_data.addDescriptor(client_config)
+
+ service_data = QLowEnergyServiceData()
+ service_data.setType(QLowEnergyServiceData.ServiceTypePrimary)
+ service_data.setUuid(QBluetoothUuid.ServiceClassUuid.HeartRate)
+ service_data.addCharacteristic(char_data)
+#! [Service Data]
+
+#! [Start Advertising]
+ le_controller = QLowEnergyController.createPeripheral()
+ service = le_controller.addService(service_data)
+ le_controller.startAdvertising(QLowEnergyAdvertisingParameters(),
+ advertising_data, advertising_data)
+#! [Start Advertising]
+
+#! [Provide Heartbeat]
+ value_change = ValueChange.VALUE_UP
+ heartbeat_timer = QTimer()
+ current_heart_rate = 60
+
+ def heartbeat_provider():
+ global current_heart_rate, value_change, current_heart_rate
+ value = QByteArray()
+ value.append(chr(0)) # Flags that specify the format of the value.
+ value.append(chr(current_heart_rate)) # Actual value.
+ characteristic = service.characteristic(QBluetoothUuid.CharacteristicType.HeartRateMeasurement)
+ assert(characteristic.isValid())
+ # Potentially causes notification.
+ service.writeCharacteristic(characteristic, value)
+ if current_heart_rate == 60:
+ value_change = ValueChange.VALUE_UP
+ elif current_heart_rate == 100:
+ value_change = ValueChange.VALUE_DOWN
+ if value_change == ValueChange.VALUE_UP:
+ current_heart_rate += 1
+ else:
+ current_heart_rate -= 1
+
+ heartbeat_timer.timeout.connect(heartbeat_provider)
+ heartbeat_timer.start(1000)
+#! [Provide Heartbeat]
+
+ def reconnect():
+ service = le_controller.addService(service_data)
+ if not service.isNull():
+ le_controller.startAdvertising(QLowEnergyAdvertisingParameters(),
+ advertising_data, advertising_data)
+
+ le_controller.disconnected.connect(reconnect)
+
+ sys.exit(app.exec())
diff --git a/examples/bluetooth/heartrate_server/heartrate_server.pyproject b/examples/bluetooth/heartrate_server/heartrate_server.pyproject
new file mode 100644
index 000000000..de1fd14a0
--- /dev/null
+++ b/examples/bluetooth/heartrate_server/heartrate_server.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["heartrate_server.py"]
+}
diff --git a/examples/charts/chartthemes/main.py b/examples/charts/chartthemes/main.py
index fd5524f20..8b023f927 100644
--- a/examples/charts/chartthemes/main.py
+++ b/examples/charts/chartthemes/main.py
@@ -134,7 +134,7 @@ class ThemeWidget(QWidget):
for j in range(len(self.data_table[i])):
data = self.data_table[i][j]
if lower_series:
- points = lower_series.pointsVector()
+ points = lower_series.points()
y_value = points[i].y() + data[0].y()
upper_series.append(QPointF(j, y_value))
else:
@@ -145,10 +145,12 @@ class ThemeWidget(QWidget):
lower_series = upper_series
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_count - 1)
- chart.axisY().setRange(0, self.value_max)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_count - 1)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_max)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -166,9 +168,10 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisY().setRange(0, self.value_max * 2)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_max * 2)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -185,10 +188,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -222,10 +227,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
@@ -241,10 +248,12 @@ class ThemeWidget(QWidget):
chart.addSeries(series)
chart.createDefaultAxes()
- chart.axisX().setRange(0, self.value_max)
- chart.axisY().setRange(0, self.value_count)
+ axis_x = chart.axes(Qt.Horizontal)[0]
+ axis_x.setRange(0, self.value_max)
+ axis_y = chart.axes(Qt.Vertical)[0]
+ axis_y.setRange(0, self.value_count)
# Add space to label to add space between labels and axis
- chart.axisY().setLabelFormat("%.1f ")
+ axis_y.setLabelFormat("%.1f ")
return chart
diff --git a/examples/charts/donutbreakdown/donutbreakdown.py b/examples/charts/donutbreakdown/donutbreakdown.py
index bd9c6240f..7cf6a36a1 100644
--- a/examples/charts/donutbreakdown/donutbreakdown.py
+++ b/examples/charts/donutbreakdown/donutbreakdown.py
@@ -5,7 +5,7 @@
import sys
-from PySide6.QtCore import Qt
+from PySide6.QtCore import Qt, Slot
from PySide6.QtGui import QColor, QFont, QPainter, QScreen
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCharts import QChart, QChartView, QPieSeries, QPieSlice
@@ -29,6 +29,7 @@ class MainSlice(QPieSlice):
def name(self):
return self.name
+ @Slot()
def update_label(self):
p = self.percentage() * 100
self.setLabel(f"{self.name} {p:.2f}%")
diff --git a/examples/charts/legend/legend.py b/examples/charts/legend/legend.py
index 4b46cc58b..f1929547d 100644
--- a/examples/charts/legend/legend.py
+++ b/examples/charts/legend/legend.py
@@ -4,7 +4,7 @@
"""PySide6 port of the Legend example from Qt v5.x"""
import sys
-from PySide6.QtCore import Qt, QRectF
+from PySide6.QtCore import Qt, QRectF, Slot
from PySide6.QtGui import QBrush, QColor, QPainter, QPen
from PySide6.QtWidgets import (QApplication, QDoubleSpinBox,
QFormLayout, QGridLayout, QGroupBox, QPushButton, QWidget)
@@ -123,6 +123,7 @@ class MainWidget(QWidget):
def hide_legend_spinbox(self):
self.legend_settings.setVisible(False)
+ @Slot()
def toggle_attached(self):
legend = self.chart.legend()
if legend.isAttachedToChart():
@@ -139,6 +140,7 @@ class MainWidget(QWidget):
self.hide_legend_spinbox()
self.update()
+ @Slot()
def add_barset(self):
series_count = self.series.count()
bar_set = QBarSet(f"set {series_count}")
@@ -146,12 +148,14 @@ class MainWidget(QWidget):
bar_set.append([1 + delta, 2 + delta, 3 + delta, 4 + delta])
self.series.append(bar_set)
+ @Slot()
def remove_barset(self):
sets = self.series.barSets()
len_sets = len(sets)
if len_sets > 0:
self.series.remove(sets[len_sets - 1])
+ @Slot()
def set_legend_alignment(self):
button = self.sender()
legend = self.chart.legend()
@@ -174,18 +178,21 @@ class MainWidget(QWidget):
button.setText("Align (Top)")
legend.setAlignment(Qt.AlignTop)
+ @Slot()
def toggle_bold(self):
legend = self.chart.legend()
font = legend.font()
font.setBold(not font.bold())
legend.setFont(font)
+ @Slot()
def toggle_italic(self):
legend = self.chart.legend()
font = legend.font()
font.setItalic(not font.italic())
legend.setFont(font)
+ @Slot()
def font_size_changed(self):
legend = self.chart.legend()
font = legend.font()
@@ -195,6 +202,7 @@ class MainWidget(QWidget):
font.setPointSizeF(font_size)
legend.setFont(font)
+ @Slot()
def update_legend_layout(self):
legend = self.chart.legend()
diff --git a/examples/charts/nesteddonuts/nesteddonuts.py b/examples/charts/nesteddonuts/nesteddonuts.py
index 2ce068bcf..49173c33a 100644
--- a/examples/charts/nesteddonuts/nesteddonuts.py
+++ b/examples/charts/nesteddonuts/nesteddonuts.py
@@ -5,7 +5,7 @@
import sys
-from PySide6.QtCore import Qt, QTimer
+from PySide6.QtCore import Qt, QTimer, Slot
from PySide6.QtGui import QPainter
from PySide6.QtWidgets import QApplication, QGridLayout, QWidget
from PySide6.QtCharts import QChart, QChartView, QPieSeries, QPieSlice
@@ -65,6 +65,7 @@ class Widget(QWidget):
self.donuts.append(donut)
self.chart_view.chart().addSeries(donut)
+ @Slot()
def update_rotation(self):
for donut in self.donuts:
phase_shift = randrange(-50, 100)
diff --git a/examples/charts/percentbarchart/percentbarchart.py b/examples/charts/percentbarchart/percentbarchart.py
index f6021ee8b..cfb11800a 100644
--- a/examples/charts/percentbarchart/percentbarchart.py
+++ b/examples/charts/percentbarchart/percentbarchart.py
@@ -43,7 +43,8 @@ class MainWindow(QMainWindow):
axis = QBarCategoryAxis()
axis.append(categories)
chart.createDefaultAxes()
- chart.setAxisX(axis, series)
+ chart.addAxis(axis, Qt.AlignBottom)
+ series.attachAxis(axis)
chart.legend().setVisible(True)
chart.legend().setAlignment(Qt.AlignBottom)
diff --git a/examples/corelib/settingseditor/settingseditor.py b/examples/corelib/settingseditor/settingseditor.py
index 266ddda4e..b1b4dbe0e 100644
--- a/examples/corelib/settingseditor/settingseditor.py
+++ b/examples/corelib/settingseditor/settingseditor.py
@@ -7,7 +7,7 @@
import sys
from PySide6.QtCore import (QByteArray, QDate, QDateTime, QDir, QEvent, QPoint,
- QRect, QRegularExpression, QSettings, QSize, QTime, QTimer, Qt)
+ QRect, QRegularExpression, QSettings, QSize, QTime, QTimer, Qt, Slot)
from PySide6.QtGui import (QAction, QColor, QIcon, QIntValidator,
QDoubleValidator, QRegularExpressionValidator, QValidator)
from PySide6.QtWidgets import (QAbstractItemView, QApplication,
@@ -144,6 +144,7 @@ class MainWindow(QMainWindow):
self.setWindowTitle("Settings Editor")
self.resize(500, 600)
+ @Slot()
def open_settings(self):
if self.location_dialog is None:
self.location_dialog = LocationDialog(self)
@@ -156,6 +157,7 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(True)
+ @Slot()
def open_inifile(self):
file_name, _ = QFileDialog.getOpenFileName(self, "Open INI File",
'', "INI Files (*.ini *.conf)")
@@ -170,6 +172,7 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def open_property_list(self):
file_name, _ = QFileDialog.getOpenFileName(self,
"Open Property List", '', "Property List Files (*.plist)")
@@ -179,6 +182,7 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def open_registry_path(self):
path, ok = QInputDialog.getText(self, "Open Registry Path",
"Enter the path in the Windows registry:",
@@ -189,6 +193,7 @@ class MainWindow(QMainWindow):
self.set_settings_object(settings)
self.fallbacks_action.setEnabled(False)
+ @Slot()
def about(self):
QMessageBox.about(self, "About Settings Editor",
"The <b>Settings Editor</b> example shows how to access "
@@ -473,6 +478,7 @@ class SettingsTree(QTreeWidget):
def sizeHint(self):
return QSize(800, 600)
+ @Slot(bool)
def set_auto_refresh(self, autoRefresh):
self.auto_refresh = autoRefresh
@@ -483,15 +489,18 @@ class SettingsTree(QTreeWidget):
else:
self.refresh_timer.stop()
+ @Slot(bool)
def set_fallbacks_enabled(self, enabled):
if self.settings is not None:
self.settings.setFallbacksEnabled(enabled)
self.refresh()
+ @Slot()
def maybe_refresh(self):
if self.state() != QAbstractItemView.EditingState:
self.refresh()
+ @Slot()
def refresh(self):
if self.settings is None:
return
diff --git a/examples/corelib/threads/mandelbrot.py b/examples/corelib/threads/mandelbrot.py
index d92e8b604..b8cab06ef 100644
--- a/examples/corelib/threads/mandelbrot.py
+++ b/examples/corelib/threads/mandelbrot.py
@@ -9,7 +9,7 @@ import sys
from PySide6.QtCore import (Signal, QMutex, QElapsedTimer, QMutexLocker,
QPoint, QPointF, QSize, Qt, QThread,
- QWaitCondition)
+ QWaitCondition, Slot)
from PySide6.QtGui import QColor, QImage, QPainter, QPixmap, qRgb
from PySide6.QtWidgets import QApplication, QWidget
@@ -302,6 +302,7 @@ class MandelbrotWidget(QWidget):
delta_y = (self.height() - self.pixmap.height()) / 2 - self._pixmap_offset.y()
self.scroll(delta_x, delta_y)
+ @Slot(QImage,float)
def update_pixmap(self, image, scale_factor):
if not self._last_drag_pos.isNull():
return
diff --git a/examples/datavisualization/surface/surfacegraph.py b/examples/datavisualization/surface/surfacegraph.py
index 231f6064a..69eea716c 100644
--- a/examples/datavisualization/surface/surfacegraph.py
+++ b/examples/datavisualization/surface/surfacegraph.py
@@ -71,6 +71,7 @@ class SurfaceGraph(QObject):
self._sqrtSinProxy.resetArray(data_array)
+ @Slot(bool)
def enable_sqrt_sin_model(self, enable):
if enable:
self._sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
@@ -102,6 +103,7 @@ class SurfaceGraph(QObject):
self._axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
self._axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+ @Slot(bool)
def enable_height_map_model(self, enable):
if enable:
self._heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
@@ -136,6 +138,7 @@ class SurfaceGraph(QObject):
self._axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
self._axisMaxSliderZ.setValue(map_grid_count_z - 1)
+ @Slot(int)
def adjust_xmin(self, minimum):
min_x = self._stepX * float(minimum) + self._rangeMinX
@@ -147,6 +150,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_xmax(self, maximum):
max_x = self._stepX * float(maximum) + self._rangeMinX
@@ -158,6 +162,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_zmin(self, minimum):
min_z = self._stepZ * float(minimum) + self._rangeMinZ
@@ -169,6 +174,7 @@ class SurfaceGraph(QObject):
self.set_axis_zrange(min_z, max_z)
+ @Slot(int)
def adjust_zmax(self, maximum):
max_x = self._stepZ * float(maximum) + self._rangeMinZ
@@ -186,10 +192,11 @@ class SurfaceGraph(QObject):
def set_axis_zrange(self, minimum, maximum):
self._graph.axisZ().setRange(minimum, maximum)
- @Slot()
+ @Slot(int)
def change_theme(self, theme):
self._graph.activeTheme().setType(Q3DTheme.Theme(theme))
+ @Slot()
def set_black_to_yellow_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.black)
@@ -201,6 +208,7 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def set_green_to_red_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.darkGreen)
@@ -212,17 +220,21 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def toggle_mode_none(self):
self._graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+ @Slot()
def toggle_mode_item(self):
self._graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+ @Slot()
def toggle_mode_slice_row(self):
self._graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
)
+ @Slot()
def toggle_mode_slice_column(self):
self._graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
diff --git a/examples/datavisualization/surface_model_numpy/surfacegraph.py b/examples/datavisualization/surface_model_numpy/surfacegraph.py
index 126d50cbd..c0c1acecf 100644
--- a/examples/datavisualization/surface_model_numpy/surfacegraph.py
+++ b/examples/datavisualization/surface_model_numpy/surfacegraph.py
@@ -113,6 +113,7 @@ class SurfaceGraph(QObject):
self.m_stepX = 0.0
self.m_stepZ = 0.0
+ @Slot(bool)
def enable_sqrt_sin_model(self, enable):
if enable:
self.m_sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
@@ -144,6 +145,7 @@ class SurfaceGraph(QObject):
self.m_axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
self.m_axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+ @Slot(bool)
def enable_height_map_model(self, enable):
if enable:
self.m_heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
@@ -178,6 +180,7 @@ class SurfaceGraph(QObject):
self.m_axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
self.m_axisMaxSliderZ.setValue(map_grid_count_z - 1)
+ @Slot(int)
def adjust_xmin(self, minimum):
min_x = self.m_stepX * float(minimum) + self.m_rangeMinX
@@ -189,6 +192,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_xmax(self, maximum):
max_x = self.m_stepX * float(maximum) + self.m_rangeMinX
@@ -200,6 +204,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_zmin(self, minimum):
min_z = self.m_stepZ * float(minimum) + self.m_rangeMinZ
@@ -211,6 +216,7 @@ class SurfaceGraph(QObject):
self.set_axis_zrange(min_z, max_z)
+ @Slot(int)
def adjust_zmax(self, maximum):
max_x = self.m_stepZ * float(maximum) + self.m_rangeMinZ
@@ -228,10 +234,11 @@ class SurfaceGraph(QObject):
def set_axis_zrange(self, minimum, maximum):
self.m_graph.axisZ().setRange(minimum, maximum)
- @Slot()
+ @Slot(int)
def change_theme(self, theme):
self.m_graph.activeTheme().setType(Q3DTheme.Theme(theme))
+ @Slot()
def set_black_to_yellow_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.black)
@@ -243,6 +250,7 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def set_green_to_red_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.darkGreen)
@@ -254,17 +262,21 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def toggle_mode_none(self):
self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+ @Slot()
def toggle_mode_item(self):
self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+ @Slot()
def toggle_mode_slice_row(self):
self.m_graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
)
+ @Slot()
def toggle_mode_slice_column(self):
self.m_graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
diff --git a/examples/datavisualization/surface_numpy/surfacegraph.py b/examples/datavisualization/surface_numpy/surfacegraph.py
index b0700fa29..c9f6e75a9 100644
--- a/examples/datavisualization/surface_numpy/surfacegraph.py
+++ b/examples/datavisualization/surface_numpy/surfacegraph.py
@@ -71,6 +71,7 @@ class SurfaceGraph(QObject):
self.m_stepX = 0.0
self.m_stepZ = 0.0
+ @Slot(bool)
def enable_sqrt_sin_model(self, enable):
if enable:
self.m_sqrtSinSeries.setDrawMode(QSurface3DSeries.DrawSurfaceAndWireframe)
@@ -102,6 +103,7 @@ class SurfaceGraph(QObject):
self.m_axisMaxSliderZ.setMaximum(SAMPLE_COUNT_Z - 1)
self.m_axisMaxSliderZ.setValue(SAMPLE_COUNT_Z - 1)
+ @Slot(bool)
def enable_height_map_model(self, enable):
if enable:
self.m_heightMapSeries.setDrawMode(QSurface3DSeries.DrawSurface)
@@ -136,6 +138,7 @@ class SurfaceGraph(QObject):
self.m_axisMaxSliderZ.setMaximum(map_grid_count_z - 1)
self.m_axisMaxSliderZ.setValue(map_grid_count_z - 1)
+ @Slot(int)
def adjust_xmin(self, minimum):
min_x = self.m_stepX * float(minimum) + self.m_rangeMinX
@@ -147,6 +150,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_xmax(self, maximum):
max_x = self.m_stepX * float(maximum) + self.m_rangeMinX
@@ -158,6 +162,7 @@ class SurfaceGraph(QObject):
self.set_axis_xrange(min_x, max_x)
+ @Slot(int)
def adjust_zmin(self, minimum):
min_z = self.m_stepZ * float(minimum) + self.m_rangeMinZ
@@ -169,6 +174,7 @@ class SurfaceGraph(QObject):
self.set_axis_zrange(min_z, max_z)
+ @Slot(int)
def adjust_zmax(self, maximum):
max_x = self.m_stepZ * float(maximum) + self.m_rangeMinZ
@@ -186,10 +192,11 @@ class SurfaceGraph(QObject):
def set_axis_zrange(self, minimum, maximum):
self.m_graph.axisZ().setRange(minimum, maximum)
- @Slot()
+ @Slot(int)
def change_theme(self, theme):
self.m_graph.activeTheme().setType(Q3DTheme.Theme(theme))
+ @Slot()
def set_black_to_yellow_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.black)
@@ -201,6 +208,7 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def set_green_to_red_gradient(self):
gr = QLinearGradient()
gr.setColorAt(0.0, Qt.darkGreen)
@@ -212,17 +220,21 @@ class SurfaceGraph(QObject):
series.setBaseGradient(gr)
series.setColorStyle(Q3DTheme.ColorStyleRangeGradient)
+ @Slot()
def toggle_mode_none(self):
self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionNone)
+ @Slot()
def toggle_mode_item(self):
self.m_graph.setSelectionMode(QAbstract3DGraph.SelectionItem)
+ @Slot()
def toggle_mode_slice_row(self):
self.m_graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndRow | QAbstract3DGraph.SelectionSlice
)
+ @Slot()
def toggle_mode_slice_column(self):
self.m_graph.setSelectionMode(
QAbstract3DGraph.SelectionItemAndColumn | QAbstract3DGraph.SelectionSlice
diff --git a/examples/gui/analogclock/analogclock.pyproject b/examples/gui/analogclock/analogclock.pyproject
new file mode 100644
index 000000000..cc7a74a34
--- /dev/null
+++ b/examples/gui/analogclock/analogclock.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py"]
+}
diff --git a/examples/gui/analogclock/doc/analogclock.rst b/examples/gui/analogclock/doc/analogclock.rst
new file mode 100644
index 000000000..a1ede41dd
--- /dev/null
+++ b/examples/gui/analogclock/doc/analogclock.rst
@@ -0,0 +1,8 @@
+Analog Clock Window Example
+===========================
+
+The Analog Clock Window example shows how to draw the contents of
+a custom window.
+
+This example demonstrates how the transformation and scaling
+features of QPainter can be used to make drawing easier.
diff --git a/examples/gui/analogclock/main.py b/examples/gui/analogclock/main.py
new file mode 100644
index 000000000..12303cd1d
--- /dev/null
+++ b/examples/gui/analogclock/main.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+
+from PySide6.QtCore import QPoint, QTimer, QTime, Qt
+from PySide6.QtGui import (QColor, QGradient, QGuiApplication, QPainter,
+ QPolygon, QRasterWindow)
+
+"""Simplified PySide6 port of the gui/analogclock example from Qt v6.x"""
+
+
+class AnalogClockWindow(QRasterWindow):
+
+ def __init__(self):
+ super().__init__()
+ self.setTitle("Analog Clock")
+ self.resize(200, 200)
+
+ self._timer = QTimer(self)
+ self._timer.timeout.connect(self.update)
+ self._timer.start(1000)
+
+ self._hour_hand = QPolygon([QPoint(7, 8), QPoint(-7, 8), QPoint(0, -40)])
+ self._minute_hand = QPolygon([QPoint(7, 8), QPoint(-7, 8), QPoint(0, -70)])
+
+ self._hour_color = QColor(127, 0, 127)
+ self._minute_color = QColor(0, 127, 127, 191)
+
+ def paintEvent(self, e):
+ with QPainter(self) as p:
+ self.render(p)
+
+ def render(self, p):
+ width = self.width()
+ height = self.height()
+ p.fillRect(0, 0, width, height, QGradient.NightFade)
+
+ p.setRenderHint(QPainter.Antialiasing)
+ p.translate(width / 2, height / 2)
+
+ side = min(width, height)
+ p.scale(side / 200.0, side / 200.0)
+ p.setPen(Qt.NoPen)
+ p.setBrush(self._hour_color)
+ time = QTime.currentTime()
+
+ p.save()
+ p.rotate(30.0 * ((time.hour() + time.minute() / 60.0)))
+ p.drawConvexPolygon(self._hour_hand)
+ p.restore()
+ p.setPen(self._hour_color)
+
+ for i in range(0, 12):
+ p.drawLine(88, 0, 96, 0)
+ p.rotate(30.0)
+
+ p.setPen(Qt.NoPen)
+ p.setBrush(self._minute_color)
+
+ p.save()
+ p.rotate(6.0 * (time.minute() + time.second() / 60.0))
+ p.drawConvexPolygon(self._minute_hand)
+ p.restore()
+ p.setPen(self._minute_color)
+
+ for j in range(0, 60):
+ if (j % 5) != 0:
+ p.drawLine(92, 0, 96, 0)
+ p.rotate(6.0)
+
+
+if __name__ == "__main__":
+ app = QGuiApplication(sys.argv)
+ clock = AnalogClockWindow()
+ clock.show()
+ sys.exit(app.exec())
diff --git a/examples/multimedia/audiooutput/audiooutput.py b/examples/multimedia/audiooutput/audiooutput.py
index ed27a0a9c..6cabebb68 100644
--- a/examples/multimedia/audiooutput/audiooutput.py
+++ b/examples/multimedia/audiooutput/audiooutput.py
@@ -251,7 +251,7 @@ class AudioTest(QMainWindow):
QAudio.StoppedState: "StoppedState",
QAudio.IdleState: "IdleState"}
- @Slot(QAudio.State)
+ @Slot("QAudio::State")
def handle_state_changed(self, state):
state = self.state_map.get(state, 'Unknown')
qWarning(f"state = {state}")
diff --git a/examples/multimedia/player/player.py b/examples/multimedia/player/player.py
index a7af1eaf5..c8a1d57a5 100644
--- a/examples/multimedia/player/player.py
+++ b/examples/multimedia/player/player.py
@@ -165,6 +165,7 @@ class MainWindow(QMainWindow):
self._playlist_index += 1
self._player.setSource(self._playlist[self._playlist_index])
+ @Slot("QMediaPlayer::PlaybackState")
def update_buttons(self, state):
media_count = len(self._playlist)
self._play_action.setEnabled(media_count > 0
@@ -177,7 +178,7 @@ class MainWindow(QMainWindow):
def show_status_message(self, message):
self.statusBar().showMessage(message, 5000)
- @Slot(QMediaPlayer.Error, str)
+ @Slot("QMediaPlayer::Error", str)
def _player_error(self, error, error_string):
print(error_string, file=sys.stderr)
self.show_status_message(error_string)
diff --git a/examples/network/googlesuggest/googlesuggest.py b/examples/network/googlesuggest/googlesuggest.py
index 6dac0eb22..3cb9f757d 100644
--- a/examples/network/googlesuggest/googlesuggest.py
+++ b/examples/network/googlesuggest/googlesuggest.py
@@ -118,7 +118,7 @@ class GSuggestCompletion(QObject):
def prevent_suggest(self):
self.timer.stop()
- @Slot()
+ @Slot(QNetworkReply)
def handle_network_data(self, network_reply: QNetworkReply):
url = network_reply.url()
if network_reply.error() == QNetworkReply.NoError:
diff --git a/examples/opengl/contextinfo/contextinfo.py b/examples/opengl/contextinfo/contextinfo.py
index f66d5a46f..5ca7ecb26 100644
--- a/examples/opengl/contextinfo/contextinfo.py
+++ b/examples/opengl/contextinfo/contextinfo.py
@@ -9,7 +9,8 @@ import sys
from textwrap import dedent
-from PySide6.QtCore import QCoreApplication, QLibraryInfo, QSize, QTimer, Qt
+from PySide6.QtCore import (QCoreApplication, QLibraryInfo, QSize, QTimer, Qt,
+ Slot)
from PySide6.QtGui import (QMatrix4x4, QOpenGLContext, QSurfaceFormat, QWindow)
from PySide6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader,
QOpenGLShaderProgram, QOpenGLVertexArrayObject)
@@ -192,6 +193,7 @@ class RenderWindow(QWindow):
self.context.swapBuffers(self)
self.context.doneCurrent()
+ @Slot()
def slot_timer(self):
self.render()
self.angle += 1
diff --git a/examples/opengl/hellogl2/hellogl2.py b/examples/opengl/hellogl2/hellogl2.py
index 7520f6bc6..7ea3b7ad3 100644
--- a/examples/opengl/hellogl2/hellogl2.py
+++ b/examples/opengl/hellogl2/hellogl2.py
@@ -8,7 +8,8 @@ from argparse import ArgumentParser, RawTextHelpFormatter
import ctypes
import math
import sys
-from PySide6.QtCore import QCoreApplication, Signal, SIGNAL, SLOT, Qt, QSize, QPointF
+from PySide6.QtCore import (QCoreApplication, Signal, Slot,
+ Qt, QSize, QPointF)
from PySide6.QtGui import (QVector3D, QOpenGLFunctions,
QMatrix4x4, QOpenGLContext, QSurfaceFormat, QVector3DList)
from PySide6.QtOpenGL import (QOpenGLVertexArrayObject, QOpenGLBuffer,
@@ -228,6 +229,7 @@ class GLWidget(QOpenGLWidget, QOpenGLFunctions):
angle -= 360 * 16
return angle
+ @Slot(int)
def set_xrotation(self, angle):
angle = self.normalize_angle(angle)
if angle != self._x_rot:
@@ -235,6 +237,7 @@ class GLWidget(QOpenGLWidget, QOpenGLFunctions):
self.x_rotation_changed.emit(angle)
self.update()
+ @Slot(int)
def set_yrotation(self, angle):
angle = self.normalize_angle(angle)
if angle != self._y_rot:
@@ -242,6 +245,7 @@ class GLWidget(QOpenGLWidget, QOpenGLFunctions):
self.y_rotation_changed.emit(angle)
self.update()
+ @Slot(int)
def set_zrotation(self, angle):
angle = self.normalize_angle(angle)
if angle != self._z_rot:
@@ -249,6 +253,7 @@ class GLWidget(QOpenGLWidget, QOpenGLFunctions):
self.z_rotation_changed.emit(angle)
self.update()
+ @Slot()
def cleanup(self):
self.makeCurrent()
self._logo_vbo.destroy()
diff --git a/examples/opengl/threadedqopenglwidget/glwidget.py b/examples/opengl/threadedqopenglwidget/glwidget.py
index 68a86dc77..edb88e77c 100644
--- a/examples/opengl/threadedqopenglwidget/glwidget.py
+++ b/examples/opengl/threadedqopenglwidget/glwidget.py
@@ -68,6 +68,7 @@ class GLWidget(QOpenGLWidget):
def on_resized(self):
self._renderer.unlock_renderer()
+ @Slot()
def grab_context(self):
if not self._renderer:
return
diff --git a/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst b/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst
new file mode 100644
index 000000000..084f71828
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/doc/quickpdfviewer.rst
@@ -0,0 +1,4 @@
+PDF Viewer Example
+==================
+
+A Qt Quick PDF viewer that allows scrolling through the pages.
diff --git a/examples/pdf/quickpdfviewer/main.py b/examples/pdf/quickpdfviewer/main.py
new file mode 100644
index 000000000..9d6ea68c8
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/main.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import os
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+from pathlib import Path
+
+from PySide6.QtQml import QQmlApplicationEngine
+
+from PySide6.QtGui import QGuiApplication
+from PySide6.QtCore import QCoreApplication, QUrl
+
+import rc_viewer
+
+"""PySide6 port of the pdf/pdfviewer example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ name = "Qt Quick PDF Viewer Example"
+ QCoreApplication.setApplicationName(name)
+ QCoreApplication.setOrganizationName("QtProject")
+
+ app = QGuiApplication(sys.argv)
+
+ dir = Path(__file__).resolve().parent
+
+ argument_parser = ArgumentParser(description=name,
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("file", help="The file to open",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ url = None
+ if options.file:
+ url = QUrl.fromLocalFile(options.file)
+ else:
+ url = QUrl.fromLocalFile(os.fspath(dir / "resources" / "test.pdf"))
+
+ engine = QQmlApplicationEngine()
+ engine.setInitialProperties({"source": url})
+
+ engine.load(QUrl.fromLocalFile(os.fspath(dir / "viewer.qml")))
+ if not engine.rootObjects():
+ sys.exit(-1)
+
+ exit_code = QCoreApplication.exec()
+ del engine
+ sys.exit(exit_code)
diff --git a/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject b/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject
new file mode 100644
index 000000000..437e25551
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/quickpdfviewer.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["main.py", "viewer.qml", "viewer.qrc", "resources/test.pdf"]
+}
diff --git a/examples/pdf/quickpdfviewer/rc_viewer.py b/examples/pdf/quickpdfviewer/rc_viewer.py
new file mode 100644
index 000000000..f331739b5
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/rc_viewer.py
@@ -0,0 +1,5505 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x00\x03\x0c\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#4d4d4d;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 8\
+ L 5 8 L 5 5 L 8\
+ 5 L 8 4 L 5 4 L\
+ 4 4 z M 12 4 L \
+10 6 L 14 6 L 12\
+ 4 z M 16 4 L 16\
+ 5 L 19 5 L 19 8\
+ L 20 8 L 20 5 L\
+ 20 4 L 19 4 L 1\
+6 4 z M 7 7 L 7 \
+17 L 17 17 L 17 \
+7 L 7 7 z M 8 8 \
+L 16 8 L 16 16 L\
+ 8 16 L 8 8 z M \
+6 10 L 4 12 L 6 \
+14 L 6 10 z M 18\
+ 10 L 18 14 L 20\
+ 12 L 18 10 z M \
+4 16 L 4 19 L 4 \
+20 L 8 20 L 8 19\
+ L 5 19 L 5 16 L\
+ 4 16 z M 19 16 \
+L 19 19 L 16 19 \
+L 16 20 L 20 20 \
+L 20 19 L 20 16 \
+L 19 16 z M 10 1\
+8 L 12 20 L 14 1\
+8 L 10 18 z \x22\x0a \
+ class=\x22ColorS\
+cheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x03^\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 6 L 5 6\
+ L 5 5 L 6 5 L 6\
+ 4 L 4 4 z M 9 4\
+ L 9 5 L 11 5 L \
+11 4 L 9 4 z M 1\
+3 4 L 13 5 L 15 \
+5 L 15 4 L 13 4 \
+z M 18 4 L 18 5 \
+L 19 5 L 19 6 L \
+20 6 L 20 4 L 18\
+ 4 z M 12 8 L 12\
+ 9 L 14.292969 9\
+ L 11 12.292969 \
+L 11.707031 13 L\
+ 15 9.7070312 L \
+15 12 L 16 12 L \
+16 8 L 15 8 L 12\
+ 8 z M 4 9 L 4 1\
+1 L 5 11 L 5 9 L\
+ 4 9 z M 19 9 L \
+19 11 L 20 11 L \
+20 9 L 19 9 z M \
+19 13 L 19 15 L \
+20 15 L 20 13 L \
+19 13 z M 4 14 L\
+ 4 20 L 10 20 L \
+10 14 L 4 14 z M\
+ 5 15 L 9 15 L 9\
+ 19 L 5 19 L 5 1\
+5 z M 19 18 L 19\
+ 19 L 18 19 L 18\
+ 20 L 20 20 L 20\
+ 18 L 19 18 z \x22\x0a\
+ class=\x22Colo\
+rScheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x03n\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 8\
+ L 5 8 L 5 5 L 8\
+ 5 L 8 4 L 5 4 L\
+ 4 4 z M 16 4 L \
+16 5 L 19 5 L 19\
+ 8 L 20 8 L 20 4\
+ L 16 4 z M 6 6 \
+L 6 11 L 11 11 L\
+ 11 6 L 6 6 z M \
+13 6 L 13 11 L 1\
+8 11 L 18 6 L 13\
+ 6 z M 7 7 L 10 \
+7 L 10 10 L 7 10\
+ L 7 7 z M 14 7 \
+L 17 7 L 17 10 L\
+ 14 10 L 14 7 z \
+M 6 13 L 6 18 L \
+11 18 L 11 13 L \
+6 13 z M 13 13 L\
+ 13 18 L 18 18 L\
+ 18 13 L 13 13 z\
+ M 7 14 L 10 14 \
+L 10 17 L 7 17 L\
+ 7 14 z M 14 14 \
+L 17 14 L 17 17 \
+L 14 17 L 14 14 \
+z M 4 16 L 4 20 \
+L 5 20 L 8 20 L \
+8 19 L 5 19 L 5 \
+16 L 4 16 z M 19\
+ 16 L 19 19 L 16\
+ 19 L 16 20 L 20\
+ 20 L 20 19 L 20\
+ 16 L 19 16 z \x22\x0a\
+ class=\x22Colo\
+rScheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x02\x84\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 5 L 4 7\
+ L 5 7 L 5 5 L 7\
+ 5 L 7 4 L 5 4 L\
+ 4 4 z M 17 4 L \
+17 5 L 19 5 L 19\
+ 7 L 20 7 L 20 5\
+ L 20 4 L 19 4 L\
+ 17 4 z M 6 6 L \
+6 18 L 18 18 L 1\
+8 6 L 6 6 z M 7 \
+7 L 17 7 L 17 17\
+ L 7 17 L 7 7 z \
+M 4 17 L 4 19 L \
+4 20 L 7 20 L 7 \
+19 L 5 19 L 5 17\
+ L 4 17 z M 19 1\
+7 L 19 19 L 17 1\
+9 L 17 20 L 20 2\
+0 L 20 17 L 19 1\
+7 z \x22\x0a class\
+=\x22ColorScheme-Te\
+xt\x22\x0a />\x0a</sv\
+g>\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 8.7070312 4 L 8\
+ 4.7070312 L 14.\
+125 10.832031 L \
+15.292969 12 L 1\
+4.125 13.167969 \
+L 8 19.292969 L \
+8.7070312 20 L 1\
+4.832031 13.875 \
+L 16.707031 12 L\
+ 14.832031 10.12\
+5 L 8.7070312 4 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x01\xcc\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h\x0a style=\x22fil\
+l:currentColor;f\
+ill-opacity:1;st\
+roke:none\x22\x0a\x09d=\x22m\
+4 3v1 13h1 2 1v1\
+ 1h6l4-4v-1-7-1h\
+-2v-3h-1-10-1m1 \
+1h10v2h-7v1 9h-1\
+-2v-12m4 3h8v7h-\
+3-1v1 3h-4v-11\x22\x0a\
+ class=\x22Color\
+Scheme-Text\x22\x0a \
+ transform=\x22tra\
+nslate(1,1)\x22\x0a \
+ />\x0a</svg>\x0a\
+\x00\x00\x01\xd7\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#4d4d4d;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 7 7 L 7 17 L 17\
+ 17 L 17 7 L 7 7\
+ z M 8 8 L 16 8 \
+L 16 16 L 8 16 L\
+ 8 8 z M 6 10 L \
+4 12 L 6 14 L 6 \
+10 z M 18 10 L 1\
+8 14 L 20 12 L 1\
+8 10 z \x22\x0a cl\
+ass=\x22ColorScheme\
+-Text\x22\x0a />\x0a<\
+/svg>\x0a\
+\x00\x00\x01\x86\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 32 32\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\
+\x22m4 4v24h24l-1-1\
+h-22v-13h5l3-3h1\
+4v16l1 1v-21h-10\
+l-3-3z\x22\x0a cla\
+ss=\x22ColorScheme-\
+Text\x22\x0a />\x0a</\
+svg>\x0a\
+\x00\x00\x01y\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2216\
+\x22 height=\x2216\x22>\x0a \
+ <g font-weigh\
+t=\x22400\x22 fill=\x22#4\
+74747\x22>\x0a \
+<path d=\x22M3 3v2h\
+4.5C8.34 5 9 5.6\
+6 9 6.5V12h2V6.5\
+C11 4.579 9.421 \
+3 7.5 3z\x22/>\x0a \
+ <path d=\x22M6 \
+9h1c.257 0 .529.\
+13.719.313L10 11\
+.592l2.281-2.28C\
+12.471 9.13 12.7\
+43 9 13 9h1v1c0 \
+.31-.09.552-.281\
+.75L10 14.406 6.\
+281 10.75C6.091 \
+10.552 6 10.31 6\
+ 10z\x22/>\x0a </g>\
+\x0a</svg>\x0a\
+\x00\x00\x01\x8a\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 width=\x2216\
+\x22 height=\x2216\x22>\x0a \
+ <g color=\x22#00\
+0\x22 font-weight=\x22\
+400\x22 fill=\x22#4747\
+47\x22>\x0a <pa\
+th d=\x22M2 9v1c0 .\
+265.093.53.281.7\
+19l3.72 3.719 3.\
+718-3.72c.188-.1\
+87.281-.453.281-\
+.718V9H9c-.265 0\
+-.53.093-.719.28\
+1l-2.28 2.281-2.\
+282-2.28A1.015 1\
+.015 0 0 0 3 9z\x22\
+/>\x0a <path\
+ d=\x22M8.5 3A3.515\
+ 3.515 0 0 0 5 6\
+.5V12h2V6.5C7 5.\
+66 7.66 5 8.5 5H\
+13V3z\x22/>\x0a </g\
+>\x0a</svg>\x0a\
+\x00\x01+Y\
+%\
+PDF-1.6\x0a%\xe2\xe3\xcf\xd3\x0a1 \
+0 obj\x0a\x0a<<\x0a/Conte\
+nts 2 0 R\x0a/Thumb\
+ 3 0 R\x0a/Type /Pa\
+ge\x0a/Resources 4 \
+0 R\x0a/CropBox [0 \
+0 595 420]\x0a/Pare\
+nt 5 0 R\x0a/Rotate\
+ 0\x0a/MediaBox [0 \
+0 595 420]\x0a>>\x0aen\
+dobj\x0a\x0a4 0 obj\x0a\x0a<\
+<\x0a/ColorSpace \x0a<\
+<\x0a/Cs1 6 0 R\x0a>>\x0a\
+/ProcSet [/PDF /\
+Text]\x0a/Font \x0a<<\x0a\
+/Tc1 7 0 R\x0a>>\x0a>>\
+\x0aendobj\x0a\x0a2 0 obj\
+\x0a\x0a<<\x0a/Filter /Fl\
+ateDecode\x0a/Lengt\
+h 358\x0a>>\x0astream\x0a\
+x\x01\x9d\x92Ko\x830\x10\x84\xef\xfe\x15s4\x07\
+\x88m\x9e\xb9\xa6\xea\xa1\xbdEA\xca\xa1\xea\xc1\x05\xa7\
+ \x01VBh\xd5\x7f\xdf\xe5\x15\xa2\x16\xa9RO^\
+\xef\x22\xfc\xed\xcc\x9c\xb1\xc7\x19\xb1\x82\x94\xd2S\xc16\
+D\x10J(?\xf2\xe2P\x84\xb8\x18\x1c\xd1`\xf3\xd0\
+Jd-\x04\xda\x8c>\x17\xde6N|\x91\x08j\x08\
+\xb8\xcb\x95\xfe\xe3\x07\x09\xcbj\xecR\xc8d\x1c\xd3\x19\
+IH\xa5\x90\xd6\xd8\xa4\x19\xd5HOx\x01O\x1dH\
+\x1f\xfcB\x87\x00\xb7\x0e\xb6\xe0U\xd5BO\x1d\x83k\
+a\xd0^\x1d\xe6&\xe0\xdd\xc9\x81\xeb+p:e\x00\
+\x0e;\x17\x9fE\x999\x88\xc0\x0bT\xe6}\xa8L\x93\
+\xa3lQ\xeb\xdc8xE\xfa\x8c\xc7\xb4_\x95-\xb0\
+\xab\xecXe\x0f\x82_\xecG\x82\xf2\x89\xa20\xc4\xd8\
+\xf3\xc6D\xa4\xaf\xc3\x0e(lm`\xe7.\xe1Ut\
+\xed\xa6\xa1m\xa0\xd1\xcfh\x15]\xe6\x84\xc7nx\x7f\
+I\xbb\x8e\x17E3\x1e\x9b\xa5\x05\x0e\x16\xe5,\xd0\x88\
+\xf75\xeaf\xbb;\x81oT\xd3\x16\xe4\xc3$\x18\x1b\
+\x05\xfb\x1fQ\x92\xccD\x83\xd9\x8c\xcc\x06\x9e\x9a\xc1O\
+\xb2\xaa_}\xb2;\xc7!\xd3M^j\xe8\x92D\xb9\
+\xb3\xea\xaf\x97Wc\xa6(I?c\xb6\xa3\xdcP~\
+\x0c2\xdd{\xe0\xf6a+m\xd7\xe2m\xb6\xa41\x1f\
+\x0e\x93\x94\xbe\xc5\xc9>l\x8a\x22\xb5\x18\xe5\xdd\xd3\xed\
+\xbf\x01w\xa3\xbaf\x0aendstream\
+ \x0aendobj\x0a\x0a8 0 ob\
+j\x0a\x0a<<\x0a/Alternate\
+ /DeviceGray\x0a/Fi\
+lter /FlateDecod\
+e\x0a/Length 1088\x0a/\
+N 1\x0a>>\x0astream\x0ax\x01\
+\x85U]h\x1cU\x14>\xbb3;y\x89C\x11m\
+K+u\xf0\xaf!\xa4aR\xad&\x16\xb5\xdbM\xba\
+\xbbM\xd8\xae\x9b\x8d6U\xaa\xd3\xd9\xd9\xeet'3\
+\xe3\x9d\xd9\xb4\x09}\x0a\x82oZ\x10\xc4WE|\x12\
+-\x88\xd0j\xc4\xe4\xc5\xbe\xb4T\xa8\x89\x14\x8b (\
+\xb4XA\x10\xfa \x0a~gv\xb2;\x1b\x91\xccp\
+g\xbe9\xf7;\xe7\x9e\xf3\xdd{\x18\xa2\xbee\xc3\xf7\
+\x9d\xb4F4\xe7\x86\x22_\xc9\xce\x1e\x9f=\xa1\xf5}\
+GiR\xa9\x9fp\x19f\xe0g\xcb\xe5)\xc6\xae\xe7\
+Z\xfc\xee\xbd\xee\xadS\x8a-7\xf6q\xac\xde\xb9-\
+\xbf25+0\xc1Z\xc1\xf0j\x819G\x94\xd2\x89\
+\x94a\xd3\x17!Q\xdf\xeb\xb0\x8f\x9e\x0d}\xc6\xef\x03\
+?\xd0\xacVr\xc0\x9f\x00\xab\xb1/ =\x98\xb7\x5c\
+K\xd8\xa6\x96\x17\xc6\x82V\x16^\xddv\x92\xb9n5\
+\xcf1\xb6\xbc\xe6\x9c\x16\xe7\xca\xd7\x1e\x8c\xfe\xa09=\
+\x89\xf7 r>W3\xc6\x19?\x05\xfc\xa1iLL\
+\x03\x0f\x01\xaf\xfb\xe1\xe1J\x9b\x93N\xb7\x9a3\xd9\xb6\
+==T\x17Gfb\xfb\xf1F\xab\xc0x\x98(\xbd\
+\xb4\xd8\xa8\xbe\x0c\xbc\x0d\xf8\xa2{\xaat,\xe6\xaf\x98\
+A\xee\x04\xf0c\xb0\xdfmXE\xde\x0f\x8dH\xdaf\
+\x87\xc5*0|%]x\x15\xe6\x83#\x9d\xacY\xe3\
+\x13\xc0\xcf\x02/5\xbdI\xcea'\xf0r0?\xcd\
+v\xe6\x7f\xbf\xd8\xc8\x95\x80\xb1\x96\x9c>c\x1c-\x03\
+o\x07\xbe\xdfr\xf2\xccG\x1cy\xc0\x0f\xcb\x1cs\x14\
+x\xcauJ\xbc.\xea\x95\xdf\xb4\x82\xa8\xc6\x01\xe0O\
+\xc3F\xb5\x10\xf3\xd7CQe\xdfG`\xff\xabn\x1f\
+)\x02C\x87\xccC\x0dQ`;\xf2\xc9\x14|':\
+OO\x03/\x89V\x85k\x7f\x02\xf8\x92!&\xf2\xc0\
+\x88\x99\xf9\xc9rgXC`E\xa1\x97R\x06Y\xe4\
+\xd1)<Mr\xe9\x1f\xd4\x1e\x90M\xf3\x11\xf2I`\
+\xae\x8eo\x87\xf2`\xb8\x18\x02\xc3\x01\xeb4\xd0\xaf\x14\
+b\x9e\xad\xec\x1fP\x136\xf6eF\x80g\x19C\xc4\
+\xfe\x1a\xd5\xf0\xd5\xf6\xb31\xcb\x88#\xde\x8e|\xccM\
+\xdc\x1c\xe2\xb8\xb4H\x06x\xed\x95\xef\xc4<O\xde!\
+\xeb\xf2\x93\x18\x07\xe5)\xf99yT\x1e#M~A\
+>$?/\x8f\xc3:&\x1f\x8c|\x04|\x17\x10\xb5\
+[\x01\xafx\x07Q\xdb\x91\xde\xa0VO>\xab\xc89\
+\x84\x8fC?\x83\xe3E\x19\x06\xc8\xe0oDhF\xcc\
+\x84\x1a\x17v\xb5\x06|\xff\xbd\xb7\x97\xc4k\xb6y\xfd\
+\x9d?\x12\xeapm\xcd\xb8\xce\xae>\x09_:\x96T\
+;\xd2\xbf\xb6Y\xed\xcc/\x99\xdb\x995<ofn\
+%\xaa\xd12?fn\xe1\xbe\xd9S\x97\x17\xaff\xa3\
+>\x1b\x99o(\xcb\xda\xdb\xd8U\xaf\x87\xbd\xb1\x03\x9b\
+YYT\xeeD{2\x87jY}\xdeQV\x9f\x95\
+l\x01\x87x\xd6aui_2\xe2\x95\xf3\xcb;;\
+\xbc\x05\xd2\xd6\xe4K\xaf\xde\xe8\xbfr\xfe\x7f5a}\
+Xg\x8b\x12\xaa\xd4\xdd\x0b\xbb|\xff\xe4\xc7\xac\xa6\xf5\
+V\xe9^\x89\x96\x86\xf4\x8b\xfa]\xfd#\xfd\x07\xfdw\
+}M\xff\x00\xe87\xe9]\xe9\x0b\xe9k\xe9\xb2\xf4\xa5\
+t\x954iEZ\x95\xbe\x91\xbe\x95>\x93\xbe\xc2\xd7\
+\xe7\xb0\xaeJ\x97\x91[\xf2\xd4\xb5OY\xe7\xf4 \xd3\
+\xf694\xe3\x13\xc6\xf5\xf0)\x0e\x88\x15`6\xd7\xcf\
+\xd6\x0d\xa5\xce`\xae\x9b)\x9f\xed\xcd+\xb0\xce\xdd\x13\
+\xddYK=\xac\xeeV\x1fU\xc7\xd5\x87\xd5\xc7\xd5)\
+uP=\xa0\x1eRw\xa8\xfb1F\xd4\x82\xba\x173\
+\xbb;*qO\xb1\xd66\xdee\xbc7\xfa\xce\xa6\xd9\
+H\xab\xf6\x8epV\x0d\xa8'\x90\xa5\x81\xbb\x9b\x17\xf7\
+\xa8\xdd\x89\x868\xa9\xfb\xa03G\xebrx\x8dvw\
+\xdb\x88\xa2\xc5\xdd\xeb\xa1c\x0d\x9aA\xc56\x9d\x8d\xb4\
+\x0b\xf0\xed\xe0\x1b\xbb\xf9\x1fo\xeeId\x97z\x05'\
+\xcb\x96\xf7\xc8#r1\xee\xc1\xac|\x00]8\xd9\xd3\
+\x8f\xa3\xdc\xa5\xca\x842\xaedIS\x06\x951eD\
+9\xca8\xaa\x95;TS\xf6bv\x0c\xcf\x89d\xf6\
+\x88\x9e\xe0\xf4(\x82\xbfOh\x9d\xc3\x7f\x8b(\xe7\xf9\
+\x0b\xc2>\xdd\x08\xb5\xfd\xba\xfe\x8c\x96\xc5o\xd2\xd2\x8a\
+\xae9<\xa4\x19\x8e\xa3ES\x81&\xac\xc0\x12\xf3V\
+m\x98\xf8\x1f\xcc~D\x7f\xbe\x18\xfd[S\xdb\xaf\x9a\
+-1\xdf\xb6Q*u\x8d\xe8_\xfa\xba\x87{\x0ae\
+ndstream \x0aendobj\
+\x0a\x0a9 0 obj\x0a\x0a<<\x0a/S\
+ubtype /Type1C\x0a/\
+Filter /FlateDec\
+ode\x0a/Length 9327\
+\x0a>>\x0astream\x0ax\x01Uz\x09\
+x\x14U\xbeo\x87\xd0\x9dJ\x9dN\xd0\xd4\xb4C\xba\
+\xac*Q\x11w\x14\x14\x18\xc5\x05DT\x04d\x93\xd5\
+\x05\x0c\x9b\xec\x81\x90\xce\x9eNo\xb5\xf4\xa9\xa5\xb7\xa4\
+\xbb\xd3\x9d=!\x81\xb0\xc8\xa2 \x9b\x22\x02n\xac\xb2\
+\xb8\x0e\x8e\xf7::\x8e\xd7\xf1\xce\xcc=\xed\x94\xf7\xfa\
+\xfe\x1d\xe6\xce{\x0f\xbe/_:]Ug\xa9\xff\xf2\
+[N\x8ee\xf0 KNN\x8ec\xe1\xec\xa7\xe7\xcc\
+\x9a{\xd7\xf4\xcd\xcb\xca\x97\xcc.[z\xcf\x13\xeb\xd7\
+-\xcd~qg\x86\xb5dn\x1c\x94\xe1r3C\x07\
+\x8f\xb1\xe7\xf6\xd9\x07\x07\x0b\x86\x9b\xda\xcf\xc9\x9f}\xd6\
+\x1b\x87\xe4\x0e\xb9q\xc8\xf8\xeb\xcf\xdc\xc8\x9e)\xb2\xe4\
+\xe6\xe4P7\x08\xf7\xdd7\xea\xde\xfb\xee\xbbo\xe0A\
+7\xc1\x93n\xca>\xe9_\x9f,!\x18\xce\xe2\xcd\x19\
+\x96S?\xe8\xaeA/\xe4\xce\x1e|\xd7\xe0\xe5\x83\x9b\
+\xad\xb3\xac\xeb\xac\xa2\x15[\x7f\xb6\xcd\xb0\xbdn;\x98\
+W\x94\xb7<\xcf\x95'\xe6\x05\xf3\xba\xf2\xbe\xc9\xfb\x13\
+u7\xf5*\xd5Cm\xa7\xde\xa4NP\xe7\xa9+\xd4\
+\xe7\xd4\xd5\xfc!\xf97\xe6\xdf\x9c\x7f[\xfe=\xf93\
+\xf37\xe7{\xf3\xc5\xfc`~<\xbf#\xbf?\xff\xfd\
+\xfc3\xf9\xdf\xd0\xb94E\xdfD\xdfN?M/\xa7\
+7\xd0et\x05\x1d\xa5\xbb\xe8\xb7\xe8\xcf\xe8o\xe8\x1f\
+\xe8\xbf\xd2\x04\xe5!\x0e\xdd\x8e\xc6\xa1\xa7\xd0t4\x0b\
+\xbd\x84^A\xeb\x90\x175\xa2f\xd4\x86\xba\xd0Nt\
+\x14\x9dB\x1f\xa2s\xe8\x22\xfa\x04}\x8f~\xb2\xe7\xda\
+\x91\x9d\xb1\xff\xd6\xce\xd9\x87\xd9\xef\xb2?h\xff\x9d\xfd\
+\x11\xfb\x04\xfb\x93\xf6\xd9\xf6W\xec\x1b\xec\xf5v\xc9\xae\
+\xda#\xf6\xb8=mo\xb7w\xdb\xb7\xdb\x0f\xda\x8f\xd9\
+\xcf\xd8\xaf\xd8\xaf\xda\xbf\xb5\xff`\xff\xc9\xfe_\xf6\x7f\
+\xd8\xff\xa7\x80.p\x14p\x05\xc3\x0aF\x14\xdcU0\
+\xb2`t\xc1\xd8\x82\x87\x0b\x1e+x\xa2`z\xc1\xec\
+\x82\xf9\x05/\x17,/X\xbb\xcc\xe4&\x9a\xaf\xaf0\
+\x8b\xc5zQ\xf2J\x9b\xfdC%E\x99M\xab|\x12\
+\xb7\xe3\xae\xde\x1e\xa5u\x1c\x8d\x83\xaa!M\xe4^1\
+8U\x8d\x17\x87\x8f$\xafD\xde\xa0BX\xd3\x0dv\
+\x87\xfa\x07u\x07\x8e/l\x1f\x15\x9f\xafz\xa5\x80O\
+y\xc5;T\x1c\x03\xf7\xf7\xe0-\xb8\xbf\xb5[i\xb5\
+\xdf\x1a\xe6\xb0.'\xb9R\x83\x0b\xcb\xb1\xe2\x95d\xd4\
+\x0c\xb2{\x13\x19Ji\xbd\xb4\xc4\x22b\xf5\xa6~\x1d\
+4\xddm\xf9\xd5r\x9d\xdbR\x17/:\xf0)y\xe9\
+4s\xa5\xe3IN\x0e`q&\xdd\xe7\x0b\xcb\xd8\xaf\
+\xd4\x15\x8b\xb3\xea\xcd\x11\x8a\x99G\x99/*\x17\xa7~\
+\xc7\xfe\xed\xe27\xe4YU`\xf6\xe3\xbf\x05\x88\xcd\xff\
+\x1fJD\xd5\x22j[h\xe8F\xce0\x9c\xb3h\xe6\
+\x8a9\xc2&\x05\xe8\x00\x0e\xcc\xa4w\xf9B\x9b\xe9\x86\
+\xe2\xf0]\xd8\x1c\xfe\xb4\xd3\x9c\xa9\xacyl2;a\
+\xfd\xd7\xe4I,|\x81\xc9m\xe1/x\x1c\xd5\xd4\x08\
+\xa6\x98\xfd;\xc2\xd6\x7f>\x02u\xc3,\x0cZ\xe8\x09\
+\xc4d\xcd\x83\xdd\xc5\xf5\x9a\xb9\x00\xcf\xe7\xf12\xd5\x5c\
+\xb1\xd2\xe9\x91d\x9f\xec\xa3\xc5I\xb4\xc67g\x17\xbc\
+\xb3[i\xca.X]\xc8\xad\xea\xe3TQ\x8d\xf4\x19\
+\xe4\x95]\xce\xdd\x1a\x99l|\xc8\x1bZ8\x8c\xf9n\
+\xc3\xda\xcbi\xea\x1c\x0e\x91\xde\xb9\xb4\xa8\xfaua\x87\
+/\xac`Q\xaa/\xde8r\xf5]\xeb\x1f\x95\xbc\xfe\
+\xea@\x0d%\xda\xa4&\x7f\xab\x14\xdexq\x19\xb1n\
+\xfcR\x8a\xea\x9a\x81\xb7\x87\x86j\x9a\x11\xc2)Z0\
+\xc7g\x97'b\xffL\xba%\x10VB~-P\xbc\
+w\xf81S\xd8\xf6\x90\xe6\xd1\x1b\xb0\x9bR\x97j\xa6\
+c\x95\xd3\xadH>\x85_\xe9\x19I\xa7q\x1f\xde\xb2\
+\xa5S\xe9\xb4\xdf\xaa\x05Une\x1f'rQ\xe7V\
+\x85\x0c\xd1\x0e\xf38\xa5\xc5\xc2\xc9\xbes'\xc8\xad{\
+\xbe1\x1au=\xaa&\x8cz.\xe4\xe3$\x1e\xe1)\
+\xaay\x9d\xd7\x19\x90d\xbf\xcc\xafj\x18I'p\x0f\
+\xee\xebus.N\x93\x8d\xa5\xf4\xea\x88\xd5\xa7Jj\
+\xd8\xd9\xa3\x91!\xf85\x1e}/7fF\xf6\xd4\xb4\
+\x92%\xe9\xa2\xd3\x97\xa6\x1d'\xf7\x5cz\xea8\xf3:\
+\xd9\x99\x99\xe4\x08a\xbf_\xc0kU\xd3\x82gQ\xcc\
+\xbe\x7f>\xdb?\xf0\xecW=VY\x91\xef\xe3\x92\xd9\
+\xe7o\xd9\xa2\xa4\xed\xb7&\xe9\x81!\xd6\xfck\x08u\
+`\x08\xe6M\xf5\xfd\x10\xb9/\xe6Ls~\xde\x5c#\
+YI\x81\xb2\xe3\x0f\x1f\xb1\xb1\x90(\xea\x82.i\xb0\
+!M\xa5\xb1\xd2\xc6RJR\x83\x0af\xf5\xb0\xae\x09\
+\x81\x1f\xad\xba\x0c\xaf\x86\xd7\xdd\x95\xda&\x96\xf9t\xd8\
+\xa3\x0f\x9a\xc3\x02\x02s\xe9E\xc5\xda \x8a^YP\
+$\xc5\xd7\xc5A\xdc\xf3\xa7Te\xb3a:\xf0\xb2b\
+\xb5\x8c\xf3KN%\x18\xdcJo\xf3\xd0\x92\xf0b\xd8\
+\xea\xc7\x12\x8etcr\xef6'\xf3zR#\xb9\xea\
+\x09\xbe\xf0O\x03\xcb\xfe\xf5\xd7?\xbb-m\xbfZ\xce\
+\xb8--Eg.N?N\xee\xbe<\xe98\xb3\x8f\
+\xb9x:\xf3\x90c\xe0\x99\xea2\x0a\xcf\x0f\x8f\xa2\xfb\
+:\x95\xfe\x07hC\xce>\xd1\xf7\xff<q_R\x1d\
+x\x22\xb93j\xc5\x93U\xf3R\x9d\xd3/K~\x88\
+7HQ\xf1Yx\x95\xadx[o\xaa\x9f\xd3\x97\xd2\
+\xafFa2\xb2n8c:\xa9\xc7\x1f\xf0\xf8oa\
+\xf2\x22n\xa4B\xb2&b>\xe4\xdah\xbc\xcc2\x9f\
+\x987L6\x07\x99\xf9\xa2\xc0\x5c|\x01\x96\x0a\xe9*\
+\x09\x8a\xa8\xf8e\xa7\xfc \xc7\xbcI\xb8^\x07\xa1\xd5\
+\xed\xff\xf6)\x1b\x8b\x8b~C\xd0`\x9bD\xe7\x1a<\
+\x06?\xc1\x17\xcas\x15\x13IN\x98\xa1\x0e\xc5\xa19\
+\x98jm\x0b&\x06\x8a\x83\xa6$\xb9\xb5Qx\xfb\x8a\
+\x11v*\xbdA\x92w\xcayR!\x1cn\xe3C\xb2\
+Z\xc9\xa1;\xcb\xe1\x8dj\xb4!\xf4bkX\x97\xea\
+d!\xb0\xd4c\xe6?\xe74\x8bz\x1e>\xf1\xfe\xbe\
+\xaf\x88\xa5\x8bW\xa3j\xa3\x1e\xa7t\x9bR\x17t\xbb\
+\x9d\x88\xfc#\xed\xf0i\x92\x8a\x93\x94\xd6\x15&\x8e\x13\
+N\xe2p}9\xfd\x89\x05\xe6\x88\x89\x15\xbc\xec\x93\xea\
+\xe5z\xc8\x10\xdc\x18L\xe2\x04\xa5\x1e\x0d\x91\xdbu\xa7\
+!\xabi\xda\xcc\xdd\x04\xe3\x95\xd2\xce\x80\x1e\xd0\xf8~\
+\xc5\x1aR \xdc\x9cx\x8d:l\xc1Tl\xe6nv\
+\x06d) \xf3k<V)\x1bh\xad\xb8\x05\xf7l\
+iW:\xef\xa65e\x22\xb7&j5\xe8\xb0s\x9b\
+\xfe\x91\xde\xc9\xff)u\x88\x8c>\xc4\xeeN\x8c4\xed\
+Ke\xd3\x22\xd7\x0a\xb2W\x0ex\xe5\x8d\xdel\xa5\xcc\
+Fi\x1b\xde\xd6\xd3\xa2\xb4fo\xf6\xd3\x88\xb8H\xd0\
+!\x86\xe0\xbfN\xa5\xab\xcb\x92\xaf\xb2\x0f\xbfr\xef\xc3\
+c\xf7\xbepX@s9\x85\xf3\xd7a/\xebS\xc4\
+z\xba\xba\xc4\xb5\x98\xf2\xcb\x91@\x0b\xedT\x1e\xe4\xd0\
+1\xf3\xe6\x9fLy\xffp\xca\xa7\x1br\x88\x0d7\xaa\
+jH\xd0\xa6\xd0\x9aS=\xa6\x93\x0dx\xb7\xf6a\x88\
+\x8c\xc7\xdd8\xadC\xa5j\x0b\xd5s\x86S\x1dK\x9b\
+\xbf\xb5%\xa0\xc4I3\xe9~_L6\x02\xb8\xbeX\
+{\x11\x9b{\xf10\xea\xe5<Q\x0a$\xfc)1V\
+\x5cB\x06\xddD\xf6\xaf\xbfB\xe9\xb2\x82\x03,2\xc7\
+\x12o#9\xda\xf8\x9a+\xe7\xfd\xc3\xb9M\x99\xe3S\
+8C\x95\x02\x02\xde\xa8\x8eY\xe6\xc2\xb7W8\x07\xb6\
+h\xbd\xdf*\xcb\x01Q\x81\xe4\x11\x12\xb8-\xd8\x91n\
+\x096\xdbo\xc5X\xe5JCV\x11\xcbXw\x86\xd4\
+\xaf\xf11~1'\xc9|\xe1\x8a\x89\xa2\xd7/7H\
+\xc5\x9e\x15\xe6o\xfc\x1b\xd8\x15\xaa-\x9a\x8c\xa5\x8c\xe8\
+\xbb?\x10\x96\xa4\xcf\x90b\xca\x88b#\xe4\x84N\xe0\
+M\xf2\xd0\x01D\xb6|\xaa2e\xf6\xa2\xd5\xf6\x9bE\
+Y\xf1+B\x8d\x99c\x95\xc2\x01\xdd\xc5a\xfe\x8do\
+\xadaM\x87>\x93\xfe\xc2\x1f\xd8*$\x94\xb4\x12\x96\
+)$\x8awsh;\xf9\xd2\xb1\xa8s\xe5\xc9\xa5\xfc\
+\xc9\xa5\xed\xabJ\x9c\xb3\x16\xaf\x9f\xefq\xeb\x86\x9f\x17\
+5\xf8\x1fr\xb75t4\xb45\xd1\xa27 \x0a\x91\
+\xb1Vq\x0b\xa7\xf0bS\xbb\x94dI\xee\xf1\x8f\xce\
+\x1e_\xbd{\xc6\x1ea\xfe\x8e\xca\xae\xbd\xce\xd7\xda\xf7\
+\x1ehl\x94\xfd!\x1e\xc5\x94\x98\x12RTy\xa8\xaf\
+\xceS\x13p/~\xe4Qs\xc4\xe3\xe6P\xaa\x82S\
+\x9c\xb2\x0a\x15\x8e\xf7\x18\xba\x18\xdd\x92\xc4\xc7\xbe8\x22\
+w\xb2\x86\x8a\x0d,4~o\xd5\xb1O\x97Y\xc5E\
+\x0b\xa53`\x13\xa0\x15\x16/\xf3\x8c\x157*\x14\xba\
+\x97>\x18&7\xab-\x026d\xdd\x0f\x7f8\xbe\xfd\
+\xed})A\x8fj\x8dz\x8cRm(8\x95C\x8e\
+\x8a\x1d\x5c*\x15\x8b7774\xd6\x08\xc4vCE\
+\x82\x8bs5B!\x99N\x06u}\xdd\x7fL\xd8\xdf\
+\xbd\xadk\x1b\x1b\x8fdSS\x17u\xbf\xe6\x89\xafm\
+Z\xd5\xb4\x86R&pzD\x9fI7\x90\xc1\x8a\xa1\
+@\xc6\x17\xc7\xaa*\xb4\x0d\xec\x9cy\xeb\xe6\x96\x08\xf3\
+\xd18:\x88\x9a\x8b\xf4\xc6\x8e\x8f\xdb\xdf:|\xb0\xfb\
+b\xb2\x91\xe9\xb3\xbcF\x0e9L\xdb\x81\x91\x07\xa6\xf3\
+\xcca\x8b\xdf\x90}~\xb6\xc2\xa5\xe9\x95\x82\x17\xbbC\
+R\xb8\xae\xd3\xd7\x5c\xd7C\xa9rP\x11E\x11\x1a\x80\
+C\x92%Q\x12\xdcU\x9bV\x97\xaf\x91%U\x86\xe4\
+\xdc@\xab]m\x89D*\xd1Z\x9d\xa8kw\xa92\
+\xb4>MSuY\xa36\xf7\xb9\xb6TuP\x9a,\
+\xab\x0a[hv'\xcb3?\xb9r\x1e&\xc9\x5c\xf2\
+T\xe6{\x87\x0bW)\xa2{\x9a\xf9\xd8\x03\xa6\x7f\xb2\
+\xf9$%)Q9\xcc\xf6\xd0*\x16\xbe$K>#\
+\x0b?!s(\x0d\x075\x99-,\xa5\xe4\x09\x9c\x86\
+\xf0\xfba2>\x029\xaeCM\xe9\xf0\xee\xf2\x94\x93\
+\xde6\xf2\xdb\x9d\xa8\xc1]U\x13u7\xa7\xa2M\xcd\
+\xa8)3\xe5\x1e\x1aM\xe6X\xa4?\xcb!sDf\
+{gN/\xb1\xe7\x92;2\x87\x1c\xcd\x1c\xbf\x1e/\
+\xd4W\xaa\x94(U\xb8ae\xaa\xd0\xa5\xbe\xa7wk\
+\x14 \x87\x90Px\xb7\xcb*WpNI\x83\xba\x81\
+\x1a8\xb8\x00\xda\x1e\x8dX(&\x8a\x80\x1c\xaa\x11Q\
+e\xa1\xa2\xadl{]\x1b$\x92\xd8J\x07%5\x10\
+w\xbd\xb1l\xdb&J\xc5JP(t\xa8\xa1\xec5\
+\xae\xb6\xcd\x03\xd7HR+\xad\xc0\xe3\x9a\xe0\x9a\xfeM\
+\x14\xbev\x8d\xb2\x86v\xfa\xd5-\x1c\xbb=bE\x12\
+\x16\x90\xa2\xf2\xe8/^:\x0d\x0bH5Dk\x85\xc2\
+\xd6D*\xd5^\x93\xac\x12\x90Y\x0c\xfddt\xa2\xcb\
+\x05\xc3\x8f\xa5Wb\xf3\xaeP)\xd69\xa9A+\x8b\
+&\xc8m\x11m\x8f\xd0\xcb\x85\x85B\x0c\xff\xd0j\xaf\
+U\xda\xce\xa5\x00\xba\xb5\xb4\xf4(\xe9\xbbi]\x82\xce\
+\x8c }\xd5\x81\xf4moi\x09&\x07z\xcd@\xf6\
+J\xd8p\xa2 \x96a\x94\xa9d\xc7\xf9\x9c]gr\
+/\x90\xbf;6\xd7U\xba*\xe35m\xd3\xb9B\x07\
+\x0e\x061L\xb0\xaa\x1a\x87\xbc\x82\x1fZ\xaa\x18\xad\xeb\
+\xac\xebq\xf7PX\x81\xc7\xb2\xd9\xec\x82\xef\xb7\xc4:\
+\x9b\xda\xe3\x94\xb6\x8a\x0bj\xc1\x90d(\xf6\xe1\xd5\xde\
+2OU\x80\x92\xdc.\xa4x\xb7\x92%\xcd\xe4\xc54\
+\xd2\x17qH\x9e\x08\xc1\xde\xd5\xb4\xab\x07\x0bShY\
+\x0c(\x12_%\xf9k\xebX\xb7'\x14\xf6\x0aH\x88\
+\x96\xef\x9e\xd9\xb5\x9a\x92aG1\xab\xa2\x90{\xb3\xb6\
+\x91\xbd\xf9\xd1\x07\x1e\x9c\xb2s\xde\xc9\x97\x84\xb3\x0b\xf6\
+\xbe\xf2\x94\xf3\xa1gW\xce\xe1\x913\x12\x88K\x0a_\
+Ri\x0a\xc6f\x95\x0a\xb9\xcb\xb4:v\xca\x8cY#\
+\x04\x84\x8f\x1a\xe47\x9aS\x97T\x84\xeb\xaa\x83U,\
+\xfa\xd52\xc4mA\x01\xce\x89\xb0\x19\x87f*e\x9b\
+\xc0:\xefH\x1aI-\xd5\xbfZ\x0a\x00\x82\xfe\xfa\x9f\
+nK\xf3\xaf\x83\x9ev[^\xe1P\xe7\xfe]M\xad\
+Z\x07G\xf9\x10\xec*\xf3\x00\xee\xef\xc0]g\x8f(\
+;X\xf4\x93\xa3r\x07\xd7\x1c\xe7\xaa\xb3\x89Z\x894\
+Y\xc9\x069\x94E\x04\x1dO\xc1\xa5\xb4LU\x94!\
+\xf9E\x1a-\xa0E%\xe4S\xd9\x0e\x1a\x02\xa8\xafq\
+W\x17\x16\xd4\xa0\x9a\xad\xa9\xa2\xc2W\x88\x01\x14\xaa\xaf\
+\xd6\xca\xd99%\x1bKV\x0bK\xe7\x97>\xfc\xb8\xb3\
+0\xe0[@#YQd\xa4\xc3K]Ok\xaa\xaa\
++Z\xf9>4?d\xe6\x95\x00\x0a\x10\xd3\xf4\xab\xe5\
+\x9c\x82\xfcj\x8a\x0b\xaa*\x85\xbah\x88T\xc0+\xe8\
+EZF~\x05\xd0\x9a\x82\xa1\xd0j|\xb7\x9el\xef\
+d\x13I\x0fR\xb8@\x1dF$d\xfe\xd1\xf1\xe1{\
+\xef~wy\xf1\xb1g\xa7N\x9fy\x1b*\xdfW\xbe\
+\xa7\xae\x83B\xd9\xeci\xf6\xc4\x90N\xeb\x08b\xc7~\
++\xca\xfc\xe2@\x1d\xe6\x9c\xfd\x99\xdf'\xeb\x9b\x90C\
+\x96$Q\x16\xea\xab\x90\x13RBKAX\xf9%\xa4\
+\xca*\xe2K9X\x14\x04\x87\x8e\xa9-\x08\xcb~\xb7\
+\xac\xf8x\x8f\x12\x10\xfdN\xd4\xbdc\xf7;\xd1v\xaa\
+\x85S%\x16#I\xd8$7\xac-c\xabkc\xcd\
+\x15\x02\x0a\xca>A\x0a\xca\x22\xcc}!\x04\x06@u\
+\x15Q\xb0p\x14\xf1c\x11\x056\xc18A\x8c\xca\x81\
+\x08d+\xfe\x12\xcd\x5c\xa2\xac\xe2\xdd\x12\x80 \x1e\xf9\
+#IO\x13[(6\xf5Ii\x96\xdcp\xf1\xf3\x7f\
+\x17P\xb6%\x0f\x5c\x9a\xbeVGQC]uM\xac\
+>\x85\x8cl\x90N\x81M\x92ac\x90\xa1\xa8HW\
+\x83\xa8\x12\xaf+wJ\xb2\x0c\x11\x84\x00Y\x89\x01\xa7\
+\x14\xa3\xe1\xd7\xbb\xb94@\x02dl\x865*\x01\xc9\
+\x09\xb0G\x86\x1cU\xd1P\x0d\xc3\xbb\xd6\x90\xa6\x86Q\
+\xc4\xeaGA\xd8\xf1E\xc3F\x97\x0br\x83\x5c/!\
+\xa5\xe7\x01\x1aM\x02\xf2\x93\x1d\xb7\xba\xd1\x8d\x00.*\
+PIjE\xd1\xc37 \x0b\x10\xd2!\x96[,w\
+Z\x1e\xb0<h\x19g\x99hy\xc22\xc9\xf2\xa4e\
+\xb2\xe5)\xcb\xd3\x96g,S,\xd3,\xd3-\xcfY\
+fXf[\xe6X\x9e\xb7\xcc\xb5\xcc\xb3\xcc\xb7,\xb4\
+|m\xe1\xb2\x5cv\xbae\xa6eE\xce\xefr&\xe7\
+l\x1cT\x9c{C\xee\xe8\xdc\xcf\x07\xdb\x07\x7f>\xf8\
+[+\xb6-\xc9\x1b\x99W\x92\xf7>\xf5#\xf5k>\
+\xca?\x9c\x7f\x99\xdeH\xab\xe8\x16;k\xbf\xd7\xfe<\
+y\x22x8\xf3\xe7\xc39\xf0\xf3\xd6\xc3\xb9\xc1\xc1\x19\
+\xe9\xe7\x19\xbfH6\xa2\x99\xef:\xccGI\xc4J\xbe\
+\xb5\x997\x99o9H\xf6\xc3/\xe1\xbc_l/\x0d\
+\xfcN\x1e5\xe1\xb3-s\x14>\x99\x113\xfb\xa9\xd0\
+\x9c_hN\x95\xae\xd5\x8a3\x8e\xb2\xfaJWU\xbc\
+:[*\xbeU\x9ak\xa2\x9e49\x90\x22\xad\x89@\
+s\xd1\xe5\x93\xe4\x9e\x0b\x0b/3M\x16RK\xbe\x00\
+\xc4\x0f\x9d\x1cS\x87\xd2\xef\xbd\xfd\xb1\xf3\xd3y\xef\x99\
+\xbf\x9d;%\xe0_\xc1g\x09\x0c\xe0t\x81y\xd8\xb2\
+C\xb66j\x01\xb7\x10\x9c\x124\x99\xe03\xc1e\xd8\
+\x5c\xb3\xca>\xdc-\x8b@^\x98y\x16 \x06\xd9\xf7\
+\xfb,\xcd4\xbaqW\x17nM\xf4(\x09\x96\x5cG\
+,\x07\x89\xfd\xd3i\x1f<\x16\x17`4\x09\xfb\xb1\x17\
+S3\xc9V\xc7\x87\x87\x96\xdc?\xea\xe99\xcf\x06|\
+X\x13\x85\xee\x10\x19\xad_\xe0\x1bqHO\xb2\xf0\x08\
+\xc2\xff2\xdda\x0e\x9a\xb8\xfcw5~#\xd2\xa2\x93\
+\x0a\xbc\x8d\xd7C\xb1`#{\xf5\xc4\x93\x8f\x08\x857\
+\xc9M\x99\x7f\x8f\xe7\x5c\xf9(\xf7f\xaep\x1b]\xd4\
+\x99\xd0\xdf'\xb7\xbc\xcb\xf4L\x84\x19x~\x04\x98\x80\
+%\xb5\x98\xe9y\x89c\xb6\xce\xe3\x98U\xf1\xdbji\
+\xa6\xa7\x91+|\x0fn\xfcCk\x11y\xe0\xec3\xa7\
+\x98\xb3\x99\xeb3\x19\x07@\x8a\x00_\xb7\x5c4\x7fc\
+\xf2\xeb\xeb\xec7\xfb\x159 \x04L\x9bU6 m\
+\xb6\x02\xd6\xd9\xf1\xb5\x95\xb9\xaa\x85C\x80\x83\x9b\xf5\x83\
+j\x9b\xa2NT\xcdq\xb8\x84b\xce.\xd3\xcc\xf5@\
+\xe2$\xb9\x92[\x09{\x90\xa5\xd7-\xb8\x13o\xdb\xe9\
+\xe6\xd4`P\xd3e`\x00\xcb\xafq\xa3\xa8\x93\xb9\xba\
+\xd5 \x8bO8\xf1>\x8dL\xd0O\xb6\xe3\xb7\x81\xbb\
+\xc6dh\xc9\x9e\xfe\x07\x86\xca\xd9\x82\xcejaM\x03\
+`\xb1[\xee\xcc\x9csm\x89\x17e\x96'\x8e\xfd\x91\
+\xd9O&\xb6;\xe4\x84\x9cT\x1a\xab\x09\xb3\x86|\x14\
+\xf8=\x15\xd6\xf5\x10\xe6w\x1bVM\x0d\x19x\x0eg\
+>b[\xc3\x050P\xd6\xce@v\xfd\xd8_\xdcl\
+\xa2C\xbf\xd8[FQ\x01(\xd8:\xdbj\xdb\x0b\x88\
+\xc8Hv\x9cy\x87lJ\x9f\xd7S\xa1vc+e\
+\xd8\xb4uz\x99\xeai\xbe\xff\x80\xb9\xbce\x1c%a\
+U\xd6\xd9\x0e\xdbN\x1c\xc2F:}\xfeJfT\xf3\
+\xa7j\x08\xf8\xb1\xda\x1a\xea\x01\xc1\xe0\x1a\xb6\xbd\x09\xb0\
+-\xf0[M\xd8\xeb\x0f\x03\x19\x91k\x8bk\xcd\xe1+\
+\xcd\xa8\xcb\x1c\x22\xbb!\xe9\x1a(\xc9&\xc5\xe4F\xb9\
+\x91b2\x9b\x083\x9b|Q\xfb9`\x0e\xe0\xd2\x0d\
+A(B\x1beI\x16+J\xcd\x1bg\x9a\x91\xf5\xe6\
+u\xc0\xed%7d\xaa\x9b*|\x94+j;G\x84\
+\x8f\xa6\x1ec\xded\x0e\xdd\x09\xf4\xe7\x01\x8e\xa9\xba\x85\
+f\x0e\x0d\xa3\x0b\x8f\x04\x92\x99\xe1G\xc9\xd4D\xc2U\
+t\xe0\x12\x19y\x8e\xf9\xfc\xbf\x88\xdb\x81\xe3\xc1\x18\x06\
+H\xf3u\x94\xbc\x1erF\x145\x1b\x97\x7f6\xf3k\
+\xad\xa5\x1c\x04\xb1.\xecT\xac\xba.\xd7a\x01\xd7\x05\
+\xcd\xa9O:oV\xcd\xc9\xcax^\x8aJ\x1aN\xd2\
+|\xe7a=\x0c\xb0)P\xbc6\xddW\xb6\x97\xfd\xf3\
+\x87\x10\xbbO\xfe\xbe\xec\xcb\xa7\x9e]4l\x5c\x99\xc0\
+|.\xba\xe5Z\xa9\x8e:o\x96;V\xaf\xda}\xce\
+#\x00\x9c\x8b\x06\xc3\xc1\x10\x0e\x85\xec\xc3I^\xfa\x10\
+\xe1\x0f\xb2;S\x93\x1e3\xc7\xae\xb8o\x96PX\xe3\
+\xed\xcd\x8cO{\x5cE}\x97\xc9\x03q\xe6J\x1f\x99\
+\xed0o<>\xf5\xab\xee\x84\xa1E\xf8\x07if\x7f\
+\xe0\x8fV\x0d\xf0,\xe6\x99+\xeb\xb9\xa3\xde\x83\xae\xf2\
+\xcc\xac4y&\x91\x82\x9b\xce\x93\xd1\x97&\xbd\xc3l\
+\x07V\xbe\xe8\xe7\xdb\x1c.:\x00\xd0Y8(YC\
+Z\xc0'\xe0\xe5\xc11\xf8%\x5c\x8ekq\x9d$\x0f\
+\x95Bb8\x10\xa2\x9ak]\xf1\xf5\xec\x1d\xcf\x99\xd7\
+\x99\x8f\x8f\xd8\xf5\xf8I\x81\xd9\xfe\xd1\x9e\x7f\xff\xaeU\
+\xd0\x1a\xb5&\xadYW\x86*5Jy\xa5\x93Yk\
+\xde\x95\xe7\x05R\x0a\x19\xd7\x14\xecH\xa5\x83\xcd\xe3\xe8\
+)\xb4\xae\xe8\x01,\xac\x8ae\xc5\x02\x1cvFT\xb2\
+\x08\xef\xe7\x99\x1d\xdaWQr0\xe4\x84\xaf\x81\xc0=\
+\xfe\xdfC\x1c\xcb*/\x7fF\xee\xdf\xf1\xc7c\xaf\xb7\
+M]\x1c\x12p\x03\xf6\x04=A\xbf\xe2\xf3\xd9\x87\x9b\
+7U.5s_d\x0b\x17p9}\x1f\x93\xeb\xcf\
+\xe5\xdeL\x17\x8e\xbd\xa67$\xc8\xcaT\xd1\xc7\xe7\xa6\
+\xbe\xc3\xec\x85\x88\xbe%3\xc7A,8\xfd\xd3Q6\
+\x12\x92@\x15\xd0$\xcd\xa7{#\x15\x8d\x1b\xa2\x9b(\
+\x05\x00\x19\xa8\x02!M\x17\x02\xdfXuE\xcd\x92\xe5\
+\xfaZ\xcd\xc52WF<o\x0e6\xf3$\x81\xf9x\
+\xa1b\x05\x943 \x0b\x94p\x1bh\xfe=\xd5:@\
+\xe0\x979\xf1\xfc\xd0(\xba\xb7\xeb\x9f\xfc\xfd\x85\xff_\
+\x11\xd8\x8b\x9b52H=A\x0a\xa3CAX\xd2!\
+{\x0a{\xcd9\xa9\xcc\xff\xc4=\xcdE\xbe\x0b\xeb\xce\
+\xcf<A\xd8\x8fK\xcf3\xbb\x99\xad;\xc9v\xc7\xa4\
+7\x17\xbe]\xcf3=e\xee\xcd\xeeU5\x94O\x94\
+$\xafsS\xc8\x17\xf3\xf3q_\x87\xa7\xc3G1\xaf\
+\x999\x937W\xbe\xe8\x9c\xf1\xfe\xf2?\x11\xdb\xf7\xef\
+}v\xfe\xe9\xf4\x98V\x9e91+\xfer,\xed\x8c\
+7E\xfa\x92|:\x9a0\x92:u\xb2\xf9\xc4\xd1\x1f\
+\x9c\xbb\xeb\xdf\xd8\xb8\x85\xff\xb8\xc9\xdaC\x87t\xa7Z\
+J\xf3c\x15\xab\xc7\x17T\xbd\x02\xb3[\xabqe\x15\
+\x90\xad\xf7\xce|\xf0n\x81\xdcdR\x8e\xa5k\x0f_\
+\xf9\xac\xfd\xe2\x9b\xfb\xdb\xa7=>l\xc3\xb2\xa5\x02\xf3\
+\x9a\xdf\xfc\xce1ka\xcf\x89\xa3\xbd\xdbvw\x0b\xb1\
+\xb0\x16\x8c\xca\xd4\xf9\xea\x0f6MwN\x9f\xb9\xf49\
+\xbe\xf0s\xd8\xf8\x9b\xde%\xcf&![\x8e_~\xfc\
+\x04\x99\xf0\x1e\xf3)\xf3\xa7\xd0\xcfw8\xb2y\x11\xd0\
+\x84\xdd\x925\xac\xfa|\xc2blnX\x03?\x0c@\
+_\x8a\x08]\x9c\xb9\xb4\xf6ZQ\x1f\x90 \x9a\xb2\x5c\
+\x1a4G\x00\xae\x1d\x9c\xf0j\x1f\x87A@sv\xea\
+\xef\x19}\xfcO\xcdG\xc8\xe8l\xec?h^\xbf@\
+\x19)\xbb\x04\xc5\xa3\xc0K\xd9\x00z\xe3@Sh\x06\
+9d{o\x8b\x92\xbaF\xc4WE}jP\xc7\xcd\
+\xc5Z_\x84\xd8N\x83x\xb0\xf9\xcb\xe7\x1e[h\x8e\
+\x9aV\xc5\xcb\x0db\xb5\xec\x86\xd2\xd1\x84[\xa0`~\
+\xaa_m$W\x8dl\xecUr\x85\xcfq_^.\
+:\xf4\xe5\xa4\xcbO\xbd\x03/f\xff\x1f3\xff\xe1(\
+\xad\xaa,\xdf\xdc^\xd3\xd6\xd6\x92jo\xabi\xde\x04\
+1\xf1\x909\xee\x1e\x9a\xd9}+\xc7\xec}\x84+4\
+o\x94c?\x17%\x92\xae\xa2\xf7>fv1g#\
+?\xdf\xee(\x070\x03\xf1\xf6\x9a\x0c\xc9\x04K\xc7/\
+h\xe6\xb4i\xb3T\xd3\xf7\xbf\xc8s\xd5\xc0\xcaEi\
+\x07\xdd\x8a\xd3\xb8\xbf7\xa5\xd0\xaff\xd3B\xd6@\xc6\
+1\x06d\x1cf\x17\xfe[\x84\xac\x89:C\x8a\x06S\
+#\xc7\xe5Xf\xd8\xbb\xcb\xe3E\x1f\x5c\x98|\x8c<\
+r\x82\x8c=\xc5\x5c\xca\x9c\x07\xa1D\xe4\x12\xf1(\x19\
+\xfa\xb1\x930\xe5_\xcc|l\xb19tJ5\x1f\xe0\
+\xeaa\x99b\x9f\x8d\xd8*\xbe\x98\xcd3\xa7\xc7\xbfl\
+\xde9\xb9\x0a\x14\x0c\x10O<\x22\x1e\x1a\x83z\x16\x85\
+\x97\xa0\x1d\x8f\x90\x11\xe1\xaczR\xc91\xaf\x9b\xb9e\
+\xd6\xec\xec\x03\xba\xd0o\x03\xa5\xce\x07\xf5l\xbdz\xcf\
+\x02's\x1aOS\xcd!\xeb\xb3:\xd4\x00t\xce\xf6\
+\xe3 \x08Qi\xdc\xdb\x93V\xba\xfe\xa5\x9f\xc0\xca\xb5\
+\xb0\xb3U;\xa9\xf7\xf3\x7fI\xec'c\x8e\xb0{\x9a\
+F\x9bC\x96\x06oV*\x05\xc5\xad\x80\x86R\xea\xc9\
+\xa25\xd0\xb1\xb2\x0aJ\xff\x96V\xa5\xcd~\xab\x8b\x83\
+6\xf5lV\x81\xf1\x82\xf6\x14s\xc6\xd5\xf7\x8d\xd7y\
+B'\xde 7\x1eew\xc5\x1f0\xaf[\xaa\x0c\x87\
+w\x0f\xc5_\x0e\xc8\xa5\x0d\x03\x80\xaf\x9d\xeb\x03\x01\xa6\
+\xe5\xda\xe8\x85\xff6\x10\x8d9\x1f\x9e'cN\xe5\xde\
+\xc1\x15.\xa1s\xfa\xa0\x84_\xcc\xbd\x8d.\x5c\x0f\xdf\
+\x8d8Rt\xea\xe2\xe4c\xccUr=\xa9r\xc4\x82\
+Q\x1c\xe1\xb5\xb7BD\x089\x0dE\xf7\xca\xbc\x99[\
+jU\x07dY~\xa7\xed_\xd2\xd1(<\x13:1\
+\x9e\x1a4opg\xd7\x9f\xa6\xffW>\x8a\x82\xf0\xbb\
+}\xcfn\xa5\x19& \x85da6Ha8\xbb\xfe\
+\x94vJ\xef\xe1\x89%\xf6\x06y\xf4\x1d6j\x04|\
+\xba\x10\xad\x8c\x94G*\xa0\xf0d\xe5H5\xac\x19B\
+\xe0\xafV?\xb4\x7f\xdd\xefU=,su\xd2+&\
+3\xa1F\x90A\xddR\xbcT\xe1+\xde\x96\xcc\xa4V\
+\xaf\xabh\xfb\xc9\xbf\xbf\xcd\x5c\xb9\x9fc\xf6\xcf\x01a\
+\xbb\x8d.\x9c\xe6\xed\xce\x8c\xe8\xa9J\x16\x9d:?\xef\
+\x14\xb3\x8b\xc43O8T\xc0\x0f\xcd\x9c\xc0\xf4\x9aC\
+Tug\xe8\x03\xbd\xbf\x18T^9P\xe1\xf1\xbb\xf9\
+\x1a\x9f\xe4\x93\xfd\x14sJ\xdc\xe4\x99/\xad\x87\xd5,\
+\xb4\xb9E\xd1/\x09\xb2(\xfb\x82\x12p\xd9`\xd0>\
+\xfc\x03l\xf5N\xf0\x9a\xd6\xd9N\xf3\x96=/\x9fK\
+E\xb0\x1a\xe5;\xf5\xceD<L\xbdB\x03\xbd3\xa0\
+)\xd9\x87Wzk\x03\x1e\x99\x92\xbd\x9e\xa0\x8f}y\
+\xe3\x1er\xb3\xc0\xec\xba\xa4]\x0a]\xe4\x0b\x9f\xa7\x8b\
+\x0e\x9e&\xf7\x9ff4\xa6q4\xc7\xf4\xdc\xce1\xd3\
+GpL\xe3$\xae\xb0]\xdeQ[\x9e\x99\x11/\xf2\
+\x93\x7f\x8c\xb9\xcal`zIUf\x91\x03\x14,5\
+\x00d<\x10\x96uQ\xa9/v\x8f.1\xa7\x95?\
+,y\xc4\xda\x81\x1e/7Jq9R\xf9i\x09Y\
+\xe9;\xa3\x84a\x9djOh(\x08d:\xc8\xe8\xe6\
+]6\xa83X\xdcDw\xf8B\xd0\xfa\x01\x93t\xde\
+r\xca\x8c\xb5N\xcf\xc2\x0cEc\xd3\xb6\xadXW\x8d\
+\xa6\xae3\x9f\x91\xfe\xc41-\xae\x1b!-\x9d\x85\x19\
+\x06\x88kc\xe9B\xb2^\xde\xf9kN,\xcb\xfa\xea\
+\x9b\x8a\x8c\xcc\xbe\xb1\xbf\x87\x1d\x1d\xbf\xdd\x01\xc0\x09\xb0\
+E\xfd\x97\x9b\xc8\xb2\xc0i*\xa2\xaaa\x95\xef\x0de\
+\xc1PV\xbf7\xef\x85\x81\xa5\xac\xbb\xd0\xee\x07\x80\x97\
+\x1d\xb8y\xcc\xebfw\xfa\x99\x81\x81U\xb6\xcd\xd6\x1b\
+\xd2\xa2\x9a\xd0r\xfc\x00\xb9'\xf9\x8e\x165Z\xb4\x04\
+\xa5\xd9\xb4*\xadV\xf5\xa6\x1e\xef7\x87\xb5<G\x89\
+\x03\x93l\xb1\xf5aC\x05=\x88\xe9M\xbf}\x96\x1c\
+n<\xa6\xc6\xf4HTK\x82\x02\x0f\x85\x1b\x84\xbe!\
+q\x1a\x86bN\xf5\x80\xd6o\x04\x14wq\xc3\xd8\xf5\
+\xe6\xd4\xea1\x8aG\xaa\x95\xae!!)\xa1D*?\
+[L\xd6\xd6\x9e\xa7\xa0\xeb\x83\xc2\x9bEA\x9b\x81?\
+I\xd5\xebL\xb4\xdc\x1c\xe5\x9aD1\xbb`_\xabe\
+\x0fU\xe8\xe1\x8a\xaa3\xd4\x83_1g\x99S\xb7\xd2\
+L\xef\x04\x1a\xfet\xf2\xed\x22Rp\xe4\xe8Q\xffW\
+\xcc\xe7\xcc\xa7\xf0\xe77'\xd0\xe6bbsT>\xc6\
+\x01A\xac\x03\x9c2\x8d+\xeb\xc8\xfc\xd2dN\x88\x10\
+\xa6\xf5\xc3\x0e\x9b9'\x91\xb7\xa93\xf3K\xdc|\x22\
+F\xaek\xfb\xa8\x95\xca\xe7\xe9\xdc\xc6\x11y/\xdb\xf3\
+y\xe5:\x8bM\xb0\xd3I\xfa\x02J\xda\xed\x17\xec\x05\
+d\xf5o\xc8'\x8e3\xcc5\x8b\xee\x5c\xce-9\xe1\
+\x9cw\x07\xcd\x18\x14\x1c\xf4\xce\xa0\x1fr\xf7\x0d.\x1f\
+\xfc?\xd6\x1a\xab\xdb\x1a\xb7\xee\xb3\x1e\xb2\xbee\xfd\xde\
+\x96k\x9be\x9bgk\xb7u\xdb\xb6\xdav\xd8>\xca\
+Cyw\xe4-\xc9[\x91\xb7)\xaf>oW\xde{\
+y\xff\x99\xf7\xdf\xd4 j4\xf5$\x05:\x0c\xf5\x06\
+u\x90:J]\xa0~\xa0\xfe\x9e\xef\xcc\xe7\x07\xac\xbb\
+;\xf3\x9f\xc9\x9f\x9b\xbf(\xbf,?\x94\xdf\x9c\x7f\x00\
+(\xd2\xc5\xfcO\xf2\xffF\x0f\xa2\x11]D\xdf@;\
+i\x9e\xbe\x93\xbe\x97\x9eL\xcf\xa2\xe7\xd1\xeb\xe8M\xb4\
+\x8bV\xe88\x9d\xa6\xdb\xe9nz\x1f}\x80~\x9f>\
+M_\xa0/\x83\xa9\xf7'\xfa\x1f\x08\xa1\xdf \x16\xdd\
+\x82\xee@\xf7\xa0G\x07l\xbd\xd9h\x1eZ\x84V\xa3\
+\xf5\xa8\x06y\x90\x84B(\x8eZP\x07\xda\x82\xfa\xd1\
+\x1e\xb4\x1f,\xbew\xd0Yt\x09}\x86\xae\xa2\x7fC\
+\xdf\xa2?\xa3\xbf\xa0\xbf\xa2\x7f\xd8mv\xbb\xfd:\xbb\
+\xc3^<`\xf6\x0d\xb7\xdfa\xbf\xc7>\xce\xfe\x84}\
+\x9a}\xbe\xfd%\xfb2\xfb\x9a=b[U\xac!E\
+\xdeL\x92\x9et\xd1\xe5O\x99\xf1\xe4\xaf?8t\xec\
+7\xa4\xa78wy\xfd\xe6\xfa\xf2\x80\xc7\x17p\xcb\x94\
+\xff\xe5\x17\xe5\x97Y\x9f\xac\xc5\x80\xcd\x94\xe0]\x02$\
+J\x14\xf3\x07\xb5\xf3j[\x1f\xadG\x0c\xd0[\xca'\
+j\xeas\x82\xd2k\x90\xf1\xc6G\x94\x8e\xd5\x08p\x89\
+\x13\x81-\x80\xa2\xc3\xb2\xe6\x8d\x96\xc66\xcd\x00\xa4\xa0\
+\x0b\xf2\x8f\xd64\x17\xe0\xdd\x0bds\xe4\x865\xb8\x92\
+M\xd0\xab\xc1\x8b\x8b\xcaj\x00|0\xb5,h\xce\xc3\
+\xcb(\xe6\x05p\xc2J\xe5\xb5<T\x92Jn\x95\xd7\
+:`\xfe1\xe3q\xe7V\xdc\xcd~zDQ\xfa\x05\
+&\xa5lK\x0030@\xc6\x00\x1a\x8e{\xd5Ki\
+\xe7\xf7\xae\xaf\x9f\x98\xbdp\xfd\xa3/\xf0\x01)\xe2\xd5\
+X<\x93\x13\x0e\xf6\xef\xdc\xd6\xc7\xeeN-\x9f\x10\x16\
+p\x8d\xb6\x16\x97Q\xa3\xcc\xf5\x8e\xb5\xae\xd7\xce_\xee\
+8\xb5\xef\xf5\xf6\x05\x15\x86\xa0B\x9d\x0c@\x05\xf6@\
+`\x8f\xabX\xb7`9X\x88GH\xd2\xf1\x97\xe5?\
+>v\xd3\x22s\x94\x99c\xdex\xe0\xa9\xaf;\xd3\xba\
+\xd1\xc8wFw\xb5\xa7\xe2P\xb7T\xa7.\x86+h\
+W]eC\xb5\x9f\x12\x1b\xaa\xc5\x0av\xee\xba\x93\x9f\
+\xfb\x05%\xa9\xf4\xb6:\x0fH\x7f\xc3]\x11\xaaQ\x8d\
+DRN\xb3\x90Lu\xbc\x111m/\x94y\xfd\x0d\
+\xa2P\x13\x98\xef\x7fE\xa7\xc8\x10\xbd\xf7\x93\xdd,\x0a\
+6(\xb5Ao\xb0\x0c/\xa9\xb6\x0f\x17\xa1_\xf3\xb1\
+\x10\x0d\xcaZ\xd3?\xdd\x10\x1d\xc4\x865\x8dV\xaf\xc8\
+\x85\x9d-\xda\x05u\x07\x8fH5\x149 N*$\
+0\x149\xc5\xc8\x169\xdf\xf8e\xe6\x13\x9b\x1f\x92<\
+R\x9dX\x9f%2q\xa9I\x8eT|^B\xe66\
+|\xa8D4`^[\xa0H\x81\x00>\x90\xfe#\xe3\
+4\xb8\xa1\x1d>\x03\x9cB\xa84\xdd\xe6\xa0\xd3f\xa0\
+\xe7q\xbd6\x18\x80\xb2\xfel\xd9\xec\xd9\xeb\xd8\x06\x9f\
+\xd1\xe4\x156\xee\xb1be9-\xf9|\xcfrmc\
+\xac\x015\x04\xa2\xf7\xe5\x0f\xc8\xf5_l\x15\x10y\xc9\
+\xeb \xb6\xcf\x08\x22e\xe4\xb1y\x846\xad\xe6\xf5\x93\
+\xcc{\xcd\xb9\xe6\xdc\xd3\xf7\xff\x87\xd0\xd8\xecxn\xc9\
+Od\x02\x99\xb0\x8b\xdcs\xe5B\x97\xc9\x99\xb7\x98/\
+\x94\x98\x05O\xc1\xad\xe3\xe0\xd6\xc2\x83d\x18)\x22\x85\
+\x0b\xbex\xc0\xcc\x9bg\x0a\xa6\xc3,8\xf8\xbb\xabB\
+K\xca\xf1\xe2\x9aOH\x01\xc9o%\xf6\x93\x87\xba\x1f\
+7\xaf7\xf3j\xcc\x82i\x02\xaa\x98\xeb\xd0k\xb5:\
+\xd5\xdd:f\x87yg\xd3\xf3+\x95\xc7\xf4\x15\x9aX\
+B\xe3P\xf3\x99^r]\xeb\xef\xd5\x88\x96\x80\xca\x88\
+.\x99\x8f\x94\x93\x19{276\xa5\x5c\x9d\xae\xa2C\
+\x1f\x901\x1f1\xa7\x99o\xd2\x99\xe9\x0e\xb9\x14\x94\x02\
+h\xa1`\x22Et\xa9V\x16\xc4e^\x93\x99\xe2\x9c\
+.\x9acTs\x04\xbf\x81\x8ew\x86\x22\x98\xd7\x8e\xe8\
+$G}\x8bZ\x1fkq\xb7\xb2\xc7v]&\xb9=\
+@N\xd4\xb8\xdaH\xe9+l\xca\xdc\xa0\x89D'x\
+w\xe0c\x85\xe8\xd6\xd6`\xc2~+\x04\x88\xec\xa7\x01\
+w\x5c3\xb1\xc8\xe2<\xe6\xd2IL\x86\xb6\x83Q\x81\
+\xfd|\x9d\xad\xb4\xbe\xa1Z\x11|\x8a\xbb\xce)O\xaa\
+\xbc\xab\xeey\xea\xa9\x9au\x8f/eWT\x1f!\xf7\
+\x0b\xcc\xe9\x83\x11r3N\xf3\x18r\x08\x04\xfe\xc2\xd1\
+\xe4\x5c\xcf\xe6\x18\xb9;u\xa1\xa7\xa8\xed\xe0W\x07\x16\
+\xbf\xc6T\x91\xd1\x99\x1b\x1c\x8a\x14\xf4H\xc0\x8f<N\
+Q\x0db>\x02\xdc\xa8\xa9)b\xbfy2\x07\xb26\
+h\xcb!k\xa0\x04\x1c\x9f&u\x0fn\xe5S\xea\x81\
+F\xe7\xf1\xba\xb7^X\xbe\xa6\xea\xa5\xb5\xbc(g\x85\
+D \x92\x02s\xa8\xb7\xbd\xad\xb9\x85mo\xaaz\xd9\
+\x10\xb0\x07\xbb\xbcNY\xd9\x02\xf8C+\x8ex\xea\xa2\
+\xe5\xec\xdc\x0d\xb3\x16-\xe8Y\xb7M`\xde\xdc\xd5\xd1\
+\xd7\xd9(0U\xaa\xa1\x86T\x83b\x0e\xcdZ\xec\xa8\
+\xack\xdd{ \xd1\xdf\xd3\x91(\xaf\x06n%\xaa\x01\
+\xd0\xbe\x80\x5c\x05\xf8\xb5~\xd7K\xeb\xd9\xc2{I]\
+\x9a\xfc.A\x86\xb7\x17\x91[\x8f\x94\x1cez\x99\xbf\
+\x90\x9c\xcc\x04\xa8;!\xc8bjwc\xff\x8e\xdd\xce\
+\xfd\xabw\xcc.Y[\xb6\xb1\x1e\x928\xe4\x81$\x86\
+\xb9\xb57\xb5\xa5\xba\xd9\xfet\xe9\xea\xc5\x9bWN\xf3\
+\x08\xf0\xda\x04\xe6[\x8f\x0a\xdb\xfd\xa1\xdc\xb3x\xa9s\
+\xce\x8a\xd2%\x15\x9bC\xd1z\x1e\xcb\xcbiYrK\
+\x9a\xe0Nt{\xba\xd9\xd3\xc7^\xfb`\xdf\xfa\x1d\xf3\
+`\xb6\x7f\x01\xba\x80E\xb6\xf0N\xe2M\x91\xb3\xdd9\
+\xe4\xb6\xb7r\xdf!QG\xc8\x88\x86\x8d\x10\xf5\xf6\xdb\
+g\xbf\xf9\xdcy\xe2\xd5\xdd\xf3JV\x96\xaf\xac\xca\xd6\
+\x90\x06\xd8\x1a\xa8!]\x89\xb6t\x17\xbb\xadc\xe3\xbc\
+\x87f\x8c\x9a\xf0\xb4 +AIvj~\xabO\xd3\
+\x83:{\xde\xf6\xf66%\xc4B\xdd\xd3\xc0\xb59a\
+\xd5\xc0\xb5Q\x06\x5c\x9b\xf2\x95R@R\x02rq`\
+\xe3\xbc,<V\xfcl\xe1}4\x06_\x86\xcbz-\
+\xc2.\xc5\x1a\x0e\x06\xc0\xb5^\xa3\x8d\x00\xd3\x1a\x91\xb6\
+\xccDGH\x17\xbdU\xd2\x0c\xb9B0\xb9\x9a\x12\xf3\
+\xf6\xe7\xd9\xd5U'\xc8\x1d\xc8\x0a\x9c\xe4>\x0e\x8d\xe3\
+0\x1aIz\xb7\xe7\xf4\x91\x09\xb9\xe4er\xca\x81\x17\
+\xd1\x0b\xe6)\xeat^\x14\xcb<\x1bh\xe1\xb0~>\
+\xf4\x86Nij\x93!\x14\xfe_q\xd7\xf7O\xa5\xab\
+\x0dw\xe1N\xf4A\xab#\x16\x8f\xb7\x18\xd1\xa3_~\
+G\xee>Ir(0\x22\xe0\x88\x83!G=I^\
+U@\x87q=\xa7\xccZ\xb8\x5c\xada\x03\x00\x8c\x15\
+\xc1}?\xcc \x22\xaa,\xb8hB\xff9p]a\
+\xdf\xd8\xc6\x93~q\x87\x80\xc0\x16\x90QO\xac+\xd1\
+\x1c\x1b\xa8\x8caI\xab\xa0k\xbc.O5\xc8\xf5\x0d\
+ur5\xbbh\xf11b\x7f\xbf\xe9\xfd\xa6~\xe1\xcd\
+T\xd7\xeb\xfd\x03\xdc\x19L'\xc9\xf0\xa9\xfe\xc6\xcd\xd1\
+\x8d\x8d\x1b)\x05\xe2\x14\xd4!\x1e=\x02\xb2*\x98\x08\
+<\xb2\xdf\xaa\xa2\xc9\x10\x83\x22\x07^DKO<\x99\
+\xeeh\xd9\xd84\x9dV\x07\xe4k\xaa\x96{\x95k\xfa\
+\xde\xaa\x89\x80\xf0\xe4\xa0\xcc\xd7m\xf0U\xd5\x95\x81U\
+&6(T\xa0\xcc-U\xb2\x0dR$\x1a\x12\xc0\x9c\
+z\xf7\xca\xee\x1f\xc9\xf5N\xf2\xd8\xf3\x84\x1ef\xe6O\
+6\xedf\x09_8\xb3\x1b\x5c\x81\x01\xca\x0e:\x11d\
+\x8b\xeb\xf5\xea\xdd\xbe4\x98\xdc\xa2\xe1e\x0b\xc7\x91s\
+)\xa2\xa6r\xba\x8e\xfcp$\x97\xd8\xc89\xc7\xa7\xdb\
+\xae^\xfax\xd5\xe1\x99\x8f\xbf:\xf6\xd1'\xb6.8\
+.4\xa5\x1c\xeb\x5c{/\x9c\x8b\x7f\xb4k[\xf3\xd2\
+\xc7'{\x9eY*\x14*%\x9c\x12D_\xc9M\xe4\
+\x95\x1er\xf1\xad\xa0\x0b\x91\xc5\x99\xffvT4\xf8\xaa\
+E\x01\x81\xd3\x05T\x04\xd6\xd4\xcdu\xb6%\x13\xcd\xe0\
+t%\xc1\xe9\xc2Y\xa7K\xbf\xe6t\x95\x81\xd3U}\
+\xcd\xe9\x02\xb3j\xe7\xd7\x17\x88\x9e|Ok\xd2\xc3a\
+\x00op\x18\x05\xf8_\xf6\x00\x059A\xc69>\x99\
+{t\xfaa~\xea\xd1M;\xdfr\x9e\xd9}\xe8\xdd\
+DB\x0a\x84\xf9PVw\x81\xa3\x0aM\x1bba\x1a\
+9\xda\xe9\x88;U\xc7\xd5\x821$\xcf\x06K\xb9?\
+s\xc5\x11p\xfb\xea|5\xb3\xcd|\x13\x99\x91\x89\xe6\
+\x8dTv\x0f\x15\xa7\x04\x96d\x80\xaf\x0f\x87\xe4H\xfb\
+6\xfc\xe1\x07\xfb\x94\x1e\x16\x9c:\x05 \xbd\xd0PY\
+\xbe\xa4|18u\xa0L\x87B\xc1\xc8@\xd4\x1b\x81\
+-@\x10\xfa,K>,%\x83~r\x92)\xfd\xc4\
+\xf9\xf1\xd9N\xf3F(\xf3L\xb9\xc9\xbc4\x03\x9c>\
+5\xb8\x8a\x13\xb6-\xe7<\xb8\x81\xf5\x88Y\xd7\xcfS\
+\xb5aiE\x0d\xed\xc8\xa6X\x7f\xe7\x1b\xbb\xe2\xad\xaa\
+\x11t\xd3\x94\xaf\x01.\xf1\x06\xb2\xce@\x03\x5cR\xe9\
+\xa2$)\xec\x0b:\x0b1\x08\xf7\x12\x88\xf6lY\xd5\
+\x9aU\x8a\xd0L\x874\xacc\xbe%\x14\x89 84\
+\xc3_\x13s\xef\xe3Zp?\xee\xe9\xdd\xa9t\x83-\
+%\xa1\xda\xb6\x0d%t7\x87\xd2\x99\xa9\x8eG\xf6\xbf\
+p\xe2\xc3\xf7N~\xb7\xbfjWY;\xdf\xef\xffB\
+\xee\xc6\xd3\xcd\x87~gnz\xc6\x9cL\x892\x8a\x8c\
+\xe7\x90\x0e\xbe\x1c\x1eK\xa3\xc0\xab4\x88\xfcPd|\
+\x8d\xe5QW\x14\xa6\x01\x9e(D\xbd\xe0\xfb\xf2\x9f\xf2\
+\x17\xba\xe8=PY\x9ey\xa2\xa9\xbe\x1f^q\x03W\
+N\xa3\xc4\xdc,\xed\x98I\xf7\xfa\xad1\xb8\xd3\xed\xc4\
+e\xba\xf9\xc22'jk\xdf\xd2\xe3j]'(5\
+\x8ed\xb4\xb6\xc2\xe5\xa9\xa9\xaeq\xc7[[b\xcd\xcd\
+Ba\xc0)\x97\xfbf\xd4\xcc\xa3\xc0\x12\x01cM\xe6\
+{6\xec]\xdaR\x01F)Xe\x9a\xaa\x01\x13p\
+\xb7\xac9\x8c\x14\xac eKR\x89\xb2!\xac\x82G\
+\x9c\x22\x83\xc1$\xf6\xea\x80\xda\xc0VP\xd0b8\xb3\
+\x11\xa3c\xce\x03\x069\xab~\xc7o\xcf3\xb0^o\
+\xd4\xe9\xdeb\xf4\x16\x003\x10<Y%\x18\x00\xdb\xe8\
+\xef\xde\xe6\xcc\x0f\xc9\x9c\x1dh\xb77\x95y:\x8d\xd4\
+U\x1c\xf8;*x\x19\x02\x8a\xd0\x86\x1f\x0a\x9f\x92\xa4\
+)$\xd1,\xf26\x13\xbdyO3\x09\xf4T6\x17\
+\xa5\x0f\x93\xdf\x1e\xee\xcd\xfe@\xf5\xa9T#X\xcbn\
+\xb0\x96\x0b\xbb\xb8\xa0\x82\xc8 s\x90\xe3\xd5\xd2}g\
+\xbe\xed;\xb8wW\xc7\x82g\x1e\x5c\xb3p\xa9\x80D\
+\x1c\x82\xd9\x05h\xb4X\x91\xf0\x16\xe8\x8a\xab88\x11\
+\xf5KKOS\x12e\xcf*\x85\xb8n\xbf5\xaah\
+>\xb4\xb1q:\x98T%YwQF\xd1t\xfb\xbe\
+\xb6\xd7\xf1\x16N\xf2s\x01\x98\x8a\x06\xaf\x05\xce$\xb4\
+\xbf\xdc\xba\x22\xbe\x09\x0e\xdf\x80P\xce\x16*np\xda\
+\x82\xe0j)\xe0\x8b\xc9\xe0\xb9\xfcMn\xd2\xcb\xbb\xca\
+\x7f\x1d\xb4h\xc0o\xdb\xe3jQ\xf0\x1aZ\x96E?\
+V\x1a+\xd0:Y\x90R4f\x0d\x03C\xb1n\x0b\
+!\x17%K\xa1\x81\xe0\x12c\xb4R\x8cT/\x8b\x1b\
+\x1a\x14$\xca\x01\x1f\x98p\x12XE\x1b\x1a\xea*6\
+\xb9:\xdc\x89\xf2\x1e\x19\xe8,X\xdfP\x8bt\xd9@\
+7\xb4\xd3`\x11#~\xb5\xc7\x8a\x0cp\x86\x83\xf0\x06\
+\x9a\xee\x82#\x0cX6X\xb0\xcap\x1a\xec(\xd8\x17\
+V\x85\x08\xbfJJ\xce\x91\xe9\x9f\xa3~N\x03\xfbT\
+|5k\xe9\xac\xa7d8\x96\xa4\x80\x19\x04g\x80d\
+'\xa4&\x9c\xdcBC{hp\xe1D0\xa7\x93\xc1\
+4\x1a\xcfe\x0f\x18\xa1\x0d\x9c\xa8 _\xa4\xd1\xd3\x08\
+\x9e \xd8EJ2\x0cQ`\xe0\x01\xf8K\xa9\x00\xcd\
+P'\x1c\xd9@\x10>2\xb8R\x18)\xe0\xa8)X\
+F\x01\xd8\x14\xcc\x16\xd6\xd1^VR\x90\xe1\xae\x01\x13\
+\xff\xc1\xe9OO\x01\x036\xebq\xa3$\x5ck\x03\x9b\
+\x0cA\x7f@\xe03\x22\x0d\x1cGI\x87\xfc\x961R\
+)\x0d\xa9\xfc@\xc7\x00I\x12%\xbd\xed\xa1\xf2\xcc\x8f\
+\xed\x1e\x17:\xdc\xb1\x85R{\xe8\xa0\x13\xc9\x22\xd4^\
+U\xa2\xda\xd6\x22\xe7\x22\x1a\xf3H\x0c\x803%\xa20\
+\x80\x86j\x16\xfd\x1fH\xfeq\xe4\x0aendst\
+ream \x0aendobj\x0a\x0a10\
+ 0 obj\x0a\x0a<<\x0a/CapH\
+eight 626\x0a/StemV\
+ 72\x0a/FontFile3 9\
+ 0 R\x0a/Leading 20\
+0\x0a/XHeight 465\x0a/\
+FontBBox [-102 -\
+250 774 752]\x0a/St\
+emH 15\x0a/Descent \
+-320\x0a/Type /Font\
+Descriptor\x0a/Flag\
+s 32\x0a/MaxWidth 9\
+38\x0a/AvgWidth 215\
+\x0a/FontName /ZSHT\
+RV+NuevaStd-Cond\
+\x0a/ItalicAngle 0\x0a\
+/Ascent 680\x0a>>\x0ae\
+ndobj\x0a\x0a11 0 obj\x0a\
+\x0a<<\x0a/Group \x0a<<\x0a/\
+S /Transparency\x0a\
+/Type /Group\x0a/I \
+true\x0a/CS /Device\
+RGB\x0a>>\x0a/Contents\
+ 12 0 R\x0a/Thumb 1\
+3 0 R\x0a/Type /Pag\
+e\x0a/Resources 14 \
+0 R\x0a/CropBox [0 \
+0 395.558 408.44\
+3]\x0a/Parent 5 0 R\
+\x0a/Rotate 0\x0a/Medi\
+aBox [0 0 395.55\
+8 408.443]\x0a>>\x0aen\
+dobj\x0a\x0a14 0 obj\x0a\x0a\
+<<\x0a/ExtGState \x0a<\
+<\x0a/a0 \x0a<<\x0a/CA 1\x0a\
+/ca 1\x0a>>\x0a>>\x0a>>\x0ae\
+ndobj\x0a\x0a12 0 obj\x0a\
+\x0a<<\x0a/Filter /Fla\
+teDecode\x0a/Length\
+ 36079\x0a>>\x0astream\
+\x0ax\x9c\xec\xbd\xcb\xce\xed\xca\x92.\xd4\xf7S\xfc/\
+p&\xce\x8b\xd3\xe9.\x1d$$\x1a@\x13\xd1@F\
+\x8b\x12\x9a\xb3q\xa0\xc1\xeb\x93\xdf%r\xd89V\xed\
+S{\x0b\x09\x1aTii\xcf\x88\xdf\xc3\xce{D\xc6\
+\xe5\x8b\xff\xbc\xa5\x1f\xfc\xff\xff\xf1\xbf\xfd\xfcW\xff\xcb\
+\xfe\xf3\xbf\xfd\x9f\xdb\xfe\x83\xff\xff\x1f\xfe\x9b\x9f\xfdW\
+*g\xfb\xf9\xbf\x06\xe7\xbf\x1d\xff\xfd\xef\xdb\xff\xf4?\
+\x0f\xde\xfe\xf3\xbfn\xf5\xe7\xbf\xfb\xf9\xcf\xe3Gx\xf0\
+?\xe1\x7f\xea\xde\x7f\xd5\x9a{M?\xf7\x9f\xad^\xbf\
+\xcaq\xfc\xa4\x9e\x7f]\xed\xfa\xf9\xf3\xb30\x06YK\
+\x1fd\xfdU{\xfd\xa9\xfd\xd7y\x9e\x22\xc7_o0\
+R:\x7f6r\x8e\xf2S\xea\xafk\xfcO\xaa\xc7\xaf\
+\xeb\xca\xe3\xc1_G\x19m\xae\xe7\xaf\xb3\xe3\xf9\x85Q\
+\xf2\xaf\xf3\x18\xaf\xaf\xe9\xd7\xb57\x7f|\x9b_\xbf\x7f\
+\xfe\xed\xbb\x85\xff\xf5\xcf\x7f\xff\x19\x889\x02\xff\xa0\x8f\
+G\xfe\x95\xd0\x85\xfd\xd7q\xa4\xf1\x827}\xa4_'\
+{\x98\x7f\xed{\x05\x992>7\xd8\xad\x8d\x16\x1c\xe3\
+\xb1\x94\xc98\xf2\xb9\xe1\x81\x9c\xc6\x03u\xff\xd5\xfb\xe8\
+\xf0\xf1+\xb5\xfa\x93J\xfbu\xf5\xf1\xf8\x9b\xc6\x8fk\
+!\x95Gw__\xde\xd8\xbd\xb5q\xfft\xef\xce\xfa\
++\x9d\xf9'\xa71\x01\xa9\x8e7,\x8c\xf3\x1837\
+\xa8\x03\xdf\x19D\xda\x0fRg.\xa3\x01\xe3\xe13\x9f\
+\x831\x1a\xd8\xda\x86\xe6\x97>\xe8\xbd\xfd\xda\xc7\x03\xf9\
+\xfc\xd5s\xfd\xc9y\xffu\xee\xe7x~a\x94\x9d\xa3\
+\x94\xf7\xe3\xd71\xba\xfb\xfe\xb4:\xf8\xd5\xbe\x7f\xbe\x87\
+cq\xe4\xf1\x91\x9c\x7f\x1d=\xa3\x87o\xc6Y\xc6\x9b\
+Iu\xb4\xa1\xfc\xcahy.\x5ci7\x18{\x19}\
+\xce\x153\xb3a\xcd\xd5\x13\x0f\xb4_cE\xe7k\xbc\
+k4\xaf\x96\xf1Wt\xf0E\x8f\xeeb9gt\xfb\
+J\xcb\x87\xdd\xbf\xb5u\xfft\xff\xda\xd8\x13\x07&\xa5\
+\xe3\x93\x7f~\xdet\x1b\x0d:ORm4a\x90\xed\
+\xba\x06yqE\xdd`T|\x7f0F\x13\xb7\x9f\xdc\
+\xb9\x950\xa3m\xecLL\xd6\xe8q\xb90\x14\x0fb\
+\x8cF\xee\xe3\x7f\xc6#\xef\xef\xa1Ok\x8b\xfe\xf9-\
+wq\xfb\xe7\xbdp]\x8c=\xf7f\xb44\xe6d\xf4\
+b\xaf\xecM\xdb\xb1\xb7\xb8\x8cR\xc2\xb2\x1c\x8c}|\
+y\xe3\xc2\x1a\xb3\x98\x8f\xb1\x1cy\xec\xf4\xb1\x98S\x19\
+\x8bo\xec\xaa\xabq\x0b\xde+c,\xceva\x0fc\
+\x0e\xbb\xbf\xbd\xcd\x8fs\xdb\xad\x0d\xfc\xe7\xbbX\xc6\xd2\
+\xd0N\xc1\x12\x19]|3\x8e\xd1\x97<Z\xbe\x9f\x5c\
+\x1f\xc7\xe8)6J\x1f\xa3\x8f&\x0c:a\x1e\x07\xa3\
+\x9fc\xda\xd2\xf9k\xbfF\x0f\xf2\xaf<f\xfb\xfc5\
+Z\xa6m\xc5)y\xd3)\xffj\x18\x8ek\x8c\x22\x0e\
+\x99\xd7\x87}\xac\xac\xad\xfb\xe7\xfb\x97F\xc3\xb0\x06\xf6\
+q\xde\xf1\xd8|3\x0em\x90\x948S\xe3\x18\xe3\x22\
+\x1d\x87d\xc591\xe8rb\x99\x8eS\xf5\xec\x1bf\
+\xa8\x1c\x18\xef\x9d\x13>N\x99v\xeaP\xe2\x19\xfb$\
+\x87\x88\xa9\x8dO\x0e\xb1\xb0|\xd5\x9d[\x9b\xf6\xcfo\
+\xb9}\xc8\xaf\xc47\xa09\x7f~\x16\xc6X\x9f\xe5\xb8\
+\xd8\x1fL\xde\xf8k\xdf\x13{\x93O\xaf\xcf<\x84\xc6\
+\x06N\xc3,\x8f\x8d2\x0e\x93\xd4O\x92\xa3#\x15\xa7\
+\xfa\xd5y\xdc\xde+\x03G\x11f\xbb\x0f\xf6\x98H}\
+|\x9b_\xe7\x16\x5c[\xf8O\xf7\xb1\x8e\x15WN\xb6\
+\x092h\x88\xf67\xa3\x1e\x14\xdd\xa9wH\xaa\xf1\xc7\
+J\xc9~q\xd8\x87d/\xbf\xd8\xa3!~w\xb4m\
+\xe7\x82JcYk\x02\xb1m\xd2\x18\xa7\xb3'\xce\xe0\
+\x93\x1e\x8b\x99b\x1d\xab\xa0.\xdf\xd5\x14~5\xee\x9f\
+\xef\xdeh>6\xf9U(\xb0\xff\xfc,\x0ch '\
+\xce\x84\xca\xf3\xb1B\xb0\x89\x94\xe4\x1b-8\xaf24\
+\x97\xeb\xe0\x0a\x1eS\x84=\x96\xda\xc9\x01\x80\xb4\x1f\xfd\
+h>9_dJRIZ\xa5\xd0\xd6\x87\xb7\xf9e\
+\xf6om\xdd\xbf\xd4?n\xf2\xc6%\xa5\xfe=\x18c\
+\x8f\xa4k\x88\xa5Z\xf1\x17*iX]l\xed\xe8[\
+?/2\x8erm80 \xb5\xd3\x10\x85\x18\xedq\
+\xb8\x1e\x17O\xd3=c\xb3\xbe\xe9\xb1\xffF\xc3\x87X\
++y\xf9\xe66\xbb\xf6j\xd8\xdfwml\x99\xa1\x8f\
+\xfe\xa3\x0e\x8e#\xa1\xa8\x138\x8a\xff`\xc5A\x13\xcb\
+\xfbh-\xbe]-\x14\xfa\xaf\xbds\x02\xaf\xd4\xb9!\
+ g\xef`l\xc1\xa9E2e\xac\xd4\x03\x8a\xd78\
+w\x86\xb4\x1b\xc7S\xcbR\xe3\x9e\x8c\xa1Ub\x85\xe6\
+\xa1\x98\x8d\x9f\x1e\x14Gc\x91\x97\x8b\xab\xe46g2\
+\xc6i\x8d\xfd\x9ekc\xdf\x8f\xae\x97\x0d\xf2\xacx\xfb\
+X\xf7c\x1f\x0d\xc68\xa8\x8fq\xdc\xb5N-0\xe3\
+3CY\x1c\xebf\x87<\x1d\x8d\x18{\xea^\xe8\xee\
+\xb6\xb4\xcc\x97\x8f-A\xc9pb\xf3P\x89zs~\
+z\xe3\xecf\x9c\x1e\xe3\x88\x80\x12\xd3\xa3!\x0fb,\
+=\x88\x92\xf1\x1f\xf7\xe4\xd6\xb5G\xf3\x90\x1a\x99;\xa0\
+\xf3l\x1e:\x1ct\xbf\xfc\xf3{e\x8c\xc6\x8c\xf5\x8d\
+\x0f\xf1\x84\xb8v\xff\x95\xc2v{\xbc`\x1cg\xc7\xe3\
+\xe7$/\x1d\x01e\xbf\xf8\xf51\xc1eh$\xd8\x1c\
+]W\x8a\x92\xb5\x18\xb7\xdf+'\x8d\xa5:\xce\x1c\xfd\
+\xee\xe2A\x5c\xb2\xfaz\xaf\x8cq\x9a\xea;\xa1\x92\x8d\
+s\x95\xddF+\xb8L\x16F\x1az\xe8\x99.~\xac\
+\xb7BZ\xad>|\xf0\x99\xb3M\xd6\xe8\x0a\x9bW\x0a\
+?yU\x8eJ\xa9:\xf3\xef\x95\x91F\xd3\xf9\xc1q\
+C\x00\xbd\x8d]\xc8/\x8e\xbf\xb3E\xa3\x0bX[\xe5\
+\xe8\x9c\xef\xdf+\x03\xe3\x8e\xd5\x86\x17\xa0\xc5\xe3}X\
+\xe8\xe5\x1cG\xf0N\xadsa\x8d&\x9f\xfa\xe4\x81!\
+N;\xfeR\xa2;\xa0\xc6\x92\xc0\x16\xf9\xfd\xa4p,\
+\xec\x10\xb8x\x96c9\x8e@\xb6\xa3K\x9d\xba\xbf8\
+)k\x8f\x8d\xbb&\xb4\x99\x04\x9dst\xb0t\xf7\xcc\
+\x0c\xd3\xa0\xb0n\xcb\xe5#u\xcc\x11\x07\xa2\xc7\xc8-\
+\x1c\xa8\x09\x07\x0e\xda\xd2\xfc=\xdc/\xf8wjO\xf7\
+\xca\x00\x89\xc9\xabCY\xc0u%\x8d)\xe2\x99\xf0\xf8\
+\x84Y\xc1IE[\xb9\x5c\x1c\xaaq\xf1\xc4\xa6\xa8\x18\
+r\x9e\x13\x0bg\xe3E\x0f\xa2\xaa\x8c=.\xd9\xbes\
+\xfb\x95\xb1\x1fj\xe6O\x8e\xeaVh\xfd\xfe\xfe\xe2\xa4\
+1/e\xbc\x0b\x1fe#\x8e1\xeaC\xd5\xdb\xb9\x0f\
+\x9f\x14\xc4\x0fF\xf0\xec\x9a\xd8\x96\xa9/\x8e\xff\xe2c\
+\xe2l\x93\x95N/\xbf\xae\xe5\x86\xcb\x16\xda\xa6\xf3\xe0\
+I\xa5\xa6\x13s\xb6\xaa\xf1\x5c\xd9\x06\xe3\xf4\xb1g\xd6\
+\xe4\xe0^\xca\xce\x9f\x97~\xd25:h\x9f\xc7\xeb\xcd\
+\xc1\xdd}\x1c\xf4)[\x1f\xea\xfa\xf9X?\xfe\xc0\xc2\
+\xa1\x80\x1cZ\x08\xfa\x0f\x05\xe2\x8a\xc1\x1d\xb3\xc3\x95\xfe\
+dPVp\x9d\x0f\xee\x94A|\x9b\xd4\x88\xfb\x8b\x03\
+5\x92#?:rI\xb6p\xb0\xc6!\x88\xdd\x7f\x7f\
+q\xc6\x95d\xfc[\xa7>\xf4m}\xaei}\x9b\xb1\
+\x05\x07\xb2\x09ZSM\xbe.\xef>\xc9\xae\xd3z\xd1\
+\xca\x81\xb0\xd2\x02n\xda\xcc\xb8\x02A\xb1*\xa7T\xc7\
+\xfb\x8b\x13\x97\xeb2.\xef\x10]\xb8\xb3\xf0\x08<?\
+} g\x9b,\x5c\xb6\xb9\xc8\xad\xcdE;K\x93\xfc\
+\xba\xbf8\xe3\x1e\xa8v\x0e\x19sl\xbc\xf9q\xdd\x81\
+\xc4\xe3/\x1aw\x1a\xecR\x5c2\xf0\xf6\xe4\x15x\xcc\
+^\x9b\xb3\x05\x0b\xdd\xe6\xefaO\x82Z\x8b\xc3xh\
+\xd4\xa3\xd5\x96\xcf+gh\xd6\xe3i\x09\x22\x5c\xd5u\
+\x22\xfb\x8bw\xb0>m\xc0\xad\xbe\x7f~\x9d\x9b\xbew\
+\xa4\xf9\xfe\x17gc\x1b\xb9\xb2\x8a\x96\xf2|C\xd6Q\
+\xf3\xa6\xf38\x16(g\xc6\x1eb\x87\xaa7\xe6\x90\xf4\
+c\xe67^\xae_\xac\xf1\x82\xea>\xeb\xeaW\xbc\x92\
+\xc7c\xda\xca+'\x97\x13\x13=\xba\x89\xdb\x12\xee\x1b\
+\xe7\xae\x81\xcdG\x0c\xec\xc2\xc9\xe78:\x8a\xf6f\xc6\
+\x1e\xcd\x1f\xc1'z\x0bF\xb6\x9aQ\xc6\xa9\x8c\xb35\
+O\xb1\x14:\xfc\xca)!e\x8a\x05O\x09\xc96\xae\
+;\x1c\xa3\x85\x01\xc5A\xb2\xf5\xe2\xca\x05-\xd9:\x9f\
+\x8f\x89\xf4\x0f`\xa4\x18\xb3W\x8a\xce\x8b\x92N-\xf5\
+\x92\xbc\x9fWN\x09\x09D\xfb\xdaF\x9a\x9b\xa1T\xaf\
+\xec\x95SBd\x8c_@{B\xe3p1\x0fq~\
+\x07g\x9b,<\x0a\xb9\x08\x0d\xb3\x8a\xc4J\x08\xf9\x8d\
+\x15\xc3\x89-\xda\xa0\xbf!\xa99\x0d\xd8{\xbf\xc7\xaa\
+\x7f\x90\x18L\x0e\xd1x7\x07\x15\xe2\xc4]\xd6\xdb\xf8\
+\xb0\xf6-\xe4\xb7\xfe\xe8\xc3\xb4\xe0\x1a\x88EX)\x0e\
+\xc6\xd3\xcdJ\x96\xa5\xd1\xef/\x0ev\xb4V\x954/\
+\xacX\xad\xaa\xda\xac9\x9b59\xa5yi@}\x1d\
++\x17j\x856W\x88\x91\x85\xb3QgP\xb7<s\
+-t\xb8\x10%+\x07G\xc7\x85\xc1\xcdRO\xf1\x86\
+\xb1\xba\xb6\xb9Z\xee`M\xdd\xec\xf7\x17\x07r\xa8\x85\
+\x8a9\x89i\x8d{s(d\xa8\x80$\x9d\xe7\xd0\x1a\
+x\xc6\xe4b\x15x\xe5\x94\x93\x87\xc28\x1d.\x1d\xb6\
+8A9T)\xa4\xfd\xca)\xe3I\xae\xb7\xa4\xa3\x07\
+\x92\x0cS\xb6\xd78\x18\xe2\x17\xd6\xa3q\xf4\x17\x92'\
+7\x22\x84\x19/\x17}\x0e\xdd\xc2)\x12\x82\xb0\xed\xb1\
+\xdf]\x1am\xee\x9fn\x9c\xe8w\x1e\xb2\x98\x0bv\xfe\
+\xde\xbdZ\xe8\xed\xfe\x9bG\xa4\xb1\xe0\xf2\xc0^\x8do\
+\xf0\xba\xd5b\xd1\xbf\x19\xe8\xb5\xaeL\xa7Dq\xe9\xba\
+\x84~\xeeD+'\x1aYy\x1c\x15z\x14\xc6\x99'\
+\x9dw\xbbW\x8e;\xcd\x93\x97\xeb\x9aWi\x9c\xbc;\
+\xf7\xf1\xfd\xc5\xc1\xc8w\xda*JL\x85;9\xb4J\
+I\xca\x95\x13\x8b2Q\xfd\xfa\x8c\xec~\xc5}wa\
+Q\xed\xe2m-\xcb@\x83F4\x8a\xd8\x1c\x93\xb1p\
+8\xdf\x075\xa3BK\x03e?L\x138\xa0O\xd9\
+#\xbf.\xc3\xb8T\xe3\x0a=\xbeRO\x5c\xcfa\x0e\
+\xc3\x19\xf0\x1f4\x1f<?\x82[\xf5\x1f\x8e\x7f5\x87\
+\x9e\x0b\xf4\xac\xc8\xf7\xc0\x83\xc2c\x03O\x88\x8fRq\
+\xb6\xc9\xc2\xac7ii\x9c\xd1k\x9aE\xfc\xfc\x93\xc6\
+|\xd2\xaeB\xcd\x0e\x7f\xa3\xb2\x09\x1b\x91d\xb8Y\x93\
+3\x94**\xa0\x8dw\x86\x22\x9b\xc6a\xd5\x0bm)\
+\xb0\xfd\x8e\x91jR\xe7\xa1\xd7\xa5\xb1Z\xb4\xd5AO\
+\xf2^\x19\xd0\xbfh\xa1\xb2\xac\xc5\x0d\x06\x8dK\xea\x09\
+\x97\x9f\x0e\x8b4\x84\xafO\xd6\x85S\x1a\xd5\x9e\xd8d\
+\x87\x86\xeb\x0c\xa5\xa7\xd0b\xb6\xfd\x9c\xec\xefo\xd3&\
+\x8b\xb5\xf4\xea\x93\xa9U\xb5\xce\x97\xb47\x8d\x8b \xf7\
+\xbb\xce\x8b#\x86\x09\xc6\xb4{\xa1q\x86s\xe3B\xfb\
+\x9f\xd2&\xf5\x90\x17bl\xc1\x09\x89\x8b\x8b\x1a\x0f-\
+]\xf0L\xdeT=dK\x22#\xdbh\xf0\x9f.\xfa\
+Vr)\x92\x94\x15\x1f\xbb\x83\x16\x99\xe1y\x18;\xc2\
+\x9aI\xd6\xee\x0fe\xe4I\x86\x12\xfc\x9fN\xcap\xd8\
+\x9a\xb0\xaa\xf6\xb8R\xbc\xe8\xd48\xe1)\xb1Aq!\
+2ys\xf1\xd0\x8cI\xc6x\x99\xc6n>\x7fd\xd9\
+5\xed\x9eK1\x5cZ\xd0\xf0Sj7\xeb\x86T\xb9\
+d3\x8en\xde>\x1e\xf4\x98\x1c\xd9\x84\x8an*Y\
+7\xa5R,\xbc\x16\x06\xae\xe4\xbawJ`\xc2\xaa\x80\
+\x86\xcf\xe31%n\x96\xaa\xf5\xfe{\xa1\xb10\xb1\xba\
+\x0e_\xcdw\x9d\xbe\x07\x8c\x996\x01<9\x83T\xbf\
+\x86\xbe\x0d\xcd\x11f\x11\x0c\xf7\xb4\xcf.\x8cK\x1a\xcc\
+\xd6\xa4\x00X\xf1\xf3Q~/\xb4\xed\x1fc\x05c>\
+\xc6\xcd\xe7\xbc\xce\x9f\xb3\xc7\xb3\xa4\xb7`\x5c\x1a$o\
+\x92\x8b3\xd9\xbd\x5c\x9e\x94\x17\xd6%\xb3,,\x12\x98\
+\xad\x1d\x16\x0f\x9a\x96\x9e\x0c\xbc\x8d\x8br\x87i\xef\x94\
+U\x01V\x12I\xe4\x85qv\xff\xb4I\x87:ug\
+\x04\xad\xa3aa\x9c\xde\x02\xbbn\x8cg\x93\xa1;\x85\
+\xeec\xc6\x16\x9cSg`\xe228%\xfc1\xbbZ\
+\xbc\x0b\xe3\xc4\x19\x83\xab\xeb\xe9u\x08;zG\x0f_\
+\x8c\x9fq\xb4\xf0g\x85G\xe7\x90\xb1l\x03-H0\
+/\xbe\xe8&\x89\x84\xc5\x89e:~\xca\xf6\xc3\xc2\xbd\
+c\xae\x17F\xd31<\x9eF{%Ta\xa0\xf0`\
+\xbc\x18\x1b\x5c\x9c8\xc2\x8f\x83\x83\x11\x1f\x1e\xcbJ\xba\
+\xf2\xc2\x80\x93\x8bG\x11\x0eg,V6L\xf6$t\
+\xf2\xcd\xf9\xf1\x0d\x09~\x0f\xb4l\x92\x97\xdf\x1e\x8c\xb1\
+P\xca~\x80l\x89&\xfaB\xfb5|\xb2\xa7\x84$\
+\x5c\xf2\xf7\xca\xa8\xb2&\xe1\x02\x0d\x9d\xb4U\xaeT\x90\
+\xec\xaa\xec\xa6\x1b/\xd4\x14\xdd\x8b\x88\x5ci\xc8\xe5o\
+1\xfa\x8f\x04\xf3!\xdb\x22\xce\xb7\x9e!\xc5\x8b\x19\xe8\
+X\x85\xcd^\x12\x16f\x8c\xbcP\x9f\xc1\x826\x0e5\
+\x06\xb2\x8f\x83}A\x93/_\xf4\xfd\xc5\xc9pi\xd2\
+\xb94\xc4\xfb\xd8,\x17\xaf\xda8\x12\xa4\x1e\xfb\xcc\xc0\
+\xc5\xf3\xd85\x00:\x0c\xb1\x0bW\x12\x22Q\xb6\x1d\xa8\
+d\xe8\xcfo\xea\xea'\x0c\xdc\xf9\xc4\xddh|\xc5\xc7\
+Z\xc6\xc1#\xe30\xdc|p\xe8\xb2\x85\xa3ER\x86\
+`\xd1c\x0b%\x07\xf3\x01\xbbC\xd9\xd4\xe4\x03\x13B\
+1aSp>*\xbf\x98\xc3\xd2~\xe2\x0e\x0dZ\xfa\
+\x1a\xe8]\xd6\x92J\x83\xd9\x96O\x18\x94\xd8\xdb\x03\xb7\
+\xed\xf1\xdd\x02cx\xb9\xd4 \x9c\xff\xfc\x02|R\x99\
+|\x8e\xe9x\x8e\x8bd(\x84-k\x9eiJ\x81\x9a\
+z\xd8&f\xcf\xc3\x01\xb3\x19\x17/\x04N\xce\xb8\xe0\
+\xa5/\xfa\xe6l\xe0\xd3\x09w\x16\xbav\xf5IM\xc4\
+JJ\xca\xa8\x0d'?\x90m\xa8\x87K\xb8M\x9b+\
+\x1c\xfaU\x17\x0a\x9c\x19\xf5\x94\xc3\x94\x9dH2z\xe1\
+\x8b\x90\x05\xf4\xcbv\xae8\xd9p\xe9\xcb\xcc\x85\x83\x0c\
+\xc1\x01W\xec&\xdfG\xa6\xcb\xc0/\xc2\xfe\x96El\
+\xac\x0e\xaf-(\xbaXO\x0bI?\xec\xba\xdc\xff\xda\
+`)\xb8\xfa^\xb1=\xc6\xff\x16l\x8f\xd1\xd3z\xd0\
+9\x84i\xdd\xf7NOF\xcb\x88,\xc8\xb8T#\xe0\
+\x04a\x14\xbdQ\x898.\x84e\x8c7\xd1\xc5\xb2k\
+>qe\xd5\x8a:\xa0Va\x09\x8e\xe1\xaaY&\xc4\
+\xce\x8b\xc38r\xe1\xe5\x1a\xfalE\x04\x04N\x87N\
+\xef+f\xbf\x1d\x9c\xfb\x04\xbfYo\x0c\x0c\xc0\xc7*\
+\xa2^\x16\x06\xedc\xbb\xda5\x8eypp\x82\xd1G\
+=&\xe7\xda\xeb\x17}\xf3\xb8\xed\xf0\xd7`\x5c\xf9\x95\
+\x0cUK\xc16m|=A\x8d@\x17\xa1s\xd1M\
+8T'\xb9\xb8\xb0\x89`.M\xb8!u\xba\x9d{\
+F\xbb\xb0\x04\xaa\xc2s.\xfa\xd51\xd5\xec\xdc\xd0X\
+v\xc4\x19\xc1\xf9\xb5W\xae\xdf|A\xaa\xeay\xbd\x90\
+\xe7\xf5\xce\xe5\x0c\xd1\xb9_\xd0\x0f2\x86\x13_\x1a\xc7\
+\xdaB2,\x81\xc6\xa1\xb1H0\xdc\xbfy\x82\x811\
+\xf4H\xae>\xe8/XE\xf0\xa3\x0e\xb9\xb1\x90<\xc4\
+p\xa1\x86\x1e\x9f\xe1#\xc5\x06\xc6xA\xe3\xa0\xe5[\
+\xf4\x16\x8c\xfb\xeb\x91<\xe6\x93\x9d\x80R6\xa4\xc0\xd8\
+$Z4s\xa8q\xf5\xe6|\xc2p\x83C\x04'\x17\
+,`\x18a\x5c\x04\xdf$\x0e2\xbf\xa2 \x8e\x87\x07\
+Y\xd95\xe3\x90\xfe\xbb\x14\xe1Za\xf9\x1cg\x11\x16\
+\x22\xee\xef\x5cx\xc7\xe5U\x84vqv\x9a\x8f\x16\x5c\
+\x86\xe0\xcc\xe7\x98\x1d\x9fvc\x917:\xee\xb0\x8ak\
+\xd7\xd1\x81\xa5\xca\x97\x8d\xa9\xc7a\x95a\xa7]\xf6\x03\
+6\xd5\xf7\x1e\xe1\xae\x1arn\xbc\x1b\xe1d\x905;\
+\xe4'\x0eBn\xaaC\xde\xc4\x13\x8e\xbd\xceM5\xce\
+\xf9!\x8fi-\xc4\x22Fg\xb1\x12\xc7\xe9\xdaS\xd5\
+\x95z\x08\xd6\x0c\xd5\x80AD\xf8\xe8qr\xf1\x1e|\
+\x09&\xb4_\x07\xad\xa0]v\x7f\x84\xf7\xd1\x0c\xda\xb9\
+\x10\xb1\xb2R\xa6\x0f\xf3\xc4\xbdl\xdc.\x11\x17\x87c\
+mo\xbc3\xbe\x18\xdcSI\xcdB\xcc\x08T\xa8S\
+!a\x98'\xac\xcd\x95\x96\xb6\xde\xe1Z\xc7\xde\xe6W\
+\xf2\xc9((\x1a\xb8\xdb\xc9\xb32\x95\xc2\x93O\x03\x08\
+\x97\xd2\xe8\x097.\xf5\xe8\xa1\xca\xf2\x9b\xb0\xd6\xe0\x1e\
+4\x18\xfb\xa5#\xef\xa8\xbc\x12\xc0\xf4\xcd \xaf}\xec\
+\xd3\x8b\x8ax;\x1a/7g\xa3n\xaa\x1f\xf0\x85\xdc\
+R\xe3F\xb8\xc9\xbb>\x0e\xfe\xb1\x87\x0e\x9d\xc5Cf\
+,\x147\x14\x1b\x8c\xc0\x9f\x0a=\x1f\x82\x86\xa7\xd5\xc5\
+\xef\xc3\xe4\xd6\x19<0V\xd5\xe8\x89\xe8I\xf2\x05\x05\
+\xa7\xda\x98+\xcc]\x82\x85\x1b\x1bk\xe8\xdd\xe8\xdf\x9b\
+\xbc\xb7\x95\x03\x81\xcb\xe6\x8f\xb3\xa6$\x0ah.\x969\
+\xc6\x05!:I\xf2\xe8\xb4w\xf0\xc4\x8dq\xee?1\
+&\xad\xed\xc4\x89\x82\x11\xf6\xe8\xdeN\x1cu\xc8\xe5\xce\
+[f\xa5`\x87\x10\x85\xbfd\xa8\x5c\x5cq\xf0\x07p\
+\xc1\xe1\xc0\xc0\xbc\x0cM\x81\xad\x1cg%\xe4\xf4\xd8(\
+\x08\xf7\x8aF\xd3\xf8\xae\xe7\xc7QY\xb8?a\xa9\xb9\
+\xf8C\xc6\x15\xd2\xe5q}\xed\x02m\xa5ugp+\
+\x8dVA,5\xec\x22\x88\xa8\xac]dG\xc8\xd0\xbe\
+zAD\x0aV6\xc4p\xc3\xf5\xa20r\x80^\xf8\
+>d\x84u:\x0a\xa6\xec\x1e\xe9\x05\x1b\xb7\x0c\xd7\xea\
+uP+\xc5\x0fOh\xe0\x9d\xbe\x13\x18\xab.y\xf2\
+\xec\xab`\x84k\xa1kL\xde\x8e\x03\x87\xf1\xb62\xec\
+\xac\xa2\x17\xeb\x22#\x9d\x87\xbd)p\xa2\xa5/\xfaf\
+\x9c\xed\xb8\x87m\x5c\xcc\xfcH\xe6}\x94\xab\xb9\xe3\x15\
+\xb9\xf1\xee\x8e\xc8\xa6\xc2Ve\xdd_\x19\xca\xc5X\x17\
+\x99\x91\xf1\xcd\xbd\xa0U\xc9>\xa5\xb1\x05\xc7\xad\x81\x1b\
+\xa8\xa3c\x88H<\x13/F}\xbf8\x0cxe?\
+\xfd\xb8\xde\xa7\xfds\xe2F\x0c\x97\xde\xf8\xd2X\x12\x8a\
+\xe6\xca\x5c\xe0\x0b\xa9\x1dt6:\x9d\xd0)\x18\x85\xc7\
+\x8b\xb5\xfa\x0e\xd8\xd5\xa0\x012\x9a\x0av\xad\xbe\x92|\
+\x01\xa3\x06qn7]V\xe4<<\xd4C\xd3[0\
+\xee\xafGp\xd4\xab\x13P\xa03\x85\x03\x17\xcb\x1ch\
+\xd8M\xa6\xe3\x09\xa1\xaf\xb0\xb6%\xacS\xec\xbbv|\
+\xd1\xdaE0\x86\xf0\xcawy\x13av\xe1\xba?\xe4\
+\xf9@\xb8\x14\xf6\x04\x16 \x9c'\x14H\xcd\x0b\x08\xad\
+\xe2\xd4\x1c\x97[)\xdbA>\x12[9[\x8d\x90\xe5\
+3mV\xc7q\xef\xc3\xda\x86\xfci\x8a\x05\x81\xa0\xa0\
+\xe4z\xef\x01\xed\xa1u_p\x0f\x15\xfc\x1f6Q\xdc\
+\x81\xea\xd1qE\xe3N\xc2\x8c\xcbR\x5c\xcb\xc1\x9d\x94\
+\x19Y4N\xec\xb1W\x14\x83\xca3\x90\x81-'5\
+5D\x13\xa390\x02\xde\xf1\x8e\x8d\xa2kG\xa0\x18\
+N\xb3\xde?t/\x8c4\xc4\xd5\xe4\xba\xb8\x0ai\xad\
+\xb8x!\xb8\x180\x8e\xc8\xb5\x8b'\xdd\x90\xf2\xdb\xca\
+\xf8\x91\xa7uw\x88Qf\xd0\xd3XQ\xd44\xbcc\
+\x17\x1a\xfb\x09&9\xb6+\xe9+\xb8\x10uE\x0a\xd6\
+\xb3R@e\xaat\xbb\x87\x10j_k\x0a\x5cBg\
+\xa1\xbc\xf7\xdc\xb9\x9e[\xa9\x8e\xc2\xe8\xda\x83\xe7A\xbd\
+0]\xea\x5c\xc2^h4@\xf2\xd6\x03W\xd6P\xae\
+\x18\xca\xf0y#\xb7T\xa6DB\xc8\xd4\x85\xf0$G\
+JAOyS\xf7\x8cD=\xf8n\x989\xb5\x0c\x0b\
+\xfb8:XhX\x85\xb5x\xb4A\xf4$o\x5c\xf9\
+\x0b\xb69\x22h\xf3)\xfb[\x95\xc2\xc0\xee\xbd\xe9-\
+Lt\x8fG2\xa3 :\xef(\x10\xa0\x10\x0e\x5c0\
+s\x98q\xabL\x9e\xaa+\x1d6]S&\xed\xdc,\
+fLZ\xe6[:]\xc7\x91\x7fi7%\x05:\x0f\
+=*\xc3\xea\x8e\xafis\x8c5\x08\x91tj\xd1\xc1\
+\xb7\xc6\x15\x94\xe9\xd4\xef\xbct\xaa\x9d\x0c\x85\xcb\xcc\x00\
+x4{\x9c\xd7\x189k\x84\x99\x97E\x98\xd2%\x0c\
+\xb8\xce\xc7Y\x89#k\xd9\x09\xdaO\xeb\xee\xe0~\xaa\
+\x07\x22y\x11\xeb\xe9K\xd3\xa1\x1d\xc6\xfd\xd4\x19K\x88\
+\xdd\xb3Wn\xa7q\xd6@\xd8\x8ek\x8d\x03\xba\xa1~\
+\xe2\x1eJqRe\xd2d\x883\xf5.\x9cf\x89\xa3\
+\xd7)\xaf\xa1\xb9($\x1e\xc1\x18\xca\xee\xe0\xa5\x8b\x0e\
+\xe8\xcb&X\x84\xa5\xc0ws4\x1a\xfc\x0b\xb5\x86q\
+dA\xb7{\xd1?\x0a\x8c`\x93vD`\x8f\x9f\x9f\
+\x0a \x1f\xd3S\xd27}3\x8af\xa7<\x87\xe6\xa0\
+H\x9e\x8e\x11\x1c\xcbt\xef\x14S\x88\xb4U\xf8\x04[\
+\x04\x8f7\xd4\xc9\xb1WO\xda_\x1d\x04\x0c3\x1f\xee\
+\x13\x83\xceV.\x8b\xae\xe1\x08\x04\xa4\xe26\x86\xe9\xec\
+\xbc\x08#\xba\x9c\xb7\x86!\x07\xe8\xfe\xa8\xf3\x85\xdaE\
+\xfd\x92*v\x8c3f\x8c;r^\x18\xc1=\x1a\xbf\
+\x90\xdaH\xd0\xaa\x11\xc4^\xa0\x05\x0d\xd1\x9e\x11\xba<\
+V^\x86\x01\x07w[\x9eD\xb8c\xa4\x95\xe4V\x82\
+U\x9d\xc6\xb4\xae`\x1f\x05\x8dfu\xd1\xf4\x16\x8c\xfb\
+\xeb\x11\x1c\xf9\xea5\x84\xe3E\x19\xc1\xb52\x07\x1a\x17\
+\x1b\xce$\x82\xeb\xe8\xe4\xeeN\xe1@BA\xbf\xbeh\
+m%\x9a\x13\xe0Ao\x87\xf7\x12-\x14P\xa4\x86\xfa\
+\x0f_\xe7xb\xe3\xde@\xb0\x9e}b\xb0\x90\x5cR\
+\xd7,\xc5\x8f\xe6v^z\xc1\xd8(h\xe7lwE\
+\x18J\xdf\xac\x11R\xceC~\xe3\xeb\x0d\xaa`\xe3\xb2\
+o\x94r\xafm\xa0\xbd\xb4\xec\x0cn\xa5q\x02\x0e\xa1\
+\x87[\x89nJm\xac\xfd\xd1\x0b\xee\xa41\xe5P~\
+\x1at\xf0\xcc\xadT\xe5Bl\x9a\x13\x9c\x82\xbc\xc3a\
+\x08\x12\x5c\x8b\x87\x22\xbf\xc7\x97\x1a\xad\x1e\x8c\xd2\xccX\
+\xb8\xb8\xde3\xe9`l\xf6.\xfd\x19*?\xa6\x97\x16\
+/\xe4\xfcp\x9aa\xf0a\xf8~\xd5\x0e\x85y\xb3R\
+{H\x98\xf7mep?5g\x0f\x1cZ\x1agg\
+\xc8?&\xe9\xa2\x99\xeaMcC%4c\xf3\xf2\x96\
+\xbbB\xc9\x10\x9d\xe3\x07I\x85\x8b\x04\xe3i\xab\xa2\xef\
+ty\xc7\x8a\xae\xb8\x80\x8f\xdd\xcc\xdc\x17\x18L\xa14\
+\x82\x91\xad\xfb]r\xcd\x8c\x16\xb2s\xb0a\xd8\xf2D\
+\x03\x02\xeee\x851\xa2\xfa\x81\xde\xc8=U\xaaO\x8c\
+\xa3R\x18!\xea\x9a1M\xf9XI\xed)\xdc\xe7\xc6\
+5\x05/\x18{*1\x18Xv\xbdqlCY\x86\
+\xbd\x1a\xcat[\xa8\x1bF*zC\xa0\xf8CK\x18\
+k\x08\x13\xae\x01\xae+-\xe1\xf4~\x04\x87\xbe\x12c\
+\x90\x22U)&\xb8f\xe6H\xe3r\xc3\xe9\x84\x0f\x89\
+\xfe](\xb4m\xe3&\x84\x8em\xc6\xa4\xe5\xda\xdea\
+\x91(\x85r\xe27\xe3&\xf8\x92\x13')\x22h\xc6\
+B\xed\x8a\x18\xdeqv\xc0V\xdbw\xd9\xac\xb4\x8c\xd0\
+2N\x0f\xac\xa5\x88R\x83\x89\xaaVn\x18\xb4t\xb6\
+|\xd0\xbb\x8d\xafL\xf3\xdax\x8c\xd7\xaa\x0b\x7f\xa1\xde\
+\x87|\xb4\xf2\xb5!\xb4\xa9\xd6M\xc2]\xd5\xf6\xb3\xd7\
+\x1f\x19\xbe\xdb\x05\xe3\x03w\x14\x12!\xa0\xfe\x8c\x17\x8f\
+\xbd\xcc\x1du\xe8^\x06\xb7\x1d\xc4+\xba\x8cs\x1b\x09\
+uU\xd1\x00\x9d7=\xe4\xb4H<\x8dk\x7f\x85\x14\
+\xcdZ\x05L\xfd\xa0\xaa\x0c\x8b\xdaA\xeb\x1c\xef\xd0\x05\
+\xc1\x1aT\xc3`?9\xa47\xc2\x0a\x80\x90\x8b\xaa\xd0\
+\xef\x1d\xd7\xcd\x85\xc1\x0du\xca\xde\x03\x95\xaf\x9f\xb4\xf3\
+R\x05\x85\x96\x8d|\xbf\x85\xbe\xe99L\x14\xee\xb8\x18\
+\xe3+p\xfc\x15\xbe\x09g $\x16\x14!l\xd5V\
+ez\xd0\xcd\x83\xc9s\xfb\xc1\xab\x14R\x16\xb9\x98+\
+\x9a\x85\xd0$\xaa~C\x15\xa1I\x04;L\xf6\x0c\xd8\
+\x96\x0e\xd9\x22\xe8K\x85\xd6}\xc2c\xa6\x1f\xe8\x8d\xdc\
+Ouo\xba\x1b\x8e\xcb\x0fr\x9bv\xde\x08\xc7\xb95\
+N\xc2\x85\xd4~\x82\xee2.\x8e:\xca\x11%\x8f'\
+\x10\x14\x06Q\x0eS\x11S\xab\xa0#\x1c+\xc9\x1du\
+a\x0e\xc6h\x1c\x97r\x1e0\xe1\xd8\xcf\xec\xa3\xe9-\
+\x18\xf7\xd7#8\xfb\xa1B\xd2(\x99\x1b\xa5\x05\xd7\xcc\
+\x1cj\x5cu\xb2\x84\xd6\x99\x11\x11\x84\xceA\x99CX\
+e*_\xb4cE\xeae\xe5'6T\xc3\xe03\x1f\
+\x0e\x81b\xc8\xeb\xdc\xb8\x1b\xb0\x0ea3\xd4\xba\xdb\xbd\
+\x88\xd0.N\x0f\x0dn\x07\x83\xd9:3\xe3\x1a\xdb9\
+\xdb]\xe1\xf0;6k\x88\xd0:+\xcc\xac\x9d[\x84\
+\xbe\x0d\x8e\xe5\xd7f\xe0n\xfa\xda \xdcM\xa7m\x10\
+=\xaeOg\xebmh\x8e\xdcR\x89\xa1 \x104\xbd\
+^\xdcRc\xb7BhB\xbb\xdcm\xe8\xc6\xa1\xdbw\
+\xda\x94(1\xe9\x83\x19\xfb\x85'\x05\xdau\xe1D\x82\
+/\xa8\xd0\xf0\xc6\x03)#I7Q\x99g\xa6\x05\xe2\
+\xdd\x92\x5c\xee\xe3\x95\x94\xcf\xbe##\xfc\xe2j\xa1\x14\
+l+\xe3G\x11\xa4l\xd5XZ\xe00T\xf8\x92\x9f\
+\x22\x95\x95\xc4~*>&qE\xc67\x10\x99}*\
+\xeb\x0f\xc3\x07\x81\xc5\xb5\x8f \xdbC\x1a\x9c4&j\
+X\xb0od\xa5\xea\xe0\x93;\xa5\xca\xe8P9\x0f\xef\
+\xee\xcb\xe6\x0bv\x0d\x06\x0d\x99\xff\xe8\xb4\x80\x1d\xea\x07\
+6\xb5\xf3\xf3:\xed\xa6\x06\x05\xabS\xcd\x1d\xbb\x87b\
+\x18Ij\xedXIm&3\xae\x92\xb4\x99\xce,I\
+\xb0c3\x0ee\x08\xd70\x04\xee\x8e\xd6\x90\x9c\xd4\xfd\
+C\x9f\xe9E\xd5\x17\x09\xc4c\x92\x18\xf2\x83\x88ht\
+n\xa1a\xca[X8\xf1#\xab\xee\xa21\xef\xd2R\
+\x891\xc6\x1d\x87\xd3\x88\x807\xed\x1b&\x17b\xeb5\
+D\xeb\x891i\x07\xc0\xe1Z\x84\xdb\xd2I\x83?T\
+\xa0\xac\xfb\xc9U\x19KG\xeb\x1f\xbc\x95;\x83S\x93\
+V\x1bBy\xb9x\xb0qv\xf9\xe6\xd4J\xb4N\x81\
+^j\xa5[]\xb1\xc6B9LX\x09\x88\xe59t\
+\x8f9\xa4\xf1a9/\x1b@\xdbh\xdd\x14\xdcF\xb2\
+\xde\xedh\x8fnM\xbd\x96T\xbc\x8d\xb22\x99\x1b,\
+\xd7\xb2B\xd8\xd9\x81l\xbeT\xed\xf2K\x8c\x93\x85\x1c\
+\x87.\x8a\xa3\x0e\xe7A\xe5\xd9\x87\x86\xc9\x04\x83\xc3\x84\
++'\xebv\x0f\x9f\x1c\xdc\xe4c<\xcf.+\xb9\x0e\
+&\x98\xe0\x0a\x852vy\xd5\x95\x1c\x92\x17G\x1c\xae\
+\x9d\x0b\xe3G!\xe2l\x17\x82i\xaf\xaa\xd4s\x5c#\
+\x90\xa9R\xf2\x17\xad\x84\x83\x9cO\xedo~\x05\xb7^\
+\xc6\x9fWN\x1aD\x15\x166\xe4@?d\x85\xd0\xc1\
+\x0e\x0eB\xab\xa1\xfb)\x98|,\xee\x83V\x88Cy\
+\xc4H\xa89\x0f\x1b.\xd89\x9c\x9c\x97\xd29Ng\
+V\xe3\xf4\xc3\x89\xc0\x1f\xe8\x8d\xdcM\x07\xcd\x10\xb8N\
+\xb6\x8a\xfd\x83\x0b6n\x9by\xa5\xb8\x99\x8e\xde\xa8>\
+\xb7\x0b\x0b\x0f\xb16\xb6\x0a\xe0s\xb0\xbe\x1e\xdcM\xf2\
+H\x88\x9e$\xb7\x13!\x06\xaa\xec\xd6p\xf2a\xc2\xe5\
+w\xc8+\xbd\xd9\x0f\xf8|\x04\x0bW\xb9\xd30.\x17\
+\xca\x08\xae\x999\xd2\x8c\x1c\xad\xba_]\xc5\xa1\x97\xd4\
+\xa8\x10\xa2\xcd<\x83K\x164\xd3\x0a{\xcc\x8e\xf7\xae\
+5v\x14?\xd3\xa8\xc3*\x98\x15\x0a[\xa5I\x7f\xa3\
+\x09\x9e+\xaf\xf6\x90o8\xe1h\xecKn\xe98+\
+\xa9\x1e\x16\xb54Z^3\x07K\xdaao\x14x\x99\
+\x9e7~\x0d\x0a-\xe2\x83yIzo\x08m\xabu\
+\x93h[\xf5\xb17~`\x95\xd0\x0d\xea\x1a\x0a\xdc8\
+\xb8\xb8\xab\x10\x1e&\xb3\xfd~\xd0\x81;T\xf8B?\
+\xd0%\xb38l\x080\xe1#\x1e\x087\xf8\xeaLk\
+\x18-\xd2\xe9]\xc5\x99\xc5L\xc3i\xc8\x15\xc4\x8c|\
+8^\x14\x0fB\x9d\xbf\xe0\xf2&s\x84\x12/\xe94\
+a\xc0\xc7\xe1\xab=n\xd0P\x87\xde\x0c|\x05s\x89\
+e\x00g\xfc%\xeb;\xaf\x1a\x9e\xa8\x95\xbeyi\xc8\
+T\x19pU\xc6W`\x99=\xa72\x05yE{>\
+\xe2\x8c\x0ejoEk\x12;\xb7'\xc7\x84%]\x09\
+3q,r\x13\xd6\xc0\x0e9\xd5l\xc6`\xdf`\xd8\
+\xa0\x19c\xd7E\x19\xae\xe01<\xc8V=?o\xd4\
+\xa6:\x1d\x82y\x9cY\x99\xf1\xb2L\x0fY\xff\xa6\xb4\
+\xa9N\xb9R+\x1d3c\x89I\xf7:9\xfaG\x92\
+\x1d\x0dWR8\xfcEO\xf2\xc6\x85\x8c\x19\xe6\xf5\xa0\
+\x83\x12n\x5c\xcc7.\xb5\xec\xe1\x9b\xd6\xa6z?\x82\
+\xa5\xcb.\xc0:\x89\x90\x10XFK}\xee\x10\x18'\
+\xb0\x22\x11\x18\xe5=t\xe04C\xb6\xf5\xd5MOR\
+[\xaa\xe1N1\x0e\xb1#\xc5\x96\xe206D>(\
+\xc5\x01r\xadB\xa19\x94A\xc1UW\x9b\x97\x10v\
+\x10\xad?\xb0\xde\xb1\x99\xb8\x22*\x91\x83\xcd\x8cf\xc3\
+\xd1-\xb3\x19\xf4C\x08O\xa4\xe1Q<u\xa6\xfbb\
+\xed\xb7\xeb\xfc\xda\x0b\xdaP\xeb\xfe\xf8\xeb\x93\x1a{(\
+\xf4\xc5\xf1>\xcc\xc7\xb6Z\x8c\xe8\x09\x06\xce\xee\x0c\xda\
+x\xfc\xf3\xa6J\xcfh\xae\xcc\xc7\xe0w\xd5\x14B\x05\
+NW0&}\x7fq\x22(\x07V\x1ax\xc7S\x16\
+\x22\x08B\xf4\x14\xa0\x9e\x15_\xc7\x04\xfc\xfa\x08\xfeF\
+\xf2y\xfb\xa6\xefG\xa8P\x8f8\x01\xe5\xd5mT>\
+O\x86\xd4;l\xa6f\x86\xeaD\xa8)\x94g\x05\xd2\
+\xef\x0e\xae\xecR\xd8\x1d\xc1\x88\xe1>+\x0d\xb4jv\
+\x8d\x80\x93\x19\xd1T.F\xb2@\xd5g\xa0\xccq1\
+\x92\x86\x17I\x99o\xd5J\xfe\x81\xd1\x0f\x081\xc8\xfa\
+%\x22\xc3\x90\x13\x0b\x0ft\x8e4\xdf#1\xfa\xe7\x8e\
+\xf0v,\xd6zH\xe0W\x9dL4\x9eE:\x1aV\
+\xa2\xd2\xf1N\x05G2j\x1dV\x96+Bq*\x83\
+hV\xfa\x96\x81\x92\x91\xaa\xf0\x1f\xe3\x91^\x14.\xc4\
+\xf9X\xc9\xdb\xc9\x8327\xe0\x0b\xe5T\xbc\x112d\
+\xc7\xcf7d42\xa4\x0aj\x98\x92$%\xd7\xb9:\
+2!<\x98)\x8e`\xa5|j)d\x87C\xe1\x84\
+b\x87\xf6\xaeP\x0a\xdcH\xe9\x13\x81\xabk\xc8\xe7\xeb\
+\xf8u|^\xc7\xf3H\x89\xfb\x08-\xc0\xf9\x03\x0d\xe5\
+b\xec\xd5\x930P\xc3\xb2\xe2\xff2b\xd1\xd8\x0c\x9d\
+a[\xbc\xc8\xe3//\xd2\x89\xc40\xcd`\x08\x1c\x8d\
+\x8a\x0b\x04\xc3\xd2^\xf4\xf6\xa3h+\x5cP\xc7|\xff\
+8\xe9\x808\x05\xcar~3\xbaB\xa7`sE\xac\
+\xa8CG\x11]Ds\xd0\x8b1\x839\xe9\xa9\x8d\xd0\
+H&\xd1\xff0\xcc\x92A\x0cZZ\xcf\x0el\xef\xee\
+`$\x96\xee\xfe\xe5\x10B\xfd7\x86c\xc6\x8c%.\
+\xe5?+#\xf3@k\x92\x8d\x0c*\xe2\xe6\xc0\xc5\xc5\
+qp)\xc7\xd1~r]\x80Qt\x90p\xe9;\xdd\
+\x0d:PW\xfa\x99S\xfe\x18`\x9d\x15.Cp\x15\
+\x86\x9dmo\xf2^\xfe,4\x1d\x89H\xdc\xf2J\xf5\
+\x94\xb5X\xe6o\x8e\x94}\x0e\xe6\xe9\xdd\x9a\x1d\xf2z\
+\xcdP\xbe\x85\x83!\xa0\xc7\xdd\x81p\x1c\x91m\x0e\x09\
+\x86\xf5k\xd8\x1e+,\xedB\xb0\x80\xc3\xa7\xc3q\xb9\
+0\xe0\xa8\x86M\x9a!\xe1\xf8\x9c\x93\xd9`\xe3\xd4>\
+\xda\x9bRmi\x18u\xfa\xb4rw\x82\x13\xe9\xe7\xcc\
+\x19\xe7;\x22e s\x5c\x98~\xedxbF0n\
+\xca\xc1~\xb2>\x0d\xc1\x8d\x9a\x91\xcb:\xd7\xd2>O\
+\xf4\x85\xe3\x98\xc0\x0d[\x81\x9f\xcd\x0a\x9cE\x12\xad\xad\
+J\x93\xf4\x96\xbf4\xea\xbc1\xe7\xe7\xabs\x92s\x88\
+\xdf\xa83\x5c\x90=E\xa2\x00\xf1f\xe6\x88D\xcbu\
+t\xfd\xfe\xe2$\xe5\x0f\xe8>\xc1\xd79\x9f\xa0\x84\xe8\
+@\x9c5\x05\x1a#\x11\xf8\x8a\x17\x03\xd7\x8c\xca@\x97\
+]\x96P\x84\xb8)D9Q:\xdd3\xd8}\xce\xe4\
+2\xb1o\x92\xebd]\x0b\xdf\x1bP\x91\xadL\x18A\
+\xbf\xff|qp\xac\x22;\x5c\xe7\xe85\x81\xcb$\x07\
+4\xca\x88\xd0Fxl@'\xb8O\x06C\x98\xe3\xf8\
+\xa61T\x0a\xe8\xe6\x99\xba|W'\xe9w\xf3\x86b\
+Q\x14\x1c\x0b\xc3\xc9E\x10\x95\x95\x8372\xadD\xf1\
+\xb5\x9f?W\x9f\x01\xf8\x8b\xf2\xee\xab\x84K\x8cuV\
+\xc0\xf2\x1ci/\xd5\xfb\x8bC\xad\xf8\xea\xf1\x86\xed\xab\
+\x0dl\xfdWKG\xeb\xab%\x09\xc2\xd8\x89p\xb3r\
+\x22\xd3\x1e7<\xc6\xe6\xce\xbfG0/\xfe\xa5\x1dZ\
+\xbdZ\xad\xc9P&r9J\xfcR\xcc\xa9\xc7\x0b\xc7\
+)\x1e~\xc1\xf6\xd5\x086\xff\xab\xa9\x18|eD\x12\
+^\x82\x07\xf6\x9b1\xc98\x19\xb2$@\xb2\x10s\x94\
+\xef\xa6\xdd_#\xad\xe2\x92\xee2TW\x04\xc0\x0a.\
+b\xfe;\x22\x83\x11\xa1\xa6\xf9|~\xd2\x0bem\x17\
+\x9a*-\x07\xc6e,\xde??+\x87K;K\x9f\
+\x98+mnz\xab\x10\xa4\xb7\xcfvM\xb1\xdb\x84V\
+\x81#%\x8e\xbc7'Y\x13\xc4\x1bJ\x8f\x8fo\xf3\
+\xebj\xf6\xda\xc6\xd1\xee\xc4\xd8\xed\xf3\x8a\xf3[\x192\
+ga;\x7f/\xb4\xb1'\xfct K\x9c\x8c\x5c\xdf\
+~\xee\x853!3\x9a\xa3\xb8\xbd,\xac\xbc\xde+\x03\
+\xe7\xe6\x85K\x8a\xe3\xde1JL\x8a\x095ca\x18\
+\xc8\x02\x0a\xc4\x9e\x83\xc2e\xa5\xc5\xb6C\xe4\x92\x19c\
+\x9b\x22\xbb\x86S\x5cup\x9cs\xbf\xbd\x19H\x7f\xc3\
+\x9btV\xfbo[\x9bCo\x8e\x19\x91\xde\x84\xd0\x18\
+\xec\xee\xaa\xc3\x1aI\x1c?\xf7\x9b4d\xc5\x86g\xb9\
+s\x8e\x12\x09C\x06\xb9x\xd2A\x1d\x940\x87\xe4\xd7\
+1\x8fx1\xb6\xe0P\xd9\x02\xaa\x99W\xcc!\xb9~\
+N\x19\xf9f$\xa7'\x03\xb8\xafQ\xf9\xa2Di\xa1\
+\xea\x98\x13\x0ch\x18L\xc4\xf3\xaf\x9d\xaa\xec~\xdc+\
+c\x83\xc6\x86\x85\xd0\xb4O\xbb\xa4\xbe\xf3\x13\xee\x95\x01\
+{\x13\x96\x15\xb7-\xb4\xde\xb1U\xce}.\xaa'\x83\
+W`\x0f\xb7H\xa5\xc3\x7f\xd6\xd4\x9b\x91\x9c\xe3\xb8U\
+\x09>\xa5\xd4\x22~M\xc9\x10\x0b\x83@]\x98\xae\xaa\
+\xa7\x95 &\xea\x0ez\x8b?\x1bgc,\x1b\x9e\x8b\
+Nsh9\x06\xe5\xcd\x88\xb7\xc5^\xba\x18\xd9\xbfy\
+\x0a\xee\xa9\x8a!i\xc96\x7fv\xa4\x9a\x9c\x13\xa2;\
+\xeb\xc2`t\x02\xaeOM\xd2\x93\x86\x9f\xa4\xcdn\xfd\
+x\xdd\xebO=\xce\x09\xfd\x5c\xa1Y\x92\xf9\xcd\xc1v\
+\xa2\xd6uxo\x1b\xc5$\xfe>qM\xb6\xcfO\x90\
+\x96\xc9D&\xf7\xf8TF\x1c\x22\xff4\x9e\xba\x86\xe1\
+\x87\xe7\x03\x0a\xc4\xda\xff\x16\x80\x16\x08\x94\x91\x94C\xa7\
+B\xe1U\xb2\xcc\xecf;\xd8\xedo\x0e\x03p(u\
+\x0e\xa6~D\x0a%\xf4\x14'\xc4\xe4H\xf6bN\xce\
+\xd4\xd9w\x89@\x0c4V\xdc%\xf1\xbd)D\x14\xcd\
+\xe8:k/\xa5\xe7\x9c\x16\x18\xa7\x8c\x09g\x08\xa1\x17\
+\x1d\xb9\x95\x88z\xa3L\x15\xfc\xc3|\xf8ES\xe1{\
+\x9cK\x89\x97\xd4\x1e2\xc3\xa8J\x9dKw\x9b*\x0e\
+\x8c\xbd8\x1d\xdf\xe4\xfd\xfd\xf7n\x8d8\xc4\xba\x85\xe7\
+\xa9\x8c\x9a\xcf\xbd\x95Q\x0d\x9fl\xcc\xa9\x02.+D\
+*\xd4\xba\x8e\xa8\x04\x86\xeb\xa0\xce\xe0z\xac\xb9\x1ap\
+wZ\xf0\x7f\xa4\x84\xe8\xfacy\xc0\x14\xc6\xfa\xf8\xd7\
+G\xf1\xeeU\x8a<t\x22\xc4\x8a\x9c\xf2I\xe2t\xc6\
+.\xd3\xdc(\x08\x0a\x97\xbaN\xbfGr\xba\xf18R\
+x\x8e\xbd\xc99\xb3\xdb\x0fc8\xe7\xfd.w\xdd\xc0\
+\xde\xe4\xfd\xf5\xf7,\xdc\x09\xf4\x83\xd7\xaf\x9d\x19\x96\x98\
+\xe6O\xde\x92S\x12\xdd\xe9u\x10VZ\xaa\xd1:P\
+\x18\xd4\x19\xc5\x96\x187\xf0C?\xa5G\xb6\xc8\xab\x9a\
+\x18n~pd\x93\xae\xb6E6v\x888&\xfe\xa2\
+\xa50\xc3~}\xd6\x9c\xed\xd3\xb2\xeb\xa3)R\xde\xda\
+&`\x03\x82\x10r\x186\x83\x08-E\xaf8C\x92\
+&\x94lP0\xea\xa99\x10l\x9e\x9c\xe4\x04\xed\xdc\
+,\x1d=T%2\xd7\xa0\xc2\xac=\xe3P\xbc\x93\x04\
+\xc7\xf756\x5cd\xd9\xa9\xca\xdaC\x7f\xbe8)P\
+\x19w\x8ah\x0bw^:u\x8a\x8b\xb3MV\x8a\xfc\
+oX7\xdb\xd4\xff\xf7\x10\x12/\xfa\xf3\xb0/5\xd5\
+\xe8,\xcc\xb3}fK\x9b\xe1=p\xe9:^u'\
+\x85\xe2\xaa4\x1ejc\x83\xe4\x8c\x1c\x87\xac\x5c\x97o\
+\x22\x87\x8e\x8b\xb8\xa16\xc1\xe9\x5cE_>\x95\x10\xee\
+7\xbf\xa8;\xe8m\xfeY\xa7}\x9c\x15]\x9bj\xb6\
+\xe3E\xc3\x06\x0a\x8f\xe0u*\xfd\xa8W[If\x17\
+\xbb\xed\x22\xbb%e\xb7\x11b\xf7R\xb2\xd4\xd5\x14H\
+\xcer\x12\x98x\x95d\xc6\xa3\xb6\x9bw\xc9\xe5s\xb1\
+\x22\x5c\xed\x97\xd5\xeb\xd2\xfff\x86_\xb4u\xf8\xaf\x85\
+\x01+\xf2#\xe1\xb4\xce5\xf4\x1f\x81\x82\xe0\xc2<\x9c\
+\x22\xa1u\xb6p\xa6MQ`\x05\xf83s\xa3\xae\xc0\
+\x81\xd3\xc1\xb5Mx\x90@IC2\x04a\xcb\xbcG\
+?\xe0\x82^j\xf9r~\xba\xc0\x10\x8ar\xb4u\xcd\
+*Y\xd1U\x8e_s\xbe<bc\x08\xa1\xf6\xa4C\
+\x87c\x1e\x09\xc5\xb7\xe4\xe0\x86\x17\x08\xda#X\xc1\xc1\
+\xc46\xba\xca:\xdd\xd11\xb1\xf9\x0a(\x80\x17CQ\
+x47\x19\x09\x8c!\xe7\xe8S\x0f|\x9aP{\x02\
+\x97%@\xb4\x18E\xc83\xd5\xf0`\x0c\xc9\xda\xcb\xe7\
+\xd0\xa6[\xa1X\xd1\xa2\xb1\xb6\x9cFJ=\x1d:9\
+\xd1\x0f\x9a\xe0\xbf\x98XB\xe4\x80&\xb9\xc5<\x11\xbc\
+b\x99\xbcy\xf6\xbc\xa68@9m\xdex\xc0r\xd6\
+\x7f\x0c\xcb9\xf1\xee\x920\x87\xfe\xfc\xac\x1c\x5cW\x02\
+\xa2\x0a\x06@\xe2\x88)\x1d\xfe\x9e\x8c\xcd\x9c\xd0\x13\xe0\
+[eJ\x05\xc2\x07\x14\xbcf\x80\xbe7#,l\x8c\
+]Cx\xa5r\x967\xba\x0b\xf4\x05g1\x9b\x81\x0f\
+\x10\xeb,{\x84\xb3\x00B\x0c&y/\x8c\x8d-\x84\
+r\x11@Dk\xf7B\xac\xbd\x07\xe1\x93\xf6\x9dc\x17\
+~Nr\xf8\xf7\xe0~d&/\xe3Jw\xa1?3\
+*\xb3*.\xba)\xd2\x17\x22nj\x93\xa1m*\xe4\
+-\x09\x0b\x03\x8e#F\xa4\x10\xa3\xaf)\x99\xe8\x0cH\
+]\xf9\x19>\xeb$\x84X,\x13^\xa6\xb8n\xbc&\
+\xa6\xdd|aP\xde\xf2\xd8\xcfr\x98\x97\xce\x0dC\x84\
+D\x89\x17q\xb6\xc9\x9a\x9e\xa5\xea\x5cb\xe4F\x01|\
+\x03Y\x18=\x92\x9a\x9e\x1c\xfa\xb1.\x19\xca\x18f\x10\
+\xfd \xcd]h\x18b1\x08e\x97t.\xd6\xb3\xaf\
+#K\x1f\xdb:\xd8/1\xbb\xcf\xa0\x10\x09\xdc\xb1\xe4\
+\xd3\xaf\xf6_X\xf2>]\xb0{\xb0\xe6\xfe\xfc\xac\x9c\
+d\x1c*\xa6\xda0\xa8\xc7\x8e\xa36\xcf\xaf30d\
+\xcd\xc2<\xc0s\xd2\x0dMi\x9c\x92\xcf\x09\xf9?\xfe\
+\xcb;\xb4\xa4\xe7\x0a\x979\xe7\xc1\xb0\xc1\xe6\xb3E\x0f\
+\xa3`\xf5\x80\x1e\x11g\x9b,\xac\x0cA\x9b\x08I)\
+\xecu\xd8SF7\xb1\x84@8\x10\xcf\x00\x84\xdb\x15\
+m\x22f\xbd-m\x08\x9b\xce\xab\x9d\xff\xde\x99\xf4\x0f\
+\xfb\x8a\xb0\xffd\xc4\xaf??o\x1a\xad@\x96*B\
+r\x91\xdaC\xb4\x9f\xech\xda\xe6\x15\x0c\xc6f\x0e\x96\
+\x15\x91\xa1\xb2p\xbbY\xc5\xa1\x88\xbe\x18\xe3\xc5\x8ev\
+\x05i \xe1\xe8\xf3D\xb3\xd5\xea\xd5\x02\xf5\xf3\xdd\xc6\
+\x7f\xa9\x9b\x17}\xcb\x9fn>i\x9eX\xc0\xfa\x89n\
+2J\xef\xd9M3>\xdd\xc4\xfdR\xb3\xc5\xe2\x15\x80\
+ <_\xdd\x84\xd2\xdd\x1f\xbd\x8c\x07\xd8\xcb\x9f\xa5A\
+!b\x9eM\xfcWz\x89\x80\x97\x22\x88\xc2\xd6(Y\
+^\x0c\xceN\x12, #\xe5\xa0o\xd6\x83\xfd\xb4\xbd\
+\x97\x8c-8t\x09\x1c\x9eNv\xe3b@\x06\xba%\
+$n\xfc\x82\x80K\xb3\xa3\xf1D\xb3A\xe0\xdd\x04\x1d\
+\xfeK3\xff\x95\xae\x1e\xaa`\xc0\xd1b\x81\x81\x95\x83\
+\x96i[*\xa3\x1fW\x0a}u\xe7\x09y\x07g\x9b\
+,(\xd5\x04q\x82\x8f\xb6H\xc9N\xdc\x84\xc5\x9a\x00\
+\xee\xb6Z\x19\xc2\x1a\xf8<\x81\x08A\x9c\xe4K+\xd8\
+\xdf\xaf\xb6\xfeK\x1d>&0s\x92\xffd\xe1\xf8\x82\
+\x808\x00\x9d\x8f\x02j\x8a3\xe7\x0e\xce\xf69\x86\x9a\
+\xe1\x81\xb3\xd0\x84\xe2\xd6\xf0\xc1\xef\xa3\x00\xbd\xce\xd8'\
+\xf3\xef\xa70>\xd7&\xa8\xb7kC%\xda\xff\xbd\x8b\
+\xda\x7fH\x80\xc4i\x08?\xa4l\xd5\x0b\x07\x12\x93\xb3\
+\xbd+{\x16)`\xf8[\xe8\xd7\x93\xda\xa69\x15\x0a\
+\x146\x05,T\xc4\xed\xccs\x9c\x0ca\x9d\x8c\x19l\
+\xf3j\xbc\xcf\xf4\xf6\xf8\x00d\xcd?\x9c<\xe16'\
+A\x0a\xff\xf9Y\x18aq-\xc6H\x0a\xbbQI\x01\
+\xafJm\x9bh\xa3I\x90`\xb6\x9f\x05J\xa2/^\
+\xd4\xc6\xad\xf7Y\xf0C\xa5\xe7\xe4v\x83\xed\xee\x81\xe4\
+m\xe4\xbd\x8f\xaa\xf8\xafK\xccSN\xaa\xb8>\xfc\xf9\
+Y9\xa1\xa7\xf8v\x90\x9aD\xe8\xe7z\x22\x10\x98\x8d\
+\xb1\xeaD\xe4\xb2\xba\xf5\x5c\xab\x12\x99\xd9\xc8J+\xe7\
+C\xb7P\xec\xfbTD\x03\xdc\xf9\xcd\x99w\x1aI\xd9\
+\xa9=\x05\x1c\xe6\xad\xf0\x03!\xaa\x1a\x9e\xfals\xf5\
+\xb0]KG\xb9\x05\xbe\x86\xe3\xff\x81-\xd0\xab\xbf;\
+\xb7\xc0\xc2I\xc2\x7f\xc4\x0e\xe0\x00~!k\xfe\x97\x16\
+\xe9\xb5+\xc7EW\xd8\x07E\xb0\x04\xdd5\xd9\xe5\x8b\
+\xd8~\xc8\xce\xfc\xac\xfe\x87Qj\xfd\x07m\xcc\xc2\x1b\
+\xeb\xd4\xc7\xff,t\xdcnO\xc7\xf8\xd8*s^a\
+\xa8\x7f1\xb68\xe9\xfc\xf7\x80\xf79\xc3\xdb\xb50\x22\
+~'HioO\xc7\xd5\x83\xc1\xeb\x0e\x8eM\xe0g\
+\xefyi\xa8\xcc\x9c\xef\xae\xfc\xf5\xaf*\x99\xe7\xcc\xe9\
+\xf3y\xbep\xd0K\xc4^L\xb2\x18\xba\xa9\x04\xe6\xdc\
+\xe1X\x80`\x85\x9f\x07\xb1\xa1J\xd3RdS\x97\x8e\
+\xf1\x22\xe3\x98\x8ej\x06L\x1f`\x12k\x9fP\xedb\
+MN2./\xf2%v\xfb\xe0\xd8\xc0\x1a\xdb\xab\xb8\
+$\x02\x04k\xfe\xdc\x04g\x17\x96\x1eJ\xedY\xc7\xe1\
+_\x10\x8e\xa7C\xdb\x84(\xf1\xe7\xe7M\xdb\xd0Kd\
+\xaa\xb1|\xa3n\xc3l\xf6\x9bA3X\x18k\xf8\xbc\
+\x8d5-\x0eV\xbb_\xe3\xe6\xe1\x8a\x09\x93\xd4\xfd\xdc\
+e!6\xbd\x9f\xb6\x9cS\x98o=\xb9\x1c\x85vS\
+g\x8d\x00\x06\xcd\x13/\xae\x1b\xbfK@\x83\xaf\x9el\
+K\xc7X\x1ek\xe9\xfa\xbf0zh\x1fc\xa1u\xef\
+\xfb\xf3\xb30p\x0a0\x91[\xa1\xb5\xc8\xc7LJ\xbe\
+nLH\x821X\x01\xca\xe5t\xcc\xcc\xa1xh<\
+\xb7\x90\xf7\xd7\xdf\x91\x9bT9\x1c\xe3\x9bc\xf42\xa2\
+\x86\x1br\x1c8x\x872\xb4\x9a\x8cG\xc0\x00b\xbd\
+*\xe4C\xaf\x0d\xc5x|u\x86Go\xf8\xba<\x15\
+\x1f\x17\xc5\xc2\xf0\xe4\x85\xcd\xdeS\xfb0\xe1\xef6\xd4\
+\x05\x8b\x81(\xb4\xbf\xee\x04\x91\xa0\xe9\xf7\xd2\x1blC\
+\xde\xe3NO\x1b\xf3.g\xff\x11\xce\xd2\x88\xdf\xa9\x97\
+\xef\xeb\xc0\xcdA\x0e\x112y\x19\xf9\x14\xc0\xaa\xe1H\
+\x97\xe9\xbd\xf6\x19\x8a\x84\xf9\xdf\x84DR\x04\x87P\xf4\
+9F\x198\xa4\xe1\xd8\xc3\xae\xe1\xf3k\xbar\x8a-\
+\x08\xc7\x11v\x8d\x17\xe3\xe7\xfe\xe2\xb8\xae\xc5\xf4\xed\x19\
+\x8a\x13\xb4\xbdS\xa7\x84\xb99i\xdf\xa9u\xed\x9a\xc0\
+\xe7\x80\xc7\x94\xbd&\xe5\xef\x8f\xd4\x7ft\x98\xda\x8b\x97\
+\x0d\xbb\xa8\xe0\xa2'\x07\xc3\xc2M}\xb8\xf0\x02\xf2\x98\
+x4]Fu\x04G\x18\x08\x06\xedH\xb9\x1b\xc1\xa9\
+\xbe\xfe}\xbf\xff\x02\xec\xa7K\x96\x0aZ5\x11\x88\xa5\
+\xd4\xb5K\xc1E\xb8\xa6s\x87W\x9d\x9a\xd9\xc1\xbe\xc6\
+\x1c_[\x1a\xd1H\xef\xfe\xfc+\xdbZ\x15\xec\x10\x9b\
+\xab\x12e\x0b\x03K\xb5;\xbb\x9b\x0d!\xc6\x80\xfe\x5c\
+t\xd0\x81\xb1MNry\xb4L+\x1b\x7f\xcfb[\
+\xb4$\xeb\x1c`z>\x10f\x10\xab\x85\x98\xd6\xa6|\
+\x1fl\xc9\xb5A\x9c\xfa\xb5\x8d\xff\xca\xcd(\x22\xcd!\
+\xfd\x0eN\xfe\xc2\x81\x09\x94\xa9\xa4\xcd\x05`\x98\xabx\
+\xf1\xef\xfb)\x8c\xaa]\xf0\xb6\xc1\x22\xa3i4z\x12\
+\xaa\x9f:\xa32\x81\x1a\x1d\xe2\x8e A\xc3^#V\
+J\xc0\xed\xa1\xb6\xed\xab\x15\x8a\x93[\xdb\xfa\xaft\x18\
+m\xe3\xc0_*\x1f\xb80\xb0\xfd\x94\x22|\xaa\x8a\x8c\
+C\xa4\x01X\xa1\xaa3-\xd0\x05\xc8\x01\x8d\xc8|L\
+\x02#\x12\x0fA\xe0\xb1\xab<d\x98\xec\xa7'p\xdb\
+\x05M\x985\xa0\x98*\xd2\xe8\xd5\x00\x05\x1c,\x8d\xfc\
+\x97:\xda\x04\xbdq(\x09\xe8\xcf\xcf\xcaa~/Z\
+B\xc3\xa9h\xa6a!\x87\xa0F\x06\xb0\x0a\x81\x98\x85\
+\x93\x80y\x95aj\xccy\x8a\xaf&\x08\xc0\xaeTf\
+$\xcf\xe3\x9d\xd0\x08w\xf5\x96%\xf2\xd6F\xa8\xbbk\
+Sm\xd0\x9e\x99s\xdfJ1\xbc\x1c81\x18d\x87\
+!BdL\xe93\x1e\xef7\xa3\xa5\x1bOj\xd0\xe7\
+i\xf7qc\xec\xf4\x93bh\xf5\xeb\xcf\xdd\xbeL\x18\
+X+]\xda\xb6L+>ea@\x05:$%:\
+\xec?\xf0*\xb1%\xcd\xb9g\x8c\xb0~\xb7\xf6/\x9a\
+\xacXv\x0f\xc2\x85Pz4lv\x19[\x90\xa8\x83\
+`\xe6\x22\xdd\x15\x99(P\x08i/;J\x08TU\
+\x91\xb0)\x81Y\xab\xa7\xdfy\x08\xc4\xae\x08g\xdc\xe4\
+\xbd2x\x178\xe7\xf3\x969\xb4]\xd5\xb8>,\x1c\
+uZ!\xed\x04\xa4\x83\xe0\xb1\xc8\xbdl\x19\x22g\x9b\
+,\xd6\xdb\xf5\xc7X}\xf6\xdd\xf1\xb0\xdf\xbd\x07\xe3\xaf\
+\x7f\x17\xc7\x16>T\x16 \xe1\x9ad\x9a\xd7\xee\xdc\x8a\
+Sf\xf9\xec\xb3\xb9\x1f\x84o\xcb^]\xb8r\x15\xc5\
+\xad\x9c\xb0\x89\xaaf\x08\x7f\x01\xc8\x90\xa4\x1c;F\xae\
+,\xf4\xad\x08\x05\xd8 \x13\xd3\xe5\x99\x1e\xa4\xda\x0c\xc0\
+W\xc45\x22\x09\xda\x8f5'\xec]\xeb\xc42E\xb1\
+\x0d\xe6=\x02\x921\xab\xa6\x8b \xd7\x5c\x9c\xc8\x7f\xd7\
+\x0d\xfb\x02\xb4&\xabsA\x11\x82\xef\x0e\x98\xeb\x99\xfe\
+\x07\xcdE\xe3\xb5>I\xca@1@\x1a+l\xe5\x99\
+\xb5\x9b\xec\x16d`\x85\x10\xc7\xa9p\x02\x92\xca\xd0\x01\
+\x17%\x15\x8a8a\xde\xe2\x17\x10<e%e;a\
+\x81\x00\x08e\xe2\xb8\x01\xb0\x87\xa7F\x11\xe6\xdf2\x1d\
+\x9c\xce\xaf)z\xc3D\x1e\x0d\xd2\x1e9p\xe4`R\
+G\xd7 \x10\x08\xde\x92he\xc6\x02c\xdec'T\
+[r\x862\xba\x06\xb4\x00:\xed\x91p\x0e4\x94\xb3\
+\xb8g\xca\x88\xc5\xd6\xe7\x95\xce?\x01:N-_\xb4\
+\x02\xa9\x94\x98/\xc0\xc5\xd4T\xae\x8f\xf7\x8b\xe4\xcc6\
+\x82\x09A\xaf\x11\x22\x04$w\xd6K\x14\xbb\xe2\x1a\xc2\
+\x84b\x14\xb6<\xe1\x84\x80\xbfD\x00,,\xc0\xabt\
+\x97\xa8\xb9\x94E\x0a{/\x96\x17\x0b\x22\xbd\xc8\xdb\xc0\
+QE\xb8m\xcc\x86j*\xd6@\xf4\xe4S\x8bm\xe7\
+b\x0b\xbc6\x02\xff\x14\xae-\xc6\x1d\x5c@\x0cM\xac\
+\x02\x83\xf40\xac\xb5\x86\xecN\xff]\xbe0&\x8bb\
+\xf9\x15\x86\xb4WUM\x06\xe6\xf7\xd5\xbffD\xe6\xc9\
+u\x96\x84\xb7v\x22\xa7\x13\xc6\xfd\xf1\x7f\x98\xe0\x0a\xbc\
+\x80C\xf3\x8ah#\xd5\x1f\xb94\xad\x85\xe0:0U\
+\xc1z\x01\xfdG\xaez\x22{\xf2.X\x9c^\x88\xd9\
+\x80<:\x99\xcc\xbd\xcd\x87\x09\x22\xd9VR\xb3I\xa5\
+\x8a\xa9\xb4\x95&WBI\x01\x03!+\xcd\x92\x00\x15\
+\x98\xcd\xf3\x94\xd7\xbcPNQ^\x093\x8f\xd0\x0d\xc0\
+\xdc\xbd\x8a\x0b?y2y\xba\x11\xfc\xa2\xa9\x06`B\
+\xdc\x07\xc1\x8c\xedC\xce\xcc\x7f\x7f\xd3\xb7\x12\xdeO\x99\
+D\xdb\xa1\x08\x1f\x08S\xfa\x9eX\xf0:)\x8d\x12\x18\
+{\xae\x99urm\x17\xde\xef\x13\xa7\x13\xa3\x08\x89\xc0\
+\xa4\xac\xc4\xc2\xd8\xf1g\xcd&\xb4K\xcco-I\x12\
+\xc1\xbe\xa6J\xa4\xdb\xd74h.\x97\x99\x11>\x91w\
+\xe6\x89\x8d\x09}\xa3M\xe8<\xfc\x80>\x80\xc4\xcb\x91\
+\xa6\x12\xb0XD\xc8\xa8r\xff\x12\x86\x01\x93y\x09\x0d\
+\x94@\x9b\x1dP#\xcd\x13ZY\xed\x98\x88&\xf9\xf3\
+\x93\xc3\xa0\x91\x0b\xad\x88\x19\xa2\xd3 1w\xd7\x9c\x12\
+\xb5\x96\xf0\x03\xda\xa0\xd5\x11\x09\xc2$%\xa2I\xb6R\
+R\x0c\x0d\x8a\xa4\xb1\xde\xd8,\x22\xef2\xb4\xa28\xfd\
+R\x98\xe2D\x02\xc5jVR\x0f}Z\xbbp\xe4V\
+Z\x01\x95g\xe1\x942\x9f9Q\xfd\x97\x03\xd2i@\
+2\xa7^\x91\x02\x8d\xc8t\xf8z\x00l\xdd\x1dP{\
+\xa8\xf2\x93`\x9f\x93\x8a\xce\xfb\xef\x9a\xd3\xbe\xc3\xe3@\
+\xe8mIiM\x80\x80\x1e\x97\x09\x89I}\xcd\x91\x00\
+=<\x97]\xdb\x12\xc6\x92\x00\xbd\xc6;\x91\xd0\x82\x1f\
+\xecTB\x0ei/\xf0\xfc\x9c\x5c9\x97\x10\x7fQ\xb2\
+\x84\x81n\x97\x92\xbd\x11\xbb\x94\x0eO\xea\xd5\x0eMj\
+o\xd7\xe7'\x84\x179\xbfh\x851K>\x18%\x9b\
+EV\x0eNj\x8fY\xe5\xe1\x0eH\x05\xa5L#\xd1\
+\xd9z8kbd\xe223\xe6\x87\xdb\x96\xe8\x89\xb8\
+\x0dk\x97\x02E\xa3hF\xcfC3\x9a\x88\xa3\xa2$\
+\xed\x95v\x88,\x84+\x8bs()\x12K\x11sJ\
+\x88z\x96r\xf5\x9c&}E\xa0\x97\x98\xb2=\xa9|\
+/\x1d\x9b\x82\xbbF'\x01\x10\x12\x7f\xbe\x8d\x02\x09\x0f\
+aiB\xdd&\x5c\xa66ai\xc7:\x1b\xe1\x11z\
+M\xd0#g7YOeboSh\x87\x83\x80\x8c\
+q\x8f\xdcPUcRh \x0b\xc1{\xed\xd3b\x82\
+\x91\xebU\xe3\xc4\x1f$\x95\x13S\x82\xc6\x9b\xfad\xe5\
+\x15\xe7x0\xf1/\xc9\x15\xaf\xb4\xbe\xfdSB\xad*\
+guW\x00<\x06\x85\xe6\x0f#\xa9!%\xb7\x16\x9d\
+e\xaa\xe36\x0d&\xf6v\x80s\xf6\xf2)5\x80!\
+\xe8\xb2\xcc\x1a\x80\x94B\xdfU@\x09\xf6\xf5\x88l\xe8\
+^YF\xa3G\xd4k+\x81\xf8Xm\x82L\xfb\xe7\
+\x17X\xc6oB1\xc8*,\xa5H\xeb\x88B\xce-\
+2r\x96)\x08\xed\xe7=-_\x09]T0;!\
+\xb8\x15C\xb70\x92\xcb\x9a\xd0\xdc\xdc\x05\xbfK-\xee\
+\x08\xd5\x9f\x8cmr\x10w\x88v_JC\x8bX\x98\
+\xec\x98\xf9\xfb\x8b\x13y\x0c4`0\xf2\xa8\xd5\xe8\x96\
+\xfdC\xeahe^\xf6\xd2\xbe\x85d\xe4\xcb\xda\xa5G\
+\x94|vz\x0b\x10^+/x+\x07A\xb1\x9c\xb6\
+\xec\xfe\xa7 \x1d\xbaC\xc669\x11\x12\x8f\x85\xcd\x1f\
+\xa8,Ov\xa6\xca\xbd2>\x81k\xbc\x1en\xebL\
+\xbe\xba\xec\xb8n\xbb\xc4\x08\xbf\xd7f\xdc>n\xcb\xb9\
+\x05\x9c\x8a4c\x15\xb5\xf8=g\xc1\x8c\x19\xc4G\xe4\
+\xb72s&r\x8b\x04\xed\x17\xe3\x13\xae\x99\xc3\x993\
+\xe9YT#8\x0a\xd3fR\xfcu\xcde\xa0\x0d\xab\
+P\xc8\xe4j\x97v\x11\xcc\x13\xc0\x15\x1b\xfa\xe5(\xff\
+\xf7Dp*\xbf\xa6\x8bQL^\xc0\x0e\x9b\xe6\xf9\xe3\
+\xda\x10\xac\x82\xc4@\xf4\xf3\xf2\xc1.\x0e2\x19\x88J\
+\x84H1&\xac\x98>#\xfd\xd1\x9c\x8d>\x02\x00n\
+\xccW@ ^\x9fo\x88t.\xc9\x87\xc1l\x90C\
+Y\xf3\x86\xb49q\xa5\x87\x03\xe2\x94G:\x9e\xc0\x1e\
+\xae\xf5\xf3\x82h\xe3\xd2\x0bm\xe1\xb5g\x18\x81\x12\x01\
+\xe3\xcd\xc9\x1f\xddhC\xc8\xd8\x1f\x9a\xc6\x1f'\x5c\x17\
+v\x06\x18\x17\x0c\xcd\x02\x08\x07\x80a\x0e\xa1\xc8\x0b?\
+\xff\xe0\xe9\xa7E\x94\xabU\xa2D%u\x17*\xc6\xbf\
+\xd7\x7fhW@q\x88\xfe\xa7\x89\xb7\x85\x0b\x0a\xeb\xd1\
+\x08W\x1c\x80oZeo\x0e\xde@\xdcH4\xb6\xd5\
+\xafnh\x00\xd6\xae=\xe5\x8ew\xe7\xe9\xcc\xf97M\
+\x9c\x9c\xc8t\xebZ\xccNtyPi\x96\x0d<\x03\
+\x8c\xe0\xf9\x12\xe5O\xbf?\xf3L\xbb\xe9\x82_@\xf0\
+5[\xd0\xd3\x83f\x1196\xde\x89\xa2\x93\xae\xb1\xd7\
+\xc5\xd1\xaaSd\xf5\xfc\xd6\xc5t\xa6\xf2$\x15\x10\xf0\
+\xfa\xbb\x81\xc3\xfd\xf3\xed\xc3\x98\x9f\x98\x1c7\x22\xde\xa0\
+&\xbe:\xa0\x11\x7fw\xe9\x1f\x18@vE/\xeb\x08\
+\xf8\xb3\xd0N\xdf\x85\xfb\x19\x9f\x95\x03\xae8\x8a\xfe~\
+\xd3\x1b]*\x0cu\x0e\x8f\x8cb9\xbcs\x1e\x14B\
+\xce\x9b\xa2W(`f5\xd5SB\xfa~T;\x97\
+\xe8\xf5\x97\x0aQ\x05.\xd7\xb3\xcd\xdd\xd6\x91\x85\xe1\x92\
+Z\xb8\xf1\xb2\xbc\x90\xab\xca3\xc0\x9a\xe7\xc4d4g\
+\xbb/\x8c\x9e\x1c\xb0\xa1\xc8\xf8S!\x22\xca<0v\
+\xc2\x87A\x7f5\xbe\xbe'[\x03\x15\xb3\xebt\xc27\
+\xad\x92ZY9\xea\xb3bW\x8e\x04\x807\x1d\x0fK\
+\x99\x81\xa2yE\x0e\x96\x81#\xa0\x99\x10B\xe4\xf7\xc2\
+\x81\xab\xb5\xf5X\xee\x8e\x1a\x88\x1c\xb7\x80w\x06\xf4\xb1\
+2qy@3\x1b\xaal\xcb\x12\x90\xb1\xfc\xbdH\x1e\
+\xdb\xf7#j{\xb86\x1e\xf4\xe5\xca\x18W'\x18\xee\
+%\xbb6\xc7\x82\xba\xfb\x9b\xb1}V\x02\xac\xcf\xb0^\
+\xee\xaco\xc2\xe8\x1bED?iP\xb2hU\x81\xa0\
+F\x15k*\xec\xaa\xaa\xbd\xab\xd2\x06c\xa0\xfa\xa7\x05\
+\xc0\xd7\x19:>\xf4\xc7\xac\x17\x5cZG\x1f\x12k\xa2\
+\xe8[\xd4i\xfa\xa9\xd8G,\x8a\xe2U$\xc6\xe1R\
++\x0b\xc3\xe9\x19D*\x1e\xe2\x13\x19c\xa3K[\xd9\
+\xab\xb7\x849\xc1\xc0\xa1\x9b]\xce\x0a\xc9iry\xf2\
+\xd2\xc1\xce/\x8cm\xcc-\x11\xbb.\x05 #\xd9\x13\
+\xa0\xa8\x88\xeb\xe1\x05ya\xcc\xc7\x0f\x22\xb3\xb2\xe6\xb6\
+\xc4r9\x88^N\x83\x87\xca'\xc3\x8e\xf9{e\xf4\
+:\xab/\xc3v\x17\x8b\xea\xb0\xd5\xe8:\x5c\x93\xf4\x94\
+\x98\xbb\xa2\xa0U'\x90\xd7{a\xd8\xe5\xf4Z:*\
+YA\x00.\xdc\x1f*\x0cIc\xdd\x09\x8f\x95GU\
+s \x12\xeb}\xc8\xbb\x84\xeb;\xce\x8d\xa6\x9c:^\
+\xb2\x808\x0boy\xa5\xc3\xa8\xcc\xf2Sbl\x93\x83\
+\x80\x8b]\x961(aP\xb0\xb2\xf202\xed9\x93\
+\xd18\xe0\xbf\x17\xc6\xc6\xf4\xb6K\xc1bDF\xd9\x09\
+x^\xf6H\x95Z\x18c\xe0\xb0\x1bh(\x1e\xd7M\
+\xd4\x91g\xd4W\x82\xd1d\xd3\x8c=8\x8c1`\x85\
+(jx\x980\xc0[_!X\x17\xc6|\x1a\xd8\xcb\
+\x07#\x14\xe8<B\xc1W-\xb7,dA\xe4\xf9\xe4\
+SG\xc6\x93\x01S\xd9%\xc9\x0e\x9c\xba\xcf\xa1\xd1\x84\
+rs\xe1\x03*C\x92YI\x91\xf7\x12\x03\x0c\xe1\x88\
+P\x88J\x0a3\xd2\xc2\xb9NU\x9a\x15z\xefg\xb6\
+\xf6\xc0\xc2_\x18\x10\x12:9/\x02\x86Qh\xe0\x96\
+\xcdt\xbf\xa6\xdd\xfdb\x91\x86{\xac\x10x\xf3XW\
+\x8c\x8e\xb2e\x11\x09\x94^Q`\xe7\x5c}\x82-\xd5\
+\xa2s\x08\xed\xe9\x15\xc7)\xa4\x15\xf6\x10\xd6\xc85M\
+\xa7T\x0e\xf9G\xfbv\x9e\xf4\xc6\xb2|UR\x90\xe5\
+\xc8T\x8d\xa7\x10f\xbdk\xbd\x89\xd1\x08\x05\xff{e\
+tE\x99c\xf5\xe1\xcc\xef\xae\xcb\xbb\x1bf\xeaM\x9f\
+\x0eb&\xd6\x0b\x85\x14\xa34\x89,\xe5\xd3\xe1\xc1\xe0\
+r!\xe6\xdbuI\xdat\xb9G\xb1\xb8hoX\x18\
+\xf3q\x9d\xab\x83\xec$\xf3/\x1d\xbc\xb8\xb6\xeab\xa0\
+R&o\xba\xbb\xea\xc1)\xf3{,\xb5j\x1f\xd7u\
+\x08\xd3\x0cI\xd88z]\xc43\x13\x5c\xbf\xfd\x5c\xbe\
+G\xa3V/mn\x0b\x03\xf7\xdd.\xad\x05v\xe0\x98\
+$\xc8\xe7\x93\xeb\xe6\xcdQAL\xe9-\x00\xf2\xe3*\
+b]\x12U\x17\xb9\xbf8LJ\x86\xcb'\xbb\xb0\xca\
+c\x91x\x91=\x16\xcd\x1b\x07\xb7\xc1\x5c\x86\xb5\xa6\x03\
+\x8eK\xecp\x86\x81\xe0\xae\xffPjIL5I-\
+\x15\xd3\x82I\x17\xeb\x00b\x8a\xc7^dG\x8a\xb1M\
+\x0eJ9^Y\xdb\x82\xa9\xc9\x0c\x0c\xc7f\xa1Oe\
+2\x9a\xa1\x92\x17\xc6\x063\x0al$Xw\xe3\xdcB\
+\x80\x1d\xec\x93{\xdc\x87\x17\x06\xcb,\xeb\xd8\x82'\xe9\
+\x94\x8c\xea\xe5\x94\xae\x14\x14\xeb\x8b\x1anxg\x98\x9f\
+\xce'\xef\xcd7=\x9f=\x84iy*>\x15\x0b,\
+\x13\xd3\x11b\x83\x95U.\x1e\xf6\xbfW\x06\x5cMY\
+\xe2\x87x\xeds\x89\xe1\x9e i\xe5\x1248\xbe\x1e\
+w\xe5]\x91fJ\x7f\xcbTC\xee\x95\x81$KV\
+\x16\xbc\x84\xfd\x18\x13\x84\x93\xbdX3~2\xd2\xee\xa4\
+\x92![\x88$\xd2\x88\x8bI\xd3\x17\xbcu\xdb\x17\x8b\
+5[\xb3t\x19z\xc6\x96E\x121\x0c\xef\x85\xf3\xb7\
+\x8a\xd9\xc5\xe2\x1bo\xfa\xff\x13\x8a\x99\xf20\x0e\xfa@\
+\xff\x7f\xc5\xec\xff\x0d\xc5\x0c~\xb7\xf7\xc2x+f\xd7\
+\xac\xdb\xf2\xb28^\xa7\xcd>\xa7A\x8e\x16\xc6y\xf9\
+\xda\xc8\xd2\xa7?\x8e\xa1'\xa68\xc7\xd7\x8c-8]\
+\xe1\xb0\x97\x22\xe3\xba\xbd\xc6W\x04\xcau\x05\xde\x05c\
+\xf9\x98\xc8m\xd2\xec\xc1\xda\xc0'\x1e\x9f\x93L\x99\xa0\
+\xfd\xe7M\xc6\xd0\x5c\x82\x92\x0b\xb2O\x81\x1e\x0c\xb8i\
+\x0b\x03TYy\x02U\x7f\xb1\xab\x22\xbe40m\xba\
+1\x07u\xb5B!\x16\x99\xcf|O}|Z\xf9\xd0\
+K\xdb\xfe\xdeRv9c\xcfF\xb7?+\x03{\xbb\
+\xc9j\xdd\xfa\xdfw\x82X:\xb0\xf3eE\x91J\x14\
+C\x16^\xaetjl=\x96\xb2\xd6ji\x04`\xe6\
+\xe9ZT\x83\xe7\xf0\x97\xb7\xf9i\x8e\xfd\xda\xbc\xa7\xa9\
+\x85\x89/\x8a\xe0\xe9\xce\xbf\x88\xcc\xe2\x93\xc5\x8bd3\
+\x17\x1d\x11\x02\x11C \x1b}3\x12@@]F\x95\
+\xd9&\x881\xc3\x9d\xc0\xd8\x16.\x00\xcfJ;~9\
+?\x83A\x80\x06\x81\x22\xb9M\xda\xd6\x99\xab\xcf\x17\xf6\
+\xcb\xf1\x8a\xce\xf3\x5ch\xa1I\xa8\x89l\xd0\xc3\xf2z\
+\x18Bc\xa1\x9d\x05\xab\x0ag\xc2\x98\xe1*9\x5c\xfa\
+\xd7\xf4\x16\x0c\x814P\xdb\xaeaxu\x90JVu\
+\xcd7y\x13J\xd4A,\xc4p)\xb2$\x9c\x86X\
+|\x93\xaanO\xbb\xc3)l\xbb\xecx\xf2N\x9b\xc5\
+\x8bbq\x00^\x1a\xaa>]\x1dD}Jo\x5c\xe9\
+\x9bp\x88D\x22U\xe5]`A\xd7\x1eF\xdbm\xa1\
+\xf1\xbc\xc1\xd0\xe8\xae\xc3\xe7\xab\xdc\x15\xa7\xe0\x18_\xd4\
+M\xba\xc8\x96F\x1bT\x8e\xb2\xf7\xcc\x0a\xa8\x0f:\xe6\
+\xf7\xc3\x91{\x00\x0d`\xa5\x97.\xe0\x19\x91[\xd0\xb7\
+p\xa6\xcbg\xdbf\x01\xa9)\xeb\x22\xad\xe4M\xdcW\
+%\x9dT)\xea9 \x01\x94\xc9\xb0\x90\xfa\x80,H\
+\xf6\x8f\x14\xfb_\xda\xdf\x90\x9b\xe7K\x07\xac\x02u\x03\
+M\x07\xe7\x06\x7f\xb1\xd0\x8a4\x90\x15\xdeK \xd7m\
+\x9a\xe43k\xaa\x84\xc9\x1en>j\xd3\xf1\xb2\x14\xee\
+#Y\xebV\xfa\xde\xa6\x07\xa7\x1bq%\x07f\x82K\
+agY#{\x09\xec\xd9|\xf8\x15rj\xe5\x1c\x05\
+\xcb\x85/\x93\xb3=T\x13\xf3\xd3\x98c\xd3\xf1\xa0\x84\
+[L*\xfd\x0eo\xf2fi\xcai7\xce\x86\x825\
+\xa0\xd9B*\x82K\xc9\x1a\xb1\x9b\x8c\xe7K\x04\xa4m\
+\xa1\x7f\xee\xd9\x9f3F\xdf.\xba\xd3\x01_9\xf2\x0a\
+\xc2\xf0\x80\x18\x9c\x8b\xab3\x10H\x1dK\xce\xd2O{\
+\xfe\xa2o:_Jv\x944]3\xc5q\xb2\xda5\
+o\x06\x7f`\xefM\xf3\xc64n\x13\xa3\x1f\xf27=\
+\xb1\xab\x1e\xa0\xc16\xba\xc6KWZ\xe7\x96\xcfZ\xb4\
+*\xf2/\x1a\xfdh\xdb\xca\xf8\x91\xa7\xbd==\x7fJ\
+\x16\x8c\x07VZ'\x1d\x81\x0eg?v\x8d$\xd7\xc9\
+\xe3\xdf\x0elQ\xfd\x06\xc1\xfa\x16_\x19sY\xc8\xcd\
+\xbd\xd5\x19W\xfd\xe9\x90t\xc6X^\xe8\x9b\xf3\x1a\xe9\
+%\xda&\xfb6\xcf\x91A<\xcf\x94\x80|\x9e\xae3\
+\x0fv,\xc1\x85\xc6\x0a\xddu\x01G{\xe8\x88\x0e\xc9\
+\xebco\xa5\xef\x0f$s\xb3\xafYrgs\xc0\x19\
+%\x93\xd6\xdd\xfc\x85-\xe1\xf3\x17\x91\xec\xdf\xa2@\xfb\
+\x8b\x96C\xdbE\x1b\xe1\x99tYk\xd6~\x03\xaap\
+S\xb4'\x83t\xbb\xe3\x16\x16\x06#\xfa\x0e\x08\xd4#\
+\xc9U\xb1\x88|\xc5!\xacj\xc0_[\xf1\xf8\xa3r\
+\x07t\x9f7\x8d\x93\x8e:{\x17\x8c[\xc6\xf5\xf6\xb3\
+\x12>\xd4&\xe5\x0d\xa1\x15\x95f\xb3b\x98\x8dOL\
+\xc0\xca)q\xb7)\xd2\xfa\x0a\xd7\x8e\xcc\x84z\x7f\xb1\
+c\xc3\x8cb`\xc8\x92\xb5\x9bK\xce3@G\xeb\xa1\
+\xf8\x88/\xaed\xff{\xe1\x0cR't1\xcai9\
+\x94LZ\xaa\x85N\x89T\xd7C\x0b\xba\x048`\xf4\
+\xba4{9\xfa\xe9\xfd\xbcr\xf0$\xcc\x1a\x97\x94\xcf\
+\x129\xc6\xb8v\x00@\xed\xcd(\x08\x84\xb8\xe4*.\
+\x87@\xf2\xca\x15\xf1\xa7+\xa7 s\x1c!\xab\xc8m\
+D\xc8G\x88\xb0\x87\x22\xb8\xce\xe8\x98c({\xb0\xc6\
+w\x95\xc2\x18\xb3\xbcpJ#\xb0\x05\xdb\x04\x93A9\
+\x1c\xad\x88\xb5\xce\xcb\x939\xdbd\xa1iH0\xc2g\
+\x0a\xcc\x22\x10\xe0\xac\xe6,\xfa\xfe\xe2\xc0@L\xfb\x08\
+\xfc\xfdx\x13\xa4\x0b\xec\x190\xa12\xb4y\xe5\x14\x87\
+\xfd\x16&3]\xaa\xc1T5P\x92P\xe6l\x93U\
+\x1ca\x8d\x8f\xe3\x0e\x8c\x11Bir,K\x17,\x04\
+v\x0e\xa7\xd8/e\xa1\xe7\xd1!\xde\x0f\xd1\xaeep\
+8\xa8_C\x88K\xc2D\x1f[\xff1tn\xfc\x82\
+\xb6\x07\xdc\x16\xf7\xeeA\x7fr\xca\xa1\xd2\xae\x18t\xd6\
+[cexM\xb6\xaa\x1c\x9a\xb3M\x16z\x89H9\
+V\x80C\xb0ZU~L\xd0\xf7\x17\x07\xbe;\xf6\x0e\
+\x97\xbd\xaeAG\x91\x15\x0e\xb1J\x81,\x9c\xc2\xba\x83\
+\x17\xc7\x87\xe5u\x8aq\x03\x8e\xdd\xa52\xcd\xd9&\x8b\
+\xb1PE\xcb\x93\x05H0\xe8\xfc\xdf\x8b\xe02\x1at\
+\xa4\x8d\xcc\x972\xff\xbbr\xd0\xdb\xe5A\x7f\x0eN\x0c\
+\xfa{\x081\xe8\xf5'\xfe\xe3(\xb3\xd4\x0f\x1fIY\
+K\xfb\xcd\xc1\x97`\xfd\x85q\x93\xcb\xf6\xa0q\x18\x06\
+\xad\xd2<\xc6\xa8\xde\x1b\x1c\xf4\x09e\x0cU\xb6\xb2\xa9\
+O\xc71\xe9\xfb\x8b\x83!Ff\x00\x868y]\xa3\
+\xeeW\x81\xaaC\xa3\xd9\xca\xa1\x1d\x1b6\xf6CU0\
+T\x12\xa9\xf0\xdbr\xd3\x98\xb3M\x16\x86\x18\x11\x108\
+\xa9P_\x8eC\xdc\xf9\xe7\xa4BK\xacCv}\xde\
+\x89\x1b\x1d6\x02+9\x220r\x19\x18\x8d\xf0:|\
+q\xf7\xd5\x7f\x1e\xe1C\xebI\xe5\x99\x17\x06\xbe\xc3\x05\
+\x06 \x7f\xd2\xaaJ^\x80ru\x16\x8f\xf0A\x07\x90\
+Yl4\x16:,\x0cX\x04\x18P,\x0a\xd3\xf7\x17\
+\x07\xc3\x81\x82\xc5(\xd4\xd1\x1de\x8b\x1c\x16\x0c\xa8b\
+\x0bWNq\x9dd~\x1c\xe1y.\x13XT\xab\xda\
+C\x9cY\xcb\xc3,\x86mbm\xa0\x1e\x1b\xecV\x18\
+bo:\xd5\xe6\xc4\x18\x1f\xcf\x97\x1e*\xf7\x801>\
+\x92\xc7\xf8161\xc4\xaf\xf1\xfb2\xebP\xe6\xf8\xc0\
+>j\xf7\x10?9\xd8\x08\x8cJD\xac\x11\xbfk\xc3\
+\x1e\xa2+\x98\x82j\xce6Y<\x0f\xbdH\xb9\x1c0\
+\xa2{\x9d\xf4\xfd\xc5\xc1x0@\x16\xc5P\x8a\xc6\xb8\
+z\xd1v\xd5UY8\x18c\xce\x12\x8e\xa9\xac\xb3\x06\
+\xb6d\x0c(\x8a\x0d\xde\xc1\xd9&\x0bc\x0c,\xc6R\
+\x9b\xaa\xa2\x10\x1b\xea\xe2\xdf\xf7\x12c\xcc\xb0\xf7x)\
+\xfa~h\x1d3,z\x1d\x9c\x18\xe4\xf7\x10>L\xb2\
+\x10]\xdcm]Q_\x7f\xbe8\xc5\xe0\x81\xe5\xd2\xcd\
+\xbfD@\xe2\x15\x88\xf0\xe6l\x93\x85\xa3M\xafP\xec\
+B\xd1}:\xc8{e`$\xf4<5\x8d\x0dcy\
+z\xbdJ\xc9_9E\x98\xa4\x14\xbc\x9e\x1e^o\x8f\
+\xa9\x1c\x88\xb3M\x16\x82\x8c\xa5\xcd(\xa0\xae\xf8\x06]\
+&\xda+\x06\x976\xd3x):\xae\xb1-\x92\xa2\xef\
+\x81\xd1\xd8\xae\xc3\x17g\x84Q\x1c\x14\xcc\xc3\xd0\x92l\
+O\xc8\x9f\x95\x81P>a\xcc\xc9\xba\x13\xa1|u\x9a\
+\x7f\x9a\xf1\xaf\x83\xc5<\xa8\xa8\xf26\xd3xY\xcd\xd9\
+\xe9\xaaoN`\x0aV\xa1\xe3n\x81\xd5\xc2\x8a\x83\x0e\
+\x0e|s\x02U\x815x\x1f8\x09,$\xa1\xa8+\
+q\xb6\xc9r1\x83\x0f\xed\xec\xe5<3\x86\x90j\xc9\
+\xfb`\xd6h\xfd^9\x1bQ\x17y+q\xe1\x19$\
+\xbb\xea\xa5\xd5)\xcdO:y\xcarU\x84\x89\xaaf\
+W\x99.'\xc1\xac0\xde[\x8e\xdd\xc5\x04\xb4\x9a\xe2\
+g\xf7\x17g\x02\xe1\x09D{\xfb1\xaaEv\x22\xf6\
+\x8b\x8c\x1c\x7fO_t\xa9~P\xef_\x9cm\xe6e\
+gg\xba}\xb0\x13\xa2\x12\xce\xcaI\xdeQ\xacP\xdb\
+~&^8\xb0\x0emR<l\xd0S\x85\x9f\x80\xa5\
+\xc9\x81_}\x18\xfa\xf0\x08\x03\xdb\xc2\xd9&\xdehT\
+\xf4a\xa1\x82\xf3zZ\x15\x17\x0e\xdc\xe9J\x1e\x95Q\
+\x9dV\xfemZ\x04\xef0\xfb\x9b\x8e\xfa\x1c\xac\xa1\xdb\
+r@\xc8\x7fL\x90o\xc66a\xddg\xbci\xd1\xb0\
+\xcfX\xe4\x85\xc1\x19o\x8e\xb0}D\xb7\x06l\xf1\x9b\
+\xf5\x81\xb0026\xab\xd4|\xfa\xff\x18\xd3CV/\
+\x16k\xe9[\xac\x0a\xd3\x9c\x94\xd8\xa8fx\x15u\xc7\
+\xa2\x16\x9bmm\xb4\xc9\xb2\x1bo\x8c\x8a[\xce\x86\xef\
+Pj{\x9a\x8d\xa0\xfege\xe4N\xef3\x0d\x00v\
+\x1c\xdb\x5c\xf3\xa0\xb2*\x1c0wSwU\xe1\xbf\xf4\
+(\xef\xb40\x82<\xb3\xc9\xd7'\xef\x9f\xed\xdf\xb6\xaf\
+v\x8d\xbb\xd4P\x11[5\xf9 x\xebr\x8d\x15\xd2\
+H\xf9\xcf1\xebO\x0aQ\xf3jg\xd0\xc2\xe49c\
+E!\x9b\xcbX\xe8\x0aI.\x86\x119\xeb\xdf2\x94\
+\x8b\x80v6\xde(?\x8d\xe2\xf1\xfdl\xf0h\x7f\xd7\
+FM6\x83\x8eN,\x1cDU$W\xc7\xe0\xed\x9c\
+i|\xd2\xfb\xe3\xdfE\xa1\xdb\x0aZ\xa3\xe8\xe9\xc2\xc9\
+\xbaj\x08\xa77\xa3D\xdd\xa3]{s\xf9\xa8\xdc0\
+\xdfm\xfbk\xcb\x86^h=\x96\xc6\x9b\x81\x84\xfb\x94\
+<\xa3\x81\x911\xd37_\x0c\xb9\xe2\x08y\xadF1\
+\xbex\xb4\xf1cOz3\xa2\xfeW\xa7\xbb\xe0\x90\xa1\
+\xaf;\xaa\xe4^88\xce\x7fd4y\xb7\x90\xd1\xd8\
+k/0\x11.\xca3\x17\xd7\xca\x81\x18'}yb\
+\xean\xba\xce\x95\x92\x94\xd8I\x0c`^\xad?\xa8\xf1\
+\x1a\xe6j\xd4y\xcf\xe0\x8b.\xdd\x928>\xbd\xcdo\
+k:\xd6\x16>\xd3\x01\x9a\xa1\xc6\x0f\x05\xf6\xbe\xe9l\
+\x14\x97.\xf9\x90;3\xb0\x11=}\xd3\x5c=N\xc0\
+N\x5c\xf5\xed\xb7\xc2A\x5c\xa9\x10\xc9\x98\xbfi\x90G\
+\xaeT\x92\xa9\xf8\x8bQX-D\xd9\x1c\xc5\x16\xd9-\
+*\xcc\xdc\xd3\x84\xe5r7%\x10@\x84\xe4\xbe\x90\xf7\
+\xca\xd8\xe8\xed\xb6\xc4\xa2\x16e\xb9\x99\x8a\x8bm-\x0c\
+\x84\xbfvBc\xbb.\x9d\xfc\x06\x04C\xd5\xca~s\
+\x84\x1ew\xf1 \xadPp\xab\xa1\x5ck\xd8\x0f\x8b\x91\
+\xaf\x03\x0b\xbeL\xdc\xecZ\xac|\x1a6\xbb\x86\xb7m\
+\xe5\x94(\xf9\xd3\x19\x1d[\x02\xd9[\xc5\xba\xd8\xa87\
+\x8b\xfajR)`\xccS1\x9e\x1c\x02\xb8\xad\x9fZ\
+\x9bD\xc2C,Gyl\x92\xc6\xa1(\x9d\x9aU\xe9\
+\xbb\xcd\x04t\x87(\xf39\xb4\xd3\x9c\xd5\xcf\x12\x10\xcf\
+I\xe3\x0c\xd3\xd8\xc2\x0a{\x0f\xc0\x8c!\xbd\xa2Q\xa1\
+\x5c\xdd_\x9cBTh\xd5T\xa4\xfd.\x1aUsT\
+\x16\x5c8\xf8\x06-\xfea!\x94_\xac\xce\x98\xe87\
+\x87_`\xaf\x8e\xcf\xf1\xad\x94\x93=\xda\xb4p\x98l\
+\xc6\x10\xbc.\xc5\xb3\x84\x8eq\xf6\xb9\x91#\xd4\xea0\
+\xf2\xc1\xca\x99\x83\xd9\xad`\x95\x12\x0e\xe6\xd0V\xe7X\
+\xd8\xda=i\x0b\xbc\x95\x9e\xbf\xd8>\x8f\xe46c4\
+\xe2\x06q\xd83~\xccU\xf0\xe403\x8eE\x98\x0b\
+\xc2\x077]\xab\x19My\xc5vy1\xca\x84S\xa6\
+\xf5\xbc\xb8\x1a\x10\xb3\x5c\xf3\xfbZ\x93\xe4\xcb\xfc\xfd\xb9\
+\xfb\x98S\x0c\xe1\x13\x91\xecEx<\x9f\x8c5\xc6\xa0\
+\x1f\xd34\xbc}l\xc5\xaeLU\xec|*\x9fM\xcd\
+e\x80\x13\xb5\xe5\x87\xa1\xd5\xad4\xb9\x99\xbe\xbf\x1e\x98\
+)l>\xbb\xadV\x11\x95Z\xa7\xd2\x9b\xb3}ng\
+\xcez\xc3\xdd\x8c\xaf\xd8\xc3\x96\xbbr\xe2\x9a\x9a]\xc4\
+\x09\xf7>\x85\x98\x5c\xa1\xbe\x9a59\x05+\xf7\xd2\xfe\
+4\x9c\xdaL+Z\x18\xccLv\x02--(\xb6\x95\
+\x87\x1f\xe6\xa6\xf1\xae\x5c\x1f?\xc6\xef/\xce\x5c\xd9r\
+Rna\x7f\xcf\xed\x8aa{\xd2\xb4\x8d|\xae \xb2\
+\xa7\x5c\x9fK\xccM\xe3\xac\xba\x18\xf6]\xd5I\xc0\xee\
+e\xff\xde\xe4\xfc\x01oE.\x1c\xda\xaa\xabz\x9e\xb4\
+\x99\xaf\x1c\x9a\xe0\xe3\x921\x7f^Z,\xf8\xa6\x93\x14\
+\xea\xebPp\x7f\x07c\x0b\xce\x1c\xa78P\x0e\x97\x0c\
+\xfc\xcc\xc9\x8bA\xb1\x8e{X\xd6Q\xbd\x15\x03p\xc2\
+Uf'\xc4\x8bA_D\xa7\x8c?\xfa\x9ca\x16\xd3\
+P\xe5Y;1\xb6yv\x1fQ\x1a\xd1k\xd3\x15\x05\
+\x8ekJ\x0b\x97\xd8:X\x1a\xac\x18\x0a\x0f\xf2\x86\xdf\
+kr\x9b>D\xaaW\x1e\x0b\x12s\xd8]\x06\xcde\
+\xdcb\x1d\xa4\x87+\xe6\x9c\xef\x94\x01\xc8\x154J\x8e\
+^\xd4\x1eE\xfc\xeeO\x93]\xe6\xaf\x18\xbc\x95\xd5\xe0\
+\xf2g?miO\xf1\x0b\x97E\x10#\x1c7\xae\xbb\
+P\x0ca\x0aU\xd2\xa6\x8f7\xe7\xe3;\x89\xbad!\
+\x00?;\xf6\xcd\x98\x12q/S\x10P\xfeEa\x08\
+3L\xc7\xf9,\x14\x8fI^\xd3\x1d\xf6f\x14W\xec\
+\xe2\xfd\xa1\xcfC\x93\xf0jS\xd7\xc3\x9c\xb9\xfeE\x91\
+\xaf\xfe\xf2qe_y\x8f\xe1\xdf\x8a@\xe9{hI\
+\x8c-\x9b\xa3i\xcc\xfck\xdeO\xde\x0c\x964h\x8a\
+\x9fd\xa6e1\xdc\xfc\xd4<\x1157\xd6\xb42S\
+~\xbf\xc9\xac\x92\xae\x11\xf2p\xd5P\x05Co~q\
+\xe8\xbf'\x19J\xf7S\x91\x8c\x22\xe2OU\x13\x97\x02\
+\xbb\xb8\xce\x99{\xbbp\x22\xd4\xa18|\xc5>e\xf8\
+8\x1c\x99\x91.\x1b\xf4N\x09\xfe\xacj\xc9%\x82'\
+\x9c\x13T\xda\xe7r\xf0\xe6\xc0\x0dMk\xdbaT\xce\
+Lk\xdd\xf4\xd9?\xa8\x1c\xa9Q\x87\xf4\x98\xdc\xf5\xad\
+#\x22{\xdf\x8c\xed\xf3\xad(\xa6\xd3#\x03\xbbG\x05\
+\xac\x85\x13\xb5\x8b\xa9'\xf0.\x5cie\xbc\x22\xdaB\
+\x9c`\xc4\x84\xf2&\x09\x03{\xf8V\x8b\x83-b\x09\
+@\xd9\x95ip\xef\xf1\xd7\xc7?\xef7\xdf\xdeH+\
+\xba\xd91p\xa5\x96\xe91\x0e4Y\xb3 \x9bh\x5c\
+\xac<K\x11'\xd3d\xb0\x8cQ40\xf0\xe1\xeb\x9e\
+.\x0f\xc5e`7\xfc\x80\xedV\x05\xdd\xfbgad\
+\xd5\xc5-:\x09\x99Q>^\xd6\xc2&\xc6\xc0x\x0c\
+\xc3\xe9\xa0V\xba\xb4\x1d\x1a\x90\x8d\x8b\x09\x83\xacc\xaa\
+\xbcr\xc1\x09\x8ft\xeb\xf6\xb5\x95\x09M\x5c\x94\xb8\xbe\
+Y\x11y\xb0\x94\xbcv\xc8\xf5A\x81\xb9\x1b\xe5\xb7G\
+R\xdd\x9cH\xdd%\x01\xb2A\x07\xa0cEN\xe7\xdc\
+M\x89\xbfr\xb2\x8f\xe6\xba;\x90\xc3\x95\x04\xea\x9e\xa3\
+\x00\xcc\xc2\xa2%\x04\xddp\xc1\x1b\xdc\x9f\xe4\xf4\xf7\x98\
+.\x0c\x05#o\xf4Fpu_\x12Wuw\xe6\xda\
+\xc2\x80\x91\xa6\x06\xda@\xe5|\xd4}\xc6\x10\x90\xb1M\
+N\xb6\xaa\x87\xe6_\xb3bo\x9d\xc7\xf8\xca\xc9\xbe\xe8\
+\x80\xd6\x0cf)f\xd1\x7f\x01I\x8c\xcd\x05\x86\xe0\x11\
+4`5\xeaK\xbaR]\xddC12g\x9b\xacd\
+\xebE\xf5i\xec\xd8\xc7rE!\xf0\x85\xc1h\x0c\xb8\
+\xc4NW\xd0\x8e\xa8\x82y\xfa\xaf\x1c\x02\xecC\xc3u\
+hV\xf2]\x1fw\xf0\xa8\xa4z\xb9\xa6B\x8f:\xdd\
+\x0e\xb88\xdb4#\xeb\xc8\x0b\x8f\xc2\xca!\xa4&\xfd\
+\xa9\xae\xb4\xe9\xea\xe4\xe5\x93\xa2\x7f(\xa6\x12v\x02\x97\
+rftAs\x02\xbe\xd1\xa3?\x10\x06Q9\x09?\
+\xa090\x00\xa5uX\x03\xffD\xcb=b\xbcW\x0e\
+,#:\x99qn\xd1P\xc2O>\x82$\x85\xea\xde\
+l\xff[\x0f\xfa\x85\x96\xb5e\x15\x0f\xff~\x22.\x8b\
+\xf1\xc8\x83'\xec\xcd\x85\x91\x95\xd1\x89ya\x14\x9b\xf3\
+=\x83\xbe\xa5\x1ec7\xc4\x13\x16g\x11\xb2\x91\x8d9\
+P\xe6E\x9a\xa8[\x95\x0c\xae`\xab>\xd8~\x92#\
+p&4\x05Zp\x00\x1e\xa4C\xeeJ\xd88\xed\xb2\
+\xf8,\xac\x85\xb3\xb1$}\xeb\x8e6\x81\x8d\xaa\x5cg\
+\x04XN\x82\xd6\xed\xb1KwGo6\x03z\x5c\x01\
+)m\xce6Y\x84;\xf0\x02\x96\xbc\xf4\x19q\xedQ\
+\xfe{\xe1d\xc3\x10\xdb\x8f\xa4\xa8C-\x858\xbb\xdf\
+\x0c\x5c1\x15\xec\x12\x06\xde8Kc\xf9\x99\xb3MV\
+v\xe6tl\xa3\xac\xdaX\xa5\xcf\x93\xe9I\x83b8\
+\xc9\xb4\x08'\x01\xa9\xccl\xf7\x7f\xdb\xbe\xd6\xc7\xd0>\
+\xba\xea7\x15\x96\xaf\x82\xb31\x1b\xea\x06\x9c\x0c4(\
+\xdc\xc9\x11C`<\x00\xc2a\xed2\x9bV\xe2m\x12\
+O\xe9j\xfa\x16\xb2\xa5\x18\xb4\x09\x91\xc2\xect\x83\xbd\
+%\xd1\xbd\xeb'Y\xa8+\xc8T0x\x00\xe32\xd0\
+\xb4+\xe9\x12\xcfY\xc3\x03\x02E\xea\xbb\xee\xcd\xd8\x95\
+@\x0f\x00Ds\xd7K\x0f[\x0a8\x00\x08;\xd7\x9c\
+u\xe4&z\x08\x00\xa6\x85\x0c3\xf8\xc6\xf5\x11\x9a#\
+\x0e\xbf\x80\x02\x14\xe0\x08E\x1d\xab\x82\x8c\x06\xd2\x13{\
+\x01T^\xec\x06\xe2f!\xb8FHZ\xa7\xb0\x11\xc8\
+\xa1\x81\x83\x91k\xf2\xa1\x03\x93\x0e\xf6\xa8\xcb>u\x09\
+i\xc2xn\x1cMN*\x91\x925\xba\x8c\x89\x8e\x80\
+\xaa(\x0e\x09\xc3\x0b#|\x98(\xaa \xb9\x8e\xe0\x13\
+\xa6D2\x86\xbd!\xf9\x90\x07_\xd1O\xe0\xaf\xc1\xa5\
+\x176\xcf\xa4M\xc9:\x17]\xf8\x90pc\xed:\x17\
+\xc7\x09\xc6\x1f$\x84t\xf8\xe4C+\x0e\xe1}\x16\x86\
+\xe8WzL\x0854\xe8z(@\xd9\xe8DX\xac\
+I1\xd2\xcd\xeb\xf9d`0,\x81|\x85\x9c\xe3\x8a\
+i\xa6u\x05\x9cC\xceP\x9d\xc8\x07\x11\xa6Hc\x95\
+\xc0\xed\xc2\xf4\xa4\xac\xe0\x14m\x09:\xe4\xaa\xc3Y\x84\
+f\xc1\xb0\xe9.\xbft%\xf6\x13\xc3\xa0\xab\x9f\xeft\
+\xf15;\xaeO\x04\xc6d\x15Z+3\x91\x01'J\
+9\x15ZP\xa1q\xa0\xce\x13\xc7\xeed\x1aSf\xa8\
+\x8at\x9c\xa6n\x8cCI\xe0\x5c\x08\x05\x83{\xa8x\
+\x0b\xcd\xd0eK\xaa\xa9\x06\xe1\xd4C\xa8H7\xd6S\
+\x91\xfa\x0a\xff>\xd7\xfah\x03\xfe\x0c\x1c\x10-\x12\x9a\
+\x0e\xe5\x9eG\xa2\xc4\xd0/\x19\xd4t\xedD\xc6\xc3@\
+rI\xa0\xd2\xb5\xf6\x06\x22\x10\xa4Z%F\x8ae\xdf\
+\xcb\xf5\x0a\xb9\x15\x15\x04\x10\x92EF\x82\x83\x1c@\xcf\
+\x81f\xde+^\xca\x93\x1b\xeaz\x15]\xf4\x91\x8b8\
+%\xe0 \xb6*\xb3\xc4\xbc\xfaq]\xc6\xb6/\x8e\xe7\
+\xd2\xf9\x0dL\xfb\xa4\x91\xda\x091k\x806\x9c\x9a\x88\
+\xc3\x85\xb4(\x0a\xaa\xdb\x19\xfd@X\xd6Cq\x1c\xfb\
+\xa9\xec\x06-\xc4\x13kf3>\xb1f\xd4\x802\x87\
+\x0f\xef.+\x077L\xd22\xcb\xce\x01\xe0\x1e\xec-\
+vm\xcb\x8a/%\xebR\xb4+\xd2\xa7\xf8\x8a\xac\x9f\
+\x00b\x98\xb4\xb7-\xd4g\xcd1\x03\xd8\xe1\xe1\xbc\xac\
+M\xe4S\xa1\xc6\x97~\xa1h\x11\xc2Sv\xbf\x13\x87\
+M;f\xb3\xb8\x8f\x81)}\xa8\xd9\xc6\x89\x83\x86r\
+\x5cj\x16\xa0\xccpV )K{J\xf1\xb4\xd5\xab\
+\xfb\xb0\xf4\xeds_\x1eMO\x10\x88\x0f[\x8a\xe6\xec\
+\xa6<1mS\x8ep\x93\x08\xc5N\xc6\xd1\x0c\x09\x9f\
+\xb4\x8f\x8f\xf4\xd1\xb0\x8b\x81\x9e\xa4`')\x05\x95\xb9\
+_`h\xc0\xc7~u\x0a\x08\x07\xaf\x12\xa7L\x9e\xa7\
+\xd4\xba\xdf\xa1\x83\x94\xc9\xa6\x90\x13\xbd\xc9u\x05\x10i\
+\xdeO\xaf8y\x11\x18\x06\xc6\xae\xec\xa7\x8a\xc59h\
+\xca \x04\x5c\xef\xfa\x01\x10bn\x9d\xe5Y\x0a$\xf7\
+-D\x0f\x96/2LB:0\xc8j\xf7\xe1\xdew\
+\xa6\xba\x83A\xd4=\x9c\xa7\x8c)\xda\x8da\xb9HB\
+\x0a\xcc/\xe98$f\xde\x151\x87\xadvQ\xcb\x82\
+\xc1\xa1HK\xaage\xdc=+1\xc1\xd7e\xe46\
+\xc6\x0b\x22\x1c\xbb\x0b\xad\x0f\xe9v\x8cp\xaaL'\x04\
+\x03\x09W|\x84\xf8}\xd51\xac\xd5AttLp\
+\x7f\x1e.\x13\xadB)\x85\xa9yM\x10\x7fTh\xaf\
+\x16\x18\x9c@\xcan\xe2\x00\x1a\x17\x11\xe4D\xd4\xbc\x9a\
+A\xb3v\x22\x1b1P\xd6\xa8\x9dPg\x9a4\xa3\x8b\
+Xi\x0c}$v\xcb!\xa8\xd1F\xe5\xce\xfa,\xb2\
+MpYD\xd5\x00\x9cL\xc8&\xc5M\x10\xb7\xaf\x04\
+\x15x\x97+\x07\xca\x98/0\xc4_\xab\xe4\xf0\xa4B\
+\xd6gn~\x05I\xb5\xf12\xd2\x0d\xdaD\xf8^\xfc\
+\x02{\x0b\x96DDj\x81\xee\x8a\x93\x87T\xa7\xbeW\
+\x84\x9c\x97\xe7'\x9aQ\xe1\x10M\x08\xba\x0a\x22S\x92\
+\x88\xad\x9a\xc1\xf7\xd8\xdf\x95IU\xc2O\xac<\xfd\x14\
+\xf4I\x88LN\xe1\xc5\xa14\xf4\x9c\x82\xd4.\x0a8\
+\xa2jv\xb5\x1c\x19\xe6\xf0\x14Q?\x19\x83g\xa5'\
+\x0b\xbb\x95\xc3\xd9\x85\x12\xc8(G(z\x94\x99\xc8m\
+\xdd\x15n}2\x14.\xf0>\x19V\x8b\x93*+O\
+\x134\x97\xb9\xae\x83\xc5Y\x92\x06\x1a\xcc\x8c\xedR\xde\
+7\xdfP\xa53\xf3\x0c\x86G\xb0(\x86t\x88\xc4\x1f\
+e\xd2\x00\xba\x90A\x8f\xbd\xbchZK\x9e?I\xb3\
+UU\xab\xf3\xf2'\x0f\xad\xd5\xd4\xdd\xa6\xaa\xb5\xac\xed\
+\x9d\xed\x9aaL\x1atH&\xf1Z\xe1.yB`\
+\xf2\x93g\xf1O$\xb0j\xe0\xa02M\x99\xe9\x91\x10\
+\xe4\xf3\xef\xe1\xcc\xa1+\xcew\x0b\xea0\xd9x\xbd\xb8\
+k@\x0b\xca\x11\xaan/I&8fS\xb4l\xdf\
+\xf5\x84\x96\x22\xa0\x93E\xe7\xaeo(\xdc\x9ayM]\
+\xd7\x9f*0Cn\xda]Q\xa9\xeb\xd1 \xec\xb2\xf5\
+\xb8\xf8kKaz\xc1\xc5R\xa0\xef@\xd8(\x87\x0f\
+\xee\xcb\xf5~t\xd4\x03.\x92\xe0M\xa1\xc7\x08u\x0b\
+\x0eH\x0b\x0b\x81h\x85\x1a\xd8\xa8z\x82\xeeW\x7f\xc8\
+0\x84\xb3\x84,e\xd2c\x17F(\xcc\xaa\x17\xaaM\
+\x22\x1d/\xc9X\xd3\x02\x8c\xb8\xea\x06#\xc0\xa8\xac\xfa\
+q\xb8\xd1\x18O\x92I\xd40k\xa9\xd4t\xc7V\xa4\
+\xbe\x06\x13m\x22CBO8\xa5\xa0\xab5!\x83s\
+\x9fF\xec\x80R\x01lNh\xd2\x87\xd4\x0e\x82\x97\xa7\
+\x00?\xbaf \xd4\x19\xa1\xe6\x89\x9a\x09\x91J\x93F\
+\x98\xc8\x0a\xbc\xe5*\xf4\xdc),\xc0\xd4=?a\xd1\
+,\xb7\xc5\xdd\x9c\xa8\xd9'\xdf`\xaf3\x8a\x1cSs\
+\xfd\xfcU\xe3B`\x0a\x95Ef\xc0\xf8\x15\xa9\x92\xaa\
+\xd7\xa5\xa5\xc6\x5cu\xa8\xd1n\xd1i\xcc\xb4++\x8c\
+\xd8\xb6\x89\xee\xbajt|\xb0~\x97'\xc7\xa1\x05)\
+L\xa2\xec\x84\x9a\xd5\x04\xdf\xadn%\xea\xc0\xe5\xd1J\
+\x97(\x7fv\xa4\x09\x1d\xf9\xf1\xc8\xe9f\x12\xdc\xd8\xa9\
+\xc5\xefo\x5cs\xe8\xb8&N)O\xf3\x15\x1f\x03@\
+|\xe4\x14\x10\xc6\xe3\x89\xfa\x1c\xac\x93\xae\x80\xe7`u\
+.;XGQ\x87\xa2[C\xc1\xd8u.|*\xcf\
+\x9c\x5c\xc2\xb9B-\xd6\xf3'\xee\x02\xa0\xabo\xe2\x18\
+k\xac\x0b\xad\x17\xe5\x19\xc0\xa5\x9f\x92\xb5m\xa02_\
+\xaa\x9f\xc4\x08w\x0a\x1c,\x93j5\xabE\xb1\xf8\xa4\
+\xb4\x82\xfdP\xf2,1z0'\x00\xcbsJZ\x89\
+\xca\xf5`p\xec\xc9P\xce\x1a\xc5`W\xb05\xb3o\
+\x0f\xedf\x8543\x87\xed\x92Z\x05\x95\x9deY\xb9\
+\xdf\xab\xd4\x17\x94\x92\xb8dxiFk?\x88\xa3\x07\
+\x0e\xf4\xc3\xbcK\x1d\xdaw\xfdZ7\xa5\x12z3!\
+Z\xc8\x18\xbb\x06\xa0{\x80\xd2k|\x7f\x11\x12\xec\xf3\
+\xc0\x11\x9a\xddz\x08\xfdE\xcc7\x06E\xa3>M%\
+<66\xfd\xa5\x10l\xa6\x94\x05\xd43|^U;\
+\x9a\x98\x13P\xed\xbb\xcf\x80F\xe5\x1aX\xf1G\x9c\x09\
+$\x05\xed\x07\xb0rR\xae@\x9e\x84S\xef\x0c\x16\xe2\
++\xefrz\xa1Y\xc2ng.C}\xc0j3\xb8\
+\x1b\xa5y\x01\xd1\xd3\xe5\x02E\x9b =\x22e\xad\x1c\
+\xcf5'\x1d\x16I\x1e\x84eL~D\xf2\x9e4c\
+\x04\xc2\x96+\x8e\x82\xbb!'\xb9\xec\xb2\x9e80U\
+i\xe6\x88\xcd\xb8\xd1\xee\x14\x0f\x97|\xe0\x1e\xdeE\xc7\
+\xb9A\xdf\x5c7ZQ\x92)e\xe3x\xebH\xae\xc2\
+QG\x82OW@\xe2s>\x02\x97\xef=G\x7fm\
+\x01!\xcb]C=\x15\x1c&\x19\x90S\x85\x16z\xea\
+\x08\x02\xdc\x1fHfk%\x0a\xe4[\x1c\x9a\x9f.\xd5\
+^G\xd2\xbc-^h<\x91\xf3u]l\xcc\xd1 \
+4}\xd2\xc9}\x0a\xae]\x11\xf80\x85\xd4\x1fB?\
+\xcb\x0a\xec\xe2FGU\x0d\x03\x88\x0f\x86\x0c%%5\
+\xb8\xcdk\x1f\xd8\xd7\xaf~=\x81\x00\xce2\xad\xaf\xc9\
+\x85\x88\xdf\x9c\x14\xa6\xbf@q=\xba\x9b4#\xb5\x8f\
+\xea*\x9a\xce\xf5f\xb9nc/\xc0\xdd+\x8bS\x94\
+Bz3R\xf6\xf9i\x17\x0c\x02\xa8\x95\xb7pL\xc4\
+\xc2Tf\x0a\x9e\x1e1\xceG\x84\xd4:\x06\xbb|b\
+j\xdf\x1c8\xae\x95\x98\xa8\xf2N)<@~\xfa\xcd\
+\x88J\xf30@\x13\xa6\xb7\xfae\xe7>\x0b\xe4\xbdY\
+\x9aXhV\x81\x90y\xb8Ze\xe0^.\x0c\x94L\
+\xa4\xf4\xeb\x84'\x0e\x13\xda\x0c\xc1}3\xa2\x82\xfb\xb4\
+\xdaweA:\x10\xe8\x96\x9f\xff\xc1I6Q\xc7\x14\
+t[\xe9?\xf8\xac\x0b\x07\x9b\x8c5\xb3\x8aqp\x93\
+K\xb2\xe1\x01o\xe5\xb0\xe3\xc7K\x8d\xbdH+=\x1a\
+lB\x1a\xf4\xb6p\xe6\xa2\xf2\xfb\x22\xe1\xb5L\x84\x8e\
+\x95c(\xe3-R\x11T\x1a\xe2\xe1j\xbb\xbf8\x88\
+N\xe0+\xda\xa1j\xe3Y\x05@\x19\xd0\xb8\xdd\x0b\x03\
+\xbe\x10Ns\xc4Ng\xb9\xee\xa6\xbfva$+\xcb\
+[\xa4J <\x91\x93\xfe\xa9\x0a\xb6p\x92\xb3\x8dK\
+\xe4\x13\xec\x96\xcb\xb5\x06\x82\xc0\xc2\xfa\xe0\xfbTAw\
+'\xdf\xfd@\xfb\x18^8\x0e\xb4\x97\x07U)\x08\xae\
+\xe6\x1a\xd9\x03/:Q\xcep\xd2\xb2\x16\xcda\xbf\xad\
+\xe9\xcd\x8c\xd8\x15\x87B,\xe7\xe0\x1dg\xec\xe3\x17#\
+\xc1z\xd1\xaa \x91\x15\xea\xb1M\xc6=\x93\x16\xe6#\
+QQ\xd6!q\x80\x03\xe7\xd0\xb5\xe9Izs6\x9d\
+u\x9c>'M7;\x07\x1e`\xcfo\x0e\xdcS\xdc\
+\xf8\x01\x1b~\xcauz\xce\xcaoMSl\x06K\xb5\
+\x1c\xda\x16\xdcG\xe1\x9aj\x01X\xbap6\xfa\xf9\xb4\
+\xa6\x22\xadE\xfe\x84\x099\xb00\xb0m\x8eO\xcat\
+(\xe6\x9b\xfd\xd1\xf7GUw.\xf9i\x01\xd0\xech\
+t\x9eLi\x9f$\x96\x17g\xfb\x80\xa7G\x84\x7fM\
+3\xb7\xd0+{\xe1 \xc6FK\xca\xadJ\xe1\xc4+\
+\x11 d\xd6\xe4\xb0\xf2\x19s\xb7\xbd\xc1wON\x89\
+\x04\xa9\x85\xc3\xa8\x18\xce\xa7\xd3s\xecF\xc9a\x22{\
+\xd3v@gF\x08\x12\x93\x8b\xb8\xb2\x97\x91O\xde\x1c\
+\xb6N\xc1|FJ\x9f\x89\xe1\x13\xd6{\xe1\xb0T[\
+S\x18 \xa7~wxH\x9a5S\x17\x0e\xb1\xe0\x08\
+Xo\xac\xf5]V\x834\x91\x0d\xde\x9c\xc0\xfbA\x0c\
+D\xfa\xc0\xff\x94i\xc4\x99\x18G\x13\xd3\xd7XL\x1e\
+\x1f'\xd8\x5c\x91\xd9\xec\xaa\x9b]\xe97\x11\xf8\xa7\x0b\
+]\xda\x03\xe9\xc3\x11c\x84\xf5bE\xb3\xee9\xf5\x88\
+Ep\x9f\xb1\xf6\xf2t[\xba\x0ec`)\xb0x[\
+\x12\xd8\x8a\x92\x94\x02\x84b\x86\x14\xc5\x1a\x98\xf8\xf4\x81\
+:A\xcfb\x0a4\x9d\xab\x87j'\xce6Y\xc9\xa0\
+\x14\x0ee\xf0\xf8\xe9\xe7\xf7\x9b\xc4\xa3\xb0\xf6\xc8;\xa9\
+?m\x8f\xc1\x8c\xb17cN\xd6\xee\xe3&\x0e\xcd=\
+\xb2\xf1\x88\x04\xe7\xf2\xd8\xb8~\xa0\xfbQ\xc5X\x07\xaf\
+]\xe3\xc9\x96\x8eyR\xa7\xf2>\xcc\x1d\xa0\x865\xa8\
+\xbbcjq\xe8\x85\xe2\x92\x84\x1f\xfd\xfb\x8b\x83\xc3;\
+\x0a\x1d\xb0\x9dqV\xa7\xae\x98\xd0{e\x81\xe6\xaa\xa5\
+\xccr\xb6\x19\x0bVM]\xe9\xc9I3\xaa\xa9X\xf2\
+f9o\xcaT\xebsT\xac\xb2>\xa6\xda\x0ax\x80\
+/x\xd3\x9b\xc5\xdc\xfb\x11'\x9f\x96\x88;\xb0\x18t\
+h\xed\xfd\xc5I\x82\xae\xd9\x22N(\x19\xb6c\xc6\x10\
+-\x0cL\x0e\xa7\xb3\x08w\x99\xe5\xf6\x1aC\xe4x\xca\
+n\xfc\x01\xe5\x8bc\xf4!\xadI;\x0e\x14j\xa6D\
+\xf1\x0c\x9f\xc8>\x11*\xc3\x05\x7f#\xafj\x9c\xc3\x0e\
+C\xfa\xcdZ\xbe\xfa\xbb~\xf1\xcd\x89\xcc\xb0\xf9\x8d\xe2\
+\x80\xde:SX\xa6.Y\x8bS\xdal\x91\xa8>\xce\
+C,\xd6\xb9\x0d\xabp\xb8\x0c@\x81\x88\x0cKw\xef\
+[\x87M:>\xea\x93\xd2\x16\xaf\x00\x1d=\x95\xde\xf4\
+\xa27\xff\xe4\xfd\x88\x85LuX\xc7\xf1\x89\xc1\xcaQ\
+/\xae\x96O\xdc\x16\xba!\x8d\xdf\x81]Lu`\x94\
+\xe2DJ\x8f \x06D\xc7c\xf0\xa2\xde\x87\xb5\x94/\
+\xce\xf6\x13%\xe05!C\xa7~\xce\x96\x03hj\x5c\
+J\x141\x119g\xcd\x85\xbf\xab\xc5\xf2C\x17\xa8\x1f\
+\xe1_|Y\x95~\xe9\xfd_?\xb2=\x16\x843\xf7\
+N\xd7\x7fVf\xfddL\xfa\xfe\xe2$!\x85\xcf\xd9\
+\x8e\xca\xe8\x9a\xed\xed)\xde\xab.\x88\xddB\xf2\xe8\x13\
+\xb1\xfeI\x87Q\xe2\xa4N\xa3e\x98\x99\xff\xb71\x00\
+\x86\x0b7p\x8f\x8a\x11u~\xbb\xe0\xfa\xfb^\x87\x88\
+\x17WWw\x9d\xc9\xff@\x85u\x15\x16\x84\xcb\xbb\xaa\
+\xc0\xfa\x8ba\xddF\x15p\x14\xdbs\xb8\x94\xbdt\x1f\
+1\xb6\xe0\xa4\x88\xe1m\xaeO\xef\xbc6\xfc\xb9\xffG\
+\xea\xb1{\x86\x12\xcbF\x11\xb5n\xe1xa\xea^=\
+\xf3w\xb9Z\x98j4\xf3w\x83\x15\xc5\x83\xdb\xa1\x12\
+\xf1I\x13\x8a\x9e\x1d\xff\x91\x06) X\xa5m\xd9\x9e\
+\x17#\xf6&Wo\x9f)\xb9\xc4\xdas\x0cW\x97\xa6\
+\x15\xac\xe40U\x16\x11\xaaq\xd0a\xc0\x92\x86\xf4\xcd\
+\x80HU\xfa\x96\xfa\xbfY\xa9\xc0B\xdc\xdb\x7fhH\
+%(\xf1\x02\x97\xb9_8*\xd9w\xba\xce\xde,\xc2\
+\xee\x06\xde\xa6\xb7\xd9b\x9fp\xa9\xca\xef\xea\x92\xe8 \
+\xb3\xb3|_\x0c\xe8\x9e\xca\xcd:9![\x88n\x96\
+2\x9b]\xf8\x18,\x1a\xce&ES\x94\x93f\x7f8\
+\x89\xab\x12Pa\xe0\xa3\x85\x96\xe1\xf4*\xf1\xf2&\xef\
+\x08\xf7\xdbh\xe4\x8cx?\xa6};\xfe~\xa5m6\
+\xa6\xe7\xc8\x07d i\x8e\x8d-\xa4\xc17\x83\x1b\xdd\
+\xea]U\xd4!-\xb0L\x0co\x7fK\xdf\xcc\xea\x13\
+\x0cX\xd15>[\x01\xca\xbb\x01\xb8^\xe4M\xa3,\
+5,\xeb\xb0\xb3NT2\xda\xd1\xc2\xf8\x91\xaf\xf1\xb2\
+7\x95!XQJj\x97$Xi\xb9\xa9p\xda$\
+\xe3QG\xb8e\x8a\xb0\xaf\x85F\xa0\x86u\xd3]c\
+\x81\x00N.i\x85\xb7m+\x83?q\xbe\x81\x81\xe6\
+\x10\xcc\xe1rj\xc2I|\x91\x0a\x9cQ\x12\xc8\xde'\
+4\x1f4\xc9\xdd\xe9\x85oR^\x5c2p\xbb\x98\xe5\
+\xab\x9c\x98fr\xfb$\xaa\xc5P'\x87-'c\x15\
+\xf8\xf97y\xab\xca\xd8)\x07\xa7P\xe1B36\xc0\
+\xfdJ\x7f0\xd3\xe2\x01\x87\xa0b\xfc\x85[\xe65\x1a\
+\x8c\xe9\xff\x93\xdb\xdb\xd0\x93\xca\xae\x93\xd6\xb5\xd2\x0a\xcb\
+Q*\x5cq\xe4_\xd5G\x93\x11\x1c\x9f\x94BS\x98\
+\x8e\x97>\x00\x91\xcc\xb5K\xca\xbdA\xc4\x0co\x04\x8a\
+\x81e\xdcp5b_L\xb5\xe3G\xe9\x89\xbb\xae/\
+\xfa\xf3\x91\x141\x80\xd5pZ\xc9A\xacfLZ\x91\
+&:\xd3\x8d\xd9\xe7,\xdb$\x1c\xd17\xa9Vi\xd9\
+;\xdb\x85\xd5\xb6\x9d\xed\x12\xe1\x95O\xfa\x16\xc6iV\
+iQ\x852z\xcd\xbbB{\xf6\xa9~\xcc^\xd8&\
+\xeaj\xee\xaa\x88\x9a\x5c\x82\xfeM\xdd\xfcue\xae\xe6\
+\xf1\xcag\x80n\xa8\xaf\xbdi\xb5G\xc5\x86\xf7_.\
+4\xf5\xc9\xfd\xdc\x16\xfa\xd1\x9a\xe2\x04\x0b\xabo\x91\x9b\
+\xb3\xd2\xb7#\x82\x086\xe0 \xebC\xc9\x84\xc9\x97\xdd\
+\x95~L\x5c<a[\xad\x009\xb6\xf8\xf7=\x97I\
+\xe2\xc5J)U\x90P\xbb\xe2\xf9\xdf\xe4\xfd\x13\xf1\xbd\
+N\xa2\xd1\xe9\x90\x84\xf9\xcbU\xf7&\xef\x89\xa0\xa9b\
+w\xb1\xeaiy~S\xdb<\xbd\x908_\xd35\x93\
+>ZT\xc9\xd2\xa9~~\x8e!\x89kY\xa6\xb3\xcb\
+\xd2\xf7\x00U|\xd1n\x89\x13v\x14\x85\xc8\x9b\x15\xee\
+*\xd9X\x7f\x0fR\xe1O\xc0*\x8f\x81\xf1\xa2\xb29\
+a!\x15\xfb\x04\x0d.\x06\xf9t\x96W\x80\x1b\x9cN\
+\xf5{b\x1fH\x1e\xc4\xc8\xcd\x0c{\xaf\xbb\x85V8\
+\x0f\x0b<@\x05\xde\xe6\xef\xe7\x17_\xe4\x1d\x91\xcfX\
+F\x8c\x089\x95\xb1U\x22\xde\xf7Ins\xe1SW\
+\xd1\xf3<\x94\x93\x0d\x8a\x0b\xa9t\x1am*\x87A\x87\
+36=r^\xb8q\xeb\xec\xb1\x1d\x9dI\x10\x83\xbf\
+\x05\x0d\xdb\xe6\xbet=\x22\xef\xebme\xe0\x0dWl\
+}%\xbe\xed\xb1\xb1\x9dW\xba\xd07-\x0a\x1a\xf7\xd3\
+9\x97\x91\x5c\xde\x9c0\xb8\xd07-H|Is^\
+e\xf2\xc0\xca\xcc\xb8\xad\x0c\xfc\xc4\xd0\xa5,UX\xcb\
+\xe7\x09\x1f\x9b+=\x7f\xb1Q\xaa*\x056\x0eR\x19\
+CWZ\x09dM\xdeb&\xc0J\xe69\x05d+\
+\x86ge\x04\xf8\xcf#\xc9\xdd\xc6\x1b\x5c\xf5\x94\xfd\xad\
+\x9c\xc97y\xcf\xcc\xcf-4\x87bO\x0fB\x8f\x5c\
+\x97\xe1A\xdeDq\x94X5TA\x0a\xf1%O\xe0\
+\xb62\xee\x9f\xc8\xcc\xcf\xb6v\xc0\x8c\xa2<N\xe2^\
+\xbc\xa8{\xd2\x1b\x04#\xb3u\x02 \xd6w\xc4\x95\xd6\
+\xa8R&\x1a\xb4f>q\x08\x92\xf6M\xabE<<\
+\x95\x09\x1dH\xaf\xeeP\xb4\xf6h3+\xd9\x85)\x93\
+\xdf\x16\x88\xd7\xc7\x13\x98\xc0\xe4\x1dy\xe3Q\xefpf\
+N\xcfd[\xd1\xdb\x03\xf1\x16\xabQ\xb0\xe1\xb1p\x9c\
+\x9fk\xcc\xdc\x95\xbe\x99:\xadBr6l\x96\x00l\
+\xb5\xa9\x90\xf8\xfe\xc7\x15\x89\xe7\xdc\x13\x01#,\xd3`\
+\xe48!\x1a\x9f\xa3\x96\x1c\x95\x1f\x0cMv\xeb\x13Z\
+y6\xc3Qq+\xadD1\x01'w\x1d\xc7\xd1\x8c\
+\xb2{0\x16\xfa\xa6)\x0f6\x83=F\xc7\x96\x93H\
+;w\xad\xbaO^z\xf8^\x9c\xdf\x99m\x92%\xa2\
+\xc4\x9e\xbf\xe8;\xb2\x1c\xa7\xb5.\x1a\xe9B\xa6\x0b\xf9\
+iQr\x94m$\x9be'\xa3=\xc9\xcd\xef?\xf2\
+\xe7\xef\xce/,\xc5I\x83o\xfa\xe6\x11\x7f\xe4\x09\xa8\
+J\xac\xf8\xc6\xccr\x01\x88\x8b\x0e2\x82L\xc3\xd6\x94\
+\xed.q\x94\xc2B2PV\x11\x09\x94.\x92WD\
+d\xec_\xe4M-K~]\xa5n\x84\xc9\xc9n\xde\
+me|\xee\x0d\xe1}a\x8c\xf8%\xef\x0c\xd5\x98\x85\
+VZ\x96,!g\x18\xed\x22\xf2\xf6\xb0\x9f5\xb2&\
+\x95\xb1\xbe\xd27\xd5\xccb\xeb\xa7<\xc5\x06\xef\x8d<\
+\xc8\x95\x9e\xf74\x8e\x22\xe5\xaaoY\x91Iiz\xfb\
+y\xe4Z&\xaf\x9c\xe2\x0bD\xcc\x83ov\x0b}O\
+\x1cc\x1b\xf5t\x95\x939M \xcbv\xe0\xd4+.\
+,\xf6\xd7V\x97\xfc3hq\xf1Q\x14\xf4\x16\x0c\x0d\
+\xde\xc7\xfd7=\xc2*\x98\xfb\xa2\xeeO \x95Up\
+\xdf<\x05\xd2\xc9\x0b\xb1\xaf\xa2\xe5\x03\x9bu\xd9\xd0\x15\
+\x0bD\x06\xfc\xc8p}\x93\x5c\xeb\xaei\x1aN\xa9\x1c\
+\xc8\x13N\xc4_i%\x11(\xbb\xd4\xfb\xa1\x04$\x9f\
+\xa77O\x83mL7\xd4\xcfH\xa3\x0d\x0c\xf2^\xed\
+\x11~\x11\xb7\xc1\xcf\xb7\x99Z:\x93\xc8\x9a\xd1\xf8_\
+\xe4\x1d\xf0\xfc%\xe0\xf2\x9d\xa0\x10\xfd/*\xe2\xfa\xd8\
+!\xc5\xc9F\xf6'G^\x96\xa7p!\x95\xd0\xa0\xa2\
+\xca\x91\x16\x16\x88\x13u\x02\xe6?H\xdd\x92\x99\xe1+\
+e\xe7\xb72P>E\x98\xe3\x17\xdb\x04L\x9e\xaf\x98\
+Y\xfbq\x09\x0c\xc8e\x22\xad\x9dBz\xe4&\xad\xbb\
+\x7f\x91\xe2\xcc*rx&k\xc5%\x0eM\x99\xeeW\
+Zs\xa2\xfabm\xd6\x01\xd0\xa9eg\x8d\x19\x0f\xe7\
+\xcd\xcc\xc4P\x89-b\x91a\xe9\xfc-\xb9)7G\
+\xce\x9e\xb8B:ql7\xee\xd3B\xeb\xf8\x8a\x92r\
+\x5c}\xc7e\x97\xf6\xeeKe\xd4\x9a\x89p\xb6\xa6\x88\
+\xba\xc8Z\x0dc\xf2\xae\xa0\x93\x95\xde\x94\xc5\xd4\xeb\xc4\
+\xf2\xc0q\x9bT\xa9\x5cg\xb7\xa5U\x0a\x9d0\x9f\x81\
+y\x92g\xa3\x95\x81\x17\xc5(\xa6\xd9~&\xe6D\xd8\
+I\xec!\x81,\xd8e\xff\xa6nAjhI\xdb\x1a\
+d\x83\xbcM\xe6TS.-\xc9#\x12:\xe4\xbd\x90\
+\xbed!\xb0\x05\xdcd\xdc\xdc?\xd1]\x9fWxj\
+\xc3\xac\xaf\x89\x0b\x0f\xbf}\x1b\x9b\x92H\xae\xee\xd8\x85\
+\xb8\x039\xa5\xddQ2\xd3\xf7\xc5\xf4\x05\xe3\xa7H\xbc\
+:\xbc\x99\x17\x18\xb8B\xfb\xcf\xa7\xf6(k\xbb4\xe3\
+\xd4tU\xb4bmMy\x0c\x17\x92\xcf\xf3\x8a\xc27\
+]\x86\x0c\x12\xe4\xfd\x8b\xba'p\x5c@\xee\xe5(\x08\
+}\x04\x00\xc2\x8b\x96\xa07l\xa4\x866\xd2\xcas\x0d\
+\xcc\xf5\x0f%\xad@\xd8\x8b\xa7\x152\xed\xc1-\x1b\xae\
+c\x0f\xc8\x92\xb0O\x85/\xd9\xf0&\xe1\xa7-\x067\
+]\xe8{\x9b\xd0\xec\xb8\xf3R\x83\xb3\x17\x22\xdbm\xb8\
+\xd2w\xc0\x09\xe4O\xe2\xbf\xb0\x1a\x8d\xf1g\xc6\xa4o\
+\x8e;G!;-]\xba\x14\x0ea\x9e\x13/\x92c\
+\xa4\x5c\xfdlL\x9f\xc8\xec\xcc9r\xd6\xdf\xb4\xaej\
+2`1\xd3\xf5rao\xe3\x0aY\xb7\xca\x13f\xc8\
+\x89\x9d\xd3\x04wY\x05\xb5\xf1t\xa17\xf7\x99\x0a}\
+2d\x87\x83$\xb2n\xf8\x0by\xab*WQJ\xc8\
+aT\x0d\x01f9\x8d\xdc\x8cI\x7fP\x17R(\xc6\
+v[\x07\xf6\xcb\x8b\xdc\xac\xc4\xea\x1e\x16 \xfa6#\
+(2`!oN\x0c=\x08\xba\x05j\x1au\xbbM\
+\xae\x8d\x85;\xfc9\xa5\x96\x17ob\x99K\xdf\x02N\
+y`\x8c\xcc\xf8\xa45q\x86\x1e\xa36\x11\x07\x1b\x1e\
+\x90Y\xe0M\xcb\xf2!?\x92\x13\xa8\xe5\xaa\xdb>?\
+\xb1\xef\xee\xf9\x93\xf8j\x97\xa5\xe7\xf4e\xf5,R|\
+\x9f\xa4\x10\x0f\xec\xba\xb2j\xef\xd4\xe44s\xb6\xdf\xb4\
+\xac\x13\xba>\xcb\x8e\xd5\x04y\x90\x22_\xb1i\xe6\x02\
+qGie4\xd8x`\xcf0z\xdb\x9a\xfa\xa67\
+k\xef]a\xb5j\x83\x9a\xe8;\xd3B\xde<\xff\xf8\
+\xb8\x0es\x1f~[\x16\xfcM\xd09\xe0q\x0c\x94\x91\
+\x1d\x8e2\xff\x9e\xe2\xae\xf0\xa6y\xf8^\xb6ZK\xe1\
+q\x87\xb0\x85C`=\xe9\x8f\x01\x0a\xa7\x02\xb7\xcc\x19\
+\xd8\xa8\x96'2\x11\xe5p+\xe7GE(\xa1\xc6\x9c\
+\x9a+]0\xfcu\x17?\x0a_\xa2i\xe5\xd4\xe9\x1e\
+*\xf5g\xd6l\xb6\xe2\xb1\xd0\xf3v\xe4\xe8\x93\xed\x03\
+\xc2\x12\xa8\x17\xdd\xda\xcf\xb4M\x86\x00\x09\xa1~6?\
+`7\xc5i3j0\xeeO\xb2\x7f\xe8\x0dq!\xd9\
+]he\xa1ovL\xdaJ\xf6%\xb2\xf9\x96\x7f\xc5\
+\xd5\xeaMki\xb1\xd0\x1cN\xacR&\xc2G\xdc\xc8\
+Mo\x8f+\xbae\xfd,\xd4c\x04*\xdb\xb0\x16R\
+\xa6\xbb\xe6U\xaa\xca4\x16q\xdeOo\x92\xaa\xe6O\
+T[\x0b\xfbz\x8e\x13\xe1MoV\x1c\x04\xebe\xd5\
+7@\xb6\x0eW\xf2Yh\xb5\x9f\x0d:\xd4\x80\xe6;\
+V@5G\xcaw\xd0\xf7\x17'\x07\x10n\x0d\x0d\xcd\
+R\xaf\xb6@@\x0cm#\xa0\xc20\x0a\x82\x0e\xf3\x12\
+\xb4\x99\xa3\xcc\xca=\xcd\xe8\xc1\xc5\xd8\x10-\x22\x9c\xca\
+9?\xaa\x1d\xf1\xc1M\xb0\x95\xab\xd8\xc8`\x17\x89\x05\
+\xe7\x9b\xdclx\xa7\x5c+\xc5\x9bDj}\x16P\x1d\
+\x1as\x08%E\xb7\x06;\x92J\x04\x07\x1bOc\x0b\
+u`\xfa\x89\xfe\x96\xbc\xbf\xff\xee\xc8\xb2b\xb3m\xb2\
+\x18-\xd3\xcd\xe4@\xa8\xf0d\xe6\x10\xec\xc5\x93\xb9\xd0\
+7\x85\xd9\xe1\x0b\xbd\xc4\x9f\xb5\x8d\x18\xb5\xdd\xe5r>\
+.\x0e\x9bf\xac\xc1\xe4\x09.m\xbf\xd3n\x04\xdd\x5c\
+}\xda\xf1\x5c\xa6\x8e\x84\xdeg\xa5D\x19\xebZ\x96\x80\
+7\xad\xc8\x0c\x81l; \xec\xfchi\xf4\x12/\xf4\
+'`\x04k\x12'\xf9)\x5cf\xbbqLny\xba\
+u>_p\x98<\xd3\xd8e#x\xfe[\x01\xe0\x81\
+\xaem\xd0\x14F\xa2\xb0\xa2Y\x0d:\xc8\xdb\xb8,\xc4\
+\xbe\x1d\x07\xaeCc\x0d\x84\x8dB+\x8b\xd3\x5c\xe0\xba\
+\xdf\x9e\xf4%D\x04\xde\xf6\xaa\xc0\x1a\x00&\x088e\
+\xe5D\x9c\x0f\xb6\xaa\xe2\x934\x0aG\x5c\xef\x8c'\xbd\
+M\xc4\xe8\xd4\xbc^\x22\xc4y\xa1\xef\xbfy\xe2p\x7f\
+}D\xa2\xe9r\xb7G%\xb3Y\x9ePW\x07\x98\xf3\
+\x89\xe1\xe9@\xde7y\x9b\xb1\xbd\xa0\xc6),l\x9a\
+]{\xc9\xf1\xfa\x1a\x8b\x7f\xa7,$\xb4\x7f\xe3\xc4$\
+\xd4\xdb!\x06\x90\xf0<Jc\x85[\x08\x06\x024\xf4\
+gUHY\xe5\x1fU#\x0f\x1cK\x8f2\x8e\x18\xbd\
+\x85\xbc\x81\xf0\xc6\x02\xbaH8DE\xe7\x8b\xc5\x11X\
+\x02\xae\xb0\xd2\xe5e\xc9\xe0C\xee\xcd\x81\x1b\xad\xf3\x9e\
+\x93\x90~\xb96\x9eu$\xd7\xfe\xa0\xdb%\xea\xdb4\
+-\x94\xc7CH\xd6c\xa7Y\xa6\x1a\xbfR\xbcj9\
+%\xab\x01f\x12\x85\x18\x9f\xbdF\xf8\xcb\xe6n\xbf\xba\
+\x89p\xe07\xf9\xeeu\xbf\x9e\xbd\xae)\xbb\x8f\x92\x7f\
+:\xa4\x1e\xbd&h{a\x1a \xc1{\xf6km\xfd\
+\xd2ku\xe8\x914s\x05\xa6\xe5\xe8[cM\xdf\xea\
+\xde\x89\x01\x08\xb3\xb3P\x9f`)\xcf g\x99h1\
+6\x89\xe7\xf6\xf9\xf9\xa9\x15\xf2\x81\xccT.6\x13z\
+\x1f\x7f\x87\xf5\xe6\xf8\x99\xbf&\xb9=\xdf\x1f\x0f\xf8\xfb\
+\xc7\xbbu\xef\xd6\xb3\xb3k\x87\xfe\xda\x9c\xe5\x93wc\
+\xec\xbd\xe9\xf0(_4\xb3\x9e\x81N\x19\xc1/o\xc6\
+\x06xmnN+=Q\x8du\x97\xa1M\x88l\xa0\
+\xa09_*\xf4\x22\x13\xe7\xf1#\x0cw\x92\xa5+\xca\
+\xdar{\x17:t\xc4\x86\x22\x14D\x91\xe8o\xfa\xfe\
+~B\xc5\xee6^\xe5\x14\xba\xeb\xfe\xa70\x9c\xc0\xcb\
+\xcd\x13\xe7\xf1\x04%R\x12\x8a\xd5\x8bT\x94\xee\xfb\x81\
+\xf0\x99X\x0d\xa4\xcf\xd7\xc3\x17\xe1\xe5o\x8e\xc3\xcde\
+\x80f\xf5X\x87]u{'\xde\xf4\xa9:\xd8\xb8n\
+Dep\x00s\x1b\xab\xf06c\x9b\x1c\x8dq\xf2\x12\
+\xb1M\xfb\xf1\xf8\x9ba\x03\x063\xe9\x88\x96\xae\x0b\xa1\
+\x8b\x8e\xdb\x0bk\xfc\xad\xdf+\x03\x09\xb3\xcc\x8ek\x84\
+\xd30\xf07\xfe\x8a\xeb\xc9\xfd3\xefb\x8a\xa6h\x0a\
+\xb6\x82!\x1e7\xb7\x85\xbcWFu\xc7Qqs\x08\
+\xb2\xf7\xb2\xc4Z^\x17.\x91\xbe,\xd4>E\x8c\x1c\
+a\x11K\xf6\xcf\xca8|\xb7\x92\xb3\xc3\x17\xd8\xf0\x8d\
+\xde\x0bc\xfb\xb1\xbd<\x1e\xb8\xe2\xe2\x1f\x1b\xc2\x93\xa7\
+U<\x97pxF#\xb8]+Z\x8b\xfc\xc9\x09!\
+\xe1\xb9\xf7\xc7\xd2\x15\xc8\xec\x0b\xc379=\xbd\xcd\x09\
+\x882\xaao\xba\x7f\x1c\xcd\x10\x84\xae\xb9\x9bf\xd9\xe1\
+7c\x8b\x85\xe4T4\xdd)S\x5c\x03\x9c\xd8\x9c\x0c\
+\xb3\xd6#\x92\x90S\xef\x9a\xca\xc4\x8c\xa3f\x1b\x9fn\
+\x02D\x8d\xf0\x04\xff8\xa2\x01&\x8c\xdb\xa9\xfc\x91`\
+4Ecl\xd1\x94\xd6\x0ct\x1f\xcay\x84\x0d\x19\xf9\
+Kz\x09\xae\xcfC?\x80\x98\xc7\xa2\x9a\x11ec\xdd\
+\xac+\x82\xd2=\x16\xce\x94we\xca\xf9\xb6+\x0d\x1b\
+\x9a\x93\xef\x16L\xa2Eq\x05\xedT\xea\xa2\xdf\xed\xba\
+\xdc1\xb5{[\xfa\xf5\xdd\xef\xf7\xb8,\xa3\xf6=\xaa\
+\xefA_f\xe4k\xbe\x9e\x93\xb9N\xf5\xd7Z(D\
+;\xe2Q\x90O\x9c1\xc0\x9bQ63\x9a\x09p\x0f\
+\xc6\x06\xbb\x18\xfb\x87\xde~l\xdb\xd0\x988\xf4c\x86\
+x\x9dD\xf4K\x866t\xa4\xb6--\xbeb\xa5n\
+\xe4\xd9\xfb\xc7\xc1\xde\xc9e\xc8c\x9e\x1dc\xe68\x9a\
+86}g\x8b\xa8\x87\xf9nc\xfe\xb6\xee\xb9\x8aP\
+\xcf\x98\x9dh\x8bC\x9a}oV\xbe\xd8\xa7\xe1\x11\xa3\
+\xd3\x1d\xe0\xad\x10\x9f\xf9\xe3\xdd`\x00Za\xcf\x05\xf3\
+7\x15\x93\x0c\xca$\xa9\xf8\xe7M\xda\xdb\x10\xa1y\x0a\
+-\xfa\x00J\xbf\xe8\x0dO7\xdd\xec\xa0\xcb\xda\xe4\x9e\
+]\x1f\xe1v#\xb3s\xa5B\xb7\xf6}N\xb5*\x8d\
+\x96\xbf}\x06$;A1*\x95\xda\xf6|\xba`u\
+\xf5p\x9f\xcdU\xc4u\x149\x9c]\xd5s7,\xa0\
+C\xe8k.(\x1fum\xd5\x91(\xf8\xed\xe0\xf7\x85\
+\xbc\x17\xc6\xf6cd\xd7\x1c\xe9{\xf6\x8a\xe2V\x1eI\
+>oN\xb7\x22\xd0\x9cV\xa6\x91\xd9\xf2\x04\x01\x9ey\
+T\xe6\x84M\xf9\x0c!\xed\x88\x8e>\xd3b\x85z\xc0\
+2\xec\x94\xb7\xfb\xa7\xec6%\xa9K\x92\x9f\x81_\xbe\
+0f\x8btHu_1\x9a\xf08)\xc7UlH\
+w\x0e[\x8f\xb2\xe2\x9bb.f\xf1\xcby/Tw\
+]\x874G\xe6\xc7\xa3\xc6\x16\xed[\xd3\x14\xa1\xb6\xb6\
+4W\x02\xd7\x8dt\x8a\x5c\x22\x22\xed\xcd\xe02\xebu\
+\x96\xdb:|\xa1\x8ejQ\x81\xe4\x9e\xe5p\x89\xe35\
+\xeb\xda1\xc9\x1a\xeblr\xb4w\x0e\x9b\xffu\x03\x04\
+\x14P\x8a\xab\xd8\x83p\x8eh\xde\xe7\x19\xcf[\xdd\x1e\
+Wn\x1e\xeb\xcf]\xf5\xa8\x02\x17\x96\x96=Y\xc3}\
+\xd1\x0eC\x8d@\xe8\x08j\x8c\xe8\xa6\x17\xbd\xe1\xb7\x92\
+\xa2\xdaS\x93\x8c\x89Y\x18\x11R\x7f*\x82\xe0H\xf3\
+\xa0\xad\x02\xe4\x8d\xbc\x81^\xdc\x16*#43\xbc\x08\
+\xf6p\xe9\xc7\xdf\x1c-\x8a\xe4\x88\x0b\xf8\x9f\x85>\xaa\
+\x0da\xd2U\xc3\x5c\x97C9\xb4\xb2\x9f\x03P\xf7\xf7\
+\xc2\xf91Fl\x1c8G~\xb8y\xa2u\x8e\x9c\x8f\
+o\xc9\x9a\xc4\x81\xc3Q5\xb3F\xdftU\xa2\x19\xc2\
+'\xf0\x9d\x1a\xf7\x86\xb0\x9d\xbe\x19\xdbO\xf5ez\xdf\
+c\xd2\x1c\xf4\xadYx\xd3Ua\xd78\xf4\x0c\xfc\x8e\
+\xefd\x9a\xbe\xdf\x8c\x1a\x9e*\x05\x9e\xd4\xcf\x00\xf1\xcc\
+{\xd3G\x9a\x05\xe0\x98\x8at\xd8\xc6]\xc2\x91\xb80\
+\x9c\xad\xcb\xb0\xd9ZB@aO\xeb\xf6b\xc6\x16\x9c\
+\xd3G\x9a\x0d,\xef\xa9\xa4\x98Y&\xfb\x85\xf6 \x87\
+\xae\xd5\xd4?\x04\x16!\xba\x19F\xd0H$rk\x17\
+\x22\x5c\x040\xc9\x1eN\x07\x0a{\xd6q\x80\xab\xbcH\
+\xa2\x13\x9a\x04\x1bL\xc8#\x84{\x02\x88\x19q\xae\x12\
+\xe3e\xc3\xbd\x7fY\xd4&Z\xc8;\x00O\x89V\x00\
+`\x16\x04\x02^\xfaH\xf1g\x87 ;DV\xf9\xd3\
+j\x12M\x5c\xa7A\xdb\xc6\x04l\x0a\xe2\xa5\x8c\xab\x9d\
+0\x92\x8cW\x88\x9b\x1d\xf5\x8e\x9d\x099p\x0d\xabf\
++Q\x95\x80\x9c\x81\x9b^\x17\xc4\x0a\x918\x10\xdf\xcc\
+zu\x1c\x8aCAuW\xc0,]\x0c\xf7R\xf5Y\
+]\x89\x180\x97\x99/f\xf4\xbc,\xf4<\xe7\x80\xb0\
+\xb2\xc0`\xc18\x03\x06<\xee,\x92p9\x19\x8c\xa4\
+\x907i!4\xe7p69\xd1>\x81\xb2\xd5\xf2f\
+\xa0\x85\xaa\xb4\xe5\x1aX\x11\xc4\xdeD\xb1$\x14?\x83\
+\xd9\xd11i@z\x01\xad\xb4\xe50\x850k\x8b\xd9\
+\xb30\xe5V\x19.\x9b\x83\xee\xba>z\x1a\xf5\x1b\xb0\
+\x97j\x16'\x15\x91\x99\xa9\xc6\x1b\xe4\xae,j\xd5i\
+,s\x01\xed\x91\xb3\x1b\xdd\xbc\x9d\xa4/\x96|9<\
+\x10\x06nD\xf8\x04\xa7\x03\xb9k\x84\xfd\xc0Q\x9e\xa4\
+\xa3\x12\x89l\x1ck@\xaa%\xa063\x9e\x81H\xa4\
+\x9e'\xa2\x5c1\xca\xeeP\xf4\xec\xeeb({>6\
++\xbd\x0a\xf1=\xd5\xaa\x9duy\xe1\xd4<h\x80\xdd\
+\xb5\xf7\x08\xe3\x96H+\x819`\xf8a\xe2\xad\x17\x8b\
+\x99g}\xa4\x09\xc3\x0e\x96\xa8F\xc8\x80\xc2\xb1\x831\
+F\x98C\xe0d!\xfc\xb3\xae%$\xd3A\x05a\x07\
+\xe6\x1a\xad\xae\xc4\xa1\xaf\xc6\xfai*\x1eLk\x8dR\
+\xc7J\x0e\xa7\x96>'[\x8fq{\xa0\x0f\xef\xb6m\
+a\x871O\xab\xcb:\xc4\x0d\x09\xa7(\xab\xb8\x9c\xbf\
+h\xde\x01\xe3\xf4\x03\xe1g\x05\x0e!B\xa5!z\xf9\
+wc\xe1;\xd7\xb23\x15\x8b\xa9\xe7\xbe<\x00\xbe\x08\
+c@\xb8\x22E\x0d\xe6k\xe6z\xc2\xdeCo\x0c\xa0\
+\xe9\x08\xf7Q\x89\xa3F\xdf\xdb\xee\x05S\x15\xee\x99S\
+\xc0\x22`\x0f\x13\x7f\x19\xd7\x15\x94eH\xf2?\x13\xa3\
+\x94k\xae\x8a\x815\xa7\xdd\xc4\x86\xc3\xe8t\x1c\x0f\xba\
+k\x8f\xc3\xa4\xafh\x88\xeao\x00bx\xe3\x12J\xb4\
+8\xe0\xde\xd2\xe4i\x03\xc4\xd1\xfb4\xa4\x8dw= \
+\x87\xbe\x80\x12p\xc00\xa2c\x9d\x09g\x08Ca\x10\
+D#\x0a&\x9fp\xfdz\xa2q\xe1\xefY'^W\
+\x8e\xee\x99U\xcb\x94U\x15p\x83\x80\xde\xdcu\x08\x02\
+\xa0\x09\xb4\xcfD\xc1A\x93q)x\x15G \xfcp\
+<\xa7O\xd4\x8b\xde\xf4wn\xa8\xeeR\xe9<\x08t\
+(\x02\xa2\x90\x182U\xf9\xec\xb5jJ\x14\x8b:\x93\
+\xb2\xf1\x04\xc3\xe5\x10\xcf\xea\x1b\xe9\xd1\x15\x9eZr#\
+\x8djz8\x12\xf7\xfd\xf0.%\xc2\xd38\x5c\x08\x1a\
+\x05\x88\xd1\xc4\x03\xf1\xda\xabZ\xd5\x80L\x95'\x0a\xc4\
+\xe9\xd3?\x1b\xca\xec4\xf4\x15r\x92\x0emQ\xfe \
+\xbb\x5c9\xf7 \xeb\x7f#\xb4\xba\x9f\xde\xa4\x87\xdei\
+\x1d*\xbb>\xd4\xd1\xe3'DOC(\x87\x9f .\
+X\xb6k=\x05>+N\xea\xf3\xf0O\x109\x83C\
+3\xe9\xb2\xccB\xf4\xc8\x06-\xa6\xd1\xeat\xd9\x0cN\
+N;\x14\xab_\x8d\x0d\xc2\x90\xb2\xe4\x19\xa4\xf5\xab\xe8\
+\x9c\x8dO\x10\xc1\x11\x03^\xb5\x8bx\x04\x22\x1a\x89x\
+&\xba\xf5~\x02\xe1\xd4\xee\xc4)\xcc\xd55\xfb(\x8c\
+!X\xd4\x04\x9e\x99\xcd\x08\xa8\xe0t\x06\x15\x86l\x05\
+\x032\x0b\x0e\xb5\x96\xfc\x13\xaf\xd4=\xf0\xf9)\x1ev\
+AN\xab\x94\x9f\xe2B*`e\xc1 \xe4!\xecg\
+\x96b:WY!\xc4Jn\xa9&5\xa3\xc7\xf2\xb8\
+\xc3\xf7\x0e\x9f\xb2\xd9\xe5\xbe\x0e\xa2\xd1\xad\x1bJ\xfbn\
+\xddd\xc0\x88\x1dj\x17%\xb2\xe0\xdd\xfe(\x9b\x07 \
+\x99I\x90m\x04\xc9<\x14\xb0M\xe4\xd4@\xa7\xdcg\
+\xf8\x22\x96Y\xf3\xbe#\x9e\xa8b4)\xb8t'\xc6\
+\x14D\x0a\x02h\x22\x96\xa2\xce\xd2\xa9\xf0P\xc2mA\
+\x11\xa9p\xe6\xe5\x19\xb3'\xac\xd7\xdc\x05\x93\x08F\x13\
+l5E\xe7X^\xf2\xf12h7\xc5\xed\x0f\x1c\xa0\
+cn\x98u\xc2\xfa\x0eM\xf7,\x0e\xea;\x14O\xc5\
+\xd0\xa1q>\x08#\xbc\x14!p\xa2(\xd8.\xb7/\
+\x07\xe5\x22\xe6\xd8\xc62\xab\x974\x821\x1e\xfe\x06\xd5\
+\x90\xccj\x82\xd4\xa5\xa1^\xe1b\xc5\x84\xaa$dR\
+\x0cM8\x88\xebN-EQ\xb0\xb0$5\x06\x9d\xa3\
+EQ\x17mj\xf4\x0c\xc4\xe5\x06\xecF\xfc<x\xee\
+\x96<\xb1Q\xa9]\x94Y\xcb\x06\x13\xc9j\xe0\x87\x5c\
+\xdeh\x19\xc0\xd7PR\xebT\x12\xaab\xb0\xcf\x80F\
+5\x22|\x09LW\xec\xcbS\xbf\xa0\xef\x1e\x07\x8e\x0a\
++\xda\xc9\x9d\x5c|\xbb\x1c\x025\xe7N\xd7'3\x83\
+\x89q\x1f:\xdc\xaa\xcb\xdf \xb2l\x11\xe2\xb2>q\
+\xa8\x18k{\xd3\x8e\x89xp\x8e\x88$\xdb\x0fU\xef\
+\x03\xa0{v\xd1\xb9\x89\x81\x80_\x10\x0b\x15s\x08\x87\
+\x0cT\xc9\xae\xd2\xf3\xca\xfa4*/k\xcd\x09\xde6\
+Y\xd5\xca\xc2\x03e\x0a*\x15\xbe&\xccC i\x08\
+\xde\xa38-4\x09Pt\x0cr=\x92\xf1S\x9b0\
+Bj94486r\x22X\xb5\x9aE\x85\x1b\xf7\
+\x99\xa4\xd1$./\xfa\xb3_\x1e\xcc\xaaz{%7\
+\x8fVh\xc7*\xb2\x92\x04\x1f\x9a\x1a\xc5\xcf\xbaW\x05\
+\xda\xba\xee_\x80\xb6\x16)+\x80\x04>\x8f\x00me\
+\xa6G\x970E`\x1a\xc6\x1f\xaa\x82\x82\xa1\xce]\xd1\
+wM\xca(\x82^ \x02\x19\x16y\xa9\xeeYb\x5c\
+\xcf\x87\x86\x1e\xfe\xfc\x89u\xae\x0bZg\xa2\xd9\xf7\xb0\
+\xb2\xd1\x1a3\xc1\x95\xdbNUQ\xf89\xb8\xd8S\x07\
+\x1a\x1c\xb8\xb9a\x09:\xd5,J%\x9a\xe4\xa5\xbf\x5c\
+:\xef\x11\xa1\xc7*\x16\x97\x848n\xa1\xf4\xfb\x81\x9e\
+\x1e-\xf5\xd4\xe1\xb9\xb83\x15i\xb0p\xdbg\x06\x07\
+\x1f\x1c\x9d\x9c\x08G\xbd[\x0b\xf8$\x06$-)\xc0\
+2s}@\xbc+@\x93\x13\x01\xfc\x97]\x89ku\
+\xa2dC63\x95\xad(X\x11\x1a)u\x9cS\xc9\
+\x07\xbc\xe7\xec%\x22c\x11\xe1\xe8\xc8\xd8v\xe9\x09\x9e\
+\x08\x8a\x9e\xde>\xf9\x0a{\x99\xfb\xafY\xb5\xaaB\xd7\
+\x1f\xeb\x04z+\xf1wp\x8a\xe0Ve\xfaJ\xd9\x0b\
+]\xe5\x12\x88\xda\xe9G\xaa%\x91\x7f\x22\xd9\x85B\x0c\
+Q\xa1\x8be\x1ev#\xce\xe7\xdd}E\xd0\xdf\xa1c\
+\x82]K\xbbuF^\xe0\x8bN\xe0\xd3\x17\xfa\x88>\
+\xcf\x08\x98\x00xOW\xd4uS\x98\x1c\xd2\x10\x98\xbd\
+\x91r\xe4j\x10n\x1fO\x5c\xf4\x08>c\xd7\xc7`\
+\xb2\x1a\x06\xa6\xa5\xd8\xfd\xe7\x9b\x12\xab\x14$\x1c\x82\x9b\
+\xfe\xae*\x03\x00)\xc7\xf1\x9c>\x13F\x04G\xfc\x02\
+\xa6,\xe0\x0f\xb9\x85\xa9\x07\x02y\xad\x92r\x5c_X\
+\x14\xbc\xd1\xed\x1c\x18\x16\x05T\xf0)\x0a\x1d( g\
+\xd7\xdfYk\x84\x80\x0f\x1a\x15\xe2\xc0\xef\xc6y\xfbH\
+I(\x18\x00\xe7\xdd\x0d\x1f\xde%R\xf6K\x05 @\
+\xef\x12r\xc2\xab%\xde\xf8\x94z\xcaw'v/B\
+\x81\xe4\xd8\x95\x18\xedQ\xb6\x02\xeb\xe2\xd0T\x01\xf6\x98\
+\x96\xa3K\x95\xa3\xa0\x8a3\x1d\xe4TQ\xb1\x00\xa7G\
+\xe1t\x9a\x05N\x9d\x84H\xab\xe9\x0a\xbe\x8b\xed\x14\x8a\
+\x0a\xaaS:\x09&b\x5c\xaf*;`=B\xf3\xd0\
+O\x8a\x03\xfcd\x05`vc?\xac\xfe(\xdb\xb1B\
+\x11\xc4:=\xb9\xa7}+\xad\xbc\xb7j\x9b\x13\x96\x98\
+\xc8Rz\xa4xe#\x12\x014!Nw\x81\xd2\xeb\
+\x17\xc4\xe9F\xc3yB\x03\x1f\xbdH\x99\xef\xf2\x026\
+\x0d\xe6\xcc\xe5\xa1\x22\x0f\xa9\xd88\x0e\xb2Cd\xc2=\
+;\xd6\x89Z;\xb3\xfa5\xba\xac&\x83\xb5\x8aU7\
+z\x83{.\xa1\xa9pY\xdd\x05\xccN\xfdWZE\
+\x00\xe3r\x0b\xc9[:\x94\xecM2\xe1\xaa\xf3h\xa2\
+1\xe3\x8c\xc3\xaauq.\xdcW\xb9O\xa5V\xe0l\
+E\xb3\x8a\xd4\x8a!\xca6\xcf \xa1\xd9!\xac\xaaf\
+\x90\x85\x16\x90\xfbw|\x92\x98r\x9e\xe7\xe1\xae\x95N\
+@\x0b\xa5\x9a\xd2\x8bM\xfbIQ\xac\xeba{\x88\x03\
+yp\x1e\xfb>\x91y\xb47w\xac\x08I\xf9:\x84\
+\xab\x9e\xeb\x04\xefD\xb4C\x91\x82\xd3\x09[\xeb\x22+\
+\x00\x84JEt{b\xc7\x91!\x85\x87\xb7\x1e\x98\x07\
+(\x1f\x11\x8a~\xd6`\x90\x8e\xe4\xaa\x0fG\xab\x02\x87\
+\x1cI\xe0\xba\xf2\x8d\x97hASBV\x15U\x06\xe6\
+\x85\xf9\xc2\xb9Y\x99B\xca\xab\xc0\xe5\xdc\x8f\x12>_\
+\xc6\x01C1@\xd2\xff\xd9\x5c\x13\xdc\xba\xc4nT\x13\
+Jy\xd6\xb1m\x96\x9c\xdc\xc7%s\x99@\xd4\x12\xda\
+\x1a\xaf\xa8\x0a&\xa0*1\xe8,74L\x06\xd5\x1c\
+\xe0\xf7\x22\xaa\xa8\x9d\x1f\xd4?DrT\xbdQ\xe5\x12\
+\x08\x1b\x0c\xed\x12\xe6O:\xd6\x88\x84\xa3f\x1dM!\
+\x08\xedp\x95\xe5\xaa\xe4\xb2\x83X6\x02\xf7\x12\xf07\
+\xef\x84\x00\xa0<D\xef,x\x8c\x13X\xe0N]\xb5\
+`\xd8\xf0CF\xc9]\xd0\x82Pqh\xcb\xcb\x1aM\
+\x87\xea\x01J\x95s~\xd9\xa4\x81\x9a\x1f\x1b\xe7\x9c\x1a\
+\x01}\x9c\xa7\x92\x92\xaf0PP\xfc\xa0\x90\xa6\x00\x81\
+dx\x1b\x8dQU\xb3\xcb+\xb92\xc5\x88\x18\xec\x87\
+/\xb6\x8c\xcc\x00\x02\x11\xabn\x13`5\xf3H\x06\x06\
+\x8dB \xbb\xb2\xef\xb2\x94dF7t\xd7\x1a?K\
+\xfe\xe4%\xe6\xfa\xc8T$\x0c<vS\xd1+;\xb2\
+\x8c\x81\x98\x98\xe4\xc2\x14\xc2\xe1\x07\x5c\x14\xe1\x1c\xde\x1c\
+\xb2\x8aV\x95\xef\xe0\x06T,{e*v\x0e$\xf9\
+n\xeba\x0e\x90\xf7\x13[V8\x89\x07]\x9f\x8a\x8b\
+\xe2\xed\xfcTO.\xdd\x91\xa0\x22\xd2f|i\xb7\xf0\
+\xa2,7m$\xc1:\x82\x07\xd07\x87\xcc\x0cE\x09\
+\x96\xd8\xb1\xb4B\x90\xa4\xca\x93\xa2\xb0\x12]\xb9\x06\xe2\
+\xdb\x85!\xbd7\xdbz\xb57\x92\x0c\x04)*\x0c\xa8\
+\x10\xc0%\xce%@\x9f\xb86\xbaP.\xd1\xe8\x84\xe4\
+\xb7\xf9\x17\x9d\x97q\x1eMTS\xfdM\x1a#QV\
+\xec\xd2\x1bte\xe5\x0f`\xe3\xc1)\xad\xcdF\xab\x1c\
+\x85*\xc3\xf4\x93\xf2\xe6\xf6S\xd5Y\x08\x85}\xa9\xae\
+\xe61!\xd7\x95\xc1A\xbc\xed(S\xb9O'Pb\
+\x9d\xa1*S;\xc2D\xfai\xd1\x12\xd0\xf3\x07\x8be\
+\xb0Z\xa3\x14\xdd.\xd8'*\x90W\x0dz{h\xd7\
+\xf1\x13\x94\xe3\x8a\xfdjU\x98\x1e\xce\xfeA\xa5\xe4F\
+1\xc2\x82\x95\xd6-&|\x97\x0e\xcf\xdd\x86\xe9\x84@\
+\x82\x92\xaa\x9eS\xf8@\xca\x9d\xa1\xb1\x13\x05|\xff\xe0\
+\x84\x9f\xccw\xdf\x857\xcf\xd1KBoT\xc9\x8e\xd0\
+\xe1\x99\xca\x043\x05\xa6\x8cRv\xb7 \xc8*\x06\x80\
+_\x5c5\x8e\xf5B}\x01o\x97\x92/%$\xfb'\
+m\xfa2l7\x82\xeeN\xc3\x84\xf4\x5cF\xb3\x1d2\
+A\xf3\xa8bP\xa2\xf5\xde\xc3\x97\x02\x8a\xc0]A\x81\
+\xc4<*\x92\xf5;o\x1e\xa18\xc1\xcb\xd5\xd4\xaa\xae\
+*HP\x80.\x01\xe9\xf3vF\xfc\xd1C\x22.\xc9\
+\xe1b+\x10\xa6\x8a\xa6\xf3\xa2\x00[\x84\xfd\x13\x01\x10\
+\xf0\x99|\xc5)I\xbbg\xc7\x07\x82C\xb4~\x08\xd8\
+,!\xa8\x853\x8e\xe9$\x9av\x13\x0d\xcdf\x99\xc6\
+\xea\x0dtxK@\x15'vA\xb7\x06-\x03e(\
+\xc6\x14\x9b\xbb\xea\xcaR\xbc\x14]\xc3ho\xed\xda#\
+\xcf\xab\x9d\xe0\xf1\xd7\xeb\xde\xb8\x02\xd6\xc0rTF\xd3\
+\x9f\x9f\x95C\xd0D\xa2\xc6\xbbm\xc5\xfb5\xa7\x0f\xf4\
+0\x03\xf8\xccI%\x8e\x98f\x5c\xe3P\x90\x8c\xc1\x1b\
+\x18\xe3\x01\xddj@\x0e\xda\x8d\x10u\x9a\x92rV'\
+t@\xda\xe5\x050\xf0\xe3\x832`\x5c<\xcaz\xd7\
+\x97\xb4\xb7\xc3\xe8\x98O\xce\xa35\x81\x1a\xdd\xe6\x8d$\
+\x80(\xdf\x1cc_j\xc2\x85\xf8\xd9\xe6\xe7\xef\x17\x05\
+\xf8P\x83\xb8\x0a\xf9yw\x1c\xe7\x84f\x0f\x90\x83\x09\
+\xeb*\xdc\x85\xc0DH\x86\x98\xa0\x89\xb1\x05\xea\xb5M\
+b\x84\xa33\x1ae\x90.D\xb1O\xc8\xe5\x1c94\
+F\x86tg\xb2\xd3\x9c\x007\x0d\xc7\x82\xc3+\x1eT\
+\x12:\x86/\x80M\x95\xc2\x9d\xd2\xe6IX8\xa9\xe4\
+\xb8\xe8\xd09f\xc4\x117\x86c\xef\x22\xd9Y\xe0@\
+\xc4\xf4T\xcc\x82\xf3\xb8\xbe9\x01\xe2\xc9tP\xfeU\
+\xf6B\x07\xcb\x89\x11t\x00\x0a\xce\x85T\x9c\xb3\x1e\x10\
+\x12Dl2\xee,\x850\xd66#\x14.\xc7\xf9O\
+z\xba\xe3\x16\x0e\xc2\xcc9\xe4F\xa1\xc07\x04C\x99\
+f\xfeDq\xa2\xefn\xd8\x1b\x8c\xcc\xe5+a\xff[\
+\xce\xac\x0d\x9b\x0c\xc2\x96Jd\x13\x1bmW\x9f\xb1o\
+2\xcdq\xa2n@\xac\xc67}\x07g\xfb<\x12\x09\
+\xeaI\xe0\x0b.\x8fn\xf2^\x19\xc9E\xedyc\x00\
+v\xe1\xc4\x04\xdf#\xf2`\xe5\x04\x0a\xa8w6A{\
+\xd8\xa6=\x16\xd8\x91\xa3M\xb3\x14\x81\xad_\xeeV\xb4\
+1\xcfP\xdf*\x0cpG\xbd\xfc~\x00\xaa\xee\xc6\xf8\
+vr@T\xd6^i%\x07\xac\xa7\xda8\xe9b\x0e\
+\xb2p\x7f\xfe\xfc\xac\x9c\x14\x06\xebI\xab\x7fy\xa2\x08\
+\x0a\x07E\x93\x1f\x10\xc2\xceL\x0f\x08a\xd5}\xff\xcc\
+\x9b\x9d\x06\x1e\xd5\xfb\xb3h\x95h\xbb}\xb7b\xa1\xd9\
+\x9f\xaf\xb6\x8f\xfe\xec\xfb\xb4$2\x88ma8\xcb\x18\
+C\xcf\x18\xfb0\xb5D\xea\x93E\xdd\x86\xe9\xc3~v\
+hw\xcc\xe6uN|e\x9e\xf2\x01\x98\xed\x15\x1c\xb7\
+d\xdc\x98\xf4\xef-2\xe1\x03\x1b{\xae\x8bh\x97\xe4\
+\x81c\xba\x9e\xd0\xde\xaeE\x93\xba\xcf\xff\xbd(\x95\xdc\
+c\xf8\xee\x17\xc7c\xed\xfb_\x9b\x0b\x95g\x978\xf8\
+\xf3\xb30\x1cz\x99\x9db\xda\x15\x15\x9ag&\xad\x0b\
+\x07\xb3>\xdexe\x97!\x8f\x18-C\xf5t\x94n\
+\x8e\x0a\x12p\x87\x9f\xa2aX\xb27/\x8eY\x91\xdb\
+\xa4#\xa4\x12Ne\x9c\xeb\xbf\x17\xdaY\x8a\xf9\x14\x82\
+\xb3c\x04\x22\x83\xef\xde~\x5c\x17\x969\xf6\x882u\
+h\xd8\xa95w:]0\x22\xc3fc9u*]\
+\xefwo\xd1\xcf<a\xd6\xe2\xd7:\xdf.gq\xfa\
+\xd5\xa1o\xb6\xc8\xa8\xfc\xb7\xef\x81\xfek\xeb\x0a\x8fn\
+\x8a\x0e\xfb\xf3\xf3\xa6\xddW\xe1\x1a8\xc2\x13\xb9|:\
+#\xde\x8c-\xc2I\xb3q;\x22h\xaeE^\xb8\xe3\
+i\x0e\xa5\xf8\xb5kF4\xa2\xefo\xd2\xf1\x92\xcf\x07\
+\x22\xc5\xf5P@\xa1\x01\x83Y^\x99+\xf7td\xb8\
+k\x9988~\xcb\xaeub:\xcfb(\x0b#2\
+n\x0f\xc6\xa5\xbd\x87\x01c\xb7\x0e\xd4#\xfe-\xbb\xa7\
+\xe9\x9a\x95\xae\x11J\x90\x94MN+n3\x5c\x1a\x8c\
+(\xb0\xd29`0}\x8aK\xa3\xc6\x00k\x5c]J\
+gB&)l\xc5\xd4{]iW\xa1\xeeM0b\
+hi7^(\xad\x93@\xea1nX:\x8bK\xf1\
+2\xe3}&\xff\x1d\x88\x15\xe0+i\x08d\xf2\xa9,\
+m\x04\xda\xc3\x9f\xe1WD\xf1C\x19\x02\x0f\xe4\xa6w\
+Y\xda`\x9d\xc7\xe8*\xa9$\xd3\x93\x0d\xba)~-\
+\x8a\xac\x9e\xd4\x90\xc1Q\xb5\xdfSa\x1d\xb0\x93A\x93\
+g3\x89\xc9\xda\xe8\x09\xf4OZ\x15\xc8(\x0a\x5c\x1d\
+\xba_\xc0\x88O/\x0a\xfa\xd1If\xd5\xab\xc4\x0f\x0a\
+\xb1|N\xc6\xdd(*VI\x22,M\x1a!\x93\xfb\
+\x19\xe6\xe5\x83\xe1'\xe40\xd1\x17\xbf8\x0f\xd2\xa3\x15\
+nV7\xa3\x05\xb4\xa3R\x11N\x15]<T\xc2.\
+\x07,\xa1\x13a\x8e\xd6\xe3\x03\xb0\xc2\xc3f|9\x13\
+\x98\x1b?\xe9\xf6f\x80\x8e\x1c\x0a\x0eQ\x0d\x99\xe4y\
+yI\xc0\xb0.\x88\x83\xb1\xae7,\x08&+\xef\x13\
+#$\x19\x1bu\xd7\xd0#7\x19\xf6BX\xaf\xb3B\
+]\x0f\xd7\xd1<\xe5\xe2\x00\x9c\xe5y\xaa\x18gc\x9d\
+X\x05K\xf0\x11X\x1e\x9b\x0f\x04\x18\xf1U\xb9\x0b{\
+\x98O\xa8P\x132uaB\xa2w\x04\xb6\x02\xacl\
+\x0edJ3\xed\xfadD\x18SI\xd9\x91\x8bA\x04\
+9)\x9a\x0b\xc7\x13\x0c\x89\x18\xab\x1e\x99\xdd'\xab\xd4\
+\xee}\x22\xb4(\x0a\xf2\xa4\xc5G@\x06\xca^-*\
+7\x0a\x8e\x0az*M\xfb\xa2}\x9a\x00\xaa\xf4W \
+\xcf\xb1\xc9>\xeb\x8a\x8d\x80\x10\xa9Z\x87\xd7\xa9C\xb2\
+*\x85\x16\xdekx\xe29\x1b\xf9WU\xc9W4\xbe\
+\x09@\x82\xdea\xb4)l\xab\xaeL{&\x1b\xcb\xe5\
+`DX\x02<\xa2\xbb\xc2+\x94~^\xff\xef\xce\xae\
+&\xc7y\x1dI\xeeu\x0a\x1dA\xfc\x11%m\xe7\x06\
+\x8d9\x82\x81\xc2,\xda\xf7\xdf\x8e\xe2'i\x91~\xe8\
+F\xd5\xe2\xe1}\xcc\xb2M\x8a\x92\xc8dfd\x84\xbe\
+Q<\xa8\xb3\xa9V\x05;\x8d\xbe\x02\xa0\x0d^0U\
+9\x9f\xa6.\x90x\xf9\xbc\x900\xf9\xf7\xb5\xb8\xfc,\
+9\xe8\xbfOm\xb3\xefU\x16\x15\x09P\xc2\x92o\x80\
+\xc2\x14\xc02\xe5=jU>\x8c6\x00\xfe\xb2L\xaa\
+\xf5\x05\xe6\xb0^Yf\xe1it\xd2\xac\xd2&t\xf9\
+\xf9\xf8\xc4\xc5S\xba\x7fa\xa1\x81E\x12\x9f^\xf0\x94\
+_\x12E\x93h\xf0\xbd\xf0%i\x1e^g\xd3\x13\xb9\
+\xb9\xf4a\xd3\x13X\xa0\xa2\xbd\xd0\x84\xbb\xcfZ\xf2\xa4\
+X$\x13u.YE\xfbC\x22K\xd8Z\xccj2\
+\xa9:\x17\xc6\xa5\x17\xc1\xa7\xae\xf3\xc42\xfd-\xe4\x96\
+.]\xab\xd0Ub\xf7\x89\xd2\x91\xa6\x12\x0c\x02\xedI\
+\x9c\x81\xf0&\x1eM\x18\x10CCMI\xd2\x0f\x1cM\
+8OA\xe48\x17\x9b\x86yx\xdb\xd3t&k\x86\
+N7\x917\xfb\xeb\xc6\xb2\xe8j\x8d\xff\x80<\xcd\x06\
+LK\xbe\xe4=\x1bP\x93W\x0d'Ev\xc7\xe7T\
+\x04\x10B\xa4\xcb\x9a4QCe.\xf5^?7\xb5\
+_\xdf\x9f0i\x14\xf3e\xa7\xdcz-#\xe13\xc5\
+y\x22\x18(\x83\x0a=\x9b\xcb*\xb98\x22u!\x1d\
+!\xf0\x97N\xba\xcc\x89F\x92\xc6\xcc\xd1\x04\xbb^\xd7\
+\x83\x949\x9dv?\x12\xcf\x9bA\x05\xa4\xe4\xcf2\xb5\
+_\xf3\x070=\x1as\xf4g\xde\xf1T\xbb$\x81N\
+\xb0\xd4\xefE\xbc\xe1p\xc9B\xe8\x9a\x98\x5c\x85\xebq\
+\x0e\xd5\xa4\xa7%\xceef\xa9YB\x83b\x8dz\xcd\
+~b\xdd\x1cv\x90\x1e<K\xf2\xf0}3|1\xa7\
+\xa1\x22\x09\x1d\x93\x97^o\x85\x8f\x84#\xa1\xf2k\xff\
+B\xf7\xd0k\xf0\x90\x1b\x82(24\xdf\xfb%\xce\xf9\
+\xcc\xf6\x88\xd8\xdf!\x9e`?\x9d\x1f\xaf\xb1I\x8f~\
+~\x22\x9f8ij_\xb9\xfe/\xf1q\x9d,<\x1f\
+5\xcd\xc9A\xda\xdbXFK`yeY\xba\x09\xcc\
+\xf8\x85\x0c\xabM\x01J(O\xc0\xd7`>\xb6yb\
+\x9f\x16*9eo\xb6(\xf1Eq\xfdvhs>\
+\x03\xceu\xeeJ\x96+D\x9c\xbd\xf1\x15\x0b\xd8\x16J\
+X\xe2\xf9\x08y\xd9\x22<@\x0e\xd4\x1f\xdc\xa8\xcd\x9d\
+d\xd1\x17n\xd7s\x17\xc3nc_\xe8\xba\xce\x0f\x9a\
+\x02\x07\xb3\xa2\x95\x98\xfc\xfb\x88\xb6\xd7\xdd\xd9\x96\x1d{\
+;\xa2\xe9\x84\xa4f\x02\x09\xf1\x89TE\xcf\xbb\xb3\xab\
+#D\x1c\xf1\x88\x01\x9f\xa3\x87\xeeb\xac\x00\x8b\xb66\
+\xae\xaas{ll\x87\xa7\xf7\x8az\xbd6\xdf\x9f\xe5\
+\xeb\x86\xe9P;\xdf\xd6\x7fX\xa7\x5cKy\x08\xf1\xfe\
+\xfe\xb2 V\xa8\xe2\x0d\xab\x078\xb2B\x04k\xf3J\
+\xc5E\xc1\x96\x08\xe8\x04a\xb0\x03\x0eQ$\xf6\x9a\x0d\
+!k\x17\xf5mKr\xe1\xcd\xa7\xe03\xf8\x0f\x82\xfe\
+\x97\x0a\xb3\xa5\xb3B\x05\xf9E\xeaH\x13V\xcf\xd9!\
+\xaeI\x11w:\x12\xd1\x0c2\xa2\x9e03ad/\
+Q\xbdD\xf3\x90.S\x9d&\xb1e\xf5\x82\x18\x89-\
+\xcb\xd1\xbf\xb8rF]]\x08\x22>\x0a\xe3^]r\
+f\x89\xca:\xb0\xa3Ky\xc3\xd3\xea\x15\x00\x10S\x7f\
+\xa5\x98\x81)n\xc4xc\x96\xaf;\xa5\xb7|\xbe\x9f\
+\xcf\xd7\xbc*\xcbJ1d\x16\xf9\xcf\x16\x8aU\xba.\
+\x82(Z\xfc]\xfb\xbe6q\x19\x96n!y\xb5\x0a\
+\xa9\x09$5\xb1`2\xef\xc1\xeb\xcb\x82\xbb\xad:I\
+8\x87\xad\xab\xe0\xa0-\xe0\xe9\xc6\xa2\x03\xa5\xbd\x84\xa6\
+D\x92\x96\x85\xac\xc8V\x1f\xf63\xf0V^\xc2Ig\
+QS!\x07}\xf8\xa6\x16\xb9\xa1[\xd5\x12\x95\x8f\x87\
+\x13\x19\xe2\x04\x92\x82W\x92\x83\x7f\x96\xf60 \x10\xb8\
+B\xd0X\xe4\xd8\xc2Nc\xa0p\x84\x830\xdfi\xe1\
+\x0d\xe2o\xe1C\xb8\xda<.\xba\xd1\xc9g\xc2\xf1\xa8\
+\xdaR\xe8\xc9\xc0ch\x0a\xa9\xf1\xcdd5I\x08\x06\
+\x86\xe3A\x86\xef\xe9\xc6\xa8\xbdtC0t\x8c\xf7\x13\
+A\xb8PD\x09Gt\xb6\xdc\x8f\xb7N\xa0!4\xd9\
+\x9f\xbcx\xa1\xb9;-\x8f7\xde\xe5\xf1(v\xc4;\
+2\xb5\xb5\xd4\xcc\xdd*\x1eX$\xfeyTG\x03?\
+m\x84S\xeb\xa7[\xf0\xa8\xef\xb9\xf7\xf9\x09\xe3\x11\x83\
+mM\xd3\xbe\x10\xf1\x15\x9d\xda\x11\xc6{vy\x0f\x22\
+\xab\xe0\xb7\xaa\xfe\xe7\xd1r \xb1_e\x8e\xd2\xe1\x1a\
+\x8b\x88c\xfb\xc1\xa2\x96\xc4\x18\xfey\x1f\x87\xa6\xde\xbe\
+ggw\xe7\xc1\x84\xee\x97\xfa\xbd\xce\x16DDC\xc0\
+F\xfbx\xf2\xb2\xd0+\x90\x18#\x95\xf2\x22\xe9\xf1\xcf\
+\xc7\xa0\xe6&\x07\xf1\xd5\xa9\x92Pra\xe4\xf2\xbf\xd7\
+\xd9\x02_\x90+d4\xc3\x07\xea\x92XA\xab\xe4\xcc\
+\x9dW\xf1\xa0\xb1\x98\x9a\x11#\x1e;\xc5@\x5c\xe0\xd9\
+\xcb\xceg\x0b\x16\xc6\xd3\xaf-3\xcb\xd5\xd4\x00\x91\x0c\
+\xab9\xe4l,T\xea\x90w_\xdc\xa7\xb6\x862w\
+\xfb\xc3\xdd\xb1\xf5\x15\xde>\xcf\xc3\x10\xc2=\xdeT\x22\
+qb\x0e\x90\x9e\x95p,H\x92\xa1}G\xfa\xfc3\
+6\xe2\xa1\xab\x9f%2Q.l|\xaf\x93!\x92A\
+q\x22\xe8\x0b\xfb\x15D\x11\x89\xd8\xec\x0f\x01~w\xf0\
+.\x138M\xedp\x02\x87^1\x90-\x0a\xc8}P\
+y\xb6\xe3!7IG\xc8\xccaI\x14\x80\x22\x07\x9d\
+\xe2aQ3\x8b\xe5\xc1\xc0I\x99\xda\x1a\xc5\xd8\xe5=\
+\x88]0\xcfd\xfa\xd1\xf7:[R\x84\xc9N\x97\x17\
+0\xa4U]^\xd7\xbc\xc5\xd6\xadio\xe2\xe6E\xa5\
+&9\x1a\x04\x03Lm\x0e\xe5\xabc\x0c\xe6\x22\x0a(\
+I\x0a\x92\x83\x19-\xd4^9\x85\x1e \xdc\xe9\xde\xfe\
+\x811W\xf5\xbb\xca\x96\xb2\xa2'\xd8\x02rO\xe5\xe8\
+T\xae\xb2\xa5\xb1\xad\xc1\xcc\x1dC\xa5\xfbd\xfc\x22\xee\
+\xe2{\x9d-x\xf5\xafl\xd4\x07\xcb\xf4\xb2\xc3\x17\x9b\
+\x85\xe4Y\xc1\xd08\x18A\xd8Y\xf1\xb4\x09\xed\xd0H\
+\xb05\xb6E\x975w\x8c\xda\xa0Ftr\x9cc\xde\
+\xebl\xe1\xdcV=\xfc\x1b\xe7Z\x01\x1a1\x8b\x84\xb3\
+\xdc\x189\x00\xc6\xa1f\x07\x00\xec\x94]\xf5\xab\xadz\
+\x89\xb9\xe3\x1f\xa6\xcf\x00u\xcb\xae\x00z\xaf\xb3\xc5\xe9\
+3\x01H\xa5\xa8|2\x14t\xf2\x0c\xf3\xa2.F\xdb\
+v\x85(7\xe9\x913\xfc\xe4\x8a\xab\xb1\xa9[4w\
+\x8a[\x94m\xcb\x8e:\xcf\x96$\xae\xe3L@\x8eJ\
+\xd28\x10\x9e\xbb\x9b\xcf\xa4\x1e\xc8\xa5\x8a\xb2\xe6S\xc9\
+%<\xc8\xd8\xd4\xfd\x99{\xfdY\xba\xeb\x0d0\xd6\x19\
+\xfe\xdd\xc7\x10+r\x92\x0e\xb7\xfd\xf0\xce\xd4\x81\x13\x1b\
+\xa3\xf1\x1f\xd7\xc0\xd4\x13&\xc3\x99\xdb\xdd\x09y\xf6\xf9\
+\x0f\xf5\xd8\xa7\x95\x94v%\x85\xdf\xb3\xc1\xe0/\xaa\xf0\
+\xf4\xfc\xc9\x1ea\x8a\xd1\xc0\x04\x8bR\x02\x87iV\xda\
+\x87R\xe1\xd5\xf3NN\x01\xcc=\x0dM\x11\xc3}\x8d\
+\xeeg9\x82oO\xb9\xfb\xf7:\x19\x22\xa7R\xb8\x17\
+XF9\xf7\x0a\x90\xd1\x00\xd6\x8d\xae\x8b\x16\xd5\xca\xde\
+V\xe3\x87\xacv9u35\x17\x8c\xf6kh_g\
+\xba\xf3\x88\x9a\x1f\xadh\xa7\x12\xbe\x0e\x0b\xfd;\xe6\xa0\
+X\x17\xe7\xcbp\x89Ht\xc9~\xd9\x82\x14\x22b\x09\
+c;\xc8\x9f\x9d\xce\x1f;\xe7\xf4N\xc3y\x12\x8b%\
+\x15\xcal\xa21{\x83H\xc8h\x0d\xb2Ql\xae\xee\
+\xba\xbb\xb8'\xe9r\xb9\x18\xa2\xf9|}\xb1)\x01\x11\
+H\xbe\xab\x93\xfc\x18\xc2]]\x0c\xbd#\xd3v\x0a\xcb\
+\xc1\xbd\xeaJ=\xc1\x8a:\xad\xbb\xe9\xd2\xa5\xbd\xa1\x91\
+\x8aP\xea\xe2\x15\xc6\x87\x09\x94\xe7q\x1b\xbf\xbc\x1b\x0f\
+wQ\xba\x99pc\xa1!Ip\xe6zb\xe4\x14\xae\
+\xa4j\x01\x00\x00\xc1\xdaQ\x04F\x068y\xf7\xa7U\
+[r\x8a2\xc3\x85\xbf\xac\xbd\xaf\xe0\x03\xdbX\xc7\x88\
+\xba_\xe6\x85\xc1jV\x01\x95D\x95\xd0\x1a\x12\x19\x88\
+\xce#\xa5L\xd4RN\x0a\x9f]\xcd\x95\x80\x89\xab\x08\
+\xf2Z\x87J\xa1\xf0\xec\x11\x11v\x86\x08\xf4\xa5[)\
+\xd4e\x0e\xde%b\xbb\xf1\xf9M\x1aT\xbb~m\xcf\
+\xfc\xf8)\xb01\xcb\x06\xef\xb7\x07O\xca\xa6K\xc3A\
+\x08\x8f\x80\xf2\xce\x89\xf7\x9e\xa3\x11L\x09S|\xff\xf5\
+\xc8*\xa1\xb9\xaf\x80N\xd3\xce\x1cv\xdb\x8eE\x17\x1a\
+\xa8%\x84D\x18\x09T\xa9A6K\xdc\xa5\xbb\xafC\
+\x16\x0c\xa7*B\x91\x06\xbb\xc4\xe0\xba\xb0\x8dyB[\
+\x09t\x1e\x97p:Te\xe0\x959\x8b\xc5`z\xc0\
+\xd2\xf8\xf0f\xe2.b\x1e\xcb\xb5/\x06\xd3\xf1\xca\x88\
+\x0aJ\xfar\xebX2\x85\xa5:\xb0\x0e^\xe6J\x82\
+b\x81\x12\xc9\xfd\xd7p\x1c]\x84\x1f\xd4$\xaa(\xfb\
+\xfe\xd8=~\xdc\x02C\x9c\x82)P\xa5\xc7:\xd30\
+\x09XI}\x8bg\x8d\xc02\xe5\xbd\x81t#\x18_\
+\xe8\xa3\x5c\xe3~&\xb6\xaf{\xe6\xd1Dn\xe7R\x85\
+>R\x8eH\xab\x5c\x02\x1a\xbf\xd6\xe5r\x88\x18\xe4\xef\
+\xb7\x85\x97)8\x91\xef'\x8aE\xd0\xc4\xaf\xf5\xc7+\
+38\x925K\xa7\x98\xc5O\x0a\x9e\x03s\xcce\x83\
+@H\xa4M\xb3\x0a\x98\xa9q\xdeXu\xc1\xfa\xa0\xca\
+[\xc0\xd4\xf0\x15EW\x9d&\x10\x89\xcd\x83/\x86\x80\
+\x81J\x83a\x8c\xc6;6\x16\x8ap\x8ed\x80G\x88\
+\x97\xd0\xec\xc6H\xb4\x01\xdfD\xd0:@\x82\x97?/\
+\xc4ia)\xe1\xa5\x93\x16\xc1\x8bZ\x0e\xb4Z\xec,\
+#\xe3\x0a\xb0\x13\xa4\x890\xe0=U`\xceT9\x06\
+\x1f\xafq\xe9b\xde~^\xcd~\x16\xc9s\x05]\xf2\
+{\x1d\xdbg\x80\xcd\xb4U]\xdb\xa4\x01dJ~\xa5\
+\x94\x96\x8e\x1c\xb8\x14W\x0b\x0e\xb6+\xb6\xef\x10-\xf1\
+\xcf\x9d!\xf8M\x9e\x94\xa1E\xa6\x9d\xf1\xcf\xa1\x1f\x0e\
+\xc7 \xf8\x0a\xfb@zWJQ_\x22-\xb9\xac|\
+\xd6\xc7\x1dG\xf7\xd3\xb4<6\x18\xa8m%\xa3h\xba\
+\xe3\xd7\xa7m\x8a\xaa3w\x98\x1b6\x81\xa9\xf9\xfa\xfa\
+\xbb%\x897y\x03f\x7f\xd8\x8e\x90\x1a\x18-\xeb\x19\
+\xb2\xf4\xfe\xf6pC\xb8]M\xb7\xec\x81 \xd8BI\
+\x18`\x91\xff,%l\xe2\xb1\xa4\x17\xf0\xbd\x8em$\
+\x9bH\xcc\xb83Z\xdd|PC)V\xd0l=\x0c\
+\x0bQ\x14\xf0\xe8\x91\x05\xb9\xaf\xd5\xa2oI\x19\xddW\
+\xbc\x87\x88\x05\xc00\xf5\xf5l-\xb1#\x0f\x83\xfb\x9f\
+\xf5_\xffp\x91\xff\xe9\xea.\xc2\xc3\xf1\x0b\x88s\xbf\
+\xd7\xc9\x80\xa8\xfc&\xdaHQ\xbc\xd0\xe9D\xed\x18\xdd\
+\xe8\xd1\xb0\xac\xe2\xc2\x10-\xe5\xbd\x8c!2\xc8\xe6\xc1\
+\x887W5\x8a\x1d\xa3\x1e\xee\x9e\x86\xb9\xb3\xa1\xe9+\
+\x9c\x07\xf8\xebK\xbcT\xa8\xcfI\x0a\xcf\xe4\xd3\x06\xac\
+\x88\xc1\x18\x95j4VA\x13\xa9\x961\xe0\xa1\xbd\x90\
+\xc9/KX\x10\xe7O,<`\xbe`5,W\x9a\
+K\x07\x9e,2\x9a\xb1\xab\xa1\xa5\xab\x9b\xc7\xf6\xfb\x8b\
+K:!\xa2\xba\xf5\xc2\xf4L\x06WE\xf0\xf2\xee\x83\
+\x13\x0e\x94\xa7\xe4/\xb1\x83\xbf\xc2\xb0\x84\x05\xd5&8\
+/\xa1\xd4\x1f;w\xe6\x06\x88\x0bL\x97/\x10\x15\x0b\
+\xb8@\x0a6\x8e\xbd\xa9\xb9\xf4\xb6\xd7\xd2q\x84\xbf\xbe\
+F\x86\xa4\x91kg\x18\x84\xdc?\x83\x81\x81\x03\x1c\x12\
+ss\x04\xa0\x10\xd6OE\xea\xd3\x99#bE\x10\x03\
+\xe1\xb6\x875\x01\x97\x81\xfdx\x13\xb7F\x22i\x8c\xc2\
+\xca\xa3\x85\xb9\xf4\xc2/\x1f\xadE\xefKt\xcf\xa3\xd3\
+<\xc4?\x5c\xa4\x9f%^\x84\x18\x8eF\x0b#\xf9\xbb\
+p\xd8\xa0|\xe01\x0d\x87a\x10\x93\x15e\xc8\x00w\
+852ba6\x87\xd8SfT\x801@$\xf4\
+R\xf6\xfa4[\x98\xa6\xb5\x9a\xf7\xbd\xc5/_\xa3\xd0\
+\xd5\xcec\xfd\xfd\xe5\x02x\x87\x1a\x1b\x81\xb6\xdf\xebd\
+@\xe8\xe0$\xe8\xfc$\xe7\x12\xdbX\x19\x11\xdb\x15i\
+\x08\xd6\x94E\xa1]'\x82P\x0f\xc9W33\xc8\x88\
+\xb24\x5cW\x11\xb9\xc0dA\x18\x0bNL\x22\x94\xb2\
+.\xf3\x08\x14\xac\x98F\xf9\x87\xebl\xac\xc7A\x10p\
+K\xd9q\x96\xa7E \x89\x8bm\x9cy\xd8n\x8a\x12\
+n\xc1H\xd4.K\xdeF~\x05\xd5eIt9\x94\
+\xd1\xc8\xda\x83\x90\xa5}}YX\x87\xc6\x08\x1e\xdc\x5c\
+^\xea8\x86\x08\xcc\x8c#\xc5\xc5\xceI\xc6=$O\
+\x02H;\x1a\xbaN|3\xb0z\xb7\xe8{\xc4\x92e\
+X\xba%\x05\xda\xc6\x8aC\xc9\x9a\x12\x1f\x02\xba\xd9\x92\
+L,\x98\xach\xc4\xcc\xdcq\xad\x1f\xb2Obp\xd2\
+\xf1I\x93\x5cA+\xcbX\xc9\x15\xc8\x9c\x9e\xd1\x0bM\
+8\xbe\xe8\x8aW;\x9eGf\x8c\x90u?\xbbTF\
+(\xd5X\xbf#\x9a\xeeo\xc9\xae\xb3\x1b\x04\xee\x22Y\
+bQ\xf7d-@\xc1S\x86\x0b6\x13e\xa2\xfe\xe0\
+\x229\xd6\xeb1\xa7\x81el\x1dk\xed\x1c\xa5\xef\xc1\
+tK\xdc\x5c\xdcV\xeck\xba\x8d\x8f\x93|6\x014\
+\x82\x8e\x97\xc8K&\x0bq\x83\x87b\x8c\x92\x11\x0c<\
+B\xd4?\xd8\xb2t\x13\xab\x95\x19nrR6\xe4o\
+\x03\xf03\x19B\x0d1\xb8\x97S0\xa7\xb6\xa0\x02\x9d\
+-\xc1\xe6\x8f\xd9Q.\xe1\x8c'\xcfA\xf6z\xf6'\
+O\xc9\x85\xec'\xef\x93\xf6\xe0$\xf6*\x81\xd1@\xbe\
+\xacS\xa4W'\x9f[\xc2\xdbS\x87\xfb\xa6\xe0\xcb\xb5\
+%\x85\x0aq\x90|\x9e\x91\x9d\xcb\xf12X\x96\xf8\xb0\
+\x9aD\x7fP\x1d\xb4\xbbgm\x0d\x1d\xdd\xc7\x83$&\
+\xda\xbc\x05\xc1\xab\xe1\x91\xe3]\x92\x7f\xf1}3\x15\xe4\
+\xc4\xf1KR\x0b\xbb\x83\x9cO\x0b\xae\xa0\x9e\xe2\xf0B\
+\xc14q6M\x93i\xd4\x83TVD\x0a\xc6B\xe2\
+f\xcf\x02$\xb6G\xf9jG\x9cs\xec\x18\xa1\xdf&\
+\xec\x18~\xf0R\x84~\xb4\x10C\x80u\x89\x90^%\
+\xe4\x99\xb3m\x82h\xbc\x14\x0d\xe6\xfb\xdb\x5c5\x89\x0c\
+C\xd6-cu\xdb\xd4\xd6+0w\xac\xdc\x9a\xde\xb4\
+\x12\x83\x99,T_`\x18\xb8\xa8\x10\x99\x8a\xcfI\x97\
+\xeb\xc1l\xe2\xa6\xc2\xbb\xc5\xba9@c\xf8`f\xb2\
+E\xcc\xed\xc8\xaf\x8d\x1dc0\x22\x02$+\xdb\xae\x14\
+\xffhA\x907\x1f\x1a\x0c(\x1c\x90o+~b\xcd\
+\x99\x149~jL\x9c\xfc\x85\xcao$\x95\xd1Nm\
+\x8de\xee\xf7g\x11\xe1V\xe2k\xe9\x89\x99,B\x11\
+\xe8\xc5\xbdh\xbf\xe4\x10\x01\x8cj\xc4\xd9i\xe7\x90\x91\
+R\x81\xff\xe8\x84\x81\xa9\xb8}\xb7\xb5)\xcd\x1d\xff,\
+Bf\x08]\x98K\xb6?\xf8\xb40\xa7\xe5\xdah>\
+2$\x8cKJ\xc5j\xc9G\x0e\x8b\x8b+X\xbd\x0e\
+\xf9x\xa8\xf7\xc3GT\x1f>\xb6\xc3\xc9\x1b;\x06-\
+\x0c\xae\x9b=\x89)f2\xb0v\xd3`Jf\xb2X\
+\xdb\xa9k=T\x01\x89\xe2D\xf2\xa2U`k\xd7(\
+\xb7\x95\x92J\xf9j\xab:q\xea\x15\x03\x01\x1a\xc3\xa8\
+\x03\x22\x19g\x8b\xf4\xb3\xb4k=\xd5n\xb8\xc20N\
+BX\x9ch\x11\x0f\xa2\x91\x03a\x85\x8fdV\x13\x8f\
+m\x8de\xeeX\xa9.\x94q2[\xb2E\xaa\xebi\
+!\xd3\x5c\x15\x19x>E(K\x9f\x1b\xca4*\x88\
+:\xc8\xf6\xb4\xc85\xd8\xc4SF/\x86jL\xfbW\
+;R]c\xc7\xfft\xe8\xffO\xfe\x1a\x22k8\xae\
+\xd4B\xd4\xfc{\x9d-L\x06c1\xac\x85\xb89\xb5\
+\xb3\xb2\xd9b\xdb\x94e\xd1\x0bK\xe5!{\xea\x05\x10\
+QQ\xcc\xe0\xbcR\xb6\xf0M'\x8b\xb0y\x82R\x1c\
+\x08\xa9\xce\x83\xd0\xc4\xcfC\xa5\xc3\xd6!B\x96*2\
+\xbe\xf2=\x1b\x08\xbcs\xc9-\xf7\x8f,\xcd\xfb\xa0\xe7\
+u{\xb1!\x17\xa1\xa6N\xed\x9e\xa4\x0f\xabf\x91\xd4\
+\x9e?Y\xc8\x97\x8cuN\x05\x1e\xe0T\xda\xb3\x1f\xf3\
+3\x18\xce\xe8\xe9{<\xf1y\x933\xf6\xf1\x9d!\x03\
+7\x18\xc4&\x13\xfa\x7f\xa2\xd6\x12\xee$\xf8\xd3\xc76\
+\x19\xab>l\xecl\x17o\x9f\x97T|\xed\xba\x1a\xbc\
+FP`\x0e\xb4Bx\x8d\x91\xa3{\xc9Y\xbc\xc4\x1d\
+\xcc'\x9a\xd3\xbb\xf4\xf9\x9d\xa6[wl\xba%\xbf}\
+8\x03\xe5\x9bw\xc7{fK2?3\xe6\x96\xc7\xa7\
+\xd08\xc2\xc1\x97\xbbSHI\xee<V\x81AM\xa2\
+[\x1b\xc3\xe6\xd9\x1aH\x10V\xea\x15,\x0fC\xce\x1b\
+?\xcb\xdcvT,F\xe7\xdaV\xe7!\xfe\xfe\xc8\x14\
+l\xded\xea\xe2UN\x96.\x99D\x9a\xc4\xea}\xff\
+4\xcd\xf1*\x94!\xce9\xf8B\xcbR{cm\x07\
+\xc2\x16Y\x82\xa8\xc8\x90\xaa\x82\xe6\xd1b-\xd7%\xb2\
+\xef\xfd\xcc\xd1\xf3\xd2\xbb\xd6\x223\x0f\xf0\x0f\xc7\xc2\xc0\
+6\x9f\xec\xe7\xbd\xce\x96\xce\xe8J|\xacw@5\x8f\
+3\xa8K54\xd2U\x88\x8e\xf1T<C\xa4#\xae\
+\xb7\x02\xb8\x85\xc1\xc5\xd9\x82BKA\xb0\x11\x1e1\xdb\
+\xe4s\x0c\xda\x81\xe7\x91\xfe\xe9\xac\xaf\x9f\xa8\x9cd\x1d\
+\xf6\x9f\x96\xd4%\x1c\x8b\x1e\xe3C\xa0\xe9\x14COg\
+\xdc\x07\x90\x82\x9d\xb9\x0b6\xd2\x85\xbe\xae\x8f\x86*\xb1\
+\xc0\x92\xfb\x1c-9\x90\xa68>\x8b[s\x1cD\x1c\
+\xf8\xc7\xa1\xfe\xfej\xb1h\x00c}\x0a(\x17\x0dA\
+x\xb9\x8e\xd2\xef\x8c\x82o\x10\xd2\x9c\xdc\xf0,\xcb\x0d\
+\xcb\x99\x97N.\x80\xdc3\x9f\x08W\xf7\xaaD(\x85\
+\xaf\xf9\xb0t\x9d/\x12\x1a\x96G\xef\xd6M{\x0e\xed\
+\xf7\x17\x96k\x1fO\x0e\x0c\xde`a\x84\xcc\xfd\x9f\x8f\
+\x8a\xfa\xc2\xe7k\x15\xd0\x89`\xdeR\xb9\xdc\x04\xe0^\
+\xe4\x92\x9fRm\x96Z\xb9\x14b\xb4D\xdd:5\x05\
+\x89%\x9c\xc6`\xf0\xde4\xd2\xdf_l\xf2z\xef\xc9\
+\x7f\xaf\xb3%y\x03!\xad%^\xd0dQ\x81\x12/\
+(\x09\xa8\x8e\xc5|\xe9\xb9\x17\xae\x13L@\x0a\x03\x03\
+\x1e8[\xaf\xa9\x1d\xe5\xd0\xa4\xd1\xcc)\xfa_\xfa\x00\
+\x84\x10\x9c\x87\xf9\xfb+\x85\xa2\x8c\xd1\xf4\xa0\xe2\xd0\x09\
+\xeci!v\xbf\x89b\x0c%Y\xd8\xd1y\x8e\xbbT\
+\x15&0\x7f\xda\x9b$\xa0\xe8\x040\x0d\xebC6\xf7\
+\x0f\x12Z\x13[*\x12\xbd\xd1@\x10N\x12\x92\xb3\xb0\
+\xa0~\x1cB\x9c\xd8\xc6\x81\xfeak\x91\xa0\x18\x91\xc2\
+\x07\xef\xeada4\xe0\x14\x1e]\x81\xac][\xce\xa5\
+0\xe3\x8b\x1e*o+\x5c\xf9@\xaf\xf0e;\xd4<\
+)\x9a\x87wqc4yhS\xcf\xe3\x10\x12w\xe3\
+\x06\xc3\xfe\x97>\x00m0\xf30\x7f\x7f\xa5\x00\x95l\
+\x82I\x02\xef\xa0\xa3\xec\xd3\x826\xb7\xf4M:z\x00\
+27\x97\x96*\x99\x81\x09?\x85\xc7\xd6JDT\x1b\
+\xe2\x13{\xd1I\x82\xa4\xd9\x8e\xf2\x9dA\xb5\xf2\xb4\xd0\
+\x1f?Th#\xd0\xf34\x8a8\xfd\x8ec\xfd\xcb\xa2\
+\xcbbN\xc0\xb0\x14\xd2\x18\x0dx\x99T\xf9\x91Y\xc3\
+\x99\xb8$\xc9\x9dK\x86\xc3'\x9c\x1cT\xbb\x99\x08\x80\
+?I\x14J\x01iD\x13\xe9\x97\xaeR\xd0\x89k}\
+\x18\xa8c$\xd2g\x5c\xcc<\xa4\xc04\x0f\xa3\xfc\xc3\
+mM\xbd\xc2\x091\xc2\xf7:[\xd0N\x0c\xf5\x1fD\
+M\xe0\x0dl\x9b\xeal\x93\xa1r8\x8a\x12\xa1&\xc1\
+:\xbaSI\xd0A\x9fg\xf8d6\x22!__\x16\
+\x1c\xbc\x88\x99\x84Z\x0f\x9f\x8fi\x0c\xba\xa9\xf3H\xff\
+\xb0\xe1\x1c\xbc\x13,b;\xb82M\x16& Lu\
+\xc9\x15\x09JA\x9bx?\x93\x1c\x07R\xda\xbah\x88\
+\x91\xb0*\xc6H\xc6\x08\x8ab\x04\xa0\x96cUH\xae\
+\xce,<-x\x0d\x98N\x82T\x12\x81\xa0\xd3(\xb4\
+\xe5\xccc\xfd\xc3\xe5Z\x05\x00\x98\xda\x8b\x01\x9f\xc9\x92\
+\xc8\x82(\xa1we\xe1\x92\xaa\x95\xf2\x16~\x12\xc8\x02\
+\xb9I\x80m\x177\x95\x12\xa9\x89\x0fkV\xb4+U\
+%\xc0Z\xbe\x1c\xc9{Zpb\xe0\xbc o\xc7\x03\
+\xdb4\x08]\xed<\xd4?%F\x9a\x85\xeaZs^\
+\xe4a\x08e\x06\xf2\x07\x1e\x8a\xa7\xe7\xa6j\x91\xac\xd2\
+\x0c\xb8\x80)\x0b~J1{\x0bJ\x10\xfch%\x0f\
+\x9e\xa2A\xa7\xc0\x0ds\xb6\x80T\x82\xa9\xb4J\x84\xec\
+2\x0f\x22\xf2\x22\xc3@\xff\xf0\xd2\x86\x10\x95\xb0I\xef\
+u\xb6\xa4PJ\xae\xba\xf6\x80\xec\xd78X\xf9\x5c\xb7\
+Xl%\xad\xbd\xc0\xb3:9\x18b,\x8d\xcf\xbb\x8f\
+zOKz\xa8J'\xfa\xbf\xd3 \xf4\xd6\xceC\xfd\
+\x83?a_\xbe\x02\x03@wb0\xa0)\x1d\xae\xa2\
+P\xaa\x92\x17\xf8\xeb\xf6\x14\xc4]\xfal\x1c\xbbg\xc3\
+\x97z\xd8%<\x8ep\x12'Kd\x0f\xd0\xc5\xc9x\
+\xd68\x04y\x13\xd30\xff\xe0L\xc8]\xab\x85\x0e\xfd\
+{\x9d\x0c\xc9je\x90\xfe}\x96\xe4\xd6\xec\xe3F\xcf\
+!\xf4\xa98-\xca\xed\xd9\x8f\xcc\x13\xf8C6'V\
+FK\xe4\x8a\xf0\xa3;\x0f\x0d\xe3\x18B-y\x18\xe7\
+\x1f\xae\xf4\xb2(\xb3jx\xdf\xebl\x91\xee\xb1d\x8f\
+\x93\x0e\xaf\xa4(p\x01\x87K\xbb\xf6\x22\x9d\xeb\x88\xbb\
+H\xac\xfb\xfa\x08\x16\x91\xb6\xe1\xb0\xa35[XqU\
+$6\x9d\x1b39\xe3 t\xb1\xf3P\xfft\x5c%\
+\xaf\xb7\x8b\xa3t\x5c}ZT+M\xb91\xae\x1e\x88\
+\x86\xc2?.\xe2\xe0W\x22\xfe %H9\xac\xf3\xa4\
+\xe0\x18\x86\x85\x82S\xbcf`\xc85\x8d\xc2\xeb\xcbB\
+\x06E \xfc\x0aW\xac\xe5k\x0cqZ\x1dG\xfa\x87\
+\xb5\xc9Bv\xf9\xe2\x8e\xf9^g\x0b\xda]\x85o+\
+\x9fbt\xb8\xeaZi*\xd1o\x0bM\x976N\xbe\
+\xb0\xe0\xeb\xff\x04\xe6p\xae\xd9?q95I\xd3\xc9\
+Kp\xbeH\xbd/\xbd{\xadJ\xf3 \xff\xe0 \xc6\
+\xb91s\xd4\xefu\xb6\xb0`\x92#\xd9t:\xebg\
+\xd3\xe4W)I\xd4k\xe9g\xf6\xa8J\x88\xf3\x5c\x94\
+\xb4\xb7\xcd\x07\xba\xd1\xd0\x8f\xeb8\xd9A?s\x1e\x82\
+|\xc4y\xa0\x7f\x80\x924\xbfZ\x95\xe7\xb5\xf7:[\
+\xa4)\xe9StQ\x15.p\xb0<k\xb6(\x8a\xad\
+|\x80Ew\x8d\xb8\x13R\x82x\x1e1\x1bdOA\
+\x94\x14dCI<\x12\xa3\x85y\x81\xdd\x01\x07\x15\xf3\
+\x8c\x83PJe\x1e\xea\xef\xaf\xf6\xb2(d\xe6\xa6\xff\
+^'\x03\xcbM%&\xc1\x0aK\x9ePt\x13\x0eU\
+\x1b]\xac\x02\xd7m%3>\xe8\xc6\xb6\xc3'\xef\x9d\
+\x0b\x10\x98\x81\xc9\xe9\xb1\xbe\xa66I\x1a\xd8\x9f8O\
+\xd5\xfd\xd2\xfb\x0f6\xc9a\x8c\xbf\xbeJ\x84\xa1\xf9N\
+\xe5\xd3?1[x:\x97\xea\x05a\xc6\x9b\xe4\xcc\xf8\
+\xda\x8a\xf6G\x07=\xbd\xa6\xbc\xce\x22Q\x87x\xc2)\
+\xc0\xd3\xb2+0\xe0.\x8d\x06\x96\xe6\x17E\xeauT\
+\x9a\x86\xa0\x8c\xf3<\xd01+\x91\x04\x089zVb\
+4\x98\xcf2J7\x89`\xd9\xafOQd\xa7\x95c\
+\xc2\xa8\x0a\xceS\x9dU'\x8eoh*F2u\x89\
+\x82\xc1f\xf0@vZ|\xb6D\xe9!\xc1\x16b\x8a\
+x\x02.\xb46(\xb1z\xd4NA\xc8\x9c\xef97\
+\xf5Z\xcf=\xa2^\xcf\xc8\x16\xf7\xf1^gK\xd0%\
+FN%\xb8\xed\x18\xf0\xf6\xf9&/\x1d\xe9\x11\xf5\xfc\
+\xcd\x8c\x99S[\x9e\xfb\xdc\xe7\xcf\xb2K\xe8\x8bJ6\
+<~O\x06$p\x9c\x81=(F|h\x87?\xe9\
+4\xee\xd5\x89<()\x9dT\x0dd\xd9X\x08J\x8e\
+M\xca>\xce\xfd\xddC\x10\xfb/\xb3\xa4\x85C\x18\x0d\
+$\xbeQ\x81\x13(\xc3\xc1PF\x19\xac\xd3\x9a\x1d\x08\
+\x0d\xdd\x87\x98\x05;3(r9(\x9d\x10r\x9eZ\
+\x1c\xc2\xdc\xdf\xcf\xc2\x0c\x87x'.\x8ej2\xdc\xa3\
+\xf6i\x1f5\x0a\xbbx\x7f\xc9\x8e-\xb5\xc8\x8dr:\
+\x0cT#cW\xc5F\x15\xc42S\x13c\xf8\xea\xf0\
+\x9b\xd2!\x09\x11\x8d\xc0\xa0\xea\x99fKR\xcc\xbf7\
+7W\x85\xe5\xfe|l\x87\x9fT\x9bB\x90;)i\
+fv\xf6\x94\x82\xe2n2\x98_\x10\x1f'n'9\
+\xe9\x10=\xea\x05\x9b\x87\xa9$=h\x90Q\x1d\x9f\x9b\
+s\xf4\xe0\xe2\xa8\xd2\xa5b\xb3R\x14],\xe3\xf4Q\
+\xd1j\x87\x93kX\x821Ib\xf3\xde\x09@EH\
+<\xd8\xa1\xef\xff\xdf\x7fu]\xe4\xa9\xfay\xeay&\
+\x01\x02\xd2\x8e\xc7B\x84@8\xefP{7\xea\x16\x91\
+\xa9\xdd\xc5%F\xb1\xb5{\x85\xe4\x81\xa0\x09\xa7p\xdf\
+I<\xf5:!\x1fR\xda\x80D\xabP=\xd4\xd5\xdb\
+\x8d5\xa0v\xdb\x89gl\x8bS) \xd0\x18\x09\xab\
+(\x05\x10G3\x89\xef\xbd\xfa\xd3\x9dM\x9d\xecK8\
+\xe0Q\xcc1s\x8d\xbdO\x80\xac\x00\x1d\xa71P\x08\
+\xc3\xcc\x02\x9eAtv\x05~\xe208\x03\xf5\x0b\xb5\
+\x92\xd9\x8e\x9av\xf7Gk\x11\xf0\x09\xd8\x83{M\xbd\
+\x8f\x0c\xd6Hl\x8c\x14\xe1\x5c\x22\xb2\x80\x93 f\x9c\
+\x17\x92\x89\x81.\xfeX\xb1\x16\xe1A\x1e\x87\x1a0'\
+\xf1\xcb\x83\xf5 Y\x92\xbb\xe8N\x8a\xf1\x1e\x10\x8e\x83\
+\xaa\xb4\xe6\xc8\xb8\xcftU\x84w\x846\xdeC\x86@\
+h\x0be\xb7{\xad\xc6\xf9\x97\x08\x91J\xd074h\
+\xb3E\xda\xf0\xa0\xed]\xc3\x18P\xaa\xcc\x1fo\xa6\xca\
+@,\x03\x0a\xcf\x97\xbe\x8e\xfa\x9c\xdaX%\xf2\xa2\xa1\
+\xc2-\xafF\x10\x10x\x85Vv\xeb3\x8b\xf2\xaf\xc7\
+y\x15(\x87\xcf\xca\xc6\xb2+ar\x1a\xdbU\xd1n\
+\xc4P\x80\xae#5D&G\xd5.\x11\xbf\x97hd\
+\xf1h%\x95,\xb2 >\xe3\xd6\x9ft\xb4\x0bQ\x02\
+{1\x16\x87\x89\xfd{.\x11\x91\xc1\xf8 \x86|\x9f\
+%\xc0?\xb2+\xd0\x07:B(\xdan\xe2o\xae\x92\
+5Gtv;\xd4\xc4;\x91\xc8\xfbG.\x88\x9d\x83\
+\xdb\x83\x1b\x02X\x8e]\xca\x1alB(\x0c\xa1\x08L\
+\x1e\xcee\x17\x17\xaej\xd2\xdc\x8bg\xbb\xea\x95\xa0\x80\
+,\x9fS\xcd\x8dIj5\xf5\xb0R\x13\x0d(x\xa8\
+\x16\x99\xc3\xc7Q\x96wQ\x10\x0e,J\xa8\xc8\xb9\x82\
+\xa0\xa1\x08\xd4U7VR\x91\xd8\xa2\xf2\xd7\x89\xb2\xc2\
+\x95#\xd9\x03\xe8\x94\x08\xd0)\x0c\xcd\x05\x83h3<\
+\xcbE\xeb\x01\xa9s\x87\xbb\x14\xa8\xa6\xe1\xc6a\xfbU\
+\xf9\xc9\xde+\xa0\xb3\x22%{\x10d7F\x9ePL\
+z)\x99\x85\x02\x81.8\x00~\xd9\xfbZ\x16\x00\x0e\
+U^\x0f\x0f\x96|k\xa7\x90\xe6\xf7l\xb7\xec\xc2B\
+.\x8e\xf7\x1fX\x18^\xb9\x1c\xc3=C_Ix\xfa\
+\x8c\xd2\xb2}\xef\xfc\xd7*)\xe2\xbaR\xe9\x17\x81U\
+\x08\x0b\xe0\xd9\xd8\xe4K\x19\xc5\xfbI\xdb:\xb2\xef\x98\
+\xbf\x9c\x84@\xd9-\xd20^\xaa\x1c\x81\xe9\xea\xc1q\
+\x91\xf8\x80\x91BN)\xaf\xc4^\xda\xa6\xda\xf8\xa4\xda\
+Ix\x1b\xa7\xf6\x1e\x00\xf3Z\x0a9\x0c\xf8^X\x1a\
+[\xd6\xcaa\x7f\xb1\x95O\xf3^\x03\x9a\xb9\xb8\xa2\xb9\
+\xb3\xc6\x10M\xdcr\xa4>\xa0\x07\x08\x921\x9c\xb5\xf0\
+gj\x03\x11\xa1~_b\x13\x17\x0c;;\xf9cE\
+\x1fG\xbd#0\x82|y\x13e\x93x\xbb\xf8\x04Q\
+\xf6\x0eC\x93\xbf\x06\xdf\xfa\xe2\x92\xaf\x91\xa3.\xf5^\
+\xd2\xb0\x05\xe0M\xdb\x8eX\xa5)\xf9\x8aP\xfa\xc9&\
+\x98\xa9\xb4\xa9\x12p\x88\xaar\xa4R\x80\xb2\xdc\xf9\xe0\
+\x90\x81~\x93\x90\x0e\xf8B\xa5\xc8\x81\xb2\xf5\xfb\xf1D\
+w\x1c\xecF\xc2\xdc\xdd\x82\x0b\x9a\xf6%\xe6][\xea\
+t+H\x7f\xa2\xa5\xb3R\xceU4\x13\x005\xd4]\
+\x83\xc8\x8d_A\x94,\xa9\x89\x07\xac\x8a\xac\xd4\xcf+\
+*!\xf1R\xb5\xcb\x8f7\x1d\x13\xd6N\x90\x22\xa3J\
+\x16\xc6\x81\xe4\xc27\x10\x88O\x91\x9bp\xa9$t/\
+'\x85\x99\x11e\xb9\x9c\xeb\xc4\xd7\xa1\x04\xa5J\x09D\
+l\xaa\xc4\xe3\xa6\x91G\x86v\xb8\x18\xf9\xe4\x85\xb7\xc0\
+\xb4&ElUp\xfd\xe0\xd2\x14U\xa8\x82th\x97\
+\x8b}\x8f\x1e\xc8OIm \x9fv\xe1\xc3\x09Z\x97\
+h\x02d\x89\x0c\x05\xee`a\xa8\x18\xd3\x99J\xace\
+\x17\x9e\x5c\x12PT\xe9\x0a\xd2%n\xca\xa0$>\x98\
+\x96\xdd\x01a\xd7=\x87\x08\xd7\x01o\x85\xc5\x0b\xa2\xf3\
+\x95\x84\xab\xfcm\xdc\xaa.\x83\x80\x98O\xe6\xd7w\xf1\
+0\xddn\x0f\x16\x09L\x18\x10]\xf7#\x82\xae\xe4\x8b\
+\xa0\x8d\xdf.\xd4Q#\xe0k\xe7P\xa4\x1f \x11]\
+4\xcf\x80\x08\xe8\xcf\x99\x1bb\x91\x9b\xd4\xccET\xa8\
+\xc5\x0aw_\xea\x0aE\x1b\x08\xd0\x9d><T^5\
+A\xbeH\xd2\xdf\x13\x8e?b\xca^b\xf5\xd9\xf8\x01\
+\xb1\xa6$\xbd\xbe\x9b\x97\xf8\xa4\xbfnt\xc1_<^\
+\xf01?\x85\x0d\xcc\x86T\x92\xd4V\xcb'\x82R\xfb\
+\xf6 \xe1\x81+T/\xf7\xbf1\xcd\xb2[\xceS\xa4\
+\xfa\xf4\xb2\xe8f\x90j\x055u\xc86\xab{x\x06\
+~\xfb\x19\x81Ak?BW!K\x92<t\x17\x90\
+\xf5\x0051\xce$hs1\xed\xba\x0ad\x1c\xd2\xe7\
+\xb3\xe7\x02\x8f\xcfNRL\xcc\x1b\xfd\x8cX.m\xe0\
+\xf2|\x19\xbc\x01\xf7\x1f\x83\x85\xfb]T<\x85+O\
+\xc1x\x948r\xb2\x95\x94Jo\x15\x14\x96{\xc0<\
+\x16>\xab\xda\x1a\xca\xce\x0au>\xfa\xba\xe9\xd8\xcc\xc8\
+g[\xd6\xf1\xbd\x88\xb3\xe4\xf3M\x81\xb7\xcd\xfeR\x8d\
+\xd3\xec\xd0&\x01\x17\xcb\xe5\xcd\xec\xa8\x92\x0bl\xf8\x86\
+\xa1?\x0dJlS\x19\xd1\xdf\xc6\xe97\xdc\xd5O#\
+\xb9v\xd4\xc4\xe3\xae\x80\xcd]^\xe1\x8c\xa0`\xf3\x07\
+\x9c\x7fkVgy\x8eP~\xedx\x0d\xd2/\xa6\x87\
+\xedR\x93g\x93N+\xe9\x16\xba\xd03KI\xe3\x88\
+7\x1a\x14+V\x14Sq\x85\xa6\xce:G\xe7\xd0\xa6\
+\xcb\x0a\x98\x98\xdc\xb8G\xbf\xc6\xd1\x8c\x03\xfbay\x02\
+\xc3h!N?\xb4\xfd\xe3\x96\xe3d\xfd\x01j\x85\x83\
+\xa3\xeb\xd9\xd6Y\x9e)\xcd\xa0\x9f+\xcfi{\xcd\x86\
+(\x83\xb0\xc6\xe9\xd0\xb1\x07;\x8dM\x98{\xcc]\xad\
+\x01,\x1f\x0d1\x84\x22\xfa\xa2\xdd\x0c{gpb\xda\
+\xb0\xc4\xe5\x99\xf5/\x8b\xe4\xba+\x1f\xf4gf4$\
+\xd3<\x17\x95\xc3\xa8\xeb%\xfa\x0e\xa0\xc70\xbe\x9f\xa5\
+3\x9b\x9d\xf1\x84\x8f\x06\x87f\xf1\x88\xf3\xd4\x1aZ\x09\
+\x115r{\x91\x81\xb8\xdc\x83\x0fG\xd0\xa6Q\xce\xa1\
+\xbf\x90\xa3\x01\xd0\x0dD]\xaa\x9f5\xf1\xfd-\xf8\xba\
+\xb9,\xcd\x00h\x03q\xf9$\xe9\xef\xc2\x19|5\xce\
+x\xdfF\x03\x99\x8b\x84\xf4\xd1\xe7\x9d\xfdK\xfdY\x1e\
+\x0d!FQ?\xda\x15\x9f\x99\xf0=\x9f\xa7Klr\
+X_k\x14n\x0d\xedX\xf1J6/\x9cX\xae:\
+?\xd6\xa7\xb9p\xa5\xe6\xfd\xb6\xc6K\xc8q|\xf8n\
+\x07\x03V+\xce\x9e\x8f\x8b\xcf~\x03\x966\x0eML\
+VLs\x91[ELV\x9fv\x87w\x99\xd7JI\
+\xb3RL\xe7\xf8l\x8bZ\xd1\xddK\xa7\x82\x1cd%\
+\xea\xe1\xc76X\xdf\x0a\xd9m\xd3a2\x7f\xafO\xcb\
+d1\xb8k\xa5\x0c\xde8\xbc\xe0\xc5z^\xc0O\x08\
+\xf5\xe4\xcbW\xf4l&k{\xd6\xe2 \x0b\xd1\x8f\xb5\
+k\x89<\xdbK'\x96\xab\xe6wK\xf2?j\xf7?\
+F\x83CD\x14\xf8\xeb\x01\x22Il,v}?\x96\
+\x90\xf0Y\x19\xcc\xce\xe30\xe5\x98\x0e\x97\xa1CCc\
+\xf0\xc0n\xdb\xd0\x8eyh&t\xb3ZE\xe7\xea|\
+\xb6\x17\x97f\xc2\xe7\xe4\xf9k\xf8\xa5\xf0\x8a\x9f}\xfd\
+,\x16\xee\xd8#\xb4;\xb6\xf1\xf3xS\x9afy\xd3\
+\x0e\xd4,\x99=\xb4\x97\x98\xa7Ch\xf8\xb4iO\xfc\
+\xd4\x9b\x8d\x86\xe4b\xacf\x96_\xebr\xecY[\xe8\
+k\xb2\xf4\xcf\x9b\x99h\x1c'\xcb\xa4\xa7+\xf9YJ\
+\xd3{\xd4#\xb5\x93\xa1\xec\xa4\x15\xd2?3J\xefU\
+\xa8\xf2h\x94f\x88\xf6\xae\xe7\xdbmD\x08\xf4\xaeN\
+\x86\xe2\xddd\xbf\xdc\x1c:\xbc\xdf\x82\xff\xfb\x1e\x15\x06\
+z\xae,\xad\xc4\x10\xfd\xcf\xe25\x8b\xdaD\xa5\xea\x05\
+\x07\x8c\x0c\x9d>\x9b\xc5\x1b\xb3\xb4F\x96O;\xf5!\
+\x0e\x86rl\x90\x8e\xb8>]a\xf6\x1eC\xb8\xc7\xe3\
+\x92J$\xcbU\x042[\xca!\xc8\xe1\xae\x1f\xb4\xec\
+\x80G\xf7l\xdf\xe39.\xd3'z\x8aN/\xc6\x97\
+\xd4\x87\xc6v9\xb7O'c\xa7Z\xeb\xbe\xc7\x86\xf1\
+:\xad\x5c4\xed\xf7x\x0dC'zg\x83*\xd2l\
+)AZ[\xb4\xf1\x97k\x93\x9b\x1b\xef\xca\xf7\x8fF\
+\x8d'Y/\xfe\x0b\xe9\x05\xc2t\xf4*6\xc3\xa0Q\
+\x04B^\xaf\xcaT\xd1\xbf\xd7\xff]\xff\xf5\x9f~\x00\
+Z_\xf7d \xbc\xc6\xc5.\x1aX_\xb89 P\
+\xef\x885\xe9{\xa4\xb6y\x0f\xfd\xbf\xfdp\xde\xfc\x85\
+\xea\x1f\x1f\x0d\x09H\xf8\xc3\xa9kGI\xca\x19\x90\x8b\
+\xff\xf6\xe3~\xb8\x0b\x89\x18\x931\x1dOK\xf8[\x85\
+\x81|\xd5S\xf0\xcf\xcf\x1e\xfe\xb5\xfc?\x80\xc7\x05\xe8\
+\x0aendstream \x0aendo\
+bj\x0a\x0a15 0 obj\x0a[/I\
+ndexed /DeviceRG\
+B 255 16 0 R]\x0aen\
+dobj\x0a\x0a16 0 obj\x0a\x0a\
+<<\x0a/Filter /Flat\
+eDecode\x0a/Length \
+336\x0a>>\x0astream\x0aH\x89\
+\xb4R[\x95BA\x0c\xab\x05,`\xa1\x16\xb0\x80\x85\
+X\xb8\x16\xb0\x10\x0bX\xc0B,`\x01\x0b\xd9d<\
+l\xffz\xa6M\xf3\x98\x99\xd4\xce`\x863\x9aq\xbb\
+\xddY\xccrV\xb3\xee#v\x80\x01\x07\x1a\xb8\xb3\xdc\
+!\x86\x1cj\xe8\xaejG\x18q\xa4\x91\x834\xde1\
+\xc6\x1ck\xec\x02\x17:XY\xce\xb4{\xa7\x85]\xee\
+j\xd7=\x9b\x0eXp\xa1\x85\xcb\x22\x8f\xc4\x92K-\
+]R\x99\x15V\x5ci\xe5p\xcc\xea\x1ak\xae\xb5v\
+)WCH\x87eh\xb9\x0az)\xd0\xc1\xca\xb2+\
+\xa8}\x8a\x80\x00W_\xce\xa6#A\x81\xae\xdc\xb0\xc8\
+\xa3\x08\x09r\xd4\x87Tfa\xc2\x82]3jV\xb6\
+cG\xf4\xbb\xdeTR\xc0B:,]\xabz8\xd8\
+\x81\x0e\x96\xeb\x5c\x9f\xd3\xa7D\xbaFF_\xce\xa6\x93\
+(\xc7\xd7\xc8\x0d\x8b<\xd2\xa2]\x9b\x9b\x0a:[\xa3\
+]\xd7\xeb\x1d\xbaZ;\xdc\x10\xaa\x10E*i7\x93\
+\xf2@\x81\x0b\xedF\xd4i\xf4N\xcbI,FF_\
+\xce\xa6\x93\xed\xf3\x1b|\xf2\xf6I\xd4'3\x9fT|\
+|\xf7q\xd6\xc7;\x1fw|\xf4\xfb(\xf4\xd1\xe0\xc3\
+\xd2\x87\x87\xcf%\x1f,\x9fi\x9f\xfev\xbb\xdd\xef\xf7\
+\xc7\xe3\xf1|>\xaf\xebz\xbd^\xef\xf7\xfb\xf3\xf9|\
+\xbf\xdf\xdf\xef\xe7\x7f\xab\xbf\x01\x00\x10q\xabc\x0ae\
+ndstream \x0aendobj\
+\x0a\x0a6 0 obj\x0a[/ICCB\
+ased 8 0 R]\x0aendo\
+bj\x0a\x0a7 0 obj\x0a\x0a<<\x0a\
+/Subtype /Type1\x0a\
+/FirstChar 32\x0a/F\
+ontDescriptor 10\
+ 0 R\x0a/BaseFont /\
+ZSHTRV+NuevaStd-\
+Cond\x0a/Type /Font\
+\x0a/Encoding /MacR\
+omanEncoding\x0a/La\
+stChar 121\x0a/Widt\
+hs [129 0 0 0 0 \
+0 0 0 0 0 0 0 0 \
+0 141 0 0 0 0 0 \
+0 0 0 0 0 0 0 0 \
+0 0 0 0 0 0 418 \
+0 0 0 0 0 0 218 \
+0 0 0 0 0 0 0 0 \
+0 340 387 0 0 61\
+1 0 0 0 0 0 0 0 \
+0 0 348 376 310 \
+377 324 241 354 \
+406 192 0 0 189 \
+629 414 364 0 0 \
+297 284 263 399 \
+347 544 0 348]\x0a>\
+>\x0aendobj\x0a\x0a17 0 o\
+bj\x0a\x0a<<\x0a/Type /En\
+coding\x0a/Differen\
+ces [24 /breve /\
+caron /circumfle\
+x /dotaccent /hu\
+ngarumlaut /ogon\
+ek /ring /tilde \
+39 /quotesingle \
+96 /grave 128 /b\
+ullet /dagger /d\
+aggerdbl /ellips\
+is /emdash /enda\
+sh /florin /frac\
+tion /guilsingll\
+eft /guilsinglri\
+ght /minus /pert\
+housand /quotedb\
+lbase /quotedbll\
+eft /quotedblrig\
+ht /quoteleft /q\
+uoteright /quote\
+singlbase /trade\
+mark /fi /fl /Ls\
+lash /OE /Scaron\
+ /Ydieresis /Zca\
+ron /dotlessi /l\
+slash /oe /scaro\
+n /zcaron 160 /E\
+uro 164 /currenc\
+y 166 /brokenbar\
+ 168 /dieresis /\
+copyright /ordfe\
+minine 172 /logi\
+calnot /.notdef \
+/registered /mac\
+ron /degree /plu\
+sminus /twosuper\
+ior /threesuperi\
+or /acute /mu 18\
+3 /periodcentere\
+d /cedilla /ones\
+uperior /ordmasc\
+uline 188 /onequ\
+arter /onehalf /\
+threequarters 19\
+2 /Agrave /Aacut\
+e /Acircumflex /\
+Atilde /Adieresi\
+s /Aring /AE /Cc\
+edilla /Egrave /\
+Eacute /Ecircumf\
+lex /Edieresis /\
+Igrave /Iacute /\
+Icircumflex /Idi\
+eresis /Eth /Nti\
+lde /Ograve /Oac\
+ute /Ocircumflex\
+ /Otilde /Odiere\
+sis /multiply /O\
+slash /Ugrave /U\
+acute /Ucircumfl\
+ex /Udieresis /Y\
+acute /Thorn /ge\
+rmandbls /agrave\
+ /aacute /acircu\
+mflex /atilde /a\
+dieresis /aring \
+/ae /ccedilla /e\
+grave /eacute /e\
+circumflex /edie\
+resis /igrave /i\
+acute /icircumfl\
+ex /idieresis /e\
+th /ntilde /ogra\
+ve /oacute /ocir\
+cumflex /otilde \
+/odieresis /divi\
+de /oslash /ugra\
+ve /uacute /ucir\
+cumflex /udieres\
+is /yacute /thor\
+n /ydieresis]\x0a>>\
+\x0aendobj\x0a\x0a18 0 ob\
+j\x0a\x0a<<\x0a/Name /Hel\
+v\x0a/Subtype /Type\
+1\x0a/BaseFont /Hel\
+vetica\x0a/Type /Fo\
+nt\x0a/Encoding 17 \
+0 R\x0a>>\x0aendobj\x0a\x0a1\
+9 0 obj\x0a\x0a<<\x0a/Nam\
+e /ZaDb\x0a/Subtype\
+ /Type1\x0a/BaseFon\
+t /ZapfDingbats\x0a\
+/Type /Font\x0a>>\x0ae\
+ndobj\x0a\x0a20 0 obj\x0a\
+\x0a<<\x0a/ColorSpace \
+15 0 R\x0a/Height 6\
+3\x0a/Filter /Flate\
+Decode\x0a/Width 49\
+\x0a/Length 561\x0a/Bi\
+tsPerComponent 8\
+\x0a>>\x0astream\x0aH\x89\x94\x96K\
+\x92\xc4 \x08\x86\x0f:\xbd\xe9\x1c\x06\x0e\x83\xb3\x90\x93\
+\xf4J\xaf3F\xc0\xb7\x19;]V\x85\xb4\x8a?\x9f\
+\x881\xdeO \xa6\x10\x8f\x1f\x847\xfc\xa4\xf6Bd\
+w\xd0\x1fR\xdf\xda.\x00\xa2\xf0\xe4\x0e\xd2\xec\xab\x1f\
+x\x0a+\x7fNf\xdd5?y\xc3\x1fU\xf0\xd4\xee\
+q\x9f\xa5\x82\xa7\x96F\xa5\x98\xb8\x8d\x82\xed/>*\
+X4w\xa0\xa0k\xf1T\x81\xb5\xef5\x8cqw1\
+D\xc7{\x15\xae[!V\x9e;>\x1d\x87n'\xf0\
+e\xbb\x8b\xc9C\xed\xd3\xac\x0fc\xf7\xb0}\xff4\xef\
+-\x07\x18\xb7\x99\x97\xef\xf7<\xb4\xe2\x10l7\x9a\xaf\
+ \xdfY\xbc\x8d\x1c.\x1f\xb5\xd7mS~\x97ye\
+\x96\x99\x83\xf4\x89$\x96\xe8\xbf\xdf^\x9d\x9e\x86C\xd9\
+\xbd\xd9fU\xc1.\xaf\x94\x11&\x0e6@l1\xd1\
+\xfcf\xa3\xe7\x80\xc5C\xb6U\xf6\xbbI7\xe89p\
+\x8d\x91\xacU:\xb5\x1ez\x0e\x5c\x82t\x95\xd8\xa4\x01\
+^]\x05Vu\x85\x83\xfa\xa6\x12oSd\xd4G\x0e\
+\xea\x81{\x1b5z\x0b\x0e\xb6P\xb3\xe5\x94 %\xb2\
+\xe0\xa0\x03\xd8\xec\xd1\xc3\x94\x0f\x8d\x87\xb2\x83\x129\xe5\
+\xc3s>\x98\x07\xb3\xcd\x03h,\xa6|\x984D\xd5\
+`Q\x1a\xf3!\x14\x0f-\x97\xd6\xc3u\xc2\x01\xf7\x1c\
+\xdc\xc0A&\x80=\x07\xdd4USP\xd2;\x0e\xa8\
+\xaa{.\xb0\xe7`\x03\xba|p\xb0\xe7P\x12Hl\
+_\x14\xed8\x98jj\xcf(\x80=\x07\xf0\x06\xa2\xc9\
+\xf0\xfb\xdd\xf0\xc0\x90\x0f\xcd)\x90l\xaa+\x17\x82\x8e\
+\x1d\x8f\xf5\x81\xca\x08;\xa3r\x16k\xa2\x18\x8b\xf6l\
+\x95\xbf\xd2i\xaf=d_\x95\x13\x94\xa7\xfa\xd0$|\
+\xa3\xc6\x08\x85E}\xc0\xb6\x86\x97]\x95\xa0\x22\xc1\xb2\
+>\x00\xd6\x0a\x81\x9b*7\xd68;\x0c\xbe\xa8\xd32\
+\xc0\x9f\xd7iWbxV\xa7\x8d\x01\x07Z(\xb8V\
+u\xba\x8f\xfb\xa8q\xac\xd35\xee\x85C\xd7\x82[\xac\
+TG\xf0B\x01n\xeeK\xe9>\xd5\xd6\xe6\xaa\x80\xbf\
+\xbb/%\xae\x9f\xf3\xfb\x92\xa7\xe7x\xd7<\x81\xfe6\
+\xbb\xbb\x17\xe5\xbbA\xd2\xc2\xb1\x7fv\x1a\x90\xeeY\x7f\
+s~\xf4\xcf\xb8\xda\xc5Mu\xf2`1\x96Y\xff{\
+,\xee\xa7\x97\xfb\xbf\x01\x00\xad\xb87H\x0aend\
+stream \x0aendobj\x0a\x0a\
+3 0 obj\x0a\x0a<<\x0a/Col\
+orSpace 15 0 R\x0a/\
+Height 52\x0a/Filte\
+r /FlateDecode\x0a/\
+Width 74\x0a/Length\
+ 160\x0a/BitsPerCom\
+ponent 8\x0a>>\x0astre\
+am\x0aH\x89\xec\x92\xc1\x0d\xc30\x0c\x03\xb9\x8f\xf6\
+\xd1>\xdcG\xfbx\x9d\x92n\x80\xa2\xfd\xa9q?\x85\
+\x0ev,\xe7A\x882\xd7\x1a\x86a\x18\x86\xdf\x92d\
+\xfa(m\xa8&\xa9\xd2\xff*\x9bJ\x01$\x92\x00$\
+\x13L\xdfT3\xc0\xa6\xd41\xd4A\xbd\xac\x14m\xd3\
+l\x93-\x88\x903}\xb1m\xc2\x17z\xa1\xabT`\
+\x5cUw\xc4\x9f\xc4nAM\xed\xdexO\xec\x0cE\
+\x9b\xd2\xe3\x97\xa2\xb5\xba\xb3yW\xd2\x98C[8\x96\
+\xc7Z\xbc\x81\xf3S\xe5<mg\xcaS~i\x91\xd7\
+\xd3\xc9\xdb3X\xd9\x0e\xd20\x0c\xc3\xdf\xf2\x18\x00.\
+eI\x96\x0aendstream \x0ae\
+ndobj\x0a\x0a13 0 obj\x0a\
+\x0a<<\x0a/ColorSpace \
+15 0 R\x0a/Height 5\
+1\x0a/Filter /Flate\
+Decode\x0a/Width 49\
+\x0a/Length 1076\x0a/B\
+itsPerComponent \
+8\x0a>>\x0astream\x0aH\x89\x8cV\
+=z\xe36\x10E\x95\x93 \x0d\xa6In\xe1\x0ah\
+\xc2ir\x85MC\xb80\xd1HS\xe4\x0aq#\xd0\
+\x05\xcdm\x8cSH\xc5\xdaM\xe2\xca\xbcN\xde\x00\xb2\
+$j\x95o\x03|\x82@af\xde\xfc\xbc\x01\xb5,\
+\xb7Fr\xc68\xc3\xd6\x1a\x0c\x9bn\xca\x5cH\xab\x94\
+q}6\x83\xf7}0\xce\x13\xd5\x03\xc3\xb7\xc4\x0bY\
+g\xc20Xc\x9d\xcf\x0fA?\x960U\xe3\x86|\
+\xe7\xe0\x8b\xad\xb3\xba\xe3\x87\x87\x87\x07\xdd\xa9\xad\x1b\x0a\
+\xddP\xe5\xba\xba\x92\x1d\x82\xd3\xef\xa3\xc2\x0d\x84\x10`\
+T}:\x0d\x17\x8f\x1b\x95\xa7ky\x09\x86\x9cJ;\
+\xd39\x8bh\xb1\x8d\x93\xad\x08\x05\x1e\xc9\xb5\xfcp\xb6\
+lB\x1fMD\x0c\xa6o\xcf\xc2\xe6;\x8f\x9e\xad\xf1\
+C\x0c~\x8a\x04\xffC\xb7\x09\x83\xd9`Gg\xaf\xd6\
+\x03\x89\x19v\xee.\xe7ED\x96\x8c\xaczc\x07\xe3\
+wY#w\xddw\x1e\x15T\xaa3\x1d\xe4\xd9\x90,\
+\xcee\xd8\x8e\x88+n\x80i\xc2f\xbb\x92/p\xd2\
+v&\xd8\xb2\xc0cC%\x98\xa1V\x1cK\x9fu\xf5\
+\xc3\xaa\xd4\x85$t\xc6\xd9I\x16R\x05\xa2N\x11\xfc\
+\x06\xa9\xa6<!c]\x9e^\xce\xf23\x93\xe9\xac\xb3\
+\x83_\x16\xc6\x1e\xfc\xd9E\x9bw\x01\xb926h\x1c\
+}\xdeug\x05\x16\xc7\xb1\xeb\x87<\xcd\x85\x17\x12.\
+\xaa\x95'|\x14g\x82{\x9b<\xb9\xb3\xbc\xdb\xfef\
+\x07\xf8:\xecf\xf8\x84\xa8) k\xd5\xae~\xef\xb2\
+\x05\x7fw\xf9\x14\xf7\x8b%\x9a\xf3\xa4s\x5c~\xdd\xfe\
+\xf2\xbbp&O\x81\xcc\x947Z\xef\xe8\x8c\x9e\x8e-\
+\x9f\xcbB\xb9\xaf\x16v\xf9\xaf\xd9\xd1O\x7f\x1a\xf2L\
+\x1c\x909\x9f\x90!\x8b\xee\x08z\x8e\x08\x8b,\xa8\x08\
+\x19x\x9f\xb3\xcfw}O^\x90#\x84\xe0Q\x11\x9a\
+\xe3\xb3\xd6-SE\xd8\xd4\x02@\xc7\xf9/\xb9\x8f}\
+\xbe\x8b\xd6\xfb\x81\x12\xa2p\xc0PM\x09Z\xb5\xf7\x16\
+\xc9\x03XP\xa4\xcc}V\xef\xef\xa6>\xfb\xde\xa7 \
+\xb4\x8d\x7f\x874\xbc\xb0(\xa5+Y\xb1\xf0\x92\x13\xa4\
+\x01\xe0\xb2\xfaw\x87\x89<e\x84J\x86\x9d\xc6 \xa4\
+\x8d\xcc\xda\x09\x80\x91\xf2\xeeA3\x96\xd4\xf7S\xfe\x9c\
+\xdf\x02S\x02\x9b\xf9\xccQ\xd2\x15UQf\xa0/\x84\
+\x1e\xfb^\xf3\x93_\x87\xbc{M \x06\x22F\xcc\xad\
+7\x05\x9d\xa3\xdeP\xeb\xebE\x11\xf2s\xff-\xbf>\
+\x7f\xcc2\xbf\xff\xc3T\x18\xf6I\x93\x0d~\xe1q\xd1\
+\x9aC\xe1\xc8Q\xc4\xf5\x9a\x86~\x08\x89\xa9\xd2H\x94\
+\xf7\xd22\xcbR\x88\x19Ah\xc7\x01\x0b\x03\x86d\xbb\
+\xcco\x98\xe0\x04\xf4\x95'\xb0\x02I1\xc5\xd4\x1f\x94\
+\xf9\x8c'\xecJ\x05\x91\x92\xd2[\x92&\x0fS\xb0\xcc\
+\xb5\x02\xac\xb1\xc0g\x84S\xa4\xde\x01\xed#\xa5\x8ci\
+\xe4#k\xe1\x93h\xb2U\x9e\x8b\xdaU]\xbd\xc6\x14\
+\xa2\xca\xa8NJz\xa2\xb6\x8b\xb4,\xc9\x11\xa7h\xbe\
+\x10\xbfQqn(\x90\xad.j\xac\xa2>\xa845\
+=\xccj\xbbe\xf5t\x11\x88tj\x9b\xb5\x06\x86\xb5\
+vT\xeb\xa1\xbc\xa3*E\xcd\xe2\xb9\xa5?^`\xab\
+\xe3$<\x869\xa6\x08]FV\x90\xd3\xa2\xb9\xe1\xa6\
+P.z\xf4eK\x05\xd7\xa1\xa4\xc71\x1e\xbe\xa4\x08\
+& \xb7\xe6(R\x8c\xe1\x15\xc2\xa2\xb1\x22\x92(\xe3\
+~,\xfb\xb7?\x9eL\x8d\xac\xbdEP\x93\xb6\xbbD\
+P\xa6\x17\x13\x1f\xd3\xe3a\x7fx\x1c\x83\x06)\x8d}\
+\x8d\x88R\xa5\xce\x08\xb0\x03\x22\xde\xbf\xed1\xc7\xf4\xa4\
+\xdc\xd4\x8cV\xa26\x85\xb2F\xe0\xb2Ew=\xc5\xc3\
+~\xde\xc71\xd5\x0b^\x19Q\xd9\xaa\xf2\xa4\xdc\xbe@\
+PRu_\x9f\xc68s\xba?\xfc\x0c\x96\x12W\xfa\
+\xe8\x9dSk\xa7\xd9\xbf\xbc\xc9P\x8b\x0fJ\xe1>|\
+\xc4C\x80\xc7\x1a\x93\xf2_\x1b\x14\x09\x5c>\xc9w*\
+\x9dj\xbcS\xe2Y\xbe\xde\x93\xb6\x81\xd2YY\xfe\x99\
+\x9e\x22\xeb\x1b\xbfT\x16)\xbe5j\x91\xaa9\xe5\xa6\
+\xd4\xabbU\x85z\xd4JY\xd4\xf0\x0a\xbfr\xfa\xf8\
+\xe3%\x80\x9c\xb2PW\xf4\xc9\x0a^\x91\xd6\x08\xe5\xb4\
+\xd4\x0d\xc9\xf5k\xf6\xfa\xaf\x83\x9c|(\xed\xf4\xa6\xc5\
+\xef}jS\xf8\xfa\x1dxc\x14\xdc05:\xa9\x97\
+\xc3\x8fG\xbd6K-\xc8\xb57\xff\x0d\xa2m\xd7\xd4\
+\xfe\xaf\x86\xd6oY\x93\xe0r\xfc;\x00+\x9eC\xe7\
+\x0aendstream \x0aendo\
+bj\x0a\x0a5 0 obj\x0a\x0a<<\x0a\
+/Kids [21 0 R 1 \
+0 R 11 0 R]\x0a/Typ\
+e /Pages\x0a/Count \
+3\x0a>>\x0aendobj\x0a\x0a22 \
+0 obj\x0a\x0a<<\x0a/Metad\
+ata 23 0 R\x0a/Type\
+ /Catalog\x0a/AcroF\
+orm 24 0 R\x0a/Outl\
+ines 25 0 R\x0a/Pag\
+eLabels 26 0 R\x0a/\
+Pages 5 0 R\x0a>>\x0ae\
+ndobj\x0a\x0a24 0 obj\x0a\
+\x0a<<\x0a/Fields []\x0a/\
+DA (/Helv 0 Tf 0\
+ g )\x0a/DR \x0a<<\x0a/Fo\
+nt \x0a<<\x0a/ZaDb 19 \
+0 R\x0a/Helv 18 0 R\
+\x0a>>\x0a/Encoding \x0a<\
+<\x0a/PDFDocEncodin\
+g 17 0 R\x0a>>\x0a>>\x0a>\
+>\x0aendobj\x0a\x0a21 0 o\
+bj\x0a\x0a<<\x0a/Contents\
+ 27 0 R\x0a/Thumb 2\
+0 0 R\x0a/Type /Pag\
+e\x0a/Resources \x0a<<\
+\x0a/ColorSpace \x0a<<\
+\x0a/CS0 28 0 R\x0a>>\x0a\
+/ProcSet [/PDF /\
+ImageC]\x0a/XObject\
+ \x0a<<\x0a/Im0 29 0 R\
+\x0a>>\x0a>>\x0a/CropBox \
+[55.8366 1.32904\
+ 454.04 511.205]\
+\x0a/Parent 5 0 R\x0a/\
+Rotate 0\x0a/MediaB\
+ox [0.0 0.0 511.\
+94 511.94]\x0a>>\x0aen\
+dobj\x0a\x0a28 0 obj\x0a[\
+/ICCBased 30 0 R\
+]\x0aendobj\x0a\x0a27 0 o\
+bj\x0a\x0a<<\x0a/Filter /\
+FlateDecode\x0a/Len\
+gth 42\x0a>>\x0astream\
+\x0aH\x89*\xe4254\xd4\xb3410002\
+Q0\x00Bt~r.\x97\xbeg\xae\x81\x82K>\
+W \x17@\x80\x01\x00\xdd\x16\x09s\x0aends\
+tream \x0aendobj\x0a\x0a3\
+1 0 obj\x0a\x0a<<\x0a/Col\
+orSpace /DeviceG\
+ray\x0a/Name /X\x0a/Su\
+btype /Image\x0a/He\
+ight 512\x0a/Filter\
+ /FlateDecode\x0a/T\
+ype /XObject\x0a/Wi\
+dth 512\x0a/Length \
+279\x0a/BitsPerComp\
+onent 8\x0a>>\x0astrea\
+m\x0aH\x89\xec\xc11\x01\x00\x00\x00\xc2\xa0\xfe\xa9\xe7\
+m\x07\xa0\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\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\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\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\xde\x04\x18\x00\x1f\x7f;\xc5\x0aendstr\
+eam \x0aendobj\x0a\x0a30 \
+0 obj\x0a\x0a<<\x0a/Alter\
+nate /DeviceRGB\x0a\
+/Filter /FlateDe\
+code\x0a/Length 257\
+4\x0a/N 3\x0a>>\x0astream\
+\x0aH\x89\x9c\x96yTSw\x16\xc7\x7fo\xc9\x9e\x90\
+\x95\xb0\xc3c\x0d[\x80\xb0\x06\x905la\x91\x1d\x04\
+Q\x08I\x08\x01\x12BH\xd8\x05AD\x05\x14ED\
+\x84\xaa\x952\xd6mtFOE\x9d.\xaec\xad\x0e\
+\xd6}\xea\xd2\x03\xf50\xea\xe88\xb4\x16\xd7\x8e\x9d\x17\
+8G\x9dNg\xa6\xd3\xef\x1f\xef\xf79\xf7w\xef\xef\
+\xdd\xdf\xbd\xf7\x9d\xf3\x00\xa0'\xa5\xaa\xb5\xd50\x0b\x00\
+\x8d\xd6\xa0\xcfJ\x8c\xc5\x16\x15\x14b\xa4\x09\x00\x03\x0a\
+ \x02\x11\x002y\xad.-;!\x07\xe0\x92\xc6K\
+\xb0Z\xdc\x09\xfc\x8b\x9e^\x07\x90i\xbd\x22L\xca\xc0\
+0\xf0\xff\x89-\xd7\xe9\x0d\x00@\x198\x07(\x94\xb5\
+r\x9c;q\xae\xaa7\xe8L\xf6\x19\x9cy\xa5\x95&\
+\x86Q\x13\xeb\xf1\x04q\xb64\xb1j\x9e\xbd\xe7|\xe6\
+9\xda\xc4\x0a\x8dV\x81\xb3)g\x9dB\xa30\xf1i\
+\x9cW\xd7\x19\x958#\xa98w\xd5\xa9\x95\xf58_\
+\xc5\xd9\xa5\xca\xa8Q\xe3\xfc\xdc\x14\xabQ\xcaj\x01@\
+\xe9&\xbbA)/\xc7\xd9\x0fg\xba>'K\x82\xf3\
+\x02\x00\xc8t\xd5;\x5c\xfa\x0e\x1b\x94\x0d\x06\xd3\xa5$\
+\xd5\xbaF\xbdZUn\xc0\xdc\xe5\x1e\x98(4T\x8c\
+%)\xeb\xab\x94\x06\x830C&\xaf\x94\xe9\x15\x98\xa4\
+Z\xa3\x93i\x1b\x01\x98\xbf\xf3\x9c8\xa6\xdabx\x91\
+\x83E\xa1\xc1\xc1B\x7f\x1f\xd1;\x85\xfa\xaf\x9b\xbfP\
+\xa6\xde\xce\xd3\x93\xcc\xb9\x9eA\xfc\x0bom?\xe7W\
+=\x0a\x80x\x16\xaf\xcd\xfa\xb7\xb6\xd2-\x00\x8c\xaf\x04\
+\xc0\xf2\xe6[\x9b\xcb\xfb\x000\xf1\xbe\x1d\xbe\xf8\xce}\
+\xf8\xa6y)7\x18ta\xbe\xbe\xf5\xf5\xf5>j\xa5\
+\xdc\xc7T\xd07\xfa\x9f\x0e\xbf@\xef\xbc\xcf\xc7t\xdc\
+\x9b\xf2`q\xca2\x99\xb1\xca\x80\x99\xea&\xaf\xae\xaa\
+6\xea\xb1Z\x9dL\xae\xc4\x84?\x1d\xe2_\x1d\xf8\xf3\
+yxg)\xcb\x94z\xa5\x16\x8f\xc8\xc3\xa7L\xadU\
+\xe1\xed\xd6*\xd4\x06u\xb5\x16Sk\xffS\x13\x7fe\
+\xd8O4?\xd7\xb8\xb8c\xaf\x01\xaf\xd8\x07\xb0.\xf2\
+\x00\xf2\xb7\x0b\x00\xe5\xd2\x00R\xb4\x0d\xdf\x81\xde\xf4-\
+\x95\x92\x072\xf05\xdf\xe1\xde\xfc\xdc\xcf\x09\xfa\xf7S\
+\xe1>\xd3\xa3V\xad\x9a\x8b\x93d\xe5`r\xa3\xben\
+~\xcf\xf4Y\x02\x02\xa0\x02&\xe0\x01+`\x0f\x9c\x81\
+;\x10\x02\x7f\x10\x02\xc2A4\x88\x07\xc9 \x1d\xe4\x80\
+\x02\xb0\x14\xc8A9\xd0\x00=\xa8\x07-\xa0\x1dt\x81\
+\x1e\xb0\x1el\x02\xc3`;\x18\x03\xbb\xc1~p\x10\x8c\
+\x83\x8f\xc1\x09\xf0Gp\x1e|\x09\xae\x81[`\x12L\
+\x83\x87`\x06<\x05\xaf \x08\x22A\x0c\x88\x0bYA\
+\x0e\x90+\xe4\x05\xf9Cb(\x12\x8a\x87R\xa1,\xa8\
+\x00*\x81T\x90\x162B-\xd0\x0a\xa8\x07\xea\x87\x86\
+\xa1\x1d\xd0n\xe8\xf7\xd0Q\xe8\x04t\x0e\xba\x04}\x05\
+MA\x0f\xa0\xef\xa0\x970\x02\xd3a\x1el\x07\xbb\xc1\
+\xbe\xb0\x18\x8e\x81S\xe0\x1cx\x09\xac\x82k\xe0&\xb8\
+\x13^\x07\x0f\xc1\xa3\xf0>\xf80|\x02>\x0f_\x83\
+'\xe1\x87\xf0,\x02\x10\x1a\xc2G\x1c\x11!\x22F$\
+H:R\x88\x94!z\xa4\x15\xe9F\x06\x91Qd?\
+r\x0c9\x8b\x5cA&\x91G\xc8\x0b\x94\x88rQ\x0c\
+\x15\xa2\xe1h\x12\x9a\x8b\xca\xd1\x1a\xb4\x15\xedE\x87\xd1\
+]\xe8a\xf44z\x05\x9dBg\xd0\xd7\x04\x06\xc1\x96\
+\xe0E\x08#H\x09\x8b\x08*B=\xa1\x8b0H\xd8\
+I\xf8\x88p\x86p\x8d0MxJ$\x12\xf9D\x01\
+1\x84\x98D, V\x10\x9b\x89\xbd\xc4\xad\xc4\x03\xc4\
+\xe3\xc4K\xc4\xbb\xc4Y\x12\x89dE\xf2\x22E\x90\xd2\
+I2\x92\x81\xd4E\xdaB\xdaG\xfa\x8ct\x994M\
+zN\xa6\x91\x1d\xc8\xfe\xe4\x04r!YK\xee \x0f\
+\x92\xf7\x90?%_&\xdf#\xbf\xa2\xb0(\xae\x940\
+J:EAi\xa4\xf4Q\xc6(\xc7(\x17)\xd3\x94\
+WT6U@\x8d\xa0\xe6P+\xa8\xed\xd4!\xea~\
+\xea\x19\xeam\xea\x13\x1a\x8d\xe6D\x0b\xa5e\xd2\xd4\xb4\
+\xe5\xb4!\xda\xefh\x9f\xd3\xa6h/\xe8\x1c\xba']\
+B/\xa2\x1b\xe9\xeb\xe8\x1f\xd2\x8f\xd3\xbf\xa2?a0\
+\x18n\x8chF!\xc3\xc0X\xc7\xd8\xcd8\xc5\xf8\x9a\
+\xf1\xdc\x8ck\xe6c&5S\x98\xb5\x99\x8d\x98\x1d6\
+\xbbl\xf6\x98Ia\xba2c\x98K\x99M\xccA\xe6\
+!\xe6E\xe6#\x16\x85\xe5\xc6\x92\xb0d\xacV\xd6\x08\
+\xeb(\xeb\x06k\x96\xcde\x8b\xd8\xe9l\x0d\xbb\x97\xbd\
+\x87}\x8e}\x9fC\xe2\xb8q\xe29\x0aN'\xe7\x03\
+\xce)\xce].\xc2u\xe6J\xb8r\xee\x0a\xee\x18\xf7\
+\x0cw\x9aG\xe4\x09xR^\x05\xaf\x87\xf7[\xde\x04\
+o\xc6\x9cc\x1eh\x9eg\xde`>b\xfe\x89\xf9$\
+\x1f\xe1\xbb\xf1\xa5\xfc*~\x1f\xff \xff:\xff\xa5\x85\
+\x9dE\x8c\x85\xd2b\x8d\xc5~\x8b\xcb\x16\xcf,m,\
+\xa3-\x95\x96\xdd\x96\x07,\xafY\xbe\xb4\xc2\xac\xe2\xad\
+*\xad6X\x8d[\xdd\xb1F\xad=\xad3\xad\xeb\xad\
+\xb7Y\x9f\xb1~d\xc3\xb3\x09\xb7\x91\xdbt\xdb\x1c\xb4\
+\xb9i\x0b\xdbz\xdaf\xd96\xdb~`{\xc1v\xd6\
+\xce\xde.\xd1Ng\xb7\xc5\xee\x94\xdd#{\xbe}\xb4\
+}\x85\xfd\x80\xfd\xa7\xf6\x0f\x1c\xb8\x0e\x91\x0ej\x87\x01\
+\x87\xcf\x1c\xfe\x8a\x99c1X\x156\x84\x9d\xc6f\x1c\
+m\x1d\x93\x1c\x8d\x8e;\x1c'\x1c_9\x09\x9cr\x9d\
+:\x9c\x0e8\xddq\xa6:\x8b\x9d\xcb\x9c\x07\x9cO:\
+\xcf\xb88\xb8\xa4\xb9\xb4\xb8\xecu\xb9\xe9Jq\x15\xbb\
+\x96\xbbnv=\xeb\xfa\xccM\xe0\x96\xef\xb6\xcam\xdc\
+\xed\xbe\xc0R \x154\x09\xf6\x0an\xbb3\xdc\xa3\xdc\
+k\xdcG\xdd\xafz\x10=\xc4\x1e\x95\x1e[=\xbe\xf4\
+\x84=\x83<\xcb=G</z\xc1^\xc1^j\xaf\
+\xad^\x97\xbc\x09\xde\xa1\xdeZ\xefQ\xef\x1bB\xba0\
+FX'\xdc+\x9c\xf2\xe1\xfb\xa4\xfat\xf8\x8c\xfb<\
+\xf6u\xf1-\xf4\xdd\xe0{\xd6\xf7\xb5_\x90_\x95\xdf\
+\x98\xdf-\x11G\x94,\xea\x10\x1d\x13}\xe7\xef\xe9/\
+\xf7\x1f\xf1\xbf\x1a\xc0\x08H\x08h\x0b8\x12\xf0m\xa0\
+W\xa02p[\xe0\x9f\x83\xb8AiA\xab\x82N\x06\
+\xfd#8$X\x1f\xbc?\xf8A\x88KHI\xc8{\
+!7\xc4<q\x86\xb8W\xfcy(!46\xb4-\
+\xf4\xe3\xd0\x17a\xc1a\x86\xb0\x83a\x7f\x0f\x17\x86W\
+\x86\xef\x09\xbf\xbf@\xb0@\xb9`l\xc1\xdd\x08\xa7\x08\
+Y\xc4\x8e\x88\xc9H,\xb2$\xf2\xfd\xc8\xc9(\xc7(\
+Y\xd4h\xd47\xd1\xce\xd1\x8a\xe8\x9d\xd1\xf7b<b\
+*b\xf6\xc5<\x8e\xf5\x8b\xd5\xc7~\x14\xfbL\x12&\
+Y&9\x1e\x87\xc4%\xc6u\xc7M\xc4s\xe2s\xe3\
+\x87\xe3\xbfNpJP%\xecM\x98I\x0cJlN\
+<\x9eDHJI\xda\x90tCj'\x95KwK\
+g\x92C\x92\x97%\x9fN\xa1\xa7d\xa7\x0c\xa7|\x93\
+\xea\x99\xaaO=\x96\x06\xa7%\xa7mL\xbb\xbd\xd0u\
+\xa1v\xe1x:H\x97\xa6oL\xbf\x93!\xc8\xa8\xc9\
+\xf8C&13#s$\xf3/Y\xa2\xac\x96\xac\xb3\
+\xd9\xdc\xec\xe2\xec=\xd9Osbs\xfarn\xe5\xba\
+\xe7\x1asO\xe61\xf3\x8a\xf2v\xe7=\xcb\x8f\xcb\xef\
+\xcf\x9f\x5c\xe4\xbbh\xd9\xa2\xf3\x05\xd6\x05\xea\x82#\x85\
+\xa4\xc2\xbc\xc2\x9d\x85\xb3\x8b\xe3\x17oZ<]\x14T\
+\xd4Ut}\x89`I\xc3\x92sK\xad\x97V-\xfd\
+\xa4\x98Y,+>TB(\xc9/\xd9S\xf2\x83,\
+]6*\x9b-\x95\x96\xbeW:#\x97\xc87\xcb\x1f\
+*\xa2\x15\x03\x8a\x07\xca\x08e\xbf\xf2^YDY\x7f\
+\xd9}U\x84j\xa3\xeaAyT\xf9`\xf9#\xb5D\
+=\xac\xfe\xb6\x22\xa9b{\xc5\xb3\xca\xf4\xca\x0f+\x7f\
+\xac\xca\xaf:\xa0!kJ4G\xb5\x1cm\xa5\xf6t\
+\xb5}uC\xf5%\x9d\x97\xaeK7Y\x13V\xb3\xa9\
+fF\x9f\xa2\xdfY\x0b\xd5.\xa9=b\xe0\xe1?S\
+\x17\x8c\xee\xc6\x95\xc6\xa9\xba\xc8\xba\x91\xba\xe7\xf5y\xf5\
+\x87\x1a\xd8\x0d\xda\x86\x0b\x8d\x9e\x8dk\x1a\xef5%4\
+\xfd\xa6\x19m\x967\x9flqlio\x99Z\x16\xb3\
+lG+\xd4Z\xdaz\xb2\xcd\xb9\xad\xb3mzy\xe2\
+\xf2]\xed\xd4\xf6\xca\xf6?u\xf8u\xf4w|\xbf\x22\
+\x7f\xc5\xb1N\xbb\xce\xe5\x9dwW&\xae\xdc\xdbe\xd6\
+\xa5\xef\xba\xb1*|\xd5\xf6\xd5\xe8j\xf5\xea\x895\x01\
+k\xb6\xacy\xdd\xad\xe8\xfe\xa2\xc7\xafg\xb0\xe7\x87^\
+y\xef\x17kEk\x87\xd6\xfe\xb8\xael\xddD_p\
+\xdf\xb6\xf5\xc4\xf5\xda\xf5\xd77Dm\xd8\xd5\xcf\xeeo\
+\xea\xbf\xbb1m\xe3\xe1\x01l\xa0{\xe0\xfbM\xc5\x9b\
+\xce\x0d\x06\x0en\xdfL\xddl\xdc<9\x94\xfaO\x00\
+\xa4\x01[\xfe\x98\xb8\x99$\x99\x90\x99\xfc\x9ah\x9a\xd5\
+\x9bB\x9b\xaf\x9c\x1c\x9c\x89\x9c\xf7\x9dd\x9d\xd2\x9e@\
+\x9e\xae\x9f\x1d\x9f\x8b\x9f\xfa\xa0i\xa0\xd8\xa1G\xa1\xb6\
+\xa2&\xa2\x96\xa3\x06\xa3v\xa3\xe6\xa4V\xa4\xc7\xa58\
+\xa5\xa9\xa6\x1a\xa6\x8b\xa6\xfd\xa7n\xa7\xe0\xa8R\xa8\xc4\
+\xa97\xa9\xa9\xaa\x1c\xaa\x8f\xab\x02\xabu\xab\xe9\xac\x5c\
+\xac\xd0\xadD\xad\xb8\xae-\xae\xa1\xaf\x16\xaf\x8b\xb0\x00\
+\xb0u\xb0\xea\xb1`\xb1\xd6\xb2K\xb2\xc2\xb38\xb3\xae\
+\xb4%\xb4\x9c\xb5\x13\xb5\x8a\xb6\x01\xb6y\xb6\xf0\xb7h\
+\xb7\xe0\xb8Y\xb8\xd1\xb9J\xb9\xc2\xba;\xba\xb5\xbb.\
+\xbb\xa7\xbc!\xbc\x9b\xbd\x15\xbd\x8f\xbe\x0a\xbe\x84\xbe\xff\
+\xbfz\xbf\xf5\xc0p\xc0\xec\xc1g\xc1\xe3\xc2_\xc2\xdb\
+\xc3X\xc3\xd4\xc4Q\xc4\xce\xc5K\xc5\xc8\xc6F\xc6\xc3\
+\xc7A\xc7\xbf\xc8=\xc8\xbc\xc9:\xc9\xb9\xca8\xca\xb7\
+\xcb6\xcb\xb6\xcc5\xcc\xb5\xcd5\xcd\xb5\xce6\xce\xb6\
+\xcf7\xcf\xb8\xd09\xd0\xba\xd1<\xd1\xbe\xd2?\xd2\xc1\
+\xd3D\xd3\xc6\xd4I\xd4\xcb\xd5N\xd5\xd1\xd6U\xd6\xd8\
+\xd7\x5c\xd7\xe0\xd8d\xd8\xe8\xd9l\xd9\xf1\xdav\xda\xfb\
+\xdb\x80\xdc\x05\xdc\x8a\xdd\x10\xdd\x96\xde\x1c\xde\xa2\xdf)\
+\xdf\xaf\xe06\xe0\xbd\xe1D\xe1\xcc\xe2S\xe2\xdb\xe3c\
+\xe3\xeb\xe4s\xe4\xfc\xe5\x84\xe6\x0d\xe6\x96\xe7\x1f\xe7\xa9\
+\xe82\xe8\xbc\xe9F\xe9\xd0\xea[\xea\xe5\xebp\xeb\xfb\
+\xec\x86\xed\x11\xed\x9c\xee(\xee\xb4\xef@\xef\xcc\xf0X\
+\xf0\xe5\xf1r\xf1\xff\xf2\x8c\xf3\x19\xf3\xa7\xf44\xf4\xc2\
+\xf5P\xf5\xde\xf6m\xf6\xfb\xf7\x8a\xf8\x19\xf8\xa8\xf98\
+\xf9\xc7\xfaW\xfa\xe7\xfbw\xfc\x07\xfc\x98\xfd)\xfd\xba\
+\xfeK\xfe\xdc\xffm\xff\xff\x02\x0c\x00\xf7\x84\xf3\xfb\x0a\
+endstream \x0aendob\
+j\x0a\x0a29 0 obj\x0a\x0a<<\x0a\
+/ColorSpace 28 0\
+ R\x0a/Name /X\x0a/Sub\
+type /Image\x0a/Hei\
+ght 512\x0a/Filter \
+/DCTDecode\x0a/Type\
+ /XObject\x0a/Width\
+ 512\x0a/SMask 31 0\
+ R\x0a/Length 14366\
+\x0a/BitsPerCompone\
+nt 8\x0a>>\x0astream\x0a\xff\
+\xd8\xff\xee\x00\x0eAdobe\x00d\x80\x00\x00\x00\
+\x01\xff\xdb\x00\x84\x00\x0c\x08\x08\x08\x08\x08\x0c\x08\x08\x0c\
+\x10\x0b\x0b\x0b\x10\x14\x0e\x0d\x0d\x0e\x14\x18\x12\x13\x13\x13\
+\x12\x18\x14\x12\x14\x14\x14\x14\x12\x14\x14\x1b\x1e\x1e\x1e\x1b\
+\x14$''''$25552;;;;\
+;;;;;;\x01\x0d\x0a\x0a\x0c\x0a\x0c\x0e\x0c\x0c\
+\x0e\x11\x0e\x0e\x0e\x11\x14\x0f\x0f\x0f\x0f\x14\x14\x10\x11\x12\
+\x11\x10\x14\x14\x13\x14\x15\x15\x14\x13\x14\x15\x15\x15\x15\x15\
+\x15\x15\x1a\x1a\x1a\x1a\x1a\x1a\x1e\x1e\x1e\x1e\x1e###\
+#''',,,\xff\xc0\x00\x11\x08\x02\x00\x02\x00\
+\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x01B\x00\x00\
+\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x03\
+\x00\x01\x02\x04\x05\x06\x07\x08\x09\x0a\x0b\x01\x00\x01\x05\x01\
+\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x03\
+\x04\x05\x06\x07\x08\x09\x0a\x0b\x10\x00\x01\x04\x01\x03\x02\x04\
+\x02\x05\x07\x06\x08\x05\x03\x0c3\x01\x00\x02\x11\x03\x04!\
+\x121\x05AQa\x13\x22q\x812\x06\x14\x91\xa1\xb1\
+B#$\x15R\xc1b34r\x82\xd1C\x07%\x92\
+S\xf0\xe1\xf1cs5\x16\xa2\xb2\x83&D\x93Td\
+E\xc2\xa3t6\x17\xd2U\xe2e\xf2\xb3\x84\xc3\xd3u\
+\xe3\xf3F'\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\xb5\xc5\
+\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf67G\
+Wgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\x11\x00\x02\x02\x01\
+\x02\x04\x04\x03\x04\x05\x06\x07\x07\x06\x02;\x01\x00\x02\x11\
+\x03!1\x12\x04AQaq\x22\x13\x052\x81\x91\x14\
+\xa1\xb1B#\xc1R\xd1\xf03$b\xe1r\x82\x92C\
+S\x15cs4\xf1%\x06\x16\xa2\xb2\x83\x07&5\xc2\
+\xd2D\x93T\xa3\x17dEU6te\xe2\xf2\xb3\x84\
+\xc3\xd3u\xe3\xf3F\x94\xa4\x85\xb4\x95\xc4\xd4\xe4\xf4\xa5\
+\xb5\xc5\xd5\xe5\xf5Vfv\x86\x96\xa6\xb6\xc6\xd6\xe6\xf6\
+'7GWgw\x87\x97\xa7\xb7\xc7\xd7\xe7\xf7\xff\xda\
+\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf5T\x92I\
+%)$\x92IJI$\x92R\x92I$\x94\xa4\x92\
+I%)%\x1b,\xae\xa6\x1b-pc\x1a$\xb8\xe8\
+\x02\xe7\xfa\x87\xd6W\x12j\xe9\xe3h\xe3\xd5p\xd4\xff\
+\x00U\xa7\xf8\xa8\xb3g\xc7\x80\x5c\xcf\x90\x1b\x95\xb2\x9c\
+a\xb9w\xae\xc8\xa3\x1d\xbb\xef\xb1\xb5\xb7\xc5\xc4\x0f\xca\
+\xb3\xae\xfa\xc9\xd3\xeb1^\xfbO\x8bD\x0f\xfaP\xb9\
+{m\xb6\xe7\x9b.y{\x8fw\x19?\x8a\x82\xa3\x93\
+\xe2S?$DG\x8e\xa7\xf80\xcb\x98'aOB\
+\xff\x00\xadM\xfc\xccb\x7f\xac\xf8\xfc\x8d*#\xeb[\
+\xbb\xe2\x8f\x95\x9f\xf9\x82\xc0IC\xf7\xdec\xf7\xff\x00\
+\x08\xff\x00\x05\x9e\xf4\xfb\xfe\x01\xe9k\xfa\xd3\x8a\x7f\x9d\
+\xa6\xc6\xfc!\xdf\xdc\xadW\xd7\xfa]\x9c\xdaXOg\
+\xb4\x8f\xc6\x08\x5c\x82I\xf1\xf8\x86q\xbf\x0c\xbc\xc7\xf0\
+\xa5\xc3<\xc7b\xf7Ufb]\xfc\xd5\xd5\xbf\xfa\xae\
+\x07\xf8\xa2\xae\x01\x16\xbc\x9c\x8a\x7f\x9a\xb5\xec\xfe\xab\x88\
+\xfc\x85K\x1f\x89\xfe\xf6?\xb0\xff\x00b\xe1\xccw\x8b\
+\xdd\xa4\xb8\xea\xba\xe7T\xabAqp\xf0x\x0e\xfcb\
+\x7f\x15j\xbf\xad\x19\x8d\xfev\xba\xdf\xf0\x96\xff\x00\x12\
+\xa6\x8f\xc4p\x9d\xf8\xa3\xe6?\x82\xe1\x9e\x07\xb8zt\
+\x96\x1d_Zh?\xcfP\xf6\xff\x00P\x87~]\x8a\
+\xd5\x7fX:]\x9c\xd8X|\x1e\xd2?$\xa9c\xcd\
+`\x96\xd9#\xf5\xf4\xfek\x86H\x1f\xd2\x1f\x93\xa4\x92\
+\xaf^~\x15\xd1\xe9\xdf[\x89\xed\xb8O\xdc\x8e\xa5\x12\
+\x12\xd4\x10|\x97\x82\x0e\xcb\xa4\x92H\xa9I$\x92J\
+RI$\x92\x94\x92I$\xa5$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x87}\xf5cT\xeb\
+\xeev\xd60I(\x8b\x92\xeb\x9dL\xe7^i\xa8\xfe\
+\x82\xa3\x0d\x8f\xce?\xbd\xfd\xca\x1eg8\xe5\xe1\xc5\xbc\
+\x8e\x91\x1e?\xc0,\xc9>\x01}z\x22\xea}V\xee\
+\xa3f\xb2\xcaZ}\x95\xff\x00\x17y\xaa)$\xb1\xa7\
+9d\x91\x94\x8d\x92\xd5$\xc8\xd9\xd4\xa9$\x92MB\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa4J\xef\xbe\x9f\xe6l}\x7f\xd4q\
+o\xe4CI\x10H\xd4h\xa6\xf5}k\xa9\xd5\xc5\xee\
+?\xd6\x87\x7f\xd5\x02\xadW\xf5\x9f9\x9f\xce2\xbb\x07\
+\xc0\xb4\xfe\x06?\x05\x8e\x92\x92<\xc6h\xed\x92_m\
+\xfek\x86I\x8d\xa4^\x8a\xbf\xadU\x1f\xe7q\xdc\xdf\
+\xea\xb8;\xf2\x86\xabu\xfdb\xe9\x8f\xfaNu\x7f\xd6\
+i\xff\x00\xbe\xee\x5c\x92JX\xfcC<w\x22^c\
+\xf8R\xe1\x9ec\xb1{z\xba\x8e\x05\xdf\xcd\xe4V\xe3\
+\xe1\xb8\x03\xf7\x15`\x10\xe1-2<B\xe0\x14\xd9m\
+\xb5\x99\xad\xeea\xf1i#\xf2)\xa3\xf13\xfaX\xc1\
+\xf24\xbcs\x1d\xe2\xf7\xa9..\xae\xb1\xd4\xea\xfa9\
+\x0f>O\x87\xff\x00\xd5\x82\xad\xd7\xf5\x9b\xa83\xe9\xb6\
+\xbb> \x8f\xc8T\xb1\xf8\x8e\x13\xb8\x94~\x97\xfbW\
+\x0c\xf1;\xd8z\x94\x96\x05\x7fZ\x9b\xfe\x1b\x1c\x8f\x12\
+\xc7O\xe0@\xfc\xaa\xdd\x7fX\xfak\xfe\x91}g\xf9\
+M\xff\x00\xc8\xeeR\xc7\x9b\xc1-\xb2\x01\xe7\xe9\xfc\xd7\
+\x0c\xb0?\xa4?'Q%V\xbe\xa9\xd3\xad\xfa\x19\x15\
+\xfc\x1cv\xff\x00\xd5B\xb2\xd75\xc2ZA\x07\xb8\xd4\
+)\xa38\xcb\xe5\x90>F\xd7\x02\x0e\xc6\xd7I$\x91\
+J\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)$\x92IJ\
+I$\x92R\x92I$\x94\xa4\x92I%)$\x92I\
+JI$\x92S\x97\xd7\xf3\x8e&\x19\xad\x86,\xbeX\
+<\x9b\xf9\xc5rkK\xaf\xe4\x9c\x8e\xa2\xf6\x83\xed\xa4\
+zm\xf8\x8d]\xf8\xac\xd5\x8d\xcee\xf7sK\xb4}\
+#\xe9\xbf\xe2\xd4\xcb.)\x1e\xc3E$\x92J\xba\xc5\
+$\x92I)I$\x92JRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5)1\xef\xac\xee\xad\xc5\x87\xc5\xa4\x83\xf8(\
+\xa4\x8a\x9bu\xf5n\xa3W\xd1\xc8~\x9f\xbcw\x7f\xd5\
+J\xb5W\xd6N\xa2\xcf\xa7\xe9\xd9\xfdf\xc1\xff\x00\xa2\
+Z\xb2\x92RG>Xm\x92C\xea\xb8NCi\x17\
+\xa0\xaf\xebW\xfal\x7f\x9b\x1d\xfd\xe1Z\xaf\xeb/N\
+~\x8f\x16W\xe6[#\xfe\x89+\x95IK\x1e\x7f<\
+w\x90\x97\x98\xfe\x14\xb8f\x98\xebokWV\xe9\xb7\
+}\x0c\x86I\xec\xe3\xb4\xfd\xce\x85e\x962\xc1,p\
+p\xf1\x06W\x02\x9d\xaesL\xb4\x90|\xb4R\xc7\xe2\
+r\xfd,`\xf9\x1a\xfe+\x870z\xc5\xef\xd2\x5cM\
+}O\xa8S\xfc\xdeE\x83\xc8\x9d\xc3\xeet\xabU\xfd\
+c\xeaL\xfaE\x96\x7fY\xb1\xff\x00S\x0ah\xfcG\
+\x11\xf9\xa3!\xf6\x15\xe3\x98\x8fPC\xd6$\xb9\xda\xfe\
+\xb5<iv8>lt~\x04\x1f\xca\xad\xd7\xf5\x9b\
+\xa7\xbf\xf9\xc6\xd9_\xc5\xa0\x8f\xfa$\xa9c\xce`\x97\
+\xe9\x81\xe7c\xf3\x5c2\xc0\xf5u\xd2T\xab\xeb\x1d2\
+\xdf\xa3\x90\xc1\xfdio\xfdT+U\xdbU\xa3uO\
+k\xc7\x8bH#\xf0R\xc6p\x9f\xcb!/#k\x81\
+\x07b\x0b4\x92I9*I$\x92R\x92I$\x94\
+\xa4\x92I%)$\x92IJI$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x939\
+\xc1\x8d.:\x00$\xfc\x93\xaa\xddE\xdb:~K\x87\
+\x22\xa7\xc7\xc4\xb4\xa1#\xc3\x12{\x02PM\x02^*\
+\xcb\x0d\xb6:\xd7r\xf2\x5c~fTRI`n\xd2\
+RI$\x82\x94\x92I$\xa5$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I\xc1-;\x9a`\xf8\x8d\x0ad\x92Sf\xbe\xa3\
+\x9fW\xf3y\x16\x0f-\xc4\xfeUj\xbf\xac=N\xbf\
+\xa4\xf6\xd8<\x1e\xd1\xff\x00}\xda\xb3\x12RG6X\
+|\xb3\x90\xfa\x94\x89\xc8lK\xbb_\xd6\xabG\xf3\xd8\
+\xed>lq\x1f\x81\x05[\xaf\xeb>\x13\xbf\x9c\xae\xc6\
+\x1f\x80p\xfc\xab\x97IK\x1e{<\x7fJ\xfc\xc0^\
+3Lu\xb7\xb2\xaf\xadt\xbb~\x8eC[\xe4\xf9g\
+\xfdP\x0a\xd5w\xd1o\xf3V5\xff\x00\xd5 \xfeE\
+\xc1\xa7\x1a\x1d\x14\xd1\xf8\x94\xc7\xcd\x08\x9f\x22G\xf1\x5c\
+9\x83\xd4\x07\xbfIW\xe9\xc4\x9e\x9f\x8cO\xfa\x1a\xff\
+\x00\xeaB\xb0\xb4bx\x80=\xc5\xb6\x01\xb1jI$\
+\x91R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa5S\xab\x7f\xc9\xb9?\xf1e\
+[U:\xb7\xfc\x9b\x93\xff\x00\x16S2\xff\x007?\
+\xee\x9f\xc9\x12\xf9O\x91x\xb4\xc9\xd3,\x16\x92\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa4\x92I%)$\x92IJI$\x92R\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)8L\x9c$\
+\xa7\xb6\xe9\xdf\xf2~/\xfcM\x7f\xf5!YU\xbaw\
+\xfc\x9f\x8b\xff\x00\x13_\xfdHVV\xfe?\x92?\xdd\
+\x1f\x93v;\x0f%$\x92I\xc9RI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\xaauo\xf97'\xfe,\xabj\xa7V\xff\x00\x93r\
+\x7f\xe2\xcaf_\xe6\xe7\xfd\xd3\xf9\x22_)\xf2/\x16\
+\x99:e\x82\xd2RI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JRI$\x92\x94\x92I$\xa5$\
+\x92I)I$\x92JRI$\x92\x94\x92I$\xa5\
+$\x92I)I$\x92JRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5'\x09\x93\x84\x94\xf6\xdd;\xfeO\xc5\xff\x00\
+\x89\xaf\xfe\xa4+*\xb7N\xff\x00\x93\xf1\x7f\xe2k\xff\
+\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\xf2n\xc7a\xe4\xa4\
+\x92I9*I$\x92R\x92I$\x94\xa4\x92I%\
+)$\x92IJI$\x92R\x95N\xad\xff\x00&\xe4\
+\xff\x00\xc5\x95mT\xea\xdf\xf2nO\xfcYL\xcb\xfc\
+\xdc\xff\x00\xba\x7f$K\xe5>E\xe2\xd3'L\xb0Z\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJI$\x92R\x92N\x01q\x0dh\x92t\x00w\
+[\xbd7\xea\xe1p\x17u\x09\x03\x91H:\xff\x00h\
+\xff\x00\x05&,3\xcd.\x18\x0b\xeez\x05\xd1\x81\x99\
+\xa0\xe3c\xe2\xe4e?f=n\xb0\xf7\x81\xa0\xf8\x9e\
+\xcb[\x1b\xea\xbeC\xc0vU\xad\xab\xf9-\x1b\x8f\xdf\
+\xa0\xfc\xab\xa2\xaa\xaa\xa8`\xae\x96\x860p\xd6\x88\x0a\
+kC\x17\xc3\xb1\xc7\x5c\x84\xcc\xfd\x83\xf8\xb3\xc7\x04G\
+\xcd\xab\x95W\xd5\xbe\x9d_\xf3\x81\xf6\x9f\xe5:\x07\xfd\
+\x0d\xaa\xcb:GLg\x18\xd5\x9f\xeb\x0d\xdf\xf5R\xae\
+$\xac\xc7\x06(\xed\x8e?`^!\x11\xb4C[\xf6\
+oO\xff\x00\xb8\xd5\x7f\x98\xdf\xeePwH\xe9\x8f\xe7\
+\x1a\xb1\xfdQ\xb7\xfe\xa6\x15\xc4\x918\xb1\x9d\xe1\x1f\xb0\
+'\x86=\x87\xd8\xe5\xd9\xf5w\xa6?\xe8\xb5\xf5\xff\x00\
+U\xc4\xff\x00\xd5\xeeT\xee\xfa\xac9\xc7\xbf\xe4\xf6\xff\
+\x00\x16\xff\x00r\xe8\x12Q\xcb\x94\xc1=\xf1\x81\xfd\xdf\
+O\xe4\xb4\xe2\x81\xfd\x11\xf9<nOE\xea8\xd2]\
+Q{G\xe7W\xee\x1f\xdf\xf8*+\xd0\x15<\xce\x95\
+\x85\x9c\x09\xba\xb8y\xff\x00\x08\xdd\x1d\xf7\xf7\xf9\xaa\xd9\
+~\x1a7\xc5/\xa4\xbf\x8b\x1c\xb9\x7f\xdd?k\xc5\xa4\
+\xb4\xfa\x87B\xca\xc2\x06\xca\xff\x00MH\xfc\xe6\x8d@\
+\xfeSVb\xa3\x93\x1c\xf1\x1e\x19\x83\x12\xc3(\x98\x9a\
+\x22\x94\x92I&!I$\x92JRI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\x92I$\xa5$\x92I)I$\x92JRp\x998\
+IOm\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\xeaB\xb2\xab\
+t\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\xfc\x7f$\x7f\
+\xba?&\xecv\x1eJI$\x93\x92\xa4\x92I%)\
+$\x92IJI$\x92R\x92I$\x94\xa4\x92I%\
+)T\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\
+\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4\
+^-2t\xcb\x05\xa4\xa4\x92I%)$\x92IJ\
+I$\x92R\x92I$\x94\xa5&1\xd6<1\x80\xb9\
+\xce0\x00\xe4\x92\xa2\xban\x81\xd2\x86=c6\xf1\xfa\
+W\x8f`?\x9a\xd3\xdf\xe2T\xbc\xbe\x09g\x98\x88\xd0\
+~\x91\xec\x17B\x06f\xbe\xd4\xdd#\xa3W\x82\xd1u\
+\xe0; \xf7\xe43\xc9\xbe~kQ$\x96\xce<q\
+\xc5\x11\x18\x0a\x01\xb7\x18\x88\x8a\x0aI$\x93\xd2\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa5\
+\x8b\xd5\xba\x03/\x0e\xc8\xc2\x01\x96\xf2\xea\xc6\x8dw\xc3\
+\xc0\xad\xa4\x932\xe2\x86h\xf0\xcc_\xe6<\x91(\x89\
+\x8a/\x00\xe6\xb9\x8e-p-sL\x10t \x84\xcb\
+\xa9\xeb}\x1ce\xb0\xe5c7\xf4\xed\x1e\xe0?<\x0f\
+\xe2\xb9u\x8f\xcc`\x96\x09\xf0\x9dA\xf9e\xdd\xa98\
+\x18\x1a?E\x92I%\x0a\xd5$\x92I)I$\x92\
+J]\xad.pku.0\x07\x99]I\xfa\xb5\xd3\
+\xcbF\xb6\x02\x04\x12\x1d\xc9\xf9\x82\xb0\xba=>\xbfR\
+\xa1\x9d\x83\xb7\x9f\xec\xfb\xbf\x82\xec\xd6\x87!\x82\x19#\
+9N\x22Z\x80/\xc3\x7f\xcd\x9b\x04\x04\x81$[\x86\
+\xff\x00\xaa\xd8\xe7\xe8^\xf6\xfc@?\xdc\x82\xff\x00\xaa\
+\xb6\x8f\xe6\xf2\x1a|\x9c\xc2?#\x8a\xe8\x92VO%\
+\xcb\x9f\xd0\xaf\x22\x7f\x8b)\xc3\x03\xd1\xe3\xb3\xfa6O\
+N\xa8]s\x98\xe6\xb9\xc1\x83i3$\x13\xdd\xa3\xc1\
+P]G\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\x97Y\
+\xbc\xde(\xe1\xcaa\x0d\xa85\xf2\xc4FT\x14\x92I\
+(\x16)$\x92IJI$\x92R\x93\x84\xc9\xc2J\
+{n\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95\
+[\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9\
+#\xfd\xd1\xf97c\xb0\xf2RI$\x9c\x95$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)J\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\
+\xf97'\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\
+\x22\xf1i\x93\xa6X-%$\x92I)I$\x92J\
+RI$\x92\x94\x92I\xc0$\xc0\xd4\x9e\x02Jt\xba\
+\x17O\xfbnW\xa9`\x9ai\x87:x'\xf3Z\xba\
+\xd5S\xa5\xe1\x0c\x1c6S\xf9\xe7\xdda\xf1q\xe7\xee\
+\xe1[[\x5c\xa6\x0fg\x18\x07\xe6\x96\xb2\xfe\x1fF\xde\
+(pG\xc4\xee\xa4\x92IN\xbdI$\x92JRI\
+,\xde\xaf\xd5\xd9\xd3\x99\xe9\xb0\x07\xde\xf1-of\x8f\
+\xdernL\x91\xc5\x13)\x9a\x01\x12\x90\x88\xb2\xdf\xb2\
+\xda\xean\xfb^\xd64~s\x88\x03\xf1UOX\xe9\
+\x8d0r\x19\xf2\x93\xfc\x17#\x91\x95\x91\x97g\xab\x90\
+\xf2\xf7v\x9e\x07\xc0vBY\xf3\xf8\x94\xaf\xd1\x01_\
+\xd6\xfe\xc6\x03\xcc\x1e\x83\xed{\x9a3q2LQs\
+\x1e|\x01\x13\xf7r\x8e\xb8\x09#Q\xdb\x85\xaf\xd3:\
+\xfd\xd8\xee\x15f\x13mGM\xe7W7\xfb\xc2\x93\x0f\
+\xc4c#\xc3\x92<7\xfaCe\xd1\xce\x0e\x92\x15\xe2\
+\xf5\x09(\xb1\xed\xb1\xa1\xec!\xcdp\x90F\xa0\x82\xa4\
+\xaf3)$\x92IJ\x5c\xd7\xd6.\x98)\x7f\xdb\xa9\
+\x1e\xc7\x98\xb4\x0e\xce?\x9d\xf3]*\x85\xd4\xd7}O\
+\xa6\xd1,x-p\xf8\xa8\xb9\x8c#>3\x13\xbe\xf1\
+=\x8a\xd9\xc0N5\xf6<\x12H\xd9\x98\xcf\xc3\xc9\xb3\
+\x1d\xfa\x96\x18\x07\xc4v?r\x0a\xc4 \xc4\x90t \
+\xd1i\x91Z\x15$\x92H)I$\x92Jw>\xab\
+S\xbb\x22\xec\x83\xf9\x8c\x0c\x1f\x17\x19?\xf5+\xa4Y\
+_V\xe9\xf4\xfa\x7f\xa8y\xb9\xe5\xdf!\xed\xfe\x0bU\
+mrp\xe0\xc1\x0f\x11\xc5\xf6\xff\x00co\x10\xa8\x0f\
+\x1dT\x92I)\xd7\xb8\xff\x00Y\xff\x00\xa0W\xff\x00\
+\x1c\xdf\xfa\x97\xae]u\x1fY\xff\x00\xa0W\xff\x00\x1c\
+\xdf\xfa\x97\xae]d|C\xf9\xf3\xe4\x1a\xb9\xfe\x7f\xa2\
+\x92I%U\x8dI$\x92JRI$\x92\x94\x9c&\
+N\x12S\xdbt\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xaa\
+\xdd;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4++\x7f\x1f\xc9\
+\x1f\xee\x8f\xc9\xbb\x1d\x87\x92\x92I$\xe4\xa9$\x92I\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\xb5S\xab\x7f\
+\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\x91/\x94\xf9\
+\x17\x8bL\x9d2\xc1i)$\x92IJI$\x92R\
+\x92I$\x94\xa5\xa5\xd0q>\xd5\x9e\xd78K)\x1e\
+\xa3\xbe#\xe8\x8f\xbdf\xae\xa7\xea\xd67\xa5\x84o#\
+\xdd{\xa4\x7fU\xba\x0f\xc6U\x8eO\x1f\xbb\x9a \xed\
+\x1fQ\xfa\x7fj\xfcQ\xe2\x98\xf0\xd5\xd7I$\x96\xcb\
+mI$\x92JRI$\x92\x90fe3\x0f\x19\xf9\
+6j\x184\x1e'\xb0\x5cU\xf7\xd9\x93s\xef\xb4\xee\
+{\xcc\x92\xb6\xfe\xb4e\x12\xea\xb0\xdat\x03\xd4\x7f\xc4\
+\xe8\xdf\xe2\xb0\x16W\xc43\x19\xe4\xf6\xc7\xcb\x0f\xfaM\
+l\xf3\xb9p\xf4\x1f\x9a\x92I%M\x89I$\x92J\
+w~\xaeu\x12\xc7\xfd\x82\xe3\xedt\x9a\x89\xecy-\
+\xf9\xae\x8dp,{\xab{la\x874\x874\xf8\x11\
+\xa8]\xc6\x1eKr\xf1k\xc8o\x164\x12<\x0f\x04\
+|\x8a\xd4\xf8~c8\x9cr:\xc3o\xee\xff\x00c\
+c\x04\xecp\x9e\x9f\x92d\x92I]fRI$\x92\
+\x9c/\xac\xf8{\xaafk\x06\xac\xf6?\xfa\xa7\xe8\xfe\
+?\x95s\x8b\xbb\xc9\xa1\xb98\xf6P\xfe,io\xde\
+\xb8k\x18\xea\xde\xea\xde!\xcc%\xae\x1e`\xc1Y\x7f\
+\x10\xc5\xc1\x90Lm1\xaf\x98kg\x8dJ\xfb\xb1I\
+$\x95&%$\x92\xb3\xd3h\xfbF}\x14\x91!\xcf\
+\x05\xdf\xd5o\xb8\xfe\x01:12\x90\x88\xdc\x90>\xd5\
+\x01d\x0e\xefc\x87O\xd9\xf1)\xa3\x8d\x8ckO\xc6\
+5FI%\xbc\x00\x88\x00l\x057\x80\xad\x14\x92I\
+\x22\xa7\x1f\xeb?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\
+\xae\xa3\xeb?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xac\
+\x8f\x88\x7f>|\x83W?\xcf\xf4RI$\xaa\xb1\xa9\
+$\x92IJI$\x92R\x93\x84\xc9\xc2J{n\x9d\
+\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\
+\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\
+\xf97c\xb0\xf2RI$\x9c\x95$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)J\
+\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\
+\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\
+\x93\xa6X-%$\x92I)I$\x92JRI$\
+\x92\x97\x00\xb8\x86\x81$\xe8\x07\x9a\xee\xb1\xa9\x18\xf8\xf5\
+\xd08\xad\xa1\xbfp\x5c\x87H\xa7\xd7\xeaT0\xea\x03\
+\xf7\x9f\xec\xfb\xbf\x82\xed\x16\x97\xc3a\xa4\xe7\xdc\x88\xfd\
+\x9a\xb3\xf2\xe3B~\x8aI$\x95\xf6u$\x92I)\
+I$\xa1k\xc5u\xbe\xc3\xc3\x1a]\xf7\x09Ke<\
+wW\xbb\xd7\xeaW\xbf\xb0y`\xf83\xdb\xfc\x154\
+\xee%\xc4\xb8\xeaN\xa52\xc0\x9c\xb8\xe5)\x1f\xd2$\
+\xfd\xad\x22l\x93\xdc\xa9$\x92MB\x92I$\x94\xa5\
+\xd2\xfdW\xbf~5\xb8\xe4\xeb[\x83\x87\xc1\xc3\xfb\xc2\
+\xe6\x96\xb7\xd5\xab}>\xa1\xe9\xf6\xb5\x85\xbf1\xee\x1f\
+\x90\xab\x1c\x9c\xf83\xc3\xc4\xf0\xfd\xbf\xda\xbf\x11\xa9\x8f\
+\x1d\x1e\xa9$\x92[-\xb5$\x92I)K\x92\xfa\xc3\
+\x8f\xe8u\x17<\x08m\xc0Y\xf3\xe0\xfeE\xd6\xac?\
+\xad\x14n\xc7\xab s[\x8b\x0f\xc1\xc3\xfb\xda\xabs\
+\xd0\xe3\xc0OX\x91/\xe3\xf81\xe6\x17\x03\xe1\xab\xcd\
+\xad\xfe\x87\xd30\xb30\x8d\x99\x15\xeexyn\xed\xce\
+\x1a\x00<\x0a\xc0]O\xd5\x9f\xf9=\xdf\xf1\x8e\xfc\x8d\
+Ty\x18\xc6y\xaa@Hp\x9d\x08\xb6\x1c \x19\xd1\
+\x17\xa37}\x5c\xe9\x8e\xe1\xafo\xc1\xc7\xf8\xca\x9e\x1f\
+D\xc4\xc2\xc8\x19\x14\x97\x97\x00@\x0e \x8d~KE\
+%\xa49| \x89\x0cq\x04\x1b\x14\x1b\x1c\x11\x06\xf8\
+B\x92I%*\xe5$\x92I)\xcd\xeb\xb8\x99\x19\x98\
+m\xab\x19\xbb\xdc,\x0e\x22@\xd05\xc3\xbf\xc5s\xce\
+\xe8\xddQ\xbc\xe3\xb8\xfc\x08?\x90\xae\xcd%[7'\
+\x0c\xf2\xe3\x94\xa4\x0dV\x95\xfc\x18\xe7\x8a36Ix\
+wt\xec\xf6},k\x7f\xccq\xfc\x81\x09\xd4\xda\xcf\
+\xa6\xc77\xfa\xc0\x8f\xca\xbb\xc4\xea\x13\xf0\xc8\xf4\xc8G\
+\x98\xbf\xe0\xb7\xee\xe3\xf7\x9f?Ih\xfd`\xff\x00\x95\
+m\xfe\xab?\xeaB\xceT2C\xdb\x9c\xa1w\xc2H\
+\xbf&\x09\x0e\x12Gb\xa4\x92I1\x0aN\x13'\x09\
+)\xed\xbaw\xfc\x9f\x8b\xff\x00\x13_\xfdHVUn\
+\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95\xbf\x8f\
+\xe4\x8f\xf7G\xe4\xdd\x8e\xc3\xc9I$\x92rT\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x92\
+I$\xa5*\x9d[\xfeM\xc9\xff\x00\x8b*\xda\xa9\xd5\
+\xbf\xe4\xdc\x9f\xf8\xb2\x99\x97\xf9\xb9\xff\x00t\xfeH\x97\
+\xca|\x8b\xc5\xa6N\x99`\xb4\x94\x92I$\xa5$\x92\
+I)I$\x92Jv~\xacU\xbf6\xcbO\x15\xd7\
+\xf8\xb8\x8f\xe0\x0a\xe9\xd6\x17\xd5Z\xe2\x9b\xed\xfd\xe7\xb5\
+\xbf\xe6\x89\xff\x00\xbf-\xd5\xb1\xc8\xc7\x87\x04|l\xfe\
+-\xac\x22\xa0<T\x92I+,\x8aI$\x92R\x95\
+N\xabg\xa7\xd3\xb2]\xdf\xd3p\x1f\x13\xa7\xf1V\xd6\
+o\xd6\x07\xed\xe9v\x8f\xde,o\xfd&\x9f\xe0\xa3\xcc\
+xqd=\xa3/\xc9l\xcdFG\xc0\xbc\x8aI$\
+\xb0\x9ajI$\x92R\x92I$\x94\xa5o\xa4\xd9\xe9\
+\xf5,wx\xbc7\xfc\xefo\xf1U\x14\xe9\x7f\xa7u\
+v~\xe3\xda\xef\xf3H)\xd0\x97\x0c\xe3.\xc4\x1f\xb1\
+ \xd1\x07\xb1{\xd4\x92Io\xb7T\x92I$\xa5*\
+=f\xaf[\xa6^\xde\xedn\xf1\xfd\x9fw\xf0W\x94\
+l`\xb2\xb7V\xee\x1e\x0bO\xc0\xe8\x9b\x92<p\x94\
+\x7fx\x11\xf6\xa0\x8b\x04w\x0f\x02\xba\x9f\xab?\xf2{\
+\xbf\xe3\x1d\xf9\x1a\xb9r\x0bIk\xb9\x1a\x1f\x88]G\
+\xd5\x9f\xf9=\xdf\xf1\x8e\xfc\x8dY\x7f\x0f\xfe\x7f\xfc\x12\
+\xd6\xc1\xf3\xfd\x1dt\x92Ik6\x94\x92I$\xa5$\
+\x92I)I$\x92JRI$\x92\x9eG\xeb\x07\xfc\
+\xabo\xf5Y\xff\x00R\x16j\xd2\xfa\xc1\xff\x00*\xdb\
+\xfdV\x7f\xd4\x85\x9a\xb0\xf9\x8f\xe7\xb2\x7f~_\x9bN\
+\x7f<\xbc\xca\x92I%\x12\xd5'\x09\x93\x84\x94\xf6\xdd\
+;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\
+\x93\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\
+\xf2n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x95\
+N\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2n\
+O\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\
+\xe2\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\
+\x92I%=_\xd5\xb6m\xe9\xa1\xdf\xbe\xf7\x1f\xc8\xdf\
+\xe0\xb5U\x0e\x86\xdd\xbd.\x81\xe2\x0b\xbf\xces\x8f\xf1\
+W\xd6\xef.+\x0e1\xfdA\xf97 *\x11\xf2\x0a\
+I$\x94\x8b\x94\x92I$\xa5,\x8f\xac\xce\x8e\x9e\xc1\
+\xe3h\xff\x00\xa9qZ\xeb\x13\xebK\xa3\x16\x96\xf8\xd8\
+O\xdc\x0f\xf7\xa8y\xb3X2y,\xcb\xf2K\xc9\xe6\
+\x92I%\x88\xd4RI$\x92\x94\x92I$\xa5$\x92\
+t\x94\xf7\x94\xbf\xd4\xa5\x96~\xf3C\xbe\xf1*j\xbe\
+\x01\xdd\x83\x8e\x7f\xe0\x99\xff\x00R\x15\x85\xd0D\xdcA\
+\xee\x03tj\x02\x92I$R\xa4\x92I%<?P\
+g\xa7\x9d\x90\xcf\x0b\x1d\xf9J6\x17W\xcb\xc0\xab\xd1\
+\xa3n\xc2K\xbd\xc2u)\xfa\xe36uK\xc0\xeeA\
+\xfb\xda\xd2\xa8,9\xcaX\xb2\xcf\x80\x98\x91)\x0d<\
+\xdad\x98\xc8\xd1\xaa%\xd9\xaf\xeb6qsZYQ\
+\x92\x07\x07\xbf\xf6\x97L\xb8*\xff\x00\x9cg\xf5\x87\xe5\
+]\xe8W\xfe\x1f\x96yD\xf8\xe4eUW\xf5f\xc1\
+#.+7T\xbaI$\xae\xb3)$\x92IMl\
+\xdc\xeap*\x17_\xbbk\x9c\x19\xed\x12d\x82\x7f\x82\
+\xa8>\xb1\xf4\xc3\xf9\xcf\x1f\x16\x94?\xac\xff\x00\xd0+\
+\xff\x00\x8eo\xfdK\xd7.\xa8s\x5c\xdeL9L#\
+\xc3T7\x0c92\xca\x12\xa1O^:\xff\x00K?\
+\xe1H\xf8\xb5\xdf\xdc\xa6:\xdfK<d\x0f\x98p\xfc\
+\xad\x5cjJ!\xf1,\xbf\xbb\x0f\xb0\xff\x00\x15\x9fx\
+\x97`\xde\xebWU\x91\xd4l\xb6\x97\x07\xb0\x86\xc3\x87\
+\x1a\x00\xa8\xa4\x92\xa99\x19\xcaS;\xc8\x93\xf6\xb1\x93\
+d\x9e\xe5I$\x92j\x14\x9c&N\x12S\xdbt\xef\
+\xf9?\x17\xfe&\xbf\xfa\x90\xac\xaa\xdd;\xfeO\xc5\xff\
+\x00\x89\xaf\xfe\xa4++\x7f\x1f\xc9\x1f\xee\x8f\xc9\xbb\x1d\
+\x87\x92\x92I$\xe4\xa9$\x92IJI$\x92R\x92\
+I$\x94\xa4\x92I%)$\x92IJU:\xb7\xfc\
+\x9b\x93\xff\x00\x16U\xb5S\xab\x7f\xc9\xb9?\xf1e3\
+/\xf3s\xfe\xe9\xfc\x91/\x94\xf9\x17\x8bL\x9d2\xc1\
+i)$\x92IJI$\x92R\x92I$\x94\xf6\xdd\
+1\xbbzv0\xff\x00\x82a\xfb\xda\x0a\xb4\x83\x846\
+\xe1\xd0<+`\xff\x00\xa2\x11\x96\xfe1P\x88\xec\x07\
+\xe4\xdd\x8e\xc3\xc9I$\x92rT\x92I$\xa5,\x1f\
+\xadG\xf4X\xe3\xf9N\xfc\x81o,\x0f\xadG\xdb\x8c\
+<\xdf\xff\x00}U\xf9\xdf\xf7<\xfe\x9f\xf4\x82\xcc\xdf\
+!\xfe]^y$\x92X\xcdE$\x92I)I$\
+\x92JRI$\x92\x9e\xd7\xa5\x19\xe9\xd8\xe7\xfe\x0c+\
+j\x97F3\xd2\xf1\xff\x00\xa9\xfcJ\xba\xb7\xb1k\x8e\
+\x1f\xdd\x8f\xe4\xdd\x8f\xca<\x82\x92I$\xf4\xa9$\x92\
+IO'\xf5\x8d\xbbz\x99?\xbd[]\xf9[\xfc\x16\
+Z\xd8\xfa\xce#>\xb3\xe3H\x1fs\x9f\xfd\xeb\x1db\
+sB\xb3\xe4\xfe\xf1\xfcZy>yy\xb2\xaf\xf9\xc6\
+\x7fX~U\xde\x85\xc1W\xfc\xe3?\xac?*\xefB\
+\xb7\xf0\xcd\xb2\x7f\x83\xfbYy\x7f\xd2\xfa.\x92I-\
+\x06u$\x92I)\xc7\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\
+\xd4\xbdr\xeb\xa8\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbd\
+r\xeb#\xe2\x1f\xcf\x9f \xd5\xcf\xf3\xfd\x14\x92I*\
+\xacjI$\x92R\x92I$\x94\xa4\xe12p\x92\x9e\
+\xdb\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eV\xe9\xdf\
+\xf2~/\xfcM\x7f\xf5!Y[\xf8\xfeH\xff\x00t\
+~M\xd8\xec<\x94\x92I'%I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)I$\x92JR\
+\xa9\xd5\xbf\xe4\xdc\x9f\xf8\xb2\xad\xaa\x9d[\xfeM\xc9\xff\
+\x00\x8b)\x99\x7f\x9b\x9f\xf7O\xe4\x89|\xa7\xc8\xbcZ\
+d\xe9\x96\x0bII$\x92JRI$\x92\x94\x91\xe0\
+\xa4\x91\xe0\xa4\xa7\xbb\xc6\x11\x8fP\xfeC\x7f EC\
+\xc7\xfe\x8fW\xf5\x1b\xf9\x11\x17A\x1d\x87\x93xl\xa4\
+\x92I\x15)$\x92IJ\x5c\xff\x00\xd6\xaf\xfbM\xfd\
+\xbf\xfb\xea\xe8\x17?\xf5\xab\x9co\xed\xff\x00\xdfU~\
+{\xfd\xcf?\xa7\xfd \xc7\x9b\xe4?O\xcd\xe7\xd2I\
+%\x8c\xd5RI$\x92\x94\x92I$\xa5$\x92I)\
+\xec\xba/\xfc\x97\x8f\xfdS\xf9J\xbc\xa8\xf4O\xf9/\
+\x1f\xfa\xa7\xf2\x95yn\xe1\xfek\x1f\xf7#\xf97!\
+\xf2\xc7\xc8)$\x92R.RI$\x92\x9eg\xebH\
+\xfdn\x93\xff\x00\x06\x7f\xea\x8a\xc5[\x7fZ\x7f\xa4\xd1\
+\xff\x00\x16\x7f*\xc4X\xbc\xe7\xf3\xf9<\xff\x00`j\
+e\xf9\xe4\xca\xbf\xe7\x19\xfda\xf9Wz\x17\x05_\xf3\
+\x8c\xfe\xb0\xfc\xab\xbd\x0a\xd7\xc36\xc9\xfe\x0f\xedd\xe5\
+\xff\x00K\xe8\xbaI$\xb4\x19\xd4\x92I$\xa7\x1f\xeb\
+?\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xae\xa3\xeb?\
+\xf4\x0a\xff\x00\xe3\x9b\xff\x00R\xf5\xcb\xac\x8f\x88\x7f>\
+|\x83W?\xcf\xf4RI$\xaa\xb1\xa9$\x92IJ\
+I$\x92R\x93\x84\xc9\xc2J{n\x9d\xff\x00'\xe2\
+\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\xc9\xf8\xbf\xf1\
+5\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\xf97c\xb0\
+\xf2RI$\x9c\x95$\x92I)I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)J\xa7V\xff\x00\
+\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\xfe,\xa6e\
+\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\x93\xa6X-\
+%$\x92I)I$\x92JRG\x84\x92IOw\
+\x8ag\x1a\xa3\xfc\x86\xfe@\x8a\x81\x82waP|j\
+a\xff\x00\xa2\x11\xd7A\x0dc\x1f \xdd\x1b\x05$\x92\
+H\xa5I$\x92JR\xe7\xfe\xb5\x7f\xdao\xed\xff\x00\
+\xdfW@\xb0>\xb5\x0fn1\xf3\x7f\xfd\xf5W\xe7\x7f\
+\xdc\xf3\xfa\x7f\xd2\x0b3|\x87\xe9\xf9\xbc\xf2I$\xb1\
+\x9a\x8aI$\x92R\x92I$\x94\xa4\x92I%=\x97\
+E\xff\x00\x92\xf1\xff\x00\xaa\x7f)W\x95.\x8d\xff\x00\
+%\xe3\xff\x00S\xf8\x95uoa\xfek\x1f\xf7#\xf9\
+7a\xf2\xc7\xc8)$\x92OJ\x92I$\x94\xf3_\
+Z\x7f\xa5Q\xff\x00\x16\x7f*\xc4[?Z\x0f\xeb\xb5\
+\x0f\x0a\xbf+\x9c\xb1\x96/7\xfc\xfeO?\xd8\x1a\x99\
+~yy\xb2\xaf\xf9\xc6\x7fX~U\xde\x85\xc1W\xfc\
+\xe3?\xac?*\xefB\xb5\xf0\xcd\xb2\x7f\x83\xfbY9\
+\x7f\xd2\xfa.\x92I-\x06u$\x92I)\xc7\xfa\xcf\
+\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb\xa8\xfa\xcf\xfd\x02\
+\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb#\xe2\x1f\xcf\x9f \xd5\
+\xcf\xf3\xfd\x14\x92I*\xacjI$\x92R\x92I$\
+\x94\xa4\xe12p\x92\x9e\xdb\xa7\x7f\xc9\xf8\xbf\xf15\xff\
+\x00\xd4\x85eV\xe9\xdf\xf2~/\xfcM\x7f\xf5!Y\
+[\xf8\xfeH\xff\x00t~M\xd8\xec<\x94\x92I'\
+%I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JR\xa9\xd5\xbf\xe4\xdc\x9f\xf8\xb2\xad\
+\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\x7f\x9b\x9f\xf7O\
+\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0bII$\x92J\
+RI$\x92\x94\x92I$\xa7\xb6\xe9n\xdd\xd3q\x8f\
+\xfc\x13\x07\xdc\x00V\x95\x0e\x86\xed\xdd*\x83\xe0\x1c>\
+\xe78+\xeb{\x09\xbcp=\xe3\x1f\xc9\xbb\x1db<\
+\x82\x92I$\xf4\xa9$\x92IJX_Z\x87\xe8\xb1\
+\xcf\xf2\x9d\xf9\x02\xddX\xbfZ\x1b8\x94\xbb\xc2\xc8\xfb\
+\xda\x7f\xb9A\xce\x0b\xe5\xf2y\x0f\xcc,\xcb\xf2I\xe6\
+RI%\x8a\xd4RI$\x92\x94\x92I$\xa5$\x92\
+I)\xed:@\x8e\x99\x8e?\x90\x15\xc5[\xa6\x8d\xbd\
+?\x1c\x7f\xc1\xb7\xf1\x0a\xca\xde\xc5\xa68\x0f\xea\x8f\xc9\
+\xbb\x1f\x94y\x05$\x92I\xe9RI$\x92\x9e[\xeb\
+1\x9e\xa2\xd1\xfb\xb54\x7f\xd2yY\x0bK\xeb\x0b\xb7\
+uK\x07\xee\xb5\x8d\xff\x00\xa2\x0f\xf1Y\xab\x13\x997\
+\x9b'\xf7\x8f\xe0\xd3\xc9\xf3\xcb\xcd\x95\x7f\xce3\xfa\xc3\
+\xf2\xae\xf4.\x0a\xbf\xe7\x19\xfda\xf9Wz\x15\xbf\x86\
+m\x93\xfc\x1f\xda\xcb\xcb\xfe\x97\xd1t\x92Ih3\xa9\
+$\x92IN?\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\
+\x97]G\xd6\x7f\xe8\x15\xff\x00\xc77\xfe\xa5\xeb\x97Y\
+\x1f\x10\xfe|\xf9\x06\xae\x7f\x9f\xe8\xa4\x92IUcR\
+I$\x92\x94\x92I$\xa5'\x09\x93\x84\x94\xf6\xdd;\
+\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\x93\
+\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\xf2\
+n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x95N\
+\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2nO\
+\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\xe2\
+\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\x92\
+I%=_\xd5\xb7\xee\xe9\xa0~\xe3\xdc?#\xbf\x8a\
+\xd5X\x7fU\xac\x9c{\xeb\xfd\xd7\x83\xfep\xff\x00b\
+\xdc[|\xa1\xe2\xc1\x8c\xff\x00V\xbe\xcd\x1bx\x8d\xc2\
+>JI$\x94\xcb\xd4\x92I$\xa5,\x8f\xac\xcd\x9e\
+\x9e\xd3\xfb\xb6\xb4\xfe\x0e\x1f\xc5k\xac\xee\xbe\xdd\xdd*\
+\xef\xe4\x96;\xeesT\x5c\xc8\xbc9?\xba\x7f\x0dV\
+\xe4\xd6\x12\xf2y\x04\x92Ia\xb4\xd4\x92I$\xa5$\
+\x92I)I$\x92J{\x9c!\xb7\x0e\x86\xf8T\xc1\
+\xff\x00D#\xa8\xb1\xbb\x18\xd6\x0f\xcd\x00}\xcaK\xa0\
+\x88\xa0\x07`\xde\x1a\x05$\x92H\xa9I$\x92Jx\
+\xce\xb0\xfd\xfdO \xf8?o\xf9\xa07\xf8*H\xd9\
+o\xf52\xee\xb3\xf7\xacq\xfcJ\x0a\xc1\xc8x\xa73\
+\xdeD\xfe-)\x1b$\xf8\xb2\xaf\xf9\xc6\x7fX~U\
+\xde\x85\xc1W\xfc\xe3?\xac?*\xefB\xbd\xf0\xcd\xb2\
+\x7f\x83\xfbY\xb9\x7f\xd2\xfa.\x92I-\x06u$\x92\
+I)\xc7\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb\
+\xa8\xfa\xcf\xfd\x02\xbf\xf8\xe6\xff\x00\xd4\xbdr\xeb#\xe2\
+\x1f\xcf\x9f \xd5\xcf\xf3\xfd\x14\x92I*\xacjI$\
+\x92R\x92I$\x94\xa4\xe12p\x92\x9e\xdb\xa7\x7f\xc9\
+\xf8\xbf\xf15\xff\x00\xd4\x85eV\xe9\xdf\xf2~/\xfc\
+M\x7f\xf5!Y[\xf8\xfeH\xff\x00t~M\xd8\xec\
+<\x94\x92I'%I$\x92JRI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JR\xa9\xd5\xbf\xe4\
+\xdc\x9f\xf8\xb2\xad\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\
+\x7f\x9b\x9f\xf7O\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0b\
+II$\x92JRI$\x92\x94\x92I$\xa7o\xea\
+\xb5\xbbr\xae\xab\xf7\xd8\x1d\xf3a\xff\x00\xcc\x97J\xb8\
+\xee\x87o\xa5\xd4\xe9'\x87\x92\xc3\xfd\xa0\x7f\x8a\xecV\
+\xb7\xc3\xe5xk\xf7dG\xdb\xaf\xedl\xe07\x0a\xec\
+T\x92I+l\xaaI$\x92R\x95^\xa8\xcfS\xa7\
+d3\xc6\xb7\x11\xf2\x12\xad(\xd8\xc1en\xac\xf0\xf6\
+\x96\xfd\xe2\x13f8\xa3(\xf7\x04}\xa8\x22\xc1\x1d\xde\
+\x05$\xee\x05\xa4\xb4\xf24)\x96\x03II$\x92J\
+RI$\x92\x94\x8b\x8a\xcfS&\x9a\xff\x00~\xc67\
+\xefp\x08J\xefG\xaf\xd4\xeax\xe3\xc1\xfb\xbf\xcd\x04\
+\xff\x00\x04\xfcq\xe2\x9cc\xde@}\xa51\x16@\xee\
+^\xcd$\x92[\xcd\xd5$\x92I)Hy\x16\x8ah\
+\xb2\xe3\xfe\x0d\x8e\x7f\xf9\xa2Q\x15\x0e\xbbo\xa5\xd3.\
+=\xdf\x0c\x1f\xda#\xf8&\xe4\x97\x04%/\xdd\x89?\
+`D\x8d\x02{\x07\x8e\xd7\xbf)$\x92\xc0i2\xaf\
+\xf9\xc6\x7fX~U\xde\x85\xc1W\xfc\xe3?\xac?*\
+\xefB\xd1\xf8f\xd9?\xc1\xfd\xac\xfc\xbf\xe9}\x17I\
+$\x96\x83:\x92I$\x94\xe3\xfdg\xfe\x81_\xfcs\
+\x7f\xea^\xb9u\xd4}g\xfe\x81_\xfcs\x7f\xea^\
+\xb9u\x91\xf1\x0f\xe7\xcf\x90j\xe7\xf9\xfe\x8aI$\x95\
+V5$\x92I)I$\x92JRp\x998IO\
+m\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\xeaB\xb2\xabt\xef\
+\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\xfc\x7f$\x7f\xba?\
+&\xecv\x1eJI$\x93\x92\xa4\x92I%)$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)T\
+\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\xe4\xff\
+\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4^-\
+2t\xcb\x05\xa4\xa4\x92I%)$\x92IJI$\
+\x92S:\xacu6\xb2\xd6\xfd*\xdc\x1c>-2\xbb\
+\xb6=\xb61\xb60\xcb\x5c\x03\x81\xf2:\xae\x05v\x1d\
+\x0b#\xed\x1d6\xa92\xea\xe6\xb7\x7fg\x8f\xc0\x85\x7f\
+\xe1\xb3\xa9\xce\x1d\xc5\xfd\x9f\xef\xb3r\xe7R;\xba\x09\
+$\x92\xd2l)$\x92IJI$\x92S\xc5uZ\
+}\x0e\xa3\x91_m\xe5\xc3\xe0\xff\x00w\xf1U\x16\xd7\
+\xd6|}\x99U\xe4\x01\xa5\xad\xda~-\xff\x00aX\
+\xab\x0f\x98\x87\xb7\x9aq\xfe\xb1\xfb\x0e\xa1\xa7\x90p\xc8\
+\x8f\x15$\x92J%\xaaI$\x92R\x96\xbf\xd5\x9a\xb7\
+\xe7\xba\xce\xd5VO\xcd\xd0\xd1\xf8J\xc8]/\xd5z\
+6c[\x90F\xb6\xbfh\xf80\x7fyV9(q\
+\xe7\x87\x87\xab\xec\xfe\xd5\xf8\x85\xccxj\xed\xa4\x92K\
+e\xb6\xa4\x92I%)a}i\xbe*\xa7\x18~s\
+\x8d\x87\xe0\xd1\x03\xfe\xa9n\xaeG\xaf\xe4z\xfdI\xed\
+\x06[P\x15\x8f\x88\xd4\xfe%U\xe7\xe7\xc1\x80\x8e\xb2\
+\x22?\xb7\xf61\xe65\x03\xe3\xa3\x9a\x92I,\x86\xab\
+*\xff\x00\x9cg\xf5\x87\xe5]\xe8\x5c\x15\x7f\xce3\xfa\
+\xc3\xf2\xae\xf4-\x1f\x86m\x93\xfc\x1f\xda\xcf\xcb\xfe\x97\
+\xd1t\x92Ih3\xa9$\x92IN?\xd6\x7f\xe8\x0c\
+\xff\x00\x8eo\xfdK\xd7.\xba\xaf\xac\xad\x9e\x9c\x0f\xee\
+\xd8\xd3\xf88\x7f\x15\xca\xac\x9f\x88\x7f?\xfe\x08j\xe7\
+\xf9\xfe\x8aI$\x95F5$\x92I)I$\x92J\
+Rp\x998IOm\xd3\xbf\xe4\xfc_\xf8\x9a\xff\x00\
+\xeaB\xb2\xabt\xef\xf9?\x17\xfe&\xbf\xfa\x90\xac\xad\
+\xfc\x7f$\x7f\xba?&\xecv\x1eJI$\x93\x92\xa4\
+\x92I%)$\x92IJI$\x92R\x92I$\x94\
+\xa4\x92I%)T\xea\xdf\xf2nO\xfcYV\xd5N\
+\xad\xff\x00&\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2\
+D\xbeS\xe4^-2t\xcb\x05\xa4\xa4\x92I%)\
+$\x92IJI$\x92R\x96\xdf\xd5\x8c\x9d\x97\xd9\x8a\
+\xe3\xa5\x8d\xdc\xdf\x8by\xfc\x0a\xc4E\xc5\xbd\xd8\xb9\x15\
+\xe43\x9a\xdc\x1d\xf1\xf1\x1f0\xa4\xc1\x93\xda\xc9\x19\xf6\
+:\xf9u]\x09p\xc8\x17\xbbIF\xbb\x19mm\xb6\
+\xb3-x\x0ei\xf2:\xa9-\xd1\xae\xa1\xb8\xa4\x92I\
+%)$\x92INw]\xc4\xfbWO~\xd1/\xab\
+\xf4\x8d\xfe\xcf?\x82\xe4\x17\xa0.;\xact\xf3\x81\x96\
+CG\xe8l\x97V{y\xb7\xe4\xb3\xfe#\x84\xe9\x94\
+\x7fv_\xb0\xb0g\x86\xd2\x1eE\xa0\x92I,\xe6\x05\
+$\x92I)\x93\x18\xeb\x1e\xda\xd8%\xce!\xad\x1e$\
+\xe8\x17q\x87\x8e\xdcLZ\xf1\xdb\xc5m\x00\x9f\x13\xdc\
+\xfc\xca\xc2\xfa\xb9\xd3\x8b\xec\xfb}\xa3\xda\xc9\x15Ow\
+p]\xf2]\x1a\xd4\xf8~\x13\x08\x9c\x92\x1a\xcfo\xee\
+\xff\x00kc\x04(q\x1e\xbf\x92\x92I%u\x99I\
+$\x92JE\x93{q\xb1\xec\xbd\xfcV\xd2\xef\xb9p\
+\xcf{\xac{\xacy\x978\x97\x13\xe6u+\xa2\xfa\xcf\
+\x99\xb2\x96a4\xeba\xde\xff\x00\xea\x8e?\x1f\xc8\xb9\
+\xb5\x97\xf1\x1c\xbcY\x04\x06\xd0\x1a\xf9\x96\xb6y\x5c\xab\
+\xb2\x92I%I\x89pv\x90\xef\x03?r\xef\x87\x0b\
+\x80\xe7E\xdc\xe0\xdb\xeb\xe1Qo%\xd5\xb4\x9f\x8ck\
+\xf8\xad\x0f\x86\x1drG\xb8\x07\xec\xbf\xe2\xcf\xcb\x9f\x98\
+y'I$\x96\x8b:\x92I$\x94\xd3\xea\xf8\xee\xca\
+\xe9\xf7T\xc1.\x8d\xcd\x03\xb9i\x0e\xfe\x0b\x8b^\x80\
+\xb3r\xfa\x0e\x06]\x86\xd2\x1dS\xdd\xab\x8dd\x09>\
+0A\x0a\x9f9\xcaK9\x13\x81\x1c@Q\x07\xb3\x16\
+\x5cFtF\xef\x22\x92\xeaY\xf5g\xa7\xb4\xfb\x9dk\
+\xfe.\x03\xfe\xa5\xa1]\xc7\xe9\x98\x18\xa4:\x9aZ\x1c\
+8q\xf7\x1f\xbd\xd2\xabG\xe1\xd9O\xccc\x11\xf6\xb1\
+\x8c\x12;\x90\x1e<\xe1\xe4\xb6\x83\x92\xfa\xdc\xda\xa4\x0d\
+\xce\x11$\xf1\x12\x82\xba\xbf\xac\x9f\xf2a\xfe\xbb\x17(\
+\xa2\xe6p\x8c\x13\x10\x04\x9fH6~\xabrC\x82T\
+5\xd1I$\x92\x81b\x93\x84\xc9\xc2J{n\x9d\xff\
+\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\x95[\xa7\x7f\xc9\
+\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\xf9#\xfd\xd1\xf9\
+7c\xb0\xf2RI$\x9c\x95$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)J\xa7\
+V\xff\x00\x93r\x7f\xe2\xca\xb6\xaauo\xf97'\xfe\
+,\xa6e\xfen\x7f\xdd?\x92%\xf2\x9f\x22\xf1i\x93\
+\xa6X-%$\x92I)I$\x92JRI$\x92\
+\x94\x92I$\xa7\xa4\xfa\xb5\x9c\x1fS\xb0l>\xea\xfd\
+\xd5\xf9\xb4\xf2>En.\x13\x1b\x22\xcc[\xd9\x91Q\
+\x870\xc8\xf0> \xfcWk\x89\x93^f;2*\
+>\xd7\x8e<\x0fp~\x0bW\x90\xcf\xeeC\xdb'\xd5\
+\x0d\xbcc\xfd\x8d\x9c3\xe2\x1c'q\xf9&I$\x95\
+\xc6U$\x92I)J\xben\x1d9\xd4\x1a.\x1a\x1d\
+Z\xe1\xcbO\x88V\x12BQ\x12\x062\x16\x0e\xe1D\
+^\x85\xe2\xf3\xfafWOy\x16\xb7u\x7f\x9bk~\
+\x89\xfe\xe5Mw\xe4\x02 \xea\x0f!U\x7fJ\xe9\xd6\
+\x1d\xce\xc7\xae|\x86\xdf\xc9\x0a\x86O\x86\xebx\xe7C\
+\xb4\xbf\x8b\x04\xb9\x7f\xdd?k\xc5\xc1\xe3\xc7\x85\xad\xd3\
+:\x05\xf9.\x16\xe5\x83U#]\xa7G;\xfb\x82\xe8\
+\xa9\xc2\xc4\xc73E,a\xfd\xe0\xd1?\x7f(\xe9\xd8\
+~\x1d\x18\x90rK\x8a\xbfDl\x98\xe0\x03Y\x1b\xf0\
+b\xc62\xb6\x0a\xeb\x01\xadh\x86\x81\xa0\x00)$\x92\
+\xbd\xb32\x92I$\x94\xa5\x1b,e5\xba\xdb\x0e\xd6\
+0\x178\x9e\xc0).{\xeb\x1fR\x93\xfb>\x93\xa0\
+\x83q\x1e<\x86\xff\x00z\x8f>a\x83\x19\x99\xfa\x0e\
+\xe5l\xe4!\x12\x5c|\xec\xa7f\xe5Y\x90\xed7\x9f\
+h\xf0h\xd0\x04\x04\x92Xr\x91\x912:\x92l\xb4\
+\xc9\xb3g\xaa\x92I$\x14\xa5\xd4\xfd[\xc9\x16\xe0\x9a\
+\x09\xf7P\xe2#\xf9.\xf7\x0f\xe2\xb9e{\xa3\xe7}\
+\x831\xafy\xfd\x13\xfd\x96y\x03\xdf\xe4\xa7\xe52\x8c\
+9\xa2O\xca}'\xeb\xfd\xab\xf1K\x86@\x9d\x8e\x8f\
+d\x92`A\x00\x83 \xea\x08N\xb6\x9bjI$\x92\
+R\x92I$\x94\xa4\x92I%9_Y?\xe4\xc3\xff\
+\x00\x18\xc5\xca.\xaf\xeb'\xfc\x98\x7f\xe3\x18\xb9E\x93\
+\xf1\x1f\xe7\xff\x00\xc1\x1f\xb5\xad\x9f\xe7\xfa)$\x92U\
+\x18\x94\x9c&N\x12S\xdbt\xef\xf9?\x17\xfe&\xbf\
+\xfa\x90\xac\xaa\xdd;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+\
++\x7f\x1f\xc9\x1f\xee\x8f\xc9\xbb\x1d\x87\x92\x92I$\xe4\
+\xa9$\x92IJI$\x92R\x92I$\x94\xa4\x92I\
+%)$\x92IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\
+\xb5S\xab\x7f\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\
+\x91/\x94\xf9\x17\x8bL\x9d2\xc1i)$\x92IJ\
+I$\x92R\x92I$\x94\xa4\x92I%)itn\
+\xa8z}\xdb,3E\x87\xde?t\xfe\xf0\xfe+5\
+$\xfcy%\x8aBq4Bc#\x13c\xa3\xdf\xb5\
+\xcd{C\x9aAi\x12\x08\xd4\x10S\xaeW\xa3u\xa7\
+a\x11\x8f\x92K\xb1\xc9\xd0\xf2XO\xf0]C\x1e\xcb\
+\x18,\xad\xc1\xcdp\x90\xe1\xa8!lr\xfc\xc43\xc6\
+\xc6\x84|\xd1\xed\xfd\x8d\xb8LLi\xbfP\xc9$\x92\
+S.RI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI,\xbe\xab\xd6\xea\xc1\x06\x9a\x08\xb3#\
+\xc3\x90\xcf\xeb\x7frfL\x91\xc5\x13)\x9a\x01\x12\x90\
+\x88\xb2\xcb\xac\xf5f\xe0U\xe9\xd4A\xc8x\xf6\x8f\xdd\
+\x1f\xbc\x7f\x82\xe4\x9c\xe2\xe2\x5c\xe3$\x99$\xf2IR\
+\xb6\xdb.\xb1\xd6\xda\xe2\xf7\xb8\xc9q\xee\xa0\xb29\x9e\
+b\x5c\xc4\xec\xe9\x11\xf2\x8f\xe5\xd5\xab\x92fg\xc3\xa2\
+\x92I%\x02\xc5$\x92I)I$\x92Jv\xfa7\
+\x5c\x18\xed\x18\x99\x87\xf4cFY\xce\xdf#\xe4\xba6\
+=\x964>\xb7\x075\xda\x82\x0c\x82\xb8\x14|l\xdc\
+\xacC8\xf6\xba\xb9\xe4\x03\xa1\xf8\x83\xa2\xbb\xcb\xf3\xf2\
+\xc4\x042\x0e(\x8d\x8fQ\xfcYa\x98\xc4T\xb5\x0f\
+r\x92\xe5\xab\xfa\xcd\xd4\x18!\xed\xae\xcf2\x08?\xf4\
+H\xfc\x88\xbf\xf3\xa7\x22?\x98g\xf9\xc5Z\x1c\xfe\x03\
+\xd4\x8f\xa7\xf0e\xf7\xe1\xdc\xfd\x8fH\x92\xe5\xdf\xf5\x9b\
+=\xda5\x953\xe0\x09?\x8b\x95[z\xd7S\xbbG\
+^\xe6\x8f\xe4C\x7f M\x97\xc4p\x8d\x84\xa5\xf4A\
+\xcf\x01\xb5\x97\xae\xb6\xfahn\xeb\x9e\xda\xc7\x8b\x88\x1f\
+\x95f\xe4\xfdd\xc1\xa6[D\xde\xef\xe4\xe8\xdf\xf3\x8f\
+\xf0\x5c\xbb\x9e\xf7\xb8\xb9\xee.q\xe4\xb8\xc9\xfb\xca\x8a\
+\x83'\xc4rKHDG\xc4\xfa\x8f\xf0Y.bG\
+a_\x8b\x7f\xa8u\x9c\xae\xa0\xdfI\xe1\xac\xaagc\
+Gq\xe2J\xa0\x92J\x9c\xe7,\x87\x8ad\xc8\xf8\xb1\
+\x12dl\x9bRI$\x9a\x85'\x09\x93\x84\x94\xf6\xdd\
+;\xfeO\xc5\xff\x00\x89\xaf\xfe\xa4+*\xb7N\xff\x00\
+\x93\xf1\x7f\xe2k\xff\x00\xa9\x0a\xca\xdf\xc7\xf2G\xfb\xa3\
+\xf2n\xc7a\xe4\xa4\x92I9*I$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x95\
+N\xad\xff\x00&\xe4\xff\x00\xc5\x95mT\xea\xdf\xf2n\
+O\xfcYL\xcb\xfc\xdc\xff\x00\xba\x7f$K\xe5>E\
+\xe2\xd3'L\xb0ZJI$\x92R\x92I$\x94\xa4\
+\x92I%)$\x92IJI$\x92R\x95\xde\x9d\xd5\
+rzs\xa2\xb3\xbe\xa2e\xd5\xbb\x8f\x88\xf0*\x92I\
+\xd0\x9c\xb1\x91(\x92\x08\xea\x12\x09\x89\xb0i\xec\xf0z\
+\xbe\x1ep\x02\xb7l\xb3\xbdo\xd1\xdf/\x15uy\xfa\
+\xd0\xc5\xeb\x9dG\x14\x06\xfa\x9e\xabG\xe6\xd9\xee\xfcy\
+\xfcU\xfc_\x11\xe9\x96?\xe1G\xf83G\x98\xfd\xe1\
+\xf5\x0f`\x92\xc7\xc0\xfa\xc5^]\xec\xc6\xb2\xa3[\xec\
+0\x1c\x0c\xb6b|\x8a\xd8Wq\xe5\x86a\xc5\x03c\
+fh\xc8HX6\xa4\x92I=*I$\x92R\x95\
+|\xac\xfcL!9\x16\x06\x9eCyq\xf84j\x89\
+{\x1de61\xa4\xb5\xcei\x00\x8d\x08$D\x85\xc2\
+;qq\xdeIt\xfb\x89\xd4\xca\xad\xcd\xf32\xe5\xc4\
+DcfW\xa9\xdbF<\xb9\x0e:\xa1\xbb\xaf\xd4>\
+\xb1_\x90\x0dX\x80\xd3Y\xe5\xdf\x9e~\xee\x16G:\
+\x94\xc9,\xbc\x99g\x98\xf1NW\xfb\x1a\xd2\x91\x91\xb2\
+mI$\x92\x8d\x0aI$\x92R\x92I$\x94\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa4\
+\x92I%)$\x92IJI$\x92R\x93\x84\xc9\xc2\
+J{n\x9d\xff\x00'\xe2\xff\x00\xc4\xd7\xff\x00R\x15\
+\x95[\xa7\x7f\xc9\xf8\xbf\xf15\xff\x00\xd4\x85eo\xe3\
+\xf9#\xfd\xd1\xf97c\xb0\xf2RI$\x9c\x95$\x92\
+I)I$\x92JRI$\x92\x94\x92I$\xa5$\
+\x92I)J\xa7V\xff\x00\x93r\x7f\xe2\xca\xb6\xaau\
+o\xf97'\xfe,\xa6e\xfen\x7f\xdd?\x92%\xf2\
+\x9f\x22\xf1i\x93\xa6X-%$\x92I)I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x92Qi\xa2\xea\xeeo5\xb8<\
+\x7fd\xca\xee\xda\xe0\xf6\x87\xb7P\xe0\x08>Ep\x0b\
+\xb0\xe8y?h\xe9\xb5I\x97U\xfa7\x7fg\x8f\xc2\
+\x15\xff\x00\x86\xce\xa58w\x1cC\xe9\xfe\xfb7.u\
+#\xbe\xae\x82I$\xb4\x9b\x0aI$\x92R\x97\x1d\xd6\
+\xb1N/P\xb0\x01\xec\xb3\xf4\x8c\xf8;\x9f\xb8\xae\xc5\
+gu\xae\x9b\xfbC\x1ek\xfez\xadY\xe7\xe2\xdf\x9a\
+\xaf\xcea9\xb1zu\x94}C\xf6\x86<\xb0\xe3\x8e\
+\x9b\x87\x90II\xecun,x-sL\x10D\x10\
+TV;UI$\x92\x0aRI$\x92\x94\x92I$\
+\xa5$\x92I)I$\x92JRI$\x92\x94\x92I\
+$\xa5$\x92I)I$\x92JRI$\x92\x94\x9c\
+&K\x8dRS\xdb\xf4\xef\xf9?\x17\xfe&\xbf\xfa\x90\
+\xac\xa0\xe20\xd5\x89Mg\xf3+c~\xe6\x80\x8c\xb7\
+\xe0*\x11\x1d\x80n\x8d\x87\x92\x92I$\xe4\xa9$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)$\
+\x92IJU:\xb7\xfc\x9b\x93\xff\x00\x16U\xb5S\xab\
+\x7f\xc9\xb9?\xf1e3/\xf3s\xfe\xe9\xfc\x91/\x94\
+\xf9\x17\x8bL\x9d2\xc1i)$\x92IJI$\x92\
+R\x92I$\x94\xa4\x92I%)$\x92IJI$\
+\x92R\x92I$\x94\xa5\xb5\xf5g,W\x90\xfcW\x1d\
+.\x1b\x9b\xfdf\xff\x00\xb1b\xa9\xd3k\xe8\xb5\x97V\
+a\xccpp\xf8\x85&\x1c\x9e\xd6H\xcf\xb1\xd7\xcb\xaa\
+a.\x19\x03\xd9\xefRA\xc5\xc9\xaf/\x1d\x99\x15\xfd\
+\x17\x89\x8f\x03\xdc|\x91\x96\xe0\x22@\x11\xa8:\x86\xe8\
+7\xaa\x92I$T\xa4\x92I%5\xb2\xba~\x1en\
+\xb9\x15\x078p\xee\x1d\xfep\x82\xa9\x1f\xab=<\x99\
+\x06\xc1\xe5\xb8\x7f\xe4V\xb2J9`\xc53r\x84I\
+\xefKL\x22u \x17\x9c\xea\xbd\x0f\x13\x07\x0d\xf9\x15\
+9\xe5\xc0\xb4\x00\xe2#S\x1e\x0b\x09u\xbfX\x7f\xe4\
+\xb7\xff\x00Y\x9f\xf5ArK3\x9e\x84q\xe5\x02\x00\
+Dp\x83\xa7\x99k\xe6\x88\x8c\xa8\x0a\xd1I$\x92\xaa\
+\xc6\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa4\x5cj\x8d\xf9\x15R?=\xedo\xdeP\
+\x96\xaf\xd5\xcco[?\xd5#\xdbCK\xbf\xb4}\xad\
+Ra\x87\xb9\x92\x10\xeeG\xd9\xd51\x1cR\x03\xb9z\
+\xa4\xe9$\xb7[\xaaI$\x92R\x92I$\x94\xa4\x92\
+I%)$\x92IJI$\x92R\x92I$\x94\xa5\
+S\xab\x7f\xc9\xb9?\xf1e[U:\xb7\xfc\x9b\x93\xff\
+\x00\x16S2\xff\x007?\xee\x9f\xc9\x12\xf9O\x91x\
+\xb4\xc9\xd3,\x16\x92\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92S\xad\xd0z\xa0\xc3\xb7\xec\xd7\
+\x98\xa6\xd3\xa1<5\xde?\x02\xba\xa5\xe7\xebo\xa4\xf5\
+\xe3\x8e\xd6\xe3f\xcb\xaa\x1a2\xceKG\x81\xf1\x0a\xff\
+\x00%\xcd\x88\x0fk!\xa8\xfe\x8c\xbbx\x1f\x06l9\
+k\xd3-\xba\x17\xa5IB\xbbk\xb9\x82\xca\x9c\x1e\xd7\
+p\xe6\x99\x0akH\x1b\xd46\x14\x92I$\xa5$\x92\
+I)\xcc\xfa\xc3\xff\x00%\xbf\xfa\xcc\xff\x00\xaa\x0b\x92\
+]o\xd6\x1f\xf9-\xff\x00\xd6g\xfdP\x5c\x92\xca\xf8\
+\x8f\xf3\xc3\xfb\x83\xf3-l\xff\x00?\xd1I$\x92\xa6\
+\xc4\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\xa4\x92I%)$\x92IJI$\x92R\x92\
+I$\x94\xa5\xd6\xf4\x0c3\x8b\x82\x1e\xf1\x16_\xefw\
+\x90\xfc\xd1\xf7,.\x8b\xd3\x8e~P/\x1f\xa1\xaa\x1d\
+g\x9f\x83~k\xb0Z\x1f\x0e\xc3\xbec\xe5\x1f\xda\x7f\
+c>\x08~\x91\xfa)$\x92Z,\xeaI$\x92R\
+\x92I$\x94\xa4\x92I%)$\x92IJI$\x92\
+R\x92I$\x94\xa5S\xab\x7f\xc9\xb9?\xf1e[U\
+:\xb7\xfc\x9b\x93\xff\x00\x16S2\xff\x007?\xee\x9f\
+\xc9\x12\xf9O\x91x\xb4\xc9\xd3,\x16\x92\x92I$\x94\
+\xa4\x92I%)$\x92IJI$\x92R\x92I$\
+\x94\xa4\x92I%)$\x92IJI$\x92R\x92I\
+$\x94\x9b\x1b3'\x11\xdb\xb1\xacug\xb8\x1c\x1f\x88\
+:-Z>\xb4d\xb0E\xf52\xcf6\x92\xc3\xff\x00\
+~X\x89)q\xe7\xcb\x8b\xe4\x99\x03\xb6\xe3\xec:.\
+\x8c\xe5\x1d\x8d=3>\xb4\xe1\x91\xef\xaa\xd6\x9f-\xa4\
+\x7f\xd5\x05?\xf9\xcd\xd3\xff\x00v\xdf\xf3G\xfeIr\
+\xc9)G\xc43\xf7\x07\xe8\xbb\xdf\x9f\x83\xd2\xbf\xebN\
+(\xfen\x9b\x1c|\xf6\xb7\xfe\xfc\xe5^\xcf\xadV\x9f\
+\xe6\xb1\xda\xdf\xeb8\xbb\xf2\x06\xac$\x90<\xf70\x7f\
+N\xbc\x80Q\xcd3\xd5\xd0\xcd\xeby\x99\xd5\x1a-\x0c\
+k\x09\x04\x86\x83\xdb^\xe4\xac\xf4\x92PO$\xb2\x1e\
+)\x93#\xe2\xb0\xc8\xc8\xd96\xa4\x92I5\x0aI$\
+\x92R\x92I$\x94\xa4\x92I%)$\x92IJI\
+$\x92R\x92I$\x94\xa4\x92I%)\x1f\x0f\x0e\xec\
+\xeb\xc5\x14\x09'W8\xf0\xd1\xe2U\x9e\x9f\xd1\xb2\xf3\
+\x88tzT\xf7\xb1\xc3\x91\xfc\x91\xddu\x18XX\xf8\
+\x14\xfaT6;\xb9\xc7\x97\x1f\x12U\xae[\x93\x96b\
+%0c\x0f\xc4\xf9\x7f\x16Lx\x8c\xb5:\x05\xf0\xb0\
+\xea\xc1\xc7n=<\x0dK\x8f.=\xc9GI%\xad\
+\x18\x88\x81\x10(\x0d\x83h\x0a\x14\x14\x92I\x22\xa5$\
+\x92I)I$\x92JRI$\x92\x94\x92I$\xa5\
+$\x92I)I$\x92JR\xa9\xd5\xbf\xe4\xdc\x9f\xf8\
+\xb2\xad\xaa\x9d[\xfeM\xc9\xff\x00\x8b)\x99\x7f\x9b\x9f\
+\xf7O\xe4\x89|\xa7\xc8\xbcZd\xe9\x96\x0bII$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x97\
+\x1c\xa2W\x8f\x91w\xf3U=\xfemi(\x80N\x80\
+Z\x91\xa4\xaf\xd7\xd1:\x9d\xbcPZ<^C\x7f)\
+\x95j\xaf\xaa\xf9\x8e\xfev\xda\xd9\xf0\x97\x1f\xc8\xd5$\
+yl\xd3\xdb\x1c\xbe\xa2\xbf5\xc3\x1c\xce\xd1.2K\
+\xa4\xaf\xea\xb5\x03\xf9\xdb\xde\xef\xea\x80\xdf\xcb\xb9Z\xab\
+\xea\xff\x00K\xaf\x9a\x8d\x87\xc5\xee'\xf0\x04\x0f\xc1M\
+\x1f\x87\xe7\x96\xfc1\xf3?\xc2\xd7\x0c\x13=\x83\xc8\xa2\
+\xd7\x8d\x91w\xf35>\xcf\xea4\xbb\xf2\x05\xdaW\x85\
+\x87O\xf3TV\xcf\x83B:\x96?\x0c\xfd\xec\x9f`\
+\xfe\xd5\xe3\x97\xef'\x8e\xab\xa1\xf5K\x7f\xc0\x96\x0f\x17\
+\x90?\x09\x95n\xbf\xaa\xf9\x8e\xfev\xca\xd8<\xa5\xc7\
+\xf2\x05\xd3$\xa6\x8f\xc3\xf0\x8d\xf8\xa5\xe6\x7f\x82\xe1\x82\
+\x03\xb9p\xea\xfa\xad\x8e?\x9e\xb9\xef\xfe\xa8\x0d\x1f\x8e\
+\xe5\x7f\x1b\xa3t\xecR\x1c\xca\x83\x9c8s\xfd\xc7\xf1\
+\xd1]IM\x0e[\x0c5\x8c\x07\xe7\xf9\xaf\x18\xe06\
+\x01I$\x92\x95r\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92R\x95N\xad\xff\x00&\xe4\xff\
+\x00\xc5\x95mT\xea\xdf\xf2nO\xfcYL\xcb\xfc\xdc\
+\xff\x00\xba\x7f$K\xe5>E\xe2\xd3'L\xb0ZJ\
+I$\x92R\x92I$\x94\xa4\x92I%)$\x92I\
+JI$\x92R\x92I$\x94\xa4\x92I%)$\x92\
+IJI$\x92R\x92I\x12\xba/\xbb\xf9\x9a\xdfg\
+\xf5ZO\xe4D\x02t\x1a\xa9\x1aJ\xf5}\x17\xa9\xdb\
+\xc5\x0e\x1f\xd6!\xbf\xf5D+u}X\xcdw\xf3\xb6\
+WX\xf2\x97\x1f\xc8\x07\xe2\xa4\x8f-\x9a{c\x97\xd9\
+_\x9a\xe1\x8egh\x97\x19%\xd1\xd7\xf5Z\x81\xfc\xed\
+\xeew\xf5@o\xe5\xdc\xad\xd5\xf5\x7f\xa6W\xcdf\xc3\
+\xe2\xf7\x1f\xc8\xd8\x0ah\xfc?<\xb7\x11\x8f\x99\xfe\x16\
+\xb8`\x99\xec\x1eE\x12\xbc{\xee1Uoy\xfeK\
+K\xbf ]\xadX8T\xff\x005Em\xf84\x7f\
+r4\x01\xa0R\xc7\xe1\x87\xf4\xb2}\x83\xfbW\x8e_\
+\xbc\x9e>\xae\x89\xd5-\xe2\x82\xd1\xe2\xf2\x1b\xf8\x13*\
+\xd5\x7fV3]\xfc\xe5\x95\xb3\xe1.?\x90.\x9d%\
+4~\x1d\x84ne/3\xfc\x17\x0c\x10\x1b\xd9p\xea\
+\xfa\xad@\xfez\xf7\xbf\xfa\x807\xf2\xefV\xab\xfa\xbf\
+\xd2\xeb\xe6\xb2\xf3\xfc\xa7\x13\xf9!i$\xa5\x8f+\x82\
+;c\x8f\xd7\xd5\xf9\xae\x18\xe0?D \xab\x07\x0e\x8d\
+j\xa2\xb6\x11\xdc4O\xdf\xca:I)DDt\x00\
+\x0f%\xe0\x01\xb2\x92I$T\xa4\x92I%)$\x92\
+IJI$\x92R\x92I$\x94\xa4\x92I%)$\
+\x92IJI$\x92R\x92I$\x94\xa4\x92I%)\
+$\x92IJI$\x92R\x92I$\x94\xa4\x92I%\
+)T\xea\xdf\xf2nO\xfcYV\xd5N\xad\xff\x00&\
+\xe4\xff\x00\xc5\x94\xcc\xbf\xcd\xcf\xfb\xa7\xf2D\xbeS\xe4\
+^-2t\xcb\x05\xa4\xa4\x92I%)$\x92IJ\
+I$\x92R\x92IN\xban\xbbJku\x9f\xd4i\
+w\xe4D\x02t\x1a\xa9\x82J\xf5}\x17\xa9\xdb\xf4h\
+p\xfe\xb47\xfe\xa8\x85j\xaf\xab\x19\xcf\x83c\xeb\xac\
+|K\x8f\xe0\x00\xfcT\x91\xe5\xf3Klr\xfb+\xf3\
+\x5c1\xcc\xed\x12\xe3\xa4\xba:\xfe\xaa\xd2?\x9e\xbd\xce\
+\xfe\xabC\x7f.\xe5j\xbf\xab\xdd2\xbf\xa4\xc7Y\xfd\
+w\x1f\xfb\xee\xd54~\x1f\x9e[\x88\xc7\xcc\xff\x00\x0b\
+\x5c0L\xf6\x0f$\x89]\x17Zb\xaa\xdc\xf3\xe0\xd6\
+\x93\xf9\x17iV\x06\x15?\xcdQ[|\xc3D\xfd\xe8\
+\xe0\x00 h\x14\xb1\xf8a\xfd,\x9f`^9~\xf2\
+x\xea\xba/S\xb7\x8a\x1c\xd1\xe2\xf2\x1b\xf88\xca\xb5\
+_\xd5\x8c\xe7\x7f8\xfa\xd9\xf3.?\x91u\x09)\xa3\
+\xf0\xec#s)}k\xf2\x5c0@oe\xc2\xab\xea\
+\xad#\xf9\xeb\xdc\xef&\x00\xdf\xcb\xbd[\xaf\xea\xf7K\
+\xaf\x9a\xdc\xf3\xfc\xa7\x1f\xe1\x0bI%,y\x5c\x11\xdb\
+\x1c~\xbe\xaf\xcdp\xc7\x01\xfa#\xf3k\xd5\x81\x85L\
+\x1a\xa8\xad\xa4w\xda'\xef\xe5XI%(\x88\x8e\x80\
+\x01\xe5\xa2\xf0\x00\xd9I$\x92*RI$\x92\x94\x92\
+I$\xa5$\x92I)I$\x92JRI$\x92\x94\
+\x92I$\xa5$\x92I)I$\x92JRI$\x92\
+\x94\x92I$\xa5$\x92I)I$\x92JRI$\
+\x92\x94\x92I$\xa5$\x92I)I$\x92JRI\
+$\x92\x94\x92I$\xa5$\x92I)J\xa7V\xff\x00\
+\x93r\x7f\xe2\xca\xb6\x83\x99A\xc9\xc5\xb7\x1d\xa44\xd8\
+\xd2\xd0OiM\xc8\x09\x84\x80\xdc\xc4\x8f\xc1\x12\xd4\x11\
+\xe0\xf0\xc9\x97E_\xd5Z\x86\xb7d9\xdf\xd5ho\
+\xe5.V\xeb\xfa\xbb\xd3+\xfaMu\x9f\xd6q\xff\x00\
+\xbe\xedYQ\xf8~yn\x04|\xcf\xf0\xb6\xb0\xc13\
+\xd8<\x92\x9b)\xb6\xd3\x15\xb1\xcf?\xc9\x04\xfeE\xda\
+\xd5\xd3\xf0i\xfej\x8a\xda|v\x89\xfb\xf9G\x00\x01\
+\x00@\xf2SG\xe1\x87\xf4\xb2\x0f\xa0^9~\xf2x\
+\xda\xba7S\xb7\xe8\xe3\xb9\xa3\xc5\xf0\xcf\xfa\xa2\x0a\xb7\
+_\xd5\x8c\xe7\x7f8\xfa\xd9\xf3'\xf8.\xa1%,~\
+\x1d\x84ne/\xad~K\x86\x08\x0d\xec\xb85}U\
+\xa8\x7f=\x90\xe3\xe4\xc6\x86\xfe.\xdc\xad\xd5\xf5{\xa6\
+W\xcb\x1da\xf1{\x8f\xf0\x85\xa6\x92\x9a<\xae\x08\xed\
+\x8c}}_\x9a\xe1\x8e\x03\xf4G\xe6\xd6\xaf\xa7`\xd3\
+\x1e\x9d\x15\x828;A?yV\x22\x13\xa4\xa5\x11\x8c\
+t\x88\x03\xc8R\xf0\x00\xdbE$\x92H\xa9I$\x92\
+JRI$\x92\x94\x92I$\xa5$\x92I)I$\
+\x92JRI$\x92\x94\x92I$\xa5$\x92I)I\
+$\x92JRI$\x92\x94\x92I$\xa5$\x92I)\
+I$\x92JRI$\x92\x94\x92I$\xa5$\x92I\
+)I$\x92JRI$\x92\x94\x92I$\xa5$\x92\
+I)I$\x92JRI$\x92\x9f\xff\xd9\x0aen\
+dstream \x0aendobj\x0a\
+\x0a32 0 obj\x0a\x0a<<\x0a/S\
+ /GoTo\x0a/D [11 0 \
+R /FitH 718]\x0a>>\x0a\
+endobj\x0a\x0a25 0 obj\
+\x0a\x0a<<\x0a/Type /Outl\
+ines\x0a/Count 1\x0a/F\
+irst 33 0 R\x0a/Las\
+t 33 0 R\x0a>>\x0aendo\
+bj\x0a\x0a33 0 obj\x0a\x0a<<\
+\x0a/A 32 0 R\x0a/Pare\
+nt 25 0 R\x0a/Title\
+ (the tiger)\x0a>>\x0a\
+endobj\x0a\x0a23 0 obj\
+\x0a\x0a<<\x0a/Subtype /X\
+ML\x0a/Length 4031\x0a\
+/Type /Metadata\x0a\
+>>\x0astream\x0a<?xpac\
+ket begin=\x22\xef\xbb\xbf\x22 \
+id=\x22W5M0MpCehiHz\
+reSzNTczkc9d\x22?>\x0a\
+<x:xmpmeta xmlns\
+:x=\x22adobe:ns:met\
+a/\x22 x:xmptk=\x22Ado\
+be XMP Core 4.0-\
+c316 44.253921, \
+Sun Oct 01 2006 \
+17:08:23\x22>\x0a <r\
+df:RDF xmlns:rdf\
+=\x22http://www.w3.\
+org/1999/02/22-r\
+df-syntax-ns#\x22>\x0a\
+ <rdf:Descr\
+iption rdf:about\
+=\x22\x22\x0a \
+xmlns:xap=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/\x22>\x0a \
+ <xap:ModifyDa\
+te>2015-12-04T10\
+:43:58+01:00</xa\
+p:ModifyDate>\x0a \
+ <xap:Crea\
+teDate>2015-12-0\
+4T10:38:02+01:00\
+</xap:CreateDate\
+>\x0a <xap:\
+MetadataDate>201\
+5-12-04T10:43:58\
++01:00</xap:Meta\
+dataDate>\x0a \
+</rdf:Descriptio\
+n>\x0a <rdf:De\
+scription rdf:ab\
+out=\x22\x22\x0a \
+ xmlns:dc=\x22htt\
+p://purl.org/dc/\
+elements/1.1/\x22>\x0a\
+ <dc:for\
+mat>application/\
+pdf</dc:format>\x0a\
+ <dc:tit\
+le>\x0a \
+<rdf:Alt>\x0a \
+ <rdf:li\
+ xml:lang=\x22x-def\
+ault\x22>Test Docum\
+ent for Qt PDF r\
+endering</rdf:li\
+>\x0a </\
+rdf:Alt>\x0a \
+ </dc:title>\x0a \
+ <dc:descr\
+iption>\x0a \
+ <rdf:Alt>\x0a \
+ <rd\
+f:li xml:lang=\x22x\
+-default\x22>testin\
+g of portable do\
+cument format</r\
+df:li>\x0a \
+ </rdf:Alt>\x0a \
+ </dc:desc\
+ription>\x0a \
+ <dc:creator>\x0a \
+ <rdf:\
+Bag>\x0a \
+ <rdf:li>The \
+Qt Company</rdf:\
+li>\x0a \
+</rdf:Bag>\x0a \
+ </dc:creator\
+>\x0a <dc:s\
+ubject>\x0a \
+ <rdf:Bag>\x0a \
+ <rd\
+f:li>PDF</rdf:li\
+>\x0a \
+ <rdf:li>renderi\
+ng</rdf:li>\x0a \
+ <rdf:\
+li>search</rdf:l\
+i>\x0a \
+ <rdf:li>TOC</r\
+df:li>\x0a \
+ </rdf:Bag>\x0a \
+ </dc:subj\
+ect>\x0a </rdf\
+:Description>\x0a \
+ <rdf:Descrip\
+tion rdf:about=\x22\
+\x22\x0a xm\
+lns:xapMM=\x22http:\
+//ns.adobe.com/x\
+ap/1.0/mm/\x22>\x0a \
+ <xapMM:Doc\
+umentID>uuid:2b0\
+b68ee-0b1f-6045-\
+a8ea-7f7d134162e\
+f</xapMM:Documen\
+tID>\x0a <x\
+apMM:InstanceID>\
+uuid:36d03ad5-25\
+6c-474c-822b-42b\
+ac4cfe5ad</xapMM\
+:InstanceID>\x0a \
+ </rdf:Descrip\
+tion>\x0a <rdf\
+:Description rdf\
+:about=\x22\x22\x0a \
+ xmlns:pdf=\
+\x22http://ns.adobe\
+.com/pdf/1.3/\x22>\x0a\
+ <pdf:Ke\
+ywords>PDF, rend\
+ering, search, T\
+OC</pdf:Keywords\
+>\x0a </rdf:De\
+scription>\x0a </\
+rdf:RDF>\x0a</x:xmp\
+meta>\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \
+\x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a\
+ \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \
+ \
+ \
+ \
+ \x0a \
+ \
+ \x0a<?xpacket \
+end=\x22w\x22?>\x0aendstr\
+eam \x0aendobj\x0a\x0a26 \
+0 obj\x0a\x0a<<\x0a/Nums \
+[0 \x0a<<\x0a/P (\xfe\xff\x00Q\x00\
+t)\x0a>> 1 \x0a<<\x0a/S /\
+D\x0a>> 2 \x0a<<\x0a/S /r\
+\x0a>>]\x0a>>\x0aendobj\x0a\x0a\
+34 0 obj\x0a\x0a<<\x0a/Ke\
+ywords (PDF, ren\
+dering, search, \
+TOC)\x0a/ModDate (D\
+:20151204104358+\
+01'00')\x0a/Creatio\
+nDate (D:2015120\
+4103802+01'00')\x0a\
+/Subject (testin\
+g of portable do\
+cument format)\x0a/\
+Author (The Qt C\
+ompany)\x0a/Title (\
+Test Document fo\
+r Qt PDF renderi\
+ng)\x0a>>\x0aendobj\x0axr\
+ef\x0a0 35\x0a00000000\
+00 65535 f \x0a0000\
+000015 00000 n \x0a\
+0000000266 00000\
+ n \x0a0000051153 0\
+0000 n \x0a00000001\
+67 00000 n \x0a0000\
+052661 00000 n \x0a\
+0000048499 00000\
+ n \x0a0000048533 0\
+0000 n \x0a00000006\
+99 00000 n \x0a0000\
+001891 00000 n \x0a\
+0000011311 00000\
+ n \x0a0000011576 0\
+0000 n \x0a00000118\
+80 00000 n \x0a0000\
+051448 00000 n \x0a\
+0000011815 00000\
+ n \x0a0000048037 0\
+0000 n \x0a00000480\
+87 00000 n \x0a0000\
+048939 00000 n \x0a\
+0000050266 00000\
+ n \x0a0000050368 0\
+0000 n \x0a00000504\
+56 00000 n \x0a0000\
+053003 00000 n \x0a\
+0000052734 00000\
+ n \x0a0000071321 0\
+0000 n \x0a00000528\
+56 00000 n \x0a0000\
+071177 00000 n \x0a\
+0000075438 00000\
+ n \x0a0000053307 0\
+0000 n \x0a00000532\
+71 00000 n \x0a0000\
+056564 00000 n \x0a\
+0000053886 00000\
+ n \x0a0000053424 0\
+0000 n \x0a00000711\
+22 00000 n \x0a0000\
+071253 00000 n \x0a\
+0000075521 00000\
+ n \x0atrailer\x0a\x0a<<\x0a\
+/Info 34 0 R\x0a/ID\
+ [<4d817246d2ed4\
+7c78e1b455cf09ed\
+407> <086f96dd45\
+7c4bbca529ed1348\
+a1b7b0>]\x0a/Root 2\
+2 0 R\x0a/Size 35\x0a>\
+>\x0astartxref\x0a7577\
+5\x0a%%EOF\x0a\
+\x00\x00\x02\xa5\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h\x0a style=\x22fil\
+l:currentColor;f\
+ill-opacity:1;st\
+roke:none\x22\x0a\x09d=\x22M\
+ 8 3 L 0.9433593\
+8 10.056641 L 0 \
+11 L 0.94335938 \
+11.943359 L 8 19\
+ L 20.333984 19 \
+L 22 19 L 22 3 L\
+ 20.333984 3 L 8\
+ 3 z M 11.320312\
+ 7 L 14 9.679687\
+5 L 16.679688 7 \
+L 18 8.3203125 L\
+ 15.320312 11 L \
+18 13.679688 L 1\
+6.679688 15 L 14\
+ 12.320312 L 11.\
+320312 15 L 10 1\
+3.679688 L 12.67\
+9688 11 L 10 8.3\
+203125 L 11.3203\
+12 7 z \x22\x0a cla\
+ss=\x22ColorScheme-\
+Text\x22\x0a trans\
+form=\x22translate(\
+1,1)\x22\x0a />\x0a</s\
+vg>\x0a\
+\x00\x00\x015\
+<\
+svg height=\x2224\x22 \
+width=\x2224\x22 xmlns\
+=\x22http://www.w3.\
+org/2000/svg\x22>\x0a \
+ <style type=\x22\
+text/css\x22 id=\x22cu\
+rrent-color-sche\
+me\x22>\x0a .Co\
+lorScheme-Text {\
+\x0a col\
+or:#232629;\x0a \
+ }\x0a </styl\
+e>\x0a <path d=\x22\
+M4.707 16L4 15.2\
+93l8-8 8 8-.707.\
+707L12 8.707\x22 cl\
+ass=\x22ColorScheme\
+-Text\x22 fill=\x22cur\
+rentColor\x22/>\x0a</s\
+vg>\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4.7070312 8 L 4\
+ 8.7070312 L 10.\
+125 14.832031 L \
+12 16.707031 L 1\
+3.875 14.832031 \
+L 20 8.7070312 L\
+ 19.292969 8 L 1\
+3.167969 14.125 \
+L 12 15.292969 L\
+ 10.832031 14.12\
+5 L 4.7070312 8 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x02\x02\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 15.292969 4 L 9\
+.1679688 10.125 \
+L 7.2929688 12 L\
+ 9.1679688 13.87\
+5 L 15.292969 20\
+ L 16 19.292969 \
+L 9.875 13.16796\
+9 L 8.7070312 12\
+ L 9.875 10.8320\
+31 L 16 4.707031\
+2 L 15.292969 4 \
+z \x22\x0a class=\x22\
+ColorScheme-Text\
+\x22\x0a />\x0a</svg>\
+\x0a\
+\x00\x00\x02\xfd\
+<\
+svg xmlns=\x22http:\
+//www.w3.org/200\
+0/svg\x22 viewBox=\x22\
+0 0 24 24\x22>\x0a <d\
+efs id=\x22defs3051\
+\x22>\x0a <style ty\
+pe=\x22text/css\x22 id\
+=\x22current-color-\
+scheme\x22>\x0a .\
+ColorScheme-Text\
+ {\x0a color\
+:#232629;\x0a \
+}\x0a </style>\
+\x0a </defs>\x0a <pat\
+h style=\x22fill:cu\
+rrentColor;fill-\
+opacity:1;stroke\
+:none\x22\x0a d=\x22M\
+ 4 4 L 4 11 L 5 \
+11 L 5 5 L 19 5 \
+L 19 19 L 13 19 \
+L 13 20 L 20 20 \
+L 20 19 L 20 5 L\
+ 20 4 L 5 4 L 4 \
+4 z M 15.292969 \
+8 L 12 11.292969\
+ L 12 9 L 11 9 L\
+ 11 13 L 12 13 L\
+ 15 13 L 15 12 L\
+ 12.707031 12 L \
+16 8.7070312 L 1\
+5.292969 8 z M 4\
+ 14 L 4 16 L 5 1\
+6 L 5 15 L 6 15 \
+L 6 14 L 4 14 z \
+M 8 14 L 8 15 L \
+9 15 L 9 16 L 10\
+ 16 L 10 14 L 8 \
+14 z M 4 18 L 4 \
+20 L 6 20 L 6 19\
+ L 5 19 L 5 18 L\
+ 4 18 z M 9 18 L\
+ 9 19 L 8 19 L 8\
+ 20 L 10 20 L 10\
+ 18 L 9 18 z \x22\x0a \
+ class=\x22Color\
+Scheme-Text\x22\x0a \
+ />\x0a</svg>\x0a\
+"
+
+qt_resource_name = b"\
+\x00\x09\
+\x0d\xcf \x82\
+\x00p\
+\x00d\x00f\x00v\x00i\x00e\x00w\x00e\x00r\
+\x00\x09\
+\x0alxC\
+\x00r\
+\x00e\x00s\x00o\x00u\x00r\x00c\x00e\x00s\
+\x00\x11\
+\x09\x02%\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00b\x00e\x00s\x00t\x00.\x00s\x00v\x00g\
+\
+\x00\x0b\
+\x03\x03\x96\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00i\x00n\x00.\x00s\x00v\x00g\
+\x00\x13\
+\x0a\xb9\xc5\x87\
+\x00e\
+\x00d\x00i\x00t\x00-\x00s\x00e\x00l\x00e\x00c\x00t\x00-\x00a\x00l\x00l\x00.\x00s\
+\x00v\x00g\
+\x00\x11\
+\x0e\xab>\xc7\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00r\x00i\x00g\x00i\x00n\x00a\x00l\x00.\x00s\x00v\x00g\
+\
+\x00\x15\
+\x0f!\xbe\x07\
+\x00g\
+\x00o\x00-\x00n\x00e\x00x\x00t\x00-\x00v\x00i\x00e\x00w\x00-\x00p\x00a\x00g\x00e\
+\x00.\x00s\x00v\x00g\
+\x00\x0d\
+\x01\x1c\xbc'\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00o\x00p\x00y\x00.\x00s\x00v\x00g\
+\x00\x12\
+\x01\xfcA\x87\
+\x00z\
+\x00o\x00o\x00m\x00-\x00f\x00i\x00t\x00-\x00w\x00i\x00d\x00t\x00h\x00.\x00s\x00v\
+\x00g\
+\x00\x11\
+\x01\xa6\xc9\x07\
+\x00d\
+\x00o\x00c\x00u\x00m\x00e\x00n\x00t\x00-\x00o\x00p\x00e\x00n\x00.\x00s\x00v\x00g\
+\
+\x00\x10\
+\x0c\xa1\x91\x87\
+\x00r\
+\x00o\x00t\x00a\x00t\x00e\x00-\x00r\x00i\x00g\x00h\x00t\x00.\x00s\x00v\x00g\
+\x00\x0f\
+\x0e\xc2?'\
+\x00r\
+\x00o\x00t\x00a\x00t\x00e\x00-\x00l\x00e\x00f\x00t\x00.\x00s\x00v\x00g\
+\x00\x08\
+\x0c\xa7Y\xe6\
+\x00t\
+\x00e\x00s\x00t\x00.\x00p\x00d\x00f\
+\x00\x0e\
+\x0d\x8b4g\
+\x00e\
+\x00d\x00i\x00t\x00-\x00c\x00l\x00e\x00a\x00r\x00.\x00s\x00v\x00g\
+\x00\x10\
+\x00\xe9\xe4\xe7\
+\x00g\
+\x00o\x00-\x00u\x00p\x00-\x00s\x00e\x00a\x00r\x00c\x00h\x00.\x00s\x00v\x00g\
+\x00\x12\
+\x0f:\x80G\
+\x00g\
+\x00o\x00-\x00d\x00o\x00w\x00n\x00-\x00s\x00e\x00a\x00r\x00c\x00h\x00.\x00s\x00v\
+\x00g\
+\x00\x19\
+\x0d\x16K\xa7\
+\x00g\
+\x00o\x00-\x00p\x00r\x00e\x00v\x00i\x00o\x00u\x00s\x00-\x00v\x00i\x00e\x00w\x00-\
+\x00p\x00a\x00g\x00e\x00.\x00s\x00v\x00g\
+\x00\x0c\
+\x06\xeb\x9ag\
+\x00z\
+\x00o\x00o\x00m\x00-\x00o\x00u\x00t\x00.\x00s\x00v\x00g\
+"
+
+qt_resource_struct = b"\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x00\x18\x00\x02\x00\x00\x00\x10\x00\x00\x00\x03\
+\x00\x00\x00\x00\x00\x00\x00\x00\
+\x00\x00\x01\xec\x00\x00\x00\x00\x00\x01\x00\x01D\xb8\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x0er\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01B\x00\x00\x00\x00\x00\x01\x00\x00\x12\x1d\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x10B\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00X\x00\x00\x00\x00\x00\x01\x00\x00\x03\x10\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02t\x00\x00\x00\x00\x00\x01\x00\x01I\xfd\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00t\x00\x00\x00\x00\x00\x01\x00\x00\x06r\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01j\x00\x00\x00\x00\x00\x01\x00\x00\x13\xa7\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x16\xb2\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02<\x00\x00\x00\x00\x00\x01\x00\x01G\xf7\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\xca\x00\x00\x00\x00\x00\x01\x00\x01B\x0f\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x09\xe4\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\x15$\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x0cl\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+\x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x01E\xf1\
+\x00\x00\x01\x83\x17\xd5\xbe\xab\
+"
+
+def qInitResources():
+ QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+def qCleanupResources():
+ QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
+
+qInitResources()
diff --git a/examples/pdf/quickpdfviewer/resources/document-open.svg b/examples/pdf/quickpdfviewer/resources/document-open.svg
new file mode 100644
index 000000000..bf23123a3
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/document-open.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 4v24h24l-1-1h-22v-13h5l3-3h14v16l1 1v-21h-10l-3-3z"
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-clear.svg b/examples/pdf/quickpdfviewer/resources/edit-clear.svg
new file mode 100644
index 000000000..1c35aaf04
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-clear.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8 3 L 0.94335938 10.056641 L 0 11 L 0.94335938 11.943359 L 8 19 L 20.333984 19 L 22 19 L 22 3 L 20.333984 3 L 8 3 z M 11.320312 7 L 14 9.6796875 L 16.679688 7 L 18 8.3203125 L 15.320312 11 L 18 13.679688 L 16.679688 15 L 14 12.320312 L 11.320312 15 L 10 13.679688 L 12.679688 11 L 10 8.3203125 L 11.320312 7 z "
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-copy.svg b/examples/pdf/quickpdfviewer/resources/edit-copy.svg
new file mode 100644
index 000000000..9dd16877d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-copy.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path
+ style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="m4 3v1 13h1 2 1v1 1h6l4-4v-1-7-1h-2v-3h-1-10-1m1 1h10v2h-7v1 9h-1-2v-12m4 3h8v7h-3-1v1 3h-4v-11"
+ class="ColorScheme-Text"
+ transform="translate(1,1)"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/edit-select-all.svg b/examples/pdf/quickpdfviewer/resources/edit-select-all.svg
new file mode 100644
index 000000000..5f21950a0
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/edit-select-all.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 8 L 5 8 L 5 5 L 8 5 L 8 4 L 5 4 L 4 4 z M 16 4 L 16 5 L 19 5 L 19 8 L 20 8 L 20 4 L 16 4 z M 6 6 L 6 11 L 11 11 L 11 6 L 6 6 z M 13 6 L 13 11 L 18 11 L 18 6 L 13 6 z M 7 7 L 10 7 L 10 10 L 7 10 L 7 7 z M 14 7 L 17 7 L 17 10 L 14 10 L 14 7 z M 6 13 L 6 18 L 11 18 L 11 13 L 6 13 z M 13 13 L 13 18 L 18 18 L 18 13 L 13 13 z M 7 14 L 10 14 L 10 17 L 7 17 L 7 14 z M 14 14 L 17 14 L 17 17 L 14 17 L 14 14 z M 4 16 L 4 20 L 5 20 L 8 20 L 8 19 L 5 19 L 5 16 L 4 16 z M 19 16 L 19 19 L 16 19 L 16 20 L 20 20 L 20 19 L 20 16 L 19 16 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-down-search.svg b/examples/pdf/quickpdfviewer/resources/go-down-search.svg
new file mode 100644
index 000000000..ae17ab93b
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-down-search.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4.7070312 8 L 4 8.7070312 L 10.125 14.832031 L 12 16.707031 L 13.875 14.832031 L 20 8.7070312 L 19.292969 8 L 13.167969 14.125 L 12 15.292969 L 10.832031 14.125 L 4.7070312 8 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg b/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg
new file mode 100644
index 000000000..e453ddbec
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-next-view-page.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 8.7070312 4 L 8 4.7070312 L 14.125 10.832031 L 15.292969 12 L 14.125 13.167969 L 8 19.292969 L 8.7070312 20 L 14.832031 13.875 L 16.707031 12 L 14.832031 10.125 L 8.7070312 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg b/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg
new file mode 100644
index 000000000..b032309e9
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-previous-view-page.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 15.292969 4 L 9.1679688 10.125 L 7.2929688 12 L 9.1679688 13.875 L 15.292969 20 L 16 19.292969 L 9.875 13.167969 L 8.7070312 12 L 9.875 10.832031 L 16 4.7070312 L 15.292969 4 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/go-up-search.svg b/examples/pdf/quickpdfviewer/resources/go-up-search.svg
new file mode 100644
index 000000000..5cc155873
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/go-up-search.svg
@@ -0,0 +1,8 @@
+<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ <path d="M4.707 16L4 15.293l8-8 8 8-.707.707L12 8.707" class="ColorScheme-Text" fill="currentColor"/>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/rotate-left.svg b/examples/pdf/quickpdfviewer/resources/rotate-left.svg
new file mode 100644
index 000000000..90ce53c9d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/rotate-left.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
+ <g color="#000" font-weight="400" fill="#474747">
+ <path d="M2 9v1c0 .265.093.53.281.719l3.72 3.719 3.718-3.72c.188-.187.281-.453.281-.718V9H9c-.265 0-.53.093-.719.281l-2.28 2.281-2.282-2.28A1.015 1.015 0 0 0 3 9z"/>
+ <path d="M8.5 3A3.515 3.515 0 0 0 5 6.5V12h2V6.5C7 5.66 7.66 5 8.5 5H13V3z"/>
+ </g>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/rotate-right.svg b/examples/pdf/quickpdfviewer/resources/rotate-right.svg
new file mode 100644
index 000000000..7383d1c84
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/rotate-right.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
+ <g font-weight="400" fill="#474747">
+ <path d="M3 3v2h4.5C8.34 5 9 5.66 9 6.5V12h2V6.5C11 4.579 9.421 3 7.5 3z"/>
+ <path d="M6 9h1c.257 0 .529.13.719.313L10 11.592l2.281-2.28C12.471 9.13 12.743 9 13 9h1v1c0 .31-.09.552-.281.75L10 14.406 6.281 10.75C6.091 10.552 6 10.31 6 10z"/>
+ </g>
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/test.pdf b/examples/pdf/quickpdfviewer/resources/test.pdf
new file mode 100644
index 000000000..0832dfbed
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/test.pdf
Binary files differ
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg b/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg
new file mode 100644
index 000000000..adf302621
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-fit-best.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 8 L 5 8 L 5 5 L 8 5 L 8 4 L 5 4 L 4 4 z M 12 4 L 10 6 L 14 6 L 12 4 z M 16 4 L 16 5 L 19 5 L 19 8 L 20 8 L 20 5 L 20 4 L 19 4 L 16 4 z M 7 7 L 7 17 L 17 17 L 17 7 L 7 7 z M 8 8 L 16 8 L 16 16 L 8 16 L 8 8 z M 6 10 L 4 12 L 6 14 L 6 10 z M 18 10 L 18 14 L 20 12 L 18 10 z M 4 16 L 4 19 L 4 20 L 8 20 L 8 19 L 5 19 L 5 16 L 4 16 z M 19 16 L 19 19 L 16 19 L 16 20 L 20 20 L 20 19 L 20 16 L 19 16 z M 10 18 L 12 20 L 14 18 L 10 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg b/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg
new file mode 100644
index 000000000..985ee5205
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-fit-width.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#4d4d4d;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 7 7 L 7 17 L 17 17 L 17 7 L 7 7 z M 8 8 L 16 8 L 16 16 L 8 16 L 8 8 z M 6 10 L 4 12 L 6 14 L 6 10 z M 18 10 L 18 14 L 20 12 L 18 10 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-in.svg b/examples/pdf/quickpdfviewer/resources/zoom-in.svg
new file mode 100644
index 000000000..efdc9f17d
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-in.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 6 L 5 6 L 5 5 L 6 5 L 6 4 L 4 4 z M 9 4 L 9 5 L 11 5 L 11 4 L 9 4 z M 13 4 L 13 5 L 15 5 L 15 4 L 13 4 z M 18 4 L 18 5 L 19 5 L 19 6 L 20 6 L 20 4 L 18 4 z M 12 8 L 12 9 L 14.292969 9 L 11 12.292969 L 11.707031 13 L 15 9.7070312 L 15 12 L 16 12 L 16 8 L 15 8 L 12 8 z M 4 9 L 4 11 L 5 11 L 5 9 L 4 9 z M 19 9 L 19 11 L 20 11 L 20 9 L 19 9 z M 19 13 L 19 15 L 20 15 L 20 13 L 19 13 z M 4 14 L 4 20 L 10 20 L 10 14 L 4 14 z M 5 15 L 9 15 L 9 19 L 5 19 L 5 15 z M 19 18 L 19 19 L 18 19 L 18 20 L 20 20 L 20 18 L 19 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-original.svg b/examples/pdf/quickpdfviewer/resources/zoom-original.svg
new file mode 100644
index 000000000..1b4080a03
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-original.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 5 L 4 7 L 5 7 L 5 5 L 7 5 L 7 4 L 5 4 L 4 4 z M 17 4 L 17 5 L 19 5 L 19 7 L 20 7 L 20 5 L 20 4 L 19 4 L 17 4 z M 6 6 L 6 18 L 18 18 L 18 6 L 6 6 z M 7 7 L 17 7 L 17 17 L 7 17 L 7 7 z M 4 17 L 4 19 L 4 20 L 7 20 L 7 19 L 5 19 L 5 17 L 4 17 z M 19 17 L 19 19 L 17 19 L 17 20 L 20 20 L 20 17 L 19 17 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/resources/zoom-out.svg b/examples/pdf/quickpdfviewer/resources/zoom-out.svg
new file mode 100644
index 000000000..fcde9e526
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/resources/zoom-out.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <defs id="defs3051">
+ <style type="text/css" id="current-color-scheme">
+ .ColorScheme-Text {
+ color:#232629;
+ }
+ </style>
+ </defs>
+ <path style="fill:currentColor;fill-opacity:1;stroke:none"
+ d="M 4 4 L 4 11 L 5 11 L 5 5 L 19 5 L 19 19 L 13 19 L 13 20 L 20 20 L 20 19 L 20 5 L 20 4 L 5 4 L 4 4 z M 15.292969 8 L 12 11.292969 L 12 9 L 11 9 L 11 13 L 12 13 L 15 13 L 15 12 L 12.707031 12 L 16 8.7070312 L 15.292969 8 z M 4 14 L 4 16 L 5 16 L 5 15 L 6 15 L 6 14 L 4 14 z M 8 14 L 8 15 L 9 15 L 9 16 L 10 16 L 10 14 L 8 14 z M 4 18 L 4 20 L 6 20 L 6 19 L 5 19 L 5 18 L 4 18 z M 9 18 L 9 19 L 8 19 L 8 20 L 10 20 L 10 18 L 9 18 z "
+ class="ColorScheme-Text"
+ />
+</svg>
diff --git a/examples/pdf/quickpdfviewer/viewer.qml b/examples/pdf/quickpdfviewer/viewer.qml
new file mode 100644
index 000000000..998c41d20
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/viewer.qml
@@ -0,0 +1,307 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Dialogs
+import QtQuick.Layouts
+import QtQuick.Pdf
+
+ApplicationWindow {
+ id: root
+ width: 800
+ height: 1024
+ color: "lightgrey"
+ title: document.title
+ visible: true
+ required property url source // for main.py
+ property real scaleStep: Math.sqrt(2)
+
+ header: ToolBar {
+ RowLayout {
+ anchors.fill: parent
+ anchors.rightMargin: 6
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.Open
+ icon.source: "qrc:/pdfviewer/resources/document-open.svg"
+ onTriggered: fileDialog.open()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.ZoomIn
+ enabled: view.sourceSize.width < 10000
+ icon.source: "qrc:/pdfviewer/resources/zoom-in.svg"
+ onTriggered: view.renderScale *= root.scaleStep
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.ZoomOut
+ enabled: view.sourceSize.width > 50
+ icon.source: "qrc:/pdfviewer/resources/zoom-out.svg"
+ onTriggered: view.renderScale /= root.scaleStep
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/zoom-fit-width.svg"
+ onTriggered: view.scaleToWidth(root.contentItem.width, root.contentItem.height)
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/zoom-fit-best.svg"
+ onTriggered: view.scaleToPage(root.contentItem.width, root.contentItem.height)
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+0"
+ icon.source: "qrc:/pdfviewer/resources/zoom-original.svg"
+ onTriggered: view.resetScale()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+L"
+ icon.source: "qrc:/pdfviewer/resources/rotate-left.svg"
+ onTriggered: view.pageRotation -= 90
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: "Ctrl+R"
+ icon.source: "qrc:/pdfviewer/resources/rotate-right.svg"
+ onTriggered: view.pageRotation += 90
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-previous-view-page.svg"
+ enabled: view.backEnabled
+ onTriggered: view.back()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "go back"
+ }
+ SpinBox {
+ id: currentPageSB
+ from: 1
+ to: document.pageCount
+ editable: true
+ value: view.currentPage + 1
+ onValueModified: view.goToPage(value - 1)
+ Shortcut {
+ sequence: StandardKey.MoveToPreviousPage
+ onActivated: view.goToPage(currentPageSB.value - 2)
+ }
+ Shortcut {
+ sequence: StandardKey.MoveToNextPage
+ onActivated: view.goToPage(currentPageSB.value)
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-next-view-page.svg"
+ enabled: view.forwardEnabled
+ onTriggered: view.forward()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "go forward"
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.SelectAll
+ icon.source: "qrc:/pdfviewer/resources/edit-select-all.svg"
+ onTriggered: view.selectAll()
+ }
+ }
+ ToolButton {
+ action: Action {
+ shortcut: StandardKey.Copy
+ icon.source: "qrc:/pdfviewer/resources/edit-copy.svg"
+ enabled: view.selectedText !== ""
+ onTriggered: view.copySelectionToClipboard()
+ }
+ }
+ Shortcut {
+ sequence: StandardKey.Find
+ onActivated: searchField.forceActiveFocus()
+ }
+ Shortcut {
+ sequence: StandardKey.Quit
+ onActivated: Qt.quit()
+ }
+ }
+ }
+
+ FileDialog {
+ id: fileDialog
+ title: "Open a PDF file"
+ nameFilters: [ "PDF files (*.pdf)" ]
+ onAccepted: document.source = selectedFile
+ }
+
+ Dialog {
+ id: passwordDialog
+ title: "Password"
+ standardButtons: Dialog.Ok | Dialog.Cancel
+ modal: true
+ closePolicy: Popup.CloseOnEscape
+ anchors.centerIn: parent
+ width: 300
+
+ contentItem: TextField {
+ id: passwordField
+ placeholderText: qsTr("Please provide the password")
+ echoMode: TextInput.Password
+ width: parent.width
+ onAccepted: passwordDialog.accept()
+ }
+ onOpened: function() { passwordField.forceActiveFocus() }
+ onAccepted: document.password = passwordField.text
+ }
+
+ Dialog {
+ id: errorDialog
+ title: "Error loading " + document.source
+ standardButtons: Dialog.Close
+ modal: true
+ closePolicy: Popup.CloseOnEscape
+ anchors.centerIn: parent
+ width: 300
+ visible: document.status === PdfDocument.Error
+
+ contentItem: Label {
+ id: errorField
+ text: document.error
+ }
+ }
+
+ PdfScrollablePageView {
+ id: view
+ anchors.fill: parent
+ anchors.leftMargin: searchDrawer.position * searchDrawer.width
+ document: PdfDocument {
+ id: document
+ source: Qt.resolvedUrl(root.source)
+ onPasswordRequired: passwordDialog.open()
+ }
+ searchString: searchField.text
+ }
+
+ Drawer {
+ id: searchDrawer
+ edge: Qt.LeftEdge
+// modal: false
+// dim: false // commented out as workaround for QTBUG-83859
+ width: 300
+ y: root.header.height
+ height: view.height
+ clip: true
+ ListView {
+ id: searchResultsList
+ anchors.fill: parent
+ anchors.margins: 2
+ model: view.searchModel
+ currentIndex: view.searchModel.currentResult
+ ScrollBar.vertical: ScrollBar { }
+ delegate: ItemDelegate {
+ id: resultDelegate
+ required property int index
+ required property int page
+ required property string contextBefore
+ required property string contextAfter
+ width: parent ? parent.width : 0
+ RowLayout {
+ anchors.fill: parent
+ spacing: 0
+ Label {
+ text: "Page " + (resultDelegate.page + 1) + ": "
+ }
+ Label {
+ text: resultDelegate.contextBefore
+ elide: Text.ElideLeft
+ horizontalAlignment: Text.AlignRight
+ Layout.fillWidth: true
+ Layout.preferredWidth: parent.width / 2
+ }
+ Label {
+ font.bold: true
+ text: view.searchString
+ width: implicitWidth
+ }
+ Label {
+ text: resultDelegate.contextAfter
+ elide: Text.ElideRight
+ Layout.fillWidth: true
+ Layout.preferredWidth: parent.width / 2
+ }
+ }
+ highlighted: ListView.isCurrentItem
+ onClicked: view.searchModel.currentResult = resultDelegate.index
+ }
+ }
+ }
+
+ footer: ToolBar {
+ height: footerRow.implicitHeight
+ RowLayout {
+ id: footerRow
+ anchors.fill: parent
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-up-search.svg"
+ shortcut: StandardKey.FindPrevious
+ onTriggered: view.searchBack()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "find previous"
+ }
+ TextField {
+ id: searchField
+ placeholderText: "search"
+ Layout.minimumWidth: 150
+ Layout.maximumWidth: 300
+ Layout.fillWidth: true
+ onAccepted: searchDrawer.open()
+ Image {
+ visible: searchField.text !== ""
+ source: "qrc:/pdfviewer/resources/edit-clear.svg"
+ anchors {
+ right: parent.right
+ top: parent.top
+ bottom: parent.bottom
+ margins: 3
+ rightMargin: 5
+ }
+ TapHandler {
+ onTapped: searchField.clear()
+ }
+ }
+ }
+ ToolButton {
+ action: Action {
+ icon.source: "qrc:/pdfviewer/resources/go-down-search.svg"
+ shortcut: StandardKey.FindNext
+ onTriggered: view.searchForward()
+ }
+ ToolTip.visible: enabled && hovered
+ ToolTip.delay: 2000
+ ToolTip.text: "find next"
+ }
+ Label {
+ Layout.fillWidth: true
+ property size implicitPointSize: document.pagePointSize(view.currentPage)
+ text: "page " + (view.currentPage + 1) + " of " + document.pageCount +
+ " scale " + view.renderScale.toFixed(2) +
+ " original " + implicitPointSize.width.toFixed(1) + "x" + implicitPointSize.height.toFixed(1) + "pts"
+ visible: document.status === PdfDocument.Ready
+ }
+ }
+ }
+}
diff --git a/examples/pdf/quickpdfviewer/viewer.qrc b/examples/pdf/quickpdfviewer/viewer.qrc
new file mode 100644
index 000000000..3f5fae9f7
--- /dev/null
+++ b/examples/pdf/quickpdfviewer/viewer.qrc
@@ -0,0 +1,20 @@
+<RCC>
+ <qresource prefix="/pdfviewer">
+ <file>resources/document-open.svg</file>
+ <file>resources/edit-clear.svg</file>
+ <file>resources/edit-copy.svg</file>
+ <file>resources/edit-select-all.svg</file>
+ <file>resources/go-down-search.svg</file>
+ <file>resources/go-next-view-page.svg</file>
+ <file>resources/go-previous-view-page.svg</file>
+ <file>resources/go-up-search.svg</file>
+ <file>resources/rotate-left.svg</file>
+ <file>resources/rotate-right.svg</file>
+ <file>resources/test.pdf</file>
+ <file>resources/zoom-in.svg</file>
+ <file>resources/zoom-fit-best.svg</file>
+ <file>resources/zoom-fit-width.svg</file>
+ <file>resources/zoom-original.svg</file>
+ <file>resources/zoom-out.svg</file>
+ </qresource>
+</RCC>
diff --git a/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst b/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst
new file mode 100644
index 000000000..1e90c85b3
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/doc/pdfviewer.rst
@@ -0,0 +1,5 @@
+PDF Viewer Example
+==================
+
+The PDF Viewer example demonstrates how to use the QPdfView class to render
+PDF documents and the QPdfPageNavigator class to navigate them.
diff --git a/examples/pdfwidgets/pdfviewer/images/document-open.svgz b/examples/pdfwidgets/pdfviewer/images/document-open.svgz
new file mode 100644
index 000000000..5ddde5981
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/document-open.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz b/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz
new file mode 100644
index 000000000..e7f7bece4
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-next-view-page.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz b/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz
new file mode 100644
index 000000000..2f86541cc
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-next-view.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz b/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz
new file mode 100644
index 000000000..f4df6df40
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-previous-view-page.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz b/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz
new file mode 100644
index 000000000..688f55ffe
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/go-previous-view.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz
new file mode 100644
index 000000000..0cb1b3074
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-fit-best.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz
new file mode 100644
index 000000000..a467f6eae
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-fit-width.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz
new file mode 100644
index 000000000..21d6c2ab2
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-in.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz
new file mode 100644
index 000000000..afa79db19
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-original.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz
new file mode 100644
index 000000000..b6db7a144
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-out.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz b/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz
new file mode 100644
index 000000000..ad4c29215
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/images/zoom-previous.svgz
Binary files differ
diff --git a/examples/pdfwidgets/pdfviewer/main.py b/examples/pdfwidgets/pdfviewer/main.py
new file mode 100644
index 000000000..c4765fdda
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/main.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import sys
+from argparse import ArgumentParser, RawTextHelpFormatter
+
+from PySide6.QtWidgets import QApplication
+from PySide6.QtCore import QCoreApplication, QUrl
+
+from mainwindow import MainWindow
+
+"""PySide6 port of the pdfwidgets/pdfviewer example from Qt v6.x"""
+
+
+if __name__ == "__main__":
+ argument_parser = ArgumentParser(description="PDF Viewer",
+ formatter_class=RawTextHelpFormatter)
+ argument_parser.add_argument("file", help="The file to open",
+ nargs='?', type=str)
+ options = argument_parser.parse_args()
+
+ a = QApplication(sys.argv)
+ w = MainWindow()
+ w.show()
+ if options.file:
+ w.open(QUrl.fromLocalFile(options.file))
+ sys.exit(QCoreApplication.exec())
diff --git a/examples/pdfwidgets/pdfviewer/mainwindow.py b/examples/pdfwidgets/pdfviewer/mainwindow.py
new file mode 100644
index 000000000..d37475aca
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/mainwindow.py
@@ -0,0 +1,141 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import math
+import sys
+
+from PySide6.QtPdf import QPdfBookmarkModel, QPdfDocument
+from PySide6.QtPdfWidgets import QPdfView
+from PySide6.QtWidgets import (QDialog, QFileDialog, QMainWindow, QMessageBox,
+ QSpinBox)
+from PySide6.QtCore import QModelIndex, QPoint, QStandardPaths, QUrl, Slot
+
+from zoomselector import ZoomSelector
+from ui_mainwindow import Ui_MainWindow
+
+
+ZOOM_MULTIPLIER = math.sqrt(2.0)
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+ self.ui = Ui_MainWindow()
+ self.m_zoomSelector = ZoomSelector(self)
+ self.m_pageSelector = QSpinBox(self)
+ self.m_document = QPdfDocument(self)
+ self.m_fileDialog = None
+
+ self.ui.setupUi(self)
+
+ self.m_zoomSelector.setMaximumWidth(150)
+ self.ui.mainToolBar.insertWidget(self.ui.actionZoom_In, self.m_zoomSelector)
+
+ self.ui.mainToolBar.insertWidget(self.ui.actionForward, self.m_pageSelector)
+ self.m_pageSelector.valueChanged.connect(self.page_selected)
+ nav = self.ui.pdfView.pageNavigator()
+ nav.currentPageChanged.connect(self.m_pageSelector.setValue)
+ nav.backAvailableChanged.connect(self.ui.actionBack.setEnabled)
+ nav.forwardAvailableChanged.connect(self.ui.actionForward.setEnabled)
+
+ self.m_zoomSelector.zoom_mode_changed.connect(self.ui.pdfView.setZoomMode)
+ self.m_zoomSelector.zoom_factor_changed.connect(self.ui.pdfView.setZoomFactor)
+ self.m_zoomSelector.reset()
+
+ bookmark_model = QPdfBookmarkModel(self)
+ bookmark_model.setDocument(self.m_document)
+
+ self.ui.bookmarkView.setModel(bookmark_model)
+ self.ui.bookmarkView.activated.connect(self.bookmark_selected)
+
+ self.ui.tabWidget.setTabEnabled(1, False) # disable 'Pages' tab for now
+
+ self.ui.pdfView.setDocument(self.m_document)
+
+ self.ui.pdfView.zoomFactorChanged.connect(self.m_zoomSelector.set_zoom_factor)
+
+ @Slot(QUrl)
+ def open(self, doc_location):
+ if doc_location.isLocalFile():
+ self.m_document.load(doc_location.toLocalFile())
+ document_title = self.m_document.metaData(QPdfDocument.MetaDataField.Title)
+ self.setWindowTitle(document_title if document_title else "PDF Viewer")
+ self.page_selected(0)
+ self.m_pageSelector.setMaximum(self.m_document.pageCount() - 1)
+ else:
+ message = f"{doc_location} is not a valid local file"
+ print(message, file=sys.stderr)
+ QMessageBox.critical(self, "Failed to open", message)
+
+ @Slot(QModelIndex)
+ def bookmark_selected(self, index):
+ if not index.isValid():
+ return
+ page = index.data(int(QPdfBookmarkModel.Role.Page))
+ zoom_level = index.data(int(QPdfBookmarkModel.Role.Level))
+ self.ui.pdfView.pageNavigator().jump(page, QPoint(), zoom_level)
+
+ @Slot(int)
+ def page_selected(self, page):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(page, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionOpen_triggered(self):
+ if not self.m_fileDialog:
+ directory = QStandardPaths.writableLocation(QStandardPaths.DocumentsLocation)
+ self.m_fileDialog = QFileDialog(self, "Choose a PDF", directory)
+ self.m_fileDialog.setAcceptMode(QFileDialog.AcceptOpen)
+ self.m_fileDialog.setMimeTypeFilters(["application/pdf"])
+ if self.m_fileDialog.exec() == QDialog.Accepted:
+ to_open = self.m_fileDialog.selectedUrls()[0]
+ if to_open.isValid():
+ self.open(to_open)
+
+ @Slot()
+ def on_actionQuit_triggered(self):
+ self.close()
+
+ @Slot()
+ def on_actionAbout_triggered(self):
+ QMessageBox.about(self, "About PdfViewer",
+ "An example using QPdfDocument")
+
+ @Slot()
+ def on_actionAbout_Qt_triggered(self):
+ QMessageBox.aboutQt(self)
+
+ @Slot()
+ def on_actionZoom_In_triggered(self):
+ factor = self.ui.pdfView.zoomFactor() * ZOOM_MULTIPLIER
+ self.ui.pdfView.setZoomFactor(factor)
+
+ @Slot()
+ def on_actionZoom_Out_triggered(self):
+ factor = self.ui.pdfView.zoomFactor() / ZOOM_MULTIPLIER
+ self.ui.pdfView.setZoomFactor(factor)
+
+ @Slot()
+ def on_actionPrevious_Page_triggered(self):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(nav.currentPage() - 1, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionNext_Page_triggered(self):
+ nav = self.ui.pdfView.pageNavigator()
+ nav.jump(nav.currentPage() + 1, QPoint(), nav.currentZoom())
+
+ @Slot()
+ def on_actionContinuous_triggered(self):
+ cont_checked = self.ui.actionContinuous.isChecked()
+ mode = QPdfView.PageMode.MultiPage if cont_checked else QPdfView.PageMode.SinglePage
+ self.ui.pdfView.setPageMode(mode)
+
+ @Slot()
+ def on_actionBack_triggered(self):
+ self.ui.pdfView.pageNavigator().back()
+
+ @Slot()
+ def on_actionForward_triggered(self):
+ self.ui.pdfView.pageNavigator().forward()
diff --git a/examples/pdfwidgets/pdfviewer/mainwindow.ui b/examples/pdfwidgets/pdfviewer/mainwindow.ui
new file mode 100644
index 000000000..7cfcde4b3
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/mainwindow.ui
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>700</width>
+ <height>600</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>PDF Viewer</string>
+ </property>
+ <property name="unifiedTitleAndToolBarOnMac">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="widget" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="splitter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="tabPosition">
+ <enum>QTabWidget::West</enum>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <property name="documentMode">
+ <bool>false</bool>
+ </property>
+ <widget class="QWidget" name="bookmarkTab">
+ <attribute name="title">
+ <string>Bookmarks</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>2</number>
+ </property>
+ <property name="topMargin">
+ <number>2</number>
+ </property>
+ <property name="rightMargin">
+ <number>2</number>
+ </property>
+ <property name="bottomMargin">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QTreeView" name="bookmarkView">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="headerHidden">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="pagesTab">
+ <attribute name="title">
+ <string>Pages</string>
+ </attribute>
+ </widget>
+ </widget>
+ <widget class="QPdfView" name="pdfView" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>700</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionOpen"/>
+ <addaction name="actionQuit"/>
+ </widget>
+ <widget class="QMenu" name="menuHelp">
+ <property name="title">
+ <string>Help</string>
+ </property>
+ <addaction name="actionAbout"/>
+ <addaction name="actionAbout_Qt"/>
+ </widget>
+ <widget class="QMenu" name="menuView">
+ <property name="title">
+ <string>View</string>
+ </property>
+ <addaction name="actionZoom_In"/>
+ <addaction name="actionZoom_Out"/>
+ <addaction name="actionPrevious_Page"/>
+ <addaction name="actionNext_Page"/>
+ <addaction name="separator"/>
+ <addaction name="actionContinuous"/>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuView"/>
+ <addaction name="menuHelp"/>
+ </widget>
+ <widget class="QToolBar" name="mainToolBar">
+ <property name="movable">
+ <bool>false</bool>
+ </property>
+ <property name="floatable">
+ <bool>false</bool>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="actionOpen"/>
+ <addaction name="separator"/>
+ <addaction name="actionZoom_Out"/>
+ <addaction name="actionZoom_In"/>
+ <addaction name="separator"/>
+ <addaction name="actionBack"/>
+ <addaction name="actionForward"/>
+ </widget>
+ <widget class="QStatusBar" name="statusBar"/>
+ <action name="actionOpen">
+ <property name="icon">
+ <iconset theme="document-open" resource="resources.qrc">
+ <normaloff>:/icons/images/document-open.svgz</normaloff>:/icons/images/document-open.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Open...</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action name="actionQuit">
+ <property name="icon">
+ <iconset theme="application-exit"/>
+ </property>
+ <property name="text">
+ <string>Quit</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="actionAbout">
+ <property name="icon">
+ <iconset theme="help-about"/>
+ </property>
+ <property name="text">
+ <string>About</string>
+ </property>
+ </action>
+ <action name="actionAbout_Qt">
+ <property name="text">
+ <string>About Qt</string>
+ </property>
+ </action>
+ <action name="actionZoom_In">
+ <property name="icon">
+ <iconset theme="zoom-in" resource="resources.qrc">
+ <normaloff>:/icons/images/zoom-in.svgz</normaloff>:/icons/images/zoom-in.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Zoom In</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl++</string>
+ </property>
+ </action>
+ <action name="actionZoom_Out">
+ <property name="icon">
+ <iconset theme="zoom-out" resource="resources.qrc">
+ <normaloff>:/icons/images/zoom-out.svgz</normaloff>:/icons/images/zoom-out.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Zoom Out</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+-</string>
+ </property>
+ </action>
+ <action name="actionPrevious_Page">
+ <property name="icon">
+ <iconset theme="go-previous-view-page" resource="resources.qrc">
+ <normaloff>:/icons/images/go-previous-view-page.svgz</normaloff>:/icons/images/go-previous-view-page.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Previous Page</string>
+ </property>
+ <property name="shortcut">
+ <string>PgUp</string>
+ </property>
+ </action>
+ <action name="actionNext_Page">
+ <property name="icon">
+ <iconset theme="go-next-view-page" resource="resources.qrc">
+ <normaloff>:/icons/images/go-next-view-page.svgz</normaloff>:/icons/images/go-next-view-page.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Next Page</string>
+ </property>
+ <property name="shortcut">
+ <string>PgDown</string>
+ </property>
+ </action>
+ <action name="actionContinuous">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Continuous</string>
+ </property>
+ </action>
+ <action name="actionBack">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/images/go-previous-view.svgz</normaloff>:/icons/images/go-previous-view.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Back</string>
+ </property>
+ <property name="toolTip">
+ <string>back to previous view</string>
+ </property>
+ </action>
+ <action name="actionForward">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="resources.qrc">
+ <normaloff>:/icons/images/go-next-view.svgz</normaloff>:/icons/images/go-next-view.svgz</iconset>
+ </property>
+ <property name="text">
+ <string>Forward</string>
+ </property>
+ <property name="toolTip">
+ <string>forward to next view</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>QPdfView</class>
+ <extends>QWidget</extends>
+ <header location="global">qpdfview.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject b/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject
new file mode 100644
index 000000000..cbd5f156f
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/pdfviewer.pyproject
@@ -0,0 +1,4 @@
+{
+ "files": ["main.py", "mainwindow.py", "zoomselector.py",
+ "mainwindow.ui","resources.qrc"]
+}
diff --git a/examples/pdfwidgets/pdfviewer/resources.qrc b/examples/pdfwidgets/pdfviewer/resources.qrc
new file mode 100644
index 000000000..db77763d2
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/resources.qrc
@@ -0,0 +1,11 @@
+<RCC>
+ <qresource prefix="/icons">
+ <file>images/document-open.svgz</file>
+ <file>images/go-next-view.svgz</file>
+ <file>images/go-previous-view.svgz</file>
+ <file>images/go-next-view-page.svgz</file>
+ <file>images/go-previous-view-page.svgz</file>
+ <file>images/zoom-in.svgz</file>
+ <file>images/zoom-out.svgz</file>
+ </qresource>
+</RCC>
diff --git a/examples/pdfwidgets/pdfviewer/resources_rc.py b/examples/pdfwidgets/pdfviewer/resources_rc.py
new file mode 100644
index 000000000..7e386e99b
--- /dev/null
+++ b/examples/pdfwidgets/pdfviewer/resources_rc.py
@@ -0,0 +1,3468 @@
+# Resource object code (Python 3)
+# Created by: object code
+# Created by: The Resource Compiler for Qt version 6.4.0
+# WARNING! All changes made in this file will be lost!
+
+from PySide6 import QtCore
+
+qt_resource_data = b"\
+\x00\x001G\
+\x1f\
+\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xec}\xebs\x1b\xc7\xb1\
+\xef\xe7\xe4\xaf\xe0U\xbeDU\xc0\xb0\xdf\x0f%\xce\xa9\
+\xc4\x8eS\xa9r\xea\xa4n\x1e\xf7\xdcO.\x88\x04%\
+\x1e\xd3\xa4\x0eI\xf9\x91\xbf\xfe\xee\x02$g!h\xb1\
+\x00\x16P$_s\x5c\xf2b\xb6\xb7{\xfa7==\
+=\xb33\xb3\xbf\xfd\x8f\x1f\xbe\xbd:\xf9n~{w\
+ys\xfd\xd93,\xf0\xecd~}vs~y\xfd\
+\xea\xb3g\xff\xf8\xfb\x97\xd3xvrw?\xbb>\x9f\
+]\xdd\x5c\xcf?{v}\xf3\xec?~\xf7\xcb\xdf\xfe\
+\xaf\xe9\xf4\xe4O\xf3\xeb\xf9\xed\xec\xfe\xe6\xf6\xc5\xc9\xef\
+\xcfo^\xceO\xfe|u\xf5\xf6\xee~\x91u\x82T\
+\xa0\xc0\xe4\xe4o\xff\xfc\xd3\xc9\x1f\x7fxss{\x7f\
+\xf2\xd7\xab\xb7\xaf\xa6\x7f\xbe>)\x8b\xcc\x7f.e\xbe\
+8\xb1\x02p\xf2\x87\xb7\x97W\xe7'\x8a\x22\xf1\xfc\xe4\
+d:mD\xdc}\xf7\xea\x97'''M\xf9\xae\xef\
+^\x5c\xdf}\xf6\xec\xf5\xfd\xfd\x9b\x17\xa7\xa7\xd7we\
+\xd6\x8a+g7\xdf\x9e\xfem\xf6\xdd\xfc\xcb\x9b\xdb\xff\
+3\x7fy\x8a\x05N\x9f\xd5'f\xef\x7f`Q\xd2F\
+\xfe?/\xe7\xdf\xcfo\xff\xf8\xc3\xfd\xfc\xba-\xc6\xdd\
+)\xaf>~\xb9\xe1\xf1\x8e\x9e\xa7\x08\xab\xcf\x9d\x9f=\
+=\xf8\xe6\xed\xedU\xb9\xb9}uz~v:\xbf\x9a\
+\x7f;\xbf\xbe\xbfkJ\x89]\xf2\xb3J~v;\x9f\
+\xdd_~7o\xc4|\xdb\x14\xa8}\xb2\x91\xfd\xab\x0e\
+\xf1\xed\xf9\xc5\x13\xf5\xf7\xdf\x7f_\xbe\xe7\x05\x11f\xe6\
+)\xd0)\xd1\xb4\xa1\x98\xde\xfdx}?\xfba\xba\xfa\
+h\x03\xe6\xfb\x1e%\x008m\xeeU\xca\xed\xa8^\xfc\
+puy\xfdMoa\x16w\xbb\xd2\x1b{zss\
+^1}\xcc(w7oo\xcf\xe6\x17\xcd\x93\xf3r\
+=\xbf?\xfd\xe2\xef_<\xdd\x9cB9\xbf?\xef\xb0\
+i\x98\xde\x9d\xcd\xde\xccW\xe4>f.\xf1\x9a};\
+\xbf{3;\x9b\xdf\x9d>\xe6\xb7\xcfw\x0d\x1c\x17\x19\
+\x97\xe7\x9f=\xfbj\xf6\xe3\xfc\xf6\xeb\xe5\xef\xef/\xcf\
+\xef_7\xb7)\x16?_\xcf/_\xbd\xbe\xaf\xbf\xbf\
+k\xac\xe5\x0f7?|\xf6\x0cN\xe0\x04)N\x1eo\
+\xdc4\x9c/\xaen\xbe\xff\xec\xd9w\x97w\x97/\xaf\
+\x96\xe2\xe6\xd7\xb3\xe6r\xfarv\xf6\xcd\xab\xdb\x9b\xb7\
+\xd7\x8d\xb0\xeb\xf9\xf7'\x9d\x87\x1f\xb5z\xd1\x96\xb6Q\
+\xe8\xcd\xed\xfcn~\xfb\xdd\xf2\xf1G\x00^<\x15\x1b\
+\x0a\xd3\xe2\xd6\xa3V\xdd[b\xabO\x9d\xdf\x9c58\
+4L_\xddL\xaf\xe7?\xdcO\xdf\xcc\x1at\x9b\xfa\
+\xfb\xd7\x1a\xdd\xcb\xd9]Cw\xfa\x8f\xbb\x86\xdb\xe9\xf9\
+\xec\xbb\xcb\xf3\xd3/\xe6w\xdf\xdc\xdf\xbc9\xbdk\xda\
+\xfc\xcb\x9b\x1fV\xa5\xde\xbc\xbd\x7f\xf3\xf6\xfe\xeby\xdb\
+l\x96\xe2\x1b\xd4k\x15,o/D=e\xae2\x98\
+/\x5c\xc1\xf4\xe2\xf2j\xbe,\xe3\xe9\xeb\x9bo\xe7\xa7\
+o.\xaf\x1b\xc8oo\x9a\x8b\xb3\xbb\xd3\x9b\x1f~|\
+5\xbf>m\x9e\xb8jq<\x9d\x9d\xdd/\x9a\xe8\x8a\
+>o\xae_\xbd\x97\xf5\x0f\xe7o\x1a;3/\xfa\xde\
+\xdb?\xd6\xdb\xbf\xfb\xed\xf9\xfc\xe2\xee\xd1\x1a\xdak\x84\
+6\xf7\xe9\x917\x0d*o\xe6gm\xa3\x5c\x01\xee\xfe\
+\xc7\xd6\x06W\xc9\xf8\xfc\x9d\xfay\xf3uc.S\x85\
+\x93\xc6\xc3A\xfb/\xae\x11\xfc\xd8\xd4^{\x03\x16\xf7\
+a\xed\xfe\xbf>{\xe6\xb0\xce`U\xec\xf4\xe6\xf6\xf2\
+\xd5eS\x13\xbc \x92J\xbaP\xab\xa3\x03!=;\
+9\xfd\xe9\xea\x87\xa6\x0b\xfd\xbe\x9d\xdd~3\xbf]\xe1\
+uw\x7fs\xf6MK\xfe\xfb\xdb\xdb\x9b\xef\xf1/\xf3\
+\xeb\xa5:\x0d\xef\xf9u\xd3\xcego\xefo\x16\x19\xb7\
+\xf3\x8b\xff\xdb\xb6)x\xfc\xf5_\xf5\xd7{\x9e\xbf\xbb\
+\xff\xf1\xaa\x81\xea\xd1\x0b\xbcxp\x02\xbfi\xac\xe8\xcd\
+\xec\xfeuK\xb2|\xae\xfd\xc5\xac\xfel\x99\xd5\xe4\xfc\
+\xe5\xa4\xed\x1f\xa1\xc0\xc9W'\xda\x5cMuq9E\
+*\xda\xc9^\xe4>\x91\xfe\xeb\xa4eP\x057\xed\xe8\
+jz\xfb\xf6\xaa1\xef\xef\xe6\xd77\xe7\xe7\xbfi\xfa\
+\xa5\x9bo\xe6/~\x05\x8b\xbf\x87\x9f\xd3\x85{{\x81\
+\x05\xde\xdc\xfff\x09\xcf\xb4\xe9\xd4o\xef_\x5c7\x9d\
+\xfao\x1ex6=\xda\xf5]\xe3\x8a\xbf\xfd\xecY\xdb\
+\xf4\xe6\xbf\x86\x22\xcfOno\xeeg\xf7\xf3_c\xc0\
+\xf3%\xc5\xd5\xe2'L\xe0\xf9\x02\xed\xd3%\xbf\xad`\
+_\xc8\x1c\x01|\xe5\xd0\x0b}\x1f\xf2\xf21\x22\xbf\x01\
+\xf8\xd1`\xffm4\xd8\x7f\xdb\x17l\x83O\x0bl\xea\
+\x82m{`\xfd\xd5H\x7f\xf2\xd5\xbe\xfe\x04?1\x7f\
+\x12\xbd\xfe\x84\x8a\xee\x03\xfch#\xffj_#\x97\xf8\
+\xb4\x8c<\x06\xe0>h\x5c\xb0\xe8\xd4e\xdf\xa0\x00)\
+\xea\xf3\x1bc\x82\x05\x8dP\xb1\xf6\xcf{\x03\x83\xf0\x85\
+\xa6\xcd\xa8d>\xbb\xfd\xd3\xed\xec\xbc5\x95\x15\xc6g\
+7WW\x0dqc>W\xdf\xcf~\xbc{\xe2\xb2\xfa\
+\x88!rc\x0e\x8d\x11\xbeY\xa9\xba6c\xda\xb0\xb8\
+\xb9\xad\x95\xd5f\xdd4\xc1\xfd\xe5\xfd\x8f/\xf0\xb1I\
+\xdc\x5c\x5c\xdc\xcd\x1b)\xf0\xac\x9aSKi\x88m\xec\
+\xb2\x07kx\x975\xae\xb3\xf6e=\xaf\xea\xf2\xbb\xdf\
+\xb6\x17\xb3\xab\xad\xe1X\x0c\xea^\xbc\xbe\x9d7\x83\xd0\
+_\xad\xf2b\x02\x7f\x82l\x95-Q\xe8\xe2\xd6\xab\x87\
+\x8c\x7f\x5c_\xde7\xa3\xcc\xb7\xcd\x90\xe3o\xed\xd8\xe7\
+?\xaf\x9b\xd1\xc7\x0a\xc5\xdf\xab\xf1~;\xbb\xbf\xbd\xfc\
+\xe1\xd7X@\x88T&\xd0\xa6\x82d\x802!,\x9a\
+\xed\xc54\xa8\x18z\xe2\xf3\x05\x9f\xb3\xc6\x00%\x0b \
+\xa6\xe32\xa71:*\xe6\xc2\xe0\xb1\xc8\xb9X\xa3\xb9\
+X\xa3\xb9m\x87\x8bNb\x98\xdcc?\xeb&B\xc4\
+4d\x22/%\x85f;\x9a\x08\x11\xcb\xb0\x89\xcc\xe5\
+\xfc\xec,\xdfa=`!Dl\xef\xb7\x90\xfa{\x84\
+\x85TX\xfa\x10\x0b\x1em!P<\x125\x17\x16\xf2\
+\xf4\x83\xb0\x80\x85\xca\x84\x8b\xa4\x13\xc5|J\xcf\x97E\
+\xc5E\xfd\xa32,\x85\xff\xd8d\xb8\x16F`\x8c%\
+\x09}\xf6,\xa8H\x88\x09-i\xa8C\xb3\xb5E0\
+\xb1>\xdb\x88]\xad\xd3Z)L\xeck\x16\xd1[\xed\
+\x17\x8b\xbf5\x8b:9\xeda\x9dk&\xb1\x13k\xf8\
+\xcd\xf1\xec\xa5\x82\xd6o/x\x00\x8f\x82H\xc29\xc1\
+\x02\xac\xc26\x99\xb6Wh\xc6\x93\xf6\x9e)\xf8\xc4\xb4\
+\xa8\x83\xf2d*YP\x08\xa5c<Q$C\x8d\x9e\
+\xac\x07J *H\xda\x93\xf9H\x14gr\xe2'\xf3\
+\xa1\xc2\xa6N\x96;\x98\x0fx\xb5\x90\x81:\xda\xc5\xa1\
+0A\x0e;\x14\xd26\xed\xd8\xe70!\xfe[\xfb\x1c\
+\xcf\x03X\x88bz\xedsBRh\x82R\x02\x12\x1a\
+\x93p/\x88\xea\x1fC\x9f\xc3Dz$\x13!\x1f6\
+\x91\xd9\xbcM\x03\xacq\x9du\x1e\xdfDH\xfbM\xc4\
+\x8f\xe1D\xa0p\x84yL\xa0\x08\x81\x89L\x0c\x0aB\
+\xd0d*\x5c\x88Am\xd5` #\xe4\xc9`\xa2H\
+*#Q5\x18/\xec\x10\x11O\x06c\xc5\x1d\xd0\xd2\
+\x1f\x0d\x86K\xba\x82\x80no0L\xfa\xfe^\x87\xe9\
+h\xbd\x0e\xd3\x11{\x9da\x8d\x81\xf7i\x22P,X\
+\x94\xc9\x06\xdb\x0a/*`\x0f\x19\xc3\xee\x94\xe1\xf8!\
+<\x03\xf7\xb7\x95C\x04h\x99\x99m\xb0\xee%\x04M\
+l>\xe5\x89\x163\x03\xcf\xf9T&T@\x82\xa1\xc9\
+\xa7\xb63&!bi\x89\xbch \xab\xd7\x86\xc3R\
+\xcc\xdd8\x9f\x1a\x8e\x171\x22\xb7e\xce\xc5\x1a\xcd\xc5\
+\x1a\xcd\xed\xa2mi*f\x0b\xeeA\x83\x17\xd0\xe8\x0d\
+^\x1c\x0f\x80e\xa8)P\x1b\xe8f\xea\xd2\xefx\x9a\
+Q\x9b\x15\x9a\xc62A\xd4\xa2H<\x99\x12\x96d\xf1\
+\xac\xc1\x0bba2\x0ey\x0a^\xd4\x0b\x07g\xe6S\
+\xec\x82R$Y\x19\x974Tiv\x88]@\xe3\xfd\
+~\x06\x0c\xb6\xf739s[\x1fRo1\x18\xe2\xd9\
+\xf9\xf0P\xbc@R\x12\xb0=[+\xa3\xf5\xf92p\
+Xc\xa3 \x8c\xbe\xd1\xa7\x9d\x9d\xd3\xd9\xb6\xee\x12,\
+\xd6D$\xaa#\x87>\x1bPy{\x19\xb4\xbdK~\
+\x99\xd1\xc3\xfa\xa8~\x094z\xfd\x92\x8d\x0f\xf3\xb4\x90\
+9\x0b\xb6^G\x0b(\x1a\xca\x83\x07\x02uOY\x0e\
+\x07\x88\x9b\x8b\xe0\xe2\xae8\x99\x9a\x15\xe5\xd0\xe8x$\
++\xe6j\x12O\x1e)\xb5\xb8%y\xf5Hh\x85\xd0\
+Y\xa5v\xe5RP\x90\x02;\x1e\xc9\xc5\x04v\x98o\
+\xd0|\x7f\x13#\x83\x1d\x9aX\x0d\xf3\x87\x9b\xd8\xf0s\
+\xebm\xe3\xd9Z\xe1\xfa\xda\x16\x19\xac\x1b\xbe\xeb\xb8\xa2\
+w\xb9\xef`\xf2\x00\x00\x1f\xde\xe4Is\x83\xc9\x1f\x22\
+lU\x09\xe5\x09\x16\xb1D\x94E\x0f\x01\x8a\x16\x13\xa2\
+b\xa1\x19\x13$\xa7\x92\xd2\x0e\x8b)\xb1\x08P\xb5u\
+\xd4\xe2\xe4\xe0\xfed\xeb\x1a\x05\x22-\xbc\xda\xfa\x0a\xcd\
+\xc5\x1a\xcd\xedb\xe0\x83\xc2i\xba\xc3\xdc\x9a\xfa\x91\xe6\
+\xd64\x8f5\xb7fxt{!\xf5~{9\xc4\xec\
++1\x1a\xda\x04\x0b%\x0aac\x14X\x1c\x16YX\
+\xd0\xa3u\x8e\x82X\xc2\xa5\xb9\xc7\xa4E\xb5c0B\
+\xc5\xd0\x95\xeb\xc0\x18\x09\x8a\x09>\x8ej\xd6h.\xba\
+4u\x9c#`\x11\xbb\xcc\xbc%\x0e\xd8\xcb\xcb\xabf\
+\x8d\xceZ\x95\x0e\x0c\x8a\x17C\xf3\x9d\xf9\xc2\xe0\x888\
+u\xdb\x01N\x1b\x8e\xc1S\xa8F\xd1\x8d\xe3\xf4)\xcc\
+\xa3\xd8\xb2\xee\xd7\xa1\xc30k\xfa\x95_\xfe\xe2\x17\xbf\
+x\xd0\xb3\x16\x14\xc3\xda\xf0\xa7w\x80sv\xf6\xdey\
+\x86\x0ah\xa3e?g\xea\xe1\xfc\xfd\xeb\xcb\xfb\xf9\xfa\
+\xc0\xa9\x0b\xe8\x03\xdf\x8f\x03@M\xf3>\x005-\x07\
+\xd4\xdc\x0b>M\xc7#\xc3W\xdb\xda\x7f\xfd\xe5\xab?\
+\x7f\xf15}\xbd\x1dD\x15\xcf\x8as\x17\xffZ)U\
+\xb7n\xe9z\x0d\xee\xcb/\xff\xf8{\x80g+8\xd0\
+\x1aDU\xc9^6\x9f\x7f\xfe.\x1b\x19@d?\xe7\
+\xbd\xc4-\xbf\xee\x1b!r\xe2\x0e\x90\xa6\x14\x16\xae\xb8\
+\x22Pa\x11\xaf\xaf0\xac(\xab=\x01\x9cR\x94\x1f\
+F6\xe3\xd5@\xd8\xa0\x07\xef\xa2\x87vT\xe0\x95\xd2\
+\x87\xe9J\xe9\xc3\xf4P\xa5\xc7\x0d\xa5\xd7\x03\x94\xde\x0b\
+%\xd7\xc2k\xfb\xf3Pe\xa7\x0de\xf7]\xcan\x9d\
+\xb2K-{\x14\x00\xa0Zx[\xfe>9\xad\xb1\xcb\
+\xfe\xa5\xf7\xaf\xfb\x22\x16\xd9&b\xa9\xb1(P\x0d*\
+\x90\x0a\x83<\x05\x98\xc8YTC\x0fT\xe4\xd8Pd\
+?p\x91s\xe9y~\xdb\xc4a\xcdJ\xe4\xeb\xff|\
+\xf9\xdfM\x01\x174\xf3\xffy{y;?\xaf\x0b\xd7\
+w_\xa7\xfe\xe8L\x1b\xf9\xb0\xb2\xf8yu\xe9\xf3\x93\
+\xb6+\x85X\xf6i\xbf\xbd|\xf1\xe6\xd5\xc5\xff\x9e_\
+\xaca\xb5(\xc2\xd7\x97U\xf2\xd7\x0d\xe1\xf2\x99\xd3\xc7\
+\x87Z\xcdNW\xb869\xbf<\xa6SEb\x87O\
+\xdb\xabVE\xe8St\xab\xb5\xf8\xf2\xe9\xf9\xd5Zx\
+;\xaec\x1d_\xfc\x8d\xa5\x8f\x03\xc7j\x07\x9e7'\
+\x86\xec+\xbd`\xec\xd2\x80\xa7.%\x08\x1c\xbcS\x07\
+P\x82\xd8\xeb\xea\x8e)FA\xc2\xac\x0d\xa1\x12}X\
+\xd5\xf2\xd3T\xad\x8et\xfaGA\xce\xbb\x18\x9d\x17\xc7\
+t\xa9-\xc7K\x04\xd6\xe6\xb3F\xd2\xe40\x14\x11\xc4\
+\xd0\xbey\x8c\xce\xba\xc7\x22\x0e\x826\x9f\xb6\xcb\x1f?\
+`\x1dk\xba\x7f\xd0:\xae1\xcf\xe1\xebx\x95/j\
+\x86=E7d%U\xba1\x0ec\x01Q\xd0e)\
+/\xd6h.\xd6h\x9a@(JZ\xa0\xf2\xf0\xb2/\
+\x95\xf4\x98L\xa9\xa4&\xc7b\x1e\x1f&P\x12\xd4\x9d\
+&^L\x81\x5c'\x08%<\xc0\x9f\x0f\xd7\xc2\xd1=\
+q\x98\xfa\x11<q\x1bc\xadJ\xea\x95/\xf9\x11\x8e\
+\xda\xc3\x14G\x0e\xdc+'\xee\x19\xbb\xb7yM\xf8y\
+@\xf7\x17f\xd1_\xd3.\xbb4{\xce\xa2\x8cT\xa3\
+\x9e\xda\xdc\xeb\xcd\xfaB\x16\x0b\x86\xeb\xf1\xed\xd5E\x8e\
+`\xaf\x1f\xac\x12\x5c\xec\xd8\x95p\xf4A\xa6i\xc8!\
+\x16ax8\xf1\xe3\xa2\xb6\x0cl\x12M\xb2\xb0\xa1\x03\
+\xe1\x04\x0b\x1a7I\x9e\xef6^=\xf6\xb4\x80i\xf8\
+\xfe\xea\xd7\x00 \x9an\x7f\xe4\xe4\xc1xC\xed\xd11\
+\x95\xa0\xbeP\x86\x02\x08\xc8Y\xfbQ)\xae\x80R_\
+(\xaf\xd2\x5c\xac\xd14j\x10\x14\x0f$\x1dz\xc5\xb3\
+0\x08,\x94h\x08\xadyLQ\x8bzrl\xd1a\
+\x1e}N\x88>\xcd\xca\x1f\x9e9\xa2\xc8\x8f\xbbQ\x1f\
+w\xaa\x9b~\x22S\xdd\xf4IOu\xd3'<\xd5M\
+G\x9c\xea>~\xebw:Z\xeb\x9fb\x14\xe3\xa0\xb4\
+\xc9\xd4J\xb0\xb5\xe9#\xeb\xd4\x89\x5c\x0f\xe1\xd7\xa7\x98\
+%\xdb\xbf\x98Lc\x0f\x0f\xdf\xec\xbc\xbc\x9f\xdfn\xb5\
+\x1fpI\xca$\xf8\xacyn\xfe\xa7\xd9\xdb\xbb\xbb\xcb\
+\xd9\xf5\x1f\xae\xde\xb6\xcf\x0fqh\x070\xe7_\xcc\xbf\
+\xbb\x9c\xdd?\x1e\xb7\xc3)\x8a\xd2Y\x0a\xb0\xca\x94I\
+x\xb9(`)\xf9\xa8\xf5! v\x88\xfa\xa0\x22\xd0\
+\xfe\xe1|j\xbbv\xb9\x07\x1e\x18\x18\x22\xf7o\xe6\xcc\
+:f\xe1\x22\xe1Fu3\x98x\x81\x8c\xf0\xda\xbd`\
+1\xf5\xb4\xac\x1d\x0ceAb%\xdbkRa\x10G\
+\xe3\x92\x92\x16-\x88O2\xa7X\x04\xc4M\xa2\xfa\xaf\
+B\x1c\x86\x91O\x85\x9f\x22\x970\xc9\xa4G\x0d+\xd1\
+\xdeK\x1a\x982\x86\xb7\x5cDl\xde\xec\xb6\x8eC\x9d\
+\xbc\xf2\x92*Y;\x15\xe7\x22F\x16\x9d.\xc7K\xfb\
+\x1b\xa3\xea\x05\x85\xc5\x1c\x87\xd7L33?\xf9\xc9h\
+\xff\x12'\x98\xc5\xc5\xc3x\xc2X C\xd9\x9f\xef\x8d\
+\x10\x11\xf8 BL\xbc?BYB\x12\xac\x8e\xa9\xa1\
+3J-h\x0a\xd01j\x18\x02e\xc2\x85\x1f`\xa1\
+\xa2\x9a\xbc\xd8\xa9\x02\xc58\x83|2E\xcbB\x8c\x8e\
+\x13\xcbb\x0a\x969\x0a\x1d\x19F\x07e_tH\x8b\
+\x87\xa1U\xfb\xe1,d\x81\xd5~*Mg-<\x17\
+T'\x1e\xf6k\x88%\x17\x7f\x13\xd8\x1f\x05V\xe5\xe1\
+\x99\xe4\xcc\x8f\xc5F\xaa\x85@\xb5\x8cj-\x0b\xc3\xe0\
+@\xb4\x07k\xc1D\x1e\x85\x0e\x8e\xb0\x91\x8f\xcb\xc7$\
+\x1a\x89\xc6D\xa0X\xfb\xa7\x13\xa6\x02\x16\x064\x06!\
+\xc9c\xfa\x18\xa6\x0a\x8d\x14f`\xa2\xda\xafh\x09\x06\
+B\xb2\xda~\x80\x0a#\x92\x0c\xaf:v\x14\x0a[\x80\
+C\x8b\x0d\x94\xa2\xca\xea\x93)\xc9(<|\x0b\x8b\x81\
+\xbd\xbd\x8a/\x1b}\x85\x05I\x0a$j\x85%sA\
+\x13Z\xb7\x07Sq\x0ac\xd9\xab[\x9aLu\xd9\xea\
+\x96\xadj\x99k\xa30\xd2A\x9f#\x8c\xfbb\xa4\x92\
+\x05\x0cY:\x9e7\x8b\xbbXg\xc0\x85&\xc5,\xab\
+\xe5T\x9a\xcd\x18eq4\xd5\xc8\xf9\x94\x1e`B\x06\
+\xc4\xe4vh\xc3`h\xe9\x8d=aQ`\xe5q8\
+\x0d\xfaf\x17\xa2]q:t\xcfr\xa0\x1e\xaf\x17\x05\
+\x941=\xd4O\xdf\x07\x93\xb2\x8c\xf0\xc1?\xf1>\x9c\
+\x94\xc7\xf7\xe1\xbb\xece\xe6\xbe\xbd\xcc\xba\xfd\x06\xa83\
+?;?\xf7m7\xce\x89\xc6\xb8\xbd\xcc8\xfe\x04\x8d\
+>8P\x8es\x16\x00\xa3\x1dm\x7f3\xc6\xf1\xe0\x80\
+c\xc1A\xc7\x83C\xf6\xdf\xe9\xeeB\xf4\xde\xf6\xe0B\
+\xb2}{x)M\xb2\xdd7\x04\xe6Y\x9e\xcdp\xe7\
+\x0d\x81\xca\x12\xc3\xcc\xcf\xce\x9bF\x8a;\x9e4\xe1B\
+\xb6?\x9c$\x8c\xef\x85\x93\x84\xf90G%\x8c\xb7\xcd\
+\x22\xa4\xe9\xe0\xf9l\xad\x8c\xba\x85\x0cl\xd3p\x95E\
+\x92\x07\xae\x8b\xf0\xbe\xbd\x96\xc2\xb9\xc6%\x800=6\
+\xb8\xcb\xf9\xacM\xdb\xee\xe7\x14\xc1\xed=\xf1\xf9E\x93\
+\xd6\xd0\x1ca\x1c\x9c9\xe4] -\xe6\xbbz\x17\x12\
+\xc0m\x0e^9kv[\xed\xd8\x1cH\x80\xc7;\xdb\
+\xe1\x18\xb9\xcf!\x8fx\x97;rD\xf0\x03n1.\
+\xa1.\xcd\xda\xf8\xe6\xd0+\x06\x85\xb1\x1f\xa7\x1c\xc6\xe9\
+\x90\xa3\xcb\xf5\xb1\xeb\xfa\xf8\xb6o\x0c\xdc\x1d'\x1f\x18\
+#f\x84^\x8c\x92\x861\x1a;/\xb1>\xcf\xb1>\
+\x19\xb2>cR\xa7Sv\xd8\xae\x1a\xb1\xcfAq\xb9\
+\xc3>\x7f\xc3\xb88\xa7\xad\x0f\x8a\xcb\x1d6\xcb\xcf\xe4\
+\x0c\xe6\xf2\x0e\xeb\xf7y\x9a\x9e\x93F\xd7\xcf\xedd!\
+\xdd\xe1L\xf0\xa1\xf3\xc5\x87\xcf\x22\x1d>\xe1|\xf88\
+\xd4\x83/*\xce\xec3\x7f\x07\x19m\xfe\xd3\x87\xa5?\
+\x13$\x99\xac\x98;\x14\xa0\xd0\xac\x13\x09P\x10\x03\xba\
+\x93<Q\xc0X\xc1\x1f\xad\xbd\xd2\xec\xf9^\xd5\x9d\x0e\
+\xf1^\x15\x8a\x02\x18\x93lx\xb1\xea.\x1f\xec\xc5*\
+\x19\xc8A\x160\x15h\xffh\x22\x1f\xd9:&\x03;\
+\xf6:&\x9d\xe8\xc7\xba\x8c\xc9 ~\x12\xcb\x98\x0c\xe1\
+\x13^\xc6dH\x9f\xec2&C\xf9\xd0\x1b\xcbZ\x0a\
+\xb3B$\xa2\xd5\xf6\x94\x0aa\x88U\xf34.\xc8\xa1\
+\xa8\xb5kH+b!6\xec\xb0\x90\xa3x\xb8\xc4d\
+\x0aK6\x9e#\xa6\xe7Ilx\x01\x82\xc1\xfe\xd3\xae\
+V\x84\x5c\xad\x86\xb9h\xc51\xc4k\xd0\x07\x85\x0d%\
+H\xadNM\xfb\x12\x8f\xf87\x00\x22\xc7\x04$t\x81\
+\x87\xe6\x13 \x92\x0b\xfbp\xaa\x16h\x0fz\xd4\xf1\x83\
+\x97\xb4\x96f;8t\x02\xa3\x10\xa0a\x04\x80\xf6E\
+\xc0\xb4\x88\x04\x22U\x93p.\x19\xe0X\x11 .\xae\
+aR[\x88gA'\x921z\xc1\xb0^\xa9\xff&\
+\xbd\x86k6}\x5c\xb5r\x8cV\xbf'\xeaiB\x03\
+\xb5z(\xa4\xd53\xab\xbc\x06\x13n5\xc6p\xdar\
+\xf5<rpR.V\xcfCQ\xf4P\xdf\x05\x83\xd5\
+\xb22\xb1\xf5u%\xf2\xf5x\xcd\x91\xb0\x88\x10r\x05\
+ \xa2D\xa0\xf3G\x06\xc3\xa0\x8f33\xdb\xfb\xdd\xb5\
+\x17\xf2$\xae-\x81\xc8\x8au\x06>\xca\xc5CP\xb9\
+\xbep#.L\xfe\xd0z\xee\xde\xdc\xceg\xe7\x7f\x99\
+\xdf\xbf\xbeiK?\xbfh%o\x85\x15\x940\x041\
+n\x91\x8a\x82\x86\x1c\xcde\x116\x0c\xf3Q\xed\x87\x8e\
+\xdaSZq\x05\xeft\x0c\x1e%9\x99+l(\x85\
+\x5c#\xaa\xfbp)\xae\xfd\x90\x8d\xd0\x96\xf2\x88\xde\xc2\
+\xa0\x1e\xd8h\x85E\x14\xea^V\xa7\x02\x04\x81\xb5\xcd\
+\xac\xd2\x9cui\x86\xc6\xe2P4\xd0(t\x82\xc5\xcd\
+\xdd\xbc\x9d\xe0\xa4b\x19F\x92\xed\x0f(\x11\x1e\x19M\
+6k\x01\x0f\xb4\x89\x96\x14LH\x19\xd3\xca\xc8\x07!\
+\x14\xc9\x9f[Y7l\x0f\xb2\x91\xc1\xc7\xf8V\xa6\x85\
+\xd9T:\xad\x8c\x8b\x0b\x19\xc7qZ\x1ao\xe3W\xc6\
+\xb7\xb4\xb0\x12di\xb5\xa5M\xd1\x8aYH\xd43V\
+W\x89\xceV\x88\x86\xdb\x1ai\x98\x81\xb7\x91\xb8\x12\x92\
+\xb8\xb4\x97A.,2\x81\x22\x08\x06\x88\x13\x06*\xca\
+):Q(\xa0\xaa\xa9\xa3\x1a\x1a\x1e\xb5\xa1\x15TM\
+\x8dN`\x07RHW\xa2\xba\x04\x0b\xee\x8c\xe7\xa4\xe8\
+\x10\x5c\xef6%v=PO\x85\x83\xbe\xdb\x04\x0e\xb4\
+X\x842\x07\x97\x03\x9c{\x9bv}a\x97I\x07z\
+\x9b\x8b\xeb\xacG,\x07`b\x1f\xd4X\xe7\xb6\xf3\x02\
+\x08\x0a<\xday\xf7$\xb8\xbf\xc6f.C\x1a\x03\xa0\
+I\xec\xa8\xb1\x99\xdb\xb0\xc6\x88\xb3\xdcYc3\x8f1\
+\x1a\x9bU\x8dW\xd8Z\xecp\xcc\xfa\xc5\x19^\xd0\xee\
+k\x144|\xfer\xf73\xa0\x19\x83+\xf3w\xe1\x80\
+\x1dNi>\xa3\x99\xaeU\xe6\x188e\x9boE\x9c\
+\x9f\x9f\xedl@\xb2U\x939\xbfx\xb9\xbb\x01\x89\x8f\
+\xd1\x98qHc\x07v\x80\x9d5f\x1e\xd6\xf8\xe5\x85\
+\xce\x01v\xd6\x98u\x84\xc6\x22v\x94ua&\x12G\
+r\x8b&\x0ac4\x86a\xb7\x188\xe7\xf9\xce\x1a\x83\
+\x0dk\xcc\xe1\xe7ko\x87\x875\x868\xf6\xe9\xd9f\
+f}\x072\xd8A\xd6\x17p\x9a\x92\xf2\xc4J\x06\xa3\
+(\xb6\x1f5\x99z\xf1@Ik\x7f`Q5\x0cn\
+C*\xa2\x12d\x88\x93\xa9e\xb1\x0cC{\xfe\x9eH\
+\xfe\xcd\xec\xbc{\xbe\xb6\x03\xb0v\xde\x85\x01\x17\x0d\xa8\
+S;\xab$\x17\xef\x92\xdc.(TSb\xc4{\xa6\
+\xfe\xe0\xad\xcf$\x11\xea\xca\x9c:\xa5\x1cQG\x89R\
+7>n3\x9dz\xf0\xc2\x8b\xf5\x16^\xa9\x0eU\xb1\
+@J\xe6Ci\x979\x08\x98)5\x0e\xd7\x82\x91\xc8\
+\xdc]2\x03\xe0\xa1\xdb\xe8\xd5?\x96\x1b\xde\x1e\xedE\
+\xc3!-Z\xab\xe3\x00\x13\xa5\xe7\x1f\x12);\xc8\xdb\
+o(\x82\x94\xc04\x81b\x98\xac\x12\xcf\xfbq\xd9\xb9\
+n\xc8\x22b\xa5n\x1c \xf3C\xe2\xe4\xf0\xb1\xe3\xc4\
+%\x0dA*LQ\x885\xc5?(L\xf43L\x9d\
+\xc0\xad7\xa6\xab\xaf\xe4T\x0b\xb7\xba\xd6\xed\xed\xf5\xd5\
+\xcf\xda\xdd\xe5:\xb6DF\xf1\x0f\xefqM\xb8W#\
+\xa9{^\x8c\x0ap8Rw&,\x91\x1d\x1f\xd4Z\
+#i\x15\x85\xe2\x14\x19z\x10\xfb\x99\xf0\xc1\x9d\xa8\xb9\
+\xf4*\x1f\xd0\x99\xb1)\x90\xe6\xaeu\xf6\x14\x8a\x06\x98\
+x\xb5\xc1,\xc9\xc2\x5c\xd7\x91D\x14c\x96\xf8\xa8\xba\
+Q\x0a\xdc\xe5p6\xeb,\xbf$+\xc9f\xab\xcb/\
+E\xdc\x8d\xaa\xceT\x802T>\x9cFL\x8c\x87\xf1\
+Od\xc4F9\xc1\xba,O\xb3\x10i\x80w\x0fH\
+Mg\xc2Z\xf3\x95\xe6\x11\x05\xb1B\x14\xa1\xf9AQ\
+\xe0\x03\xa1\xc0L\xd4\xa2P\x12\x15R:h jq\
+3\x8f\x8a\x06\x16\x08I\xa8\x11$c\xe1\x0e\x0d-=\
+8#\xe9\x81\xc1`b\xef\x05C\xb8\x9e/hPR\
+\x94\x14\xab\xeb\x02-\xc1\xa0\xb5\x07i\x88\xaa\x0d\x0f\xe3\
+\xf8\xe1\xfc\x10y\xc0.\xed\x15\x8a\x00\x81UOeR\
+\xc0\x0d\xa5\xbe\xd4\xa845\xd4\x87\x92F\x84r\xe0\xe3\
+\xf7(\x13zO\xf1\x87<\xc0j\xda\x82 \x10\xa1\x13\
+(A\x01f\x8b\xf7\x0bf\xe2\x92\xd6^F\x183\xf9\
+\x04\x13\x8b\x88\x11O\x8c\x0a)'\xd8P\xf8\xd1\x8e\xf5\
+\x8c\x0b\x08\xbak}G/%=\x05\xa2\xbe\x93\xe4\xa2\
+\x8a\x84\xf5]\xbfb\xd1\xa4\xcc\xfa\xa19.\xe2\xe2F\
+\x0b\x80\xcf\xae.\xdf\xfcuv\xff\xba\xbd\xf9x\xbdy\
+\x12\xff\x91\x8a\x91\xda\x1d0o\x9a\xcb\xee\xd0\xbf]\xcf\
+{\xf5\xe2\xed\xed\xd5\xaf\x7f\xb5\x8a2#\xf3\xf3\xdf\xb4\
+w;\xb3\x00w\xf7\xb77\xdf\xcc_\x5c\xdf\x5c\xcf\x1f\
+\xae\xa7\x8bO\x12\xbc@+\x92\x0a\x00!\x8f7\xda\xfa\
+lj\xfe\xc5\xed\xcd\xdb\xeb\xf3n\xe6\x7f\xdf\x5c^\xaf\
+\xe6~{\xd9\xac\xeb\xbd\xbal\xfe\xf7\xe2\xe9\xf1\xf3\xd9\
+\xdd\xeb\xd9\xed\xed\xec\xc7\x07i5w9\x07\xf1B\x0a\
+\xeaC\xf6\xda\x17\xa1\x1a\xbd\xffr2\xc5\x90\xe2l\xa2\
+\x13\xf2\x92\xc2\xae'\x9f7\xb9)%]\xdd\x9er\xf1\
+dJ\xa0\x85@\xcd'\x8c%0\xd0\xad\xc9D*\xe9\
+@6\xe1,\x1a\xe4F-\x03\x22(\xe9.1\x11/\
+\x1a\x99\xc9m\xa6\x94\xd0\xd4\x89F!\x22\xc3\x87<\x83\
+$\x9fX\x14\xf7\x14\xc8\x93\xaf\xba\xd9i%\x88@\xb0\
+e[\xb3\x11\xa0\x84\xb3G\x9b\x89\x85U\xbc\xcd\x94\x82\
+\x14\xd4f\xa2\x17\x86&\xd5\xcc\x96/*\x15\xb4\x8c.\
+m\xab\xafDA\x0c\xe4.\x0b\x14)al\x5c\x85u\
+3k\xc1\xbe\xeafW5>_f\x1b\xb2<iL\
+KY\x92*\xd8\x85\x06\xd5\x8a\x02\x99\xac\xc2\x88&\x85\
+\xcc\x89\x9e \xc7&\xd3\xa5H:\xf2c\xe5H\xbe\xb7\
+\x1e\xffu\xb2R\xbf\xc2E\x02\x01e\xc1\xd8\xa3p:\
+\xe4S\xb6\xb6\x99T@\x02}\x22Z\x12\xbdek^\
+\xd0#p\xa2P<\x9c\xd4\x96\xe5\xa2\xc2\xe6\x9c\x13\xd5\
+\xa2\x19\x16\xad\x0aY\x92\xb2!5,\xc1\xccA\xcb\xcc\
+\xf6\xa9E\xf5B\x02\xd0\x02.\x82,\xea\x04\xd8\xc9\xfe\
+\xfc!\x1b\xc5\xed\x89\x05\xb6\x99^\x10T\x1fEy\xb6\
+yT(\x05\xe2\x9db\xa5\x17!qzP R\xdb\
+L,\xe0\x1aO\x9a\xf2\xfbQ\xf9Wg\xba\xae\xf5\x00\
+\x8c\xcb\xc8\xa7\xbbI\xe2\xfa\xe6|\xden\x94\xb8k|\
+\xc6\xdd\xd9\xe2\xef\xee\xe1\xbf\xe5\xcc\xde\xa3'9\xba\x9b\
+\xaf\x0eh\xbc\x9b\x87\x22i\x08j\x13(\x22\x90A\xd9\
+\xfavg\x03Mi/\x97\xce\xdf&\xd3\xcc\x82\x82\xe2\
+\x93XDj\xa0\xb1\x8d\x9bw/\xca\xcc\x8e\xef\xbay\
+\xac\xeb\xd5\x22\x0a\x08\x05\xe4\x87p\xf3\xac\xd5\xcdoY\
+\xbf\xeb\xd6\xe1+\x8e4\xbd0a\xe0\xaa\x1f\x05/j\
+\x88\xd4\xf5\xa3\x88^<\x11\xb8\xebG\x91\xb4\xa8\xaa\xd1\
+;\x0e\x80\xb9\xa8Q\xc8\x8a\xb3`/\x22\x12V\x1d\xe9\
+2\x13S\x8cW\x1ci\xcd\xee:\xd2\x9a\xbd\xea\xdb\x98\
+K\x0a\xbc\xe3\x05)KDp\xae:R\x93\xe2\xaa\xc4\
+\xba\xeaH\x0d\x8a\x03Kj\x97\x85\xb6\xc5\x8dL\xad\xc2\
+\xba\x99]GZ\xb3W\x1d\xa9\xb6\xc5\x0d7\xedzR\
+\xc3\x02\x01\xee\xda\x05\xc7\xb2@\x04\x00\xae\x02\xe9VB\
+I\x03\xbb\x9e4\xbc@\x90\xa4WOZ+r\xc5\x91\
+\xd6\xecU?\x9aP2H4\xba~4\xa4\x18\xb3\xb2\
+V?\xeaY\xdc\x04\xddV\x1d\x96KI%\xd7\x8e\x1b\
+u*\x8a\x8a\x9e\xd5\x8d.2E=YV\xdd(\x12\
+\x15Tg\xef\xba\xd1\x87l\x00\xa4\xae\x1bE\xccb\x09\
+a]?\x8a(%<E\xde\xf1\xa3\x08\x05\x10 V\
+\xfc(p1C\xb4\xeaH+*+~t\xdb\xd8)\
+?\xbd\xd8\xe9\xdf\xe5\xe5\xf3\x83zy\xc4\xe2d\xc1\xfa\
+\x11\xb8\xf9\x8fk%;\x11\xd9\xff\xf7K\xb9\x8d\xf2\x90\
+K\xb9\xc7o\xb4Kz\xdce\xe7\xa4\x13d.\x00@\
+\x13\x82\x12n\xd4j\xbaDW\x0bv\xbei>\x85B\
+(Q_<\xc6\x93\xc2\x8f\xca\xf4|\xee?\xa8\x7f\xfd\
+\x86\xd3\x17\xc8_\xac\xbde\xee\xfbf}H?+\xd6\
+\xdf\x7f\x8e\x9f\xbf\xcb\xaa\xb0*\xf7\xf3\xb3~~\xf0e\
+*\xc4\x1a?\xc3\x94~~\xb1\x81\x1f\xc4\xe7\x00k\xfc\
+\x5c\xbd\x9f_\xc2&~\xfe\xfb5~\x0f.\xb7\x1a\xcd\
+.\xab\xc5\x80zv\x99\x83\xecp\x98\xd2\xf9|>t\
+\xdaI\x97\xb5\xedp\x84\x07\xcdc~\xbe\xb6rb\xc4\
+\xfa8\x83}6\xdd\x1b\x1d\xf6\xf0\x97.k\x19q\xb6\
+\xd4h8R{4N\xdf^c\xe3y\xee\xa0q\xe6\
+\xbfQc\x91\xdc\xc3\x00Dq{8`\xf1\xb7\xfd\xe1\
+b\xdc\x03\xc7\x00\xeb\x0a\xc7\xa8c\x17\xc8Y6\x1f\xbb\
+`\xd2\x9e\xba@\xc5\xda?\xef;{\x01)\x9a[&\
+\xfb\x1e\xbd\x00\xf5\xe9\xbd\xce]\xa8\xdb\x18\xa1 Ag\
+[\xa7qAM`]y\x87\xeb\x085\xf2\xa94\x83\
+\xeb{@\xb9\xfd{\xecP\x093E'\x88\xc5m\x22\
+%\x93\x84l\xcc\xb1\xc9\x1c\xc3{y|\xff\x03N%\
+\x0a!\xa1b}e\xa2E-\xba\xf0X\x96$\x86\x88\
+\x95]\x06\x9cd\x1f\x03<0\x1a\x9e\x9f\xb0\xf1x\x0c\
+\xa2\xc3\x86{\x1b\x8f\x14\x0a\xef\xc2\x93\xd8\x96\xda\xc1\xba\
+K\x0d\xea7\xf5\xdb\xfb\x1eJ\xb2\xc5fi\x82\x09\x8c\
+R\xdd\x06U\x17\x80\x9f\xa6\xea2B\xf5\xc11W\xdd\
+\xa6\x93X\x02\x14:\xc3U\xf5\x02\x1a\x8aR\x07`Y\
+@5 \x9f\xc6\x0d\xca\xc5\x18hx4V\x143%\
+'^X1\x89s>\x8d\xc94\x0a\x18\x93\xb0\xb6\xbf\
+\xb0\x90;!\xcadJP\x88\xc4\xc9\x9aK.\x99f\
+\x9c\xfb\x0f\xda\x88\x9d\x86\x9b\x8e\xc4\x9e rQ\x0f$\
+\xad{\x0b\xa5(#i\x1d\xc4b\x97\xe4\xec]\x92\xb3\
+.\xc9\x00\x90V\x14<\xc3\xf2ax\xab\x08\x89>\x99\
+\x1a\x97\x16<\xc3\xc9\x94\xa9\xa4\x03\xa2\x8eB\xec\xa8\xae\
+8\xad\xb01hg\xe5R\x14\x03\xc3\xce6B\xa6\x02\
+\x8aa\xb5\xd5\x09\x17\xcf\x04\xb2=}\xb1\x17\x1533\
+?\x8c?\xb6m6\xb6\xcb\xdeF\x85j\x1d\x9bB+\
+\x10VM\xca\xb1\xb8+Q\xdd\xad\xda\xa58\xebR\x0c\
+O\x22\x98B\xa04H\x91a*\xd0d\xda\x82\x06\x98\
+!\x13.\x9c@\x086A/\x0c\x09\xd6\xdcV/\x96\
+L\xe3\x1a\xa5\x0d;u\x8b\xdc\xdb\xa9\xb7pdp5\
+\xb1\xb4\xc2\xceH\x5c\x9d:A\x11\xf2\x1a\x0cU\x9aA\
+\x13CwR\x89\x87f\x08\xee\x84\xe1\x13+\xaaJ)\
+6\x99JIAs\xc0Q66\xec\xfd\x15\xf1\xa7c\
+c\xcc\x07\xb61\x1a\xb61\xdb\xdb\xc6(J\x0a%\xd5\
+5Jb\x85HS\xde\x99\x89\xe5\xf0\xea\xc6\x1c\x8b\x91\
+\x09\xc8\x9e6\x86%\xc4\xc8\x95\x0fec0lc\xc0\
+?w\x8e\x151\xe1m:\xc7\x9f=\x7f/~8\xd6\
+\xf3\xff\xf4[%\xc76\xad\xf2g\xcf\xdfgc\xac\xc7\
+\xf0\xfc\x87\x8c\x0a\x0e\x14\xa9\x8c\xb11\x1a\x19]\xfc\xf4\
+\x83|\xda*\xc8\xffy\xf8\xbd\xb1-\x92\x8c\x18~\x0f\
+\xb4\xc5\xe1\xa9\x97\xf1\xb3<c\xec\x07GL\xdf|\xda\
+\xaac\x1cU\xf5\xf1\xd3\xb0\xe3'\x85\xc7\xa0\xa3\xa3f\
+s\x8f\x8f\xce\xf87\x0a\xa3\xe0\x19\xf1\xa6\xe4\xa7o<\
+\x90\xc7@\xe7\xdf\xe9.8$\x8e9\xc7\xefZ\x9c\xc2\
+\xb9\xb3\xad\x0e\xa28\x88p\xd5\xc9\xaaBT\x1c\x00M\
+\xc7(d\xc3\x0a%\xef\xab\x10e\xd1`\xd4\xce\x89\xc7\
+Y \x08\xbdV\x92[1[=!\x0a\xad\xa0\x90\xd1\
+\x18\xbd\xb6\xe8\xcd\xc3\xf6\xd5+l\x11\xe8zV\xe3\x83\
+\x22\x18\xa8T]NafJ\xc4\x07\xbd*\xcd(\xbd\
+h\x84G\xfeX\x1b\x15|\x98\xb7G\xc1E\x11C\xad\
+\xbbu\x89\x04\x11\xb3\x86\xafV\xc8\x05\xb53\x88\x84\xa2\
+\x16.8|\xf2\x06QF\xda\xc3\xb8\x8a\x1c\xc0\x01'\
+S\xa2\x92\x14\x99\xb6\xb8DO\x8c\x18\xb1\xb8/8~\
+~O\xb4#bv\xc4\xa90)\x9a\xec\x150\x91\x82\
+\x99a^\xad\x8c:$gk$g\x1d\x92\xe1/\xec\
+\x98\x01\xa9L\xa0hcNE\x83\x04\xd4'R\xc4)\
+\xd4c\x82$\x85\xcd\xbd\xc1\x0e#\x0b\xa59\x8f\xc2N\
+\x86\xb1c\xde\x13;/i\xd1\xc1\x8e\xa3\x88\xb0q\x17\
+\xbajh\xf5v\x076\xd2\xe1v)\xc8\xd1\x02\x02\x05\
+\x0d\xd84\x1b\xf8\x048\x09y\xc2\x85=\x0c\xad\x9d\x12\
+\x83\x82\xc9\x82\xb1\xf8\x96\x13\xa2j\x8e3;\x1a\xf6k\
+d\x1f\xd7\xccE\xf7 \x17\x19u\xa6v0l=+\
+1\xder\x22\x8b\xa2{R\xd7tB!\xb2.v_\
+\xa59\xeb\xd2\x0c\xda\x10e\xaa\xb0\xb66\xe4\x0a\x94\x18\
+\x13,\xa0\xee\xc4\xd6\x5c\x05\x13p\xdb\xe4p\xe1\xd3 \
+'S\x8a\x22\xe4\x068\xc6\x84h\x8bx\x93\xe3g\xcf\
+\xf5^\xecl\x1b\xcf\xf5\xf3\x0b\x90^\xfcd\x9b\x17 \
+?\xe3\xd7\x8b\x1f}\xc4K\x07F\xf8u\x82m&\xe4\
+\x7f\xb6\x8b>\xbb\xc0\x18\xf1\xd2\xe7\x13\xc4O\x0f\x8d\x9f\
+}\xc4\xcb%\x8e\x1fV\xa1\x1c\xe6\x9dk\xfd\x5c^\xf7\
+\x8bx\x0fN\xeb\xf5\xfc\xf2\xd5\xeb\x86\x1e\x8bf\x90\xe9\
+\x12\xce\x87=Y\x99\xf8\xb4\x85n\xb1\xfb\xb3\xa5K\xe0\
+d\xc0e\xd9\x16t\xa2\x98\xa6\xe0\x1b\x8b\xb2\xf6\xfd\xbd\
+\xfe/\xe8\x91\xbc\xf7\xeb{XX\xdc\xd4\x16\x05\xdf\xa8\
+t\xfd\xfc^\x8f\xf6\x16\xf8\x8e\xf6\xa8\x9eB]\xed\xc1\
+#\x1d\xc5pU}\x12\xf1\xa0\xae\xfaH\xc4\x89\x07S\
+\xdf\x82{>>\xc8\x84\x892^{e>PY\x95\
+\xb5\xa7\xaa\xc0\x00Xu|a9\xed@\x85\xe5\x8c\x1e\
+`%w+\xe8\xaa\xa3\x1a\xf2\x9e\x18l\xb8\x9c,\x9a\
+b\x11\xa34\x9fO\x97>\xd4h1\x0f\xe2\x854\xb6\
+\x0d\x82\xeb\xd1\x07D\xa9_\xe3\xd7O}\xc0\xd4\xc0\xa3\
+\xb0\xd6a5[\x16%\xa1\xc7\x8d\x97\xa4\x5c\x00\xa3n\
+\x0c\xae\xcf<\xf5\x0bdZ8{>O\x1e#w'\
+\xf5lNB\xd8\x7f\xa7V\xe5;{\xf1\xed\xe5\xf9_\
+\x9bM\xe7\xf7\x7fkn\xeeX\xd0a\x0eEG\xf0\x18\
+T\xeb\xcb\xc5\xdfV{,\x87{\x9e\x90\xc9\xd4\x5c\xea\
+\xcb!s\xa9\xd3\x07\x1c\xc5\x9d\xb9s\xbcY\xd6I\xf9\
+zw\xef7B\x89\xf2^\xe3\xa1D\xeb\x07\x80\xacM\
+C\xa7D\xf7\x18\x10%F?k\xc66\x0d\xb1.\x88\
+$\xbd\xfci\x83\x05\xc9y\x9b\x06\xf9\xb3\x8b\x02\x00\xf6\
+\xcb\xa0~\x19\x0am\x1a\x94!\xc4\x90\x99\xd9/C6\
+\xc8\xf06\x0d\xcb`\x8b\xcd26T\xb3I\x9b\x86e\
+H\x0e\xe8\xb1\xa1\xbe]\xdb4,\xc3@{\xf9\xf3\x86\
+\xfa\x8eY\x9b\x86\xf9;\xe2F\x1dxC}\xcf\xb8M\
+\xc32\x02e\xa3Mq\x7f}\xdf]^}7\xbf\x1d\
+\x16\x91\x88\x9bEl\xa8\xee\xf3\x8b6m!Cx3\
+T\xb1\x01\xaa\x8b&\x0d\xcbPt\x09\x8f\xe8\x95!\x1b\
+\xaa<\xa5M\xc32\x98t\xa3\x1eB\x1b\xcc\xf6\xacM\
+\xc32T137\xe8!\x1b\x9a\x9f\xb6iXF\x88\
+\x0a\x98\xf7\xcb\xd8P\xe7Jm\x1a\x94a\x10\x06\x00\xd4\
+/cC\x9d\x0b\xb7iX\x86\xa0m\xb4]\xc5~\x19\
+\x9cm\x1a\x96\x91\x14\x1aD\xfd2x\x83\x0c\x1eV\xc2\
+9}c\x85\xab\x8e\xee\xfb\x22#2\xd3\xfbe\xf8\x86\
+\x06h\xb3\x98\x0d5\x8e\x9eo\xef\x8c;\x84d8\xfa\
+\xb9]~\x92R\xc5\xac\xb3v\x91J\xa6\xad\xac]\x8c\
+\xe2NJ}\xcb\x06\xc3\xed\xfd1Mxl\xf0~\xd9\
+\xa6}c\x9a\x88M\x87ax\x9b\x06\xeb\x15$\xa5\x9f\
+?\xf5\xf3\x7f\x99m\x1a\xe4\x8f \xd9\xcf_6\xd8\xcc\
+\xbcM\xc3\xfc\x85\x09\x93\xb8_\x86m\x90\x91M\x1a\xd6\
+\x81P\xad\x9