<?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>237258</bug_id>
          
          <creation_ts>2022-02-27 12:24:25 -0800</creation_ts>
          <short_desc>Omit template parameter for SetForScope&lt;&gt; variables</short_desc>
          <delta_ts>2022-02-28 11:13:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237071</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846474</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-27 12:24:25 -0800</bug_when>
    <thetext>Omit template parameter for SetForScope&lt;&gt; variables now that it is no longer required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846475</commentid>
    <comment_count>1</comment_count>
      <attachid>453352</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-27 12:29:45 -0800</bug_when>
    <thetext>Created attachment 453352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846483</commentid>
    <comment_count>2</comment_count>
      <attachid>453352</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-27 13:05:42 -0800</bug_when>
    <thetext>Comment on attachment 453352
Patch

r=mews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846511</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-27 17:25:13 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 453352 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846513</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-27 17:25:42 -0800</bug_when>
    <thetext>&lt;https://commits.webkit.org/r290575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846515</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-27 17:26:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/89534796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846695</commentid>
    <comment_count>6</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-28 10:44:22 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846696</commentid>
    <comment_count>7</comment_count>
      <attachid>453409</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-28 10:44:25 -0800</bug_when>
    <thetext>Created attachment 453409
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846697</commentid>
    <comment_count>8</comment_count>
      <attachid>453409</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-28 10:46:13 -0800</bug_when>
    <thetext>Comment on attachment 453409
[fast-cq] Patch

oops sorry dunno why `webkit-patch` uploaded this here 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846699</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-02-28 10:46:33 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846705</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-02-28 11:01:37 -0800</bug_when>
    <thetext>Honestly it kinda looks like this makes it harder to read the code, not easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846708</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-28 11:13:13 -0800</bug_when>
    <thetext>You’re certainly welcome to your opinion, and no surprise it’s different from mine, but plain old assignment statements also don’t state the type of the value being assigned.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453352</attachid>
            <date>2022-02-27 12:29:45 -0800</date>
            <delta_ts>2022-02-28 10:47:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237258-20220227122944.patch</filename>
            <type>text/plain</type>
            <size>138546</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NjQ5OGE3ZTY3MjVkNzAyMzVhZjU3MTE4YTczZGFmYzU1ZjgxMWQwLi5lMWY0Nzg0NjQ3YzVhNGE0
