<?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>142690</bug_id>
          
          <creation_ts>2015-03-13 23:59:34 -0700</creation_ts>
          <short_desc>ES6 class syntax should allow computed name method</short_desc>
          <delta_ts>2015-08-14 16:50:52 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077126</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-13 23:59:34 -0700</bug_when>
    <thetext>Adopt Joe&apos;s computed property goodness in ES6 class syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077127</commentid>
    <comment_count>1</comment_count>
      <attachid>248641</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-14 00:06:38 -0700</bug_when>
    <thetext>Created attachment 248641
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077777</commentid>
    <comment_count>2</comment_count>
      <attachid>248819</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-16 22:16:51 -0700</bug_when>
    <thetext>Created attachment 248819
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077795</commentid>
    <comment_count>3</comment_count>
      <attachid>248828</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-16 23:06:36 -0700</bug_when>
    <thetext>Created attachment 248828
Updated for ToT again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080894</commentid>
    <comment_count>4</comment_count>
      <attachid>248828</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-27 23:03:05 -0700</bug_when>
    <thetext>Comment on attachment 248828
Updated for ToT again

This no longer applies on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081770</commentid>
    <comment_count>5</comment_count>
      <attachid>249848</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-31 13:55:17 -0700</bug_when>
    <thetext>Created attachment 249848
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081771</commentid>
    <comment_count>6</comment_count>
      <attachid>249848</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-31 13:55:53 -0700</bug_when>
    <thetext>Comment on attachment 249848
Fixes the bug

Wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117581</commentid>
    <comment_count>7</comment_count>
      <attachid>258984</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-13 22:54:12 -0700</bug_when>
    <thetext>Created attachment 258984
Adds the support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117716</commentid>
    <comment_count>8</comment_count>
      <attachid>259027</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-14 12:40:34 -0700</bug_when>
    <thetext>Created attachment 259027
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117744</commentid>
    <comment_count>9</comment_count>
      <attachid>259032</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-14 13:39:28 -0700</bug_when>
    <thetext>Created attachment 259032
Fixed 32-bit build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117830</commentid>
    <comment_count>10</comment_count>
      <attachid>259032</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-14 16:48:50 -0700</bug_when>
    <thetext>Comment on attachment 259032
Fixed 32-bit build

r=me
I think it&apos;d be good to have tests for computed method names that have side effects and we should assert that we do things in the correct order:
&quot;[(x = 20, &quot;foo&quot;)] {..}, [assert(x === 20), &quot;bar&quot;] {...}&quot;.
Ryosuke says he will open up another bug for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117831</commentid>
    <comment_count>11</comment_count>
      <attachid>259032</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-14 16:50:46 -0700</bug_when>
    <thetext>Comment on attachment 259032
Fixed 32-bit build

Clearing flags on attachment: 259032

Committed r188498: &lt;http://trac.webkit.org/changeset/188498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117832</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-14 16:50:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248641</attachid>
            <date>2015-03-14 00:06:38 -0700</date>
            <delta_ts>2015-03-16 22:16:46 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-142690-20150314000611.patch</filename>
            <type>text/plain</type>
            <size>21886</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGY0NWRhMTRlNTE1ODkyZjU5NWFmOWY1MGViNTBmMDRmZjJjZTJlLi40ZDUyZDUzYWQ4MDc3ZWQ4
YjY0NDhjYTY2ZGU0YTQ4MDBkY2RhOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNCBAQAogMjAxNS0wMy0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAorICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1l
dGhvZCBhcyB3ZWxsIGFzIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgc3VwcG9ydCBmb3Ig
Y29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5bnRheC4gZS5nLgorICAgICAg
ICBjbGFzcyBBIHsKKyAgICAgICAgICAgIFsiYmFyIiArIDFdKCkgeyB9CisgICAgICAgIH0KKyAg
ICAgICAgKG5ldyBBKS5iYXIxKCk7CisKKyAgICAgICAgQWxzbyBmaXhlZCBhIGJ1ZyB0aGF0IHdl
IHdlcmUgZGlzYWxsb3dpbmcgc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMuIGUuZy4KKyAgICAg
ICAgY2xhc3MgQiB7CisgICAgICAgICAgICBzdGF0aWMgZ2V0IGZvbygpIHsgfQorICAgICAgICB9
CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWls
ZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUpOgorICAgICAgICAq
IHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyk6IEFkZGVkIHRoZSBzdXBwb3J0IGZv
ciBwYXJzaW5nIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcy4KKyAgICAgICAgTXVjaCBvZiB0
aGUgY29kZSBjaGFuZ2UgaXMgYWJvdXQgaW5kZW50aW5nIHRoZSBleGl0aW5nIGNvZGUuCisgICAg
ICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tl
cjo6Y3JlYXRlUHJvcGVydHkpOgorCisyMDE1LTAzLTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCiAgICAgICAgIHBhcnNlQ2xhc3Mgc2hvdWxkIHBvcFNjb3BlIGFmdGVyIHB1
c2hTY29wZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyNjg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXgg
ZGYzYmUxZTk0MTBmZGNmNWViZWFjY2Q4NTE1ODc2MGU1YWY4NmYzOS4uMmVjYzRiZTk1YzFmN2Uy
ZDRkNjdjZTlmMWQ1ODc0ODc2N2NiMjQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9BU1RCdWlsZGVyLmgKQEAgLTM1MCw3ICszNTAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHBhcnNlckFyZW5hLmlk
ZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2bSwgcHJvcGVydHlOYW1lKSwg
bm9kZSwgdHlwZSwgcHV0VHlwZSk7CiAgICAgfQotICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJv
cGVydHkoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUs
IFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSwg
Ym9vbCkgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVydHlO
YW1lLCBub2RlLCB0eXBlLCBwdXRUeXBlKTsgfQorICAgIFByb3BlcnR5Tm9kZSogY3JlYXRlUHJv
cGVydHkoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqIG5vZGUs
IFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUgcHV0VHlwZSwg
Ym9vbCwgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVk
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2Rl
KHByb3BlcnR5TmFtZSwgbm9kZSwgdHlwZSwgcHV0VHlwZSwgc3VwZXJCaW5kaW5nKTsKKyAgICB9
CiAgICAgUHJvcGVydHlMaXN0Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZSogcHJvcGVydHkpIHsgcmV0dXJuIG5ldyAo
bV9wYXJzZXJBcmVuYSkgUHJvcGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHkpOyB9CiAg
ICAgUHJvcGVydHlMaXN0Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIFByb3BlcnR5Tm9kZSogcHJvcGVydHksIFByb3BlcnR5TGlzdE5vZGUq
IHRhaWwpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlMaXN0Tm9kZShsb2Nh
dGlvbiwgcHJvcGVydHksIHRhaWwpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggMDU3YmMzZDkyODA5ZjQ2YjA2MjcxYWMwMTJh
YmVjZDZjODhhNjg0YS4uZjIxMGU3OGZmMTFmMGY0ODQzNjI3NmFkZTBlNWQ4MzU5ODgxMGNlZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgK
QEAgLTE3MywxMiArMTczLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKLSAg
ICBpbmxpbmUgUHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIG5hbWUs
IEV4cHJlc3Npb25Ob2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlKQorICAg
IGlubGluZSBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogbmFtZSwg
RXhwcmVzc2lvbk5vZGUqIGFzc2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUsIFN1cGVy
QmluZGluZyBzdXBlckJpbmRpbmcpCiAgICAgICAgIDogbV9uYW1lKDApCiAgICAgICAgICwgbV9l
eHByZXNzaW9uKG5hbWUpCiAgICAgICAgICwgbV9hc3NpZ24oYXNzaWduKQogICAgICAgICAsIG1f
dHlwZSh0eXBlKQotICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmcoZmFsc2UpCisgICAgICAg
ICwgbV9uZWVkc1N1cGVyQmluZGluZyhzdXBlckJpbmRpbmcgPT0gU3VwZXJCaW5kaW5nOjpOZWVk
ZWQpCiAgICAgICAgICwgbV9wdXRUeXBlKHB1dFR5cGUpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCBkMGJiZTgwN2MxMzJlMmY5MDJkMWQzMzIzNmFm
MTMzMGRkZGU0ZGY0Li43YTBkNzI3ZWYyOGU3ZGRiMDUwNzRmNWI5ZTU0YWJhNzRjODk1ZTQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC01MTIsNyArNTEyLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGVudW0gUHV0VHlwZSB7IFVua25vd24sIEtub3duRGlyZWN0
IH07CiAKICAgICAgICAgUHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9u
Tm9kZSosIFR5cGUsIFB1dFR5cGUsIFN1cGVyQmluZGluZyk7Ci0gICAgICAgIFByb3BlcnR5Tm9k
ZShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1
dFR5cGUpOworICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIHByb3BlcnR5TmFt
ZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlLCBTdXBlckJpbmRpbmcpOwogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
cmVzc2lvbjsgfQogICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXgg
MzE3NWMwNDQzM2UyYmI0YzE2ZDQwM2NmZDg5MGQ4Y2I3Y2QwY2QxNy4uMDYwNWFiYjI0MTg5ODQ0
N2IzZGQxN2E1ZThmOGNmZjM3MWQxNmUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmNwcApAQCAtMTQ4OSw5ICsxNDg5LDkgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlQ2xhc3NFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUNsYXNzKFQK
ICAgICBjb25zdW1lT3JGYWlsV2l0aEZsYWdzKE9QRU5CUkFDRSwgVHJlZUJ1aWxkZXI6OkRvbnRC
dWlsZFN0cmluZ3MsICJFeHBlY3RlZCBvcGVuaW5nICd7JyBhdCB0aGUgc3RhcnQgb2YgYSBjbGFz
cyBib2R5Iik7CiAKICAgICBUcmVlRXhwcmVzc2lvbiBjb25zdHJ1Y3RvciA9IDA7Ci0gICAgVHJl
ZVByb3BlcnR5TGlzdCBzdGF0aWNNZXRob2RzID0gMDsKICAgICBUcmVlUHJvcGVydHlMaXN0IGlu
c3RhbmNlTWV0aG9kcyA9IDA7CiAgICAgVHJlZVByb3BlcnR5TGlzdCBpbnN0YW5jZU1ldGhvZHNU
YWlsID0gMDsKKyAgICBUcmVlUHJvcGVydHlMaXN0IHN0YXRpY01ldGhvZHMgPSAwOwogICAgIFRy
ZWVQcm9wZXJ0eUxpc3Qgc3RhdGljTWV0aG9kc1RhaWwgPSAwOwogICAgIHdoaWxlICghbWF0Y2go
Q0xPU0VCUkFDRSkpIHsKICAgICAgICAgaWYgKG1hdGNoKFNFTUlDT0xPTikpCkBAIC0xNTA1LDQx
ICsxNTA1LDUzIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNzRXhwcmVz
c2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyhUCiAgICAgICAgIGlmIChpc1N0YXRp
Y01ldGhvZCkKICAgICAgICAgICAgIG5leHQoKTsKIAotICAgICAgICBtYXRjaE9yRmFpbChJREVO
VCwgIkV4cGVjdGVkIGFuIGluZGVudGlmaWVyIik7Ci0KICAgICAgICAgY29uc3QgQ29tbW9uSWRl
bnRpZmllcnMmIHByb3BlcnR5TmFtZXMgPSAqbV92bS0+cHJvcGVydHlOYW1lczsKLSAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSAqbV90b2tlbi5tX2RhdGEuaWRlbnQ7Ci0gICAgICAg
IGJvb2wgaXNHZXR0ZXIgPSBpZGVudCA9PSBwcm9wZXJ0eU5hbWVzLmdldDsKLSAgICAgICAgYm9v
bCBpc1NldHRlciA9IGlkZW50ID09IHByb3BlcnR5TmFtZXMuc2V0OwotCiAgICAgICAgIFRyZWVQ
cm9wZXJ0eSBwcm9wZXJ0eTsKICAgICAgICAgY29uc3QgYm9vbCBhbHdheXNTdHJpY3RJbnNpZGVD
bGFzcyA9IHRydWU7Ci0gICAgICAgIGlmIChpc0dldHRlciB8fCBpc1NldHRlcikgewotICAgICAg
ICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGlzU3RhdGljTWV0aG9kLCAiQ2Fubm90IGRlY2xhcmUg
YSBzdGF0aWMiLCBzdHJpbmdGb3JGdW5jdGlvbk1vZGUoaXNHZXR0ZXIgPyBHZXR0ZXJNb2RlIDog
U2V0dGVyTW9kZSkpOwotICAgICAgICAgICAgbmV4dEV4cGVjdElkZW50aWZpZXIoTGV4ZXJGbGFn
c0lnbm9yZVJlc2VydmVkV29yZHMpOwotICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZUdldHRl
clNldHRlcihjb250ZXh0LCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgaXNHZXR0ZXIgPyBQcm9w
ZXJ0eU5vZGU6OkdldHRlciA6IFByb3BlcnR5Tm9kZTo6U2V0dGVyLCBtZXRob2RTdGFydCwgY29u
c3RydWN0b3JLaW5kLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCk7Ci0gICAgICAgICAgICBmYWlsSWZG
YWxzZShwcm9wZXJ0eSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgICAgICBpZiAo
bWF0Y2goT1BFTkJSQUNLRVQpKSB7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICBU
cmVlRXhwcmVzc2lvbiBjb21wdXRlZE5hbWUgPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7Cisg
ICAgICAgICAgICBmYWlsSWZGYWxzZShjb21wdXRlZE5hbWUsICJDYW5ub3QgcGFyc2UgY29tcHV0
ZWQgcHJvcGVydHkgbmFtZSIpOworICAgICAgICAgICAgaGFuZGxlUHJvZHVjdGlvbk9yRmFpbChD
TE9TRUJSQUNLRVQsICJdIiwgImVuZCIsICJjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIik7CisgICAg
ICAgICAgICBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+IGNvbXB1dGVkTWV0aG9kSW5m
bzsKKyAgICAgICAgICAgIGNvbXB1dGVkTWV0aG9kSW5mby5uYW1lID0gJnByb3BlcnR5TmFtZXMu
bnVsbElkZW50aWZpZXI7CisgICAgICAgICAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbklu
Zm8oY29udGV4dCwgRnVuY3Rpb25Ob1JlcXVpcmVtZW50cywKKyAgICAgICAgICAgICAgICBpc1N0
YXRpY01ldGhvZCA/IEZ1bmN0aW9uTW9kZSA6IE1ldGhvZE1vZGUsIGZhbHNlLCBjb25zdHJ1Y3Rv
cktpbmQsIGNvbXB1dGVkTWV0aG9kSW5mbykpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7
CisgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBjb21wdXRlZE1ldGhvZCA9IGNvbnRleHQuY3Jl
YXRlRnVuY3Rpb25FeHByKG1ldGhvZExvY2F0aW9uLCBjb21wdXRlZE1ldGhvZEluZm8sIG1ldGhv
ZFN0YXJ0KTsKKyAgICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShj
b21wdXRlZE5hbWUsIGNvbXB1dGVkTWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9w
ZXJ0eU5vZGU6Oktub3duRGlyZWN0LCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5k
aW5nOjpOZWVkZWQpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUGFyc2VyRnVuY3Rp
b25JbmZvPFRyZWVCdWlsZGVyPiBtZXRob2RJbmZvOwotICAgICAgICAgICAgZmFpbElmRmFsc2Uo
KHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTmVlZHNOYW1lLCBpc1N0YXRpY01l
dGhvZCA/IEZ1bmN0aW9uTW9kZSA6IE1ldGhvZE1vZGUsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQs
IG1ldGhvZEluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOwotICAgICAgICAgICAg
ZmFpbElmRmFsc2UobWV0aG9kSW5mby5uYW1lLCAibWV0aG9kIG11c3QgaGF2ZSBhIG5hbWUiKTsK
LSAgICAgICAgICAgIGZhaWxJZkZhbHNlKGRlY2xhcmVWYXJpYWJsZShtZXRob2RJbmZvLm5hbWUp
LCAiQ2Fubm90IGRlY2xhcmUgYSBtZXRob2QgbmFtZWQgJyIsIG1ldGhvZEluZm8ubmFtZS0+aW1w
bCgpLCAiJyIpOwotCi0gICAgICAgICAgICBib29sIGlzQ29uc3RydWN0b3IgPSAhaXNTdGF0aWNN
ZXRob2QgJiYgKm1ldGhvZEluZm8ubmFtZSA9PSBwcm9wZXJ0eU5hbWVzLmNvbnN0cnVjdG9yOwot
ICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgbWV0aG9kSW5m
by5uYW1lID0gY2xhc3NOYW1lOwotCi0gICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBtZXRob2Qg
PSBjb250ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhwcihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5mbywg
bWV0aG9kU3RhcnQpOwotICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0b3IpIHsKLSAgICAgICAg
ICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoY29uc3RydWN0b3IsICJDYW5ub3QgZGVjbGFyZSBt
dWx0aXBsZSBjb25zdHJ1Y3RvcnMgaW4gYSBzaW5nbGUgY2xhc3MiKTsKLSAgICAgICAgICAgICAg
ICBjb25zdHJ1Y3RvciA9IG1ldGhvZDsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIG1hdGNoT3JGYWlsKElERU5ULCAiRXhwZWN0ZWQgYW4gaW5k
ZW50aWZpZXIiKTsKKworICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSAqbV90
b2tlbi5tX2RhdGEuaWRlbnQ7CisgICAgICAgICAgICBib29sIGlzR2V0dGVyID0gaWRlbnQgPT0g
cHJvcGVydHlOYW1lcy5nZXQ7CisgICAgICAgICAgICBib29sIGlzU2V0dGVyID0gaWRlbnQgPT0g
cHJvcGVydHlOYW1lcy5zZXQ7CiAKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTeW50YXggZXJyb3Ig
d2hlbiBzdXBlcigpIGlzIGNhbGxlZAotICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGlz
U3RhdGljTWV0aG9kICYmICptZXRob2RJbmZvLm5hbWUgPT0gcHJvcGVydHlOYW1lcy5wcm90b3R5
cGUsCi0gICAgICAgICAgICAgICAgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGljIG1ldGhvZCBuYW1l
ZCAncHJvdG90eXBlJyIpOwotICAgICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0LmNyZWF0ZVBy
b3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQ
cm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBTdXBlckJpbmRp
bmc6Ok5lZWRlZCk7CisgICAgICAgICAgICBpZiAoaXNHZXR0ZXIgfHwgaXNTZXR0ZXIpIHsKKyAg
ICAgICAgICAgICAgICBuZXh0RXhwZWN0SWRlbnRpZmllcihMZXhlckZsYWdzSWdub3JlUmVzZXJ2
ZWRXb3Jkcyk7CisgICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZUdldHRlclNldHRlcihj
b250ZXh0LCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgaXNHZXR0ZXIgPyBQcm9wZXJ0eU5vZGU6
OkdldHRlciA6IFByb3BlcnR5Tm9kZTo6U2V0dGVyLCBtZXRob2RTdGFydCwgY29uc3RydWN0b3JL
aW5kLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCk7CisgICAgICAgICAgICAgICAgZmFpbElmRmFsc2Uo
cHJvcGVydHksICJDYW5ub3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBtZXRo
b2RJbmZvOworICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhj
b250ZXh0LCBGdW5jdGlvbk5lZWRzTmFtZSwgaXNTdGF0aWNNZXRob2QgPyBGdW5jdGlvbk1vZGUg
OiBNZXRob2RNb2RlLCBmYWxzZSwgY29uc3RydWN0b3JLaW5kLCBtZXRob2RJbmZvKSksICJDYW5u
b3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKKyAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShtZXRo
b2RJbmZvLm5hbWUsICJtZXRob2QgbXVzdCBoYXZlIGEgbmFtZSIpOworICAgICAgICAgICAgICAg
IGZhaWxJZkZhbHNlKGRlY2xhcmVWYXJpYWJsZShtZXRob2RJbmZvLm5hbWUpLCAiQ2Fubm90IGRl
Y2xhcmUgYSBtZXRob2QgbmFtZWQgJyIsIG1ldGhvZEluZm8ubmFtZS0+aW1wbCgpLCAiJyIpOwor
CisgICAgICAgICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdG9yID0gIWlzU3RhdGljTWV0aG9kICYm
ICptZXRob2RJbmZvLm5hbWUgPT0gcHJvcGVydHlOYW1lcy5jb25zdHJ1Y3RvcjsKKyAgICAgICAg
ICAgICAgICBpZiAoaXNDb25zdHJ1Y3RvcikKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kSW5m
by5uYW1lID0gY2xhc3NOYW1lOworCisgICAgICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gbWV0
aG9kID0gY29udGV4dC5jcmVhdGVGdW5jdGlvbkV4cHIobWV0aG9kTG9jYXRpb24sIG1ldGhvZElu
Zm8sIG1ldGhvZFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb25zdHJ1Y3Rvcikgewor
ICAgICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoY29uc3RydWN0b3IsICJDYW5u
b3QgZGVjbGFyZSBtdWx0aXBsZSBjb25zdHJ1Y3RvcnMgaW4gYSBzaW5nbGUgY2xhc3MiKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3RydWN0b3IgPSBtZXRob2Q7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBTeW50YXggZXJyb3Igd2hlbiBzdXBlcigpIGlzIGNhbGxlZAorICAgICAgICAgICAgICAg
IHNlbWFudGljRmFpbElmVHJ1ZShpc1N0YXRpY01ldGhvZCAmJiAqbWV0aG9kSW5mby5uYW1lID09
IHByb3BlcnR5TmFtZXMucHJvdG90eXBlLAorICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IGRl
Y2xhcmUgYSBzdGF0aWMgbWV0aG9kIG5hbWVkICdwcm90b3R5cGUnIik7CisgICAgICAgICAgICAg
ICAgcHJvcGVydHkgPSBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0
aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5
c1N0cmljdEluc2lkZUNsYXNzLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAogICAgICAgICBUcmVlUHJvcGVydHlMaXN0JiB0YWlsID0gaXNTdGF0aWNN
ZXRob2QgPyBzdGF0aWNNZXRob2RzVGFpbCA6IGluc3RhbmNlTWV0aG9kc1RhaWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCmluZGV4IGFhMzhlMzJkYjE2
NmE0MjAwMWNhMjMyNjgwODczOGVkMjAwYjhiNWEuLjc4OGU5MTk2YWY4YjM3ZTI0N2ExMjBjYWU3
MTE0NDViMDcwZWU3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4
Q2hlY2tlci5oCkBAIC0xODksNyArMTg5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJu
IFByb3BlcnR5KHR5cGUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkoJnBhcnNlckFyZW5hLmlk
ZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2bSwgbmFtZSksIHR5cGUpOwog
ICAgIH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShpbnQsIGludCwgUHJvcGVydHlOb2Rl
OjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCkKKyAgICBQcm9wZXJ0eSBj
cmVhdGVQcm9wZXJ0eShpbnQsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5
Tm9kZTo6UHV0VHlwZSwgYm9vbCwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVk
ZWQpCiAgICAgewogICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU3ZTZlYTA1NGJkODRjZDA1NTdjZDUwN2YyYTViOWNjYWFlMDRlMjYuLjhjMDhmM2E5NTcwNDk0
ZDk4Y2Q2NDRmNTA0NDg4ZTFjYzBmYTA0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxNS0w
My0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAorICAgICAgICBFUzYgY2xh
c3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1ldGhvZCBhcyB3ZWxsIGFzIHN0
YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3QgZm9yIGNvbXB1dGVkIG1ldGhvZCBuYW1lcy4K
KworICAgICAgICBBbHNvIGFkZGVkIHRlc3QgY2FzZXMgZm9yIHN0YXRpYyBnZXR0ZXJzIGFuZCBz
ZXR0ZXJzIHRvIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICoganMvY2xhc3Mtc3ludGF4LWNv
bXB1dGVkLW1ldGhvZC1uYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvY2xh
c3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvY2xh
c3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10
ZXN0cy9jbGFzcy1zeW50YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuanM6IEFkZGVkLgorICAgICAg
ICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanM6CisgICAgICAg
ICoganMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzOgorCisyMDE1LTAz
LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCiAgICAgICAgIHBhcnNlQ2xh
c3Mgc2hvdWxkIHBvcFNjb3BlIGFmdGVyIHB1c2hTY29wZQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjg5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2QtbmFtZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQwOTFhMTBlZDMxNGYxZmQyYTc3YmE0MTE3NzdlODFmYmJjZTQwN2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtY29tcHV0ZWQt
bWV0aG9kLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgdGhlIGJlaGF2aW9yIG9mIGNvbXB1dGVkIHByb3BlcnR5IG5hbWVzIGluIEVTNiBjbGFzcyBz
eW50YXguCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIChjbGFzcyB7IHN0
YXRpYyBbImhpIl0oKSB7IHJldHVybiAxOyB9IH0pLmhpKCkgaXMgMQorUEFTUyAobmV3IChjbGFz
cyB7IFsiaGkiXSgpIHsgcmV0dXJuIDI7IH0gfSkpLmhpKCkgaXMgMgorUEFTUyAoY2xhc3MgeyBz
dGF0aWMgWyJoaSJdKCkgeyByZXR1cm4gMzsgfSBzdGF0aWMgaGkoKSB7IHJldHVybiA0OyB9IH0p
LmhpKCkgaXMgNAorUEFTUyB2YXIgYyA9IG5ldyAoY2xhc3MgeyBoaSgpIHsgcmV0dXJuIDU7IH0g
WyJoaSJdKCkgeyByZXR1cm4gNjsgfSB9KTsgYy5oaSgpIGlzIDYKK1BBU1MgdmFyIGMgPSBuZXcg
KGNsYXNzIHsgW05hTl0oKSB7IHJldHVybiA3OyB9IH0pOyBjW05hTl0oKTsgaXMgNworUEFTUyB2
YXIgYSA9ICJoZWxsbyIsIGIgPSA4OyAobmV3IChjbGFzcyB7IFthICsgYl0oKSB7IHJldHVybiA5
OyB9IH0pKS5oZWxsbzgoKSBpcyA5CitQQVNTIHZhciBjID0gbmV3IChjbGFzcyB7IFsyICogNV0o
KSB7IHJldHVybiAxMTsgfSB9KTsgY1siMTAiXSgpIGlzIDExCitQQVNTIHZhciBjID0gbmV3IChj
bGFzcyB7IFtudWxsXSgpIHsgcmV0dXJuIDEyOyB9IFt1bmRlZmluZWRdKCkgeyByZXR1cm4gMTM7
IH0gfSk7IGNbdW5kZWZpbmVkXSgpIGlzIDEzCitQQVNTIHZhciBjID0gbmV3IChjbGFzcyB7IFsx
NCArIDAuMDEgKyAieCJdKHgpIHsgcmV0dXJuIHggKyAxNTsgfSB9KTsgY1siMTQuMDF4Il0oMSkg
aXMgMTYKK1BBU1MgbmV3IChjbGFzcyB7IFsxK10oKSB7IH0gfSkgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICddJy4KK1BBU1MgbmV3IChjbGFzcyB7IFt2YXJd
KCkgeyB9IH0pIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBrZXl3b3Jk
ICd2YXInLgorUEFTUyBuZXcgKGNsYXNzIHsgW2Jhel0oKSB7IH0gfSkgdGhyZXcgZXhjZXB0aW9u
IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBiYXouCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9jbGFzcy1zeW50YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMmQ1MjUzMTc3ZDE1MjFkM2I3NTI5ZTI4NDc0NjMzMWFjMDQyNjk3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmh0
bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2NsYXNz
LXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1z
eW50YXgtZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDkzYzVlNGEwMmY1MjdhMzkzYzRm
YTg3NmY4NTllM2E1MmRiZjY4MjkuLmNmYmJiZDQ3MmVlNzVhOWQ4YmNmMWVjZjIxYWM2ZWMxMzIz
M2U3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlv
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtNSwxNCArNSwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RQogCiBQQVNTIGNvbnN0cnVjdG9yQ2FsbENvdW50IGlzIDAKIFBBU1MgQS5zb21lU3RhdGljTWV0
aG9kKCkgaXMgc3RhdGljTWV0aG9kVmFsdWUKK1BBU1MgQS5zb21lU3RhdGljR2V0dGVyIGlzIGdl
dHRlclZhbHVlCitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0
ZXIgPSAxMjM7IHNldHRlclZhbHVlIGlzIDEyMwogUEFTUyAobmV3IEEpLnNvbWVJbnN0YW5jZU1l
dGhvZCgpIGlzIGluc3RhbmNlTWV0aG9kVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQg
aXMgMQogUEFTUyAobmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKIFBBU1MgY29uc3Ry
dWN0b3JDYWxsQ291bnQgaXMgMgogUEFTUyAobmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFs
dWUKLVBBU1Mgc2V0dGVyVmFsdWUgaXMgdW5kZWZpbmVkCi1QQVNTIChuZXcgQSkuc29tZVNldHRl
ciA9IDc4OSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mgc2V0dGVyVmFsdWUgaXMgNzg5
CitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7
IHNldHRlclZhbHVlIGlzIDc4OQogUEFTUyAobmV3IEEpLl9fcHJvdG9fXyBpcyBBLnByb3RvdHlw
ZQogUEFTUyBBLnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBBCiBQQVNTIGNsYXNzIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBlbmQgb2Ygc2NyaXB0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0CmluZGV4
IDM4MDc0NjE3YTE1MWFhOTlhODcyOWU5ZTY1MzU0NjIyOThiZjNlZmEuLmI4YWFhOWFjOTNhN2U1
YmZkYjRmZDQ5NzI2OGU0ODc1MjZhODgxY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2Ns
YXNzLXN5bnRheC1leHByZXNzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9j
bGFzcy1zeW50YXgtZXhwcmVzc2lvbi1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTQgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAwCiBQ
QVNTIEEuc29tZVN0YXRpY01ldGhvZCgpIGlzIHN0YXRpY01ldGhvZFZhbHVlCitQQVNTIEEuc29t
ZVN0YXRpY0dldHRlciBpcyBnZXR0ZXJWYWx1ZQorUEFTUyBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5l
ZDsgQS5zb21lU3RhdGljU2V0dGVyID0gMTIzOyBzZXR0ZXJWYWx1ZSBpcyAxMjMKIFBBU1MgKG5l
dyBBKS5zb21lSW5zdGFuY2VNZXRob2QoKSBpcyBpbnN0YW5jZU1ldGhvZFZhbHVlCiBQQVNTIGNv
bnN0cnVjdG9yQ2FsbENvdW50IGlzIDEKIFBBU1MgKG5ldyBBKS5zb21lR2V0dGVyIGlzIGdldHRl
clZhbHVlCiBQQVNTIGNvbnN0cnVjdG9yQ2FsbENvdW50IGlzIDIKIFBBU1MgKG5ldyBBKS5zb21l
R2V0dGVyIGlzIGdldHRlclZhbHVlCi1QQVNTIHNldHRlclZhbHVlIGlzIHVuZGVmaW5lZAotUEFT
UyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNT
IHNldHRlclZhbHVlIGlzIDc4OQorUEFTUyBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgKG5ldyBB
KS5zb21lU2V0dGVyID0gNzg5OyBzZXR0ZXJWYWx1ZSBpcyA3ODkKIFBBU1MgKG5ldyBBKS5fX3By
b3RvX18gaXMgQS5wcm90b3R5cGUKIFBBU1MgQS5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgQQog
UEFTUyB4ID0gY2xhc3MgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVu
ZCBvZiBzY3JpcHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xh
c3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2QtbmFtZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YTRlMDNjNzkwMjQ1NDJkMzRiNjZiMDZmMDM5MzUyNGY4YTgyYTJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRo
b2QtbmFtZS5qcwpAQCAtMCwwICsxLDE3IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgY29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5
bnRheC4iKTsKKworc2hvdWxkQmUoJyhjbGFzcyB7IHN0YXRpYyBbImhpIl0oKSB7IHJldHVybiAx
OyB9IH0pLmhpKCknLCAnMScpOworc2hvdWxkQmUoJyhuZXcgKGNsYXNzIHsgWyJoaSJdKCkgeyBy
ZXR1cm4gMjsgfSB9KSkuaGkoKScsICcyJyk7CitzaG91bGRCZSgnKGNsYXNzIHsgc3RhdGljIFsi
aGkiXSgpIHsgcmV0dXJuIDM7IH0gc3RhdGljIGhpKCkgeyByZXR1cm4gNDsgfSB9KS5oaSgpJywg
JzQnKTsKK3Nob3VsZEJlKCd2YXIgYyA9IG5ldyAoY2xhc3MgeyBoaSgpIHsgcmV0dXJuIDU7IH0g
WyJoaSJdKCkgeyByZXR1cm4gNjsgfSB9KTsgYy5oaSgpJywgJzYnKTsKK3Nob3VsZEJlKCd2YXIg
YyA9IG5ldyAoY2xhc3MgeyBbTmFOXSgpIHsgcmV0dXJuIDc7IH0gfSk7IGNbTmFOXSgpOycsICc3
Jyk7CitzaG91bGRCZSgndmFyIGEgPSAiaGVsbG8iLCBiID0gODsgKG5ldyAoY2xhc3MgeyBbYSAr
IGJdKCkgeyByZXR1cm4gOTsgfSB9KSkuaGVsbG84KCknLCAnOScpOworc2hvdWxkQmUoJ3ZhciBj
ID0gbmV3IChjbGFzcyB7IFsyICogNV0oKSB7IHJldHVybiAxMTsgfSB9KTsgY1siMTAiXSgpJywg
JzExJyk7CitzaG91bGRCZSgndmFyIGMgPSBuZXcgKGNsYXNzIHsgW251bGxdKCkgeyByZXR1cm4g
MTI7IH0gW3VuZGVmaW5lZF0oKSB7IHJldHVybiAxMzsgfSB9KTsgY1t1bmRlZmluZWRdKCknLCAn
MTMnKTsKK3Nob3VsZEJlKCd2YXIgYyA9IG5ldyAoY2xhc3MgeyBbMTQgKyAwLjAxICsgIngiXSh4
KSB7IHJldHVybiB4ICsgMTU7IH0gfSk7IGNbIjE0LjAxeCJdKDEpJywgJzE2Jyk7CisKK3Nob3Vs
ZFRocm93KCduZXcgKGNsYXNzIHsgWzErXSgpIHsgfSB9KScsICciU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gXCddXCciJyk7CitzaG91bGRUaHJvdygnbmV3IChjbGFzcyB7IFt2YXJdKCkg
eyB9IH0pJywgJyJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBrZXl3b3JkIFwndmFyXCciJyk7Citz
aG91bGRUaHJvdygnbmV3IChjbGFzcyB7IFtiYXpdKCkgeyB9IH0pJywgJyJSZWZlcmVuY2VFcnJv
cjogQ2FuXCd0IGZpbmQgdmFyaWFibGU6IGJheiInKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mt
c3ludGF4LWRlY2xhcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNz
LXN5bnRheC1kZWNsYXJhdGlvbi5qcwppbmRleCAwMzUzMjFlNzgzYTVjMGU4YmJiNzI0MzhhYzdk
MWIxY2MxYmZhOWJlLi4zYTUxNzc1NzhkNTljMTgwZTAwOTRjMjc4YjAwOGM1Yjg1NDJkODQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWRlY2xh
cmF0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgt
ZGVjbGFyYXRpb24uanMKQEAgLTksNiArOSw4IEBAIHZhciBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5l
ZDsKIGNsYXNzIEEgewogICAgIGNvbnN0cnVjdG9yKCkgeyBjb25zdHJ1Y3RvckNhbGxDb3VudCsr
OyB9CiAgICAgc3RhdGljIHNvbWVTdGF0aWNNZXRob2QoKSB7IHJldHVybiBzdGF0aWNNZXRob2RW
YWx1ZTsgfQorICAgIHN0YXRpYyBnZXQgc29tZVN0YXRpY0dldHRlcigpIHsgcmV0dXJuIGdldHRl
clZhbHVlOyB9CisgICAgc3RhdGljIHNldCBzb21lU3RhdGljU2V0dGVyKHZhbHVlKSB7IHNldHRl
clZhbHVlID0gdmFsdWU7IH0KICAgICBzb21lSW5zdGFuY2VNZXRob2QoKSB7IHJldHVybiBpbnN0
YW5jZU1ldGhvZFZhbHVlOyB9CiAgICAgZ2V0IHNvbWVHZXR0ZXIoKSB7IHJldHVybiBnZXR0ZXJW
YWx1ZTsgfQogICAgIHNldCBzb21lU2V0dGVyKHZhbHVlKSB7IHNldHRlclZhbHVlID0gdmFsdWU7
IH0KQEAgLTE2LDE0ICsxOCwxNCBAQCBjbGFzcyBBIHsKIAogc2hvdWxkQmUoImNvbnN0cnVjdG9y
Q2FsbENvdW50IiwgIjAiKTsKIHNob3VsZEJlKCJBLnNvbWVTdGF0aWNNZXRob2QoKSIsICJzdGF0
aWNNZXRob2RWYWx1ZSIpOworc2hvdWxkQmUoIkEuc29tZVN0YXRpY0dldHRlciIsICJnZXR0ZXJW
YWx1ZSIpOworc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNT
ZXR0ZXIgPSAxMjM7IHNldHRlclZhbHVlIiwgIjEyMyIpOwogc2hvdWxkQmUoIihuZXcgQSkuc29t
ZUluc3RhbmNlTWV0aG9kKCkiLCAiaW5zdGFuY2VNZXRob2RWYWx1ZSIpOwogc2hvdWxkQmUoImNv
bnN0cnVjdG9yQ2FsbENvdW50IiwgIjEiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVHZXR0ZXIi
LCAiZ2V0dGVyVmFsdWUiKTsKIHNob3VsZEJlKCJjb25zdHJ1Y3RvckNhbGxDb3VudCIsICIyIik7
CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lR2V0dGVyIiwgImdldHRlclZhbHVlIik7Ci1zaG91bGRC
ZSgic2V0dGVyVmFsdWUiLCAidW5kZWZpbmVkIik7Ci1zaG91bGROb3RUaHJvdygiKG5ldyBBKS5z
b21lU2V0dGVyID0gNzg5Iik7Ci1zaG91bGRCZSgic2V0dGVyVmFsdWUiLCAiNzg5Iik7CitzaG91
bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IChuZXcgQSkuc29tZVNldHRlciA9IDc4OTsg
c2V0dGVyVmFsdWUiLCAiNzg5Iik7CiBzaG91bGRCZSgiKG5ldyBBKS5fX3Byb3RvX18iLCAiQS5w
cm90b3R5cGUiKTsKIHNob3VsZEJlKCJBLnByb3RvdHlwZS5jb25zdHJ1Y3RvciIsICJBIik7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZXhw
cmVzc2lvbi5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZXhw
cmVzc2lvbi5qcwppbmRleCA2ZWNhNmZmZTUwNTk0YWQ1OTgwYzVmNGVhNTE0ZmQyNzVmM2Y4YzJi
Li5lZGRiYTI1Njg0MmY1YjU4ZTNlZjhkN2NmYjAyODVjNTg3YTZjZDJjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24uanMKKysr
IGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpz
CkBAIC05LDYgKzksOCBAQCB2YXIgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7CiB2YXIgQSA9IGNs
YXNzIHsKICAgICBjb25zdHJ1Y3RvcigpIHsgY29uc3RydWN0b3JDYWxsQ291bnQrKzsgfQogICAg
IHN0YXRpYyBzb21lU3RhdGljTWV0aG9kKCkgeyByZXR1cm4gc3RhdGljTWV0aG9kVmFsdWU7IH0K
KyAgICBzdGF0aWMgZ2V0IHNvbWVTdGF0aWNHZXR0ZXIoKSB7IHJldHVybiBnZXR0ZXJWYWx1ZTsg
fQorICAgIHN0YXRpYyBzZXQgc29tZVN0YXRpY1NldHRlcih2YWx1ZSkgeyBzZXR0ZXJWYWx1ZSA9
IHZhbHVlOyB9CiAgICAgc29tZUluc3RhbmNlTWV0aG9kKCkgeyByZXR1cm4gaW5zdGFuY2VNZXRo
b2RWYWx1ZTsgfQogICAgIGdldCBzb21lR2V0dGVyKCkgeyByZXR1cm4gZ2V0dGVyVmFsdWU7IH0K
ICAgICBzZXQgc29tZVNldHRlcih2YWx1ZSkgeyBzZXR0ZXJWYWx1ZSA9IHZhbHVlOyB9CkBAIC0x
NiwxNCArMTgsMTQgQEAgdmFyIEEgPSBjbGFzcyB7CiAKIHNob3VsZEJlKCJjb25zdHJ1Y3RvckNh
bGxDb3VudCIsICIwIik7CiBzaG91bGRCZSgiQS5zb21lU3RhdGljTWV0aG9kKCkiLCAic3RhdGlj
TWV0aG9kVmFsdWUiKTsKK3Nob3VsZEJlKCJBLnNvbWVTdGF0aWNHZXR0ZXIiLCAiZ2V0dGVyVmFs
dWUiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgQS5zb21lU3RhdGljU2V0
dGVyID0gMTIzOyBzZXR0ZXJWYWx1ZSIsICIxMjMiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVJ
bnN0YW5jZU1ldGhvZCgpIiwgImluc3RhbmNlTWV0aG9kVmFsdWUiKTsKIHNob3VsZEJlKCJjb25z
dHJ1Y3RvckNhbGxDb3VudCIsICIxIik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lR2V0dGVyIiwg
ImdldHRlclZhbHVlIik7CiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMiIpOwog
c2hvdWxkQmUoIihuZXcgQSkuc29tZUdldHRlciIsICJnZXR0ZXJWYWx1ZSIpOwotc2hvdWxkQmUo
InNldHRlclZhbHVlIiwgInVuZGVmaW5lZCIpOwotc2hvdWxkTm90VGhyb3coIihuZXcgQSkuc29t
ZVNldHRlciA9IDc4OSIpOwotc2hvdWxkQmUoInNldHRlclZhbHVlIiwgIjc4OSIpOworc2hvdWxk
QmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7IHNl
dHRlclZhbHVlIiwgIjc4OSIpOwogc2hvdWxkQmUoIihuZXcgQSkuX19wcm90b19fIiwgIkEucHJv
dG90eXBlIik7CiBzaG91bGRCZSgiQS5wcm90b3R5cGUuY29uc3RydWN0b3IiLCAiQSIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248819</attachid>
            <date>2015-03-16 22:16:51 -0700</date>
            <delta_ts>2015-03-16 23:06:32 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-142690-20150316221620.patch</filename>
            <type>text/plain</type>
            <size>21855</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NmI3ZTdiYTVmNDFkOGUyYTdmMzNiMDQxNDEzNTNiZTFiMmZlNjM1Li4xOTJkMTI3OWI1ODJhOTE3
NDBhZTAxNWIxM2FlMWU0Yzg4N2Y2MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNCBAQAogMjAxNS0wMy0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAorICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1l
dGhvZCBhcyB3ZWxsIGFzIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgc3VwcG9ydCBmb3Ig
Y29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5bnRheC4gZS5nLgorICAgICAg
ICBjbGFzcyBBIHsKKyAgICAgICAgICAgIFsiYmFyIiArIDFdKCkgeyB9CisgICAgICAgIH0KKyAg
ICAgICAgKG5ldyBBKS5iYXIxKCk7CisKKyAgICAgICAgQWxzbyBmaXhlZCBhIGJ1ZyB0aGF0IHdl
IHdlcmUgZGlzYWxsb3dpbmcgc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMuIGUuZy4KKyAgICAg
ICAgY2xhc3MgQiB7CisgICAgICAgICAgICBzdGF0aWMgZ2V0IGZvbygpIHsgfQorICAgICAgICB9
CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWls
ZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUpOgorICAgICAgICAq
IHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyk6IEFkZGVkIHRoZSBzdXBwb3J0IGZv
ciBwYXJzaW5nIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcy4KKyAgICAgICAgTXVjaCBvZiB0
aGUgY29kZSBjaGFuZ2UgaXMgYWJvdXQgaW5kZW50aW5nIHRoZSBleGl0aW5nIGNvZGUuCisgICAg
ICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tl
cjo6Y3JlYXRlUHJvcGVydHkpOgorCisyMDE1LTAzLTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkZWZhdWx0IGNvbnN0cnVjdG9y
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIzODgK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAppbmRleCBkZjNiZTFl
OTQxMGZkY2Y1ZWJlYWNjZDg1MTU4NzYwZTVhZjg2ZjM5Li4yZWNjNGJlOTVjMWY3ZTJkNGQ2N2Nl
OWYxZDU4NzQ4NzY3Y2IyNDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL0FTVEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1
aWxkZXIuaApAQCAtMzUwLDcgKzM1MCwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocGFyc2VyQXJlbmEuaWRlbnRpZmll
ckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBwcm9wZXJ0eU5hbWUpLCBub2RlLCB0
eXBlLCBwdXRUeXBlKTsKICAgICB9Ci0gICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShF
eHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVy
dHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBwdXRUeXBlLCBib29sKSB7
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUsIG5v
ZGUsIHR5cGUsIHB1dFR5cGUpOyB9CisgICAgUHJvcGVydHlOb2RlKiBjcmVhdGVQcm9wZXJ0eShF
eHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSogbm9kZSwgUHJvcGVy
dHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBwdXRUeXBlLCBib29sLCBT
dXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVy
dHlOYW1lLCBub2RlLCB0eXBlLCBwdXRUeXBlLCBzdXBlckJpbmRpbmcpOworICAgIH0KICAgICBQ
cm9wZXJ0eUxpc3ROb2RlKiBjcmVhdGVQcm9wZXJ0eUxpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiBsb2NhdGlvbiwgUHJvcGVydHlOb2RlKiBwcm9wZXJ0eSkgeyByZXR1cm4gbmV3IChtX3BhcnNl
ckFyZW5hKSBQcm9wZXJ0eUxpc3ROb2RlKGxvY2F0aW9uLCBwcm9wZXJ0eSk7IH0KICAgICBQcm9w
ZXJ0eUxpc3ROb2RlKiBjcmVhdGVQcm9wZXJ0eUxpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgUHJvcGVydHlOb2RlKiBwcm9wZXJ0eSwgUHJvcGVydHlMaXN0Tm9kZSogdGFpbCkg
eyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eUxpc3ROb2RlKGxvY2F0aW9uLCBw
cm9wZXJ0eSwgdGFpbCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaAppbmRleCAwNTdiYzNkOTI4MDlmNDZiMDYyNzFhYzAxMmFiZWNkNmM4
OGE2ODRhLi5mMjEwZTc4ZmYxMWYwZjQ4NDM2Mjc2YWRlMGU1ZDgzNTk4ODEwY2VlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtMTcz
LDEyICsxNzMsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAotICAgIGlubGlu
ZSBQcm9wZXJ0eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogbmFtZSwgRXhwcmVz
c2lvbk5vZGUqIGFzc2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUpCisgICAgaW5saW5l
IFByb3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNz
aW9uTm9kZSogYXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSwgU3VwZXJCaW5kaW5n
IHN1cGVyQmluZGluZykKICAgICAgICAgOiBtX25hbWUoMCkKICAgICAgICAgLCBtX2V4cHJlc3Np
b24obmFtZSkKICAgICAgICAgLCBtX2Fzc2lnbihhc3NpZ24pCiAgICAgICAgICwgbV90eXBlKHR5
cGUpCi0gICAgICAgICwgbV9uZWVkc1N1cGVyQmluZGluZyhmYWxzZSkKKyAgICAgICAgLCBtX25l
ZWRzU3VwZXJCaW5kaW5nKHN1cGVyQmluZGluZyA9PSBTdXBlckJpbmRpbmc6Ok5lZWRlZCkKICAg
ICAgICAgLCBtX3B1dFR5cGUocHV0VHlwZSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCmluZGV4IGQwYmJlODA3YzEzMmUyZjkwMmQxZDMzMjM2YWYxMzMwZGRk
ZTRkZjQuLjdhMGQ3MjdlZjI4ZTdkZGIwNTA3NGY1YjllNTRhYmE3NGM4OTVlNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTUxMiw3ICs1MTIsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgZW51bSBQdXRUeXBlIHsgVW5rbm93biwgS25vd25EaXJlY3QgfTsKIAog
ICAgICAgICBQcm9wZXJ0eU5vZGUoY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiwg
VHlwZSwgUHV0VHlwZSwgU3VwZXJCaW5kaW5nKTsKLSAgICAgICAgUHJvcGVydHlOb2RlKEV4cHJl
c3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSk7
CisgICAgICAgIFByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHBy
ZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUsIFN1cGVyQmluZGluZyk7CiAKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIGV4cHJlc3Npb25OYW1lKCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9u
OyB9CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCAzMTc1YzA0
NDMzZTJiYjRjMTZkNDAzY2ZkODkwZDhjYjdjZDBjZDE3Li4wNjA1YWJiMjQxODk4NDQ3YjNkZDE3
YTVlOGY4Y2ZmMzcxZDE2ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCkBAIC0xNDg5LDkgKzE0ODksOSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRy
ZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MoVAogICAgIGNv
bnN1bWVPckZhaWxXaXRoRmxhZ3MoT1BFTkJSQUNFLCBUcmVlQnVpbGRlcjo6RG9udEJ1aWxkU3Ry
aW5ncywgIkV4cGVjdGVkIG9wZW5pbmcgJ3snIGF0IHRoZSBzdGFydCBvZiBhIGNsYXNzIGJvZHki
KTsKIAogICAgIFRyZWVFeHByZXNzaW9uIGNvbnN0cnVjdG9yID0gMDsKLSAgICBUcmVlUHJvcGVy
dHlMaXN0IHN0YXRpY01ldGhvZHMgPSAwOwogICAgIFRyZWVQcm9wZXJ0eUxpc3QgaW5zdGFuY2VN
ZXRob2RzID0gMDsKICAgICBUcmVlUHJvcGVydHlMaXN0IGluc3RhbmNlTWV0aG9kc1RhaWwgPSAw
OworICAgIFRyZWVQcm9wZXJ0eUxpc3Qgc3RhdGljTWV0aG9kcyA9IDA7CiAgICAgVHJlZVByb3Bl
cnR5TGlzdCBzdGF0aWNNZXRob2RzVGFpbCA9IDA7CiAgICAgd2hpbGUgKCFtYXRjaChDTE9TRUJS
QUNFKSkgewogICAgICAgICBpZiAobWF0Y2goU0VNSUNPTE9OKSkKQEAgLTE1MDUsNDEgKzE1MDUs
NTMgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeHByZXNzaW9uIFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZUNsYXNzKFQKICAgICAgICAgaWYgKGlzU3RhdGljTWV0aG9k
KQogICAgICAgICAgICAgbmV4dCgpOwogCi0gICAgICAgIG1hdGNoT3JGYWlsKElERU5ULCAiRXhw
ZWN0ZWQgYW4gaW5kZW50aWZpZXIiKTsKLQogICAgICAgICBjb25zdCBDb21tb25JZGVudGlmaWVy
cyYgcHJvcGVydHlOYW1lcyA9ICptX3ZtLT5wcm9wZXJ0eU5hbWVzOwotICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCA9ICptX3Rva2VuLm1fZGF0YS5pZGVudDsKLSAgICAgICAgYm9vbCBp
c0dldHRlciA9IGlkZW50ID09IHByb3BlcnR5TmFtZXMuZ2V0OwotICAgICAgICBib29sIGlzU2V0
dGVyID0gaWRlbnQgPT0gcHJvcGVydHlOYW1lcy5zZXQ7Ci0KICAgICAgICAgVHJlZVByb3BlcnR5
IHByb3BlcnR5OwogICAgICAgICBjb25zdCBib29sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzID0g
dHJ1ZTsKLSAgICAgICAgaWYgKGlzR2V0dGVyIHx8IGlzU2V0dGVyKSB7Ci0gICAgICAgICAgICBz
ZW1hbnRpY0ZhaWxJZlRydWUoaXNTdGF0aWNNZXRob2QsICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRp
YyIsIHN0cmluZ0ZvckZ1bmN0aW9uTW9kZShpc0dldHRlciA/IEdldHRlck1vZGUgOiBTZXR0ZXJN
b2RlKSk7Ci0gICAgICAgICAgICBuZXh0RXhwZWN0SWRlbnRpZmllcihMZXhlckZsYWdzSWdub3Jl
UmVzZXJ2ZWRXb3Jkcyk7Ci0gICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlR2V0dGVyU2V0dGVy
KGNvbnRleHQsIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBpc0dldHRlciA/IFByb3BlcnR5Tm9k
ZTo6R2V0dGVyIDogUHJvcGVydHlOb2RlOjpTZXR0ZXIsIG1ldGhvZFN0YXJ0LCBjb25zdHJ1Y3Rv
cktpbmQsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKLSAgICAgICAgICAgIGZhaWxJZkZhbHNlKHBy
b3BlcnR5LCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CisgICAgICAgIGlmIChtYXRjaChP
UEVOQlJBQ0tFVCkpIHsKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIFRyZWVFeHBy
ZXNzaW9uIGNvbXB1dGVkTmFtZSA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAg
ICAgIGZhaWxJZkZhbHNlKGNvbXB1dGVkTmFtZSwgIkNhbm5vdCBwYXJzZSBjb21wdXRlZCBwcm9w
ZXJ0eSBuYW1lIik7CisgICAgICAgICAgICBoYW5kbGVQcm9kdWN0aW9uT3JGYWlsKENMT1NFQlJB
Q0tFVCwgIl0iLCAiZW5kIiwgImNvbXB1dGVkIHByb3BlcnR5IG5hbWUiKTsKKyAgICAgICAgICAg
IFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4gY29tcHV0ZWRNZXRob2RJbmZvOworICAg
ICAgICAgICAgY29tcHV0ZWRNZXRob2RJbmZvLm5hbWUgPSAmcHJvcGVydHlOYW1lcy5udWxsSWRl
bnRpZmllcjsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250
ZXh0LCBGdW5jdGlvbk5vUmVxdWlyZW1lbnRzLAorICAgICAgICAgICAgICAgIGlzU3RhdGljTWV0
aG9kID8gRnVuY3Rpb25Nb2RlIDogTWV0aG9kTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwg
Y29tcHV0ZWRNZXRob2RJbmZvKSksICJDYW5ub3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKKyAgICAg
ICAgICAgIFRyZWVFeHByZXNzaW9uIGNvbXB1dGVkTWV0aG9kID0gY29udGV4dC5jcmVhdGVGdW5j
dGlvbkV4cHIobWV0aG9kTG9jYXRpb24sIGNvbXB1dGVkTWV0aG9kSW5mbywgbWV0aG9kU3RhcnQp
OworICAgICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KGNvbXB1dGVk
TmFtZSwgY29tcHV0ZWRNZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9k
ZTo6S25vd25EaXJlY3QsIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBTdXBlckJpbmRpbmc6Ok5l
ZWRlZCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBQYXJzZXJGdW5jdGlvbkluZm88
VHJlZUJ1aWxkZXI+IG1ldGhvZEluZm87Ci0gICAgICAgICAgICBmYWlsSWZGYWxzZSgocGFyc2VG
dW5jdGlvbkluZm8oY29udGV4dCwgRnVuY3Rpb25OZWVkc05hbWUsIGlzU3RhdGljTWV0aG9kID8g
RnVuY3Rpb25Nb2RlIDogTWV0aG9kTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwgbWV0aG9k
SW5mbykpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7Ci0gICAgICAgICAgICBmYWlsSWZG
YWxzZShtZXRob2RJbmZvLm5hbWUsICJtZXRob2QgbXVzdCBoYXZlIGEgbmFtZSIpOwotICAgICAg
ICAgICAgZmFpbElmRmFsc2UoZGVjbGFyZVZhcmlhYmxlKG1ldGhvZEluZm8ubmFtZSksICJDYW5u
b3QgZGVjbGFyZSBhIG1ldGhvZCBuYW1lZCAnIiwgbWV0aG9kSW5mby5uYW1lLT5pbXBsKCksICIn
Iik7Ci0KLSAgICAgICAgICAgIGJvb2wgaXNDb25zdHJ1Y3RvciA9ICFpc1N0YXRpY01ldGhvZCAm
JiAqbWV0aG9kSW5mby5uYW1lID09IHByb3BlcnR5TmFtZXMuY29uc3RydWN0b3I7Ci0gICAgICAg
ICAgICBpZiAoaXNDb25zdHJ1Y3RvcikKLSAgICAgICAgICAgICAgICBtZXRob2RJbmZvLm5hbWUg
PSBjbGFzc05hbWU7Ci0KLSAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG1ldGhvZCA9IGNvbnRl
eHQuY3JlYXRlRnVuY3Rpb25FeHByKG1ldGhvZExvY2F0aW9uLCBtZXRob2RJbmZvLCBtZXRob2RT
dGFydCk7Ci0gICAgICAgICAgICBpZiAoaXNDb25zdHJ1Y3RvcikgewotICAgICAgICAgICAgICAg
IHNlbWFudGljRmFpbElmVHJ1ZShjb25zdHJ1Y3RvciwgIkNhbm5vdCBkZWNsYXJlIG11bHRpcGxl
IGNvbnN0cnVjdG9ycyBpbiBhIHNpbmdsZSBjbGFzcyIpOwotICAgICAgICAgICAgICAgIGNvbnN0
cnVjdG9yID0gbWV0aG9kOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
fQorICAgICAgICAgICAgbWF0Y2hPckZhaWwoSURFTlQsICJFeHBlY3RlZCBhbiBpbmRlbnRpZmll
ciIpOworCisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9ICptX3Rva2VuLm1f
ZGF0YS5pZGVudDsKKyAgICAgICAgICAgIGJvb2wgaXNHZXR0ZXIgPSBpZGVudCA9PSBwcm9wZXJ0
eU5hbWVzLmdldDsKKyAgICAgICAgICAgIGJvb2wgaXNTZXR0ZXIgPSBpZGVudCA9PSBwcm9wZXJ0
eU5hbWVzLnNldDsKIAotICAgICAgICAgICAgLy8gRklYTUU6IFN5bnRheCBlcnJvciB3aGVuIHN1
cGVyKCkgaXMgY2FsbGVkCi0gICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoaXNTdGF0aWNN
ZXRob2QgJiYgKm1ldGhvZEluZm8ubmFtZSA9PSBwcm9wZXJ0eU5hbWVzLnByb3RvdHlwZSwKLSAg
ICAgICAgICAgICAgICAiQ2Fubm90IGRlY2xhcmUgYSBzdGF0aWMgbWV0aG9kIG5hbWVkICdwcm90
b3R5cGUnIik7Ci0gICAgICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHko
bWV0aG9kSW5mby5uYW1lLCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5
Tm9kZTo6VW5rbm93biwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVl
ZGVkKTsKKyAgICAgICAgICAgIGlmIChpc0dldHRlciB8fCBpc1NldHRlcikgeworICAgICAgICAg
ICAgICAgIG5leHRFeHBlY3RJZGVudGlmaWVyKExleGVyRmxhZ3NJZ25vcmVSZXNlcnZlZFdvcmRz
KTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlR2V0dGVyU2V0dGVyKGNvbnRleHQs
IGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBpc0dldHRlciA/IFByb3BlcnR5Tm9kZTo6R2V0dGVy
IDogUHJvcGVydHlOb2RlOjpTZXR0ZXIsIG1ldGhvZFN0YXJ0LCBjb25zdHJ1Y3RvcktpbmQsIFN1
cGVyQmluZGluZzo6TmVlZGVkKTsKKyAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShwcm9wZXJ0
eSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+IG1ldGhvZEluZm87
CisgICAgICAgICAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQs
IEZ1bmN0aW9uTmVlZHNOYW1lLCBpc1N0YXRpY01ldGhvZCA/IEZ1bmN0aW9uTW9kZSA6IE1ldGhv
ZE1vZGUsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQsIG1ldGhvZEluZm8pKSwgIkNhbm5vdCBwYXJz
ZSB0aGlzIG1ldGhvZCIpOworICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNlKG1ldGhvZEluZm8u
bmFtZSwgIm1ldGhvZCBtdXN0IGhhdmUgYSBuYW1lIik7CisgICAgICAgICAgICAgICAgZmFpbElm
RmFsc2UoZGVjbGFyZVZhcmlhYmxlKG1ldGhvZEluZm8ubmFtZSksICJDYW5ub3QgZGVjbGFyZSBh
IG1ldGhvZCBuYW1lZCAnIiwgbWV0aG9kSW5mby5uYW1lLT5pbXBsKCksICInIik7CisKKyAgICAg
ICAgICAgICAgICBib29sIGlzQ29uc3RydWN0b3IgPSAhaXNTdGF0aWNNZXRob2QgJiYgKm1ldGhv
ZEluZm8ubmFtZSA9PSBwcm9wZXJ0eU5hbWVzLmNvbnN0cnVjdG9yOworICAgICAgICAgICAgICAg
IGlmIChpc0NvbnN0cnVjdG9yKQorICAgICAgICAgICAgICAgICAgICBtZXRob2RJbmZvLm5hbWUg
PSBjbGFzc05hbWU7CisKKyAgICAgICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBtZXRob2QgPSBj
b250ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhwcihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5mbywgbWV0
aG9kU3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShjb25zdHJ1Y3RvciwgIkNhbm5vdCBkZWNs
YXJlIG11bHRpcGxlIGNvbnN0cnVjdG9ycyBpbiBhIHNpbmdsZSBjbGFzcyIpOworICAgICAgICAg
ICAgICAgICAgICBjb25zdHJ1Y3RvciA9IG1ldGhvZDsKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFN5
bnRheCBlcnJvciB3aGVuIHN1cGVyKCkgaXMgY2FsbGVkCisgICAgICAgICAgICAgICAgc2VtYW50
aWNGYWlsSWZUcnVlKGlzU3RhdGljTWV0aG9kICYmICptZXRob2RJbmZvLm5hbWUgPT0gcHJvcGVy
dHlOYW1lcy5wcm90b3R5cGUsCisgICAgICAgICAgICAgICAgICAgICJDYW5ub3QgZGVjbGFyZSBh
IHN0YXRpYyBtZXRob2QgbmFtZWQgJ3Byb3RvdHlwZSciKTsKKyAgICAgICAgICAgICAgICBwcm9w
ZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHkobWV0aG9kSW5mby5uYW1lLCBtZXRob2QsIFBy
b3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgYWx3YXlzU3RyaWN0
SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCiAgICAgICAgIFRyZWVQcm9wZXJ0eUxpc3QmIHRhaWwgPSBpc1N0YXRpY01ldGhvZCA/
IHN0YXRpY01ldGhvZHNUYWlsIDogaW5zdGFuY2VNZXRob2RzVGFpbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggYWEzOGUzMmRiMTY2YTQyMDAx
Y2EyMzI2ODA4NzM4ZWQyMDBiOGI1YS4uNzg4ZTkxOTZhZjhiMzdlMjQ3YTEyMGNhZTcxMTQ0NWIw
NzBlZTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhD
aGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2Vy
LmgKQEAgLTE4OSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gUHJvcGVy
dHkodHlwZSk7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0eSgmcGFyc2VyQXJlbmEuaWRlbnRpZmll
ckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBuYW1lKSwgdHlwZSk7CiAgICAgfQot
ICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGludCwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUg
dHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sKQorICAgIFByb3BlcnR5IGNyZWF0ZVBy
b3BlcnR5KGludCwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQ
dXRUeXBlLCBib29sLCBTdXBlckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBQcm9wZXJ0eSh0eXBlKTsKICAgICB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjNiMzlj
NGUxNDI0NTM3NGZjY2EyMzA1YmM2ZThlNGRiNjM5OWUyZS4uNzYxYWIwZDY3MDhiM2VhZmVlMDEw
ZWE5OTAzOGM5NDBlMTFlYzJhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE1LTAzLTEzICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCisgICAgICAgIEVTNiBjbGFzcyBzeW50
YXggc2hvdWxkIGFsbG93IGNvbXB1dGVkIG5hbWUgbWV0aG9kIGFzIHdlbGwgYXMgc3RhdGljIGdl
dHRlcnMgYW5kIHNldHRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIGEgdGVzdCBmb3IgY29tcHV0ZWQgbWV0aG9kIG5hbWVzLgorCisgICAg
ICAgIEFsc28gYWRkZWQgdGVzdCBjYXNlcyBmb3Igc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMg
dG8gZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBqcy9jbGFzcy1zeW50YXgtY29tcHV0ZWQt
bWV0aG9kLW5hbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9jbGFzcy1zeW50
YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvY2xhc3Mt
c3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9jbGFzcy1zeW50
YXgtZXhwcmVzc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2Ns
YXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2QtbmFtZS5qczogQWRkZWQuCisgICAgICAgICoganMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi5qczoKKyAgICAgICAgKiBqcy9z
Y3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24uanM6CisKKzIwMTUtMDMtMTMgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW1wbGVtZW50IGRlZmF1
bHQgY29uc3RydWN0b3IKIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZGVmYXVsdCBjb25zdHJ1
Y3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1l
dGhvZC1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1jb21w
dXRlZC1tZXRob2QtbmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA5MWExMGVkMzE0ZjFm
ZDJhNzdiYTQxMTc3N2U4MWZiYmNlNDA3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2QtbmFtZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgY29tcHV0ZWQgcHJv
cGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5bnRheC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgKGNsYXNzIHsgc3RhdGljIFsiaGkiXSgpIHsgcmV0dXJuIDE7IH0gfSku
aGkoKSBpcyAxCitQQVNTIChuZXcgKGNsYXNzIHsgWyJoaSJdKCkgeyByZXR1cm4gMjsgfSB9KSku
aGkoKSBpcyAyCitQQVNTIChjbGFzcyB7IHN0YXRpYyBbImhpIl0oKSB7IHJldHVybiAzOyB9IHN0
YXRpYyBoaSgpIHsgcmV0dXJuIDQ7IH0gfSkuaGkoKSBpcyA0CitQQVNTIHZhciBjID0gbmV3IChj
bGFzcyB7IGhpKCkgeyByZXR1cm4gNTsgfSBbImhpIl0oKSB7IHJldHVybiA2OyB9IH0pOyBjLmhp
KCkgaXMgNgorUEFTUyB2YXIgYyA9IG5ldyAoY2xhc3MgeyBbTmFOXSgpIHsgcmV0dXJuIDc7IH0g
fSk7IGNbTmFOXSgpOyBpcyA3CitQQVNTIHZhciBhID0gImhlbGxvIiwgYiA9IDg7IChuZXcgKGNs
YXNzIHsgW2EgKyBiXSgpIHsgcmV0dXJuIDk7IH0gfSkpLmhlbGxvOCgpIGlzIDkKK1BBU1MgdmFy
IGMgPSBuZXcgKGNsYXNzIHsgWzIgKiA1XSgpIHsgcmV0dXJuIDExOyB9IH0pOyBjWyIxMCJdKCkg
aXMgMTEKK1BBU1MgdmFyIGMgPSBuZXcgKGNsYXNzIHsgW251bGxdKCkgeyByZXR1cm4gMTI7IH0g
W3VuZGVmaW5lZF0oKSB7IHJldHVybiAxMzsgfSB9KTsgY1t1bmRlZmluZWRdKCkgaXMgMTMKK1BB
U1MgdmFyIGMgPSBuZXcgKGNsYXNzIHsgWzE0ICsgMC4wMSArICJ4Il0oeCkgeyByZXR1cm4geCAr
IDE1OyB9IH0pOyBjWyIxNC4wMXgiXSgxKSBpcyAxNgorUEFTUyBuZXcgKGNsYXNzIHsgWzErXSgp
IHsgfSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ10n
LgorUEFTUyBuZXcgKGNsYXNzIHsgW3Zhcl0oKSB7IH0gfSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgJ3ZhcicuCitQQVNTIG5ldyAoY2xhc3MgeyBbYmF6
XSgpIHsgfSB9KSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFy
aWFibGU6IGJhei4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtY29tcHV0ZWQt
bWV0aG9kLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1t
ZXRob2QtbmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZDUyNTMxNzdkMTUyMWQzYjc1MjllMjg0NzQ2
MzMxYWMwNDI2OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50
YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgt
Y29tcHV0ZWQtbWV0aG9kLW5hbWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3RlZC50eHQK
aW5kZXggOTNjNWU0YTAyZjUyN2EzOTNjNGZhODc2Zjg1OWUzYTUyZGJmNjgyOS4uY2ZiYmJkNDcy
ZWU3NWE5ZDhiY2YxZWNmMjFhYzZlYzEzMjMzZTczYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC01LDE0ICs1LDE0
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQg
aXMgMAogUEFTUyBBLnNvbWVTdGF0aWNNZXRob2QoKSBpcyBzdGF0aWNNZXRob2RWYWx1ZQorUEFT
UyBBLnNvbWVTdGF0aWNHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1
bmRlZmluZWQ7IEEuc29tZVN0YXRpY1NldHRlciA9IDEyMzsgc2V0dGVyVmFsdWUgaXMgMTIzCiBQ
QVNTIChuZXcgQSkuc29tZUluc3RhbmNlTWV0aG9kKCkgaXMgaW5zdGFuY2VNZXRob2RWYWx1ZQog
UEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAxCiBQQVNTIChuZXcgQSkuc29tZUdldHRlciBp
cyBnZXR0ZXJWYWx1ZQogUEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAyCiBQQVNTIChuZXcg
QSkuc29tZUdldHRlciBpcyBnZXR0ZXJWYWx1ZQotUEFTUyBzZXR0ZXJWYWx1ZSBpcyB1bmRlZmlu
ZWQKLVBBU1MgKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgotUEFTUyBzZXR0ZXJWYWx1ZSBpcyA3ODkKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7
IChuZXcgQSkuc29tZVNldHRlciA9IDc4OTsgc2V0dGVyVmFsdWUgaXMgNzg5CiBQQVNTIChuZXcg
QSkuX19wcm90b19fIGlzIEEucHJvdG90eXBlCiBQQVNTIEEucHJvdG90eXBlLmNvbnN0cnVjdG9y
IGlzIEEKIFBBU1MgY2xhc3MgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IGVuZCBvZiBzY3JpcHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgt
ZXhwcmVzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtZXhw
cmVzc2lvbi1leHBlY3RlZC50eHQKaW5kZXggMzgwNzQ2MTdhMTUxYWE5OWE4NzI5ZTllNjUzNTQ2
MjI5OGJmM2VmYS4uYjhhYWE5YWM5M2E3ZTViZmRiNGZkNDk3MjY4ZTQ4NzUyNmE4ODFjYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLWV4cGVjdGVk
LnR4dApAQCAtNSwxNCArNSwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIGNv
bnN0cnVjdG9yQ2FsbENvdW50IGlzIDAKIFBBU1MgQS5zb21lU3RhdGljTWV0aG9kKCkgaXMgc3Rh
dGljTWV0aG9kVmFsdWUKK1BBU1MgQS5zb21lU3RhdGljR2V0dGVyIGlzIGdldHRlclZhbHVlCitQ
QVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0ZXIgPSAxMjM7IHNl
dHRlclZhbHVlIGlzIDEyMwogUEFTUyAobmV3IEEpLnNvbWVJbnN0YW5jZU1ldGhvZCgpIGlzIGlu
c3RhbmNlTWV0aG9kVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQgaXMgMQogUEFTUyAo
bmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291
bnQgaXMgMgogUEFTUyAobmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKLVBBU1Mgc2V0
dGVyVmFsdWUgaXMgdW5kZWZpbmVkCi1QQVNTIChuZXcgQSkuc29tZVNldHRlciA9IDc4OSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mgc2V0dGVyVmFsdWUgaXMgNzg5CitQQVNTIHNldHRl
clZhbHVlID0gdW5kZWZpbmVkOyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7IHNldHRlclZhbHVl
IGlzIDc4OQogUEFTUyAobmV3IEEpLl9fcHJvdG9fXyBpcyBBLnByb3RvdHlwZQogUEFTUyBBLnBy
b3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBBCiBQQVNTIHggPSBjbGFzcyB0aHJldyBleGNlcHRpb24g
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgZW5kIG9mIHNjcmlwdC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUu
anMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1l
dGhvZC1uYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNGUwM2M3OTAyNDU0MmQzNGI2NmIwNmYwMzkzNTI0
ZjhhODJhMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
Y2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiBjb21wdXRlZCBwcm9w
ZXJ0eSBuYW1lcyBpbiBFUzYgY2xhc3Mgc3ludGF4LiIpOworCitzaG91bGRCZSgnKGNsYXNzIHsg
c3RhdGljIFsiaGkiXSgpIHsgcmV0dXJuIDE7IH0gfSkuaGkoKScsICcxJyk7CitzaG91bGRCZSgn
KG5ldyAoY2xhc3MgeyBbImhpIl0oKSB7IHJldHVybiAyOyB9IH0pKS5oaSgpJywgJzInKTsKK3No
b3VsZEJlKCcoY2xhc3MgeyBzdGF0aWMgWyJoaSJdKCkgeyByZXR1cm4gMzsgfSBzdGF0aWMgaGko
KSB7IHJldHVybiA0OyB9IH0pLmhpKCknLCAnNCcpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3IChj
bGFzcyB7IGhpKCkgeyByZXR1cm4gNTsgfSBbImhpIl0oKSB7IHJldHVybiA2OyB9IH0pOyBjLmhp
KCknLCAnNicpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3IChjbGFzcyB7IFtOYU5dKCkgeyByZXR1
cm4gNzsgfSB9KTsgY1tOYU5dKCk7JywgJzcnKTsKK3Nob3VsZEJlKCd2YXIgYSA9ICJoZWxsbyIs
IGIgPSA4OyAobmV3IChjbGFzcyB7IFthICsgYl0oKSB7IHJldHVybiA5OyB9IH0pKS5oZWxsbzgo
KScsICc5Jyk7CitzaG91bGRCZSgndmFyIGMgPSBuZXcgKGNsYXNzIHsgWzIgKiA1XSgpIHsgcmV0
dXJuIDExOyB9IH0pOyBjWyIxMCJdKCknLCAnMTEnKTsKK3Nob3VsZEJlKCd2YXIgYyA9IG5ldyAo
Y2xhc3MgeyBbbnVsbF0oKSB7IHJldHVybiAxMjsgfSBbdW5kZWZpbmVkXSgpIHsgcmV0dXJuIDEz
OyB9IH0pOyBjW3VuZGVmaW5lZF0oKScsICcxMycpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3IChj
bGFzcyB7IFsxNCArIDAuMDEgKyAieCJdKHgpIHsgcmV0dXJuIHggKyAxNTsgfSB9KTsgY1siMTQu
MDF4Il0oMSknLCAnMTYnKTsKKworc2hvdWxkVGhyb3coJ25ldyAoY2xhc3MgeyBbMStdKCkgeyB9
IH0pJywgJyJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiBcJ11cJyInKTsKK3Nob3VsZFRo
cm93KCduZXcgKGNsYXNzIHsgW3Zhcl0oKSB7IH0gfSknLCAnIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIGtleXdvcmQgXCd2YXJcJyInKTsKK3Nob3VsZFRocm93KCduZXcgKGNsYXNzIHsgW2Jhel0o
KSB7IH0gfSknLCAnIlJlZmVyZW5jZUVycm9yOiBDYW5cJ3QgZmluZCB2YXJpYWJsZTogYmF6Iicp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanMgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLmpzCmluZGV4IDAz
NTMyMWU3ODNhNWMwZThiYmI3MjQzOGFjN2QxYjFjYzFiZmE5YmUuLjNhNTE3NzU3OGQ1OWMxODBl
MDA5NGMyNzhiMDA4YzViODU0MmQ4NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi5qcwpAQCAtOSw2ICs5LDggQEAg
dmFyIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOwogY2xhc3MgQSB7CiAgICAgY29uc3RydWN0b3Io
KSB7IGNvbnN0cnVjdG9yQ2FsbENvdW50Kys7IH0KICAgICBzdGF0aWMgc29tZVN0YXRpY01ldGhv
ZCgpIHsgcmV0dXJuIHN0YXRpY01ldGhvZFZhbHVlOyB9CisgICAgc3RhdGljIGdldCBzb21lU3Rh
dGljR2V0dGVyKCkgeyByZXR1cm4gZ2V0dGVyVmFsdWU7IH0KKyAgICBzdGF0aWMgc2V0IHNvbWVT
dGF0aWNTZXR0ZXIodmFsdWUpIHsgc2V0dGVyVmFsdWUgPSB2YWx1ZTsgfQogICAgIHNvbWVJbnN0
YW5jZU1ldGhvZCgpIHsgcmV0dXJuIGluc3RhbmNlTWV0aG9kVmFsdWU7IH0KICAgICBnZXQgc29t
ZUdldHRlcigpIHsgcmV0dXJuIGdldHRlclZhbHVlOyB9CiAgICAgc2V0IHNvbWVTZXR0ZXIodmFs
dWUpIHsgc2V0dGVyVmFsdWUgPSB2YWx1ZTsgfQpAQCAtMTYsMTQgKzE4LDE0IEBAIGNsYXNzIEEg
ewogCiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMCIpOwogc2hvdWxkQmUoIkEu
c29tZVN0YXRpY01ldGhvZCgpIiwgInN0YXRpY01ldGhvZFZhbHVlIik7CitzaG91bGRCZSgiQS5z
b21lU3RhdGljR2V0dGVyIiwgImdldHRlclZhbHVlIik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUg
PSB1bmRlZmluZWQ7IEEuc29tZVN0YXRpY1NldHRlciA9IDEyMzsgc2V0dGVyVmFsdWUiLCAiMTIz
Iik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lSW5zdGFuY2VNZXRob2QoKSIsICJpbnN0YW5jZU1l
dGhvZFZhbHVlIik7CiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMSIpOwogc2hv
dWxkQmUoIihuZXcgQSkuc29tZUdldHRlciIsICJnZXR0ZXJWYWx1ZSIpOwogc2hvdWxkQmUoImNv
bnN0cnVjdG9yQ2FsbENvdW50IiwgIjIiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVHZXR0ZXIi
LCAiZ2V0dGVyVmFsdWUiKTsKLXNob3VsZEJlKCJzZXR0ZXJWYWx1ZSIsICJ1bmRlZmluZWQiKTsK
LXNob3VsZE5vdFRocm93KCIobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODkiKTsKLXNob3VsZEJlKCJz
ZXR0ZXJWYWx1ZSIsICI3ODkiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsg
KG5ldyBBKS5zb21lU2V0dGVyID0gNzg5OyBzZXR0ZXJWYWx1ZSIsICI3ODkiKTsKIHNob3VsZEJl
KCIobmV3IEEpLl9fcHJvdG9fXyIsICJBLnByb3RvdHlwZSIpOwogc2hvdWxkQmUoIkEucHJvdG90
eXBlLmNvbnN0cnVjdG9yIiwgIkEiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzCmluZGV4IDZlY2E2ZmZlNTA1OTRh
ZDU5ODBjNWY0ZWE1MTRmZDI3NWYzZjhjMmIuLmVkZGJhMjU2ODQyZjViNThlM2VmOGQ3Y2ZiMDI4
NWM1ODdhNmNkMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFz
cy1zeW50YXgtZXhwcmVzc2lvbi5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
Y2xhc3Mtc3ludGF4LWV4cHJlc3Npb24uanMKQEAgLTksNiArOSw4IEBAIHZhciBzZXR0ZXJWYWx1
ZSA9IHVuZGVmaW5lZDsKIHZhciBBID0gY2xhc3MgewogICAgIGNvbnN0cnVjdG9yKCkgeyBjb25z
dHJ1Y3RvckNhbGxDb3VudCsrOyB9CiAgICAgc3RhdGljIHNvbWVTdGF0aWNNZXRob2QoKSB7IHJl
dHVybiBzdGF0aWNNZXRob2RWYWx1ZTsgfQorICAgIHN0YXRpYyBnZXQgc29tZVN0YXRpY0dldHRl
cigpIHsgcmV0dXJuIGdldHRlclZhbHVlOyB9CisgICAgc3RhdGljIHNldCBzb21lU3RhdGljU2V0
dGVyKHZhbHVlKSB7IHNldHRlclZhbHVlID0gdmFsdWU7IH0KICAgICBzb21lSW5zdGFuY2VNZXRo
b2QoKSB7IHJldHVybiBpbnN0YW5jZU1ldGhvZFZhbHVlOyB9CiAgICAgZ2V0IHNvbWVHZXR0ZXIo
KSB7IHJldHVybiBnZXR0ZXJWYWx1ZTsgfQogICAgIHNldCBzb21lU2V0dGVyKHZhbHVlKSB7IHNl
dHRlclZhbHVlID0gdmFsdWU7IH0KQEAgLTE2LDE0ICsxOCwxNCBAQCB2YXIgQSA9IGNsYXNzIHsK
IAogc2hvdWxkQmUoImNvbnN0cnVjdG9yQ2FsbENvdW50IiwgIjAiKTsKIHNob3VsZEJlKCJBLnNv
bWVTdGF0aWNNZXRob2QoKSIsICJzdGF0aWNNZXRob2RWYWx1ZSIpOworc2hvdWxkQmUoIkEuc29t
ZVN0YXRpY0dldHRlciIsICJnZXR0ZXJWYWx1ZSIpOworc2hvdWxkQmUoInNldHRlclZhbHVlID0g
dW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0ZXIgPSAxMjM7IHNldHRlclZhbHVlIiwgIjEyMyIp
Owogc2hvdWxkQmUoIihuZXcgQSkuc29tZUluc3RhbmNlTWV0aG9kKCkiLCAiaW5zdGFuY2VNZXRo
b2RWYWx1ZSIpOwogc2hvdWxkQmUoImNvbnN0cnVjdG9yQ2FsbENvdW50IiwgIjEiKTsKIHNob3Vs
ZEJlKCIobmV3IEEpLnNvbWVHZXR0ZXIiLCAiZ2V0dGVyVmFsdWUiKTsKIHNob3VsZEJlKCJjb25z
dHJ1Y3RvckNhbGxDb3VudCIsICIyIik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lR2V0dGVyIiwg
ImdldHRlclZhbHVlIik7Ci1zaG91bGRCZSgic2V0dGVyVmFsdWUiLCAidW5kZWZpbmVkIik7Ci1z
aG91bGROb3RUaHJvdygiKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5Iik7Ci1zaG91bGRCZSgic2V0
dGVyVmFsdWUiLCAiNzg5Iik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IChu
ZXcgQSkuc29tZVNldHRlciA9IDc4OTsgc2V0dGVyVmFsdWUiLCAiNzg5Iik7CiBzaG91bGRCZSgi
KG5ldyBBKS5fX3Byb3RvX18iLCAiQS5wcm90b3R5cGUiKTsKIHNob3VsZEJlKCJBLnByb3RvdHlw
ZS5jb25zdHJ1Y3RvciIsICJBIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248828</attachid>
            <date>2015-03-16 23:06:36 -0700</date>
            <delta_ts>2015-03-27 23:03:05 -0700</delta_ts>
            <desc>Updated for ToT again</desc>
            <filename>bug-142690-20150316230606.patch</filename>
            <type>text/plain</type>
            <size>21744</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YTQ4ZGM1MDQwNWMzM2RmYzk3NTRhMGQ0NWIzZWQyY2FlYmQwMTgwLi40MWMzMThiZGRiYjU2OGVj
NWMzZTgxYmVmNmYyZDc3NjE3MWM4MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxNS0wMy0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1l
dGhvZCBhcyB3ZWxsIGFzIHN0YXRpYyBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgc3VwcG9ydCBmb3Ig
Y29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5bnRheC4gZS5nLgorICAgICAg
ICBjbGFzcyBBIHsKKyAgICAgICAgICAgIFsiYmFyIiArIDFdKCkgeyB9CisgICAgICAgIH0KKyAg
ICAgICAgKG5ldyBBKS5iYXIxKCk7CisKKyAgICAgICAgQWxzbyBmaXhlZCBhIGJ1ZyB0aGF0IHdl
IHdlcmUgZGlzYWxsb3dpbmcgc3RhdGljIGdldHRlcnMgYW5kIHNldHRlcnMuIGUuZy4KKyAgICAg
ICAgY2xhc3MgQiB7CisgICAgICAgICAgICBzdGF0aWMgZ2V0IGZvbygpIHsgfQorICAgICAgICB9
CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWls
ZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUpOgorICAgICAgICAq
IHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAo
SlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyk6IEFkZGVkIHRoZSBzdXBwb3J0IGZv
ciBwYXJzaW5nIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcy4KKyAgICAgICAgTXVjaCBvZiB0
aGUgY29kZSBjaGFuZ2UgaXMgYWJvdXQgaW5kZW50aW5nIHRoZSBleGl0aW5nIGNvZGUuCisgICAg
ICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tl
cjo6Y3JlYXRlUHJvcGVydHkpOgorCiAyMDE1LTAzLTE2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJsZSBFUzYgY2xhc3NlcyBieSBkZWZhdWx0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IGRmM2JlMWU5NDEwZmRj
ZjVlYmVhY2NkODUxNTg3NjBlNWFmODZmMzkuLjJlY2M0YmU5NWMxZjdlMmQ0ZDY3Y2U5ZjFkNTg3
NDg3NjdjYjI0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNU
QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5o
CkBAIC0zNTAsNyArMzUwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcg
KG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEo
KS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIHByb3BlcnR5TmFtZSksIG5vZGUsIHR5cGUsIHB1
dFR5cGUpOwogICAgIH0KLSAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KEV4cHJlc3Np
b25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6
OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wpIHsgcmV0dXJu
IG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHByb3BlcnR5TmFtZSwgbm9kZSwgdHlw
ZSwgcHV0VHlwZSk7IH0KKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVByb3BlcnR5KEV4cHJlc3Np
b25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2RlLCBQcm9wZXJ0eU5vZGU6
OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUsIGJvb2wsIFN1cGVyQmlu
ZGluZyBzdXBlckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwcm9wZXJ0eU5hbWUs
IG5vZGUsIHR5cGUsIHB1dFR5cGUsIHN1cGVyQmluZGluZyk7CisgICAgfQogICAgIFByb3BlcnR5
TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5KSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5KTsgfQogICAgIFByb3BlcnR5TGlz
dE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9u
LCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5LCBQcm9wZXJ0eUxpc3ROb2RlKiB0YWlsKSB7IHJldHVy
biBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5
LCB0YWlsKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0
cnVjdG9ycy5oCmluZGV4IDA1N2JjM2Q5MjgwOWY0NmIwNjI3MWFjMDEyYWJlY2Q2Yzg4YTY4NGEu
LmYyMTBlNzhmZjExZjBmNDg0MzYyNzZhZGUwZTVkODM1OTg4MTBjZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xNzMsMTIgKzE3
MywxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCi0gICAgaW5saW5lIFByb3Bl
cnR5Tm9kZTo6UHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNzaW9uTm9k
ZSogYXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSkKKyAgICBpbmxpbmUgUHJvcGVy
dHlOb2RlOjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIG5hbWUsIEV4cHJlc3Npb25Ob2Rl
KiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlLCBTdXBlckJpbmRpbmcgc3VwZXJC
aW5kaW5nKQogICAgICAgICA6IG1fbmFtZSgwKQogICAgICAgICAsIG1fZXhwcmVzc2lvbihuYW1l
KQogICAgICAgICAsIG1fYXNzaWduKGFzc2lnbikKICAgICAgICAgLCBtX3R5cGUodHlwZSkKLSAg
ICAgICAgLCBtX25lZWRzU3VwZXJCaW5kaW5nKGZhbHNlKQorICAgICAgICAsIG1fbmVlZHNTdXBl
ckJpbmRpbmcoc3VwZXJCaW5kaW5nID09IFN1cGVyQmluZGluZzo6TmVlZGVkKQogICAgICAgICAs
IG1fcHV0VHlwZShwdXRUeXBlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKaW5kZXggZDBiYmU4MDdjMTMyZTJmOTAyZDFkMzMyMzZhZjEzMzBkZGRlNGRmNC4u
N2EwZDcyN2VmMjhlN2RkYjA1MDc0ZjViOWU1NGFiYTc0Yzg5NWU0OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtNTEyLDcgKzUxMiw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBlbnVtIFB1dFR5cGUgeyBVbmtub3duLCBLbm93bkRpcmVjdCB9OwogCiAgICAgICAg
IFByb3BlcnR5Tm9kZShjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQ
dXRUeXBlLCBTdXBlckJpbmRpbmcpOwotICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5v
ZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlKTsKKyAgICAg
ICAgUHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25O
b2RlKiwgVHlwZSwgUHV0VHlwZSwgU3VwZXJCaW5kaW5nKTsKIAogICAgICAgICBFeHByZXNzaW9u
Tm9kZSogZXhwcmVzc2lvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb247IH0KICAg
ICAgICAgY29uc3QgSWRlbnRpZmllciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDMxNzVjMDQ0MzNlMmJi
NGMxNmQ0MDNjZmQ4OTBkOGNiN2NkMGNkMTcuLjA2MDVhYmIyNDE4OTg0NDdiM2RkMTdhNWU4Zjhj
ZmYzNzFkMTZlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAg
LTE0ODksOSArMTQ4OSw5IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNz
RXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VDbGFzcyhUCiAgICAgY29uc3VtZU9y
RmFpbFdpdGhGbGFncyhPUEVOQlJBQ0UsIFRyZWVCdWlsZGVyOjpEb250QnVpbGRTdHJpbmdzLCAi
RXhwZWN0ZWQgb3BlbmluZyAneycgYXQgdGhlIHN0YXJ0IG9mIGEgY2xhc3MgYm9keSIpOwogCiAg
ICAgVHJlZUV4cHJlc3Npb24gY29uc3RydWN0b3IgPSAwOwotICAgIFRyZWVQcm9wZXJ0eUxpc3Qg
c3RhdGljTWV0aG9kcyA9IDA7CiAgICAgVHJlZVByb3BlcnR5TGlzdCBpbnN0YW5jZU1ldGhvZHMg
PSAwOwogICAgIFRyZWVQcm9wZXJ0eUxpc3QgaW5zdGFuY2VNZXRob2RzVGFpbCA9IDA7CisgICAg
VHJlZVByb3BlcnR5TGlzdCBzdGF0aWNNZXRob2RzID0gMDsKICAgICBUcmVlUHJvcGVydHlMaXN0
IHN0YXRpY01ldGhvZHNUYWlsID0gMDsKICAgICB3aGlsZSAoIW1hdGNoKENMT1NFQlJBQ0UpKSB7
CiAgICAgICAgIGlmIChtYXRjaChTRU1JQ09MT04pKQpAQCAtMTUwNSw0MSArMTUwNSw1MyBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlQ2xhc3MoVAogICAgICAgICBpZiAoaXNTdGF0aWNNZXRob2QpCiAgICAg
ICAgICAgICBuZXh0KCk7CiAKLSAgICAgICAgbWF0Y2hPckZhaWwoSURFTlQsICJFeHBlY3RlZCBh
biBpbmRlbnRpZmllciIpOwotCiAgICAgICAgIGNvbnN0IENvbW1vbklkZW50aWZpZXJzJiBwcm9w
ZXJ0eU5hbWVzID0gKm1fdm0tPnByb3BlcnR5TmFtZXM7Ci0gICAgICAgIGNvbnN0IElkZW50aWZp
ZXImIGlkZW50ID0gKm1fdG9rZW4ubV9kYXRhLmlkZW50OwotICAgICAgICBib29sIGlzR2V0dGVy
ID0gaWRlbnQgPT0gcHJvcGVydHlOYW1lcy5nZXQ7Ci0gICAgICAgIGJvb2wgaXNTZXR0ZXIgPSBp
ZGVudCA9PSBwcm9wZXJ0eU5hbWVzLnNldDsKLQogICAgICAgICBUcmVlUHJvcGVydHkgcHJvcGVy
dHk7CiAgICAgICAgIGNvbnN0IGJvb2wgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MgPSB0cnVlOwot
ICAgICAgICBpZiAoaXNHZXR0ZXIgfHwgaXNTZXR0ZXIpIHsKLSAgICAgICAgICAgIHNlbWFudGlj
RmFpbElmVHJ1ZShpc1N0YXRpY01ldGhvZCwgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGljIiwgc3Ry
aW5nRm9yRnVuY3Rpb25Nb2RlKGlzR2V0dGVyID8gR2V0dGVyTW9kZSA6IFNldHRlck1vZGUpKTsK
LSAgICAgICAgICAgIG5leHRFeHBlY3RJZGVudGlmaWVyKExleGVyRmxhZ3NJZ25vcmVSZXNlcnZl
ZFdvcmRzKTsKLSAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VHZXR0ZXJTZXR0ZXIoY29udGV4
dCwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIGlzR2V0dGVyID8gUHJvcGVydHlOb2RlOjpHZXR0
ZXIgOiBQcm9wZXJ0eU5vZGU6OlNldHRlciwgbWV0aG9kU3RhcnQsIGNvbnN0cnVjdG9yS2luZCwg
U3VwZXJCaW5kaW5nOjpOZWVkZWQpOwotICAgICAgICAgICAgZmFpbElmRmFsc2UocHJvcGVydHks
ICJDYW5ub3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKKyAgICAgICAgaWYgKG1hdGNoKE9QRU5CUkFD
S0VUKSkgeworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24g
Y29tcHV0ZWROYW1lID0gcGFyc2VFeHByZXNzaW9uKGNvbnRleHQpOworICAgICAgICAgICAgZmFp
bElmRmFsc2UoY29tcHV0ZWROYW1lLCAiQ2Fubm90IHBhcnNlIGNvbXB1dGVkIHByb3BlcnR5IG5h
bWUiKTsKKyAgICAgICAgICAgIGhhbmRsZVByb2R1Y3Rpb25PckZhaWwoQ0xPU0VCUkFDS0VULCAi
XSIsICJlbmQiLCAiY29tcHV0ZWQgcHJvcGVydHkgbmFtZSIpOworICAgICAgICAgICAgUGFyc2Vy
RnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBjb21wdXRlZE1ldGhvZEluZm87CisgICAgICAgICAg
ICBjb21wdXRlZE1ldGhvZEluZm8ubmFtZSA9ICZwcm9wZXJ0eU5hbWVzLm51bGxJZGVudGlmaWVy
OworICAgICAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1
bmN0aW9uTm9SZXF1aXJlbWVudHMsCisgICAgICAgICAgICAgICAgaXNTdGF0aWNNZXRob2QgPyBG
dW5jdGlvbk1vZGUgOiBNZXRob2RNb2RlLCBmYWxzZSwgY29uc3RydWN0b3JLaW5kLCBjb21wdXRl
ZE1ldGhvZEluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgICAgICAgICAg
VHJlZUV4cHJlc3Npb24gY29tcHV0ZWRNZXRob2QgPSBjb250ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhw
cihtZXRob2RMb2NhdGlvbiwgY29tcHV0ZWRNZXRob2RJbmZvLCBtZXRob2RTdGFydCk7CisgICAg
ICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29tcHV0ZWROYW1lLCBj
b21wdXRlZE1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpLbm93
bkRpcmVjdCwgYWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVp
bGRlcj4gbWV0aG9kSW5mbzsKLSAgICAgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9u
SW5mbyhjb250ZXh0LCBGdW5jdGlvbk5lZWRzTmFtZSwgaXNTdGF0aWNNZXRob2QgPyBGdW5jdGlv
bk1vZGUgOiBNZXRob2RNb2RlLCBmYWxzZSwgY29uc3RydWN0b3JLaW5kLCBtZXRob2RJbmZvKSks
ICJDYW5ub3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKLSAgICAgICAgICAgIGZhaWxJZkZhbHNlKG1l
dGhvZEluZm8ubmFtZSwgIm1ldGhvZCBtdXN0IGhhdmUgYSBuYW1lIik7Ci0gICAgICAgICAgICBm
YWlsSWZGYWxzZShkZWNsYXJlVmFyaWFibGUobWV0aG9kSW5mby5uYW1lKSwgIkNhbm5vdCBkZWNs
YXJlIGEgbWV0aG9kIG5hbWVkICciLCBtZXRob2RJbmZvLm5hbWUtPmltcGwoKSwgIiciKTsKLQot
ICAgICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdG9yID0gIWlzU3RhdGljTWV0aG9kICYmICptZXRo
b2RJbmZvLm5hbWUgPT0gcHJvcGVydHlOYW1lcy5jb25zdHJ1Y3RvcjsKLSAgICAgICAgICAgIGlm
IChpc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgIG1ldGhvZEluZm8ubmFtZSA9IGNsYXNz
TmFtZTsKLQotICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gbWV0aG9kID0gY29udGV4dC5jcmVh
dGVGdW5jdGlvbkV4cHIobWV0aG9kTG9jYXRpb24sIG1ldGhvZEluZm8sIG1ldGhvZFN0YXJ0KTsK
LSAgICAgICAgICAgIGlmIChpc0NvbnN0cnVjdG9yKSB7Ci0gICAgICAgICAgICAgICAgc2VtYW50
aWNGYWlsSWZUcnVlKGNvbnN0cnVjdG9yLCAiQ2Fubm90IGRlY2xhcmUgbXVsdGlwbGUgY29uc3Ry
dWN0b3JzIGluIGEgc2luZ2xlIGNsYXNzIik7Ci0gICAgICAgICAgICAgICAgY29uc3RydWN0b3Ig
PSBtZXRob2Q7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICBtYXRjaE9yRmFpbChJREVOVCwgIkV4cGVjdGVkIGFuIGluZGVudGlmaWVyIik7CisK
KyAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gKm1fdG9rZW4ubV9kYXRhLmlk
ZW50OworICAgICAgICAgICAgYm9vbCBpc0dldHRlciA9IGlkZW50ID09IHByb3BlcnR5TmFtZXMu
Z2V0OworICAgICAgICAgICAgYm9vbCBpc1NldHRlciA9IGlkZW50ID09IHByb3BlcnR5TmFtZXMu
c2V0OwogCi0gICAgICAgICAgICAvLyBGSVhNRTogU3ludGF4IGVycm9yIHdoZW4gc3VwZXIoKSBp
cyBjYWxsZWQKLSAgICAgICAgICAgIHNlbWFudGljRmFpbElmVHJ1ZShpc1N0YXRpY01ldGhvZCAm
JiAqbWV0aG9kSW5mby5uYW1lID09IHByb3BlcnR5TmFtZXMucHJvdG90eXBlLAotICAgICAgICAg
ICAgICAgICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRpYyBtZXRob2QgbmFtZWQgJ3Byb3RvdHlwZSci
KTsKLSAgICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShtZXRob2RJ
bmZvLm5hbWUsIG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpV
bmtub3duLCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQpOwor
ICAgICAgICAgICAgaWYgKGlzR2V0dGVyIHx8IGlzU2V0dGVyKSB7CisgICAgICAgICAgICAgICAg
bmV4dEV4cGVjdElkZW50aWZpZXIoTGV4ZXJGbGFnc0lnbm9yZVJlc2VydmVkV29yZHMpOworICAg
ICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VHZXR0ZXJTZXR0ZXIoY29udGV4dCwgYWx3YXlz
U3RyaWN0SW5zaWRlQ2xhc3MsIGlzR2V0dGVyID8gUHJvcGVydHlOb2RlOjpHZXR0ZXIgOiBQcm9w
ZXJ0eU5vZGU6OlNldHRlciwgbWV0aG9kU3RhcnQsIGNvbnN0cnVjdG9yS2luZCwgU3VwZXJCaW5k
aW5nOjpOZWVkZWQpOworICAgICAgICAgICAgICAgIGZhaWxJZkZhbHNlKHByb3BlcnR5LCAiQ2Fu
bm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4gbWV0aG9kSW5mbzsKKyAgICAg
ICAgICAgICAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwgRnVuY3Rp
b25OZWVkc05hbWUsIGlzU3RhdGljTWV0aG9kID8gRnVuY3Rpb25Nb2RlIDogTWV0aG9kTW9kZSwg
ZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwgbWV0aG9kSW5mbykpLCAiQ2Fubm90IHBhcnNlIHRoaXMg
bWV0aG9kIik7CisgICAgICAgICAgICAgICAgZmFpbElmRmFsc2UobWV0aG9kSW5mby5uYW1lLCAi
bWV0aG9kIG11c3QgaGF2ZSBhIG5hbWUiKTsKKyAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShk
ZWNsYXJlVmFyaWFibGUobWV0aG9kSW5mby5uYW1lKSwgIkNhbm5vdCBkZWNsYXJlIGEgbWV0aG9k
IG5hbWVkICciLCBtZXRob2RJbmZvLm5hbWUtPmltcGwoKSwgIiciKTsKKworICAgICAgICAgICAg
ICAgIGJvb2wgaXNDb25zdHJ1Y3RvciA9ICFpc1N0YXRpY01ldGhvZCAmJiAqbWV0aG9kSW5mby5u
YW1lID09IHByb3BlcnR5TmFtZXMuY29uc3RydWN0b3I7CisgICAgICAgICAgICAgICAgaWYgKGlz
Q29uc3RydWN0b3IpCisgICAgICAgICAgICAgICAgICAgIG1ldGhvZEluZm8ubmFtZSA9IGNsYXNz
TmFtZTsKKworICAgICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG1ldGhvZCA9IGNvbnRleHQu
Y3JlYXRlRnVuY3Rpb25FeHByKG1ldGhvZExvY2F0aW9uLCBtZXRob2RJbmZvLCBtZXRob2RTdGFy
dCk7CisgICAgICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0b3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGNvbnN0cnVjdG9yLCAiQ2Fubm90IGRlY2xhcmUgbXVs
dGlwbGUgY29uc3RydWN0b3JzIGluIGEgc2luZ2xlIGNsYXNzIik7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0cnVjdG9yID0gbWV0aG9kOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogU3ludGF4IGVy
cm9yIHdoZW4gc3VwZXIoKSBpcyBjYWxsZWQKKyAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJ
ZlRydWUoaXNTdGF0aWNNZXRob2QgJiYgKm1ldGhvZEluZm8ubmFtZSA9PSBwcm9wZXJ0eU5hbWVz
LnByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGlj
IG1ldGhvZCBuYW1lZCAncHJvdG90eXBlJyIpOworICAgICAgICAgICAgICAgIHByb3BlcnR5ID0g
Y29udGV4dC5jcmVhdGVQcm9wZXJ0eShtZXRob2RJbmZvLm5hbWUsIG1ldGhvZCwgUHJvcGVydHlO
b2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBhbHdheXNTdHJpY3RJbnNpZGVD
bGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgVHJlZVByb3BlcnR5TGlzdCYgdGFpbCA9IGlzU3RhdGljTWV0aG9kID8gc3RhdGlj
TWV0aG9kc1RhaWwgOiBpbnN0YW5jZU1ldGhvZHNUYWlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCBhYTM4ZTMyZGIxNjZhNDIwMDFjYTIzMjY4
MDg3MzhlZDIwMGI4YjVhLi43ODhlOTE5NmFmOGIzN2UyNDdhMTIwY2FlNzExNDQ1YjA3MGVlNzEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAt
MTg5LDcgKzE4OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0eSh0eXBl
KTsKICAgICAgICAgcmV0dXJuIFByb3BlcnR5KCZwYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEo
KS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIG5hbWUpLCB0eXBlKTsKICAgICB9Ci0gICAgUHJv
cGVydHkgY3JlYXRlUHJvcGVydHkoaW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQ
cm9wZXJ0eU5vZGU6OlB1dFR5cGUsIGJvb2wpCisgICAgUHJvcGVydHkgY3JlYXRlUHJvcGVydHko
aW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUs
IGJvb2wsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIFByb3BlcnR5KHR5cGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlOWRhNjdlYzkzOTQ5
YTE4YzRkMWU3ODYyOTc0YjE4Yzk1ODM0ZDI5Li5iYzY3YTJhNzQyMTEyYTk5YjY5OTJiNDMyNmE3
NTJmN2VkYjRjMmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMDMtMTMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRVM2IGNsYXNzIHN5bnRheCBzaG91
bGQgYWxsb3cgY29tcHV0ZWQgbmFtZSBtZXRob2QgYXMgd2VsbCBhcyBzdGF0aWMgZ2V0dGVycyBh
bmQgc2V0dGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSB0ZXN0IGZvciBjb21wdXRlZCBtZXRob2QgbmFtZXMuCisKKyAgICAgICAgQWxz
byBhZGRlZCB0ZXN0IGNhc2VzIGZvciBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0byBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2Qt
bmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1jb21w
dXRlZC1tZXRob2QtbmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9jbGFzcy1zeW50YXgt
ZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1leHBy
ZXNzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3lu
dGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zY3JpcHQt
dGVzdHMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10
ZXN0cy9jbGFzcy1zeW50YXgtZXhwcmVzc2lvbi5qczoKKwogMjAxNS0wMy0xNiAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgRVM2IGNsYXNzZXMgYnkg
ZGVmYXVsdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWNvbXB1dGVk
LW1ldGhvZC1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1j
b21wdXRlZC1tZXRob2QtbmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA5MWExMGVkMzE0
ZjFmZDJhNzdiYTQxMTc3N2U4MWZiYmNlNDA3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL2NsYXNzLXN5bnRheC1jb21wdXRlZC1tZXRob2QtbmFtZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgY29tcHV0ZWQg
cHJvcGVydHkgbmFtZXMgaW4gRVM2IGNsYXNzIHN5bnRheC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgKGNsYXNzIHsgc3RhdGljIFsiaGkiXSgpIHsgcmV0dXJuIDE7IH0g
fSkuaGkoKSBpcyAxCitQQVNTIChuZXcgKGNsYXNzIHsgWyJoaSJdKCkgeyByZXR1cm4gMjsgfSB9
KSkuaGkoKSBpcyAyCitQQVNTIChjbGFzcyB7IHN0YXRpYyBbImhpIl0oKSB7IHJldHVybiAzOyB9
IHN0YXRpYyBoaSgpIHsgcmV0dXJuIDQ7IH0gfSkuaGkoKSBpcyA0CitQQVNTIHZhciBjID0gbmV3
IChjbGFzcyB7IGhpKCkgeyByZXR1cm4gNTsgfSBbImhpIl0oKSB7IHJldHVybiA2OyB9IH0pOyBj
LmhpKCkgaXMgNgorUEFTUyB2YXIgYyA9IG5ldyAoY2xhc3MgeyBbTmFOXSgpIHsgcmV0dXJuIDc7
IH0gfSk7IGNbTmFOXSgpOyBpcyA3CitQQVNTIHZhciBhID0gImhlbGxvIiwgYiA9IDg7IChuZXcg
KGNsYXNzIHsgW2EgKyBiXSgpIHsgcmV0dXJuIDk7IH0gfSkpLmhlbGxvOCgpIGlzIDkKK1BBU1Mg
dmFyIGMgPSBuZXcgKGNsYXNzIHsgWzIgKiA1XSgpIHsgcmV0dXJuIDExOyB9IH0pOyBjWyIxMCJd
KCkgaXMgMTEKK1BBU1MgdmFyIGMgPSBuZXcgKGNsYXNzIHsgW251bGxdKCkgeyByZXR1cm4gMTI7
IH0gW3VuZGVmaW5lZF0oKSB7IHJldHVybiAxMzsgfSB9KTsgY1t1bmRlZmluZWRdKCkgaXMgMTMK
K1BBU1MgdmFyIGMgPSBuZXcgKGNsYXNzIHsgWzE0ICsgMC4wMSArICJ4Il0oeCkgeyByZXR1cm4g
eCArIDE1OyB9IH0pOyBjWyIxNC4wMXgiXSgxKSBpcyAxNgorUEFTUyBuZXcgKGNsYXNzIHsgWzEr
XSgpIHsgfSB9KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
J10nLgorUEFTUyBuZXcgKGNsYXNzIHsgW3Zhcl0oKSB7IH0gfSkgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIGtleXdvcmQgJ3ZhcicuCitQQVNTIG5ldyAoY2xhc3MgeyBb
YmF6XSgpIHsgfSB9KSB0aHJldyBleGNlcHRpb24gUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IGJhei4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtY29tcHV0
ZWQtbWV0aG9kLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1jb21wdXRl
ZC1tZXRob2QtbmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZDUyNTMxNzdkMTUyMWQzYjc1MjllMjg0
NzQ2MzMxYWMwNDI2OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1z
eW50YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jbGFzcy1zeW50
YXgtY29tcHV0ZWQtbWV0aG9kLW5hbWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggOTNjNWU0YTAyZjUyN2EzOTNjNGZhODc2Zjg1OWUzYTUyZGJmNjgyOS4uY2ZiYmJk
NDcyZWU3NWE5ZDhiY2YxZWNmMjFhYzZlYzEzMjMzZTczYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvanMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC01LDE0ICs1
LDE0IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291
bnQgaXMgMAogUEFTUyBBLnNvbWVTdGF0aWNNZXRob2QoKSBpcyBzdGF0aWNNZXRob2RWYWx1ZQor
UEFTUyBBLnNvbWVTdGF0aWNHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKK1BBU1Mgc2V0dGVyVmFsdWUg
PSB1bmRlZmluZWQ7IEEuc29tZVN0YXRpY1NldHRlciA9IDEyMzsgc2V0dGVyVmFsdWUgaXMgMTIz
CiBQQVNTIChuZXcgQSkuc29tZUluc3RhbmNlTWV0aG9kKCkgaXMgaW5zdGFuY2VNZXRob2RWYWx1
ZQogUEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAxCiBQQVNTIChuZXcgQSkuc29tZUdldHRl
ciBpcyBnZXR0ZXJWYWx1ZQogUEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAyCiBQQVNTIChu
ZXcgQSkuc29tZUdldHRlciBpcyBnZXR0ZXJWYWx1ZQotUEFTUyBzZXR0ZXJWYWx1ZSBpcyB1bmRl
ZmluZWQKLVBBU1MgKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5IGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgotUEFTUyBzZXR0ZXJWYWx1ZSBpcyA3ODkKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmlu
ZWQ7IChuZXcgQSkuc29tZVNldHRlciA9IDc4OTsgc2V0dGVyVmFsdWUgaXMgNzg5CiBQQVNTIChu
ZXcgQSkuX19wcm90b19fIGlzIEEucHJvdG90eXBlCiBQQVNTIEEucHJvdG90eXBlLmNvbnN0cnVj
dG9yIGlzIEEKIFBBU1MgY2xhc3MgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIGVuZCBvZiBzY3JpcHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50
YXgtZXhwcmVzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgt
ZXhwcmVzc2lvbi1leHBlY3RlZC50eHQKaW5kZXggMzgwNzQ2MTdhMTUxYWE5OWE4NzI5ZTllNjUz
NTQ2MjI5OGJmM2VmYS4uYjhhYWE5YWM5M2E3ZTViZmRiNGZkNDk3MjY4ZTQ4NzUyNmE4ODFjYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLWV4cGVj
dGVkLnR4dApAQCAtNSwxNCArNSwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNT
IGNvbnN0cnVjdG9yQ2FsbENvdW50IGlzIDAKIFBBU1MgQS5zb21lU3RhdGljTWV0aG9kKCkgaXMg
c3RhdGljTWV0aG9kVmFsdWUKK1BBU1MgQS5zb21lU3RhdGljR2V0dGVyIGlzIGdldHRlclZhbHVl
CitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0ZXIgPSAxMjM7
IHNldHRlclZhbHVlIGlzIDEyMwogUEFTUyAobmV3IEEpLnNvbWVJbnN0YW5jZU1ldGhvZCgpIGlz
IGluc3RhbmNlTWV0aG9kVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQgaXMgMQogUEFT
UyAobmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxs
Q291bnQgaXMgMgogUEFTUyAobmV3IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKLVBBU1Mg
c2V0dGVyVmFsdWUgaXMgdW5kZWZpbmVkCi1QQVNTIChuZXcgQSkuc29tZVNldHRlciA9IDc4OSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mgc2V0dGVyVmFsdWUgaXMgNzg5CitQQVNTIHNl
dHRlclZhbHVlID0gdW5kZWZpbmVkOyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7IHNldHRlclZh
bHVlIGlzIDc4OQogUEFTUyAobmV3IEEpLl9fcHJvdG9fXyBpcyBBLnByb3RvdHlwZQogUEFTUyBB
LnByb3RvdHlwZS5jb25zdHJ1Y3RvciBpcyBBCiBQQVNTIHggPSBjbGFzcyB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgZW5kIG9mIHNjcmlwdC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtY29tcHV0ZWQtbWV0aG9kLW5h
bWUuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWNvbXB1dGVk
LW1ldGhvZC1uYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNGUwM2M3OTAyNDU0MmQzNGI2NmIwNmYwMzkz
NTI0ZjhhODJhMmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvY2xhc3Mtc3ludGF4LWNvbXB1dGVkLW1ldGhvZC1uYW1lLmpzCkBAIC0wLDAgKzEsMTcgQEAK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiBjb21wdXRlZCBw
cm9wZXJ0eSBuYW1lcyBpbiBFUzYgY2xhc3Mgc3ludGF4LiIpOworCitzaG91bGRCZSgnKGNsYXNz
IHsgc3RhdGljIFsiaGkiXSgpIHsgcmV0dXJuIDE7IH0gfSkuaGkoKScsICcxJyk7CitzaG91bGRC
ZSgnKG5ldyAoY2xhc3MgeyBbImhpIl0oKSB7IHJldHVybiAyOyB9IH0pKS5oaSgpJywgJzInKTsK
K3Nob3VsZEJlKCcoY2xhc3MgeyBzdGF0aWMgWyJoaSJdKCkgeyByZXR1cm4gMzsgfSBzdGF0aWMg
aGkoKSB7IHJldHVybiA0OyB9IH0pLmhpKCknLCAnNCcpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3
IChjbGFzcyB7IGhpKCkgeyByZXR1cm4gNTsgfSBbImhpIl0oKSB7IHJldHVybiA2OyB9IH0pOyBj
LmhpKCknLCAnNicpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3IChjbGFzcyB7IFtOYU5dKCkgeyBy
ZXR1cm4gNzsgfSB9KTsgY1tOYU5dKCk7JywgJzcnKTsKK3Nob3VsZEJlKCd2YXIgYSA9ICJoZWxs
byIsIGIgPSA4OyAobmV3IChjbGFzcyB7IFthICsgYl0oKSB7IHJldHVybiA5OyB9IH0pKS5oZWxs
bzgoKScsICc5Jyk7CitzaG91bGRCZSgndmFyIGMgPSBuZXcgKGNsYXNzIHsgWzIgKiA1XSgpIHsg
cmV0dXJuIDExOyB9IH0pOyBjWyIxMCJdKCknLCAnMTEnKTsKK3Nob3VsZEJlKCd2YXIgYyA9IG5l
dyAoY2xhc3MgeyBbbnVsbF0oKSB7IHJldHVybiAxMjsgfSBbdW5kZWZpbmVkXSgpIHsgcmV0dXJu
IDEzOyB9IH0pOyBjW3VuZGVmaW5lZF0oKScsICcxMycpOworc2hvdWxkQmUoJ3ZhciBjID0gbmV3
IChjbGFzcyB7IFsxNCArIDAuMDEgKyAieCJdKHgpIHsgcmV0dXJuIHggKyAxNTsgfSB9KTsgY1si
MTQuMDF4Il0oMSknLCAnMTYnKTsKKworc2hvdWxkVGhyb3coJ25ldyAoY2xhc3MgeyBbMStdKCkg
eyB9IH0pJywgJyJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiBcJ11cJyInKTsKK3Nob3Vs
ZFRocm93KCduZXcgKGNsYXNzIHsgW3Zhcl0oKSB7IH0gfSknLCAnIlN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIGtleXdvcmQgXCd2YXJcJyInKTsKK3Nob3VsZFRocm93KCduZXcgKGNsYXNzIHsgW2Jh
el0oKSB7IH0gfSknLCAnIlJlZmVyZW5jZUVycm9yOiBDYW5cJ3QgZmluZCB2YXJpYWJsZTogYmF6
IicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanMgYi9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0aW9uLmpzCmluZGV4
IDAzNTMyMWU3ODNhNWMwZThiYmI3MjQzOGFjN2QxYjFjYzFiZmE5YmUuLjNhNTE3NzU3OGQ1OWMx
ODBlMDA5NGMyNzhiMDA4YzViODU0MmQ4NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi5qcwpAQCAtOSw2ICs5LDgg
QEAgdmFyIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOwogY2xhc3MgQSB7CiAgICAgY29uc3RydWN0
b3IoKSB7IGNvbnN0cnVjdG9yQ2FsbENvdW50Kys7IH0KICAgICBzdGF0aWMgc29tZVN0YXRpY01l
dGhvZCgpIHsgcmV0dXJuIHN0YXRpY01ldGhvZFZhbHVlOyB9CisgICAgc3RhdGljIGdldCBzb21l
U3RhdGljR2V0dGVyKCkgeyByZXR1cm4gZ2V0dGVyVmFsdWU7IH0KKyAgICBzdGF0aWMgc2V0IHNv
bWVTdGF0aWNTZXR0ZXIodmFsdWUpIHsgc2V0dGVyVmFsdWUgPSB2YWx1ZTsgfQogICAgIHNvbWVJ
bnN0YW5jZU1ldGhvZCgpIHsgcmV0dXJuIGluc3RhbmNlTWV0aG9kVmFsdWU7IH0KICAgICBnZXQg
c29tZUdldHRlcigpIHsgcmV0dXJuIGdldHRlclZhbHVlOyB9CiAgICAgc2V0IHNvbWVTZXR0ZXIo
dmFsdWUpIHsgc2V0dGVyVmFsdWUgPSB2YWx1ZTsgfQpAQCAtMTYsMTQgKzE4LDE0IEBAIGNsYXNz
IEEgewogCiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMCIpOwogc2hvdWxkQmUo
IkEuc29tZVN0YXRpY01ldGhvZCgpIiwgInN0YXRpY01ldGhvZFZhbHVlIik7CitzaG91bGRCZSgi
QS5zb21lU3RhdGljR2V0dGVyIiwgImdldHRlclZhbHVlIik7CitzaG91bGRCZSgic2V0dGVyVmFs
dWUgPSB1bmRlZmluZWQ7IEEuc29tZVN0YXRpY1NldHRlciA9IDEyMzsgc2V0dGVyVmFsdWUiLCAi
MTIzIik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lSW5zdGFuY2VNZXRob2QoKSIsICJpbnN0YW5j
ZU1ldGhvZFZhbHVlIik7CiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMSIpOwog
c2hvdWxkQmUoIihuZXcgQSkuc29tZUdldHRlciIsICJnZXR0ZXJWYWx1ZSIpOwogc2hvdWxkQmUo
ImNvbnN0cnVjdG9yQ2FsbENvdW50IiwgIjIiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVHZXR0
ZXIiLCAiZ2V0dGVyVmFsdWUiKTsKLXNob3VsZEJlKCJzZXR0ZXJWYWx1ZSIsICJ1bmRlZmluZWQi
KTsKLXNob3VsZE5vdFRocm93KCIobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODkiKTsKLXNob3VsZEJl
KCJzZXR0ZXJWYWx1ZSIsICI3ODkiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5l
ZDsgKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5OyBzZXR0ZXJWYWx1ZSIsICI3ODkiKTsKIHNob3Vs
ZEJlKCIobmV3IEEpLl9fcHJvdG9fXyIsICJBLnByb3RvdHlwZSIpOwogc2hvdWxkQmUoIkEucHJv
dG90eXBlLmNvbnN0cnVjdG9yIiwgIkEiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzCmluZGV4IDZlY2E2ZmZlNTA1
OTRhZDU5ODBjNWY0ZWE1MTRmZDI3NWYzZjhjMmIuLmVkZGJhMjU2ODQyZjViNThlM2VmOGQ3Y2Zi
MDI4NWM1ODdhNmNkMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9j
bGFzcy1zeW50YXgtZXhwcmVzc2lvbi5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24uanMKQEAgLTksNiArOSw4IEBAIHZhciBzZXR0ZXJW
YWx1ZSA9IHVuZGVmaW5lZDsKIHZhciBBID0gY2xhc3MgewogICAgIGNvbnN0cnVjdG9yKCkgeyBj
b25zdHJ1Y3RvckNhbGxDb3VudCsrOyB9CiAgICAgc3RhdGljIHNvbWVTdGF0aWNNZXRob2QoKSB7
IHJldHVybiBzdGF0aWNNZXRob2RWYWx1ZTsgfQorICAgIHN0YXRpYyBnZXQgc29tZVN0YXRpY0dl
dHRlcigpIHsgcmV0dXJuIGdldHRlclZhbHVlOyB9CisgICAgc3RhdGljIHNldCBzb21lU3RhdGlj
U2V0dGVyKHZhbHVlKSB7IHNldHRlclZhbHVlID0gdmFsdWU7IH0KICAgICBzb21lSW5zdGFuY2VN
ZXRob2QoKSB7IHJldHVybiBpbnN0YW5jZU1ldGhvZFZhbHVlOyB9CiAgICAgZ2V0IHNvbWVHZXR0
ZXIoKSB7IHJldHVybiBnZXR0ZXJWYWx1ZTsgfQogICAgIHNldCBzb21lU2V0dGVyKHZhbHVlKSB7
IHNldHRlclZhbHVlID0gdmFsdWU7IH0KQEAgLTE2LDE0ICsxOCwxNCBAQCB2YXIgQSA9IGNsYXNz
IHsKIAogc2hvdWxkQmUoImNvbnN0cnVjdG9yQ2FsbENvdW50IiwgIjAiKTsKIHNob3VsZEJlKCJB
LnNvbWVTdGF0aWNNZXRob2QoKSIsICJzdGF0aWNNZXRob2RWYWx1ZSIpOworc2hvdWxkQmUoIkEu
c29tZVN0YXRpY0dldHRlciIsICJnZXR0ZXJWYWx1ZSIpOworc2hvdWxkQmUoInNldHRlclZhbHVl
ID0gdW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0ZXIgPSAxMjM7IHNldHRlclZhbHVlIiwgIjEy
MyIpOwogc2hvdWxkQmUoIihuZXcgQSkuc29tZUluc3RhbmNlTWV0aG9kKCkiLCAiaW5zdGFuY2VN
ZXRob2RWYWx1ZSIpOwogc2hvdWxkQmUoImNvbnN0cnVjdG9yQ2FsbENvdW50IiwgIjEiKTsKIHNo
b3VsZEJlKCIobmV3IEEpLnNvbWVHZXR0ZXIiLCAiZ2V0dGVyVmFsdWUiKTsKIHNob3VsZEJlKCJj
b25zdHJ1Y3RvckNhbGxDb3VudCIsICIyIik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lR2V0dGVy
IiwgImdldHRlclZhbHVlIik7Ci1zaG91bGRCZSgic2V0dGVyVmFsdWUiLCAidW5kZWZpbmVkIik7
Ci1zaG91bGROb3RUaHJvdygiKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5Iik7Ci1zaG91bGRCZSgi
c2V0dGVyVmFsdWUiLCAiNzg5Iik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7
IChuZXcgQSkuc29tZVNldHRlciA9IDc4OTsgc2V0dGVyVmFsdWUiLCAiNzg5Iik7CiBzaG91bGRC
ZSgiKG5ldyBBKS5fX3Byb3RvX18iLCAiQS5wcm90b3R5cGUiKTsKIHNob3VsZEJlKCJBLnByb3Rv
dHlwZS5jb25zdHJ1Y3RvciIsICJBIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249848</attachid>
            <date>2015-03-31 13:55:17 -0700</date>
            <delta_ts>2015-03-31 13:55:53 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-142690-20150331135434.patch</filename>
            <type>text/plain</type>
            <size>7636</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyMjAyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE1LTAzLTMxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEVTNiBjbGFzcyBzeW50YXggc2hvdWxkIGFsbG93IGNvbXB1dGVkIG5hbWUgbWV0aG9kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIEFwcGFyZW50bHkgSSBt
aXNyZWFkIHRoZSBzcGVjIHdoZW4gSSBpbml0aWFseSBpbXBsZW1lbnRlZCBwYXJzZUNsYXNzLgor
ICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IGFsbG93cyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVy
cyBzbyBqdXN0IGFsbG93IHRoYXQuCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3MpOgorCiAyMDE1LTAzLTMx
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBMb2dpY2FsbHkg
ZW1wdHkgV2Vha0Jsb2NrcyBzaG91bGQgbm90IHBpbiBkb3duIHRoZWlyIE1hcmtlZEJsb2NrcyBp
bmRlZmluaXRlbHkuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CShyZXZpc2lvbiAxODIxOTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NDUsNyArMTU0NSw2IEBAIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gVHJlZUNsYXNzRXgKICAgICAgICAgVHJlZVByb3BlcnR5IHByb3BlcnR5
OwogICAgICAgICBjb25zdCBib29sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzID0gdHJ1ZTsKICAg
ICAgICAgaWYgKGlzR2V0dGVyIHx8IGlzU2V0dGVyKSB7Ci0gICAgICAgICAgICBzZW1hbnRpY0Zh
aWxJZlRydWUoaXNTdGF0aWNNZXRob2QsICJDYW5ub3QgZGVjbGFyZSBhIHN0YXRpYyIsIHN0cmlu
Z0ZvckZ1bmN0aW9uTW9kZShpc0dldHRlciA/IEdldHRlck1vZGUgOiBTZXR0ZXJNb2RlKSk7CiAg
ICAgICAgICAgICBuZXh0RXhwZWN0SWRlbnRpZmllcihMZXhlckZsYWdzSWdub3JlUmVzZXJ2ZWRX
b3Jkcyk7CiAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlR2V0dGVyU2V0dGVyKGNvbnRleHQs
IGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBpc0dldHRlciA/IFByb3BlcnR5Tm9kZTo6R2V0dGVy
IDogUHJvcGVydHlOb2RlOjpTZXR0ZXIsIG1ldGhvZFN0YXJ0LCBjb25zdHJ1Y3RvcktpbmQsIFN1
cGVyQmluZGluZzo6TmVlZGVkKTsKICAgICAgICAgICAgIGZhaWxJZkZhbHNlKHByb3BlcnR5LCAi
Q2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODIyMDIpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxNS0wMy0zMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBF
UzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNl
cy4KKworICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICoganMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanM6CisgICAg
ICAgICoganMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzOgorCiAyMDE1
LTAzLTMxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBhY2Nlc3Np
YmlsaXR5L2FyaWEtaGlkZGVuLWhpZGVzLWFsbC1lbGVtZW50cy5odG1sIGZhaWxzIG9uIFdpbmRv
d3MKSW5kZXg6IExheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWRlY2xhcmF0
aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTgyMTk3KQorKysgTGF5b3V0VGVzdHMvanMvY2xh
c3Mtc3ludGF4LWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSwx
NCArNSwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBB
U1MgY29uc3RydWN0b3JDYWxsQ291bnQgaXMgMAogUEFTUyBBLnNvbWVTdGF0aWNNZXRob2QoKSBp
cyBzdGF0aWNNZXRob2RWYWx1ZQorUEFTUyBBLnNvbWVTdGF0aWNHZXR0ZXIgaXMgZ2V0dGVyVmFs
dWUKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IEEuc29tZVN0YXRpY1NldHRlciA9IDEy
Mzsgc2V0dGVyVmFsdWUgaXMgMTIzCiBQQVNTIChuZXcgQSkuc29tZUluc3RhbmNlTWV0aG9kKCkg
aXMgaW5zdGFuY2VNZXRob2RWYWx1ZQogUEFTUyBjb25zdHJ1Y3RvckNhbGxDb3VudCBpcyAxCiBQ
QVNTIChuZXcgQSkuc29tZUdldHRlciBpcyBnZXR0ZXJWYWx1ZQogUEFTUyBjb25zdHJ1Y3RvckNh
bGxDb3VudCBpcyAyCiBQQVNTIChuZXcgQSkuc29tZUdldHRlciBpcyBnZXR0ZXJWYWx1ZQotUEFT
UyBzZXR0ZXJWYWx1ZSBpcyB1bmRlZmluZWQKLVBBU1MgKG5ldyBBKS5zb21lU2V0dGVyID0gNzg5
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBzZXR0ZXJWYWx1ZSBpcyA3ODkKK1BBU1Mg
c2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IChuZXcgQSkuc29tZVNldHRlciA9IDc4OTsgc2V0dGVy
VmFsdWUgaXMgNzg5CiBQQVNTIChuZXcgQSkuX19wcm90b19fIGlzIEEucHJvdG90eXBlCiBQQVNT
IEEucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIEEKIFBBU1MgY2xhc3MgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGVuZCBvZiBzY3JpcHQuCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9jbGFzcy1zeW50YXgtZXhwcmVzc2lvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODIxOTcpCisrKyBMYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtZXhwcmVzc2lvbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsMTQgKzUsMTQgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIGNvbnN0cnVjdG9yQ2FsbENvdW50
IGlzIDAKIFBBU1MgQS5zb21lU3RhdGljTWV0aG9kKCkgaXMgc3RhdGljTWV0aG9kVmFsdWUKK1BB
U1MgQS5zb21lU3RhdGljR2V0dGVyIGlzIGdldHRlclZhbHVlCitQQVNTIHNldHRlclZhbHVlID0g
dW5kZWZpbmVkOyBBLnNvbWVTdGF0aWNTZXR0ZXIgPSAxMjM7IHNldHRlclZhbHVlIGlzIDEyMwog
UEFTUyAobmV3IEEpLnNvbWVJbnN0YW5jZU1ldGhvZCgpIGlzIGluc3RhbmNlTWV0aG9kVmFsdWUK
IFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQgaXMgMQogUEFTUyAobmV3IEEpLnNvbWVHZXR0ZXIg
aXMgZ2V0dGVyVmFsdWUKIFBBU1MgY29uc3RydWN0b3JDYWxsQ291bnQgaXMgMgogUEFTUyAobmV3
IEEpLnNvbWVHZXR0ZXIgaXMgZ2V0dGVyVmFsdWUKLVBBU1Mgc2V0dGVyVmFsdWUgaXMgdW5kZWZp
bmVkCi1QQVNTIChuZXcgQSkuc29tZVNldHRlciA9IDc4OSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KLVBBU1Mgc2V0dGVyVmFsdWUgaXMgNzg5CitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVk
OyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7IHNldHRlclZhbHVlIGlzIDc4OQogUEFTUyAobmV3
IEEpLl9fcHJvdG9fXyBpcyBBLnByb3RvdHlwZQogUEFTUyBBLnByb3RvdHlwZS5jb25zdHJ1Y3Rv
ciBpcyBBCiBQQVNTIHggPSBjbGFzcyB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgZW5kIG9mIHNjcmlwdC4KSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9j
bGFzcy1zeW50YXgtZGVjbGFyYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlvbi5qcwkocmV2aXNpb24gMTgyMTk3
KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1kZWNsYXJhdGlv
bi5qcwkod29ya2luZyBjb3B5KQpAQCAtOSw2ICs5LDggQEAgdmFyIHNldHRlclZhbHVlID0gdW5k
ZWZpbmVkOwogY2xhc3MgQSB7CiAgICAgY29uc3RydWN0b3IoKSB7IGNvbnN0cnVjdG9yQ2FsbENv
dW50Kys7IH0KICAgICBzdGF0aWMgc29tZVN0YXRpY01ldGhvZCgpIHsgcmV0dXJuIHN0YXRpY01l
dGhvZFZhbHVlOyB9CisgICAgc3RhdGljIGdldCBzb21lU3RhdGljR2V0dGVyKCkgeyByZXR1cm4g
Z2V0dGVyVmFsdWU7IH0KKyAgICBzdGF0aWMgc2V0IHNvbWVTdGF0aWNTZXR0ZXIodmFsdWUpIHsg
c2V0dGVyVmFsdWUgPSB2YWx1ZTsgfQogICAgIHNvbWVJbnN0YW5jZU1ldGhvZCgpIHsgcmV0dXJu
IGluc3RhbmNlTWV0aG9kVmFsdWU7IH0KICAgICBnZXQgc29tZUdldHRlcigpIHsgcmV0dXJuIGdl
dHRlclZhbHVlOyB9CiAgICAgc2V0IHNvbWVTZXR0ZXIodmFsdWUpIHsgc2V0dGVyVmFsdWUgPSB2
YWx1ZTsgfQpAQCAtMTYsMTQgKzE4LDE0IEBAIGNsYXNzIEEgewogCiBzaG91bGRCZSgiY29uc3Ry
dWN0b3JDYWxsQ291bnQiLCAiMCIpOwogc2hvdWxkQmUoIkEuc29tZVN0YXRpY01ldGhvZCgpIiwg
InN0YXRpY01ldGhvZFZhbHVlIik7CitzaG91bGRCZSgiQS5zb21lU3RhdGljR2V0dGVyIiwgImdl
dHRlclZhbHVlIik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IEEuc29tZVN0
YXRpY1NldHRlciA9IDEyMzsgc2V0dGVyVmFsdWUiLCAiMTIzIik7CiBzaG91bGRCZSgiKG5ldyBB
KS5zb21lSW5zdGFuY2VNZXRob2QoKSIsICJpbnN0YW5jZU1ldGhvZFZhbHVlIik7CiBzaG91bGRC
ZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMSIpOwogc2hvdWxkQmUoIihuZXcgQSkuc29tZUdl
dHRlciIsICJnZXR0ZXJWYWx1ZSIpOwogc2hvdWxkQmUoImNvbnN0cnVjdG9yQ2FsbENvdW50Iiwg
IjIiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVHZXR0ZXIiLCAiZ2V0dGVyVmFsdWUiKTsKLXNo
b3VsZEJlKCJzZXR0ZXJWYWx1ZSIsICJ1bmRlZmluZWQiKTsKLXNob3VsZE5vdFRocm93KCIobmV3
IEEpLnNvbWVTZXR0ZXIgPSA3ODkiKTsKLXNob3VsZEJlKCJzZXR0ZXJWYWx1ZSIsICI3ODkiKTsK
K3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgKG5ldyBBKS5zb21lU2V0dGVyID0g
Nzg5OyBzZXR0ZXJWYWx1ZSIsICI3ODkiKTsKIHNob3VsZEJlKCIobmV3IEEpLl9fcHJvdG9fXyIs
ICJBLnByb3RvdHlwZSIpOwogc2hvdWxkQmUoIkEucHJvdG90eXBlLmNvbnN0cnVjdG9yIiwgIkEi
KTsKIApJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHBy
ZXNzaW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFz
cy1zeW50YXgtZXhwcmVzc2lvbi5qcwkocmV2aXNpb24gMTgyMTk3KQorKysgTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHByZXNzaW9uLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC05LDYgKzksOCBAQCB2YXIgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7CiB2YXIgQSA9IGNs
YXNzIHsKICAgICBjb25zdHJ1Y3RvcigpIHsgY29uc3RydWN0b3JDYWxsQ291bnQrKzsgfQogICAg
IHN0YXRpYyBzb21lU3RhdGljTWV0aG9kKCkgeyByZXR1cm4gc3RhdGljTWV0aG9kVmFsdWU7IH0K
KyAgICBzdGF0aWMgZ2V0IHNvbWVTdGF0aWNHZXR0ZXIoKSB7IHJldHVybiBnZXR0ZXJWYWx1ZTsg
fQorICAgIHN0YXRpYyBzZXQgc29tZVN0YXRpY1NldHRlcih2YWx1ZSkgeyBzZXR0ZXJWYWx1ZSA9
IHZhbHVlOyB9CiAgICAgc29tZUluc3RhbmNlTWV0aG9kKCkgeyByZXR1cm4gaW5zdGFuY2VNZXRo
b2RWYWx1ZTsgfQogICAgIGdldCBzb21lR2V0dGVyKCkgeyByZXR1cm4gZ2V0dGVyVmFsdWU7IH0K
ICAgICBzZXQgc29tZVNldHRlcih2YWx1ZSkgeyBzZXR0ZXJWYWx1ZSA9IHZhbHVlOyB9CkBAIC0x
NiwxNCArMTgsMTQgQEAgdmFyIEEgPSBjbGFzcyB7CiAKIHNob3VsZEJlKCJjb25zdHJ1Y3RvckNh
bGxDb3VudCIsICIwIik7CiBzaG91bGRCZSgiQS5zb21lU3RhdGljTWV0aG9kKCkiLCAic3RhdGlj
TWV0aG9kVmFsdWUiKTsKK3Nob3VsZEJlKCJBLnNvbWVTdGF0aWNHZXR0ZXIiLCAiZ2V0dGVyVmFs
dWUiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgQS5zb21lU3RhdGljU2V0
dGVyID0gMTIzOyBzZXR0ZXJWYWx1ZSIsICIxMjMiKTsKIHNob3VsZEJlKCIobmV3IEEpLnNvbWVJ
bnN0YW5jZU1ldGhvZCgpIiwgImluc3RhbmNlTWV0aG9kVmFsdWUiKTsKIHNob3VsZEJlKCJjb25z
dHJ1Y3RvckNhbGxDb3VudCIsICIxIik7CiBzaG91bGRCZSgiKG5ldyBBKS5zb21lR2V0dGVyIiwg
ImdldHRlclZhbHVlIik7CiBzaG91bGRCZSgiY29uc3RydWN0b3JDYWxsQ291bnQiLCAiMiIpOwog
c2hvdWxkQmUoIihuZXcgQSkuc29tZUdldHRlciIsICJnZXR0ZXJWYWx1ZSIpOwotc2hvdWxkQmUo
InNldHRlclZhbHVlIiwgInVuZGVmaW5lZCIpOwotc2hvdWxkTm90VGhyb3coIihuZXcgQSkuc29t
ZVNldHRlciA9IDc4OSIpOwotc2hvdWxkQmUoInNldHRlclZhbHVlIiwgIjc4OSIpOworc2hvdWxk
QmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyAobmV3IEEpLnNvbWVTZXR0ZXIgPSA3ODk7IHNl
dHRlclZhbHVlIiwgIjc4OSIpOwogc2hvdWxkQmUoIihuZXcgQSkuX19wcm90b19fIiwgIkEucHJv
dG90eXBlIik7CiBzaG91bGRCZSgiQS5wcm90b3R5cGUuY29uc3RydWN0b3IiLCAiQSIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258984</attachid>
            <date>2015-08-13 22:54:12 -0700</date>
            <delta_ts>2015-08-14 12:40:29 -0700</delta_ts>
            <desc>Adds the support</desc>
            <filename>bug-142690-20150813225357.patch</filename>
            <type>text/plain</type>
            <size>60728</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NDM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDE1LTA4LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEVTNiBjbGFzcyBzeW50YXggc2hvdWxkIGFsbG93IGNvbXB1dGVkIG5hbWUgbWV0aG9kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5ldyAi
YXR0cmlidXRlcyIgYXR0cmlidXRlIHRvIG9wX3B1dF9nZXR0ZXJfYnlfaWQsIG9wX3B1dF9zZXR0
ZXJfYnlfaWQsIG9wX3B1dF9nZXR0ZXJfc2V0dGVyIHRvIHNwZWNpZnkKKyAgICAgICAgdGhlIHBy
b3BlcnR5IGRlc2NyaXB0b3Igb3B0aW9ucyBzbyB0aGF0IHdlIGNhbiB1c2UgdXNlIG9wX3B1dF9z
ZXR0ZXJfYnlfaWQgYW5kIG9wX3B1dF9nZXR0ZXJfc2V0dGVyIHRvIGRlZmluZQorICAgICAgICBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBjbGFzc2VzLiBXaXRob3V0IHRoaXMsIGdldHRlcnMgYW5k
IHNldHRlcnMgY291bGQgZXJyb25lb3VzbHkgb3ZlcnJpZGUgbWV0aG9kcy4KKworICAgICAgICAq
IGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgor
ICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5
SWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SWQp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFNldHRlckJ5SWQpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlclNldHRlcik6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5TGlzdE5v
ZGU6OmVtaXRCeXRlY29kZSk6IEFsd2F5cyB1c2UgZW1pdFB1dEdldHRlclNldHRlciB0byBlbWl0
IGdldHRlcnMgYW5kIHNldHRlcnMgZm9yIGNsYXNzZXMKKyAgICAgICAgYXMgZG9uZSBmb3Igb2Jq
ZWN0IGxpdGVyYWxzLgorICAgICAgICAoSlNDOjpQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29u
c3RhbnRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkNsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogaml0L0pJVC5o
OgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9w
ZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9k
ZWxfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9kZWxf
YnlfaWQpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkFTVEJ1
aWxkZXI6OmNyZWF0ZVByb3BlcnR5TGlzdCk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUpOgorICAg
ICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5vZGU6OmV4cHJl
c3Npb25OYW1lKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpuYW1lKToKKyAgICAgICAg
KiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBh
cnNlQ2xhc3MpOiBBZGRlZCB0aGUgc3VwcG9ydCBmb3IgY29tcHV0ZWQgcHJvcGVydHkgbmFtZS4g
V2UgZG9uJ3Qgc3VwcG9ydCBjb21wdXRlZCBuYW1lcworICAgICAgICBmb3IgZ2V0dGVycyBhbmQg
c2V0dGVycy4KKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlND
OjpTeW50YXhDaGVja2VyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjphbGxvd3NBY2Nlc3NGcm9tKToKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEdldHRlcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpwdXRTZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oOgorCiAyMDE1LTA4LTEzICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTg4NDI4LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTg4NDEyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC03MSw5
ICs3MSw5IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfYnlfdmFsX2RpcmVjdCIs
ICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVsX2J5X3ZhbCIs
ICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2J5X2luZGV4
IiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfZ2V0dGVy
X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRf
c2V0dGVyX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF9wdXRfZ2V0dGVyX3NldHRlciIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfcHV0X2dldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfcHV0X3NldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9LAorICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2dldHRlcl9zZXR0ZXIiLCAibGVuZ3RoIiA6IDYgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2ptcCIsICJsZW5ndGgiIDogMiB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfanRydWUiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2pmYWxzZSIsICJsZW5ndGgiIDogMyB9LApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgJKHJldmlzaW9uIDE4
ODQxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CSh3b3JraW5nIGNvcHkpCkBAIC05OCwxOCArOTgsMjIgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsX291
dF9vZl9saW5lOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX291dF9vZl9saW5lOgogICAgIGNhc2Ug
b3BfcHV0X2J5X2lkOgotICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKLSAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6CiAgICAgY2FzZSBvcF9wdXRfdG9fc2NvcGU6CiAgICAgY2FzZSBv
cF9wdXRfdG9fYXJndW1lbnRzOiB7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVj
dGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgICAgIGZ1bmN0
b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5
X2lkOgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV9pZDogeworICAgICAgICBmdW5jdG9yKGNv
ZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
OworICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2Ug
b3BfcHV0X2dldHRlcl9zZXR0ZXI6IHsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3Ry
dWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKLSAgICAgICAgZnVu
Y3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJ
RCwgaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ss
IGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJl
dmlzaW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgyLDI2ICsxMDgyLDI5IEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDogewog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQg
aWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2dl
dHRlcl9ieV9pZCIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcyIsIHJlZ2lz
dGVyTmFtZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCkpOworICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVz
LCAlZCwgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmll
cihpZDApKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfaWQ6IHsK
ICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50
IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IG4wID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9z
ZXR0ZXJfYnlfaWQiKTsKLSAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdp
c3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAl
cywgJWQsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlkTmFtZShpZDAsIGlkZW50aWZp
ZXIoaWQwKSkuZGF0YSgpLCBuMCwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjog
ewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbjAgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBwcmludExv
Y2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwdXRfZ2V0dGVyX3NldHRlciIp
OwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUo
cjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCIlcywgJXMsICVkLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwg
aWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUocjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWxfYnlfaWQ6IHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0OCw3ICsxOTQ4
LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlYwogICAgIHJldHVy
biB2YWx1ZTsKIH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SWQo
UmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQq
IGdldHRlcikKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJCeUlkKFJlZ2lz
dGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCB1bnNpZ25lZCBhdHRyaWJ1
dGVzLCBSZWdpc3RlcklEKiBnZXR0ZXIpCiB7CiAgICAgdW5zaWduZWQgcHJvcGVydHlJbmRleCA9
IGFkZENvbnN0YW50KHByb3BlcnR5KTsKICAgICBtX3N0YXRpY1Byb3BlcnR5QW5hbHl6ZXIucHV0
QnlJZChiYXNlLT5pbmRleCgpLCBwcm9wZXJ0eUluZGV4KTsKQEAgLTE5NTYsMTAgKzE5NTYsMTEg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SQogICAgIGVtaXRPcGNv
ZGUob3BfcHV0X2dldHRlcl9ieV9pZCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2Ut
PmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9wZXJ0eUluZGV4KTsKKyAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXR0cmlidXRlcyk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKGdldHRlci0+aW5kZXgoKSk7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXRTZXR0ZXJCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5LCBSZWdpc3RlcklEKiBzZXR0ZXIpCit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0
U2V0dGVyQnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwg
dW5zaWduZWQgYXR0cmlidXRlcywgUmVnaXN0ZXJJRCogc2V0dGVyKQogewogICAgIHVuc2lnbmVk
IHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7CiAgICAgbV9zdGF0aWNQcm9w
ZXJ0eUFuYWx5emVyLnB1dEJ5SWQoYmFzZS0+aW5kZXgoKSwgcHJvcGVydHlJbmRleCk7CkBAIC0x
OTY3LDEwICsxOTY4LDExIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRTZXR0ZXJC
eUkKICAgICBlbWl0T3Bjb2RlKG9wX3B1dF9zZXR0ZXJfYnlfaWQpOwogICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChiYXNlLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJv
cGVydHlJbmRleCk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGF0dHJpYnV0ZXMpOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChzZXR0ZXItPmluZGV4KCkpOwogfQogCi12b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0UHV0R2V0dGVyU2V0dGVyKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIsIFJlZ2lzdGVySUQqIHNl
dHRlcikKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJTZXR0ZXIoUmVnaXN0
ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIHVuc2lnbmVkIGF0dHJpYnV0
ZXMsIFJlZ2lzdGVySUQqIGdldHRlciwgUmVnaXN0ZXJJRCogc2V0dGVyKQogewogICAgIHVuc2ln
bmVkIHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7CiAKQEAgLTE5NzksNiAr
MTk4MSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJTZXQKICAgICBl
bWl0T3Bjb2RlKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoYmFzZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb3BlcnR5SW5k
ZXgpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhdHRyaWJ1dGVzKTsKICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoZ2V0dGVyLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoc2V0dGVyLT5pbmRleCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDE4ODQx
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTA4LDkgKzUwOCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVsZXRlQnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRQdXRCeUluZGV4KFJlZ2lzdGVySUQqIGJhc2UsIHVuc2lnbmVkIGluZGV4LCBSZWdpc3Rl
cklEKiB2YWx1ZSk7CiAKLSAgICAgICAgdm9pZCBlbWl0UHV0R2V0dGVyQnlJZChSZWdpc3RlcklE
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogZ2V0dGVyKTsK
LSAgICAgICAgdm9pZCBlbWl0UHV0U2V0dGVyQnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogc2V0dGVyKTsKLSAgICAgICAgdm9pZCBl
bWl0UHV0R2V0dGVyU2V0dGVyKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIsIFJlZ2lzdGVySUQqIHNldHRlcik7CisgICAgICAg
IHZvaWQgZW1pdFB1dEdldHRlckJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHksIHVuc2lnbmVkIHByb3BlcnR5RGVzY3JpcHRvck9wdGlvbnMsIFJlZ2lzdGVy
SUQqIGdldHRlcik7CisgICAgICAgIHZvaWQgZW1pdFB1dFNldHRlckJ5SWQoUmVnaXN0ZXJJRCog
YmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIHVuc2lnbmVkIHByb3BlcnR5RGVzY3Jp
cHRvck9wdGlvbnMsIFJlZ2lzdGVySUQqIHNldHRlcik7CisgICAgICAgIHZvaWQgZW1pdFB1dEdl
dHRlclNldHRlcihSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwg
dW5zaWduZWQgYXR0cmlidXRlcywgUmVnaXN0ZXJJRCogZ2V0dGVyLCBSZWdpc3RlcklEKiBzZXR0
ZXIpOwogICAgICAgICAKICAgICAgICAgRXhwZWN0ZWRGdW5jdGlvbiBleHBlY3RlZEZ1bmN0aW9u
Rm9ySWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlv
biwgQ2FsbEFyZ3VtZW50cyYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Nyw5ICs0
OTcsOSBAQCBSZWdpc3RlcklEKiBQcm9wZXJ0eUxpc3ROb2RlOjplbWl0Qnl0ZWNvCiAgICAgICAg
ICAgICAvLyBUaGlzIGlzIGEgZ2V0L3NldCBwcm9wZXJ0eSB3aGljaCBtYXkgYmUgb3ZlcnJpZGRl
biBieSBhIGNvbXB1dGVkIHByb3BlcnR5IGxhdGVyLgogICAgICAgICAgICAgaWYgKGhhc0NvbXB1
dGVkUHJvcGVydHkpIHsKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bV90eXBlICYgUHJvcGVy
dHlOb2RlOjpHZXR0ZXIpCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0
dGVyQnlJZChkc3QsICpub2RlLT5uYW1lKCksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXRQdXRHZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5hbWUoKSwgQWNjZXNzb3Is
IHZhbHVlKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0UHV0U2V0dGVyQnlJZChkc3QsICpub2RlLT5uYW1lKCksIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5h
bWUoKSwgQWNjZXNzb3IsIHZhbHVlKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIH0KIApAQCAtNTQ0LDEyICs1NDQsNyBAQCBSZWdpc3RlcklEKiBQcm9wZXJ0eUxpc3RO
b2RlOjplbWl0Qnl0ZWNvCiAgICAgICAgICAgICBpZiAoaXNDbGFzc1Byb3BlcnR5ICYmIHBhaXIu
c2Vjb25kKQogICAgICAgICAgICAgICAgIGVtaXRQdXRIb21lT2JqZWN0KGdlbmVyYXRvciwgc2Vj
b25kUmVnLCBkc3QpOwogCi0gICAgICAgICAgICBpZiAoaXNDbGFzc1Byb3BlcnR5KSB7Ci0gICAg
ICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZVJlZ2lzdGVyID0gZ2Vu
ZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgKm5vZGUtPm5hbWUoKSk7
Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsRGVmaW5lUHJvcGVydHkoZHN0LCBw
cm9wZXJ0eU5hbWVSZWdpc3Rlci5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwg
Z2V0dGVyUmVnLmdldCgpLCBzZXR0ZXJSZWcuZ2V0KCksIEJ5dGVjb2RlR2VuZXJhdG9yOjpQcm9w
ZXJ0eUNvbmZpZ3VyYWJsZSwgbV9wb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEdldHRlclNldHRlcihkc3QsICpub2RlLT5uYW1l
KCksIGdldHRlclJlZy5nZXQoKSwgc2V0dGVyUmVnLmdldCgpKTsKKyAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0UHV0R2V0dGVyU2V0dGVyKGRzdCwgKm5vZGUtPm5hbWUoKSwgaXNDbGFzc1Byb3Bl
cnR5ID8gKEFjY2Vzc29yIHwgRG9udEVudW0pIDogQWNjZXNzb3IsIGdldHRlclJlZy5nZXQoKSwg
c2V0dGVyUmVnLmdldCgpKTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIs
MTMgKzMwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmczKTsKICAg
ICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRy
dXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW0zMiBhcmc0KQogICAgIHsK
ICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcx
KTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOwogICAgICAgICBhZGRDYWxsQXJndW1l
bnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKICAgICB9CiAKICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBUcnVzdGVkSW1tMzIgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQpAQCAtMTkxOCw2ICsxOTE5
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFy
ZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCisgICAgewor
ICAgICAgICBzZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJn
NSk7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAg
bW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0KKwogICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFy
ZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQogICAgIHsK
ICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzMTM0KGFyZzEsIGFyZzMsIGFyZzQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NDQsOCArNzQ0LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNJQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJlZ2lz
dGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSUNDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBp
bnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZp
ZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVpTeW10YWJK
LCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBAIC03NTUsOCArNzU1LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CiAjZW5kaWYKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSklkSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllcios
IFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSWRKSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRp
ZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkosIFJlZ2lzdGVySUQsIGNvbnN0
IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZf
SklUT3BlcmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAkocmV2aXNpb24gMTg4NDEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwxNSArNTE0LDE1IEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklk
SiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9w
MiwgUmVnaXN0ZXJJRCByZWdPcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkogb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBS
ZWdpc3RlcklEIHJlZ09wNCkKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgcmVnT3AzKTsKKyAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZElt
bTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZEpKIG9wZXJhdGlvbiwgUmVnaXN0
ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBSZWdpc3RlcklEIHJlZ09w
MywgUmVnaXN0ZXJJRCByZWdPcDQpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQogewotICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCByZWdPcDMs
IHJlZ09wNCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3Rl
ZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQsIHJlZ09wNSk7CiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApA
QCAtNjQyLDE1ICs2NDIsMTUgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VDSUMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29u
c3QgSWRlbnRpZmllciogaWRlbnRPcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQorQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNJWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRl
bnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKLSAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgcmVnT3Az
KTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRy
KGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJ
Q0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRP
cDIsIFJlZ2lzdGVySUQgcmVnT3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VD
SUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50
T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQog
ewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCByZWdPcDMsIHJlZ09wNCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCBy
ZWdPcDQsIHJlZ09wNSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1LDcgKzEyNDUsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJbmRleChFCiB9CiAKICNpZiBVU0Uo
SlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZp
ZXIqIGlkZW50aWZpZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSkKK3ZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBp
bnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSkKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
JnZtLCBleGVjKTsKQEAgLTEyNTUsMTAgKzEyNTUsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlckJ5SQogCiAgICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwot
ICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3QoZ2V0dGVy
KSk7CisgICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBhc09iamVjdChn
ZXR0ZXIpLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNl
dHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFs
dWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJW
YWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBp
ZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEyNjgsMTAgKzEyNjgsMTEgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SQogCiAgICAgSlNWYWx1ZSBzZXR0ZXIgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKICAgICBBU1NFUlQoc2V0dGVyLmlz
T2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNP
YmplY3Qoc2V0dGVyKSk7CisgICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsICppZGVudGlmaWVy
LCBhc09iamVjdChzZXR0ZXIpLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRlbnRpZmllciwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyLCBpbnQzMl90IGF0dHJpYnV0ZSwKKyAgICBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVy
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKQEAgLTEyOTEsMTAgKzEyOTIsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEdldHRlclNldAogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwogICAgIGlmICghc2V0dGVyLmlzVW5k
ZWZpbmVkKCkpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFzZU9iai0+cHV0RGlyZWN0
QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBBY2Nlc3Nvcik7CisgICAgYmFz
ZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRy
aWJ1dGUpOwogfQogI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZp
ZXIsIEpTQ2VsbCogZ2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRl
ckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRp
ZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
QEAgLTEzMDMsMTAgKzEzMDQsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlckJ5SQogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAog
ICAgIEFTU0VSVChnZXR0ZXItPmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihl
eGVjLCAqaWRlbnRpZmllciwgZ2V0dGVyKTsKKyAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGdldHRlciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElk
ZW50aWZpZXIqIGlkZW50aWZpZXIsIEpTQ2VsbCogc2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwg
SWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikK
IHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEzMTUsMTAgKzEzMTYsMTAgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SQogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0
LT5nZXRPYmplY3QoKTsKIAogICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0KCkpOwotICAgIGJh
c2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgc2V0dGVyKTsKKyAgICBiYXNlT2Jq
LT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIHNldHRlciwgb3B0aW9ucyk7CiB9CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwgSlNDZWxsKiBnZXR0ZXIs
IEpTQ2VsbCogc2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIsIEpTQ2VsbCogc2V0dGVyKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwpAQCAtMTMzNiw3ICsxMzM3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEdldHRlclNldAogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdldHRlci0+Z2V0T2JqZWN0KCkpOwogICAgIGlm
IChzZXR0ZXIpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0RGly
ZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBBY2Nlc3Nvcik7CisgICAg
YmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBh
dHRyaWJ1dGUpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDggKzE4Myw4IEBA
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXQKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVj
U3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUNJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElubGluZUNhbGxGcmFt
ZSopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0lDKShF
eGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQg
SklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSUNDKShFeGVjU3RhdGUqLCBKU0NlbGwq
LCBJZGVudGlmaWVyKiwgSlNDZWxsKiwgSlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJB
VElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlm
aWVyKiwgaW50MzJfdCwgSlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGlu
dDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCosIElubGlu
ZUNhbGxGcmFtZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQ0pKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ1BTUFMp
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIHZvaWQqLCBzaXplX3QsIHZvaWQqLCBzaXplX3QpOwpAQCAt
MTkzLDggKzE5Myw4IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXQK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRVpTeW10YWJKKShF
eGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRUpDSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCosIFVuaXF1ZWRTdHJp
bmdJbXBsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
SWRKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIEVuY29kZWRKU1Zh
bHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEpK
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VKSWRaSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBp
bnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKSWRaSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlm
aWVyKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxl
Kik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKik7CkBAIC0yOTksMTMgKzI5OSwxMyBAQCBTbG93UGF0aFJldHVyblR5cGUg
SklUX09QRVJBVElPTiBvcGVyYXRpCiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVk
SlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50
MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBJZGVudGlmaWVyKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlm
aWVyKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllcios
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmll
ciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVu
dGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVT
Y29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0
YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxODg0
MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwzNSArNjEsMzggQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X2dldHRlcl9ieV9pZChJbnN0cgogewogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwotICAgIGludCBnZXR0ZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOworICAgIGludCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKKyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAog
ICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKGdl
dHRlciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwg
cmVnVDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2st
PmlkZW50aWZpZXIocHJvcGVydHkpLCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IHsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAg
aW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQg
c2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25lZCBv
cHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVy
ID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9h
ZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNldHRlciwgcmVnVDMpOwotICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDEsICZtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVy
dHkpLCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
c2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGJhc2Ug
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0gICAgaW50IGdldHRlciA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHNldHRlciA9IGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgYXR0cmlidXRlID0gY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzVdLnUu
b3BlcmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExv
YWRQYXlsb2FkKGdldHRlciwgcmVnVDMpOwogICAgIGVtaXRMb2FkUGF5bG9hZChzZXR0ZXIsIHJl
Z1Q0KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDEs
ICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzLCByZWdUNCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCAmbV9jb2RlQmxv
Y2stPmlkZW50aWZpZXIocHJvcGVydHkpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAJKHJldmlzaW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsMjMgKzQ4MywyNiBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaW5kZXgoSW5zdHJ1Y3RpCiB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXRfZ2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRH
ZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpLCByZWdUMSk7CisgICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIo
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogewogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDAsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgcmVnVDEpOworICAgIGludDMyX3Qgb3B0
aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCBy
ZWdUMSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCBy
ZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1Qw
LCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCksIHJlZ1QxLCByZWdUMik7CisgICAgaW50MzJfdCBhdHRyaWJ1dGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCwgcmVnVDIpOworICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVu
dGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBhdHRyaWJ1dGUsIHJlZ1Qx
LCByZWdUMik7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDcs
MTEgKzg0NywxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlCiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBBU1NFUlQoTExJTlRfT1AoMSkuanNWYWx1ZSgpLmlzT2Jq
ZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoTExJTlRfT1AoMSkuanNW
YWx1ZSgpKTsKLSAgICAKLSAgICBKU1ZhbHVlIGdldHRlciA9IExMSU5UX09QKDMpLmpzVmFsdWUo
KTsKKworICAgIHVuc2lnbmVkIG9wdGlvbnMgPSBwY1szXS51Lm9wZXJhbmQ7CisKKyAgICBKU1Zh
bHVlIGdldHRlciA9IExMSU5UX09QKDQpLmpzVmFsdWUoKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlz
T2JqZWN0KCkpOwotICAgIAotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCBleGVjLT5jb2Rl
QmxvY2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpLCBhc09iamVjdChnZXR0ZXIpKTsK
KworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRp
ZmllcihwY1syXS51Lm9wZXJhbmQpLCBhc09iamVjdChnZXR0ZXIpLCBvcHRpb25zKTsKICAgICBM
TElOVF9FTkQoKTsKIH0KIApAQCAtODYwLDExICs4NjIsMTMgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3B1dF9zZXR0ZQogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgQVNTRVJUKExM
SU5UX09QKDEpLmpzVmFsdWUoKS5pc09iamVjdCgpKTsKICAgICBKU09iamVjdCogYmFzZU9iaiA9
IGFzT2JqZWN0KExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgCi0gICAgSlNWYWx1ZSBzZXR0
ZXIgPSBMTElOVF9PUCgzKS5qc1ZhbHVlKCk7CisKKyAgICB1bnNpZ25lZCBvcHRpb25zID0gcGNb
M10udS5vcGVyYW5kOworCisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBMTElOVF9PUCg0KS5qc1ZhbHVl
KCk7CiAgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpKTsKLSAgICAKLSAgICBiYXNlT2JqLT5w
dXRTZXR0ZXIoZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbMl0udS5vcGVy
YW5kKSwgYXNPYmplY3Qoc2V0dGVyKSk7CisKKyAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywg
ZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbMl0udS5vcGVyYW5kKSwgYXNPYmplY3Qo
c2V0dGVyKSwgb3B0aW9ucyk7CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKQEAgLTg3Niw5ICs4ODAs
OSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlCiAgICAgCiAgICAg
R2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwotICAg
IAotICAgIEpTVmFsdWUgZ2V0dGVyID0gTExJTlRfT1AoMykuanNWYWx1ZSgpOwotICAgIEpTVmFs
dWUgc2V0dGVyID0gTExJTlRfT1AoNCkuanNWYWx1ZSgpOworCisgICAgSlNWYWx1ZSBnZXR0ZXIg
PSBMTElOVF9PUCg0KS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBMTElOVF9PUCg1
KS5qc1ZhbHVlKCk7CiAgICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1Vu
ZGVmaW5lZCgpKTsKICAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5k
ZWZpbmVkKCkpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmpl
Y3QoKSk7CkBAIC04OTAsNyArODk0LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3B1dF9nZXR0ZQogICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKAogICAgICAgICBleGVj
LAogICAgICAgICBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQp
LAotICAgICAgICBhY2Nlc3NvciwgQWNjZXNzb3IpOworICAgICAgICBhY2Nlc3NvciwgcGNbM10u
dS5vcGVyYW5kKTsKICAgICBMTElOVF9FTkQoKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24g
MTg4NDEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYyLDE5ICsxMDYyLDE5IEBAIF9sbGludF9vcF9w
dXRfYnlfaW5kZXg6CiBfbGxpbnRfb3BfcHV0X2dldHRlcl9ieV9pZDoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9ieV9p
ZCkKLSAgICBkaXNwYXRjaCg0KQorICAgIGRpc3BhdGNoKDUpCiAKIAogX2xsaW50X29wX3B1dF9z
ZXR0ZXJfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3B1dF9zZXR0ZXJfYnlfaWQpCi0gICAgZGlzcGF0Y2goNCkKKyAgICBkaXNw
YXRjaCg1KQogCiAKIF9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0
ZXIpCi0gICAgZGlzcGF0Y2goNSkKKyAgICBkaXNwYXRjaCg2KQogCiAKIF9sbGludF9vcF9qdHJ1
ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZp
c2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNDE0LDcgKzQxNCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5p
ZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIHByb3BlcnR5TmFtZSks
IG5vZGUsIHR5cGUsIHB1dFR5cGUpOwogICAgIH0KLSAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVBy
b3BlcnR5KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2Rl
LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUs
IGJvb2wpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHByb3BlcnR5
TmFtZSwgbm9kZSwgdHlwZSwgcHV0VHlwZSk7IH0KKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVBy
b3BlcnR5KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2Rl
LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUs
IGJvb2wsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRl
ZCkgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVydHlOYW1l
LCBub2RlLCB0eXBlLCBwdXRUeXBlLCBzdXBlckJpbmRpbmcpOyB9CiAgICAgUHJvcGVydHlMaXN0
Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IFByb3BlcnR5Tm9kZSogcHJvcGVydHkpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJv
cGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHkpOyB9CiAgICAgUHJvcGVydHlMaXN0Tm9k
ZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFBy
b3BlcnR5Tm9kZSogcHJvcGVydHksIFByb3BlcnR5TGlzdE5vZGUqIHRhaWwpIHsgcmV0dXJuIG5l
dyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHksIHRh
aWwpOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCShyZXZpc2lvbiAxODg0MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDEyICsyMzEs
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAotICAgIGlubGluZSBQcm9wZXJ0
eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogbmFtZSwgRXhwcmVzc2lvbk5vZGUq
IGFzc2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUpCisgICAgaW5saW5lIFByb3BlcnR5
Tm9kZTo6UHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNzaW9uTm9kZSog
YXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSwgU3VwZXJCaW5kaW5nIHN1cGVyQmlu
ZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQogICAgICAgICA6IG1fbmFtZSgwKQogICAg
ICAgICAsIG1fZXhwcmVzc2lvbihuYW1lKQogICAgICAgICAsIG1fYXNzaWduKGFzc2lnbikKICAg
ICAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX25lZWRzU3VwZXJCaW5kaW5nKGZhbHNl
KQorICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmcoc3VwZXJCaW5kaW5nID09IFN1cGVyQmlu
ZGluZzo6TmVlZGVkKQogICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBlKQogICAgIHsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAxODg0MTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYxMyw3ICs2MTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZW51bSBQdXRUeXBl
IHsgVW5rbm93biwgS25vd25EaXJlY3QgfTsKIAogICAgICAgICBQcm9wZXJ0eU5vZGUoY29uc3Qg
SWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSwgU3VwZXJCaW5kaW5n
KTsKLSAgICAgICAgUHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4
cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZShFeHBy
ZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUs
IFN1cGVyQmluZGluZyk7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb25OYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uOyB9CiAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2Miw3ICsx
OTYyLDggQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeAogCiAgICAg
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGEgd2F5IHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHBh
cnNlUHJvcGVydHkuCiAgICAgICAgIGNvbnN0IENvbW1vbklkZW50aWZpZXJzJiBwcm9wZXJ0eU5h
bWVzID0gKm1fdm0tPnByb3BlcnR5TmFtZXM7Ci0gICAgICAgIGNvbnN0IElkZW50aWZpZXIqIGlk
ZW50ID0gbnVsbHB0cjsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSAmcHJvcGVy
dHlOYW1lcy5udWxsSWRlbnRpZmllcjsKKyAgICAgICAgVHJlZUV4cHJlc3Npb24gY29tcHV0ZWRQ
cm9wZXJ0eU5hbWUgPSAwOwogICAgICAgICBib29sIGlzR2V0dGVyID0gZmFsc2U7CiAgICAgICAg
IGJvb2wgaXNTZXR0ZXIgPSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChtX3Rva2VuLm1fdHlwZSkg
ewpAQCAtMTk4Niw2ICsxOTg3LDEyIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZUNsYXNzRXgKICAgICAgICAgICAgIEFTU0VSVChpZGVudCk7CiAgICAgICAgICAgICBuZXh0KCk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPUEVOQlJBQ0tFVDoKKyAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgICAgIGNvbXB1dGVkUHJvcGVydHlOYW1lID0gcGFyc2VBc3Np
Z25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNlKGNvbXB1
dGVkUHJvcGVydHlOYW1lLCAiQ2Fubm90IHBhcnNlIGNvbXB1dGVkIHByb3BlcnR5IG5hbWUiKTsK
KyAgICAgICAgICAgIGhhbmRsZVByb2R1Y3Rpb25PckZhaWwoQ0xPU0VCUkFDS0VULCAiXSIsICJl
bmQiLCAiY29tcHV0ZWQgcHJvcGVydHkgbmFtZSIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsKICAg
ICAgICAgfQpAQCAtMjAwMCw3ICsyMDA3LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlQ2xhc3NFeAogICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVy
PiBtZXRob2RJbmZvOwogICAgICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdG9yID0gIWlzU3RhdGlj
TWV0aG9kICYmICppZGVudCA9PSBwcm9wZXJ0eU5hbWVzLmNvbnN0cnVjdG9yOwogICAgICAgICAg
ICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1
aXJlbWVudHMsIE1ldGhvZE1vZGUsIGZhbHNlLCBpc0NvbnN0cnVjdG9yID8gY29uc3RydWN0b3JL
aW5kIDogQ29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgbWV0aG9k
U3RhcnQsIG1ldGhvZEluZm8sIFN0YW5kYXJkRnVuY3Rpb25QYXJzZVR5cGUpKSwgIkNhbm5vdCBw
YXJzZSB0aGlzIG1ldGhvZCIpOwotICAgICAgICAgICAgZmFpbElmVHJ1ZSghaWRlbnQgfHwgKGRl
Y2xhcmVWYXJpYWJsZShpZGVudCkgJiBEZWNsYXJhdGlvblJlc3VsdDo6SW52YWxpZFN0cmljdE1v
ZGUpLCAiQ2Fubm90IGRlY2xhcmUgYSBtZXRob2QgbmFtZWQgJyIsIG1ldGhvZEluZm8ubmFtZS0+
aW1wbCgpLCAiJyIpOworICAgICAgICAgICAgZmFpbElmVHJ1ZSghY29tcHV0ZWRQcm9wZXJ0eU5h
bWUgJiYgKGRlY2xhcmVWYXJpYWJsZShpZGVudCkgJiBEZWNsYXJhdGlvblJlc3VsdDo6SW52YWxp
ZFN0cmljdE1vZGUpLCAiQ2Fubm90IGRlY2xhcmUgYSBtZXRob2QgbmFtZWQgJyIsIG1ldGhvZElu
Zm8ubmFtZS0+aW1wbCgpLCAiJyIpOwogICAgICAgICAgICAgbWV0aG9kSW5mby5uYW1lID0gaXND
b25zdHJ1Y3RvciA/IGNsYXNzTmFtZSA6IGlkZW50OwogCiAgICAgICAgICAgICBUcmVlRXhwcmVz
c2lvbiBtZXRob2QgPSBjb250ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhwcihtZXRob2RMb2NhdGlvbiwg
bWV0aG9kSW5mbyk7CkBAIC0yMDEzLDcgKzIwMjAsMTEgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiBUcmVlQ2xhc3NFeAogICAgICAgICAgICAgLy8gRklYTUU6IFN5bnRheCBlcnJvciB3
aGVuIHN1cGVyKCkgaXMgY2FsbGVkCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoaXNT
dGF0aWNNZXRob2QgJiYgbWV0aG9kSW5mby5uYW1lICYmICptZXRob2RJbmZvLm5hbWUgPT0gcHJv
cGVydHlOYW1lcy5wcm90b3R5cGUsCiAgICAgICAgICAgICAgICAgIkNhbm5vdCBkZWNsYXJlIGEg
c3RhdGljIG1ldGhvZCBuYW1lZCAncHJvdG90eXBlJyIpOwotICAgICAgICAgICAgcHJvcGVydHkg
PSBjb250ZXh0LmNyZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0aG9kLCBQcm9wZXJ0
eU5vZGU6OkNvbnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5c1N0cmljdEluc2lk
ZUNsYXNzLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCk7CisgICAgICAgICAgICBpZiAoY29tcHV0ZWRQ
cm9wZXJ0eU5hbWUpIHsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRl
UHJvcGVydHkoY29tcHV0ZWRQcm9wZXJ0eU5hbWUsIG1ldGhvZCwgc3RhdGljX2Nhc3Q8UHJvcGVy
dHlOb2RlOjpUeXBlPihQcm9wZXJ0eU5vZGU6OkNvbnN0YW50IHwgUHJvcGVydHlOb2RlOjpDb21w
dXRlZCksCisgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgYWx3YXlz
U3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eSht
ZXRob2RJbmZvLm5hbWUsIG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlO
b2RlOjpVbmtub3duLCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVk
ZWQpOwogICAgICAgICB9CiAKICAgICAgICAgVHJlZVByb3BlcnR5TGlzdCYgdGFpbCA9IGlzU3Rh
dGljTWV0aG9kID8gc3RhdGljTWV0aG9kc1RhaWwgOiBpbnN0YW5jZU1ldGhvZHNUYWlsOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHJldmlz
aW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgcmV0dXJuIFByb3BlcnR5KHR5cGUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkoJnBhcnNl
ckFyZW5hLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VOdW1lcmljSWRlbnRpZmllcih2bSwgbmFtZSks
IHR5cGUpOwogICAgIH0KLSAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShpbnQsIGludCwgUHJv
cGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCkKKyAgICBQ
cm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShpbnQsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUs
IFByb3BlcnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5n
OjpOb3ROZWVkZWQpCiAgICAgewogICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CiAgICAg
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2
aXNpb24gMTg4NDEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTk4LDIxICsxMTk4LDMxIEBAIGJvb2wgSlNPYmplY3Q6
OmFsbG93c0FjY2Vzc0Zyb20oRXhlY1N0YXQKICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5hbGxvd3NBY2Nlc3NGcm9tKGdsb2JhbE9iamVjdCwgZXhl
Yyk7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgZ2V0dGVyKQordm9pZCBKU09iamVjdDo6cHV0
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSBnZXR0ZXIsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgUHJvcGVydHlEZXNjcmlwdG9y
IGRlc2NyaXB0b3I7CiAgICAgZGVzY3JpcHRvci5zZXRHZXR0ZXIoZ2V0dGVyKTsKLSAgICBkZXNj
cmlwdG9yLnNldEVudW1lcmFibGUodHJ1ZSk7Ci0gICAgZGVzY3JpcHRvci5zZXRDb25maWd1cmFi
bGUodHJ1ZSk7CisKKyAgICBBU1NFUlQoYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsKKyAgICBpZiAo
IShhdHRyaWJ1dGVzICYgUmVhZE9ubHkpKQorICAgICAgICBkZXNjcmlwdG9yLnNldENvbmZpZ3Vy
YWJsZSh0cnVlKTsKKyAgICBpZiAoIShhdHRyaWJ1dGVzICYgRG9udEVudW0pKQorICAgICAgICBk
ZXNjcmlwdG9yLnNldEVudW1lcmFibGUodHJ1ZSk7CisKICAgICBkZWZpbmVPd25Qcm9wZXJ0eSh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGZhbHNlKTsKIH0KIAotdm9pZCBK
U09iamVjdDo6cHV0U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSBzZXR0ZXIpCit2b2lkIEpTT2JqZWN0OjpwdXRTZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHNldHRlciwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKIHsKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAg
ICBkZXNjcmlwdG9yLnNldFNldHRlcihzZXR0ZXIpOwotICAgIGRlc2NyaXB0b3Iuc2V0RW51bWVy
YWJsZSh0cnVlKTsKLSAgICBkZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKKworICAg
IEFTU0VSVChhdHRyaWJ1dGVzICYgQWNjZXNzb3IpOworICAgIGlmICghKGF0dHJpYnV0ZXMgJiBS
ZWFkT25seSkpCisgICAgICAgIGRlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOworICAg
IGlmICghKGF0dHJpYnV0ZXMgJiBEb250RW51bSkpCisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RW51
bWVyYWJsZSh0cnVlKTsKKwogICAgIGRlZmluZU93blByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgZmFsc2UpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDE4ODQxMikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2Nyw4ICs0
NjcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXREaXJlY3RBY2Nlc3NvcihFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3IoVk0mLCBQcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCi0gICAgdm9pZCBwdXRHZXR0ZXIoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKLSAgICB2b2lkIHB1dFNldHRlcihFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgIHZvaWQgcHV0R2V0dGVyKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CisgICAg
dm9pZCBwdXRTZXR0ZXIoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzUHJvcGVydHko
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFURSBi
b29sIGhhc1Byb3BlcnR5KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxODg0MzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wOC0xMyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxv
dyBjb21wdXRlZCBuYW1lIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBqcy9jbGFzcy1zeW50YXgtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LW1ldGhvZC1uYW1lcy5q
czoKKyAgICAgICAgKC5yZXR1cm4ucHJvdG90eXBlLm5hbWUpOgorICAgICAgICAoLnJldHVybi5u
YW1lKToKKyAgICAgICAgKHZhbHVlVHlwZXMpOgorCiAyMDE1LTA4LTEzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVkdWNl
IGZsYWtpbmVzcyBvZiBpbnNwZWN0b3IvaW5kZXhlZGRiL3JlcXVlc3REYXRhYmFzZU5hbWVzCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtbWV0aG9kLW5hbWVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtbWV0aG9kLW5hbWVz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg4NDEyKQorKysgTGF5b3V0VGVzdHMvanMvY2xhc3Mt
c3ludGF4LW1ldGhvZC1uYW1lcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNiAr
Myw3IEBAIFRlc3RzIGZvciB2YXJpb3VzIG1ldGhvZCBuYW1lcwogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKK0luc3RhbmNlIG1ldGhvZHMKIFBBU1MgY2xhc3MgQSB7IDAuMSgpIHsgcmV0
dXJuIDE7IH0gfTsgKG5ldyBBKVswLjFdKCkgaXMgMQogUEFTUyBjbGFzcyBBIHsgZ2V0KCkgeyBy
ZXR1cm4gMjsgfSB9OyAobmV3IEEpLmdldCgpIGlzIDIKIFBBU1MgY2xhc3MgQSB7IHNldCgpIHsg
cmV0dXJuIDM7IH0gfTsgKG5ldyBBKS5zZXQoKSBpcyAzCkBAIC0xMCw2ICsxMSw4IEBAIFBBU1Mg
Y2xhc3MgQSB7IGdldCBnZXQoKSB7IHJldHVybiA0OyB9IH0KIFBBU1MgY2xhc3MgQSB7IGdldCBz
ZXQoKSB7IHJldHVybiA1OyB9IH07IChuZXcgQSkuc2V0IGlzIDUKIFBBU1Mgc2V0dGVyVmFsdWUg
PSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzZXQgZ2V0KHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07
IChuZXcgQSkuZ2V0ID0gNjsgc2V0dGVyVmFsdWUgaXMgNgogUEFTUyBzZXR0ZXJWYWx1ZSA9IHVu
ZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBzZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgKG5l
dyBBKS5zZXQgPSA3OyBzZXR0ZXJWYWx1ZSBpcyA3CisKK1N0YXRpYyBtZXRob2RzCiBQQVNTIGNs
YXNzIEEgeyBzdGF0aWMgMC4xKCkgeyByZXR1cm4gMTAxOyB9IH07IEFbMC4xXSgpIGlzIDEwMQog
UEFTUyBjbGFzcyBBIHsgc3RhdGljIGdldCgpIHsgcmV0dXJuIDEwMjsgfSB9OyBBLmdldCgpIGlz
IDEwMgogUEFTUyBjbGFzcyBBIHsgc3RhdGljIHNldCgpIHsgcmV0dXJuIDEwMzsgfSB9OyBBLnNl
dCgpIGlzIDEwMwpAQCAtMTcsNiArMjAsNjYgQEAgUEFTUyBjbGFzcyBBIHsgc3RhdGljIGdldCBn
ZXQoKSB7IHJldHVybgogUEFTUyBjbGFzcyBBIHsgc3RhdGljIGdldCBzZXQoKSB7IHJldHVybiAx
MDU7IH0gfTsgQS5zZXQgaXMgMTA1CiBQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFz
cyBBIHsgc3RhdGljIHNldCBnZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgQS5nZXQgPSAx
MDY7IHNldHRlclZhbHVlIGlzIDEwNgogUEFTUyBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xh
c3MgQSB7IHN0YXRpYyBzZXQgc2V0KHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IEEuc2V0ID0g
MTA3OyBzZXR0ZXJWYWx1ZSBpcyAxMDcKKworSW5zdGFuY2UgbWV0aG9kcyB3aXRoIGNvbXB1dGVk
IG5hbWVzCitQQVNTIGNsYXNzIEEgeyBbJ2EnICsgJ2InXSgpIHsgcmV0dXJuIDIxMTsgfSB9OyAo
bmV3IEEpLmFiKCkgaXMgMjExCitQQVNTIGNsYXNzIEEgeyBbJ2EnICsgMF0oKSB7IHJldHVybiAy
MTI7IH0gfTsgKG5ldyBBKS5hMCgpIGlzIDIxMgorUEFTUyBjbGFzcyBBIHsgWzAuMV0oKSB7IHJl
dHVybiAyMTM7IH0gfTsgKG5ldyBBKVswLjFdKCkgaXMgMjEzCitQQVNTIGNsYXNzIEEgeyBbMV0o
KSB7IHJldHVybiAyMTQ7IH0gfTsgKG5ldyBBKVsxXSgpIGlzIDIxNAorUEFTUyBBID0gY3JlYXRl
Q2xhc3NXaXRoSW5zdGFuY2VNZXRob2QoJ2ZvbycsIDIxNSk7IChuZXcgQSlbJ2ZvbyddKCkgaXMg
MjE1CitQQVNTIEEgPSBjcmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1ldGhvZCgnZm9vJywgMjE2KTsg
QiA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdiYXInLCAyMTcpOyBbKG5ldyBBKVsn
Zm9vJ10oKSwgKG5ldyBCKVsnYmFyJ10oKV0gaXMgWzIxNiwgMjE3XQorCitTdGF0aWMgbWV0aG9k
cyB3aXRoIGNvbXB1dGVkIG5hbWVzCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgWydhJyArICdiJ10o
KSB7IHJldHVybiAzMTE7IH0gfTsgQS5hYigpIGlzIDMxMQorUEFTUyBjbGFzcyBBIHsgc3RhdGlj
IFsnYScgKyAwXSgpIHsgcmV0dXJuIDMxMjsgfSB9OyBBLmEwKCkgaXMgMzEyCitQQVNTIGNsYXNz
IEEgeyBzdGF0aWMgWzAuMV0oKSB7IHJldHVybiAzMTM7IH0gfTsgQVswLjFdKCkgaXMgMzEzCitQ
QVNTIGNsYXNzIEEgeyBzdGF0aWMgWzFdKCkgeyByZXR1cm4gMzE0OyB9IH07IEFbMV0oKSBpcyAz
MTQKK1BBU1MgQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnZm9vJywgMzE1KTsgQVsn
Zm9vJ10oKSBpcyAzMTUKK1BBU1MgQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnZm9v
JywgMzE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnYmFyJywgMzE3KTsgW0Fb
J2ZvbyddKCksIEJbJ2JhciddKCldIGlzIFszMTYsIDMxN10KKworSW5zdGFuY2UgbWV0aG9kcyB3
aXRoIGR1cGxpY2F0ZWQgbmFtZXMKK1BBU1MgY2xhc3MgQSB7IGFiKCkgeyByZXR1cm4gNDAxIH0g
YWIoKSB7IHJldHVybiA0MDI7IH0gfTsgKG5ldyBBKS5hYigpIGlzIDQwMgorUEFTUyBjbGFzcyBB
IHsgJ2EnKCkgeyByZXR1cm4gNDAzIH0gJ2EnKCkgeyByZXR1cm4gNDA0OyB9IH07IChuZXcgQSku
YSgpIGlzIDQwNAorUEFTUyBjbGFzcyBBIHsgMSgpIHsgcmV0dXJuIDQwNSB9IDEoKSB7IHJldHVy
biA0MDY7IH0gfTsgKG5ldyBBKVsxXSgpIGlzIDQwNgorUEFTUyBjbGFzcyBBIHsgMC4xKCkgeyBy
ZXR1cm4gNDA3IH0gMC4xKCkgeyByZXR1cm4gNDA4OyB9IH07IChuZXcgQSlbMC4xXSgpIGlzIDQw
OAorUEFTUyBjbGFzcyBBIHsgYWIoKSB7IHJldHVybiA0MDkgfSBbJ2EnICsgJ2InXSgpIHsgcmV0
dXJuIDQxMDsgfSB9OyAobmV3IEEpLmFiKCkgaXMgNDEwCitQQVNTIGNsYXNzIEEgeyBbJ2FiJ10o
KSB7IHJldHVybiA0MTEgfSBhYigpIHsgcmV0dXJuIDQxMjsgfSB9OyAobmV3IEEpLmFiKCkgaXMg
NDEyCitQQVNTIGNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDEzIH0gWydhJ10oKSB7IHJldHVybiA0
MTQ7IH0gYSgpIHsgcmV0dXJuIDQxNTsgfSB9OyAobmV3IEEpLmEoKSBpcyA0MTUKK1BBU1MgY2xh
c3MgQSB7IFsnYiddKCkgeyByZXR1cm4gNDE2IH0gYigpIHsgcmV0dXJuIDQxNzsgfSBbJ2InXSgp
IHsgcmV0dXJuIDQxODsgfSB9OyAobmV3IEEpLmIoKSBpcyA0MTgKK1BBU1MgY2xhc3MgQSB7IGEo
KSB7IHJldHVybiA0MTkgfSBnZXQgYSgpIHsgcmV0dXJuIDQyMDsgfSB9OyAobmV3IEEpLmEgaXMg
NDIwCitQQVNTIGNsYXNzIEEgeyBnZXQgYSgpIHsgcmV0dXJuIDQyMSB9IGEoKSB7IHJldHVybiA0
MjIgfSB9OyAobmV3IEEpLmEoKSBpcyA0MjIKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7
IGNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDIzIH0gc2V0IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9IHgg
fSB9OyAobmV3IEEpLmEgPSA0MjQ7IHNldHRlclZhbHVlIGlzIDQyNAorUEFTUyBzZXR0ZXJWYWx1
ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0gYSgp
IHsgcmV0dXJuIDQyNSB9IH07IChuZXcgQSkuYSgpIGlzIDQyNQorUEFTUyBzZXR0ZXJWYWx1ZSA9
IHVuZGVmaW5lZDsgY2xhc3MgQSB7IGdldCBmb28oKSB7IHJldHVybiA0MjYgfSBzZXQgZm9vKHgp
IHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IGEgPSBuZXcgQTsgYS5mb28gPSBhLmZvbzsgc2V0dGVy
VmFsdWUgaXMgNDI2CitQQVNTIGNsYXNzIEEgeyBnZXQgZm9vKCkgeyB9IGZvbygpIHsgfSBzZXQg
Zm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMgWyd2
YWx1ZSddCitQQVNTIGNsYXNzIEEgeyBzZXQgZm9vKHgpIHsgfSBmb28oKSB7IH0gZ2V0IGZvbygp
IHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMgWyd2YWx1ZSdd
CitQQVNTIGNsYXNzIEEgeyBmb28oKSB7IH0gZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSB9
OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMgWydnZXQnLCAnc2V0J10K
K1BBU1MgY2xhc3MgQSB7IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSBnZXQgZm9vKCkgeyB9IH07
IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28nKSBpcyBbJ2dldCcsICdzZXQnXQor
UEFTUyBjbGFzcyBBIHsgZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSBmb28oKSB7IH0gfTsg
dmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBj
bGFzcyBBIHsgc2V0IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSBmb28oKSB7IH0gfTsgdmFsdWVU
eXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorCitTdGF0aWMgbWV0
aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBhYigpIHsg
cmV0dXJuIDUwMSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwMjsgfSB9OyBBLmFiKCkgaXMgNTAy
CitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgJ2EnKCkgeyByZXR1cm4gNTAzIH0gc3RhdGljICdhJygp
IHsgcmV0dXJuIDUwNDsgfSB9OyBBLmEoKSBpcyA1MDQKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyAx
KCkgeyByZXR1cm4gNTA1IH0gc3RhdGljIDEoKSB7IHJldHVybiA1MDY7IH0gfTsgQVsxXSgpIGlz
IDUwNgorUEFTUyBjbGFzcyBBIHsgc3RhdGljIDAuMSgpIHsgcmV0dXJuIDUwNyB9IHN0YXRpYyAw
LjEoKSB7IHJldHVybiA1MDg7IH0gfTsgQVswLjFdKCkgaXMgNTA4CitQQVNTIGNsYXNzIEEgeyBz
dGF0aWMgYWIoKSB7IHJldHVybiA1MDkgfSBzdGF0aWMgWydhJyArICdiJ10oKSB7IHJldHVybiA1
MTA7IH0gfTsgQS5hYigpIGlzIDUxMAorUEFTUyBjbGFzcyBBIHsgc3RhdGljIFsnYWInXSgpIHsg
cmV0dXJuIDUxMSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUxMjsgfSB9OyBBLmFiKCkgaXMgNTEy
CitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxMyB9IHN0YXRpYyBbJ2EnXSgp
IHsgcmV0dXJuIDUxNDsgfSBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxNTsgfSB9OyBBLmEoKSBpcyA1
MTUKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBbJ2InXSgpIHsgcmV0dXJuIDUxNiB9IHN0YXRpYyBi
KCkgeyByZXR1cm4gNTE3OyB9IHN0YXRpYyBbJ2InXSgpIHsgcmV0dXJuIDUxODsgfSB9OyBBLmIo
KSBpcyA1MTgKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBhKCkgeyByZXR1cm4gNTE5IH0gc3RhdGlj
IGdldCBhKCkgeyByZXR1cm4gNTIwOyB9IH07IEEuYSBpcyA1MjAKK1BBU1MgY2xhc3MgQSB7IHN0
YXRpYyBnZXQgYSgpIHsgcmV0dXJuIDUyMSB9IHN0YXRpYyBhKCkgeyByZXR1cm4gNTIyIH0gfTsg
QS5hKCkgaXMgNTIyCitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3Rh
dGljIGEoKSB7IHJldHVybiA1MjMgfSBzdGF0aWMgc2V0IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9IHgg
fSB9OyBBLmEgPSA1MjQ7IHNldHRlclZhbHVlIGlzIDUyNAorUEFTUyBzZXR0ZXJWYWx1ZSA9IHVu
ZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRpYyBzZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9IHN0
YXRpYyBhKCkgeyByZXR1cm4gNTI1IH0gfTsgQS5hKCkgaXMgNTI1CitQQVNTIHNldHRlclZhbHVl
ID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3RhdGljIGdldCBmb28oKSB7IHJldHVybiA1MjYgfSBz
dGF0aWMgc2V0IGZvbyh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBBLmZvbyA9IEEuZm9vOyBz
ZXR0ZXJWYWx1ZSBpcyA1MjYKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0
YXRpYyBmb28oKSB7IH0gc3RhdGljIHNldCBmb28oeCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2Zv
bycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIHNldCBmb28oeCkgeyB9IHN0
YXRpYyBmb28oKSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAnZm9v
JykgaXMgWyd2YWx1ZSddCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBn
ZXQgZm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28n
KSBpcyBbJ2dldCcsICdzZXQnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIGZvbygpIHsgfSBzdGF0
aWMgc2V0IGZvbyh4KSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAn
Zm9vJykgaXMgWydnZXQnLCAnc2V0J10KK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZm9vKCkg
eyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMo
QSwgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIHNldCBmb28oeCkg
eyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcyhB
LCAnZm9vJykgaXMgWyd2YWx1ZSddCisKK1N0YXRpYyBtZXRob2RzIHdpdGggZHVwbGljYXRlZCBu
YW1lcwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LW1ldGhvZC1uYW1l
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3lu
dGF4LW1ldGhvZC1uYW1lcy5qcwkocmV2aXNpb24gMTg4NDEyKQorKysgTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw2IEBACiBkZXNjcmlwdGlvbignVGVzdHMgZm9yIHZhcmlvdXMgbWV0aG9kIG5h
bWVzJyk7CiAKK2RlYnVnKCdJbnN0YW5jZSBtZXRob2RzJyk7CiBzaG91bGRCZSgiY2xhc3MgQSB7
IDAuMSgpIHsgcmV0dXJuIDE7IH0gfTsgKG5ldyBBKVswLjFdKCkiLCAiMSIpOwogc2hvdWxkQmUo
ImNsYXNzIEEgeyBnZXQoKSB7IHJldHVybiAyOyB9IH07IChuZXcgQSkuZ2V0KCkiLCAiMiIpOwog
c2hvdWxkQmUoImNsYXNzIEEgeyBzZXQoKSB7IHJldHVybiAzOyB9IH07IChuZXcgQSkuc2V0KCki
LCAiMyIpOwpAQCAtOCw2ICs5LDggQEAgc2hvdWxkQmUoImNsYXNzIEEgeyBnZXQgc2V0KCkgeyBy
ZXR1cm4gNQogc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc2V0
IGdldCh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyAobmV3IEEpLmdldCA9IDY7IHNldHRlclZh
bHVlIiwgIjYiKTsKIHNob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7
IHNldCBzZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgKG5ldyBBKS5zZXQgPSA3OyBzZXR0
ZXJWYWx1ZSIsICI3Iik7CiAKK2RlYnVnKCcnKTsKK2RlYnVnKCdTdGF0aWMgbWV0aG9kcycpOwog
c2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgMC4xKCkgeyByZXR1cm4gMTAxOyB9IH07IEFbMC4x
XSgpIiwgIjEwMSIpOwogc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZ2V0KCkgeyByZXR1cm4g
MTAyOyB9IH07IEEuZ2V0KCkiLCAiMTAyIik7CiBzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBz
ZXQoKSB7IHJldHVybiAxMDM7IH0gfTsgQS5zZXQoKSIsICIxMDMiKTsKQEAgLTE1LDMgKzE4LDc0
IEBAIHNob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIGdldCBnZXQoKSB7IHIKIHNob3VsZEJlKCJj
bGFzcyBBIHsgc3RhdGljIGdldCBzZXQoKSB7IHJldHVybiAxMDU7IH0gfTsgQS5zZXQiLCAiMTA1
Iik7CiBzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMg
c2V0IGdldCh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBBLmdldCA9IDEwNjsgc2V0dGVyVmFs
dWUiLCAiMTA2Iik7CiBzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEg
eyBzdGF0aWMgc2V0IHNldCh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBBLnNldCA9IDEwNzsg
c2V0dGVyVmFsdWUiLCAiMTA3Iik7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdJbnN0YW5jZSBtZXRo
b2RzIHdpdGggY29tcHV0ZWQgbmFtZXMnKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWydhJyArICdi
J10oKSB7IHJldHVybiAyMTE7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjIxMSIpOworc2hvdWxkQmUo
ImNsYXNzIEEgeyBbJ2EnICsgMF0oKSB7IHJldHVybiAyMTI7IH0gfTsgKG5ldyBBKS5hMCgpIiwg
IjIxMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBbMC4xXSgpIHsgcmV0dXJuIDIxMzsgfSB9OyAo
bmV3IEEpWzAuMV0oKSIsICIyMTMiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWzFdKCkgeyByZXR1
cm4gMjE0OyB9IH07IChuZXcgQSlbMV0oKSIsICIyMTQiKTsKK2Z1bmN0aW9uIGNyZWF0ZUNsYXNz
V2l0aEluc3RhbmNlTWV0aG9kKG5hbWUsIHZhbHVlKSB7IHJldHVybiBjbGFzcyB7IFtuYW1lXSgp
IHsgcmV0dXJuIHZhbHVlOyB9IH0gfTsKK3Nob3VsZEJlKCJBID0gY3JlYXRlQ2xhc3NXaXRoSW5z
dGFuY2VNZXRob2QoJ2ZvbycsIDIxNSk7IChuZXcgQSlbJ2ZvbyddKCkiLCAiMjE1Iik7CitzaG91
bGRCZSgiQSA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdmb28nLCAyMTYpOyBCID0g
Y3JlYXRlQ2xhc3NXaXRoSW5zdGFuY2VNZXRob2QoJ2JhcicsIDIxNyk7IFsobmV3IEEpWydmb28n
XSgpLCAobmV3IEIpWydiYXInXSgpXSIsICJbMjE2LCAyMTddIik7CisKK2RlYnVnKCcnKTsKK2Rl
YnVnKCdTdGF0aWMgbWV0aG9kcyB3aXRoIGNvbXB1dGVkIG5hbWVzJyk7CitzaG91bGRCZSgiY2xh
c3MgQSB7IHN0YXRpYyBbJ2EnICsgJ2InXSgpIHsgcmV0dXJuIDMxMTsgfSB9OyBBLmFiKCkiLCAi
MzExIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBbJ2EnICsgMF0oKSB7IHJldHVybiAz
MTI7IH0gfTsgQS5hMCgpIiwgIjMxMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWzAu
MV0oKSB7IHJldHVybiAzMTM7IH0gfTsgQVswLjFdKCkiLCAiMzEzIik7CitzaG91bGRCZSgiY2xh
c3MgQSB7IHN0YXRpYyBbMV0oKSB7IHJldHVybiAzMTQ7IH0gfTsgQVsxXSgpIiwgIjMxNCIpOwor
ZnVuY3Rpb24gY3JlYXRlQ2xhc3NXaXRoU3RhdGljTWV0aG9kKG5hbWUsIHZhbHVlKSB7IHJldHVy
biBjbGFzcyB7IHN0YXRpYyBbbmFtZV0oKSB7IHJldHVybiB2YWx1ZTsgfSB9IH07CitzaG91bGRC
ZSgiQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnZm9vJywgMzE1KTsgQVsnZm9vJ10o
KSIsICIzMTUiKTsKK3Nob3VsZEJlKCJBID0gY3JlYXRlQ2xhc3NXaXRoU3RhdGljTWV0aG9kKCdm
b28nLCAzMTYpOyBCID0gY3JlYXRlQ2xhc3NXaXRoU3RhdGljTWV0aG9kKCdiYXInLCAzMTcpOyBb
QVsnZm9vJ10oKSwgQlsnYmFyJ10oKV0iLCAiWzMxNiwgMzE3XSIpOworCitkZWJ1ZygnJyk7Citk
ZWJ1ZygnSW5zdGFuY2UgbWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMnKTsKK3Nob3VsZEJl
KCJjbGFzcyBBIHsgYWIoKSB7IHJldHVybiA0MDEgfSBhYigpIHsgcmV0dXJuIDQwMjsgfSB9OyAo
bmV3IEEpLmFiKCkiLCAiNDAyIik7CitzaG91bGRCZSgiY2xhc3MgQSB7ICdhJygpIHsgcmV0dXJu
IDQwMyB9ICdhJygpIHsgcmV0dXJuIDQwNDsgfSB9OyAobmV3IEEpLmEoKSIsICI0MDQiKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgMSgpIHsgcmV0dXJuIDQwNSB9IDEoKSB7IHJldHVybiA0MDY7IH0g
fTsgKG5ldyBBKVsxXSgpIiwgIjQwNiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyAwLjEoKSB7IHJl
dHVybiA0MDcgfSAwLjEoKSB7IHJldHVybiA0MDg7IH0gfTsgKG5ldyBBKVswLjFdKCkiLCAiNDA4
Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IGFiKCkgeyByZXR1cm4gNDA5IH0gWydhJyArICdiJ10o
KSB7IHJldHVybiA0MTA7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjQxMCIpOworc2hvdWxkQmUoImNs
YXNzIEEgeyBbJ2FiJ10oKSB7IHJldHVybiA0MTEgfSBhYigpIHsgcmV0dXJuIDQxMjsgfSB9OyAo
bmV3IEEpLmFiKCkiLCAiNDEyIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IGEoKSB7IHJldHVybiA0
MTMgfSBbJ2EnXSgpIHsgcmV0dXJuIDQxNDsgfSBhKCkgeyByZXR1cm4gNDE1OyB9IH07IChuZXcg
QSkuYSgpIiwgIjQxNSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBbJ2InXSgpIHsgcmV0dXJuIDQx
NiB9IGIoKSB7IHJldHVybiA0MTc7IH0gWydiJ10oKSB7IHJldHVybiA0MTg7IH0gfTsgKG5ldyBB
KS5iKCkiLCAiNDE4Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IGEoKSB7IHJldHVybiA0MTkgfSBn
ZXQgYSgpIHsgcmV0dXJuIDQyMDsgfSB9OyAobmV3IEEpLmEiLCAiNDIwIik7CitzaG91bGRCZSgi
Y2xhc3MgQSB7IGdldCBhKCkgeyByZXR1cm4gNDIxIH0gYSgpIHsgcmV0dXJuIDQyMiB9IH07IChu
ZXcgQSkuYSgpIiwgIjQyMiIpOworc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBj
bGFzcyBBIHsgYSgpIHsgcmV0dXJuIDQyMyB9IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0g
fTsgKG5ldyBBKS5hID0gNDI0OyBzZXR0ZXJWYWx1ZSIsICI0MjQiKTsKK3Nob3VsZEJlKCJzZXR0
ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4
IH0gYSgpIHsgcmV0dXJuIDQyNSB9IH07IChuZXcgQSkuYSgpIiwgIjQyNSIpOworc2hvdWxkQmUo
InNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgZ2V0IGZvbygpIHsgcmV0dXJuIDQy
NiB9IHNldCBmb28oeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgYSA9IG5ldyBBOyBhLmZvbyA9
IGEuZm9vOyBzZXR0ZXJWYWx1ZSIsICI0MjYiKTsKK2Z1bmN0aW9uIHZhbHVlVHlwZXMob2JqZWN0
LCBwcm9lcHJ0eU5hbWUpIHsKKyAgICBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvYmplY3QsIHByb2VwcnR5TmFtZSk7CisgICAgcmV0dXJuIFsndmFsdWUnLCAn
Z2V0JywgJ3NldCddLmZpbHRlcihmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbmFtZSBpbiBkZXNj
cmlwdG9yOyB9KTsKK30KK3Nob3VsZEJlKCJjbGFzcyBBIHsgZ2V0IGZvbygpIHsgfSBmb28oKSB7
IH0gc2V0IGZvbyh4KSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2Zvbycp
IiwgIlsndmFsdWUnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzZXQgZm9vKHgpIHsgfSBmb28o
KSB7IH0gZ2V0IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9v
JykiLCAiWyd2YWx1ZSddIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IGZvbygpIHsgfSBnZXQgZm9v
KCkgeyB9IHNldCBmb28oeCkgeyB9IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18sICdm
b28nKSIsICJbJ2dldCcsICdzZXQnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBmb28oKSB7IH0g
c2V0IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90
b19fLCAnZm9vJykiLCAiWydnZXQnLCAnc2V0J10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgZ2V0
IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEp
Ll9fcHJvdG9fXywgJ2ZvbycpIiwgIlsndmFsdWUnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBz
ZXQgZm9vKHgpIHsgfSBnZXQgZm9vKCkgeyB9IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcg
QSkuX19wcm90b19fLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7CisKK2RlYnVnKCcnKTsKK2RlYnVn
KCdTdGF0aWMgbWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMnKTsKK3Nob3VsZEJlKCJjbGFz
cyBBIHsgc3RhdGljIGFiKCkgeyByZXR1cm4gNTAxIH0gc3RhdGljIGFiKCkgeyByZXR1cm4gNTAy
OyB9IH07IEEuYWIoKSIsICI1MDIiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljICdhJygp
IHsgcmV0dXJuIDUwMyB9IHN0YXRpYyAnYScoKSB7IHJldHVybiA1MDQ7IH0gfTsgQS5hKCkiLCAi
NTA0Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyAxKCkgeyByZXR1cm4gNTA1IH0gc3Rh
dGljIDEoKSB7IHJldHVybiA1MDY7IH0gfTsgQVsxXSgpIiwgIjUwNiIpOworc2hvdWxkQmUoImNs
YXNzIEEgeyBzdGF0aWMgMC4xKCkgeyByZXR1cm4gNTA3IH0gc3RhdGljIDAuMSgpIHsgcmV0dXJu
IDUwODsgfSB9OyBBWzAuMV0oKSIsICI1MDgiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGlj
IGFiKCkgeyByZXR1cm4gNTA5IH0gc3RhdGljIFsnYScgKyAnYiddKCkgeyByZXR1cm4gNTEwOyB9
IH07IEEuYWIoKSIsICI1MTAiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIFsnYWInXSgp
IHsgcmV0dXJuIDUxMSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUxMjsgfSB9OyBBLmFiKCkiLCAi
NTEyIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBhKCkgeyByZXR1cm4gNTEzIH0gc3Rh
dGljIFsnYSddKCkgeyByZXR1cm4gNTE0OyB9IHN0YXRpYyBhKCkgeyByZXR1cm4gNTE1OyB9IH07
IEEuYSgpIiwgIjUxNSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWydiJ10oKSB7IHJl
dHVybiA1MTYgfSBzdGF0aWMgYigpIHsgcmV0dXJuIDUxNzsgfSBzdGF0aWMgWydiJ10oKSB7IHJl
dHVybiA1MTg7IH0gfTsgQS5iKCkiLCAiNTE4Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRp
YyBhKCkgeyByZXR1cm4gNTE5IH0gc3RhdGljIGdldCBhKCkgeyByZXR1cm4gNTIwOyB9IH07IEEu
YSIsICI1MjAiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIGdldCBhKCkgeyByZXR1cm4g
NTIxIH0gc3RhdGljIGEoKSB7IHJldHVybiA1MjIgfSB9OyBBLmEoKSIsICI1MjIiKTsKK3Nob3Vs
ZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRpYyBhKCkgeyByZXR1
cm4gNTIzIH0gc3RhdGljIHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0gfTsgQS5hID0gNTI0
OyBzZXR0ZXJWYWx1ZSIsICI1MjQiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5l
ZDsgY2xhc3MgQSB7IHN0YXRpYyBzZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9IHN0YXRpYyBh
KCkgeyByZXR1cm4gNTI1IH0gfTsgQS5hKCkiLCAiNTI1Iik7CitzaG91bGRCZSgic2V0dGVyVmFs
dWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMgZ2V0IGZvbygpIHsgcmV0dXJuIDUyNiB9
IHN0YXRpYyBzZXQgZm9vKHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IEEuZm9vID0gQS5mb287
IHNldHRlclZhbHVlIiwgIjUyNiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZ2V0IGZv
bygpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5
cGVzKEEsICdmb28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGlj
IHNldCBmb28oeCkgeyB9IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gfTsg
dmFsdWVUeXBlcyhBLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7CitzaG91bGRCZSgiY2xhc3MgQSB7
IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gc3RhdGljIHNldCBmb28oeCkg
eyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIiwgIlsnZ2V0JywgJ3NldCddIik7CitzaG91bGRC
ZSgiY2xhc3MgQSB7IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIHNldCBmb28oeCkgeyB9IHN0YXRp
YyBnZXQgZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIiwgIlsnZ2V0JywgJ3NldCdd
Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBzZXQg
Zm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIiwgIlsn
dmFsdWUnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgc2V0IGZvbyh4KSB7IH0gc3Rh
dGljIGdldCBmb28oKSB7IH0gc3RhdGljIGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28n
KSIsICJbJ3ZhbHVlJ10iKTsKKworZGVidWcoJycpOworZGVidWcoJ1N0YXRpYyBtZXRob2RzIHdp
dGggZHVwbGljYXRlZCBuYW1lcycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259027</attachid>
            <date>2015-08-14 12:40:34 -0700</date>
            <delta_ts>2015-08-14 13:39:24 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-142690-20150814124020.patch</filename>
            <type>text/plain</type>
            <size>60699</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg4NDgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDE1LTA4LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IEVTNiBjbGFzcyBzeW50YXggc2hvdWxkIGFsbG93IGNvbXB1dGVkIG5hbWUgbWV0aG9kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5ldyAi
YXR0cmlidXRlcyIgYXR0cmlidXRlIHRvIG9wX3B1dF9nZXR0ZXJfYnlfaWQsIG9wX3B1dF9zZXR0
ZXJfYnlfaWQsIG9wX3B1dF9nZXR0ZXJfc2V0dGVyIHRvIHNwZWNpZnkKKyAgICAgICAgdGhlIHBy
b3BlcnR5IGRlc2NyaXB0b3Igb3B0aW9ucyBzbyB0aGF0IHdlIGNhbiB1c2UgdXNlIG9wX3B1dF9z
ZXR0ZXJfYnlfaWQgYW5kIG9wX3B1dF9nZXR0ZXJfc2V0dGVyIHRvIGRlZmluZQorICAgICAgICBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBjbGFzc2VzLiBXaXRob3V0IHRoaXMsIGdldHRlcnMgYW5k
IHNldHRlcnMgY291bGQgZXJyb25lb3VzbHkgb3ZlcnJpZGUgbWV0aG9kcy4KKworICAgICAgICAq
IGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgor
ICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5
SWQpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SWQp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFNldHRlckJ5SWQpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlclNldHRlcik6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OlByb3BlcnR5TGlzdE5v
ZGU6OmVtaXRCeXRlY29kZSk6IEFsd2F5cyB1c2UgZW1pdFB1dEdldHRlclNldHRlciB0byBlbWl0
IGdldHRlcnMgYW5kIHNldHRlcnMgZm9yIGNsYXNzZXMKKyAgICAgICAgYXMgZG9uZSBmb3Igb2Jq
ZWN0IGxpdGVyYWxzLgorICAgICAgICAoSlNDOjpQcm9wZXJ0eUxpc3ROb2RlOjplbWl0UHV0Q29u
c3RhbnRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkNsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhl
bHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6CisgICAgICAgICogaml0L0pJVC5o
OgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9w
ZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9k
ZWxfYnlfaWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9kZWxf
YnlfaWQpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkFTVEJ1
aWxkZXI6OmNyZWF0ZVByb3BlcnR5TGlzdCk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1
Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUpOgorICAg
ICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5vZGU6OmV4cHJl
c3Npb25OYW1lKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOb2RlOjpuYW1lKToKKyAgICAgICAg
KiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBh
cnNlQ2xhc3MpOiBBZGRlZCB0aGUgc3VwcG9ydCBmb3IgY29tcHV0ZWQgcHJvcGVydHkgbmFtZS4g
V2UgZG9uJ3Qgc3VwcG9ydCBjb21wdXRlZCBuYW1lcworICAgICAgICBmb3IgZ2V0dGVycyBhbmQg
c2V0dGVycy4KKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlND
OjpTeW50YXhDaGVja2VyOjpjcmVhdGVQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjphbGxvd3NBY2Nlc3NGcm9tKToKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEdldHRlcik6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpwdXRTZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5RGVzY3JpcHRvci5oOgorCiAyMDE1LTA4LTE0ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTg4NDQ0LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTg4NDgyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC03MSw5
ICs3MSw5IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfYnlfdmFsX2RpcmVjdCIs
ICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVsX2J5X3ZhbCIs
ICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2J5X2luZGV4
IiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfZ2V0dGVy
X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRf
c2V0dGVyX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF9wdXRfZ2V0dGVyX3NldHRlciIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfcHV0X2dldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfcHV0X3NldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9LAorICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2dldHRlcl9zZXR0ZXIiLCAibGVuZ3RoIiA6IDYgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2ptcCIsICJsZW5ndGgiIDogMiB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfanRydWUiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2pmYWxzZSIsICJsZW5ndGgiIDogMyB9LApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgJKHJldmlzaW9uIDE4
ODQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CSh3b3JraW5nIGNvcHkpCkBAIC05OCwxOCArOTgsMjIgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsX291
dF9vZl9saW5lOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX291dF9vZl9saW5lOgogICAgIGNhc2Ug
b3BfcHV0X2J5X2lkOgotICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKLSAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6CiAgICAgY2FzZSBvcF9wdXRfdG9fc2NvcGU6CiAgICAgY2FzZSBv
cF9wdXRfdG9fYXJndW1lbnRzOiB7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVj
dGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgICAgIGZ1bmN0
b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5
X2lkOgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV9pZDogeworICAgICAgICBmdW5jdG9yKGNv
ZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
OworICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2Ug
b3BfcHV0X2dldHRlcl9zZXR0ZXI6IHsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3Ry
dWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKLSAgICAgICAgZnVu
Y3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJ
RCwgaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ss
IGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJl
dmlzaW9uIDE4ODQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgyLDI2ICsxMDgyLDI5IEBAIHZvaWQgQ29kZUJs
b2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDogewog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQg
aWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0X2dl
dHRlcl9ieV9pZCIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcyIsIHJlZ2lz
dGVyTmFtZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCkpOworICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVz
LCAlZCwgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmll
cihpZDApKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfaWQ6IHsK
ICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50
IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IG4wID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9z
ZXR0ZXJfYnlfaWQiKTsKLSAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdp
c3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAl
cywgJWQsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlkTmFtZShpZDAsIGlkZW50aWZp
ZXIoaWQwKSkuZGF0YSgpLCBuMCwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjog
ewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbjAgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBwcmludExv
Y2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwdXRfZ2V0dGVyX3NldHRlciIp
OwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUo
cjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCIlcywgJXMsICVkLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwg
aWROYW1lKGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUocjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWxfYnlfaWQ6IHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0OCw3ICsxOTQ4
LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlYwogICAgIHJldHVy
biB2YWx1ZTsKIH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SWQo
UmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQq
IGdldHRlcikKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJCeUlkKFJlZ2lz
dGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCB1bnNpZ25lZCBhdHRyaWJ1
dGVzLCBSZWdpc3RlcklEKiBnZXR0ZXIpCiB7CiAgICAgdW5zaWduZWQgcHJvcGVydHlJbmRleCA9
IGFkZENvbnN0YW50KHByb3BlcnR5KTsKICAgICBtX3N0YXRpY1Byb3BlcnR5QW5hbHl6ZXIucHV0
QnlJZChiYXNlLT5pbmRleCgpLCBwcm9wZXJ0eUluZGV4KTsKQEAgLTE5NTYsMTAgKzE5NTYsMTEg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEdldHRlckJ5SQogICAgIGVtaXRPcGNv
ZGUob3BfcHV0X2dldHRlcl9ieV9pZCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2Ut
PmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9wZXJ0eUluZGV4KTsKKyAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXR0cmlidXRlcyk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKGdldHRlci0+aW5kZXgoKSk7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQdXRTZXR0ZXJCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5LCBSZWdpc3RlcklEKiBzZXR0ZXIpCit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0
U2V0dGVyQnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwg
dW5zaWduZWQgYXR0cmlidXRlcywgUmVnaXN0ZXJJRCogc2V0dGVyKQogewogICAgIHVuc2lnbmVk
IHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7CiAgICAgbV9zdGF0aWNQcm9w
ZXJ0eUFuYWx5emVyLnB1dEJ5SWQoYmFzZS0+aW5kZXgoKSwgcHJvcGVydHlJbmRleCk7CkBAIC0x
OTY3LDEwICsxOTY4LDExIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRTZXR0ZXJC
eUkKICAgICBlbWl0T3Bjb2RlKG9wX3B1dF9zZXR0ZXJfYnlfaWQpOwogICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChiYXNlLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJv
cGVydHlJbmRleCk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGF0dHJpYnV0ZXMpOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChzZXR0ZXItPmluZGV4KCkpOwogfQogCi12b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0UHV0R2V0dGVyU2V0dGVyKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIsIFJlZ2lzdGVySUQqIHNl
dHRlcikKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJTZXR0ZXIoUmVnaXN0
ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIHVuc2lnbmVkIGF0dHJpYnV0
ZXMsIFJlZ2lzdGVySUQqIGdldHRlciwgUmVnaXN0ZXJJRCogc2V0dGVyKQogewogICAgIHVuc2ln
bmVkIHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7CiAKQEAgLTE5NzksNiAr
MTk4MSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJTZXQKICAgICBl
bWl0T3Bjb2RlKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoYmFzZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb3BlcnR5SW5k
ZXgpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhdHRyaWJ1dGVzKTsKICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoZ2V0dGVyLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoc2V0dGVyLT5pbmRleCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDE4ODQ4
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTA4LDkgKzUwOCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVsZXRlQnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRQdXRCeUluZGV4KFJlZ2lzdGVySUQqIGJhc2UsIHVuc2lnbmVkIGluZGV4LCBSZWdpc3Rl
cklEKiB2YWx1ZSk7CiAKLSAgICAgICAgdm9pZCBlbWl0UHV0R2V0dGVyQnlJZChSZWdpc3RlcklE
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogZ2V0dGVyKTsK
LSAgICAgICAgdm9pZCBlbWl0UHV0U2V0dGVyQnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogc2V0dGVyKTsKLSAgICAgICAgdm9pZCBl
bWl0UHV0R2V0dGVyU2V0dGVyKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIsIFJlZ2lzdGVySUQqIHNldHRlcik7CisgICAgICAg
IHZvaWQgZW1pdFB1dEdldHRlckJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHksIHVuc2lnbmVkIHByb3BlcnR5RGVzY3JpcHRvck9wdGlvbnMsIFJlZ2lzdGVy
SUQqIGdldHRlcik7CisgICAgICAgIHZvaWQgZW1pdFB1dFNldHRlckJ5SWQoUmVnaXN0ZXJJRCog
YmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIHVuc2lnbmVkIHByb3BlcnR5RGVzY3Jp
cHRvck9wdGlvbnMsIFJlZ2lzdGVySUQqIHNldHRlcik7CisgICAgICAgIHZvaWQgZW1pdFB1dEdl
dHRlclNldHRlcihSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwg
dW5zaWduZWQgYXR0cmlidXRlcywgUmVnaXN0ZXJJRCogZ2V0dGVyLCBSZWdpc3RlcklEKiBzZXR0
ZXIpOwogICAgICAgICAKICAgICAgICAgRXhwZWN0ZWRGdW5jdGlvbiBleHBlY3RlZEZ1bmN0aW9u
Rm9ySWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlv
biwgQ2FsbEFyZ3VtZW50cyYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Nyw5ICs0
OTcsOSBAQCBSZWdpc3RlcklEKiBQcm9wZXJ0eUxpc3ROb2RlOjplbWl0Qnl0ZWNvCiAgICAgICAg
ICAgICAvLyBUaGlzIGlzIGEgZ2V0L3NldCBwcm9wZXJ0eSB3aGljaCBtYXkgYmUgb3ZlcnJpZGRl
biBieSBhIGNvbXB1dGVkIHByb3BlcnR5IGxhdGVyLgogICAgICAgICAgICAgaWYgKGhhc0NvbXB1
dGVkUHJvcGVydHkpIHsKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+bV90eXBlICYgUHJvcGVy
dHlOb2RlOjpHZXR0ZXIpCi0gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0
dGVyQnlJZChkc3QsICpub2RlLT5uYW1lKCksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXRQdXRHZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5hbWUoKSwgQWNjZXNzb3Is
IHZhbHVlKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0UHV0U2V0dGVyQnlJZChkc3QsICpub2RlLT5uYW1lKCksIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRTZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5h
bWUoKSwgQWNjZXNzb3IsIHZhbHVlKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIH0KIApAQCAtNTQ0LDEyICs1NDQsNyBAQCBSZWdpc3RlcklEKiBQcm9wZXJ0eUxpc3RO
b2RlOjplbWl0Qnl0ZWNvCiAgICAgICAgICAgICBpZiAoaXNDbGFzc1Byb3BlcnR5ICYmIHBhaXIu
c2Vjb25kKQogICAgICAgICAgICAgICAgIGVtaXRQdXRIb21lT2JqZWN0KGdlbmVyYXRvciwgc2Vj
b25kUmVnLCBkc3QpOwogCi0gICAgICAgICAgICBpZiAoaXNDbGFzc1Byb3BlcnR5KSB7Ci0gICAg
ICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZVJlZ2lzdGVyID0gZ2Vu
ZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgKm5vZGUtPm5hbWUoKSk7
Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsRGVmaW5lUHJvcGVydHkoZHN0LCBw
cm9wZXJ0eU5hbWVSZWdpc3Rlci5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwg
Z2V0dGVyUmVnLmdldCgpLCBzZXR0ZXJSZWcuZ2V0KCksIEJ5dGVjb2RlR2VuZXJhdG9yOjpQcm9w
ZXJ0eUNvbmZpZ3VyYWJsZSwgbV9wb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEdldHRlclNldHRlcihkc3QsICpub2RlLT5uYW1l
KCksIGdldHRlclJlZy5nZXQoKSwgc2V0dGVyUmVnLmdldCgpKTsKKyAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0UHV0R2V0dGVyU2V0dGVyKGRzdCwgKm5vZGUtPm5hbWUoKSwgaXNDbGFzc1Byb3Bl
cnR5ID8gKEFjY2Vzc29yIHwgRG9udEVudW0pIDogQWNjZXNzb3IsIGdldHRlclJlZy5nZXQoKSwg
c2V0dGVyUmVnLmdldCgpKTsKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIs
MTMgKzMwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmczKTsKICAg
ICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRy
dXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW0zMiBhcmc0KQogICAgIHsK
ICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcx
KTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOwogICAgICAgICBhZGRDYWxsQXJndW1l
bnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKICAgICB9CiAKICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBUcnVzdGVkSW1tMzIgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQpAQCAtMTkxOCw2ICsxOTE5
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFy
ZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCisgICAgewor
ICAgICAgICBzZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BSNT4oYXJnMSwgYXJnNCwgYXJn
NSk7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAg
bW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0KKwogICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFy
ZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQogICAgIHsK
ICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzMTM0KGFyZzEsIGFyZzMsIGFyZzQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NDQsOCArNzQ0LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNJQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJlZ2lz
dGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSUNDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBp
bnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZp
ZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVpTeW10YWJK
LCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBAIC03NTUsOCArNzU1LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CiAjZW5kaWYKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSklkSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllcios
IFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSWRKSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRp
ZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkosIFJlZ2lzdGVySUQsIGNvbnN0
IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZf
SklUT3BlcmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAkocmV2aXNpb24gMTg4NDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxNCwxNSArNTE0LDE1IEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklk
SiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9w
MiwgUmVnaXN0ZXJJRCByZWdPcDMpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkogb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBS
ZWdpc3RlcklEIHJlZ09wNCkKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgcmVnT3AzKTsKKyAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZElt
bTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZEpKIG9wZXJhdGlvbiwgUmVnaXN0
ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBSZWdpc3RlcklEIHJlZ09w
MywgUmVnaXN0ZXJJRCByZWdPcDQpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQogewotICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCByZWdPcDMs
IHJlZ09wNCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3Rl
ZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQsIHJlZ09wNSk7CiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIApA
QCAtNjQyLDE1ICs2NDIsMTUgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VDSUMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29u
c3QgSWRlbnRpZmllciogaWRlbnRPcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQorQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNJWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRl
bnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKLSAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgcmVnT3Az
KTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRy
KGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJ
Q0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRP
cDIsIFJlZ2lzdGVySUQgcmVnT3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VD
SUNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50
T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQog
ewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCByZWdPcDMsIHJlZ09wNCk7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCBy
ZWdPcDQsIHJlZ09wNSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ1LDcgKzEyNDUsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJbmRleChFCiB9CiAKICNpZiBVU0Uo
SlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZp
ZXIqIGlkZW50aWZpZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSkKK3ZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBp
bnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSkKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
JnZtLCBleGVjKTsKQEAgLTEyNTUsMTAgKzEyNTUsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlckJ5SQogCiAgICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwot
ICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3QoZ2V0dGVy
KSk7CisgICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBhc09iamVjdChn
ZXR0ZXIpLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNl
dHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFs
dWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJW
YWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBp
ZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEyNjgsMTAgKzEyNjgsMTEgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SQogCiAgICAgSlNWYWx1ZSBzZXR0ZXIgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKICAgICBBU1NFUlQoc2V0dGVyLmlz
T2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNP
YmplY3Qoc2V0dGVyKSk7CisgICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsICppZGVudGlmaWVy
LCBhc09iamVjdChzZXR0ZXIpLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRlbnRpZmllciwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyLCBpbnQzMl90IGF0dHJpYnV0ZSwKKyAgICBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVy
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKQEAgLTEyOTEsMTAgKzEyOTIsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEdldHRlclNldAogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwogICAgIGlmICghc2V0dGVyLmlzVW5k
ZWZpbmVkKCkpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFzZU9iai0+cHV0RGlyZWN0
QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBBY2Nlc3Nvcik7CisgICAgYmFz
ZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRy
aWJ1dGUpOwogfQogI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZp
ZXIsIEpTQ2VsbCogZ2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRl
ckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRp
ZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
QEAgLTEzMDMsMTAgKzEzMDQsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlckJ5SQogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAog
ICAgIEFTU0VSVChnZXR0ZXItPmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihl
eGVjLCAqaWRlbnRpZmllciwgZ2V0dGVyKTsKKyAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGdldHRlciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElk
ZW50aWZpZXIqIGlkZW50aWZpZXIsIEpTQ2VsbCogc2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwg
SWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikK
IHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEzMTUsMTAgKzEzMTYsMTAgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SQogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0
LT5nZXRPYmplY3QoKTsKIAogICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0KCkpOwotICAgIGJh
c2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgc2V0dGVyKTsKKyAgICBiYXNlT2Jq
LT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIHNldHRlciwgb3B0aW9ucyk7CiB9CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwgSlNDZWxsKiBnZXR0ZXIs
IEpTQ2VsbCogc2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIsIEpTQ2VsbCogc2V0dGVyKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwpAQCAtMTMzNiw3ICsxMzM3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEdldHRlclNldAogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdldHRlci0+Z2V0T2JqZWN0KCkpOwogICAgIGlm
IChzZXR0ZXIpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0RGly
ZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBBY2Nlc3Nvcik7CisgICAg
YmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBh
dHRyaWJ1dGUpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDggKzE4Myw4IEBA
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXQKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVj
U3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUNJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElubGluZUNhbGxGcmFt
ZSopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0lDKShF
eGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQg
SklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSUNDKShFeGVjU3RhdGUqLCBKU0NlbGwq
LCBJZGVudGlmaWVyKiwgSlNDZWxsKiwgSlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJB
VElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlm
aWVyKiwgaW50MzJfdCwgSlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGlu
dDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCosIElubGlu
ZUNhbGxGcmFtZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQ0pKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ1BTUFMp
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIHZvaWQqLCBzaXplX3QsIHZvaWQqLCBzaXplX3QpOwpAQCAt
MTkzLDggKzE5Myw4IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXQK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRVpTeW10YWJKKShF
eGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRUpDSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCosIFVuaXF1ZWRTdHJp
bmdJbXBsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
SWRKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIEVuY29kZWRKU1Zh
bHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEpK
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VKSWRaSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBp
bnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKSWRaSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlm
aWVyKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxl
Kik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKik7CkBAIC0yOTksMTMgKzI5OSwxMyBAQCBTbG93UGF0aFJldHVyblR5cGUg
SklUX09QRVJBVElPTiBvcGVyYXRpCiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVk
SlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50
MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBJZGVudGlmaWVyKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlm
aWVyKiwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllcios
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmll
ciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVu
dGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVT
Y29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0
YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCShyZXZpc2lvbiAxODg0
ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwzNSArNjEsMzggQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X2dldHRlcl9ieV9pZChJbnN0cgogewogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwotICAgIGludCBnZXR0ZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOworICAgIGludCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKKyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAog
ICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKGdl
dHRlciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwg
cmVnVDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2st
PmlkZW50aWZpZXIocHJvcGVydHkpLCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IHsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAg
aW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQg
c2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25lZCBv
cHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVy
ID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9h
ZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNldHRlciwgcmVnVDMpOwotICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDEsICZtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVy
dHkpLCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
c2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGJhc2Ug
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0gICAgaW50IGdldHRlciA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHNldHRlciA9IGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgYXR0cmlidXRlID0gY3VycmVudEluc3Ry
dWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzVdLnUu
b3BlcmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExv
YWRQYXlsb2FkKGdldHRlciwgcmVnVDMpOwogICAgIGVtaXRMb2FkUGF5bG9hZChzZXR0ZXIsIHJl
Z1Q0KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDEs
ICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzLCByZWdUNCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCAmbV9jb2RlQmxv
Y2stPmlkZW50aWZpZXIocHJvcGVydHkpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAJKHJldmlzaW9uIDE4ODQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsMjMgKzQ4MywyNiBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfaW5kZXgoSW5zdHJ1Y3RpCiB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXRfZ2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRH
ZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpLCByZWdUMSk7CisgICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIo
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogewogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDAsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgcmVnVDEpOworICAgIGludDMyX3Qgb3B0
aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCBy
ZWdUMSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCBy
ZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1Qw
LCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCksIHJlZ1QxLCByZWdUMik7CisgICAgaW50MzJfdCBhdHRyaWJ1dGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCwgcmVnVDIpOworICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVu
dGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBhdHRyaWJ1dGUsIHJlZ1Qx
LCByZWdUMik7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDcs
MTEgKzg0NywxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlCiAg
ICAgTExJTlRfQkVHSU4oKTsKICAgICBBU1NFUlQoTExJTlRfT1AoMSkuanNWYWx1ZSgpLmlzT2Jq
ZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoTExJTlRfT1AoMSkuanNW
YWx1ZSgpKTsKLSAgICAKLSAgICBKU1ZhbHVlIGdldHRlciA9IExMSU5UX09QKDMpLmpzVmFsdWUo
KTsKKworICAgIHVuc2lnbmVkIG9wdGlvbnMgPSBwY1szXS51Lm9wZXJhbmQ7CisKKyAgICBKU1Zh
bHVlIGdldHRlciA9IExMSU5UX09QKDQpLmpzVmFsdWUoKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlz
T2JqZWN0KCkpOwotICAgIAotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCBleGVjLT5jb2Rl
QmxvY2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpLCBhc09iamVjdChnZXR0ZXIpKTsK
KworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRp
ZmllcihwY1syXS51Lm9wZXJhbmQpLCBhc09iamVjdChnZXR0ZXIpLCBvcHRpb25zKTsKICAgICBM
TElOVF9FTkQoKTsKIH0KIApAQCAtODYwLDExICs4NjIsMTMgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3B1dF9zZXR0ZQogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgQVNTRVJUKExM
SU5UX09QKDEpLmpzVmFsdWUoKS5pc09iamVjdCgpKTsKICAgICBKU09iamVjdCogYmFzZU9iaiA9
IGFzT2JqZWN0KExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgCi0gICAgSlNWYWx1ZSBzZXR0
ZXIgPSBMTElOVF9PUCgzKS5qc1ZhbHVlKCk7CisKKyAgICB1bnNpZ25lZCBvcHRpb25zID0gcGNb
M10udS5vcGVyYW5kOworCisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBMTElOVF9PUCg0KS5qc1ZhbHVl
KCk7CiAgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpKTsKLSAgICAKLSAgICBiYXNlT2JqLT5w
dXRTZXR0ZXIoZXhlYywgZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbMl0udS5vcGVy
YW5kKSwgYXNPYmplY3Qoc2V0dGVyKSk7CisKKyAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywg
ZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbMl0udS5vcGVyYW5kKSwgYXNPYmplY3Qo
c2V0dGVyKSwgb3B0aW9ucyk7CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKQEAgLTg3Niw5ICs4ODAs
OSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlCiAgICAgCiAgICAg
R2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwotICAg
IAotICAgIEpTVmFsdWUgZ2V0dGVyID0gTExJTlRfT1AoMykuanNWYWx1ZSgpOwotICAgIEpTVmFs
dWUgc2V0dGVyID0gTExJTlRfT1AoNCkuanNWYWx1ZSgpOworCisgICAgSlNWYWx1ZSBnZXR0ZXIg
PSBMTElOVF9PUCg0KS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBMTElOVF9PUCg1
KS5qc1ZhbHVlKCk7CiAgICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1Vu
ZGVmaW5lZCgpKTsKICAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5k
ZWZpbmVkKCkpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmpl
Y3QoKSk7CkBAIC04OTAsNyArODk0LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X3B1dF9nZXR0ZQogICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKAogICAgICAgICBleGVj
LAogICAgICAgICBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQp
LAotICAgICAgICBhY2Nlc3NvciwgQWNjZXNzb3IpOworICAgICAgICBhY2Nlc3NvciwgcGNbM10u
dS5vcGVyYW5kKTsKICAgICBMTElOVF9FTkQoKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24g
MTg4NDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYyLDE5ICsxMDYyLDE5IEBAIF9sbGludF9vcF9w
dXRfYnlfaW5kZXg6CiBfbGxpbnRfb3BfcHV0X2dldHRlcl9ieV9pZDoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9ieV9p
ZCkKLSAgICBkaXNwYXRjaCg0KQorICAgIGRpc3BhdGNoKDUpCiAKIAogX2xsaW50X29wX3B1dF9z
ZXR0ZXJfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3B1dF9zZXR0ZXJfYnlfaWQpCi0gICAgZGlzcGF0Y2goNCkKKyAgICBkaXNw
YXRjaCg1KQogCiAKIF9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0
ZXIpCi0gICAgZGlzcGF0Y2goNSkKKyAgICBkaXNwYXRjaCg2KQogCiAKIF9sbGludF9vcF9qdHJ1
ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCShyZXZp
c2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNDE0LDcgKzQxNCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShwYXJzZXJBcmVuYS5p
ZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIHByb3BlcnR5TmFtZSks
IG5vZGUsIHR5cGUsIHB1dFR5cGUpOwogICAgIH0KLSAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVBy
b3BlcnR5KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2Rl
LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUs
IGJvb2wpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHByb3BlcnR5
TmFtZSwgbm9kZSwgdHlwZSwgcHV0VHlwZSk7IH0KKyAgICBQcm9wZXJ0eU5vZGUqIGNyZWF0ZVBy
b3BlcnR5KEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4cHJlc3Npb25Ob2RlKiBub2Rl
LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlIHB1dFR5cGUs
IGJvb2wsIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRl
ZCkgeyByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocHJvcGVydHlOYW1l
LCBub2RlLCB0eXBlLCBwdXRUeXBlLCBzdXBlckJpbmRpbmcpOyB9CiAgICAgUHJvcGVydHlMaXN0
Tm9kZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IFByb3BlcnR5Tm9kZSogcHJvcGVydHkpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJv
cGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHkpOyB9CiAgICAgUHJvcGVydHlMaXN0Tm9k
ZSogY3JlYXRlUHJvcGVydHlMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFBy
b3BlcnR5Tm9kZSogcHJvcGVydHksIFByb3BlcnR5TGlzdE5vZGUqIHRhaWwpIHsgcmV0dXJuIG5l
dyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlMaXN0Tm9kZShsb2NhdGlvbiwgcHJvcGVydHksIHRh
aWwpOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDEyICsyMzEs
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAotICAgIGlubGluZSBQcm9wZXJ0
eU5vZGU6OlByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogbmFtZSwgRXhwcmVzc2lvbk5vZGUq
IGFzc2lnbiwgVHlwZSB0eXBlLCBQdXRUeXBlIHB1dFR5cGUpCisgICAgaW5saW5lIFByb3BlcnR5
Tm9kZTo6UHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNzaW9uTm9kZSog
YXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSwgU3VwZXJCaW5kaW5nIHN1cGVyQmlu
ZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQogICAgICAgICA6IG1fbmFtZSgwKQogICAg
ICAgICAsIG1fZXhwcmVzc2lvbihuYW1lKQogICAgICAgICAsIG1fYXNzaWduKGFzc2lnbikKICAg
ICAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX25lZWRzU3VwZXJCaW5kaW5nKGZhbHNl
KQorICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmcoc3VwZXJCaW5kaW5nID09IFN1cGVyQmlu
ZGluZzo6TmVlZGVkKQogICAgICAgICAsIG1fcHV0VHlwZShwdXRUeXBlKQogICAgIHsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCShyZXZpc2lvbiAxODg0ODIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYxNCw3ICs2MTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZW51bSBQdXRUeXBl
IHsgVW5rbm93biwgS25vd25EaXJlY3QgfTsKIAogICAgICAgICBQcm9wZXJ0eU5vZGUoY29uc3Qg
SWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSwgU3VwZXJCaW5kaW5n
KTsKLSAgICAgICAgUHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBwcm9wZXJ0eU5hbWUsIEV4
cHJlc3Npb25Ob2RlKiwgVHlwZSwgUHV0VHlwZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZShFeHBy
ZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUs
IFN1cGVyQmluZGluZyk7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb25OYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uOyB9CiAgICAgICAgIGNvbnN0IElkZW50aWZp
ZXIqIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE4ODQ4MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk2MSw3ICsx
OTYxLDggQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeAogCiAgICAg
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGEgd2F5IHRvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHBh
cnNlUHJvcGVydHkuCiAgICAgICAgIGNvbnN0IENvbW1vbklkZW50aWZpZXJzJiBwcm9wZXJ0eU5h
bWVzID0gKm1fdm0tPnByb3BlcnR5TmFtZXM7Ci0gICAgICAgIGNvbnN0IElkZW50aWZpZXIqIGlk
ZW50ID0gbnVsbHB0cjsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSAmcHJvcGVy
dHlOYW1lcy5udWxsSWRlbnRpZmllcjsKKyAgICAgICAgVHJlZUV4cHJlc3Npb24gY29tcHV0ZWRQ
cm9wZXJ0eU5hbWUgPSAwOwogICAgICAgICBib29sIGlzR2V0dGVyID0gZmFsc2U7CiAgICAgICAg
IGJvb2wgaXNTZXR0ZXIgPSBmYWxzZTsKICAgICAgICAgc3dpdGNoIChtX3Rva2VuLm1fdHlwZSkg
ewpAQCAtMTk4NSw2ICsxOTg2LDEyIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZUNsYXNzRXgKICAgICAgICAgICAgIEFTU0VSVChpZGVudCk7CiAgICAgICAgICAgICBuZXh0KCk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPUEVOQlJBQ0tFVDoKKyAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgICAgIGNvbXB1dGVkUHJvcGVydHlOYW1lID0gcGFyc2VBc3Np
Z25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNlKGNvbXB1
dGVkUHJvcGVydHlOYW1lLCAiQ2Fubm90IHBhcnNlIGNvbXB1dGVkIHByb3BlcnR5IG5hbWUiKTsK
KyAgICAgICAgICAgIGhhbmRsZVByb2R1Y3Rpb25PckZhaWwoQ0xPU0VCUkFDS0VULCAiXSIsICJl
bmQiLCAiY29tcHV0ZWQgcHJvcGVydHkgbmFtZSIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsKICAg
ICAgICAgfQpAQCAtMTk5OSw3ICsyMDA2LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlQ2xhc3NFeAogICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVy
PiBtZXRob2RJbmZvOwogICAgICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdG9yID0gIWlzU3RhdGlj
TWV0aG9kICYmICppZGVudCA9PSBwcm9wZXJ0eU5hbWVzLmNvbnN0cnVjdG9yOwogICAgICAgICAg
ICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1
aXJlbWVudHMsIFNvdXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZSwgZmFsc2UsIGlzQ29uc3RydWN0
b3IgPyBjb25zdHJ1Y3RvcktpbmQgOiBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGlu
Zzo6TmVlZGVkLCBtZXRob2RTdGFydCwgbWV0aG9kSW5mbywgU3RhbmRhcmRGdW5jdGlvblBhcnNl
VHlwZSkpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7Ci0gICAgICAgICAgICBmYWlsSWZU
cnVlKCFpZGVudCB8fCAoZGVjbGFyZVZhcmlhYmxlKGlkZW50KSAmIERlY2xhcmF0aW9uUmVzdWx0
OjpJbnZhbGlkU3RyaWN0TW9kZSksICJDYW5ub3QgZGVjbGFyZSBhIG1ldGhvZCBuYW1lZCAnIiwg
bWV0aG9kSW5mby5uYW1lLT5pbXBsKCksICInIik7CisgICAgICAgICAgICBmYWlsSWZUcnVlKCFj
b21wdXRlZFByb3BlcnR5TmFtZSAmJiAoZGVjbGFyZVZhcmlhYmxlKGlkZW50KSAmIERlY2xhcmF0
aW9uUmVzdWx0OjpJbnZhbGlkU3RyaWN0TW9kZSksICJDYW5ub3QgZGVjbGFyZSBhIG1ldGhvZCBu
YW1lZCAnIiwgbWV0aG9kSW5mby5uYW1lLT5pbXBsKCksICInIik7CiAgICAgICAgICAgICBtZXRo
b2RJbmZvLm5hbWUgPSBpc0NvbnN0cnVjdG9yID8gY2xhc3NOYW1lIDogaWRlbnQ7CiAKICAgICAg
ICAgICAgIFRyZWVFeHByZXNzaW9uIG1ldGhvZCA9IGNvbnRleHQuY3JlYXRlRnVuY3Rpb25FeHBy
KG1ldGhvZExvY2F0aW9uLCBtZXRob2RJbmZvKTsKQEAgLTIwMTIsNyArMjAxOSwxMSBAQCB0ZW1w
bGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4CiAgICAgICAgICAgICAvLyBGSVhN
RTogU3ludGF4IGVycm9yIHdoZW4gc3VwZXIoKSBpcyBjYWxsZWQKICAgICAgICAgICAgIHNlbWFu
dGljRmFpbElmVHJ1ZShpc1N0YXRpY01ldGhvZCAmJiBtZXRob2RJbmZvLm5hbWUgJiYgKm1ldGhv
ZEluZm8ubmFtZSA9PSBwcm9wZXJ0eU5hbWVzLnByb3RvdHlwZSwKICAgICAgICAgICAgICAgICAi
Q2Fubm90IGRlY2xhcmUgYSBzdGF0aWMgbWV0aG9kIG5hbWVkICdwcm90b3R5cGUnIik7Ci0gICAg
ICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHkobWV0aG9kSW5mby5uYW1l
LCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFByb3BlcnR5Tm9kZTo6VW5rbm93biwg
YWx3YXlzU3RyaWN0SW5zaWRlQ2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKKyAgICAgICAg
ICAgIGlmIChjb21wdXRlZFByb3BlcnR5TmFtZSkgeworICAgICAgICAgICAgICAgIHByb3BlcnR5
ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShjb21wdXRlZFByb3BlcnR5TmFtZSwgbWV0aG9kLCBz
dGF0aWNfY2FzdDxQcm9wZXJ0eU5vZGU6OlR5cGU+KFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQgfCBQ
cm9wZXJ0eU5vZGU6OkNvbXB1dGVkKSwKKyAgICAgICAgICAgICAgICAgICAgUHJvcGVydHlOb2Rl
OjpVbmtub3duLCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0
LmNyZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNv
bnN0YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBT
dXBlckJpbmRpbmc6Ok5lZWRlZCk7CiAgICAgICAgIH0KIAogICAgICAgICBUcmVlUHJvcGVydHlM
aXN0JiB0YWlsID0gaXNTdGF0aWNNZXRob2QgPyBzdGF0aWNNZXRob2RzVGFpbCA6IGluc3RhbmNl
TWV0aG9kc1RhaWw7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENo
ZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRh
eENoZWNrZXIuaAkocmV2aXNpb24gMTg4NDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9TeW50YXhDaGVja2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7CiAgICAgICAgIHJldHVy
biBQcm9wZXJ0eSgmcGFyc2VyQXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVu
dGlmaWVyKHZtLCBuYW1lKSwgdHlwZSk7CiAgICAgfQotICAgIFByb3BlcnR5IGNyZWF0ZVByb3Bl
cnR5KGludCwgaW50LCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRU
eXBlLCBib29sKQorICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGludCwgaW50LCBQcm9wZXJ0
eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sLCBTdXBlckJpbmRp
bmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9w
ZXJ0eSh0eXBlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCShyZXZpc2lvbiAxODg0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOTgsMjEgKzExOTgsMzEg
QEAgYm9vbCBKU09iamVjdDo6YWxsb3dzQWNjZXNzRnJvbShFeGVjU3RhdAogICAgIHJldHVybiBn
bG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPmFsbG93c0FjY2Vzc0Zyb20o
Z2xvYmFsT2JqZWN0LCBleGVjKTsKIH0KIAotdm9pZCBKU09iamVjdDo6cHV0R2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSBnZXR0ZXIpCit2
b2lkIEpTT2JqZWN0OjpwdXRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIGdldHRlciwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBQ
cm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAgICBkZXNjcmlwdG9yLnNldEdldHRlcihn
ZXR0ZXIpOwotICAgIGRlc2NyaXB0b3Iuc2V0RW51bWVyYWJsZSh0cnVlKTsKLSAgICBkZXNjcmlw
dG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKKworICAgIEFTU0VSVChhdHRyaWJ1dGVzICYgQWNj
ZXNzb3IpOworICAgIGlmICghKGF0dHJpYnV0ZXMgJiBSZWFkT25seSkpCisgICAgICAgIGRlc2Ny
aXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOworICAgIGlmICghKGF0dHJpYnV0ZXMgJiBEb250
RW51bSkpCisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RW51bWVyYWJsZSh0cnVlKTsKKwogICAgIGRl
ZmluZU93blByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgZmFs
c2UpOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXRTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHNldHRlcikKK3ZvaWQgSlNPYmplY3Q6OnB1
dFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgc2V0dGVyLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIFByb3BlcnR5RGVzY3JpcHRv
ciBkZXNjcmlwdG9yOwogICAgIGRlc2NyaXB0b3Iuc2V0U2V0dGVyKHNldHRlcik7Ci0gICAgZGVz
Y3JpcHRvci5zZXRFbnVtZXJhYmxlKHRydWUpOwotICAgIGRlc2NyaXB0b3Iuc2V0Q29uZmlndXJh
YmxlKHRydWUpOworCisgICAgQVNTRVJUKGF0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7CisgICAgaWYg
KCEoYXR0cmlidXRlcyAmIFJlYWRPbmx5KSkKKyAgICAgICAgZGVzY3JpcHRvci5zZXRDb25maWd1
cmFibGUodHJ1ZSk7CisgICAgaWYgKCEoYXR0cmlidXRlcyAmIERvbnRFbnVtKSkKKyAgICAgICAg
ZGVzY3JpcHRvci5zZXRFbnVtZXJhYmxlKHRydWUpOworCiAgICAgZGVmaW5lT3duUHJvcGVydHko
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBmYWxzZSk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkocmV2aXNpb24gMTg4NDgy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNDY3LDggKzQ2Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1dERpcmVjdEFjY2Vz
c29yKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRl
cyk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBwdXREaXJlY3RDdXN0b21BY2Nlc3NvcihW
TSYsIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAKLSAgICB2
b2lkIHB1dEdldHRlcihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwotICAgIHZv
aWQgcHV0U2V0dGVyKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgdm9p
ZCBwdXRHZXR0ZXIoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKKyAgICB2b2lkIHB1dFNldHRlcihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBoYXNQcm9wZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgIEpT
X0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lKSBjb25zdDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4ODQ4MikKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA4LTEz
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEVTNiBjbGFzcyBz
eW50YXggc2hvdWxkIGFsbG93IGNvbXB1dGVkIG5hbWUgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBjb21w
dXRlZCBtZXRob2QgbmFtZXMuCisKKyAgICAgICAgKiBqcy9jbGFzcy1zeW50YXgtbWV0aG9kLW5h
bWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4
LW1ldGhvZC1uYW1lcy5qczoKKwogMjAxNS0wOC0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBGcmVxdWVudCBhc3NlcnRpb25zIG9uIGFuaW1hdGlvbnMv
cmVzdGFydC1hZnRlci1zY3JvbGwuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3lu
dGF4LW1ldGhvZC1uYW1lcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvY2xhc3Mtc3ludGF4LW1ldGhvZC1uYW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4ODQ4
MikKKysrIExheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCBUZXN0cyBmb3IgdmFyaW91cyBtZXRo
b2QgbmFtZXMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitJbnN0YW5jZSBtZXRob2Rz
CiBQQVNTIGNsYXNzIEEgeyAwLjEoKSB7IHJldHVybiAxOyB9IH07IChuZXcgQSlbMC4xXSgpIGlz
IDEKIFBBU1MgY2xhc3MgQSB7IGdldCgpIHsgcmV0dXJuIDI7IH0gfTsgKG5ldyBBKS5nZXQoKSBp
cyAyCiBQQVNTIGNsYXNzIEEgeyBzZXQoKSB7IHJldHVybiAzOyB9IH07IChuZXcgQSkuc2V0KCkg
aXMgMwpAQCAtMTAsNiArMTEsOCBAQCBQQVNTIGNsYXNzIEEgeyBnZXQgZ2V0KCkgeyByZXR1cm4g
NDsgfSB9CiBQQVNTIGNsYXNzIEEgeyBnZXQgc2V0KCkgeyByZXR1cm4gNTsgfSB9OyAobmV3IEEp
LnNldCBpcyA1CiBQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc2V0IGdl
dCh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyAobmV3IEEpLmdldCA9IDY7IHNldHRlclZhbHVl
IGlzIDYKIFBBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzZXQgc2V0KHgp
IHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IChuZXcgQSkuc2V0ID0gNzsgc2V0dGVyVmFsdWUgaXMg
NworCitTdGF0aWMgbWV0aG9kcwogUEFTUyBjbGFzcyBBIHsgc3RhdGljIDAuMSgpIHsgcmV0dXJu
IDEwMTsgfSB9OyBBWzAuMV0oKSBpcyAxMDEKIFBBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQoKSB7
IHJldHVybiAxMDI7IH0gfTsgQS5nZXQoKSBpcyAxMDIKIFBBU1MgY2xhc3MgQSB7IHN0YXRpYyBz
ZXQoKSB7IHJldHVybiAxMDM7IH0gfTsgQS5zZXQoKSBpcyAxMDMKQEAgLTE3LDYgKzIwLDY2IEBA
IFBBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZ2V0KCkgeyByZXR1cm4KIFBBU1MgY2xhc3MgQSB7
IHN0YXRpYyBnZXQgc2V0KCkgeyByZXR1cm4gMTA1OyB9IH07IEEuc2V0IGlzIDEwNQogUEFTUyBz
ZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRpYyBzZXQgZ2V0KHgpIHsgc2V0
dGVyVmFsdWUgPSB4OyB9IH07IEEuZ2V0ID0gMTA2OyBzZXR0ZXJWYWx1ZSBpcyAxMDYKIFBBU1Mg
c2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMgc2V0IHNldCh4KSB7IHNl
dHRlclZhbHVlID0geDsgfSB9OyBBLnNldCA9IDEwNzsgc2V0dGVyVmFsdWUgaXMgMTA3CisKK0lu
c3RhbmNlIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcworUEFTUyBjbGFzcyBBIHsgWydhJyAr
ICdiJ10oKSB7IHJldHVybiAyMTE7IH0gfTsgKG5ldyBBKS5hYigpIGlzIDIxMQorUEFTUyBjbGFz
cyBBIHsgWydhJyArIDBdKCkgeyByZXR1cm4gMjEyOyB9IH07IChuZXcgQSkuYTAoKSBpcyAyMTIK
K1BBU1MgY2xhc3MgQSB7IFswLjFdKCkgeyByZXR1cm4gMjEzOyB9IH07IChuZXcgQSlbMC4xXSgp
IGlzIDIxMworUEFTUyBjbGFzcyBBIHsgWzFdKCkgeyByZXR1cm4gMjE0OyB9IH07IChuZXcgQSlb
MV0oKSBpcyAyMTQKK1BBU1MgQSA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdmb28n
LCAyMTUpOyAobmV3IEEpWydmb28nXSgpIGlzIDIxNQorUEFTUyBBID0gY3JlYXRlQ2xhc3NXaXRo
SW5zdGFuY2VNZXRob2QoJ2ZvbycsIDIxNik7IEIgPSBjcmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1l
dGhvZCgnYmFyJywgMjE3KTsgWyhuZXcgQSlbJ2ZvbyddKCksIChuZXcgQilbJ2JhciddKCldIGlz
IFsyMTYsIDIxN10KKworU3RhdGljIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcworUEFTUyBj
bGFzcyBBIHsgc3RhdGljIFsnYScgKyAnYiddKCkgeyByZXR1cm4gMzExOyB9IH07IEEuYWIoKSBp
cyAzMTEKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBbJ2EnICsgMF0oKSB7IHJldHVybiAzMTI7IH0g
fTsgQS5hMCgpIGlzIDMxMgorUEFTUyBjbGFzcyBBIHsgc3RhdGljIFswLjFdKCkgeyByZXR1cm4g
MzEzOyB9IH07IEFbMC4xXSgpIGlzIDMxMworUEFTUyBjbGFzcyBBIHsgc3RhdGljIFsxXSgpIHsg
cmV0dXJuIDMxNDsgfSB9OyBBWzFdKCkgaXMgMzE0CitQQVNTIEEgPSBjcmVhdGVDbGFzc1dpdGhT
dGF0aWNNZXRob2QoJ2ZvbycsIDMxNSk7IEFbJ2ZvbyddKCkgaXMgMzE1CitQQVNTIEEgPSBjcmVh
dGVDbGFzc1dpdGhTdGF0aWNNZXRob2QoJ2ZvbycsIDMxNik7IEIgPSBjcmVhdGVDbGFzc1dpdGhT
dGF0aWNNZXRob2QoJ2JhcicsIDMxNyk7IFtBWydmb28nXSgpLCBCWydiYXInXSgpXSBpcyBbMzE2
LCAzMTddCisKK0luc3RhbmNlIG1ldGhvZHMgd2l0aCBkdXBsaWNhdGVkIG5hbWVzCitQQVNTIGNs
YXNzIEEgeyBhYigpIHsgcmV0dXJuIDQwMSB9IGFiKCkgeyByZXR1cm4gNDAyOyB9IH07IChuZXcg
QSkuYWIoKSBpcyA0MDIKK1BBU1MgY2xhc3MgQSB7ICdhJygpIHsgcmV0dXJuIDQwMyB9ICdhJygp
IHsgcmV0dXJuIDQwNDsgfSB9OyAobmV3IEEpLmEoKSBpcyA0MDQKK1BBU1MgY2xhc3MgQSB7IDEo
KSB7IHJldHVybiA0MDUgfSAxKCkgeyByZXR1cm4gNDA2OyB9IH07IChuZXcgQSlbMV0oKSBpcyA0
MDYKK1BBU1MgY2xhc3MgQSB7IDAuMSgpIHsgcmV0dXJuIDQwNyB9IDAuMSgpIHsgcmV0dXJuIDQw
ODsgfSB9OyAobmV3IEEpWzAuMV0oKSBpcyA0MDgKK1BBU1MgY2xhc3MgQSB7IGFiKCkgeyByZXR1
cm4gNDA5IH0gWydhJyArICdiJ10oKSB7IHJldHVybiA0MTA7IH0gfTsgKG5ldyBBKS5hYigpIGlz
IDQxMAorUEFTUyBjbGFzcyBBIHsgWydhYiddKCkgeyByZXR1cm4gNDExIH0gYWIoKSB7IHJldHVy
biA0MTI7IH0gfTsgKG5ldyBBKS5hYigpIGlzIDQxMgorUEFTUyBjbGFzcyBBIHsgYSgpIHsgcmV0
dXJuIDQxMyB9IFsnYSddKCkgeyByZXR1cm4gNDE0OyB9IGEoKSB7IHJldHVybiA0MTU7IH0gfTsg
KG5ldyBBKS5hKCkgaXMgNDE1CitQQVNTIGNsYXNzIEEgeyBbJ2InXSgpIHsgcmV0dXJuIDQxNiB9
IGIoKSB7IHJldHVybiA0MTc7IH0gWydiJ10oKSB7IHJldHVybiA0MTg7IH0gfTsgKG5ldyBBKS5i
KCkgaXMgNDE4CitQQVNTIGNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDE5IH0gZ2V0IGEoKSB7IHJl
dHVybiA0MjA7IH0gfTsgKG5ldyBBKS5hIGlzIDQyMAorUEFTUyBjbGFzcyBBIHsgZ2V0IGEoKSB7
IHJldHVybiA0MjEgfSBhKCkgeyByZXR1cm4gNDIyIH0gfTsgKG5ldyBBKS5hKCkgaXMgNDIyCitQ
QVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgYSgpIHsgcmV0dXJuIDQyMyB9
IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0gfTsgKG5ldyBBKS5hID0gNDI0OyBzZXR0ZXJW
YWx1ZSBpcyA0MjQKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzZXQg
YSh4KSB7IHNldHRlclZhbHVlID0geCB9IGEoKSB7IHJldHVybiA0MjUgfSB9OyAobmV3IEEpLmEo
KSBpcyA0MjUKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBnZXQgZm9v
KCkgeyByZXR1cm4gNDI2IH0gc2V0IGZvbyh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBhID0g
bmV3IEE7IGEuZm9vID0gYS5mb287IHNldHRlclZhbHVlIGlzIDQyNgorUEFTUyBjbGFzcyBBIHsg
Z2V0IGZvbygpIHsgfSBmb28oKSB7IH0gc2V0IGZvbyh4KSB7IH0gfTsgdmFsdWVUeXBlcygobmV3
IEEpLl9fcHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgc2V0IGZv
byh4KSB7IH0gZm9vKCkgeyB9IGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEpLl9f
cHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgZm9vKCkgeyB9IGdl
dCBmb28oKSB7IH0gc2V0IGZvbyh4KSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9f
XywgJ2ZvbycpIGlzIFsnZ2V0JywgJ3NldCddCitQQVNTIGNsYXNzIEEgeyBmb28oKSB7IH0gc2V0
IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19f
LCAnZm9vJykgaXMgWydnZXQnLCAnc2V0J10KK1BBU1MgY2xhc3MgQSB7IGdldCBmb28oKSB7IH0g
c2V0IGZvbyh4KSB7IH0gZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18s
ICdmb28nKSBpcyBbJ3ZhbHVlJ10KK1BBU1MgY2xhc3MgQSB7IHNldCBmb28oeCkgeyB9IGdldCBm
b28oKSB7IH0gZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28n
KSBpcyBbJ3ZhbHVlJ10KKworU3RhdGljIG1ldGhvZHMgd2l0aCBkdXBsaWNhdGVkIG5hbWVzCitQ
QVNTIGNsYXNzIEEgeyBzdGF0aWMgYWIoKSB7IHJldHVybiA1MDEgfSBzdGF0aWMgYWIoKSB7IHJl
dHVybiA1MDI7IH0gfTsgQS5hYigpIGlzIDUwMgorUEFTUyBjbGFzcyBBIHsgc3RhdGljICdhJygp
IHsgcmV0dXJuIDUwMyB9IHN0YXRpYyAnYScoKSB7IHJldHVybiA1MDQ7IH0gfTsgQS5hKCkgaXMg
NTA0CitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgMSgpIHsgcmV0dXJuIDUwNSB9IHN0YXRpYyAxKCkg
eyByZXR1cm4gNTA2OyB9IH07IEFbMV0oKSBpcyA1MDYKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyAw
LjEoKSB7IHJldHVybiA1MDcgfSBzdGF0aWMgMC4xKCkgeyByZXR1cm4gNTA4OyB9IH07IEFbMC4x
XSgpIGlzIDUwOAorUEFTUyBjbGFzcyBBIHsgc3RhdGljIGFiKCkgeyByZXR1cm4gNTA5IH0gc3Rh
dGljIFsnYScgKyAnYiddKCkgeyByZXR1cm4gNTEwOyB9IH07IEEuYWIoKSBpcyA1MTAKK1BBU1Mg
Y2xhc3MgQSB7IHN0YXRpYyBbJ2FiJ10oKSB7IHJldHVybiA1MTEgfSBzdGF0aWMgYWIoKSB7IHJl
dHVybiA1MTI7IH0gfTsgQS5hYigpIGlzIDUxMgorUEFTUyBjbGFzcyBBIHsgc3RhdGljIGEoKSB7
IHJldHVybiA1MTMgfSBzdGF0aWMgWydhJ10oKSB7IHJldHVybiA1MTQ7IH0gc3RhdGljIGEoKSB7
IHJldHVybiA1MTU7IH0gfTsgQS5hKCkgaXMgNTE1CitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgWydi
J10oKSB7IHJldHVybiA1MTYgfSBzdGF0aWMgYigpIHsgcmV0dXJuIDUxNzsgfSBzdGF0aWMgWydi
J10oKSB7IHJldHVybiA1MTg7IH0gfTsgQS5iKCkgaXMgNTE4CitQQVNTIGNsYXNzIEEgeyBzdGF0
aWMgYSgpIHsgcmV0dXJuIDUxOSB9IHN0YXRpYyBnZXQgYSgpIHsgcmV0dXJuIDUyMDsgfSB9OyBB
LmEgaXMgNTIwCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgZ2V0IGEoKSB7IHJldHVybiA1MjEgfSBz
dGF0aWMgYSgpIHsgcmV0dXJuIDUyMiB9IH07IEEuYSgpIGlzIDUyMgorUEFTUyBzZXR0ZXJWYWx1
ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRpYyBhKCkgeyByZXR1cm4gNTIzIH0gc3RhdGlj
IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0gfTsgQS5hID0gNTI0OyBzZXR0ZXJWYWx1ZSBp
cyA1MjQKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMgc2V0
IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9IHggfSBzdGF0aWMgYSgpIHsgcmV0dXJuIDUyNSB9IH07IEEu
YSgpIGlzIDUyNQorUEFTUyBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRp
YyBnZXQgZm9vKCkgeyByZXR1cm4gNTI2IH0gc3RhdGljIHNldCBmb28oeCkgeyBzZXR0ZXJWYWx1
ZSA9IHg7IH0gfTsgQS5mb28gPSBBLmZvbzsgc2V0dGVyVmFsdWUgaXMgNTI2CitQQVNTIGNsYXNz
IEEgeyBzdGF0aWMgZ2V0IGZvbygpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9v
KHgpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28nKSBpcyBbJ3ZhbHVlJ10KK1BBU1MgY2xhc3Mg
QSB7IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBnZXQgZm9v
KCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBB
IHsgc3RhdGljIGZvbygpIHsgfSBzdGF0aWMgZ2V0IGZvbygpIHsgfSBzdGF0aWMgc2V0IGZvbyh4
KSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAnZm9vJykgaXMgWydnZXQnLCAnc2V0J10KK1BBU1MgY2xh
c3MgQSB7IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIHNldCBmb28oeCkgeyB9IHN0YXRpYyBnZXQg
Zm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIGlzIFsnZ2V0JywgJ3NldCddCitQQVNT
IGNsYXNzIEEgeyBzdGF0aWMgZ2V0IGZvbygpIHsgfSBzdGF0aWMgc2V0IGZvbyh4KSB7IH0gc3Rh
dGljIGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28nKSBpcyBbJ3ZhbHVlJ10KK1BBU1Mg
Y2xhc3MgQSB7IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZ2V0IGZvbygpIHsgfSBzdGF0
aWMgZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIGlzIFsndmFsdWUnXQorCitTdGF0
aWMgbWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMuanMJKHJldmlzaW9u
IDE4ODQ4MikKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtbWV0
aG9kLW5hbWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogZGVzY3JpcHRpb24o
J1Rlc3RzIGZvciB2YXJpb3VzIG1ldGhvZCBuYW1lcycpOwogCitkZWJ1ZygnSW5zdGFuY2UgbWV0
aG9kcycpOwogc2hvdWxkQmUoImNsYXNzIEEgeyAwLjEoKSB7IHJldHVybiAxOyB9IH07IChuZXcg
QSlbMC4xXSgpIiwgIjEiKTsKIHNob3VsZEJlKCJjbGFzcyBBIHsgZ2V0KCkgeyByZXR1cm4gMjsg
fSB9OyAobmV3IEEpLmdldCgpIiwgIjIiKTsKIHNob3VsZEJlKCJjbGFzcyBBIHsgc2V0KCkgeyBy
ZXR1cm4gMzsgfSB9OyAobmV3IEEpLnNldCgpIiwgIjMiKTsKQEAgLTgsNiArOSw4IEBAIHNob3Vs
ZEJlKCJjbGFzcyBBIHsgZ2V0IHNldCgpIHsgcmV0dXJuIDUKIHNob3VsZEJlKCJzZXR0ZXJWYWx1
ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBnZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0g
fTsgKG5ldyBBKS5nZXQgPSA2OyBzZXR0ZXJWYWx1ZSIsICI2Iik7CiBzaG91bGRCZSgic2V0dGVy
VmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzZXQgc2V0KHgpIHsgc2V0dGVyVmFsdWUgPSB4
OyB9IH07IChuZXcgQSkuc2V0ID0gNzsgc2V0dGVyVmFsdWUiLCAiNyIpOwogCitkZWJ1ZygnJyk7
CitkZWJ1ZygnU3RhdGljIG1ldGhvZHMnKTsKIHNob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIDAu
MSgpIHsgcmV0dXJuIDEwMTsgfSB9OyBBWzAuMV0oKSIsICIxMDEiKTsKIHNob3VsZEJlKCJjbGFz
cyBBIHsgc3RhdGljIGdldCgpIHsgcmV0dXJuIDEwMjsgfSB9OyBBLmdldCgpIiwgIjEwMiIpOwog
c2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgc2V0KCkgeyByZXR1cm4gMTAzOyB9IH07IEEuc2V0
KCkiLCAiMTAzIik7CkBAIC0xNSwzICsxOCw3NCBAQCBzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRp
YyBnZXQgZ2V0KCkgeyByCiBzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBnZXQgc2V0KCkgeyBy
ZXR1cm4gMTA1OyB9IH07IEEuc2V0IiwgIjEwNSIpOwogc2hvdWxkQmUoInNldHRlclZhbHVlID0g
dW5kZWZpbmVkOyBjbGFzcyBBIHsgc3RhdGljIHNldCBnZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7
IH0gfTsgQS5nZXQgPSAxMDY7IHNldHRlclZhbHVlIiwgIjEwNiIpOwogc2hvdWxkQmUoInNldHRl
clZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3RhdGljIHNldCBzZXQoeCkgeyBzZXR0ZXJW
YWx1ZSA9IHg7IH0gfTsgQS5zZXQgPSAxMDc7IHNldHRlclZhbHVlIiwgIjEwNyIpOworCitkZWJ1
ZygnJyk7CitkZWJ1ZygnSW5zdGFuY2UgbWV0aG9kcyB3aXRoIGNvbXB1dGVkIG5hbWVzJyk7Citz
aG91bGRCZSgiY2xhc3MgQSB7IFsnYScgKyAnYiddKCkgeyByZXR1cm4gMjExOyB9IH07IChuZXcg
QSkuYWIoKSIsICIyMTEiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWydhJyArIDBdKCkgeyByZXR1
cm4gMjEyOyB9IH07IChuZXcgQSkuYTAoKSIsICIyMTIiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsg
WzAuMV0oKSB7IHJldHVybiAyMTM7IH0gfTsgKG5ldyBBKVswLjFdKCkiLCAiMjEzIik7CitzaG91
bGRCZSgiY2xhc3MgQSB7IFsxXSgpIHsgcmV0dXJuIDIxNDsgfSB9OyAobmV3IEEpWzFdKCkiLCAi
MjE0Iik7CitmdW5jdGlvbiBjcmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1ldGhvZChuYW1lLCB2YWx1
ZSkgeyByZXR1cm4gY2xhc3MgeyBbbmFtZV0oKSB7IHJldHVybiB2YWx1ZTsgfSB9IH07CitzaG91
bGRCZSgiQSA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdmb28nLCAyMTUpOyAobmV3
IEEpWydmb28nXSgpIiwgIjIxNSIpOworc2hvdWxkQmUoIkEgPSBjcmVhdGVDbGFzc1dpdGhJbnN0
YW5jZU1ldGhvZCgnZm9vJywgMjE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9k
KCdiYXInLCAyMTcpOyBbKG5ldyBBKVsnZm9vJ10oKSwgKG5ldyBCKVsnYmFyJ10oKV0iLCAiWzIx
NiwgMjE3XSIpOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnU3RhdGljIG1ldGhvZHMgd2l0aCBjb21w
dXRlZCBuYW1lcycpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWydhJyArICdiJ10oKSB7
IHJldHVybiAzMTE7IH0gfTsgQS5hYigpIiwgIjMxMSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBz
dGF0aWMgWydhJyArIDBdKCkgeyByZXR1cm4gMzEyOyB9IH07IEEuYTAoKSIsICIzMTIiKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIFswLjFdKCkgeyByZXR1cm4gMzEzOyB9IH07IEFbMC4x
XSgpIiwgIjMxMyIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWzFdKCkgeyByZXR1cm4g
MzE0OyB9IH07IEFbMV0oKSIsICIzMTQiKTsKK2Z1bmN0aW9uIGNyZWF0ZUNsYXNzV2l0aFN0YXRp
Y01ldGhvZChuYW1lLCB2YWx1ZSkgeyByZXR1cm4gY2xhc3MgeyBzdGF0aWMgW25hbWVdKCkgeyBy
ZXR1cm4gdmFsdWU7IH0gfSB9Oworc2hvdWxkQmUoIkEgPSBjcmVhdGVDbGFzc1dpdGhTdGF0aWNN
ZXRob2QoJ2ZvbycsIDMxNSk7IEFbJ2ZvbyddKCkiLCAiMzE1Iik7CitzaG91bGRCZSgiQSA9IGNy
ZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnZm9vJywgMzE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0
aFN0YXRpY01ldGhvZCgnYmFyJywgMzE3KTsgW0FbJ2ZvbyddKCksIEJbJ2JhciddKCldIiwgIlsz
MTYsIDMxN10iKTsKKworZGVidWcoJycpOworZGVidWcoJ0luc3RhbmNlIG1ldGhvZHMgd2l0aCBk
dXBsaWNhdGVkIG5hbWVzJyk7CitzaG91bGRCZSgiY2xhc3MgQSB7IGFiKCkgeyByZXR1cm4gNDAx
IH0gYWIoKSB7IHJldHVybiA0MDI7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjQwMiIpOworc2hvdWxk
QmUoImNsYXNzIEEgeyAnYScoKSB7IHJldHVybiA0MDMgfSAnYScoKSB7IHJldHVybiA0MDQ7IH0g
fTsgKG5ldyBBKS5hKCkiLCAiNDA0Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IDEoKSB7IHJldHVy
biA0MDUgfSAxKCkgeyByZXR1cm4gNDA2OyB9IH07IChuZXcgQSlbMV0oKSIsICI0MDYiKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgMC4xKCkgeyByZXR1cm4gNDA3IH0gMC4xKCkgeyByZXR1cm4gNDA4
OyB9IH07IChuZXcgQSlbMC4xXSgpIiwgIjQwOCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBhYigp
IHsgcmV0dXJuIDQwOSB9IFsnYScgKyAnYiddKCkgeyByZXR1cm4gNDEwOyB9IH07IChuZXcgQSku
YWIoKSIsICI0MTAiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWydhYiddKCkgeyByZXR1cm4gNDEx
IH0gYWIoKSB7IHJldHVybiA0MTI7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjQxMiIpOworc2hvdWxk
QmUoImNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDEzIH0gWydhJ10oKSB7IHJldHVybiA0MTQ7IH0g
YSgpIHsgcmV0dXJuIDQxNTsgfSB9OyAobmV3IEEpLmEoKSIsICI0MTUiKTsKK3Nob3VsZEJlKCJj
bGFzcyBBIHsgWydiJ10oKSB7IHJldHVybiA0MTYgfSBiKCkgeyByZXR1cm4gNDE3OyB9IFsnYidd
KCkgeyByZXR1cm4gNDE4OyB9IH07IChuZXcgQSkuYigpIiwgIjQxOCIpOworc2hvdWxkQmUoImNs
YXNzIEEgeyBhKCkgeyByZXR1cm4gNDE5IH0gZ2V0IGEoKSB7IHJldHVybiA0MjA7IH0gfTsgKG5l
dyBBKS5hIiwgIjQyMCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBnZXQgYSgpIHsgcmV0dXJuIDQy
MSB9IGEoKSB7IHJldHVybiA0MjIgfSB9OyAobmV3IEEpLmEoKSIsICI0MjIiKTsKK3Nob3VsZEJl
KCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IGEoKSB7IHJldHVybiA0MjMgfSBz
ZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9IH07IChuZXcgQSkuYSA9IDQyNDsgc2V0dGVyVmFs
dWUiLCAiNDI0Iik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEg
eyBzZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9IGEoKSB7IHJldHVybiA0MjUgfSB9OyAobmV3
IEEpLmEoKSIsICI0MjUiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xh
c3MgQSB7IGdldCBmb28oKSB7IHJldHVybiA0MjYgfSBzZXQgZm9vKHgpIHsgc2V0dGVyVmFsdWUg
PSB4OyB9IH07IGEgPSBuZXcgQTsgYS5mb28gPSBhLmZvbzsgc2V0dGVyVmFsdWUiLCAiNDI2Iik7
CitmdW5jdGlvbiB2YWx1ZVR5cGVzKG9iamVjdCwgcHJvZXBydHlOYW1lKSB7CisgICAgZGVzY3Jp
cHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9lcHJ0eU5h
bWUpOworICAgIHJldHVybiBbJ3ZhbHVlJywgJ2dldCcsICdzZXQnXS5maWx0ZXIoZnVuY3Rpb24g
KG5hbWUpIHsgcmV0dXJuIG5hbWUgaW4gZGVzY3JpcHRvcjsgfSk7Cit9CitzaG91bGRCZSgiY2xh
c3MgQSB7IGdldCBmb28oKSB7IH0gZm9vKCkgeyB9IHNldCBmb28oeCkgeyB9IH07IHZhbHVlVHlw
ZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJj
bGFzcyBBIHsgc2V0IGZvbyh4KSB7IH0gZm9vKCkgeyB9IGdldCBmb28oKSB7IH0gfTsgdmFsdWVU
eXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIiwgIlsndmFsdWUnXSIpOworc2hvdWxkQmUo
ImNsYXNzIEEgeyBmb28oKSB7IH0gZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1
ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykiLCAiWydnZXQnLCAnc2V0J10iKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgZm9vKCkgeyB9IHNldCBmb28oeCkgeyB9IGdldCBmb28oKSB7IH0g
fTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIiwgIlsnZ2V0JywgJ3NldCdd
Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IGdldCBmb28oKSB7IH0gc2V0IGZvbyh4KSB7IH0gZm9v
KCkgeyB9IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28nKSIsICJbJ3ZhbHVl
J10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc2V0IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSBm
b28oKSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIiwgIlsndmFs
dWUnXSIpOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnU3RhdGljIG1ldGhvZHMgd2l0aCBkdXBsaWNh
dGVkIG5hbWVzJyk7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUw
MSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwMjsgfSB9OyBBLmFiKCkiLCAiNTAyIik7CitzaG91
bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyAnYScoKSB7IHJldHVybiA1MDMgfSBzdGF0aWMgJ2EnKCkg
eyByZXR1cm4gNTA0OyB9IH07IEEuYSgpIiwgIjUwNCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBz
dGF0aWMgMSgpIHsgcmV0dXJuIDUwNSB9IHN0YXRpYyAxKCkgeyByZXR1cm4gNTA2OyB9IH07IEFb
MV0oKSIsICI1MDYiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIDAuMSgpIHsgcmV0dXJu
IDUwNyB9IHN0YXRpYyAwLjEoKSB7IHJldHVybiA1MDg7IH0gfTsgQVswLjFdKCkiLCAiNTA4Iik7
CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwOSB9IHN0YXRpYyBb
J2EnICsgJ2InXSgpIHsgcmV0dXJuIDUxMDsgfSB9OyBBLmFiKCkiLCAiNTEwIik7CitzaG91bGRC
ZSgiY2xhc3MgQSB7IHN0YXRpYyBbJ2FiJ10oKSB7IHJldHVybiA1MTEgfSBzdGF0aWMgYWIoKSB7
IHJldHVybiA1MTI7IH0gfTsgQS5hYigpIiwgIjUxMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBz
dGF0aWMgYSgpIHsgcmV0dXJuIDUxMyB9IHN0YXRpYyBbJ2EnXSgpIHsgcmV0dXJuIDUxNDsgfSBz
dGF0aWMgYSgpIHsgcmV0dXJuIDUxNTsgfSB9OyBBLmEoKSIsICI1MTUiKTsKK3Nob3VsZEJlKCJj
bGFzcyBBIHsgc3RhdGljIFsnYiddKCkgeyByZXR1cm4gNTE2IH0gc3RhdGljIGIoKSB7IHJldHVy
biA1MTc7IH0gc3RhdGljIFsnYiddKCkgeyByZXR1cm4gNTE4OyB9IH07IEEuYigpIiwgIjUxOCIp
Oworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxOSB9IHN0YXRpYyBn
ZXQgYSgpIHsgcmV0dXJuIDUyMDsgfSB9OyBBLmEiLCAiNTIwIik7CitzaG91bGRCZSgiY2xhc3Mg
QSB7IHN0YXRpYyBnZXQgYSgpIHsgcmV0dXJuIDUyMSB9IHN0YXRpYyBhKCkgeyByZXR1cm4gNTIy
IH0gfTsgQS5hKCkiLCAiNTIyIik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7
IGNsYXNzIEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJuIDUyMyB9IHN0YXRpYyBzZXQgYSh4KSB7IHNl
dHRlclZhbHVlID0geCB9IH07IEEuYSA9IDUyNDsgc2V0dGVyVmFsdWUiLCAiNTI0Iik7CitzaG91
bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMgc2V0IGEoeCkg
eyBzZXR0ZXJWYWx1ZSA9IHggfSBzdGF0aWMgYSgpIHsgcmV0dXJuIDUyNSB9IH07IEEuYSgpIiwg
IjUyNSIpOworc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3Rh
dGljIGdldCBmb28oKSB7IHJldHVybiA1MjYgfSBzdGF0aWMgc2V0IGZvbyh4KSB7IHNldHRlclZh
bHVlID0geDsgfSB9OyBBLmZvbyA9IEEuZm9vOyBzZXR0ZXJWYWx1ZSIsICI1MjYiKTsKK3Nob3Vs
ZEJlKCJjbGFzcyBBIHsgc3RhdGljIGdldCBmb28oKSB7IH0gc3RhdGljIGZvbygpIHsgfSBzdGF0
aWMgc2V0IGZvbyh4KSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7
CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkg
eyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIiwgIlsndmFs
dWUnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBnZXQg
Zm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28nKSIs
ICJbJ2dldCcsICdzZXQnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9
IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZ2V0IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVz
KEEsICdmb28nKSIsICJbJ2dldCcsICdzZXQnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0
aWMgZ2V0IGZvbygpIHsgfSBzdGF0aWMgc2V0IGZvbyh4KSB7IH0gc3RhdGljIGZvbygpIHsgfSB9
OyB2YWx1ZVR5cGVzKEEsICdmb28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJjbGFzcyBB
IHsgc3RhdGljIHNldCBmb28oeCkgeyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBmb28o
KSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7CisKK2RlYnVnKCcn
KTsKK2RlYnVnKCdTdGF0aWMgbWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259032</attachid>
            <date>2015-08-14 13:39:28 -0700</date>
            <delta_ts>2015-08-14 16:50:46 -0700</delta_ts>
            <desc>Fixed 32-bit build</desc>
            <filename>bug-142690-20150814133915.patch</filename>
            <type>text/plain</type>
            <size>63132</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NTYxZjMxMTE4YWU3YzY1ZmNjMzRiNTg1MGUzODE3OGEyMjVmYjE1Li45MjE3N2ZiNjEwZDBiNGY4
YTY2Zjk1MDJjMmQ4MTdjNmZhYjI5YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAxNS0wOC0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBFUzYgY2xhc3Mgc3ludGF4IHNob3VsZCBhbGxvdyBjb21wdXRlZCBuYW1lIG1l
dGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgYSBuZXcgImF0dHJpYnV0ZXMiIGF0dHJpYnV0ZSB0byBvcF9wdXRfZ2V0dGVyX2J5X2lkLCBv
cF9wdXRfc2V0dGVyX2J5X2lkLCBvcF9wdXRfZ2V0dGVyX3NldHRlciB0byBzcGVjaWZ5CisgICAg
ICAgIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIG9wdGlvbnMgc28gdGhhdCB3ZSBjYW4gdXNlIHVz
ZSBvcF9wdXRfc2V0dGVyX2J5X2lkIGFuZCBvcF9wdXRfZ2V0dGVyX3NldHRlciB0byBkZWZpbmUK
KyAgICAgICAgZ2V0dGVycyBhbmQgc2V0dGVycyBmb3IgY2xhc3Nlcy4gV2l0aG91dCB0aGlzLCBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzIGNvdWxkIGVycm9uZW91c2x5IG92ZXJyaWRlIG1ldGhvZHMuCisK
KyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRlY29k
ZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2Rl
T2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRE
aXJlY3RQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRH
ZXR0ZXJCeUlkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRTZXR0
ZXJCeUlkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJT
ZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAg
ICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eUxpc3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBbHdheXMgdXNlIGVtaXRQdXRHZXR0ZXJTZXR0
ZXIgdG8gZW1pdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvciBjbGFzc2VzCisgICAgICAgIGFzIGRv
bmUgZm9yIG9iamVjdCBsaXRlcmFscy4KKyAgICAgICAgKEpTQzo6UHJvcGVydHlMaXN0Tm9kZTo6
ZW1pdFB1dENvbnN0YW50UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpDbGFzc0V4cHJOb2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpT
Qzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAq
IGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpK
SVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZGVsX2J5X2lkKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfZGVsX2J5X2lkKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6Cisg
ICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIu
aDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlUHJvcGVydHkpOgorICAgICAgICAo
SlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcm9wZXJ0eUxpc3QpOgorICAgICAgICAqIHBhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5Tm9kZTo6UHJvcGVydHlO
b2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlO
b2RlOjpleHByZXNzaW9uTmFtZSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5Tm9kZTo6bmFtZSk6
CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUNsYXNzKTogQWRkZWQgdGhlIHN1cHBvcnQgZm9yIGNvbXB1dGVkIHByb3Bl
cnR5IG5hbWUuIFdlIGRvbid0IHN1cHBvcnQgY29tcHV0ZWQgbmFtZXMKKyAgICAgICAgZm9yIGdl
dHRlcnMgYW5kIHNldHRlcnMuCisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAg
ICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlUHJvcGVydHkpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6YWxsb3dzQWNjZXNz
RnJvbSk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRHZXR0ZXIpOgorICAgICAgICAoSlND
OjpKU09iamVjdDo6cHV0U2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuaDoKKwogMjAxNS0wOC0xNCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE4ODQ0NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCAyY2Y3NTNiYjgyYzA2YjBkMDgwMjAzNmZjNDk1
ZmJmZjYyMjAwNTYyLi43MDRjZmRhYjMzZjVhYmUyNGU3ZTdjNmY0YWY2ZmQyNzc4NWM0ZWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29u
CkBAIC03MSw5ICs3MSw5IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfYnlfdmFs
X2RpcmVjdCIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVs
X2J5X3ZhbCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0
X2J5X2luZGV4IiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9w
dXRfZ2V0dGVyX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6
ICJvcF9wdXRfc2V0dGVyX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9wdXRfZ2V0dGVyX3NldHRlciIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfcHV0X2dldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9LAorICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X3NldHRlcl9ieV9pZCIsICJsZW5ndGgiIDogNSB9
LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2dldHRlcl9zZXR0ZXIiLCAibGVuZ3Ro
IiA6IDYgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2ptcCIsICJsZW5ndGgiIDogMiB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfanRydWUiLCAibGVuZ3RoIiA6IDMgfSwKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2pmYWxzZSIsICJsZW5ndGgiIDogMyB9LApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCAwMzgz
YTBmYmRjZWNkODIwN2VjOTZjOTA0MTA3ODIzNjU5OTEyNjdiLi5mMzE3NGU5NmNhZDNiNDZlZTIx
ZjgwYzA3MDkyNDQ1ZjA1ODZmZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtOTgsMTggKzk4LDIyIEBAIHZvaWQgY29tcHV0ZVVz
ZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25v
cm1hbF9vdXRfb2ZfbGluZToKICAgICBjYXNlIG9wX3B1dF9ieV9pZF9vdXRfb2ZfbGluZToKICAg
ICBjYXNlIG9wX3B1dF9ieV9pZDoKLSAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6Ci0gICAg
Y2FzZSBvcF9wdXRfc2V0dGVyX2J5X2lkOgogICAgIGNhc2Ugb3BfcHV0X3RvX3Njb3BlOgogICAg
IGNhc2Ugb3BfcHV0X3RvX2FyZ3VtZW50czogewogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywg
aW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAg
ICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2Ugb3BfcHV0X2dl
dHRlcl9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgZnVu
Y3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKTsKKyAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJ
RCwgaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfc2V0dGVyOiB7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2Nr
LCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7Ci0gICAg
ICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9u
WzNdLnUub3BlcmFuZCk7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwg
b3Bjb2RlSUQsIGluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgICAgIGZ1bmN0b3IoY29k
ZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzVdLnUub3BlcmFuZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBvcF9nZXRfcHJvcGVydHlfZW51bWVy
YXRvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5k
ZXggMzI3MmFkZjhiZDFmNjE1NzA3OWMyZjE5NzJiZWJhMjU4NzA0ZDUyYy4uYTdhMDVkYTVkYjhl
NTBjYWMxNGVkYmY5NWI4NTliNjBhZTQ5ZGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEwODIsMjYgKzEwODIsMjkgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBuMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwdXRf
Z2V0dGVyX2J5X2lkIik7Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVn
aXN0ZXJOYW1lKHIwKS5kYXRhKCksIGlkTmFtZShpZDAsIGlkZW50aWZpZXIoaWQwKSkuZGF0YSgp
LCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSk7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywg
JXMsICVkLCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlm
aWVyKGlkMCkpLmRhdGEoKSwgbjAsIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV9pZDog
ewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgbjAgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHV0
X3NldHRlcl9ieV9pZCIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcyIsIHJl
Z2lzdGVyTmFtZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCkpOworICAgICAgICAgICAgb3V0LnByaW50ZigiJXMs
ICVzLCAlZCwgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgaWROYW1lKGlkMCwgaWRlbnRp
ZmllcihpZDApKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfc2V0dGVy
OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBuMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHByaW50
TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1dF9nZXR0ZXJfc2V0dGVy
Iik7Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzLCAlcyIsIHJlZ2lzdGVyTmFt
ZShyMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKKyAgICAgICAgICAg
IG91dC5wcmludGYoIiVzLCAlcywgJWQsICVzLCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgp
LCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwgbjAsIHJlZ2lzdGVyTmFtZShy
MSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2RlbF9ieV9pZDogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCA2MGUwNjA1NTNlN2FhOGYyN2I1NGE1NWJjNzViMjRiZTk5NGUyNmFhLi4zNjRlOTIxMzk0
MjAzNjU3MDM3YTgxMjAxNWRhMTFmNzg4ZWYxMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMTk0
OCw3ICsxOTQ4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlY3RQ
dXRCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWYKICAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJCeUlkKFJlZ2lzdGVy
SUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIp
Cit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0R2V0dGVyQnlJZChSZWdpc3RlcklEKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgdW5zaWduZWQgYXR0cmlidXRlcywgUmVn
aXN0ZXJJRCogZ2V0dGVyKQogewogICAgIHVuc2lnbmVkIHByb3BlcnR5SW5kZXggPSBhZGRDb25z
dGFudChwcm9wZXJ0eSk7CiAgICAgbV9zdGF0aWNQcm9wZXJ0eUFuYWx5emVyLnB1dEJ5SWQoYmFz
ZS0+aW5kZXgoKSwgcHJvcGVydHlJbmRleCk7CkBAIC0xOTU2LDEwICsxOTU2LDExIEBAIHZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0ZXJCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNv
bnN0IElkZW50aWZpZXImIHByCiAgICAgZW1pdE9wY29kZShvcF9wdXRfZ2V0dGVyX2J5X2lkKTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYmFzZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHByb3BlcnR5SW5kZXgpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChh
dHRyaWJ1dGVzKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZ2V0dGVyLT5pbmRleCgpKTsK
IH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFNldHRlckJ5SWQoUmVnaXN0ZXJJ
RCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHNldHRlcikK
K3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRTZXR0ZXJCeUlkKFJlZ2lzdGVySUQqIGJh
c2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBSZWdp
c3RlcklEKiBzZXR0ZXIpCiB7CiAgICAgdW5zaWduZWQgcHJvcGVydHlJbmRleCA9IGFkZENvbnN0
YW50KHByb3BlcnR5KTsKICAgICBtX3N0YXRpY1Byb3BlcnR5QW5hbHl6ZXIucHV0QnlJZChiYXNl
LT5pbmRleCgpLCBwcm9wZXJ0eUluZGV4KTsKQEAgLTE5NjcsMTAgKzE5NjgsMTEgQEAgdm9pZCBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dFNldHRlckJ5SWQoUmVnaXN0ZXJJRCogYmFzZSwgY29u
c3QgSWRlbnRpZmllciYgcHIKICAgICBlbWl0T3Bjb2RlKG9wX3B1dF9zZXR0ZXJfYnlfaWQpOwog
ICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChiYXNlLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQocHJvcGVydHlJbmRleCk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGF0
dHJpYnV0ZXMpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzZXR0ZXItPmluZGV4KCkpOwog
fQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0R2V0dGVyU2V0dGVyKFJlZ2lzdGVy
SUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIs
IFJlZ2lzdGVySUQqIHNldHRlcikKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRHZXR0
ZXJTZXR0ZXIoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIHVu
c2lnbmVkIGF0dHJpYnV0ZXMsIFJlZ2lzdGVySUQqIGdldHRlciwgUmVnaXN0ZXJJRCogc2V0dGVy
KQogewogICAgIHVuc2lnbmVkIHByb3BlcnR5SW5kZXggPSBhZGRDb25zdGFudChwcm9wZXJ0eSk7
CiAKQEAgLTE5NzksNiArMTk4MSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRH
ZXR0ZXJTZXR0ZXIoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYKICAgICBlbWl0
T3Bjb2RlKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
YmFzZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb3BlcnR5SW5kZXgp
OworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhdHRyaWJ1dGVzKTsKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoZ2V0dGVyLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
c2V0dGVyLT5pbmRleCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCAzM2ExNWMxZmY5YjEwNTM1ZDA0
MTQ3ZjFhZjZmMjZkY2Q4MTU0OWE1Li4xZDZjZTEzNmVjMWM2NWRiNTYyMmFjYjg3MjA3NDYwZDRk
MGEzYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC01MDgsOSArNTA4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREZWxldGVCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFB1dEJ5SW5kZXgoUmVnaXN0ZXJJRCogYmFzZSwgdW5zaWduZWQgaW5kZXgsIFJlZ2lz
dGVySUQqIHZhbHVlKTsKIAotICAgICAgICB2b2lkIGVtaXRQdXRHZXR0ZXJCeUlkKFJlZ2lzdGVy
SUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBnZXR0ZXIp
OwotICAgICAgICB2b2lkIGVtaXRQdXRTZXR0ZXJCeUlkKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiBzZXR0ZXIpOwotICAgICAgICB2b2lk
IGVtaXRQdXRHZXR0ZXJTZXR0ZXIoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHksIFJlZ2lzdGVySUQqIGdldHRlciwgUmVnaXN0ZXJJRCogc2V0dGVyKTsKKyAgICAg
ICAgdm9pZCBlbWl0UHV0R2V0dGVyQnlJZChSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eSwgdW5zaWduZWQgcHJvcGVydHlEZXNjcmlwdG9yT3B0aW9ucywgUmVnaXN0
ZXJJRCogZ2V0dGVyKTsKKyAgICAgICAgdm9pZCBlbWl0UHV0U2V0dGVyQnlJZChSZWdpc3RlcklE
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgdW5zaWduZWQgcHJvcGVydHlEZXNj
cmlwdG9yT3B0aW9ucywgUmVnaXN0ZXJJRCogc2V0dGVyKTsKKyAgICAgICAgdm9pZCBlbWl0UHV0
R2V0dGVyU2V0dGVyKFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBSZWdpc3RlcklEKiBnZXR0ZXIsIFJlZ2lzdGVySUQqIHNl
dHRlcik7CiAgICAgICAgIAogICAgICAgICBFeHBlY3RlZEZ1bmN0aW9uIGV4cGVjdGVkRnVuY3Rp
b25Gb3JJZGVudGlmaWVyKGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdENhbGwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBFeHBlY3RlZEZ1bmN0
aW9uLCBDYWxsQXJndW1lbnRzJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAppbmRleCA0NzdmYTVjNzMwNTY0NzA0MGMwNTc5ZDExMTM2YmMzYjk3OWQyNWFkLi4y
MzQyN2YxYWYxZTM0NjI1NTI0Y2YzNGVlM2Y1YjdhZWUwNzhhM2ExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC00OTcs
OSArNDk3LDkgQEAgUmVnaXN0ZXJJRCogUHJvcGVydHlMaXN0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGUKICAgICAgICAgICAgIC8vIFRoaXMg
aXMgYSBnZXQvc2V0IHByb3BlcnR5IHdoaWNoIG1heSBiZSBvdmVycmlkZGVuIGJ5IGEgY29tcHV0
ZWQgcHJvcGVydHkgbGF0ZXIuCiAgICAgICAgICAgICBpZiAoaGFzQ29tcHV0ZWRQcm9wZXJ0eSkg
ewogICAgICAgICAgICAgICAgIGlmIChub2RlLT5tX3R5cGUgJiBQcm9wZXJ0eU5vZGU6OkdldHRl
cikKLSAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRHZXR0ZXJCeUlkKGRzdCwg
Km5vZGUtPm5hbWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dFB1dEdldHRlckJ5SWQoZHN0LCAqbm9kZS0+bmFtZSgpLCBBY2Nlc3NvciwgdmFsdWUpOwogICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRT
ZXR0ZXJCeUlkKGRzdCwgKm5vZGUtPm5hbWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAg
ICBnZW5lcmF0b3IuZW1pdFB1dFNldHRlckJ5SWQoZHN0LCAqbm9kZS0+bmFtZSgpLCBBY2Nlc3Nv
ciwgdmFsdWUpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCkBA
IC01NDQsMTIgKzU0NCw3IEBAIFJlZ2lzdGVySUQqIFByb3BlcnR5TGlzdE5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlCiAgICAgICAgICAgICBp
ZiAoaXNDbGFzc1Byb3BlcnR5ICYmIHBhaXIuc2Vjb25kKQogICAgICAgICAgICAgICAgIGVtaXRQ
dXRIb21lT2JqZWN0KGdlbmVyYXRvciwgc2Vjb25kUmVnLCBkc3QpOwogCi0gICAgICAgICAgICBp
ZiAoaXNDbGFzc1Byb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IHByb3BlcnR5TmFtZVJlZ2lzdGVyID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwgKm5vZGUtPm5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVt
aXRDYWxsRGVmaW5lUHJvcGVydHkoZHN0LCBwcm9wZXJ0eU5hbWVSZWdpc3Rlci5nZXQoKSwKLSAg
ICAgICAgICAgICAgICAgICAgbnVsbHB0ciwgZ2V0dGVyUmVnLmdldCgpLCBzZXR0ZXJSZWcuZ2V0
KCksIEJ5dGVjb2RlR2VuZXJhdG9yOjpQcm9wZXJ0eUNvbmZpZ3VyYWJsZSwgbV9wb3NpdGlvbik7
Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEdl
dHRlclNldHRlcihkc3QsICpub2RlLT5uYW1lKCksIGdldHRlclJlZy5nZXQoKSwgc2V0dGVyUmVn
LmdldCgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0R2V0dGVyU2V0dGVyKGRzdCwg
Km5vZGUtPm5hbWUoKSwgaXNDbGFzc1Byb3BlcnR5ID8gKEFjY2Vzc29yIHwgRG9udEVudW0pIDog
QWNjZXNzb3IsIGdldHRlclJlZy5nZXQoKSwgc2V0dGVyUmVnLmdldCgpKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBl
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKaW5kZXggNWZh
NmI1MzYyZGU5ODdjMzAzYjBmYTAxNjUyNjBkMDFhMTZiMGZmOC4uNDUwNmM2OGQ3Y2E3MDI2ZWJl
NDM3ZWU2MjQwODk1MzllNjVhNWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxs
SGVscGVycy5oCkBAIC0zMDIsMTMgKzMwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmczKTsKICAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tUHRyIGFyZzIsIEdQUlJl
ZyBhcmczKQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoR1BSUmVnIGFyZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJ
bW0zMiBhcmc0KQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CiAgICAgICAg
IGFkZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgICAgIGFk
ZENhbGxBcmd1bWVudChhcmcxKTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOwogICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0
KTsKICAgICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tMzIgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmcz
KQpAQCAtMTkxOCw2ICsxOTE5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9CiAKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBUcnVzdGVkSW1tUHRyIGFyZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BS
UmVnIGFyZzUpCisgICAgeworICAgICAgICBzZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6
YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjQsIEdQUkluZm86OmFyZ3VtZW50R1BS
NT4oYXJnMSwgYXJnNCwgYXJnNSk7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKKyAgICAgICAgbW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAg
ICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRydXN0ZWRJbW1QdHIgYXJnMiwgR1BSUmVnIGFyZzMsIEdQ
UlJlZyBhcmc0KQogICAgIHsKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzMTM0KGFyZzEsIGFy
ZzMsIGFyZzQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggODQxMWE3ZWY2NWE5YzZiZGNj
MTZiMzY0ZWIyOGU0MTAxNmI1ODU4Ni4uZGQ4OTU2M2IwNDk3YTRjNmYzZThkZWMyOTdmZDM2NTY4
ZGNlYjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC03NDQsOCArNzQ0LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNJQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJlZ2lz
dGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSUNDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBp
bnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZp
ZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVpTeW10YWJK
LCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBAIC03NTUsOCArNzU1LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CiAjZW5kaWYKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSklkSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllcios
IFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSWRKSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRp
ZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkosIFJlZ2lzdGVySUQsIGNvbnN0
IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZf
SklUT3BlcmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lcy5oCmluZGV4IDVkNjg2OTAwODFjOTk2ZDdlMzNiZjNiZDI1ZGNjNThiMDMwZjdkNmMuLmQ5
MzY0MzhjNjAzM2UzNzc1ZGU0YzM0YTE4ZWUyYmI5ZjVmYzVhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC01MTQsMTUgKzUxNCwxNSBAQCBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SiBvcGVyYXRpbwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdP
cDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBSZWdpc3RlcklEIHJlZ09wMykKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKSWRaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlm
aWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQogewotICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIp
LCByZWdPcDMpOworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0
ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKICAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSklkSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmll
ciogaWRlbnRPcDIsIFJlZ2lzdGVySUQgcmVnT3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKSWRaSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRp
ZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJ
RCByZWdPcDUpCiB7Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1
c3RlZEltbVB0cihpZGVudE9wMiksIHJlZ09wMywgcmVnT3A0KTsKKyAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZElt
bTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCkBAIC02NDIsMTUgKzY0MiwxNSBAQCBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FSkogb3BlcmF0aQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSUMgb3BlcmF0aW9uLCBSZWdpc3RlcklE
IHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIFJlZ2lzdGVySUQgcmVnT3AzKQor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRl
bnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKLSAg
ICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50
T3AyKSwgcmVnT3AzKTsKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBU
cnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CiAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUNJQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRp
ZmllciogaWRlbnRPcDIsIFJlZ2lzdGVySUQgcmVnT3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSVpDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVu
dGlmaWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3Rl
cklEIHJlZ09wNSkKIHsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBU
cnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgcmVnT3AzLCByZWdPcDQpOworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVk
SW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGI1ZjllMzY5YTdlNTdiYWZmMDQ2ZDJhMzY1ZGJjMDI0
Y2RjZGI5M2IuLjk3OTI5Yjc5MmVlZDVhMGY5YTJiMzI0MmQzZTA0MDM5YzNlOWE4NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTI0NSw3ICsx
MjQ1LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXIKIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQp
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRlbnRp
ZmllciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0
aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OwpAQCAtMTI1NSwxMCArMTI1NSwxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZQogCiAgICAg
SlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKICAg
ICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVj
LCAqaWRlbnRpZmllciwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgYmFzZU9iai0+cHV0R2V0dGVy
KGV4ZWMsICppZGVudGlmaWVyLCBhc09iamVjdChnZXR0ZXIpLCBvcHRpb25zKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAg
LTEyNjgsMTAgKzEyNjgsMTEgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRl
ckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGUKIAogICAgIEpTVmFs
dWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7CiAgICAgQVNT
RVJUKHNldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlk
ZW50aWZpZXIsIGFzT2JqZWN0KHNldHRlcikpOworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVj
LCAqaWRlbnRpZmllciwgYXNPYmplY3Qoc2V0dGVyKSwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNl
dHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwgSWRlbnRp
ZmllciogaWRlbnRpZmllciwgaW50MzJfdCBhdHRyaWJ1dGUsCisgICAgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CkBAIC0xMjkxLDEwICsxMjkyLDEwIEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvCiAgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CiAgICAgaWYgKCFzZXR0ZXIuaXNVbmRlZmlu
ZWQoKSkKICAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKLSAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nl
c3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3IsIEFjY2Vzc29yKTsKKyAgICBiYXNlT2Jq
LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3IsIGF0dHJpYnV0
ZSk7CiB9CiAjZWxzZQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQo
RXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwg
SlNDZWxsKiBnZXR0ZXIpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJ
ZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVy
LCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogZ2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAt
MTMwMywxMCArMTMwNCwxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVy
QnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudAogICAgIEpTT2JqZWN0
KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAogICAgIEFTU0VSVChnZXR0ZXItPmlz
T2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgZ2V0
dGVyKTsKKyAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIGdldHRlciwg
b3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIs
IEpTQ2VsbCogc2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5
SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmll
ciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAg
LTEzMTUsMTAgKzEzMTYsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRl
ckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnQKICAgICBKU09iamVj
dCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CiAKICAgICBBU1NFUlQoc2V0dGVyLT5p
c09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIHNl
dHRlcik7CisgICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBzZXR0ZXIs
IG9wdGlvbnMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZp
ZXIsIEpTQ2VsbCogZ2V0dGVyLCBKU0NlbGwqIHNldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwg
SWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVy
LCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTEzMzYsNyArMTMzNyw3IEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlCiAgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0s
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZ2V0dGVyLT5nZXRPYmplY3QoKSk7CiAgICAg
aWYgKHNldHRlcikKICAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBzZXR0ZXItPmdldE9iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRE
aXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3IsIEFjY2Vzc29yKTsKKyAg
ICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3Is
IGF0dHJpYnV0ZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAppbmRleCAzZDgzZjU5MGRjZjkxODAzYTM0NDhiYTA4M2IyZjkyYmNiZTg0Zjli
Li4wNDQwYjg1MjE1YjZkYWI2MWQ5NjJlMTdiMDMzNDA3ZGUwZmFlYjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTgzLDggKzE4Myw4IEBAIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ2Ip
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0ljZikoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDSUMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBK
U0NlbGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJ
Q0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBKU0NlbGwqLCBKU0NlbGwqKTsK
K3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkMpKEV4ZWNT
dGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90LCBKU0NlbGwqKTsKK3R5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkNDKShFeGVjU3RhdGUqLCBK
U0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCwgSlNDZWxsKiwgSlNDZWxsKik7CiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDQ0ljZikoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7CiB0eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDUFNQUykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgdm9pZCosIHNpemVf
dCwgdm9pZCosIHNpemVfdCk7CkBAIC0xOTMsOCArMTkzLDggQEAgdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2Vs
bCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FWlN5bXRh
YkopKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwog
dHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSkNJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKiwgVW5pcXVl
ZFN0cmluZ0ltcGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRUpJZEopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2Rl
ZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9F
SklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9K
SVRPcGVyYXRpb25fRUpJZFpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmll
ciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpJZFpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElk
ZW50aWZpZXIqLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkFwKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVBy
b2ZpbGUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpK
SkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBCeVZhbEluZm8qKTsKQEAgLTI5OSwxMyArMjk5LDEzIEBAIFNsb3dQYXRoUmV0dXJu
VHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3Qp
IFdURl9JTlRFCiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUluZGV4
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJT
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlm
aWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1
dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogI2Vsc2UK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIElkZW50aWZpZXIqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlm
aWVyKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgSlNDZWxs
KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0
aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50
MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNlbmRpZgog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVjU3Rh
dGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7
CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAppbmRleCAxNzJlMDEzZDUyYWM0YjQxMmI1ODM3OTBlMDA4Y2MzZjExMjVm
YTRhLi4yZGFmYmQ3M2M4M2FhMThiMzRhMDg0YjQ3ZTMxOTJjNmFhNjM0MGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNDgzLDIz
ICs0ODMsMjYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2luZGV4KEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCByZWdUMSk7
Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29k
ZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCByZWdU
MSk7CisgICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9w
ZXJhbmQsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQs
IHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3Nl
dHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDAp
OwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwg
cmVnVDAsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSwgcmVnVDEpOworICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
dXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiB7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIHJlZ1QxLCByZWdUMik7CisgICAg
aW50MzJfdCBhdHRyaWJ1dGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwg
cmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzVd
LnUub3BlcmFuZCwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpLCBhdHRyaWJ1dGUsIHJlZ1QxLCByZWdUMik7CiB9CiAKIHZvaWQgSklU
OjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAKaW5kZXggZmI5NTdhMjI2ZTg2MjUxYjZkMzZlNzcwYzlhY2UzNTJiMjA0OTliZS4uNjFjNDE3
MzRmNTQ5OTNkNmYwMjcwNGY3YjkyMzY0ZjM0YzEyYzgyNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC02MSwzNSAr
NjEsMzggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwotICAgIGludCBnZXR0ZXIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOworICAgIGludCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
KyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAogICAg
IGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKGdldHRl
ciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVn
VDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlk
ZW50aWZpZXIocHJvcGVydHkpLCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50
IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQgc2V0
dGVyID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICB1bnNpZ25lZCBvcHRp
b25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVyID0g
Y3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9hZChi
YXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNldHRlciwgcmVnVDMpOwotICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDEsICZtX2NvZGVCbG9jay0+
aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blB1dFNldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkp
LCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0
dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGJhc2UgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0gICAgaW50IGdldHRlciA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHNldHRlciA9IGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51Lm9wZXJhbmQ7CisgICAgdW5zaWduZWQgYXR0cmlidXRlID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZ2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzRd
LnUub3BlcmFuZDsKKyAgICBpbnQgc2V0dGVyID0gY3VycmVudEluc3RydWN0aW9uWzVdLnUub3Bl
cmFuZDsKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQ
YXlsb2FkKGdldHRlciwgcmVnVDMpOwogICAgIGVtaXRMb2FkUGF5bG9hZChzZXR0ZXIsIHJlZ1Q0
KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDEsICZt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIHJlZ1QzLCByZWdUNCk7CisgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCAmbV9jb2RlQmxvY2st
PmlkZW50aWZpZXIocHJvcGVydHkpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CiB9CiAKIHZv
aWQgSklUOjplbWl0X29wX2RlbF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggNTViODFlZTBmNzhmYTdhZDlhMjBkY2Q0NzY4MTJiNDFmNTY4NWQ3Zi4uNGJhZDUwNjdmZTZm
YTllYzNmZjQ2N2VjYTU3OTI5OGQzODQ4NTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC04NDcsMTEgKzg0NywxMyBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2dldHRlcl9ieV9pZCkKICAgICBMTElOVF9CRUdJ
TigpOwogICAgIEFTU0VSVChMTElOVF9PUCgxKS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7CiAgICAg
SlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOwotICAg
IAotICAgIEpTVmFsdWUgZ2V0dGVyID0gTExJTlRfT1AoMykuanNWYWx1ZSgpOworCisgICAgdW5z
aWduZWQgb3B0aW9ucyA9IHBjWzNdLnUub3BlcmFuZDsKKworICAgIEpTVmFsdWUgZ2V0dGVyID0g
TExJTlRfT1AoNCkuanNWYWx1ZSgpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSk7Ci0g
ICAgCi0gICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVu
dGlmaWVyKHBjWzJdLnUub3BlcmFuZCksIGFzT2JqZWN0KGdldHRlcikpOworCisgICAgYmFzZU9i
ai0+cHV0R2V0dGVyKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzJdLnUu
b3BlcmFuZCksIGFzT2JqZWN0KGdldHRlciksIG9wdGlvbnMpOwogICAgIExMSU5UX0VORCgpOwog
fQogCkBAIC04NjAsMTEgKzg2MiwxMyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
cHV0X3NldHRlcl9ieV9pZCkKICAgICBMTElOVF9CRUdJTigpOwogICAgIEFTU0VSVChMTElOVF9P
UCgxKS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7CiAgICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09i
amVjdChMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOwotICAgIAotICAgIEpTVmFsdWUgc2V0dGVyID0g
TExJTlRfT1AoMykuanNWYWx1ZSgpOworCisgICAgdW5zaWduZWQgb3B0aW9ucyA9IHBjWzNdLnUu
b3BlcmFuZDsKKworICAgIEpTVmFsdWUgc2V0dGVyID0gTExJTlRfT1AoNCkuanNWYWx1ZSgpOwog
ICAgIEFTU0VSVChzZXR0ZXIuaXNPYmplY3QoKSk7Ci0gICAgCi0gICAgYmFzZU9iai0+cHV0U2V0
dGVyKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzJdLnUub3BlcmFuZCks
IGFzT2JqZWN0KHNldHRlcikpOworCisgICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsIGV4ZWMt
PmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzJdLnUub3BlcmFuZCksIGFzT2JqZWN0KHNldHRl
ciksIG9wdGlvbnMpOwogICAgIExMSU5UX0VORCgpOwogfQogCkBAIC04NzYsOSArODgwLDkgQEAg
TExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9nZXR0ZXJfc2V0dGVyKQogICAgIAog
ICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsK
LSAgICAKLSAgICBKU1ZhbHVlIGdldHRlciA9IExMSU5UX09QKDMpLmpzVmFsdWUoKTsKLSAgICBK
U1ZhbHVlIHNldHRlciA9IExMSU5UX09QKDQpLmpzVmFsdWUoKTsKKworICAgIEpTVmFsdWUgZ2V0
dGVyID0gTExJTlRfT1AoNCkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgc2V0dGVyID0gTExJTlRf
T1AoNSkuanNWYWx1ZSgpOwogICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIu
aXNVbmRlZmluZWQoKSk7CiAgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5p
c1VuZGVmaW5lZCgpKTsKICAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlz
T2JqZWN0KCkpOwpAQCAtODkwLDcgKzg5NCw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9wdXRfZ2V0dGVyX3NldHRlcikKICAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3NvcigK
ICAgICAgICAgZXhlYywKICAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNb
Ml0udS5vcGVyYW5kKSwKLSAgICAgICAgYWNjZXNzb3IsIEFjY2Vzc29yKTsKKyAgICAgICAgYWNj
ZXNzb3IsIHBjWzNdLnUub3BlcmFuZCk7CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBjOTEwNjE3ZWQ4MzRiNzRjOWYyZjhlZTRiMjY4N2M4YjljZmUzYzdjLi5jYjQyYjc0ZmJlYTg5
Y2Y0NTE1ZjUyYWM3MDg0ODhjNDNmN2RmY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xMDYyLDE5ICsxMDYyLDE5
IEBAIF9sbGludF9vcF9wdXRfYnlfaW5kZXg6CiBfbGxpbnRfb3BfcHV0X2dldHRlcl9ieV9pZDoK
ICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
cHV0X2dldHRlcl9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQorICAgIGRpc3BhdGNoKDUpCiAKIAog
X2xsaW50X29wX3B1dF9zZXR0ZXJfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9zZXR0ZXJfYnlfaWQpCi0gICAgZGlzcGF0
Y2goNCkKKyAgICBkaXNwYXRjaCg1KQogCiAKIF9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoK
ICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
cHV0X2dldHRlcl9zZXR0ZXIpCi0gICAgZGlzcGF0Y2goNSkKKyAgICBkaXNwYXRjaCg2KQogCiAK
IF9sbGludF9vcF9qdHJ1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVy
LmgKaW5kZXggN2I1ODc3MzBhNmYwMzU0NDBkYjkwZDljNDI2ODBhZDU3OGI5NGE2Ny4uMDI5ZjE3
ZWJjZGYxOTJmZjZiZDFmZDI5ODEzZDI2ZDVlNjhkMTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTQxNCw3ICs0MTQsNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQcm9wZXJ0eU5vZGUocGFyc2Vy
QXJlbmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBwcm9wZXJ0
eU5hbWUpLCBub2RlLCB0eXBlLCBwdXRUeXBlKTsKICAgICB9Ci0gICAgUHJvcGVydHlOb2RlKiBj
cmVhdGVQcm9wZXJ0eShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9k
ZSogbm9kZSwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBw
dXRUeXBlLCBib29sKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5Tm9kZShw
cm9wZXJ0eU5hbWUsIG5vZGUsIHR5cGUsIHB1dFR5cGUpOyB9CisgICAgUHJvcGVydHlOb2RlKiBj
cmVhdGVQcm9wZXJ0eShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9uTm9k
ZSogbm9kZSwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3BlcnR5Tm9kZTo6UHV0VHlwZSBw
dXRUeXBlLCBib29sLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpO
b3ROZWVkZWQpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlOb2RlKHByb3Bl
cnR5TmFtZSwgbm9kZSwgdHlwZSwgcHV0VHlwZSwgc3VwZXJCaW5kaW5nKTsgfQogICAgIFByb3Bl
cnR5TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5KSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3BlcnR5KTsgfQogICAgIFByb3BlcnR5
TGlzdE5vZGUqIGNyZWF0ZVByb3BlcnR5TGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBQcm9wZXJ0eU5vZGUqIHByb3BlcnR5LCBQcm9wZXJ0eUxpc3ROb2RlKiB0YWlsKSB7IHJl
dHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByb3BlcnR5TGlzdE5vZGUobG9jYXRpb24sIHByb3Bl
cnR5LCB0YWlsKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCmluZGV4IGFiYjcyYTc0ZTEyODg0OGVhOGI0M2ZkODYzNjk3NGNiOTk3YzM3
ZGIuLmIzNzQ4Y2YzNDgwZGI4ZGU1MzVhZmE2NDY2YWU3ZTkxNDRmOTVlOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0yMzEsMTIg
KzIzMSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCi0gICAgaW5saW5lIFBy
b3BlcnR5Tm9kZTo6UHJvcGVydHlOb2RlKEV4cHJlc3Npb25Ob2RlKiBuYW1lLCBFeHByZXNzaW9u
Tm9kZSogYXNzaWduLCBUeXBlIHR5cGUsIFB1dFR5cGUgcHV0VHlwZSkKKyAgICBpbmxpbmUgUHJv
cGVydHlOb2RlOjpQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5vZGUqIG5hbWUsIEV4cHJlc3Npb25O
b2RlKiBhc3NpZ24sIFR5cGUgdHlwZSwgUHV0VHlwZSBwdXRUeXBlLCBTdXBlckJpbmRpbmcgc3Vw
ZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpCiAgICAgICAgIDogbV9uYW1lKDAp
CiAgICAgICAgICwgbV9leHByZXNzaW9uKG5hbWUpCiAgICAgICAgICwgbV9hc3NpZ24oYXNzaWdu
KQogICAgICAgICAsIG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fbmVlZHNTdXBlckJpbmRpbmco
ZmFsc2UpCisgICAgICAgICwgbV9uZWVkc1N1cGVyQmluZGluZyhzdXBlckJpbmRpbmcgPT0gU3Vw
ZXJCaW5kaW5nOjpOZWVkZWQpCiAgICAgICAgICwgbV9wdXRUeXBlKHB1dFR5cGUpCiAgICAgewog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAxZDZiMDNkNzc2NjI5
N2FlMTc1OTNiYmE5YWVjNTYwOTMyOTMwYzJkLi5jMDJiNDJjZWNiYWRhMTZlZTliZGUzMzRmNTJk
OTBhYTg4NWNjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC02MTQs
NyArNjE0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGVudW0gUHV0VHlwZSB7IFVua25v
d24sIEtub3duRGlyZWN0IH07CiAKICAgICAgICAgUHJvcGVydHlOb2RlKGNvbnN0IElkZW50aWZp
ZXImLCBFeHByZXNzaW9uTm9kZSosIFR5cGUsIFB1dFR5cGUsIFN1cGVyQmluZGluZyk7Ci0gICAg
ICAgIFByb3BlcnR5Tm9kZShFeHByZXNzaW9uTm9kZSogcHJvcGVydHlOYW1lLCBFeHByZXNzaW9u
Tm9kZSosIFR5cGUsIFB1dFR5cGUpOworICAgICAgICBQcm9wZXJ0eU5vZGUoRXhwcmVzc2lvbk5v
ZGUqIHByb3BlcnR5TmFtZSwgRXhwcmVzc2lvbk5vZGUqLCBUeXBlLCBQdXRUeXBlLCBTdXBlckJp
bmRpbmcpOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByZXNzaW9uTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQogICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5jcHAKaW5kZXggYWVlNzBiNmE3MzI5YmMxMWI1Y2U3M2Q1MzUyZDMxM2UyMmEyN2JlMS4u
NzFmZjY3NzE4YzE2NWE4OTMzYmU1ZTE1ZDRlYTRkNDViNzU0NjZiOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTk2MSw3ICsxOTYxLDggQEAgdGVtcGxhdGUg
PGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUNsYXNzKFQKIAogICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCBhIHdheSB0byBz
aGFyZSBtb3JlIGNvZGUgd2l0aCBwYXJzZVByb3BlcnR5LgogICAgICAgICBjb25zdCBDb21tb25J
ZGVudGlmaWVycyYgcHJvcGVydHlOYW1lcyA9ICptX3ZtLT5wcm9wZXJ0eU5hbWVzOwotICAgICAg
ICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG51bGxwdHI7CisgICAgICAgIGNvbnN0IElkZW50
aWZpZXIqIGlkZW50ID0gJnByb3BlcnR5TmFtZXMubnVsbElkZW50aWZpZXI7CisgICAgICAgIFRy
ZWVFeHByZXNzaW9uIGNvbXB1dGVkUHJvcGVydHlOYW1lID0gMDsKICAgICAgICAgYm9vbCBpc0dl
dHRlciA9IGZhbHNlOwogICAgICAgICBib29sIGlzU2V0dGVyID0gZmFsc2U7CiAgICAgICAgIHN3
aXRjaCAobV90b2tlbi5tX3R5cGUpIHsKQEAgLTE5ODUsNiArMTk4NiwxMiBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46
OnBhcnNlQ2xhc3MoVAogICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKICAgICAgICAgICAgIG5l
eHQoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9QRU5CUkFDS0VUOgorICAg
ICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgY29tcHV0ZWRQcm9wZXJ0eU5hbWUgPSBwYXJz
ZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOworICAgICAgICAgICAgZmFpbElmRmFsc2Uo
Y29tcHV0ZWRQcm9wZXJ0eU5hbWUsICJDYW5ub3QgcGFyc2UgY29tcHV0ZWQgcHJvcGVydHkgbmFt
ZSIpOworICAgICAgICAgICAgaGFuZGxlUHJvZHVjdGlvbk9yRmFpbChDTE9TRUJSQUNLRVQsICJd
IiwgImVuZCIsICJjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIik7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigp
OwogICAgICAgICB9CkBAIC0xOTk5LDcgKzIwMDYsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQ2xhc3Mo
VAogICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBtZXRob2RJbmZv
OwogICAgICAgICAgICAgYm9vbCBpc0NvbnN0cnVjdG9yID0gIWlzU3RhdGljTWV0aG9kICYmICpp
ZGVudCA9PSBwcm9wZXJ0eU5hbWVzLmNvbnN0cnVjdG9yOwogICAgICAgICAgICAgZmFpbElmRmFs
c2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1aXJlbWVudHMsIFNv
dXJjZVBhcnNlTW9kZTo6TWV0aG9kTW9kZSwgZmFsc2UsIGlzQ29uc3RydWN0b3IgPyBjb25zdHJ1
Y3RvcktpbmQgOiBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGluZzo6TmVlZGVkLCBt
ZXRob2RTdGFydCwgbWV0aG9kSW5mbywgU3RhbmRhcmRGdW5jdGlvblBhcnNlVHlwZSkpLCAiQ2Fu
bm90IHBhcnNlIHRoaXMgbWV0aG9kIik7Ci0gICAgICAgICAgICBmYWlsSWZUcnVlKCFpZGVudCB8
fCAoZGVjbGFyZVZhcmlhYmxlKGlkZW50KSAmIERlY2xhcmF0aW9uUmVzdWx0OjpJbnZhbGlkU3Ry
aWN0TW9kZSksICJDYW5ub3QgZGVjbGFyZSBhIG1ldGhvZCBuYW1lZCAnIiwgbWV0aG9kSW5mby5u
YW1lLT5pbXBsKCksICInIik7CisgICAgICAgICAgICBmYWlsSWZUcnVlKCFjb21wdXRlZFByb3Bl
cnR5TmFtZSAmJiAoZGVjbGFyZVZhcmlhYmxlKGlkZW50KSAmIERlY2xhcmF0aW9uUmVzdWx0OjpJ
bnZhbGlkU3RyaWN0TW9kZSksICJDYW5ub3QgZGVjbGFyZSBhIG1ldGhvZCBuYW1lZCAnIiwgbWV0
aG9kSW5mby5uYW1lLT5pbXBsKCksICInIik7CiAgICAgICAgICAgICBtZXRob2RJbmZvLm5hbWUg
PSBpc0NvbnN0cnVjdG9yID8gY2xhc3NOYW1lIDogaWRlbnQ7CiAKICAgICAgICAgICAgIFRyZWVF
eHByZXNzaW9uIG1ldGhvZCA9IGNvbnRleHQuY3JlYXRlRnVuY3Rpb25FeHByKG1ldGhvZExvY2F0
aW9uLCBtZXRob2RJbmZvKTsKQEAgLTIwMTIsNyArMjAxOSwxMSBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
Q2xhc3MoVAogICAgICAgICAgICAgLy8gRklYTUU6IFN5bnRheCBlcnJvciB3aGVuIHN1cGVyKCkg
aXMgY2FsbGVkCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoaXNTdGF0aWNNZXRob2Qg
JiYgbWV0aG9kSW5mby5uYW1lICYmICptZXRob2RJbmZvLm5hbWUgPT0gcHJvcGVydHlOYW1lcy5w
cm90b3R5cGUsCiAgICAgICAgICAgICAgICAgIkNhbm5vdCBkZWNsYXJlIGEgc3RhdGljIG1ldGhv
ZCBuYW1lZCAncHJvdG90eXBlJyIpOwotICAgICAgICAgICAgcHJvcGVydHkgPSBjb250ZXh0LmNy
ZWF0ZVByb3BlcnR5KG1ldGhvZEluZm8ubmFtZSwgbWV0aG9kLCBQcm9wZXJ0eU5vZGU6OkNvbnN0
YW50LCBQcm9wZXJ0eU5vZGU6OlVua25vd24sIGFsd2F5c1N0cmljdEluc2lkZUNsYXNzLCBTdXBl
ckJpbmRpbmc6Ok5lZWRlZCk7CisgICAgICAgICAgICBpZiAoY29tcHV0ZWRQcm9wZXJ0eU5hbWUp
IHsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IGNvbnRleHQuY3JlYXRlUHJvcGVydHkoY29t
cHV0ZWRQcm9wZXJ0eU5hbWUsIG1ldGhvZCwgc3RhdGljX2Nhc3Q8UHJvcGVydHlOb2RlOjpUeXBl
PihQcm9wZXJ0eU5vZGU6OkNvbnN0YW50IHwgUHJvcGVydHlOb2RlOjpDb21wdXRlZCksCisgICAg
ICAgICAgICAgICAgICAgIFByb3BlcnR5Tm9kZTo6VW5rbm93biwgYWx3YXlzU3RyaWN0SW5zaWRl
Q2xhc3MsIFN1cGVyQmluZGluZzo6TmVlZGVkKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAg
ICAgICAgICAgIHByb3BlcnR5ID0gY29udGV4dC5jcmVhdGVQcm9wZXJ0eShtZXRob2RJbmZvLm5h
bWUsIG1ldGhvZCwgUHJvcGVydHlOb2RlOjpDb25zdGFudCwgUHJvcGVydHlOb2RlOjpVbmtub3du
LCBhbHdheXNTdHJpY3RJbnNpZGVDbGFzcywgU3VwZXJCaW5kaW5nOjpOZWVkZWQpOwogICAgICAg
ICB9CiAKICAgICAgICAgVHJlZVByb3BlcnR5TGlzdCYgdGFpbCA9IGlzU3RhdGljTWV0aG9kID8g
c3RhdGljTWV0aG9kc1RhaWwgOiBpbnN0YW5jZU1ldGhvZHNUYWlsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCAwNzYwYzE5ZWIxNjM2ZGIyMWEx
Nzk2MTJhNTQ5NmUxOWNmZDFiYjA3Li45ZGRjMDUyNTIwMDg1YjEwMDllODVkYzgwMTI0MTFhMzcx
OWQxODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENo
ZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIu
aApAQCAtMjE4LDcgKzIxOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBQcm9wZXJ0
eSh0eXBlKTsKICAgICAgICAgcmV0dXJuIFByb3BlcnR5KCZwYXJzZXJBcmVuYS5pZGVudGlmaWVy
QXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50aWZpZXIodm0sIG5hbWUpLCB0eXBlKTsKICAgICB9Ci0g
ICAgUHJvcGVydHkgY3JlYXRlUHJvcGVydHkoaW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0
eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUsIGJvb2wpCisgICAgUHJvcGVydHkgY3JlYXRlUHJv
cGVydHkoaW50LCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1
dFR5cGUsIGJvb2wsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQogICAg
IHsKICAgICAgICAgcmV0dXJuIFByb3BlcnR5KHR5cGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCAwNTQxNTQ0ODhlNTFkNjM1YmQ3YTRj
MmE3MmIzMzUwNmI1NzBkZDJmLi4xOWIyMDQ3MTdhM2UxNDRhMTJmYmViNzYxNzIzZjE3ZDEzYmMx
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0x
MTk4LDIxICsxMTk4LDMxIEBAIGJvb2wgSlNPYmplY3Q6OmFsbG93c0FjY2Vzc0Zyb20oRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPmFsbG93c0FjY2Vzc0Zyb20oZ2xvYmFsT2JqZWN0LCBleGVjKTsKIH0KIAotdm9pZCBK
U09iamVjdDo6cHV0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSBnZXR0ZXIpCit2b2lkIEpTT2JqZWN0OjpwdXRHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIGdldHRlciwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKIHsKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAg
ICBkZXNjcmlwdG9yLnNldEdldHRlcihnZXR0ZXIpOwotICAgIGRlc2NyaXB0b3Iuc2V0RW51bWVy
YWJsZSh0cnVlKTsKLSAgICBkZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKKworICAg
IEFTU0VSVChhdHRyaWJ1dGVzICYgQWNjZXNzb3IpOworICAgIGlmICghKGF0dHJpYnV0ZXMgJiBS
ZWFkT25seSkpCisgICAgICAgIGRlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOworICAg
IGlmICghKGF0dHJpYnV0ZXMgJiBEb250RW51bSkpCisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RW51
bWVyYWJsZSh0cnVlKTsKKwogICAgIGRlZmluZU93blByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgZmFsc2UpOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXRTZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHNl
dHRlcikKK3ZvaWQgSlNPYmplY3Q6OnB1dFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgc2V0dGVyLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQog
ewogICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwogICAgIGRlc2NyaXB0b3Iuc2V0
U2V0dGVyKHNldHRlcik7Ci0gICAgZGVzY3JpcHRvci5zZXRFbnVtZXJhYmxlKHRydWUpOwotICAg
IGRlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOworCisgICAgQVNTRVJUKGF0dHJpYnV0
ZXMgJiBBY2Nlc3Nvcik7CisgICAgaWYgKCEoYXR0cmlidXRlcyAmIFJlYWRPbmx5KSkKKyAgICAg
ICAgZGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7CisgICAgaWYgKCEoYXR0cmlidXRl
cyAmIERvbnRFbnVtKSkKKyAgICAgICAgZGVzY3JpcHRvci5zZXRFbnVtZXJhYmxlKHRydWUpOwor
CiAgICAgZGVmaW5lT3duUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yLCBmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CmluZGV4IDJjNWI4ZjczMzExYTE0ZjIzZmQ2YjQxMDBlMTIxY2QwZGUwY2Q2YmUuLmU1ZWViMjYw
NGFjZjJkMmZkYWU3MGNjODc0NzA1ZGM5MjM1N2NlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaApAQCAtNDY3LDggKzQ2Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHB1dERpcmVjdEFjY2Vzc29yKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcyk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBwdXREaXJlY3RD
dXN0b21BY2Nlc3NvcihWTSYsIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmli
dXRlcyk7CiAKLSAgICB2b2lkIHB1dEdldHRlcihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpT
VmFsdWUpOwotICAgIHZvaWQgcHV0U2V0dGVyKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CisgICAgdm9pZCBwdXRHZXR0ZXIoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKKyAgICB2b2lkIHB1dFNldHRlcihFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCBoYXNQcm9wZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUp
IGNvbnN0OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzUHJvcGVydHkoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MWZjNjNiNzY4OTc0NjE0
MmZmYjU3ZGFmMjM2MDkzMGM2NDMxYTNhLi5jNDhjMGMyOTQ3MjJlOGMzNGI5MTY3OTAyNWQ3MTEw
ZGU5MDZiMTE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDgtMTQgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRVM2IGNsYXNzIHN5bnRheCBzaG91bGQg
YWxsb3cgY29tcHV0ZWQgbmFtZSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIGNvbXB1dGVkIG1ldGhvZCBu
YW1lcy4KKworICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtbWV0aG9kLW5hbWVz
LmpzOgorCiAyMDE1LTA4LTE0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIEZyZXF1ZW50IGFzc2VydGlvbnMgb24gYW5pbWF0aW9ucy9yZXN0YXJ0LWFmdGVy
LXNjcm9sbC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtbWV0
aG9kLW5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1tZXRo
b2QtbmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IGM1YTQ5YjU2Nzg0ZmY3YjlkOTkxNzhkMDEzZjZk
NTYzNGYxMGIwNjEuLjhhZDljNzZmODFiOWViNWRkOWYxMGU4MGEyNWUzMGU3MTJiZWRjMWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1tZXRob2QtbmFtZXMtZXhw
ZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBUZXN0cyBmb3IgdmFyaW91cyBtZXRob2QgbmFtZXMK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitJbnN0YW5jZSBtZXRob2RzCiBQQVNTIGNs
YXNzIEEgeyAwLjEoKSB7IHJldHVybiAxOyB9IH07IChuZXcgQSlbMC4xXSgpIGlzIDEKIFBBU1Mg
Y2xhc3MgQSB7IGdldCgpIHsgcmV0dXJuIDI7IH0gfTsgKG5ldyBBKS5nZXQoKSBpcyAyCiBQQVNT
IGNsYXNzIEEgeyBzZXQoKSB7IHJldHVybiAzOyB9IH07IChuZXcgQSkuc2V0KCkgaXMgMwpAQCAt
MTAsNiArMTEsOCBAQCBQQVNTIGNsYXNzIEEgeyBnZXQgZ2V0KCkgeyByZXR1cm4gNDsgfSB9OyAo
bmV3IEEpLmdldCBpcyA0CiBQQVNTIGNsYXNzIEEgeyBnZXQgc2V0KCkgeyByZXR1cm4gNTsgfSB9
OyAobmV3IEEpLnNldCBpcyA1CiBQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBB
IHsgc2V0IGdldCh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyAobmV3IEEpLmdldCA9IDY7IHNl
dHRlclZhbHVlIGlzIDYKIFBBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBz
ZXQgc2V0KHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IChuZXcgQSkuc2V0ID0gNzsgc2V0dGVy
VmFsdWUgaXMgNworCitTdGF0aWMgbWV0aG9kcwogUEFTUyBjbGFzcyBBIHsgc3RhdGljIDAuMSgp
IHsgcmV0dXJuIDEwMTsgfSB9OyBBWzAuMV0oKSBpcyAxMDEKIFBBU1MgY2xhc3MgQSB7IHN0YXRp
YyBnZXQoKSB7IHJldHVybiAxMDI7IH0gfTsgQS5nZXQoKSBpcyAxMDIKIFBBU1MgY2xhc3MgQSB7
IHN0YXRpYyBzZXQoKSB7IHJldHVybiAxMDM7IH0gfTsgQS5zZXQoKSBpcyAxMDMKQEAgLTE3LDYg
KzIwLDY2IEBAIFBBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZ2V0KCkgeyByZXR1cm4gMTA0OyB9
IH07IEEuZ2V0IGlzIDEwNAogUEFTUyBjbGFzcyBBIHsgc3RhdGljIGdldCBzZXQoKSB7IHJldHVy
biAxMDU7IH0gfTsgQS5zZXQgaXMgMTA1CiBQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBj
bGFzcyBBIHsgc3RhdGljIHNldCBnZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgQS5nZXQg
PSAxMDY7IHNldHRlclZhbHVlIGlzIDEwNgogUEFTUyBzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsg
Y2xhc3MgQSB7IHN0YXRpYyBzZXQgc2V0KHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IEEuc2V0
ID0gMTA3OyBzZXR0ZXJWYWx1ZSBpcyAxMDcKKworSW5zdGFuY2UgbWV0aG9kcyB3aXRoIGNvbXB1
dGVkIG5hbWVzCitQQVNTIGNsYXNzIEEgeyBbJ2EnICsgJ2InXSgpIHsgcmV0dXJuIDIxMTsgfSB9
OyAobmV3IEEpLmFiKCkgaXMgMjExCitQQVNTIGNsYXNzIEEgeyBbJ2EnICsgMF0oKSB7IHJldHVy
biAyMTI7IH0gfTsgKG5ldyBBKS5hMCgpIGlzIDIxMgorUEFTUyBjbGFzcyBBIHsgWzAuMV0oKSB7
IHJldHVybiAyMTM7IH0gfTsgKG5ldyBBKVswLjFdKCkgaXMgMjEzCitQQVNTIGNsYXNzIEEgeyBb
MV0oKSB7IHJldHVybiAyMTQ7IH0gfTsgKG5ldyBBKVsxXSgpIGlzIDIxNAorUEFTUyBBID0gY3Jl
YXRlQ2xhc3NXaXRoSW5zdGFuY2VNZXRob2QoJ2ZvbycsIDIxNSk7IChuZXcgQSlbJ2ZvbyddKCkg
aXMgMjE1CitQQVNTIEEgPSBjcmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1ldGhvZCgnZm9vJywgMjE2
KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdiYXInLCAyMTcpOyBbKG5ldyBB
KVsnZm9vJ10oKSwgKG5ldyBCKVsnYmFyJ10oKV0gaXMgWzIxNiwgMjE3XQorCitTdGF0aWMgbWV0
aG9kcyB3aXRoIGNvbXB1dGVkIG5hbWVzCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgWydhJyArICdi
J10oKSB7IHJldHVybiAzMTE7IH0gfTsgQS5hYigpIGlzIDMxMQorUEFTUyBjbGFzcyBBIHsgc3Rh
dGljIFsnYScgKyAwXSgpIHsgcmV0dXJuIDMxMjsgfSB9OyBBLmEwKCkgaXMgMzEyCitQQVNTIGNs
YXNzIEEgeyBzdGF0aWMgWzAuMV0oKSB7IHJldHVybiAzMTM7IH0gfTsgQVswLjFdKCkgaXMgMzEz
CitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgWzFdKCkgeyByZXR1cm4gMzE0OyB9IH07IEFbMV0oKSBp
cyAzMTQKK1BBU1MgQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnZm9vJywgMzE1KTsg
QVsnZm9vJ10oKSBpcyAzMTUKK1BBU1MgQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgn
Zm9vJywgMzE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnYmFyJywgMzE3KTsg
W0FbJ2ZvbyddKCksIEJbJ2JhciddKCldIGlzIFszMTYsIDMxN10KKworSW5zdGFuY2UgbWV0aG9k
cyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMKK1BBU1MgY2xhc3MgQSB7IGFiKCkgeyByZXR1cm4gNDAx
IH0gYWIoKSB7IHJldHVybiA0MDI7IH0gfTsgKG5ldyBBKS5hYigpIGlzIDQwMgorUEFTUyBjbGFz
cyBBIHsgJ2EnKCkgeyByZXR1cm4gNDAzIH0gJ2EnKCkgeyByZXR1cm4gNDA0OyB9IH07IChuZXcg
QSkuYSgpIGlzIDQwNAorUEFTUyBjbGFzcyBBIHsgMSgpIHsgcmV0dXJuIDQwNSB9IDEoKSB7IHJl
dHVybiA0MDY7IH0gfTsgKG5ldyBBKVsxXSgpIGlzIDQwNgorUEFTUyBjbGFzcyBBIHsgMC4xKCkg
eyByZXR1cm4gNDA3IH0gMC4xKCkgeyByZXR1cm4gNDA4OyB9IH07IChuZXcgQSlbMC4xXSgpIGlz
IDQwOAorUEFTUyBjbGFzcyBBIHsgYWIoKSB7IHJldHVybiA0MDkgfSBbJ2EnICsgJ2InXSgpIHsg
cmV0dXJuIDQxMDsgfSB9OyAobmV3IEEpLmFiKCkgaXMgNDEwCitQQVNTIGNsYXNzIEEgeyBbJ2Fi
J10oKSB7IHJldHVybiA0MTEgfSBhYigpIHsgcmV0dXJuIDQxMjsgfSB9OyAobmV3IEEpLmFiKCkg
aXMgNDEyCitQQVNTIGNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDEzIH0gWydhJ10oKSB7IHJldHVy
biA0MTQ7IH0gYSgpIHsgcmV0dXJuIDQxNTsgfSB9OyAobmV3IEEpLmEoKSBpcyA0MTUKK1BBU1Mg
Y2xhc3MgQSB7IFsnYiddKCkgeyByZXR1cm4gNDE2IH0gYigpIHsgcmV0dXJuIDQxNzsgfSBbJ2In
XSgpIHsgcmV0dXJuIDQxODsgfSB9OyAobmV3IEEpLmIoKSBpcyA0MTgKK1BBU1MgY2xhc3MgQSB7
IGEoKSB7IHJldHVybiA0MTkgfSBnZXQgYSgpIHsgcmV0dXJuIDQyMDsgfSB9OyAobmV3IEEpLmEg
aXMgNDIwCitQQVNTIGNsYXNzIEEgeyBnZXQgYSgpIHsgcmV0dXJuIDQyMSB9IGEoKSB7IHJldHVy
biA0MjIgfSB9OyAobmV3IEEpLmEoKSBpcyA0MjIKK1BBU1Mgc2V0dGVyVmFsdWUgPSB1bmRlZmlu
ZWQ7IGNsYXNzIEEgeyBhKCkgeyByZXR1cm4gNDIzIH0gc2V0IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9
IHggfSB9OyAobmV3IEEpLmEgPSA0MjQ7IHNldHRlclZhbHVlIGlzIDQyNAorUEFTUyBzZXR0ZXJW
YWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBhKHgpIHsgc2V0dGVyVmFsdWUgPSB4IH0g
YSgpIHsgcmV0dXJuIDQyNSB9IH07IChuZXcgQSkuYSgpIGlzIDQyNQorUEFTUyBzZXR0ZXJWYWx1
ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IGdldCBmb28oKSB7IHJldHVybiA0MjYgfSBzZXQgZm9v
KHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IGEgPSBuZXcgQTsgYS5mb28gPSBhLmZvbzsgc2V0
dGVyVmFsdWUgaXMgNDI2CitQQVNTIGNsYXNzIEEgeyBnZXQgZm9vKCkgeyB9IGZvbygpIHsgfSBz
ZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMg
Wyd2YWx1ZSddCitQQVNTIGNsYXNzIEEgeyBzZXQgZm9vKHgpIHsgfSBmb28oKSB7IH0gZ2V0IGZv
bygpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMgWyd2YWx1
ZSddCitQQVNTIGNsYXNzIEEgeyBmb28oKSB7IH0gZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsg
fSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19wcm90b19fLCAnZm9vJykgaXMgWydnZXQnLCAnc2V0
J10KK1BBU1MgY2xhc3MgQSB7IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSBnZXQgZm9vKCkgeyB9
IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28nKSBpcyBbJ2dldCcsICdzZXQn
XQorUEFTUyBjbGFzcyBBIHsgZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSBmb28oKSB7IH0g
fTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFT
UyBjbGFzcyBBIHsgc2V0IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSBmb28oKSB7IH0gfTsgdmFs
dWVUeXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIGlzIFsndmFsdWUnXQorCitTdGF0aWMg
bWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBhYigp
IHsgcmV0dXJuIDUwMSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwMjsgfSB9OyBBLmFiKCkgaXMg
NTAyCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgJ2EnKCkgeyByZXR1cm4gNTAzIH0gc3RhdGljICdh
JygpIHsgcmV0dXJuIDUwNDsgfSB9OyBBLmEoKSBpcyA1MDQKK1BBU1MgY2xhc3MgQSB7IHN0YXRp
YyAxKCkgeyByZXR1cm4gNTA1IH0gc3RhdGljIDEoKSB7IHJldHVybiA1MDY7IH0gfTsgQVsxXSgp
IGlzIDUwNgorUEFTUyBjbGFzcyBBIHsgc3RhdGljIDAuMSgpIHsgcmV0dXJuIDUwNyB9IHN0YXRp
YyAwLjEoKSB7IHJldHVybiA1MDg7IH0gfTsgQVswLjFdKCkgaXMgNTA4CitQQVNTIGNsYXNzIEEg
eyBzdGF0aWMgYWIoKSB7IHJldHVybiA1MDkgfSBzdGF0aWMgWydhJyArICdiJ10oKSB7IHJldHVy
biA1MTA7IH0gfTsgQS5hYigpIGlzIDUxMAorUEFTUyBjbGFzcyBBIHsgc3RhdGljIFsnYWInXSgp
IHsgcmV0dXJuIDUxMSB9IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUxMjsgfSB9OyBBLmFiKCkgaXMg
NTEyCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxMyB9IHN0YXRpYyBbJ2En
XSgpIHsgcmV0dXJuIDUxNDsgfSBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxNTsgfSB9OyBBLmEoKSBp
cyA1MTUKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBbJ2InXSgpIHsgcmV0dXJuIDUxNiB9IHN0YXRp
YyBiKCkgeyByZXR1cm4gNTE3OyB9IHN0YXRpYyBbJ2InXSgpIHsgcmV0dXJuIDUxODsgfSB9OyBB
LmIoKSBpcyA1MTgKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBhKCkgeyByZXR1cm4gNTE5IH0gc3Rh
dGljIGdldCBhKCkgeyByZXR1cm4gNTIwOyB9IH07IEEuYSBpcyA1MjAKK1BBU1MgY2xhc3MgQSB7
IHN0YXRpYyBnZXQgYSgpIHsgcmV0dXJuIDUyMSB9IHN0YXRpYyBhKCkgeyByZXR1cm4gNTIyIH0g
fTsgQS5hKCkgaXMgNTIyCitQQVNTIHNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsg
c3RhdGljIGEoKSB7IHJldHVybiA1MjMgfSBzdGF0aWMgc2V0IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9
IHggfSB9OyBBLmEgPSA1MjQ7IHNldHRlclZhbHVlIGlzIDUyNAorUEFTUyBzZXR0ZXJWYWx1ZSA9
IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHN0YXRpYyBzZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9
IHN0YXRpYyBhKCkgeyByZXR1cm4gNTI1IH0gfTsgQS5hKCkgaXMgNTI1CitQQVNTIHNldHRlclZh
bHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3RhdGljIGdldCBmb28oKSB7IHJldHVybiA1MjYg
fSBzdGF0aWMgc2V0IGZvbyh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBBLmZvbyA9IEEuZm9v
OyBzZXR0ZXJWYWx1ZSBpcyA1MjYKK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZm9vKCkgeyB9
IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIHNldCBmb28oeCkgeyB9IH07IHZhbHVlVHlwZXMoQSwg
J2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIHNldCBmb28oeCkgeyB9
IHN0YXRpYyBmb28oKSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcyhBLCAn
Zm9vJykgaXMgWyd2YWx1ZSddCitQQVNTIGNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9IHN0YXRp
YyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdm
b28nKSBpcyBbJ2dldCcsICdzZXQnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIGZvbygpIHsgfSBz
dGF0aWMgc2V0IGZvbyh4KSB7IH0gc3RhdGljIGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcyhB
LCAnZm9vJykgaXMgWydnZXQnLCAnc2V0J10KK1BBU1MgY2xhc3MgQSB7IHN0YXRpYyBnZXQgZm9v
KCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IH07IHZhbHVlVHlw
ZXMoQSwgJ2ZvbycpIGlzIFsndmFsdWUnXQorUEFTUyBjbGFzcyBBIHsgc3RhdGljIHNldCBmb28o
eCkgeyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBmb28oKSB7IH0gfTsgdmFsdWVUeXBl
cyhBLCAnZm9vJykgaXMgWyd2YWx1ZSddCisKK1N0YXRpYyBtZXRob2RzIHdpdGggZHVwbGljYXRl
ZCBuYW1lcwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LW1l
dGhvZC1uYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgt
bWV0aG9kLW5hbWVzLmpzCmluZGV4IGQwMWM2OGYwNzZmNTViZGQ4ZDExYzk2ODljZjA0NzRiMWMz
YzMzNjEuLjdiNjk3NTBlYmU5ZWQ0Mjk5YTczZjUyNGMzOGUwOGNkOWZjYzk0NjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtbWV0aG9kLW5hbWVz
LmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtbWV0aG9k
LW5hbWVzLmpzCkBAIC0xLDUgKzEsNiBAQAogZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciB2YXJpb3Vz
IG1ldGhvZCBuYW1lcycpOwogCitkZWJ1ZygnSW5zdGFuY2UgbWV0aG9kcycpOwogc2hvdWxkQmUo
ImNsYXNzIEEgeyAwLjEoKSB7IHJldHVybiAxOyB9IH07IChuZXcgQSlbMC4xXSgpIiwgIjEiKTsK
IHNob3VsZEJlKCJjbGFzcyBBIHsgZ2V0KCkgeyByZXR1cm4gMjsgfSB9OyAobmV3IEEpLmdldCgp
IiwgIjIiKTsKIHNob3VsZEJlKCJjbGFzcyBBIHsgc2V0KCkgeyByZXR1cm4gMzsgfSB9OyAobmV3
IEEpLnNldCgpIiwgIjMiKTsKQEAgLTgsNiArOSw4IEBAIHNob3VsZEJlKCJjbGFzcyBBIHsgZ2V0
IHNldCgpIHsgcmV0dXJuIDU7IH0gfTsgKG5ldyBBKS5zZXQiLCAiNSIpOwogc2hvdWxkQmUoInNl
dHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc2V0IGdldCh4KSB7IHNldHRlclZhbHVl
ID0geDsgfSB9OyAobmV3IEEpLmdldCA9IDY7IHNldHRlclZhbHVlIiwgIjYiKTsKIHNob3VsZEJl
KCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IHNldCBzZXQoeCkgeyBzZXR0ZXJW
YWx1ZSA9IHg7IH0gfTsgKG5ldyBBKS5zZXQgPSA3OyBzZXR0ZXJWYWx1ZSIsICI3Iik7CiAKK2Rl
YnVnKCcnKTsKK2RlYnVnKCdTdGF0aWMgbWV0aG9kcycpOwogc2hvdWxkQmUoImNsYXNzIEEgeyBz
dGF0aWMgMC4xKCkgeyByZXR1cm4gMTAxOyB9IH07IEFbMC4xXSgpIiwgIjEwMSIpOwogc2hvdWxk
QmUoImNsYXNzIEEgeyBzdGF0aWMgZ2V0KCkgeyByZXR1cm4gMTAyOyB9IH07IEEuZ2V0KCkiLCAi
MTAyIik7CiBzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBzZXQoKSB7IHJldHVybiAxMDM7IH0g
fTsgQS5zZXQoKSIsICIxMDMiKTsKQEAgLTE1LDMgKzE4LDc0IEBAIHNob3VsZEJlKCJjbGFzcyBB
IHsgc3RhdGljIGdldCBnZXQoKSB7IHJldHVybiAxMDQ7IH0gfTsgQS5nZXQiLCAiMTA0Iik7CiBz
aG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBnZXQgc2V0KCkgeyByZXR1cm4gMTA1OyB9IH07IEEu
c2V0IiwgIjEwNSIpOwogc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBB
IHsgc3RhdGljIHNldCBnZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgQS5nZXQgPSAxMDY7
IHNldHRlclZhbHVlIiwgIjEwNiIpOwogc2hvdWxkQmUoInNldHRlclZhbHVlID0gdW5kZWZpbmVk
OyBjbGFzcyBBIHsgc3RhdGljIHNldCBzZXQoeCkgeyBzZXR0ZXJWYWx1ZSA9IHg7IH0gfTsgQS5z
ZXQgPSAxMDc7IHNldHRlclZhbHVlIiwgIjEwNyIpOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnSW5z
dGFuY2UgbWV0aG9kcyB3aXRoIGNvbXB1dGVkIG5hbWVzJyk7CitzaG91bGRCZSgiY2xhc3MgQSB7
IFsnYScgKyAnYiddKCkgeyByZXR1cm4gMjExOyB9IH07IChuZXcgQSkuYWIoKSIsICIyMTEiKTsK
K3Nob3VsZEJlKCJjbGFzcyBBIHsgWydhJyArIDBdKCkgeyByZXR1cm4gMjEyOyB9IH07IChuZXcg
QSkuYTAoKSIsICIyMTIiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWzAuMV0oKSB7IHJldHVybiAy
MTM7IH0gfTsgKG5ldyBBKVswLjFdKCkiLCAiMjEzIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IFsx
XSgpIHsgcmV0dXJuIDIxNDsgfSB9OyAobmV3IEEpWzFdKCkiLCAiMjE0Iik7CitmdW5jdGlvbiBj
cmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1ldGhvZChuYW1lLCB2YWx1ZSkgeyByZXR1cm4gY2xhc3Mg
eyBbbmFtZV0oKSB7IHJldHVybiB2YWx1ZTsgfSB9IH07CitzaG91bGRCZSgiQSA9IGNyZWF0ZUNs
YXNzV2l0aEluc3RhbmNlTWV0aG9kKCdmb28nLCAyMTUpOyAobmV3IEEpWydmb28nXSgpIiwgIjIx
NSIpOworc2hvdWxkQmUoIkEgPSBjcmVhdGVDbGFzc1dpdGhJbnN0YW5jZU1ldGhvZCgnZm9vJywg
MjE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aEluc3RhbmNlTWV0aG9kKCdiYXInLCAyMTcpOyBbKG5l
dyBBKVsnZm9vJ10oKSwgKG5ldyBCKVsnYmFyJ10oKV0iLCAiWzIxNiwgMjE3XSIpOworCitkZWJ1
ZygnJyk7CitkZWJ1ZygnU3RhdGljIG1ldGhvZHMgd2l0aCBjb21wdXRlZCBuYW1lcycpOworc2hv
dWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWydhJyArICdiJ10oKSB7IHJldHVybiAzMTE7IH0gfTsg
QS5hYigpIiwgIjMxMSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWydhJyArIDBdKCkg
eyByZXR1cm4gMzEyOyB9IH07IEEuYTAoKSIsICIzMTIiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsg
c3RhdGljIFswLjFdKCkgeyByZXR1cm4gMzEzOyB9IH07IEFbMC4xXSgpIiwgIjMxMyIpOworc2hv
dWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgWzFdKCkgeyByZXR1cm4gMzE0OyB9IH07IEFbMV0oKSIs
ICIzMTQiKTsKK2Z1bmN0aW9uIGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZChuYW1lLCB2YWx1
ZSkgeyByZXR1cm4gY2xhc3MgeyBzdGF0aWMgW25hbWVdKCkgeyByZXR1cm4gdmFsdWU7IH0gfSB9
Oworc2hvdWxkQmUoIkEgPSBjcmVhdGVDbGFzc1dpdGhTdGF0aWNNZXRob2QoJ2ZvbycsIDMxNSk7
IEFbJ2ZvbyddKCkiLCAiMzE1Iik7CitzaG91bGRCZSgiQSA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRp
Y01ldGhvZCgnZm9vJywgMzE2KTsgQiA9IGNyZWF0ZUNsYXNzV2l0aFN0YXRpY01ldGhvZCgnYmFy
JywgMzE3KTsgW0FbJ2ZvbyddKCksIEJbJ2JhciddKCldIiwgIlszMTYsIDMxN10iKTsKKworZGVi
dWcoJycpOworZGVidWcoJ0luc3RhbmNlIG1ldGhvZHMgd2l0aCBkdXBsaWNhdGVkIG5hbWVzJyk7
CitzaG91bGRCZSgiY2xhc3MgQSB7IGFiKCkgeyByZXR1cm4gNDAxIH0gYWIoKSB7IHJldHVybiA0
MDI7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjQwMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyAnYSco
KSB7IHJldHVybiA0MDMgfSAnYScoKSB7IHJldHVybiA0MDQ7IH0gfTsgKG5ldyBBKS5hKCkiLCAi
NDA0Iik7CitzaG91bGRCZSgiY2xhc3MgQSB7IDEoKSB7IHJldHVybiA0MDUgfSAxKCkgeyByZXR1
cm4gNDA2OyB9IH07IChuZXcgQSlbMV0oKSIsICI0MDYiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsg
MC4xKCkgeyByZXR1cm4gNDA3IH0gMC4xKCkgeyByZXR1cm4gNDA4OyB9IH07IChuZXcgQSlbMC4x
XSgpIiwgIjQwOCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBhYigpIHsgcmV0dXJuIDQwOSB9IFsn
YScgKyAnYiddKCkgeyByZXR1cm4gNDEwOyB9IH07IChuZXcgQSkuYWIoKSIsICI0MTAiKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgWydhYiddKCkgeyByZXR1cm4gNDExIH0gYWIoKSB7IHJldHVybiA0
MTI7IH0gfTsgKG5ldyBBKS5hYigpIiwgIjQxMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBhKCkg
eyByZXR1cm4gNDEzIH0gWydhJ10oKSB7IHJldHVybiA0MTQ7IH0gYSgpIHsgcmV0dXJuIDQxNTsg
fSB9OyAobmV3IEEpLmEoKSIsICI0MTUiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgWydiJ10oKSB7
IHJldHVybiA0MTYgfSBiKCkgeyByZXR1cm4gNDE3OyB9IFsnYiddKCkgeyByZXR1cm4gNDE4OyB9
IH07IChuZXcgQSkuYigpIiwgIjQxOCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBhKCkgeyByZXR1
cm4gNDE5IH0gZ2V0IGEoKSB7IHJldHVybiA0MjA7IH0gfTsgKG5ldyBBKS5hIiwgIjQyMCIpOwor
c2hvdWxkQmUoImNsYXNzIEEgeyBnZXQgYSgpIHsgcmV0dXJuIDQyMSB9IGEoKSB7IHJldHVybiA0
MjIgfSB9OyAobmV3IEEpLmEoKSIsICI0MjIiKTsKK3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVu
ZGVmaW5lZDsgY2xhc3MgQSB7IGEoKSB7IHJldHVybiA0MjMgfSBzZXQgYSh4KSB7IHNldHRlclZh
bHVlID0geCB9IH07IChuZXcgQSkuYSA9IDQyNDsgc2V0dGVyVmFsdWUiLCAiNDI0Iik7CitzaG91
bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzZXQgYSh4KSB7IHNldHRl
clZhbHVlID0geCB9IGEoKSB7IHJldHVybiA0MjUgfSB9OyAobmV3IEEpLmEoKSIsICI0MjUiKTsK
K3Nob3VsZEJlKCJzZXR0ZXJWYWx1ZSA9IHVuZGVmaW5lZDsgY2xhc3MgQSB7IGdldCBmb28oKSB7
IHJldHVybiA0MjYgfSBzZXQgZm9vKHgpIHsgc2V0dGVyVmFsdWUgPSB4OyB9IH07IGEgPSBuZXcg
QTsgYS5mb28gPSBhLmZvbzsgc2V0dGVyVmFsdWUiLCAiNDI2Iik7CitmdW5jdGlvbiB2YWx1ZVR5
cGVzKG9iamVjdCwgcHJvZXBydHlOYW1lKSB7CisgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9lcHJ0eU5hbWUpOworICAgIHJldHVybiBb
J3ZhbHVlJywgJ2dldCcsICdzZXQnXS5maWx0ZXIoZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIG5h
bWUgaW4gZGVzY3JpcHRvcjsgfSk7Cit9CitzaG91bGRCZSgiY2xhc3MgQSB7IGdldCBmb28oKSB7
IH0gZm9vKCkgeyB9IHNldCBmb28oeCkgeyB9IH07IHZhbHVlVHlwZXMoKG5ldyBBKS5fX3Byb3Rv
X18sICdmb28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc2V0IGZvbyh4
KSB7IH0gZm9vKCkgeyB9IGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcygobmV3IEEpLl9fcHJv
dG9fXywgJ2ZvbycpIiwgIlsndmFsdWUnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBmb28oKSB7
IH0gZ2V0IGZvbygpIHsgfSBzZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKChuZXcgQSkuX19w
cm90b19fLCAnZm9vJykiLCAiWydnZXQnLCAnc2V0J10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsg
Zm9vKCkgeyB9IHNldCBmb28oeCkgeyB9IGdldCBmb28oKSB7IH0gfTsgdmFsdWVUeXBlcygobmV3
IEEpLl9fcHJvdG9fXywgJ2ZvbycpIiwgIlsnZ2V0JywgJ3NldCddIik7CitzaG91bGRCZSgiY2xh
c3MgQSB7IGdldCBmb28oKSB7IH0gc2V0IGZvbyh4KSB7IH0gZm9vKCkgeyB9IH07IHZhbHVlVHlw
ZXMoKG5ldyBBKS5fX3Byb3RvX18sICdmb28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJj
bGFzcyBBIHsgc2V0IGZvbyh4KSB7IH0gZ2V0IGZvbygpIHsgfSBmb28oKSB7IH0gfTsgdmFsdWVU
eXBlcygobmV3IEEpLl9fcHJvdG9fXywgJ2ZvbycpIiwgIlsndmFsdWUnXSIpOworCitkZWJ1Zygn
Jyk7CitkZWJ1ZygnU3RhdGljIG1ldGhvZHMgd2l0aCBkdXBsaWNhdGVkIG5hbWVzJyk7CitzaG91
bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwMSB9IHN0YXRpYyBhYigpIHsg
cmV0dXJuIDUwMjsgfSB9OyBBLmFiKCkiLCAiNTAyIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0
YXRpYyAnYScoKSB7IHJldHVybiA1MDMgfSBzdGF0aWMgJ2EnKCkgeyByZXR1cm4gNTA0OyB9IH07
IEEuYSgpIiwgIjUwNCIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgMSgpIHsgcmV0dXJu
IDUwNSB9IHN0YXRpYyAxKCkgeyByZXR1cm4gNTA2OyB9IH07IEFbMV0oKSIsICI1MDYiKTsKK3No
b3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIDAuMSgpIHsgcmV0dXJuIDUwNyB9IHN0YXRpYyAwLjEo
KSB7IHJldHVybiA1MDg7IH0gfTsgQVswLjFdKCkiLCAiNTA4Iik7CitzaG91bGRCZSgiY2xhc3Mg
QSB7IHN0YXRpYyBhYigpIHsgcmV0dXJuIDUwOSB9IHN0YXRpYyBbJ2EnICsgJ2InXSgpIHsgcmV0
dXJuIDUxMDsgfSB9OyBBLmFiKCkiLCAiNTEwIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRp
YyBbJ2FiJ10oKSB7IHJldHVybiA1MTEgfSBzdGF0aWMgYWIoKSB7IHJldHVybiA1MTI7IH0gfTsg
QS5hYigpIiwgIjUxMiIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJu
IDUxMyB9IHN0YXRpYyBbJ2EnXSgpIHsgcmV0dXJuIDUxNDsgfSBzdGF0aWMgYSgpIHsgcmV0dXJu
IDUxNTsgfSB9OyBBLmEoKSIsICI1MTUiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIFsn
YiddKCkgeyByZXR1cm4gNTE2IH0gc3RhdGljIGIoKSB7IHJldHVybiA1MTc7IH0gc3RhdGljIFsn
YiddKCkgeyByZXR1cm4gNTE4OyB9IH07IEEuYigpIiwgIjUxOCIpOworc2hvdWxkQmUoImNsYXNz
IEEgeyBzdGF0aWMgYSgpIHsgcmV0dXJuIDUxOSB9IHN0YXRpYyBnZXQgYSgpIHsgcmV0dXJuIDUy
MDsgfSB9OyBBLmEiLCAiNTIwIik7CitzaG91bGRCZSgiY2xhc3MgQSB7IHN0YXRpYyBnZXQgYSgp
IHsgcmV0dXJuIDUyMSB9IHN0YXRpYyBhKCkgeyByZXR1cm4gNTIyIH0gfTsgQS5hKCkiLCAiNTIy
Iik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUgPSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMg
YSgpIHsgcmV0dXJuIDUyMyB9IHN0YXRpYyBzZXQgYSh4KSB7IHNldHRlclZhbHVlID0geCB9IH07
IEEuYSA9IDUyNDsgc2V0dGVyVmFsdWUiLCAiNTI0Iik7CitzaG91bGRCZSgic2V0dGVyVmFsdWUg
PSB1bmRlZmluZWQ7IGNsYXNzIEEgeyBzdGF0aWMgc2V0IGEoeCkgeyBzZXR0ZXJWYWx1ZSA9IHgg
fSBzdGF0aWMgYSgpIHsgcmV0dXJuIDUyNSB9IH07IEEuYSgpIiwgIjUyNSIpOworc2hvdWxkQmUo
InNldHRlclZhbHVlID0gdW5kZWZpbmVkOyBjbGFzcyBBIHsgc3RhdGljIGdldCBmb28oKSB7IHJl
dHVybiA1MjYgfSBzdGF0aWMgc2V0IGZvbyh4KSB7IHNldHRlclZhbHVlID0geDsgfSB9OyBBLmZv
byA9IEEuZm9vOyBzZXR0ZXJWYWx1ZSIsICI1MjYiKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3Rh
dGljIGdldCBmb28oKSB7IH0gc3RhdGljIGZvbygpIHsgfSBzdGF0aWMgc2V0IGZvbyh4KSB7IH0g
fTsgdmFsdWVUeXBlcyhBLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7CitzaG91bGRCZSgiY2xhc3Mg
QSB7IHN0YXRpYyBzZXQgZm9vKHgpIHsgfSBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBnZXQgZm9v
KCkgeyB9IH07IHZhbHVlVHlwZXMoQSwgJ2ZvbycpIiwgIlsndmFsdWUnXSIpOworc2hvdWxkQmUo
ImNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBz
ZXQgZm9vKHgpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28nKSIsICJbJ2dldCcsICdzZXQnXSIp
Oworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZm9vKCkgeyB9IHN0YXRpYyBzZXQgZm9vKHgp
IHsgfSBzdGF0aWMgZ2V0IGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdmb28nKSIsICJbJ2dl
dCcsICdzZXQnXSIpOworc2hvdWxkQmUoImNsYXNzIEEgeyBzdGF0aWMgZ2V0IGZvbygpIHsgfSBz
dGF0aWMgc2V0IGZvbyh4KSB7IH0gc3RhdGljIGZvbygpIHsgfSB9OyB2YWx1ZVR5cGVzKEEsICdm
b28nKSIsICJbJ3ZhbHVlJ10iKTsKK3Nob3VsZEJlKCJjbGFzcyBBIHsgc3RhdGljIHNldCBmb28o
eCkgeyB9IHN0YXRpYyBnZXQgZm9vKCkgeyB9IHN0YXRpYyBmb28oKSB7IH0gfTsgdmFsdWVUeXBl
cyhBLCAnZm9vJykiLCAiWyd2YWx1ZSddIik7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdTdGF0aWMg
bWV0aG9kcyB3aXRoIGR1cGxpY2F0ZWQgbmFtZXMnKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>