<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>原创 归档 - 初晴神社</title>
	<atom:link href="https://vki.cc/tag/%e5%8e%9f%e5%88%9b/feed/" rel="self" type="application/rss+xml" />
	<link>https://vki.cc/tag/原创/</link>
	<description>白露的博客</description>
	<lastBuildDate>Fri, 02 Apr 2021 06:36:21 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://cdn.vki.cc/wp-content/uploads/2018/03/cropped-icemaplen-1-32x32.png</url>
	<title>原创 归档 - 初晴神社</title>
	<link>https://vki.cc/tag/原创/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Unity 内存管理</title>
		<link>https://vki.cc/greattruth/engine/731/</link>
					<comments>https://vki.cc/greattruth/engine/731/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Wed, 22 Jul 2020 12:10:38 +0000</pubDate>
				<category><![CDATA[引擎相关]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity 3D]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[内存]]></category>
		<category><![CDATA[原创]]></category>
		<guid isPermaLink="false">https://bye6.cc/?p=731</guid>

					<description><![CDATA[<p>我胡汉三又回来啦！~ 内存交换 标准交换在内存与备份存储之间移动进程，备份存储通常是快速磁盘，它应足够大，以容纳所有用户的所有内存映像的副本，并且它应提供对这些存储器映像的直接访问。 移动设备不支&#8230;</p>
<p><a href="https://vki.cc/greattruth/engine/731/">Unity 内存管理</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-preformatted">我胡汉三又回来啦！~</pre>



<h4 class="wp-block-heading" id="o8CfU"><span id="%e5%86%85%e5%ad%98%e4%ba%a4%e6%8d%a2">内存交换</span></h4>



<p class="has-text-align-left has-black-color has-text-color wp-block-paragraph">标准交换在内存与备份存储之间移动进程，备份存储通常是快速磁盘，它应足够大，以容纳所有用户的所有内存映像的副本，并且它应提供对这些存储器映像的直接访问。</p>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>移动设备不支持任何形式的内存交换。</strong></p>



<ul class="wp-block-list"><li>移动设备通常采用闪存，而不是空间更大的硬盘作为它的永久存储。导致的空间约束是移动操作系统设计者避免交换的原因之一；</li><li>闪存写入次数的限制；</li><li>内存与闪存之间的吞吐量差；</li></ul>



<p class="has-black-color has-text-color wp-block-paragraph">当空闲内存降低到一定阈值以下时：</p>



<ul class="wp-block-list"><li>iOS：不釆用交换，而是要求应用程序自愿放弃分配的内存。只读数据（如代码）可从系统中删除，以后如有必要再从闪存重新加载。已修改的数据（如堆栈）不会被删除。然而，操作系统可以终止任何未能释放足够内存的应用程序。</li><li>Android：不支持交换，釆用类似 iOS 使用的策略。如果没有足够可用的空闲内存，则它可以终止进程。然而，在终止进程之前，Android 将其应用程序状态写到闪存，以便它能快速重新启动。</li></ul>



<p class="has-black-color has-text-color wp-block-paragraph">iOS支持内存压缩，Android不可以。</p>



<p class="has-black-color has-text-color wp-block-paragraph">Android 内存单位为Page，大小一般为4k，以分配单位回收，分为用户态和内核态，不可越界访问。</p>



<p class="has-black-color has-text-color wp-block-paragraph">Low Memory Killier：内存杀手。</p>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>Android服务优先级（从高到低），当内存不够时从优先级低的开始销毁</strong>：</p>



<ul class="wp-block-list"><li>Native</li><li>System 当杀到这一层级的时候手机重启</li><li>Persistent</li><li>Foreground 前台应用，具体表现为APP闪退</li><li>Perceptible</li><li>Service</li><li>Home 桌面</li><li>Previous 上一个使用的APP</li><li>Cached 后台APP</li></ul>



<h4 class="wp-block-heading" id="36R9c"><span id="unity%e5%86%85%e5%ad%98">Unity内存</span></h4>



<p class="has-black-color has-text-color wp-block-paragraph">按类型分为 <strong>Native Memory </strong>和<strong> Managed Memory</strong></p>



<p class="has-black-color has-text-color wp-block-paragraph">Editor与Runtime不同</p>



<ul class="has-cyan-bluish-gray-color has-text-color wp-block-list"><li data-lake-id="11ad0f3d261d1bdfaad1f6170d68b6da">Editor模式会尽可能的加载资源（启动较慢）</li><li data-lake-id="920753378d0cef5c0e9628ab6efaa826">Runtime按需加载</li></ul>



<p class="has-black-color has-text-color wp-block-paragraph">Unity封装了C++中与申请内存相关的函数，并添加了Label用于统计。</p>



<h4 class="wp-block-heading" id="FzmP4"><span id="audio">Audio</span></h4>



<p class="wp-block-paragraph"><strong>DSP Buffer</strong></p>



<ul class="wp-block-list"><li data-lake-id="b320a7254b16d587a6f73bceb02ab68b">过大会导致声音有延迟</li><li data-lake-id="988feb3af3915b96c8fd2c5133f0b1ab">过小会使CPU负担上升</li></ul>



<p class="wp-block-paragraph"><strong>Force to mono</strong></p>



<p class="wp-block-paragraph">双声道改单声道（尽量，绝大多数声音不需要双声道）</p>



<p class="wp-block-paragraph"><strong>Compress Format</strong></p>



<h4 class="wp-block-heading" id="e3S92"><span id="code-size">Code Size</span></h4>



<p class="wp-block-paragraph">慎用模板泛型，</p>



<h4 class="wp-block-heading" id="UfI9X"><span id="assetbundle">AssetBundle</span></h4>



<p class="wp-block-paragraph">Type Tree</p>



<p class="wp-block-paragraph">当Unity版本与APP版本一致时可以关掉</p>



<ul class="wp-block-list"><li style="list-style-type: none;">
<ul data-lake-id="3e53979f08d5f031e7fefefd919b79c4">
<li data-lake-id="6feee38208c0af4aca7e153e5c19465c">减小内存</li>
<li data-lake-id="2f7a8c2489975976f9ad934aa76d1b4b">减小包大小</li>
<li data-lake-id="47ac6b264aafb950d9d0f23e668ee5e0">Build和Runtime变快</li>
</ul>
</li></ul>



<p class="wp-block-paragraph"><strong>压缩方式</strong></p>



<p class="wp-block-paragraph">LZ4 推荐</p>



<p class="wp-block-paragraph">LZMA 弃用</p>



<p class="wp-block-paragraph"><strong>extra</strong></p>



<p class="wp-block-paragraph">不建议每个文件打一个AssetBundle包</p>



<p class="wp-block-paragraph">因为它们有相同的“头”，仅数据部分不同，容易浪费空间。</p>



<h4 class="wp-block-heading" id="dNP1Y"><span id="resources">Resources</span></h4>



<p class="wp-block-paragraph">通过红黑树进行索引，每次启动游戏都要分析加载红黑树，拖慢启动时间。其次整个游戏生命周期都会存在与内存中。</p>



<h4 class="wp-block-heading" id="KpCjw"><span id="texture">Texture</span></h4>



<p class="wp-block-paragraph"><strong>Upload Buffer</strong></p>



<p class="wp-block-paragraph"><strong>Read&amp;Write</strong></p>



<p class="wp-block-paragraph">没有特殊需求就关掉write</p>



<p class="wp-block-paragraph"><strong>Mipmap</strong></p>



<p class="wp-block-paragraph">同样没有特殊需求就关掉</p>



<h4 class="wp-block-heading" id="x73lJ"><span id="mesh">Mesh</span></h4>



<p class="wp-block-paragraph"><strong>Read&amp;Write</strong></p>



<p class="wp-block-paragraph"><strong>Compresssion</strong></p>



<h3 class="wp-block-heading" id="rbJ5r"><span id="managed%e5%86%85%e5%ad%98">Managed内存</span></h3>



<p class="has-black-color has-text-color wp-block-paragraph">VM内存池</p>



<p class="has-black-color has-text-color wp-block-paragraph">VM会返还内存给OS</p>



<p class="has-black-color has-text-color wp-block-paragraph">条件：一个block连续6次GC没被访问到</p>



<h4 class="wp-block-heading" id="epv2S"><span id="unity-gc-%e7%ae%97%e6%b3%95">Unity GC 算法</span></h4>



<pre class="wp-block-preformatted">貌似不采用CLR的GC机制_(:з」∠)_（参见另一篇文章，传送门）</pre>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>Boehm GC</strong></p>



<p class="has-black-color has-text-color wp-block-paragraph">旧版垃圾回收方式，新版Unity已弃用。</p>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>不分代</strong>（速度更快）</p>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>不压缩</strong>（因为一些历史原因。。跟mono有关）</p>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>Incremental GC（渐进式GC）</strong></p>



<p class="has-black-color has-text-color wp-block-paragraph">Unity2019.3之后使用，新一代垃圾回收算法。</p>



<p class="has-black-color has-text-color wp-block-paragraph">主要目的为了解决旧版GC导致主线程卡顿（旧版GC时会暂停主线程）的问题，<strong>分帧解决，且分代</strong></p>



<h4 class="wp-block-heading" id="4mYDq"><span id="gc%e6%9c%ba%e5%88%b6%e8%80%83%e9%87%8f">GC机制考量</span></h4>



<ul class="wp-block-list"><li data-lake-id="660957963fddbea01fd4ec0bcda75a61">回收能力</li><li data-lake-id="13580033e8e418799d5f260ba564a88d">暂停时长</li><li data-lake-id="522b2a4651dc451b9655e3c8fdf7d6cf">碎片化</li><li data-lake-id="2547a49c18f9244054ccb157d5bc822c">额外消耗</li><li data-lake-id="fdb31eab183fabe0398e946148dd5263">可扩展性</li><li data-lake-id="f3c2da301939823205f12211aedc759a">可移植性</li></ul>



<h4 class="wp-block-heading" id="J5Onq"><span id="%e5%86%85%e5%ad%98%e7%a2%8e%e7%89%87%e5%8c%96">内存碎片化</span></h4>



<p class="has-black-color has-text-color wp-block-paragraph">内存碎片通常分为内部碎片和外部碎片：</p>



<ol class="wp-block-list"><li>内部碎片是由于采用固定大小的内存分区，当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片，通常内部碎片难以完全避免；</li><li>外部碎片是由于某些未分配的连续内存区域太小，以至于不能满足任意进程的内存分配请求，从而不能被进程利用的内存区域。</li></ol>



<p class="has-black-color has-text-color wp-block-paragraph"><strong>先加载消耗大内存的资源，再加载小内存</strong></p>



<h4 class="wp-block-heading" id="FPdj0"><span id="%e5%83%b5%e5%b0%b8%e5%86%85%e5%ad%98">僵尸内存</span></h4>



<ul class="wp-block-list"><li data-lake-id="bc5462d9e5d49a7e6c32d79622a65214">无用内存</li><li data-lake-id="14915a15a5f640a5f8e01cbe11540cca">没有释放</li><li data-lake-id="796e8d72732ba18a118b944039f28f34">可通过代码管理和性能工具分析</li></ul>



<h4 class="wp-block-heading" id="7Bfhj"><span id="setactive">SetActive</span></h4>



<p class="wp-block-paragraph">TODO。。。</p>



<p class="wp-block-paragraph">都说要少用，但是不清楚机制，有机会看一下Unity源码 Orz</p>



<h3 class="wp-block-heading" id="QSWFN"><span id="%e4%bc%98%e5%8c%96%e5%bb%ba%e8%ae%ae">优化建议</span></h3>



<ul class="wp-block-list"><li data-lake-id="d69d8eee51298fd6887027e6e0e00d34"><strong>使用Destroy，别用null<br></strong></li><li data-lake-id="f2c16401a975b5ae82b4a625bbf6f445"><strong>Class/Struct</strong></li></ul>



<ul class="wp-block-list"><li data-lake-id="d566bb88ddc562cd4fa58dc8340331bf">少于8个字节的数据可用Struct代替Class（存疑）</li></ul>



<ul class="wp-block-list"><li data-lake-id="fdc6d72d868ae679fe6380d181f3b88d"><strong>池中池</strong></li><li data-lake-id="4334e0ca514037df778864799063153d"><strong>闭包和匿名函数</strong></li></ul>



<ul class="wp-block-list"><li data-lake-id="1250b809d7a3beea6d2bac105f387a0d">少用，在IL2CPP里这些都会new class</li><li data-lake-id="413a0dbfac105ff19edbffae41a3061e"><strong>协程</strong></li></ul>



<ul class="wp-block-list"><li data-lake-id="53c02b79234a6494d0ac6d3c4caf0935">用的时候再产生，不用的时候及时终止</li><li data-lake-id="c1e7ec9e3126fc936fc53cac7fa4b6bc">不要当线程使用</li><li data-lake-id="6d7ccc3bc281cf367da7a0f4e14430ad"><strong>配置表</strong></li></ul>



<ul class="wp-block-list"><li data-lake-id="f80c86b757dd40ebb7835f06cfb868b8">excel、json等，按需加载，不然会很占用内存空间</li><li data-lake-id="200224045513b88bcbc82c20699f1adb"><strong>单例模式 Singleton</strong></li></ul>



<ul class="wp-block-list"><li data-lake-id="82ebf0cbb49cdc3719ae3174695d3c4c">慎用，生命周期较长，占用内存</li></ul>
<p><a href="https://vki.cc/greattruth/engine/731/">Unity 内存管理</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/greattruth/engine/731/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Unity安卓项目踩坑日记</title>
		<link>https://vki.cc/greattruth/experience/692/</link>
					<comments>https://vki.cc/greattruth/experience/692/#comments</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Tue, 23 Apr 2019 09:38:57 +0000</pubDate>
				<category><![CDATA[咸鱼心得]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity 3D]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[安卓]]></category>
		<category><![CDATA[心得]]></category>
		<category><![CDATA[教程]]></category>
		<guid isPermaLink="false">https://bye6.cc/?p=692</guid>

					<description><![CDATA[<p>失踪人口回归~ 最近在研究游戏在安卓平台的打包，遇到了不少坑，特此写个文章记录下~ 1.Unity与安卓的交互 虽然Unity可以直接导出apk安装包，但由于有些方法，比如读取手机相册图片，获取权限等，或者是添加&#8230;</p>
<p><a href="https://vki.cc/greattruth/experience/692/">Unity安卓项目踩坑日记</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="color: #808080;"><em>失踪人口回归~</em></span></p>
<blockquote><p>最近在研究游戏在安卓平台的打包，遇到了不少坑，特此写个文章记录下~</p></blockquote>
<h2 id="1-unity%e4%b8%8e%e5%ae%89%e5%8d%93%e7%9a%84%e4%ba%a4%e4%ba%92">1.Unity与安卓的交互</h2>
<p>虽然Unity可以直接导出apk安装包，但由于有些方法，比如读取手机相册图片，获取权限等，或者是添加SDK都不能直接通过Unity实现。我们一般用Unity导出安卓工程，再通过Android Studio修改之后打出apk包。</p>
<p>通常情况下每次打包都需要修改，为了偷懒~</p>
<p>这里提供个堪称一劳永逸的解决办法，请看文章~</p>
<p><span style="color: #ff6600;"><a style="color: #ff6600;" href="https://www.jianshu.com/p/86b275da600e" target="_blank" rel="noopener noreferrer">Unity与Android交互方案优化版</a></span></p>
<p><span style="text-decoration: underline;"><a href="https://www.jianshu.com/p/86b275da600e" target="_blank" rel="noopener noreferrer">https://www.jianshu.com/p/86b275da600e</a></span></p>
<h2 id="2-android-aar%e6%96%87%e4%bb%b6%e4%bf%ae%e6%94%b9">2.Android aar文件修改</h2>
<p><span style="color: #808080;"><em>今天刚踩得坑，麻蛋！</em></span></p>
<p>不同于jar包只能包含java代码，aar包还可以保存贴图等资源，相当于一个后缀是aar的压缩包。有时候第三方sdk提供的也是aar文件，当需要修改里面的东西时，比如删掉里面一个jar<strong>。切记不能采取先解压，删除完毕再压缩回去，后缀改成aar的操作。这样修改后Android Studio用不了！！！</strong></p>
<p>正确方法是以解压的形式打开（不是解压压缩包），一般Windows平台的压缩软件都可以，然后在压缩软件里增加或删除文件操作。</p>
<h2 id="3-android-aar%e6%96%87%e4%bb%b6%e8%af%bb%e5%8f%96">3.Android aar文件读取</h2>
<p><span style="color: #808080;"><em>同上，又是个巨坑，匪夷所思！</em></span></p>
<p>我目前的项目在安卓端是这样的，把用到的sdk和需要在安卓端才能调用的方法打成aar包，然后添加到Unity导出的安卓工程里，但是不知道为什么在运行的时候会报以下的错误;</p>
<p><img  fetchpriority="high"  decoding="async"  class="aligncenter size-full wp-image-694"  src="https://cdn.vki.cc/wp-content/uploads/2019/04/QQ20190423-0.jpg"  alt=""  width="661"  height="83"  srcset="https://cdn.vki.cc/wp-content/uploads/2019/04/QQ20190423-0.jpg 661w, https://cdn.vki.cc/wp-content/uploads/2019/04/QQ20190423-0-300x38.jpg 300w"  sizes="(max-width: 661px) 100vw, 661px" ></p>
<p>说的是BGPlayerService类重复，可是我的找遍了真个项目和aar包也只有一个类，根本没有重复的地方。研究了很久都无解，就在准备放弃治疗的时候顺便改了下build.gradle的dependencies里的语句，从</p>
<pre class="pure-highlightjs"><code class="null">dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':localizedappnamelib')
    implementation 'com.android.support:support-core-utils:24.2.0'
    implementation (name:'findingparadiselib-debug',ext:'aar')
}</code></pre>
<p>改成了</p>
<pre class="pure-highlightjs"><code class="null">dependencies {
    implementation (name:'findingparadiselib-debug',ext:'aar')
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':localizedappnamelib')
    implementation 'com.android.support:support-core-utils:24.2.0'
}</code></pre>
<p>然后特么问题解决了！</p>
<p>？？？</p>
<p>我怀疑可能是implementation fileTree(include: [&#8216;*.jar&#8217;], dir: &#8216;libs&#8217;)把aar包里的jar也算进去了_(:з」∠)_</p>
<h2 id="4-%e7%94%9f%e6%88%90%e7%ad%be%e5%90%8d%e5%ae%89%e8%a3%85%e5%8c%85%e7%9a%84%e6%97%b6%e5%80%99%e6%8a%a5%e9%94%99">4.生成签名安装包的时候报错</h2>
<p>在第一次生成签名安装包的时候可能提示缺少xxx.pom（忘了是不是pom后缀了，反正差不多）和xxx.jar组件，这个报错在生成debug包的时候是不出现的。具体原因我不清楚，我猜是打包的时候需要这样依赖包，但是谷歌的官方站点没有（Android Studio提供的链接点进去404）。</p>
<p>两个解决办法，一是手动下载这些依赖包并放到指定的目录中去，不过不建议这样做，一个一个下载再放到指定目录太麻烦了。</p>
<p>第二中解决方法是使用阿里提供的站点，具体操作是将以下的代码方放到安卓工程的build.gradle文件的repositories代码块中去：</p>
<pre class="pure-highlightjs"><code class="null">maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }</code></pre>
<p>这样打包的时候Android Studio会自动去这些站点下载需要的依赖包，问题解决。</p>
<h2 id="5-execution-failed-for-task-appndkbuild">5.Execution failed for task &#8216;:app:ndkBuild&#8217;.</h2>
<p>该问题是在对一个老游戏升级的时候出现的，表现为无法打包，报错：</p>
<pre class="pure-highlightjs"><code class="null">Process 'command 'D:\SDK\***/ndk-build.cmd'' finished with non-zero exit value 2</code></pre>
<p>上网搜索，普遍的解决方式是使用低版本的NDK，又或者是删除src/main/obj文件夹里的内容，尝试无果。</p>
<p>最终发现是build.gradle版本较老，且使用ndkBuild的方式打包，不适用于新版的Android Studio，修改之后问题解决</p>
<p>修改前：</p>
<pre class="pure-highlightjs"><code class="null">android {
    signingConfigs {
    }
    compileSdkVersion 26
    buildToolsVersion '23.0.3'
    defaultConfig {
        applicationId "com.xd.swords.and"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 18
        versionName "1.1.7"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets.main.jni.srcDirs = []
    // disable automatic ndk-build call, which ignore our Android.mk
    sourceSets.main.jniLibs.srcDir 'src/main/libs'
    // call regular ndk-build(.cmd) script from app directory
    task ndkBuild(type: Exec) {
        workingDir file('src/main')
        commandLine getNdkBuildCmd()
    }
    tasks.withType(JavaCompile) {
        compileTask -&gt; compileTask.dependsOn ndkBuild
    }
    task cleanNative(type: Exec) {
        workingDir file('src/main')
        commandLine getNdkBuildCmd(), 'clean'
    }
    clean.dependsOn cleanNative
}</code></pre>
<p>修改后：</p>
<pre class="pure-highlightjs"><code class="null">android {
    signingConfigs {
    }
    compileSdkVersion 26
    buildToolsVersion '23.0.3'
    defaultConfig {
        applicationId "com.xd.swords.and"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 18
        versionName "1.1.7"
        ndk {
            abiFilters 'armeabi-v7a'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        ndkBuild {
            path "src/main/jni/Android.mk"
        }
    }

    // 下面部分代码应该也可以删掉。
    sourceSets.main.jni.srcDirs = []
    // disable automatic ndk-build call, which ignore our Android.mk
    sourceSets.main.jniLibs.srcDir 'src/main/libs'
    // call regular ndk-build(.cmd) script from app directory
}</code></pre>
<p>对比前后，主要是删除了旧的ndkBuild代码，然后设置abiFilters等。</p>
<p><a href="https://vki.cc/greattruth/experience/692/">Unity安卓项目踩坑日记</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/greattruth/experience/692/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>【音乐】2019.01 Moony</title>
		<link>https://vki.cc/timershaft/music/638/</link>
					<comments>https://vki.cc/timershaft/music/638/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Tue, 01 Jan 2019 12:47:05 +0000</pubDate>
				<category><![CDATA[音乐推荐]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[音乐]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=638</guid>

					<description><![CDATA[<p>1.01 Moony [music]1336487436[/music] 新的一年也要加油鸭~ 1.02 冬之恋 [music]441441015[/music]  “无限接近，永不相交。相交之后，渐行渐远。” 1.04 忆 [music]1295750639[/music] 这是属于我一个人的独&#8230;</p>
<p><a href="https://vki.cc/timershaft/music/638/">【音乐】2019.01 Moony</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2 id="1-01-moony">1.01 Moony</h2>
<p>[music]1336487436[/music]</p>
<p>新的一年也要加油鸭~</p>
<h2 id="1-02-%e5%86%ac%e4%b9%8b%e6%81%8b">1.02 冬之恋</h2>
<p>[music]441441015[/music]</p>
<div class="heartbeat-message-block heartbeat-add-flag odd">
<div id="beat-item-77358235" class="beat-item ">
<div class="cphbmessage"></div>
</div>
</div>
<div class="heartbeat-message-block heartbeat-add-flag even">
<div id="beat-item-77358234" class="beat-item "> “无限接近，永不相交。相交之后，渐行渐远。”</div>
<h2 id="1-04-%e5%bf%86">1.04 忆</h2>
<p>[music]1295750639[/music]</p>
<p>这是属于我一个人的独角戏 。</p>
<h2 id="1-09-guard-you">1.09 Guard You</h2>
<p>[music]1316122377[/music]</p>
<p>自有佳人予良辰，陪你笑辞别往生。</p>
<h2 id="1-10-%e8%8a%b1%e8%af%ad">1.10 花语</h2>
<p>[music]553750304[/music]</p>
<div class="views-row views-row-8 views-row-even">
<div class="views-field-phpcode"></div>
</div>
<div class="views-row views-row-9 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1"><span class="xqseartxt">花</span>开<span class="xqseartxt">花</span>谢<span class="xqseartxt">花</span>化泥，长顺长安长相依。</div>
<h2 id="1-16-warming-winter">1.16 Warming Winter</h2>
<p>[music]454438495[/music]</p>
<div class="views-row views-row-1 views-row-odd views-row-first">
<div class="views-field-phpcode"></div>
</div>
<div class="views-row views-row-2 views-row-even">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">有人说，如果你在<span class="xqseartxt">冬天</span>遇到喜欢的人，她可以把你的<span class="xqseartxt">冬天</span>变成春天。</div>
</div>
</div>
</div>
</div>
</div>
<p><a href="https://vki.cc/timershaft/music/638/">【音乐】2019.01 Moony</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/timershaft/music/638/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>使用C#实现POST消息发送和读取</title>
		<link>https://vki.cc/greattruth/language/634/</link>
					<comments>https://vki.cc/greattruth/language/634/#comments</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Fri, 21 Dec 2018 07:41:18 +0000</pubDate>
				<category><![CDATA[语言相关]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[心得]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=634</guid>

					<description><![CDATA[<p>之前给一个大佬做有赞应用时候遇到了post收发的问题，其实实现起来很简单的。无奈网上关于这方面的资料很少，特此整理一下，希望帮助有需要的人_(:з」∠)_</p>
<p><a href="https://vki.cc/greattruth/language/634/">使用C#实现POST消息发送和读取</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="color: #808080;">啊，好久没写过博客了_(:з」∠)_</span></p>
<blockquote><p><span style="color: #333333;">之前给一个大佬做有赞应用时候遇到了post收发的问题，其实实现起来很简单的。无奈网上关于这方面的资料很少，特此整理一下，希望帮助有需要的人_(:з」∠)_</span></p></blockquote>
<h2 id="%e5%8f%91%e9%80%81">发送</h2>
<p>直接上代码了，关键的地方我加了注释，应该不难理解。</p>
<p>C#提供了相关的API，很方便。这段代码可以直接拿去用_(:з」∠)_</p>
<p>大致步骤就是创建Request-填充信息-发送。</p>
<pre class="pure-highlightjs"><code class="cs">/// &lt;summary&gt;
/// Post提交数据
/// &lt;/summary&gt;
/// &lt;param name="postUrl"&gt;URL&lt;/param&gt;
/// &lt;param name="paramData"&gt;参数&lt;/param&gt;
/// &lt;returns&gt;&lt;/returns&gt;
string PostWebRequest(string postUrl, string paramData)
{
    string ret = string.Empty;
    try
    {
        byte[] byteArray = Encoding.UTF8.GetBytes(paramData);
        HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
        // 提交方法，POST/GET等
        webReq.Method = "POST";
        // ContentType
        webReq.ContentType = "application/x-www-form-urlencoded";
        webReq.ContentLength = byteArray.Length;

        Stream newStream = webReq.GetRequestStream();
        //写入参数
        newStream.Write(byteArray, 0, byteArray.Length);
        newStream.Close();
        HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
        ret = sr.ReadToEnd();

        sr.Close();
        response.Close();
        newStream.Close();
    }
    catch (Exception ex)
    {
        return ex.Message;
    }
    return ret;
}</code></pre>
<h2 id="%e6%8e%a5%e6%94%b6">接收</h2>
<p>接收消息模块我分了两部分，一是主体，如何调用api进行监听。这部分需要另开一个线程来处理。</p>
<pre class="pure-highlightjs"><code class="cs">/// &lt;summary&gt;
/// 监听post消息，在收到消息后发送响应消息。
/// 建议使用死循环反复监听，且开启一个线程执行该方法。
/// &lt;/summary&gt;
void ListenWebRequest()
{
    // string url= "需要监听的url范围";
    // 示例：(这里有个坑，见下文)
    string url = "http://127.0.0.1:2333";
    try
    {
        HttpListener listener = new HttpListener();
        listener.Prefixes.Add(url);

        // 开始监听端口，接收客户端请求
        listener.Start();

        // 阻塞主函数至接收到一个客户端请求为止
        // 也可以使用listener.BeginGetContext()异步监听
        HttpListenerContext context = listener.GetContext();
        HttpListenerRequest request = context.Request;
        HttpListenerResponse response = context.Response;

        // msg即为body内容
        string msg = GetBodyString(request);

        // 通过QueryString索引获取post参数
        string sample = request.QueryString["sample"];

        // 收到信息后返回数据
        string responseString = "响应数据";
        response.StatusCode = 200;
        // header头信息
        response.Headers.Add("Access-Control-Allow-Origin", "*");
        // contentType 类型
        response.ContentType = "application/json";
        response.ContentEncoding = System.Text.Encoding.UTF8;
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
        response.ContentLength64 = buffer.Length;
        Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);

        output.Close();
        listener.Stop();
        listener.Close();
    }
    catch (Exception ex)
    {
        // TODO
    }
}</code></pre>
<p>第二部分，由于接收到的post消息中body内容是以流格式的，还需要将其转换为string。</p>
<pre class="pure-highlightjs"><code class="cs">/// &lt;summary&gt;
/// 将body内容解析为String。
/// &lt;/summary&gt;
/// &lt;returns&gt;The body string.&lt;/returns&gt;
/// &lt;param name="request"&gt;Request.&lt;/param&gt;
string GetBodyString(HttpListenerRequest request)
{
    string result = null;
    using (System.IO.Stream body = request.InputStream) // here we have data
    {
        using (System.IO.StreamReader reader = new System.IO.StreamReader(body, request.ContentEncoding))
        {
            result = reader.ReadToEnd();
        }
    }

    if (string.IsNullOrEmpty(result))
    {
        // TODO 读取到空消息
    }
    else
    {
        // TODO 成功读取消息
    }

    return result;
}</code></pre>
<h2 id="%e6%8e%a8%e8%8d%90%e4%b8%80%e4%b8%aapost%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7">推荐一个post测试工具</h2>
<p><span style="color: #ff9900;"><strong>Restlet Client &#8211; REST API Testing</strong></span></p>
<p>谷歌浏览器插件：<span style="color: #0000ff;"><a style="color: #0000ff;" href="https://chrome.google.com/webstore/detail/restlet-client-rest-api-t/aejoelaoggembcahagimdiliamlcdmfm?utm_source=chrome-ntp-icon">下载链接（需要翻墙）</a></span></p>
<p><span style="color: #333333;">炒鸡好用！</span></p>
<p><img  decoding="async"  class="aligncenter wp-image-636 size-full"  src="https://cdn.vki.cc/wp-content/uploads/2018/12/20181221-155002.png"  alt=""  width="1023"  height="551"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/12/20181221-155002.png 1023w, https://cdn.vki.cc/wp-content/uploads/2018/12/20181221-155002-300x162.png 300w, https://cdn.vki.cc/wp-content/uploads/2018/12/20181221-155002-768x414.png 768w, https://cdn.vki.cc/wp-content/uploads/2018/12/20181221-155002-750x404.png 750w"  sizes="(max-width: 1023px) 100vw, 1023px" ></p>
<h2 id="%e7%a2%8e%e7%a2%8e%e5%bf%b5">碎碎念</h2>
<p>就是在接收方法那绑定的url，我当时用的腾讯云的服务器（window系统）测试的。是这样的，</p>
<p>如果url是localhost或127.0.0.1，在服务器本机测试一切正常。但如果从外网向其post数据，会报400或405错误。</p>
<p>如果url是服务器外网IP呢，干脆直接抛异常，好像是无法绑定。</p>
<p>最后尝试了下将url改成内网IP，一切OK。不过我还是不知道是什么原因_(:з」∠)_</p>
<p><a href="https://vki.cc/greattruth/language/634/">使用C#实现POST消息发送和读取</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/greattruth/language/634/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>【音乐】2018.10 白昼之夜</title>
		<link>https://vki.cc/timershaft/music/624/</link>
					<comments>https://vki.cc/timershaft/music/624/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Mon, 01 Oct 2018 14:34:54 +0000</pubDate>
				<category><![CDATA[音乐推荐]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[音乐]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=624</guid>

					<description><![CDATA[<p>10.01 白昼之夜 [music]116493[/music] 昼夜如一难分晓，忧心欲静灯犹耀。  10.04 如烟 [music]558053301[/music] 灯火阑珊处，斯人已忘怀。 10.05 爱情是无论何时都想念 [music]5331044[/music] 回忆酿成酒&#8230;</p>
<p><a href="https://vki.cc/timershaft/music/624/">【音乐】2018.10 白昼之夜</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2 id="10-01-%e7%99%bd%e6%98%bc%e4%b9%8b%e5%a4%9c">10.01 白昼之夜</h2>
<p>[music]116493[/music]</p>
<div class="views-row views-row-2 views-row-even">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1"><span class="xqseartxt">昼夜</span>如一难分晓，忧心欲静灯犹耀。</div>
<h2 id="10-04-%e5%a6%82%e7%83%9f" class="views-field-ops"> 10.04 如烟</h2>
<p>[music]558053301[/music]</p>
<p>灯火阑珊处，斯人已忘怀。</p>
<h2 id="10-05-%e7%88%b1%e6%83%85%e6%98%af%e6%97%a0%e8%ae%ba%e4%bd%95%e6%97%b6%e9%83%bd%e6%83%b3%e5%bf%b5">10.05 爱情是无论何时都想念</h2>
<p>[music]5331044[/music]</p>
<p>回忆酿成酒，醉倒了余生。</p>
<h2 id="10-07-%e4%bd%a0%e7%9a%84%e5%be%ae%e7%ac%91%e8%9e%8d%e5%8c%96%e4%ba%86%e6%88%91%e7%9a%84%e5%bf%83%e8%84%8f">10.07 你的微笑融化了我的心脏</h2>
<p>[music]5330812[/music]</p>
<div class="views-row views-row-1 views-row-odd views-row-first">
<div class="views-field-phpcode">
<div class="views-field-field-sns-value">
<div id="bdshare" class="bdshare_t bds_tools get-codes-bdshare"> 是药总有三分苦，偏你却有七分毒。</div>
<h2 id="10-08-i-love-you">10.08 I Love You</h2>
<p>[music]5330659[/music]</p>
<p>故人清眸常入梦，新人难敌旧人好。</p>
<h2 id="10-11-%e3%83%9a%e3%82%b3%e3%81%a8%e3%81%ae%e5%87%ba%e4%bc%9a%e3%81%84">10.11 ペコとの出会い</h2>
<p>[music]33211337[/music]</p>
<p>哆啦A梦~</p>
<h2 id="10-12-%e8%90%bd%e6%9c%88">10.12 落月</h2>
<p>[music]517953261[/music]</p>
<p>人生最好的三种状态：不期而遇、不言而喻、不药而愈！</p>
<h2 id="10-22-step-out">10.22 Step Out</h2>
<p>[music]28143751[/music]</p>
<p>“人生的意义，在于承担人生无意义的勇气，如果你一直在找人生的意义，你将永&#8230;没有将&#8230;你永远不会生活！”</p>
<blockquote><p>因为工作的原因耽搁了一段时间_(:з」∠)_</p></blockquote>
<h2 id="10-26-autumns-wind">10.26 Autumn&#8217;s Wind</h2>
<p>[music]29047200[/music]</p>
<div class="views-row views-row-7 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1"><span class="xqseartxt">秋</span>天该很好，你若尚在场。</div>
<h2 id="10-29-%e6%96%b0%e5%bc%80%e5%a7%8b">10.29 新开始</h2>
<p>[music]28844177[/music]</p>
<p>师出洪门派，仗义行天下。</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><a href="https://vki.cc/timershaft/music/624/">【音乐】2018.10 白昼之夜</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/timershaft/music/624/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【音乐】2018.8 盛夏与蝉鸣</title>
		<link>https://vki.cc/timershaft/music/554/</link>
					<comments>https://vki.cc/timershaft/music/554/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Wed, 01 Aug 2018 13:54:24 +0000</pubDate>
				<category><![CDATA[音乐推荐]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[音乐]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=554</guid>

					<description><![CDATA[<p>8.01 盛夏与蝉鸣 [music]557850882[/music] 华盖荫荫，满枝翡翠。 8.02 灯香花明 [music]41664610[/music] 提笔欲写相思寄，怎道相思难相诉。 8.03 每一次转身都可能永远 [music]421885599[/music] 我一直都&#8230;</p>
<p><a href="https://vki.cc/timershaft/music/554/">【音乐】2018.8 盛夏与蝉鸣</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2 id="8-01-%e7%9b%9b%e5%a4%8f%e4%b8%8e%e8%9d%89%e9%b8%a3">8.01 盛夏与蝉鸣</h2>
<p>[music]557850882[/music]</p>
<div class="views-field-phpcode-1">华盖荫荫，满枝翡翠。</div>
<h2 id="8-02-%e7%81%af%e9%a6%99%e8%8a%b1%e6%98%8e">8.02 灯香花明</h2>
<p>[music]41664610[/music]</p>
<div class="views-field-phpcode-1">提笔欲写相思寄，怎道相思难相诉。</div>
<h2 id="8-03-%e6%af%8f%e4%b8%80%e6%ac%a1%e8%bd%ac%e8%ba%ab%e9%83%bd%e5%8f%af%e8%83%bd%e6%b0%b8%e8%bf%9c">8.03 每一次转身都可能永远</h2>
<p>[music]421885599[/music]</p>
<div class="views-row views-row-9 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">我一直都在，只是你不曾<span class="xqseartxt">转身</span>。</div>
<div>
<h2 id="8-05-%e6%9c%88%e8%89%b2%e4%b8%8e%e9%9b%aa%e8%89%b2">8.05 月色与雪色</h2>
<p>[music]535612106[/music]</p>
<p>暮雪归阳暗花香，凛风带月雪中藏。</p>
</div>
<h2 id="8-07-loveless">8.07 Loveless</h2>
<p>[music]540042[/music]</p>
<div class="views-field-phpcode-1">A dream in one&#8217;s life is an empty dream.</div>
<h2 id="8-09-%e6%98%a5%e9%a3%8e%e5%86%8d%e7%be%8e%e4%b9%9f%e6%af%94%e4%b8%8d%e4%b8%8a%e4%bd%a0%e7%9a%84%e7%ac%91%ef%bc%8c%e6%b2%a1%e8%a7%81%e8%bf%87%e4%bd%a0%e7%9a%84%e4%ba%ba%e8%87%aa%e7%84%b6%e4%b8%8d">8.09 春风再美也比不上你的笑，没见过你的人自然不会明了。</h2>
<div class="xqjulistwafo">[music] 527354000[/music]</div>
<div>谁又能真正懂得那种瞬间让人整颗心都化了的微笑。</div>
<h2 id="8-10-%e4%bb%8a%e5%b9%b4%e4%b9%9f%e6%80%9d%e5%bf%b5%e4%bd%a0%e7%9a%84%e6%97%a5%e5%ad%90">8.10 今年也思念你的日子</h2>
<p>[music]5330971[/music]</p>
<p>“我在我的剧本里花费了多少青春，还不是自作多情白费了认真”</p>
<h2 id="8-13-once">8.13 Once</h2>
<p>[music]475905710[/music]</p>
<div class="views-field-phpcode-1">任他归途是否阴晴，我亦无心再盼风雨。</div>
<div class="xqjulistwafo"></div>
<h2 id="8-16-%e6%a8%b1%e8%8a%b1%e6%a8%b1%e8%8a%b1%e6%83%b3%e8%a7%81%e4%bd%a0" class="views-field-ops"> 8.16 樱花樱花想见你</h2>
<p>[music]411921579[/music]</p>
<p>只是遇见，不谈余生。</p>
<h2 id="8-17-%e4%b8%83%e5%a4%95%e4%b9%8b%e7%ba%a6">8.17 七夕之约</h2>
<p>[music]1301997973[/music]</p>
<p>祝天下有情人终成眷属。</p>
<h2 id="8-21-%e4%b8%80%e5%8d%8a%e4%b8%80%e5%8d%8a">8.21 一半一半</h2>
<p>[music]32628084[/music]</p>
</div>
<p>谢谢你让我成为最幸福的小孩。</p>
<blockquote>
<div class="j-line">
<p class="f-ust f-ust-1">无论我选择何种未来</p>
</div>
<div class="j-line">
<p class="f-ust f-ust-1">无论你心中如何不安</p>
</div>
<div class="j-line">
<p class="f-ust f-ust-1">最后还是放弃了愤慨</p>
</div>
<div class="j-line">
<p class="f-ust f-ust-1">相信我已能独自承担</p>
</div>
<p>我回来了~~</p></blockquote>
<h2 id="8-22-%e9%9c%80%e8%a6%81%e4%ba%ba%e9%99%aa">8.22 需要人陪</h2>
<p>[music]25643291[/music]</p>
<p>一个我 需要梦想 需要方向 需要眼泪</p>
<div id="flag_more" class="">更需要 一个人来 点亮天的黑</div>
<h2 id="8-25-%e9%81%87%e8%a7%81%e4%b8%8e%e9%94%99%e8%bf%87">8.25 遇见与错过</h2>
<p>[music]486862638[/music]</p>
<p>越来越远呐~</p>
<h2 id="8-29-%e7%83%9f%e7%81%ab%e4%b8%8e%e5%91%8a%e7%99%bd">8.29 烟火与告白</h2>
<p>[music]486862719[/music]</p>
<div class="views-row views-row-5 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">等不到天黑， <span class="xqseartxt">烟火</span>不会太完美。</div>
<h2 id="8-31-unjust-life">8.31 unjust life</h2>
<p>[music]471942[/music]</p>
</div>
</div>
</div>
<p><a href="https://vki.cc/timershaft/music/554/">【音乐】2018.8 盛夏与蝉鸣</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/timershaft/music/554/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【音乐】2018.7 满夏与距离</title>
		<link>https://vki.cc/timershaft/music/533/</link>
					<comments>https://vki.cc/timershaft/music/533/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Tue, 03 Jul 2018 13:17:57 +0000</pubDate>
				<category><![CDATA[音乐推荐]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[音乐]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=533</guid>

					<description><![CDATA[<p>7.03 满夏与距离 [music]573795673[/music] 不知在下个盛夏，是否有你的陪伴。 7.06 夏天的思念 [music]491142223[/music] 想起你时毫不费力，忘记你却无能为力。 7.08 ALONE ON THE WAY [music]139718[/mus&#8230;</p>
<p><a href="https://vki.cc/timershaft/music/533/">【音乐】2018.7 满夏与距离</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2 id="7-03-%e6%bb%a1%e5%a4%8f%e4%b8%8e%e8%b7%9d%e7%a6%bb">7.03 满夏与距离</h2>
<p>[music]573795673[/music]</p>
<p>不知在下个盛夏，是否有你的陪伴。</p>
<h2 id="7-06-%e5%a4%8f%e5%a4%a9%e7%9a%84%e6%80%9d%e5%bf%b5">7.06 夏天的思念</h2>
<p>[music]491142223[/music]</p>
<div class="views-field-phpcode-1">想起你时毫不费力，<span class="xqseartxt">忘记你</span>却无能为力。</div>
<h2 id="7-08-alone-on-the-way">7.08 ALONE ON THE WAY</h2>
<div>[music]139718[/music]</div>
<div>
<p><span class="ask-title ">你看那个人,好奇怪哟,像一条狗。</span></p>
</div>
<h2 id="7-09-adagio-for-summer-wind" class="xqjulistwafo"> 7.09 Adagio for Summer Wind</h2>
<p>[music]760037[/music]</p>
<div class="views-row views-row-9 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">不是所有的鱼都生活在同一片海里，但是所有的星星却都曾在夜晚相遇。</div>
<h2 id="7-10-away"> 7.10 Away</h2>
<p>[music]502763464[/music]</p>
<div class="views-field-phpcode-1">灯已经关了，就看什么时候睡着了。</div>
<h2 id="7-11-tears-in-pink-rain">7.11 Tears In Pink Rain</h2>
<p>[music]5330805[/music]</p>
<div class="xqjulistwafo">
<div class="views-row views-row-5 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">等<span class="xqseartxt">雨</span>停的时候往往<span class="xqseartxt">雨</span>不会停，</div>
<div class="views-field-phpcode-1">等人来 的时候往往人不会来。</div>
<h2 id="7-12-%e5%be%ae%e5%85%89">7.12 微光</h2>
<p>[music]41462985[/music]</p>
<p>我需要一盏灯，看清前路的泥泞，我又怕光明，映出我褴褛的身影。</p>
<h2 id="7-13-%e7%8b%90%e8%a8%80">7.13 狐言</h2>
<p>[music]413831296[/music]</p>
<p>想<span class="xqseartxt">说</span>的不能<span class="xqseartxt">说</span>，能<span class="xqseartxt">说</span>的不想<span class="xqseartxt">说</span>。</p>
<blockquote><p>浪了十天了，该学习了 _(:з」∠)_</p>
<p>明天更新博客</p></blockquote>
<h2 id="7-15-%e5%90%8e%e6%9d%a5%e6%88%91%e5%90%ac%e8%af%b4%e4%bd%a0">7.15 后来我听说你</h2>
<p>[music]475238897[/music]</p>
<p>但愿。。有后来吧</p>
<h2 id="7-16-%e6%b8%85%e9%a3%8e%e5%a6%82%e6%95%85">7.16 清风如故</h2>
<p>[music]502539585[/music]</p>
<div class="views-row views-row-7 views-row-odd">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1"><span class="xqseartxt">风</span>把<span class="xqseartxt">风</span>吹走，灯把灯照亮。</div>
<h2 id="7-17-%e4%b8%8b%e9%9b%a8%e7%9a%84%e6%b1%9f%e5%8d%97%e7%ab%997%e5%8f%b7%e5%87%ba%e5%8f%a3">7.17 下雨的江南站7号出口</h2>
<p>[music]5330999[/music]</p>
<p>一落人间八九年,耳冷不曾闻此曲。</p>
<h2 id="7-21-%e5%a4%8f%e6%96%b0%e6%99%a8">7.21 夏新晨</h2>
<p>[music]487089933[/music]</p>
<div class="views-row views-row-2 views-row-even">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1"><span class="xqseartxt">夏</span>有彤云，蔚然成风。</div>
<h2 id="7-22-%e6%9c%aa%e5%8f%91%e8%a7%81%e7%9a%84%e5%bf%83%e4%b9%8b%e5%90%8d">7.22 未发见的心之名</h2>
<p>[music]498001853[/music]</p>
<div>风轻云淡写半句，往后余生尽是你。</div>
<h2 id="7-25-%e4%ba%91%e6%9d%91%e7%9a%84%e5%a4%8f%e5%8f%a5">7.25  云村的夏句</h2>
<p>[music]551029940[/music]</p>
<p>首夏犹清和，芳草亦未歇。</p>
<h2 id="7-26-%e8%8e%b2%e6%9c%89%e7%a7%80%e5%85%ae">7.26 莲有秀兮</h2>
<p>[music]866032176[/music]</p>
<p>莲有秀兮山有木，云起风生归路长。</p>
<h2 id="7-29-%e8%bf%9f%e8%bf%9f">7.29 迟迟</h2>
<p>[music]467090025[/music]</p>
<p>迟迟复迟迟，思卿卿未至。唯恐看信纸，常有泪痕湿。</p>
<h2 id="7-30-time-after-time">7.30 Time after time</h2>
<p>[music]413831242[/music]</p>
<p>愿所有操心的事情都有一个好结果ﾉ♡</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><a href="https://vki.cc/timershaft/music/533/">【音乐】2018.7 满夏与距离</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/timershaft/music/533/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【音乐】2018.6 Blue Dream</title>
		<link>https://vki.cc/timershaft/music/518/</link>
					<comments>https://vki.cc/timershaft/music/518/#respond</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Mon, 04 Jun 2018 14:16:26 +0000</pubDate>
				<category><![CDATA[音乐推荐]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[音乐]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=518</guid>

					<description><![CDATA[<p>6.04 blue dream [music]438306172[/music] 梦想是一个天真的词，实现梦想是一个残酷的词。 6.08 恋海 [music]455102872[/music] 风筝有风，海豚有海，我的存在在你之外。 6.09 开心病 [music]567807560[/mu&#8230;</p>
<p><a href="https://vki.cc/timershaft/music/518/">【音乐】2018.6 Blue Dream</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<h2 id="6-04-blue-dream">6.04 blue dream</h2>
<p>[music]438306172[/music]</p>
<p>梦想是一个天真的词，实现梦想是一个残酷的词。</p>
<h2 id="6-08-%e6%81%8b%e6%b5%b7">6.08 恋海</h2>
<p>[music]455102872[/music]</p>
<p>风筝有风，<span class="xqseartxt">海</span>豚有<span class="xqseartxt">海</span>，我的存在在你之外。</p>
<h2 id="6-09-%e5%bc%80%e5%bf%83%e7%97%85">6.09 开心病</h2>
<p>[music]567807560[/music]</p>
<p>希望快点好起来~</p>
<p><img  decoding="async"  class="alignleft wp-image-521 size-thumbnail"  src="https://cdn.vki.cc/wp-content/uploads/2018/06/3VRMZNJ8@FRA3LI@CT_M-150x150.png"  alt=""  width="150"  height="150" ></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2 id="6-12-%e5%b0%8f%e5%91%a8-%e9%a3%8e%e4%b9%8b%e9%a2%82">6.12 小周 &#8211; 风之颂</h2>
<p>[music]416385140[/music]</p>
<div class="views-field-phpcode-1">清风不离岁月不饶，余生有你陪我便好。</div>
<h2 id="6-13-rainy-dumplings" class="views-field-ops"> 6.13 Rainy Dumplings</h2>
<p>[music]572182643[/music]</p>
<div class="views-field-phpcode-1">清梦枕三千岁月 ，相思落半指流沙 。</div>
<h2 id="6-15-%e5%9c%a8%e4%bd%a0%e8%ba%ab%e8%be%b9">6.15 在你身边</h2>
<p>[music]492219052[/music]</p>
<div class="xqjulistwafo"> 想陪你看日出日落~</div>
<h2 id="6-17-%e9%a3%8e%e5%90%b9%e7%ab%b9%e6%b2%99">6.17 风吹竹沙</h2>
<p>[music]41665302[/music]</p>
<p>未等年少轻狂，已然阅尽沧桑。</p>
<h2 id="6-18-%e7%bf%bc%e3%82%92%e3%81%8f%e3%81%a0%e3%81%95%e3%81%84" class="views-field-ops"> 6.18 翼をください</h2>
<p>[music]408607[/music]</p>
<p>如果努力不能解决问题，那就更努力一点。</p>
<h2 id="6-20-light">6.20 Light</h2>
<p>[music]573318030[/music]</p>
<p>我想要去一个陌生的地方，那里都是陌生的人。</p>
<h2 id="6-22-%e6%b7%a1%e8%8a%b1%e8%90%bd%e5%8f%b6">6.22 淡花落叶</h2>
<p>[music]519597304[/music]</p>
<p>即使风尘仆仆，愿你我终有归途。</p>
<h2 id="6-23-%e7%a9%bf%e8%b6%8a%e6%97%b6%e7%a9%ba%e7%9a%84%e6%80%9d%e5%bf%b5">6.23 穿越时空的思念</h2>
<p>[music]419877515[/music]</p>
<div class="views-row views-row-3 views-row-odd">
<div class="views-field-phpcode"></div>
</div>
<div class="views-row views-row-4 views-row-even">
<div class="views-field-phpcode">
<div class="views-field-phpcode-1">世间凄苦，皆可辜负。</div>
</div>
</div>
<p><a href="https://vki.cc/timershaft/music/518/">【音乐】2018.6 Blue Dream</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/timershaft/music/518/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>《樱色伊始》开发日记</title>
		<link>https://vki.cc/greattruth/experience/499/</link>
					<comments>https://vki.cc/greattruth/experience/499/#comments</comments>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Sun, 06 May 2018 05:58:03 +0000</pubDate>
				<category><![CDATA[咸鱼心得]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity 3D]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[心得]]></category>
		<category><![CDATA[游戏]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=499</guid>

					<description><![CDATA[<p>&#160; 2018.5.6之前 这段时间主要是搭建框架，并完成了注册，登录，创建角色功能。 大致流程如下： 构思框架-&#62;设计服务端框架-&#62;设计通信协议-&#62;设计客户端框架-&#62;验证通信协议 由于这之前我并未&#8230;</p>
<p><a href="https://vki.cc/greattruth/experience/499/">《樱色伊始》开发日记</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<h2 id="2018-5-6%e4%b9%8b%e5%89%8d">2018.5.6之前</h2>
<p>这段时间主要是搭建框架，并完成了注册，登录，创建角色功能。</p>
<p>大致流程如下：</p>
<p><span style="color: #ff6600;">构思框架-&gt;设计服务端框架-&gt;设计通信协议-&gt;设计客户端框架-&gt;验证通信协议</span></p>
<p>由于这之前我并未有开发网络游戏的经验，所以这部分参考siki dalao的《丛林战争》和罗培羽dalao的《Unity 3D 网络游戏实战》，不过这两个项目跟《樱色伊始》需求有些出入，就综合了一下。</p>
<p>通信协议我分了四级，RequestCode &#8211;  ActionCode &#8211; ReturnCode &#8211; 内容</p>
<p><strong>服务端：</strong>首先通过RequestCode 在Dictionary中查找对应处理Class，然后通过反射机制查找ActionCode对应的method，ReturnCode就是简单的结果码，诸如Success，Fail之类。</p>
<p>最后跟的就是内容，比如如果是登录功能：</p>
<p>User &#8211; Login &#8211; None &#8211; Username + Password</p>
<p><strong>客户端：</strong>客户端维护了一个消息队列和委托Dictionary，在发送请求的同时处理返回结果的方法注册到Dictionary中。</p>
<p>客户端每帧处理若干条协议，通过Action匹配Dictionary中的委托。</p>
<p>服务端框架和客户端框架有些复杂，等之后我会再写篇文章进行详细解析。</p>
<p>// 设计协议的时候也有个坑，原型我是参考一本书的。刚开始使用没问题，后来在发送角色基本数据（协议数据比较长）的时候发现总会丢失4个字节的内容。</p>
<p>// 测来测去，最终发现是书上搞错了字符串的长度和字符串字节数组的长度。而这个bug在某些情况下又是不存在的。。</p>
<p>// 总之还是不要太相信“权威”</p>
<p><span style="color: #ff6600;">-&gt;实现创建，登录功能-&gt;实现选择，创建角色功能</span></p>
<p><span style="color: #ff6600;">-&gt;设计角色动作状态机</span></p>
<p>// 这个地方必须得吐槽下，没有合适的动作素材真难受，为了实现流畅的动作，我到处找素材，淘宝，论坛逛了一遍，始终没找到合适的。。</p>
<p>// 就现在用的动作还是从三套模型上抠出来的。。</p>
<p><span style="color: #ff6600;">-&gt;实现摄像机跟随角色的功能</span></p>
<p>// 这里有个细节，在实现摄像机自动拉近与被遮挡角色距离的时候，碰到射线无法检测部分物体的物品，后来发现是因为摄像机处于collider内部，而从内部发出的射线是无法检测collider边缘的。</p>
<p>// 换了下思路，改为从角色像摄像机方向发射射线，问题解决。</p>
<h2 id="2018-5-6">2018.5.6</h2>
<p>回头看了下前段时间写的代码，发现有部分已经快看不懂了。。（捂脸）</p>
<p>论注释的重要性</p>
<p>今天添加了删除角色功能，不过删除确认还没做，等开发到之后扔掉背包物品和退出游戏时一并做吧_(:з」∠)_</p>
<p>做了这么久，最让我头痛的还是模型动作的问题，除非我愿意去学习3dsmax或者有建模师帮我，不然我真的一点办法都没有。。</p>
<p>只能先将就着用了。。</p>
<p>希望到时候面试时dalao不要介意。。</p>
<h2 id="2018-5-7">2018.5.7</h2>
<p>今天是“沉重”的一天。。</p>
<p>让我担心的事最终还是发生了。。</p>
<p>设计客户端架构时经验不足，没有认真考虑到Unity执行脚本的生命周期而埋下的隐患，导致今天在改写功能的时候各种空指针引用。。</p>
<p>痛定思痛，花了点时间对核心脚本进行了重构，抛弃了先前的GameFacade脚本，并将其功能整合到了GameRoot脚本中。</p>
<p>暂时做如下设计</p>
<p><a href="https://cdn.vki.cc/wp-content/uploads/2018/05/SZFlowChart.png"><img  loading="lazy"  decoding="async"  class="size-full wp-image-508 aligncenter"  src="https://cdn.vki.cc/wp-content/uploads/2018/05/SZFlowChart.png"  alt=""  width="709"  height="814"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/05/SZFlowChart.png 709w, https://cdn.vki.cc/wp-content/uploads/2018/05/SZFlowChart-261x300.png 261w"  sizes="auto, (max-width: 709px) 100vw, 709px" ></a></p>
<p>不知道效果咋样，等下课了回去试试_(:з」∠)_</p>
<p>*****************</p>
<p>改写之后，无bug一遍过</p>
<p>看来新结构行得通2333</p>
<h2 id="2018-5-8-scene%e5%8a%a0%e8%bd%bd%e4%b8%8e%e5%88%87%e6%8d%a2">2018.5.8 Scene加载与切换</h2>
<p>今天试着做了下异步加载Scene功能_(:з」∠)_</p>
<p>目前游戏有四个Scene，加载流程如下</p>
<p><span style="color: #ff6600;">欢迎Scene -&gt; 登录与注册相关Scene -&gt; Load Scene -&gt; 游戏Scene</span></p>
<p>其中Load Scene是专门用来显示加载进度条的，比如说从Scene 1 到 Scene 2，</p>
<p>Scene 1 中使用SceneManager.LoadScene() 直接加载LoadScene（因为很小，只有进度条，所以可以做到秒加载）</p>
<p>然后在LoadScene中使用SceneManager.LoadSceneAsyc()异步加载Scene2 ，加载过程通过其返回值AsyncOperation中的progress参数获取加载进度。</p>
<p>需要注意的是SceneManager.LoadSceneAsyc()加载完毕默认会直接切换到目标Scene，如果想手动控制切换时机的话设置AsyncOperation.allowSceneActivation为false，等到需要切换时再设为true。另外<span style="text-decoration: underline;"><strong><span style="color: #000000; text-decoration: underline;">把allowSceneActivation设置为false后，Unity就只会加载场景到90%，剩下的10%要等到allowSceneActivation设置为true后才加载。</span></strong></span></p>
<h2 id="5-9-5-13">5.9 &#8211; 5.13</h2>
<p>最近心态有点不好 T T</p>
<p>不过已经缓过来了，明天继续！</p>
<h2 id="5-14">5.14</h2>
<p>做了些UI，比如角色属性，状态栏啥的，</p>
<p>还有设计了下地图</p>
<p>好像没啥好说的。。</p>
<h2 id="5-15-%e8%a7%92%e8%89%b2%e5%b1%9e%e6%80%a7%e8%af%bb%e5%8f%96">5.15 角色属性读取</h2>
<p>目前设计的是将角色不同等级的基础属性，比如HP，暴击率什么的做成Json文件保存在客户端。在生成角色或角色升级时进行加载。</p>
<p>（数值设计暂且不考虑）</p>
<p>后期装备也准备这样做，角色总属性 = 基础属性 + 装备属性；</p>
<p>放在本地可以减轻服务器的压力，当然这样做有个很大的缺点，数据容易被篡改（作弊）。。</p>
<p>将其保存在服务器数据库实现起来应该不会太难，不过暂时先这样用着 _(:з」∠)_</p>
<h2 id="5-16">5.16</h2>
<p>增加了“删除角色”确认对话框，防止误删除；</p>
<p>完善了角色状态的UI显示，并能根据登录角色加载不同的角色到游戏中；</p>
<p>制作了角色暴击特效（暴击时在角色背后生成一个“假人”）；</p>
<p>开始制作包裹系统，由于以前有做过这个东西，所以大部分用的都是原来的代码，改动下就可以用了；</p>
<p>大致结构如下（不完整）：<a href="https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory.png" target="_blank" rel="noopener"><img  loading="lazy"  decoding="async"  class="aligncenter wp-image-512 size-full"  src="https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory.png"  alt=""  width="1392"  height="943"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory.png 1392w, https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory-300x203.png 300w, https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory-768x520.png 768w, https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory-1024x694.png 1024w, https://cdn.vki.cc/wp-content/uploads/2018/05/UML_Client_Inventory-750x508.png 750w"  sizes="auto, (max-width: 1392px) 100vw, 1392px" ></a></p>
<h2 id="5-17">5.17</h2>
<p>新增了穿上、脱下装备以及同步属性面板的显示；</p>
<p>新增了使用药品，恢复HP，MP以及同步面板的显示；</p>
<p>重构基础战斗属性：HP，MP，攻击，命中率，穿刺，防御，闪避率，暴击率，暴击伤害为PropertiesModel类，并重载了其“+”，“-”操作符，使得两个PropertiesModel可以进行加减运算；</p>
<p>（使用场景，当穿戴一个装备时，角色的PropertiesModel+=装备的PropertiesModel）</p>
<p>角色持有3个PropertiesModel，一个为<strong>固定角色属性</strong>，一个为<strong>“装备属性和”</strong>，一个为<strong>总可变属性</strong>；</p>
<p>1.<strong>固定角色属性</strong>是指角色本身基础属性，由职业和等级决定；</p>
<p>2.<strong>“装备属性和”</strong>由角色所佩戴的装备决定，等于角色身上每件装备的PropertiesModel相加；</p>
<p>3.<strong>总可变属性</strong>由固定属性和“装备属性和”组成，其中的HP，MP字段会随着收到伤害，使用技能，使用药品等发生变化，主要用于战斗计算；</p>
<p>另外角色属性<strong>上限由固定角色属性</strong>和“装备属性和”构成，例如HP上限 = 基础HP + 装备HP，这个部分只有在装备发生变化时才会改变，战斗中收到伤害等情况下不会改变；</p>
<p><span style="color: #808080;">（穿上，脱下装备对HP，MP来说只会影响上限，当前HP也不会超过上限。例如角色当前HP为80/100，卸下了一个可以增加50HP的装备，HP变为50/50）</span></p>
<p>装备类物品在数据库中有个额外的标志位，“1”表示穿戴中，“0”表示未穿戴；</p>
<p><span style="color: #ff0000;">已知bug：</span></p>
<p><span style="color: #ff0000;">在某些情况下表示拾取中的物品的ItemUI会被Destroy，暂时没发现规律，也不知道怎么回事。。。</span></p>
<h2 id="5-18">5.18</h2>
<p>新增天气-雨天效果；</p>
<p>用粒子系统做的</p>
<p><a href="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211.png" target="_blank" rel="noopener"><img  loading="lazy"  decoding="async"  class="aligncenter wp-image-515 size-full"  src="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211.png"  alt=""  width="1078"  height="566"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211.png 1078w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211-300x158.png 300w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211-768x403.png 768w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211-1024x538.png 1024w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194211-750x394.png 750w"  sizes="auto, (max-width: 1078px) 100vw, 1078px" ></a><a href="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155.png" target="_blank" rel="noopener"><img  loading="lazy"  decoding="async"  class="aligncenter wp-image-514 size-full"  src="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155.png"  alt=""  width="1083"  height="597"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155.png 1083w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155-300x165.png 300w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155-768x423.png 768w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155-1024x564.png 1024w, https://cdn.vki.cc/wp-content/uploads/2018/05/20180518194155-750x413.png 750w"  sizes="auto, (max-width: 1083px) 100vw, 1083px" >emmm截图中雨滴看起来是矩形的，实际运行由于下落速度快还是挺好看的。。</a></p>
<p>顺便吐槽下剑灵的剧情。。</p>
<p><a href="https://cdn.vki.cc/wp-content/uploads/2018/05/6ZW6JO22MYT9DJJLTIJ.jpg" target="_blank" rel="noopener"><img  loading="lazy"  decoding="async"  class="aligncenter wp-image-516 size-full"  src="https://cdn.vki.cc/wp-content/uploads/2018/05/6ZW6JO22MYT9DJJLTIJ.jpg"  alt=""  width="505"  height="119"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/05/6ZW6JO22MYT9DJJLTIJ.jpg 505w, https://cdn.vki.cc/wp-content/uploads/2018/05/6ZW6JO22MYT9DJJLTIJ-300x71.jpg 300w"  sizes="auto, (max-width: 505px) 100vw, 505px" ></a></p>
<p>来个Happy Ending就那么难吗。。。</p>
<h2 id="5-19">5.19</h2>
<p>新增雨天音效，环境音效的播放；</p>
<p>新增小地图功能（具体做法可以看我之前的文章：<span style="text-decoration: underline; color: #0000ff;"><a style="color: #0000ff; text-decoration: underline;" href="https://vki.cc/greattruth/engine/342/">在Unity中制作小地图</a></span>）</p>
<p>新增商店功能，包括购买，出售物品及金钱的同步；</p>
<h2 id="5-20">5.20</h2>
<p>修复了出售商品时商品数量实际上不会减少的bug；</p>
<p>新增客户端与服务端的位置同步；</p>
<p>重构 PlayerController.cs 和 PlayerBattle.cs 合为Player.cs （历史总是惊人的相似）</p>
<p>重新设计了角色生成机制，为多人游戏做准备（脑阔痛）</p>
<h2 id="5-21">5.21</h2>
<p><span style="color: #808080;">说些题外话，sz做了这么久了，感觉自己的心境也在慢慢变化。</span></p>
<p><span style="color: #808080;">一开始只是想着做个属于自己的游戏，一步一步，一砖一瓦构建自己想要的游戏世界</span></p>
<p><span style="color: #808080;">但是现在，不知不觉把找工作当成了首要任务</span></p>
<p><span style="color: #808080;">经常担心这做不好，那做不好，面试官问起这个怎么办，做的不完美怎么办。。</span></p>
<p><span style="color: #808080;">有些时候真的对sz有了略微的恐惧心理 _(:з」∠)_</span></p>
<p><span style="color: #808080;">惭愧，可能是我对那个公司太喜欢了吧，很担心自己水平不够_(:з」∠)_</span></p>
<h2 id="5-22"><strong>5.22 &#8211; ~~~</strong></h2>
<p>临近期末，各科都要做期末项目设计和实验报告，答辩啥的，比较忙。。</p>
<p>暂时挂起。。</p>
<p><a href="https://vki.cc/greattruth/experience/499/">《樱色伊始》开发日记</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://vki.cc/greattruth/experience/499/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>CentOS下安装MySQL及相关设置</title>
		<link>https://vki.cc/greattruth/experience/484/</link>
		
		<dc:creator><![CDATA[白露]]></dc:creator>
		<pubDate>Fri, 13 Apr 2018 01:04:04 +0000</pubDate>
				<category><![CDATA[咸鱼心得]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[心得]]></category>
		<category><![CDATA[教程]]></category>
		<guid isPermaLink="false">http://www.icemaplen.com/?p=484</guid>

					<description><![CDATA[<p>系统环境：CentOS 6.8 64位 操作软件：XShell 6 安装MySQL 1.使用yum命令安装 yum install mysql-server -y 看到Complete，执行成功。 2.修改root密码 默认安装mysql后会自动给root用户创建一个密码（貌似是&#8230;</p>
<p><a href="https://vki.cc/greattruth/experience/484/">CentOS下安装MySQL及相关设置</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></description>
										<content:encoded><![CDATA[<div><span style="color: #808080;">系统环境：CentOS 6.8 64位</span></div>
<p><span style="color: #808080;">操作软件：XShell 6</span></p>
<h2 id="%e5%ae%89%e8%a3%85mysql"><span style="color: #000000;">安装MySQL</span></h2>
<div><span style="color: #000000;"><strong>1.使用yum命令安装</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">yum install mysql-server -y</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-468"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144249.jpg"  alt=""  width="454"  height="228"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144249.jpg 454w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144249-300x151.jpg 300w"  sizes="auto, (max-width: 454px) 100vw, 454px" ></span></div>
<div><span style="color: #000000;">看到Complete，执行成功。</span></div>
<div><span style="color: #000000;"><strong>2.修改root密码</strong></span></div>
<div><span style="color: #000000;">默认安装mysql后会自动给root用户创建一个密码（貌似是随机的），所以我们需要修改一下才能登陆。</span></div>
<div><span style="color: #000000;">首先修改mysql设置跳过登陆密码，使用命令</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">vim /etc/my.cnf</code></span></pre>
</div>
<div><span style="color: #000000;">使用这个命令之后会使用vim编辑器打开my.cnf文件，如下图所示</span></div>
<div><strong><span style="color: #ff0000;">注意接下来不要随意按键</span></strong></div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-469"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/564154849.jpg"  alt=""  width="549"  height="176"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/564154849.jpg 549w, https://cdn.vki.cc/wp-content/uploads/2018/04/564154849-300x96.jpg 300w"  sizes="auto, (max-width: 549px) 100vw, 549px" ></span></div>
<div><span style="color: #000000;">按下[kbd]I[/kbd]键，进入插入模式，在中间添加一句</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">skip-grant-tables</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-470"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144930.jpg"  alt=""  width="511"  height="204"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144930.jpg 511w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412144930-300x120.jpg 300w"  sizes="auto, (max-width: 511px) 100vw, 511px" ></span></div>
<div><span style="color: #000000;">然后按下[kbd]Esc[/kbd]键，输入</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">:wq</code></span></pre>
</div>
<div><span style="color: #000000;">回车。</span></div>
<div><span style="color: #000000;">这个的意思是保存并退出。</span></div>
<div><span style="color: #000000;"><strong>3.输入命令</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">service mysqld restart</code></span></pre>
</div>
<div><span style="color: #000000;">重启mysql</span></div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-471"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145222.jpg"  alt=""  width="491"  height="71"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145222.jpg 491w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145222-300x43.jpg 300w"  sizes="auto, (max-width: 491px) 100vw, 491px" ></span></div>
<div><span style="color: #000000;"><strong>4.输入命令</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">mysql -u root</code></span></pre>
</div>
<div><span style="color: #000000;">回车进入mysql</span></div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-472"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145420.jpg"  alt=""  width="567"  height="124"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145420.jpg 567w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145420-300x66.jpg 300w"  sizes="auto, (max-width: 567px) 100vw, 567px" ></span></div>
<div><span style="color: #000000;"><strong>5.输入命令</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="sql">USE mysql;
SELECT user,host FROM user;</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-473"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145607.jpg"  alt=""  width="525"  height="294"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145607.jpg 525w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412145607-300x168.jpg 300w"  sizes="auto, (max-width: 525px) 100vw, 525px" ></span></div>
<div><span style="color: #000000;">这时可以看到存着mysql用户名和密码的表（没显示密码）</span></div>
<div><span style="color: #000000;">输入命令更改密码</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="sql">UPDATE user SET password = password ( '新密码' ) WHERE user = 'root' ;</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-474"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150001.jpg"  alt=""  width="529"  height="58"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150001.jpg 529w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150001-300x33.jpg 300w"  sizes="auto, (max-width: 529px) 100vw, 529px" ></span></div>
<div><span style="color: #000000;"><strong>6.加下来打开之前修改过的mysql配置文件，注释掉之前添加的那行命令</strong></span></div>
<div><span style="color: #000000;">步骤同上</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">vim /etc/my.cnf</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-475"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150236.jpg"  alt=""  width="471"  height="195"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150236.jpg 471w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150236-300x124.jpg 300w"  sizes="auto, (max-width: 471px) 100vw, 471px" ></span></div>
<div><span style="color: #000000;"><strong>7.修改后重启mysql</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">service mysqld restart</code></span></pre>
</div>
<div><span style="color: #000000;"><strong>8.使用命令</strong></span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">mysql -u root -p</code></span></pre>
</div>
<div><span style="color: #000000;">输入密码就可以使用了。</span></div>
<h2 id="%e8%ae%be%e7%bd%ae%e8%bf%9c%e7%a8%8b%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90"><span style="color: #000000;">设置远程访问权限</span></h2>
<div><span style="color: #000000;">使用以上步骤安装好的mysql还无法远程访问，接下来为其设置远程访问权限</span></div>
<div><span style="color: #000000;">先看一下user表</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="sql">use mysql; select host,user,password from user;</code></span></pre>
</div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-476"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150845.jpg"  alt=""  width="440"  height="179"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150845.jpg 440w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412150845-300x122.jpg 300w"  sizes="auto, (max-width: 440px) 100vw, 440px" ></span></div>
<div><span style="color: #000000;">可以看到在user表中已创建的root用户。host字段表示登录的主机，其值可以用IP，也可用主机名，</span></div>
<div><span style="color: #000000;">有时想用本地IP登录，那么可以将以上的Host值改为自己的Ip即可。</span></div>
<div><span style="color: #000000;">接下来使用命令：</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="sql">grant all privileges on *.* to root@'%' identified by "密码";</code></span></pre>
</div>
<div><span style="color: #000000;">会发现表中新增了一条记录</span></div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-477"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151051.jpg"  alt=""  width="482"  height="245"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151051.jpg 482w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151051-300x152.jpg 300w"  sizes="auto, (max-width: 482px) 100vw, 482px" ></span></div>
<div><span style="color: #000000;">这个就是具有远程访问权限的user；</span></div>
<div><span style="color: #000000;">然后退出，使用命令</span></div>
<div>
<pre class="pure-highlightjs"><span style="color: #000000;"><code class="null">service mysqld restart</code></span></pre>
</div>
<div><span style="color: #000000;">重启mysql，就可以啦。</span></div>
<div><span style="color: #000000;"> </span></div>
<div><span style="color: #000000;">测试一下，OK</span></div>
<div><span style="color: #000000;"><img  loading="lazy"  decoding="async"  class="alignnone size-full wp-image-478"  src="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151322.jpg"  alt=""  width="402"  height="296"  srcset="https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151322.jpg 402w, https://cdn.vki.cc/wp-content/uploads/2018/04/20180412151322-300x221.jpg 300w"  sizes="auto, (max-width: 402px) 100vw, 402px" ></span></div>
<h2 id="%e5%88%9b%e5%bb%ba%e7%94%a8%e6%88%b7">创建用户</h2>
<pre class="pure-highlightjs"><code class="sql">CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; </code></pre>
<p>username &#8211; 你将创建的用户名, host &#8211; 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password &#8211; 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.</p>
<h2 id="%e6%8e%88%e6%9d%83%e7%94%a8%e6%88%b7">授权用户</h2>
<pre class="pure-highlightjs"><code class="sql">GRANT privileges ON 数据库名.表名TO '用户名'@'主机' </code></pre>
<p>privileges &#8211; 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename &#8211; 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.</p>
<p><strong>注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: </strong></p>
<pre class="pure-highlightjs"><code class="sql">GRANT privileges ON 数据库名.表名 TO '用户名'@'主机' WITH GRANT OPTION; </code></pre>
<h2 id="%e8%ae%be%e7%bd%ae%e4%b8%8e%e6%9b%b4%e6%94%b9%e7%94%a8%e6%88%b7%e5%af%86%e7%a0%81"><strong>设置与更改用户密码 </strong></h2>
<pre class="pure-highlightjs"><code class="sql">SET PASSWORD FOR '用户名'@'主机' = PASSWORD('新密码');</code></pre>
<p>如果是当前登陆用户用</p>
<pre class="pure-highlightjs"><code class="sql">SET PASSWORD = PASSWORD("新密码");</code></pre>
<h2 id="%e6%92%a4%e9%94%80%e7%94%a8%e6%88%b7%e6%9d%83%e9%99%90"><strong>撤销用户权限 </strong></h2>
<pre class="pure-highlightjs"><code class="sql">REVOKE privilege ON 数据库名.表名FROM '用户名'@'主机'; </code></pre>
<p>注意: 假如你在给用户&#8217;pig&#8217;@&#8217;%&#8217;授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO &#8216;pig&#8217;@&#8217;%&#8217;, 则在使用REVOKE SELECT ON *.* FROM &#8216;pig&#8217;@&#8217;%&#8217;;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO &#8216;pig&#8217;@&#8217;%&#8217;;则REVOKE SELECT ON test.user FROM &#8216;pig&#8217;@&#8217;%&#8217;;命令也不能撤销该用户对test数据库中user表的Select 权限.</p>
<h2 id="%e5%88%a0%e9%99%a4%e7%94%a8%e6%88%b7"><strong>删除用户</strong></h2>
<pre class="pure-highlightjs"><code class="sql">DROP USER '用户名'@'主机'; </code></pre>
<p>&nbsp;</p>
<p><!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tJZCI6Ijk4NjYtMTUyMzUxNzgyNjk2MCIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi57O7Iiwic3R5bGVzIjp7ImNvbG9yIjoiIzgwODA4MCJ9fSx7ImNoYXIiOiLnu58iLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IueOryIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoi5aKDIiwic3R5bGVzIjp7ImNvbG9yIjoiIzgwODA4MCJ9fSx7ImNoYXIiOiLvvJoiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IkMiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6Ik8iLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IlMiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IjYiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6Ii4iLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IjgiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IjYiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IjQiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IuS9jSIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTI3MS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLmk40iLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6IuS9nCIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoi6L2vIiwic3R5bGVzIjp7ImNvbG9yIjoiIzgwODA4MCJ9fSx7ImNoYXIiOiLku7YiLCJzdHlsZXMiOnsiY29sb3IiOiIjODA4MDgwIn19LHsiY2hhciI6Iu+8miIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiWCIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiUyIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiaCIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX0seyJjaGFyIjoiNiIsInN0eWxlcyI6eyJjb2xvciI6IiM4MDgwODAifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTI0OS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLlrokiLCJzdHlsZXMiOnsiYm9sZCI6dHJ1ZSwiZm9udC1zaXplIjoyNCwiY29sb3IiOiIjMzMzMzMzIn19LHsiY2hhciI6IuijhSIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX0seyJjaGFyIjoiTSIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX0seyJjaGFyIjoieSIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX0seyJjaGFyIjoiUyIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX0seyJjaGFyIjoiUSIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX0seyJjaGFyIjoiTCIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0LCJjb2xvciI6IiMzMzMzMzMifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNzMzNS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiIxIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6IuS9vyJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6InkifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoibSJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuS7pCJ9LHsiY2hhciI6IuWuiSJ9LHsiY2hhciI6IuijhSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijk2MTEtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoieSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ1Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJpIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJsIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ5Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJsIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTExMy0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsid2lkdGgiOjQ1NCwiaGVpZ2h0IjoyMjgsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiIwNTU3OTU4RjkxQzQ0MkI1QkY2QzMxN0YyOTM2NTkzMyIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiNjM1NS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLnnIsifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiJDIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaJpyJ9LHsiY2hhciI6IuihjCJ9LHsiY2hhciI6IuaIkCJ9LHsiY2hhciI6IuWKnyJ9LHsiY2hhciI6IuOAgiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjI0NTYtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiMiJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiLkv64ifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoi5a+GIn0seyJjaGFyIjoi56CBIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMzk1MS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLpu5gifSx7ImNoYXIiOiLorqQifSx7ImNoYXIiOiLlrokifSx7ImNoYXIiOiLoo4UifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6IuWQjiJ9LHsiY2hhciI6IuS8miJ9LHsiY2hhciI6IuiHqiJ9LHsiY2hhciI6IuWKqCJ9LHsiY2hhciI6Iue7mSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLmiLcifSx7ImNoYXIiOiLliJsifSx7ImNoYXIiOiLlu7oifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlr4YifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLvvIgifSx7ImNoYXIiOiLosowifSx7ImNoYXIiOiLkvLwifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLpmo8ifSx7ImNoYXIiOiLmnLoifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLvvIkifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmiYAifSx7ImNoYXIiOiLku6UifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLku6wifSx7ImNoYXIiOiLpnIAifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLkv64ifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLmiY0ifSx7ImNoYXIiOiLog70ifSx7ImNoYXIiOiLnmbsifSx7ImNoYXIiOiLpmYYifSx7ImNoYXIiOiLjgIIifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI4NjUwLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IummliJ9LHsiY2hhciI6IuWFiCJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InEifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoi6K6+In0seyJjaGFyIjoi572uIn0seyJjaGFyIjoi6LezIn0seyJjaGFyIjoi6L+HIn0seyJjaGFyIjoi55m7In0seyJjaGFyIjoi6ZmGIn0seyJjaGFyIjoi5a+GIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5ZG9In0seyJjaGFyIjoi5LukIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNzQ5My0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiJ2Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Ii8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJjIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI0NTcyLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IuS9vyJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuS7pCJ9LHsiY2hhciI6IuS5iyJ9LHsiY2hhciI6IuWQjiJ9LHsiY2hhciI6IuS8miJ9LHsiY2hhciI6IuS9vyJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6InYifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6Iue8liJ9LHsiY2hhciI6Iui+kSJ9LHsiY2hhciI6IuWZqCJ9LHsiY2hhciI6IuaJkyJ9LHsiY2hhciI6IuW8gCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiZiJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWmgiJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6IuWbviJ9LHsiY2hhciI6IuaJgCJ9LHsiY2hhciI6IuekuiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjQwOTUtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5rOoIiwic3R5bGVzIjp7ImNvbG9yIjoiI2ZmMDAwMCJ9fSx7ImNoYXIiOiLmhI8iLCJzdHlsZXMiOnsiY29sb3IiOiIjZmYwMDAwIn19LHsiY2hhciI6IuaOpSIsInN0eWxlcyI6eyJjb2xvciI6IiNmZjAwMDAifX0seyJjaGFyIjoi5LiLIiwic3R5bGVzIjp7ImNvbG9yIjoiI2ZmMDAwMCJ9fSx7ImNoYXIiOiLmnaUiLCJzdHlsZXMiOnsiY29sb3IiOiIjZmYwMDAwIn19LHsiY2hhciI6IuS4jSIsInN0eWxlcyI6eyJjb2xvciI6IiNmZjAwMDAifX0seyJjaGFyIjoi6KaBIiwic3R5bGVzIjp7ImNvbG9yIjoiI2ZmMDAwMCJ9fSx7ImNoYXIiOiLpmo8iLCJzdHlsZXMiOnsiY29sb3IiOiIjZmYwMDAwIn19LHsiY2hhciI6IuaEjyIsInN0eWxlcyI6eyJjb2xvciI6IiNmZjAwMDAifX0seyJjaGFyIjoi5oyJIiwic3R5bGVzIjp7ImNvbG9yIjoiI2ZmMDAwMCJ9fSx7ImNoYXIiOiLplK4iLCJzdHlsZXMiOnsiY29sb3IiOiIjZmYwMDAwIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjIwNDAtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7IndpZHRoIjo1NDksImhlaWdodCI6MTc2LCJhbGlnbiI6ImxlZnQiLCJmbG9hdCI6Im5vbmUifSwidHlwZSI6ImltYWdlIiwic291cmNlIjoiNEREMzcwMEM2RTBFNDIxNUJEMzdCM0VGODNGNTlFRjYiLCJ0aXRsZSI6IiJ9LHsiYmxvY2tJZCI6IjQwOTQtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5oyJIn0seyJjaGFyIjoi5LiLIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6ImsifSx7ImNoYXIiOiJiIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6Il0ifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoiWyJ9LHsiY2hhciI6Ii8ifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiYiJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiJdIn0seyJjaGFyIjoi6ZSuIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi6L+bIn0seyJjaGFyIjoi5YWlIn0seyJjaGFyIjoi5o+SIn0seyJjaGFyIjoi5YWlIn0seyJjaGFyIjoi5qihIn0seyJjaGFyIjoi5byPIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi6Ze0In0seyJjaGFyIjoi5re7In0seyJjaGFyIjoi5YqgIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5Y+lIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTc4Mi0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImsiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJwIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Ii0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTczMC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsid2lkdGgiOjUxMSwiaGVpZ2h0IjoyMDQsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiI3QTBDMDAyQTlEQ0M0OTBGQjNGMkQ3ODFEQThEODRCNyIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiODc5NC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLnhLYifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLmjIkifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiJbIn0seyJjaGFyIjoiayJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6IkUifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiYyJ9LHsiY2hhciI6IlsifSx7ImNoYXIiOiIvIn0seyJjaGFyIjoiayJ9LHsiY2hhciI6ImIifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoiXSJ9LHsiY2hhciI6IumUriJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWFpSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjI1NzMtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiOiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ3Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiOTc4MS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLlm54ifSx7ImNoYXIiOiLovaYifSx7ImNoYXIiOiLjgIIifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIzMDkxLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiaW5kZW50IjoxLCJhbGlnbiI6ImxlZnQiLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6Iui/mSJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaEjyJ9LHsiY2hhciI6IuaAnSJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuS/nSJ9LHsiY2hhciI6IuWtmCJ9LHsiY2hhciI6IuW5tiJ9LHsiY2hhciI6IumAgCJ9LHsiY2hhciI6IuWHuiJ9LHsiY2hhciI6IuOAgiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjI2ODAtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiMyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiLovpMifSx7ImNoYXIiOiLlhaUifSx7ImNoYXIiOiLlkb0ifSx7ImNoYXIiOiLku6QifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIyNDAwLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InYiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJjIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJxIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiYSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiOTE0Ny0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLlkK8ifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjUwODctMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7IndpZHRoIjo0OTEsImhlaWdodCI6NzEsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiIzOTRGNDBEQjBFNkM0NEJDQTY1OUI1N0M0NEIyNURDNyIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiNDI4MS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI0In0seyJjaGFyIjoiLiJ9LHsiY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWFpSJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuS7pCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjEwNDYtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoibSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ5Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJsIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ1Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJvIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIxNTUwLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IuWbniJ9LHsiY2hhciI6Iui9piJ9LHsiY2hhciI6Iui/myJ9LHsiY2hhciI6IuWFpSJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InEifSx7ImNoYXIiOiJsIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTkxNC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsid2lkdGgiOjU2NywiaGVpZ2h0IjoxMjQsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiJERDkxRUI0NzY4MzE0NUVBOTg1QUQ2NkY5ODAzQTgwQyIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiMTA4MC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI1In0seyJjaGFyIjoiLiJ9LHsiY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWFpSJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuS7pCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjIxNjQtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiVSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJTIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IkUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJxIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiOyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIwMDE3LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IlMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiRSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJMIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IkUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiQyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJUIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIsIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJGIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IlIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiTyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJNIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiI7Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjExMzAtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7IndpZHRoIjo1MjUsImhlaWdodCI6Mjk0LCJhbGlnbiI6ImxlZnQiLCJmbG9hdCI6Im5vbmUifSwidHlwZSI6ImltYWdlIiwic291cmNlIjoiOTdDMzI2NDNDRENCNDJDOEFEMkZCQTU3RUE3REE5OEUiLCJ0aXRsZSI6IiJ9LHsiYmxvY2tJZCI6IjIyNjctMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi6L+ZIn0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi5LulIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi5a2YIn0seyJjaGFyIjoi552AIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6InkifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoicSJ9LHsiY2hhciI6ImwifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLmiLcifSx7ImNoYXIiOiLlkI0ifSx7ImNoYXIiOiLlkowifSx7ImNoYXIiOiLlr4YifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLooagifSx7ImNoYXIiOiLvvIgifSx7ImNoYXIiOiLmsqEifSx7ImNoYXIiOiLmmL4ifSx7ImNoYXIiOiLnpLoifSx7ImNoYXIiOiLlr4YifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLvvIkifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI5ODM3LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWFpSJ9LHsiY2hhciI6IuWRvSJ9LHsiY2hhciI6IuS7pCJ9LHsiY2hhciI6IuabtCJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6IuWvhiJ9LHsiY2hhciI6IueggSJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjY0ODQtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJVIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IlAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiRCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJBIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IlQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiRSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJTIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IkUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiVCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiYSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJvIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Ij0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJwIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InciLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIoIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiJyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiLmlrAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoi5a+GIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IueggSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiInIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiKSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IlciLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiSCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJFIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IlIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiRSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiI9Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiJyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiciLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiI7Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjM3NDktMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7IndpZHRoIjo1MjksImhlaWdodCI6NTgsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiI2NzZFNTc1QzU3MTg0MTUxODNCOTg5RkVDNzkyOTg2NyIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiOTE2My0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiI2In0seyJjaGFyIjoiLiJ9LHsiY2hhciI6IuWKoCJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6IuadpSJ9LHsiY2hhciI6IuaJkyJ9LHsiY2hhciI6IuW8gCJ9LHsiY2hhciI6IuS5iyJ9LHsiY2hhciI6IuWJjSJ9LHsiY2hhciI6IuS/riJ9LHsiY2hhciI6IuaUuSJ9LHsiY2hhciI6Iui/hyJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6Im0ifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InEifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoi6YWNIn0seyJjaGFyIjoi572uIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5rOoIn0seyJjaGFyIjoi6YeKIn0seyJjaGFyIjoi5o6JIn0seyJjaGFyIjoi5LmLIn0seyJjaGFyIjoi5YmNIn0seyJjaGFyIjoi5re7In0seyJjaGFyIjoi5YqgIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi6YKjIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi5ZG9In0seyJjaGFyIjoi5LukIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTgzNy0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLmraUifSx7ImNoYXIiOiLpqqQifSx7ImNoYXIiOiLlkIwifSx7ImNoYXIiOiLkuIoifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI2NzI1LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6InYiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiYyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIvIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoieSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIuIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJmIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijk5NzgtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6ImltYWdlIiwic3R5bGVzIjp7IndpZHRoIjo0NzEsImhlaWdodCI6MTk1LCJhbGlnbiI6ImxlZnQiLCJmbG9hdCI6Im5vbmUifSwidHlwZSI6ImltYWdlIiwic291cmNlIjoiMzhCODg4RUE0NEJENEQ3OEE2NzZBNjQ0OEIzRDdCNjAiLCJ0aXRsZSI6IiJ9LHsiYmxvY2tJZCI6IjY3ODgtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiNyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiLkv64ifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLlkK8ifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjYyMjgtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJpIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im0iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoieSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJkIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI1MzgwLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IjgifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5ZG9In0seyJjaGFyIjoi5LukIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNTA2OC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJxIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiItIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJwIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6Ijg0MjQtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi6L6TIn0seyJjaGFyIjoi5YWlIn0seyJjaGFyIjoi5a+GIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi5LulIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi44CCIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNjU3Ny0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLorr4iLCJzdHlsZXMiOnsiYm9sZCI6dHJ1ZSwiZm9udC1zaXplIjoyNH19LHsiY2hhciI6Iue9riIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0fX0seyJjaGFyIjoi6L+cIiwic3R5bGVzIjp7ImJvbGQiOnRydWUsImZvbnQtc2l6ZSI6MjR9fSx7ImNoYXIiOiLnqIsiLCJzdHlsZXMiOnsiYm9sZCI6dHJ1ZSwiZm9udC1zaXplIjoyNH19LHsiY2hhciI6IuiuvyIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0fX0seyJjaGFyIjoi6ZeuIiwic3R5bGVzIjp7ImJvbGQiOnRydWUsImZvbnQtc2l6ZSI6MjR9fSx7ImNoYXIiOiLmnYMiLCJzdHlsZXMiOnsiYm9sZCI6dHJ1ZSwiZm9udC1zaXplIjoyNH19LHsiY2hhciI6IumZkCIsInN0eWxlcyI6eyJib2xkIjp0cnVlLCJmb250LXNpemUiOjI0fX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMjc1MC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLku6UifSx7ImNoYXIiOiLkuIoifSx7ImNoYXIiOiLmraUifSx7ImNoYXIiOiLpqqQifSx7ImNoYXIiOiLlrokifSx7ImNoYXIiOiLoo4UifSx7ImNoYXIiOiLlpb0ifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6Iui/mCJ9LHsiY2hhciI6IuaXoCJ9LHsiY2hhciI6IuazlSJ9LHsiY2hhciI6Iui/nCJ9LHsiY2hhciI6IueoiyJ9LHsiY2hhciI6IuiuvyJ9LHsiY2hhciI6IumXriJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuaOpSJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6IuadpSJ9LHsiY2hhciI6IuS4uiJ9LHsiY2hhciI6IuWFtiJ9LHsiY2hhciI6IuiuviJ9LHsiY2hhciI6Iue9riJ9LHsiY2hhciI6Iui/nCJ9LHsiY2hhciI6IueoiyJ9LHsiY2hhciI6IuiuvyJ9LHsiY2hhciI6IumXriJ9LHsiY2hhciI6IuadgyJ9LHsiY2hhciI6IumZkCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjY1MTEtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5YWIIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5LiLIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6IuihqCJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjM4MzctMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoidSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJxIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiOyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJcbiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImgiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiLCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ1Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ3Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJkIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiOyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI1Mjg4LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJpbWFnZSIsInN0eWxlcyI6eyJ3aWR0aCI6NDQwLCJoZWlnaHQiOjE3OSwiYWxpZ24iOiJsZWZ0IiwiZmxvYXQiOiJub25lIn0sInR5cGUiOiJpbWFnZSIsInNvdXJjZSI6IkQ2MDY5OEMxNzZDNjQ2MTA5MzAyNUREQzIwNzA5Njg0IiwidGl0bGUiOiIifSx7ImJsb2NrSWQiOiIxOTg3LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6IuWPryJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IueciyJ9LHsiY2hhciI6IuWIsCJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiLooagifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLlt7IifSx7ImNoYXIiOiLliJsifSx7ImNoYXIiOiLlu7oifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5oi3In0seyJjaGFyIjoi44CCIn0seyJjaGFyIjoiaCJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoidCJ9LHsiY2hhciI6IuWtlyJ9LHsiY2hhciI6IuautSJ9LHsiY2hhciI6IuihqCJ9LHsiY2hhciI6IuekuiJ9LHsiY2hhciI6IueZuyJ9LHsiY2hhciI6IuW9lSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuS4uyJ9LHsiY2hhciI6IuacuiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWFtiJ9LHsiY2hhciI6IuWAvCJ9LHsiY2hhciI6IuWPryJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IueUqCJ9LHsiY2hhciI6IkkifSx7ImNoYXIiOiJQIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5LmfIn0seyJjaGFyIjoi5Y+vIn0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5Li7In0seyJjaGFyIjoi5py6In0seyJjaGFyIjoi5ZCNIn0seyJjaGFyIjoi77yMIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNzI0Mi0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLmg7MifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLmnKwifSx7ImNoYXIiOiLlnLAifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoiUCJ9LHsiY2hhciI6IueZuyJ9LHsiY2hhciI6IuW9lSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IumCoyJ9LHsiY2hhciI6IuS5iCJ9LHsiY2hhciI6IuWPryJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IuWwhiJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IuS4iiJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IkgifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiLlgLwifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLoh6oifSx7ImNoYXIiOiLlt7EifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiJJIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6IuWNsyJ9LHsiY2hhciI6IuWPryJ9LHsiY2hhciI6IuOAgiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjgwNjktMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5o6lIn0seyJjaGFyIjoi5LiLIn0seyJjaGFyIjoi5p2lIn0seyJjaGFyIjoi5L2/In0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoi5ZG9In0seyJjaGFyIjoi5LukIn0seyJjaGFyIjoi77yaIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiMTg2Ny0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImciLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiciIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJhIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im4iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImEiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJsIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoidiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJpIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJnIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJuIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiKiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIuIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IioiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6Im8iLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoibyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ0Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IkAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiJyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIlIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiciLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJpIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJuIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJmIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJkIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiYiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJ5Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IiAiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiXCIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoi5a+GIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6IueggSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJcIiIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiI7Iiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjUwNTEtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoi5LyaIn0seyJjaGFyIjoi5Y+RIn0seyJjaGFyIjoi546wIn0seyJjaGFyIjoi6KGoIn0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi5pawIn0seyJjaGFyIjoi5aKeIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi5p2hIn0seyJjaGFyIjoi6K6wIn0seyJjaGFyIjoi5b2VIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiODk2NS0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsid2lkdGgiOjQ4MiwiaGVpZ2h0IjoyNDUsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiI0NzY0RjQ5NTFDMEE0Q0MzQjRBQzYxRjU3MTM4RUYzQSIsInRpdGxlIjoiIn0seyJibG9ja0lkIjoiMjQ5Ny0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLov5kifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLlhbcifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLov5wifSx7ImNoYXIiOiLnqIsifSx7ImNoYXIiOiLorr8ifSx7ImNoYXIiOiLpl64ifSx7ImNoYXIiOiLmnYMifSx7ImNoYXIiOiLpmZAifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoicyJ9LHsiY2hhciI6ImUifSx7ImNoYXIiOiJyIn0seyJjaGFyIjoi77ybIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiNDkwMC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLnhLYifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLpgIAifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLlkb0ifSx7ImNoYXIiOiLku6QifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiI4MDcyLTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6InMiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InYiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiaSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJjIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImUiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiICIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJtIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InkiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoicyIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJxIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6ImwiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZCIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiIgIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InIiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiZSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJzIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX0seyJjaGFyIjoiYSIsInN0eWxlcyI6eyJmb250LWZhbWlseSI6Im1vbm9zcGFjZSJ9fSx7ImNoYXIiOiJyIiwic3R5bGVzIjp7ImZvbnQtZmFtaWx5IjoibW9ub3NwYWNlIn19LHsiY2hhciI6InQiLCJzdHlsZXMiOnsiZm9udC1mYW1pbHkiOiJtb25vc3BhY2UifX1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiOTAxMC0xNTIzNTE3ODI3Njc3IiwiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiOiLph40ifSx7ImNoYXIiOiLlkK8ifSx7ImNoYXIiOiJtIn0seyJjaGFyIjoieSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJxIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuWwsSJ9LHsiY2hhciI6IuWPryJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IuWVpiJ9LHsiY2hhciI6IuOAgiJ9XSwiaXNSaWNoVGV4dCI6dHJ1ZSwia2VlcExpbmVCcmVhayI6dHJ1ZX19LHsiYmxvY2tJZCI6IjIwMzQtMTUyMzUxNzgyNzY3NyIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sInR5cGUiOiJwYXJhZ3JhcGgiLCJyaWNoVGV4dCI6eyJkYXRhIjpbeyJjaGFyIjoiwqAifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fSx7ImJsb2NrSWQiOiIyNDk2LTE1MjM1MTc4Mjc2NzciLCJibG9ja1R5cGUiOiJwYXJhZ3JhcGgiLCJzdHlsZXMiOnsiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzV9LCJ0eXBlIjoicGFyYWdyYXBoIiwicmljaFRleHQiOnsiZGF0YSI6W3siY2hhciI6Iua1iyJ9LHsiY2hhciI6IuivlSJ9LHsiY2hhciI6IuS4gCJ9LHsiY2hhciI6IuS4iyJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6Ik8ifSx7ImNoYXIiOiJLIn1dLCJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlfX0seyJibG9ja0lkIjoiOTk5Ny0xNTIzNTgwNzA3NzY5IiwiYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsid2lkdGgiOjQwMiwiaGVpZ2h0IjoyOTYsImFsaWduIjoibGVmdCIsImZsb2F0Ijoibm9uZSJ9LCJ0eXBlIjoiaW1hZ2UiLCJzb3VyY2UiOiJDM0Y2OEZCQzc4OUU0Qzk1QTU4Mjc4RjFCQzIwNjFDRSIsInRpdGxlIjoiIn1d--></p>
<p><a href="https://vki.cc/greattruth/experience/484/">CentOS下安装MySQL及相关设置</a>最先出现在<a href="https://vki.cc">初晴神社</a>。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
