<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>158892</bug_id>
          
          <creation_ts>2016-06-17 15:58:10 -0700</creation_ts>
          <short_desc>Switching on symbols should be fast</short_desc>
          <delta_ts>2016-07-21 02:43:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203462</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-17 15:58:10 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203464</commentid>
    <comment_count>1</comment_count>
      <attachid>281595</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-17 15:59:35 -0700</bug_when>
    <thetext>Created attachment 281595
something like this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203598</commentid>
    <comment_count>2</comment_count>
      <attachid>281620</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 16:44:03 -0700</bug_when>
    <thetext>Created attachment 281620
maybe the patch

This does the trick.

What&apos;s sad about this is that this optimization really belongs in lower tiers, but currently it&apos;s not feasible to do it in DFG IR.  You really need B3 IR to do it.  But without the optimization, the code runs so incredibly slow that it takes a long time to get to FTL.

It&apos;s starting to become quite clear that we need tier-up checks in straight-line code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203628</commentid>
    <comment_count>3</comment_count>
      <attachid>281622</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-19 12:56:05 -0700</bug_when>
    <thetext>Created attachment 281622
better patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203642</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-19 16:46:51 -0700</bug_when>
    <thetext>Looks like this has a bug:

stress/float64-array-nan-inlined.js.default: test_script_12303: line 2: 55586 Segmentation fault: 11  ( &quot;$@&quot; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --useFunctionDotArguments\=true float64-array-nan-inlined.js )
stress/float64-array-nan-inlined.js.default: ERROR: Unexpected exit code: 139

Maybe it&apos;s latent so I&apos;m still testing without the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203650</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-19 17:09:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Looks like this has a bug:
&gt; 
&gt; stress/float64-array-nan-inlined.js.default: test_script_12303: line 2:
&gt; 55586 Segmentation fault: 11  ( &quot;$@&quot;
&gt; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false
&gt; --useFunctionDotArguments\=true float64-array-nan-inlined.js )
&gt; stress/float64-array-nan-inlined.js.default: ERROR: Unexpected exit code: 139
&gt; 
&gt; Maybe it&apos;s latent so I&apos;m still testing without the patch.

Wait, it has to be latent!  It&apos;s a non-FTL test and this patch only changes FTL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203914</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-20 15:23:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Looks like this has a bug:
&gt; &gt; 
&gt; &gt; stress/float64-array-nan-inlined.js.default: test_script_12303: line 2:
&gt; &gt; 55586 Segmentation fault: 11  ( &quot;$@&quot;
&gt; &gt; ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false
&gt; &gt; --useFunctionDotArguments\=true float64-array-nan-inlined.js )
&gt; &gt; stress/float64-array-nan-inlined.js.default: ERROR: Unexpected exit code: 139
&gt; &gt; 
&gt; &gt; Maybe it&apos;s latent so I&apos;m still testing without the patch.
&gt; 
&gt; Wait, it has to be latent!  It&apos;s a non-FTL test and this patch only changes
&gt; FTL.

Yeah, it was an unrelated bug, and I fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205413</commentid>
    <comment_count>7</comment_count>
      <attachid>282086</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-25 20:10:17 -0700</bug_when>
    <thetext>Created attachment 282086
awesome patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205414</commentid>
    <comment_count>8</comment_count>
      <attachid>282087</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-25 20:12:23 -0700</bug_when>
    <thetext>Created attachment 282087
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212278</commentid>
    <comment_count>9</comment_count>
      <attachid>283979</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 22:43:51 -0700</bug_when>
    <thetext>Created attachment 283979
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212280</commentid>
    <comment_count>10</comment_count>
      <attachid>283980</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 22:54:38 -0700</bug_when>
    <thetext>Created attachment 283980
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212281</commentid>
    <comment_count>11</comment_count>
      <attachid>283980</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 23:06:18 -0700</bug_when>
    <thetext>Comment on attachment 283980
the patch

Oh man, this doesn&apos;t quite work!  Fixing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212292</commentid>
    <comment_count>12</comment_count>
      <attachid>283981</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-19 00:16:01 -0700</bug_when>
    <thetext>Created attachment 283981
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212294</commentid>
    <comment_count>13</comment_count>
      <attachid>283981</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-19 00:23:33 -0700</bug_when>
    <thetext>Comment on attachment 283981
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=283981&amp;action=review

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:439
&gt; +            // put them. We&apos;re not actually smart enough things to move things around at random.

&quot;smart enough things&quot; =&gt; &quot;smart enough&quot;

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:466
&gt; +            if (m_blockInsertionSet.execute() | m_changedCFG) {

Should be &quot;||&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212406</commentid>
    <comment_count>14</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-19 10:11:21 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 283981 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283981&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:439
&gt; &gt; +            // put them. We&apos;re not actually smart enough things to move things around at random.
&gt; 
&gt; &quot;smart enough things&quot; =&gt; &quot;smart enough&quot;

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:466
&gt; &gt; +            if (m_blockInsertionSet.execute() | m_changedCFG) {
&gt; 
&gt; Should be &quot;||&quot;

That was sort of deliberate.  I wanted to emphasize that every subexpression should execute for side-effects.  I changed it to:

m_changedCFG |= m_blockInsertionSet.execute();
if (m_changedCFG) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212489</commentid>
    <comment_count>15</comment_count>
      <attachid>284037</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-19 13:18:46 -0700</bug_when>
    <thetext>Created attachment 284037
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212551</commentid>
    <comment_count>16</comment_count>
      <attachid>284059</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-19 15:09:25 -0700</bug_when>
    <thetext>Created attachment 284059
performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212841</commentid>
    <comment_count>17</comment_count>
      <attachid>284037</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-07-20 12:26:16 -0700</bug_when>
    <thetext>Comment on attachment 284037
the patch

r=me. Out of curiosity does this optimization kick in if the user doesn&apos;t write a switch explicitly? If so, maybe it would be worth adding a test. For example:

if (a === sym1)
    ...
if (a === sym2)
    ...
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212998</commentid>
    <comment_count>18</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-20 19:28:46 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Comment on attachment 284037 [details]
&gt; the patch
&gt; 
&gt; r=me. Out of curiosity does this optimization kick in if the user doesn&apos;t
&gt; write a switch explicitly? If so, maybe it would be worth adding a test. For
&gt; example:
&gt; 
&gt; if (a === sym1)
&gt;     ...
&gt; if (a === sym2)
&gt;     ...
&gt; ...

It does kick in for this!  Good idea, I will add a test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213047</commentid>
    <comment_count>19</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-20 22:42:02 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; Comment on attachment 284037 [details]
&gt; &gt; the patch
&gt; &gt; 
&gt; &gt; r=me. Out of curiosity does this optimization kick in if the user doesn&apos;t
&gt; &gt; write a switch explicitly? If so, maybe it would be worth adding a test. For
&gt; &gt; example:
&gt; &gt; 
&gt; &gt; if (a === sym1)
&gt; &gt;     ...
&gt; &gt; if (a === sym2)
&gt; &gt;     ...
&gt; &gt; ...
&gt; 
&gt; It does kick in for this!  Good idea, I will add a test for it.

Yeah, I wrote a test like this - basically a scripted rewrite of bigswitch-indirect-symbol to use if - and it gets a speed-up from this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213059</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-20 23:24:23 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/203491</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281595</attachid>
            <date>2016-06-17 15:59:35 -0700</date>
            <delta_ts>2016-06-18 16:44:03 -0700</delta_ts>
            <desc>something like this</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13293</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIw
MjE3OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODIsNiArODIsNyBAQCB2b2lkIGdlbmVyYXRlVG9BaXIoUHJvY2VkdXJlJiBw
cm9jZWR1cmUsCiAgICAgICAgIHJlZHVjZURvdWJsZVRvRmxvYXQocHJvY2VkdXJlKTsKICAgICAg
ICAgcmVkdWNlU3RyZW5ndGgocHJvY2VkdXJlKTsKICAgICAgICAgZWxpbWluYXRlQ29tbW9uU3Vi
ZXhwcmVzc2lvbnMocHJvY2VkdXJlKTsKKyAgICAgICAgLy9pbmZlclN3aXRjaGVzKHByb2NlZHVy
ZSk7CiAgICAgICAgIGR1cGxpY2F0ZVRhaWxzKHByb2NlZHVyZSk7CiAgICAgICAgIGZpeFNTQShw
cm9jZWR1cmUpOwogICAgICAgICBmb2xkUGF0aENvbnN0YW50cyhwcm9jZWR1cmUpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDI3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNJbmZl
clN3aXRjaGVzLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Js
b2NrSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNJ
bnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCisjaW5jbHVk
ZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eworCituYW1lc3BhY2UgeworCitjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworY2xhc3Mg
SW5mZXJTd2l0Y2hlcyB7CitwdWJsaWM6CisgICAgSW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHBy
b2MpCisgICAgICAgIDogbV9wcm9jKHByb2MpCisgICAgICAgICwgbV9pbnNlcnRpb25TZXQocHJv
YykKKyAgICAgICAgLCBtX3VzZUNvdW50cyhwcm9jKQorICAgIHsKKyAgICB9CisgICAgCisgICAg
Ym9vbCBydW4oKQorICAgIHsKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAg
Ym9vbCBldmVyQ2hhbmdlZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAg
ICAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3Ig
KEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKQorICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
YXR0ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3IoYmxvY2spOworCisgICAgICAgICAgICBldmVy
Q2hhbmdlZCB8PSBjaGFuZ2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZXZl
ckNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAg
ICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgIG1fcHJvYy5kZWxl
dGVPcnBoYW5zKCk7IC8vIFdlJ3JlIHNsb3BweSBhYm91dCBvcnBoYW5zLCBzbyB3ZSBmaXggdGhh
dCBoZXJlLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCitwcml2YXRlOgorICAgIGJvb2wgYXR0
ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3IoQmFzaWNCbG9jayogYmxvY2spCisgICAgeworICAg
ICAgICAvLyBObyBwb2ludCBpbiBjb25zaWRlcmluZyB0aGUgcm9vdCBibG9jay4gV2UgYWxzbyBk
b24ndCBjb25zaWRlciBibG9ja3Mgd2l0aCBtdWx0aXBsZQorICAgICAgICAvLyBwcmVkZWNlc3Nv
cnMsIGJ1dCB3ZSBjb3VsZCBoYW5kbGUgdGhpcyBpZiB3ZSBtYWRlIHRoaXMgY29kZSBhIGJpdCBt
b3JlIGdlbmVyYWwgYW5kIHdlIHdlcmUKKyAgICAgICAgLy8gbm90IGFmcmFpZCBvZiBjb2RlIGJs
b2F0LgorICAgICAgICBpZiAoYmxvY2stPm51bVByZWRlY2Vzc29ycygpICE9IDEpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbiA9IGRlc2NyaWJlKGJsb2NrKTsKKyAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIC8vIFdlIGtub3cg
dGhhdCB0aGlzIGJsb2NrIGJlaGF2ZXMgbGlrZSBhIHN3aXRjaC4gQnV0IHdlIG5lZWQgdG8gdmVy
aWZ5IHRoYXQgaXQgZG9lc24ndCBhbHNvCisgICAgICAgIC8vIHBlcmZvcm0gYW55IGVmZmVjdHMg
b3IgZG8gZXhwZW5zaXZlIHRoaW5ncy4gV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBzd2l0Y2gg
aWYgdGhhdCB3aWxsCisgICAgICAgIC8vIG1ha2UgZXhwZW5zaXZlIHRoaW5ncyBleGVjdXRlIHVu
Y29uZGl0aW9uYWxseS4gV2UncmUgdmVyeSBjb25zZXJ2YXRpdmUgYWJvdXQgaG93IHdlIGRlZmlu
ZQorICAgICAgICAvLyAiZXhwZW5zaXZlIi4KKyAgICAgICAgYm9vbCBoYXNFeHBlbnNpdmVUaGlu
Z3MgPSBmYWxzZTsKKyAgICAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqYmxvY2spIHsKKyAgICAg
ICAgICAgIGlmICh2YWx1ZS0+aXNDb25zdGFudCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgaWYgKHZhbHVlID09IGRlc2NyaXB0aW9uLmV4dHJhKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09IGRlc2NyaXB0aW9uLmJy
YW5jaCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3Ig
PSBibG9jay0+cHJlZGVjZXNzb3IoMCk7CisgICAgICAgIFN3aXRjaERlc2NyaXB0aW9uIHByZWRl
Y2Vzc29yRGVzY3JpcHRpb24gPSBkZXNjcmliZShwcmVkZWNlc3Nvcik7CisgICAgICAgIGlmICgh
cHJlZGVjZXNzb3JEZXNjcmlwdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgCisgICAgICAgIC8vIEJvdGggdXMgYW5kIHRoZSBwcmVkZWNlc3NvciBhcmUgc3dpdGNoLWxp
a2UsIGJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0IHdlJ3JlIGNvbXBhdGlibGUuCisgICAgICAg
IC8vIFdlIG1heSBiZSBzd2l0Y2hpbmcgb24gZGlmZmVyZW50IHZhbHVlcyEKKyAgICAgICAgaWYg
KGRlc2NyaXB0aW9uLnNvdXJjZSAhPSBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLnNvdXJjZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIC8vIFdlIGV4cGVjdCB0
aGF0IHdlIGFyZSB0aGUgZmFsbC10aHJvdWdoIGRlc3RpbmF0aW9uIG9mIHRoZSBwcmVkZWNlc3Nv
ci4gVGhpcyBpcyBhIGJpdCBvZiBhCisgICAgICAgIC8vIGdvb2Z5IGNvbmRpdGlvbi4gSWYgd2Ug
d2VyZSBub3QgdGhlIGZhbGwtdGhyb3VnaCBkZXN0aW5hdGlvbiB0aGVuIG91ciBzd2l0Y2ggaXMg
cHJvYmFibHkKKyAgICAgICAgLy8ganVzdCB0b3RhbGx5IHJlZHVuZGFudCBhbmQgd2Ugc2hvdWxk
IGJlIGdldHRpbmcgcmlkIG9mIGl0LiBCdXQgd2UgZG9uJ3QgaGFuZGxlIHRoYXQgaGVyZSwKKyAg
ICAgICAgLy8geWV0LgorICAgICAgICBpZiAocHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpICE9IGJsb2NrKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlcmUgYWluJ3Qgbm8gbG9vcHMuCisgICAg
ICAgIGlmIChkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaC5ibG9jaygpID09IGJsb2NrCisgICAgICAg
ICAgICB8fCBkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaC5ibG9jaygpID09IHByZWRlY2Vzc29yKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNo
Q2FzZSA6IGRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBpZiAoc3dpdGNoQ2FzZS50
YXJnZXRCbG9jaygpID09IGJsb2NrCisgICAgICAgICAgICAgICAgfHwgc3dpdGNoQ2FzZS50YXJn
ZXRCbG9jaygpID09IHByZWRlY2Vzc29yKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vz
c29yRGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0Y2hDYXNlLnRhcmdl
dEJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hDYXNlLnRhcmdldEJs
b2NrKCkgPT0gcHJlZGVjZXNzb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBXZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcgdGhl
IHRoaW5nLgorICAgICAgICAKKyAgICAgICAgLy8gSW5zZXJ0IGFsbCBub24tdGVybWluYWwgdmFs
dWVzIGZyb20gb3VyIGJsb2NrIGludG8gb3VyIHByZWRlY2Vzc29yLiBXZSBkZWZpbml0ZWx5IG5l
ZWQgdG8KKyAgICAgICAgLy8gZG8gdGhpcyBmb3IgY29uc3RhbnRzLiBXZSBkbyB0aGlzIGZvciBv
dGhlciB2YWx1ZXMgYXMgYSBjb25zZXJ2YXRpdmUgdGhpbmc6IHdlIHNob3VsZCBoYXZlCisgICAg
ICAgIC8vIHByb3ZlZCB0aGF0IGFueSBub24tY29uc3RhbnRzIGFyZSB1c2VkLW9uY2UgZnJvbSB0
aGUgYnJhbmNoLCBidXQgaWYgdGhpcyBmYWlscyBmb3Igc29tZQorICAgICAgICAvLyByZWFzb24s
IHRoZW4gd2Ugd2FudCB0byBzdGlsbCBlbWl0IHNvdW5kIGNvZGUuCisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQorICAgICAgICAgICAgbV9p
bnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUocHJlZGVjZXNzb3ItPnNpemUoKSAtIDEsIGJsb2NrLT5h
dChpKSk7CisgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUocHJlZGVjZXNzb3IpOworICAg
ICAgICBibG9jay0+dmFsdWVzKCkucmVzaXplKDApOworICAgICAgICBibG9jay0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gtPm9yaWdpbigp
KTsKKyAgICAgICAgYmxvY2stPnJlbW92ZVByZWRlY2Vzc29yKHByZWRlY2Vzc29yKTsKKyAgICAg
ICAgCisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sgOiBkZXNjcmlwdGlv
bi5icmFuY2gtPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgc3VjY2Vzc29yQmxvY2st
PnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcHJlZGVjZXNzb3IpOworICAgICAgICAKKyAgICAg
ICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcHJlZGVjZXNzb3ItPnJlcGxhY2VMYXN0V2l0
aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAgICAgICBtX3Byb2MsIHByZWRlY2Vzc29yLT5sYXN0
KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5zb3VyY2UsIGRlc2NyaXB0aW9uLmZhbGxUaHJvdWdo
KTsKKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxpbnQ2NF90PiBwcmVkZWNlc3NvckNhc2VzOwor
ICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vzc29yRGVzY3JpcHRp
b24uY2FzZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKHN3aXRjaENh
c2UpOworICAgICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcy5hcHBlbmQoc3dpdGNoQ2FzZS5jYXNl
VmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjpzb3J0KHByZWRlZXNzb3JDYXNlcy5i
ZWdpbigpLCBwcmVkZWNlc3NvckNhc2VzLmVuZCgpKTsKKyAgICAgICAgYXV0byBpc1ByZWRlY2Vz
c29yQ2FzZSA9IFsmXSAoaW50NjRfdCB2YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgICAgICByZXR1
cm4gISF0cnlCaW5hcnlTZWFyY2g8aW50NjRfdD4oCisgICAgICAgICAgICAgICAgcHJlZGVjZXNz
b3JDYXNlcywgcHJlZGVjZXNzb3JDYXNlcy5zaXplKCksIHZhbHVlLAorICAgICAgICAgICAgICAg
IFtdIChpbnQ2NF90KiBlbGVtZW50KSAtPiBpbnQ2NF90IHsgcmV0dXJuICplbGVtZW50OyB9KTsK
KyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNl
IDogZGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmICghaXNQcmVkZWNlc3NvckNh
c2Uoc3dpdGNoQ2FzZS5jYXNlVmFsdWUoKSkpCisgICAgICAgICAgICAgICAgc3dpdGNoVmFsdWUt
PmFwcGVuZENhc2Uoc3dpdGNoQ2FzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgc3RydWN0IFN3aXRjaERlc2NyaXB0aW9uIHsKKyAgICAgICAgU3dpdGNo
RGVzY3JpcHRpb24oKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiAhIWJsb2NrOyB9CisgICAgICAgIAorICAg
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgb3V0LnByaW50KAorICAgICAgICAgICAgICAgICJ7YmxvY2sgPSAiLCBwb2ludGVyRHVt
cChibG9jayksCisgICAgICAgICAgICAgICAgIiwgYnJhbmNoID0gIiwgcG9pbnRlckR1bXAoYnJh
bmNoKSwKKyAgICAgICAgICAgICAgICAiLCBleHRyYSA9ICIsIHBvaW50ZXJEdW1wKGV4dHJhKSwK
KyAgICAgICAgICAgICAgICAiLCBzb3VyY2UgPSAiLCBwb2ludGVyRHVtcChzb3VyY2UpLAorICAg
ICAgICAgICAgICAgICIsIGNhc2VzID0gIiwgbGlzdER1bXAoY2FzZXMpLAorICAgICAgICAgICAg
ICAgICIsIGZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91Z2gsICJ9Iik7CisgICAgICAgIH0KKwor
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayB7IG51bGxwdHIgfTsKKyAgICAgICAgQ29udHJvbFZh
bHVlKiBicmFuY2ggeyBudWxscHRyIH07CisgICAgICAgIFZhbHVlKiBleHRyYSB7IG51bGxwdHIg
fTsgLy8gVGhpcyBpcyB0aGUgRXF1YWwgb3IgTm90RXF1YWwgdmFsdWUsIGlmIGFwcGxpY2FibGUu
CisgICAgICAgIFZhbHVlKiBzb3VyY2UgeyBudWxscHRyIH07CisgICAgICAgIFZlY3RvcjxTd2l0
Y2hDYXNlLCAxPiBjYXNlczsKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoOwor
ICAgIH07CisgICAgCisgICAgU3dpdGNoRGVzY3JpcHRpb24gZGVzY3JpYmUoQmFzaWNCbG9jayog
YmxvY2spCisgICAgeworICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiByZXN1bHQ7CisgICAgICAg
IHJlc3VsdC5ibG9jayA9IGJsb2NrOworICAgICAgICByZXN1bHQuYnJhbmNoID0gbV9ibG9jay0+
bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKHJl
c3VsdC5icmFuY2gtPm9wY29kZSgpKSB7CisgICAgICAgIGNhc2UgQnJhbmNoOiB7CisgICAgICAg
ICAgICBWYWx1ZSogcHJlZGljYXRlID0gcmVzdWx0LmJyYW5jaC0+Y2hpbGQoMCk7CisgICAgICAg
ICAgICBGcmVxdWVudGVkQmxvY2sgdGFrZW4gPSByZXN1bHQuYnJhbmNoLT50YWtlbigpOworICAg
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIG5vdFRha2VuID0gcmVzdWx0LmJyYW5jaC0+bm90VGFr
ZW4oKTsKKyAgICAgICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYg
KHByZWRpY2F0ZS0+Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV91c2VD
b3VudHMocHJlZGljYXRlKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChwcmVkaWNh
dGUtPm9wY29kZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFcXVhbDoKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7CisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hpbGQoMSktPmhhc0lu
dCgpLCB0YWtlbikpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuZmFsbFRocm91Z2ggPSBu
b3RUYWtlbjsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTm90RXF1YWw6CisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdC5zb3VyY2UgPSBwcmVkaWNhdGUtPmNoaWxkKDApOworICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuZXh0cmEgPSBwcmVkaWNhdGU7CisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5jYXNlcy5hcHBlbmQoU3dpdGNoQ2FzZShwcmVkaWNhdGUtPmNoaWxkKDEpLT5o
YXNJbnQoKSwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJv
dWdoID0gdGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoaGFuZGxlZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IHJlc3VsdC5zb3VyY2UgPSBwcmVkaWNhdGU7CisgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBw
ZW5kKFN3aXRjaENhc2UoMCwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhy
b3VnaCA9IHRha2VuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBjYXNlIFN3aXRjaDogeworICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRj
aFZhbHVlID0gbV9icmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpOworICAgICAgICAgICAgcmVzdWx0
LnNvdXJjZSA9IHN3aXRjaFZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGZvciAoU3dpdGNo
Q2FzZSBzd2l0Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIHJlc3VsdC5j
YXNlcy5hcHBlbmQoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICByZXN1bHQuZmFsbFRocm91Z2gg
PSBzd2l0Y2hWYWx1ZS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGFmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdC5i
bG9jayA9IG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQuYnJhbmNoID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBQcm9jZWR1cmUmIG1fcHJvYzsKKyAgICBJbnNlcnRpb25T
ZXQgbV9pbnNlcnRpb25TZXQ7CisgICAgVXNlQ291bnRzIG1fdXNlQ291bnRzOworfTsKKworfSAv
LyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2Jvb2wgaW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHBy
b2MpCit7CisgICAgUGhhc2VTY29wZSBwaGFzZVNjb3BlKHByb2MsICJpbmZlclN3aXRjaGVzIik7
CisgICAgSW5mZXJTd2l0Y2hlcyBpbmZlclN3aXRjaGVzKHByb2MpOworICAgIHJldHVybiBpbmZl
clN3aXRjaGVzLnJ1bigpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlm
IC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0lu
ZmVyU3dpdGNoZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJ
bmZlclN3aXRjaGVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNJbmZlclN3aXRjaGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzSW5mZXJT
d2l0Y2hlc19oCisjZGVmaW5lIEIzSW5mZXJTd2l0Y2hlc19oCisKKyNpZiBFTkFCTEUoQjNfSklU
KQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUHJvY2VkdXJlOwor
CisvLyBGaXhwb2ludHMgdG8gY29udmVydCBjaGFpbnMgb2YgYnJhbmNoZXMgaW50byBzd2l0Y2hl
cy4KKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYpOworCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzSW5mZXJT
d2l0Y2hlc19oCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281620</attachid>
            <date>2016-06-18 16:44:03 -0700</date>
            <delta_ts>2016-06-19 12:56:05 -0700</delta_ts>
            <desc>maybe the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31274</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMjE5OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTI4LDYgKzEyOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNG
cmVxdWVuY3lDbGFzcy5jcHAKICAgICBiMy9CM0dlbmVyYXRlLmNwcAogICAgIGIzL0IzSGVhcFJh
bmdlLmNwcAorICAgIGIzL0IzSW5mZXJTd2l0Y2hlcy5jcHAKICAgICBiMy9CM0luc2VydGlvblNl
dC5jcHAKICAgICBiMy9CM0xlZ2FsaXplTWVtb3J5T2Zmc2V0cy5jcHAKICAgICBiMy9CM0xvd2Vy
TWFjcm9zLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIw
MjE5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTkzLDYgKzE5OTMsOCBAQAogCQlE
QzYwNUI1RjFDRTI2RUE1MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4
IC8qIFByb2ZpbGVyVUlELmNwcCAqLzsgfTsKIAkJREM2MDVCNjAxQ0UyNkVBNzAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzY5QUE2NjFDRjdBMUYy
MDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0
LmNwcCAqLzsgfTsKKwkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5
Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLzsgfTsKKwkJREM2
OUI5OUQxRDE1RjkxNDAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAw
IC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovOyB9OwogCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkg
LyogVGFnUmVnaXN0ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzc5
OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MTFDREU5RjlFMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi87IH07CiAJCURDRUUyMjA5MUNFQjk4OTUwMDBD
MjM5NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHND
RkcuaCAqLzsgfTsKQEAgLTQyMTIsNiArNDIxNCw4IEBACiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5
MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJ
RC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5m
ZXJTd2l0Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0lu
ZmVyU3dpdGNoZXMuY3BwOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJT
d2l0Y2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0luZmVyU3dpdGNo
ZXMuaDsgcGF0aCA9IGIzL0IzSW5mZXJTd2l0Y2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjIw
NjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0NGRy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcyMyw2ICs0NzI3LDggQEAK
IAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCAqLywKIAkJCQkw
RkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oICovLAogCQkJCTBGRUM4NEQy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8sCisJCQkJREM2OUI5OUExRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8sCisJCQkJREM2OUI5OUIxRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovLAogCQkJCTBGRUM4NUI0MUJFMTQ2MkYw
MDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8sCiAJCQkJMEZFQzg1QjUxQkUxNDYyRjAw
ODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggKi8sCiAJCQkJMEZFQzg1QjYxQkUxNDYyRjAwODBG
Rjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oICovLApAQCAtNzUxMSw2ICs3NTE3LDcgQEAK
IAkJCQlBNUVBNzEwNDE5RjZERTcyMDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rp
c3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRjY0RUFGMzFD
NEVDRDA2MDA2MjFFOUIgLyogQWlyQXJnSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVF
QTcxMDUxOUY2REU3NDAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9oZWFk
ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlEQzY5Qjk5RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNjE5RjZERTc2MDA5OEY1
RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2ltcGxlbWVudGF0aW9uLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3QzM5RkYxQzkwQzU1QjAwNDgwMTUxIC8qIERGR09wSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDcxOUY2REU3ODAwOThGNUVDIC8qIGdlbmVyYXRlX29i
amNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKQEAg
LTg2NzcsNiArODY4NCw3IEBACiAJCQkJMEZFQzg1MDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hl
Y2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTA3MUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDkxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNjlCOTlDMUQx
NUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxp
emVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyMTk4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5oIgogI2luY2x1
ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNGb2xkUGF0aENvbnN0YW50cy5oIgorI2luY2x1
ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgogI2luY2x1ZGUgIkIzTGVnYWxpemVNZW1vcnlPZmZzZXRz
LmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvcy5oIgogI2luY2x1ZGUgIkIzTG93ZXJNYWNyb3NB
ZnRlck9wdGltaXphdGlvbnMuaCIKQEAgLTgyLDYgKzgzLDcgQEAgdm9pZCBnZW5lcmF0ZVRvQWly
KFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgICAgICByZWR1Y2VEb3VibGVUb0Zsb2F0KHByb2Nl
ZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0cmVuZ3RoKHByb2NlZHVyZSk7CiAgICAgICAgIGVsaW1p
bmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zKHByb2NlZHVyZSk7CisgICAgICAgIGluZmVyU3dpdGNo
ZXMocHJvY2VkdXJlKTsKICAgICAgICAgZHVwbGljYXRlVGFpbHMocHJvY2VkdXJlKTsKICAgICAg
ICAgZml4U1NBKHByb2NlZHVyZSk7CiAgICAgICAgIGZvbGRQYXRoQ29uc3RhbnRzKHByb2NlZHVy
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNo
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzE3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCM0luZmVyU3dpdGNoZXMuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNp
bmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM1BoYXNlU2NvcGUu
aCIKKyNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZh
bHVlLmgiCisjaW5jbHVkZSAiQjNVc2VDb3VudHMuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKworbmFtZXNwYWNlIHsKKworY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisK
K2NsYXNzIEluZmVyU3dpdGNoZXMgeworcHVibGljOgorICAgIEluZmVyU3dpdGNoZXMoUHJvY2Vk
dXJlJiBwcm9jKQorICAgICAgICA6IG1fcHJvYyhwcm9jKQorICAgICAgICAsIG1faW5zZXJ0aW9u
U2V0KHByb2MpCisgICAgICAgICwgbV91c2VDb3VudHMocHJvYykKKyAgICB7CisgICAgfQorICAg
IAorICAgIGJvb2wgcnVuKCkKKyAgICB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgZGF0YUxvZygiQjMgYmVmb3JlIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAg
ICAKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgYm9vbCBldmVyQ2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAgICAgICAgICAgY2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKQorICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gYXR0ZW1wdFRvTWVyZ2VX
aXRoUHJlZGVjZXNzb3IoYmxvY2spOworCisgICAgICAgICAgICBldmVyQ2hhbmdlZCB8PSBjaGFu
Z2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZXZlckNoYW5nZWQpIHsKKyAg
ICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAgICAgICAgICAgbV9wcm9j
LmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2UncmUgc3Vw
ZXIgc2xvcHB5IGFib3V0IGxlYXZpbmcgYmVoaW5kIGRlYWQgY29kZS4gRml4IHRoYXQgbm93Lgor
ICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZU9ycGhhbnMoKTsKKyAgICAgICAgICAgIG1fcHJvYy5l
bGltaW5hdGVEZWFkQ29kZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJCMyBhZnRlciBpbmZlclN3aXRjaGVzOlxuIiwg
bV9wcm9jKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBib29sIGF0
dGVtcHRUb01lcmdlV2l0aFByZWRlY2Vzc29yKEJhc2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAg
ICAgICAgLy8gTm8gcG9pbnQgaW4gY29uc2lkZXJpbmcgdGhlIHJvb3QgYmxvY2suIFdlIGFsc28g
ZG9uJ3QgY29uc2lkZXIgYmxvY2tzIHdpdGggbXVsdGlwbGUKKyAgICAgICAgLy8gcHJlZGVjZXNz
b3JzLCBidXQgd2UgY291bGQgaGFuZGxlIHRoaXMgaWYgd2UgbWFkZSB0aGlzIGNvZGUgYSBiaXQg
bW9yZSBnZW5lcmFsIGFuZCB3ZSB3ZXJlCisgICAgICAgIC8vIG5vdCBhZnJhaWQgb2YgY29kZSBi
bG9hdC4KKyAgICAgICAgaWYgKGJsb2NrLT5udW1QcmVkZWNlc3NvcnMoKSAhPSAxKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24g
ZGVzY3JpcHRpb24gPSBkZXNjcmliZShibG9jayk7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgZGF0YUxvZygiRGVzY3JpcHRpb24gb2YgcHJpbWFyeSBibG9jayAiLCAqYmxvY2ss
ICI6ICIsIGRlc2NyaXB0aW9uLCAiXG4iKTsKKyAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikgewor
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJh
aWxpbmcgYmVjYXVzZSBub3Qgc3dpdGNoLWxpa2UuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gV2Uga25vdyB0aGF0IHRoaXMg
YmxvY2sgYmVoYXZlcyBsaWtlIGEgc3dpdGNoLiBCdXQgd2UgbmVlZCB0byB2ZXJpZnkgdGhhdCBp
dCBkb2Vzbid0IGFsc28KKyAgICAgICAgLy8gcGVyZm9ybSBhbnkgZWZmZWN0cyBvciBkbyBleHBl
bnNpdmUgdGhpbmdzLiBXZSBkb24ndCB3YW50IHRvIGNyZWF0ZSBhIHN3aXRjaCBpZiB0aGF0IHdp
bGwKKyAgICAgICAgLy8gbWFrZSBleHBlbnNpdmUgdGhpbmdzIGV4ZWN1dGUgdW5jb25kaXRpb25h
bGx5LiBXZSdyZSB2ZXJ5IGNvbnNlcnZhdGl2ZSBhYm91dCBob3cgd2UgZGVmaW5lCisgICAgICAg
IC8vICJleHBlbnNpdmUiLgorICAgICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICpibG9jaykgewor
ICAgICAgICAgICAgaWYgKHZhbHVlLT5pc0ZyZWUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBkZXNjcmlwdGlvbi5leHRyYSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBkZXNjcmlwdGlvbi5i
cmFuY2gpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG9mICIsIGRl
ZXBEdW1wKG1fcHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgPSBi
bG9jay0+cHJlZGVjZXNzb3IoMCk7CisgICAgICAgIFN3aXRjaERlc2NyaXB0aW9uIHByZWRlY2Vz
c29yRGVzY3JpcHRpb24gPSBkZXNjcmliZShwcmVkZWNlc3Nvcik7CisgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIERlc2NyaXB0aW9uIG9mIHByZWRlY2Vzc29y
IGJsb2NrICIsICpwcmVkZWNlc3NvciwgIjogIiwgcHJlZGVjZXNzb3JEZXNjcmlwdGlvbiwgIlxu
Iik7CisgICAgICAgIGlmICghcHJlZGVjZXNzb3JEZXNjcmlwdGlvbikgeworICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVz
ZSBub3Qgc3dpdGNoLWxpa2UuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQm90aCB1cyBhbmQgdGhlIHByZWRlY2Vzc29yIGFy
ZSBzd2l0Y2gtbGlrZSwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHRoYXQgd2UncmUgY29tcGF0aWJs
ZS4KKyAgICAgICAgLy8gV2UgbWF5IGJlIHN3aXRjaGluZyBvbiBkaWZmZXJlbnQgdmFsdWVzIQor
ICAgICAgICBpZiAoZGVzY3JpcHRpb24uc291cmNlICE9IHByZWRlY2Vzc29yRGVzY3JpcHRpb24u
c291cmNlKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIHNvdXJjZXMgZG9uJ3QgbWF0Y2guXG4iKTsKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gV2Ug
ZXhwZWN0IHRoYXQgd2UgYXJlIHRoZSBmYWxsLXRocm91Z2ggZGVzdGluYXRpb24gb2YgdGhlIHBy
ZWRlY2Vzc29yLiBUaGlzIGlzIGEgYml0IG9mIGEKKyAgICAgICAgLy8gZ29vZnkgY29uZGl0aW9u
LiBJZiB3ZSB3ZXJlIG5vdCB0aGUgZmFsbC10aHJvdWdoIGRlc3RpbmF0aW9uIHRoZW4gb3VyIHN3
aXRjaCBpcyBwcm9iYWJseQorICAgICAgICAvLyBqdXN0IHRvdGFsbHkgcmVkdW5kYW50IGFuZCB3
ZSBzaG91bGQgYmUgZ2V0dGluZyByaWQgb2YgaXQuIEJ1dCB3ZSBkb24ndCBoYW5kbGUgdGhhdCBo
ZXJlLAorICAgICAgICAvLyB5ZXQuCisgICAgICAgIGlmIChwcmVkZWNlc3NvckRlc2NyaXB0aW9u
LmZhbGxUaHJvdWdoLmJsb2NrKCkgIT0gYmxvY2spIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2UgZmFsbC10aHJv
dWdoIG9mIHByZWRlY2Vzc29yIGlzIG5vdCB0aGUgcHJpbWFyeSBibG9jay5cbiIpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBNYWtl
IHN1cmUgdGhhdCB0aGVyZSBhaW4ndCBubyBsb29wcy4KKyAgICAgICAgaWYgKGRlc2NyaXB0aW9u
LmZhbGxUaHJvdWdoLmJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgIHx8IGRlc2NyaXB0aW9u
LmZhbGxUaHJvdWdoLmJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugb2Yg
ZmFsbC10aHJvdWdoIGxvb3AuXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQorICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IGRlc2NyaXB0aW9uLmNh
c2VzKSB7CisgICAgICAgICAgICBpZiAoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IGJsb2Nr
CisgICAgICAgICAgICAgICAgfHwgc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IHByZWRlY2Vz
c29yKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugb2YgbG9vcCBpbiBwcmltYXJ5IGNhc2VzLlxu
Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogcHJlZGVjZXNzb3JEZXNj
cmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgaWYgKHN3aXRjaENhc2UudGFyZ2V0QmxvY2so
KSA9PSBibG9jaworICAgICAgICAgICAgICAgIHx8IHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSA9
PSBwcmVkZWNlc3NvcikgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGxvb3AgaW4gcHJlZGVj
ZXNzb3IgY2FzZXMuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICAgICAgZGF0YUxvZygiICAgIERvaW5nIGl0IVxuIik7CisgICAgICAgIC8vIFdlJ3JlIGNvbW1p
dHRlZCB0byBkb2luZyB0aGUgdGhpbmcuCisgICAgICAgIAorICAgICAgICAvLyBJbnNlcnQgYWxs
IG5vbi10ZXJtaW5hbCB2YWx1ZXMgZnJvbSBvdXIgYmxvY2sgaW50byBvdXIgcHJlZGVjZXNzb3Iu
IFdlIGRlZmluaXRlbHkgbmVlZCB0bworICAgICAgICAvLyBkbyB0aGlzIGZvciBjb25zdGFudHMu
IFdlIGRvIHRoaXMgZm9yIG90aGVyIHZhbHVlcyBhcyBhIGNvbnNlcnZhdGl2ZSB0aGluZzogd2Ug
c2hvdWxkIGhhdmUKKyAgICAgICAgLy8gcHJvdmVkIHRoYXQgYW55IG5vbi1jb25zdGFudHMgYXJl
IHVzZWQtb25jZSBmcm9tIHRoZSBicmFuY2gsIGJ1dCBpZiB0aGlzIGZhaWxzIGZvciBzb21lCisg
ICAgICAgIC8vIHJlYXNvbiwgdGhlbiB3ZSB3YW50IHRvIHN0aWxsIGVtaXQgc291bmQgY29kZS4K
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kp
CisgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnRWYWx1ZShwcmVkZWNlc3Nvci0+c2l6
ZSgpIC0gMSwgYmxvY2stPmF0KGkpKTsKKyAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShw
cmVkZWNlc3Nvcik7CisgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5yZXNpemUoMCk7CisgICAgICAg
IGJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIE9vcHMsIGRlc2NyaXB0aW9u
LmJyYW5jaC0+b3JpZ2luKCkpOworICAgICAgICBibG9jay0+cmVtb3ZlUHJlZGVjZXNzb3IocHJl
ZGVjZXNzb3IpOworICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3JC
bG9jayA6IGRlc2NyaXB0aW9uLmJyYW5jaC0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAg
ICBzdWNjZXNzb3JCbG9jay0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwcmVkZWNlc3Nvcik7
CisgICAgICAgIAorICAgICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBwcmVkZWNlc3Nv
ci0+cmVwbGFjZUxhc3RXaXRoTmV3PFN3aXRjaFZhbHVlPigKKyAgICAgICAgICAgIG1fcHJvYywg
cHJlZGVjZXNzb3ItPmxhc3QoKS0+b3JpZ2luKCksIGRlc2NyaXB0aW9uLnNvdXJjZSwgZGVzY3Jp
cHRpb24uZmFsbFRocm91Z2gpOworICAgICAgICAKKyAgICAgICAgVmVjdG9yPGludDY0X3Q+IHBy
ZWRlY2Vzc29yQ2FzZXM7CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogcHJl
ZGVjZXNzb3JEZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgc3dpdGNoVmFsdWUtPmFw
cGVuZENhc2Uoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICBwcmVkZWNlc3NvckNhc2VzLmFwcGVu
ZChzd2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBzdGQ6OnNvcnQo
cHJlZGVjZXNzb3JDYXNlcy5iZWdpbigpLCBwcmVkZWNlc3NvckNhc2VzLmVuZCgpKTsKKyAgICAg
ICAgYXV0byBpc1ByZWRlY2Vzc29yQ2FzZSA9IFsmXSAoaW50NjRfdCB2YWx1ZSkgLT4gYm9vbCB7
CisgICAgICAgICAgICByZXR1cm4gISF0cnlCaW5hcnlTZWFyY2g8aW50NjRfdD4oCisgICAgICAg
ICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcywgcHJlZGVjZXNzb3JDYXNlcy5zaXplKCksIHZhbHVl
LAorICAgICAgICAgICAgICAgIFtdIChpbnQ2NF90KiBlbGVtZW50KSAtPiBpbnQ2NF90IHsgcmV0
dXJuICplbGVtZW50OyB9KTsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoU3dp
dGNoQ2FzZSBzd2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlm
ICghaXNQcmVkZWNlc3NvckNhc2Uoc3dpdGNoQ2FzZS5jYXNlVmFsdWUoKSkpCisgICAgICAgICAg
ICAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uoc3dpdGNoQ2FzZSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RydWN0IFN3aXRjaERlc2NyaXB0aW9u
IHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24oKQorICAgICAgICB7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiAhIWJsb2Nr
OyB9CisgICAgICAgIAorICAgICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgb3V0LnByaW50KAorICAgICAgICAgICAgICAgICJ7Ymxv
Y2sgPSAiLCBwb2ludGVyRHVtcChibG9jayksCisgICAgICAgICAgICAgICAgIiwgYnJhbmNoID0g
IiwgcG9pbnRlckR1bXAoYnJhbmNoKSwKKyAgICAgICAgICAgICAgICAiLCBleHRyYSA9ICIsIHBv
aW50ZXJEdW1wKGV4dHJhKSwKKyAgICAgICAgICAgICAgICAiLCBzb3VyY2UgPSAiLCBwb2ludGVy
RHVtcChzb3VyY2UpLAorICAgICAgICAgICAgICAgICIsIGNhc2VzID0gIiwgbGlzdER1bXAoY2Fz
ZXMpLAorICAgICAgICAgICAgICAgICIsIGZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91Z2gsICJ9
Iik7CisgICAgICAgIH0KKworICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayB7IG51bGxwdHIgfTsK
KyAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggeyBudWxscHRyIH07CisgICAgICAgIFZhbHVl
KiBleHRyYSB7IG51bGxwdHIgfTsgLy8gVGhpcyBpcyB0aGUgRXF1YWwgb3IgTm90RXF1YWwgdmFs
dWUsIGlmIGFwcGxpY2FibGUuCisgICAgICAgIFZhbHVlKiBzb3VyY2UgeyBudWxscHRyIH07Cisg
ICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlLCAxPiBjYXNlczsKKyAgICAgICAgRnJlcXVlbnRlZEJs
b2NrIGZhbGxUaHJvdWdoOworICAgIH07CisgICAgCisgICAgU3dpdGNoRGVzY3JpcHRpb24gZGVz
Y3JpYmUoQmFzaWNCbG9jayogYmxvY2spCisgICAgeworICAgICAgICBTd2l0Y2hEZXNjcmlwdGlv
biByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5ibG9jayA9IGJsb2NrOworICAgICAgICByZXN1bHQu
YnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOworICAgICAgICAKKyAg
ICAgICAgc3dpdGNoIChyZXN1bHQuYnJhbmNoLT5vcGNvZGUoKSkgeworICAgICAgICBjYXNlIEJy
YW5jaDogeworICAgICAgICAgICAgVmFsdWUqIHByZWRpY2F0ZSA9IHJlc3VsdC5icmFuY2gtPmNo
aWxkKDApOworICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIHRha2VuID0gcmVzdWx0LmJyYW5j
aC0+dGFrZW4oKTsKKyAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBub3RUYWtlbiA9IHJlc3Vs
dC5icmFuY2gtPm5vdFRha2VuKCk7CisgICAgICAgICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsK
KyAgICAgICAgICAgIGlmIChwcmVkaWNhdGUtPm51bUNoaWxkcmVuKCkgPT0gMgorICAgICAgICAg
ICAgICAgICYmIHByZWRpY2F0ZS0+Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAg
JiYgbV91c2VDb3VudHMubnVtVXNlcyhwcmVkaWNhdGUpID09IDEpIHsKKyAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHByZWRpY2F0ZS0+b3Bjb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEVx
dWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlLT5jaGls
ZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGljYXRlOworICAg
ICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UocHJlZGljYXRl
LT5jaGlsZCgxKS0+YXNJbnQoKSwgdGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
LmZhbGxUaHJvdWdoID0gbm90VGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5v
dEVxdWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlLT5j
aGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGljYXRlOwor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UocHJlZGlj
YXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LmZhbGxUaHJvdWdoID0gdGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFuZGxlZCkKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2UgPSBwcmVkaWNhdGU7CisgICAgICAgICAgICBy
ZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoMCwgbm90VGFrZW4pKTsKKyAgICAgICAgICAg
IHJlc3VsdC5mYWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFN3aXRjaDogeworICAgICAgICAgICAgU3dp
dGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcmVzdWx0LmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCk7
CisgICAgICAgICAgICByZXN1bHQuc291cmNlID0gc3dpdGNoVmFsdWUtPmNoaWxkKDApOworICAg
ICAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisgICAg
ICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlKTsKKyAgICAgICAgICAg
IHJlc3VsdC5mYWxsVGhyb3VnaCA9IHN3aXRjaFZhbHVlLT5mYWxsVGhyb3VnaCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmVzdWx0LmJsb2NrID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJlc3VsdC5i
cmFuY2ggPSBudWxscHRyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIFByb2NlZHVyZSYgbV9w
cm9jOworICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsKKyAgICBVc2VDb3VudHMgbV91
c2VDb3VudHM7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworYm9vbCBpbmZlclN3
aXRjaGVzKFByb2NlZHVyZSYgcHJvYykKK3sKKyAgICBQaGFzZVNjb3BlIHBoYXNlU2NvcGUocHJv
YywgImluZmVyU3dpdGNoZXMiKTsKKyAgICBJbmZlclN3aXRjaGVzIGluZmVyU3dpdGNoZXMocHJv
Yyk7CisgICAgcmV0dXJuIGluZmVyU3dpdGNoZXMucnVuKCk7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQjNJbmZlclN3aXRjaGVzX2gKKyNkZWZpbmUgQjNJbmZlclN3aXRjaGVzX2gK
KworI2lmIEVOQUJMRShCM19KSVQpCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
CitjbGFzcyBQcm9jZWR1cmU7CisKKy8vIEZpeHBvaW50cyB0byBjb252ZXJ0IGNoYWlucyBvZiBi
cmFuY2hlcyBpbnRvIHN3aXRjaGVzLgorCitib29sIGluZmVyU3dpdGNoZXMoUHJvY2VkdXJlJik7
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkUoQjNfSklUKQor
CisjZW5kaWYgLy8gQjNJbmZlclN3aXRjaGVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZpc2lvbiAyMDIxOTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzVmFyaWFibGUuaCIKKyNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTI2Miw2ICsyNjMsNzQgQEAg
dm9pZCBQcm9jZWR1cmU6OmRlbGV0ZU9ycGhhbnMoKQogICAgICAgICBkZWxldGVWYWx1ZSh2YWx1
ZSk7CiB9CiAKK2Jvb2wgUHJvY2VkdXJlOjplbGltaW5hdGVEZWFkQ29kZSgpCit7CisgICAgYm9v
bCBjaGFuZ2VkID0gZmFsc2U7CisgICAgCisgICAgR3JhcGhOb2RlV29ya2xpc3Q8VmFsdWUqLCBJ
bmRleFNldDxWYWx1ZT4+IHdvcmtsaXN0OworICAgIFZlY3RvcjxVcHNpbG9uVmFsdWUqLCA2ND4g
dXBzaWxvbnM7CisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7CisgICAgICAg
IGZvciAoVmFsdWUqIHZhbHVlIDogKmJsb2NrKSB7CisgICAgICAgICAgICBFZmZlY3RzIGVmZmVj
dHM7CisgICAgICAgICAgICAvLyBXZSBkb24ndCBjYXJlIGFib3V0IGVmZmVjdHMgb2YgU1NBIG9w
ZXJhdGlvbnMsIHNpbmNlIHdlIG1vZGVsIHRoZW0gbW9yZQorICAgICAgICAgICAgLy8gYWNjdXJh
dGVseSB0aGFuIHRoZSBlZmZlY3RzKCkgbWV0aG9kIGRvZXMuCisgICAgICAgICAgICBpZiAodmFs
dWUtPm9wY29kZSgpICE9IFBoaSAmJiB2YWx1ZS0+b3Bjb2RlKCkgIT0gVXBzaWxvbikKKyAgICAg
ICAgICAgICAgICBlZmZlY3RzID0gdmFsdWUtPmVmZmVjdHMoKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmIChlZmZlY3RzLm11c3RFeGVjdXRlKCkpCisgICAgICAgICAgICAgICAg
d29ya2xpc3QucHVzaCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
VXBzaWxvblZhbHVlKiB1cHNpbG9uID0gdmFsdWUtPmFzPFVwc2lsb25WYWx1ZT4oKSkKKyAgICAg
ICAgICAgICAgICB1cHNpbG9ucy5hcHBlbmQodXBzaWxvbik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgZm9yICg7OykgeworICAgICAgICB3aGlsZSAoVmFsdWUqIHZhbHVlID0gd29ya2xpc3QucG9w
KCkpIHsKKyAgICAgICAgICAgIGZvciAoVmFsdWUqIGNoaWxkIDogdmFsdWUtPmNoaWxkcmVuKCkp
CisgICAgICAgICAgICAgICAgd29ya2xpc3QucHVzaChjaGlsZCk7CisgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICBib29sIGRpZFB1c2ggPSBmYWxzZTsKKyAgICAgICAgZm9yIChzaXpl
X3QgdXBzaWxvbkluZGV4ID0gMDsgdXBzaWxvbkluZGV4IDwgdXBzaWxvbnMuc2l6ZSgpOyArK3Vw
c2lsb25JbmRleCkgeworICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB1cHNpbG9uID0gdXBzaWxv
bnNbdXBzaWxvbkluZGV4XTsKKyAgICAgICAgICAgIGlmICh3b3JrbGlzdC5zYXcodXBzaWxvbi0+
cGhpKCkpKSB7CisgICAgICAgICAgICAgICAgd29ya2xpc3QucHVzaCh1cHNpbG9uKTsKKyAgICAg
ICAgICAgICAgICB1cHNpbG9uc1t1cHNpbG9uSW5kZXgtLV0gPSB1cHNpbG9ucy5sYXN0KCk7Cisg
ICAgICAgICAgICAgICAgdXBzaWxvbnMudGFrZUxhc3QoKTsKKyAgICAgICAgICAgICAgICBkaWRQ
dXNoID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWRpZFB1
c2gpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBJbmRleFNldDxWYXJpYWJsZT4g
bGl2ZVZhcmlhYmxlczsKKyAgICAgICAgCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0
aGlzKSB7CisgICAgICAgIHNpemVfdCBzb3VyY2VJbmRleCA9IDA7CisgICAgICAgIHNpemVfdCB0
YXJnZXRJbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChzb3VyY2VJbmRleCA8IGJsb2NrLT5zaXpl
KCkpIHsKKyAgICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IGJsb2NrLT5hdChzb3VyY2VJbmRleCsr
KTsKKyAgICAgICAgICAgIGlmICh3b3JrbGlzdC5zYXcodmFsdWUpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKFZhcmlhYmxlVmFsdWUqIHZhcmlhYmxlVmFsdWUgPSB2YWx1ZS0+YXM8VmFyaWFibGVW
YWx1ZT4oKSkKKyAgICAgICAgICAgICAgICAgICAgbGl2ZVZhcmlhYmxlcy5hZGQodmFyaWFibGVW
YWx1ZS0+dmFyaWFibGUoKSk7CisgICAgICAgICAgICAgICAgYmxvY2stPmF0KHRhcmdldEluZGV4
KyspID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlbGV0
ZVZhbHVlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBibG9jay0+dmFsdWVzKCkucmVzaXplKHRhcmdldElu
ZGV4KTsKKyAgICB9CisKKyAgICBmb3IgKFZhcmlhYmxlKiB2YXJpYWJsZSA6IHZhcmlhYmxlcygp
KSB7CisgICAgICAgIGlmICghbGl2ZVZhcmlhYmxlcy5jb250YWlucyh2YXJpYWJsZSkpCisgICAg
ICAgICAgICBkZWxldGVWYXJpYWJsZSh2YXJpYWJsZSk7CisgICAgfQorICAgIAorICAgIHJldHVy
biBjaGFuZ2VkOworfQorCiBEb21pbmF0b3JzJiBQcm9jZWR1cmU6OmRvbWluYXRvcnMoKQogewog
ICAgIGlmICghbV9kb21pbmF0b3JzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmgJKHJldmlzaW9uIDIwMjE5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDIsNiArMjAyLDEwIEBAIHB1YmxpYzoK
ICAgICAvLyB0cmFuc2Zvcm1hdGlvbi4gSWYgeW91IGtub3cgdGhhdCB5b3UgbWF5IGhhdmUgY3Jl
YXRlZCBzb21lLCB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8KICAgICAvLyBkZWxldGUgdGhl
bSwgbWFraW5nIHRoZSBwcm9jZWR1cmUgdmFsaWQgYWdhaW4uCiAgICAgdm9pZCBkZWxldGVPcnBo
YW5zKCk7CisgICAgCisgICAgLy8gVGhpcyBpcyBhbiBhZ2dyZXNzaXZlIGRlYWQtY29kZSBlbGlt
aW5hdGlvbi4gSXQncyB0aGUgc2FtZSB0aGluZyB0aGF0IHJlZHVjZVN0cmVuZ3RoKCkgZG9lcy4K
KyAgICAvLyBSZXR1cm5zIHRydWUgaWYgYW55IGNvZGUgd2FzIGVsaW1pbmF0ZWQuCisgICAgYm9v
bCBlbGltaW5hdGVEZWFkQ29kZSgpOwogCiAgICAgQ0ZHJiBjZmcoKSBjb25zdCB7IHJldHVybiAq
bV9jZmc7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyMTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgzLDcxICsyMjgzLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQga2lsbERlYWRDb2RlKCkKICAgICB7Ci0gICAgICAgIEdy
YXBoTm9kZVdvcmtsaXN0PFZhbHVlKiwgSW5kZXhTZXQ8VmFsdWU+PiB3b3JrbGlzdDsKLSAgICAg
ICAgVmVjdG9yPFVwc2lsb25WYWx1ZSosIDY0PiB1cHNpbG9uczsKLSAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgZm9yIChWYWx1ZSogdmFsdWUg
OiAqYmxvY2spIHsKLSAgICAgICAgICAgICAgICBFZmZlY3RzIGVmZmVjdHM7Ci0gICAgICAgICAg
ICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBhYm91dCBlZmZlY3RzIG9mIFNTQSBvcGVyYXRpb25zLCBz
aW5jZSB3ZSBtb2RlbCB0aGVtIG1vcmUKLSAgICAgICAgICAgICAgICAvLyBhY2N1cmF0ZWx5IHRo
YW4gdGhlIGVmZmVjdHMoKSBtZXRob2QgZG9lcy4KLSAgICAgICAgICAgICAgICBpZiAodmFsdWUt
Pm9wY29kZSgpICE9IFBoaSAmJiB2YWx1ZS0+b3Bjb2RlKCkgIT0gVXBzaWxvbikKLSAgICAgICAg
ICAgICAgICAgICAgZWZmZWN0cyA9IHZhbHVlLT5lZmZlY3RzKCk7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgaWYgKGVmZmVjdHMubXVzdEV4ZWN1dGUoKSkKLSAgICAgICAgICAg
ICAgICAgICAgd29ya2xpc3QucHVzaCh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IHZhbHVlLT5hczxVcHNpbG9uVmFs
dWU+KCkpCi0gICAgICAgICAgICAgICAgICAgIHVwc2lsb25zLmFwcGVuZCh1cHNpbG9uKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICB3
aGlsZSAoVmFsdWUqIHZhbHVlID0gd29ya2xpc3QucG9wKCkpIHsKLSAgICAgICAgICAgICAgICBm
b3IgKFZhbHVlKiBjaGlsZCA6IHZhbHVlLT5jaGlsZHJlbigpKQotICAgICAgICAgICAgICAgICAg
ICB3b3JrbGlzdC5wdXNoKGNoaWxkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgYm9vbCBkaWRQdXNoID0gZmFsc2U7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCB1
cHNpbG9uSW5kZXggPSAwOyB1cHNpbG9uSW5kZXggPCB1cHNpbG9ucy5zaXplKCk7ICsrdXBzaWxv
bkluZGV4KSB7Ci0gICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB1cHNpbG9uID0gdXBzaWxv
bnNbdXBzaWxvbkluZGV4XTsKLSAgICAgICAgICAgICAgICBpZiAod29ya2xpc3Quc2F3KHVwc2ls
b24tPnBoaSgpKSkgewotICAgICAgICAgICAgICAgICAgICB3b3JrbGlzdC5wdXNoKHVwc2lsb24p
OwotICAgICAgICAgICAgICAgICAgICB1cHNpbG9uc1t1cHNpbG9uSW5kZXgtLV0gPSB1cHNpbG9u
cy5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHVwc2lsb25zLnRha2VMYXN0KCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGRpZFB1c2ggPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGlmICghZGlkUHVzaCkKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotCi0gICAgICAgIEluZGV4U2V0PFZhcmlhYmxlPiBsaXZlVmFyaWFibGVz
OwotICAgICAgICAKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewot
ICAgICAgICAgICAgc2l6ZV90IHNvdXJjZUluZGV4ID0gMDsKLSAgICAgICAgICAgIHNpemVfdCB0
YXJnZXRJbmRleCA9IDA7Ci0gICAgICAgICAgICB3aGlsZSAoc291cmNlSW5kZXggPCBibG9jay0+
c2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgVmFsdWUqIHZhbHVlID0gYmxvY2stPmF0KHNvdXJj
ZUluZGV4KyspOwotICAgICAgICAgICAgICAgIGlmICh3b3JrbGlzdC5zYXcodmFsdWUpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChWYXJpYWJsZVZhbHVlKiB2YXJpYWJsZVZhbHVlID0gdmFs
dWUtPmFzPFZhcmlhYmxlVmFsdWU+KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBsaXZlVmFy
aWFibGVzLmFkZCh2YXJpYWJsZVZhbHVlLT52YXJpYWJsZSgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgYmxvY2stPmF0KHRhcmdldEluZGV4KyspID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVlKTsKLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEl0J3Mgbm90IGVudGly
ZWx5IGNsZWFyIGlmIHRoaXMgaXMgbmVlZGVkLiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIGhh
dmUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmb3JjZSBhIHJlcnVuIG9mIHRoZSBmaXhw
b2ludCBmb3Igbm93LCBzaW5jZSB0aGF0IHdpbGwgbWFrZSBpdCBlYXNpZXIKLSAgICAgICAgICAg
ICAgICAgICAgLy8gdG8gZG8gcGVlcGhvbGUgb3B0aW1pemF0aW9uczogcmVtb3ZpbmcgZGVhZCBj
b2RlIHdpbGwgbWFrZSB0aGUgcGVlcGhvbGUKLSAgICAgICAgICAgICAgICAgICAgLy8gZWFzaWVy
IHRvIHNwb3QuCi0gICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmxvY2stPnZhbHVlcygpLnJl
c2l6ZSh0YXJnZXRJbmRleCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKFZhcmlhYmxlKiB2
YXJpYWJsZSA6IG1fcHJvYy52YXJpYWJsZXMoKSkgewotICAgICAgICAgICAgaWYgKCFsaXZlVmFy
aWFibGVzLmNvbnRhaW5zKHZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICBtX3Byb2MuZGVsZXRl
VmFyaWFibGUodmFyaWFibGUpOwotICAgICAgICB9CisgICAgICAgIG1fY2hhbmdlZCB8PSBtX3By
b2MuZWxpbWluYXRlRGVhZENvZGUoKTsKICAgICB9CiAKICAgICB2b2lkIHNpbXBsaWZ5U1NBKCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjE5OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjI5LDYgKzYyOSwyMSBAQCB2b2lkIFZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKCkKICAg
ICB9CiB9CiAKK2Jvb2wgVmFsdWU6OmlzRnJlZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChvcGNv
ZGUoKSkgeworICAgIGNhc2UgQ29uc3QzMjoKKyAgICBjYXNlIENvbnN0NjQ6CisgICAgY2FzZSBD
b25zdERvdWJsZToKKyAgICBjYXNlIENvbnN0RmxvYXQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAg
ICBjYXNlIE5vcDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogdm9pZCBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdAogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5oCShyZXZpc2lvbiAyMDIxOTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgVHJpU3RhdGUgYWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3Q7CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBiZWxvd0VxdWFsQ29uc3RhbnQoY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRD
b25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwotCisgICAgCiAgICAgLy8gSWYgdGhl
IHZhbHVlIGlzIGEgY29tcGFyaXNvbiB0aGVuIHRoaXMgcmV0dXJucyB0aGUgaW52ZXJ0ZWQgZm9y
bSBvZiB0aGF0IGNvbXBhcmlzb24sIGlmCiAgICAgLy8gcG9zc2libGUuIEl0IGNhbiBiZSBpbXBv
c3NpYmxlIGZvciBkb3VibGUgY29tcGFyaXNvbnMsIHdoZXJlIGZvciBleGFtcGxlIExlc3NUaGFu
IGFuZAogICAgIC8vIEdyZWF0ZXJFcXVhbCBiZWhhdmUgZGlmZmVyZW50bHkuIElmIHRoaXMgcmV0
dXJucyBhIHZhbHVlLCBpdCBpcyBhIG5ldyB2YWx1ZSwgd2hpY2ggbXVzdCBiZQpAQCAtMjEwLDYg
KzIxMCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gcmVwb2ludCBpdCBhdCB0aGUgSWRlbnRpdHkncyBj
aGlsZC4gRm9yIHNpbXBsaWNpdHksIHRoaXMgd2lsbCBmb2xsb3cgYXJiaXRyYXJpbHkgbG9uZyBj
aGFpbnMKICAgICAvLyBvZiBJZGVudGl0eSdzLgogICAgIHZvaWQgcGVyZm9ybVN1YnN0aXR1dGlv
bigpOworICAgIAorICAgIC8vIEZyZWUgdmFsdWVzIGFyZSB0aG9zZSB3aG9zZSBwcmVzZW5jZSBp
cyBndWFyYW50ZWVkIG5vdCB0byBodXJ0IGNvZGUuIFdlIGNvbnNpZGVyIGNvbnN0YW50cywKKyAg
ICAvLyBJZGVudGl0aWVzLCBhbmQgTm9wcyB0byBiZSBmcmVlLiBDb25zdGFudHMgYXJlIGZyZWUg
YmVjYXVzZSB3ZSBob2lzdCB0aGVtIHRvIGFuIG9wdGltYWwgcGxhY2UuCisgICAgLy8gSWRlbnRp
dGllcyBhbmQgTm9wcyBhcmUgZnJlZSBiZWNhdXNlIHdlIHJlbW92ZSB0aGVtLgorICAgIGJvb2wg
aXNGcmVlKCkgY29uc3Q7CiAKICAgICAvLyBXYWxrIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyB2YWx1
ZSAoaS5lLiB0aGUgZ3JhcGggb2YgdGhpbmdzIGl0IHRyYW5zaXRpdmVseSB1c2VzKS4gVGhpcwog
ICAgIC8vIGVpdGhlciB3YWxrcyBwaGlzIG9yIG5vdCwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgUGhp
Q2hpbGRyZW4gaXMgbnVsbC4gWW91ciBjYWxsYmFjayBnZXRzCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDIxOTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzNjksOCArMjM2OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CiAgICAgICAgIGlmICh1
aWQtPmlzU3ltYm9sKCkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0
LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAg
ICBMVmFsdWUgc3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIHNwZWN1bGF0ZShCYWRJZGVudCwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5u
b3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5nSWRlbnQobV9ub2Rl
LT5jaGlsZDEoKSk7CkBAIC00ODg3LDEwICs0ODg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UpKSB7Ci0gICAg
ICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSByaWdodCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSBsZWZ0U3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIobGVmdCwgbV9oZWFw
cy5TeW1ib2xfcHJpdmF0ZU5hbWUpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0U3RyaW5nSW1w
bCA9IG1fb3V0LmxvYWRQdHIocmlnaHQsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAg
ICAgICAgICAgIExWYWx1ZSBsZWZ0U3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSByaWdodFN0cmluZ0ltcGwgPSBsb3dTeW1ib2xV
SUQobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFs
KGxlZnRTdHJpbmdJbXBsLCByaWdodFN0cmluZ0ltcGwpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtOTU4Myw2ICs5NTgwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1
bGF0ZVN5bWJvbChlZGdlLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
KyAgICAKKyAgICBMVmFsdWUgbG93U3ltYm9sVUlEKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0
aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAg
ICAgaWYgKFN5bWJvbCogc3ltYm9sID0gZWRnZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxTeW1ib2wq
PigpKQorICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50UHRyKHN5bWJvbC0+cHJpdmF0
ZU5hbWUoKS51aWQoKSk7CisgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2woZWRnZSwg
bW9kZSk7CisgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBhdm9pZCB0aGlzIGxvYWQgaWYgd2Ug
aGFkIGhhc2gtY29uc2VkIFN5bWJvbHMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg5MDgKKyAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWRQdHIo
c3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgfQogCiAgICAgTFZhbHVl
IGxvd05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUg
PSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281622</attachid>
            <date>2016-06-19 12:56:05 -0700</date>
            <delta_ts>2016-06-25 20:10:17 -0700</delta_ts>
            <desc>better patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>28000</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMjIxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTI4LDYgKzEyOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNG
cmVxdWVuY3lDbGFzcy5jcHAKICAgICBiMy9CM0dlbmVyYXRlLmNwcAogICAgIGIzL0IzSGVhcFJh
bmdlLmNwcAorICAgIGIzL0IzSW5mZXJTd2l0Y2hlcy5jcHAKICAgICBiMy9CM0luc2VydGlvblNl
dC5jcHAKICAgICBiMy9CM0xlZ2FsaXplTWVtb3J5T2Zmc2V0cy5jcHAKICAgICBiMy9CM0xvd2Vy
TWFjcm9zLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIw
MjIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk1LDYgKzE5OTUsOCBAQAogCQlE
QzYwNUI1RjFDRTI2RUE1MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4
IC8qIFByb2ZpbGVyVUlELmNwcCAqLzsgfTsKIAkJREM2MDVCNjAxQ0UyNkVBNzAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzY5QUE2NjFDRjdBMUYy
MDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0
LmNwcCAqLzsgfTsKKwkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5
Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLzsgfTsKKwkJREM2
OUI5OUQxRDE1RjkxNDAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAw
IC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovOyB9OwogCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkg
LyogVGFnUmVnaXN0ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzc5
OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MTFDREU5RjlFMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi87IH07CiAJCURDRUUyMjA5MUNFQjk4OTUwMDBD
MjM5NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHND
RkcuaCAqLzsgfTsKQEAgLTQyMTYsNiArNDIxOCw4IEBACiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5
MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJ
RC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5m
ZXJTd2l0Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0lu
ZmVyU3dpdGNoZXMuY3BwOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJT
d2l0Y2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0luZmVyU3dpdGNo
ZXMuaDsgcGF0aCA9IGIzL0IzSW5mZXJTd2l0Y2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjIw
NjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0NGRy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcyNyw2ICs0NzMxLDggQEAK
IAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCAqLywKIAkJCQkw
RkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oICovLAogCQkJCTBGRUM4NEQy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8sCisJCQkJREM2OUI5OUExRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8sCisJCQkJREM2OUI5OUIxRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovLAogCQkJCTBGRUM4NUI0MUJFMTQ2MkYw
MDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8sCiAJCQkJMEZFQzg1QjUxQkUxNDYyRjAw
ODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggKi8sCiAJCQkJMEZFQzg1QjYxQkUxNDYyRjAwODBG
Rjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oICovLApAQCAtNzUxOCw2ICs3NTI0LDcgQEAK
IAkJCQlBNUVBNzEwNDE5RjZERTcyMDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rp
c3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRjY0RUFGMzFD
NEVDRDA2MDA2MjFFOUIgLyogQWlyQXJnSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVF
QTcxMDUxOUY2REU3NDAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9oZWFk
ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlEQzY5Qjk5RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNjE5RjZERTc2MDA5OEY1
RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2ltcGxlbWVudGF0aW9uLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3QzM5RkYxQzkwQzU1QjAwNDgwMTUxIC8qIERGR09wSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDcxOUY2REU3ODAwOThGNUVDIC8qIGdlbmVyYXRlX29i
amNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKQEAg
LTg2ODQsNiArODY5MSw3IEBACiAJCQkJMEZFQzg1MDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hl
Y2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTA3MUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDkxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNjlCOTlDMUQx
NUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxp
emVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5oIgogI2luY2x1
ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNGb2xkUGF0aENvbnN0YW50cy5oIgorI2luY2x1
ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgogI2luY2x1ZGUgIkIzTGVnYWxpemVNZW1vcnlPZmZzZXRz
LmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvcy5oIgogI2luY2x1ZGUgIkIzTG93ZXJNYWNyb3NB
ZnRlck9wdGltaXphdGlvbnMuaCIKQEAgLTgyLDYgKzgzLDcgQEAgdm9pZCBnZW5lcmF0ZVRvQWly
KFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgICAgICByZWR1Y2VEb3VibGVUb0Zsb2F0KHByb2Nl
ZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0cmVuZ3RoKHByb2NlZHVyZSk7CiAgICAgICAgIGVsaW1p
bmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zKHByb2NlZHVyZSk7CisgICAgICAgIGluZmVyU3dpdGNo
ZXMocHJvY2VkdXJlKTsKICAgICAgICAgZHVwbGljYXRlVGFpbHMocHJvY2VkdXJlKTsKICAgICAg
ICAgZml4U1NBKHByb2NlZHVyZSk7CiAgICAgICAgIGZvbGRQYXRoQ29uc3RhbnRzKHByb2NlZHVy
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNo
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCM0luZmVyU3dpdGNoZXMuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNp
bmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM1BoYXNlU2NvcGUu
aCIKKyNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZh
bHVlLmgiCisjaW5jbHVkZSAiQjNVc2VDb3VudHMuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKworbmFtZXNwYWNlIHsKKworY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisK
K2NsYXNzIEluZmVyU3dpdGNoZXMgeworcHVibGljOgorICAgIEluZmVyU3dpdGNoZXMoUHJvY2Vk
dXJlJiBwcm9jKQorICAgICAgICA6IG1fcHJvYyhwcm9jKQorICAgICAgICAsIG1faW5zZXJ0aW9u
U2V0KHByb2MpCisgICAgICAgICwgbV91c2VDb3VudHMocHJvYykKKyAgICB7CisgICAgfQorICAg
IAorICAgIGJvb2wgcnVuKCkKKyAgICB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgZGF0YUxvZygiQjMgYmVmb3JlIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAg
ICAKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgYm9vbCBldmVyQ2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAgICAgICAgICAgY2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKQorICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gYXR0ZW1wdFRvTWVyZ2VX
aXRoUHJlZGVjZXNzb3IoYmxvY2spOworCisgICAgICAgICAgICBldmVyQ2hhbmdlZCB8PSBjaGFu
Z2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZXZlckNoYW5nZWQpIHsKKyAg
ICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAgICAgICAgICAgbV9wcm9j
LmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9wcm9jLmRlbGV0
ZU9ycGhhbnMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgaW5mZXJTd2l0Y2hlczpcbiIsIG1fcHJvYyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgYm9vbCBhdHRlbXB0VG9N
ZXJnZVdpdGhQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKKyAgICB7CisgICAgICAgIC8v
IE5vIHBvaW50IGluIGNvbnNpZGVyaW5nIHRoZSByb290IGJsb2NrLiBXZSBhbHNvIGRvbid0IGNv
bnNpZGVyIGJsb2NrcyB3aXRoIG11bHRpcGxlCisgICAgICAgIC8vIHByZWRlY2Vzc29ycywgYnV0
IHdlIGNvdWxkIGhhbmRsZSB0aGlzIGlmIHdlIG1hZGUgdGhpcyBjb2RlIGEgYml0IG1vcmUgZ2Vu
ZXJhbCBhbmQgd2Ugd2VyZQorICAgICAgICAvLyBub3QgYWZyYWlkIG9mIGNvZGUgYmxvYXQuCisg
ICAgICAgIGlmIChibG9jay0+bnVtUHJlZGVjZXNzb3JzKCkgIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uID0gZGVzY3JpYmUoYmxvY2spOworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IGRhdGFMb2coIkRlc2NyaXB0aW9uIG9mIHByaW1hcnkgYmxvY2sgIiwgKmJsb2NrLCAiOiAiLCBk
ZXNjcmlwdGlvbiwgIlxuIik7CisgICAgICAgIGlmICghZGVzY3JpcHRpb24pIHsKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJl
Y2F1c2Ugbm90IHN3aXRjaC1saWtlLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIGJsb2NrIGJl
aGF2ZXMgbGlrZSBhIHN3aXRjaC4gQnV0IHdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgaXQgZG9lc24n
dCBhbHNvCisgICAgICAgIC8vIHBlcmZvcm0gYW55IGVmZmVjdHMgb3IgZG8gZXhwZW5zaXZlIHRo
aW5ncy4gV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBzd2l0Y2ggaWYgdGhhdCB3aWxsCisgICAg
ICAgIC8vIG1ha2UgZXhwZW5zaXZlIHRoaW5ncyBleGVjdXRlIHVuY29uZGl0aW9uYWxseS4gV2Un
cmUgdmVyeSBjb25zZXJ2YXRpdmUgYWJvdXQgaG93IHdlIGRlZmluZQorICAgICAgICAvLyAiZXhw
ZW5zaXZlIi4KKyAgICAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqYmxvY2spIHsKKyAgICAgICAg
ICAgIGlmICh2YWx1ZS0+aXNGcmVlKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBpZiAodmFsdWUgPT0gZGVzY3JpcHRpb24uZXh0cmEpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZGVzY3JpcHRpb24uYnJhbmNoKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiAiLCBkZWVwRHVtcCht
X3Byb2MsIHZhbHVlKSwgIlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yID0gYmxvY2stPnBy
ZWRlY2Vzc29yKDApOworICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBwcmVkZWNlc3NvckRlc2Ny
aXB0aW9uID0gZGVzY3JpYmUocHJlZGVjZXNzb3IpOworICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgIGRhdGFMb2coIiAgICBEZXNjcmlwdGlvbiBvZiBwcmVkZWNlc3NvciBibG9jayAi
LCAqcHJlZGVjZXNzb3IsICI6ICIsIHByZWRlY2Vzc29yRGVzY3JpcHRpb24sICJcbiIpOworICAg
ICAgICBpZiAoIXByZWRlY2Vzc29yRGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugbm90IHN3
aXRjaC1saWtlLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIC8vIEJvdGggdXMgYW5kIHRoZSBwcmVkZWNlc3NvciBhcmUgc3dpdGNo
LWxpa2UsIGJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0IHdlJ3JlIGNvbXBhdGlibGUuCisgICAg
ICAgIC8vIFdlIG1heSBiZSBzd2l0Y2hpbmcgb24gZGlmZmVyZW50IHZhbHVlcyEKKyAgICAgICAg
aWYgKGRlc2NyaXB0aW9uLnNvdXJjZSAhPSBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLnNvdXJjZSkg
eworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAg
IEJhaWxpbmcgYmVjYXVzZSBzb3VyY2VzIGRvbid0IG1hdGNoLlxuIik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGV4cGVjdCB0
aGF0IHdlIGFyZSB0aGUgZmFsbC10aHJvdWdoIGRlc3RpbmF0aW9uIG9mIHRoZSBwcmVkZWNlc3Nv
ci4gVGhpcyBpcyBhIGJpdCBvZiBhCisgICAgICAgIC8vIGdvb2Z5IGNvbmRpdGlvbi4gSWYgd2Ug
d2VyZSBub3QgdGhlIGZhbGwtdGhyb3VnaCBkZXN0aW5hdGlvbiB0aGVuIG91ciBzd2l0Y2ggaXMg
cHJvYmFibHkKKyAgICAgICAgLy8ganVzdCB0b3RhbGx5IHJlZHVuZGFudCBhbmQgd2Ugc2hvdWxk
IGJlIGdldHRpbmcgcmlkIG9mIGl0LiBCdXQgd2UgZG9uJ3QgaGFuZGxlIHRoYXQgaGVyZSwKKyAg
ICAgICAgLy8geWV0LgorICAgICAgICBpZiAocHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpICE9IGJsb2NrKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIGZhbGwtdGhyb3VnaCBvZiBw
cmVkZWNlc3NvciBpcyBub3QgdGhlIHByaW1hcnkgYmxvY2suXG4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRo
YXQgdGhlcmUgYWluJ3Qgbm8gbG9vcHMuCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpID09IGJsb2NrCisgICAgICAgICAgICB8fCBkZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGZhbGwtdGhy
b3VnaCBsb29wLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBkZXNjcmlwdGlvbi5jYXNlcykgewor
ICAgICAgICAgICAgaWYgKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSA9PSBibG9jaworICAgICAg
ICAgICAgICAgIHx8IHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSA9PSBwcmVkZWNlc3Nvcikgewor
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGxvb3AgaW4gcHJpbWFyeSBjYXNlcy5cbiIpOworICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vzc29yRGVzY3JpcHRpb24u
Y2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gYmxv
Y2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gcHJlZGVj
ZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiBsb29wIGluIHByZWRlY2Vzc29yIGNh
c2VzLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRh
dGFMb2coIiAgICBEb2luZyBpdCFcbiIpOworICAgICAgICAvLyBXZSdyZSBjb21taXR0ZWQgdG8g
ZG9pbmcgdGhlIHRoaW5nLgorICAgICAgICAKKyAgICAgICAgLy8gSW5zZXJ0IGFsbCBub24tdGVy
bWluYWwgdmFsdWVzIGZyb20gb3VyIGJsb2NrIGludG8gb3VyIHByZWRlY2Vzc29yLiBXZSBkZWZp
bml0ZWx5IG5lZWQgdG8KKyAgICAgICAgLy8gZG8gdGhpcyBmb3IgY29uc3RhbnRzLiBXZSBkbyB0
aGlzIGZvciBvdGhlciB2YWx1ZXMgYXMgYSBjb25zZXJ2YXRpdmUgdGhpbmc6IHdlIHNob3VsZCBo
YXZlCisgICAgICAgIC8vIHByb3ZlZCB0aGF0IGFueSBub24tY29uc3RhbnRzIGFyZSB1c2VkLW9u
Y2UgZnJvbSB0aGUgYnJhbmNoLCBidXQgaWYgdGhpcyBmYWlscyBmb3Igc29tZQorICAgICAgICAv
LyByZWFzb24sIHRoZW4gd2Ugd2FudCB0byBzdGlsbCBlbWl0IHNvdW5kIGNvZGUuCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQorICAgICAg
ICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUocHJlZGVjZXNzb3ItPnNpemUoKSAtIDEs
IGJsb2NrLT5hdChpKSk7CisgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUocHJlZGVjZXNz
b3IpOworICAgICAgICBibG9jay0+dmFsdWVzKCkucmVzaXplKDApOworICAgICAgICBibG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gt
Pm9yaWdpbigpKTsKKyAgICAgICAgYmxvY2stPnJlbW92ZVByZWRlY2Vzc29yKHByZWRlY2Vzc29y
KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sgOiBk
ZXNjcmlwdGlvbi5icmFuY2gtPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgc3VjY2Vz
c29yQmxvY2stPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcHJlZGVjZXNzb3IpOworICAgICAg
ICAKKyAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcHJlZGVjZXNzb3ItPnJlcGxh
Y2VMYXN0V2l0aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAgICAgICBtX3Byb2MsIHByZWRlY2Vz
c29yLT5sYXN0KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5zb3VyY2UsIGRlc2NyaXB0aW9uLmZh
bGxUaHJvdWdoKTsKKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxpbnQ2NF90PiBwcmVkZWNlc3Nv
ckNhc2VzOworICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vzc29y
RGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNl
KHN3aXRjaENhc2UpOworICAgICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcy5hcHBlbmQoc3dpdGNo
Q2FzZS5jYXNlVmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjpzb3J0KHByZWRlY2Vz
c29yQ2FzZXMuYmVnaW4oKSwgcHJlZGVjZXNzb3JDYXNlcy5lbmQoKSk7CisgICAgICAgIGF1dG8g
aXNQcmVkZWNlc3NvckNhc2UgPSBbJl0gKGludDY0X3QgdmFsdWUpIC0+IGJvb2wgeworICAgICAg
ICAgICAgcmV0dXJuICEhdHJ5QmluYXJ5U2VhcmNoPGludDY0X3Q+KAorICAgICAgICAgICAgICAg
IHByZWRlY2Vzc29yQ2FzZXMsIHByZWRlY2Vzc29yQ2FzZXMuc2l6ZSgpLCB2YWx1ZSwKKyAgICAg
ICAgICAgICAgICBbXSAoaW50NjRfdCogZWxlbWVudCkgLT4gaW50NjRfdCB7IHJldHVybiAqZWxl
bWVudDsgfSk7CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKFN3aXRjaENhc2Ug
c3dpdGNoQ2FzZSA6IGRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBpZiAoIWlzUHJl
ZGVjZXNzb3JDYXNlKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHN3
aXRjaFZhbHVlLT5hcHBlbmRDYXNlKHN3aXRjaENhc2UpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIHN0cnVjdCBTd2l0Y2hEZXNjcmlwdGlvbiB7CisgICAg
ICAgIFN3aXRjaERlc2NyaXB0aW9uKCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gISFibG9jazsgfQorICAg
ICAgICAKKyAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIG91dC5wcmludCgKKyAgICAgICAgICAgICAgICAie2Jsb2NrID0gIiwg
cG9pbnRlckR1bXAoYmxvY2spLAorICAgICAgICAgICAgICAgICIsIGJyYW5jaCA9ICIsIHBvaW50
ZXJEdW1wKGJyYW5jaCksCisgICAgICAgICAgICAgICAgIiwgZXh0cmEgPSAiLCBwb2ludGVyRHVt
cChleHRyYSksCisgICAgICAgICAgICAgICAgIiwgc291cmNlID0gIiwgcG9pbnRlckR1bXAoc291
cmNlKSwKKyAgICAgICAgICAgICAgICAiLCBjYXNlcyA9ICIsIGxpc3REdW1wKGNhc2VzKSwKKyAg
ICAgICAgICAgICAgICAiLCBmYWxsVGhyb3VnaCA9ICIsIGZhbGxUaHJvdWdoLCAifSIpOworICAg
ICAgICB9CisKKyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgeyBudWxscHRyIH07CisgICAgICAg
IENvbnRyb2xWYWx1ZSogYnJhbmNoIHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogZXh0cmEg
eyBudWxscHRyIH07IC8vIFRoaXMgaXMgdGhlIEVxdWFsIG9yIE5vdEVxdWFsIHZhbHVlLCBpZiBh
cHBsaWNhYmxlLgorICAgICAgICBWYWx1ZSogc291cmNlIHsgbnVsbHB0ciB9OworICAgICAgICBW
ZWN0b3I8U3dpdGNoQ2FzZSwgMT4gY2FzZXM7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxs
VGhyb3VnaDsKKyAgICB9OworICAgIAorICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaWJlKEJh
c2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24gcmVzdWx0
OworICAgICAgICByZXN1bHQuYmxvY2sgPSBibG9jazsKKyAgICAgICAgcmVzdWx0LmJyYW5jaCA9
IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAgICAgICAgCisgICAgICAgIHN3
aXRjaCAocmVzdWx0LmJyYW5jaC0+b3Bjb2RlKCkpIHsKKyAgICAgICAgY2FzZSBCcmFuY2g6IHsK
KyAgICAgICAgICAgIFZhbHVlKiBwcmVkaWNhdGUgPSByZXN1bHQuYnJhbmNoLT5jaGlsZCgwKTsK
KyAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayB0YWtlbiA9IHJlc3VsdC5icmFuY2gtPnRha2Vu
KCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgbm90VGFrZW4gPSByZXN1bHQuYnJhbmNo
LT5ub3RUYWtlbigpOworICAgICAgICAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CisgICAgICAg
ICAgICBpZiAocHJlZGljYXRlLT5udW1DaGlsZHJlbigpID09IDIKKyAgICAgICAgICAgICAgICAm
JiBwcmVkaWNhdGUtPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIG1fdXNl
Q291bnRzLm51bVVzZXMocHJlZGljYXRlKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3dpdGNo
IChwcmVkaWNhdGUtPm9wY29kZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFcXVhbDoKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hpbGQo
MSktPmFzSW50KCksIHRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhy
b3VnaCA9IG5vdFRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOb3RFcXVhbDoK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7
CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hp
bGQoMSktPmFzSW50KCksIG5vdFRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5m
YWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKGhhbmRsZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlOworICAgICAgICAgICAgcmVzdWx0LmNh
c2VzLmFwcGVuZChTd2l0Y2hDYXNlKDAsIG5vdFRha2VuKSk7CisgICAgICAgICAgICByZXN1bHQu
ZmFsbFRocm91Z2ggPSB0YWtlbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBTd2l0Y2g6IHsKKyAgICAgICAgICAgIFN3aXRjaFZhbHVl
KiBzd2l0Y2hWYWx1ZSA9IHJlc3VsdC5icmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpOworICAgICAg
ICAgICAgcmVzdWx0LnNvdXJjZSA9IHN3aXRjaFZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
IGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAg
ICAgIHJlc3VsdC5jYXNlcy5hcHBlbmQoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICByZXN1bHQu
ZmFsbFRocm91Z2ggPSBzd2l0Y2hWYWx1ZS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJlc3VsdC5ibG9jayA9IG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQuYnJhbmNoID0g
bnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBQcm9jZWR1cmUmIG1fcHJvYzsKKyAg
ICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CisgICAgVXNlQ291bnRzIG1fdXNlQ291bnRz
OworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2Jvb2wgaW5mZXJTd2l0Y2hlcyhQ
cm9jZWR1cmUmIHByb2MpCit7CisgICAgUGhhc2VTY29wZSBwaGFzZVNjb3BlKHByb2MsICJpbmZl
clN3aXRjaGVzIik7CisgICAgSW5mZXJTd2l0Y2hlcyBpbmZlclN3aXRjaGVzKHByb2MpOworICAg
IHJldHVybiBpbmZlclN3aXRjaGVzLnJ1bigpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEIzSW5mZXJTd2l0Y2hlc19oCisjZGVmaW5lIEIzSW5mZXJTd2l0Y2hlc19oCisKKyNpZiBF
TkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3Mg
UHJvY2VkdXJlOworCisvLyBGaXhwb2ludHMgdG8gY29udmVydCBjaGFpbnMgb2YgYnJhbmNoZXMg
aW50byBzd2l0Y2hlcy4KKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYpOworCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJFKEIzX0pJVCkKKworI2VuZGlm
IC8vIEIzSW5mZXJTd2l0Y2hlc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5oCShyZXZpc2lvbiAyMDIyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoK
ICAgICAvLyB0cmFuc2Zvcm1hdGlvbi4gSWYgeW91IGtub3cgdGhhdCB5b3UgbWF5IGhhdmUgY3Jl
YXRlZCBzb21lLCB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8KICAgICAvLyBkZWxldGUgdGhl
bSwgbWFraW5nIHRoZSBwcm9jZWR1cmUgdmFsaWQgYWdhaW4uCiAgICAgdm9pZCBkZWxldGVPcnBo
YW5zKCk7Ci0KKyAgICAKICAgICBDRkcmIGNmZygpIGNvbnN0IHsgcmV0dXJuICptX2NmZzsgfQog
CiAgICAgRG9taW5hdG9ycyYgZG9taW5hdG9ycygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MTgsNyArNDE4LDMwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJC
MyBhZnRlciBpdGVyYXRpb24gIyIsIGluZGV4IC0gMSwgIiBvZiByZWR1Y2VTdHJlbmd0aDpcbiIp
OwogICAgICAgICAgICAgICAgIGRhdGFMb2cobV9wcm9jKTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlDRkcoKTsKIAorICAgICAgICAgICAgaWYgKG1f
Y2hhbmdlZENGRykgeworICAgICAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgp
OworICAgICAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2Ug
ZGVmaW5pdGVseSB3YW50IHRvIGRvIERDRSBiZWZvcmUgd2UgZG8gQ1NFIHNvIHRoYXQgd2UgZG9u
J3QgaG9pc3QgdGhpbmdzLiBGb3IKKyAgICAgICAgICAgIC8vIGV4YW1wbGU6CisgICAgICAgICAg
ICAvLworICAgICAgICAgICAgLy8gQGRlYWQgPSBNdWwoQGEsIEBiKQorICAgICAgICAgICAgLy8g
Li4uIGxvdHMgb2YgY29udHJvbCBmbG93IGFuZCBzdHVmZgorICAgICAgICAgICAgLy8gQHRoaW5n
ID0gTXVsKEBhLCBAYikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBJZiB3ZSBkbyBD
U0UgYmVmb3JlIERDRSwgd2Ugd2lsbCByZW1vdmUgQHRoaW5nIGFuZCBrZWVwIEBkZWFkLiBFZmZl
Y3RpdmVseSwgd2Ugd2lsbAorICAgICAgICAgICAgLy8gImhvaXN0IiBAdGhpbmcuIE9uIHRoZSBv
dGhlciBoYW5kLCBpZiB3ZSBydW4gRENFIGJlZm9yZSBDU0UsIHdlIHdpbGwga2lsbCBAZGVhZCBh
bmQKKyAgICAgICAgICAgIC8vIGtlZXAgQHRoaW5nLiBUaGF0J3MgYmV0dGVyLCBzaW5jZSB3ZSB1
c3VhbGx5IHdhbnQgdGhpbmdzIHRvIHN0YXkgd2hlcmV2ZXIgdGhlIGNsaWVudAorICAgICAgICAg
ICAgLy8gcHV0IHRoZW0uIFdlJ3JlIG5vdCBhY3R1YWxseSBzbWFydCBlbm91Z2ggdGhpbmdzIHRv
IG1vdmUgdGhpbmdzIGFyb3VuZCBhdCByYW5kb20uCisgICAgICAgICAgICBraWxsRGVhZENvZGUo
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlTU0EoKTsKKyAgICAgICAgICAg
IAogICAgICAgICAgICAgbV9wcm9jLnJlc2V0VmFsdWVPd25lcnMoKTsKICAgICAgICAgICAgIG1f
ZG9taW5hdG9ycyA9ICZtX3Byb2MuZG9taW5hdG9ycygpOyAvLyBSZWNvbXB1dGUgaWYgbmVjZXNz
YXJ5LgogICAgICAgICAgICAgbV9wdXJlQ1NFLmNsZWFyKCk7CkBAIC00NDEsMjMgKzQ2NCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShtX2Jsb2Nr
KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fYmxvY2tJbnNlcnRpb25TZXQu
ZXhlY3V0ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7
Ci0gICAgICAgICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVDRkcoKTsKLSAgICAgICAgICAgICAg
ICBtX2RvbWluYXRvcnMgPSAmbV9wcm9jLmRvbWluYXRvcnMoKTsgLy8gUmVjb21wdXRlIGlmIG5l
Y2Vzc2FyeS4KLSAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzaW1wbGlmeUNGRygpOwotCi0gICAgICAg
ICAgICBpZiAobV9jaGFuZ2VkQ0ZHKSB7CisgICAgICAgICAgICBpZiAobV9ibG9ja0luc2VydGlv
blNldC5leGVjdXRlKCkgfCBtX2NoYW5nZWRDRkcpIHsKICAgICAgICAgICAgICAgICBtX3Byb2Mu
cmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICAgICAgICAgICAgICBtX3Byb2MuaW52YWxpZGF0ZUNG
RygpOworICAgICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9IG51bGxwdHI7IC8vIERvbWluYXRv
cnMgYXJlIG5vdCB2YWxpZCBhbnltb3JlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGVtIHlldC4KICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBraWxsRGVhZENvZGUoKTsKLSAgICAgICAgICAgIHNpbXBsaWZ5U1NBKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIHJlc3VsdCB8PSBtX2NoYW5nZWQ7CiAgICAgICAgIH0gd2hpbGUg
KG1fY2hhbmdlZCk7CkBAIC0yMzMzLDExICsyMzQ1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgYmxvY2stPmF0KHRhcmdldEluZGV4KyspID0gdmFsdWU7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEl0J3Mgbm90
IGVudGlyZWx5IGNsZWFyIGlmIHRoaXMgaXMgbmVlZGVkLiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNl
IHRvIGhhdmUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmb3JjZSBhIHJlcnVuIG9mIHRo
ZSBmaXhwb2ludCBmb3Igbm93LCBzaW5jZSB0aGF0IHdpbGwgbWFrZSBpdCBlYXNpZXIKLSAgICAg
ICAgICAgICAgICAgICAgLy8gdG8gZG8gcGVlcGhvbGUgb3B0aW1pemF0aW9uczogcmVtb3Zpbmcg
ZGVhZCBjb2RlIHdpbGwgbWFrZSB0aGUgcGVlcGhvbGUKLSAgICAgICAgICAgICAgICAgICAgLy8g
ZWFzaWVyIHRvIHNwb3QuCiAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjksNiArNjI5LDIxIEBAIHZvaWQg
VmFsdWU6OnBlcmZvcm1TdWJzdGl0dXRpb24oKQogICAgIH0KIH0KIAorYm9vbCBWYWx1ZTo6aXNG
cmVlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CisgICAgY2FzZSBDb25zdDMy
OgorICAgIGNhc2UgQ29uc3Q2NDoKKyAgICBjYXNlIENvbnN0RG91YmxlOgorICAgIGNhc2UgQ29u
c3RGbG9hdDoKKyAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgTm9wOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
CiB2b2lkIFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0
CiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjIx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBhYm92ZUVx
dWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0
YXRlIGJlbG93RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZp
cnR1YWwgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBjb21wYXJpc29uIHRo
ZW4gdGhpcyByZXR1cm5zIHRoZSBpbnZlcnRlZCBmb3JtIG9mIHRoYXQgY29tcGFyaXNvbiwgaWYK
ICAgICAvLyBwb3NzaWJsZS4gSXQgY2FuIGJlIGltcG9zc2libGUgZm9yIGRvdWJsZSBjb21wYXJp
c29ucywgd2hlcmUgZm9yIGV4YW1wbGUgTGVzc1RoYW4gYW5kCiAgICAgLy8gR3JlYXRlckVxdWFs
IGJlaGF2ZSBkaWZmZXJlbnRseS4gSWYgdGhpcyByZXR1cm5zIGEgdmFsdWUsIGl0IGlzIGEgbmV3
IHZhbHVlLCB3aGljaCBtdXN0IGJlCkBAIC0yMTAsNiArMjEwLDExIEBAIHB1YmxpYzoKICAgICAv
LyByZXBvaW50IGl0IGF0IHRoZSBJZGVudGl0eSdzIGNoaWxkLiBGb3Igc2ltcGxpY2l0eSwgdGhp
cyB3aWxsIGZvbGxvdyBhcmJpdHJhcmlseSBsb25nIGNoYWlucwogICAgIC8vIG9mIElkZW50aXR5
J3MuCiAgICAgdm9pZCBwZXJmb3JtU3Vic3RpdHV0aW9uKCk7CisgICAgCisgICAgLy8gRnJlZSB2
YWx1ZXMgYXJlIHRob3NlIHdob3NlIHByZXNlbmNlIGlzIGd1YXJhbnRlZWQgbm90IHRvIGh1cnQg
Y29kZS4gV2UgY29uc2lkZXIgY29uc3RhbnRzLAorICAgIC8vIElkZW50aXRpZXMsIGFuZCBOb3Bz
IHRvIGJlIGZyZWUuIENvbnN0YW50cyBhcmUgZnJlZSBiZWNhdXNlIHdlIGhvaXN0IHRoZW0gdG8g
YW4gb3B0aW1hbCBwbGFjZS4KKyAgICAvLyBJZGVudGl0aWVzIGFuZCBOb3BzIGFyZSBmcmVlIGJl
Y2F1c2Ugd2UgcmVtb3ZlIHRoZW0uCisgICAgYm9vbCBpc0ZyZWUoKSBjb25zdDsKIAogICAgIC8v
IFdhbGsgdGhlIGFuY2VzdG9ycyBvZiB0aGlzIHZhbHVlIChpLmUuIHRoZSBncmFwaCBvZiB0aGlu
Z3MgaXQgdHJhbnNpdGl2ZWx5IHVzZXMpLiBUaGlzCiAgICAgLy8gZWl0aGVyIHdhbGtzIHBoaXMg
b3Igbm90LCBkZXBlbmRpbmcgb24gd2hldGhlciBQaGlDaGlsZHJlbiBpcyBudWxsLiBZb3VyIGNh
bGxiYWNrIGdldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMjIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2OSw4ICsyMzY5LDcg
QEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX25v
ZGUtPnVpZE9wZXJhbmQoKTsKICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAg
ICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMu
U3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbG93
U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEJhZElk
ZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmluZ0ltcGwsIG1fb3V0
LmNvbnN0SW50UHRyKHVpZCkpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIExWYWx1
ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTQ4ODcsMTAg
KzQ4ODYsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNC
aW5hcnlVc2VLaW5kKFN5bWJvbFVzZSkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93
U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJpbmdJ
bXBsID0gbV9vdXQubG9hZFB0cihsZWZ0LCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmlnaHRTdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihyaWdodCwg
bV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJp
bmdJbXBsID0gbG93U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIHJpZ2h0U3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxkMigpKTsKICAg
ICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQuZXF1YWwobGVmdFN0cmluZ0ltcGwsIHJpZ2h0U3Ry
aW5nSW1wbCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC05NTgxLDYgKzk1
NzgsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAgIAorICAgIExWYWx1ZSBsb3dTeW1i
b2xVSUQoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNP
cGVyYW5kU3BlY3VsYXRpb24pCisgICAgeworICAgICAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBl
ZGdlLT5keW5hbWljQ2FzdENvbnN0YW50PFN5bWJvbCo+KCkpCisgICAgICAgICAgICByZXR1cm4g
bV9vdXQuY29uc3RJbnRQdHIoc3ltYm9sLT5wcml2YXRlTmFtZSgpLnVpZCgpKTsKKyAgICAgICAg
TFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChlZGdlLCBtb2RlKTsKKyAgICAgICAgLy8gRklYTUU6
IFdlIGNvdWxkIGF2b2lkIHRoaXMgbG9hZCBpZiB3ZSBoYWQgaGFzaC1jb25zZWQgU3ltYm9scy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODkw
OAorICAgICAgICByZXR1cm4gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMuU3ltYm9sX3By
aXZhdGVOYW1lKTsKKyAgICB9CiAKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282086</attachid>
            <date>2016-06-25 20:10:17 -0700</date>
            <delta_ts>2016-06-25 20:12:23 -0700</delta_ts>
            <desc>awesome patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>28000</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMjIxNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTI4LDYgKzEyOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNG
cmVxdWVuY3lDbGFzcy5jcHAKICAgICBiMy9CM0dlbmVyYXRlLmNwcAogICAgIGIzL0IzSGVhcFJh
bmdlLmNwcAorICAgIGIzL0IzSW5mZXJTd2l0Y2hlcy5jcHAKICAgICBiMy9CM0luc2VydGlvblNl
dC5jcHAKICAgICBiMy9CM0xlZ2FsaXplTWVtb3J5T2Zmc2V0cy5jcHAKICAgICBiMy9CM0xvd2Vy
TWFjcm9zLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIw
MjIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk1LDYgKzE5OTUsOCBAQAogCQlE
QzYwNUI1RjFDRTI2RUE1MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4
IC8qIFByb2ZpbGVyVUlELmNwcCAqLzsgfTsKIAkJREM2MDVCNjAxQ0UyNkVBNzAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzY5QUE2NjFDRjdBMUYy
MDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0
LmNwcCAqLzsgfTsKKwkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hl
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5
Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLzsgfTsKKwkJREM2
OUI5OUQxRDE1RjkxNDAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAw
IC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovOyB9OwogCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkg
LyogVGFnUmVnaXN0ZXJzTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzc5
OTc4NDFDREU5RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MTFDREU5RjlFMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi87IH07CiAJCURDRUUyMjA5MUNFQjk4OTUwMDBD
MjM5NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHND
RkcuaCAqLzsgfTsKQEAgLTQyMTYsNiArNDIxOCw4IEBACiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5
MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJ
RC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5m
ZXJTd2l0Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0lu
ZmVyU3dpdGNoZXMuY3BwOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJT
d2l0Y2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0luZmVyU3dpdGNo
ZXMuaDsgcGF0aCA9IGIzL0IzSW5mZXJTd2l0Y2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjIw
NjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0NGRy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcyNyw2ICs0NzMxLDggQEAK
IAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCAqLywKIAkJCQkw
RkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oICovLAogCQkJCTBGRUM4NEQy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8sCisJCQkJREM2OUI5OUExRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8sCisJCQkJREM2OUI5OUIxRDE1Rjkw
RjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovLAogCQkJCTBGRUM4NUI0MUJFMTQ2MkYw
MDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8sCiAJCQkJMEZFQzg1QjUxQkUxNDYyRjAw
ODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggKi8sCiAJCQkJMEZFQzg1QjYxQkUxNDYyRjAwODBG
Rjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oICovLApAQCAtNzUxOCw2ICs3NTI0LDcgQEAK
IAkJCQlBNUVBNzEwNDE5RjZERTcyMDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rp
c3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRjY0RUFGMzFD
NEVDRDA2MDA2MjFFOUIgLyogQWlyQXJnSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVF
QTcxMDUxOUY2REU3NDAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfY29uZmlndXJhdGlvbl9oZWFk
ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlEQzY5Qjk5RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNjE5RjZERTc2MDA5OEY1
RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2ltcGxlbWVudGF0aW9uLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3QzM5RkYxQzkwQzU1QjAwNDgwMTUxIC8qIERGR09wSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDcxOUY2REU3ODAwOThGNUVDIC8qIGdlbmVyYXRlX29i
amNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKQEAg
LTg2ODQsNiArODY5MSw3IEBACiAJCQkJMEZFQzg1MDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hl
Y2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTA3MUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDkxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNjlCOTlDMUQx
NUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxp
emVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5oIgogI2luY2x1
ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNGb2xkUGF0aENvbnN0YW50cy5oIgorI2luY2x1
ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgogI2luY2x1ZGUgIkIzTGVnYWxpemVNZW1vcnlPZmZzZXRz
LmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvcy5oIgogI2luY2x1ZGUgIkIzTG93ZXJNYWNyb3NB
ZnRlck9wdGltaXphdGlvbnMuaCIKQEAgLTgyLDYgKzgzLDcgQEAgdm9pZCBnZW5lcmF0ZVRvQWly
KFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgICAgICByZWR1Y2VEb3VibGVUb0Zsb2F0KHByb2Nl
ZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0cmVuZ3RoKHByb2NlZHVyZSk7CiAgICAgICAgIGVsaW1p
bmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zKHByb2NlZHVyZSk7CisgICAgICAgIGluZmVyU3dpdGNo
ZXMocHJvY2VkdXJlKTsKICAgICAgICAgZHVwbGljYXRlVGFpbHMocHJvY2VkdXJlKTsKICAgICAg
ICAgZml4U1NBKHByb2NlZHVyZSk7CiAgICAgICAgIGZvbGRQYXRoQ29uc3RhbnRzKHByb2NlZHVy
ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNo
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzE1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJCM0luZmVyU3dpdGNoZXMuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNp
bmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM1BoYXNlU2NvcGUu
aCIKKyNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZh
bHVlLmgiCisjaW5jbHVkZSAiQjNVc2VDb3VudHMuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKworbmFtZXNwYWNlIHsKKworY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisK
K2NsYXNzIEluZmVyU3dpdGNoZXMgeworcHVibGljOgorICAgIEluZmVyU3dpdGNoZXMoUHJvY2Vk
dXJlJiBwcm9jKQorICAgICAgICA6IG1fcHJvYyhwcm9jKQorICAgICAgICAsIG1faW5zZXJ0aW9u
U2V0KHByb2MpCisgICAgICAgICwgbV91c2VDb3VudHMocHJvYykKKyAgICB7CisgICAgfQorICAg
IAorICAgIGJvb2wgcnVuKCkKKyAgICB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgZGF0YUxvZygiQjMgYmVmb3JlIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAg
ICAKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgYm9vbCBldmVyQ2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAgICAgICAgICAgY2hhbmdl
ZCA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKQorICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0gYXR0ZW1wdFRvTWVyZ2VX
aXRoUHJlZGVjZXNzb3IoYmxvY2spOworCisgICAgICAgICAgICBldmVyQ2hhbmdlZCB8PSBjaGFu
Z2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZXZlckNoYW5nZWQpIHsKKyAg
ICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAgICAgICAgICAgbV9wcm9j
LmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9wcm9jLmRlbGV0
ZU9ycGhhbnMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgaW5mZXJTd2l0Y2hlczpcbiIsIG1fcHJvYyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgYm9vbCBhdHRlbXB0VG9N
ZXJnZVdpdGhQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKKyAgICB7CisgICAgICAgIC8v
IE5vIHBvaW50IGluIGNvbnNpZGVyaW5nIHRoZSByb290IGJsb2NrLiBXZSBhbHNvIGRvbid0IGNv
bnNpZGVyIGJsb2NrcyB3aXRoIG11bHRpcGxlCisgICAgICAgIC8vIHByZWRlY2Vzc29ycywgYnV0
IHdlIGNvdWxkIGhhbmRsZSB0aGlzIGlmIHdlIG1hZGUgdGhpcyBjb2RlIGEgYml0IG1vcmUgZ2Vu
ZXJhbCBhbmQgd2Ugd2VyZQorICAgICAgICAvLyBub3QgYWZyYWlkIG9mIGNvZGUgYmxvYXQuCisg
ICAgICAgIGlmIChibG9jay0+bnVtUHJlZGVjZXNzb3JzKCkgIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uID0gZGVzY3JpYmUoYmxvY2spOworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IGRhdGFMb2coIkRlc2NyaXB0aW9uIG9mIHByaW1hcnkgYmxvY2sgIiwgKmJsb2NrLCAiOiAiLCBk
ZXNjcmlwdGlvbiwgIlxuIik7CisgICAgICAgIGlmICghZGVzY3JpcHRpb24pIHsKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJl
Y2F1c2Ugbm90IHN3aXRjaC1saWtlLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIGJsb2NrIGJl
aGF2ZXMgbGlrZSBhIHN3aXRjaC4gQnV0IHdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgaXQgZG9lc24n
dCBhbHNvCisgICAgICAgIC8vIHBlcmZvcm0gYW55IGVmZmVjdHMgb3IgZG8gZXhwZW5zaXZlIHRo
aW5ncy4gV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBzd2l0Y2ggaWYgdGhhdCB3aWxsCisgICAg
ICAgIC8vIG1ha2UgZXhwZW5zaXZlIHRoaW5ncyBleGVjdXRlIHVuY29uZGl0aW9uYWxseS4gV2Un
cmUgdmVyeSBjb25zZXJ2YXRpdmUgYWJvdXQgaG93IHdlIGRlZmluZQorICAgICAgICAvLyAiZXhw
ZW5zaXZlIi4KKyAgICAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqYmxvY2spIHsKKyAgICAgICAg
ICAgIGlmICh2YWx1ZS0+aXNGcmVlKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBpZiAodmFsdWUgPT0gZGVzY3JpcHRpb24uZXh0cmEpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZGVzY3JpcHRpb24uYnJhbmNoKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiAiLCBkZWVwRHVtcCht
X3Byb2MsIHZhbHVlKSwgIlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yID0gYmxvY2stPnBy
ZWRlY2Vzc29yKDApOworICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBwcmVkZWNlc3NvckRlc2Ny
aXB0aW9uID0gZGVzY3JpYmUocHJlZGVjZXNzb3IpOworICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgIGRhdGFMb2coIiAgICBEZXNjcmlwdGlvbiBvZiBwcmVkZWNlc3NvciBibG9jayAi
LCAqcHJlZGVjZXNzb3IsICI6ICIsIHByZWRlY2Vzc29yRGVzY3JpcHRpb24sICJcbiIpOworICAg
ICAgICBpZiAoIXByZWRlY2Vzc29yRGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugbm90IHN3
aXRjaC1saWtlLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIC8vIEJvdGggdXMgYW5kIHRoZSBwcmVkZWNlc3NvciBhcmUgc3dpdGNo
LWxpa2UsIGJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0IHdlJ3JlIGNvbXBhdGlibGUuCisgICAg
ICAgIC8vIFdlIG1heSBiZSBzd2l0Y2hpbmcgb24gZGlmZmVyZW50IHZhbHVlcyEKKyAgICAgICAg
aWYgKGRlc2NyaXB0aW9uLnNvdXJjZSAhPSBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLnNvdXJjZSkg
eworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAg
IEJhaWxpbmcgYmVjYXVzZSBzb3VyY2VzIGRvbid0IG1hdGNoLlxuIik7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGV4cGVjdCB0
aGF0IHdlIGFyZSB0aGUgZmFsbC10aHJvdWdoIGRlc3RpbmF0aW9uIG9mIHRoZSBwcmVkZWNlc3Nv
ci4gVGhpcyBpcyBhIGJpdCBvZiBhCisgICAgICAgIC8vIGdvb2Z5IGNvbmRpdGlvbi4gSWYgd2Ug
d2VyZSBub3QgdGhlIGZhbGwtdGhyb3VnaCBkZXN0aW5hdGlvbiB0aGVuIG91ciBzd2l0Y2ggaXMg
cHJvYmFibHkKKyAgICAgICAgLy8ganVzdCB0b3RhbGx5IHJlZHVuZGFudCBhbmQgd2Ugc2hvdWxk
IGJlIGdldHRpbmcgcmlkIG9mIGl0LiBCdXQgd2UgZG9uJ3QgaGFuZGxlIHRoYXQgaGVyZSwKKyAg
ICAgICAgLy8geWV0LgorICAgICAgICBpZiAocHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpICE9IGJsb2NrKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIGZhbGwtdGhyb3VnaCBvZiBw
cmVkZWNlc3NvciBpcyBub3QgdGhlIHByaW1hcnkgYmxvY2suXG4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRo
YXQgdGhlcmUgYWluJ3Qgbm8gbG9vcHMuCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpID09IGJsb2NrCisgICAgICAgICAgICB8fCBkZXNjcmlwdGlvbi5mYWxsVGhy
b3VnaC5ibG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGZhbGwtdGhy
b3VnaCBsb29wLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBkZXNjcmlwdGlvbi5jYXNlcykgewor
ICAgICAgICAgICAgaWYgKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSA9PSBibG9jaworICAgICAg
ICAgICAgICAgIHx8IHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSA9PSBwcmVkZWNlc3Nvcikgewor
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGxvb3AgaW4gcHJpbWFyeSBjYXNlcy5cbiIpOworICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vzc29yRGVzY3JpcHRpb24u
Y2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gYmxv
Y2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gcHJlZGVj
ZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiBsb29wIGluIHByZWRlY2Vzc29yIGNh
c2VzLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRh
dGFMb2coIiAgICBEb2luZyBpdCFcbiIpOworICAgICAgICAvLyBXZSdyZSBjb21taXR0ZWQgdG8g
ZG9pbmcgdGhlIHRoaW5nLgorICAgICAgICAKKyAgICAgICAgLy8gSW5zZXJ0IGFsbCBub24tdGVy
bWluYWwgdmFsdWVzIGZyb20gb3VyIGJsb2NrIGludG8gb3VyIHByZWRlY2Vzc29yLiBXZSBkZWZp
bml0ZWx5IG5lZWQgdG8KKyAgICAgICAgLy8gZG8gdGhpcyBmb3IgY29uc3RhbnRzLiBXZSBkbyB0
aGlzIGZvciBvdGhlciB2YWx1ZXMgYXMgYSBjb25zZXJ2YXRpdmUgdGhpbmc6IHdlIHNob3VsZCBo
YXZlCisgICAgICAgIC8vIHByb3ZlZCB0aGF0IGFueSBub24tY29uc3RhbnRzIGFyZSB1c2VkLW9u
Y2UgZnJvbSB0aGUgYnJhbmNoLCBidXQgaWYgdGhpcyBmYWlscyBmb3Igc29tZQorICAgICAgICAv
LyByZWFzb24sIHRoZW4gd2Ugd2FudCB0byBzdGlsbCBlbWl0IHNvdW5kIGNvZGUuCisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQorICAgICAg
ICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUocHJlZGVjZXNzb3ItPnNpemUoKSAtIDEs
IGJsb2NrLT5hdChpKSk7CisgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUocHJlZGVjZXNz
b3IpOworICAgICAgICBibG9jay0+dmFsdWVzKCkucmVzaXplKDApOworICAgICAgICBibG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gt
Pm9yaWdpbigpKTsKKyAgICAgICAgYmxvY2stPnJlbW92ZVByZWRlY2Vzc29yKHByZWRlY2Vzc29y
KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sgOiBk
ZXNjcmlwdGlvbi5icmFuY2gtPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgc3VjY2Vz
c29yQmxvY2stPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcHJlZGVjZXNzb3IpOworICAgICAg
ICAKKyAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcHJlZGVjZXNzb3ItPnJlcGxh
Y2VMYXN0V2l0aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAgICAgICBtX3Byb2MsIHByZWRlY2Vz
c29yLT5sYXN0KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5zb3VyY2UsIGRlc2NyaXB0aW9uLmZh
bGxUaHJvdWdoKTsKKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxpbnQ2NF90PiBwcmVkZWNlc3Nv
ckNhc2VzOworICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6IHByZWRlY2Vzc29y
RGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNl
KHN3aXRjaENhc2UpOworICAgICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcy5hcHBlbmQoc3dpdGNo
Q2FzZS5jYXNlVmFsdWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjpzb3J0KHByZWRlY2Vz
c29yQ2FzZXMuYmVnaW4oKSwgcHJlZGVjZXNzb3JDYXNlcy5lbmQoKSk7CisgICAgICAgIGF1dG8g
aXNQcmVkZWNlc3NvckNhc2UgPSBbJl0gKGludDY0X3QgdmFsdWUpIC0+IGJvb2wgeworICAgICAg
ICAgICAgcmV0dXJuICEhdHJ5QmluYXJ5U2VhcmNoPGludDY0X3Q+KAorICAgICAgICAgICAgICAg
IHByZWRlY2Vzc29yQ2FzZXMsIHByZWRlY2Vzc29yQ2FzZXMuc2l6ZSgpLCB2YWx1ZSwKKyAgICAg
ICAgICAgICAgICBbXSAoaW50NjRfdCogZWxlbWVudCkgLT4gaW50NjRfdCB7IHJldHVybiAqZWxl
bWVudDsgfSk7CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKFN3aXRjaENhc2Ug
c3dpdGNoQ2FzZSA6IGRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBpZiAoIWlzUHJl
ZGVjZXNzb3JDYXNlKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpKQorICAgICAgICAgICAgICAgIHN3
aXRjaFZhbHVlLT5hcHBlbmRDYXNlKHN3aXRjaENhc2UpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIHN0cnVjdCBTd2l0Y2hEZXNjcmlwdGlvbiB7CisgICAg
ICAgIFN3aXRjaERlc2NyaXB0aW9uKCkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gISFibG9jazsgfQorICAg
ICAgICAKKyAgICAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIG91dC5wcmludCgKKyAgICAgICAgICAgICAgICAie2Jsb2NrID0gIiwg
cG9pbnRlckR1bXAoYmxvY2spLAorICAgICAgICAgICAgICAgICIsIGJyYW5jaCA9ICIsIHBvaW50
ZXJEdW1wKGJyYW5jaCksCisgICAgICAgICAgICAgICAgIiwgZXh0cmEgPSAiLCBwb2ludGVyRHVt
cChleHRyYSksCisgICAgICAgICAgICAgICAgIiwgc291cmNlID0gIiwgcG9pbnRlckR1bXAoc291
cmNlKSwKKyAgICAgICAgICAgICAgICAiLCBjYXNlcyA9ICIsIGxpc3REdW1wKGNhc2VzKSwKKyAg
ICAgICAgICAgICAgICAiLCBmYWxsVGhyb3VnaCA9ICIsIGZhbGxUaHJvdWdoLCAifSIpOworICAg
ICAgICB9CisKKyAgICAgICAgQmFzaWNCbG9jayogYmxvY2sgeyBudWxscHRyIH07CisgICAgICAg
IENvbnRyb2xWYWx1ZSogYnJhbmNoIHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogZXh0cmEg
eyBudWxscHRyIH07IC8vIFRoaXMgaXMgdGhlIEVxdWFsIG9yIE5vdEVxdWFsIHZhbHVlLCBpZiBh
cHBsaWNhYmxlLgorICAgICAgICBWYWx1ZSogc291cmNlIHsgbnVsbHB0ciB9OworICAgICAgICBW
ZWN0b3I8U3dpdGNoQ2FzZSwgMT4gY2FzZXM7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxs
VGhyb3VnaDsKKyAgICB9OworICAgIAorICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaWJlKEJh
c2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24gcmVzdWx0
OworICAgICAgICByZXN1bHQuYmxvY2sgPSBibG9jazsKKyAgICAgICAgcmVzdWx0LmJyYW5jaCA9
IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAgICAgICAgCisgICAgICAgIHN3
aXRjaCAocmVzdWx0LmJyYW5jaC0+b3Bjb2RlKCkpIHsKKyAgICAgICAgY2FzZSBCcmFuY2g6IHsK
KyAgICAgICAgICAgIFZhbHVlKiBwcmVkaWNhdGUgPSByZXN1bHQuYnJhbmNoLT5jaGlsZCgwKTsK
KyAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayB0YWtlbiA9IHJlc3VsdC5icmFuY2gtPnRha2Vu
KCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgbm90VGFrZW4gPSByZXN1bHQuYnJhbmNo
LT5ub3RUYWtlbigpOworICAgICAgICAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CisgICAgICAg
ICAgICBpZiAocHJlZGljYXRlLT5udW1DaGlsZHJlbigpID09IDIKKyAgICAgICAgICAgICAgICAm
JiBwcmVkaWNhdGUtPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIG1fdXNl
Q291bnRzLm51bVVzZXMocHJlZGljYXRlKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3dpdGNo
IChwcmVkaWNhdGUtPm9wY29kZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFcXVhbDoKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hpbGQo
MSktPmFzSW50KCksIHRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhy
b3VnaCA9IG5vdFRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOb3RFcXVhbDoK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7
CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hp
bGQoMSktPmFzSW50KCksIG5vdFRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5m
YWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKGhhbmRsZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlOworICAgICAgICAgICAgcmVzdWx0LmNh
c2VzLmFwcGVuZChTd2l0Y2hDYXNlKDAsIG5vdFRha2VuKSk7CisgICAgICAgICAgICByZXN1bHQu
ZmFsbFRocm91Z2ggPSB0YWtlbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBTd2l0Y2g6IHsKKyAgICAgICAgICAgIFN3aXRjaFZhbHVl
KiBzd2l0Y2hWYWx1ZSA9IHJlc3VsdC5icmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpOworICAgICAg
ICAgICAgcmVzdWx0LnNvdXJjZSA9IHN3aXRjaFZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
IGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAg
ICAgIHJlc3VsdC5jYXNlcy5hcHBlbmQoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICByZXN1bHQu
ZmFsbFRocm91Z2ggPSBzd2l0Y2hWYWx1ZS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJlc3VsdC5ibG9jayA9IG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQuYnJhbmNoID0g
bnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBQcm9jZWR1cmUmIG1fcHJvYzsKKyAg
ICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CisgICAgVXNlQ291bnRzIG1fdXNlQ291bnRz
OworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2Jvb2wgaW5mZXJTd2l0Y2hlcyhQ
cm9jZWR1cmUmIHByb2MpCit7CisgICAgUGhhc2VTY29wZSBwaGFzZVNjb3BlKHByb2MsICJpbmZl
clN3aXRjaGVzIik7CisgICAgSW5mZXJTd2l0Y2hlcyBpbmZlclN3aXRjaGVzKHByb2MpOworICAg
IHJldHVybiBpbmZlclN3aXRjaGVzLnJ1bigpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEIzSW5mZXJTd2l0Y2hlc19oCisjZGVmaW5lIEIzSW5mZXJTd2l0Y2hlc19oCisKKyNpZiBF
TkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3Mg
UHJvY2VkdXJlOworCisvLyBGaXhwb2ludHMgdG8gY29udmVydCBjaGFpbnMgb2YgYnJhbmNoZXMg
aW50byBzd2l0Y2hlcy4KKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYpOworCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJFKEIzX0pJVCkKKworI2VuZGlm
IC8vIEIzSW5mZXJTd2l0Y2hlc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5oCShyZXZpc2lvbiAyMDIyMTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoK
ICAgICAvLyB0cmFuc2Zvcm1hdGlvbi4gSWYgeW91IGtub3cgdGhhdCB5b3UgbWF5IGhhdmUgY3Jl
YXRlZCBzb21lLCB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8KICAgICAvLyBkZWxldGUgdGhl
bSwgbWFraW5nIHRoZSBwcm9jZWR1cmUgdmFsaWQgYWdhaW4uCiAgICAgdm9pZCBkZWxldGVPcnBo
YW5zKCk7Ci0KKyAgICAKICAgICBDRkcmIGNmZygpIGNvbnN0IHsgcmV0dXJuICptX2NmZzsgfQog
CiAgICAgRG9taW5hdG9ycyYgZG9taW5hdG9ycygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MTgsNyArNDE4LDMwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJC
MyBhZnRlciBpdGVyYXRpb24gIyIsIGluZGV4IC0gMSwgIiBvZiByZWR1Y2VTdHJlbmd0aDpcbiIp
OwogICAgICAgICAgICAgICAgIGRhdGFMb2cobV9wcm9jKTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlDRkcoKTsKIAorICAgICAgICAgICAgaWYgKG1f
Y2hhbmdlZENGRykgeworICAgICAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgp
OworICAgICAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2Ug
ZGVmaW5pdGVseSB3YW50IHRvIGRvIERDRSBiZWZvcmUgd2UgZG8gQ1NFIHNvIHRoYXQgd2UgZG9u
J3QgaG9pc3QgdGhpbmdzLiBGb3IKKyAgICAgICAgICAgIC8vIGV4YW1wbGU6CisgICAgICAgICAg
ICAvLworICAgICAgICAgICAgLy8gQGRlYWQgPSBNdWwoQGEsIEBiKQorICAgICAgICAgICAgLy8g
Li4uIGxvdHMgb2YgY29udHJvbCBmbG93IGFuZCBzdHVmZgorICAgICAgICAgICAgLy8gQHRoaW5n
ID0gTXVsKEBhLCBAYikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBJZiB3ZSBkbyBD
U0UgYmVmb3JlIERDRSwgd2Ugd2lsbCByZW1vdmUgQHRoaW5nIGFuZCBrZWVwIEBkZWFkLiBFZmZl
Y3RpdmVseSwgd2Ugd2lsbAorICAgICAgICAgICAgLy8gImhvaXN0IiBAdGhpbmcuIE9uIHRoZSBv
dGhlciBoYW5kLCBpZiB3ZSBydW4gRENFIGJlZm9yZSBDU0UsIHdlIHdpbGwga2lsbCBAZGVhZCBh
bmQKKyAgICAgICAgICAgIC8vIGtlZXAgQHRoaW5nLiBUaGF0J3MgYmV0dGVyLCBzaW5jZSB3ZSB1
c3VhbGx5IHdhbnQgdGhpbmdzIHRvIHN0YXkgd2hlcmV2ZXIgdGhlIGNsaWVudAorICAgICAgICAg
ICAgLy8gcHV0IHRoZW0uIFdlJ3JlIG5vdCBhY3R1YWxseSBzbWFydCBlbm91Z2ggdGhpbmdzIHRv
IG1vdmUgdGhpbmdzIGFyb3VuZCBhdCByYW5kb20uCisgICAgICAgICAgICBraWxsRGVhZENvZGUo
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlTU0EoKTsKKyAgICAgICAgICAg
IAogICAgICAgICAgICAgbV9wcm9jLnJlc2V0VmFsdWVPd25lcnMoKTsKICAgICAgICAgICAgIG1f
ZG9taW5hdG9ycyA9ICZtX3Byb2MuZG9taW5hdG9ycygpOyAvLyBSZWNvbXB1dGUgaWYgbmVjZXNz
YXJ5LgogICAgICAgICAgICAgbV9wdXJlQ1NFLmNsZWFyKCk7CkBAIC00NDEsMjMgKzQ2NCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShtX2Jsb2Nr
KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fYmxvY2tJbnNlcnRpb25TZXQu
ZXhlY3V0ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7
Ci0gICAgICAgICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVDRkcoKTsKLSAgICAgICAgICAgICAg
ICBtX2RvbWluYXRvcnMgPSAmbV9wcm9jLmRvbWluYXRvcnMoKTsgLy8gUmVjb21wdXRlIGlmIG5l
Y2Vzc2FyeS4KLSAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzaW1wbGlmeUNGRygpOwotCi0gICAgICAg
ICAgICBpZiAobV9jaGFuZ2VkQ0ZHKSB7CisgICAgICAgICAgICBpZiAobV9ibG9ja0luc2VydGlv
blNldC5leGVjdXRlKCkgfCBtX2NoYW5nZWRDRkcpIHsKICAgICAgICAgICAgICAgICBtX3Byb2Mu
cmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICAgICAgICAgICAgICBtX3Byb2MuaW52YWxpZGF0ZUNG
RygpOworICAgICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9IG51bGxwdHI7IC8vIERvbWluYXRv
cnMgYXJlIG5vdCB2YWxpZCBhbnltb3JlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGVtIHlldC4KICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBraWxsRGVhZENvZGUoKTsKLSAgICAgICAgICAgIHNpbXBsaWZ5U1NBKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIHJlc3VsdCB8PSBtX2NoYW5nZWQ7CiAgICAgICAgIH0gd2hpbGUg
KG1fY2hhbmdlZCk7CkBAIC0yMzMzLDExICsyMzQ1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgYmxvY2stPmF0KHRhcmdldEluZGV4KyspID0gdmFsdWU7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEl0J3Mgbm90
IGVudGlyZWx5IGNsZWFyIGlmIHRoaXMgaXMgbmVlZGVkLiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNl
IHRvIGhhdmUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmb3JjZSBhIHJlcnVuIG9mIHRo
ZSBmaXhwb2ludCBmb3Igbm93LCBzaW5jZSB0aGF0IHdpbGwgbWFrZSBpdCBlYXNpZXIKLSAgICAg
ICAgICAgICAgICAgICAgLy8gdG8gZG8gcGVlcGhvbGUgb3B0aW1pemF0aW9uczogcmVtb3Zpbmcg
ZGVhZCBjb2RlIHdpbGwgbWFrZSB0aGUgcGVlcGhvbGUKLSAgICAgICAgICAgICAgICAgICAgLy8g
ZWFzaWVyIHRvIHNwb3QuCiAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAyMjE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjksNiArNjI5LDIxIEBAIHZvaWQg
VmFsdWU6OnBlcmZvcm1TdWJzdGl0dXRpb24oKQogICAgIH0KIH0KIAorYm9vbCBWYWx1ZTo6aXNG
cmVlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CisgICAgY2FzZSBDb25zdDMy
OgorICAgIGNhc2UgQ29uc3Q2NDoKKyAgICBjYXNlIENvbnN0RG91YmxlOgorICAgIGNhc2UgQ29u
c3RGbG9hdDoKKyAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgTm9wOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
CiB2b2lkIFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0
CiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjIx
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBhYm92ZUVx
dWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0
YXRlIGJlbG93RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZp
cnR1YWwgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBjb21wYXJpc29uIHRo
ZW4gdGhpcyByZXR1cm5zIHRoZSBpbnZlcnRlZCBmb3JtIG9mIHRoYXQgY29tcGFyaXNvbiwgaWYK
ICAgICAvLyBwb3NzaWJsZS4gSXQgY2FuIGJlIGltcG9zc2libGUgZm9yIGRvdWJsZSBjb21wYXJp
c29ucywgd2hlcmUgZm9yIGV4YW1wbGUgTGVzc1RoYW4gYW5kCiAgICAgLy8gR3JlYXRlckVxdWFs
IGJlaGF2ZSBkaWZmZXJlbnRseS4gSWYgdGhpcyByZXR1cm5zIGEgdmFsdWUsIGl0IGlzIGEgbmV3
IHZhbHVlLCB3aGljaCBtdXN0IGJlCkBAIC0yMTAsNiArMjEwLDExIEBAIHB1YmxpYzoKICAgICAv
LyByZXBvaW50IGl0IGF0IHRoZSBJZGVudGl0eSdzIGNoaWxkLiBGb3Igc2ltcGxpY2l0eSwgdGhp
cyB3aWxsIGZvbGxvdyBhcmJpdHJhcmlseSBsb25nIGNoYWlucwogICAgIC8vIG9mIElkZW50aXR5
J3MuCiAgICAgdm9pZCBwZXJmb3JtU3Vic3RpdHV0aW9uKCk7CisgICAgCisgICAgLy8gRnJlZSB2
YWx1ZXMgYXJlIHRob3NlIHdob3NlIHByZXNlbmNlIGlzIGd1YXJhbnRlZWQgbm90IHRvIGh1cnQg
Y29kZS4gV2UgY29uc2lkZXIgY29uc3RhbnRzLAorICAgIC8vIElkZW50aXRpZXMsIGFuZCBOb3Bz
IHRvIGJlIGZyZWUuIENvbnN0YW50cyBhcmUgZnJlZSBiZWNhdXNlIHdlIGhvaXN0IHRoZW0gdG8g
YW4gb3B0aW1hbCBwbGFjZS4KKyAgICAvLyBJZGVudGl0aWVzIGFuZCBOb3BzIGFyZSBmcmVlIGJl
Y2F1c2Ugd2UgcmVtb3ZlIHRoZW0uCisgICAgYm9vbCBpc0ZyZWUoKSBjb25zdDsKIAogICAgIC8v
IFdhbGsgdGhlIGFuY2VzdG9ycyBvZiB0aGlzIHZhbHVlIChpLmUuIHRoZSBncmFwaCBvZiB0aGlu
Z3MgaXQgdHJhbnNpdGl2ZWx5IHVzZXMpLiBUaGlzCiAgICAgLy8gZWl0aGVyIHdhbGtzIHBoaXMg
b3Igbm90LCBkZXBlbmRpbmcgb24gd2hldGhlciBQaGlDaGlsZHJlbiBpcyBudWxsLiBZb3VyIGNh
bGxiYWNrIGdldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMjIxNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2OSw4ICsyMzY5LDcg
QEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX25v
ZGUtPnVpZE9wZXJhbmQoKTsKICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAg
ICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMu
U3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbG93
U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgc3BlY3VsYXRlKEJhZElk
ZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmluZ0ltcGwsIG1fb3V0
LmNvbnN0SW50UHRyKHVpZCkpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIExWYWx1
ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTQ4ODcsMTAg
KzQ4ODYsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNC
aW5hcnlVc2VLaW5kKFN5bWJvbFVzZSkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93
U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93
U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJpbmdJ
bXBsID0gbV9vdXQubG9hZFB0cihsZWZ0LCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmlnaHRTdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihyaWdodCwg
bV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJp
bmdJbXBsID0gbG93U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIHJpZ2h0U3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxkMigpKTsKICAg
ICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQuZXF1YWwobGVmdFN0cmluZ0ltcGwsIHJpZ2h0U3Ry
aW5nSW1wbCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC05NTgxLDYgKzk1
NzgsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAgIAorICAgIExWYWx1ZSBsb3dTeW1i
b2xVSUQoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNP
cGVyYW5kU3BlY3VsYXRpb24pCisgICAgeworICAgICAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBl
ZGdlLT5keW5hbWljQ2FzdENvbnN0YW50PFN5bWJvbCo+KCkpCisgICAgICAgICAgICByZXR1cm4g
bV9vdXQuY29uc3RJbnRQdHIoc3ltYm9sLT5wcml2YXRlTmFtZSgpLnVpZCgpKTsKKyAgICAgICAg
TFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChlZGdlLCBtb2RlKTsKKyAgICAgICAgLy8gRklYTUU6
IFdlIGNvdWxkIGF2b2lkIHRoaXMgbG9hZCBpZiB3ZSBoYWQgaGFzaC1jb25zZWQgU3ltYm9scy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODkw
OAorICAgICAgICByZXR1cm4gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMuU3ltYm9sX3By
aXZhdGVOYW1lKTsKKyAgICB9CiAKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282087</attachid>
            <date>2016-06-25 20:12:23 -0700</date>
            <delta_ts>2016-07-18 22:43:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30477</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE2LTA2LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgc2hvdWxkIGluZmVyIHN3aXRjaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg4OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIG5ldyBwaGFzZSB0byBCMywgd2hp
Y2ggZmluZHMgY2hhaW5zIG9mIGJyYW5jaGVzIHRoYXQgdGVzdCBmb3IgKGluKWVxdWFsaXR5IG9u
IHRoZQorICAgICAgICBzYW1lIHZhbHVlIGFuZCBjb25zdGFudHMsIGFuZCB0dXJucyB0aGVtIGlu
dG8gYSBTd2l0Y2guIFRoaXMgY2FuIHR1cm4gTyhuKSBjb2RlIGludG8KKyAgICAgICAgTyhuIGxv
ZyBuKSBjb2RlLiBXaGVuIGJ1ZyAxNTExNDEgKHRhYmxlIGJhc2VkIHN3aXRjaGVzKSBsYW5kcywg
d2UnbGwgYmUgYWJsZSB0byB0dXJuIHRoYXQKKyAgICAgICAgY29kZSBpbnRvIE8oMSkgY29kZSBp
biBzb21lIGNhc2VzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBjYW4gbWFrZSBhIGJpZyBkaWZm
ZXJlbnQgaW4gSlMuIFNheSB5b3Ugd3JpdGUgYSBzd2l0Y2ggaW4gd2hpY2ggdGhlIGNhc2Ugc3Rh
dGVtZW50cyBhcmUKKyAgICAgICAgdmFyaWFibGUgcmVzb2x1dGlvbnMuIFRoZSBieXRlY29kZSBn
ZW5lcmF0b3IgY2Fubm90IHVzZSBhIGJ5dGVjb2RlIHN3aXRjaCBpbiB0aGlzIGNhc2UsIHNpbmNl
CisgICAgICAgIHdlJ3JlIHJlcXVpcmVkIHRvIGV2YWx1YXRlIHRoZSByZXNvbHV0aW9ucyBpbiBv
cmRlci4gQnV0IGluIERGRyBJUiwgd2Ugd2lsbCBvZnRlbiB0dXJuIHRob3NlCisgICAgICAgIHZh
cmlhYmxlIHJlc29sdXRpb25zIGludG8gY29uc3RhbnRzLCBzaW5jZSB3ZSBkbyB0aGF0IGZvciBh
bnkgaW1tdXRhYmxlIHNpbmdsZXRvbi4gVGhpcyBtZWFucworICAgICAgICB0aGF0IEIzIHdpbGwg
c2VlIGEgY2hhaW4gb2YgQnJhbmNoZXM6IHRoZSBlbHNlIGNhc2Ugb2Ygb25lIEJyYW5jaCB3aWxs
IHBvaW50IHRvIGEgYmFzaWMgYmxvY2sKKyAgICAgICAgdGhhdCBkb2VzIG5vdGhpbmcgYnV0IEJy
YW5jaCBvbiBlcXVhbGl0eSBvbiB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgZmlyc3QgQnJhbmNoLgor
ICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGNoYW5nZXMgaG93IHdlIGNvbXBpbGUgZXF1YWxp
dHkgdG8gU3ltYm9scyB0byBjb25zdGFudC1mb2xkIHRoZSBsb2FkIG9mIHRoZQorICAgICAgICBT
eW1ib2wncyBVSUQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGIzL0IzR2Vu
ZXJhdGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Z2VuZXJhdGVUb0Fpcik6CisgICAgICAgICog
YjMvQjNJbmZlclN3aXRjaGVzLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjppbmZlclN3
aXRjaGVzKToKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuaDogQWRkZWQuCisgICAgICAg
ICogYjMvQjNQcm9jZWR1cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6Y2ZnKToK
KyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVl
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKToKKyAg
ICAgICAgKEpTQzo6QjM6OlZhbHVlOjppc0ZyZWUpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6
OmR1bXBNZXRhKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICogZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVDaGVja0lkZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6Omxvd1N5bWJvbCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
Omxvd1N5bWJvbFVJRCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxv
d05vbk51bGxPYmplY3QpOgorCiAyMDE2LTA2LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQjMgc2hvdWxkIGRpZSBzb29uZXIgaWYgYSBWYWx1ZSBoYXMgdGhl
IHdyb25nIG51bWJlciBvZiBjaGlsZHJlbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgc2V0KEphdmFTY3Jp
cHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcAogICAgIGIzL0IzR2Vu
ZXJhdGUuY3BwCiAgICAgYjMvQjNIZWFwUmFuZ2UuY3BwCisgICAgYjMvQjNJbmZlclN3aXRjaGVz
LmNwcAogICAgIGIzL0IzSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0IzTGVnYWxpemVNZW1vcnlP
ZmZzZXRzLmNwcAogICAgIGIzL0IzTG93ZXJNYWNyb3MuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTE5OTMsNiArMTk5Myw4IEBACiAJCURDNjA1QjVGMUNFMjZFQTUwMDU5MzcxOCAvKiBQcm9m
aWxlclVJRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwICovOyB9OwogCQlE
QzYwNUI2MDFDRTI2RUE3MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAv
KiBQcm9maWxlclVJRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCURDNjlBQTY2MUNGN0ExRjIwMEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5QUE2NTFDRjdB
MUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovOyB9OworCQlEQzY5Qjk5QzFEMTVGOTEy
MDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlCOTlBMUQxNUY5MEYwMDJFM0MwMCAvKiBCM0luZmVy
U3dpdGNoZXMuY3BwICovOyB9OworCQlEQzY5Qjk5RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJbmZl
clN3aXRjaGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggKi87IH07CiAJ
CURDNzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MjFDREU5RjlFMDA0
RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCURDNzk5Nzg0MUNERTlGQTIwMDRENEEwOSAvKiBUYWdSZWdp
c3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLzsg
fTsKIAkJRENFRTIyMDkxQ0VCOTg5NTAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENFRTIyMDYxQ0VCOTg5
MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovOyB9OwpAQCAtNDIxMiw2ICs0MjE0LDgg
QEAKIAkJREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9IHBy
b2ZpbGVyL1Byb2ZpbGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2
MDVCNUMxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVyVUlELmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJ
RC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3
MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5Qjk5
QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzSW5mZXJTd2l0Y2hlcy5jcHA7IHBhdGggPSBiMy9CM0lu
ZmVyU3dpdGNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5Qjk5QjFE
MTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzSW5mZXJTd2l0Y2hlcy5oOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgxMUNERTlGOUUwMDRENEEw
OSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2Fy
ZHNDRkcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzQ0ZH
Lmg7IHBhdGggPSBkZmcvREZHQmFja3dhcmRzQ0ZHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00NzIzLDYgKzQ3MjcsOCBAQAogCQkJCTBGRUM4NUMwMUJFMTY3QTAwMDgwRkY3NCAv
KiBCM0hlYXBSYW5nZS5oICovLAogCQkJCTBGRUM4NEQxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0lu
ZGV4TWFwLmggKi8sCiAJCQkJMEZFQzg0RDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhTZXQu
aCAqLywKKwkJCQlEQzY5Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNw
cCAqLywKKwkJCQlEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmgg
Ki8sCiAJCQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCAq
LywKIAkJCQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCAqLywK
IAkJCQkwRkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgg
Ki8sCkBAIC03NTEyLDYgKzc1MTgsNyBAQAogCQkJCUE1RUE3MTA0MTlGNkRFNzIwMDk4RjVFQyAv
KiBnZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjRFQUYzMUM0RUNEMDYwMDYyMUU5QiAvKiBBaXJBcmdJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNTE5RjZERTc0MDA5OEY1RUMgLyogZ2VuZXJh
dGVfb2JqY19jb25maWd1cmF0aW9uX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAorCQkJCURDNjlC
OTlEMUQxNUY5MTQwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1RUE3MTA2MTlGNkRFNzYwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRp
b25faW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRjdDMzlGRjFDOTBDNTVC
MDA0ODAxNTEgLyogREZHT3BJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNzE5RjZE
RTc4MDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBlX2NvbnZlcnNpb25zX2hl
YWRlci5weSBpbiBIZWFkZXJzICovLApAQCAtODY3Nyw2ICs4Njg0LDcgQEAKIAkJCQkwRkVDODUw
NTFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFQzg1MDcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODUwOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hl
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwQjFCREFDREFDMDA4MEZGNzQgLyogQjND
b21tdXRhdGl2aXR5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBEMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzZFNTQ1NDFD
NDY4RTc3MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5lcmF0ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCShyZXZpc2lv
biAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5lcmF0ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJCM0VsaW1pbmF0ZUNvbW1v
blN1YmV4cHJlc3Npb25zLmgiCiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0Zv
bGRQYXRoQ29uc3RhbnRzLmgiCisjaW5jbHVkZSAiQjNJbmZlclN3aXRjaGVzLmgiCiAjaW5jbHVk
ZSAiQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuaCIKICNpbmNsdWRlICJCM0xvd2VyTWFjcm9zLmgi
CiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvc0FmdGVyT3B0aW1pemF0aW9ucy5oIgpAQCAtODIsNiAr
ODMsNyBAQCB2b2lkIGdlbmVyYXRlVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUsCiAgICAgICAg
IHJlZHVjZURvdWJsZVRvRmxvYXQocHJvY2VkdXJlKTsKICAgICAgICAgcmVkdWNlU3RyZW5ndGgo
cHJvY2VkdXJlKTsKICAgICAgICAgZWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMocHJvY2Vk
dXJlKTsKKyAgICAgICAgaW5mZXJTd2l0Y2hlcyhwcm9jZWR1cmUpOwogICAgICAgICBkdXBsaWNh
dGVUYWlscyhwcm9jZWR1cmUpOwogICAgICAgICBmaXhTU0EocHJvY2VkdXJlKTsKICAgICAgICAg
Zm9sZFBhdGhDb25zdGFudHMocHJvY2VkdXJlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgorCisjaWYg
RU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5o
IgorI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5l
cy5oIgorI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM1VzZUNvdW50cy5o
IgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCituYW1lc3BhY2UgeworCitjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworY2xhc3MgSW5mZXJTd2l0Y2hlcyB7CitwdWJsaWM6
CisgICAgSW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHByb2MpCisgICAgICAgIDogbV9wcm9jKHBy
b2MpCisgICAgICAgICwgbV9pbnNlcnRpb25TZXQocHJvYykKKyAgICAgICAgLCBtX3VzZUNvdW50
cyhwcm9jKQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBydW4oKQorICAgIHsKKyAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCJCMyBiZWZvcmUgaW5mZXJTd2l0
Y2hlczpcbiIsIG1fcHJvYyk7CisgICAgICAgIAorICAgICAgICBib29sIGNoYW5nZWQgPSB0cnVl
OworICAgICAgICBib29sIGV2ZXJDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIHdoaWxlIChjaGFu
Z2VkKSB7CisgICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpCisgICAgICAgICAgICAgICAg
Y2hhbmdlZCB8PSBhdHRlbXB0VG9NZXJnZVdpdGhQcmVkZWNlc3NvcihibG9jayk7CisKKyAgICAg
ICAgICAgIGV2ZXJDaGFuZ2VkIHw9IGNoYW5nZWQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGlmIChldmVyQ2hhbmdlZCkgeworICAgICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmls
aXR5KCk7CisgICAgICAgICAgICBtX3Byb2MuaW52YWxpZGF0ZUNGRygpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBtX3Byb2MuZGVsZXRlT3JwaGFucygpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJCMyBhZnRlciBp
bmZlclN3aXRjaGVzOlxuIiwgbV9wcm9jKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorcHJp
dmF0ZToKKyAgICBib29sIGF0dGVtcHRUb01lcmdlV2l0aFByZWRlY2Vzc29yKEJhc2ljQmxvY2sq
IGJsb2NrKQorICAgIHsKKyAgICAgICAgLy8gTm8gcG9pbnQgaW4gY29uc2lkZXJpbmcgdGhlIHJv
b3QgYmxvY2suIFdlIGFsc28gZG9uJ3QgY29uc2lkZXIgYmxvY2tzIHdpdGggbXVsdGlwbGUKKyAg
ICAgICAgLy8gcHJlZGVjZXNzb3JzLCBidXQgd2UgY291bGQgaGFuZGxlIHRoaXMgaWYgd2UgbWFk
ZSB0aGlzIGNvZGUgYSBiaXQgbW9yZSBnZW5lcmFsIGFuZCB3ZSB3ZXJlCisgICAgICAgIC8vIG5v
dCBhZnJhaWQgb2YgY29kZSBibG9hdC4KKyAgICAgICAgaWYgKGJsb2NrLT5udW1QcmVkZWNlc3Nv
cnMoKSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAg
U3dpdGNoRGVzY3JpcHRpb24gZGVzY3JpcHRpb24gPSBkZXNjcmliZShibG9jayk7CisgICAgICAg
IGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiRGVzY3JpcHRpb24gb2YgcHJpbWFy
eSBibG9jayAiLCAqYmxvY2ssICI6ICIsIGRlc2NyaXB0aW9uLCAiXG4iKTsKKyAgICAgICAgaWYg
KCFkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAg
ICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBub3Qgc3dpdGNoLWxpa2UuXG4iKTsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8g
V2Uga25vdyB0aGF0IHRoaXMgYmxvY2sgYmVoYXZlcyBsaWtlIGEgc3dpdGNoLiBCdXQgd2UgbmVl
ZCB0byB2ZXJpZnkgdGhhdCBpdCBkb2Vzbid0IGFsc28KKyAgICAgICAgLy8gcGVyZm9ybSBhbnkg
ZWZmZWN0cyBvciBkbyBleHBlbnNpdmUgdGhpbmdzLiBXZSBkb24ndCB3YW50IHRvIGNyZWF0ZSBh
IHN3aXRjaCBpZiB0aGF0IHdpbGwKKyAgICAgICAgLy8gbWFrZSBleHBlbnNpdmUgdGhpbmdzIGV4
ZWN1dGUgdW5jb25kaXRpb25hbGx5LiBXZSdyZSB2ZXJ5IGNvbnNlcnZhdGl2ZSBhYm91dCBob3cg
d2UgZGVmaW5lCisgICAgICAgIC8vICJleHBlbnNpdmUiLgorICAgICAgICBmb3IgKFZhbHVlKiB2
YWx1ZSA6ICpibG9jaykgeworICAgICAgICAgICAgaWYgKHZhbHVlLT5pc0ZyZWUoKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBkZXNjcmlwdGlv
bi5leHRyYSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmICh2YWx1
ZSA9PSBkZXNjcmlwdGlvbi5icmFuY2gpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGlu
ZyBiZWNhdXNlIG9mICIsIGRlZXBEdW1wKG1fcHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQmFzaWNCbG9j
ayogcHJlZGVjZXNzb3IgPSBibG9jay0+cHJlZGVjZXNzb3IoMCk7CisgICAgICAgIFN3aXRjaERl
c2NyaXB0aW9uIHByZWRlY2Vzc29yRGVzY3JpcHRpb24gPSBkZXNjcmliZShwcmVkZWNlc3Nvcik7
CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIERlc2NyaXB0
aW9uIG9mIHByZWRlY2Vzc29yIGJsb2NrICIsICpwcmVkZWNlc3NvciwgIjogIiwgcHJlZGVjZXNz
b3JEZXNjcmlwdGlvbiwgIlxuIik7CisgICAgICAgIGlmICghcHJlZGVjZXNzb3JEZXNjcmlwdGlv
bikgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygi
ICAgIEJhaWxpbmcgYmVjYXVzZSBub3Qgc3dpdGNoLWxpa2UuXG4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQm90aCB1cyBhbmQg
dGhlIHByZWRlY2Vzc29yIGFyZSBzd2l0Y2gtbGlrZSwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHRo
YXQgd2UncmUgY29tcGF0aWJsZS4KKyAgICAgICAgLy8gV2UgbWF5IGJlIHN3aXRjaGluZyBvbiBk
aWZmZXJlbnQgdmFsdWVzIQorICAgICAgICBpZiAoZGVzY3JpcHRpb24uc291cmNlICE9IHByZWRl
Y2Vzc29yRGVzY3JpcHRpb24uc291cmNlKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIHNvdXJjZXMgZG9uJ3Qg
bWF0Y2guXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLy8gV2UgZXhwZWN0IHRoYXQgd2UgYXJlIHRoZSBmYWxsLXRocm91Z2ggZGVz
dGluYXRpb24gb2YgdGhlIHByZWRlY2Vzc29yLiBUaGlzIGlzIGEgYml0IG9mIGEKKyAgICAgICAg
Ly8gZ29vZnkgY29uZGl0aW9uLiBJZiB3ZSB3ZXJlIG5vdCB0aGUgZmFsbC10aHJvdWdoIGRlc3Rp
bmF0aW9uIHRoZW4gb3VyIHN3aXRjaCBpcyBwcm9iYWJseQorICAgICAgICAvLyBqdXN0IHRvdGFs
bHkgcmVkdW5kYW50IGFuZCB3ZSBzaG91bGQgYmUgZ2V0dGluZyByaWQgb2YgaXQuIEJ1dCB3ZSBk
b24ndCBoYW5kbGUgdGhhdCBoZXJlLAorICAgICAgICAvLyB5ZXQuCisgICAgICAgIGlmIChwcmVk
ZWNlc3NvckRlc2NyaXB0aW9uLmZhbGxUaHJvdWdoLmJsb2NrKCkgIT0gYmxvY2spIHsKKyAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5n
IGJlY2F1c2UgZmFsbC10aHJvdWdoIG9mIHByZWRlY2Vzc29yIGlzIG5vdCB0aGUgcHJpbWFyeSBi
bG9jay5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGVyZSBhaW4ndCBubyBsb29wcy4KKyAgICAg
ICAgaWYgKGRlc2NyaXB0aW9uLmZhbGxUaHJvdWdoLmJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAg
ICAgIHx8IGRlc2NyaXB0aW9uLmZhbGxUaHJvdWdoLmJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsK
KyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBC
YWlsaW5nIGJlY2F1c2Ugb2YgZmFsbC10aHJvdWdoIGxvb3AuXG4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2Fz
ZSA6IGRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBpZiAoc3dpdGNoQ2FzZS50YXJn
ZXRCbG9jaygpID09IGJsb2NrCisgICAgICAgICAgICAgICAgfHwgc3dpdGNoQ2FzZS50YXJnZXRC
bG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugb2YgbG9vcCBp
biBwcmltYXJ5IGNhc2VzLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNl
IDogcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgaWYgKHN3aXRj
aENhc2UudGFyZ2V0QmxvY2soKSA9PSBibG9jaworICAgICAgICAgICAgICAgIHx8IHN3aXRjaENh
c2UudGFyZ2V0QmxvY2soKSA9PSBwcmVkZWNlc3NvcikgeworICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNl
IG9mIGxvb3AgaW4gcHJlZGVjZXNzb3IgY2FzZXMuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIERvaW5nIGl0IVxuIik7CisgICAg
ICAgIC8vIFdlJ3JlIGNvbW1pdHRlZCB0byBkb2luZyB0aGUgdGhpbmcuCisgICAgICAgIAorICAg
ICAgICAvLyBJbnNlcnQgYWxsIG5vbi10ZXJtaW5hbCB2YWx1ZXMgZnJvbSBvdXIgYmxvY2sgaW50
byBvdXIgcHJlZGVjZXNzb3IuIFdlIGRlZmluaXRlbHkgbmVlZCB0bworICAgICAgICAvLyBkbyB0
aGlzIGZvciBjb25zdGFudHMuIFdlIGRvIHRoaXMgZm9yIG90aGVyIHZhbHVlcyBhcyBhIGNvbnNl
cnZhdGl2ZSB0aGluZzogd2Ugc2hvdWxkIGhhdmUKKyAgICAgICAgLy8gcHJvdmVkIHRoYXQgYW55
IG5vbi1jb25zdGFudHMgYXJlIHVzZWQtb25jZSBmcm9tIHRoZSBicmFuY2gsIGJ1dCBpZiB0aGlz
IGZhaWxzIGZvciBzb21lCisgICAgICAgIC8vIHJlYXNvbiwgdGhlbiB3ZSB3YW50IHRvIHN0aWxs
IGVtaXQgc291bmQgY29kZS4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2Nr
LT5zaXplKCkgLSAxOyArK2kpCisgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnRWYWx1
ZShwcmVkZWNlc3Nvci0+c2l6ZSgpIC0gMSwgYmxvY2stPmF0KGkpKTsKKyAgICAgICAgbV9pbnNl
cnRpb25TZXQuZXhlY3V0ZShwcmVkZWNlc3Nvcik7CisgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5y
ZXNpemUoMCk7CisgICAgICAgIGJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2Ms
IE9vcHMsIGRlc2NyaXB0aW9uLmJyYW5jaC0+b3JpZ2luKCkpOworICAgICAgICBibG9jay0+cmVt
b3ZlUHJlZGVjZXNzb3IocHJlZGVjZXNzb3IpOworICAgICAgICAKKyAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBzdWNjZXNzb3JCbG9jayA6IGRlc2NyaXB0aW9uLmJyYW5jaC0+c3VjY2Vzc29yQmxv
Y2tzKCkpCisgICAgICAgICAgICBzdWNjZXNzb3JCbG9jay0+cmVwbGFjZVByZWRlY2Vzc29yKGJs
b2NrLCBwcmVkZWNlc3Nvcik7CisgICAgICAgIAorICAgICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNo
VmFsdWUgPSBwcmVkZWNlc3Nvci0+cmVwbGFjZUxhc3RXaXRoTmV3PFN3aXRjaFZhbHVlPigKKyAg
ICAgICAgICAgIG1fcHJvYywgcHJlZGVjZXNzb3ItPmxhc3QoKS0+b3JpZ2luKCksIGRlc2NyaXB0
aW9uLnNvdXJjZSwgZGVzY3JpcHRpb24uZmFsbFRocm91Z2gpOworICAgICAgICAKKyAgICAgICAg
VmVjdG9yPGludDY0X3Q+IHByZWRlY2Vzc29yQ2FzZXM7CisgICAgICAgIGZvciAoU3dpdGNoQ2Fz
ZSBzd2l0Y2hDYXNlIDogcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAg
ICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICBwcmVk
ZWNlc3NvckNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQor
ICAgICAgICBzdGQ6OnNvcnQocHJlZGVjZXNzb3JDYXNlcy5iZWdpbigpLCBwcmVkZWNlc3NvckNh
c2VzLmVuZCgpKTsKKyAgICAgICAgYXV0byBpc1ByZWRlY2Vzc29yQ2FzZSA9IFsmXSAoaW50NjRf
dCB2YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgICAgICByZXR1cm4gISF0cnlCaW5hcnlTZWFyY2g8
aW50NjRfdD4oCisgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcywgcHJlZGVjZXNzb3JD
YXNlcy5zaXplKCksIHZhbHVlLAorICAgICAgICAgICAgICAgIFtdIChpbnQ2NF90KiBlbGVtZW50
KSAtPiBpbnQ2NF90IHsgcmV0dXJuICplbGVtZW50OyB9KTsKKyAgICAgICAgfTsKKyAgICAgICAg
CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMp
IHsKKyAgICAgICAgICAgIGlmICghaXNQcmVkZWNlc3NvckNhc2Uoc3dpdGNoQ2FzZS5jYXNlVmFs
dWUoKSkpCisgICAgICAgICAgICAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uoc3dpdGNoQ2Fz
ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RydWN0
IFN3aXRjaERlc2NyaXB0aW9uIHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24oKQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wo
KSB7IHJldHVybiAhIWJsb2NrOyB9CisgICAgICAgIAorICAgICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgb3V0LnByaW50KAorICAg
ICAgICAgICAgICAgICJ7YmxvY2sgPSAiLCBwb2ludGVyRHVtcChibG9jayksCisgICAgICAgICAg
ICAgICAgIiwgYnJhbmNoID0gIiwgcG9pbnRlckR1bXAoYnJhbmNoKSwKKyAgICAgICAgICAgICAg
ICAiLCBleHRyYSA9ICIsIHBvaW50ZXJEdW1wKGV4dHJhKSwKKyAgICAgICAgICAgICAgICAiLCBz
b3VyY2UgPSAiLCBwb2ludGVyRHVtcChzb3VyY2UpLAorICAgICAgICAgICAgICAgICIsIGNhc2Vz
ID0gIiwgbGlzdER1bXAoY2FzZXMpLAorICAgICAgICAgICAgICAgICIsIGZhbGxUaHJvdWdoID0g
IiwgZmFsbFRocm91Z2gsICJ9Iik7CisgICAgICAgIH0KKworICAgICAgICBCYXNpY0Jsb2NrKiBi
bG9jayB7IG51bGxwdHIgfTsKKyAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggeyBudWxscHRy
IH07CisgICAgICAgIFZhbHVlKiBleHRyYSB7IG51bGxwdHIgfTsgLy8gVGhpcyBpcyB0aGUgRXF1
YWwgb3IgTm90RXF1YWwgdmFsdWUsIGlmIGFwcGxpY2FibGUuCisgICAgICAgIFZhbHVlKiBzb3Vy
Y2UgeyBudWxscHRyIH07CisgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlLCAxPiBjYXNlczsKKyAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoOworICAgIH07CisgICAgCisgICAgU3dp
dGNoRGVzY3JpcHRpb24gZGVzY3JpYmUoQmFzaWNCbG9jayogYmxvY2spCisgICAgeworICAgICAg
ICBTd2l0Y2hEZXNjcmlwdGlvbiByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5ibG9jayA9IGJsb2Nr
OworICAgICAgICByZXN1bHQuYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVl
PigpOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChyZXN1bHQuYnJhbmNoLT5vcGNvZGUoKSkg
eworICAgICAgICBjYXNlIEJyYW5jaDogeworICAgICAgICAgICAgVmFsdWUqIHByZWRpY2F0ZSA9
IHJlc3VsdC5icmFuY2gtPmNoaWxkKDApOworICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIHRh
a2VuID0gcmVzdWx0LmJyYW5jaC0+dGFrZW4oKTsKKyAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayBub3RUYWtlbiA9IHJlc3VsdC5icmFuY2gtPm5vdFRha2VuKCk7CisgICAgICAgICAgICBib29s
IGhhbmRsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChwcmVkaWNhdGUtPm51bUNoaWxkcmVu
KCkgPT0gMgorICAgICAgICAgICAgICAgICYmIHByZWRpY2F0ZS0+Y2hpbGQoMSktPmhhc0ludCgp
CisgICAgICAgICAgICAgICAgJiYgbV91c2VDb3VudHMubnVtVXNlcyhwcmVkaWNhdGUpID09IDEp
IHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHByZWRpY2F0ZS0+b3Bjb2RlKCkpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlIEVxdWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNl
ID0gcHJlZGljYXRlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4dHJh
ID0gcHJlZGljYXRlOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3
aXRjaENhc2UocHJlZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwgdGFrZW4pKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0gbm90VGFrZW47CisgICAgICAgICAgICAg
ICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBjYXNlIE5vdEVxdWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291
cmNlID0gcHJlZGljYXRlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4
dHJhID0gcHJlZGljYXRlOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5k
KFN3aXRjaENhc2UocHJlZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwgbm90VGFrZW4pKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0gdGFrZW47CisgICAgICAgICAg
ICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFuZGxlZCkKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2UgPSBwcmVkaWNh
dGU7CisgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoMCwgbm90VGFr
ZW4pKTsKKyAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFN3aXRjaDog
eworICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcmVzdWx0LmJyYW5jaC0+
YXM8U3dpdGNoVmFsdWU+KCk7CisgICAgICAgICAgICByZXN1bHQuc291cmNlID0gc3dpdGNoVmFs
dWUtPmNoaWxkKDApOworICAgICAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAq
c3dpdGNoVmFsdWUpCisgICAgICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChzd2l0Y2hD
YXNlKTsKKyAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9IHN3aXRjaFZhbHVlLT5mYWxs
VGhyb3VnaCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzdWx0LmJsb2NrID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIHJlc3VsdC5icmFuY2ggPSBudWxscHRyOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAor
ICAgIFByb2NlZHVyZSYgbV9wcm9jOworICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsK
KyAgICBVc2VDb3VudHMgbV91c2VDb3VudHM7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYgcHJvYykKK3sKKyAgICBQaGFzZVNj
b3BlIHBoYXNlU2NvcGUocHJvYywgImluZmVyU3dpdGNoZXMiKTsKKyAgICBJbmZlclN3aXRjaGVz
IGluZmVyU3dpdGNoZXMocHJvYyk7CisgICAgcmV0dXJuIGluZmVyU3dpdGNoZXMucnVuKCk7Cit9
CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNJbmZlclN3aXRjaGVzX2gKKyNkZWZpbmUg
QjNJbmZlclN3aXRjaGVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKK25hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBQcm9jZWR1cmU7CisKKy8vIEZpeHBvaW50cyB0byBj
b252ZXJ0IGNoYWlucyBvZiBicmFuY2hlcyBpbnRvIHN3aXRjaGVzLgorCitib29sIGluZmVyU3dp
dGNoZXMoUHJvY2VkdXJlJik7CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYg
Ly8gRU5BQkUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNJbmZlclN3aXRjaGVzX2gKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIwMjQ2OSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgogICAgIC8vIHRyYW5zZm9ybWF0aW9uLiBJZiB5b3Ug
a25vdyB0aGF0IHlvdSBtYXkgaGF2ZSBjcmVhdGVkIHNvbWUsIHlvdSBjYW4gY2FsbCB0aGlzIG1l
dGhvZCB0bwogICAgIC8vIGRlbGV0ZSB0aGVtLCBtYWtpbmcgdGhlIHByb2NlZHVyZSB2YWxpZCBh
Z2Fpbi4KICAgICB2b2lkIGRlbGV0ZU9ycGhhbnMoKTsKLQorICAgIAogICAgIENGRyYgY2ZnKCkg
Y29uc3QgeyByZXR1cm4gKm1fY2ZnOyB9CiAKICAgICBEb21pbmF0b3JzJiBkb21pbmF0b3JzKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3Bw
CShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxOCw3ICs0MTgsMzAgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIGRhdGFMb2coIkIzIGFmdGVyIGl0ZXJhdGlvbiAjIiwgaW5kZXggLSAx
LCAiIG9mIHJlZHVjZVN0cmVuZ3RoOlxuIik7CiAgICAgICAgICAgICAgICAgZGF0YUxvZyhtX3By
b2MpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGlmeUNG
RygpOwogCisgICAgICAgICAgICBpZiAobV9jaGFuZ2VkQ0ZHKSB7CisgICAgICAgICAgICAgICAg
bV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CisgICAgICAgICAgICAgICAgbV9wcm9jLmludmFs
aWRhdGVDRkcoKTsKKyAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyBXZSBkZWZpbml0ZWx5IHdhbnQgdG8gZG8gRENFIGJlZm9y
ZSB3ZSBkbyBDU0Ugc28gdGhhdCB3ZSBkb24ndCBob2lzdCB0aGluZ3MuIEZvcgorICAgICAgICAg
ICAgLy8gZXhhbXBsZToKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBAZGVhZCA9IE11
bChAYSwgQGIpCisgICAgICAgICAgICAvLyAuLi4gbG90cyBvZiBjb250cm9sIGZsb3cgYW5kIHN0
dWZmCisgICAgICAgICAgICAvLyBAdGhpbmcgPSBNdWwoQGEsIEBiKQorICAgICAgICAgICAgLy8K
KyAgICAgICAgICAgIC8vIElmIHdlIGRvIENTRSBiZWZvcmUgRENFLCB3ZSB3aWxsIHJlbW92ZSBA
dGhpbmcgYW5kIGtlZXAgQGRlYWQuIEVmZmVjdGl2ZWx5LCB3ZSB3aWxsCisgICAgICAgICAgICAv
LyAiaG9pc3QiIEB0aGluZy4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHdlIHJ1biBEQ0UgYmVmb3Jl
IENTRSwgd2Ugd2lsbCBraWxsIEBkZWFkIGFuZAorICAgICAgICAgICAgLy8ga2VlcCBAdGhpbmcu
IFRoYXQncyBiZXR0ZXIsIHNpbmNlIHdlIHVzdWFsbHkgd2FudCB0aGluZ3MgdG8gc3RheSB3aGVy
ZXZlciB0aGUgY2xpZW50CisgICAgICAgICAgICAvLyBwdXQgdGhlbS4gV2UncmUgbm90IGFjdHVh
bGx5IHNtYXJ0IGVub3VnaCB0aGluZ3MgdG8gbW92ZSB0aGluZ3MgYXJvdW5kIGF0IHJhbmRvbS4K
KyAgICAgICAgICAgIGtpbGxEZWFkQ29kZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBz
aW1wbGlmeVNTQSgpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBtX3Byb2MucmVzZXRWYWx1
ZU93bmVycygpOwogICAgICAgICAgICAgbV9kb21pbmF0b3JzID0gJm1fcHJvYy5kb21pbmF0b3Jz
KCk7IC8vIFJlY29tcHV0ZSBpZiBuZWNlc3NhcnkuCiAgICAgICAgICAgICBtX3B1cmVDU0UuY2xl
YXIoKTsKQEAgLTQ0MSwyMyArNDY0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBtX2lu
c2VydGlvblNldC5leGVjdXRlKG1fYmxvY2spOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAobV9ibG9ja0luc2VydGlvblNldC5leGVjdXRlKCkpIHsKLSAgICAgICAgICAgICAgICBt
X3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKLSAgICAgICAgICAgICAgICBtX3Byb2MuaW52YWxp
ZGF0ZUNGRygpOwotICAgICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9ICZtX3Byb2MuZG9taW5h
dG9ycygpOyAvLyBSZWNvbXB1dGUgaWYgbmVjZXNzYXJ5LgotICAgICAgICAgICAgICAgIG1fY2hh
bmdlZENGRyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHNpbXBsaWZ5Q0ZHKCk7Ci0KLSAgICAgICAgICAgIGlmIChtX2NoYW5nZWRDRkcpIHsKKyAgICAg
ICAgICAgIGlmIChtX2Jsb2NrSW5zZXJ0aW9uU2V0LmV4ZWN1dGUoKSB8IG1fY2hhbmdlZENGRykg
ewogICAgICAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgICAgICAg
ICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAgICAgICAgICAgICAgbV9kb21pbmF0
b3JzID0gbnVsbHB0cjsgLy8gRG9taW5hdG9ycyBhcmUgbm90IHZhbGlkIGFueW1vcmUsIGFuZCB3
ZSBkb24ndCBuZWVkIHRoZW0geWV0LgogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGtpbGxEZWFkQ29kZSgpOwotICAgICAgICAg
ICAgc2ltcGxpZnlTU0EoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcmVzdWx0IHw9IG1f
Y2hhbmdlZDsKICAgICAgICAgfSB3aGlsZSAobV9jaGFuZ2VkKTsKQEAgLTIzMzMsMTEgKzIzNDUs
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBibG9jay0+YXQodGFyZ2V0SW5kZXgr
KykgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MuZGVsZXRlVmFsdWUodmFsdWUpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgLy8gSXQncyBub3QgZW50aXJlbHkgY2xlYXIgaWYgdGhpcyBpcyBuZWVk
ZWQuIEkgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgdG8gaGF2ZQotICAgICAgICAgICAgICAgICAgICAv
LyB0aGlzIGZvcmNlIGEgcmVydW4gb2YgdGhlIGZpeHBvaW50IGZvciBub3csIHNpbmNlIHRoYXQg
d2lsbCBtYWtlIGl0IGVhc2llcgotICAgICAgICAgICAgICAgICAgICAvLyB0byBkbyBwZWVwaG9s
ZSBvcHRpbWl6YXRpb25zOiByZW1vdmluZyBkZWFkIGNvZGUgd2lsbCBtYWtlIHRoZSBwZWVwaG9s
ZQotICAgICAgICAgICAgICAgICAgICAvLyBlYXNpZXIgdG8gc3BvdC4KICAgICAgICAgICAgICAg
ICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI0Njkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYyOSw2ICs2MjksMjEgQEAgdm9pZCBWYWx1ZTo6cGVyZm9ybVN1YnN0aXR1dGlvbigpCiAg
ICAgfQogfQogCitib29sIFZhbHVlOjppc0ZyZWUoKSBjb25zdAoreworICAgIHN3aXRjaCAob3Bj
b2RlKCkpIHsKKyAgICBjYXNlIENvbnN0MzI6CisgICAgY2FzZSBDb25zdDY0OgorICAgIGNhc2Ug
Q29uc3REb3VibGU6CisgICAgY2FzZSBDb25zdEZsb2F0OgorICAgIGNhc2UgSWRlbnRpdHk6Cisg
ICAgY2FzZSBOb3A6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIHZvaWQgVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJp
bnRlciYsIFByaW50U3RyZWFtJikgY29uc3QKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuaAkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFRyaVN0YXRlIGFib3ZlRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0OwogICAgIHZpcnR1YWwgVHJpU3RhdGUgYmVsb3dFcXVhbENvbnN0YW50KGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Q7CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBlcXVhbE9yVW5vcmRlcmVk
Q29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKLQorICAgIAogICAgIC8vIElmIHRo
ZSB2YWx1ZSBpcyBhIGNvbXBhcmlzb24gdGhlbiB0aGlzIHJldHVybnMgdGhlIGludmVydGVkIGZv
cm0gb2YgdGhhdCBjb21wYXJpc29uLCBpZgogICAgIC8vIHBvc3NpYmxlLiBJdCBjYW4gYmUgaW1w
b3NzaWJsZSBmb3IgZG91YmxlIGNvbXBhcmlzb25zLCB3aGVyZSBmb3IgZXhhbXBsZSBMZXNzVGhh
biBhbmQKICAgICAvLyBHcmVhdGVyRXF1YWwgYmVoYXZlIGRpZmZlcmVudGx5LiBJZiB0aGlzIHJl
dHVybnMgYSB2YWx1ZSwgaXQgaXMgYSBuZXcgdmFsdWUsIHdoaWNoIG11c3QgYmUKQEAgLTIxMCw2
ICsyMTAsMTEgQEAgcHVibGljOgogICAgIC8vIHJlcG9pbnQgaXQgYXQgdGhlIElkZW50aXR5J3Mg
Y2hpbGQuIEZvciBzaW1wbGljaXR5LCB0aGlzIHdpbGwgZm9sbG93IGFyYml0cmFyaWx5IGxvbmcg
Y2hhaW5zCiAgICAgLy8gb2YgSWRlbnRpdHkncy4KICAgICB2b2lkIHBlcmZvcm1TdWJzdGl0dXRp
b24oKTsKKyAgICAKKyAgICAvLyBGcmVlIHZhbHVlcyBhcmUgdGhvc2Ugd2hvc2UgcHJlc2VuY2Ug
aXMgZ3VhcmFudGVlZCBub3QgdG8gaHVydCBjb2RlLiBXZSBjb25zaWRlciBjb25zdGFudHMsCisg
ICAgLy8gSWRlbnRpdGllcywgYW5kIE5vcHMgdG8gYmUgZnJlZS4gQ29uc3RhbnRzIGFyZSBmcmVl
IGJlY2F1c2Ugd2UgaG9pc3QgdGhlbSB0byBhbiBvcHRpbWFsIHBsYWNlLgorICAgIC8vIElkZW50
aXRpZXMgYW5kIE5vcHMgYXJlIGZyZWUgYmVjYXVzZSB3ZSByZW1vdmUgdGhlbS4KKyAgICBib29s
IGlzRnJlZSgpIGNvbnN0OwogCiAgICAgLy8gV2FsayB0aGUgYW5jZXN0b3JzIG9mIHRoaXMgdmFs
dWUgKGkuZS4gdGhlIGdyYXBoIG9mIHRoaW5ncyBpdCB0cmFuc2l0aXZlbHkgdXNlcykuIFRoaXMK
ICAgICAvLyBlaXRoZXIgd2Fsa3MgcGhpcyBvciBub3QsIGRlcGVuZGluZyBvbiB3aGV0aGVyIFBo
aUNoaWxkcmVuIGlzIG51bGwuIFlvdXIgY2FsbGJhY2sgZ2V0cwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjAyNDY5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzcyLDggKzIzNzIsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOwogICAgICAgICBpZiAo
dWlkLT5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICBMVmFsdWUgc3ltYm9sID0gbG93U3ltYm9s
KG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291
dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAg
ICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBsb3dTeW1ib2xVSUQobV9ub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQu
bm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9k
ZS0+Y2hpbGQxKCkpOwpAQCAtNDg5MCwxMCArNDg4OSw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3ltYm9sVXNlKSkgewotICAg
ICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAg
ICAgICAgICBMVmFsdWUgbGVmdFN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKGxlZnQsIG1faGVh
cHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKLSAgICAgICAgICAgIExWYWx1ZSByaWdodFN0cmluZ0lt
cGwgPSBtX291dC5sb2FkUHRyKHJpZ2h0LCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Cisg
ICAgICAgICAgICBMVmFsdWUgbGVmdFN0cmluZ0ltcGwgPSBsb3dTeW1ib2xVSUQobV9ub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgcmlnaHRTdHJpbmdJbXBsID0gbG93U3ltYm9s
VUlEKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgc2V0Qm9vbGVhbihtX291dC5lcXVh
bChsZWZ0U3RyaW5nSW1wbCwgcmlnaHRTdHJpbmdJbXBsKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KQEAgLTk2MDIsNiArOTU5OSwxNiBAQCBwcml2YXRlOgogICAgICAgICBzcGVj
dWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CisgICAgCisgICAgTFZhbHVlIGxvd1N5bWJvbFVJRChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxh
dGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKKyAgICB7CisgICAg
ICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGVkZ2UtPmR5bmFtaWNDYXN0Q29uc3RhbnQ8U3ltYm9s
Kj4oKSkKKyAgICAgICAgICAgIHJldHVybiBtX291dC5jb25zdEludFB0cihzeW1ib2wtPnByaXZh
dGVOYW1lKCkudWlkKCkpOworICAgICAgICBMVmFsdWUgc3ltYm9sID0gbG93U3ltYm9sKGVkZ2Us
IG1vZGUpOworICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgYXZvaWQgdGhpcyBsb2FkIGlmIHdl
IGhhZCBoYXNoLWNvbnNlZCBTeW1ib2xzLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4OTA4CisgICAgICAgIHJldHVybiBtX291dC5sb2FkUHRy
KHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgIH0KIAogICAgIExWYWx1
ZSBsb3dOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2Rl
ID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283979</attachid>
            <date>2016-07-18 22:43:51 -0700</date>
            <delta_ts>2016-07-18 22:54:38 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>30584</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDE2LTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgc2hvdWxkIGluZmVyIHN3aXRjaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg4OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIG5ldyBwaGFzZSB0byBCMywgd2hp
Y2ggZmluZHMgY2hhaW5zIG9mIGJyYW5jaGVzIHRoYXQgdGVzdCBmb3IgKGluKWVxdWFsaXR5IG9u
IHRoZQorICAgICAgICBzYW1lIHZhbHVlIGFuZCBjb25zdGFudHMsIGFuZCB0dXJucyB0aGVtIGlu
dG8gYSBTd2l0Y2guIFRoaXMgY2FuIHR1cm4gTyhuKSBjb2RlIGludG8KKyAgICAgICAgTyhuIGxv
ZyBuKSBjb2RlLCBvciBldmVuIE8oMSkgY29kZSBpZiB0aGUgc3dpdGNoIGNhc2VzIGFyZSBkZW5z
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBpbiBK
Uy4gU2F5IHlvdSB3cml0ZSBhIHN3aXRjaCBpbiB3aGljaCB0aGUgY2FzZSBzdGF0ZW1lbnRzIGFy
ZQorICAgICAgICB2YXJpYWJsZSByZXNvbHV0aW9ucy4gVGhlIGJ5dGVjb2RlIGdlbmVyYXRvciBj
YW5ub3QgdXNlIGEgYnl0ZWNvZGUgc3dpdGNoIGluIHRoaXMgY2FzZSwgc2luY2UKKyAgICAgICAg
d2UncmUgcmVxdWlyZWQgdG8gZXZhbHVhdGUgdGhlIHJlc29sdXRpb25zIGluIG9yZGVyLiBCdXQg
aW4gREZHIElSLCB3ZSB3aWxsIG9mdGVuIHR1cm4gdGhvc2UKKyAgICAgICAgdmFyaWFibGUgcmVz
b2x1dGlvbnMgaW50byBjb25zdGFudHMsIHNpbmNlIHdlIGRvIHRoYXQgZm9yIGFueSBpbW11dGFi
bGUgc2luZ2xldG9uLiBUaGlzIG1lYW5zCisgICAgICAgIHRoYXQgQjMgd2lsbCBzZWUgYSBjaGFp
biBvZiBCcmFuY2hlczogdGhlIGVsc2UgY2FzZSBvZiBvbmUgQnJhbmNoIHdpbGwgcG9pbnQgdG8g
YSBiYXNpYyBibG9jaworICAgICAgICB0aGF0IGRvZXMgbm90aGluZyBidXQgQnJhbmNoIG9uIGVx
dWFsaXR5IG9uIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBmaXJzdCBCcmFuY2guCisgICAgICAgIAor
ICAgICAgICBUaGlzIGFsc28gY2hhbmdlcyBob3cgd2UgY29tcGlsZSBlcXVhbGl0eSB0byBTeW1i
b2xzIHRvIGNvbnN0YW50LWZvbGQgdGhlIGxvYWQgb2YgdGhlCisgICAgICAgIFN5bWJvbCdzIFVJ
RC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIG1ha2luZyBzd2l0Y2hlcyBvbiBTeW1ib2xzIGluZmVy
cmFibGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGIzL0IzR2VuZXJhdGUu
Y3BwOgorICAgICAgICAoSlNDOjpCMzo6Z2VuZXJhdGVUb0Fpcik6CisgICAgICAgICogYjMvQjNJ
bmZlclN3aXRjaGVzLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjppbmZlclN3aXRjaGVz
KToKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuaDogQWRkZWQuCisgICAgICAgICogYjMv
QjNQcm9jZWR1cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6Y2ZnKToKKyAgICAg
ICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKToKKyAgICAgICAg
KEpTQzo6QjM6OlZhbHVlOjppc0ZyZWUpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmR1bXBN
ZXRhKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVD
aGVja0lkZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
Omxvd1N5bWJvbCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1N5
bWJvbFVJRCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd05vbk51
bGxPYmplY3QpOgorCiAyMDE2LTA3LTE4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBidWlsdGluIFR5cGVFcnJvcnMgY29uc2lzdGVudApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAzMzk0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MjgsNiArMTI4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0ZyZXF1
ZW5jeUNsYXNzLmNwcAogICAgIGIzL0IzR2VuZXJhdGUuY3BwCiAgICAgYjMvQjNIZWFwUmFuZ2Uu
Y3BwCisgICAgYjMvQjNJbmZlclN3aXRjaGVzLmNwcAogICAgIGIzL0IzSW5zZXJ0aW9uU2V0LmNw
cAogICAgIGIzL0IzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcAogICAgIGIzL0IzTG93ZXJNYWNy
b3MuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAzMzk0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5OTksNiArMTk5OSw4IEBACiAJCURDNjA1
QjVGMUNFMjZFQTUwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTggLyog
UHJvZmlsZXJVSUQuY3BwICovOyB9OwogCQlEQzYwNUI2MDFDRTI2RUE3MDA1OTM3MTggLyogUHJv
ZmlsZXJVSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDNjlBQTY2MUNGN0ExRjIwMEM2
MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3Bw
ICovOyB9OworCQlEQzY5Qjk5QzFEMTVGOTEyMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlCOTlB
MUQxNUY5MEYwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwICovOyB9OworCQlEQzY5Qjk5
RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyog
QjNJbmZlclN3aXRjaGVzLmggKi87IH07CiAJCURDNzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBU
YWdSZWdpc3RlcnNNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDNzk5Nzg0
MUNERTlGQTIwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAv
KiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLzsgfTsKIAkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRF
IC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQzlBMEMxRTFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29s
bGVjdGlvbklubGluZXMuaCAqLzsgfTsKQEAgLTQyMzQsNiArNDIzNiw4IEBACiAJCURDNjA1QjVC
MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxl
clVJRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgw
MDU5MzcxOCAvKiBQcm9maWxlclVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBQcm9maWxlclVJRC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVz
dWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUExRDE1RjkwRjAwMkUz
QzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBCM0luZmVyU3dpdGNoZXMuY3BwOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAw
IC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M0luZmVyU3dpdGNoZXMuaDsgcGF0aCA9IGIzL0IzSW5mZXJTd2l0Y2hlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0
ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdp
c3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RF
OUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsg
cGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDc1NSw2ICs0NzU5LDggQEAKIAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyog
QjNIZWFwUmFuZ2UuaCAqLywKIAkJCQkwRkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRl
eE1hcC5oICovLAogCQkJCTBGRUM4NEQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0Lmgg
Ki8sCisJCQkJREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAg
Ki8sCisJCQkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICov
LAogCQkJCTBGRUM4NUI0MUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8s
CiAJCQkJMEZFQzg1QjUxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggKi8sCiAJ
CQkJMEZFQzg1QjYxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oICov
LApAQCAtNzU2Niw2ICs3NTcyLDcgQEAKIAkJCQlBNUVBNzEwNDE5RjZERTcyMDA5OEY1RUMgLyog
Z2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjY0RUFGMzFDNEVDRDA2MDA2MjFFOUIgLyogQWlyQXJnSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDUxOUY2REU3NDAwOThGNUVDIC8qIGdlbmVyYXRl
X29iamNfY29uZmlndXJhdGlvbl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlEQzY5Qjk5
RDFEMTVGOTE0MDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUVBNzEwNjE5RjZERTc2MDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9u
X2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QzM5RkYxQzkwQzU1QjAw
NDgwMTUxIC8qIERGR09wSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDcxOUY2REU3
ODAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFk
ZXIucHkgaW4gSGVhZGVycyAqLywKQEAgLTg3MzMsNiArODc0MCw3IEBACiAJCQkJMEZFQzg1MDUx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTA3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1MDkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCURDNjlCOTlDMUQxNUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29t
bXV0YXRpdml0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZG
NzQgLyogQjNDb25zdDMyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM2RTU0NTQxQzQ2
OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24g
MjAzMzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQjNFbGltaW5hdGVDb21tb25T
dWJleHByZXNzaW9ucy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNGb2xk
UGF0aENvbnN0YW50cy5oIgorI2luY2x1ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgogI2luY2x1ZGUg
IkIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvcy5oIgog
I2luY2x1ZGUgIkIzTG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuaCIKQEAgLTgyLDYgKzgz
LDcgQEAgdm9pZCBnZW5lcmF0ZVRvQWlyKFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgICAgICBy
ZWR1Y2VEb3VibGVUb0Zsb2F0KHByb2NlZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0cmVuZ3RoKHBy
b2NlZHVyZSk7CiAgICAgICAgIGVsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zKHByb2NlZHVy
ZSk7CisgICAgICAgIGluZmVyU3dpdGNoZXMocHJvY2VkdXJlKTsKICAgICAgICAgZHVwbGljYXRl
VGFpbHMocHJvY2VkdXJlKTsKICAgICAgICAgZml4U1NBKHByb2NlZHVyZSk7CiAgICAgICAgIGZv
bGRQYXRoQ29uc3RhbnRzKHByb2NlZHVyZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDMxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNJbmZlclN3aXRjaGVzLmgiCisKKyNpZiBF
TkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgorI2luY2x1
ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCisjaW5jbHVkZSAiQjNQcm9jZWR1
cmVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXNl
Q291bnRzLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvTGlz
dER1bXAuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK25hbWVzcGFjZSB7
CisKK2NvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCitjbGFzcyBJbmZlclN3aXRjaGVzIHsK
K3B1YmxpYzoKKyAgICBJbmZlclN3aXRjaGVzKFByb2NlZHVyZSYgcHJvYykKKyAgICAgICAgOiBt
X3Byb2MocHJvYykKKyAgICAgICAgLCBtX2luc2VydGlvblNldChwcm9jKQorICAgICAgICAsIG1f
dXNlQ291bnRzKHByb2MpCisgICAgeworICAgIH0KKyAgICAKKyAgICBib29sIHJ1bigpCisgICAg
eworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIkIzIGJlZm9yZSBp
bmZlclN3aXRjaGVzOlxuIiwgbV9wcm9jKTsKKyAgICAgICAgCisgICAgICAgIGJvb2wgY2hhbmdl
ZCA9IHRydWU7CisgICAgICAgIGJvb2wgZXZlckNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgd2hp
bGUgKGNoYW5nZWQpIHsKKyAgICAgICAgICAgIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykKKyAgICAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IGF0dGVtcHRUb01lcmdlV2l0aFByZWRlY2Vzc29yKGJsb2NrKTsK
KworICAgICAgICAgICAgZXZlckNoYW5nZWQgfD0gY2hhbmdlZDsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgaWYgKGV2ZXJDaGFuZ2VkKSB7CisgICAgICAgICAgICBtX3Byb2MucmVzZXRS
ZWFjaGFiaWxpdHkoKTsKKyAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIG1fcHJvYy5kZWxldGVPcnBoYW5zKCk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIkIz
IGFmdGVyIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgCitwcml2YXRlOgorICAgIGJvb2wgYXR0ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3IoQmFz
aWNCbG9jayogYmxvY2spCisgICAgeworICAgICAgICAvLyBObyBwb2ludCBpbiBjb25zaWRlcmlu
ZyB0aGUgcm9vdCBibG9jay4gV2UgYWxzbyBkb24ndCBjb25zaWRlciBibG9ja3Mgd2l0aCBtdWx0
aXBsZQorICAgICAgICAvLyBwcmVkZWNlc3NvcnMsIGJ1dCB3ZSBjb3VsZCBoYW5kbGUgdGhpcyBp
ZiB3ZSBtYWRlIHRoaXMgY29kZSBhIGJpdCBtb3JlIGdlbmVyYWwgYW5kIHdlIHdlcmUKKyAgICAg
ICAgLy8gbm90IGFmcmFpZCBvZiBjb2RlIGJsb2F0LgorICAgICAgICBpZiAoYmxvY2stPm51bVBy
ZWRlY2Vzc29ycygpICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAor
ICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiA9IGRlc2NyaWJlKGJsb2NrKTsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCJEZXNjcmlwdGlvbiBv
ZiBwcmltYXJ5IGJsb2NrICIsICpibG9jaywgIjogIiwgZGVzY3JpcHRpb24sICJcbiIpOworICAg
ICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlrZS5c
biIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICAvLyBXZSBrbm93IHRoYXQgdGhpcyBibG9jayBiZWhhdmVzIGxpa2UgYSBzd2l0Y2guIEJ1
dCB3ZSBuZWVkIHRvIHZlcmlmeSB0aGF0IGl0IGRvZXNuJ3QgYWxzbworICAgICAgICAvLyBwZXJm
b3JtIGFueSBlZmZlY3RzIG9yIGRvIGV4cGVuc2l2ZSB0aGluZ3MuIFdlIGRvbid0IHdhbnQgdG8g
Y3JlYXRlIGEgc3dpdGNoIGlmIHRoYXQgd2lsbAorICAgICAgICAvLyBtYWtlIGV4cGVuc2l2ZSB0
aGluZ3MgZXhlY3V0ZSB1bmNvbmRpdGlvbmFsbHkuIFdlJ3JlIHZlcnkgY29uc2VydmF0aXZlIGFi
b3V0IGhvdyB3ZSBkZWZpbmUKKyAgICAgICAgLy8gImV4cGVuc2l2ZSIuCisgICAgICAgIGZvciAo
VmFsdWUqIHZhbHVlIDogKmJsb2NrKSB7CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzRnJlZSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09IGRl
c2NyaXB0aW9uLmV4dHJhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
aWYgKHZhbHVlID09IGRlc2NyaXB0aW9uLmJyYW5jaCkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAg
ICBCYWlsaW5nIGJlY2F1c2Ugb2YgIiwgZGVlcER1bXAobV9wcm9jLCB2YWx1ZSksICJcbiIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBC
YXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA9IGJsb2NrLT5wcmVkZWNlc3NvcigwKTsKKyAgICAgICAg
U3dpdGNoRGVzY3JpcHRpb24gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbiA9IGRlc2NyaWJlKHByZWRl
Y2Vzc29yKTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAg
RGVzY3JpcHRpb24gb2YgcHJlZGVjZXNzb3IgYmxvY2sgIiwgKnByZWRlY2Vzc29yLCAiOiAiLCBw
cmVkZWNlc3NvckRlc2NyaXB0aW9uLCAiXG4iKTsKKyAgICAgICAgaWYgKCFwcmVkZWNlc3NvckRl
c2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBk
YXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlrZS5cbiIpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBCb3Ro
IHVzIGFuZCB0aGUgcHJlZGVjZXNzb3IgYXJlIHN3aXRjaC1saWtlLCBidXQgdGhhdCBkb2Vzbid0
IG1lYW4gdGhhdCB3ZSdyZSBjb21wYXRpYmxlLgorICAgICAgICAvLyBXZSBtYXkgYmUgc3dpdGNo
aW5nIG9uIGRpZmZlcmVudCB2YWx1ZXMhCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5zb3VyY2Ug
IT0gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5zb3VyY2UpIHsKKyAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugc291cmNl
cyBkb24ndCBtYXRjaC5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB3ZSBhcmUgdGhlIGZhbGwtdGhy
b3VnaCBkZXN0aW5hdGlvbiBvZiB0aGUgcHJlZGVjZXNzb3IuIFRoaXMgaXMgYSBiaXQgb2YgYQor
ICAgICAgICAvLyBnb29meSBjb25kaXRpb24uIElmIHdlIHdlcmUgbm90IHRoZSBmYWxsLXRocm91
Z2ggZGVzdGluYXRpb24gdGhlbiBvdXIgc3dpdGNoIGlzIHByb2JhYmx5CisgICAgICAgIC8vIGp1
c3QgdG90YWxseSByZWR1bmRhbnQgYW5kIHdlIHNob3VsZCBiZSBnZXR0aW5nIHJpZCBvZiBpdC4g
QnV0IHdlIGRvbid0IGhhbmRsZSB0aGF0IGhlcmUsCisgICAgICAgIC8vIHlldC4KKyAgICAgICAg
aWYgKHByZWRlY2Vzc29yRGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSAhPSBibG9jaykg
eworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAg
IEJhaWxpbmcgYmVjYXVzZSBmYWxsLXRocm91Z2ggb2YgcHJlZGVjZXNzb3IgaXMgbm90IHRoZSBw
cmltYXJ5IGJsb2NrLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZXJlIGFpbid0IG5vIGxvb3Bz
LgorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBibG9jawor
ICAgICAgICAgICAgfHwgZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBwcmVkZWNl
c3NvcikgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiBmYWxsLXRocm91Z2ggbG9vcC5cbiIpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBz
d2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0Y2hD
YXNlLnRhcmdldEJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hDYXNl
LnRhcmdldEJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBv
ZiBsb29wIGluIHByaW1hcnkgY2FzZXMuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3
aXRjaENhc2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBp
ZiAoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IGJsb2NrCisgICAgICAgICAgICAgICAgfHwg
c3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5n
IGJlY2F1c2Ugb2YgbG9vcCBpbiBwcmVkZWNlc3NvciBjYXNlcy5cbiIpOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRG9pbmcgaXQhXG4i
KTsKKyAgICAgICAgLy8gV2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIHRoZSB0aGluZy4KKyAgICAg
ICAgCisgICAgICAgIC8vIEluc2VydCBhbGwgbm9uLXRlcm1pbmFsIHZhbHVlcyBmcm9tIG91ciBi
bG9jayBpbnRvIG91ciBwcmVkZWNlc3Nvci4gV2UgZGVmaW5pdGVseSBuZWVkIHRvCisgICAgICAg
IC8vIGRvIHRoaXMgZm9yIGNvbnN0YW50cy4gV2UgZG8gdGhpcyBmb3Igb3RoZXIgdmFsdWVzIGFz
IGEgY29uc2VydmF0aXZlIHRoaW5nOiB3ZSBzaG91bGQgaGF2ZQorICAgICAgICAvLyBwcm92ZWQg
dGhhdCBhbnkgbm9uLWNvbnN0YW50cyBhcmUgdXNlZC1vbmNlIGZyb20gdGhlIGJyYW5jaCwgYnV0
IGlmIHRoaXMgZmFpbHMgZm9yIHNvbWUKKyAgICAgICAgLy8gcmVhc29uLCB0aGVuIHdlIHdhbnQg
dG8gc3RpbGwgZW1pdCBzb3VuZCBjb2RlLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkKKyAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmlu
c2VydFZhbHVlKHByZWRlY2Vzc29yLT5zaXplKCkgLSAxLCBibG9jay0+YXQoaSkpOworICAgICAg
ICBtX2luc2VydGlvblNldC5leGVjdXRlKHByZWRlY2Vzc29yKTsKKyAgICAgICAgYmxvY2stPnZh
bHVlcygpLnJlc2l6ZSgwKTsKKyAgICAgICAgYmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gtPm9yaWdpbigpKTsKKyAgICAgICAgYmxvY2stPmNs
ZWFyU3VjY2Vzc29ycygpOworICAgICAgICBibG9jay0+cmVtb3ZlUHJlZGVjZXNzb3IocHJlZGVj
ZXNzb3IpOworICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9j
ayA6IGRlc2NyaXB0aW9uLmJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAgIHN1
Y2Nlc3NvckJsb2NrLT5yZXBsYWNlUHJlZGVjZXNzb3IoYmxvY2ssIHByZWRlY2Vzc29yKTsKKyAg
ICAgICAgCisgICAgICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHByZWRlY2Vzc29yLT5y
ZXBsYWNlTGFzdFdpdGhOZXc8U3dpdGNoVmFsdWU+KAorICAgICAgICAgICAgbV9wcm9jLCBwcmVk
ZWNlc3Nvci0+bGFzdCgpLT5vcmlnaW4oKSwgZGVzY3JpcHRpb24uc291cmNlKTsKKyAgICAgICAg
cHJlZGVjZXNzb3ItPmNsZWFyU3VjY2Vzc29ycygpOworICAgICAgICBzd2l0Y2hWYWx1ZS0+c2V0
RmFsbFRocm91Z2goZGVzY3JpcHRpb24uZmFsbFRocm91Z2gpOworICAgICAgICAKKyAgICAgICAg
VmVjdG9yPGludDY0X3Q+IHByZWRlY2Vzc29yQ2FzZXM7CisgICAgICAgIGZvciAoU3dpdGNoQ2Fz
ZSBzd2l0Y2hDYXNlIDogcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAg
ICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uoc3dpdGNoQ2FzZSk7CisgICAgICAgICAgICBwcmVk
ZWNlc3NvckNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQor
ICAgICAgICBzdGQ6OnNvcnQocHJlZGVjZXNzb3JDYXNlcy5iZWdpbigpLCBwcmVkZWNlc3NvckNh
c2VzLmVuZCgpKTsKKyAgICAgICAgYXV0byBpc1ByZWRlY2Vzc29yQ2FzZSA9IFsmXSAoaW50NjRf
dCB2YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgICAgICByZXR1cm4gISF0cnlCaW5hcnlTZWFyY2g8
aW50NjRfdD4oCisgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3JDYXNlcywgcHJlZGVjZXNzb3JD
YXNlcy5zaXplKCksIHZhbHVlLAorICAgICAgICAgICAgICAgIFtdIChpbnQ2NF90KiBlbGVtZW50
KSAtPiBpbnQ2NF90IHsgcmV0dXJuICplbGVtZW50OyB9KTsKKyAgICAgICAgfTsKKyAgICAgICAg
CisgICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMp
IHsKKyAgICAgICAgICAgIGlmICghaXNQcmVkZWNlc3NvckNhc2Uoc3dpdGNoQ2FzZS5jYXNlVmFs
dWUoKSkpCisgICAgICAgICAgICAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uoc3dpdGNoQ2Fz
ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RydWN0
IFN3aXRjaERlc2NyaXB0aW9uIHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24oKQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wo
KSB7IHJldHVybiAhIWJsb2NrOyB9CisgICAgICAgIAorICAgICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgb3V0LnByaW50KAorICAg
ICAgICAgICAgICAgICJ7YmxvY2sgPSAiLCBwb2ludGVyRHVtcChibG9jayksCisgICAgICAgICAg
ICAgICAgIiwgYnJhbmNoID0gIiwgcG9pbnRlckR1bXAoYnJhbmNoKSwKKyAgICAgICAgICAgICAg
ICAiLCBleHRyYSA9ICIsIHBvaW50ZXJEdW1wKGV4dHJhKSwKKyAgICAgICAgICAgICAgICAiLCBz
b3VyY2UgPSAiLCBwb2ludGVyRHVtcChzb3VyY2UpLAorICAgICAgICAgICAgICAgICIsIGNhc2Vz
ID0gIiwgbGlzdER1bXAoY2FzZXMpLAorICAgICAgICAgICAgICAgICIsIGZhbGxUaHJvdWdoID0g
IiwgZmFsbFRocm91Z2gsICJ9Iik7CisgICAgICAgIH0KKworICAgICAgICBCYXNpY0Jsb2NrKiBi
bG9jayB7IG51bGxwdHIgfTsKKyAgICAgICAgVmFsdWUqIGJyYW5jaCB7IG51bGxwdHIgfTsKKyAg
ICAgICAgVmFsdWUqIGV4dHJhIHsgbnVsbHB0ciB9OyAvLyBUaGlzIGlzIHRoZSBFcXVhbCBvciBO
b3RFcXVhbCB2YWx1ZSwgaWYgYXBwbGljYWJsZS4KKyAgICAgICAgVmFsdWUqIHNvdXJjZSB7IG51
bGxwdHIgfTsKKyAgICAgICAgVmVjdG9yPFN3aXRjaENhc2UsIDE+IGNhc2VzOworICAgICAgICBG
cmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2g7CisgICAgfTsKKyAgICAKKyAgICBTd2l0Y2hEZXNj
cmlwdGlvbiBkZXNjcmliZShCYXNpY0Jsb2NrKiBibG9jaykKKyAgICB7CisgICAgICAgIFN3aXRj
aERlc2NyaXB0aW9uIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LmJsb2NrID0gYmxvY2s7CisgICAg
ICAgIHJlc3VsdC5icmFuY2ggPSBibG9jay0+bGFzdCgpOworICAgICAgICAKKyAgICAgICAgc3dp
dGNoIChyZXN1bHQuYnJhbmNoLT5vcGNvZGUoKSkgeworICAgICAgICBjYXNlIEJyYW5jaDogewor
ICAgICAgICAgICAgVmFsdWUqIHByZWRpY2F0ZSA9IHJlc3VsdC5icmFuY2gtPmNoaWxkKDApOwor
ICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIHRha2VuID0gcmVzdWx0LmJsb2NrLT50YWtlbigp
OworICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIG5vdFRha2VuID0gcmVzdWx0LmJsb2NrLT5u
b3RUYWtlbigpOworICAgICAgICAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CisgICAgICAgICAg
ICBpZiAocHJlZGljYXRlLT5udW1DaGlsZHJlbigpID09IDIKKyAgICAgICAgICAgICAgICAmJiBw
cmVkaWNhdGUtPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIG1fdXNlQ291
bnRzLm51bVVzZXMocHJlZGljYXRlKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChw
cmVkaWNhdGUtPm9wY29kZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFcXVhbDoKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7CisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hpbGQoMSkt
PmFzSW50KCksIHRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3Vn
aCA9IG5vdFRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOb3RFcXVhbDoKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQoMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+Y2hpbGQo
MSktPmFzSW50KCksIG5vdFRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mYWxs
VGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGhhbmRsZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlOworICAgICAgICAgICAgcmVzdWx0LmNhc2Vz
LmFwcGVuZChTd2l0Y2hDYXNlKDAsIG5vdFRha2VuKSk7CisgICAgICAgICAgICByZXN1bHQuZmFs
bFRocm91Z2ggPSB0YWtlbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgY2FzZSBTd2l0Y2g6IHsKKyAgICAgICAgICAgIFN3aXRjaFZhbHVlKiBz
d2l0Y2hWYWx1ZSA9IHJlc3VsdC5icmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpOworICAgICAgICAg
ICAgcmVzdWx0LnNvdXJjZSA9IHN3aXRjaFZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGZv
ciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogc3dpdGNoVmFsdWUtPmNhc2VzKHJlc3VsdC5ibG9j
aykpCisgICAgICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlKTsKKyAg
ICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9IHJlc3VsdC5ibG9jay0+ZmFsbFRocm91Z2go
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdC5ibG9jayA9IG51bGxwdHI7CisgICAgICAgICAg
ICByZXN1bHQuYnJhbmNoID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBQcm9j
ZWR1cmUmIG1fcHJvYzsKKyAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CisgICAgVXNl
Q291bnRzIG1fdXNlQ291bnRzOworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2Jv
b2wgaW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHByb2MpCit7CisgICAgUGhhc2VTY29wZSBwaGFz
ZVNjb3BlKHByb2MsICJpbmZlclN3aXRjaGVzIik7CisgICAgSW5mZXJTd2l0Y2hlcyBpbmZlclN3
aXRjaGVzKHByb2MpOworICAgIHJldHVybiBpbmZlclN3aXRjaGVzLnJ1bigpOworfQorCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0luZmVyU3dpdGNoZXNfaAorI2RlZmluZSBCM0luZmVy
U3dpdGNoZXNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBCMyB7CisKK2NsYXNzIFByb2NlZHVyZTsKKworLy8gRml4cG9pbnRzIHRvIGNvbnZlcnQg
Y2hhaW5zIG9mIGJyYW5jaGVzIGludG8gc3dpdGNoZXMuCisKK2Jvb2wgaW5mZXJTd2l0Y2hlcyhQ
cm9jZWR1cmUmKTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFC
RShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0luZmVyU3dpdGNoZXNfaAorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw3
ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gdHJhbnNmb3JtYXRpb24uIElmIHlvdSBrbm93IHRo
YXQgeW91IG1heSBoYXZlIGNyZWF0ZWQgc29tZSwgeW91IGNhbiBjYWxsIHRoaXMgbWV0aG9kIHRv
CiAgICAgLy8gZGVsZXRlIHRoZW0sIG1ha2luZyB0aGUgcHJvY2VkdXJlIHZhbGlkIGFnYWluLgog
ICAgIHZvaWQgZGVsZXRlT3JwaGFucygpOwotCisgICAgCiAgICAgQ0ZHJiBjZmcoKSBjb25zdCB7
IHJldHVybiAqbV9jZmc7IH0KIAogICAgIERvbWluYXRvcnMmIGRvbWluYXRvcnMoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlz
aW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE3LDcgKzQxNywzMCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgaXRlcmF0aW9uICMiLCBpbmRleCAtIDEsICIgb2Yg
cmVkdWNlU3RyZW5ndGg6XG4iKTsKICAgICAgICAgICAgICAgICBkYXRhTG9nKG1fcHJvYyk7CiAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsaWZ5Q0ZHKCk7CiAK
KyAgICAgICAgICAgIGlmIChtX2NoYW5nZWRDRkcpIHsKKyAgICAgICAgICAgICAgICBtX3Byb2Mu
cmVzZXRSZWFjaGFiaWxpdHkoKTsKKyAgICAgICAgICAgICAgICBtX3Byb2MuaW52YWxpZGF0ZUNG
RygpOworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIFdlIGRlZmluaXRlbHkgd2FudCB0byBkbyBEQ0UgYmVmb3JlIHdlIGRv
IENTRSBzbyB0aGF0IHdlIGRvbid0IGhvaXN0IHRoaW5ncy4gRm9yCisgICAgICAgICAgICAvLyBl
eGFtcGxlOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEBkZWFkID0gTXVsKEBhLCBA
YikKKyAgICAgICAgICAgIC8vIC4uLiBsb3RzIG9mIGNvbnRyb2wgZmxvdyBhbmQgc3R1ZmYKKyAg
ICAgICAgICAgIC8vIEB0aGluZyA9IE11bChAYSwgQGIpCisgICAgICAgICAgICAvLworICAgICAg
ICAgICAgLy8gSWYgd2UgZG8gQ1NFIGJlZm9yZSBEQ0UsIHdlIHdpbGwgcmVtb3ZlIEB0aGluZyBh
bmQga2VlcCBAZGVhZC4gRWZmZWN0aXZlbHksIHdlIHdpbGwKKyAgICAgICAgICAgIC8vICJob2lz
dCIgQHRoaW5nLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgd2UgcnVuIERDRSBiZWZvcmUgQ1NFLCB3
ZSB3aWxsIGtpbGwgQGRlYWQgYW5kCisgICAgICAgICAgICAvLyBrZWVwIEB0aGluZy4gVGhhdCdz
IGJldHRlciwgc2luY2Ugd2UgdXN1YWxseSB3YW50IHRoaW5ncyB0byBzdGF5IHdoZXJldmVyIHRo
ZSBjbGllbnQKKyAgICAgICAgICAgIC8vIHB1dCB0aGVtLiBXZSdyZSBub3QgYWN0dWFsbHkgc21h
cnQgZW5vdWdoIHRoaW5ncyB0byBtb3ZlIHRoaW5ncyBhcm91bmQgYXQgcmFuZG9tLgorICAgICAg
ICAgICAga2lsbERlYWRDb2RlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsaWZ5
U1NBKCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIG1fcHJvYy5yZXNldFZhbHVlT3duZXJz
KCk7CiAgICAgICAgICAgICBtX2RvbWluYXRvcnMgPSAmbV9wcm9jLmRvbWluYXRvcnMoKTsgLy8g
UmVjb21wdXRlIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgICAgIG1fcHVyZUNTRS5jbGVhcigpOwpA
QCAtNDQwLDIzICs0NjMsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9u
U2V0LmV4ZWN1dGUobV9ibG9jayk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICht
X2Jsb2NrSW5zZXJ0aW9uU2V0LmV4ZWN1dGUoKSkgewotICAgICAgICAgICAgICAgIG1fcHJvYy5y
ZXNldFJlYWNoYWJpbGl0eSgpOwotICAgICAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZH
KCk7Ci0gICAgICAgICAgICAgICAgbV9kb21pbmF0b3JzID0gJm1fcHJvYy5kb21pbmF0b3JzKCk7
IC8vIFJlY29tcHV0ZSBpZiBuZWNlc3NhcnkuCi0gICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZH
ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2ltcGxp
ZnlDRkcoKTsKLQotICAgICAgICAgICAgaWYgKG1fY2hhbmdlZENGRykgeworICAgICAgICAgICAg
aWYgKG1fYmxvY2tJbnNlcnRpb25TZXQuZXhlY3V0ZSgpIHwgbV9jaGFuZ2VkQ0ZHKSB7CiAgICAg
ICAgICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgICAgICAgICAgICAg
bV9wcm9jLmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgICAgICBtX2RvbWluYXRvcnMgPSBu
dWxscHRyOyAvLyBEb21pbmF0b3JzIGFyZSBub3QgdmFsaWQgYW55bW9yZSwgYW5kIHdlIGRvbid0
IG5lZWQgdGhlbSB5ZXQuCiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAga2lsbERlYWRDb2RlKCk7Ci0gICAgICAgICAgICBzaW1w
bGlmeVNTQSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICByZXN1bHQgfD0gbV9jaGFuZ2Vk
OwogICAgICAgICB9IHdoaWxlIChtX2NoYW5nZWQpOwpAQCAtMjMzMiwxMSArMjM0NCw2IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5hdCh0YXJnZXRJbmRleCsrKSA9IHZh
bHVlOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcHJv
Yy5kZWxldGVWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAvLyBJdCdzIG5vdCBlbnRpcmVseSBjbGVhciBpZiB0aGlzIGlzIG5lZWRlZC4gSSB0
aGluayBpdCBtYWtlcyBzZW5zZSB0byBoYXZlCi0gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMg
Zm9yY2UgYSByZXJ1biBvZiB0aGUgZml4cG9pbnQgZm9yIG5vdywgc2luY2UgdGhhdCB3aWxsIG1h
a2UgaXQgZWFzaWVyCi0gICAgICAgICAgICAgICAgICAgIC8vIHRvIGRvIHBlZXBob2xlIG9wdGlt
aXphdGlvbnM6IHJlbW92aW5nIGRlYWQgY29kZSB3aWxsIG1ha2UgdGhlIHBlZXBob2xlCi0gICAg
ICAgICAgICAgICAgICAgIC8vIGVhc2llciB0byBzcG90LgogICAgICAgICAgICAgICAgICAgICBt
X2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk5
LDYgKzY5OSwyMSBAQCB2b2lkIFZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKCkKICAgICB9CiB9
CiAKK2Jvb2wgVmFsdWU6OmlzRnJlZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChvcGNvZGUoKSkg
eworICAgIGNhc2UgQ29uc3QzMjoKKyAgICBjYXNlIENvbnN0NjQ6CisgICAgY2FzZSBDb25zdERv
dWJsZToKKyAgICBjYXNlIENvbnN0RmxvYXQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAgICBjYXNl
IE5vcDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KK30KKwogdm9pZCBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiwg
UHJpbnRTdHJlYW0mKSBjb25zdAogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5oCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgVHJpU3RhdGUgYWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7
CiAgICAgdmlydHVhbCBUcmlTdGF0ZSBiZWxvd0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRDb25zdGFu
dChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwotCisgICAgCiAgICAgLy8gSWYgdGhlIHZhbHVl
IGlzIGEgY29tcGFyaXNvbiB0aGVuIHRoaXMgcmV0dXJucyB0aGUgaW52ZXJ0ZWQgZm9ybSBvZiB0
aGF0IGNvbXBhcmlzb24sIGlmCiAgICAgLy8gcG9zc2libGUuIEl0IGNhbiBiZSBpbXBvc3NpYmxl
IGZvciBkb3VibGUgY29tcGFyaXNvbnMsIHdoZXJlIGZvciBleGFtcGxlIExlc3NUaGFuIGFuZAog
ICAgIC8vIEdyZWF0ZXJFcXVhbCBiZWhhdmUgZGlmZmVyZW50bHkuIElmIHRoaXMgcmV0dXJucyBh
IHZhbHVlLCBpdCBpcyBhIG5ldyB2YWx1ZSwgd2hpY2ggbXVzdCBiZQpAQCAtMjQ1LDYgKzI0NSwx
MSBAQCBwdWJsaWM6CiAgICAgLy8gcmVwb2ludCBpdCBhdCB0aGUgSWRlbnRpdHkncyBjaGlsZC4g
Rm9yIHNpbXBsaWNpdHksIHRoaXMgd2lsbCBmb2xsb3cgYXJiaXRyYXJpbHkgbG9uZyBjaGFpbnMK
ICAgICAvLyBvZiBJZGVudGl0eSdzLgogICAgIHZvaWQgcGVyZm9ybVN1YnN0aXR1dGlvbigpOwor
ICAgIAorICAgIC8vIEZyZWUgdmFsdWVzIGFyZSB0aG9zZSB3aG9zZSBwcmVzZW5jZSBpcyBndWFy
YW50ZWVkIG5vdCB0byBodXJ0IGNvZGUuIFdlIGNvbnNpZGVyIGNvbnN0YW50cywKKyAgICAvLyBJ
ZGVudGl0aWVzLCBhbmQgTm9wcyB0byBiZSBmcmVlLiBDb25zdGFudHMgYXJlIGZyZWUgYmVjYXVz
ZSB3ZSBob2lzdCB0aGVtIHRvIGFuIG9wdGltYWwgcGxhY2UuCisgICAgLy8gSWRlbnRpdGllcyBh
bmQgTm9wcyBhcmUgZnJlZSBiZWNhdXNlIHdlIHJlbW92ZSB0aGVtLgorICAgIGJvb2wgaXNGcmVl
KCkgY29uc3Q7CiAKICAgICAvLyBXYWxrIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyB2YWx1ZSAoaS5l
LiB0aGUgZ3JhcGggb2YgdGhpbmdzIGl0IHRyYW5zaXRpdmVseSB1c2VzKS4gVGhpcwogICAgIC8v
IGVpdGhlciB3YWxrcyBwaGlzIG9yIG5vdCwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgUGhpQ2hpbGRy
ZW4gaXMgbnVsbC4gWW91ciBjYWxsYmFjayBnZXRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIzODAsOCArMjM4MCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CiAgICAgICAgIGlmICh1aWQtPmlz
U3ltYm9sKCkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9ub2Rl
LT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQ
dHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBMVmFs
dWUgc3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
ICAgIHNwZWN1bGF0ZShCYWRJZGVudCwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5ub3RFcXVh
bChzdHJpbmdJbXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5nSWRlbnQobV9ub2RlLT5jaGls
ZDEoKSk7CkBAIC00OTM5LDEwICs0OTM4LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChtX25vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UpKSB7Ci0gICAgICAgICAg
ICBMVmFsdWUgbGVmdCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAg
IExWYWx1ZSByaWdodCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAg
IExWYWx1ZSBsZWZ0U3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIobGVmdCwgbV9oZWFwcy5TeW1i
b2xfcHJpdmF0ZU5hbWUpOwotICAgICAgICAgICAgTFZhbHVlIHJpZ2h0U3RyaW5nSW1wbCA9IG1f
b3V0LmxvYWRQdHIocmlnaHQsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBsZWZ0U3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIExWYWx1ZSByaWdodFN0cmluZ0ltcGwgPSBsb3dTeW1ib2xVSUQobV9u
b2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFsKGxlZnRT
dHJpbmdJbXBsLCByaWdodFN0cmluZ0ltcGwpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpAQCAtOTczMyw2ICs5NzMwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1bGF0ZVN5
bWJvbChlZGdlLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKyAgICAK
KyAgICBMVmFsdWUgbG93U3ltYm9sVUlEKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9k
ZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAgICAgaWYg
KFN5bWJvbCogc3ltYm9sID0gZWRnZS0+ZHluYW1pY0Nhc3RDb25zdGFudDxTeW1ib2wqPigpKQor
ICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50UHRyKHN5bWJvbC0+cHJpdmF0ZU5hbWUo
KS51aWQoKSk7CisgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2woZWRnZSwgbW9kZSk7
CisgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBhdm9pZCB0aGlzIGxvYWQgaWYgd2UgaGFkIGhh
c2gtY29uc2VkIFN5bWJvbHMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTg5MDgKKyAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWRQdHIoc3ltYm9s
LCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgfQogCiAgICAgTFZhbHVlIGxvd05v
bk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRv
bWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283980</attachid>
            <date>2016-07-18 22:54:38 -0700</date>
            <delta_ts>2016-07-19 00:16:01 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>31429</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE2LTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgc2hvdWxkIGluZmVyIHN3aXRjaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg4OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIG5ldyBwaGFzZSB0byBCMywgd2hp
Y2ggZmluZHMgY2hhaW5zIG9mIGJyYW5jaGVzIHRoYXQgdGVzdCBmb3IgKGluKWVxdWFsaXR5IG9u
IHRoZQorICAgICAgICBzYW1lIHZhbHVlIGFuZCBjb25zdGFudHMsIGFuZCB0dXJucyB0aGVtIGlu
dG8gYSBTd2l0Y2guIFRoaXMgY2FuIHR1cm4gTyhuKSBjb2RlIGludG8KKyAgICAgICAgTyhuIGxv
ZyBuKSBjb2RlLCBvciBldmVuIE8oMSkgY29kZSBpZiB0aGUgc3dpdGNoIGNhc2VzIGFyZSBkZW5z
ZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2FuIG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBpbiBK
Uy4gU2F5IHlvdSB3cml0ZSBhIHN3aXRjaCBpbiB3aGljaCB0aGUgY2FzZSBzdGF0ZW1lbnRzIGFy
ZQorICAgICAgICB2YXJpYWJsZSByZXNvbHV0aW9ucy4gVGhlIGJ5dGVjb2RlIGdlbmVyYXRvciBj
YW5ub3QgdXNlIGEgYnl0ZWNvZGUgc3dpdGNoIGluIHRoaXMgY2FzZSwgc2luY2UKKyAgICAgICAg
d2UncmUgcmVxdWlyZWQgdG8gZXZhbHVhdGUgdGhlIHJlc29sdXRpb25zIGluIG9yZGVyLiBCdXQg
aW4gREZHIElSLCB3ZSB3aWxsIG9mdGVuIHR1cm4gdGhvc2UKKyAgICAgICAgdmFyaWFibGUgcmVz
b2x1dGlvbnMgaW50byBjb25zdGFudHMsIHNpbmNlIHdlIGRvIHRoYXQgZm9yIGFueSBpbW11dGFi
bGUgc2luZ2xldG9uLiBUaGlzIG1lYW5zCisgICAgICAgIHRoYXQgQjMgd2lsbCBzZWUgYSBjaGFp
biBvZiBCcmFuY2hlczogdGhlIGVsc2UgY2FzZSBvZiBvbmUgQnJhbmNoIHdpbGwgcG9pbnQgdG8g
YSBiYXNpYyBibG9jaworICAgICAgICB0aGF0IGRvZXMgbm90aGluZyBidXQgQnJhbmNoIG9uIGVx
dWFsaXR5IG9uIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBmaXJzdCBCcmFuY2guCisKKyAgICAgICAg
VGhlIGluZmVyZW5jZSBhbGdvcml0aG0gaXMgcXVpdGUgc2ltcGxlLiBUaGUgYmFzaWMgYnVpbGRp
bmcgYmxvY2sgaXMgdGhlIGFiaWxpdHkgdG8gc3VtbWFyaXplCisgICAgICAgIGEgYmxvY2sncyBz
d2l0Y2ggYmVoYXZpb3IuIEZvciBhIGJsb2NrIHRoYXQgZW5kcyBpbiBhIHN3aXRjaCwgdGhpcyBp
cyBqdXN0IHRoZSBjb2xsZWN0aW9uIG9mCisgICAgICAgIHN3aXRjaCBjYXNlcy4gRm9yIGEgYmxv
Y2sgdGhhdCBlbmRzIGluIGEgYnJhbmNoLCB3ZSByZWNvZ25pemUgQnJhbmNoKEVxdWFsKHZhbHVl
LCBjb25zdCkpLAorICAgICAgICBCcmFuY2goTm90RXF1YWwodmFsdWUsIGNvbnN0KSksIGFuZCBC
cmFuY2godmFsdWUpLiBFYWNoIG9mIHRoZXNlIGFyZSBzdW1tYXJpemVkIGFzIGlmIHRoZXkKKyAg
ICAgICAgd2VyZSBvbmUtY2FzZSBzd2l0Y2hlcy4gV2UgaW5mZXIgYSBuZXcgc3dpdGNoIGlmIGJv
dGggc29tZSBibG9jayBhbmQgaXRzIHNvbGUgcHJlZGVjZXNzb3IKKyAgICAgICAgY2FuIGJlIGRl
c2NyaWJlZCBhcyBzd2l0Y2hlcyBvbiB0aGUgc2FtZSB2YWx1ZSwgbm90aGluZyBzaGFkeSBpcyBn
b2luZyBvbiAobGlrZSBsb29wcyksIGFuZAorICAgICAgICB0aGUgYmxvY2sgaW4gcXVlc3Rpb24g
ZG9lcyBubyB3b3JrIG90aGVyIHRoYW4gdGhpcyBzd2l0Y2guIEluIHRoYXQgY2FzZSwgdGhlIGJs
b2NrIGlzIGtpbGxlZAorICAgICAgICBhbmQgaXRzIGNhc2VzICh3aGljaCB3ZSBnZXQgZnJvbSB0
aGUgc3VtbWFyeSkgYXJlIGFkZGVkIHRvIHRoZSBwcmVkZWNlc3NvcidzIHN3aXRjaC4gVGhpcwor
ICAgICAgICBhbGdvcml0aG0gcnVucyB0byBmaXhwb2ludC4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgYWxzbyBjaGFuZ2VzIGhvdyB3ZSBjb21waWxlIGVxdWFsaXR5IHRvIFN5bWJvbHMgdG8gY29u
c3RhbnQtZm9sZCB0aGUgbG9hZCBvZiB0aGUKKyAgICAgICAgU3ltYm9sJ3MgVUlELiBUaGlzIGlz
IG5lY2Vzc2FyeSBmb3IgbWFraW5nIHN3aXRjaGVzIG9uIFN5bWJvbHMgaW5mZXJyYWJsZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvQjNHZW5lcmF0ZS5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpnZW5lcmF0ZVRvQWlyKToKKyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNo
ZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OmluZmVyU3dpdGNoZXMpOgorICAgICAg
ICAqIGIzL0IzSW5mZXJTd2l0Y2hlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBiMy9CM1Byb2NlZHVy
ZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjZmcpOgorICAgICAgICAqIGIzL0Iz
UmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6VmFsdWU6OnBlcmZvcm1TdWJzdGl0dXRpb24pOgorICAgICAgICAoSlNDOjpCMzo6
VmFsdWU6OmlzRnJlZSk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZHVtcE1ldGEpOgorICAg
ICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrSWRlbnQp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93U3ltYm9s
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93U3ltYm9sVUlEKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93Tm9uTnVsbE9iamVjdCk6
CisKIDIwMTYtMDctMTggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWtlIGJ1aWx0aW4gVHlwZUVycm9ycyBjb25zaXN0ZW50CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzRnJlcXVlbmN5Q2xhc3Mu
Y3BwCiAgICAgYjMvQjNHZW5lcmF0ZS5jcHAKICAgICBiMy9CM0hlYXBSYW5nZS5jcHAKKyAgICBi
My9CM0luZmVyU3dpdGNoZXMuY3BwCiAgICAgYjMvQjNJbnNlcnRpb25TZXQuY3BwCiAgICAgYjMv
QjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuY3BwCiAgICAgYjMvQjNMb3dlck1hY3Jvcy5jcHAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTk5OSw2ICsxOTk5LDggQEAKIAkJREM2MDVCNUYxQ0UyNkVB
NTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJ
RC5jcHAgKi87IH07CiAJCURDNjA1QjYwMUNFMjZFQTcwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUMx
Q0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2OUFBNjYxQ0Y3QTFGMjAwQzYyNzJGIC8qIE1h
dGNoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERDNjlBQTY1MUNGN0ExRUYwMEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgKi87IH07CisJ
CURDNjlCOTlDMUQxNUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUI5OUExRDE1RjkwRjAw
MkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi87IH07CisJCURDNjlCOTlEMUQxNUY5MTQw
MDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlCOTlCMUQxNUY5MEYwMDJFM0MwMCAvKiBCM0luZmVyU3dp
dGNoZXMuaCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVy
c01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
Nzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuY3BwICovOyB9OwogCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5s
aW5lcy5oICovOyB9OwpAQCAtNDIzNCw2ICs0MjM2LDggQEAKIAkJREM2MDVCNUIxQ0UyNkU5ODAw
NTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNUMxQ0UyNkU5ODAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVy
VUlELmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIz
SW5mZXJTd2l0Y2hlcy5jcHA7IHBhdGggPSBiMy9CM0luZmVyU3dpdGNoZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZl
clN3aXRjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzSW5mZXJTd2l0
Y2hlcy5oOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MjFDREU5RjlFMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDOUEw
QzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb24uY3BwOyBwYXRoID0gYjMv
QjNDYXNlQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzU1
LDYgKzQ3NTksOCBAQAogCQkJCTBGRUM4NUMwMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0hlYXBSYW5n
ZS5oICovLAogCQkJCTBGRUM4NEQxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4TWFwLmggKi8s
CiAJCQkJMEZFQzg0RDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhTZXQuaCAqLywKKwkJCQlE
QzY5Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLywKKwkJCQlE
QzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggKi8sCiAJCQkJMEZF
Qzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJCQkwRkVD
ODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCAqLywKIAkJCQkwRkVDODVC
NjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmggKi8sCkBAIC03NTY2
LDYgKzc1NzIsNyBAQAogCQkJCUE1RUE3MTA0MTlGNkRFNzIwMDk4RjVFQyAvKiBnZW5lcmF0ZV9v
YmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAog
CQkJCTBGNjRFQUYzMUM0RUNEMDYwMDYyMUU5QiAvKiBBaXJBcmdJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUVBNzEwNTE5RjZERTc0MDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19jb25m
aWd1cmF0aW9uX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAorCQkJCURDNjlCOTlEMUQxNUY5MTQw
MDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RUE3MTA2
MTlGNkRFNzYwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRpb25faW1wbGVtZW50
YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRjdDMzlGRjFDOTBDNTVCMDA0ODAxNTEgLyog
REZHT3BJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNzE5RjZERTc4MDA5OEY1RUMg
LyogZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBlX2NvbnZlcnNpb25zX2hlYWRlci5weSBpbiBI
ZWFkZXJzICovLApAQCAtODczMyw2ICs4NzQwLDcgQEAKIAkJCQkwRkVDODUwNTFCREFDREFDMDA4
MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDcx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVDODUwOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkVDODUwQjFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBEMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Nv
bnN0MzJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzZFNTQ1NDFDNDY4RTc3MDBCNUFG
NzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDMzOTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJCM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Np
b25zLmgiCiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0ZvbGRQYXRoQ29uc3Rh
bnRzLmgiCisjaW5jbHVkZSAiQjNJbmZlclN3aXRjaGVzLmgiCiAjaW5jbHVkZSAiQjNMZWdhbGl6
ZU1lbW9yeU9mZnNldHMuaCIKICNpbmNsdWRlICJCM0xvd2VyTWFjcm9zLmgiCiAjaW5jbHVkZSAi
QjNMb3dlck1hY3Jvc0FmdGVyT3B0aW1pemF0aW9ucy5oIgpAQCAtODIsNiArODMsNyBAQCB2b2lk
IGdlbmVyYXRlVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUsCiAgICAgICAgIHJlZHVjZURvdWJs
ZVRvRmxvYXQocHJvY2VkdXJlKTsKICAgICAgICAgcmVkdWNlU3RyZW5ndGgocHJvY2VkdXJlKTsK
ICAgICAgICAgZWxpbWluYXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMocHJvY2VkdXJlKTsKKyAgICAg
ICAgaW5mZXJTd2l0Y2hlcyhwcm9jZWR1cmUpOwogICAgICAgICBkdXBsaWNhdGVUYWlscyhwcm9j
ZWR1cmUpOwogICAgICAgICBmaXhTU0EocHJvY2VkdXJlKTsKICAgICAgICAgZm9sZFBhdGhDb25z
dGFudHMocHJvY2VkdXJlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVy
U3dpdGNoZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0lu
ZmVyU3dpdGNoZXMuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0luZmVyU3dpdGNoZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzE4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJCM0luZmVyU3dpdGNoZXMuaCIKKworI2lmIEVOQUJMRShCM19K
SVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaCIKKyNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIK
KyNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMu
aCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAiQjNVc2VDb3VudHMuaCIK
KyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworbmFtZXNwYWNlIHsKKworY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CisKK2NsYXNzIEluZmVyU3dpdGNoZXMgeworcHVibGljOgor
ICAgIEluZmVyU3dpdGNoZXMoUHJvY2VkdXJlJiBwcm9jKQorICAgICAgICA6IG1fcHJvYyhwcm9j
KQorICAgICAgICAsIG1faW5zZXJ0aW9uU2V0KHByb2MpCisgICAgICAgICwgbV91c2VDb3VudHMo
cHJvYykKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wgcnVuKCkKKyAgICB7CisgICAgICAg
IGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiQjMgYmVmb3JlIGluZmVyU3dpdGNo
ZXM6XG4iLCBtX3Byb2MpOworICAgICAgICAKKyAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgYm9vbCBldmVyQ2hhbmdlZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoY2hhbmdl
ZCkgeworICAgICAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKQorICAgICAgICAgICAgICAgIGNo
YW5nZWQgfD0gYXR0ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3IoYmxvY2spOworCisgICAgICAg
ICAgICBldmVyQ2hhbmdlZCB8PSBjaGFuZ2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBpZiAoZXZlckNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0
eSgpOworICAgICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZU9ycGhhbnMoKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgaW5m
ZXJTd2l0Y2hlczpcbiIsIG1fcHJvYyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKK3ByaXZh
dGU6CisgICAgYm9vbCBhdHRlbXB0VG9NZXJnZVdpdGhQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBi
bG9jaykKKyAgICB7CisgICAgICAgIC8vIE5vIHBvaW50IGluIGNvbnNpZGVyaW5nIHRoZSByb290
IGJsb2NrLiBXZSBhbHNvIGRvbid0IGNvbnNpZGVyIGJsb2NrcyB3aXRoIG11bHRpcGxlCisgICAg
ICAgIC8vIHByZWRlY2Vzc29ycywgYnV0IHdlIGNvdWxkIGhhbmRsZSB0aGlzIGlmIHdlIG1hZGUg
dGhpcyBjb2RlIGEgYml0IG1vcmUgZ2VuZXJhbCBhbmQgd2Ugd2VyZQorICAgICAgICAvLyBub3Qg
YWZyYWlkIG9mIGNvZGUgYmxvYXQuCisgICAgICAgIGlmIChibG9jay0+bnVtUHJlZGVjZXNzb3Jz
KCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIFN3
aXRjaERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uID0gZGVzY3JpYmUoYmxvY2spOworICAgICAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIkRlc2NyaXB0aW9uIG9mIHByaW1hcnkg
YmxvY2sgIiwgKmJsb2NrLCAiOiAiLCBkZXNjcmlwdGlvbiwgIlxuIik7CisgICAgICAgIGlmICgh
ZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAg
IGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugbm90IHN3aXRjaC1saWtlLlxuIik7CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdl
IGtub3cgdGhhdCB0aGlzIGJsb2NrIGJlaGF2ZXMgbGlrZSBhIHN3aXRjaC4gQnV0IHdlIG5lZWQg
dG8gdmVyaWZ5IHRoYXQgaXQgZG9lc24ndCBhbHNvCisgICAgICAgIC8vIHBlcmZvcm0gYW55IGVm
ZmVjdHMgb3IgZG8gZXhwZW5zaXZlIHRoaW5ncy4gV2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBz
d2l0Y2ggaWYgdGhhdCB3aWxsCisgICAgICAgIC8vIG1ha2UgZXhwZW5zaXZlIHRoaW5ncyBleGVj
dXRlIHVuY29uZGl0aW9uYWxseS4gV2UncmUgdmVyeSBjb25zZXJ2YXRpdmUgYWJvdXQgaG93IHdl
IGRlZmluZQorICAgICAgICAvLyAiZXhwZW5zaXZlIi4KKyAgICAgICAgZm9yIChWYWx1ZSogdmFs
dWUgOiAqYmxvY2spIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNGcmVlKCkpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gZGVzY3JpcHRpb24u
ZXh0cmEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAodmFsdWUg
PT0gZGVzY3JpcHRpb24uYnJhbmNoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcg
YmVjYXVzZSBvZiAiLCBkZWVwRHVtcChtX3Byb2MsIHZhbHVlKSwgIlxuIik7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEJhc2ljQmxvY2sq
IHByZWRlY2Vzc29yID0gYmxvY2stPnByZWRlY2Vzc29yKDApOworICAgICAgICBTd2l0Y2hEZXNj
cmlwdGlvbiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uID0gZGVzY3JpYmUocHJlZGVjZXNzb3IpOwor
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICBEZXNjcmlwdGlv
biBvZiBwcmVkZWNlc3NvciBibG9jayAiLCAqcHJlZGVjZXNzb3IsICI6ICIsIHByZWRlY2Vzc29y
RGVzY3JpcHRpb24sICJcbiIpOworICAgICAgICBpZiAoIXByZWRlY2Vzc29yRGVzY3JpcHRpb24p
IHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAg
ICBCYWlsaW5nIGJlY2F1c2Ugbm90IHN3aXRjaC1saWtlLlxuIik7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEJvdGggdXMgYW5kIHRo
ZSBwcmVkZWNlc3NvciBhcmUgc3dpdGNoLWxpa2UsIGJ1dCB0aGF0IGRvZXNuJ3QgbWVhbiB0aGF0
IHdlJ3JlIGNvbXBhdGlibGUuCisgICAgICAgIC8vIFdlIG1heSBiZSBzd2l0Y2hpbmcgb24gZGlm
ZmVyZW50IHZhbHVlcyEKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLnNvdXJjZSAhPSBwcmVkZWNl
c3NvckRlc2NyaXB0aW9uLnNvdXJjZSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBzb3VyY2VzIGRvbid0IG1h
dGNoLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIC8vIFdlIGV4cGVjdCB0aGF0IHdlIGFyZSB0aGUgZmFsbC10aHJvdWdoIGRlc3Rp
bmF0aW9uIG9mIHRoZSBwcmVkZWNlc3Nvci4gVGhpcyBpcyBhIGJpdCBvZiBhCisgICAgICAgIC8v
IGdvb2Z5IGNvbmRpdGlvbi4gSWYgd2Ugd2VyZSBub3QgdGhlIGZhbGwtdGhyb3VnaCBkZXN0aW5h
dGlvbiB0aGVuIG91ciBzd2l0Y2ggaXMgcHJvYmFibHkKKyAgICAgICAgLy8ganVzdCB0b3RhbGx5
IHJlZHVuZGFudCBhbmQgd2Ugc2hvdWxkIGJlIGdldHRpbmcgcmlkIG9mIGl0LiBCdXQgd2UgZG9u
J3QgaGFuZGxlIHRoYXQgaGVyZSwKKyAgICAgICAgLy8geWV0LgorICAgICAgICBpZiAocHJlZGVj
ZXNzb3JEZXNjcmlwdGlvbi5mYWxsVGhyb3VnaC5ibG9jaygpICE9IGJsb2NrKSB7CisgICAgICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBi
ZWNhdXNlIGZhbGwtdGhyb3VnaCBvZiBwcmVkZWNlc3NvciBpcyBub3QgdGhlIHByaW1hcnkgYmxv
Y2suXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlcmUgYWluJ3Qgbm8gbG9vcHMuCisgICAgICAg
IGlmIChkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaC5ibG9jaygpID09IGJsb2NrCisgICAgICAgICAg
ICB8fCBkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaC5ibG9jaygpID09IHByZWRlY2Vzc29yKSB7Cisg
ICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFp
bGluZyBiZWNhdXNlIG9mIGZhbGwtdGhyb3VnaCBsb29wLlxuIik7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2Ug
OiBkZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgaWYgKHN3aXRjaENhc2UudGFyZ2V0
QmxvY2soKSA9PSBibG9jaworICAgICAgICAgICAgICAgIHx8IHN3aXRjaENhc2UudGFyZ2V0Qmxv
Y2soKSA9PSBwcmVkZWNlc3NvcikgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG9mIGxvb3AgaW4g
cHJpbWFyeSBjYXNlcy5cbiIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6
IHByZWRlY2Vzc29yRGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0Y2hD
YXNlLnRhcmdldEJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hDYXNl
LnRhcmdldEJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBv
ZiBsb29wIGluIHByZWRlY2Vzc29yIGNhc2VzLlxuIik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICBEb2luZyBpdCFcbiIpOworICAgICAg
ICAvLyBXZSdyZSBjb21taXR0ZWQgdG8gZG9pbmcgdGhlIHRoaW5nLgorICAgICAgICAKKyAgICAg
ICAgLy8gSW5zZXJ0IGFsbCBub24tdGVybWluYWwgdmFsdWVzIGZyb20gb3VyIGJsb2NrIGludG8g
b3VyIHByZWRlY2Vzc29yLiBXZSBkZWZpbml0ZWx5IG5lZWQgdG8KKyAgICAgICAgLy8gZG8gdGhp
cyBmb3IgY29uc3RhbnRzLiBXZSBkbyB0aGlzIGZvciBvdGhlciB2YWx1ZXMgYXMgYSBjb25zZXJ2
YXRpdmUgdGhpbmc6IHdlIHNob3VsZCBoYXZlCisgICAgICAgIC8vIHByb3ZlZCB0aGF0IGFueSBu
b24tY29uc3RhbnRzIGFyZSB1c2VkLW9uY2UgZnJvbSB0aGUgYnJhbmNoLCBidXQgaWYgdGhpcyBm
YWlscyBmb3Igc29tZQorICAgICAgICAvLyByZWFzb24sIHRoZW4gd2Ugd2FudCB0byBzdGlsbCBl
bWl0IHNvdW5kIGNvZGUuCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+
c2l6ZSgpIC0gMTsgKytpKQorICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0VmFsdWUo
cHJlZGVjZXNzb3ItPnNpemUoKSAtIDEsIGJsb2NrLT5hdChpKSk7CisgICAgICAgIG1faW5zZXJ0
aW9uU2V0LmV4ZWN1dGUocHJlZGVjZXNzb3IpOworICAgICAgICBibG9jay0+dmFsdWVzKCkucmVz
aXplKDApOworICAgICAgICBibG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE9vcHMsIGRl
c2NyaXB0aW9uLmJyYW5jaC0+b3JpZ2luKCkpOworICAgICAgICBibG9jay0+Y2xlYXJTdWNjZXNz
b3JzKCk7CisgICAgICAgIGJsb2NrLT5yZW1vdmVQcmVkZWNlc3NvcihwcmVkZWNlc3Nvcik7Cisg
ICAgICAgIAorICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrIDogZGVzY3Jp
cHRpb24uYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgc3VjY2Vzc29yQmxv
Y2stPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcHJlZGVjZXNzb3IpOworICAgICAgICAKKyAg
ICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcHJlZGVjZXNzb3ItPnJlcGxhY2VMYXN0
V2l0aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAgICAgICBtX3Byb2MsIHByZWRlY2Vzc29yLT5s
YXN0KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5zb3VyY2UpOworICAgICAgICBwcmVkZWNlc3Nv
ci0+Y2xlYXJTdWNjZXNzb3JzKCk7CisgICAgICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3Vn
aChkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaCk7CisgICAgICAgIAorICAgICAgICBWZWN0b3I8aW50
NjRfdD4gcHJlZGVjZXNzb3JDYXNlczsKKyAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENh
c2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAgICBzd2l0Y2hW
YWx1ZS0+YXBwZW5kQ2FzZShzd2l0Y2hDYXNlKTsKKyAgICAgICAgICAgIHByZWRlY2Vzc29yQ2Fz
ZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHN0
ZDo6c29ydChwcmVkZWNlc3NvckNhc2VzLmJlZ2luKCksIHByZWRlY2Vzc29yQ2FzZXMuZW5kKCkp
OworICAgICAgICBhdXRvIGlzUHJlZGVjZXNzb3JDYXNlID0gWyZdIChpbnQ2NF90IHZhbHVlKSAt
PiBib29sIHsKKyAgICAgICAgICAgIHJldHVybiAhIXRyeUJpbmFyeVNlYXJjaDxpbnQ2NF90PigK
KyAgICAgICAgICAgICAgICBwcmVkZWNlc3NvckNhc2VzLCBwcmVkZWNlc3NvckNhc2VzLnNpemUo
KSwgdmFsdWUsCisgICAgICAgICAgICAgICAgW10gKGludDY0X3QqIGVsZW1lbnQpIC0+IGludDY0
X3QgeyByZXR1cm4gKmVsZW1lbnQ7IH0pOworICAgICAgICB9OworICAgICAgICAKKyAgICAgICAg
Zm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBkZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAg
ICAgICAgaWYgKCFpc1ByZWRlY2Vzc29yQ2FzZShzd2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKSkKKyAg
ICAgICAgICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShzd2l0Y2hDYXNlKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdHJ1Y3QgU3dpdGNoRGVz
Y3JpcHRpb24geworICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbigpCisgICAgICAgIHsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIHsgcmV0dXJu
ICEhYmxvY2s7IH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBvdXQucHJpbnQoCisgICAgICAgICAgICAg
ICAgIntibG9jayA9ICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwKKyAgICAgICAgICAgICAgICAiLCBi
cmFuY2ggPSAiLCBwb2ludGVyRHVtcChicmFuY2gpLAorICAgICAgICAgICAgICAgICIsIGV4dHJh
ID0gIiwgcG9pbnRlckR1bXAoZXh0cmEpLAorICAgICAgICAgICAgICAgICIsIHNvdXJjZSA9ICIs
IHBvaW50ZXJEdW1wKHNvdXJjZSksCisgICAgICAgICAgICAgICAgIiwgY2FzZXMgPSAiLCBsaXN0
RHVtcChjYXNlcyksCisgICAgICAgICAgICAgICAgIiwgZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhy
b3VnaCwgIn0iKTsKKyAgICAgICAgfQorCisgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrIHsgbnVs
bHB0ciB9OworICAgICAgICBWYWx1ZSogYnJhbmNoIHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1
ZSogZXh0cmEgeyBudWxscHRyIH07IC8vIFRoaXMgaXMgdGhlIEVxdWFsIG9yIE5vdEVxdWFsIHZh
bHVlLCBpZiBhcHBsaWNhYmxlLgorICAgICAgICBWYWx1ZSogc291cmNlIHsgbnVsbHB0ciB9Owor
ICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZSwgMT4gY2FzZXM7CisgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayBmYWxsVGhyb3VnaDsKKyAgICB9OworICAgIAorICAgIFN3aXRjaERlc2NyaXB0aW9uIGRl
c2NyaWJlKEJhc2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRp
b24gcmVzdWx0OworICAgICAgICByZXN1bHQuYmxvY2sgPSBibG9jazsKKyAgICAgICAgcmVzdWx0
LmJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKHJlc3Vs
dC5icmFuY2gtPm9wY29kZSgpKSB7CisgICAgICAgIGNhc2UgQnJhbmNoOiB7CisgICAgICAgICAg
ICBWYWx1ZSogcHJlZGljYXRlID0gcmVzdWx0LmJyYW5jaC0+Y2hpbGQoMCk7CisgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2sgdGFrZW4gPSByZXN1bHQuYmxvY2stPnRha2VuKCk7CisgICAgICAg
ICAgICBGcmVxdWVudGVkQmxvY2sgbm90VGFrZW4gPSByZXN1bHQuYmxvY2stPm5vdFRha2VuKCk7
CisgICAgICAgICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChwcmVk
aWNhdGUtPm51bUNoaWxkcmVuKCkgPT0gMgorICAgICAgICAgICAgICAgICYmIHByZWRpY2F0ZS0+
Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV91c2VDb3VudHMubnVtVXNl
cyhwcmVkaWNhdGUpID09IDEpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHByZWRpY2F0ZS0+
b3Bjb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEVxdWFsOgorICAgICAgICAgICAgICAg
ICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGljYXRlOworICAgICAgICAgICAgICAgICAgICByZXN1
bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UocHJlZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwg
dGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0gbm90VGFr
ZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5vdEVxdWFsOgorICAgICAgICAgICAg
ICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGljYXRlOworICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UocHJlZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQo
KSwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0g
dGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaGFuZGxlZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJlc3Vs
dC5zb3VyY2UgPSBwcmVkaWNhdGU7CisgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3
aXRjaENhc2UoMCwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9
IHRha2VuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICBjYXNlIFN3aXRjaDogeworICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVl
ID0gcmVzdWx0LmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCk7CisgICAgICAgICAgICByZXN1bHQu
c291cmNlID0gc3dpdGNoVmFsdWUtPmNoaWxkKDApOworICAgICAgICAgICAgZm9yIChTd2l0Y2hD
YXNlIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1ZS0+Y2FzZXMocmVzdWx0LmJsb2NrKSkKKyAgICAg
ICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOworICAgICAgICAgICAg
cmVzdWx0LmZhbGxUaHJvdWdoID0gcmVzdWx0LmJsb2NrLT5mYWxsVGhyb3VnaCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmVzdWx0LmJsb2NrID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJlc3VsdC5i
cmFuY2ggPSBudWxscHRyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIFByb2NlZHVyZSYgbV9w
cm9jOworICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsKKyAgICBVc2VDb3VudHMgbV91
c2VDb3VudHM7Cit9OworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworYm9vbCBpbmZlclN3
aXRjaGVzKFByb2NlZHVyZSYgcHJvYykKK3sKKyAgICBQaGFzZVNjb3BlIHBoYXNlU2NvcGUocHJv
YywgImluZmVyU3dpdGNoZXMiKTsKKyAgICBJbmZlclN3aXRjaGVzIGluZmVyU3dpdGNoZXMocHJv
Yyk7CisgICAgcmV0dXJuIGluZmVyU3dpdGNoZXMucnVuKCk7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIEIzSW5mZXJTd2l0Y2hlc19oCisjZGVmaW5lIEIzSW5mZXJTd2l0Y2hlc19o
CisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
KworY2xhc3MgUHJvY2VkdXJlOworCisvLyBGaXhwb2ludHMgdG8gY29udmVydCBjaGFpbnMgb2Yg
YnJhbmNoZXMgaW50byBzd2l0Y2hlcy4KKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYp
OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJFKEIzX0pJVCkK
KworI2VuZGlmIC8vIEIzSW5mZXJTd2l0Y2hlc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBA
IHB1YmxpYzoKICAgICAvLyB0cmFuc2Zvcm1hdGlvbi4gSWYgeW91IGtub3cgdGhhdCB5b3UgbWF5
IGhhdmUgY3JlYXRlZCBzb21lLCB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8KICAgICAvLyBk
ZWxldGUgdGhlbSwgbWFraW5nIHRoZSBwcm9jZWR1cmUgdmFsaWQgYWdhaW4uCiAgICAgdm9pZCBk
ZWxldGVPcnBoYW5zKCk7Ci0KKyAgICAKICAgICBDRkcmIGNmZygpIGNvbnN0IHsgcmV0dXJuICpt
X2NmZzsgfQogCiAgICAgRG9taW5hdG9ycyYgZG9taW5hdG9ycygpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAzMzk0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTcsNyArNDE3LDMwIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJCMyBhZnRlciBpdGVyYXRpb24gIyIsIGluZGV4IC0gMSwgIiBvZiByZWR1Y2VTdHJl
bmd0aDpcbiIpOwogICAgICAgICAgICAgICAgIGRhdGFMb2cobV9wcm9jKTsKICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlDRkcoKTsKIAorICAgICAgICAg
ICAgaWYgKG1fY2hhbmdlZENGRykgeworICAgICAgICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNo
YWJpbGl0eSgpOworICAgICAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAg
ICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgLy8gV2UgZGVmaW5pdGVseSB3YW50IHRvIGRvIERDRSBiZWZvcmUgd2UgZG8gQ1NFIHNvIHRo
YXQgd2UgZG9uJ3QgaG9pc3QgdGhpbmdzLiBGb3IKKyAgICAgICAgICAgIC8vIGV4YW1wbGU6Cisg
ICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gQGRlYWQgPSBNdWwoQGEsIEBiKQorICAgICAg
ICAgICAgLy8gLi4uIGxvdHMgb2YgY29udHJvbCBmbG93IGFuZCBzdHVmZgorICAgICAgICAgICAg
Ly8gQHRoaW5nID0gTXVsKEBhLCBAYikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBJ
ZiB3ZSBkbyBDU0UgYmVmb3JlIERDRSwgd2Ugd2lsbCByZW1vdmUgQHRoaW5nIGFuZCBrZWVwIEBk
ZWFkLiBFZmZlY3RpdmVseSwgd2Ugd2lsbAorICAgICAgICAgICAgLy8gImhvaXN0IiBAdGhpbmcu
IE9uIHRoZSBvdGhlciBoYW5kLCBpZiB3ZSBydW4gRENFIGJlZm9yZSBDU0UsIHdlIHdpbGwga2ls
bCBAZGVhZCBhbmQKKyAgICAgICAgICAgIC8vIGtlZXAgQHRoaW5nLiBUaGF0J3MgYmV0dGVyLCBz
aW5jZSB3ZSB1c3VhbGx5IHdhbnQgdGhpbmdzIHRvIHN0YXkgd2hlcmV2ZXIgdGhlIGNsaWVudAor
ICAgICAgICAgICAgLy8gcHV0IHRoZW0uIFdlJ3JlIG5vdCBhY3R1YWxseSBzbWFydCBlbm91Z2gg
dGhpbmdzIHRvIG1vdmUgdGhpbmdzIGFyb3VuZCBhdCByYW5kb20uCisgICAgICAgICAgICBraWxs
RGVhZENvZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxpZnlTU0EoKTsKKyAg
ICAgICAgICAgIAogICAgICAgICAgICAgbV9wcm9jLnJlc2V0VmFsdWVPd25lcnMoKTsKICAgICAg
ICAgICAgIG1fZG9taW5hdG9ycyA9ICZtX3Byb2MuZG9taW5hdG9ycygpOyAvLyBSZWNvbXB1dGUg
aWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgbV9wdXJlQ1NFLmNsZWFyKCk7CkBAIC00NDAsMjMg
KzQ2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0
ZShtX2Jsb2NrKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fYmxvY2tJbnNl
cnRpb25TZXQuZXhlY3V0ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hh
YmlsaXR5KCk7Ci0gICAgICAgICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVDRkcoKTsKLSAgICAg
ICAgICAgICAgICBtX2RvbWluYXRvcnMgPSAmbV9wcm9jLmRvbWluYXRvcnMoKTsgLy8gUmVjb21w
dXRlIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzaW1wbGlmeUNGRygpOwot
Ci0gICAgICAgICAgICBpZiAobV9jaGFuZ2VkQ0ZHKSB7CisgICAgICAgICAgICBpZiAobV9ibG9j
a0luc2VydGlvblNldC5leGVjdXRlKCkgfCBtX2NoYW5nZWRDRkcpIHsKICAgICAgICAgICAgICAg
ICBtX3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICAgICAgICAgICAgICBtX3Byb2MuaW52
YWxpZGF0ZUNGRygpOworICAgICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9IG51bGxwdHI7IC8v
IERvbWluYXRvcnMgYXJlIG5vdCB2YWxpZCBhbnltb3JlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGVt
IHlldC4KICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBraWxsRGVhZENvZGUoKTsKLSAgICAgICAgICAgIHNpbXBsaWZ5U1NBKCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJlc3VsdCB8PSBtX2NoYW5nZWQ7CiAgICAgICAg
IH0gd2hpbGUgKG1fY2hhbmdlZCk7CkBAIC0yMzMyLDExICsyMzQ0LDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgYmxvY2stPmF0KHRhcmdldEluZGV4KyspID0gdmFsdWU7CiAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZh
bHVlKHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8v
IEl0J3Mgbm90IGVudGlyZWx5IGNsZWFyIGlmIHRoaXMgaXMgbmVlZGVkLiBJIHRoaW5rIGl0IG1h
a2VzIHNlbnNlIHRvIGhhdmUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmb3JjZSBhIHJl
cnVuIG9mIHRoZSBmaXhwb2ludCBmb3Igbm93LCBzaW5jZSB0aGF0IHdpbGwgbWFrZSBpdCBlYXNp
ZXIKLSAgICAgICAgICAgICAgICAgICAgLy8gdG8gZG8gcGVlcGhvbGUgb3B0aW1pemF0aW9uczog
cmVtb3ZpbmcgZGVhZCBjb2RlIHdpbGwgbWFrZSB0aGUgcGVlcGhvbGUKLSAgICAgICAgICAgICAg
ICAgICAgLy8gZWFzaWVyIHRvIHNwb3QuCiAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTksNiArNjk5LDIx
IEBAIHZvaWQgVmFsdWU6OnBlcmZvcm1TdWJzdGl0dXRpb24oKQogICAgIH0KIH0KIAorYm9vbCBW
YWx1ZTo6aXNGcmVlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CisgICAgY2Fz
ZSBDb25zdDMyOgorICAgIGNhc2UgQ29uc3Q2NDoKKyAgICBjYXNlIENvbnN0RG91YmxlOgorICAg
IGNhc2UgQ29uc3RGbG9hdDoKKyAgICBjYXNlIElkZW50aXR5OgorICAgIGNhc2UgTm9wOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorfQorCiB2b2lkIFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVh
bSYpIGNvbnN0CiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlz
aW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE4OCw3ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBUcmlTdGF0
ZSBhYm92ZUVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsKICAgICB2aXJ0
dWFsIFRyaVN0YXRlIGJlbG93RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
OwogICAgIHZpcnR1YWwgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBjb21w
YXJpc29uIHRoZW4gdGhpcyByZXR1cm5zIHRoZSBpbnZlcnRlZCBmb3JtIG9mIHRoYXQgY29tcGFy
aXNvbiwgaWYKICAgICAvLyBwb3NzaWJsZS4gSXQgY2FuIGJlIGltcG9zc2libGUgZm9yIGRvdWJs
ZSBjb21wYXJpc29ucywgd2hlcmUgZm9yIGV4YW1wbGUgTGVzc1RoYW4gYW5kCiAgICAgLy8gR3Jl
YXRlckVxdWFsIGJlaGF2ZSBkaWZmZXJlbnRseS4gSWYgdGhpcyByZXR1cm5zIGEgdmFsdWUsIGl0
IGlzIGEgbmV3IHZhbHVlLCB3aGljaCBtdXN0IGJlCkBAIC0yNDUsNiArMjQ1LDExIEBAIHB1Ymxp
YzoKICAgICAvLyByZXBvaW50IGl0IGF0IHRoZSBJZGVudGl0eSdzIGNoaWxkLiBGb3Igc2ltcGxp
Y2l0eSwgdGhpcyB3aWxsIGZvbGxvdyBhcmJpdHJhcmlseSBsb25nIGNoYWlucwogICAgIC8vIG9m
IElkZW50aXR5J3MuCiAgICAgdm9pZCBwZXJmb3JtU3Vic3RpdHV0aW9uKCk7CisgICAgCisgICAg
Ly8gRnJlZSB2YWx1ZXMgYXJlIHRob3NlIHdob3NlIHByZXNlbmNlIGlzIGd1YXJhbnRlZWQgbm90
IHRvIGh1cnQgY29kZS4gV2UgY29uc2lkZXIgY29uc3RhbnRzLAorICAgIC8vIElkZW50aXRpZXMs
IGFuZCBOb3BzIHRvIGJlIGZyZWUuIENvbnN0YW50cyBhcmUgZnJlZSBiZWNhdXNlIHdlIGhvaXN0
IHRoZW0gdG8gYW4gb3B0aW1hbCBwbGFjZS4KKyAgICAvLyBJZGVudGl0aWVzIGFuZCBOb3BzIGFy
ZSBmcmVlIGJlY2F1c2Ugd2UgcmVtb3ZlIHRoZW0uCisgICAgYm9vbCBpc0ZyZWUoKSBjb25zdDsK
IAogICAgIC8vIFdhbGsgdGhlIGFuY2VzdG9ycyBvZiB0aGlzIHZhbHVlIChpLmUuIHRoZSBncmFw
aCBvZiB0aGluZ3MgaXQgdHJhbnNpdGl2ZWx5IHVzZXMpLiBUaGlzCiAgICAgLy8gZWl0aGVyIHdh
bGtzIHBoaXMgb3Igbm90LCBkZXBlbmRpbmcgb24gd2hldGhlciBQaGlDaGlsZHJlbiBpcyBudWxs
LiBZb3VyIGNhbGxiYWNrIGdldHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM4MCw4
ICsyMzgwLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQgPSBtX25vZGUtPnVpZE9wZXJhbmQoKTsKICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkg
ewotICAgICAgICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihzeW1ib2ws
IG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJ
bXBsID0gbG93U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgc3BlY3Vs
YXRlKEJhZElkZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmluZ0lt
cGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKQEAg
LTQ5MzksMTAgKzQ5MzgsOCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1f
bm9kZS0+aXNCaW5hcnlVc2VLaW5kKFN5bWJvbFVzZSkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBs
ZWZ0ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJp
Z2h0ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxl
ZnRTdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihsZWZ0LCBtX2hlYXBzLlN5bWJvbF9wcml2YXRl
TmFtZSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmlnaHRTdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0
cihyaWdodCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgTFZhbHVl
IGxlZnRTdHJpbmdJbXBsID0gbG93U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgTFZhbHVlIHJpZ2h0U3RyaW5nSW1wbCA9IGxvd1N5bWJvbFVJRChtX25vZGUtPmNoaWxk
MigpKTsKICAgICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQuZXF1YWwobGVmdFN0cmluZ0ltcGws
IHJpZ2h0U3RyaW5nSW1wbCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC05
NzMzLDYgKzk3MzAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2Us
IHJlc3VsdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAgIAorICAgIExWYWx1
ZSBsb3dTeW1ib2xVSUQoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBB
dXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCisgICAgeworICAgICAgICBpZiAoU3ltYm9sKiBz
eW1ib2wgPSBlZGdlLT5keW5hbWljQ2FzdENvbnN0YW50PFN5bWJvbCo+KCkpCisgICAgICAgICAg
ICByZXR1cm4gbV9vdXQuY29uc3RJbnRQdHIoc3ltYm9sLT5wcml2YXRlTmFtZSgpLnVpZCgpKTsK
KyAgICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChlZGdlLCBtb2RlKTsKKyAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGF2b2lkIHRoaXMgbG9hZCBpZiB3ZSBoYWQgaGFzaC1jb25zZWQg
U3ltYm9scy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1ODkwOAorICAgICAgICByZXR1cm4gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMu
U3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICB9CiAKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVj
dChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJh
bmRTcGVjdWxhdGlvbikKICAgICB7Cg==
</data>
<flag name="review"
          id="307639"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283981</attachid>
            <date>2016-07-19 00:16:01 -0700</date>
            <delta_ts>2016-07-19 13:18:46 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>42896</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE2LTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgc2hvdWxkIGluZmVyIHN3aXRjaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg4OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIG5ldyBwaGFzZSB0byBCMywgd2hp
Y2ggZmluZHMgY2hhaW5zIG9mIGJyYW5jaGVzIHRoYXQgdGVzdCBmb3IgKGluKWVxdWFsaXR5IG9u
IHRoZQorICAgICAgICBzYW1lIHZhbHVlIGFuZCBjb25zdGFudHMsIGFuZCB0dXJucyB0aGVtIGlu
dG8gYSBTd2l0Y2guIFRoaXMgY2FuIHR1cm4gTyhuKSBjb2RlIGludG8KKyAgICAgICAgTyhsb2cg
bikgY29kZSwgb3IgZXZlbiBPKDEpIGNvZGUgaWYgdGhlIHN3aXRjaCBjYXNlcyBhcmUgZGVuc2Uu
CisgICAgICAgIAorICAgICAgICBUaGlzIGNhbiBtYWtlIGEgYmlnIGRpZmZlcmVuY2UgaW4gSlMu
IFNheSB5b3Ugd3JpdGUgYSBzd2l0Y2ggaW4gd2hpY2ggdGhlIGNhc2Ugc3RhdGVtZW50cyBhcmUK
KyAgICAgICAgdmFyaWFibGUgcmVzb2x1dGlvbnMuIFRoZSBieXRlY29kZSBnZW5lcmF0b3IgY2Fu
bm90IHVzZSBhIGJ5dGVjb2RlIHN3aXRjaCBpbiB0aGlzIGNhc2UsIHNpbmNlCisgICAgICAgIHdl
J3JlIHJlcXVpcmVkIHRvIGV2YWx1YXRlIHRoZSByZXNvbHV0aW9ucyBpbiBvcmRlci4gQnV0IGlu
IERGRyBJUiwgd2Ugd2lsbCBvZnRlbiB0dXJuIHRob3NlCisgICAgICAgIHZhcmlhYmxlIHJlc29s
dXRpb25zIGludG8gY29uc3RhbnRzLCBzaW5jZSB3ZSBkbyB0aGF0IGZvciBhbnkgaW1tdXRhYmxl
IHNpbmdsZXRvbi4gVGhpcyBtZWFucworICAgICAgICB0aGF0IEIzIHdpbGwgc2VlIGEgY2hhaW4g
b2YgQnJhbmNoZXM6IHRoZSBlbHNlIGNhc2Ugb2Ygb25lIEJyYW5jaCB3aWxsIHBvaW50IHRvIGEg
YmFzaWMgYmxvY2sKKyAgICAgICAgdGhhdCBkb2VzIG5vdGhpbmcgYnV0IEJyYW5jaCBvbiBlcXVh
bGl0eSBvbiB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgZmlyc3QgQnJhbmNoLgorCisgICAgICAgIFRo
ZSBpbmZlcmVuY2UgYWxnb3JpdGhtIGlzIHF1aXRlIHNpbXBsZS4gVGhlIGJhc2ljIGJ1aWxkaW5n
IGJsb2NrIGlzIHRoZSBhYmlsaXR5IHRvIHN1bW1hcml6ZQorICAgICAgICBhIGJsb2NrJ3Mgc3dp
dGNoIGJlaGF2aW9yLiBGb3IgYSBibG9jayB0aGF0IGVuZHMgaW4gYSBzd2l0Y2gsIHRoaXMgaXMg
anVzdCB0aGUgY29sbGVjdGlvbiBvZgorICAgICAgICBzd2l0Y2ggY2FzZXMuIEZvciBhIGJsb2Nr
IHRoYXQgZW5kcyBpbiBhIGJyYW5jaCwgd2UgcmVjb2duaXplIEJyYW5jaChFcXVhbCh2YWx1ZSwg
Y29uc3QpKSwKKyAgICAgICAgQnJhbmNoKE5vdEVxdWFsKHZhbHVlLCBjb25zdCkpLCBhbmQgQnJh
bmNoKHZhbHVlKS4gRWFjaCBvZiB0aGVzZSBhcmUgc3VtbWFyaXplZCBhcyBpZiB0aGV5CisgICAg
ICAgIHdlcmUgb25lLWNhc2Ugc3dpdGNoZXMuIFdlIGluZmVyIGEgbmV3IHN3aXRjaCBpZiBib3Ro
IHNvbWUgYmxvY2sgYW5kIGl0cyBzb2xlIHByZWRlY2Vzc29yCisgICAgICAgIGNhbiBiZSBkZXNj
cmliZWQgYXMgc3dpdGNoZXMgb24gdGhlIHNhbWUgdmFsdWUsIG5vdGhpbmcgc2hhZHkgaXMgZ29p
bmcgb24gKGxpa2UgbG9vcHMpLCBhbmQKKyAgICAgICAgdGhlIGJsb2NrIGluIHF1ZXN0aW9uIGRv
ZXMgbm8gd29yayBvdGhlciB0aGFuIHRoaXMgc3dpdGNoLiBJbiB0aGF0IGNhc2UsIHRoZSBibG9j
ayBpcyBraWxsZWQKKyAgICAgICAgYW5kIGl0cyBjYXNlcyAod2hpY2ggd2UgZ2V0IGZyb20gdGhl
IHN1bW1hcnkpIGFyZSBhZGRlZCB0byB0aGUgcHJlZGVjZXNzb3IncyBzd2l0Y2guIFRoaXMKKyAg
ICAgICAgYWxnb3JpdGhtIHJ1bnMgdG8gZml4cG9pbnQuCisgICAgICAgIAorICAgICAgICBUaGlz
IGFsc28gY2hhbmdlcyBob3cgd2UgY29tcGlsZSBlcXVhbGl0eSB0byBTeW1ib2xzIHRvIGNvbnN0
YW50LWZvbGQgdGhlIGxvYWQgb2YgdGhlCisgICAgICAgIFN5bWJvbCdzIFVJRC4gVGhpcyBpcyBu
ZWNlc3NhcnkgZm9yIG1ha2luZyBzd2l0Y2hlcyBvbiBTeW1ib2xzIGluZmVycmFibGUuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGIzL0IzR2VuZXJhdGUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6Z2VuZXJhdGVUb0Fpcik6CisgICAgICAgICogYjMvQjNJbmZlclN3aXRjaGVz
LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjppbmZlclN3aXRjaGVzKToKKyAgICAgICAg
KiBiMy9CM0luZmVyU3dpdGNoZXMuaDogQWRkZWQuCisgICAgICAgICogYjMvQjNQcm9jZWR1cmUu
aDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6Y2ZnKToKKyAgICAgICAgKiBiMy9CM1Jl
ZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OlZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjppc0ZyZWUpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmR1bXBNZXRhKToKKyAgICAg
ICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDaGVja0lkZW50KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNvbXBhcmVTdHJp
Y3RFcSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1N5bWJvbCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd1N5bWJvbFVJRCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd05vbk51bGxPYmplY3QpOgor
CiAyMDE2LTA3LTE4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSBidWlsdGluIFR5cGVFcnJvcnMgY29uc2lzdGVudApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDcg
QEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNw
cAogICAgIGIzL0IzR2VuZXJhdGUuY3BwCiAgICAgYjMvQjNIZWFwUmFuZ2UuY3BwCisgICAgYjMv
QjNJbmZlclN3aXRjaGVzLmNwcAogICAgIGIzL0IzSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0Iz
TGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcAogICAgIGIzL0IzTG93ZXJNYWNyb3MuY3BwCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTE5OTksNiArMTk5OSw4IEBACiAJCURDNjA1QjVGMUNFMjZFQTUw
MDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQu
Y3BwICovOyB9OwogCQlEQzYwNUI2MDFDRTI2RUE3MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVDMUNF
MjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDNjlBQTY2MUNGN0ExRjIwMEM2MjcyRiAvKiBNYXRj
aFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovOyB9OworCQlE
QzY5Qjk5QzFEMTVGOTEyMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlCOTlBMUQxNUY5MEYwMDJF
M0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwICovOyB9OworCQlEQzY5Qjk5RDFEMTVGOTE0MDAy
RTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRj
aGVzLmggKi87IH07CiAJCURDNzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzc5
OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDNzk5Nzg0MUNERTlGQTIwMDRE
NEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3Rl
cnNNb2RlLmNwcCAqLzsgfTsKIAkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBEQzlBMEMxRTFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGlu
ZXMuaCAqLzsgfTsKQEAgLTQyMzQsNiArNDIzNiw4IEBACiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5
MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJ
RC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5m
ZXJTd2l0Y2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0lu
ZmVyU3dpdGNoZXMuY3BwOyBwYXRoID0gYjMvQjNJbmZlclN3aXRjaGVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJT
d2l0Y2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0luZmVyU3dpdGNo
ZXMuaDsgcGF0aCA9IGIzL0IzSW5mZXJTd2l0Y2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzlBMEMx
QzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0Iz
Q2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc1NSw2
ICs0NzU5LDggQEAKIAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2Uu
aCAqLywKIAkJCQkwRkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oICovLAog
CQkJCTBGRUM4NEQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8sCisJCQkJREM2
OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8sCisJCQkJREM2
OUI5OUIxRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovLAogCQkJCTBGRUM4
NUI0MUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8sCiAJCQkJMEZFQzg1
QjUxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggKi8sCiAJCQkJMEZFQzg1QjYx
QkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oICovLApAQCAtNzU2Niw2
ICs3NTcyLDcgQEAKIAkJCQlBNUVBNzEwNDE5RjZERTcyMDA5OEY1RUMgLyogZ2VuZXJhdGVfb2Jq
Y19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjY0RUFGMzFDNEVDRDA2MDA2MjFFOUIgLyogQWlyQXJnSW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVFQTcxMDUxOUY2REU3NDAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfY29uZmln
dXJhdGlvbl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlEQzY5Qjk5RDFEMTVGOTE0MDAy
RTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNjE5
RjZERTc2MDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2ltcGxlbWVudGF0
aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QzM5RkYxQzkwQzU1QjAwNDgwMTUxIC8qIERG
R09wSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDcxOUY2REU3ODAwOThGNUVDIC8q
IGdlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19oZWFkZXIucHkgaW4gSGVh
ZGVycyAqLywKQEAgLTg3MzMsNiArODc0MCw3IEBACiAJCQkJMEZFQzg1MDUxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTA3MUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
Qzg1MDkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CURDNjlCOTlDMUQxNUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25z
dDMyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjcz
IC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0dlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAzMzk0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9u
cy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNGb2xkUGF0aENvbnN0YW50
cy5oIgorI2luY2x1ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgogI2luY2x1ZGUgIkIzTGVnYWxpemVN
ZW1vcnlPZmZzZXRzLmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvcy5oIgogI2luY2x1ZGUgIkIz
TG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuaCIKQEAgLTgyLDYgKzgzLDcgQEAgdm9pZCBn
ZW5lcmF0ZVRvQWlyKFByb2NlZHVyZSYgcHJvY2VkdXJlLAogICAgICAgICByZWR1Y2VEb3VibGVU
b0Zsb2F0KHByb2NlZHVyZSk7CiAgICAgICAgIHJlZHVjZVN0cmVuZ3RoKHByb2NlZHVyZSk7CiAg
ICAgICAgIGVsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zKHByb2NlZHVyZSk7CisgICAgICAg
IGluZmVyU3dpdGNoZXMocHJvY2VkdXJlKTsKICAgICAgICAgZHVwbGljYXRlVGFpbHMocHJvY2Vk
dXJlKTsKICAgICAgICAgZml4U1NBKHByb2NlZHVyZSk7CiAgICAgICAgIGZvbGRQYXRoQ29uc3Rh
bnRzKHByb2NlZHVyZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmRleE1h
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4TWFwLmgJ
KHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4TWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0
Y2hlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJT
d2l0Y2hlcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
SW5mZXJTd2l0Y2hlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkIzSW5mZXJTd2l0Y2hlcy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xs
ZWN0aW9uSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzUGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM1VzZUNvdW50cy5oIgorI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCituYW1lc3BhY2UgeworCitjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKKworY2xhc3MgSW5mZXJTd2l0Y2hlcyB7CitwdWJsaWM6CisgICAg
SW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHByb2MpCisgICAgICAgIDogbV9wcm9jKHByb2MpCisg
ICAgICAgICwgbV9pbnNlcnRpb25TZXQocHJvYykKKyAgICB7CisgICAgfQorICAgIAorICAgIGJv
b2wgcnVuKCkKKyAgICB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxv
ZygiQjMgYmVmb3JlIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAgICAKKyAgICAg
ICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgYm9vbCBldmVyQ2hhbmdlZCA9IGZhbHNl
OworICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAgICAgICAgICAgY2hhbmdlZCA9IGZhbHNl
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICBkYXRhTG9nKCJQZXJmb3JtaW5nIGZpeHBvaW50IGl0ZXJhdGlvbjpcbiIpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX3VzZUNvdW50cy5yZWNvbXB1dGUobV9wcm9jKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykKKyAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IGF0dGVtcHRUb01lcmdlV2l0aFByZWRlY2Vzc29yKGJsb2Nr
KTsKKworICAgICAgICAgICAgZXZlckNoYW5nZWQgfD0gY2hhbmdlZDsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKGV2ZXJDaGFuZ2VkKSB7CisgICAgICAgICAgICBtX3Byb2MucmVz
ZXRSZWFjaGFiaWxpdHkoKTsKKyAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fcHJvYy5kZWxldGVPcnBoYW5zKCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2co
IkIzIGFmdGVyIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgCitwcml2YXRlOgorICAgIGJvb2wgYXR0ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3Io
QmFzaWNCbG9jayogYmxvY2spCisgICAgeworICAgICAgICAvLyBObyBwb2ludCBpbiBjb25zaWRl
cmluZyB0aGUgcm9vdCBibG9jay4gV2UgYWxzbyBkb24ndCBjb25zaWRlciBibG9ja3Mgd2l0aCBt
dWx0aXBsZQorICAgICAgICAvLyBwcmVkZWNlc3NvcnMsIGJ1dCB3ZSBjb3VsZCBoYW5kbGUgdGhp
cyBpZiB3ZSBtYWRlIHRoaXMgY29kZSBhIGJpdCBtb3JlIGdlbmVyYWwgYW5kIHdlIHdlcmUKKyAg
ICAgICAgLy8gbm90IGFmcmFpZCBvZiBjb2RlIGJsb2F0LgorICAgICAgICBpZiAoYmxvY2stPm51
bVByZWRlY2Vzc29ycygpICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IAorICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiA9IGRlc2NyaWJlKGJsb2Nr
KTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCJEZXNjcmlwdGlv
biBvZiBwcmltYXJ5IGJsb2NrICIsICpibG9jaywgIjogIiwgZGVzY3JpcHRpb24sICJcbiIpOwor
ICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlr
ZS5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAvLyBXZSBrbm93IHRoYXQgdGhpcyBibG9jayBiZWhhdmVzIGxpa2UgYSBzd2l0Y2gu
IEJ1dCB3ZSBuZWVkIHRvIHZlcmlmeSB0aGF0IGl0IGRvZXNuJ3QgYWxzbworICAgICAgICAvLyBw
ZXJmb3JtIGFueSBlZmZlY3RzIG9yIGRvIGV4cGVuc2l2ZSB0aGluZ3MuIFdlIGRvbid0IHdhbnQg
dG8gY3JlYXRlIGEgc3dpdGNoIGlmIHRoYXQgd2lsbAorICAgICAgICAvLyBtYWtlIGV4cGVuc2l2
ZSB0aGluZ3MgZXhlY3V0ZSB1bmNvbmRpdGlvbmFsbHkuIFdlJ3JlIHZlcnkgY29uc2VydmF0aXZl
IGFib3V0IGhvdyB3ZSBkZWZpbmUKKyAgICAgICAgLy8gImV4cGVuc2l2ZSIuCisgICAgICAgIGZv
ciAoVmFsdWUqIHZhbHVlIDogKmJsb2NrKSB7CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzRnJl
ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09
IGRlc2NyaXB0aW9uLmV4dHJhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgaWYgKHZhbHVlID09IGRlc2NyaXB0aW9uLmJyYW5jaCkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2co
IiAgICBCYWlsaW5nIGJlY2F1c2Ugb2YgIiwgZGVlcER1bXAobV9wcm9jLCB2YWx1ZSksICJcbiIp
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA9IGJsb2NrLT5wcmVkZWNlc3NvcigwKTsKKyAgICAg
ICAgU3dpdGNoRGVzY3JpcHRpb24gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbiA9IGRlc2NyaWJlKHBy
ZWRlY2Vzc29yKTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIg
ICAgRGVzY3JpcHRpb24gb2YgcHJlZGVjZXNzb3IgYmxvY2sgIiwgKnByZWRlY2Vzc29yLCAiOiAi
LCBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLCAiXG4iKTsKKyAgICAgICAgaWYgKCFwcmVkZWNlc3Nv
ckRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlrZS5cbiIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBC
b3RoIHVzIGFuZCB0aGUgcHJlZGVjZXNzb3IgYXJlIHN3aXRjaC1saWtlLCBidXQgdGhhdCBkb2Vz
bid0IG1lYW4gdGhhdCB3ZSdyZSBjb21wYXRpYmxlLgorICAgICAgICAvLyBXZSBtYXkgYmUgc3dp
dGNoaW5nIG9uIGRpZmZlcmVudCB2YWx1ZXMhCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5zb3Vy
Y2UgIT0gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5zb3VyY2UpIHsKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugc291
cmNlcyBkb24ndCBtYXRjaC5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB3ZSBhcmUgdGhlIGZhbGwt
dGhyb3VnaCBkZXN0aW5hdGlvbiBvZiB0aGUgcHJlZGVjZXNzb3IuIFRoaXMgaXMgYSBiaXQgb2Yg
YQorICAgICAgICAvLyBnb29meSBjb25kaXRpb24uIElmIHdlIHdlcmUgbm90IHRoZSBmYWxsLXRo
cm91Z2ggZGVzdGluYXRpb24gdGhlbiBvdXIgc3dpdGNoIGlzIHByb2JhYmx5CisgICAgICAgIC8v
IGp1c3QgdG90YWxseSByZWR1bmRhbnQgYW5kIHdlIHNob3VsZCBiZSBnZXR0aW5nIHJpZCBvZiBp
dC4gQnV0IHdlIGRvbid0IGhhbmRsZSB0aGF0IGhlcmUsCisgICAgICAgIC8vIHlldC4KKyAgICAg
ICAgaWYgKHByZWRlY2Vzc29yRGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSAhPSBibG9j
aykgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygi
ICAgIEJhaWxpbmcgYmVjYXVzZSBmYWxsLXRocm91Z2ggb2YgcHJlZGVjZXNzb3IgaXMgbm90IHRo
ZSBwcmltYXJ5IGJsb2NrLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZXJlIGFpbid0IG5vIGxv
b3BzLgorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBibG9j
aworICAgICAgICAgICAgfHwgZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBwcmVk
ZWNlc3NvcikgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0
YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiBmYWxsLXRocm91Z2ggbG9vcC5cbiIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoU3dpdGNoQ2Fz
ZSBzd2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0
Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hD
YXNlLnRhcmdldEJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVz
ZSBvZiBsb29wIGluIHByaW1hcnkgY2FzZXMuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChTd2l0Y2hDYXNl
IHN3aXRjaENhc2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAg
ICBpZiAoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IGJsb2NrCisgICAgICAgICAgICAgICAg
fHwgc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWls
aW5nIGJlY2F1c2Ugb2YgbG9vcCBpbiBwcmVkZWNlc3NvciBjYXNlcy5cbiIpOworICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRG9pbmcgaXQh
XG4iKTsKKyAgICAgICAgLy8gV2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIHRoZSB0aGluZy4KKyAg
ICAgICAgCisgICAgICAgIC8vIERlbGV0ZSB0aGUgZXh0cmEgdmFsdWUgZnJvbSB0aGUgcHJlZGVj
ZXNzb3IsIHNpbmNlIHRoYXQgd291bGQgYnJlYWsgZG93bnN0cmVhbSBpbmZlcmVuY2UKKyAgICAg
ICAgLy8gb24gdGhlIG5leHQgZml4cG9pbnQgaXRlcmF0aW9uLiBXZSB3b3VsZCB0aGluayB0aGF0
IHRoaXMgYmxvY2sgaXMgdG9vIGV4cGVuc2l2ZSB0byBtZXJnZQorICAgICAgICAvLyBiZWNhdXNl
IG9mIHRoZSBFcXVhbCBvciBOb3RFcXVhbCB2YWx1ZSBldmVuIHRob3VnaCB0aGF0IHZhbHVlIGlz
IGRlYWQhIFdlIGtub3cgaXQncyBkZWFkCisgICAgICAgIC8vIHNvIHdlIGtpbGwgaXQgb3Vyc2Vs
dmVzLgorICAgICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICpwcmVkZWNlc3NvcikgeworICAgICAg
ICAgICAgaWYgKHZhbHVlID09IHByZWRlY2Vzc29yRGVzY3JpcHRpb24uZXh0cmEpCisgICAgICAg
ICAgICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoTm9wSWdub3JpbmdUeXBlKCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIC8vIEluc2VydCBhbGwgbm9uLXRlcm1pbmFsIHZhbHVlcyBmcm9t
IG91ciBibG9jayBpbnRvIG91ciBwcmVkZWNlc3Nvci4gV2UgZGVmaW5pdGVseSBuZWVkIHRvCisg
ICAgICAgIC8vIGRvIHRoaXMgZm9yIGNvbnN0YW50cy4gV2UgbXVzdCBub3QgZG8gaXQgZm9yIHRo
ZSBleHRyYSB2YWx1ZSwgc2luY2UgdGhhdCB3b3VsZCBicmVhaworICAgICAgICAvLyBkb3duc3Ry
ZWFtIGluZmVyZW5jZSBvbiB0aGUgbmV4dCBmaXhwb2ludCBpdGVyYXRpb24uIEFzIGEgYm9udXMs
IHdlIGRvbid0IGRvIGl0IGZvciBub3BzLAorICAgICAgICAvLyBzbyB0aGF0IHdlIGxpbWl0IGhv
dyBiaWcgYmxvY2tzIGdldCBpbiB0aGlzIHBoYXNlLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgVmFsdWUqIHZh
bHVlID0gYmxvY2stPmF0KGkpOworICAgICAgICAgICAgaWYgKHZhbHVlICE9IGRlc2NyaXB0aW9u
LmV4dHJhICYmIHZhbHVlLT5vcGNvZGUoKSAhPSBOb3ApCisgICAgICAgICAgICAgICAgbV9pbnNl
cnRpb25TZXQuaW5zZXJ0VmFsdWUocHJlZGVjZXNzb3ItPnNpemUoKSAtIDEsIHZhbHVlKTsKKyAg
ICAgICAgfQorICAgICAgICBtX2luc2VydGlvblNldC5leGVjdXRlKHByZWRlY2Vzc29yKTsKKyAg
ICAgICAgYmxvY2stPnZhbHVlcygpLnJlc2l6ZSgwKTsKKyAgICAgICAgYmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gtPm9yaWdpbigpKTsKKyAg
ICAgICAgYmxvY2stPnJlbW92ZVByZWRlY2Vzc29yKHByZWRlY2Vzc29yKTsKKyAgICAgICAgCisg
ICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sgOiBkZXNjcmlwdGlvbi5ibG9j
ay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBzdWNjZXNzb3JCbG9jay0+cmVwbGFj
ZVByZWRlY2Vzc29yKGJsb2NrLCBwcmVkZWNlc3Nvcik7CisKKyAgICAgICAgYmxvY2stPmNsZWFy
U3VjY2Vzc29ycygpOworICAgICAgICAKKyAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVl
ID0gcHJlZGVjZXNzb3ItPnJlcGxhY2VMYXN0V2l0aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAg
ICAgICBtX3Byb2MsIHByZWRlY2Vzc29yLT5sYXN0KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5z
b3VyY2UpOworICAgICAgICBwcmVkZWNlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CisgICAgICAg
IHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaCk7Cisg
ICAgICAgIAorICAgICAgICBWZWN0b3I8aW50NjRfdD4gcHJlZGVjZXNzb3JDYXNlczsKKyAgICAg
ICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNh
c2VzKSB7CisgICAgICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShzd2l0Y2hDYXNlKTsK
KyAgICAgICAgICAgIHByZWRlY2Vzc29yQ2FzZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVl
KCkpOworICAgICAgICB9CisgICAgICAgIHN0ZDo6c29ydChwcmVkZWNlc3NvckNhc2VzLmJlZ2lu
KCksIHByZWRlY2Vzc29yQ2FzZXMuZW5kKCkpOworICAgICAgICBhdXRvIGlzUHJlZGVjZXNzb3JD
YXNlID0gWyZdIChpbnQ2NF90IHZhbHVlKSAtPiBib29sIHsKKyAgICAgICAgICAgIHJldHVybiAh
IXRyeUJpbmFyeVNlYXJjaDxpbnQ2NF90PigKKyAgICAgICAgICAgICAgICBwcmVkZWNlc3NvckNh
c2VzLCBwcmVkZWNlc3NvckNhc2VzLnNpemUoKSwgdmFsdWUsCisgICAgICAgICAgICAgICAgW10g
KGludDY0X3QqIGVsZW1lbnQpIC0+IGludDY0X3QgeyByZXR1cm4gKmVsZW1lbnQ7IH0pOworICAg
ICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBk
ZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgaWYgKCFpc1ByZWRlY2Vzc29yQ2FzZShz
d2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBw
ZW5kQ2FzZShzd2l0Y2hDYXNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBzdHJ1Y3QgU3dpdGNoRGVzY3JpcHRpb24geworICAgICAgICBTd2l0Y2hEZXNj
cmlwdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZXhwbGlj
aXQgb3BlcmF0b3IgYm9vbCgpIHsgcmV0dXJuICEhYmxvY2s7IH0KKyAgICAgICAgCisgICAgICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoCisgICAgICAgICAgICAgICAgIntibG9jayA9ICIsIHBvaW50ZXJEdW1wKGJs
b2NrKSwKKyAgICAgICAgICAgICAgICAiLCBicmFuY2ggPSAiLCBwb2ludGVyRHVtcChicmFuY2gp
LAorICAgICAgICAgICAgICAgICIsIGV4dHJhID0gIiwgcG9pbnRlckR1bXAoZXh0cmEpLAorICAg
ICAgICAgICAgICAgICIsIHNvdXJjZSA9ICIsIHBvaW50ZXJEdW1wKHNvdXJjZSksCisgICAgICAg
ICAgICAgICAgIiwgY2FzZXMgPSAiLCBsaXN0RHVtcChjYXNlcyksCisgICAgICAgICAgICAgICAg
IiwgZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCwgIn0iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIEJhc2ljQmxvY2sqIGJsb2NrIHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogYnJhbmNo
IHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogZXh0cmEgeyBudWxscHRyIH07IC8vIFRoaXMg
aXMgdGhlIEVxdWFsIG9yIE5vdEVxdWFsIHZhbHVlLCBpZiBhcHBsaWNhYmxlLgorICAgICAgICBW
YWx1ZSogc291cmNlIHsgbnVsbHB0ciB9OworICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZSwgMT4g
Y2FzZXM7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaDsKKyAgICB9OworICAg
IAorICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaWJlKEJhc2ljQmxvY2sqIGJsb2NrKQorICAg
IHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24gcmVzdWx0OworICAgICAgICByZXN1bHQuYmxv
Y2sgPSBibG9jazsKKyAgICAgICAgcmVzdWx0LmJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CisgICAg
ICAgIAorICAgICAgICBzd2l0Y2ggKHJlc3VsdC5icmFuY2gtPm9wY29kZSgpKSB7CisgICAgICAg
IGNhc2UgQnJhbmNoOiB7CisgICAgICAgICAgICBWYWx1ZSogcHJlZGljYXRlID0gcmVzdWx0LmJy
YW5jaC0+Y2hpbGQoMCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgdGFrZW4gPSByZXN1
bHQuYmxvY2stPnRha2VuKCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgbm90VGFrZW4g
PSByZXN1bHQuYmxvY2stPm5vdFRha2VuKCk7CisgICAgICAgICAgICBib29sIGhhbmRsZWQgPSBm
YWxzZTsKKyAgICAgICAgICAgIGlmIChwcmVkaWNhdGUtPm51bUNoaWxkcmVuKCkgPT0gMgorICAg
ICAgICAgICAgICAgICYmIHByZWRpY2F0ZS0+Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAg
ICAgICAgJiYgbV91c2VDb3VudHMubnVtVXNlcyhwcmVkaWNhdGUpID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHByZWRpY2F0ZS0+b3Bjb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIEVxdWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRl
LT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGljYXRl
OworICAgICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UocHJl
ZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwgdGFrZW4pKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LmZhbGxUaHJvdWdoID0gbm90VGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhhbmRs
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlIE5vdEVxdWFsOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGlj
YXRlLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmV4dHJhID0gcHJlZGlj
YXRlOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2Uo
cHJlZGljYXRlLT5jaGlsZCgxKS0+YXNJbnQoKSwgbm90VGFrZW4pKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0gdGFrZW47CisgICAgICAgICAgICAgICAgICAgIGhh
bmRsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFuZGxlZCkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIHJlc3VsdC5zb3VyY2UgPSBwcmVkaWNhdGU7CisgICAgICAg
ICAgICByZXN1bHQuY2FzZXMuYXBwZW5kKFN3aXRjaENhc2UoMCwgbm90VGFrZW4pKTsKKyAgICAg
ICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFN3aXRjaDogeworICAgICAgICAg
ICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcmVzdWx0LmJyYW5jaC0+YXM8U3dpdGNoVmFs
dWU+KCk7CisgICAgICAgICAgICByZXN1bHQuc291cmNlID0gc3dpdGNoVmFsdWUtPmNoaWxkKDAp
OworICAgICAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1ZS0+
Y2FzZXMocmVzdWx0LmJsb2NrKSkKKyAgICAgICAgICAgICAgICByZXN1bHQuY2FzZXMuYXBwZW5k
KHN3aXRjaENhc2UpOworICAgICAgICAgICAgcmVzdWx0LmZhbGxUaHJvdWdoID0gcmVzdWx0LmJs
b2NrLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzdWx0LmJsb2NrID0gbnVs
bHB0cjsKKyAgICAgICAgICAgIHJlc3VsdC5icmFuY2ggPSBudWxscHRyOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fQorICAgIAorICAgIFByb2NlZHVyZSYgbV9wcm9jOworICAgIEluc2VydGlvblNldCBtX2luc2Vy
dGlvblNldDsKKyAgICBVc2VDb3VudHMgbV91c2VDb3VudHM7Cit9OworCit9IC8vIGFub255bW91
cyBuYW1lc3BhY2UKKworYm9vbCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYgcHJvYykKK3sKKyAg
ICBQaGFzZVNjb3BlIHBoYXNlU2NvcGUocHJvYywgImluZmVyU3dpdGNoZXMiKTsKKyAgICBJbmZl
clN3aXRjaGVzIGluZmVyU3dpdGNoZXMocHJvYyk7CisgICAgcmV0dXJuIGluZmVyU3dpdGNoZXMu
cnVuKCk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNo
ZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3
aXRjaGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzSW5mZXJTd2l0Y2hlc19o
CisjZGVmaW5lIEIzSW5mZXJTd2l0Y2hlc19oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUHJvY2VkdXJlOworCisvLyBGaXhw
b2ludHMgdG8gY29udmVydCBjaGFpbnMgb2YgYnJhbmNoZXMgaW50byBzd2l0Y2hlcy4KKworYm9v
bCBpbmZlclN3aXRjaGVzKFByb2NlZHVyZSYpOworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
KworI2VuZGlmIC8vIEVOQUJFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzSW5mZXJTd2l0Y2hlc19o
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAy
MDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIHB1YmxpYzoKICAgICAvLyB0cmFuc2Zvcm1hdGlv
bi4gSWYgeW91IGtub3cgdGhhdCB5b3UgbWF5IGhhdmUgY3JlYXRlZCBzb21lLCB5b3UgY2FuIGNh
bGwgdGhpcyBtZXRob2QgdG8KICAgICAvLyBkZWxldGUgdGhlbSwgbWFraW5nIHRoZSBwcm9jZWR1
cmUgdmFsaWQgYWdhaW4uCiAgICAgdm9pZCBkZWxldGVPcnBoYW5zKCk7Ci0KKyAgICAKICAgICBD
RkcmIGNmZygpIGNvbnN0IHsgcmV0dXJuICptX2NmZzsgfQogCiAgICAgRG9taW5hdG9ycyYgZG9t
aW5hdG9ycygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsNyArNDE3LDMwIEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICBkYXRhTG9nKCJCMyBhZnRlciBpdGVyYXRpb24gIyIs
IGluZGV4IC0gMSwgIiBvZiByZWR1Y2VTdHJlbmd0aDpcbiIpOwogICAgICAgICAgICAgICAgIGRh
dGFMb2cobV9wcm9jKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAg
c2ltcGxpZnlDRkcoKTsKIAorICAgICAgICAgICAgaWYgKG1fY2hhbmdlZENGRykgeworICAgICAg
ICAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAgICAgICAgICAgICAgIG1f
cHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2UgZGVmaW5pdGVseSB3YW50IHRvIGRv
IERDRSBiZWZvcmUgd2UgZG8gQ1NFIHNvIHRoYXQgd2UgZG9uJ3QgaG9pc3QgdGhpbmdzLiBGb3IK
KyAgICAgICAgICAgIC8vIGV4YW1wbGU6CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8g
QGRlYWQgPSBNdWwoQGEsIEBiKQorICAgICAgICAgICAgLy8gLi4uIGxvdHMgb2YgY29udHJvbCBm
bG93IGFuZCBzdHVmZgorICAgICAgICAgICAgLy8gQHRoaW5nID0gTXVsKEBhLCBAYikKKyAgICAg
ICAgICAgIC8vCisgICAgICAgICAgICAvLyBJZiB3ZSBkbyBDU0UgYmVmb3JlIERDRSwgd2Ugd2ls
bCByZW1vdmUgQHRoaW5nIGFuZCBrZWVwIEBkZWFkLiBFZmZlY3RpdmVseSwgd2Ugd2lsbAorICAg
ICAgICAgICAgLy8gImhvaXN0IiBAdGhpbmcuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB3ZSBydW4g
RENFIGJlZm9yZSBDU0UsIHdlIHdpbGwga2lsbCBAZGVhZCBhbmQKKyAgICAgICAgICAgIC8vIGtl
ZXAgQHRoaW5nLiBUaGF0J3MgYmV0dGVyLCBzaW5jZSB3ZSB1c3VhbGx5IHdhbnQgdGhpbmdzIHRv
IHN0YXkgd2hlcmV2ZXIgdGhlIGNsaWVudAorICAgICAgICAgICAgLy8gcHV0IHRoZW0uIFdlJ3Jl
IG5vdCBhY3R1YWxseSBzbWFydCBlbm91Z2ggdGhpbmdzIHRvIG1vdmUgdGhpbmdzIGFyb3VuZCBh
dCByYW5kb20uCisgICAgICAgICAgICBraWxsRGVhZENvZGUoKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgc2ltcGxpZnlTU0EoKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9wcm9j
LnJlc2V0VmFsdWVPd25lcnMoKTsKICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9ICZtX3Byb2Mu
ZG9taW5hdG9ycygpOyAvLyBSZWNvbXB1dGUgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgbV9w
dXJlQ1NFLmNsZWFyKCk7CkBAIC00NDAsMjMgKzQ2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgbV9pbnNlcnRpb25TZXQuZXhlY3V0ZShtX2Jsb2NrKTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgaWYgKG1fYmxvY2tJbnNlcnRpb25TZXQuZXhlY3V0ZSgpKSB7Ci0gICAgICAg
ICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7Ci0gICAgICAgICAgICAgICAgbV9w
cm9jLmludmFsaWRhdGVDRkcoKTsKLSAgICAgICAgICAgICAgICBtX2RvbWluYXRvcnMgPSAmbV9w
cm9jLmRvbWluYXRvcnMoKTsgLy8gUmVjb21wdXRlIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgICAg
ICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBzaW1wbGlmeUNGRygpOwotCi0gICAgICAgICAgICBpZiAobV9jaGFuZ2VkQ0ZH
KSB7CisgICAgICAgICAgICBpZiAobV9ibG9ja0luc2VydGlvblNldC5leGVjdXRlKCkgfCBtX2No
YW5nZWRDRkcpIHsKICAgICAgICAgICAgICAgICBtX3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsK
ICAgICAgICAgICAgICAgICBtX3Byb2MuaW52YWxpZGF0ZUNGRygpOworICAgICAgICAgICAgICAg
IG1fZG9taW5hdG9ycyA9IG51bGxwdHI7IC8vIERvbWluYXRvcnMgYXJlIG5vdCB2YWxpZCBhbnlt
b3JlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGVtIHlldC4KICAgICAgICAgICAgICAgICBtX2NoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBraWxsRGVhZENvZGUoKTsK
LSAgICAgICAgICAgIHNpbXBsaWZ5U1NBKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHJl
c3VsdCB8PSBtX2NoYW5nZWQ7CiAgICAgICAgIH0gd2hpbGUgKG1fY2hhbmdlZCk7CkBAIC0yMzMy
LDExICsyMzQ0LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmF0KHRh
cmdldEluZGV4KyspID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVlKTsKLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIC8vIEl0J3Mgbm90IGVudGlyZWx5IGNsZWFyIGlmIHRo
aXMgaXMgbmVlZGVkLiBJIHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIGhhdmUKLSAgICAgICAgICAg
ICAgICAgICAgLy8gdGhpcyBmb3JjZSBhIHJlcnVuIG9mIHRoZSBmaXhwb2ludCBmb3Igbm93LCBz
aW5jZSB0aGF0IHdpbGwgbWFrZSBpdCBlYXNpZXIKLSAgICAgICAgICAgICAgICAgICAgLy8gdG8g
ZG8gcGVlcGhvbGUgb3B0aW1pemF0aW9uczogcmVtb3ZpbmcgZGVhZCBjb2RlIHdpbGwgbWFrZSB0
aGUgcGVlcGhvbGUKLSAgICAgICAgICAgICAgICAgICAgLy8gZWFzaWVyIHRvIHNwb3QuCiAgICAg
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVXNlQ291bnRzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNVc2VDb3VudHMuY3Bw
CShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNVc2VDb3Vu
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDkgKzMyLDIzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogCitVc2VDb3VudHM6OlVzZUNvdW50cygpCit7Cit9CisKIFVzZUNvdW50
czo6VXNlQ291bnRzKFByb2NlZHVyZSYgcHJvY2VkdXJlKQotICAgIDogbV9jb3VudHMocHJvY2Vk
dXJlLnZhbHVlcygpLnNpemUoKSkKIHsKKyAgICByZWNvbXB1dGUocHJvY2VkdXJlKTsKK30KKwor
VXNlQ291bnRzOjp+VXNlQ291bnRzKCkKK3sKK30KKwordm9pZCBVc2VDb3VudHM6OnJlY29tcHV0
ZShQcm9jZWR1cmUmIHByb2NlZHVyZSkKK3sKKyAgICBtX2NvdW50cy5yZXNpemUocHJvY2VkdXJl
LnZhbHVlcygpLnNpemUoKSk7CisKICAgICBWZWN0b3I8VmFsdWUqLCA2ND4gY2hpbGRyZW47CiAg
ICAgZm9yIChWYWx1ZSogdmFsdWUgOiBwcm9jZWR1cmUudmFsdWVzKCkpIHsKICAgICAgICAgY2hp
bGRyZW4ucmVzaXplKDApOwpAQCAtNTQsMTAgKzY4LDYgQEAgVXNlQ291bnRzOjpVc2VDb3VudHMo
UHJvY2VkdXJlJiBwcm9jZWR1cgogICAgIH0KIH0KIAotVXNlQ291bnRzOjp+VXNlQ291bnRzKCkK
LXsKLX0KLQogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNf
SklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVXNlQ291bnRzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVXNlQ291bnRzLmgJKHJldmlzaW9u
IDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1VzZUNvdW50cy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw4ICszNywxMSBAQCBjbGFzcyBQcm9jZWR1cmU7CiAKIGNsYXNzIFVz
ZUNvdW50cyB7CiBwdWJsaWM6CisgICAgVXNlQ291bnRzKCk7CiAgICAgVXNlQ291bnRzKFByb2Nl
ZHVyZSYpOwogICAgIH5Vc2VDb3VudHMoKTsKKyAgICAKKyAgICB2b2lkIHJlY29tcHV0ZShQcm9j
ZWR1cmUmKTsKIAogICAgIHVuc2lnbmVkIG51bVVzZXMoVmFsdWUqIHZhbHVlKSBjb25zdCB7IHJl
dHVybiBtX2NvdW50c1t2YWx1ZV0ubnVtVXNlczsgfQogICAgIHVuc2lnbmVkIG51bVVzaW5nSW5z
dHJ1Y3Rpb25zKFZhbHVlKiB2YWx1ZSkgY29uc3QgeyByZXR1cm4gbV9jb3VudHNbdmFsdWVdLm51
bVVzaW5nSW5zdHJ1Y3Rpb25zOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5OSw2ICs2OTksMjEgQEAgdm9pZCBWYWx1ZTo6cGVy
Zm9ybVN1YnN0aXR1dGlvbigpCiAgICAgfQogfQogCitib29sIFZhbHVlOjppc0ZyZWUoKSBjb25z
dAoreworICAgIHN3aXRjaCAob3Bjb2RlKCkpIHsKKyAgICBjYXNlIENvbnN0MzI6CisgICAgY2Fz
ZSBDb25zdDY0OgorICAgIGNhc2UgQ29uc3REb3VibGU6CisgICAgY2FzZSBDb25zdEZsb2F0Ogor
ICAgIGNhc2UgSWRlbnRpdHk6CisgICAgY2FzZSBOb3A6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIHZvaWQgVmFs
dWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QKIHsKIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAzMzk0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDcg
KzE4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGFib3ZlRXF1YWxDb25zdGFu
dChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwogICAgIHZpcnR1YWwgVHJpU3RhdGUgYmVsb3dF
cXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7CiAgICAgdmlydHVhbCBUcmlT
dGF0ZSBlcXVhbE9yVW5vcmRlcmVkQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdDsK
LQorICAgIAogICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIGNvbXBhcmlzb24gdGhlbiB0aGlzIHJl
dHVybnMgdGhlIGludmVydGVkIGZvcm0gb2YgdGhhdCBjb21wYXJpc29uLCBpZgogICAgIC8vIHBv
c3NpYmxlLiBJdCBjYW4gYmUgaW1wb3NzaWJsZSBmb3IgZG91YmxlIGNvbXBhcmlzb25zLCB3aGVy
ZSBmb3IgZXhhbXBsZSBMZXNzVGhhbiBhbmQKICAgICAvLyBHcmVhdGVyRXF1YWwgYmVoYXZlIGRp
ZmZlcmVudGx5LiBJZiB0aGlzIHJldHVybnMgYSB2YWx1ZSwgaXQgaXMgYSBuZXcgdmFsdWUsIHdo
aWNoIG11c3QgYmUKQEAgLTI0NSw2ICsyNDUsMTEgQEAgcHVibGljOgogICAgIC8vIHJlcG9pbnQg
aXQgYXQgdGhlIElkZW50aXR5J3MgY2hpbGQuIEZvciBzaW1wbGljaXR5LCB0aGlzIHdpbGwgZm9s
bG93IGFyYml0cmFyaWx5IGxvbmcgY2hhaW5zCiAgICAgLy8gb2YgSWRlbnRpdHkncy4KICAgICB2
b2lkIHBlcmZvcm1TdWJzdGl0dXRpb24oKTsKKyAgICAKKyAgICAvLyBGcmVlIHZhbHVlcyBhcmUg
dGhvc2Ugd2hvc2UgcHJlc2VuY2UgaXMgZ3VhcmFudGVlZCBub3QgdG8gaHVydCBjb2RlLiBXZSBj
b25zaWRlciBjb25zdGFudHMsCisgICAgLy8gSWRlbnRpdGllcywgYW5kIE5vcHMgdG8gYmUgZnJl
ZS4gQ29uc3RhbnRzIGFyZSBmcmVlIGJlY2F1c2Ugd2UgaG9pc3QgdGhlbSB0byBhbiBvcHRpbWFs
IHBsYWNlLgorICAgIC8vIElkZW50aXRpZXMgYW5kIE5vcHMgYXJlIGZyZWUgYmVjYXVzZSB3ZSBy
ZW1vdmUgdGhlbS4KKyAgICBib29sIGlzRnJlZSgpIGNvbnN0OwogCiAgICAgLy8gV2FsayB0aGUg
YW5jZXN0b3JzIG9mIHRoaXMgdmFsdWUgKGkuZS4gdGhlIGdyYXBoIG9mIHRoaW5ncyBpdCB0cmFu
c2l0aXZlbHkgdXNlcykuIFRoaXMKICAgICAvLyBlaXRoZXIgd2Fsa3MgcGhpcyBvciBub3QsIGRl
cGVuZGluZyBvbiB3aGV0aGVyIFBoaUNoaWxkcmVuIGlzIG51bGwuIFlvdXIgY2FsbGJhY2sgZ2V0
cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzgwLDggKzIzODAsNyBAQCBwcml2YXRl
OgogICAgIHsKICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3Bl
cmFuZCgpOwogICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICBMVmFs
dWUgc3ltYm9sID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZh
bHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJp
dmF0ZU5hbWUpOworICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBsb3dTeW1ib2xVSUQo
bV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQ
dHIodWlkKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9
IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNDkzOSwxMCArNDkzOCw4IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVzZUtp
bmQoU3ltYm9sVXNlKSkgewotICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dTeW1ib2wobV9u
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmlnaHQgPSBsb3dTeW1ib2wobV9u
b2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgbGVmdFN0cmluZ0ltcGwgPSBtX291
dC5sb2FkUHRyKGxlZnQsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKLSAgICAgICAgICAg
IExWYWx1ZSByaWdodFN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHJpZ2h0LCBtX2hlYXBzLlN5
bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBMVmFsdWUgbGVmdFN0cmluZ0ltcGwgPSBs
b3dTeW1ib2xVSUQobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgcmlnaHRT
dHJpbmdJbXBsID0gbG93U3ltYm9sVUlEKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAg
c2V0Qm9vbGVhbihtX291dC5lcXVhbChsZWZ0U3RyaW5nSW1wbCwgcmlnaHRTdHJpbmdJbXBsKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTk3MzMsNiArOTczMCwxNiBAQCBw
cml2YXRlOgogICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CisgICAgCisgICAgTFZhbHVlIGxvd1N5bWJvbFVJRChFZGdl
IGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVj
dWxhdGlvbikKKyAgICB7CisgICAgICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGVkZ2UtPmR5bmFt
aWNDYXN0Q29uc3RhbnQ8U3ltYm9sKj4oKSkKKyAgICAgICAgICAgIHJldHVybiBtX291dC5jb25z
dEludFB0cihzeW1ib2wtPnByaXZhdGVOYW1lKCkudWlkKCkpOworICAgICAgICBMVmFsdWUgc3lt
Ym9sID0gbG93U3ltYm9sKGVkZ2UsIG1vZGUpOworICAgICAgICAvLyBGSVhNRTogV2UgY291bGQg
YXZvaWQgdGhpcyBsb2FkIGlmIHdlIGhhZCBoYXNoLWNvbnNlZCBTeW1ib2xzLgorICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4OTA4CisgICAgICAg
IHJldHVybiBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUp
OworICAgIH0KIAogICAgIExWYWx1ZSBsb3dOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgT3BlcmFu
ZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAg
IHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzM5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA3LTE5ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQjMgc2hvdWxkIGluZmVyIHN3aXRjaGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgdGVzdCBydW5zIDYwJSBmYXN0ZXIgd2l0aCB0aGlzIGNoYW5nZSBiZWNhdXNlIHdlIGluZmVy
IHRoZSBzd2l0Y2ggYW5kIHR1cm4gaXQgaW50byBhCisgICAgICAgIHRhYmxlIHN3aXRjaC4KKwor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGlyZWN0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBpbnB1dC5mb3JtRW5jdHlwZSAvIGZvcm1NZXRob2Qg
YW5kIGJ1dHRvbi5mb3JtRW5jdHlwZSAvIGZvcm1NZXRob2QgLyB0eXBlIHNob3VsZCB0cmVhdCBu
dWxsIGFzICJudWxsIgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtaW5k
aXJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Ymlnc3dpdGNoLWluZGlyZWN0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdAorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGlyZWN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2gtaW5kaXJlY3QuanMJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGly
ZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjc1IEBACit2YXIgdGhpbmcwID0gMDsK
K3ZhciB0aGluZzEgPSAxOwordmFyIHRoaW5nMiA9IDI7Cit2YXIgdGhpbmczID0gMzsKK3ZhciB0
aGluZzQgPSA0OwordmFyIHRoaW5nNSA9IDU7Cit2YXIgdGhpbmc2ID0gNjsKK3ZhciB0aGluZzcg
PSA3OwordmFyIHRoaW5nOCA9IDg7Cit2YXIgdGhpbmc5ID0gOTsKK3ZhciB0aGluZzEwID0gMTA7
Cit2YXIgdGhpbmcxMSA9IDExOwordmFyIHRoaW5nMTIgPSAxMjsKK3ZhciB0aGluZzEzID0gMTM7
Cit2YXIgdGhpbmcxNCA9IDE0OwordmFyIHRoaW5nMTUgPSAxNTsKK3ZhciB0aGluZzE2ID0gMTY7
Cit2YXIgdGhpbmcxNyA9IDE3OwordmFyIHRoaW5nMTggPSAxODsKK3ZhciB0aGluZzE5ID0gMTk7
Cit2YXIgdGhpbmcyMCA9IDIwOwordmFyIHRoaW5nMjEgPSAyMTsKK3ZhciB0aGluZzIyID0gMjI7
Cit2YXIgdGhpbmcyMyA9IDIzOwordmFyIHRoaW5nMjQgPSAyNDsKK3ZhciB0aGluZzI1ID0gMjU7
Cit2YXIgdGhpbmcyNiA9IDI2OwordmFyIHRoaW5nMjcgPSAyNzsKK3ZhciB0aGluZzI4ID0gMjg7
Cit2YXIgdGhpbmcyOSA9IDI5OwordmFyIHRoaW5nMzAgPSAzMDsKK3ZhciB0aGluZzMxID0gMzE7
Cit2YXIgdGhpbmczMiA9IDMyOwordmFyIHRoaW5nMzMgPSAzMzsKK3ZhciB0aGluZzM0ID0gMzQ7
Cit2YXIgdGhpbmczNSA9IDM1OwordmFyIHRoaW5nMzYgPSAzNjsKK3ZhciB0aGluZzM3ID0gMzc7
Cit2YXIgdGhpbmczOCA9IDM4OwordmFyIHRoaW5nMzkgPSAzOTsKK3ZhciB0aGluZzQwID0gNDA7
Cit2YXIgdGhpbmc0MSA9IDQxOwordmFyIHRoaW5nNDIgPSA0MjsKK3ZhciB0aGluZzQzID0gNDM7
Cit2YXIgdGhpbmc0NCA9IDQ0OwordmFyIHRoaW5nNDUgPSA0NTsKK3ZhciB0aGluZzQ2ID0gNDY7
Cit2YXIgdGhpbmc0NyA9IDQ3OwordmFyIHRoaW5nNDggPSA0ODsKK3ZhciB0aGluZzQ5ID0gNDk7
Cit2YXIgdGhpbmc1MCA9IDUwOwordmFyIHRoaW5nNTEgPSA1MTsKK3ZhciB0aGluZzUyID0gNTI7
Cit2YXIgdGhpbmc1MyA9IDUzOwordmFyIHRoaW5nNTQgPSA1NDsKK3ZhciB0aGluZzU1ID0gNTU7
Cit2YXIgdGhpbmc1NiA9IDU2OwordmFyIHRoaW5nNTcgPSA1NzsKK3ZhciB0aGluZzU4ID0gNTg7
Cit2YXIgdGhpbmc1OSA9IDU5OwordmFyIHRoaW5nNjAgPSA2MDsKK3ZhciB0aGluZzYxID0gNjE7
Cit2YXIgdGhpbmc2MiA9IDYyOworCitmdW5jdGlvbiBmb28obykgeworICAgIHZhciByZXN1bHQg
PSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciB2
YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIHRo
aW5nMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSB0aGluZzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgdGhpbmc1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaW5nNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzc6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHRoaW5nOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSB0aGluZzEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTE6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxMjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0
aGluZzEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIHRoaW5nMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxNToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE2OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRo
aW5nMTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgdGhpbmcxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE5OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhp
bmcyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSB0aGluZzIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjM6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyNDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlu
ZzI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIHRoaW5nMjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI4OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5n
Mjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgdGhpbmczMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzMxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzI6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcz
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSB0aGluZzM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5r
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczNjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzM3
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIHRoaW5nMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQwOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgdGhpbmc0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDQ6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0NToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB0aGluZzQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaW5nNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0ODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ5Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaW5nNTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgdGhpbmc1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzUyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTM6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgdGhpbmc1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSB0aGluZzU1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTY6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1NzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGluZzU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaW5nNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc2MDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzYxOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHRoaW5nNjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1
bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6
NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28o
byk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284037</attachid>
            <date>2016-07-19 13:18:46 -0700</date>
            <delta_ts>2016-07-21 02:43:06 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>65293</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDE2LTA3LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3dpdGNoaW5nIG9uIHN5bWJvbHMgc2hvdWxkIGJlIGZhc3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODg5MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBkb2VzIHR3byB0aGluZ3M6
IGZpeGVzIHNvbWUgZ29vZnMgaW4gb3VyIGxvd2VyaW5nIG9mIHN5bWJvbCBlcXVhbGl0eSBhbmQg
YWRkcyBhIG5ldyBwaGFzZQorICAgICAgICB0byBCMyB0byBpbmZlciBzd2l0Y2ggc3RhdGVtZW50
cyBmcm9tIGxpbmVhciBjaGFpbnMgb2YgYnJhbmNoZXMuCisgICAgICAgIAorICAgICAgICBUaGlz
IGNoYW5nZXMgaG93IHdlIGNvbXBpbGUgZXF1YWxpdHkgdG8gU3ltYm9scyB0byBjb25zdGFudC1m
b2xkIHRoZSBsb2FkIG9mIHRoZSBTeW1ib2wncyBVSUQuCisgICAgICAgIFRoaXMgaXMgbmVjZXNz
YXJ5IGZvciBtYWtpbmcgc3dpdGNoZXMgb24gU3ltYm9scyBpbmZlcnJhYmxlLiBUaGlzIGFsc28g
Z2l2ZXMgdXMgdGhlIGFiaWxpdHkgdG8KKyAgICAgICAgZWZmaWNpZW50bHkgY29tcGlsZSBzdHJp
Y3QgZXF1YWxpdHkgY29tcGFyaXNvbnMgb2YgU3ltYm9sVXNlIGFuZCBVbnR5cGVkVXNlLgorCisg
ICAgICAgIFRoaXMgYWRkcyBhIG5ldyBwaGFzZSB0byBCMywgd2hpY2ggZmluZHMgY2hhaW5zIG9m
IGJyYW5jaGVzIHRoYXQgdGVzdCBmb3IgKGluKWVxdWFsaXR5IG9uIHRoZQorICAgICAgICBzYW1l
IHZhbHVlIGFuZCBjb25zdGFudHMsIGFuZCB0dXJucyB0aGVtIGludG8gYSBTd2l0Y2guIFRoaXMg
Y2FuIHR1cm4gTyhuKSBjb2RlIGludG8KKyAgICAgICAgTyhsb2cgbikgY29kZSwgb3IgZXZlbiBP
KDEpIGNvZGUgaWYgdGhlIHN3aXRjaCBjYXNlcyBhcmUgZGVuc2UuCisgICAgICAgIAorICAgICAg
ICBUaGlzIGNhbiBtYWtlIGEgYmlnIGRpZmZlcmVuY2UgaW4gSlMuIFNheSB5b3Ugd3JpdGUgYSBz
d2l0Y2ggaW4gd2hpY2ggdGhlIGNhc2Ugc3RhdGVtZW50cyBhcmUKKyAgICAgICAgdmFyaWFibGUg
cmVzb2x1dGlvbnMuIFRoZSBieXRlY29kZSBnZW5lcmF0b3IgY2Fubm90IHVzZSBhIGJ5dGVjb2Rl
IHN3aXRjaCBpbiB0aGlzIGNhc2UsIHNpbmNlCisgICAgICAgIHdlJ3JlIHJlcXVpcmVkIHRvIGV2
YWx1YXRlIHRoZSByZXNvbHV0aW9ucyBpbiBvcmRlci4gQnV0IGluIERGRyBJUiwgd2Ugd2lsbCBv
ZnRlbiB0dXJuIHRob3NlCisgICAgICAgIHZhcmlhYmxlIHJlc29sdXRpb25zIGludG8gY29uc3Rh
bnRzLCBzaW5jZSB3ZSBkbyB0aGF0IGZvciBhbnkgaW1tdXRhYmxlIHNpbmdsZXRvbi4gVGhpcyBt
ZWFucworICAgICAgICB0aGF0IEIzIHdpbGwgc2VlIGEgY2hhaW4gb2YgQnJhbmNoZXM6IHRoZSBl
bHNlIGNhc2Ugb2Ygb25lIEJyYW5jaCB3aWxsIHBvaW50IHRvIGEgYmFzaWMgYmxvY2sKKyAgICAg
ICAgdGhhdCBkb2VzIG5vdGhpbmcgYnV0IEJyYW5jaCBvbiBlcXVhbGl0eSBvbiB0aGUgc2FtZSB2
YWx1ZSBhcyB0aGUgZmlyc3QgQnJhbmNoLgorCisgICAgICAgIFRoZSBpbmZlcmVuY2UgYWxnb3Jp
dGhtIGlzIHF1aXRlIHNpbXBsZS4gVGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrIGlzIHRoZSBhYmls
aXR5IHRvIHN1bW1hcml6ZQorICAgICAgICBhIGJsb2NrJ3Mgc3dpdGNoIGJlaGF2aW9yLiBGb3Ig
YSBibG9jayB0aGF0IGVuZHMgaW4gYSBzd2l0Y2gsIHRoaXMgaXMganVzdCB0aGUgY29sbGVjdGlv
biBvZgorICAgICAgICBzd2l0Y2ggY2FzZXMuIEZvciBhIGJsb2NrIHRoYXQgZW5kcyBpbiBhIGJy
YW5jaCwgd2UgcmVjb2duaXplIEJyYW5jaChFcXVhbCh2YWx1ZSwgY29uc3QpKSwKKyAgICAgICAg
QnJhbmNoKE5vdEVxdWFsKHZhbHVlLCBjb25zdCkpLCBhbmQgQnJhbmNoKHZhbHVlKS4gRWFjaCBv
ZiB0aGVzZSBhcmUgc3VtbWFyaXplZCBhcyBpZiB0aGV5CisgICAgICAgIHdlcmUgb25lLWNhc2Ug
c3dpdGNoZXMuIFdlIGluZmVyIGEgbmV3IHN3aXRjaCBpZiBib3RoIHNvbWUgYmxvY2sgYW5kIGl0
cyBzb2xlIHByZWRlY2Vzc29yCisgICAgICAgIGNhbiBiZSBkZXNjcmliZWQgYXMgc3dpdGNoZXMg
b24gdGhlIHNhbWUgdmFsdWUsIG5vdGhpbmcgc2hhZHkgaXMgZ29pbmcgb24gKGxpa2UgbG9vcHMp
LCBhbmQKKyAgICAgICAgdGhlIGJsb2NrIGluIHF1ZXN0aW9uIGRvZXMgbm8gd29yayBvdGhlciB0
aGFuIHRoaXMgc3dpdGNoLiBJbiB0aGF0IGNhc2UsIHRoZSBibG9jayBpcyBraWxsZWQKKyAgICAg
ICAgYW5kIGl0cyBjYXNlcyAod2hpY2ggd2UgZ2V0IGZyb20gdGhlIHN1bW1hcnkpIGFyZSBhZGRl
ZCB0byB0aGUgcHJlZGVjZXNzb3IncyBzd2l0Y2guIFRoaXMKKyAgICAgICAgYWxnb3JpdGhtIHJ1
bnMgdG8gZml4cG9pbnQuCisgICAgICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYjMvQjNHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpnZW5lcmF0ZVRvQWlyKToK
KyAgICAgICAgKiBiMy9CM0luZmVyU3dpdGNoZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6
QjM6OmluZmVyU3dpdGNoZXMpOgorICAgICAgICAqIGIzL0IzSW5mZXJTd2l0Y2hlcy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiMy9CM1Byb2NlZHVyZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2Vk
dXJlOjpjZmcpOgorICAgICAgICAqIGIzL0IzUmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnBlcmZvcm1TdWJzdGl0
dXRpb24pOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzRnJlZSk6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZTo6ZHVtcE1ldGEpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUNoZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6bG93U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6bG93U3ltYm9sVUlEKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6bG93Tm9uTnVsbE9iamVjdCk6CisKIDIwMTYtMDctMTggIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGJ1aWx0aW4gVHlwZUVycm9y
cyBjb25zaXN0ZW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIGIzL0IzRnJlcXVlbmN5Q2xhc3MuY3BwCiAgICAgYjMvQjNHZW5lcmF0ZS5jcHAKICAg
ICBiMy9CM0hlYXBSYW5nZS5jcHAKKyAgICBiMy9CM0luZmVyU3dpdGNoZXMuY3BwCiAgICAgYjMv
QjNJbnNlcnRpb25TZXQuY3BwCiAgICAgYjMvQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuY3BwCiAg
ICAgYjMvQjNMb3dlck1hY3Jvcy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk5OSw2ICsx
OTk5LDggQEAKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVCMUNF
MjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07CiAJCURDNjA1QjYwMUNFMjZF
QTcwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUMxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlE
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2
OUFBNjYxQ0Y3QTFGMjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlBQTY1MUNGN0ExRUYwMEM2MjcyRiAv
KiBNYXRjaFJlc3VsdC5jcHAgKi87IH07CisJCURDNjlCOTlDMUQxNUY5MTIwMDJFM0MwMCAvKiBC
M0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2OUI5OUExRDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAg
Ki87IH07CisJCURDNjlCOTlEMUQxNUY5MTQwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlCOTlCMUQx
NUY5MEYwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RF
OUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdS
ZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODEx
Q0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OwogCQlEQzlBMEMx
RjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1
MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9OwpAQCAtNDIzNCw2ICs0MjM2
LDggQEAKIAkJREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9
IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REM2MDVCNUMxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVyVUlELmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxl
clVJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdBMUVGMDBD
NjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5
Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzSW5mZXJTd2l0Y2hlcy5jcHA7IHBhdGggPSBiMy9C
M0luZmVyU3dpdGNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzY5Qjk5
QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJbmZlclN3aXRjaGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEIzSW5mZXJTd2l0Y2hlcy5oOyBwYXRoID0gYjMvQjNJbmZlclN3aXRj
aGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgxMUNERTlGOUUwMDRE
NEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VD
b2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ2Fz
ZUNvbGxlY3Rpb24uY3BwOyBwYXRoID0gYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzU1LDYgKzQ3NTksOCBAQAogCQkJCTBGRUM4NUMwMUJF
MTY3QTAwMDgwRkY3NCAvKiBCM0hlYXBSYW5nZS5oICovLAogCQkJCTBGRUM4NEQxMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0luZGV4TWFwLmggKi8sCiAJCQkJMEZFQzg0RDIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzSW5kZXhTZXQuaCAqLywKKwkJCQlEQzY5Qjk5QTFEMTVGOTBGMDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmNwcCAqLywKKwkJCQlEQzY5Qjk5QjFEMTVGOTBGMDAyRTNDMDAgLyogQjNJ
bmZlclN3aXRjaGVzLmggKi8sCiAJCQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5z
ZXJ0aW9uU2V0LmNwcCAqLywKIAkJCQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNl
cnRpb25TZXQuaCAqLywKIAkJCQkwRkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRp
b25TZXRJbmxpbmVzLmggKi8sCkBAIC03NTY2LDYgKzc1NzIsNyBAQAogCQkJCUE1RUE3MTA0MTlG
NkRFNzIwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1l
bnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGNjRFQUYzMUM0RUNEMDYwMDYyMUU5QiAv
KiBBaXJBcmdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwNTE5RjZERTc0MDA5
OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19jb25maWd1cmF0aW9uX2hlYWRlci5weSBpbiBIZWFkZXJz
ICovLAorCQkJCURDNjlCOTlEMUQxNUY5MTQwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1RUE3MTA2MTlGNkRFNzYwMDk4RjVFQyAvKiBnZW5lcmF0ZV9v
YmpjX2NvbmZpZ3VyYXRpb25faW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkw
RjdDMzlGRjFDOTBDNTVCMDA0ODAxNTEgLyogREZHT3BJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUVBNzEwNzE5RjZERTc4MDA5OEY1RUMgLyogZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBl
X2NvbnZlcnNpb25zX2hlYWRlci5weSBpbiBIZWFkZXJzICovLApAQCAtODczMyw2ICs4NzQwLDcg
QEAKIAkJCQkwRkVDODUwNTFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwOTFCREFDREFDMDA4MEZGNzQgLyogQjND
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM2OUI5OUMxRDE1RjkxMjAwMkUzQzAwIC8q
IEIzSW5mZXJTd2l0Y2hlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwQjFCREFDREFD
MDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4
NTBEMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MzZFNTQ1NDFDNDY4RTc3MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNHZW5l
cmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzR2VuZXJh
dGUuY3BwCShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNH
ZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJC
M0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJlc3Npb25zLmgiCiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIK
ICNpbmNsdWRlICJCM0ZvbGRQYXRoQ29uc3RhbnRzLmgiCisjaW5jbHVkZSAiQjNJbmZlclN3aXRj
aGVzLmgiCiAjaW5jbHVkZSAiQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuaCIKICNpbmNsdWRlICJC
M0xvd2VyTWFjcm9zLmgiCiAjaW5jbHVkZSAiQjNMb3dlck1hY3Jvc0FmdGVyT3B0aW1pemF0aW9u
cy5oIgpAQCAtODIsNiArODMsNyBAQCB2b2lkIGdlbmVyYXRlVG9BaXIoUHJvY2VkdXJlJiBwcm9j
ZWR1cmUsCiAgICAgICAgIHJlZHVjZURvdWJsZVRvRmxvYXQocHJvY2VkdXJlKTsKICAgICAgICAg
cmVkdWNlU3RyZW5ndGgocHJvY2VkdXJlKTsKICAgICAgICAgZWxpbWluYXRlQ29tbW9uU3ViZXhw
cmVzc2lvbnMocHJvY2VkdXJlKTsKKyAgICAgICAgaW5mZXJTd2l0Y2hlcyhwcm9jZWR1cmUpOwog
ICAgICAgICBkdXBsaWNhdGVUYWlscyhwcm9jZWR1cmUpOwogICAgICAgICBmaXhTU0EocHJvY2Vk
dXJlKTsKICAgICAgICAgZm9sZFBhdGhDb25zdGFudHMocHJvY2VkdXJlKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4TWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzSW5kZXhNYXAuaAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzSW5kZXhNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNJbmZlclN3aXRj
aGVzLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCisjaW5jbHVkZSAi
QjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCisjaW5j
bHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgor
I2luY2x1ZGUgIkIzVXNlQ291bnRzLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNp
bmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CisKK25hbWVzcGFjZSB7CisKK2NvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCitjbGFzcyBJ
bmZlclN3aXRjaGVzIHsKK3B1YmxpYzoKKyAgICBJbmZlclN3aXRjaGVzKFByb2NlZHVyZSYgcHJv
YykKKyAgICAgICAgOiBtX3Byb2MocHJvYykKKyAgICAgICAgLCBtX2luc2VydGlvblNldChwcm9j
KQorICAgICAgICAsIG1fdXNlQ291bnRzKHByb2MpCisgICAgeworICAgIH0KKyAgICAKKyAgICBi
b29sIHJ1bigpCisgICAgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIGRhdGFM
b2coIkIzIGJlZm9yZSBpbmZlclN3aXRjaGVzOlxuIiwgbV9wcm9jKTsKKyAgICAgICAgCisgICAg
ICAgIGJvb2wgY2hhbmdlZCA9IHRydWU7CisgICAgICAgIGJvb2wgZXZlckNoYW5nZWQgPSBmYWxz
ZTsKKyAgICAgICAgd2hpbGUgKGNoYW5nZWQpIHsKKyAgICAgICAgICAgIGNoYW5nZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAg
ICAgZGF0YUxvZygiUGVyZm9ybWluZyBmaXhwb2ludCBpdGVyYXRpb246XG4iKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykKKyAgICAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IGF0dGVtcHRUb01lcmdlV2l0aFByZWRlY2Vzc29yKGJsb2Nr
KTsKKworICAgICAgICAgICAgZXZlckNoYW5nZWQgfD0gY2hhbmdlZDsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKGV2ZXJDaGFuZ2VkKSB7CisgICAgICAgICAgICBtX3Byb2MucmVz
ZXRSZWFjaGFiaWxpdHkoKTsKKyAgICAgICAgICAgIG1fcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG1fcHJvYy5kZWxldGVPcnBoYW5zKCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2co
IkIzIGFmdGVyIGluZmVyU3dpdGNoZXM6XG4iLCBtX3Byb2MpOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgCitwcml2YXRlOgorICAgIGJvb2wgYXR0ZW1wdFRvTWVyZ2VXaXRoUHJlZGVjZXNzb3Io
QmFzaWNCbG9jayogYmxvY2spCisgICAgeworICAgICAgICAvLyBObyBwb2ludCBpbiBjb25zaWRl
cmluZyB0aGUgcm9vdCBibG9jay4gV2UgYWxzbyBkb24ndCBjb25zaWRlciBibG9ja3Mgd2l0aCBt
dWx0aXBsZQorICAgICAgICAvLyBwcmVkZWNlc3NvcnMsIGJ1dCB3ZSBjb3VsZCBoYW5kbGUgdGhp
cyBpZiB3ZSBtYWRlIHRoaXMgY29kZSBhIGJpdCBtb3JlIGdlbmVyYWwgYW5kIHdlIHdlcmUKKyAg
ICAgICAgLy8gbm90IGFmcmFpZCBvZiBjb2RlIGJsb2F0LgorICAgICAgICBpZiAoYmxvY2stPm51
bVByZWRlY2Vzc29ycygpICE9IDEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IAorICAgICAgICBTd2l0Y2hEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiA9IGRlc2NyaWJlKGJsb2Nr
KTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCJEZXNjcmlwdGlv
biBvZiBwcmltYXJ5IGJsb2NrICIsICpibG9jaywgIjogIiwgZGVzY3JpcHRpb24sICJcbiIpOwor
ICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlr
ZS5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAvLyBXZSBrbm93IHRoYXQgdGhpcyBibG9jayBiZWhhdmVzIGxpa2UgYSBzd2l0Y2gu
IEJ1dCB3ZSBuZWVkIHRvIHZlcmlmeSB0aGF0IGl0IGRvZXNuJ3QgYWxzbworICAgICAgICAvLyBw
ZXJmb3JtIGFueSBlZmZlY3RzIG9yIGRvIGV4cGVuc2l2ZSB0aGluZ3MuIFdlIGRvbid0IHdhbnQg
dG8gY3JlYXRlIGEgc3dpdGNoIGlmIHRoYXQgd2lsbAorICAgICAgICAvLyBtYWtlIGV4cGVuc2l2
ZSB0aGluZ3MgZXhlY3V0ZSB1bmNvbmRpdGlvbmFsbHkuIFdlJ3JlIHZlcnkgY29uc2VydmF0aXZl
IGFib3V0IGhvdyB3ZSBkZWZpbmUKKyAgICAgICAgLy8gImV4cGVuc2l2ZSIuCisgICAgICAgIGZv
ciAoVmFsdWUqIHZhbHVlIDogKmJsb2NrKSB7CisgICAgICAgICAgICBpZiAodmFsdWUtPmlzRnJl
ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09
IGRlc2NyaXB0aW9uLmV4dHJhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgaWYgKHZhbHVlID09IGRlc2NyaXB0aW9uLmJyYW5jaCkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2co
IiAgICBCYWlsaW5nIGJlY2F1c2Ugb2YgIiwgZGVlcER1bXAobV9wcm9jLCB2YWx1ZSksICJcbiIp
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA9IGJsb2NrLT5wcmVkZWNlc3NvcigwKTsKKyAgICAg
ICAgU3dpdGNoRGVzY3JpcHRpb24gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbiA9IGRlc2NyaWJlKHBy
ZWRlY2Vzc29yKTsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIg
ICAgRGVzY3JpcHRpb24gb2YgcHJlZGVjZXNzb3IgYmxvY2sgIiwgKnByZWRlY2Vzc29yLCAiOiAi
LCBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLCAiXG4iKTsKKyAgICAgICAgaWYgKCFwcmVkZWNlc3Nv
ckRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgQmFpbGluZyBiZWNhdXNlIG5vdCBzd2l0Y2gtbGlrZS5cbiIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBC
b3RoIHVzIGFuZCB0aGUgcHJlZGVjZXNzb3IgYXJlIHN3aXRjaC1saWtlLCBidXQgdGhhdCBkb2Vz
bid0IG1lYW4gdGhhdCB3ZSdyZSBjb21wYXRpYmxlLgorICAgICAgICAvLyBXZSBtYXkgYmUgc3dp
dGNoaW5nIG9uIGRpZmZlcmVudCB2YWx1ZXMhCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5zb3Vy
Y2UgIT0gcHJlZGVjZXNzb3JEZXNjcmlwdGlvbi5zb3VyY2UpIHsKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWlsaW5nIGJlY2F1c2Ugc291
cmNlcyBkb24ndCBtYXRjaC5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB3ZSBhcmUgdGhlIGZhbGwt
dGhyb3VnaCBkZXN0aW5hdGlvbiBvZiB0aGUgcHJlZGVjZXNzb3IuIFRoaXMgaXMgYSBiaXQgb2Yg
YQorICAgICAgICAvLyBnb29meSBjb25kaXRpb24uIElmIHdlIHdlcmUgbm90IHRoZSBmYWxsLXRo
cm91Z2ggZGVzdGluYXRpb24gdGhlbiBvdXIgc3dpdGNoIGlzIHByb2JhYmx5CisgICAgICAgIC8v
IGp1c3QgdG90YWxseSByZWR1bmRhbnQgYW5kIHdlIHNob3VsZCBiZSBnZXR0aW5nIHJpZCBvZiBp
dC4gQnV0IHdlIGRvbid0IGhhbmRsZSB0aGF0IGhlcmUsCisgICAgICAgIC8vIHlldC4KKyAgICAg
ICAgaWYgKHByZWRlY2Vzc29yRGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSAhPSBibG9j
aykgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygi
ICAgIEJhaWxpbmcgYmVjYXVzZSBmYWxsLXRocm91Z2ggb2YgcHJlZGVjZXNzb3IgaXMgbm90IHRo
ZSBwcmltYXJ5IGJsb2NrLlxuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZXJlIGFpbid0IG5vIGxv
b3BzLgorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBibG9j
aworICAgICAgICAgICAgfHwgZGVzY3JpcHRpb24uZmFsbFRocm91Z2guYmxvY2soKSA9PSBwcmVk
ZWNlc3NvcikgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZGF0
YUxvZygiICAgIEJhaWxpbmcgYmVjYXVzZSBvZiBmYWxsLXRocm91Z2ggbG9vcC5cbiIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAoU3dpdGNoQ2Fz
ZSBzd2l0Y2hDYXNlIDogZGVzY3JpcHRpb24uY2FzZXMpIHsKKyAgICAgICAgICAgIGlmIChzd2l0
Y2hDYXNlLnRhcmdldEJsb2NrKCkgPT0gYmxvY2sKKyAgICAgICAgICAgICAgICB8fCBzd2l0Y2hD
YXNlLnRhcmdldEJsb2NrKCkgPT0gcHJlZGVjZXNzb3IpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEJhaWxpbmcgYmVjYXVz
ZSBvZiBsb29wIGluIHByaW1hcnkgY2FzZXMuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChTd2l0Y2hDYXNl
IHN3aXRjaENhc2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNhc2VzKSB7CisgICAgICAgICAg
ICBpZiAoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IGJsb2NrCisgICAgICAgICAgICAgICAg
fHwgc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpID09IHByZWRlY2Vzc29yKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBCYWls
aW5nIGJlY2F1c2Ugb2YgbG9vcCBpbiBwcmVkZWNlc3NvciBjYXNlcy5cbiIpOworICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRG9pbmcgaXQh
XG4iKTsKKyAgICAgICAgLy8gV2UncmUgY29tbWl0dGVkIHRvIGRvaW5nIHRoZSB0aGluZy4KKyAg
ICAgICAgCisgICAgICAgIC8vIERlbGV0ZSB0aGUgZXh0cmEgdmFsdWUgZnJvbSB0aGUgcHJlZGVj
ZXNzb3IsIHNpbmNlIHRoYXQgd291bGQgYnJlYWsgZG93bnN0cmVhbSBpbmZlcmVuY2UKKyAgICAg
ICAgLy8gb24gdGhlIG5leHQgZml4cG9pbnQgaXRlcmF0aW9uLiBXZSB3b3VsZCB0aGluayB0aGF0
IHRoaXMgYmxvY2sgaXMgdG9vIGV4cGVuc2l2ZSB0byBtZXJnZQorICAgICAgICAvLyBiZWNhdXNl
IG9mIHRoZSBFcXVhbCBvciBOb3RFcXVhbCB2YWx1ZSBldmVuIHRob3VnaCB0aGF0IHZhbHVlIGlz
IGRlYWQhIFdlIGtub3cgaXQncyBkZWFkCisgICAgICAgIC8vIHNvIHdlIGtpbGwgaXQgb3Vyc2Vs
dmVzLgorICAgICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICpwcmVkZWNlc3NvcikgeworICAgICAg
ICAgICAgaWYgKHZhbHVlID09IHByZWRlY2Vzc29yRGVzY3JpcHRpb24uZXh0cmEpCisgICAgICAg
ICAgICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoTm9wSWdub3JpbmdUeXBlKCk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIC8vIEluc2VydCBhbGwgbm9uLXRlcm1pbmFsIHZhbHVlcyBmcm9t
IG91ciBibG9jayBpbnRvIG91ciBwcmVkZWNlc3Nvci4gV2UgZGVmaW5pdGVseSBuZWVkIHRvCisg
ICAgICAgIC8vIGRvIHRoaXMgZm9yIGNvbnN0YW50cy4gV2UgbXVzdCBub3QgZG8gaXQgZm9yIHRo
ZSBleHRyYSB2YWx1ZSwgc2luY2UgdGhhdCB3b3VsZCBicmVhaworICAgICAgICAvLyBkb3duc3Ry
ZWFtIGluZmVyZW5jZSBvbiB0aGUgbmV4dCBmaXhwb2ludCBpdGVyYXRpb24uIEFzIGEgYm9udXMs
IHdlIGRvbid0IGRvIGl0IGZvciBub3BzLAorICAgICAgICAvLyBzbyB0aGF0IHdlIGxpbWl0IGhv
dyBiaWcgYmxvY2tzIGdldCBpbiB0aGlzIHBoYXNlLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgVmFsdWUqIHZh
bHVlID0gYmxvY2stPmF0KGkpOworICAgICAgICAgICAgaWYgKHZhbHVlICE9IGRlc2NyaXB0aW9u
LmV4dHJhICYmIHZhbHVlLT5vcGNvZGUoKSAhPSBOb3ApCisgICAgICAgICAgICAgICAgbV9pbnNl
cnRpb25TZXQuaW5zZXJ0VmFsdWUocHJlZGVjZXNzb3ItPnNpemUoKSAtIDEsIHZhbHVlKTsKKyAg
ICAgICAgfQorICAgICAgICBtX2luc2VydGlvblNldC5leGVjdXRlKHByZWRlY2Vzc29yKTsKKyAg
ICAgICAgYmxvY2stPnZhbHVlcygpLnJlc2l6ZSgwKTsKKyAgICAgICAgYmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBkZXNjcmlwdGlvbi5icmFuY2gtPm9yaWdpbigpKTsKKyAg
ICAgICAgYmxvY2stPnJlbW92ZVByZWRlY2Vzc29yKHByZWRlY2Vzc29yKTsKKyAgICAgICAgCisg
ICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sgOiBkZXNjcmlwdGlvbi5ibG9j
ay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBzdWNjZXNzb3JCbG9jay0+cmVwbGFj
ZVByZWRlY2Vzc29yKGJsb2NrLCBwcmVkZWNlc3Nvcik7CisKKyAgICAgICAgYmxvY2stPmNsZWFy
U3VjY2Vzc29ycygpOworICAgICAgICAKKyAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVl
ID0gcHJlZGVjZXNzb3ItPnJlcGxhY2VMYXN0V2l0aE5ldzxTd2l0Y2hWYWx1ZT4oCisgICAgICAg
ICAgICBtX3Byb2MsIHByZWRlY2Vzc29yLT5sYXN0KCktPm9yaWdpbigpLCBkZXNjcmlwdGlvbi5z
b3VyY2UpOworICAgICAgICBwcmVkZWNlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CisgICAgICAg
IHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChkZXNjcmlwdGlvbi5mYWxsVGhyb3VnaCk7Cisg
ICAgICAgIAorICAgICAgICBWZWN0b3I8aW50NjRfdD4gcHJlZGVjZXNzb3JDYXNlczsKKyAgICAg
ICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBwcmVkZWNlc3NvckRlc2NyaXB0aW9uLmNh
c2VzKSB7CisgICAgICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShzd2l0Y2hDYXNlKTsK
KyAgICAgICAgICAgIHByZWRlY2Vzc29yQ2FzZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVl
KCkpOworICAgICAgICB9CisgICAgICAgIHN0ZDo6c29ydChwcmVkZWNlc3NvckNhc2VzLmJlZ2lu
KCksIHByZWRlY2Vzc29yQ2FzZXMuZW5kKCkpOworICAgICAgICBhdXRvIGlzUHJlZGVjZXNzb3JD
YXNlID0gWyZdIChpbnQ2NF90IHZhbHVlKSAtPiBib29sIHsKKyAgICAgICAgICAgIHJldHVybiAh
IXRyeUJpbmFyeVNlYXJjaDxpbnQ2NF90PigKKyAgICAgICAgICAgICAgICBwcmVkZWNlc3NvckNh
c2VzLCBwcmVkZWNlc3NvckNhc2VzLnNpemUoKSwgdmFsdWUsCisgICAgICAgICAgICAgICAgW10g
KGludDY0X3QqIGVsZW1lbnQpIC0+IGludDY0X3QgeyByZXR1cm4gKmVsZW1lbnQ7IH0pOworICAg
ICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiBk
ZXNjcmlwdGlvbi5jYXNlcykgeworICAgICAgICAgICAgaWYgKCFpc1ByZWRlY2Vzc29yQ2FzZShz
d2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBw
ZW5kQ2FzZShzd2l0Y2hDYXNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBzdHJ1Y3QgU3dpdGNoRGVzY3JpcHRpb24geworICAgICAgICBTd2l0Y2hEZXNj
cmlwdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZXhwbGlj
aXQgb3BlcmF0b3IgYm9vbCgpIHsgcmV0dXJuICEhYmxvY2s7IH0KKyAgICAgICAgCisgICAgICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBvdXQucHJpbnQoCisgICAgICAgICAgICAgICAgIntibG9jayA9ICIsIHBvaW50ZXJEdW1wKGJs
b2NrKSwKKyAgICAgICAgICAgICAgICAiLCBicmFuY2ggPSAiLCBwb2ludGVyRHVtcChicmFuY2gp
LAorICAgICAgICAgICAgICAgICIsIGV4dHJhID0gIiwgcG9pbnRlckR1bXAoZXh0cmEpLAorICAg
ICAgICAgICAgICAgICIsIHNvdXJjZSA9ICIsIHBvaW50ZXJEdW1wKHNvdXJjZSksCisgICAgICAg
ICAgICAgICAgIiwgY2FzZXMgPSAiLCBsaXN0RHVtcChjYXNlcyksCisgICAgICAgICAgICAgICAg
IiwgZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCwgIn0iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIEJhc2ljQmxvY2sqIGJsb2NrIHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogYnJhbmNo
IHsgbnVsbHB0ciB9OworICAgICAgICBWYWx1ZSogZXh0cmEgeyBudWxscHRyIH07IC8vIFRoaXMg
aXMgdGhlIEVxdWFsIG9yIE5vdEVxdWFsIHZhbHVlLCBpZiBhcHBsaWNhYmxlLgorICAgICAgICBW
YWx1ZSogc291cmNlIHsgbnVsbHB0ciB9OworICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZSwgMT4g
Y2FzZXM7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaDsKKyAgICB9OworICAg
IAorICAgIFN3aXRjaERlc2NyaXB0aW9uIGRlc2NyaWJlKEJhc2ljQmxvY2sqIGJsb2NrKQorICAg
IHsKKyAgICAgICAgU3dpdGNoRGVzY3JpcHRpb24gcmVzdWx0OworICAgICAgICByZXN1bHQuYmxv
Y2sgPSBibG9jazsKKyAgICAgICAgcmVzdWx0LmJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CisgICAg
ICAgIAorICAgICAgICBzd2l0Y2ggKHJlc3VsdC5icmFuY2gtPm9wY29kZSgpKSB7CisgICAgICAg
IGNhc2UgQnJhbmNoOiB7CisgICAgICAgICAgICBWYWx1ZSogcHJlZGljYXRlID0gcmVzdWx0LmJy
YW5jaC0+Y2hpbGQoMCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgdGFrZW4gPSByZXN1
bHQuYmxvY2stPnRha2VuKCk7CisgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgbm90VGFrZW4g
PSByZXN1bHQuYmxvY2stPm5vdFRha2VuKCk7CisgICAgICAgICAgICBib29sIGhhbmRsZWQgPSBm
YWxzZTsKKyAgICAgICAgICAgIC8vIE5PVEU6IFRoaXMgdXNlcyBVc2VDb3VudHMgdGhhdCB3ZSBj
b21wdXRlZCBiZWZvcmUgYW55IHRyYW5zZm9ybWF0aW9uLiBUaGlzIGlzIGZpbmUKKyAgICAgICAg
ICAgIC8vIGJlY2F1c2UgYWx0aG91Z2ggd2UgbWF5IGhhdmUgbXV0YXRlZCB0aGUgSVIsIHdlIHdv
dWxkIG5vdCBoYXZlIGFkZGVkIGFueSBuZXcKKyAgICAgICAgICAgIC8vIHByZWRpY2F0ZXMuCisg
ICAgICAgICAgICBpZiAocHJlZGljYXRlLT5udW1DaGlsZHJlbigpID09IDIKKyAgICAgICAgICAg
ICAgICAmJiBwcmVkaWNhdGUtPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYm
IG1fdXNlQ291bnRzLm51bVVzZXMocHJlZGljYXRlKSA9PSAxKSB7CisgICAgICAgICAgICAgICAg
c3dpdGNoIChwcmVkaWNhdGUtPm9wY29kZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBFcXVh
bDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hpbGQo
MCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0ZS0+
Y2hpbGQoMSktPmFzSW50KCksIHRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5m
YWxsVGhyb3VnaCA9IG5vdFRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBOb3RF
cXVhbDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHByZWRpY2F0ZS0+Y2hp
bGQoMCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5leHRyYSA9IHByZWRpY2F0ZTsKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKHByZWRpY2F0
ZS0+Y2hpbGQoMSktPmFzSW50KCksIG5vdFRha2VuKSk7CisgICAgICAgICAgICAgICAgICAgIHJl
c3VsdC5mYWxsVGhyb3VnaCA9IHRha2VuOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGhhbmRsZWQpCisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICByZXN1bHQuc291cmNlID0gcHJlZGljYXRlOworICAgICAgICAgICAgcmVz
dWx0LmNhc2VzLmFwcGVuZChTd2l0Y2hDYXNlKDAsIG5vdFRha2VuKSk7CisgICAgICAgICAgICBy
ZXN1bHQuZmFsbFRocm91Z2ggPSB0YWtlbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBTd2l0Y2g6IHsKKyAgICAgICAgICAgIFN3aXRj
aFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJlc3VsdC5icmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpOwor
ICAgICAgICAgICAgcmVzdWx0LnNvdXJjZSA9IHN3aXRjaFZhbHVlLT5jaGlsZCgwKTsKKyAgICAg
ICAgICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogc3dpdGNoVmFsdWUtPmNhc2VzKHJl
c3VsdC5ibG9jaykpCisgICAgICAgICAgICAgICAgcmVzdWx0LmNhc2VzLmFwcGVuZChzd2l0Y2hD
YXNlKTsKKyAgICAgICAgICAgIHJlc3VsdC5mYWxsVGhyb3VnaCA9IHJlc3VsdC5ibG9jay0+ZmFs
bFRocm91Z2goKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdC5ibG9jayA9IG51bGxwdHI7Cisg
ICAgICAgICAgICByZXN1bHQuYnJhbmNoID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICBQcm9jZWR1cmUmIG1fcHJvYzsKKyAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7
CisgICAgVXNlQ291bnRzIG1fdXNlQ291bnRzOworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNw
YWNlCisKK2Jvb2wgaW5mZXJTd2l0Y2hlcyhQcm9jZWR1cmUmIHByb2MpCit7CisgICAgUGhhc2VT
Y29wZSBwaGFzZVNjb3BlKHByb2MsICJpbmZlclN3aXRjaGVzIik7CisgICAgSW5mZXJTd2l0Y2hl
cyBpbmZlclN3aXRjaGVzKHByb2MpOworICAgIHJldHVybiBpbmZlclN3aXRjaGVzLnJ1bigpOwor
fQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQp
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZmVyU3dpdGNoZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmZlclN3aXRjaGVzLmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzSW5mZXJTd2l0Y2hlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0luZmVyU3dpdGNoZXNfaAorI2RlZmlu
ZSBCM0luZmVyU3dpdGNoZXNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFByb2NlZHVyZTsKKworLy8gRml4cG9pbnRzIHRv
IGNvbnZlcnQgY2hhaW5zIG9mIGJyYW5jaGVzIGludG8gc3dpdGNoZXMuCisKK2Jvb2wgaW5mZXJT
d2l0Y2hlcyhQcm9jZWR1cmUmKTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRp
ZiAvLyBFTkFCRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0luZmVyU3dpdGNoZXNfaAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAzMzk0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gdHJhbnNmb3JtYXRpb24uIElmIHlv
dSBrbm93IHRoYXQgeW91IG1heSBoYXZlIGNyZWF0ZWQgc29tZSwgeW91IGNhbiBjYWxsIHRoaXMg
bWV0aG9kIHRvCiAgICAgLy8gZGVsZXRlIHRoZW0sIG1ha2luZyB0aGUgcHJvY2VkdXJlIHZhbGlk
IGFnYWluLgogICAgIHZvaWQgZGVsZXRlT3JwaGFucygpOwotCisgICAgCiAgICAgQ0ZHJiBjZmco
KSBjb25zdCB7IHJldHVybiAqbV9jZmc7IH0KIAogICAgIERvbWluYXRvcnMmIGRvbWluYXRvcnMo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5j
cHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVj
ZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE3LDcgKzQxNywzMCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgaXRlcmF0aW9uICMiLCBpbmRleCAt
IDEsICIgb2YgcmVkdWNlU3RyZW5ndGg6XG4iKTsKICAgICAgICAgICAgICAgICBkYXRhTG9nKG1f
cHJvYyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsaWZ5
Q0ZHKCk7CiAKKyAgICAgICAgICAgIGlmIChtX2NoYW5nZWRDRkcpIHsKKyAgICAgICAgICAgICAg
ICBtX3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKKyAgICAgICAgICAgICAgICBtX3Byb2MuaW52
YWxpZGF0ZUNGRygpOworICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC8vIFdlIGRlZmluaXRlbHkgd2FudCB0byBkbyBEQ0UgYmVm
b3JlIHdlIGRvIENTRSBzbyB0aGF0IHdlIGRvbid0IGhvaXN0IHRoaW5ncy4gRm9yCisgICAgICAg
ICAgICAvLyBleGFtcGxlOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEBkZWFkID0g
TXVsKEBhLCBAYikKKyAgICAgICAgICAgIC8vIC4uLiBsb3RzIG9mIGNvbnRyb2wgZmxvdyBhbmQg
c3R1ZmYKKyAgICAgICAgICAgIC8vIEB0aGluZyA9IE11bChAYSwgQGIpCisgICAgICAgICAgICAv
LworICAgICAgICAgICAgLy8gSWYgd2UgZG8gQ1NFIGJlZm9yZSBEQ0UsIHdlIHdpbGwgcmVtb3Zl
IEB0aGluZyBhbmQga2VlcCBAZGVhZC4gRWZmZWN0aXZlbHksIHdlIHdpbGwKKyAgICAgICAgICAg
IC8vICJob2lzdCIgQHRoaW5nLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgd2UgcnVuIERDRSBiZWZv
cmUgQ1NFLCB3ZSB3aWxsIGtpbGwgQGRlYWQgYW5kCisgICAgICAgICAgICAvLyBrZWVwIEB0aGlu
Zy4gVGhhdCdzIGJldHRlciwgc2luY2Ugd2UgdXN1YWxseSB3YW50IHRoaW5ncyB0byBzdGF5IHdo
ZXJldmVyIHRoZSBjbGllbnQKKyAgICAgICAgICAgIC8vIHB1dCB0aGVtLiBXZSdyZSBub3QgYWN0
dWFsbHkgc21hcnQgZW5vdWdoIHRvIG1vdmUgdGhpbmdzIGFyb3VuZCBhdCByYW5kb20uCisgICAg
ICAgICAgICBraWxsRGVhZENvZGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxp
ZnlTU0EoKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9wcm9jLnJlc2V0VmFsdWVPd25l
cnMoKTsKICAgICAgICAgICAgIG1fZG9taW5hdG9ycyA9ICZtX3Byb2MuZG9taW5hdG9ycygpOyAv
LyBSZWNvbXB1dGUgaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgbV9wdXJlQ1NFLmNsZWFyKCk7
CkBAIC00NDAsMjMgKzQ2MywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgbV9pbnNlcnRp
b25TZXQuZXhlY3V0ZShtX2Jsb2NrKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYg
KG1fYmxvY2tJbnNlcnRpb25TZXQuZXhlY3V0ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9wcm9j
LnJlc2V0UmVhY2hhYmlsaXR5KCk7Ci0gICAgICAgICAgICAgICAgbV9wcm9jLmludmFsaWRhdGVD
RkcoKTsKLSAgICAgICAgICAgICAgICBtX2RvbWluYXRvcnMgPSAmbV9wcm9jLmRvbWluYXRvcnMo
KTsgLy8gUmVjb21wdXRlIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgICAgICAgICBtX2NoYW5nZWRD
RkcgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBzaW1w
bGlmeUNGRygpOwotCisgICAgICAgICAgICBtX2NoYW5nZWRDRkcgfD0gbV9ibG9ja0luc2VydGlv
blNldC5leGVjdXRlKCk7CiAgICAgICAgICAgICBpZiAobV9jaGFuZ2VkQ0ZHKSB7CiAgICAgICAg
ICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgICAgICAgICAgICAgbV9w
cm9jLmludmFsaWRhdGVDRkcoKTsKKyAgICAgICAgICAgICAgICBtX2RvbWluYXRvcnMgPSBudWxs
cHRyOyAvLyBEb21pbmF0b3JzIGFyZSBub3QgdmFsaWQgYW55bW9yZSwgYW5kIHdlIGRvbid0IG5l
ZWQgdGhlbSB5ZXQuCiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAga2lsbERlYWRDb2RlKCk7Ci0gICAgICAgICAgICBzaW1wbGlm
eVNTQSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICByZXN1bHQgfD0gbV9jaGFuZ2VkOwog
ICAgICAgICB9IHdoaWxlIChtX2NoYW5nZWQpOwpAQCAtMjMzMiwxMSArMjM0NSw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5hdCh0YXJnZXRJbmRleCsrKSA9IHZhbHVl
OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5k
ZWxldGVWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAvLyBJdCdzIG5vdCBlbnRpcmVseSBjbGVhciBpZiB0aGlzIGlzIG5lZWRlZC4gSSB0aGlu
ayBpdCBtYWtlcyBzZW5zZSB0byBoYXZlCi0gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgZm9y
Y2UgYSByZXJ1biBvZiB0aGUgZml4cG9pbnQgZm9yIG5vdywgc2luY2UgdGhhdCB3aWxsIG1ha2Ug
aXQgZWFzaWVyCi0gICAgICAgICAgICAgICAgICAgIC8vIHRvIGRvIHBlZXBob2xlIG9wdGltaXph
dGlvbnM6IHJlbW92aW5nIGRlYWQgY29kZSB3aWxsIG1ha2UgdGhlIHBlZXBob2xlCi0gICAgICAg
ICAgICAgICAgICAgIC8vIGVhc2llciB0byBzcG90LgogICAgICAgICAgICAgICAgICAgICBtX2No
YW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjk5LDYg
KzY5OSwyMSBAQCB2b2lkIFZhbHVlOjpwZXJmb3JtU3Vic3RpdHV0aW9uKCkKICAgICB9CiB9CiAK
K2Jvb2wgVmFsdWU6OmlzRnJlZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChvcGNvZGUoKSkgewor
ICAgIGNhc2UgQ29uc3QzMjoKKyAgICBjYXNlIENvbnN0NjQ6CisgICAgY2FzZSBDb25zdERvdWJs
ZToKKyAgICBjYXNlIENvbnN0RmxvYXQ6CisgICAgY2FzZSBJZGVudGl0eToKKyAgICBjYXNlIE5v
cDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KK30KKwogdm9pZCBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJp
bnRTdHJlYW0mKSBjb25zdAogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5o
CShyZXZpc2lvbiAyMDMzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
VHJpU3RhdGUgYWJvdmVFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Q7CiAg
ICAgdmlydHVhbCBUcmlTdGF0ZSBiZWxvd0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdDsKICAgICB2aXJ0dWFsIFRyaVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRDb25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0OwotCisgICAgCiAgICAgLy8gSWYgdGhlIHZhbHVlIGlz
IGEgY29tcGFyaXNvbiB0aGVuIHRoaXMgcmV0dXJucyB0aGUgaW52ZXJ0ZWQgZm9ybSBvZiB0aGF0
IGNvbXBhcmlzb24sIGlmCiAgICAgLy8gcG9zc2libGUuIEl0IGNhbiBiZSBpbXBvc3NpYmxlIGZv
ciBkb3VibGUgY29tcGFyaXNvbnMsIHdoZXJlIGZvciBleGFtcGxlIExlc3NUaGFuIGFuZAogICAg
IC8vIEdyZWF0ZXJFcXVhbCBiZWhhdmUgZGlmZmVyZW50bHkuIElmIHRoaXMgcmV0dXJucyBhIHZh
bHVlLCBpdCBpcyBhIG5ldyB2YWx1ZSwgd2hpY2ggbXVzdCBiZQpAQCAtMjQ1LDYgKzI0NSwxMSBA
QCBwdWJsaWM6CiAgICAgLy8gcmVwb2ludCBpdCBhdCB0aGUgSWRlbnRpdHkncyBjaGlsZC4gRm9y
IHNpbXBsaWNpdHksIHRoaXMgd2lsbCBmb2xsb3cgYXJiaXRyYXJpbHkgbG9uZyBjaGFpbnMKICAg
ICAvLyBvZiBJZGVudGl0eSdzLgogICAgIHZvaWQgcGVyZm9ybVN1YnN0aXR1dGlvbigpOworICAg
IAorICAgIC8vIEZyZWUgdmFsdWVzIGFyZSB0aG9zZSB3aG9zZSBwcmVzZW5jZSBpcyBndWFyYW50
ZWVkIG5vdCB0byBodXJ0IGNvZGUuIFdlIGNvbnNpZGVyIGNvbnN0YW50cywKKyAgICAvLyBJZGVu
dGl0aWVzLCBhbmQgTm9wcyB0byBiZSBmcmVlLiBDb25zdGFudHMgYXJlIGZyZWUgYmVjYXVzZSB3
ZSBob2lzdCB0aGVtIHRvIGFuIG9wdGltYWwgcGxhY2UuCisgICAgLy8gSWRlbnRpdGllcyBhbmQg
Tm9wcyBhcmUgZnJlZSBiZWNhdXNlIHdlIHJlbW92ZSB0aGVtLgorICAgIGJvb2wgaXNGcmVlKCkg
Y29uc3Q7CiAKICAgICAvLyBXYWxrIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyB2YWx1ZSAoaS5lLiB0
aGUgZ3JhcGggb2YgdGhpbmdzIGl0IHRyYW5zaXRpdmVseSB1c2VzKS4gVGhpcwogICAgIC8vIGVp
dGhlciB3YWxrcyBwaGlzIG9yIG5vdCwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgUGhpQ2hpbGRyZW4g
aXMgbnVsbC4gWW91ciBjYWxsYmFjayBnZXRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5MCw2
ICs1OTAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4o
bm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVTeW1ib2woKSkg
eworICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAg
Zml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxk
U3BlY3VsYXRlTWlzYygpKSB7CiAgICAgICAgICAgICAgICAgZml4RWRnZTxNaXNjVXNlPihub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjAzMzk0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxNjMsNiArNTE2MywxNiBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlU3RyaWN0RXEoTm9kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCisg
ICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChTeW1ib2xVc2UsIFVudHlwZWRVc2UpKSB7Cisg
ICAgICAgIGNvbXBpbGVTeW1ib2xVbnR5cGVkRXF1YWxpdHkobm9kZSwgbm9kZS0+Y2hpbGQxKCks
IG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAg
ICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UsIFN5bWJvbFVzZSkpIHsKKyAg
ICAgICAgY29tcGlsZVN5bWJvbFVudHlwZWRFcXVhbGl0eShub2RlLCBub2RlLT5jaGlsZDIoKSwg
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAogICAg
IGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoU3RyaW5nVXNlKSkgewogICAgICAgICBjb21waWxl
U3RyaW5nRXF1YWxpdHkobm9kZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgyNjksNiAr
ODI3OSwzNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29tcGFyZUVxUHRyCiAgICAg
Ymxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVN5bWJvbFVudHlwZWRFcXVhbGl0eShOb2RlKiBub2RlLCBFZGdlIHN5
bWJvbEVkZ2UsIEVkZ2UgdW50eXBlZEVkZ2UpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
c3ltYm9sKHRoaXMsIHN5bWJvbEVkZ2UpOworICAgIEpTVmFsdWVPcGVyYW5kIHVudHlwZWQodGhp
cywgdW50eXBlZEVkZ2UpOworICAgIEdQUlRlbXBvcmFyeSBsZWZ0VGVtcCh0aGlzKTsKKyAgICBH
UFJUZW1wb3JhcnkgcmlnaHRUZW1wKHRoaXMpOworICAgIAorICAgIEdQUlJlZyBzeW1ib2xHUFIg
PSBzeW1ib2wuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgdW50eXBlZFJlZ3MgPSB1bnR5cGVkLmpz
VmFsdWVSZWdzKCk7CisgICAgR1BSUmVnIGxlZnRUZW1wR1BSID0gbGVmdFRlbXAuZ3ByKCk7Cisg
ICAgR1BSUmVnIHJpZ2h0VGVtcEdQUiA9IHJpZ2h0VGVtcC5ncHIoKTsKKyAgICAKKyAgICBzcGVj
dWxhdGVTeW1ib2woc3ltYm9sRWRnZSwgc3ltYm9sR1BSKTsKKyAgICAKKyAgICBKSVRDb21waWxl
cjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKHVudHlwZWRSZWdzKTsKKyAg
ICBKSVRDb21waWxlcjo6SnVtcCBpc1N5bWJvbCA9IG1faml0LmJyYW5jaElmU3ltYm9sKHVudHlw
ZWRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgCisgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7Cisg
ICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoMCksIGxlZnRUZW1wR1BSKTsKKyAgICBKSVRDb21w
aWxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworICAgIAorICAgIGlzU3ltYm9sLmxpbmso
Jm1faml0KTsKKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHN5bWJvbEdQ
UiwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCBsZWZ0VGVtcEdQUik7CisgICAgbV9q
aXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyh1bnR5cGVkUmVncy5wYXlsb2FkR1BSKCks
IFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmlnaHRUZW1wR1BSKTsKKyAgICBtX2pp
dC5jb21wYXJlUHRyKEpJVENvbXBpbGVyOjpFcXVhbCwgbGVmdFRlbXBHUFIsIHJpZ2h0VGVtcEdQ
UiwgbGVmdFRlbXBHUFIpOworICAgIAorICAgIGRvbmUubGluaygmbV9qaXQpOworICAgIHVuYmxl
c3NlZEJvb2xlYW5SZXN1bHQobGVmdFRlbXBHUFIsIG5vZGUpOworfQorCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjAzMzk0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDA1
LDYgKzI0MDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBleHRyYWN0U3RyaW5nSW1wbEZyb21CaW5h
cnlTeW1ib2xzKEVkZ2UgbGVmdFN5bWJvbEVkZ2UsIEVkZ2UgcmlnaHRTeW1ib2xFZGdlLCBjb25z
dCBGdW5jdG9yJik7CiAgICAgdm9pZCBjb21waWxlU3ltYm9sRXF1YWxpdHkoTm9kZSopOwogICAg
IHZvaWQgY29tcGlsZVBlZXBIb2xlU3ltYm9sRXF1YWxpdHkoTm9kZSosIE5vZGUqIGJyYW5jaE5v
ZGUpOworICAgIHZvaWQgY29tcGlsZVN5bWJvbFVudHlwZWRFcXVhbGl0eShOb2RlKiwgRWRnZSBz
eW1ib2xFZGdlLCBFZGdlIHVudHlwZWRFZGdlKTsKIAogICAgIHZvaWQgZW1pdE9iamVjdE9yT3Ro
ZXJCcmFuY2goRWRnZSB2YWx1ZSwgQmFzaWNCbG9jayogdGFrZW4sIEJhc2ljQmxvY2sqIG5vdFRh
a2VuKTsKICAgICB2b2lkIGVtaXRTdHJpbmdCcmFuY2goRWRnZSB2YWx1ZSwgQmFzaWNCbG9jayog
dGFrZW4sIEJhc2ljQmxvY2sqIG5vdFRha2VuKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDIwMzM5NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDExLDYgKzQxMSwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2lu
ZChTeW1ib2xVc2UpKQogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoU3ltYm9sVXNlLCBVbnR5cGVkVXNlKSkKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UsIFN5bWJvbFVzZSkp
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKG5vZGUtPmlzQmluYXJ5VXNlS2luZChN
aXNjVXNlLCBVbnR5cGVkVXNlKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAobm9k
ZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UsIE1pc2NVc2UpKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjAzMzk0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzgwLDggKzIzODAsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOwogICAgICAgICBp
ZiAodWlkLT5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICBMVmFsdWUgc3ltYm9sID0gbG93U3lt
Ym9sKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBt
X291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAg
ICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBsb3dTeW1ib2xVSUQobV9ub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
dXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1f
bm9kZS0+Y2hpbGQxKCkpOwpAQCAtNDkzOSwxNCArNDkzOCw0OSBAQCBwcml2YXRlOgogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFN5bWJvbFVzZSkpIHsK
LSAgICAgICAgICAgIExWYWx1ZSBsZWZ0ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwot
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihsZWZ0LCBt
X2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmlnaHRTdHJp
bmdJbXBsID0gbV9vdXQubG9hZFB0cihyaWdodCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUp
OworICAgICAgICAgICAgTFZhbHVlIGxlZnRTdHJpbmdJbXBsID0gbG93U3ltYm9sVUlEKG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHJpZ2h0U3RyaW5nSW1wbCA9IGxvd1N5
bWJvbFVJRChtX25vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIHNldEJvb2xlYW4obV9vdXQu
ZXF1YWwobGVmdFN0cmluZ0ltcGwsIHJpZ2h0U3RyaW5nSW1wbCkpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBpZiAobV9ub2RlLT5pc0JpbmFyeVVz
ZUtpbmQoU3ltYm9sVXNlLCBVbnR5cGVkVXNlKQorICAgICAgICAgICAgfHwgbV9ub2RlLT5pc0Jp
bmFyeVVzZUtpbmQoVW50eXBlZFVzZSwgU3ltYm9sVXNlKSkgeworICAgICAgICAgICAgRWRnZSBz
eW1ib2xFZGdlID0gbV9ub2RlLT5jaGlsZDEoKTsKKyAgICAgICAgICAgIEVkZ2UgdW50eXBlZEVk
Z2UgPSBtX25vZGUtPmNoaWxkMigpOworICAgICAgICAgICAgaWYgKHN5bWJvbEVkZ2UudXNlS2lu
ZCgpICE9IFN5bWJvbFVzZSkKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoc3ltYm9sRWRnZSwg
dW50eXBlZEVkZ2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgbGVmdFN0cmlu
Z0ltcGwgPSBsb3dTeW1ib2xVSUQoc3ltYm9sRWRnZSk7CisgICAgICAgICAgICBMVmFsdWUgdW50
eXBlZFZhbHVlID0gbG93SlNWYWx1ZSh1bnR5cGVkRWRnZSk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbENhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgaXNTeW1ib2xDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vdFN5bWJvbFJlc3VsdCA9IG1f
b3V0LmFuY2hvcihtX291dC5ib29sZWFuRmFsc2UpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNo
KAorICAgICAgICAgICAgICAgIGlzQ2VsbCh1bnR5cGVkVmFsdWUsIHByb3ZlblR5cGUodW50eXBl
ZEVkZ2UpKSwKKyAgICAgICAgICAgICAgICB1bnN1cmUoaXNDZWxsQ2FzZSksIHVuc3VyZShjb250
aW51YXRpb24pKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5l
eHQgPSBtX291dC5hcHBlbmRUbyhpc0NlbGxDYXNlLCBpc1N5bWJvbENhc2UpOworICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIGlzU3ltYm9sKHVudHlwZWRWYWx1ZSwg
cHJvdmVuVHlwZSh1bnR5cGVkRWRnZSkpLAorICAgICAgICAgICAgICAgIHVuc3VyZShpc1N5bWJv
bENhc2UpLCB1bnN1cmUoY29udGludWF0aW9uKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKGlzU3ltYm9sQ2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIHN5bWJvbFJlc3VsdCA9CisgICAgICAgICAgICAgICAgbV9vdXQuYW5j
aG9yKAorICAgICAgICAgICAgICAgICAgICBtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWRQdHIodW50eXBlZFZhbHVlLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRl
TmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0U3RyaW5nSW1wbCkpOworICAgICAg
ICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNl
dEJvb2xlYW4obV9vdXQucGhpKEludDMyLCBub3RTeW1ib2xSZXN1bHQsIHN5bWJvbFJlc3VsdCkp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBpZiAo
bV9ub2RlLT5pc0JpbmFyeVVzZUtpbmQoTWlzY1VzZSwgVW50eXBlZFVzZSkKICAgICAgICAgICAg
IHx8IG1fbm9kZS0+aXNCaW5hcnlVc2VLaW5kKFVudHlwZWRVc2UsIE1pc2NVc2UpKSB7CiAgICAg
ICAgICAgICBzcGVjdWxhdGUobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC05NzMzLDYgKzk3NjcsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAgIAorICAgIExWYWx1ZSBsb3dTeW1ib2xVSUQo
RWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5k
U3BlY3VsYXRpb24pCisgICAgeworICAgICAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBlZGdlLT5k
eW5hbWljQ2FzdENvbnN0YW50PFN5bWJvbCo+KCkpCisgICAgICAgICAgICByZXR1cm4gbV9vdXQu
Y29uc3RJbnRQdHIoc3ltYm9sLT5wcml2YXRlTmFtZSgpLnVpZCgpKTsKKyAgICAgICAgTFZhbHVl
IHN5bWJvbCA9IGxvd1N5bWJvbChlZGdlLCBtb2RlKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIGNv
dWxkIGF2b2lkIHRoaXMgbG9hZCBpZiB3ZSBoYWQgaGFzaC1jb25zZWQgU3ltYm9scy4KKyAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODkwOAorICAg
ICAgICByZXR1cm4gbV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVO
YW1lKTsKKyAgICB9CiAKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9w
ZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikK
ICAgICB7CkBAIC0xMDI4NSw2ICsxMDMyOSwxNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9v
dXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIodm0oKS5zeW1ib2xTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Cisg
ICAgCisgICAgTFZhbHVlIGlzU3ltYm9sKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBl
ID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJv
dmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCBTcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVy
biBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5lcXVhbCgKKyAgICAgICAgICAgIG1fb3V0
LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBt
X291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQogCiAg
ICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQog
ICAgIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzQxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA3LTE5ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoaW5nIG9uIHN5bWJvbHMgc2hv
dWxkIGJlIGZhc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1ODg5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1i
b2wtb3ItdW5kZWZpbmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9iaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sLW9yLXVuZGVmaW5lZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QuaHRtbDogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJv
bC1vci11bmRlZmluZWQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sLmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dp
dGNoLWluZGlyZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMTkgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICB0aGVndWFyZGlhbi5jby51
ayBjcm9zc3dvcmQgcHV6emxlcyBhcmUgc29tZXRpbWVzIG5vdCBkaXNwbGF5aW5nIHRleHQKSW5k
ZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVj
dC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9i
aWdzd2l0Y2gtaW5kaXJlY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRj
aC1pbmRpcmVjdC1zeW1ib2wtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtb3ItdW5kZWZpbmVkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1p
bmRpcmVjdC1zeW1ib2wtb3ItdW5kZWZpbmVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtb3ItdW5k
ZWZpbmVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1Jl
Z3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC1vci11bmRlZmluZWQKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC1vci11bmRlZmluZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVj
dC1zeW1ib2wtb3ItdW5kZWZpbmVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sLW9yLXVuZGVmaW5lZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtb3ItdW5kZWZp
bmVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0LXN5
bWJvbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1i
b2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9iaWdzd2l0Y2gtaW5kaXJlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1pbmRpcmVjdC5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWluZGlyZWN0Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGlyZWN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC1pbmRpcmVjdC1zeW1ib2wtb3ItdW5kZWZpbmVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtb3It
dW5kZWZpbmVkLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wtb3ItdW5kZWZpbmVkLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjc5IEBACit2YXIgdGhpbmcwID0gU3ltYm9sKCk7Cit2YXIg
dGhpbmcxID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcyID0gU3ltYm9sKCk7Cit2YXIgdGhpbmczID0g
U3ltYm9sKCk7Cit2YXIgdGhpbmc0ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1ID0gU3ltYm9sKCk7
Cit2YXIgdGhpbmc2ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc3ID0gU3ltYm9sKCk7Cit2YXIgdGhp
bmc4ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc5ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcxMCA9IFN5
bWJvbCgpOwordmFyIHRoaW5nMTEgPSBTeW1ib2woKTsKK3ZhciB0aGluZzEyID0gU3ltYm9sKCk7
Cit2YXIgdGhpbmcxMyA9IFN5bWJvbCgpOwordmFyIHRoaW5nMTQgPSBTeW1ib2woKTsKK3ZhciB0
aGluZzE1ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcxNiA9IFN5bWJvbCgpOwordmFyIHRoaW5nMTcg
PSBTeW1ib2woKTsKK3ZhciB0aGluZzE4ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcxOSA9IFN5bWJv
bCgpOwordmFyIHRoaW5nMjAgPSBTeW1ib2woKTsKK3ZhciB0aGluZzIxID0gU3ltYm9sKCk7Cit2
YXIgdGhpbmcyMiA9IFN5bWJvbCgpOwordmFyIHRoaW5nMjMgPSBTeW1ib2woKTsKK3ZhciB0aGlu
ZzI0ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcyNSA9IFN5bWJvbCgpOwordmFyIHRoaW5nMjYgPSBT
eW1ib2woKTsKK3ZhciB0aGluZzI3ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcyOCA9IFN5bWJvbCgp
OwordmFyIHRoaW5nMjkgPSBTeW1ib2woKTsKK3ZhciB0aGluZzMwID0gU3ltYm9sKCk7Cit2YXIg
dGhpbmczMSA9IFN5bWJvbCgpOwordmFyIHRoaW5nMzIgPSBTeW1ib2woKTsKK3ZhciB0aGluZzMz
ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmczNCA9IFN5bWJvbCgpOwordmFyIHRoaW5nMzUgPSBTeW1i
b2woKTsKK3ZhciB0aGluZzM2ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmczNyA9IFN5bWJvbCgpOwor
dmFyIHRoaW5nMzggPSBTeW1ib2woKTsKK3ZhciB0aGluZzM5ID0gU3ltYm9sKCk7Cit2YXIgdGhp
bmc0MCA9IFN5bWJvbCgpOwordmFyIHRoaW5nNDEgPSBTeW1ib2woKTsKK3ZhciB0aGluZzQyID0g
U3ltYm9sKCk7Cit2YXIgdGhpbmc0MyA9IFN5bWJvbCgpOwordmFyIHRoaW5nNDQgPSBTeW1ib2wo
KTsKK3ZhciB0aGluZzQ1ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc0NiA9IFN5bWJvbCgpOwordmFy
IHRoaW5nNDcgPSBTeW1ib2woKTsKK3ZhciB0aGluZzQ4ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc0
OSA9IFN5bWJvbCgpOwordmFyIHRoaW5nNTAgPSBTeW1ib2woKTsKK3ZhciB0aGluZzUxID0gU3lt
Ym9sKCk7Cit2YXIgdGhpbmc1MiA9IFN5bWJvbCgpOwordmFyIHRoaW5nNTMgPSBTeW1ib2woKTsK
K3ZhciB0aGluZzU0ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1NSA9IFN5bWJvbCgpOwordmFyIHRo
aW5nNTYgPSBTeW1ib2woKTsKK3ZhciB0aGluZzU3ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1OCA9
IFN5bWJvbCgpOwordmFyIHRoaW5nNTkgPSBTeW1ib2woKTsKK3ZhciB0aGluZzYwID0gU3ltYm9s
KCk7Cit2YXIgdGhpbmc2MSA9IFN5bWJvbCgpOwordmFyIHRoaW5nNjIgPSBTeW1ib2woKTsKKwor
dmFyIHRoaW5ncyA9IFtdOworZm9yICh2YXIgaSA9IDA7IGkgPCA2MzsgKytpKQorICAgIHRoaW5n
cy5wdXNoKGV2YWwoInRoaW5nIiArIGkpKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIg
cmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAg
ICB2YXIgdmFsdWUgPSB0aGluZ3NbaSAmIDYzXTsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgewor
ICAgICAgICBjYXNlIHRoaW5nMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5n
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSB0aGluZzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgdGhpbmc4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaW5nOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzEwOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTE6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
dGhpbmcxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSB0aGluZzEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxNToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0
aGluZzE2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIHRoaW5nMTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxODoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE5OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRo
aW5nMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgdGhpbmcyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzIyOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjM6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhp
bmcyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSB0aGluZzI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjY6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlu
ZzI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIHRoaW5nMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzMxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5n
MzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgdGhpbmczMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
azsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcz
NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSB0aGluZzM3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5j
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczOToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIHRoaW5nNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQzOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDQ6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgdGhpbmc0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDc6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0ODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB0aGluZzQ5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaW5nNTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1MToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzUyOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaW5nNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgdGhpbmc1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzU1OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgdGhpbmc1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSB0aGluZzU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc2MDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGluZzYxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaW5nNjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0g
by56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6
NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIg
cmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAg
IHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKKwpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJv
bC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9i
aWdzd2l0Y2gtaW5kaXJlY3Qtc3ltYm9sLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC1zeW1ib2wuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyODAgQEAKK3ZhciB0aGluZzAgPSBTeW1ib2woKTsKK3Zh
ciB0aGluZzEgPSBTeW1ib2woKTsKK3ZhciB0aGluZzIgPSBTeW1ib2woKTsKK3ZhciB0aGluZzMg
PSBTeW1ib2woKTsKK3ZhciB0aGluZzQgPSBTeW1ib2woKTsKK3ZhciB0aGluZzUgPSBTeW1ib2wo
KTsKK3ZhciB0aGluZzYgPSBTeW1ib2woKTsKK3ZhciB0aGluZzcgPSBTeW1ib2woKTsKK3ZhciB0
aGluZzggPSBTeW1ib2woKTsKK3ZhciB0aGluZzkgPSBTeW1ib2woKTsKK3ZhciB0aGluZzEwID0g
U3ltYm9sKCk7Cit2YXIgdGhpbmcxMSA9IFN5bWJvbCgpOwordmFyIHRoaW5nMTIgPSBTeW1ib2wo
KTsKK3ZhciB0aGluZzEzID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcxNCA9IFN5bWJvbCgpOwordmFy
IHRoaW5nMTUgPSBTeW1ib2woKTsKK3ZhciB0aGluZzE2ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcx
NyA9IFN5bWJvbCgpOwordmFyIHRoaW5nMTggPSBTeW1ib2woKTsKK3ZhciB0aGluZzE5ID0gU3lt
Ym9sKCk7Cit2YXIgdGhpbmcyMCA9IFN5bWJvbCgpOwordmFyIHRoaW5nMjEgPSBTeW1ib2woKTsK
K3ZhciB0aGluZzIyID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcyMyA9IFN5bWJvbCgpOwordmFyIHRo
aW5nMjQgPSBTeW1ib2woKTsKK3ZhciB0aGluZzI1ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmcyNiA9
IFN5bWJvbCgpOwordmFyIHRoaW5nMjcgPSBTeW1ib2woKTsKK3ZhciB0aGluZzI4ID0gU3ltYm9s
KCk7Cit2YXIgdGhpbmcyOSA9IFN5bWJvbCgpOwordmFyIHRoaW5nMzAgPSBTeW1ib2woKTsKK3Zh
ciB0aGluZzMxID0gU3ltYm9sKCk7Cit2YXIgdGhpbmczMiA9IFN5bWJvbCgpOwordmFyIHRoaW5n
MzMgPSBTeW1ib2woKTsKK3ZhciB0aGluZzM0ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmczNSA9IFN5
bWJvbCgpOwordmFyIHRoaW5nMzYgPSBTeW1ib2woKTsKK3ZhciB0aGluZzM3ID0gU3ltYm9sKCk7
Cit2YXIgdGhpbmczOCA9IFN5bWJvbCgpOwordmFyIHRoaW5nMzkgPSBTeW1ib2woKTsKK3ZhciB0
aGluZzQwID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc0MSA9IFN5bWJvbCgpOwordmFyIHRoaW5nNDIg
PSBTeW1ib2woKTsKK3ZhciB0aGluZzQzID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc0NCA9IFN5bWJv
bCgpOwordmFyIHRoaW5nNDUgPSBTeW1ib2woKTsKK3ZhciB0aGluZzQ2ID0gU3ltYm9sKCk7Cit2
YXIgdGhpbmc0NyA9IFN5bWJvbCgpOwordmFyIHRoaW5nNDggPSBTeW1ib2woKTsKK3ZhciB0aGlu
ZzQ5ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1MCA9IFN5bWJvbCgpOwordmFyIHRoaW5nNTEgPSBT
eW1ib2woKTsKK3ZhciB0aGluZzUyID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1MyA9IFN5bWJvbCgp
OwordmFyIHRoaW5nNTQgPSBTeW1ib2woKTsKK3ZhciB0aGluZzU1ID0gU3ltYm9sKCk7Cit2YXIg
dGhpbmc1NiA9IFN5bWJvbCgpOwordmFyIHRoaW5nNTcgPSBTeW1ib2woKTsKK3ZhciB0aGluZzU4
ID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc1OSA9IFN5bWJvbCgpOwordmFyIHRoaW5nNjAgPSBTeW1i
b2woKTsKK3ZhciB0aGluZzYxID0gU3ltYm9sKCk7Cit2YXIgdGhpbmc2MiA9IFN5bWJvbCgpOwor
dmFyIHRoaW5nNjMgPSBTeW1ib2woKTsKKwordmFyIHRoaW5ncyA9IFtdOworZm9yICh2YXIgaSA9
IDA7IGkgPCA2NDsgKytpKQorICAgIHRoaW5ncy5wdXNoKGV2YWwoInRoaW5nIiArIGkpKTsKKwor
ZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSB0aGluZ3NbaSAmIDYzXTsK
KyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIHRoaW5nMDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlu
ZzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgdGhpbmcyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaW5nNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSB0aGluZzc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc4OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nOToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0
aGluZzEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIHRoaW5nMTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxMjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzEzOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRo
aW5nMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgdGhpbmcxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE2OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTc6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhp
bmcxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSB0aGluZzE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyMToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlu
ZzIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIHRoaW5nMjM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5n
MjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgdGhpbmcyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjk6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcz
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSB0aGluZzMxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzM0
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIHRoaW5nMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzM3OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzg6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgdGhpbmczOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0MjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB0aGluZzQzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaW5nNDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0NToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaW5nNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgdGhpbmc0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ5OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTA6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgdGhpbmc1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSB0aGluZzUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTM6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1NDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGluZzU1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaW5nNTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1NzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzU4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHRoaW5nNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgdGhpbmc2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzYxOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNjI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAg
IHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6
MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJl
c3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfSkoKTsKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvYmlnc3dpdGNoLWluZGlyZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC1pbmRpcmVjdC5qcwkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2gtaW5kaXJlY3Qu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNzUgQEAKK3ZhciB0aGluZzAgPSAwOwordmFy
IHRoaW5nMSA9IDE7Cit2YXIgdGhpbmcyID0gMjsKK3ZhciB0aGluZzMgPSAzOwordmFyIHRoaW5n
NCA9IDQ7Cit2YXIgdGhpbmc1ID0gNTsKK3ZhciB0aGluZzYgPSA2OwordmFyIHRoaW5nNyA9IDc7
Cit2YXIgdGhpbmc4ID0gODsKK3ZhciB0aGluZzkgPSA5OwordmFyIHRoaW5nMTAgPSAxMDsKK3Zh
ciB0aGluZzExID0gMTE7Cit2YXIgdGhpbmcxMiA9IDEyOwordmFyIHRoaW5nMTMgPSAxMzsKK3Zh
ciB0aGluZzE0ID0gMTQ7Cit2YXIgdGhpbmcxNSA9IDE1OwordmFyIHRoaW5nMTYgPSAxNjsKK3Zh
ciB0aGluZzE3ID0gMTc7Cit2YXIgdGhpbmcxOCA9IDE4OwordmFyIHRoaW5nMTkgPSAxOTsKK3Zh
ciB0aGluZzIwID0gMjA7Cit2YXIgdGhpbmcyMSA9IDIxOwordmFyIHRoaW5nMjIgPSAyMjsKK3Zh
ciB0aGluZzIzID0gMjM7Cit2YXIgdGhpbmcyNCA9IDI0OwordmFyIHRoaW5nMjUgPSAyNTsKK3Zh
ciB0aGluZzI2ID0gMjY7Cit2YXIgdGhpbmcyNyA9IDI3OwordmFyIHRoaW5nMjggPSAyODsKK3Zh
ciB0aGluZzI5ID0gMjk7Cit2YXIgdGhpbmczMCA9IDMwOwordmFyIHRoaW5nMzEgPSAzMTsKK3Zh
ciB0aGluZzMyID0gMzI7Cit2YXIgdGhpbmczMyA9IDMzOwordmFyIHRoaW5nMzQgPSAzNDsKK3Zh
ciB0aGluZzM1ID0gMzU7Cit2YXIgdGhpbmczNiA9IDM2OwordmFyIHRoaW5nMzcgPSAzNzsKK3Zh
ciB0aGluZzM4ID0gMzg7Cit2YXIgdGhpbmczOSA9IDM5OwordmFyIHRoaW5nNDAgPSA0MDsKK3Zh
ciB0aGluZzQxID0gNDE7Cit2YXIgdGhpbmc0MiA9IDQyOwordmFyIHRoaW5nNDMgPSA0MzsKK3Zh
ciB0aGluZzQ0ID0gNDQ7Cit2YXIgdGhpbmc0NSA9IDQ1OwordmFyIHRoaW5nNDYgPSA0NjsKK3Zh
ciB0aGluZzQ3ID0gNDc7Cit2YXIgdGhpbmc0OCA9IDQ4OwordmFyIHRoaW5nNDkgPSA0OTsKK3Zh
ciB0aGluZzUwID0gNTA7Cit2YXIgdGhpbmc1MSA9IDUxOwordmFyIHRoaW5nNTIgPSA1MjsKK3Zh
ciB0aGluZzUzID0gNTM7Cit2YXIgdGhpbmc1NCA9IDU0OwordmFyIHRoaW5nNTUgPSA1NTsKK3Zh
ciB0aGluZzU2ID0gNTY7Cit2YXIgdGhpbmc1NyA9IDU3OwordmFyIHRoaW5nNTggPSA1ODsKK3Zh
ciB0aGluZzU5ID0gNTk7Cit2YXIgdGhpbmc2MCA9IDYwOwordmFyIHRoaW5nNjEgPSA2MTsKK3Zh
ciB0aGluZzYyID0gNjI7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVl
ID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgdGhpbmcw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIHRoaW5nMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGluZzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgdGhpbmc2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhp
bmc5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIHRoaW5nMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzEyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5n
MTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgdGhpbmcxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcx
NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSB0aGluZzE4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5p
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyMDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzIx
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIHRoaW5nMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI0OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjU6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgdGhpbmcyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSB0aGluZzI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMjg6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmcyOToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSB0aGluZzMwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIHRoaW5nMzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmczMjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzMzOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaW5nMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgdGhpbmczNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzM2OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nMzc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgdGhpbmczODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSB0aGluZzM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDA6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0MToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGluZzQyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIHRoaW5nNDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc0NDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ1OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IHRoaW5nNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgdGhpbmc0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzQ4OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNDk6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
dGhpbmc1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSB0aGluZzUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNTI6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1MzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0
aGluZzU0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIHRoaW5nNTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpbmc1NjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzU3OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRo
aW5nNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgdGhpbmc1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGluZzYwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaW5nNjE6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhp
bmc2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rp
b24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBo
OjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsK
KyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>284059</attachid>
            <date>2016-07-19 15:09:25 -0700</date>
            <delta_ts>2016-07-19 15:09:25 -0700</delta_ts>
            <desc>performance</desc>
            <filename>report.txt</filename>
            <type>text/plain</type>
            <size>82240</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IG11cmRlcmZhY2UgKE1hY0Jvb2tQcm8xMSw1KS4KClZNcyB0ZXN0ZWQ6CiJUaXBPZlRyZWUiIGF0
IC9Wb2x1bWVzL0RhdGEvc2Vjb25kYXJ5L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9q
c2MgKHIyMDMzOTQpCiJUaGluZ3MiIGF0IC9Wb2x1bWVzL0RhdGEvcHJpbWFyeS9PcGVuU291cmNl
L1dlYktpdEJ1aWxkL1JlbGVhc2UvanNjIChyMjAzMzk0KQoKQ29sbGVjdGVkIDYgc2FtcGxlcyBw
ZXIgYmVuY2htYXJrL1ZNLCB3aXRoIDYgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1p
dHRlZCBhIGNhbGwgdG8gZ2MoKSBiZXR3ZWVuIHNhbXBsZSBtZWFzdXJlbWVudHMuClVzZWQgMSBi
ZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZvciB3YXJtLXVwLiBVc2VkIHRo
ZSBqc2Mtc3BlY2lmaWMgcHJlY2lzZVRpbWUoKSBmdW5jdGlvbiB0byBnZXQgbWljcm9zZWNvbmQt
bGV2ZWwKdGltaW5nLiBSZXBvcnRpbmcgYmVuY2htYXJrIGV4ZWN1dGlvbiB0aW1lcyB3aXRoIDk1
JSBjb25maWRlbmNlIGludGVydmFscyBpbiBtaWxsaXNlY29uZHMuCgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAg
ICAgICAgICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApT
dW5TcGlkZXI6CiAgIDNkLWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNzAxMCstMC4xOTQyICAgICAgICAgICAgNC41ODc2Ky0wLjA5OTMgICAgICAgICAg
bWlnaHQgYmUgMS4wMjQ3eCBmYXN0ZXIKICAgM2QtbW9ycGggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC42NjMyKy0wLjAxNzcgICAgID8gICAgICA0LjczNTArLTAu
MTEzMSAgICAgICAgPyBtaWdodCBiZSAxLjAxNTR4IHNsb3dlcgogICAzZC1yYXl0cmFjZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjY2MTgrLTAuMDU5OCAgICAgPyAg
ICAgIDQuNzQxMystMC4wODQ5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3MHggc2xvd2VyCiAgIGFj
Y2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODU1NCst
MC4wMTQzICAgICAgICAgICAgMS44NDI4Ky0wLjAyMjMgICAgICAgIAogICBhY2Nlc3MtZmFubmt1
Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjEyNDErLTAuMjk2MyAgICAg
ICAgICAgIDUuMDA1MCstMC4zMzA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIzOHggZmFzdGVyCiAg
IGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDEz
MistMC4xMjA3ICAgICA/ICAgICAgMi40NTcyKy0wLjEwNDcgICAgICAgID8gbWlnaHQgYmUgMS4w
MTgyeCBzbG93ZXIKICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4xMDM3Ky0wLjEzMjcgICAgID8gICAgICAzLjEzOTErLTAuMDgwNyAgICAgICAg
PyBtaWdodCBiZSAxLjAxMTR4IHNsb3dlcgogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLjA1NjErLTAuMTA4NSAgICAgICAgICAgIDEuMDI0NSst
MC4wNzA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwOXggZmFzdGVyCiAgIGJpdG9wcy1iaXRzLWlu
LWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDc4OSstMC4xMjQzICAgICA/
ICAgICAgMi40Nzk1Ky0wLjExNjkgICAgICAgID8KICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44MzExKy0wLjAxNTUgICAgID8gICAgICAxLjg0
NzYrLTAuMDMzMSAgICAgICAgPwogICBiaXRvcHMtbnNpZXZlLWJpdHMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjk0NTgrLTAuMDc5NiAgICAgICAgICAgIDIuODk4MCstMC4wNDg0
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2NXggZmFzdGVyCiAgIGNvbnRyb2xmbG93LXJlY3Vyc2l2
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTk3OCstMC4xMTQ4ICAgICAgICAgICAg
Mi4xOTQ0Ky0wLjE3NDkgICAgICAgIAogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjE5MTIrLTAuMDg2NCAgICAgPyAgICAgIDQuMjE1NystMC4x
Njk0ICAgICAgICA/CiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuNjY3MCstMC4xNDA1ICAgICAgICAgICAgMi42NDI2Ky0wLjEzNTEgICAgICAg
IAogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjYzOTYrLTAuMTk1MSAgICAgICAgICAgIDIuNjI1NystMC4wNDU4ICAgICAgICAKICAgZGF0ZS1m
b3JtYXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4xNTIxKy0wLjI0
NzYgICAgICAgICAgICA2LjAwNDUrLTAuMTIzNCAgICAgICAgICBtaWdodCBiZSAxLjAyNDZ4IGZh
c3RlcgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LjU4MzkrLTAuMzU2NSAgICAgICAgICAgIDQuNTIyNSstMC4yODEzICAgICAgICAgIG1pZ2h0
IGJlIDEuMDEzNnggZmFzdGVyCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNzExOCstMC4yMjQwICAgICAgICAgICAgMi41ODE1Ky0wLjA0NjAg
ICAgICAgICAgbWlnaHQgYmUgMS4wNTA1eCBmYXN0ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy45MTY3Ky0wLjI0NjAgICAgICAgICAgICAz
LjkwNzMrLTAuNDk4NSAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEuOTUxOSstMC4xODk5ICAgICAgICAgICAgMS44Nzk4Ky0wLjA5
MjYgICAgICAgICAgbWlnaHQgYmUgMS4wMzgzeCBmYXN0ZXIKICAgcmVnZXhwLWRuYSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yMTgyKy0wLjM2MjIgICAgID8gICAg
ICA2LjMyNTMrLTAuMjE1MSAgICAgICAgPyBtaWdodCBiZSAxLjAxNzJ4IHNsb3dlcgogICBzdHJp
bmctYmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQzNjUrLTAu
MjcwNyAgICAgPyAgICAgIDQuNDYxOCstMC4yMjYwICAgICAgICA/CiAgIHN0cmluZy1mYXN0YSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMjAyOCstMC4wMTM1ICAgICA/
ICAgICAgNS4yNzkzKy0wLjE5MTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ3eCBzbG93ZXIKICAg
c3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43ODUx
Ky0wLjA1NjcgICAgID8gICAgICA3LjgwNzQrLTAuMDU5OCAgICAgICAgPwogICBzdHJpbmctdW5w
YWNrLWNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjIxNjgrLTAuNTIzNiAg
ICAgICAgICAgMTcuMTI3MCstMC41MTA4ICAgICAgICAKICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4xNDE0Ky0wLjA2ODAgICAgID8gICAgICA0
LjE0NjArLTAuMTA4NiAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC4yNjMzKy0wLjAzMDEgICAgICAgICAgICA0LjI0OTIrLTAu
MDM3NSAgICAgICAgICBtaWdodCBiZSAxLjAwMzN4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAg
ICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKTG9u
Z1NwaWRlcjoKICAgM2QtY3ViZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDc2My4xMzU4Ky02LjIzMDUgICAgID8gICAgNzYzLjUzMTIrLTUuNzkyNSAgICAgICAgPwog
ICAzZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTU0Ljcz
ODArLTIuNjI3OSAgICAgICAgICA1NTQuNjY3NystMS45NDkxICAgICAgICAKICAgM2QtcmF5dHJh
Y2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NS4wNjkzKy0zLjU3ODEg
ICAgID8gICAgNDQ4LjQwODgrLTMuNjY0MCAgICAgICAgPwogICBhY2Nlc3MtYmluYXJ5LXRyZWVz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzc4LjY5NzkrLTMuNDQyMCAgICAgPyAgICA3
ODAuMjUwOCstNC41MjY3ICAgICAgICA/CiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMjYuOTE0MCstNy41MjAzICAgICAgICAgIDIyNS41NzY5Ky04
LjQxNzggICAgICAgIAogICBhY2Nlc3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNTA1LjY1MzQrLTIuNTIzOCAgICAgISAgICA1MTcuNjg1MystNC44NjI3ICAgICAg
ICAhIGRlZmluaXRlbHkgMS4wMjM4eCBzbG93ZXIKICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI3My41NDgwKy0zLjg3MjIgICAgID8gICAgMjc2Ljk2
NTArLTkuNDg1MiAgICAgICAgPyBtaWdodCBiZSAxLjAxMjV4IHNsb3dlcgogICBiaXRvcHMtM2Jp
dC1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjc2OTgrLTEuNzMxMyAg
ICAgICAgICAgMzEuMTA3OSstMC4zMTQzICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxM3ggZmFzdGVy
CiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTMu
MjUwNSstMy4xNjg2ICAgICAgICAgICA5My4wMDc5Ky0wLjg4MzggICAgICAgIAogICBiaXRvcHMt
bnNpZXZlLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzY3LjE3MjYrLTMuNTk5
MiAgICAgICAgICAzNjYuMzE0NSstNC40ODA3ICAgICAgICAKICAgY29udHJvbGZsb3ctcmVjdXJz
aXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyNy44Mzc1Ky0yLjQ4NDYgICAgICAgICAg
NDI1LjIzNTUrLTAuODg3NCAgICAgICAgCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1NjEuODMyNSstNi45ODQxICAgICA/ICAgIDU2Mi45MzA3Ky0z
LjgzNTYgICAgICAgID8KICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQ0OC44NjA4Ky0yLjgwODMgICAgID8gICAgNDUzLjI5MzUrLTQuNDYxMCAgICAg
ICAgPwogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NjA1LjUzMDIrLTIuMzE5NiAgICAgPyAgICA2MTEuNDEyNSstMTEuODg0MCAgICAgICA/CiAgIGRh
dGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjkuMDYyNCst
MjAuMTM4MiAgICAgICAgIDMxNy42MTMyKy0xLjk5NzMgICAgICAgICAgbWlnaHQgYmUgMS4wMzYw
eCBmYXN0ZXIKICAgZGF0ZS1mb3JtYXQteHBhcmIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU4MC40MjgzKy00LjM3NzIgICAgID8gICAgNTg2Ljk0MDIrLTIuMjQ5NiAgICAgICAgPyBt
aWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICBoYXNoLW1hcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTM2LjQ0MzkrLTMuMjY2NSAgICAgPyAgICAxMzcuOTQ4MSstMi41
ODUzICAgICAgICA/IG1pZ2h0IGJlIDEuMDExMHggc2xvd2VyCiAgIG1hdGgtY29yZGljICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MTAuODUwMystMy4zODI4ICAgICAgICAg
IDQxMC4wNzc4Ky0zLjcxNzMgICAgICAgIAogICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjYzLjQxMzcrLTEuMzc5MSAgICAgICAgICAyNjMuMTU1Mist
MC44NTA3ICAgICAgICAKICAgbWF0aC1zcGVjdHJhbC1ub3JtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUxNC4xMDg4Ky0yLjM0MDYgICAgICAgICAgNTEwLjg3NzUrLTEuMDAyNiAgICAg
ICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
MDEuNzAyNistMy41NTI4ICAgICA/ICAgIDQwMy4yNzIxKy0zLjczNzkgICAgICAgID8KICAgc3Ry
aW5nLWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyNC40MzkxKy0y
Ljc1MTYgICAgICAgICAgMzIyLjg0NTUrLTQuMTEzOCAgICAgICAgCiAgIHN0cmluZy10YWdjbG91
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjQuMDU5NSstNS44MTQ3ICAgICAg
ICAgIDE2MS44NzkyKy0wLjg4NzkgICAgICAgICAgbWlnaHQgYmUgMS4wMTM1eCBmYXN0ZXIKCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMzIuNjA4
OCstMS41NzkxICAgICAgICAgIDMzMi41MzY4Ky0xLjI5MTkgICAgICAgICAgbWlnaHQgYmUgMS4w
MDAyeCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgClY4U3BpZGVyOgogICBjcnlwdG8gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjQxOTYrLTAuMjY0MSAgICAgPyAg
ICAgMzMuNTEyNSstMC4zMTI4ICAgICAgICA/CiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDguNTI2MistMS44MDQyICAgICAgICAgICA0Ni45NTYw
Ky0wLjgyNzAgICAgICAgICAgbWlnaHQgYmUgMS4wMzM0eCBmYXN0ZXIKICAgZWFybGV5LWJveWVy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy4xODUzKy0wLjQ0NzQgICAg
ICAgICAgIDM3LjA5ODUrLTAuNzU1NSAgICAgICAgCiAgIHJheXRyYWNlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNDMwNystMC41MTAwICAgICAgICAgICAxOS40
MTU2Ky0wLjYxMDEgICAgICAgIAogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQ5LjM4NjYrLTAuMzUzMiAgICAgPyAgICAgNTAuMTE4OSstMS45MTUy
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0OHggc2xvd2VyCiAgIHJpY2hhcmRzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguMDU0MSstMC40MzA5ICAgICA/ICAgICAz
OC4wNjk2Ky0wLjQ1MDggICAgICAgID8KICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyNy44NjQ4Ky0wLjEyODYgICAgID8gICAgIDI3Ljg3OTMrLTAu
NDY0MiAgICAgICAgPwoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzNC43NTk4Ky0wLjIxNzUgICAgICAgICAgIDM0LjY3MTMrLTAuMzQ0NyAgICAg
ICAgICBtaWdodCBiZSAxLjAwMjZ4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAg
VGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKT2N0YW5lOgogICBl
bmNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMTQ4MDEr
LTAuMDAyMjggICAgPyAgICAgMC4xNDk4MystMC4wMDIyMSAgICAgICA/IG1pZ2h0IGJlIDEuMDEy
M3ggc2xvd2VyCiAgIGRlY3J5cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi40OTExOCstMC4wMTIyOCAgICA/ICAgICAyLjUwMzkyKy0wLjAxMzczICAgICAgID8K
ICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjEy
MjY0Ky0wLjAwMjIzICAgID8gICAgIDAuMTIzMDQrLTAuMDAxNDcgICAgICAgPwogICBlYXJsZXkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjY5OTgrLTAuMDAx
ODIgICAgICAgICAgMC4yNjk5NistMC4wMDI5NiAgICAgICAKICAgYm95ZXIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYxMDczKy0wLjE3MDM0ICAgID8gICAg
IDQuNjk3MTMrLTAuMDU3ODEgICAgICAgPyBtaWdodCBiZSAxLjAxODd4IHNsb3dlcgogICBuYXZp
ZXItc3Rva2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDQuNTk5NzcrLTAu
MDEzMDkgICAgICAgICAgNC41OTExNistMC4wMzM0NyAgICAgICAKICAgcmF5dHJhY2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjc2MDUwKy0wLjAwNDYzICAgICAg
ICAgIDAuNzU0NjMrLTAuMDA4ODggICAgICAgCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAgMC4wNzY2MistMC4wMDA3MyAgICAgICAgICAwLjA3NjQ1
Ky0wLjAwMTM3ICAgICAgIAogICBzcGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHgyICAgICAgIDAuMzIxNjErLTAuMDAyMDYgICAgICAgICAgMC4zMjA1OSstMC4wMDI3OCAg
ICAgICAKICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAg
IDE0LjYzNjUxKy0wLjEwNzI1ICAgID8gICAgMTQuNzU5NjkrLTAuMTk2MjYgICAgICAgPwogICBw
ZGZqcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgMzkuMDE0MjEr
LTAuNTc1MzAgICAgICAgICAzOC43NTk4NCstMC40ODYyMCAgICAgICAKICAgbWFuZHJlZWwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDM5LjYwNjY0Ky0wLjMyNjc1ICAg
ID8gICAgMzkuNjg2NjcrLTAuMzEwOTYgICAgICAgPwogICBnYmVtdSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgyICAgICAgMjcuMjkzMzUrLTAuMTgyODkgICAgICAgICAyNy4x
MjMwMCstMC4wNTg0NiAgICAgICAKICAgY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjQ2MDEyKy0wLjAwMTcxICAgICAgICAgIDAuNDU3NTIrLTAuMDAx
MjMgICAgICAgCiAgIGpxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNi4xNDU0MSstMC4wNDQ0MiAgICA/ICAgICA2LjE5OTMyKy0wLjA1MTE5ICAgICAgID8K
ICAgYm94MmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA4LjY0
Mzc5Ky0wLjA4OTc1ICAgICAgICAgIDguNTUwMzkrLTAuMDI2MzcgICAgICAgICBtaWdodCBiZSAx
LjAxMDl4IGZhc3RlcgogICB6bGliICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgyICAgICAzNTAuMDE1NzUrLTIuNTk2NzYgICAgPyAgIDM1My42ODIwMSstMy43NTYxMiAgICAg
ICA/IG1pZ2h0IGJlIDEuMDEwNXggc2xvd2VyCiAgIHR5cGVzY3JpcHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgIDU3OS42Nzk5NystMTAuNDEyODIgICAgICAgNTcyLjYyNDYz
Ky0zLjM1NjU0ICAgICAgICAgbWlnaHQgYmUgMS4wMTIzeCBmYXN0ZXIKCiAgIDxnZW9tZXRyaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43MjQxOSstMC4wMjAyOCAg
ICAgICAgICA0LjcyMTkwKy0wLjAxMDE2ICAgICAgICAgbWlnaHQgYmUgMS4wMDA1eCBmYXN0ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCktyYWtlbjoKICAgYWktYXN0YXIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgODIuOTI3Ky0yLjU5MiAgICAgICAgICAgICA4MS4yNzErLTEu
MjI5ICAgICAgICAgICBtaWdodCBiZSAxLjAyMDR4IGZhc3RlcgogICBhdWRpby1iZWF0LWRldGVj
dGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNi4yMzArLTAuODE1ICAgICAgICAg
ICAgIDM1LjY3NCstMC4wOTIgICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NnggZmFzdGVyCiAgIGF1
ZGlvLWRmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk0LjgzMSst
MS40ODAgICAgICA/ICAgICAgOTYuMTQwKy0zLjAxMiAgICAgICAgID8gbWlnaHQgYmUgMS4wMTM4
eCBzbG93ZXIKICAgYXVkaW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjcuNzczKy0wLjAyNSAgICAgID8gICAgICAyNy45NTQrLTAuMzc5ICAgICAgICAgPwog
ICBhdWRpby1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NS42
NTQrLTAuMjMwICAgICAgPyAgICAgIDQ2LjI0OSstMS42NDAgICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEzMXggc2xvd2VyCiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDU3LjM2MistMS43MDMgICAgICAgICAgICAgNTYuNzMzKy0wLjE2MiAgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTExeCBmYXN0ZXIKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDIuMDgwKy0yLjg3MSAgICAgICAgICAgICA0MC45MzQr
LTAuMTY0ICAgICAgICAgICBtaWdodCBiZSAxLjAyODB4IGZhc3RlcgogICBpbWFnaW5nLWdhdXNz
aWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NC44MTkrLTIuMjg5ICAgICAg
PyAgICAgIDU2LjgyMistMy4wNjAgICAgICAgICA/IG1pZ2h0IGJlIDEuMDM2NXggc2xvd2VyCiAg
IGpzb24tcGFyc2UtZmluYW5jaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjA3
MCstMS4xODkgICAgICAgICAgICAgMzEuMjc5Ky0wLjQzNiAgICAgICAgICAgbWlnaHQgYmUgMS4w
MjUzeCBmYXN0ZXIKICAganNvbi1zdHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjAuNzI2Ky0xLjAwMSAgICAgICAgICAgICAyMC4wMDgrLTAuNDUxICAgICAgICAg
ICBtaWdodCBiZSAxLjAzNTl4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNC44MTgrLTAuNjc3ICAgICAgICAgICAgIDM0LjQ0NSst
MC41MjYgICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIHN0YW5mb3JkLWNyeXB0
by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLjY0MCstMC4yOTcgICAgICA/
ICAgICAgMzEuOTk3Ky0wLjMxNSAgICAgICAgID8gbWlnaHQgYmUgMS4wMTEzeCBzbG93ZXIKICAg
c3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODcuNzg4
Ky0wLjU5OSAgICAgID8gICAgICA4OC4yNjkrLTIuNTQwICAgICAgICAgPwogICBzdGFuZm9yZC1j
cnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZSAgICAgICAgICAgICAgICAgICAyOS4yOTkrLTEuODkxICAg
ICAgICAgICAgIDI4LjI5MystMC4xNTkgICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1NnggZmFzdGVy
CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
OC40MzArLTAuMzczICAgICAgICAgICAgIDQ4LjI5MSstMC4zOTEgICAgICAgICAgIG1pZ2h0IGJl
IDEuMDAyOXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAgICAgICAgICBUaGluZ3MgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1JlZ3Jlc3M6CiAgIGFiYy1mb3J3YXJk
LWxvb3AtZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuNDQzOCstMC42MDI4ICAg
ICAgICAgICAyMi4yMTU4Ky0wLjQyMTUgICAgICAgICAgbWlnaHQgYmUgMS4wMTAzeCBmYXN0ZXIK
ICAgYWJjLXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAyOS4x
OTIwKy0xLjMxNzUgICAgICAgICAgIDI3LjkxMjgrLTAuNDExMCAgICAgICAgICBtaWdodCBiZSAx
LjA0NTh4IGZhc3RlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJkLWxvb3AgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIzLjUwNjYrLTIuMDMxMyAgICAgICAgICAgMjIuODg0MSstMS4xMTAxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDI3MnggZmFzdGVyCiAgIGFiYy1zaW1wbGUtZm9yd2FyZC1sb29wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjMuNzM3NCstMS44NDQ5ICAgICAgICAgICAyMi45MTg0
Ky0xLjI4MTQgICAgICAgICAgbWlnaHQgYmUgMS4wMzU3eCBmYXN0ZXIKICAgYWJjLXNraXBweS1s
b29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOS42NzcyKy0wLjg2NTEgICAg
ID8gICAgIDE5Ljk4ODQrLTAuOTE1OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTh4IHNsb3dlcgog
ICBhYnMtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjIx
OTArLTAuMDg2NSAgICAgICAgICAgIDIuMTkxNistMC4wOTkzICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEyNXggZmFzdGVyCiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQuMDU2MSstMS4wNjIxICAgICA/ICAgICAxNC41NzMwKy0wLjkzNDMgICAgICAg
ID8gbWlnaHQgYmUgMS4wMzY4eCBzbG93ZXIKICAgYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwg
ICAgICAgICAgICAgICAgICAgICAgICAgMS4wMjk5Ky0wLjA5NTIgICAgID8gICAgICAxLjAzMzkr
LTAuMDI0MSAgICAgICAgPwogICBhbGxvY2F0ZS1iaWctb2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjI4MzkrLTAuMDk4NCAgICAgPyAgICAgIDIuNDA5MystMC4wOTk4ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDU0OXggc2xvd2VyCiAgIGFwcGx5LW5vdC1hcHBseSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTQ3NystMC4wNzA5ICAgICA/ICAgICAgNC4y
ODE4Ky0wLjI2MDIgICAgICAgID8gbWlnaHQgYmUgMS4wMzIzeCBzbG93ZXIKICAgYXJndW1lbnRz
LW5hbWVkLWFuZC1yZWZsZWN0aXZlICAgICAgICAgICAgICAgICAgICAgNy40NDg2Ky0wLjA1NTYg
ICAgID8gICAgICA3LjUyODIrLTAuMTY0NiAgICAgICAgPyBtaWdodCBiZSAxLjAxMDd4IHNsb3dl
cgogICBhcmd1bWVudHMtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
LjM3MTMrLTAuNDE3MiAgICAgICAgICAgIDkuMjQ1OSstMC4zOTA2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEzNnggZmFzdGVyCiAgIGFyZ3VtZW50cy1zdHJpY3QtbW9kZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTQuNjMxNystMC42NjMzICAgICA/ICAgICAxNC43ODI4Ky0wLjMwODYgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTAzeCBzbG93ZXIKICAgYXJndW1lbnRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4xNzYxKy0wLjIwODUgICAgICAgICAgICA2LjEy
NjkrLTAuMDgxMiAgICAgICAgCiAgIGFyaXR5LW1pc21hdGNoLWlubGluaW5nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuNzk5OSstMC4wMzQ3ICAgICA/ICAgICAgMC44MjE1Ky0wLjA1Mjcg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjcweCBzbG93ZXIKICAgYXJyYXktYWNjZXNzLXBvbHltb3Jw
aGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgMy41OTk3Ky0wLjE0NjggICAgICAgICAgICAz
LjU2NjIrLTAuMTExMyAgICAgICAgCiAgIGFycmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2Vz
cyAgICAgICAgICAgICAgICAgMTkuMTgzMystMC45OTU0ICAgICA/ICAgICAyMS4xNTM0Ky0xLjQx
NTQgICAgICAgID8gbWlnaHQgYmUgMS4xMDI3eCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLWV2
ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2OC44ODc3Ky00LjAyMjYgICAgICAgICAg
IDY3LjYyNDErLTAuODI0MiAgICAgICAgICBtaWdodCBiZSAxLjAxODd4IGZhc3RlcgogICBhcnJh
eS1wcm90b3R5cGUtZm9yRWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgIDY3LjI5NzIrLTEu
MDYzMyAgICAgPyAgICAgNjcuNTE2MCstMS4yODMzICAgICAgICA/CiAgIGFycmF5LXByb3RvdHlw
ZS1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjcuMjY3MCstMC4zOTExICAgICA/
ICAgICA2Ny41OTY4Ky0xLjEzMDEgICAgICAgID8KICAgYXJyYXktcHJvdG90eXBlLXJlZHVjZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2Mi45MTEwKy0wLjIxODUgICAgICEgICAgIDY0LjI1
MjArLTEuMDY5MCAgICAgICAgISBkZWZpbml0ZWx5IDEuMDIxM3ggc2xvd2VyCiAgIGFycmF5LXBy
b3RvdHlwZS1yZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAgICAgICAgODcuMTAzMSstMS43NTIx
ICAgICAgICAgICA4NS45MTk4Ky0wLjQ3OTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTM4eCBmYXN0
ZXIKICAgYXJyYXktcHJvdG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
Ny43NDM5Ky0xLjUyMTYgICAgID8gICAgIDY3Ljc2OTMrLTAuNDQ0MSAgICAgICAgPwogICBhcnJh
eS1zcGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjMyNTYrLTAu
OTkxMSAgICAgXiAgICAgMTguNjk4MistMC43NDA1ICAgICAgICBeIGRlZmluaXRlbHkgMS4yNDc1
eCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtYWRkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi45OTk4Ky0wLjIwNjYgICAgICAgICAgICAyLjk4MjQrLTAuMDc0OCAgICAgICAgCiAg
IGFycmF5LXdpdGgtZG91YmxlLWluY3JlbWVudCAgICAgICAgICAgICAgICAgICAgICAgIDIuNjY2
MistMC4xNDQ2ICAgICAgICAgICAgMi42MTM2Ky0wLjA2NDEgICAgICAgICAgbWlnaHQgYmUgMS4w
MjAxeCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtbXVsLWFkZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy4zNjE3Ky0wLjExNTcgICAgICAgICAgICAzLjMzMzkrLTAuMDQ5NSAgICAgICAg
CiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NTgxMCstMC4xMTE4ICAgICAgICAgICAgMi41NjM3Ky0wLjA1NTEgICAgICAgIAogICBhcnJheS13
aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ3NzcrLTAuMTI4
NyAgICAgPyAgICAgIDQuNTgxMSstMC4yMDM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzMXggc2xv
d2VyCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAg
IDIuODI2MistMC4yOTI1ICAgICAgICAgICAgMi43MDAwKy0wLjE3NTQgICAgICAgICAgbWlnaHQg
YmUgMS4wNDY4eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9u
Zy1saXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDM3LjkxMzIrLTAuNjcxMSAgICAgICAgICAgMzcuMTM0MCstMC40NzI4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIxMHggZmFzdGVyCiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9jLWxv
bmctbGl2ZWQgICAgICAgICAgICAgMTQuNTAwOSstMC43MzQ0ICAgICA/ICAgICAxNC43NzI3Ky0x
LjIwMjggICAgICAgID8gbWlnaHQgYmUgMS4wMTg3eCBzbG93ZXIKICAgQXJyYXlCdWZmZXItSW50
MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAgICAgICAgMy40NzIxKy0wLjA5NjQgICAgID8g
ICAgICAzLjUxODQrLTAuMjk3MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNsb3dlcgogICBB
cnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM3LjcxODYrLTAuNDQy
NCAgICAgICAgICAgMzcuNTM1NCstMC4zMjIxICAgICAgICAKICAgQXJyYXlCdWZmZXItSW50OEFy
cmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuMTc4NystMC4xOTIwICAgICA/ICAgICAxOS44
MTk5Ky0wLjg5OTkgICAgICAgID8gbWlnaHQgYmUgMS4wMzM0eCBzbG93ZXIKICAgQXJyYXlCdWZm
ZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAxNC45MTIyKy0xLjUxNDQg
ICAgICAgICAgIDEzLjkwMzArLTEuNDI3NSAgICAgICAgICBtaWdodCBiZSAxLjA3MjZ4IGZhc3Rl
cgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MgICAgICAgICAgICAgICAgICAgICAgIDEy
LjU2MjUrLTAuODc4MSAgICAgICAgICAgMTIuMzg2NistMC4yODgzICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE0MnggZmFzdGVyCiAgIGFycm93ZnVuY3Rpb24tY2FsbC1pbi1jbGFzcy1jb25zdHJ1Y3Rv
ciAgICAgICAgICAgNTAuMzMwMSstMC4yMzI1ICAgICAgICAgICA1MC4zMTA0Ky0wLjI2MzkgICAg
ICAgIAogICBhcnJvd2Z1bmN0aW9uLWNhbGwtaW4tY2xhc3MtbWV0aG9kICAgICAgICAgICAgICAg
IDEzLjQwMDErLTAuNjcyNyAgICAgICAgICAgMTMuMzAzMSstMC4yNTI2ICAgICAgICAKICAgYXJy
b3dmdW5jdGlvbi1jYWxsLWluLWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAxMS41Njk5Ky0w
LjY3ODYgICAgID8gICAgIDExLjgyNTgrLTAuODU5NSAgICAgICAgPyBtaWdodCBiZSAxLjAyMjF4
IHNsb3dlcgogICBhcnJvd2Z1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4LjkyODgrLTAuNDU0MCAgICAgPyAgICAgIDguOTMyOSstMC4yNjUyICAgICAgICA/CiAg
IGFzbWpzX2Jvb2xfYnVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDcy
NystMC4xNzI2ICAgICAgICAgICAgNy4wNzE2Ky0wLjA5MzggICAgICAgIAogICBhc3NpZ24tY3Vz
dG9tLXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAyLjUzOTYrLTAuMTY4NiAg
ICAgPyAgICAgIDIuNjAxOSstMC4yNjM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0NXggc2xvd2Vy
CiAgIGFzc2lnbi1jdXN0b20tc2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
OTIxMystMC4zODMzICAgICAgICAgICAgMy42OTk0Ky0wLjA0OTEgICAgICAgICAgbWlnaHQgYmUg
MS4wNjAweCBmYXN0ZXIKICAgYmFzaWMtc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNi43ODg4Ky0wLjIzOTEgICAgICAgICAgICA2Ljc2ODcrLTAuMjgxMSAgICAg
ICAgCiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuOTI1OCstMC4wMjM0ICAgICA/ICAgICAgMy4wOTIyKy0wLjI2MDUgICAgICAgID8gbWlnaHQg
YmUgMS4wNTY5eCBzbG93ZXIKICAgYmlnc3dpdGNoLWluZGlyZWN0LXN5bWJvbC1vci11bmRlZmlu
ZWQgICAgICAgICAgIDIxNi41OTA3Ky0yLjA4MjAgICAgIF4gICAgIDc5LjM0MDErLTEuODQwOSAg
ICAgICAgXiBkZWZpbml0ZWx5IDIuNzI5OXggZmFzdGVyCiAgIGJpZ3N3aXRjaC1pbmRpcmVjdC1z
eW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgNjguMjU5NistMS4yODMxICAgICBeICAgICA1
Mi4zMjQwKy0wLjkyMzIgICAgICAgIF4gZGVmaW5pdGVseSAxLjMwNDZ4IGZhc3RlcgogICBiaWdz
d2l0Y2gtaW5kaXJlY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLjU1NjcrLTAu
OTAwNiAgICAgXiAgICAgMzkuNDA5MistMC42ODkwICAgICAgICBeIGRlZmluaXRlbHkgMS4yODI5
eCBmYXN0ZXIKICAgYmlnc3dpdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyMC4yOTM3Ky0wLjc5MTEgICAgID8gICAgIDIwLjQ1NzgrLTAuOTg4NSAgICAgICAgPwog
ICBib29sZWFuLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc1
MDcrLTAuMTU1OCAgICAgICAgICAgIDIuNzIwNCstMC4wNjI5ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDExMXggZmFzdGVyCiAgIGJvdW5kLWZ1bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuNDc0NCstMC40NzM5ICAgICAgICAgICAgOS4zMzE5Ky0wLjEwMzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTUzeCBmYXN0ZXIKICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy41NTQ2Ky0wLjEzMTEgICAgID8gICAgICAzLjU3ODgr
LTAuMTM3NyAgICAgICAgPwogICBicmFuY2gtb24tc3RyaW5nLWFzLWJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgIDEwLjE5MjUrLTAuOTEzMSAgICAgICAgICAgIDkuNzI5MCstMC43NDMyICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDQ3NnggZmFzdGVyCiAgIGJ1Zy0xNTM0MzEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTAzMistMC4wNDI4ICAgICA/ICAgICAgMi45
ODE2Ky0wLjA4NzkgICAgICAgID8gbWlnaHQgYmUgMS4wMjcweCBzbG93ZXIKICAgYnVpbGQtbGFy
Z2Utb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC44MzMwKy0wLjIxOTkg
ICAgICAgICAgIDI4LjgyMzQrLTAuMTg5NiAgICAgICAgCiAgIGJ5LXZhbC1nZW5lcmljICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDUxMSstMC4wMzgzICAgICA/ICAgICAg
NC4wOTUzKy0wLjE3ODUgICAgICAgID8gbWlnaHQgYmUgMS4wMTA5eCBzbG93ZXIKICAgY2FsbC1v
ci1ub3QtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOS41NDU4Ky0wLjI3
NzIgICAgID8gICAgIDI5LjkzNzUrLTAuNTA1NCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNs
b3dlcgogICBjYWxsLXNwcmVhZC1hcHBseSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIyLjA5OTgrLTAuNzg0OCAgICAgICAgICAgMjEuOTc2MCstMC43MzQ2ICAgICAgICAKICAgY2Fs
bC1zcHJlYWQtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS4xNjM3Ky0w
LjQxMjMgICAgICAgICAgIDI1LjA3ODArLTAuNjA3MSAgICAgICAgCiAgIGNhcHR1cmVkLWFzc2ln
bm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzAyNystMC4wMDk2ICAgICAg
ICAgICAgMC4yOTU3Ky0wLjAxMjYgICAgICAgICAgbWlnaHQgYmUgMS4wMjM3eCBmYXN0ZXIKICAg
Y2FzdC1pbnQtdG8tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43MzI2
Ky0wLjIzMjggICAgID8gICAgICA0Ljc0NDUrLTAuMjc0OSAgICAgICAgPwogICBjZWxsLWFyZ3Vt
ZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc0MTUrLTAuMTM5NyAg
ICAgICAgICAgIDIuNzEwOSstMC4yNjA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExM3ggZmFzdGVy
CiAgIGNmZy1zaW1wbGlmeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
NjM3NSstMC4wNjM2ICAgICA/ICAgICAgMi42NDg0Ky0wLjA2NTAgICAgICAgID8KICAgY2hhaW4t
Z2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC42MzQ2Ky0xLjEy
MzEgICAgICAgICAgIDEwLjAzODMrLTAuMTEzNiAgICAgICAgICBtaWdodCBiZSAxLjA1OTR4IGZh
c3RlcgogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4LjMzNDQrLTAuMzcxMCAgICAgICAgICAgIDguMTYwMystMC4yMjg3ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDIxM3ggZmFzdGVyCiAgIGNvbmNhdC1hcHBlbmQtb25lICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuOTc5MCstMC45MTY2ICAgICAgICAgICAgNi41NzU3Ky0wLjE1NDIg
ICAgICAgICAgbWlnaHQgYmUgMS4wNjEzeCBmYXN0ZXIKICAgY29uc3RhbnQtdGVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zMjk1Ky0wLjA5NDggICAgID8gICAgICA0
LjQyNDArLTAuMjI4MSAgICAgICAgPyBtaWdodCBiZSAxLjAyMTh4IHNsb3dlcgogICBjcmVhdGUt
bG90cy1vZi1mdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjMyMTYrLTAuNTEw
OCAgICAgICAgICAgIDguMTQ2NistMC4wODIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxNXggZmFz
dGVyCiAgIGNzZS1uZXctYXJyYXktYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuMTczMCstMC4yMDQyICAgICAgICAgICAgMi4xMDM4Ky0wLjAzOTIgICAgICAgICAgbWlnaHQg
YmUgMS4wMzI5eCBmYXN0ZXIKICAgY3NlLW5ldy1hcnJheSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi4yMzgwKy0wLjE5MzkgICAgICAgICAgICAyLjE2NTYrLTAuMDI5NiAg
ICAgICAgICBtaWdodCBiZSAxLjAzMzR4IGZhc3RlcgogICBjdXN0b20tc2V0dGVyLWdldHRlci1h
cy1wdXQtZ2V0LWJ5LWlkICAgICAgICAgICAgICAwLjQwNjIrLTAuMDI5OCAgICAgPyAgICAgIDAu
NDMyNystMC4xMjM2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDY1Mnggc2xvd2VyCiAgIERhdGFWaWV3
LWN1c3RvbS1wcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgNDIuMDAxNSstMS4xODMz
ICAgICAgICAgICA0MS4xOTA4Ky0wLjQ2NzIgICAgICAgICAgbWlnaHQgYmUgMS4wMTk3eCBmYXN0
ZXIKICAgZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1vZGUgICAgICAgICAgICAgICAg
NC4wNDkyKy0wLjM1NjEgICAgID8gICAgICA0LjExMDcrLTAuNDE1NyAgICAgICAgPyBtaWdodCBi
ZSAxLjAxNTJ4IHNsb3dlcgogICBkZWx0YWJsdWUtZm9yLW9mICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI4LjgwMTkrLTAuNTY3MSAgICAgICAgICAgMjguNzEzOCstMC41MjAxICAg
ICAgICAKICAgZGVsdGFibHVlLXZhcmFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyNy42NjcyKy0yLjk5OTcgICAgICAgICAgIDI2LjYxMDkrLTEuMDc0NyAgICAgICAgICBtaWdo
dCBiZSAxLjAzOTd4IGZhc3RlcgogICBkZXN0cnVjdHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQ5LjQ2MzkrLTAuODg5NCAgICAgPyAgICAgNTEuMTU0NCstMS4zODg0
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0Mnggc2xvd2VyCiAgIGRlc3RydWN0dXJpbmctcGFyYW1l
dGVycy1vdmVycmlkZGVuLWJ5LWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzc5NystMC4wMzAwICAgICAgICAgICAgMC4z
NzM1Ky0wLjAwODYgICAgICAgICAgbWlnaHQgYmUgMS4wMTY3eCBmYXN0ZXIKICAgZGVzdHJ1Y3R1
cmluZy1zd2FwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zMzE1Ky0wLjE4NDYg
ICAgICAgICAgICA0LjIyMzQrLTAuMDQyNSAgICAgICAgICBtaWdodCBiZSAxLjAyNTZ4IGZhc3Rl
cgogICBkaXJlY3QtYXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAx
LjA2MTIrLTAuMDc3OCAgICAgPyAgICAgIDEuMDkxNCstMC4xMTAwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDI4NXggc2xvd2VyCiAgIGRpcmVjdC1hcmd1bWVudHMtbGVuZ3RoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDYuMTYyMSstMC4yNTM4ICAgICA/ICAgICAgNi4zNzYwKy0wLjE5NjggICAg
ICAgID8gbWlnaHQgYmUgMS4wMzQ3eCBzbG93ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1vdmVycmlk
ZGVuLWxlbmd0aCAgICAgICAgICAgICAgICAgNi4zMzU0Ky0wLjMxNzUgICAgICAgICAgICA2LjI0
NjYrLTAuMjg5MyAgICAgICAgICBtaWdodCBiZSAxLjAxNDJ4IGZhc3RlcgogICBkaXJlY3QtYXJn
dW1lbnRzLXBvc3NpYmx5LW92ZXJyaWRkZW4tbGVuZ3RoICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjU1OCstMC4yMDQyICAgICAgICAg
ICAgNi40ODQwKy0wLjAzOTYgICAgICAgICAgbWlnaHQgYmUgMS4wMjY1eCBmYXN0ZXIKICAgZGl2
LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44OTYyKy0w
LjE3MzEgICAgICAgICAgICAzLjg0MjUrLTAuMDU0MiAgICAgICAgICBtaWdodCBiZSAxLjAxNDB4
IGZhc3RlcgogICBkaXYtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3LjEyMzYrLTAuMjAyMCAgICAgPyAgICAgIDcuNjMyMistMS4xNDc3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDcxNHggc2xvd2VyCiAgIGRvdWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMg
ICAgICAgICAgICAgICAgICAgIDQuMDUyMSstMC4xOTY2ICAgICAgICAgICAgMy45NzExKy0wLjEy
MDMgICAgICAgICAgbWlnaHQgYmUgMS4wMjA0eCBmYXN0ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1n
ZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgNy44Njc1Ky0wLjM0ODQgICAgICAgICAg
ICA3LjgwNzMrLTAuMjA5OCAgICAgICAgCiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQg
ICAgICAgICAgICAgICAgICAgICAgIDMuMzYxNCstMC4xODYyICAgICAgICAgICAgMy4zMzgwKy0w
LjE5MTYgICAgICAgIAogICBkb3VibGUtcmVhbC11c2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIzLjE0MzErLTEuOTYwMiAgICAgPyAgICAgMjQuNTY2NCstMy41ODE1ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDYxNXggc2xvd2VyCiAgIGRvdWJsZS10by1pbnQzMi10eXBlZC1hcnJh
eS1uby1pbmxpbmUgICAgICAgICAgICAgIDIuMTE3NCstMC4wMjg2ICAgICA/ICAgICAgMi4xOTkz
Ky0wLjE1ODggICAgICAgID8gbWlnaHQgYmUgMS4wMzg3eCBzbG93ZXIKICAgZG91YmxlLXRvLWlu
dDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgMi4wNzk3Ky0wLjEyOTggICAg
ICAgICAgICAyLjA0NzYrLTAuMDMwMSAgICAgICAgICBtaWdodCBiZSAxLjAxNTZ4IGZhc3Rlcgog
ICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAyLjIw
MDUrLTAuMDcwMCAgICAgPyAgICAgIDIuMjA4MCstMC4wNDQ3ICAgICAgICA/CiAgIGRvdWJsZS10
by11aW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgIDIuMjQzNystMC4xODU0
ICAgICAgICAgICAgMi4xNTE1Ky0wLjExNjAgICAgICAgICAgbWlnaHQgYmUgMS4wNDI4eCBmYXN0
ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAx
OS4yNjE4Ky0wLjY4ODkgICAgICAgICAgIDE5LjAxNjUrLTAuNTgyNSAgICAgICAgICBtaWdodCBi
ZSAxLjAxMjl4IGZhc3RlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIgICAgICAg
ICAgICAgICAgICAgIDIyLjg1OTArLTYuMDk5MCAgICAgPyAgICAgMjIuOTA5NSstNi41OTAxICAg
ICAgICA/CiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1jYWxsICAgICAgICAgICAgICAgICAg
ICAgMTYuNjY3MistMC42NTgyICAgICA/ICAgICAxNy4wODQzKy0xLjA4MDUgICAgICAgID8gbWln
aHQgYmUgMS4wMjUweCBzbG93ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10cmVlICAgICAgICAg
ICAgICAgICAgICAgICAgICAxOS44ODg0Ky0wLjcxNjAgICAgICAgICAgIDE5Ljc2NjArLTAuOTYy
NyAgICAgICAgCiAgIGVtcHR5LXN0cmluZy1wbHVzLWludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNDEwOCstMC4yMDU4ICAgICAgICAgICAgNC4zMDkyKy0wLjEzODQgICAgICAgICAg
bWlnaHQgYmUgMS4wMjM2eCBmYXN0ZXIKICAgZW1zY3JpcHRlbi1jdWJlMmhhc2ggICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMi42NTkwKy0wLjIwNDggICAgID8gICAgIDIyLjcxODErLTAu
NTY0MiAgICAgICAgPwogICBldmFsLWNvbXB1dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDI0LjIwOTMrLTEuNTA1MyAgICAgPyAgICAgMjQuNzM5NSstMS4zNTQ2ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIxOXggc2xvd2VyCiAgIGV2YWwtbm90LWV2YWwtY29tcHV0ZS1hcmdz
ICAgICAgICAgICAgICAgICAgICAgICAgMjMuMzg1MSstMS42MjU2ICAgICAgICAgICAyMi45MDQ4
Ky0wLjQ5NDUgICAgICAgICAgbWlnaHQgYmUgMS4wMjEweCBmYXN0ZXIKICAgZXZhbC1ub3QtZXZh
bC1jb21wdXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi44MDY5Ky0wLjk3NTUgICAg
ID8gICAgIDI0LjI4MjArLTEuMDY3OCAgICAgICAgPyBtaWdodCBiZSAxLjA2NDd4IHNsb3dlcgog
ICBleGl0LWxlbmd0aC1vbi1wbGFpbi1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICA4LjY3
NTUrLTAuMjQ5NyAgICAgICAgICAgIDguNjI1NistMC4yNDQyICAgICAgICAKICAgZXh0ZXJuYWwt
YXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgMS4xMjQ1Ky0wLjA1MTgg
ICAgICAgICAgICAxLjExMjkrLTAuMDU3NCAgICAgICAgICBtaWdodCBiZSAxLjAxMDR4IGZhc3Rl
cgogICBleHRlcm5hbC1hcmd1bWVudHMtcHV0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAy
LjIwMjgrLTAuMDQ5NyAgICAgICAgICAgIDIuMTk1NCstMC4xMTI5ICAgICAgICAKICAgZml4ZWQt
dHlwZWQtYXJyYXktc3RvcmFnZS12YXItaW5kZXggICAgICAgICAgICAgICAgMS4zMzk2Ky0wLjA0
NTggICAgICAgICAgICAxLjMzODErLTAuMDMzMSAgICAgICAgCiAgIGZpeGVkLXR5cGVkLWFycmF5
LXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDkxMSstMC4wMjQ5ICAgICA/ICAg
ICAgMS4xODM3Ky0wLjIxOTIgICAgICAgID8gbWlnaHQgYmUgMS4wODQ4eCBzbG93ZXIKICAgRmxv
YXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44MzE3Ky0w
LjE0NTEgICAgID8gICAgICA0LjgzNTIrLTAuMDg2OSAgICAgICAgPwogICBGbG9hdDMyQXJyYXkt
dG8tRmxvYXQ2NEFycmF5LXNldCAgICAgICAgICAgICAgICAgIDM5LjU1NjYrLTEuMjc2NSAgICAg
ICAgICAgMzkuMjk5OCstMS4xNzI5ICAgICAgICAKICAgRmxvYXQ2NEFycmF5LWFsbG9jLWxvbmct
bGl2ZWQgICAgICAgICAgICAgICAgICAgICA0OC44NjYzKy0wLjQxMTQgICAgID8gICAgIDQ5LjAw
NjYrLTAuMjUxNCAgICAgICAgPwogICBGbG9hdDY0QXJyYXktdG8tSW50MTZBcnJheS1zZXQgICAg
ICAgICAgICAgICAgICAgIDQzLjgwNzcrLTAuNTQ0MSAgICAgPyAgICAgNDQuMTMzMistMS41NzI5
ICAgICAgICA/CiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTEuOTcwMSstMC41Njk0ICAgICA/ICAgICAxMi4yMTU5Ky0wLjczOTkgICAgICAgID8g
bWlnaHQgYmUgMS4wMjA1eCBzbG93ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5
LW9mZnNldC1yYXJlLWludCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4LjM5MDMrLTEuMDA4OCAgICAgICAgICAgIDguMjg5NSstMS4wMjMy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMnggZmFzdGVyCiAgIGZvbGQtZ2V0LWJ5LWlkLXRvLW11
bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgIDYuMDk1NSstMC4yMTk5ICAgICAgICAgICAg
NS45NjU5Ky0wLjA0ODkgICAgICAgICAgbWlnaHQgYmUgMS4wMjE3eCBmYXN0ZXIKICAgZm9sZC1t
dWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40MTcxKy0xLjAxNTMgICAgICAg
ICAgICA0LjMwOTkrLTAuMzM2OCAgICAgICAgICBtaWdodCBiZSAxLjAyNDl4IGZhc3RlcgogICBm
b2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tcG9seS1nZXQtYnktb2Zmc2V0ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMTA5MSstMC4x
MzIxICAgICAgICAgICAgNC4wOTI3Ky0wLjE1NTggICAgICAgIAogICBmb2xkLW11bHRpLXB1dC1i
eS1vZmZzZXQtdG8tcG9seS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDk1NSstMC4xMTMxICAgICA/ICAgICAg
NC4xMzQxKy0wLjE3MjAgICAgICAgID8KICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXB1
dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy44Nzk0Ky0xLjQyNjMgICAgICAgICAgICAzLjIzMzArLTAuMDcyNiAgICAg
ICAgICBtaWdodCBiZSAxLjE5OTl4IGZhc3RlcgogICBmb2xkLW11bHRpLXB1dC1ieS1vZmZzZXQt
dG8tcmVwbGFjZS1vci10cmFuc2l0aW9uLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi40NDczKy0wLjI5MTEgICAg
ICAgICAgICA2LjMwODUrLTAuMTE4MiAgICAgICAgICBtaWdodCBiZSAxLjAyMjB4IGZhc3Rlcgog
ICBmb2xkLXB1dC1ieS1pZC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgICAgICAgICAgICA4LjY4
MTUrLTIuMjcwNiAgICAgPyAgICAgIDguNzY4NSstMi4zMjk0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEwMHggc2xvd2VyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN0cmluZy10by1tdWx0aS1wdXQt
Ynktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuNTk0MistMC4xMTk5ICAgICAgICAgICAgNi41MTg2Ky0wLjEyOTUgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTE2eCBmYXN0ZXIKICAgZm9sZC1wdXQtYnktdmFsLXdpdGgtc3ltYm9s
LXRvLW11bHRpLXB1dC1ieS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNy4yOTEzKy0xLjQ5NTAgICAgICAgICAgICA2LjQ5ODIr
LTAuMjAwMiAgICAgICAgICBtaWdodCBiZSAxLjEyMjF4IGZhc3RlcgogICBmb2xkLXB1dC1zdHJ1
Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc5MTMrLTEuNjkyNSAgICAg
ICAgICAgIDMuMDk0MSstMC4wNDE1ICAgICAgICAgIG1pZ2h0IGJlIDEuMjI1M3ggZmFzdGVyCiAg
IGZvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMgICAgICAgICAgICAgICAgICAgICAgIDguNDMx
MistMC40NzExICAgICAgICAgICAgOC4zODAyKy0wLjYwNzkgICAgICAgIAogICBmb3Itb2YtaXRl
cmF0ZS1hcnJheS1rZXlzICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc2NzkrLTAuMTIwMyAg
ICAgPyAgICAgIDMuOTAwNSstMC4xNDcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1Mnggc2xvd2Vy
CiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LXZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgIDMu
ODQ4NCstMC4zNDY0ICAgICAgICAgICAgMy44Mzc0Ky0wLjI4NzIgICAgICAgIAogICBmcmVlemUt
YW5kLWRvLXdvcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjAxODgrLTAuMTI0
NCAgICAgPyAgICAgMTIuNDA4OCstMC44NjY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMyNHggc2xv
d2VyCiAgIGZyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuMjkxMystMC4xNTc4ICAgICA/ICAgICAgOS40MDQ1Ky0wLjIxNjYgICAgICAgID8gbWlnaHQg
YmUgMS4wMTIyeCBzbG93ZXIKICAgZnRsLWxpYnJhcnktaW5saW5pbmctZGF0YXZpZXcgICAgICAg
ICAgICAgICAgICAgICA1OC42NDc5Ky0xLjU3MTYgICAgICAgICAgIDU3LjY1MzgrLTAuMzMyNyAg
ICAgICAgICBtaWdodCBiZSAxLjAxNzJ4IGZhc3RlcgogICBmdGwtbGlicmFyeS1pbmxpbmluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjY5ODArLTEuMjc3MiAgICAgICAgICAgMjEu
OTkxNCstMC44MjAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMXggZmFzdGVyCiAgIGZ0bC1wb2x5
bW9ycGhpYy1iaXRhbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjQuMzkxMystMC4zMjU2
ICAgICA/ICAgIDEyNC43MTM1Ky0xLjg0MjkgICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLWJp
dG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyNC40MDQ1Ky0yLjM4MzQgICAgICAgICAg
MTI0LjM1NzMrLTAuOTA4MyAgICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXR4b3IgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMjUuODM1NystMi42MDU1ICAgICAgICAgIDEyNC41MTI2Ky0z
LjI3MjMgICAgICAgICAgbWlnaHQgYmUgMS4wMTA2eCBmYXN0ZXIKICAgZnRsLXBvbHltb3JwaGlj
LWRpdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQzMy44NjUxKy01LjU4MDYgICAgICAg
ICAgNDMyLjcyMTgrLTEuMTA5NyAgICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1sc2hpZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxNTEuNDM2MistMi4zNTQyICAgICA/ICAgIDE1MS41ODY0
Ky0yLjA0NzYgICAgICAgID8KICAgZnRsLXBvbHltb3JwaGljLW11bCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIyMS4wMjkyKy0xLjM0NDkgICAgID8gICAgMjIzLjMxNTYrLTIuOTQxOCAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMDN4IHNsb3dlcgogICBmdGwtcG9seW1vcnBoaWMtcnNoaWZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUxLjAxNjArLTIuNTA5NSAgICAgPyAgICAxNTEu
OTMyNistMi41NjMyICAgICAgICA/CiAgIGZ0bC1wb2x5bW9ycGhpYy1TdHJpbmdGcm9tQ2hhckNv
ZGUgICAgICAgICAgICAgICAgMzkuOTUzMistMC4yMTg1ICAgICAgICAgICAzOS42NDkwKy0wLjI0
NTQgICAgICAgIAogICBmdGwtcG9seW1vcnBoaWMtc3ViICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTQ2LjA2OTYrLTEuNjcyMiAgICAgPyAgICAxNDcuNDIwOCstMC4zOTc2ICAgICAgICA/
CiAgIGZ0bC1wb2x5bW9ycGhpYy11cnNoaWZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAxNjIu
MjY0MistMC43NzU2ICAgICA/ICAgIDE2Mi44ODE4Ky0yLjAyOTEgICAgICAgID8KICAgZnVuY3Rp
b24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC41OTc5Ky0wLjYy
NzAgICAgID8gICAgIDExLjEyNzErLTEuMjQxNyAgICAgICAgPyBtaWdodCBiZSAxLjA0OTl4IHNs
b3dlcgogICBmdW5jdGlvbi1kb3QtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjgzMDErLTAuMDQ0MSAgICAgPyAgICAgIDEuOTMxNCstMC4yMjg2ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU1M3ggc2xvd2VyCiAgIGZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNDgxMCstMC4xMDgxICAgICAgICAgICAgMi40NDYwKy0wLjAyMzQg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTQzeCBmYXN0ZXIKICAgZnVuY3Rpb24td2l0aC1ldmFsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MS44ODQwKy0wLjEwMzAgICAgID8gICAgIDQy
LjUwNDgrLTAuNTQwMSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDh4IHNsb3dlcgogICBnY3NlLXBv
bHktZ2V0LWxlc3Mtb2J2aW91cyAgICAgICAgICAgICAgICAgICAgICAgIDE1LjE0NzErLTAuNjQ4
MiAgICAgICAgICAgMTQuNDIxNSstMC40MzEwICAgICAgICAgIG1pZ2h0IGJlIDEuMDUwM3ggZmFz
dGVyCiAgIGdjc2UtcG9seS1nZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTQuOTY2NSstMC43NDY4ICAgICAgICAgICAxNC43NzU1Ky0wLjM3MDAgICAgICAgICAgbWlnaHQg
YmUgMS4wMTI5eCBmYXN0ZXIKICAgZ2NzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy40NjM3Ky0wLjA3NzMgICAgIF4gICAgICAzLjMwNzMrLTAuMDc3NSAg
ICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ3M3ggZmFzdGVyCiAgIGdlbmVyYXRvci1jcmVhdGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNjg1MystMC4wNDE1ICAgICAgICAgICAg
MC42NDk1Ky0wLjAyNjIgICAgICAgICAgbWlnaHQgYmUgMS4wNTUxeCBmYXN0ZXIKICAgZ2VuZXJh
dG9yLWZpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5My4zOTU4Ky0xLjk4
NTMgICAgID8gICAgIDk0LjIzNjErLTguOTI1MSAgICAgICAgPwogICBnZW5lcmF0b3ItZnVuY3Rp
b24tY3JlYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ2OTIrLTAuNDQxOCAgICAgICAg
ICAgIDMuMzgyNSstMC4xNTY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1NnggZmFzdGVyCiAgIGdl
bmVyYXRvci1zdW5zcGlkZXItYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgIDUuNDUwMSst
MC4wNTgzICAgICA/ICAgICAgNS41NDg3Ky0wLjI2ODIgICAgICAgID8gbWlnaHQgYmUgMS4wMTgx
eCBzbG93ZXIKICAgZ2VuZXJhdG9yLXdpdGgtc2V2ZXJhbC10eXBlcyAgICAgICAgICAgICAgICAg
ICAgIDMwMi42NzA5Ky0xMS40ODI1ICAgID8gICAgMzEwLjU4MzArLTE2LjgyODAgICAgICAgPyBt
aWdodCBiZSAxLjAyNjF4IHNsb3dlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi4zMDA1Ky0wLjE5NDkgICAgICAgICAgICAyLjI3MjAr
LTAuMjEzNCAgICAgICAgICBtaWdodCBiZSAxLjAxMjV4IGZhc3RlcgogICBnZXQtYnktaWQtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI0NjIrLTAuMjc4OSAgICAgICAg
ICAgIDQuMjEyNCstMC4yOTI5ICAgICAgICAKICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJs
b2NrICAgICAgICAgICAgICAgICAgICAgMS44MzM0Ky0wLjA4OTUgICAgID8gICAgICAxLjg2OTgr
LTAuMTA3NSAgICAgICAgPyBtaWdodCBiZSAxLjAxOTh4IHNsb3dlcgogICBnZXQtYnktaWQtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgICAgICAgICAgICAyLjkzMjQrLTAuMjIwMCAgICAg
ICAgICAgIDIuODM5MystMC4xMDUzICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyOHggZmFzdGVyCiAg
IGdldC1ieS1pZC1wcm90by1vci1zZWxmICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMzY1
MSstMC4zODM2ICAgICA/ICAgICAgOS41MzE0Ky0wLjQzOTUgICAgICAgID8gbWlnaHQgYmUgMS4w
MTc4eCBzbG93ZXIKICAgZ2V0LWJ5LWlkLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi43NjMxKy0wLjIxOTMgICAgICAgICAgICAyLjcwMDMrLTAuMTE3NyAg
ICAgICAgICBtaWdodCBiZSAxLjAyMzN4IGZhc3RlcgogICBnZXQtYnktaWQtc2VsZi1vci1wcm90
byAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjM3MTErLTAuMzM5NCAgICAgPyAgICAgIDku
NjE2OSstMC4zODI3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI2Mnggc2xvd2VyCiAgIGdldC1ieS12
YWwtb3V0LW9mLWJvdW5kcyAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODI4MistMC4xNzIx
ICAgICA/ICAgICAgMy45NTM4Ky0wLjE2OTQgICAgICAgID8gbWlnaHQgYmUgMS4wMzI4eCBzbG93
ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjk2OTErLTAuMTA2OSAgICAgPyAgICAgIDIuOTg2OSstMC4wNzEy
ICAgICAgICA/CiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1LjkxNzIrLTAuMzYwMyAgICAgICAgICAgIDUuODY3MCstMC4zMzA3
ICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jayAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LjkzNDkrLTAuMTA5NSAgICAgICAgICAgIDEuODQ3NystMC4wNTY3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDQ3MnggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuNzIwNSstMC40NDgyICAgICAgICAgICAgNS41ODQxKy0wLjQ2ODkgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjQ0eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmICAgICAgICAgICAgICAgOS41NTcxKy0wLjI4NDggICAgICAgICAgICA4Ljk4
NzArLTAuOTMwMiAgICAgICAgICBtaWdodCBiZSAxLjA2MzR4IGZhc3RlcgogICBnZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy43NTg0Ky0wLjE1NjEgICAgICAgICAgICAzLjczMjcrLTAuMDcwMCAgICAgICAgCiAgIGdl
dC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90byAgICAgICAgICAgICAgIDkuNTQ1NSst
MC4yMDk2ICAgICAgICAgICAgOS4yNzY5Ky0xLjE0NzAgICAgICAgICAgbWlnaHQgYmUgMS4wMjkw
eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjU2NzArLTAuMDg3NyAgICAgPyAgICAgIDIuNTg4Mist
MC4wMzI2ICAgICAgICA/CiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4LjUwMzIrLTAuMjM2MyAgICAgICAgICAgIDguNDQ1MCst
MC4wNTIwICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1i
bG9jayAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxLjk0NDArLTAuMTI0MCAgICAgICAgICAgIDEuODYyNSstMC4wNDQ3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDQzOHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuNjEzNistMC4xNjc0ICAgICA/ICAgICAgNi42NzI4Ky0wLjIw
ODAgICAgICAgID8KICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmICAgICAg
ICAgICAgICAgOS41MDcwKy0wLjIxNDIgICAgICAgICAgICA4LjkzMjgrLTEuMDgxNSAgICAgICAg
ICBtaWdodCBiZSAxLjA2NDN4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yNTQ3Ky0wLjA2NDQg
ICAgID8gICAgICAzLjMxNjYrLTAuMTYyNCAgICAgICAgPyBtaWdodCBiZSAxLjAxOTB4IHNsb3dl
cgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICA5
LjM0ODMrLTEuMDkyMSAgICAgPyAgICAgIDkuNTQwNSstMC41ODk3ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIwNnggc2xvd2VyCiAgIGdldF9ieV92YWwtSW50MzJBcnJheSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuMTc5OSstMC4wNTEwICAgICAgICAgICAgMS4xMjU0Ky0wLjAwOTUgICAg
ICAgICAgbWlnaHQgYmUgMS4wNDg1eCBmYXN0ZXIKICAgZ2V0X2NhbGxlZV9tb25vbW9ycGhpYyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wNTgyKy0wLjA3MTMgICAgID8gICAgICAyLjA4
NzYrLTAuMTA3NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDN4IHNsb3dlcgogICBnZXRfY2FsbGVl
X3BvbHltb3JwaGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjA0MzgrLTAuMjE0MyAg
ICAgICAgICAgIDIuOTMyMystMC4wOTY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4MHggZmFzdGVy
CiAgIGdldHRlci1uby1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
Nzk2MystMC4wNTI4ICAgICAgICAgICAgMi43Nzc0Ky0wLjA3NjYgICAgICAgIAogICBnZXR0ZXIt
cHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjE3NzMrLTAuODc3
MCAgICAgICAgICAgIDQuNTA2MCstMC4xMzU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMTQ5MHggZmFz
dGVyCiAgIGdldHRlci1yaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA4
NDEuODU4MistNC4zNzUxICAgICA/ICAgIDg0Ni42MjkyKy0xMi45MTUyICAgICAgID8KICAgZ2V0
dGVyLXJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1OC40NDcwKy02
LjU5MzAgICAgICAgICAgIDU3LjI5OTQrLTUuNDQ2NSAgICAgICAgICBtaWdodCBiZSAxLjAyMDB4
IGZhc3RlcgogICBnZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjk3NTArLTAuMTE0NiAgICAgPyAgICAgIDMuMDYwMSstMC4xNDI4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI4Nnggc2xvd2VyCiAgIGdsb2JhbC1pc05hTiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDkuNzc3MystMC41NTQ5ICAgICA/ICAgICAgOS44NDkwKy0wLjUw
ODYgICAgICAgID8KICAgZ2xvYmFsLW9iamVjdC1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1zdHJ1Y3R1
cmUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNS4xNzM4Ky0wLjUzNTQgICAgICAgICAgICA0Ljg0NjArLTAuMTI4NiAgICAgICAgICBtaWdo
dCBiZSAxLjA2Nzd4IGZhc3RlcgogICBnbG9iYWwtdmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1v
cHQgICAgICAgICAgICAgICAwLjcwNzIrLTAuMDA4MCAgICAgPyAgICAgIDAuNzc1MistMC4wODY1
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDk2Mnggc2xvd2VyCiAgIGdsb2JhbC12YXItY29uc3QtaW5m
ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNzA1OCstMC4xMDMzICAgICAgICAgICAg
MC42NTgwKy0wLjA0MjYgICAgICAgICAgbWlnaHQgYmUgMS4wNzI2eCBmYXN0ZXIKICAgaGFyZC1v
dmVyZmxvdy1jaGVjay1lcXVhbCAgICAgICAgICAgICAgICAgICAgICAgICAyMy4wMjE0Ky0wLjcw
MDIgICAgICAgICAgIDIyLjM4NTkrLTAuNTI2MyAgICAgICAgICBtaWdodCBiZSAxLjAyODR4IGZh
c3RlcgogICBoYXJkLW92ZXJmbG93LWNoZWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDI0LjM3NjErLTEuMzQwOCAgICAgICAgICAgMjMuNjc4OCstMC42MzcxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI5NXggZmFzdGVyCiAgIEhhc2hNYXAtcHV0LWdldC1pdGVyYXRlLWtleXMgICAgICAg
ICAgICAgICAgICAgICAgMjEuMTcwMistMC4yOTE2ICAgICA/ICAgICAyMS45MTE0Ky0wLjU3ODYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMzUweCBzbG93ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJh
dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAyMS4wODI0Ky0wLjQ5MTQgICAgICAgICAgIDIw
Ljg3MTgrLTAuMzcwMyAgICAgICAgICBtaWdodCBiZSAxLjAxMDF4IGZhc3RlcgogICBIYXNoTWFw
LXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgIDIyLjMzNTMrLTAuMjY1
MyAgICAgPyAgICAgMjMuNTQxOCstMS4wNjkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDU0MHggc2xv
d2VyCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuNTEzNSstMC4xODYwICAgICA/ICAgICAgMy41NDkwKy0wLjE2NTEgICAgICAgID8gbWlnaHQg
YmUgMS4wMTAxeCBzbG93ZXIKICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZmZWN0ZnVs
LWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi44MTg2Ky0wLjE0NTggICAgID8gICAgICAyLjg2MDkrLTAuMDU5NSAgICAgICAgPyBt
aWdodCBiZSAxLjAxNTB4IHNsb3dlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVyZSAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjAyNzErLTAuMTMwOSAgICAgPyAgICAgIDIuMDgxOSstMC4y
MjY1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MHggc2xvd2VyCiAgIGltdWwtZG91YmxlLW9ubHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDM3NistMC4wMzA3ICAgICA/ICAg
ICAgMy4yMDA2Ky0wLjIyNzggICAgICAgID8gbWlnaHQgYmUgMS4wNTM3eCBzbG93ZXIKICAgaW11
bC1pbnQtb25seSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4xMzE0Ky0w
LjIzODUgICAgICAgICAgICA1LjExMDArLTAuNDM4MSAgICAgICAgCiAgIGltdWwtbWl4ZWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODMxMystMC4wNDIzICAgICA/
ICAgICAgMy4wOTI3Ky0wLjMwMDEgICAgICAgID8gbWlnaHQgYmUgMS4wOTIzeCBzbG93ZXIKICAg
aW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNy4wODky
Ky0xLjUzNDUgICAgID8gICAgIDE3LjA5MDMrLTEuNTI1MiAgICAgICAgPwogICBpbi1vbmUtY2Fz
ZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM0NTkrLTAuMjI2MiAg
ICAgICAgICAgIDcuMzMxMistMC4xMTk2ICAgICAgICAKICAgaW4tb25lLWNhc2UtdHJ1ZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4zNzU5Ky0wLjE2ODQgICAgICAgICAgICA3
LjMwNzErLTAuMTk4NCAgICAgICAgCiAgIGluLXR3by1jYXNlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuNDExMystMC4xNDIzICAgICA/ICAgICAgNy41Mzg4Ky0wLjMz
MzYgICAgICAgID8gbWlnaHQgYmUgMS4wMTcyeCBzbG93ZXIKICAgaW5kZXhlZC1wcm9wZXJ0aWVz
LWluLW9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgMi42OTM3Ky0wLjMwMDQgICAgICAgICAg
ICAyLjY3MTArLTAuMTUwNCAgICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Yt
bm8taW5saW5lICAgICAgICAgICAgIDIuOTcxMSstMC4xNDgxICAgICA/ICAgICAgMy4wMjA1Ky0w
LjE1MTIgICAgICAgID8gbWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1j
b25zdC10aGVuLW1vdiAgICAgICAgICAgICAgICAgICAgICAgNi41NTMzKy0wLjA3NzggICAgID8g
ICAgICA2LjcyODErLTAuMjkxMiAgICAgICAgPyBtaWdodCBiZSAxLjAyNjd4IHNsb3dlcgogICBp
bmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZSAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjE2NzArLTAu
NjE3NSAgICAgICAgICAgMTAuMTM1NSstMC4yNzA1ICAgICAgICAKICAgaW5mZXItY2xvc3VyZS1j
b25zdC10aGVuLXB1dC10by1zY29wZSAgICAgICAgICAgICAyMS43ODY0Ky0wLjQxNTIgICAgID8g
ICAgIDIyLjM2OTQrLTEuNTkzOSAgICAgICAgPyBtaWdodCBiZSAxLjAyNjh4IHNsb3dlcgogICBp
bmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcmVlbnRlci1uby1pbmxpbmUgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ni4zNzAwKy0wLjA5OTcg
ICAgID8gICAgIDQ2LjUyMDErLTAuMzE2MSAgICAgICAgPwogICBpbmZlci1jbG9zdXJlLWNvbnN0
LXRoZW4tcmVlbnRlciAgICAgICAgICAgICAgICAgIDIxLjc2NDArLTAuMzk3MSAgICAgPyAgICAg
MjEuOTU3NCstMC40MTMxICAgICAgICA/CiAgIGluZmVyLWNvbnN0YW50LWdsb2JhbC1wcm9wZXJ0
eSAgICAgICAgICAgICAgICAgICAgIDIuNTE3MystMC4xMTMxICAgICA/ICAgICAgMi41OTEyKy0w
LjE5MzYgICAgICAgID8gbWlnaHQgYmUgMS4wMjk0eCBzbG93ZXIKICAgaW5mZXItY29uc3RhbnQt
cHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wNTkxKy0wLjEyMDYgICAgID8g
ICAgICAyLjA5MzcrLTAuMTE0MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNjh4IHNsb3dlcgogICBp
bmZlci1vbmUtdGltZS1jbG9zdXJlLXRlbi12YXJzICAgICAgICAgICAgICAgICAgICA2LjM0MzYr
LTAuMjE0NiAgICAgICAgICAgIDYuMTQ0OSstMC4xMjYwICAgICAgICAgIG1pZ2h0IGJlIDEuMDMy
M3ggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdHdvLXZhcnMgICAgICAgICAgICAg
ICAgICAgIDUuOTE2OSstMC4wOTQ1ICAgICAgICAgICAgNS44NTA3Ky0wLjE0NTEgICAgICAgICAg
bWlnaHQgYmUgMS4wMTEzeCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS43OTM3Ky0wLjExODYgICAgICAgICAgICA1Ljc0NDcrLTAu
MDQ4NSAgICAgICAgCiAgIGluZmVyLW9uZS10aW1lLWRlZXAtY2xvc3VyZSAgICAgICAgICAgICAg
ICAgICAgICAgMTAuNjcxOSstMC4xODEwICAgICA/ICAgICAxMC43NDI1Ky0wLjM1NjUgICAgICAg
ID8KICAgaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAg
My4yODUwKy0wLjE2MzUgICAgID8gICAgICAzLjQ5MjErLTAuMTgxNiAgICAgICAgPyBtaWdodCBi
ZSAxLjA2MzB4IHNsb3dlcgogICBpbmxpbmUtYXJndW1lbnRzLWFsaWFzZWQtYWNjZXNzICAgICAg
ICAgICAgICAgICAgICAzLjI5MDQrLTAuMTg3MSAgICAgPyAgICAgIDMuMjkxNSstMC4xMzA2ICAg
ICAgICA/CiAgIGlubGluZS1hcmd1bWVudHMtbG9jYWwtZXNjYXBlICAgICAgICAgICAgICAgICAg
ICAgIDMuMzU5MCstMC4yMTMxICAgICA/ICAgICAgMy40NTg3Ky0wLjA1NTUgICAgICAgID8gbWln
aHQgYmUgMS4wMjk3eCBzbG93ZXIKICAgaW5saW5lLWdldC1zY29wZWQtdmFyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi4xMTgzKy0wLjA3MjUgICAgICAgICAgICAyLjExMTArLTAuMDk3
NyAgICAgICAgCiAgIGlubGluZWQtcHV0LWJ5LWlkLXRyYW5zaXRpb24gICAgICAgICAgICAgICAg
ICAgICAgIDYuOTI0OSstMC4yMjc4ICAgICA/ICAgICAgNy4yMzAyKy0wLjMxODggICAgICAgID8g
bWlnaHQgYmUgMS4wNDQxeCBzbG93ZXIKICAgaW5saW5lZC1wdXQtYnktdmFsLXdpdGgtc3RyaW5n
LXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzNi42MjE5Ky0wLjMxNjMgICAgIF4gICAgIDM1LjkyODkrLTAuMzI4NiAgICAg
ICAgXiBkZWZpbml0ZWx5IDEuMDE5M3ggZmFzdGVyCiAgIGlubGluZWQtcHV0LWJ5LXZhbC13aXRo
LXN5bWJvbC10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzYuNDI4NCstMC4yMDM3ICAgICBeICAgICAzNi4wMDM0Ky0wLjIw
MjMgICAgICAgIF4gZGVmaW5pdGVseSAxLjAxMTh4IGZhc3RlcgogICBpbnN0YW5jZW9mLWJvdW5k
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjUxMTYrLTAuMzc3OSAgICAgPyAg
ICAgMjAuNDgzOCstMi4xNzQ5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ5OHggc2xvd2VyCiAgIGlu
dC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuODYyOCst
MC4wMzEyICAgICA/ICAgICAgMy44NjM5Ky0wLjA0NDUgICAgICAgID8KICAgaW50LW9yLW90aGVy
LWFicy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAxNC45OTQzKy0xLjA0NzAgICAg
ID8gICAgIDE1LjE1NTMrLTEuMTkzMiAgICAgICAgPyBtaWdodCBiZSAxLjAxMDd4IHNsb3dlcgog
ICBpbnQtb3Itb3RoZXItYWRkLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjgy
NDErLTAuMjA4NyAgICAgICAgICAgIDMuNzA0NystMC4wOTIxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMyMnggZmFzdGVyCiAgIGludC1vci1vdGhlci1hZGQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuNTM4MCstMC4xOTM2ICAgICAgICAgICAgNC40NjU4Ky0wLjExNzcgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTYyeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWRpdi10aGVuLWdldC1i
eS12YWwgICAgICAgICAgICAgICAgICAgMy4zNTE3Ky0wLjA4NzkgICAgID8gICAgICAzLjM5NjQr
LTAuMTc4MCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNsb3dlcgogICBpbnQtb3Itb3RoZXIt
bWF4LXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjUxNTcrLTAuMDU5MSAgICAg
PyAgICAgIDMuNTY0MSstMC4xMTk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzOHggc2xvd2VyCiAg
IGludC1vci1vdGhlci1taW4tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNDI2
NistMC4xNTg1ICAgICAgICAgICAgMy4zMjgzKy0wLjA2MzMgICAgICAgICAgbWlnaHQgYmUgMS4w
Mjk1eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW1vZC10aGVuLWdldC1ieS12YWwgICAgICAgICAg
ICAgICAgICAgMy4yMDc4Ky0wLjA4NTkgICAgICAgICAgICAzLjE3NDYrLTAuMDM0NyAgICAgICAg
ICBtaWdodCBiZSAxLjAxMDR4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbXVsLXRoZW4tZ2V0LWJ5
LXZhbCAgICAgICAgICAgICAgICAgICA0Ljg4OTcrLTAuMDY1NCAgICAgPyAgICAgIDQuOTYzMyst
MC4xNDcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2VyCiAgIGludC1vci1vdGhlci1u
ZWctdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuODQ2NCstMC4xMTM3ICAgICA/
ICAgICAgMy45ODA4Ky0wLjMxMjggICAgICAgID8gbWlnaHQgYmUgMS4wMzQ5eCBzbG93ZXIKICAg
aW50LW9yLW90aGVyLW5lZy16ZXJvLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAxNS42NjMz
Ky0xLjUxNzMgICAgICAgICAgIDE1LjMzODQrLTEuMDEyNyAgICAgICAgICBtaWdodCBiZSAxLjAy
MTJ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItc3ViLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICA1Ljg0OTkrLTAuNDY3OSAgICAgICAgICAgIDUuNjY2NistMC4xOTI4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDMyM3ggZmFzdGVyCiAgIGludC1vci1vdGhlci1zdWIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQuMDE3MCstMC4xNjM1ICAgICAgICAgICAgNC4wMTY1Ky0w
LjI5MjYgICAgICAgIAogICBpbnQtb3ZlcmZsb3ctbG9jYWwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjYzMDcrLTAuMDkyNyAgICAgPyAgICAgIDMuNjY2OSstMC4yNDc2ICAgICAg
ICA/CiAgIEludDE2QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAg
MzguMzM3MistMC42MjE2ICAgICAgICAgICAzOC4xMzA1Ky0wLjIzMTMgICAgICAgIAogICBJbnQx
NkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgIDE1Ljc0NTUrLTEu
NDIxMCAgICAgICAgICAgMTQuNzcyMistMC42MTU5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY1OXgg
ZmFzdGVyCiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTYuNDI0MCstMC44OTQyICAgICAgICAgICAxNi4wMTQ5Ky0wLjY3ODkgICAgICAgICAgbWln
aHQgYmUgMS4wMjU1eCBmYXN0ZXIKICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMS42OTkwKy0wLjEzNzAgICAgICAgICAgICAxLjU3MDUrLTAuMDA3
MSAgICAgICAgICBtaWdodCBiZSAxLjA4MTh4IGZhc3RlcgogICBJbnQxNkFycmF5LXRvLUludDMy
QXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICAgIDM0LjY5NTcrLTAuODgxMCAgICAgPyAgICAg
MzUuNjUyNSstMi4wNTI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Nnggc2xvd2VyCiAgIEludDMy
QXJyYXktYWxsb2MtbGFyZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMTI3NSstMC40
NzMyICAgICA/ICAgICAxMi4xNDgxKy0wLjQyNzAgICAgICAgID8KICAgSW50MzJBcnJheS1hbGxv
Yy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA0MS45NTc3Ky0wLjI2ODAgICAgID8g
ICAgIDQyLjM5NTcrLTEuMDYyOSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDR4IHNsb3dlcgogICBJ
bnQzMkFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ2MDcr
LTAuMTAyMCAgICAgPyAgICAgIDIuNDg0MSstMC4xMDE1ICAgICAgICA/CiAgIEludDMyQXJyYXkt
SW50OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAgICAgICAgIDYuMTkzOCstMC4wODk5ICAg
ICA/ICAgICAgNi4xOTU4Ky0wLjE4MDEgICAgICAgID8KICAgaW50NTItc3BpbGwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41NzkwKy0wLjA2NDIgICAgID8gICAgICA0
LjY2NTArLTAuMTUxMyAgICAgICAgPyBtaWdodCBiZSAxLjAxODh4IHNsb3dlcgogICBJbnQ4QXJy
YXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgIDM1LjA2ODUrLTAuNzMw
OSAgICAgICAgICAgMzQuODMxNCstMC4zMDM3ICAgICAgICAKICAgSW50OEFycmF5LWxvYWQtd2l0
aC1ieXRlTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgMy4yNjU5Ky0wLjA5NjIgICAgID8gICAg
ICAzLjQwMzArLTAuMjExNCAgICAgICAgPyBtaWdodCBiZSAxLjA0MjB4IHNsb3dlcgogICBJbnQ4
QXJyYXktbG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjI4MzIrLTAu
MTAwOSAgICAgPyAgICAgIDMuMjg2NystMC4wNjc0ICAgICAgICA/CiAgIGludGVnZXItZGl2aWRl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNzg2NystMC40MzMwICAgICAg
ICAgICAgOS43MTcxKy0wLjIxMjIgICAgICAgIAogICBpbnRlZ2VyLW1vZHVsbyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg3NDkrLTAuMTQ0MCAgICAgPyAgICAgIDEuODg0
NCstMC4xNDYyICAgICAgICA/CiAgIGlzLWJvb2xlYW4tZm9sZC10cmlja3kgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNzE1OSstMC4xNTQ1ICAgICAgICAgICAgMi42ODQ0Ky0wLjE5ODMg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTE3eCBmYXN0ZXIKICAgaXMtYm9vbGVhbi1mb2xkICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45OTg0Ky0wLjExMzMgICAgICAgICAgICAx
Ljk4MDYrLTAuMDU0NiAgICAgICAgCiAgIGlzLWZ1bmN0aW9uLWZvbGQtdHJpY2t5LWludGVybmFs
LWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuMDAxMSstMC4xMDE0ICAgICA/ICAgICAgOS4zNzUwKy0wLjQzNTMgICAgICAg
ID8gbWlnaHQgYmUgMS4wNDE1eCBzbG93ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlja3kgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi45MzM1Ky0wLjI5NzEgICAgICAgICAgICAyLjg2MzYr
LTAuMDYzNSAgICAgICAgICBtaWdodCBiZSAxLjAyNDR4IGZhc3RlcgogICBpcy1mdW5jdGlvbi1m
b2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjAwMzcrLTAuMTAxMyAgICAg
PyAgICAgIDIuMDA5OSstMC4wOTEzICAgICAgICA/CiAgIGlzLW51bWJlci1mb2xkLXRyaWNreSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzA3OSstMC4wNDQwICAgICA/ICAgICAgMi43
NjMzKy0wLjEwMzEgICAgICAgID8gbWlnaHQgYmUgMS4wMjA1eCBzbG93ZXIKICAgaXMtbnVtYmVy
LWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS45ODgyKy0wLjA2NTMg
ICAgID8gICAgICAyLjAxNjgrLTAuMDk4MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDR4IHNsb3dl
cgogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkLWZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAy
LjE0MTgrLTAuMTE4NCAgICAgICAgICAgIDIuMDM0NystMC4xNTk1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDUyNnggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtbGVzcy10cmlja3kgICAg
ICAgICAgICAgICAgIDIuODY5NSstMC4xNjAwICAgICAgICAgICAgMi44MDg3Ky0wLjE0ODcgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjE3eCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtZm9sZC10
cmlja3kgICAgICAgICAgICAgICAgICAgICAgMy4wOTkzKy0wLjEyNzQgICAgICAgICAgICAzLjAx
ODQrLTAuMDMzNiAgICAgICAgICBtaWdodCBiZSAxLjAyNjh4IGZhc3RlcgogICBpcy1vYmplY3Qt
b3ItbnVsbC1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjAxODYrLTAuMDU3MCAg
ICAgICAgICAgIDEuOTc5MCstMC4wMjk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwMHggZmFzdGVy
CiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNraWVyLWZ1bmN0aW9uICAgICAgICAgICAgICAgIDIu
ODE2NystMC4wNDc2ICAgICAgICAgICAgMi43OTgwKy0wLjA0MzQgICAgICAgIAogICBpcy1vYmpl
Y3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjE1ODMrLTAuMTQxNCAgICAg
ICAgICAgIDkuMTA3NSstMC4xMTU0ICAgICAgICAKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5
LWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgMi43NjExKy0wLjA2NDEgICAgID8gICAgICAyLjgz
MjYrLTAuMTE2MCAgICAgICAgPyBtaWdodCBiZSAxLjAyNTl4IHNsb3dlcgogICBpcy1vYmplY3Qt
b3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi40OTQ3Ky0wLjIxNjUgICAgICAgICAg
ICA2LjIxODErLTAuMDYzNyAgICAgICAgICBtaWdodCBiZSAxLjA0NDV4IGZhc3RlcgogICBpcy1z
dHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjcyNzcrLTAu
MTAwNyAgICAgICAgICAgIDIuNjk1MSstMC4xMDYzICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyMXgg
ZmFzdGVyCiAgIGlzLXN0cmluZy1mb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuOTk2MCstMC4wNTQ4ICAgICA/ICAgICAgMi4wMTQyKy0wLjEwMDIgICAgICAgID8KICAg
aXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4zODYx
Ky0wLjA1NzQgICAgID8gICAgICAyLjM5NzIrLTAuMDY1NCAgICAgICAgPwogICBpcy11bmRlZmlu
ZWQtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk2OTIrLTAuMDYwOCAg
ICAgPyAgICAgIDEuOTkwNCstMC4wNDgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwN3ggc2xvd2Vy
CiAgIEpTT05QLW5lZ2F0aXZlLTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
MTgyNystMC4wMDc2ICAgICA/ICAgICAgMC4xODQwKy0wLjAxNzAgICAgICAgID8KICAgbGFyZ2Ut
aW50LWNhcHR1cmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xODI1Ky0wLjA3
NzMgICAgID8gICAgICAzLjI0ODQrLTAuMDk2MiAgICAgICAgPyBtaWdodCBiZSAxLjAyMDd4IHNs
b3dlcgogICBsYXJnZS1pbnQtbmVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA4Ljg3NDgrLTAuMzIwNCAgICAgPyAgICAgIDguOTY3MCstMC40MjYxICAgICAgICA/IG1pZ2h0
IGJlIDEuMDEwNHggc2xvd2VyCiAgIGxhcmdlLWludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDguMDI0MystMC41MzYzICAgICAgICAgICAgNy45NDM4Ky0wLjY3NTQg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTAxeCBmYXN0ZXIKICAgbGF6eS1hcnJheS1zcGVjaWVzLXdh
dGNocG9pbnRzICAgICAgICAgICAgICAgICAgICAyMS44MDkyKy0xLjIzMTEgICAgIF4gICAgIDE5
Ljk4MzYrLTAuNTgyNyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDkxNHggZmFzdGVyCiAgIGxpY20t
ZHJhZ29ucy1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgMzAuMjA3OCstMC43
Mjc5ICAgICAgICAgICAzMC4xNDA5Ky0wLjU2NzggICAgICAgIAogICBsaWNtLWRyYWdvbnMtb3Zl
cmZsb3cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjAwMjkrLTAuODc0OSAgICAgPyAg
ICAgMTguNDM1MistMS42NjU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0MHggc2xvd2VyCiAgIGxp
Y20tZHJhZ29ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuNTgyMyst
MC4zNzAyICAgICAgICAgICAzNC4zMDU3Ky0wLjU2OTAgICAgICAgIAogICBsb2FkLXZhcmFyZ3Mt
ZWxpbWluYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjQ0NTkrLTEuOTQ3NyAgICAg
ICAgICAgMTguNTgwMistMS41NzE4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2NnggZmFzdGVyCiAg
IGxvY2FsZS1jb21wYXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuMjU2
NystMS40MDcwICAgICAgICAgICAyMi4wMzgyKy0xLjM3NTEgICAgICAgIAogICBsb2dpY2FsLW5v
dC13ZWlyZC10eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ3OTErLTAuMDkwNSAg
ICAgICAgICAgIDIuNDI3OSstMC4xMTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMXggZmFzdGVy
CiAgIGxvZ2ljYWwtbm90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NTIwMCstMC4wODA2ICAgICA/ICAgICAgMy41NTkwKy0wLjIzNDYgICAgICAgID8gbWlnaHQgYmUg
MS4wMTExeCBzbG93ZXIKICAgbG90cy1vZi1maWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOC4xNjI0Ky0wLjQ5MjYgICAgICAgICAgICA3Ljk0MzQrLTAuMTM4NCAgICAg
ICAgICBtaWdodCBiZSAxLjAyNzZ4IGZhc3RlcgogICBtYWtlLWluZGV4ZWQtc3RvcmFnZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM4MzYrLTAuMzAxNiAgICAgPyAgICAgIDIuNTAz
MSstMC4wODMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDUwMXggc2xvd2VyCiAgIG1ha2Utcm9wZS1j
c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTIwNSstMC4wNTI0ICAg
ICA/ICAgICAgMy4xNDE0Ky0wLjA2NDAgICAgICAgID8KICAgbWFueS1mb3JlYWNoLWNhbGxzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40MjA5Ky0wLjE0OTAgICAgICAgICAgICAy
LjM0NTcrLTAuMDE0OCAgICAgICAgICBtaWdodCBiZSAxLjAzMjB4IGZhc3RlcgogICBtYW55LXJl
cGVhdC1zdG9yZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Ljk1MzQrLTAuNjc0
NSAgICAgPyAgICAgMTUuNzk2MCstMS4wMDczICAgICAgICA/IG1pZ2h0IGJlIDEuMDU2M3ggc2xv
d2VyCiAgIG1hcC1mb3ItZWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMzgxNSstMC4wNTI4ICAgICA/ICAgICAgNC40OTEwKy0wLjA5MTYgICAgICAgID8gbWlnaHQg
YmUgMS4wMjUweCBzbG93ZXIKICAgbWFwLWZvci1vZiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNy41MjY4Ky0xLjM4NjMgICAgID8gICAgIDE3LjkxMjIrLTAuNzEwMiAg
ICAgICAgPyBtaWdodCBiZSAxLjAyMjB4IHNsb3dlcgogICBtYXJzYWdsaWEtbGFyZ2VyLWludHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYxLjk4MTUrLTAuMzY0NSAgICAgPyAgICAgNjIu
NTkzOCstMS43NjI1ICAgICAgICA/CiAgIG1hcnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTYuOTc1OCstMS42NTQ4ICAgICAgICAgICAxNi4yOTU4Ky0wLjc5
ODcgICAgICAgICAgbWlnaHQgYmUgMS4wNDE3eCBmYXN0ZXIKICAgbWF0aC1yYW5kb20gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC45MjM4Ky0xLjAwMzcgICAgICAgICAg
IDEzLjkzMDArLTEuMDgzOCAgICAgICAgICBtaWdodCBiZSAxLjA3MTN4IGZhc3RlcgogICBtYXRo
LXRydW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjMxNTMrLTAu
MTA4MCAgICAgICAgICAgIDUuMjg5MSstMC4xMjMzICAgICAgICAKICAgbWF0aC13aXRoLW91dC1v
Zi1ib3VuZHMtYXJyYXktdmFsdWVzICAgICAgICAgICAgICAyNi43NDY5Ky0xLjgzOTMgICAgICAg
ICAgIDI2LjYxMDYrLTEuMzA0OSAgICAgICAgCiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTQwMystMC4xMTA4ICAgICA/ICAgICAgMi4xNTI0
Ky0wLjEwODEgICAgICAgID8KICAgbWVnYW1vcnBoaWMtbG9hZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyNi43MTY1Ky0yLjg3NzggICAgID8gICAgIDI3LjYzMDQrLTIuOTc0NSAg
ICAgICAgPyBtaWdodCBiZSAxLjAzNDJ4IHNsb3dlcgogICBtZXRob2Qtb24tbnVtYmVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjYxNjIrLTAuNzgwNCAgICAgPyAgICAgMTQu
OTk1MCstMC45OTM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1OXggc2xvd2VyCiAgIG1pbi1ib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjE3OCstMC4xNjE1
ICAgICAgICAgICAgMi4xMTc2Ky0wLjA3NDYgICAgICAgICAgbWlnaHQgYmUgMS4wNDczeCBmYXN0
ZXIKICAgbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi4yNzc4Ky0wLjE4NjcgICAgICAgICAgICAyLjI1NjUrLTAuMDk0MyAgICAgICAgCiAgIG1pbnVz
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTA5MSstMC4w
NzI1ICAgICA/ICAgICAgMS45ODk0Ky0wLjE3MDcgICAgICAgID8gbWlnaHQgYmUgMS4wNDIxeCBz
bG93ZXIKICAgbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMCAgICAgICAgICAgICAgICAgICAgICAg
MzcwMS42NDMzKy05LjM0MDcgICAgID8gICAzNzEwLjY2NjUrLTE4LjIzMTkgICAgICAgPwogICBt
aXNjLXN0cmljdC1lcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjA3MDgr
LTAuNTM3MyAgICAgPyAgICAgMTguNjg5OSstMS4yOTY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0
M3ggc2xvd2VyCiAgIG1vZC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDguNzk2MCstMC4yNTk1ICAgICAgICAgICAgOC43NTI4Ky0wLjI3MjYgICAgICAgIAog
ICBtb2QtYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjYw
NzMrLTAuMDkxMCAgICAgPyAgICAgIDYuNjkzMistMC4yMDM1ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEzMHggc2xvd2VyCiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuNTYyNSstMC4wODI3ICAgICA/ICAgICAgMi41OTA3Ky0wLjIyOTQgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTEweCBzbG93ZXIKICAgbXVsLWJvb2xlYW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi4zMTgzKy0wLjE0NTEgICAgICAgICAgICAyLjI2MzUr
LTAuMTM3NCAgICAgICAgICBtaWdodCBiZSAxLjAyNDJ4IGZhc3RlcgogICBuZWctYm9vbGVhbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjIyOTErLTAuMDUyNCAgICAg
PyAgICAgIDIuMzM2NystMC4xNzcwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4Mnggc2xvd2VyCiAg
IG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjkw
MystMC4wMDc2ICAgICA/ICAgICAgMC4zMDE5Ky0wLjAyNDAgICAgICAgID8gbWlnaHQgYmUgMS4w
NDAxeCBzbG93ZXIKICAgbmVnYXRpdmUtemVyby1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4zMTE0Ky0wLjAxNDUgICAgICAgICAgICAwLjMwNTcrLTAuMDEyMiAgICAgICAg
ICBtaWdodCBiZSAxLjAxODZ4IGZhc3RlcgogICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjI4ODMrLTAuMDEwMSAgICAgPyAgICAgIDAuMjk3Myst
MC4wMTgyICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxMnggc2xvd2VyCiAgIG5lc3RlZC1mdW5jdGlv
bi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEuNjQxOSstMC43MjQ1ICAgICAg
ICAgICAzMS41ODE3Ky0wLjUwMDQgICAgICAgIAogICBuZXctYXJyYXktYnVmZmVyLWRlYWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDczLjI3NDgrLTAuOTk0MCAgICAgICAgICAgNzIuNTY4
MistMC43MTI5ICAgICAgICAKICAgbmV3LWFycmF5LWJ1ZmZlci1wdXNoICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC44MDE2Ky0wLjM2NzUgICAgICAgICAgICA0LjY1MjIrLTAuMDU2MSAg
ICAgICAgICBtaWdodCBiZSAxLjAzMjF4IGZhc3RlcgogICBuZXctYXJyYXktZGVhZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjQzOTUrLTAuMTQxNyAgICAgICAgICAgIDYu
MzE0NystMC4wODY0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5OHggZmFzdGVyCiAgIG5ldy1hcnJh
eS1wdXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTMxNSstMC4xMTYx
ICAgICA/ICAgICAgMi45Njg1Ky0wLjE0MDMgICAgICAgID8gbWlnaHQgYmUgMS4wMTI2eCBzbG93
ZXIKICAgbm8taW5saW5lLWNvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
OC4xMzIyKy0wLjE0NDcgICAgID8gICAgIDI4LjIxODcrLTAuMjYxOSAgICAgICAgPwogICBOdW1i
ZXItaXNOYU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjcwNDArLTAu
MzQ3OCAgICAgICAgICAgIDkuNTU5MystMC4xMTIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1MXgg
ZmFzdGVyCiAgIG51bWJlci10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNzc5MCstMC4yNDQwICAgICAgICAgICAgMi42NjE3Ky0wLjAyMTQgICAgICAgICAgbWln
aHQgYmUgMS4wNDQxeCBmYXN0ZXIKICAgb2JqZWN0LWFuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC42MDUxKy0wLjAzODQgICAgID8gICAgICA0Ljc1MDQrLTAuMjc0
NyAgICAgICAgPyBtaWdodCBiZSAxLjAzMTZ4IHNsb3dlcgogICBvYmplY3QtY2xvc3VyZS1jYWxs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjI4NjQrLTAuMDQ0NSAgICAgPyAgICAg
IDQuNDYyMystMC4zOTk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxMHggc2xvd2VyCiAgIG9iamVj
dC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMtb24tbGFyZ2UtYXJyYXkgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNjc3Ky0wLjA0NTEg
ICAgID8gICAgICAxLjA5NTQrLTAuMTAwNSAgICAgICAgPyBtaWdodCBiZSAxLjAyNTl4IHNsb3dl
cgogICBvYmplY3QtaW50LWFkZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEw
LjE2MzIrLTAuMTQwOSAgICAgPyAgICAgMTAuMjE2OCstMC4xNzQ0ICAgICAgICA/CiAgIG9iamVj
dC1pbnQtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMjc2NCstMC41
NDIzICAgICAgICAgICAxMi4xNTgxKy0wLjI0ODAgICAgICAgIAogICBvYmplY3QtaW50LWFuZC1h
cnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjI0NzIrLTAuMzkxMCAgICAgPyAg
ICAgMTAuNDE4NSstMC41ODM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2N3ggc2xvd2VyCiAgIG9i
amVjdC1pbnQtbXVsLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguODE2OSst
MC4yNzE1ICAgICAgICAgICAgOC42NzU0Ky0wLjA4ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMTYz
eCBmYXN0ZXIKICAgb2JqZWN0LWludC1zdWItYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNy44ODI2Ky0wLjU0MjUgICAgICAgICAgICA3LjYzMTkrLTAuMjYxMCAgICAgICAgICBt
aWdodCBiZSAxLjAzMjl4IGZhc3RlcgogICBvYmplY3QtaW50LXN1YiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEyLjEzNjErLTAuMjU0MSAgICAgPyAgICAgMTIuMzExNistMC4z
NDIxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0NXggc2xvd2VyCiAgIG9iamVjdC1sc2hpZnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzkyNCstMC4yOTY2ICAgICAgICAg
ICAgNC43MTAwKy0wLjIwNjUgICAgICAgICAgbWlnaHQgYmUgMS4wMTc1eCBmYXN0ZXIKICAgb2Jq
ZWN0LW9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42NDY5Ky0w
LjA3NjEgICAgICAgICAgICA0LjYxODArLTAuMDUyMyAgICAgICAgCiAgIG9iamVjdC1yc2hpZnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjgxOSstMC4xODgwICAgICA/
ICAgICAgNC43MzEyKy0wLjEzMzggICAgICAgID8gbWlnaHQgYmUgMS4wMTA1eCBzbG93ZXIKICAg
b2JqZWN0LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MjMy
Ky0wLjIwMzIgICAgID8gICAgICAyLjUyOTYrLTAuMTI3MiAgICAgICAgPwogICBvYmplY3QtdXJz
aGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjczNjcrLTAuMTk4MSAg
ICAgICAgICAgIDQuNjk5NCstMC4xMjc1ICAgICAgICAKICAgb2JqZWN0LXhvciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC43MDQzKy0wLjIwNDMgICAgID8gICAgICA0
Ljc1NzUrLTAuMTg5OCAgICAgICAgPyBtaWdodCBiZSAxLjAxMTN4IHNsb3dlcgogICBvYnZpb3Vz
LXNpbmstcGF0aG9sb2d5LXRha2VuICAgICAgICAgICAgICAgICAgICAgMTA1LjQwNjIrLTAuNTc5
NCAgICAgICAgICAxMDUuMTE2MCstMC44NDA2ICAgICAgICAKICAgb2J2aW91cy1zaW5rLXBhdGhv
bG9neSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi42ODEwKy0wLjUxOTUgICAgID8gICAg
IDE3LjQ1MDcrLTEuMDE2MCAgICAgICAgPyBtaWdodCBiZSAxLjA0NjF4IHNsb3dlcgogICBvYnZp
b3VzbHktZWxpZGFibGUtbmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAgIDE0Ljk4NDgrLTAu
MjQzMyAgICAgICAgICAgMTQuODAxOCstMC40MTIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNHgg
ZmFzdGVyCiAgIHBsdXMtYm9vbGVhbi1hcml0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuOTIyMistMC4wMjM4ICAgICA/ICAgICAgMS45NDI4Ky0wLjA2MzcgICAgICAgID8gbWln
aHQgYmUgMS4wMTA3eCBzbG93ZXIKICAgcGx1cy1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi4xOTM1Ky0wLjAyMjEgICAgID8gICAgICAyLjI1NDQrLTAuMTA4
NyAgICAgICAgPyBtaWdodCBiZSAxLjAyNzh4IHNsb3dlcgogICBwbHVzLWJvb2xlYW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkxNTIrLTAuMTEyOCAgICAgICAgICAg
IDEuOTA2MCstMC4wOTk2ICAgICAgICAKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlmZmVyZW50LXBy
b3RvdHlwZXMtc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuMzE2NistMC4xNjYxICAgICAgICAgICAgMi4yNzA4Ky0wLjAzOTAg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjAyeCBmYXN0ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MtZGlm
ZmVyZW50LXByb3RvdHlwZXMgICAgICAgICAgICAgMi40NzUwKy0wLjE4NzMgICAgICAgICAgICAy
LjI4OTErLTAuMDU4MiAgICAgICAgICBtaWdodCBiZSAxLjA4MTJ4IGZhc3RlcgogICBwb2x5LWNo
YWluLWFjY2Vzcy1zaW1wbGVyICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI0MzQrLTAuMDQ5
NSAgICAgPyAgICAgIDIuMjU2MystMC4wMzQyICAgICAgICA/CiAgIHBvbHktY2hhaW4tYWNjZXNz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjgwNystMC4wMzg2ICAgICAgICAg
ICAgMi4yNjkwKy0wLjAyODggICAgICAgIAogICBwb2x5LXN0cmljdGVxICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQ2LjU1NzMrLTAuMDkzMyAgICAgPyAgICAgNDcuNDQwMSst
Mi4yMTMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5MHggc2xvd2VyCiAgIHBvbHltb3JwaGljLWFy
cmF5LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMjkyMistMC4wODYyICAgICAg
ICAgICAgMS4xNjY5Ky0wLjA4NjYgICAgICAgICAgbWlnaHQgYmUgMS4xMDc0eCBmYXN0ZXIKICAg
cG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44Njk4
Ky0wLjA0MTggICAgID8gICAgICAxLjk4NDYrLTAuMTcwMyAgICAgICAgPyBtaWdodCBiZSAxLjA2
MTR4IHNsb3dlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI0LjkwMTcrLTIuMDEwNCAgICAgICAgICAgMjMuNDg4NSstMS41MDQ4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDYwMnggZmFzdGVyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwtd2l0aC1z
dHJpbmcgICAgICAgICAgICAgICAgMjQuODg5NistMS4xMzM5ICAgICA/ICAgICAyNS41ODM3Ky0x
LjE0NTYgICAgICAgID8gbWlnaHQgYmUgMS4wMjc5eCBzbG93ZXIKICAgcG9seW1vcnBoaWMtcHV0
LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAyNC4wMzA5Ky0wLjU0OTQgICAgID8g
ICAgIDI0LjM1NTIrLTAuNjEyNCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzV4IHNsb3dlcgogICBw
b2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjYxMDAr
LTAuMzE1MyAgICAgICAgICAgMTEuNTk3NystMC4zMDgxICAgICAgICAKICAgcG9seXZhcmlhbnQt
bW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgMy4yNjAzKy0wLjAzMjEgICAg
ICAgICAgICAzLjIzNjIrLTAuMDM4MCAgICAgICAgCiAgIHByZXZlbnQtZXh0ZW5zaW9ucy1hbmQt
ZG8td29yayAgICAgICAgICAgICAgICAgICAgMTIuMzU4NystMC44NTEyICAgICA/ICAgICAxMi44
MzYwKy0wLjczNzkgICAgICAgID8gbWlnaHQgYmUgMS4wMzg2eCBzbG93ZXIKICAgcHJvdG8tZ2V0
dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4wNDcyKy0wLjEzMzYg
ICAgID8gICAgIDEwLjE2MDQrLTAuMjc4OCAgICAgICAgPyBtaWdodCBiZSAxLjAxMTN4IHNsb3dl
cgogICBwcm90b3R5cGUtYWNjZXNzLXdpdGgtbXV0YXRpbmctcHJvdG90eXBlICAgICAgICAgICA0
LjM1MjcrLTAuNDU4MiAgICAgICAgICAgIDQuMjkyOSstMC4yMDE0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEzOXggZmFzdGVyCiAgIHB1dC1ieS1pZC1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgICAg
ICAgICAgICAgICAgIDYuMjE3MistMC4zMjA5ICAgICAgICAgICAgNi4xMjUyKy0wLjMwMjUgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTUweCBmYXN0ZXIKICAgcHV0LWJ5LWlkLXNsaWdodGx5LXBvbHlt
b3JwaGljICAgICAgICAgICAgICAgICAgICAgMi4yMzk1Ky0wLjAyMzQgICAgID8gICAgICAyLjI3
MjcrLTAuMTA1NCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDh4IHNsb3dlcgogICBwdXQtYnktaWQt
dHJhbnNpdGlvbi13aXRoLWluZGV4aW5nLWhlYWRlciAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjQ3NjUrLTAuNjc0OSAgICAgPyAgICAg
MTAuNTYwNystMC44NTE5ICAgICAgICA/CiAgIHB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDguNjM0NCstMC4yNTAzICAgICA/ICAgICAgOC44NDcwKy0w
LjM2NDcgICAgICAgID8gbWlnaHQgYmUgMS4wMjQ2eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC1kaXJl
Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNjc2Ky0wLjAxMDYgICAgID8g
ICAgICAwLjI3NTgrLTAuMDExMiAgICAgICAgPyBtaWdodCBiZSAxLjAzMDR4IHNsb3dlcgogICBw
dXQtYnktdmFsLWxhcmdlLWluZGV4LWJsYW5rLWluZGV4aW5nLXR5cGUgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yODI1Ky0wLjIyNjIg
ICAgICAgICAgICA0LjIzNTYrLTAuMDkwMyAgICAgICAgICBtaWdodCBiZSAxLjAxMTF4IGZhc3Rl
cgogICBwdXQtYnktdmFsLW1hY2hpbmUtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjU3NDgrLTAuMTg3NyAgICAgICAgICAgIDIuNDgwMistMC4wOTY3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM4MnggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctcmVwbGFjZS1hbmQtdHJh
bnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjQyMzUrLTAuMTkyNiAgICAgPyAgICAgIDkuNjEyMSstMC4zMTgxICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIwMHggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmctc2xpZ2h0
bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi45MDY5Ky0wLjAyMzYgICAgID8gICAgICAyLjkyOTQrLTAuMDY4MCAg
ICAgICAgPwogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA5LjA3NzYrLTAuMzMwNCAgICAgICAgICAgIDkuMDA4OSstMC4xOTA1ICAgICAgICAKICAg
cHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMzQ4MCstMC4y
ODU3ICAgICAgICAgICAgOS4yMTQ1Ky0wLjM1ODIgICAgICAgICAgbWlnaHQgYmUgMS4wMTQ1eCBm
YXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU1
MzErLTAuMDM3NyAgICAgPyAgICAgIDIuNjA3MCstMC4xNTE1ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIxMXggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuMTEzOSstMC4zMTI0ICAgICAgICAgICAgOS4wMjAwKy0wLjIzNzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTA0eCBmYXN0ZXIKICAgcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMS4wMzg2Ky0wLjMyMjYgICAgICAgICAgIDEwLjQ3NzMr
LTAuODE5OCAgICAgICAgICBtaWdodCBiZSAxLjA1MzZ4IGZhc3RlcgogICByYXl0cmFjZS13aXRo
LWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICA0Ljg4OTYrLTAuMTE5NyAgICAg
ICAgICAgIDQuODA0NistMC4wODA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3N3ggZmFzdGVyCiAg
IHJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNTcx
NSstMC4yOTU3ICAgICA/ICAgICAgNy45NDQ5Ky0wLjQ2NDkgICAgICAgID8gbWlnaHQgYmUgMS4w
NDkzeCBzbG93ZXIKICAgcmVnZXhwLWV4ZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzMi4yOTk5Ky0wLjIwMjggICAgID8gICAgIDMyLjQxNjcrLTAuNDcyNiAgICAgICAg
PwogICByZWdleHAtbGFzdC1pbmRleCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
LjM3MTErLTAuMjEyOCAgICAgPyAgICAgIDguMzgyMystMC4yOTQwICAgICAgICA/CiAgIHJlZ2V4
cC1wcm90b3R5cGUtaXMtbm90LWluc3RhbmNlICAgICAgICAgICAgICAgICAgIDAuMzMxMSstMC4w
MTQzICAgICA/ICAgICAgMC40NTAxKy0wLjIyNjQgICAgICAgID8gbWlnaHQgYmUgMS4zNTkzeCBz
bG93ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC43ODcxKy0wLjA5NzcgICAgICAgICAgICAwLjcxMDcrLTAuMDQzMiAgICAgICAgICBtaWdodCBi
ZSAxLjEwNzZ4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4yMjY2Ky0wLjAxMjYgICAgID8gICAgICAwLjIyNzErLTAuMDA2NiAgICAg
ICAgPwogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEu
MTYxNSstMC4xNzMwICAgICAgICAgICAgMS4xMjg3Ky0wLjA5MTEgICAgICAgICAgbWlnaHQgYmUg
MS4wMjkxeCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUt
ZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4yNTIxKy0wLjAxNjEgICAgICAgICAgICAwLjI0NDYrLTAuMDA2NCAgICAgICAg
ICBtaWdodCBiZSAxLjAzMDR4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2Vy
dmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI2MjArLTAuMDMyNiAgICAgICAgICAgIDAuMjYx
NCstMC4wMTE1ICAgICAgICAKICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0czMtZ2xvYmFsICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuMjYxOCstMC4wMTYzICAgICA/ICAgICAgMC4yNjM1Ky0wLjAx
ODAgICAgICAgID8KICAgcmVnZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0czMtaWdub3JlQ2FzZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjI3MTErLTAuMDQ1NCAgICAgICAgICAgIDAuMjU4NystMC4wMjAy
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4MHggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI1NjgrLTAuMDA4NSAgICAg
PyAgICAgIDAuMjY0MCstMC4wMTUyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI4MHggc2xvd2VyCiAg
IHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNreSAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LjM0MDErLTAuMjA0MyAgICAgICAgICAgIDAuMjU0MistMC4wMDg0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMzM4M3ggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLXVuaWNvZGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMC4yNjczKy0wLjAyNzkgICAgICAgICAgICAwLjI2NDYrLTAuMDI0
NSAgICAgICAgICBtaWdodCBiZSAxLjAxMDN4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNCAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI3MzIrLTAuMDE0OCAgICAgPyAgICAgIDAu
MzAxMCstMC4wODIzICAgICAgICA/IG1pZ2h0IGJlIDEuMTAxOXggc2xvd2VyCiAgIHJlZ2V4cC1w
cm90b3R5cGUtdGVzdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU3NDArLTAuMDA0NSAgICAg
PyAgICAgIDAuNTc2MSstMC4wMzQxICAgICAgICA/CiAgIHJlZ2V4cC1wcm90b3R5cGUtdGVzdC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4yNDE1Ky0wLjAxNDYgICAgID8gICAgICAwLjI1NjUr
LTAuMDQyOCAgICAgICAgPyBtaWdodCBiZSAxLjA2MTh4IHNsb3dlcgogICByZWdleHAtc2V0LWxh
c3QtaW5kZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljk5NzgrLTAuNDkzOSAgICAg
PyAgICAgIDkuMDk2OCstMC41MDk0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDExMHggc2xvd2VyCiAg
IHJlZ2lzdGVyLXByZXNzdXJlLWZyb20tb3NyICAgICAgICAgICAgICAgICAgICAgICAgMTUuNjcy
NSstMS41NTE5ICAgICAgICAgICAxNS4yNTc2Ky0xLjY5MzkgICAgICAgICAgbWlnaHQgYmUgMS4w
MjcyeCBmYXN0ZXIKICAgcmVwZWF0LW11bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgICAg
ICAgICAgICAxOS4xMTEwKy0xLjY5MDUgICAgID8gICAgIDE5LjIxMDYrLTEuNTkzNSAgICAgICAg
PwogICByaWNoYXJkcy1lbXB0eS10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgIDQ5
LjA3MDUrLTAuNTE3MCAgICAgICAgICAgNDguMjIwMystMS4zMDg4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE3NnggZmFzdGVyCiAgIHJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyMDQuMzIzNCstMi4yMzQ2ICAgICAgICAgIDIwMi44NjUyKy0zLjkzNjMgICAg
ICAgIAogICBzY29wZWQtYXJndW1lbnRzLWxlbmd0aCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA2LjMwNDMrLTAuMzY0MiAgICAgICAgICAgIDYuMTMwMystMC4zNjAwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI4NHggZmFzdGVyCiAgIHNjb3BlZC1hcmd1bWVudHMtb3ZlcnJpZGRlbi1sZW5ndGgg
ICAgICAgICAgICAgICAgIDUuODkyOCstMC4wNDEyICAgICA/ICAgICAgNi4yMTEyKy0wLjM1Mjcg
ICAgICAgID8gbWlnaHQgYmUgMS4wNTQweCBzbG93ZXIKICAgc2NvcGVkLWFyZ3VtZW50cy1wb3Nz
aWJseS1vdmVycmlkZGVuLWxlbmd0aCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA2LjcyMjErLTAuMjQ2NiAgICAgICAgICAgIDYuNjMyMSst
MC4xNTk3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNnggZmFzdGVyCiAgIHNlYWwtYW5kLWRvLXdv
cmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTAzMystMC42MTcyICAgICAg
ICAgICAxMi4yODY5Ky0wLjY5NjggICAgICAgICAgbWlnaHQgYmUgMS4wMTc2eCBmYXN0ZXIKICAg
c2V0LWZvci1lYWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41MzQ2
Ky0wLjEyODIgICAgICAgICAgICAzLjUxNTYrLTAuMTAxOSAgICAgICAgCiAgIHNldC1mb3Itb2Yg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTU3MSstMC42MDg3ICAg
ICAgICAgICAgNi44MzYxKy0wLjI1OTUgICAgICAgICAgbWlnaHQgYmUgMS4wNDY5eCBmYXN0ZXIK
ICAgc2V0dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4z
Mjk2Ky0wLjAzMDUgICAgID8gICAgICA0LjQ1NDYrLTAuMjc1MyAgICAgICAgPyBtaWdodCBiZSAx
LjAyODl4IHNsb3dlcgogICBzZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjAyMzcrLTAuMTY2MSAgICAgICAgICAgIDIuOTM5OCstMC4yMDk3ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDI4NnggZmFzdGVyCiAgIHNpbXBsZS1hY3RpdmF0aW9uLWRlbW8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjEuNDc3MistMi4wNDE3ICAgICAgICAgICAyMS4yNTE1
Ky0wLjY4MzYgICAgICAgICAgbWlnaHQgYmUgMS4wMTA2eCBmYXN0ZXIKICAgc2ltcGxlLWdldHRl
ci1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS43MjQ5Ky0wLjEwMDUgICAg
ID8gICAgIDE2LjAwMTArLTAuMjkxMiAgICAgICAgPyBtaWdodCBiZSAxLjAxNzZ4IHNsb3dlcgog
ICBzaW1wbGUtcG9seS1jYWxsLW5lc3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc4
NDYrLTAuMTg4NiAgICAgICAgICAgIDMuNzMwNSstMC4xNDg3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE0NXggZmFzdGVyCiAgIHNpbXBsZS1wb2x5LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEuMTcwMistMC4wMzM0ICAgICA/ICAgICAgMS4xOTU4Ky0wLjA4NTYgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjE5eCBzbG93ZXIKICAgc2ltcGxlLXJlZ2V4cC1leGVjLWZvbGRpbmct
ZmFpbCAgICAgICAgICAgICAgICAgICAgMi44MzA5Ky0wLjEzNDAgICAgICAgICAgICAyLjgwOTIr
LTAuMDcwMSAgICAgICAgCiAgIHNpbXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nICAgICAgICAgICAg
ICAgICAgICAgICAgMTUuODcyNystMC42MDkwICAgICAgICAgICAxNS40Njc2Ky0wLjI0NTIgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjYyeCBmYXN0ZXIKICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZvbGRp
bmctZmFpbC13aXRoLWhvaXN0ZWQtcmVnZXhwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMTk2MCstMC4xOTcxICAgICA/ICAgICAgOC4z
NjYwKy0wLjI2NjkgICAgICAgID8gbWlnaHQgYmUgMS4wMjA3eCBzbG93ZXIKICAgc2ltcGxlLXJl
Z2V4cC10ZXN0LWZvbGRpbmctZmFpbCAgICAgICAgICAgICAgICAgICAxNC41MjMwKy0wLjUxODcg
ICAgICAgICAgIDEzLjk1NzgrLTAuNDI3OCAgICAgICAgICBtaWdodCBiZSAxLjA0MDV4IGZhc3Rl
cgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy13aXRoLWhvaXN0ZWQtcmVnZXhwICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTI4
OCstMC4xMjAxICAgICA/ICAgICAgOS4xOTUxKy0wLjE0NDQgICAgICAgID8KICAgc2ltcGxlLXJl
Z2V4cC10ZXN0LWZvbGRpbmcgICAgICAgICAgICAgICAgICAgICAgICAxNS4yOTUwKy0wLjQwMTcg
ICAgICAgICAgIDE0LjgzNTgrLTAuMjYyMyAgICAgICAgICBtaWdodCBiZSAxLjAzMTB4IGZhc3Rl
cgogICBzaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjE0NDQrLTAuMjU3NiAgICAgICAgICAgIDYuMDgwNistMC4xNzM4ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDEwNXggZmFzdGVyCiAgIHNpbmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTYuNDE1MCstMC4yMDM4ICAgICA/ICAgICA1Ny4xMDE4Ky0xLjk2MDggICAg
ICAgID8gbWlnaHQgYmUgMS4wMTIyeCBzbG93ZXIKICAgc2luay1mdW5jdGlvbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4wMzU0Ky0wLjE4NDYgICAgICAgICAgICA0Ljk2
MTcrLTAuMzUwNiAgICAgICAgICBtaWdodCBiZSAxLjAxNDl4IGZhc3RlcgogICBzaW5rLWh1Z2Ut
YWN0aXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjk3MDArLTAuODEwNyAg
ICAgPyAgICAgMTIuMDUxOCstMC43MjQ3ICAgICAgICA/CiAgIHNpbmthYmxlLW5ldy1vYmplY3Qt
ZGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuNDgyMSstMC4yMjY3ICAgICA/ICAgICAz
Ni41NjYyKy0wLjQxOTAgICAgICAgID8KICAgc2lua2FibGUtbmV3LW9iamVjdC10YWtlbiAgICAg
ICAgICAgICAgICAgICAgICAgICAzMS4zNDYwKy0wLjEyNjMgICAgID8gICAgIDMxLjYxNDErLTAu
NjkxNSAgICAgICAgPwogICBzaW5rYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDE3LjMwNzUrLTEuMDUzOSAgICAgICAgICAgMTYuNzMxMistMC40NzgwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDM0NHggZmFzdGVyCiAgIHNsb3ctYXJyYXktcHJvZmlsZS1jb252ZXJn
ZW5jZSAgICAgICAgICAgICAgICAgICAgIDIuMzgwMCstMC4xMzg4ICAgICAgICAgICAgMi4zNTkz
Ky0wLjExODkgICAgICAgIAogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjQ1MTgrLTAuMTU4NyAgICAgICAgICAgIDIuMjY5MistMC4xNjg4ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDgwNXggZmFzdGVyCiAgIHNsb3ctdGVybmFyaWVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNjcxNSstMC4yMjY3ICAgICA/ICAgICAxMS43
NzI1Ky0wLjMwMzcgICAgICAgID8KICAgc29ydGluZy1iZW5jaG1hcmsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxNi43NjYyKy0wLjY1MjIgICAgID8gICAgIDE2Ljc4NjkrLTAuNTEz
NyAgICAgICAgPwogICBzcGFyc2UtY29uZGl0aW9uYWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxLjA3MjcrLTAuMDM2MiAgICAgPyAgICAgIDEuMTE1OCstMC4wODYyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDQwMnggc2xvd2VyCiAgIHNwbGljZS10by1yZW1vdmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTMuMzU4MistMS40MjcwICAgICAgICAgICAxMS44OTY3Ky0w
LjE1NDAgICAgICAgICAgbWlnaHQgYmUgMS4xMjI5eCBmYXN0ZXIKICAgc3RyY2F0LWNvbnN0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44ODIwKy0wLjEyNDIgICAgID8g
ICAgICA1LjEwNDIrLTAuMjY1NyAgICAgICAgPyBtaWdodCBiZSAxLjA0NTV4IHNsb3dlcgogICBz
dHJjYXQtbGVuZ3RoLWNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljk3Mjcr
LTAuMTQzMCAgICAgPyAgICAgIDUuMDA3NystMC4xMjI3ICAgICAgICA/CiAgIHN0cmljdC1vc3It
ZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNjkwMystMS4wMTQwICAg
ICAgICAgICAgOC4yNzI3Ky0wLjIyMDkgICAgICAgICAgbWlnaHQgYmUgMS4wNTA1eCBmYXN0ZXIK
ICAgc3RyaW5nLWNoYXItY29kZS1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS42
ODY1Ky0wLjM4NzQgICAgID8gICAgIDExLjY4NzkrLTAuMzA0NiAgICAgICAgPwogICBzdHJpbmct
Y29uY2F0LW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkxODUrLTAuMDc1
MSAgICAgICAgICAgIDEuODk3NystMC4xMTY4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExMHggZmFz
dGVyCiAgIHN0cmluZy1jb25jYXQtcGFpci1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAg
IDEuOTA2MSstMC4wODkxICAgICAgICAgICAgMS44MDY3Ky0wLjEwMTYgICAgICAgICAgbWlnaHQg
YmUgMS4wNTUweCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi43NTYxKy0wLjI0NDYgICAgICAgICAgICAyLjc0MDgrLTAuMDg3NCAg
ICAgICAgCiAgIHN0cmluZy1jb25jYXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDguMTUwMCstMC4xNzM2ICAgICAgICAgICAgOC4xMzIzKy0wLjEwNjMgICAgICAgIAogICBz
dHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljc0Mjgr
LTAuMTExOSAgICAgPyAgICAgIDUuODAzMystMC4xNTIwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEw
NXggc2xvd2VyCiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDYuMDA5MistMC4xNDUwICAgICAgICAgICAgNS45NTY2Ky0wLjE2NDggICAgICAgIAog
ICBzdHJpbmctZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0Ljk3
OTQrLTAuOTUyMyAgICAgPyAgICAgMTUuNjExOCstMS4zNTE4ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDQyMnggc2xvd2VyCiAgIHN0cmluZy1mcm9tLWNoYXItY29kZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUuNjAxNistMC4xMTA3ICAgICA/ICAgICAgNS43MDQ1Ky0wLjE5NjYgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTg0eCBzbG93ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtYmlnLWNoYXIg
ICAgICAgICAgICAgICAgICAgICAgICAgNC4wODc2Ky0wLjA5NjIgICAgID8gICAgICA0LjEzOTQr
LTAuMjEwOCAgICAgICAgPyBtaWdodCBiZSAxLjAxMjd4IHNsb3dlcgogICBzdHJpbmctZ2V0LWJ5
LXZhbC1vdXQtb2YtYm91bmRzLWluc2FuZSAgICAgICAgICAgICAzLjQ2MzYrLTAuMDM3MCAgICAg
PyAgICAgIDMuNjMyMistMC4xODEyICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4N3ggc2xvd2VyCiAg
IHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgIDMuOTQ4
OSstMC4xNDg2ICAgICA/ICAgICAgMy45Njk4Ky0wLjEwMTkgICAgICAgID8KICAgc3RyaW5nLWdl
dC1ieS12YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44NTM2Ky0wLjEwMjEg
ICAgICAgICAgICAxLjc3MTUrLTAuMDM0MiAgICAgICAgICBtaWdodCBiZSAxLjA0NjR4IGZhc3Rl
cgogICBzdHJpbmctaGFzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ljc3NzQrLTAuMDY0NiAgICAgICAgICAgIDEuNzc0NistMC4wNzIyICAgICAgICAKICAgc3RyaW5n
LWxvbmctaWRlbnQtZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAxMi40MDg3Ky0wLjc5
NzUgICAgICAgICAgIDEyLjM1MzgrLTAuNTI0NiAgICAgICAgCiAgIHN0cmluZy1vdXQtb2YtYm91
bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNTI1OSstMC40NTk3ICAgICAgICAg
ICAgOS4zMjExKy0wLjM5MDcgICAgICAgICAgbWlnaHQgYmUgMS4wMjIweCBmYXN0ZXIKICAgc3Ry
aW5nLXByb3RvdHlwZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44NTQ3Ky0wLjA1
NDkgICAgICAgICAgICAwLjgyNzIrLTAuMDUzMSAgICAgICAgICBtaWdodCBiZSAxLjAzMzN4IGZh
c3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MC4zMDA3Ky0wLjAyMDEgICAgICAgICAgICAwLjI5NTMrLTAuMDI4OCAgICAgICAgICBtaWdodCBi
ZSAxLjAxODJ4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNp
ZGUtZWZmZWN0czMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4yODcxKy0wLjAwNDMgICAgID8gICAgICAwLjI5MDMrLTAuMDE2OSAgICAg
ICAgPyBtaWdodCBiZSAxLjAxMTJ4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNlYXJjaC1v
YnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMC4yODE5Ky0wLjAwODMgICAgID8gICAgICAwLjI5MTMr
LTAuMDE0OCAgICAgICAgPyBtaWdodCBiZSAxLjAzMzN4IHNsb3dlcgogICBzdHJpbmctcHJvdG90
eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMjIwOSstMC4wNTMxICAgICA/ICAg
ICAgMS4yNzIzKy0wLjExNzYgICAgICAgID8gbWlnaHQgYmUgMS4wNDIxeCBzbG93ZXIKICAgc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yOTc0Ky0wLjAx
OTQgICAgID8gICAgICAwLjMwOTQrLTAuMDQ2MiAgICAgICAgPyBtaWdodCBiZSAxLjA0MDR4IHNs
b3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1m
bGFncyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjMxNzErLTAuMDIyMyAgICAgPyAgICAgIDAuMzM1OSstMC4wNTk1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDU5MXggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJs
ZS1zaWRlLWVmZmVjdHMzLWdsb2JhbCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjMzNjArLTAuMDQ4MSAgICAgICAgICAgIDAuMzAyNSst
MC4wMDY2ICAgICAgICAgIG1pZ2h0IGJlIDEuMTEwOHggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5
cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zMTgwKy0wLjAz
NDIgICAgID8gICAgICAwLjMyMTcrLTAuMDM3MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMTZ4IHNs
b3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1t
dWx0aWxpbmUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMC4zMDc3Ky0wLjAxMTUgICAgICAgICAgICAwLjMwNjMrLTAuMDEzMSAgICAgICAg
CiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNr
eSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLjMwNzErLTAuMDEzOCAgICAgICAgICAgIDAuMjk2MistMC4wMDc5ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDM3MHggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1z
aWRlLWVmZmVjdHMzLXVuaWNvZGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC4zMTY4Ky0wLjAzNDYgICAgICAgICAgICAwLjMwNzIrLTAu
MDA2NCAgICAgICAgICBtaWdodCBiZSAxLjAzMTN4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBl
LXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNCAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMwNzQrLTAuMDA5NSAgICAgICAgICAg
IDAuMzA3MystMC4wMTA4ICAgICAgICAKICAgc3RyaW5nLXJlcGVhdC1hcml0aCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxOS4yODQ5Ky0wLjk5MTMgICAgICAgICAgIDE5LjIwMjQrLTEu
MjA1NyAgICAgICAgCiAgIHN0cmluZy1yZXBlYXQtbm90LXJlc29sdmluZy1maXhlZCAgICAgICAg
ICAgICAgICAgIDIuNTA3NCstMC4xNTQxICAgICA/ICAgICAgMi41MzYwKy0wLjE3NDQgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTE0eCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1ub3QtcmVzb2x2aW5n
LW5vLWlubGluZSAgICAgICAgICAgICAgMy4zNjI2Ky0wLjA5MjAgICAgID8gICAgICAzLjQwNzMr
LTAuMTQyMSAgICAgICAgPyBtaWdodCBiZSAxLjAxMzN4IHNsb3dlcgogICBzdHJpbmctcmVwZWF0
LW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAgICAgICAzLjMzOTIrLTAuMDg2NSAgICAg
PyAgICAgIDMuMzU4MSstMC4xMTIwICAgICAgICA/CiAgIHN0cmluZy1yZXBlYXQtcmVzb2x2aW5n
LWZpeGVkICAgICAgICAgICAgICAgICAgICAgMjIuMjg1OCstMC45MjM4ICAgICAgICAgICAyMS44
MTEwKy0wLjM0OTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjE4eCBmYXN0ZXIKICAgc3RyaW5nLXJl
cGVhdC1yZXNvbHZpbmctbm8taW5saW5lICAgICAgICAgICAgICAgICAyOS4yMzE1Ky0xLjA5Njkg
ICAgICAgICAgIDI4LjYxMzcrLTAuNjAwMCAgICAgICAgICBtaWdodCBiZSAxLjAyMTZ4IGZhc3Rl
cgogICBzdHJpbmctcmVwZWF0LXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4
LjMwODYrLTAuMzAxNSAgICAgPyAgICAgMjguNzYxMistMC43MjQyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDE2MHggc2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtc2luZ2xlLW5vdC1yZXNvbHZpbmcgICAg
ICAgICAgICAgICAgIDYuOTI5MystMC44Nzc0ICAgICAgICAgICAgNi4zMTI1Ky0wLjYxNjMgICAg
ICAgICAgbWlnaHQgYmUgMS4wOTc3eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1zaW5nbGUtcmVz
b2x2aW5nICAgICAgICAgICAgICAgICAgICAgNi43NzExKy0wLjU4MDQgICAgICAgICAgICA2LjQ1
NjgrLTAuOTIyMiAgICAgICAgICBtaWdodCBiZSAxLjA0ODd4IGZhc3RlcgogICBzdHJpbmctcmVw
ZWF0LXNtYWxsLW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAyLjgyODIrLTAuMTY3NCAg
ICAgICAgICAgIDIuODE3NystMC4xMDI5ICAgICAgICAKICAgc3RyaW5nLXJlcGVhdC1zbWFsbC1y
ZXNvbHZpbmcgICAgICAgICAgICAgICAgICAgICAyOS41Mzc4Ky0wLjg3NTIgICAgICAgICAgIDI5
LjA3NDkrLTAuMzUzMSAgICAgICAgICBtaWdodCBiZSAxLjAxNTl4IGZhc3RlcgogICBzdHJpbmct
cmVwbGFjZS1lbXB0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjgwMjIrLTAuMjM4
OCAgICAgICAgICAgIDcuNzYyNistMC4xNDk0ICAgICAgICAKICAgc3RyaW5nLXJlcGxhY2UtZ2Vu
ZXJpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OS4yMTQ4Ky0xLjMyNzUgICAgID8gICAg
IDUyLjMwMDgrLTQuNzQ0OCAgICAgICAgPyBtaWdodCBiZSAxLjA2Mjd4IHNsb3dlcgogICBzdHJp
bmctcmVwbGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljc0ODcrLTAu
MTg0MiAgICAgICAgICAgIDcuNzM4MCstMC4xODAyICAgICAgICAKICAgc3RyaW5nLXJvcGUtd2l0
aC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS43ODg5Ky0wLjQ1MTggICAgID8g
ICAgIDE1Ljg1NzgrLTEuMjUxNCAgICAgICAgPwogICBzdHJpbmctc3ViICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjU2NDIrLTEuMzkzNSAgICAgXiAgICAgMzAuNjA1
MCstMC4zMDExICAgICAgICBeIGRlZmluaXRlbHkgMS4wOTY3eCBmYXN0ZXIKICAgc3RyaW5nLXRl
c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NDUwKy0wLjA0NDUg
ICAgICAgICAgICAyLjUzODUrLTAuMDM2MiAgICAgICAgCiAgIHN0cmluZy10cmFuc2NvZGluZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuOTk3MSstMS4wMjkyICAgICBeICAgICAx
Mi43NDMzKy0wLjE4OTIgICAgICAgIF4gZGVmaW5pdGVseSAxLjA5ODR4IGZhc3RlcgogICBzdHJp
bmctdmFyLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1LjAwNzkrLTAu
Mjg1MSAgICAgPyAgICAgMjYuMTQwOSstMS42ODk4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ1M3gg
c2xvd2VyCiAgIHN0cnVjdHVyZS1ob2lzdC1vdmVyLXRyYW5zaXRpb25zICAgICAgICAgICAgICAg
ICAgIDIuMTczNystMC4wNDYwICAgICAgICAgICAgMi4xMzg1Ky0wLjAwNDAgICAgICAgICAgbWln
aHQgYmUgMS4wMTY0eCBmYXN0ZXIKICAgc3Vic3RyaW5nLWNvbmNhdC13ZWlyZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzMi44MTg2Ky0wLjY4MDMgICAgICAgICAgIDMyLjQwMDgrLTAuNjQ1
NSAgICAgICAgICBtaWdodCBiZSAxLjAxMjl4IGZhc3RlcgogICBzdWJzdHJpbmctY29uY2F0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM2LjM3NDMrLTAuNTQ1OCAgICAgICAgICAg
MzUuODkyOSstMC41ODI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNHggZmFzdGVyCiAgIHN1YnN0
cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEuMjQyNistMC40
Mjk5ICAgICAgICAgICA0MS4xNjM5Ky0wLjQyNjIgICAgICAgIAogICBzd2l0Y2gtY2hhci1jb25z
dGFudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg4MTgrLTAuMDgyMSAgICAgPyAg
ICAgIDEuOTMzNystMC4wODA1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Nnggc2xvd2VyCiAgIHN3
aXRjaC1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzM4MCst
MC4xOTMwICAgICA/ICAgICAgNC4zNjIzKy0wLjE4MDQgICAgICAgID8KICAgc3dpdGNoLWNvbnN0
YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yMDIyKy0wLjE4MjIgICAg
ICAgICAgICAzLjEyOTArLTAuMDk5MiAgICAgICAgICBtaWdodCBiZSAxLjAyMzR4IGZhc3Rlcgog
ICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgIDEzLjU4
ODkrLTAuOTMxNSAgICAgICAgICAgMTMuMDMwNSstMC4zNTc2ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDQyOHggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtYmlnICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTIuMDgwNCstMC42MDcyICAgICA/ICAgICAxMi41NDAyKy0wLjY4NDggICAgICAg
ID8gbWlnaHQgYmUgMS4wMzgxeCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1iYXNpYy12YXIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMy4zNzUxKy0xLjAwNTEgICAgICAgICAgIDEzLjM2Nzgr
LTAuODE3MSAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuMjUzOCstMC4zNDcxICAgICA/ICAgICAxMS4zMjkzKy0wLjM3MTIgICAg
ICAgID8KICAgc3dpdGNoLXN0cmluZy1iaWctbGVuZ3RoLXRvd2VyLXZhciAgICAgICAgICAgICAg
ICAxOS44MTUyKy0wLjc3ODEgICAgICAgICAgIDE4Ljc2MDcrLTEuODMxMiAgICAgICAgICBtaWdo
dCBiZSAxLjA1NjJ4IGZhc3RlcgogICBzd2l0Y2gtc3RyaW5nLWxlbmd0aC10b3dlci12YXIgICAg
ICAgICAgICAgICAgICAgIDEzLjY0MjgrLTAuOTA4MSAgICAgICAgICAgMTMuNjA0OCstMC44MTcz
ICAgICAgICAKICAgc3dpdGNoLXN0cmluZy1sZW5ndGgtdG93ZXIgICAgICAgICAgICAgICAgICAg
ICAgICAxMC45MDk3Ky0wLjMyODggICAgICAgICAgIDEwLjgxNjQrLTAuMjY2NCAgICAgICAgCiAg
IHN3aXRjaC1zdHJpbmctc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzMw
OSstMC4yMzg2ICAgICA/ICAgICAxMC43NzM4Ky0wLjM2MTUgICAgICAgID8KICAgc3dpdGNoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS42OTQ3Ky0wLjE3NDMg
ICAgID8gICAgICA1LjczODcrLTAuMTY0OSAgICAgICAgPwogICBzeW1ib2wtdG9zdHJpbmd0YWcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjgyODkrLTAuMTI3MCAgICAgICAgICAg
IDIuNzcwMistMC4wMjUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMnggZmFzdGVyCiAgIHRlYXIt
b2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzAwMystMC4y
MDEwICAgICA/ICAgICAgMi40NTA1Ky0wLjI3ODkgICAgICAgID8gbWlnaHQgYmUgMS4wNjUzeCBz
bG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMy4xODE5Ky0wLjE0MDQgICAgID8gICAgICAzLjIxNjErLTAuMTkyMCAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMDd4IHNsb3dlcgogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDExLjA5NTUrLTAuNjA5OSAgICAgICAgICAgMTAuOTU3OCstMC4zNjg1
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNnggZmFzdGVyCiAgIHRvLWludDMyLWJvb2xlYW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNTcxNSstMC41Mzg0ICAgICAgICAgICAx
Mi4yNzUxKy0wLjQ0MTkgICAgICAgICAgbWlnaHQgYmUgMS4wMjQxeCBmYXN0ZXIKICAgdG8tbnVt
YmVyLWNvbnN0cnVjdG9yLW51bWJlci1zdHJpbmctbnVtYmVyLXN0cmluZyAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQzNDcrLTAuMjE5
MiAgICAgICAgICAgIDMuMzM2OCstMC4xNDM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5M3ggZmFz
dGVyCiAgIHRvLW51bWJlci1jb25zdHJ1Y3Rvci1vbmx5LW51bWJlciAgICAgICAgICAgICAgICAg
IDAuNjY5OCstMC4wNTY2ICAgICAgICAgICAgMC42Mzg3Ky0wLjAzNDggICAgICAgICAgbWlnaHQg
YmUgMS4wNDg3eCBmYXN0ZXIKICAgdG8tbnVtYmVyLWNvbnN0cnVjdG9yLW9ubHktc3RyaW5nICAg
ICAgICAgICAgICAgICAgMS40OTgwKy0wLjA5MzggICAgID8gICAgICAxLjUxMTErLTAuMTY5NyAg
ICAgICAgPwogICB0by1udW1iZXItY29uc3RydWN0b3Itc3RyaW5nLW51bWJlci1zdHJpbmctbnVt
YmVyICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuODIzOSstMC4yMjMzICAgICAgICAgICAgMi43NjcxKy0wLjIxODAgICAgICAgICAgbWln
aHQgYmUgMS4wMjA1eCBmYXN0ZXIKICAgdG8tbnVtYmVyLW51bWJlci1zdHJpbmctbnVtYmVyLXN0
cmluZyAgICAgICAgICAgICAgMi45NTU0Ky0wLjAyMjkgICAgID8gICAgICAzLjA2NDQrLTAuMzU5
OCAgICAgICAgPyBtaWdodCBiZSAxLjAzNjl4IHNsb3dlcgogICB0by1udW1iZXItb25seS1udW1i
ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjYxNTkrLTAuMDQ4OCAgICAgICAgICAg
IDAuNTkyMSstMC4wMzg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwMnggZmFzdGVyCiAgIHRvLW51
bWJlci1vbmx5LXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDM3MSstMC4w
Mzc3ICAgICA/ICAgICAgMS40NzYwKy0wLjAzNDIgICAgICAgID8gbWlnaHQgYmUgMS4wMjcxeCBz
bG93ZXIKICAgdG8tbnVtYmVyLXN0cmluZy1udW1iZXItc3RyaW5nLW51bWJlciAgICAgICAgICAg
ICAgMi42NzczKy0wLjA0MTMgICAgICAgICAgICAyLjY1MzQrLTAuMDQ5OCAgICAgICAgCiAgIHRy
eS1jYXRjaC1nZXQtYnktdmFsLWNsb25lZC1hcmd1bWVudHMgICAgICAgICAgICAgIDMuMjIxNCst
MC4yMTU2ICAgICAgICAgICAgMy4wOTk3Ky0wLjA2NTcgICAgICAgICAgbWlnaHQgYmUgMS4wMzkz
eCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtZGlyZWN0LWFyZ3VtZW50cyAgICAgICAg
ICAgICAgMS45NzkxKy0wLjA5NjIgICAgID8gICAgICAxLjk4NDgrLTAuMDM2MCAgICAgICAgPwog
ICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1zY29wZWQtYXJndW1lbnRzICAgICAgICAgICAgICAzLjg2
NTcrLTAuMTQ2NyAgICAgPyAgICAgIDMuOTM0NCstMC4yMTIwICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE3OHggc2xvd2VyCiAgIHR5cGVkLWFycmF5LWdldC1zZXQtYnktdmFsLXByb2ZpbGluZyAgICAg
ICAgICAgICAgMTkuNTQzMystMC42NTQ5ICAgICAgICAgICAxOS4wODY4Ky0wLjcxMDUgICAgICAg
ICAgbWlnaHQgYmUgMS4wMjM5eCBmYXN0ZXIKICAgdHlwZWQtYXJyYXktc3ViYXJyYXkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNS4xMTEyKy04LjUyOTAgICAgICAgICAgIDMxLjkxNTYr
LTAuMjU1MCAgICAgICAgICBtaWdodCBiZSAxLjEwMDF4IGZhc3RlcgogICB1bmRlZmluZWQtcHJv
cGVydHktYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgMjA1Ljg3MTQrLTAuNDA1NyAgICAg
PyAgICAyMDYuNjM5MistMi4wMTU2ICAgICAgICA/CiAgIHVuZGVmaW5lZC10ZXN0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNzM2MCstMC4xMDQyICAgICA/ICAgICAgMi43
NjY1Ky0wLjE5NjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIKICAgdW5wcm9maWxl
ZC1saWNtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41MzQ0Ky0wLjA4MTYg
ICAgID8gICAgICA1LjY4NjQrLTAuMjcxNiAgICAgICAgPyBtaWdodCBiZSAxLjAyNzV4IHNsb3dl
cgogICB1bnR5cGVkLXN0cmluZy1mcm9tLWNoYXItY29kZSAgICAgICAgICAgICAgICAgICAgICA5
LjIxOTUrLTAuMDg4NCAgICAgPyAgICAgIDkuMjk1MCstMC4yNDE1ICAgICAgICA/CiAgIHY4LXJh
eXRyYWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgMjYuMTM3MCstMC40
ODYwICAgICA/ICAgICAyNi40NTIzKy0wLjc5ODAgICAgICAgID8gbWlnaHQgYmUgMS4wMTIxeCBz
bG93ZXIKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2gtaGlnaC1mcmVxdWVuY3ktdGhyb3dz
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
NzYuNzIwNCstMy45NTA2ICAgICA/ICAgIDI3OC40MTA5Ky0yLjIxMzggICAgICAgID8KICAgdjgt
cmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA1MS45MjI5Ky0x
LjQxOTQgICAgICAgICAgIDUxLjQ2NTcrLTAuNTMzMCAgICAgICAgCiAgIHY4LXJlZ2V4cC1zZWFy
Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYuMjYwNSstMC43NDI1ICAgICAg
ICAgICA0Ni4xMTQwKy0wLjU1MDEgICAgICAgIAogICB2YXJhcmdzLWNhbGwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE0LjA0MTkrLTEuMTI5NSAgICAgICAgICAgMTMuNjIz
MSstMC45MTA2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwN3ggZmFzdGVyCiAgIHZhcmFyZ3MtY29u
c3RydWN0LWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuOTM3OSstMC4yMTczICAg
ICA/ICAgICAxOC4yNzAxKy0wLjU1NzIgICAgICAgID8gbWlnaHQgYmUgMS4wMTg1eCBzbG93ZXIK
ICAgdmFyYXJncy1jb25zdHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4z
ODc1Ky0wLjE2OTcgICAgICAgICAgIDEzLjEzMjIrLTAuMjQ2MiAgICAgICAgICBtaWdodCBiZSAx
LjAxOTR4IGZhc3RlcgogICB2YXJhcmdzLWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3Ljg5MDcrLTAuMzE2NyAgICAgICAgICAgIDcuNzk3NistMC4yNDQwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDExOXggZmFzdGVyCiAgIHZhcmFyZ3Mtc3RyaWN0LW1vZGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDguNzc2MistMC4wNjMwICAgICA/ICAgICAgOC44Mjcx
Ky0wLjE4OTAgICAgICAgID8KICAgdmFyYXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOC43NjgwKy0wLjIxNjYgICAgID8gICAgICA4Ljg2NTgrLTAuMjg2OCAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMTF4IHNsb3dlcgogICB3ZWlyZC1pbmxpbmluZy1jb25zdC1w
cm9wICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk4NjYrLTAuMTE5NyAgICAgPyAgICAgIDEu
OTkzOSstMC4wNzI1ICAgICAgICA/CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2LjQ0NzUrLTAuMDE0NCAgICAgXiAgICAgIDYuNDA2OSstMC4w
MTkzICAgICAgICBeIGRlZmluaXRlbHkgMS4wMDYzeCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAg
ICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkFz
bUJlbmNoOgogICBiaWdmaWIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNDAyLjc1NzkrLTAuOTY2MCAgICAgPyAgICA0MDcuOTI4NSstMTIuODYwMSAgICAgICA/IG1p
Z2h0IGJlIDEuMDEyOHggc2xvd2VyCiAgIGNyYXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzNjAuOTM3MistMy41ODkxICAgICAgICAgIDM2MC41NTEzKy0xLjQ1
NjUgICAgICAgIAogICBkcnkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDMwLjQ1OTMrLTgzLjY0NzcgICAgICAgICAzOTguMjgzNistNi44MDM5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDgwOHggZmFzdGVyCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA2NzAuMjU3NSstOS4xOTQ0ICAgICAgICAgIDY2Ny43NzUxKy0y
Ljk4MTQgICAgICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzMzg2LjI1NjMrLTU4LjUzMDkgICAgICAgIDMzNDMuMTg1NSstMTAuMDU5NiAgICAg
ICAgIG1pZ2h0IGJlIDEuMDEyOXggZmFzdGVyCiAgIG4tYm9keS5jICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA3NDcuMDQ0OCstMy40ODkyICAgICA/ICAgIDc0Ny42Nzk3
Ky02LjU1NjggICAgICAgID8KICAgUXVpY2tzb3J0LmMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM2OS45Mzg0Ky00Ljk1NjQgICAgID8gICAgMzcyLjU3MTgrLTMuOTg2NyAg
ICAgICAgPwogICBzdGVwYW5vdl9jb250YWluZXIuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
ICAzMTA1Ljk5NTYrLTQxLjUyMTggICAgICAgIDMxMDMuODkwNystNDAuNDY5MyAgICAgICAKICAg
VG93ZXJzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0OC45MDYy
Ky0xLjkzNTMgICAgICAgICAgMjQ3LjEzNTQrLTAuODg5NiAgICAgICAgCgogICA8Z2VvbWV0cmlj
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjc3LjM0NzYrLTE0LjE4MTQg
ICAgICAgICA2NzEuOTU1MCstMy40MzI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDA4MHggZmFzdGVy
CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFRpcE9mVHJlZSAgICAgICAgICAgICAgICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIApDb21wcmVzc2lvbkJlbmNoOgogICBodWZmbWFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjQ2NjMrLTAuODQ3MCAgICAgPyAgICAg
MzIuNTQwMCstMS4zNjg4ICAgICAgICA/CiAgIGFyaXRobWV0aWMtc2ltcGxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyNDguNjM4OCstMS41NTQ0ICAgICAgICAgIDI0Ny42NjQ4Ky0w
Ljk3MzcgICAgICAgIAogICBhcml0aG1ldGljLXByZWNpc2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjM0LjE4NDErLTEuNDQ1MyAgICAgPyAgICAyMzcuOTk3MSstMy44NjIzICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDE2M3ggc2xvd2VyCiAgIGFyaXRobWV0aWMtY29tcGxleC1wcmVjaXNl
ICAgICAgICAgICAgICAgICAgICAgICAyMzAuNzcwOCstMC40MTA5ICAgICAhICAgIDIzNy41Njk2
Ky01Ljk4NTEgICAgICAgICEgZGVmaW5pdGVseSAxLjAyOTV4IHNsb3dlcgogICBhcml0aG1ldGlj
LXByZWNpc2Utb3JkZXItMCAgICAgICAgICAgICAgICAgICAgICAgMjUyLjAxMTIrLTIuMjE5MSAg
ICAgPyAgICAyNTUuNTA2NystMi4yODgzICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzOXggc2xvd2Vy
CiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0xICAgICAgICAgICAgICAgICAgICAgICAyODYu
Njc0MistMi44MDA5ICAgICA/ICAgIDI5My4yOTg0Ky03LjE4ODQgICAgICAgID8gbWlnaHQgYmUg
MS4wMjMxeCBzbG93ZXIKICAgYXJpdGhtZXRpYy1wcmVjaXNlLW9yZGVyLTIgICAgICAgICAgICAg
ICAgICAgICAgIDMyMC45MTQ1Ky0yLjIzODIgICAgID8gICAgMzIxLjA0NTUrLTIuMzM4OSAgICAg
ICAgPwogICBhcml0aG1ldGljLXNpbXBsZS1vcmRlci0xICAgICAgICAgICAgICAgICAgICAgICAg
Mjk0LjU0MjArLTQuMDk0MyAgICAgICAgICAyOTIuODE2OCstMy4xNjMzICAgICAgICAKICAgYXJp
dGhtZXRpYy1zaW1wbGUtb3JkZXItMiAgICAgICAgICAgICAgICAgICAgICAgIDM0NC41NTM1Ky00
LjM0NTcgICAgICAgICAgMzQ0LjAwMjArLTUuNTEwMSAgICAgICAgCiAgIGx6LXN0cmluZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNzQuMTc1OSstNC42NDc4ICAgICAg
ICAgIDI3Mi41NDU5Ky00LjQzOTggICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIyMS4yNjUwKy0wLjg3MzEgICAgID8gICAgMjIyLjcz
NTQrLTEuMDk3NCAgICAgICAgPyBtaWdodCBiZSAxLjAwNjZ4IHNsb3dlcgoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAg
ICAgICAgICAgICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDIuNjIzOCstMC4xMDkxICAgICAgICAgICA0Mi41
MzMyKy0wLjEwMjQgICAgICAgICAgbWlnaHQgYmUgMS4wMDIxeCBmYXN0ZXIKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>