ODc1OTk3NGQwNmNiYzJiMmRjNWMzY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAyMi0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9taXQgdGVtcGxhdGUgcGFyYW1ldGVyIGZvciBTZXRGb3JTY29wZTw+IHZhcmlh
YmxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXROb2RlKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlci5jcHA6Cisg
ICAgICAgIChKU0M6OkRlYnVnZ2VyOjpkaXNwYXRjaEZ1bmN0aW9uVG9PYnNlcnZlcnMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnNldExvY2FsT3JUbXApOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2Rl
UGFyc2VyOjpzZXRBcmd1bWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OmRpc3BhdGNoKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlSW5uZXIpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VBc3luY0Z1bmN0aW9uU291cmNlRWxlbWVudHMpOgorICAgICAgICAoSlND
OjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3luY0dlbmVyYXRvckZ1bmN0aW9uU291cmNlRWxl
bWVudHMpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkJv
ZHkpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvblBhcmFt
ZXRlcnMpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbklu
Zm8pOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkRlY2xh
cmF0aW9uKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXN5bmNGdW5j
dGlvbkRlY2xhcmF0aW9uKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNl
Q2xhc3MpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcm9wZXJ0eSk6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUdldHRlclNldHRlcik6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uRXhwcmVzc2lvbik6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jRnVuY3Rpb25FeHBy
ZXNzaW9uKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXJyb3dGdW5j
dGlvbkV4cHJlc3Npb24pOgorCiAyMDIyLTAyLTI2ICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1
enVraUBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgVU5VU0VEIHdhcm5pbmdzIGZvciBub24t
Q29jb2EgcGxhdGZvcm0gYWZ0ZXIgcjI5MDQ0OQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkZmZiZjBjNDQzOGE5ZjMzMmUyNDI0
OGZhZTNmZGUyOGQxZDY3YzViLi4xZWM2MTU0NzY1YjhlMjVkMzQzODQwYzkzYTllNmRmMzM1M2Ez
MjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgT21pdCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZm9yIFNldEZv
clNjb3BlPD4gdmFyaWFibGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzcyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9SZWZDb3VudGVyLmg6CisgICAgICAgIChXVEY6OlJlZkNvdW50ZXI8
VD46OkNvdW50OjpkZXJlZik6CisKIDIwMjItMDItMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBEcm9wIFJlZjw+J3Mgb3BlcmF0b3I9PSgpIGFzIGl0IGlzIGEg
Yml0IGFtYmlndW91cyAvIGNvbmZ1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4MjY2YTQ1MzNkM2Y5ZWNj
YWVlYTc1MDA1ODAwNDQ4ODAwYzU5YTMuLjI3OWM4ZWQ3NjhhMjViOTNiYmM4NWZiNmU2MTI1N2Vl
N2ViZWY3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjIgQEAKKzIwMjItMDItMjcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPbWl0IHRlbXBsYXRlIHBhcmFt
ZXRlciBmb3IgU2V0Rm9yU2NvcGU8PiB2YXJpYWJsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmFib3J0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWZpbmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2
YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNhbGxJ
bldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVKYXZh
U2NyaXB0VVJMKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKToKKyAgICAgICAgKiBj
c3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Nl
bGVjdG9yUGFyc2VyOjpjb25zdW1lQ29tcG91bmRTZWxlY3Rvcik6CisgICAgICAgICogZG9tL0N1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVs
ZW1lbnRRdWV1ZTo6aW52b2tlQWxsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVJlbmRlclRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGl0VGVzdCk6CisgICAgICAgICogZG9tL0V2ZW50VGFy
Z2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5l
cnMpOgorICAgICAgICAqIGRvbS9NaWNyb3Rhc2tzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1p
Y3JvdGFza1F1ZXVlOjpwZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCk6CisgICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6Zm9yRWFjaEFjdGl2ZURPTU9iamVjdCBjb25zdCk6CisgICAgICAgICog
ZG9tL1RyYXZlcnNhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlSXRlcmF0b3JCYXNlOjph
Y2NlcHROb2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmN1dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNvcHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3B5Rm9udCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNRdW90YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpwYXN0ZUZvbnQpOgorICAgICAgICAqIGhpc3RvcnkvQmFja0Zvcndh
cmRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpwcnVuZVRv
U2l6ZU5vdyk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmVBbGxJ
dGVtc0ZvclBhZ2UpOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tl
bnMpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Ojpmb2N1c0FuZFNob3dWYWxpZGF0aW9uTWVzc2FnZSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZv
cm1FbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmNv
bnN0cnVjdEVudHJ5TGlzdCk6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6OnNjaGVkdWxlTG9hZCk6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OnNjYW4pOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJl
c3VsdHNCdXR0b25FbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwv
dHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVU
ZXh0VHJhY2s6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogbG9hZGVyL0NvbnRlbnRGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6aGFuZGxlUHJvdmlzaW9uYWxM
b2FkRmFpbHVyZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjpjbGVhclByb3Zpc2lvbmFsTG9hZEZvclBvbGljeUNoZWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpkaXNwYXRjaEJlZm9yZVVubG9hZEV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmF3UmVzb3VyY2U6OnVwZGF0ZUJ1ZmZlcik6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpwcnVuZUxp
dmVSZXNvdXJjZXNUb1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnBydW5l
RGVhZFJlc291cmNlc1RvU2l6ZSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpydW5Nb2RhbCBjb25zdCk6CisgICAgICAgICogcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnN1c3BlbmRGb3JCYWNrRm9yd2Fy
ZENhY2hlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisgICAgICAgICog
cGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFNvdXJjZTo6ZG9F
eHBsaWNpdExvYWRDYW5jZWxsYXRpb24pOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YXBwbHlSZWN1cnNpdmVseVdpdGhWaXNpYmxl
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUVtYmVkZGVkT2JqZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlld0xheW91dENvbnRleHQ6OnJ1bkFzeW5jaHJvbm91c1Rhc2tzKToKKyAgICAgICAgKiBw
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVycyk6CisgICAgICAgICogcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0
cnlUb0JlZ2luRHJhZ0F0UG9pbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0
YXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2
ZW50QWZ0ZXJNYWluVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZXZpZXdDb252ZXJ0ZXI6Oml0ZXJhdGVDbGllbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXZpZXdDb252ZXJ0ZXI6OnJlcGxheVRvQ2xpZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2xpZW50V2lsbEJlZ2luUGxheWJh
Y2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0Jl
Zm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1p
dExheWVyQ2hhbmdlc0FmdGVyU3VibGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICgtW1dlYlNpbXBsZUxheWVyIHJlbmRlckluQ29u
dGV4dDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGZBbmRD
aGlsZHJlbldpdGhSZXBsaWNhKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXll
cjo6cGFpbnRJbnRvU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5
ZXI6OnBhaW50V2l0aEludGVybWVkaWF0ZVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckxheWVyOjpwYWludFJlY3Vyc2l2ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnB1cmdlQmFja2luZ1N0
b3Jlcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllci5tbToKKyAgICAg
ICAgKC1bTGVnYWN5VGlsZUxheWVyIHJlbmRlckluQ29udGV4dDpdKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZU1hYzo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6YXBwbHlTdHJldGNo
QWxpZ25tZW50VG9DaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NU
b0FuY2VzdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6Y29tcHV0ZVZpc2libGVSZWN0SW5Db250YWluZXIg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0
ZVNjcm9sbGJhcnNBZnRlckxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXlvdXQpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMZWdhY3lSZW5kZXJTVkdSb290OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VDb250YWluZXI6Om1hcmtBbGxDbGllbnRzRm9ySW52YWxpZGF0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU1ZHUm9vdDo6bGF5b3V0KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VNYXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6c2V0SXRlbUlnbm9yaW5nUXVvdGEp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QnVpbGRlcjo6YXBwbHlDdXN0b21Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QnVpbGRlcjo6YXBwbHlDYXNjYWRlUHJvcGVydHkpOgorICAgICAgICAqIHN0eWxlL1N0
eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRhdG9y
OjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVTZXRzKToKKyAgICAgICAgKiBzdHlsZS9T
dHlsZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6Y3JlYXRlRG9j
dW1lbnRSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6OmNyZWF0ZU9y
RmluZFNoYXJlZFNoYWRvd1RyZWVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6
U2NvcGU6OnVwZGF0ZVJlc29sdmVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEJsZW5kZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmFkZEFuaW1hdGVkUGF0aCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToKKwogMjAyMi0wMi0yNyAgVGlt
IE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIC13ZWJraXQtdXNlci1t
b2RpZnkgdXNlZCBzdHlsZSB0byByZWFkb25seSBmb3IgaW5lcnQgbm9kZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MWVhNmYxNGRiYzU3NDgxYmZhM2E4MWUwY2E1NmYzYjdjNmRlZmJmNS4uN2EzNGNjMWNhYjAxYzJi
MDhmMGVkOGZkYzI3ZjRmZDgwNjM2NzRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAy
Mi0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE9taXQg
dGVtcGxhdGUgcGFyYW1ldGVyIGZvciBTZXRGb3JTY29wZTw+IHZhcmlhYmxlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjU4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL1F1b3RhTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF1b3RhTWFuYWdlcjo6
aGFuZGxlUmVxdWVzdHMpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmpl
Y3RDb2Rlci5tbToKKyAgICAgICAgKGNyZWF0ZUVuY29kZWRPYmplY3QpOgorICAgICAgICAoZGVj
b2RlT2JqZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZEZpbHRlcjo6ZmlsdGVyS2V5RXZl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYktpdFdlYlZpZXdDbGllbnQ6OmZyYW1lRGlzcGxheWVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9JbnB1dE1ldGhvZEZpbHRlckd0ay5jcHA6CisgICAgICAgIChXZWJL
aXQ6OklucHV0TWV0aG9kRmlsdGVyOjpmaWx0ZXJLZXlFdmVudCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2tleWJv
YXJkQ2hhbmdlZFdpdGhJbmZvOmFkanVzdFNjcm9sbFZpZXc6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dXBkYXRlVGV4dFRvdWNoQmFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5
OjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6Y2xvc2VGcm9u
dGVuZFBhZ2VBbmRXaW5kb3cpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmNvbW1pdFN0YXRl
QWZ0ZXJDaGlsZHJlbik6CisgICAgICAgICogVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1h
dHRlci5tbToKKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIF9zZXRTbmFwc2hv
dFBhcGVyUmVjdDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0NsaXBib2FyZEd0azMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDbGlwYm9hcmQ6OndyaXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvZ3RrL1dlYkRhdGVUaW1lUGlja2VyR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0
ZVRpbWVQaWNrZXJHdGs6OnVwZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYmVjb21lRmly
c3RSZXNwb25kZXJGb3JXZWJWaWV3XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVzaWdu
Rmlyc3RSZXNwb25kZXJGb3JXZWJWaWV3XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdW5z
dXBwcmVzc1NvZnR3YXJlS2V5Ym9hcmRVc2luZ0xhc3RBdXRvY29ycmVjdGlvbkNvbnRleHRJZk5l
ZWRlZF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6dXNlcklz
SW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczp1c2VyT2Jq
ZWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkQmx1cl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbToKKyAg
ICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBoYW5kbGVEYXRlUGlja2VyUHJlc2VudGF0aW9uRGlz
bWlzc2FsXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgcmVtb3ZlRGF0ZVBpY2tlclBy
ZXNlbnRhdGlvbl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbHVnaW46OmRlc3Ryb3lQbHVnaW4pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpmbHVzaFBlbmRp
bmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpwdXJnZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c3RvcExvYWRpbmdEdWVUb1Byb2Nlc3NTd2FwKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmtleUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzdG9yZVNlc3Npb25JbnRlcm5hbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNldEluaXRpYWxGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldEFjdGl2aXR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0
QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVBcHBIaWdobGlnaHRJblNl
bGVjdGVkUmFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REcmFnU3RhcnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZWxlY3RQb3NpdGlvbkF0UG9pbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYVdDOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBy
ZXBhcmVUb1N1c3BlbmQpOgorCiAyMDIyLTAyLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2FsbCBXS05hdmlnYXRpb25EZWxlZ2F0ZS5kaWRGYWlsUHJvdmlz
aW9uYWxOYXZpZ2F0aW9uIGV2ZW4gYWZ0ZXIgYSBjcm9zcy1vcmlnaW4gbmF2aWdhdGlvbiB3aXRo
IENPT1AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBkOGMzYmJlNGNkY2JlMDIxOTQx
MzgyMGZkMzVmYzBkOGQ2MGE0MWQ3Li40N2QzMmE4ZmQxZTFjODNjNjE0NDU4MjI4OTIwYWFmN2Fm
OTY3ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjItMDItMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPbWl0
IHRlbXBsYXRlIHBhcmFtZXRlciBmb3IgU2V0Rm9yU2NvcGU8PiB2YXJpYWJsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI1OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IHVwZGF0ZVRleHRUb3VjaEJhcl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcjo6bGF5ZXJGbHVzaENhbGxiYWNrKToKKwogMjAyMi0wMi0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5
KCkgYW5kIHVzZSB0aGUgbW9kZXJuIEhhc2hlciBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggZDBk
OGU0MzZhNWMyMzNmZWQ2ZWJhOTZmM2Y3YjE3YWVhNWQzNjdmMy4uOWRkZmQzNGJmNzlkOGY0YjE5
ZmRkZTU2YjJhNDExYjNiY2IxNjA4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtNDY4LDcgKzQ2OCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZW1pdE5vZGUoUmVnaXN0ZXJJRCogZHN0
LCBTdGF0ZW1lbnROb2RlKiBuKQogICAgICAgICB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxi
b29sPiB0YWlsUG9zaXRpb25Qb2lzb25lcihtX2luVGFpbFBvc2l0aW9uLCBmYWxzZSk7CisgICAg
ICAgICAgICBTZXRGb3JTY29wZSB0YWlsUG9zaXRpb25Qb2lzb25lcihtX2luVGFpbFBvc2l0aW9u
LCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdE5vZGVJblRhaWxQb3NpdGlvbihkc3Qs
IG4pOwogICAgICAgICB9CiAKQEAgLTUwMiw3ICs1MDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Tm9kZShSZWdpc3RlcklEKiBkc3QsIEV4cHJlc3Npb25O
b2RlKiBuKQogICAgICAgICB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiB0YWlsUG9z
aXRpb25Qb2lzb25lcihtX2luVGFpbFBvc2l0aW9uLCBmYWxzZSk7CisgICAgICAgICAgICBTZXRG
b3JTY29wZSB0YWlsUG9zaXRpb25Qb2lzb25lcihtX2luVGFpbFBvc2l0aW9uLCBmYWxzZSk7CiAg
ICAgICAgICAgICByZXR1cm4gZW1pdE5vZGVJblRhaWxQb3NpdGlvbihkc3QsIG4pOwogICAgICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4
IDBiY2UyYTY4OTg5MzdmYTJkOGI0NDBjYjJmMjYxNmQ1MWUzNjViOTYuLmQyMDNkNjM4NmQxN2Qy
YzgxZWJlNGM1YTViYjA2NzdiZGMwMjQ4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgRGVidWdnZXI6OmRp
c3BhdGNoRnVuY3Rpb25Ub09ic2VydmVycyhGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+IGZ1bmMp
CiAgICAgaWYgKCFjYW5EaXNwYXRjaEZ1bmN0aW9uVG9PYnNlcnZlcnMoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fZGlzcGF0Y2hpbmdGdW5jdGlv
blRvT2JzZXJ2ZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBjaGFuZ2UobV9kaXNwYXRjaGlu
Z0Z1bmN0aW9uVG9PYnNlcnZlcnMsIHRydWUpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6
IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpCiAgICAgICAgIGZ1bmMoKm9ic2VydmVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXgg
MGNjM2M3MWIzYzA2ODM1YjFmOGFlZjU0NDU5Nzc0OTM4ZjQxM2QwZi4uZWFjYmMwY2UyNzJmNjdi
ZTgyYzc5MzcyYWE3ZjcyODg4YjZmMjE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQ3NCw3ICs0NzQsNyBAQCBwcml2YXRlOgog
ICAgIE5vZGUqIHNldExvY2FsT3JUbXAoY29uc3QgQ29kZU9yaWdpbiYgc2VtYW50aWNPcmlnaW4s
IE9wZXJhbmQgb3BlcmFuZCwgTm9kZSogdmFsdWUsIFNldE1vZGUgc2V0TW9kZSA9IE5vcm1hbFNl
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChvcGVyYW5kLmlzVG1wKCkgfHwgb3BlcmFuZC5pc0xv
Y2FsKCkpOwotICAgICAgICBTZXRGb3JTY29wZTxDb2RlT3JpZ2luPiBvcmlnaW5DaGFuZ2UobV9j
dXJyZW50U2VtYW50aWNPcmlnaW4sIHNlbWFudGljT3JpZ2luKTsKKyAgICAgICAgU2V0Rm9yU2Nv
cGUgb3JpZ2luQ2hhbmdlKG1fY3VycmVudFNlbWFudGljT3JpZ2luLCBzZW1hbnRpY09yaWdpbik7
CiAKICAgICAgICAgaWYgKG9wZXJhbmQuaXNUbXAoKSAmJiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
b3BlcmFuZC52YWx1ZSgpKSA+PSBtX251bVRtcHMpIHsKICAgICAgICAgICAgIGlmIChpbmxpbmVD
YWxsRnJhbWUoKSkKQEAgLTUzMiw3ICs1MzIsNyBAQCBwcml2YXRlOgogICAgIH0KICAgICBOb2Rl
KiBzZXRBcmd1bWVudChjb25zdCBDb2RlT3JpZ2luJiBzZW1hbnRpY09yaWdpbiwgT3BlcmFuZCBv
cGVyYW5kLCBOb2RlKiB2YWx1ZSwgU2V0TW9kZSBzZXRNb2RlID0gTm9ybWFsU2V0KQogICAgIHsK
LSAgICAgICAgU2V0Rm9yU2NvcGU8Q29kZU9yaWdpbj4gb3JpZ2luQ2hhbmdlKG1fY3VycmVudFNl
bWFudGljT3JpZ2luLCBzZW1hbnRpY09yaWdpbik7CisgICAgICAgIFNldEZvclNjb3BlIG9yaWdp
bkNoYW5nZShtX2N1cnJlbnRTZW1hbnRpY09yaWdpbiwgc2VtYW50aWNPcmlnaW4pOwogCiAgICAg
ICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBvcGVyYW5kLnZpcnR1YWxSZWdpc3RlcigpOwogICAg
ICAgICB1bnNpZ25lZCBhcmd1bWVudCA9IHJlZy50b0FyZ3VtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY3BwCmluZGV4IDgyMTI5YjJmNTQzOWZiZjU5ZjZlOGFiM2MyMGEyN2YzYjI4N2E5
ZmMuLjEwODhhNmE4ZjI5NjVlMTdlNTJkN2JhMWQxMTQyYjllZDY5N2FkM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXIuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBCYWNrZW5kRGlzcGF0
Y2hlcjo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHsKICAgICAgICAgLy8g
SW4gY2FzZSB0aGlzIGlzIGEgcmUtZW50cmFudCBjYWxsIGZyb20gYSBuZXN0ZWQgcnVuIGxvb3As
IHdlIGRvbid0IHdhbnQgdG8gbG9zZQogICAgICAgICAvLyB0aGUgb3V0ZXIgcmVxdWVzdCdzIGlk
IGp1c3QgYmVjYXVzZSB0aGUgaW5uZXIgcmVxdWVzdCBpcyBib2d1cy4KLSAgICAgICAgU2V0Rm9y
U2NvcGU8c3RkOjpvcHRpb25hbDxsb25nPj4gc2NvcGVkUmVxdWVzdElkKG1fY3VycmVudFJlcXVl
c3RJZCwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkUmVxdWVzdElk
KG1fY3VycmVudFJlcXVlc3RJZCwgc3RkOjpudWxsb3B0KTsKIAogICAgICAgICBhdXRvIHBhcnNl
ZE1lc3NhZ2UgPSBKU09OOjpWYWx1ZTo6cGFyc2VKU09OKG1lc3NhZ2UpOwogICAgICAgICBpZiAo
IXBhcnNlZE1lc3NhZ2UpIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEJhY2tlbmREaXNwYXRj
aGVyOjpkaXNwYXRjaChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKICAgICB7CiAgICAgICAgIC8v
IFdlIGNvdWxkIGJlIGNhbGxlZCByZS1lbnRyYW50bHkgZnJvbSBhIG5lc3RlZCBydW4gbG9vcCwg
c28gcmVzdG9yZSB0aGUgcHJldmlvdXMgaWQuCi0gICAgICAgIFNldEZvclNjb3BlPHN0ZDo6b3B0
aW9uYWw8bG9uZz4+IHNjb3BlZFJlcXVlc3RJZChtX2N1cnJlbnRSZXF1ZXN0SWQsIHJlcXVlc3RJ
ZCk7CisgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFJlcXVlc3RJZChtX2N1cnJlbnRSZXF1ZXN0
SWQsIHJlcXVlc3RJZCk7CiAKICAgICAgICAgYXV0byBtZXRob2RWYWx1ZSA9IG1lc3NhZ2VPYmpl
Y3QtPmdldFZhbHVlKCJtZXRob2QiX3MpOwogICAgICAgICBpZiAoIW1ldGhvZFZhbHVlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNDllZjUxMTk0ZDhhZmYz
MThjMWFiOTc0NzU1NjZjZTM1N2JjOWUzYi4uNTAzOTNkYTg4ZDFlYzMwNjQ0ZWFlMDMwYzFhMTVi
MjNjYjZkYzgxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAt
MTk5LDcgKzE5OSw3IEBAIHByaXZhdGU6CiBzdHJ1Y3QgRGVwdGhNYW5hZ2VyIDogcHJpdmF0ZSBT
ZXRGb3JTY29wZTxpbnQ+IHsKIHB1YmxpYzoKICAgICBEZXB0aE1hbmFnZXIoaW50KiBkZXB0aCkK
LSAgICAgICAgOiBTZXRGb3JTY29wZTxpbnQ+KCpkZXB0aCwgKmRlcHRoKQorICAgICAgICA6IFNl
dEZvclNjb3BlKCpkZXB0aCwgKmRlcHRoKQogICAgIHsKICAgICB9CiB9OwpAQCAtMjM0LDcgKzIz
NCw3IEBAIEV4cGVjdGVkPHR5cGVuYW1lIFBhcnNlcjxMZXhlclR5cGU+OjpQYXJzZUlubmVyUmVz
dWx0LCBTdHJpbmc+IFBhcnNlcjxMZXhlclR5cGU+CiAgICAgICAgIHNjb3BlLT5sZXhpY2FsVmFy
aWFibGVzKCkuYWRkUHJpdmF0ZU5hbWVzRnJvbShwYXJlbnRTY29wZVByaXZhdGVOYW1lcyk7CiAg
ICAgfQogCi0gICAgU2V0Rm9yU2NvcGU8RnVuY3Rpb25QYXJzZVBoYXNlPiBmdW5jdGlvblBhcnNl
UGhhc2VQb2lzb25lcihtX3BhcnNlclN0YXRlLmZ1bmN0aW9uUGFyc2VQaGFzZSwgRnVuY3Rpb25Q
YXJzZVBoYXNlOjpCb2R5KTsKKyAgICBTZXRGb3JTY29wZSBmdW5jdGlvblBhcnNlUGhhc2VQb2lz
b25lcihtX3BhcnNlclN0YXRlLmZ1bmN0aW9uUGFyc2VQaGFzZSwgRnVuY3Rpb25QYXJzZVBoYXNl
OjpCb2R5KTsKIAogICAgIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycyA9IG51bGxwdHI7
CiAgICAgYm9vbCBpc0Fycm93RnVuY3Rpb25Cb2R5RXhwcmVzc2lvbiA9IHBhcnNlTW9kZSA9PSBT
b3VyY2VQYXJzZU1vZGU6OkFzeW5jQXJyb3dGdW5jdGlvbkJvZHlNb2RlICYmICFtYXRjaChPUEVO
QlJBQ0UpOwpAQCAtNTgzLDcgKzU4Myw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVNvdXJjZUVsZW1lbnRzIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jRnVuCiAgICAg
aW5mby5zdGFydExpbmUgPSB0b2tlbkxpbmUoKTsKIAogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJz
ZU1vZGUgPSBnZXRBc3luRnVuY3Rpb25Cb2R5UGFyc2VNb2RlKHNvdXJjZVBhcnNlTW9kZSgpKTsK
LSAgICBTZXRGb3JTY29wZTxTb3VyY2VQYXJzZU1vZGU+IGlubmVyUGFyc2VNb2RlKG1fcGFyc2VN
b2RlLCBwYXJzZU1vZGUpOworICAgIFNldEZvclNjb3BlIGlubmVyUGFyc2VNb2RlKG1fcGFyc2VN
b2RlLCBwYXJzZU1vZGUpOwogICAgIHsKICAgICAgICAgQXV0b1BvcFNjb3BlUmVmIGFzeW5jRnVu
Y3Rpb25Cb2R5U2NvcGUodGhpcywgcHVzaFNjb3BlKCkpOwogICAgICAgICBhc3luY0Z1bmN0aW9u
Qm9keVNjb3BlLT5zZXRTb3VyY2VQYXJzZU1vZGUoc291cmNlUGFyc2VNb2RlKCkpOwpAQCAtNjM0
LDcgKzYzNCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNvdXJjZUVsZW1l
bnRzIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jR2VuCiAgICAgaW5mby5zdGFydExpbmUg
PSB0b2tlbkxpbmUoKTsKIAogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQ
YXJzZU1vZGU6OkFzeW5jR2VuZXJhdG9yQm9keU1vZGU7Ci0gICAgU2V0Rm9yU2NvcGU8U291cmNl
UGFyc2VNb2RlPiBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKKyAgICBT
ZXRGb3JTY29wZSBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKICAgICB7
CiAgICAgICAgIEF1dG9Qb3BTY29wZVJlZiBhc3luY0Z1bmN0aW9uQm9keVNjb3BlKHRoaXMsIHB1
c2hTY29wZSgpKTsKICAgICAgICAgYXN5bmNGdW5jdGlvbkJvZHlTY29wZS0+c2V0U291cmNlUGFy
c2VNb2RlKHNvdXJjZVBhcnNlTW9kZSgpKTsKQEAgLTIxNTUsNyArMjE1NSw3IEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUZ1bmN0aW9uQm9keSBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VGdW5jdGlvbkJvCiAgICAgVHJlZUJ1aWxkZXImIGNvbnRleHQsIFN5bnRheENoZWNrZXIm
IHN5bnRheENoZWNrZXIsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnRMb2NhdGlvbiwgaW50
IHN0YXJ0Q29sdW1uLCBpbnQgZnVuY3Rpb25LZXl3b3JkU3RhcnQsIGludCBmdW5jdGlvbk5hbWVT
dGFydCwgaW50IHBhcmFtZXRlcnNTdGFydCwKICAgICBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0
b3JLaW5kLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nLCBGdW5jdGlvbkJvZHlUeXBlIGJvZHlU
eXBlLCB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBv
dmVycmlkZVBhcnNpbmdDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIobV9wYXJzZXJTdGF0ZS5pc1BhcnNp
bmdDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIsIGJvZHlUeXBlID09IFN0YW5kYXJkRnVuY3Rpb25Cb2R5
QmxvY2sgPyBmYWxzZSA6IG1fcGFyc2VyU3RhdGUuaXNQYXJzaW5nQ2xhc3NGaWVsZEluaXRpYWxp
emVyKTsKKyAgICBTZXRGb3JTY29wZSBvdmVycmlkZVBhcnNpbmdDbGFzc0ZpZWxkSW5pdGlhbGl6
ZXIobV9wYXJzZXJTdGF0ZS5pc1BhcnNpbmdDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIsIGJvZHlUeXBl
ID09IFN0YW5kYXJkRnVuY3Rpb25Cb2R5QmxvY2sgPyBmYWxzZSA6IG1fcGFyc2VyU3RhdGUuaXNQ
YXJzaW5nQ2xhc3NGaWVsZEluaXRpYWxpemVyKTsKICAgICBib29sIGlzQXJyb3dGdW5jdGlvbkJv
ZHlFeHByZXNzaW9uID0gYm9keVR5cGUgPT0gQXJyb3dGdW5jdGlvbkJvZHlFeHByZXNzaW9uOwog
ICAgIGlmICghaXNBcnJvd0Z1bmN0aW9uQm9keUV4cHJlc3Npb24pIHsKICAgICAgICAgbmV4dCgp
OwpAQCAtMjI2Myw3ICsyMjYzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4gdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyLCBjbGFzcyBGdW5jdGlvbkluZm9UeXAKICAgICBhdXRv
IG1vZGUgPSBzb3VyY2VQYXJzZU1vZGUoKTsKICAgICBSRUxFQVNFX0FTU0VSVCghKFNvdXJjZVBh
cnNlTW9kZVNldChTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBTb3VyY2VQYXJzZU1vZGU6
Ok1vZHVsZUFuYWx5emVNb2RlLCBTb3VyY2VQYXJzZU1vZGU6Ok1vZHVsZUV2YWx1YXRlTW9kZSku
Y29udGFpbnMobW9kZSkpKTsKICAgICBUcmVlRm9ybWFsUGFyYW1ldGVyTGlzdCBwYXJhbWV0ZXJM
aXN0ID0gY29udGV4dC5jcmVhdGVGb3JtYWxQYXJhbWV0ZXJMaXN0KCk7Ci0gICAgU2V0Rm9yU2Nv
cGU8RnVuY3Rpb25QYXJzZVBoYXNlPiBmdW5jdGlvblBhcnNlUGhhc2VQb2lzb25lcihtX3BhcnNl
clN0YXRlLmZ1bmN0aW9uUGFyc2VQaGFzZSwgRnVuY3Rpb25QYXJzZVBoYXNlOjpQYXJhbWV0ZXJz
KTsKKyAgICBTZXRGb3JTY29wZSBmdW5jdGlvblBhcnNlUGhhc2VQb2lzb25lcihtX3BhcnNlclN0
YXRlLmZ1bmN0aW9uUGFyc2VQaGFzZSwgRnVuY3Rpb25QYXJzZVBoYXNlOjpQYXJhbWV0ZXJzKTsK
ICAgICAKICAgICBpZiAoVU5MSUtFTFkoKFNvdXJjZVBhcnNlTW9kZVNldChTb3VyY2VQYXJzZU1v
ZGU6OkFycm93RnVuY3Rpb25Nb2RlLCBTb3VyY2VQYXJzZU1vZGU6OkFzeW5jQXJyb3dGdW5jdGlv
bk1vZGUpLmNvbnRhaW5zKG1vZGUpKSkpIHsKICAgICAgICAgaWYgKCFtYXRjaFNwZWNJZGVudGlm
aWVyKCkgJiYgIW1hdGNoKE9QRU5QQVJFTikpIHsKQEAgLTIzNzUsNyArMjM3NSw3IEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5j
dGlvbkluZm8oVHJlZUJ1aWxkCiAgICAgZnVuY3Rpb25TY29wZS0+c2V0U291cmNlUGFyc2VNb2Rl
KG1vZGUpOwogICAgIGZ1bmN0aW9uU2NvcGUtPnNldEV4cGVjdGVkU3VwZXJCaW5kaW5nKGV4cGVj
dGVkU3VwZXJCaW5kaW5nKTsKICAgICBmdW5jdGlvblNjb3BlLT5zZXRDb25zdHJ1Y3RvcktpbmQo
Y29uc3RydWN0b3JLaW5kKTsKLSAgICBTZXRGb3JTY29wZTxGdW5jdGlvblBhcnNlUGhhc2U+IGZ1
bmN0aW9uUGFyc2VQaGFzZVBvaXNvbmVyKG1fcGFyc2VyU3RhdGUuZnVuY3Rpb25QYXJzZVBoYXNl
LCBGdW5jdGlvblBhcnNlUGhhc2U6OkJvZHkpOworICAgIFNldEZvclNjb3BlIGZ1bmN0aW9uUGFy
c2VQaGFzZVBvaXNvbmVyKG1fcGFyc2VyU3RhdGUuZnVuY3Rpb25QYXJzZVBoYXNlLCBGdW5jdGlv
blBhcnNlUGhhc2U6OkJvZHkpOwogICAgIGludCBmdW5jdGlvbk5hbWVTdGFydCA9IG1fdG9rZW4u
bV9sb2NhdGlvbi5zdGFydE9mZnNldDsKICAgICBjb25zdCBJZGVudGlmaWVyKiBsYXN0RnVuY3Rp
b25OYW1lID0gbV9wYXJzZXJTdGF0ZS5sYXN0RnVuY3Rpb25OYW1lOwogICAgIG1fcGFyc2VyU3Rh
dGUubGFzdEZ1bmN0aW9uTmFtZSA9IG51bGxwdHI7CkBAIC0yNDc4LDcgKzI0NzgsNyBAQCB0ZW1w
bGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVu
Y3Rpb25JbmZvKFRyZWVCdWlsZAogICAgICAgICAgICAgLy8gUGFyc2UgZm9ybWFsIHBhcmFtZXRl
cnMgd2l0aCBbK1lpZWxkXSBwYXJhbWV0ZXJpemF0aW9uLCBpbiBvcmRlciB0byBiYW4gWWllbGRF
eHByZXNzaW9ucwogICAgICAgICAgICAgLy8gaW4gQXJyb3dGb3JtYWxQYXJhbWV0ZXJzLCBwZXIg
RVM2ICNzZWMtYXJyb3ctZnVuY3Rpb24tZGVmaW5pdGlvbnMtc3RhdGljLXNlbWFudGljcy1lYXJs
eS1lcnJvcnMuCiAgICAgICAgICAgICBTY29wZTo6TWF5YmVQYXJzZUFzR2VuZXJhdG9yRm9yU2Nv
cGUgcGFyc2VBc0dlbmVyYXRvcihmdW5jdGlvblNjb3BlLCBwYXJlbnRTY29wZS0+aXNHZW5lcmF0
b3IoKSk7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBvdmVycmlkZUFsbG93QXdhaXQo
bV9wYXJzZXJTdGF0ZS5hbGxvd0F3YWl0LCAhcGFyZW50U2NvcGUtPmlzQXN5bmNGdW5jdGlvbigp
ICYmICFpc0FzeW5jRnVuY3Rpb25QYXJzZU1vZGUobW9kZSkpOworICAgICAgICAgICAgU2V0Rm9y
U2NvcGUgb3ZlcnJpZGVBbGxvd0F3YWl0KG1fcGFyc2VyU3RhdGUuYWxsb3dBd2FpdCwgIXBhcmVu
dFNjb3BlLT5pc0FzeW5jRnVuY3Rpb24oKSAmJiAhaXNBc3luY0Z1bmN0aW9uUGFyc2VNb2RlKG1v
ZGUpKTsKICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25QYXJhbWV0ZXJzKHN5bnRheENoZWNrZXIs
IGZ1bmN0aW9uSW5mbyk7CiAgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOwogICAgICAgICB9
CkBAIC0yNTUyLDcgKzI1NTIsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wg
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25JbmZvKFRyZWVCdWlsZAogICAgICAgICBp
ZiAobG9hZENhY2hlZEZ1bmN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgewotICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gb3ZlcnJpZGVBbGxvd0F3YWl0KG1f
cGFyc2VyU3RhdGUuYWxsb3dBd2FpdCwgIWlzQXN5bmNGdW5jdGlvblBhcnNlTW9kZShtb2RlKSk7
CisgICAgICAgICAgICBTZXRGb3JTY29wZSBvdmVycmlkZUFsbG93QXdhaXQobV9wYXJzZXJTdGF0
ZS5hbGxvd0F3YWl0LCAhaXNBc3luY0Z1bmN0aW9uUGFyc2VNb2RlKG1vZGUpKTsKICAgICAgICAg
ICAgIHBhcnNlRnVuY3Rpb25QYXJhbWV0ZXJzKHN5bnRheENoZWNrZXIsIGZ1bmN0aW9uSW5mbyk7
CiAgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOwogICAgICAgICB9CkBAIC0yNzE5LDcgKzI3
MTksNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25EZWNsYQogICAgICAgICBuZXh0KCk7CiAgICAgICAg
IHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9k
ZTsKICAgICB9Ci0gICAgU2V0Rm9yU2NvcGU8U291cmNlUGFyc2VNb2RlPiBpbm5lclBhcnNlTW9k
ZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKKyAgICBTZXRGb3JTY29wZSBpbm5lclBhcnNlTW9k
ZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKIAogICAgIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVl
QnVpbGRlcj4gZnVuY3Rpb25JbmZvOwogICAgIEZ1bmN0aW9uTmFtZVJlcXVpcmVtZW50cyByZXF1
aXJlbWVudHMgPSBGdW5jdGlvbk5hbWVSZXF1aXJlbWVudHM6Ok5hbWVkOwpAQCAtMjc3OSw3ICsy
Nzc5LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jRnVuY3Rpb24KICAgICBTb3VyY2VQYXJzZU1vZGUgcGFy
c2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpBc3luY0Z1bmN0aW9uTW9kZTsKICAgICBpZiAoY29u
c3VtZShUSU1FUykpCiAgICAgICAgIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNH
ZW5lcmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOwotICAgIFNldEZvclNjb3BlPFNvdXJjZVBhcnNl
TW9kZT4gaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CisgICAgU2V0Rm9y
U2NvcGUgaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CiAKICAgICBGdW5j
dGlvbk5hbWVSZXF1aXJlbWVudHMgcmVxdWlyZW1lbnRzID0gRnVuY3Rpb25OYW1lUmVxdWlyZW1l
bnRzOjpOYW1lZDsKICAgICBpZiAoZGVjbGFyYXRpb25EZWZhdWx0Q29udGV4dCA9PSBEZWNsYXJh
dGlvbkRlZmF1bHRDb250ZXh0OjpFeHBvcnREZWZhdWx0KSB7CkBAIC0zMTEwLDcgKzMxMTAsNyBA
QCBwYXJzZU1ldGhvZDoKIAogICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gaW5pdGlhbGl6ZXIg
PSAwOwogICAgICAgICAgICAgaWYgKGNvbnN1bWUoRVFVQUwpKSB7Ci0gICAgICAgICAgICAgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gb3ZlcnJpZGVQYXJzaW5nQ2xhc3NGaWVsZEluaXRpYWxpemVyKG1f
cGFyc2VyU3RhdGUuaXNQYXJzaW5nQ2xhc3NGaWVsZEluaXRpYWxpemVyLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICBTZXRGb3JTY29wZSBvdmVycmlkZVBhcnNpbmdDbGFzc0ZpZWxkSW5pdGlhbGl6
ZXIobV9wYXJzZXJTdGF0ZS5pc1BhcnNpbmdDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIsIHRydWUpOwog
ICAgICAgICAgICAgICAgIGNsYXNzU2NvcGUtPnNldEV4cGVjdGVkU3VwZXJCaW5kaW5nKFN1cGVy
QmluZGluZzo6TmVlZGVkKTsKICAgICAgICAgICAgICAgICBpbml0aWFsaXplciA9IHBhcnNlQXNz
aWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgICAgICAgICAgY2xhc3NTY29wZS0+
c2V0RXhwZWN0ZWRTdXBlckJpbmRpbmcoU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQpOwpAQCAtMzEz
MCw3ICszMTMwLDcgQEAgcGFyc2VNZXRob2Q6CiAgICAgICAgICAgICAgICAgIkNhbm5vdCBkZWNs
YXJlICIsIHN0cmluZ0FydGljbGVGb3JGdW5jdGlvbk1vZGUocGFyc2VNb2RlKSwgc3RyaW5nRm9y
RnVuY3Rpb25Nb2RlKHBhcnNlTW9kZSksICIgbmFtZWQgJ2NvbnN0cnVjdG9yJyIpOwogCiAgICAg
ICAgICAgICBtZXRob2RJbmZvLm5hbWUgPSBpc0NvbnN0cnVjdG9yID8gaW5mby5jbGFzc05hbWUg
OiBpZGVudDsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPFNvdXJjZVBhcnNlTW9kZT4gaW5uZXJQ
YXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CisgICAgICAgICAgICBTZXRGb3JTY29w
ZSBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKICAgICAgICAgICAgIGZh
aWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5hbWVSZXF1aXJl
bWVudHM6OlVubmFtZWQsIGZhbHNlLCBpc0NvbnN0cnVjdG9yID8gY29uc3RydWN0b3JLaW5kIDog
Q29uc3RydWN0b3JLaW5kOjpOb25lLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgbWV0aG9kU3RhcnQs
IG1ldGhvZEluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBh
cnNlIHRoaXMgbWV0aG9kIik7CiAKICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIG1ldGhvZCA9
IGNvbnRleHQuY3JlYXRlTWV0aG9kRGVmaW5pdGlvbihtZXRob2RMb2NhdGlvbiwgbWV0aG9kSW5m
byk7CkBAIC00NDM3LDcgKzQ0MzcsNyBAQCBuYW1lZFByb3BlcnR5OgogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKG1hdGNoKE9QRU5QQVJFTikpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPFNv
dXJjZVBhcnNlTW9kZT4gaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7Cisg
ICAgICAgICAgICBTZXRGb3JTY29wZSBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgcGFyc2VN
b2RlKTsKICAgICAgICAgICAgIGF1dG8gbWV0aG9kID0gcGFyc2VQcm9wZXJ0eU1ldGhvZChjb250
ZXh0LCBpZGVudCk7CiAgICAgICAgICAgICBwcm9wYWdhdGVFcnJvcigpOwogICAgICAgICAgICAg
cmV0dXJuIGNvbnRleHQuY3JlYXRlUHJvcGVydHkoaWRlbnQsIG1ldGhvZCwgUHJvcGVydHlOb2Rl
OjpDb25zdGFudCwgU3VwZXJCaW5kaW5nOjpOZWVkZWQsIEluZmVyTmFtZTo6QWxsb3dlZCwgQ2xh
c3NFbGVtZW50VGFnOjpObyk7CkBAIC00NDc3LDcgKzQ0NzcsNyBAQCBuYW1lZFByb3BlcnR5Ogog
ICAgICAgICBuZXh0KCk7CiAKICAgICAgICAgaWYgKG1hdGNoKE9QRU5QQVJFTikpIHsKLSAgICAg
ICAgICAgIFNldEZvclNjb3BlPFNvdXJjZVBhcnNlTW9kZT4gaW5uZXJQYXJzZU1vZGUobV9wYXJz
ZU1vZGUsIHBhcnNlTW9kZSk7CisgICAgICAgICAgICBTZXRGb3JTY29wZSBpbm5lclBhcnNlTW9k
ZShtX3BhcnNlTW9kZSwgcGFyc2VNb2RlKTsKICAgICAgICAgICAgIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50ID0gbV9wYXJzZXJBcmVuYS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlTnVtZXJpY0lkZW50
aWZpZXIoY29uc3RfY2FzdDxWTSY+KG1fdm0pLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAg
YXV0byBtZXRob2QgPSBwYXJzZVByb3BlcnR5TWV0aG9kKGNvbnRleHQsICZpZGVudCk7CiAgICAg
ICAgICAgICBwcm9wYWdhdGVFcnJvcigpOwpAQCAtNDQ5Niw3ICs0NDk2LDcgQEAgbmFtZWRQcm9w
ZXJ0eToKICAgICAgICAgbmV4dCgpOwogCiAgICAgICAgIGlmIChtYXRjaChPUEVOUEFSRU4pKSB7
Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxTb3VyY2VQYXJzZU1vZGU+IGlubmVyUGFyc2VNb2Rl
KG1fcGFyc2VNb2RlLCBwYXJzZU1vZGUpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGUgaW5uZXJQ
YXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CiAgICAgICAgICAgICBhdXRvIG1ldGhv
ZCA9IHBhcnNlUHJvcGVydHlNZXRob2QoY29udGV4dCwgaWRlbnQpOwogICAgICAgICAgICAgcHJv
cGFnYXRlRXJyb3IoKTsKICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVByb3BlcnR5
KGlkZW50LCBtZXRob2QsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQsIFN1cGVyQmluZGluZzo6TmVl
ZGVkLCBJbmZlck5hbWU6OkFsbG93ZWQsIENsYXNzRWxlbWVudFRhZzo6Tm8pOwpAQCAtNDUxNiw3
ICs0NTE2LDcgQEAgbmFtZWRQcm9wZXJ0eToKICAgICAgICAgaGFuZGxlUHJvZHVjdGlvbk9yRmFp
bChDTE9TRUJSQUNLRVQsICJdIiwgImVuZCIsICJjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIik7CiAK
ICAgICAgICAgaWYgKG1hdGNoKE9QRU5QQVJFTikpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3Bl
PFNvdXJjZVBhcnNlTW9kZT4gaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7
CisgICAgICAgICAgICBTZXRGb3JTY29wZSBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgcGFy
c2VNb2RlKTsKICAgICAgICAgICAgIGF1dG8gbWV0aG9kID0gcGFyc2VQcm9wZXJ0eU1ldGhvZChj
b250ZXh0LCAmbV92bS5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllcik7CiAgICAgICAgICAg
ICBwcm9wYWdhdGVFcnJvcigpOwogICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlUHJv
cGVydHkocHJvcGVydHlOYW1lLCBtZXRob2QsIHN0YXRpY19jYXN0PFByb3BlcnR5Tm9kZTo6VHlw
ZT4oUHJvcGVydHlOb2RlOjpDb25zdGFudCB8IFByb3BlcnR5Tm9kZTo6Q29tcHV0ZWQpLCBTdXBl
ckJpbmRpbmc6Ok5lZWRlZCwgQ2xhc3NFbGVtZW50VGFnOjpObyk7CkBAIC00NTk3LDE5ICs0NTk3
LDE5IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVByb3BlcnR5IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUdldHRlclNldHRlcihUCiAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRy
ZWVCdWlsZGVyPiBpbmZvOwogICAgIGlmICh0eXBlICYgUHJvcGVydHlOb2RlOjpHZXR0ZXIpIHsK
ICAgICAgICAgZmFpbElmRmFsc2UobWF0Y2goT1BFTlBBUkVOKSwgIkV4cGVjdGVkIGEgcGFyYW1l
dGVyIGxpc3QgZm9yIGdldHRlciBkZWZpbml0aW9uIik7Ci0gICAgICAgIFNldEZvclNjb3BlPFNv
dXJjZVBhcnNlTW9kZT4gaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIFNvdXJjZVBhcnNlTW9k
ZTo6R2V0dGVyTW9kZSk7CisgICAgICAgIFNldEZvclNjb3BlIGlubmVyUGFyc2VNb2RlKG1fcGFy
c2VNb2RlLCBTb3VyY2VQYXJzZU1vZGU6OkdldHRlck1vZGUpOwogICAgICAgICBmYWlsSWZGYWxz
ZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwgRnVuY3Rpb25OYW1lUmVxdWlyZW1lbnRzOjpV
bm5hbWVkLCBmYWxzZSwgY29uc3RydWN0b3JLaW5kLCBTdXBlckJpbmRpbmc6Ok5lZWRlZCwgZ2V0
dGVyT3JTZXR0ZXJTdGFydE9mZnNldCwgaW5mbywgRnVuY3Rpb25EZWZpbml0aW9uVHlwZTo6TWV0
aG9kKSksICJDYW5ub3QgcGFyc2UgZ2V0dGVyIGRlZmluaXRpb24iKTsKICAgICB9IGVsc2UgaWYg
KHR5cGUgJiBQcm9wZXJ0eU5vZGU6OlNldHRlcikgewogICAgICAgICBmYWlsSWZGYWxzZShtYXRj
aChPUEVOUEFSRU4pLCAiRXhwZWN0ZWQgYSBwYXJhbWV0ZXIgbGlzdCBmb3Igc2V0dGVyIGRlZmlu
aXRpb24iKTsKLSAgICAgICAgU2V0Rm9yU2NvcGU8U291cmNlUGFyc2VNb2RlPiBpbm5lclBhcnNl
TW9kZShtX3BhcnNlTW9kZSwgU291cmNlUGFyc2VNb2RlOjpTZXR0ZXJNb2RlKTsKKyAgICAgICAg
U2V0Rm9yU2NvcGUgaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIFNvdXJjZVBhcnNlTW9kZTo6
U2V0dGVyTW9kZSk7CiAgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250
ZXh0LCBGdW5jdGlvbk5hbWVSZXF1aXJlbWVudHM6OlVubmFtZWQsIGZhbHNlLCBjb25zdHJ1Y3Rv
cktpbmQsIFN1cGVyQmluZGluZzo6TmVlZGVkLCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBp
bmZvLCBGdW5jdGlvbkRlZmluaXRpb25UeXBlOjpNZXRob2QpKSwgIkNhbm5vdCBwYXJzZSBzZXR0
ZXIgZGVmaW5pdGlvbiIpOwogICAgIH0gZWxzZSBpZiAodHlwZSAmIFByb3BlcnR5Tm9kZTo6UHJp
dmF0ZVNldHRlcikgewogICAgICAgICBmYWlsSWZGYWxzZShtYXRjaChPUEVOUEFSRU4pLCAiRXhw
ZWN0ZWQgYSBwYXJhbWV0ZXIgbGlzdCBmb3IgcHJpdmF0ZSBzZXR0ZXIgZGVmaW5pdGlvbiIpOwot
ICAgICAgICBTZXRGb3JTY29wZTxTb3VyY2VQYXJzZU1vZGU+IGlubmVyUGFyc2VNb2RlKG1fcGFy
c2VNb2RlLCBTb3VyY2VQYXJzZU1vZGU6OlNldHRlck1vZGUpOworICAgICAgICBTZXRGb3JTY29w
ZSBpbm5lclBhcnNlTW9kZShtX3BhcnNlTW9kZSwgU291cmNlUGFyc2VNb2RlOjpTZXR0ZXJNb2Rl
KTsKICAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0
aW9uTmFtZVJlcXVpcmVtZW50czo6VW5uYW1lZCwgZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwgU3Vw
ZXJCaW5kaW5nOjpOZWVkZWQsIGdldHRlck9yU2V0dGVyU3RhcnRPZmZzZXQsIGluZm8sIEZ1bmN0
aW9uRGVmaW5pdGlvblR5cGU6Ok1ldGhvZCkpLCAiQ2Fubm90IHBhcnNlIHByaXZhdGUgc2V0dGVy
IGRlZmluaXRpb24iKTsKICAgICB9IGVsc2UgaWYgKHR5cGUgJiBQcm9wZXJ0eU5vZGU6OlByaXZh
dGVHZXR0ZXIpIHsKICAgICAgICAgZmFpbElmRmFsc2UobWF0Y2goT1BFTlBBUkVOKSwgIkV4cGVj
dGVkIGEgcGFyYW1ldGVyIGxpc3QgZm9yIHByaXZhdGUgZ2V0dGVyIGRlZmluaXRpb24iKTsKLSAg
ICAgICAgU2V0Rm9yU2NvcGU8U291cmNlUGFyc2VNb2RlPiBpbm5lclBhcnNlTW9kZShtX3BhcnNl
TW9kZSwgU291cmNlUGFyc2VNb2RlOjpHZXR0ZXJNb2RlKTsKKyAgICAgICAgU2V0Rm9yU2NvcGUg
aW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIFNvdXJjZVBhcnNlTW9kZTo6R2V0dGVyTW9kZSk7
CiAgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlv
bk5hbWVSZXF1aXJlbWVudHM6OlVubmFtZWQsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQsIFN1cGVy
QmluZGluZzo6TmVlZGVkLCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBpbmZvLCBGdW5jdGlv
bkRlZmluaXRpb25UeXBlOjpNZXRob2QpKSwgIkNhbm5vdCBwYXJzZSBwcml2YXRlIGdldHRlciBk
ZWZpbml0aW9uIik7CiAgICAgfQogCkBAIC00NzkwLDcgKzQ3OTAsNyBAQCB0ZW1wbGF0ZSA8Y2xh
c3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1
bmN0aW9uRXhwcgogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1v
ZGU6Ok5vcm1hbEZ1bmN0aW9uTW9kZTsKICAgICBpZiAoY29uc3VtZShUSU1FUykpCiAgICAgICAg
IHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6R2VuZXJhdG9yV3JhcHBlckZ1bmN0aW9uTW9k
ZTsKLSAgICBTZXRGb3JTY29wZTxTb3VyY2VQYXJzZU1vZGU+IHNldElubmVyUGFyc2VNb2RlKG1f
cGFyc2VNb2RlLCBwYXJzZU1vZGUpOworICAgIFNldEZvclNjb3BlIHNldElubmVyUGFyc2VNb2Rl
KG1fcGFyc2VNb2RlLCBwYXJzZU1vZGUpOwogICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0aW9u
SW5mbyhjb250ZXh0LCBGdW5jdGlvbk5hbWVSZXF1aXJlbWVudHM6Ok5vbmUsIGZhbHNlLCBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBmdW5jdGlvbktleXdv
cmRTdGFydCwgZnVuY3Rpb25JbmZvLCBGdW5jdGlvbkRlZmluaXRpb25UeXBlOjpFeHByZXNzaW9u
KSksICJDYW5ub3QgcGFyc2UgZnVuY3Rpb24gZXhwcmVzc2lvbiIpOwogICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhwcihsb2NhdGlvbiwgZnVuY3Rpb25JbmZvKTsKIH0KQEAgLTQ4
MDYsNyArNDgwNiw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXN5bmNGdW5jdGlvCiAKICAgICBpZiAoY29uc3Vt
ZShUSU1FUykpCiAgICAgICAgIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6QXN5bmNHZW5l
cmF0b3JXcmFwcGVyRnVuY3Rpb25Nb2RlOwotICAgIFNldEZvclNjb3BlPFNvdXJjZVBhcnNlTW9k
ZT4gc2V0SW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CisgICAgU2V0Rm9y
U2NvcGUgc2V0SW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIHBhcnNlTW9kZSk7CiAKICAgICBQ
YXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+IGZ1bmN0aW9uSW5mbzsKICAgICBmdW5jdGlv
bkluZm8ubmFtZSA9ICZtX3ZtLnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVyOwpAQCAtNTM4
Myw3ICs1MzgzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lv
biBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBcnJvd0Z1bmN0aW8KICAgICBQYXJzZXJGdW5jdGlv
bkluZm88VHJlZUJ1aWxkZXI+IGluZm87CiAgICAgaW5mby5uYW1lID0gJm1fdm0ucHJvcGVydHlO
YW1lcy0+bnVsbElkZW50aWZpZXI7CiAKLSAgICBTZXRGb3JTY29wZTxTb3VyY2VQYXJzZU1vZGU+
IGlubmVyUGFyc2VNb2RlKG1fcGFyc2VNb2RlLCBpc0FzeW5jID8gU291cmNlUGFyc2VNb2RlOjpB
c3luY0Fycm93RnVuY3Rpb25Nb2RlIDogU291cmNlUGFyc2VNb2RlOjpBcnJvd0Z1bmN0aW9uTW9k
ZSk7CisgICAgU2V0Rm9yU2NvcGUgaW5uZXJQYXJzZU1vZGUobV9wYXJzZU1vZGUsIGlzQXN5bmMg
PyBTb3VyY2VQYXJzZU1vZGU6OkFzeW5jQXJyb3dGdW5jdGlvbk1vZGUgOiBTb3VyY2VQYXJzZU1v
ZGU6OkFycm93RnVuY3Rpb25Nb2RlKTsKICAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbklu
Zm8oY29udGV4dCwgRnVuY3Rpb25OYW1lUmVxdWlyZW1lbnRzOjpVbm5hbWVkLCB0cnVlLCBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBmdW5jdGlvbktleXdv
cmRTdGFydCwgaW5mbywgRnVuY3Rpb25EZWZpbml0aW9uVHlwZTo6RXhwcmVzc2lvbikpLCAiQ2Fu
bm90IHBhcnNlIGFycm93IGZ1bmN0aW9uIGV4cHJlc3Npb24iKTsKIAogICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZUFycm93RnVuY3Rpb25FeHByKGxvY2F0aW9uLCBpbmZvKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZkNvdW50ZXIu
aAppbmRleCBhNWY2OGFmMmIzYjhkYTQwNGQzNzZmNmYxODVlYTE5OTE1N2E2YTU5Li4zMDQyNThk
YzNiZjgwOWM3YTYzOGNkOWQwZGE1ODAzOTE1NmYxNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9SZWZDb3VudGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmQ291bnRlci5oCkBAIC05
OSw3ICs5OSw3IEBAIGlubGluZSB2b2lkIFJlZkNvdW50ZXI8VD46OkNvdW50OjpkZXJlZigpCiAg
ICAgLS1tX3ZhbHVlOwogCiAgICAgaWYgKG1fcmVmQ291bnRlciAmJiBtX3JlZkNvdW50ZXItPm1f
dmFsdWVEaWRDaGFuZ2UpIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5DYWxsYmFjayht
X2luVmFsdWVEaWRDaGFuZ2UsIHRydWUpOworICAgICAgICBTZXRGb3JTY29wZSBpbkNhbGxiYWNr
KG1faW5WYWx1ZURpZENoYW5nZSwgdHJ1ZSk7CiAgICAgICAgIG1fcmVmQ291bnRlci0+bV92YWx1
ZURpZENoYW5nZShSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAppbmRleCA4ZDk1N2FmNjk4
NjY3NGM4NDRhMmM1NDA3MTc3N2Y1OWY2OTI2Y2YyLi5kYzFjOWUzYTgwNjJiNzc0ZjZmOGE0NDNi
MGQ2NzIyODViNzJmMGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uOjphYm9ydCgpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uOjphYm9ydCgpIik7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFu
Z2UobV9pc0Fib3J0aW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBjaGFuZ2UobV9pc0Fib3J0
aW5nLCB0cnVlKTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXRlcmF0b3IgOiBtX29yaWdpbmFs
SW5kZXhOYW1lcykKICAgICAgICAgaXRlcmF0b3Iua2V5LT5yZW5hbWUoaXRlcmF0b3IudmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5k
ZXggMGZlMTQzYzJiOGVhMjk1MTc1MjY2MTJjOWY2YTI4NmVjMmVmMzA4MC4uYWE2MTc0YjVhYWY5
NWU5YTc5Mzc5NDMyNmIxZTRmY2E2NzhmZjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zMjQ5LDcgKzMyNDksNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKCkKICAgICBBWFRSQUNFKCJB
WE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSIpOwogICAgIGlmIChtX3Bl
cmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKQogICAgICAgICByZXR1cm47Ci0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUobV9wZXJmb3JtaW5nRGVm
ZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUgcGVyZm9ybWluZ0RlZmVy
cmVkQ2FjaGVVcGRhdGUobV9wZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CiAK
ICAgICBmb3IgKGF1dG8qIG5vZGVDaGlsZCA6IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWROb2Rl
TGlzdCkgewogICAgICAgICBoYW5kbGVNZW51T3BlbmVkKG5vZGVDaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3Ry
eUN1c3RvbS5jcHAKaW5kZXggOWQxZmZlZmM5MzY4NzQ5YmNiMmI0MDRkYzY3MmUwMDRkOGQ5YWY5
My4uYjY5YWJhNDk5MzFmNzFhY2Q2YWJkYzhiOGU1YTJmMGZkYWYzYjA4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5Q3VzdG9tLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIEpTVmFsdWUgSlNDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmRlZmluZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
CiAgICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2Nv
cGUsICJDYW5ub3QgZGVmaW5lIGEgY3VzdG9tIGVsZW1lbnQgd2hpbGUgZGVmaW5pbmcgYW5vdGhl
ciBjdXN0b20gZWxlbWVudCJfcyk7CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAg
IH0KLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UocmVnaXN0cnkuZWxlbWVudERlZmluaXRp
b25Jc1J1bm5pbmcoKSwgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUgY2hhbmdlKHJlZ2lzdHJ5LmVs
ZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nKCksIHRydWUpOwogCiAgICAgaWYgKHJlZ2lzdHJ5LmZp
bmRJbnRlcmZhY2UobG9jYWxOYW1lKSkgewogICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiQ2Fubm90IGRlZmluZSBtdWx0aXBsZSBjdXN0
b20gZWxlbWVudHMgd2l0aCB0aGUgc2FtZSB0YWcgbmFtZSJfcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDc1ODAwYjFkZGVhOThi
ZTA4Y2I2M2QyODI2NjIwODcxNzE0OGRmZjAuLjM1NTE0NGU3ZmE5OWM3MWVkY2I5NTYxMzNlMzc2
ZDA3NzYxOThjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuY3BwCkBAIC0xNDMsOCArMTQzLDggQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmMK
ICAgICBhdXRvJiBwcm94eSA9IGpzV2luZG93UHJveHkod29ybGQpOwogICAgIGF1dG8mIGdsb2Jh
bE9iamVjdCA9ICpwcm94eS53aW5kb3coKTsKIAotICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1f
ZnJhbWUpOwotICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJjZVVSTFNjb3BlKG1fc291
cmNlVVJMLCAmc291cmNlVVJMKTsKKyAgICBSZWYgcHJvdGVjdG9yIHsgbV9mcmFtZSB9OworICAg
IFNldEZvclNjb3BlIHNvdXJjZVVSTFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNlVVJMKTsKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUs
IHNvdXJjZVVSTC5zdHJpbmcoKSwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5z
dGFydENvbHVtbigpKTsKIApAQCAtMjQwLDggKzI0MCw4IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgQWJzdHJhY3RN
b2R1CiAgICAgYXV0byYgcHJveHkgPSBqc1dpbmRvd1Byb3h5KHdvcmxkKTsKICAgICBhdXRvJiBs
ZXhpY2FsR2xvYmFsT2JqZWN0ID0gKnByb3h5LndpbmRvdygpOwogCi0gICAgUmVmPEZyYW1lPiBw
cm90ZWN0b3IobV9mcmFtZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Y29uc3QgVVJMKj4gc291cmNlVVJM
U2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOworICAgIFJlZiBwcm90ZWN0b3IgeyBtX2Zy
YW1lIH07CisgICAgU2V0Rm9yU2NvcGUgc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3Vy
Y2VVUkwpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGNvbnN0IGJvb2wgaXNXYXNt
TW9kdWxlID0gbW9kdWxlUmVjb3JkLmluaGVyaXRzPFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkPih2
bSk7CkBAIC02NTQsOCArNjU0LDggQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVy
OjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXQKIAogICAgIGNv
bnN0IFVSTCYgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdp
bigpLnVybCgpOwogCi0gICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7Ci0gICAgU2V0
Rm9yU2NvcGU8Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VV
UkwpOworICAgIFJlZiBwcm90ZWN0b3IgeyBtX2ZyYW1lIH07CisgICAgU2V0Rm9yU2NvcGUgc291
cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOwogCiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLnN0cmlu
ZygpLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3VyY2VDb2RlLnN0YXJ0Q29sdW1uKCkpOwog
CkBAIC04MzgsNyArODM4LDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlSmF2YVNj
cmlwdFVSTChjb25zdCBVUkwmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2kKICAgICAgICAgLy8g
RklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA1MjMKICAg
ICAgICAgLy8gVGhlIG9ubHkgcmVhc29uIHdlIGRvIGEgbmVzdGFibGUgc2F2ZS9yZXN0b3JlIG9m
IHRoaXMgZmxhZyBoZXJlIGlzIGJlY2F1c2Ugd2Ugc29tZXRpbWVzIG5lc3QgamF2YXNjcmlwdDog
dXJsIGxvYWRzIGFzCiAgICAgICAgIC8vIHNvbWUgd2lsbCBsb2FkIHN5bmNocm9ub3VzbHkuIFdl
J2QgbGlrZSB0byByZW1vdmUgdGhvc2Ugc3luY2hyb25vdXMgbG9hZHMgYW5kIHRoZW4gY2hhbmdl
IHRoaXMuCi0gICAgICAgIFNldEZvclNjb3BlPGJvb2w+IHdpbGxCZVJlcGxhY2VkKG1fd2lsbFJl
cGxhY2VXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZhc2NyaXB0VVJMLCB0cnVlKTsKKyAgICAgICAg
U2V0Rm9yU2NvcGUgd2lsbEJlUmVwbGFjZWQobV93aWxsUmVwbGFjZVdpdGhSZXN1bHRPZkV4ZWN1
dGluZ0phdmFzY3JpcHRVUkwsIHRydWUpOwogCiAgICAgICAgIC8vIERvY3VtZW50V3JpdGVyOjpy
ZXBsYWNlRG9jdW1lbnRXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZhc2NyaXB0VVJMIGNhbiBjYXVz
ZSB0aGUgRG9jdW1lbnRMb2FkZXIgdG8gZ2V0IGRlcmVmJ2VkIGFuZCBwb3NzaWJsZSBkZXN0cm95
ZWQsCiAgICAgICAgIC8vIHNvIHByb3RlY3QgaXQgd2l0aCBhIFJlZlB0ci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZjhhOTE4NzczNGNkYjBkOTM3ODg5YmJiZTI0
ZmMxZThhZGEzZjU1NS4uMTgwZDY2ZjQ4OGFlOTA0NDJmNmUxMjEwZTQwZTkyNDY1NWYzODMyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBA
QCB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6YWRkRm9udEZhY2VSdWxlKFN0eWxlUnVsZUZvbnRGYWNl
JiBmb250RmFjZVJ1bGUsIGJvb2wgaXNJbgogICAgIGlmICghc3JjTGlzdC5sZW5ndGgoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3JlYXRpbmdGb250KG1fY3Jl
YXRpbmdGb250LCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBjcmVhdGluZ0ZvbnQobV9jcmVhdGlu
Z0ZvbnQsIHRydWUpOwogICAgIGF1dG8gZm9udEZhY2UgPSBDU1NGb250RmFjZTo6Y3JlYXRlKCp0
aGlzLCAmZm9udEZhY2VSdWxlKTsKIAogICAgIGlmICghZm9udEZhY2UtPnNldEZhbWlsaWVzKCpm
b250RmFtaWx5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2Vs
ZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBh
cnNlci5jcHAKaW5kZXggZTJiNzNjNjcxYmU3MDEyMmQ2ZjczNDQ1YWVkMzhjNzhjMjU2ODk4ZC4u
NjM1YmU3NmQ3NjFiNzY2MGQ3MThhM2ZhMTUyZDYwZGM1ZjQxM2E1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTQyMiw3ICs0MjIs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1NlbGVjdG9yUGFyc2Vy
Ojpjb25zdW1lQ29tcG91bmRTZWxlY3RvcihDUwogICAgIC8vCiAgICAgLy8gWzFdIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9zZWxlY3RvcnMvI21hdGNoZXMKICAgICAvLyBbMl0gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL3NlbGVjdG9ycy8jc2VsZWN0b3Itc3ViamVjdAotICAgIFNldEZvclNj
b3BlPGJvb2w+IGlnbm9yZURlZmF1bHROYW1lc3BhY2UobV9pZ25vcmVEZWZhdWx0TmFtZXNwYWNl
LCBtX3Jlc2lzdERlZmF1bHROYW1lc3BhY2UgJiYgIWhhc05hbWUgJiYgYXRFbmRJZ25vcmluZ1do
aXRlc3BhY2UocmFuZ2UpKTsKKyAgICBTZXRGb3JTY29wZSBpZ25vcmVEZWZhdWx0TmFtZXNwYWNl
KG1faWdub3JlRGVmYXVsdE5hbWVzcGFjZSwgbV9yZXNpc3REZWZhdWx0TmFtZXNwYWNlICYmICFo
YXNOYW1lICYmIGF0RW5kSWdub3JpbmdXaGl0ZXNwYWNlKHJhbmdlKSk7CiAgICAgaWYgKCFjb21w
b3VuZFNlbGVjdG9yKSB7CiAgICAgICAgIEF0b21TdHJpbmcgbmFtZXNwYWNlVVJJID0gZGV0ZXJt
aW5lTmFtZXNwYWNlKG5hbWVzcGFjZVByZWZpeCk7CiAgICAgICAgIGlmIChuYW1lc3BhY2VVUkku
aXNOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0
aW9uUXVldWUuY3BwCmluZGV4IDM5MjcyMjE3N2Q4MDc1MTU5ZTMzYWEwY2M5YjliZjcyZmNmZDE5
NDUuLmRjMTc5NWNhOTk2YjJiMWMwNmI1N2MyN2Y0ZmU1ODU2YjRmYzQ1ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcApAQCAtMjUy
LDcgKzI1Miw3IEBAIGlubGluZSB2b2lkIEN1c3RvbUVsZW1lbnRRdWV1ZTo6YWRkKEVsZW1lbnQm
IGVsZW1lbnQpCiBpbmxpbmUgdm9pZCBDdXN0b21FbGVtZW50UXVldWU6Omludm9rZUFsbCgpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQoIW1faW52b2tpbmcpOwotICAgIFNldEZvclNjb3BlPGJvb2w+
IGludm9raW5nKG1faW52b2tpbmcsIHRydWUpOworICAgIFNldEZvclNjb3BlIGludm9raW5nKG1f
aW52b2tpbmcsIHRydWUpOwogICAgIHVuc2lnbmVkIG9yaWdpbmFsU2l6ZSA9IG1fZWxlbWVudHMu
c2l6ZSgpOwogICAgIC8vIEl0J3MgcG9zc2libGUgZm9yIG1vcmUgZWxlbWVudHMgdG8gYmUgZW5x
dWV1ZWQgaWYgc29tZSBJREwgYXR0cmlidXRlcyB3ZXJlIG1pc3NpbmcgQ0VSZWFjdGlvbnMuCiAg
ICAgLy8gSW52b2tlIGNhbGxiYWNrcyBzbGlnaHRseSBsYXRlciBoZXJlIGluc3RlYWQgb2YgY3Jh
c2hpbmcgLyBpZ25vcmluZyB0aG9zZSBjYXNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDk1NWY3NDY2YzNhZTc1NDc2MzRiNDk3MGY5ZTk2YjQ2MzhhZDc0YjUuLmQ2YmM1ZDcwOTI3OWU1
NTczNWEyZWFjNDJmZTFhM2ZhZmE5ZjNlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MTk3Nyw3ICsxOTc3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlUmVuZGVyVHJlZShzdGQ6OnVu
aXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUKIAogICAgIFN0eWxlOjpQ
b3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FsbGJhY2tEaXNhYmxlcigqdGhpcyk7CiAg
ICAgewotICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpblJlbmRlclRyZWVVcGRhdGUobV9pblJl
bmRlclRyZWVVcGRhdGUsIHRydWUpOworICAgICAgICBTZXRGb3JTY29wZSBpblJlbmRlclRyZWVV
cGRhdGUobV9pblJlbmRlclRyZWVVcGRhdGUsIHRydWUpOwogICAgICAgICB7CiAgICAgICAgICAg
ICBSZW5kZXJUcmVlVXBkYXRlciB1cGRhdGVyKCp0aGlzLCBjYWxsYmFja0Rpc2FibGVyKTsKICAg
ICAgICAgICAgIHVwZGF0ZXIuY29tbWl0KFdURk1vdmUoc3R5bGVVcGRhdGUpKTsKQEAgLTIyNDUs
NyArMjI0NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gRG9jdW1lbnQ6OnN0eWxl
Rm9yRWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzCiAgICAgQVNTRVJUKHBzZXVkb0Vs
ZW1lbnRTcGVjaWZpZXIgPT0gUHNldWRvSWQ6Ok5vbmUgfHwgcGFyZW50U3R5bGUpOwogICAgIEFT
U0VSVChTdHlsZTo6cG9zdFJlc29sdXRpb25DYWxsYmFja3NBcmVTdXNwZW5kZWQoKSk7CiAKLSAg
ICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMsIHRy
dWUpOworICAgIFNldEZvclNjb3BlIGNoYW5nZShtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cywg
dHJ1ZSk7CiAgICAgYXV0byYgcmVzb2x2ZXIgPSBlbGVtZW50LnN0eWxlUmVzb2x2ZXIoKTsKIAog
ICAgIGlmIChwc2V1ZG9FbGVtZW50U3BlY2lmaWVyICE9IFBzZXVkb0lkOjpOb25lKQpAQCAtMjU0
Niw3ICsyNTQ2LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUoKQogICAgIC8v
IFByZXZlbnQgV2lkZ2V0IHRyZWUgY2hhbmdlcyBmcm9tIGNvbW1pdHRpbmcgdW50aWwgdGhlIFJl
bmRlclZpZXcgaXMgZGVhZCBhbmQgZ29uZS4KICAgICBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3Vz
cGVuc2lvblNjb3BlIHN1c3BlbmRXaWRnZXRIaWVyYXJjaHlVcGRhdGVzOwogCi0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gY2hhbmdlKG1fcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkLCB0cnVlKTsKKyAg
ICBTZXRGb3JTY29wZSBjaGFuZ2UobV9yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQsIHRydWUpOwog
CiAgICAgaWYgKHRoaXMgPT0gJnRvcERvY3VtZW50KCkpCiAgICAgICAgIGNsZWFyQVhPYmplY3RD
YWNoZSgpOwpAQCAtODc4OSw3ICs4Nzg5LDcgQEAgYm9vbCBEb2N1bWVudDo6aGl0VGVzdChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2MKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBTZXRGb3JTY29w
ZTxib29sPiBoaXRUZXN0UmVzdG9yZXIgeyBtX2luSGl0VGVzdGluZywgdHJ1ZSB9OworICAgIFNl
dEZvclNjb3BlIGhpdFRlc3RSZXN0b3JlciB7IG1faW5IaXRUZXN0aW5nLCB0cnVlIH07CiAjZW5k
aWYKIAogICAgIGF1dG8mIGZyYW1lVmlldyA9IHJlbmRlclZpZXcoKS0+ZnJhbWVWaWV3KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCA3NjhjYTc2NTBiMzk2YTlhMGJhZDk5YTY3
ZDUzOTNhZDkwN2Q1MGJjLi5jZjQ0OWMwMmQ2MTRmN2IwNzRjZjk3NGVmOGFiMTkyYTE1YmM4OGVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lk
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50LCBFdmVudEludm9r
ZVBoYXNlIHBoYXNlKQogICAgIGlmICghZGF0YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0
Rm9yU2NvcGU8Ym9vbD4gZmlyaW5nRXZlbnRMaXN0ZW5lcnNTY29wZShkYXRhLT5pc0ZpcmluZ0V2
ZW50TGlzdGVuZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBmaXJpbmdFdmVudExpc3RlbmVy
c1Njb3BlKGRhdGEtPmlzRmlyaW5nRXZlbnRMaXN0ZW5lcnMsIHRydWUpOwogCiAgICAgaWYgKGF1
dG8qIGxpc3RlbmVyc1ZlY3RvciA9IGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudC50
eXBlKCkpKSB7CiAgICAgICAgIGlubmVySW52b2tlRXZlbnRMaXN0ZW5lcnMoZXZlbnQsICpsaXN0
ZW5lcnNWZWN0b3IsIHBoYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNy
b3Rhc2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb3Rhc2tzLmNwcAppbmRleCA1MWEw
NzE2MWZkNzY1NWE5NTE2ZmZjZmY1OWIzZDRkOWQ3YzEwMTJmLi43NjkzMDY0ZWY4NzVlZmVmZGI2
MjIzNGQyYzY5NGMyZmNmMDYwYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWlj
cm90YXNrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01pY3JvdGFza3MuY3BwCkBAIC00
OCw3ICs0OCw3IEBAIHZvaWQgTWljcm90YXNrUXVldWU6OnBlcmZvcm1NaWNyb3Rhc2tDaGVja3Bv
aW50KCkKICAgICBpZiAobV9wZXJmb3JtaW5nTWljcm90YXNrQ2hlY2twb2ludCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1fcGVyZm9ybWluZ01pY3Jv
dGFza0NoZWNrcG9pbnQsIHRydWUpOworICAgIFNldEZvclNjb3BlIGNoYW5nZShtX3BlcmZvcm1p
bmdNaWNyb3Rhc2tDaGVja3BvaW50LCB0cnVlKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
ZXIodm0oKSk7CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2s+PiB0
b0tlZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAK
aW5kZXggYjViOTVhZGM2YWYzNTVkMTU0MzI0NWFmYWU4NDFkMDI4MTU1OGU2ZC4uMzhmMDcxMTA3
ZDc3NmVmNmJlYjQ0NzljYjA1Nzk3ZWJlMGM1YjEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6Zm9yRWFjaEFjdGl2ZURPTU9iamVjdChjb25zdCBGdW5jdGlv
bjxTaG91bGRDb250aW51CiAgICAgLy8gQW4gQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04gb3IgUkVMRUFTRV9BU1NFUlQgd2lsbCBmaXJlIGlmIHRoaXMgaGFwcGVucywgYnV0IGl0J3Mg
aW1wb3J0YW50IHRvIGNvZGUKICAgICAvLyBzdXNwZW5kKCkgLyByZXN1bWUoKSAvIHN0b3AoKSBm
dW5jdGlvbnMgc28gaXQgd2lsbCBub3QgaGFwcGVuIQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29w
ZSBzY3JpcHREaXNhbGxvd2VkU2NvcGU7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gYWN0aXZlRE9N
T2JqZWN0QWRkaXRpb25Gb3JiaWRkZW5TY29wZShtX2FjdGl2ZURPTU9iamVjdEFkZGl0aW9uRm9y
YmlkZGVuLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBhY3RpdmVET01PYmplY3RBZGRpdGlvbkZv
cmJpZGRlblNjb3BlKG1fYWN0aXZlRE9NT2JqZWN0QWRkaXRpb25Gb3JiaWRkZW4sIHRydWUpOwog
CiAgICAgLy8gTWFrZSBhIGZyb3plbiBjb3B5IG9mIHRoZSBvYmplY3RzIHNvIHdlIGNhbiBpdGVy
YXRlIHdoaWxlIG5ldyBvbmVzIG1pZ2h0IGJlIGRlc3Ryb3llZC4KICAgICBhdXRvIHBvc3NpYmxl
QWN0aXZlRE9NT2JqZWN0cyA9IGNvcHlUb1ZlY3RvcihtX2FjdGl2ZURPTU9iamVjdHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJhdmVyc2FsLmNwcAppbmRleCBjYmY1OWJjZjhhYWJjNTIyYmEyNGY4NzY5MTk3NzE1
NDc3NTA4NWU5Li5kZTQ2ZDNhZTA5OTNhNWIyNjY2NWY5ODk1YTg2NGY4NjAwYjg0OTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJhdmVyc2FsLmNwcApAQCAtNTMsNyArNTMsNyBAQCBFeGNlcHRpb25Pcjx1bnNp
Z25lZCBzaG9ydD4gTm9kZUl0ZXJhdG9yQmFzZTo6YWNjZXB0Tm9kZShOb2RlJiBub2RlKQogICAg
IGlmICghbV9maWx0ZXIpCiAgICAgICAgIHJldHVybiBOb2RlRmlsdGVyOjpGSUxURVJfQUNDRVBU
OwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNBY3RpdmUobV9pc0FjdGl2ZSwgdHJ1ZSk7Cisg
ICAgU2V0Rm9yU2NvcGUgaXNBY3RpdmUobV9pc0FjdGl2ZSwgdHJ1ZSk7CiAgICAgYXV0byBjYWxs
YmFja1Jlc3VsdCA9IG1fZmlsdGVyLT5hY2NlcHROb2RlKG5vZGUpOwogICAgIGlmIChjYWxsYmFj
a1Jlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpVbmFibGVUb0V4ZWN1dGUpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJGYWlsZWQgdG8gZXhl
Y3V0ZSAnYWNjZXB0Tm9kZScgb24gJ05vZGVGaWx0ZXInOiBUaGUgcHJvdmlkZWQgY2FsbGJhY2sg
aXMgbm8gbG9uZ2VyIHJ1bm5hYmxlLiJfcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmlu
ZGV4IDE1YzVjMzkwYzFiNTRmMGUzM2I1ZTkyNDY0YzUzZDUyYzkyMWUyNmIuLjQ1Mzg1NDA2YzFj
Zjc5Mjg0OWRkMmZiZjMzZGZlODYxMjI0OTYzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTEzODAsNyArMTM4MCw3IEBAIGJvb2wgRWRpdG9yOjppbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JJblF1b3RlZENvbnRlbnQoKQogCiB2b2lkIEVkaXRvcjo6Y3V0KEZyb21NZW51T3JLZXlC
aW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5nKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IGNv
cHlTY29wZSB7IG1fY29weWluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5Qmlu
ZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CisgICAgU2V0Rm9yU2NvcGUgY29w
eVNjb3BlIHsgbV9jb3B5aW5nRnJvbU1lbnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5k
aW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsKICAgICBpZiAodHJ5REhUTUxDdXQo
KSkKICAgICAgICAgcmV0dXJuOyAvLyBESFRNTCBkaWQgdGhlIHdob2xlIG9wZXJhdGlvbgogICAg
IGlmICghY2FuQ3V0KCkpIHsKQEAgLTEzOTMsNyArMTM5Myw3IEBAIHZvaWQgRWRpdG9yOjpjdXQo
RnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiAKIHZvaWQgRWRpdG9y
Ojpjb3B5KEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5nKQogewotICAg
IFNldEZvclNjb3BlPGJvb2w+IGNvcHlTY29wZSB7IG1fY29weWluZ0Zyb21NZW51T3JLZXlCaW5k
aW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07
CisgICAgU2V0Rm9yU2NvcGUgY29weVNjb3BlIHsgbV9jb3B5aW5nRnJvbU1lbnVPcktleUJpbmRp
bmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsK
ICAgICBpZiAodHJ5REhUTUxDb3B5KCkpCiAgICAgICAgIHJldHVybjsgLy8gREhUTUwgZGlkIHRo
ZSB3aG9sZSBvcGVyYXRpb24KICAgICBpZiAoIWNhbkNvcHkoKSkgewpAQCAtMTQwNiw3ICsxNDA2
LDcgQEAgdm9pZCBFZGl0b3I6OmNvcHkoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktl
eUJpbmRpbmcpCiAKIHZvaWQgRWRpdG9yOjpjb3B5Rm9udChGcm9tTWVudU9yS2V5QmluZGluZyBm
cm9tTWVudU9yS2V5QmluZGluZykKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBjb3B5U2NvcGUg
eyBtX2NvcHlpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0g
RnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9OworICAgIFNldEZvclNjb3BlIGNvcHlTY29wZSB7
IG1fY29weWluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBG
cm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CiAgICAgaWYgKHRyeURIVE1MQ29weSgpKQogICAg
ICAgICByZXR1cm47IC8vIERIVE1MIGRpZCB0aGUgd2hvbGUgb3BlcmF0aW9uCiAgICAgaWYgKCFj
YW5Db3B5KCkpIHsKQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZShGcm9t
TWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKIAogdm9pZCBFZGl0b3I6OnBh
c3RlKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQsIEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51
T3JLZXlCaW5kaW5nKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHBhc3RlU2NvcGUgeyBtX3Bh
c3RpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1l
bnVPcktleUJpbmRpbmc6OlllcyB9OworICAgIFNldEZvclNjb3BlIHBhc3RlU2NvcGUgeyBtX3Bh
c3RpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1l
bnVPcktleUJpbmRpbmc6OlllcyB9OwogCiAgICAgaWYgKCFkaXNwYXRjaENsaXBib2FyZEV2ZW50
KGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSwgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0
ZSkpCiAgICAgICAgIHJldHVybjsgLy8gREhUTUwgZGlkIHRoZSB3aG9sZSBvcGVyYXRpb24KQEAg
LTE1MDEsNyArMTUwMSw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZShQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkLCBGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluCiAKIHZvaWQgRWRpdG9y
OjpwYXN0ZUFzUGxhaW5UZXh0KEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5k
aW5nKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHBhc3RlU2NvcGUgeyBtX3Bhc3RpbmdGcm9t
TWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJp
bmRpbmc6OlllcyB9OworICAgIFNldEZvclNjb3BlIHBhc3RlU2NvcGUgeyBtX3Bhc3RpbmdGcm9t
TWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJp
bmRpbmc6OlllcyB9OwogCiAgICAgaWYgKCFkaXNwYXRjaENsaXBib2FyZEV2ZW50KGZpbmRFdmVu
dFRhcmdldEZyb21TZWxlY3Rpb24oKSwgQ2xpcGJvYXJkRXZlbnRLaW5kOjpQYXN0ZUFzUGxhaW5U
ZXh0KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTUxMyw3ICsxNTEzLDcgQEAgdm9pZCBFZGl0b3I6
OnBhc3RlQXNQbGFpblRleHQoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRp
bmcpCiAKIHZvaWQgRWRpdG9yOjpwYXN0ZUFzUXVvdGF0aW9uKEZyb21NZW51T3JLZXlCaW5kaW5n
IGZyb21NZW51T3JLZXlCaW5kaW5nKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHBhc3RlU2Nv
cGUgeyBtX3Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcg
PT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9OworICAgIFNldEZvclNjb3BlIHBhc3RlU2Nv
cGUgeyBtX3Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVPcktleUJpbmRpbmcg
PT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9OwogCiAgICAgaWYgKCFkaXNwYXRjaENsaXBi
b2FyZEV2ZW50KGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSwgQ2xpcGJvYXJkRXZlbnRL
aW5kOjpQYXN0ZUFzUXVvdGF0aW9uKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTUzMCw3ICsxNTMw
LDcgQEAgdm9pZCBFZGl0b3I6OnBhc3RlQXNRdW90YXRpb24oRnJvbU1lbnVPcktleUJpbmRpbmcg
ZnJvbU1lbnVPcktleUJpbmRpbmcpCiAKIHZvaWQgRWRpdG9yOjpwYXN0ZUZvbnQoRnJvbU1lbnVP
cktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gcGFzdGVTY29wZSB7IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9y
S2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CisgICAgU2V0Rm9yU2Nv
cGUgcGFzdGVTY29wZSB7IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9y
S2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CiAKICAgICBpZiAoIWRp
c3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpLCBDbGlw
Ym9hcmRFdmVudEtpbmQ6OlBhc3RlRm9udCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwCmluZGV4IDI4ZmI0NWJlYzk3MDBkNmU4
MWIwMGY5MTczMDg4ZGFmNjI3M2E5NzMuLjZkMWE5ODk1YjQ4NzVmZDAwNmZkNTI2MTQ1YTBkZGIy
OTc4Y2E3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRD
YWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNw
cApAQCAtMzE3LDcgKzMxNyw3IEBAIGJvb2wgQmFja0ZvcndhcmRDYWNoZTo6Y2FuQ2FjaGUoUGFn
ZSYgcGFnZSkgY29uc3QKIAogdm9pZCBCYWNrRm9yd2FyZENhY2hlOjpwcnVuZVRvU2l6ZU5vdyh1
bnNpZ25lZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24pCiB7Ci0gICAgU2V0Rm9y
U2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUpOworICAgIFNldEZvclNjb3Bl
IGNoYW5nZShtX21heFNpemUsIHNpemUpOwogICAgIHBydW5lKHBydW5pbmdSZWFzb24pOwogfQog
CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmVBbGxJdGVt
c0ZvclBhZ2UoUGFnZSYgcGFnZSkKIHsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UoIW1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3Qg
cmVlbnRlciB0aGlzIG1ldGhvZCIpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxs
SXRlbXNGb3JQYWdlU2NvcGUgeyBtX2lzSW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsK
KyAgICBTZXRGb3JTY29wZSBpblJlbW92ZUFsbEl0ZW1zRm9yUGFnZVNjb3BlIHsgbV9pc0luUmVt
b3ZlQWxsSXRlbXNGb3JQYWdlLCB0cnVlIH07CiAjZW5kaWYKIAogICAgIGZvciAoYXV0byBpdCA9
IG1faXRlbXMuYmVnaW4oKTsgaXQgIT0gbV9pdGVtcy5lbmQoKTspIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NVG9rZW5MaXN0LmNwcAppbmRleCA2MzNiNzVlNDQyM2I0NmYxZDc5NWExN2MyZjZlZjEwMTEw
MzU3YzZjLi40MDM4YjY5YmEyMDczOTA4YjRjY2VjMzMzYThmNzJmYWU2YzBmMTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBET01U
b2tlbkxpc3Q6OnVwZGF0ZUFzc29jaWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zKCkKICAgICB9CiAg
ICAgQXRvbVN0cmluZyBzZXJpYWxpemVkVmFsdWUgPSBidWlsZGVyLnRvQXRvbVN0cmluZygpOwog
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pblVwZGF0ZUFzc29j
aWF0ZWRBdHRyaWJ1dGVGcm9tVG9rZW5zLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBpbkF0dHJp
YnV0ZVVwZGF0ZShtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMsIHRydWUp
OwogICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCBzZXJpYWxpemVk
VmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmlu
ZGV4IGU1NzY4ODgyMDQ4OGViODRhMTE4MTE4OWUwZjM0MTFjOWI0NjMzMmMuLmYzN2M2ZmNiZjM5
MDA3NjIwYWUxZDk2M2JjZGYzMGYwMThjOTZkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBIVE1MQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAKICAgICAgICAgICAgIGlm
IChhdXRvIGN1cnJlbnRGb3JtID0gZm9ybSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fdHlw
ZSA9PSBTVUJNSVQpIHsKLSAgICAgICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gYWN0
aXZhdGVkU3VibWl0U3RhdGUobV9pc0FjdGl2YXRlZFN1Ym1pdCwgdHJ1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIFNldEZvclNjb3BlIGFjdGl2YXRlZFN1Ym1pdFN0YXRlKG1faXNBY3RpdmF0ZWRT
dWJtaXQsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rm9ybS0+c3VibWl0SWZQ
b3NzaWJsZSgmZXZlbnQsIHRoaXMpOwogICAgICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNDNmMWRhMDBmMGNi
MTBkMjE2YjFiNDY0NWJhNzVlY2MxZmFkZmU0ZC4uZjk1MjhlYjMyMzYwZDc2NDQ3NDlhMzczODA1
MmQ4YzBhMzE3NjhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCkBAIC00ODgsNyArNDg4LDcgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpyZXBvcnRWYWxpZGl0eSgpCiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9j
dXNBbmRTaG93VmFsaWRhdGlvbk1lc3NhZ2UoKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IGlz
Rm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2VTY29wZShtX2lzRm9jdXNpbmdXaXRoVmFsaWRh
dGlvbk1lc3NhZ2UsIHRydWUpOworICAgIFNldEZvclNjb3BlIGlzRm9jdXNpbmdXaXRoVmFsaWRh
dGlvbk1lc3NhZ2VTY29wZShtX2lzRm9jdXNpbmdXaXRoVmFsaWRhdGlvbk1lc3NhZ2UsIHRydWUp
OwogCiAgICAgLy8gQ2FsbGluZyBmb2N1cygpIHdpbGwgc2Nyb2xsIHRoZSBlbGVtZW50IGludG8g
dmlldy4KICAgICBmb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
CmluZGV4IGEwODQxNzY5ZWU5ZmY4YTNlMjAxNjlkMDliMGM5NzJlOTMyNTg4YTUuLmQ0ZjU2YWQx
NTllNDczZmU5M2QzNjE0MTg4Mzc2ZTdlYWJjYWNlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5jcHAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVu
dDo6cmVzZXQoKQogCiAgICAgUmVmPEhUTUxGb3JtRWxlbWVudD4gcHJvdGVjdGVkVGhpcygqdGhp
cyk7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0luUmVzZXRGdW5jdGlvblJlc3RvcmVyKG1f
aXNJblJlc2V0RnVuY3Rpb24sIHRydWUpOworICAgIFNldEZvclNjb3BlIGlzSW5SZXNldEZ1bmN0
aW9uUmVzdG9yZXIobV9pc0luUmVzZXRGdW5jdGlvbiwgdHJ1ZSk7CiAKICAgICBhdXRvIGV2ZW50
ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVzZXRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMpOwogICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQpOwpAQCAtMTAyMyw3ICsxMDIzLDcgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBIVE1MRm9ybUVs
ZW1lbnQ6OmNvbnN0cnVjdEVudHJ5TGlzdChSZWY8RE9NRm9ybURhdGE+JiYgZG9tRm8KICAgICBp
ZiAobV9pc0NvbnN0cnVjdGluZ0VudHJ5TGlzdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNDb25zdHJ1Y3RpbmdFbnRyeUxpc3RTY29wZSht
X2lzQ29uc3RydWN0aW5nRW50cnlMaXN0LCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBpc0NvbnN0
cnVjdGluZ0VudHJ5TGlzdFNjb3BlKG1faXNDb25zdHJ1Y3RpbmdFbnRyeUxpc3QsIHRydWUpOwog
ICAgIAogICAgIGZvciAoYXV0byYgY29udHJvbCA6IHRoaXMtPmNvcHlBc3NvY2lhdGVkRWxlbWVu
dHNWZWN0b3IoKSkgewogICAgICAgICBhdXRvJiBlbGVtZW50ID0gY29udHJvbC0+YXNIVE1MRWxl
bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggODE3
ZTBhNDhiM2MzZDY3YWIxYmFjOTQ1NWUyNDYzYzVmY2ExNzU4Yi4uMTM5ZjRlZTZmZjkyY2M4Y2Jj
NDA4YjNjYmVhYjlmOTAyOGQxZTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzY2hl
ZHVsZUxvYWQoKQogICAgIG1fbG9hZFBlbmRpbmcgPSB0cnVlOwogICAgIHNjaGVkdWxlVGFzayhb
dGhpc10oKSBtdXRhYmxlIHsKIAotICAgICAgICBTZXRGb3JTY29wZTxib29sPiBsb2FkUGVuZGlu
ZyB7IG1fbG9hZFBlbmRpbmcsIHRydWUsIGZhbHNlIH07CisgICAgICAgIFNldEZvclNjb3BlIGxv
YWRQZW5kaW5nIHsgbV9sb2FkUGVuZGluZywgdHJ1ZSwgZmFsc2UgfTsKIAogICAgICAgICBpZiAo
IWhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oc3JjQXR0cikpIHsKICAgICAgICAg
ICAgIHRyYWNrKCkucmVtb3ZlQWxsQ3VlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDE3ZWNiYTE4NjM5N2I3NTA0NGM1ZDZm
MzExMmJlOWU0YTFlZGYwY2MuLmY5ZWVmYzUzMmE1NDhmZTUzYjM2NzNhZmMyMGYyNjkxNjUwMmU1
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2Fu
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5l
ci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6cmVzZXQoKQog
dm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBIVE1MVG9rZW46OkRhdGFWZWN0b3Im
IGRhdGEsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiByZXF1ZXN0cykKIHsKICAgICBBU1NFUlQoIW1f
cmVxdWVzdHMpOwotICAgIFNldEZvclNjb3BlPFByZWxvYWRSZXF1ZXN0U3RyZWFtKj4gY2hhbmdl
KG1fcmVxdWVzdHMsICZyZXF1ZXN0cyk7CisgICAgU2V0Rm9yU2NvcGUgY2hhbmdlKG1fcmVxdWVz
dHMsICZyZXF1ZXN0cyk7CiAKICAgICBmb3IgKFVDaGFyIGMgOiBkYXRhKSB7CiAgICAgICAgIGlm
IChtX3N0YXRlID09IERvbmVQYXJzaW5nSW1wb3J0UnVsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA1
YjlhMmQzOTIwNDc5MTBlNzk1MmYzZTYzMjkyZDc3YThmOWZiMWZjLi43YWI5N2I5YjYxZmRlMDg0
NDU5MWFiZWVmYmY2ZDYxZmQzN2I5ZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTI0Niw3ICsyNDYs
NyBAQCBzdGQ6Om9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ6OnJlc29sdmVDdXN0bwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgaWYgKHNoYWRvd0hvc3RTdHlsZSAmJiBzaGFkb3dIb3N0U3R5bGUtPmVmZmVjdGl2
ZUFwcGVhcmFuY2UoKSAhPSBTZWFyY2hGaWVsZFBhcnQpIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY2FuQWRqdXN0U3R5bGVGb3JBcHBlYXJhbmNlKG1fY2FuQWRqdXN0U3R5bGVGb3JBcHBl
YXJhbmNlLCBmYWxzZSk7CisgICAgICAgIFNldEZvclNjb3BlIGNhbkFkanVzdFN0eWxlRm9yQXBw
ZWFyYW5jZShtX2NhbkFkanVzdFN0eWxlRm9yQXBwZWFyYW5jZSwgZmFsc2UpOwogICAgICAgICBy
ZXR1cm4gcmVzb2x2ZVN0eWxlKHJlc29sdXRpb25Db250ZXh0KTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5kZXggYjkzMjk3
ZTNhNDIyOGQwMGNjMzQ1MjU0NTQzNmYwMzljNzlhYTlkZi4uZDRmYWI0Zjc2NTRkNmE3YTIyZjg0
NjM5NjFmMTQ4YTljMDIzNWM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9M
b2FkYWJsZVRleHRUcmFjay5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBMb2FkYWJsZVRleHRU
cmFjazo6c2NoZWR1bGVMb2FkKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIDMuIEFzeW5jaHJvbm91
c2x5IHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzLCB3aGlsZSBjb250aW51aW5nIHdpdGggd2hhdGV2
ZXIgdGFzawogICAgIC8vIHdhcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIHRleHQgdHJh
Y2sgb3IgY2hhbmdpbmcgdGhlIHRleHQgdHJhY2sgbW9kZS4KICAgICBtX3RyYWNrRWxlbWVudC0+
c2NoZWR1bGVUYXNrKFt0aGlzXSgpIG11dGFibGUgewotICAgICAgICBTZXRGb3JTY29wZTxib29s
PiBsb2FkUGVuZGluZyB7IG1fbG9hZFBlbmRpbmcsIHRydWUsIGZhbHNlIH07CisgICAgICAgIFNl
dEZvclNjb3BlIGxvYWRQZW5kaW5nIHsgbV9sb2FkUGVuZGluZywgdHJ1ZSwgZmFsc2UgfTsKIAog
ICAgICAgICBpZiAobV9sb2FkZXIpCiAgICAgICAgICAgICBtX2xvYWRlci0+Y2FuY2VsTG9hZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCmluZGV4IDRlMzU0NDU0YWFi
YTM0ZTRmYmVhNDE1ZDQxZmY4ZTkyYmY0NDE0NWEuLjM3MGEzZGNlNTUwODAyY2Q1OGQ3NGNiNmMy
ODA2MWMyNzUzN2YwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db250ZW50
RmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZpbHRlci5jcHAK
QEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIENvbnRlbnRGaWx0ZXI6OmhhbmRsZVByb3Zpc2lvbmFs
TG9hZEZhaWx1cmUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgUmVmUHRyPEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXI+IHJlcGxhY2VtZW50RGF0YSB7IG1fYmxvY2tpbmdDb250ZW50Rmls
dGVyLT5yZXBsYWNlbWVudERhdGEoKSB9OwogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Ug
eyBVUkwoKSwgInRleHQvaHRtbCJfcywgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihyZXBsYWNlbWVu
dERhdGEtPnNpemUoKSksICJVVEYtOCJfcyB9OwogICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1
dGVEYXRhIHsgV1RGTW92ZShyZXBsYWNlbWVudERhdGEpLCBlcnJvci5mYWlsaW5nVVJMKCksIHJl
c3BvbnNlLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpIaWRkZW4g
fTsKLSAgICBTZXRGb3JTY29wZTxib29sPiBsb2FkaW5nQmxvY2tlZFBhZ2UgeyBtX2lzTG9hZGlu
Z0Jsb2NrZWRQYWdlLCB0cnVlIH07CisgICAgU2V0Rm9yU2NvcGUgbG9hZGluZ0Jsb2NrZWRQYWdl
IHsgbV9pc0xvYWRpbmdCbG9ja2VkUGFnZSwgdHJ1ZSB9OwogICAgIG1fY2xpZW50LmhhbmRsZVBy
b3Zpc2lvbmFsTG9hZEZhaWx1cmVGcm9tQ29udGVudEZpbHRlcihibG9ja2VkUGFnZVVSTCgpLCBz
dWJzdGl0dXRlRGF0YSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IGI4YmUzYzIyY2RlNTg1NWUzMzI2MmUxZTVjYTBhYjNhYTMyZmJhM2IuLjBkYmJkYTdjNGU0
Y2E0YTI4OGEwYzc2Zjc3MjllZGZhYTVjNTYwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChG
cmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFNldEZv
clNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50
TG9hZENvbnRpbnVpbmdTdGF0ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQo
KSAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0
ZTo6Q29udGludWluZ1dpdGhSZXF1ZXN0IDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGlu
dWluZyk7CisgICAgU2V0Rm9yU2NvcGUgY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2Fk
Q29udGludWluZ1N0YXRlLCByZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpICE9
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpD
b250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5n
KTsKICAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKQEAgLTE2MzAsNyArMTYzMCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmNsZWFyUHJvdmlzaW9uYWxMb2FkRm9yUG9saWN5Q2hlY2soKQogICAg
IGlmICghbV9wb2xpY3lEb2N1bWVudExvYWRlciB8fCAhbV9wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyIHx8IG1faW5DbGVhclByb3Zpc2lvbmFsTG9hZEZvclBvbGljeUNoZWNrKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbkNsZWFyUHJvdmlzaW9u
YWxMb2FkRm9yUG9saWN5Q2hlY2ssIHRydWUpOworICAgIFNldEZvclNjb3BlIGNoYW5nZShtX2lu
Q2xlYXJQcm92aXNpb25hbExvYWRGb3JQb2xpY3lDaGVjaywgdHJ1ZSk7CiAgICAgbV9wcm92aXNp
b25hbERvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogICAgIEZSQU1FTE9BREVSX1JFTEVB
U0VfTE9HKFJlc291cmNlTG9hZGluZywgImNsZWFyUHJvdmlzaW9uYWxMb2FkRm9yUG9saWN5Q2hl
Y2s6IENsZWFyaW5nIHByb3Zpc2lvbmFsIGRvY3VtZW50IGxvYWRlciAobV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyPSVwKSIsIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQoKSk7CiAg
ICAgc2V0UHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcihudWxscHRyKTsKQEAgLTMzOTQsNyArMzM5
NCw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21l
JiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFtZUxvCiAgICAgUmVmPEJlZm9yZVVubG9hZEV2ZW50
PiBiZWZvcmVVbmxvYWRFdmVudCA9IEJlZm9yZVVubG9hZEV2ZW50OjpjcmVhdGUoKTsKIAogICAg
IHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8UGFnZURpc21pc3NhbFR5cGU+IGNoYW5nZShtX3BhZ2VE
aXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCwgUGFnZURpc21pc3NhbFR5cGU6OkJlZm9yZVVu
bG9hZCk7CisgICAgICAgIFNldEZvclNjb3BlIGNoYW5nZShtX3BhZ2VEaXNtaXNzYWxFdmVudEJl
aW5nRGlzcGF0Y2hlZCwgUGFnZURpc21pc3NhbFR5cGU6OkJlZm9yZVVubG9hZCk7CiAgICAgICAg
IEZvcmJpZFByb21wdHNTY29wZSBmb3JiaWRQcm9tcHRzKG1fZnJhbWUucGFnZSgpKTsKICAgICAg
ICAgRm9yYmlkU3luY2hyb25vdXNMb2Fkc1Njb3BlIGZvcmJpZFN5bmNocm9ub3VzTG9hZHMobV9m
cmFtZS5wYWdlKCkpOwogICAgICAgICBkb21XaW5kb3ctPmRpc3BhdGNoRXZlbnQoYmVmb3JlVW5s
b2FkRXZlbnQsIGRvbVdpbmRvdy0+ZG9jdW1lbnQoKSk7CkBAIC0zNzc2LDcgKzM3NzYsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBp
dGVtLCBIaXN0b3J5SXRlbSogZnJvbQogCiAgICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duOwogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENv
bnRpbnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWlu
Z1N0YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoSGlzdG9y
eUl0ZW0gOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBTZXRGb3JT
Y29wZSBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExv
YWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOwogCiAgICAgaWYgKENhY2hlZFBhZ2Uq
IGNhY2hlZFBhZ2UgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5nZXQoaXRlbSwgbV9m
cmFtZS5wYWdlKCkpKSB7CiAgICAgICAgIGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBjYWNoZWRQYWdl
LT5kb2N1bWVudExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggODVmMTg4YmY3NWZmNWQyNmIyNDFjZGQ5MGU2ODcw
OTkyM2I1Y2ZmZS4uZTY2MjZkZmVlYmViYTA0MjA4MWFiMDNiOWUxODA2Mzg3ZDY4Y2E5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
CkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OnVwZGF0ZUJ1ZmZlcihj
b25zdCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyJiBkYXRhKQogICAgICAgICBhdXRvIGluY3JlbWVu
dGFsRGF0YSA9IGRhdGEuZ2V0U29tZURhdGEocHJldmlvdXNEYXRhU2l6ZSk7CiAgICAgICAgIHBy
ZXZpb3VzRGF0YVNpemUgKz0gaW5jcmVtZW50YWxEYXRhLnNpemUoKTsKIAotICAgICAgICBTZXRG
b3JTY29wZTxib29sPiBub3RpZnlTY29wZShtX2luSW5jcmVtZW50YWxEYXRhTm90aWZ5LCB0cnVl
KTsKKyAgICAgICAgU2V0Rm9yU2NvcGUgbm90aWZ5U2NvcGUobV9pbkluY3JlbWVudGFsRGF0YU5v
dGlmeSwgdHJ1ZSk7CiAgICAgICAgIG5vdGlmeUNsaWVudHNEYXRhV2FzUmVjZWl2ZWQoaW5jcmVt
ZW50YWxEYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpKTsKICAgICB9CiAgICAgc2V0RW5jb2RlZFNp
emUoZGF0YS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKaW5kZXggY2U4YTA5MzlhNTYzZjg5ZjM5ZTlmMWIxNjkzMzRhYWU1MGVjYTNiNC4uYjIw
MmZlZjY3OTI2ZDFhZThjZjRjYTZjMDA4NzRmZTQ1ZWI1YmZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKHVuc2lnbmVkIHRhcmdldFNpemUs
IGJvb2wgc2hvdWxkRGVzdHIKIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJNZW1vcnlDYWNo
ZTo6cHJ1bmVMaXZlUmVzb3VyY2VzVG9TaXplKCVkLCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFG
b3JBbGxMaXZlUmVzb3VyY2VzID0gJWQpIiwgdGFyZ2V0U2l6ZSwgc2hvdWxkRGVzdHJveURlY29k
ZWREYXRhRm9yQWxsTGl2ZVJlc291cmNlcyk7CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiByZWVu
dHJhbmN5UHJvdGVjdG9yKG1faW5QcnVuZVJlc291cmNlcywgdHJ1ZSk7CisgICAgU2V0Rm9yU2Nv
cGUgcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNvdXJjZXMsIHRydWUpOwogCiAgICAg
TW9ub3RvbmljVGltZSBjdXJyZW50VGltZSA9IEZyYW1lVmlldzo6Y3VycmVudFBhaW50VGltZVN0
YW1wKCk7CiAgICAgaWYgKCFjdXJyZW50VGltZSkgLy8gSW4gY2FzZSBwcnVuZSBpcyBjYWxsZWQg
ZGlyZWN0bHksIG91dHNpZGUgb2YgYSBGcmFtZSBwYWludC4KQEAgLTMyMCw3ICszMjAsNyBAQCB2
b2lkIE1lbW9yeUNhY2hlOjpwcnVuZURlYWRSZXNvdXJjZXNUb1NpemUodW5zaWduZWQgdGFyZ2V0
U2l6ZSkKIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJNZW1vcnlDYWNoZTo6cHJ1bmVEZWFk
UmVzb3VyY2VzVG9TaXplKCVkKSIsIHRhcmdldFNpemUpOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gcmVlbnRyYW5jeVByb3RlY3RvcihtX2luUHJ1bmVSZXNvdXJjZXMsIHRydWUpOworICAgIFNl
dEZvclNjb3BlIHJlZW50cmFuY3lQcm90ZWN0b3IobV9pblBydW5lUmVzb3VyY2VzLCB0cnVlKTsK
ICAKICAgICBpZiAodGFyZ2V0U2l6ZSAmJiBtX2RlYWRTaXplIDw9IHRhcmdldFNpemUpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAyMmIwMGRkOTRkYWZhZjI1NTE4
ODk5OTk2NmYxZjNiZmYzNDAwNDgwLi41ZTJjZjYzNmEyMDAwZDg0MTc2NzM3YjdmNWEyYzkzY2Q2
MjA1NDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBD
aHJvbWU6OnJ1bk1vZGFsKCkgY29uc3QKIAogICAgIC8vIEphdmFTY3JpcHQgdGhhdCBydW5zIHdp
dGhpbiB0aGUgbmVzdGVkIGV2ZW50IGxvb3AgbXVzdCBub3QgYmUgcnVuIGluIHRoZSBjb250ZXh0
IG9mIHRoZQogICAgIC8vIHNjcmlwdCB0aGF0IGNhbGxlZCBzaG93TW9kYWxEaWFsb2cuIE51bGwg
b3V0IGVudHJ5U2NvcGUgdG8gYnJlYWsgdGhlIGNvbm5lY3Rpb24uCi0gICAgU2V0Rm9yU2NvcGU8
SlNDOjpWTUVudHJ5U2NvcGUqPiBlbnRyeVNjb3BlTnVsbGlmaWVyIHsgbV9wYWdlLm1haW5GcmFt
ZSgpLmRvY3VtZW50KCktPnZtKCkuZW50cnlTY29wZSwgbnVsbHB0ciB9OworICAgIFNldEZvclNj
b3BlIGVudHJ5U2NvcGVOdWxsaWZpZXIgeyBtX3BhZ2UubWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+
dm0oKS5lbnRyeVNjb3BlLCBudWxscHRyIH07CiAKICAgICBUaW1lckJhc2U6OmZpcmVUaW1lcnNJ
bk5lc3RlZEV2ZW50TG9vcCgpOwogICAgIG1fY2xpZW50LnJ1bk1vZGFsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZjMyODY1NWQ5NGU2
YTMwNmEyNTg3MWNmMjJjMzZhNDdlZjg4ZmQ3ZC4uMTRiMWUzN2JkYzY1MWZlMzdlNjNkZDhhYjg4
MTY0ZDhiMjJiYzc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50JiBldmVudCkKICAgICBpZiAobV9pc0hhbmRs
aW5nQ29udGV4dE1lbnVFdmVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gaXNIYW5kbGluZ0NvbnRleHRNZW51RXZlbnRGb3JTY29wZShtX2lzSGFuZGxpbmdDb250
ZXh0TWVudUV2ZW50LCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBpc0hhbmRsaW5nQ29udGV4dE1l
bnVFdmVudEZvclNjb3BlKG1faXNIYW5kbGluZ0NvbnRleHRNZW51RXZlbnQsIHRydWUpOwogCiAg
ICAgY29uc3RleHByIE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6VHlwZT4gaGl0VHlwZSB7IEhp
dFRlc3RSZXF1ZXN0OjpUeXBlOjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2
ZSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCwg
SGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQgfTsKICAgICBtX2Nv
bnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCwgaGl0VHlwZSwgQ29udGV4
dE1lbnVDb250ZXh0OjpUeXBlOjpDb250ZXh0TWVudSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggNjBjNzU5ZGM4YWYzZTVjZmRiNWYyZjI2NWFkZTVhZTUyM2ViOGZhZi4uNjM5ZmEy
ODM4ZjViZjM2MmE1ZWM4NTBjZmYxNmRkZWM3YzU3OTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1
c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCiAKIHZvaWQgRE9NV2luZG93OjpzdXNwZW5k
Rm9yQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNTdXNwZW5k
aW5nT2JzZXJ2ZXJzKG1faXNTdXNwZW5kaW5nT2JzZXJ2ZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JT
Y29wZSBpc1N1c3BlbmRpbmdPYnNlcnZlcnMobV9pc1N1c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUp
OwogICAgIFJFTEVBU0VfQVNTRVJUKGZyYW1lKCkpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZl
ciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKaW5kZXggMzU4OGM5YTgyODliYzU0ZTRlMGIxZDM2MTU4Y2I0N2M5YWRkZGNl
MC4uM2Y1ZTIzZjlmNDdiZDhiZmUwOTFjODIzNDVlZTFiZWU2OWI0NmFjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCBib29sIERyYWdD
b250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEp
CiAKICAgICByZW1vdmVBbGxEcm9wcGVkSW1hZ2VQbGFjZWhvbGRlcnMoKTsKIAotICAgIFNldEZv
clNjb3BlPGJvb2w+IGlzUGVyZm9ybWluZ0Ryb3AobV9pc1BlcmZvcm1pbmdEcm9wLCB0cnVlKTsK
KyAgICBTZXRGb3JTY29wZSBpc1BlcmZvcm1pbmdEcm9wKG1faXNQZXJmb3JtaW5nRHJvcCwgdHJ1
ZSk7CiAgICAgSWdub3JlU2VsZWN0aW9uQ2hhbmdlRm9yU2NvcGUgaWdub3JlU2VsZWN0aW9uQ2hh
bmdlcyB7IG1fcGFnZS5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKSB9Owog
CiAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSBtX3BhZ2UubWFpbkZyYW1lKCkuZG9jdW1lbnRB
dFBvaW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291
cmNlLmNwcAppbmRleCA4Y2M4ZGYxYWMyNmNkMzQ3OTI0ZDc2YmRiZmVjOTJhZjkxMGUxMzY5Li4w
ZWY5Y2M0NmQwY2U0ODRlNGRkYWY1YWU5YmMyZTAwYzczN2U0ZGY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50U291cmNlLmNwcApAQCAtMjkxLDcgKzI5MSw3IEBAIGJvb2wgRXZlbnRTb3VyY2U6OnZp
cnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogdm9pZCBFdmVudFNvdXJjZTo6ZG9FeHBs
aWNpdExvYWRDYW5jZWxsYXRpb24oKQogewogICAgIEFTU0VSVChtX3JlcXVlc3RJbkZsaWdodCk7
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZXhwbGljaXRMb2FkQ2FuY2VsbGF0aW9uKG1faXNEb2lu
Z0V4cGxpY2l0Q2FuY2VsbGF0aW9uLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBleHBsaWNpdExv
YWRDYW5jZWxsYXRpb24obV9pc0RvaW5nRXhwbGljaXRDYW5jZWxsYXRpb24sIHRydWUpOwogICAg
IG1fbG9hZGVyLT5jYW5jZWwoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDFlOTg2YWIyZDIzMWEzYmRlZTI0MzhiY2EzY2EzNWNkYzc3MmViZWMuLjNiOTk1NTg5ZDE4NTZm
N2MzMzdmYTAwZDRlZGM1MmFiYmU5MzQxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
QEAgLTI1ODAsNyArMjU4MCw3IEBAIHZvaWQgRnJhbWVWaWV3OjphcHBseVJlY3Vyc2l2ZWx5V2l0
aFZpc2libGVSZWN0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoRnJhbWVWaWV3JiBmCiAgICAgYXBwbHko
KnRoaXMsIHZpc2libGVSZWN0KTsKIAogICAgIC8vIFJlY3Vyc2l2ZSBjYWxsIGZvciBzdWJmcmFt
ZXMuIFdlIGNhY2hlIHRoZSBjdXJyZW50IEZyYW1lVmlldydzIHdpbmRvd0NsaXBSZWN0IHRvIGF2
b2lkIHJlY29tcHV0aW5nIGl0IGZvciBldmVyeSBzdWJmcmFtZS4KLSAgICBTZXRGb3JTY29wZTxJ
bnRSZWN0Kj4gd2luZG93Q2xpcFJlY3RDYWNoZShtX2NhY2hlZFdpbmRvd0NsaXBSZWN0LCAmd2lu
ZG93Q2xpcFJlY3QpOworICAgIFNldEZvclNjb3BlIHdpbmRvd0NsaXBSZWN0Q2FjaGUobV9jYWNo
ZWRXaW5kb3dDbGlwUmVjdCwgJndpbmRvd0NsaXBSZWN0KTsKICAgICBmb3IgKEZyYW1lKiBjaGls
ZEZyYW1lID0gZnJhbWUoKS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZEZyYW1lOyBjaGlsZEZy
YW1lID0gY2hpbGRGcmFtZS0+dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGNoaWxkVmlldyA9IGNoaWxkRnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAgIGNoaWxkVmll
dy0+YXBwbHlSZWN1cnNpdmVseVdpdGhWaXNpYmxlUmVjdChhcHBseSk7CkBAIC0zMzM3LDcgKzMz
MzcsNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlRW1iZWRkZWRPYmplY3QoUmVuZGVyRW1iZWRk
ZWRPYmplY3QmIGVtYmVkZGVkT2JqZWN0KQogCiBib29sIEZyYW1lVmlldzo6dXBkYXRlRW1iZWRk
ZWRPYmplY3RzKCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBpblVwZGF0ZUVtYmVkZGVkT2Jq
ZWN0cyhtX2luVXBkYXRlRW1iZWRkZWRPYmplY3RzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBp
blVwZGF0ZUVtYmVkZGVkT2JqZWN0cyhtX2luVXBkYXRlRW1iZWRkZWRPYmplY3RzLCB0cnVlKTsK
ICAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0TmVzdGVkKCkgfHwgIW1fZW1iZWRkZWRP
YmplY3RzVG9VcGRhdGUgfHwgbV9lbWJlZGRlZE9iamVjdHNUb1VwZGF0ZS0+aXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzU0Miw3ICszNTQyLDcgQEAgdm9pZCBGcmFtZVZp
ZXc6OmF1dG9TaXplSWZFbmFibGVkKCkKICAgICBpZiAoIWZpcnN0Q2hpbGQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZUluQXV0b1NpemUobV9pbkF1dG9T
aXplLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBjaGFuZ2VJbkF1dG9TaXplKG1faW5BdXRvU2l6
ZSwgdHJ1ZSk7CiAgICAgaWYgKGxheW91dENvbnRleHQoKS5zdWJ0cmVlTGF5b3V0Um9vdCgpKQog
ICAgICAgICBsYXlvdXRDb250ZXh0KCkuY29udmVydFN1YnRyZWVMYXlvdXRUb0Z1bGxMYXlvdXQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAK
aW5kZXggNjlhNGMyM2M5YTM2MTgyYzE3MDllMzdhMWFiNGQ4ZTc0ODE4Zjg3MS4uMmZmMzEwMjNm
YWJmZTlhZTE5OWNjYTQ4OTdmYmUzNGU0N2E5NWNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBG
cmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQoKQogICAgICAgICByZXR1cm47CiAKICAgICB7
Ci0gICAgICAgIFNldEZvclNjb3BlPExheW91dFBoYXNlPiBsYXlvdXRQaGFzZShtX2xheW91dFBo
YXNlLCBMYXlvdXRQaGFzZTo6SW5QcmVMYXlvdXQpOworICAgICAgICBTZXRGb3JTY29wZSBsYXlv
dXRQaGFzZShtX2xheW91dFBoYXNlLCBMYXlvdXRQaGFzZTo6SW5QcmVMYXlvdXQpOwogCiAgICAg
ICAgIGlmICghZnJhbWUoKS5kb2N1bWVudCgpLT5pc1Jlc29sdmluZ0NvbnRhaW5lclF1ZXJpZXMo
KSkgewogICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIG5ldyB0b3AtbGV2ZWwgbGF5b3V0IGFu
ZCB0aGVyZSBhcmUgYW55IHJlbWFpbmluZyB0YXNrcyBmcm9tIHRoZSBwcmV2aW91cyBsYXlvdXQs
IGZpbmlzaCB0aGVtIG5vdy4KQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIEZyYW1lVmlld0xheW91
dENvbnRleHQ6OmxheW91dCgpCiAgICAgICAgIG1fZmlyc3RMYXlvdXQgPSBmYWxzZTsKICAgICB9
CiAgICAgewotICAgICAgICBTZXRGb3JTY29wZTxMYXlvdXRQaGFzZT4gbGF5b3V0UGhhc2UobV9s
YXlvdXRQaGFzZSwgTGF5b3V0UGhhc2U6OkluUmVuZGVyVHJlZUxheW91dCk7CisgICAgICAgIFNl
dEZvclNjb3BlIGxheW91dFBoYXNlKG1fbGF5b3V0UGhhc2UsIExheW91dFBoYXNlOjpJblJlbmRl
clRyZWVMYXlvdXQpOwogICAgICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVh
ZCBzY3JpcHREaXNhbGxvd2VkU2NvcGU7CiAgICAgICAgIFN1YnRyZWVMYXlvdXRTdGF0ZU1haW50
YWluZXIgc3VidHJlZUxheW91dFN0YXRlTWFpbnRhaW5lcihzdWJ0cmVlTGF5b3V0Um9vdCgpKTsK
ICAgICAgICAgUmVuZGVyVmlldzo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yIHJlcGFpbnRSZWdp
b25BY2N1bXVsYXRvcihyZW5kZXJWaWV3KCkpOwpAQCAtMjQzLDEwICsyNDMsMTAgQEAgdm9pZCBG
cmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQoKQogICAgICAgICBjbGVhclN1YnRyZWVMYXlv
dXRSb290KCk7CiAgICAgfQogICAgIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8TGF5b3V0UGhhc2U+
IGxheW91dFBoYXNlKG1fbGF5b3V0UGhhc2UsIExheW91dFBoYXNlOjpJblZpZXdTaXplQWRqdXN0
KTsKKyAgICAgICAgU2V0Rm9yU2NvcGUgbGF5b3V0UGhhc2UobV9sYXlvdXRQaGFzZSwgTGF5b3V0
UGhhc2U6OkluVmlld1NpemVBZGp1c3QpOwogICAgICAgICBpZiAoaXM8UmVuZGVyVmlldz4obGF5
b3V0Um9vdCkgJiYgIXJlbmRlclZpZXcoKS0+cHJpbnRpbmcoKSkgewogICAgICAgICAgICAgLy8g
VGhpcyBpcyB0byBwcm90ZWN0IG1fbmVlZHNGdWxsUmVwYWludCdzIHZhbHVlIHdoZW4gbGF5b3V0
KCkgaXMgZ2V0dGluZyByZS1lbnRlcmVkIHRocm91Z2ggYWRqdXN0Vmlld1NpemUoKS4KLSAgICAg
ICAgICAgIFNldEZvclNjb3BlPGJvb2w+IG5lZWRzRnVsbFJlcGFpbnQobV9uZWVkc0Z1bGxSZXBh
aW50KTsKKyAgICAgICAgICAgIFNldEZvclNjb3BlIG5lZWRzRnVsbFJlcGFpbnQobV9uZWVkc0Z1
bGxSZXBhaW50KTsKICAgICAgICAgICAgIHZpZXcoKS5hZGp1c3RWaWV3U2l6ZSgpOwogICAgICAg
ICAgICAgLy8gRklYTUU6IEZpcmluZyBtZWRpYSBxdWVyeSBjYWxsYmFja3Mgc3luY2hyb25vdXNs
eSBvbiBuZXN0ZWQgZnJhbWVzIGNvdWxkIHByb2R1Y2VkIGEgZGV0YWNoZWQgRnJhbWVWaWV3IGhl
cmUgYnkKICAgICAgICAgICAgIC8vIG5hdmlnYXRpbmcgYXdheSBmcm9tIHRoZSBjdXJyZW50IGRv
Y3VtZW50IChzZWUgd2Via2l0Lm9yZy9iLzE3MzMyOSkuCkBAIC0yNTUsNyArMjU1LDcgQEAgdm9p
ZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQoKQogICAgICAgICB9CiAgICAgfQogICAg
IHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8TGF5b3V0UGhhc2U+IGxheW91dFBoYXNlKG1fbGF5b3V0
UGhhc2UsIExheW91dFBoYXNlOjpJblBvc3RMYXlvdXQpOworICAgICAgICBTZXRGb3JTY29wZSBs
YXlvdXRQaGFzZShtX2xheW91dFBoYXNlLCBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0KTsKICAg
ICAgICAgaWYgKG1fbmVlZHNGdWxsUmVwYWludCkKICAgICAgICAgICAgIHJlbmRlclZpZXcoKS0+
cmVwYWludFJvb3RDb250ZW50cygpOwogICAgICAgICBBU1NFUlQoIWxheW91dFJvb3QtPm5lZWRz
TGF5b3V0KCkpOwpAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6cnVuQXN5bmNocm9ub3VzVGFza3MoKQogICAgIG1fYXN5bmNocm9ub3VzVGFza3NUaW1lci5z
dG9wKCk7CiAgICAgaWYgKG1faW5Bc3luY2hyb25vdXNUYXNrcykKICAgICAgICAgcmV0dXJuOwot
ICAgIFNldEZvclNjb3BlPGJvb2w+IGluQXN5bmNocm9ub3VzVGFza3MobV9pbkFzeW5jaHJvbm91
c1Rhc2tzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBpbkFzeW5jaHJvbm91c1Rhc2tzKG1faW5B
c3luY2hyb25vdXNUYXNrcywgdHJ1ZSk7CiAgICAgdmlldygpLnBlcmZvcm1Qb3N0TGF5b3V0VGFz
a3MoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggMmY2NGY1MDk1ZjhlYWVlMzI5MzdkMzQ2ZDMyNDE3YTdlNTA0MDBi
NC4uZDRiOTljYzBkN2FmM2YwNWQzYWFjNTI1YmIxYjA2MTg3MDJkMzJkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0xNzIs
NyArMTcyLDcgQEAgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6cmVzcG9uc2VIZWFkZXJzKCkgY28KIAogdm9pZCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgaGVhZGVycywgU3RyaW5nJiYgcmVmZXJyZXIsIFJlcG9ydFBhcnNpbmdF
cnJvcnMgcmVwb3J0UGFyc2luZ0Vycm9ycykKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc1Jl
cG9ydGluZ0VuYWJsZWQobV9pc1JlcG9ydGluZ0VuYWJsZWQsIHJlcG9ydFBhcnNpbmdFcnJvcnMg
PT0gUmVwb3J0UGFyc2luZ0Vycm9yczo6WWVzKTsKKyAgICBTZXRGb3JTY29wZSBpc1JlcG9ydGlu
Z0VuYWJsZWQobV9pc1JlcG9ydGluZ0VuYWJsZWQsIHJlcG9ydFBhcnNpbmdFcnJvcnMgPT0gUmVw
b3J0UGFyc2luZ0Vycm9yczo6WWVzKTsKICAgICBmb3IgKGF1dG8mIGhlYWRlciA6IGhlYWRlcnMu
bV9oZWFkZXJzKQogICAgICAgICBkaWRSZWNlaXZlSGVhZGVyKGhlYWRlci5maXJzdCwgaGVhZGVy
LnNlY29uZCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpQb2xpY3lGcm9tOjpIVFRQSGVhZGVyLCBT
dHJpbmcgeyB9KTsKICAgICBtX3JlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcik7CkBAIC0xODEs
NyArMTgxLDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXJz
KGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnMKIAogdm9pZCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXJzKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeSYg
b3RoZXIsIFJlcG9ydFBhcnNpbmdFcnJvcnMgcmVwb3J0UGFyc2luZ0Vycm9ycykKIHsKLSAgICBT
ZXRGb3JTY29wZTxib29sPiBpc1JlcG9ydGluZ0VuYWJsZWQobV9pc1JlcG9ydGluZ0VuYWJsZWQs
IHJlcG9ydFBhcnNpbmdFcnJvcnMgPT0gUmVwb3J0UGFyc2luZ0Vycm9yczo6WWVzKTsKKyAgICBT
ZXRGb3JTY29wZSBpc1JlcG9ydGluZ0VuYWJsZWQobV9pc1JlcG9ydGluZ0VuYWJsZWQsIHJlcG9y
dFBhcnNpbmdFcnJvcnMgPT0gUmVwb3J0UGFyc2luZ0Vycm9yczo6WWVzKTsKICAgICBmb3IgKGF1
dG8mIHBvbGljeSA6IG90aGVyLm1fcG9saWNpZXMpCiAgICAgICAgIGRpZFJlY2VpdmVIZWFkZXIo
cG9saWN5LT5oZWFkZXIoKSwgcG9saWN5LT5oZWFkZXJUeXBlKCksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6UG9saWN5RnJvbTo6SFRUUEhlYWRlciwgU3RyaW5nIHsgfSk7CiAgICAgbV9yZWZlcnJl
ciA9IG90aGVyLm1fcmVmZXJyZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lv
cy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRs
ZXJJT1MubW0KaW5kZXggZmZhYTI4OWZmZjI4MjIyZTE0NDIwMjVlOGFlZDIxZDcyZjAwMDYxMS4u
MzY2MTA4ZGNmNWE0ODEwZTIyMmVlZDA2ODRlMTJiMzVkYzI0YjE1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtNzE0LDcgKzcxNCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRHJhZ0F0UG9pbnQoY29uc3QgSW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBJCiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gc2hvdWxkQWxsb3dNb3VzZURvd25Ub1N0YXJ0
RHJhZyB7IG1fc2hvdWxkQWxsb3dNb3VzZURvd25Ub1N0YXJ0RHJhZywgdHJ1ZSB9OworICAgIFNl
dEZvclNjb3BlIHNob3VsZEFsbG93TW91c2VEb3duVG9TdGFydERyYWcgeyBtX3Nob3VsZEFsbG93
TW91c2VEb3duVG9TdGFydERyYWcsIHRydWUgfTsKIAogICAgIGRvY3VtZW50LT51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzMzlhMTBkYTZlOTk5YjZjODc2NDIx
YzI3NWI3ZTE3ZjUxZDdkNGI2Li41YTUxMjRjNmE4MGFjMzI1ZGY5OTU5ZDU0YTJiZmExNjJiMjQ4
OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6bWFpbkZyYW1lVmll
d3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKGNvbnN0IEZsb2F0UG9pCiAKIHZvaWQg
U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdT
dGF0ZVRyZWU+JiYgc2Nyb2xsaW5nU3RhdGVUcmVlKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+
IGluQ29tbWl0VHJlZVN0YXRlKG1faW5Db21taXRUcmVlU3RhdGUsIHRydWUpOworICAgIFNldEZv
clNjb3BlIGluQ29tbWl0VHJlZVN0YXRlKG1faW5Db21taXRUcmVlU3RhdGUsIHRydWUpOwogICAg
IExvY2tlciBsb2NrZXIgeyBtX3RyZWVMb2NrIH07CiAKICAgICBib29sIHJvb3RTdGF0ZU5vZGVD
aGFuZ2VkID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5oYXNOZXdSb290U3RhdGVOb2RlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcAppbmRleCBmOWIxNzU2MjBkNmUzOTcyMWNmNGI4OTIxZTE5MmQ3NTA2NDJhYzQ2Li4x
MDdjYjczMjIxZGRjZWQ4YjBhNWVlMzQyNmVjZTQyMzhjYTgwMTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAK
QEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVs
RXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEUKICAgICAgICAgcHJvY2Vz
c2luZ1N0ZXBzID0geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2
ZW50RGlzcGF0Y2ggfTsKICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBkaXNhbGxvd0xh
dGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5nLCBhbGxvd0xhdGNoaW5nKTsKKyAgICBTZXRGb3JT
Y29wZSBkaXNhbGxvd0xhdGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5nLCBhbGxvd0xhdGNoaW5n
KTsKICAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQo
dGFyZ2V0Tm9kZUlEKTsKICAgICBhdXRvIHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9k
ZSh3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMsIHRhcmdldE5vZGUuZ2V0KCksIEV2ZW50VGFy
Z2V0aW5nOjpOb2RlT25seSk7CiAgICAgcmV0dXJuIHJlc3VsdC53YXNIYW5kbGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJldmlld0NvbnZlcnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcAppbmRleCAyYWJhY2YzZWY0
OTkzMjRlZDA1YjE3MjQ1NDAwZTczMTdkNzE4MDIyLi44MDFmMzQzN2MyNThlZmY2ODJmMDgwZWFl
OTI5NTdjYjJhOWEyMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmV2
aWV3Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmV2aWV3Q29u
dmVydGVyLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgUHJldmlld0NvbnZlcnRlcjo6c2V0
UGFzc3dvcmRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogdm9pZCBQcmV2aWV3Q29udmVydGVyOjppdGVyYXRlQ2xpZW50cyhUJiYgY2FsbGJh
Y2spCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNJbkNsaWVudENhbGxiYWNrIHsgbV9pc0lu
Q2xpZW50Q2FsbGJhY2ssIHRydWUgfTsKKyAgICBTZXRGb3JTY29wZSBpc0luQ2xpZW50Q2FsbGJh
Y2sgeyBtX2lzSW5DbGllbnRDYWxsYmFjaywgdHJ1ZSB9OwogICAgIGF1dG8gY2xpZW50c0NvcHkg
eyBtX2NsaWVudHMgfTsKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgeyBSZWYgeyAqdGhpcyB9IH07
CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFByZXZpZXdDb252ZXJ0ZXI6OnJlcGxheVRvQ2xp
ZW50KFByZXZpZXdDb252ZXJ0ZXJDbGllbnQmIGNsaWVudCkKICAgICBpZiAoIWhhc0NsaWVudChj
bGllbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0luQ2xp
ZW50Q2FsbGJhY2sgeyBtX2lzSW5DbGllbnRDYWxsYmFjaywgdHJ1ZSB9OworICAgIFNldEZvclNj
b3BlIGlzSW5DbGllbnRDYWxsYmFjayB7IG1faXNJbkNsaWVudENhbGxiYWNrLCB0cnVlIH07CiAg
ICAgYXV0byBwcm90ZWN0ZWRUaGlzIHsgUmVmIHsgKnRoaXMgfSB9OwogCiAgICAgY2xpZW50LnBy
ZXZpZXdDb252ZXJ0ZXJEaWRTdGFydFVwZGF0aW5nKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcAppbmRleCA5
ODM3MmQ2MDYyZDM0Nzc4MWVlNjUyNDQ0MGZjZDIwMDIzMjBhNGJlLi5jNmY3Y2NhZGY3ZGVjNGNi
Yzg0MWJmOWZlYTg2NGMzYWRhYTdiODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwCkBAIC0yMzYsNyArMjM2LDcg
QEAgYm9vbCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6Y2xpZW50V2lsbEJlZ2luUGxheWJhY2soKQog
CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAic3RhdGUgPSAiLCBtX3N0YXRlKTsKIAot
ICAgIFNldEZvclNjb3BlPGJvb2w+IHByZXBhcmluZ1RvUGxheShtX3ByZXBhcmluZ1RvUGxheSwg
dHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUgcHJlcGFyaW5nVG9QbGF5KG1fcHJlcGFyaW5nVG9QbGF5
LCB0cnVlKTsKIAogICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkuc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKCp0aGlzKSkgewogICAgICAgICBpZiAo
c3RhdGUoKSA9PSBJbnRlcnJ1cHRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDM2ZDA2MDc2NjUyOTUx
MWM2NWU0ZTI3YzNiYzUyNjY1ODdhMjg1N2UuLmQ3ODU5M2Q2YTk3OTQ2YTUyOTVmZTRjZTBjNWI0
OTJhYzExNzU2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTkzMSw3ICsxOTMxLDcgQEAgc3RhdGlj
IGJvb2wgaXNDdXN0b21CYWNrZHJvcExheWVyVHlwZShQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZSBsYXllclR5cGUpCiAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNC
ZWZvcmVTdWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsIGJvb2wmIGxh
eWVyQ2hhbmdlZCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBjb21taXR0aW5nQ2hhbmdlc0No
YW5nZShtX2lzQ29tbWl0dGluZ0NoYW5nZXMsIHRydWUpOworICAgIFNldEZvclNjb3BlIGNvbW1p
dHRpbmdDaGFuZ2VzQ2hhbmdlKG1faXNDb21taXR0aW5nQ2hhbmdlcywgdHJ1ZSk7CiAKICAgICBp
ZiAoIW1fdW5jb21taXR0ZWRDaGFuZ2VzKSB7CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGNh
cCBsYXllciBkZXB0aCBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycygpLgpAQCAt
MjExNSw3ICsyMTE1LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdl
c0FmdGVyU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSkKICAgICBpZiAoIW1fdW5j
b21taXR0ZWRDaGFuZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRGb3JTY29wZTxib29s
PiBjb21taXR0aW5nQ2hhbmdlc0NoYW5nZShtX2lzQ29tbWl0dGluZ0NoYW5nZXMsIHRydWUpOwor
ICAgIFNldEZvclNjb3BlIGNvbW1pdHRpbmdDaGFuZ2VzQ2hhbmdlKG1faXNDb21taXR0aW5nQ2hh
bmdlcywgdHJ1ZSk7CiAKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBNYXNrTGF5ZXJD
aGFuZ2VkKQogICAgICAgICB1cGRhdGVNYXNrTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCAzN2UwZjU0YmI2MDAxMjM0
ZmI2ZmU0YWQ5MmU1NzhkYjhmMzAzZTIzLi42OTQzNzA4NjRmOGI4MDMyYzI5Mzc3NmFiNDA5NDIy
ODcwZTBiNGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1dlYkxheWVyLm1tCkBAIC02NSw3ICs2NSw3IEBAIEBzeW50aGVzaXplIGlzUmVuZGVyaW5nSW5D
b250ZXh0ID0gX2lzUmVuZGVyaW5nSW5Db250ZXh0OwogCiAtICh2b2lkKXJlbmRlckluQ29udGV4
dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKIHsKLSAgICBTZXRGb3JTY29wZTxCT09MPiBjaGFuZ2Uo
X2lzUmVuZGVyaW5nSW5Db250ZXh0LCBZRVMpOworICAgIFNldEZvclNjb3BlIGNoYW5nZShfaXNS
ZW5kZXJpbmdJbkNvbnRleHQsIFlFUyk7CiAgICAgW3N1cGVyIHJlbmRlckluQ29udGV4dDpjb250
ZXh0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCA1M2U0MjVlZDM5Yzk0ZTRmYzQx
MzA0ZmI5OTM4YmI3YTBlNmFjZTlkLi4yMmIwNThjNDY4YTg2NmM3YTA5ZDM3MDNkMzA3MjZlY2Ux
Nzc0YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiB0ZXh0dXJl
LCBjb25zdCBGbG9hdFJlY3QmCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IEJpdG1hcFRl
eHR1cmVHTCYgdGV4dHVyZUdMID0gc3RhdGljX2Nhc3Q8Y29uc3QgQml0bWFwVGV4dHVyZUdMJj4o
dGV4dHVyZSk7Ci0gICAgU2V0Rm9yU2NvcGU8Y29uc3QgQml0bWFwVGV4dHVyZUdMOjpGaWx0ZXJJ
bmZvKj4gZmlsdGVySW5mbyhkYXRhKCkuZmlsdGVySW5mbywgdGV4dHVyZUdMLmZpbHRlckluZm8o
KSk7CisgICAgU2V0Rm9yU2NvcGUgZmlsdGVySW5mbyhkYXRhKCkuZmlsdGVySW5mbywgdGV4dHVy
ZUdMLmZpbHRlckluZm8oKSk7CiAKICAgICBkcmF3VGV4dHVyZSh0ZXh0dXJlR0wuaWQoKSwgdGV4
dHVyZUdMLmNvbG9yQ29udmVydEZsYWdzKCkgfCAodGV4dHVyZUdMLmlzT3BhcXVlKCkgPyAwIDog
U2hvdWxkQmxlbmQpLCB0ZXh0dXJlR0wuc2l6ZSgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNp
dHksIGV4cG9zZWRFZGdlcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDI5
NGRhZGY4YzhjODVkZTVkODkyNWQyYTFiZjcwZmY5YzVkMmRmNTQuLjQ5ZTgwZWViNmU0MGI2Yzlm
NzNhYTY4OWUwMDliOTRjNTU2NzVkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBA
IC0zMDgsNyArMzA4LDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmlzVmlzaWJsZSgpIGNv
bnN0CiB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW5XaXRoUmVw
bGljYShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zKQogewogICAgIGlmIChtX3N0
YXRlLnJlcGxpY2FMYXllcikgewotICAgICAgICBTZXRGb3JTY29wZTxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4gc2NvcGVkVHJhbnNmb3JtKG9wdGlvbnMudHJhbnNmb3JtLCBvcHRpb25zLnRyYW5zZm9y
bSk7CisgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFRyYW5zZm9ybShvcHRpb25zLnRyYW5zZm9y
bSwgb3B0aW9ucy50cmFuc2Zvcm0pOwogICAgICAgICBvcHRpb25zLnRyYW5zZm9ybS5tdWx0aXBs
eShyZXBsaWNhVHJhbnNmb3JtKCkpOwogICAgICAgICBwYWludFNlbGZBbmRDaGlsZHJlbihvcHRp
b25zKTsKICAgICB9CkBAIC00NDgsOCArNDQ4LDggQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OnBhaW50SW50b1N1cmZhY2UoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuYmluZFN1cmZhY2Uob3B0aW9ucy5zdXJmYWNlLmdl
dCgpKTsKICAgICBpZiAobV9pc0JhY2tkcm9wKSB7Ci0gICAgICAgIFNldEZvclNjb3BlPFRyYW5z
Zm9ybWF0aW9uTWF0cml4PiBzY29wZWRUcmFuc2Zvcm0ob3B0aW9ucy50cmFuc2Zvcm0sIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCkpOwotICAgICAgICBTZXRGb3JTY29wZTxUZXh0dXJlTWFwcGVyTGF5
ZXIqPiBzY29wZWRCYWNrZHJvcExheWVyKG9wdGlvbnMuYmFja2Ryb3BMYXllciwgdGhpcyk7Cisg
ICAgICAgIFNldEZvclNjb3BlIHNjb3BlZFRyYW5zZm9ybShvcHRpb25zLnRyYW5zZm9ybSwgVHJh
bnNmb3JtYXRpb25NYXRyaXgoKSk7CisgICAgICAgIFNldEZvclNjb3BlIHNjb3BlZEJhY2tkcm9w
TGF5ZXIob3B0aW9ucy5iYWNrZHJvcExheWVyLCB0aGlzKTsKICAgICAgICAgcm9vdExheWVyKCku
cGFpbnRTZWxmQW5kQ2hpbGRyZW4ob3B0aW9ucyk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhaW50
U2VsZkFuZENoaWxkcmVuKG9wdGlvbnMpOwpAQCAtNDcxLDEyICs0NzEsMTIgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aEludGVybWVkaWF0ZVN1cmZhY2UoVGV4dHVyZU1hcHBl
clBhaW50T3B0aW9ucyYKIHsKICAgICBhdXRvIHN1cmZhY2UgPSBvcHRpb25zLnRleHR1cmVNYXBw
ZXIuYWNxdWlyZVRleHR1cmVGcm9tUG9vbChyZWN0LnNpemUoKSwgQml0bWFwVGV4dHVyZTo6U3Vw
cG9ydHNBbHBoYSk7CiAgICAgewotICAgICAgICBTZXRGb3JTY29wZTxSZWZQdHI8Qml0bWFwVGV4
dHVyZT4+IHNjb3BlZFN1cmZhY2Uob3B0aW9ucy5zdXJmYWNlLCBzdXJmYWNlKTsKLSAgICAgICAg
U2V0Rm9yU2NvcGU8SW50U2l6ZT4gc2NvcGVkT2Zmc2V0KG9wdGlvbnMub2Zmc2V0LCAtdG9JbnRT
aXplKHJlY3QubG9jYXRpb24oKSkpOwotICAgICAgICBTZXRGb3JTY29wZTxmbG9hdD4gc2NvcGVk
T3BhY2l0eShvcHRpb25zLm9wYWNpdHksIDEpOworICAgICAgICBTZXRGb3JTY29wZSBzY29wZWRT
dXJmYWNlKG9wdGlvbnMuc3VyZmFjZSwgc3VyZmFjZSk7CisgICAgICAgIFNldEZvclNjb3BlIHNj
b3BlZE9mZnNldChvcHRpb25zLm9mZnNldCwgLXRvSW50U2l6ZShyZWN0LmxvY2F0aW9uKCkpKTsK
KyAgICAgICAgU2V0Rm9yU2NvcGUgc2NvcGVkT3BhY2l0eShvcHRpb25zLm9wYWNpdHksIDEpOwog
ICAgICAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIpIHsKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBTZXRGb3JTY29wZTxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gc2NvcGVkVHJhbnNm
b3JtKG9wdGlvbnMudHJhbnNmb3JtLCBvcHRpb25zLnRyYW5zZm9ybSk7CisgICAgICAgICAgICAg
ICAgU2V0Rm9yU2NvcGUgc2NvcGVkVHJhbnNmb3JtKG9wdGlvbnMudHJhbnNmb3JtLCBvcHRpb25z
LnRyYW5zZm9ybSk7CiAgICAgICAgICAgICAgICAgb3B0aW9ucy50cmFuc2Zvcm0ubXVsdGlwbHko
cmVwbGljYVRyYW5zZm9ybSgpKTsKICAgICAgICAgICAgICAgICBwYWludEludG9TdXJmYWNlKG9w
dGlvbnMpOwogICAgICAgICAgICAgfQpAQCAtNDk2LDcgKzQ5Niw3IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckxheWVyOjpwYWludFJlY3Vyc2l2ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRp
b25zKQogICAgIGlmICghaXNWaXNpYmxlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNldEZv
clNjb3BlPGZsb2F0PiBzY29wZWRPcGFjaXR5KG9wdGlvbnMub3BhY2l0eSwgb3B0aW9ucy5vcGFj
aXR5ICogbV9jdXJyZW50T3BhY2l0eSk7CisgICAgU2V0Rm9yU2NvcGUgc2NvcGVkT3BhY2l0eShv
cHRpb25zLm9wYWNpdHksIG9wdGlvbnMub3BhY2l0eSAqIG1fY3VycmVudE9wYWNpdHkpOwogCiAg
ICAgaWYgKCFzaG91bGRCbGVuZCgpKSB7CiAgICAgICAgIHBhaW50U2VsZkFuZENoaWxkcmVuV2l0
aFJlcGxpY2Eob3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDA5MmZjNzUzOWM1NDhmY2Q0YWFjNzlmMzU2
OTU5MGYzNzAwYWNkNTguLjBkNjUwNjQzYWRiNmQ0N2EwZDFiZTVmZDNiNDMzNGRiZDlhYzE5MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMoKQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7CiAjaWZuZGVmIE5ERUJVRwotICAgIFNldEZvclNj
b3BlPGJvb2w+IHVwZGF0ZU1vZGVQcm90ZWN0b3IobV9pc1B1cmdpbmcsIHRydWUpOworICAgIFNl
dEZvclNjb3BlIHVwZGF0ZU1vZGVQcm90ZWN0b3IobV9pc1B1cmdpbmcsIHRydWUpOwogI2VuZGlm
CiAgICAgaWYgKG1fbmljb3NpYS5iYWNraW5nU3RvcmUpIHsKICAgICAgICAgYXV0byYgbGF5ZXJT
dGF0ZSA9IGRvd25jYXN0PE5pY29zaWE6OkJhY2tpbmdTdG9yZVRleHR1cmVNYXBwZXJJbXBsPiht
X25pY29zaWEuYmFja2luZ1N0b3JlLT5pbXBsKCkpLmxheWVyU3RhdGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyLm1tCmluZGV4IGQ3YTk5Zjc0YTNj
MGMxZjE5NDI3YzNlYTUzZDRhZGY2OWMwOTc5YTAuLjFjOTg4NWE5ODk1NmRiZGJjN2ZmYTJlMzc4
NjgyMjA2NmViMmQ0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9M
ZWdhY3lUaWxlTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2Fj
eVRpbGVMYXllci5tbQpAQCAtOTcsNyArOTcsNyBAQCAtICh2b2lkKWxheW91dFN1YmxheWVycwog
CiAtICh2b2lkKXJlbmRlckluQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKIHsKLSAgICBT
ZXRGb3JTY29wZTxCT09MPiBjaGFuZ2UoX2lzUmVuZGVyaW5nSW5Db250ZXh0LCBZRVMpOworICAg
IFNldEZvclNjb3BlIGNoYW5nZShfaXNSZW5kZXJpbmdJbkNvbnRleHQsIFlFUyk7CiAgICAgW3N1
cGVyIHJlbmRlckluQ29udGV4dDpjb250ZXh0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDJlNTA3Nzk2ODViNzFmZWIy
MmJiYjczYzdlNWY1MDI1ZDQ5NTUxYjEuLmVjOWIyYzkwMTZkOWQxYjcxNGY1N2U5YTI3M2I3ZWVm
ZjY3ZTYwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMubW0KQEAgLTU1Miw3ICs1NTIsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpw
YWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjbwog
ICAgIGlmIChzY3JvbGxiYXIuc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGlzQ3VycmVudGx5RHJh
d2luZ0ludG9MYXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllciwgY29udGV4dC5pc0NB
TGF5ZXJDb250ZXh0KCkpOworICAgIFNldEZvclNjb3BlIGlzQ3VycmVudGx5RHJhd2luZ0ludG9M
YXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllciwgY29udGV4dC5pc0NBTGF5ZXJDb250
ZXh0KCkpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRl
eHQpOwogICAgIGNvbnRleHQuY2xpcChkYW1hZ2VSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDkyMDE1YzBmMmIwMjljZWQ2NDBl
ZWMzMzMyMDFmNjQwMDFiMTQ0MDcuLjVkMWRhNmFmOTVmYzIyYTI1MzViMzQ4ZWFlNjhhZTQyN2I2
MzZjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcApAQCAtMjI0MSw3ICsyMjQxLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6YXBwbHlT
dHJldGNoQWxpZ25tZW50VG9DaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbmkKICAgICAg
ICAgaWYgKGNoaWxkTmVlZHNSZWxheW91dCB8fCAhY2hpbGQuaGFzT3ZlcnJpZGluZ0xvZ2ljYWxI
ZWlnaHQoKSkKICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0KGRl
c2lyZWRMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgaWYgKGNoaWxkTmVlZHNSZWxheW91dCkgewot
ICAgICAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcmVzZXRDaGlsZExvZ2ljYWxIZWlnaHQobV9z
aG91bGRSZXNldENoaWxkTG9naWNhbEhlaWdodEJlZm9yZUxheW91dCwgdHJ1ZSk7CisgICAgICAg
ICAgICBTZXRGb3JTY29wZSByZXNldENoaWxkTG9naWNhbEhlaWdodChtX3Nob3VsZFJlc2V0Q2hp
bGRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0LCB0cnVlKTsKICAgICAgICAgICAgIC8vIFdlIGNh
Y2hlIHRoZSBjaGlsZCdzIGludHJpbnNpYyBjb250ZW50IGxvZ2ljYWwgaGVpZ2h0IHRvIGF2b2lk
IGl0IGJlaW5nCiAgICAgICAgICAgICAvLyByZXNldCB0byB0aGUgc3RyZXRjaGVkIGhlaWdodC4K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGZyYWdpbGUuIFJlbmRlckJveGVzIHNob3Vs
ZCBiZSBzbWFydCBlbm91Z2ggdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R2VvbWV0cnlNYXAuY3BwCmluZGV4IDM3ZjYyNGIyZWZhZjk2ZjJjY2U2MjFmMmI1MzI5YjMwYWQ2
NWE1YzIuLjA1NTVkYWQzYzQzMTA2ODNlMGRlMjAwN2E5YTEzMTI2ZjFmZDliM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcApAQCAtMTM1LDcg
KzEzNSw3IEBAIEZsb2F0UXVhZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIoY29u
c3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJMCiB2b2lkIFJlbmRlckdlb21ldHJ5TWFw
OjpwdXNoTWFwcGluZ3NUb0FuY2VzdG9yKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yUmVuZGVyZXIpCiB7CiAgICAgLy8g
V2UgbmVlZCB0byBwdXNoIG1hcHBpbmdzIGluIHJldmVyc2Ugb3JkZXIgaGVyZSwgc28gZG8gaW5z
ZXJ0aW9ucyByYXRoZXIgdGhhbiBhcHBlbmRzLgotICAgIFNldEZvclNjb3BlPHNpemVfdD4gcG9z
aXRpb25DaGFuZ2UobV9pbnNlcnRpb25Qb3NpdGlvbiwgbV9tYXBwaW5nLnNpemUoKSk7CisgICAg
U2V0Rm9yU2NvcGUgcG9zaXRpb25DaGFuZ2UobV9pbnNlcnRpb25Qb3NpdGlvbiwgbV9tYXBwaW5n
LnNpemUoKSk7CiAgICAgZG8gewogICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5wdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGFuY2VzdG9yUmVuZGVyZXIsICp0aGlzKTsKICAgICB9IHdoaWxlIChy
ZW5kZXJlciAmJiByZW5kZXJlciAhPSBhbmNlc3RvclJlbmRlcmVyKTsKQEAgLTE3Miw3ICsxNzIs
NyBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NUb0FuY2VzdG9yKGNvbnN0
IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgUgogICAgIGlmICghcmVzcGVjdFRyYW5zZm9ybXMp
CiAgICAgICAgIG5ld0ZsYWdzLnJlbW92ZShVc2VUcmFuc2Zvcm1zKTsKIAotICAgIFNldEZvclNj
b3BlPE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+PiBmbGFnc0NoYW5nZShtX21hcENvb3Jk
aW5hdGVzRmxhZ3MsIG5ld0ZsYWdzKTsKKyAgICBTZXRGb3JTY29wZSBmbGFnc0NoYW5nZShtX21h
cENvb3JkaW5hdGVzRmxhZ3MsIG5ld0ZsYWdzKTsKIAogICAgIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlbmRlcmVyID0gbGF5ZXItPnJlbmRlcmVyKCk7CiAKQEAgLTE4OSw3ICsxODks
NyBAQCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjpwdXNoTWFwcGluZ3NUb0FuY2VzdG9yKGNvbnN0
IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgUgogICAgICAgICAgICAgcHVzaE1hcHBpbmdzVG9B
bmNlc3RvcigmYW5jZXN0b3JMYXllci0+cmVuZGVyZXIoKSwgbnVsbHB0cik7CiAgICAgICAgIH0K
IAotICAgICAgICBTZXRGb3JTY29wZTxzaXplX3Q+IHBvc2l0aW9uQ2hhbmdlKG1faW5zZXJ0aW9u
UG9zaXRpb24sIG1fbWFwcGluZy5zaXplKCkpOworICAgICAgICBTZXRGb3JTY29wZSBwb3NpdGlv
bkNoYW5nZShtX2luc2VydGlvblBvc2l0aW9uLCBtX21hcHBpbmcuc2l6ZSgpKTsKICAgICAgICAg
cHVzaCgmcmVuZGVyZXIsIGxheWVyT2Zmc2V0LCAvKmFjY3VtdWxhdGluZ1RyYW5zZm9ybSovIHRy
dWUsIC8qaXNOb25Vbmlmb3JtKi8gZmFsc2UsIC8qaXNGaXhlZFBvc2l0aW9uKi8gZmFsc2UsIC8q
aGFzVHJhbnNmb3JtKi8gZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRleCBlMmI0YjA5ZjU3ZGViM2E0NTk4
ZjNiZDBjZTY3MzRiMDk3NWIxYzUyLi4zMmY0NWFjZWQ5YjNmNDk4NjgxYzY5ZDhiM2E2ZmMwNTBj
MGExYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAt
Njc3LDcgKzY3Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0UmVjdD4gUmVuZGVySW5saW5lOjpj
b21wdXRlVmlzaWJsZVJlY3RJbkNvbnRhaW5lcihjb25zdCBMYXlvCiAgICAgYWRqdXN0ZWRSZWN0
LnNldExvY2F0aW9uKHRvcExlZnQpOwogICAgIGlmIChsb2NhbENvbnRhaW5lci0+aGFzTm9uVmlz
aWJsZU92ZXJmbG93KCkpIHsKICAgICAgICAgLy8gRklYTUU6IFJlc3BlY3QgdGhlIHZhbHVlIG9m
IGNvbnRleHQub3B0aW9ucy4KLSAgICAgICAgU2V0Rm9yU2NvcGU8T3B0aW9uU2V0PFZpc2libGVS
ZWN0Q29udGV4dE9wdGlvbj4+IGNoYW5nZShjb250ZXh0Lm9wdGlvbnMsIGNvbnRleHQub3B0aW9u
cyB8IFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Ny
b2xscyk7CisgICAgICAgIFNldEZvclNjb3BlIGNoYW5nZShjb250ZXh0Lm9wdGlvbnMsIGNvbnRl
eHQub3B0aW9ucyB8IFZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6QXBwbHlDb21wb3NpdGVkQ29u
dGFpbmVyU2Nyb2xscyk7CiAgICAgICAgIGJvb2wgaXNFbXB0eSA9ICFkb3duY2FzdDxSZW5kZXJC
b3g+KCpsb2NhbENvbnRhaW5lcikuYXBwbHlDYWNoZWRDbGlwQW5kU2Nyb2xsUG9zaXRpb24oYWRq
dXN0ZWRSZWN0LCBjb250YWluZXIsIGNvbnRleHQpOwogICAgICAgICBpZiAoaXNFbXB0eSkgewog
ICAgICAgICAgICAgaWYgKGNvbnRleHQub3B0aW9ucy5jb250YWlucyhWaXNpYmxlUmVjdENvbnRl
eHRPcHRpb246OlVzZUVkZ2VJbmNsdXNpdmVJbnRlcnNlY3Rpb24pKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzMjdhNTQ4
Y2ZiYTBjODY1NGMyZTYzNTQ3NmQ5YmJhYjRkYmViYWZlLi40MzdkYjcwYjA3MDY1NDMwMDQ3ZmI1
YzZlNDY0YWE3ZjFhM2U3ZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9v
dCkKIAogICAgIEFTU0VSVCghbV9mbHVzaGluZ0xheWVycyk7CiAgICAgewotICAgICAgICBTZXRG
b3JTY29wZTxib29sPiBmbHVzaGluZ0xheWVyc1Njb3BlKG1fZmx1c2hpbmdMYXllcnMsIHRydWUp
OworICAgICAgICBTZXRGb3JTY29wZSBmbHVzaGluZ0xheWVyc1Njb3BlKG1fZmx1c2hpbmdMYXll
cnMsIHRydWUpOwogCiAgICAgICAgIGlmIChhdXRvKiByb290TGF5ZXIgPSByb290R3JhcGhpY3NM
YXllcigpKSB7CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElO
R19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggNzFlYjhmZTIyZDEzM2ZiZjdmY2ZkZThlYWJiYzJl
NTdlYzdiY2M5OC4uMGUwYjk4NjY2ZWRhZmFiZTZiZTM5OTc2MDBiYzNjNDBmODI0MTk1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhLmNwcApAQCAtMTE3OCw3ICsxMTc4LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKQogCiAgICAgICAgIGlmIChyZW5k
ZXJlci5zdHlsZSgpLm92ZXJmbG93WCgpID09IE92ZXJmbG93OjpBdXRvIHx8IHJlbmRlcmVyLnN0
eWxlKCkub3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OkF1dG8pIHsKICAgICAgICAgICAgIGlmICgh
bV9pbk92ZXJmbG93UmVsYXlvdXQpIHsKLSAgICAgICAgICAgICAgICBTZXRGb3JTY29wZTxib29s
PiBpbk92ZXJmbG93UmVsYXlvdXRTY29wZShtX2luT3ZlcmZsb3dSZWxheW91dCwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgU2V0Rm9yU2NvcGUgaW5PdmVyZmxvd1JlbGF5b3V0U2NvcGUobV9pbk92
ZXJmbG93UmVsYXlvdXQsIHRydWUpOwogICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldE5lZWRz
TGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICAgICAgaWYgKGlzPFJlbmRlckJsb2Nr
PihyZW5kZXJlcikpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byYgYmxvY2sgPSBkb3duY2Fz
dDxSZW5kZXJCbG9jaz4ocmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKaW5kZXggMjBiZjM4Y2IzZDcxYzRlYzVhNzJhMjFhYmNhMjk1YmMxYmMyZmM3Ny4u
N2UzMTgxOWVhNGU0ODE0NjI3Y2Q5Njc5MTkwMTY2MmRkYjEzZTRiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC01OTcsNyArNTk3LDcgQEAgdm9pZCBSZW5k
ZXJUYWJsZTo6bGF5b3V0KCkKICAgICBpZiAoc2VjdGlvbk1vdmVkICYmIHBhZ2luYXRlZCkgewog
ICAgICAgICAvLyBGSVhNRTogVGFibGUgbGF5b3V0IHNob3VsZCBhbHdheXMgc3RhYmlsaXplIGV2
ZW4gd2hlbiBzZWN0aW9uIG1vdmVzIChzZWUgd2Via2l0Lm9yZy9iLzE3NDQxMikuCiAgICAgICAg
IGlmIChtX3JlY3Vyc2l2ZVNlY3Rpb25Nb3ZlZFdpdGhQYWdpbmF0aW9uTGV2ZWwgPCBzZWN0aW9u
Q291bnQpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiByZWN1cnNpdmVTZWN0
aW9uTW92ZWRXaXRoUGFnaW5hdGlvbkxldmVsKG1fcmVjdXJzaXZlU2VjdGlvbk1vdmVkV2l0aFBh
Z2luYXRpb25MZXZlbCwgbV9yZWN1cnNpdmVTZWN0aW9uTW92ZWRXaXRoUGFnaW5hdGlvbkxldmVs
ICsgMSk7CisgICAgICAgICAgICBTZXRGb3JTY29wZSByZWN1cnNpdmVTZWN0aW9uTW92ZWRXaXRo
UGFnaW5hdGlvbkxldmVsKG1fcmVjdXJzaXZlU2VjdGlvbk1vdmVkV2l0aFBhZ2luYXRpb25MZXZl
bCwgbV9yZWN1cnNpdmVTZWN0aW9uTW92ZWRXaXRoUGFnaW5hdGlvbkxldmVsICsgMSk7CiAgICAg
ICAgICAgICBtYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKTsKICAgICAgICAgICAg
IGxheW91dElmTmVlZGVkKCk7CiAgICAgICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggNWI1NmExNWEy
YjhmODQ3YzFjMGJmZThjYzYzZWIxMjIzY2I0YzczNC4uNGUwZjlmYTVhYjgzYzJhNWZjMWVlNTYy
N2Y4MjNjZWNkYjc3NjFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9MZWdhY3lSZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgTGF5b3V0VW5p
dCBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6
b3B0aW9uYWw8TGF5b3UKIAogdm9pZCBMZWdhY3lSZW5kZXJTVkdSb290OjpsYXlvdXQoKQogewot
ICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2luTGF5b3V0LCB0cnVlKTsKKyAgICBTZXRG
b3JTY29wZSBjaGFuZ2UobV9pbkxheW91dCwgdHJ1ZSk7CiAgICAgU3RhY2tTdGF0czo6TGF5b3V0
Q2hlY2tQb2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyLmNwcAppbmRleCAzZjE3ODk2NGZhOGNkOTI5MTNmOTA5NjQyOTgx
YTA0ZTIyODUwN2YwLi44MDI5YTU1YjNkZTgyNTJjYzE2NTg2ZTMwZGVhM2I5YWY0NGVhM2RmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgUmVuZGVyU1ZH
UmVzb3VyY2VDb250YWluZXI6Om1hcmtBbGxDbGllbnRzRm9ySW52YWxpZGF0aW9uKEludmFsaWRh
dGlvbk1vZGUKICAgICBpZiAoKG1fY2xpZW50cy5pc0VtcHR5KCkgJiYgbV9jbGllbnRMYXllcnMu
aXNFbXB0eSgpKSB8fCBtX2lzSW52YWxpZGF0aW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBT
ZXRGb3JTY29wZTxib29sPiBpc0ludmFsaWRhdGluZyhtX2lzSW52YWxpZGF0aW5nLCB0cnVlKTsK
KyAgICBTZXRGb3JTY29wZSBpc0ludmFsaWRhdGluZyhtX2lzSW52YWxpZGF0aW5nLCB0cnVlKTsK
IAogICAgIGJvb2wgbmVlZHNMYXlvdXQgPSBtb2RlID09IExheW91dEFuZEJvdW5kYXJpZXNJbnZh
bGlkYXRpb247CiAgICAgYm9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0gbW9kZSAhPSBQYXJlbnRP
bmx5SW52YWxpZGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAKaW5kZXggZDRmMjkxNjFiZjRiNDdiZDA3NDUxOTE2MTgzNTY2ZmQxYWJkMDhl
Ny4uZDQwOTE4NjUzNjYxMjNlMWVmZjliNzcxZDg4NTBmODQ3YTVhN2ZiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC0xNTgsNyArMTU4
LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4KIAogdm9pZCBSZW5kZXJTVkdSb290OjpsYXlv
dXQoKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZShtX2luTGF5b3V0LCB0cnVlKTsK
KyAgICBTZXRGb3JTY29wZSBjaGFuZ2UobV9pbkxheW91dCwgdHJ1ZSk7CiAgICAgU3RhY2tTdGF0
czo6TGF5b3V0Q2hlY2tQb2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIEFTU0VSVChuZWVkc0xh
eW91dCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKaW5kZXggNTM0NjIz
Njg3ODViMDAyZmIxMjc2MjFhY2M3ZWMzOGU2ZGY3ZjlmNi4uMmI1ODM1ZGM0NmJmNmVmOTY1M2Fm
ZmRmMDRjZmUxYjNmMTNjNWY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3Bw
CkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBTdG9yYWdlTWFwOjpzZXRJdGVtKGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBTdHJpbmcmIG9sZFZhbHUKIAogdm9pZCBTdG9y
YWdlTWFwOjpzZXRJdGVtSWdub3JpbmdRdW90YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKIHsKLSAgICBTZXRGb3JTY29wZTx1bnNpZ25lZD4gcXVvdGFTaXplQ2hhbmdl
KG1fcXVvdGFTaXplLCBub1F1b3RhKTsKKyAgICBTZXRGb3JTY29wZSBxdW90YVNpemVDaGFuZ2Uo
bV9xdW90YVNpemUsIG5vUXVvdGEpOwogCiAgICAgU3RyaW5nIG9sZFZhbHVlOwogICAgIGJvb2wg
cXVvdGFFeGNlcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBj
Y2JiNDliNDY3Njc2ZGU3Y2IzY2Y5YzEyYzdkMDkzMGQ3ZjhjOTA0Li5lYmU0Mjg2ODhjZTExNzA2
NDhlMTcyZWU1MjhmZWU0MWYxNTI1OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ci5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEJ1aWxkZXI6OmFwcGx5Q3VzdG9tUHJvcGVy
dHkoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fc3RhdGUu
bV9pblByb2dyZXNzUHJvcGVydGllc0N1c3RvbS5jb250YWlucyhuYW1lKSkgewotICAgICAgICAg
ICAgU2V0Rm9yU2NvcGU8U2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrPiBzY29wZWRMaW5r
TWF0Y2hNdXRhdGlvbihtX3N0YXRlLm1fbGlua01hdGNoLCBpbmRleCk7CisgICAgICAgICAgICBT
ZXRGb3JTY29wZSBzY29wZWRMaW5rTWF0Y2hNdXRhdGlvbihtX3N0YXRlLm1fbGlua01hdGNoLCBp
bmRleCk7CiAgICAgICAgICAgICBhcHBseVByb3BlcnR5KENTU1Byb3BlcnR5Q3VzdG9tLCB2YWx1
ZVRvQXBwbHkuZ2V0KCksIGluZGV4KTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzOSw3ICsyMzks
NyBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyOjphcHBseUNhc2NhZGVQcm9wZXJ0eShjb25zdCBQcm9w
ZXJ0eUNhc2NhZGU6OlByb3BlcnR5JiBwcm9wZQogCiAgICAgYXV0byBhcHBseVdpdGhMaW5rTWF0
Y2ggPSBbJl0oU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrIGxpbmtNYXRjaCkgewogICAg
ICAgICBpZiAocHJvcGVydHkuY3NzVmFsdWVbbGlua01hdGNoXSkgewotICAgICAgICAgICAgU2V0
Rm9yU2NvcGU8U2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrPiBzY29wZWRMaW5rTWF0Y2hN
dXRhdGlvbihtX3N0YXRlLm1fbGlua01hdGNoLCBsaW5rTWF0Y2gpOworICAgICAgICAgICAgU2V0
Rm9yU2NvcGUgc2NvcGVkTGlua01hdGNoTXV0YXRpb24obV9zdGF0ZS5tX2xpbmtNYXRjaCwgbGlu
a01hdGNoKTsKICAgICAgICAgICAgIGFwcGx5UHJvcGVydHkocHJvcGVydHkuaWQsICpwcm9wZXJ0
eS5jc3NWYWx1ZVtsaW5rTWF0Y2hdLCBsaW5rTWF0Y2gpOwogICAgICAgICB9CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKaW5kZXggNjM5ODBkNzIwZjA1
YTAxM2MzYjNhNTY4MTdiMWY1MjljYzFlODljYi4uZWIwNmJhODdmOTg1YTNlN2EyZjMxNmM0ZjZl
ZTc2MmU0ODQzN2JmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZh
bGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5j
cHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIEludmFsaWRhdG9yOjphZGRUb01hdGNoRWxlbWVu
dFJ1bGVTZXRzKEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyYgbQogCiB2b2lkIElu
dmFsaWRhdG9yOjppbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVTZXRzKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IE1hdGNoRWxlbWVudFJ1bGVTZXRzJiBtYXRjaEVsZW1lbnRSdWxlU2V0cykK
IHsKLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0ludmFsaWRhdGluZyhlbGVtZW50LnN0eWxlUmVz
b2x2ZXIoKS5ydWxlU2V0cygpLmlzSW52YWxpZGF0aW5nU3R5bGVXaXRoUnVsZVNldHMoKSwgdHJ1
ZSk7CisgICAgU2V0Rm9yU2NvcGUgaXNJbnZhbGlkYXRpbmcoZWxlbWVudC5zdHlsZVJlc29sdmVy
KCkucnVsZVNldHMoKS5pc0ludmFsaWRhdGluZ1N0eWxlV2l0aFJ1bGVTZXRzKCksIHRydWUpOwog
CiAgICAgZm9yIChhdXRvJiBtYXRjaEVsZW1lbnRBbmRSdWxlU2V0IDogbWF0Y2hFbGVtZW50UnVs
ZVNldHMpIHsKICAgICAgICAgSW52YWxpZGF0b3IgaW52YWxpZGF0b3IobWF0Y2hFbGVtZW50QW5k
UnVsZVNldC52YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCmluZGV4IDczYTU3
Zjk1NTg4NTI4ZGI2MDFhMWJmNjk4MTg1ZjVlYTQxNDg5ZTkuLmJmNTdmMmIzZTY1NDUxYzE2NDM3
MWYwMGY5MDU3MjE2Y2Q2MTJkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBA
IC05OCw3ICs5OCw3IEBAIHZvaWQgU2NvcGU6OmNyZWF0ZURvY3VtZW50UmVzb2x2ZXIoKQogICAg
IEFTU0VSVCghbV9yZXNvbHZlcik7CiAgICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3QpOwogCi0gICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gaXNVcGRhdGluZ1N0eWxlUmVzb2x2ZXIgeyBtX2lzVXBkYXRpbmdT
dHlsZVJlc29sdmVyLCB0cnVlIH07CisgICAgU2V0Rm9yU2NvcGUgaXNVcGRhdGluZ1N0eWxlUmVz
b2x2ZXIgeyBtX2lzVXBkYXRpbmdTdHlsZVJlc29sdmVyLCB0cnVlIH07CiAKICAgICBtX3Jlc29s
dmVyID0gUmVzb2x2ZXI6OmNyZWF0ZShtX2RvY3VtZW50KTsKIApAQCAtMTE5LDcgKzExOSw3IEBA
IHZvaWQgU2NvcGU6OmNyZWF0ZU9yRmluZFNoYXJlZFNoYWRvd1RyZWVSZXNvbHZlcigpCiAgICAg
YXV0byBrZXkgPSBtYWtlUmVzb2x2ZXJTaGFyaW5nS2V5KCk7CiAKICAgICBhdXRvIHJlc3VsdCA9
IGRvY3VtZW50U2NvcGUoKS5tX3NoYXJlZFNoYWRvd1RyZWVSZXNvbHZlcnMuZW5zdXJlKFdURk1v
dmUoa2V5KSwgWyZdIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNVcGRhdGluZ1N0eWxl
UmVzb2x2ZXIgeyBtX2lzVXBkYXRpbmdTdHlsZVJlc29sdmVyLCB0cnVlIH07CisgICAgICAgIFNl
dEZvclNjb3BlIGlzVXBkYXRpbmdTdHlsZVJlc29sdmVyIHsgbV9pc1VwZGF0aW5nU3R5bGVSZXNv
bHZlciwgdHJ1ZSB9OwogCiAgICAgICAgIG1fcmVzb2x2ZXIgPSBSZXNvbHZlcjo6Y3JlYXRlKG1f
ZG9jdW1lbnQpOwogCkBAIC01NDMsNyArNTQzLDcgQEAgdm9pZCBTY29wZTo6dXBkYXRlUmVzb2x2
ZXIoVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIGFjdGl2ZVN0eWxlU2hlZXRzLCBSZXMK
ICAgICBpZiAobV9zaGFkb3dSb290KQogICAgICAgICB1bnNoYXJlU2hhZG93VHJlZVJlc29sdmVy
QmVmb3JlTXV0YXRpb24oKTsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGlzVXBkYXRpbmdTdHls
ZVJlc29sdmVyIHsgbV9pc1VwZGF0aW5nU3R5bGVSZXNvbHZlciwgdHJ1ZSB9OworICAgIFNldEZv
clNjb3BlIGlzVXBkYXRpbmdTdHlsZVJlc29sdmVyIHsgbV9pc1VwZGF0aW5nU3R5bGVSZXNvbHZl
ciwgdHJ1ZSB9OwogCiAgICAgaWYgKHVwZGF0ZVR5cGUgPT0gUmVzb2x2ZXJVcGRhdGVUeXBlOjpS
ZXNldCkgewogICAgICAgICBtX3Jlc29sdmVyLT5ydWxlU2V0cygpLnJlc2V0QXV0aG9yU3R5bGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCmluZGV4IDM0NzgxZDAzZmQ5YjJm
MjUyODMzZmM2MWI1NjI0NTQ1NThjOGUzNjIuLmNlNzdhMmMwMTExNDMyNzI5YWJlZGQwYzZhNTI0
YzQ4ZGVhYjAxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoQmxlbmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVuZGVyLmNwcApAQCAtMzQ1
LDcgKzM0NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NlZ21lbnRFcXVhbChjb25zdCBTVkdQ
YXRoU2VnVHlwZSYgZnJvbVR5cGUsIGNvbnN0IFNWR1BhdGhTCiAKIGJvb2wgU1ZHUGF0aEJsZW5k
ZXI6OmFkZEFuaW1hdGVkUGF0aCh1bnNpZ25lZCByZXBlYXRDb3VudCkKIHsKLSAgICBTZXRGb3JT
Y29wZTx1bnNpZ25lZD4gY2hhbmdlKG1fYWRkVHlwZXNDb3VudCwgcmVwZWF0Q291bnQpOworICAg
IFNldEZvclNjb3BlIGNoYW5nZShtX2FkZFR5cGVzQ291bnQsIHJlcGVhdENvdW50KTsKICAgICBy
ZXR1cm4gYmxlbmRBbmltYXRlZFBhdGgoMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcAppbmRleCBmZDg1OTYzNzUyMGJiOThiZGVmYmYwMzVmNGE4NmM3ZTBhMGVh
MmRhLi41YTBmZTE4N2M2ZjFiNTY5ODZjNGRkOTA3MTY1MjhkZGQ5ZGIyYjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBX
b3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0dXAoKSBjb25zdAog
CiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4
Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNJblN0YXRpY1Njcmlw
dEV2YWx1YXRpb24obV9pc0luU3RhdGljU2NyaXB0RXZhbHVhdGlvbiwgdHJ1ZSk7CisgICAgU2V0
Rm9yU2NvcGUgaXNJblN0YXRpY1NjcmlwdEV2YWx1YXRpb24obV9pc0luU3RhdGljU2NyaXB0RXZh
bHVhdGlvbiwgdHJ1ZSk7CiAKICAgICAvLyBXZSBhcmUgY3VycmVudGx5IGhvbGRpbmcgb25seSB0
aGUgaW5pdGlhbCBzY3JpcHQgY29kZS4gSWYgdGhlIFdvcmtlclR5cGUgaXMgTW9kdWxlLCB3ZSBz
aG91bGQgZmV0Y2ggdGhlIGVudGlyZSBncmFwaCBiZWZvcmUgZXhlY3V0aW5nIHRoZSByZXN0IG9m
IHRoaXMuCiAgICAgLy8gV2UgaW52b2tlIG1vZHVsZSBsb2FkZXIgYXMgaWYgd2UgYXJlIGV4ZWN1
dGluZyBpbmxpbmUgbW9kdWxlIHNjcmlwdCB0YWcgaW4gRG9jdW1lbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvUXVvdGFNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9RdW90YU1hbmFnZXIuY3BwCmluZGV4
IGE3MWYxNzU4OTg1N2E5OWQzNzRlY2FkOGQyZWU3YTQyMWE3ZmYwNjguLmMwY2QyYjczOWJlOGI4
ZDUzOTIyNWIzMDYzZjgzYjI5MTBmZGQxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9RdW90YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9RdW90YU1hbmFnZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IHZvaWQgUXVvdGFNYW5hZ2VyOjpoYW5kbGVSZXF1ZXN0cygpCiAgICAgaWYgKG1fY3VycmVudFJl
cXVlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGlzSGFuZGxp
bmdSZXF1ZXN0cyhtX2lzSGFuZGxpbmdSZXF1ZXN0cywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUg
aXNIYW5kbGluZ1JlcXVlc3RzKG1faXNIYW5kbGluZ1JlcXVlc3RzLCB0cnVlKTsKIAogICAgIHdo
aWxlICghbV9jdXJyZW50UmVxdWVzdCAmJiAhbV9yZXF1ZXN0cy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgbV9jdXJyZW50UmVxdWVzdCA9IG1fcmVxdWVzdHMudGFrZUZpcnN0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCmlu
ZGV4IDM4ODhhOTEwZTY1ODQ2NWE1NmUxMDVlNDU0Y2QzNGFmODM1MTVlMWYuLjVjNjMxZWRkYzk2
N2NjZThhMTEwYmM0MGQyNzY5ZTJjZjkzNWQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tCkBAIC00NjUsNyArNDY1
LDcgQEAgc3RhdGljIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZUVuY29kZWRPYmplY3Qo
V0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGUKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IFJlZjxBUEk6OkRpY3Rpb25hcnk+IGRpY3Rpb25hcnkgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0
ZSgpOwotICAgIFNldEZvclNjb3BlPEFQSTo6RGljdGlvbmFyeSo+IGRpY3Rpb25hcnlDaGFuZ2Uo
ZW5jb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0aW9uYXJ5LnB0cigpKTsKKyAgICBTZXRG
b3JTY29wZSBkaWN0aW9uYXJ5Q2hhbmdlKGVuY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGlj
dGlvbmFyeS5wdHIoKSk7CiAKICAgICBlbmNvZGVPYmplY3QoZW5jb2Rlciwgb2JqZWN0KTsKIApA
QCAtMTAwMywxMyArMTAwMywxMyBAQCBzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3RlT2Jq
ZWN0RGVjb2RlciAqZGVjb2RlciwgY29uc3QgQVBJOjpEaWN0aW9uYXJ5KiBkaQogICAgIGlmICgh
ZGljdGlvbmFyeSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFNldEZvclNjb3BlPGNvbnN0
IEFQSTo6RGljdGlvbmFyeSo+IGRpY3Rpb25hcnlDaGFuZ2UoZGVjb2Rlci0+X2N1cnJlbnREaWN0
aW9uYXJ5LCBkaWN0aW9uYXJ5KTsKKyAgICBTZXRGb3JTY29wZSBkaWN0aW9uYXJ5Q2hhbmdlKGRl
Y29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlvbmFyeSk7CiAKICAgICAvLyBJZiBubyBh
bGxvd2VkIGNsYXNzZXMgd2VyZSBsaXN0ZWQsIGp1c3QgdXNlIHRoZSBjdXJyZW50bHkgYWxsb3dl
ZCBjbGFzc2VzLgogICAgIGlmIChhbGxvd2VkQ2xhc3Nlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBkZWNvZGVPYmplY3QoZGVjb2Rlcik7CiAKLSAgICBTZXRGb3JTY29wZTxjb25zdCBIYXNo
U2V0PENGVHlwZVJlZj4qPiBhbGxvd2VkQ2xhc3Nlc0NoYW5nZShkZWNvZGVyLT5fYWxsb3dlZENs
YXNzZXMsICZhbGxvd2VkQ2xhc3Nlcyk7CisgICAgU2V0Rm9yU2NvcGUgYWxsb3dlZENsYXNzZXND
aGFuZ2UoZGVjb2Rlci0+X2FsbG93ZWRDbGFzc2VzLCAmYWxsb3dlZENsYXNzZXMpOwogICAgIHJl
dHVybiBkZWNvZGVPYmplY3QoZGVjb2Rlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9kRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL0lucHV0TWV0aG9kRmlsdGVyLmNwcAppbmRleCBlN2JkNmEx
ZTBmZjY3MzA4OWQzNzgyNjRiMGRmYjU4NGU1ZWZlZjg0Li5jNzhjMTgyZDMzY2NhYTFmZTc4ZDVk
MzlmODUyY2FmOGJiMTE0MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9JbnB1dE1ldGhvZEZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvSW5wdXRNZXRob2RGaWx0ZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgSW5w
dXRNZXRob2RGaWx0ZXI6OkZpbHRlclJlc3VsdCBJbnB1dE1ldGhvZEZpbHRlcjo6ZmlsdGVyS2V5
RXZlbnQoUGxhdGZvcm1FdmVudEsKICAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFtX2NvbnRleHQp
CiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBmaWx0ZXJpbmdD
b250ZXh0SXNBY2l2ZShtX2ZpbHRlcmluZ0NvbnRleHQuaXNBY3RpdmUsIHRydWUpOworICAgIFNl
dEZvclNjb3BlIGZpbHRlcmluZ0NvbnRleHRJc0FjaXZlKG1fZmlsdGVyaW5nQ29udGV4dC5pc0Fj
dGl2ZSwgdHJ1ZSk7CiAgICAgbV9maWx0ZXJpbmdDb250ZXh0LnByZWVkaXRDaGFuZ2VkID0gZmFs
c2U7CiAgICAgbV9jb21wb3NpdGlvblJlc3VsdCA9IHsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBjNGVhOGE5N2Qy
NGRjYWUyZmMyOTI1OTFmM2Q0NjI5N2IwMmFhN2VmLi5iYTRiNTQ1NWQ0NjBkY2NhNjRhYjRhMWI3
ZDQxZWZmNmJmNjI0MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgV2ViS2l0V2Vi
Vmlld0NsaWVudDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KFdLV1BFOjpWaWV3JiwgRG93bmxvYWRQ
cm94eSYgZG93CiB2b2lkIFdlYktpdFdlYlZpZXdDbGllbnQ6OmZyYW1lRGlzcGxheWVkKFdLV1BF
OjpWaWV3JikKIHsKICAgICB7Ci0gICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluRnJhbWVEaXNw
bGF5ZWRHdWFyZChtX3dlYlZpZXctPnByaXYtPmluRnJhbWVEaXNwbGF5ZWQsIHRydWUpOworICAg
ICAgICBTZXRGb3JTY29wZSBpbkZyYW1lRGlzcGxheWVkR3VhcmQobV93ZWJWaWV3LT5wcml2LT5p
bkZyYW1lRGlzcGxheWVkLCB0cnVlKTsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFj
ayA6IG1fd2ViVmlldy0+cHJpdi0+ZnJhbWVEaXNwbGF5ZWRDYWxsYmFja3MpIHsKICAgICAgICAg
ICAgIGlmICghbV93ZWJWaWV3LT5wcml2LT5mcmFtZURpc3BsYXllZENhbGxiYWNrc1RvUmVtb3Zl
LmNvbnRhaW5zKGNhbGxiYWNrLmlkKSkKICAgICAgICAgICAgICAgICBjYWxsYmFjay5jYWxsYmFj
ayhtX3dlYlZpZXcsIGNhbGxiYWNrLnVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvSW5wdXRNZXRob2RGaWx0ZXJHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9JbnB1dE1ldGhvZEZpbHRlckd0ay5jcHAKaW5kZXggN2Fi
NGJiNjkzYmI0ZmRkNTk0MmEwZjkxZDRlZjkzM2Q4MDhlOTE0Yi4uYzM2MmMzYjc1YTY0YjE2NDEy
YzU5ZmQ0YTExZjVlYzRkOWU4YzEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9JbnB1dE1ldGhvZEZpbHRlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9JbnB1dE1ldGhvZEZpbHRlckd0ay5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgSW5wdXRNZXRob2RGaWx0ZXI6OkZpbHRlclJlc3VsdCBJbnB1dE1ldGhvZEZpbHRlcjo6Zmls
dGVyS2V5RXZlbnQodW5zaWduZWQgdHlwZSwKICAgICAvLyBJbiBHVEs0IHdlIGNhbid0IGNyZWF0
ZSBHZGtFdmVudHMsIHNvIGhlcmUgd2UgY3JlYXRlIGEgY3VzdG9tIEtleUV2ZW50IHN0cnVjdCB0
aGF0IGlzIHBhc3NlZAogICAgIC8vIGFzIGEgR2RrRXZlbnQgdG8gdGhlIGZpbHRlci4gVGhpcyBp
cyBvbmx5IGNhbGxlZCBmcm9tIHRlc3RzLCBhbmQgdGVzdHMga25vdyB0aGV5IGFyZSByZWNlaXZp
bmcKICAgICAvLyBhIEtleUV2ZW50IHN0cnVjdCBpbnN0ZWFkIG9mIGFuIGFjdHVhbCBHZGtFdmVu
dC4KLSAgICBTZXRGb3JTY29wZTxib29sPiBpc0Zha2VLZXlFdmVudEZvclRlc3RpbmcobV9maWx0
ZXJpbmdDb250ZXh0LmlzRmFrZUtleUV2ZW50Rm9yVGVzdGluZywgdHJ1ZSk7CisgICAgU2V0Rm9y
U2NvcGUgaXNGYWtlS2V5RXZlbnRGb3JUZXN0aW5nKG1fZmlsdGVyaW5nQ29udGV4dC5pc0Zha2VL
ZXlFdmVudEZvclRlc3RpbmcsIHRydWUpOwogICAgIEtleUV2ZW50IGV2ZW50IHsgdHlwZSwga2V5
dmFsLCBtb2RpZmllcnMgfTsKICAgICByZXR1cm4gZmlsdGVyS2V5RXZlbnQocmVpbnRlcnByZXRf
Y2FzdDxHZGtFdmVudCo+KCZldmVudCkpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggYWJiZGM0N2ZlZTQ0ZWI1ZWMwYzkx
ODVmNDMyZWNlM2ZlOTkzYmM4Yi4uNWUyY2MyMTlmYjdkYzg2ZTkzNTgwZDExYWFiMzlmMGNkMGNm
NGE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KQEAgLTI0ODgsNyArMjQ4OCw3IEBAIC0gKHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJ
bmZvOihOU0RpY3Rpb25hcnkgKilrZXlib2FyZEluZm8gYWRqdXN0U2Nyb2xsVmlldzooCiAKICAg
ICBpZiAoYWRqdXN0U2Nyb2xsVmlldykgewogICAgICAgICBDR0Zsb2F0IGJvdHRvbUluc2V0QmVm
b3JlQWRqdXN0bWVudCA9IFtfc2Nyb2xsVmlldyBjb250ZW50SW5zZXRdLmJvdHRvbTsKLSAgICAg
ICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaW5zZXRBZGp1c3RtZW50R3VhcmQoX2N1cnJlbnRseUFkanVz
dGluZ1Njcm9sbFZpZXdJbnNldHNGb3JLZXlib2FyZCwgWUVTKTsKKyAgICAgICAgU2V0Rm9yU2Nv
cGUgaW5zZXRBZGp1c3RtZW50R3VhcmQoX2N1cnJlbnRseUFkanVzdGluZ1Njcm9sbFZpZXdJbnNl
dHNGb3JLZXlib2FyZCwgWUVTKTsKICAgICAgICAgW19zY3JvbGxWaWV3IF9hZGp1c3RGb3JBdXRv
bWF0aWNLZXlib2FyZEluZm86a2V5Ym9hcmRJbmZvIGFuaW1hdGVkOllFUyBsYXN0QWRqdXN0bWVu
dDomX2xhc3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXJdOwogICAgICAgICBDR0Zsb2F0IGJvdHRvbUlu
c2V0QWZ0ZXJBZGp1c3RtZW50ID0gW19zY3JvbGxWaWV3IGNvbnRlbnRJbnNldF0uYm90dG9tOwog
ICAgICAgICAvLyBGSVhNRTogVGhpcyAidG90YWwgYm90dG9tIGNvbnRlbnQgaW5zZXQgYWRqdXN0
bWVudCIgbWVjaGFuaXNtIGhhc24ndCB3b3JrZWQgc2luY2UgaU9TIDExLCBzaW5jZSAtX2FkanVz
dEZvckF1dG9tYXRpY0tleWJvYXJkSW5mbzphbmltYXRlZDpsYXN0QWRqdXN0bWVudDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggODMxMzc5NTNi
ZDk4YjgwOTJiYjVhNWNhMzczYmY3ZWUxNTA1Nzk5MC4uODk5ZjQyYzU3OGU2NzQwMmJlNjc0YjEz
NTYxNGUxM2E2YzhjMzZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KQEAgLTEyNjAsNyArMTI2MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0
ZVRleHRUb3VjaEJhcigpCiAgICAgaWYgKG1faXNVcGRhdGluZ1RleHRUb3VjaEJhcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNVcGRhdGluZ1RleHRGdW5jdGlv
bkJhcihtX2lzVXBkYXRpbmdUZXh0VG91Y2hCYXIsIHRydWUpOworICAgIFNldEZvclNjb3BlIGlz
VXBkYXRpbmdUZXh0RnVuY3Rpb25CYXIobV9pc1VwZGF0aW5nVGV4dFRvdWNoQmFyLCB0cnVlKTsK
IAogICAgIGlmICghbV90ZXh0VG91Y2hCYXJJdGVtQ29udHJvbGxlcikKICAgICAgICAgbV90ZXh0
VG91Y2hCYXJJdGVtQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1RleHRUb3VjaEJhckl0ZW1Db250
cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBsOnRoaXNdKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNw
cAppbmRleCA5NTU2YjEyNjU1MGFmMWY4ZDdlNTFlOGViZDRlYWNkZjkzOGFhNmMzLi44YjIyY2Q5
YjQ2OTZmMTVhZWNkNDNjOWE5NjJjMTU0OWZiNDE1ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCkBA
IC01MDAsNyArNTAwLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpvcGVuKCkKICAgICBp
ZiAoIW1faW5zcGVjdG9yUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gaXNPcGVuaW5nKG1faXNPcGVuaW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBpc09w
ZW5pbmcobV9pc09wZW5pbmcsIHRydWUpOwogCiAgICAgbV9pc1Zpc2libGUgPSB0cnVlOwogICAg
IG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OlNldElzVmlz
aWJsZShtX2lzVmlzaWJsZSkpOwpAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogICAgIGlmIChtX2Nsb3Npbmcp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBTZXRGb3JTY29wZTxib29sPiByZWVudHJhbmN5
UHJvdGVjdG9yKG1fY2xvc2luZywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUgcmVlbnRyYW5jeVBy
b3RlY3RvcihtX2Nsb3NpbmcsIHRydWUpOwogICAgIAogICAgIC8vIE5vdGlmeSBXZWJLaXQgY2xp
ZW50IHdoZW4gYSBsb2NhbCBpbnNwZWN0b3IgY2xvc2VzIHNvIGl0IGNhbiBjbGVhciBfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZSBhbmQgcGVyZm9ybSBvdGhlciBjbGVhbnVwLgogICAgIGlmIChtX2luc3Bl
Y3RlZFBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggMTEyN2U5NzdkMjY2NDVhZTVkNmRjOTFhZjEz
M2QxZjdmY2M0NWJjYy4uNmM1NGIyNWFkYzI5N2I2ZTQxNjUwODk0NDVkNDBmNzEyNjA0OWEwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBT
Y3JvCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUzo6Y29tbWl0
U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc2Ny
b2xsaW5nU3RhdGVOb2RlKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHVwZGF0aW5nQ2hhbmdl
KG1fdXBkYXRpbmdGcm9tU3RhdGVOb2RlLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSB1cGRhdGlu
Z0NoYW5nZShtX3VwZGF0aW5nRnJvbVN0YXRlTm9kZSwgdHJ1ZSk7CiAKICAgICBpZiAoc2Nyb2xs
aW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3Bl
cnR5OjpTY3JvbGxDb250YWluZXJMYXllcikKICAgICAgICAgfHwgc2Nyb2xsaW5nU3RhdGVOb2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpUb3RhbENv
bnRlbnRzU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL19XS1dlYlZp
ZXdQcmludEZvcm1hdHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL19XS1dlYlZpZXdQ
cmludEZvcm1hdHRlci5tbQppbmRleCA1YzE0NzVmZTMxYzJmMTk1YTljYjE0YTZjMjFlYjU4YmY3
MjNmZGQ0Li5iNmE1NTQxZjNkOGVkYmZkMzczOTdjYmUyMzQ0OTc4M2Q5M2NmYjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1t
CkBAIC03Miw3ICs3Miw3IEBAIC0gKFdLV2ViVmlldyAqKV93ZWJWaWV3CiAKIC0gKHZvaWQpX3Nl
dFNuYXBzaG90UGFwZXJSZWN0OihDR1JlY3QpcGFwZXJSZWN0CiB7Ci0gICAgU2V0Rm9yU2NvcGU8
Qk9PTD4gc3VwcHJlc3NQYWdlQ291bnRSZWNhbGMoX3N1cHByZXNzUGFnZUNvdW50UmVjYWxjLCBZ
RVMpOworICAgIFNldEZvclNjb3BlIHN1cHByZXNzUGFnZUNvdW50UmVjYWxjKF9zdXBwcmVzc1Bh
Z2VDb3VudFJlY2FsYywgWUVTKTsKICAgICBVSVByaW50UGFnZVJlbmRlcmVyICpwcmludFBhZ2VS
ZW5kZXJlciA9IHNlbGYucHJpbnRQYWdlUmVuZGVyZXI7CiAgICAgcHJpbnRQYWdlUmVuZGVyZXIu
cGFwZXJSZWN0ID0gcGFwZXJSZWN0OwogICAgIHByaW50UGFnZVJlbmRlcmVyLnByaW50YWJsZVJl
Y3QgPSBwYXBlclJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
Q2xpcGJvYXJkR3RrMy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQ2xpcGJvYXJk
R3RrMy5jcHAKaW5kZXggYzJiZjUxODNiMzBmMTBlOWViNzgxM2NkYWRhMjIzZTkxODljNzQ1OS4u
ZThiOWEwNDdlOGZiZjYzYTc5YjZhMTg4YWY5NzI5YWZlN2Y1ODJmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0NsaXBib2FyZEd0azMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2d0ay9DbGlwYm9hcmRHdGszLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBA
IGVudW0gQ2xpcGJvYXJkVGFyZ2V0VHlwZSB7IE1hcmt1cCwgVGV4dCwgSW1hZ2UsIFVSSUxpc3Qs
IFNtYXJ0UGFzdGUsIEN1c3RvbSB9OwogCiB2b2lkIENsaXBib2FyZDo6d3JpdGUoV2ViQ29yZTo6
U2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbkRhdGEpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8V2ViRnJh
bWVQcm94eSo+IGZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkKG1fZnJhbWVXcml0aW5nVG9DbGlwYm9h
cmQsIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkucHJpbWFyeVNlbGVjdGlvbk93bmVy
KCkpOworICAgIFNldEZvclNjb3BlIGZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkKG1fZnJhbWVXcml0
aW5nVG9DbGlwYm9hcmQsIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkucHJpbWFyeVNl
bGVjdGlvbk93bmVyKCkpOwogCiAgICAgR1JlZlB0cjxHdGtUYXJnZXRMaXN0PiBsaXN0ID0gYWRv
cHRHUmVmKGd0a190YXJnZXRfbGlzdF9uZXcobnVsbHB0ciwgMCkpOwogICAgIGlmIChzZWxlY3Rp
b25EYXRhLmhhc1VSSUxpc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJEYXRlVGltZVBpY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2ViRGF0ZVRpbWVQaWNrZXJHdGsuY3BwCmluZGV4IDQwZWJlZjVkYzA3OGY1OTMzMDU2YTYz
YzQ5OGJkNmY4ZTdmMWQ4NTcuLmNlMGIxMGVjOGQwNzc2MmJiMWIxOWZmMWViMDVmYzE3ZGUxMjlj
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJEYXRlVGltZVBp
Y2tlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGVUaW1l
UGlja2VyR3RrLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgV2ViRGF0ZVRpbWVQaWNrZXJH
dGs6OnNob3dEYXRlVGltZVBpY2tlcihXZWJDb3JlOjpEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJz
CiAKIHZvaWQgV2ViRGF0ZVRpbWVQaWNrZXJHdGs6OnVwZGF0ZShXZWJDb3JlOjpEYXRlVGltZUNo
b29zZXJQYXJhbWV0ZXJzJiYgcGFyYW1zKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IGluVXBk
YXRlKG1faW5VcGRhdGUsIHRydWUpOworICAgIFNldEZvclNjb3BlIGluVXBkYXRlKG1faW5VcGRh
dGUsIHRydWUpOwogICAgIGlmIChwYXJhbXMudHlwZSA9PSAiZGF0ZSIpCiAgICAgICAgIG1fY3Vy
cmVudERhdGUgPSBXZWJDb3JlOjpEYXRlQ29tcG9uZW50czo6ZnJvbVBhcnNpbmdEYXRlKHBhcmFt
cy5jdXJyZW50VmFsdWUpOwogICAgIGVsc2UgaWYgKHBhcmFtcy50eXBlID09ICJkYXRldGltZS1s
b2NhbCIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBhZDY1MzI3N2I0NDI3Y2FlNzE2ZWIyYjUzZDY4NTZl
ZWJhMDcyZjdhLi43YjQ3ODhjOTMzNzkyY2I4OTQwMWZiZjQwNjI0YTViYTljNmMxNGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTE1OTcsNyArMTU5Nyw3IEBAIC0gKEJPT0wpYmVjb21lRmlyc3RSZXNw
b25kZXJGb3JXZWJWaWV3CiAKICAgICBCT09MIGRpZEJlY29tZUZpcnN0UmVzcG9uZGVyOwogICAg
IHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gYmVjb21pbmdGaXJzdFJlc3BvbmRlciB7IF9i
ZWNvbWluZ0ZpcnN0UmVzcG9uZGVyLCBZRVMgfTsKKyAgICAgICAgU2V0Rm9yU2NvcGUgYmVjb21p
bmdGaXJzdFJlc3BvbmRlciB7IF9iZWNvbWluZ0ZpcnN0UmVzcG9uZGVyLCBZRVMgfTsKICAgICAg
ICAgZGlkQmVjb21lRmlyc3RSZXNwb25kZXIgPSBbc3VwZXIgYmVjb21lRmlyc3RSZXNwb25kZXJd
OwogICAgIH0KIApAQCAtMTY3NSw3ICsxNjc1LDcgQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJlc3Bv
bmRlckZvcldlYlZpZXcKICAgICAvLyBGSVhNRTogTWF5YmUgd2Ugc2hvdWxkIGNhbGwgcmVzaWdu
Rmlyc3RSZXNwb25kZXIgb24gdGhlIHN1cGVyY2xhc3MKICAgICAvLyBhbmQgZG8gbm90aGluZyBp
ZiB0aGUgcmV0dXJuIHZhbHVlIGlzIE5PLgogCi0gICAgU2V0Rm9yU2NvcGU8Qk9PTD4gcmVzaWdu
aW5nRmlyc3RSZXNwb25kZXJTY29wZSB7IF9yZXNpZ25pbmdGaXJzdFJlc3BvbmRlciwgWUVTIH07
CisgICAgU2V0Rm9yU2NvcGUgcmVzaWduaW5nRmlyc3RSZXNwb25kZXJTY29wZSB7IF9yZXNpZ25p
bmdGaXJzdFJlc3BvbmRlciwgWUVTIH07CiAKICAgICBbc2VsZiBlbmRFZGl0aW5nQW5kVXBkYXRl
Rm9jdXNBcHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRFZGl0aW5nUmVhc29uUmVzaWduaW5nRmlyc3RS
ZXNwb25kZXJdOwogCkBAIC01MDE3LDcgKzUwMTcsNyBAQCAtICh2b2lkKXVuc3VwcHJlc3NTb2Z0
d2FyZUtleWJvYXJkVXNpbmdMYXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0SWZOZWVkZWQKICAgICBp
ZiAoIXN0ZDo6ZXhjaGFuZ2UoX3Vuc3VwcHJlc3NTb2Z0d2FyZUtleWJvYXJkQWZ0ZXJOZXh0QXV0
b2NvcnJlY3Rpb25Db250ZXh0VXBkYXRlLCBOTykpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNl
dEZvclNjb3BlPEJPT0w+IHVuc3VwcHJlc3NTb2Z0d2FyZUtleWJvYXJkU2NvcGUgeyBfaXNVbnN1
cHByZXNzaW5nU29mdHdhcmVLZXlib2FyZFVzaW5nTGFzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCwg
WUVTIH07CisgICAgU2V0Rm9yU2NvcGUgdW5zdXBwcmVzc1NvZnR3YXJlS2V5Ym9hcmRTY29wZSB7
IF9pc1Vuc3VwcHJlc3NpbmdTb2Z0d2FyZUtleWJvYXJkVXNpbmdMYXN0QXV0b2NvcnJlY3Rpb25D
b250ZXh0LCBZRVMgfTsKICAgICBzZWxmLl9zdXBwcmVzc1NvZnR3YXJlS2V5Ym9hcmQgPSBOTzsK
IH0KIApAQCAtNjYyNyw4ICs2NjI3LDggQEAgc3RhdGljIFJldGFpblB0cjxOU09iamVjdCA8V0tG
b3JtUGVyaXBoZXJhbD4+IGNyZWF0ZUlucHV0UGVyaXBoZXJhbFdpdGhWaWV3KFdlYksKIAogLSAo
dm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0
aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wpYmx1clByZXZpb3VzTm9kZSBhY3Rpdml0eVN0YXRl
Q2hhbmdlczooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KWFjdGl2aXR5
U3RhdGVDaGFuZ2VzIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2Vy
T2JqZWN0CiB7Ci0gICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaXNDaGFuZ2luZ0ZvY3VzRm9yU2NvcGUg
eyBfaXNDaGFuZ2luZ0ZvY3VzLCBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCB9OwotICAgIFNldEZv
clNjb3BlPEJPT0w+IGlzRm9jdXNpbmdFbGVtZW50V2l0aEtleWJvYXJkRm9yU2NvcGUgeyBfaXNG
b2N1c2luZ0VsZW1lbnRXaXRoS2V5Ym9hcmQsIFtzZWxmIF9zaG91bGRTaG93S2V5Ym9hcmRGb3JF
bGVtZW50OmluZm9ybWF0aW9uXSB9OworICAgIFNldEZvclNjb3BlIGlzQ2hhbmdpbmdGb2N1c0Zv
clNjb3BlIHsgX2lzQ2hhbmdpbmdGb2N1cywgc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgfTsKKyAg
ICBTZXRGb3JTY29wZSBpc0ZvY3VzaW5nRWxlbWVudFdpdGhLZXlib2FyZEZvclNjb3BlIHsgX2lz
Rm9jdXNpbmdFbGVtZW50V2l0aEtleWJvYXJkLCBbc2VsZiBfc2hvdWxkU2hvd0tleWJvYXJkRm9y
RWxlbWVudDppbmZvcm1hdGlvbl0gfTsKIAogICAgIGF1dG8gcnVuTW9kYWxKYXZhU2NyaXB0RGlh
bG9nQ2FsbGJhY2tJZk5lZWRlZCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKICAgICAgICAgaWYgKGF1
dG8gY2FsbGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKF9wZW5kaW5nUnVuTW9kYWxKYXZhU2NyaXB0RGlh
bG9nQ2FsbGJhY2ssIHsgfSkpCkBAIC02ODA3LDcgKzY4MDcsNyBAQCAtICh2b2lkKV9lbGVtZW50
RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3Jt
YXRpb24gdQogCiAtICh2b2lkKV9lbGVtZW50RGlkQmx1cgogewotICAgIFNldEZvclNjb3BlPEJP
T0w+IGlzQmx1cnJpbmdGb2N1c2VkRWxlbWVudEZvclNjb3BlIHsgX2lzQmx1cnJpbmdGb2N1c2Vk
RWxlbWVudCwgWUVTIH07CisgICAgU2V0Rm9yU2NvcGUgaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50
Rm9yU2NvcGUgeyBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50LCBZRVMgfTsKIAogICAgIFtzZWxm
IF9lbmRFZGl0aW5nXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRGF0ZVRpbWVJbnB1dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbQppbmRleCBkYjBlODg2NzYxODFm
MTRlNThhMTU0ZWFjNGY5ODQyM2NmNzdhNjEyLi4yZGM2NTVjOWQwYTA1NTNjOWRlNjcwNzkyOGUy
NzI3NDk0NDBlZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbQpAQCAtMzMzLDcgKzMzMyw3IEBA
IC0gKHZvaWQpaGFuZGxlRGF0ZVBpY2tlclByZXNlbnRhdGlvbkRpc21pc3NhbAogICAgIGlmIChf
aXNEaXNtaXNzaW5nRGF0ZVBpY2tlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2Nv
cGU8Qk9PTD4gaXNEaXNtaXNzaW5nRGF0ZVBpY2tlciB7IF9pc0Rpc21pc3NpbmdEYXRlUGlja2Vy
LCBZRVMgfTsKKyAgICBTZXRGb3JTY29wZSBpc0Rpc21pc3NpbmdEYXRlUGlja2VyIHsgX2lzRGlz
bWlzc2luZ0RhdGVQaWNrZXIsIFlFUyB9OwogICAgIFtfdmlldyBhY2Nlc3NvcnlEb25lXTsKIH0K
IApAQCAtMzQxLDcgKzM0MSw3IEBAIC0gKHZvaWQpcmVtb3ZlRGF0ZVBpY2tlclByZXNlbnRhdGlv
bgogewogICAgIGlmIChfZGF0ZVBpY2tlclByZXNlbnRhdGlvbikgewogICAgICAgICBpZiAoIV9p
c0Rpc21pc3NpbmdEYXRlUGlja2VyKSB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxCT09MPiBp
c0Rpc21pc3NpbmdEYXRlUGlja2VyIHsgX2lzRGlzbWlzc2luZ0RhdGVQaWNrZXIsIFlFUyB9Owor
ICAgICAgICAgICAgU2V0Rm9yU2NvcGUgaXNEaXNtaXNzaW5nRGF0ZVBpY2tlciB7IF9pc0Rpc21p
c3NpbmdEYXRlUGlja2VyLCBZRVMgfTsKICAgICAgICAgICAgIFtfZGF0ZVBpY2tlclByZXNlbnRh
dGlvbiBkaXNtaXNzUHJlc2VudGF0aW9uQW5pbWF0ZWQ6Tk9dOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IDlkZjRjNzBhNDMx
OTJiOTdiZjFhM2ZiNDJmYTljMzE3MzQ0ZmMwYTUuLmYyMWE0NzIwNzM1MmNhN2RjYjJlYmFhOGFk
ZDc3YThmOGE0N2Q3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcApAQCAtOTQsNyArOTQsNyBAQCBib29sIFBsdWdpbjo6aW5pdGlhbGl6ZShQbHVnaW5D
b250cm9sbGVyJiBwbHVnaW5Db250cm9sbGVyLCBjb25zdCBQYXJhbWV0ZXJzJiBwYQogdm9pZCBQ
bHVnaW46OmRlc3Ryb3lQbHVnaW4oKQogewogICAgIEFTU0VSVCghbV9pc0JlaW5nRGVzdHJveWVk
KTsKLSAgICBTZXRGb3JTY29wZTxib29sPiBzY29wZSB7IG1faXNCZWluZ0Rlc3Ryb3llZCwgdHJ1
ZSB9OworICAgIFNldEZvclNjb3BlIHNjb3BlIHsgbV9pc0JlaW5nRGVzdHJveWVkLCB0cnVlIH07
CiAKICAgICBkZXN0cm95KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
bXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDUxNTNhNzlmMmU5ZTRiYmU3OWI0ZjQyNjhk
NGM1ZmE0OTBjZGYwNmQuLjVmYmJkNTk2N2M5NThhYmE0NWM1MDU0Yzk0MzQzMjc0Zjc4MTVkYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6
c2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogCiBib29sIENvbXBvc2l0aW5n
Q29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyhPcHRpb25TZXQ8RmluYWxpemVS
ZW5kZXJpbmdVcGRhdGVGbGFncz4gZmxhZ3MpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcHJv
dGVjdG9yKG1faXNGbHVzaGluZ0xheWVyQ2hhbmdlcywgdHJ1ZSk7CisgICAgU2V0Rm9yU2NvcGUg
cHJvdGVjdG9yKG1faXNGbHVzaGluZ0xheWVyQ2hhbmdlcywgdHJ1ZSk7CiAKICAgICBpbml0aWFs
aXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwogCkBAIC0yOTcsNyArMjk3LDcgQEAg
dm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpyZW5kZXJOZXh0RnJhbWUoKQogCiB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7Ci0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gcHVyZ2luZ1RvZ2dsZShtX2lzUHVyZ2luZywgdHJ1ZSk7CisgICAgU2V0Rm9y
U2NvcGUgcHVyZ2luZ1RvZ2dsZShtX2lzUHVyZ2luZywgdHJ1ZSk7CiAKICAgICBmb3IgKGF1dG8m
IHJlZ2lzdGVyZWRMYXllciA6IG1fcmVnaXN0ZXJlZExheWVycy52YWx1ZXMoKSkKICAgICAgICAg
cmVnaXN0ZXJlZExheWVyLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA1NjVkOWZkY2Jm
MmQyZmYwOTNlNDNkNTA4MzZhZTQ0NzYxOTM0MjkxLi4wZDY0M2U2NjA1NDdlZmFmNTg4ZDlmYjRh
MGNhMjY4OTVkMTAzMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0zMjIsNyArMzIyLDcgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBpZiAobV9pblVwZGF0ZVJl
bmRlcmluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdl
KG1faW5VcGRhdGVSZW5kZXJpbmcsIHRydWUpOworICAgIFNldEZvclNjb3BlIGNoYW5nZShtX2lu
VXBkYXRlUmVuZGVyaW5nLCB0cnVlKTsKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVyaW5nKCk7
CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODNj
YTFmYzlhNGI1NWExNzZlY2VmNjgzMDllNjM5Zjk2MzQ5YWViMy4uOWNiMWY2YjVjMTgxNmJmOGQ2
MDYyOTgzYzRjNGU1MWY2ZmQ3OGI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE4MzYsNyArMTgzNiw3IEBAIHZvaWQgV2ViUGFnZTo6c3Rv
cExvYWRpbmcoKQogCiB2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRHVlVG9Qcm9jZXNzU3dhcCgp
CiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaXNTdG9wcGluZ0xvYWRpbmdEdWVUb1Byb2Nlc3NT
d2FwKG1faXNTdG9wcGluZ0xvYWRpbmdEdWVUb1Byb2Nlc3NTd2FwLCB0cnVlKTsKKyAgICBTZXRG
b3JTY29wZSBpc1N0b3BwaW5nTG9hZGluZ0R1ZVRvUHJvY2Vzc1N3YXAobV9pc1N0b3BwaW5nTG9h
ZGluZ0R1ZVRvUHJvY2Vzc1N3YXAsIHRydWUpOwogICAgIHN0b3BMb2FkaW5nKCk7CiB9CiAKQEAg
LTMwMTYsNyArMzAxNiw3IEBAIHN0YXRpYyBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2Vi
TW91c2VFdmVudCYgbW91c2VFdmVudCwgV2ViUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjpt
b3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+JiYgc2FuZGJveEV4dGVuc2lvbnMpCiB7
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXNlcklzSW50ZXJhY3RpbmdDaGFuZ2UgeyBtX3VzZXJJ
c0ludGVyYWN0aW5nLCB0cnVlIH07CisgICAgU2V0Rm9yU2NvcGUgdXNlcklzSW50ZXJhY3RpbmdD
aGFuZ2UgeyBtX3VzZXJJc0ludGVyYWN0aW5nLCB0cnVlIH07CiAKICAgICBtX3VzZXJBY3Rpdml0
eS5pbXB1bHNlKCk7CiAKQEAgLTMxMDgsNyArMzEwOCw3IEBAIHN0YXRpYyBib29sIGhhbmRsZUtl
eUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2Up
CiAKIHZvaWQgV2ViUGFnZTo6a2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9h
cmRFdmVudCkKIHsKLSAgICBTZXRGb3JTY29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5n
ZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKKyAgICBTZXRGb3JTY29wZSB1c2VySXNJ
bnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3RpbmcsIHRydWUgfTsKIAogICAgIG1f
dXNlckFjdGl2aXR5LmltcHVsc2UoKTsKIApAQCAtMzE3OCw3ICszMTc4LDcgQEAgdm9pZCBXZWJQ
YWdlOjpyZXN0b3JlU2Vzc2lvbkludGVybmFsKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGU+JiBpdGUKIHsKICAgICAvLyBTaW5jZSB3ZSdyZSBtZXJlbHkgcmVzdG9yaW5nIEhp
c3RvcnlJdGVtcyBmcm9tIHRoZSBVSVByb2Nlc3MsIHRoZXJlIGlzIG5vIG5lZWQgdG8gc2VuZCBI
aXN0b3J5SXRlbSB1cGRhdGUgbm90aWZpY2F0aW9ucyBiYWNrIHRvIHRoZSBVSVByb2Nlc3MuCiAg
ICAgLy8gQWxzbywgd2l0aCBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiwgdGhlc2UgdXBkYXRl
cyBtYXkgYWN0dWFsbHkgb3ZlcndyaXRlIGltcG9ydGFudCBzdGF0ZSBpbiB0aGUgVUlQcm9jZXNz
IHN1Y2ggYXMgdGhlIHNjcm9sbCBwb3NpdGlvbi4KLSAgICBTZXRGb3JTY29wZTx2b2lkICgqKShX
ZWJDb3JlOjpIaXN0b3J5SXRlbSYpPiBieXBhc3NIaXN0b3J5SXRlbVVwZGF0ZU5vdGlmaWNhdGlv
bnMoV2ViQ29yZTo6bm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkLCBbXShXZWJDb3JlOjpIaXN0b3J5
SXRlbSYpe30pOworICAgIFNldEZvclNjb3BlIGJ5cGFzc0hpc3RvcnlJdGVtVXBkYXRlTm90aWZp
Y2F0aW9ucyhXZWJDb3JlOjpub3RpZnlIaXN0b3J5SXRlbUNoYW5nZWQsIFtdKFdlYkNvcmU6Okhp
c3RvcnlJdGVtJikgeyB9KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW1TdGF0ZSA6IGl0ZW1T
dGF0ZXMpIHsKICAgICAgICAgYXV0byBoaXN0b3J5SXRlbSA9IHRvSGlzdG9yeUl0ZW0oaXRlbVN0
YXRlKTsKICAgICAgICAgaGlzdG9yeUl0ZW0tPnNldFdhc1Jlc3RvcmVkRnJvbVNlc3Npb24ocmVz
dG9yZWRCeUFQSVJlcXVlc3QgPT0gV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3Q6Olllcyk7CkBAIC0z
MjM1LDcgKzMyMzUsNyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFdlYlRv
dWNoRXZlbnQmIHRvdWNoRXZlbnQsIFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiBib29sIFdlYlBhZ2U6OmRpc3BhdGNoVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2
ZW50JiB0b3VjaEV2ZW50KQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0ludGVyYWN0
aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNjb3Bl
IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9Owog
ICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb24gPSB0b3VjaEV2ZW50LnBvc2l0aW9uKCk7CiAg
ICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh0b3VjaEV2ZW50KTsKICAgICBib29sIGhhbmRs
ZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7CkBAIC0zNDU5
LDcgKzM0NTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQs
IGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYgogICAgIGlmICghbV9wYWdlKQog
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFNldEZvclNjb3BlPGJv
b2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9
OworICAgIFNldEZvclNjb3BlIHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRl
cmFjdGluZywgdHJ1ZSB9OwogCiAgICAgQ2hlY2tlZFJlZiBmb2N1c0NvbnRyb2xsZXIgeyBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpIH07CiAgICAgUmVmIGZyYW1lID0gZm9jdXNDb250cm9sbGVy
LT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKQEAgLTM1MzEsNyArMzUzMSw3IEBAIHZvaWQgV2ViUGFn
ZTo6c2V0QWN0aXZpdHlTdGF0ZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZp
dHlTdGF0ZSwgQWN0CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1fcGFnZSwgInNldEFjdGl2
aXR5U3RhdGUgY2FsbGVkIG9uICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3JlIHBhZ2Ugd2FzIG51bGwi
LCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgaWYgKG1fcGFnZSkgewotICAgICAgICBT
ZXRGb3JTY29wZTxPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4+IGN1cnJlbnRseUNoYW5n
aW5nQWN0aXZpdHlTdGF0ZSB7IG1fbGFzdEFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjaGFuZ2VkIH07
CisgICAgICAgIFNldEZvclNjb3BlIGN1cnJlbnRseUNoYW5naW5nQWN0aXZpdHlTdGF0ZSB7IG1f
bGFzdEFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjaGFuZ2VkIH07CiAgICAgICAgIG1fcGFnZS0+c2V0
QWN0aXZpdHlTdGF0ZShhY3Rpdml0eVN0YXRlKTsKICAgICB9CiAgICAgCkBAIC01OTIzLDcgKzU5
MjMsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbgogICAgIGJvb2wgcmVwbGFjZXNUZXh0ID0g
ZmFsc2U7CiAgICAgaWYgKHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLmxvY2F0aW9uICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgIGlmIChhdXRvIHJlcGxhY2VtZW50UmFuZ2UgPSBFZGl0aW5nUmFuZ2U6
OnRvUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLCBvcHRpb25zLmVkaXRpbmdS
YW5nZUlzUmVsYXRpdmVUbykpIHsKLSAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGlzU2Vs
ZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHkobV9pc1NlbGVjdGluZ1RleHRX
aGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5LCBvcHRpb25zLnN1cHByZXNzU2VsZWN0aW9uVXBk
YXRlKTsKKyAgICAgICAgICAgIFNldEZvclNjb3BlIGlzU2VsZWN0aW5nVGV4dFdoaWxlSW5zZXJ0
aW5nQXN5bmNocm9ub3VzbHkobV9pc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGluZ0FzeW5jaHJv
bm91c2x5LCBvcHRpb25zLnN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKTsKICAgICAgICAgICAgIGZy
YW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbigqcmVwbGFjZW1l
bnRSYW5nZSkpOwogICAgICAgICAgICAgcmVwbGFjZXNUZXh0ID0gcmVwbGFjZW1lbnRFZGl0aW5n
UmFuZ2UubGVuZ3RoOwogICAgICAgICB9CkBAIC03ODkwLDggKzc4OTAsOCBAQCB2b2lkIFdlYlBh
Z2U6OnJldm9rZVNhbmRib3hFeHRlbnNpb25zKFZlY3RvcjxSZWY8U2FuZGJveEV4dGVuc2lvbj4+
JiBzYW5kYm94RXh0ZQogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKIGJvb2wgV2ViUGFnZTo6
Y3JlYXRlQXBwSGlnaGxpZ2h0SW5TZWxlY3RlZFJhbmdlKFdlYkNvcmU6OkNyZWF0ZU5ld0dyb3Vw
Rm9ySGlnaGxpZ2h0IGNyZWF0ZU5ld0dyb3VwLCBXZWJDb3JlOjpIaWdobGlnaHRSZXF1ZXN0T3Jp
Z2luYXRlZEluQXBwIHJlcXVlc3RPcmlnaW5hdGVkSW5BcHApCiB7Ci0gICAgU2V0Rm9yU2NvcGU8
V2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQ+IGhpZ2hsaWdodElzTmV3R3JvdXBT
Y29wZSB7IG1faGlnaGxpZ2h0SXNOZXdHcm91cCwgY3JlYXRlTmV3R3JvdXAgfTsKLSAgICBTZXRG
b3JTY29wZTxXZWJDb3JlOjpIaWdobGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwPiBoaWdobGln
aHRSZXF1ZXN0T3JpZ2luU2NvcGUgeyBtX2hpZ2hsaWdodFJlcXVlc3RPcmlnaW5hdGVkSW5BcHAs
IHJlcXVlc3RPcmlnaW5hdGVkSW5BcHAgfTsKKyAgICBTZXRGb3JTY29wZSBoaWdobGlnaHRJc05l
d0dyb3VwU2NvcGUgeyBtX2hpZ2hsaWdodElzTmV3R3JvdXAsIGNyZWF0ZU5ld0dyb3VwIH07Cisg
ICAgU2V0Rm9yU2NvcGUgaGlnaGxpZ2h0UmVxdWVzdE9yaWdpblNjb3BlIHsgbV9oaWdobGlnaHRS
ZXF1ZXN0T3JpZ2luYXRlZEluQXBwLCByZXF1ZXN0T3JpZ2luYXRlZEluQXBwIH07CiAKICAgICBS
ZWZQdHIgZG9jdW1lbnQgPSBDaGVja2VkUmVmKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKS5kb2N1bWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDU5MzExZGYwMjc1YmYy
MDkyMzFiYzBjYmZkZjFmNzdjMmIyMjYxYWMuLjBmMTg3MWUwOWFkNzk1NDc2ZTI1NTE0MThmNTg0
YmQwMWM2NTk5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04NTMsNyArODUzLDcgQEAgdm9pZCBXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2Vi
Q29yZToKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IENoZWNrZWRSZWYobV9w
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKSktPmZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxFbGVt
ZW50PiBvbGRGb2N1c2VkRWxlbWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZvY3VzZWRGcmFt
ZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSA6IG51bGxwdHI7CiAKLSAgICBTZXRGb3JT
Y29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3Rpbmcs
IHRydWUgfTsKKyAgICBTZXRGb3JTY29wZSB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNl
cklzSW50ZXJhY3RpbmcsIHRydWUgfTsKIAogICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRpb24g
PSByb3VuZGVkQWRqdXN0ZWRQb2ludDsKIApAQCAtOTQ2LDE0ICs5NDYsMTQgQEAgdm9pZCBXZWJQ
YWdlOjpyZXF1ZXN0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IHN0ZDoKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogdm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0RHJhZ1N0YXJ0KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBPcHRpb25TZXQ8V2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlv
bj4gYWxsb3dlZEFjdGlvbnNNYXNrKQogewotICAgIFNldEZvclNjb3BlPE9wdGlvblNldDxXZWJD
b3JlOjpEcmFnU291cmNlQWN0aW9uPj4gYWxsb3dlZEFjdGlvbnNGb3JTY29wZShtX2FsbG93ZWRE
cmFnU291cmNlQWN0aW9ucywgYWxsb3dlZEFjdGlvbnNNYXNrKTsKKyAgICBTZXRGb3JTY29wZSBh
bGxvd2VkQWN0aW9uc0ZvclNjb3BlKG1fYWxsb3dlZERyYWdTb3VyY2VBY3Rpb25zLCBhbGxvd2Vk
QWN0aW9uc01hc2spOwogICAgIGJvb2wgZGlkU3RhcnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2
ZW50SGFuZGxlcigpLnRyeVRvQmVnaW5EcmFnQXRQb2ludChjbGllbnRQb3NpdGlvbiwgZ2xvYmFs
UG9zaXRpb24pOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkSGFuZGxlRHJh
Z1N0YXJ0UmVxdWVzdChkaWRTdGFydCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBZGRp
dGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkRyYWdT
b3VyY2VBY3Rpb24+IGFsbG93ZWRBY3Rpb25zTWFzaykKIHsKLSAgICBTZXRGb3JTY29wZTxPcHRp
b25TZXQ8V2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbj4+IGFsbG93ZWRBY3Rpb25zRm9yU2NvcGUo
bV9hbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnMsIGFsbG93ZWRBY3Rpb25zTWFzayk7CisgICAgU2V0
Rm9yU2NvcGUgYWxsb3dlZEFjdGlvbnNGb3JTY29wZShtX2FsbG93ZWREcmFnU291cmNlQWN0aW9u
cywgYWxsb3dlZEFjdGlvbnNNYXNrKTsKICAgICAvLyBUbyBhdWdtZW50IHRoZSBwbGF0Zm9ybSBk
cmFnIHNlc3Npb24gd2l0aCBhZGRpdGlvbmFsIGl0ZW1zLCBlbmQgdGhlIGN1cnJlbnQgZHJhZyBz
ZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBkcmFnIHNlc3Npb24gd2l0aCB0aGUgbmV3IGRyYWcgaXRl
bS4KICAgICAvLyBUaGlzIHByb2Nlc3MgaXMgb3BhcXVlIHRvIHRoZSBVSSBwcm9jZXNzLCB3aGlj
aCBzdGlsbCBtYWludGFpbnMgdGhlIG9sZCBkcmFnIGl0ZW0gaW4gaXRzIGRyYWcgc2Vzc2lvbi4g
U2ltaWxhcmx5LCB0aGlzIHBlcnNpc3RlbnQgZHJhZyBzZXNzaW9uCiAgICAgLy8gaXMgb3BhcXVl
IHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hpY2ggb25seSBzZWVzIHRoYXQgdGhlIGN1cnJlbnQgZHJh
ZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEgbmV3IG9uZSBpcyBiZWdpbm5pbmcuCkBAIC0yMTA1LDcg
KzIxMDUsNyBAQCBWaXNpYmxlUG9zaXRpb24gV2ViUGFnZTo6dmlzaWJsZVBvc2l0aW9uSW5Gb2N1
c2VkTm9kZUZvclBvaW50KGNvbnN0IEZyYW1lJiBmcmFtZQogCiB2b2lkIFdlYlBhZ2U6OnNlbGVj
dFBvc2l0aW9uQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIGJvb2wgaXNJ
bnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0ludGVy
YWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OworICAgIFNldEZvclNj
b3BlIHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdlIHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9
OwogCiAgICAgc2V0Rm9jdXNlZEZyYW1lQmVmb3JlU2VsZWN0aW5nVGV4dEF0TG9jYXRpb24ocG9p
bnQpOwogCkBAIC0zNTkxLDcgKzM1OTEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldE92ZXJyaWRlVmll
d3BvcnRBcmd1bWVudHMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydAogCiB2
b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiB2
aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtVW5vYnNjdXJl
ZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRV
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dEJveEV4dGVudCYgdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0
U2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGgsIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCBkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQpCiB7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZHluYW1pY1NpemVVcGRhdGVH
dWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOworICAgIFNldEZvclNjb3BlIGR5bmFt
aWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0cnVlKTsKICAgICAvLyBG
SVhNRTogdGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJlIHRoZSBjb250ZW50IHdv
dWxkIGNoYW5nZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3NpdGlvbiBmcm9tIEphdmFT
Y3JpcHQuCiAgICAgLy8gVG8gaGFuZGxlIHRob3NlIGNhc2VzLCB3ZSB3b3VsZCBuZWVkIHRvIHJl
ZG8gdGhpcyBjb21wdXRhdGlvbiBvbiBldmVyeSBjaGFuZ2UgdW50aWwgdGhlIG5leHQgdmlzaWJs
ZSBjb250ZW50IHJlY3QgdXBkYXRlLgogICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMs
IHN0cmVhbSA8PCAiXG5XZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlIC0gdmlld0xh
eW91dFNpemUgIiA8PCB2aWV3TGF5b3V0U2l6ZSA8PCAiIHRhcmdldFVub2JzY3VyZWRSZWN0ICIg
PDwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgIiA8
PCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8IHRhcmdldFNj
YWxlKTsKQEAgLTQ3MzksNyArNDczOSw3IEBAIHZvaWQgV2ViUGFnZTo6Zm9jdXNUZXh0SW5wdXRD
b250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBFbGVtZW50Q29udGV4dCYgZWxlbWVudENvCiAgICAg
Ly8gRklYTUU6IERvIG5vdCBmb2N1cyBhbiBlbGVtZW50IGlmIGl0IG1vdmVkIG9yIHRoZSBjYXJl
dCBwb2ludCBpcyBvdXRzaWRlIGl0cyBib3VuZHMKICAgICAvLyBiZWNhdXNlIHdlIG9ubHkgd2Fu
dCB0byBkbyBzbyBpZiB0aGUgY2FyZXQgY2FuIGJlIHBsYWNlZC4KICAgICBVc2VyR2VzdHVyZUlu
ZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCAmdGFyZ2V0
LT5kb2N1bWVudCgpIH07Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gdXNlcklzSW50ZXJhY3RpbmdD
aGFuZ2UgeyBtX3VzZXJJc0ludGVyYWN0aW5nLCB0cnVlIH07CisgICAgU2V0Rm9yU2NvcGUgdXNl
cklzSW50ZXJhY3RpbmdDaGFuZ2UgeyBtX3VzZXJJc0ludGVyYWN0aW5nLCB0cnVlIH07CiAgICAg
Q2hlY2tlZFJlZihtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
dGFyZ2V0LmdldCgpLCB0YXJnZXRGcmFtZSk7CiAKICAgICAvLyBTZXR0aW5nIHRoZSBmb2N1c2Vk
IGVsZW1lbnQgY291bGQgdGVhciBkb3duIHRoZSBlbGVtZW50J3MgcmVuZGVyZXIuIENoZWNrIHRo
YXQgd2Ugc3RpbGwgaGF2ZSBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93Yy9EcmF3aW5nQXJlYVdDLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuY3BwCmluZGV4IGY0MzgzYjQ4NjEyOTZmMWNkOGY4
Y2M3MGM2ZTQyNzI1ZjE4NzNmMzIuLmJmMTJiMTE0NzdlMzI4MWU1N2EzN2IzOGRhMTgwMzRkNWY5
NTFlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0Ry
YXdpbmdBcmVhV0MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dj
L0RyYXdpbmdBcmVhV0MuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBEcmF3aW5nQXJlYVdD
Ojp1cGRhdGVSZW5kZXJpbmcoKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFu
dCwgZS5nLiBhIHJBRiBjYWxsYmFjayBtYXkgZm9yY2UgcmVwYWludC4KICAgICBpZiAobV9pblVw
ZGF0ZVJlbmRlcmluZykKICAgICAgICAgcmV0dXJuOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGNo
YW5nZShtX2luVXBkYXRlUmVuZGVyaW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBjaGFuZ2Uo
bV9pblVwZGF0ZVJlbmRlcmluZywgdHJ1ZSk7CiAKICAgICBBU1NFUlQoIW1fd2FpdERpZFVwZGF0
ZSk7CiAgICAgbV93YWl0RGlkVXBkYXRlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCA0MTcwMzhlYmUzMzEwMGU1NDBjYWJhMWVhYjUwNjQzYmNmNzM1
MWY3Li5lOTc4YjlkOTA5YmFkZWM2NDQ5YTY1MzFlNWM3NTgzYWU3MThjN2FjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNTQwLDcgKzE1NDAsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBhZ2VBY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFBhZ2VJZGVudGlmaWVyLCBP
cHRpb25TZXQ8V2ViQ29yZTo6QQogdm9pZCBXZWJQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJv
b2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXRUJQUk9DRVNTX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAicHJlcGFyZVRvU3VzcGVuZDogaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQiLCBpc1N1
c3BlbnNpb25JbW1pbmVudCk7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gc3VzcGVuc2lvblNjb3Bl
KG1faXNTdXNwZW5kaW5nLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZSBzdXNwZW5zaW9uU2NvcGUo
bV9pc1N1c3BlbmRpbmcsIHRydWUpOwogICAgIG1fcHJvY2Vzc0lzU3VzcGVuZGVkID0gdHJ1ZTsK
IAogICAgIGZsdXNoUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGYzODFiN2EzYTVhY2YyZmU4YmU0Zjc5YzM0
ZmQzYjk0MWZhYjA0YmMuLmE5YzZlYmE0MmIzYTdlM2Y3MDRlZDUyYTI1NzQxYTMwY2MzNTRjNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTk0NTYs
NyArOTQ1Niw3IEBAIC0gKHZvaWQpdXBkYXRlVGV4dFRvdWNoQmFyCiAgICAgaWYgKF9wcml2YXRl
LT5faXNVcGRhdGluZ1RleHRUb3VjaEJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9y
U2NvcGU8Qk9PTD4gaXNVcGRhdGluZ1RleHRUb3VjaEJhcihfcHJpdmF0ZS0+X2lzVXBkYXRpbmdU
ZXh0VG91Y2hCYXIsIFlFUyk7CisgICAgU2V0Rm9yU2NvcGUgaXNVcGRhdGluZ1RleHRUb3VjaEJh
cihfcHJpdmF0ZS0+X2lzVXBkYXRpbmdUZXh0VG91Y2hCYXIsIFlFUyk7CiAKICAgICBpZiAoIV9w
cml2YXRlLT5fdGV4dFRvdWNoQmFySXRlbUNvbnRyb2xsZXIpCiAgICAgICAgIF9wcml2YXRlLT5f
dGV4dFRvdWNoQmFySXRlbUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV2ViVGV4dFRvdWNoQmFySXRl
bUNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2ViVmlldzpzZWxmXSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRleCBlZWNkMDc4YjlmZGE1
OTU3OWE0NTg0N2E1ZmU5ZDJhNTIyNDgyMjk1Li4xMmE5YzMwOWI3Njc2MjJhMTc1MWViYjYzYThk
OGE3YTNmNDBkYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0KQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFdlYlZpZXdMYXllckZsdXNoU2No
ZWR1bGVyOjpsYXllckZsdXNoQ2FsbGJhY2soKQogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAg
ICAgICBSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IHByb3RlY3RvciA9IG1fZmx1c2hDb250
cm9sbGVyOwogCi0gICAgICAgIFNldEZvclNjb3BlPGJvb2w+IGluc2lkZUNhbGxiYWNrU2NvcGUo
bV9pbnNpZGVDYWxsYmFjaywgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlIGluc2lkZUNhbGxi
YWNrU2NvcGUobV9pbnNpZGVDYWxsYmFjaywgdHJ1ZSk7CiAgICAgICAgIG1fcmVzY2hlZHVsZWRJ
bnNpZGVDYWxsYmFjayA9IGZhbHNlOwogCiAgICAgICAgIGlmIChtX2ZsdXNoQ29udHJvbGxlci0+
Zmx1c2hMYXllcnMoKSAmJiAhbV9yZXNjaGVkdWxlZEluc2lkZUNhbGxiYWNrKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdjZGM4MWQxNTdlNTI0
ZWFkODkxZGRkODg0ZTE0YjUwNDhmNDE0MjAuLjllZmUyY2IzYWNhNGViMTdhOThmM2E5MzM4MTUz
ODAwYTIwOTllNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMi0wMi0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIE9taXQgdGVtcGxhdGUgcGFyYW1ldGVyIGZvciBTZXRGb3JT
Y29wZTw+IHZhcmlhYmxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZXRGb3JTY29wZS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0Rm9udE9wdGlvbnMubW06CisgICAgICAgICgt
W1Rlc3RGb250T3B0aW9ucyBzZXRTaGFkb3dXaWR0aDpdKToKKyAgICAgICAgKC1bVGVzdEZvbnRP
cHRpb25zIHNldFNoYWRvd0hlaWdodDpdKToKKyAgICAgICAgKC1bVGVzdEZvbnRPcHRpb25zIHNl
dFNoYWRvd0JsdXJSYWRpdXM6XSk6CisgICAgICAgICgtW1Rlc3RGb250T3B0aW9ucyBzZXRIYXNT
aGFkb3c6XSk6CisgICAgICAgICgtW1Rlc3RGb250T3B0aW9ucyBzZXRGb3JlZ3JvdW5kQ29sb3I6
XSk6CisgICAgICAgICgtW1Rlc3RGb250T3B0aW9ucyBzZXRCYWNrZ3JvdW5kQ29sb3I6XSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlYXR0YWNoUGFnZVRvV2ViUHJvY2Vzcyk6CisKIDIw
MjItMDItMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxs
IFdLTmF2aWdhdGlvbkRlbGVnYXRlLmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24gZXZlbiBh
ZnRlciBhIGNyb3NzLW9yaWdpbiBuYXZpZ2F0aW9uIHdpdGggQ09PUApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU2V0Rm9yU2NvcGUuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU2V0Rm9yU2NvcGUuY3BwCmluZGV4IDkyZTM0OTRkNjExNDRmOTY4
YTRiYzIyYzE5NmY4YTM0Nzg5OWE2N2YuLjczN2RjNzVlODYzNzdiODEzNDg1OWJhNTFhMDQ3Y2Yx
Zjk1YTI1YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NldEZv
clNjb3BlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TZXRGb3JTY29w
ZS5jcHAKQEAgLTMzLDEwICszMywxMCBAQCBURVNUKFdURiwgU2V0Rm9yU2NvcGVOZXN0ZWQpCiB7
CiAgICAgYm9vbCBvcmlnaW5hbGx5RmFsc2UgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIFNldEZv
clNjb3BlPGJvb2w+IGNoYW5nZTFPcmlnaW5hbGx5RmFsc2Uob3JpZ2luYWxseUZhbHNlLCB0cnVl
KTsKKyAgICAgICAgU2V0Rm9yU2NvcGUgY2hhbmdlMU9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5
RmFsc2UsIHRydWUpOwogICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFsc2UpOwogICAg
ICAgICB7Ci0gICAgICAgICAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UyT3JpZ2luYWxseUZh
bHNlKG9yaWdpbmFsbHlGYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgU2V0Rm9yU2NvcGUgY2hh
bmdlMk9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5RmFsc2UsIGZhbHNlKTsKICAgICAgICAgICAg
IEVYUEVDVF9GQUxTRShvcmlnaW5hbGx5RmFsc2UpOwogICAgICAgICB9CiAgICAgICAgIEVYUEVD
VF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXggMmU5
OTJmMDQ4YjFmMDY2NmVhZDQ2Njg2NzBhYTM4MDFjNTZhNTBlOC4uMmE0MzJjNWEzY2JhZTZlMjc3
MmQ1MzdlZGVhNWE2NzU5M2Q3NTY3YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAtMjA3
LDcgKzIwNyw3IEBAIFRFU1QoV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgSW5zcGVjdG9yQ2xvc2VDYWxs
ZWRSZWVudHJhbnRseSkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEF0dGFjaExv
Y2FsSW5zcGVjdG9yQ2FsbGVkKTsKIAogICAgIHsKLSAgICAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4g
Y2xvc2VSZWVudHJhbnRseUZyb21EZWxlZ2F0ZShzaG91bGRDYWxsSW5zcGVjdG9yQ2xvc2VSZWVu
dHJhbnRseSwgdHJ1ZSk7CisgICAgICAgIFNldEZvclNjb3BlIGNsb3NlUmVlbnRyYW50bHlGcm9t
RGVsZWdhdGUoc2hvdWxkQ2FsbEluc3BlY3RvckNsb3NlUmVlbnRyYW50bHksIHRydWUpOwogICAg
ICAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gY2xvc2VdOwogICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJndpbGxDbG9zZUxvY2FsSW5zcGVjdG9yQ2FsbGVkKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0Rm9udE9wdGlvbnMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0Rm9udE9wdGlvbnMubW0KaW5kZXggY2I0NWM1ZGM3ZjNi
OWQ5ZGQ4MDZjNGFiOTEwZmE1NTBjNTQ4M2RkZi4uMjgzOTNkZDUwYzA4MTI1YzIwNDkxMjhjMTE0
ZmMyN2UzZTg4OGEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdEZv
bnRPcHRpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RGb250T3B0aW9u
cy5tbQpAQCAtMTExLDcgKzExMSw3IEBAIC0gKHZvaWQpc2V0U2hhZG93V2lkdGg6KENHRmxvYXQp
c2hhZG93V2lkdGgKICAgICBpZiAoX3NoYWRvd09mZnNldC53aWR0aCA9PSBzaGFkb3dXaWR0aCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaGFzUGVuZGluZ0ZvbnRT
aGFkb3dDaGFuZ2VzKF9oYXNQZW5kaW5nU2hhZG93Q2hhbmdlcywgWUVTKTsKKyAgICBTZXRGb3JT
Y29wZSBoYXNQZW5kaW5nRm9udFNoYWRvd0NoYW5nZXMoX2hhc1BlbmRpbmdTaGFkb3dDaGFuZ2Vz
LCBZRVMpOwogICAgIF9zaGFkb3dPZmZzZXQud2lkdGggPSBzaGFkb3dXaWR0aDsKICAgICBbc2Vs
ZiBfZGlzcGF0Y2hGb250QXR0cmlidXRlQ2hhbmdlc107CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAg
LSAodm9pZClzZXRTaGFkb3dIZWlnaHQ6KENHRmxvYXQpc2hhZG93SGVpZ2h0CiAgICAgaWYgKF9z
aGFkb3dPZmZzZXQuaGVpZ2h0ID09IHNoYWRvd0hlaWdodCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgU2V0Rm9yU2NvcGU8Qk9PTD4gaGFzUGVuZGluZ0ZvbnRTaGFkb3dDaGFuZ2VzKF9oYXNQZW5k
aW5nU2hhZG93Q2hhbmdlcywgWUVTKTsKKyAgICBTZXRGb3JTY29wZSBoYXNQZW5kaW5nRm9udFNo
YWRvd0NoYW5nZXMoX2hhc1BlbmRpbmdTaGFkb3dDaGFuZ2VzLCBZRVMpOwogICAgIF9zaGFkb3dP
ZmZzZXQuaGVpZ2h0ID0gc2hhZG93SGVpZ2h0OwogICAgIFtzZWxmIF9kaXNwYXRjaEZvbnRBdHRy
aWJ1dGVDaGFuZ2VzXTsKIH0KQEAgLTEzNiw3ICsxMzYsNyBAQCAtICh2b2lkKXNldFNoYWRvd0Js
dXJSYWRpdXM6KENHRmxvYXQpc2hhZG93Qmx1clJhZGl1cwogICAgIGlmIChfc2hhZG93Qmx1clJh
ZGl1cyA9PSBzaGFkb3dCbHVyUmFkaXVzKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRGb3JT
Y29wZTxCT09MPiBoYXNQZW5kaW5nRm9udFNoYWRvd0NoYW5nZXMoX2hhc1BlbmRpbmdTaGFkb3dD
aGFuZ2VzLCBZRVMpOworICAgIFNldEZvclNjb3BlIGhhc1BlbmRpbmdGb250U2hhZG93Q2hhbmdl
cyhfaGFzUGVuZGluZ1NoYWRvd0NoYW5nZXMsIFlFUyk7CiAgICAgX3NoYWRvd0JsdXJSYWRpdXMg
PSBzaGFkb3dCbHVyUmFkaXVzOwogICAgIFtzZWxmIF9kaXNwYXRjaEZvbnRBdHRyaWJ1dGVDaGFu
Z2VzXTsKIH0KQEAgLTE0Niw3ICsxNDYsNyBAQCAtICh2b2lkKXNldEhhc1NoYWRvdzooQk9PTClo
YXNTaGFkb3cKICAgICBpZiAoX2hhc1NoYWRvdyA9PSBoYXNTaGFkb3cpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFNldEZvclNjb3BlPEJPT0w+IGhhc1BlbmRpbmdGb250U2hhZG93Q2hhbmdlcyhf
aGFzUGVuZGluZ1NoYWRvd0NoYW5nZXMsIFlFUyk7CisgICAgU2V0Rm9yU2NvcGUgaGFzUGVuZGlu
Z0ZvbnRTaGFkb3dDaGFuZ2VzKF9oYXNQZW5kaW5nU2hhZG93Q2hhbmdlcywgWUVTKTsKICAgICBf
aGFzU2hhZG93ID0gaGFzU2hhZG93OwogICAgIFtzZWxmIF9kaXNwYXRjaEZvbnRBdHRyaWJ1dGVD
aGFuZ2VzXTsKIH0KQEAgLTE1OCw3ICsxNTgsNyBAQCAtIChOU0NvbG9yICopZm9yZWdyb3VuZENv
bG9yCiAKIC0gKHZvaWQpc2V0Rm9yZWdyb3VuZENvbG9yOihOU0NvbG9yICopY29sb3IKIHsKLSAg
ICBTZXRGb3JTY29wZTxCT09MPiBoYXNQZW5kaW5nQ29sb3JDaGFuZ2VzKF9oYXNQZW5kaW5nQ29s
b3JDaGFuZ2VzLCBZRVMpOworICAgIFNldEZvclNjb3BlIGhhc1BlbmRpbmdDb2xvckNoYW5nZXMo
X2hhc1BlbmRpbmdDb2xvckNoYW5nZXMsIFlFUyk7CiAgICAgX2ZvcmVncm91bmRDb2xvciA9IGFk
b3B0TlMoW2NvbG9yIGNvcHldKTsKICAgICBbc2VsZiBfZGlzcGF0Y2hGb250QXR0cmlidXRlQ2hh
bmdlc107CiB9CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAoTlNDb2xvciAqKWJhY2tncm91bmRDb2xv
cgogCiAtICh2b2lkKXNldEJhY2tncm91bmRDb2xvcjooTlNDb2xvciAqKWNvbG9yCiB7Ci0gICAg
U2V0Rm9yU2NvcGU8Qk9PTD4gaGFzUGVuZGluZ0NvbG9yQ2hhbmdlcyhfaGFzUGVuZGluZ0NvbG9y
Q2hhbmdlcywgWUVTKTsKKyAgICBTZXRGb3JTY29wZSBoYXNQZW5kaW5nQ29sb3JDaGFuZ2VzKF9o
YXNQZW5kaW5nQ29sb3JDaGFuZ2VzLCBZRVMpOwogICAgIF9iYWNrZ3JvdW5kQ29sb3IgPSBhZG9w
dE5TKFtjb2xvciBjb3B5XSk7CiAgICAgW3NlbGYgX2Rpc3BhdGNoRm9udEF0dHJpYnV0ZUNoYW5n
ZXNdOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAz
OWQ5YTcyZjQ3OTBjZjg4Mzg5YTRhNWIwNjMyMTBiMDk4MjJiZDdkLi5mYTZiNjkxYzc0Yzg2NWY5
ZTFkZTM5Yjc0ZTNjMWJjZTg0NThkZWVkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtOTU3LDcgKzk1Nyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJl
c2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlc2V0U3RhZ2UgcmVzZXRTdGFnZSkKIHsKLSAgICBT
ZXRGb3JTY29wZTxTdGF0ZT4gY2hhbmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKKyAgICBT
ZXRGb3JTY29wZSBjaGFuZ2VTdGF0ZShtX3N0YXRlLCBSZXNldHRpbmcpOwogICAgIG1fYmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUgPSB0cnVlOwogCiAgICAgZm9yIChhdXRvJiBhdXhpbGlhcnlXZWJW
aWV3IDogc3RkOjpleGNoYW5nZShtX2F1eGlsaWFyeVdlYlZpZXdzLCB7IH0pKQpAQCAtMTIzOCw3
ICsxMjM4LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dGVybWluYXRlV2ViQ29udGVudFByb2Nl
c3MoKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVhdHRhY2hQYWdlVG9XZWJQcm9jZXNzKCkKIHsK
ICAgICAvLyBMb2FkaW5nIGEgd2ViIHBhZ2UgaXMgdGhlIG9ubHkgd2F5IHRvIHJlYXR0YWNoIGFu
IGV4aXN0aW5nIHBhZ2UgdG8gYSBwcm9jZXNzLgotICAgIFNldEZvclNjb3BlPFN0YXRlPiBjaGFu
Z2VTdGF0ZShtX3N0YXRlLCBSZXNldHRpbmcpOworICAgIFNldEZvclNjb3BlIGNoYW5nZVN0YXRl
KG1fc3RhdGUsIFJlc2V0dGluZyk7CiAgICAgbV9kb25lUmVzZXR0aW5nID0gZmFsc2U7CiAgICAg
V0tQYWdlTG9hZFVSTChtX21haW5XZWJWaWV3LT5wYWdlKCksIGJsYW5rVVJMKCkpOwogICAgIHJ1
blVudGlsKG1fZG9uZVJlc2V0dGluZywgbm9UaW1lb3V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453409</attachid>
            <date>2022-02-28 10:44:25 -0800</date>
            <delta_ts>2022-02-28 10:46:13 -0800</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-237258-20220228114424.patch</filename>
            <type>text/plain</type>
            <size>26621</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg5OWYwZGUwODdhZWIyN2RlMDE0OGU5Zjg0NTQz
