<?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>131678</bug_id>
          
          <creation_ts>2014-04-15 09:24:25 -0700</creation_ts>
          <short_desc>REGRESSION(r167199): Caused a DYEBench regression and does not seem to improve perf on relevant websites (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2014-04-15 10:47:15 -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>New Bugs</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>131083</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>alecflett</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>oliver</cc>
    
    <cc>philipj</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1000864</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 09:24:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/167199 broke the build:
Caused a DYEBench regression and does not seem to improve perf on relevant websites (Requested by rniwa on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000866</commentid>
    <comment_count>1</comment_count>
      <attachid>229373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 09:25:01 -0700</bug_when>
    <thetext>Created attachment 229373
ROLLOUT of r167199

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000868</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 09:27:45 -0700</bug_when>
    <thetext>Attachment 229373 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSBoundFunction.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000887</commentid>
    <comment_count>3</comment_count>
      <attachid>229373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 10:47:09 -0700</bug_when>
    <thetext>Comment on attachment 229373
ROLLOUT of r167199

Clearing flags on attachment: 229373

Committed r167313: &lt;http://trac.webkit.org/changeset/167313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000888</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 10:47:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229373</attachid>
            <date>2014-04-15 09:25:01 -0700</date>
            <delta_ts>2014-04-15 10:47:09 -0700</delta_ts>
            <desc>ROLLOUT of r167199</desc>
            <filename>bug-131678-20140415092439.patch</filename>
            <type>text/plain</type>
            <size>110162</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MWE1MDQ5NTZkZTAwOWQ2NjUwMzJkYmRhYmM1ZWEyYjZlMjhiYzBlLi41M2YxYzRmMGUxYzdjNmQx
MjM5MGE1ZjA3ZGQyZDRmZjZmY2RjZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNC0wNC0xNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NzE5OSBhbmQgcjE2
NzI1MS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MTY3OAorCisgICAgICAgIENhdXNlZCBhIERZRUJlbmNoIHJlZ3Jlc3Npb24gYW5kIGRvZXMgbm90
IHNlZW0gdG8gaW1wcm92ZSBwZXJmCisgICAgICAgIG9uIHJlbGV2YW50IHdlYnNpdGVzIChSZXF1
ZXN0ZWQgYnkgcm5pd2Egb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0
czoKKworICAgICAgICAiUmV3cml0ZSBGdW5jdGlvbi5iaW5kIGFzIGEgYnVpbHRpbiIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTA4MworICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjcxOTkKKworICAgICAgICAiVXBk
YXRlIHRlc3QgcmVzdWx0IgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xNjcyNTEKKwogMjAxNC0wNC0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NzI3Mi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA5MzMyZmFjOTM4YmMwY2RjN2FmZmEyMDAzMjMwMTQwNWE3YzIxYmMzLi5lYTg1NTJl
OTI3YmE5MmNiNzcwZDJiN2ZjZDQyMjA2YTBiOGUyZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTQtMDQtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjcxOTkgYW5kIHIxNjcyNTEu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE2NzgK
KworICAgICAgICBDYXVzZWQgYSBEWUVCZW5jaCByZWdyZXNzaW9uIGFuZCBkb2VzIG5vdCBzZWVt
IHRvIGltcHJvdmUgcGVyZgorICAgICAgICBvbiByZWxldmFudCB3ZWJzaXRlcyAoUmVxdWVzdGVk
IGJ5IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisK
KyAgICAgICAgIlJld3JpdGUgRnVuY3Rpb24uYmluZCBhcyBhIGJ1aWx0aW4iCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEwODMKKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3MTk5CisKKyAgICAgICAgIlVwZGF0ZSB0
ZXN0IHJlc3VsdCIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3
MjUxCisKIDIwMTQtMDQtMTUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgbnVsbCBjaGVja2luZyBpbiBOYXZpZ2F0
b3JDb250ZW50VXRpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAK
aW5kZXggOGM5NDZlODNiZmM5YjkzYjQ3ZTJmM2Y4ZmRlMzM4YTE0MzBmNWU1Ny4uYjY3YzQwYjUw
ODFhOTE0ZGVlNzMyZmRjZjVlMWJjMWNkZTBiMzFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNyw3ICsxMjcsNiBAQCBKU09iamVjdFJlZiBKU09i
amVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3Ms
IEpTT2JqZQogCiAgICAgSlNDYWxsYmFja0NvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvciA9IEpTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0
dXJlKCksIGpzQ2xhc3MsIGNhbGxBc0NvbnN0cnVjdG9yKTsKICAgICBjb25zdHJ1Y3Rvci0+cHV0
RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGpzUHJv
dG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0gICAgY29uc3RydWN0
b3ItPnB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
Rm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwganNQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKICAgICByZXR1cm4gdG9SZWYoY29uc3RydWN0b3IpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCmluZGV4IDk3NTY2YjE2OTMw
NTgxYjUxMGJmODQzZDQ4YzVjMGYzYzFhZjM4M2MuLjFlODcyYzdjMGI1NmMzNDdkYjBiYzgzOGJl
MzMzYTUxZGVhMmExNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
Y3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYu
Y3BwCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKIHN0YXRpYyBib29sIHBhcnNlU2NyaXB0
KFZNKiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiB7
Ci0gICAgcmV0dXJuIEpTQzo6cGFyc2U8SlNDOjpQcm9ncmFtTm9kZT4odm0sIHNvdXJjZSwgMCwg
SWRlbnRpZmllcigpLCBKU1BhcnNlTm9ybWFsLCBKU1BhcnNlUHJvZ3JhbUNvZGUsIEpTTm90RnVu
Y3Rpb25LaW5kLCBlcnJvcik7CisgICAgcmV0dXJuIEpTQzo6cGFyc2U8SlNDOjpQcm9ncmFtTm9k
ZT4odm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlTm9ybWFsLCBKU1BhcnNlUHJv
Z3JhbUNvZGUsIGVycm9yKTsKIH0KIAogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYWMxZjNlMzg2ODZiMzgyYzFhOGEzMmY4MzdlM2FmODkwOTQzMjdj
YS4uMTNmODg0YTgxZTE4YWM4ZjdhYTQzODFiZWY2MTI0NDM1NTVkMTg2OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzk0LDYgKzM5NCw3IEBAIHNldChKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCiAgICAgcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcAogICAg
IHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCiAgICAgcnVudGltZS9KU0FycmF5SXRlcmF0
b3IuY3BwCisgICAgcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9KU0NK
U1ZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSlNDZWxsLmNwcAogICAgIHJ1bnRpbWUvSlNDb25zb2xl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggZDY2NmFiOWJj
NDk0ODljMTUwN2U5N2EzMzdlZDVlOWE1MGI3YTAwOC4uMjEwOGY5NGZlN2NlNTQ0OWRhMzEwODY5
NzM0MzE5MmE4ZDQ1ODRkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
CkBAIC02NDAsNiArNjQwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQXJyYXlCdWZmZXJWaWV3LmNwcCIgLz4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNCb3VuZEZ1bmN0aW9uLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNDSlNWYWx1ZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ2VsbC5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ29uc29sZS5jcHAiIC8+CkBAIC0xMzAwLDYgKzEzMDEs
NyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FycmF5QnVmZmVyVmll
dy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FycmF5QnVmZmVy
Vmlld0lubGluZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNB
cnJheUl0ZXJhdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
Qm91bmRGdW5jdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxK
U0NJbmxpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ0pT
VmFsdWUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNDSlNWYWx1
ZUlubGluZXMuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwppbmRleCAzMGE5MjI3NjJjZGI1ZTk5Y2JmMGE3N2Q5N2NhMWI4Y2M5MjYwMTQy
Li4xYjY4MWQ0ZDQ5Y2NiODRhZmYzMDQ2YmRmOWVkZGRjNGEwYmFlMzA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02MDYsNiArNjA2
LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNBcnJheS5jcHAiPgog
ICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQm91bmRGdW5jdGlvbi5jcHAiPgorICAgICAg
PEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTQ2VsbC5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0yMjUyLDYgKzIyNTUsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU0FycmF5LmgiPgogICAgICAgPEZpbHRlcj5y
dW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxydW50aW1lXEpTQm91bmRGdW5jdGlvbi5oIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxKU0NlbGwuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTI5MTdmZjFhOGYzMzY4
OTE3MjcxNjRiYjViNWU1ODI2MzhiOWFkMS4uMmMzZjE3Y2RkYzMzYzBmOTEwZDMxNzUzNzUyYmQz
MDYyYTZkMDViYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTUsNiArMTIx
NSw4IEBACiAJCTg2RjNFRUJEMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGM0VF
QjkxNjhDQ0Y3NTAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggKi87IH07CiAJCTg2
RjNFRUJFMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNFRUJBMTY4Q0NGNzUw
MDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSAqLzsgfTsKIAkJODZGM0VFQkYxNjhD
REU5MzAwNzdCOTJBIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCNjE2ODU1QTVCMDA3N0I5MkEgLyogT2Jq
Y1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKKwkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpT
Qm91bmRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1bmN0aW9uLmNwcCAq
LzsgfTsKKwkJODZGQTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGQTlFOTAxNDJC
QkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oICovOyB9OwogCQk5MDIxM0UzRDEyM0E0
MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDIxM0UzQjEyM0E0MEMyMDBENDIyRjMgLyogTWVt
b3J5U3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTkwMjEzRTNFMTIzQTQwQzIwMEQ0MjJGMyAvKiBN
ZW1vcnlTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MDIxM0UzQzEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDUyQzM0
MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA1MkMzMjBGQjc5MjE5MDA0OEZEQzMgLyogUGFy
c2VyQXJlbmEuY3BwICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg5LDggQEAKIAkJODZGNzVFRkIxNTFD
MDYyRjAwN0M5QkEzIC8qIFJlZ0V4cENhY2hlZFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWdFeHBDYWNoZWRSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NkY3NUVGQzE1MUMwNjJGMDA3QzlCQTMgLyogUmVnRXhwQ2FjaGVk
UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ0V4cENhY2hlZFJl
c3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkY3NUVGRDE1MUMwNjJGMDA3
QzlCQTMgLyogUmVnRXhwTWF0Y2hlc0FycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlZ0V4cE1hdGNoZXNBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg2RkE5RThGMTQyQkJCMkQwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCb3VuZEZ1bmN0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3
IC8qIEpTQm91bmRGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0JvdW5kRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAyMTNFM0Ix
MjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3MuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5U3RhdGlzdGljcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkwMjEzRTNDMTIzQTQwQzIwMEQ0MjJGMyAvKiBNZW1vcnlTdGF0aXN0
aWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeVN0YXRpc3RpY3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNTJDMzIwRkI3OTIxOTAwNDhGREMz
IC8qIFBhcnNlckFyZW5hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhcnNlckFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzMTgsNiAr
NDMyMiw4IEBACiAJCQkJMEYyQjY2QkMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJW
aWV3SW5saW5lcy5oICovLAogCQkJCUE3QkRBRUM0MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5
SXRlcmF0b3IuY3BwICovLAogCQkJCUE3QkRBRUM1MTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5
SXRlcmF0b3IuaCAqLywKKwkJCQk4NkZBOUU4RjE0MkJCQjJEMDAxNzczQjcgLyogSlNCb3VuZEZ1
bmN0aW9uLmNwcCAqLywKKwkJCQk4NkZBOUU5MDE0MkJCQjJFMDAxNzczQjcgLyogSlNCb3VuZEZ1
bmN0aW9uLmggKi8sCiAJCQkJQkM3RjhGQkEwRTE5RDFFRjAwODYzMkMwIC8qIEpTQ2VsbC5jcHAg
Ki8sCiAJCQkJQkMxMTY3RDgwRTE5QkNDOTAwODA2NkREIC8qIEpTQ2VsbC5oICovLAogCQkJCTBG
OTc0OTZGMTY4N0FERTIwMEE0RkY2QSAvKiBKU0NlbGxJbmxpbmVzLmggKi8sCkBAIC01OTMzLDYg
KzU5MzksNyBAQAogCQkJCUE3QkRBRUNCMTdGNEVBMTQwMEY2MTQwQyAvKiBKU0FycmF5SXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0Jh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEQxN0Q3MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jh
c2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk4NkZBOUU5MjE0MkJCQjJFMDAxNzczQjcg
LyogSlNCb3VuZEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxOTBFMTZGNUNE
MDBCMzQ0NjAgLyogSlNDYWxsYmFja0NvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQxQTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja09iamVjdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC03MTI2LDYgKzcxMzMsNyBAQAogCQkJCTBGMkI2NkU4MTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0JEQUVDQTE3RjRFQTE0MDBGNjE0MEMgLyogSlNBcnJheUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MjEzNTlCMEE2NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRjhBRjBBNTA4RDIwMDAwNUYwNjEgLyogSlNDYWxs
YmFja0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBGODkyMEE1MDhCMTAw
MDA1RjA2MSAvKiBKU0NhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRB
QkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4
ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuY3BwCmluZGV4IGQ2YzYyNDQzNzYxNjRiMmUyYjllYmIzMzM4MzIyNGI1MGJkMGE2
ODAuLjQzZTQyMWNlYjhjMTY0MTQxNzg0ZTNlNWQ5MGEwNjhiMDQ1Y2JkOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvCiB7CiAgICAgSlNUZXh0
UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAgICBQYXJzZXJFcnJvciBlcnJv
cjsKLSAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4o
Jm1fdm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlQnVpbHRpbiwgSlNQYXJzZVBy
b2dyYW1Db2RlLCBKU05vdEZ1bmN0aW9uS2luZCwgZXJyb3IsICZwb3NpdGlvbkJlZm9yZUxhc3RO
ZXdsaW5lKTsKKyAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFt
Tm9kZT4oJm1fdm0sIHNvdXJjZSwgMCwgSWRlbnRpZmllcigpLCBKU1BhcnNlQnVpbHRpbiwgSlNQ
YXJzZVByb2dyYW1Db2RlLCBlcnJvciwgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogCiAg
ICAgaWYgKCFwcm9ncmFtKSB7CiAgICAgICAgIGRhdGFMb2coIkZhdGFsIGVycm9yIGNvbXBpbGlu
ZyBidWlsdGluIGZ1bmN0aW9uICciLCBuYW1lLnN0cmluZygpLCAiJzogIiwgZXJyb3IubV9tZXNz
YWdlKTsKQEAgLTcxLDcgKzcxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0
aW5FeGVjdXRhYmxlczo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU28KICAgICBSRUxF
QVNFX0FTU0VSVChib2R5KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNsb3NlZFZhcmlhYmxlIDog
cHJvZ3JhbS0+Y2xvc2VkVmFyaWFibGVzKCkpIHsKICAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxl
ID09IG1fdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIGlmIChjbG9zZWRW
YXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQuaW1wbCgpKQog
ICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvRnVuY3Rpb24ucHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0Z1bmN0aW9uLnByb3RvdHlwZS5qcwppbmRleCBhNmZjMjhkYTdkOTZjZGI1M2QyMWQ0
NTJkNmJiNDMzZmJiZTcxYTJmLi4yYjc1NDBiMGNhMDQyNGFlNmE0NGNmNThlNmIxZmZjNjA4YjI0
NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb24u
cHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlv
bi5wcm90b3R5cGUuanMKQEAgLTMyLDE2NiArMzIsMyBAQCBmdW5jdGlvbiBhcHBseSh0aGlzVmFs
dWUsIGFyZ3VtZW50VmFsdWVzKSB7CiAgICAgInVzZSBzdHJpY3QiOwogICAgIHJldHVybiB0aGlz
LkBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKTsKIH0KLQotZnVuY3Rpb24gYmluZCh0
aGlzVmFsdWUgLyosIG9wdGlvbmFsIGFyZ3VtZW50cyAqLykKLXsKLSAgICAidXNlIHN0cmljdCI7
Ci0gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSB0aGlzOwotICAgIGlmICh0eXBlb2YgYm91bmRGdW5j
dGlvbiAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkNhbm5v
dCBiaW5kIG5vbi1mdW5jdGlvbiBvYmplY3QuIik7Ci0gICAgdmFyIGJpbmRpbmdGdW5jdGlvbjsK
LSAgICB2YXIgb3ZlcnNpemVkQ2FsbCA9IHVuZGVmaW5lZDsKLSAgICBpZiAoYXJndW1lbnRzLmxl
bmd0aCA8PSAxKSB7Ci0gICAgICAgIGJpbmRpbmdGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIGlmIChASXNDb25zdHJ1Y3RvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IGJvdW5kRnVuY3Rpb24oLi4uYXJndW1lbnRzKTsKLSAgICAgICAgICAgIHJldHVybiBib3VuZEZ1
bmN0aW9uLkBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50cyk7Ci0gICAgICAgIH0KLSAgICB9IGVs
c2UgewotICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKLSAgICAgICAgc3dp
dGNoIChsZW5ndGggLSAxIC8qIHNraXAgdGhpc1ZhbHVlICovKSB7Ci0gICAgICAgIGNhc2UgMTog
ewotICAgICAgICAgICAgdmFyIGJvdW5kUGFyYW1ldGVyID0gYXJndW1lbnRzWzFdOwotICAgICAg
ICAgICAgYmluZGluZ0Z1bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHZh
ciBhcmd1bWVudExlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgaWYg
KCFhcmd1bWVudExlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0
b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91
bmRQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5A
Y2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKGFyZ3VtZW50TGVuZ3RoID09IDEpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyLCBhcmd1bWVudHNbMF0pOwotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFy
YW1ldGVyLCBhcmd1bWVudHNbMF0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBpZiAoYXJndW1lbnRMZW5ndGggPT0gMikgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElz
Q29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVu
Y3Rpb24oYm91bmRQYXJhbWV0ZXIsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKTsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rpb24uQGNhbGwodGhpc1ZhbHVlLCBib3Vu
ZFBhcmFtZXRlciwgYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0pOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRMZW5ndGggPT0gMykgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIsIGFyZ3VtZW50c1swXSwgYXJn
dW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91
bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyLCBhcmd1bWVudHNbMF0s
IGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgdmFyIGNvbXBsZXRlQXJndW1lbnRzID0gW2JvdW5kUGFyYW1ldGVyLCAuLi5hcmd1
bWVudHNdOwotICAgICAgICAgICAgICAgIGlmICghb3ZlcnNpemVkQ2FsbCkgewotICAgICAgICAg
ICAgICAgICAgICBvdmVyc2l6ZWRDYWxsID0gZnVuY3Rpb24gKGlzQ29uc3RydWN0LCBib3VuZEZ1
bmN0aW9uLCB0aGlzVmFsdWUsIGNvbXBsZXRlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNDb25zdHJ1Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBib3VuZEZ1bmN0aW9uKC4uLmNvbXBsZXRlQXJndW1lbnRzKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBib3VuZEZ1bmN0aW9uLkBhcHBseSh0aGlzVmFsdWUsIGNvbXBs
ZXRlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcnNpemVkQ2FsbChASXNDb25zdHJ1Y3RvciwgYm91
bmRGdW5jdGlvbiwgdGhpc1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIDI6IHsKLSAgICAg
ICAgICAgIHZhciBib3VuZFBhcmFtZXRlcjEgPSBhcmd1bWVudHNbMV07Ci0gICAgICAgICAgICB2
YXIgYm91bmRQYXJhbWV0ZXIyID0gYXJndW1lbnRzWzJdOwotICAgICAgICAgICAgYmluZGluZ0Z1
bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmxl
bmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIx
LCBib3VuZFBhcmFtZXRlcjIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5j
dGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgg
PT0gMSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIx
LCBib3VuZFBhcmFtZXRlcjIsIGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3VuZEZ1bmN0aW9uLkBjYWxsKHRoaXNWYWx1ZSwgYm91bmRQYXJhbWV0ZXIxLCBib3Vu
ZFBhcmFtZXRlcjIsIGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBi
b3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBhcmd1bWVudHNb
MF0sIGFyZ3VtZW50c1sxXSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBib3VuZEZ1bmN0
aW9uLkBjYWxsKHRoaXNWYWx1ZSwgYm91bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGFy
Z3VtZW50c1swXSwgYXJndW1lbnRzWzFdKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJv
dW5kRnVuY3Rpb24oYm91bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGFyZ3VtZW50c1sw
XSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQ
YXJhbWV0ZXIyLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRlQXJndW1lbnRzID0g
W2JvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCAuLi5hcmd1bWVudHNdOwotICAgICAg
ICAgICAgICAgIGlmICghb3ZlcnNpemVkQ2FsbCkgewotICAgICAgICAgICAgICAgICAgICBvdmVy
c2l6ZWRDYWxsID0gZnVuY3Rpb24gKGlzQ29uc3RydWN0LCBib3VuZEZ1bmN0aW9uLCB0aGlzVmFs
dWUsIGNvbXBsZXRlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXND
b25zdHJ1Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1
bmN0aW9uKC4uLmNvbXBsZXRlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBib3VuZEZ1bmN0aW9uLkBhcHBseSh0aGlzVmFsdWUsIGNvbXBsZXRlQXJndW1lbnRzKTsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICByZXR1cm4gb3ZlcnNpemVkQ2FsbChASXNDb25zdHJ1Y3RvciwgYm91bmRGdW5jdGlvbiwgdGhp
c1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIDM6IHsKLSAgICAgICAgICAgIHZhciBib3Vu
ZFBhcmFtZXRlcjEgPSBhcmd1bWVudHNbMV07Ci0gICAgICAgICAgICB2YXIgYm91bmRQYXJhbWV0
ZXIyID0gYXJndW1lbnRzWzJdOwotICAgICAgICAgICAgdmFyIGJvdW5kUGFyYW1ldGVyMyA9IGFy
Z3VtZW50c1szXTsKLSAgICAgICAgICAgIGJpbmRpbmdGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3Vu
ZFBhcmFtZXRlcjMpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5A
Y2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBh
cmFtZXRlcjMpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoYXJndW1l
bnRzLmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChASXNDb25zdHJ1Y3Rv
cikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgYm91bmRGdW5jdGlvbihib3Vu
ZFBhcmFtZXRlcjEsIGJvdW5kUGFyYW1ldGVyMiwgYm91bmRQYXJhbWV0ZXIzLCBhcmd1bWVudHNb
MF0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AY2FsbCh0aGlz
VmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBhcmFtZXRlcjMs
IGFyZ3VtZW50c1swXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChh
cmd1bWVudHMubGVuZ3RoID09IDIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKEBJc0NvbnN0
cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9u
KGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBhcmFtZXRlcjMsIGFyZ3Vt
ZW50c1swXSwgYXJndW1lbnRzWzFdKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5k
RnVuY3Rpb24uQGNhbGwodGhpc1ZhbHVlLCBib3VuZFBhcmFtZXRlcjEsIGJvdW5kUGFyYW1ldGVy
MiwgYm91bmRQYXJhbWV0ZXIzLCBhcmd1bWVudHNbMF0sIGFyZ3VtZW50c1sxXSk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKEBJc0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBib3VuZEZ1bmN0aW9uKGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQ
YXJhbWV0ZXIyLCBib3VuZFBhcmFtZXRlcjMsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBh
cmd1bWVudHNbMl0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5A
Y2FsbCh0aGlzVmFsdWUsIGJvdW5kUGFyYW1ldGVyMSwgYm91bmRQYXJhbWV0ZXIyLCBib3VuZFBh
cmFtZXRlcjMsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgY29tcGxldGVBcmd1bWVudHMgPSBb
Ym91bmRQYXJhbWV0ZXIxLCBib3VuZFBhcmFtZXRlcjIsIGJvdW5kUGFyYW1ldGVyMywgLi4uYXJn
dW1lbnRzXTsKLSAgICAgICAgICAgICAgICBpZiAoIW92ZXJzaXplZENhbGwpIHsKLSAgICAgICAg
ICAgICAgICAgICAgb3ZlcnNpemVkQ2FsbCA9IGZ1bmN0aW9uIChpc0NvbnN0cnVjdCwgYm91bmRG
dW5jdGlvbiwgdGhpc1ZhbHVlLCBjb21wbGV0ZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzQ29uc3RydWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgYm91bmRGdW5jdGlvbiguLi5jb21wbGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYm91bmRGdW5jdGlvbi5AYXBwbHkodGhpc1ZhbHVlLCBjb21w
bGV0ZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJzaXplZENhbGwoQElzQ29uc3RydWN0b3IsIGJv
dW5kRnVuY3Rpb24sIHRoaXNWYWx1ZSwgY29tcGxldGVBcmd1bWVudHMpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIHZhciBib3VuZFBhcmFtZXRlcnMgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAxOyBpIDwgbGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgYm91bmRQYXJhbWV0ZXJzW2kg
LSAxXSA9IGFyZ3VtZW50c1tpXTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYmluZGluZ0Z1
bmN0aW9uID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmxl
bmd0aCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQElzQ29uc3RydWN0b3IpCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rpb24oLi4uYm91bmRQYXJhbWV0
ZXJzKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rpb24uQGFwcGx5KHRo
aXNWYWx1ZSwgYm91bmRQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIGNvbXBsZXRlQXJndW1lbnRzID0gW107Ci0gICAg
ICAgICAgICAgICAgdmFyIGxvY2FsQm91bmRQYXJhbWV0ZXJzID0gYm91bmRQYXJhbWV0ZXJzOwot
ICAgICAgICAgICAgICAgIHZhciBib3VuZExlbmd0aCA9IGxvY2FsQm91bmRQYXJhbWV0ZXJzLmxl
bmd0aDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJvdW5kTGVuZ3RoOyBp
KyspCi0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlQXJndW1lbnRzW2ldID0gbG9jYWxCb3Vu
ZFBhcmFtZXRlcnNbaV07Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1
bWVudHMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlQXJndW1lbnRz
W2kgKyBib3VuZExlbmd0aF0gPSBhcmd1bWVudHNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKEBJ
c0NvbnN0cnVjdG9yKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGJvdW5kRnVuY3Rp
b24oLi4uY29tcGxldGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJvdW5kRnVuY3Rpb24uQGFwcGx5KHRoaXNWYWx1ZSwgY29tcGxl
dGVBcmd1bWVudHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIGJpbmRp
bmdGdW5jdGlvbi5AYm91bmRGdW5jdGlvbk5hbWUgPSB0aGlzLm5hbWU7Ci0gICAgYmluZGluZ0Z1
bmN0aW9uLkBib3VuZEZ1bmN0aW9uID0gYm91bmRGdW5jdGlvbi5AYm91bmRGdW5jdGlvbiB8fCBi
b3VuZEZ1bmN0aW9uOwotICAgIHZhciBib3VuZExlbmd0aCA9IGJvdW5kRnVuY3Rpb24ubGVuZ3Ro
IC0gKGFyZ3VtZW50cy5sZW5ndGggLSAxKTsKLSAgICBpZiAoYm91bmRMZW5ndGggPCAwKQotICAg
ICAgICBib3VuZExlbmd0aCA9IDA7Ci0gICAgYmluZGluZ0Z1bmN0aW9uLkBib3VuZEZ1bmN0aW9u
TGVuZ3RoID0gYm91bmRMZW5ndGg7Ci0gICAgQFNldFR5cGVFcnJvckFjY2Vzc29yKGJpbmRpbmdG
dW5jdGlvbiwgImFyZ3VtZW50cyIpOwotICAgIEBTZXRUeXBlRXJyb3JBY2Nlc3NvcihiaW5kaW5n
RnVuY3Rpb24sICJjYWxsZXIiKTsKLSAgICByZXR1cm4gYmluZGluZ0Z1bmN0aW9uOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5j
cHAKaW5kZXggNDk0MmY0ODhjN2Y2YzljOWI1NDZmM2Y5MjI2OGRjZTUyNjg2MThjZi4uY2RhZDRh
MjdiMjhlMWY5OWQ2YzE1YzUyZTUzMWIwMTcwN2Y1NGE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCkBAIC01MSw3ICs1
MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpzX2luZm8g
PSB7ICJVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrCiAKIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9u
Q29kZUJsb2NrKiBnZW5lcmF0ZUZ1bmN0aW9uQ29kZUJsb2NrKFZNJiB2bSwgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9m
aWxlck1vZGUgcHJvZmlsZXJNb2RlLCBVbmxpbmtlZEZ1bmN0aW9uS2luZCBmdW5jdGlvbktpbmQs
IFBhcnNlckVycm9yJiBlcnJvcikKIHsKLSAgICBSZWZQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gYm9k
eSA9IHBhcnNlPEZ1bmN0aW9uQm9keU5vZGU+KCZ2bSwgc291cmNlLCBleGVjdXRhYmxlLT5wYXJh
bWV0ZXJzKCksIGV4ZWN1dGFibGUtPm5hbWUoKSwgZXhlY3V0YWJsZS0+dG9TdHJpY3RuZXNzKCks
IEpTUGFyc2VGdW5jdGlvbkNvZGUsIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCA/IEpTRnVuY3Rp
b25Jc0NvbnN0cnVjdG9yS2luZCA6IEpTRnVuY3Rpb25Jc0Z1bmN0aW9uS2luZCwgZXJyb3IpOwor
ICAgIFJlZlB0cjxGdW5jdGlvbkJvZHlOb2RlPiBib2R5ID0gcGFyc2U8RnVuY3Rpb25Cb2R5Tm9k
ZT4oJnZtLCBzb3VyY2UsIGV4ZWN1dGFibGUtPnBhcmFtZXRlcnMoKSwgZXhlY3V0YWJsZS0+bmFt
ZSgpLCBleGVjdXRhYmxlLT50b1N0cmljdG5lc3MoKSwgSlNQYXJzZUZ1bmN0aW9uQ29kZSwgZXJy
b3IpOwogCiAgICAgaWYgKCFib2R5KSB7CiAgICAgICAgIEFTU0VSVChlcnJvci5tX3R5cGUgIT0g
UGFyc2VyRXJyb3I6OkVycm9yTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZDVjZTUxNmYxOWUyODg2MTI4Yjhl
ZGY0OTg3OTU5MjA0NjY2NGNmNi4uMDUwZjdlYTFhOWUzMjU1YWI0YTllMGIzZGI5NDIyNmU4NDE1
NjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcApAQCAtMTI4NSw3ICsxMjg1LDcgQEAgUmVnaXN0ZXJJRCogSW5zdGFuY2VP
Zk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
ckkKICAgICBnZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoZHN0UmVnLmdldCgpLCBzcmMx
LmdldCgpLCBzcmMyLmdldCgpLCB0YXJnZXQuZ2V0KCkpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRF
eHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIGdl
bmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIHNyYzIuZ2V0KCksIGdlbmVyYXRv
ci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGVGb3JIYXNJbnN0YW5jZVByaXZhdGVOYW1l
KTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdldCgpLCBzcmMyLmdldCgp
LCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKIAogICAgIGdlbmVy
YXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKICAgICBSZWdpc3RlcklEKiByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0
UmVnLmdldCgpLCBzcmMxLmdldCgpLCBwcm90b3R5cGUuZ2V0KCkpOwpAQCAtMTY5NiwxNCArMTY5
Niw3IEBAIGJvb2wgSWZFbHNlTm9kZTo6dHJ5Rm9sZEJyZWFrQW5kQ29udGludWUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgU3RhdGVtZW50CiB2b2lkIElmRWxzZU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAg
ICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGlu
ZSgpLCBzdGFydE9mZnNldCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7Ci0gICAgYm9vbCBjb25zdGFu
dEJyYW5jaCA9IGZhbHNlOwotICAgIGlmIChtX2NvbmRpdGlvbi0+Z2V0Qm9vbGVhbkNvbnN0YW50
KGNvbnN0YW50QnJhbmNoKSkgewotICAgICAgICBpZiAoY29uc3RhbnRCcmFuY2gpCi0gICAgICAg
ICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2lmQmxvY2spOwotICAgICAgICBlbHNlIGlm
IChtX2Vsc2VCbG9jaykKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fZWxz
ZUJsb2NrKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAKICAgICBSZWZQdHI8TGFiZWw+
IGJlZm9yZVRoZW4gPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKICAgICBSZWZQdHI8TGFiZWw+IGJl
Zm9yZUVsc2UgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKICAgICBSZWZQdHI8TGFiZWw+IGFmdGVy
RWxzZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggZDI5MWY2MDU1ZWI1M2RkNjJkMmNi
MTJmZWUxZTg5YmZiMDg1ODk1YS4uMmQ4N2UxMWE3NTUwMzkyM2Q0MTgzOTM3NDg0NzU0OGU1MGE4
YzhmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAj
aW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgorI2luY2x1ZGUg
IkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTTmFtZVNjb3BlLmgiCiAjaW5jbHVkZSAi
SlNOb3RBbk9iamVjdC5oIgogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggOGNhZTBmZTczOGRjZjljMTZj
YjA0NzViMDNkMmU1MzE1ZjU3NTdhYy4uYzdmYzUwYzgwY2U4ZDdkYWNjMmUwY2MyMjhiMjNmNmI1
MzgxNmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTQ4OSwx
MSArNDg5LDEwIEBAIHN0YXRpYyBjb25zdCBMQ2hhciBzaW5nbGVDaGFyYWN0ZXJFc2NhcGVWYWx1
ZXNGb3JBU0NJSVsxMjhdID0gewogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1MZXhlcjxU
Pjo6TGV4ZXIoVk0qIHZtLCBKU1BhcnNlclN0cmljdG5lc3Mgc3RyaWN0bmVzcywgSlNGdW5jdGlv
bktpbmQgZnVuY3Rpb25LaW5kKQorTGV4ZXI8VD46OkxleGVyKFZNKiB2bSwgSlNQYXJzZXJTdHJp
Y3RuZXNzIHN0cmljdG5lc3MpCiAgICAgOiBtX2lzUmVwYXJzaW5nKGZhbHNlKQogICAgICwgbV92
bSh2bSkKICAgICAsIG1fcGFyc2luZ0J1aWx0aW5GdW5jdGlvbihzdHJpY3RuZXNzID09IEpTUGFy
c2VCdWlsdGluKQotICAgICwgbV9mdW5jdGlvbktpbmQoZnVuY3Rpb25LaW5kKQogewogfQogCkBA
IC04MjAsMTMgKzgxOSw4IEBAIHRlbXBsYXRlIDxib29sIHNob3VsZENyZWF0ZUlkZW50aWZpZXI+
IEFMV0FZU19JTkxJTkUgSlNUb2tlblR5cGUgTGV4ZXI8TENoYXI+OjpwCiAgICAgICAgICAgICAg
ICAgaWRlbnQgPSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5nZXRQcml2YXRlTmFtZSgqaWRlbnQpOwog
ICAgICAgICAgICAgZWxzZSBpZiAoKmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPnVuZGVm
aW5lZEtleXdvcmQpCiAgICAgICAgICAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9ICZtX3ZtLT5w
cm9wZXJ0eU5hbWVzLT51bmRlZmluZWRQcml2YXRlTmFtZTsKLSAgICAgICAgICAgIAogICAgICAg
ICAgICAgaWYgKCFpZGVudCkKICAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9QUklWQVRF
X05BTUVfRVJST1JUT0s7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICgqaWRlbnQgPT0g
bV92bS0+cHJvcGVydHlOYW1lcy0+SXNDb25zdHJ1Y3RvclByaXZhdGVOYW1lKQotICAgICAgICAg
ICAgICAgIHJldHVybiBtX2Z1bmN0aW9uS2luZCA9PSBKU0Z1bmN0aW9uSXNDb25zdHJ1Y3Rvcktp
bmQgPyBUUlVFVE9LRU4gOiBGQUxTRVRPS0VOOwotICAgICAgICAgICAgCiAgICAgICAgIH0KICAg
ICAgICAgdG9rZW5EYXRhLT5pZGVudCA9IGlkZW50OwogICAgIH0gZWxzZQpAQCAtOTAyLDExICs4
OTYsNiBAQCB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRDcmVhdGVJZGVudGlmaWVyPiBBTFdBWVNfSU5M
SU5FIEpTVG9rZW5UeXBlIExleGVyPFVDaGFyPjo6cAogICAgICAgICAgICAgICAgIGlkZW50ID0g
bV92bS0+cHJvcGVydHlOYW1lcy0+Z2V0UHJpdmF0ZU5hbWUoKmlkZW50KTsKICAgICAgICAgICAg
IGVsc2UgaWYgKCppZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3Jk
KQogICAgICAgICAgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAmbV92bS0+cHJvcGVydHlOYW1l
cy0+dW5kZWZpbmVkUHJpdmF0ZU5hbWU7Ci0gICAgICAgICAgICBpZiAobV9mdW5jdGlvbktpbmQg
PT0gSlNGdW5jdGlvbklzQ29uc3RydWN0b3JLaW5kKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpp
ZGVudCA9PSBtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5Jc0NvbnN0cnVjdG9yUHJpdmF0ZU5hbWUpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBUUlVFVE9LRU47Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEZBTFNFVE9LRU47Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIWlkZW50KQog
ICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSzsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IGY1YWY3N2QxZGU3
MGRjODNmYzQzYTczZDMxNmFkNWJiYTEwZjM5ZGIuLjA3MjQxYWUyOGFiNDI4MzdhNzRmMjVlNDk1
YWI5ODMyZTllYjkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTcx
LDcgKzcxLDcgQEAgY2xhc3MgTGV4ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
CiBwdWJsaWM6Ci0gICAgTGV4ZXIoVk0qLCBKU1BhcnNlclN0cmljdG5lc3MsIEpTRnVuY3Rpb25L
aW5kKTsKKyAgICBMZXhlcihWTSosIEpTUGFyc2VyU3RyaWN0bmVzcyk7CiAgICAgfkxleGVyKCk7
CiAKICAgICAvLyBDaGFyYWN0ZXIgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucy4KQEAgLTIzOCw3ICsy
MzgsNiBAQCBwcml2YXRlOgogCiAgICAgVk0qIG1fdm07CiAgICAgYm9vbCBtX3BhcnNpbmdCdWls
dGluRnVuY3Rpb247Ci0gICAgSlNGdW5jdGlvbktpbmQgbV9mdW5jdGlvbktpbmQ7CiB9OwogCiB0
ZW1wbGF0ZSA8PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGNkYjI2M2Nk
NzdhYjRlNWRhMWZkOGU4ZWU1YTE0M2Q1OWU1ZGVhYWMuLjI1MDBmYjNjNzUxZjEzZTNiYTdhYWQ4
NTQ1MzkzZmE3NTVjMzkxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTE2NCw3ICsxNjQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGlz
U3VidHJhY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNCb29sZWFuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29s
IGlzU3ByZWFkRXhwcmVzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRCb29sZWFuQ29uc3RhbnQoYm9vbCYpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4
dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsKiwgTGFiZWwqLCBGYWxsVGhyb3VnaE1vZGUpOwog
CkBAIC0yMTQsMTMgKzIxMyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOdWxsTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIAotICAgICAg
ICBib29sIGdldEJvb2xlYW5Db25zdGFudChib29sJiB2YWx1ZSkgY29uc3Qgb3ZlcnJpZGUKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFsdWUgPSBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNOdWxsKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUg
anNWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGpzTnVs
bCgpOyB9CiAgICAgfTsKQEAgLTIyOSwxNCArMjIxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
cHVibGljOgogICAgICAgICBCb29sZWFuTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBib29s
IHZhbHVlKTsKICAgICAgICAgYm9vbCB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KLSAgICAg
ICAgCi0gICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBnZXRCb29sZWFuQ29uc3RhbnQoYm9vbCYg
dmFsdWUpIGNvbnN0IG92ZXJyaWRlCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlID0gbV92
YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAKKyAgICBwcml2YXRl
OgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdlbmVy
YXRvciYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGpzQm9vbGVhbihtX3ZhbHVlKTsgfQogCkBA
IC0yNTAsMTEgKzIzNiw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldFZhbHVl
KGRvdWJsZSB2YWx1ZSkgeyBtX3ZhbHVlID0gdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIGJvb2wgZ2V0Qm9vbGVhbkNvbnN0YW50KGJvb2wmIHZhbHVlKSBjb25zdCBvdmVycmlkZQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YWx1ZSA9IChib29sKW1fdmFsdWU7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNOdW1iZXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1
ZSBqc1ZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4ganNO
dW1iZXIobV92YWx1ZSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3Bw
CmluZGV4IDlmMGNlZDAyNDljNzNiZDk5YTAyMWI0YmEzNGViMTE1OTRhYmIxYjcuLjdkZWM5YmZh
OWY3OTZmZGVkMGE5NTYxYzZhOWIzNzI1M2FiMTUzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFBhcnNlcjxMZXhlclR5
cGU+Ojpsb2dFcnJvcihib29sIHNob3VsZFByaW50VG9rZW4sIGNvbnN0IEEmIHZhbHVlMSwgY29u
c3QgQgogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotUGFyc2VyPExleGVyVHlw
ZT46OlBhcnNlcihWTSogdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgRnVuY3Rpb25QYXJh
bWV0ZXJzKiBwYXJhbWV0ZXJzLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBKU1BhcnNlclN0cmlj
dG5lc3Mgc3RyaWN0bmVzcywgSlNQYXJzZXJNb2RlIHBhcnNlck1vZGUsIEpTRnVuY3Rpb25LaW5k
IGZ1bmN0aW9uS2luZCkKK1BhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIoVk0qIHZtLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5lc3MsIEpTUGFyc2Vy
TW9kZSBwYXJzZXJNb2RlKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fc291cmNlKCZzb3VyY2Up
CiAgICAgLCBtX2hhc1N0YWNrT3ZlcmZsb3coZmFsc2UpCkBAIC0yMDcsNyArMjA3LDcgQEAgUGFy
c2VyPExleGVyVHlwZT46OlBhcnNlcihWTSogdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
RnVuY3Rpb25QYXJhbWV0ZXJzKgogICAgICwgbV9zb3VyY2VFbGVtZW50cygwKQogICAgICwgbV9w
YXJzaW5nQnVpbHRpbihzdHJpY3RuZXNzID09IEpTUGFyc2VCdWlsdGluKQogewotICAgIG1fbGV4
ZXIgPSBhZG9wdFB0cihuZXcgTGV4ZXJUeXBlKHZtLCBzdHJpY3RuZXNzLCBmdW5jdGlvbktpbmQp
KTsKKyAgICBtX2xleGVyID0gYWRvcHRQdHIobmV3IExleGVyVHlwZSh2bSwgc3RyaWN0bmVzcykp
OwogICAgIG1fYXJlbmEgPSBtX3ZtLT5wYXJzZXJBcmVuYS5nZXQoKTsKICAgICBtX2xleGVyLT5z
ZXRDb2RlKHNvdXJjZSwgbV9hcmVuYSk7CiAgICAgbV90b2tlbi5tX2xvY2F0aW9uLmxpbmUgPSBz
b3VyY2UuZmlyc3RMaW5lKCk7CkBAIC0yODMsNiArMjgzLDcgQEAgU3RyaW5nIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUlubmVyKCkKICAgICAKICAgICBWZWN0b3I8UmVmUHRyPFN0cmluZ0ltcGw+
PiBjbG9zZWRWYXJpYWJsZXM7CiAgICAgaWYgKG1fcGFyc2luZ0J1aWx0aW4pIHsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIWNhcHR1cmVkVmFyaWFibGVzLnNpemUoKSk7CiAgICAgICAgIElkZW50
aWZpZXJTZXQgdXNlZFZhcmlhYmxlczsKICAgICAgICAgc2NvcGUtPmdldFVzZWRWYXJpYWJsZXMo
dXNlZFZhcmlhYmxlcyk7CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgdmFyaWFibGUgOiB1c2Vk
VmFyaWFibGVzKSB7CkBAIC0yOTMsMTYgKzI5NCw2IEBAIFN0cmluZyBQYXJzZXI8TGV4ZXJUeXBl
Pjo6cGFyc2VJbm5lcigpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBj
bG9zZWRWYXJpYWJsZXMuYXBwZW5kKHZhcmlhYmxlKTsKICAgICAgICAgfQotICAgICAgICBpZiAo
IWNhcHR1cmVkVmFyaWFibGVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBjYXB0dXJlZFZhcmlhYmxlIDogY2FwdHVyZWRWYXJpYWJsZXMpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoc2NvcGUtPmhhc0RlY2xhcmVkVmFyaWFibGUoSWRlbnRpZmllcihtX3ZtLCBjYXB0
dXJlZFZhcmlhYmxlLmdldCgpKSkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChzY29wZS0+aGFzRGVjbGFyZWRQYXJh
bWV0ZXIoSWRlbnRpZmllcihtX3ZtLCBjYXB0dXJlZFZhcmlhYmxlLmdldCgpKSkpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICB9CiAgICAgZGlkRmlu
aXNoUGFyc2luZyhzb3VyY2VFbGVtZW50cywgY29udGV4dC52YXJEZWNsYXJhdGlvbnMoKSwgY29u
dGV4dC5mdW5jRGVjbGFyYXRpb25zKCksIGZlYXR1cmVzLAogICAgICAgICBjb250ZXh0Lm51bUNv
bnN0YW50cygpLCBjYXB0dXJlZFZhcmlhYmxlcywgc3RkOjptb3ZlKGNsb3NlZFZhcmlhYmxlcykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggMzk3OTI2ZDE1NGE3MDRk
ZTBhZDE5NWUyZDQ2YTJjOTMyNWQ2ZjZkOS4uZDY5ODhlN2VhNjM3MDI3NzI1NWMwODM5MDBjOTFm
YjY5MWJjYjhkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC00MTEs
NyArNDExLDcgQEAgY2xhc3MgUGFyc2VyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IAogcHVibGljOgotICAgIFBhcnNlcihWTSosIGNvbnN0IFNvdXJjZUNvZGUmLCBGdW5jdGlvblBh
cmFtZXRlcnMqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNQYXJzZXJTdHJpY3RuZXNzLCBKU1BhcnNl
ck1vZGUsIEpTRnVuY3Rpb25LaW5kKTsKKyAgICBQYXJzZXIoVk0qLCBjb25zdCBTb3VyY2VDb2Rl
JiwgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgY29uc3QgSWRlbnRpZmllciYsIEpTUGFyc2VyU3RyaWN0
bmVzcywgSlNQYXJzZXJNb2RlKTsKICAgICB+UGFyc2VyKCk7CiAKICAgICB0ZW1wbGF0ZSA8Y2xh
c3MgUGFyc2VkTm9kZT4KQEAgLTk1NCwxMyArOTU0LDEzIEBAIFBhc3NSZWZQdHI8UGFyc2VkTm9k
ZT4gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlKFBhcnNlckVycm9yJiBlcnJvcikKIH0KIAogdGVt
cGxhdGUgPGNsYXNzIFBhcnNlZE5vZGU+Ci1QYXNzUmVmUHRyPFBhcnNlZE5vZGU+IHBhcnNlKFZN
KiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFt
ZXRlcnMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEpTUGFyc2VyU3RyaWN0bmVzcyBzdHJpY3Ru
ZXNzLCBKU1BhcnNlck1vZGUgcGFyc2VyTW9kZSwgSlNGdW5jdGlvbktpbmQgZnVuY3Rpb25LaW5k
LCBQYXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBvc2l0aW9uKiBwb3NpdGlvbkJlZm9yZUxhc3RO
ZXdsaW5lID0gMCkKK1Bhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2UoVk0qIHZtLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgSlNQYXJzZXJTdHJpY3RuZXNzIHN0cmljdG5lc3MsIEpTUGFyc2Vy
TW9kZSBwYXJzZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEpTVGV4dFBvc2l0aW9uKiBwb3Np
dGlvbkJlZm9yZUxhc3ROZXdsaW5lID0gMCkKIHsKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGlu
Z1JlZ2lvbigiUGFyc2luZyIpOwogCiAgICAgQVNTRVJUKCFzb3VyY2UucHJvdmlkZXIoKS0+c291
cmNlKCkuaXNOdWxsKCkpOwogICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlKCkuaXM4
Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKHZtLCBzb3VyY2Us
IHBhcmFtZXRlcnMsIG5hbWUsIHN0cmljdG5lc3MsIHBhcnNlck1vZGUsIGZ1bmN0aW9uS2luZCk7
CisgICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBwYXJhbWV0
ZXJzLCBuYW1lLCBzdHJpY3RuZXNzLCBwYXJzZXJNb2RlKTsKICAgICAgICAgUmVmUHRyPFBhcnNl
ZE5vZGU+IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJvcik7CiAgICAgICAg
IGlmIChwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKQogICAgICAgICAgICAgKnBvc2l0aW9uQmVm
b3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSgpOwpAQCAt
OTcyLDcgKzk3Miw3IEBAIFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gcGFyc2UoVk0qIHZtLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIEZ1bmN0aW9uUGFyYW1ldGVyCiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiAgICAgfQotICAgIFBhcnNlcjxMZXhlcjxVQ2hh
cj4+IHBhcnNlcih2bSwgc291cmNlLCBwYXJhbWV0ZXJzLCBuYW1lLCBzdHJpY3RuZXNzLCBwYXJz
ZXJNb2RlLCBmdW5jdGlvbktpbmQpOworICAgIFBhcnNlcjxMZXhlcjxVQ2hhcj4+IHBhcnNlcih2
bSwgc291cmNlLCBwYXJhbWV0ZXJzLCBuYW1lLCBzdHJpY3RuZXNzLCBwYXJzZXJNb2RlKTsKICAg
ICBSZWZQdHI8UGFyc2VkTm9kZT4gcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFBhcnNlZE5vZGU+KGVy
cm9yKTsKICAgICBpZiAocG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSkKICAgICAgICAgKnBvc2l0
aW9uQmVmb3JlTGFzdE5ld2xpbmUgPSBwYXJzZXIucG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCmluZGV4IDc5NjI3
YzBlMmJjZWNlODk0MWM1NjFhZjA2MGQwY2QzOGVmZjlhMjQuLjkzMTRiMTk3OTBhMGQ1NThhZTRk
MjRmMWZjNjIxMTc1ZmZmZDQyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyTW9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlck1vZGVzLmgKQEAgLTMzLDggKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGVudW0gSlNQ
YXJzZXJTdHJpY3RuZXNzIHsgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZUJ1aWx0aW4sIEpTUGFyc2VT
dHJpY3QgfTsKIGVudW0gSlNQYXJzZXJNb2RlIHsgSlNQYXJzZVByb2dyYW1Db2RlLCBKU1BhcnNl
RnVuY3Rpb25Db2RlIH07Ci1lbnVtIEpTRnVuY3Rpb25LaW5kIHsgSlNOb3RGdW5jdGlvbktpbmQs
IEpTRnVuY3Rpb25Jc0Z1bmN0aW9uS2luZCwgSlNGdW5jdGlvbklzQ29uc3RydWN0b3JLaW5kIH07
Ci0gICAgCisKIGVudW0gUHJvZmlsZXJNb2RlIHsgUHJvZmlsZXJPZmYsIFByb2ZpbGVyT24gfTsK
IGVudW0gRGVidWdnZXJNb2RlIHsgRGVidWdnZXJPZmYsIERlYnVnZ2VyT24gfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzSXRlcmF0b3JDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVy
YXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCBhN2Q1MzM3NjdjN2U1MmRkMmFkYTVkNDU1YmM3MDVj
ZWJjYWFkYWZhLi5hZmI1OTc5MGNiMDA5OTg5YmI3YjQyODYzZTkxODIzMzU3NmI4YWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHNJdGVyYXRvckNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHNJdGVyYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMzksNyArMzksNyBAQCBjb25zdCBDbGFzc0lu
Zm8gQXJndW1lbnRzSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXJndW1lbnRzSXRl
cmF0b3IiLCAmQgogdm9pZCBBcmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlKiBwcm90b3R5cGUpCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3Bl
cnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCA4NjIwNjFmZThiZDM3Y2ZiN2MwYTk1YjAyZjky
MjUxODQwZTlmMjU2Li40NDQyOTMwMjEzYTgwZjI1ODJiMzk4MDdhNDgyZTk5MDM5YjI5YzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcApAQCAtNjIsNyArNjIsNyBAQCBBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB2b2lkIEFycmF5Q29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlKQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBhcnJheVByb3RvdHlwZS0+Y2xhc3NJbmZvKCkt
PmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNp
dGlvbnModm0sIGFycmF5UHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgYXJyYXlQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNv
bnN0cnVjdG9yLmNwcAppbmRleCA3ZTg4ZGM4ODgxZmJlYzQ5MTBiZjZhZGY5ZWUyYjAwNzE5NThm
ZmU3Li5iMzE2YmUxZDVhZjkyMTdlODhmMDI4ZWY3NGQxMDRmNDIxYWNjOTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAgQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHZvaWQgQm9vbGVhbkNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUp
CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Qcm90b3R5cGUtPmNsYXNz
SW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91
dFRyYW5zaXRpb25zKHZtLCBib29sZWFuUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgYm9vbGVhblByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpOwogCiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0
b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKaW5kZXggOTgwZjJi
M2M0MWJmZWU0ZmEwNTI3ZjUxNTIzZWUwZDY2MmFiNzZiZC4uNmRlMTA0NDRjYTkzYWI3ZTgwZjY1
M2JkYjhjNjhiNWQ3MDIyN2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29kZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b2RlQ2FjaGUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29k
ZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiAg
ICAgfQogCiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2Nr
VHlwZT46OlJvb3ROb2RlIFJvb3ROb2RlOwotICAgIFJlZlB0cjxSb290Tm9kZT4gcm9vdE5vZGUg
PSBwYXJzZTxSb290Tm9kZT4oJnZtLCBzb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgc3RyaWN0bmVz
cywgSlNQYXJzZVByb2dyYW1Db2RlLCBKU05vdEZ1bmN0aW9uS2luZCwgZXJyb3IpOworICAgIFJl
ZlB0cjxSb290Tm9kZT4gcm9vdE5vZGUgPSBwYXJzZTxSb290Tm9kZT4oJnZtLCBzb3VyY2UsIDAs
IElkZW50aWZpZXIoKSwgc3RyaWN0bmVzcywgSlNQYXJzZVByb2dyYW1Db2RlLCBlcnJvcik7CiAg
ICAgaWYgKCFyb290Tm9kZSkgewogICAgICAgICBtX3NvdXJjZUNvZGUucmVtb3ZlKGFkZFJlc3Vs
dC5pdGVyYXRvcik7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTQyLDcgKzE0Miw3IEBAIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2FjaGU6OmdldEZ1bmN0aW9uRXhlY3V0YWJsZUZy
b21HbG9iYWxDb2RlKFZNJiB2CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8VW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUqPihhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmNlbGwuZ2V0KCkpOwogCiAg
ICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKLSAgICBSZWZQdHI8
UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oJnZtLCBzb3VyY2UsIDAs
IElkZW50aWZpZXIoKSwgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZVByb2dyYW1Db2RlLCBKU05vdEZ1
bmN0aW9uS2luZCwgZXJyb3IsICZwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKTsKKyAgICBSZWZQ
dHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oJnZtLCBzb3VyY2Us
IDAsIElkZW50aWZpZXIoKSwgSlNQYXJzZU5vcm1hbCwgSlNQYXJzZVByb2dyYW1Db2RlLCBlcnJv
ciwgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIGlmICghcHJvZ3JhbSkgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChlcnJvci5tX3R5cGUgIT0gUGFyc2VyRXJyb3I6OkVycm9yTm9u
ZSk7CiAgICAgICAgIG1fc291cmNlQ29kZS5yZW1vdmUoYWRkUmVzdWx0Lml0ZXJhdG9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmlu
ZGV4IDQ1NmY3M2VjOWQ5NWRjZDM3YWExMmFhMDNiMDEwMDIxYzczMzUxOWYuLjRlYjI0MWU1Mzlj
OGRkZTY2NGIwNzFhYzEzZDE3MWY5MmFiYzE4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMjE5LDE0ICsyMTksNyBAQAog
ICAgIG1hY3JvKE9iamVjdCkgXAogICAgIG1hY3JvKFR5cGVFcnJvcikgXAogICAgIG1hY3JvKHVu
ZGVmaW5lZCkgXAotICAgIG1hY3JvKEJ1aWx0aW5Mb2cpIFwKLSAgICBtYWNybyhJc0NvbnN0cnVj
dG9yKSBcCi0gICAgbWFjcm8oYm91bmRGdW5jdGlvbk5hbWUpIFwKLSAgICBtYWNybyhib3VuZEZ1
bmN0aW9uUGFyYW1ldGVycykgXAotICAgIG1hY3JvKGJvdW5kRnVuY3Rpb24pIFwKLSAgICBtYWNy
byhib3VuZEZ1bmN0aW9uTGVuZ3RoKSBcCi0gICAgbWFjcm8ocHJvdG90eXBlRm9ySGFzSW5zdGFu
Y2UpIFwKLSAgICBtYWNybyhTZXRUeXBlRXJyb3JBY2Nlc3NvcikKKyAgICBtYWNybyhCdWlsdGlu
TG9nKQogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbXBsZXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tcGxldGlvbi5jcHAKaW5kZXggZjJjYzczMjJhMWU1NGQ5NmRiN2MxMWM0OWQ4ZTY5
MGI0NWI2NWNhNS4uYzQxNDU3MGRhZTY1OTFiNzMzNGYwOWNiYzRhZDE5ZWM2NzRkMmZjOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tcGxldGlvbi5jcHAKQEAgLTU1LDcg
KzU1LDcgQEAgYm9vbCBjaGVja1N5bnRheChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAg
ICBSRUxFQVNFX0FTU0VSVCh2bS5hdG9taWNTdHJpbmdUYWJsZSgpID09IHd0ZlRocmVhZERhdGEo
KS5hdG9taWNTdHJpbmdUYWJsZSgpKTsKLSAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW1O
b2RlID0gcGFyc2U8UHJvZ3JhbU5vZGU+KCZ2bSwgc291cmNlLCAwLCBJZGVudGlmaWVyKCksIEpT
UGFyc2VOb3JtYWwsIEpTUGFyc2VQcm9ncmFtQ29kZSwgSlNOb3RGdW5jdGlvbktpbmQsIGVycm9y
KTsKKyAgICBSZWZQdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW1Ob2RlID0gcGFyc2U8UHJvZ3JhbU5v
ZGU+KCZ2bSwgc291cmNlLCAwLCBJZGVudGlmaWVyKCksIEpTUGFyc2VOb3JtYWwsIEpTUGFyc2VQ
cm9ncmFtQ29kZSwgZXJyb3IpOwogICAgIHJldHVybiBwcm9ncmFtTm9kZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
OTUzYWI0ZjA1NmNmNjE2OGQwNmY4NGM2OTAzZjQwNjUyYmJjNmVmMC4uMmJiZGQzOTBhZTg1N2U0
M2U5OTYyOGNkNTAzMTYxMWU3NzFkNDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgRGF0ZUNv
bnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
IHZvaWQgRGF0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIERhdGVQcm90b3R5
cGUqIGRhdGVQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGRhdGVQ
cm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlw
ZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBkYXRlUHJvdG90eXBlLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZGF0ZVByb3RvdHlwZSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDcpLCBSZWFkT25seSB8IERv
bnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjcwZjcwODA2OWQ4OGQzNWU5ZjFi
ZjlhZTc1YjYyOTBiOTUzMGZhNi4uOWFjYmM0Y2QwMmZjMTJhZDIwM2QyMGI0YzExNDk5ZDg4ODVl
MjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBFcnJvckNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3RvdHlwZSkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZXJyb3JQcm90b3R5cGUtPmNsYXNzSW5mbygpLT5j
bGFzc05hbWUpOwogICAgIC8vIEVDTUEgMTUuMTEuMy4xIEVycm9yLnByb3RvdHlwZQotICAgIHB1
dERpcmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBlcnJvclByb3Rv
dHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGVycm9yUHJv
dG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA2Mjc5ZDkxZTY4NjIxODVh
YjNhNTUyZWRjNGNjMjNiMWNjNzVjNGQzLi5mODA5ZjA4ZjVlYWExYjRhZjU5OTMyMDAwMTZkODMw
YjY5MGY3MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIEpTT2JqZWN0KiBQcm9ncmFtRXhlY3V0YWJsZTo6Y2hl
Y2tTeW50YXgoRXhlY1N0YXRlKiBleGVjKQogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIFZN
KiB2bSA9ICZleGVjLT52bSgpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIFJlZlB0cjxQcm9ncmFtTm9k
ZT4gcHJvZ3JhbU5vZGUgPSBwYXJzZTxQcm9ncmFtTm9kZT4odm0sIG1fc291cmNlLCAwLCBJZGVu
dGlmaWVyKCksIEpTUGFyc2VOb3JtYWwsIFByb2dyYW1Ob2RlOjppc0Z1bmN0aW9uTm9kZSA/IEpT
UGFyc2VGdW5jdGlvbkNvZGUgOiBKU1BhcnNlUHJvZ3JhbUNvZGUsIEpTTm90RnVuY3Rpb25LaW5k
LCBlcnJvcik7CisgICAgUmVmUHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtTm9kZSA9IHBhcnNlPFBy
b2dyYW1Ob2RlPih2bSwgbV9zb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgSlNQYXJzZU5vcm1hbCwg
UHJvZ3JhbU5vZGU6OmlzRnVuY3Rpb25Ob2RlID8gSlNQYXJzZUZ1bmN0aW9uQ29kZSA6IEpTUGFy
c2VQcm9ncmFtQ29kZSwgZXJyb3IpOwogICAgIGlmIChwcm9ncmFtTm9kZSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgQVNTRVJUKGVycm9yLm1fdHlwZSAhPSBQYXJzZXJFcnJvcjo6RXJyb3JOb25l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAKaW5kZXggZGEzMTVkYTBmMTNiZmE0NDJmMTdmYjEyODJiZjQ4ZTk5NDEzN2Uy
Mi4uM2ZjNzI0MjIwODMzMTE4Yzg4ZDRkYjVmOTlkMGZhMTEzYmVmMTQwZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3Rv
dHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZnVuY3Rpb25Qcm90b3R5cGUt
PmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5
V2l0aG91dFRyYW5zaXRpb25zKHZtLCBmdW5jdGlvblByb3RvdHlwZSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGZ1bmN0aW9uUHJvdG90eXBlLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAKICAgICAvLyBOdW1iZXIgb2YgYXJndW1lbnRzIGZv
ciBjb25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBE
b250RW51bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5jcHAKaW5kZXggOGRiM2RhOTczMjViYTY5YTNlM2YyMWMyNzU3YzUxMmMzNTBk
ZmFkMC4uZWI1Nzg0MGJkNjY3YmYzYWQyNjlhMzA0N2JkYTBhOTQ4MzE1MmM2YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApA
QCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5oIgogI2luY2x1
ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKKyNpbmNsdWRlICJKU0Jv
dW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJp
bmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uUHJvdG90eXBlKTsK
IGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9uUHJvdG90
eXBlKSB9OwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBy
b3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNCaW5kKEV4ZWNTdGF0ZSopOwogCiBGdW5jdGlvblBy
b3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKQEAgLTYwLDggKzYyLDkgQEAg
dm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9uID0gcHV0RGlyZWN0
QnVpbHRpbkZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJv
dG90eXBlQXBwbHlDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAgICpjYWxsRnVuY3Rp
b24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxsUHVibGljTmFtZSgp
LCBmdW5jdGlvblByb3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwotICAg
IAotICAgIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9i
YWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmJpbmRQdWJsaWNOYW1l
KCksIGZ1bmN0aW9uUHJvdG90eXBlQmluZENvZGVHZW5lcmF0b3Iodm0pLCBEb250RW51bSk7CisK
KyAgICBKU0Z1bmN0aW9uKiBiaW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgMSwgdm0ucHJvcGVydHlOYW1lcy0+YmluZC5zdHJpbmcoKSwgZnVuY3Rpb25Q
cm90b0Z1bmNCaW5kKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YmluZCwgYmluZEZ1bmN0aW9uLCBEb250RW51bSk7CiB9CiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3Rh
dGUqKQpAQCAtMTE4LDQgKzEyMSw0NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwogfQogCisvLyAxNS4zLjQuNSBGdW5jdGlvbi5wcm90b3R5cGUu
YmluZCAodGhpc0FyZyBbLCBhcmcxIFssIGFyZzIsIC4uLl1dKQorRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY0JpbmQoRXhlY1N0YXRlKiBleGVjKQoreworICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2Jq
ZWN0KCk7CisKKyAgICAvLyBMZXQgVGFyZ2V0IGJlIHRoZSB0aGlzIHZhbHVlLgorICAgIEpTVmFs
dWUgdGFyZ2V0ID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisKKyAgICAvLyBJZiBJc0NhbGxhYmxlKFRh
cmdldCkgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKHRhcmdldCwg
Y2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgYXJl
IG5vdCBjYWxsYWJsZS4KKyAgICBBU1NFUlQodGFyZ2V0LmlzT2JqZWN0KCkpOworICAgIEpTT2Jq
ZWN0KiB0YXJnZXRPYmplY3QgPSBhc09iamVjdCh0YXJnZXQpOworICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CisKKyAgICAvLyBMZXQgQSBiZSBhIG5ldyAocG9zc2libHkgZW1wdHkpIGludGVybmFs
IGxpc3Qgb2YgYWxsIG9mIHRoZSBhcmd1bWVudCB2YWx1ZXMgcHJvdmlkZWQgYWZ0ZXIgdGhpc0Fy
ZyAoYXJnMSwgYXJnMiBldGMpLCBpbiBvcmRlci4KKyAgICBzaXplX3QgbnVtQm91bmRBcmdzID0g
ZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSA/IGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAtIDEgOiAw
OworICAgIEpTQXJyYXkqIGJvdW5kQXJncyA9IEpTQXJyYXk6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6
ZWQodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdB
bGxvY2F0aW9uKEFycmF5V2l0aFVuZGVjaWRlZCksIG51bUJvdW5kQXJncyk7CisgICAgaWYgKCFi
b3VuZEFyZ3MpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9y
eUVycm9yKGV4ZWMpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQm91bmRBcmdz
OyArK2kpCisgICAgICAgIGJvdW5kQXJncy0+aW5pdGlhbGl6ZUluZGV4KHZtLCBpLCBleGVjLT5h
cmd1bWVudChpICsgMSkpOworCisgICAgLy8gSWYgdGhlIFtbQ2xhc3NdXSBpbnRlcm5hbCBwcm9w
ZXJ0eSBvZiBUYXJnZXQgaXMgIkZ1bmN0aW9uIiwgdGhlbiAuLi4KKyAgICAvLyBFbHNlIHNldCB0
aGUgbGVuZ3RoIG93biBwcm9wZXJ0eSBvZiBGIHRvIDAuCisgICAgdW5zaWduZWQgbGVuZ3RoID0g
MDsKKyAgICBpZiAodGFyZ2V0T2JqZWN0LT5pbmhlcml0cyhKU0Z1bmN0aW9uOjppbmZvKCkpKSB7
CisgICAgICAgIEFTU0VSVCh0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgpLmlzTnVtYmVyKCkpOworICAgICAgICAvLyBhLiBMZXQgTCBiZSB0aGUgbGVuZ3RoIHBy
b3BlcnR5IG9mIFRhcmdldCBtaW51cyB0aGUgbGVuZ3RoIG9mIEEuCisgICAgICAgIC8vIGIuIFNl
dCB0aGUgbGVuZ3RoIG93biBwcm9wZXJ0eSBvZiBGIHRvIGVpdGhlciAwIG9yIEwsIHdoaWNoZXZl
ciBpcyBsYXJnZXIuCisgICAgICAgIHVuc2lnbmVkIHRhcmdldExlbmd0aCA9ICh1bnNpZ25lZCl0
YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLmFzTnVtYmVyKCk7
CisgICAgICAgIGlmICh0YXJnZXRMZW5ndGggPiBudW1Cb3VuZEFyZ3MpCisgICAgICAgICAgICBs
ZW5ndGggPSB0YXJnZXRMZW5ndGggLSBudW1Cb3VuZEFyZ3M7CisgICAgfQorCisgICAgSlNTdHJp
bmcqIG5hbWUgPSB0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lKS50
b1N0cmluZyhleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQm91bmRGdW5jdGlv
bjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHRhcmdldE9iamVjdCwgZXhlYy0+YXJndW1lbnQo
MCksIGJvdW5kQXJncywgbGVuZ3RoLCBuYW1lLT52YWx1ZShleGVjKSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDY2NDlkZWMzMzQ0MjMzOTc2MjRl
MTY2NDVkZDk2MzVkOTI5YmYzZjkuLjIyZjc5Yzg5OGE3NGI0YzA4MjQ3YjZkZDZiNDE5ODJlNWM1
MDk2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlC
dWZmZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcApAQCAtNTAsNyArNTAsNyBAQCBKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogdm9pZCBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNBcnJheUJ1ZmZlclByb3RvdHlwZSogcHJvdG90eXBlKQogewogICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXJyYXlCdWZmZXIiKTsKLSAgICBwdXREaXJlY3RQcm90
b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KTsKIAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0
aGlzLT5nbG9iYWxPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzljNDIyZDViZmUxYTVlODRjYmY1
NmYwN2MyNWI3MzRhMDkyZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKKworI2luY2x1ZGUgIkdldHRlclNldHRl
ci5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgorCituYW1lc3BhY2UgSlNDIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTQm91bmRGdW5jdGlvbjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTQm91bmRGdW5jdGlvbikgfTsKKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBib3VuZEZ1bmN0aW9uQ2FsbChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNCb3VuZEZ1bmN0
aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4ZWMtPmNhbGxl
ZSgpKTsKKworICAgIEFTU0VSVChpc0pTQXJyYXkoYm91bmRGdW5jdGlvbi0+Ym91bmRBcmdzKCkp
KTsgLy8gQ3VycmVudGx5IHRoaXMgaXMgdHJ1ZSEKKyAgICBKU0FycmF5KiBib3VuZEFyZ3MgPSBh
c0FycmF5KGJvdW5kRnVuY3Rpb24tPmJvdW5kQXJncygpKTsKKworICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ3M7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJvdW5kQXJncy0+bGVu
Z3RoKCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoYm91bmRBcmdzLT5nZXRJbmRleFF1aWNr
bHkoaSkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENvdW50
KCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkp
OworCisgICAgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uID0gYm91bmRGdW5jdGlvbi0+dGFyZ2V0
RnVuY3Rpb24oKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlw
ZSA9IGdldENhbGxEYXRhKHRhcmdldEZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAgQVNTRVJUKGNh
bGxUeXBlICE9IENhbGxUeXBlTm9uZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxs
KGV4ZWMsIHRhcmdldEZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGJvdW5kRnVuY3Rpb24t
PmJvdW5kVGhpcygpLCBhcmdzKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Ym91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNCb3VuZEZ1
bmN0aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4ZWMtPmNh
bGxlZSgpKTsKKworICAgIEFTU0VSVChpc0pTQXJyYXkoYm91bmRGdW5jdGlvbi0+Ym91bmRBcmdz
KCkpKTsgLy8gQ3VycmVudGx5IHRoaXMgaXMgdHJ1ZSEKKyAgICBKU0FycmF5KiBib3VuZEFyZ3Mg
PSBhc0FycmF5KGJvdW5kRnVuY3Rpb24tPmJvdW5kQXJncygpKTsKKworICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3M7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJvdW5kQXJncy0+
bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoYm91bmRBcmdzLT5nZXRJbmRleFF1
aWNrbHkoaSkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENv
dW50KCk7ICsraSkKKyAgICAgICAgYXJncy5hcHBlbmQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
aSkpOworCisgICAgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uID0gYm91bmRGdW5jdGlvbi0+dGFy
Z2V0RnVuY3Rpb24oKTsKKyAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVjdERhdGE7CisgICAgQ29u
c3RydWN0VHlwZSBjb25zdHJ1Y3RUeXBlID0gZ2V0Q29uc3RydWN0RGF0YSh0YXJnZXRGdW5jdGlv
biwgY29uc3RydWN0RGF0YSk7CisgICAgQVNTRVJUKGNvbnN0cnVjdFR5cGUgIT0gQ29uc3RydWN0
VHlwZU5vbmUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0KGV4ZWMsIHRh
cmdldEZ1bmN0aW9uLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRhLCBhcmdzKSk7Cit9CisK
K0pTQm91bmRGdW5jdGlvbiogSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUg
Ym91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBu
YW1lKQoreworICAgIENvbnN0cnVjdERhdGEgY29uc3RydWN0RGF0YTsKKyAgICBDb25zdHJ1Y3RU
eXBlIGNvbnN0cnVjdFR5cGUgPSBKU0M6OmdldENvbnN0cnVjdERhdGEodGFyZ2V0RnVuY3Rpb24s
IGNvbnN0cnVjdERhdGEpOworICAgIGJvb2wgY2FuQ29uc3RydWN0ID0gY29uc3RydWN0VHlwZSAh
PSBDb25zdHJ1Y3RUeXBlTm9uZTsKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
dm0uZ2V0SG9zdEZ1bmN0aW9uKGJvdW5kRnVuY3Rpb25DYWxsLCBjYW5Db25zdHJ1Y3QgPyBib3Vu
ZEZ1bmN0aW9uQ29uc3RydWN0IDogY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpOworICAg
IEpTQm91bmRGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxK
U0JvdW5kRnVuY3Rpb24+KHZtLmhlYXApKSBKU0JvdW5kRnVuY3Rpb24odm0sIGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT5ib3VuZEZ1bmN0aW9uU3RydWN0dXJlKCksIHRhcmdldEZ1bmN0aW9u
LCBib3VuZFRoaXMsIGJvdW5kQXJncyk7CisKKyAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24o
dm0sIGV4ZWN1dGFibGUsIGxlbmd0aCwgbmFtZSk7CisgICAgcmV0dXJuIGZ1bmN0aW9uOworfQor
Cit2b2lkIEpTQm91bmRGdW5jdGlvbjo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAgc3Rh
dGljX2Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oY2VsbCktPkpTQm91bmRGdW5jdGlvbjo6fkpTQm91
bmRGdW5jdGlvbigpOworfQorCitib29sIEpTQm91bmRGdW5jdGlvbjo6Y3VzdG9tSGFzSW5zdGFu
Y2UoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorewor
ICAgIHJldHVybiBqc0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4ob2JqZWN0KS0+bV90YXJnZXRGdW5j
dGlvbi0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUpOworfQorCitKU0JvdW5kRnVuY3Rpb246OkpT
Qm91bmRGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRU
aGlzLCBKU1ZhbHVlIGJvdW5kQXJncykKKyAgICA6IEJhc2Uodm0sIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQorICAgICwgbV90YXJnZXRGdW5jdGlvbih2bSwgdGhpcywgdGFyZ2V0RnVuY3Rpb24p
CisgICAgLCBtX2JvdW5kVGhpcyh2bSwgdGhpcywgYm91bmRUaGlzKQorICAgICwgbV9ib3VuZEFy
Z3Modm0sIHRoaXMsIGJvdW5kQXJncykKK3sKK30KKwordm9pZCBKU0JvdW5kRnVuY3Rpb246OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgaW50IGxl
bmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
LCBleGVjdXRhYmxlLCBsZW5ndGgsIG5hbWUpOworICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkp
KTsKKworICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmFyZ3VtZW50cywgZ2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKHZt
KSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOworICAgIHB1dERpcmVjdE5vbklu
ZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNhbGxlciwgZ2xvYmFsT2JqZWN0KCkt
PnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKHZtKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwg
QWNjZXNzb3IpOworfQorCit2b2lkIEpTQm91bmRGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTQm91bmRGdW5jdGlvbiog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihjZWxsKTsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQ09NUElMRV9BU1NF
UlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNp
dENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQodGhpc09iamVjdC0+c3Ry
dWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKKyAgICBCYXNl
Ojp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworCisgICAgdmlzaXRvci5hcHBl
bmQoJnRoaXNPYmplY3QtPm1fdGFyZ2V0RnVuY3Rpb24pOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0
aGlzT2JqZWN0LT5tX2JvdW5kVGhpcyk7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fYm91bmRBcmdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NTJmNzhj
ZTM5MDU5YjU2NDNlNDllMGY5ZGYxY2Q3ZWRjOGUwYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAtMCwwICsxLDc1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgSlNCb3VuZEZ1bmN0aW9uX2gKKyNkZWZpbmUgSlNCb3VuZEZ1bmN0aW9uX2gKKworI2luY2x1
ZGUgIkpTRnVuY3Rpb24uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRlKik7CisKK2Ns
YXNzIEpTQm91bmRGdW5jdGlvbiA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKK3B1YmxpYzoKKyAgICB0
eXBlZGVmIEpTRnVuY3Rpb24gQmFzZTsKKworICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNy
ZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBKU1Zh
bHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgCisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKworICAgIHN0YXRpYyBib29s
IGN1c3RvbUhhc0luc3RhbmNlKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CisKKyAg
ICBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24oKSB7IHJldHVybiBtX3RhcmdldEZ1bmN0aW9uLmdl
dCgpOyB9CisgICAgSlNWYWx1ZSBib3VuZFRoaXMoKSB7IHJldHVybiBtX2JvdW5kVGhpcy5nZXQo
KTsgfQorICAgIEpTVmFsdWUgYm91bmRBcmdzKCkgeyByZXR1cm4gbV9ib3VuZEFyZ3MuZ2V0KCk7
IH0KKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICB7CisgICAg
ICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU0Z1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisK
K3Byb3RlY3RlZDoKKyAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKKworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xv
dFZpc2l0b3ImKTsKKworcHJpdmF0ZToKKyAgICBKU0JvdW5kRnVuY3Rpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBi
b3VuZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzKTsKKyAgICAKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCwgY29uc3QgU3RyaW5nJik7CisKKyAgICBX
cml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fdGFyZ2V0RnVuY3Rpb247CisgICAgV3JpdGVCYXJyaWVy
PFVua25vd24+IG1fYm91bmRUaGlzOworICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2JvdW5k
QXJnczsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSlNGdW5jdGlvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IGMz
ZjU0ZGY5NWQ3ZTE4NmZmNTI2MzdjOTZkYzg3NjFkNzliNmVjMTkuLmY5Zjg4OWE5MjQxMmI3ZjE0
NTM5YzVjZWE5NWNkYWQ0MWI3MmYzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25Q
cm90b3R5cGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0FycmF5
LmgiCisjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbklu
bGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTmFtZVNj
b3BlLmgiIApAQCAtMjUwLDkgKzI1MSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFy
Z3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwKIAogY2xh
c3MgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgewogcHVibGljOgotICAgIFJldHJpZXZl
Q2FsbGVyRnVuY3Rpb25GdW5jdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogZnVuY3Rp
b25PYmopCi0gICAgICAgIDogbV9leGVjKGV4ZWMpCi0gICAgICAgICwgbV90YXJnZXRDYWxsZWUo
anNEeW5hbWljQ2FzdDxKU09iamVjdCo+KGZ1bmN0aW9uT2JqKSkKKyAgICBSZXRyaWV2ZUNhbGxl
ckZ1bmN0aW9uRnVuY3RvcihKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKKyAgICAgICAgOiBtX3Rh
cmdldENhbGxlZShqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4oZnVuY3Rpb25PYmopKQogICAgICAg
ICAsIG1faGFzRm91bmRGcmFtZShmYWxzZSkKICAgICAgICAgLCBtX2hhc1NraXBwZWRUb0NhbGxl
ckZyYW1lKGZhbHNlKQogICAgICAgICAsIG1fcmVzdWx0KGpzTnVsbCgpKQpAQCAtMjY1LDcgKzI2
NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSB2aXNpdG9y
LT5jYWxsZWUoKTsKIAotICAgICAgICBpZiAoY2FsbGVlICYmIGNhbGxlZS0+aGFzT3duUHJvcGVy
dHkobV9leGVjLCBtX2V4ZWMtPnByb3BlcnR5TmFtZXMoKS5ib3VuZEZ1bmN0aW9uTmFtZVByaXZh
dGVOYW1lKSkKKyAgICAgICAgaWYgKGNhbGxlZSAmJiBjYWxsZWUtPmluaGVyaXRzKEpTQm91bmRG
dW5jdGlvbjo6aW5mbygpKSkKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRp
bnVlOwogCiAgICAgICAgIGlmICghbV9oYXNGb3VuZEZyYW1lICYmIChjYWxsZWUgIT0gbV90YXJn
ZXRDYWxsZWUpKQpAQCAtMjgzLDcgKzI4Myw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgRXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAgSlNPYmplY3QqIG1fdGFyZ2V0Q2FsbGVlOwog
ICAgIGJvb2wgbV9oYXNGb3VuZEZyYW1lOwogICAgIGJvb2wgbV9oYXNTa2lwcGVkVG9DYWxsZXJG
cmFtZTsKQEAgLTI5Miw3ICsyOTEsNyBAQCBwcml2YXRlOgogCiBzdGF0aWMgSlNWYWx1ZSByZXRy
aWV2ZUNhbGxlckZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogZnVuY3Rpb25P
YmopCiB7Ci0gICAgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgZnVuY3RvcihleGVjLCBm
dW5jdGlvbk9iaik7CisgICAgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3IgZnVuY3Rvcihm
dW5jdGlvbk9iaik7CiAgICAgZXhlYy0+aXRlcmF0ZShmdW5jdG9yKTsKICAgICByZXR1cm4gZnVu
Y3Rvci5yZXN1bHQoKTsKIH0KQEAgLTMyOSw1OSArMzI4LDE3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
RnVuY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWCiBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRnVu
Y3Rpb24qPihvYmplY3QpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RGdW5jdGlvbigpKQot
ICAgICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmlzQnVpbHRpbkZ1bmN0
aW9uKCkpIHsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkuY2FsbGVyKSB7Ci0gICAgICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCkt
PmlzU3RyaWN0TW9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
LSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICB0aGlz
T2JqZWN0LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCBwcm9wZXJ0eU5hbWUsIHRoaXNPYmplY3Qt
Pmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVjLT52bSgpKSwg
RG9udERlbGV0ZSB8IERvbnRFbnVtIHwgQWNjZXNzb3IpOwotICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBSZWFk
T25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSwgY2FsbGVyR2V0dGVyKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZUZvckhhc0luc3RhbmNlUHJpdmF0ZU5hbWUpIHsK
LSAgICAgICAgICAgIFByb3BlcnR5U2xvdCBib3VuZEZ1bmN0aW9uU2xvdCh0aGlzT2JqZWN0KTsK
LSAgICAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhl
YywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgYm91bmRG
dW5jdGlvblNsb3QpKSB7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBib3VuZEZ1bmN0aW9uID0g
Ym91bmRGdW5jdGlvblNsb3QuZ2V0VmFsdWUoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmJv
dW5kRnVuY3Rpb25Qcml2YXRlTmFtZSk7Ci0gICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IGJv
dW5kUHJvdG90eXBlU2xvdChhc09iamVjdChib3VuZEZ1bmN0aW9uKSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGFzT2JqZWN0KGJvdW5kRnVuY3Rpb24pLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJv
cGVydHlOYW1lLCBib3VuZFByb3RvdHlwZVNsb3QpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUoYm91bmRQcm90b3R5cGVTbG90LnNsb3RCYXNlKCksIGJvdW5kUHJvdG90eXBl
U2xvdC5hdHRyaWJ1dGVzKCksIGJvdW5kUHJvdG90eXBlU2xvdC5nZXRWYWx1ZShleGVjLCBwcm9w
ZXJ0eU5hbWUpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUpIHsKLSAgICAgICAgICAgIFByb3BlcnR5
U2xvdCBuYW1lU2xvdCh0aGlzT2JqZWN0KTsKLSAgICAgICAgICAgIGlmIChCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgZXhlYy0+dm0oKS5wcm9wZXJ0eU5hbWVzLT5i
b3VuZEZ1bmN0aW9uTmFtZVByaXZhdGVOYW1lLCBuYW1lU2xvdCkpIHsKLSAgICAgICAgICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCBuYW1lU2xvdC5nZXRWYWx1ZShleGVjLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmJv
dW5kRnVuY3Rpb25OYW1lUHJpdmF0ZU5hbWUpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAgICAgICAgIFByb3BlcnR5U2xv
dCBsZW5ndGhTbG90KHRoaXNPYmplY3QpOwotICAgICAgICAgICAgaWYgKEJhc2U6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBleGVjLT52bSgpLnByb3BlcnR5TmFtZXMtPmJv
dW5kRnVuY3Rpb25MZW5ndGhQcml2YXRlTmFtZSwgbGVuZ3RoU2xvdCkpIHsKLSAgICAgICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCBsZW5ndGhTbG90LmdldFZhbHVlKGV4ZWMsIGV4ZWMtPnZtKCkucHJvcGVydHlOYW1l
cy0+Ym91bmRGdW5jdGlvbkxlbmd0aFByaXZhdGVOYW1lKSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgICAgIAorICAgIGlm
ICh0aGlzT2JqZWN0LT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKQogICAgICAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLnByb3RvdHlwZUZvckhhc0luc3RhbmNlUHJpdmF0ZU5hbWUpIHsKKworICAgIGlmIChwcm9w
ZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewogICAgICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwogICAgICAg
ICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSB0aGlzT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQodm0s
IHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIGlmICghaXNWYWxpZE9mZnNldChv
ZmZzZXQpKSB7CiAgICAgICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gY29uc3RydWN0RW1w
dHlPYmplY3QoZXhlYyk7CiAgICAgICAgICAgICBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB0aGlzT2JqZWN0LCBEb250RW51bSk7Ci0g
ICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgcHJv
dG90eXBlLCBEb250RGVsZXRlIHwgRG9udEVudW0pOworICAgICAgICAgICAgdGhpc09iamVjdC0+
cHV0RGlyZWN0KHZtLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBwcm90b3R5cGUs
IERvbnREZWxldGUgfCBEb250RW51bSk7CiAgICAgICAgICAgICBvZmZzZXQgPSB0aGlzT2JqZWN0
LT5nZXREaXJlY3RPZmZzZXQodm0sIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGF0
dHJpYnV0ZXMpOwogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRPZmZzZXQob2Zmc2V0KSk7CiAg
ICAgICAgIH0KQEAgLTQzMywyMyArMzkwLDE2IEBAIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOCiB2
b2lkIEpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTRnVuY3Rpb24qPihvYmplY3QpOwotICAgIGlmIChtb2RlID09IEluY2x1ZGVEb250RW51
bVByb3BlcnRpZXMpIHsKLSAgICAgICAgYm9vbCBzaG91bGRJbmNsdWRlSlNGdW5jdGlvblByb3Bl
cnRpZXMgPSAhdGhpc09iamVjdC0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKTsKLSAgICAgICAg
aWYgKCFzaG91bGRJbmNsdWRlSlNGdW5jdGlvblByb3BlcnRpZXMgJiYgdGhpc09iamVjdC0+aXNC
dWlsdGluRnVuY3Rpb24oKSkgewotICAgICAgICAgICAgUHJvcGVydHlTbG90IGJvdW5kRnVuY3Rp
b25TbG90KHRoaXNPYmplY3QpOwotICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUpTRnVuY3Rpb25Q
cm9wZXJ0aWVzID0gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5ib3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIGJvdW5kRnVuY3Rp
b25TbG90KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoc2hvdWxkSW5jbHVkZUpTRnVuY3Rpb25Q
cm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgICAgICAg
ICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVkLgotICAgICAgICAgICAg
UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT5t
ZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHNsb3QpOworICAgIGlmICghdGhpc09iamVjdC0+aXNI
b3N0T3JCdWlsdGluRnVuY3Rpb24oKSAmJiAobW9kZSA9PSBJbmNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKSkgeworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICAvLyBNYWtlIHN1
cmUgcHJvdG90eXBlIGhhcyBiZWVuIHJlaWZpZWQuCisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90
KHRoaXNPYmplY3QpOworICAgICAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIHNsb3QpOwogCi0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5h
bWVzLT5hcmd1bWVudHMpOwotICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQodm0ucHJvcGVy
dHlOYW1lcy0+Y2FsbGVyKTsKLSAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9w
ZXJ0eU5hbWVzLT5uYW1lKTsKLSAgICAgICAgfQorICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2
bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2
bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZXIpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgpOworICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9w
ZXJ0eU5hbWVzLT5uYW1lKTsKICAgICB9CiAgICAgQmFzZTo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0
eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQpAQCAtNDY5
LDEwICs0MTksOCBAQCB2b2lkIEpTRnVuY3Rpb246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSgogICAgICAgICB0aGlzT2JqZWN0
LT5tX2FsbG9jYXRpb25Qcm9maWxlLmNsZWFyKCk7CiAgICAgICAgIHRoaXNPYmplY3QtPm1fYWxs
b2NhdGlvblByb2ZpbGVXYXRjaHBvaW50LmZpcmVBbGwoKTsKICAgICAgICAgLy8gRG9uJ3QgYWxs
b3cgdGhpcyB0byBiZSBjYWNoZWQsIHNpbmNlIGEgW1tQdXRdXSBtdXN0IGNsZWFyIG1fYWxsb2Nh
dGlvblByb2ZpbGUuCi0gICAgICAgIFB1dFByb3BlcnR5U2xvdCBkb250Q2FjaGVQcm90b3R5cGUo
dGhpc09iamVjdCk7Ci0gICAgICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBkb250Q2FjaGVQcm90b3R5cGUpOwotICAgICAgICBQdXRQcm9wZXJ0eVNs
b3QgZG9udENhY2hlUHJvdG90eXBlRm9ySGFzSW5zdGFuY2UodGhpc09iamVjdCk7Ci0gICAgICAg
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90
eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwgdmFsdWUsIGRvbnRDYWNoZVByb3RvdHlwZUZv
ckhhc0luc3RhbmNlKTsKKyAgICAgICAgUHV0UHJvcGVydHlTbG90IGRvbnRDYWNoZSh0aGlzT2Jq
ZWN0KTsKKyAgICAgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIGRvbnRDYWNoZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRoaXNP
YmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSAmJiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMgfHwgcHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5jYWxsZXIpKSB7CkBAIC01MTcsMTAgKzQ2NSw3IEBAIGJvb2wgSlNG
dW5jdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hCiAgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMtPnZt
KCkpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKICAgICAgICAgdGhpc09iamVjdC0+bV9hbGxvY2F0aW9uUHJvZmlsZS5jbGVhcigpOwog
ICAgICAgICB0aGlzT2JqZWN0LT5tX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludC5maXJlQWxs
KCk7Ci0gICAgICAgIGlmICghQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRocm93RXhjZXB0aW9uKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBleGVj
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFt
ZSwgZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yLCB0aHJvd0V4Y2VwdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCB2
YWx1ZUNoZWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVz
LmgKaW5kZXggZmE2ZjdmYTFkM2Y5NTVlMjg2YTk1NGI5ZDY2YzI2ZjYzNDA2MzllOC4uMmRkYzI5
ZjcxODk3YmI1MWQzOTBiMDZiMjVhNzM4MzM4NzRiYTBjMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC00Myw3ICs0Myw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFZpZXdDbGFzcz4KIHZvaWQgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcjxWaWV3Q2xhc3M+OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiBwcm90b3R5
cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwg
bmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbnMo
dm0sIHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IHByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPkJZVEVTX1BFUl9FTEVNRU5U
LCBqc051bWJlcihWaWV3Q2xhc3M6OmVsZW1lbnRTaXplKSwgRG9udEVudW0gfCBSZWFkT25seSB8
IERvbnREZWxldGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCmluZGV4IDYyMDA4MDgwZTQyYTM3ZWJmN2RhOTQxNjZjZDZjOGU3MzA3
MjdhY2IuLjQ5ZDg2YTc1ZTc4MjBhNmE1NjA3YjFjN2JkYjY1NjFlMzYyN2UzNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYw
LDYgKzYwLDcgQEAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNBcnJheUl0ZXJhdG9y
LmgiCisjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTQ2FsbGJh
Y2tGdW5jdGlvbi5oIgpAQCAtMjc3LDYgKzI3OCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJl
c2V0KEpTVmFsdWUgcHJvdG90eXBlKQogCiAgICAgbV9mdW5jdGlvblByb3RvdHlwZS5zZXQodm0s
IHRoaXMsIEZ1bmN0aW9uUHJvdG90eXBlOjpjcmVhdGUodm0sIEZ1bmN0aW9uUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOyAvLyBUaGUgcmVhbCBwcm90b3R5
cGUgd2lsbCBiZSBzZXQgb25jZSBPYmplY3RQcm90b3R5cGUgaXMgY3JlYXRlZC4KICAgICBtX2Z1
bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CisgICAgbV9ib3VuZEZ1bmN0
aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX25hbWVkRnVu
Y3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNp
dGlvbih2bSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgdm0ucHJvcGVydHlOYW1lcy0+bmFt
ZSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0sIDAsIG1fZnVuY3Rpb25OYW1lT2Zm
c2V0KSk7CiAgICAgbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90
eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbEZ1bmN0aW9uID0gMDsKQEAgLTQ1MSw3
ICs0NTMsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB9CiAgICAgCiAgICAgSlNGdW5jdGlvbiogYnVpbHRpbkxvZyA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMSwgdm0ucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyLnN0cmlu
ZygpLCBnbG9iYWxGdW5jQnVpbHRpbkxvZyk7Ci0gICAgSlNGdW5jdGlvbiogc2V0VHlwZUVycm9y
QWNjZXNzb3IgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDIsIHZtLnByb3BlcnR5TmFt
ZXMtPmVtcHR5SWRlbnRpZmllci5zdHJpbmcoKSwgZ2xvYmFsRnVuY1NldFR5cGVFcnJvckFjY2Vz
c29yKTsKICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5JbmZpbml0eSwganNOdW1iZXIoc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjppbmZpbml0eSgpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LApAQCAtNDU5LDggKzQ2MCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUg
cHJvdG90eXBlKQogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
dW5kZWZpbmVkUHJpdmF0ZU5hbWUsIGpzVW5kZWZpbmVkKCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPk9iamVjdFByaXZhdGVOYW1lLCBvYmplY3RDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0
KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRp
bkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+U2V0VHlwZUVycm9yQWNjZXNzb3JQcml2YXRl
TmFtZSwgc2V0VHlwZUVycm9yQWNjZXNzb3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KQorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QnVpbHRp
bkxvZ1ByaXZhdGVOYW1lLCBidWlsdGluTG9nLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSkKICAgICB9OwogICAgIGFkZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FS
UkFZX0xFTkdUSChzdGF0aWNHbG9iYWxzKSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXgg
YTQ5MmY4NTVlMDJhZGYxYzgyNzk0OGQ3MTdjYmUxNjlhMmJhNjM1ZS4uYzUyZTkzODIwOThkNzQy
ZDk2OWY1MzBhMDE4YTUwNjFiYThkM2ExNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtMjYsNyAr
MjYsNiBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgiCiAKICNpbmNsdWRl
ICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgpAQCAtODEzLDE5ICs4MTIsNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNCdWlsdGluTG9nKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0gICAgCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRUeXBlRXJyb3JBY2Nlc3NvcihFeGVjU3RhdGUqIGV4ZWMp
Ci17Ci0gICAgSlNPYmplY3QqIHRhcmdldCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPihleGVj
LT5hcmd1bWVudCgwKSk7Ci0gICAgSlNWYWx1ZSBwcm9wZXJ0eU5hbWUgPSBleGVjLT5hcmd1bWVu
dCgxKTsKLSAgICAKLSAgICAvLyBTZXR0aW5nIF9fcHJvdG9fXyBvZiBhIHByaW1pdGl2ZSBzaG91
bGQgaGF2ZSBubyBlZmZlY3QuCi0gICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5TmFtZS5pc1N0
cmluZygpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eShleGVjLCBh
c1N0cmluZyhwcm9wZXJ0eU5hbWUpLT5nZXRTdHJpbmcoZXhlYykpOwotICAgIHRhcmdldC0+cHV0
RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLCB0
YXJnZXQtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcih2bSksIERv
bnREZWxldGUgfCBEb250RW51bSB8IEFjY2Vzc29yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotfQotICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuaAppbmRleCA4ODFiOWM4MzJlZjk3NDc1OGM5NjIzNWMxOTJhOWM1OTFhYWEyYjY4Li4yOTIy
ZDYxM2UzYWU0Mzg5NTFiYTcxYjAxYjUyZTExOTViN2MxZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKQEAg
LTUzLDggKzUzLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJv
dG9HZXR0ZXIoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2Jh
bEZ1bmNQcm90b1NldHRlcihFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coRXhlY1N0YXRlKik7CiAgICAgCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRUeXBlRXJyb3JBY2Nlc3NvcihFeGVjU3RhdGUq
KTsKLSAgICAKIHN0YXRpYyBjb25zdCBkb3VibGUgbWFudGlzc2FPdmVyZmxvd0xvd2VyQm91bmQg
PSA5MDA3MTk5MjU0NzQwOTkyLjA7CiBkb3VibGUgcGFyc2VJbnRPdmVyZmxvdyhjb25zdCBMQ2hh
ciosIHVuc2lnbmVkIGxlbmd0aCwgaW50IHJhZGl4KTsKIGJvb2wgaXNTdHJXaGl0ZVNwYWNlKFVD
aGFyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA2
YWRlNjcwNGJmNGE3OTk1MjAwZjgyY2YyNDA0MmFjNTEyZDdhZTQ5Li5lMzAzZTc5NGEzZTk5ZTEx
OTMxYjM1NDdjMzNjMTM4MGFkNjUwOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCkBAIC0yNjY4LDE3ICsyNjY4LDUgQEAgSlNPYmplY3QqIHRocm93VHlw
ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIHJl
dHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCBtZXNzYWdlKSk7CiB9Ci0gICAgCi12b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RQcm90b3R5cGVQ
cm9wZXJ0eShWTSYgdm0sIEpTVmFsdWUgdmFsdWUsIGludCBhdHRyaWJ1dGVzKQotewotICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCB2YWx1ZSwgYXR0cmlidXRl
cyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGVGb3JIYXNJ
bnN0YW5jZVByaXZhdGVOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcyk7Ci19Ci0gICAgCi12b2lkIEpT
T2JqZWN0OjpwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyhWTSYg
dm0sIEpTVmFsdWUgdmFsdWUsIGludCBhdHRyaWJ1dGVzKQotewotICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHZhbHVlLCBhdHRy
aWJ1dGVzKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlRm9ySGFzSW5zdGFuY2VQcml2YXRlTmFtZSwgdmFsdWUsIGF0dHJpYnV0
ZXMpOwotfQotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCmluZGV4IDBmZWE5YjkwOTYyNjY4NTk0YjM5YjM1MjFlOTgxMDli
ODIxYzkwNjIuLjUyMWI1ZjRiNjhlMGQyYzI0ZjY5MDkyNzA5NDAyNWU5MWI4Y2UyNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtOTMyLDkgKzkzMiw2IEBA
IHByb3RlY3RlZDoKICAgICAgICAgfQogICAgIH0KIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkoVk0mLCBKU1ZhbHVlLCBpbnQpOwotICAgIHZv
aWQgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbnMoVk0mLCBKU1Zh
bHVlLCBpbnQpOwotICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRleCBiOTIwNjFkMzdiMWQ2NTk0OWVi
MjA4MzgwYjQ2ZTRiODViZjk5ODFhLi40MDI2MTk2MzNmYTA2ZmQyNTRiM2YyYTdhOGNjNzFlODA3
YWFmOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21p
c2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlQ29uc3RydWN0b3IuY3BwCkBAIC04Niw3ICs4Niw3IEBAIEpTUHJvbWlzZUNvbnN0cnVj
dG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
dm9pZCBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1Byb21p
c2VQcm90b3R5cGUqIHByb21pc2VQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0sICJQcm9taXNlIik7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0
VHJhbnNpdGlvbnModm0sIHByb21pc2VQcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBwcm9taXNlUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBE
b250RGVsZXRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuY3BwCmluZGV4IGMwYjIzYTMwMWQ1YzlmNzVjNzQwZmQ5ZGRlNmM3ZjhlMTM5
NjZlNWMuLjllM2E0YmYzYjY5MzY5ZjQ1NGJlOThiNTAzNGI2MjkyOWRkZmViZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgY29uc3QgQ2xhc3NJbmZvIE1hcENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUEKIHZvaWQgTWFwQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTWFwUHJvdG90eXBlKiBtYXBQcm90b3R5cGUpCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIG1hcFByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNs
YXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlv
bnModm0sIG1hcFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwor
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGUsIG1hcFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggZDk3ZThhNjQ2OTlmNTIyYzljYmJiNWQ3YjI5YzM4NDYzYmRk
NjI0OC4uZmJjNmM4YjczNTEyMzczNjgxZmE4NjhiNTJkYjNlMDE2NzhhYmUwYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgY29uc3QgQ2xhc3NJbmZvIE1hcEl0ZXJhdG9yQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIk1hcEl0ZXJhdG9yIEl0ZXJhdG9yIiwgJkJhc2UKIHZvaWQg
TWFwSXRlcmF0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBNYXBJdGVyYXRv
clByb3RvdHlwZSogcHJvdG90eXBlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
LSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgcHJv
dG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90
eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYW1lQ29uc3RydWN0b3IuY3BwCmluZGV4IDZj
ODI1NmU1NTU3ZWVlOGQ1NDc2Mzc5Y2RhZWRjNDgwZDc3OWZhNGIuLjM5MjY4ODMwNWY2ZmUxZTQz
YzA2M2YyOGJmNWE1NmU1ZTAyZGVhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hbWVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmFtZUNvbnN0cnVjdG9yLmNwcApAQCAtNDQsNyArNDQsNyBAQCBOYW1lQ29uc3Ry
dWN0b3I6Ok5hbWVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9p
ZCBOYW1lQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTmFtZVByb3RvdHlwZSog
cHJvdG90eXBlKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBwcm90b3R5cGUtPmNs
YXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5V2l0
aG91dFRyYW5zaXRpb25zKHZtLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigxKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGJlNTE4MTMwY2ZhNGU4MGUwZDZhMzVkYWZhOWNh
NDJhNGZiNzU2OGIuLjYyNjAwNTU1YjRjNjJjZDBjNWYzZjQzZjhiMTUyZjM5NDc1Y2RlZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgTmF0aXZlRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSA9IE5hdGl2ZUVycm9yUHJvdG90
eXBlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0dXJlLCBuYW1lLCB0
aGlzKTsKICAgICAKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsgLy8gRUNNQSAx
NS4xMS43LjUKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgcHJvdG90eXBlLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOwogICAgIG1fZXJyb3JTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBFcnJvcklu
c3RhbmNlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlKSk7CiAg
ICAgQVNTRVJUKG1fZXJyb3JTdHJ1Y3R1cmUpOwogICAgIEFTU0VSVChtX2Vycm9yU3RydWN0dXJl
LT5pc09iamVjdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCA3ODcwOGJmMzA3ODNiMTY5ZThlNTUwZTljMTVjYTZh
YmNkMDM0ODUwLi4wNGM1MDk4MzhlNDBjMTNhNzE2Y2MyMzNlODE3NTc1Mzc2Nzg5MWVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUpCiAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwogCiAgICAgLy8gTnVtYmVyLlByb3RvdHlwZQotICAgIHB1dERp
cmVjdFByb3RvdHlwZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25zKHZtLCBudW1iZXJQcm90b3R5
cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBudW1iZXJQcm90
b3R5cGUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIAogICAgIC8vIG5vLiBv
ZiBhcmd1bWVudHMgZm9yIGNvbnN0cnVjdG9yCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwg
RG9udEVudW0gfCBEb250RGVsZXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA4NzkzZDhlYjI0NzcxNjk1NmIxMmQ4
NDM5YTdmYWMxOTg5Y2NhOGMwLi5hM2MxOTI3OTA3NzBkOTI1ZTVlOTJlYTBjZTgxYmNlYmE1Yjk4
YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgT2JqZWN0Q29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgT2JqZWN0UHJvdG90eXBlKiBvYmplY3RQcm90b3R5cGUpCiB7
CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIElkZW50aWZpZXIoJnZtLCAiT2JqZWN0Iiku
c3RyaW5nKCkpOwogICAgIC8vIEVDTUEgMTUuMi4zLjEKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQ
cm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9ucyh2bSwgb2JqZWN0UHJvdG90eXBlLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgb2JqZWN0UHJvdG90eXBlLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3Ig
Y29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnRE
ZWxldGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCmluZGV4IGUwMGMwN2ZkYjVmZjQ5M2E2YTFiMzhiZTY1ZGUxNzBiMzg1
YjQxMWMuLjBjNmJmNDg4NmViZjUwZGQ1MDE5YmNhOTFkMWY4YTRmYzRjMDM2YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFByb3RvdHlwZSkKICAgICBBU1NFUlQoaW5o
ZXJpdHMoaW5mbygpKSk7CiAKICAgICAvLyBFQ01BIDE1LjEwLjUuMSBSZWdFeHAucHJvdG90eXBl
Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbnModm0sIHJl
Z0V4cFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IHJlZ0V4cFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogCiAg
ICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigyKSwg
UmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IGZjMWEzOGE3YTdlZmI4ZmM3
MGE1MTA4MDBiYjliY2JkYzI1Mjc0OTguLmIyMDM4ODhkM2MxNmNkYTNjMDAzNTA2MjA4YWUwODY5
NWRjNWRhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgY29uc3QgQ2xhc3NJbmZvIFNldENvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUEKIHZv
aWQgU2V0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2V0UHJvdG90eXBlKiBz
ZXRQcm90b3R5cGUpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIHNldFByb3RvdHlw
ZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVy
dHlXaXRob3V0VHJhbnNpdGlvbnModm0sIHNldFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHNldFByb3RvdHlwZSwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtIHwg
RG9udERlbGV0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldEl0ZXJhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZTg5OGI3M2RlYjI0ZTE3NzUz
OWEwMzE3ZTljMTcwMzViODM2NzVjNS4uYzE2ZmY5YmVkOWZjY2YyOWE5YWNlOWViMzU5OTgwNTM3
YzYzYTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0SXRl
cmF0b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2V0SXRlcmF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgY29uc3QgQ2xhc3NJ
bmZvIFNldEl0ZXJhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlNldCBJdGVyYXRvciIsICZC
YXNlOjpzX2luZm8KIHZvaWQgU2V0SXRlcmF0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBTZXRJdGVyYXRvclByb3RvdHlwZSogcHJvdG90eXBlKQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRU
cmFuc2l0aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcAppbmRleCBmODlkODgzOWY5OTY1ZGU1ZTU1ZDgyYTI2MTkzYzNjYTkzODg0
ZjU5Li5mODIyMWQ3Y2JjYzQ5MzM0MDdhYTM0Yzk1YTk3YjE1ODBjM2IzNjg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBA
IC01Niw3ICs1Niw3IEBAIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBTdHJpbmdDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgc3RyaW5nUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+
Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0
aW9ucyh2bSwgc3RyaW5nUHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0
ZSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgc3RyaW5nUHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERl
bGV0ZSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRl
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01h
cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggZTRiMzEyMzA4MzE0ZWI3MTJlYTA4ZGJmYjNhMzkwNjM1NDE5
ZWMyYi4uZjM1NDBmYWFhOTBiMDQzZGI1MWI2YjQ5YmRiYzEwMDZlMDY1Mzk3NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3Bw
CkBAIC0zOSw3ICszOSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWFrTWFwQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwKIHZvaWQgV2Vha01hcENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYWtNYXBQcm90b3R5cGUqIHByb3Rv
dHlwZSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJvdG90eXBlLT5jbGFzc0lu
Zm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eVdpdGhvdXRU
cmFuc2l0aW9ucyh2bSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7
CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNDBhZmNhMWY0Nzc0Njg4ZmJmMWJhYjY1YzRhMzJmZDE3ZmZmYzM3ZS4uYTg2ZWZm
ZDEzZTdmNWI4YTI0YzUwMGNjNmUwNmU5MjkxOWUyNzY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAx
MCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBK
U0ltYWdlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQcm90b3R5
cGVQcm9wZXJ0eSh2bSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxmKHZtLCBnbG9i
YWxPYmplY3QpLCBOb25lKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmpl
Y3QpLCBOb25lKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW1hZ2UoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA5MGYxNWQ4OTRiZmExZGI5NWRh
NTY0OWQzZDZhOTZlY2IzYjM5M2U4Li5mYjEyYTRkNWRjZDU3MThlNzUwNWFlNThhNjgxNjUwNjE2
MTY1MGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtNDUyNiwxNSArNDUyNiwxNSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1
Y3RvckhlbHBlck1ldGhvZHMKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkp
IHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGluaGVy
aXRzKGluZm8oKSkpO1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXRE
aXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgZ2xvYmFsT2JqZWN0LT5wcm90b3R5cGUoKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdsb2JhbE9iamVj
dC0+cHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsKICAgICB9IGVsc2lm
ICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7XG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTtcbiIp
OwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0UHJvdG90eXBlUHJv
cGVydHkodm0sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwg
Tm9uZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNl
bGYodm0sIGdsb2JhbE9iamVjdCksIE5vbmUpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkp
O1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3RQcm90b3R5
cGVQcm9wZXJ0eSh2bSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYodm0sIGdsb2JhbE9iamVjdCks
IERvbnREZWxldGUgfCBSZWFkT25seSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCAke3Byb3Rv
Q2xhc3NOYW1lfTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KTtcbiIpOwogICAgIH0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKCR7bGVhc3RDb25zdHJ1Y3Rvckxl
bmd0aH0pLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiBkZWZpbmVk
ICRsZWFzdENvbnN0cnVjdG9yTGVuZ3RoOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IGE3ZWFmNmY5NDg5Mjk5
YWIyMTM0NWM2MTcwYzZmZjZhZjIxZWQ3MDUuLjc3MzM0ZmJmNWI2MzZmMzIxNmYwZTk1NmUyOTky
MjBlOWNhMjkyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC03NCw3
ICs3NCw3IEBAIHZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQ
cm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpzZWxm
KHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RBY3RpdmVET01PYmplY3RQ
cm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDE2NzBkODg1OTVhMzVlNzFmYjZlNjY0YTUzNGNm
N2YwNThkNWI2YmEuLjQ0YzQxNWQ5YjJmM2E0NTRhMGFiNGE2MjE2ZGRlODdiYzQ1YjkxYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtNzAsNyArNzAsNyBAQCB2
b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplYwogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJv
cGVydHkodm0sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlw
ZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRP
bmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29u
c3RydWN0b3IuY3BwCmluZGV4IDAyMjk2NTRmNWQ1ZmFjNjdiNGYwN2RhNTIyOTFiMTA5MGMxMmI3
N2MuLjlhZDllZWZkYmRjOGU4ZmUzNjMzOGRiMGNiZmNjZGI1N2YxZWI2MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01H
bG9iYWxPYmplY3QKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlOjpzZWxmKHZtLCBn
bG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVs
ZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA3Njdm
YjlhN2IyY2JjNjk5NWZmNDZjMjU4ZDcwN2U1M2M5NDhjOTlhLi5kZWJlZTk3Y2Q2YWFhOTBkMTEx
YTdkOTQ2ODQ4YzNiM2M4MzhjMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG8KIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVj
dFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6c2VsZih2
bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5
cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFk
T25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
aW5kZXggMjBiYjkyMGNhY2Y0ODg5NjQ5ODA2YjVmZmZiNTc5YjlkYzcwNGFlZi4uNWUzYTZlYjMw
ZTk2MWVlYmY1Nzg3ZTdjMTZmYmNmNzlhMmZhYzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmEKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1
dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGU6OnNl
bGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEV4Y2VwdGlvblByb3Rv
dHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJl
YWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDA4MzNmZDNiOGI1NTg5MDljNjAzNjYyMTliN2I3
YzM3OWY2MmQxOGYuLmY4ZmZiNjlhYWM0NTEzMWNiZjFkMjg0OWUwMDRlYmRhOTkwZTdmM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTUyLDcgKzUyLDcg
QEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmoKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlw
ZVByb3BlcnR5KHZtLCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOjpzZWxmKHZt
LCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
UHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
OwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IGQyMTc4OWI1MjA4MmNkNGVjMjliMzQzM2RmMjNhYjdiZGYzMzM5NzAuLmQ2
YzBmZWUwYjBlMjM5MzdkNzllZDE1MzA2ZGQwZWEyMmZmN2Q2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmEKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkp
OwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7Cisg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEludGVy
ZmFjZVByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDJkZTZkZWExOGFlZmUx
NDY4ZjVkYTdlYTNhYWU5YTIyZTBlN2QyNmIuLjhiODk3MDdjZDg5NmY5M2NiYTJhZGZjNGE1Njgz
NDA2OGQ3MjQ3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWwKIHsKICAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwot
ICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZtLCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmpl
Y3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9u
dEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWQ3
N2I4MmQ5NjQyYzc3N2EzNTVhNjczZTYxZTM2Mzc4ZjE4YzNjZC4uODZjMzIzNzZmM2E3NDg4YzM0
NTk1OTFmYTE5ODMxYTcyMjFmMDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdAogewogICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0sIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQ
cm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7
CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxl
dGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAK
QEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE8KIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkp
KTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0TmFtZWRDb25zdHJ1
Y3RvclByb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBE
b250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggZWRmOGM5YzIxYjNj
NDg3ZjUwNDRmOWMwZjY0ZWE5MGI0NzUxNWM0Yy4uYjA3MGVhZDhhMTVlMGM5NzIwNzhkOGU0Y2Vm
NTdkZmE3ODc0NGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEpTVGVz
dE5vZGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NF
UlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0s
IEpTVGVzdE5vZGVQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIEpTVGVzdE5vZGVQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxl
dGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAppbmRleCAxNjZhYmEwNzQwNTI1MDc4
ODcyNjJhMzJlMjcxMDliOWI5ZGYyYzgyLi5lYmJmZGFkNDE3YjQyODE4NzM2MDA1YzQ2MjQxNDBm
MTJjMTFhM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCkBAIC02NCw3
ICs2NCw3IEBAIHZvaWQgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQ
cm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZTo6c2Vs
Zih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Y1Byb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRl
eCAxY2ViMzNjYzA4MjY1MjkwNDkzZTcyZTkyZTJjMGMyOTBmZDlkZTc1Li44MWIzZDlmMWU4MDM0
NGU1M2IwNjI5NGI1ZDI5MGJiMmY3MDBkMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjQyLDcgKzI0Miw3
IEBAIHZvaWQgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQcm90b3R5
cGVQcm9wZXJ0eSh2bSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250
RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cAppbmRleCA1MzQyNDQ0YTJjODMyZjRiZWM0MzgyOGZkMzBjMTY3ZjU3MDJiNDAwLi5kOGNhNzRl
ODU4MWM0N2MzZGIwYzFhOWE5YmM2ZmI3NWQyYThhNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNET01HbG9iYWwKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNT
RVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdFByb3RvdHlwZVByb3BlcnR5KHZt
LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlOjpzZWxmKHZtLCBnbG9iYWxP
YmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90
eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVh
ZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGRlNTkzZTUy
MzNlODljODE5OWQzMTYxZWViOWJjMzMzZTAyYWExNjIuLmZlMzkwMjQyOTcxYTAxMzc5YjcxNTFl
YTIwM2I1NGMyOGE2ZWYyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNECiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpzZWxmKHZtLCBn
bG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwCmluZGV4IDZiMGQ0OWY0MzQyNzI3ZWY2NGVhZGJhMmNmZjcxMDZjMmViMGJi
MWQuLjQ4NTgxMWU2MDdmZDg2YjMyNGQxOGU3MWMzNmI2YWUyYWYwYjExZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbAogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygp
KSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0sIEpTVGVzdFR5cGVkZWZzUHJv
dG90eXBlOjpzZWxmKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZTo6c2VsZih2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMiksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5j
cHAKaW5kZXggZTdhMWViMThhMWY5MzE2MzhlNGZmOTdlMmQ5NWVkMmU3NjY0NDZjNS4uODgzMjRm
ODhiMGQ3NjQ0NjFkNDk4MGIwZGI4ZGExNmEyMjA5MWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBAIC01
NSw3ICs1NSw3IEBAIHZvaWQgSlNhdHRyaWJ1dGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJl
Y3RQcm90b3R5cGVQcm9wZXJ0eSh2bSwgSlNhdHRyaWJ1dGVQcm90b3R5cGU6OnNlbGYodm0sIGds
b2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTYXR0cmlidXRlUHJvdG90eXBlOjpzZWxmKHZt
LCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250
RGVsZXRlIHwgRG9udEVudW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjMwNjQ5YWMyN2EwNTNh
MmZiNGI5MzkwY2FhMDFmODU5NDExYmUzZS4uZDQ0MzA4YWRmNGJkMzgxMDZmODViZTQ5N2M2MTE3
MjhmNGM5NjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lkIEpTcmVhZG9u
bHlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0UHJvdG90eXBlUHJvcGVydHkodm0sIEpT
cmVhZG9ubHlQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IEpTcmVhZG9ubHlQcm90b3R5cGU6OnNlbGYodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1ZDA2NWY4MGYxYmU2MGU4MTFiYmRkY2JhYWI2YzZiNWE5OTc3ODcyLi4xZWI5Mjg2Yjkx
OWM4NjJjMGZjZGQzM2UwZWU1MzYwN2E2ZWM1MjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTQtMDQtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjcxOTkgYW5kIHIxNjcyNTEuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE2NzgKKworICAgICAg
ICBDYXVzZWQgYSBEWUVCZW5jaCByZWdyZXNzaW9uIGFuZCBkb2VzIG5vdCBzZWVtIHRvIGltcHJv
dmUgcGVyZgorICAgICAgICBvbiByZWxldmFudCB3ZWJzaXRlcyAoUmVxdWVzdGVkIGJ5IHJuaXdh
IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
IlJld3JpdGUgRnVuY3Rpb24uYmluZCBhcyBhIGJ1aWx0aW4iCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEwODMKKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3MTk5CisKKyAgICAgICAgIlVwZGF0ZSB0ZXN0IHJlc3Vs
dCIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTY3MjUxCisKIDIw
MTQtMDQtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gY29tcG9zaXRpbmcvcmVwYWludC9wb3NpdGlvbmVkLW1vdmVtZW50Lmh0bWwgZmxha3ks
IG1pc3NpbmcgcmVwYWludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9u
LWJpbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9uLWJpbmQtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ2YjdhOTg4ZTZkZjMzYzA0YWEzMTg5ZTQyODhjZjIxZDgyYWZiZDUu
LmIzMTg2ZmJjNzA5OThmMGM4MzZmMWFhYzczNjgyNWFiMjU2YTY3YjYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1iaW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9kb20vZnVuY3Rpb24tYmluZC1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFRl
c3RzIEZ1bmN0aW9uLmJpbmQuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBu
ZXcgKGRlY29kZVVSSS5iaW5kKCkpKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogZnVuY3Rp
b24gaXMgbm90IGEgY29uc3RydWN0b3IuCitQQVNTIG5ldyAoZGVjb2RlVVJJLmJpbmQoKSkoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAo
ZXZhbHVhdGluZyAnbmV3IChkZWNvZGVVUkkuYmluZCgpKSgpJykuCiBQQVNTIChuZXcgKFN0cmlu
Zy5iaW5kKCkpKCdmb28nKSkudG9TdHJpbmcoKSBpcyAnZm9vJwogUEFTUyByZXN1bHQgaXMgIltv
YmplY3QgV2luZG93XSAtPiB4OjEsIHk6MiIKIFBBU1MgcmVzdWx0IGlzICInYScgLT4geDonYics
IHk6MSIKQEAgLTIzLDkgKzIzLDkgQEAgUEFTUyBoIGluc3RhbmNlb2YgSCBpcyB0cnVlCiBQQVNT
ICJwcm90b3R5cGUiIGluIEYgaXMgdHJ1ZQogUEFTUyAicHJvdG90eXBlIiBpbiBHIGlzIGZhbHNl
CiBQQVNTICJwcm90b3R5cGUiIGluIEggaXMgZmFsc2UKLVBBU1MgRnVuY3Rpb24uYmluZC5jYWxs
KHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQ2Fubm90IGJpbmQgbm9uLWZ1
bmN0aW9uIG9iamVjdC4uCitQQVNTIEZ1bmN0aW9uLmJpbmQuY2FsbCh1bmRlZmluZWQpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGFiY0F0KDEpIGlzICJiIgot
UEFTUyBuZXcgYWJjQXQoMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogZnVuY3Rpb24gaXMg
bm90IGEgY29uc3RydWN0b3IuCitQQVNTIG5ldyBhYmNBdCgxKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IGFi
Y0F0KDEpJykuCiBQQVNTIGJvdW5kRnVuY3Rpb25Qcm90b3R5cGVBY2Nlc3NlZCBpcyBmYWxzZQog
UEFTUyBGdW5jdGlvbi5iaW5kLmxlbmd0aCBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLWJpbmQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9mdW5jdGlvbi1iaW5kLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2QwZDkxNTUwODJjN2VhMDg4
OGMyMTgxM2MzNDljNDMwYzE3ZjkxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Z1bmN0aW9uLWJpbmQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2Z1bmN0aW9u
LWJpbmQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZnVuY3Rpb24tYmluZC5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9mdW5jdGlvbi1iaW5kLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZkM2QyMzJhYmNiZjk1NWJmMThjODA4N2Q4ZTQyYmQyYTA2NWJm
YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9mdW5jdGlvbi1iaW5kLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9mdW5jdGlvbi1iaW5kLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWJpbmQuanMg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdW5jdGlvbi1iaW5kLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjM2MGIyODVkY2Q2MTRjMjdjYjc2ODUzOGE2
MjY1ZWI5MmMxNjNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z1bmN0aW9uLWJpbmQuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1mdW5jdGlvbiBmb28oYSxiKSB7Ci0gICAg
cmV0dXJuIGEgXiBiICsgYXJndW1lbnRzLmxlbmd0aDsKLX0KLQotdmFyIGcwID0gZm9vLmJpbmQo
e30pOwotdmFyIGcxID0gZm9vLmJpbmQoe30sIDEpOwotdmFyIGcyID0gZm9vLmJpbmQoe30sIDEs
IDIpOwotdmFyIGczID0gZm9vLmJpbmQoe30sIDEsIDIsIDMpOwotdmFyIHN0YXJ0ID0gbmV3IERh
dGU7Ci0KLXZhciByZXN1bHQgPSAwOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkg
ewotICAgIHJlc3VsdCAqPSAzOwotICAgIHJlc3VsdCArPSBnMChpLCByZXN1bHQpOwotICAgIHJl
c3VsdCArPSBnMSgpOwotICAgIHJlc3VsdCArPSBnMShpKTsKLSAgICByZXN1bHQgKz0gZzEoaSwg
cmVzdWx0KTsKLSAgICByZXN1bHQgKz0gZzIoKTsKLSAgICByZXN1bHQgKz0gZzIoaSk7Ci0gICAg
cmVzdWx0ICs9IGcyKGksIHJlc3VsdCk7Ci0gICAgcmVzdWx0ICs9IGczKCk7Ci0gICAgcmVzdWx0
ICs9IGczKGkpOwotICAgIHJlc3VsdCArPSBnMyhpLCByZXN1bHQpOwotICAgIHJlc3VsdCB8PSAw
OwotfQotcHJpbnQoKG5ldyBEYXRlIC0gc3RhcnQpKQotaWYgKHJlc3VsdCAhPSAxNTk2NDk5MDEw
KQotICAgIHRocm93ICJCYWQgcmVzdWx0OiAiICsgcmVzdWx0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>