diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bae96d5f25..2632c68833 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -49,8 +49,10 @@ variables:
CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v3.1"
- # Versioned esp-idf-doc env image to use for all document building jobs
- ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v5"
+# Versioned esp-idf-doc env image to use for all document building jobs
+ ESP_IDF_DOC_ENV_IMAGE: "$CI_DOCKER_REGISTRY/esp-idf-doc-env:v7"
+
+
# before each job, we need to check if this job is filtered by bot stage/job filter
.apply_bot_filter: &apply_bot_filter
@@ -284,25 +286,18 @@ build_examples_cmake:
- mkdir -p ${LOG_PATH}
- ${IDF_PATH}/tools/ci/build_examples_cmake.sh
-build_docs:
+
+.build_docs_template: &build_docs_template
stage: build
- image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
+ image: $ESP_IDF_DOC_ENV_IMAGE
tags:
- build_docs
artifacts:
when: always
paths:
- # English version of documentation
- - docs/en/doxygen-warning-log.txt
- - docs/en/sphinx-warning-log.txt
- - docs/en/sphinx-warning-log-sanitized.txt
- - docs/en/_build/html
- - docs/sphinx-err-*
- # Chinese version of documentation
- - docs/zh_CN/doxygen-warning-log.txt
- - docs/zh_CN/sphinx-warning-log.txt
- - docs/zh_CN/sphinx-warning-log-sanitized.txt
- - docs/zh_CN/_build/html
+ - docs/*/*.txt
+ - docs/_build/*/html/*
+ - docs/_build/*/latex/*
expire_in: 4 days
only:
variables:
@@ -310,17 +305,32 @@ build_docs:
- $BOT_LABEL_BUILD
- $BOT_LABEL_BUILD_DOCS
- $BOT_LABEL_REGULAR_TEST
+ dependencies: []
script:
+ # Active python 3.6.10 env as this is where Sphinx is installed
+ - source /opt/pyenv/activate && pyenv global 3.6.10
+ # Setup a build dir with both languages to simplify deployment
- cd docs
+ - mkdir -p _build/$DOCLANG
- ./check_lang_folder_sync.sh
- - cd en
+ - cd $DOCLANG
- make gh-linkcheck
- make html
- ../check_doc_warnings.sh
- - cd ../zh_CN
- - make gh-linkcheck
- - make html
+ - make latexpdf LATEXMKOPTS="--f --interaction=nonstopmode --quiet --outdir=build"
- ../check_doc_warnings.sh
+ - mv -f _build/* ../_build/$DOCLANG
+
+build_docs_en:
+ extends: .build_docs_template
+ variables:
+ DOCLANG: "en"
+
+build_docs_zh_CN:
+ extends: .build_docs_template
+ variables:
+ DOCLANG: "zh_CN"
+
.check_job_template: &check_job_template
stage: check
@@ -614,45 +624,67 @@ push_to_github:
- git remote add github git@github.com:espressif/esp-idf.git
- tools/ci/push_to_github.sh
-deploy_docs:
+.deploy_docs_template:
+ extends: .before_script_lesser
stage: deploy
- image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
+ image: $ESP_IDF_DOC_ENV_IMAGE
tags:
- deploy
- shiny
+ dependencies:
+ - build_docs_en
+ - build_docs_zh_CN
+ variables:
+ DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
+ PYTHONUNBUFFERED: 1
+ script:
+ - mkdir -p ~/.ssh
+ - chmod 700 ~/.ssh
+ - echo -n $DOCS_DEPLOY_PRIVATEKEY > ~/.ssh/id_rsa_base64
+ - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
+ - chmod 600 ~/.ssh/id_rsa
+ - echo -e "Host $DOCS_DEPLOY_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_DEPLOY_SERVER_USER\n" >> ~/.ssh/config
+ - export GIT_VER=$(git describe --always)
+
+ - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.6.10 ${IDF_PATH}/tools/ci/deploy_docs.py
+
+
+# deploys docs to CI_DOCKER_REGISTRY webserver, for internal review
+deploy_docs_preview:
+ extends: .deploy_docs_template
only:
refs:
- - master
- - /^release\/v/
- - /^v\d+\.\d+(\.\d+)?($|-)/
- triggers
variables:
- $BOT_TRIGGER_WITH_LABEL == null
- $BOT_LABEL_BUILD_DOCS
- dependencies:
- - build_docs
- <<: *before_script_lesser
- script:
- - mkdir -p ~/.ssh
- - chmod 700 ~/.ssh
- - echo -n $DOCS_DEPLOY_KEY > ~/.ssh/id_rsa_base64
- - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
- - chmod 600 ~/.ssh/id_rsa
- - echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
- - export GIT_VER=$(git describe --always)
- - cd docs/en/_build/
- - mv html $GIT_VER
- - tar czvf $GIT_VER.tar.gz $GIT_VER
- - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/en
- - ssh $DOCS_SERVER -x "cd $DOCS_PATH/en && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
- - cd ../../zh_CN/_build/
- - mv html $GIT_VER
- - tar czvf $GIT_VER.tar.gz $GIT_VER
- - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH/zh_CN
- - ssh $DOCS_SERVER -x "cd $DOCS_PATH/zh_CN && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
- # add link to preview doc
- - echo "[document preview][en] $CI_DOCKER_REGISTRY/docs/esp-idf/en/${GIT_VER}/index.html"
- - echo "[document preview][zh_CN] $CI_DOCKER_REGISTRY/docs/esp-idf/zh_CN/${GIT_VER}/index.html"
+ variables:
+ TYPE: "preview"
+ # older branches use DOCS_DEPLOY_KEY, DOCS_SERVER, DOCS_SERVER_USER, DOCS_PATH for preview server so we keep these names for 'preview'
+ DOCS_DEPLOY_PRIVATEKEY: "$DOCS_DEPLOY_KEY"
+ DOCS_DEPLOY_SERVER: "$DOCS_SERVER"
+ DOCS_DEPLOY_SERVER_USER: "$DOCS_SERVER_USER"
+ DOCS_DEPLOY_PATH: "$DOCS_PATH"
+ DOCS_DEPLOY_URL_BASE: "https://$CI_DOCKER_REGISTRY/docs/esp-idf"
+
+# deploy docs to production webserver
+deploy_docs_production:
+ extends: .deploy_docs_template
+ only:
+ refs:
+ # The DOCS_PROD_* variables used by this job are "Protected" so these branches must all be marked "Protected" in Gitlab settings
+ - master
+ - /^release\/v/
+ - /^v\d+\.\d+(\.\d+)?($|-)/
+ variables:
+ - $BOT_TRIGGER_WITH_LABEL == null
+ variables:
+ TYPE: "preview"
+ DOCS_DEPLOY_PRIVATEKEY: "$DOCS_PROD_DEPLOY_KEY"
+ DOCS_DEPLOY_SERVER: "$DOCS_PROD_SERVER"
+ DOCS_DEPLOY_SERVER_USER: "$DOCS_PROD_SERVER_USER"
+ DOCS_DEPLOY_PATH: "$DOCS_PROD_PATH"
+ DOCS_DEPLOY_URL_BASE: "https://docs.espressif.com/projects/esp-idf"
check_doc_links:
stage: host_test
diff --git a/README.md b/README.md
index bbb8d3a54b..7ce0f5d73d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,5 @@
# Espressif IoT Development Framework
-[![Documentation Status](https://readthedocs.com/projects/espressif-esp-idf/badge/?version=latest)](https://docs.espressif.com/projects/esp-idf/en/latest/?badge=latest)
-
ESP-IDF is the official development framework for the [ESP32](https://espressif.com/en/products/hardware/esp32/overview) chip.
# Developing With ESP-IDF
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 7493f2956f..9fb2ae9613 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -167,6 +167,7 @@ MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = \
__attribute__(x)= \
+ _Static_assert()= \
IRAM_ATTR= \
configSUPPORT_DYNAMIC_ALLOCATION=1 \
configSUPPORT_STATIC_ALLOCATION=1 \
diff --git a/docs/_static/espressif2.pdf b/docs/_static/espressif2.pdf
new file mode 100644
index 0000000000..05d20ec86f
--- /dev/null
+++ b/docs/_static/espressif2.pdf
@@ -0,0 +1,785 @@
+%PDF-1.5
%
+1 0 obj
<>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<>stream
+
+
+
+
+ Adobe Illustrator CC 2015 (Macintosh)
+ 2018-07-17T18:09:55+08:00
+ 2018-07-17T18:09:55+08:00
+ 2018-07-17T18:09:55+08:00
+
+
+
+ 256
+ 256
+ JPEG
+ /9j/4AAQSkZJRgABAgEAkACQAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAkAAAAAEA
AQCQAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8Q/Pz8+Na8h6zp+i+X4bOe8lgNzftdq8nBWbjCqiOSOhP
BieVdqYCWUY28r/6G5/M/wD5ZNJ/6R5/+q+DiZcARFl/zl/+Yccym70vSriDfmiR3ETnbaj+s4G/
+SceJeBk+lf85lW7ShdW8sPHFTeW0uhI1a/77kjjHT/Lx4kcDP8Ay5/zkz+VGstHHNfy6RcSEgRa
hEY1BHjLGZYVG37TjDbHhL0vTNW0vVbRLzTLyG+tHFUnt5FljPyZCRhQisVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVSfzR5w8s+VdOOo+YNQi0+1rRWkJLO1CeMca1d2oOign
FWI6b/zkP+T9/snmGOB6043MM8Peg+J4wm/XrgtNFmek+Z/LWsAHSNWs9RqK/wCi3EU2w6/YZsKE
zxV2KvMPzL/5x+8neetQl1e4mudP1uVFRryF/Ujb0wFXnDJVaBR+wV8cBCRKnz151/5xl/Mby6sl
xYQpr9gm/qWIPrgVI+K3b46/6nLBTMSeSyxSwyNFKjRyoeLo4KsCOxB6ZFktxV2KphonmHXdCvFv
dG1C40+6Ug+rbSNGTQ1o3EjkPY7YVp7d5F/5y18y6eY7XzdZrrFoKA3tuFgu1G9SyikUnbb4PmcP
EwMX0f5L/MPyh5zsjdeXtRjuuABntj8FxFUkD1Imo61INDSh7HJMSGR4odirsVdirsVdirsVdirs
VdirsVdirsVdiqC1rWdM0XSrrVdUuFtdPs0MtxO/RVHy3JJ2AG5O2Kvn3y7/AM5ZW9z5+uLfVrYW
vk+6ZYbC44/v7fiaCaahPJZK/EB9nalaGotlwvoyGaGeGOeCRZYZVDxSoQysrCqsrDYgjocLFfir
w/8ANz/nJfRvLLTaP5WEWra4pKTXJPK0tmHWpX+9cHbiDQdz2wEshG3yl5i8z+YPMmpPqWu38uoX
snWWZq0H8qKKKi/5KgDIswEswJXRySRuHjYo6mqspIIPsRirM/Ln50fmf5e4Lp/mG6aBBRba6YXU
QHgEnEnH/Y0w2jhD1ryp/wA5hahFwh81aIlwgADXmnMY326kwyllYn2dRh4mJg9r8m/nN+XPm4pF
pWrxpev00+6/0e4rXoqvQOf9QtkrYkM2xQwvz/8AlB5E88pz1qx4agF4x6pakQ3SgEbF6MsgoKAS
KwG9KYKSDT5g/Mn/AJxs86+Ullv9Mrr+ixjk9xbIVuIlABJltwXNBv8AEhYUFW44CGYk8iyLJ2Ku
xVF6Tq+qaPqEOo6XdS2V9btyhuIWKOp+Y7HuO+FX05+Un/OUlrfmHRvPbJaXdFSHXFASCVun+kKA
BE3+WPg8QuSBazF9EI6uodCGVgCrA1BB6EHCxbxV2KuxV2KuxV2KuxV2KuxV2KuxVpmVVLMQqqKs
x2AA7nFXxj/zkF+c0nnTVzoujzH/AAvp0n7tl2F1MuxmbxQb+mPp+USWyIY9+Tv5Sap+YevGEM1r
olnRtTvwK0B6RR12Mj9vAbnsCAFJp9yaPo+m6NpdrpWmQLbWFnGIreBOiovz3J8SeuTa3hf/ADlZ
+YXmTQbPTPL2kT/VLfWIp3v7iOomZEKqIlb9lW5HlTc9NhWoJZRD5PyDY7FXYq7FXYq7FXAkGo64
q9K8if8AOQP5i+UjFAt7+ldLjoPqF+WlAUVFI5a+olK7UNPbDbExfS35d/8AOQ3kPziY7SSb9C6y
9ALC8ZQrse0M+yP8jxb/ACckCwIp6hhQ8o/NP/nHjyl50E+o2Cro3mN+Tm8hX9zPITX/AEmIbEk1
q60bep5dMBCRKnyP528heaPJertpmv2bW8pqbedfignQH7cMg2Ybj3HcA7ZEhsBtj2BLsVdir2j8
kf8AnIO/8nyQ6H5ieS88sMQkUm7y2dSByTqWiHdO37PgZAsTF9hWN9Z39nBe2U6XNpcostvcRMGR
0YVVlYbEEZJrVsVdirsVdirsVdirsVdirsVdirwL/nKP81n0bS18maRNw1LU4+eqTIfiitTsIxTo
03f/ACf9bASyiHzR5J8n6t5w8y2WgaWtbm7ejSt9iKMbySvT9lF3/Ab5EMyaffHknydo3k/y3aaD
pMfG2tl+OQgc5ZT9uWQjqzH+nQZNqTzFXzF/zmbbxrc+UrgV9SRL+NvCkZtyP+ThyMmcHzZkWbsV
dirsVdirsVdirsVdir138sP+cj/N/lForDVmfXNBWi/V5n/0iFdh+5mapooGyNt4cckCxMX1l5K8
++VvOmlDUtAvVuYxQTwH4ZoWIrwljO6n8D2JyTWQjPM/lXy/5o0iXSNeskvrCUhvTeoKuKgPG60Z
HFTRlNcVfHP5xfkJr3kOaXU7HnqXlVnAjvQKy24c0VLoKABueIkA4safZJC5AhsEreVYGTsVdir2
j/nHz87ZPJ9+nl7XJi3li9k/dyuSfqczn7YqdomP2x2+141kCxkH2Ojq6h0IZWAKsDUEHoQck1t4
q7FXYq7FXYq7FXYq7FUn84eaNP8AK3lnUfMGoH/RtPhMpQGhd+kcanxdyFHzxV+fPmTzBqXmLXb7
W9Tk9W+v5WmmbsK9FXwVVoqjsBkG0B9e/wDONv5Xr5T8prreoQ8de1xFlk5D4obU/FFFuKgt9t/e
g/ZyQDCRt7DhYuxV5x+cP5M235lfoj19VfTP0T9Y48IRN6n1n0utXSnH0fxwEJBp5nP/AM4ZWxA9
DzY6HevqWIcHw6XCUwcLLjSK8/5w683oD9S13T5z2Eyzwj/hVmx4V42Iax/zjV+b2mq0i6Sl/EnV
rOeKQ/QjFJD9C40niDz/AFny35h0Sb0dZ0y606WtAl1DJCT8uYWv0YE2l2BLsVdirsVdirsVTXyz
5p1/yxq0WraHeyWV7CdnQ/Cy1qUkU/C6HurCmFBD7D/Jz8/dE89RppepCPTPM6rva8qQ3PEbtblj
WvcxncDxFTkgWsinqlxb29zby21zEk1vMjRzQyKHR0cUZWU1BBBoQcKHyT+ev/OPNx5ba48yeVIX
n8vUaW9sgeUlmK7sv7Tw7+5Uddt8iQzjJ4TkWbsVdir6n/5xb/Ns31qvkTWZh9btELaHM7fFLCgq
1vv+1EBVP8io/ZyYLXIPonCxdirsVdirsVdirsVdir5g/wCcu/PbSXWneSrST93CBf6oAertVYIz
/qrycj/KXwyJZxDzj8gPy+HnLz/bLdRepo+lUvdRqKqwQ/uoj/xkfqP5QcACZF9zZNrdirsVQN9r
2h2BIvtRtbQjqJ5o4zv0+0RiqBh89+SJpDFD5h0ySRTxZEvLdmB8CA/XFU5gngniWWCRZYmrxkQh
lNDQ0I264qvxVSurS1u7d7e6hS4t5BSSGVQ6MAa7qwIOKvNPNn/OOH5W+YfUlj046PePU/WNOb0V
5HpWEhoaV8FHzwUkSLwzzv8A84qeeNFEt1oEsfmCxSrCKMejdhev90xKvT/Ick/y4KZiTxi8sryy
uZLW9gktrmI8ZYJkaORT4MrAEZFko4q7FXYq7FV8M00EyTQSNFNGweORCVZWBqCrDcEYq+sPyH/5
yGTXzb+V/Nsyx62fgsNTaipdeEcnQLN4Ho/+t9qYLXKL31lVlKsAVIoQdwQcLF8jf85D/kUfLc83
mzy1AB5fncG+sYlP+hyP+0oHSFm/4EmnSlIkM4yeEZFm7FUZo+r6jo+qWuqabM1vfWUqzW8y9VdD
UfMeI7jCr9Afy886WXnPyhp3mG1AT61HS5gBJ9K4T4ZY6kAni4NDTcUOTaiGR4odirsVdirsVdiq
ld3dvZ2k13cuIra3jaWaQ1oqICzMaeAGKvzt85+ZLnzN5q1TX7n+81G4eYL/ACoTSNN67IgCj5ZA
toD67/5xk8lDy9+XEOozJx1DzAwvZiRQiAVW3X5cKuP9bJBhI7vXMLF47+an/OSPlnyhNNpWjout
6/ESkqI1La3cbESyCvJlPVE+RKnASyEbfNPm386vzK80yudQ1qaC1atLGyY20AB/ZKxkFx/rljkb
ZiIYOSSancnqcCXYqr2l/fWUnqWdzLbSfzwu0Z291I8cKsx0P87fzV0Z0Np5kvJUTYRXbi7Tj4Uu
BJt8sbRwh6Z5Z/5zB8x23CLzHo1vqEY2a4tGa2l+ZVvVRj8uOHiYmD2byd/zkB+WXmgxww6mNNvn
oBZ6iBbsSR0VyTExrtQPX2w2xIL0YEEVG4PQ4UMY87/lr5N862f1fX9PSeRRSG9T93cxdfsSr8VN
68TVfEYpBfLH5o/841+avKay6lopbXNCSrM8a/6VAoFayxL9pR/On0hciQzEnjuRZOxV2KuxVtWZ
WDKSGBqCNiCMVfWX/OPH58HX0h8peaLiuuRrx0y/f/j6RRX05D/v5QNj+2P8r7UwWuUXvNzbW91b
y21zEk9vOjRzQyKHR0ccWVlaoZWBoQcLF8Ufn3+Ts3kPXvr2mRO3lXUnJspN3FvKasbV2NTsATGW
3Ze5KscgQ2RNvKsDJ2Kvfv8AnErz0dP8y3nlG6kpaawpuLIE7LdwLVlAp/uyIb7/ALA8clFhIPrL
JMHYq7FXYq7FXYq8w/5yQ8yNof5T6oI2KT6q0emxEGm09TKNvGFHGApjzfGnlLQJvMPmjStDh2fU
bqK3LD9lXcBm/wBitTkQ2Ev0VtbW3tLWG1t0EdvbosUMY6KiAKqivgBk2p8/f85IfnjcaQZfJflm
4MepOlNY1CM/FAjiogiYHaRlNWb9kHb4vsgllEPlUkk1O5PU5BsdirsVdirsVdirsVdirPfIP52+
f/JTpFp98bvS1I5aXeVlgp4R1IeL/YEe4OEFBi+oPyz/AOchvJfnRorC4b9C69JRVsLlgY5XPaCa
iq5/yWCt4A5IFrMaep4UPFfzg/5xv0TzUk+seWlj0rzFu7xAcba6buHUbRuf51G/7Q7gEMhKnyPr
eh6toeqXGlatayWd/atwmt5RxYHsfcEbgjYjcZFstA4FdirsVXwTTQTRzwu0c0TB4pEJDKymqsCO
hBxV9q/kF+ccfnrRDpuqOq+Z9MjX60Nl+sxCii4UeNdpANgfYgZMFqIp6H5q8saR5o8v3uhavEZb
C+ThIFNHUg8kdCQaOjAMpp1wofAvn3yTq/kvzReaBqa1ktzyguACEngbeOZPZh18DUdRkCG0G2PY
Eph5e1u80LXdP1myYrdafcR3MVCRUxsG4mnZqUPthUv0W0nU7TVdLs9Ts3D2l9DHcQOO8cqh1P3H
JtKKxV2KuxV2KuxV8y/85ka3WTy3oaHoJ72YfMrFF+p8jJnBhv8AzipoA1L80Vv3UGLR7Oa5BO49
SSkCD50lYj5YhMn1R+ZHm+Pyh5I1fzCy85LKH/R0IqGnlYRQg/5PqOvL2yTAB+fN9e3d9eT3t5K0
93cyNNcTOas8jkszE+JJyttUcVdirsVdirsVdirsVdirsVcCQajrir3L8of+cltZ8uGDRvNbSapo
QokV4avdWyjYbn+9jH8p+Idj2yQLAxfWWj6zpetaZb6ppV1HeafdIHguIjyVgf1EHYg7g7HfJMGH
fmx+UOgfmFpPp3AFrrVsjfo7U1HxITvwkA+3GT1HbqMBCQafEXmryrrnlbXLnRdatjbX1saEHdXU
/Zkjb9pG7HItgKU4EuxV2Kpt5V8z6t5X8wWWu6TL6V7ZSB068XXo8bgdUdaqw8MKCH315C866V50
8rWWv6aaR3K0ngJBaGZdpInp3U/eKHvk2ohhH/OQ/wCVg86eUWvtOg5+YtGVprIIpLzxdZbfbckg
ckFPtCg+0cBCYmnxNkG12Kvtv/nGbzG2s/lRYQySGS40iWXT5SRQhUIkiHQbLFKi19vHJhqlzeq4
UOxV2KuxV2KvjH/nKzUZLr815LdmqthY20CL4BuUx/GXIybI8md/84a6WgtfM2qstXd7a1jbfYKJ
JHHhvyXGKJsg/wCcvNUltvy906wjcqL/AFFPWUU+KOGKR+J/2fA/RhKI83yFkGx2KuxVOvK3kvzV
5rvHs/L2mzajPEoaYRABUB6F3Yqi1ptU74aQSyuf/nHr844Fq/luUilf3c9rIfHokrY0jiDFdX8j
+c9GSSTVtCv7GKIkPNPbTRxihpX1GXgRXuDjSbSTAl2KuxV2KuxV2Ks+/Kf84PMH5e6rztybzRLh
q3+lM1FftzjJB4SDx79DhBQRb7a8p+bNC816Fb63olwLixuB8njcfajkX9l17j+FDk2pjX5vflPp
H5haAbeQLba1agtpeo8alG6+m9NzG/cduowEJBp8Na5omqaFq11pGq27WuoWchiuIX6hh3B6FT1B
GxG4yLaEDgV2KuxV67/zjh+Z58o+bl0q/l46DrjpDOWPww3H2YZtyAoqeLnw3/ZyQLGQfaeSa3xZ
/wA5KflsvlPzqdUsIhHouvl7m3VaBYrhSDcRAA7Crh12Ao3EfZyJDZEvIsiyfTn/ADhrq0rW/mbS
GI9KN7a7iHflIJI5K/RGmSiwm+lMkwdirsVdirsVfCP/ADkDdNc/nF5lkahKzRRfD0pFbxxj6aLv
kC2R5Pfv+cRLRIvy2v7ig9S41WYlh14pBCoB+RqfpyQYy5sV/wCczZW9XylFU8Qt+5HapNuP4YJJ
g+acizdirsVfZ3/OKqaSPyqiaz4fXGvLj9Jlac/VDfAH/wCePCmTDXLm9iwsXEAih6YqxLzR+U/5
d+Zw51jQrWWd6Vu4l9C426fvoeDn5E40kF4f53/5xCnjWW68m6p6wAqumahQOTUkhLhAF9gGQe7Z
HhZCb5/8xeWPMHlvUX03XbCbT71N/SmWnJa05I26uv8AlKSMDIFLMCXYq7FXYqz78nvzY1T8vfMI
uE5T6JeFU1WwH7aCoEkdekiV28ehwgoIt9zaNrGm6zpdrqumXC3VheRiW3nQ7MrfiCOhB3B2OTan
kP8Azkh+UEfmnQ38y6RAP8RaVGTKiD4rq1TdkPi8YqyeO6+FAQyiafHOQbHYq7FXYq+4P+cefzEP
nHyHFHeS+prOjFbO/LGrOoX9zMf9dBQ+LKcmC1EUnv5v+QI/PXkW+0VeI1BKXWlyNWi3UIPCu4FH
VmjJNaBq02xKg0+BJYpIZXilUpLGxR0OxDKaEH5HINr3P/nEC9mj/MPVLQN+4uNKkd0oN3iuIeBr
12Dt9+Sixm+u8k1uxV2KuxV2Kvgb87v/ACbPmj/mOf8AUMgWyPJ9Jf8AOJnH/lVklAQf0lccqmtT
6cXTbwyQYy5sa/5zJ0ieTSfLWsKP3FrPc2kpp+1cIkke/wD0btgkmD5byLN2KuxVkXk38wvOPk26
kuPLmpSWRnoLiKiyQycenOKQMhI7GlR2OG0EW9Fg/wCcsvzUjcs6abMK14PbuB8vglQ/jh4kcAZf
oP8AzmRLyij1/wAuKVp++ubCYg8qdVhlB2J7GXHiRwPWvJv57/ln5rMcNnqq2V/JxAsL8C3l5vWi
KWPpyNt0R2w2xIegYUJP5p8oeW/NWmNpuv2EV/atUoJB8cbEEc4nFGRqH7SkHFXyV+cP/OO2t+TB
NrOiM+qeWV+KRiK3NqO/rKoAZB/vxf8AZAdTEhsEnjmRZOxV2KuxV7l/zjT+bx8uayvlTWZ6aFqk
gFnK5ottdMaDc9El6N4Gh8ckCwkH19kmD4x/5yU/K9fKfmoa1psXDQ9cZpERQAsN0N5YgB0Vq81+
kfs5EhsiXjuRZOxV2KvSv+cffPR8pfmNZGeThpmrUsL+pooErD0pD/qSU38K4QxkH3Nk2t8V/wDO
TfkkeXfzGm1C3j4WGvqb2KnQT143C9OvP4/9lkS2RKY/84jf+TPu/wDtk3H/ACfgxis+T7DyTW7F
XYq7FXYq+FP+chrR7X84vMaPvzlglU0oCJbaJx93KmQLZHk95/5xCvVl/LnUbUn95barKaUP2JII
Spr/AKwbJBjLm9G/NTyWvnPyJquggD61NF6lg5IAW5iPOLc9AzDi3sThKAX5/wBzbXFrcy21zG0N
xA7RzROKMjoeLKwPQgimVtqnirsVdirsVdirsVekflx+fXnnyS0dsk51XREoDpd27MqIABSCTdoq
AbAVX/JwgsTF9bflx+a3lPz9pxuNInMd7EAbzTJqLcQnxp0dPB12+R2ydsCKZkyqylWAKkUIO4IO
KHyt/wA5A/8AOPyaSlx5u8o24XS1Bk1XSoxQW4G7TQqP91fzL+x1Hw/ZiQzjJ88ZFm7FXYq4Eg1H
XFX27/zjz+ZjedfJawX8vPXtG421+WNWljI/czn3dVIb/KUnvkwWqQpln5leSLPzr5N1DQLiiyTp
zspj/uq5j+KJ++3LZv8AJJGFQX5+Xtnc2V5PZXUZiubaR4Z4m6rJGxVlPyIyttUcVdirgSDUdcVf
ff5NecT5u/LnSNVlfnerH9Vvz3+sW/wMx93AD/7LLA1EJN/zkD+Wt/568mw2+kRLLrdhcpNZq7rG
GR/3cycmIUDiwf8A2O2AhQaY9+Q/5B6z5D1qbzBrWoQS3k9m1othbBmVPUeOQs0zcKkenSgWm/XE
BMpW9vwsXYq7FXYq7FXxr/zlhpj2n5pC6IHDUNPt5wRXqheEg+/7oZGTZBmf/OGuqLTzPpTfa/0W
6i6dP3kb/wDGmMUTfS+SYPm//nJP8jp7yWfzv5ZtzJcFeWt2EQJZ+I/3pjUdTQfvB3+115ZEhlGT
5fyLY7FXYq7FXYq7FXYqjtF1vVtD1S31XSLqSy1C1YPBcRGjAjsezKehU7EbHbCr7Q/JL87dN8/6
aLK9KWnmi0St3aDZZ1GxngB7fzL+z8qHJAtRFPUmVWUqwBUihB3BBwofGP8AzkT+Tw8ma2ut6NDx
8s6o54Rr0tbk1ZofZGHxR/SOwrEhsiXjuRZOxV2Ks+/JHz8/krz/AGN/LIV0u8P1PVFrt6EpA5n/
AIxvR/kCO+EFEg+8gQRUbg9Dk2p8ef8AOVfkhdF88w6/axcLLzBGZJSo+EXcNFl6fzqUf3JbIlsi
XiWRZOxV2Kvo/wD5w881enf635VmcBLhF1G0UmnxxkRTADuWVkPyXJRYTD6hyTB2KuxV2KuxV2Ku
xV82f85kaGTbeXNdQGkbz2M57fGFli/4hJkZM4PPv+cXdfGl/mtbWrvwh1e2msmr0L0E0f0loaD5
4hMuT7UyTW7FXh/5q/8AOMeheZZptX8sSR6NrMhLzW7Aiznc7klVBaJj3Kgj/JrvgIZCT5o82/ld
598pyONb0a4ggQn/AE1F9W2IHcTR8k360JB9sjTMEMWwJdirsVdirsVdiqN0TWtU0PVrXVtLuGtd
QspBLbzoaEMPHxUjZgdiNjthV94/lR+Y+n+fvKUGsQARX0Z9DU7QdYrhRvT/ACHHxIfD3ByYaiKT
rzf5W0zzV5bv9A1Na2l/EYy4ALRv1SRKgjkjAMPfFD8+/M/l3UfLfmC/0LUl43unzNDLSvFqfZda
0PF1IZfY5BtBSvAl2KuxV91fkB5xPmj8stMmmk9S+04fo68JILc7cAIx92iKE175MNRG6G/5yO8p
DzD+VuoyRpzvNHK6lbkCp4w1Ewr1p6LMfoGJWJ3fD2QbXYq7FWbfkt5i/wAP/mh5e1Bn4QvdLa3B
PQRXQMDE/wCr6nL6MIRLk++sm1OxV2KuxV2KuxV2KvOv+cgvLDeYPyq1mGJDJdWCrqFsF3PK2PKT
bv8AuS42wFI5viTy7rVzoev6drNsSLjTrmK5jp3MThqb+NKZFsL9F9N1C11LTrXUbR/UtL2GO4t3
/mjlUOh+lTk2pE4q7FXYqkd/5E8j6jL6uoeXtMvJdz6lxZ28rb9d3QntitsZ1j8gPyj1SJkk8vQ2
rtustmz27KfECNgn0FSMFJsvG/P3/OI+o2cUt75LvjqCL8X6LvCiT08I5hxjc+zBfmcBDISfPl/Y
X2n3s1jf28lreW7mOe3mUpIjjqrK1CDgZqGBXYq7FXpP5CfmQ3kjzzA91Jw0TVSlpqgY0RFZv3c5
qQP3TGpP8pbCCxkH3Pk2t8x/85feSFjm0vznaxgCb/cfqbDqXAL27kAfyh1JJ7KMjJnAvmvIs3Yq
7FX0J/zh95mNv5j1ny5K9I7+3W8t1P8Av22biwHuyS1/2OSiwmH1PdWsF3azWtwnqW9wjRTRmoDI
4KsNt9wckwfnL5k0abQ/MOp6NNUy6bdTWrE9zDIUr9NK5BtCXYEuxVdHI8ciyRsVdCGRh1BBqDir
9HPLGrDWPLelauCCNRs4Lrbb++iV/wDjbLGlMsVdirsVdirsVdiq2WKKaJ4pVDxSKUkRhUMrChBH
uMVfnn+YnlObyn511fQJAQlncMLZmBHOB/jhfev2o2GQLaC+pf8AnFfzsuteQm0K4k5X+gSekFNK
m1lJeFv9ieSfQMkGEhu9pwsXYq7FXYq7FXYq80/Ob8mNH8/aRJcW8aW3me3T/Qb/AOz6nHpDMQPi
Q9j1U+1QQQkGnxFqGn3unX1xYX0LW95ayNDcQSCjJIh4spHiCMi2ofArsVdir7w/Ijzi3mv8s9Kv
JpPUv7NTYX5Lc29W2ooZyf2pI+Dn/WyYaiE0/Nfyuvmf8u9d0cJznltXltFrT/SIP30O/vIgB9sJ
UF+feVtrsVdirOPyR1xtF/NXy3dh+CS3a2kpPThdgwHl7fvK4QiXJ98ZNqfEH/OS2jrpv5vasyLx
jv44LxR7vEFc/TIjHIlsjyeXZFk7FXYq+6v+cedS/SH5P+XpDXnBHLbMCD/uieSNdz1+ADpkw1Hm
9GwodirsVdirsVdirsVfN3/OXfkQy22n+dbOKrW9LHVWUD7DGtvI1PBiUJPioyJZxLxz8lPzAPkj
z7ZalM5XSrr/AETVVHT0JSPjp/xW4D/QR3wAspC33mjo6K6MGRgGVlNQQdwQRk2pvFXz5+cX/OTi
6Hf3Hl/yakV1f27GO81WUc4YpFNGSFOkjL0LH4QexwEshF4FqP5xfmnqE5nn81akjmppbXElsm/+
RAY0/DI2zoMn8nf85LfmZoF1H9fvP09p4P721vaeoR34XAHqKf8AW5D2w2gxD60/L/8AMDy/558v
x6zo0h4V9O6tZKCWCUCpjkAr41BGxGSYEMlxQ+Wf+cuPIMVnqNj50souKagRZ6px6euiVhkPu8al
T/qjxyJZxL51yLN2KuxV9Lf84b683qeY/L8ko4lYL+2gqK1BMU7gde8QOSiwm+mskwfnV550ePRv
OmvaTFGYobHULm3gRgQfSjmZY+vYoARkC2hJMCXYqr2F29lfW15HvJbSpMg6bxsGH6sKv0mgning
jniblFKoeNqEVVhUGh36ZNpfKX/OYtkqeb9BvafFPp7Qk+0MzMP+T2Rkzg+f8izdiqZ+WPLupeZP
MFhoWmp6l7qEqwxDsK7s7f5KKCzewwoJfoL5O8r6d5V8s6d5f08f6Lp8QjDkAM7n4pJGpQcnclj8
8m1JxirsVdirsVdirsVdiqX+YNC07X9EvdG1GP1bK/haCde9GHUeDKdwfHFX59edfKWp+UvM9/5f
1Ff9IspCqyAELJGd45Ur+y6kHIFtBt9Rf84v/mkuveXv8JanNXV9GjH1JnPxTWQ2UCvUw14f6vH3
yQLCQZl+fPnG58qflnqd9ZSGHULrhY2UoNCr3BozKezLEHZfcYlAG74QyDa7FXYq9X/5xp843Ogf
mZZWJkI0/Xv9Buo6/CZCCbdqfzCT4R7MckGMhs+2ck1vPfz/ANHi1T8o/MMbrye1hW8iYdVa3dZC
R/sAwPscBSOb4RyDa7FXYq9n/wCcTbkw/mo8Y6XOm3ER+QeKT/mXkosZ8n2Tkmt8Kf8AOQ0KQ/nJ
5kRBQGWBzQU3ktYnP4tkC2R5POsDJ2KuxV+jHk2b1/KGhzUp6un2r0O5+KBTljS8E/5zNgBtvKc9
d0e+jpTqHFuevtwyMmcHzFkWbsVfX/8AzjR+UbeWtGPmnWISmuatEBawuKNb2jUYAg7h5di3gKDx
yYDXI29xwsXYq7FXYq7FXYq7FXYq7FXi3/OSv5Tt5q8vjzFpMPPXtGjPONftXFoKs6Ad3jJLL47j
ckYCGUTT5K8ueYdV8ua5Z63pMxg1CxkEsEnUeBVh3VlJVh3GRbCH0X+dXnPT/wAxvyFsvMGlUR7D
U7aTVrMmr28hilgKt/kl51Kt3B+dCeTAbF8xZFm7FXYqy/8AJ/T7i/8AzS8qwQCrpqdtcEf5FtIJ
5D9CRnCEHk/QHJtTEvzcvI7T8rvNcsgqraVdwj/WmhaJfxfEpHN+fmVtrsVdir2H/nFQE/mzCQKg
WNyT7CijJRYz5Ps/JNb4Z/5yONfzo8xmlN7Qbe1lAMgWyPJ5rgZOxV2Kv0U8iAjyP5eB6/oyz/6h
0yxpYp+c35Pf8rKttKg/S/6J/RjzPy+r/WfU9YIKf3sPGnD3wEJBp5Tcf84ZXKx1t/NqSSV+zJYG
MU+YuJP1YOFlxp7+Xv8AzinZ6D5kg1fzDqcWsW9p+8t7BICiNMD8LSlmbkq9eNNz12FCQEGT6Aws
XYq7FXYq7FXYq7FXYq7FXYq7FXyT/wA5I/kq2g30vnDy/b00O8flqVrGNrWdz9tQOkUhPyVtuhAy
JDOJeQ+VvNVzocl5Aym40jVYTa6tp5bis0R+yw6hZIm+ON6fC3tUEAsiEu1DT2tWSSN/Xsp6m1ug
OIcLSoIqeLrUclrt7gglUFCYEuxV9V/84x/k7f6Jy85+YIDb31zEYtJs5BSSKKT7czg7qzj4VHXj
XxyYDXIvoXCxeLf85W+a49K/LpdFSSl3r1wkXAdfq9uRNK3/AAQjX6cBZRG744yDY7FXYq95/wCc
P9Kmn89atqdB9XstOMLHeokuJkKU2p9mF++Siwm+t8kwfAn51aoup/mt5ouVBAS/kthXv9Vpb16n
r6VcgW2PJhWBLsVdir9I9DtJLPRdPs5BSS2toYXGx+KOMKem3bLGlG4q7FUHq+saXo2mz6nqt1HZ
2FsvKe5mbiiitOvudgO+KomGaGeGOeCRZYZVDxSoQysrCqsrDYgjocVX4q7FXYq7FXYq7FXYq7FX
Yq7FVK8tLW9tJrS7iWe1uEaKeGQBkdHHFlYHqCDir4z/AD0/Iu88kXjazoyvc+Vbl9juz2jsdo5D
3Q/sP9B36xIbIyeeeVvND6HdMLizh1XSLgr9f0m6FYplXurfailUE8ZE+JfkSCAUkPoDyZ+Sn5Df
mLp/6V8v32p2DKALvSI7mIyWzn9lhNFM5H8rciD864aDGyHqPk38g/yy8qXEd5Z6ab3UIiDHe37f
WHVhuGVSFiVh/MqA4aYkl6HhQoX19Z2FnPe3syW9pbI0txPIeKIiCrMxPYDFXwh+c35kS+ffOlxq
cfJNJth9W0mF9isCmvNh2aRqsfoHbIEtsRTBcCXYq7FX15/ziP5ZOn+RL3XZUAl1u7IicGvK3tKx
r8v3rS5MNcub2nVtSttL0q81O6YJbWMElzO56BIkLsfuGFi/OG/vrm/vrm+um53N3K8870pWSRiz
Gg8Scg3KGBXYqnnkbSX1fznoWloKm8v7aE+AVpVDE+wWpwhB5P0UybU7FUj84+dfLfk/R5NW167W
2tl2jTrLK9NkiTqzH/b2xV8V/m3+cWu/mHqgaYGz0S1Y/UNMViQO3qSn9uQjv0HQdyYEtgFPYP8A
nE3zF5+ube50me3a68n2ob0L+Zipt59j6MJNfUVq1K/s9aitDIMZPpDCxdirsVdirsVdirsVdirs
VdirsVUruztL21ltLuFLi1nUxzQSqHR0YUKsrVBBxV8nfnV/zjdfaC1x5g8nxPeaHvJdaatXntR1
LJ1aSIf8Eo61FTkSGYk8X8veY9c8uarDq2iXkljqEB/dzxHseqsDVWU91YUOBmQ+q/yt/wCcoPL2
vLDpnm309G1c0Rb2tLKZum7H+5J/yvh/yu2SBazF7kjo6K6MGRgGVlNQQdwQRhYrbi3guIJLe4jW
aCVSksUihkZWFCrKaggjtir5P/PL/nHO40L6x5l8oQtPogrLe6YtWktAN2eOu7xDuOq+46RIZiTw
LIs3Yqj9A0PUNe1ux0bTo/UvtQmS3gXenJzTk1AaKvVj2G+FS/RDy5oVnoGgafollX6rp1vHbRFv
tMI1C8mp+03U++TaWM/nPovmrXPy71TRvLESzalfhIWVpViPocg0oVn+El1XhQkbHriUh8N+YPKv
mTy7d/VNc02406f9lbiNkDe6MfhYe6nIU2ApVgSybyp+WvnvzWy/oHRbm7hatLvj6dvs3E/v5OEV
Qe3KuGkEvoz8nv8AnGa48ra9Y+ZvMWoxz6hZFnt9OtVJhWRlZFZ5n4luIatAo+LuR1kAwMre/YWL
x780P+ckvKflNZtP0Rk1zXlqvpxNW1hbcfvZV+0Qf2E38SuAlkI2+TPOHnbzL5w1ZtU1+9e7uT8M
SnaOJOvCKMfCi/L5nfI2zAp6L+TP/OPur+dJIdY1oSad5XryWT7M10B+zCD0Q95KfL2ICDJ9haNo
ulaLplvpelWqWen2q8ILeIUVR1+ZJO5J3J65JrRuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KvFvzY
/wCcavL/AJqabVvLpj0bXn+KRKUtLhu5dEBMbn+ZRv3BJrgIZCVPlPzb5L8z+UtTbTvMFhJZXG5j
LCscig05RSCquvyORpmDbIfy+/Ovz55IZIdOvfrWlKatpV3WWCnfhuGj/wBgR7g4gqY2+ivJP/OV
PkLWljt9dWTQL9qBmlrLak07TIKrv/OoHvkrYGJew6fqem6lapd6ddw3tpJ9i4t5Fljb5OhZThYs
b8yflL+W/mMyvq3l+0luJyDLdRJ6FwxFKEzQmOQ9O7e3TGk2891b/nEf8uLqUyWN5qOnAinopLHL
GPcerGz/APD4KTxFM/yq/wCceNG8g+ZLnXTqTatOYzFpyyQCI24evqMWDvzdlotQFoK+OICmVvXM
LF2KobUNN07UrV7TUbWG9tJPt29xGssbfNHBU4qxjSPyf/LDSLtruw8t2SXLP6okkj9Yo4AAMfrF
/T6fsUxpNsquLmzsbVpriWO1tYQOcsjLHGg6CrGijFDynzr/AM5N/lx5eV4dOmbzBqC1AhsjSAEf
zXDDhT/UDYLZCJfOv5g/n/5/85erbPc/orR5Kr+jrIsgZT2lk+3J7jZfbIkshFg/l/y3r3mLUo9M
0Sxlv76X7MMK1oP5mP2VUd2YgDFJL6g/Kj/nFzS9GeHV/ObR6lqS0eLS0+K1ibr+8J/vmHh9n/Wy
QDAye+qqqoVQFVRRVGwAHYYWLeKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kpfrvl7RNf06TTt
asob+yk+1BOoYV8V7qw7Eb4q+fvPn/OItrKZbzyVqH1djVhpd8SydK8Y5wCw8AHB92yNMxJ4F5s/
Lzzr5TmMev6RcWSVKrclecD0NPgmTlG3X+bBTIFLdG8w69odyLrR9RudOuAa+pbSvETtTfiRXY98
Vp6ZoH/OUX5raWES6urbV4U243sA5Ef8ZITCxPuScNo4QzzS/wDnMr4OOq+WKv8A79tbqg6f77kj
/wCN8eJHAyay/wCcvfy5lUC607VbaTetIoJE9txMG/4XDaOEor/obP8AKziT6ep1BA4/V46mtd/7
3tja8JQ93/zl3+W0SH6vYarcSUqoEMCLXwJaao+gHG14SxzVP+cyrYIy6V5YdnP2Jbq6Cgb9Skcb
V2/y8HEngYLr/wDzlX+aOpBksGs9HiIoDaw+pJQ+L3BlFfcKMbTwvMtf82+Z/MM3ra5qt1qL/s/W
JXdVp/KpPFfoGC0gL/LfkzzX5mufq2gaVcajJWjGFCUXp9uQ0RBv+0RjSkvePIn/ADiJdyNHd+dd
REMezHS7A8nPtJOw4r8kVv8AWGHhYmT6H8r+T/LPlbTxYeX9Oh0+225iIfG5HRpJDV3PuxOSYJxi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiq2aGKaJ4pkWSKQFXjcBlZTsQQdiMVee
eZ/+cffyq8ws8s2jLYXUhqbnTmNs1T1Ppr+5PjumCk2XmOuf84b2xJfQvMboK/DBfQBzT3liZP8A
k3g4WXGwjU/+cT/zTtHpanT9RSlQ0FwUPXoROkW+PCnjY9d/848/nHauEfy5K9a0aKe2lBA90lan
04KXiCB/5Ul+bH/Ur33/AAA/rjS8QRdr/wA4/fnFcsFj8tTqSOX72W3iFPnJIgr7Y0vEGQad/wA4
p/mvdSKtxHY2Cnq89yGAp7QLMcPCvEGaaJ/zhvKaPrnmRV6Vhsrcn5/vZWH/ACbx4Ucb0zy1/wA4
3/lPobJIdLbVbhKES6lJ64NPGIBID9MeGmPEXpNpZ2lnbpbWcEdtbRCkcEKqiKCa/CqgAb4UKuKu
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==
+
+
+
+ 1
+ False
+ False
+
+ 56.333333
+ 57.333333
+ Pixels
+
+
+
+ Black
+
+
+
+
+
+ 默认色板组
+ 0
+
+
+
+ application/pdf
+
+
+ 黑鱼白底
+
+
+ proof:pdf
+ xmp.did:279a03ea-f3e7-40a3-ae53-771dd64b883e
+ uuid:c3a85fc4-4db4-b943-8504-bfeab2b33386
+ uuid:f45c532c-a658-3748-b74d-0cf5e658e16a
+
+ uuid:28112cc2-f74a-0b45-b4e8-5de3f55b3424
+ uuid:f45c532c-a658-3748-b74d-0cf5e658e16a
+ uuid:f45c532c-a658-3748-b74d-0cf5e658e16a
+ proof:pdf
+
+
+
+
+ saved
+ xmp.iid:279a03ea-f3e7-40a3-ae53-771dd64b883e
+ 2018-07-17T18:09:54+08:00
+ Adobe Illustrator CC 2015 (Macintosh)
+ /
+
+
+
+ Adobe PDF library 15.00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
endstream
endobj
3 0 obj
<>
endobj
7 0 obj
<>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 56.3333 57.3333]/Type/Page>>
endobj
8 0 obj
<>stream
+HDWˮ\W|o lׁ 'q$RS>70Ul滿}x_?(_?}oo|r0櫵~oI10nGaո4U;Q@?[`nɅqN&`TяPۋpFSS'F(5k s*GO݂1ã_*8Cu5b
+!u6G:.N5Gf'l! ES@]C`we,ÍWSpn=v*mua7jShkO
Ɓ y{(Axflt-8utɈQ7&އ`f ΆfDQ5x%YK7]b~ۿX@w_GƆ&a!z:>鏻hXzli*jϫF#\{<؋Bz^Bp6jÃlʫAlTf};E;Uj~v צt8$nrpGg ثHJ?3qhqDD&:U.#m0I5LY#vQl؆5Pf1_r}3za%GFĊ$H58>>D-ZA"чEWϘС$!Gĩ93zab_MA <GkIu NID"R2Iti_4d9G3y餲M,'&8 imsԥ${KD0|%G=DԜ{J0pM% T@,I3zG86ANq0ݧ6lBc561OK%D%E B9%g83ᄖF