MjUyMmI0MmQ0ZWEuLjBkMjY3YmQ5NWY2ZGYzYjM2ZjYzYzMzMGJiN2Q3MmZjNGY1MGU2YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAyLTI1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
RmxleGJveF0gQWRkIG9wdGlvbnMgdG8gc2hvdyBlYWNoIGFyZWEncyBDU1MgYG9yZGVyYCBhbmQv
b3IgRE9NIGluZGV4IGluIHRoZSBwYXJlbnQgZmxleCBjb250YWluZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzIxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBoZWxwIGRldmVsb3Bl
cnMgYmV0dGVyIHVuZGVyc3RhbmQgaG93IENTUyBgb3JkZXJgIGFuZCB0aGUgRE9NIGluZGV4IG9m
IGVhY2ggZmxleAorICAgICAgICBpdGVtIGludGVyYWN0IGFuZCByZXN1bHQgaW4gd2hhdCdzIGV2
ZW50dWFsbHkgcmVuZGVyZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpz
b246CisgICAgICAgIEFkZCBhbiBvcHRpb25hbCBib29sZWFuIHBhcmFtZXRlciB0byBgRE9NLnNo
b3dGbGV4T3ZlcmxheWA6CisgICAgICAgIC0gYHNob3dPcmRlck51bWJlcnNgIGNvbnRyb2xzIHdo
ZXRoZXIgbGFiZWxzIHdpdGggdGhlIGNvbXB1dGVkIENTUyBgb3JkZXJgIHZhbHVlIGFyZSBzaG93
bgorICAgICAgICAgIG92ZXIgZWFjaCBmbGV4IGl0ZW0ncyBhcmVhLgorCiAyMDIyLTAyLTI3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT21pdCB0ZW1wbGF0ZSBw
YXJhbWV0ZXIgZm9yIFNldEZvclNjb3BlPD4gdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI1NmYz
NGNhYmIzNDAxYmRhMjBhMzRjYmY3NmU2MTk3MjQ3YzU0Yi4uYjMyMmEzNGVmZTA1NDkyZTIzOTJk
YjE4YmZhYzE3OTIyN2JhNGJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAy
LTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRmxleGJveF0gQWRkIG9wdGlvbnMgdG8gc2hvdyBlYWNoIGFyZWEncyBDU1MgYG9y
ZGVyYCBhbmQvb3IgRE9NIGluZGV4IGluIHRoZSBwYXJlbnQgZmxleCBjb250YWluZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzIxNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgd2lsbCBoZWxw
IGRldmVsb3BlcnMgYmV0dGVyIHVuZGVyc3RhbmQgaG93IENTUyBgb3JkZXJgIGFuZCB0aGUgRE9N
IGluZGV4IG9mIGVhY2ggZmxleAorICAgICAgICBpdGVtIGludGVyYWN0IGFuZCByZXN1bHQgaW4g
d2hhdCdzIGV2ZW50dWFsbHkgcmVuZGVyZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2hv
d0ZsZXhPdmVybGF5KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgb3B0aW9uYWwgYm9vbGVhbiBw
YXJhbWV0ZXIgYHNob3dPcmRlck51bWJlcnNgLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OkhpZ2hs
aWdodDo6RmxleEhpZ2hsaWdodE92ZXJsYXk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JPdmVybGF5OjpIaWdobGlnaHQ6OkZsZXhIaWdobGlnaHRPdmVybGF5Ojpk
ZWNvZGUpOgorICAgICAgICBBZGQgbWVtYmVyIGBib29sYCBmb3IgYHNob3dPcmRlck51bWJlcnNg
IHRvIGBGbGV4OjpDb25maWdgLgorICAgICAgICBBZGQgbWVtYmVyIGBWZWN0b3I8SW5zcGVjdG9y
T3ZlcmxheUxhYmVsPmAgdG8gYEZsZXhIaWdobGlnaHRPdmVybGF5YCBmb3IgZHJhd2luZyBsYWJl
bHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpkcmF3RmxleE92ZXJsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6YnVpbGRGbGV4T3ZlcmxheSk6CisgICAgICAgIFVz
ZSBgc2hvd09yZGVyTnVtYmVyc2AgdG8gKHdoZW4gZW5hYmxlZCkgYWRkIGl0ZW1zIHRvIGBWZWN0
b3I8SW5zcGVjdG9yT3ZlcmxheUxhYmVsPmAgZm9yCisgICAgICAgIGVhY2ggZmxleCBpdGVtJ3Mg
Y29tcHV0ZWQgQ1NTIGBvcmRlcmAgYW5kIERPTSBpbmRleCBpbiB0aGUgcGFyZW50IGZsZXggY29u
dGFpbmVyLgorCiAyMDIyLTAyLTI3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gRGVsZXRlZCB1bm5lZWRlZCBjb25zdHJ1Y3RvcnMg
ZnJvbSBEaXNwbGF5TGlzdDo6UmVjb3JkZXIgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
aW5kZXggZGM2MTJiYjY2OTc0YWU1NWE4YjNmNTA2MDI4ZWUxNDUzNjk5ZDNkMy4uZDM1ZTgwNjdi
YmY1MzIyOGI4NWUxMzc4YzUzYWViMzU2YjU4MDRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzMgQEAKKzIwMjItMDItMjUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtGbGV4Ym94XSBBZGQgb3B0aW9ucyB0
byBzaG93IGVhY2ggYXJlYSdzIENTUyBgb3JkZXJgIGFuZC9vciBET00gaW5kZXggaW4gdGhlIHBh
cmVudCBmbGV4IGNvbnRhaW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3MjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyB3aWxsIGhlbHAgZGV2ZWxvcGVycyBiZXR0ZXIgdW5kZXJzdGFuZCBo
b3cgQ1NTIGBvcmRlcmAgYW5kIHRoZSBET00gaW5kZXggb2YgZWFjaCBmbGV4CisgICAgICAgIGl0
ZW0gaW50ZXJhY3QgYW5kIHJlc3VsdCBpbiB3aGF0J3MgZXZlbnR1YWxseSByZW5kZXJlZC4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzOgorICAgICAgICBBZGQgZ2xv
YmFsIGBXSS5TZXR0aW5nYCBmb3IgYGZsZXhPdmVybGF5U2hvd09yZGVyTnVtYmVyc2AuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzOgorICAgICAgICAoV0kuRE9N
Tm9kZS5wcm90b3R5cGUuc2V0IGxheW91dENvbnRleHRUeXBlKTogQWRkZWQuCisgICAgICAgIChX
SS5ET01Ob2RlLnByb3RvdHlwZS5zaG93TGF5b3V0T3ZlcmxheSk6IEFkZGVkLgorICAgICAgICAo
V0kuRE9NTm9kZS5wcm90b3R5cGUuaGlkZUxheW91dE92ZXJsYXkpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkRPTU5vZGUucHJvdG90eXBlLl9oYW5kbGVMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQp
OiBSZW5hbWVkIGZyb20gYF9oYW5kbGVHcmlkTGF5b3V0T3ZlcmxheVNldHRpbmdDaGFuZ2VkYC4K
KyAgICAgICAgTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBhYm92ZSBgV0kuU2V0dGluZ2AgYW5k
IGluY2x1ZGUgdGhlIHZhbHVlIHdoZW4gaW52b2tpbmcgYERPTS5zaG93RmxleE92ZXJsYXlgLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NGbGV4Tm9kZU92ZXJsYXlMaXN0U2Vj
dGlvbi5qczoKKyAgICAgICAgKFdJLkNTU0ZsZXhOb2RlT3ZlcmxheUxpc3RTZWN0aW9uLnByb3Rv
dHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIEFkZCBVSSBmb3IgdGhlIGFib3Zl
IGBXSS5TZXR0aW5nYC4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTR3JpZE5v
ZGVPdmVybGF5TGlzdFNlY3Rpb24uanM6CisgICAgICAgIChXSS5DU1NHcmlkTm9kZU92ZXJsYXlM
aXN0U2VjdGlvbi5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIERyaXZlLWJ5OiBB
ZGp1c3QgYSBgV0kuVUlTdHJpbmdgIHRvIGF2b2lkIHBvc3NpYmxlIGZ1dHVyZSBjbGFzaGluZy4K
KwogMjAyMi0wMi0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogbWVyZ2UgV0kuT3ZlcmxheU1hbmFnZXIgaW50byBXSS5ET01Ob2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RP
TS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNv
bgppbmRleCBkNzkyYjc5OTI3N2M2YzVmMDBjYzRmYzE3Yzc0ODhhYjdjNGMyNWNhLi5iODQ0N2Uz
NDIwZmQwOWRmNjUxYTZmMWU5MTMxNDczYjA3YmMzOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KQEAgLTUzMSw3ICs1MzEsOCBA
QAogICAgICAgICAgICAgInRhcmdldFR5cGVzIjogWyJwYWdlIl0sCiAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjog
Ik5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgbm9kZSBmb3Igd2hpY2ggYSBmbGV4IG92ZXJs
YXkgc2hvdWxkIGJlIHNob3duLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZsZXhD
b2xvciIsICIkcmVmIjogIlJHQkFDb2xvciIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHJpbWFyeSBj
b2xvciB0byB1c2UgZm9yIHRoZSBmbGV4IG92ZXJsYXkuIiB9CisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJmbGV4Q29sb3IiLCAiJHJlZiI6ICJSR0JBQ29sb3IiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIHByaW1hcnkgY29sb3IgdG8gdXNlIGZvciB0aGUgZmxleCBvdmVybGF5LiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNob3dPcmRlck51bWJlcnMiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNob3cgbGFiZWxzIGZvciBmbGV4
IG9yZGVyLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS4iIH0K
ICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDJmN2VlNmFkODdhZGVhMjFjYTcw
MDdmYmY3ZDhlM2YxOWNmZjNhZDYuLjRmNjNhZGNlOTM5MTZkYjIzMjBlOTY3OGFhYmZlMGYzY2Q5
OTc2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKQEAgLTE3NTMsNiArMTc1Myw5IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd0ZsZXhP
dmVybGF5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW5zcGVjdG9yCiAgICAgY29u
c3RleHByIGF1dG8gc3BhY2VCZXR3ZWVuSXRlbXNBbmRDcm9zc0F4aXNTcGFjZVN0aXBwbGluZ0Rl
bnNpdHkgPSA2OwogICAgIGZvciAoY29uc3QgYXV0byYgY3Jvc3NBeGlzU3BhY2VCZXR3ZWVuSXRl
bUFuZEdhcCA6IGZsZXhIaWdobGlnaHRPdmVybGF5LnNwYWNlQmV0d2Vlbkl0ZW1zQW5kQ3Jvc3NB
eGlzU3BhY2UpCiAgICAgICAgIGRyYXdMYXlvdXRTdGlwcGxpbmcoY29udGV4dCwgY3Jvc3NBeGlz
U3BhY2VCZXR3ZWVuSXRlbUFuZEdhcCwgc3BhY2VCZXR3ZWVuSXRlbXNBbmRDcm9zc0F4aXNTcGFj
ZVN0aXBwbGluZ0RlbnNpdHkpOworCisgICAgZm9yIChhdXRvIGxhYmVsIDogZmxleEhpZ2hsaWdo
dE92ZXJsYXkubGFiZWxzKQorICAgICAgICBsYWJlbC5kcmF3KGNvbnRleHQpOwogfQogCiBzdGQ6
Om9wdGlvbmFsPEluc3BlY3Rvck92ZXJsYXk6OkhpZ2hsaWdodDo6RmxleEhpZ2hsaWdodE92ZXJs
YXk+IEluc3BlY3Rvck92ZXJsYXk6OmJ1aWxkRmxleE92ZXJsYXkoY29uc3QgSW5zcGVjdG9yT3Zl
cmxheTo6RmxleCYgZmxleE92ZXJsYXkpCkBAIC0xODc4LDE4ICsxODgxLDYwIEBAIHN0ZDo6b3B0
aW9uYWw8SW5zcGVjdG9yT3ZlcmxheTo6SGlnaGxpZ2h0OjpGbGV4SGlnaGxpZ2h0T3ZlcmxheT4g
SW5zcGVjdG9yT3ZlcmxhCiAgICAgZmxvYXQgY3VycmVudExpbmVDcm9zc0F4aXNUcmFpbGluZ0Vk
Z2UgPSBpc0Nyb3NzQXhpc0RpcmVjdGlvblJldmVyc2VkID8gc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpIDogMC4wZjsKICAgICBmbG9hdCBwcmV2aW91c0xpbmVDcm9zc0F4aXNUcmFp
bGluZ0VkZ2UgPSBjb3JyZWN0ZWRDcm9zc0F4aXNMZWFkaW5nRWRnZShjb250YWluZXJSZWN0KTsK
IAotICAgIHNpemVfdCBjdXJyZW50Q2hpbGRJbmRleCA9IDA7CisgICAgVmVjdG9yPFJlbmRlckJv
eCo+IHJlbmRlckNoaWxkcmVuSW5GbGV4T3JkZXI7CisgICAgVmVjdG9yPFJlbmRlck9iamVjdCo+
IHJlbmRlckNoaWxkcmVuSW5ET01PcmRlcjsKKyAgICBib29sIGhhc0N1c3RvbU9yZGVyID0gZmFs
c2U7CisKICAgICBhdXRvIGNoaWxkT3JkZXJJdGVyYXRvciA9IHJlbmRlckZsZXgub3JkZXJJdGVy
YXRvcigpOwogICAgIGZvciAoUmVuZGVyQm94KiByZW5kZXJDaGlsZCA9IGNoaWxkT3JkZXJJdGVy
YXRvci5maXJzdCgpOyByZW5kZXJDaGlsZDsgcmVuZGVyQ2hpbGQgPSBjaGlsZE9yZGVySXRlcmF0
b3IubmV4dCgpKSB7CiAgICAgICAgIGlmIChjaGlsZE9yZGVySXRlcmF0b3Iuc2hvdWxkU2tpcENo
aWxkKCpyZW5kZXJDaGlsZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcmVuZGVy
Q2hpbGRyZW5JbkZsZXhPcmRlci5hcHBlbmQocmVuZGVyQ2hpbGQpOworICAgIH0KIAorICAgIGlm
IChmbGV4T3ZlcmxheS5jb25maWcuc2hvd09yZGVyTnVtYmVycykgeworICAgICAgICBmb3IgKGF1
dG8qIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gY2hpbGQtPnJl
bmRlcmVyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJlbmRlckNoaWxkcmVuSW5GbGV4T3Jk
ZXIuY29udGFpbnMocmVuZGVyZXIpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAgICAgICAgIHJlbmRlckNoaWxkcmVuSW5ET01PcmRlci5hcHBlbmQocmVuZGVyZXIp
OworCisgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLm9yZGVyKCkpCisgICAg
ICAgICAgICAgICAgICAgIGhhc0N1c3RvbU9yZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKworICAgIHNpemVfdCBjdXJyZW50Q2hpbGRJbmRleCA9IDA7CisgICAg
Zm9yIChhdXRvKiByZW5kZXJDaGlsZCA6IHJlbmRlckNoaWxkcmVuSW5GbGV4T3JkZXIpIHsKICAg
ICAgICAgLy8gQnVpbGQgYm91bmRzIGZvciBlYWNoIGNoaWxkIGFuZCBjb2xsZWN0IGNoaWxkcmVu
IG9uIHRoZSBzYW1lIGxvZ2ljYWwgbGluZS4KICAgICAgICAgewogICAgICAgICAgICAgYXV0byBj
aGlsZFJlY3QgPSByZW5kZXJDaGlsZC0+ZnJhbWVSZWN0KCk7CiAgICAgICAgICAgICByZW5kZXJG
bGV4LmZsaXBGb3JXcml0aW5nTW9kZShjaGlsZFJlY3QpOwogICAgICAgICAgICAgY2hpbGRSZWN0
LmV4cGFuZChyZW5kZXJDaGlsZC0+bWFyZ2luQm94KCkpOwotICAgICAgICAgICAgZmxleEhpZ2hs
aWdodE92ZXJsYXkuaXRlbUJvdW5kcy5hcHBlbmQoY2hpbGRRdWFkVG9Sb290UXVhZCh7IGNoaWxk
UmVjdCB9KSk7CisKKyAgICAgICAgICAgIGF1dG8gaXRlbUJvdW5kcyA9IGNoaWxkUXVhZFRvUm9v
dFF1YWQoeyBjaGlsZFJlY3QgfSk7CisgICAgICAgICAgICBmbGV4SGlnaGxpZ2h0T3ZlcmxheS5p
dGVtQm91bmRzLmFwcGVuZChpdGVtQm91bmRzKTsKKworICAgICAgICAgICAgaWYgKGZsZXhPdmVy
bGF5LmNvbmZpZy5zaG93T3JkZXJOdW1iZXJzKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVp
bGRlciBvcmRlck51bWJlcnM7CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBpbmRleCA9IHJl
bmRlckNoaWxkcmVuSW5ET01PcmRlci5maW5kKHJlbmRlckNoaWxkKTsgaW5kZXggIT0gbm90Rm91
bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3JkZXJOdW1iZXJzLmFwcGVuZCgiSXRlbSAjIik7
CisgICAgICAgICAgICAgICAgICAgIG9yZGVyTnVtYmVycy5hcHBlbmQoaW5kZXggKyAxKTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBvcmRlciA9IHJlbmRl
ckNoaWxkLT5zdHlsZSgpLm9yZGVyKCk7IG9yZGVyIHx8IGhhc0N1c3RvbU9yZGVyKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICghb3JkZXJOdW1iZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9yZGVyTnVtYmVycy5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICAgICAg
ICAgIG9yZGVyTnVtYmVycy5hcHBlbmQoIm9yZGVyOiAiKTsKKyAgICAgICAgICAgICAgICAgICAg
b3JkZXJOdW1iZXJzLmFwcGVuZChvcmRlcik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgaWYgKCFvcmRlck51bWJlcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAg
ICBmbGV4SGlnaGxpZ2h0T3ZlcmxheS5sYWJlbHMuYXBwZW5kKHsgb3JkZXJOdW1iZXJzLnRvU3Ry
aW5nKCksIGl0ZW1Cb3VuZHMuY2VudGVyKCksIENvbG9yOjp3aGl0ZS5jb2xvcldpdGhBbHBoYUJ5
dGUoMjMwKSwgeyBJbnNwZWN0b3JPdmVybGF5TGFiZWw6OkFycm93OjpEaXJlY3Rpb246Ok5vbmUs
IEluc3BlY3Rvck92ZXJsYXlMYWJlbDo6QXJyb3c6OkFsaWdubWVudDo6Tm9uZSB9IH0pOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBjdXJyZW50TGluZUNyb3NzQXhpc0xlYWRpbmdFZGdl
ID0gY29ycmVjdGVkQ3Jvc3NBeGlzTWluKGN1cnJlbnRMaW5lQ3Jvc3NBeGlzTGVhZGluZ0VkZ2Us
IGNvcnJlY3RlZENyb3NzQXhpc0xlYWRpbmdFZGdlKGNoaWxkUmVjdCkpOwogICAgICAgICAgICAg
Y3VycmVudExpbmVDcm9zc0F4aXNUcmFpbGluZ0VkZ2UgPSBjb3JyZWN0ZWRDcm9zc0F4aXNNYXgo
Y3VycmVudExpbmVDcm9zc0F4aXNUcmFpbGluZ0VkZ2UsIGNvcnJlY3RlZENyb3NzQXhpc1RyYWls
aW5nRWRnZShjaGlsZFJlY3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5oCmluZGV4IDI3NjczY2EwN2U3YzlkNzc4NTcyZDQ1YjU1YWZmZTgyYmI4ZGRjY2Eu
LmY2YzYxZWFkY2JiNzhjZTFhZTAzZjhjYWMxOWMwOWNiNDhlMmNhZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaApAQCAtMTI0LDYgKzEyNCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IG1haW5BeGlzU3BhY2VCZXR3ZWVu
SXRlbXNBbmRHYXBzOwogICAgICAgICAgICAgVmVjdG9yPEZsb2F0UXVhZD4gc3BhY2VCZXR3ZWVu
SXRlbXNBbmRDcm9zc0F4aXNTcGFjZTsKICAgICAgICAgICAgIFZlY3RvcjxGbG9hdFF1YWQ+IGNy
b3NzQXhpc0dhcHM7CisgICAgICAgICAgICBWZWN0b3I8SW5zcGVjdG9yT3ZlcmxheUxhYmVsPiBs
YWJlbHM7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTgxLDYgKzE4
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRF
RDsKIAogICAgICAgICAgICAgQ29sb3IgZmxleENvbG9yOworICAgICAgICAgICAgYm9vbCBzaG93
T3JkZXJOdW1iZXJzOwogICAgICAgICB9OwogCiAgICAgICAgIFdlYWtQdHI8Tm9kZT4gZmxleE5v
ZGU7CkBAIC0yODYsNiArMjg4LDcgQEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBJbnNw
ZWN0b3JPdmVybGF5OjpIaWdobGlnaHQ6OkZsZXhIaWdobGlnaHRPdmVybGF5OjoKICAgICBlbmNv
ZGVyIDw8IG1haW5BeGlzU3BhY2VCZXR3ZWVuSXRlbXNBbmRHYXBzOwogICAgIGVuY29kZXIgPDwg
c3BhY2VCZXR3ZWVuSXRlbXNBbmRDcm9zc0F4aXNTcGFjZTsKICAgICBlbmNvZGVyIDw8IGNyb3Nz
QXhpc0dhcHM7CisgICAgZW5jb2RlciA8PCBsYWJlbHM7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0ZDo6b3B0aW9uYWw8SW5zcGVjdG9yT3ZlcmxheTo6SGlnaGxpZ2h0OjpGbGV4SGln
aGxpZ2h0T3ZlcmxheT4gSW5zcGVjdG9yT3ZlcmxheTo6SGlnaGxpZ2h0OjpGbGV4SGlnaGxpZ2h0
T3ZlcmxheTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCkBAIC0zMDUsNiArMzA4LDggQEAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxJbnNwZWN0b3JPdmVybGF5OjpIaWdo
bGlnaHQ6OkZsZXhIaWdobGlnaHQKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGZsZXhIaWdobGlnaHRPdmVybGF5LmNyb3NzQXhpc0dhcHMpKQogICAgICAgICBy
ZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmxleEhpZ2hsaWdodE92ZXJsYXku
bGFiZWxzKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4geyBmbGV4SGlnaGxpZ2h0
T3ZlcmxheSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDdlN2ZkNTI5N2JlMjBhZWY3YmU2M2JlMTRj
MDY0YmRhNTU2YjEzYjAuLjBlMTg2YmNlYTcwMWM2NjMxOTg1ZGY0MGJjOWE5YjFlODc4NGYwYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCkBAIC0xNTYwLDcgKzE1NjAsNyBAQCBJbnNwZWN0b3I6OlByb3RvY29sOjpF
cnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvckRPTUFnZW50OjpoaWRlR3JpZE92ZXJsYXkoc3Rk
OgogICAgIHJldHVybiB7IH07CiB9CiAKLUluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gSW5zcGVjdG9yRE9NQWdlbnQ6OnNob3dGbGV4T3ZlcmxheShJbnNwZWN0b3I6OlBy
b3RvY29sOjpET006Ok5vZGVJZCBub2RlSWQsIFJlZjxKU09OOjpPYmplY3Q+JiYgZmxleENvbG9y
KQorSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JET01B
Z2VudDo6c2hvd0ZsZXhPdmVybGF5KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZUlkIG5v
ZGVJZCwgUmVmPEpTT046Ok9iamVjdD4mJiBmbGV4Q29sb3IsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4m
JiBzaG93T3JkZXJOdW1iZXJzKQogewogICAgIFByb3RvY29sOjpFcnJvclN0cmluZyBlcnJvclN0
cmluZzsKICAgICBOb2RlKiBub2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsK
QEAgLTE1NzMsNiArMTU3Myw3IEBAIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8
dm9pZD4gSW5zcGVjdG9yRE9NQWdlbnQ6OnNob3dGbGV4T3ZlcmxheShJbnNwCiAKICAgICBJbnNw
ZWN0b3JPdmVybGF5OjpGbGV4OjpDb25maWcgY29uZmlnOwogICAgIGNvbmZpZy5mbGV4Q29sb3Ig
PSAqcGFyc2VkQ29sb3I7CisgICAgY29uZmlnLnNob3dPcmRlck51bWJlcnMgPSBzaG93T3JkZXJO
dW1iZXJzLnZhbHVlX29yKGZhbHNlKTsKIAogICAgIG1fb3ZlcmxheS0+c2V0RmxleE92ZXJsYXlG
b3JOb2RlKCpub2RlLCBjb25maWcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNGI5Yzc1MTg1ODQ1ZDU0ZTUxMjM2
MTI1YWZlMjEyY2RlODI0NjhiYS4uMmQwNzMxNDdmZjU0OTM3YjRlYTBjZTNmOGVhM2FmNjFhZDk3
NjFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NQWdlbnQuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3I6
OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IGhpZ2hsaWdodEZyYW1lKGNvbnN0IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OkZyYW1lSWQmLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYm
IGNvbG9yLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIG91dGxpbmVDb2xvcik7CiAgICAgSW5zcGVj
dG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzaG93R3JpZE92ZXJsYXkoSW5zcGVj
dG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlSWQsIFJlZjxKU09OOjpPYmplY3Q+JiYgZ3JpZENvbG9y
LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgc2hvd0xpbmVOYW1lcywgc3RkOjpvcHRpb25hbDxib29s
PiYmIHNob3dMaW5lTnVtYmVycywgc3RkOjpvcHRpb25hbDxib29sPiYmIHNob3dFeHRlbmRlZEdy
aWRMaW5lcywgc3RkOjpvcHRpb25hbDxib29sPiYmIHNob3dUcmFja1NpemVzLCBzdGQ6Om9wdGlv
bmFsPGJvb2w+JiYgc2hvd0FyZWFOYW1lcyk7CiAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBoaWRlR3JpZE92ZXJsYXkoc3RkOjpvcHRpb25hbDxJbnNwZWN0b3I6
OlByb3RvY29sOjpET006Ok5vZGVJZD4mJik7Ci0gICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBzaG93RmxleE92ZXJsYXkoSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9N
OjpOb2RlSWQsIFJlZjxKU09OOjpPYmplY3Q+JiYgZmxleENvbG9yKTsKKyAgICBJbnNwZWN0b3I6
OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IHNob3dGbGV4T3ZlcmxheShJbnNwZWN0b3I6
OlByb3RvY29sOjpET006Ok5vZGVJZCwgUmVmPEpTT046Ok9iamVjdD4mJiBmbGV4Q29sb3IsIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mJiBzaG93T3JkZXJOdW1iZXJzKTsKICAgICBJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IGhpZGVGbGV4T3ZlcmxheShzdGQ6Om9wdGlvbmFs
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZUlkPiYmKTsKICAgICBJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZUlkPiBt
b3ZlVG8oSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlSWQgbm9kZUlkLCBJbnNwZWN0b3I6
OlByb3RvY29sOjpET006Ok5vZGVJZCB0YXJnZXROb2RlSWQsIHN0ZDo6b3B0aW9uYWw8SW5zcGVj
dG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlSWQ+JiYgaW5zZXJ0QmVmb3JlTm9kZUlkKTsKICAgICBJ
bnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IHVuZG8oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGU2NWY2YzUzNjFiMjJlZDU3MmEyN2EzMGJlNWM4
OTU3OTYxZDllOWYuLjQxYzI3OTQwNmEyYTQ4YmNiNDhhNmU2M2UzNDA3MjJjMTc2OGJhODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMTA1Miw2ICsxMDUyLDggQEAgbG9j
YWxpemVkU3RyaW5nc1siT3B0aW9uLWNsaWNrIHRvIHNob3cgc291cmNlIl0gPSAiT3B0aW9uLWNs
aWNrIHRvIHNob3cgc291cmNlIjsKIC8qIFRvb2x0aXAgd2l0aCBpbnN0cnVjdGlvbnMgb24gaG93
IHRvIHNob3cgYWxsIGhpZGRlbiBDU1MgdmFyaWFibGVzICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJP
cHRpb24tY2xpY2sgdG8gc2hvdyB1bnVzZWQgQ1NTIHZhcmlhYmxlcyBmcm9tIGFsbCBydWxlcyBA
IFN0eWxlcyBTaWRlYmFyIFBhbmVsIFRvb2x0aXAiXSA9ICJPcHRpb24tY2xpY2sgdG8gc2hvdyB1
bnVzZWQgQ1NTIHZhcmlhYmxlcyBmcm9tIGFsbCBydWxlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJP
cHRpb25zIl0gPSAiT3B0aW9ucyI7CisvKiBMYWJlbCBmb3Igb3B0aW9uIHRvIHRvZ2dsZSB0aGUg
b3JkZXIgbnVtYmVycyBzZXR0aW5nIGZvciBDU1MgZmxleCBvdmVybGF5cyAqLworbG9jYWxpemVk
U3RyaW5nc1siT3JkZXIgTnVtYmVycyBAIExheW91dCBQYW5lbCBPdmVybGF5IE9wdGlvbnMiXSA9
ICJPcmRlciBOdW1iZXJzIjsKIC8qIFByb3BlcnR5IHZhbHVlIGZvciBgZm9udC12YXJpYW50LW51
bWVyaWM6IG9yZGluYWxgLiAqLwogbG9jYWxpemVkU3RyaW5nc1siT3JkaW5hbCBMZXR0ZXIgRm9y
bXMgQCBGb250IERldGFpbHMgU2lkZWJhciBQcm9wZXJ0eSBWYWx1ZSJdID0gIk9yZGluYWwgTGV0
dGVyIEZvcm1zIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9yaWdpbmFsIGZvcm1hdHRpbmciXSA9ICJP
cmlnaW5hbCBmb3JtYXR0aW5nIjsKQEAgLTEwNzUsOCArMTA3NywxMCBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJQREYiXSA9ICJQREYiOwogbG9jYWxpemVkU3RyaW5nc1siUE5HIl0gPSAiUE5HIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlBhZ2UiXSA9ICJQYWdlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBhZ2Ug
SXNzdWUiXSA9ICJQYWdlIElzc3VlIjsKKy8qIEhlYWRpbmcgZm9yIGxpc3Qgb2YgZmxleCBvdmVy
bGF5IG9wdGlvbnMgKi8KK2xvY2FsaXplZFN0cmluZ3NbIlBhZ2UgT3ZlcmxheSBPcHRpb25zIEAg
TGF5b3V0IFBhbmVsIEZsZXggU2VjdGlvbiBIZWFkZXIiXSA9ICJQYWdlIE92ZXJsYXkgT3B0aW9u
cyI7CiAvKiBIZWFkaW5nIGZvciBsaXN0IG9mIGdyaWQgb3ZlcmxheSBvcHRpb25zICovCi1sb2Nh
bGl6ZWRTdHJpbmdzWyJQYWdlIE92ZXJsYXkgT3B0aW9ucyBAIExheW91dCBQYW5lbCBTZWN0aW9u
IEhlYWRlciJdID0gIlBhZ2UgT3ZlcmxheSBPcHRpb25zIjsKK2xvY2FsaXplZFN0cmluZ3NbIlBh
Z2UgT3ZlcmxheSBPcHRpb25zIEAgTGF5b3V0IFBhbmVsIEdyaWQgU2VjdGlvbiBIZWFkZXIiXSA9
ICJQYWdlIE92ZXJsYXkgT3B0aW9ucyI7CiAvKiBIZWFkaW5nIGZvciBsaXN0IG9mIGdyaWQgbm9k
ZXMgKi8KIGxvY2FsaXplZFN0cmluZ3NbIlBhZ2UgT3ZlcmxheXMgQCBMYXlvdXQgU2lkZWJhciBT
ZWN0aW9uIEhlYWRlciJdID0gIkdyaWQgT3ZlcmxheXMiOwogLyogSGVhZGluZyBmb3IgbGlzdCBv
ZiBmbGV4IGNvbnRhaW5lciBub2RlcyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzCmluZGV4IDBhY2RkMWExMzVmY2Q0OGQzODEz
MmRjODQxYTA2NGJjZDkwNDI5MzcuLjI3MjY5MWMxZGJiNzg0NTM3OWRkMTQyYjAyYTk4MmNlOTBm
YzRmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvU2V0dGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1NldHRpbmcuanMKQEAgLTE5Niw2ICsxOTYsNyBAQCBXSS5zZXR0aW5ncyA9IHsKICAgICBl
bmFibGVDb250cm9sRmxvd1Byb2ZpbGVyOiBuZXcgV0kuU2V0dGluZygiZW5hYmxlLWNvbnRyb2wt
Zmxvdy1wcm9maWxlciIsIGZhbHNlKSwKICAgICBlbmFibGVFbGVtZW50c1RhYkluZGVwZW5kZW50
U3R5bGVzRGV0YWlsc1NpZGViYXJQYW5lbDogbmV3IFdJLlNldHRpbmcoImVsZW1lbnRzLXRhYi1p
bmRlcGVuZGVudC1zdHlsZXMtZGV0YWlscy1wYW5lbCIsIHRydWUpLAogICAgIGVuYWJsZUxpbmVX
cmFwcGluZzogbmV3IFdJLlNldHRpbmcoImVuYWJsZS1saW5lLXdyYXBwaW5nIiwgdHJ1ZSksCisg
ICAgZmxleE92ZXJsYXlTaG93T3JkZXJOdW1iZXJzOiBuZXcgV0kuU2V0dGluZygiZmxleC1vdmVy
bGF5LXNob3ctb3JkZXItbnVtYmVycyIsIGZhbHNlKSwKICAgICBmcm9udGVuZEFwcGVhcmFuY2U6
IG5ldyBXSS5TZXR0aW5nKCJmcm9udGVuZC1hcHBlYXJhbmNlIiwgInN5c3RlbSIpLAogICAgIGdy
aWRPdmVybGF5U2hvd0FyZWFOYW1lczogbmV3IFdJLlNldHRpbmcoImdyaWQtb3ZlcmxheS1zaG93
LWFyZWEtbmFtZXMiLCBmYWxzZSksCiAgICAgZ3JpZE92ZXJsYXlTaG93RXh0ZW5kZWRHcmlkTGlu
ZXM6IG5ldyBXSS5TZXR0aW5nKCJncmlkLW92ZXJsYXktc2hvdy1leHRlbmRlZC1ncmlkLWxpbmVz
IiwgZmFsc2UpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvRE9NTm9kZS5qcwppbmRleCBlYjk3NGI4NmIzYmVjMTRhZjNkZmY0MmU2NjUxNGU4
NWNiYTBmMGMzLi5iYWNiZTdkMmRjZWIzOWU1MWY5NzQyNTZkYmQzZmU4OWM1NmQ3N2MyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9k
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZS5qcwpAQCAtMjc5LDEyICsyNzksMTYgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUg
ZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V0kuRE9NTm9kZS5FdmVudC5MYXlvdXRPdmVybGF5SGlkZGVuKTsKIAogICAgICAgICBzd2l0Y2gg
KG9sZExheW91dENvbnRleHRUeXBlKSB7CisgICAgICAgIGNhc2UgV0kuRE9NTm9kZS5MYXlvdXRD
b250ZXh0VHlwZS5GbGV4OgorICAgICAgICAgICAgV0kuc2V0dGluZ3MuZmxleE92ZXJsYXlTaG93
T3JkZXJOdW1iZXJzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRoaXMpOworICAgICAg
ICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBXSS5ET01Ob2RlLkxheW91dENvbnRleHRUeXBl
LkdyaWQ6Ci0gICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dFeHRlbmRlZEdy
aWRMaW5lcy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhp
cy5faGFuZGxlR3JpZExheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAg
ICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dMaW5lTmFtZXMucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUdyaWRMYXlvdXRPdmVy
bGF5U2V0dGluZ0NoYW5nZWQsIHRoaXMpOwotICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92
ZXJsYXlTaG93TGluZU51bWJlcnMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50
LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUdyaWRMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRo
aXMpOwotICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93VHJhY2tTaXplcy5y
ZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxl
R3JpZExheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICBXSS5z
ZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dBcmVhTmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUdyaWRMYXlvdXRPdmVybGF5U2V0dGlu
Z0NoYW5nZWQsIHRoaXMpOworICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93
RXh0ZW5kZWRHcmlkTGluZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNo
YW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Cisg
ICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dMaW5lTmFtZXMucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92
ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlk
T3ZlcmxheVNob3dMaW5lTnVtYmVycy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZl
bnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlTGF5b3V0T3ZlcmxheVNldHRpbmdDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgICAgIFdJLnNldHRpbmdzLmdyaWRPdmVybGF5U2hvd1RyYWNrU2l6ZXMucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxh
eW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICBXSS5zZXR0aW5n
cy5ncmlkT3ZlcmxheVNob3dBcmVhTmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwg
dGhpcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTYyOCwxNyAr
NjMyLDIxIEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgICAgICBhZ2VudENvbW1hbmRGdW5jdGlvbiA9IHRhcmdldC5ET01BZ2VudC5zaG93R3Jp
ZE92ZXJsYXk7CiAKICAgICAgICAgICAgIGlmICghdGhpcy5fbGF5b3V0T3ZlcmxheVNob3dpbmcp
IHsKLSAgICAgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dFeHRlbmRlZEdy
aWRMaW5lcy5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5f
aGFuZGxlR3JpZExheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAg
ICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93TGluZU5hbWVzLmFkZEV2ZW50TGlzdGVu
ZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVHcmlkTGF5b3V0T3Zlcmxh
eVNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlk
T3ZlcmxheVNob3dMaW5lTnVtYmVycy5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQu
Q2hhbmdlZCwgdGhpcy5faGFuZGxlR3JpZExheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhp
cyk7Ci0gICAgICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93VHJhY2tTaXpl
cy5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxl
R3JpZExheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICAgICAg
V0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93QXJlYU5hbWVzLmFkZEV2ZW50TGlzdGVuZXIoV0ku
U2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVHcmlkTGF5b3V0T3ZlcmxheVNldHRp
bmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3Zlcmxh
eVNob3dFeHRlbmRlZEdyaWRMaW5lcy5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQu
Q2hhbmdlZCwgdGhpcy5faGFuZGxlTGF5b3V0T3ZlcmxheVNldHRpbmdDaGFuZ2VkLCB0aGlzKTsK
KyAgICAgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dMaW5lTmFtZXMuYWRk
RXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91
dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICAgICAgV0kuc2V0dGlu
Z3MuZ3JpZE92ZXJsYXlTaG93TGluZU51bWJlcnMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwg
dGhpcyk7CisgICAgICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93VHJhY2tT
aXplcy5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFu
ZGxlTGF5b3V0T3ZlcmxheVNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICBX
SS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dBcmVhTmFtZXMuYWRkRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hh
bmdlZCwgdGhpcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg
ICBjYXNlIFdJLkRPTU5vZGUuTGF5b3V0Q29udGV4dFR5cGUuRmxleDoKICAgICAgICAgICAgIGFn
ZW50Q29tbWFuZEFyZ3VtZW50cy5mbGV4Q29sb3IgPSBjb2xvci50b1Byb3RvY29sKCk7CisgICAg
ICAgICAgICBhZ2VudENvbW1hbmRBcmd1bWVudHMuc2hvd09yZGVyTnVtYmVycyA9IFdJLnNldHRp
bmdzLmZsZXhPdmVybGF5U2hvd09yZGVyTnVtYmVycy52YWx1ZTsKICAgICAgICAgICAgIGFnZW50
Q29tbWFuZEZ1bmN0aW9uID0gdGFyZ2V0LkRPTUFnZW50LnNob3dGbGV4T3ZlcmxheTsKKworICAg
ICAgICAgICAgaWYgKCF0aGlzLl9sYXlvdXRPdmVybGF5U2hvd2luZykKKyAgICAgICAgICAgICAg
ICBXSS5zZXR0aW5ncy5mbGV4T3ZlcmxheVNob3dPcmRlck51bWJlcnMuYWRkRXZlbnRMaXN0ZW5l
cihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0
aW5nQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC02
NjQsMTYgKzY3MiwxOCBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgICAgIHN3aXRjaCAodGhpcy5fbGF5b3V0Q29udGV4dFR5cGUpIHsKICAgICAg
ICAgY2FzZSBXSS5ET01Ob2RlLkxheW91dENvbnRleHRUeXBlLkdyaWQ6Ci0gICAgICAgICAgICBX
SS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dFeHRlbmRlZEdyaWRMaW5lcy5yZW1vdmVFdmVudExp
c3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlR3JpZExheW91dE92
ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlk
T3ZlcmxheVNob3dMaW5lTmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50
LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUdyaWRMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRo
aXMpOwotICAgICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93TGluZU51bWJlcnMu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRs
ZUdyaWRMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRoaXMpOwotICAgICAgICAgICAgV0ku
c2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93VHJhY2tTaXplcy5yZW1vdmVFdmVudExpc3RlbmVyKFdJ
LlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlR3JpZExheW91dE92ZXJsYXlTZXR0
aW5nQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNo
b3dBcmVhTmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQs
IHRoaXMuX2hhbmRsZUdyaWRMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRoaXMpOworICAg
ICAgICAgICAgV0kuc2V0dGluZ3MuZ3JpZE92ZXJsYXlTaG93RXh0ZW5kZWRHcmlkTGluZXMucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxh
eW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICBXSS5zZXR0aW5n
cy5ncmlkT3ZlcmxheVNob3dMaW5lTmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwg
dGhpcyk7CisgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dMaW5lTnVtYmVy
cy5yZW1vdmVFdmVudExpc3RlbmVyKFdJLlNldHRpbmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFu
ZGxlTGF5b3V0T3ZlcmxheVNldHRpbmdDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIFdJLnNl
dHRpbmdzLmdyaWRPdmVybGF5U2hvd1RyYWNrU2l6ZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5T
ZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hh
bmdlZCwgdGhpcyk7CisgICAgICAgICAgICBXSS5zZXR0aW5ncy5ncmlkT3ZlcmxheVNob3dBcmVh
TmFtZXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMu
X2hhbmRsZUxheW91dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgICAg
IGFnZW50Q29tbWFuZEZ1bmN0aW9uID0gdGFyZ2V0LkRPTUFnZW50LmhpZGVHcmlkT3ZlcmxheTsK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgV0kuRE9NTm9kZS5MYXlvdXRDb250
ZXh0VHlwZS5GbGV4OgorICAgICAgICAgICAgV0kuc2V0dGluZ3MuZmxleE92ZXJsYXlTaG93T3Jk
ZXJOdW1iZXJzLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0
aGlzLl9oYW5kbGVMYXlvdXRPdmVybGF5U2V0dGluZ0NoYW5nZWQsIHRoaXMpOworCiAgICAgICAg
ICAgICBhZ2VudENvbW1hbmRGdW5jdGlvbiA9IHRhcmdldC5ET01BZ2VudC5oaWRlRmxleE92ZXJs
YXk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTI1OSw3ICsxMjY5LDcgQEAg
V0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhp
cy5fbGF5b3V0T3ZlcmxheUNvbG9yU2V0dGluZyA9IG5ldyBXSS5TZXR0aW5nKGBvdmVybGF5LWNv
bG9yLSR7dXJsLmhhc2h9LSR7dGhpcy5wYXRoKCkuaGFzaH1gLCBkZWZhdWx0Q29uZmlndXJhdGlv
bi5jb2xvcnNbbmV4dENvbG9ySW5kZXhdKTsKICAgICB9CiAKLSAgICBfaGFuZGxlR3JpZExheW91
dE92ZXJsYXlTZXR0aW5nQ2hhbmdlZChldmVudCkKKyAgICBfaGFuZGxlTGF5b3V0T3ZlcmxheVNl
dHRpbmdDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2xheW91dE92ZXJs
YXlTaG93aW5nKQogICAgICAgICAgICAgdGhpcy5zaG93TGF5b3V0T3ZlcmxheSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTRmxleE5v
ZGVPdmVybGF5TGlzdFNlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DU1NGbGV4Tm9kZU92ZXJsYXlMaXN0U2VjdGlvbi5qcwppbmRleCA4ZTYwMTIy
YzNkODhlYjkxNWQ0MmFkNDI1Yzg5MTc1ZDA4YzQ5MzYyLi4wMmFhMWQ3ODY1N2Q1NWIxNzUyMjg5
ZmIwNTViNjRlYTI5Y2Y2NTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DU1NGbGV4Tm9kZU92ZXJsYXlMaXN0U2VjdGlvbi5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NGbGV4Tm9kZU92ZXJs
YXlMaXN0U2VjdGlvbi5qcwpAQCAtMzEsNCArMzEsMTQgQEAgV0kuQ1NTRmxleE5vZGVPdmVybGF5
TGlzdFNlY3Rpb24gPSBjbGFzcyBDU1NGbGV4Tm9kZU92ZXJsYXlMaXN0U2VjdGlvbiBleHRlbmRz
IFcKICAgICB7CiAgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiRmxleGJveCBPdmVybGF5cyIs
ICJQYWdlIE92ZXJsYXlzIGZvciBGbGV4IGNvbnRhaW5lcnMgQCBMYXlvdXQgU2lkZWJhciBTZWN0
aW9uIEhlYWRlciIsICJIZWFkaW5nIGZvciBsaXN0IG9mIGZsZXggY29udGFpbmVyIG5vZGVzIik7
CiAgICAgfQorCisgICAgaW5pdGlhbExheW91dCgpCisgICAgeworICAgICAgICBsZXQgc2V0dGlu
Z3NHcm91cCA9IG5ldyBXSS5TZXR0aW5nc0dyb3VwKFdJLlVJU3RyaW5nKCJQYWdlIE92ZXJsYXkg
T3B0aW9ucyIsICJQYWdlIE92ZXJsYXkgT3B0aW9ucyBAIExheW91dCBQYW5lbCBGbGV4IFNlY3Rp
b24gSGVhZGVyIiwgIkhlYWRpbmcgZm9yIGxpc3Qgb2YgZmxleCBvdmVybGF5IG9wdGlvbnMiKSk7
CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoc2V0dGluZ3NHcm91cC5lbGVtZW50KTsKKwor
ICAgICAgICBzZXR0aW5nc0dyb3VwLmFkZFNldHRpbmcoV0kuc2V0dGluZ3MuZmxleE92ZXJsYXlT
aG93T3JkZXJOdW1iZXJzLCBXSS5VSVN0cmluZygiT3JkZXIgTnVtYmVycyIsICJPcmRlciBOdW1i
ZXJzIEAgTGF5b3V0IFBhbmVsIE92ZXJsYXkgT3B0aW9ucyIsICJMYWJlbCBmb3Igb3B0aW9uIHRv
IHRvZ2dsZSB0aGUgb3JkZXIgbnVtYmVycyBzZXR0aW5nIGZvciBDU1MgZmxleCBvdmVybGF5cyIp
KTsKKworICAgICAgICBzdXBlci5pbml0aWFsTGF5b3V0KCk7CisgICAgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU0dyaWROb2Rl
T3ZlcmxheUxpc3RTZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTR3JpZE5vZGVPdmVybGF5TGlzdFNlY3Rpb24uanMKaW5kZXggYzhhZGEwZWVj
ZjkzNzRlYmIzYTk5OTJiYzZhNzQxNzRjYTkzMzUyMi4uYmEzY2M3OWU1ODJmYTYxNzc5MTI5Njkw
NzU0NzliZDY2ZGQyNzY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTR3JpZE5vZGVPdmVybGF5TGlzdFNlY3Rpb24uanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTR3JpZE5vZGVPdmVybGF5
TGlzdFNlY3Rpb24uanMKQEAgLTM0LDcgKzM0LDcgQEAgV0kuQ1NTR3JpZE5vZGVPdmVybGF5TGlz
dFNlY3Rpb24gPSBjbGFzcyBDU1NHcmlkTm9kZU92ZXJsYXlMaXN0U2VjdGlvbiBleHRlbmRzIFcK
IAogICAgIGluaXRpYWxMYXlvdXQoKQogICAgIHsKLSAgICAgICAgbGV0IHNldHRpbmdzR3JvdXAg
PSBuZXcgV0kuU2V0dGluZ3NHcm91cChXSS5VSVN0cmluZygiUGFnZSBPdmVybGF5IE9wdGlvbnMi
LCAiUGFnZSBPdmVybGF5IE9wdGlvbnMgQCBMYXlvdXQgUGFuZWwgU2VjdGlvbiBIZWFkZXIiLCAi
SGVhZGluZyBmb3IgbGlzdCBvZiBncmlkIG92ZXJsYXkgb3B0aW9ucyIpKTsKKyAgICAgICAgbGV0
IHNldHRpbmdzR3JvdXAgPSBuZXcgV0kuU2V0dGluZ3NHcm91cChXSS5VSVN0cmluZygiUGFnZSBP
dmVybGF5IE9wdGlvbnMiLCAiUGFnZSBPdmVybGF5IE9wdGlvbnMgQCBMYXlvdXQgUGFuZWwgR3Jp
ZCBTZWN0aW9uIEhlYWRlciIsICJIZWFkaW5nIGZvciBsaXN0IG9mIGdyaWQgb3ZlcmxheSBvcHRp
b25zIikpOwogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHNldHRpbmdzR3JvdXAuZWxlbWVu
dCk7CiAKICAgICAgICAgc2V0dGluZ3NHcm91cC5hZGRTZXR0aW5nKFdJLnNldHRpbmdzLmdyaWRP
dmVybGF5U2hvd1RyYWNrU2l6ZXMsIFdJLlVJU3RyaW5nKCJUcmFjayBTaXplcyIsICJUcmFjayBz
aXplcyBAIExheW91dCBQYW5lbCBPdmVybGF5IE9wdGlvbnMiLCAiTGFiZWwgZm9yIG9wdGlvbiB0
byB0b2dnbGUgdGhlIHRyYWNrIHNpemVzIHNldHRpbmcgZm9yIENTUyBncmlkIG92ZXJsYXlzIikp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>