From: Jung Ick Guack Date: Thu, 15 Oct 2015 10:01:42 +0000 (+0900) Subject: Deleted scrap feature. X-Git-Tag: submit/tizen/20151019.075311^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F01%2F49601%2F1;p=platform%2Fframework%2Fweb%2Fbrowser-provider.git Deleted scrap feature. Change-Id: If1ae500a50a9c4d6aff79390d3cc6b9b1ce95000 Signed-off-by: Jung Ick Guack --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 558feb0..6e7b98a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,6 @@ IF(DEFINED NOTIFY_DIR) ENDIF(DEFINED NOTIFY_DIR) ADD_SUBDIRECTORY(provider/) -ADD_SUBDIRECTORY(scrap-adaptor/) ADD_SUBDIRECTORY(tab-adaptor/) ADD_SUBDIRECTORY(bookmark-adaptor/) ADD_SUBDIRECTORY(bookmark-csc-adaptor/) diff --git a/TC/web_scrap/_export_env.sh b/TC/web_scrap/_export_env.sh deleted file mode 100755 index 7a317f8..0000000 --- a/TC/web_scrap/_export_env.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -source ./config - -export TET_INSTALL_PATH=$TET_INSTALL_HOST_PATH # tetware root path -#export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-simulator # tetware target path -export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target # tetware target path -export PATH=$TET_TARGET_PATH/bin:$PATH -export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH -export TET_ROOT=$TET_TARGET_PATH diff --git a/TC/web_scrap/_export_target_env.sh b/TC/web_scrap/_export_target_env.sh deleted file mode 100755 index 3fd8e3f..0000000 --- a/TC/web_scrap/_export_target_env.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -. ./config - -export TET_INSTALL_PATH=$TET_INSTALL_TARGET_PATH # path to path -#export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-simulator -export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target -export PATH=$TET_TARGET_PATH/bin:$PATH -export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH -export TET_ROOT=$TET_TARGET_PATH diff --git a/TC/web_scrap/build.sh b/TC/web_scrap/build.sh deleted file mode 100755 index 72aad6c..0000000 --- a/TC/web_scrap/build.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -. ./_export_env.sh # setting environment variables - -export TET_SUITE_ROOT=`pwd` -FILE_NAME_EXTENSION=`date +%s` - -RESULT_DIR=results -HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html -JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal - -mkdir -p $RESULT_DIR - -tcc -c -p ./ -tcc -b -j $JOURNAL_RESULT -p ./ -grw -c 7 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/web_scrap/clean.sh b/TC/web_scrap/clean.sh deleted file mode 100755 index 29743e0..0000000 --- a/TC/web_scrap/clean.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -. ./_export_env.sh # setting environment variables - -export TET_SUITE_ROOT=`pwd` -RESULT_DIR=results - -tcc -c -p ./ # executing tcc, with clean option (-c) -rm -r $RESULT_DIR -rm -r tet_tmp_dir -rm testcase/tet_captured diff --git a/TC/web_scrap/config b/TC/web_scrap/config deleted file mode 100644 index 9b625f1..0000000 --- a/TC/web_scrap/config +++ /dev/null @@ -1,3 +0,0 @@ -PKG_NAME=capi-web-scrap -TET_INSTALL_HOST_PATH=/var/tmp/dts_fw/TC/web_scrap/TETware -TET_INSTALL_TARGET_PATH=/opt/home/$PKG_NAME/TETware diff --git a/TC/web_scrap/push.sh b/TC/web_scrap/push.sh deleted file mode 100755 index 5eb9510..0000000 --- a/TC/web_scrap/push.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -. ./config - -TC_PATH=/opt/home/$PKG_NAME - -echo $TC_PATH - -sdb shell "mkdir -p $TC_PATH" - -sdb push . $TC_PATH - - diff --git a/TC/web_scrap/run.sh b/TC/web_scrap/run.sh deleted file mode 100755 index cec5778..0000000 --- a/TC/web_scrap/run.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -source ./_export_target_env.sh - -export TET_SUITE_ROOT=`pwd` -FILE_NAME_EXTENSION=`date +%s` - -RESULT_DIR=results -HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html -JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal - -mkdir -p $RESULT_DIR - -tcc -e -j $JOURNAL_RESULT -p ./ -grw -c 7 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/web_scrap/test.mhtml b/TC/web_scrap/test.mhtml deleted file mode 100644 index 4aac13f..0000000 --- a/TC/web_scrap/test.mhtml +++ /dev/null @@ -1,8477 +0,0 @@ -From: -Subject: ?? ?? | ???? ???? -Date: Tue, 23 Dec 2013 15:09:18 +0900 -MIME-Version: 1.0 -Content-Type: multipart/related; - type="text/html"; - boundary="----=_NextPart_000_E9E1_7F22D6FD.385F7039" - -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: text/html -Content-Transfer-Encoding: quoted-printable -Content-Location: http://www.samsung.co.kr/main.do - - - =EC=82=BC=EC=84=B1 =EC=86=8C=EC=8B=9D | =EC=82=BC=EC=84=B1=EA=B7=B8= -=EB=A3=B9 =ED=99=88=ED=8E=98=EC=9D=B4=EC=A7=80 -=09 - - - - - - - - - - -=09 -=09 -=09 -=09 -=09 -=09 - -=09 - - - - -=09 - -
- - - - - - -
3D"=EB=8B=AB=EA=B8=B0"
-
- - - -
-

=EA=B3=84=EC=97=B4=EC=82=AC =EB=B0=94=EB=A1= -=9C=EA=B0=80=EA=B8=B0

- -
-

=EC=9E=84=EC=A7=81=EC=9B=90 =EC=A0=84=EC=9A=A9 =EC=82=AC= -=EC=9D=B4=ED=8A=B8 =EB=B0=94=EB=A1=9C=EA=B0=80=EA=B8=B0

- -
- 3D"=EA=B3=84=EC=97=B4=EC=82=AC -
- - - -

=EB=B3=B8=EB=AC=B8 =EB=B0=94=EB=A1=9C=EA=B0=80=EA=B8=B0

-
- - =09 - - - -
-
-

3D"SAMSUNG"

- - - - - -
3D"=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83"
- - -
-
-
- -
- -
-
-
-
-
- =ED=86=B5=ED=95=A9=EA=B2=80=EC=83=89 - - - 3D"=ED=86=B5=ED=95=A9= - - -
- -
-
-
- 3D"=ED= -
-
-
- - - -
- 3D"=EB=A9=94=EB=89=B4=EB=B3=B4=EA=B8=B0" -
- -
- - - - -
- -
- - =09 - - - - -
-

-
- - - - - =09 - - - - - -
-
- =09 - - - - -=09 - -=09 -=09 -=09 -
- -
- - -
-
- - -
- - - - - -
- - - - - -
-
- -
- - - =09 -
- -
- -
-
-
- =EA=B3=84=EC=97=B4=EC=82=AC =EB=B0=94=EB=A1= -=9C=EA=B0=80=EA=B8=B0 - =EC=9E=90=EC=84=B8=ED=9E=88 =EB=B3=B4=EA=B8=B0 -
- 3D==ED=99=88=ED=8E=98=EC=9D=B4=EC=A7=80 - 3D""==ED=8A=B8=EC=9C=84=ED=84=B0 - 3D==ED=8E=98=EC=9D=B4=EC=8A=A4=EB=B6=81 - 3D==EB=B8=94=EB=A1=9C=EA=B7=B8 -
-
-
=EC=A4=91=ED=99=94= -=ED=95=99
<= -/div>
-
-
- =EC=9E=84=EC=A7=81=EC=9B=90 =EC=A0=84=EC=9A=A9 = -=EC=82=AC=EC=9D=B4=ED=8A=B8 =EB=B0=94=EB=A1=9C=EA=B0=80=EA=B8=B0 - =ED=8C=A8=EB=B0=80=EB=A6=AC=EB=84=B7 - =EC=82=BC=EC=84=B1=EA=B0=80=EC=A1=B1=EA=B5=AC=EB=A7=A4=EC=84= -=BC=ED=84=B0 - =EC=9B=B0=EC=8A=A4=ED=86=A0=EB=A6=AC=EB=AA=B0 -
- =EB=8B=AB=EA=B8=B0 -
-
-
- - - -
- - =EA=B3=84=EC=97=B4=EC=82=AC =EC=A0=84= -=EC=B2=B4=EB=B3=B4=EA=B8=B0 - - - -
- 3D"=EC= - 3D"=EC=82=BC=EC=84=B1=EA=B7=B8= - 3D"=EC=82=BC=EC=84=B1= - 3D"=EC=82=BC=EC=84=B1=EA=B7=B8= -
-

- 137-965 =EC=84=9C=EC=9A=B8=ED=8A=B9=EB=B3=84=EC=8B=9C =EC=84=9C=EC=B4=88= -=EA=B5=AC =EC=84=9C=EC=B4=88=EB=8C=80=EB=A1=9C74=EA=B8=B8 11 =EC=82=BC=EC= -=84=B1=EC=A0=84=EC=9E=90=EB=B9=8C=EB=94=A9 40=EC=B8=B5 =EC=82=AC=EC=84=9C= -=ED=95=A8 170
- =C2=A9 SAMSUNG, All rights reserved. -

- -
- =EA=B3=84=EC=97=B4=EC=82=AC =EC=A0=84=EC=B2= -=B4=EB=B3=B4=EA=B8=B0 - 3D"=EA=B3=84= -
-

=C2=A9 SAMSUNG, All rights reserved.

- -
- - - - - - - - - - - - -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bg_bodyline_m.gif - -R0lGODlhAgAyAMQAAAAAAP////z8/fr6+/n5+vj4+ff3+Pb29/X19vb3+PX29/z9/fv8/Pr7+/n6 -+vj5+ff4+Pb39/X29v7+/v39/fz8/Pv7+/r6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABgALAAAAAACADIAAAUxYCCOZGmeKDqt7Eq91LIIQlUxjGU1zTBcF4eDQHg8CsgCBGIwJBKRyOGg -UEgkCIQoBAA7 -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: text/css -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/css/samsung.css - -QGNoYXJzZXQgInV0Zi04IjsKCmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3Qs -IGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBh -YmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9u -dCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIs -IHN1cCwgdHQsIHZhciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxh -YmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgs -IHRkIHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgYm9yZGVyOiAwcHg7IGxpbmUtaGVpZ2h0 -OiAxNDAlOyB9CgojbG9hZGluZyB7IHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMHB4OyB0b3A6IDBw -eDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgei1pbmRleDogOTk5OTsgfQoKI2xvYWRpbmcg -LmRpbW0geyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io -MjU1LCAyNTUsIDI1NSk7IG9wYWNpdHk6IDAuNTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH0KCiNs -b2FkaW5nIC5zcGlubmVyIHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogNDBweDsgaGVpZ2h0 -OiA0MHB4OyB0b3A6IDUwJTsgbGVmdDogNTAlOyBtYXJnaW4tbGVmdDogLTIwcHg7IG1hcmdpbi10 -b3A6IC0yMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmty -L2ltYWdlcy9sb2FkaW5nX3Nwcml0ZXMucG5nKTsgLXdlYmtpdC1hbmltYXRpb246IHBsYXkgMC44 -cyBzdGVwcygyNCwgZW5kKSBpbmZpbml0ZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKQC13ZWJr -aXQta2V5ZnJhbWVzIHBsYXkgeyAKICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7 -IH0KICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk4NHB4IDBweDsgfQp9CgpAZm9udC1m -YWNlIHsgZm9udC1mYW1pbHk6ICdOYW51bSBHb3RoaWMnOyBmb250LXN0eWxlOiBub3JtYWw7IGZv -bnQtd2VpZ2h0OiA3MDA7IHNyYzogdXJsKGh0dHA6Ly90aGVtZXMuZ29vZ2xldXNlcmNvbnRlbnQu -Y29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9uYW51bWdvdGhpYy92My9OYW51bUdvdGhpYy1C -b2xkLmVvdD8jaWVmaXgpIGZvcm1hdChlbWJlZGRlZC1vcGVudHlwZSksIHVybChodHRwOi8vdGhl -bWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1n -b3RoaWMvdjMvTmFudW1Hb3RoaWMtQm9sZC53b2ZmMikgZm9ybWF0KHdvZmYyKSwgdXJsKGh0dHA6 -Ly90aGVtZXMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9u -YW51bWdvdGhpYy92My9OYW51bUdvdGhpYy1Cb2xkLndvZmYpIGZvcm1hdCh3b2ZmKSwgdXJsKGh0 -dHA6Ly90aGVtZXMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vz -cy9uYW51bWdvdGhpYy92My9OYW51bUdvdGhpYy1Cb2xkLnR0ZikgZm9ybWF0KHRydWV0eXBlKTsg -fQoKQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnTmFudW0gR290aGljJzsgZm9udC1zdHlsZTog -bm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBzcmM6IHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVz -ZXJjb250ZW50LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1nb3RoaWMvdjMvTmFu -dW1Hb3RoaWMtUmVndWxhci5lb3Q/I2llZml4KSBmb3JtYXQoZW1iZWRkZWQtb3BlbnR5cGUpLCB1 -cmwoaHR0cDovL3RoZW1lcy5nb29nbGV1c2VyY29udGVudC5jb20vc3RhdGljL2ZvbnRzL2Vhcmx5 -YWNjZXNzL25hbnVtZ290aGljL3YzL05hbnVtR290aGljLVJlZ3VsYXIud29mZjIpIGZvcm1hdCh3 -b2ZmMiksIHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zdGF0aWMvZm9u -dHMvZWFybHlhY2Nlc3MvbmFudW1nb3RoaWMvdjMvTmFudW1Hb3RoaWMtUmVndWxhci53b2ZmKSBm -b3JtYXQod29mZiksIHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zdGF0 -aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1nb3RoaWMvdjMvTmFudW1Hb3RoaWMtUmVndWxhci50 -dGYpIGZvcm1hdCh0cnVldHlwZSk7IH0KCkBmb250LWZhY2UgeyBmb250LWZhbWlseTogJ05hbnVt -IEdvdGhpYyc7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDgwMDsgc3JjOiB1cmwo -aHR0cDovL3RoZW1lcy5nb29nbGV1c2VyY29udGVudC5jb20vc3RhdGljL2ZvbnRzL2Vhcmx5YWNj -ZXNzL25hbnVtZ290aGljL3YzL05hbnVtR290aGljLUV4dHJhQm9sZC5lb3Q/I2llZml4KSBmb3Jt -YXQoZW1iZWRkZWQtb3BlbnR5cGUpLCB1cmwoaHR0cDovL3RoZW1lcy5nb29nbGV1c2VyY29udGVu -dC5jb20vc3RhdGljL2ZvbnRzL2Vhcmx5YWNjZXNzL25hbnVtZ290aGljL3YzL05hbnVtR290aGlj -LUV4dHJhQm9sZC53b2ZmMikgZm9ybWF0KHdvZmYyKSwgdXJsKGh0dHA6Ly90aGVtZXMuZ29vZ2xl -dXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9uYW51bWdvdGhpYy92My9O -YW51bUdvdGhpYy1FeHRyYUJvbGQud29mZikgZm9ybWF0KHdvZmYpLCB1cmwoaHR0cDovL3RoZW1l -cy5nb29nbGV1c2VyY29udGVudC5jb20vc3RhdGljL2ZvbnRzL2Vhcmx5YWNjZXNzL25hbnVtZ290 -aGljL3YzL05hbnVtR290aGljLUV4dHJhQm9sZC50dGYpIGZvcm1hdCh0cnVldHlwZSk7IH0KCkBm -b250LWZhY2UgeyBmb250LWZhbWlseTogJ05hbnVtIE15ZW9uZ2pvJzsgZm9udC1zdHlsZTogbm9y -bWFsOyBmb250LXdlaWdodDogNDAwOyBzcmM6IHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVzZXJj -b250ZW50LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1teWVvbmdqby92Mi9OYW51 -bU15ZW9uZ2pvLVJlZ3VsYXIuZW90PyNpZWZpeCkgZm9ybWF0KGVtYmVkZGVkLW9wZW50eXBlKSwg -dXJsKGh0dHA6Ly90aGVtZXMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJs -eWFjY2Vzcy9uYW51bW15ZW9uZ2pvL3YyL05hbnVtTXllb25nam8tUmVndWxhci53b2ZmMikgZm9y -bWF0KHdvZmYyKSwgdXJsKGh0dHA6Ly90aGVtZXMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRp -Yy9mb250cy9lYXJseWFjY2Vzcy9uYW51bW15ZW9uZ2pvL3YyL05hbnVtTXllb25nam8tUmVndWxh -ci53b2ZmKSBmb3JtYXQod29mZiksIHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVzZXJjb250ZW50 -LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1teWVvbmdqby92Mi9OYW51bU15ZW9u -Z2pvLVJlZ3VsYXIudHRmKSBmb3JtYXQodHJ1ZXR5cGUpOyB9CgpAZm9udC1mYWNlIHsgZm9udC1m -YW1pbHk6ICdOYW51bSBNeWVvbmdqbyc7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6 -IDcwMDsgc3JjOiB1cmwoaHR0cDovL3RoZW1lcy5nb29nbGV1c2VyY29udGVudC5jb20vc3RhdGlj -L2ZvbnRzL2Vhcmx5YWNjZXNzL25hbnVtbXllb25nam8vdjIvTmFudW1NeWVvbmdqby1Cb2xkLmVv -dD8jaWVmaXgpIGZvcm1hdChlbWJlZGRlZC1vcGVudHlwZSksIHVybChodHRwOi8vdGhlbWVzLmdv -b2dsZXVzZXJjb250ZW50LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1teWVvbmdq -by92Mi9OYW51bU15ZW9uZ2pvLUJvbGQud29mZjIpIGZvcm1hdCh3b2ZmMiksIHVybChodHRwOi8v -dGhlbWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zdGF0aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFu -dW1teWVvbmdqby92Mi9OYW51bU15ZW9uZ2pvLUJvbGQud29mZikgZm9ybWF0KHdvZmYpLCB1cmwo -aHR0cDovL3RoZW1lcy5nb29nbGV1c2VyY29udGVudC5jb20vc3RhdGljL2ZvbnRzL2Vhcmx5YWNj -ZXNzL25hbnVtbXllb25nam8vdjIvTmFudW1NeWVvbmdqby1Cb2xkLnR0ZikgZm9ybWF0KHRydWV0 -eXBlKTsgfQoKQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiAnTmFudW0gTXllb25nam8nOyBmb250 -LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA4MDA7IHNyYzogdXJsKGh0dHA6Ly90aGVtZXMu -Z29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9uYW51bW15ZW9u -Z2pvL3YyL05hbnVtTXllb25nam8tRXh0cmFCb2xkLmVvdD8jaWVmaXgpIGZvcm1hdChlbWJlZGRl -ZC1vcGVudHlwZSksIHVybChodHRwOi8vdGhlbWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9zdGF0 -aWMvZm9udHMvZWFybHlhY2Nlc3MvbmFudW1teWVvbmdqby92Mi9OYW51bU15ZW9uZ2pvLUV4dHJh -Qm9sZC53b2ZmMikgZm9ybWF0KHdvZmYyKSwgdXJsKGh0dHA6Ly90aGVtZXMuZ29vZ2xldXNlcmNv -bnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9uYW51bW15ZW9uZ2pvL3YyL05hbnVt -TXllb25nam8tRXh0cmFCb2xkLndvZmYpIGZvcm1hdCh3b2ZmKSwgdXJsKGh0dHA6Ly90aGVtZXMu -Z29vZ2xldXNlcmNvbnRlbnQuY29tL3N0YXRpYy9mb250cy9lYXJseWFjY2Vzcy9uYW51bW15ZW9u -Z2pvL3YyL05hbnVtTXllb25nam8tRXh0cmFCb2xkLnR0ZikgZm9ybWF0KHRydWV0eXBlKTsgfQoK -aGVhZGVyLCBmb290ZXIsIG5hdiwgc2VjdGlvbiwgYXJ0aWNsZSwgYXNpZGUsIGZpZ3VyZSB7IGRp -c3BsYXk6IGJsb2NrOyB9CgpodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyAtd2Via2l0LXRyYW5z -aXRpb246IG5vbmU7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTsgY29sb3I6IHJnYig0 -MSwgNTYsIDcyKTsgfQoKYm9keSB7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6ICdOYW51 -bSBHb3RoaWMnLCDrj4vsm4AsIERvdHVtLCDqtbTrprwsIEd1bGltLCBIZWx2ZXRpY2EsIHNhbnMt -c2VyaWY7IH0KCnVsLCBvbCB7IGxpc3Qtc3R5bGU6IG5vbmU7IH0KCmh0bWwgeyBvdmVyZmxvdy15 -OiBzY3JvbGw7IH0KCnN0cm9uZywgYiwgdGggeyBmb250LXdlaWdodDogNjAwOyB9CgpoMSwgaDIs -IGgzLCBoNCB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCmEgeyBjb2xvcjogcmdiKDUxLCA1MSwgNTEp -OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KCmE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVu -ZGVybGluZTsgfQoKYTpmb2N1cyB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgppbWcg -eyBib3JkZXI6IDBweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfQoKZW0geyBmb250LXN0eWxl -OiBub3JtYWw7IH0KCnNtYWxsIHsgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7IH0KCi51LCAu -dSBhIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDsgfQoKLmJvbGQgeyBm -b250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7IH0KCi5mbCB7IGZsb2F0OiBsZWZ0OyB9CgouZnIg -eyBmbG9hdDogcmlnaHQ7IH0KCi5jbGVhciB7IGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7IH0KCi5j -bGVhcjo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9 -CgouYmxpbmQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IGhlaWdo -dDogMXB4OyBvdmVyZmxvdzogaGlkZGVuOyB2aXNpYmlsaXR5OiBoaWRkZW47IGZvbnQtc2l6ZTog -MHB4OyBsaW5lLWhlaWdodDogMDsgd2lkdGg6IDFweCAhaW1wb3J0YW50OyB9CgouYmxpbmQyIHsg -aGVpZ2h0OiAwcHg7IG92ZXJmbG93OiBoaWRkZW47IGxpbmUtaGVpZ2h0OiAwOyBmb250LXNpemU6 -IDBweDsgfQoKLm5vbmUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCi5sIHsgdGV4dC1h -bGlnbjogbGVmdCAhaW1wb3J0YW50OyB9CgouYyB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0 -YW50OyB9CgouciB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH0KCi50IHsgdmVydGlj -YWwtYWxpZ246IHRvcCAhaW1wb3J0YW50OyB9CgoubSB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUg -IWltcG9ydGFudDsgfQoKLmIgeyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH0K -CmhyIHsgaGVpZ2h0OiA0MHB4OyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7IHZpc2liaWxp -dHk6IGhpZGRlbjsgZm9udC1zaXplOiAwcHg7IGxpbmUtaGVpZ2h0OiAwOyB9Cgp0YWJsZSB7IGJv -cmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1zcGFjaW5nOiAwcHg7IH0KCmNhcHRpb24g -eyB3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgdmlzaWJpbGl0eTog -aGlkZGVuOyBmb250LXNpemU6IDBweDsgbGluZS1oZWlnaHQ6IDA7IH0KCmxlZ2VuZCB7IGRpc3Bs -YXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IHdpZHRo -OiAwcHg7IGhlaWdodDogMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB2aXNpYmlsaXR5OiBoaWRkZW47 -IGZvbnQtc2l6ZTogMHB4OyBsaW5lLWhlaWdodDogMDsgfQoKc2VsZWN0LCB0ZXh0YXJlYSwgaW5w -dXQsIGxhYmVsIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfQoKaW5wdXQgeyB9CgppbnB1dFt0 -eXBlPSJ0ZXh0Il0sIGlucHV0W3R5cGU9InBhc3N3b3JkIl0geyB3aWR0aDogMTAwJTsgYm9yZGVy -OiAxcHggc29saWQgcmdiKDE3MSwgMTczLCAxNzkpOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAx -cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFk -aXVzOiAxcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDFweDsgcGFkZGluZzogNHB4IDEw -cHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6ICdOYW51bSBHb3RoaWMnLCBkb3R1bSwg -QXBwbGVHb3RoaWNSZWd1bGFyLCBzYW5zLXNlcmlmOyB9CgppbnB1dFt0eXBlPSJyYWRpbyJdLCBp -bnB1dFt0eXBlPSJjaGVja2JveCJdIHsgbWFyZ2luOiAwcHggM3B4IDBweCAwcHg7IH0KCnRleHRh -cmVhIHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigx -NzEsIDE3MywgMTc5KTsgZm9udC1zaXplOiAxM3B4OyBmb250LWZhbWlseTogJ05hbnVtIEdvdGhp -YycsIGRvdHVtLCBBcHBsZUdvdGhpY1JlZ3VsYXIsIHNhbnMtc2VyaWY7IHJlc2l6ZTogbm9uZTsg -fQoKI2FjY2Vzc21lbnUgeyB9CgojYWNjZXNzbWVudSBhOmxpbmssICNhY2Nlc3NtZW51IGE6dmlz -aXRlZCwgI2FjY2Vzc21lbnUgYTphY3RpdmUsICNhY2Nlc3NtZW51IGE6aG92ZXIgeyBwb3NpdGlv -bjogYWJzb2x1dGU7IHRvcDogLTk5OTk5cHg7IGxlZnQ6IDBweDsgd2lkdGg6IDEwMCU7IHotaW5k -ZXg6IDk5OTsgY29sb3I6IHJnYigzNCwgMzQsIDM0KTsgZGlzcGxheTogYmxvY2s7IG92ZXJmbG93 -OiBoaWRkZW47IH0KCiNhY2Nlc3NtZW51IGE6Zm9jdXMsICNhY2Nlc3NtZW51IGE6aG92ZXIsICNh -Y2Nlc3NtZW51IGE6YWN0aXZlIHsgdG9wOiAwcHg7IHBhZGRpbmc6IDdweCAwcHggNXB4OyBiYWNr -Z3JvdW5kLWNvbG9yOiByZ2IoMjksIDk2LCAxNjcpOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUp -OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtYWxpZ246IGNl -bnRlcjsgfQoKZGl2LnBvcF9sYXllciB7IHdpZHRoOiAxMDAlOyBib3JkZXItYm90dG9tLXdpZHRo -OiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiBy -Z2IoMTc5LCAxODcsIDE5Nik7IGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksIDI0NCwgMjQ5KTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDog -aW5pdGlhbCBpbml0aWFsOyB9CgpkaXYucG9wX2xheWVyIGRpdi5wb3BfbGF5ZXJpbiB7IHBvc2l0 -aW9uOiByZWxhdGl2ZTsgbWFyZ2luOiAwcHggYXV0bzsgcGFkZGluZzogMjVweCAwcHg7IHdpZHRo -OiA5NjBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvY29tbW9uL2JnX3RvcF9wb3AuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCA0 -N3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnBvcF9s -YXllciBkaXYucG9wX2xheWVyaW4gc3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4 -IDBweCAxMnB4IDE3MHB4OyBmb250LXNpemU6IDE4cHg7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkx -KTsgfQoKZGl2LnBvcF9sYXllciBkaXYucG9wX2xheWVyaW4gcCB7IGRpc3BsYXk6IGJsb2NrOyBt -YXJnaW46IDdweCAwcHggMHB4IDE3MHB4OyB9CgpkaXYucG9wX2xheWVyIGRpdi5wb3BfbGF5ZXJp -biB1bCB7IG1hcmdpbjogN3B4IDBweCAwcHggMTcwcHg7IH0KCmRpdi5wb3BfbGF5ZXIgZGl2LnBv -cF9sYXllcmluIGxpIHsgcGFkZGluZy1sZWZ0OiAxNnB4OyB0ZXh0LWluZGVudDogLTE2cHg7IGNv -bG9yOiByZ2IoMTU4LCAxMDEsIDIxKTsgfQoKZGl2LnBvcF9sYXllciBkaXYucG9wX2xheWVyaW4g -cC5jbG9zZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwcHg7IHJpZ2h0OiAtM3B4OyB9 -CgpkaXYucG9wX2xheWVyIGRpdi5wb3BfbGF5ZXJpbiBwLmNsb3NlIGxhYmVsIHsgbWFyZ2luLXJp -Z2h0OiAxMHB4OyB9Cgpib2R5LnN1YmNvbnQgeyB9Cgpib2R5LnN1YnNlYXJjaCB7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2JvZHlsaW5l -Mi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -cmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2I3dyYXAgeyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwcHgg -YXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3 -dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19ib2R5bGluZS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQoKaGVh -ZGVyIHsgcGFkZGluZzogMHB4OyB3aWR0aDogMTAwJTsgfQoKZGl2LmhlYWRlcl9pbiB7IHdpZHRo -OiA5NjBweDsgbWFyZ2luOiAwcHggYXV0bzsgfQoKZGl2LmhlYWRlcl9pbjo6YWZ0ZXIgeyBjb250 -ZW50OiAnLic7IHZpc2liaWxpdHk6IGhpZGRlbjsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3Ro -OyBoZWlnaHQ6IDBweDsgfQoKaGVhZGVyIGgxIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMTVweCAw -cHg7IH0KCmgxIGEgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDExNXB4OyBoZWlnaHQ6IDM4cHg7 -IH0KCmgxIGEgaW1nIHsgd2lkdGg6IDExNXB4OyBoZWlnaHQ6IDM4cHg7IH0KCnVsLmduYiB7IGZs -b2F0OiBsZWZ0OyBtYXJnaW46IDBweCAwcHggMHB4IDM1cHg7IH0KCnVsLmduYiBsaSB7IGZsb2F0 -OiBsZWZ0OyB9Cgp1bC5nbmIgbGkgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQoKZGl2Lmdu -Yl9vcGVuIHsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA3MHB4OyBsZWZ0 -OiAwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2JnX2duYmFyZWEucG5nKTsgei1pbmRleDogMTA7IGJhY2tncm91bmQtcG9zaXRpb246IDBw -eCAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnN1Ym1l -bnVfYXJlYSB7IHdpZHRoOiA5NjBweDsgbWFyZ2luOiAwcHggYXV0bzsgb3ZlcmZsb3c6IGhpZGRl -bjsgfQoKdWwuc3ViX21lbnUgeyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW46IDI1cHggMHB4IDVw -eDsgaGVpZ2h0OiAxMzdweDsgfQoKdWwuc3ViX21lbnUgbGkgeyBkaXNwbGF5OiBibG9jazsgd2lk -dGg6IDEzN3B4OyBvdmVyZmxvdzogaGlkZGVuOyB9Cgp1bC5zdWJfbWVudSBsaS53MjkwIHsgd2lk -dGg6IDI5MHB4OyB9Cgp1bC5zdWJfbWVudSBsaSBhIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEp -OyBmb250LXdlaWdodDogNjAwOyBwYWRkaW5nOiAwcHggMHB4IDhweDsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfZ25iLmdpZik7IGZvbnQt -c2l6ZTogMTVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDEwMCU7IGJhY2tncm91bmQtcmVw -ZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5zdWJfbWVudSBsaSBhOmhvdmVyIHsgdGV4 -dC1kZWNvcmF0aW9uOiBub25lOyB9Cgp1bC5zdWJfbWVudSBsaS5vbiBhIHsgY29sb3I6IHJnYigx -MywgMTIzLCAxOTEpOyBmb250LXdlaWdodDogNjAwOyBwYWRkaW5nOiAwcHggMHB4IDhweDsgYmFj -a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfZ25i -b24uZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDEwMCU7IGJhY2tncm91bmQtcmVwZWF0 -OiByZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5zdWJfbWVudTIgeyBtYXJnaW4tdG9wOiAxMHB4OyB9 -Cgp1bC5zdWJfbWVudTIgbGkgeyBoZWlnaHQ6IGF1dG87IGJvcmRlcjogbm9uZTsgcGFkZGluZzog -MHB4IDBweCA0cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IHZpc2libGU7IH0KCnVs -LnN1Yl9tZW51MiBsaSBhIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHJnYigxMDQsIDEx -NiwgMTI5KTsgYmFja2dyb3VuZDogbm9uZTsgcGFkZGluZzogMHB4OyBmb250LXNpemU6IDEzcHg7 -IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0 -aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC5zdWJfbWVudTIg -bGkgYS5zdWIsIHVsLnN1Yl9tZW51MiBsaSBhLnN1Yjpob3ZlciB7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JsX2duYnN1Yi5naWYpICFpbXBv -cnRhbnQ7IHBhZGRpbmctcmlnaHQ6IDE1cHggIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlv -bjogMTAwJSA1cHggIWltcG9ydGFudDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1y -ZXBlYXQgIWltcG9ydGFudDsgfQoKdWwuc3ViX21lbnUyIGxpIGE6aG92ZXIgeyB0ZXh0LWRlY29y -YXRpb246IHVuZGVybGluZTsgfQoKdWwuc3ViX21lbnUgbGkub24gdWwuc3ViX21lbnUyIGxpIGEg -eyBmb250LXdlaWdodDogbm9ybWFsOyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyBiYWNrZ3Jv -dW5kOiBub25lOyBwYWRkaW5nOiAwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5p -dGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwuc3ViX21lbnUg -bGkub24gdWwuc3ViX21lbnUyIGxpLm9uIGEgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0K -CnVsLnN1Yl9tZW51Mi5mbCB7IHdpZHRoOiAxMTNweDsgfQoKdWwuc3ViX21lbnUyIGxpIGE6aG92 -ZXIgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSkgIWltcG9ydGFudDsgfQoKdWwuc3ViX21lbnUy -IGxpIGE6Zm9jdXMgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSkgIWltcG9ydGFudDsgfQoKdWwu -c3ViX21lbnUzIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDsgbGVmdDogMTAwcHg7 -IH0KCnVsLnN1Yl9tZW51MyBsaSB7IHdpZHRoOiAyMDBweDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFw -eDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIyNSwg -MjI1LCAyMjUpOyB9Cgp1bC5zdWJfbWVudTIgbGkub24gdWwuc3ViX21lbnUzIGxpIGEgeyBjb2xv -cjogcmdiKDEwNCwgMTE2LCAxMjkpICFpbXBvcnRhbnQ7IH0KCnVsLnN1Yl9tZW51MyBsaS5vbiB7 -IH0KCnVsLnN1Yl9tZW51MiBsaS5vbiB1bC5zdWJfbWVudTMgbGkub24gYSB7IHBhZGRpbmctbGVm -dDogMTBweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV9nbmJvbi5naWYpICFp -bXBvcnRhbnQ7IGJhY2tncm91bmQtcG9zaXRpb246IDRweCA2cHggIWltcG9ydGFudDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQgIWltcG9ydGFudDsgfQoKdWwuc3ViX21l -bnUyIGxpLm9uIHVsLnN1Yl9tZW51MyBsaSBhOmhvdmVyIHsgcGFkZGluZy1sZWZ0OiAxMHB4OyBj -b2xvcjogcmdiKDQxLCA1NiwgNzIpICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2duYm9uLmdpZikgIWltcG9ydGFudDsg -YmFja2dyb3VuZC1wb3NpdGlvbjogNHB4IDZweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdCAhaW1wb3J0YW50OyB9Cgp1bC5zdWJfbWVudTIgbGkub24g -dWwuc3ViX21lbnUzIGxpIGEgeyBwYWRkaW5nLWxlZnQ6IDEwcHg7IH0KCnVsLnN1Yl9tZW51MyBs -aSBhIHNwYW4geyBjb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgppbWcub3V0X2xpbmsgeyBt -YXJnaW46IC0zcHggMHB4IDBweCAzcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQoKZGl2Lmdu -Yl9sYXllciB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3Iv -aW1hZ2VzL2JnX2duYmFyZWEucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDEwMCU7IGJh -Y2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuZ25iX2NvbnRhcmVhIHsg -d2lkdGg6IDk2MHB4OyBtYXJnaW46IDBweCBhdXRvOyB9CgpkaXYuZ25iX2NvbnRhcmVhLmFib3V0 -IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMv -YmdfYWJvdXQucG5nKTsgd2lkdGg6IDk2MHB4OyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtcG9z -aXRpb246IDEwMCUgMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCmRpdi5nbmJfY29udGFyZWEuY2FyZWVyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfY2FyZWVyLnBuZyk7IHdpZHRoOiA5NjBweDsg -aGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCU7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuYmdfd2l0aCB1bC5zdWJfbWVudTIg -bGkgeyBoZWlnaHQ6IGF1dG87IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0KCmRpdi5tZW51X2lu -Zm8geyBvdmVyZmxvdzogaGlkZGVuOyB9CgpkaXYubWVudV9pbmZvIHAubWVudCB7IHBhZGRpbmc6 -IDEwcHggMHB4OyBmbG9hdDogbGVmdDsgfQoKZGl2Lm1lbnVfaW5mbyBzcGFuLnRpdCB7IGZvbnQt -d2VpZ2h0OiA2MDA7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgY29sb3I6IHJnYigyNTUsIDI1NSwg -MjU1KTsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9CgpkaXYubWVudV9pbmZvIHNwYW4uc3ViIHsgY29s -b3I6IHJnYigyMzQsIDI1MywgMjU1KTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmln -aHQ6IDhweDsgfQoKYS5nbmJfZGV0YWlsdmlldyB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1 -X2duYmFycm93LmdpZik7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMTBweCAxN3B4 -IDEwcHggMHB4OyBmbG9hdDogbGVmdDsgbWFyZ2luLWxlZnQ6IDIwcHg7IGJhY2tncm91bmQtcG9z -aXRpb246IDEwMCUgMTRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCmRpdi5iZ193aXRoIHsgfQoKZGl2LmJnX3dpdGggZGl2Lm1lbnVfaW5mbyB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgYm90dG9tOiAxNXB4OyB9CgpkaXYuYmdfd2l0aCB1bC5zdWJfbWVudSBsaSB7 -IHdpZHRoOiAxMzVweDsgfQoKZGl2LmJnX2Fib3V0IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYWJvdXQucG5nKTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKZGl2LmJnX2Fib3V0IGRpdi5tZW51X2luZm8geyBwb3NpdGlvbjogYWJzb2x1dGU7IGJv -dHRvbTogMTVweDsgfQoKZGl2LmJnX2Fib3V0IGRpdi5tZW51X2luZm8gcC5tZW50IHsgYmFja2dy -b3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYuYmdfY2FyZWVyIHsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfY2FyZWVyLnBu -Zyk7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5v -LXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5iZ19jYXJlZXIgZGl2Lm1lbnVfaW5mbyB7IHBvc2l0 -aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAxNXB4OyB9CgpkaXYuYmdfY2FyZWVyIGRpdi5tZW51X2lu -Zm8gcC5tZW50IHsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlh -bCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYudXRp -bGxfbGlua2FyZWEgeyBmbG9hdDogbGVmdDsgbWFyZ2luOiAyNHB4IDBweCAwcHggMTYycHg7IHdp -ZHRoOiAyNDBweDsgaGVpZ2h0OiAxM3B4OyB9Cgp1bC51dGlsbF9saW5rIHsgZmxvYXQ6IGxlZnQ7 -IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbjogNXB4IDBweCAwcHg7IH0KCnVsLnV0aWxsX2xpbmsg -bGkgeyBmbG9hdDogbGVmdDsgZm9udC1zaXplOiAxMXB4OyBwYWRkaW5nOiAwcHggN3B4OyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV91dGls -bC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggM3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYm9keS5tc2llIHVsLnV0aWxsX2xpbmsgbGkgeyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV91dGls -bC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYm9keS5tc2llIHVsLnV0aWxsX2xpbmsgbGk6Zmlyc3Qt -Y2hpbGQgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCnVsLnV0aWxsX2xp -bmsgbGk6Zmlyc3QtY2hpbGQgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0K -CnVsLnV0aWxsX2xpbmsgbGkgYSB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDcxLCA4NCwg -MTIyKTsgfQoKZGl2LnRvcF91dGlsbGFyZWEgeyBmbG9hdDogcmlnaHQ7IG1hcmdpbi10b3A6IDE2 -cHg7IH0KCmEuZ2xvYmFsLXNlYXJjaCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfZ2xvYmFsc2Vh -cmNoLmdpZik7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM5cHg7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCmEuYnRfdXRpbGxtZW51IHsgZGlzcGxheTogbm9uZTsgfQoKYS5idF9sb2cgeyBwb3NpdGlv -bjogYWJzb2x1dGU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28u -a3IvaW1hZ2VzL2J1X3V0aWxsLmdpZik7IHBhZGRpbmc6IDBweCA4cHggMHB4IDBweDsgbWFyZ2lu -OiAzcHggMHB4IDBweCAtNDVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1cHg7IGJhY2tn -cm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgpib2R5Lm1zaWUgYS5idF9sb2cg -eyBtYXJnaW46IDRweCAwcHggMHB4IC00NXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov -L3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV91dGlsbC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAxMDAlIDNweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -CmEuYnRfbG9nMyB7IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5zZWFyY2hfbGF5ZXIgeyBiYWNrZ3Jv -dW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19zZWFyY2hs -YXllci5naWYpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAxLCAyMDgsIDIxNSk7IHdpZHRoOiAx -MDAlOyBoZWlnaHQ6IDE2NXB4OyBwYWRkaW5nOiAwcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0 -aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDEwMCU7IGJhY2tncm91bmQt -cmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuc2VhcmNoX2xheWVyaW4geyB3aWR0aDog -OTYwcHg7IG1hcmdpbjogNDVweCBhdXRvIDBweDsgfQoKZGl2LnNlYXJjaF9sYXllcmluIHNwYW4u -YmdhcmVhIHsgd2lkdGg6IDEwMCU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogOHB4 -IDBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIxOCwgMjIyLCAyMjYpOyBiYWNrZ3JvdW5kLWNv -bG9yOiByZ2IoNTQsIDY5LCAxMDgpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi5zZWFyY2hfY29u -dCB7IHdpZHRoOiA2MDBweDsgbWFyZ2luOiAwcHggYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyBo -ZWlnaHQ6IDEyMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9CgpkaXYuc2VhcmNoX2xheWVyaW4gaW5w -dXQud29yZCB7IHdpZHRoOiA4NS41JTsgbWFyZ2luOiAwcHggMHB4IDBweCAxMHB4OyBmb250LXNp -emU6IDI2cHg7IGNvbG9yOiByZ2IoMTY1LCAxNjksIDE4NSk7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2lucHV0d29yZC5naWYpOyBib3Jk -ZXI6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IDVweCA2cHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuc2VhcmNoX2xheWVyaW4gaW5wdXQubndvcmQg -eyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi5zZWFyY2hfbGF5ZXJp -biBzcGFuLndvcmRfY2hlYXJlYSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA2NXB4OyByaWdo -dDogMHB4OyB9CgpkaXYuYnRuX2ZpbmRhcmVhIHsgdGV4dC1hbGlnbjogcmlnaHQ7IG1hcmdpbi10 -b3A6IC0zN3B4OyB9CgpkbC5maW5kX3dvcmQgeyBoZWlnaHQ6IDE2cHg7IG92ZXJmbG93OiBoaWRk -ZW47IG1hcmdpbi10b3A6IDEwcHg7IH0KCmRsLmZpbmRfd29yZCBkdCB7IGZsb2F0OiBsZWZ0OyBm -b250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDQyLCAxNDEsIDIwMik7IHBhZGRpbmctcmlnaHQ6 -IDEwcHg7IH0KCmRsLmZpbmRfd29yZCBkZCB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNTAlOyB9Cgpk -bC5maW5kX3dvcmQgZGQgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfZG90LmdpZik7IHBhZGRp -bmc6IDBweCA3cHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA1cHg7IGJhY2tncm91bmQtcmVw -ZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkbC5maW5kX3dvcmQgZGQgYTpmaXJzdC1jaGls -ZCB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlh -bDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2Lm1fZ25iYXJlYSB7 -IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5tX2duYmFyZWEgYS5nbmJfdmlldyB7IGRpc3BsYXk6IG5v -bmU7IH0KCmRpdi5tX3V0aWxsYXJlYSB7IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5tX3V0aWxsYXJl -YSBhLnV0aWxsX3ZpZXcgeyBkaXNwbGF5OiBub25lOyB9CgpkaXYubV9oZWFkZXIgeyBkaXNwbGF5 -OiBub25lOyB9CgpkaXYubV9mb290ZXIgeyBkaXNwbGF5OiBub25lOyB9CgpkaXYjY29udGVudHMg -eyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwcHggYXV0bzsgfQoKZGl2I2NvbnRlbnRzLmFib3V0IHsg -Zm9udC1zaXplOiAxNXB4OyB9CgpkaXYuY29udF9pbmZvIHsgd2lkdGg6IDk2MHB4OyBtYXJnaW46 -IDBweCBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiA4MHB4OyB9Cgpk -aXYuc25zX3NoYXJlYXJlYSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IHJpZ2h0OiAt -ODVweDsgfQoKZGl2LnNuc19zaGFyZWFyZWEgYSB7IGRpc3BsYXk6IGJsb2NrOyB9CgpkaXYuc25z -X3NoYXJlYXJlYSBzcGFuLnNuc19raW5kIHsgZGlzcGxheTogYmxvY2s7IG92ZXJmbG93OiBoaWRk -ZW47IH0KCmRpdi5wYWdlbG9jYXRpb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDAl -OyB6LWluZGV4OiAxOyB9CgpwLnBhZ2Vsb2NhdGlvbl9pbiB7IHdpZHRoOiA5NjBweDsgbWFyZ2lu -OiAzMHB4IGF1dG8gMHB4OyBmb250LXNpemU6IDEzcHg7IH0KCnAucGFnZWxvY2F0aW9uX2luIGEg -eyBwYWRkaW5nLWJvdHRvbTogNXB4OyB9CgpwLnBhZ2Vsb2NhdGlvbl9pbiBzcGFuIHN0cm9uZyB7 -IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGl2Lm1fcGFn -ZWxvY2F0aW9uIHsgZGlzcGxheTogbm9uZTsgfQoKZGl2LnRvcGFyZWEgeyBib3JkZXItYm90dG9t -LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNv -bG9yOiByZ2IoMjQwLCAyNDAsIDI0MCk7IG1hcmdpbi1ib3R0b206IDQwcHg7IHBhZGRpbmctdG9w -OiA4MHB4OyBoZWlnaHQ6IDElOyB9CgpkaXYudG9wYXJlYV9pbiB7IHdpZHRoOiA5NjBweDsgbWFy -Z2luOiAwcHggYXV0byAtMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1ib3R0 -b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMCwgMTgyLCAyMzgpOyB9 -CgpkaXYudG9wYXJlYV9pbi5ibm9uZSB7IGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IG1hcmdp -bi1ib3R0b206IDBweDsgfQoKZGl2LnRvcGFyZWFfaW4gYS5idF9sb2cyIHsgZGlzcGxheTogbm9u -ZTsgfQoKZGl2LnRvcGFyZWFfaW4gaDIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KCnAudGl0 -X2RlcyB7IGZvbnQtc2l6ZTogMTVweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1h -bGlnbjogYm90dG9tOyBtYXJnaW4tbGVmdDogMTBweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKSAh -aW1wb3J0YW50OyBtYXJnaW4tdG9wOiA4cHggIWltcG9ydGFudDsgfQoKcC50eHRfZGVzIHsgbGlu -ZS1oZWlnaHQ6IDE0MCU7IG1hcmdpbi10b3A6IDI3cHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6 -IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKZGl2LnRvcGFyZWEyIHsgYm9yZGVyLWJvdHRvbS1zdHls -ZTogbm9uZTsgbWFyZ2luLWJvdHRvbTogNDBweDsgcGFkZGluZy10b3A6IDgwcHg7IH0KCmRpdi50 -b3BhcmVhMiBkaXYudG9wYXJlYV9pbiB7IGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH0KCmRp -di50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBoMiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQoK -Ym9keS5tc2llNyBkaXYudG9wYXJlYTIgZGl2LnRvcGFyZWFfaW4gaDIgeyBkaXNwbGF5OiBpbmxp -bmU7IH0KCmRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBkaXYuaW1nIHsgbWFyZ2luLXRvcDog -MzBweDsgfQoKZGl2LnRvcGFyZWEyIGRpdi50b3BhcmVhX2luIGRpdi5pbWcgaW1nIHsgd2lkdGg6 -IDEwMCU7IH0KCmRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBzcGFuLnRpdF9kZXMyIHsgZGlz -cGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyBtYXJnaW4tbGVmdDog -MTBweDsgfQoKZGl2LmJnX2ludHJvIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfaW50cm8uZ2lmKTsgcGFkZGluZzogNTBweCAwcHggMHB4 -OyBoZWlnaHQ6IDMyMXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDBweDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmgyLnRpdF9pbnRybyB7IH0KCmRpdi5i -Z19pbnRybyBwIHsgbWFyZ2luLXRvcDogMzVweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdi -KDkzLCA5MywgOTMpOyB9CgpkaXYuYmdpbnRyb190eHQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdp -ZHRoOiA5NjBweDsgaGVpZ2h0OiAzMzhweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93 -d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdpbnRyb190eHQuZ2lmKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -CmRpdi5iZ2ludHJvX3R4dDIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiA5NjBweDsgaGVp -Z2h0OiAyNjJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYmdpbnRyb190eHQyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuYmdpbnRyb190 -eHQzIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAtMjIxcHg7IGZvbnQtc2l6ZTog -MTRweDsgfQoKZGl2LmJnaW50cm9fdHh0NCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDk2 -MHB4OyBoZWlnaHQ6IDI2MnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9iZ2ludHJvX3R4dDQuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -MHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5p -bnRyb190eHRhcmVhIHAudGl0IHsgY29sb3I6IHJnYig0OCwgMTU5LCAyMjgpOyBmb250LXNpemU6 -IDI4cHg7IG1hcmdpbi1ib3R0b206IDhweDsgfQoKZGl2LmludHJvX3R4dGFyZWEgcC5kZXMgeyBj -b2xvcjogcmdiKDYyLCA2MiwgNjIpOyBmb250LXNpemU6IDE4cHg7IG1hcmdpbi1ib3R0b206IDMw -cHg7IH0KCmRpdi5iZ2ludHJvX3R4dCBkaXYuaW50cm9fdHh0YXJlYSB7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgdG9wOiAzNXB4OyBsZWZ0OiAxODBweDsgZm9udC1zaXplOiAxNHB4OyB9CgpkaXYuYmdp -bnRyb190eHQyIGRpdi5pbnRyb190eHRhcmVhIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBw -eDsgbGVmdDogNDUwcHg7IGZvbnQtc2l6ZTogMTRweDsgfQoKZGl2LmJnaW50cm9fdHh0NCBkaXYu -aW50cm9fdHh0YXJlYSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0MHB4OyBsZWZ0OiA0NzBw -eDsgZm9udC1zaXplOiAxNHB4OyB9CgpkaXYuYm94X3NlY3Rpb24geyBvdmVyZmxvdzogaGlkZGVu -OyB3aWR0aDogMTAwJTsgfQoKZGl2LmxlZnRhcmVhIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0OC45 -NTgzMyU7IH0KCmRpdi5yaWdodGFyZWEgeyBmbG9hdDogcmlnaHQ7IHdpZHRoOiA0OC45NTgzMyU7 -IHRleHQtYWxpZ246IGxlZnQ7IH0KCmRpdi5pbnRyb192b2RhcmVhIHsgb3ZlcmZsb3c6IGhpZGRl -bjsgbWFyZ2luOiA1MHB4IDEwcHggMHB4OyB9CgpkaXYuaW50cm9fdm9kYXJlYSBkaXYubGVmdGFy -ZWEgeyB3aWR0aDogNDguOTU4MzMlOyB9CgpkaXYuaW50cm9fdm9kYXJlYSBkaXYucmlnaHRhcmVh -IHsgd2lkdGg6IDQ4Ljk1ODMzJTsgfQoKaDMgeyBmb250LXNpemU6IDI0cHg7IGNvbG9yOiByZ2Io -NjEsIDYxLCA2MSk7IG1hcmdpbi1ib3R0b206IDE5cHg7IH0KCmRpdi52b2RfYXJlYSB7IGJvcmRl -cjogMXB4IHNvbGlkIHJnYigyMDUsIDIwNSwgMjA1KTsgcGFkZGluZzogMTVweDsgbWFyZ2luLXRv -cDogMTBweDsgfQoKZGl2LmNvbnRyb2xfYXJlYSB7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlk -ZGVuOyBwYWRkaW5nLXRvcDogMTBweDsgfQoKZGl2LmNvbnRyb2xfYXJlYSBhLmJ0X3ZvZHJlYWQg -eyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3Vu -Zy5jby5rci9pbWFnZXMvYnRfdm9kcmVhZC5naWYpOyBwYWRkaW5nOiAwcHggMHB4IDBweCAxNnB4 -OyBmbG9hdDogbGVmdDsgbWFyZ2luLXRvcDogMTBweDsgY29sb3I6IHJnYig0OCwgMTYxLCAyMjgp -OyBmb250LXNpemU6IDE0cHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAycHg7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuY29udHJvbF9hcmVhIGEuYnRf -dm9kcmVhZDpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQoKZGl2LmNvbnRyb2xfYXJl -YSBhLmJ0X3ZvZGRvd24geyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfdm9kZG93bi5naWYpOyB3aWR0aDogMTE1 -cHg7IGhlaWdodDogMjVweDsgcGFkZGluZzogMTBweCAwcHggMHB4IDI2cHg7IGZsb2F0OiByaWdo -dDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgZm9udC1zaXplOiAxMnB4OyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CgpkaXYuY29udHJvbF9hcmVhIGEuYnRfdm9kZG93bjpob3ZlciB7IHRleHQt -ZGVjb3JhdGlvbjogbm9uZTsgfQoKZGl2LnZvZF9hcmVhIGltZyB7IHdpZHRoOiAxMDAlOyB9Cgpm -b290ZXIgeyB9CgpkaXYuZm9vdGVyX2luIHsgd2lkdGg6IDk2MHB4OyBtYXJnaW46IDBweCBhdXRv -OyBmb250LXNpemU6IDEycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxMzJweDsgfQoK -ZGl2LmZvb3Rlcl9vcGVuYXJlYSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNh -bXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3Rlcm9wZW4uZ2lmKTsgYmFja2dyb3VuZC1jb2xvcjog -cmdiKDcxLCA4NCwgMTIyKTsgaGVpZ2h0OiAzNzNweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBi -b3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDQ2LCA1NiwgODQp -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVh -dCBuby1yZXBlYXQ7IH0KCmRpdi5mb290ZXJfb3BlbiB7IHdpZHRoOiA5NjBweDsgaGVpZ2h0OiAz -NzVweDsgbWFyZ2luOiAwcHggYXV0bzsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlk -ZGVuOyB9CgpkaXYuZm9vdGVyX2Nsb3NlYXJlYSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw -Oi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3Rlcl9saW5lLmdpZik7IGJhY2tncm91 -bmQtcG9zaXRpb246IDBweCAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgcmVwZWF0OyB9 -CgpkaXYuZm9vdGVyX2Nsb3NlIHsgd2lkdGg6IDk2MHB4OyBtYXJnaW46IDBweCBhdXRvOyBmb250 -LXNpemU6IDEycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfZm9vdGVyX2xpbmVpbi5naWYpOyBvdmVy -ZmxvdzogaGlkZGVuOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4OyBiYWNrZ3JvdW5kLXJl -cGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmZvb3Rlcl9vcGVuIGEuYnRuX2Nsb3NlIHsg -ZGlzcGxheTogYmxvY2s7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J0X2tpbmRjbG9zZS5naWYp -OyBib3R0b206IDJweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnRvcF90aXRhcmVhIHsg -d2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw -Oi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3RlcnRpdC5naWYpOyBwYWRkaW5nLWJv -dHRvbTogNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTAwJTsgYmFja2dyb3VuZC1yZXBl -YXQ6IHJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi50b3BfdGl0YXJlYSBzcGFuLnNpdGVfa2luZCB7 -IG1hcmdpbjogMjBweCAwcHggMHB4OyBmb250LXNpemU6IDE0cHg7IGJhY2tncm91bmQ6IG5vbmU7 -IGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpzcGFuLnNpdGVf -a2luZCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3Rlcl9saW5lLmdp -Zik7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGhlaWdodDogMjNweDsgcGFkZGluZzogN3B4 -IDI1cHggMHB4IDBweDsgZm9udC1zaXplOiAxMnB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsg -Ym9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2IoMjEsIDI4 -LCA0Nik7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBy -ZXBlYXQgcmVwZWF0OyB9Cgpib2R5Lm1zaWU5IHNwYW4uc2l0ZV9raW5kIHsgcGFkZGluZy1yaWdo -dDogMjNweDsgfQoKZGl2LnNuc19pbmZvIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI3cHg7 -IHJpZ2h0OiAwcHg7IH0KCmRpdi5zbnNfaW5mbyBzcGFuIHsgY29sb3I6IHJnYigyNTUsIDI1NSwg -MjU1KTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDBweCAwcHggMHB4IDEwcHg7IH0K -CmRpdi5zbnNfaW5mbyBzcGFuIGltZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IG1hcmdp -bjogMHB4IDVweCAwcHggMHB4OyB9CgpkaXYuc2l0ZWJveCB7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3RlcmJveF9sZWZ0LmdpZik7 -IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCmRpdi5zaXRlYm94aW4geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19mb290ZXJib3hfcmlnaHQuZ2lmKTsgaGVp -Z2h0OiAyMDBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUg -MHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYS5hbGxfa2lu -ZCB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogNjhweDsgaGVpZ2h0OiAyMHB4OyBwYWRkaW5nOiA3 -cHggMHB4IDNweCAxMnB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyByaWdodDogMHB4 -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9i -dF9hbGx2aWV3LmdpZik7IGNvbG9yOiByZ2IoMTczLCAxODQsIDE5MSk7IGZvbnQtc2l6ZTogMTJw -eDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IHotaW5kZXg6IDEwOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0 -OyB9CgphLmFsbF9raW5kOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CgpkaXYuZnNl -Y3Rpb25fYXJlYSB7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tYm90dG9t -OiAzNnB4OyB9CgpkaXYuZmFtaWx5X3NlY3Rpb24geyBmbG9hdDogbGVmdDsgd2lkdGg6IDE5Ljc4 -JTsgcGFkZGluZzogMHB4OyBtYXJnaW46IDI1cHggMTVweCAwcHggMHB4OyB9CgpkaXYuZmFtaWx5 -X3NlY3Rpb24yIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAzNS45JTsgcGFkZGluZzogMHB4OyBtYXJn -aW46IDI1cHggMHB4IDBweDsgfQoKZGl2LmZhbWlseV9zZWN0aW9uIHNwYW4udGl0X2tpbmQsIGRp -di5mYW1pbHlfc2VjdGlvbjIgc3Bhbi50aXRfa2luZCB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 -NSk7IGZvbnQtc2l6ZTogMTRweDsgcGFkZGluZzogMXB4IDBweCAzcHggMzBweDsgZGlzcGxheTog -aW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CgpzcGFuLmljb19mb290ZXIgeyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9pY29f -Zm9vdGVyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMHB4OyBiYWNrZ3JvdW5kLXJl -cGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKc3Bhbi5pY29fZm9vdGVyMiB7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2ljb19mb290ZXIy -LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKc3Bhbi5pY29fZm9vdGVyMyB7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2ljb19mb290ZXIzLmdpZik7 -IGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVw -ZWF0IG5vLXJlcGVhdDsgfQoKc3Bhbi5pY29fZm9vdGVyNCB7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2ljb19mb290ZXI0LmdpZik7IGJhY2tn -cm91bmQtcG9zaXRpb246IDEwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5v -LXJlcGVhdDsgfQoKc3Bhbi5pY29fZm9vdGVyNSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw -Oi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2ljb19mb290ZXI1LmdpZik7IGJhY2tncm91bmQt -cG9zaXRpb246IDEwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKdWwuZmFtaWx5X2FsbHNpdGUgeyBwYWRkaW5nOiAxMHB4IDBweCAwcHg7IG1hcmdpbjog -MHB4IDE1cHggMHB4IDVweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKZGl2LmZhbWlseV9zZWN0aW9u -MiB1bC5mYW1pbHlfYWxsc2l0ZSB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNDAlOyB9Cgp1bC5mYW1p -bHlfYWxsc2l0ZSBsaSB7IGhlaWdodDogMTNweDsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5n -OiA0cHggMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9Cgp1bC5mYW1pbHlfYWxsc2l0ZSBsaSBhIHsg -Y29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgZm9udC1zaXplOiAxM3B4OyB9Cgp1bC5mYW1pbHlf -YWxsc2l0ZSBsaSBhOmhvdmVyIHsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoKZGl2LmJ0 -bV9hcmVhIHsgd2lkdGg6IDEwMCU7IGNsZWFyOiBib3RoOyB9CgpkaXYuZmFtaWx5X2xpbmsgeyBm -b250LXNpemU6IDEycHg7IH0KCmRpdi5mYW1pbHlfbGluayBzcGFuLnRpdCB7IGNvbG9yOiByZ2Io -MjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAyMHB4 -OyB9CgpkaXYuZmFtaWx5X2xpbmsgYSB7IGNvbG9yOiByZ2IoNTMsIDE5NywgMjE3KTsgZGlzcGxh -eTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9idV9mYW1pbHkucG5nKTsgcGFkZGluZzogMHB4IDE4cHggMHB4IDBweDsg -bWFyZ2luOiAwcHggMTJweCAwcHggMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDJweDsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmEuYnRuX2RldGFpbCB7 -IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDI1cHg7IGxl -ZnQ6IDEwM3B4OyB3aWR0aDogNzNweDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF9mb290ZXJkZXRhaWwuZ2lmKTsg -Y29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgcGFkZGluZzogNXB4IDBweCAwcHg7IGxldHRlci1z -cGFjaW5nOiAtMXB4OyBmb250LXNpemU6IDEycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dy -b3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVw -ZWF0IG5vLXJlcGVhdDsgfQoKYS5idG5fY2xvc2UgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDYw -cHg7IGhlaWdodDogMjBweDsgcGFkZGluZzogN3B4IDBweCAzcHggMTBweDsgcG9zaXRpb246IGFi -c29sdXRlOyBib3R0b206IDBweDsgcmlnaHQ6IDBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfYWxsdmlldy5naWYpOyBjb2xvcjogcmdi -KDE3MywgMTg0LCAxOTEpOyBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOiAtMXB4OyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CgpzcGFuLnNpdGVfYWxsa2luZCB7IGRpc3BsYXk6IG5vbmU7 -IH0KCmRpdi5zaXRlX3NlbCB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbGVmdDsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgd2lkdGg6IDc1cHg7IG1hcmdpbjogN3B4IDEwcHggMHB4IDE1cHg7 -IGZvbnQtc2l6ZTogMTJweDsgfQoKZGl2LnNpdGVfc2VsIGEuYnRfZnVwIHsgZGlzcGxheTogYmxv -Y2s7IHdpZHRoOiAxM3B4OyBoZWlnaHQ6IDdweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfZnVwLmdpZik7IHBvc2l0aW9uOiBhYnNvbHV0 -ZTsgdG9wOiA4cHg7IGxlZnQ6IDE4MHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuc2l0 -ZV9zZWwgYS5idF9mZG93biB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTNweDsgaGVpZ2h0OiA3 -cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2Vz -L2J0X2Zkb3duLmdpZik7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiA2cHg7IGxlZnQ6IDE4 -MHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVw -ZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuZmFtaWx5X3NpdGVhcmVhIHsgcG9zaXRp -b246IGFic29sdXRlOyBsZWZ0OiAxMDVweDsgd2lkdGg6IDkwJTsgb3ZlcmZsb3cteTogaGlkZGVu -OyBoZWlnaHQ6IDMwcHg7IH0KCnVsLmZhbWlseV9zaXRlIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoK -dWwuZmFtaWx5X3NpdGUgbGkgeyBmbG9hdDogbGVmdDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfZm9vdGVyYmFyLmdpZik7IHBhZGRpbmc6 -IDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgaGVpZ2h0OiAzMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiAwJSAxMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwu -ZmFtaWx5X3NpdGUgbGk6Zmlyc3QtY2hpbGQgeyBiYWNrZ3JvdW5kOiBub25lOyBwYWRkaW5nLWxl -ZnQ6IDBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC5mYW1pbHlfc2l0ZSBsaSBkaXYuZmFtaWx5 -X3NpdGVpbiB7IGhlaWdodDogMzBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9Cgp1bC5mYW1pbHlf -c2l0ZSBsaSBhIHsgY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgZGlzcGxheTogaW5saW5lLWJs -b2NrOyB3aWR0aDogMTIwcHg7IGZvbnQtc2l6ZTogMTJweDsgcGFkZGluZy1ib3R0b206IDVweDsg -aGVpZ2h0OiAyMHB4OyBsaW5lLWhlaWdodDogMzBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Cgp1 -bC5mYW1pbHlfc2l0ZSBsaSBhOmhvdmVyIHsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoK -YS5idF9raW5kcHJldiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDEwNnB4OyB9CgphLmJ0 -X2tpbmRuZXh0IHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDogODBweDsgfQoKZm9vdGVyIHAu -Y29weSB7IGNvbG9yOiByZ2IoMTExLCAxMzEsIDE0Myk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9w -OiA3MHB4OyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxNTAlOyB9Cgpmb290ZXIgcC5t -b2JpbGVfY29weSB7IGRpc3BsYXk6IG5vbmU7IH0KCmEuc2l0ZV9raW5kb3BlbiB7IGRpc3BsYXk6 -IG5vbmU7IH0KCnVsLmNvbW1vbl9tZW51IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQwcHg7 -IGxlZnQ6IDBweDsgfQoKdWwuY29tbW9uX21lbnUgbGkgeyBmbG9hdDogbGVmdDsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfY29tbW9uLmdp -Zik7IHBhZGRpbmc6IDBweCAxMnB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAycHg7IGJhY2tn -cm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5jb21tb25fbWVudSBsaTpm -aXJzdC1jaGlsZCB7IGJhY2tncm91bmQ6IG5vbmU7IHBhZGRpbmctbGVmdDogMHB4OyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFs -IGluaXRpYWw7IH0KCnVsLmNvbW1vbl9tZW51IGxpIGEgeyBjb2xvcjogcmdiKDgwLCA4MCwgODAp -OyBmb250LXdlaWdodDogNjAwOyBwYWRkaW5nLWJvdHRvbTogNHB4OyB9CgpkaXYuc25zX2FyZWEg -eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNDBweDsgcmlnaHQ6IDBweDsgY29sb3I6IHJnYigx -MjIsIDEyMiwgMTIyKTsgfQoKZGl2LnNuc19hcmVhIHNwYW4geyBkaXNwbGF5OiBibG9jazsgd2lk -dGg6IDkycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOiAwcHggMHB4IDE0cHg7IH0KCmRp -di5zbnNfYXJlYSBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9Cgpib2R5Lm1zaWUgZGl2LnNu -c19hcmVhIGEgeyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjU1LCAyNTUsIDI1NSk7IH0KCmRpdi5z -bnNfYXJlYSBhIGltZyB7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IH0KCmRpdi5mb290ZXJf -Y2xvc2UgZGl2LnNuc19sYXllciB7IG1hcmdpbjogMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0K -CmRpdi5mb290ZXJfb3BlbiBkaXYuc25zX2xheWVyIHsgbWFyZ2luOiA0cHggMHB4IDBweDsgfQoK -ZGl2LnNuc19sYXllciBhIHsgaGVpZ2h0OiAyMHB4OyBtYXJnaW46IDBweCAycHg7IGxpbmUtaGVp -Z2h0OiAwOyB3aWR0aDogMjBweCAhaW1wb3J0YW50OyB9CgpkaXYuc25zX2xheWVyIGEgaW1nIHsg -d2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgfQoKYS5tX2FsbHZpZXcgeyBkaXNwbGF5OiBub25l -OyB9CgpkaXYuYmdfbm90aWNlIHsgcGFkZGluZzogMHB4IDBweCAxNXB4OyB9Cgp0YWJsZS5ub3Rp -Y2VfbGlzdCB7IHdpZHRoOiAxMDAlOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3At -c3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTc0LCAxODUsIDE5MSk7IGZvbnQt -c2l6ZTogMTNweDsgfQoKdGFibGUubm90aWNlX2xpc3QgdGhlYWQgdGggeyBmb250LXdlaWdodDog -NjAwOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdl -cy9idV90YmwuZ2lmKTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBwYWRk -aW5nOiAxMXB4IDBweCAxMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTNweDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnRhYmxlLm5vdGljZV9saXN0IHRo -ZWFkIHRoOmZpcnN0LWNoaWxkIHsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlv -bjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9 -Cgp0YWJsZS5ub3RpY2VfbGlzdCB0ZCB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMTFw -eCAwcHggMTBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9Cgp0YWJs -ZS5ub3RpY2VfbGlzdCB0ZC5sZWZ0IHsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZy1sZWZ0OiAx -MHB4OyB9Cgp0YWJsZS5ub3RpY2VfbGlzdCB0ZCBlbS5kYXRlIHsgZGlzcGxheTogbm9uZTsgfQoK -ZGl2LnBhZ2luZyB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMjBweDsgfQoKZGl2 -LnBhZ2luZyBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAxcHggMHB4OyB3aWR0 -aDogMjJweDsgaGVpZ2h0OiAyMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDcyLCAx -MjksIDE2Mik7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IC0wLjE1ZW07IG1hcmdp -bjogMHB4IDJweDsgfQoKZGl2LnBhZ2luZyBhOmhvdmVyIHsgY29sb3I6IHJnYig3MiwgMTI5LCAx -NjIpOyB9CgpkaXYucGFnaW5nIGEucHJldiB7IG1hcmdpbjogMHB4IDdweCAwcHggMHB4OyBwYWRk -aW5nOiAwcHg7IHdpZHRoOiAyMXB4OyBoZWlnaHQ6IDIycHg7IH0KCmRpdi5wYWdpbmcgYS5wcmV2 -MiB7IHBhZGRpbmc6IDBweDsgd2lkdGg6IDI1cHg7IGhlaWdodDogMjJweDsgfQoKZGl2LnBhZ2lu -ZyBhLm5leHQgeyBtYXJnaW46IDBweCAwcHggMHB4IDdweDsgcGFkZGluZzogMHB4OyB3aWR0aDog -MjFweDsgaGVpZ2h0OiAyMnB4OyB9CgpkaXYucGFnaW5nIGEubmV4dDIgeyBwYWRkaW5nOiAwcHg7 -IHdpZHRoOiAyNXB4OyBoZWlnaHQ6IDIycHg7IH0KCmRpdi5wYWdpbmcgYS5vbiB7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3BhZ2luZ29u -LmdpZik7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246IDBw -eCAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYucGFn -aW5nIHNwYW4udG90YWwgeyBkaXNwbGF5OiBub25lOyB9CgpkaXYubW92aWVfb3V0ZXIgeyB3aWR0 -aDogNDAwcHg7IGhlaWdodDogMzAwcHg7IG1hcmdpbi1ib3R0b206IDE1cHg7IH0KCmRsLmxpc3Rf -dmlldyB7IHdpZHRoOiAxMDAlOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5 -bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTc0LCAxODUsIDE5MSk7IGJvcmRlci1i -b3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0 -b20tY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgb3ZlcmZsb3c6 -IGhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwgMjQ5LCAyNDkpOyBmb250LXNpemU6 -IDE1cHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGwubGlzdF92aWV3IGR0LnRpdCB7IGZsb2F0OiBs -ZWZ0OyB3aWR0aDogMTAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDExcHggMHB4IDEw -cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksIDI0OSwgMjQ5KTsgZm9udC1zaXplOiAxM3B4 -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBpbml0aWFsIGluaXRpYWw7IH0KCmRsLmxpc3RfdmlldyBkZC5zdWIgeyBmbG9hdDogbGVmdDsg -d2lkdGg6IDY1JTsgcGFkZGluZzogMTFweCAwcHggMTBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdi -KDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRsLmxpc3RfdmlldyBkdC50aXRf -ZGF0ZSB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRp -bmc6IDExcHggMHB4IDEwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksIDI0OSwgMjQ5KTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDog -aW5pdGlhbCBpbml0aWFsOyB9CgpkbC5saXN0X3ZpZXcgZGQuZGF0ZSB7IGZsb2F0OiBsZWZ0OyB3 -aWR0aDogMTUlOyBmb250LXdlaWdodDogbm9ybWFsOyBwYWRkaW5nOiAxMXB4IDBweCAxMHB4OyBi -YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoK -ZGwubGlzdF92aWV3IGRkIHNwYW4geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMHB4 -IDEwcHg7IH0KCmRpdi52aWV3X2luZm8geyBwYWRkaW5nOiAyNXB4IDBweDsgZm9udC1zaXplOiAx -NXB4OyBsaW5lLWhlaWdodDogMTUwJTsgfQoKZGl2LnZpZXdfaW5mbyBwLnNjcm9sbF9hcmVhIHsg -b3ZlcmZsb3cteTogc2Nyb2xsOyBvdmVyZmxvdy14OiBoaWRkZW47IGhlaWdodDogMTAwcHg7IG1h -cmdpbi10b3A6IDE1cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMjEsIDIyMSwgMjIxKTsgcGFk -ZGluZzogMTBweDsgfQoKZGl2LnZpZXdfaW5mbyBoMyB7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2lu -OiAwcHggMHB4IDEwcHg7IH0KCmRpdi52aWV3X2luZm8gdWwgeyBtYXJnaW4tYm90dG9tOiAyNXB4 -OyB9CgpkaXYudmlld19pbmZvIHVsLmxpc3Rfc3R5bGUgeyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9 -CgpkaXYudmlld19pbmZvIHVsLmxpc3Rfc3R5bGUgbGkgeyBwYWRkaW5nLWxlZnQ6IDdweDsgYmFj -a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfZG90 -Mi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi52aWV3X2luZm8gcCB7IG1hcmdpbi1ib3R0b206 -IDEwcHg7IH0KCmRpdi52aWV3X2luZm8gZGwgeyB9CgpkaXYudmlld19pbmZvIGRsIGR0IHsgfQoK -ZGl2LnZpZXdfaW5mbyBkbCBkZCB7IHBhZGRpbmc6IDBweCAwcHggMHB4IDE1cHg7IGZvbnQtc2l6 -ZTogMTNweDsgfQoKZGl2LnZpZXdfaW5mbyB0YWJsZSB7IHdpZHRoOiAxMDAlOyBib3JkZXItYm90 -dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9t -LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCmRpdi52aWV3X2luZm8gdGFibGUgdGgsIGRp -di52aWV3X2luZm8gdGFibGUgdGQgeyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3At -c3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRl -ci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQt -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiA1 -cHggMHB4OyB9CgpkaXYudmlld19pbmZvIHRhYmxlIHRoIHsgYmFja2dyb3VuZC1jb2xvcjogcmdi -KDI0OSwgMjQ5LCAyNDkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi52aWV3X2luZm8gdGFibGUg -dGQgeyB9CgpkaXYudmlld19pbmZvIHRhYmxlIHRyIHRoOmZpcnN0LWNoaWxkLCBkaXYudmlld19p -bmZvIHRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHsgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7IH0K -CmRpdi52aWV3X2luZm8gdGFibGUgdHIgdGgubGVmdExpbmUsIGRpdi52aWV3X2luZm8gdGFibGUg -dHIgdGQubGVmdExpbmUgeyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHls -ZTogc29saWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCmRpdi52 -aWV3X2luZm8gdGFibGUgLmxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9CgpkbC5yZWxhdGVkX25l -d3MgeyBtYXJnaW46IDQwcHggMHB4IDE1cHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IH0K -CmRsLnJlbGF0ZWRfbmV3cyBkdCB7IG1hcmdpbi1ib3R0b206IDVweDsgZm9udC13ZWlnaHQ6IDYw -MDsgZm9udC1zaXplOiAxNXB4OyB9CgpkbC5yZWxhdGVkX25ld3MgZGQgeyBwYWRkaW5nLWxlZnQ6 -IDExcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2NvbW1vbi9iZ19yZWxhdGVkX2Jhci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAycHgg -OXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGwucmVsYXRl -ZF9uZXdzIGRkIGEgeyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyB9CgpwLnRhZ19hcmVhIHsg -b3ZlcmZsb3c6IGhpZGRlbjsgZm9udC1zaXplOiAxMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7 -IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUs -IDIyNSk7IHBhZGRpbmc6IDEwcHggMHB4OyBjb2xvcjogcmdiKDcyLCAxMjksIDE2Mik7IH0KCnAu -dGFnX2FyZWEgc3Bhbi50YWduYW1lIHsgZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQtY29sb3I6IHJn -Yig1MywgMTk3LCAyMTcpOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBtYXJnaW4tcmlnaHQ6 -IDVweDsgcGFkZGluZzogMnB4IDBweCAxcHg7IHdpZHRoOiAzNXB4OyB0ZXh0LWFsaWduOiBjZW50 -ZXI7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBl -YXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKcC50YWdfYXJlYSBzcGFuLnRhZ19saXN0IHsgb3ZlcmZs -b3c6IGhpZGRlbjsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDFweDsgfQoKcC50YWdfYXJl -YSBhIHsgY29sb3I6IHJnYig3MiwgMTI5LCAxNjIpOyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoK -ZGwucHJldl9saXN0IHsgd2lkdGg6IDEwMCU7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9y -ZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIy -NSwgMjI1KTsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwgMjQ5 -LCAyNDkpOyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5p -dGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGwucHJldl9saXN0 -IGR0IHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAxMCU7IHBhZGRpbmc6IDEwcHggMHB4IDExcHg7IGJh -Y2tncm91bmQtY29sb3I6IHJnYigyNDksIDI0OSwgMjQ5KTsgZm9udC13ZWlnaHQ6IDYwMDsgYm9y -ZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1j -b2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KCmRsLnByZXZfbGlzdCBkdCBzcGFuLnByZXYgeyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IG1hcmdpbjogMHB4IDEwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v -d3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2xpc3RwcmV2LmdpZik7IHBhZGRpbmctcmlnaHQ6 -IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgN3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGwucHJldl9saXN0IGR0IHNwYW4ubmV4dCB7IGRpc3Bs -YXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiAwcHggMTBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfbGlzdG5leHQuZ2lmKTsgcGFkZGlu -Zy1yaWdodDogMjBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA3cHg7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkbC5wcmV2X2xpc3QgZGQgeyBvdmVyZmxv -dzogaGlkZGVuOyBwYWRkaW5nOiAxMXB4IDBweCAxMHB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7 -IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUs -IDIyNSk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0 -aWFsOyB9CgpkbC5wcmV2X2xpc3QgZGQgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2lu -LWxlZnQ6IDEwcHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IH0KCmRsLnByZXZfbGlzdCBk -ZCBzcGFuLmRhdGUgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2xpc3RiYXIuZ2lmKTsgcGFkZGlu -Zy1sZWZ0OiAxMXB4OyBtYXJnaW4tbGVmdDogMTBweDsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5 -KTsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAycHg7IGJh -Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYjbGl2ZXJlQ29udGFp -bmVyIHsgbWFyZ2luOiAxNXB4IDBweCAwcHg7IH0KCmRpdi5idG5fYXJlYSB7IHdpZHRoOiAxMDAl -OyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tdG9wOiAyMHB4OyB9CgpzcGFuLmJ0biB7IGRpc3Bs -YXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3Vu -Zy5jby5rci9pbWFnZXMvYmdfYnRsZWZ0LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDBw -eDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnNwYW4uYnRuIGEg -eyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDRweCAxNnB4IDBweCAxcHg7IGhlaWdo -dDogMjRweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvYmdfYnRyaWdodC5naWYpOyBjb2xvcjogcmdiKDcyLCAxMjksIDE2Mik7IGZvbnQtd2Vp -Z2h0OiA2MDA7IG1hcmdpbi1sZWZ0OiAxNnB4OyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQt -cG9zaXRpb246IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKc3Bhbi5idG4gYTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Cgpz -cGFuLmJ0biBhOmZvY3VzIHsgb3V0bGluZS1zdHlsZTogbm9uZTsgfQoKZGl2LmJ0bl9jZW4geyB0 -ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6IDMwcHg7IH0KCnNwYW4uYnRuX2IgeyBkaXNw -bGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2JnX2JidGxlZnQuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUg -MHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKc3Bhbi5idG5f -YiBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiA4cHggMThweCAwcHggMTVweDsg -aGVpZ2h0OiAyOHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNv -LmtyL2ltYWdlcy9iZ19iYnRyaWdodC5naWYpOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBt -YXJnaW4tbGVmdDogNHB4OyBmb250LXNpemU6IDE1cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJhY2tn -cm91bmQtcG9zaXRpb246IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5v -LXJlcGVhdDsgfQoKc3Bhbi5idG5fYiBhOmZvY3VzIHsgb3V0bGluZS1zdHlsZTogbm9uZTsgfQoK -c3Bhbi5idG5fdyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfd2J0bGVmdC5naWYpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CgpzcGFuLmJ0bl93IGEgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDhw -eCAxOHB4IDBweCAxNXB4OyBoZWlnaHQ6IDI4cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw -Oi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3didHJpZ2h0LmdpZik7IGNvbG9yOiByZ2Io -MTExLCAxMzEsIDE0Myk7IG1hcmdpbi1sZWZ0OiA0cHg7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13 -ZWlnaHQ6IDYwMDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwcHg7IGJhY2tncm91bmQtcmVw -ZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpzcGFuLmJ0bl93IGE6Zm9jdXMgeyBvdXRsaW5l -LXN0eWxlOiBub25lOyB9CgpzcGFuLmJ0bl90YmwgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3Ri -dGxlZnQuZ2lmKTsgcGFkZGluZzogMHB4IDBweCAwcHggN3B4OyB2ZXJ0aWNhbC1hbGlnbjogbWlk -ZGxlOyBsaW5lLWhlaWdodDogMTAwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMHB4OyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKc3Bhbi5idG5fdGJsIGEgeyBk -aXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNh -bXN1bmcuY28ua3IvaW1hZ2VzL2JnX3RidHJpZ2h0LmdpZik7IHBhZGRpbmc6IDRweCA3cHggMXB4 -IDBweDsgaGVpZ2h0OiAxNnB4OyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAxMDAlOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCnNwYW4uYnRuX3RibCBhLm9uIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29s -b3I6IHJnYigxMywgMTIzLCAxOTEpOyB9CgpzcGFuLmJ0bl90YmwgYTpmb2N1cyB7IG91dGxpbmUt -c3R5bGU6IG5vbmU7IH0KCnNwYW4uYnRuX2JsdWUgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0 -bi5naWYpOyBwYWRkaW5nOiAwcHggMHB4IDBweCAxNnB4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxl -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpzcGFuLmJ0bl9ibHVlIGEgeyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3Iv -aW1hZ2VzL2JnX2J0bi5naWYpOyBwYWRkaW5nOiA0cHggMTZweCAwcHggMHB4OyBoZWlnaHQ6IDI0 -cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZvbnQtc2l6 -ZTogMTNweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpzcGFuLmJ0bl9ibHVlIGE6Zm9jdXMgeyBvdXRsaW5l -LXN0eWxlOiBub25lOyB9CgpzcGFuLmJ0bl9jaGVjayB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdf -YnRuMi5naWYpOyBwYWRkaW5nOiAwcHggMHB4IDBweCAxNnB4OyB2ZXJ0aWNhbC1hbGlnbjogbWlk -ZGxlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTY0cHg7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CgpzcGFuLmJ0bl9jaGVjayBhIHsgZGlzcGxheTogaW5saW5l -LWJsb2NrOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9iZ19idG4yLmdpZik7IHBhZGRpbmc6IDRweCAzMHB4IDBweCAwcHg7IGhlaWdodDogMjRw -eDsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxM3B4OyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiAxMDAlIC02NHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoK -c3Bhbi5idG5fY2hlY2sgYTpmb2N1cyB7IG91dGxpbmUtc3R5bGU6IG5vbmU7IH0KCi5idG5fYl9h -cnJvdyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1sZWZ0OiAxNnB4OyBiYWNrZ3Jv -dW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4yLmdp -Zik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl -cGVhdCBuby1yZXBlYXQ7IH0KCi5idG5fYl9hcnJvdyBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRp -bmc6IDRweCAyOXB4IDBweCAwcHg7IGhlaWdodDogMjRweDsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRuMi5naWYpOyBmb250LXdlaWdo -dDogNjAwOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXNpemU6IDEzcHg7IGJhY2tn -cm91bmQtcG9zaXRpb246IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5v -LXJlcGVhdDsgfQoKLmJ0bl9tb3JlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWxl -ZnQ6IDJweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4OyBib3JkZXItdG9wLXJpZ2h0LXJh -ZGl1czogMnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9t -LWxlZnQtcmFkaXVzOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDog -aW5pdGlhbCBpbml0aWFsOyB9CgouYnRuX21vcmUgYSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5n -OiAycHggMTBweCAwcHggMzJweDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4uZ2lmKTsgZm9udC1zaXplOiAx -MnB4OyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHgg -LTM4NnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmJ0bl9j -bG9zZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfY2xvc2UuZ2lmKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -Ci5idG5fY2xvc2UgYSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAycHggMTBweCAwcHggMjNw -eDsgaGVpZ2h0OiAyMHB4OyBmb250LXNpemU6IDEycHg7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 -NSk7IH0KCnAubm90aWNlX21lbnQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5z -YW1zdW5nLmNvLmtyL2ltYWdlcy9idV9ub3RpY2UuZ2lmKTsgYmFja2dyb3VuZC1jb2xvcjogcmdi -KDI1MiwgMjUyLCAyNTApOyBwYWRkaW5nOiAyMHB4IDE1cHggMjBweCA1NXB4OyBib3JkZXI6IDFw -eCBzb2xpZCByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDsg -Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6 -IDJweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4OyBtYXJnaW46IDBweCAwcHggMTVw -eDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTVweCA1MCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y -ZXBlYXQgbm8tcmVwZWF0OyB9CgpwLnVzZV9tZW50IHsgbWFyZ2luLXRvcDogMjBweDsgfQoKcC51 -c2VfbWVudCBhIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB9CgpwLmVzc2VuX21lbnQgeyB0 -ZXh0LWFsaWduOiByaWdodDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CgpwLmVzc2VuX21lbnQgaW1n -IHsgbWFyZ2luOiAtMnB4IDRweCAwcHggMHB4OyB9CgpwLmRlc2MgeyBtYXJnaW4tYm90dG9tOiAx -NnB4OyBsaW5lLWhlaWdodDogMTUwJTsgfQoKcC5kZXNjMiB7IHRleHQtYWxpZ246IHJpZ2h0OyBt -YXJnaW46IDhweCAwcHg7IH0KCnAuZGVzYzMgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyBmb250LXNp -emU6IDE1cHg7IH0KCmRsLnRibF90eXBlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6 -IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUs -IDIyNSwgMjI1KTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkbC50 -YmxfdHlwZTo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3Ro -OyB9CgpkbC50YmxfdHlwZSBkdCB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTglOyBib3JkZXItdG9w -LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBy -Z2IoMjI1LCAyMjUsIDIyNSk7IHBhZGRpbmc6IDEwcHggMTBweCAwcHggMjBweDsgZm9udC13ZWln -aHQ6IDYwMDsgfQoKZGwudGJsX3R5cGUgZHQgaW1nIHsgbWFyZ2luOiAwcHggNnB4IDBweCAtMTBw -eDsgfQoKZGwudGJsX3R5cGUgZHQgZW0geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi10 -b3A6IDRweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfQoKZGwudGJsX3R5cGUgZHQuYmxpbmQgKyBk -ZCB7IHBhZGRpbmctbGVmdDogMjBweDsgfQoKZGwudGJsX3R5cGUgZGQgeyBvdmVyZmxvdzogaGlk -ZGVuOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3Jk -ZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IHBhZGRpbmc6IDdweCAwcHg7IH0KCmRs -LnRibF90eXBlIGRkLnZpc2libGUgeyBvdmVyZmxvdzogdmlzaWJsZTsgfQoKZGwudGJsX3R5cGUg -ZGQgLmlucHV0IHsgbWFyZ2luLXJpZ2h0OiAzMnB4OyB9CgpkbC50YmxfdHlwZSBkZCAuaW5wdXQg -c3Bhbi5wb3N0X2J0biB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKZGwudGJsX3R5cGUgZGQgLmlu -cHV0IHNwYW4ucG9zdF9kZXRhaWwgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogN3B4OyB9 -CgpkbC50YmxfdHlwZSBkZCBwLnRibF9tZW50IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJn -aW46IDFweCAwcHggMHB4IDhweDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgZm9udC1zaXplOiAx -MXB4OyBjb2xvcjogcmdiKDE1OCwgMTAxLCAyMSk7IH0KCmRsLnRibF90eXBlIGRkIHVsLnNuc19s -aXN0IHsgbWFyZ2luLWxlZnQ6IDIwM3B4OyB9CgpkbC50YmxfdHlwZSBkZCB1bC5zbnNfbGlzdCBs -aS50d2l0dGVyIHAgeyBwYWRkaW5nOiAwcHggMHB4IDBweCAyNHB4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF90dy5naWYpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CgpkbC50YmxfdHlwZSBkZCB1bC5zbnNfbGlzdCBsaS5mYWNlYm9vayB7IG1hcmdpbi10 -b3A6IDdweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkbC50YmxfdHlwZSBkZCB1 -bC5zbnNfbGlzdCBsaS5mYWNlYm9vayBwIHsgcGFkZGluZzogN3B4IDBweCAwcHggMjRweDsgYmFj -a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfZmFj -ZWJvb2suZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgN3B4OyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGwudGJsX3R5cGUgZGQgdWwuc25zX2xpc3QgbGkg -c3Bhbi5idG5fYXJlYSB7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkx -KTsgfQoKZGwudGJsX3R5cGUgZGQgdWwuc25zX2xpc3QgbGkgZGl2LmJ0bl9hcmVhIHsgbWFyZ2lu -LXRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsgfQoKZGwudGJsX3R5cGUgZGQgdWwuc25zX2xp -c3QgbGkgc3Bhbi5idG5fYXJlYSBhIHsgbWFyZ2luOiAwcHggN3B4IDBweCA0cHg7IH0KCmRsLnRi -bF90eXBlIGRkIHVsLnNuc19saXN0IGxpIHNwYW4uYnRuX2FyZWEgZW0geyBmb250LXdlaWdodDog -bm9ybWFsOyBmb250LXNpemU6IDExcHg7IH0KCmRsLnRibF90eXBlIGRkIHVsLmxpbmVfdHlwZSB7 -IG1hcmdpbjogLTdweCAwcHg7IH0KCmRsLnRibF90eXBlIGRkIHVsLmxpbmVfdHlwZSBsaSB7IGJv -cmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3At -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFkZGluZzogN3B4IDBweDsgfQoKZGwudGJsX3R5 -cGUgZGQgdWwubGluZV90eXBlIGxpOmZpcnN0LWNoaWxkIHsgYm9yZGVyOiBub25lOyB9CgpkbC50 -YmxfdHlwZSBkZCB1bC5saW5lX3R5cGUgbGkgbGFiZWwgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 -IHdpZHRoOiA3MHB4OyB9CgpkbC50YmxfdHlwZSBkZCBsYWJlbC5hZ3JlZSB7IGNvbG9yOiByZ2Io -MTMsIDEyMywgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGwudGJsX3R5cGUgZGQgcC5saW1p -dCB7IG1hcmdpbjogMTBweCAxMHB4IDBweCAwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyBjb2xvcjog -cmdiKDEwNCwgMTE2LCAxMjkpOyB9CgpkbC50YmxfdHlwZSBkZCBzcGFuLmNvbnRyb2wgbGFiZWwg -eyBtYXJnaW4tcmlnaHQ6IDIwcHg7IH0KCi5ib3hfdHlwZSB7IGJvcmRlcjogMXB4IHNvbGlkIHJn -YigyMjUsIDIyNSwgMjI1KTsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyBib3JkZXItdG9w -LXJpZ2h0LXJhZGl1czogM3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4OyBib3Jk -ZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IGhlaWdodDogMSU7IGJhY2tncm91bmQtY29sb3I6 -IHJnYigyNTIsIDI1MiwgMjUwKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgoudHh0X2JsdWUgeyBjb2xv -cjogcmdiKDEzLCAxMjMsIDE5MSkgIWltcG9ydGFudDsgfQoKLnR4dF9wb2ludCB7IGNvbG9yOiBy -Z2IoMTU4LCAxMDEsIDIxKSAhaW1wb3J0YW50OyB9CgoudXNlciBpbnB1dFt0eXBlPSJ0ZXh0Il0g -eyB3aWR0aDogOThweDsgfQoKLmVtYWlsIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOiA5OHB4 -OyB9CgoucGhvbmUgaW5wdXRbdHlwZT0idGV4dCJdIHsgd2lkdGg6IDU4cHg7IH0KCi5wb3N0IGlu -cHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOiA1OHB4OyB9CgoucG9zdCBzcGFuLnBvc3RfZGV0YWls -IGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOiAxOThweDsgfQoKLnBhc3N3b3JkIGlucHV0W3R5 -cGU9InBhc3N3b3JkIl0geyB3aWR0aDogOThweDsgfQoKZGl2LmJnX3N1YnNjcmliZSB7IHBhZGRp -bmc6IDBweCAwcHggMTVweDsgfQoKZGl2LnNjcm9sbF9ib3ggeyBtYXJnaW46IDBweCAxMHB4IDVw -eCAwcHg7IHBhZGRpbmc6IDJweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIyNSwgMjI1LCAyMjUp -OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAyNTIsIDI1MCk7IH0KCmRpdi5zY3JvbGxfYm94 -IGRsLnRlcm1zIHsgb3ZlcmZsb3cteTogc2Nyb2xsOyBoZWlnaHQ6IDg3cHg7IHBhZGRpbmc6IDEw -cHggOXB4OyBsaW5lLWhlaWdodDogMTUwJTsgfQoKZGl2LnNjcm9sbF9ib3ggZGwudGVybXMgZHQg -eyBwYWRkaW5nOiAwcHg7IGZsb2F0OiBub25lOyBmb250LXdlaWdodDogbm9ybWFsOyBib3JkZXI6 -IG5vbmU7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH0KCmRpdi5zY3JvbGxfYm94IGRsLnRlcm1z -IGRkIHsgcGFkZGluZzogMHB4OyBib3JkZXI6IG5vbmU7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7 -IH0KCmRpdi5zY3JvbGxfYm94IGRsLnRlcm1zIGRkID4gZGwgeyBtYXJnaW4tdG9wOiAxMHB4OyB9 -CgpkaXYuc2Nyb2xsX2JveCBkbC50ZXJtcyBkZCA+IGRsIGRkIHsgbWFyZ2luOiAxMHB4IDBweDsg -fQoKZGl2LnNjcm9sbF9ib3ggZGwudGVybXMgZGQgPiBkbCBkZCBvbCBsaSB7IG1hcmdpbjogM3B4 -IDBweDsgfQoKc3Bhbi5tb3JlIHsgZGlzcGxheTogbm9uZTsgfQoKdWwuc3Vic2NyaWJlX2xpc3Qg -bGkgeyBkaXNwbGF5OiBpbmxpbmU7IH0KCnVsLnN1YnNjcmliZV9saXN0IGxpIGEucW5hIHsgbWFy -Z2luOiAwcHggMzBweCAwcHggMnB4OyB9CgpkaXYubm90aWNlIHsgcGFkZGluZzogMHB4IDUwcHgg -MHB4IDE2OXB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci10 -b3AtbGVmdC1yYWRpdXM6IDJweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDsgYm9yZGVy -LWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4 -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9i -Z19ub3RpY2UuZ2lmKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MiwgMjUyLCAyNTApOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiA4cHggMTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KCmRpdi5ub3RpY2UgZGwgeyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiAz -MHB4IDBweDsgfQoKZGl2Lm5vdGljZSBkbCBkdCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9CgpkaXYu -bm90aWNlIGRsIGRkIHsgd2lkdGg6IGF1dG87IG1hcmdpbi10b3A6IDZweDsgcGFkZGluZzogMHB4 -IDIlIDBweCAwcHg7IH0KCmRpdi5ub3RpY2UgZGwgZGQuZmwgeyBmbG9hdDogbGVmdDsgd2lkdGg6 -IDQ3JTsgfQoKZGl2Lm5vdGljZSBkbCBkZCB1bCB7IG1hcmdpbi1sZWZ0OiAtMSU7IH0KCmRpdi5u -b3RpY2UgZGwgZGQgdWwgbGkgeyBtYXJnaW4tdG9wOiAzcHg7IHBhZGRpbmctbGVmdDogOXB4OyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV9i -YXIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgOXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnN1YnNjcmliZV9jYW5jZWwgeyBwYWRkaW5nOiAz -MHB4IDBweDsgYm9yZGVyLXRvcC13aWR0aDogMnB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3JkZXItYm90dG9tLXdpZHRo -OiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiBy -Z2IoMjI1LCAyMjUsIDIyNSk7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKZGl2LnN1YnNjcmliZV9j -YW5jZWwgcC50eHQgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyBjb2xvcjogcmdiKDIzMCwgMCwgMTEw -KTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMTUwJTsg -fQoKZGl2LnNjcm9sbF9ib3ggZGwudGVybXMgLnRlcm1zX2ZpdmVfdGl0bGUgeyBtYXJnaW4tdG9w -OiAxMHB4OyB9CgpkaXYuc2Nyb2xsX2JveCBkbC50ZXJtcyAudGVybXNfZml2ZSB7IG1hcmdpbjog -MHB4IDBweCAxMHB4OyB9CgpkaXYuc2Nyb2xsX2JveCBkbC50ZXJtcyAudGVybXNfZml2ZV90Ymwg -eyBtYXJnaW46IDBweCAwcHggMTVweDsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKZGl2 -LnNjcm9sbF9ib3ggZGwudGVybXMgLnRlcm1zX2ZpdmVfdGJsIHRhYmxlIHsgbWFyZ2luOiAwcHgg -MHB4IDE1cHg7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB9CgpkaXYu -c2Nyb2xsX2JveCBkbC50ZXJtcyAudGVybXNfZml2ZV90YmwgdGFibGUgdGggeyBoZWlnaHQ6IDMy -cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWlnaHQ6IDYwMDsgYm9yZGVyLXdpZHRoOiAx -cHg7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci1jb2xvcjogcmdiKDY4LCAyMDEsIDI0Nikg -cmdiKDIxMSwgMjE3LCAyMjcpIHJnYigyMTEsIDIxNywgMjI3KTsgY29sb3I6IHJnYig2MywgNjYs -IDcyKTsgfQoKZGl2LnNjcm9sbF9ib3ggZGwudGVybXMgLnRlcm1zX2ZpdmVfdGJsIHRhYmxlIHRk -IHsgcGFkZGluZzogN3B4IDBweCA2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyOiAxcHgg -c29saWQgcmdiKDIxMSwgMjE3LCAyMjcpOyB9CgpkaXYuc2Nyb2xsX2JveCBkbC50ZXJtcyAudGVy -bXNfZml2ZV9uIHsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IH0KCmRpdi5i -Z19jdXN0b21lciB7IHBhZGRpbmc6IDBweCAwcHggMTVweDsgfQoKcC5jb21tZW50IHsgbWFyZ2lu -LXRvcDogMzBweDsgY29sb3I6IHJnYig0MiwgMTQxLCAyMDIpOyBmb250LXdlaWdodDogNjAwOyB0 -ZXh0LWFsaWduOiBjZW50ZXI7IH0KCi5sYXlfaGVscCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlz -cGxheTogaW5saW5lOyB9CgoubGF5X2hlbHAgYS5xbmEgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 -IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KCi5sYXlfaGVscCAudHh0X2hlbHAgeyBkaXNwbGF5OiBu -b25lOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IC0xMDlweDsgdG9wOiAyNXB4OyB3aWR0aDog -MjMwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMTksIDIxOSwgMjE5KTsgYm9yZGVyLXRvcC1s -ZWZ0LXJhZGl1czogMXB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXB4OyBib3JkZXItYm90 -dG9tLXJpZ2h0LXJhZGl1czogMXB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxcHg7IGZv -bnQtc2l6ZTogMTFweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MCwgMjUwLCAyNTApOyBib3gt -c2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMDk4MDM5MikgMXB4IDFweCA1cHg7IHotaW5kZXg6IDE7 -IH0KCi5sYXlfaGVscCAudHh0X2hlbHAgLmlubmVyIHsgZGlzcGxheTogYmxvY2s7IHRleHQtYWxp -Z246IGxlZnQ7IHBhZGRpbmc6IDE1cHggMTNweDsgbGluZS1oZWlnaHQ6IDE1MCU7IH0KCi5sYXlf -aGVscCBzcGFuLmFycm93IHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0 -OiA2cHg7IHRvcDogMjFweDsgd2lkdGg6IDlweDsgaGVpZ2h0OiA4cHg7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Fycm93Mi5wbmcpOyB6 -LWluZGV4OiAyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYjbGF5V3JhcCB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgei1pbmRleDogMTAwOyB9CgpkaXYjbGF5V3JhcC5zIHsgd2lkdGg6IDQ2NXB4 -OyB9CgpkaXYjbGF5V3JhcC5tIHsgd2lkdGg6IDY1MHB4OyB9CgpkaXYjbGF5V3JhcC5sIHsgd2lk -dGg6IDk2MHB4OyB9CgpkaXYjbGF5Q29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBib3Jk -ZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7IGJv -cmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6 -IDNweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDQyLCAxNDEsIDIwMik7IGJhY2tncm91bmQtY29s -b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpIDVw -eCA1cHggMjBweDsgfQoKZGl2I2xheUhlYWRlciB7IHBhZGRpbmc6IDhweCAzOHB4OyBiYWNrZ3Jv -dW5kLWNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgfQoKZGl2I2xheUhlYWRlciBoMSB7IGNvbG9y -OiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IC0x -cHg7IH0KCmRpdiNsYXlDb250ZW50cyB7IHBhZGRpbmc6IDM1cHggNDBweCA0MHB4OyBib3gtc2hh -ZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ5MDIpIDBweCA1cHggNXB4IDBweCBpbnNldDsgfQoKZGl2 -I2xheUNvbnRlbnRzIH4gYS5jbG9zZSB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1 -dGU7IHJpZ2h0OiA0MHB4OyB0b3A6IDE1cHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IHRl -eHQtaW5kZW50OiAtOTk5OXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9idF9jbG9zZTIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5p -dGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoK -ZGl2I2xheUNvbnRlbnRzIHAgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CgpkaXYjbGF5Q29udGVu -dHMgZGwudGJsX3R5cGUgKyBkbC50YmxfdHlwZSB7IG1hcmdpbi10b3A6IDEwcHg7IH0KCmRpdiNs -YXlDb250ZW50cyBkbC50YmxfdHlwZSBkdCB7IHdpZHRoOiAyNSU7IH0KCmRpdiNsYXlDb250ZW50 -cyBkbC50YmxfdHlwZSBkZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2I2xheUNvbnRlbnRz -IGRsLnRibF90eXBlIGRpdi5zY3JvbGxfYm94IHsgbWFyZ2luOiAtN3B4IDBweCAtN3B4IC0xMHB4 -OyBib3JkZXI6IG5vbmU7IH0KCmRpdiNsYXlDb250ZW50cyBkbC50YmxfdHlwZSBkaXYuc2Nyb2xs -X2JveDIgeyBtYXJnaW46IDBweCA3NHB4IDBweCAwcHg7IHBhZGRpbmc6IDJweDsgYm9yZGVyOiAx -cHggc29saWQgcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkaXYjbGF5Q29udGVudHMgZGwudGJsX3R5 -cGUgZGl2LnNjcm9sbF9ib3gyIGRpdi5pbm5lciB7IG92ZXJmbG93LXk6IHNjcm9sbDsgcGFkZGlu -ZzogOHB4OyBoZWlnaHQ6IDExOHB4OyB9CgpkaXYjbGF5Q29udGVudHMgZGwudGJsX3R5cGUgZGl2 -LnNjcm9sbF9ib3gyICsgc3Bhbi5idG5fdGJsIHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDog -MTZweDsgdG9wOiA3cHg7IH0KCmRpdiNsYXlDb250ZW50cyBkbC50YmxfdHlwZSB1bC5wb3N0X2xp -c3QgeyBvdmVyZmxvdy15OiBzY3JvbGw7IHBhZGRpbmc6IDEwcHggOXB4OyBoZWlnaHQ6IDEwNHB4 -OyB9CgpkaXYjbGF5Q29udGVudHMgZGwudGJsX3R5cGUgdWwucG9zdF9saXN0IGxpIHsgbGluZS1o -ZWlnaHQ6IDE1MCU7IH0KCmRpdiNsYXlDb250ZW50cyB1bC5ub3RpY2UgeyBtYXJnaW4tdG9wOiAy -MHB4OyBwYWRkaW5nOiA3cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMjUsIDIyNSwgMjI1KTsg -Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMXB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMXB4 -OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMXB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFk -aXVzOiAxcHg7IH0KCmRpdiNsYXlDb250ZW50cyB1bC5ub3RpY2UgbGkgeyBwYWRkaW5nLWxlZnQ6 -IDZweDsgbGluZS1oZWlnaHQ6IDE1MCU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3 -LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X3NxdWFyZS5naWYpOyBmb250LXNpemU6IDExcHg7IGJh -Y2tncm91bmQtcG9zaXRpb246IDAlIDZweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KCmRpdiNsYXlDb250ZW50cyB1bC5ub3RpY2UgbGkgYS51IHsgY29sb3I6IHJn -YigxMywgMTIzLCAxOTEpOyB9CgpkaXYjbGF5Q29udGVudHMgZGl2LmxpbmVfYm94IHsgYm9yZGVy -LXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xv -cjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1i -b3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIy -NSk7IHBhZGRpbmc6IDIwcHggMHB4OyB9CgpkaXYjbGF5Q29udGVudHMgZGl2LmxpbmVfYm94IHAg -eyBtYXJnaW4tYm90dG9tOiAwcHg7IH0KCmRpdiNsYXlDb250ZW50cyBkaXYubGluZV9ib3ggcCBz -dHJvbmcgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCmRpdiNsYXlDb250ZW50cyBkaXYu -bGluZV9ib3ggKyBwLmRhdGUgeyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyB0ZXh0LWFsaWdu -OiByaWdodDsgbWFyZ2luLXRvcDogMTBweDsgfQoKZGl2I2xheUNvbnRlbnRzIGRpdi5idG5fYnJp -bmcgeyBkaXNwbGF5OiBub25lOyB9Cgouc2VhcmNoX3R4dCB7IHBhZGRpbmc6IDM4cHggMHB4OyBm -b250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEy -OSk7IHRleHQtYWxpZ246IGNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KCi5zZWFyY2hf -dHh0IHNwYW4geyBjb2xvcjogcmdiKDIzMCwgMCwgMTEwKTsgfQoKLnNlYXJjaF9yZXN1bHQgeyBw -b3NpdGlvbjogcmVsYXRpdmU7IGZvbnQtc2l6ZTogMTNweDsgfQoKLnNlYXJjaF9yZXN1bHQgaDIg -eyBtYXJnaW4tYm90dG9tOiAxNXB4OyBmb250LXNpemU6IDI0cHg7IGxldHRlci1zcGFjaW5nOiAt -MXB4OyB9Cgouc2VhcmNoX3Jlc3VsdCBkbCB7IGJvcmRlci10b3Atd2lkdGg6IDJweDsgYm9yZGVy -LXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsg -fQoKLnNlYXJjaF9yZXN1bHQgZHQgeyBwYWRkaW5nOiAzMHB4IDBweCAxMHB4OyBmb250LXdlaWdo -dDogNjAwOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IGxldHRlci1z -cGFjaW5nOiAtMXB4OyB9Cgouc2VhcmNoX3Jlc3VsdCBkdCBhIHsgY29sb3I6IHJnYig0MSwgNTYs -IDcyKTsgfQoKLnNlYXJjaF9yZXN1bHQgZGQgeyBwYWRkaW5nLWJvdHRvbTogMzBweDsgYm9yZGVy -LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJv -dHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBsaW5lLWhlaWdodDogMS40OyB9Cgouc2Vh -cmNoX3Jlc3VsdCBkZCBhIHsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKLnNlYXJjaF9y -ZXN1bHQgZGQgLndyaXRpbmcgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTBweDsgY29s -b3I6IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKLnNlYXJjaF9yZXN1bHQgLmJ0bl90YmwgeyBwb3Np -dGlvbjogYWJzb2x1dGU7IHRvcDogMTBweDsgcmlnaHQ6IDBweDsgfQoKLnNlYXJjaF9yZXN1bHQg -LmJ0bl9tb3JlIHsgZGlzcGxheTogbm9uZTsgfQoKLnBvaW50X3R4dCB7IGNvbG9yOiByZ2IoMjMw -LCAwLCAxMTApOyB9CgoudGFiX21lbnUgeyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tYm90dG9t -OiAzMHB4OyB3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYmdfdGFiLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAx -MDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnRhYl9tZW51IGxp -IHsgZmxvYXQ6IGxlZnQ7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfdGFiX2Jhci5naWYpOyBmb250LXNp -emU6IDEzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAxMnB4OyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnRhYl9tZW51IGxpLnNlbGVjdGVkIHsgZGlzcGxh -eTogbm9uZTsgfQoKLnRhYl9tZW51IGxpLm9uIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzLCAx -MjMsIDE5MSkgIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWwgIWltcG9ydGFu -dDsgfQoKLnRhYl9tZW51IGxpIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMTFweCAwcHg7 -IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IGxpbmUtaGVpZ2h0OiAx -MDAlOyB9CgoudGFiX21lbnUgbGkuZmlyc3QgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGlu -aXRpYWw7IH0KCi50YWJfbWVudSBsaS5vbiBhIHsgcG9zaXRpb246IHJlbGF0aXZlOyByaWdodDog -LTFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYmdfdGFiX2Fycm93LmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMywgMTIzLCAxOTEp -OyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBsZXR0ZXItc3BhY2luZzogLTFweDsgYmFja2dy -b3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8t -cmVwZWF0OyB9CgoudGFiX21lbnUudGFiMiBsaSB7IHdpZHRoOiA0OS45JTsgfQoKLnRhYl9tZW51 -LnRhYjIgbGk6Zmlyc3QtY2hpbGQgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7 -IH0KCi50YWJfbWVudS50YWIzIGxpIHsgd2lkdGg6IDMzLjMzMzMlOyB9CgoudGFiX21lbnUudGFi -NCBsaSB7IHdpZHRoOiAyNC45NiU7IH0KCi50YWJfbWVudS50YWI1IGxpIHsgd2lkdGg6IDIwJTsg -fQoKZGl2LmJnX3NlcnZpY2UgeyBwYWRkaW5nOiAwcHggMHB4IDE1cHg7IH0KCi5zdXBwb3J0IHsg -Zm9udC1zaXplOiAxM3B4OyB9Cgouc3VwcG9ydCBoMyB7IG1hcmdpbjogMHB4IDBweCA1cHg7IGZv -bnQtc2l6ZTogMTZweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgfQoKLnN1cHBvcnQgaDQgeyBt -YXJnaW46IDBweDsgcGFkZGluZzogMzBweCAwcHggMHB4OyBmb250LXNpemU6IDEzcHg7IGNvbG9y -OiByZ2IoMTA0LCAxMTYsIDEyOSk7IH0KCi5zdXBwb3J0IC5zdXBwb3J0X2luZGV4IHsgd2lkdGg6 -IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luOiAwcHgg -MHB4IDMwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTog -c29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgcGFkZGluZy1i -b3R0b206IDMwcHg7IH0KCi5zdXBwb3J0IC5zdXBwb3J0X2luZGV4IHNwYW4gYSB7IGNvbG9yOiBy -Z2IoMTMsIDEyMywgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLnN1cHBvcnQgLnN1cHBvcnRf -aW5kZXggLmluZGV4X2Jsb2NrIHsgd2lkdGg6IDMzJTsgZmxvYXQ6IGxlZnQ7IH0KCi5zdXBwb3J0 -IC5zdXBwb3J0X2luZGV4IGRsIHsgbWFyZ2luOiAwcHggMHB4IDI5cHg7IH0KCi5zdXBwb3J0IC5z -dXBwb3J0X2luZGV4IGRsIGR0IHsgcGFkZGluZzogMHB4IDBweCAxMHB4OyB9Cgouc3VwcG9ydCAu -c3VwcG9ydF9pbmRleCBkbCBkdCBhIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBmb250LXdl -aWdodDogNjAwOyB9Cgouc3VwcG9ydCAuc3VwcG9ydF9pbmRleCBkbCBkZCB7IHBhZGRpbmc6IDBw -eCAwcHggNXB4OyB9Cgouc3VwcG9ydCAuc3VwcG9ydF9pbmRleCBkbCBkZCBhIHsgY29sb3I6IHJn -YigxMDQsIDExNiwgMTI5KTsgfQoKLnN1cHBvcnQgLnN1cHBvcnRfaW5kZXggZGwgZGQgYTpob3Zl -ciB7IGNvbG9yOiByZ2IoMjMwLCAwLCAxMTApOyB9Cgouc3VwcG9ydCAuc3VwcG9ydF9pbmRleCAu -aW5kZXhfYmxvY2suc3VwcG9ydCB7IHdpZHRoOiA1MCU7IH0KCi5zdXBwb3J0IC5zdXBwb3J0X2lu -ZGV4IG9sIGxpIHsgcGFkZGluZy1ib3R0b206IDE1cHg7IH0KCi5zdXBwb3J0IC5zdXBwb3J0X2lu -ZGV4IG9sIGxpIGEgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGZvbnQtd2VpZ2h0OiA2MDA7 -IH0KCi5zdXBwb3J0IC5zdXBwb3J0X2luZGV4IG9sIGxpIGE6aG92ZXIgeyBjb2xvcjogcmdiKDIz -MCwgMCwgMTEwKTsgfQoKLnN1cHBvcnQgLnN1cHBvcnRfaW5kZXggcCB7IGNvbG9yOiByZ2IoMTEx -LCAxMzEsIDE0Myk7IGxpbmUtaGVpZ2h0OiAxNjAlOyB9Cgouc3VwcG9ydCAuc3VwcG9ydF9pbmRl -eCBzcGFuIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiByZ2IoMTExLCAxMzEsIDE0Myk7IHBhZGRp -bmc6IDEzcHggMHB4IDMwcHg7IH0KCi5zdXBwb3J0IC5hZ3JlZW1lbnRfZGV0YWlsIHsgYm9yZGVy -LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJv -dHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBtYXJnaW46IDBweCAwcHggNXB4OyBwYWRk -aW5nOiAyMHB4IDEwcHggMjBweCAyMHB4OyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyB9Cgou -c3VwcG9ydCAuYWdyZWVtZW50X2RldGFpbCBwIHsgbWFyZ2luOiAwcHggMHB4IDE1cHg7IGxpbmUt -aGVpZ2h0OiAxNjAlOyB9Cgouc3VwcG9ydCAuYWdyZWVtZW50X2RldGFpbCBvbCB7IG1hcmdpbjog -MHB4IDBweCAxNXB4IDEwcHg7IH0KCi5zdXBwb3J0IC5hZ3JlZW1lbnRfZGV0YWlsIG9sIGxpIHsg -bGluZS1oZWlnaHQ6IDE2MCU7IGxpc3Qtc3R5bGU6IGRlY2ltYWw7IG1hcmdpbjogMHB4IDBweCAx -MHB4OyB9Cgouc3VwcG9ydCAuYWdyZWVtZW50X2RldGFpbCBvbCBsaSBvbCB7IHBhZGRpbmc6IDE1 -cHggMHB4IDBweCAyMHB4OyB9Cgouc3VwcG9ydCAuYWdyZWVtZW50X2RldGFpbCBvbCBsaSB1bCBs -aSB7IG1hcmdpbjogMHB4IDBweCAxMHB4OyBwYWRkaW5nOiAwcHg7IGxpc3Qtc3R5bGU6IG5vbmU7 -IH0KCi5zdXBwb3J0IC5hZ3JlZW1lbnRfZGV0YWlsIG9sIGxpIG9sIGxpIHsgbGlzdC1zdHlsZTog -bm9uZTsgcGFkZGluZzogMHB4OyBtYXJnaW46IDBweCAwcHggMTBweDsgfQoKLnN1cHBvcnQgLmFn -cmVlbWVudF9kZXRhaWwgb2wgbGkgb2wgbGkgdWwgeyBwYWRkaW5nOiAxMHB4IDBweCAwcHggMjBw -eDsgfQoKLnN1cHBvcnQgLmFncmVlbWVudF9kZXRhaWwgb2wgbGkgb2wgbGkgdWwgbGkgeyBtYXJn -aW46IDBweCAwcHggMTBweDsgcGFkZGluZzogMHB4OyB9Cgouc3VwcG9ydCAuYWdyZWVtZW50X2Rl -dGFpbC5ub19saW5lIHsgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsgfQoKLnN1cHBvcnQgI2Fn -cmVlbWVudDYsIC5zdXBwb3J0ICNhZ3JlZW1lbnQxMiwgLnN1cHBvcnQgI2FncmVlbWVudDE2LCAu -c3VwcG9ydCAjYWdyZWVtZW50MjUsIC5zdXBwb3J0ICNhZ3JlZW1lbnQyOCB7IGJvcmRlci10b3At -d2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJn -YigxMywgMTIzLCAxOTEpOyBwYWRkaW5nLXRvcDogMzBweDsgfQoKLnN1cHBvcnQgLmluZm9ybWF0 -aW9uX2RldGFpbCB7IG1hcmdpbjogMHB4IDBweCAzMHB4OyBwYWRkaW5nOiAyMHB4IDEwcHggMjBw -eCAwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29s -aWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnN1cHBvcnQg -LmluZm9ybWF0aW9uX2RldGFpbCBwIHsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgcGFkZGlu -Zy1ib3R0b206IDEwcHg7IH0KCi5zdXBwb3J0IC5pbmZvcm1hdGlvbl9kZXRhaWwgdWwgeyBjb2xv -cjogcmdiKDEwNCwgMTE2LCAxMjkpOyBtYXJnaW46IDBweCAwcHggMTVweDsgfQoKLnN1cHBvcnQg -LmluZm9ybWF0aW9uX2RldGFpbCB1bCBsaSB7IG1hcmdpbjogMHB4IDBweCAxMHB4OyBsaW5lLWhl -aWdodDogMTYwJTsgfQoKLnN1cHBvcnQgLmluZm9ybWF0aW9uX2RldGFpbCB1bCBsaSBzdHJvbmcg -eyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyB9Cgouc3VwcG9ydCAuaW5mb3JtYXRpb25fZGV0 -YWlsIHVsIGxpIHAgeyBwYWRkaW5nOiA1cHggMHB4IDBweCAxNXB4OyB9Cgouc3VwcG9ydCAuaW5m -b3JtYXRpb25fZGV0YWlsIHVsIGxpIHVsIHsgbWFyZ2luOiA1cHggMHB4IDE1cHggMTVweDsgfQoK -LnN1cHBvcnQgLmluZm9ybWF0aW9uX2RldGFpbCB1bCBsaSB1bCBsaSB7IG1hcmdpbjogMHB4IDBw -eCAxMHB4OyB9Cgouc3VwcG9ydCAuaW5mb3JtYXRpb25fZGV0YWlsIGRsIGR0IHsgbWFyZ2luOiAw -cHggMHB4IDEwcHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IH0KCi5zdXBwb3J0IC5pbmZv -cm1hdGlvbl9kZXRhaWwgZGQgeyBtYXJnaW46IDBweCAwcHggMTVweDsgY29sb3I6IHJnYigxMDQs -IDExNiwgMTI5KTsgbGluZS1oZWlnaHQ6IDE2MCU7IHBhZGRpbmctbGVmdDogMTVweDsgfQoKLnN1 -cHBvcnQgLmluZm9ybWF0aW9uX2RldGFpbCB0YWJsZSwgLnN1cHBvcnQgLmFncmVlbWVudF9kZXRh -aWwgdGFibGUgeyBtYXJnaW46IDBweCAwcHggMTVweDsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xs -YXBzZTogY29sbGFwc2U7IH0KCi5zdXBwb3J0IC5pbmZvcm1hdGlvbl9kZXRhaWwgdGFibGUgdHIg -dGgsIC5zdXBwb3J0IC5hZ3JlZW1lbnRfZGV0YWlsIHRhYmxlIHRyIHRoIHsgcGFkZGluZzogN3B4 -IDBweCA2cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWlnaHQ6IDYwMDsgYm9yZGVyLXdp -ZHRoOiAxcHg7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci1jb2xvcjogcmdiKDY4LCAyMDEs -IDI0NikgcmdiKDIxMSwgMjE3LCAyMjcpIHJnYigyMTEsIDIxNywgMjI3KTsgY29sb3I6IHJnYig2 -MywgNjYsIDcyKTsgfQoKLnN1cHBvcnQgLmluZm9ybWF0aW9uX2RldGFpbCB0YWJsZSB0ciB0ZCwg -LnN1cHBvcnQgLmFncmVlbWVudF9kZXRhaWwgdGFibGUgdHIgdGQgeyBwYWRkaW5nOiA3cHggMHB4 -IDZweDsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjExLCAyMTcs -IDIyNyk7IH0KCi5zdXBwb3J0IC5sZWdhbF9kZXRhaWwgeyBjb2xvcjogcmdiKDEwNCwgMTE2LCAx -MjkpOyBwYWRkaW5nOiAyMHB4IDEwcHggMjBweCAwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFw -eDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigy -MjUsIDIyNSwgMjI1KTsgbWFyZ2luLWJvdHRvbTogMzBweDsgfQoKLnN1cHBvcnQgLmxlZ2FsX2Rl -dGFpbCBwIHsgbWFyZ2luOiAwcHggMHB4IDE1cHg7IGxpbmUtaGVpZ2h0OiAxNjAlOyB9Cgouc3Vw -cG9ydCAubGVnYWxfZGV0YWlsIGEuYW5jaGVyLCAuc3VwcG9ydCAuaW5mb3JtYXRpb25fZGV0YWls -IGEuYW5jaGVyLCAuc3VwcG9ydCAuYWdyZWVtZW50X2RldGFpbCBhLmFuY2hlciB7IGZsb2F0OiBy -aWdodDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYnRfYW5jaGVyLmdpZik7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdGV4dC1pbmRlbnQ6IC05 -OTk5OXB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAw -cHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnRibF90 -eXBlMiB7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAxMDAlOyBib3JkZXItdG9wLXdpZHRoOiAx -cHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTczLCAx -ODQsIDE5MSk7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTog -c29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgZm9udC1zaXpl -OiAxM3B4OyB9CgoudGJsX3R5cGUyIGR0IHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDEwcHggMHB4 -IDBweDsgd2lkdGg6IDE3JTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBmb250LXdlaWdo -dDogNjAwOyB9CgoudGJsX3R5cGUyIGR0OmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcC1zdHlsZTog -bm9uZTsgfQoKLnRibF90eXBlMiBkZCB7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6IDdweCAx -MHB4IDhweCAwcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29s -aWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgY29sb3I6IHJnYigxMDQs -IDExNiwgMTI5KTsgfQoKLnRibF90eXBlMiBkdDpmaXJzdC1jaGlsZCArIGRkIHsgYm9yZGVyLXRv -cC1zdHlsZTogbm9uZTsgfQoKLnRibF90eXBlMiBkZCAucmVsYXRlIHsgcG9zaXRpb246IHJlbGF0 -aXZlOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA0MiU7IGZvbnQtd2VpZ2h0OiA2MDA7 -IH0KCi50YmxfdHlwZTIgZGQgLnJlbGF0ZSAudGVsIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0 -OiA1MCU7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH0KCi50YmxfdHlwZTIgZGQgdWwubGluZV90eXBl -IHsgbWFyZ2luOiAtN3B4IDBweDsgfQoKLnRibF90eXBlMiBkZCB1bC5saW5lX3R5cGUgbGkgeyBw -YWRkaW5nOiA3cHggMHB4IDhweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgoudGJs -X3R5cGUyIGRkIHVsLmxpbmVfdHlwZSBsaTpmaXJzdC1jaGlsZCB7IGJvcmRlcjogbm9uZTsgfQoK -LnRibF90eXBlMyB7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAxMDAlOyBib3JkZXItdG9wLXdp -ZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2Io -MTczLCAxODQsIDE5MSk7IGZvbnQtc2l6ZTogMTNweDsgfQoKLnRibF90eXBlMyBkbCwgLnRibF90 -eXBlMyBkbC53aWRlIGRkIHVsIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogMy4xMjUlOyB3 -aWR0aDogMzEuMiU7IH0KCi50YmxfdHlwZTMgZGwubGFzdCwgLnRibF90eXBlMyBkbC53aWRlIGRk -IHVsLmxhc3QgeyBtYXJnaW4tcmlnaHQ6IDBweDsgfQoKLnRibF90eXBlMyBkdCB7IHBhZGRpbmc6 -IDEwcHggMHB4IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCi50YmxfdHlwZTMgZGQsIC50Ymxf -dHlwZTMgZGwud2lkZSBkZCB1bCBsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogOXB4 -IDBweCAxMnB4OyBoZWlnaHQ6IDElOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3At -c3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCi50 -YmxfdHlwZTMgZGQuZml4aGVpZ2gsIC50YmxfdHlwZTMgZGwud2lkZSBkZCB1bCBsaS5maXhoZWln -aCB7IHBhZGRpbmc6IDJweCAwcHggMXB4OyB9CgoudGJsX3R5cGUzIGRkIHNwYW4sIC50YmxfdHlw -ZTMgZGwud2lkZSBkZCB1bCBsaSBzcGFuIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1NiU7 -IH0KCi50YmxfdHlwZTMgZGQgc3Bhbi50ZWwsIC50YmxfdHlwZTMgZGwud2lkZSBkZCB1bCBsaSBz -cGFuLnRlbCB7IHRvcDogMzUlOyB9CgoudGJsX3R5cGUzIGRsLndpZGUgeyBjbGVhcjogYm90aDsg -d2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6IDJweDsgYm9yZGVyLXRvcC1zdHlsZTogc29s -aWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnRibF90eXBlMyBk -bC53aWRlIGRkIHsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDBweDsg -Ym9yZGVyOiBub25lOyB9CgoudGJsX3R5cGUzIGRsLndpZGUgZGQgdWwgeyBib3JkZXItYm90dG9t -LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNv -bG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCi50YmxfdHlwZTQgeyBvdmVyZmxvdzogaGlkZGVu -OyB3aWR0aDogMTAwJTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBz -b2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBmb250LXNpemU6IDEz -cHg7IH0KCi50YmxfdHlwZTQgZGwgeyBmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAzLjEyNSU7 -IHdpZHRoOiA0OC40Mzc1JTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9t -LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9 -CgoudGJsX3R5cGU0IGRsLmxhc3QgeyBtYXJnaW4tcmlnaHQ6IDBweDsgfQoKLnRibF90eXBlNCBk -dCB7IHBhZGRpbmc6IDEwcHggMHB4IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCi50YmxfdHlw -ZTQgZGQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDlweCAwcHggMTJweDsgaGVpZ2h0 -OiAxJTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9y -ZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgoudGJsX3R5cGU0IGRkOmZpcnN0 -LWNoaWxkIHsgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQoKLnRibF90eXBlNCBkZC5maXhoZWln -aCB7IHBhZGRpbmc6IDJweCAwcHggMXB4OyB9CgoudGJsX3R5cGU0IGRkIHNwYW4ubWFpbCB7IHBv -c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjIlOyB0b3A6IDIzJTsgfQoKLnRibF90eXBlNCBkZCBz -cGFuLnRlbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNzAlOyB0b3A6IDIzJTsgfQoKLnRi -bF90eXBlNCBkZCBzcGFuLnRlbDIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDcwJTsgdG9w -OiAxcHg7IH0KCi50YmxfdHlwZTUgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgYm9y -ZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1j -b2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBmb250LXNpemU6IDE2cHg7IGxldHRlci1zcGFjaW5n -OiAtMXB4OyB9CgoudGJsX3R5cGU1IGRsIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3Jk -ZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyB9CgoudGJsX3R5cGU1IGR0IHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyODBweDsgcGFk -ZGluZzogMTBweCAxNXB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDU1LCA3MSwgMTMx -KTsgfQoKLnRibF90eXBlNSBkZCB7IHBhZGRpbmc6IDlweCAwcHggMTJweDsgaGVpZ2h0OiAxJTsg -Ym9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRv -cC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgoudGJsX3R5cGU1IGRkOmZpcnN0LWNoaWxk -IHsgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQoKLnRibF90eXBlNSBkZDo6YWZ0ZXIgeyBjbGVh -cjogYm90aDsgfQoKLnRibF90eXBlNSBkZCBzcGFuIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEp -OyB9CgoudGJsX3R5cGU1IGRkIHNwYW4ubWFpbCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l -OyB9CgoudGJsX3R5cGU1IGRkIHNwYW4udGVsIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDog -MTVweDsgfQoKLnN1Yl9pbmZvIC5zdWJfcmVwb3J0LCAuc3ViX2luZm8gLnN1Yl9pbnF1aXJ5IHsg -cGFkZGluZzogMjBweCAxM3B4IDBweCAxNDBweDsgbWluLWhlaWdodDogMTAxcHg7IGJvcmRlci10 -b3Atd2lkdGg6IDJweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6 -IHJnYig0OCwgMTYxLCAyMjgpOyBsaW5lLWhlaWdodDogMS40OyB9Cgouc3ViX2luZm8gLnN1Yl9y -ZXBvcnQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9iZ19yZXBvcnQuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4OyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnN1Yl9pbmZvIC5zdWJfaW5x -dWlyeSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2JnX2lucXVpcnkuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCAyMHB4OyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnN1Yl9pbmZvIC5idG5fYmx1 -ZSB7IG1hcmdpbi10b3A6IDE1cHg7IH0KCi5iZ19zaXRlbWFwIHsgcGFkZGluZy1ib3R0b206IDE1 -cHg7IH0KCi5zaXRlbWFwX3dyYXAgeyBvdmVyZmxvdzogaGlkZGVuOyB9Cgouc2l0ZW1hcCB7IGZs -b2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogMyU7IHdpZHRoOiAzMS4yJTsgfQoKLnNpdGVtYXBfd3Jh -cCAuc2l0ZW1hcDpmaXJzdC1jaGlsZCB7IG1hcmdpbjogMHB4OyB9Cgouc2l0ZW1hcCBoMyB7IG1h -cmdpbi1ib3R0b206IDVweDsgcGFkZGluZy1ib3R0b206IDE1cHg7IH0KCi5zaXRlbWFwIC5zaXRl -bWFwX3NlY3Rpb24geyBmb250LXNpemU6IDE1cHg7IH0KCi5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rp -b24gaDQgeyBwYWRkaW5nOiA4cHggMHB4IDBweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXItYm90dG9t -LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNv -bG9yOiByZ2IoMCwgMTQ1LCAyMjApOyBmb250LXdlaWdodDogNjAwOyB9Cgouc2l0ZW1hcCAuc2l0 -ZW1hcF9zZWN0aW9uIGg0IGEgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5zaXRlbWFw -IC5zaXRlbWFwX3NlY3Rpb24gaDQubmV3X3dpbiwgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiB1 -bCBsaS5uZXdfd2luIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvY29tbW9uL2JnX25ld193aW4uZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -MTAwJSA0OCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgouc2l0 -ZW1hcCAuc2l0ZW1hcF9zZWN0aW9uID4gdWwgPiBsaSB7IHBhZGRpbmc6IDdweCAwcHggMHB4OyBt -aW4taGVpZ2h0OiAzMXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t -c3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0K -Ci5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGkgYSB7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEy -OSk7IH0KCi5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGkuZGVwdGggeyBvdmVyZmxvdzogaGlk -ZGVuOyB9Cgouc2l0ZW1hcCAuc2l0ZW1hcF9zZWN0aW9uIGxpLmRlcHRoID4gYSB7IGZsb2F0OiBs -ZWZ0OyB9Cgouc2l0ZW1hcCAuc2l0ZW1hcF9zZWN0aW9uIGxpLmRlcHRoIHVsIHsgcGFkZGluZzog -MnB4IDBweCAxMHB4IDEwMHB4OyB9Cgouc2l0ZW1hcCAuc2l0ZW1hcF9zZWN0aW9uIGxpLmRlcHRo -IHVsIGxpIHsgcGFkZGluZzogMHB4IDBweCAycHggN3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jb21tb24vYmxfc2l0ZW1hcC5naWYpOyBm -b250LXNpemU6IDEzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA2cHg7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgouc2l0ZW1hcCAuc2l0ZW1hcF9zZWN0aW9u -IGxpLmRlcHRoIHVsIGxpLmxpbmtfYmFyIGEgeyBwYWRkaW5nOiAwcHggMXB4IDBweCA1cHg7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2xp -c3RiYXIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDNweDsgYmFja2dyb3VuZC1yZXBl -YXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGku -ZGVwdGggdWwgbGkubGlua19iYXIgYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctbGVmdDogMHB4OyBi -YWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCi5iZ19yc3MgeyBwYWRkaW5nOiAw -cHggMHB4IDE1cHg7IH0KCi5yc3NfdHh0IHsgbWFyZ2luOiAxNXB4OyBwYWRkaW5nOiAxMXB4IDBw -eCAwcHggOThweDsgaGVpZ2h0OiA2MHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3 -dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jb21tb24vYmdfcnNzX2ljLmdpZik7IGZvbnQtc2l6ZTog -MTVweDsgbGluZS1oZWlnaHQ6IDEuNTsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KCi5yc3NfdHh0X3QgeyBkaXNwbGF5OiBub25lOyB9CgoucnNzX3NlY3Rpb24g -eyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGxldHRlci1zcGFjaW5nOiAtMXB4 -OyB9CgoucnNzX3NlY3Rpb24gaDMgeyBtYXJnaW4tYm90dG9tOiA4cHg7IGZvbnQtc2l6ZTogMjRw -eDsgbGV0dGVyLXNwYWNpbmc6IC0ycHg7IH0KCi5yc3Nfc2VjdGlvbiAucnNzX3R4dDIgeyBtYXJn -aW4tYm90dG9tOiAxNXB4OyB9CgoucnNzX3NlY3Rpb24gdGggeyB3aWR0aDogMjAlOyB9CgoucnNz -X3NlY3Rpb24gdGQgeyB3aWR0aDogODAlOyB9CgoudGJsX2RhdGEyIHsgd2lkdGg6IDEwMCU7IGJv -cmRlci10b3Atd2lkdGg6IDJweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3At -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnRibF9kYXRhMiB0aCB7IHBhZGRpbmc6IDEz -cHggMHB4IDE1cHggMjBweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC1z -dHlsZTogc29saWQ7IGJvcmRlci1yaWdodC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3Jk -ZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXIt -Ym90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IHRleHQtYWxpZ246IGxlZnQ7IH0KCi50 -YmxfZGF0YTIgdGQgeyBwYWRkaW5nOiAxM3B4IDBweCAxNXB4IDIwcHg7IGJvcmRlci1ib3R0b20t -d2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29s -b3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnRibF9kYXRhMiB0ZCAucnNzX2J0biB7IHBvc2l0 -aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxJTsgfQoKLnRibF9kYXRhMiB0ZCAucnNzX2J0biBzcGFu -IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0ycHg7IHJpZ2h0OiAxOHB4OyB9CgoudGJsX2Rh -dGEyIC5icm5vbmUgeyBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7IH0KCi50YmxfZGF0YTIgc3Bh -bi5pbnNpZGUgeyB0b3A6IC0xMnB4ICFpbXBvcnRhbnQ7IH0KCmRpdi5sYXllcl9jYWxlbmRhciB7 -IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lOyB9CgpkaXYubGF5ZXJfY2FsZW5k -YXIgZGl2LndyYXBfY2FsZW5kYXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDI0cHg7IHRv -cDogLTE0cHg7IHdpZHRoOiAyNDJweDsgei1pbmRleDogMTA7IH0KCmRpdi5sYXllcl9jYWxlbmRh -ciBkaXYudG9wIHsgcGFkZGluZy10b3A6IDJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWRtaW4vYmdfbGF5X3RvcC5wbmcpOyBiYWNrZ3Jv -dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDAl -OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmxheWVyX2Nh -bGVuZGFyIGRpdi5ib3R0b20geyBwYWRkaW5nLWJvdHRvbTogM3B4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hZG1pbi9iZ19sYXlfYm90dG9t -LnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYubGF5ZXJfY2FsZW5kYXIgZGl2LmlubmVyIHsgcG9z -aXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAxMnB4IDE1cHg7IGJvcmRlci1yaWdodC13aWR0aDog -MXB4OyBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOyBib3JkZXItcmlnaHQtY29sb3I6IHJnYigx -NDUsIDE0OCwgMTYxKTsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtc3R5bGU6 -IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDE0NSwgMTQ4LCAxNjEpOyB9CgpkaXYubGF5 -ZXJfY2FsZW5kYXIgYS5pY28geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWdu -OiBtaWRkbGU7IG1hcmdpbi10b3A6IDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB9CgpkaXYubGF5 -ZXJfY2FsZW5kYXIgc3Bhbi5hcnJvdyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTVweDsg -dG9wOiAxNHB4OyB3aWR0aDogNXB4OyBoZWlnaHQ6IDlweDsgZGlzcGxheTogYmxvY2s7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2FkbWluL2Jn -X2xheV9hcnJvdy5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJTsgYmFja2dyb3VuZC1y -ZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5sYXllcl9jYWxlbmRhciBkaXYuaGVh -ZGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiA4cHg7IHRleHQtYWxpZ246 -IGNlbnRlcjsgfQoKZGl2LmxheWVyX2NhbGVuZGFyIGRpdi5oZWFkZXIgcCB7IGNvbG9yOiByZ2Io -NzMsIDczLCA3Myk7IGZvbnQtc2l6ZTogMTBweDsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRp -Y2EsIHNhbnMtc2VyaWY7IH0KCmRpdi5sYXllcl9jYWxlbmRhciBkaXYuaGVhZGVyIHAgZW0geyBk -aXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAyNXB4OyB9CgpkaXYubGF5ZXJfY2FsZW5kYXIgZGl2 -LmhlYWRlciBhLnByZXYgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDU2cHg7IHRvcDogMTdw -eDsgfQoKZGl2LmxheWVyX2NhbGVuZGFyIGRpdi5oZWFkZXIgYS5uZXh0IHsgcG9zaXRpb246IGFi -c29sdXRlOyByaWdodDogNTZweDsgdG9wOiAxN3B4OyB9Cgp0YWJsZS5jYWxlbmRhciB0aGVhZCB0 -aCB7IHBhZGRpbmc6IDZweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyOSwgMjI5LCAyMjkpOyBmb250LXdlaWdo -dDogbm9ybWFsOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6 -IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI5LCAyMjksIDIyOSk7IGNvbG9yOiBy -Z2IoMTA5LCAxMDksIDEwOSk7IGZvbnQtZmFtaWx5OiBEb3R1bSwg64+L7JuALCBzYW5zLXNlcmlm -OyB9Cgp0YWJsZS5jYWxlbmRhciB0Ym9keSB0ciB0ZCB7IHBhZGRpbmc6IDJweCA3cHggMnB4IDhw -eDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogcmdiKDE3OSwgMTc5LCAxNzkpOyBmb250LXNp -emU6IDExcHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWY7IH0KCnRh -YmxlLmNhbGVuZGFyIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHsgcGFkZGluZy10b3A6IDEwcHg7 -IH0KCnRhYmxlLmNhbGVuZGFyIHRib2R5IHRyIHRkIGEgeyBjb2xvcjogcmdiKDEwOSwgMTA5LCAx -MDkpOyB9Cgp0YWJsZS5jYWxlbmRhciB0Ym9keSB0ciB0ZCBhLm9uIHsgcGFkZGluZzogMXB4IDVw -eDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDcyLCAx -MjksIDE2Mik7IH0KCnRhYmxlLmNhbGVuZGFyIHRib2R5IHRyIHRkLmhvbGlkYXkgYSB7IGNvbG9y -OiByZ2IoMjI5LCAyMCwgMCk7IH0KCnRhYmxlLmNhbGVuZGFyIHRib2R5IHRyIHRkLmhvbGlkYXkg -eyBjb2xvcjogcmdiKDIzNiwgMTgyLCAyMTQpOyB9Cgp0YWJsZS5jYWxlbmRhciB0aGVhZCB0aC5o -b2xpZGF5IHsgY29sb3I6IHJnYigxMzIsIDEzMiwgMTMyKTsgfQoKLmVycm9yIHsgbWFyZ2luOiAx -NzBweCBhdXRvIDI2MHB4OyB3aWR0aDogNjIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKLmVy -cm9yIHN0cm9uZyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAxN3B4OyBwYWRkaW5n -OiAxN3B4IDBweCAxNXB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t -c3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NvbW1v -bi9iZ19lcnJvci5naWYpOyBmb250LXNpemU6IDI0cHg7IGxldHRlci1zcGFjaW5nOiAtMXB4OyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCi5lcnJvciAuZXJyb3JfdHh0IHsgZGlzcGxheTogYmxvY2s7IGNvbG9y -OiByZ2IoMTA0LCAxMTYsIDEyOSk7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9CgouZXJyb3IgLmVy -cm9yX3R4dC5tIHsgZGlzcGxheTogbm9uZTsgfQoKLmVycm9yIC5idG5fYl9hcnJvdyB7IG1hcmdp -bi10b3A6IDM1cHg7IH0KCi5ub2RhdGEgeyBtYXJnaW46IDE3MHB4IGF1dG8gMjYwcHg7IHdpZHRo -OiA2MjBweDsgaGVpZ2h0OiA1NnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJvcmRlci1ib3R0b20t -d2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29s -b3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLm5vZGF0YSBzdHJvbmcgeyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IHBhZGRpbmc6IDVweCAwcHggMHB4IDgwcHg7IGhlaWdodDogNTFweDsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfbm9kYXRh -LmdpZik7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KCmgyLm5vdGlfdGl0IHsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXItYm90 -dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9t -LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IG1hcmdpbjogNTdweCAwcHggMjBweDsgcGFkZGlu -Zy1ib3R0b206IDIwcHg7IH0KCnAubm90aV90eHQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KCnAu -bm90aV90eHQgc3Bhbi5wb2ludCB7IGNvbG9yOiByZ2IoMjMwLCAwLCAxMTApOyB9CgpwLm5vdGlf -dHh0IHNwYW4uZGF0ZSB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDE1OCwgMTAxLCAyMSk7 -IG1hcmdpbi10b3A6IDEwcHg7IH0KCmRpdi5pbl9hcmVhIHsgd2lkdGg6IDYwJTsgbWFyZ2luOiAw -cHggYXV0bzsgfQoKZGl2I3BvcF93cmFwIGgxIHsgcGFkZGluZzogN3B4IDBweCA5cHggNDBweDsg -YmFja2dyb3VuZC1jb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGNvbG9yOiByZ2IoMjU1LCAyNTUs -IDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2I3BvcF93cmFwIGRpdi5wb3BfY29udGFyZWEg -eyBwYWRkaW5nOiAyNXB4IDQwcHggMHB4OyBmb250LXNpemU6IDE1cHg7IH0KCmRpdiNwb3Bfd3Jh -cCBkaXYucG9wX2NvbnRhcmVhIGgyIHsgZm9udC1zaXplOiAxOHB4OyBwYWRkaW5nOiAwcHggMHB4 -IDIzcHg7IH0KCmRpdi5wb3BfY29udGFyZWEgZGl2LnNlY3Rpb24geyBwYWRkaW5nOiAwcHggMHB4 -IDI1cHg7IH0KCmRpdi5wb3BfY29udGFyZWEgZGl2LnNlY3Rpb24gc3Bhbi50aXQgeyBkaXNwbGF5 -OiBibG9jazsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBtYXJnaW46IDBweCAwcHggMTBweDsg -fQoKLndJbWcgeyB3aWR0aDogMTAwJTsgfQoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdp -ZHRoOiAxMDI0cHgpIGFuZCAobWluLXdpZHRoOiA3NjhweCkgeyAKICAudG5vbmUgeyBkaXNwbGF5 -OiBub25lOyB9CiAgZGl2LnBvcF9sYXllciBkaXYucG9wX2xheWVyaW4geyB3aWR0aDogOTUuNzAz -MTI1JSAhaW1wb3J0YW50OyB9CiAgZGl2I3dyYXAgeyB3aWR0aDogMTAwJTsgfQogIGhlYWRlciB7 -IHdpZHRoOiAxMDAlOyB9CiAgZGl2LmhlYWRlcl9pbiB7IHdpZHRoOiA5NS43MDMxMjUlOyBtYXJn -aW46IDBweCBhdXRvOyB9CiAgaDEgeyB9CiAgdWwuZ25iIHsgbWFyZ2luLXJpZ2h0OiAwcHg7IH0K -ICBkaXYuYmdfd2l0aCBkaXYubWVudV9pbmZvIHsgfQogIGRpdi5tZW51X2luZm8gcC5tZW50IHsg -YmFja2dyb3VuZDogbm9uZTsgcGFkZGluZzogMTBweCA1cHggMTBweCAwcHg7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQogIGRpdi5iZ19hYm91dCB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9z -aXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlh -bDsgfQogIGRpdi5iZ19jYXJlZXIgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7 -IH0KICBkaXYuYmdfd2l0aCB1bC5zdWJfbWVudSBsaSB7IHdpZHRoOiAxNiU7IH0KICB1bC5zdWJf -bWVudSBsaSB7IHdpZHRoOiAxNC4yOCU7IH0KICB1bC5zdWJfbWVudSBsaSBhIHsgbGV0dGVyLXNw -YWNpbmc6IC0xcHg7IH0KICB1bC5zdWJfbWVudSBsaS53MjkwIHsgd2lkdGg6IDI3MHB4OyB9CiAg -dWwuc3ViX21lbnUyIGxpIHsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfQogIHVsLnN1Yl9tZW51 -MiBsaSBhIHsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KICBkaXYuZ25iX2NvbnRhcmVhIHsgd2lk -dGg6IDk1LjcwMzEyNSU7IG1hcmdpbjogMHB4IGF1dG87IH0KICBkaXYuZ25iX2NvbnRhcmVhLmFi -b3V0IHsgd2lkdGg6IDk1LjcwMzEyNSU7IG1hcmdpbjogMHB4IGF1dG87IH0KICBkaXYuZ25iX2Nv -bnRhcmVhLmNhcmVlciB7IHdpZHRoOiA5NS43MDMxMjUlOyBtYXJnaW46IDBweCBhdXRvOyB9CiAg -ZGl2I2NvbnRlbnRzIHsgd2lkdGg6IDEwMCU7IH0KICBkaXYucGFnZWxvY2F0aW9uIHsgcG9zaXRp -b246IGFic29sdXRlOyB3aWR0aDogMTAwJTsgfQogIHAucGFnZWxvY2F0aW9uX2luIHsgd2lkdGg6 -IDk1LjcwMzEyNSU7IG1hcmdpbjogMzBweCBhdXRvIDBweDsgfQogIGRpdi5tX3BhZ2Vsb2NhdGlv -biB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYudG9wYXJlYTIgZGl2LnRvcGFyZWFfaW4gc3Bhbi50 -aXRfZGVzMiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDEwcHggMHB4IDBweDsgfQogIGRpdi5z -ZWFyY2hfbGF5ZXJpbiB7IHdpZHRoOiA5NS43MDMxMjUlOyBtYXJnaW46IDQ1cHggYXV0byAwcHg7 -IH0KICBkaXYudG9wYXJlYV9pbiB7IHdpZHRoOiA5NS43MDMxMjUlOyBtYXJnaW46IDBweCBhdXRv -OyB9CiAgZGl2LnRvcGFyZWFfaW4gYS5idF9sb2cyIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5z -dWJtZW51X2FyZWEgeyB3aWR0aDogOTUuNzAzMTI1JTsgbWFyZ2luOiAwcHggYXV0bzsgfQogIGRp -di5jb250X2luZm8geyB3aWR0aDogOTUuNzAzMTI1JTsgbWFyZ2luOiAwcHggYXV0bzsgfQogIGRp -di5zbnNfc2hhcmVhcmVhIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi51dGlsbF9saW5rYXJlYSB7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Jn -X3V0aWxsLnBuZyk7IHdpZHRoOiAxMDJweDsgaGVpZ2h0OiAxMjJweDsgcG9zaXRpb246IGFic29s -dXRlOyB0b3A6IDM1cHg7IHJpZ2h0OiAyNXB4OyB6LWluZGV4OiAxMDsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMTAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9 -CiAgdWwudXRpbGxfbGluayB7IG1hcmdpbjogMTBweCAwcHggMHB4IDE3cHg7IGZsb2F0OiBub25l -OyB3aWR0aDogNjVweDsgfQogIHVsLnV0aWxsX2xpbmsgbGkgeyBkaXNwbGF5OiBibG9jazsgYmFj -a2dyb3VuZDogbm9uZTsgZmxvYXQ6IG5vbmU7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVy -LXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMTksIDIxOSwgMjE5KTsg -cGFkZGluZzogNnB4IDBweDsgZm9udC1zaXplOiAwcHg7IGxpbmUtaGVpZ2h0OiAwOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFs -IGluaXRpYWw7IH0KICB1bC51dGlsbF9saW5rIGxpOmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcC1z -dHlsZTogbm9uZTsgfQogIGEuYnRfdXRpbGxtZW51IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF91 -dGlsbG1lbnVfdC5naWYpOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOXB4OyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8t -cmVwZWF0OyB9CiAgYS5idF9sb2cgeyBkaXNwbGF5OiBub25lOyB9CiAgYS5idF9sb2czIHsgcG9z -aXRpb246IGFic29sdXRlOyB0b3A6IDI1cHg7IHJpZ2h0OiAxMTBweDsgZGlzcGxheTogYmxvY2s7 -IH0KICBkaXYuZ2xvYmFsLXNlYXJjaCB7IH0KICBwLnBhZ2Vsb2NhdGlvbiB7IHdpZHRoOiA5NS43 -MDMxMjUlOyBtYXJnaW46IDMwcHggYXV0byAwcHg7IH0KICBoMi50aXRfaW50cm8geyBkaXNwbGF5 -OiBibG9jazsgd2lkdGg6IDE1OXB4OyBoZWlnaHQ6IDQ0cHg7IH0KICBkaXYuYmdfaW50cm8geyB9 -CiAgZGl2LmJnX2ltZ2ludHJvIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTUwMHB4OyBiYWNrZ3Jv -dW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy90YWJsZXQvYmdf -aW1naW50cm8ucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDBweDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYuYmdpbnRyb190eHQgeyBwb3NpdGlv -bjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDM3MXB4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy90YWJsZXQvYmdpbnRyb190eHQu -cG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5v -LXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYuYmdpbnRyb190eHQyIHsgcG9zaXRpb246IHJlbGF0 -aXZlOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAzMzBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvdGFibGV0L2JnaW50cm9fdHh0Mi5wbmcpOyBt -YXJnaW4tdG9wOiAtOTRweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwcHg7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmJnaW50cm9fdHh0MyB7IHBv -c2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMzAzcHg7IGJhY2tncm91bmQt -aW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL3RhYmxldC9iZ2ludHJv -X3R4dDMucG5nKTsgbWFyZ2luLXRvcDogLTIycHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAw -cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmJnaW50 -cm9fdHh0NCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogMjg1cHg7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL3Rh -YmxldC9iZ2ludHJvX3R4dDQucG5nKTsgbWFyZ2luLXRvcDogLTQ1cHg7IGJhY2tncm91bmQtcG9z -aXRpb246IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsg -fQogIGRpdi5iZ2ludHJvX3R4dCBkaXYuaW50cm9fdHh0YXJlYSB7IHBvc2l0aW9uOiBhYnNvbHV0 -ZTsgdG9wOiA2MHB4OyBsZWZ0OiAyODBweDsgfQogIGRpdi5iZ2ludHJvX3R4dDIgZGl2LmludHJv -X3R4dGFyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTAwcHg7IGxlZnQ6IDBweDsgfQog -IGRpdi5iZ2ludHJvX3R4dDMgZGl2LmludHJvX3R4dGFyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7 -IHRvcDogNDVweDsgcmlnaHQ6IDE1cHg7IH0KICBkaXYuYmdpbnRyb190eHQ0IGRpdi5pbnRyb190 -eHRhcmVhIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDY3cHg7IGxlZnQ6IDBweDsgfQogIGRp -di5pbnRyb192b2RhcmVhIHsgbWFyZ2luOiA1MHB4IDBweDsgfQogIGRpdi5mb290ZXJfaW4geyB3 -aWR0aDogOTUuNzAzMTI1JTsgbWFyZ2luOiAwcHggYXV0bzsgfQogIGRpdi5mYW1pbHlfc2l0ZWFy -ZWEgeyB3aWR0aDogODAlOyBvdmVyZmxvdy15OiBoaWRkZW47IGhlaWdodDogMzBweDsgfQogIGRp -di5mYW1pbHlfc2VjdGlvbiB7IG1hcmdpbjogMjVweCA0cHggMHB4OyB9CiAgZGl2LmZhbWlseV9z -ZWN0aW9uMiB7IG1hcmdpbjogMjVweCA0cHggMHB4OyB9CiAgZGwucHJldl9saXN0IGR0IHNwYW4u -cHJldiB7IHBhZGRpbmctcmlnaHQ6IDBweDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0 -aWFsOyB9CiAgZGwucHJldl9saXN0IGR0IHNwYW4ubmV4dCB7IHBhZGRpbmctcmlnaHQ6IDBweDsg -YmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBi -YWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGwudGJsX3R5cGUgZGQgcC50 -YmxfbWVudCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiA3cHg7IG1hcmdpbi1sZWZ0OiAw -cHg7IH0KICBkbC50YmxfdHlwZSBkZCB1bC5zbnNfbGlzdCBsaSArIGxpIHNwYW4uYnRuX2FyZWEg -eyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogN3B4OyB9CiAgZGl2Lm5vdGljZSB7IHBhZGRp -bmctcmlnaHQ6IDcwcHg7IH0KICBkaXYubm90aWNlIGRsIGRkLmZsIHsgd2lkdGg6IDEwMCU7IGZs -b2F0OiBub25lOyB9CiAgZGl2LmZvb3Rlcl9pbiB7IHdpZHRoOiA5NS43MDMxMjUlOyB9CiAgZGl2 -LmZvb3Rlcl9vcGVuIHsgd2lkdGg6IDk1LjcwMzEyNSU7IH0KICBkaXYuZm9vdGVyX2Nsb3NlIHsg -d2lkdGg6IDk1LjcwMzEyNSU7IH0KICAudGJsX3R5cGUyIGRkIC5yZWxhdGUgLnRlbCB7IGxlZnQ6 -IDQ1JTsgfQogIC50YmxfdHlwZTMgZGQgc3BhbiwgLnRibF90eXBlMyBkbC53aWRlIGRkIHVsIGxp -IHNwYW4geyBsZWZ0OiA1NSU7IH0KICBkaXYjbGF5V3JhcC5sIHsgd2lkdGg6IDcyMHB4OyB9CiAg -LnJzc190eHQgeyBkaXNwbGF5OiBub25lOyB9CiAgLnJzc190eHRfdCB7IGRpc3BsYXk6IGJsb2Nr -OyBtYXJnaW46IDE1cHg7IHBhZGRpbmc6IDBweCAwcHggMHB4IDk4cHg7IGhlaWdodDogNzFweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY29t -bW9uL2JnX3Jzc19pYy5naWYpOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxLjU7IGxl -dHRlci1zcGFjaW5nOiAtMXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLnRibF9kYXRhMiB0 -ZCAucnNzX2J0biBzcGFuIHsgcG9zaXRpb246IHN0YXRpYzsgZGlzcGxheTogYmxvY2s7IG1hcmdp -bi10b3A6IDdweDsgfQogIC50YmxfZGF0YTIgLmJybm9uZSB7IGJvcmRlci1yaWdodC13aWR0aDog -MXB4OyBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOyBib3JkZXItcmlnaHQtY29sb3I6IHJnYigy -MjUsIDIyNSwgMjI1KTsgfQogIC5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGkuZGVwdGggeyBv -dmVyZmxvdzogaGlkZGVuOyB9CiAgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiBsaS5kZXB0aCA+ -IGEgeyBmbG9hdDogbm9uZTsgfQogIC5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGkuZGVwdGgg -dWwgeyBwYWRkaW5nOiA3cHggMHB4OyB9CiAgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiBsaS5k -ZXB0aCB1bCBsaSB7IHBhZGRpbmc6IDBweCAwcHggMnB4IDdweDsgYmFja2dyb3VuZC1pbWFnZTog -dXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY29tbW9uL2JsX3NpdGVtYXAuZ2lm -KTsgZm9udC1zaXplOiAxM3B4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggNnB4OyBiYWNrZ3Jv -dW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5zaXRlbWFwIC5zaXRlbWFwX3Nl -Y3Rpb24gbGkuZGVwdGggdWwgbGkubGlua19iYXIgYSB7IHBhZGRpbmc6IDBweCAxcHggMHB4IDVw -eDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMv -YnVfbGlzdGJhci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggM3B4OyBiYWNrZ3JvdW5k -LXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rp -b24gbGkuZGVwdGggdWwgbGkubGlua19iYXIgYTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctbGVmdDog -MHB4OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KfQoKQG1lZGlhIG9ubHkg -c2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkgeyAKICBib2R5LnN1YmNvbnQgeyBiYWNrZ3Jv -dW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYucG9wX2xheWVyIHsgbWluLXdpZHRo -OiAzMDBweDsgfQogIGRpdi5wb3BfbGF5ZXIgZGl2LnBvcF9sYXllcmluIHsgd2lkdGg6IDkzLjc1 -JTsgcGFkZGluZy1ib3R0b206IDBweDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFs -OyB9CiAgZGl2LnBvcF9sYXllciBkaXYucG9wX2xheWVyaW4gc3Ryb25nLCBkaXYucG9wX2xheWVy -IGRpdi5wb3BfbGF5ZXJpbiBwLCBkaXYucG9wX2xheWVyIGRpdi5wb3BfbGF5ZXJpbiB1bCB7IG1h -cmdpbi1sZWZ0OiAwcHg7IH0KICBkaXYucG9wX2xheWVyIGRpdi5wb3BfbGF5ZXJpbiBwLmNsb3Nl -IHsgcG9zaXRpb246IHN0YXRpYzsgbWFyZ2luLXRvcDogMTVweDsgdGV4dC1hbGlnbjogcmlnaHQ7 -IH0KICBociB7IGhlaWdodDogMjBweDsgfQogIC5tbm9uZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9y -dGFudDsgfQogIC5ub25lIHsgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH0KICBo -ZWFkZXIgeyB3aWR0aDogMTAwJTsgfQogIGRpdiNjb250ZW50cyB7IHdpZHRoOiAxMDAlOyB9CiAg -ZGl2LnRvcF91dGlsbGFyZWEgeyBtYXJnaW46IDBweDsgfQogIGRpdi5tX2duYmFyZWEgeyBkaXNw -bGF5OiBibG9jazsgfQogIGRpdi5tX3V0aWxsYXJlYSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgaGVh -ZGVyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYmdfYm9keWxpbmVfbS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmhlYWRlcl9p -biB7IHdpZHRoOiAxMDAlOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t -c3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMTYzLCAxNjMsIDE2Myk7IH0K -ICBoMSBhIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDZweDsgbGVmdDogNTAlOyBtYXJnaW4t -bGVmdDogLTQ1cHg7IHdpZHRoOiA5MHB4OyBoZWlnaHQ6IDMwcHg7IH0KICBoMSBhIGltZyB7IHdp -ZHRoOiA5MHB4OyBoZWlnaHQ6IDMwcHg7IH0KICB1bC5nbmIgeyBkaXNwbGF5OiBub25lOyB9CiAg -ZGl2LmduYl9jb250YXJlYSB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYuZ25iX2NvbnRhcmVhLmFi -b3V0IHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5nbmJfY29udGFyZWEuY2FyZWVyIHsgZGlzcGxh -eTogbm9uZTsgfQogIGEuYnRfbG9nIHsgZGlzcGxheTogbm9uZTsgfQogIGEuYnRfbG9nMyB7IGRp -c3BsYXk6IG5vbmU7IH0KICBzcGFuLnNpdGVfa2luZCB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYu -c2l0ZV9zZWwgeyBkaXNwbGF5OiBub25lOyB9CiAgYS5hbGxfa2luZCB7IGRpc3BsYXk6IG5vbmU7 -IH0KICB1bC5mYW1pbHlfc2l0ZSB7IGRpc3BsYXk6IG5vbmU7IH0KICBzcGFuLnNpdGVfYWxsa2lu -ZCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93 -d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfc2l0ZWtpbmQuZ2lmKTsgcGFkZGluZy1yaWdodDog -MTdweDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgd2lkdGg6IDkwcHg7IGhlaWdodDogMjJw -eDsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDEycHg7IGJhY2tncm91bmQt -cG9zaXRpb246IDg1cHggMXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQogIGRpdi5tX2duYmFyZWEgeyB9CiAgZGl2Lm1fZ25iYXJlYSBhLmduYl92aWV3IHsgcG9z -aXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBkaXNwbGF5OiBibG9jazsgfQog -IGRpdi5tX2duYmFyZWEgYS5nbmJfdmlldyBpbWcgeyB3aWR0aDogNTFweDsgaGVpZ2h0OiA1MHB4 -OyB9CiAgZGl2Lm1fdXRpbGxhcmVhIHsgfQogIGRpdi5tX3V0aWxsYXJlYSBhLnV0aWxsX3ZpZXcg -eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyByaWdodDogMHB4OyBkaXNwbGF5OiBibG9j -azsgfQogIGRpdi5tX2hlYWRlciB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiA4MHB4IDBweCAw -cHg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRl -eDogMTAwMDA7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBp -bml0aWFsOyB9CiAgZGl2Lm1fZ25iX2Nsb3NlIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogNDJweDsg -YmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDE0NSwgMjIwKTsgcG9zaXRpb246IGFic29sdXRlOyB0 -b3A6IDBweDsgdGV4dC1hbGlnbjogcmlnaHQ7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwg -aW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIGRpdi5tX2du -Yl9jbG9zZSBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDEwcHggMThweCAwcHgg -MHB4OyB9CiAgZGl2Lm1fZ25iX2Nsb3NlIGEgaW1nIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRw -eDsgfQogIHVsLm1fZ25iIHsgbWFyZ2luOiAwcHggMjBweDsgfQogIHVsLm1fZ25iIGxpIHsgbWFy -Z2luLWJvdHRvbTogMThweDsgfQogIHVsLm1fZ25iIGxpIGEgeyB3aWR0aDogMTEwcHg7IGNvbG9y -OiByZ2IoMTcwLCAxNzQsIDE3OCk7IGZvbnQtc2l6ZTogMTZweDsgYm9yZGVyLWJvdHRvbS13aWR0 -aDogNHB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjog -cmdiKDIyNSwgMjI1LCAyMjUpOyBwYWRkaW5nOiAwcHggMHB4IDEycHg7IGRpc3BsYXk6IGlubGlu -ZS1ibG9jazsgZm9udC13ZWlnaHQ6IDYwMDsgfQogIHVsLm1fZ25iIGxpLm9uIGEgeyBjb2xvcjog -cmdiKDQxLCA1NiwgNzIpOyBmb250LXNpemU6IDE2cHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDRw -eDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigw -LCAxNDUsIDIyMCk7IH0KICB1bC5tX2duYiBsaSB1bC5tX3N1YmduYiB7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgdG9wOiA4MHB4OyBsZWZ0OiAxNTBweDsgd2lkdGg6IDQ2JTsgfQogIHVsLm1fZ25iIGxp -IHVsLm1fc3ViZ25iIGxpIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMywgMTIzLCAx -OTEpOyB9CiAgdWwubV9nbmIgbGkgdWwubV9zdWJnbmIgbGkgYSB7IGJvcmRlci1ib3R0b20tc3R5 -bGU6IG5vbmU7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6 -IDBweDsgZm9udC1zaXplOiAxM3B4OyB9CiAgdWwubV9nbmIgbGkgdWwubV9zdWJnbmIyIHsgYm9y -ZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1j -b2xvcjogcmdiKDAsIDE0NSwgMjIwKTsgbWFyZ2luLXRvcDogOHB4OyB9CiAgdWwubV9nbmIgbGkg -dWwubV9zdWJnbmIyIGxpIHsgbWFyZ2luLWJvdHRvbTogMHB4OyB9CiAgdWwubV9nbmIgbGkgdWwu -bV9zdWJnbmIyIGxpIGEgeyB3aWR0aDogMTAwJTsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsg -Zm9udC1zaXplOiAxM3B4OyBwYWRkaW5nOiA4cHggMHB4IDlweDsgYm9yZGVyLWJvdHRvbS13aWR0 -aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjog -cmdiKDIyNSwgMjI1LCAyMjUpOyBmb250LXdlaWdodDogbm9ybWFsOyB9CiAgdWwubV9nbmIgbGkg -dWwubV9zdWJnbmIyIGxpLnN1YiBhIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfb3Blbi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5 -OCUgNTAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIHVsLm1f -Z25iIGxpIHVsLm1fc3ViZ25iMiBsaS5zdWIub24gYSB7IGJvcmRlci1ib3R0b20td2lkdGg6IDFw -eDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigx -NzMsIDE4NCwgMTkxKTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYnVfY2xvc2UuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogOTglIDUwJTsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5tX2duYiBsaSB1 -bC5tX3N1YmduYjIgbGkuc3ViIHVsLnN1Yl9saXN0IHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4 -OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIy -NSwgMjI1LCAyMjUpOyBwYWRkaW5nOiA1cHggMHB4OyB9CiAgdWwubV9nbmIgbGkgdWwubV9zdWJn -bmIyIGxpLnN1YiB1bC5zdWJfbGlzdCBsaSBhIHsgYmFja2dyb3VuZDogbm9uZTsgZm9udC1zaXpl -OiAxMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyBwYWRkaW5nOiA0cHggMHB4OyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KICB1bC5tX2duYiBsaSB1bC5tX3N1YmduYjIgbGkuc3ViIHVsLnN1Yl9s -aXN0IGxpIGEgc3BhbiB7IGNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGRpc3BsYXk6IGlubGlu -ZS1ibG9jazsgbWFyZ2luOiAwcHggM3B4OyB9CiAgZGl2Lm1fdXRpbGwgeyB3aWR0aDogMTAwJTsg -bWFyZ2luLXRvcDogMTAwcHg7IH0KICBkaXYubV91dGlsbCB1bCB7IHdpZHRoOiAxMTBweDsgYm9y -ZGVyOiAxcHggc29saWQgcmdiKDIyNSwgMjI1LCAyMjUpOyBtYXJnaW46IDBweCAwcHggMHB4IDIw -cHg7IH0KICBkaXYubV91dGlsbCB1bCBsaSB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVy -LXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsg -fQogIGRpdi5tX3V0aWxsIHVsIGxpOmZpcnN0LWNoaWxkIHsgYm9yZGVyLXRvcC1zdHlsZTogbm9u -ZTsgfQogIGRpdi5tX3V0aWxsIHVsIGxpIHsgcGFkZGluZzogNnB4IDhweDsgfQogIGRpdi5tX3V0 -aWxsIHVsIGxpIGEgeyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgZm9u -dC1zaXplOiAxMnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNv -LmtyL2ltYWdlcy9idV9hcnJvdzIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA0cHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2Lm1fZm9vdGVy -IHsgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQtY29sb3I6IHJnYig3MSwgODQsIDEyMik7IHBv -c2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTAwMDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEw -MCU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBl -YXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIGEubV9mb290ZXJfY2xvc2UgeyBwb3NpdGlvbjogYWJz -b2x1dGU7IHRvcDogMjBweDsgcmlnaHQ6IDIwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQog -IGEubV9mb290ZXJfY2xvc2UgaW1nIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgfQogIHAu -bV9mdGl0X2FyZWEgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXNpemU6IDE0cHg7 -IGZvbnQtd2VpZ2h0OiA2MDA7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2JnX2Zvb3RlcnRpdC5naWYpOyBwYWRkaW5nOiAwcHggMHB4IDE1cHg7 -IG1hcmdpbjogMjBweCAyMHB4IDEwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAxMDAlOyBi -YWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQogIHAubV9mdGl0X2FyZWEgc3Bh -biB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93 -d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfc2l0ZWtpbmQuZ2lmKTsgcGFkZGluZy1yaWdodDog -MjNweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAycHg7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgdWwubV9mbGlzdCB7IG1hcmdpbjogMHB4IDIwcHggMjBw -eDsgfQogIHVsLm1fZmxpc3QgbGkgeyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1i -b3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoNDUsIDU5LCAxMDAp -OyB9CiAgdWwubV9mbGlzdCBsaS5vbiB7IGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH0KICB1 -bC5tX2ZsaXN0IGxpIGEgeyBwYWRkaW5nOiAxNXB4IDBweDsgY29sb3I6IHJnYigyNTUsIDI1NSwg -MjU1KTsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBkaXNwbGF5OiBibG9jazsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVf -b3Blbi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NyUgNTAlOyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIHVsLm1fZmxpc3QgbGkub24gYSB7IGNvbG9yOiBy -Z2IoMjU1LCAyNTUsIDI1NSk7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgZGlz -cGxheTogYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28u -a3IvaW1hZ2VzL2J1X2Nsb3NlMi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5NyUgNTAlOyBi -YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIHVsLm1fZmxpc3QgbGkg -c3BhbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMXB4IDBweCAzcHggMzBweDsg -fQogIHVsLm1fZmxpc3QgbGkgc3Bhbi5raW5kIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvaWNvX2Zvb3Rlci5naWYpOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiAxMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KICB1bC5tX2ZsaXN0IGxpIHNwYW4ua2luZDIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9pY29fZm9vdGVyMi5naWYpOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiAxMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBl -YXQ7IH0KICB1bC5tX2ZsaXN0IGxpIHNwYW4ua2luZDMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9pY29fZm9vdGVyMy5naWYpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiAxMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1y -ZXBlYXQ7IH0KICB1bC5tX2ZsaXN0IGxpIHNwYW4ua2luZDQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9pY29fZm9vdGVyNC5naWYpOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiAxMHB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KICB1bC5tX2ZsaXN0IGRpdi5tX2ZsaXN0X2FyZWEgeyBiYWNrZ3JvdW5kLWNv -bG9yOiByZ2IoNTUsIDcwLCAxMTApOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7IGJvcmRl -ci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7 -IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dy -b3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlh -bCBpbml0aWFsOyB9CiAgdWwubV9mbGlzdCBkaXYubV9mbGlzdF9hcmVhIHVsIHsgb3ZlcmZsb3c6 -IGhpZGRlbjsgbWFyZ2luOiA1cHggMTVweDsgfQogIHVsLm1fZmxpc3QgZGl2Lm1fZmxpc3RfYXJl -YSB1bCBsaSB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7 -IGJvcmRlci10b3AtY29sb3I6IHJnYig2NCwgNzgsIDExNik7IGJvcmRlci1ib3R0b20tc3R5bGU6 -IG5vbmU7IHdpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiA0cHggMHB4IDJw -eDsgfQogIHVsLm1fZmxpc3QgZGl2Lm1fZmxpc3RfYXJlYSB1bCBsaTpmaXJzdC1jaGlsZCB7IGJv -cmRlci10b3Atc3R5bGU6IG5vbmU7IH0KICB1bC5tX2ZsaXN0IGRpdi5tX2ZsaXN0X2FyZWEgdWwg -bGkgYSB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogbm9uZTsgcGFk -ZGluZzogNHB4IDBweCAwcHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogMTJweDsg -Y29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgdWwubV9mbGlz -dCBkaXYubV9mbGlzdF9hcmVhIHVsIGxpIGE6aG92ZXIgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAy -NTUpOyB9CiAgdWwubV9mbGlzdCBkaXYubV9mbGlzdF9hcmVhIHVsIGxpIHNwYW4uaWNvIHsgZGlz -cGxheTogYmxvY2s7IGZsb2F0OiByaWdodDsgfQogIHVsLm1fZmxpc3QgZGl2Lm1fZmxpc3RfYXJl -YSB1bCBsaSBzcGFuLmljbyBhIHsgZGlzcGxheTogaW5saW5lOyBwYWRkaW5nOiAwcHg7IH0KICB1 -bC5tX2ZsaXN0IGRpdi5tX2ZsaXN0X2FyZWEgdWwgbGkgc3Bhbi5pY28gYSBpbWcgeyB3aWR0aDog -MjBweDsgaGVpZ2h0OiAyMHB4OyBtYXJnaW46IDBweCAxcHg7IH0KICBkaXYubV9tZW1iZXJ6b25l -IHsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDQwcHg7IH0KICBk -aXYubV9tZW1iZXJ6b25lIHAudGl0IHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogcmdiKDI1NSwg -MjU1LCAyNTUpOyBtYXJnaW4tbGVmdDogMTBweDsgfQogIGRpdi5tX21lbWJlcnNpdGUgeyBiYWNr -Z3JvdW5kLWNvbG9yOiByZ2IoNDUsIDU5LCAxMDApOyBwYWRkaW5nOiA4cHggMHB4OyBtYXJnaW4t -dG9wOiAxMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYubV9tZW1iZXJzaXRlIHVsIHsgb3Zl -cmZsb3c6IGhpZGRlbjsgcGFkZGluZy1sZWZ0OiAxMHB4OyB9CiAgZGl2Lm1fbWVtYmVyc2l0ZSB1 -bCBsaSB7IGZsb2F0OiBsZWZ0OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1z -dHlsZTogc29saWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoNjQsIDc4LCAxMTYpOyBwYWRkaW5n -OiAwcHggNnB4OyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQogIGRpdi5tX21lbWJlcnNpdGUgdWwg -bGkgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVfZmFtaWx5LnBuZyk7IHBhZGRpbmctcmlnaHQ6 -IDE4cHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHJnYig1MywgMTk3LCAyMTcpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiAxMDAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1y -ZXBlYXQ7IH0KICBkaXYubV9tZW1iZXJzaXRlIHVsIGxpOmZpcnN0LWNoaWxkIHsgYm9yZGVyLWxl -ZnQtc3R5bGU6IG5vbmU7IHBhZGRpbmctbGVmdDogMHB4OyB9CiAgZGl2I2NvbnRlbnRzIHsgcGFk -ZGluZzogMHB4OyB9CiAgZGl2I3dyYXAgeyB3aWR0aDogMTAwJTsgbWluLXdpZHRoOiAzMDBweDsg -YmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBi -YWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LnNuc19zaGFyZWFyZWEg -eyBkaXNwbGF5OiBub25lOyB9CiAgZGl2LnRvcGFyZWEgeyBwYWRkaW5nOiAwcHg7IH0KICBwLnRp -dF9kZXMgeyBtYXJnaW46IDBweDsgZm9udC1zaXplOiAxM3B4OyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgfQogIGRpdi5iZ19ub3RpY2UgeyBoZWlnaHQ6IGF1dG87IHBhZGRpbmc6IDBweCAwcHggMTBw -eDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgaDIgeyBkaXNwbGF5OiBu -b25lOyB9CiAgZGl2LnRvcGFyZWFfaW4gaDIgeyBkaXNwbGF5OiBub25lOyB9CiAgYm9keS5tc2ll -NyBkaXYudG9wYXJlYV9pbiBoMiB7IGRpc3BsYXk6IG5vbmU7IH0KICB1bC51dGlsbF9saW5rIHsg -ZGlzcGxheTogbm9uZTsgfQogIGRpdi5wYWdlbG9jYXRpb24geyBkaXNwbGF5OiBub25lOyB9CiAg -ZGl2Lm1fcGFnZWxvY2F0aW9uIHsgZGlzcGxheTogYmxvY2s7IGJvcmRlci1ib3R0b20td2lkdGg6 -IDNweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJn -YigyMjIsIDIyMiwgMjIyKTsgfQogIGRpdi5tX3BhZ2Vsb2NhdGlvbiB1bCB7IGJvcmRlci10b3At -d2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJn -Yig4OSwgMTU3LCAxODMpOyB9CiAgZGl2Lm1fcGFnZWxvY2F0aW9uIHVsIGxpLnRpdCB7IGJhY2tn -cm91bmQtY29sb3I6IHJnYig3MiwgMTI4LCAxNjIpOyBwYWRkaW5nOiA1cHggMHB4IDVweCA0MHB4 -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYubV9wYWdlbG9jYXRpb24gdWwgbGkgeyBiYWNrZ3Jv -dW5kLWNvbG9yOiByZ2IoNDMsIDcxLCA4OCk7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVy -LXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYig1NiwgODgsIDExMSk7IGJv -cmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRl -ci1ib3R0b20tY29sb3I6IHJnYigzMCwgNTEsIDYzKTsgcGFkZGluZy1sZWZ0OiA0MHB4OyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KICBkaXYubV9wYWdlbG9jYXRpb24gdWwgbGk6Zmlyc3QtY2hpbGQgeyBi -b3JkZXItdG9wLXN0eWxlOiBub25lOyB9CiAgZGl2Lm1fcGFnZWxvY2F0aW9uIHVsIGxpIGEgeyBk -aXNwbGF5OiBibG9jazsgd2lkdGg6IDkzLjc1JTsgbWFyZ2luOiAwcHggYXV0bzsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgcGFkZGluZzogMTBweCAwcHg7IH0KICBkaXYubV9wYWdlbG9jYXRp -b24gdWwgbGkudGl0IGEgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXdlaWdodDog -NjAwOyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYnVfbG9jYXRpb25fbTIucG5nKTsgYmFja2dyb3VuZC1zaXplOiAy -M3B4OyBwYWRkaW5nOiA1cHggMHB4OyB3aWR0aDogOTMuNzUlOyBtYXJnaW46IDBweCBhdXRvOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KICBkaXYubV9wYWdlbG9jYXRpb24gdWwgbGkudGl0Lm9uIGEgeyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV9sb2Nh -dGlvbl9vbl9tMi5wbmcpOyBiYWNrZ3JvdW5kLXNpemU6IDIzcHg7IGJhY2tncm91bmQtcG9zaXRp -b246IDEwMCUgNHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQog -IGRpdi5tX3BhZ2Vsb2NhdGlvbiB1bCBsaSBhLmJhY2sgeyBiYWNrZ3JvdW5kOiBub25lOyBwb3Np -dGlvbjogYWJzb2x1dGU7IG1hcmdpbi1sZWZ0OiAtMjVweDsgd2lkdGg6IDE5cHg7IGJhY2tncm91 -bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwg -aW5pdGlhbDsgfQogIGRpdi5tX3BhZ2Vsb2NhdGlvbiB1bCBsaS50aXQub24gYS5iYWNrIHsgYmFj -a2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LnRvcGFyZWEyIHsgYm9yZGVy -LWJvdHRvbS1zdHlsZTogbm9uZTsgbWFyZ2luLWJvdHRvbTogMTBweDsgcGFkZGluZy10b3A6IDBw -eDsgfQogIGRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiB7IH0KICBkaXYudG9wYXJlYTIgZGl2 -LnRvcGFyZWFfaW4gaDIsIGJvZHkubXNpZTcgZGl2LnRvcGFyZWEyIGRpdi50b3BhcmVhX2luIGgy -IHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBzcGFuLnRp -dF9kZXMyIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyBt -YXJnaW46IDEwcHggMHB4IDBweDsgZm9udC1zaXplOiAxM3B4OyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgfQogIGRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBkaXYuaW1nIHsgbWFyZ2luLXRvcDog -MTBweDsgfQogIGRpdi5pbnRyb192b2RhcmVhIGRpdi5sZWZ0YXJlYSB7IGZsb2F0OiBub25lOyB3 -aWR0aDogMTAwJTsgfQogIGRpdi5pbnRyb192b2RhcmVhIGRpdi5yaWdodGFyZWEgeyBmbG9hdDog -bm9uZTsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCBhdXRvIDBweDsgfQogIGRpdi5iZ19pbnRy -byB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2Vz -L21vYmlsZS9iZ19pbnRyby5naWYpOyBwYWRkaW5nOiAyODRweCAxMHB4IDQwcHggMHB4OyBoZWln -aHQ6IGF1dG87IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYuYnRfdXRpbGxtZW51IHsgZGlzcGxheTogbm9u -ZTsgfQogIGRpdi5idF91dGlsbG1lbnUgYSB7IGRpc3BsYXk6IG5vbmU7IH0KICBhLmdsb2JhbC1z -ZWFyY2ggeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9idF91dGlsbHZpZXdfbS5naWYpOyB3aWR0aDogNTFweDsgaGVpZ2h0OiA1MHB4OyBmbG9h -dDogcmlnaHQ7IG1hcmdpbi10b3A6IDBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5z -ZWFyY2hfbGF5ZXIgeyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyB9CiAgZGl2LnNlYXJjaF9s -YXllcmluIHsgfQogIGRpdi5zZWFyY2hfY29udCB7IHdpZHRoOiA4Ny41JTsgbWFyZ2luOiAwcHgg -YXV0bzsgfQogIGRpdi5zZWFyY2hfbGF5ZXJpbiBpbnB1dC53b3JkIHsgd2lkdGg6IDczLjUlOyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19p -bnB1dHdvcmRfbS5naWYpOyBmb250LXNpemU6IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEw -cHggNXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5z -ZWFyY2hfbGF5ZXJpbiBpbnB1dC5ud29yZCB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQogIGRpdi5zZWFyY2hfbGF5ZXJpbiBzcGFuLmJnYXJlYSBhIGltZyB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgdG9wOiAxMnB4OyByaWdodDogMTJweDsgd2lkdGg6IDI2cHg7IGhlaWdodDog -MjZweDsgfQogIGRpdi5idG5fZmluZGFyZWEgeyBkaXNwbGF5OiBub25lOyB9CiAgZGl2LnNlYXJj -aF9sYXllcmluIHNwYW4ud29yZF9jaGVhcmVhIHsgdG9wOiA1NXB4OyB9CiAgZGl2LmNvbnRhaW5l -ciB7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFs -OyB9CiAgZGl2LnRvcGFyZWFfaW4geyB3aWR0aDogOTMuNzUlOyBtYXJnaW46IDBweCBhdXRvOyBw -YWRkaW5nLWJvdHRvbTogMTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItYm90dG9tLXN0 -eWxlOiBub25lOyB9CiAgZGl2LnRvcGFyZWFfaW4gYS5idF9sb2cyIHsgZGlzcGxheTogYmxvY2s7 -IG1hcmdpbi1sZWZ0OiAwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDBweDsgYm90dG9t -OiAxNXB4OyB9CiAgZGl2LmNvbnRfaW5mbyB7IHdpZHRoOiA5My43NSU7IG1hcmdpbjogMHB4IGF1 -dG87IH0KICBkaXYuc2VhcmNoX2xheWVyaW4geyB3aWR0aDogMTAwJTsgfQogIGgyLnRpdF9pbnRy -byBpbWcgeyB3aWR0aDogMTA3cHg7IGhlaWdodDogMzBweDsgfQogIGRpdi5iZ19pbWdpbnRybyB7 -IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEyODRweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvbW9iaWxlL2JnX2ltZ2ludHJvLnBuZyk7IGJhY2tn -cm91bmQtc2l6ZTogMTAwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDBweDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYuYmdpbnRyb190eHQgeyBwb3Np -dGlvbjogaW5oZXJpdDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMzIwcHg7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL21vYmlsZS9iZ2ludHJvX3R4 -dC5wbmcpOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNv -bGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjM3LCAyMzcsIDIzNyk7IHBhZGRpbmc6IDMw -cHggMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5iZ2ludHJvX3R4dDIgeyBwb3NpdGlvbjogaW5o -ZXJpdDsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0 -dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvbW9iaWxlL2JnaW50cm9fdHh0Mi5wbmcpOyBt -YXJnaW46IDBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIzNywgMjM3LCAyMzcpOyBwYWRkaW5n -OiAzMHB4IDBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJl -cGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5iZ2ludHJvX3R4dDMgeyBwb3NpdGlv -bjogaW5oZXJpdDsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgYmFja2dyb3VuZC1pbWFnZTog -dXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvbW9iaWxlL2JnaW50cm9fdHh0My5w -bmcpOyBtYXJnaW46IDBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9t -LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIzNywgMjM3LCAyMzcpOyBw -YWRkaW5nOiAzMHB4IDBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDEwMCU7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmJnaW50cm9fdHh0NCB7IHBv -c2l0aW9uOiBpbmhlcml0OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9tb2JpbGUvYmdpbnRyb190 -eHQ0LnBuZyk7IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAzMHB4IDBweDsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsg -fQogIGRpdi5iZ2ludHJvX3R4dCBkaXYuaW50cm9fdHh0YXJlYSB7IHBvc2l0aW9uOiBpbmhlcml0 -OyBwYWRkaW5nOiAwcHggMTBweCAwcHggMjAwcHg7IH0KICBkaXYuYmdpbnRyb190eHQyIGRpdi5p -bnRyb190eHRhcmVhIHsgcG9zaXRpb246IGluaGVyaXQ7IHBhZGRpbmc6IDBweCAxMTBweCAwcHgg -MHB4OyB9CiAgZGl2LmJnaW50cm9fdHh0MyBkaXYuaW50cm9fdHh0YXJlYSB7IHBvc2l0aW9uOiBp -bmhlcml0OyBwYWRkaW5nOiAwcHggMTBweCAwcHggMTEwcHg7IH0KICBkaXYuYmdpbnRyb190eHQ0 -IGRpdi5pbnRyb190eHRhcmVhIHsgcG9zaXRpb246IGluaGVyaXQ7IHBhZGRpbmc6IDBweCAxMTBw -eCAwcHggMHB4OyB9CiAgZGl2LmludHJvX3ZvZGFyZWEgeyBtYXJnaW46IDUwcHggMHB4IDBweDsg -fQogIGZvb3RlciB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp -YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIGRpdi5m -b290ZXJfb3BlbiB7IGRpc3BsYXk6IG5vbmU7IHdpZHRoOiAxMDAlOyB9CiAgZGl2LmZvb3Rlcl9j -bG9zZSB7IGRpc3BsYXk6IG5vbmU7IHdpZHRoOiAxMDAlOyB9CiAgZGwuZmluZF93b3JkIHsgZGlz -cGxheTogbm9uZTsgfQogIHNwYW4ud29yZF9jaGVhcmVhIHsgZGlzcGxheTogbm9uZTsgfQogIGEu -bV9hbGx2aWV3IHsgZGlzcGxheTogYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v -d3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X29wZW5mb290ZXIuZ2lmKTsgd2lkdGg6IDkzLjc1 -JTsgbWFyZ2luOiAwcHggYXV0bzsgcGFkZGluZzogNnB4IDBweDsgYmFja2dyb3VuZC1wb3NpdGlv -bjogMTAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAg -YS5tX2FsbHZpZXcgc3BhbiB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGlu -bGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYnVfc2l0ZWtpbmQuZ2lmKTsgcGFkZGluZy1yaWdodDogMjBweDsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMTAwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CiAgZGl2LmZvb3Rlcl9pbiB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLXRvcDogMjBweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdf -Zm9vdGVyMl9tLmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTIsIDI1MiwgMjUwKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVw -ZWF0IG5vLXJlcGVhdDsgfQogIGEuYWxsX2tpbmQgeyB0b3A6IDE2cHg7IHJpZ2h0OiAxMHB4OyB9 -CiAgdWwuY29tbW9uX21lbnUgeyB0b3A6IDUycHg7IGxlZnQ6IDIwcHg7IG1hcmdpbi1yaWdodDog -MTAwcHg7IH0KICB1bC5jb21tb25fbWVudSBsaSB7IGxpbmUtaGVpZ2h0OiAxNTAlOyBwYWRkaW5n -OiAwcHggMTBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYnVfY29tbW9uLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDRweDsgYmFj -a2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5jb21tb25fbWVudSBs -aSBhIHsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KICBhLnNp -dGVfa2luZG9wZW4geyBkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDdw -eDsgcmlnaHQ6IDIwcHg7IH0KICBkaXYuZm9vdGVyX2luIHsgcGFkZGluZy10b3A6IDdweDsgfQog -IGZvb3RlciBwLmNvcHkgeyBkaXNwbGF5OiBub25lOyB9CiAgZm9vdGVyIHAubW9iaWxlX2NvcHkg -eyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJvcmRlci10b3Atd2lkdGg6 -IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUs -IDIyNSwgMjI1KTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAxOHB4IDBweCAyMHB4OyBt -YXJnaW4tdG9wOiA5NXB4OyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5p -dGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2 -LnNuc19hcmVhIHsgdG9wOiA1M3B4OyByaWdodDogMjBweDsgfQogIGRpdi5mb290ZXJfb3BlbmFy -ZWEgeyBkaXNwbGF5OiBub25lOyB9CiAgZGl2LnNlYXJjaF9sYXllciB7IGhlaWdodDogMTEwcHg7 -IH0KICBkaXYuc2VhcmNoX2xheWVyaW4geyBtYXJnaW46IDMwcHggYXV0byAwcHg7IH0KICBkaXYu -bGVmdGFyZWEgeyBmbG9hdDogbm9uZTsgZGlzcGxheTogYmxvY2s7IH0KICBkaXYucmlnaHRhcmVh -IHsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiAxMHB4OyB9CiAgdGFi -bGUubm90aWNlX2xpc3QgdGQgZW0uZGF0ZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiA0 -cHg7IH0KICBkbC5saXN0X3ZpZXcgZHQudGl0IHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiAyMCU7IH0K -ICBkbC5saXN0X3ZpZXcgZGQuc3ViIHsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDgwJTsgfQog -IGRsLmxpc3RfdmlldyBkdC50aXRfZGF0ZSB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMjAlOyBib3Jk -ZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNv -bG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KICBkbC5saXN0X3ZpZXcgZGQuZGF0ZSB7IG92ZXJm -bG93OiBoaWRkZW47IHdpZHRoOiA4MCU7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRv -cC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQog -IGRpdi52aWV3X2luZm8geyBwYWRkaW5nOiAxNXB4IDBweDsgfQogIGRsLnJlbGF0ZWRfbmV3cyB7 -IG1hcmdpbjogMjBweCAwcHggNXB4OyB9CiAgZGwucHJldl9saXN0IGR0IHsgd2lkdGg6IDIwJTsg -fQogIGRsLnByZXZfbGlzdCBkdCBzcGFuLnByZXYgeyBtYXJnaW4tcmlnaHQ6IDBweDsgcGFkZGlu -Zy1yaWdodDogMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0 -aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkbC5w -cmV2X2xpc3QgZHQgc3Bhbi5uZXh0IHsgbWFyZ2luLXJpZ2h0OiAwcHg7IHBhZGRpbmctcmlnaHQ6 -IDBweDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0 -aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGwucHJldl9saXN0 -IGRkIHNwYW4uZGF0ZSB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYubW92aWVfb3V0ZXIgeyB3aWR0 -aDogODAlOyBoZWlnaHQ6IDMwMHB4OyB9CiAgZGl2LnBhZ2luZyBhIHsgZGlzcGxheTogbm9uZTsg -fQogIGRpdi5wYWdpbmcgYS5wcmV2IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9CiAgZGl2LnBh -Z2luZyBhLnByZXYyIHsgfQogIGRpdi5wYWdpbmcgYS5uZXh0IHsgZGlzcGxheTogaW5saW5lLWJs -b2NrOyB9CiAgZGl2LnBhZ2luZyBhLm5leHQyIHsgfQogIGRpdi5wYWdpbmcgYS5vbiB7IGRpc3Bs -YXk6IGlubGluZS1ibG9jazsgfQogIGRpdi5wYWdpbmcgc3Bhbi50b3RhbCB7IGRpc3BsYXk6IGlu -bGluZS1ibG9jazsgbGV0dGVyLXNwYWNpbmc6IC0wLjE1ZW07IH0KICBwLmRlc2MzIHsgZm9udC1z -aXplOiAxM3B4OyB9CiAgZGwudGJsX3R5cGUgZHQgeyBmbG9hdDogbm9uZTsgd2lkdGg6IGF1dG87 -IHBhZGRpbmctbGVmdDogMTBweDsgfQogIGRsLnRibF90eXBlIGR0LmJsaW5kICsgZGQgeyBwYWRk -aW5nLWxlZnQ6IDEwcHg7IH0KICBkbC50YmxfdHlwZSBkZCB7IG92ZXJmbG93OiB2aXNpYmxlOyBi -b3JkZXItdG9wLXN0eWxlOiBub25lOyBwYWRkaW5nOiA3cHggMTBweDsgfQogIGRsLnRibF90eXBl -IGRkIC5pbnB1dCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tcmlnaHQ6IDIycHg7IH0KICBkbC50 -YmxfdHlwZSBkZCBzcGFuLnBvc3RfYnRuIHNwYW4uYXJyb3cgeyBkaXNwbGF5OiBub25lOyBwb3Np -dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMycHg7IHRvcDogMjhweDsgd2lkdGg6IDlweDsgaGVpZ2h0 -OiA1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2JnX2Fycm93NC5wbmcpOyB6LWluZGV4OiAxOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0 -aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAg -Ym9keS5jaHJvbWUgZGwudGJsX3R5cGUgZGQgc3Bhbi5wb3N0X2J0biBzcGFuLmFycm93LCBib2R5 -LnNhZmFyaSBkbC50YmxfdHlwZSBkZCBzcGFuLnBvc3RfYnRuIHNwYW4uYXJyb3cgeyB0b3A6IDI5 -cHg7IH0KICBkbC50YmxfdHlwZSBkZCBzcGFuLnBvc3RfZGV0YWlsIHsgZGlzcGxheTogYmxvY2s7 -IG1hcmdpbi10b3A6IDdweDsgfQogIGRsLnRibF90eXBlIGRkIHNwYW4uZW1haWxfZGV0YWlsIHsg -ZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDdweDsgfQogIGRsLnRibF90eXBlIGRkIHNwYW4u -cG9zdF9kZXRhaWwgaW5wdXRbdHlwZT0idGV4dCJdICsgaW5wdXRbdHlwZT0idGV4dCJdIHsgZGlz -cGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDdweDsgfQogIGRsLnRibF90eXBlIGRkIHAudGJsX21l -bnQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogN3B4OyBtYXJnaW4tbGVmdDogMHB4OyB9 -CiAgZGwudGJsX3R5cGUgZGQgdWwuc25zX2xpc3QgeyBtYXJnaW46IDBweCAtN3B4OyB9CiAgZGwu -dGJsX3R5cGUgZGQgdWwuc25zX2xpc3QgbGkgeyBwYWRkaW5nOiAwcHggN3B4OyB9CiAgZGwudGJs -X3R5cGUgZGQgdWwuc25zX2xpc3QgbGkgc3Bhbi5idG5fYXJlYSB7IGRpc3BsYXk6IGJsb2NrOyBt -YXJnaW4tdG9wOiA0cHg7IH0KICBkbC50YmxfdHlwZSBkZCB1bC5zbnNfbGlzdCBsaSBzcGFuLmJ0 -bl9hcmVhIGVtIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDJweDsgfQogIGRsLnRibF90 -eXBlIGRkIHVsLmxpbmVfdHlwZSB7IG1hcmdpbjogLTdweCAtMTBweDsgfQogIGRsLnRibF90eXBl -IGRkIHVsLmxpbmVfdHlwZSBsaSB7IHBhZGRpbmc6IDdweCAxMHB4OyB9CiAgZGwudGJsX3R5cGUg -ZGQgdWwubGluZV90eXBlIGxpIHNwYW4ubGFiZWwgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJv -dHRvbTogN3B4OyB9CiAgZGwudGJsX3R5cGUgZGQgZGl2I2xheUNvbnRhaW5lciB7IG1hcmdpbjog -MTBweCAtMjBweCAxMHB4IDBweDsgfQogIGRsLnRibF90eXBlIGRkIGRpdiNsYXlDb250ZW50cyBk -aXYuc2Nyb2xsX2JveCB7IG1hcmdpbjogLTExcHggMHB4IDBweDsgfQogIGRsLnRibF90eXBlIGRk -IGRpdiNsYXlDb250ZW50cyBkaXYuc2Nyb2xsX2JveC5vbiA+IHVsLnBvc3RfbGlzdCB7IG92ZXJm -bG93OiB2aXNpYmxlOyBoZWlnaHQ6IGF1dG87IH0KICBkbC50YmxfdHlwZSBkZCBkaXYjbGF5Q29u -dGVudHMgZGwuYm9yZGVyTm9uZV9iIHsgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsgfQogIGRs -LnRibF90eXBlIGRkIGRpdiNsYXlDb250ZW50cyBkbC5ib3JkZXJOb25lX2IgZGQgeyBwYWRkaW5n -OiAwcHg7IH0KICAudXNlciBpbnB1dFt0eXBlPSJ0ZXh0Il0geyB3aWR0aDogNzglOyB9CiAgLnBv -c3Qgc3Bhbi5wb3N0X2RldGFpbCBpbnB1dFt0eXBlPSJ0ZXh0Il0geyB3aWR0aDogNzglOyB9CiAg -LnBhc3N3b3JkIGlucHV0W3R5cGU9InBhc3N3b3JkIl0geyB3aWR0aDogNzglOyB9CiAgZGl2LmJn -X3N1YnNjcmliZSB7IGhlaWdodDogYXV0bzsgcGFkZGluZzogMHB4IDBweCAxMHB4OyBiYWNrZ3Jv -dW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYuc2Nyb2xsX2JveCB7IG1hcmdpbi1y -aWdodDogMHB4OyB9CiAgZGl2LnNjcm9sbF9ib3gub24gPiBkbC50ZXJtcyB7IG92ZXJmbG93LXk6 -IGF1dG87IGhlaWdodDogYXV0bzsgfQogIHNwYW4ubW9yZSB7IHdpZHRoOiAxMDAlOyBkaXNwbGF5 -OiBibG9jazsgbWFyZ2luOiAtNnB4IDJweCA1cHggMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJh -Y2tncm91bmQtY29sb3I6IHJnYigyNDUsIDI0NSwgMjQ1KTsgYm94LXNoYWRvdzogcmdiYSgyMTcs -IDIxNywgMjE3LCAwLjQ5ODAzOSkgMHB4IDFweCAxcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIHNw -YW4ubW9yZSBhIHsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIxNywgMjE3LCAyMTcpOyBwYWRkaW5n -OiAxMHB4IDBweDsgfQogIHNwYW4ubW9yZSBhLm9wZW4geyBkaXNwbGF5OiBibG9jazsgfQogIHNw -YW4ubW9yZSBhLm9wZW4gZW0geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6 -IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J0X21vcmVf -b3Blbi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdweDsgYmFja2dyb3VuZC1yZXBl -YXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBzcGFuLm1vcmUgYS5jbG9zZSB7IGRpc3BsYXk6 -IG5vbmU7IH0KICBzcGFuLm1vcmUgYS5jbG9zZSBlbSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg -cGFkZGluZy1yaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMDQsIDEx -NiwgMTI5KTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvYnRfbW9yZV9jbG9zZS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdweDsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5zdWJzY3JpYmVf -bGlzdCBsaSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgdWwuc3Vic2NyaWJlX2xpc3QgbGkgKyBsaSB7 -IG1hcmdpbi10b3A6IDZweDsgfQogIGRpdi5ub3RpY2UgeyBwYWRkaW5nOiAyMHB4OyBiYWNrZ3Jv -dW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYubm90aWNlIGRsIHsgcGFkZGluZzog -MHB4OyB9CiAgZGl2Lm5vdGljZSBkbCBkZCB7IHBhZGRpbmc6IDBweCAwcHggMHB4IDZweDsgfQog -IGRpdi5ub3RpY2UgZGwgZGQuZmwgeyB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IH0KICAubGF5 -X2hlbHAgLnR4dF9oZWxwIHsgcG9zaXRpb246IHN0YXRpYzsgbGVmdDogMHB4OyB0b3A6IDBweDsg -d2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDhweDsgYm94LXNoYWRvdzogcmdiYSgyMTksIDIxOSwg -MjE5LCAwLjgpIDBweCAwcHggNHB4IGluc2V0OyB9CiAgLmxheV9oZWxwIHNwYW4uYXJyb3cgeyBs -ZWZ0OiA2cHg7IHRvcDogMjJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYmdfYXJyb3czLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -ICBkaXYjbGF5V3JhcCB7IHBvc2l0aW9uOiBzdGF0aWM7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7 -IH0KICBkaXYjbGF5Q29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBib3JkZXItdG9wLWxl -ZnQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci1ib3R0 -b20tcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDsgYm94 -LXNoYWRvdzogbm9uZTsgfQogIGRpdiNsYXlIZWFkZXIgeyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJv -eC1zaGFkb3c6IHJnYmEoMTIsIDExNSwgMTc4LCAwLjQ5ODAzOSkgMHB4IDNweCAzcHggNXB4IGlu -c2V0OyB9CiAgZGl2I2xheUhlYWRlciBoMSB7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNp -bmc6IDBweDsgfQogIGRpdiNsYXlDb250ZW50cyB7IHBhZGRpbmc6IDEwcHggMjBweCAyMHB4OyBi -b3gtc2hhZG93OiBub25lOyB9CiAgZGl2I2xheUNvbnRlbnRzIH4gYS5jbG9zZSB7IHRvcDogMTBw -eDsgcmlnaHQ6IDIwcHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJvcmRlcjogbm9uZTsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRf -Y2xvc2U1LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYjbGF5Q29udGVudHMgcCB7 -IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KICBkaXYjbGF5Q29udGVudHMgZGwudGJsX3R5cGUgZHQg -eyB3aWR0aDogYXV0bzsgfQogIGRpdiNsYXlDb250ZW50cyBkaXYuYnRuX2JyaW5nIHsgZGlzcGxh -eTogYmxvY2s7IH0KICBkaXYjbGF5Q29udGVudHMgc3Bhbi5tb3JlIHsgbWFyZ2luLXRvcDogMHB4 -OyB9CiAgZGl2I2xheUNvbnRlbnRzIHNwYW4ubW9yZSBhLm9wZW4geyBkaXNwbGF5OiBibG9jazsg -fQogIGRpdiNsYXlDb250ZW50cyBzcGFuLm1vcmUgYS5vcGVuIGVtIHsgZGlzcGxheTogaW5saW5l -LWJsb2NrOyBwYWRkaW5nLXJpZ2h0OiAyMHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdi -KDEwNCwgMTE2LCAxMjkpOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9idF9tb3JlX29wZW4uZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAw -JSA3cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2I2xh -eUNvbnRlbnRzIHNwYW4ubW9yZSBhLmNsb3NlIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdiNsYXlD -b250ZW50cyBzcGFuLm1vcmUgYS5jbG9zZSBlbSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFk -ZGluZy1yaWdodDogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMDQsIDExNiwg -MTI5KTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYnRfbW9yZV9jbG9zZS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDdweDsgYmFj -a2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICAuc2VhcmNoX3R4dCB7IHBh -ZGRpbmc6IDI1cHggMHB4OyBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOiAwcHg7IH0K -ICAuc2VhcmNoX3Jlc3VsdCBoMiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiA3cHg7 -IGZvbnQtc2l6ZTogMTVweDsgbGV0dGVyLXNwYWNpbmc6IDBweDsgfQogIC5zZWFyY2hfcmVzdWx0 -IGRsIHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9y -ZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnNlYXJjaF9yZXN1bHQgZHQg -eyBwYWRkaW5nOiAxNXB4IDBweCA1cHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRv -cC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgZm9u -dC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogMHB4OyB9CiAgLnNlYXJjaF9yZXN1bHQgZGQg -eyBib3JkZXI6IG5vbmU7IHBhZGRpbmctYm90dG9tOiAxNXB4OyB9CiAgLnNlYXJjaF9yZXN1bHQg -ZGQgLndyaXRpbmcgeyBkaXNwbGF5OiBub25lOyB9CiAgLnNlYXJjaF9yZXN1bHQgLmJ0bl90Ymwg -eyBkaXNwbGF5OiBub25lOyB9CiAgLnNlYXJjaF9yZXN1bHQgLmJ0bl9tb3JlIHsgZGlzcGxheTog -YmxvY2s7IH0KICAudGFiX21lbnUgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgaGVp -Z2h0OiAzNXB4OyBiYWNrZ3JvdW5kOiBub25lOyBib3gtc2hhZG93OiByZ2IoMTkzLCAxOTMsIDE5 -MykgMHB4IDJweCAxcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFj -a2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIC50YWJfbWVudSBsaSB7IGNsZWFy -OiBib3RoOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAgLnRhYl9tZW51IGxpLnNlbGVjdGVkIHsgZGlz -cGxheTogYmxvY2s7IH0KICAudGFiX21lbnUgbGkuc2VsZWN0ZWQgYSB7IGRpc3BsYXk6IGJsb2Nr -OyBwYWRkaW5nOiA5cHggMHB4IDBweCAyMHB4OyBoZWlnaHQ6IDI2cHg7IGJvcmRlci1zdHlsZTog -bm9uZSBub25lIHNvbGlkOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t -Y29sb3I6IHJnYigzNiwgNDYsIDcxKTsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyBib3Jk -ZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4 -OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3NlbGVjdF9tLmdpZik7IGJhY2tncm91 -bmQtY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdi -KDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEycHg7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLnRhYl9tZW51IGxpIGEgeyBkaXNw -bGF5OiBibG9jazsgcGFkZGluZzogOXB4IDBweCAwcHggMjBweDsgaGVpZ2h0OiAyNnB4OyBib3Jk -ZXItd2lkdGg6IDFweDsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWNvbG9yOiByZ2IoNzYs -IDg3LCAxMTcpIHJnYigzNiwgNDYsIDcxKSByZ2IoMzYsIDQ2LCA3MSk7IGJhY2tncm91bmQtY29s -b3I6IHJnYig1NSwgNzAsIDEwOSk7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91 -bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwg -aW5pdGlhbDsgfQogIC50YWJfbWVudSBsaTpsYXN0LWNoaWxkIGEgeyBib3JkZXItdG9wLWxlZnQt -cmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci1ib3R0b20t -cmlnaHQtcmFkaXVzOiAzcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfQogIC50 -YWJfbWVudSBsaS5vbiBhIHsgcG9zaXRpb246IHN0YXRpYzsgcmlnaHQ6IDBweDsgYmFja2dyb3Vu -ZC1jb2xvcjogcmdiKDU1LCA3MCwgMTA5KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLnRhYl9tZW51 -IGxpIHsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfQogIC5idG5fbW9yZSB7IGRpc3BsYXk6IGJs -b2NrOyBwYWRkaW5nLWxlZnQ6IDBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIxNywgMjE3LCAy -MTcpOyBib3gtc2hhZG93OiByZ2IoMjQzLCAyNDMsIDI0MykgMHB4IDFweCAwcHg7IGJvcmRlci10 -b3AtbGVmdC1yYWRpdXM6IDBweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVy -LWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4 -OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LCAyNDUsIDI0NSk7IHRleHQtYWxpZ246IGNlbnRl -cjsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVh -dDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLmJ0bl9tb3JlIGEgeyBwYWRkaW5nLXRvcDogNnB4OyBo -ZWlnaHQ6IDI1cHg7IGJhY2tncm91bmQ6IG5vbmU7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiBy -Z2IoMTA0LCAxMTYsIDEyOSk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsg -YmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIC5idG5fbW9yZSBhIHNwYW4g -eyBwYWRkaW5nLXJpZ2h0OiAxOHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5z -YW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzguZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -MTAwJSA1cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLmJ0 -bl9tb3JlIGEgZW0geyBmb250LXdlaWdodDogbm9ybWFsOyB9CiAgLmJ0bl9jbG9zZSB7IGRpc3Bs -YXk6IGJsb2NrOyBwYWRkaW5nLWxlZnQ6IDBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIxNywg -MjE3LCAyMTcpOyBib3gtc2hhZG93OiByZ2IoMjQzLCAyNDMsIDI0MykgMHB4IDFweCAwcHg7IGJv -cmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsg -Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1 -czogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LCAyNDUsIDI0NSk7IHRleHQtYWxpZ246 -IGNlbnRlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLmJ0bl9jbG9zZSBhIHsgcGFkZGluZy10b3A6 -IDZweDsgaGVpZ2h0OiAyNXB4OyBiYWNrZ3JvdW5kOiBub25lOyBmb250LXdlaWdodDogNjAwOyBj -b2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICAuYnRuX2Nsb3Nl -IGEgc3BhbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3Iv -aW1hZ2VzL2JnX2Fycm93MTAuZ2lmKTsgcGFkZGluZy1yaWdodDogMThweDsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMTAwJSA1cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0 -OyB9CiAgZGl2LmJnX3NlcnZpY2UgeyBoZWlnaHQ6IGF1dG87IHBhZGRpbmc6IDBweCAwcHggMTBw -eDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLnN1cHBvcnQgLnN1cHBv -cnRfaW5kZXggLmluZGV4X2Jsb2NrLCAuc3VwcG9ydCAuc3VwcG9ydF9pbmRleCAuaW5kZXhfYmxv -Y2suc3VwcG9ydCB7IHdpZHRoOiAxMDAlOyB9CiAgZGl2LmJnX2N1c3RvbWVyIHsgaGVpZ2h0OiBh -dXRvOyBwYWRkaW5nOiAwcHggMHB4IDEwcHg7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQogIC50YmxfdHlwZTIgeyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1i -b3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIy -NSk7IH0KICAudGJsX3R5cGUyIGR0IHsgZmxvYXQ6IG5vbmU7IHBhZGRpbmctYm90dG9tOiAxMnB4 -OyB3aWR0aDogMTAwJTsgYm9yZGVyLXRvcC13aWR0aDogMnB4OyBib3JkZXItdG9wLXN0eWxlOiBz -b2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnRibF90eXBl -MiBkdC5zaG93IHsgfQogIC50YmxfdHlwZTIgZGQgeyBwYWRkaW5nOiAxMHB4IDBweCAxMnB4OyB9 -CiAgLnRibF90eXBlMiBkdDpmaXJzdC1jaGlsZCArIGRkIHsgYm9yZGVyLXRvcC13aWR0aDogMXB4 -OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyB9CiAgLnRibF90eXBlMiBkZCAucmVsYXRlIHsgZGlzcGxheTogYmxvY2s7IG1hcmdp -bi1ib3R0b206IDEwcHg7IHdpZHRoOiAxMDAlOyB9CiAgLnRibF90eXBlMiBkZCAucmVsYXRlIC50 -ZWwgeyBsZWZ0OiAxNDBweDsgfQogIC50YmxfdHlwZTIgZGQgdWwubGluZV90eXBlIGxpIHsgcGFk -ZGluZzogN3B4IDBweCAxMnB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5 -bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KICAudGJs -X3R5cGUzIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBz -b2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnRibF90 -eXBlMyBkbCwgLnRibF90eXBlMyBkbC53aWRlIGRkIHVsIHsgZmxvYXQ6IG5vbmU7IG1hcmdpbi1y -aWdodDogMHB4OyB3aWR0aDogMTAwJTsgfQogIC50YmxfdHlwZTMgZHQgeyBib3JkZXItdG9wLXdp -ZHRoOiAycHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2Io -MjI1LCAyMjUsIDIyNSk7IH0KICAudGJsX3R5cGUzIGRsOmZpcnN0LWNoaWxkIGR0IHsgYm9yZGVy -LXRvcC1zdHlsZTogbm9uZTsgfQogIC50YmxfdHlwZTMgZHQuc2hvdyB7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3Nob3doaWRlLmdpZik7 -IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTMwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y -ZXBlYXQgbm8tcmVwZWF0OyB9CiAgLnRibF90eXBlMyBkZCBzcGFuLCAudGJsX3R5cGUzIGRsLndp -ZGUgZGQgdWwgbGkgc3BhbiB7IGxlZnQ6IDE0MHB4OyB9CiAgLnRibF90eXBlMyBkbC53aWRlIHsg -Ym9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQogIC50YmxfdHlwZTMgZGwud2lkZSBkZCB1bCB7IGJv -cmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH0KICAudGJsX3R5cGU0IHsgb3ZlcmZsb3c6IGhpZGRl -bjsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTog -c29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgZm9udC1zaXplOiAx -M3B4OyB9CiAgLnRibF90eXBlNCBkbCB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTsgYm9yZGVy -LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJv -dHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnRibF90eXBlNCBkbC5sYXN0IHsg -bWFyZ2luLXJpZ2h0OiAwcHg7IH0KICAudGJsX3R5cGU0IGR0IHsgcGFkZGluZzogMTBweCAwcHgg -MTFweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQogIC50YmxfdHlwZTQgZGQsIC50YmxfdHlwZTQgZGQu -Zml4aGVpZ2ggeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDlweCAwcHggNDBweDsgaGVp -Z2h0OiAxJTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnRibF90eXBlNCBkZDpm -aXJzdC1jaGlsZCB7IGJvcmRlci10b3Atc3R5bGU6IG5vbmU7IH0KICAudGJsX3R5cGU0IGRkLmZp -eGhlaWdoIHsgaGVpZ2h0OiAxOHB4OyBsaW5lLWhlaWdodDogMS4zZW07IH0KICAudGJsX3R5cGU0 -IGRkIHNwYW4ubWFpbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTAwcHg7IHRvcDogN3B4 -OyB9CiAgLnRibF90eXBlNCBkZCBzcGFuLnRlbCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog -MTAwcHg7IHRvcDogMjVweDsgfQogIC50YmxfdHlwZTQgZGQgc3Bhbi50ZWwyIHsgcG9zaXRpb246 -IGFic29sdXRlOyBsZWZ0OiAxMDBweDsgdG9wOiAyNnB4OyB9CiAgLnRibF90eXBlNCBkZCBzcGFu -Lm9ubHkgeyB0b3A6IDdweDsgfQogIC5zdWJfaW5mbyAubGVmdGFyZWEsIC5zdWJfaW5mbyAucmln -aHRhcmVhIHsgY2xlYXI6IGJvdGg7IHdpZHRoOiAxMDAlOyB9CiAgLnN1Yl9pbmZvIC5yaWdodGFy -ZWEgeyBtYXJnaW4tdG9wOiAzMHB4OyB9CiAgLnN1Yl9pbmZvIC5zdWJfcmVwb3J0LCAuc3ViX2lu -Zm8gLnN1Yl9pbnF1aXJ5IHsgcGFkZGluZzogOHB4IDBweCAwcHg7IGhlaWdodDogYXV0bzsgYmFj -a2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLmJnX3NpdGVtYXAgeyBiYWNrZ3Jv -dW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICAuc2l0ZW1hcF93cmFwIHsgb3ZlcmZsb3c6 -IGhpZGRlbjsgfQogIC5zaXRlbWFwIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZmxvYXQ6IG5vbmU7IG1h -cmdpbjogMHB4OyB3aWR0aDogMTAwJTsgfQogIC5zaXRlbWFwIGgzIHsgbWFyZ2luOiAzMHB4IDBw -eCAxMHB4OyBwYWRkaW5nLWJvdHRvbTogN3B4OyBmb250LXNpemU6IDE1cHg7IH0KICAuc2l0ZW1h -cDpmaXJzdC1jaGlsZCBoMyB7IG1hcmdpbi10b3A6IDBweDsgfQogIC5zaXRlbWFwIC5zaXRlbWFw -X3NlY3Rpb24geyBmbG9hdDogbGVmdDsgcGFkZGluZy1yaWdodDogMiU7IHdpZHRoOiA0Ny44JTsg -Zm9udC1zaXplOiAxM3B4OyB9CiAgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbi5sYXN0IHsgcGFk -ZGluZzogMHB4IDBweCAwcHggMiU7IH0KICAuc2l0ZW1hcCAuc2l0ZW1hcF9zZWN0aW9uIGg0IHsg -cGFkZGluZzogNnB4IDBweCAwcHg7IGhlaWdodDogMjZweDsgZm9udC1zaXplOiAxM3B4OyB9CiAg -LnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiA+IHVsID4gbGkgeyBwYWRkaW5nOiA2cHggMHB4IDBw -eDsgbWluLWhlaWdodDogMjZweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90 -dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUp -OyB9CiAgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiBsaS5kZXB0aCA+IGEgeyBmbG9hdDogbm9u -ZTsgfQogIC5zaXRlbWFwIC5zaXRlbWFwX3NlY3Rpb24gbGkuZGVwdGggdWwgeyBwYWRkaW5nOiA3 -cHggMHB4OyB9CiAgLnNpdGVtYXAgLnNpdGVtYXBfc2VjdGlvbiBsaS5kZXB0aCB1bCBsaSB7IGZv -bnQtc2l6ZTogMTJweDsgfQogIC5iZ19yc3MgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGlu -aXRpYWw7IH0KICAucnNzX3R4dCB7IHBhZGRpbmc6IDBweDsgaGVpZ2h0OiBhdXRvOyBiYWNrZ3Jv -dW5kOiBub25lOyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwg -aW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIC5yc3Nfc2Vj -dGlvbiB7IGZvbnQtc2l6ZTogMTNweDsgfQogIC5yc3Nfc2VjdGlvbiBoMyB7IGZvbnQtc2l6ZTog -MThweDsgfQogIC5yc3Nfc2VjdGlvbiB0aCB7IHdpZHRoOiAzNSU7IH0KICAucnNzX3NlY3Rpb24g -dGQgeyB3aWR0aDogNjUlOyB9CiAgLnRibF9kYXRhMiB0aCwgLnRibF9kYXRhMiB0ZCB7IHBhZGRp -bmctbGVmdDogMTJweDsgfQogIC50YmxfZGF0YTIgdGQgLnJzc19idG4gc3BhbiB7IHBvc2l0aW9u -OiBzdGF0aWM7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiA3cHg7IH0KICAudGJsX2RhdGEy -IHRkIC5yc3NfYnRuIHNwYW4gYSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOiA1cHg7IH0K -ICAudGJsX2RhdGEyIC5icm5vbmUgeyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXJp -Z2h0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7 -IH0KICBkaXYubGF5ZXJfY2FsZW5kYXIgZGl2LndyYXBfY2FsZW5kYXIgeyBwb3NpdGlvbjogc3Rh -dGljOyB3aWR0aDogMTExJTsgbWFyZ2luLWxlZnQ6IC02M3B4OyBsZWZ0OiBhdXRvOyB9CiAgZGl2 -LmxheWVyX2NhbGVuZGFyIGRpdi50b3AgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRp -YWw7IH0KICBkaXYubGF5ZXJfY2FsZW5kYXIgZGl2LmJvdHRvbSB7IGJhY2tncm91bmQ6IG5vbmU7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IGluaXRpYWwgaW5pdGlhbDsgfQogIGRpdi5sYXllcl9jYWxlbmRhciBkaXYuaW5uZXIgeyBib3Jk -ZXItc3R5bGU6IHNvbGlkIG5vbmU7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 -KTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTcxLCAxNzMs -IDE3OSk7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdi -KDE3MSwgMTczLCAxNzkpOyBwYWRkaW5nOiAxMHB4IDBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjog -aW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAg -ZGl2LmxheWVyX2NhbGVuZGFyIGRpdi5pbm5lciB0YWJsZSB7IHdpZHRoOiAxMDAlOyB9CiAgZGl2 -LmxheWVyX2NhbGVuZGFyIGRpdi5pbm5lciB0YWJsZS5jYWxlbmRhciB0aGVhZCB0aCB7IHRleHQt -YWxpZ246IGNlbnRlcjsgfQogIC5lcnJvciB7IG1hcmdpbjogMHB4OyB3aWR0aDogMTAwJTsgfQog -IC5lcnJvciBzdHJvbmcgeyBwYWRkaW5nLXRvcDogNTVweDsgYmFja2dyb3VuZDogbm9uZTsgZm9u -dC1zaXplOiAyMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tn -cm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICAuZXJyb3IgLmVycm9yX3R4dCB7IGRp -c3BsYXk6IG5vbmU7IH0KICAuZXJyb3IgLmVycm9yX3R4dC5tIHsgZGlzcGxheTogYmxvY2sgIWlt -cG9ydGFudDsgfQogIC5lcnJvciAuYnRuX2JfYXJyb3cgeyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAg -Lm5vZGF0YSB7IG1hcmdpbjogMTcwcHggYXV0byAyNjBweDsgd2lkdGg6IDg1JTsgdGV4dC1hbGln -bjogY2VudGVyOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6 -IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IHBhZGRpbmct -Ym90dG9tOiAxMnB4OyB9CiAgLm5vZGF0YSBzdHJvbmcgeyBtYXJnaW4tYm90dG9tOiAxN3B4OyBw -YWRkaW5nOiAxN3B4IDBweCAxNXB4OyBiYWNrZ3JvdW5kOiBub25lOyBmb250LXNpemU6IDI0cHg7 -IGxldHRlci1zcGFjaW5nOiAtMXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBoMi5ub3RpX3RpdCB7 -IGRpc3BsYXk6IGJsb2NrOyB9CiAgZGl2LmluX2FyZWEgeyB3aWR0aDogMTAwJTsgbWFyZ2luOiAw -cHg7IH0KfQ== -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: text/css -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/css/about.css - -QGNoYXJzZXQgInV0Zi04IjsKCi50dmlldyB7IGRpc3BsYXk6IG5vbmU7IH0KCi5tdmlldyB7IGRp -c3BsYXk6IG5vbmU7IH0KCi5tdDEwIHsgbWFyZ2luLXRvcDogMTBweDsgfQoKLm10MTUgeyBtYXJn -aW4tdG9wOiAxNXB4OyB9CgoubXQyMCB7IG1hcmdpbi10b3A6IDIwcHg7IH0KCi5tcjEwIHsgbWFy -Z2luLXJpZ2h0OiAxMHB4OyB9CgoubWIxMCB7IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KCi5tYjE1 -IHsgbWFyZ2luLWJvdHRvbTogMTVweDsgfQoKLmZCb2xkIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0K -CnNwYW4uc2J0biB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfc19idG4uZ2lmKTsgcGFkZGluZzog -MHB4IDBweCAwcHggN3B4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CgpzcGFuLnNidG4gYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAx -MXB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBsZXR0ZXItc3BhY2luZzogMHB4ICFpbXBvcnRhbnQ7 -IH0KCnNwYW4uc2J0biBhLm9uIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB9CgpzcGFuLnNi -dG4gYTpmb2N1cyB7IG91dGxpbmUtc3R5bGU6IG5vbmU7IH0KCi5idG5fcnNzIGEgeyBiYWNrZ3Jv -dW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19zX2J0bi5n -aWYpOyBwYWRkaW5nOiAxcHggMjVweCAwcHggMHB4OyBoZWlnaHQ6IDE5cHg7IGJhY2tncm91bmQt -cG9zaXRpb246IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKLmJ0bl9wb3N0bGlzdCBhIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfc19idG4uZ2lmKTsgcGFkZGluZzogMnB4IDI1cHggMHB4 -IDBweDsgaGVpZ2h0OiAxOHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0yNnB4OyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmJ0bl9wb3N0bGlzdCBhLm9u -IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtNTJweDsgfQoKLmJ0bl9wb3N0dGh1bWIgYSB7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Jn -X3NfYnRuLmdpZik7IHBhZGRpbmc6IDJweCAyNXB4IDBweCAwcHg7IGhlaWdodDogMThweDsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtNzhweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCi5idG5fcG9zdHRodW1iIGEub24geyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiAxMDAlIC0xMDRweDsgfQoKLmJ0bl9yZXBseSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFk -ZGluZy1sZWZ0OiA3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2JnX2J0bi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTMzcHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYnRuX3JlcGx5IGEg -eyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMjRweCA3cHggMHB4IDBweDsgd2lkdGg6IDkxcHg7 -IGhlaWdodDogNDZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYmdfYnRuLmdpZik7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTVw -eDsgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0zM3B4OyBi -YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmJ0bl9zX3JlcGx5IHsg -ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWxlZnQ6IDdweDsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRuLmdpZik7IGJhY2tn -cm91bmQtcG9zaXRpb246IDBweCAtMTQxcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CgouYnRuX3NfcmVwbHkgYSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAx -NXB4IDdweCAwcHggMHB4OyB3aWR0aDogOTFweDsgaGVpZ2h0OiAzNHB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4uZ2lmKTsgZm9u -dC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tn -cm91bmQtcG9zaXRpb246IDEwMCUgLTE0MXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 -IG5vLXJlcGVhdDsgfQoKLmJ0bl9kb3duIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5n -LWxlZnQ6IDRweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYmdfYnRuLmdpZik7IG1hcmdpbi10b3A6IDEwcHg7IGJhY2tncm91bmQtcG9zaXRp -b246IDBweCAtMzI2cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9 -CgouYnRuX2Rvd24gYSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAzcHggMjZweCAwcHggN3B4 -OyBoZWlnaHQ6IDE5cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2JnX2J0bi5naWYpOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiByZ2IoMjU1 -LCAyNTUsIDI1NSk7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAw -JSAtMzI2cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYnRu -X2JsX2FyciB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZy1sZWZ0OiAycHg7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0bi5n -aWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM1M3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmJ0bl9ibF9hcnIgYSB7IGRpc3BsYXk6IGJsb2NrOyBw -YWRkaW5nOiA2cHggMjlweCAwcHggMTRweDsgaGVpZ2h0OiAyMnB4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4uZ2lmKTsgZm9udC13 -ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IHRl -eHQtYWxpZ246IGNlbnRlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMzUzcHg7IGJhY2tn -cm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYnRuX2Fycm93IHsgZGlzcGxh -eTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWxlZnQ6IDExcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0bjIuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMHB4IC0zNXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJl -cGVhdDsgfQoKLmJ0bl9hcnJvdyBhLCAuYnRuX2FyZWEudGFiQnRuIC5idG5fYXJyb3cgYSB7IGRp -c3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAxcHggMjFweCAwcHggMHB4OyBoZWlnaHQ6IDIxcHg7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0 -bjIuZ2lmKTsgZm9udC1zaXplOiAxM3B4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIC0zNXB4 -OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmJ0bl9hcnJvd19v -cGVuIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWxlZnQ6IDlweDsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRuMi5naWYp -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAtOTlweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl -cGVhdCBuby1yZXBlYXQ7IH0KCi5idG5fYXJyb3dfb3BlbiBhIHsgZGlzcGxheTogYmxvY2s7IHBh -ZGRpbmc6IDFweCAxOXB4IDBweCAwcHg7IGhlaWdodDogMjFweDsgYmFja2dyb3VuZC1pbWFnZTog -dXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRuMi5naWYpOyBmb250LXdl -aWdodDogNjAwOyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTk5 -cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYnRuX2Fycm93 -X2Nsb3NlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nLWxlZnQ6IDlweDsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRuMi5n -aWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAtMTI4cHg7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYnRuX2Fycm93X2Nsb3NlIGEgeyBkaXNwbGF5OiBibG9j -azsgcGFkZGluZzogMXB4IDE5cHggMHB4IDBweDsgaGVpZ2h0OiAyMXB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4yLmdpZik7IGZv -bnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZvbnQtc2l6ZTogMTNw -eDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtMTI4cHg7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9Cgouc2VhcmNoIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQoK -LnNlYXJjaCAudHh0IHsgd2lkdGg6IDIwMHB4OyB9CgoudGJsX3dfZGF0YSB7IHdpZHRoOiAxMDAl -OyBib3JkZXItdG9wLXdpZHRoOiAycHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXIt -dG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs -IDI1NSwgMjU1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgoudGJsX3dfZGF0YSB0aCB7IHBhZGRpbmc6 -IDlweCAwcHggOXB4IDEwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRv -bS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsg -Zm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB0ZXh0LWFsaWduOiBs -ZWZ0OyB9CgoudGJsX3dfZGF0YSB0ZCB7IHBhZGRpbmc6IDlweCAwcHggOXB4IDEwcHg7IGJvcmRl -ci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1i -b3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsg -fQoKdWwuYmxfbGlzdCA+IGxpIHsgbWFyZ2luLWJvdHRvbTogM3B4OyBwYWRkaW5nLWxlZnQ6IDdw -eDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMv -YnVfZG90Mi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTBweDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5hYm91dF9jb250YWluZXIgZGl2LnBh -Z2Vsb2NhdGlvbiB7IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5hYm91dF9jb250YWluZXIgZGl2LmNv -bnRfaW5mbyB7IHBhZGRpbmctYm90dG9tOiAwcHg7IH0KCmRpdi5hYm91dF9jb250YWluZXIgZGl2 -LnNuc19zaGFyZWFyZWEgeyB0b3A6IDUwJTsgfQoKZGl2LmFib3V0X21haW4gZGl2LmNvbnRfaW5m -byB7IHBhZGRpbmctYm90dG9tOiAwcHg7IH0KCmRpdi5jb250X3NlY3Rpb24geyBvdmVyZmxvdzog -aGlkZGVuOyB9CgpkaXYuYWJvdXRfdG9wYXJlYSB7IG1hcmdpbjogMHB4IDBweCA4cHg7IHdpZHRo -OiA5OS44JTsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyB9CgpkaXYuYWJv -dXRfdG9wYXJlYSBhIHsgZGlzcGxheTogYmxvY2s7IH0KCmRpdi5hYm91dF90b3BhcmVhIGE6aG92 -ZXIgcCwgZGl2LmFib3V0X3RvcGFyZWEgYTpob3ZlciBzcGFuIHsgdGV4dC1kZWNvcmF0aW9uOiB1 -bmRlcmxpbmU7IH0KCmRpdi5hYm91dF90b3BhcmVhIGltZy53MTAwIHsgd2lkdGg6IDEwMCU7IHBv -c2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2LmFib3V0X3RvcGFyZWEgcC5kZXMgeyBwb3NpdGlvbjog -YWJzb2x1dGU7IHRleHQtYWxpZ246IGNlbnRlcjsgdG9wOiA2MHB4OyBsZWZ0OiAzMCU7IHotaW5k -ZXg6IDEwOyB9CgpkaXYuYWJvdXRfdG9wYXJlYSBwLmRlcyBzcGFuLnRpdCB7IGRpc3BsYXk6IGJs -b2NrOyBmb250LXNpemU6IDI0cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IGZvbnQtd2VpZ2h0 -OiA2MDA7IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KCmRpdi5hYm91dF90b3BhcmVhIHAuZGVzIHNw -YW4uc3ViIHsgZGlzcGxheTogYmxvY2s7IH0KCmRpdi5hYm91dF90b3BhcmVhIHAuZGVzIHNwYW4u -bXN1YiB7IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5idF9wbGF5ZXIgeyBwb3NpdGlvbjogYWJzb2x1 -dGU7IHRvcDogMjJweDsgcmlnaHQ6IDIxcHg7IHotaW5kZXg6IDEwOyB9CgpkaXYuYnRfcGxheWVy -IGEgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbjogMHB4IDFweDsgfQoKdWwuYnRfcm9s -bGluZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyByaWdodDogNjBweDsgei1pbmRl -eDogMTA7IH0KCnVsLmJ0X3JvbGxpbmcgbGkgeyBmbG9hdDogbGVmdDsgfQoKdWwuYnRfcm9sbGlu -ZyBsaSBhIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTFweDsgaGVpZ2h0OiAxMXB4 -OyBtYXJnaW46IDBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYmdfcm9sbGluZy5wbmcpOyBmb250LXNpemU6IDBweDsgbGluZS1oZWlnaHQ6 -IDA7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBl -YXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVsLmJ0X3JvbGxpbmcgbGkgYS5vbiB7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3JvbGxp -bmdfb24ucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuYnRfbXJvbGxpbmcgeyBkaXNw -bGF5OiBub25lOyB9CgpkaXYuYWJvdXRfbGVmdGFyZWEgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDMy -LjclOyBtYXJnaW46IDBweDsgfQoKZGl2LmFib3V0X21pZGFyZWEgeyBmbG9hdDogbGVmdDsgd2lk -dGg6IDMyLjclOyBtYXJnaW46IDBweCA4cHg7IH0KCmRpdi5hYm91dF9yaWdodGFyZWEgeyB3aWR0 -aDogMzIuNSU7IG1hcmdpbjogMHB4OyBmbG9hdDogbGVmdDsgfQoKZGl2LmFib3V0X3JpZ2h0YXJl -YSBkaXYuaW5hcmVhdG9wIHsgY2xlYXI6IGJvdGg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2 -LmFib3V0X3JpZ2h0YXJlYSBkaXYuaW5hcmVhdG9wIGltZy53MTAwIHsgd2lkdGg6IDEwMCU7IHBv -c2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2LmFib3V0X3JpZ2h0YXJlYSBkaXYuaW5hcmVhdG9wIHNw -YW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMThweDsgbGVmdDogOXB4OyBsaW5lLWhlaWdo -dDogMTMwJTsgZm9udC13ZWlnaHQ6IDYwMDsgei1pbmRleDogMTA7IH0KCmRpdi5hYm91dF9yaWdo -dGFyZWEgZGl2LmluYXJlYSB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNTAlOyBwb3NpdGlvbjogcmVs -YXRpdmU7IH0KCmRpdi5hYm91dF9yaWdodGFyZWEgZGl2LmluYXJlYSBpbWcudzEwMCB7IHdpZHRo -OiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KCmRpdi5hYm91dF9yaWdodGFyZWEgZGl2Lmlu -YXJlYSBzcGFuIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE4cHg7IGxlZnQ6IDlweDsgei1p -bmRleDogMTA7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCmRpdi5hYm91dF9yaWdodGFyZWEgZGl2Lmlu -YXJlYTIgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDUwJTsgcG9zaXRpb246IHJlbGF0aXZlOyB9Cgpk -aXYuYWJvdXRfcmlnaHRhcmVhIGRpdi5pbmFyZWEyIGltZy53MTAwIHsgd2lkdGg6IDEwMCU7IHBv -c2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2LmFib3V0X3JpZ2h0YXJlYSBkaXYuaW5hcmVhMiBzcGFu -IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE4cHg7IGxlZnQ6IDlweDsgei1pbmRleDogMTA7 -IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IH0KCmRpdi5pbmFy -ZWFfbSB7IG1hcmdpbjogMHB4OyB9CgpkaXYuaW5hcmVhX20gYSB7IGRpc3BsYXk6IGJsb2NrOyB9 -CgpkaXYuaW5hcmVhX20gYSBpbWcudzEwMCB7IHdpZHRoOiAxMDAlOyB9CgpkaXYuaW5hcmVhX20g -c3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMTdweCAwcHggOHB4OyB9CgpkaXYuaW5h -cmVhX20gc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDBweCAwcHggMjJweDsgbGluZS1o -ZWlnaHQ6IDE0MCU7IH0KCmRpdi5hYm91dF9zZWN0aW9uMiBpbWcudzEwMCB7IH0KCmRpdi5hYm91 -dF90eHRhcmVhIHsgZGlzcGxheTogbm9uZTsgfQoKZGl2Lm1fcm9sbGluZyB7IGRpc3BsYXk6IG5v -bmU7IH0KCmRpdi5hYm91dF90b3BhcmVhMiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm9yZGVyLWxl -ZnQtd2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xv -cjogcmdiKDE5MiwgMTkyLCAxOTIpOyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXJp -Z2h0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2IoMTkyLCAxOTIsIDE5Mik7 -IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJv -cmRlci1ib3R0b20tY29sb3I6IHJnYigxOTIsIDE5MiwgMTkyKTsgd2lkdGg6IDk5Ljc5JTsgbWFy -Z2luLWJvdHRvbTogNXB4OyBvdmVyZmxvdzogaGlkZGVuOyB9CgpkaXYuYWJvdXRfdG9wYXJlYTIg -dWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IH0KCmRpdi5hYm91dF90 -b3BhcmVhMiB1bCBsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZmxvYXQ6IGxlZnQ7IH0KCmRpdi5h -Ym91dF90b3BhcmVhMiBzcGFuLnRpdF9hcmVhIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDQw -cHg7IGxlZnQ6IDQwcHg7IHotaW5kZXg6IDEwOyBmb250LXdlaWdodDogNjAwOyB9CgpkaXYuYWJv -dXRfdG9wYXJlYTIgYTpmb2N1cyBzcGFuLnRpdF9hcmVhIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRl -cmxpbmU7IH0KCmRpdi5hYm91dF90b3BhcmVhMiBzcGFuLnRpdF9hcmVhIHNwYW4udGl0IHsgZGlz -cGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHJnYig1MSwgNTEsIDUxKTsgfQoK -ZGl2LmFib3V0X3RvcGFyZWEyIHNwYW4udGl0X2FyZWEgc3Bhbi5zdWIgeyBkaXNwbGF5OiBibG9j -azsgZm9udC1zaXplOiAzMHB4OyBsaW5lLWhlaWdodDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMTVw -eDsgfQoKZGl2LmFib3V0X3RvcGFyZWEyIHNwYW4udGl0X2FyZWEgc3Bhbi50eHQgeyBkaXNwbGF5 -OiBibG9jazsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogcmdiKDEwOCwgMTA4LCAxMDgpOyB9Cgpk -aXYuYWJvdXRfdG9wYXJlYTIgaW1nIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9CgpkaXYuYWJvdXRf -dG9wYXJlYTIgZGl2LnJlbW90ZV9hcmVhIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDIw -cHg7IGxlZnQ6IDQwcHg7IH0KCmEuYnRfcHJldiB7IG1hcmdpbjogMHB4OyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IHdpZHRoOiAyOXB4OyBoZWlnaHQ6IDI5cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0cHJldi5wbmcpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl -YXQgbm8tcmVwZWF0OyB9CgphLmJ0X3ByZXY6aG92ZXIgeyBtYXJnaW46IDBweDsgZGlzcGxheTog -aW5saW5lLWJsb2NrOyB3aWR0aDogMjlweDsgaGVpZ2h0OiAyOXB4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idHByZXZfb24ucG5nKTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYS5idF9wcmV2IHNwYW4geyB0ZXh0LWluZGVudDogLTk5 -OTlweDsgZm9udC1zaXplOiAwcHg7IGxpbmUtaGVpZ2h0OiAwOyB9CgphLmJ0X25leHQgeyBtYXJn -aW46IDBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjlweDsgaGVpZ2h0OiAyOXB4 -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9i -Z19idG5leHQucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYS5idF9uZXh0OmhvdmVyIHsg -bWFyZ2luOiAwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDI5cHg7IGhlaWdodDog -MjlweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYmdfYnRuZXh0X29uLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlh -bDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmEuYnRfbmV4dCBz -cGFuIHsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IGZvbnQtc2l6ZTogMHB4OyBsaW5lLWhlaWdodDog -MDsgfQoKYS5idF9wbGF5IHsgbWFyZ2luOiAwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lk -dGg6IDI5cHg7IGhlaWdodDogMjlweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYnRwbGF5LnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCmEuYnRfcGxheTpob3ZlciB7IG1hcmdpbjogMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 -IHdpZHRoOiAyOXB4OyBoZWlnaHQ6IDI5cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8v -d3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0cGxheV9vbi5wbmcpOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8t -cmVwZWF0OyB9CgphLmJ0X3BsYXkgc3BhbiB7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBmb250LXNp -emU6IDBweDsgbGluZS1oZWlnaHQ6IDA7IH0KCmEuYnRfcGF1c2UgeyBtYXJnaW46IDBweDsgZGlz -cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjlweDsgaGVpZ2h0OiAyOXB4OyBiYWNrZ3JvdW5k -LWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idHBhdXNlLnBu -Zyk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBl -YXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmEuYnRfcGF1c2U6aG92ZXIgeyBtYXJnaW46IDBw -eDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjlweDsgaGVpZ2h0OiAyOXB4OyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idHBh -dXNlX29uLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmEuYnRfcGF1c2Ugc3BhbiB7IHRl -eHQtaW5kZW50OiAtOTk5OXB4OyBmb250LXNpemU6IDBweDsgbGluZS1oZWlnaHQ6IDA7IH0KCm9s -LnJvbGxpbmdfYmFubmVyIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogNXB4IDEwcHggMHB4IDBweDsg -fQoKb2wucm9sbGluZ19iYW5uZXIgbGkgeyBmbG9hdDogbGVmdDsgfQoKb2wucm9sbGluZ19iYW5u -ZXIgbGkgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luOiAwcHggMXB4OyB3aWR0aDog -OHB4OyBoZWlnaHQ6IDdweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3Vu -Zy5jby5rci9pbWFnZXMvYWJvdXQvcm9sbGluZy5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBp -bml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9 -CgpvbC5yb2xsaW5nX2Jhbm5lciBsaSBhLm9uIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0 -aDogOHB4OyBoZWlnaHQ6IDdweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYWJvdXQvcm9sbGluZ19vbi5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CgpkaXYuYWJvdXRfdG9wYXJlYTIgZGl2LnJlbW90ZV9hcmVhIGEuc3RvcCB7IGRpc3Bs -YXk6IGlubGluZS1ibG9jazsgfQoKZGl2LmFib3V0X3RvcGFyZWEyIGRpdi5yZW1vdGVfYXJlYSBh -LnB1bHNlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDogM3B4OyB9CgpkaXYu -YWJvdXRfbWlkYXJlYTIgeyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLWJv -dHRvbTogNXB4OyB9CgpkaXYuYWJvdXRfbWlkYXJlYTIgZGl2LmxlZnRfYXJlYTIgeyBmbG9hdDog -bGVmdDsgd2lkdGg6IDYxLjk3JTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUyLCA1MiwgNTIpOyBi -b3JkZXI6IDFweCBzb2xpZCByZ2IoNTIsIDUyLCA1Mik7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2 -LmFib3V0X21pZGFyZWEyIGRpdi5sZWZ0X2FyZWEyIGRpdi5sZWZ0X2FyZWFpbiB7IG1hcmdpbjog -N3B4IDhweCA3cHggN3B4OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KCmRpdi5hYm91dF9taWRhcmVh -MiBkaXYubGVmdF9hcmVhMiBkaXYubGVmdF9hcmVhaW4gc3Bhbi50aXRfYXJlYSB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgYm90dG9tOiAxMHB4OyBsZWZ0OiAxM3B4OyB6LWluZGV4OiAxMDsgY29sb3I6 -IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoKZGl2LmFib3V0X21pZGFyZWEyIGRpdi5sZWZ0X2FyZWEy -IGRpdi5sZWZ0X2FyZWFpbiBzcGFuLnRpdF9hcmVhIHNwYW4udGl0IHsgZGlzcGxheTogYmxvY2s7 -IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMTJweDsg -fQoKZGl2LmFib3V0X21pZGFyZWEyIGRpdi5sZWZ0X2FyZWEyIGRpdi5sZWZ0X2FyZWFpbiBhOmhv -dmVyIHNwYW4geyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKZGl2LmFib3V0X21pZGFy -ZWEyIGRpdi5sZWZ0X2FyZWEyIGRpdi5sZWZ0X2FyZWFpbiBzcGFuLnRpdF9hcmVhIHNwYW4udHh0 -IHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTNweDsgbWFyZ2luLWJvdHRvbTogMnB4OyBo -ZWlnaHQ6IDM4cHg7IG92ZXJmbG93OiBoaWRkZW47IH0KCmRpdi5hYm91dF9taWRhcmVhMiBkaXYu -bGVmdF9hcmVhMiBkaXYubGVmdF9hcmVhaW4gc3Bhbi50aXRfYXJlYSBzcGFuLnN1YiB7IGRpc3Bs -YXk6IGJsb2NrOyBmb250LXNpemU6IDEzcHg7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9CgpkaXYu -YWJvdXRfbWlkYXJlYTIgZGl2LmxlZnRfYXJlYTIgZGl2LmxlZnRfYXJlYWluIGE6Zm9jdXMgc3Bh -bi50aXRfYXJlYSBzcGFuLnR4dCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgpkaXYu -YWJvdXRfbWlkYXJlYTIgZGl2LmxlZnRfYXJlYTIgZGl2LmxlZnRfYXJlYWluIGE6Zm9jdXMgc3Bh -bi50aXRfYXJlYSBzcGFuLnN1YiB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgpkaXYu -YWJvdXRfbWlkYXJlYTIgZGl2LmxlZnRfYXJlYTIgZGl2LmxlZnRfYXJlYWluIGE6Zm9jdXMgc3Bh -bi50aXRfYXJlYSBzcGFuLnRpdCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgpkaXYu -YWJvdXRfbWlkYXJlYTIgZGl2LmxlZnRfYXJlYTIgZGl2LmxlZnRfYXJlYWluIGRpdi5tb3ZpZV9v -dXRlciB7IHdpZHRoOiBhdXRvOyBoZWlnaHQ6IDIyMHB4OyBtYXJnaW46IDBweDsgfQoKZGl2LmFi -b3V0X21pZGFyZWEyIGRpdi5sZWZ0X2FyZWEyIGRpdi5sZWZ0X2FyZWFpbiBpbWcgeyBwb3NpdGlv -bjogcmVsYXRpdmU7IH0KCmRpdi5hYm91dF9taWRhcmVhMiBkaXYucmlnaHRfYXJlYTIgeyBmbG9h -dDogcmlnaHQ7IHdpZHRoOiAzNy4wOCU7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxOTIsIDE5Miwg -MTkyKTsgcG9zaXRpb246IHJlbGF0aXZlOyB9CgpkaXYuYWJvdXRfbWlkYXJlYTIgZGl2LnJpZ2h0 -X2FyZWEyIGltZyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2LmFib3V0X21pZGFyZWEyIGRp -di5yaWdodF9hcmVhMiBhOmZvY3VzIHNwYW4geyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsg -fQoKZGl2LmFib3V0X21pZGFyZWEyIGRpdi5yaWdodF9hcmVhMiBzcGFuLnRpdF9hcmVhIHsgZGlz -cGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTZweDsgbGVmdDog -MTlweDsgei1pbmRleDogMTA7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9CgpkaXYuYWJvdXRfbWlk -YXJlYTIgZGl2LnJpZ2h0X2FyZWEyIHNwYW4udGl0X2FyZWEgc3Bhbi50aXQgeyBkaXNwbGF5OiBi -bG9jazsgY29sb3I6IHJnYig0NywgMTE4LCAxOTYpOyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4t -Ym90dG9tOiA2cHg7IH0KCmRpdi5hYm91dF9taWRhcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50 -aXRfYXJlYSBzcGFuLnN1YiB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDIwcHg7IGZvbnQt -d2VpZ2h0OiA2MDA7IGxpbmUtaGVpZ2h0OiAxMDAlOyBtYXJnaW4tYm90dG9tOiA1cHg7IH0KCmRp -di5hYm91dF9taWRhcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnN1YjIg -eyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHJnYigyMTIsIDIzLCA3Mik7IGZvbnQtc2l6ZTogMjBw -eDsgZm9udC13ZWlnaHQ6IDYwMDsgbGluZS1oZWlnaHQ6IDEwMCU7IG1hcmdpbi1ib3R0b206IDIw -cHg7IH0KCmRpdi5hYm91dF9taWRhcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBz -cGFuLnR4dCB7IGRpc3BsYXk6IGJsb2NrOyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgeyB3aWR0aDog -MTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5sZWZ0X2Fy -ZWFvdXQgeyB3aWR0aDogNjIuMjklOyBmbG9hdDogbGVmdDsgfQoKZGl2LmFib3V0X2J0bWFyZWEy -IGRpdi5sZWZ0X2FyZWEyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbG9hdDogbGVmdDsgYm9yZGVy -OiAxcHggc29saWQgcmdiKDE5MiwgMTkyLCAxOTIpOyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgZGl2 -LmxlZnRfYXJlYTIgaW1nIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9CgpkaXYuYWJvdXRfYnRtYXJl -YTIgZGl2LmxlZnRfYXJlYTIgYTpmb2N1cyBzcGFuIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxp -bmU7IH0KCmRpdi5hYm91dF9idG1hcmVhMiBkaXYubGVmdF9hcmVhMiBzcGFuLnRpdF9hcmVhIHsg -cG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDsgdG9wOiAxNnB4OyBsZWZ0OiAxOXB4OyBm -b250LXdlaWdodDogNjAwOyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgZGl2LmxlZnRfYXJlYTIgc3Bh -bi50aXRfYXJlYSBzcGFuLnRpdCB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDQ3LCAxMTgs -IDE5Nik7IG1hcmdpbi1ib3R0b206IDZweDsgfQoKZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5sZWZ0 -X2FyZWEyIHNwYW4udGl0X2FyZWEgc3Bhbi5zdWIgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXpl -OiAyMHB4OyBsaW5lLWhlaWdodDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMHB4OyB9CgpkaXYuYWJv -dXRfYnRtYXJlYTIgZGl2LmxlZnRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnR4dCB7IGRpc3Bs -YXk6IGJsb2NrOyBmb250LXNpemU6IDIwcHg7IGNvbG9yOiByZ2IoMjQ3LCAxNDgsIDI5KTsgbGlu -ZS1oZWlnaHQ6IDEwMCU7IH0KCmRpdi5hYm91dF9idG1hcmVhMiBkaXYuY2VuX2FyZWEyIHsgZmxv -YXQ6IHJpZ2h0OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTkyLCAxOTIsIDE5Mik7IH0KCmRpdi5h -Ym91dF9idG1hcmVhMiBkaXYuY2VuX2FyZWEyIGRpdi5jZW5faW5jb250IHsgbWFyZ2luOiAwcHg7 -IHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGl2LmFib3V0X2J0bWFy -ZWEyIGRpdi5jZW5fYXJlYTIgZGl2LmNlbl9pbmNvbnQgc3Bhbi50aXRfYXJlYSB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyBsZWZ0OiAxOXB4OyB6LWluZGV4OiAxMDsgfQoKZGl2LmFi -b3V0X2J0bWFyZWEyIGRpdi5jZW5fYXJlYTIgZGl2LmNlbl9pbmNvbnQgYTpmb2N1cyBzcGFuIHsg -dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KCmRpdi5hYm91dF9idG1hcmVhMiBkaXYuY2Vu -X2FyZWEyIGRpdi5jZW5faW5jb250IHNwYW4udGl0X2FyZWEgc3Bhbi50aXQgeyBkaXNwbGF5OiBi -bG9jazsgY29sb3I6IHJnYig0NywgMTE4LCAxOTYpOyBtYXJnaW4tYm90dG9tOiAzcHg7IH0KCmRp -di5hYm91dF9idG1hcmVhMiBkaXYuY2VuX2FyZWEyIGRpdi5jZW5faW5jb250IHNwYW4udGl0X2Fy -ZWEgc3Bhbi5zdWIgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdo -dDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMHB4OyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgZGl2LmNl -bl9hcmVhMiBkaXYuY2VuX2luY29udCBzcGFuLnRpdF9hcmVhIHNwYW4udHh0IHsgZGlzcGxheTog -YmxvY2s7IGZvbnQtc2l6ZTogMjBweDsgY29sb3I6IHJnYigyOSwgMTUyLCAxMjIpOyBsaW5lLWhl -aWdodDogMTAwJTsgfQoKZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5jZW5fYXJlYTIgZGl2LmNlbl9p -bmNvbnQgaW1nIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgZGl2 -LnJpZ2h0X2FyZWEyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbG9hdDogcmlnaHQ7IGJvcmRlcjog -MXB4IHNvbGlkIHJnYigxOTIsIDE5MiwgMTkyKTsgd2lkdGg6IDM3LjA4JTsgZm9udC13ZWlnaHQ6 -IDYwMDsgfQoKZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5yaWdodF9hcmVhMiBhOmZvY3VzIHNwYW4g -eyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5y -aWdodF9hcmVhMiBzcGFuLnRpdF9hcmVhIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE2cHg7 -IGxlZnQ6IDE5cHg7IHotaW5kZXg6IDEwOyB9CgpkaXYuYWJvdXRfYnRtYXJlYTIgZGl2LnJpZ2h0 -X2FyZWEyIHNwYW4udGl0X2FyZWEgc3Bhbi50aXQgeyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHJn -Yig0NywgMTE4LCAxOTYpOyBtYXJnaW4tYm90dG9tOiAzcHg7IH0KCmRpdi5hYm91dF9idG1hcmVh -MiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnN1YiB7IGRpc3BsYXk6IGJsb2Nr -OyBmb250LXNpemU6IDIwcHg7IGxpbmUtaGVpZ2h0OiAxMDAlOyBtYXJnaW4tYm90dG9tOiAwcHg7 -IH0KCmRpdi5hYm91dF9idG1hcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFu -LnR4dCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDIwcHg7IGNvbG9yOiByZ2IoNjMsIDEz -MCwgMTk4KTsgbGluZS1oZWlnaHQ6IDEwMCU7IH0KCmRpdi5hYm91dF9idG1hcmVhMiBkaXYucmln -aHRfYXJlYTIgaW1nIHsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKYTpob3Zl -ciBzcGFuLnRpdF9hcmVhIHNwYW4geyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKLnRv -cGFyZWFfaW4gLnN1Yl90eHQgeyBtYXJnaW4tdG9wOiAyNXB4OyBmb250LXNpemU6IDE1cHg7IH0K -Ci5iZ19pbnRybzIgeyBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7IH0KCi50b3BzY3Jv -bGxfYXJlYSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206IDQwcHg7IH0KCi50 -b3BzY3JvbGxfYXJlYSB1bCB7IG92ZXJmbG93OiBoaWRkZW47IGhlaWdodDogNDQwcHg7IH0KCi50 -b3BzY3JvbGxfYXJlYSBsaSBhIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDdweDsgbGVm -dDogMHB4OyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDlweDsgaGVp -Z2h0OiA5cHg7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19jb250cm9sbGVyMy5wbmcpOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggLTEycHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl -YXQgbm8tcmVwZWF0OyB9CgoudG9wc2Nyb2xsX2FyZWEgbGkgYS5vbiB7IGJhY2tncm91bmQtcG9z -aXRpb246IC0xMHB4IC0xMnB4OyB9CgoudG9wc2Nyb2xsX2FyZWEgbGkgYS5zY3IyIHsgbGVmdDog -MTJweDsgfQoKLnRvcHNjcm9sbF9hcmVhIGxpIGEuc2NyMyB7IGxlZnQ6IDI0cHg7IH0KCi50b3Bz -Y3JvbGxfYXJlYSBsaSBhLnNjcjQgeyBsZWZ0OiAzNnB4OyB9CgouaW50cm9fc2VjdGlvbiB7IG92 -ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDM1cHg7IHBhZGRpbmctdG9wOiAyNXB4OyB3aWR0 -aDogMTAwJTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgbGluZS1oZWlnaHQ6IDEuNDsgfQoKLmludHJvX3NlY3Rpb24uZmlyc3QgeyBtYXJnaW4tdG9w -OiAwcHg7IHBhZGRpbmc6IDBweDsgYm9yZGVyOiBub25lOyB9CgouaW50cm9fc2VjdGlvbiAubGVm -dGFyZWEsIC5pbnRyb19zZWN0aW9uIC5yaWdodGFyZWEgeyB3aWR0aDogNDclOyB9CgouaW50cm9f -c2VjdGlvbiAubGVmdGFyZWEgaW1nLCAuaW50cm9fc2VjdGlvbiAucmlnaHRhcmVhIGltZyB7IHdp -ZHRoOiAxMDAlOyB9CgouaW50cm9fc2VjdGlvbiBoMyB7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkx -KTsgbGV0dGVyLXNwYWNpbmc6IC0ycHg7IH0KCi5pbnRyb19zZWN0aW9uIC50dmlldyB7IGRpc3Bs -YXk6IG5vbmU7IH0KCi5pbnRyb19zZWN0aW9uIC5zdWJfaW1nIHsgbWFyZ2luLWJvdHRvbTogMzBw -eDsgfQoKLmludHJvX21vdmllIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiA0MHB4 -OyBwYWRkaW5nLXRvcDogMzVweDsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6IDFweDsg -Ym9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwg -MjI1KTsgfQoKLmludHJvX21vdmllOjphZnRlciB7IGNvbnRlbnQ6ICcnOyBkaXNwbGF5OiBibG9j -azsgY2xlYXI6IGJvdGg7IH0KCi5pbnRyb19tb3ZpZSBoMyB7IG1hcmdpbi1ib3R0b206IDQwcHg7 -IHBhZGRpbmctdG9wOiA1MHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19pbnRyb190eHQuZ2lmKTsgZm9udC13ZWlnaHQ6IG5v -cm1hbDsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogcmdiKDQxLCA1NiwgNzIpOyB0ZXh0LWFsaWdu -OiBjZW50ZXI7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouaW50cm9fbW92aWUgdWwgeyBwYWRkaW5nLXRvcDog -MzhweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX2ludHJvX2RvdC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0 -OyB9CgouaW50cm9fbW92aWUgdWw6OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2Nr -OyBjbGVhcjogYm90aDsgfQoKLmludHJvX21vdmllIGxpIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0 -NyU7IHBhZGRpbmctYm90dG9tOiAxNXB4OyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoKLmludHJv -X21vdmllIGxpLmxhc3QgeyBmbG9hdDogcmlnaHQ7IH0KCi5pbnRyb19tb3ZpZSBsaSBzdHJvbmcg -eyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMTlweDsgZm9udC1zaXplOiAyNHB4OyBj -b2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5pbnRyb19tb3ZpZSAuZnJhbWUgeyBtYXJnaW4t -dG9wOiAyNXB4OyBwYWRkaW5nOiAxNXB4IDE1cHggOHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2Io -MjI1LCAyMjUsIDIyNSk7IHRleHQtYWxpZ246IHJpZ2h0OyB9CgouaW50cm9fbW92aWUgbGkub24g -eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9i -Z19hcnJvdzUuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouaW50cm9fbW92aWUgbGkub24gLmZyYW1l -IHsgcGFkZGluZzogMTBweDsgYm9yZGVyOiA2cHggc29saWQgcmdiKDEzLCAxMjMsIDE5MSk7IH0K -Ci5pbnRyb19tb3ZpZSAuZnJhbWUgLmZyYW1lX3BpYyBpbWcgeyB3aWR0aDogMTAwJTsgfQoKLmlu -dHJvX21vdmllIC5mcmFtZSAuYnV0dG9uIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDEw -cHg7IH0KCi5tb3ZpZV9sYXllcl93cmFwIHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAw -JTsgbGVmdDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IH0KCi5tb3ZpZV9sYXllciAubGVmdGFyZWEg -eyB3aWR0aDogNzAlOyB9CgoubW92aWVfbGF5ZXIgLmxlZnRhcmVhIGltZyB7IHdpZHRoOiAxMDAl -OyB9CgoubW92aWVfbGF5ZXIgLnJpZ2h0YXJlYSB7IHdpZHRoOiAyOCU7IH0KCi5tb3ZpZV9sYXll -ciAuY2FwdGlvbl90eHQgeyBtYXJnaW46IDBweDsgaGVpZ2h0OiAzMzNweDsgfQoKLm5ld19tYW5h -Z2UgaDMgeyBtYXJnaW4tYm90dG9tOiAyNXB4OyB9CgoubmV3X21hbmFnZV9ib3ggeyBtYXJnaW4t -dG9wOiA0MHB4OyBwYWRkaW5nOiA0NXB4IDU0cHggMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdi -KDIyNSwgMjI1LCAyMjUpOyB9CgoubmV3X21hbmFnZV9ib3ggaDMgeyBtYXJnaW4tYm90dG9tOiA0 -MHB4OyB9CgoubmV3X21hbmFnZV9ib3ggdWwgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAw -JTsgfQoKLm5ld19tYW5hZ2VfYm94IGxpIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0OS45JTsgaGVp -Z2h0OiAxMTFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYWJvdXQvYmdfbmV3X21hbmFnZS5naWYpOyBmb250LXNpemU6IDEzcHg7IGxldHRl -ci1zcGFjaW5nOiAtMXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgoubmV3X21hbmFnZV9ib3gg -bGkgcCB7IHBhZGRpbmc6IDhweCAwcHggMHB4IDE3NXB4OyB9CgoubmV3X21hbmFnZV9ib3ggbGkg -c3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4IDBweCAxMHB4OyBmb250LXNpemU6 -IDIycHg7IGxpbmUtaGVpZ2h0OiAxMDAlOyB9CgoubmV3X21hbmFnZV9ib3ggbGkgc3Ryb25nIHNw -YW4geyBsaW5lLWhlaWdodDogMTAwJTsgfQoKLm5ld19tYW5hZ2VfYm94IGxpLmwwMSBzdHJvbmcg -eyBjb2xvcjogcmdiKDAsIDc0LCAxNTApOyB9CgoubmV3X21hbmFnZV9ib3ggbGkubDAyIHsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogLTQ1MXB4IDBweDsgfQoKLm5ld19tYW5hZ2VfYm94IGxpLmwwMiBz -dHJvbmcgeyBjb2xvcjogcmdiKDAsIDkzLCAxNTApOyB9CgoubmV3X21hbmFnZV9ib3ggbGkubDAz -IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTFweDsgfQoKLm5ld19tYW5hZ2VfYm94IGxp -LmwwMyBzdHJvbmcgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5uZXdfbWFuYWdlX2Jv -eCBsaS5sMDQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDUxcHggLTExMXB4OyB9CgoubmV3X21h -bmFnZV9ib3ggbGkubDA0IHN0cm9uZyB7IGNvbG9yOiByZ2IoNSwgMTIwLCAxNTQpOyB9CgoubmV3 -X21hbmFnZV9ib3ggbGkubDA1IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yMjJweDsgfQoK -Lm5ld19tYW5hZ2VfYm94IGxpLmwwNSBzdHJvbmcgeyBjb2xvcjogcmdiKDUsIDEyNCwgMTIxKTsg -fQoKLm5ld19tYW5hZ2VfYm94IGxpLmwwNiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00NTFweCAt -MjIycHg7IH0KCi5uZXdfbWFuYWdlX2JveCBsaS5sMDYgc3Ryb25nIHsgY29sb3I6IHJnYigzNywg -MTQzLCA5Nyk7IH0KCi5uZXdfbWFuYWdlX2JveCBsaS5sMDcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiAwcHggLTMzM3B4OyB9CgoubmV3X21hbmFnZV9ib3ggbGkubDA3IHN0cm9uZyB7IGNvbG9yOiBy -Z2IoNTYsIDE1OCwgMjEpOyB9CgoubmV3X21hbmFnZTIgeyB9CgoubmV3X21hbmFnZTIgaDMgeyBt -YXJnaW46IDQwcHggMHB4IDI1cHg7IHBhZGRpbmctdG9wOiAzNXB4OyBib3JkZXItdG9wLXdpZHRo -OiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1 -LCAyMjUsIDIyNSk7IGZvbnQtc2l6ZTogMThweDsgfQoKLm5ld19tYW5hZ2UyIGgzOmZpcnN0LWNo -aWxkIHsgbWFyZ2luLXRvcDogMHB4OyBib3JkZXI6IG5vbmU7IH0KCi5uZXdfbWFuYWdlMiAuYm94 -X3NlY3Rpb24geyBtYXJnaW46IDQwcHggMHB4OyB9CgoubmV3X21hbmFnZTIgLmJveF9zZWN0aW9u -IGltZyB7IHdpZHRoOiAxMDAlOyB9CgoubmV3X21hbmFnZTIgLmxlZnRhcmVhIHsgZmxvYXQ6IGxl -ZnQ7IHdpZHRoOiA0NyU7IH0KCi5uZXdfbWFuYWdlMiAucmlnaHRhcmVhIHsgZmxvYXQ6IHJpZ2h0 -OyB3aWR0aDogNDclOyB9CgoucnVsZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogNjVw -eCAwcHggNTBweCA0NDBweDsgaGVpZ2h0OiAyMjNweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4 -OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDE3 -MywgMTg0LCAxOTEpOyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoKLnJ1bGUgLmltZyB7IHBvc2l0 -aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDBweDsgfQoKLnJ1bGUgaDMgeyBjb2xvcjog -cmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5ydWxlX2xpc3QgeyBtYXJnaW4tdG9wOiAtMXB4OyB9Cgou -cnVsZV9saXN0IGgzIHsgbWFyZ2luLWJvdHRvbTogMzBweDsgcGFkZGluZy10b3A6IDQwcHg7IGJv -cmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3At -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBoZWln -aHQ6IDElOyB9CgoucnVsZV9saXN0IHVsIHsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7 -IH0KCi5ydWxlX2xpc3QgdWwgbGkgeyBmbG9hdDogbGVmdDsgcGFkZGluZzogMHB4IDMlIDQwcHgg -MHB4OyB3aWR0aDogNDclOyB9CgoucnVsZV9saXN0IHVsIGxpIHN0cm9uZyB7IGRpc3BsYXk6IGJs -b2NrOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXNpemU6IDE3cHg7IGxldHRlci1zcGFjaW5n -OiAtMXB4OyB9CgouYmdfbmV3cyB7IHBhZGRpbmc6IDBweCAwcHggMTVweDsgfQoKLmJnX25ld3Mg -LnRpdF9kZXMgLmJ0bl9yc3MgeyBtYXJnaW4tbGVmdDogM3B4OyB9CgouYmdfbmV3cyAudGl0X2Rl -c19tIHsgZGlzcGxheTogbm9uZTsgfQoKLm5ld3NfdG9wYXJlYSB7IHBvc2l0aW9uOiByZWxhdGl2 -ZTsgbWFyZ2luLWJvdHRvbTogNDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU1LCA3MCwgMTA5 -KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVh -dDogaW5pdGlhbCBpbml0aWFsOyB9CgoubmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSB7IG92ZXJm -bG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKLm5ld3NfdG9wYXJlYSAucm9sbGlu -Z2FyZWEgdWwgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgfQoKLm5ld3NfdG9wYXJl -YSAucm9sbGluZ2FyZWEgbGkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsb2F0OiBsZWZ0OyB3aWR0 -aDogMTAwJTsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoKLm5ld3NfdG9wYXJlYSAucm9s -bGluZ2FyZWEgbGkgLnRodW1iIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1yaWdodDogMiU7IHdpZHRo -OiA1MCU7IH0KCi5uZXdzX3RvcGFyZWEgLnJvbGxpbmdhcmVhIGxpIC50aHVtYiBpbWcgeyB3aWR0 -aDogMTAwJTsgfQoKLm5ld3NfdG9wYXJlYSAucm9sbGluZ2FyZWEgbGkgLmNvbnQgeyBmbG9hdDog -bGVmdDsgd2lkdGg6IDQ2JTsgZm9udC1zaXplOiAxM3B4OyB9CgoubmV3c190b3BhcmVhIC5yb2xs -aW5nYXJlYSBsaSAuZGF0ZSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDIwcHggMHB4IDE1cHg7 -IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHJnYig0NSwgMTg0LCAyMDkpOyB0ZXh0LWFsaWduOiBy -aWdodDsgfQoKLm5ld3NfdG9wYXJlYSAucm9sbGluZ2FyZWEgbGkgc3Ryb25nIHsgZGlzcGxheTog -YmxvY2s7IG1hcmdpbi1ib3R0b206IDEwcHg7IGZvbnQtc2l6ZTogMjRweDsgbGV0dGVyLXNwYWNp -bmc6IC0ycHg7IH0KCi5uZXdzX3RvcGFyZWEgLnJvbGxpbmdhcmVhIGxpIGEgeyBjb2xvcjogcmdi -KDI1NSwgMjU1LCAyNTUpOyB9CgoubmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSBhIHsgZGlzcGxh -eTogYmxvY2s7IG92ZXJmbG93OiBoaWRkZW47IH0KCi5uZXdzX3RvcGFyZWEgLnJvbGxpbmdhcmVh -IGE6aG92ZXIgcC5jb250IHN0cm9uZyB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9Cgou -bmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSBhOmhvdmVyIHAuY29udCBzcGFuLnR4dCB7IHRleHQt -ZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgoubmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSBhOmZv -Y3VzIHAuY29udCBzdHJvbmcgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKLm5ld3Nf -dG9wYXJlYSAucm9sbGluZ2FyZWEgYTpmb2N1cyBwLmNvbnQgc3Bhbi50eHQgeyB0ZXh0LWRlY29y -YXRpb246IHVuZGVybGluZTsgfQoKLm5ld3NfdG9wYXJlYSAucm9sbGluZ19jdHJsIHsgcG9zaXRp -b246IGFic29sdXRlOyBib3R0b206IDEwcHg7IHJpZ2h0OiAyMHB4OyB9CgoucG9zdF9hcnJhbmdl -IHsgbWFyZ2luLWJvdHRvbTogMTBweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KCi5kZXRhaWxfc2Vh -cmNoIHsgbWFyZ2luLWJvdHRvbTogMTVweDsgcGFkZGluZzogMTVweCAxNXB4IDBweDsgfQoKLmRl -dGFpbF9zZWFyY2g6OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjog -Ym90aDsgfQoKLmRldGFpbF9zZWFyY2ggc2VsZWN0IHsgaGVpZ2h0OiAyNHB4OyB9CgouZGV0YWls -X3NlYXJjaCBsaSB7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tcmlnaHQ6IDVweDsgcGFkZGluZy1ib3R0 -b206IDE1cHg7IH0KCi5kZXRhaWxfc2VhcmNoIGxpOmZpcnN0LWNoaWxkIHsgbWFyZ2luOiAwcHg7 -IHdpZHRoOiAxMDAlOyB9CgouZGV0YWlsX3NlYXJjaCBsaTpmaXJzdC1jaGlsZCAudHh0IHsgd2lk -dGg6IDE3MHB4OyBwYWRkaW5nOiA0cHggNXB4OyB9CgouZGV0YWlsX3NlYXJjaCBsaS5zMSB7IHdp -ZHRoOiAzMyU7IH0KCi5kZXRhaWxfc2VhcmNoIGxpLnMxIHNlbGVjdCB7IHdpZHRoOiA3MCU7IH0K -Ci5kZXRhaWxfc2VhcmNoIGxpLnMyIHsgd2lkdGg6IDIxJTsgfQoKLmRldGFpbF9zZWFyY2ggbGku -czIgc2VsZWN0IHsgd2lkdGg6IDUyJTsgfQoKLmRldGFpbF9zZWFyY2ggbGkuczMgeyB3aWR0aDog -NDMlOyB9CgouZGV0YWlsX3NlYXJjaCBsaS5zMyAudHh0IHsgd2lkdGg6IDU2JTsgfQoKLmRldGFp -bF9zZWFyY2ggbGFiZWwgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctbGVmdDogMTFw -eDsgd2lkdGg6IDQwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2J1X2RvdDIuZ2lmKTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAx -MnB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0cHggNnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQoKLmRldGFpbF9zZWFyY2ggbGFiZWwuaGlkZGVuIHsgZGlzcGxh -eTogbm9uZTsgfQoKLmxpc3RfdHlwZSB7IHBhZGRpbmc6IDIwcHggMHB4OyB3aWR0aDogMTAwJTsg -Ym9yZGVyLXRvcC13aWR0aDogMnB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRv -cC1jb2xvcjogcmdiKDAsIDE0NSwgMjIwKTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3Jk -ZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyB9CgoubGlzdF90eXBlIHVsIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJl -bGF0aXZlOyB9CgoubGlzdF90eXBlIGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90 -dG9tOiAtMXB4OyBwYWRkaW5nOiAyMHB4IDBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBi -b3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwg -MjI1LCAyMjUpOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxMzAlOyB9CgoubGlzdF90 -eXBlIGxpIGEubGlua19zZWN0aW9uIHsgcG9zaXRpb246IHJlbGF0aXZlOyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IHBhZGRpbmc6IDBweCAyMHB4IDBweCAxNDBweDsgaGVpZ2h0OiA4MHB4OyB9Cgou -bGlzdF90eXBlIGxpIGltZy50aHVtYiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGxl -ZnQ6IDBweDsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IDgwcHg7IH0KCi5saXN0X3R5cGUgbGkgLmxp -c3RfY29udCB7IGRpc3BsYXk6IGJsb2NrOyB9CgoubGlzdF90eXBlIGxpIC50aXQgeyBvdmVyZmxv -dzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogLTRweDsgaGVpZ2h0OiAyMHB4 -OyB9CgoubGlzdF90eXBlIGxpIC5jb250IHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbjogNXB4IDBweDsgaGVpZ2h0OiA0MXB4OyB9CgoubGlzdF90eXBlIGxpIC53cml0 -aW5nIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDIzcHg7IGxlZnQ6IDE0MHB4OyBjb2xv -cjogcmdiKDEwNCwgMTE2LCAxMjkpOyBmb250LXNpemU6IDExcHg7IGxpbmUtaGVpZ2h0OiAyMCU7 -IH0KCmJvZHkubXNpZTcgLmxpc3RfdHlwZSBsaSAud3JpdGluZyB7IGJvdHRvbTogMThweDsgfQoK -Lm51X2xpc3QgbGkgeyBmbG9hdDogbGVmdDsgcGFkZGluZzogMTVweCAwcHg7IHdpZHRoOiA0OS45 -JTsgYm9yZGVyOiBub25lOyB9CgoubnVfbGlzdCBsaSBhLmxpbmtfc2VjdGlvbiB7IHBhZGRpbmct -bGVmdDogMTgwcHg7IGhlaWdodDogMTA2cHg7IH0KCi5udV9saXN0IGxpIGltZy50aHVtYiB7IHRv -cDogMHB4OyB3aWR0aDogMTYwcHg7IGhlaWdodDogMTA2cHg7IH0KCi5udV9saXN0IGxpIC50aXQg -eyBoZWlnaHQ6IDE3cHg7IH0KCi5udV9saXN0IGxpIC5jb250IHsgbWFyZ2luLXRvcDogN3B4OyBo -ZWlnaHQ6IDU1cHg7IH0KCi5udV9saXN0IGxpIC5idXR0b24geyBwb3NpdGlvbjogYWJzb2x1dGU7 -IGJvdHRvbTogMTVweDsgbGVmdDogMTgwcHg7IH0KCi5udV9saXN0IGxpIC5idXR0b24gaW1nIHsg -d2lkdGg6IDIycHg7IGhlaWdodDogMjFweDsgfQoKLnRodW1iX3R5cGUgeyBwYWRkaW5nOiAyMHB4 -IDBweDsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6IDJweDsgYm9yZGVyLXRvcC1zdHls -ZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigwLCAxNDUsIDIyMCk7IGJvcmRlci1ib3R0 -b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20t -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnRodW1iX3R5cGUgdWwgeyBvdmVyZmxvdzog -aGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KCi50aHVtYl90eXBlIGxpIHsgcG9zaXRpb246 -IHJlbGF0aXZlOyBmbG9hdDogbGVmdDsgbWFyZ2luLWJvdHRvbTogLTFweDsgcGFkZGluZzogMjBw -eCAwcHg7IHdpZHRoOiAxOS45JTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90 -dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUp -OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KCi50aHVtYl90eXBlIGxpIGEubGlua19zZWN0aW9uIHsg -ZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4IGF1dG87IHdpZHRoOiAxNjhweDsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgfQoKLnRodW1iX3R5cGUgbGkgaW1nLnRodW1iIHsgd2lkdGg6IDE2 -OHB4OyBoZWlnaHQ6IDExMnB4OyB9CgoudGh1bWJfdHlwZSBsaSAubGlzdF9jb250IHsgZGlzcGxh -eTogYmxvY2s7IHBhZGRpbmc6IDhweCAxMHB4IDVweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQx -LCA1NiwgNzIpOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWFsaWduOiBsZWZ0OyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBp -bml0aWFsIGluaXRpYWw7IH0KCi50aHVtYl90eXBlIGxpIC5saXN0X2NvbnQgLnRpdCB7IG92ZXJm -bG93OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDM3cHg7IGZvbnQtc2l6ZTogMTNw -eDsgfQoKLnRodW1iX3R5cGUgbGkgLmxpc3RfY29udCAuY29udCB7IGRpc3BsYXk6IG5vbmU7IH0K -Ci50aHVtYl90eXBlIGxpIC53cml0aW5nIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbjogMHB4IGF1dG87IHBhZGRpbmc6IDBweCAxMHB4IDhweDsgd2lkdGg6IDE0OHB4 -OyBoZWlnaHQ6IDE4cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgZm9udC1z -aXplOiAxMXB4OyBjb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDIwMCU7IGJhY2tncm91bmQtcG9zaXRp -b246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsg -fQoKLnRhZyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogN3B4IDI1MHB4IDBweCAwcHg7 -IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10 -b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnRhZzo6YWZ0ZXIgeyBjb250ZW50OiAn -JzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9CgoudGFnIGRsIHsgZmxvYXQ6IGxlZnQ7 -IHBhZGRpbmc6IDFweCAwcHggOXB4OyB3aWR0aDogMTAwJTsgZm9udC1zaXplOiAxMXB4OyB9Cgou -dGFnIGR0IHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDJweCAwcHg7IHdpZHRoOiAzNXB4OyBiYWNr -Z3JvdW5kLWNvbG9yOiByZ2IoNTMsIDE5NywgMjE3KTsgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KCi50YWcgZGQgeyBmbG9hdDogbGVmdDsgcGFkZGluZzogMXB4IDBweCAw -cHggMThweDsgd2lkdGg6IDgwJTsgbGluZS1oZWlnaHQ6IDE1MCU7IH0KCi50YWcgLnBvc3RfYnRu -IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDhweDsgcmlnaHQ6IDBweDsgfQoKLnRhZyAucG9z -dF9idG4gKiB7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KCi50YWcgLnBvc3RfYnRuIC5kbiB7IG1h -cmdpbi1yaWdodDogMTBweDsgfQoKLnRhZyBkaXYjbGF5V3JhcCB7IG1hcmdpbi10b3A6IC0zODBw -eDsgcmlnaHQ6IDBweDsgfQoKLnRhZyBkbC50YmxfdHlwZSB7IGZsb2F0OiBub25lOyBwYWRkaW5n -OiAwcHg7IHdpZHRoOiAxMDAlOyBmb250LXNpemU6IDEzcHg7IH0KCi50YWcgZGwudGJsX3R5cGUg -ZHQgeyBiYWNrZ3JvdW5kOiBub25lOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAxMHB4IDEw -cHggMHB4IDIwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp -YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKLnRhZyBk -bC50YmxfdHlwZSBkZCB7IHdpZHRoOiBhdXRvOyB9CgoudGFnIGRsLnRibF90eXBlIGRkIGlucHV0 -W3R5cGU9InRleHQiXSB7IG1hcmdpbi1yaWdodDogNzRweDsgfQoKLnRhZyBkbC50YmxfdHlwZSBk -ZCBzcGFuLmJ0bl90YmwgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTFweDsgcmlnaHQ6IDE2 -cHg7IH0KCi50YWcgZGwudGJsX3R5cGUgZGl2LnNjcm9sbF9ib3gyIHsgd2lkdGg6IDMxNXB4OyB9 -CgoucmVwbHlfd3JpdGUgeyBtYXJnaW4tdG9wOiAyMHB4OyBwYWRkaW5nOiA5cHggMTVweCAxNXB4 -OyB9CgoucmVwbHlfd3JpdGUgZHQgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXdlaWdodDog -NjAwOyBmb250LXNpemU6IDE1cHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KCi5yZXBseV93cml0ZSBk -dCBhOmZpcnN0LWNoaWxkIHsgbWFyZ2luLWxlZnQ6IDE1cHg7IH0KCi5yZXBseV93cml0ZSBkZCB7 -IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMHB4IDExNnB4IDBweCAxMDJweDsgbWluLWhl -aWdodDogNjhweDsgfQoKLnJlcGx5X3dyaXRlIGRkICogeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9 -CgoucmVwbHlfd3JpdGUgZGQgaW1nIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVm -dDogMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCi5yZXBseV93 -cml0ZSBkZCB0ZXh0YXJlYSB7IG1hcmdpbi1sZWZ0OiAtMjJweDsgaGVpZ2h0OiA0OHB4OyB3aWR0 -aDogMTAwJTsgfQoKLnJlcGx5X3dyaXRlIGRkIC5wb3N0X2xldHRlciB7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgdG9wOiAtMjBweDsgcmlnaHQ6IDExNnB4OyBmb250LXNpemU6IDExcHg7IH0KCi5yZXBs -eV93cml0ZSBkZCAuYnRuX3JlcGx5IHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDBweDsg -bGVmdDogMTAwJTsgbWFyZ2luLWxlZnQ6IC0xMDVweDsgfQoKLnJlcGx5X2xpc3QgeyB9CgoucmVw -bHlfbGlzdCAudG90YWwgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXNpemU6IDEycHg7IH0K -Ci5yZXBseV9saXN0IC50b3RhbCBzdHJvbmcgeyBjb2xvcjogcmdiKDQyLCAxNDEsIDIwMik7IH0K -Ci5yZXBseV9saXN0IHVsIHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgoucmVwbHlf -bGlzdCB1bCBsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMThweCAwcHg7IG1pbi1o -ZWlnaHQ6IDQ1cHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHls -ZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKLnJl -cGx5X2xpc3QgdWwgbGkgLnRodW1iIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE3cHg7IGxl -ZnQ6IDExcHg7IHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IGhlaWdodDogYXV0byAhaW1wb3J0YW50 -OyBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgfQoKLnJlcGx5X2xpc3QgdWwgbGkgLnRodW1iIGlt -ZyB7IHdpZHRoOiA0M3B4OyBoZWlnaHQ6IDQzcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMjUs -IDIyNSwgMjI1KTsgfQoKLnJlcGx5X2xpc3QgdWwgbGkgLm5hbWUgeyBwYWRkaW5nOiAzcHggMHB4 -IDVweCAyOHB4OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDExcHg7IG1hcmdpbjogMHB4 -IDBweCAwcHggNzBweDsgfQoKLnJlcGx5X2xpc3QgdWwgbGkgLm5hbWUgc3BhbiB7IG1hcmdpbi1s -ZWZ0OiAxNXB4OyBmb250LXdlaWdodDogbm9ybWFsOyB9CgoucmVwbHlfbGlzdCB1bCBsaSAubmFt -ZS50dyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2ljX3R3Mi5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgoucmVwbHlfbGlzdCB1bCBs -aSAubmFtZS5mYWNlIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvaWNfZmFjZTIucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLnJlcGx5 -X2xpc3QgdWwgbGkgLm5hbWUubWUyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvaWNfbWUyLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -Ci5yZXBseV9saXN0IHVsIGxpIC5yZXBseV9jb250IHsgbWFyZ2luOiAxMHB4IDBweCAwcHggNzBw -eDsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKLnJlcGx5X2xpc3QgdWwgbGkgLnJlcGx5 -X2NvbnQgLnJlcGx5X2RlbCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLWxlZnQ6IDEw -cHg7IHBhZGRpbmctbGVmdDogOHB4OyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVm -dC1zdHlsZTogc29saWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjA0LCAyMDQsIDIwNCk7IGZv -bnQtc2l6ZTogMTFweDsgbGluZS1oZWlnaHQ6IDEwMCU7IH0KCi5yZXBseV9saXN0IHVsIGxpIC5y -ZXBseV9jb250IC5yZXBseV9kZWwgYSB7IGNvbG9yOiByZ2IoMTYxLCAxNjEsIDE2MSk7IH0KCi5y -ZXBseV9saXN0IHVsIGxpIC5yZXBseV9jb250IC5yZXBseV9zdWIgeyBwb3NpdGlvbjogcmVsYXRp -dmU7IG1hcmdpbi10b3A6IDEwcHg7IH0KCi5yZXBseV9saXN0IHVsIGxpIC5yZXBseV9jb250IC5y -Y20geyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyByaWdodDogMHB4OyBmb250LXNpemU6 -IDEycHg7IH0KCi5yZXBseV9saXN0IHVsIGxpIC5yZXBseV9jb250IC5yY20gYSB7IG1hcmdpbi1y -aWdodDogMTBweDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KCi5yZXBseV9saXN0IHVs -IGxpIC5yZXBseV9jb250IC5yY20gYTpmaXJzdC1jaGlsZCB7IGNvbG9yOiByZ2IoMTMsIDEyMywg -MTkxKTsgfQoKLnJlcGx5X2xpc3QgdWwgbGkgLnJlcGx5X2NvbnQgLnJlIHsgZGlzcGxheTogYmxv -Y2s7IHBhZGRpbmctbGVmdDogMTFweDsgd2lkdGg6IDQ1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3JlLmdpZik7IGZvbnQtc2l6ZTog -MTFweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDJw -eDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5yZXBseV9saXN0 -IC5yZV93cml0ZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLXRvcDogMTVweDsgcGFkZGlu -ZzogMTVweCAxNDlweCAxNXB4IDE1cHg7IH0KCi5yZXBseV9saXN0IC5yZV93cml0ZSB0ZXh0YXJl -YSB7IGhlaWdodDogMjdweDsgfQoKLnJlcGx5X2xpc3QgLnJlX3dyaXRlIC5idG5fc19yZXBseSB7 -IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAxNXB4OyBsZWZ0OiAxMDAlOyBtYXJnaW4tbGVm -dDogLTExN3B4OyB9CgoucmVwbHlfbGlzdCB1bCBsaSB1bCB7IG92ZXJmbG93OiBoaWRkZW47IG1h -cmdpbjogMThweCAwcHggLTE4cHg7IH0KCi5yZXBseV9saXN0IHVsIGxpIHVsIGxpIHsgbWFyZ2lu -LXRvcDogLTFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xp -ZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3JkZXItYm90dG9tLXN0 -eWxlOiBub25lOyB9CgouYmdfbW92aWUgeyBwYWRkaW5nOiAwcHggMHB4IDE1cHg7IH0KCi5tb3Zp -ZV9saXN0IHsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IHBhZGRpbmctdG9wOiA0MHB4 -OyBib3JkZXItdG9wLXdpZHRoOiAycHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXIt -dG9wLWNvbG9yOiByZ2IoMCwgMTQ1LCAyMjApOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJv -cmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAy -MjUsIDIyNSk7IH0KCi5tb3ZpZV9saXN0IGxpIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmctYm90dG9t -OiAyMHB4OyB3aWR0aDogMjUlOyBoZWlnaHQ6IDIyNXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZv -bnQtc2l6ZTogMTNweDsgfQoKLm1vdmllX2xpc3QgbGkub24geyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzUuZ2lmKTsgYmFja2dy -b3VuZC1wb3NpdGlvbjogNTAlIDIzMnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5v -LXJlcGVhdDsgfQoKLm1vdmllX2xpc3QgbGkgLmlubmVyIHsgZGlzcGxheTogaW5saW5lLWJsb2Nr -OyB3aWR0aDogMjMxcHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KCi5tb3ZpZV9saXN0IGxpIC5pbm5l -ciBhIHsgZGlzcGxheTogYmxvY2s7IH0KCi5tb3ZpZV9saXN0IGxpIC50aHVtYiB7IG92ZXJmbG93 -OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyB9CgoubW92aWVfbGlzdCBsaSAudGh1bWIgaW1nIHsg -d2lkdGg6IDIzMXB4OyBoZWlnaHQ6IDEzMXB4OyB9CgoubW92aWVfbGlzdCBsaSAuaW5uZXI6aG92 -ZXIgLnRodW1iLCAubW92aWVfbGlzdCBsaS5vbiAudGh1bWIgeyB3aWR0aDogMjIxcHg7IGhlaWdo -dDogMTIxcHg7IGJvcmRlcjogNXB4IHNvbGlkIHJnYigxMywgMTIzLCAxOTEpOyB9CgoubW92aWVf -bGlzdCBsaSAuaW5uZXI6aG92ZXIgLnRodW1iIGltZywgLm1vdmllX2xpc3QgbGkub24gLnRodW1i -IGltZyB7IG1hcmdpbjogLTVweCAwcHggMHB4IC01cHg7IH0KCi5tb3ZpZV9saXN0IGxpIC50aXQg -eyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAxMnB4IDBweCA1cHg7 -IGhlaWdodDogMTlweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLm1vdmllX2xpc3QgbGkgLmlubmVy -OmhvdmVyIC50aXQsIC5tb3ZpZV9saXN0IGxpIC50aXQ6aG92ZXIsIC5tb3ZpZV9saXN0IGxpLm9u -IC50aXQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgY29sb3I6IHJnYigxMywgMTIzLCAx -OTEpICFpbXBvcnRhbnQ7IH0KCi5tb3ZpZV9saXN0IGxpIC5pbm5lcjpob3ZlciAuY29udCwgLm1v -dmllX2xpc3QgbGkgLmNvbnQ6aG92ZXIsIC5tb3ZpZV9saXN0IGxpLm9uIC5jb250IHsgdGV4dC1k -ZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGNvbG9yOiByZ2IoNDEsIDU2LCA3MikgIWltcG9ydGFudDsg -fQoKLm1vdmllX2xpc3QgbGkgLmNvbnQgeyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9j -azsgbWFyZ2luOiA1cHggMHB4OyBoZWlnaHQ6IDM5cHg7IH0KCi5tb3ZpZV9saXN0IGxpIC5kYXRl -IHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHJnYigxMDQsIDExNiwg -MTI5KTsgfQoKLm1vdmllX2xpc3QgLm1vdmllX2xheWVyIHsgcG9zaXRpb246IGFic29sdXRlOyBs -ZWZ0OiAwcHg7IG1hcmdpbi10b3A6IDVweDsgcGFkZGluZzogMzVweCAyN3B4IDEwcHg7IH0KCi5t -b3ZpZV9saXN0IC5tb3ZpZV9sYXllciAubW92aWVfY2xvc2UgeyB0b3A6IDEwcHg7IHJpZ2h0OiAx -MHB4OyB9CgoubW92aWVfbGlzdCAubW92aWVfbGF5ZXIgLm1vdmllYXJlYSAuY2FwdGlvbl90eHQg -eyBoZWlnaHQ6IDIyNXB4OyBtYXJnaW4tdG9wOiAxMHB4OyB9Cgouc2VhcmNoX3Jlc3VsdCBkbCBk -ZCAubW92aWVfbGF5ZXIgeyBtYXJnaW46IDE1cHggMHB4IC0xNXB4OyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzkuZ2lmKTsgYmFj -a2dyb3VuZC1jb2xvcjogcmdiKDMyLCAzMiwgMzIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0 -aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgou -c2VhcmNoX3Jlc3VsdCBkbCBkZCAubW92aWVfbGF5ZXIgLm1vdmllX2Nsb3NlIHsgdG9wOiAzMHB4 -OyB9CgoubW92aWVfbGF5ZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47 -IHBhZGRpbmc6IDUwcHggMjdweCAyN3B4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzIsIDMyLCAz -Mik7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp -YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKLm1vdmll -X2xheWVyIC5tb3ZpZWFyZWEgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgfQoKLm1v -dmllX2xheWVyIC5tb3ZpZWFyZWEgLmxlZnRhcmVhIHsgd2lkdGg6IDYwNXB4OyBtYXJnaW4tcmln -aHQ6IDEwcHg7IH0KCi5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5sZWZ0YXJlYSBpbWcgeyB3aWR0 -aDogMTAwJTsgfQoKLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLnJpZ2h0YXJlYSB7IHdpZHRoOiAy -OTBweDsgfQoKLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgaDMgeyBtYXJnaW4tYm90dG9tOiAxMHB4 -OyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBoZWlnaHQ6IDMzcHg7IG92ZXJmbG93OiBoaWRk -ZW47IH0KCi5tb3ZpZV9sYXllciAubW92aWVhcmVhIHAgeyBoZWlnaHQ6IDM5cHg7IG92ZXJmbG93 -OiBoaWRkZW47IH0KCi5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5jYXB0aW9uIHsgZGlzcGxheTog -bm9uZTsgfQoKLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLmNhcHRpb25fdHh0IHsgb3ZlcmZsb3c6 -IGF1dG87IHBhZGRpbmc6IDEwcHg7IGhlaWdodDogMzE3cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJn -Yig2MywgNjMsIDYzKTsgbGluZS1oZWlnaHQ6IDE2MCU7IH0KCi5pZnJhbWVfYXJlYSB7IG1hcmdp -bi10b3A6IDE1cHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KCi5tb3ZpZV9sYXllciAubW92aWVhcmVh -IC5jYXB0aW9uIGEgeyBwYWRkaW5nLWxlZnQ6IDEycHg7IGNvbG9yOiByZ2IoMzMsIDE3MiwgMjIz -KTsgZm9udC1zaXplOiAxMnB4OyB9CgoubW92aWVfbGF5ZXIgLm1vdmllYXJlYSAuY2FwdGlvbiB7 -IGRpc3BsYXk6IG5vbmU7IH0KCi5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5jYXB0aW9uX3R4dCB7 -IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiAxMHB4OyBoZWlnaHQ6IDMxN3B4OyBib3JkZXI6IDFw -eCBzb2xpZCByZ2IoNjMsIDYzLCA2Myk7IGxpbmUtaGVpZ2h0OiAxNjAlOyB9CgouaWZyYW1lX2Fy -ZWEgeyBtYXJnaW4tdG9wOiAxNXB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB9CgoubW92aWVfbGF5ZXIg -Lm1vdmllYXJlYSAuY2FwdGlvbiBhIHsgcGFkZGluZy1sZWZ0OiAxMnB4OyBjb2xvcjogcmdiKDMz -LCAxNzIsIDIyMyk7IGZvbnQtc2l6ZTogMTJweDsgfQoKLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEg -LmNhcHRpb24gYS5jbG9zZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2JnX21vdmllX2Fycm93LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246 -IDBweCA1cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgoubW92 -aWVfbGF5ZXIgLm1vdmllYXJlYSAuY2FwdGlvbiBhLm9wZW4geyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19tb3ZpZV9hcnJvdy5naWYpOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTIxcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl -YXQgbm8tcmVwZWF0OyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X3dyaXRlIHsgcGFkZGluZzogMHB4 -OyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X3dyaXRlIGRkIHsgcGFkZGluZzogMHB4IDEwNXB4IDBw -eCA5MXB4OyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X3dyaXRlIGRkIGltZyB7IGJvcmRlcjogMXB4 -IHNvbGlkIHJnYig2MywgNjMsIDYzKTsgfQoKLm1vdmllX2xheWVyIC5yZXBseV93cml0ZSBkZCAu -cG9zdF9sZXR0ZXIgeyBjb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyB9CgoubW92aWVfbGF5ZXIg -LnJlcGx5X3dyaXRlIGRkIHRleHRhcmVhIHsgYm9yZGVyOiAxcHggc29saWQgcmdiKDYzLCA2Mywg -NjMpOyBiYWNrZ3JvdW5kOiBub25lOyBjb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFs -IGluaXRpYWw7IH0KCi5tb3ZpZV9sYXllciAucmVwbHlfd3JpdGUgZGQgLmJ0bl9yZXBseSB7IGJh -Y2tncm91bmQtcG9zaXRpb246IDBweCAtMTk1cHg7IH0KCi5tb3ZpZV9sYXllciAucmVwbHlfd3Jp -dGUgZGQgLmJ0bl9yZXBseSBhIHsgY29sb3I6IHJnYigzMywgMTcyLCAyMjMpOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiAxMDAlIC0xOTVweDsgfQoKLm1vdmllX2xheWVyIC5yZXBseV9saXN0IHsgcG9z -aXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdy14OiBoaWRkZW47IG92ZXJmbG93LXk6IHNjcm9sbDsg -bWFyZ2luLXRvcDogMTBweDsgaGVpZ2h0OiAzNTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDYz -LCA2MywgNjMpOyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X2xpc3QgdWwgeyBib3JkZXItdG9wLXN0 -eWxlOiBub25lOyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X2xpc3QgbGkgdWwgeyBib3JkZXItdG9w -LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBy -Z2IoNjMsIDYzLCA2Myk7IH0KCi5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCBsaSB7IG1hcmdpbi10 -b3A6IC0xcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7 -IGJvcmRlci10b3AtY29sb3I6IHJnYig2MywgNjMsIDYzKTsgYm9yZGVyLWJvdHRvbS1zdHlsZTog -bm9uZTsgY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246 -IGxlZnQ7IHBhZGRpbmc6IDE4cHggMHB4OyBoZWlnaHQ6IGF1dG87IH0KCi5tb3ZpZV9sYXllciAu -cmVwbHlfbGlzdCBsaSAudGh1bWIgaW1nIHsgYm9yZGVyOiAxcHggc29saWQgcmdiKDYzLCA2Mywg -NjMpOyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X2xpc3QgbGkgLm5hbWUsIC5tb3ZpZV9sYXllciAu -cmVwbHlfbGlzdCBsaSAucmVwbHlfY29udCAucmUgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUp -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI2cHg7IH0KCi5tb3ZpZV9sYXllciAucmVwbHlf -bGlzdCBsaSAucmVwbHlfY29udCwgLm1vdmllX2xheWVyIC5yZXBseV9saXN0IGxpIC5uYW1lIHNw -YW4sIC5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCBsaSAucmVwbHlfY29udCAucmNtIGEsIC5tb3Zp -ZV9sYXllciAucmVwbHlfbGlzdCBsaSAucmVwbHlfY29udCAucmVwbHlfZGVsIGEgeyBjb2xvcjog -cmdiKDE3MywgMTg0LCAxOTEpOyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X2xpc3QgbGkgLnJlcGx5 -X2NvbnQgLnJlcGx5X2RlbCB7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigxNzMsIDE4NCwgMTkxKTsgfQoKLm1v -dmllX2xheWVyIC5yZXBseV9saXN0IC5yZV93cml0ZSB7IHBhZGRpbmc6IDBweCAxMzhweCAwcHgg -MHB4OyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoK -Lm1vdmllX2xheWVyIC5yZXBseV9saXN0IC5yZV93cml0ZSB0ZXh0YXJlYSB7IGhlaWdodDogMjlw -eDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDYzLCA2MywgNjMpOyBiYWNrZ3JvdW5kOiBub25lOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBp -bml0aWFsIGluaXRpYWw7IH0KCi5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCAucmVfd3JpdGUgLmJ0 -bl9zX3JlcGx5IHsgYm90dG9tOiAxcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjcycHg7 -IH0KCi5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCAucmVfd3JpdGUgLmJ0bl9zX3JlcGx5IGEgeyBj -b2xvcjogcmdiKDMzLCAxNzIsIDIyMyk7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTI3MnB4 -OyB9CgoubW92aWVfbGF5ZXIgLm1vdmllX2Nsb3NlIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6 -IDE1cHg7IHJpZ2h0OiAxNXB4OyB9CgoubW92aWVfbGF5ZXIgLnJlcGx5X2xpc3QgLnJlX3dyaXRl -IC5idG5fc19yZXBseSBhIHsgY29sb3I6IHJnYigzMywgMTcyLCAyMjMpOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiAxMDAlIC0yNzJweDsgfQoKLm1vdmllX2xheWVyIC5tb3ZpZV9jbG9zZSB7IHBvc2l0 -aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNXB4OyByaWdodDogMTVweDsgfQoKZGl2LmJnX3BlcmZvcm1h -bmNlIHsgcGFkZGluZzogMHB4IDBweCAxNXB4OyB9CgpkaXYucGVyZm9ybWFuY2Vfd3JhcCB7IHBv -c2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMHB4IDBweCA0MHB4OyB9CgpkaXYucGVyZm9ybWFu -Y2Vfd3JhcCB1bC50YWJfbWVudTUgeyB9CgpkaXYucGVyZm9ybWFuY2VfY29udGVudHMgeyBkaXNw -bGF5OiBub25lOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDE5OXB4OyB0b3A6IDIwcHg7IH0K -CnVsLnRhYl9tZW51NSBsaS5vbiBkaXYucGVyZm9ybWFuY2VfY29udGVudHMgeyBkaXNwbGF5OiBi -bG9jazsgfQoKZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIGgzIHsgbWFyZ2luLWJvdHRvbTogMHB4 -OyB9CgpkaXYucGVyZm9ybWFuY2VfY29udGVudHMgaDMgc3Bhbi50eHQgeyBmb250LXNpemU6IDEz -cHg7IH0KCmRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyAubGF5X2hlbHAgeyBtYXJnaW4tbGVmdDog -LTNweDsgfQoKZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIC5sYXlfaGVscCBhLnFuYSB7IHdpZHRo -OiBhdXRvOyBoZWlnaHQ6IGF1dG87IG1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IGJhY2tncm91 -bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIC5s -YXlfaGVscCBzcGFuLmFycm93IHsgdG9wOiAyN3B4OyBsZWZ0OiA1cHg7IH0KCmRpdi5wZXJmb3Jt -YW5jZV9jb250ZW50cyAubGF5X2hlbHAgLnR4dF9oZWxwIHsgdG9wOiAzMXB4OyBsZWZ0OiAtOTBw -eDsgfQoKZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIGRpdi5ncmFwaCBpbWcgeyBtYXgtd2lkdGg6 -IDEwMCU7IH0KCmRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyB0YWJsZS50YmxfZGF0YSB7IG1hcmdp -bi10b3A6IDIxcHg7IH0KCmRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyB0YWJsZS50YmxfZGF0YSB0 -aCwgZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIHRhYmxlLnRibF9kYXRhIHRkIHsgcGFkZGluZzog -N3B4IDBweDsgfQoKZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIHRhYmxlLnRibF9kYXRhLm1ibG9j -ayB7IGRpc3BsYXk6IG5vbmU7IH0KCnAudW5pdCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90 -dG9tOiA4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXNpemU6 -IDEzcHg7IH0KCnAucmF0ZSB7IG1hcmdpbi10b3A6IDIwcHg7IGZvbnQtc2l6ZTogMTNweDsgfQoK -cC5yYXRlIHN0cm9uZyB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7 -IGZvbnQtc2l6ZTogMTVweDsgfQoKcC5yYXRlIHNwYW4udHh0IHsgZGlzcGxheTogYmxvY2s7IG1h -cmdpbjogNHB4IDBweCAwcHggMTRweDsgfQoKcC5yYXRlIGVtIHsgY29sb3I6IHJnYigxMywgMTIz -LCAxOTEpOyBmb250LXdlaWdodDogNjAwOyB9CgpkbC5wcm9maWxlIHsgaGVpZ2h0OiAxMzVweDsg -cGFkZGluZzogMzRweCA0MHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19wcm9maWxlLmpwZyk7IGJhY2tncm91bmQtY29sb3I6 -IHJnYigyNDAsIDI0OSwgMjU1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwJTsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRsLnByb2ZpbGUgZHQgeyBmb250 -LXNpemU6IDIycHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsg -bGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KCmRsLnByb2ZpbGUgZGQgeyBtYXJnaW4tdG9wOiAxNXB4 -OyBsaW5lLWhlaWdodDogMTQwJTsgfQoKZGwucHJvZmlsZSBkZCBhIHsgZGlzcGxheTogaW5saW5l -LWJsb2NrOyBtYXJnaW4tdG9wOiAyMHB4OyB9Cgp0YWJsZS50YmxfZGF0YSB7IHdpZHRoOiAxMDAl -OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi -b3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQtY29sb3I6 -IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp0YWJsZS50YmxfZGF0YSB0 -aGVhZCB0aCB7IHBhZGRpbmc6IDEycHggMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtd2Vp -Z2h0OiA2MDA7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgYmFja2dyb3VuZC1jb2xvcjogcmdi -KDI1MiwgMjUyLCAyNTApOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6 -IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQoKdGFibGUudGJsX2RhdGEgdGhlYWQgdHIgKyB0ciB0aCB7IHBhZGRpbmctdG9wOiAw -cHg7IGJvcmRlcjogbm9uZTsgfQoKdGFibGUudGJsX2RhdGEgdGJvZHkgdGggeyBwYWRkaW5nOiAx -MnB4IDBweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB0ZXh0LWFsaWduOiBjZW50ZXI7 -IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IH0KCnRhYmxlLnRibF9k -YXRhIHRib2R5IHRkIHsgcGFkZGluZzogMTJweCAwcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsg -Ym9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwg -MjI1KTsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogcmdiKDQxLCA1NiwgNzIpOyB9Cgp0YWJs -ZS50YmxfZGF0YSB0Ym9keSB0ci5vbiB0aCwgdGFibGUudGJsX2RhdGEgdGJvZHkgdHIub24gdGQg -eyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTIsIDI1 -MiwgMjUwKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp0YWJsZS50YmxfZGF0YSB0Ym9keSB0aC5ibHVl -IHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB9Cgp0YWJsZS50YmxfZGF0YSArIHAuZXNzZW5f -bWVudCB7IG1hcmdpbi10b3A6IDZweDsgfQoKdGFibGUudGJsX2RhdGEzIHsgd2lkdGg6IDEwMCU7 -IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJv -cmRlci1ib3R0b20tY29sb3I6IHJnYigyMjcsIDIyNywgMjI3KTsgYmFja2dyb3VuZC1jb2xvcjog -cmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoK -dGFibGUudGJsX2RhdGEzIHRoZWFkIHRoIHsgcGFkZGluZzogN3B4IDBweDsgYm9yZGVyLXRvcC13 -aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdi -KDIxMywgMjEzLCAyMTMpOyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHls -ZTogc29saWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjEzLCAyMTMsIDIxMyk7IHRleHQtYWxp -Z246IGNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MiwgMjUyLCAyNTApOyB9Cgp0YWJs -ZS50YmxfZGF0YTMgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQgeyBib3JkZXIt -bGVmdC1zdHlsZTogbm9uZTsgfQoKdGFibGUudGJsX2RhdGEzIHRoZWFkIHRyICsgdHIgdGgsIHRh -YmxlLnRibF9kYXRhMy5ub25lIC5jb2xvcjEgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LCAy -NDcsIDI1MCk7IH0KCnRhYmxlLnRibF9kYXRhMyB0aGVhZCB0ciArIHRyICsgdHIgdGgsIHRhYmxl -LnRibF9kYXRhMy5ub25lIC5jb2xvcjIgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI4LCAyMzcs -IDI0Mik7IH0KCnRhYmxlLnRibF9kYXRhMyB0Ym9keSB0aCB7IHBhZGRpbmc6IDExcHggOXB4OyBi -b3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9w -LWNvbG9yOiByZ2IoMjEzLCAyMTMsIDIxMyk7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC13ZWln -aHQ6IG5vcm1hbDsgfQoKdGFibGUudGJsX2RhdGEzIHRib2R5IHRkIHsgcGFkZGluZzogMTFweCA5 -cHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRl -ci10b3AtY29sb3I6IHJnYigyMTMsIDIxMywgMjEzKTsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsg -Ym9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIxMywgMjEz -LCAyMTMpOyB9Cgp0YWJsZS50YmxfZGF0YTMgdGJvZHkgdGQgdWwgbGkgeyBwYWRkaW5nLWxlZnQ6 -IDdweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYnVfZG90Mi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA5cHg7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp0YWJsZS50YmxfZGF0YTMgdGJvZHkgdGQg -ZW0geyBjb2xvcjogcmdiKDE1OCwgMTAxLCAyMSk7IG1hcmdpbi1sZWZ0OiA0cHg7IH0KCmRpdi5i -Z19icmFuZHZhbHVlIHsgcGFkZGluZzogMHB4IDBweCAxNXB4OyB9CgpkaXYuYnJhbmRfd3JhcCB7 -IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAxMDAlOyB9CgpkaXYuYnJhbmRfdmFsdWUgeyBmbG9h -dDogbGVmdDsgd2lkdGg6IDI5LjE2NiU7IH0KCmRpdi5icmFuZF92YWx1ZSBoMyB7IG1hcmdpbjog -MTVweCAwcHggMzVweDsgfQoKZGl2LmJyYW5kX3ZhbHVlIGgzLm1ibG9jayB7IGRpc3BsYXk6IG5v -bmU7IH0KCmRpdi5icmFuZF92YWx1ZSBwIHNwYW4udHh0IHsgZGlzcGxheTogYmxvY2s7IG1hcmdp -bi10b3A6IDE1cHg7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGl2LmJy -YW5kX3dyYXAgZGl2LmdyYXBoIHsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1hbGlnbjogY2VudGVy -OyB9CgpkaXYuYnJhbmRfd3JhcCBkaXYuZ3JhcGggaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyB9Cgpk -aXYuYnJhbmRfY29udGVudHMgeyB9Cgp1bC50YWJfbWVudTIgKyB0YWJsZS50YmxfZGF0YSwgdWwu -dGFiX21lbnUyICsgcC5kZXNjMiB7IG1hcmdpbi10b3A6IDIwcHg7IH0KCnVsLnRhYl9tZW51MiB7 -IHBhZGRpbmc6IDBweCAzMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9iZ190YWIyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEw -MCU7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC50YWJfbWVudTI6 -OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfQoKdWwu -dGFiX21lbnUyIGxpIHsgd2lkdGg6IDExLjElOyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogY2Vu -dGVyOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdl -cy9iZ190YWIyX2Jhci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAxNXB4OyBiYWNrZ3Jv -dW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwudGFiX21lbnUyIGxpLnNlbGVj -dGVkIHsgZGlzcGxheTogbm9uZTsgfQoKdWwudGFiX21lbnUyIGxpLmZpcnN0IHsgYmFja2dyb3Vu -ZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC50YWJfbWVudTIgbGkgYSB7IGRpc3BsYXk6 -IGJsb2NrOyBwYWRkaW5nOiAxMXB4IDBweDsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgZm9u -dC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNnB4OyB9Cgp1bC50YWJfbWVudTIgbGk6Zmlyc3Qt -Y2hpbGQsIHVsLnRhYl9tZW51MiBsaS5vbiArIGxpIHsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dy -b3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlh -bCBpbml0aWFsOyB9Cgp1bC50YWJfbWVudTIgbGkub24gYSB7IGJvcmRlci10b3Atd2lkdGg6IDFw -eDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRl -ci1zdHlsZTogc29saWQgc29saWQgbm9uZTsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDQyLCAxNDEs -IDIwMik7IGJvcmRlci1yaWdodC1jb2xvcjogcmdiKDQyLCAxNDEsIDIwMik7IGJvcmRlci1sZWZ0 -LWNvbG9yOiByZ2IoNDIsIDE0MSwgMjAyKTsgY29sb3I6IHJnYig0MiwgMTQxLCAyMDIpOyBiYWNr -Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwu -dGFiX21lbnUyIGxpIGRpdi50YmxfY29udGVudHMgeyBkaXNwbGF5OiBub25lOyB3aWR0aDogMTAw -JTsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IG1hcmdpbi10b3A6IDIwcHg7IH0KCnVs -LnRhYl9tZW51MiBsaS5vbiBkaXYudGJsX2NvbnRlbnRzIHsgZGlzcGxheTogYmxvY2s7IH0KCnVs -LnRhYl9tZW51MyB7IHBhZGRpbmc6IDBweCAzMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ190YWIyLmdpZik7IGJhY2tncm91bmQtcG9z -aXRpb246IDAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9Cgp1 -bC50YWJfbWVudTM6OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjog -Ym90aDsgfQoKdWwudGFiX21lbnUzIGxpIHsgd2lkdGg6IDExLjElOyBmbG9hdDogbGVmdDsgdGV4 -dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9iZ190YWIyX2Jhci5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAx -NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwudGFiX21l -bnUzIGxpIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMTFweCAwcHg7IGNvbG9yOiByZ2Io -MTA0LCAxMTYsIDEyOSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTZweDsgfQoKdWwu -dGFiX21lbnUzIGxpOmZpcnN0LWNoaWxkLCB1bC50YWJfbWVudTMgbGkub24gKyBsaSB7IGJhY2tn -cm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dy -b3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwudGFiX21lbnUzIGxpLm9uIGEgeyBi -b3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItbGVm -dC13aWR0aDogMXB4OyBib3JkZXItc3R5bGU6IHNvbGlkIHNvbGlkIG5vbmU7IGJvcmRlci10b3At -Y29sb3I6IHJnYig0MiwgMTQxLCAyMDIpOyBib3JkZXItcmlnaHQtY29sb3I6IHJnYig0MiwgMTQx -LCAyMDIpOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDQyLCAxNDEsIDIwMik7IGNvbG9yOiByZ2Io -NDIsIDE0MSwgMjAyKTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KCnVsLnRhYl9tZW51My50eXBlMiA+IGxpIHsgd2lkdGg6IGF1dG87IH0K -CnVsLnRhYl9tZW51My50eXBlMiA+IGxpIGEgeyBwYWRkaW5nOiAxMXB4IDMwcHg7IH0KCnVsLnRh -Yl9tZW51NCB7IG1hcmdpbi1ib3R0b206IDUwcHg7IH0KCnVsLnRhYl9tZW51NDo6YWZ0ZXIgeyBj -b250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9Cgp1bC50YWJfbWVudTQg -bGkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDEyLjQ1JTsgfQoKdWwudGFiX21lbnU0IGxpLnNlbGVj -dGVkIHsgZGlzcGxheTogbm9uZTsgfQoKdWwudGFiX21lbnU0IGxpIGEgeyBkaXNwbGF5OiBibG9j -azsgcGFkZGluZzogMTZweCAwcHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IGxldHRlci1z -cGFjaW5nOiAtMXB4OyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJvcmRlci10 -b3Atd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20td2lk -dGg6IDFweDsgYm9yZGVyLXN0eWxlOiBzb2xpZCBzb2xpZCBzb2xpZCBub25lOyBib3JkZXItdG9w -LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci1yaWdodC1jb2xvcjogcmdiKDIyNSwg -MjI1LCAyMjUpOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IHRleHQt -YWxpZ246IGNlbnRlcjsgfQoKdWwudGFiX21lbnU0IGxpLmZpcnN0IGEgeyBib3JkZXItbGVmdC13 -aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJvcmRlci1sZWZ0LWNvbG9yOiBy -Z2IoMjI1LCAyMjUsIDIyNSk7IH0KCnVsLnRhYl9tZW51NCBsaS5maXJzdC5vbiBhIHsgYm9yZGVy -LWxlZnQtc3R5bGU6IG5vbmU7IH0KCnVsLnRhYl9tZW51NCBsaSBhIHN0cm9uZy50aXQgeyBkaXNw -bGF5OiBibG9jazsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBmb250LXNpemU6IDMwcHg7IH0K -CnVsLnRhYl9tZW51NCBsaSBhIHNwYW4ueWVhciB7IGRpc3BsYXk6IG5vbmU7IH0KCnVsLnRhYl9t -ZW51NCBsaS5vbiBhIHsgYm9yZGVyOiBub25lOyBwYWRkaW5nLWJvdHRvbTogMTdweDsgY29sb3I6 -IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYmdfdGFiX2Fycm93LmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJn -YigxMywgMTIzLCAxOTEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVsLnRhYl9tZW51NCBsaS5vbiBhIHN0 -cm9uZy50aXQgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB9Cgp1bC50YWJfbWVudTQudHlw -ZTIgbGkud2lkZSB7IHdpZHRoOiAzNSU7IH0KCnVsLnRhYl9tZW51NC50eXBlMiBsaS5sYXN0IHsg -d2lkdGg6IDE1JTsgfQoKdWwudGFiX21lbnU0LnR5cGUyIGxpIGEgeyBjb2xvcjogcmdiKDEzLCAx -MjMsIDE5MSk7IHBhZGRpbmc6IDI3cHggMHB4OyBmb250LXNpemU6IDIwcHg7IH0KCnVsLnRhYl9t -ZW51NC50eXBlMiBsaS5vbiBhIHsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgcGFkZGluZy1i -b3R0b206IDI4cHg7IH0KCnVsLnRhYl9tZW51NSB7IHdpZHRoOiAxMDAlOyB9Cgp1bC50YWJfbWVu -dTUgbGkuc2VsZWN0ZWQgeyBkaXNwbGF5OiBub25lOyB9Cgp1bC50YWJfbWVudTUgbGkuZmlyc3Qg -YSB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRl -ci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKdWwudGFiX21lbnU1IGxpIGEgeyBk -aXNwbGF5OiBibG9jazsgd2lkdGg6IDE0OHB4OyBoZWlnaHQ6IDM0cHg7IHBhZGRpbmc6IDIwcHgg -MHB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBi -b3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItc3R5bGU6IG5vbmUgc29saWQgc29saWQ7IGJv -cmRlci1yaWdodC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3JkZXItYm90dG9tLWNvbG9y -OiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci1sZWZ0LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIy -NSk7IHRleHQtYWxpZ246IGNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGZvbnQtc2l6ZTog -MjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB9Cgp1bC50 -YWJfbWVudTUgbGkub24gYSB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHdpZHRoOiAxNjBw -eDsgaGVpZ2h0OiAzNXB4OyBtYXJnaW4tdG9wOiAtMXB4OyBib3JkZXI6IG5vbmU7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3RhYl9hcnJv -dzIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC50YWJfbWVudTUgbGkub24gYSBzcGFuIHsgbWFy -Z2luLWxlZnQ6IC0xMHB4OyB9CgpkaXYubWFwX2FyZWEgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG92 -ZXJmbG93OiBoaWRkZW47IH0KCmRpdi5tYXBfYXJlYSBpbWcubWFwIHsgd2lkdGg6IDEwMCU7IG1h -cmdpbjogMHB4OyB9CgpkaXYubWFwX2FyZWEgaW1nLm1hcC5hbGwgeyBtYXJnaW46IDBweDsgfQoK -Ym9keS5jaHJvbWUgZGl2Lm1hcF9hcmVhIGltZy5tYXAuYWxsIHsgbWFyZ2luLXRvcDogMTJweDsg -fQoKZGl2Lm1hcF9hcmVhIGgzIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDog -MTVweDsgfQoKdWwubmF0aW9uX2xpc3QgeyB9Cgp1bC5uYXRpb25fbGlzdCBsaSB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgfQoKZGl2Lm1hcF9sYXllciB7IH0KCmRpdi5tYXBfbGF5ZXIgc3Bhbi50aXQg -eyBkaXNwbGF5OiBub25lOyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGZvbnQtd2VpZ2h0OiA2 -MDA7IG1hcmdpbjogLTQ1cHggMHB4IDBweCAxMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5k -ZXg6IDEwOyB3aWR0aDogMjAwcHg7IH0KCmRpdi5tYXBfbGF5ZXIgc3Bhbi50aXQub24geyBjb2xv -cjogcmdiKDAsIDAsIDApOyB9CgpkaXYubWFwX2xheWVyIGEgeyB9CgpkaXYubWFwX2xheWVyIGEg -aW1nIHsgbWFyZ2luOiAtNDVweCAwcHggMHB4IC05cHg7IH0KCmJvZHkubXNpZTcgZGl2Lm1hcF9s -YXllciBhIGltZyB7IG1hcmdpbjogLTM1cHggMHB4IDBweCAtOXB4OyB9CgpkaXYubWFwX2xheWVy -MiB7IH0KCmRpdi53X21hcF9sYXllciBzcGFuLnRpdCB7IGRpc3BsYXk6IG5vbmU7IGNvbG9yOiBy -Z2IoMTMsIDEyMywgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luOiAtMzBweCAwcHggMHB4 -IDhweDsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDsgd2lkdGg6IDIwMHB4OyB9Cgpk -aXYud19tYXBfbGF5ZXIgc3Bhbi50aXQub24geyBjb2xvcjogcmdiKDAsIDAsIDApOyB9CgpkaXYu -d19tYXBfbGF5ZXIgYSB7IH0KCmRpdi53X21hcF9sYXllciBhIGltZyB7IG1hcmdpbjogLTIwcHgg -MHB4IDBweCAtNHB4OyB9Cgoud19zd2UgeyB0b3A6IDIyLjIyMjIyMjIyMjIyMjIyJTsgbGVmdDog -MTAuMTA0MTY2NjY2NjY2NjY2JTsgfQoKLndfZmluIHsgdG9wOiAyNC4xMDU0NjEzOTM1OTY5ODYl -OyBsZWZ0OiAxNC4xNjY2NjY2NjY2NjY2NjYlOyB9Cgoud19ub3IgeyB0b3A6IDI1LjA0NzA4MDk3 -OTI4NDM3JTsgbGVmdDogOC44NTQxNjY2NjY2NjY2NjglOyB9Cgoud19sdmEgeyB0b3A6IDI3LjQ5 -NTI5MTkwMjA3MTU2JTsgbGVmdDogMTQuMDYyNSU7IH0KCi53X3BvbCB7IHRvcDogMzEuMDczNDQ2 -MzI3NjgzNjIlOyBsZWZ0OiAxMy4wMjA4MzMzMzMzMzMzMzQlOyB9Cgoud19nYnIgeyB0b3A6IDMy -LjIwMzM4OTgzMDUwODQ3JTsgbGVmdDogNi40NTgzMzMzMzMzMzMzMzQlOyB9Cgoud19ubGQgeyB0 -b3A6IDM0LjA4NjYyOTAwMTg4MzI0JTsgbGVmdDogOC4zMzMzMzMzMzMzMzMzMzIlOyB9Cgoud19k -ZXUgeyB0b3A6IDM1LjAyODI0ODU4NzU3MDYyJTsgbGVmdDogOS4zNzUlOyB9Cgoud19jemUgeyB0 -b3A6IDM1LjU5MzIyMDMzODk4MzA1JTsgbGVmdDogMTEuNjY2NjY2NjY2NjY2NjY2JTsgfQoKLndf -c3ZrIHsgdG9wOiAzNi41MzQ4Mzk5MjQ2NzA0MyU7IGxlZnQ6IDEyLjM5NTgzMzMzMzMzMzMzNCU7 -IH0KCi53X3VrciB7IHRvcDogMzYuNTM0ODM5OTI0NjcwNDMlOyBsZWZ0OiAxNi40NTgzMzMzMzMz -MzMzMzIlOyB9Cgoud19mcmEgeyB0b3A6IDM3Ljg1MzEwNzM0NDYzMjc3JTsgbGVmdDogNy4wODMz -MzMzMzMzMzMzMzMlOyB9Cgoud19hdXQgeyB0b3A6IDM4Ljc5NDcyNjkzMDMyMDE1JTsgbGVmdDog -MTEuNzcwODMzMzMzMzMzMzM0JTsgfQoKLndfaHVuIHsgdG9wOiAzOC4wNDE0MzEyNjE3NzAyNCU7 -IGxlZnQ6IDEzLjU0MTY2NjY2NjY2NjY2NiU7IH0KCi53X3JvdSB7IHRvcDogMzkuMzU5Njk4Njgx -NzMyNTglOyBsZWZ0OiAxNC4yNzA4MzMzMzMzMzMzMzIlOyB9Cgoud19wcnQgeyB0b3A6IDQxLjA1 -NDYxMzkzNTk2OTg3JTsgbGVmdDogNC44OTU4MzMzMzMzMzMzMzMlOyB9Cgoud19sdGEgeyB0b3A6 -IDM5LjkyNDY3MDQzMzE0NTAxJTsgbGVmdDogMTAuNDE2NjY2NjY2NjY2NjY4JTsgfQoKLndfZXNw -IHsgdG9wOiA0Mi4zNzI4ODEzNTU5MzIyJTsgbGVmdDogNi4yNSU7IH0KCi53X3R1biB7IHRvcDog -NDMlOyBsZWZ0OiA5LjUlOyB9Cgoud19tYXIgeyB0b3A6IDQ4LjAyMjU5ODg3MDA1NjUlOyBsZWZ0 -OiA0LjM3NSU7IH0KCi53X2VneSB7IHRvcDogNDguMzk5MjQ2NzA0MzMxNDUlOyBsZWZ0OiAxNC41 -ODMzMzMzMzMzMzMzMzQlOyB9Cgoud19kemEgeyB0b3A6IDUyLjM1NDA0ODk2NDIxODQ2JTsgbGVm -dDogNi45NzkxNjY2NjY2NjY2NjclOyB9Cgoud19zYXUgeyB0b3A6IDUyLjkxOTAyMDcxNTYzMDg4 -JTsgbGVmdDogMTguNDM3NSU7IH0KCi53X2doYSB7IHRvcDogNTguMTkyMDkwMzk1NDgwMjIlOyBs -ZWZ0OiA3LjA4MzMzMzMzMzMzMzMzMyU7IH0KCi53X25nYSB7IHRvcDogNTkuNTEwMzU3ODE1NDQy -NTYlOyBsZWZ0OiA5Ljc5MTY2NjY2NjY2NjY2NiU7IH0KCi53X2tlbiB7IHRvcDogNjIuMzM1MjE2 -NTcyNTA0NzA2JTsgbGVmdDogMTYuODc1JTsgfQoKLndfYWdvIHsgdG9wOiA3MC44MDk3OTI4NDM2 -OTExNCU7IGxlZnQ6IDEwLjgzMzMzMzMzMzMzMzMzNCU7IH0KCi53X3phZiB7IHRvcDogNzguNTMx -MDczNDQ2MzI3NjglOyBsZWZ0OiAxMS44NzUlOyB9Cgoud19pc3IgeyB0b3A6IDQ3LjI2OTMwMzIw -MTUwNjU5JTsgbGVmdDogMTYuODc1JTsgfQoKLndfam9yIHsgdG9wOiA0OC4yMTA5MjI3ODcxOTM5 -NyU7IGxlZnQ6IDE3LjcwODMzMzMzMzMzMzMzNiU7IH0KCi53X2lybiB7IHRvcDogNDguMDIyNTk4 -ODcwMDU2NSU7IGxlZnQ6IDIxLjY2NjY2NjY2NjY2NjY2OCU7IH0KCi53X2FyZSB7IHRvcDogNTEu -NDEyNDI5Mzc4NTMxMDglOyBsZWZ0OiAyMS4xNDU4MzMzMzMzMzMzMzIlOyB9Cgoud19xYXIgeyB0 -b3A6IDUyLjE2NTcyNTA0NzA4MDk4JTsgbGVmdDogMjAuMzEyNSU7IH0KCi53X3J1cyB7IHRvcDog -MjEuMjgwNjAyNjM2NTM0ODQlOyBsZWZ0OiAyOC44NTQxNjY2NjY2NjY2NjQlOyB9Cgoud19rYXog -eyB0b3A6IDM1LjUlOyBsZWZ0OiAyNy41JTsgfQoKLndfdXpiIHsgdG9wOiAzOSU7IGxlZnQ6IDIz -JTsgfQoKLndfcGFrIHsgdG9wOiA1My4yOTU2Njg1NDk5MDU4NCU7IGxlZnQ6IDI3LjA4MzMzMzMz -MzMzMzMzMiU7IH0KCi53X2luZCB7IHRvcDogNTYuMzA4ODUxMjI0MTA1NDYlOyBsZWZ0OiAyNy43 -MDgzMzMzMzMzMzMzMzYlOyB9Cgoud19tbmcgeyB0b3A6IDM4LjA0MTQzMTI2MTc3MDI0JTsgbGVm -dDogMzUuMTA0MTY2NjY2NjY2NjY0JTsgfQoKLndfY2huIHsgdG9wOiA0NS43NjI3MTE4NjQ0MDY3 -OCU7IGxlZnQ6IDM3LjM5NTgzMzMzMzMzMzMzNiU7IH0KCi53X2hrZyB7IHRvcDogNTEuNjAwNzUz -Mjk1NjY4NTUlOyBsZWZ0OiAzNy44MTI1JTsgfQoKLndfdHduIHsgdG9wOiA1MC40NzA4MDk3OTI4 -NDM2OTYlOyBsZWZ0OiA0MC41MjA4MzMzMzMzMzMzMzYlOyB9Cgoud19tbXIgeyB0b3A6IDUzLjEw -NzM0NDYzMjc2ODM2JTsgbGVmdDogMzMuMjI5MTY2NjY2NjY2NjY0JTsgfQoKLndfdGhhIHsgdG9w -OiA1NS4xNzg5MDc3MjEyODA2JTsgbGVmdDogMzUuMTA0MTY2NjY2NjY2NjY0JTsgfQoKLndfd25t -IHsgdG9wOiA1Ni4xMjA1MjczMDY5Njc5OCU7IGxlZnQ6IDM2LjY2NjY2NjY2NjY2NjY2NCU7IH0K -Ci53X215cyB7IHRvcDogNTkuMzIyMDMzODk4MzA1MDglOyBsZWZ0OiAzNC40NzkxNjY2NjY2NjY2 -NjQlOyB9Cgoud19zZ3AgeyB0b3A6IDYxLjIwNTI3MzA2OTY3OTg1JTsgbGVmdDogMzUuMjA4MzMz -MzMzMzMzMzM2JTsgfQoKLndfcGhsIHsgdG9wOiA1NS4xNzg5MDc3MjEyODA2JTsgbGVmdDogNDAu -NTIwODMzMzMzMzMzMzM2JTsgfQoKLndfanBuIHsgdG9wOiA0NC4yNTYxMjA1MjczMDY5NyU7IGxl -ZnQ6IDQ1LjQxNjY2NjY2NjY2NjY2NCU7IH0KCi53X2F1cyB7IHRvcDogNzguMTU0NDI1NjEyMDUy -NzMlOyBsZWZ0OiA0Mi4yOTE2NjY2NjY2NjY2NjQlOyB9Cgoud19jYW4geyB0b3A6IDI0Ljg1ODc1 -NzA2MjE0Njg5MyU7IGxlZnQ6IDczLjQzNzUlOyB9Cgoud191c2EgeyB0b3A6IDQxLjgwNzkwOTYw -NDUxOTc3JTsgbGVmdDogNzguNjQ1ODMzMzMzMzMzMzQlOyB9Cgoud19tZXggeyB0b3A6IDUxLjc4 -OTA3NzIxMjgwNjAyJTsgbGVmdDogNzguNzUlOyB9Cgoud19wYW4geyB0b3A6IDU4Ljc1NzA2MjE0 -Njg5MjY2JTsgbGVmdDogODUuMTA0MTY2NjY2NjY2NjclOyB9Cgoud192ZW4geyB0b3A6IDU4JTsg -bGVmdDogODklOyB9Cgoud19jb2wgeyB0b3A6IDYxLjIwNTI3MzA2OTY3OTg1JTsgbGVmdDogODYu -NzcwODMzMzMzMzMzMzMlOyB9Cgoud19icmEgeyB0b3A6IDY2LjI5MDAxODgzMjM5MTcyJTsgbGVm -dDogOTIuNjA0MTY2NjY2NjY2NjclOyB9Cgoud19wZXIgeyB0b3A6IDcwLjA1NjQ5NzE3NTE0MTI1 -JTsgbGVmdDogODYuNzcwODMzMzMzMzMzMzMlOyB9Cgoud19hcmcgeyB0b3A6IDgyLjEwOTIyNzg3 -MTkzOTc0JTsgbGVmdDogODkuNTgzMzMzMzMzMzMzMzQlOyB9Cgoud19jaGwgeyB0b3A6IDg1LjEy -MjQxMDU0NjEzOTM2JTsgbGVmdDogODguMDIwODMzMzMzMzMzMzQlOyB9Cgoud19iZ3IgeyB0b3A6 -IDQwLjg2NjI5MDAxODgzMjM5JTsgbGVmdDogMTQuMzc1JTsgfQoKLndfc2ViIHsgdG9wOiA0MC4z -MDEzMTgyNjc0MTk5NiU7IGxlZnQ6IDEzLjY0NTgzMzMzMzMzMzMzJTsgfQoKLndfa29yIHsgdG9w -OiA0My4xMjYxNzcwMjQ0ODIxMSU7IGxlZnQ6IDQxLjg3NSU7IH0KCi53X2dyYyB7IHRvcDogNDIu -MTg0NTU3NDM4Nzk0NzMlOyBsZWZ0OiAxMy4wMjA4MzMzMzMzMzMzMyU7IH0KCi53X2lkbiB7IHRv -cDogNjQuNDA2Nzc5NjYxMDE2OTYlOyBsZWZ0OiA0MC4zMTI1JTsgfQoKLndfdHVyIHsgdG9wOiA0 -My4xMjYxNzcwMjQ0ODIxMSU7IGxlZnQ6IDE1LjgzMzMzMzMzMzMzMzMzJTsgfQoKLndfaXNyIHsg -dG9wOiA0NS43JTsgbGVmdDogMTYuNSU7IH0KCi53X3BhayB7IHRvcDogNDguNCU7IGxlZnQ6IDI3 -LjQlOyB9Cgoud19pcnEgeyB0b3A6IDQ2LjUlOyBsZWZ0OiAxOC41JTsgfQoKLndfYmVsIHsgdG9w -OiAzMyU7IGxlZnQ6IDglOyB9Cgoud19tYWMgeyB0b3A6IDUxLjUlOyBsZWZ0OiAzNy4yJTsgfQoK -LndfcWF0IHsgdG9wOiA0OS41JTsgbGVmdDogMjElOyB9Cgoud190dWsgeyB0b3A6IDQxJTsgbGVm -dDogMjMlOyB9Cgoud19zZW4geyB0b3A6IDU0LjUlOyBsZWZ0OiAyJTsgfQoKLndfdHJpIHsgdG9w -OiA1NiU7IGxlZnQ6IDkwLjclOyB9CgoubmxkIHsgdG9wOiA2NS45MDkwOTA5MDkwOTA5JTsgbGVm -dDogMTguMjI5MTY2NjY2NjY2NjY0JTsgfQoKLnBydCB7IHRvcDogODIuMzQyNjU3MzQyNjU3MzUl -OyBsZWZ0OiAxMC42MjUlOyB9CgouZGV1IHsgdG9wOiA3MC44MDQxOTU4MDQxOTU4JTsgbGVmdDog -MTguODU0MTY2NjY2NjY2NjY4JTsgfQoKLmVzcCB7IHRvcDogODYuNzEzMjg2NzEzMjg2NyU7IGxl -ZnQ6IDEzLjMzMzMzMzMzMzMzMzMzNCU7IH0KCi5nYnIgeyB0b3A6IDY4LjE4MTgxODE4MTgxODE3 -JTsgbGVmdDogMTMuODU0MTY2NjY2NjY2NjY4JTsgfQoKLmZyYSB7IHRvcDogNzguMzIxNjc4MzIx -Njc4MzIlOyBsZWZ0OiAxNi4yNSU7IH0KCi5zd2UgeyB0b3A6IDQ1LjgwNDE5NTgwNDE5NTglOyBs -ZWZ0OiAyMy44NTQxNjY2NjY2NjY2NjglOyB9Cgoubm9yIHsgdG9wOiA1Mi43OTcyMDI3OTcyMDI4 -JTsgbGVmdDogMjAlOyB9CgouYXV0IHsgdG9wOiA3NS44NzQxMjU4NzQxMjU4OCU7IGxlZnQ6IDIx -Ljk3OTE2NjY2NjY2NjY2OCU7IH0KCi5sdGEgeyB0b3A6IDgxLjY0MzM1NjY0MzM1NjY0JTsgbGVm -dDogMjIuMTg3NSU7IH0KCi5jemUgeyB0b3A6IDcxLjUwMzQ5NjUwMzQ5NjUlOyBsZWZ0OiAyNC4y -NzA4MzMzMzMzMzMzMzIlOyB9CgouaHVuIHsgdG9wOiA3OS4wMjA5NzkwMjA5NzkwMyU7IGxlZnQ6 -IDI1JTsgfQoKLnBvbCB7IHRvcDogNjYuNzgzMjE2NzgzMjE2NzklOyBsZWZ0OiAyNy4xODc0OTk5 -OTk5OTk5OTYlOyB9CgoubHZhIHsgdG9wOiA1OS4yNjU3MzQyNjU3MzQyNzQlOyBsZWZ0OiAzMCU7 -IH0KCi5zdmsgeyB0b3A6IDc0LjEyNTg3NDEyNTg3NDEyJTsgbGVmdDogMjguNzQ5OTk5OTk5OTk5 -OTk2JTsgfQoKLmZpbiB7IHRvcDogNDUuMjc5NzIwMjc5NzIwMjglOyBsZWZ0OiAzMS45NzkxNjY2 -NjY2NjY2NjQlOyB9CgouZ3JjIHsgdG9wOiA4My4zOTE2MDgzOTE2MDg0JTsgbGVmdDogMzAuNDE2 -NjY2NjY2NjY2NjY0JTsgfQoKLnVrciB7IHRvcDogNzMuNzc2MjIzNzc2MjIzNzklOyBsZWZ0OiAz -Ni42NjY2NjY2NjY2NjY2NjQlOyB9CgoucnVzIHsgdG9wOiA0My43MDYyOTM3MDYyOTM3MSU7IGxl -ZnQ6IDcwLjUyMDgzMzMzMzMzMzMzJTsgfQoKLnJvdSB7IHRvcDogNzcuOTcyMDI3OTcyMDI3OTcl -OyBsZWZ0OiAzMS4yNSU7IH0KCi5zZWIgeyB0b3A6IDc5Ljg5NTEwNDg5NTEwNDklOyBsZWZ0OiAy -OS4xNjY2NjY2NjY2NjY2NyU7IH0KCi5iZ3IgeyB0b3A6IDgxLjExODg4MTExODg4MTEyJTsgbGVm -dDogMzEuMTQ1ODMzMzMzMzMzMzMlOyB9CgouYmVsIHsgdG9wOiA2OC40JTsgbGVmdDogMTclOyB9 -CgoudHVyIHsgdG9wOiA4NiU7IGxlZnQ6IDMzJTsgfQoKLmlzciB7IHRvcDogOTMlOyBsZWZ0OiAz -NSU7IH0KCi5qb3IgeyB0b3A6IDI3LjE0NTM1OTAxOTI2NDQ0NyU7IGxlZnQ6IDMzLjIyOTE2NjY2 -NjY2NjY2NCU7IH0KCi5zYXUgeyB0b3A6IDM5LjA1NDI5MDcxODAzODUzJTsgbGVmdDogMzUuOTM3 -NSU7IH0KCi5xYXIgeyB0b3A6IDM0LjMyNTc0NDMwODIzMTE3JTsgbGVmdDogMzkuODk1ODMzMzMz -MzMzMzM2JTsgfQoKLmlybiB7IHRvcDogMjcuNDk1NjIxNzE2Mjg3MjE4JTsgbGVmdDogNDAuOTM3 -NSU7IH0KCi5wYWsgeyB0b3A6IDM2LjA3NzA1Nzc5MzM0NTAwNiU7IGxlZnQ6IDUyLjE4NzUlOyB9 -CgouaW5kIHsgdG9wOiA0NC42NTg0OTM4NzA0MDI4MSU7IGxlZnQ6IDU0LjM3NDk5OTk5OTk5OTk5 -JTsgfQoKLnV6YiB7IHRvcDogMTQlOyBsZWZ0OiA0NCU7IH0KCi5tbXIgeyB0b3A6IDQwLjYzMDQ3 -Mjg1NDY0MDk4JTsgbGVmdDogNjQuNjg3NSU7IH0KCi50aGEgeyB0b3A6IDQ1LjcwOTI4MTk2MTQ3 -MTEwNiU7IGxlZnQ6IDY2Ljc3MDgzMzMzMzMzMzMzJTsgfQoKLm15cyB7IHRvcDogNTEuMzEzNDg1 -MTEzODM1MzglOyBsZWZ0OiA2Ny4yOTE2NjY2NjY2NjY2NyU7IH0KCi5zZ3AgeyB0b3A6IDU1LjUx -NjYzNzQ3ODEwODU4JTsgbGVmdDogNjkuMzc1JTsgfQoKLmNobiB7IHRvcDogMjUuNzQ0MzA4MjMx -MTczMzglOyBsZWZ0OiA2OS44OTU4MzMzMzMzMzMzMyU7IH0KCi53bm0geyB0b3A6IDQ2LjA1OTU0 -NDY1ODQ5Mzg3JTsgbGVmdDogNzEuMDQxNjY2NjY2NjY2NjclOyB9CgoubW5nIHsgdG9wOiAxNC41 -MzU5MDE5MjY0NDQ4MzMlOyBsZWZ0OiA3Mi4xODc1JTsgfQoKLmhrZyB7IHRvcDogMzYuMDc3MDU3 -NzkzMzQ1MDA2JTsgbGVmdDogNzMuMDIwODMzMzMzMzMzMzMlOyB9CgouaWRuIHsgdG9wOiA1OC40 -OTM4NzA0MDI4MDIxMSU7IGxlZnQ6IDc0Ljg5NTgzMzMzMzMzMzMzJTsgfQoKLnR3biB7IHRvcDog -MzQuNjc2MDA3MDA1MjUzOTM2JTsgbGVmdDogNzkuMTY2NjY2NjY2NjY2NjYlOyB9CgoucGhsIHsg -dG9wOiA0NC42NTg0OTM4NzA0MDI4MSU7IGxlZnQ6IDc5LjI3MDgzMzMzMzMzMzMzJTsgfQoKLmF1 -cyB7IHRvcDogODMuMzYyNTIxODkxNDE4NTclOyBsZWZ0OiA4My4wMjA4MzMzMzMzMzMzMyU7IH0K -Ci5qcG4geyB0b3A6IDIwLjQ5MDM2Nzc3NTgzMTg3NCU7IGxlZnQ6IDg5Ljc5MTY2NjY2NjY2NjY3 -JTsgfQoKLmtheiB7IHRvcDogNSU7IGxlZnQ6IDUwJTsgfQoKLmtvciB7IHRvcDogMTguNzA2Mjkz -NzA2MjkzNzElOyBsZWZ0OiA4Mi4wODMzMzMzMzMzMzMzMyU7IH0KCi5hcmUgeyB0b3A6IDM1LjEz -OTg2MDEzOTg2MDE0JTsgbGVmdDogNDMuMTI1JTsgfQoKLnBhayB7IHRvcDogMzQlOyBsZWZ0OiA1 -NCU7IH0KCi5pcnEgeyB0b3A6IDI1JTsgbGVmdDogMzUlOyB9CgoubWFjIHsgdG9wOiAzNiU7IGxl -ZnQ6IDcyLjMlOyB9CgoucWF0IHsgdG9wOiAzMy41JTsgbGVmdDogNDAuOCU7IH0KCi50dWsgeyB0 -b3A6IDE4JTsgbGVmdDogNDMlOyB9CgouY2FuIHsgdG9wOiAxNC42ODUzMTQ2ODUzMTQ2ODUlOyBs -ZWZ0OiA2MS45NzkxNjY2NjY2NjY2NjQlOyB9CgoubWV4IHsgdG9wOiAzOC4xMTE4ODgxMTE4ODgx -MDYlOyBsZWZ0OiA2Ny41JTsgfQoKLnVzYSB7IHRvcDogMjcuMDk3OTAyMDk3OTAyMSU7IGxlZnQ6 -IDY4LjIyOTE2NjY2NjY2NjY2JTsgfQoKLnBhbiB7IHRvcDogNDYuODUzMTQ2ODUzMTQ2ODUlOyBs -ZWZ0OiA3Ni45NzkxNjY2NjY2NjY2NyU7IH0KCi5wZXIgeyB0b3A6IDYyLjA2MjkzNzA2MjkzNzA2 -JTsgbGVmdDogODAuMjA4MzMzMzMzMzMzMzQlOyB9CgouY29sIHsgdG9wOiA1MS4zOTg2MDEzOTg2 -MDEzOSU7IGxlZnQ6IDc5Ljg5NTgzMzMzMzMzMzMzJTsgfQoKLmNobCB7IHRvcDogODIuNTE3NDgy -NTE3NDgyNTIlOyBsZWZ0OiA4MS45NzkxNjY2NjY2NjY2NyU7IH0KCi5hcmcgeyB0b3A6IDc2LjM5 -ODYwMTM5ODYwMTQlOyBsZWZ0OiA4Ni4zNTQxNjY2NjY2NjY2NyU7IH0KCi52ZW4geyB0b3A6IDQ4 -JTsgbGVmdDogODMuMiU7IH0KCi5icmEgeyB0b3A6IDU4Ljc0MTI1ODc0MTI1ODc0JTsgbGVmdDog -OTAuODMzMzMzMzMzMzMzMzMlOyB9CgoudHJpIHsgdG9wOiA0NCU7IGxlZnQ6IDg1LjUlOyB9Cgou -bWFyIHsgdG9wOiAxOS40MzQ2Mjg5NzUyNjUwMTclOyBsZWZ0OiAxMi42MDQxNjY2NjY2NjY2NjYl -OyB9CgouZHphIHsgdG9wOiAyNi42Nzg0NDUyMjk2ODE5OCU7IGxlZnQ6IDE4Ljk1ODMzMzMzMzMz -MzMzMiU7IH0KCi50dW4geyB0b3A6IDE2LjA3NzczODUxNTkwMTA2JTsgbGVmdDogMjIuMDgzMzMz -MzMzMzMzMzMyJTsgfQoKLm5nYSB7IHRvcDogNDcuODc5ODU4NjU3MjQzODE1JTsgbGVmdDogMjMu -MTI1JTsgfQoKLmFnbyB7IHRvcDogNzYuMTQ4NDA5ODkzOTkyOTMlOyBsZWZ0OiAyNy4xODc0OTk5 -OTk5OTk5OTYlOyB9CgouemFmIHsgdG9wOiA5MS44NzI3OTE1MTk0MzQ2MyU7IGxlZnQ6IDMyLjM5 -NTgzMzMzMzMzMzMzNiU7IH0KCi5lZ3kgeyB0b3A6IDI0LjczNDk4MjMzMjE1NTQ4JTsgbGVmdDog -MzYuNjY2NjY2NjY2NjY2NjY0JTsgfQoKLmtlbiB7IHRvcDogNTQuOTQ2OTk2NDY2NDMxMDk1JTsg -bGVmdDogNDIuOTE2NjY2NjY2NjY2NjY0JTsgfQoKLmdoYSB7IHRvcDogNDUuOTM2Mzk1NzU5NzE3 -MzElOyBsZWZ0OiAxNi44NzUlOyB9CgoudHVuIHsgdG9wOiAxNC41JTsgbGVmdDogMjMlOyB9Cgou -c2VuIHsgdG9wOiAzOSU7IGxlZnQ6IDYlOyB9CgpoMy5ibHVlIHsgbWFyZ2luLWJvdHRvbTogMHB4 -OyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi -b3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCmgzLmJsdWUgYSB7IGZv -bnQtc2l6ZTogMThweDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBtYXJnaW46IDBweCA1cHgg -MTlweCAxNXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmty -L2ltYWdlcy9idF9tYXB2aWV3Mi5naWYpOyBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMTFweDsgZGlz -cGxheTogYmxvY2s7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgOXB4OyBiYWNrZ3JvdW5kLXJl -cGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYm9keS5tc2llNyBoMy5ibHVlIGEgeyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF9tYXB2 -aWV3LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgOXB4OyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKaDMuYmx1ZSBhLm9uIHsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfbWFwdmlld19vbi5naWYp -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDlweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl -cGVhdCBuby1yZXBlYXQ7IH0KCnAuZm9yZWlnbl9yZXN1bHQgeyBkaXNwbGF5OiBibG9jazsgYm9y -ZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVy -LWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpwLmZvcmVpZ25fcmVzdWx0IGEg -eyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMzBweCA1MHB4IDE1cHggMTVweDsgZm9udC1zaXpl -OiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3 -dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF90b2dnbGVfb2ZmLmdpZik7IGJhY2tncm91bmQtc2l6 -ZTogMjVweDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5 -OCUgMzVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnAuZm9y -ZWlnbl9yZXN1bHQub24gYSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2J0X3RvZ2dsZV9vbjIuZ2lmKTsgYmFja2dyb3VuZC1zaXplOiAyNXB4 -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OCUgMzVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl -cGVhdCBuby1yZXBlYXQ7IH0KCnAuZm9yZWlnbl9yZXN1bHRfbSB7IGRpc3BsYXk6IG5vbmU7IGJv -cmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRl -ci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFkZGluZzogMjBweCAwcHg7IGZv -bnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGwuZm9yZWlnbl9saXN0IHsgYm9y -ZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVy -LWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkbC5mb3JlaWduX2xpc3QgZHQg -eyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXIt -dG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCmRsLmZv -cmVpZ25fbGlzdCBkdDpmaXJzdC1jaGlsZCB7IGJvcmRlcjogbm9uZTsgfQoKZGwuZm9yZWlnbl9s -aXN0IGR0Lm9uIHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxMDsgYm9yZGVyLWJvdHRv -bS1zdHlsZTogbm9uZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYmdfYXJyb3czLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDI4cHggMTAw -JTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRsLmZvcmVpZ25f -bGlzdCBkdCBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDIycHggNjBweCAyM3B4IDE2cHg7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J0 -X3RvZ2dsZV9vZmYuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogOTglIDE4cHg7IGJhY2tncm91 -bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkbC5mb3JlaWduX2xpc3QgZHQgYTpo -b3ZlciB7IGN1cnNvcjogcG9pbnRlcjsgfQoKZGwuZm9yZWlnbl9saXN0IGR0Lm9uIGEgeyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF90b2dn -bGVfb24uZ2lmKTsgfQoKZGwuZm9yZWlnbl9saXN0IGR0Lm9uICsgZGQgeyBkaXNwbGF5OiBibG9j -azsgfQoKZGwuZm9yZWlnbl9saXN0IGRkIHsgZGlzcGxheTogbm9uZTsgbWFyZ2luLXRvcDogLTFw -eDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVy -LXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkbC5mb3JlaWduX2xpc3QgZGQgdWwu -ZGVzYyB7IHBhZGRpbmc6IDE3cHggMTVweCAxOXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUy -LCAyNTIsIDI1MCk7IH0KCmRsLmZvcmVpZ25fbGlzdCBkZCB1bC5kZXNjIGxpIHNwYW4udGl0IHsg -Zm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IH0KCmRpdi5ib3hfdHlw -ZV9zcmFyY2ggeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMTQ1LCAyMjApOyBjbGVhcjogYm90 -aDsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2 -LmJveF90eXBlX3NyYXJjaCBzcGFuLmJ0bl9uYXZ5IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19i -dGxlZnQyLnBuZyk7IHBhZGRpbmc6IDBweCAwcHggMHB4IDdweDsgYmFja2dyb3VuZC1wb3NpdGlv -bjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKZGl2LmJveF90eXBlX3NyYXJjaCBzcGFuLmJ0bl9uYXZ5IGEgeyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3Iv -aW1hZ2VzL2JnX2J0cmlnaHQyLnBuZyk7IHNpemU6IDE1cHg7IGNvbG9yOiByZ2IoMjU1LCAyNTUs -IDI1NSk7IHBhZGRpbmc6IDEwcHggMTVweCAxNXB4IDEwcHg7IGJhY2tncm91bmQtcG9zaXRpb246 -IDEwMCUgMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2 -LmJveF90eXBlX3NyYXJjaCBzcGFuLmJ0bl9uYXZ5IGE6Zm9jdXMgeyBvdXRsaW5lLXN0eWxlOiBu -b25lOyB9Cgp1bC5ib3hfc2VhcmNoIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAx -OHB4IDIzcHggMThweCAwcHg7IGZsb2F0OiBsZWZ0OyB3aWR0aDogODAlOyB9Cgp1bC5ib3hfc2Vh -cmNoIGxpIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1sZWZ0OiA0MHB4OyB3aWR0aDogMjYlOyB9Cgp1 -bC5ib3hfc2VhcmNoIGxpIHNlbGVjdCB7IHdpZHRoOiAyMjBweDsgZm9udC1zaXplOiAxNXB4OyBm -b250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDQxLCA1NiwgNzIpOyBmb250LWZhbWlseTog64KY -64iU6rOg65SVLCBOYW51bUdvdGhpYywgJ05hbnVtIEdvdGhpYycsIOuPi+ybgCwgRG90dW0sIOq1 -tOumvCwgR3VsaW0sIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgfQoKdWwuYm94X3NlYXJjaCBsaSBs -YWJlbCB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZvbnQtc2l6ZTogMThweDsgZm9udC13 -ZWlnaHQ6IDYwMDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDBweCAwcHggOHB4OyB9CgpzcGFu -LnBvaW50X3NlbCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfc2VsZWN0LmdpZik7IGJhY2tncm91 -bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgaGVpZ2h0OiA0MHB4OyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiAxMDAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCnAuZm9yZWlnbl9yZXN1bHQgeyBjbGVhcjogYm90aDsgfQoKZGl2LmJ0bl9jZW50ZXIgeyBm -bG9hdDogbGVmdDsgbWFyZ2luOiAyMHB4IDBweCAwcHg7IHBhZGRpbmc6IDEycHggMHB4IDhweCAx -MHB4OyB3aWR0aDogMTUlOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9iZ19saW5lLnBuZyk7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 -IG5vLXJlcGVhdDsgfQoKdWwuZGVzYyB7IH0KCnVsLmRlc2MgbGkgeyBvdmVyZmxvdzogaGlkZGVu -OyBtYXJnaW4tdG9wOiAxNXB4OyBwYWRkaW5nLWxlZnQ6IDlweDsgY29sb3I6IHJnYigxMDQsIDEx -NiwgMTI5KTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvYnVfZG90LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDhweDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVsLmRlc2MgbGk6Zmlyc3QtY2hpbGQg -eyBtYXJnaW4tdG9wOiAwcHg7IH0KCnVsLmRlc2MgbGkgc3Bhbi50aXQgeyBmbG9hdDogbGVmdDsg -d2lkdGg6IDc4cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IGZvbnQtd2VpZ2h0OiA2MDA7IH0K -CnVsLmRlc2MgbGkgc3Bhbi50eHQgeyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsg -fQoKdWwuZGVzYyBsaSBzcGFuLnR4dCBhIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiByZ2IoMTMs -IDEyMywgMTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgd29yZC13cmFwOiBicmVhay13b3JkOyB9Cgou -cm9sbGluZ19jdHJsIHsgcGFkZGluZzogMHB4IDBweCAwcHggNXB4OyB9Cgoucm9sbGluZ19jdHJs -IC5jdHJsX2J0ICogeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRk -bGU7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0 -OiBub3JtYWw7IGZvbnQtc2l6ZTogMHB4OyBsaW5lLWhlaWdodDogMDsgZm9udC1mYW1pbHk6IGFy -aWFsOyB9Cgoucm9sbGluZ19jdHJsIG9sIHsgZGlzcGxheTogbm9uZTsgfQoKLnJvbGxpbmdfY3Ry -bCBsaSB7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tcmlnaHQ6IDRweDsgfQoKLnJvbGxpbmdfY3RybCBs -aSBhIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA3cHg7IGhlaWdo -dDogN3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9hYm91dC9iZ19jb250cm9sbGVyX2Npci5wbmcpOyBiYWNrZ3JvdW5kLXNpemU6IDdweDsg -dGV4dC1pbmRlbnQ6IC05OTk5cHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlh -bDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmJvZHkubXNpZTgg -LnJvbGxpbmdfY3RybCBsaSBhIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfY29udHJvbGxlcjMucG5nKTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMHB4IC0xM3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKLnJvbGxpbmdfY3RybCBsaSBhLm9uIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfY29udHJvbGxlcl9jaXJfYmx1ZS5w -bmcpOyBiYWNrZ3JvdW5kLXNpemU6IDdweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYm9keS5t -c2llOCAucm9sbGluZ19jdHJsIGxpIGEub24geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov -L3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19jb250cm9sbGVyMy5wbmcpOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiAtMTFweCAtMTNweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCi5yb2xsaW5nX2N0cmwgLnBsYXkgYSwgLnJvbGxpbmdfY3RybCAucGF1 -c2UgYSB7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTBweDsgaGVp -Z2h0OiAxMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmty -L2ltYWdlcy9hYm91dC9iZ19jb250cm9sbGVyMy5wbmcpOyB0ZXh0LWluZGVudDogLTk5OTlweDsg -YmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y -ZXBlYXQgbm8tcmVwZWF0OyB9Cgoucm9sbGluZ19jdHJsIC5wYXVzZSBhIHsgYmFja2dyb3VuZC1w -b3NpdGlvbjogLTQ5cHggLTEwcHg7IH0KCi5yb2xsaW5nX2N0cmwgLnByZXYgeyBtYXJnaW4tbGVm -dDogMjBweDsgfQoKLnJvbGxpbmdfY3RybCAucHJldiBhLCAucm9sbGluZ19jdHJsIC5uZXh0IGEg -eyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDI5cHg7IGhlaWdodDog -MjlweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYWJvdXQvYmdfY29udHJvbGxlcjMucG5nKTsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IGJhY2tn -cm91bmQtcG9zaXRpb246IC04MXB4IDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBu -by1yZXBlYXQ7IH0KCi5yb2xsaW5nX2N0cmwgLm5leHQgYSB7IGJhY2tncm91bmQtcG9zaXRpb246 -IC0xMTRweCAwcHg7IH0KCi5yb2xsaW5nX2N0cmwgLnByZXYgYTpob3ZlciwgLnJvbGxpbmdfY3Ry -bCAucHJldiBhLm9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgxcHggLTMxcHg7IH0KCi5yb2xs -aW5nX2N0cmwgLm5leHQgYTpob3ZlciwgLnJvbGxpbmdfY3RybCAubmV4dCBhLm9uIHsgYmFja2dy -b3VuZC1wb3NpdGlvbjogLTExNHB4IC0zMXB4OyB9CgpkaXYuYmdfcHJlc2lkZW50X2EgeyBwb3Np -dGlvbjogcmVsYXRpdmU7IG1hcmdpbi10b3A6IC04MHB4OyBwYWRkaW5nLXRvcDogODBweDsgaGVp -Z2h0OiA0MjBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvbm9jYWNoZS9hYm91dC9iZ19wcmVzaWRlbnRfYS5naWYpOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiAwcHggMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCmRpdi5iZ19wcmVzaWRlbnRfYSBwLmltZ19kZXMgeyBtYXJnaW46IDQwcHggMHB4OyBmb250 -LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFs -OyBmb250LXNpemU6IDI0cHg7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQtZmFtaWx5OiAnTmFu -dW0gTXllb25nam8nOyBsZXR0ZXItc3BhY2luZzogLTJweDsgY29sb3I6IHJnYigxNTgsIDEwMSwg -MjEpOyB9CgpkaXYuYmdfcHJlc2lkZW50X2EgcC5pbWdfZGVzIHNwYW4geyBjb2xvcjogcmdiKDQx -LCA1NiwgNzIpOyB9CgpwLmltZ19kZXMgc3Bhbi50eHRfZGVzIHsgZGlzcGxheTogYmxvY2s7IGNv -bG9yOiByZ2IoNDEsIDU2LCA3Mik7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbjogMjBweCAwcHgg -MHB4OyB9CgpwLnRpdF9kZXMgc3Bhbi50aXQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwcHgg -MHB4IDVweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKZGl2LmJnX3ByZXNpZGVudF9hIHAudGl0X2Rl -cyB7IG1hcmdpbi1sZWZ0OiAwcHg7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IC0x -cHg7IH0KCmRpdi5iZ19wcmVzaWRlbnRfYSAudGl0X2RlczIgeyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgbWFyZ2luLWxlZnQ6IDVweDsgfQoKZGl2LmJnX3By -ZXNpZGVudF9hIC5pbWcgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMHB4OyByaWdodDog -MTVweDsgfQoKLnByZXNpZGVudF9hcmVhIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IHJl -bGF0aXZlOyBwYWRkaW5nLXRvcDogMjBweDsgfQoKLnByZXNpZGVudF9hcmVhLmJfYXJlYSB7IG1h -cmdpbi10b3A6IDBweDsgfQoKLnByZXNpZGVudF9hcmVhIC5pbWcgeyBmbG9hdDogbGVmdDsgfQoK -LnByZXNpZGVudF9hcmVhIC5pbWcgcCB7IG1hcmdpbi1ib3R0b206IDlweDsgfQoKLnByZXNpZGVu -dF9hcmVhIGRsIHsgbWFyZ2luLXRvcDogLTNweDsgcGFkZGluZy1sZWZ0OiAzMzBweDsgfQoKLnBy -ZXNpZGVudF9hcmVhIGR0IHsgbWFyZ2luOiAzNXB4IDBweCAyMHB4OyBwYWRkaW5nLXRvcDogMzVw -eDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVy -LXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBmb250LXdlaWdodDogNjAwOyBmb250LXNp -emU6IDI0cHg7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7 -IH0KCi5wcmVzaWRlbnRfYXJlYSBkdDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDBweDsgcGFk -ZGluZzogMHB4OyBib3JkZXI6IG5vbmU7IH0KCi5wcmVzaWRlbnRfYXJlYSBkZCBwIHsgbWFyZ2lu -LXRvcDogMjBweDsgfQoKLnByZXNpZGVudF9hcmVhIGRkLnBob3RvIHsgZGlzcGxheTogbm9uZTsg -fQoKZGl2LmJnX3ByZXNpZGVudF9iIHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiAt -ODBweDsgcGFkZGluZy10b3A6IDgwcHg7IGhlaWdodDogNDIwcHg7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL25vY2FjaGUvYWJvdXQvYmdfcHJl -c2lkZW50X2IuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmJnX3ByZXNpZGVudF9i -IHAudGl0X2RlcyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tbGVmdDogMHB4OyB9CgpkaXYuYmdf -cHJlc2lkZW50X2IgLmltZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwcHg7IHJpZ2h0 -OiAwcHg7IH0KCmRpdi5iZ19wcmVzaWRlbnRfYiAucHJlc2lkZW50X3Njcm9sbGluZyB7IG92ZXJm -bG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDU0MHB4OyB9CgpkaXYuYmdf -cHJlc2lkZW50X2IgLnByZXNpZGVudF9zY3JvbGxpbmcgLnByZXNpZGVudF9zYWlkIHsgb3ZlcmZs -b3c6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOiA1NXB4OyB3aWR0aDog -NTQwcHg7IGhlaWdodDogMTkwcHg7IH0KCmRpdi5iZ19wcmVzaWRlbnRfYiAucHJlc2lkZW50X3Nj -cm9sbGluZyAucHJlc2lkZW50X3NhaWQgbGkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsb2F0OiBs -ZWZ0OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxOTBweDsgZm9udC1mYW1pbHk6ICdOYW51bSBNeWVv -bmdqbyc7IGZvbnQtc2l6ZTogMjBweDsgbGV0dGVyLXNwYWNpbmc6IC0ycHg7IH0KCmRpdi5iZ19w -cmVzaWRlbnRfYiAucHJlc2lkZW50X3Njcm9sbGluZyAucHJlc2lkZW50X3NhaWQgbGkgcCB7IGxp -bmUtaGVpZ2h0OiAxMjAlOyB9CgpkaXYuYmdfcHJlc2lkZW50X2IgLnByZXNpZGVudF9zY3JvbGxp -bmcgLnByZXNpZGVudF9zYWlkIGxpIGVtIHsgY29sb3I6IHJnYigxNTgsIDEwMSwgMjEpOyBsaW5l -LWhlaWdodDogMTIwJTsgfQoKZGl2LmJnX3ByZXNpZGVudF9iIC5wcmVzaWRlbnRfc2Nyb2xsaW5n -IC5wcmVzaWRlbnRfc2FpZCBsaSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDIw -cHg7IGZvbnQtZmFtaWx5OiAnTmFudW0gR290aGljJzsgZm9udC1zaXplOiAxM3B4OyBsZXR0ZXIt -c3BhY2luZzogLTFweDsgfQoKZGl2LmJnX3ByZXNpZGVudF9iIC5wcmVzaWRlbnRfc2Nyb2xsaW5n -IC5yb2xsaW5nX2N0cmwgbGkgYS5vbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3 -LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX2NvbnRyb2xsZXJfY2lyX2JsdWUucG5nKTsg -YmFja2dyb3VuZC1zaXplOiA3cHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlh -bDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5iZ19wcmVz -aWRlbnRfYiAucHJlc2lkZW50X3Njcm9sbGluZyAucm9sbGluZ19jdHJsIC5wbGF5IGEgeyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTBweDsgfQoKZGl2LmJnX3ByZXNpZGVudF9iIC5wcmVz -aWRlbnRfc2Nyb2xsaW5nIC5yb2xsaW5nX2N0cmwgLnBhdXNlIGEgeyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAtNTBweCAtNTBweDsgfQoKLnByZXNpZGVudF9iX3R4dCB7IG1hcmdpbjogMzVweCAwcHgg -NDBweDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMTMwJTsgbGV0dGVyLXNwYWNpbmc6 -IC0xcHg7IH0KCmRpdi5wcmVzaWRlbnRfYXJlYS5iX2FyZWEgeyBtYXJnaW4tYm90dG9tOiAyMHB4 -OyB9CgpkaXYucHJlc2lkZW50X2JfYXJlYTIgeyBtYXJnaW4tdG9wOiA1NXB4OyBib3JkZXItdG9w -LXdpZHRoOiAycHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBy -Z2IoMTczLCAxODQsIDE5MSk7IH0KCmRpdi5wcmVzaWRlbnRfYl9hcmVhMiAuc2VjdGlvbiB7IHBh -ZGRpbmctdG9wOiA0MHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20t -c3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0K -CmRpdi5wcmVzaWRlbnRfYl9hcmVhMiAuc2VjdGlvbjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctYm90 -dG9tOiAzNXB4OyB9CgpkaXYucHJlc2lkZW50X2JfYXJlYTIgZGl2LmJ0bl9hcmVhIHsgbWFyZ2lu -OiAxMHB4IDBweCAwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyB9CgpkaXYucHJlc2lkZW50X2JfYXJl -YTIgaDMgeyBtYXJnaW46IDBweCAwcHggMjBweDsgcGFkZGluZzogMHB4OyBmb250LXdlaWdodDog -NjAwOyBmb250LXNpemU6IDI0cHg7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgfQoKdWwuaF9s -aXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogODBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKLnBy -ZXNpZGVudF9iX2FyZWEyIC5zZWN0aW9uOmZpcnN0LWNoaWxkIC5oX2xpc3QgeyBoZWlnaHQ6IGF1 -dG87IH0KCnVsLmhfbGlzdCBsaSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJl -bGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiAwcHggMHB4IDVweDsgd2lkdGg6IDQ5 -JTsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KCnVsLmhfbGlz -dCBsaSBzcGFuLnR4dF95ZWFyIHsgcG9zaXRpb246IGFic29sdXRlOyBmb250LXdlaWdodDogNjAw -OyB9Cgp1bC5oX2xpc3QgbGkgc3Bhbi50eHRfaW5mbyB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg -cGFkZGluZzogMHB4IDEwcHggMHB4IDgwcHg7IH0KCi5iZ19udSB7IHBhZGRpbmc6IDBweCAwcHgg -MTVweDsgfQoKLm51X21vbnRobHkgeyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRp -dmU7IG1hcmdpbi1ib3R0b206IDQwcHg7IGhlaWdodDogMzk3cHg7IH0KCi5udV9tb250aGx5IC5j -b250cm9sbGVyIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDsgfQoKLm51X21vbnRo -bHkgLmNvbnRyb2xsZXIgYSB7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyB3aWR0 -aDogMzNweDsgaGVpZ2h0OiAzM3B4OyB0ZXh0LWluZGVudDogLTk5OTlweDsgfQoKLm51X21vbnRo -bHkgLmNvbnRyb2xsZXIucHJldiB7IHRvcDogMjRweDsgbGVmdDogMHB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19udV9wcmV2 -LnBuZyk7IGJhY2tncm91bmQtc2l6ZTogMzNweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlh -bCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKYm9k -eS5tc2llOCAubnVfbW9udGhseSAuY29udHJvbGxlci5wcmV2IHsgYmFja2dyb3VuZC1pbWFnZTog -dXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfY29udHJvbGxlcjMu -cG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC02NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLm51X21vbnRobHkgLmNvbnRyb2xsZXIubmV4dCB7IHRv -cDogMjRweDsgcmlnaHQ6IDBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfbnVfbmV4dC5wbmcpOyBiYWNrZ3JvdW5kLXNpemU6 -IDMzcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmJvZHkubXNpZTggLm51X21vbnRobHkgLmNv -bnRyb2xsZXIubmV4dCB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2Fib3V0L2JnX2NvbnRyb2xsZXIzLnBuZyk7IGJhY2tncm91bmQtcG9zaXRp -b246IC0zOHB4IC02NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsg -fQoKLm51X21vbnRobHkgdWwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X2xpbmUuZ2lm -KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDM1cHg7IGJhY2tncm91bmQtcmVwZWF0OiByZXBl -YXQgbm8tcmVwZWF0OyB9CgoubnVfbW9udGhseSB1bDo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlz -cGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9CgoubnVfbW9udGhseSBsaSB7IGZsb2F0OiBsZWZ0 -OyB3aWR0aDogMTAlOyBmb250LXNpemU6IDEzcHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKLm51 -X21vbnRobHkgbGkgYS5pdGVtIHsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogNThweDsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdf -bnVfY2lyLnBuZyk7IGJhY2tncm91bmQtc2l6ZTogMzNweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7 -IGxpbmUtaGVpZ2h0OiAxMTAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMjRweDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmJvZHkubXNpZTggLm51X21vbnRo -bHkgbGkgYS5pdGVtIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYWJvdXQvYmdfbnVfbW9udGhseS5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiA1MCUgMjRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5u -dV9tb250aGx5IGxpIGEub24geyBtYXJnaW4tdG9wOiAtM3B4OyBoZWlnaHQ6IDYwcHg7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2Jn -X251X2Npcl9vbi5wbmcpOyBiYWNrZ3JvdW5kLXNpemU6IDMzcHg7IGZvbnQtc2l6ZTogMTVweDsg -Y29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMjRweDsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmJvZHkubXNpZTggLm51 -X21vbnRobHkgbGkgYS5vbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X21vbnRobHkucG5nKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogNTAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9 -CgoubW9udGhseV9jb250IHsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9zaXRpb246IGFic29sdXRlOyB0 -b3A6IDk3cHg7IGxlZnQ6IDBweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IHJnYig1 -NSwgNzAsIDEwOSk7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtYWxpZ246IGxlZnQ7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IGluaXRpYWwgaW5pdGlhbDsgfQoKLm1vbnRobHlfY29udCBhIHsgY29sb3I6IHJnYigyNTUsIDI1 -NSwgMjU1KTsgfQoKLm1vbnRobHlfY29udCAuY29udCB7IHBhZGRpbmc6IDIwcHggMjBweCAwcHgg -NTgwcHg7IH0KCi5tb250aGx5X2NvbnQgLnRodW1iIHsgZmxvYXQ6IGxlZnQ7IH0KCi5tb250aGx5 -X2NvbnQgLmNvbnQgZHQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDdweDsg -cGFkZGluZy10b3A6IDI4cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X3RpdDIuZ2lmKTsgYmFja2dyb3VuZC1zaXplOiAx -NDdweCAyMnB4OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IGhlaWdodDogNjFw -eDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDFweDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5tb250aGx5X2NvbnQgLmNvbnQg -ZHQgLmRhdGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyByaWdodDogMHB4OyBmb250 -LXNpemU6IDExcHg7IGNvbG9yOiByZ2IoNDUsIDE4NCwgMjA5KTsgfQoKLm1vbnRobHlfY29udCAu -Y29udCBkZC50eHQgeyBtYXJnaW46IDE1cHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OiAxLjM7IGhl -aWdodDogNTBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKLm1vbnRobHlfY29udCAuY29udCBkZC5i -dXR0b24gYSB7IG1hcmdpbi1yaWdodDogM3B4OyB9CgoubW9udGhseV9jb250IC5jb250IGRkLm51 -X2Jhbm5lciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAyMHB4OyByaWdodDogMjBweDsg -fQoKLm1vbnRobHlfY29udCAuY29udCBkZC5udV9iYW5uZXIgYSB7IG92ZXJmbG93OiBoaWRkZW47 -IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMzYycHg7IGhlaWdodDogNTBweDsgYmFja2dyb3VuZC1p -bWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYnRfbnVfYmFu -bmVyLmpwZyk7IHRleHQtaW5kZW50OiAtOTk5OXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0 -aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgpk -aXYuYmdfaGlzdG9yeSB7IHBhZGRpbmc6IDBweCAwcHggMTVweDsgfQoKcC5oaXN0b3J5X3Nsb2dh -biB7IG1hcmdpbi1ib3R0b206IDQwcHg7IHpvb206IDE7IH0KCnAuaGlzdG9yeV9zbG9nYW46OmFm -dGVyIHsgY29udGVudDogJyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfQoKcC5oaXN0 -b3J5X3Nsb2dhbiBzdHJvbmcudGl0IHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiByZ2IoMTMsIDEy -MywgMTkxKTsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLXRv -cDogNHB4OyB9CgpwLmhpc3Rvcnlfc2xvZ2FuIHNwYW4uZGVzYyB7IG92ZXJmbG93OiBoaWRkZW47 -IGRpc3BsYXk6IGJsb2NrOyBsZXR0ZXItc3BhY2luZzogLTFweDsgbWFyZ2luLWJvdHRvbTogNTNw -eDsgfQoKcC5oaXN0b3J5X3Nsb2dhbiBzcGFuLmltZyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4t -dG9wOiA0MHB4OyB9CgpwLmhpc3Rvcnlfc2xvZ2FuIHNwYW4uaW1nIGltZyB7IG1heC13aWR0aDog -MTAwJTsgfQoKcC55ZWFyX3NlbGVjdCB7IGRpc3BsYXk6IG5vbmU7IH0KCmRpdi5oaXN0b3J5X3dy -YXAgdWwudGFiX21lbnUzIGxpIGRpdi5oaXN0b3J5X2NvbnRlbnRzIHsgZGlzcGxheTogbm9uZTsg -cG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwJTsgbGVmdDogMHB4OyB9CgpkaXYuaGlzdG9y -eV93cmFwIHVsLnRhYl9tZW51MyBsaS5vbiBkaXYuaGlzdG9yeV9jb250ZW50cyB7IGRpc3BsYXk6 -IGJsb2NrICFpbXBvcnRhbnQ7IH0KCnVsLmhpc3RvcnlfbGlzdCBsaSB7IGZsb2F0OiBub25lOyB3 -aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3Jk -ZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUp -OyBwYWRkaW5nOiA0MHB4IDBweDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRv -cDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC5oaXN0b3J5X2xpc3Qg -bGk6Zmlyc3QtY2hpbGQgeyBib3JkZXItdG9wLXN0eWxlOiBub25lOyB9Cgp1bC5oaXN0b3J5X2xp -c3QgbGkgc3Bhbi5tb250aCB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbGVmdDsgd2lkdGg6IDc3 -cHg7IG1hcmdpbjogLTRweCAzMHB4IDBweCAwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyBjb2xvcjog -cmdiKDAsIDE0NSwgMjIwKTsgZm9udC1zaXplOiAzNXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0 -ZXItc3BhY2luZzogLTFweDsgfQoKdWwuaGlzdG9yeV9saXN0IGxpIHNwYW4ueWVhciB7IGRpc3Bs -YXk6IGJsb2NrOyBmbG9hdDogbGVmdDsgd2lkdGg6IDEzMHB4OyBtYXJnaW46IC04cHggMzBweCAw -cHggMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBjb2xvcjogcmdiKDAsIDE0NSwgMjIwKTsgZm9udC1z -aXplOiAzNXB4OyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoKdWwu -aGlzdG9yeV9saXN0IGxpIHVsIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKdWwuaGlzdG9yeV9saXN0 -IGxpIHVsLm1vbnRoX2Rlc2MgbGkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDQ2JTsgYm9yZGVyOiBu -b25lOyBtYXJnaW46IDBweDsgcGFkZGluZzogM3B4IDIlIDBweCAxJTsgbGV0dGVyLXNwYWNpbmc6 -IC0xcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2J1X2RvdDIuZ2lmKTsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMCUgMTJweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -CnVsLmhpc3RvcnlfbGlzdCBsaSB1bC5tb250aF9kZXNjIGxpIGEgeyBkaXNwbGF5OiBibG9jazsg -cGFkZGluZzogMHB4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGJvcmRlcjogbm9uZTsgZm9u -dC13ZWlnaHQ6IG5vcm1hbDsgfQoKdWwuaGlzdG9yeV9saXN0IGxpIHVsLm1vbnRoX2Rlc2MgbGkg -YSBpbWcgeyBtYXJnaW46IC0ycHggMHB4IDBweCA0cHg7IH0KCnVsLmhpc3RvcnlfbGlzdCBsaSB1 -bC55ZWFyX2Rlc2MgbGkgeyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgYm9yZGVyOiBu -b25lOyBwYWRkaW5nOiAwcHg7IGxpbmUtaGVpZ2h0OiAxNzAlOyBiYWNrZ3JvdW5kOiBub25lOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBp -bml0aWFsIGluaXRpYWw7IH0KCnVsLmhpc3RvcnlfbGlzdCBsaSB1bC55ZWFyX2Rlc2MgbGkgc3Bh -bi5tb250aCB7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMzVweDsgaGVpZ2h0OiAyNXB4OyBtYXJnaW46 -IDBweCAxNXB4IDBweCAwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyBjb2xvcjogcmdiKDEzLCAxMjMs -IDE5MSk7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKdWwuaGlzdG9yeV9s -aXN0IGxpIHVsLnllYXJfZGVzYyBsaSBwIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKdWwuaGlzdG9y -eV9saXN0IGxpIHVsLnllYXJfZGVzYyBsaSBwLnR4dCwgdWwuaGlzdG9yeV9saXN0IGxpIHVsLnll -YXJfZGVzYyBsaSBwLnR4dF9saXN0IHNwYW4geyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1sZWZ0 -OiA4cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2J1X2RvdDIuZ2lmKTsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMCUgMTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -CmRpdi5nYWxsZXJ5IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgpkaXYuZ2FsbGVyeSBkaXYudmll -dyB7IG1hcmdpbjogMHB4IGF1dG87IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiAzMDBweDsgfQoKZGl2 -LnNsaWRlX3dyYXAgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDBweCAyMHB4OyBkaXNw -bGF5OiBpbmxpbmUtYmxvY2s7IH0KCmRpdi5zbGlkZV93cmFwIGEucHJldiB7IHBvc2l0aW9uOiBh -YnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDI0cHg7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDIwcHg7 -IHRleHQtaW5kZW50OiAtOTk5OXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5z -YW1zdW5nLmNvLmtyL2ltYWdlcy9idF9jb250cm9sbGVyMi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAwJSAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRp -di5zbGlkZV93cmFwIGEubmV4dCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgcmlnaHQ6IDBweDsgdG9w -OiAyNHB4OyB3aWR0aDogMTJweDsgaGVpZ2h0OiAyMHB4OyB0ZXh0LWluZGVudDogLTk5OTlweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRf -Y29udHJvbGxlcjIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwJTsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5zbGlkZV93cmFwIGRpdi5zbGlk -ZV9saXN0IHsgcG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBp -bmxpbmUtYmxvY2s7IHdpZHRoOiAzNTVweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW4tdG9wOiAxMHB4 -OyB9CgpkaXYuc2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlzdCB1bCB7IH0KCmRpdi5zbGlkZV93cmFw -IGRpdi5zbGlkZV9saXN0IHVsIGxpIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA2N3B4OyBoZWlnaHQ6 -IDUwcHg7IG1hcmdpbjogMHB4IDJweDsgcGFkZGluZzogMHB4OyB2ZXJ0aWNhbC1hbGlnbjogdG9w -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9h -Ym91dC9iZ19ibGFuay5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYuc2xpZGVfd3Jh -cCBkaXYuc2xpZGVfbGlzdCB1bCBsaSBhIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogYmxv -Y2s7IH0KCmRpdi5zbGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxpIGltZyB7IHdpZHRoOiA2 -N3B4OyBoZWlnaHQ6IDUwcHg7IH0KCmRpdi5zbGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxp -IGE6aG92ZXIsIGRpdi5zbGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxpLm9uIGEgeyBib3Jk -ZXI6IDRweCBzb2xpZCByZ2IoNDgsIDE2MSwgMjI4KTsgd2lkdGg6IDU5cHg7IGhlaWdodDogNDJw -eDsgfQoKZGl2LnNsaWRlX3dyYXAgZGl2LnNsaWRlX2xpc3QgdWwgbGkub24gYSBpbWcsIGRpdi5z -bGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxpIGE6aG92ZXIgaW1nIHsgbWFyZ2luOiAtNHB4 -IDBweCAwcHggLTRweDsgfQoKZGl2LnN1cHBvcnRfZ2FsbGVyeSB7IHRleHQtYWxpZ246IGNlbnRl -cjsgfQoKZGl2LnN1cHBvcnRfZ2FsbGVyeSBkaXYuc2xpZGVfd3JhcCB7IH0KCmRpdi5zdXBwb3J0 -X2dhbGxlcnkgZGl2LnNsaWRlX3dyYXAgYS5wcmV2LCBkaXYuc3VwcG9ydF9nYWxsZXJ5IGRpdi5z -bGlkZV93cmFwIGEubmV4dCB7IHRvcDogMzBweDsgfQoKZGl2LnN1cHBvcnRfZ2FsbGVyeSBkaXYu -c2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlzdCB7IHdpZHRoOiA1ODhweDsgaGVpZ2h0OiA2NHB4OyB9 -CgpkaXYuc3VwcG9ydF9nYWxsZXJ5IGRpdi5zbGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxp -IHsgbWFyZ2luOiAwcHggMnB4OyB3aWR0aDogMTE0cHg7IGhlaWdodDogNjRweDsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfYmxh -bmsyLmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJl -cGVhdDsgfQoKZGl2LnN1cHBvcnRfZ2FsbGVyeSBkaXYuc2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlz -dCB1bCBsaSBpbWcgeyB3aWR0aDogMTE0cHg7IGhlaWdodDogNjRweDsgfQoKZGl2LnN1cHBvcnRf -Z2FsbGVyeSBkaXYuc2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlzdCB1bCBsaSBhOmhvdmVyLCBkaXYu -c3VwcG9ydF9nYWxsZXJ5IGRpdi5zbGlkZV93cmFwIGRpdi5zbGlkZV9saXN0IHVsIGxpLm9uIGEg -eyB3aWR0aDogMTA2cHg7IGhlaWdodDogNTZweDsgfQoKZGl2LmJnX3Nwb3J0cyB7IHBhZGRpbmc6 -IDBweCAwcHggMTVweDsgfQoKdWwuc19saXN0IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0 -aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZy1ib3R0b206IDQwcHg7IH0KCnVsLnNf -bGlzdCBsaSBwLnRpdCB7IHBhZGRpbmctYm90dG9tOiAxNXB4OyBwYWRkaW5nLWxlZnQ6IDExMHB4 -OyBmb250LXNpemU6IDEycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiA3MHB4OyBwYWRk -aW5nLXRvcDogNXB4OyB9Cgp1bC5zX2xpc3QgbGkgcC50aXQgc3Ryb25nIHsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbi10b3A6IDEwcHg7IGZvbnQtc2l6ZTogMjRweDsgY29sb3I6IHJnYig0MSwgNTYs -IDcyKTsgfQoKdWwuc19saXN0IGxpIHAgaW1nIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBw -eDsgbGVmdDogMHB4OyB9Cgp1bC5zX2xpc3QgbGkgeyB3aWR0aDogNDclOyBmbG9hdDogbGVmdDsg -bWFyZ2luLWxlZnQ6IDQwcHg7IH0KCnVsLnNfbGlzdCBsaTpmaXJzdC1jaGlsZCB7IG1hcmdpbi1s -ZWZ0OiAwcHg7IH0KCnVsLnNfbGlzdCBsaSBpbWcuY29udGVudHMgeyBwYWRkaW5nLWJvdHRvbTog -MTVweDsgd2lkdGg6IDEwMCU7IH0KCnVsLnNfbGlzdCBsaSBwLnR4dCB7IGZvbnQtc2l6ZTogMTVw -eDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgfQoKZGl2LmJnX3N1YnNpZGlhcnkgeyBwYWRkaW5n -OiAwcHggMHB4IDE1cHg7IH0KCnAuZWxlY3Ryb25fc2xvZ2FuIHsgcG9zaXRpb246IHJlbGF0aXZl -OyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi -b3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMTczLCAxODQsIDE5MSk7IG1hcmdpbi1ib3R0b206IDUw -cHg7IH0KCnAuZWxlY3Ryb25fc2xvZ2FuIHN0cm9uZy50aXQgeyBkaXNwbGF5OiBibG9jazsgcGFk -ZGluZzogMHB4IDIwMHB4IDUwcHggMHB4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGxpbmUt -aGVpZ2h0OiAxNDAlOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IGxldHRlci1z -cGFjaW5nOiAtMXB4OyB9CgpwLmVsZWN0cm9uX3Nsb2dhbiBhLmJ0bl90b3RhbCB7IHBvc2l0aW9u -OiBhYnNvbHV0ZTsgcmlnaHQ6IDBweDsgYm90dG9tOiA1MHB4OyB9CgpoMyArIHVsLmxpc3RfdHlw -ZTIgeyBtYXJnaW4tdG9wOiAtMTlweDsgfQoKdWwubGlzdF90eXBlMiB7IG92ZXJmbG93OiBoaWRk -ZW47IH0KCnVsLmxpc3RfdHlwZTIgbGkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDQ1JTsgcGFkZGlu -ZzogMzBweCA1JSAwcHggMHB4OyB9Cgp1bC5saXN0X3R5cGUyIGxpIHNwYW4udGh1bWIgeyBmbG9h -dDogbGVmdDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBtYXJnaW4tcmlnaHQ6IDE2cHg7 -IH0KCnVsLmxpc3RfdHlwZTIgbGkgc3Bhbi50aHVtYiBpbWcgeyB3aWR0aDogMTAwJTsgfQoKdWwu -bGlzdF90eXBlMiBsaSBwLmV4cGxhaW4geyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBo -aWRkZW47IGhlaWdodDogMjAwcHg7IHBhZGRpbmctYm90dG9tOiAzMHB4OyB9Cgp1bC5saXN0X3R5 -cGUyIGxpLm9uIHAuZXhwbGFpbiB7IHotaW5kZXg6IDIwOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzMuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMjZweCAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJl -cGVhdDsgfQoKdWwubGlzdF90eXBlMiBsaSBwLmV4cGxhaW4gc3Ryb25nLnRpdCB7IGRpc3BsYXk6 -IGJsb2NrOyBtYXJnaW46IC0ycHggMHB4IDIwcHg7IGZvbnQtc2l6ZTogMjBweDsgY29sb3I6IHJn -YigxMywgMTIzLCAxOTEpOyBsZXR0ZXItc3BhY2luZzogLTJweDsgfQoKdWwubGlzdF90eXBlMiBs -aSBwLmV4cGxhaW4gc3Bhbi50eHQgeyBkaXNwbGF5OiBibG9jazsgbGV0dGVyLXNwYWNpbmc6IC0x -cHg7IGhlaWdodDogMTA0cHg7IG92ZXJmbG93OiBoaWRkZW47IH0KCnVsLmxpc3RfdHlwZTIgbGkg -cC5leHBsYWluIHNwYW4uYnRuX2Fycm93X29wZW4sIHVsLmxpc3RfdHlwZTIgbGkgcC5leHBsYWlu -IHNwYW4uYnRuX2Fycm93X2Nsb3NlIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IGJv -dHRvbTogMzBweDsgfQoKZGl2LnN1cHBvcnRfc2xvZ2FuIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcG9z -aXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiA1NXB4OyBwYWRkaW5nLWJvdHRvbTogMTVw -eDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDE3MywgMTg0LCAxOTEpOyBsZXR0ZXItc3BhY2luZzog -LTFweDsgfQoKZGl2LnNsb2dhbl9pbm5lciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1i -b3R0b206IDM1cHg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDE0MHB4OyB9CgpkaXYuc2xvZ2FuX2lu -bmVyOjphZnRlciB7IGNvbnRlbnQ6ICcnOyBkaXNwbGF5OiBibG9jazsgY2xlYXI6IGJvdGg7IH0K -CmRpdi5zbG9nYW5faW5uZXIgcC5zdWIgeyBmbG9hdDogbGVmdDsgZm9udC13ZWlnaHQ6IDYwMDsg -Zm9udC1zaXplOiAxOHB4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGxldHRlci1zcGFjaW5n -OiAtMXB4OyB9Cgpib2R5Lm1zaWU4IGRpdi5zbG9nYW5faW5uZXIgcC5zdWIsIGJvZHkubXNpZTcg -ZGl2LnNsb2dhbl9pbm5lciBwLnN1YiB7IGxldHRlci1zcGFjaW5nOiAtMnB4OyB9CgpkaXYuc2xv -Z2FuX2lubmVyIHAuc3ViIHN0cm9uZy50aXQgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRv -bTogM3B4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGZvbnQtc2l6ZTogMjRweDsgfQoKZGl2 -LnNsb2dhbl9pbm5lciBwLnR4dCwgZGl2LnNsb2dhbl9pbm5lciBwLnNwb3J0c190eHQgeyBwYWRk -aW5nOiAyMHB4IDBweCAwcHggNDAwcHg7IH0KCmRpdi5zbG9nYW5faW5uZXIgc3Bhbi5idG5fYXJl -YSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMTBweDsgbGVmdDogMHB4OyB6LWluZGV4OiAy -MDsgfQoKZGl2LnNsb2dhbl9pbm5lciBzcGFuLmJ0bl9hcmVhLm9uIHsgcGFkZGluZy1ib3R0b206 -IDM3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2JnX2Fycm93My5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmgzLnN1cHBvcnRfaDMgeyBmb250 -LXNpemU6IDI4cHg7IGxldHRlci1zcGFjaW5nOiAtMnB4OyB9CgpkaXYuc3VwcG9ydF9hcnQgeyBv -dmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tdG9wOiA0MHB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7 -IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjMwLCAyMzAs -IDIzMCk7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29s -aWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMzAsIDIzMCwgMjMwKTsgfQoKZGl2LnN1cHBv -cnRfd3JhcCB7IG1hcmdpbi10b3A6IC0xcHg7IHBhZGRpbmc6IDI1cHggMHB4OyBib3JkZXItdG9w -LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBy -Z2IoMjMwLCAyMzAsIDIzMCk7IH0KCmRpdi5zdXBwb3J0X3dyYXAgaDQgeyBmbG9hdDogbGVmdDsg -d2lkdGg6IDEyNXB4OyBmb250LXNpemU6IDIycHg7IGxldHRlci1zcGFjaW5nOiAtMXB4OyBjb2xv -cjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCmRpdi5zdXBwb3J0X2NvbnRlbnQgeyBvdmVyZmxvdzog -aGlkZGVuOyB9CgpkaXYuc3VwcG9ydF9jb250ZW50IHAuZGVzYyB7IGZsb2F0OiBsZWZ0OyB3aWR0 -aDogNDQuOSU7IG1hcmdpbi1ib3R0b206IDBweDsgfQoKZGl2LnN1cHBvcnRfY29udGVudCBwLnNp -dGUgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogNDQuOSU7IHBhZGRpbmctbGVmdDogMTAlOyB9 -CgpkaXYuc3VwcG9ydF9jb250ZW50IHAuc2l0ZSBzcGFuLnRpdCB7IGZsb2F0OiBsZWZ0OyBwYWRk -aW5nLWxlZnQ6IDIlOyB0ZXh0LWFsaWduOiBsZWZ0OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV9kb3QyLmdpZik7IGZvbnQtc2l6ZTogMTNw -eDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgOHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVw -ZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnN1cHBvcnRfY29udGVudCBwLnNpdGUgc3Bhbi5idG5fYXJl -YSB7IHRleHQtYWxpZ246IHJpZ2h0OyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBibG9jazsg -bWFyZ2luLWJvdHRvbTogOXB4OyBmb250LXdlaWdodDogNjAwOyB9CgpkaXYubGF5X2dhbGxlcnkg -eyBtYXJnaW4tdG9wOiAzMHB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5 -bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci1i -b3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0 -b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1Miwg -MjUyLCAyNTApOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi5sYXlfZ2FsbGVyeSBkaXYuaW5uZXIg -eyBwYWRkaW5nOiAzMHB4IDBweDsgfQoKZGl2LmxheV9kZXRhaWwgeyBwb3NpdGlvbjogYWJzb2x1 -dGU7IHdpZHRoOiAxMDAlOyBsZWZ0OiAwcHg7IG1hcmdpbi10b3A6IC0xcHg7IHotaW5kZXg6IDEw -OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXIt -dG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCmRpdi5sYXlfZGV0YWlsIGRpdi5pbm5l -ciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZzogNjBweCAz -MHB4IDMwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTog -c29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgYmFja2dyb3Vu -ZC1jb2xvcjogcmdiKDI1MiwgMjUyLCAyNTApOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFs -IGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi5sYXlf -ZGV0YWlsIGRpdi50aXQgeyB3aWR0aDogNDUlOyBtYXJnaW4tcmlnaHQ6IDUlOyB9CgpkaXYubGF5 -X2RldGFpbCBkaXYudGl0IGgzIHsgbWFyZ2luLWJvdHRvbTogMTVweDsgZm9udC1zaXplOiAyNHB4 -OyB9CgpkaXYubGF5X2RldGFpbCBkaXYudGl0IHAuZGVzYyB7IG1hcmdpbi1ib3R0b206IDBweDsg -Zm9udC13ZWlnaHQ6IDYwMDsgfQoKZGl2LmxheV9kZXRhaWwgZGl2LnJlcG9ydF9hcmVhIHsgZmxv -YXQ6IGxlZnQ7IHdpZHRoOiA0NSU7IG1hcmdpbi1yaWdodDogNSU7IH0KCmRpdi5sYXlfZGV0YWls -IGRpdi5yZXBvcnRfYXJlYSB1bC5kZXNjIHsgcGFkZGluZzogMjBweCAwcHg7IH0KCmRpdi5sYXlf -ZGV0YWlsIGRpdi5yZXBvcnRfYXJlYSB1bC5kZXNjIGxpIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiBh -dXRvOyBoZWlnaHQ6IGF1dG87IG1hcmdpbjogOHB4IDBweCAwcHg7IHBhZGRpbmc6IDBweCAwcHgg -MHB4IDdweDsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMTMwJTsgbGV0dGVyLXNwYWNp -bmc6IC0xcHg7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2RvdDIuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMCUgN3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKZGl2LmxheV9kZXRhaWwgZGl2LnJlcG9ydF9hcmVhIHVsLmRlc2MgbGkgc3Bhbi50aXQg -eyB3aWR0aDogMTIwcHg7IG1hcmdpbi1yaWdodDogMTBweDsgfQoKZGl2LmxheV9kZXRhaWwgZGl2 -LnJlcG9ydF9hcmVhIHVsLmRlc2MgbGkgc3Bhbi50eHQgeyBtYXJnaW4tdG9wOiAwcHg7IH0KCmRp -di5sYXlfZGV0YWlsIGEuY2xvc2UgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAzMHB4OyB0 -b3A6IDIwcHg7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGRpc3BsYXk6IGJsb2NrOyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idF9jbG9z -ZTQuZ2lmKTsgdGV4dC1pbmRlbnQ6IC05OTk5cHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp -YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRp -di5sYXlfZGV0YWlsIGRpdi5nYWxsZXJ5IHsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNDAwcHg7IG1h -cmdpbi10b3A6IC0xMTBweDsgfQoKZGl2LnN1cHBvcnRfc2xvZ2FuIGRpdi5sYXlfZGV0YWlsIHsg -Y2xlYXI6IGJvdGg7IHBvc2l0aW9uOiBzdGF0aWM7IG1hcmdpbi1ib3R0b206IDI1cHg7IH0KCmRp -di5zdXBwb3J0X3Nsb2dhbiBkaXYubGF5X2RldGFpbCBkaXYuaW5uZXIgeyBwYWRkaW5nOiAzMHB4 -IDBweDsgfQoKZGl2LmxheV9zdWJzaWRpYXJ5IHsgcG9zaXRpb246IGFic29sdXRlOyByaWdodDog -MHB4OyB6LWluZGV4OiAzMDsgd2lkdGg6IDY5OHB4OyBtYXJnaW4tdG9wOiAtOTVweDsgfQoKZGl2 -LmxheV9zdWJzaWRpYXJ5IGRpdi5pbm5lciB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzog -MzNweCAzMXB4IDUxcHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigxMTEsIDEzMSwgMTQzKTsgYmFj -a2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBib3gtc2hhZG93OiByZ2JhKDAsIDAs -IDAsIDAuMDk4MDM5MikgMHB4IDJweCAwcHg7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQoKZGl2LmxheV9zdWJzaWRpYXJ5IGRpdi5pbm5lcjo6YWZ0ZXIgeyBjb250ZW50OiAn -JzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9CgpkaXYubGF5X3N1YnNpZGlhcnkgYS5j -bG9zZSB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBwb3NpdGlv -bjogYWJzb2x1dGU7IHRvcDogMTNweDsgcmlnaHQ6IDE1cHg7IHRleHQtaW5kZW50OiAtOTk5OXB4 -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9i -dF9jbG9zZTMuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmxheV9zdWJzaWRpYXJ5 -IGRsIHsgd2lkdGg6IDI0JTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjog -dG9wOyBmbG9hdDogbGVmdDsgfQoKZGl2LmxheV9zdWJzaWRpYXJ5IGRsIGR0IHsgcGFkZGluZzog -NXB4IDBweCAxMHB4IDM2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCmRpdi5sYXlfc3Vic2lkaWFy -eSBkbC50eXBlMSBkdCB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2Fib3V0L2ljb19zdWJzaWRpYXJ5MS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CgpkaXYubGF5X3N1YnNpZGlhcnkgZGwudHlwZTIgZHQgeyBiYWNrZ3JvdW5kLWltYWdl -OiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hYm91dC9pY29fc3Vic2lkaWFy -eTIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmxheV9zdWJzaWRpYXJ5IGRsLnR5 -cGUzIGR0IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvYWJvdXQvaWNvX3N1YnNpZGlhcnkzLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0K -CmRpdi5sYXlfc3Vic2lkaWFyeSBkbC50eXBlNCBkdCB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2ljb19zdWJzaWRpYXJ5NC5naWYp -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYubGF5X3N1YnNpZGlhcnkgZGwgZGQgeyBtYXJn -aW46IDhweCAwcHggMHB4IDM2cHg7IH0KCmRpdi5sYXlfc3Vic2lkaWFyeSBkbCBkdCArIGRkIHsg -bWFyZ2luLXRvcDogMHB4OyB9CgpkaXYubGF5X3N1YnNpZGlhcnkgZGwgZGQgYSB7IGZsb2F0OiBu -b25lOyB3aWR0aDogYXV0bzsgfQoKZGl2LmNhcmVlciBkaXYuY29udF9pbmZvIHsgcGFkZGluZy1i -b3R0b206IDBweDsgfQoKZGl2LmNhcmVlciBkaXYucGFnZWxvY2F0aW9uIHsgZGlzcGxheTogbm9u -ZTsgfQoKZGl2LmNhcmVlcl9tYWluIHsgd2lkdGg6IDk2MHB4OyBtYXJnaW46IDBweCBhdXRvOyBw -b3NpdGlvbjogcmVsYXRpdmU7IH0KCmRpdi5jYXJlZXJfbWFpbiBkaXYuc25zX3NoYXJlYXJlYSB7 -IHRvcDogMzAlOyB9CgpkaXYuY3Rfc2VhcmNoX2FyZWEgeyBtYXJnaW46IDFweCAwcHggMHB4OyBi -b3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxcHg7 -IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRp -dXM6IDFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvY2FyZWVyL2JnX3NlYXJjaC5naWYpOyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5nOiAy -MHB4IDEwcHggMjBweCAyNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5zZWFyY2hfbGlzdCB7 -IGZsb2F0OiBsZWZ0OyBvdmVyZmxvdzogaGlkZGVuOyB9Cgp1bC5zZWFyY2hfbGlzdCBsaSB7IGZs -b2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHggMHB4IDBweCAyM3B4OyBtYXJnaW46IDBweCAxNXB4IDBw -eCAwcHg7IH0KCnVsLnNlYXJjaF9saXN0IGxpLmZpciB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9idV9zZWFyY2guZ2lmKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuc2VhcmNoX2xpc3QgbGkuc2VjIHsgYmFja2dyb3VuZC1p -bWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2J1X3NlYXJj -aDIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuc2VhcmNoX2xpc3QgbGkuc2VjMiB7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Nh -cmVlci9idV9zZWFyY2hfcGluay5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5zZWFy -Y2hfbGlzdCBsaS50aHIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9jYXJlZXIvYnVfc2VhcmNoMy5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0 -OyB9Cgp1bC5zZWFyY2hfbGlzdCBsaS5mb3VyIHsgZGlzcGxheTogbm9uZTsgfQoKdWwuc2VhcmNo -X2xpc3QgbGkubG9naW4geyBkaXNwbGF5OiBub25lOyB9Cgp1bC5zZWFyY2hfbGlzdCBsaSBhIHsg -Y29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5n -OiAwcHggMHB4IDIxcHg7IH0KCnVsLnNlYXJjaF9saXN0IGxpLm9uIGEgeyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzcuZ2lmKTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl -YXQgbm8tcmVwZWF0OyB9Cgp1bC5ub3RpX2xpc3QgeyBmbG9hdDogcmlnaHQ7IG92ZXJmbG93OiBo -aWRkZW47IH0KCnVsLm5vdGlfbGlzdCBsaSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHggMHB4 -IDBweCAyM3B4OyBtYXJnaW46IDBweCAxNXB4IDBweCAwcHg7IH0KCnVsLm5vdGlfbGlzdCBsaS5m -aXIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdl -cy9jYXJlZXIvYnVfbm90aS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC5ub3RpX2xp -c3QgbGkuc2VjIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvY2FyZWVyL2J1X25vdGkyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRp -YWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVs -Lm5vdGlfbGlzdCBsaS50aHIyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2J1X25vdGkzLmdpZik7IGJhY2tncm91bmQtcG9zaXRp -b246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBl -YXQ7IH0KCnVsLm5vdGlfbGlzdCBsaS5mb3VyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2J1X25vdGk0LmdpZik7IGJhY2tncm91 -bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KCnVsLm5vdGlfbGlzdCBsaSBhIHsgY29sb3I6IHJnYigyNTUsIDI1NSwg -MjU1KTsgfQoKZGl2LmN0X3NlYXJjaCB7IHdpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiBy -Z2IoMjM5LCAyNDIsIDI0NSk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyBtYXJnaW46 -IC0xcHggMHB4IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBiYWNr -Z3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0 -aWFsIGluaXRpYWw7IH0KCmRpdi5jdF9zZWFyY2hpbiBkaXYucGFydCB7IGZsb2F0OiBsZWZ0OyBt -YXJnaW46IDBweCAyNXB4IDBweCAwcHg7IH0KCmRpdi5jdF9zZWFyY2hpbiBkaXYucGFydCBzcGFu -LnRpdCB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2J1X2RvdDIuZ2lmKTsgcGFkZGluZy1sZWZ0OiA5cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJh -Y2tncm91bmQtcG9zaXRpb246IDBweCA3cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CgpkaXYuY3Rfc2VhcmNoaW4geyBtYXJnaW46IDdweCAyMHB4OyBvdmVyZmxv -dzogaGlkZGVuOyB9CgpkaXYuY3Rfc2VhcmNoX2FyZWEgYS5jbG9zZSB7IGZsb2F0OiByaWdodDsg -YmFja2dyb3VuZDogbm9uZTsgcGFkZGluZzogMHB4OyBtYXJnaW46IC0xOXB4IDBweCAwcHg7IGJh -Y2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGlu -aXRpYWwgaW5pdGlhbDsgfQoKZGl2Lm5vdGlfYXJlYSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoK -ZGl2Lm5vdGlfYXJlYSBkaXYudG9wX2FyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjhw -eDsgbGVmdDogMjhweDsgfQoKZGl2Lm5vdGlfYXJlYSBoMiB7IG1hcmdpbjogMHB4OyBwYWRkaW5n -OiAwcHg7IGZvbnQtc2l6ZTogMzZweDsgY29sb3I6IHJnYig1NSwgNzAsIDEwOSk7IGxldHRlci1z -cGFjaW5nOiAtMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyB9CgpkaXYubm90aV9hcmVhIGgyIHN0 -cm9uZyB7IGRpc3BsYXk6IGJsb2NrOyB9CgpkaXYubm90aV9hcmVhIHAuc3ViX2RlcyB7IG1hcmdp -bjogMTBweCAwcHggMHB4OyBwYWRkaW5nOiAwcHg7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6IHJn -Yig2OCwgMTIxLCAxNTIpOyBsZXR0ZXItc3BhY2luZzogLTFweDsgZm9udC13ZWlnaHQ6IDYwMDsg -fQoKZGl2Lm5vdGlfYXJlYSBkaXYuYnRtX2FyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRv -bTogNTBweDsgbGVmdDogMjhweDsgd2lkdGg6IGF1dG87IH0KCmRpdi5ub3RpX2FyZWEgZGl2LmJ0 -bV9hcmVhIHAudGl0IHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgZm9udC1zaXplOiAyNXB4 -OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDAsIDEzNywgMTYyKTsgbGV0dGVyLXNwYWNp -bmc6IC0ycHg7IH0KCmRpdi5ub3RpX2FyZWEgZGl2LmJ0bV9hcmVhIHAudHh0IHsgbWFyZ2luOiAx -MHB4IDBweCAwcHg7IHBhZGRpbmc6IDBweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdiKDEx -MCwgMTQ1LCAyMTYpOyBsZXR0ZXItc3BhY2luZzogLTFweDsgbGluZS1oZWlnaHQ6IDE0MCU7IH0K -CmRpdi5ub3RpX2FyZWEgc3Bhbi5ub3RpX2NvdW50IHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0 -b206IDE4cHg7IHJpZ2h0OiAxOHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KCmRpdi5ub3Rp -X2FyZWEgc3Bhbi5ub3RpX2NvdW50IGEgeyBjb2xvcjogcmdiKDYxLCA2MSwgNjEpOyBmb250LXNp -emU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgpkaXYubm90aV9hcmVhMiB7 -IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKZGl2Lm5vdGlfYXJlYTIgZGl2LnRvcF9hcmVhIHsgcG9z -aXRpb246IGFic29sdXRlOyB0b3A6IDI4cHg7IGxlZnQ6IDI4cHg7IH0KCmRpdi5ub3RpX2FyZWEy -IGgyIHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjog -cmdiKDU1LCA3MCwgMTA5KTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IC0x -cHg7IH0KCmRpdi5ub3RpX2FyZWEyIGgyIHN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA2MDA7IGRpc3Bs -YXk6IGJsb2NrOyB9CgpkaXYubm90aV9hcmVhMiBzcGFuLnN1Yl9kZXMgeyBtYXJnaW46IDBweDsg -cGFkZGluZzogMHB4OyBmb250LXNpemU6IDE4cHg7IGNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBs -ZXR0ZXItc3BhY2luZzogLTJweDsgfQoKZGl2Lm5vdGlfYXJlYTIgZGl2LmJ0bV9hcmVhIHsgfQoK -ZGl2Lm5vdGlfYXJlYTIgc3Bhbi5ub3RpX2NvdW50IHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBw -b3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMThweDsgcmlnaHQ6IDE4cHg7IH0KCmRpdi5ub3Rp -X2FyZWEyIHNwYW4ubm90aV9jb3VudCBhIHsgY29sb3I6IHJnYig2MSwgNjEsIDYxKTsgZm9udC1z -aXplOiAxMnB4OyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKZGl2LmJnX2NvcmV2YWx1 -ZSB7IGhlaWdodDogYXV0bzsgcGFkZGluZzogMHB4IDBweCAxMHB4OyBiYWNrZ3JvdW5kOiBub25l -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBpbml0aWFsIGluaXRpYWw7IH0KCnAuY29yZXZhbHVlX3Nsb2dhbiB7IHBhZGRpbmc6IDIwcHgg -MHB4IDYwcHg7IH0KCnAuY29yZXZhbHVlX3Nsb2dhbjo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlz -cGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9CgpwLmNvcmV2YWx1ZV9zbG9nYW4gc3Ryb25nLnRp -dCB7IGZsb2F0OiBsZWZ0OyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDQ3JTsgcGFkZGluZy1yaWdo -dDogMyU7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6 -ZTogMjRweDsgY29sb3I6IHJnYigxMzYsIDU2LCAxNjMpOyB9CgpwLmNvcmV2YWx1ZV9zbG9nYW4g -c3Bhbi5kZXNjIHsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTAlOyBjb2xvcjogcmdiKDEzLCAxMjMs -IDE5MSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCnAuY29yZXZhbHVlX3Nsb2dhbiBzcGFuLmRlc2Mg -c3BhbiB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXRvcDogMTBweDsgfQoKdWwudmFs -dWVfbGlzdCB7IH0KCnVsLnZhbHVlX2xpc3QgbGkgeyBvdmVyZmxvdzogaGlkZGVuOyBwYWRkaW5n -OiA0MHB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBi -b3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCnVsLnZhbHVlX2xpc3QgbGk6 -Zmlyc3QtY2hpbGQgeyBib3JkZXItdG9wLXdpZHRoOiAycHg7IGJvcmRlci10b3Atc3R5bGU6IHNv -bGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMTczLCAxODQsIDE5MSk7IH0KCnVsLnZhbHVlX2xp -c3QgbGkgZGl2LmlubmVyIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0NiU7IH0KCnVsLnZhbHVlX2xp -c3QgbGkgZGl2LmlubmVyICsgZGl2LmlubmVyIHsgZmxvYXQ6IHJpZ2h0OyB9Cgp1bC52YWx1ZV9s -aXN0IGxpIGRpdi5pbm5lciBzcGFuLmltZyB7IGZsb2F0OiBsZWZ0OyBkaXNwbGF5OiBibG9jazsg -bWFyZ2luOiA3cHggNDBweCAwcHggMHB4OyB9Cgp1bC52YWx1ZV9saXN0IGxpIGRpdi5pbm5lciBw -IHsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKdWwudmFsdWVfbGlzdCBsaSBkaXYuaW5uZXIgcCBzdHJv -bmcudGl0IHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDEycHg7IGNvbG9yOiByZ2Io -MTMsIDEyMywgMTkxKTsgZm9udC1zaXplOiAxOHB4OyB9Cgp1bC52YWx1ZV9saXN0IGxpIGRpdi5p -bm5lciBwIHNwYW4uc3ViIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDhweDsgZm9u -dC13ZWlnaHQ6IDYwMDsgfQoKLmJnX2lkZWEgeyBwYWRkaW5nOiAwcHg7IH0KCi50b3BhcmVhX2lu -IC5zdWJfdHh0IHNwYW4udGl0IHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4IDBweCA1cHg7 -IH0KCmRpdi5pZGVhX2NvbnRhcmVhIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OyBib3JkZXIt -Ym90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDE3MywgMTg0LCAx -OTEpOyBwYWRkaW5nOiAxMHB4IDBweCA1MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBsZXR0ZXItc3Bh -Y2luZzogLTFweDsgfQoKZGl2LmlkZWFfY29udGFyZWEgc3Bhbi50aXQgeyBkaXNwbGF5OiBibG9j -azsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0NSU7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXpl -OiAyNHB4OyBjb2xvcjogcmdiKDEzNiwgNTYsIDE2Myk7IH0KCmRpdi5pZGVhX2NvbnRhcmVhIHNw -YW4uc3ViIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyBmb250LXNpemU6IDE4cHg7IGNv -bG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgfQoKdWwuaWRlYV9jb250bGlzdCB7IG1hcmdpbjogNTBw -eCAwcHggMHB4IDMwcHg7IG92ZXJmbG93OiBoaWRkZW47IH0KCnVsLmlkZWFfY29udGxpc3QgbGkg -eyBmbG9hdDogbGVmdDsgd2lkdGg6IDI5JTsgfQoKdWwuaWRlYV9jb250bGlzdCBsaSBpbWcuaW1n -IHsgZGlzcGxheTogYmxvY2s7IH0KCnVsLmlkZWFfY29udGxpc3QgbGkuZmlyIHsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfaWRl -YV9hcnJvdy5wbmcpOyB3aWR0aDogMzUlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MyUgMzAlOyBi -YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuaWRlYV9jb250bGlz -dCBsaS5zZWMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmty -L2ltYWdlcy9hYm91dC9iZ19pZGVhX2Fycm93Mi5wbmcpOyB3aWR0aDogMzUlOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiA5MyUgMzAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKdWwuaWRlYV9jb250bGlzdCBsaSBzcGFuLnRpdCB7IGRpc3BsYXk6IGJsb2NrOyBmb250 -LXNpemU6IDE4cHg7IHBhZGRpbmc6IDI1cHggMHB4IDE1cHg7IGJvcmRlci1ib3R0b20td2lkdGg6 -IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJn -YigxNzMsIDE4NCwgMTkxKTsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB3aWR0aDogMjcwcHg7 -IHRleHQtYWxpZ246IGNlbnRlcjsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KCnVsLmlkZWFfY29u -dGxpc3QgbGkuc2VjIHNwYW4udGl0IHsgbWFyZ2luLWxlZnQ6IDBweDsgfQoKdWwuaWRlYV9jb250 -bGlzdCBsaS5zZWMgdWwudHh0X2xpc3QgeyBtYXJnaW4tbGVmdDogMHB4OyB9Cgp1bC50eHRfbGlz -dCB7IG1hcmdpbjogMjBweCAwcHggMHB4OyB3aWR0aDogMjcwcHg7IH0KCnVsLnR4dF9saXN0IGxp -IHsgZmxvYXQ6IG5vbmU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2J1X2RvdDIuZ2lmKTsgcGFkZGluZzogMHB4IDBweCAxMHB4IDdweDsgd2lk -dGg6IDEwMCU7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA2cHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouYmdfY2FyZWVyMiB7IHBhZGRpbmctYm90dG9tOiAx -NXB4OyB9CgpoMyAuY2FyZWVyX251bSB7IG1hcmdpbi1sZWZ0OiAxNXB4OyBmb250LXdlaWdodDog -bm9ybWFsOyBmb250LXNpemU6IDEzcHg7IH0KCi5maWVsZF9zZWN0aW9uIC5maWVsZF9saXN0IHsg -b3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLXRvcDogNTBweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19s -aW5lLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgcmVwZWF0OyB9CgouZmllbGRfc2VjdGlvbiAuZmllbGRfbGlzdDpmaXJzdC1j -aGlsZCB7IG1hcmdpbi10b3A6IDM1cHg7IH0KCi5maWVsZF9zZWN0aW9uIC5maWVsZF9saXN0IGxp -IHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbG9hdDogbGVmdDsgcGFkZGluZy1sZWZ0OiAxMTBweDsg -d2lkdGg6IDMyMHB4OyBtaW4taGVpZ2h0OiAxNDBweDsgfQoKLmZpZWxkX3NlY3Rpb24gLmZpZWxk -X2xpc3QgbGk6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tcmlnaHQ6IDEwMHB4OyB9CgouZmllbGRfc2Vj -dGlvbiAuZmllbGRfbGlzdCBsaSAuZmllbGRfdGl0IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6 -IC0xMHB4OyBsZWZ0OiAwcHg7IHdpZHRoOiA5NXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQt -c2l6ZTogMTJweDsgbGluZS1oZWlnaHQ6IDExMCU7IH0KCi5maWVsZF9zZWN0aW9uIC5maWVsZF9s -aXN0IGxpIC5maWVsZCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDVweCAwcHggMTBweDsgbWlu -LWhlaWdodDogMzBweDsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhl -aWdodDogMTEwJTsgfQoKLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgLmZpZWxkX3RpdCAu -bGlzdF9ubyB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDU1 -cHg7IGNvbG9yOiByZ2IoMTExLCAxMzEsIDE0Myk7IGxldHRlci1zcGFjaW5nOiAtM3B4OyBsaW5l -LWhlaWdodDogMTEwJTsgfQoKYm9keS5tc2llOCAuZmllbGRfc2VjdGlvbiAuZmllbGRfbGlzdCBs -aSAuZmllbGRfdGl0IC5saXN0X25vIHsgbGluZS1oZWlnaHQ6IDEyMCU7IH0KCmJvZHkubXNpZTcg -LmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgLmZpZWxkX3RpdCAubGlzdF9ubyB7IHBhZGRp -bmctdG9wOiAycHg7IH0KCi5maWVsZF9zZWN0aW9uIC5maWVsZF9saXN0OmZpcnN0LWNoaWxkIGxp -IC5maWVsZF90aXQgLmxpc3Rfbm8geyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5maWVs -ZF9zZWN0aW9uIC5maWVsZF9saXN0IGxpIGltZyB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAw -JTsgfQoKLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgc3Ryb25nIHsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbjogMTVweCAwcHggMTBweDsgZm9udC1zaXplOiAxOHB4OyB9CgpwLmJ0bl9jYXJl -ZXJfc2VhcmNoIHsgZGlzcGxheTogbm9uZTsgfQoKZGl2LmNhcmVlcl9zZWFyY2ggeyBtYXJnaW4t -Ym90dG9tOiAxMHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQoKdWwucmVjcnVpdF9saXN0IHsgZGlz -cGxheTogbm9uZTsgfQoKZGl2LmNvbXBhbnlfdmlzdWFsIHsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2JnX3ByX3Zpc3VhbDEuZ2lm -KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LmNvbXBhbnlfdmlzdWFsIGRpdi52aXN1YWxfdHh0IHsg -cGFkZGluZy10b3A6IDYwcHg7IGhlaWdodDogMTM1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19wcl92aXN1YWwyLmdpZik7 -IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 -IG5vLXJlcGVhdDsgfQoKLmNvbXBhbnlfdmlldyB7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6 -IDQwcHggMHB4IDBweDsgZm9udC1zaXplOiAxNXB4OyB9CgouY29tcGFueV9ib3ggeyBvdmVyZmxv -dzogaGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBmb250LXNpemU6 -IDE0cHg7IGNvbG9yOiByZ2IoMTc0LCAxODUsIDE5MSk7IGJhY2tncm91bmQtcG9zaXRpb246IGlu -aXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKLmNv -bXBhbnlfYm94IC5waG90byB7IGZsb2F0OiBsZWZ0OyB9CgouY29tcGFueV9ib3ggZGwgeyBwYWRk -aW5nOiAyMHB4IDMwcHggMHB4IDM1MHB4OyB9CgouY29tcGFueV9ib3ggZHQgeyBtYXJnaW46IDBw -eCAwcHggMzBweDsgZm9udC1zaXplOiAyMnB4OyBsZXR0ZXItc3BhY2luZzogLTJweDsgY29sb3I6 -IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoKLmNvbXBhbnlfYm94IGRkIHsgbGV0dGVyLXNwYWNpbmc6 -IC0xcHg7IH0KCi5jb21wYW55X3NlY3Rpb24geyBtYXJnaW4tYm90dG9tOiAtMXB4OyBwYWRkaW5n -LWJvdHRvbTogNDBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9Cgou -Y29tcGFueV9zZWN0aW9uIGgzIHsgbWFyZ2luLWJvdHRvbTogMTdweDsgcGFkZGluZy10b3A6IDQw -cHg7IGxpbmUtaGVpZ2h0OiAxMDAlOyB9CgouY29tcGFueV9zZWN0aW9uIGg0IHsgbWFyZ2luOiAx -N3B4IDBweCA3cHg7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgZm9udC1zaXplOiAxOHB4OyBs -aW5lLWhlaWdodDogMTAwJTsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuYmx1ZV9wb2ludCB7IG1hcmdp -bi1ib3R0b206IDE1cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6 -IHJnYigxMywgMTIzLCAxOTEpOyB9CgouY29tcGFueV9zZWN0aW9uIC5wb2ludF90ZXh0IHsgZGlz -cGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDNweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLmNv -bXBhbnlfc2VjdGlvbiAucG9pbnRfdGV4dDIgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRv -bTogMTZweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9o -aXN0b3J5IGxpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLWJvdHRvbTogM3B4OyBwYWRkaW5n -LWxlZnQ6IDExMHB4OyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2hpc3RvcnkgbGkgc3Bh -biB7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogLTExMHB4OyBmb250LXdlaWdodDogNjAwOyBj -b2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlz -dG9yeSBsaSBzcGFuLm1vbnRoIHsgcGFkZGluZy1sZWZ0OiA1NXB4OyB9CgouY29tcGFueV9zZWN0 -aW9uIC5jb21wYW55X2hpc3RvcnkudHlwZTIgbGkgeyBwYWRkaW5nLWxlZnQ6IDcwcHg7IH0KCi5j -b21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlzdG9yeS50eXBlMiBsaSBzcGFuIHsgbWFyZ2luLWxl -ZnQ6IC03MHB4OyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2hpc3RvcnkgbGkgc3Bhbi5j -LCAuY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2hpc3RvcnkudHlwZTIgbGkgc3Bhbi5jIHsgY29s -b3I6IHJnYig0MSwgNTYsIDcyKTsgfQoKYm9keS5tc2llNyAuY29tcGFueV9zZWN0aW9uIC5jb21w -YW55X2hpc3RvcnkgbGkgc3BhbiwgYm9keS5tc2llOCAuY29tcGFueV9zZWN0aW9uIC5jb21wYW55 -X2hpc3RvcnkgbGkgc3BhbiB7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9Cgpib2R5Lm1zaWU3IC5j -b21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlzdG9yeSBsaSBzcGFuLm1vbnRoLCBib2R5Lm1zaWU4 -IC5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlzdG9yeSBsaSBzcGFuLm1vbnRoIHsgcGFkZGlu -Zy1sZWZ0OiA1NHB4OyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2J1c2luZXNzID4gbGkg -eyBvdmVyZmxvdzogaGlkZGVuOyBtYXJnaW4tdG9wOiAyMHB4OyB9CgouY29tcGFueV9zZWN0aW9u -IC5jb21wYW55X2J1c2luZXNzIGxpOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMHB4OyB9Cgou -Y29tcGFueV9zZWN0aW9uIC5jb21wYW55X2J1c2luZXNzIGxpIGltZyB7IGZsb2F0OiBsZWZ0OyBt -YXJnaW4tcmlnaHQ6IDI1cHg7IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfYnVzaW5lc3Mu -dHlwZTIgeyBtYXJnaW4tdG9wOiAxNXB4OyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2J1 -c2luZXNzLnR5cGUyIHN0cm9uZyBzcGFuIHsgcGFkZGluZy1sZWZ0OiA3cHg7IGJhY2tncm91bmQt -aW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J1X2RvdDIuZ2lmKTsg -Y29sb3I6IHJnYig1MSwgNTEsIDUxKTsgZm9udC1zaXplOiAxNXB4OyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAwcHggOHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoK -LmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9idXNpbmVzcyBsaSBzdHJvbmcgeyBkaXNwbGF5OiBi -bG9jazsgbWFyZ2luOiAtM3B4IDBweCA1cHg7IGZvbnQtc2l6ZTogMThweDsgY29sb3I6IHJnYigx -MywgMTIzLCAxOTEpOyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X3RlbCBsaSB7IG92ZXJm -bG93OiBoaWRkZW47IG1hcmdpbi1ib3R0b206IDNweDsgcGFkZGluZzogMHB4IDBweCAwcHggMTEw -cHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV90 -ZWwgbGkgc3BhbiB7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tbGVmdDogLTExMHB4OyBmb250LXdlaWdo -dDogNjAwOyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCmJvZHkubXNpZTcgLmNvbXBhbnlf -c2VjdGlvbiAuY29tcGFueV90ZWwgbGkgc3BhbiwgYm9keS5tc2llOCAuY29tcGFueV9zZWN0aW9u -IC5jb21wYW55X3RlbCBsaSBzcGFuIHsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KCi5jb21wYW55 -X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxpIGEgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTFw -eDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW46IDBweCA4cHggMHB4IDBweDsgcGFkZGlu -ZzogMHB4IDBweCAycHggMjBweDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV90ZWwgbGkg -YS5ob21lcGFnZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28u -a3IvaW1hZ2VzL2NhcmVlci9iZ19jb21wYW55X2hvbWUuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlv -bjogMHB4IDRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5j -b21wYW55X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxpIGEuYmxvZyB7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19jb21wYW55X2Js -b2cuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDRweDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxp -IGEuZmFjZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3Iv -aW1hZ2VzL2NhcmVlci9iZ19jb21wYW55X2ZhY2UuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -MHB4IDRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5jb21w -YW55X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxpIGEudHdpdHRlciB7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19jb21wYW55X3R3 -aXR0ZXIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDRweDsgYmFja2dyb3VuZC1yZXBl -YXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfdGVs -IGxpIGEueW91dHViZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL2NhcmVlci9iZ19jb21wYW55X3lvdXR1YmUuZ2lmKTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMHB4IDRweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7 -IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxpIGEubWFpbCB7IG1hcmdpbjogMHB4 -OyBwYWRkaW5nLWxlZnQ6IDBweDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9kZiB7IG92 -ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDEzcHg7IH0KCi5jb21wYW55X3NlY3Rpb24gZGl2 -Lm5vbmUgPiBoNDpmaXJzdC1jaGlsZCwgLmNvbXBhbnlfc2VjdGlvbiBkaXYubm9uZSA+IC5jb21w -YW55X2RmIHsgbWFyZ2luLXRvcDogMHB4OyB9CgouY29tcGFueV9zZWN0aW9uIGg0ICsgLmNvbXBh -bnlfZGYgeyBtYXJnaW4tdG9wOiAwcHg7IH0KCi5jb21wYW55X3NlY3Rpb24gaDQgKyB0YWJsZSB7 -IG1hcmdpbi10b3A6IDE5cHg7IH0KCi5jb21wYW55X3NlY3Rpb24gLnRibF9kYXRhNSArIGg0IHsg -bWFyZ2luLXRvcDogMTlweDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9kZiBkdCB7IG1h -cmdpbjogMTJweCAwcHggMnB4OyBmb250LXdlaWdodDogNjAwOyBsaW5lLWhlaWdodDogMTUwJTsg -fQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9kZiBkdDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10 -b3A6IDBweDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9kZiBkZCB7IGxpbmUtaGVpZ2h0 -OiAxNTAlOyB9CgouY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2RmIGRkLmltZ190eHQgeyBtYXJn -aW4tdG9wOiA1cHg7IH0KCi5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfZGYgZGQgLmNvbXBhbnlf -YnVzaW5lc3MudHlwZTIgeyBtYXJnaW4tdG9wOiAxMHB4OyB9CgouY29tcGFueV9zZWN0aW9uIC5j -b21wYW55X2RmIGRkIHRhYmxlOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogNnB4OyB9CgouY29t -cGFueV9zZWN0aW9uIC5jb21wYW55X2RmIGRkLmJsIHsgbWFyZ2luLXRvcDogM3B4OyBwYWRkaW5n -LWxlZnQ6IDdweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5r -ci9pbWFnZXMvYnVfZG90Mi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMTBweDsgYmFj -a2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5jb21wYW55X3NlY3Rpb24g -LmNvbXBhbnlfZGYgZGQuYmxfYmFyIHsgcGFkZGluZy1sZWZ0OiAxMHB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19iYXIuZ2lmKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogMHB4IDExcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CgouY29tcGFueV9zZWN0aW9uIC5pbWcgeyBtYXJnaW4tdG9wOiAxNXB4OyB9 -CgouY29tcGFueV9zZWN0aW9uIC5pbWcgaW1nIHsgbWFyZ2luOiAwcHggMTVweCAxNXB4IDBweDsg -fQoKLmNvbXBhbnlfc2VjdGlvbiAuaW1nX3R4dCB7IG92ZXJmbG93OiBoaWRkZW47IH0KCi5jb21w -YW55X3NlY3Rpb24gLmltZ190eHQgaW1nIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMHB4IDIwcHgg -MHB4IDBweDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuaW1nX3R4dCBwIHsgbWFyZ2luLXRvcDogMjBw -eDsgfQoKLmNvbXBhbnlfc2VjdGlvbiAuaW1nX3R4dCBpbWcgKyBwIHsgbWFyZ2luOiAwcHg7IH0K -Ci50YmxfZGF0YTQgeyB3aWR0aDogMTAwJTsgfQoKLnRibF9kYXRhNCB0aGVhZCB0aCB7IHBhZGRp -bmc6IDEwcHggMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAyNTIsIDI1MCk7IGJvcmRl -ci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItbGVmdC13 -aWR0aDogMXB4OyBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgc29saWQgc29saWQ7IGJvcmRlci10 -b3AtY29sb3I6IHJnYigyMjcsIDIyNywgMjI3KTsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIy -NywgMjI3LCAyMjcpOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIyNywgMjI3LCAyMjcpOyBsaW5l -LWhlaWdodDogMTMwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNr -Z3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgoudGJsX2RhdGE0IHRoZWFkIHRoOmZp -cnN0LWNoaWxkIHsgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7IH0KCi50YmxfZGF0YTQgdGJvZHkg -dGggeyBwYWRkaW5nOiAxMHB4IDBweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXIt -Ym90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNywgMjI3LCAy -MjcpOyBsaW5lLWhlaWdodDogMTMwJTsgfQoKLnRibF9kYXRhNCB0Ym9keSB0aC5saW5lIHsgYm9y -ZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7IGJvcmRlci1y -aWdodC1jb2xvcjogcmdiKDIyNywgMjI3LCAyMjcpOyB9CgoudGJsX2RhdGE0IHRib2R5IHRkLmxp -bmUgeyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJv -cmRlci1sZWZ0LWNvbG9yOiByZ2IoMjI3LCAyMjcsIDIyNyk7IH0KCi50YmxfZGF0YTQgdGQgeyBw -YWRkaW5nOiAxMHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5 -bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI3LCAyMjcsIDIyNyk7IGJvcmRl -ci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQt -Y29sb3I6IHJnYigyMjcsIDIyNywgMjI3KTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgoudGJsX2Rh -dGE0IHRkOmZpcnN0LWNoaWxkIHsgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7IH0KCi50YmxfZGF0 -YTUgeyB3aWR0aDogMTAwJTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNywgMjI3LCAyMjcpOyB9CgoudGJsX2Rh -dGE1IHRib2R5IHRoIHsgcGFkZGluZzogMTBweCAwcHggMTBweCA4cHg7IGJhY2tncm91bmQtY29s -b3I6IHJnYigyNTIsIDI1MiwgMjUwKTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXIt -Ym90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNywgMjI3LCAy -MjcpOyBsaW5lLWhlaWdodDogMTMwJTsgdGV4dC1hbGlnbjogbGVmdDsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFs -OyB9CgoudGJsX2RhdGE1IHRib2R5IHRkIHsgcGFkZGluZzogMTBweCAwcHggMTBweCA4cHg7IGJv -cmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRl -ci1ib3R0b20tY29sb3I6IHJnYigyMjcsIDIyNywgMjI3KTsgYm9yZGVyLWxlZnQtd2lkdGg6IDFw -eDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIyNywg -MjI3LCAyMjcpOyB9CgouZGF0YV9kZiB7IHdpZHRoOiAxMDAlOyBib3JkZXItYm90dG9tLXdpZHRo -OiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiBy -Z2IoMjI3LCAyMjcsIDIyNyk7IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKLmRhdGFfZGYgZHQgeyBw -YWRkaW5nOiAxMHB4IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MiwgMjUyLCAyNTApOyBi -b3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9w -LWNvbG9yOiByZ2IoMjI3LCAyMjcsIDIyNyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQoKLmRhdGFfZGYgZGQgeyBwYWRkaW5nOiAxMHB4IDBweDsgYm9yZGVyLXRvcC13aWR0 -aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIy -NywgMjI3LCAyMjcpOyB9Cgp1bC5iYXJfbGlzdCBsaSB7IHBhZGRpbmctbGVmdDogMTBweDsgYmFj -a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYmdfYmFy -LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAxMXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuYmFyX2xpc3QgbGkubm9iZyB7IHBhZGRpbmc6IDBw -eDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgouYmdfY2FyZWVyX2luZm8g -eyBwYWRkaW5nLWJvdHRvbTogMTVweDsgfQoKLmNhcmVlcl9saXN0IHsgcGFkZGluZzogMHB4OyBi -b3JkZXItdG9wLXN0eWxlOiBub25lOyB9CgouY2FyZWVyX2xpc3QgbGkgeyBmbG9hdDogbGVmdDsg -cGFkZGluZzogMjBweCAwcHggMThweDsgd2lkdGg6IDQ5LjklOyBsaW5lLWhlaWdodDogMTAwJTsg -fQoKLmNhcmVlcl9saXN0IGxpIGEubGlua19zZWN0aW9uIHsgcGFkZGluZy1sZWZ0OiAxNjhweDsg -aGVpZ2h0OiAxMDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKLmNhcmVlcl9saXN0IGxpIHsgZmxv -YXQ6IGxlZnQ7IHBhZGRpbmc6IDIwcHggMHB4IDE4cHg7IHdpZHRoOiA0OS45JTsgbGluZS1oZWln -aHQ6IDEwMCU7IH0KCi5jYXJlZXJfbGlzdCBsaSBhLmxpbmtfc2VjdGlvbiB7IGRpc3BsYXk6IGJs -b2NrOyBwYWRkaW5nLWxlZnQ6IDE2OHB4OyBoZWlnaHQ6IDEwMnB4OyB9CgouY2FyZWVyX2xpc3Qg -bGkgaW1nLnRodW1iIHsgdG9wOiAwcHg7IHdpZHRoOiAxNTBweDsgaGVpZ2h0OiAxMDBweDsgfQoK -LmNhcmVlcl9saXN0IGxpIC50aXQgeyBtYXJnaW4tdG9wOiAtMnB4OyBoZWlnaHQ6IDY4cHg7IGZv -bnQtc2l6ZTogMThweDsgbGluZS1oZWlnaHQ6IDEyMCU7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9 -CgouY2FyZWVyX2xpc3QgbGkgLnRpdCBzcGFuIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6 -IDNweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogcmdiKDEz -LCAxMjMsIDE5MSk7IGxpbmUtaGVpZ2h0OiAxMTAlOyB9CgouY2FyZWVyX2xpc3QgbGkgLmNvbnQg -eyBtYXJnaW4tdG9wOiAwcHg7IGhlaWdodDogMzZweDsgbGluZS1oZWlnaHQ6IDEzMCU7IH0KCi5z -YW1zdW5naW5fYm94IHsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBo -ZWlnaHQ6IDIxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBmb250LXNp -emU6IDE0cHg7IGNvbG9yOiByZ2IoMTc0LCAxODUsIDE5MSk7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoK -LnNhbXN1bmdpbl9ib3ggLnBob3RvIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVm -dDogMHB4OyB9Cgouc2Ftc3VuZ2luX2JveCAuc2Ftc3VuZ2luIHsgcGFkZGluZzogMjVweCAzNXB4 -IDBweCAzNTBweDsgfQoKLnNhbXN1bmdpbl9ib3ggLnNhbXN1bmdpbiBkdCB7IG1hcmdpbi1ib3R0 -b206IDEwcHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogMjJweDsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgbGluZS1oZWlnaHQ6IDEwMCU7IGxldHRlci1zcGFjaW5nOiAtMnB4 -OyB9Cgouc2Ftc3VuZ2luX2JveCAuc2Ftc3VuZ2luIGR0LmZzIHsgZm9udC1zaXplOiAyMnB4OyB9 -Cgouc2Ftc3VuZ2luX2JveCAuc2Ftc3VuZ2luIGR0LmZzIHNwYW4geyBmb250LXNpemU6IDIycHg7 -IH0KCi5zYW1zdW5naW5fYm94IC5zYW1zdW5naW4gZHQudGl0IHsgbGluZS1oZWlnaHQ6IDEzMCU7 -IH0KCi5zYW1zdW5naW5fYm94IC5zYW1zdW5naW4gZHQgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBm -b250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDIycHg7IGNvbG9yOiByZ2IoNDIsIDIwNywgMjI5 -KTsgfQoKLnNhbXN1bmdpbl9ib3ggLnNhbXN1bmdpbiBkZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg -bGVmdDogMHB4OyBib3R0b206IDI3cHg7IHBhZGRpbmc6IDBweCAzMHB4IDBweCAzNTBweDsgbGV0 -dGVyLXNwYWNpbmc6IC0xcHg7IGxpbmUtaGVpZ2h0OiAxMzAlOyB9Cgouc2Ftc3VuZ2luX2FyZWEg -aDQgeyBtYXJnaW46IDBweCAwcHggMTVweDsgcGFkZGluZy10b3A6IDM1cHg7IGJvcmRlci10b3At -d2lkdGg6IDJweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJn -YigyMjUsIDIyNSwgMjI1KTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxOHB4OyBsZXR0 -ZXItc3BhY2luZzogLTFweDsgfQoKLnNhbXN1bmdpbl9hcmVhIGg0OmZpcnN0LWNoaWxkIHsgcGFk -ZGluZzogMHB4OyBib3JkZXI6IG5vbmU7IH0KCi5zYW1zdW5naW5fcW5hIHsgZm9udC1zaXplOiAx -NXB4OyB9Cgouc2Ftc3VuZ2luX3FuYSBkdCB7IHBhZGRpbmc6IDlweCAyMHB4IDhweCA0NnB4OyBi -YWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJl -ZXIvYmdfcW5hLmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsIDI0NSwgMjQ1KTsgZm9u -dC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBiYWNrZ3JvdW5kLXBvc2l0 -aW9uOiAyMHB4IDEycHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9 -Cgouc2Ftc3VuZ2luX3FuYSBkZCB7IG1hcmdpbjogMjBweCAwcHggMHB4OyBwYWRkaW5nOiAwcHgg -MHB4IDM1cHggNDZweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvY2FyZWVyL2JnX3FuYS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMHB4 -IC0xODNweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCi5waG90 -b19xbmEgeyBvdmVyZmxvdzogaGlkZGVuOyB9CgoucGhvdG9fcW5hIGg0IHsgbWFyZ2luOiAwcHg7 -IHBhZGRpbmc6IDM1cHggMHB4IDE1cHggIWltcG9ydGFudDsgYm9yZGVyLXRvcC13aWR0aDogMnB4 -ICFpbXBvcnRhbnQ7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7IGJvcmRlci10 -b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KSAhaW1wb3J0YW50OyB9CgoucGhvdG9fcW5hIGRs -IHsgbWFyZ2luLWJvdHRvbTogMHB4OyB9CgoucGhvdG9fcW5hIGR0OmZpcnN0LWNoaWxkIHsgbWFy -Z2luLXRvcDogMHB4OyB9CgoucGhvdG9fciAucW5hX3Bob3RvIHsgZmxvYXQ6IHJpZ2h0OyB9Cgou -cGhvdG9fciAuc2Ftc3VuZ2luX3FuYSB7IHBhZGRpbmctcmlnaHQ6IDM0MHB4OyB9CgoucGhvdG9f -bCAucW5hX3Bob3RvIHsgZmxvYXQ6IGxlZnQ7IH0KCi5waG90b19sIC5zYW1zdW5naW5fcW5hIHsg -cGFkZGluZy1sZWZ0OiAzNDBweDsgfQoKLnNhbXN1bmdpbl9hcmVhMiB7IG1hcmdpbi1ib3R0b206 -IDQwcHg7IGZvbnQtc2l6ZTogMTVweDsgfQoKLnNhbXN1bmdpbl9hcmVhMiBoNCB7IG1hcmdpbjog -NDBweCAwcHggMjVweDsgcGFkZGluZy10b3A6IDM1cHg7IGJvcmRlci10b3Atd2lkdGg6IDJweDsg -Ym9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwg -MjI1KTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogcmdiKDEzLCAx -MjMsIDE5MSk7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9Cgouc2Ftc3VuZ2luX2FyZWEyIGg0OmZp -cnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMzBweDsgcGFkZGluZzogMHB4OyBib3JkZXI6IG5vbmU7 -IH0KCi5zYW1zdW5naW5fYXJlYTIgcC50aXQgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyBmb250LXdl -aWdodDogYm9sZDsgY29sb3I6IHJnYigxMDQsIDExNiwgMTI5KTsgfQoKLnNhbXN1bmdpbl9hcmVh -MiAucGhvdG9fciwgLnNhbXN1bmdpbl9hcmVhMiAucGhvdG9fbCB7IG92ZXJmbG93OiBoaWRkZW47 -IH0KCi5zYW1zdW5naW5fYXJlYTIgLnBob3RvX3Igc3Bhbi5waG90byB7IGZsb2F0OiByaWdodDsg -fQoKLnNhbXN1bmdpbl9hcmVhMiAucGhvdG9fciBzcGFuLnRpdCB7IGRpc3BsYXk6IGJsb2NrOyBw -YWRkaW5nLXJpZ2h0OiAzNTBweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgZm9udC13ZWlnaHQ6IGJv -bGQ7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IH0KCi5zYW1zdW5naW5fYXJlYTIgLnBob3Rv -X3Igc3Bhbi50eHQgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1yaWdodDogMzUwcHg7IH0KCi5z -YW1zdW5naW5fYXJlYTIgLnBob3RvX2wgc3Bhbi5waG90byB7IGZsb2F0OiBsZWZ0OyB9Cgouc2Ft -c3VuZ2luX2FyZWEyIC5waG90b19sIHNwYW4udGl0IHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmct -bGVmdDogMzUwcHg7IG1hcmdpbi1ib3R0b206IDE1cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xv -cjogcmdiKDEwNCwgMTE2LCAxMjkpOyB9Cgouc2Ftc3VuZ2luX2FyZWEyIC5waG90b19sIHNwYW4u -dHh0IHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctbGVmdDogMzUwcHg7IH0KCi5zYW1zdW5naW5f -YXJlYTIgLnBob3RvX2wudHlwZTIgc3Bhbi50eHQgeyBwYWRkaW5nLWxlZnQ6IDI1MHB4OyB9Cgou -c2Ftc3VuZ2luX2FyZWEyIC5wb2ludCwgLnNhbXN1bmdpbl9hcmVhMiAucG9pbnQgYSB7IGNvbG9y -OiByZ2IoMTU4LCAxMDEsIDIxKTsgfQoKLm1lbV9pbnRlcnZpZXcgeyBtYXJnaW4tYm90dG9tOiA0 -MHB4OyBwYWRkaW5nLWJvdHRvbTogNDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSwgMjQ1 -LCAyNDUpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQt -cmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCi5tZW1faW50ZXJ2aWV3IC5pbnRlcnZpZXdlciB7 -IG1hcmdpbi1ib3R0b206IDQwcHg7IHBhZGRpbmc6IDEwcHggNDBweCAxMnB4IDk1cHg7IGJhY2tn -cm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9i -Z19pbnRlcnZpZXdlci5naWYpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBm -b250LXNpemU6IDE4cHg7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGxldHRlci1zcGFjaW5n -OiAtMXB4OyBsaW5lLWhlaWdodDogMTIwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjNweCAxNXB4 -OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLm1lbV9pbnRlcnZp -ZXcgLmludGVydmlld2VyIHNwYW4geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogM3B4OyBm -b250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDIycHg7IGNvbG9yOiByZ2IoNDIsIDIwNiwgMjI5 -KTsgfQoKLm1lbV9pbnRlcnZpZXcgLmJveF9zZWN0aW9uIHsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2JnX2ludGVydmlld19saW5l -LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgcmVwZWF0OyB9CgoubWVtX2ludGVydmlldyBkbCB7IHBhZGRpbmc6IDBweCA0MHB4 -OyB9CgoubWVtX2ludGVydmlldyBkdCB7IG1hcmdpbjogMzBweCAwcHggMTVweDsgZm9udC13ZWln -aHQ6IDYwMDsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGxldHRl -ci1zcGFjaW5nOiAtMXB4OyB9CgoubWVtX2ludGVydmlldyBkdC5oIHsgbWluLWhlaWdodDogNTBw -eDsgfQoKLm1lbV9pbnRlcnZpZXcgZHQ6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAtM3B4OyB9 -CgoubWVtX2ludGVydmlldyBkZCB7IG92ZXJmbG93OiBoaWRkZW47IH0KCi5tZW1faW50ZXJ2aWV3 -IGRkIGltZyB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHggMTVweCAxMHB4IDBweDsgfQoKLmdv -X3RvcCB7IG1hcmdpbi1ib3R0b206IDVweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KCi5nb190b3Ag -YSB7IHBhZGRpbmc6IDVweCAwcHg7IH0KCnRhYmxlLm5vdGljZV9saXN0IC50YmxvY2sgeyBkaXNw -bGF5OiBub25lOyB9Cgp0YWJsZS5ub3RpY2VfbGlzdCB0ZC50YmxvY2sgeyB9Cgp0YWJsZS5ub3Rp -Y2VfbGlzdCBjb2wudGJsb2NrIHsgfQoKLmNhcmVlcl9pbnRyb192aXN1YWwuYiB7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19j -YXJlZXJfaW50cm9fdmlzdWFsMy5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA4MHB4IDE0cHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgouY2FyZWVyX2ludHJv -X3Zpc3VhbC5iIC52aXN1YWxfdHh0IHsgcGFkZGluZy10b3A6IDIxcHg7IGhlaWdodDogMTYzcHg7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Nh -cmVlci9iZ19jYXJlZXJfaW50cm9fdmlzdWFsNC5naWYpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJv -cmRlci1ib3R0b20td2lkdGg6IDJweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRl -ci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -MTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKLmNh -cmVlcl9pbnRyb192aXN1YWwuYiAudmlzdWFsX3R4dCBoMyB7IG1hcmdpbi1ib3R0b206IDBweDsg -Zm9udC1mYW1pbHk6ICdOYW51bSBNeWVvbmdqbyc7IGZvbnQtc2l6ZTogMzVweDsgY29sb3I6IHJn -YigxMywgMTIzLCAxOTEpOyBsZXR0ZXItc3BhY2luZzogLTJweDsgfQoKZGwudGFsbmV0X2xpc3Qg -eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9j -YXJlZXIvYmdfdGFsZW50X2EuanBnKTsgcGFkZGluZzogMHB4IDBweCA0MHB4IDI4MHB4OyBib3Jk -ZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXIt -Ym90dG9tLWNvbG9yOiByZ2IoMjQwLCAyNDAsIDI0MCk7IGJhY2tncm91bmQtcG9zaXRpb246IDcw -cHggNDVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRsLnRh -bG5ldF9saXN0LmIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNv -LmtyL2ltYWdlcy9jYXJlZXIvYmdfdGFsZW50X2IuanBnKTsgcGFkZGluZzogMHB4IDBweCA0MHB4 -IDI4MHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNv -bGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjQwLCAyNDAsIDI0MCk7IGJhY2tncm91bmQt -cG9zaXRpb246IDcwcHggNDVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBl -YXQ7IH0KCmRsLnRhbG5ldF9saXN0LmQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3 -dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfdGFsZW50X2MuanBnKTsgcGFkZGluZzog -MHB4IDBweCA0MHB4IDI4MHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0 -b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjQwLCAyNDAsIDI0MCk7 -IGJhY2tncm91bmQtcG9zaXRpb246IDcwcHggNDVweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl -cGVhdCBuby1yZXBlYXQ7IH0KCmRsLnRhbG5ldF9saXN0IGR0IHsgZm9udC13ZWlnaHQ6IDYwMDsg -cGFkZGluZzogMzBweCAwcHggMThweDsgZm9udC1zaXplOiAyNHB4OyB9CgpkbC50YWxuZXRfbGlz -dCBkdCBzdHJvbmcuYmx1ZV90eHQgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IHBhZGRpbmct -Ym90dG9tOiAxMHB4OyB9CgpkbC50YWxuZXRfbGlzdCBkdCBlbSB7IGRpc3BsYXk6IGJsb2NrOyBj -b2xvcjogcmdiKDY4LCAxMjEsIDE1Myk7IGZvbnQtc2l6ZTogMTRweDsgfQoKZGwudGFsbmV0X2xp -c3QgZGQgeyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IH0KCi50aXRs -ZV9hcmVhIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRk -ZW47IH0KCi50aXRsZV9hcmVhIGgzIHsgZGlzcGxheTogaW5saW5lOyBtYXJnaW46IDBweDsgZmxv -YXQ6IGxlZnQ7IH0KCi50aXRsZV9hcmVhIC5zdWJfdHh0IHsgbWFyZ2luOiAxMHB4IDBweCAwcHgg -MTBweDsgZGlzcGxheTogaW5saW5lOyBmbG9hdDogbGVmdDsgfQoKaDMucmVjcnVpdCB7IGRpc3Bs -YXk6IGlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQoKaDMucmVjcnVpdCArIHAg -eyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1sZWZ0OiAxMHB4OyBmb250LXNpemU6IDE1 -cHg7IH0KCmgzLnJlY3J1aXQgKyBwLmRlc2MzIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMHB4 -IDBweCAxMHB4OyB9CgpoMy5yZWNydWl0IHNwYW4uc3ViX3R4dCB7IG1hcmdpbi1sZWZ0OiAxMHB4 -OyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDE1cHg7IH0KCmg0LnJlY3J1aXQgeyBt -YXJnaW4tYm90dG9tOiAxNXB4OyBmb250LXNpemU6IDE4cHg7IH0KCmg0LnJlY3J1aXRfYmx1ZSB7 -IG1hcmdpbi1ib3R0b206IDVweDsgZm9udC1zaXplOiAxOHB4OyBjb2xvcjogcmdiKDEzLCAxMjMs -IDE5MSk7IH0KCnVsLnRhYl9tZW51NiB7IGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsgYm9yZGVy -LWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMzIsIDIzMiwg -MjMyKTsgfQoKdWwudGFiX21lbnU2OjphZnRlciB7IGNvbnRlbnQ6ICcnOyBkaXNwbGF5OiBibG9j -azsgY2xlYXI6IGJvdGg7IH0KCnVsLnRhYl9tZW51NiBsaSB7IGZsb2F0OiBsZWZ0OyB9Cgp1bC50 -YWJfbWVudTYgbGkgYSB7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDI2cHg7IHBhZGRpbmc6IDBw -eCAxOHB4OyBjb2xvcjogcmdiKDEwNCwgMTE2LCAxMjkpOyBsZXR0ZXItc3BhY2luZzogLTFweDsg -Zm9udC13ZWlnaHQ6IDYwMDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE1cHg7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVl -ci9iZ190YWJfYmFyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDVweDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVsLnRhYl9tZW51NiBsaTpmaXJzdC1j -aGlsZCBhIHsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC50YWJfbWVu -dTYgbGkub24geyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMnB4OyB6LWluZGV4OiAxOyBtYXJn -aW4tdG9wOiAtMnB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1ib3R0b20tc3R5 -bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyB9Cgp1bC50 -YWJfbWVudTYgbGkub24gYSB7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgfQoKdWwudGFiX21l -bnU2ICsgZGwubGlzdF92aWV3IHsgbWFyZ2luLXRvcDogNDBweDsgfQoKZGl2LnJlY3J1aXRfc3Rl -cCB7IG1hcmdpbi10b3A6IDQwcHg7IH0KCmRpdi5yZWNydWl0X3N0ZXA6OmFmdGVyIHsgY29udGVu -dDogJyc7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfQoKZGl2LnJlY3J1aXRfc3RlcC5t -Z3QwIHsgbWFyZ2luLXRvcDogMHB4OyB9CgpkaXYucmVjcnVpdF9zdGVwIGg0IHsgZmxvYXQ6IGxl -ZnQ7IHdpZHRoOiAxMjZweDsgbWFyZ2luLXJpZ2h0OiAzMHB4OyBib3JkZXI6IDJweCBzb2xpZCBy -Z2IoMjI1LCAyMjUsIDIyNSk7IHBhZGRpbmc6IDlweCAxNXB4OyBmb250LXNpemU6IDE1cHg7IGNv -bG9yOiByZ2IoMTM2LCA1NiwgMTYzKTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6 -IC0xcHg7IH0KCmRpdi5yZWNydWl0X3N0ZXAgdWwgeyBvdmVyZmxvdzogaGlkZGVuOyBib3JkZXIt -dG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9y -OiByZ2IoMjM2LCAyMzYsIDIzNik7IH0KCmRpdi5yZWNydWl0X3N0ZXAgdWwgbGkgeyBwYWRkaW5n -LWxlZnQ6IDdweDsgZm9udC1zaXplOiAxNXB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDov -L3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9idV9kb3QyLmdpZik7IGJhY2tncm91bmQtcG9zaXRp -b246IDAlIDhweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRp -di5yZWNydWl0X3N0ZXAgdWwgbGk6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiA3cHg7IH0KCmRp -di5yZWNydWl0X3N0ZXAgdWwgbGkgaW1nLmltZ19zc2F0IHsgZGlzcGxheTogYmxvY2s7IG1hcmdp -bjogMTVweCAwcHggMHB4IC03cHg7IHdpZHRoOiAxMDAlOyB9CgpkaXYucmVjcnVpdF9zdGVwIHVs -IGxpLnFhIHsgYmFja2dyb3VuZDogbm9uZTsgbWFyZ2luLXRvcDogNnB4OyBwYWRkaW5nOiAwcHg7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2LnJlY3J1aXRfc3RlcCB1bCBsaS5xYSBhIHsgZm9udC13 -ZWlnaHQ6IDYwMDsgfQoKZGl2LnJlY3J1aXRfc3RlcCB1bCBkaXYudGJsX3R5cGUgeyBkaXNwbGF5 -OiB0YWJsZTsgbWFyZ2luLXRvcDogMTVweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3Jk -ZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyB9CgpkaXYucmVjcnVpdF9zdGVwIHVsIGRsIHsgZGlzcGxheTogdGFibGUtcm93OyBi -YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAyNTIsIDI1MCk7IH0KCmRpdi5yZWNydWl0X3N0ZXAg -dWwgZGwgZHQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB3aWR0aDogMTQ0cHg7IHBhZGRpbmc6IDEw -cHggOHB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBi -b3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IHZlcnRpY2FsLWFsaWduOiBtaWRk -bGU7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCmRpdi5yZWNydWl0X3N0ZXAgdWwgZGwgZGQgeyBkaXNw -bGF5OiB0YWJsZS1jZWxsOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6 -IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJvcmRlci1sZWZ0 -LXdpZHRoOiAxcHg7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtY29sb3I6 -IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFkZGluZzogMTBweCA4cHg7IHZlcnRpY2FsLWFsaWduOiBt -aWRkbGU7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0 -aWFsOyB9CgpkaXYucmVjcnVpdF9zdGVwIHVsIGRsIGRkIGVtIHsgbWFyZ2luLWxlZnQ6IDRweDsg -Y29sb3I6IHJnYigxNTgsIDEwMSwgMjEpOyBmb250LXNpemU6IDE0cHg7IH0KCmRpdi5yZWNydWl0 -X3N0ZXAgdWwucHJvY2VzcyB7IGJvcmRlcjogbm9uZTsgfQoKZGl2LnJlY3J1aXRfc3RlcCB1bC5w -cm9jZXNzIGxpIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHggNHB4IDEw -cHggMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KCnVsLmRvdF90eXBl -IHsgZm9udC1zaXplOiAxNXB4OyBtYXJnaW46IC0xMHB4IDBweCAxMHB4OyB9Cgp1bC5kb3RfdHlw -ZSBsaSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2J1X2RvdDIuZ2lmKTsgcGFkZGluZy1sZWZ0OiA1cHg7IGJhY2tncm91bmQtcG9zaXRpb246 -IDBweCAxMHB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwu -dGFiX21lbnU3IHsgd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDIwcHg7IH0KCnVsLnRhYl9tZW51 -Nzo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9Cgp1 -bC50YWJfbWVudTcgbGkgeyBmbG9hdDogbGVmdDsgZm9udC1zaXplOiAxM3B4OyB9Cgp1bC50YWJf -bWVudTcgbGkgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogNXB4IDE1cHg7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVl -ci9iZ190YWJfYmFyLmdpZik7IGNvbG9yOiByZ2IoMTA0LCAxMTYsIDEyOSk7IHdoaXRlLXNwYWNl -OiBub3dyYXA7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDlweDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVsLnRhYl9tZW51NyBsaS5vbiBhIHsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4OyBib3JkZXItdG9w -LXJpZ2h0LXJhZGl1czogMnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4OyBib3Jk -ZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7IG1hcmdpbi1yaWdodDogLTFweDsgcG9zaXRpb246 -IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzIsIDEyOSwgMTYyKSAhaW1wb3J0YW50 -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWwgIWltcG9ydGFudDsgYmFja2dy -b3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbCAhaW1wb3J0YW50OyB9Cgp1bC50YWJfbWVudTcg -bGk6Zmlyc3QtY2hpbGQgYSB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoK -dWwudGFiX21lbnU3IGxpLm9uICsgdWwudGFiX21lbnU3IGxpIGEgeyBiYWNrZ3JvdW5kOiBub25l -OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0 -OiBpbml0aWFsIGluaXRpYWw7IH0KCmRpdi52aXN1YWxfYXJlYSB7IGJvcmRlci1ib3R0b20td2lk -dGg6IDNweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6 -IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKZGl2LnZpc3VhbF9hcmVhICsgLmNhcmVlcl9saXN0IHsg -Ym9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQoKZGl2LnZpc3VhbF9hcmVhIGRpdi52aXN1YWxfdHh0 -IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9CgpkaXYudmlzdWFsX2FyZWEgc3Ryb25nIHsgZGlzcGxh -eTogYmxvY2s7IGZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy -aWFudDogbm9ybWFsOyBmb250LXNpemU6IDM1cHg7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQt -ZmFtaWx5OiAnTmFudW0gTXllb25nam8nOyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IGxldHRl -ci1zcGFjaW5nOiAtMnB4OyB9CgpkaXYudmlzdWFsX2FyZWEgc3BhbiB7IGRpc3BsYXk6IGlubGlu -ZS1ibG9jazsgbWFyZ2luLXRvcDogN3B4OyBwYWRkaW5nOiAwcHggN3B4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfdmlzdWFs -X3R4dC5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91 -bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYucHJfdmlzdWFsIHsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2JnX3By -X3Zpc3VhbDEuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5k -LXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnByX3Zpc3VhbF9iIHsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2Jn -X3ByX3Zpc3VhbDEuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LnByX3Zpc3VhbCBkaXYudmlz -dWFsX3R4dCB7IHBhZGRpbmctdG9wOiA2MHB4OyBoZWlnaHQ6IDEzNXB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfcHJfdmlz -dWFsMi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5wcl92aXN1YWxfYiBkaXYudmlzdWFsX3R4dC5i -IHsgcGFkZGluZy10b3A6IDQ1cHg7IGhlaWdodDogMTM1cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19wcl92aXN1YWwyLmdp -Zik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y -ZXBlYXQgbm8tcmVwZWF0OyB9CgoudGFiX21lbnUgKyBkbC5mbGV4dGltZV9saXN0IGR0OmZpcnN0 -LWNoaWxkIHsgcGFkZGluZy10b3A6IDBweDsgfQoKZGl2LmZsZXh0aW1lX3Zpc3VhbCB7IHBvc2l0 -aW9uOiByZWxhdGl2ZTsgfQoKZGl2LmZsZXh0aW1lX3Zpc3VhbCA+IGltZyB7IHdpZHRoOiAxMDAl -OyBoZWlnaHQ6IDEwMCU7IH0KCmRpdi5mbGV4dGltZV92aXN1YWwgZGl2LmJ0bl9nb01vdmUgeyBw -b3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNDBweDsgcmlnaHQ6IDUwcHg7IH0KCmRsLmZsZXh0 -aW1lX2xpc3QgeyB9CgpkbC5mbGV4dGltZV9saXN0IGR0IHsgZm9udC13ZWlnaHQ6IDYwMDsgcGFk -ZGluZzogMzBweCAwcHggMThweDsgZm9udC1zaXplOiAyNHB4OyBib3JkZXItdG9wLXdpZHRoOiAx -cHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjQwLCAy -NDAsIDI0MCk7IH0KCmRsLmZsZXh0aW1lX2xpc3QgZHQ6Zmlyc3QtY2hpbGQgeyBib3JkZXItdG9w -LXN0eWxlOiBub25lOyB9CgpkbC5mbGV4dGltZV9saXN0IGR0IHN0cm9uZy5ibHVlX3R4dCB7IGNv -bG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgcGFkZGluZy1ib3R0b206IDEwcHg7IH0KCmRsLmZsZXh0 -aW1lX2xpc3QgZGQgeyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IHBh -ZGRpbmctYm90dG9tOiA0MHB4OyB9CgpkbC5mbGV4dGltZV9saXN0IGRkIHAgeyBtYXJnaW4tdG9w -OiAyMHB4OyB9CgpkbC5mbGV4dGltZV9saXN0IGRkIHA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9w -OiAwcHg7IH0KCnVsLmxpc3RfZGVzYyA+IGxpIHsgZmxvYXQ6IGxlZnQ7IHdpZHRoOiA1MCU7IHBh -ZGRpbmctbGVmdDogMTNweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGJvcmRlci1sZWZ0LXdpZHRo -OiAxcHg7IGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigy -MTAsIDIxMCwgMjEwKTsgfQoKdWwubGlzdF9kZXNjID4gbGk6Zmlyc3QtY2hpbGQgeyB3aWR0aDog -NDguNSU7IHBhZGRpbmctbGVmdDogMHB4OyBib3JkZXItbGVmdC1zdHlsZTogbm9uZTsgfQoKdWwu -bGlzdF9kZXNjOjphZnRlciwgdWwubWFwX2luZm86OmFmdGVyIHsgY2xlYXI6IGJvdGg7IGNvbnRl -bnQ6ICcnOyBkaXNwbGF5OiBibG9jazsgfQoKdWwubWFwX2luZm8gPiBsaSB7IGZsb2F0OiBsZWZ0 -OyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoKdWwubWFwX2luZm8gPiBsaTpmaXJzdC1jaGlsZCB7 -IG1heC13aWR0aDogNTAwcHg7IG1pbi13aWR0aDogMzYwcHg7IHdpZHRoOiAxMDAlOyB9Cgp1bC5t -YXBfaW5mbyA+IGxpOmZpcnN0LWNoaWxkIGltZyB7IG1heC13aWR0aDogNDY5cHg7IG1pbi13aWR0 -aDogMzYwcHg7IHdpZHRoOiAxMDAlOyB9CgpkbC5xbmEgKyBkaXYucWEgeyBmb250LXNpemU6IDE1 -cHg7IH0KCnVsLmZsZXh0aW1lX2NvZXhJbmZvIHsgfQoKdWwuZmxleHRpbWVfY29leEluZm8gbGkg -eyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KCnVsLmZsZXh0aW1lX2NvZXhJbmZvIGxpID4gaDMgeyBj -b2xvcjogcmdiKDEzLCAxMjMsIDE5MSk7IH0KCnVsLmZsZXh0aW1lX2NvZXhJbmZvIGxpID4gcCwg -dWwuZmxleHRpbWVfY29leEluZm8gbGkgPiB1bCB7IGZvbnQtc2l6ZTogMTVweDsgfQoKdWwuZmxl -eHRpbWVfY29leEluZm8gbGkgPiBwLnBvc2lBLCB1bC5mbGV4dGltZV9jb2V4SW5mbyBsaSB1bC5w -b3NpQSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwLjdlbTsgbGVmdDogMy41ZW07IH0KCnVs -LmZsZXh0aW1lX2NvZXhJbmZvIGxpID4gdWwgeyBtYXJnaW46IC0xMHB4IDBweCAxOXB4OyB9Cgp1 -bC5mbGV4dGltZV9jb2V4SW5mbyBsaSB1bC5wb3NpQSB7IHRvcDogNjBweDsgbGVmdDogNTAwcHg7 -IH0KCnVsLmZsZXh0aW1lX2NvZXhJbmZvIGxpIHVsLmZsZXh0aW1lX3BhcnRuZXJfbGlzdDo6YWZ0 -ZXIgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9Cgp1bC5mbGV4 -dGltZV9jb2V4SW5mbyBsaSB1bC5mbGV4dGltZV9wYXJ0bmVyX2xpc3QgbGkgeyBmbG9hdDogbGVm -dDsgd2lkdGg6IDE3MHB4OyBtYXJnaW46IDBweCAyMnB4IDEwcHggMHB4OyB9Cgp1bC5mbGV4dGlt -ZV9jb2V4SW5mbyBsaSB1bC5tYXBfaW5mbyA+IGxpID4gdWwgeyBtYXJnaW4tdG9wOiAwcHg7IH0K -CnVsLmZsZXh0aW1lX2NvZXhJbmZvIHVsLnN1Yl9saXN0LCB1bC5mbGV4dGltZV9jb2V4SW5mbyBw -LnN1Yl9saXN0IHsgZm9udC1zaXplOiAxM3B4OyBtYXJnaW46IDVweCAwcHggMzBweDsgfQoKdWwu -ZmxleHRpbWVfY29leEluZm8gdWwuc3ViX2xpc3QgbGkgeyBtYXJnaW4tYm90dG9tOiAzcHg7IH0K -Ci5idG5fYXJlYS50YWJCdG4geyBtYXJnaW4tdG9wOiAwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0K -Ci5xYSAuYnRuX2Fycm93ID4gYSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCnVsLmhpc3RvcnlfcmVj -cnVpdCB7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJv -cmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKdWwuaGlzdG9yeV9yZWNydWl0 -IGxpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZzogNDBweCAyNXB4IDQwcHggMHB4OyBib3Jk -ZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNv -bG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCnVsLmhpc3RvcnlfcmVjcnVpdCBsaSBzcGFuLnll -YXIgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDE2MHB4OyBtYXJnaW4tdG9wOiAycHg7IHRleHQtYWxp -Z246IGNlbnRlcjsgfQoKdWwuaGlzdG9yeV9yZWNydWl0IGxpIGVtIHsgZmxvYXQ6IGxlZnQ7IHdp -ZHRoOiAxNjBweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGZvbnQtc2l6ZTogMThweDsgfQoKdWwu -aGlzdG9yeV9yZWNydWl0IGxpIGVtIHNwYW4ucG9pbnQgeyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5 -MSk7IH0KCnVsLmhpc3RvcnlfcmVjcnVpdCBsaSBwLCB1bC5oaXN0b3J5X3JlY3J1aXQgbGkgZGl2 -Lmdyb3VwIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZm9udC1zaXplOiAxNXB4OyB9Cgp1bC5oaXN0b3J5 -X3JlY3J1aXQgbGkgZGl2Lmdyb3VwIHVsIHsgbWFyZ2luLXRvcDogMjBweDsgfQoKdWwuaGlzdG9y -eV9yZWNydWl0IGxpIGRpdi5ncm91cCB1bCBsaSB7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4 -IDBweCAwcHggNnB4OyBjb2xvcjogcmdiKDE1OCwgMTAxLCAyMSk7IGZvbnQtc2l6ZTogMTRweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnVf -ZG90NC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA5cHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpwLnJlY3J1aXRfc2xvZ2FuIHsgcGFkZGluZzogMzBw -eDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0LCAx -MjMsIDE5Mik7IH0KCnAucmVjcnVpdF9zbG9nYW46OmFmdGVyIHsgY29udGVudDogJyc7IGRpc3Bs -YXk6IGJsb2NrOyBjbGVhcjogYm90aDsgfQoKcC5yZWNydWl0X3Nsb2dhbiBzdHJvbmcgeyBmbG9h -dDogbGVmdDsgd2lkdGg6IDQyJTsgcGFkZGluZy1yaWdodDogOCU7IGxldHRlci1zcGFjaW5nOiAt -MnB4OyBmb250LXNpemU6IDIycHg7IH0KCnAucmVjcnVpdF9zbG9nYW4gc3Bhbi5kZXNjIHsgb3Zl -cmZsb3c6IGhpZGRlbjsgd2lkdGg6IDUwJTsgZm9udC1zaXplOiAxNHB4OyB9Cgp1bC5zdXBwb3J0 -X2xpc3QgeyBtYXJnaW46IDEwcHggMHB4IDMwcHg7IH0KCnVsLnN1cHBvcnRfbGlzdCBsaSB7IG92 -ZXJmbG93OiBoaWRkZW47IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1z -dHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFk -ZGluZzogMzBweCAyMHB4IDMwcHggMTYwcHg7IH0KCnVsLnN1cHBvcnRfbGlzdCBsaS5zMSB7IGJh -Y2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVl -ci9iZ19zdXBwb3J0X2xpc3QuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDJweCAzMHB4OyBi -YWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuc3VwcG9ydF9saXN0 -IGxpLnMyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvY2FyZWVyL2JnX3N1cHBvcnRfbGlzdC5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0 -MnB4IC0xNDZweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCnVs -LnN1cHBvcnRfbGlzdCBsaS5zMyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNh -bXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19zdXBwb3J0X2xpc3QuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogNDJweCAtMzQxcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8t -cmVwZWF0OyB9Cgp1bC5zdXBwb3J0X2xpc3QgbGkuczQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfc3VwcG9ydF9saXN0Lmdp -Zik7IGJhY2tncm91bmQtcG9zaXRpb246IDQycHggLTQ5NnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuc3VwcG9ydF9saXN0IGxpIGVtIHsgZmxvYXQ6IGxl -ZnQ7IHdpZHRoOiAxNjBweDsgZm9udC1zaXplOiAxOHB4OyB9Cgp1bC5zdXBwb3J0X2xpc3QgbGkg -ZW0gc3Bhbi5wb2ludCB7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgfQoKdWwuc3VwcG9ydF9s -aXN0IGxpIHAgeyBvdmVyZmxvdzogaGlkZGVuOyBmb250LXNpemU6IDE1cHg7IH0KCnVsLnRyYWlu -aW5nX2xpc3QgeyBkaXNwbGF5OiB0YWJsZTsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXIt -dG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBi -b3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3Jk -ZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KCnVsLnRyYWluaW5nX2xpc3Qg -bGkgeyBkaXNwbGF5OiB0YWJsZS1jZWxsOyB3aWR0aDogMzMuMyU7IGZvbnQtc2l6ZTogMTVweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2Fy -ZWVyL2JnX2xpbmUyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDAlOyBiYWNrZ3JvdW5k -LXJlcGVhdDogbm8tcmVwZWF0IHJlcGVhdDsgfQoKdWwudHJhaW5pbmdfbGlzdCBsaTpmaXJzdC1j -aGlsZCB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5p -dGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwudHJhaW5pbmdf -bGlzdCBsaSBzdHJvbmcgeyBkaXNwbGF5OiBibG9jazsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsg -Ym9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNv -bGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQt -Y29sb3I6IHJnYigyNTIsIDI1MiwgMjUwKTsgcGFkZGluZzogMTBweCAwcHg7IHRleHQtYWxpZ246 -IGNlbnRlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1bC50cmFpbmluZ19saXN0IGxpOmZpcnN0LWNo -aWxkIHN0cm9uZyB7IGJvcmRlci1sZWZ0LXN0eWxlOiBub25lOyB9Cgp1bC50cmFpbmluZ19saXN0 -IGxpIGRpdi50eHQgeyBwYWRkaW5nOiAxM3B4IDEwcHg7IH0KCnVsLnRyYWluaW5nX2xpc3QgbGkg -ZGl2LnR4dCB1bCBsaSB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbm9uZTsgd2lkdGg6IGF1dG87 -IHBhZGRpbmctbGVmdDogN3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy9idV9kb3QyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDAlIDlw -eDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRsLnFuYSB7IG1h -cmdpbjogMTVweCAwcHggMjdweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBib3JkZXIt -Ym90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90 -dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGZvbnQtc2l6ZTogMTVweDsgfQoKZGwucW5h -IGR0IHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9y -ZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkbC5xbmEgZHQgYSB7IG92ZXJm -bG93OiBoaWRkZW47IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAyMHB4IDcwcHggMjBweCA0M3B4 -OyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYnRfdG9nZ2xl -X29mZi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OCUgNTAlOyBiYWNrZ3JvdW5kLXJlcGVh -dDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGwucW5hIGR0IHNwYW4uaW5uZXIgeyBkaXNwbGF5 -OiBibG9jazsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9p -bWFnZXMvY2FyZWVyL2JnX3FuYS5wbmcpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxOHB4IDIzcHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkbC5xbmEgZHQgYSBl -bSB7IG92ZXJmbG93OiBoaWRkZW47IH0KCmRsLnFuYSBkdC5vbiB7IHBvc2l0aW9uOiByZWxhdGl2 -ZTsgei1pbmRleDogMTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5j -by5rci9pbWFnZXMvYmdfYXJyb3czLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDI3cHggMTAw -JTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRsLnFuYSBkdC5v -biBhIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFn -ZXMvYnRfdG9nZ2xlX29uLmdpZik7IH0KCmRsLnFuYSBkdC5vbiArIGRkIHsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbi10b3A6IC0xcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1z -dHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQoKZGwu -cW5hIGRkIHsgZGlzcGxheTogbm9uZTsgcGFkZGluZzogMjNweCAyMHB4IDIzcHggNDVweDsgYmFj -a2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVy -L2JnX3FuYS5wbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAyNTIsIDI1MCk7IGJhY2tn -cm91bmQtcG9zaXRpb246IDE5cHggLTQ1OXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 -IG5vLXJlcGVhdDsgfQoKZGwucW5hIGRkIHNwYW4ucmVkX3R4dCB7IGNvbG9yOiByZWQ7IH0KCnVs -LnNjc2FfbGlzdCB7IG1hcmdpbi10b3A6IDQwcHg7IH0KCnVsLnNjc2FfbGlzdDo6YWZ0ZXIgeyBj -b250ZW50OiAnJzsgZGlzcGxheTogYmxvY2s7IGNsZWFyOiBib3RoOyB9Cgp1bC5zY3NhX2xpc3Qg -bGkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDIwJTsgdGV4dC1hbGlnbjogY2VudGVyOyB9Cgp1bC5z -Y3NhX2xpc3QgbGkgc3Bhbi50aHVtYiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAx -MHB4OyB9Cgp1bC5zY3NhX2xpc3QgbGkgcCB7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHJnYigx -MDQsIDExNiwgMTI5KTsgfQoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0 -cHgpIGFuZCAobWluLXdpZHRoOiA3NjhweCkgeyAKICAucHZpZXcgeyBkaXNwbGF5OiBub25lOyB9 -CiAgLnR2aWV3IHsgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH0KICB0YWJsZS5u -b3RpY2VfbGlzdCBjb2wudGJsb2NrIHsgZGlzcGxheTogdGFibGUtY29sdW1uOyB9CiAgdGFibGUu -bm90aWNlX2xpc3QgLnRibG9jayB7IGRpc3BsYXk6IHRhYmxlLWNlbGw7IH0KICB0YWJsZS5ub3Rp -Y2VfbGlzdCAudG5vbmUgeyBkaXNwbGF5OiBub25lOyB9CiAgdGFibGUubm90aWNlX2xpc3QgY29s -LnRibG9jaywgdGFibGUubm90aWNlX2xpc3QgLnRibG9jayB7IH0KICB0YWJsZS5ub3RpY2VfbGlz -dCB0ZC50YmxvY2sgeyB9CiAgdGFibGUubm90aWNlX2xpc3QgY29sLnRub25lIHsgfQogIHRhYmxl -Lm5vdGljZV9saXN0IC50bm9uZSB7IH0KICAubW92aWVfbGlzdCBsaSB7IGhlaWdodDogMjAwcHg7 -IH0KICAubW92aWVfbGlzdCBsaS5vbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3 -LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Fycm93NS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiA1MCUgMjA3cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAg -Lm1vdmllX2xpc3QgbGkgLmlubmVyIHsgd2lkdGg6IDE2OHB4OyB9CiAgLm1vdmllX2xpc3QgbGkg -LnRodW1iIGltZyB7IHdpZHRoOiAxNjhweDsgaGVpZ2h0OiA5NXB4OyB9CiAgLm1vdmllX2xpc3Qg -bGkgLmlubmVyOmhvdmVyIC50aHVtYiwgLm1vdmllX2xpc3QgbGkub24gLnRodW1iIHsgd2lkdGg6 -IDE2MHB4OyBoZWlnaHQ6IDg3cHg7IGJvcmRlcjogNHB4IHNvbGlkIHJnYigxMywgMTIzLCAxOTEp -OyB9CiAgLm1vdmllX2xpc3QgbGkgLmlubmVyOmhvdmVyIC50aHVtYiBpbWcsIC5tb3ZpZV9saXN0 -IGxpLm9uIC50aHVtYiBpbWcgeyBtYXJnaW46IC00cHggMHB4IDBweCAtNHB4OyB9CiAgLm51X2xp -c3QgbGkgLmxpc3RfY29udCAuY29udCB7IGhlaWdodDogNTVweDsgfQogIC50aHVtYl90eXBlIHsg -cGFkZGluZzogMjBweCAwcHg7IHdpZHRoOiAxMDAlOyBib3JkZXItdG9wLXdpZHRoOiAycHg7IGJv -cmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMTQ1LCAyMjAp -OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi -b3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KICAudGh1bWJfdHlwZSBs -aSB7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC50aHVtYl90eXBlIGxpIGltZy50aHVtYiB7IHdp -ZHRoOiAxMzJweDsgaGVpZ2h0OiA4OHB4OyB9CiAgLnRodW1iX3R5cGUgbGkgYS5saW5rX3NlY3Rp -b24geyBtYXJnaW46IDBweCBhdXRvOyB3aWR0aDogMTMycHg7IHRleHQtYWxpZ246IGxlZnQ7IH0K -ICAudGh1bWJfdHlwZSBsaSAubGlzdF9jb250IHsgcGFkZGluZy1ib3R0b206IDEwcHg7IH0KICAu -dGh1bWJfdHlwZSBsaSAubGlzdF9jb250IC50aXQgeyBtYXJnaW4tYm90dG9tOiAwcHg7IH0KICAu -dGh1bWJfdHlwZSBsaSAubGlzdF9jb250IC5jb250LCAudGh1bWJfdHlwZSBsaSAud3JpdGluZyB7 -IGRpc3BsYXk6IG5vbmU7IH0KICAubW92aWVfbGlzdCAubW92aWVfbGF5ZXIgeyB3aWR0aDogMTAw -JTsgcGFkZGluZzogMHB4OyB9CiAgLm1vdmllX2xheWVyaW4geyBwYWRkaW5nOiA1MHB4IDMwcHgg -MjdweDsgfQogIC5zZWFyY2hfcmVzdWx0IGRsIGRkIC5tb3ZpZV9sYXllciAubW92aWVfbGF5ZXJp -biB7IHBhZGRpbmc6IDEwcHggMHB4IDBweDsgfQogIC5tb3ZpZV9sYXllciB7IHBhZGRpbmc6IDUw -cHggMzBweCAyN3B4OyB9CiAgLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLmxlZnRhcmVhLCAubW92 -aWVfbGF5ZXIgLm1vdmllYXJlYSAucmlnaHRhcmVhIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAl -OyB9CiAgLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLnJpZ2h0YXJlYSB7IG1hcmdpbi10b3A6IDEw -cHg7IH0KICAubW92aWVfbGF5ZXIgLm1vdmllYXJlYSAuY2FwdGlvbiB7IG1hcmdpbi10b3A6IDBw -eDsgfQogIC5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5jYXB0aW9uX3R4dCB7IGhlaWdodDogMTI1 -cHg7IH0KICAubmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSB7IGhlaWdodDogMTY1cHg7IH0KICAu -bmV3c190b3BhcmVhIC5yb2xsaW5nYXJlYSBsaSAudHh0IHsgZGlzcGxheTogbm9uZTsgfQogIC5u -dV9tb250aGx5IHsgfQogIC5udV9tb250aGx5IC5jb250cm9sbGVyLnByZXYgeyB0b3A6IDM4cHg7 -IH0KICAubnVfbW9udGhseSAuY29udHJvbGxlci5uZXh0IHsgdG9wOiAzOHB4OyB9CiAgLm51X21v -bnRobHkgdWwgeyBoZWlnaHQ6IDczcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3 -LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X2xpbmUuZ2lmKTsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMHB4IDUwcHg7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8tcmVwZWF0OyB9 -CiAgLm51X21vbnRobHkgbGkgYS5pdGVtIHsgbWFyZ2luLXRvcDogMXB4OyBoZWlnaHQ6IDczcHg7 -IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fi -b3V0L2JnX251X21vbnRobHkucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDM2cHg7IGJh -Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLm51X21vbnRobHkgbGkg -YS5vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAtODFweDsgfQogIC5udV9tb250aGx5IGxp -IGEuaXRlbSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IH0KICAubW9udGhseV9jb250IC50aHVtYiB7 -IGZsb2F0OiBsZWZ0OyBtYXJnaW4tcmlnaHQ6IDBweDsgd2lkdGg6IDUwJTsgfQogIC5tb250aGx5 -X2NvbnQgLnRodW1iIGltZyB7IHdpZHRoOiAxMDAlOyB9CiAgLm1vbnRobHlfY29udCAuY29udCB7 -IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHg7IHdpZHRoOiA0OS45JTsgfQogIC5tb250aGx5X2Nv -bnQgLmNvbnQgZHQgeyBtYXJnaW46IDIwcHggMjBweCA3cHggMzBweDsgaGVpZ2h0OiAzMHB4OyBv -dmVyZmxvdzogaGlkZGVuOyB9CiAgLm1vbnRobHlfY29udCAuY29udCBkdCAuZGF0ZSB7IHBvc2l0 -aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IHJpZ2h0OiAwcHg7IGZvbnQtc2l6ZTogMTFweDsgY29s -b3I6IHJnYig0NSwgMTg0LCAyMDkpOyB9CiAgLm1vbnRobHlfY29udCAuY29udCBkZC50eHQgeyBk -aXNwbGF5OiBub25lOyB9CiAgLm1vbnRobHlfY29udCAuY29udCBkZC5idXR0b24geyBtYXJnaW46 -IDEycHggMjBweCAwcHggMzBweDsgfQogIC5tb250aGx5X2NvbnQgLmNvbnQgZGQubnVfYmFubmVy -IHsgcG9zaXRpb246IHN0YXRpYzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMjBweCAwcHggMHB4 -IDMwcHg7IH0KICAubW9udGhseV9jb250IC5jb250IGRkLm51X2Jhbm5lciBhIHsgd2lkdGg6IDMw -MnB4OyBoZWlnaHQ6IDQycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2J0X251X2Jhbm5lcl90LmpwZyk7IGJhY2tncm91bmQtcG9z -aXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1y -ZXBlYXQ7IH0KICBkaXYuYWJvdXRfY29udGFpbmVyIGRpdi5jb250X2luZm8geyB3aWR0aDogMTAw -JTsgfQogIGRpdi5hYm91dF9sZWZ0YXJlYSB7IHdpZHRoOiAzMyU7IH0KICBkaXYuYWJvdXRfbGVm -dGFyZWEgZGl2LmluYXJlYV9tIHsgbWFyZ2luOiAwcHggNHB4IDBweCA4cHg7IH0KICBkaXYuYWJv -dXRfbWlkYXJlYSB7IHdpZHRoOiAzMyU7IH0KICBkaXYuYWJvdXRfbWlkYXJlYSBkaXYuaW5hcmVh -X20geyBtYXJnaW46IDBweCA4cHggMHB4IDRweDsgfQogIGRpdi5hYm91dF9taWRhcmVhIHsgbWFy -Z2luOiAwcHg7IH0KICBkaXYuYWJvdXRfcmlnaHRhcmVhIHsgd2lkdGg6IDMzJTsgfQogIGRpdi5h -Ym91dF9zZWN0aW9uMiB7IG1hcmdpbjogMHB4IDIwcHg7IH0KICBkaXYuYWJvdXRfc2VjdGlvbjIg -aW1nLncxMDAgeyB3aWR0aDogMTAwJTsgfQogIGRpdi5hYm91dF90b3BhcmVhMiBzcGFuLnRpdF9h -cmVhIHsgdG9wOiAxMHB4OyB9CiAgZGl2LmFib3V0X3RvcGFyZWEyIGRpdi5yZW1vdGVfYXJlYSB7 -IGJvdHRvbTogMTBweDsgfQogIGRpdi5hYm91dF9taWRhcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bh -bi50aXRfYXJlYSBzcGFuLnR4dCB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYuYWJvdXRfdG9wYXJl -YTIgc3Bhbi50aXRfYXJlYSB7IGxlZnQ6IDIwcHg7IH0KICBkaXYuYWJvdXRfdG9wYXJlYTIgZGl2 -LnJlbW90ZV9hcmVhIHsgbGVmdDogMjBweDsgfQogIGRpdi5hYm91dF9taWRhcmVhMiBkaXYucmln -aHRfYXJlYTIgc3Bhbi50aXRfYXJlYSB7IHRvcDogMTBweDsgbGVmdDogMTBweDsgfQogIGRpdi5h -Ym91dF9idG1hcmVhMiBkaXYubGVmdF9hcmVhMiBzcGFuLnRpdF9hcmVhIHsgdG9wOiAxMHB4OyBs -ZWZ0OiAxMHB4OyB9CiAgZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5sZWZ0X2FyZWEyIHNwYW4udGl0 -X2FyZWEgc3Bhbi50aXQgeyBtYXJnaW4tYm90dG9tOiAzcHg7IH0KICBkaXYuYWJvdXRfYnRtYXJl -YTIgZGl2LmxlZnRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnN1YiB7IG1hcmdpbi1ib3R0b206 -IDNweDsgfQogIGRpdi5hYm91dF9idG1hcmVhMiBkaXYuY2VuX2FyZWEyIGRpdi5jZW5faW5jb250 -IHNwYW4udGl0X2FyZWEgeyB0b3A6IDEwcHg7IGxlZnQ6IDEwcHg7IH0KICBkaXYuYWJvdXRfYnRt -YXJlYTIgZGl2LmNlbl9hcmVhMiBkaXYuY2VuX2luY29udCBzcGFuLnRpdF9hcmVhIHNwYW4udGl0 -IHsgbWFyZ2luLWJvdHRvbTogM3B4OyB9CiAgZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5jZW5fYXJl -YTIgZGl2LmNlbl9pbmNvbnQgc3Bhbi50aXRfYXJlYSBzcGFuLnN1YiB7IG1hcmdpbi1ib3R0b206 -IDBweDsgfQogIGRpdi5hYm91dF9idG1hcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJl -YSB7IHRvcDogMTBweDsgbGVmdDogMTBweDsgfQogIGRpdi5hYm91dF9idG1hcmVhMiBkaXYucmln -aHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnRpdCB7IG1hcmdpbi1ib3R0b206IDNweDsgfQog -IGRpdi5hYm91dF9idG1hcmVhMiBkaXYucmlnaHRfYXJlYTIgc3Bhbi50aXRfYXJlYSBzcGFuLnN1 -YiB7IG1hcmdpbi1ib3R0b206IDBweDsgfQogIGRpdi5hYm91dF9idG1hcmVhMiBkaXYubGVmdF9h -cmVhMiB7IHdpZHRoOiA1OS4zNiU7IH0KICBkaXYuYWJvdXRfYnRtYXJlYTIgZGl2LmNlbl9hcmVh -MiB7IHdpZHRoOiAzOS4xMyU7IH0KICAuaW50cm9fc2VjdGlvbiBoMyB7IGZvbnQtc2l6ZTogMjBw -eDsgfQogIC5pbnRyb19zZWN0aW9uIC50dmlldyB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgLmludHJv -X3NlY3Rpb24gLm1ub25lIHsgZGlzcGxheTogbm9uZTsgfQogIC5pbnRyb19tb3ZpZSBsaSAubG0g -eyBkaXNwbGF5OiBibG9jazsgfQogIC5pbnRyb19tb3ZpZSAuZnJhbWUgLm1vdmllX2xheWVyIHsg -fQogIC5pbnRyb19tb3ZpZSAuZnJhbWUgLm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLmxlZnRhcmVh -IHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyB9CiAgLmludHJvX21vdmllIC5mcmFtZSAubW92 -aWVfbGF5ZXIgLm1vdmllYXJlYSAucmlnaHRhcmVhIHsgZmxvYXQ6IG5vbmU7IG1hcmdpbi10b3A6 -IDIwcHg7IHdpZHRoOiAxMDAlOyB9CiAgLmludHJvX21vdmllIC5mcmFtZSAubW92aWVfbGF5ZXIg -Lm1vdmllYXJlYSAuY2FwdGlvbl90eHQgeyBoZWlnaHQ6IDkwcHg7IH0KICBkaXYuYmdfcHJlc2lk -ZW50X2EgeyBtYXJnaW4tdG9wOiAtODBweDsgaGVpZ2h0OiAzMjBweDsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvbm9jYWNoZS9hYm91dC9iZ19w -cmVzaWRlbnRfYV90LmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAxMDAlOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5iZ19wcmVzaWRlbnRfYSAu -aW1nIHsgcmlnaHQ6IDBweDsgfQogIGRpdi5iZ19wcmVzaWRlbnRfYSBwLnRpdF9kZXMgeyBkaXNw -bGF5OiBub25lOyB9CiAgZGl2LmJnX3ByZXNpZGVudF9hIHNwYW4udGl0X2RlczIgeyBkaXNwbGF5 -OiBibG9jazsgbWFyZ2luOiAxMHB4IDBweCAwcHg7IH0KICAucHJlc2lkZW50X2FyZWEgZGwgeyBw -YWRkaW5nLWxlZnQ6IDI4MHB4OyB9CiAgZGl2LmJnX3ByZXNpZGVudF9iIHsgbWFyZ2luLXRvcDog -LTgwcHg7IGhlaWdodDogMzIwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNh -bXN1bmcuY28ua3IvaW1hZ2VzL25vY2FjaGUvYWJvdXQvYmdfcHJlc2lkZW50X2JfdC5naWYpOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmJnX3ByZXNpZGVudF9iIC5wcmVzaWRlbnRfc2Ny -b2xsaW5nIC5wcmVzaWRlbnRfc2FpZCB7IG1hcmdpbi10b3A6IDE1cHg7IGhlaWdodDogMTYwcHg7 -IH0KICBkaXYuYmdfcHJlc2lkZW50X2IgLnByZXNpZGVudF9zY3JvbGxpbmcgLnByZXNpZGVudF9z -YWlkIGxpIHsgaGVpZ2h0OiAxNjBweDsgfQogIGRpdi5iZ19wcmVzaWRlbnRfYiAucHJlc2lkZW50 -X3Njcm9sbGluZyAucHJlc2lkZW50X3NhaWQgbGkgc3BhbiB7IG1hcmdpbi10b3A6IDEwcHg7IH0K -ICAubmV3X21hbmFnZV9ib3ggeyBwYWRkaW5nOiA0NXB4IDMwcHg7IH0KICAubmV3X21hbmFnZV9i -b3ggbGkgeyB9CiAgLm5ld19tYW5hZ2VfYm94IGxpIHAgeyBwYWRkaW5nOiAwcHggMHB4IDBweCAx -NzVweDsgfQogIC5uZXdfbWFuYWdlX2JveCBsaSBzdHJvbmcgeyBtYXJnaW4tYm90dG9tOiA1cHg7 -IGxpbmUtaGVpZ2h0OiAxLjE7IH0KICAubmV3X21hbmFnZV9ib3ggbGkgLmxtIHsgZGlzcGxheTog -YmxvY2s7IH0KICAubmV3X21hbmFnZV9ib3ggbGkubDA2IHAgeyBwYWRkaW5nLXRvcDogMTBweDsg -fQogIC5uZXdfbWFuYWdlMiAuYm94X3NlY3Rpb24geyBtYXJnaW4tdG9wOiA0MHB4OyB9CiAgLm5l -d19tYW5hZ2UyIC5ib3hfc2VjdGlvbiBpbWcgeyB3aWR0aDogMTAwJTsgfQogIC5uZXdfbWFuYWdl -MiAubGVmdGFyZWEgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDQ3JTsgfQogIC5uZXdfbWFuYWdlMiAu -cmlnaHRhcmVhIHsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNDclOyB9CiAgLnJ1bGVfbGlzdCB1bCBs -aSB7IGZsb2F0OiBub25lOyBwYWRkaW5nOiAwcHggMHB4IDQwcHg7IHdpZHRoOiAxMDAlOyB9CiAg -LnJ1bGVfbGlzdCB1bCBsaSBzdHJvbmcgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTog -MTBweDsgZm9udC1zaXplOiAxN3B4OyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQogIGRpdi5wZXJm -b3JtYW5jZV9jb250ZW50cyB7IHdpZHRoOiA3NyU7IHRvcDogMjBweCAhaW1wb3J0YW50OyB9CiAg -ZGl2LmJyYW5kX3ZhbHVlIGgzIHsgbWFyZ2luLWJvdHRvbTogMjVweDsgfQogIGRpdi5icmFuZF92 -YWx1ZSBoMyBpbWcgeyB3aWR0aDogMTQ0cHg7IGhlaWdodDogODRweDsgfQogIGRpdi5icmFuZF92 -YWx1ZSBwIGltZyB7IHdpZHRoOiAyMDZweDsgaGVpZ2h0OiAxNDhweDsgfQogIGRpdi5icmFuZF92 -YWx1ZSBwIHNwYW4udHh0IHsgZm9udC1zaXplOiAxNHB4OyB9CiAgdWwudGFiX21lbnUyLCB1bC50 -YWJfbWVudTMsIHVsLnRhYl9tZW51NCwgdWwudGFiX21lbnU1IHsgaGVpZ2h0OiBhdXRvICFpbXBv -cnRhbnQ7IH0KICB1bC50YWJfbWVudTIgbGkgYSwgdWwudGFiX21lbnUzIGxpIGEgeyBwYWRkaW5n -OiAxMXB4IDBweDsgfQogIHVsLnRhYl9tZW51NC50eXBlMiBsaSBhIHsgbGV0dGVyLXNwYWNpbmc6 -IC0ycHg7IH0KICB1bC5pZGVhX2NvbnRsaXN0IHsgbWFyZ2luLWxlZnQ6IDBweDsgfQogIHVsLmlk -ZWFfY29udGxpc3QgbGkgaW1nLmltZyB7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgfQog -IHVsLmlkZWFfY29udGxpc3QgbGkuZmlyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93 -d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfaWRlYV9hcnJvd190LnBuZyk7IGJhY2tn -cm91bmQtcG9zaXRpb246IDkzJSAzMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8t -cmVwZWF0OyB9CiAgdWwuaWRlYV9jb250bGlzdCBsaS5zZWMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9hYm91dC9iZ19pZGVhX2Fycm93Ml90 -LnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IDkzJSAzMCU7IGJhY2tncm91bmQtcmVwZWF0OiBu -by1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgZGl2LmlkZWFfY29udGFyZWEgc3Bhbi50aXQgeyB3aWR0 -aDogNDAlOyB9CiAgdWwuaWRlYV9jb250bGlzdCBsaSBzcGFuLnRpdCB7IHdpZHRoOiAxOTBweDsg -fQogIHVsLnR4dF9saXN0IHsgd2lkdGg6IDE5MHB4OyB9CiAgZGl2LmNhcmVlcl9tYWluIHsgd2lk -dGg6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQogIHVsLnNlYXJjaF9saXN0IGxpLmZvdXIg -eyBkaXNwbGF5OiBub25lOyB9CiAgLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgeyBwYWRk -aW5nLWxlZnQ6IDBweDsgd2lkdGg6IDQ1LjklOyBoZWlnaHQ6IGF1dG87IH0KICAuZmllbGRfc2Vj -dGlvbiAuZmllbGRfbGlzdCBsaTpmaXJzdC1jaGlsZCB7IG1hcmdpbi1yaWdodDogOCU7IH0KICAu -ZmllbGRfc2VjdGlvbiAuZmllbGRfbGlzdCBsaSAuZmllbGRfdGl0IHsgcG9zaXRpb246IHJlbGF0 -aXZlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBwYWRkaW5nLWxlZnQ6IDYwcHg7IHdpZHRoOiBhdXRv -OyBoZWlnaHQ6IDUwcHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KICAuZmllbGRfc2VjdGlvbiAuZmll -bGRfbGlzdCBsaSAuZmllbGQgeyBtYXJnaW46IDBweDsgZm9udC1zaXplOiAxNnB4OyBtaW4taGVp -Z2h0OiAyM3B4OyB9CiAgLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgLmZpZWxkX3RpdCAu -bGlzdF9ubyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtOHB4OyBsZWZ0OiAwcHg7IGZvbnQt -c2l6ZTogNDVweDsgfQogIC5maWVsZF9zZWN0aW9uIC5maWVsZF9saXN0IGxpIGltZyB7IGRpc3Bs -YXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgfQogIC5maWVsZF9zZWN0aW9uIC5maWVsZF9saXN0IGxp -IHN0cm9uZyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDE1cHggMHB4IDEwcHg7IGZvbnQtc2l6 -ZTogMThweDsgfQogIGRpdi5jb21wYW55X3Zpc3VhbCB7IH0KICBkaXYuY29tcGFueV92aXN1YWwg -ZGl2LnZpc3VhbF90eHQgeyB9CiAgLmNvbXBhbnlfYm94IGR0IHsgbWFyZ2luOiAwcHggMHB4IDEw -cHg7IH0KICAuY2FyZWVyX2xpc3QgbGkgYS5saW5rX3NlY3Rpb24geyBwYWRkaW5nLWxlZnQ6IDE0 -MHB4OyBoZWlnaHQ6IDgwcHg7IH0KICAuY2FyZWVyX2xpc3QgbGkgaW1nLnRodW1iIHsgd2lkdGg6 -IDEyMHB4OyBoZWlnaHQ6IDgwcHg7IH0KICAuY2FyZWVyX2xpc3QgbGkgLnRpdCB7IGhlaWdodDog -NDhweDsgZm9udC1zaXplOiAxNXB4OyB9CiAgLmNhcmVlcl9saXN0IGxpIC50aXQgc3BhbiB7IG1h -cmdpbi10b3A6IDBweDsgfQogIC5zYW1zdW5naW5fYm94IC5zYW1zdW5naW4gZHQgeyBtYXJnaW4t -Ym90dG9tOiA1cHg7IH0KICBwLmVsZWN0cm9uX3Nsb2dhbiB7IHBhZGRpbmctYm90dG9tOiA2MHB4 -OyB9CiAgcC5lbGVjdHJvbl9zbG9nYW4gc3Ryb25nLnRpdCB7IHBhZGRpbmc6IDBweCAwcHggMjBw -eDsgfQogIHAuZWxlY3Ryb25fc2xvZ2FuIGEuYnRuX3RvdGFsIHsgcG9zaXRpb246IHN0YXRpYzsg -fQogIHVsLmxpc3RfdHlwZTIgbGkgeyBmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7IGhlaWdodDog -YXV0bzsgcGFkZGluZy1yaWdodDogMHB4OyB9CiAgdWwubGlzdF90eXBlMiBsaSBwLmV4cGxhaW4g -c3Ryb25nLnRpdCB7IG1hcmdpbjogMzBweCAwcHggMTVweDsgfQogIHVsLmxpc3RfdHlwZTIgbGkg -cC5leHBsYWluIHNwYW4udHh0IHsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQogIHVsLmxpc3RfdHlw -ZTIgbGkgcC5leHBsYWluIHNwYW4uYnRuX2Fycm93X29wZW4sIHVsLmxpc3RfdHlwZTIgbGkgcC5l -eHBsYWluIHNwYW4uYnRuX2Fycm93X2Nsb3NlIHsgYm90dG9tOiA2MHB4OyB9CiAgZGl2LnNsb2dh -bl9pbm5lciBwLnR4dCB7IHBhZGRpbmc6IDBweCAwcHggMHB4IDMzMHB4OyB9CiAgZGl2LnNsb2dh -bl9pbm5lciBwLnNwb3J0c190eHQgeyBwYWRkaW5nLXRvcDogMHB4OyB9CiAgZGl2LmxheV9kZXRh -aWwgeyBwb3NpdGlvbjogc3RhdGljOyB9CiAgZGl2LmxheV9kZXRhaWwgZGl2LnRpdCB7IHdpZHRo -OiAxMDAlOyBtYXJnaW46IDBweCAwcHggMzBweDsgfQogIGRpdi5sYXlfZGV0YWlsIGRpdi5yZXBv -cnRfYXJlYSB7IHdpZHRoOiAzOSU7IG1hcmdpbjogMHB4OyB9CiAgZGl2LmxheV9kZXRhaWwgZGl2 -LnJlcG9ydF9hcmVhIHVsLmRlc2MgeyBtYXJnaW4tdG9wOiAtMTBweDsgcGFkZGluZy10b3A6IDBw -eDsgfQogIGRpdi5sYXlfZGV0YWlsIGRpdi5yZXBvcnRfYXJlYSB1bC5kZXNjIGxpIHsgZm9udC1z -aXplOiAxM3B4OyB9CiAgZGl2LmxheV9kZXRhaWwgZGl2LnJlcG9ydF9hcmVhIHVsLmRlc2MgbGkg -c3Bhbi50aXQgeyB3aWR0aDogODJweDsgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9CiAgZGl2LmxheV9k -ZXRhaWwgZGl2LmdhbGxlcnkgeyBmbG9hdDogcmlnaHQ7IHdpZHRoOiA0MDBweDsgbWFyZ2luLXRv -cDogMHB4OyB9CiAgdWwuYm94X3NlYXJjaCBsaSBzZWxlY3QgeyB3aWR0aDogMTY4cHg7IH0KICBk -bC50YWxuZXRfbGlzdCB7IHBhZGRpbmctbGVmdDogMjAwcHg7IH0KICBkbC50YWxuZXRfbGlzdC5i -IHsgcGFkZGluZy1sZWZ0OiAyMDBweDsgfQogIGRsLnRhbG5ldF9saXN0LmQgeyBwYWRkaW5nLWxl -ZnQ6IDIwMHB4OyB9CiAgZGwudGFsbmV0X2xpc3QgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0 -cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfdGFsZW50X2EuanBnKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogNDBweCA0NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0 -IG5vLXJlcGVhdDsgfQogIGRsLnRhbG5ldF9saXN0LmIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfdGFsZW50X2IuanBnKTsg -YmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCA0NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVw -ZWF0IG5vLXJlcGVhdDsgfQogIGRsLnRhbG5ldF9saXN0LmQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfdGFsZW50X2MuanBn -KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCA0NXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5yZWNydWl0X3N0ZXAgdWwgZGwgZGQgZW0geyBkaXNw -bGF5OiBibG9jazsgbWFyZ2luOiAwcHg7IH0KICBkaXYucmVjcnVpdF9zdGVwIHVsIGRsIGRkIGJy -IHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5wcl92aXN1YWwgeyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9jYXJlZXIvYmdfcHJfdmlzdWFsMS5n -aWYpOyB9CiAgZGl2LnByX3Zpc3VhbCBkaXYudmlzdWFsX3R4dCB7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2NhcmVlci9iZ19wcl92aXN1YWwy -LmdpZik7IH0KICB1bC50cmFpbmluZ19saXN0IGxpIHsgfQogIHVsLnNjc2FfbGlzdCBsaSBzcGFu -LnRodW1iIGltZyB7IHdpZHRoOiA4MnB4OyBoZWlnaHQ6IDgycHg7IH0KICB1bC5saXN0X2Rlc2Mg -PiBsaSB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLWxlZnQ6IDBweDsgbGV0dGVyLXNwYWNpbmc6IC0x -cHg7IGJvcmRlcjogbm9uZTsgfQogIHVsLmxpc3RfZGVzYyA+IGxpOmZpcnN0LWNoaWxkIHsgd2lk -dGg6IDEwMCU7IH0KfQoKQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkg -eyAKICAudGJsb2NrIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi52aWV3X2luZm8gaW1nIHsgd2lk -dGg6IDEwMCU7IH0KICAudG9wYXJlYV9pbiAuc3ViX3R4dCB7IG1hcmdpbi10b3A6IDEwcHg7IH0K -ICAucHZpZXcgeyBkaXNwbGF5OiBub25lOyB9CiAgLm12aWV3IHsgZGlzcGxheTogaW5saW5lLWJs -b2NrOyB9CiAgLnJvbGxpbmdfY3RybCB7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC5yb2xsaW5n -X2N0cmwgb2wgeyBmbG9hdDogbm9uZTsgbWFyZ2luOiAwcHggYXV0bzsgZGlzcGxheTogYmxvY2s7 -IHdpZHRoOiA4MHB4OyB9CiAgLnJvbGxpbmdfY3RybCAuY3RybF9idCB7IGRpc3BsYXk6IG5vbmU7 -IH0KICB1bC5iYXJfbGlzdCBsaSB7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA4cHg7IH0KICBk -aXYuYmdfcHJlc2lkZW50X2EgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi10b3A6IDBweDsg -cGFkZGluZzogMHB4OyBoZWlnaHQ6IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQogIGRpdi5iZ19wcmVzaWRlbnRfYSBwLmltZ19kZXMubXZpZXcgeyBkaXNwbGF5OiBi -bG9jazsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDEycHggMHB4OyBmb250LXNpemU6IDE4cHg7IH0K -ICBkaXYuYmdfcHJlc2lkZW50X2EgcC50aXRfZGVzIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5i -Z19wcmVzaWRlbnRfYSBzcGFuLnRpdF9kZXMyIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB2ZXJ0 -aWNhbC1hbGlnbjogYm90dG9tOyBtYXJnaW46IDEwcHggMHB4IDBweDsgbGV0dGVyLXNwYWNpbmc6 -IC0xcHg7IH0KICBkaXYuYmdfcHJlc2lkZW50X2EgcC5pbWcgeyBwb3NpdGlvbjogc3RhdGljOyB3 -aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgZGl2LmJnX3ByZXNpZGVudF9hIHAu -aW1nIGltZyB7IHdpZHRoOiAxMDAlOyB9CiAgcC5wcmVzaWRlbnRfdGl0X2FyZWEgeyBwYWRkaW5n -OiAxMHB4IDBweCA1MHB4OyB9CiAgcC5wcmVzaWRlbnRfdGl0X2FyZWEgc3BhbiB7IGZvbnQtc2l6 -ZTogMTVweDsgfQogIC5wcmVzaWRlbnRfYXJlYSB7IHBhZGRpbmctbGVmdDogMHB4OyB9CiAgLnBy -ZXNpZGVudF9hcmVhIGRsIHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweDsgfQogIC5wcmVzaWRl -bnRfYXJlYSBkdCB7IG1hcmdpbjogMjBweCAwcHggMTVweDsgcGFkZGluZzogMHB4OyBib3JkZXI6 -IG5vbmU7IGZvbnQtc2l6ZTogMThweDsgfQogIC5wcmVzaWRlbnRfYXJlYSBkdDpmaXJzdC1jaGls -ZCB7IG1hcmdpbi10b3A6IDBweDsgcGFkZGluZzogMHB4OyB9CiAgLnByZXNpZGVudF9hcmVhIGRk -IHsgZm9udC1zaXplOiAxM3B4OyB9CiAgLnByZXNpZGVudF9hcmVhIGRkIHAgeyBtYXJnaW4tdG9w -OiAxMnB4OyB9CiAgLnByZXNpZGVudF9hcmVhIGRkLnBob3RvIHsgZGlzcGxheTogYmxvY2s7IG1h -cmdpbi10b3A6IDE1cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIGRpdi5iZ19wcmVzaWRlbnRf -YiB7IG1hcmdpbi10b3A6IDBweDsgcGFkZGluZzogMHB4OyBoZWlnaHQ6IGF1dG87IGJhY2tncm91 -bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIGRpdi5iZ19wcmVzaWRlbnRfYiAuaW1nIHsg -cG9zaXRpb246IHN0YXRpYzsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIGRp -di5iZ19wcmVzaWRlbnRfYiAuaW1nIGltZyB7IG1hcmdpbi10b3A6IDE1cHg7IHdpZHRoOiAxMDAl -OyB9CiAgZGl2LmJnX3ByZXNpZGVudF9iIC5wcmVzaWRlbnRfc2Nyb2xsaW5nIHsgd2lkdGg6IDEw -MCU7IH0KICBkaXYuYmdfcHJlc2lkZW50X2IgLnByZXNpZGVudF9zY3JvbGxpbmcgLnByZXNpZGVu -dF9zYWlkIHsgbWFyZ2luLXRvcDogMTJweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTIwcHg7IH0K -ICBkaXYuYmdfcHJlc2lkZW50X2IgLnByZXNpZGVudF9zY3JvbGxpbmcgLnByZXNpZGVudF9zYWlk -IGxpIHsgaGVpZ2h0OiAxMjBweDsgZm9udC1zaXplOiAxNHB4OyBsZXR0ZXItc3BhY2luZzogLTFw -eDsgbGluZS1oZWlnaHQ6IDEyMCU7IH0KICBkaXYuYmdfcHJlc2lkZW50X2IgLnByZXNpZGVudF9z -Y3JvbGxpbmcgLnByZXNpZGVudF9zYWlkIGxpIHNwYW4geyBtYXJnaW4tdG9wOiAxMHB4OyB9CiAg -LnByZXNpZGVudF9iX3R4dCB7IG1hcmdpbjogMHB4IDBweCAxNXB4OyBmb250LXNpemU6IDE1cHg7 -IGxpbmUtaGVpZ2h0OiAxMzAlOyB9CiAgZGl2LnByZXNpZGVudF9iX2FyZWEyIHsgbWFyZ2luLXRv -cDogNDBweDsgfQogIGRpdi5wcmVzaWRlbnRfYl9hcmVhMiAuc2VjdGlvbiB7IHBhZGRpbmctdG9w -OiAzMHB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9CiAgZGl2LnByZXNpZGVudF9iX2Fy -ZWEyIC5zZWN0aW9uOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1ib3R0b206IDBweDsgfQogIGRpdi5w -cmVzaWRlbnRfYl9hcmVhMiBkaXYuYnRuX2FyZWEgeyBtYXJnaW46IDIwcHggMHB4IDBweDsgfQog -IGRpdi5wcmVzaWRlbnRfYl9hcmVhMiBoMyB7IG1hcmdpbi1ib3R0b206IDEwcHg7IGZvbnQtc2l6 -ZTogMThweDsgfQogIHVsLmhfbGlzdCB7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAxMDAlOyB9 -CiAgdWwuaF9saXN0IGxpIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmctYm90dG9tOiAzcHg7IHdp -ZHRoOiAxMDAlOyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQogIHVsLmhfbGlzdCBsaSBzcGFuIHsg -Zm9udC1zaXplOiAxM3B4OyB9CiAgdWwuaF9saXN0IGxpIHNwYW4udHh0X3llYXIgeyBwb3NpdGlv -bjogc3RhdGljOyBkaXNwbGF5OiBibG9jazsgfQogIHVsLmhfbGlzdCBsaSBzcGFuLnR4dF9pbmZv -IHsgcGFkZGluZzogMHB4OyB9CiAgLmJnX25ld3MgeyBwYWRkaW5nOiAwcHggMHB4IDEwcHg7IGhl -aWdodDogYXV0bzsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlh -bCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLmJnX21v -dmllIHsgcGFkZGluZzogMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0K -ICAubW92aWVfbGlzdCAubW92aWVfbGF5ZXIgeyBwb3NpdGlvbjogc3RhdGljOyBwYWRkaW5nOiAx -M3B4IDBweCAwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28u -a3IvaW1hZ2VzL2JnX2Fycm93NS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMCU7IGJh -Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLm1vdmllX2xheWVyIHsg -cG9zaXRpb246IHN0YXRpYzsgcGFkZGluZzogMHB4OyB9CiAgLm1vdmllX2xheWVyaW4geyBwb3Np -dGlvbjogcmVsYXRpdmU7IHBhZGRpbmc6IDUwcHggMjdweCAyN3B4OyBiYWNrZ3JvdW5kLWNvbG9y -OiByZ2IoMzIsIDMyLCAzMik7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsg -YmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIC5zZWFyY2hfcmVzdWx0IGRs -IGRkIC5tb3ZpZV9sYXllciB7IG1hcmdpbi10b3A6IDVweDsgfQogIC5zZWFyY2hfcmVzdWx0IGRs -IGRkIC5tb3ZpZV9sYXllciAubW92aWVfbGF5ZXJpbiB7IHBhZGRpbmc6IDBweDsgcG9zaXRpb246 -IHN0YXRpYzsgfQogIC5zZWFyY2hfcmVzdWx0IGRsIGRkIC5tb3ZpZV9sYXllciAubW92aWVfbGF5 -ZXJpbiBzcGFuLm1vdmllX2Nsb3NlIHsgdG9wOiAyMnB4OyByaWdodDogMTBweDsgfQogIC5tb3Zp -ZV9sYXllciAubW92aWVhcmVhIC5sZWZ0YXJlYSB7IHdpZHRoOiAxMDAlOyB9CiAgLm1vdmllX2xh -eWVyIC5tb3ZpZWFyZWEgLnJpZ2h0YXJlYSB7IHdpZHRoOiAxMDAlOyB9CiAgLm1vdmllX2xheWVy -IC5tb3ZpZWFyZWEgLmNhcHRpb24geyBkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogcmlnaHQ7 -IG1hcmdpbjogMTBweCAwcHggMHB4OyBoZWlnaHQ6IGF1dG87IH0KICAubW92aWVfbGF5ZXIgLm1v -dmllYXJlYSAuY2FwdGlvbiBhIHsgcGFkZGluZy1sZWZ0OiAxMnB4OyBjb2xvcjogcmdiKDMzLCAx -NzIsIDIyMyk7IGZvbnQtc2l6ZTogMTJweDsgfQogIC5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5j -YXB0aW9uIGEuY2xvc2UgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy9iZ19tb3ZpZV9hcnJvdy5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAw -cHggNXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5tb3Zp -ZV9sYXllciAubW92aWVhcmVhIC5jYXB0aW9uIGEub3BlbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX21vdmllX2Fycm93LmdpZik7IGJh -Y2tncm91bmQtcG9zaXRpb246IDBweCAtMjFweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KICAubW92aWVfbGlzdCAubW92aWVfbGF5ZXIgLm1vdmllYXJlYSAuY2Fw -dGlvbl90eHQsIC5tb3ZpZV9sYXllciAubW92aWVhcmVhIC5jYXB0aW9uX3R4dCB7IG92ZXJmbG93 -OiBoaWRkZW47IGhlaWdodDogYXV0bzsgbWFyZ2luLXRvcDogNXB4OyB9CiAgLm1vdmllX2xpc3Qg -Lm1vdmllX2xheWVyIC5tb3ZpZWFyZWEgLmNhcHRpb25fdHh0Lm9mZiwgLm1vdmllX2xheWVyIC5t -b3ZpZWFyZWEgLmNhcHRpb25fdHh0Lm9mZiB7IGRpc3BsYXk6IG5vbmU7IH0KICAuaWZyYW1lX2Fy -ZWEgeyBtYXJnaW46IDBweDsgfQogIC5uZXdzX3RvcGFyZWEgLnJvbGxpbmdhcmVhIHVsIHsgaGVp -Z2h0OiBhdXRvOyB9CiAgLm5ld3NfdG9wYXJlYSAucm9sbGluZ2FyZWEgbGkgLnRodW1iIHsgZmxv -YXQ6IG5vbmU7IG1hcmdpbi1yaWdodDogMHB4OyB3aWR0aDogMTAwJTsgfQogIC5uZXdzX3RvcGFy -ZWEgLnJvbGxpbmdhcmVhIGxpIC50aHVtYiBpbWcgeyB3aWR0aDogMTAwJTsgfQogIC5uZXdzX3Rv -cGFyZWEgLnJvbGxpbmdhcmVhIGxpIC5jb250IHsgZmxvYXQ6IG5vbmU7IHBhZGRpbmc6IDBweCAy -MHB4OyB3aWR0aDogYXV0bzsgfQogIC5uZXdzX3RvcGFyZWEgLnJvbGxpbmdhcmVhIGxpIC5kYXRl -IHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMjBweCAwcHggNXB4OyB0ZXh0LWFsaWduOiBsZWZ0 -OyB9CiAgLm5ld3NfdG9wYXJlYSAucm9sbGluZ2FyZWEgbGkgc3Ryb25nIHsgZGlzcGxheTogYmxv -Y2s7IG1hcmdpbi1ib3R0b206IDIwcHg7IGZvbnQtc2l6ZTogMThweDsgfQogIC5uZXdzX3RvcGFy -ZWEgLnJvbGxpbmdhcmVhIGxpIC50eHQgeyBkaXNwbGF5OiBub25lOyB9CiAgLm5ld3NfdG9wYXJl -YSAucm9sbGluZ19jdHJsIHsgcG9zaXRpb246IHN0YXRpYzsgcGFkZGluZy1ib3R0b206IDE1cHg7 -IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC5iZ19udSB7IHBhZGRpbmc6IDBweDsgYmFja2dyb3Vu -ZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLm51X21vbnRobHkgeyBoZWlnaHQ6IDY3MHB4 -OyB9CiAgLm51X21vbnRobHkgLmNvbnRyb2xsZXIucHJldiB7IHRvcDogMzhweDsgfQogIC5udV9t -b250aGx5IC5jb250cm9sbGVyLm5leHQgeyB0b3A6IDM4cHg7IH0KICAubnVfbW9udGhseSB1bCB7 -IHBhZGRpbmc6IDBweCA1MHB4OyBoZWlnaHQ6IDczcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X2xpbmUuZ2lmKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogMHB4IDUwcHg7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgbm8t -cmVwZWF0OyB9CiAgLm51X21vbnRobHkgbGkgeyB3aWR0aDogMTAlOyB9CiAgLm51X21vbnRobHkg -bGkgYS5pdGVtIHsgbWFyZ2luLXRvcDogMXB4OyBoZWlnaHQ6IDczcHg7IGJhY2tncm91bmQtaW1h -Z2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX251X21vbnRo -bHkucG5nKTsgbGluZS1oZWlnaHQ6IDExMCU7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAzNnB4 -OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5udV9tb250aGx5 -IGxpIGEuaXRlbSBzcGFuIHsgZGlzcGxheTogYmxvY2s7IH0KICAubnVfbW9udGhseSBsaSBhLm9u -IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIC04MXB4OyB9CiAgLm1vbnRobHlfY29udCAudGh1 -bWIgeyBmbG9hdDogbm9uZTsgbWFyZ2luLXJpZ2h0OiAwcHg7IHdpZHRoOiAxMDAlOyB9CiAgLm1v -bnRobHlfY29udCAudGh1bWIgaW1nIHsgd2lkdGg6IDEwMCU7IH0KICAubW9udGhseV9jb250IC5j -b250IHsgcG9zaXRpb246IHJlbGF0aXZlOyBmbG9hdDogbm9uZTsgcGFkZGluZzogMHB4IDBweCAy -MHB4OyB3aWR0aDogMTAwJTsgfQogIC5tb250aGx5X2NvbnQgLmNvbnQgZHQgeyBtYXJnaW46IDIw -cHggMjBweCA3cHg7IH0KICAubW9udGhseV9jb250IC5jb250IGRkLnR4dCB7IGRpc3BsYXk6IG5v -bmU7IH0KICAubW9udGhseV9jb250IC5jb250IGRkLmJ1dHRvbiB7IG1hcmdpbjogMTVweCAyMHB4 -IDBweDsgfQogIC5tb250aGx5X2NvbnQgLmNvbnQgZGQubnVfYmFubmVyIHsgcG9zaXRpb246IHN0 -YXRpYzsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMjBweCAyMHB4IDBweDsgfQogIC5tb250aGx5 -X2NvbnQgLmNvbnQgZGQubnVfYmFubmVyIGEgeyB3aWR0aDogMjQxcHg7IGhlaWdodDogMzRweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJv -dXQvYnRfbnVfYmFubmVyX20uanBnKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0 -aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5hYm91 -dF9tYWluIHsgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7IH0KICBkaXYuYWJvdXRfdG9wYXJlYTIg -eyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBi -b3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMTkyLCAxOTIsIDE5Mik7IGJvcmRlci1sZWZ0LXN0eWxl -OiBub25lOyBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7IG1hcmdpbi1ib3R0b206IDFweDsgfQog -IGRpdi5hYm91dF90b3BhcmVhMiB1bCBsaSBhIGRpdi5hYm91dF90eHRhcmVhIHsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgfQogIGRpdi5hYm91dF90b3BhcmVhMiB1bCBsaSBhIGRpdi5hYm91 -dF90eHRhcmVhIHNwYW4udGl0IHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMTVweDsgZm9u -dC13ZWlnaHQ6IGJvbGQ7IH0KICBkaXYuYWJvdXRfdG9wYXJlYTIgdWwgbGkgYTpob3ZlciBkaXYu -YWJvdXRfdHh0YXJlYSB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IH0KICBkaXYuYWJvdXRf -bWlkYXJlYTIgeyBtYXJnaW4tYm90dG9tOiAwcHg7IH0KICBkaXYuYWJvdXRfbWlkYXJlYTIgZGl2 -LmxlZnRfYXJlYTIgZGl2LmxlZnRfYXJlYWluIHsgYm9yZGVyOiBub25lOyB9CiAgZGl2LmFib3V0 -X21pZGFyZWEyIGRpdi5yaWdodF9hcmVhMiB7IGJvcmRlci1zdHlsZTogbm9uZSBub25lIHNvbGlk -OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigxOTIs -IDE5MiwgMTkyKTsgfQogIGRpdi5hYm91dF9taWRhcmVhMiBkaXYubGVmdF9hcmVhMiB7IHdpZHRo -OiAxMDAlOyBmbG9hdDogbm9uZTsgfQogIGRpdi5hYm91dF9taWRhcmVhMiBkaXYubGVmdF9hcmVh -MiBkaXYubGVmdF9hcmVhaW4gc3Bhbi50aXRfYXJlYSB7IHBvc2l0aW9uOiBzdGF0aWM7IH0KICBk -aXYuYWJvdXRfbWlkYXJlYTIgZGl2LnJpZ2h0X2FyZWEyIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBu -b25lOyB9CiAgZGl2LmFib3V0X21pZGFyZWEyIGRpdi5yaWdodF9hcmVhMiBzcGFuLnRpdF9hcmVh -IHNwYW4udHh0IHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5hYm91dF9idG1hcmVhMiBkaXYubGVm -dF9hcmVhMiB7IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgYm9yZGVyLXN0eWxlOiBub25lIG5v -bmUgc29saWQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjog -cmdiKDE5MiwgMTkyLCAxOTIpOyB9CiAgZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5jZW5fYXJlYTIg -eyB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgfQogIGRpdi5hYm91dF9i -dG1hcmVhMiBkaXYuY2VuX2FyZWEyIGRpdi5jZW5faW5jb250IHsgd2lkdGg6IDEwMCU7IGZsb2F0 -OiBub25lOyBib3JkZXItc3R5bGU6IG5vbmUgbm9uZSBzb2xpZDsgYm9yZGVyLWJvdHRvbS13aWR0 -aDogMXB4OyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMTkyLCAxOTIsIDE5Mik7IG1hcmdpbjog -MHB4OyB9CiAgZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5yaWdodF9hcmVhMiB7IHdpZHRoOiAxMDAl -OyBmbG9hdDogbm9uZTsgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29saWQ7IGJvcmRlci1ib3R0 -b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDE5MiwgMTkyLCAxOTIpOyB9 -CiAgZGl2LmFib3V0X2J0bWFyZWEyIGRpdi5sZWZ0X2FyZWFvdXQgeyB3aWR0aDogMTAwJTsgZmxv -YXQ6IG5vbmU7IGJvcmRlcjogbm9uZTsgfQogIGRpdi5hYm91dF90b3BhcmVhMiBzcGFuLnRpdF9h -cmVhIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5yZW1vdGVfYXJlYSB7IGRpc3BsYXk6IG5vbmU7 -IH0KICBkaXYuYWJvdXRfdHh0YXJlYSB7IHBhZGRpbmc6IDIwcHg7IGJhY2tncm91bmQtY29sb3I6 -IHJnYig0MSwgNTYsIDcyKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBi -YWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LmFib3V0X3R4dGFyZWEg -YSBzcGFuIHsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgZGlzcGxheTogaW5saW5lLWJsb2Nr -OyB9CiAgZGl2LmFib3V0X3R4dGFyZWEgYTpob3ZlciBzcGFuIHsgY29sb3I6IHJnYigyNTUsIDI1 -NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KICBkaXYuYWJvdXRfdHh0YXJl -YSBhIHNwYW4udGl0IHsgZm9udC1zaXplOiAxOHB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyBkaXNw -bGF5OiBibG9jazsgfQogIGRpdi5hYm91dF90eHRhcmVhIGEgc3Bhbi50eHQgeyB9CiAgZGl2LmFi -b3V0X3R4dGFyZWEgeyBkaXNwbGF5OiBibG9jazsgfQogIGRpdi5tX3JvbGxpbmcgeyBkaXNwbGF5 -OiBibG9jazsgcGFkZGluZzogMTVweCAwcHggMHB4OyBoZWlnaHQ6IDM1cHg7IH0KICBvbC5yb2xs -aW5nX2Jhbm5lciB7IHdpZHRoOiA3NXB4OyBtYXJnaW46IDBweCBhdXRvOyBmbG9hdDogbm9uZTsg -fQogIGRpdi5hYm91dF9taWRhcmVhMiBkaXYubGVmdF9hcmVhMiBkaXYubGVmdF9hcmVhaW4gc3Bh -bi50aXRfYXJlYSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgZGl2LmFib3V0X3NlY3Rpb24yIGltZy53 -MTAwIHsgd2lkdGg6IDEwMCU7IH0KICBkaXYuYWJvdXRfY29udGFpbmVyIGRpdi5jb250X2luZm8g -eyB3aWR0aDogMTAwJTsgfQogIGRpdi5hYm91dF90b3BhcmVhIHsgaGVpZ2h0OiBhdXRvOyB9CiAg -ZGl2LmFib3V0X3RvcGFyZWEgYSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgZGl2LmFib3V0X3RvcGFy -ZWEgcC5kZXMgeyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMjZweDsg -YmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLCA1NiwgNzIpOyB0b3A6IDBweDsgbGVmdDogMHB4OyBw -b3NpdGlvbjogc3RhdGljOyBwYWRkaW5nLXRvcDogMXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBp -bml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBk -aXYuYWJvdXRfdG9wYXJlYSBwLmRlcyBzcGFuLnRpdCB7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 -NSk7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2luOiAyMHB4IDBweCAwcHggMThweDsgfQogIGRpdi5h -Ym91dF90b3BhcmVhIHAuZGVzIHNwYW4uc3ViIHsgZGlzcGxheTogbm9uZTsgfQogIGRpdi5hYm91 -dF90b3BhcmVhIHAuZGVzIHNwYW4ubXN1YiB7IGRpc3BsYXk6IGJsb2NrOyBjb2xvcjogcmdiKDI1 -NSwgMjU1LCAyNTUpOyBtYXJnaW46IDEwcHggMHB4IDBweCAxOHB4OyBsZXR0ZXItc3BhY2luZzog -LTFweDsgbGluZS1oZWlnaHQ6IDE1MCU7IH0KICBkaXYuYWJvdXRfbGVmdGFyZWEgeyBmbG9hdDog -bm9uZTsgd2lkdGg6IDEwMCU7IH0KICBkaXYuYWJvdXRfbWlkYXJlYSB7IGZsb2F0OiBub25lOyB3 -aWR0aDogMTAwJTsgfQogIGRpdi5hYm91dF9yaWdodGFyZWEgeyBmbG9hdDogbm9uZTsgd2lkdGg6 -IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IH0KICBkaXYuYWJvdXRfbWlkYXJlYSB7IG1hcmdpbjog -MHB4OyB9CiAgZGl2LmluYXJlYV9tIHsgbWFyZ2luOiAwcHggMTBweDsgfQogIGRpdi5hYm91dF9y -aWdodGFyZWEgZGl2LmluYXJlYXRvcCB7IH0KICBkaXYuYWJvdXRfcmlnaHRhcmVhIGRpdi5pbmFy -ZWEgeyB9CiAgZGl2LmFib3V0X3JpZ2h0YXJlYSBkaXYuaW5hcmVhMiB7IH0KICBkaXYuYnRfcGxh -eWVyIHsgZGlzcGxheTogbm9uZTsgfQogIHVsLmJ0X3JvbGxpbmcgeyBkaXNwbGF5OiBub25lOyB9 -CiAgdWwuYnRfbXJvbGxpbmcgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDgwcHg7IG92ZXJmbG93 -OiBoaWRkZW47IG1hcmdpbjogMHB4IGF1dG87IH0KICB1bC5idF9tcm9sbGluZyBsaSB7IGZsb2F0 -OiBsZWZ0OyB9CiAgdWwuYnRfbXJvbGxpbmcgbGkgYSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg -d2lkdGg6IDExcHg7IGhlaWdodDogMTFweDsgbWFyZ2luOiAwcHg7IGJhY2tncm91bmQtaW1hZ2U6 -IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX3JvbGxpbmcucG5nKTsgZm9u -dC1zaXplOiAwcHg7IGxpbmUtaGVpZ2h0OiAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFs -IGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgdWwu -YnRfbXJvbGxpbmcgbGkgYS5vbiB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNh -bXN1bmcuY28ua3IvaW1hZ2VzL2JnX3JvbGxpbmdfb24ucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlv -bjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQogIC5pbnRyb19zZWN0aW9uIHsgbWFyZ2luLXRvcDogMHB4OyBwYWRkaW5nOiAwcHg7IGZv -bnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IGJvcmRlcjogbm9uZTsgfQogIC5p -bnRyb19zZWN0aW9uLmZpcnN0IHsgcGFkZGluZy10b3A6IDE1cHg7IH0KICAuaW50cm9fc2VjdGlv -biAubGVmdGFyZWEsIC5pbnRyb19zZWN0aW9uIC5yaWdodGFyZWEgeyBmbG9hdDogbm9uZTsgd2lk -dGg6IDEwMCU7IG1hcmdpbjogMHB4IDBweCA0MHB4OyB9CiAgLmludHJvX3NlY3Rpb24gaDMgeyBt -YXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXNpemU6IDE4cHg7IH0KICAuaW50cm9fc2VjdGlvbiBo -MyBlbSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgLmludHJvX3NlY3Rpb24gLnN1Yl9pbWcgeyBtYXJn -aW46IDBweCAwcHggMjBweDsgfQogIC5pbnRyb19zZWN0aW9uIC50dmlldyB7IGRpc3BsYXk6IG5v -bmU7IH0KICAuaW50cm9fbW92aWUgeyBtYXJnaW4tdG9wOiAwcHg7IHBhZGRpbmctdG9wOiAxNXB4 -OyB9CiAgLmludHJvX21vdmllIGgzIHsgbWFyZ2luLWJvdHRvbTogMTdweDsgcGFkZGluZy10b3A6 -IDMwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1h -Z2VzL2Fib3V0L2JnX2ludHJvX3R4dF9tLmdpZik7IGZvbnQtc2l6ZTogMTNweDsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogNTAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBl -YXQ7IH0KICAuaW50cm9fbW92aWUgaDMgZW0geyBkaXNwbGF5OiBibG9jazsgfQogIC5pbnRyb19t -b3ZpZSBsaSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgcGFkZGluZy1ib3R0b206IDE1cHg7 -IGZvbnQtc2l6ZTogMTNweDsgfQogIC5pbnRyb19tb3ZpZSBsaSBzdHJvbmcgeyBtYXJnaW4tYm90 -dG9tOiAxMHB4OyBmb250LXNpemU6IDE4cHg7IH0KICAuaW50cm9fbW92aWUgbGkgLmZyYW1lIHsg -bWFyZ2luLXRvcDogMTVweDsgfQogIC5pbnRyb19tb3ZpZSBsaS5vbiB7IGJhY2tncm91bmQ6IG5v -bmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBl -YXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIC5pbnRyb19tb3ZpZSBsaS5sYXN0IHsgbWFyZ2luLXRv -cDogMjBweDsgfQogIC5pbnRyb19tb3ZpZSBsaSAubG0geyBkaXNwbGF5OiBibG9jazsgZm9udC1z -aXplOiAxM3B4OyB9CiAgLmludHJvX21vdmllIC5mcmFtZSAubW92aWVfbGF5ZXIgeyB9CiAgLmlu -dHJvX21vdmllIC5mcmFtZSAubW92aWVfbGF5ZXIgLm1vdmllYXJlYSAubGVmdGFyZWEgeyBmbG9h -dDogbm9uZTsgd2lkdGg6IDEwMCU7IH0KICAuaW50cm9fbW92aWUgLmZyYW1lIC5tb3ZpZV9sYXll -ciAubW92aWVhcmVhIC5yaWdodGFyZWEgeyBmbG9hdDogbm9uZTsgbWFyZ2luLXRvcDogMjBweDsg -d2lkdGg6IDEwMCU7IH0KICAuaW50cm9fbW92aWUgLmZyYW1lIC5tb3ZpZV9sYXllciAubW92aWVh -cmVhIC5jYXB0aW9uX3R4dCB7IGhlaWdodDogOTBweDsgfQogIC5tb3ZpZV9sYXllcl93cmFwIHsg -cG9zaXRpb246IHN0YXRpYzsgcGFkZGluZy10b3A6IDEzcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2Fycm93NS5naWYpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiA1MCUgMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CiAgLm1vdmllX2xheWVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiA1MHB4 -IDI3cHggMjdweDsgfQogIC5kZXRhaWxfc2VhcmNoIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGlu -ZzogMTVweCAxMHB4OyB9CiAgLmRldGFpbF9zZWFyY2ggbGkgeyBmbG9hdDogbm9uZTsgcG9zaXRp -b246IHJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6IDYzcHg7IHdpZHRoOiA5MCUgIWltcG9ydGFudDsg -fQogIC5kZXRhaWxfc2VhcmNoIGxpIGxhYmVsIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDRw -eDsgbGVmdDogMHB4OyB9CiAgLmRldGFpbF9zZWFyY2ggbGkuczEsIC5kZXRhaWxfc2VhcmNoIGxp -LnMyLCAuZGV0YWlsX3NlYXJjaCBsaS5zMyB7IG1hcmdpbi1yaWdodDogMHB4OyB3aWR0aDogOTAl -ICFpbXBvcnRhbnQ7IH0KICAuZGV0YWlsX3NlYXJjaCBsaTpmaXJzdC1jaGlsZCAubSB7IGRpc3Bs -YXk6IGJsb2NrOyBtYXJnaW4tdG9wOiA1cHg7IH0KICAuZGV0YWlsX3NlYXJjaCBsaTpmaXJzdC1j -aGlsZCAudHh0IHsgd2lkdGg6IDgwcHg7IH0KICAuZGV0YWlsX3NlYXJjaCBsaS5zMSBzZWxlY3Qs -IC5kZXRhaWxfc2VhcmNoIGxpLnMyIHNlbGVjdCB7IHdpZHRoOiA3NiU7IH0KICAuZGV0YWlsX3Nl -YXJjaCBsaS5zMyAudHh0IHsgd2lkdGg6IDUyJTsgfQogIC5kZXRhaWxfc2VhcmNoIGxpIC5idG5f -YXJlYSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgLmRldGFpbF9z -ZWFyY2guYm94X3R5cGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAubGlzdF90eXBlIHsgcGFk -ZGluZzogMHB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9CiAgLmxpc3RfdHlwZSBsaSB7 -IGZsb2F0OiBub25lOyBtYXJnaW46IDBweDsgd2lkdGg6IDEwMCU7IGJvcmRlci1ib3R0b20td2lk -dGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6 -IHJnYigyMjUsIDIyNSwgMjI1KTsgfQogIC5saXN0X3R5cGUgbGkgYS5saW5rX3NlY3Rpb24geyBw -YWRkaW5nOiAwcHggMHB4IDBweCAxNDBweDsgaGVpZ2h0OiA4MHB4OyB9CiAgLmxpc3RfdHlwZSBs -aSBpbWcudGh1bWIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IHdp -ZHRoOiAxMjBweDsgaGVpZ2h0OiA4MHB4OyB9CiAgLmxpc3RfdHlwZSBsaSAudGl0IHsgaGVpZ2h0 -OiAzN3B4OyB9CiAgLmxpc3RfdHlwZSBsaSAuY29udCB7IG1hcmdpbi1ib3R0b206IDBweDsgfQog -IC5saXN0X3R5cGUgbGkgLndyaXRpbmcgeyBkaXNwbGF5OiBub25lOyB9CiAgLm51X2xpc3QgeyBw -YWRkaW5nLWJvdHRvbTogMTVweDsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90 -dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUp -OyB9CiAgLm51X2xpc3QgbGkgeyBwYWRkaW5nLWJvdHRvbTogMHB4OyBoZWlnaHQ6IDYwcHg7IGJv -cmRlcjogbm9uZTsgfQogIC5udV9saXN0IGxpIGEubGlua19zZWN0aW9uIHsgcGFkZGluZy1sZWZ0 -OiAxMTBweDsgaGVpZ2h0OiA2MHB4OyB9CiAgLm51X2xpc3QgbGkgaW1nLnRodW1iIHsgd2lkdGg6 -IDkwcHg7IGhlaWdodDogNjBweDsgfQogIC5udV9saXN0IGxpIC50aXQgeyBoZWlnaHQ6IDM3cHg7 -IH0KICAubnVfbGlzdCBsaSAuY29udCB7IGRpc3BsYXk6IG5vbmU7IH0KICAubnVfbGlzdCBsaSAu -YnV0dG9uIHsgYm90dG9tOiAwcHg7IGxlZnQ6IDExMHB4OyB9CiAgLnRodW1iX3R5cGUgeyBwYWRk -aW5nOiAwcHg7IH0KICAudGh1bWJfdHlwZSBsaSB7IHBhZGRpbmc6IDIwcHggMHB4OyB3aWR0aDog -NDkuOSU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC50aHVtYl90eXBlIGxpIGEubGlua19zZWN0 -aW9uIHsgd2lkdGg6IDEzMnB4OyB9CiAgLnRodW1iX3R5cGUgbGkgaW1nLnRodW1iIHsgd2lkdGg6 -IDEzMnB4OyBoZWlnaHQ6IDg4cHg7IH0KICAudGh1bWJfdHlwZSBsaSAubGlzdF9jb250IHsgZGlz -cGxheTogYmxvY2s7IG1hcmdpbjogMHB4IGF1dG87IHBhZGRpbmctYm90dG9tOiAxMHB4OyB3aWR0 -aDogMTEycHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KICAudGh1bWJfdHlwZSBsaSAud3JpdGluZyB7 -IGRpc3BsYXk6IG5vbmU7IH0KICAudGFnIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGluZzogN3B4 -IDBweDsgd2lkdGg6IDEwMCU7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHls -ZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQogIC50YWcg -ZGwgeyBmbG9hdDogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgbWFyZ2luLWJvdHRvbTogN3B4OyB3 -aWR0aDogMTAwJTsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLXN0eWxl -OiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CiAgLnRh -ZyBkdCB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAycHggMHB4OyB3aWR0aDogMzVweDsgYmFja2dy -b3VuZC1jb2xvcjogcmdiKDUzLCAxOTcsIDIxNyk7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dy -b3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlh -bCBpbml0aWFsOyB9CiAgLnRhZyBkZCB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAxcHggMHB4IDBw -eCAxOHB4OyB3aWR0aDogODAlOyB9CiAgLnRhZyAucG9zdF9idG4geyBwb3NpdGlvbjogc3RhdGlj -OyB3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KICAudGFnIC5wb3N0X2J0biAuZG4g -eyBkaXNwbGF5OiBub25lOyB9CiAgLnRhZyBkaXYjbGF5V3JhcCB7IG1hcmdpbjogNXB4IDBweCAw -cHg7IH0KICAucmVwbHlfd3JpdGUgZGQgeyBwYWRkaW5nOiAwcHggMHB4IDM4cHggMjJweDsgfQog -IC5yZXBseV93cml0ZSBkZCBpbWcgeyBkaXNwbGF5OiBub25lOyB9CiAgLnJlcGx5X3dyaXRlIGRk -IC5wb3N0X2xldHRlciB7IHJpZ2h0OiAwcHg7IH0KICAucmVwbHlfd3JpdGUgZGQgLmJ0bl9yZXBs -eSB7IGxlZnQ6IDBweDsgbWFyZ2luOiAxMHB4IDBweCAwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0bi5naWYpOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiAwcHggLTEwOXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJl -cGVhdDsgfQogIC5yZXBseV93cml0ZSBkZCAuYnRuX3JlcGx5IGEgeyBwYWRkaW5nOiA1cHggMHB4 -IDBweDsgd2lkdGg6IDE3MnB4OyBoZWlnaHQ6IDIycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0bi5naWYpOyBmb250LXNpemU6IDEy -cHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTEwOXB4OyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5yZXBseV9saXN0IC5yZV93cml0ZSB7IHBhZGRpbmct -cmlnaHQ6IDM1cHg7IHBhZGRpbmctYm90dG9tOiA1M3B4OyB9CiAgLnJlcGx5X2xpc3QgLnJlX3dy -aXRlIC5idG5fc19yZXBseSB7IG1hcmdpbjogMHB4OyBsZWZ0OiAxNXB4OyBiYWNrZ3JvdW5kLWlt -YWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19idG4uZ2lmKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDlweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh -dCBuby1yZXBlYXQ7IH0KICAucmVwbHlfbGlzdCAucmVfd3JpdGUgLmJ0bl9zX3JlcGx5IGEgeyBw -YWRkaW5nOiA1cHggMHB4IDBweDsgd2lkdGg6IDE3MnB4OyBoZWlnaHQ6IDIycHg7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2JnX2J0bi5naWYp -OyBmb250LXNpemU6IDEycHg7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgLTEwOXB4OyBiYWNr -Z3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIC5yZXBseV9saXN0IHVsIGxp -IHsgcGFkZGluZy1sZWZ0OiAwcHg7IH0KICAucmVwbHlfbGlzdCB1bCBsaSAudGh1bWIgeyBkaXNw -bGF5OiBub25lOyB9CiAgLnJlcGx5X2xpc3QgdWwgbGkgLm5hbWUgeyBtYXJnaW4tbGVmdDogMTBw -eDsgfQogIC5yZXBseV9saXN0IHVsIGxpIC5yZXBseV9jb250IHsgbWFyZ2luLWxlZnQ6IDEwcHg7 -IH0KICAubW92aWVfbGF5ZXIgLnJlcGx5X3dyaXRlIGRkIHsgcGFkZGluZzogMHB4IDBweCAwcHgg -MjBweDsgfQogIC5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCB7IG92ZXJmbG93OiBoaWRkZW47IGhl -aWdodDogYXV0bzsgfQogIC5tb3ZpZV9sYXllciAucmVwbHlfbGlzdCAucmVfd3JpdGUgeyBwYWRk -aW5nOiAwcHggMzJweCAwcHggMHB4OyB9CiAgLm1vdmllX2xheWVyIC5yZXBseV9saXN0IC5yZV93 -cml0ZSAuYnRuX3NfcmVwbHkgeyBwb3NpdGlvbjogc3RhdGljOyB9CiAgLm1vdmllX2xpc3QgeyBw -YWRkaW5nOiAwcHggMHB4IDIwcHg7IH0KICAubW92aWVfbGlzdCBsaSB7IGZsb2F0OiBub25lOyBt -YXJnaW4tdG9wOiAyMHB4OyBwYWRkaW5nLWJvdHRvbTogMHB4OyB3aWR0aDogMTAwJTsgaGVpZ2h0 -OiBhdXRvOyB9CiAgLm1vdmllX2xpc3QgbGkub24geyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFs -IGluaXRpYWw7IH0KICAubW92aWVfbGlzdCBsaSAuaW5uZXIgeyBvdmVyZmxvdzogaGlkZGVuOyBk -aXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfQogIC5tb3ZpZV9saXN0 -IGxpIC50aHVtYiBpbWcgeyB3aWR0aDogMjgwcHg7IGhlaWdodDogMTU5cHg7IH0KICAubW92aWVf -bGlzdCBsaSAuaW5uZXI6aG92ZXIgLnRodW1iLCAubW92aWVfbGlzdCBsaS5vbiAudGh1bWIgeyB3 -aWR0aDogMjcwcHg7IGhlaWdodDogMTQ5cHg7IH0KICAubW92aWVfbGlzdCBsaSAudGl0IHsgbWFy -Z2luOiAxMnB4IDBweCA4cHg7IH0KICAubW92aWVfbGlzdCBsaSAuY29udCB7IGhlaWdodDogYXV0 -bzsgfQogIC5uZXdfbWFuYWdlLCAubmV3X21hbmFnZTIgeyBmb250LXNpemU6IDEzcHg7IH0KICAu -bmV3X21hbmFnZSBoMyB7IGZvbnQtc2l6ZTogMThweDsgfQogIC5uZXdfbWFuYWdlIC50eHQgeyBt -YXJnaW4tdG9wOiAxNXB4OyB9CiAgLm5ld19tYW5hZ2VfYm94IHsgbWFyZ2luLXRvcDogMzBweDsg -cGFkZGluZzogMHB4OyBib3JkZXI6IG5vbmU7IH0KICAubmV3X21hbmFnZV9ib3ggaDMgeyBtYXJn -aW4tYm90dG9tOiAyMHB4OyB9CiAgLm5ld19tYW5hZ2VfYm94IGxpIHsgZmxvYXQ6IG5vbmU7IHdp -ZHRoOiAxMDAlOyBoZWlnaHQ6IDc3cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3 -LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX25ld19tYW5hZ2VfbS5naWYpOyBiYWNrZ3Jv -dW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl -YXQgbm8tcmVwZWF0OyB9CiAgLm5ld19tYW5hZ2VfYm94IGxpIHAgeyBwYWRkaW5nLWxlZnQ6IDEz -MHB4OyB9CiAgLm5ld19tYW5hZ2VfYm94IGxpLmwwMiBwLCAubmV3X21hbmFnZV9ib3ggbGkubDAz -IHAsIC5uZXdfbWFuYWdlX2JveCBsaS5sMDQgcCwgLm5ld19tYW5hZ2VfYm94IGxpLmwwNSBwLCAu -bmV3X21hbmFnZV9ib3ggbGkubDA3IHAgeyBwYWRkaW5nLXRvcDogMHB4OyB9CiAgLm5ld19tYW5h -Z2VfYm94IGxpIHN0cm9uZyB7IG1hcmdpbi1ib3R0b206IDNweDsgZm9udC1zaXplOiAxN3B4OyB9 -CiAgLm5ld19tYW5hZ2VfYm94IGxpIC5sbSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgLm5ld19tYW5h -Z2VfYm94IGxpIHN0cm9uZyAubG0geyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfQogIC5u -ZXdfbWFuYWdlX2JveCBsaS5sMDIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc3cHg7IH0K -ICAubmV3X21hbmFnZV9ib3ggbGkubDAzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTRw -eDsgfQogIC5uZXdfbWFuYWdlX2JveCBsaS5sMDQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHgg -LTIzMXB4OyB9CiAgLm5ld19tYW5hZ2VfYm94IGxpLmwwNSB7IGJhY2tncm91bmQtcG9zaXRpb246 -IDBweCAtMzA4cHg7IH0KICAubmV3X21hbmFnZV9ib3ggbGkubDA2IHsgYmFja2dyb3VuZC1wb3Np -dGlvbjogMHB4IC0zODVweDsgfQogIC5uZXdfbWFuYWdlX2JveCBsaS5sMDcgeyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiAwcHggLTQ2M3B4OyB9CiAgLm5ld19tYW5hZ2UyIGgzOmZpcnN0LWNoaWxkIHsg -cGFkZGluZy10b3A6IDIwcHg7IH0KICAubmV3X21hbmFnZTIgLmJveF9zZWN0aW9uIHsgbWFyZ2lu -LXRvcDogMzBweDsgfQogIC5uZXdfbWFuYWdlMiAubGVmdGFyZWEsIC5uZXdfbWFuYWdlMiAucmln -aHRhcmVhIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0K -ICAubmV3X21hbmFnZTIgLmxlZnRhcmVhIGltZywgLm5ld19tYW5hZ2UyIC5yaWdodGFyZWEgaW1n -IHsgd2lkdGg6IGF1dG87IH0KICAubmV3X21hbmFnZTIgLnJpZ2h0YXJlYSB7IG1hcmdpbi10b3A6 -IDIwcHg7IH0KICAucnVsZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZzogMHB4IDBweCAz -MHB4OyBoZWlnaHQ6IDElOyBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IGJvcmRlci1ib3R0b20t -c3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMCwgMTQ1LCAyMjApOyBmb250 -LXNpemU6IDEzcHg7IH0KICAucnVsZSAuaW1nIHsgcG9zaXRpb246IHN0YXRpYzsgbWFyZ2luLWJv -dHRvbTogMzBweDsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIC5ydWxlIGgz -IHsgZm9udC1zaXplOiAxOHB4OyB9CiAgLnJ1bGVfbGlzdCB7IHBhZGRpbmctYm90dG9tOiAxNXB4 -OyB9CiAgLnJ1bGVfbGlzdCBoMyB7IG1hcmdpbjogMHB4IDBweCAyMHB4OyBwYWRkaW5nLXRvcDog -MzBweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9y -ZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBjb2xvcjogcmdiKDEzLCAxMjMsIDE5 -MSk7IGZvbnQtc2l6ZTogMThweDsgfQogIC5ydWxlX2xpc3QgdWwgbGkgeyBmbG9hdDogbm9uZTsg -cGFkZGluZzogMHB4IDBweCAyMHB4OyB3aWR0aDogMTAwJTsgZm9udC1zaXplOiAxM3B4OyB9CiAg -LnJ1bGVfbGlzdCB1bCBsaSBzdHJvbmcgeyBmb250LXNpemU6IDE1cHg7IH0KICBkaXYuYmdfcGVy -Zm9ybWFuY2UgeyBoZWlnaHQ6IGF1dG87IHBhZGRpbmc6IDBweCAwcHggMTBweDsgYmFja2dyb3Vu -ZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LnBlcmZvcm1hbmNlX3dyYXAgdWwudGFi -X21lbnU1IHsgfQogIGRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyB7IHRvcDogMHB4OyBsZWZ0OiAw -cHg7IHdpZHRoOiAxMDAlOyBtYXJnaW46IDBweCAwcHggNDBweDsgcGFkZGluZy1ib3R0b206IDMw -cHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7 -IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigwLCAxNDUsIDIyMCk7IGJhY2tncm91bmQtY29sb3I6 -IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFs -OyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LnBlcmZvcm1hbmNl -X2NvbnRlbnRzIGgzIHsgbWFyZ2luLWJvdHRvbTogOXB4OyB9CiAgZGl2LnBlcmZvcm1hbmNlX2Nv -bnRlbnRzIGgzIHNwYW4udHh0IHsgZGlzcGxheTogYmxvY2s7IH0KICBkaXYucGVyZm9ybWFuY2Vf -Y29udGVudHMgLmxheV9oZWxwIGEucW5hIHsgcGFkZGluZzogNXB4IDBweCAwcHg7IGJvcmRlcjog -bm9uZSAhaW1wb3J0YW50OyB9CiAgZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIC5sYXlfaGVscCAu -dHh0X2hlbHAgeyBtYXJnaW46IDBweDsgfQogIGRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyBkaXYu -Z3JhcGggeyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAgZGl2LnBlcmZvcm1hbmNlX2NvbnRlbnRzIC5s -YXlfaGVscCBzcGFuLmFycm93IHsgfQogIGRpdi5wZXJmb3JtYW5jZV9jb250ZW50cyB0YWJsZS50 -YmxfZGF0YS5tYmxvY2sgeyBkaXNwbGF5OiB0YWJsZTsgfQogIHAudW5pdCB7IGRpc3BsYXk6IGJs -b2NrOyBtYXJnaW4tYm90dG9tOiA4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtYWxpZ246IHJp -Z2h0OyBmb250LXNpemU6IDEzcHg7IH0KICBwLnJhdGUgc3Bhbi50eHQgeyBtYXJnaW4tdG9wOiAw -cHg7IH0KICBwLnJhdGUgc3Bhbi50eHQgZW0geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDog -MHB4OyB9CiAgZGwucHJvZmlsZSB7IGhlaWdodDogMTg5cHg7IHBhZGRpbmc6IDE2cHggMjBweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJv -dXQvYmdfcHJvZmlsZV9tLmpwZyk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsIDI0OSwgMjU1 -KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQogIGRsLnByb2ZpbGUgZHQgeyBmb250LXNpemU6IDE4cHg7IH0K -ICBkbC5wcm9maWxlIGRkIHsgbWFyZ2luLXRvcDogMnB4OyBmb250LXNpemU6IDEzcHg7IH0KICBk -bC5wcm9maWxlIGRkIGEgeyBtYXJnaW4tdG9wOiA3cHg7IH0KICB0YWJsZS50YmxfZGF0YSwgdGFi -bGUudGJsX2RhdGEzIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgdGFibGUudGJsX2RhdGEzLm5vbmUg -KyB0YWJsZS50YmxfZGF0YTMubm9uZSB7IG1hcmdpbi10b3A6IDIwcHg7IH0KICB0YWJsZS50Ymxf -ZGF0YTMgLmJyZF9sIHsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtc3R5bGU6 -IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDIxMywgMjEzLCAyMTMpOyB9CiAgdGFibGUu -dGJsX2RhdGEzLm5vbmUgdGhlYWQgdGggeyBwYWRkaW5nOiAxMHB4OyB9CiAgdGFibGUudGJsX2Rh -dGEzLm5vbmUgdGJvZHkgdGggeyBmb250LXdlaWdodDogNjAwOyBiYWNrZ3JvdW5kLWNvbG9yOiBy -Z2IoMjUyLCAyNTIsIDI1MCk7IHdvcmQtd3JhcDogYnJlYWstd29yZDsgfQogIGRpdi5iZ19icmFu -ZHZhbHVlIHsgaGVpZ2h0OiBhdXRvOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgYmFja2dyb3VuZDog -bm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJl -cGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2LmJyYW5kX3dyYXAgeyBvdmVyZmxvdzogdmlz -aWJsZTsgfQogIGRpdi5icmFuZF93cmFwIGRpdi5ncmFwaCB7IG92ZXJmbG93OiB2aXNpYmxlOyB9 -CiAgZGl2LmJyYW5kX3ZhbHVlIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyB9CiAgZGl2LmJy -YW5kX3ZhbHVlIGgzLm1ibG9jayB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDBweCAwcHggMjVw -eDsgfQogIGRpdi5icmFuZF92YWx1ZSBwIGltZyB7IHdpZHRoOiAxNTlweDsgaGVpZ2h0OiAxMTZw -eDsgfQogIGRpdi5icmFuZF92YWx1ZSBwIHNwYW4udHh0IHsgbWFyZ2luLWJvdHRvbTogNnB4OyB9 -CiAgdWwudGFiX21lbnUyIHsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IGhlaWdodDog -MzVweDsgcGFkZGluZzogMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBib3gtc2hhZG93OiByZ2IoMTkz -LCAxOTMsIDE5MykgMHB4IDJweCAxcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5p -dGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIHVsLnRhYl9tZW51 -MiBsaSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgdmVydGljYWwtYWxpZ246IHRvcDsgfQog -IHVsLnRhYl9tZW51MiBsaS5zZWxlY3RlZCB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgdWwudGFiX21l -bnUyIGxpLnNlbGVjdGVkIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogOXB4IDBweCAwcHgg -MjBweDsgaGVpZ2h0OiAyNnB4OyBib3JkZXItc3R5bGU6IG5vbmUgbm9uZSBzb2xpZDsgYm9yZGVy -LWJvdHRvbS13aWR0aDogMXB4OyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMzYsIDQ2LCA3MSk7 -IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNw -eDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJh -ZGl1czogMHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmty -L2ltYWdlcy9iZ19zZWxlY3RfbS5naWYpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMsIDEyMywg -MTkxKTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dy -b3VuZC1wb3NpdGlvbjogMTAwJSAxM3B4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5v -LXJlcGVhdDsgfQogIHVsLnRhYl9tZW51MiBsaSBhIHsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6 -IDlweCAwcHggMHB4IDIwcHg7IGhlaWdodDogMjZweDsgYm9yZGVyLXdpZHRoOiAxcHg7IGJvcmRl -ci1zdHlsZTogc29saWQ7IGJvcmRlci1jb2xvcjogcmdiKDc2LCA4NywgMTE3KSByZ2IoMzYsIDQ2 -LCA3MSkgcmdiKDM2LCA0NiwgNzEpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkp -OyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXNpemU6IDEzcHg7IHRleHQtYWxpZ246 -IGxlZnQ7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIHVsLnRhYl9tZW51MiBsaTpsYXN0LWNoaWxkIGEg -eyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAw -cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IGJvcmRlci1ib3R0b20tbGVmdC1y -YWRpdXM6IDNweDsgfQogIHVsLnRhYl9tZW51MiBsaS5vbiBhIHsgYm9yZGVyLXN0eWxlOiBzb2xp -ZCBub25lOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3AtY29sb3I6IHJnYig3Niwg -ODcsIDExNyk7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjog -cmdiKDM2LCA0NiwgNzEpOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWNv -bG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC50YWJfbWVudTIg -bGkgZGl2LnRibF9jb250ZW50cyB7IG1hcmdpbi10b3A6IDBweDsgfQogIHVsLnRhYl9tZW51MiBs -aSBkaXYudGJsX2NvbnRlbnRzIHAuZGVzYzIgeyBmb250LXNpemU6IDEzcHg7IHRleHQtYWxpZ246 -IGxlZnQ7IH0KICB1bC50YWJfbWVudTMgeyBwYWRkaW5nOiAwcHg7IGJhY2tncm91bmQ6IG5vbmU7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IGluaXRpYWwgaW5pdGlhbDsgfQogIHVsLnRhYl9tZW51MyBsaSB7IHBhZGRpbmc6IDBweDsgYmFj -a2dyb3VuZDogbm9uZTsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlv -bjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9 -CiAgdWwudGFiX21lbnUzIGxpIGEgeyBkaXNwbGF5OiBub25lOyB9CiAgdWwudGFiX21lbnU0IHsg -b3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IGhlaWdodDogMzVweDsgbWFyZ2luLWJvdHRv -bTogMzBweDsgcGFkZGluZzogMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBib3gtc2hhZG93OiByZ2Io -MTkzLCAxOTMsIDE5MykgMHB4IDJweCAxcHg7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwg -aW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIHVsLnRhYl9t -ZW51NCBsaSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9CiAgdWwudGFi -X21lbnU0IGxpLnNlbGVjdGVkIHsgZGlzcGxheTogYmxvY2s7IH0KICB1bC50YWJfbWVudTQgbGku -c2VsZWN0ZWQgYSB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiA5cHggMHB4IDBweCAyMHB4OyBo -ZWlnaHQ6IDI2cHg7IGJvcmRlci1zdHlsZTogbm9uZSBub25lIHNvbGlkOyBib3JkZXItYm90dG9t -LXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigzNiwgNDYsIDcxKTsgYm9yZGVy -LXRvcC1sZWZ0LXJhZGl1czogM3B4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyBib3Jk -ZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAw -cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2Vz -L2JnX3NlbGVjdF9tLmdpZik7IGJhY2tncm91bmQtY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBm -b250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiAxMDAlIDEycHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0 -OyB9CiAgdWwudGFiX21lbnU0IGxpIGEgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAyNnB4OyBi -b3JkZXItd2lkdGg6IDFweDsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWNvbG9yOiByZ2Io -NzYsIDg3LCAxMTcpIHJnYigzNiwgNDYsIDcxKSByZ2IoMzYsIDQ2LCA3MSk7IGJhY2tncm91bmQt -Y29sb3I6IHJnYig1NSwgNzAsIDEwOSk7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDlweCAw -cHggMHB4IDIwcHggIWltcG9ydGFudDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KSAhaW1wb3J0 -YW50OyBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5p -dGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgdWwu -dGFiX21lbnU0IGxpOmxhc3QtY2hpbGQgYSB7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDsg -Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6 -IDNweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4OyB9CiAgdWwudGFiX21lbnU0IGxp -LmZpcnN0IGEsIHVsLnRhYl9tZW51NCBsaS5maXJzdC5vbiBhIHsgYm9yZGVyLWxlZnQtd2lkdGg6 -IDFweDsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBib3JkZXItbGVmdC1jb2xvcjogcmdiKDM2 -LCA0NiwgNzEpOyB9CiAgdWwudGFiX21lbnU0IGxpLm9uIGEgeyBtYXJnaW46IDBweDsgYm9yZGVy -LXN0eWxlOiBzb2xpZCBub25lOyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3AtY29s -b3I6IHJnYig3NiwgODcsIDExNyk7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJv -dHRvbS1jb2xvcjogcmdiKDM2LCA0NiwgNzEpOyBwYWRkaW5nOiA5cHggMHB4IDBweCAyMHB4OyBj -b2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAx -MDkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVw -ZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC50YWJfbWVudTQgbGkgYSBzdHJvbmcudGl0IHsg -ZGlzcGxheTogaW5saW5lOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBmb250LXNpemU6IDEz -cHg7IH0KICB1bC50YWJfbWVudTQgbGkgYSBzcGFuLnllYXIgeyBkaXNwbGF5OiBpbmxpbmU7IH0K -ICB1bC50YWJfbWVudTUgeyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAz -NXB4OyBtYXJnaW4tYm90dG9tOiAzMHB4OyBwYWRkaW5nOiAwcHg7IGJhY2tncm91bmQ6IG5vbmU7 -IGJveC1zaGFkb3c6IHJnYigxOTMsIDE5MywgMTkzKSAwcHggMnB4IDFweDsgYmFja2dyb3VuZC1w -b3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0 -aWFsOyB9CiAgdWwudGFiX21lbnU1IGxpIHsgZmxvYXQ6IG5vbmU7IGhlaWdodDogYXV0bzsgYm9y -ZGVyOiBub25lOyBiYWNrZ3JvdW5kOiBub25lOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDog -MTAwJSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC50YWJfbWVudTUgbGkuc2Vs -ZWN0ZWQgeyBkaXNwbGF5OiBibG9jazsgfQogIHVsLnRhYl9tZW51NSBsaS5zZWxlY3RlZCBhIHsg -ZGlzcGxheTogYmxvY2s7IGhlaWdodDogMjZweDsgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29s -aWQ7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDM2 -LCA0NiwgNzEpOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7IGJvcmRlci10b3AtcmlnaHQt -cmFkaXVzOiAzcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci1ib3R0 -b20tbGVmdC1yYWRpdXM6IDBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvYmdfc2VsZWN0X20uZ2lmKTsgYmFja2dyb3VuZC1jb2xvcjogcmdi -KDEzLCAxMjMsIDE5MSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 -NSk7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTJweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5v -LXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC50YWJfbWVudTUgbGkgYSB7IGRpc3BsYXk6IGJsb2Nr -OyBwYWRkaW5nOiA5cHggMHB4IDBweCAyMHB4OyB3aWR0aDogYXV0bzsgaGVpZ2h0OiAyNnB4OyBi -b3JkZXItd2lkdGg6IDFweDsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWNvbG9yOiByZ2Io -NzYsIDg3LCAxMTcpIHJnYigzNiwgNDYsIDcxKSByZ2IoMzYsIDQ2LCA3MSk7IGJhY2tncm91bmQt -Y29sb3I6IHJnYig1NSwgNzAsIDEwOSk7IHRleHQtYWxpZ246IGxlZnQ7IGNvbG9yOiByZ2IoMjU1 -LCAyNTUsIDI1NSkgIWltcG9ydGFudDsgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7IGJhY2tn -cm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRp -YWwgaW5pdGlhbDsgfQogIHVsLnRhYl9tZW51NSBsaTpsYXN0LWNoaWxkIGEgeyBib3JkZXItdG9w -LWxlZnQtcmFkaXVzOiAwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7IGJvcmRlci1i -b3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsg -fQogIHVsLnRhYl9tZW51NSBsaS5vbiBhIHsgd2lkdGg6IGF1dG87IGhlaWdodDogMjZweDsgbWFy -Z2luOiAwcHg7IGJvcmRlci1zdHlsZTogc29saWQgbm9uZTsgYm9yZGVyLXRvcC13aWR0aDogMXB4 -OyBib3JkZXItdG9wLWNvbG9yOiByZ2IoNzYsIDg3LCAxMTcpOyBib3JkZXItYm90dG9tLXdpZHRo -OiAxcHg7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigzNiwgNDYsIDcxKTsgY29sb3I6IHJnYigy -NTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZDogbm9uZSByZ2IoNTUsIDcwLCAxMDkpOyBiYWNrZ3Jv -dW5kLWNvbG9yOiByZ2IoNTUsIDcwLCAxMDkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFs -IGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC50YWJf -bWVudTUgbGkub24gYSBzcGFuIHsgbWFyZ2luOiAwcHg7IH0KICBkaXYubWFwX2FyZWEgeyBkaXNw -bGF5OiBub25lOyB9CiAgaDMuYmx1ZSB7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHJnYigxMywg -MTIzLCAxOTEpOyBtYXJnaW46IDBweCAwcHggMTlweDsgfQogIHAuZm9yZWlnbl9yZXN1bHQgeyBk -aXNwbGF5OiBub25lOyB9CiAgcC5mb3JlaWduX3Jlc3VsdF9tIHsgZGlzcGxheTogYmxvY2s7IGZv -bnQtc2l6ZTogMThweDsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB0ZXh0LWFsaWduOiBjZW50 -ZXI7IH0KICBkbC5mb3JlaWduX2xpc3QgeyBmb250LXNpemU6IDEzcHg7IH0KICBkbC5mb3JlaWdu -X2xpc3QgZHQgYSB7IHBhZGRpbmc6IDE2cHggNTBweCAyMHB4IDBweDsgYmFja2dyb3VuZC1wb3Np -dGlvbjogOTglIDUwJTsgfQogIGRpdi5ib3hfdHlwZV9zcmFyY2ggeyBwYWRkaW5nLWJvdHRvbTog -MjBweDsgfQogIHVsLmJveF9zZWFyY2ggeyBiYWNrZ3JvdW5kOiBub25lOyBwYWRkaW5nLWJvdHRv -bTogMHB4OyB3aWR0aDogOTAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC5ib3hfc2VhcmNoIGxp -IHsgd2lkdGg6IDEwMCU7IG1hcmdpbi1sZWZ0OiAyMHB4OyB9CiAgdWwuYm94X3NlYXJjaCBsaSBz -ZWxlY3QgeyBoZWlnaHQ6IDE1JTsgd2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDE4cHg7IH0K -ICBkaXYuYm94X3R5cGVfc3JhcmNoIHsgcGFkZGluZy1ib3R0b206IDE1cHg7IH0KICB1bC5ib3hf -c2VhcmNoIHsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBp -bml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgdWwuYm94X3Nl -YXJjaCBsaSB7IHdpZHRoOiAxMDAlOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgdWwuYm94X3Nl -YXJjaCBsaSBzZWxlY3QgeyBoZWlnaHQ6IDE1JTsgd2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206 -IDE4cHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIHVsLmJveF9zZWFyY2ggbGkgbGFiZWwgeyBmb250 -LXNpemU6IDEzcHg7IH0KICBkaXYuYnRuX2NlbnRlciB7IGJhY2tncm91bmQ6IG5vbmU7IGJhY2tn -cm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRp -YWwgaW5pdGlhbDsgfQogIGRpdi5idG5fY2VudGVyLmIgeyB3aWR0aDogMTAwJTsgcGFkZGluZzog -MHB4OyBtYXJnaW46IDBweDsgfQogIGRpdi5tYXBfY29udGFpbmVyIHsgZGlzcGxheTogbm9uZTsg -fQogIGRpdi50b3BhcmVhMiBkaXYudG9wYXJlYV9pbiBzcGFuLnRpdF9kZXMyIHsgbGluZS1oZWln -aHQ6IDE4cHg7IH0KICBkaXYuYmdfaGlzdG9yeSB7IGhlaWdodDogYXV0bzsgcGFkZGluZzogMHB4 -IDBweCAxMHB4OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFs -IGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBwLmhpc3Rv -cnlfc2xvZ2FuIHsgbWFyZ2luLWJvdHRvbTogMjBweDsgfQogIHAuaGlzdG9yeV9zbG9nYW4gc3Ry -b25nLnRpdCB7IGZsb2F0OiBub25lOyBtYXJnaW46IDBweDsgZm9udC1zaXplOiAxOHB4OyB9CiAg -cC5oaXN0b3J5X3Nsb2dhbiBzcGFuLmRlc2MsIHAuaGlzdG9yeV9zbG9nYW4gc3Bhbi5pbWcgeyBt -YXJnaW4tdG9wOiAyMHB4OyB9CiAgcC55ZWFyX3NlbGVjdCB7IGRpc3BsYXk6IGJsb2NrOyB0ZXh0 -LWFsaWduOiBjZW50ZXI7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1z -dHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFk -ZGluZy1ib3R0b206IDIwcHg7IH0KICBwLnllYXJfc2VsZWN0IGxhYmVsIHsgbWFyZ2luLXJpZ2h0 -OiAxMHB4OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICBkaXYuaGlzdG9y -eV93cmFwIHsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH0KICBkaXYuaGlzdG9yeV93cmFwIHVs -LnRhYl9tZW51MyBsaSBkaXYuaGlzdG9yeV9jb250ZW50cyB7IHBvc2l0aW9uOiBzdGF0aWM7IHdp -ZHRoOiAxMDAlOyB9CiAgdWwuaGlzdG9yeV9saXN0IGxpIHsgcGFkZGluZzogMjBweCAwcHg7IH0K -ICB1bC5oaXN0b3J5X2xpc3QgbGkgc3Bhbi5tb250aCwgdWwuaGlzdG9yeV9saXN0IGxpIHNwYW4u -eWVhciB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwcHg7IHBhZGRpbmctYm90 -dG9tOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMjRweDsgfQogIHVsLmhp -c3RvcnlfbGlzdCBsaSB1bC5tb250aF9kZXNjIGxpIHsgZmxvYXQ6IG5vbmU7IHBhZGRpbmc6IDJw -eCAwcHggMnB4IDhweDsgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfQogIHVsLmhpc3RvcnlfbGlz -dCBsaSB1bC55ZWFyX2Rlc2MgbGkgc3Bhbi5tb250aCB7IHBhZGRpbmctYm90dG9tOiAwcHg7IH0K -ICBkaXYuYmdfc3Vic2lkaWFyeSB7IGhlaWdodDogYXV0bzsgcGFkZGluZzogMHB4IDBweCAxMHB4 -OyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7 -IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBwLmVsZWN0cm9uX3Nsb2dh -biB7IG1hcmdpbjogMHB4IDBweCA0MHB4OyBwYWRkaW5nLWJvdHRvbTogMjBweDsgYm9yZGVyLWNv -bG9yOiByZ2IoMCwgMTQ1LCAyMjApOyB9CiAgcC5lbGVjdHJvbl9zbG9nYW4gc3Ryb25nLnRpdCB7 -IHBhZGRpbmc6IDBweCAwcHggMjBweDsgZm9udC1zaXplOiAxOHB4OyBsZXR0ZXItc3BhY2luZzog -LTJweDsgfQogIHAuZWxlY3Ryb25fc2xvZ2FuIGEuYnRuX3RvdGFsIHsgcG9zaXRpb246IHN0YXRp -YzsgZGlzcGxheTogYmxvY2s7IHRleHQtYWxpZ246IHJpZ2h0OyB9CiAgdWwubGlzdF90eXBlMiBs -aSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBtYXJnaW46IDBweDsg -cGFkZGluZzogMTVweCAwcHggMHB4OyB9CiAgdWwubGlzdF90eXBlMiBsaSBzcGFuLnRodW1iIHsg -d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB9CiAgdWwubGlzdF90eXBlMiBsaSBwLmV4cGxh -aW4geyBoZWlnaHQ6IGF1dG87IH0KICB1bC5saXN0X3R5cGUyIGxpIHAuZXhwbGFpbiBzdHJvbmcu -dGl0IHsgbWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNXB4OyB9CiAgdWwubGlzdF90 -eXBlMiBsaSBwLmV4cGxhaW4gc3Bhbi50eHQgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyBmb250LXNp -emU6IDEzcHg7IGhlaWdodDogYXV0bzsgfQogIHVsLmxpc3RfdHlwZTIgbGkgcC5leHBsYWluIHNw -YW4uYnRuX2Fycm93X29wZW4sIHVsLmxpc3RfdHlwZTIgbGkgcC5leHBsYWluIHNwYW4uYnRuX2Fy -cm93X2Nsb3NlIHsgcG9zaXRpb246IHN0YXRpYzsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9CiAg -ZGl2LnN1cHBvcnRfc2xvZ2FuIHsgbWFyZ2luLWJvdHRvbTogMzVweDsgcGFkZGluZy1ib3R0b206 -IDIwcHg7IGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29s -aWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigwLCAxNDUsIDIyMCk7IH0KICBkaXYuc2xvZ2Fu -X2lubmVyIHsgcGFkZGluZy1ib3R0b206IDBweDsgaGVpZ2h0OiBhdXRvOyB9CiAgZGl2LnNsb2dh -bl9pbm5lciBwLnN1YiB7IGZsb2F0OiBub25lOyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiByZ2Io -NDEsIDU2LCA3Mik7IH0KICBkaXYuc2xvZ2FuX2lubmVyIHAuc3ViIHN0cm9uZy50aXQgeyBmb250 -LXNpemU6IDE4cHg7IH0KICBkaXYuc2xvZ2FuX2lubmVyIHAudHh0LCBkaXYuc2xvZ2FuX2lubmVy -IHAuc3BvcnRzX3R4dCB7IGZvbnQtc2l6ZTogMTNweDsgcGFkZGluZzogNXB4IDBweCAyMHB4ICFp -bXBvcnRhbnQ7IH0KICBkaXYuc2xvZ2FuX2lubmVyIHNwYW4uYnRuX2FyZWEgeyBwb3NpdGlvbjog -c3RhdGljOyBkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgZGl2LnNsb2dh -bl9pbm5lciBzcGFuLmJ0bl9hcmVhLm9uIHsgcGFkZGluZy1ib3R0b206IDIwcHg7IH0KICBkaXYu -c3VwcG9ydF9zbG9nYW4gZGl2LmxheV9kZXRhaWwgYS5jbG9zZSB7IHRvcDogMTBweDsgcmlnaHQ6 -IDEwcHg7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybCho -dHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2J0X2Nsb3NlNi5naWYpOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CiAgZGl2LnN1cHBvcnRfc2xvZ2FuIGRpdi5sYXlfZGV0YWlsIHsgbWFyZ2lu -LWJvdHRvbTogMHB4OyB9CiAgZGl2LnN1cHBvcnRfc2xvZ2FuIGRpdi5sYXlfZGV0YWlsIGRpdi5p -bm5lciB7IHBhZGRpbmctYm90dG9tOiAxNXB4OyB9CiAgZGl2LmxheV9nYWxsZXJ5IHsgbWFyZ2lu -LXRvcDogMjBweDsgfQogIGgzLnN1cHBvcnRfaDMgeyBmb250LXNpemU6IDE4cHg7IH0KICBkaXYu -c3VwcG9ydF9hcnQgeyBtYXJnaW4tdG9wOiAtMTVweDsgYm9yZGVyOiBub25lOyB9CiAgZGl2LnN1 -cHBvcnRfd3JhcCB7IHBhZGRpbmc6IDE2cHggMHB4OyB9CiAgZGl2LnN1cHBvcnRfd3JhcCBoNCB7 -IGZsb2F0OiBub25lOyBtYXJnaW4tYm90dG9tOiA1cHg7IHdpZHRoOiAxMDAlOyBmb250LXNpemU6 -IDE1cHg7IH0KICBkaXYuc3VwcG9ydF9jb250ZW50IHAuZGVzYyB7IGZsb2F0OiBub25lOyB3aWR0 -aDogMTAwJTsgZm9udC1zaXplOiAxM3B4OyB9CiAgZGl2LnN1cHBvcnRfY29udGVudCBwLnNpdGUg -eyB3aWR0aDogMTAwJTsgbWFyZ2luLXRvcDogMjBweDsgcGFkZGluZzogMHB4OyB9CiAgZGl2LnN1 -cHBvcnRfY29udGVudCBwLnNpdGUgc3Bhbi50aXQgeyBmb250LXNpemU6IDEzcHg7IH0KICBkaXYu -bGF5X2RldGFpbCB7IHBvc2l0aW9uOiBzdGF0aWM7IH0KICBkaXYubGF5X2RldGFpbCBkaXYuaW5u -ZXIgeyBwYWRkaW5nOiAzNXB4IDEwcHggMjBweDsgfQogIGRpdi5sYXlfZGV0YWlsIGRpdi5yZXBv -cnRfYXJlYSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsgbWFyZ2luOiAwcHg7IH0KICBkaXYu -bGF5X2RldGFpbCBkaXYudGl0IHsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMHB4OyB9CiAgZGl2Lmxh -eV9kZXRhaWwgZGl2LnRpdCBoMyB7IGZvbnQtc2l6ZTogMThweDsgfQogIGRpdi5sYXlfZGV0YWls -IGRpdi50aXQgcC5kZXNjIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgZGl2LmxheV9kZXRhaWwgZGl2 -LmdhbGxlcnkgeyBmbG9hdDogbm9uZTsgd2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IDIwcHg7IH0K -ICBkaXYuc2xpZGVfd3JhcCB7IHdpZHRoOiAyNDVweCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwcHgg -NXB4ICFpbXBvcnRhbnQ7IH0KICBkaXYuc2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlzdCB7IHdpZHRo -OiAyMTVweDsgfQogIGRpdi5zdXBwb3J0X2dhbGxlcnkgZGl2LnZpZXcgeyBwYWRkaW5nOiAwcHgg -MjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiAgZGl2LnN1cHBvcnRfZ2FsbGVyeSBkaXYudmll -dyBpbWcgeyB3aWR0aDogMTAwJTsgfQogIGRpdi5zdXBwb3J0X2dhbGxlcnkgZGl2LnNsaWRlX3dy -YXAgYS5wcmV2LCBkaXYuc3VwcG9ydF9nYWxsZXJ5IGRpdi5zbGlkZV93cmFwIGEubmV4dCB7IHRv -cDogMjRweDsgfQogIGRpdi5zdXBwb3J0X2dhbGxlcnkgZGl2LnNsaWRlX3dyYXAgZGl2LnNsaWRl -X2xpc3QgeyB3aWR0aDogMjEwcHg7IGhlaWdodDogNTBweDsgfQogIGRpdi5zdXBwb3J0X2dhbGxl -cnkgZGl2LnNsaWRlX3dyYXAgZGl2LnNsaWRlX2xpc3QgdWwgbGkgeyBtYXJnaW46IDBweCA0cHgg -MHB4IDBweDsgd2lkdGg6IDY3cHg7IGhlaWdodDogNTBweDsgYmFja2dyb3VuZC1pbWFnZTogdXJs -KGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfYmxhbmsuZ2lmKTsgYmFj -a2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t -cmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5zdXBwb3J0X2dhbGxlcnkgZGl2LnNsaWRlX3dyYXAg -ZGl2LnNsaWRlX2xpc3QgdWwgbGkgaW1nIHsgd2lkdGg6IDY3cHg7IGhlaWdodDogNTBweDsgfQog -IGRpdi5zdXBwb3J0X2dhbGxlcnkgZGl2LnNsaWRlX3dyYXAgZGl2LnNsaWRlX2xpc3QgdWwgbGkg -YTpob3ZlciwgZGl2LnN1cHBvcnRfZ2FsbGVyeSBkaXYuc2xpZGVfd3JhcCBkaXYuc2xpZGVfbGlz -dCB1bCBsaS5vbiBhIHsgd2lkdGg6IDU5cHg7IGhlaWdodDogNDJweDsgfQogIGRpdi5iZ19zcG9y -dHMgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRp -YWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC5zX2xpc3QgeyBk -aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLWJvdHRvbTogMHB4OyB9 -CiAgdWwuc19saXN0Lm1ndDAgeyBtYXJnaW4tdG9wOiAtNDBweDsgfQogIHVsLnNfbGlzdCBsaSB7 -IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgcGFkZGluZzogMTVweCAwcHggMHB4OyBtYXJnaW4t -bGVmdDogMHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6 -IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IH0KICB1bC5z -X2xpc3QgbGk6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tbGVmdDogMHB4OyB9CiAgdWwuc19saXN0IGxp -IHAudGl0IHsgcGFkZGluZy1ib3R0b206IDE1cHg7IHBhZGRpbmctbGVmdDogMTEwcHg7IGZvbnQt -c2l6ZTogMTJweDsgcG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IDcwcHg7IHBhZGRpbmctdG9w -OiA1cHg7IH0KICB1bC5zX2xpc3QgbGkgcC50aXQgc3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IG1h -cmdpbi10b3A6IDEzcHg7IGZvbnQtc2l6ZTogMjRweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsg -fQogIHVsLnNfbGlzdCBsaSBwIGltZyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGxl -ZnQ6IDBweDsgfQogIHVsLnNfbGlzdCBsaSBpbWcuY29udGVudHMgeyBwYWRkaW5nLWJvdHRvbTog -MTVweDsgd2lkdGg6IDEwMCU7IH0KICB1bC5zX2xpc3QgbGkgcC50eHQgeyBmb250LXNpemU6IDE1 -cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3Mik7IGxpbmUtaGVpZ2h0OiAxODAlOyBwYWRkaW5nLWJv -dHRvbTogMTVweDsgfQogIHVsLnNfbGlzdCBsaS5saW5lX25vIHsgYm9yZGVyLWJvdHRvbS1zdHls -ZTogbm9uZTsgfQogIC5iZ19pZGVhIHsgfQogIHVsLmlkZWFfY29udGxpc3QgeyBtYXJnaW46IDUw -cHggYXV0byAwcHg7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOiAyODBweDsgfQogIHVsLmlkZWFf -Y29udGxpc3QgbGkgeyBmbG9hdDogbGVmdDsgd2lkdGg6IDEwMCU7IH0KICB1bC5pZGVhX2NvbnRs -aXN0IGxpIGltZy5pbWcgeyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwcHggYXV0bzsgfQogIHVs -LmlkZWFfY29udGxpc3QgbGkuZmlyIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cu -c2Ftc3VuZy5jby5rci9pbWFnZXMvYWJvdXQvYmdfaWRlYV9hcnJvd19tLnBuZyk7IHdpZHRoOiAx -MDAlOyBwYWRkaW5nLWJvdHRvbTogNDBweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMTIwcHggMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1y -ZXBlYXQ7IH0KICB1bC5pZGVhX2NvbnRsaXN0IGxpLnNlYyB7IGJhY2tncm91bmQtaW1hZ2U6IHVy -bChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL2Fib3V0L2JnX2lkZWFfYXJyb3cyX20u -cG5nKTsgd2lkdGg6IDEwMCU7IHBhZGRpbmctYm90dG9tOiA0MHB4OyBtYXJnaW4tYm90dG9tOiAx -NXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMjBweCAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQogIGRpdi5jYXJlZXJfbWFpbiB7IHdpZHRoOiAxMDAlOyBw -b3NpdGlvbjogcmVsYXRpdmU7IH0KICBkaXYuY3Rfc2VhcmNoIHsgdGV4dC1hbGlnbjogbGVmdDsg -fQogIHVsLm5vdGlfbGlzdCB7IGRpc3BsYXk6IG5vbmU7IH0KICBkaXYuY3Rfc2VhcmNoX2FyZWEg -eyBwYWRkaW5nOiAxMHB4IDEwcHggMHB4OyBtYXJnaW4tdG9wOiAtMnB4OyB9CiAgdWwuc2VhcmNo -X2xpc3QgeyBmbG9hdDogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDEwMCU7IH0KICB1 -bC5zZWFyY2hfbGlzdCBsaSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAyNXB4IDBweCAwcHg7IG1h -cmdpbjogMHB4OyB3aWR0aDogMjAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KICB1bC5zZWFyY2hf -bGlzdCBsaS5maXIgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNv -LmtyL2ltYWdlcy9jYXJlZXIvYnVfc2VhcmNoLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDUw -JSAwcHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgdWwuc2Vh -cmNoX2xpc3QgbGkuc2VjIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3Vu -Zy5jby5rci9pbWFnZXMvY2FyZWVyL2J1X3NlYXJjaDIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlv -bjogNTAlIDBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1 -bC5zZWFyY2hfbGlzdCBsaS5zZWMyIHsgbWluLXdpZHRoOiAxNzBweDsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2J1X3NlYXJjaF9w -aW5rLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwcHg7IGJhY2tncm91bmQtcmVwZWF0 -OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgdWwuc2VhcmNoX2xpc3QgbGkudGhyIHsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2J1 -X3NlYXJjaDMuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDBweDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5zZWFyY2hfbGlzdCBsaS5mb3VyIHsg -ZGlzcGxheTogbm9uZTsgfQogIHVsLnNlYXJjaF9saXN0IGxpLmxvZ2luIHsgZGlzcGxheTogaW5s -aW5lOyB0ZXh0LWFsaWduOiByaWdodDsgfQogIHVsLnNlYXJjaF9saXN0IGxpLmxvZ2luIGEgaW1n -IHsgbWFyZ2luLXRvcDogLTI4cHg7IH0KICB1bC5zZWFyY2hfbGlzdCBsaSBhIHsgY29sb3I6IHJn -YigyNTUsIDI1NSwgMjU1KTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAwcHggMHB4 -IDlweDsgfQogIHVsLnNlYXJjaF9saXN0IGxpLm9uIGEgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9iZ19hcnJvdzcuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogNTAlIDE5cHg7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVw -ZWF0OyB9CiAgZGl2LmN0X3NlYXJjaCB7IG1hcmdpbjogLTRweCAwcHggMXB4OyB9CiAgZGl2LmN0 -X3NlYXJjaGluIGRpdi5wYXJ0IHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiAxMDAlOyB9CiAgZGl2Lmxh -eV9zdWJzaWRpYXJ5IHsgcG9zaXRpb246IHN0YXRpYzsgd2lkdGg6IDEwMCU7IG1hcmdpbjogLTIw -cHggMHB4IDIwcHg7IH0KICBkaXYubGF5X3N1YnNpZGlhcnkgZGl2LmlubmVyIHsgcGFkZGluZzog -MjBweDsgfQogIGRpdi5sYXlfc3Vic2lkaWFyeSBkbCB7IHdpZHRoOiAxMDAlOyBtYXJnaW4tdG9w -OiAxNXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBi -b3JkZXItdG9wLWNvbG9yOiByZ2IoMjIxLCAyMjEsIDIyMSk7IHBhZGRpbmctdG9wOiAxNXB4OyB9 -CiAgZGl2LmxheV9zdWJzaWRpYXJ5IGRsLnR5cGUzLCBkaXYubGF5X3N1YnNpZGlhcnkgZGwudHlw -ZTQgeyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAgZGl2LmxheV9zdWJzaWRpYXJ5IGRsLnR5cGUxIHsg -Ym9yZGVyLXRvcC1zdHlsZTogbm9uZTsgbWFyZ2luLXRvcDogMHB4OyBwYWRkaW5nLXRvcDogMHB4 -OyB9CiAgZGl2LmxheV9zdWJzaWRpYXJ5IGRkIGEgeyBtYXJnaW4tdG9wOiAwcHg7IH0KICBkaXYu -YmdfY29yZXZhbHVlIHsgaGVpZ2h0OiBhdXRvOyBwYWRkaW5nOiAwcHggMHB4IDEwcHg7IGJhY2tn -cm91bmQ6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dy -b3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQogIHAuY29yZXZhbHVlX3Nsb2dhbiB7IHBh -ZGRpbmc6IDEwcHggMHB4IDMwcHg7IH0KICBwLmNvcmV2YWx1ZV9zbG9nYW4gc3Ryb25nLnRpdCB7 -IGZsb2F0OiBub25lOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDBweCAw -cHggMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE4cHg7IH0KICBwLmNvcmV2 -YWx1ZV9zbG9nYW4gc3Bhbi5kZXNjIHsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyB3aWR0 -aDogMTAwJTsgZm9udC1zaXplOiAxM3B4OyB9CiAgdWwudmFsdWVfbGlzdCBsaSB7IHBhZGRpbmc6 -IDBweDsgfQogIHVsLnZhbHVlX2xpc3QgbGkgZGl2LmlubmVyIHsgcGFkZGluZzogMzBweCAwcHg7 -IGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0KICB1bC52 -YWx1ZV9saXN0IGxpIGRpdi5pbm5lciArIGRpdi5pbm5lciB7IGJvcmRlci10b3Atd2lkdGg6IDFw -eDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIy -NSwgMjI1KTsgfQogIHVsLnZhbHVlX2xpc3QgbGkgZGl2LmlubmVyIHAgeyBmb250LXNpemU6IDEz -cHg7IH0KICB1bC52YWx1ZV9saXN0IGxpIGRpdi5pbm5lciBwIHN0cm9uZy50aXQgeyBmb250LXNp -emU6IDE1cHg7IH0KICAuYmdfaWRlYSB7IH0KICBkaXYuaWRlYV9jb250YXJlYSB7IHBhZGRpbmct -Ym90dG9tOiAzMHB4OyB9CiAgZGl2LmlkZWFfY29udGFyZWEgc3Bhbi50aXQgeyB3aWR0aDogMTAw -JTsgZmxvYXQ6IG5vbmU7IGZvbnQtc2l6ZTogMThweDsgfQogIGRpdi5pZGVhX2NvbnRhcmVhIHNw -YW4uc3ViIHsgd2lkdGg6IDEwMCU7IGZsb2F0OiBub25lOyBtYXJnaW4tdG9wOiAxNXB4OyBmb250 -LXNpemU6IDE1cHg7IH0KICB1bC5pZGVhX2NvbnRsaXN0IHsgbWFyZ2luOiA1MHB4IGF1dG8gMHB4 -OyBvdmVyZmxvdzogaGlkZGVuOyB3aWR0aDogMTAwJTsgfQogIHVsLmlkZWFfY29udGxpc3QgbGkg -eyBmbG9hdDogbGVmdDsgd2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMTNweDsgYmFja2dyb3VuZC1w -b3NpdGlvbjogMHB4IDhweDsgfQogIHVsLmlkZWFfY29udGxpc3QgbGkgaW1nLmltZyB7IGRpc3Bs -YXk6IGJsb2NrOyBtYXJnaW46IDBweCBhdXRvOyB9CiAgdWwuaWRlYV9jb250bGlzdCBsaS5maXIg -eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy9h -Ym91dC9iZ19pZGVhX2Fycm93X20ucG5nKTsgd2lkdGg6IDEwMCU7IHBhZGRpbmctYm90dG9tOiA0 -MHB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5pZGVhX2NvbnRs -aXN0IGxpLnNlYyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28u -a3IvaW1hZ2VzL2Fib3V0L2JnX2lkZWFfYXJyb3cyX20ucG5nKTsgd2lkdGg6IDEwMCU7IHBhZGRp -bmctYm90dG9tOiA0MHB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiA1MCUgMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1 -bC5pZGVhX2NvbnRsaXN0IGxpIHNwYW4udGl0IHsgd2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMTVw -eDsgfQogIHVsLnR4dF9saXN0IHsgbWFyZ2luOiAyMHB4IGF1dG8gMHB4OyB3aWR0aDogODAlOyB9 -CiAgdWwuaWRlYV9jb250bGlzdCBsaS5zZWMgdWwudHh0X2xpc3QgeyBtYXJnaW46IDIwcHggYXV0 -byAwcHg7IHdpZHRoOiA4MCU7IH0KICBoMy5ibHVlIGEgeyBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9 -CiAgLmJnX2NhcmVlcjIgeyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBp -bml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICAu -ZmllbGRfc2VjdGlvbiAuZmllbGRfbGlzdCB7IG1hcmdpbi10b3A6IDBweDsgYmFja2dyb3VuZDog -bm9uZTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJl -cGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3Q6Zmly -c3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAyNXB4OyB9CiAgLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xp -c3QgbGkgeyBtYXJnaW4tdG9wOiAyMHB4OyBwYWRkaW5nOiAyMHB4IDBweCAwcHg7IHdpZHRoOiAx -MDAlOyBoZWlnaHQ6IGF1dG87IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHls -ZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQogIC5maWVs -ZF9zZWN0aW9uIC5maWVsZF9saXN0OmZpcnN0LWNoaWxkIGxpOmZpcnN0LWNoaWxkIHsgbWFyZ2lu -OiAwcHg7IHBhZGRpbmc6IDBweDsgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQogIC5maWVsZF9z -ZWN0aW9uIC5maWVsZF9saXN0IGxpOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXJpZ2h0OiAwcHg7IH0K -ICAuZmllbGRfc2VjdGlvbiAuZmllbGRfbGlzdCBsaSAuZmllbGRfdGl0IHsgcG9zaXRpb246IHJl -bGF0aXZlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBwYWRkaW5nLWxlZnQ6IDYwcHg7IHdpZHRoOiBh -dXRvOyBoZWlnaHQ6IDUwcHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KICAuZmllbGRfc2VjdGlvbiAu -ZmllbGRfbGlzdCBsaSAuZmllbGQgeyBtYXJnaW46IDBweDsgZm9udC1zaXplOiAxNnB4OyBtaW4t -aGVpZ2h0OiAyM3B4OyB9CiAgLmZpZWxkX3NlY3Rpb24gLmZpZWxkX2xpc3QgbGkgLmZpZWxkX3Rp -dCAubGlzdF9ubyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtOHB4OyBsZWZ0OiAwcHg7IGZv -bnQtc2l6ZTogNDVweDsgfQogIC50YmxvY2sgeyBkaXNwbGF5OiBub25lOyB9CiAgcC5idG5fY2Fy -ZWVyX3NlYXJjaCB7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAw -cHg7IHRvcDogOXB4OyBwYWRkaW5nLWJvdHRvbTogMTJweDsgfQogIHAuYnRuX2NhcmVlcl9zZWFy -Y2gub24geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9iZ19hcnJvdzYuZ2lmKTsgei1pbmRleDogMTsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAl -IDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgcC5idG5f -Y2FyZWVyX3NlYXJjaC5vbiArIGZvcm0gZGl2LmNhcmVlcl9zZWFyY2ggeyBkaXNwbGF5OiBibG9j -azsgfQogIGRpdi5jYXJlZXJfc2VhcmNoIHsgZGlzcGxheTogbm9uZTsgbWFyZ2luOiAtMTNweCAw -cHggMjBweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsg -Ym9yZGVyLXRvcC1jb2xvcjogcmdiKDIxOSwgMjE5LCAyMTkpOyBib3JkZXItYm90dG9tLXdpZHRo -OiAxcHg7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiBy -Z2IoMjE5LCAyMTksIDIxOSk7IHBhZGRpbmc6IDE1cHggMjBweDsgdGV4dC1hbGlnbjogY2VudGVy -OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUwLCAyNTAsIDI1MCk7IGJveC1zaGFkb3c6IHJnYmEo -MCwgMCwgMCwgMC4wOTgwMzkyKSAwcHggMHB4IDNweCBpbnNldDsgYmFja2dyb3VuZC1wb3NpdGlv -bjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9 -CiAgZGl2LmNhcmVlcl9zZWFyY2ggc3Bhbi5ibG9jayB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsg -d2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogIGRpdi5jYXJlZXJfc2VhcmNoIHNw -YW4uYmxvY2sgc2VsZWN0IHsgd2lkdGg6IDQ5JTsgfQogIGRpdi5jYXJlZXJfc2VhcmNoIHNwYW4u -YmxvY2s6Zmlyc3QtY2hpbGQgc2VsZWN0IHsgbWFyZ2luLWJvdHRvbTogNXB4OyB9CiAgZGl2LmNh -cmVlcl9zZWFyY2ggc3Bhbi5idG5fdGJsIHsgbWFyZ2luLXRvcDogMTBweDsgfQogIHVsLnJlY3J1 -aXRfbGlzdCB7IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItdG9wLXdpZHRoOiAycHg7IGJvcmRlci10 -b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMTQ1LCAyMjApOyB9CiAg -dWwucmVjcnVpdF9saXN0IGxpIHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyBwYWRkaW5n -OiAxNHB4IDEzcHggMTFweDsgfQogIHVsLnJlY3J1aXRfbGlzdCBsaTpmaXJzdC1jaGlsZCB7IGJv -cmRlci10b3Atc3R5bGU6IG5vbmU7IH0KICB1bC5yZWNydWl0X2xpc3QgbGkgc3Bhbi50aXQgc3Bh -bi5jYXJlZXIgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA0MHB4OyBwYWRkaW5nLXJp -Z2h0OiA2cHg7IH0KICB1bC5yZWNydWl0X2xpc3QgbGkgYSB7IGRpc3BsYXk6IGJsb2NrOyBtYXJn -aW4tdG9wOiA1cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICB1bC5yZWNydWl0X2xpc3QgbGkgc3Bh -bi5kYXRlIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDVweDsgfQogIGRpdi52aXN1YWxf -YXJlYSB7IGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1wb3NpdGlvbjog -aW5pdGlhbCBpbml0aWFsICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGlu -aXRpYWwgIWltcG9ydGFudDsgfQogIGRpdi52aXN1YWxfYXJlYSBkaXYudmlzdWFsX3R4dCB7IHBh -ZGRpbmc6IDIwcHggMHB4OyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgYmFja2dyb3VuZDogbm9u -ZSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWwgIWltcG9y -dGFudDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbCAhaW1wb3J0YW50OyB9CiAg -ZGl2LnZpc3VhbF9hcmVhIHN0cm9uZyB7IGZvbnQtc2l6ZTogMjZweDsgbGV0dGVyLXNwYWNpbmc6 -IC0ycHg7IH0KICBkaXYudmlzdWFsX2FyZWEgc3BhbiB7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVy -LXNwYWNpbmc6IC0xcHg7IH0KICAudGl0bGVfYXJlYSB7IG1hcmdpbi1ib3R0b206IDE1cHg7IH0K -ICAudGl0bGVfYXJlYSBoMyB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDBweCAwcHggNXB4OyBm -b250LXNpemU6IDE4cHg7IH0KICAudGl0bGVfYXJlYSAuc3ViX3R4dCB7IG1hcmdpbjogMHB4OyB9 -CiAgaDMucmVjcnVpdCB7IGZvbnQtc2l6ZTogMThweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1i -b3R0b206IDVweDsgfQogIGgzLnJlY3J1aXQgKyBwIHsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjog -MHB4IDBweCAyMHB4OyBmb250LXNpemU6IDEzcHg7IH0KICBoMy5yZWNydWl0IHNwYW4uc3ViX3R4 -dC5ub25lIHsgbWFyZ2luOiA1cHggMHB4IDE1cHg7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNw -YWNpbmc6IC0xcHg7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0KICBoNC5yZWNydWl0LCBo -NC5yZWNydWl0X2JsdWUgeyBmb250LXNpemU6IDE1cHg7IH0KICB1bC50YWJfbWVudTYgbGkgYSB7 -IGhlaWdodDogMjRweDsgcGFkZGluZzogMHB4IDE1cHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIGRp -di5yZWNydWl0X3N0ZXAgeyBtYXJnaW4tdG9wOiAyMHB4OyB9CiAgZGl2LnJlY3J1aXRfc3RlcCBo -NCB7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzsgbWFyZ2luLXJpZ2h0OiAwcHg7IHBhZGRpbmc6 -IDEwcHggMTVweDsgZm9udC1zaXplOiAxM3B4OyB9CiAgZGl2LnJlY3J1aXRfc3RlcCB1bCBsaSB7 -IGZvbnQtc2l6ZTogMTNweDsgfQogIGRpdi5yZWNydWl0X3N0ZXAgdWwgbGkucWEgeyBtYXJnaW4t -dG9wOiAxNXB4OyB9CiAgZGl2LnJlY3J1aXRfc3RlcCB1bCBkaXYudGJsX3R5cGUgeyBkaXNwbGF5 -OiBibG9jazsgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsgbWFyZ2luLWxlZnQ6IC03cHg7IH0K -ICBkaXYucmVjcnVpdF9zdGVwIHVsIGRsIHsgZGlzcGxheTogYmxvY2s7IH0KICBkaXYucmVjcnVp -dF9zdGVwIHVsIGRsIGR0IHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiBhdXRvOyB9CiAgZGl2LnJl -Y3J1aXRfc3RlcCB1bCBkbCBkZCB7IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItdG9wLXdpZHRoOiAx -cHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiByZ2IoMjI1LCAy -MjUsIDIyNSk7IGJvcmRlci1sZWZ0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAxMHB4IDhweDsgdmVy -dGljYWwtYWxpZ246IG1pZGRsZTsgfQogIGRpdi5yZWNydWl0X3N0ZXAgdWwgZGwgZGQgZW0geyBk -aXNwbGF5OiBibG9jazsgbWFyZ2luOiAwcHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIGRpdi5yZWNy -dWl0X3N0ZXAgdWwgZGwgZGQgYnIgeyBkaXNwbGF5OiBub25lOyB9CiAgZGl2LnJlY3J1aXRfc3Rl -cCB1bC5wcm9jZXNzIHsgbWFyZ2luOiAxMHB4IDBweCAtMTBweDsgfQogIGRpdi5yZWNydWl0X3N0 -ZXAgdWwgbGkgaW1nLmltZ19zc2F0IHsgZGlzcGxheTogbm9uZTsgfQogIHVsLmhpc3RvcnlfcmVj -cnVpdCBsaSB7IG92ZXJmbG93OiBoaWRkZW47IHBhZGRpbmc6IDIwcHggMHB4OyBib3JkZXItdG9w -LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBib3JkZXItdG9wLWNvbG9yOiBy -Z2IoMjI1LCAyMjUsIDIyNSk7IH0KICB1bC5oaXN0b3J5X3JlY3J1aXQgbGkgc3Bhbi55ZWFyIHsg -ZGlzcGxheTogYmxvY2s7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzsgbWFyZ2luLXRvcDogMHB4 -OyB0ZXh0LWFsaWduOiBsZWZ0OyB9CiAgdWwuaGlzdG9yeV9yZWNydWl0IGxpIGVtIHsgZGlzcGxh -eTogYmxvY2s7IG1hcmdpbjogMTBweCAwcHg7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzsgZm9u -dC1zaXplOiAxNXB4OyB9CiAgdWwuaGlzdG9yeV9yZWNydWl0IGxpIGVtIGJyIHsgZGlzcGxheTog -bm9uZTsgfQogIHVsLmhpc3RvcnlfcmVjcnVpdCBsaSBwLCB1bC5oaXN0b3J5X3JlY3J1aXQgbGkg -ZGl2Lmdyb3VwIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgdWwuaGlzdG9yeV9yZWNydWl0IGxpIGRp -di5ncm91cCB1bCB7IG1hcmdpbi10b3A6IDEwcHg7IH0KICB1bC5oaXN0b3J5X3JlY3J1aXQgbGkg -ZGl2Lmdyb3VwIHVsIGxpIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgcC5yZWNydWl0X3Nsb2dhbiB7 -IHBhZGRpbmc6IDIwcHggMTVweDsgfQogIHAucmVjcnVpdF9zbG9nYW4gc3Ryb25nIHsgZGlzcGxh -eTogYmxvY2s7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzsgcGFkZGluZzogMHB4OyBmb250LXNp -emU6IDE4cHg7IH0KICBwLnJlY3J1aXRfc2xvZ2FuIHNwYW4uZGVzYyB7IGRpc3BsYXk6IGJsb2Nr -OyBtYXJnaW4tdG9wOiAxMHB4OyB3aWR0aDogYXV0bzsgZm9udC1zaXplOiAxM3B4OyB9CiAgdWwu -c3VwcG9ydF9saXN0IHsgbWFyZ2luOiA0MHB4IDBweCAyMHB4OyBwYWRkaW5nLXRvcDogNjBweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2Fy -ZWVyL2JnX3N1cHBvcnRfbGlzdF9tLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAwJTsg -YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5zdXBwb3J0X2xp -c3QgbGkgeyBwYWRkaW5nOiAyMHB4IDBweDsgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50OyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWwgIWltcG9ydGFudDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbCAhaW1wb3J0YW50OyB9CiAgdWwuc3VwcG9ydF9saXN0 -IGxpIGVtIHsgZmxvYXQ6IG5vbmU7IHdpZHRoOiBhdXRvOyBmb250LXNpemU6IDE1cHg7IH0KICB1 -bC5zdXBwb3J0X2xpc3QgbGkgZW0gYnIgeyBkaXNwbGF5OiBub25lOyB9CiAgdWwuc3VwcG9ydF9s -aXN0IGxpIHAgeyBtYXJnaW4tdG9wOiAxMHB4OyBmb250LXNpemU6IDEzcHg7IH0KICB1bC50cmFp -bmluZ19saXN0IHsgZGlzcGxheTogYmxvY2s7IGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7IH0K -ICB1bC50cmFpbmluZ19saXN0IGxpIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiBhdXRvOyBmb250 -LXNpemU6IDEzcHg7IGJhY2tncm91bmQ6IG5vbmU7IGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsg -Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigyMjUs -IDIyNSwgMjI1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgdWwudHJhaW5pbmdfbGlzdCBsaSBzdHJv -bmcgeyBkaXNwbGF5OiBibG9jazsgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7IGJvcmRlci1ib3R0 -b20td2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IGJvcmRlci1ib3R0b20t -Y29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgcGFkZGluZzogMTBweCAwcHg7IHRleHQtYWxpZ246 -IGNlbnRlcjsgfQogIHVsLnRyYWluaW5nX2xpc3QgbGkgZGl2LnR4dCB7IHBhZGRpbmc6IDEzcHgg -MTBweDsgfQogIHVsLnRyYWluaW5nX2xpc3QgbGkgZGl2LnR4dCB1bCBsaSB7IGJvcmRlcjogbm9u -ZTsgfQogIGRsLnFuYSB7IGZvbnQtc2l6ZTogMTNweDsgfQogIHVsLnNjc2FfbGlzdCB7IG1hcmdp -bjogMjBweCAxNXB4IDBweDsgfQogIHVsLnNjc2FfbGlzdCBsaSB7IG92ZXJmbG93OiBoaWRkZW47 -IGZsb2F0OiBub25lOyB3aWR0aDogYXV0bzsgbWFyZ2luLXRvcDogMjBweDsgdGV4dC1hbGlnbjog -bGVmdDsgfQogIHVsLnNjc2FfbGlzdCBsaTpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDBweDsg -fQogIHVsLnNjc2FfbGlzdCBsaSBzcGFuLnRodW1iIHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMHB4 -OyB9CiAgdWwuc2NzYV9saXN0IGxpIHNwYW4udGh1bWIgaW1nIHsgd2lkdGg6IDgycHg7IGhlaWdo -dDogODJweDsgfQogIHVsLnNjc2FfbGlzdCBsaSBwIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFkZGlu -ZzogMjVweCAwcHggMHB4IDIwcHg7IH0KICB1bC5zY3NhX2xpc3QgbGkgcCBiciB7IGRpc3BsYXk6 -IG5vbmU7IH0KICAuY29tcGFueV92aWV3IHsgZm9udC1zaXplOiAxM3B4OyB9CiAgLmNvbXBhbnlf -Ym94IC5waG90byB7IGZsb2F0OiBub25lOyB9CiAgLmNvbXBhbnlfYm94IC5waG90byBpbWcgeyB3 -aWR0aDogMTAwJTsgfQogIC5jb21wYW55X2JveCBkbCB7IHBhZGRpbmc6IDI1cHggMTBweCAzMHB4 -OyB9CiAgLmNvbXBhbnlfYm94IGR0IHsgbWFyZ2luOiAwcHggMHB4IDE1cHg7IGZvbnQtc2l6ZTog -MThweDsgfQogIC5jb21wYW55X2JveCBkZCB7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6 -IDEyMCU7IH0KICAuY29tcGFueV9zZWN0aW9uIGgzIHsgZm9udC1zaXplOiAxOHB4OyB9CiAgLmNv -bXBhbnlfc2VjdGlvbiBoNCB7IGZvbnQtc2l6ZTogMTZweDsgfQogIC5jb21wYW55X3NlY3Rpb24g -LmJsdWVfcG9pbnQgeyBtYXJnaW4tYm90dG9tOiA4cHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIC5j -b21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlzdG9yeSBsaSB7IHBhZGRpbmctbGVmdDogOTBweDsg -fQogIC5jb21wYW55X3NlY3Rpb24gLmNvbXBhbnlfaGlzdG9yeSBsaSBzcGFuIHsgbWFyZ2luLWxl -ZnQ6IC05MHB4OyB9CiAgLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV9oaXN0b3J5IGxpIHNwYW4u -bW9udGggeyBwYWRkaW5nLWxlZnQ6IDQ3cHg7IH0KICAuY29tcGFueV9zZWN0aW9uIC5jb21wYW55 -X2J1c2luZXNzIGxpIHsgcGFkZGluZy1sZWZ0OiAwcHg7IH0KICAuY29tcGFueV9zZWN0aW9uIC5j -b21wYW55X2J1c2luZXNzIGxpIGltZyB7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBibG9jazsgbWFy -Z2luOiAwcHggMHB4IDIwcHg7IH0KICAuY29tcGFueV9zZWN0aW9uIC5jb21wYW55X2J1c2luZXNz -IGxpIHN0cm9uZyB7IGZvbnQtc2l6ZTogMTVweDsgfQogIC5jb21wYW55X3NlY3Rpb24gLmNvbXBh -bnlfdGVsIGxpIHsgbWFyZ2luLXRvcDogOHB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgfQogIC5jb21w -YW55X3NlY3Rpb24gLmNvbXBhbnlfdGVsIGxpOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMHB4 -OyB9CiAgLmNvbXBhbnlfc2VjdGlvbiAuY29tcGFueV90ZWwgbGkgc3BhbiB7IGZsb2F0OiBub25l -OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwcHggMHB4IDVweDsgfQogIC5jb21wYW55X3NlY3Rp -b24gLmNvbXBhbnlfdGVsIGxpIGEgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZy1ib3R0b206IDNw -eDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDJweCAhaW1wb3J0YW50OyB9CiAgLmJnX2NhcmVl -cl9pbmZvIHsgcGFkZGluZy1ib3R0b206IDBweDsgYmFja2dyb3VuZDogbm9uZTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBp -bml0aWFsOyB9CiAgLmNhcmVlcl9saXN0IGxpIGEubGlua19zZWN0aW9uIHsgcGFkZGluZy1sZWZ0 -OiAxNDBweDsgaGVpZ2h0OiA4MnB4OyB9CiAgLmNhcmVlcl9saXN0IGxpIGltZy50aHVtYiB7IHdp -ZHRoOiAxMjBweDsgaGVpZ2h0OiA4MHB4OyB9CiAgLmNhcmVlcl9saXN0IGxpIC50aXQgeyBoZWln -aHQ6IDQ4cHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIC5jYXJlZXJfbGlzdCBsaSAudGl0IHNwYW4g -eyBtYXJnaW4tdG9wOiAwcHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIC5jYXJlZXJfbGlzdCBsaSAu -Y29udCB7IGhlaWdodDogMzRweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KICAuc2Ftc3VuZ2lu -X2JveCB7IHBhZGRpbmc6IDBweDsgaGVpZ2h0OiAxJTsgZm9udC1zaXplOiAxM3B4OyB9CiAgLnNh -bXN1bmdpbl9ib3ggLnBob3RvIHsgcG9zaXRpb246IHN0YXRpYzsgfQogIC5zYW1zdW5naW5fYm94 -IC5waG90byBpbWcgeyB3aWR0aDogMTAwJTsgfQogIC5zYW1zdW5naW5fYm94IC5zYW1zdW5naW4g -eyBwYWRkaW5nOiAyNXB4OyB9CiAgLnNhbXN1bmdpbl9ib3ggLnNhbXN1bmdpbiBkdCB7IG1hcmdp -bi1ib3R0b206IDEwcHg7IGZvbnQtc2l6ZTogMThweDsgfQogIC5zYW1zdW5naW5fYm94IC5zYW1z -dW5naW4gZHQgc3BhbiB7IGZvbnQtc2l6ZTogMjJweDsgfQogIC5zYW1zdW5naW5fYm94IC5zYW1z -dW5naW4gZGQgeyBwb3NpdGlvbjogc3RhdGljOyBwYWRkaW5nOiAwcHg7IH0KICAuc2Ftc3VuZ2lu -IGg0IHsgZm9udC1zaXplOiAxOHB4OyB9CiAgLnNhbXN1bmdpbl9xbmEgeyBmb250LXNpemU6IDEz -cHg7IH0KICAuc2Ftc3VuZ2luX3FuYSBkdCB7IHBhZGRpbmctbGVmdDogMzNweDsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL2JnX3Fu -YS5naWYpOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LCAyNDUsIDI0NSk7IGJhY2tncm91bmQt -cG9zaXRpb246IDlweCAxMnB4OyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQogIC5zYW1zdW5naW5fcW5hIGRkIHsgbWFyZ2luLXRvcDogMjBweDsgcGFkZGluZy1sZWZ0 -OiAzM3B4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2lt -YWdlcy9jYXJlZXIvYmdfcW5hLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IDlweCAtMTgzcHg7 -IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CiAgLnBob3RvX3FuYSB7 -IG1hcmdpbjogMHB4OyB9CiAgLnBob3RvX3FuYSBkbCB7IG1hcmdpbi1ib3R0b206IDBweDsgfQog -IC5waG90b19xbmEgZHQ6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwcHg7IH0KICAucGhvdG9f -cW5hIC5xbmFfcGhvdG8geyBmbG9hdDogbm9uZTsgbWFyZ2luLWJvdHRvbTogNDBweDsgdGV4dC1h -bGlnbjogY2VudGVyOyB9CiAgLnBob3RvX3IgLnNhbXN1bmdpbl9xbmEsIC5waG90b19sIC5zYW1z -dW5naW5fcW5hIHsgcGFkZGluZzogMHB4OyB9CiAgLnNhbXN1bmdpbl9hcmVhMiB7IG1hcmdpbi1i -b3R0b206IDIwcHg7IGZvbnQtc2l6ZTogMTNweDsgfQogIC5zYW1zdW5naW5fYXJlYTIgaDQgeyBt -YXJnaW46IDQwcHggMHB4IDE1cHg7IHBhZGRpbmctdG9wOiAzNXB4OyB9CiAgLnNhbXN1bmdpbl9h -cmVhMiBoNDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDQwcHg7IH0KICAuc2Ftc3VuZ2luX2Fy -ZWEyIC5waG90b19yIHNwYW4ucGhvdG8sIC5zYW1zdW5naW5fYXJlYTIgLnBob3RvX2wgc3Bhbi5w -aG90byB7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMjBweDsg -dGV4dC1hbGlnbjogY2VudGVyOyB9CiAgLnNhbXN1bmdpbl9hcmVhMiAucGhvdG9fciBzcGFuLnRp -dCwgLnNhbXN1bmdpbl9hcmVhMiAucGhvdG9fbCBzcGFuLnRpdCwgLnNhbXN1bmdpbl9hcmVhMiAu -cGhvdG9fciBzcGFuLnR4dCwgLnNhbXN1bmdpbl9hcmVhMiAucGhvdG9fbCBzcGFuLnR4dCwgLnNh -bXN1bmdpbl9hcmVhMiAucGhvdG9fbC50eXBlMiBzcGFuLnR4dCB7IHBhZGRpbmc6IDBweDsgfQog -IC5tZW1faW50ZXJ2aWV3IHsgbWFyZ2luLXRvcDogNDBweDsgfQogIC5tZW1faW50ZXJ2aWV3IC5p -bnRlcnZpZXdlciB7IG1hcmdpbi1ib3R0b206IDBweDsgZm9udC1zaXplOiAxNXB4OyB9CiAgLm1l -bV9pbnRlcnZpZXcgLmludGVydmlld2VyIHNwYW4geyBmb250LXNpemU6IDE4cHg7IH0KICAubWVt -X2ludGVydmlldyAuYm94X3NlY3Rpb24geyBiYWNrZ3JvdW5kOiBub25lOyBiYWNrZ3JvdW5kLXBv -c2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRp -YWw7IH0KICAubWVtX2ludGVydmlldyAuYm94X3NlY3Rpb24gLmxlZnRhcmVhLCAubWVtX2ludGVy -dmlldyAuYm94X3NlY3Rpb24gLnJpZ2h0YXJlYSB7IGZsb2F0OiBub25lOyB3aWR0aDogMTAwJTsg -fQogIC5tZW1faW50ZXJ2aWV3IGRsIHsgcGFkZGluZzogMHB4IDEwcHg7IH0KICAubWVtX2ludGVy -dmlldyBkdCB7IG1hcmdpbjogMTVweCAwcHggMTBweDsgZm9udC1zaXplOiAxNXB4OyB9CiAgLm1l -bV9pbnRlcnZpZXcgZHQuaCB7IG1pbi1oZWlnaHQ6IGF1dG87IGhlaWdodDogYXV0bzsgfQogIC5t -ZW1faW50ZXJ2aWV3IGR0OmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMTVweDsgfQogIC5tZW1f -aW50ZXJ2aWV3IGRkIGltZy5ibG9ja2ltZyB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbm9uZTsg -cGFkZGluZzogMHB4IDBweCA3cHg7IH0KICBkaXYudmlzdWFsX2FyZWEgZGl2LnZpc3VhbF90eHQu -YiB7IHBhZGRpbmc6IDBweCAwcHggMzVweDsgfQogIGRsLnRhbG5ldF9saXN0IHsgYmFja2dyb3Vu -ZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL21iZ190 -YWxlbnRfYS5qcGcpOyBwYWRkaW5nOiAwcHggMHB4IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246 -IDIwcHggMzBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBk -bC50YWxuZXRfbGlzdC5iIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3Vu -Zy5jby5rci9pbWFnZXMvY2FyZWVyL21iZ190YWxlbnRfYi5qcGcpOyBwYWRkaW5nOiAwcHggMHB4 -IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDIwcHggMzBweDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkbC50YWxuZXRfbGlzdC5kIHsgYmFja2dyb3VuZC1p -bWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvY2FyZWVyL21iZ190YWxl -bnRfYy5qcGcpOyBwYWRkaW5nOiAwcHggMHB4IDIwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDIw -cHggMzBweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkbC50 -YWxuZXRfbGlzdCBkdCB7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDYwMDsgcGFkZGlu -ZzogMjBweCAwcHggMjBweCAxMTBweDsgfQogIGRsLnRhbG5ldF9saXN0IGR0IHN0cm9uZy5ibHVl -X3R4dCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBw -YWRkaW5nLWJvdHRvbTogMHB4OyB9CiAgZGwudGFsbmV0X2xpc3QgZHQgZW0geyBkaXNwbGF5OiBi -bG9jazsgY29sb3I6IHJnYig2OCwgMTIxLCAxNTMpOyBmb250LXNpemU6IDExcHg7IHBhZGRpbmct -dG9wOiAxMHB4OyB9CiAgZGwudGFsbmV0X2xpc3QgZGQgeyBmb250LXNpemU6IDEzcHg7IGNvbG9y -OiByZ2IoNDEsIDU2LCA3Mik7IHBhZGRpbmctdG9wOiAxMHB4OyB9CiAgdWwubGlzdF9kZXNjID4g -bGkgeyB3aWR0aDogMTAwJTsgcGFkZGluZy1sZWZ0OiAwcHg7IGxldHRlci1zcGFjaW5nOiAtMXB4 -OyBib3JkZXI6IG5vbmU7IH0KICB1bC5saXN0X2Rlc2MgPiBsaTpmaXJzdC1jaGlsZCB7IHdpZHRo -OiAxMDAlOyB9Cn0= -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: text/css -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/css/with.css - -QGNoYXJzZXQgInV0Zi04IjsKCi53aXRoX2NvbnRlbnRzX2JveGFyZWEgLmZyIHsgb3ZlcmZsb3c6 -IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyB9Cgoud2l0aF9jb250ZW50c19ib3hhcmVhIC5m -ciAucm9sbGluZ2FyZWEgeyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0K -Ci53aXRoX2NvbnRlbnRzX2JveGFyZWEgLmZyIC5yb2xsaW5nYXJlYSBwIHsgZmxvYXQ6IGxlZnQ7 -IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KCmRpdiNtY29udGVudHMgeyBiYWNr -Z3JvdW5kLWNvbG9yOiByZ2IoNjIsIDE1NywgMTk1KTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5p -dGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYj -bV93Y29udGVudHMgeyBkaXNwbGF5OiBub25lOyB9CgpkaXYud2l0aF9jb250YWluZXIgeyB3aWR0 -aDogMTQwMHB4OyBtYXJnaW46IDBweCBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6 -IDgwOyB9CgphLmFsbF9tZW51dmlldyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogMTAw -OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi10b3A6IC0xOXB4OyB0b3A6IDUwJTsgcmln -aHQ6IDBweDsgfQoKZGl2LnZpZXdfYXJlYWluIHsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgdG9wOiA1MCU7IG1hcmdpbi10b3A6IC0xMDBweDsgfQoKLnRlc3RfZGltbWVkIHsgd2lk -dGg6IDEwMCU7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNv -bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHotaW5kZXg6IDk5OyBiYWNrZ3JvdW5kLXBvc2l0aW9u -OiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0K -CmRpdi53aXRoX2FsbCB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcu -Y28ua3IvaW1hZ2VzL3dpdGgvYmdfd2l0aGFsbC5wbmcpOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAy -MzBweDsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiAxMDA7IHRvcDogNTAlOyBtYXJnaW4t -dG9wOiAtODBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYud2l0aF9hbGwgZGl2LndpdGhfaW5h -cmVhIHsgd2lkdGg6IDkwMHB4OyBtYXJnaW46IDBweCBhdXRvOyBwYWRkaW5nOiAzNXB4IDBweCAw -cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKZGl2LndpdGhfYWxs -IGRpdi53aXRoX2luYXJlYSBwLmNvcHkgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogcmdiKDM4 -LCAxNTQsIDIyMik7IG1hcmdpbjogMHB4IDBweCAwcHggMTBweDsgfQoKZGl2LndpdGhfYWxsIGRp -di53aXRoX2luYXJlYSBwLmNvcHkubWdsNzAgeyBtYXJnaW4tbGVmdDogNzBweDsgfQoKZGl2Lndp -dGhfYWxsIGRpdi53aXRoX2luYXJlYSBhLndpdGhfY2xvc2UgeyBkaXNwbGF5OiBpbmxpbmUtYmxv -Y2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAzMHB4OyByaWdodDogMTBweDsgfQoKZGl2Lndp -dGhfYWxsIGRpdi53aXRoX2luYXJlYSBkaXYud2l0aF9idG5hcmVhMiB7IGRpc3BsYXk6IGlubGlu -ZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDMwcHg7IGxlZnQ6IDBweDsgfQoKdWwu -d2l0aF9jb250bGlzdCB7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi10b3A6IDI1cHg7IH0KCnVs -LndpdGhfY29udGxpc3QgbGkgeyBmbG9hdDogbGVmdDsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJn -aW46IDBweCA1cHg7IH0KCnVsLndpdGhfY29udGxpc3QgbGkgaW1nIHsgZGlzcGxheTogYmxvY2s7 -IH0KCnVsLndpdGhfY29udGxpc3QgbGkgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDdw -eCAwcHggMHB4OyB9Cgp1bC53aXRoX2NvbnRsaXN0IGxpLm9uIGEgeyBkaXNwbGF5OiBpbmxpbmUt -YmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyB0ZXh0 -LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKdWwud2l0aF9jb250bGlzdCBsaS5vbiBzcGFuLnNl -bGVjdCB7IG1hcmdpbjogMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAw -cHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2Vz -L3dpdGgvc2VsZWN0X29uLmdpZik7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDE0MHB4 -OyBoZWlnaHQ6IDgwcHg7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAwcHg7IGJhY2tncm91bmQt -cmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9Cgp1bC53aXRoX2NvbnRsaXN0IGxpIHNwYW4u -c2VsZWN0IHsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBub25lOyB9CgpkaXYubWVudWFy -ZWEgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOiA0MHB4OyBtYXJnaW4tbGVm -dDogMjIwcHg7IH0KCmRpdi5tZW51YXJlYSBoMyB7IG1hcmdpbjogMzBweCAwcHggMTBweDsgfQoK -ZGl2Lm1lbnVhcmVhIHAuc3ViX2RlcyB7IG1hcmdpbjogMTVweCAwcHggMHB4OyBmb250LXNpemU6 -IDE2cHg7IGxldHRlci1zcGFjaW5nOiAtMXB4OyB9CgpkaXYubWVudWFyZWEgcC5zdWJfZGVzLncg -eyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB9CgpkaXYubWVudWFyZWEgcC5zdWJfZGVzLncy -IHsgY29sb3I6IHJnYigyNTUsIDIzMSwgMjA4KTsgfQoKZGl2Lm1lbnVhcmVhIHAuc3ViX2Rlcy52 -aW8geyBjb2xvcjogcmdiKDM1LCAyNCwgNjEpOyB9CgpkaXYubWVudWFyZWEgZGl2LndpdGhfYnRu -YXJlYSB7IG1hcmdpbjogMjBweCAwcHggMHB4OyB9CgpkaXYubWVudWFyZWEgZGl2LndpdGhfYXBw -bHkgeyBwYWRkaW5nOiAxMDBweCAwcHggMHB4OyBtYXJnaW46IDBweCAwcHggMHB4IC04cHg7IH0K -CmRpdi5tb3ZpZV9sYXllcmFyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiA4NjBweDsg -dG9wOiAzMHB4OyBsZWZ0OiAzMDBweDsgei1pbmRleDogMTAwOyB9CgpkaXYubW92aWVfbGF5ZXJh -cmVhIGEubW92aWVfY2xvc2UgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgdG9wOiAwcHg7IHJpZ2h0OiAwcHg7IH0KCmRpdi5tb3ZpZV92aWV3IHsgcG9zaXRpb246 -IGFic29sdXRlOyBib3R0b206IDY2cHg7IGxlZnQ6IDMwMHB4OyB3aWR0aDogMzIwcHg7IGhlaWdo -dDogNDNweDsgei1pbmRleDogMTA7IH0KCmRpdi5tb3ZpZV92aWV3IGEgeyBkaXNwbGF5OiBpbmxp -bmUtYmxvY2s7IGNvbG9yOiByZ2IoMjM3LCAxNDYsIDE3MCk7IH0KCmRpdi5tb3ZpZV92aWV3IGEg -aW1nIHsgbWFyZ2luOiAwcHg7IH0KCmRpdi5tb3ZpZV92aWV3IHNwYW4udGl0IHsgZGlzcGxheTog -YmxvY2s7IGNvbG9yOiByZ2IoMjM3LCAxNDYsIDE3MCk7IH0KCmRpdi5tZW50b19uYW1lIHsgcG9z -aXRpb246IGFic29sdXRlOyBib3R0b206IDU4cHg7IGxlZnQ6IDMxMHB4OyB3aWR0aDogMzIwcHg7 -IGhlaWdodDogNDNweDsgei1pbmRleDogMTA7IGNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IH0K -CmRpdi5kcmVhbV9uYW1lIHsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDU4cHg7IGxlZnQ6 -IDMxMHB4OyB3aWR0aDogMzIwcHg7IGhlaWdodDogNDNweDsgei1pbmRleDogMTA7IGNvbG9yOiBy -Z2IoODEsIDYxLCA0Mik7IH0KCmRpdi5nbG9iYWxfbmFtZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg -Ym90dG9tOiA1OHB4OyBsZWZ0OiAzMjVweDsgd2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDQzcHg7IHot -aW5kZXg6IDEwOyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB9CgpkaXYuZG9nX25hbWUgeyBw -b3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNThweDsgbGVmdDogMzEwcHg7IHdpZHRoOiAzMjBw -eDsgaGVpZ2h0OiA0M3B4OyB6LWluZGV4OiAxMDsgY29sb3I6IHJnYigzNSwgMjQsIDYxKTsgfQoK -ZGl2LnNjaG9sYXJzaGlwX25hbWUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNThweDsg -bGVmdDogMzEwcHg7IHdpZHRoOiAzMjBweDsgaGVpZ2h0OiA0M3B4OyB6LWluZGV4OiAxMDsgY29s -b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgfQoKdWwud2l0aF9tZW51IHsgfQoKdWwud2l0aF9tZW51 -IGxpIGgyIHsgZm9udC1zaXplOiAxM3B4OyBtYXJnaW46IDBweCAwcHggMHB4IDIyMHB4OyBwYWRk -aW5nOiAxM3B4IDBweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKdWwud2l0aF9tZW51IGxpIGgyIGEg -eyBmb250LXdlaWdodDogNjAwOyB9Cgp1bC53aXRoX21lbnUgbGkgaDIgYTpob3ZlciB7IGNvbG9y -OiByZ2IoNTEsIDUxLCA1MSk7IH0KCnVsLndpdGhfbWVudSB7IHdpZHRoOiAxMDAlOyBwb3NpdGlv -bjogYWJzb2x1dGU7IHotaW5kZXg6IDU7IH0KCnVsLndpdGhfbWVudSBsaSB7IHBvc2l0aW9uOiBh -YnNvbHV0ZTsgZGlzcGxheTogbm9uZTsgfQoKdWwud2l0aF9tZW51IGxpID4gaDIgeyBtYXJnaW4t -dG9wOiAtNXB4OyB9Cgp1bC53aXRoX21lbnUgbGkgZGl2Lm1lbnVhcmVhIHsgcG9zaXRpb246IHJl -bGF0aXZlOyB9Cgp1bC53aXRoX21lbnUgbGkgZGl2Lm1lbnVhcmVhID4gaDMsIC50aXRfZGVzLCAu -c3ViX2RlcywgLndpdGhfYnRuYXJlYSwgLndpdGhfYXBwbHkgeyBwb3NpdGlvbjogcmVsYXRpdmU7 -IH0KCiN2aXN1YWxfY29udGFpbmVyIHsgd2lkdGg6IDEwMCU7IH0KCiN2aXN1YWxfY29udGFpbmVy -IC5tYWluIHsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRl -bjsgfQoKI3Zpc3VhbF9jb250YWluZXIgLm1haW4gLml0ZW1zIHsgbWF4LXdpZHRoOiAxMDAlOyBw -b3NpdGlvbjogcmVsYXRpdmU7IH0KCmcxMTYgI3Zpc3VhbF9jb250YWluZXIgLm1haW4gLml0ZW1z -IC5pdGVtIHsgbWF4LXdpZHRoOiAxMDAlOyB9CgojdmlzdWFsX2NvbnRhaW5lciAjbGluZV9jb250 -YWluZXIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogYWJzb2x1dGU7IHot -aW5kZXg6IDM7IH0KCiN2aXN1YWxfY29udGFpbmVyICNsaW5lX2NvbnRhaW5lciAubGluZWl0ZW0g -eyB3aWR0aDogMTAwJTsgcG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvaW5kZXgvbWFp -bl9tZW51X2xpbmUucG5nKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBi -YWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IG5vLXJlcGVhdDsgfQoKI3Zpc3VhbF9jb250YWluZXIg -I292ZXJiZ19jb250YWluZXIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjog -YWJzb2x1dGU7IHotaW5kZXg6IDQ7IH0KCiN2aXN1YWxfY29udGFpbmVyICNvdmVyYmdfY29udGFp -bmVyIC5vdmVyYmcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogYWJzb2x1 -dGU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2Vz -L2luZGV4L21haW5fbWVudV9kaW1tZWRfYmcucG5nKTsgZGlzcGxheTogbm9uZTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0IHJl -cGVhdDsgfQoKZGl2LndpdGhfYm94YXJlYSB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nLXRvcDogMzBw -eDsgfQoKZGl2LndpdGhfYm94YXJlYTo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgZGlzcGxheTogYmxv -Y2s7IGNsZWFyOiBib3RoOyB9CgpkaXYud2l0aF9ib3hhcmVhIGRpdi5mbCB7IHdpZHRoOiA1MCU7 -IGZsb2F0OiBsZWZ0OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMzIzcHg7IH0KCmRpdi53 -aXRoX2JveGFyZWEgZGl2LmZsIGltZyB7IHBhZGRpbmc6IDBweDsgd2lkdGg6IDEwMCU7IH0KCmRp -di53aXRoX2JveGFyZWEgZGl2LmZyIHsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNTAlOyBib3JkZXI6 -IDFweCBzb2xpZCByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTIs -IDI1MiwgMjUwKTsgbWFyZ2luLWxlZnQ6IC0ycHg7IGhlaWdodDogMzIxcHg7IGJhY2tncm91bmQt -cG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5p -dGlhbDsgfQoKZGl2LndpdGhfYm94YXJlYSBkaXYuZnIgcCBzdHJvbmcgeyBjb2xvcjogcmdiKDIx -MiwgMTEsIDE3KTsgfQoKZGl2LndpdGhfYm94YXJlYSBkaXYuZnIgcCB7IGZvbnQtc2l6ZTogMThw -eDsgY29sb3I6IHJnYig3MiwgMTI5LCAxNjIpOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBwYWRkaW5n -OiAyOHB4IDI4cHggMHB4OyBmb250LXdlaWdodDogNjAwOyB9CgpkaXYud2l0aF9ib3hhcmVhIGRp -di5mciBzcGFuIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDE1cHg7IGNvbG9y -OiByZ2IoNDEsIDU2LCA3Mik7IHBhZGRpbmc6IDBweCAyOHB4IDI4cHg7IH0KCmRpdi5kcmVhbV9p -bnRyb192aXN1YWwgaDMgeyBwYWRkaW5nLWJvdHRvbTogMjBweDsgZm9udC1mYW1pbHk6ICdOYW51 -bSBNeWVvbmdqbyc7IGZvbnQtc2l6ZTogMzZweDsgY29sb3I6IHJnYigyMzUsIDEzOCwgNDIpOyBs -ZXR0ZXItc3BhY2luZzogLTJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ft -c3VuZy5jby5rci9pbWFnZXMvd2l0aC9iZ19saW5lLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246 -IDAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgbm8tcmVwZWF0OyB9CgpkaXYu -ZHJlYW1faW50cm9fdmlzdWFsIHAgeyBmb250LXNpemU6IDE1cHg7IGxldHRlci1zcGFjaW5nOiAt -MXB4OyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVhIHsgb3ZlcmZsb3c6IGhpZGRlbjsgcGFk -ZGluZzogMzhweCAwcHggNDBweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItdG9wLXN0 -eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAyMjUpOyB9CgpkaXYu -d2l0aF9jb250ZW50c19ib3hhcmVhIGRpdi5mbCB7IG92ZXJmbG93OiBoaWRkZW47IGZsb2F0OiBs -ZWZ0OyB3aWR0aDogMzAwcHg7IGhlaWdodDogMzkwcHg7IH0KCmRpdi53aXRoX2NvbnRlbnRzX2Jv -eGFyZWEgZGl2LmZyIHsgb3ZlcmZsb3c6IGhpZGRlbjsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogNjYl -OyBoZWlnaHQ6IDM5MHB4OyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVhIGRpdi5mciBwIGlt -ZyB7IHdpZHRoOiAxMDAlOyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVhIGRpdi5mbCBoNC5k -cmVhbSB7IGZvbnQtc2l6ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxNjYs -IDEwMCwgMzkpOyBwYWRkaW5nLWJvdHRvbTogNXB4OyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hh -cmVhIGRpdi5mbCBwIHsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgZm9udC1zaXplOiAxNXB4OyBs -ZXR0ZXItc3BhY2luZzogLTFweDsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYSBkaXYudGl0 -IHsgaGVpZ2h0OiAyMDVweDsgfQoKdWwud2l0aF90aHVtX2xpc3QgeyBvdmVyZmxvdzogaGlkZGVu -OyB9Cgp1bC53aXRoX3RodW1fbGlzdCBsaSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHggOHB4 -IDhweCAwcHg7IH0KCnVsLndpdGhfdGh1bV9saXN0IGxpLm9uIGEgeyBkaXNwbGF5OiBpbmxpbmUt -YmxvY2s7IGNvbG9yOiByZ2IoMjQwLCAyMDQsIDExNyk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4 -dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KCnVsLndpdGhfdGh1bV9saXN0IGxpLm9uIHNwYW4u -c2VsZWN0IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBtYXJnaW46 -IDBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTQycHg7IGhlaWdodDogODhweDsg -YmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0 -aC9zZWxlY3Rfb24yLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsg -YmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwud2l0aF90aHVtX2xpc3Qg -bGkgaW1nIHsgd2lkdGg6IDE0MnB4OyBoZWlnaHQ6IDg4cHg7IH0KCmRpdi53aXRoX2NvbnRlbnRz -X2JveGFyZWEuYiB7IHBhZGRpbmctdG9wOiAzOHB4OyBib3JkZXItYm90dG9tLXN0eWxlOiBub25l -OyB9CgpkaXYucm9sbGluZ19jdHJsLmIgeyBkaXNwbGF5OiBub25lOyB9CgpwLnZpc3VhbF9pbWcg -aW1nIHsgZGlzcGxheTogbm9uZTsgfQoKdWwudGFiX21lbnUudGFiMiBsaSB7IGJhY2tncm91bmQ6 -IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1y -ZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2LmJnX2RyZWFtLCBkaXYuYmdfZ2xvYmFsLCBk -aXYuYmdfc2Nob2xhcnNoaXAsIC5iZ19teWRvZyB7IHBhZGRpbmc6IDBweCAwcHggMTVweDsgfQoK -ZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5maXJzdCB7IGJvcmRlcjogbm9uZTsgfQoKZGl2Lndp -dGhfY29udGVudHNfYm94YXJlYS5sYXN0IHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyBib3Jk -ZXItYm90dG9tLXN0eWxlOiBzb2xpZDsgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDIyNSwgMjI1 -LCAyMjUpOyB9CgpkaXYuc2Nob2xhcnNoaXBfaW50cm9fdmlzdWFsIGgzIHsgcGFkZGluZy1ib3R0 -b206IDIwcHg7IGZvbnQtZmFtaWx5OiAnTmFudW0gTXllb25nam8nOyBmb250LXNpemU6IDM2cHg7 -IGNvbG9yOiByZ2IoMTEwLCAxNzAsIDI2KTsgbGV0dGVyLXNwYWNpbmc6IC0ycHg7IGJhY2tncm91 -bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL3dpdGgvYmdfbGlu -ZTIuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi5zY2hvbGFyc2hpcF9pbnRyb192aXN1YWwgcCB7 -IGZvbnQtc2l6ZTogMTVweDsgbGV0dGVyLXNwYWNpbmc6IC0xcHg7IH0KCmRpdi53aXRoX2JveGFy -ZWEgZGl2LmZsLnNjaG9sYXJzaGlwIHsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAy -NTUpOyBoZWlnaHQ6IDIzOHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0 -b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IGluaXRpYWwgaW5pdGlhbDsgfQoKZGl2LndpdGhfYm94YXJlYSBkaXYuZmwuc2Nob2xhcnNoaXAg -aW1nIHsgcGFkZGluZy10b3A6IDZweDsgd2lkdGg6IDEwMCU7IH0KCmRpdi53aXRoX2JveGFyZWEg -ZGl2LmZyLnNjaG9sYXJzaGlwIHsgaGVpZ2h0OiAyMjlweDsgbWFyZ2luLXRvcDogOHB4OyB9Cgpk -aXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBwIHsgY29sb3I6IHJnYigxMDAsIDE2 -NCwgMTApOyB9CgpkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBkbCBkdCB7IGNs -ZWFyOiBib3RoOyBmbG9hdDogbGVmdDsgd2lkdGg6IDE1JTsgbWFyZ2luLWxlZnQ6IDMwcHg7IHBh -ZGRpbmctYm90dG9tOiA1cHg7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHJnYigyOCwgMTIzLCAx -MTEpOyB9CgpkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBkbCBkZCB7IGZsb2F0 -OiBsZWZ0OyB3aWR0aDogNzUlOyBmb250LXNpemU6IDE1cHg7IGNvbG9yOiByZ2IoNDEsIDU2LCA3 -Mik7IGxldHRlci1zcGFjaW5nOiAtMXB4OyBwYWRkaW5nLWJvdHRvbTogNXB4OyB9CgpkaXYud2l0 -aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBkaXYuYnRuX3NjaG9sYXJzaGlwIHsgZGlzcGxh -eTogYmxvY2s7IGNsZWFyOiBib3RoOyBoZWlnaHQ6IDI2cHg7IHdpZHRoOiAxNTVweDsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0aC9iZ19i -dF9zY2hvbGFyc2hpcC5naWYpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1sZWZ0OiAzMHB4 -OyBwYWRkaW5nLXRvcDogMjdweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMTAwJTsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KCmRpdi53aXRoX2JveGFyZWEgZGl2 -LmZyLnNjaG9sYXJzaGlwIGRpdi5idG5fc2Nob2xhcnNoaXAgYSB7IGZvbnQtd2VpZ2h0OiA2MDA7 -IGNvbG9yOiByZ2IoMTMsIDEyMywgMTkxKTsgZm9udC1zaXplOiAxMnB4OyB0ZXh0LWFsaWduOiBj -ZW50ZXI7IH0KCmRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LmZsIGg0LnNjaG9sYXJzaGlw -IHsgY29sb3I6IHJnYig1NiwgMTM0LCAxMjMpOyBmb250LXNpemU6IDI0cHg7IH0KCnVsLndpdGhf -dGh1bV9saXN0IGxpLm9uIHNwYW4uc2VsZWN0LmIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDog -MHB4OyBsZWZ0OiAwcHg7IG1hcmdpbjogMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRo -OiAxNDJweDsgaGVpZ2h0OiA4OHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5z -YW1zdW5nLmNvLmtyL2ltYWdlcy93aXRoL3NlbGVjdF9vbjMuZ2lmKTsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFs -OyB9CgpkaXYuZ2xvYmFsX2ludHJvX3Zpc3VhbCBoMyB7IHBhZGRpbmctYm90dG9tOiAyMHB4OyBm -b250LWZhbWlseTogJ05hbnVtIE15ZW9uZ2pvJzsgZm9udC1zaXplOiAzNnB4OyBjb2xvcjogcmdi -KDI4LCAxNDIsIDE1OSk7IGxldHRlci1zcGFjaW5nOiAtMnB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1 -cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy93aXRoL2JnX2xpbmUzLmdpZik7IGJh -Y2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQg -bm8tcmVwZWF0OyB9CgpkaXYuZ2xvYmFsX2ludHJvX3Zpc3VhbCBwIHsgZm9udC1zaXplOiAxNXB4 -OyBsZXR0ZXItc3BhY2luZzogLTFweDsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYSBkaXYu -ZmwgaDQuZ2xvYmFsIHsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjog -cmdiKDE0LCAxMDIsIDEyNCk7IHBhZGRpbmctYm90dG9tOiA1cHg7IH0KCnVsLndpdGhfdGh1bV9s -aXN0IGxpLm9uIHNwYW4uc2VsZWN0LmMgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBs -ZWZ0OiAwcHg7IG1hcmdpbjogMHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxNDJw -eDsgaGVpZ2h0OiA4OHB4OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5n -LmNvLmtyL2ltYWdlcy93aXRoL3NlbGVjdF9vbjQuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjog -aW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9Cgp1 -bC5nbG9iYWxfYm94YXJlYSB7IG92ZXJmbG93OiBoaWRkZW47IH0KCnVsLmdsb2JhbF9ib3hhcmVh -IHAgeyBmb250LXNpemU6IDE4cHg7IGNvbG9yOiByZ2IoMTQsIDEwMiwgMTI0KTsgZm9udC13ZWln -aHQ6IDYwMDsgcGFkZGluZy1ib3R0b206IDE4cHg7IH0KCnVsLmdsb2JhbF9ib3hhcmVhIGxpIHsg -Ym9yZGVyOiAxcHggc29saWQgcmdiKDIyNSwgMjI1LCAyMjUpOyB3aWR0aDogMjUlOyBmbG9hdDog -bGVmdDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAzMHB4OyBoZWlnaHQ6IDE2MHB4 -OyBtYXJnaW46IDQwcHggMHB4IDBweCAyNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLCAy -NTIsIDI1MCk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3Vu -ZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQoKdWwuZ2xvYmFsX2JveGFyZWEgbGk6Zmlyc3Qt -Y2hpbGQgeyBtYXJnaW4tbGVmdDogMHB4OyB9Cgp1bC5nbG9iYWxfYm94YXJlYSBsaSBkbCB7IGhl -aWdodDogMTAwcHg7IH0KCnVsLmdsb2JhbF9ib3hhcmVhIGxpIGRsIGR0IHsgY2xlYXI6IGJvdGg7 -IGZsb2F0OiBsZWZ0OyB3aWR0aDogNDAlOyBjb2xvcjogcmdiKDU4LCAxNDAsIDEzMCk7IGZvbnQt -c2l6ZTogMTVweDsgfQoKdWwuZ2xvYmFsX2JveGFyZWEgbGkgZGwgZGQgeyBwYWRkaW5nLWJvdHRv -bTogMTBweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgZm9udC1zaXplOiAxNXB4OyBsaW5lLWhl -aWdodDogMjBweDsgfQoKdWwuZ2xvYmFsX2JveGFyZWEgbGkgc3BhbiB7IGRpc3BsYXk6IGJsb2Nr -OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy93 -aXRoL2JnX2J0X2dsb2JhbC5naWYpOyB3aWR0aDogMTI2cHg7IGhlaWdodDogMjZweDsgdGV4dC1h -bGlnbjogY2VudGVyOyBwYWRkaW5nLXRvcDogMnB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAx -MDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKdWwuZ2xvYmFs -X2JveGFyZWEgbGkgc3BhbiBhIHsgY29sb3I6IHJnYigxMywgMTIzLCAxOTEpOyBmb250LXdlaWdo -dDogNjAwOyBmb250LXNpemU6IDEzcHg7IH0KCnVsLmdsb2JhbF9ib3hhcmVhIGxpIHN0cm9uZyB7 -IGhlaWdodDogMTAwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMCU7IGNvbG9y -OiByZ2IoNTgsIDE0MCwgMTMwKTsgZm9udC1zaXplOiAxNXB4OyBmb250LXdlaWdodDogbm9ybWFs -OyB9CgpkaXYuZ2xvYmFsX2ludHJvX3Zpc3VhbC5iIHsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBi -b3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDIyNSwgMjI1LCAy -MjUpOyBwYWRkaW5nLXRvcDogNDBweDsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCB7IH0KCmRp -di5teWRvZ19pbnRyb192aXN1YWwgaDMgeyBwYWRkaW5nLWJvdHRvbTogMjBweDsgZm9udC1mYW1p -bHk6ICdOYW51bSBNeWVvbmdqbyc7IGZvbnQtc2l6ZTogMzZweDsgY29sb3I6IHJnYigxMzYsIDU2 -LCAxNjMpOyBsZXR0ZXItc3BhY2luZzogLTJweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6 -Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0aC9iZ19saW5lNC5naWYpOyBiYWNrZ3JvdW5k -LXBvc2l0aW9uOiAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJlcGVh -dDsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBoMy5teWRvZ19ib3R0b20geyBwYWRkaW5nLXRv -cDogMjBweDsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBwIHsgZm9udC1zaXplOiAxNXB4OyBs -ZXR0ZXItc3BhY2luZzogLTFweDsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBzcGFuIHsgcGFk -ZGluZzogNzBweCAyNTBweCA0MHB4IDBweDsgbWFyZ2luLXRvcDogLTMwcHg7IGRpc3BsYXk6IGlu -bGluZS1ibG9jazsgbGluZS1oZWlnaHQ6IDIycHg7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRw -Oi8vd3d3LnNhbXN1bmcuY28ua3IvaW1hZ2VzL3dpdGgvYmdfbXlkb2cuZ2lmKTsgYmFja2dyb3Vu -ZC1wb3NpdGlvbjogMTAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0IG5vLXJl -cGVhdDsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBzcGFuIGVtIHsgY29sb3I6IHJnYigyMTIs -IDExLCAxNyk7IH0KCmRpdi5teWRvZ19pbnRyb192aXN1YWwgc3BhbiBwLmNvbV90eHQgeyBwYWRk -aW5nLXRvcDogMjBweDsgY29sb3I6IHJnYig0MSwgNTYsIDcyKTsgZm9udC1zaXplOiAxNXB4OyBs -aW5lLWhlaWdodDogMTQwJTsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBzcGFuIHAuY29tX3R4 -dCBlbSB7IGNvbG9yOiByZ2IoMTM2LCA1NiwgMTYzKTsgfQoKZGl2Lm15ZG9nX2ludHJvX3Zpc3Vh -bCBoNCB7IGZvbnQtc2l6ZTogMjRweDsgY29sb3I6IHJnYig4MywgMTMzLCAxMyk7IHBhZGRpbmc6 -IDMwcHggMHB4IDE1cHg7IH0KCnVsLndpdGhfdGh1bV9saXN0IGxpLm9uIHNwYW4uc2VsZWN0LmQg -eyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IG1hcmdpbjogMHB4OyBk -aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxNDJweDsgaGVpZ2h0OiA4OHB4OyBiYWNrZ3Jv -dW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy93aXRoL3NlbGVj -dF9vbjUuZ2lmKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3Jv -dW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVh -Lm15ZG9nIHsgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTsgfQoKZGl2LndpdGhfY29udGVudHNfYm94 -YXJlYS5teWRvZyAuZmwgeyB3aWR0aDogMzAlOyBwYWRkaW5nOiAwcHggMiU7IGhlaWdodDogYXV0 -bzsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAuZmwgcCB7IHRleHQtYWxpZ246 -IGNlbnRlcjsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAuZmwgcCBpbWcgeyBw -YWRkaW5nLXRvcDogMTVweDsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAuZmwg -YSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5t -eWRvZyAuZmwgc3BhbiB7IGJvcmRlcjogMXB4IHNvbGlkIHJlZDsgYmFja2dyb3VuZC1pbWFnZTog -dXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0aC9idG5fbXlkb2dfZmwyLmdp -Zi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAxMDAlOyBiYWNrZ3JvdW5kLXJlcGVhdDog -bm8tcmVwZWF0IG5vLXJlcGVhdDsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAu -ZnIgeyBib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IGJv -cmRlci1sZWZ0LWNvbG9yOiByZ2IoMjI1LCAyMjUsIDIyNSk7IGJhY2tncm91bmQtY29sb3I6IHJn -YigyNDYsIDI0NiwgMjQ2KTsgd2lkdGg6IDY1JTsgaGVpZ2h0OiBhdXRvOyBwYWRkaW5nLWJvdHRv -bTogMTBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5k -LXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVhLm15 -ZG9nIC5mciBwLnJpZ2h0X3RvcCBpbWcgeyB3aWR0aDogMjAlOyBmbG9hdDogbGVmdDsgcGFkZGlu -Zy1ib3R0b206IDEwcHg7IH0KCmRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEubXlkb2cgLmZyIHAu -cmlnaHRfdG9wIHNwYW4gcCB7IGZsb2F0OiBsZWZ0OyBib3JkZXI6IDFweCBzb2xpZCByZWQ7IGRp -c3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDgwJTsgcGFkZGluZy1yaWdodDogMTBweDsgfQoK -ZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyB7IGJvcmRlcjogMXB4IHNvbGlkIHJnYigy -MjUsIDIyNSwgMjI1KTsgcGFkZGluZzogMHB4OyBoZWlnaHQ6IDUwMHB4OyB9CgpkaXYud2l0aF9j -b250ZW50c19ib3hhcmVhLm15ZG9nIC5mcl9jb24geyBtYXJnaW46IDIwcHg7IHRleHQtYWxpZ246 -IGNlbnRlcjsgfQoKZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAucmlnaHRfdG9wIHsg -cGFkZGluZy1ib3R0b206IDEwcHg7IHRleHQtYWxpZ246IGxlZnQ7IH0KCmRpdi53aXRoX2NvbnRl -bnRzX2JveGFyZWEubXlkb2cgLmZsIGEudmlzdWFsX25vbmUyIHsgZGlzcGxheTogbm9uZTsgfQoK -ZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAuZnJfY29uIGltZyB7IHdpZHRoOiAxMDAl -OyB9CgpkaXYud2l0aF9jb250ZW50c19ib3hhcmVhIGRpdi5mbCBoNC5teWRvZyB7IGZvbnQtc2l6 -ZTogMjRweDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHJnYigxMjYsIDc3LCAxMzgpOyBwYWRk -aW5nLWJvdHRvbTogNXB4OyB9CgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEw -MjRweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7IAogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFy -ZWEgeyBoZWlnaHQ6IDI5MHB4OyB9CiAgdWwud2l0aF90aHVtX2xpc3QgbGkub24gc3Bhbi5zZWxl -Y3QgeyB3aWR0aDogMTA3cHg7IGhlaWdodDogNjZweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6 -IDBweDsgbGVmdDogMHB4OyBtYXJnaW46IDBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNr -Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy93aXRoL3Rf -c2VsZWN0X29uMi5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJh -Y2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICB1bC53aXRoX3RodW1fbGlzdCBs -aSBpbWcgeyB3aWR0aDogMTA3cHg7IGhlaWdodDogNjZweDsgfQogIGRpdi53aXRoX2NvbnRlbnRz -X2JveGFyZWEgZGl2LmZsIHAgeyBmb250LXNpemU6IDEzcHg7IHBhZGRpbmctYm90dG9tOiAyNXB4 -OyBsaW5lLWhlaWdodDogMThweDsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LmZs -IGg0IHsgZm9udC1zaXplOiAxOHB4OyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5iIGRp -di5mbCBwIHsgcGFkZGluZy1ib3R0b206IDVweDsgfQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZy -IHsgcGFkZGluZy1ib3R0b206IDI4cHg7IH0KICBkaXYud2l0aF9jb250ZW50c19ib3hhcmVhIGRp -di5mbCB7IHdpZHRoOiAyMzBweDsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LmZy -IHsgaGVpZ2h0OiBhdXRvOyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJlYSBkaXYudGl0IHsg -aGVpZ2h0OiAxNjdweDsgfQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZyLnNjaG9sYXJzaGlwIGRs -IGR0LCBkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBkbCBkZCB7IGZvbnQtc2l6 -ZTogMTNweDsgfQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZsLnNjaG9sYXJzaGlwIHsgYm9yZGVy -LWJvdHRvbS1zdHlsZTogbm9uZTsgaGVpZ2h0OiBhdXRvOyBwYWRkaW5nOiA1JSAwcHggMHB4OyB9 -CiAgZGl2LndpdGhfYm94YXJlYSBkaXYuZnIuc2Nob2xhcnNoaXAgeyB9CiAgdWwud2l0aF90aHVt -X2xpc3QgbGkub24gc3Bhbi5zZWxlY3QuYiB7IHdpZHRoOiAxMDdweDsgaGVpZ2h0OiA2NnB4OyBw -b3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IG1hcmdpbjogMHB4OyBkaXNw -bGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3LnNhbXN1 -bmcuY28ua3IvaW1hZ2VzL3dpdGgvdF9zZWxlY3Rfb24zLmdpZik7IGJhY2tncm91bmQtcG9zaXRp -b246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsg -fQogIHVsLndpdGhfdGh1bV9saXN0IGxpLm9uIHNwYW4uc2VsZWN0LmMgeyB3aWR0aDogMTA3cHg7 -IGhlaWdodDogNjZweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBt -YXJnaW46IDBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo -aHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdlcy93aXRoL3Rfc2VsZWN0X29uNC5naWYpOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBp -bml0aWFsIGluaXRpYWw7IH0KICB1bC5nbG9iYWxfYm94YXJlYSBwIHsgZm9udC1zaXplOiAxNXB4 -OyBwYWRkaW5nLWJvdHRvbTogMTZweDsgfQogIHVsLmdsb2JhbF9ib3hhcmVhIGxpIGRsIGR0IHsg -Zm9udC1zaXplOiAxM3B4OyB9CiAgdWwuZ2xvYmFsX2JveGFyZWEgbGkgZGwgZGQgeyBmb250LXNp -emU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyB9CiAgdWwuZ2xvYmFsX2JveGFyZWEgbGkgeyBw -YWRkaW5nOiAyJTsgd2lkdGg6IDI3JTsgbWFyZ2luOiA0JSAwcHggMHB4IDMlOyB9CiAgdWwuZ2xv -YmFsX2JveGFyZWEgeyB3aWR0aDogMTAwJTsgfQogIHVsLndpdGhfdGh1bV9saXN0IGxpLm9uIHNw -YW4uc2VsZWN0LmQgeyB3aWR0aDogMTA3cHg7IGhlaWdodDogNjZweDsgcG9zaXRpb246IGFic29s -dXRlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBtYXJnaW46IDBweDsgZGlzcGxheTogaW5saW5lLWJs -b2NrOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1zdW5nLmNvLmtyL2ltYWdl -cy93aXRoL3Rfc2VsZWN0X29uNS5naWYpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGlu -aXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYubXlkb2df -aW50cm9fdmlzdWFsIHNwYW4geyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5zYW1z -dW5nLmNvLmtyL2ltYWdlcy93aXRoL2JnX215ZG9nLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246 -IDEwMCUgMTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBk -aXYud2l0aF9jb250ZW50c19ib3hhcmVhLm15ZG9nIHsgaGVpZ2h0OiBhdXRvOyBtYXJnaW4tYm90 -dG9tOiAzMHB4OyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJlYS5teWRvZyAuZnIgeyBmbG9h -dDogbm9uZTsgcGFkZGluZy1ib3R0b206IDQwcHg7IHdpZHRoOiBhdXRvOyB9CiAgZGl2LndpdGhf -Y29udGVudHNfYm94YXJlYS5teWRvZyAuZnIgc3BhbiBpbWcgeyBwYWRkaW5nLWJvdHRvbTogNjVw -eDsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEubXlkb2cgLmZsIHAgaW1nIHsgd2lkdGg6 -IDEwMCU7IHBhZGRpbmctdG9wOiAzMHB4OyB9Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1h -eC13aWR0aDogNzY3cHgpIHsgCiAgZGl2I21jb250ZW50cyB7IGRpc3BsYXk6IG5vbmU7IH0KICBk -aXYjbV93Y29udGVudHMgeyBkaXNwbGF5OiBibG9jazsgfQogICNtX3djb250ZW50cyAubV93aXRo -X2xpc3RhcmVhIHsgb3ZlcmZsb3c6IGhpZGRlbjsgdmlzaWJpbGl0eTogaGlkZGVuOyBwb3NpdGlv -bjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlOyB9CiAgI21fd2NvbnRlbnRzIC5tX3dpdGhfbGlzdGFy -ZWEgdWw6Zmlyc3QtY2hpbGQgeyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7 -IH0KICAjbV93Y29udGVudHMgLm1fd2l0aF9saXN0YXJlYSB1bDpmaXJzdC1jaGlsZCBsaSB7IGZs -b2F0OiBsZWZ0OyB3aWR0aDogMTAwJTsgcG9zaXRpb246IHJlbGF0aXZlOyB9CiAgI21fd2NvbnRl -bnRzIC5tX3dpdGhfbGlzdGFyZWEgLnRvcF9pbWdhcmVhID4gaW1nIHsgd2lkdGg6IDEwMCU7IH0K -ICBkaXYubV93aXRoX2xpc3RhcmVhIHsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kLWNv -bG9yOiByZ2IoNzYsIDE0NywgMjA4KTsgbWFyZ2luLXRvcDogLTNweDsgYmFja2dyb3VuZC1wb3Np -dGlvbjogaW5pdGlhbCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFs -OyB9CiAgdWwucmVtb3RlX2FyZWEgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTJweDsgbGVm -dDogNTAlOyBtYXJnaW4tbGVmdDogLTMzcHg7IH0KICB1bC5yZW1vdGVfYXJlYSBsaSB7IGZsb2F0 -OiBsZWZ0OyBtYXJnaW46IDBweCAycHg7IH0KICB1bC5yZW1vdGVfYXJlYSBsaSBhIHsgd2lkdGg6 -IDhweDsgaGVpZ2h0OiA4cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFn -ZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0aC9yb2xsaW5nLnBuZyk7 -IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6 -IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICB1bC5yZW1vdGVfYXJlYSBsaSBhLm9uIHsgYmFja2dy -b3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cuc2Ftc3VuZy5jby5rci9pbWFnZXMvd2l0aC9yb2xs -aW5nX29uLnBuZyk7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dy -b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCBuby1yZXBlYXQ7IH0KICBkaXYudG9wX2ltZ2FyZWEgeyBw -b3NpdGlvbjogcmVsYXRpdmU7IH0KICBkaXYudG9wX2ltZ2FyZWEgaW1nIHsgcG9zaXRpb246IHJl -bGF0aXZlOyB9CiAgZGl2LnRvcF9pbWdhcmVhIHNwYW4uaW1nX2RlcyB7IHBvc2l0aW9uOiBhYnNv -bHV0ZTsgbGVmdDogMjBweDsgYm90dG9tOiAxN3B4OyB6LWluZGV4OiAxMDsgfQogIGRpdi50b3Bf -aW1nYXJlYSBzcGFuLmltZ19kZXMgc3Bhbi50aXQgeyBkaXNwbGF5OiBibG9jazsgfQogIGRpdi50 -b3BfaW1nYXJlYSBzcGFuLmltZ19kZXMgYSBpbWcgeyBtYXJnaW4tbGVmdDogLTVweDsgfQogIGRp -di50eHRfaW5mb2FyZWEgeyBwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbjogMjBweDsgfQogIGRp -di50eHRfaW5mb2FyZWEgaDIgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogMjBweCAwcHggMHB4 -OyB9CiAgZGl2LnR4dF9pbmZvYXJlYSBwLnN1Yl9kZXMgeyBtYXJnaW46IDE3cHggMHB4OyB9CiAg -ZGl2LnR4dF9pbmZvYXJlYSBkaXYud2l0aF9idG5hcmVhIHsgfQogIGRpdi50eHRfaW5mb2FyZWEg -ZGl2LndpdGhfYXBwbHkgeyBwYWRkaW5nOiAzOHB4IDBweCAyMHB4OyB9CiAgZGl2LnR4dF9pbmZv -YXJlYSBkaXYud2l0aF9hcHBseSBpbWcgeyBtYXJnaW4tbGVmdDogLTdweDsgfQogIGRpdi5tX3dp -dGhfbGlzdGFyZWEgLncgeyBjb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB9CiAgZGl2Lm1fd2l0 -aF9saXN0YXJlYSAuYiB7IGNvbG9yOiByZ2IoMTQsIDMyLCA2NCk7IH0KICBkaXYubV93aXRoX2xp -c3RhcmVhIC5yZWQgeyBjb2xvcjogcmdiKDIzNywgMTQ2LCAxNzApOyB9CiAgZGl2Lm1fd2l0aF9s -aXN0YXJlYSAudiB7IGNvbG9yOiByZ2IoMTkyLCAxOTQsIDE5Nyk7IH0KICBkaXYubV93aXRoX2xp -c3RhcmVhIC5yIHsgY29sb3I6IHJnYigyMzcsIDE0NiwgMTcwKTsgfQogIGRpdi5tX3dpdGhfbGlz -dGFyZWEgLnIgeyBjb2xvcjogcmdiKDIzNywgMTQ2LCAxNzApOyB9CiAgZGl2LnRvcGFyZWEuYiB7 -IG1hcmdpbjogMHB4OyBib3JkZXI6IG5vbmU7IH0KICBkaXYuYmdfZHJlYW0geyBiYWNrZ3JvdW5k -OiBub25lOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlh -bCBpbml0aWFsOyBiYWNrZ3JvdW5kLXJlcGVhdDogaW5pdGlhbCBpbml0aWFsOyB9CiAgZGl2Lndp -dGhfY29udGVudHNfYm94YXJlYSB7IHdpZHRoOiAxMDAlOyB9CiAgdWwud2l0aF90aHVtX2xpc3Qg -eyBkaXNwbGF5OiBub25lOyB9CiAgZGl2LnJvbGxpbmdfY3RybC5iIHsgbWFyZ2luLWJvdHRvbTog -MTVweDsgZGlzcGxheTogYmxvY2s7IH0KICBkaXYuZHJlYW1faW50cm9fdmlzdWFsIGgzIHsgZm9u -dC1zaXplOiAyNHB4OyB9CiAgZGl2LmRyZWFtX2ludHJvX3Zpc3VhbCBwIHsgZm9udC1zaXplOiAx -M3B4OyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJlYSB7IHBhZGRpbmctYm90dG9tOiAxMHB4 -OyBib3JkZXItYm90dG9tLXN0eWxlOiBub25lOyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJl -YSBkaXYuZnIgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9CiAgZGl2LndpdGhfY29udGVu -dHNfYm94YXJlYSBkaXYuZmwgeyBmbG9hdDogbm9uZTsgaGVpZ2h0OiBhdXRvOyB3aWR0aDogMTAw -JTsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LmZsIGg0IHsgZm9udC1zaXplOiAx -OHB4OyB9CiAgZGl2LndpdGhfY29udGVudHNfYm94YXJlYSBkaXYuZmwgcCB7IGZvbnQtc2l6ZTog -MTJweDsgd2lkdGg6IDEwMCU7IHBhZGRpbmctYm90dG9tOiAzMHB4OyB9CiAgZGl2LndpdGhfY29u -dGVudHNfYm94YXJlYS5iIGRpdi5mbCBwIHsgcGFkZGluZy1ib3R0b206IDMwcHg7IH0KICBkaXYu -d2l0aF9jb250ZW50c19ib3hhcmVhLmIgZGl2LmZsIHAgaW1nIHsgbWFyZ2luLWJvdHRvbTogMTBw -eDsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LnRpdCB7IGhlaWdodDogYXV0bzsg -fQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZsIHsgd2lkdGg6IGF1dG87IGZsb2F0OiBub25lOyBo -ZWlnaHQ6IGF1dG87IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mciB7IHdpZHRoOiBhdXRvOyBm -bG9hdDogbm9uZTsgaGVpZ2h0OiBhdXRvOyBtYXJnaW46IDBweDsgfQogIGRpdi53aXRoX2JveGFy -ZWEgZGl2LmZyIHAgeyBmb250LXNpemU6IDE1cHg7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5m -ciBzcGFuIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgZGl2LndpdGhfYm94YXJlYSBkaXYuZmwgaW1n -IHsgcGFkZGluZzogMHB4IDBweCAzMHB4OyB9CiAgcC52aXN1YWxfaW1nIHsgdGV4dC1hbGlnbjog -Y2VudGVyOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IGJv -cmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiByZ2IoMjI1LCAy -MjUsIDIyNSk7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7 -IGJvcmRlci10b3AtY29sb3I6IHJnYigyMjUsIDIyNSwgMjI1KTsgfQogIHAudmlzdWFsX2ltZyBp -bWcgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQog -IGRpdi5iZ19zY2hvbGFyc2hpcCB7IGJhY2tncm91bmQ6IG5vbmU7IHBhZGRpbmctYm90dG9tOiAx -MHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVw -ZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mbC5zY2hvbGFy -c2hpcCB7IGhlaWdodDogYXV0bzsgfQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZyLnNjaG9sYXJz -aGlwIHsgfQogIGRpdi53aXRoX2JveGFyZWEgZGl2LmZsLnNjaG9sYXJzaGlwIGltZyB7IHdpZHRo -OiAxMDAlOyBwYWRkaW5nOiAwcHg7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFy -c2hpcCBkbCBkdCwgZGl2LndpdGhfYm94YXJlYSBkaXYuZnIuc2Nob2xhcnNoaXAgZGwgZGQgeyBm -b250LXNpemU6IDEzcHg7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hpcCBk -bCBkdCB7IHdpZHRoOiAxOCU7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFyc2hp -cCBkbCBkZCB7IHdpZHRoOiA2NSU7IH0KICBkaXYud2l0aF9ib3hhcmVhIGRpdi5mci5zY2hvbGFy -c2hpcCBhLmJ0bl9zY2hvbGFyc2hpcCB7IHBhZGRpbmctYm90dG9tOiAzMHB4OyB9CiAgZGl2LnNj -aG9sYXJzaGlwX2ludHJvX3Zpc3VhbCBwIHsgZm9udC1zaXplOiAxM3B4OyB9CiAgZGl2LnNjaG9s -YXJzaGlwX2ludHJvX3Zpc3VhbCBoMyB7IGZvbnQtc2l6ZTogMjRweDsgfQogIGRpdi5iZ19nbG9i -YWwgeyBiYWNrZ3JvdW5kOiBub25lOyBoZWlnaHQ6IGF1dG87IGJhY2tncm91bmQtcG9zaXRpb246 -IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsgfQog -IGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEgZGl2LmZsIGg0IHsgcGFkZGluZy1ib3R0b206IDIw -cHg7IH0KICBkaXYuZ2xvYmFsX2ludHJvX3Zpc3VhbCBoMyB7IGZvbnQtc2l6ZTogMjRweDsgfQog -IHVsLmdsb2JhbF9ib3hhcmVhIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgbWFyZ2luLXRv -cDogMjVweDsgfQogIHVsLmdsb2JhbF9ib3hhcmVhIGxpIHsgcGFkZGluZzogNSU7IHdpZHRoOiA4 -OSU7IG1hcmdpbjogMHB4IDBweCAxMHB4OyBmbG9hdDogbm9uZTsgaGVpZ2h0OiBhdXRvOyB9CiAg -dWwuZ2xvYmFsX2JveGFyZWEgbGkgZGwgZHQgeyBmb250LXNpemU6IDEzcHg7IH0KICB1bC5nbG9i -YWxfYm94YXJlYSBsaSBkbCBkZCB7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDIwcHg7 -IH0KICB1bC5nbG9iYWxfYm94YXJlYSBsaSBzdHJvbmcgeyBoZWlnaHQ6IDkwcHg7IGZvbnQtc2l6 -ZTogMTNweDsgfQogIGRpdi5teWRvZ19pbnRyb192aXN1YWwgeyBiYWNrZ3JvdW5kOiBub25lOyBi -YWNrZ3JvdW5kLXBvc2l0aW9uOiBpbml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBp -bml0aWFsIGluaXRpYWw7IH0KICBkaXYubXlkb2dfaW50cm9fdmlzdWFsIHNwYW4geyBiYWNrZ3Jv -dW5kOiBub25lOyBwYWRkaW5nOiAyMHB4IDBweCAzMHB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBp -bml0aWFsIGluaXRpYWw7IGJhY2tncm91bmQtcmVwZWF0OiBpbml0aWFsIGluaXRpYWw7IH0KICBk -aXYubXlkb2dfaW50cm9fdmlzdWFsIHNwYW4gc3Ryb25nIHsgZm9udC1zaXplOiAxNXB4OyB9CiAg -cC52aXN1YWxfaW1nLmIgeyBib3JkZXI6IG5vbmU7IHBhZGRpbmctdG9wOiAzMHB4OyB9CiAgZGl2 -Lm15ZG9nX2ludHJvX3Zpc3VhbCBzcGFuIHAuY29tX3R4dCB7IGZvbnQtc2l6ZTogMTNweDsgbGlu -ZS1oZWlnaHQ6IDIycHg7IH0KICBkaXYubXlkb2dfaW50cm9fdmlzdWFsIGgzIHsgZm9udC1zaXpl -OiAyNHB4OyB9CiAgZGl2Lm15ZG9nX2ludHJvX3Zpc3VhbCBoNCB7IGZvbnQtc2l6ZTogMTVweDsg -fQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEubXlkb2cgeyBoZWlnaHQ6IGF1dG87IH0KICBk -aXYud2l0aF9jb250ZW50c19ib3hhcmVhLm15ZG9nIC5mbCB7IHdpZHRoOiA5NSU7IGhlaWdodDog -YXV0bzsgfQogIGRpdi53aXRoX2NvbnRlbnRzX2JveGFyZWEubXlkb2cgLmZyIHsgd2lkdGg6IDkw -JTsgcGFkZGluZzogNSU7IGhlaWdodDogYXV0bzsgZmxvYXQ6IG5vbmU7IGJvcmRlci10b3Atd2lk -dGg6IDFweDsgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IGJvcmRlci10b3AtY29sb3I6IHJnYigy -MjUsIDIyNSwgMjI1KTsgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7IH0KfQ== -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/png -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_close4.png - -iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAYAAABXuSs3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ -bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp -bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 -eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0 -NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo -dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw -dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv -IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS -ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD -cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNl -SUQ9InhtcC5paWQ6Mzc3RDExM0ExMTVEMTFFM0FEMTJDMTMyODQ1RTQxRTMiIHhtcE1NOkRvY3Vt -ZW50SUQ9InhtcC5kaWQ6Mzc3RDExM0IxMTVEMTFFM0FEMTJDMTMyODQ1RTQxRTMiPiA8eG1wTU06 -RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNzdEMTEzODExNUQxMUUzQUQx -MkMxMzI4NDVFNDFFMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNzdEMTEzOTExNUQxMUUz -QUQxMkMxMzI4NDVFNDFFMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w -bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlcXITIAAAVhSURBVHja1JlLbFtFFIbnPvxIbMeO7VjN -AlXl3aobJNhRQsWiUmGBUAWVoC+JJSvUhCaloAbRpKU7ShcIKWmrIlB5SUUNCyoeqoSgXdAVqloW -KUigOE4bv++17wz/ccaR49iOfe04l2OdOJ47c843x3POnTtWdu0ZY9WSSsdZs6KqWkAI/owQbIgx -sRVNj0BjUJ/skoHOQW8zpvyhKOxnRVF/4txK1bMZ8A+s6Vev3SwaDnK7fWqhkN0N2EOcF3ejyduo -O7Qf+hjsvoAxw5hoHpO4gklMuVy9V0wzw1mLotblrqEBfwy+lJdNI3NTcHGZCfES2r31+jdQL40l -G2QLNveQ7eXrtsGrv7oAgBX10VRq7qoQ4nM0bWedk+2weYlskw/yZRu8MjhkCGv+VS74DXze2Xpw -m9ad5AO+XmsmoA079PQEtWQqPomIXKA5sPUXJLo4D58ThaKh2QLv7Q3puVzyLGIxwrouYgS+Py5a -pl6vh/bwth2rGj0en5rOJE5h9m+wDRPxRLFo+MHyfa2UrRVxFV/VPkC/yTZYiAEs+2txVjcgEROP -I0nOrGMStqRg+ZCYiK0RuMYt6yxG+JlTyMFSYgJbPXAlmYy/IpgYYg4TYiK2yqgvg2Pv4LYEHxPM -mS+wHSXGanAllVnAnkNsY44VsRWMz5ejXq6TOuf8oBCtmTpyeN+Kz5OnL3S0f7WA8QDeLkMLpYjn -8ul+lJ5dzOFCjMRajrhqmLkdWEeedg2XIzpx+vyK9tHD++slXasuPMTa4/V/TRHXBOdDtkpV/TJg -r18TWmIFs16q3UhKYSPCJz5YiuzY8MqIjg7vb2qcHeFLBWQJHJ+2dLkwtzN2Sxlc5YyH2+F4/9S5 -0vvRkQNN9WvzZhQuPerKWu5j/x8hVlVfKjPdKmeds6XLJZfFW9DJS7tCssvgeHRfQHG3DX7srYNN -9lvKgfdOTtumxlP7QhkcFUaZBXjXKks7S0Zhyiwxl8Axi1v4Hp9t1cg7R2pHenxyumG/8ufqfk1G -/BYxU0WxVE37xc5Ws0HJstWvmRexEjNF3PJ5/ddM0zDlcZltOT4x1bD93dFD7WarSaylYNMfr6dn -QVHVH9rdqnS6f7WC8UdiJWZFntb6Eovzew0z/4mT7zwet+f1SHDgMzoBLj8BmeG+yAzmdJsy3olK -bOG+6AyxVj66FZGtabfLdYY56PG+UsH2ETESayU4Xc1HQ7EvsY5+dRo2mH4D2xfEWE6XyuOJAjTp -9/rfxqWsg8izPmICm2Rcda5C3XJ9/uBNJMFxByXkeNAf/J3YKotT9UmWBU0N9Mc+1TRteqPPUogB -LBeJSbLVPYITMmvvbYoMjuuqfmmjlgh8f0UMxCKZxFqntfRDUg4ZPL8pOjiq666pbnOTT/geIQa5 -RHhTB/t3/71LHbMYODcYHRz3ur2UHJkuLOkMfB0jn+Rb7r15S79IAN6SsPFYOHYuFAjtVVX1+noR -k23yAV+0ZYxL31ZLv0jcT90vvS+mFwWM0WAD2R3v8/XNGKbxt2VZD2L/Hu4IsKLeQZRPIson4OMO -uSd/9SK94tGtkcz+M8s3D2425B0rj4hcBPS3icXEc3kz/yIm8bSNXaWJinENwN9EgpGrWBaLsk7n -ZJTX3DfqzXgBPBkqYgJ0yzXgKBUNRelO9p1RMCKpTOops2A+yTl/iAv+ACZG53s9cjgl+j1E9i8s -hz/dLveNgC9w3ePyJHAtLZcE3REL0g+DH9YR8KoJmDBckNFJAmDeE/LMylNUirxL5k7ldsKSdz1T -LoO8/J+0WAZu+Sm/WpqYsZAg5Qmk5U8dWgW0UtGXS7UqlLfgb5X8J8AAToSnR+bls94AAAAASUVO -RK5CYII= -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/png -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/logo.png - -iVBORw0KGgoAAAANSUhEUgAAAHMAAAAmCAYAAAD3AKSiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ -bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp -bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 -eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0 -MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo -dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw -dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv -IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS -ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD -cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNl -SUQ9InhtcC5paWQ6QUY2Mjk5NDcxMkZCMTFFM0JEQTFCRTgzMTAzMTUyRkUiIHhtcE1NOkRvY3Vt -ZW50SUQ9InhtcC5kaWQ6QUY2Mjk5NDgxMkZCMTFFM0JEQTFCRTgzMTAzMTUyRkUiPiA8eG1wTU06 -RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBRjYyOTk0NTEyRkIxMUUzQkRB -MUJFODMxMDMxNTJGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBRjYyOTk0NjEyRkIxMUUz -QkRBMUJFODMxMDMxNTJGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w -bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhKB+TwAAAg1SURBVHja7FxpbFRVFL4zLS2lC7SUFmgB -W6GFIohi2dzAhcUNkUhU9I9bAhoJhiYaJdFgjMoPJVGUKMYtMS4EoyK4RAREoqitLBYKxa1YKFig -G2XaaT3H9117vL43nWln6LR9J/ny3jzecu/97lnvpZ4BOSuVK/9KHCGJkEpIwzFdnDP6E5KBRNyf -QIgHYglegofQSvATfIQzhNOEOkItoYZwklBNOEY4QqgUOBFq42N7IWEDCBmELMIYwihCNmEIiBsI -gvp2UfuaQOTvhH2ErwlbCWWYGI7i6aGaGUMYRjgHZDFGEkYQhkLD4rtRf5pA7BeED0BujySTTdxw -Qh7hPGAc4VxCvx5qXTYTniV81N3JZPM4iXAR4XyYymz4u94mGwhLCOXdgcw4mMcLCVNxHA2/54ol -7FtvJBRHI5nDoXVXEa4g5BL6uJwFlD8IhdEQzXIgcjHIuxz+LtnlJyThYG9JV5GZSbiEMBME5rt8 -dFpmn00yOYebTVhAmIZ8zpXwSVqkyeRA5WrCPPi/THfMIybVkSCT3zkRBN6KgMaVyMu2cJGZhiMn -7EWE66Kso42E44QWWIuUKGhTK6LQBrRnaCfexWW+lzubmnAxea6yqjBblFVI5oYVEB5BlGrKckKJ -cW0R4Rrj2gFMDNl5jtqeBzn8TLVqK2gn4N/SxTNc0F5BWK+s4jWTyaW8y3B9pLj3EN7ZglTodWUV -yO/ENa7VrlVWXVe/e7GyCuc6peKqDBfZvyU8hetspR41+sYluSeUVaLjMeNa8HiMzcwO8MDvWt4Z -Micoq2S2XVkVf1N4pu01Evx6Qo6yVgmkPEBYZVzbjojXLCLws7zaMMLmmwfRJi08oZ50aP8MZdU6 -vfhdjKKElt8w0KPFtV/Fd1nTs0C4bDMHdx8Trhff+VLcs4tzQvFcnDhPBcEZIfCwGXGJ39sBEscS -XiN8Bw3URD5E2K2sJSKWP1GdMKsV1ThPVm0luAMOZsgU7jSXrg475KvmqsIOcf4m4TPxuxgmTotX -EBsPjeffMbiWiGvSKiUZ31sj+qYlwbjnE0EeW6NSZS0IsPBqyZ4QuNiB7MCvg5VghWfhg4S7hc+R -a26n4TNvR4M8Nsl/uRjw+TC3Jbi/zhicZnE+hbAf32NzWCXy1UzMdr+hJeY7fJjBc6HZ6YKocMl6 -mNdARY9mo9rFFa6bCT9hzNKC/Ba7tVtgIVSwZHpB4Aob9ZcfXgWzugKDbyf7xPl4kFIitLjAodP5 -IJvJLIP/UxiIQYLMJuN7qeKc+/AV4ekgihStDpbBSVj7zsCPvkS4o53xlBOM5ZkQJ83b8OWNTi+2 -k4mw92sc7PhCBCVa2AdNRTRbanN/qUFQlojGym1MqiRF+8I9IJRllNCCVhsy71Nti8ytMLW80nKX -0O5wyAWEWcKcV6rg1kvZdG8k3EO4F9gZ4H6e0PcTbjOJbI9Mjuy2otzmJHmY7fONd/HSDFfya4z7 -y8Q5BxLZDlqrDGL6Cq3dCn+n/Xe8wzMKkeHniF61sAa9igFsCSOhyzAGvxDW2fhTO4mDZXqFUwtg -v8O934CLF4JReRlIvEVYrdpf3OWZMgSz8VNj0MqMAKQe0aAmZ7BBZmkAMr0gjqVCaFVBgGdaMZkm -IRV41zCvG20CtI7KSUStOhVjU3sqiOdqYT1kCmeuEPF7lhKmE35szx9KyUQnFwbZiQVINXJhKrcY -FR8ZILFfPCp8baows6bWmsSw/xxnM6sn2AQ5chAmoz08ES6FG4gX75QD3mL4yQQjEg3kR30IXhYL -7W8O4I/l+Kc4FDGakNeyq3vOxurYlt5kMLPOIdF3kipB0HvQ5EaHsHy/aFAmOjIExxbkdTKibTI6 -NgbBjs5RswG/YUJl6nAYs1/B2uQa98tNW8loiw6k1uHcLzQmKUCE6oNrybOZmMpB834gbBKm1Ys+ -sWt4HHlr0KI1k0P0d0IkkuUmcb4WZlabwGEIhmRyq2UQjhmiDRUgVJplLQ0YhGwjrNcpkd0zKUZV -qQi+XWvMdJCrRGQ8T2jPIgQbWrjOPNDQsDphgRoxOZYaY3Ta+H0tAh+FYGcO0q0UTIQi+Prtodr6 -mL6p/1SPHkZAEKpMhtmqRGdi4AvnwG/IwdoNTc1HhwphKitBUj4mw2BRYTmFDs6AuanF9/KgBYWY -BHG4NltUaDwgrB7a7MOEGIb8bJUocOj7Z4GkkyC9H9rF5vMxQ6uaUXEagQj5BrQjF+TkINqehnYo -MYEL0SYPNH8scvSydrQ6cG11QM7KkQj3O7P10AeNbMbsjbadAvWYHB5YhYR27m8Godr9eCPQJtbm -FxGdNojvdVhiUbHp7B7SOMMERpskCtMW7LikR6gtvKn5DWVtkzwSzhfHGibAlcjIIeTe7yuHDczh -InOwO9YRkSpEqlx622YEZxEjs0K5G6rCJQdREduAaPTY2fw4k/kh4UqXhw4J57V7oXmbYEIbuqox -HM0mYxaNc7kJStiScZ2U1yW5XHlAhbbCElHNrEXyz9HVaJer/2keF85LQNxOaGJNNDZWbhvhEttq -o6rT24RzUV6K2wXf972yFgd83aHxdnuAeO/KMvXfFZCeJmwWj6JYshvHvUghjnXXTjlt6PIgKJqP -46hu2r8apAgVIIr9Wxm0j5e/TvSkGRrM7jwuHnPdkP9jzxQQy0tX/bu47Vxy4yI2l8H+EqQxST+D -PK778gayxt7gIzqy1ZKLzekglJeweEtlhmr7Qw68tZIjZPlHG/qotj/c4BWmjpe+/KptCcmHgWfU -QbMYp0BKNYg7Dq06gX+vj5aIsivlbwEGAN857h0fLcjlAAAAAElFTkSuQmCC -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/tx_logout.gif - -R0lGODlhJQALAMQAAAAAAP///+nw95C32qzI47nR58bZ69Lh797p812bzW+k0YCu1p7A3kiRyPT4 -+zCGxA17v////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABEALAAAAAAlAAsAAAW1YCCOZGmSjjMKRYGQRCPPRoC0uCsuzSAOvgAPmEgcRA6BUtkoBArAaIIQ -GCwECirw2YAlRLdc87QoOB4vQ3eLeBBaMWo1EQW+TE0BRBAQPBwDDw1JBFE1P0EnI2dKe31rWTOS -DQpVgpJyJAhdAQ1HBF9ASUoxSyqjQEoqJQSVAa0FY1sjBq4iBjgKCjiFdUUDToVysyIKD0civXVA -bzk4dyRbAqADBg8DyIraJwRUDNgi0woCIQA7 -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_utill.gif - -R0lGODlhJQALAMQAAAAAAP////X19tXW2JebocnLzrG0uEJNWmlweaSorSk4SIiOlVZganmAh73A -w+rr7ODh4v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABEALAAAAAAlAAsAAAW5YCCOZGmWjwg5ThoUqcHMtBHI9FyMzR48ipSDQICIGI6A4MFkEmzEJpOE -FAEfBiIxWTUhkoQGa2xUHgjWYMHBWDgM7KSJMQgMCQjEVhQ+1K8vMw9DB29aWgpPYw1iLBALDA8D -BwZXDn4DDDZIaywNCWNZh1oOCQJWEFcLRgIDO118ciJ3h2UGNmkuBDm4IwSyAStjcXxoIy4JDafB -Bz6xJyNdYcMtAckQAq1+JAbOJz2zo0UiMnlfASEAOw== -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_utill2.gif - -R0lGODlhJQALAMQAAAAAAP////X19tXW2JebocnLzrG0uEJNWmlweaSorSk4SIiOlVZganmAh73A -w+rr7ODh4v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABEALAAAAAAlAAsAAAXLYCCOZCk+ZiAIYuE4qCoaTG0bAqHr0KOgAgYroJvxAg6GSPBoNgkJZDIB -86GsIl3QxmgkSYKGyDtiOE6/AJZIUBsaC4fAcWiflAFDTHAwoFEQCmdEXgRxdANJDg02B1x+dGJq -aQYHC1kIOocHLkpMDxADAz0PTGYIflYPBwOcbEYEZ19qjDZtD3BqDAlWDH6tBkVqCQgMCAkQY1FL -DQkDlycFPgZ+IqHCmaTEWQsQKxAN1SVrJNgJLAKVQzQI7eIlQUMk1CcLCA33ySEAOw== -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_utill3.gif - -R0lGODlhJQALAMQAAAAAAP////X19tXW2JebocnLzrG0uEJNWmlweaSorSk4SIiOlVZganmAh73A -w+rr7ODh4v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABEALAAAAAAlAAsAAAW6YCCOZCkETxmchSqmgUPMtBM0DINAzKOkBYOI4ejJaAJfCuJoNhu2ZPHR -+wUMCxSxR4A2UVYVcdQwPA4MK4FRYBymM5KSdAowBiIDI8mA/ARoNlsPBAgzBjhhMQQrBw8QDQgp -VEoLBANvg11NBQJ+MIsBPChCIgINAmxZojxwjCNzIjIoLSI4ObgnBqWahgQLfT8FTQleTRArD8qP -aq8sok4Oyj8GNNYENiVzm9GgsIouKqknR9bIJnshADs= -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_utill4.gif - -R0lGODlhOgALAMQAAAAAAP///+zs7ba5vUFMWZKXnZ+jqCk4SFReaWZud3V8hISKkauvs8HEx9fZ -283P0eLj5PX29v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA -ABIALAAAAAA6AAsAAAX/YCCOZGmeaKqajhONkHBGzhrErCsKkN0QCcWhIFIwTo6DzUhyEBTCI0MR -aBhQzl5AgDgyWcrVV4R4iJIy0RS1uI4cjQDzgTiUA0nDgeAeEOw9YwFDL3gRUwwHijdCdwc1Ny2B -DAIHcQ0HAklEEAQNEAc9BVSCmAcJBj1rawEJR2iPIgYKCKQMDAkjrkmFszcMBk9yRyQCDQV1AqtU -oLcMXagkvkasw0kjU3kDo8MjyiRdy3gHzgwODwRanbZJPaAtBwMBEeG5AdxjEZYi9A3iEQRqRFhg -5gcUAgtsBQimgM+4WggSROiUoKKnUkAaXlmDiYrBWk0EukujKQ0NGpDmEDmQ4QJHiRaFeIiAAImG -lhAAOw== -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_logout.gif - -R0lGODlhOAAXANUAAAAAAP///0ad40mj7Emh6jqHwTmFvj2NyTmEvDiBuEmk7UWb4ESZ3UOX2kKV -10GT1ECR0D+PzT2KxjyJxDmCuUih6Eef5Tt/skuf4Uue4DyAszx/sT2Asld9mFJ0iV1udv///wAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACAALAAAAAA4ABcAAAb/QBDo -Qywaj8ikcpkUgjoYhXRKrVqv2GwV0xlmBuCweEwum8/lDJHAbrvf8Lh8PidW7vi8fs/v+/1EFoKD -hIWGh4iJiUQCjY6PkJGSk5SURAuYmZkBnJ0Bm56coJ+YpKWemqlEDKytrq8Br66xDLS1rLa2uLKs -RA2/wMChnMHFAb/HyMrLwsXARA7R0tIB09bX1Q7Z2tHb2p7X0kQP5OXlAebp6ugP7O3knOry5kQQ -9vf3wwH4/PsQ/v/s+dPHiZ89IhESKlyYMADDhxEcRlQoUeJCixAjEDnAsaNHjgE+igwJsiNJkh5R -iuRIRILLly4JBpAgMyanlzNhzswJEyaRXwlAgwodSrRo0QBBOSVFWpRIgadQo0qdSrWqVatEDGjd -yrWr169gw4YlgqCs2bNo06pdy5YtEQ4U4sqdS7eu3bt47Wr4AMLDhQSAAwseTLiw4cODN3hwwqSx -48dIhAQBADs= -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_tfind.gif - -R0lGODlhJwAnAPcAAAAAAP///zZDazVEbDJAZi88YDdGbzZFbTNBZzA9YS88XzhHcDdFbjdGbjZE -bDVDajRBaDRCaDNAZjE+YjA9YC87Xi46XC05WjhGbzhHbzdFbTZEazVCaTVDaTRBZzNAZTI/YzE9 -YTE+YS87XS46Wy04WS05WThGbjdFbDZDajZEajVCaDNAZDI+YjI/YjA8Xi07XTA/YzVFbDNCaDE/ -ZDFAZCw5WjhIcTdHbzZGbTVEazRDaTNCZzJAZTJBZTE/YzA+YS89Xy47XS06Wyw5WThIcDZFbDVE -ajRDaDNBZjJAZDE/Yi88Xi47XDdGbTZFazRCZzNBZTA9Xy88XS47WzVDaDdKcy48XS07WzVJcjdM -dTdLdC5GbDZRfTVPejVSfy5Iby1GbDRRfDRQejFLcy1FaTVRezFKcS9Ndi1JcCxIbi5KcTJPeDRc -izRbijNaiDRaiDRZhzRahzNYhTRZhjJejS9YhTFbiTJcii9VgDRcii5ciS1ahjJjlC5biCtWgC1Y -hC1Xgy1YgzJhkTFejSxVfzBbhy1iki5klCxgjjFomzFpmy9llS5jkyxeiy1fjCxbiCtahjFlljBk -kzFklS1ciCxahi5diixZhC1sny9voy5toCtmli5snyxnlyxmlithjyxikSxhjzBpmjFqnC55sS55 -sCx0qStypi54ry53ri11qixypytwpCtwoy52rCxxpS50qixuoSttny90qi91qi5ypixtoCxuoCxt -nytqmy9xpSxrnCxqmy1rnC5tnyyFwCt6sCx7six6sSt4ri16six5sCx4ryx5ryt2qy57sy16sS15 -sCx2rC57six1qSqNyiqMySqLyCqMyCqKxyqLxyqKxiqJxSqJxCuKxiuJxSqIwyqGwSuIxCuJxCuI -wyuGwf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOEALAAAAAAnACcA -AAj/AG8IHEiwoMGDCBMqXMiwoUOGRSJKnBhxi5xFtJwpq0UKjhaKIEEuGEmy5AI3qbJBW8mSmqk2 -JmPKlNlFFcubOFN9mcnTZBxgOIOyBPcGQ0+eblSyrNYM0Z5Kh05Zu0kNT4OjMbt8u7kKDRMhFsJa -SNPqpjcxV7GOvFGK5bRGCsBaGMFEgQImFUTdFCYjrcwMgAHruelnBAkSU6QsAcGCBYglUh7dNKTC -SeDLmK2YYgnLcJMXS6IgOaJCxREkSVzgYokMyoYTmGPTUWoNDIkmUpQg2eCkge8GTjYgObNtpTUy -VSzHxsEcxyKWz5oMCVJjR9/mzRvIQMKKJR8fOhpg/x+PoxbLUEOuLEFiRDx5HA2MTGLpacmOHOQN -6DewjCWkIQUQoAMD+xW4HwOEsJQLBQgMYKABvzVQDEuWWCBCBO1FqKFvdbA0CxM9HKHBhr/FwpIo -Qth3AIkaUsISJyOA0MGKLI7CEioxzshihLSwhIkQP+xAI4lzVLMSNlzIOCSLXnSzUjVqACnkjlkw -w5IsQS5JoiYsBQNDjlpGeMAdN12C4Y4NDBINS4AMwYQSIu6ogQzDsGRNI3GS2Ic0LBEjBAlSJBGe -hk4UWugTbBTHki1joGBooWbsgpMrJlAhAhRPPFqoBpxy6gAHdhjJkjavKDJIHZK84mRQusTIgQOd -xv8q6wYe5MGNULje5MsHD8jK6QHABuvADj2skUyuLDVT1k2Z7OBAsNBGe4AOEdCgQCHJKHrTNccI -MoQNuuD0ywPPSiutDjNYa0EZf4Ciyy2fBBLGEBcQYcMF4d60CbnQGuHvv/8eAYUSFAgxhAlEJKyw -CUM0wQQTvYjbwQYAVwzwETsk8QMFTDRx2GEOU7CEEgTzglMnMlBsscUbnJaEEj8sAQQQIvygRBIR -dIBEFECYfBMjE6+8css6Q8EDD1Ag0cERFG/QQRJARMySMUkELfTQOmStg8r/Og211NA4AkQSR1xt -9tVex5BIMpFgwQQISDgg99x012333Q4IwIEECVg0UEIJFkwAwQaEF2744YgnTngKK3wQwggWvB2B -4pRXbjjjH7QgAghVW+455Sl0AIUHOacQEAA7 -------=_NextPart_000_E9E1_7F22D6FD.385F7039 -Content-Type: image/gif -Content-Transfer-Encoding: base64 -Content-Location: http://www.samsung.co.kr/images/bt_gnbview_m.gif - -R0lGODlhZABiANUAAPf3+Pr6+/j5+fz8/fr7+/n6+vX29vb39/X29/z8/Pv7/Pv7+/f396Ojo6mp -qfz9/fb3+PX19vv8/P39/jNBnBQkjSIxkzJBm/7+/5eezSMylCIylIqSxqSkpJWcypWdy5aezIiR -xTJBnIiQxYePxImSxpady/f4+YmRxoaOwyIxlPb29/f4+Pj4+fn5+v39/fn5+f7+/hAhi////wAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0 -IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4 -bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEg -NjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpy -ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRl -c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFw -LzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxu -czpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIg -eG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgeG1wTU06SW5z -dGFuY2VJRD0ieG1wLmlpZDpGQkFGNzREMzExNUUxMUUzODkxNEY3QjNCN0E2NzYwNiIgeG1wTU06 -RG9jdW1lbnRJRD0ieG1wLmRpZDpGQkFGNzRENDExNUUxMUUzODkxNEY3QjNCN0E2NzYwNiI+IDx4 -bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZCQUY3NEQxMTE1RTEx -RTM4OTE0RjdCM0I3QTY3NjA2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZCQUY3NEQyMTE1 -RTExRTM4OTE0RjdCM0I3QTY3NjA2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwv -eDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm -5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66t -rKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0 -c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7 -Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMC -AQAAIfkEAAAAAAAsAAAAAGQAYgAABv9AmHBILBqPyKRyyWweGx3YbEqtWq/YrHbL7XqtsIZD+i2b -z+hyeJxuu9/fNRlOr7/l9rxeLZ7v/4BUeIGEf4OFiHWHiYxti42QfGyRlHF9lZhcj5mcU5udmZ+g -laKjkaWmjaipiausha6vgbGyhpe1lLS4ebq7ire+jL3Bd8DEsMbHs8nKtpPNy8/Qzn7TesPWltJw -GBwaMuDh4uPk5eQbHBh72FoZ5u/w8RnrzG4U8fj54BT0228V+gK+q9Cv2pt7AhOK43etXht3CiPO -a+jPDQYUGyIG3DBCHUWD2eiwC7kFT4yTKFOqXMmypcuXMGPKRDnD5MybOHPqlFnz0s7/n0CDxuzJ -RijKCSW+acynosQEoymJSoEaA8TShCConpQ6gyrCq/ooaI3BlSpAsPoqjOU6oa3bt3DjwhWBVp8I -uXjzvuX6oq/fv4ADAzZRN58JwYgT/+WruPHfASMsFDZngcQAx5j9Ms7MubPnz443gx5NunRirg9S -q17NurXr17Bjy55NWzXXAbhz697Nu7fv38CDCx+e+zbx48iTKx/ONYHz59CjS4+uIITSyeMshFAw -vbt36M2/i4f+ATu8D+PTP28uob379/Djv79g/t0F+fjzu0/QXIH//wAGKCCAZ9VHTgUDJqjgf/zh -kcCCEAJIn4HkXBDhhf41eEkCC3To/+GHIIb4oQcUkuOBiCim6KGGbHCo4oseBkCCZCVakEIAMObY -IYtSSEDAj0AGKeSQRBZp5JFIJqkkARJw5eOSUEYp5ZRINomHAgFkqeWWXHbp5ZdghinmmGQGoABX -WJap5ppstinmmXgQUMCcdNZp55145qnnnnz26WcBBHAl55+EFmrooXwGikcALjTq6KOQRirppJRW -aumlmLoQAFeMZurpp6CGaummi4pq6qmoVkrqJQUI4OqrsMYq66y01mrrrbjmKkABXLWq66/ABivs -rbzi4UILyCar7LLMNuvss9BGK+20LbjA1bHUZqvtttxGa62x3YYr7rjQfnuJACykq//uuuy26+67 -8MYr77z0siAAV+jWq+++/PYr77145OvvwAQX/C7Al7QAwMIMN+zwwxBHLPHEFFdsMQAtcKXwxRx3 -7PHHFGeMxwkQlGzyySinrPLKLLfs8sswQ3ACVywcYPPNOOes88489+zzz0AHfQALNAtt9NFIJw00 -0XgAsMLTUEct9dRUV2311VhnrfUKAHDl9NZghy322Fh33TTZaKet9tVmXwIAAnDHLffcdNdt9914 -56333gi0zcbbfAcu+OCE5+23FAwYoPjijDfu+OOQRy755JRXbgADXCVu+eacd+755JjjwUAEpJdu -+umop6766qy37vrrEYR+CQO0124d++2456777rz37vvvtXNFEi99OGH88cgnjzwUQQAAOw== -------=_NextPart_000_E9E1_7F22D6FD.385F7039-- diff --git a/TC/web_scrap/testcase/Makefile b/TC/web_scrap/testcase/Makefile deleted file mode 100644 index 811d781..0000000 --- a/TC/web_scrap/testcase/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -include ../config - -CC ?= gcc - -C_FILES = $(shell ls *.c) - -PKGS = $(PKG_NAME) -PKGS += glib-2.0 -LDFLAGS = `pkg-config --libs $(PKGS)` -LDFLAGS += $(TET_ROOT)/lib/tet3/tcm_s.o -LDFLAGS += -L$(TET_ROOT)/lib/tet3 -ltcm_s -LDFLAGS += -L$(TET_ROOT)/lib/tet3 -lapi_s - -CFLAGS = -I. `pkg-config --cflags $(PKGS)` -CFLAGS += -I$(TET_ROOT)/inc/tet3 -CFLAGS += -Wall - -TCS := $(shell ls -1 *.c | cut -d. -f1) - -all: $(TCS) - -%: %.c - $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) - -clean: - rm -f $(TCS) diff --git a/TC/web_scrap/testcase/tslist b/TC/web_scrap/testcase/tslist deleted file mode 100755 index 35211a5..0000000 --- a/TC/web_scrap/testcase/tslist +++ /dev/null @@ -1 +0,0 @@ -/testcase/utc_web_scrap diff --git a/TC/web_scrap/testcase/utc_web_scrap.c b/TC/web_scrap/testcase/utc_web_scrap.c deleted file mode 100644 index d9d096c..0000000 --- a/TC/web_scrap/testcase/utc_web_scrap.c +++ /dev/null @@ -1,1387 +0,0 @@ -/* - * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include -#include - -enum { - POSITIVE_TC_IDX = 0x01, - NEGATIVE_TC_IDX, -}; - -static int g_testcase_id = -1; - -static void startup(void); -static void cleanup(void); - -void (*tet_startup)(void) = startup; -void (*tet_cleanup)(void) = cleanup; - -static void utc_web_scrap_get_full_ids_p_n(void); -static void utc_web_scrap_get_full_ids_p_p(void); -static void utc_web_scrap_get_full_with_deleted_ids_p_n(void); -static void utc_web_scrap_get_full_with_deleted_ids_p_p(void); -static void utc_web_scrap_get_dirty_ids_p_n(void); -static void utc_web_scrap_get_dirty_ids_p_p(void); -static void utc_web_scrap_get_deleted_ids_p_n(void); -static void utc_web_scrap_get_deleted_ids_p_p(void); -static void utc_web_scrap_get_is_read_n(void); -static void utc_web_scrap_get_is_read_p(void); -static void utc_web_scrap_get_page_path_n(void); -static void utc_web_scrap_get_page_path_p(void); -static void utc_web_scrap_get_url_n(void); -static void utc_web_scrap_get_url_p(void); -static void utc_web_scrap_get_title_n(void); -static void utc_web_scrap_get_title_p(void); -static void utc_web_scrap_get_date_created_n(void); -static void utc_web_scrap_get_date_created_p(void); -static void utc_web_scrap_get_date_modified_n(void); -static void utc_web_scrap_get_date_modified_p(void); -static void utc_web_scrap_get_account_name_n(void); -static void utc_web_scrap_get_account_name_p(void); -static void utc_web_scrap_get_account_type_n(void); -static void utc_web_scrap_get_account_type_p(void); -static void utc_web_scrap_get_device_name_n(void); -static void utc_web_scrap_get_device_name_p(void); -static void utc_web_scrap_get_device_id_n(void); -static void utc_web_scrap_get_device_id_p(void); -static void utc_web_scrap_get_icon_n(void); -static void utc_web_scrap_get_icon_p(void); -static void utc_web_scrap_get_snapshot_n(void); -static void utc_web_scrap_get_snapshot_p(void); -static void utc_web_scrap_set_dirty_n(void); -static void utc_web_scrap_set_dirty_p(void); -static void utc_web_scrap_set_is_read_n(void); -static void utc_web_scrap_set_is_read_p(void); -static void utc_web_scrap_set_page_path_n(void); -static void utc_web_scrap_set_page_path_p(void); -static void utc_web_scrap_set_url_n(void); -static void utc_web_scrap_set_url_p(void); -static void utc_web_scrap_set_title_n(void); -static void utc_web_scrap_set_title_p(void); -static void utc_web_scrap_set_date_created_n(void); -static void utc_web_scrap_set_date_created_p(void); -static void utc_web_scrap_set_date_modified_n(void); -static void utc_web_scrap_set_date_modified_p(void); -static void utc_web_scrap_set_account_name_n(void); -static void utc_web_scrap_set_account_name_p(void); -static void utc_web_scrap_set_account_type_n(void); -static void utc_web_scrap_set_account_type_p(void); -static void utc_web_scrap_set_device_name_n(void); -static void utc_web_scrap_set_device_name_p(void); -static void utc_web_scrap_set_device_id_n(void); -static void utc_web_scrap_set_device_id_p(void); -static void utc_web_scrap_set_icon_n(void); -static void utc_web_scrap_set_icon_p(void); -static void utc_web_scrap_set_snapshot_n(void); -static void utc_web_scrap_set_snapshot_p(void); -static void utc_web_scrap_create_n(void); -static void utc_web_scrap_create_p(void); -static void utc_web_scrap_delete_n(void); -static void utc_web_scrap_delete_p(void); -static void utc_web_scrap_easy_create_n(void); -static void utc_web_scrap_easy_create_p(void); -static void utc_web_scrap_get_info_n(void); -static void utc_web_scrap_get_info_p(void); -static void utc_web_scrap_get_cond_ids_p_n(void); -static void utc_web_scrap_get_cond_ids_p_p(void); -static void utc_web_scrap_get_inquired_ids_p_n(void); -static void utc_web_scrap_get_inquired_ids_p_p(void); -static void utc_web_scrap_get_duplicated_ids_p_n(void); -static void utc_web_scrap_get_duplicated_ids_p_p(void); -static void utc_web_scrap_set_data_changed_cb_p(void); -static void utc_web_scrap_set_data_changed_cb_n(void); -static void utc_web_scrap_unset_data_changed_cb_p(void); -static void utc_web_scrap_is_setted_data_changed_cb_p(void); -static void utc_web_scrap_publish_notification_p(void); -static void utc_web_scrap_clear_dirty_ids_p(void); -static void utc_web_scrap_clear_deleted_ids_p(void); -static void utc_web_scrap_get_errorcode_p(void); -static void utc_web_scrap_easy_free_p(void); - - -struct tet_testlist tet_testlist[] = { - { utc_web_scrap_set_is_read_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_is_read_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_page_path_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_page_path_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_url_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_url_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_title_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_title_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_date_created_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_date_created_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_date_modified_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_date_modified_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_account_name_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_account_name_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_account_type_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_account_type_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_device_name_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_device_name_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_device_id_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_device_id_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_icon_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_icon_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_snapshot_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_snapshot_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_full_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_full_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_full_with_deleted_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_full_with_deleted_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_dirty_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_dirty_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_deleted_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_deleted_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_is_read_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_is_read_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_page_path_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_page_path_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_url_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_url_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_title_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_title_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_date_created_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_date_created_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_date_modified_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_date_modified_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_account_name_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_account_name_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_account_type_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_account_type_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_device_name_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_device_name_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_device_id_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_device_id_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_icon_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_icon_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_snapshot_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_snapshot_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_dirty_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_set_dirty_p, POSITIVE_TC_IDX }, - { utc_web_scrap_create_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_create_p, POSITIVE_TC_IDX }, - { utc_web_scrap_delete_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_delete_p, POSITIVE_TC_IDX }, - { utc_web_scrap_easy_create_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_easy_create_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_info_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_info_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_cond_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_cond_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_inquired_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_inquired_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_duplicated_ids_p_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_get_duplicated_ids_p_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_data_changed_cb_p, POSITIVE_TC_IDX }, - { utc_web_scrap_set_data_changed_cb_n, NEGATIVE_TC_IDX }, - { utc_web_scrap_unset_data_changed_cb_p, POSITIVE_TC_IDX }, - { utc_web_scrap_is_setted_data_changed_cb_p, POSITIVE_TC_IDX }, - { utc_web_scrap_publish_notification_p, POSITIVE_TC_IDX }, - { utc_web_scrap_clear_dirty_ids_p, POSITIVE_TC_IDX }, - { utc_web_scrap_clear_deleted_ids_p, POSITIVE_TC_IDX }, - { utc_web_scrap_get_errorcode_p, POSITIVE_TC_IDX }, - { utc_web_scrap_easy_free_p, POSITIVE_TC_IDX }, - { NULL, 0 } -}; - - -static void startup(void) -{ - /* start of TC */ - tet_printf("\n TC start"); - bp_scrap_adaptor_initialize(); - bp_scrap_adaptor_create(&g_testcase_id); -} - - -static void cleanup(void) -{ - /* end of TC */ - bp_scrap_adaptor_deinitialize(); - tet_printf("\n TC end"); -} - -/** - * @brief Callback function - */ -void scrap_changed(void* user_data) -{ -} - - -/** - * @brief Negative test case of bp_scrap_adaptor_get_full_ids_p() - */ -static void utc_web_scrap_get_full_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_full_ids_p(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_full_ids_p() - */ -static void utc_web_scrap_get_full_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_full_ids_p(&ids, &ids_count); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_full_ids_p failed"); -} - - -/** - * @brief Negative test case of bp_scrap_adaptor_get_full_with_deleted_ids_p() - */ -static void utc_web_scrap_get_full_with_deleted_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_full_with_deleted_ids_p(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_full_with_deleted_ids_p() - */ -static void utc_web_scrap_get_full_with_deleted_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_full_with_deleted_ids_p(&ids, &ids_count); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_full_with_deleted_ids_p failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_dirty_ids_p() - */ -static void utc_web_scrap_get_dirty_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_dirty_ids_p(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_dirty_ids_p() - */ -static void utc_web_scrap_get_dirty_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_dirty_ids_p(&ids, &ids_count); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_dirty_ids_p failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_deleted_ids_p() - */ -static void utc_web_scrap_get_deleted_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_deleted_ids_p(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_deleted_ids_p() - */ -static void utc_web_scrap_get_deleted_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_deleted_ids_p(&ids, &ids_count); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_deleted_ids_p failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_is_read() - */ -static void utc_web_scrap_get_is_read_n(void) -{ - int ret = bp_scrap_adaptor_get_is_read(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_is_read() - */ -static void utc_web_scrap_get_is_read_p(void) -{ - int value = -1; - int ret = bp_scrap_adaptor_get_is_read(g_testcase_id, &value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_is_read failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_is_reader() - */ -static void utc_web_scrap_get_is_reader_n(void) -{ - int ret = bp_scrap_adaptor_get_is_reader(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_is_reader() - */ -static void utc_web_scrap_get_is_reader_p(void) -{ - int value = -1; - int ret = bp_scrap_adaptor_get_is_reader(g_testcase_id, &value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_is_reader failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_page_path() - */ -static void utc_web_scrap_get_page_path_n(void) -{ - int ret = bp_scrap_adaptor_get_page_path(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_page_path() - */ -static void utc_web_scrap_get_page_path_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_page_path(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_page_path failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_url() - */ -static void utc_web_scrap_get_url_n(void) -{ - int ret = bp_scrap_adaptor_get_url(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_url() - */ -static void utc_web_scrap_get_url_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_url(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_url failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_title() - */ -static void utc_web_scrap_get_title_n(void) -{ - int ret = bp_scrap_adaptor_get_title(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_title() - */ -static void utc_web_scrap_get_title_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_title(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_title failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_date_created() - */ -static void utc_web_scrap_get_date_created_n(void) -{ - int ret = bp_scrap_adaptor_get_date_created(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_date_created() - */ -static void utc_web_scrap_get_date_created_p(void) -{ - int value = -1; - int ret = bp_scrap_adaptor_get_date_created(g_testcase_id, &value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_date_created failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_date_modified() - */ -static void utc_web_scrap_get_date_modified_n(void) -{ - int ret = bp_scrap_adaptor_get_date_modified(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_date_modified() - */ -static void utc_web_scrap_get_date_modified_p(void) -{ - int value = -1; - int ret = bp_scrap_adaptor_get_date_modified(g_testcase_id, &value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_date_modified failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_account_name() - */ -static void utc_web_scrap_get_account_name_n(void) -{ - int ret = bp_scrap_adaptor_get_account_name(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_account_name() - */ -static void utc_web_scrap_get_account_name_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_account_name(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_account_name failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_account_type() - */ -static void utc_web_scrap_get_account_type_n(void) -{ - int ret = bp_scrap_adaptor_get_account_type(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_account_type() - */ -static void utc_web_scrap_get_account_type_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_account_type(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_account_type failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_device_name() - */ -static void utc_web_scrap_get_device_name_n(void) -{ - int ret = bp_scrap_adaptor_get_device_name(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_device_name() - */ -static void utc_web_scrap_get_device_name_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_device_name(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_device_name failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_device_id() - */ -static void utc_web_scrap_get_device_id_n(void) -{ - int ret = bp_scrap_adaptor_get_device_id(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_device_id() - */ -static void utc_web_scrap_get_device_id_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_device_id(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_device_id failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_main_content() - */ -static void utc_web_scrap_get_main_content_n(void) -{ - int ret = bp_scrap_adaptor_get_main_content(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_main_content() - */ -static void utc_web_scrap_get_main_content_p(void) -{ - char *value = NULL; - int ret = bp_scrap_adaptor_get_main_content(g_testcase_id, &value); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_main_content failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_icon() - */ -static void utc_web_scrap_get_icon_n(void) -{ - int ret = bp_scrap_adaptor_get_icon(-1, NULL, NULL, NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_icon() - */ -static void utc_web_scrap_get_icon_p(void) -{ - int length = 0; - int width = 0; - int height = 0; - unsigned char *value = NULL; - int ret = bp_scrap_adaptor_get_icon(g_testcase_id, &width, - &height, &value, &length); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_snapshot failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_snapshot() - */ -static void utc_web_scrap_get_snapshot_n(void) -{ - int ret = bp_scrap_adaptor_get_snapshot(-1, NULL, NULL, NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_snapshot() - */ -static void utc_web_scrap_get_snapshot_p(void) -{ - int length = 0; - int width = 0; - int height = 0; - unsigned char *value = NULL; - int ret = bp_scrap_adaptor_get_snapshot(g_testcase_id, &width, - &height, &value, &length); - free(value); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_snapshot failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_dirty() - */ -static void utc_web_scrap_set_dirty_n(void) -{ - int ret = bp_scrap_adaptor_set_dirty(-1); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_dirty() - */ -static void utc_web_scrap_set_dirty_p(void) -{ - int ret = bp_scrap_adaptor_set_dirty(g_testcase_id); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_dirty failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_is_read() - */ -static void utc_web_scrap_set_is_read_n(void) -{ - int ret = bp_scrap_adaptor_set_is_read(-1, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_is_read() - */ -static void utc_web_scrap_set_is_read_p(void) -{ - int ret = bp_scrap_adaptor_set_is_read(g_testcase_id, 0); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_is_read failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_is_reader() - */ -static void utc_web_scrap_set_is_reader_n(void) -{ - int ret = bp_scrap_adaptor_set_is_reader(-1, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_is_reader() - */ -static void utc_web_scrap_set_is_reader_p(void) -{ - int ret = bp_scrap_adaptor_set_is_reader(g_testcase_id, 0); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_is_reader failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_page_path() - */ -static void utc_web_scrap_set_page_path_n(void) -{ - int ret = bp_scrap_adaptor_set_page_path(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_page_path() - */ -static void utc_web_scrap_set_page_path_p(void) -{ - int ret = bp_scrap_adaptor_set_page_path(g_testcase_id, "/home/capi-web-scrap/test.mhtml"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_page_path failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_url() - */ -static void utc_web_scrap_set_url_n(void) -{ - int ret = bp_scrap_adaptor_set_url(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_url() - */ -static void utc_web_scrap_set_url_p(void) -{ - int ret = bp_scrap_adaptor_set_url(g_testcase_id, "URL"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_url failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_title() - */ -static void utc_web_scrap_set_title_n(void) -{ - int ret = bp_scrap_adaptor_set_title(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_title() - */ -static void utc_web_scrap_set_title_p(void) -{ - int ret = bp_scrap_adaptor_set_title(g_testcase_id, "TITLE"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_title failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_date_created() - */ -static void utc_web_scrap_set_date_created_n(void) -{ - int ret = bp_scrap_adaptor_set_date_created(-1, (int)time(NULL)); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_date_created() - */ -static void utc_web_scrap_set_date_created_p(void) -{ - int ret = bp_scrap_adaptor_set_date_created(g_testcase_id, (int)time(NULL)); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_date_created failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_date_modified() - */ -static void utc_web_scrap_set_date_modified_n(void) -{ - int ret = bp_scrap_adaptor_set_date_modified(-1, (int)time(NULL)); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_date_modified() - */ -static void utc_web_scrap_set_date_modified_p(void) -{ - int ret = bp_scrap_adaptor_set_date_modified(g_testcase_id, (int)time(NULL)); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_date_modified failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_account_name() - */ -static void utc_web_scrap_set_account_name_n(void) -{ - int ret = bp_scrap_adaptor_set_account_name(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_account_name() - */ -static void utc_web_scrap_set_account_name_p(void) -{ - int ret = bp_scrap_adaptor_set_account_name(g_testcase_id, "ACCOUNT_NAME"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_account_name failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_account_type() - */ -static void utc_web_scrap_set_account_type_n(void) -{ - int ret = bp_scrap_adaptor_set_account_type(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_account_type() - */ -static void utc_web_scrap_set_account_type_p(void) -{ - int ret = bp_scrap_adaptor_set_account_type(g_testcase_id, "ACCOUNT_TYPE"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_account_type failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_device_name() - */ -static void utc_web_scrap_set_device_name_n(void) -{ - int ret = bp_scrap_adaptor_set_device_name(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_device_name() - */ -static void utc_web_scrap_set_device_name_p(void) -{ - int ret = bp_scrap_adaptor_set_device_name(g_testcase_id, "DEVICE_NAME"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_device_name failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_device_id() - */ -static void utc_web_scrap_set_device_id_n(void) -{ - int ret = bp_scrap_adaptor_set_device_id(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_device_id() - */ -static void utc_web_scrap_set_device_id_p(void) -{ - int ret = bp_scrap_adaptor_set_device_id(g_testcase_id, "DEVICE_ID"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_device_id failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_main_content() - */ -static void utc_web_scrap_set_main_content_n(void) -{ - int ret = bp_scrap_adaptor_set_main_content(-1, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_main_content() - */ -static void utc_web_scrap_set_main_content_p(void) -{ - int ret = bp_scrap_adaptor_set_main_content(g_testcase_id, "MAIN_CONTENT"); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_main_content failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_icon() - */ -static void utc_web_scrap_set_icon_n(void) -{ - int ret = bp_scrap_adaptor_set_icon(-1, 0, 0, NULL, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_icon() - */ -static void utc_web_scrap_set_icon_p(void) -{ - unsigned char *value = (unsigned char *)"icon test"; - int ret = bp_scrap_adaptor_set_icon(g_testcase_id, 1, 1, (const unsigned char *)value, 9); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_icon failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_set_snapshot() - */ -static void utc_web_scrap_set_snapshot_n(void) -{ - int ret = bp_scrap_adaptor_set_snapshot(-1, 0, 0, NULL, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_snapshot() - */ -static void utc_web_scrap_set_snapshot_p(void) -{ - unsigned char *value = (unsigned char *)"icon test"; - int ret = bp_scrap_adaptor_set_snapshot(g_testcase_id, 1, 1, (const unsigned char *)value, 9); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_snapshot failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_create() - */ -static void utc_web_scrap_create_n(void) -{ - int ret = bp_scrap_adaptor_create(NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_create() - */ -static void utc_web_scrap_create_p(void) -{ - int id = -1; - int ret = bp_scrap_adaptor_create(&id); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_create failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_delete() - */ -static void utc_web_scrap_delete_n(void) -{ - int ret = bp_scrap_adaptor_delete(-1); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_delete() - */ -static void utc_web_scrap_delete_p(void) -{ - int id = -1; - int ret = bp_scrap_adaptor_create(&id); - if (ret == 0) - ret = bp_scrap_adaptor_delete(id); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_create failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_easy_create() - */ -static void utc_web_scrap_easy_create_n(void) -{ - int ret = bp_scrap_adaptor_easy_create(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_easy_create() - */ -static void utc_web_scrap_easy_create_p(void) -{ - bp_scrap_info_fmt info; - memset(&info, 0x00, sizeof(bp_scrap_info_fmt)); - info.url = "URL"; - info.title = "TITLE"; - info.date_modified = -1; - int id = -1; - int ret = bp_scrap_adaptor_easy_create(&id, &info); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_easy_create failed"); -} - - -/** - * @brief Negative test case of bp_scrap_adaptor_get_info() - */ -static void utc_web_scrap_get_info_n(void) -{ - int ret = bp_scrap_adaptor_get_info(-1, 0, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_info() - */ -static void utc_web_scrap_get_info_p(void) -{ - unsigned int b_offset = (BP_SCRAP_O_DATE_CREATED | BP_SCRAP_O_DATE_MODIFIED | BP_SCRAP_O_URL | BP_SCRAP_O_TITLE); - bp_scrap_info_fmt info; - memset(&info, 0x00, sizeof(bp_scrap_info_fmt)); - int ret = bp_scrap_adaptor_get_info(g_testcase_id, b_offset, &info); - bp_scrap_adaptor_easy_free(&info); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_info failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_cond_ids_p() - */ -static void utc_web_scrap_get_cond_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_cond_ids_p(NULL, NULL, NULL, - 0, NULL, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_cond_ids_p() - */ -static void utc_web_scrap_get_cond_ids_p_p(void) -{ - bp_scrap_rows_cond_fmt conds; - memset(&conds, 0x00, sizeof(bp_scrap_rows_cond_fmt)); - conds.limit = -1; - conds.offset = 0; - conds.order_offset = BP_SCRAP_O_DATE_CREATED; - conds.ordering = 0; - conds.period_offset = BP_SCRAP_O_DATE_CREATED; - conds.period_type = BP_SCRAP_DATE_ALL; - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_cond_ids_p(&ids, &ids_count, - &conds, BP_SCRAP_O_TITLE, "%T%", 1); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_cond_ids_p failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_inquired_ids_p() - */ -static void utc_web_scrap_get_inquired_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_inquired_ids_p(NULL, NULL, 0, 0, - 0, 0, NULL, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_inquired_ids_p() - */ -static void utc_web_scrap_get_inquired_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_inquired_ids_p(&ids, &ids_count, -1, 0, - BP_SCRAP_O_DATE_CREATED, 0/*ASC*/, "%T%", 1); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_cond_ids_p failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_get_duplicated_ids_p() - */ -static void utc_web_scrap_get_duplicated_ids_p_n(void) -{ - int ret = bp_scrap_adaptor_get_duplicated_ids_p(NULL, NULL, 0, 0, 0, - 0, 0, NULL, 0); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_duplicated_ids_p() - */ -static void utc_web_scrap_get_duplicated_ids_p_p(void) -{ - int *ids = NULL; - int ids_count = 0; - int ret = bp_scrap_adaptor_get_duplicated_ids_p(&ids, &ids_count, -1, 0, - BP_SCRAP_O_DATE_CREATED, 0/*ASC*/, BP_SCRAP_O_TITLE, "%T%", 1); - free(ids); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_get_duplicated_ids_p failed"); -} - - - - - - - - - -/** - * @brief Negative test case of bp_scrap_adaptor_set_data_changed_cb() - */ -static void utc_web_scrap_set_data_changed_cb_n(void) -{ - int ret = bp_scrap_adaptor_set_data_changed_cb(NULL, NULL); - if (ret < 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "-1 must be returned when parameter is NULL."); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_set_data_changed_cb() - */ -static void utc_web_scrap_set_data_changed_cb_p(void) -{ - int ret = bp_scrap_adaptor_set_data_changed_cb(scrap_changed, NULL); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_set_data_changed_cb failed"); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_get_errorcode() - */ -static void utc_web_scrap_unset_data_changed_cb_p(void) -{ - int ret = bp_scrap_adaptor_unset_data_changed_cb(scrap_changed); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_unset_data_changed_cb failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_is_setted_data_changed_cb() - */ -static void utc_web_scrap_is_setted_data_changed_cb_p(void) -{ - int ret = bp_scrap_adaptor_set_data_changed_cb(scrap_changed, NULL); - if (ret == 0) - ret = bp_scrap_adaptor_is_setted_data_changed_cb(); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_is_setted_data_changed_cb failed"); -} - -/** - * @brief Negative test case of bp_scrap_adaptor_publish_notification() - */ -static void utc_web_scrap_publish_notification_p(void) -{ - int ret = bp_scrap_adaptor_publish_notification(); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_publish_notification failed"); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_clear_dirty_ids() - */ -static void utc_web_scrap_clear_dirty_ids_p(void) -{ - int ret = bp_scrap_adaptor_clear_dirty_ids(); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_clear_dirty_ids failed"); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_clear_deleted_ids() - */ -static void utc_web_scrap_clear_deleted_ids_p(void) -{ - int ret = bp_scrap_adaptor_clear_deleted_ids(); - if (ret == 0) - dts_pass(__FUNCTION__); - else - dts_fail(__FUNCTION__, "bp_scrap_adaptor_clear_deleted_ids failed"); -} - - -/** - * @brief Positive test case of bp_scrap_adaptor_get_errorcode() - */ -static void utc_web_scrap_get_errorcode_p(void) -{ - bp_scrap_adaptor_get_errorcode(); - dts_pass(__FUNCTION__); -} - -/** - * @brief Positive test case of bp_scrap_adaptor_easy_free() - */ -static void utc_web_scrap_easy_free_p(void) -{ - bp_scrap_adaptor_easy_free(NULL); - dts_pass(__FUNCTION__); -} - diff --git a/TC/web_scrap/tet_scen b/TC/web_scrap/tet_scen deleted file mode 100644 index 03f029a..0000000 --- a/TC/web_scrap/tet_scen +++ /dev/null @@ -1,7 +0,0 @@ -all - ^TEST -##### Scenarios for TEST ##### - -# Test scenario -TEST - :include:/testcase/tslist diff --git a/TC/web_scrap/tetbuild.cfg b/TC/web_scrap/tetbuild.cfg deleted file mode 100644 index f7eda55..0000000 --- a/TC/web_scrap/tetbuild.cfg +++ /dev/null @@ -1,5 +0,0 @@ -TET_OUTPUT_CAPTURE=True # capture option for build operation checking -TET_BUILD_TOOL=make # build with using make command -TET_BUILD_FILE=-f Makefile # execution file (Makefile) for build -TET_API_COMPLIANT=True # use TET API in Test Case ? -TET_PASS_TC_NAME=True # report passed TC name in Journal file? diff --git a/TC/web_scrap/tetclean.cfg b/TC/web_scrap/tetclean.cfg deleted file mode 100644 index 02d7030..0000000 --- a/TC/web_scrap/tetclean.cfg +++ /dev/null @@ -1,5 +0,0 @@ -TET_OUTPUT_CAPTURE=True # capture option -TET_CLEAN_TOOL= make clean # clean tool -TET_CLEAN_FILE= Makefile # file for clean -TET_API_COMPLIANT=True # TET API useage -TET_PASS_TC_NAME=True # showing name , passed TC diff --git a/TC/web_scrap/tetexec.cfg b/TC/web_scrap/tetexec.cfg deleted file mode 100644 index ef3e452..0000000 --- a/TC/web_scrap/tetexec.cfg +++ /dev/null @@ -1,5 +0,0 @@ -TET_OUTPUT_CAPTURE=True # capturing execution or not -TET_EXEC_TOOL= # ex) exec : execution tool set up/ Optional -TET_EXEC_FILE= # ex) exectool : execution file/ Optional -TET_API_COMPLIANT=True # Test case or Tool usesTET API? -TET_PASS_TC_NAME=True # showing Passed TC name ? diff --git a/doc_prod/web_scrap_doc.h b/doc_prod/web_scrap_doc.h deleted file mode 100644 index 2bd4f93..0000000 --- a/doc_prod/web_scrap_doc.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __TIZEN_WEB_SCRAP_DOC_H__ -#define __TIZEN_WEB_SCRAP_DOC_H__ - -/** - * @ingroup CAPI_BROWSER_PROVIDER_MODULE - * @internal - * @defgroup CAPI_WEB_SCRAP_MODULE Scrap - * @brief The Scrap API provides functions to create and manage one or more scraps (saved pages). - * - * @section CAPI_WEB_SCRAP_MODULE_HEADER Required Header - * \#include - * - * @section CAPI_WEB_SCRAP_MODULE_OVERVIEW Overview - * The Scrap API provides functions to create and manage one or more scraps (saved pages). - * - * Major features : - * - After getting id from bp_scrap_adaptor_create(), other APIs use this id as parameter. - * - Supports the callback which is called when other modules change any scraps. - * - */ - -#endif /* __TIZEN_WEB_SCRAP_DOC_H__ */ diff --git a/packaging/browser-provider.spec b/packaging/browser-provider.spec index c822707..1f6c9b7 100755 --- a/packaging/browser-provider.spec +++ b/packaging/browser-provider.spec @@ -30,7 +30,6 @@ BuildRequires: pkgconfig(openssl) %define _databasedir %{_data_install_path}/database %define _notifydir %{_data_install_path}/notify -%define _scrapdir %{_data_install_path}/scraps %define _ipc_socket %{_resource_install_path}/%{name}.sock %define _license_path /usr/share/license %define _cloud_pdm_server /usr/bin/cloud-pdm-server @@ -65,7 +64,6 @@ Description: sync in background (developement files) -DCLOUD_PDM_SERVER:PATH=%{_cloud_pdm_server} \\\ -DPROVIDER_DIR:PATH=%{_data_install_path} \\\ -DDATABASE_DIR:PATH=%{_databasedir} \\\ - -DSCRAP_DIR:PATH=%{_scrapdir} \\\ -DNOTIFY_DIR:PATH=%{_notifydir} \\\ -DIPC_SOCKET:PATH=%{_ipc_socket} \\\ -DSUPPORT_CLOUD_SYSTEM:BOOL=ON \\\ @@ -99,7 +97,6 @@ rm -rf %{buildroot} %post /sbin/ldconfig mkdir -p %{_resource_install_path} -mkdir -p %{_scrapdir} mkdir -p %{_databasedir} mkdir -p %{_notifydir} chsmack -a 'System::Shared' %{_notifydir} @@ -114,8 +111,6 @@ chsmack -t %{_notifydir} %{_libdir}/libcapi-web-bookmark-csc.so.0 %{_libdir}/libcapi-web-bookmark.so.%{version} %{_libdir}/libcapi-web-bookmark.so.0 -%{_libdir}/libcapi-web-scrap.so.%{version} -%{_libdir}/libcapi-web-scrap.so.0 %{_libdir}/libcapi-web-tab.so.%{version} %{_libdir}/libcapi-web-tab.so.0 %{_libdir}/libcapi-web-history.so.%{version} @@ -132,31 +127,25 @@ chsmack -t %{_notifydir} %{_includedir}/web/web_bookmark_csc.h #%{_includedir}/web/web_bookmark_csc_doc.h %{_includedir}/web/web_bookmark.h -%{_includedir}/web/web_scrap.h -#%{_includedir}/web/web_scrap_doc.h %{_includedir}/web/web_tab.h #%{_includedir}/web/web_tab_doc.h %{_includedir}/web/web_history.h #%{_includedir}/web/web_history_doc.h %{_libdir}/pkgconfig/capi-web-bookmark-csc.pc %{_libdir}/pkgconfig/capi-web-bookmark.pc -%{_libdir}/pkgconfig/capi-web-scrap.pc %{_libdir}/pkgconfig/capi-web-tab.pc %{_libdir}/pkgconfig/capi-web-history.pc %{_libdir}/libcapi-web-bookmark-csc.so %{_libdir}/libcapi-web-bookmark.so -%{_libdir}/libcapi-web-scrap.so %{_libdir}/libcapi-web-tab.so %{_libdir}/libcapi-web-history.so #deprecated below %{_includedir}/web/bookmark-csc-adaptor.h %{_includedir}/web/bookmark-adaptor.h -%{_includedir}/web/scrap-adaptor.h %{_includedir}/web/tab-adaptor.h %{_includedir}/web/history-adaptor.h %{_libdir}/pkgconfig/bookmark-csc-adaptor.pc %{_libdir}/pkgconfig/bookmark-adaptor.pc -%{_libdir}/pkgconfig/scrap-adaptor.pc %{_libdir}/pkgconfig/tab-adaptor.pc %{_libdir}/pkgconfig/history-adaptor.pc diff --git a/provider/CMakeLists.txt b/provider/CMakeLists.txt index 2bd1e46..4e320d3 100644 --- a/provider/CMakeLists.txt +++ b/provider/CMakeLists.txt @@ -40,7 +40,6 @@ ENDFOREACH(flag) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/history-adaptor/include ${CMAKE_SOURCE_DIR}/tab-adaptor/include - ${CMAKE_SOURCE_DIR}/scrap-adaptor/include ${CMAKE_SOURCE_DIR}/bookmark-adaptor/include) set(BP_LINK_LIBRARIES ${GLIB-2_LIBRARIES} @@ -57,9 +56,6 @@ ENDIF(DEFINED PROVIDER_DIR) IF(DEFINED DATABASE_DIR) ADD_DEFINITIONS(-DDATABASE_DIR=\"${DATABASE_DIR}\") ENDIF(DEFINED DATABASE_DIR) -IF(DEFINED SCRAP_DIR) - ADD_DEFINITIONS(-DSCRAP_DIR=\"${SCRAP_DIR}\") -ENDIF(DEFINED SCRAP_DIR) @@ -80,7 +76,6 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-requests.c ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-tabs.c ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-bookmarks.c - ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-scraps.c ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-history.c ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-requests-manager.c ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-main.c ) diff --git a/provider/browser-provider-db.c b/provider/browser-provider-db.c index a97191f..3fe9406 100644 --- a/provider/browser-provider-db.c +++ b/provider/browser-provider-db.c @@ -163,19 +163,6 @@ static int __bp_dp_rebuild_tables(sqlite3 *handle, bp_client_type_defs adaptor_t if (ret == SQLITE_OK && __check_table(handle, BP_DB_TABLE_WEBICONS) < 0) { ret = sqlite3_exec(handle, BP_SCHEMA_IMAGE(BP_DB_TABLE_WEBICONS, BP_DB_TABLE_HISTORY), 0, 0, 0); } - } else if (adaptor_type == BP_CLIENT_SCRAP) { - if (__check_table(handle, BP_DB_TABLE_SCRAP) < 0) { - ret = sqlite3_exec(handle, BP_SCHEMA_SCRAPS, 0, 0, 0); - } - if (ret == SQLITE_OK && __check_table(handle, BP_DB_TABLE_FAVICONS) < 0) { - ret = sqlite3_exec(handle, BP_SCHEMA_IMAGE(BP_DB_TABLE_FAVICONS, BP_DB_TABLE_SCRAP), 0, 0, 0); - } - if (ret == SQLITE_OK && __check_table(handle, BP_DB_TABLE_THUMBNAILS) < 0) { - ret = sqlite3_exec(handle, BP_SCHEMA_IMAGE(BP_DB_TABLE_THUMBNAILS, BP_DB_TABLE_SCRAP), 0, 0, 0); - } - if (ret == SQLITE_OK && __check_table(handle, BP_DB_TABLE_TAGS) < 0) { - ret = sqlite3_exec(handle, BP_SCHEMA_TAGS(BP_DB_TABLE_TAGS, BP_DB_TABLE_SCRAP), 0, 0, 0); - } } else if (adaptor_type == BP_CLIENT_TABS) { if (__check_table(handle, BP_DB_TABLE_TABS) < 0) { ret = sqlite3_exec(handle, BP_SCHEMA_TABS, 0, 0, 0); @@ -220,9 +207,6 @@ int bp_db_open(sqlite3 **handle, char *database) } else if (strncmp(DATABASE_HISTORY_FILE, database, length) == 0) { adaptor_type = BP_CLIENT_HISTORY; check_table = BP_DB_TABLE_HISTORY; - } else if (strncmp(DATABASE_SCRAP_FILE, database, length) == 0) { - adaptor_type = BP_CLIENT_SCRAP; - check_table = BP_DB_TABLE_SCRAP; } else if (strncmp(DATABASE_TAB_FILE, database, length) == 0) { adaptor_type = BP_CLIENT_TABS; check_table = BP_DB_TABLE_TABS; @@ -393,16 +377,6 @@ sqlite3_stmt *bp_db_prepare_basic_get_info_stmt(sqlite3 *handle, BP_DB_COMMON_COL_DATETIME_VISITED, BP_DB_COMMON_COL_URL, BP_DB_COMMON_COL_TITLE, table, cond_column); - } else if (strncmp(BP_DB_TABLE_SCRAP, table, table_length) == 0) { - query = sqlite3_mprintf - ("SELECT %s, %s, %s, %s, %s, %s, %s, %s, %s FROM %s WHERE %s = ?", - BP_DB_SCRAP_COL_BASE_DIR, BP_DB_SCRAP_COL_PAGE_PATH, - BP_DB_COMMON_COL_URL, BP_DB_COMMON_COL_TITLE, - BP_DB_COMMON_COL_DATETIME_CREATED, - BP_DB_COMMON_COL_DATETIME_MODIFIED, BP_DB_SCRAP_COL_IS_READ, - BP_DB_SCRAP_COL_IS_READER, - BP_DB_SCRAP_COL_IS_NIGHT_MODE, - table, cond_column); } else { query = sqlite3_mprintf ("SELECT %s, %s, %s, %s FROM %s WHERE %s = ?", diff --git a/provider/browser-provider-main.c b/provider/browser-provider-main.c index 81dfa9b..34c6ef1 100755 --- a/provider/browser-provider-main.c +++ b/provider/browser-provider-main.c @@ -32,7 +32,6 @@ #include "browser-provider-tabs.h" #include "browser-provider-bookmarks.h" -#include "browser-provider-scraps.h" #include "browser-provider-history.h" bp_privates_defs *g_privates = NULL; @@ -190,7 +189,6 @@ int main() } bp_tabs_free_resource(); bp_bookmark_free_resource(); - bp_scraps_free_resource(); bp_history_free_resource(); #ifdef SUPPORT_BOOTING_DONE diff --git a/provider/browser-provider-requests-manager.c b/provider/browser-provider-requests-manager.c index a7555ac..2356ca6 100755 --- a/provider/browser-provider-requests-manager.c +++ b/provider/browser-provider-requests-manager.c @@ -42,7 +42,6 @@ #include "browser-provider-tabs.h" #include "browser-provider-bookmarks.h" -#include "browser-provider-scraps.h" #include "browser-provider-history.h" void bp_terminate(int signo); @@ -143,18 +142,6 @@ static char *__print_cmd(bp_command_defs cmd) return "GET_ACCESS_COUNT"; case BP_CMD_BOOKMARK_BACKUP: return "BACKUP"; - case BP_CMD_SCRAP_GET_BASE_DIR: - return "GET_BASE_DIR"; - case BP_CMD_SCRAP_GET_PAGE_PATH: - return "GET_PAGE_PATH"; - case BP_CMD_SCRAP_GET_IS_READ: - return "GET_IS_READ"; - case BP_CMD_SCRAP_GET_IS_READER: - return "GET_IS_READER"; - case BP_CMD_SCRAP_GET_IS_NIGHT_MODE: - return "GET_IS_NIGHT_MODE"; - case BP_CMD_SCRAP_GET_MAIN_CONTENT: - return "GET_MAIN_CONTENT"; case BP_CMD_CSC_BOOKMARK_GET_ALL: return "CSC_GET_ALL"; case BP_CMD_HISTORY_GET_FREQUENCY: @@ -249,18 +236,6 @@ static char *__print_cmd(bp_command_defs cmd) return "RESTORE"; case BP_CMD_BOOKMARK_DELETE_NO_CARE_CHILD: return "DELETE_NO_CARE_CHILD"; - case BP_CMD_SCRAP_SET_BASE_DIR: - return "SET_BASE_DIR"; - case BP_CMD_SCRAP_SET_PAGE_PATH: - return "SET_PAGE_PATH"; - case BP_CMD_SCRAP_SET_IS_READ: - return "SET_IS_READ"; - case BP_CMD_SCRAP_SET_IS_READER: - return "SET_IS_READER"; - case BP_CMD_SCRAP_SET_IS_NIGHT_MODE: - return "SET_IS_NIGHT_MODE"; - case BP_CMD_SCRAP_SET_MAIN_CONTENT: - return "SET_MAIN_CONTENT"; case BP_CMD_HISTORY_SET_FREQUENCY: return "SET_FREQUENCY"; case BP_CMD_HISTORY_SET_VISIT: @@ -286,10 +261,6 @@ static char *__print_client_type(bp_client_type_defs type) return "BOOKMARK_SYNC"; case BP_CLIENT_BOOKMARK_CSC: return "BOOKMARK_CSC"; - case BP_CLIENT_SCRAP: - return "SCRAP"; - case BP_CLIENT_SCRAP_SYNC: - return "SCRAP_SYNC"; case BP_CLIENT_HISTORY: return "HISTORY"; case BP_CLIENT_HISTORY_SYNC: @@ -393,11 +364,6 @@ static bp_error_defs __handle_client_request(bp_client_defs *client) errorcode = bp_bookmark_handle_requests (g_bp_slots, client, &client_cmd); break; - case BP_CLIENT_SCRAP: - case BP_CLIENT_SCRAP_SYNC: - errorcode = bp_scraps_handle_requests - (g_bp_slots, client, &client_cmd); - break; case BP_CLIENT_HISTORY: errorcode = bp_history_handle_requests (g_bp_slots, client, &client_cmd); @@ -439,10 +405,6 @@ void *client_thread_idle(void *arg) case BP_CLIENT_BOOKMARK_CSC: errorcode = bp_bookmark_ready_resource(); break; - case BP_CLIENT_SCRAP: - case BP_CLIENT_SCRAP_SYNC: - errorcode = bp_scraps_ready_resource(); - break; case BP_CLIENT_HISTORY: case BP_CLIENT_HISTORY_SYNC: errorcode = bp_history_ready_resource(); @@ -739,10 +701,6 @@ void bp_thread_requests_manager(bp_privates_defs *privates) case BP_CLIENT_BOOKMARK_CSC: privates->slots[i].client->privilege_label = SECURITY_PRIVILEGE_BOOKMARK; break; - case BP_CLIENT_SCRAP: - case BP_CLIENT_SCRAP_SYNC: - privates->slots[i].client->privilege_label = SECURITY_PRIVILEGE_SCRAP; - break; case BP_CLIENT_HISTORY: case BP_CLIENT_HISTORY_SYNC: privates->slots[i].client->privilege_label = SECURITY_PRIVILEGE_HISTORY; diff --git a/provider/browser-provider-scraps.c b/provider/browser-provider-scraps.c deleted file mode 100755 index 0de5812..0000000 --- a/provider/browser-provider-scraps.c +++ /dev/null @@ -1,1013 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include // unlink - -#include "browser-provider.h" -#include "browser-provider-log.h" -#include "browser-provider-slots.h" -#include "browser-provider-socket.h" -#include "browser-provider-db.h" -#include "browser-provider-requests.h" - -#include "scrap-adaptor.h" - -static sqlite3 *g_db_handle = 0; -static sqlite3_stmt *g_db_basic_get_info_stmt = NULL; -static pthread_mutex_t g_db_mutex = PTHREAD_MUTEX_INITIALIZER; - -static int __bp_scrap_is_file_exist(const char *file_path) -{ - struct stat file_state; - int stat_ret; - if (file_path == NULL) { - TRACE_ERROR("[NULL-CHECK] file path is NULL"); - return -1; - } - stat_ret = stat(file_path, &file_state); - if (stat_ret == 0) - if (file_state.st_mode & S_IFREG) - return 0; - return -1; -} - -static int __bp_scrap_copy_mhtml(char *src, char *mhtmlpath) -{ - int ret = -1; - if (src != NULL && mhtmlpath != NULL) { - FILE *sfp = fopen(src, "r"); - if (sfp != NULL) { - FILE *tfp = fopen(mhtmlpath, "w"); - if (tfp != NULL) { - char buffer[2048]; - while (!feof(sfp)) { - if (fgets(buffer, 2048, sfp) != NULL) - fputs(buffer, tfp); - } - fclose(tfp); - ret = 0; - } else { - TRACE_STRERROR("target:%s", mhtmlpath); - } - fclose(sfp); - } else { - TRACE_STRERROR("src:%s", src); - } - } - return ret; -} - -static bp_error_defs __bp_scrap_save_page(int sock, int id) -{ - bp_error_defs errorcode = BP_ERROR_NONE; - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - char *recv_str = bp_ipc_read_string(sock); - if (recv_str == NULL) { - TRACE_ERROR("[ERROR][%d] SET_STRING [IO_ERROR]", id); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - if (__bp_scrap_is_file_exist(recv_str) < 0) { - TRACE_ERROR("[ERROR][%d] not found %s", id, recv_str); - bp_ipc_send_errorcode(sock, BP_ERROR_INVALID_PARAMETER); - free(recv_str); - return BP_ERROR_INVALID_PARAMETER; - } - pthread_mutex_lock(&g_db_mutex); - if (bp_db_get_int_column(g_db_handle, id, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_ID, &errorcode) >= 0) { - -#ifdef PROVIDER_DIR - bp_rebuild_dir(PROVIDER_DIR); -#endif -#ifdef SCRAP_DIR - bp_rebuild_dir(SCRAP_DIR); - char *mhtmlpath = - sqlite3_mprintf("%s/%d.mht", SCRAP_DIR, id); - if (mhtmlpath != NULL) { - if (__bp_scrap_is_file_exist(mhtmlpath) == 0) - unlink(mhtmlpath); - if (__bp_scrap_copy_mhtml(recv_str, mhtmlpath) < 0) { - errorcode = BP_ERROR_INVALID_PARAMETER; - } else { - if (bp_db_set_column(g_db_handle, id, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_PAGE_PATH, BP_DB_COL_TYPE_TEXT, - mhtmlpath, &errorcode) < 0) { - TRACE_ERROR("[ERROR][SQL][%d] SET_STRING", id); - unlink(mhtmlpath); - } - } - sqlite3_free(mhtmlpath); - } else { - errorcode = BP_ERROR_OUT_OF_MEMORY; - } -#endif - } - pthread_mutex_unlock(&g_db_mutex); - free(recv_str); - bp_ipc_send_errorcode(sock, errorcode); - return errorcode; -} - -static char *__bp_scrap_get_date_query(int is_deleted, bp_scrap_date_defs date_type, char *checkcolumn) -{ - char *conditions = NULL; - char *date_cond = NULL; - char *delete_cond = NULL; - if (is_deleted >= 0) - delete_cond = sqlite3_mprintf("%s IS %d", BP_DB_COMMON_COL_IS_DELETED, - is_deleted); - if (date_type == BP_SCRAP_DATE_TODAY) { - date_cond = - sqlite3_mprintf("DATE(%s) = DATE('now')", checkcolumn); - } else if (date_type == BP_SCRAP_DATE_YESTERDAY) { - date_cond = sqlite3_mprintf("DATE(%s) = DATE('now', '-1 day')", - checkcolumn); - } else if (date_type == BP_SCRAP_DATE_LAST_7_DAYS) { - date_cond = - sqlite3_mprintf("DATE(%s) < DATE('now', '-2 days') AND DATE(%s) > DATE('now','-7 days')", - checkcolumn, checkcolumn); - } else if (date_type == BP_SCRAP_DATE_LAST_MONTH) { - date_cond = - sqlite3_mprintf("DATE(%s) <= DATE('now','-1 months') AND DATE(%s) > DATE('now', '-2 months')", - checkcolumn, checkcolumn); - } else if (date_type == BP_SCRAP_DATE_OLDER) { - date_cond = - sqlite3_mprintf("DATE(%s) <= DATE('now', '-2 months')", - checkcolumn); - } - - if (delete_cond != NULL && date_cond != NULL) - conditions = sqlite3_mprintf("%s AND %s", delete_cond, date_cond); - else if (delete_cond != NULL && date_cond == NULL) - conditions = sqlite3_mprintf("%s", delete_cond); - else if (delete_cond == NULL && date_cond != NULL) - conditions = sqlite3_mprintf("%s", date_cond); - - if (date_cond != NULL) - sqlite3_free(date_cond); - if (delete_cond != NULL) - sqlite3_free(delete_cond); - return conditions; -} - -static bp_error_defs __bp_scrap_get_cond_ids(int sock) -{ - BP_PRE_CHECK; - - bp_error_defs errorcode = BP_ERROR_NONE; - int ids_count = 0; - int *ids = NULL; - int is_like = 0; - bp_scrap_offset check_offset = 0; - char *order_column = NULL; - char *period_column = NULL; - char *keyword = NULL; - char *conditions = NULL; - bp_scrap_rows_cond_fmt conds; - - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - memset(&conds, 0x00, sizeof(bp_scrap_rows_cond_fmt)); - if (bp_ipc_read_custom_type(sock, &conds, - sizeof(bp_scrap_rows_cond_fmt)) < 0) { - TRACE_ERROR("[ERROR] CONDs [BP_ERROR_IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - // check_column_offset - if (bp_ipc_read_custom_type - (sock, &check_offset, sizeof(bp_scrap_offset)) < 0) { - TRACE_ERROR("[ERROR]] GET_OFFSET [BP_ERROR_IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - if (check_offset > 0) { - // is_like - if (bp_ipc_read_custom_type(sock, &is_like, sizeof(int)) < 0) { - TRACE_ERROR("[ERROR] COND IS_LIKE [IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - // keyword - keyword = bp_ipc_read_string(sock); - if (keyword == NULL) { - TRACE_ERROR("[ERROR] KEYWORD [IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - } - - if (conds.order_offset & BP_SCRAP_O_URL) - order_column = BP_DB_COMMON_COL_URL; - else if (conds.order_offset & BP_SCRAP_O_TITLE) - order_column = BP_DB_COMMON_COL_TITLE; - else if (conds.order_offset & BP_SCRAP_O_DEVICE_ID) - order_column = BP_DB_COMMON_COL_DEVICE_ID; - else if (conds.order_offset & BP_SCRAP_O_DATE_MODIFIED) - order_column = BP_DB_COMMON_COL_DATE_MODIFIED; - else - order_column = BP_DB_COMMON_COL_DATE_CREATED; - - if (conds.period_offset & BP_SCRAP_O_DATE_MODIFIED) - period_column = BP_DB_COMMON_COL_DATE_MODIFIED; - else - period_column = BP_DB_COMMON_COL_DATE_CREATED; - - conditions = - __bp_scrap_get_date_query(0, conds.period_type, period_column); - - if (check_offset > 0) { - - if ((check_offset & BP_SCRAP_O_TITLE) && - (check_offset & BP_SCRAP_O_URL)) { - // inquired - errorcode = bp_common_get_inquired_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, - &ids_count, conds.limit, conds.offset, order_column, - conds.ordering, is_like, keyword, conditions, 0); - } else { - - if (check_offset & BP_SCRAP_O_URL) { - errorcode = bp_common_get_duplicated_url_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, - order_column, conds.ordering, is_like, keyword, conditions); - } else { - char *checkcolumn = NULL; - if (check_offset & BP_SCRAP_O_TITLE) - checkcolumn = BP_DB_COMMON_COL_TITLE; - else if(check_offset & BP_SCRAP_O_PAGE) - checkcolumn = BP_DB_SCRAP_COL_PAGE_PATH; - else - errorcode = BP_ERROR_INVALID_PARAMETER; - if (checkcolumn != NULL) { - errorcode = bp_common_get_duplicated_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, checkcolumn, order_column, - conds.ordering, is_like, keyword, conditions); - } - } - - } - - } else { - errorcode = bp_common_get_ids(g_db_handle, &g_db_mutex, - BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, - order_column, conds.ordering, conditions); - } - - bp_ipc_send_errorcode(sock, errorcode); - if (errorcode == BP_ERROR_NONE) { - bp_ipc_send_custom_type(sock, &ids_count, sizeof(int)); - bp_ipc_send_custom_type(sock, ids, (sizeof(int) * ids_count)); - } - free(ids); - free(keyword); - if (conditions != NULL) - sqlite3_free(conditions); - return errorcode; -} - -static bp_error_defs __bp_scrap_get_duplicated_ids(int sock) -{ - BP_PRE_CHECK; - - bp_error_defs errorcode = BP_ERROR_NONE; - bp_scrap_offset offset = 0; - int ids_count = 0; - int *ids = NULL; - char *ordercolumn = NULL; - char *keyword = NULL; - bp_db_base_conds_fmt conds; - - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - memset(&conds, 0x00, sizeof(bp_db_base_conds_fmt)); - if (bp_ipc_read_custom_type - (sock, &conds, sizeof(bp_db_base_conds_fmt)) < 0) { - TRACE_ERROR("[ERROR] CONDs [BP_ERROR_IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - // check_column_offset - if (bp_ipc_read_custom_type(sock, &offset, sizeof(bp_scrap_offset)) < 0) { - TRACE_ERROR("[ERROR]] GET_OFFSET [BP_ERROR_IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - // is_like - int is_like = 0; - if (bp_ipc_read_custom_type(sock, &is_like, sizeof(int)) < 0) { - TRACE_ERROR("[ERROR] COND IS_LIKE [IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - // keyword - keyword = bp_ipc_read_string(sock); - if (keyword == NULL) { - TRACE_ERROR("[ERROR] KEYWORD [IO_ERROR]"); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - - if (conds.order_column_offset & BP_SCRAP_O_URL) - ordercolumn = BP_DB_COMMON_COL_URL; - else if (conds.order_column_offset & BP_SCRAP_O_TITLE) - ordercolumn = BP_DB_COMMON_COL_TITLE; - else if (conds.order_column_offset & BP_SCRAP_O_DATE_MODIFIED) - ordercolumn = BP_DB_COMMON_COL_DATE_MODIFIED; - else - ordercolumn = BP_DB_COMMON_COL_DATE_CREATED; - - if ((offset & BP_SCRAP_O_TITLE) && (offset & BP_SCRAP_O_URL)) { - // inquired - errorcode = bp_common_get_inquired_ids(g_db_handle, &g_db_mutex, - BP_DB_TABLE_SCRAP, &ids, - &ids_count, conds.limit, conds.offset, ordercolumn, - conds.ordering, is_like, keyword, NULL, 0); - } else { - - if (offset & BP_SCRAP_O_URL) { - errorcode = bp_common_get_duplicated_url_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, - ordercolumn, conds.ordering, is_like, keyword, NULL); - } else if (offset & BP_SCRAP_O_TITLE) { - errorcode = bp_common_get_duplicated_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, BP_DB_COMMON_COL_TITLE, - ordercolumn, conds.ordering, is_like, keyword, NULL); - } else if (offset & BP_SCRAP_O_PAGE) { - errorcode = bp_common_get_duplicated_ids(g_db_handle, - &g_db_mutex, BP_DB_TABLE_SCRAP, &ids, &ids_count, - conds.limit, conds.offset, BP_DB_SCRAP_COL_PAGE_PATH, - ordercolumn, conds.ordering, is_like, keyword, NULL); - } else { - errorcode = BP_ERROR_INVALID_PARAMETER; - } - - } - - bp_ipc_send_errorcode(sock, errorcode); - if (errorcode == BP_ERROR_NONE) { - bp_ipc_send_custom_type(sock, &ids_count, sizeof(int)); - bp_ipc_send_custom_type(sock, ids, (sizeof(int) * ids_count)); - } - free(ids); - free(keyword); - return errorcode; -} - -static bp_error_defs __bp_scrap_get_info_offset(int sock, int id, bp_shm_defs *shm) -{ - BP_PRE_CHECK; - - bp_error_defs errorcode = BP_ERROR_NONE; - int columns_count = 0; - int columns_index = 0; - bp_scrap_offset offset = 0; - bp_scrap_info_fmt info; - bp_db_get_columns_fmt *columns = NULL; - - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - memset(&info, 0x00, sizeof(bp_scrap_info_fmt)); - if (bp_ipc_read_custom_type(sock, &offset, sizeof(bp_scrap_offset)) < 0) { - TRACE_ERROR("[ERROR][%d] GET_OFFSET [BP_ERROR_IO_ERROR]", id); - bp_ipc_send_errorcode(sock, BP_ERROR_IO_ERROR); - return BP_ERROR_IO_ERROR; - } - - pthread_mutex_lock(&g_db_mutex); - if (g_db_handle != 0 && g_db_basic_get_info_stmt == NULL) { - g_db_basic_get_info_stmt = - bp_db_prepare_basic_get_info_stmt(g_db_handle, BP_DB_TABLE_SCRAP, BP_DB_COMMON_COL_ID); - } - if (g_db_basic_get_info_stmt == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_DISK_BUSY); - pthread_mutex_unlock(&g_db_mutex); - return BP_ERROR_DISK_BUSY; - } - bp_db_bind_value(g_db_basic_get_info_stmt, BP_DB_COL_TYPE_INT, &id, 1); - int ret = bp_db_exec_stmt(g_db_basic_get_info_stmt); - if (ret != SQLITE_ROW) { - TRACE_ERROR("[ERROR][%d] GET_OFFSET [BP_ERROR_ID_NOT_FOUND]", id); - bp_ipc_send_errorcode(sock, BP_ERROR_ID_NOT_FOUND); - bp_db_reset(g_db_basic_get_info_stmt); - pthread_mutex_unlock(&g_db_mutex); - return BP_ERROR_ID_NOT_FOUND; - } - - if (offset & BP_SCRAP_O_DATE_CREATED) - info.date_created = sqlite3_column_int(g_db_basic_get_info_stmt, 4); - if (offset & BP_SCRAP_O_DATE_MODIFIED) - info.date_modified = sqlite3_column_int(g_db_basic_get_info_stmt, 5); - if (offset & BP_SCRAP_O_IS_READ) - info.is_read = sqlite3_column_int(g_db_basic_get_info_stmt, 6); - if (offset & BP_SCRAP_O_IS_READER) - info.is_reader = sqlite3_column_int(g_db_basic_get_info_stmt, 7); - if (offset & BP_SCRAP_O_IS_NIGHT_MODE) - info.is_reader = sqlite3_column_int(g_db_basic_get_info_stmt, 8); - - // getting extra columns - - // check the number of integer values - if (offset & BP_SCRAP_O_ACCOUNT_NAME) - columns_count++; - if (offset & BP_SCRAP_O_ACCOUNT_TYPE) - columns_count++; - if (offset & BP_SCRAP_O_DEVICE_NAME) - columns_count++; - if (offset & BP_SCRAP_O_DEVICE_ID) - columns_count++; - if (offset & BP_SCRAP_O_MAIN_CONTENT) - columns_count++; - - if (columns_count > 0) { - // get int first - columns = (bp_db_get_columns_fmt *)calloc(columns_count, sizeof(bp_db_get_columns_fmt)); - if (columns == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_OUT_OF_MEMORY); - bp_db_reset(g_db_basic_get_info_stmt); - pthread_mutex_unlock(&g_db_mutex); - TRACE_ERROR("[ERROR][%d] GET_OFFSET [BP_ERROR_OUT_OF_MEMORY]", id); - return BP_ERROR_OUT_OF_MEMORY; - } - - if (offset & BP_SCRAP_O_ACCOUNT_NAME) { - columns[columns_index].column = BP_DB_COMMON_COL_ACCOUNT_NAME; - columns_index++; - } - if (offset & BP_SCRAP_O_ACCOUNT_TYPE) { - columns[columns_index].column = BP_DB_COMMON_COL_ACCOUNT_TYPE; - columns_index++; - } - if (offset & BP_SCRAP_O_DEVICE_NAME) { - columns[columns_index].column = BP_DB_COMMON_COL_DEVICE_NAME; - columns_index++; - } - if (offset & BP_SCRAP_O_DEVICE_ID) { - columns[columns_index].column = BP_DB_COMMON_COL_DEVICE_ID; - columns_index++; - } - if (offset & BP_SCRAP_O_MAIN_CONTENT) { - columns[columns_index].column = BP_DB_SCRAP_COL_MAIN_CONTENT; - columns_index++; - } - - if (bp_db_get_columns(g_db_handle, id, BP_DB_TABLE_SCRAP, - columns_count, columns, &errorcode) < 0) { - TRACE_ERROR("[ERROR][SQL][%d] GET INFOs by offset", id); - bp_ipc_send_errorcode(sock, errorcode); - bp_db_reset(g_db_basic_get_info_stmt); - pthread_mutex_unlock(&g_db_mutex); - free(columns); - return errorcode; - } - } - - if (offset & BP_SCRAP_O_FAVICON) { - int recvint = bp_db_get_int_column - (g_db_handle, id, BP_DB_TABLE_FAVICONS, - BP_DB_COMMON_COL_BLOB_WIDTH, &errorcode); - if (recvint > 0) - info.favicon_width = recvint; - recvint = bp_db_get_int_column - (g_db_handle, id, BP_DB_TABLE_FAVICONS, - BP_DB_COMMON_COL_BLOB_HEIGHT, &errorcode); - if (recvint > 0) - info.favicon_height = recvint; - } - if (offset & BP_SCRAP_O_SNAPSHOT) { - int recvint = bp_db_get_int_column - (g_db_handle, id, BP_DB_TABLE_THUMBNAILS, - BP_DB_COMMON_COL_BLOB_WIDTH, &errorcode); - if (recvint > 0) - info.snapshot_width = recvint; - recvint = bp_db_get_int_column - (g_db_handle, id, BP_DB_TABLE_THUMBNAILS, - BP_DB_COMMON_COL_BLOB_HEIGHT, &errorcode); - if (recvint > 0) - info.snapshot_height = recvint; - } - - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_custom_type(sock, &info, sizeof(bp_scrap_info_fmt)); - - // send strings . keep the order with adaptor - if (offset & BP_SCRAP_O_PAGE) { - char *getstr = bp_db_get_text_stmt(g_db_basic_get_info_stmt, 1); - if (getstr != NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, getstr); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } - free(getstr); - } - if (offset & BP_SCRAP_O_URL) { - char *getstr = bp_db_get_text_stmt(g_db_basic_get_info_stmt, 2); - if (getstr != NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, getstr); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } - free(getstr); - } - if (offset & BP_SCRAP_O_TITLE) { - char *getstr = bp_db_get_text_stmt(g_db_basic_get_info_stmt, 3); - if (getstr != NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, getstr); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } - free(getstr); - } - if (columns_count > 0 && columns != NULL) { - columns_index = 0; - if (offset & BP_SCRAP_O_ACCOUNT_NAME) { - char *recvstr = columns[columns_index].value; - if (recvstr == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, recvstr); - } - columns_index++; - } - if (offset & BP_SCRAP_O_ACCOUNT_TYPE) { - char *recvstr = columns[columns_index].value; - if (recvstr == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, recvstr); - } - columns_index++; - } - if (offset & BP_SCRAP_O_DEVICE_NAME) { - char *recvstr = columns[columns_index].value; - if (recvstr == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, recvstr); - } - columns_index++; - } - if (offset & BP_SCRAP_O_DEVICE_ID) { - char *recvstr = columns[columns_index].value; - if (recvstr == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, recvstr); - } - columns_index++; - } - if (offset & BP_SCRAP_O_MAIN_CONTENT) { - char *recvstr = columns[columns_index].value; - if (recvstr == NULL) { - bp_ipc_send_errorcode(sock, BP_ERROR_NO_DATA); - } else { - bp_ipc_send_errorcode(sock, BP_ERROR_NONE); - bp_ipc_send_string(sock, recvstr); - } - columns_index++; - } - } - if (offset & BP_SCRAP_O_FAVICON) { - bp_common_get_info_send_blob(g_db_handle, &g_db_mutex, - BP_DB_TABLE_FAVICONS, sock, id, shm); - } - if (offset & BP_SCRAP_O_SNAPSHOT) { - bp_common_get_info_send_blob(g_db_handle, &g_db_mutex, - BP_DB_TABLE_THUMBNAILS, sock, id, shm); - } - bp_db_free_columns_fmt_values(columns_count, columns); - free(columns); - bp_db_reset(g_db_basic_get_info_stmt); - pthread_mutex_unlock(&g_db_mutex); - return BP_ERROR_NONE; -} - -bp_error_defs bp_scraps_ready_resource() -{ -#ifdef DATABASE_SCRAP_FILE - pthread_mutex_lock(&g_db_mutex); - // By client type, db_handle indicate sql handle - int phighwater = 0; - int pcur = 0; - int ret = 0; - if (g_db_handle == 0 || - (ret = sqlite3_db_status(g_db_handle, - SQLITE_DBSTATUS_STMT_USED, &pcur, &phighwater, - 0)) != SQLITE_OK) { - if (g_db_handle != 0) { - TRACE_INFO("sql(%p) error:%d, used memory:%d, highwater:%d", - g_db_handle, ret, pcur, phighwater); - if (g_db_basic_get_info_stmt != NULL) { - bp_db_finalize(g_db_basic_get_info_stmt); - g_db_basic_get_info_stmt = NULL; - } - bp_db_close(g_db_handle); - g_db_handle = 0; - } - if (bp_db_open(&g_db_handle, DATABASE_SCRAP_FILE) < 0) { - TRACE_ERROR("[CRITICAL] can not open SQL"); - int sql_errorcode = SQLITE_OK; - if (g_db_handle != 0) { - sql_errorcode = sqlite3_errcode(g_db_handle); - bp_db_close(g_db_handle); - g_db_handle = 0; - } else { - sql_errorcode = SQLITE_FULL; - } - pthread_mutex_unlock(&g_db_mutex); - if (sql_errorcode == SQLITE_FULL) - return BP_ERROR_DISK_FULL; - return BP_ERROR_DISK_BUSY; - } - } - if (g_db_handle != 0 && g_db_basic_get_info_stmt == NULL) { - g_db_basic_get_info_stmt = - bp_db_prepare_basic_get_info_stmt(g_db_handle, BP_DB_TABLE_SCRAP, BP_DB_COMMON_COL_ID); - } - pthread_mutex_unlock(&g_db_mutex); - return BP_ERROR_NONE; -#else - TRACE_ERROR("[CRITICAL] Missing SQL info in compile option"); - return BP_ERROR_UNKNOWN; -#endif -} - -void bp_scraps_free_resource() -{ - pthread_mutex_lock(&g_db_mutex); - if (g_db_handle != 0) { - TRACE_SECURE_DEBUG("TRY to close [%s]", DATABASE_SCRAP_FILE); - if (g_db_basic_get_info_stmt != NULL) - bp_db_finalize(g_db_basic_get_info_stmt); - g_db_basic_get_info_stmt = NULL; - bp_db_close(g_db_handle); - g_db_handle = 0; - } - pthread_mutex_unlock(&g_db_mutex); -} - -bp_error_defs bp_scraps_handle_requests(bp_client_slots_defs *slots, - bp_client_defs *client, bp_command_fmt *client_cmd) -{ - bp_command_defs cmd = BP_CMD_NONE; - bp_error_defs errorcode = BP_ERROR_NONE; - int id = 0; - int cid = 0; - int sock = -1; - - if (slots == NULL) { - TRACE_ERROR("[ERROR] NULL slots"); - return BP_ERROR_INVALID_PARAMETER; - } - if (client == NULL) { - TRACE_ERROR("[ERROR] NULL client"); - return BP_ERROR_INVALID_PARAMETER; - } - if (client->cmd_socket < 0) { - TRACE_ERROR("[ERROR] sock establish"); - return BP_ERROR_INVALID_PARAMETER; - } - if (client_cmd == NULL) { - TRACE_ERROR("[ERROR] NULL Command"); - if (bp_ipc_send_errorcode(client->cmd_socket, - BP_ERROR_INVALID_PARAMETER) < 0) - return BP_ERROR_IO_ERROR; - return BP_ERROR_INVALID_PARAMETER; - } - - id = client_cmd->id; - cmd = client_cmd->cmd; - cid = client_cmd->cid; - sock = client->cmd_socket; - - if ((errorcode = bp_scraps_ready_resource()) != BP_ERROR_NONE) { - bp_ipc_send_errorcode(sock, errorcode); - return errorcode; - } - - switch (cmd) { - case BP_CMD_COMMON_GET_CONDS_DATE_IDS: // ids with date - errorcode = __bp_scrap_get_cond_ids(sock); - break; - case BP_CMD_COMMON_CREATE: - errorcode = bp_common_create - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock, id); - break; - case BP_CMD_COMMON_DELETE: - -#ifdef SUPPORT_CLOUD_SYSTEM - if (client->type == BP_CLIENT_SCRAP && - bp_common_is_connected_my_sync_adaptor(slots, - client->type) == 0) { - errorcode = bp_common_set_is_deleted - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock, id); - break; - } -#endif - errorcode = bp_common_delete - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock, id); - if (errorcode == BP_ERROR_NONE) { -#ifdef SCRAP_DIR - char *mhtmlpath = - sqlite3_mprintf("%s/%d.mht", SCRAP_DIR, id); - if (mhtmlpath != NULL) { - if (__bp_scrap_is_file_exist(mhtmlpath) == 0) - unlink(mhtmlpath); - sqlite3_free(mhtmlpath); - } else { - errorcode = BP_ERROR_OUT_OF_MEMORY; - } -#endif - } - break; - case BP_CMD_DEINITIALIZE: - if (client->type == BP_CLIENT_SCRAP_SYNC) { - int is_deleted = 1; - pthread_mutex_lock(&g_db_mutex); - if (bp_db_remove_cond(g_db_handle, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_IS_DELETED, 0, BP_DB_COL_TYPE_INT, - &is_deleted, &errorcode) < 0) { - TRACE_ERROR("[ERROR][SQL] CLEAR_DELETED_IDS"); - } - pthread_mutex_unlock(&g_db_mutex); - } - bp_ipc_send_errorcode(sock, errorcode); - break; - case BP_CMD_COMMON_SET_IS_DELETED: - errorcode = bp_common_set_is_deleted - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock, id); - if (errorcode == BP_ERROR_NONE) { -#ifdef SCRAP_DIR - char *mhtmlpath = - sqlite3_mprintf("%s/%d.mht", SCRAP_DIR, id); - if (mhtmlpath != NULL) { - if (__bp_scrap_is_file_exist(mhtmlpath) == 0) - unlink(mhtmlpath); - sqlite3_free(mhtmlpath); - } else { - errorcode = BP_ERROR_OUT_OF_MEMORY; - } -#endif - } - break; - case BP_CMD_COMMON_GET_FULL_IDS: - errorcode = bp_common_get_full_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_GET_FULL_WITH_DELETED_IDS: - errorcode = bp_common_get_full_with_deleted_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_GET_DIRTY_IDS: - errorcode = bp_common_get_dirty_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_GET_DELETED_IDS: - errorcode = bp_common_get_deleted_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_CLEAR_DIRTY_IDS: - errorcode = bp_common_clear_dirty_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_CLEAR_DELETED_IDS: - errorcode = bp_common_clear_deleted_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, sock); - break; - case BP_CMD_COMMON_GET_CONDS_ORDER_IDS: // duplicated - errorcode = __bp_scrap_get_duplicated_ids(sock); - break; - case BP_CMD_COMMON_GET_INFO_OFFSET: - errorcode = __bp_scrap_get_info_offset(sock, id, &client->shm); - break; - case BP_CMD_COMMON_GET_URL: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_URL, sock, id); - break; - case BP_CMD_COMMON_GET_TITLE: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_TITLE, sock, id); - break; - case BP_CMD_SCRAP_GET_BASE_DIR: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_BASE_DIR, sock, id); - break; - case BP_CMD_SCRAP_GET_PAGE_PATH: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_PAGE_PATH, sock, id); - break; - case BP_CMD_COMMON_GET_ICON: - errorcode = bp_common_get_blob_shm(g_db_handle, &g_db_mutex, - BP_DB_TABLE_FAVICONS, sock, id, &client->shm); - break; - case BP_CMD_COMMON_GET_SNAPSHOT: - errorcode = bp_common_get_blob_shm(g_db_handle, &g_db_mutex, - BP_DB_TABLE_THUMBNAILS, sock, id, &client->shm); - break; - case BP_CMD_COMMON_GET_DATE_CREATED: - errorcode = bp_common_get_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DATETIME_CREATED, sock, id); - break; - case BP_CMD_COMMON_GET_DATE_MODIFIED: - errorcode = bp_common_get_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DATETIME_MODIFIED, sock, id); - break; - case BP_CMD_SCRAP_GET_IS_READ: - errorcode = bp_common_get_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_READ, sock, id); - break; - case BP_CMD_SCRAP_GET_IS_READER: - errorcode = bp_common_get_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_READER, sock, id); - break; - case BP_CMD_SCRAP_GET_IS_NIGHT_MODE: - errorcode = bp_common_get_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_NIGHT_MODE, sock, id); - break; - case BP_CMD_SCRAP_GET_MAIN_CONTENT: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_MAIN_CONTENT, sock, id); - break; - case BP_CMD_COMMON_GET_ACCOUNT_NAME: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_ACCOUNT_NAME, sock, id); - break; - case BP_CMD_COMMON_GET_ACCOUNT_TYPE: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_ACCOUNT_TYPE, sock, id); - break; - case BP_CMD_COMMON_GET_DEVICE_NAME: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DEVICE_NAME, sock, id); - break; - case BP_CMD_COMMON_GET_DEVICE_ID: - errorcode = bp_common_get_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DEVICE_ID, sock, id); - break; - case BP_CMD_COMMON_GET_TAG: - errorcode = bp_common_get_tag - (g_db_handle, &g_db_mutex, BP_DB_TABLE_TAGS, sock, id); - break; - case BP_CMD_COMMON_GET_TAG_IDS: - errorcode = bp_common_get_tag_ids - (g_db_handle, &g_db_mutex, BP_DB_TABLE_TAGS, sock, id); - break; - case BP_CMD_COMMON_SET_URL: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_URL, sock, id); - break; - case BP_CMD_COMMON_SET_TITLE: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_TITLE, sock, id); - break; - case BP_CMD_SCRAP_SET_BASE_DIR: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_BASE_DIR, sock, id); - break; - case BP_CMD_SCRAP_SET_PAGE_PATH: - errorcode = __bp_scrap_save_page(sock, id); - break; - case BP_CMD_COMMON_SET_ICON: - errorcode = bp_common_set_blob_shm(g_db_handle, &g_db_mutex, - BP_DB_TABLE_FAVICONS, sock, id, &client->shm); - break; - case BP_CMD_COMMON_SET_SNAPSHOT: - errorcode = bp_common_set_blob_shm(g_db_handle, &g_db_mutex, - BP_DB_TABLE_THUMBNAILS, sock, id, &client->shm); - break; - case BP_CMD_COMMON_SET_DATE_CREATED: - errorcode = bp_common_set_date - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DATE_CREATED, sock, id); - break; - case BP_CMD_COMMON_SET_DATE_MODIFIED: - errorcode = bp_common_set_date - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DATE_MODIFIED, sock, id); - break; - case BP_CMD_SCRAP_SET_IS_READ: - errorcode = bp_common_set_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_READ, sock, id); - break; - case BP_CMD_SCRAP_SET_IS_READER: - errorcode = bp_common_set_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_READER, sock, id); - break; - case BP_CMD_SCRAP_SET_IS_NIGHT_MODE: - errorcode = bp_common_set_int - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_IS_NIGHT_MODE, sock, id); - break; - case BP_CMD_SCRAP_SET_MAIN_CONTENT: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_SCRAP_COL_MAIN_CONTENT, sock, id); - break; - case BP_CMD_COMMON_SET_ACCOUNT_NAME: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_ACCOUNT_NAME, sock, id); - break; - case BP_CMD_COMMON_SET_ACCOUNT_TYPE: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_ACCOUNT_TYPE, sock, id); - break; - case BP_CMD_COMMON_SET_DEVICE_NAME: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DEVICE_NAME, sock, id); - break; - case BP_CMD_COMMON_SET_DEVICE_ID: - errorcode = bp_common_set_string - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, - BP_DB_COMMON_COL_DEVICE_ID, sock, id); - break; - case BP_CMD_COMMON_SET_TAG: - errorcode = bp_common_set_tag - (g_db_handle, &g_db_mutex, BP_DB_TABLE_TAGS, sock, id); - break; - case BP_CMD_COMMON_UNSET_TAG: - errorcode = bp_common_unset_tag - (g_db_handle, &g_db_mutex, BP_DB_TABLE_TAGS, sock, id); - break; - case BP_CMD_COMMON_NOTI: - bp_common_send_noti_all(slots, client->type, cid); - errorcode = BP_ERROR_NONE; - break; - case BP_CMD_COMMON_SET_DIRTY: - errorcode = bp_common_set_dirty - (g_db_handle, &g_db_mutex, BP_DB_TABLE_SCRAP, id); - break; - case BP_CMD_SET_NOTI_CB: - client->noti_enable = 1; - errorcode = BP_ERROR_NONE; - bp_ipc_send_errorcode(sock, errorcode); - break; - case BP_CMD_UNSET_NOTI_CB: - client->noti_enable = 0; - errorcode = BP_ERROR_NONE; - bp_ipc_send_errorcode(sock, errorcode); - break; - default: - TRACE_ERROR("[ERROR][%d] Wrong Command [%d]", cid, cmd); - errorcode = BP_ERROR_INVALID_PARAMETER; - if (bp_ipc_send_errorcode(sock, BP_ERROR_INVALID_PARAMETER) < 0) - errorcode = BP_ERROR_IO_ERROR; - break; - } - return errorcode; -} diff --git a/provider/include/browser-provider-db-defs.h b/provider/include/browser-provider-db-defs.h index e6322b5..0d0d1f4 100644 --- a/provider/include/browser-provider-db-defs.h +++ b/provider/include/browser-provider-db-defs.h @@ -20,7 +20,6 @@ // Tables #define BP_DB_TABLE_TABS "tabs" #define BP_DB_TABLE_BOOKMARK "bookmarks" -#define BP_DB_TABLE_SCRAP "scraps" #define BP_DB_TABLE_HISTORY "history" #define BP_DB_TABLE_FAVICONS "favicons" #define BP_DB_TABLE_THUMBNAILS "thumbnails" @@ -71,23 +70,6 @@ #define BP_DB_BOOKMARK_COL_ACCESS_COUNT "accesscount" #define BP_DB_BOOKMARK_COL_IS_OPERATOR "is_operator" -// scraps -#define BP_DB_SCRAP_COL_BASE_DIR "base_dir_path" -#define BP_DB_SCRAP_COL_PAGE_PATH "page_path" -#define BP_DB_SCRAP_COL_BITMAP_PATH "bitmap_path" -#define BP_DB_SCRAP_COL_DESC "description" -#define BP_DB_SCRAP_COL_VERSION "version" -#define BP_DB_SCRAP_COL_IS_IMAGE "is_image" -#define BP_DB_SCRAP_COL_IS_READ "is_read" -#define BP_DB_SCRAP_COL_IS_READER "is_reader" -#define BP_DB_SCRAP_COL_IS_NIGHT_MODE "is_night_mode" -#define BP_DB_SCRAP_COL_MAIN_CONTENT "main_content" -#define BP_DB_SCRAP_COL_IS_SYNCED "is_synced" -#define BP_DB_SCRAP_COL_SYNC1 "sync1" -#define BP_DB_SCRAP_COL_SYNC2 "sync2" -#define BP_DB_SCRAP_COL_SYNC3 "sync3" -#define BP_DB_SCRAP_COL_SYNC4 "sync4" - // history #define BP_DB_HISTORY_COL_FREQUENCY "frequency" @@ -148,35 +130,6 @@ date_created INTEGER DEFAULT 0,\ date_modified INTEGER DEFAULT 0\ )" -#define BP_SCHEMA_SCRAPS "CREATE TABLE scraps(\ -id INTEGER UNIQUE PRIMARY KEY DESC NOT NULL,\ -base_dir_path TEXT DEFAULT NULL,\ -page_path TEXT DEFAULT NULL,\ -bitmap_path TEXT DEFAULT NULL,\ -url TEXT DEFAULT NULL,\ -title TEXT DEFAULT NULL,\ -description TEXT DEFAULT NULL,\ -main_content TEXT DEFAULT NULL,\ -version INTEGER DEFAULT 0,\ -is_image BOOLEAN DEFAULT 0,\ -is_read BOOLEAN DEFAULT 0,\ -is_reader BOOLEAN DEFAULT 0,\ -is_night_mode BOOLEAN DEFAULT 0,\ -is_synced BOOLEAN DEFAULT 0,\ -is_deleted BOOLEAN DEFAULT 0,\ -dirty BOOLEAN DEFAULT 0,\ -account_name TEXT DEFAULT NULL,\ -account_type TEXT DEFAULT NULL,\ -device_name TEXT DEFAULT NULL,\ -device_id TEXT DEFAULT NULL,\ -date_created INTEGER DEFAULT 0,\ -date_modified INTEGER DEFAULT 0,\ -sync1 TEXT DEFAULT NULL,\ -sync2 TEXT DEFAULT NULL,\ -sync3 TEXT DEFAULT NULL,\ -sync4 TEXT DEFAULT NULL\ -)" - #define BP_SCHEMA_HISTORY "CREATE TABLE history(\ id INTEGER UNIQUE PRIMARY KEY DESC NOT NULL,\ is_deleted BOOLEAN DEFAULT 0,\ @@ -212,7 +165,6 @@ FOREIGN KEY(id) REFERENCES "parent"(id) ON DELETE CASCADE\ )" #define DATABASE_BOOKMARK_FILE DATABASE_DIR"/.browser-provider-bookmarks.db" -#define DATABASE_SCRAP_FILE DATABASE_DIR"/.browser-provider-scraps.db" #define DATABASE_TAB_FILE DATABASE_DIR"/.browser-provider-tabs.db" #define DATABASE_HISTORY_FILE DATABASE_DIR"/.browser-provider-history.db" diff --git a/provider/include/browser-provider-scraps.h b/provider/include/browser-provider-scraps.h deleted file mode 100644 index c2b4edb..0000000 --- a/provider/include/browser-provider-scraps.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef BROWSER_PROVIDER_SCRAPS_H -#define BROWSER_PROVIDER_SCRAPS_H - -#include "browser-provider.h" - - -bp_error_defs bp_scraps_handle_requests(bp_client_slots_defs *groups, - bp_client_defs *client, bp_command_fmt *client_cmd); -void bp_scraps_free_resource(); -bp_error_defs bp_scraps_ready_resource(); -#endif diff --git a/scrap-adaptor/CMakeLists.txt b/scrap-adaptor/CMakeLists.txt deleted file mode 100755 index 377ef05..0000000 --- a/scrap-adaptor/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ - -## PROJECT NAME -PROJECT(capi-web-scrap C) -SET(PACKAGE_DESCRIPTION "Internet scrap functions supported by browser-provider") - -IF("${CMAKE_BUILD_TYPE}" STREQUAL "") - SET(CMAKE_BUILD_TYPE "Debug") -ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") -MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") - -SET(PC_REQUIRED "dlog") - -INCLUDE(FindPkgConfig) - -pkg_check_modules(scrap_adaptor_pkgs REQUIRED ${PC_REQUIRED}) - -FOREACH(flag ${scrap_adaptor_pkgs_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -## INCLUDES -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include - ${CMAKE_SOURCE_DIR}/common-adaptor/include - ${CMAKE_SOURCE_DIR}/provider/include) - -SET(SCRAP_LINK_LIBRARIES ${GLIB-2_LIBRARIES} - ${GOBJECT-2_LIBRARIES} - pthread - ) - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -Wall") - -ADD_DEFINITIONS(-DBROWSER_PROVIDER_LOG_TAG=\"SCRAP_ADAPTOR\") - -ADD_LIBRARY(${PROJECT_NAME} SHARED - ${CMAKE_SOURCE_DIR}/common-adaptor/common-adaptor.c - ${CMAKE_SOURCE_DIR}/provider/browser-provider-socket.c - ${CMAKE_SOURCE_DIR}/provider/browser-provider-shm.c - ${CMAKE_CURRENT_SOURCE_DIR}/scrap-adaptor.c ) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${scrap_adaptor_pkgs_LDFLAGS} ${SCRAP_LINK_LIBRARIES}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${PKG_VERSION}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0) - -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/web_scrap.h DESTINATION ${INCLUDE_INSTALL_DIR}/web) -#INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/web_scrap_doc.h DESTINATION ${INCLUDE_INSTALL_DIR}/web) -CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/scrap-adaptor.h DESTINATION ${INCLUDE_INSTALL_DIR}/web) -CONFIGURE_FILE(scrap-adaptor.pc.in scrap-adaptor.pc @ONLY) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/scrap-adaptor.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) diff --git a/scrap-adaptor/capi-web-scrap.pc.in b/scrap-adaptor/capi-web-scrap.pc.in deleted file mode 100755 index 7ecdfc7..0000000 --- a/scrap-adaptor/capi-web-scrap.pc.in +++ /dev/null @@ -1,8 +0,0 @@ -# Package Information - -Name: @PROJECT_NAME@ -Description: @PACKAGE_DESCRIPTION@ -Version: @VERSION@ -Requires: @PC_REQUIRED@ -Libs: -L/usr/lib -l@PROJECT_NAME@ -Cflags: -I/usr/include/web diff --git a/scrap-adaptor/include/scrap-adaptor.h b/scrap-adaptor/include/scrap-adaptor.h deleted file mode 100755 index be76a95..0000000 --- a/scrap-adaptor/include/scrap-adaptor.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __TIZEN_WEB_SCRAP_ADAPTOR_H__ -#define __TIZEN_WEB_SCRAP_ADAPTOR_H__ - -#include - -#endif /* __TIZEN_WEB_SCRAP_ADAPTOR_H__ */ diff --git a/scrap-adaptor/include/web_scrap.h b/scrap-adaptor/include/web_scrap.h deleted file mode 100755 index fe63195..0000000 --- a/scrap-adaptor/include/web_scrap.h +++ /dev/null @@ -1,749 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __TIZEN_WEB_SCRAP_H__ -#define __TIZEN_WEB_SCRAP_H__ - -#ifndef EXPORT_API -#define EXPORT_API __attribute__((visibility("default"))) -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** - * @internal - * @addtogroup CAPI_WEB_SCRAP_MODULE - * @{ - */ - - -/** - * @brief Each offset mask corresponds to each property of the storage, respectively. - * @remarks The caller can set one or more properties by '|' bit masking. - */ -typedef unsigned short bp_scrap_offset; -/** - * @brief The creation time - */ -#define BP_SCRAP_O_DATE_CREATED 0x0001 -/** - * @brief The time of the last modification - */ -#define BP_SCRAP_O_DATE_MODIFIED 0x0002 -/** - * @brief The absolute path of mhtml file - */ -#define BP_SCRAP_O_PAGE 0x0008 -/** - * @brief The url address of the web-site - */ -#define BP_SCRAP_O_URL 0x0010 -/** - * @brief The title of the web-site - */ -#define BP_SCRAP_O_TITLE 0x0020 -/** - * @brief The account name for sync - */ -#define BP_SCRAP_O_ACCOUNT_NAME 0x0040 -/** - * @brief The account type for sync - */ -#define BP_SCRAP_O_ACCOUNT_TYPE 0x0080 -/** - * @brief The device name - */ -#define BP_SCRAP_O_DEVICE_NAME 0x0100 -/** - * @brief The device id - */ -#define BP_SCRAP_O_DEVICE_ID 0x0200 -/** - * @brief The main content id - */ -#define BP_SCRAP_O_MAIN_CONTENT 0x0300 -/** - * @brief The icon - */ -#define BP_SCRAP_O_ICON 0x0400 -/** - * @brief The favicon - */ -#define BP_SCRAP_O_FAVICON 0x0400 -/** - * @brief The snapshot (thumbnail) - */ -#define BP_SCRAP_O_SNAPSHOT 0x0800 -/** - * @brief The 'if is read' flag - */ -#define BP_SCRAP_O_IS_READ 0x1000 -/** - * @brief The 'if is reader' flag - */ -#define BP_SCRAP_O_IS_READER 0x2000 -/** - * @brief The night mode flag - */ -#define BP_SCRAP_O_IS_NIGHT_MODE 0x4000 -/** - * @brief The all properties flag - */ -#define BP_SCRAP_O_ALL 0xffff - - -/** - * @brief Enumeration of the periods to be searched - */ -typedef enum { - BP_SCRAP_DATE_ALL, /**< unlimited */ - BP_SCRAP_DATE_TODAY, /**< only today */ - BP_SCRAP_DATE_YESTERDAY, /**< only yesterday */ - BP_SCRAP_DATE_LAST_7_DAYS, /**< from 7 days ago, to the day before yesterday */ - BP_SCRAP_DATE_LAST_MONTH, /**< this month */ - BP_SCRAP_DATE_OLDER /**< until last month */ -} bp_scrap_date_defs; - - -/** - * @brief The structure containing some conditions related with the periods - */ -typedef struct { - int limit; /**< the maximum number of rows to get, negative means no limitation */ - int offset; /**< starting index to get among the entire rows */ - bp_scrap_offset order_offset; /**< the property on which the rows will be sorted, default BP_SCRAP_O_DATE_CREATED */ - int ordering; /**< the way of ordering, 0:ASC(default) 1:DESC */ - bp_scrap_offset period_offset; /**< a property which will be searched in given period_type, default BP_SCRAP_O_DATE_CREATED */ - bp_scrap_date_defs period_type; /**< the period which will be searched, default BP_SCRAP_DATE_ALL */ -} bp_scrap_rows_cond_fmt; - - -/** - * @brief Enumeration of error codes - * @details Gives information why function has failed - */ -typedef enum { - BP_SCRAP_ERROR_NONE = 10, /**< success, no error */ - BP_SCRAP_ERROR_INVALID_PARAMETER, /**< wrong parameter passed*/ - BP_SCRAP_ERROR_OUT_OF_MEMORY, /**< failed to allocate the memory */ - BP_SCRAP_ERROR_IO_ERROR, /**< some I/O error in communication with provider process occured*/ - BP_SCRAP_ERROR_NO_DATA, /**< no data is retrieved */ - BP_SCRAP_ERROR_ID_NOT_FOUND, /**< the passed id does not exist in the storage */ - BP_SCRAP_ERROR_DUPLICATED_ID, /**< try to create the id which already exists */ - BP_SCRAP_ERROR_PERMISSION_DENY, /**< denied by user space smack rule */ - BP_SCRAP_ERROR_DISK_BUSY, /**< failed to write or read (make cache) by disk busy error */ - BP_SCRAP_ERROR_DISK_FULL, /**< failed to write by disk full error */ - BP_SCRAP_ERROR_TOO_BIG_DATA, /**< tried to write too big data, the maximum length of string is 4k */ - BP_SCRAP_ERROR_UNKNOWN /**< unknown error */ -} bp_scrap_error_defs; - - -/** - * @brief The structure containing variables for all properties - * @remarks The caller has access only to variables which are related to the bp_history_offset. \n - * The caller has to initialize the structure before using it.\n - * The caller has to free the memory of the structure allocated by bp_scrap_adaptor_get_info(). - */ -typedef struct { - int date_created; /**< the creation time; ignore this variable by setting to zero */ - int date_modified; /**< the time of the last modification; ignore this variable by setting to zero */ - int favicon_length; /**< the favicon length; ignore this variable by setting to zero */ - int favicon_width; /**< the favicon width */ - int favicon_height; /**< the favicon height */ - int snapshot_length; /**< ignore this variable by setting to zero **/ - int snapshot_width; /**< the snapshot width */ - int snapshot_height; /**< the snapshot height */ - char *url; /**< the url */ - char *title; /**< the title */ - char *page_path; /**< the path to the page */ - char *desc; /**< the summary of scrapped page */ - char *account_name; /**< the account name */ - char *account_type; /**< the account type */ - char *device_name; /** the device name */ - char *device_id; /**< the device id */ - char *main_content; /**< the main content */ - unsigned char *favicon; /**< row data of icon ( favorites icon ) */ - unsigned char *snapshot; /**< row data of snapshot */ - int is_read; /**< one or more time read, 1 means read, otherwise 0 is unread */ - int is_reader; /**< 1 means reader, otherwise 0 is not reader */ - int is_night_mode; /**< 1 means night mode, otherwise 0 is normal mode*/ -} bp_scrap_info_fmt; - - -/** - * @brief Initializes some resources in order to use scrap functions - * @return 0 on success, otherwise -1 is returned and errorcode is set to indicate the error. - * @see bp_scrap_adaptor_deinitialize() - */ -EXPORT_API int bp_scrap_adaptor_initialize(void); - - -/** - * @brief Frees all resources allocated by bp_scrap_adaptor_initialize() - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @see bp_scrap_adaptor_initialize() - */ -EXPORT_API int bp_scrap_adaptor_deinitialize(void); - - -/** - * @brief Called when other client changes some scraps - * @param[in] user_data The data passed to bp_scrap_adaptor_set_data_changed_cb() - * @see bp_scrap_adaptor_set_data_changed_cb() - * @see bp_scrap_adaptor_unset_data_changed_cb() - */ -typedef void (*bp_scrap_adaptor_data_changed_cb)(void *user_data); - - -/** - * @brief Registers the callback function called when other client changes some scraps - * @param[in] callback The callback function to invoke - * @param[in] user_data The data passed to the callback function - * @return 0 on success, otherwise a negative error value - * @see bp_scrap_adaptor_is_setted_data_changed_cb() - * @see bp_scrap_adaptor_unset_data_changed_cb() - */ -EXPORT_API int bp_scrap_adaptor_set_data_changed_cb(bp_scrap_adaptor_data_changed_cb callback, void *user_data); - - -/** - * @brief Unsets the callback function passed in bp_scrap_adaptor_set_data_changed_cb() - * @param[in] callback The callback function passed in bp_scrap_adaptor_set_data_changed_cb() - * @return 0 on success, otherwise a negative error value - * @see bp_scrap_adaptor_is_setted_data_changed_cb() - * @see bp_scrap_adaptor_set_data_changed_cb() - */ -EXPORT_API int bp_scrap_adaptor_unset_data_changed_cb(bp_scrap_adaptor_data_changed_cb callback); - - -/** - * @brief Checks whether the callback function is already registered or not - * @return 0 on success, otherwise a negative error value - * @see bp_scrap_adaptor_set_data_changed_cb() - * @see bp_scrap_adaptor_unset_data_changed_cb() - */ -EXPORT_API int bp_scrap_adaptor_is_setted_data_changed_cb(void); - - -/** - * @brief Mark an item as updated - * @param[out] id The id of an item to mark - * @return 0 on success, otherwise -1 is returned and errorcode is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_dirty(const int id); - - -/** - * @brief Send the notification to other clients - * @details The callback function will be invoked if registered - * @return 0 on success, otherwise -1 is returned - * @see bp_scrap_adaptor_set_data_changed_cb() - */ -EXPORT_API int bp_scrap_adaptor_publish_notification(void); - - -/** - * @brief Gets array ids and the number of rows of all items from the storage - * @remarks Allocated memory (ids) have to be released by the caller. - * @param[out] ids The array ids - * @param[out] count The array size - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_full_ids_p(int **ids, int *count); - - -/** - * @brief Get array ids and the number of rows of all items with deleted items from the storage - * @remarks Allocated memory (ids) have to be released by the caller. - * @param[out] ids The array ids - * @param[out] count The array size - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_full_with_deleted_ids_p(int **ids, int *count); - - -/** - * @brief Gets array ids and the number of rows of all modified items from the storage - * @remarks Allocated memory (ids) have to be released by the caller. - * @param[out] ids The array ids - * @param[out] count The array size - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_dirty_ids_p(int **ids, int *count); - - -/** - * @brief Gets array ids and the number of rows of all deleted items from the storage - * @remarks Allocated memory (ids) have to be released by the caller. - * @param[out] ids The array ids - * @param[out] count The array size - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_deleted_ids_p(int **ids, int *count); - - -/** - * @brief Commits all modified scraps - * @details Clears "is_dirty" property of each item. - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_clear_dirty_ids(void); - - -/** - * @brief Deletes all scraps which have set 'is_deleted' property from the storage - * @details If cloud is on, "is_dirty" property is off by calling delete function,\n - * if cloud is off, a scrap is deleted really from storage whenever delete function is called. - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_clear_deleted_ids(void); - - -/** - * @brief Gets "is_read" property of an item matched with the given id - * @param[in] id The id of an item - * @param[out] value 1 means "is read", 0 - it is not - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_is_read(const int id, int *value); - -/** - * @brief Gets "is_reader" property of an item matched with the given id - * @param[in] id The id of an item - * @param[out] value 1 means "is reader", 0 - it is not - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_is_reader(const int id, int *value); - -/** - * @brief Gets "is_night_mode" property of an item matched with the given id - * @param[in] id The id of an item - * @param[out] night_mode_flag 1 means "is night mode", 0 - it is not - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_is_night_mode(const int id, int *night_mode_flag); - -/** - * @brief Gets the url property of an item matched with the given id - * @param[in] id The id of an item - * @param[out] value The url string - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_url(const int id, char **value); - - -/** - * @brief Gets the title property of an item matched with the given id - * @param[in] id The id of an item - * @param[out] value The title string - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_title(const int id, char **value); - - -/** - * @brief Gets the absolute path to mhtml file of an item matched with the given id - * @param[in] id The id of an item - * @param[out] value The path string - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_page_path(const int id, char **value); - - -/** - * @brief Gets the time when an item matched with the given id was made - * @param[in] id The id of an item - * @param[out] value The time stamp - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_date_created(const int id, int *value); - - -/** - * @brief Gets the time when an item matched with the given id was last modified - * @param[in] id The id of an item - * @param[out] value The time stamp - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_date_modified(const int id, int *value); - - -/** - * @brief Gets the account name of an item matched with the given id - * @remarks Allocated memory (@c value) has to be released by the caller - * @param[in] id The id of an item - * @param[out] value The account name - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_account_name(const int id, char **value); - - -/** - * @brief Gets the account type of an item matched with the given id - * @remarks Allocated memory (@c value) has to be released by the caller - * @param [in] id The id of an item - * @param [out] value The account type - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_account_type(const int id, char **value); - - -/** - * @brief Gets the device name of an item matched with the given id - * @remarks Allocated memory (@c value) has to be released by the caller - * @param [in] id The id of an item - * @param [out] value The device name - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_device_name(const int id, char **value); - - -/** - * @brief Gets the device id of an item matched with the given id - * @remarks Allocated memory (@c value) has to be released by the caller - * @param [in] id The id of an item - * @param [out] value The device id - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_device_id(const int id, char **value); - -/** - * @brief Gets the url of an item matched with the given id - * @param [in] id The id of an item - * @param [out] value The url value - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_main_content(const int id, char **value); - -/** - * @brief Gets the favicon of an item matched with the given id - * @details The color space of the image is ARGB8888. - * @remarks The image data value will be stored in shared memory allocated by the browser-provider. - * Therefore if this API is called multiple times, image contents may be changed but the pointer will be the same. - * PLEASE DO NOT free the 'value' parameter directly after it is assigned. - * If you want to use the image data permanently, allocate the memory and make a deep copy of it. - * @param [in] id The id of an item - * @param [out] width The width of the image - * @param [out] height The height of the image - * @param [out] value A pointer to a raw image data. This memory will be released automatically when the browser provider is deinitialized. - * @param [out] length The size of the raw data - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_icon(const int id, int *width, int *height, unsigned char **value, int *length); - - -/** - * @brief Gets the snapshot of an item matched with the given id - * @details The color space of the image is ARGB8888. - * @remarks The image data value will be stored in shared memory allocated by the browser-provider. - * Therefore if this API is called multiple times, image contents may be changed but the pointer will be the same. - * PLEASE DO NOT free the 'value' parameter directly after it is assigned. - * If you want to use the image data permanently, allocate the memory and make a deep copy of it. - * @param [in] id The id of an item - * @param [out] width The width of the image - * @param [out] height The height of the image - * @param [out] value The pointer of a raw image data. This memory will be released automatically when the browser provider is deinitialized. - * @param [out] length The size of the raw data - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_get_snapshot(const int id, int *width, int *height, unsigned char **value, int *length); - - -/** - * @brief Sets "is_read" property of an item matched with the given id - * @param [in] id The The id of an item - * @param [in] value 0 as "unread", 1 as "read" - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_is_read(const int id, const int value); - -/** - * @brief Sets "is_reader" property of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value 0 as "not reader", 1 as "reader" - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_is_reader(const int id, const int value); - -/** - * @brief Sets "is_night_mode" property of an item matched with the given id - * @param [in] id The id of an item - * @param [in] night_mode_flag 0 as "normal mode", 1 as "night mode". - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_is_night_mode(const int id, const int night_mode_flag); - -/** - * @brief Sets the url string of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The uri address - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_url(const int id, const char *value); - - -/** - * @brief Sets the title of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The title - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_title(const int id, const char *value); - - -/** - * @brief Sets the absolute path to mhtml file of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The path - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_page_path(const int id, const char *value); - - -/** - * @brief Changes the creation time of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The time stamp (if @c value <= 0 - update to present time automatically) - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_date_created(const int id, const int value); - - -/** - * @brief Changes the time when an item matched with the given id was last modified - * @param [in] id The id of an item - * @param [in] value The time stamp (if @c value <= 0 - update to present time automatically) - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_date_modified(const int id, const int value); - - -/** - * @brief Sets the account name of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The account name - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_account_name(const int id, const char *value); - - -/** - * @brief Sets the account type of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The account type - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_account_type(const int id, const char *value); - - -/** - * @brief Sets the device name of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The device name - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_device_name(const int id, const char *value); - - -/** - * @brief Sets the device id of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The device id - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_device_id(const int id, const char *value); - -/** - * @brief Sets the main content of an item matched with the given id - * @param [in] id The id of an item - * @param [in] value The main content - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_main_content(const int id, const char *value); - -/** - * @brief Sets the favicon of an item matched with the given id - * @remarks The color space of the image is ARGB8888 - * @param [in] id The id of an item - * @param [in] width The width of the image - * @param [in] height The height of the image - * @param [in] value The raw data of the image - * @param [in] length The size of the raw data - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_icon(const int id, const int width, const int height, const unsigned char *value, const int length); - - -/** - * @brief Sets the snapshot of an item matched with the given id - * @remarks The color space of the image is ARGB8888 - * @param [in] id The id of an item - * @param [in] width The width of the image - * @param [in] height The height of the image - * @param [in] value The raw data of the image - * @param [in] length The size of the raw data - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - */ -EXPORT_API int bp_scrap_adaptor_set_snapshot(const int id, const int width, const int height, const unsigned char *value, const int length); - - -/** - * @brief Creates a new item - * @details The creation time is set to the present time automatically - * @param [out] id The id of created item. The caller can handle the way to generate id value with initializing this param before calling. - * If caller pass negative value such as -1, provider will generate id value automatically, otherwise it will try to use passed value as an id of new item. - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @see bp_scrap_adaptor_delete() - */ -EXPORT_API int bp_scrap_adaptor_create(int *id); - - -/** - * @brief Deletes an item - * @param [in] id The id of an item to delete - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @see bp_scrap_adaptor_create() - */ -EXPORT_API int bp_scrap_adaptor_delete(const int id); - - -/** - * @brief Gets the error code after function returned -1 - * @return The last error code which occurred - */ -EXPORT_API int bp_scrap_adaptor_get_errorcode(void); - - -/** - * @brief Creates a new item or updates it using the bp_scrap_info_fmt structure - * @param [out] id The id of created item. The caller can handle the way to generate id value with initializing this param before calling. - * If caller pass negative value such as -1, provider will generate id value automatically, otherwise it will try to use passed value as an id of new item. - * @param [in] info The structure contains all properties that caller want to set - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @pre The structure has to be initialized to 0, then use the variables call to change them,\n - * e.g. info->title to set the title - * @see bp_scrap_info_fmt - * @see bp_scrap_adaptor_create() - */ -EXPORT_API int bp_scrap_adaptor_easy_create(int *id, bp_scrap_info_fmt *info); - - -/** - * @brief Gets one or more properties indicated by offset mask of an item matched with the given id - * @remarks Allocated memory of strings in the structure has to be released by the caller - * @param [in] id The id of an item - * @param [in] offset Indicates one or more properties by '|' bit mask - * @param [in] info The structure contains all properties - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @pre The structure has to be initialized to 0, then use the variables call to change them,\n - * e.g. info->title to set the title - * @see bp_scrap_offset - * @see bp_scrap_info_fmt - */ -EXPORT_API int bp_scrap_adaptor_get_info(const int id, const bp_scrap_offset offset, bp_scrap_info_fmt *info); - - -/** - * @brief Clears memory allocated by the structure - * @param [in] info The structure to clear - * @return 0 on success - * @see bp_scrap_info_fmt - * @see bp_scrap_adaptor_get_info() - */ -EXPORT_API int bp_scrap_adaptor_easy_free(bp_scrap_info_fmt *info); - - -/** - * @brief Gets the array of ids and the number of rows of items searched by keyword and some structure from the storage - * @remarks Allocated memory (ids) has to released by the caller.\n - * If the caller wants to do LIKE searching, keyword has to have some wild card like _aa, a_a, %aa, aa% or %aa%. - * @param [out] ids The array of ids - * @param [out] count The array size - * @param [in] conds The structure contains some conditions related to the period, the order and the number of searched rows (if NULL, ignore) - * @param [in] check_offset The property to search by the keyword, BP_SCRAP_O_TITLE, BP_SCRAP_O_URL or (BP_SCRAP_O_TITLE | BP_SCRAP_O_URL) - * @param [in] keyword The string to find (NULL ignore searching by the keyword) - * @param [in] is_like The way of searching, 1 means LIKE, 0 means EQUAL and negative value means NOT EQUAL - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @pre The structure has to be initialized to 0, then use the variables call to change them,\n - * e.g. info->title to set the title - * @see bp_scrap_offset - * @see bp_scrap_rows_cond_fmt - */ -EXPORT_API int bp_scrap_adaptor_get_cond_ids_p - (int **ids, int *count, - bp_scrap_rows_cond_fmt *conds, - const bp_scrap_offset check_offset, - const char *keyword, - const int is_like); - - -/** - * @brief Gets the array ids and the number of rows of items searched in title or url property by keyword from the storage - * @remarks Allocated memory (ids) has to be released by the caller.\n - * If the caller want to do LIKE searching, keyword has to have some wild card like _aa, a_a, %aa, aa% or %aa% - * @param [out] ids The array of ids - * @param [out] count The array size - * @param [in] limit The maximum number of rows to get, negative means no limitation - * @param [in] offset The starting row index - * @param [in] order_column_offset A property on which the rows will be sorted, default BP_SCRAP_O_DATE_CREATED - * @param [in] ordering The way of ordering, 0:ASC(default), 1:DESC - * @param [in] keyword The string to find - * @param [in] is_like The way of searching, 1 means LIKE, 0 means EQUAL and negative means NOT EQUAL - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @see bp_scrap_offset - * @see bp_scrap_adaptor_get_cond_ids_p() - */ -EXPORT_API int bp_scrap_adaptor_get_inquired_ids_p - (int **ids, int *count, const int limit, const int offset, - const bp_scrap_offset order_column_offset, const int ordering, - const char *keyword, const int is_like); - - -/** - * @brief Gets the array ids and the number of rows of items searched by keyword from the storage - * @remarks allocated memory (ids) have to released by caller\n - * if caller want to do LIKE searching, keyword have to have some wild card like _aa, a_a, %aa, aa% or %aa% - * @param [out] ids The array of ids - * @param [out] count The array size - * @param [in] limit The maximum number of rows to get, negative means no limitation - * @param [in] offset The starting row index - * @param [in] order_column_offset A property on which the rows will be sorted, default BP_HISTORY_O_DATE_CREATED - * @param [in] ordering The way of ordering, 0:ASC(default), 1:DESC - * @param [in] check_column_offset A property to search by the keyword, BP_HISTORY_O_TITLE, BP_HISTORY_O_URL or (BP_HISTORY_O_TITLE | BP_HISTORY_O_URL) - * @param [in] keyword The string to find - * @param [in] is_like The way of searching, 1 means LIKE, 0 means EQUAL and negative means NOT EQUAL - * @return 0 on success, otherwise -1 is returned and error code is set to indicate the error. - * @see bp_scrap_offset - * @see bp_scrap_adaptor_get_cond_ids_p() - */ -EXPORT_API int bp_scrap_adaptor_get_duplicated_ids_p - (int **ids, int *count, const int limit, const int offset, - const bp_scrap_offset order_column_offset, const int ordering, - const bp_scrap_offset check_column_offset, - const char *keyword, const int is_like); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __TIZEN_WEB_SCRAP_H__ */ diff --git a/scrap-adaptor/scrap-adaptor.c b/scrap-adaptor/scrap-adaptor.c deleted file mode 100755 index ca6c633..0000000 --- a/scrap-adaptor/scrap-adaptor.c +++ /dev/null @@ -1,1090 +0,0 @@ -/* - * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -static bp_adaptor_defs *g_adaptorinfo = NULL; -static pthread_mutex_t g_adaptor_mutex = PTHREAD_MUTEX_INITIALIZER; -static pthread_t g_adaptor_event_thread_pid = 0; -static bp_scrap_adaptor_data_changed_cb g_adaptor_noti_cb = NULL; -static void *g_adaptor_noti_user_data = NULL; -static bp_command_fmt g_bp_command; -static bp_error_defs errorcode = BP_ERROR_NONE; - -/////// callback /////////////// - -static void *__scrap_adaptor_event_manager(void *arg) -{ - int status = bp_common_adaptor_event_manager(arg, - &g_adaptor_noti_cb, &g_adaptor_noti_user_data); - - pthread_mutex_lock(&g_adaptor_mutex); - g_adaptor_event_thread_pid = 0; // set 0 to not call pthread_cancel - if (status >= 0) { - if (g_adaptorinfo != NULL) { - bp_common_adaptor_close_all(g_adaptorinfo); - free(g_adaptorinfo); - g_adaptorinfo = NULL; - } - } - pthread_mutex_unlock(&g_adaptor_mutex); - if (status == 1) { - // to receive noti, re-connect to provider - if (g_adaptor_noti_cb != NULL) { - sleep(8); // workaround . wait terminating provider - bp_scrap_adaptor_set_data_changed_cb - (g_adaptor_noti_cb, g_adaptor_noti_user_data); - } - } - TRACE_DEBUG("callback thread is end by deinit"); - return 0; -} - -// disconnect -static int __browser_adaptor_disconnect(void) -{ - TRACE_DEBUG("pthread:%0x", (int)g_adaptor_event_thread_pid); - return bp_common_adaptor_disconnect(&g_adaptorinfo, - &g_adaptor_event_thread_pid); -} - -static int __browser_adaptor_connect(int callback) -{ - if (g_adaptorinfo == NULL) { - bp_client_type_defs client_type = BP_CLIENT_SCRAP; - -#ifdef SUPPORT_CLOUD_SYSTEM - if (bp_common_adaptor_is_sync_adaptor() == 0) - client_type = BP_CLIENT_SCRAP_SYNC; -#endif - - if (bp_common_adaptor_connect_to_provider(&g_adaptorinfo, - client_type) < 0) { - TRACE_ERROR("[CHECK connection]"); - return -1; - } - } - g_bp_command.cmd = BP_CMD_NONE; - g_bp_command.id = -1; - g_bp_command.cid = g_adaptorinfo->cid; - if (callback == 1 && g_adaptor_event_thread_pid <= 0) { - // create thread here ( getting event_socket ) - if (pthread_create(&g_adaptor_event_thread_pid, NULL, - __scrap_adaptor_event_manager, g_adaptorinfo) != 0) { - TRACE_STRERROR("[CRITICAL] pthread_create"); - return -1; - } - pthread_detach(g_adaptor_event_thread_pid); - TRACE_DEBUG("pthread:%0x", (int)g_adaptor_event_thread_pid); - } - return 0; -} - -static int __bp_scrap_adaptor_get_ids_p(int id, int **ids, int *count, - bp_command_defs cmd) -{ - if (ids == NULL || count == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ids_count = bp_common_adaptor_get_ids_p(sock, &g_bp_command, ids, &errorcode); - if (ids_count < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - if (ids_count < 0) - return -1; - *count = ids_count; - return 0; -} - -static int __bp_scrap_adaptor_get_string - (const int id, bp_command_defs cmd, char **value) -{ - if (id < 0 || value == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ret = bp_common_adaptor_get_string(sock, &g_bp_command, value, &errorcode); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -static int __bp_scrap_adaptor_get_int - (const int id, bp_command_defs cmd, int *value) -{ - if (id < 0 || value == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ret = bp_common_adaptor_get_int(sock, &g_bp_command, value, &errorcode); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -static int __bp_scrap_adaptor_set_string(const int id, - bp_command_defs cmd, const char *value) -{ - if (id < 0 || value == NULL || bp_common_precheck_string(value) < 0) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ret = bp_common_adaptor_set_string(sock, &g_bp_command, value, &errorcode); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -static int __bp_scrap_adaptor_set_int - (const int id, bp_command_defs cmd, const int value) -{ - if (id < 0) { - TRACE_ERROR("[CHECK id][%d]", id); - return -1; - } - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ret = bp_common_adaptor_set_int(sock, &g_bp_command, value, &errorcode); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -static int __bp_scrap_adaptor_send_cmd(const int id, bp_command_defs cmd) -{ - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - errorcode = BP_ERROR_NONE; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - errorcode = bp_ipc_simple_response(sock, &g_bp_command); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(id, errorcode); - return -1; - } - return 0; -} - -static int __bp_scrap_adaptor_send_one_way(const int id, bp_command_defs cmd) -{ - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = cmd; - g_bp_command.id = id; - int ret = bp_ipc_send_command(sock, &g_bp_command); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -/////////////////////// APIs ///////////////////////////////// -// return -// 0 : Success -// -1 : Failed - -// launch browser-provider, connect to browser-provider -int bp_scrap_adaptor_initialize(void) -{ - pthread_mutex_lock(&g_adaptor_mutex); - int ret = __browser_adaptor_connect(1); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -// disconnect -int bp_scrap_adaptor_deinitialize(void) -{ - pthread_mutex_lock(&g_adaptor_mutex); - if (__browser_adaptor_connect(0) < 0) { - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - - int sock = BP_CHECK_IPC_SOCK; - g_adaptor_noti_cb = NULL; - g_adaptor_noti_user_data = NULL; - - g_bp_command.cmd = BP_CMD_DEINITIALIZE; - g_bp_command.id = -1; - bp_ipc_simple_response(sock, &g_bp_command); - - __browser_adaptor_disconnect(); - - g_bp_command.cmd = BP_CMD_NONE; - g_bp_command.id = -1; - g_bp_command.cid = 0; - pthread_mutex_unlock(&g_adaptor_mutex); - return 0; -} - -// caller should free ids fully -int bp_scrap_adaptor_get_full_ids_p(int **ids, int *count) -{ - return __bp_scrap_adaptor_get_ids_p - (-1, ids, count, BP_CMD_COMMON_GET_FULL_IDS); -} - -int bp_scrap_adaptor_get_full_with_deleted_ids_p(int **ids, int *count) -{ - return __bp_scrap_adaptor_get_ids_p - (-1, ids, count, BP_CMD_COMMON_GET_FULL_WITH_DELETED_IDS); -} -int bp_scrap_adaptor_get_dirty_ids_p(int **ids, int *count) -{ - return __bp_scrap_adaptor_get_ids_p - (-1, ids, count, BP_CMD_COMMON_GET_DIRTY_IDS); -} - -int bp_scrap_adaptor_get_deleted_ids_p(int **ids, int *count) -{ - return __bp_scrap_adaptor_get_ids_p - (-1, ids, count, BP_CMD_COMMON_GET_DELETED_IDS); -} - -int bp_scrap_adaptor_clear_dirty_ids(void) -{ - return __bp_scrap_adaptor_send_cmd - (-1, BP_CMD_COMMON_CLEAR_DIRTY_IDS); -} - -int bp_scrap_adaptor_clear_deleted_ids(void) -{ - return __bp_scrap_adaptor_send_cmd - (-1, BP_CMD_COMMON_CLEAR_DELETED_IDS); -} - -int bp_scrap_adaptor_set_data_changed_cb - (bp_scrap_adaptor_data_changed_cb callback, void *user_data) -{ - if (callback == NULL) { - TRACE_ERROR("check callback address:%p", callback); - return -1; - } - g_adaptor_noti_user_data = NULL; - g_adaptor_noti_cb = callback; - g_adaptor_noti_user_data = user_data; - return __bp_scrap_adaptor_send_cmd(-1, BP_CMD_SET_NOTI_CB); -} - -int bp_scrap_adaptor_unset_data_changed_cb(bp_scrap_adaptor_data_changed_cb callback) -{ - if (callback != NULL && callback == g_adaptor_noti_cb) { - g_adaptor_noti_cb = NULL; - g_adaptor_noti_user_data = NULL; - return __bp_scrap_adaptor_send_cmd(-1, BP_CMD_UNSET_NOTI_CB); - } - return -1; -} - -int bp_scrap_adaptor_is_setted_data_changed_cb(void) -{ - pthread_mutex_lock(&g_adaptor_mutex); - if (g_adaptorinfo == NULL || g_adaptor_noti_cb == NULL) { - TRACE_ERROR("callback is not setted"); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - if (g_adaptor_event_thread_pid <= 0) { - TRACE_ERROR("[CRITICAL] callback is setted, but event manager not work"); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - pthread_mutex_unlock(&g_adaptor_mutex); - return 0; -} - -int bp_scrap_adaptor_set_dirty(const int id) -{ - if (id < 0) - return -1; - return __bp_scrap_adaptor_send_one_way(id, BP_CMD_COMMON_SET_DIRTY); -} - -int bp_scrap_adaptor_publish_notification(void) -{ - return __bp_scrap_adaptor_send_one_way(-1, BP_CMD_COMMON_NOTI); -} - -int bp_scrap_adaptor_get_is_read(const int id, int *value) -{ - return __bp_scrap_adaptor_get_int - (id, BP_CMD_SCRAP_GET_IS_READ, value); -} - -int bp_scrap_adaptor_get_is_reader(const int id, int *value) -{ - return __bp_scrap_adaptor_get_int - (id, BP_CMD_SCRAP_GET_IS_READER, value); -} - -int bp_scrap_adaptor_get_is_night_mode(const int id, int *night_mode_flag) -{ - return __bp_scrap_adaptor_get_int - (id, BP_CMD_SCRAP_GET_IS_NIGHT_MODE, night_mode_flag); -} - -int bp_scrap_adaptor_get_url(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_URL, value); -} - -int bp_scrap_adaptor_get_title(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_TITLE, value); -} - -int bp_scrap_adaptor_get_page_path(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_SCRAP_GET_PAGE_PATH, value); -} - -// blob -int bp_scrap_adaptor_get_icon(const int id, int *width, - int *height, unsigned char **value, int *length) -{ - if (id < 0 || value == NULL || length == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = BP_CMD_COMMON_GET_ICON; - g_bp_command.id = id; - int ret = bp_common_adaptor_get_blob_shm(sock, &g_bp_command, width, - height, value, length, &errorcode, &g_adaptorinfo->shm); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -int bp_scrap_adaptor_get_snapshot(const int id, int *width, - int *height, unsigned char **value, int *length) -{ - if (id < 0 || value == NULL || length == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = BP_CMD_COMMON_GET_SNAPSHOT; - g_bp_command.id = id; - int ret = bp_common_adaptor_get_blob_shm(sock, &g_bp_command, width, - height, value, length, &errorcode, &g_adaptorinfo->shm); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -int bp_scrap_adaptor_get_date_created(const int id, int *value) -{ - return __bp_scrap_adaptor_get_int - (id, BP_CMD_COMMON_GET_DATE_CREATED, value); -} - -int bp_scrap_adaptor_get_date_modified(const int id, int *value) -{ - return __bp_scrap_adaptor_get_int - (id, BP_CMD_COMMON_GET_DATE_MODIFIED, value); -} - -int bp_scrap_adaptor_get_account_name(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_ACCOUNT_NAME, value); -} - -int bp_scrap_adaptor_get_account_type(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_ACCOUNT_TYPE, value); -} - -int bp_scrap_adaptor_get_device_name(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_DEVICE_NAME, value); -} - -int bp_scrap_adaptor_get_device_id(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_COMMON_GET_DEVICE_ID, value); -} - -int bp_scrap_adaptor_get_main_content(const int id, char **value) -{ - return __bp_scrap_adaptor_get_string - (id, BP_CMD_SCRAP_GET_MAIN_CONTENT, value); -} - -int bp_scrap_adaptor_set_is_read(const int id, const int value) -{ - return __bp_scrap_adaptor_set_int - (id, BP_CMD_SCRAP_SET_IS_READ, value); -} - -int bp_scrap_adaptor_set_is_reader(const int id, const int value) -{ - return __bp_scrap_adaptor_set_int - (id, BP_CMD_SCRAP_SET_IS_READER, value); -} - -int bp_scrap_adaptor_set_is_night_mode(const int id, const int night_mode_flag) -{ - return __bp_scrap_adaptor_set_int - (id, BP_CMD_SCRAP_SET_IS_NIGHT_MODE, night_mode_flag); -} - -int bp_scrap_adaptor_set_url(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_URL, value); -} - -int bp_scrap_adaptor_set_title(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_TITLE, value); -} - -int bp_scrap_adaptor_set_page_path(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_SCRAP_SET_PAGE_PATH, value); -} - -int bp_scrap_adaptor_set_icon(const int id, const int width, - const int height, const unsigned char *value, const int length) -{ - if (id < 0) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = BP_CMD_COMMON_SET_ICON; - g_bp_command.id = id; - int ret = bp_common_adaptor_set_blob_shm(sock, &g_bp_command, width, - height, value, length, &errorcode, &g_adaptorinfo->shm); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -int bp_scrap_adaptor_set_snapshot(const int id, const int width, - const int height, const unsigned char *value, const int length) -{ - if (id < 0) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = BP_CMD_COMMON_SET_SNAPSHOT; - g_bp_command.id = id; - int ret = bp_common_adaptor_set_blob_shm(sock, &g_bp_command, width, - height, value, length, &errorcode, &g_adaptorinfo->shm); - if (ret < 0 && errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return ret; -} - -int bp_scrap_adaptor_set_date_created(const int id, const int value) -{ - return __bp_scrap_adaptor_set_int - (id, BP_CMD_COMMON_SET_DATE_CREATED, value); -} - -int bp_scrap_adaptor_set_date_modified(const int id, const int value) -{ - return __bp_scrap_adaptor_set_int - (id, BP_CMD_COMMON_SET_DATE_MODIFIED, value); -} - -int bp_scrap_adaptor_set_account_name(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_ACCOUNT_NAME, value); -} - -int bp_scrap_adaptor_set_account_type(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_ACCOUNT_TYPE, value); -} - -int bp_scrap_adaptor_set_device_name(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_DEVICE_NAME, value); -} - -int bp_scrap_adaptor_set_device_id(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_COMMON_SET_DEVICE_ID, value); -} - -int bp_scrap_adaptor_set_main_content(const int id, const char *value) -{ - return __bp_scrap_adaptor_set_string - (id, BP_CMD_SCRAP_SET_MAIN_CONTENT, value); -} - -int bp_scrap_adaptor_create(int *id) -{ - int scrap_id = 0; - - if (id == NULL) { - return -1; - } - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - errorcode = BP_ERROR_NONE; - g_bp_command.cmd = BP_CMD_COMMON_CREATE; - g_bp_command.id = *id; - errorcode = bp_ipc_simple_response(sock, &g_bp_command); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(*id, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - scrap_id = bp_adaptor_ipc_read_int(sock); - if (scrap_id < 0) { - errorcode = bp_ipc_check_stderr(BP_ERROR_IO_ERROR); - BP_PRINT_ERROR(*id, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - pthread_mutex_unlock(&g_adaptor_mutex); - if (*id == scrap_id) { - TRACE_INFO("created a scrap:%d", *id); - } else { - *id = scrap_id; - TRACE_INFO("created new scrap:%d", *id); - } - return 0; -} - -int bp_scrap_adaptor_delete(const int id) -{ - if (id < 0) { - TRACE_ERROR("[CHECK id][%d]", id); - return -1; - } - return __bp_scrap_adaptor_send_cmd(id, BP_CMD_COMMON_DELETE); -} - -int bp_scrap_adaptor_get_errorcode(void) -{ - switch(errorcode) { - case BP_ERROR_INVALID_PARAMETER: - return BP_SCRAP_ERROR_INVALID_PARAMETER; - case BP_ERROR_OUT_OF_MEMORY: - return BP_SCRAP_ERROR_OUT_OF_MEMORY; - case BP_ERROR_IO_EINTR: - case BP_ERROR_IO_EAGAIN: - case BP_ERROR_IO_ERROR: - return BP_SCRAP_ERROR_IO_ERROR; - case BP_ERROR_NO_DATA: - return BP_SCRAP_ERROR_NO_DATA; - case BP_ERROR_ID_NOT_FOUND: - return BP_SCRAP_ERROR_ID_NOT_FOUND; - case BP_ERROR_DUPLICATED_ID: - return BP_SCRAP_ERROR_DUPLICATED_ID; - case BP_ERROR_PERMISSION_DENY: - return BP_SCRAP_ERROR_PERMISSION_DENY; - case BP_ERROR_DISK_FULL: - return BP_SCRAP_ERROR_DISK_FULL; - case BP_ERROR_DISK_BUSY: - return BP_SCRAP_ERROR_DISK_BUSY; - case BP_ERROR_TOO_BIG_DATA: - return BP_SCRAP_ERROR_TOO_BIG_DATA; - case BP_ERROR_UNKNOWN: - return BP_SCRAP_ERROR_UNKNOWN; - default: - break; - } - return BP_SCRAP_ERROR_NONE; -} - -int bp_scrap_adaptor_easy_create(int *id, bp_scrap_info_fmt *info) -{ - if (id == NULL || info == NULL) - return -1; - - if (*id <= 0) { // new scrap - if (bp_scrap_adaptor_create(id) < 0) { - TRACE_ERROR("[failed to create new scrap]"); - return -1; - } - if (*id <= 0) { - TRACE_ERROR("[failed to create new scrap]"); - return -1; - } - } - - if (info->date_created > 0) - bp_scrap_adaptor_set_date_created(*id, info->date_created); - if (info->date_modified > 0) - bp_scrap_adaptor_set_date_modified(*id, info->date_modified); - if (info->is_read >= 0) - bp_scrap_adaptor_set_is_read(*id, info->is_read); - if (info->is_reader >= 0) - bp_scrap_adaptor_set_is_reader(*id, info->is_reader); - if (info->is_night_mode >= 0) - bp_scrap_adaptor_set_is_night_mode(*id, info->is_night_mode); - if (info->url != NULL) - bp_scrap_adaptor_set_url(*id, info->url); - if (info->title != NULL) - bp_scrap_adaptor_set_title(*id, info->title); - if (info->page_path != NULL) - bp_scrap_adaptor_set_page_path(*id, info->page_path); - if (info->account_name != NULL) - bp_scrap_adaptor_set_account_name(*id, info->account_name); - if (info->account_type != NULL) - bp_scrap_adaptor_set_account_type(*id, info->account_type); - if (info->device_name != NULL) - bp_scrap_adaptor_set_device_name(*id, info->device_name); - if (info->device_id != NULL) - bp_scrap_adaptor_set_device_id(*id, info->device_id); - if (info->main_content != NULL) - bp_scrap_adaptor_set_main_content(*id, info->main_content); - if (info->favicon_length > 0 && info->favicon != NULL) { - bp_scrap_adaptor_set_icon(*id, info->favicon_width, - info->favicon_height, info->favicon, info->favicon_length); - } - return 0; -} - -int bp_scrap_adaptor_easy_free(bp_scrap_info_fmt *info) -{ - if (info != NULL) { - free(info->url); - free(info->title); - free(info->page_path); - free(info->account_name); - free(info->account_type); - free(info->device_name); - free(info->device_id); - free(info->main_content); - free(info->favicon); - memset(info, 0x00, sizeof(bp_scrap_info_fmt)); - } - return 0; -} - -int bp_scrap_adaptor_get_inquired_ids_p - (int **ids, int *count, const int limit, const int offset, - const bp_scrap_offset order_column_offset, const int ordering, - const char *keyword, const int is_like) -{ - return bp_scrap_adaptor_get_duplicated_ids_p - (ids, count, limit, offset, - order_column_offset, ordering, - (BP_SCRAP_O_TITLE | BP_SCRAP_O_URL), - keyword, is_like); -} - -int bp_scrap_adaptor_get_duplicated_ids_p - (int **ids, int *count, const int limit, const int offset, - const bp_scrap_offset order_column_offset, const int ordering, - const bp_scrap_offset check_column_offset, - const char *keyword, const int is_like) -{ - if (ids == NULL || count == NULL) - return -1; - if (keyword == NULL || bp_common_precheck_string(keyword) < 0) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - bp_command_fmt *cmd = &g_bp_command; - - cmd->cmd = BP_CMD_COMMON_GET_CONDS_ORDER_IDS; - cmd->id = -1; - - bp_db_base_conds_fmt conds; - memset(&conds, 0x00, sizeof(bp_db_base_conds_fmt)); - conds.limit = limit; - conds.offset = offset; - conds.order_column_offset = order_column_offset; - conds.ordering = ordering; - - errorcode = bp_ipc_simple_response(sock, cmd); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - - bp_scrap_offset oflags = check_column_offset; - if (bp_ipc_send_custom_type(sock, &conds, - sizeof(bp_db_base_conds_fmt)) < 0 || - bp_ipc_send_custom_type(sock, &oflags, - sizeof(bp_scrap_offset)) < 0 || - bp_adaptor_ipc_send_int(sock, is_like) < 0 || - bp_ipc_send_string(sock, keyword) < 0) { - errorcode = BP_ERROR_IO_ERROR; - BP_PRINT_ERROR(-1, errorcode); - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - // wait id from provider. - errorcode = bp_ipc_read_errorcode(sock); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - if (errorcode == BP_ERROR_NO_DATA) { // success - *count = 0; - return 0; - } - return -1; - } - // int count. - int ids_count = bp_adaptor_ipc_read_int(sock); - TRACE_DEBUG("response ids count:%d", ids_count); - if (ids_count > 0) { - int *idlist = (int *)calloc(ids_count, sizeof(int)); - if (idlist == NULL) { - errorcode = BP_ERROR_OUT_OF_MEMORY; - BP_PRINT_ERROR(-1, errorcode); - if (bp_common_adaptor_clear_read_buffer(sock, - (sizeof(int) * ids_count)) < 0) { - __browser_adaptor_disconnect(); - } - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - // getting ids array from provider - if (bp_ipc_read_blob(sock, idlist, - (sizeof(int) * ids_count)) < 0) { - free(idlist); - errorcode = bp_ipc_check_stderr(BP_ERROR_IO_ERROR); - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - *ids = idlist; - *count = ids_count; - } else { - *ids = NULL; - *count = 0; - } - pthread_mutex_unlock(&g_adaptor_mutex); - return 0; -} - -int bp_scrap_adaptor_get_cond_ids_p - (int **ids, int *count, - bp_scrap_rows_cond_fmt *conds, - const bp_scrap_offset check_offset, - const char *keyword, const int is_like) -{ - if (ids == NULL || count == NULL) - return -1; - bp_scrap_rows_cond_fmt t_conds; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - bp_command_fmt *cmd = &g_bp_command; - - cmd->cmd = BP_CMD_COMMON_GET_CONDS_DATE_IDS; - cmd->id = -1; - - memset(&t_conds, 0x00, sizeof(bp_scrap_rows_cond_fmt)); - - if (conds != NULL) - memcpy(&t_conds, conds, sizeof(bp_scrap_rows_cond_fmt)); - else - t_conds.limit = -1; - - errorcode = bp_ipc_simple_response(sock, cmd); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - bp_scrap_offset oflags = check_offset; - if (keyword == NULL) - oflags = 0; - if (bp_ipc_send_custom_type(sock, &t_conds, - sizeof(bp_scrap_rows_cond_fmt)) < 0 || - bp_ipc_send_custom_type(sock, &oflags, - sizeof(bp_scrap_offset)) < 0) { - errorcode = BP_ERROR_IO_ERROR; - BP_PRINT_ERROR(-1, errorcode); - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - if (oflags > 0) { - if (bp_adaptor_ipc_send_int(sock, is_like) < 0 || - bp_ipc_send_string(sock, keyword) < 0) { - errorcode = BP_ERROR_IO_ERROR; - BP_PRINT_ERROR(-1, errorcode); - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - } - // wait id from provider. - errorcode = bp_ipc_read_errorcode(sock); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - if (errorcode == BP_ERROR_NO_DATA) { // success - *count = 0; - return 0; - } - return -1; - } - // int count. - int ids_count = bp_adaptor_ipc_read_int(sock); - TRACE_DEBUG("response ids count:%d", ids_count); - if (ids_count > 0) { - int *idlist = (int *)calloc(ids_count, sizeof(int)); - if (idlist == NULL) { - errorcode = BP_ERROR_OUT_OF_MEMORY; - BP_PRINT_ERROR(-1, errorcode); - if (bp_common_adaptor_clear_read_buffer(sock, - (sizeof(int) * ids_count)) < 0) { - __browser_adaptor_disconnect(); - } - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - // getting ids array from provider - if (bp_ipc_read_blob(sock, idlist, - (sizeof(int) * ids_count)) < 0) { - free(idlist); - errorcode = bp_ipc_check_stderr(BP_ERROR_IO_ERROR); - BP_PRINT_ERROR(-1, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - *ids = idlist; - *count = ids_count; - } else { - *ids = NULL; - *count = 0; - } - pthread_mutex_unlock(&g_adaptor_mutex); - return 0; -} - -int bp_scrap_adaptor_get_info(const int id, - const bp_scrap_offset offset, bp_scrap_info_fmt *info) -{ - if (id < 0 || offset <= 0 || info == NULL) - return -1; - - BP_CHECK_PROVIDER_STATUS; - - int sock = BP_CHECK_IPC_SOCK; - g_bp_command.cmd = BP_CMD_COMMON_GET_INFO_OFFSET; - g_bp_command.id = id; - - // send command without waiting return value - errorcode = bp_ipc_simple_response(sock, &g_bp_command); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(id, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - // 1. oflags - bp_scrap_offset oflags = offset; - if (bp_ipc_send_custom_type(sock, &oflags, - sizeof(bp_scrap_offset)) < 0) { - errorcode = BP_ERROR_IO_ERROR; - BP_PRINT_ERROR(id, errorcode); - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - // 2. wait id from provider. - errorcode = bp_ipc_read_errorcode(sock); - if (errorcode != BP_ERROR_NONE) { - BP_PRINT_ERROR(id, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - bp_scrap_info_fmt scraps; - memset(&scraps, 0x00, sizeof(bp_scrap_info_fmt)); - // getting bp_scrap_info_fmt from provider. - if (bp_ipc_read_custom_type(sock, &scraps, - sizeof(bp_scrap_info_fmt)) < 0) { - errorcode = bp_ipc_check_stderr(BP_ERROR_IO_ERROR); - BP_PRINT_ERROR(id, errorcode); - if (errorcode == BP_ERROR_IO_ERROR) - __browser_adaptor_disconnect(); - pthread_mutex_unlock(&g_adaptor_mutex); - return -1; - } - memset(info, 0x00, sizeof(bp_scrap_info_fmt)); - - // fill info - if (offset & BP_SCRAP_O_DATE_CREATED) { - info->date_created = scraps.date_created; - } - if (offset & BP_SCRAP_O_DATE_MODIFIED) { - info->date_modified = scraps.date_modified; - } - if (offset & BP_SCRAP_O_IS_READ) { - info->is_read = scraps.is_read; - } - if (offset & BP_SCRAP_O_IS_READER) { - info->is_reader = scraps.is_reader; - } - if (offset & BP_SCRAP_O_IS_NIGHT_MODE) { - info->is_night_mode = scraps.is_night_mode; - } - // get strings . keep the order with provider - if (offset & BP_SCRAP_O_PAGE) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->page_path = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_URL) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->url = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_TITLE) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->title = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_ACCOUNT_NAME) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->account_name = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_ACCOUNT_TYPE) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->account_type = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_DEVICE_NAME) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->device_name = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_DEVICE_ID) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->device_id = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_MAIN_CONTENT) { - if (bp_ipc_read_errorcode(sock) == BP_ERROR_NONE) - info->main_content = bp_ipc_read_string(sock); - } - if (offset & BP_SCRAP_O_FAVICON) { - info->favicon_length = 0; - info->favicon_width = scraps.favicon_width; - info->favicon_height = scraps.favicon_height; - bp_error_defs ret = bp_ipc_read_errorcode(sock); - if (ret == BP_ERROR_NONE) { - unsigned char *blob_data = NULL; - if ((info->favicon_length = - bp_common_adaptor_get_info_blob(sock, &blob_data, - &g_adaptorinfo->shm)) > 0 && blob_data != NULL) - info->favicon = blob_data; - } - } - if (offset & BP_SCRAP_O_SNAPSHOT) { - info->snapshot_length = 0; - info->snapshot_width = scraps.snapshot_width; - info->snapshot_height = scraps.snapshot_height; - bp_error_defs ret = bp_ipc_read_errorcode(sock); - if (ret == BP_ERROR_NONE) { - unsigned char *blob_data = NULL; - if ((info->snapshot_length = - bp_common_adaptor_get_info_blob(sock, &blob_data, - &g_adaptorinfo->shm)) > 0 && blob_data != NULL) - info->snapshot = blob_data; - } - } - - pthread_mutex_unlock(&g_adaptor_mutex); - return 0; -} diff --git a/scrap-adaptor/scrap-adaptor.pc.in b/scrap-adaptor/scrap-adaptor.pc.in deleted file mode 100755 index 2d386d3..0000000 --- a/scrap-adaptor/scrap-adaptor.pc.in +++ /dev/null @@ -1,8 +0,0 @@ -# Package Information - -Name: scrap-adaptor -Description: @PACKAGE_DESCRIPTION@ -Version: @VERSION@ -Requires: @PC_REQUIRED@ -Libs: -L/usr/lib -l@PROJECT_NAME@ -Cflags: -I/usr/include/web