<?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>233248</bug_id>
          
          <creation_ts>2021-11-17 02:58:19 -0800</creation_ts>
          <short_desc>AX: Use ObjectIdentifier for AXID</short_desc>
          <delta_ts>2021-11-18 01:51:52 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233004</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>
          <dependson>233260</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815884</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-17 02:58:19 -0800</bug_when>
    <thetext>Use ObjectIdentifier for AXID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815885</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-17 02:58:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/85497145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815886</commentid>
    <comment_count>2</comment_count>
      <attachid>444503</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-17 03:00:05 -0800</bug_when>
    <thetext>Created attachment 444503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815890</commentid>
    <comment_count>3</comment_count>
      <attachid>444505</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-17 03:45:55 -0800</bug_when>
    <thetext>Created attachment 444505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815899</commentid>
    <comment_count>4</comment_count>
      <attachid>444509</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-17 05:08:10 -0800</bug_when>
    <thetext>Created attachment 444509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815946</commentid>
    <comment_count>5</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2021-11-17 08:13:59 -0800</bug_when>
    <thetext>I re-ran the tests with this patch and the results look good to me for Clang + Mac.

(re-posting https://bugs.webkit.org/show_bug.cgi?id=233004#c5)

My main is currently at revision: https://github.com/WebKit/WebKit/commit/ce9ed8749594cb74cb8b154c56c91a8fe0bac858

Main: 161 text failures, 3 crashes, 8 timeouts
Main + patch https://bugs.webkit.org/attachment.cgi?id=444509&amp;action=prettypatch: 160 text failures, 2 crashes, 9 timeouts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815993</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-17 10:14:34 -0800</bug_when>
    <thetext>Committed r285934 (244343@main): &lt;https://commits.webkit.org/244343@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444509.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815998</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-11-17 10:25:37 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 233260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816338</commentid>
    <comment_count>8</comment_count>
      <attachid>444645</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-18 00:49:44 -0800</bug_when>
    <thetext>Created attachment 444645
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816341</commentid>
    <comment_count>9</comment_count>
      <attachid>444647</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-18 01:11:33 -0800</bug_when>
    <thetext>Created attachment 444647
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816353</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-18 01:51:52 -0800</bug_when>
    <thetext>Committed r285991 (244388@main): &lt;https://commits.webkit.org/244388@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444503</attachid>
            <date>2021-11-17 03:00:05 -0800</date>
            <delta_ts>2021-11-17 03:45:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-axid.diff</filename>
            <type>text/plain</type>
            <size>23424</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzdiNTdiMWQ5OTYuLjdlYmJiNmJiMmI4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUxIEBACisyMDIxLTExLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNhY2hl
QW5kSW5pdGlhbGl6ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpkZXRhY2gpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YXNzb2NpYXRlZEFYT2JqZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJv
dyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0
VGVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpvYmplY3RB
dHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
Ojpub2RlRm9ySUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Omlk
c0Zvck9iamVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZUNoaWxkcmVuSURzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5l
cmF0ZVN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGF0dGFjaEFYT2JqZWN0
Ol0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYXR0YWNo
SXNvbGF0ZWRPYmplY3Q6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZSBkZXRhY2hdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlIGRldGFjaElzb2xhdGVkT2JqZWN0Ol0pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
d2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorCiAyMDIxLTExLTE2ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI4MDA3OCwgcjI4MDI5MCBhbmQgcjI4MjAwOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ0OTNmNjA5NTI3Yi4uNTNiNjFi
YmU5NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKQEAgLTEyNCw4ICsxMjQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNvbnN0IEFYSUQgSW52YWxpZEFYSUQgPSAwOwotCiAvLyBQ
b3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVsZHMgb3IgZWxl
bWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50ZXJ2YWwgdG8g
dGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsIHsgMjVf
bXMgfTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGFjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ2hhbmdl
ZE5vdGlmaWNhdGlvbkludGVydmFsIHsgMjBfbXMgfTsKQEAgLTQxOCw3ICs0MTYsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoTm9kZSogZm9jdXNl
ZE5vZGUpCiAgICAgYXV0byogZm9jdXMgPSBnZXRPckNyZWF0ZShmb2N1c2VkTm9kZSk7CiAKICAg
ICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1fcGFnZUlE
KSkKLSAgICAgICAgdHJlZS0+c2V0Rm9jdXNlZE5vZGVJRChmb2N1cyA/IGZvY3VzLT5vYmplY3RJ
RCgpIDogSW52YWxpZEFYSUQpOworICAgICAgICB0cmVlLT5zZXRGb2N1c2VkTm9kZUlEKGZvY3Vz
ID8gZm9jdXMtPm9iamVjdElEKCkgOiBBWElEKCkpOwogfQogI2VuZGlmCiAKQEAgLTQyOCw3ICs0
MjYsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoV2lkZ2V0KiB3
aWRnZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAKICAgICBBWElEIGF4SUQg
PSBtX3dpZGdldE9iamVjdE1hcHBpbmcuZ2V0KHdpZGdldCk7Ci0gICAgQVNTRVJUKCFIYXNoVHJh
aXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShheElEKSk7CisgICAgQVNTRVJUKCFheElELmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCkpOwogICAgIGlmICghYXhJRCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCkBAIC00NDEsNyArNDM5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhP
YmplY3RDYWNoZTo6Z2V0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIAogICAgIEFYSUQgYXhJRCA9IG1fcmVuZGVyT2JqZWN0TWFwcGluZy5nZXQo
cmVuZGVyZXIpOwotICAgIEFTU0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUo
YXhJRCkpOworICAgIEFTU0VSVCghYXhJRC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKTsKICAg
ICBpZiAoIWF4SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC00NTMsMTEgKzQ1MSwx
MSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoTm9kZSogbm9kZSkK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQVhJRCByZW5k
ZXJJRCA9IG5vZGUtPnJlbmRlcmVyKCkgPyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0KG5vZGUt
PnJlbmRlcmVyKCkpIDogMDsKLSAgICBBU1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRl
ZFZhbHVlKHJlbmRlcklEKSk7CisgICAgQVhJRCByZW5kZXJJRCA9IG5vZGUtPnJlbmRlcmVyKCkg
PyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0KG5vZGUtPnJlbmRlcmVyKCkpIDogQVhJRCgpOwor
ICAgIEFTU0VSVCghcmVuZGVySUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAKICAgICBB
WElEIG5vZGVJRCA9IG1fbm9kZU9iamVjdE1hcHBpbmcuZ2V0KG5vZGUpOwotICAgIEFTU0VSVCgh
SGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUobm9kZUlEKSk7CisgICAgQVNTRVJUKCFu
b2RlSUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAKICAgICBpZiAobm9kZS0+cmVuZGVy
ZXIoKSAmJiBub2RlSUQgJiYgIXJlbmRlcklEKSB7CiAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBl
biBpZiBhbiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCBpcyBjcmVhdGVkIGZvciBhIG5vZGUgdGhh
dCdzIG5vdApAQCAtNjExLDcgKzYwOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2FjaGVBbmRJ
bml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBuZXdPYmplY3QsIERPCiB7CiAg
ICAgQVNTRVJUKG5ld09iamVjdCk7CiAgICAgQVhJRCBheElEID0gZ2V0QVhJRChuZXdPYmplY3Qp
OwotICAgIEFTU0VSVChheElEICE9IEludmFsaWRBWElEKTsKKyAgICBBU1NFUlQoYXhJRC5pc1Zh
bGlkKCkpOwogCiAgICAgV1RGOjpzd2l0Y2hPbihkb21PYmplY3QsCiAgICAgICAgIFsmYXhJRCwg
dGhpc10gKFJlbmRlck9iamVjdCogdHlwZWRWYWx1ZSkgeyBtX3JlbmRlck9iamVjdE1hcHBpbmcu
c2V0KHR5cGVkVmFsdWUsIGF4SUQpOyB9LApAQCAtODk1LDE2ICs4OTMsMTAgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0KiB2aWV3KQogI2lmICFQTEFURk9STShXSU4pCiBBWElE
IEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkgY29uc3QKIHsKLSAgICBzdGF0
aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKLQotICAgIC8vIEdlbmVyYXRlIGEgbmV3IElELgotICAg
IEFYSUQgb2JqSUQgPSBsYXN0VXNlZElEOworICAgIEFYSUQgb2JqSUQ7CiAgICAgZG8gewotICAg
ICAgICArK29iaklEOwotICAgIH0gd2hpbGUgKCFvYmpJRCB8fCBIYXNoVHJhaXRzPEFYSUQ+Ojpp
c0RlbGV0ZWRWYWx1ZShvYmpJRCkgfHwgbV9pZHNJblVzZS5jb250YWlucyhvYmpJRCkpOwotCi0g
ICAgbGFzdFVzZWRJRCA9IG9iaklEOwotCisgICAgICAgIG9iaklEID0gQVhJRDo6Z2VuZXJhdGUo
KTsKKyAgICB9IHdoaWxlICghb2JqSUQuaXNWYWxpZCgpIHx8IG1faWRzSW5Vc2UuY29udGFpbnMo
b2JqSUQpKTsKICAgICByZXR1cm4gb2JqSUQ7CiB9CiAjZW5kaWYKQEAgLTkxNCw3ICs5MDYsNyBA
QCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IEFYT2JqZWN0Q2FjaGU6Om9iamVjdHNGb3JJ
RHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
ICAgICByZXR1cm4gYXhJRHMubWFwKFt0aGlzXSAoQVhJRCBheElEKSAtPiBSZWZQdHI8QVhDb3Jl
T2JqZWN0PiB7Ci0gICAgICAgIEFTU0VSVChheElEICE9IEludmFsaWRBWElEKTsKKyAgICAgICAg
QVNTRVJUKGF4SUQuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIG9iamVjdEZyb21BWElEKGF4
SUQpOwogICAgIH0pOwogfQpAQCAtMzI3Miw3ICszMjY0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYTm90aWZpY2F0aW9u
IG5vdGkKICAgICBBWExPRyhzdGQ6Om1ha2VfcGFpcigmb2JqZWN0LCBub3RpZmljYXRpb24pKTsK
ICAgICBBWExPRygqdGhpcyk7CiAKLSAgICBpZiAoIW1fcGFnZUlEIHx8IG9iamVjdC5vYmplY3RJ
RCgpID09IEludmFsaWRBWElEKSB7CisgICAgaWYgKCFtX3BhZ2VJRCB8fCAhb2JqZWN0Lm9iamVj
dElEKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIEFYTE9HKCJObyBwYWdlSUQgb3Igb2JqZWN0SUQi
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMzNTIsNyArMzM0NCw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVm
UHRyPEFYQ29yZU9iamVjCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0
PiwgQVhOb3RpZmljYXRpb24+PiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnM7CiAgICAgZm9yIChjb25z
dCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKSB7CiAgICAgICAgIEFYTE9HKG5v
dGlmaWNhdGlvbik7Ci0gICAgICAgIGlmICghbm90aWZpY2F0aW9uLmZpcnN0IHx8IG5vdGlmaWNh
dGlvbi5maXJzdC0+b2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCkKKyAgICAgICAgaWYgKCFub3Rp
ZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKS5pc1ZhbGlk
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBzd2l0Y2ggKG5vdGlmaWNhdGlv
bi5zZWNvbmQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKaW5kZXggM2I3NzI0YzgyODUyLi5kZDljOWNkZDJlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFZp
c2libGVQb3NpdGlvbjsKIGNsYXNzIFdpZGdldDsKIAogc3RydWN0IFRleHRNYXJrZXJEYXRhIHsK
LSAgICBBWElEIGF4SUQgeyAwIH07CisgICAgQVhJRCBheElEOwogCiAgICAgTm9kZSogbm9kZSB7
IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBvZmZzZXQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGU5MTM0ZGFk
MGRmOS4uMjFmZjRhMjhhNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtODI4LDcgKzgyOCw3IEBAIHByb3RlY3RlZDog
Ly8gRklYTUU6IE1ha2UgdGhlIGRhdGEgbWVtYmVycyBwcml2YXRlLgogICAgIG11dGFibGUgYm9v
bCBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwogICAgIEFjY2Vzc2liaWxpdHlSb2xl
IG1fcm9sZSB7IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duIH07CiBwcml2YXRlOgotICAgIEFY
SUQgbV9pZCB7IDAgfTsKKyAgICBBWElEIG1faWQ7CiAgICAgT3B0aW9uU2V0PEFYQW5jZXN0b3JG
bGFnPiBtX2FuY2VzdG9yRmxhZ3M7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBt
X2xhc3RLbm93bklzSWdub3JlZFZhbHVlIHsgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6
RGVmYXVsdEJlaGF2aW9yIH07CiBwcm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYWtlIHRoZSBkYXRhIG1l
bWJlcnMgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggY2E5YTBjZWJkMmZiLi5l
MTU5NjIxYzg1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTkzLDggKzk0LDggQEAgY2xh
c3MgU2Nyb2xsVmlldzsKIHN0cnVjdCBBY2Nlc3NpYmlsaXR5VGV4dDsKIHN0cnVjdCBTY3JvbGxS
ZWN0VG9WaXNpYmxlT3B0aW9uczsKIAotdXNpbmcgQVhJRCA9IHNpemVfdDsKLWV4dGVybiBjb25z
dCBBWElEIEludmFsaWRBWElEOworZW51bSBBWElEVHlwZSB7IH07Cit1c2luZyBBWElEID0gT2Jq
ZWN0SWRlbnRpZmllcjxBWElEVHlwZT47CiAKIGVudW0gY2xhc3MgQVhBbmNlc3RvckZsYWcgOiB1
aW50OF90IHsKICAgICAvLyBXaGVuIHRoZSBmbGFncyBhcmVuJ3QgaW5pdGlhbGl6ZWQsIGl0IG1l
YW5zIHRoZSBvYmplY3QgaGFzbid0IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdHJlZSwKQEAgLTE1
ODIsNyArMTU4Myw3IEBAIGlubGluZSB2b2lkIEFYQ29yZU9iamVjdDo6ZGV0YWNoKEFjY2Vzc2li
aWxpdHlEZXRhY2htZW50VHlwZSBkZXRhY2htZW50VHlwZSkKIHsKICAgICBkZXRhY2hXcmFwcGVy
KGRldGFjaG1lbnRUeXBlKTsKICAgICBkZXRhY2hSZW1vdGVQYXJ0cyhkZXRhY2htZW50VHlwZSk7
Ci0gICAgc2V0T2JqZWN0SUQoSW52YWxpZEFYSUQpOworICAgIHNldE9iamVjdElEKHsgfSk7CiB9
CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNw
cAppbmRleCA3MDNjOTc4M2M4MjAuLjMzZjljMWU1NDljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEdEQnVzSW50ZXJmYWNlVlRhYmxlIEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaTo6c19hY2Nlc3NpYmxlRnVuY3Rpb25zID0gewogICAgICAgICBp
ZiAoIWdfc3RyY21wMChwcm9wZXJ0eU5hbWUsICJMb2NhbGUiKSkKICAgICAgICAgICAgIHJldHVy
biBnX3ZhcmlhbnRfbmV3X3N0cmluZyhzZXRsb2NhbGUoTENfTUVTU0FHRVMsIG51bGxwdHIpKTsK
ICAgICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiQWNjZXNzaWJsZUlkIikpCi0g
ICAgICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoYXRzcGlPYmplY3QtPm1fYXhP
YmplY3QgPyBTdHJpbmc6Om51bWJlcihhdHNwaU9iamVjdC0+bV9heE9iamVjdC0+b2JqZWN0SUQo
KSkudXRmOCgpLmRhdGEoKSA6ICIiKTsKKyAgICAgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3
X3N0cmluZyhhdHNwaU9iamVjdC0+bV9heE9iamVjdCA/IFN0cmluZzo6bnVtYmVyKGF0c3BpT2Jq
ZWN0LT5tX2F4T2JqZWN0LT5vYmplY3RJRCgpLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkgOiAi
Iik7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKHByb3BlcnR5TmFtZSwgIlBhcmVudCIpKQogICAg
ICAgICAgICAgcmV0dXJuIGF0c3BpT2JqZWN0LT5wYXJlbnRSZWZlcmVuY2UoKTsKICAgICAgICAg
aWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiQ2hpbGRDb3VudCIpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcAppbmRleCBiYTUwODRhNzNmMWMuLmY5ZGRlY2NiODVjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgQVhJc29sYXRlZE9iamVjdDo6
QVhJc29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmIG9iamVjdCwgQVhJc29sYXRlZFRyZWUqIHRy
ZWUsIEEKICAgICAsIG1faWQob2JqZWN0Lm9iamVjdElEKCkpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBpZiAobV9pZCAhPSBJbnZhbGlkQVhJRCkKLSAgICAgICAgaW5pdGlh
bGl6ZUF0dHJpYnV0ZURhdGEob2JqZWN0LCBwYXJlbnRJRCA9PSBJbnZhbGlkQVhJRCk7CisgICAg
aWYgKG1faWQuaXNWYWxpZCgpKQorICAgICAgICBpbml0aWFsaXplQXR0cmlidXRlRGF0YShvYmpl
Y3QsICFwYXJlbnRJRC5pc1ZhbGlkKCkpOwogICAgIGVsc2UgewogICAgICAgICAvLyBTaG91bGQg
bmV2ZXIgaGFwcGVuIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTQzOCw3ICs0MzgsNyBAQCBBWENvcmVPYmplY3QqIEFYSXNvbGF0
ZWRPYmplY3Q6OmFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAotICAgIGlmIChtX2lkID09IEludmFsaWRBWElEKQorICAgIGlmICghbV9p
ZC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGF1dG8qIGF4
T2JqZWN0Q2FjaGUgPSB0aGlzLT5heE9iamVjdENhY2hlKCkpIHsKQEAgLTUyOSw3ICs1MjksNyBA
QCBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWQoKSBjb25zdAogCiB2b2lkIEFYSXNv
bGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQoKQogewotICAgIG1fcGFyZW50SUQgPSBJbnZh
bGlkQVhJRDsKKyAgICBtX3BhcmVudElEID0geyB9OwogfQogCiBjb25zdCBBWENvcmVPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgQVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4o
Ym9vbCkKQEAgLTU4Nyw3ICs1ODcsNyBAQCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0Ojpjb250ZW50cygpCiAKIGJvb2wgQVhJc29sYXRl
ZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQoKQogewotICAgIGlmIChwYXJlbnQoKSAhPSBJ
bnZhbGlkQVhJRCkKKyAgICBpZiAocGFyZW50KCkuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAvLyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgdGhlIHJvb3Qgbm9kZSwgaW4g
d2hpY2ggY2FzZSB3ZSBzaG91bGQgcmV0dXJuIGZhbHNlLgpAQCAtNjAzLDcgKzYwMyw3IEBAIEFY
Q29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25l
ZCBjb2x1bW5JbmRleCwgdW5zaWduCiAgICAgICAgICAgICBpZiAoYXV0byBjZWxsID0gb2JqZWN0
LT5jZWxsRm9yQ29sdW1uQW5kUm93KGNvbHVtbkluZGV4LCByb3dJbmRleCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNlbGwtPm9iamVjdElEKCk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IEludmFsaWRBWElEOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0pOwogCiAgICAgcmV0dXJu
IHRyZWUoKS0+bm9kZUZvcklEKGNlbGxJRCkuZ2V0KCk7CkBAIC04MTAsNyArODEwLDcgQEAgQVhD
b3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJ
bnRQb2ludCYgcG9pbnQpIGNvbnMKICAgICAgICAgICAgICAgICByZXR1cm4gYXhPYmplY3QtPm9i
amVjdElEKCk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gSW52YWxpZEFYSUQ7CisgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfSk7CiAKICAgICByZXR1cm4gdHJlZSgpLT5ub2RlRm9ySUQo
YXhJRCkuZ2V0KCk7CkBAIC04MzAsNyArODMwLDcgQEAgQVhDb3JlT2JqZWN0KiBBWElzb2xhdGVk
T2JqZWN0OjpvYmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUK
ICAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJvcGVydHlOYW1lKTsKICAgICBB
WElEIG5vZGVJRCA9IFdURjo6c3dpdGNoT24odmFsdWUsCiAgICAgICAgIFtdIChBWElEJiB0eXBl
ZFZhbHVlKSAtPiBBWElEIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0sCi0gICAgICAgIFtdIChhdXRv
JikgeyByZXR1cm4gSW52YWxpZEFYSUQ7IH0KKyAgICAgICAgW10gKGF1dG8mKSB7IHJldHVybiBB
WElEKCk7IH0KICAgICApOwogCiAgICAgcmV0dXJuIHRyZWUoKS0+bm9kZUZvcklEKG5vZGVJRCku
Z2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggNjkyOTM1YTk3NGY0Li4zYjRlZWEx
ZmJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTY2Nyw4ICs2NjcsOCBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJlZlB0
cjxBWElzb2xhdGVkVHJlZT4gbV9jYWNoZWRUcmVlOwotICAgIEFYSUQgbV9wYXJlbnRJRCB7IElu
dmFsaWRBWElEIH07Ci0gICAgQVhJRCBtX2lkIHsgSW52YWxpZEFYSUQgfTsKKyAgICBBWElEIG1f
cGFyZW50SUQ7CisgICAgQVhJRCBtX2lkOwogICAgIFZlY3RvcjxBWElEPiBtX2NoaWxkcmVuSURz
OwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gbV9jaGlsZHJlbjsKICAgICBBWFBy
b3BlcnR5TWFwIG1fcHJvcGVydHlNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggOGVj
OTEzYjljMWVlLi44ZGUxYzkwMzg0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTE0
Niw3ICsxNDYsNyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6Om5v
ZGVGb3JJRChBWElEIGF4SUQpIGNvbnN0CiAgICAgaWYgKG1fdXNlZE9uQVhUaHJlYWQgJiYgaXNN
YWluVGhyZWFkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIGF4SUQg
IT0gSW52YWxpZEFYSUQgPyBtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQpIDogbnVsbHB0
cjsKKyAgICByZXR1cm4gYXhJRC5pc1ZhbGlkKCkgPyBtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0
KGF4SUQpIDogbnVsbHB0cjsKIH0KIAogVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBBWElz
b2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGF4SURzKSBjb25z
dApAQCAtMTY2LDcgKzE2Niw3IEBAIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gQVhJc29s
YXRlZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBhCiBWZWN0b3I8QVhJ
RD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zvck9iamVjdHMoY29uc3QgVmVjdG9yPFJlZlB0cjxBWENv
cmVPYmplY3Q+PiYgb2JqZWN0cykgY29uc3QKIHsKICAgICByZXR1cm4gb2JqZWN0cy5tYXAoW10g
KGNvbnN0IFJlZlB0cjxBWENvcmVPYmplY3Q+JiBvYmplY3QpIC0+IEFYSUQgewotICAgICAgICBy
ZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQ7CisgICAgICAg
IHJldHVybiBvYmplY3QgPyBvYmplY3QtPm9iamVjdElEKCkgOiBBWElEKCk7CiAgICAgfSk7CiB9
CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJl
bklEcyhBWElEIGF4SUQsIFZlY3RvcjxBWElEPiYmIGNoaWxkcmVuSURzKQogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKTsK
IAotICAgIGlmIChheElEICE9IEludmFsaWRBWElEKSB7CisgICAgaWYgKGF4SUQuaXNWYWxpZCgp
KSB7CiAgICAgICAgIG1fbm9kZU1hcC5zZXQoYXhJRCwgY2hpbGRyZW5JRHMpOwogICAgICAgICBt
X3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF4SUQsIFdURk1v
dmUoY2hpbGRyZW5JRHMpKSk7CiAgICAgfQpAQCAtMTg2LDE0ICsxODYsMTQgQEAgdm9pZCBBWElz
b2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYQ29y
ZU9iamVjdCogYXhQYXIKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0
cmVlIik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChheE9iamVjdC5v
YmplY3RJRCgpID09IEludmFsaWRBWElEKQorICAgIGlmICghYXhPYmplY3Qub2JqZWN0SUQoKS5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gb2JqZWN0ID0gY3JlYXRlU3Vi
dHJlZShheE9iamVjdCwgYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEludmFsaWRB
WElELCBhdHRhY2hXcmFwcGVyKTsKKyAgICBhdXRvIG9iamVjdCA9IGNyZWF0ZVN1YnRyZWUoYXhP
YmplY3QsIGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCksIGF0dGFjaFdy
YXBwZXIpOwogICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKICAgICBpZiAo
IWF4UGFyZW50KQogICAgICAgICBzZXRSb290Tm9kZShvYmplY3QucHRyKCkpOwotICAgIGVsc2Ug
aWYgKGF4UGFyZW50LT5vYmplY3RJRCgpICE9IEludmFsaWRBWElEKSAvLyBOZWVkIHRvIGNoZWNr
IGZvciB0aGUgb2JqZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVjYXVzZSBpdCBtYXkgaGF2ZSBi
ZWVuIGRldGFjaGVkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUuCisgICAgZWxzZSBpZiAoYXhQ
YXJlbnQtPm9iamVjdElEKCkuaXNWYWxpZCgpKSAvLyBOZWVkIHRvIGNoZWNrIGZvciB0aGUgb2Jq
ZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVjYXVzZSBpdCBtYXkgaGF2ZSBiZWVuIGRldGFjaGVk
IHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUuCiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuSURzKGF4
UGFyZW50LT5vYmplY3RJRCgpLCBheFBhcmVudC0+Y2hpbGRyZW5JRHMoKSk7CiB9CiAKQEAgLTIw
Myw3ICsyMDMsNyBAQCBSZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmNyZWF0
ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRAogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKICAgICBhdXRvIG9iamVjdCA9IEFYSXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZShh
eE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwotICAgIGlmIChvYmplY3QtPm9iamVjdElEKCkgPT0g
SW52YWxpZEFYSUQpIHsKKyAgICBpZiAoIW9iamVjdC0+b2JqZWN0SUQoKS5pc1ZhbGlkKCkpIHsK
ICAgICAgICAgLy8gRWl0aGVyIHRoZSBheE9iamVjdCBoYXMgYW4gaW52YWxpZCBJRCBvciBzb21l
dGhpbmcgZWxzZSB3ZW50IHRlcnJpYmx5IHdyb25nLiBEb24ndCBib3RoZXIgZG9pbmcgYW55dGhp
bmcgZWxzZS4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBv
YmplY3Q7CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9k
ZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiAgICAgQVhJRCBheElEID0gYXhPYmplY3Qub2Jq
ZWN0SUQoKTsKICAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0LnBhcmVudE9iamVjdCgpOwot
ICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVudCA/IGF4UGFyZW50LT5vYmplY3RJRCgpIDogSW52
YWxpZEFYSUQ7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVj
dElEKCkgOiBBWElEKCk7CiAKICAgICBhdXRvIG5ld09iamVjdCA9IEFYSXNvbGF0ZWRPYmplY3Q6
OmNyZWF0ZShheE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwogICAgIG5ld09iamVjdC0+bV9jaGls
ZHJlbklEcyA9IGF4T2JqZWN0LmNoaWxkcmVuSURzKCk7CkBAIC0zMTYsNyArMzE2LDcgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSk7Ci0gICAgaWYgKCFheEFu
Y2VzdG9yIHx8IGF4QW5jZXN0b3ItPm9iamVjdElEKCkgPT0gSW52YWxpZEFYSUQgfHwgaXRlcmF0
b3IgPT0gbV9ub2RlTWFwLmVuZCgpKSB7CisgICAgaWYgKCFheEFuY2VzdG9yIHx8ICFheEFuY2Vz
dG9yLT5vYmplY3RJRCgpLmlzVmFsaWQoKSB8fCBpdGVyYXRvciA9PSBtX25vZGVNYXAuZW5kKCkp
IHsKICAgICAgICAgLy8gVGhpcyB1cGRhdGUgdHJpZ2dlcmVkIGJlZm9yZSB0aGUgaXNvbGF0ZWQg
dHJlZSBoYXMgYmVlbiByZXBvcHVsYXRlZC4KICAgICAgICAgLy8gUmV0dXJuIGhlcmUgc2luY2Ug
dGhlcmUgaXMgbm90aGluZyB0byB1cGRhdGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQyMyw3ICs0
MjMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKEFYSUQgYXhJRCkKICAg
ICBWZWN0b3I8QVhJRD4gcmVtb3ZhbHMgPSB7IGF4SUQgfTsKICAgICB3aGlsZSAocmVtb3ZhbHMu
c2l6ZSgpKSB7CiAgICAgICAgIEFYSUQgYXhJRCA9IHJlbW92YWxzLnRha2VMYXN0KCk7Ci0gICAg
ICAgIGlmIChheElEID09IEludmFsaWRBWElEKQorICAgICAgICBpZiAoIWF4SUQuaXNWYWxpZCgp
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBpdCA9IG1fbm9kZU1hcC5m
aW5kKGF4SUQpOwpAQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5
UGVuZGluZ0NoYW5nZXMoKQogICAgIGlmIChtX3BlbmRpbmdGb2N1c2VkTm9kZUlEICE9IG1fZm9j
dXNlZE5vZGVJRCkgewogICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJmb2N1c2VkTm9kZUlEICIs
IG1fZm9jdXNlZE5vZGVJRCwgIiBwZW5kaW5nRm9jdXNlZE5vZGVJRCAiLCBtX3BlbmRpbmdGb2N1
c2VkTm9kZUlEKSk7CiAKLSAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGVJRCAhPSBJbnZhbGlkQVhJ
RCkgeworICAgICAgICBpZiAobV9mb2N1c2VkTm9kZUlELmlzVmFsaWQoKSkgewogICAgICAgICAg
ICAgLy8gU2V0IHRoZSBvbGQgZm9jdXNlZCBvYmplY3QncyBJc0ZvY3VzZWQgcHJvcGVydHkgdG8g
ZmFsc2UuCiAgICAgICAgICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFwOwogICAgICAgICAg
ICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpJc0ZvY3VzZWQsIGZhbHNlKTsKQEAg
LTQ4Miw3ICs0ODIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2Vz
KCkKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX3BlbmRpbmdBcHBlbmRzKSB7CiAgICAg
ICAgIEFYSUQgYXhJRCA9IGl0ZW0uaXNvbGF0ZWRPYmplY3QtPm9iamVjdElEKCk7CiAgICAgICAg
IEFYTE9HKG1ha2VTdHJpbmcoImFwcGVuZGluZyBheElEICIsIGF4SUQpKTsKLSAgICAgICAgaWYg
KGF4SUQgPT0gSW52YWxpZEFYSUQpCisgICAgICAgIGlmICghYXhJRC5pc1ZhbGlkKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvJiB3cmFwcGVyID0gaXRlbS53cmFwcGVy
ID8gaXRlbS53cmFwcGVyIDogaXRlbS5pc29sYXRlZE9iamVjdC0+d3JhcHBlcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmgKaW5kZXggMTZiZDQ2ZjQ5OTYxLi4yNWNkY2M4OWVmZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHVzaW5nIEFYUHJvcGVydHlWYWx1ZVZhcmlh
bnQgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIEFYSUQsIFN0cmluZywgYm9vbCwKIHVz
aW5nIEFYUHJvcGVydHlNYXAgPSBIYXNoTWFwPEFYUHJvcGVydHlOYW1lLCBBWFByb3BlcnR5VmFs
dWVWYXJpYW50LCBJbnRIYXNoPEFYUHJvcGVydHlOYW1lPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxBWFByb3BlcnR5TmFtZT4+OwogCiBzdHJ1Y3QgQVhQcm9wZXJ0eUNoYW5nZSB7Ci0gICAg
QVhJRCBheElEIHsgSW52YWxpZEFYSUQgfTsgLy8gSUQgb2YgdGhlIG9iamVjdCB3aG9zZSBwcm9w
ZXJ0aWVzIGNoYW5nZWQuCisgICAgQVhJRCBheElEOyAvLyBJRCBvZiB0aGUgb2JqZWN0IHdob3Nl
IHByb3BlcnRpZXMgY2hhbmdlZC4KICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnRpZXM7IC8vIENo
YW5nZWQgcHJvcGVydGllcy4KIH07CiAKQEAgLTQwNyw4ICs0MDcsOCBAQCBwcml2YXRlOgogICAg
IFZlY3RvcjxBWElEPiBtX3BlbmRpbmdOb2RlUmVtb3ZhbHMgV1RGX0dVQVJERURfQllfTE9DSyht
X2NoYW5nZUxvZ0xvY2spOyAvLyBOb2RlcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAg
ICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ1N1YnRyZWVSZW1vdmFscyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fY2hhbmdlTG9nTG9jayk7IC8vIE5vZGVzIHdob3NlIHN1YnRyZWVzIGFyZSB0byBiZSBy
ZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBWZWN0b3I8
QVhJRD4+PiBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX2No
YW5nZUxvZ0xvY2spOwotICAgIEFYSUQgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9jaykgeyBJbnZhbGlkQVhJRCB9OwotICAgIEFYSUQgbV9m
b2N1c2VkTm9kZUlEIHsgSW52YWxpZEFYSUQgfTsKKyAgICBBWElEIG1fcGVuZGluZ0ZvY3VzZWRO
b2RlSUQgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOworICAgIEFYSUQgbV9m
b2N1c2VkTm9kZUlEOwogICAgIExvY2sgbV9jaGFuZ2VMb2dMb2NrOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IGFlNjVlNDlhYWQwNi4uNTdjMjZj
M2ExYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0y
OTAsMTggKzI5MCwxOCBAQCBOU0FycmF5ICpjb252ZXJ0VG9OU0FycmF5KGNvbnN0IFdlYkNvcmU6
OkFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdAogCiAtICh2b2lkKWF0dGFj
aEFYT2JqZWN0OihBWENvcmVPYmplY3QqKWF4T2JqZWN0CiB7Ci0gICAgQVNTRVJUKGF4T2JqZWN0
ICYmIChfaWRlbnRpZmllciA9PSBJbnZhbGlkQVhJRCB8fCBfaWRlbnRpZmllciA9PSBheE9iamVj
dC0+b2JqZWN0SUQoKSkpOworICAgIEFTU0VSVChheE9iamVjdCAmJiAoIV9pZGVudGlmaWVyLmlz
VmFsaWQoKSB8fCBfaWRlbnRpZmllciA9PSBheE9iamVjdC0+b2JqZWN0SUQoKSkpOwogICAgIG1f
YXhPYmplY3QgPSBheE9iamVjdDsKLSAgICBpZiAoX2lkZW50aWZpZXIgPT0gSW52YWxpZEFYSUQp
CisgICAgaWYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkpCiAgICAgICAgIF9pZGVudGlmaWVyID0g
bV9heE9iamVjdC0+b2JqZWN0SUQoKTsKIH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCiAtICh2b2lkKWF0dGFjaElzb2xhdGVkT2JqZWN0OihBWENvcmVPYmplY3Qq
KWlzb2xhdGVkT2JqZWN0CiB7Ci0gICAgQVNTRVJUKGlzb2xhdGVkT2JqZWN0ICYmIChfaWRlbnRp
ZmllciA9PSBJbnZhbGlkQVhJRCB8fCBfaWRlbnRpZmllciA9PSBpc29sYXRlZE9iamVjdC0+b2Jq
ZWN0SUQoKSkpOworICAgIEFTU0VSVChpc29sYXRlZE9iamVjdCAmJiAoIV9pZGVudGlmaWVyLmlz
VmFsaWQoKSB8fCBfaWRlbnRpZmllciA9PSBpc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSkpOwog
ICAgIG1faXNvbGF0ZWRPYmplY3QgPSBpc29sYXRlZE9iamVjdDsKLSAgICBpZiAoX2lkZW50aWZp
ZXIgPT0gSW52YWxpZEFYSUQpCisgICAgaWYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkpCiAgICAg
ICAgIF9pZGVudGlmaWVyID0gbV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKIH0KICNlbmRp
ZgpAQCAtMzA5LDE0ICszMDksMTQgQEAgTlNBcnJheSAqY29udmVydFRvTlNBcnJheShjb25zdCBX
ZWJDb3JlOjpBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3QKIC0gKHZvaWQp
ZGV0YWNoCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBfaWRlbnRpZmllciA9
IEludmFsaWRBWElEOworICAgIF9pZGVudGlmaWVyID0geyB9OwogICAgIG1fYXhPYmplY3QgPSBu
dWxscHRyOwogfQogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKIC0g
KHZvaWQpZGV0YWNoSXNvbGF0ZWRPYmplY3Q6KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSlk
ZXRhY2htZW50VHlwZQogewotICAgIEFTU0VSVF9VTlVTRUQoZGV0YWNobWVudFR5cGUsIGRldGFj
aG1lbnRUeXBlID09IEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6RWxlbWVudENoYW5nZWQg
PyBfaWRlbnRpZmllciAhPSBJbnZhbGlkQVhJRCAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7CisgICAg
QVNTRVJUX1VOVVNFRChkZXRhY2htZW50VHlwZSwgZGV0YWNobWVudFR5cGUgPT0gQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50Q2hhbmdlZCA/IF9pZGVudGlmaWVyLmlzVmFsaWQo
KSAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7CiAgICAgbV9pc29sYXRlZE9iamVjdCA9IG51bGxwdHI7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2lu
L0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4v
QVhPYmplY3RDYWNoZVdpbi5jcHAKaW5kZXggYjA4ZTNjZTFmNWY4Li4xNzE2YWE0ZjQ4MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2Fj
aGVXaW4uY3BwCkBAIC0xNDgsMTkgKzE0OCwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogbwog
CiBBWElEIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkgY29uc3QKIHsKLSAg
ICBzdGF0aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKKyAgICBzdGF0aWMgTE9ORyBsYXN0VXNlZElE
ID0gMDsKIAogICAgIC8vIEdlbmVyYXRlIGEgbmV3IElELiBXaW5kb3dzIGFjY2Vzc2liaWxpdHkg
cmVsaWVzIG9uIGEgcG9zaXRpdmUgQVhJRCwKICAgICAvLyByYW5naW5nIGZyb20gMSB0byBMT05H
X01BWC4KLSAgICBBWElEIG9iaklEID0gbGFzdFVzZWRJRDsKKyAgICBMT05HIGN1cnJlbnRJRCA9
IGxhc3RVc2VkSUQ7CisgICAgQVhJRCBvYmpJRDsKICAgICBkbyB7Ci0gICAgICAgICsrb2JqSUQ7
Ci0gICAgICAgIG9iaklEICU9IHN0ZDo6bnVtZXJpY19saW1pdHM8TE9ORz46Om1heCgpOwotICAg
IH0gd2hpbGUgKG9iaklEID09IDAgfHwgSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUo
b2JqSUQpIHx8IG1faWRzSW5Vc2UuY29udGFpbnMob2JqSUQpKTsKKyAgICAgICAgb2JqSUQgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxBWElEPigrK2N1cnJlbnRJRCk7CisgICAgfSB3aGlsZSAoIW9i
ai5pc1ZhbGlkKCkgfHwgbV9pZHNJblVzZS5jb250YWlucyhvYmpJRCkpOwogCi0gICAgQVNTRVJU
KG9iaklEID49IDEgJiYgb2JqSUQgPD0gc3RkOjpudW1lcmljX2xpbWl0czxMT05HPjo6bWF4KCkp
OworICAgIEFTU0VSVChvYmpJRC5pc1ZhbGlkKCkgJiYgb2JqSUQudG9VSW50NjQoKSA8PSBzdGQ6
Om51bWVyaWNfbGltaXRzPExPTkc+OjptYXgoKSk7CiAKLSAgICBsYXN0VXNlZElEID0gb2JqSUQ7
CisgICAgbGFzdFVzZWRJRCA9IGN1cnJlbnRJRDsKIAogICAgIHJldHVybiBvYmpJRDsKIH0K
</data>
<flag name="commit-queue"
          id="469532"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444505</attachid>
            <date>2021-11-17 03:45:55 -0800</date>
            <delta_ts>2021-11-17 05:08:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-axid.diff</filename>
            <type>text/plain</type>
            <size>24116</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzdiNTdiMWQ5OTYuLjdlYmJiNmJiMmI4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUxIEBACisyMDIxLTExLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNhY2hl
QW5kSW5pdGlhbGl6ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpkZXRhY2gpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YXNzb2NpYXRlZEFYT2JqZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJv
dyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0
VGVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpvYmplY3RB
dHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
Ojpub2RlRm9ySUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Omlk
c0Zvck9iamVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZUNoaWxkcmVuSURzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5l
cmF0ZVN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGF0dGFjaEFYT2JqZWN0
Ol0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYXR0YWNo
SXNvbGF0ZWRPYmplY3Q6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZSBkZXRhY2hdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlIGRldGFjaElzb2xhdGVkT2JqZWN0Ol0pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
d2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorCiAyMDIxLTExLTE2ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI4MDA3OCwgcjI4MDI5MCBhbmQgcjI4MjAwOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggMzAzNjY2NjM3YjIwLi42MTNiZmVkNDRmNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC01MDIsNyArNTAy
LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFY
Q29yZU9iamVjdCYgb2JqZWN0KQogICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoImFkZHJlc3MiLCAm
b2JqZWN0KTsKICAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJ3cmFwcGVyIiwgb2JqZWN0LndyYXBw
ZXIoKSk7CiAKLSAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJwYXJlbnRPYmplY3QiLCBwYXJlbnQg
PyBwYXJlbnQtPm9iamVjdElEKCkgOiAwKTsKKyAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJwYXJl
bnRPYmplY3QiLCBwYXJlbnQgPyBwYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCkpOwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoInJlbW90ZVBhcmVudE9iamVj
dCIsIG9iamVjdC5yZW1vdGVQYXJlbnRPYmplY3QoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ0OTNmNjA5NTI3Yi4u
NTNiNjFiYmU5NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTEyNCw4ICsxMjQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNvbnN0IEFYSUQgSW52YWxpZEFYSUQgPSAwOwot
CiAvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVsZHMg
b3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50ZXJ2
YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCiBzdGF0aWMgY29uc3QgU2Vj
b25kcyBhY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFs
IHsgMjVfbXMgfTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGFjY2Vzc2liaWxpdHlMaXZlUmVnaW9u
Q2hhbmdlZE5vdGlmaWNhdGlvbkludGVydmFsIHsgMjBfbXMgfTsKQEAgLTQxOCw3ICs0MTYsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoTm9kZSog
Zm9jdXNlZE5vZGUpCiAgICAgYXV0byogZm9jdXMgPSBnZXRPckNyZWF0ZShmb2N1c2VkTm9kZSk7
CiAKICAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1f
cGFnZUlEKSkKLSAgICAgICAgdHJlZS0+c2V0Rm9jdXNlZE5vZGVJRChmb2N1cyA/IGZvY3VzLT5v
YmplY3RJRCgpIDogSW52YWxpZEFYSUQpOworICAgICAgICB0cmVlLT5zZXRGb2N1c2VkTm9kZUlE
KGZvY3VzID8gZm9jdXMtPm9iamVjdElEKCkgOiBBWElEKCkpOwogfQogI2VuZGlmCiAKQEAgLTQy
OCw3ICs0MjYsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoV2lk
Z2V0KiB3aWRnZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAKICAgICBBWElE
IGF4SUQgPSBtX3dpZGdldE9iamVjdE1hcHBpbmcuZ2V0KHdpZGdldCk7Ci0gICAgQVNTRVJUKCFI
YXNoVHJhaXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShheElEKSk7CisgICAgQVNTRVJUKCFheElE
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOwogICAgIGlmICghYXhJRCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgCkBAIC00NDEsNyArNDM5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQVhPYmplY3RDYWNoZTo6Z2V0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIEFYSUQgYXhJRCA9IG1fcmVuZGVyT2JqZWN0TWFwcGlu
Zy5nZXQocmVuZGVyZXIpOwotICAgIEFTU0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVk
VmFsdWUoYXhJRCkpOworICAgIEFTU0VSVCghYXhJRC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
KTsKICAgICBpZiAoIWF4SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC00NTMsMTEg
KzQ1MSwxMSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoTm9kZSog
bm9kZSkKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQVhJ
RCByZW5kZXJJRCA9IG5vZGUtPnJlbmRlcmVyKCkgPyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0
KG5vZGUtPnJlbmRlcmVyKCkpIDogMDsKLSAgICBBU1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46Omlz
RGVsZXRlZFZhbHVlKHJlbmRlcklEKSk7CisgICAgQVhJRCByZW5kZXJJRCA9IG5vZGUtPnJlbmRl
cmVyKCkgPyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0KG5vZGUtPnJlbmRlcmVyKCkpIDogQVhJ
RCgpOworICAgIEFTU0VSVCghcmVuZGVySUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAK
ICAgICBBWElEIG5vZGVJRCA9IG1fbm9kZU9iamVjdE1hcHBpbmcuZ2V0KG5vZGUpOwotICAgIEFT
U0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUobm9kZUlEKSk7CisgICAgQVNT
RVJUKCFub2RlSUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAKICAgICBpZiAobm9kZS0+
cmVuZGVyZXIoKSAmJiBub2RlSUQgJiYgIXJlbmRlcklEKSB7CiAgICAgICAgIC8vIFRoaXMgY2Fu
IGhhcHBlbiBpZiBhbiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCBpcyBjcmVhdGVkIGZvciBhIG5v
ZGUgdGhhdCdzIG5vdApAQCAtNjExLDcgKzYwOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2Fj
aGVBbmRJbml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBuZXdPYmplY3QsIERP
CiB7CiAgICAgQVNTRVJUKG5ld09iamVjdCk7CiAgICAgQVhJRCBheElEID0gZ2V0QVhJRChuZXdP
YmplY3QpOwotICAgIEFTU0VSVChheElEICE9IEludmFsaWRBWElEKTsKKyAgICBBU1NFUlQoYXhJ
RC5pc1ZhbGlkKCkpOwogCiAgICAgV1RGOjpzd2l0Y2hPbihkb21PYmplY3QsCiAgICAgICAgIFsm
YXhJRCwgdGhpc10gKFJlbmRlck9iamVjdCogdHlwZWRWYWx1ZSkgeyBtX3JlbmRlck9iamVjdE1h
cHBpbmcuc2V0KHR5cGVkVmFsdWUsIGF4SUQpOyB9LApAQCAtODk1LDE2ICs4OTMsMTAgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0KiB2aWV3KQogI2lmICFQTEFURk9STShXSU4p
CiBBWElEIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkgY29uc3QKIHsKLSAg
ICBzdGF0aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKLQotICAgIC8vIEdlbmVyYXRlIGEgbmV3IElE
LgotICAgIEFYSUQgb2JqSUQgPSBsYXN0VXNlZElEOworICAgIEFYSUQgb2JqSUQ7CiAgICAgZG8g
ewotICAgICAgICArK29iaklEOwotICAgIH0gd2hpbGUgKCFvYmpJRCB8fCBIYXNoVHJhaXRzPEFY
SUQ+Ojppc0RlbGV0ZWRWYWx1ZShvYmpJRCkgfHwgbV9pZHNJblVzZS5jb250YWlucyhvYmpJRCkp
OwotCi0gICAgbGFzdFVzZWRJRCA9IG9iaklEOwotCisgICAgICAgIG9iaklEID0gQVhJRDo6Z2Vu
ZXJhdGUoKTsKKyAgICB9IHdoaWxlICghb2JqSUQuaXNWYWxpZCgpIHx8IG1faWRzSW5Vc2UuY29u
dGFpbnMob2JqSUQpKTsKICAgICByZXR1cm4gb2JqSUQ7CiB9CiAjZW5kaWYKQEAgLTkxNCw3ICs5
MDYsNyBAQCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IEFYT2JqZWN0Q2FjaGU6Om9iamVj
dHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheAogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKICAgICByZXR1cm4gYXhJRHMubWFwKFt0aGlzXSAoQVhJRCBheElEKSAtPiBSZWZQdHI8
QVhDb3JlT2JqZWN0PiB7Ci0gICAgICAgIEFTU0VSVChheElEICE9IEludmFsaWRBWElEKTsKKyAg
ICAgICAgQVNTRVJUKGF4SUQuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIG9iamVjdEZyb21B
WElEKGF4SUQpOwogICAgIH0pOwogfQpAQCAtMzI3Miw3ICszMjY0LDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYTm90aWZp
Y2F0aW9uIG5vdGkKICAgICBBWExPRyhzdGQ6Om1ha2VfcGFpcigmb2JqZWN0LCBub3RpZmljYXRp
b24pKTsKICAgICBBWExPRygqdGhpcyk7CiAKLSAgICBpZiAoIW1fcGFnZUlEIHx8IG9iamVjdC5v
YmplY3RJRCgpID09IEludmFsaWRBWElEKSB7CisgICAgaWYgKCFtX3BhZ2VJRCB8fCAhb2JqZWN0
Lm9iamVjdElEKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIEFYTE9HKCJObyBwYWdlSUQgb3Igb2Jq
ZWN0SUQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMzNTIsNyArMzM0NCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3Jl
T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnM7CiAgICAgZm9y
IChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKSB7CiAgICAgICAgIEFY
TE9HKG5vdGlmaWNhdGlvbik7Ci0gICAgICAgIGlmICghbm90aWZpY2F0aW9uLmZpcnN0IHx8IG5v
dGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCkKKyAgICAgICAgaWYg
KCFub3RpZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKS5p
c1ZhbGlkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBzd2l0Y2ggKG5vdGlm
aWNhdGlvbi5zZWNvbmQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggM2I3NzI0YzgyODUyLi5kZDljOWNkZDJlMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC02MCw3ICs2MCw3IEBAIGNs
YXNzIFZpc2libGVQb3NpdGlvbjsKIGNsYXNzIFdpZGdldDsKIAogc3RydWN0IFRleHRNYXJrZXJE
YXRhIHsKLSAgICBBWElEIGF4SUQgeyAwIH07CisgICAgQVhJRCBheElEOwogCiAgICAgTm9kZSog
bm9kZSB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBvZmZzZXQgeyAwIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGU5
MTM0ZGFkMGRmOS4uMjFmZjRhMjhhNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtODI4LDcgKzgyOCw3IEBAIHByb3Rl
Y3RlZDogLy8gRklYTUU6IE1ha2UgdGhlIGRhdGEgbWVtYmVycyBwcml2YXRlLgogICAgIG11dGFi
bGUgYm9vbCBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwogICAgIEFjY2Vzc2liaWxp
dHlSb2xlIG1fcm9sZSB7IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duIH07CiBwcml2YXRlOgot
ICAgIEFYSUQgbV9pZCB7IDAgfTsKKyAgICBBWElEIG1faWQ7CiAgICAgT3B0aW9uU2V0PEFYQW5j
ZXN0b3JGbGFnPiBtX2FuY2VzdG9yRmxhZ3M7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbiBtX2xhc3RLbm93bklzSWdub3JlZFZhbHVlIHsgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1
c2lvbjo6RGVmYXVsdEJlaGF2aW9yIH07CiBwcm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYWtlIHRoZSBk
YXRhIG1lbWJlcnMgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggY2E5YTBjZWJk
MmZiLi5lMTU5NjIxYzg1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTkzLDggKzk0LDgg
QEAgY2xhc3MgU2Nyb2xsVmlldzsKIHN0cnVjdCBBY2Nlc3NpYmlsaXR5VGV4dDsKIHN0cnVjdCBT
Y3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9uczsKIAotdXNpbmcgQVhJRCA9IHNpemVfdDsKLWV4dGVy
biBjb25zdCBBWElEIEludmFsaWRBWElEOworZW51bSBBWElEVHlwZSB7IH07Cit1c2luZyBBWElE
ID0gT2JqZWN0SWRlbnRpZmllcjxBWElEVHlwZT47CiAKIGVudW0gY2xhc3MgQVhBbmNlc3RvckZs
YWcgOiB1aW50OF90IHsKICAgICAvLyBXaGVuIHRoZSBmbGFncyBhcmVuJ3QgaW5pdGlhbGl6ZWQs
IGl0IG1lYW5zIHRoZSBvYmplY3QgaGFzbid0IGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgdHJlZSwK
QEAgLTE1ODIsNyArMTU4Myw3IEBAIGlubGluZSB2b2lkIEFYQ29yZU9iamVjdDo6ZGV0YWNoKEFj
Y2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSBkZXRhY2htZW50VHlwZSkKIHsKICAgICBkZXRhY2hX
cmFwcGVyKGRldGFjaG1lbnRUeXBlKTsKICAgICBkZXRhY2hSZW1vdGVQYXJ0cyhkZXRhY2htZW50
VHlwZSk7Ci0gICAgc2V0T2JqZWN0SUQoSW52YWxpZEFYSUQpOworICAgIHNldE9iamVjdElEKHsg
fSk7CiB9CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpLmNwcAppbmRleCA3MDNjOTc4M2M4MjAuLjMzZjljMWU1NDljZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEdEQnVzSW50ZXJmYWNlVlRhYmxl
IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c19hY2Nlc3NpYmxlRnVuY3Rpb25zID0gewogICAg
ICAgICBpZiAoIWdfc3RyY21wMChwcm9wZXJ0eU5hbWUsICJMb2NhbGUiKSkKICAgICAgICAgICAg
IHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZyhzZXRsb2NhbGUoTENfTUVTU0FHRVMsIG51bGxw
dHIpKTsKICAgICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiQWNjZXNzaWJsZUlk
IikpCi0gICAgICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoYXRzcGlPYmplY3Qt
Pm1fYXhPYmplY3QgPyBTdHJpbmc6Om51bWJlcihhdHNwaU9iamVjdC0+bV9heE9iamVjdC0+b2Jq
ZWN0SUQoKSkudXRmOCgpLmRhdGEoKSA6ICIiKTsKKyAgICAgICAgICAgIHJldHVybiBnX3Zhcmlh
bnRfbmV3X3N0cmluZyhhdHNwaU9iamVjdC0+bV9heE9iamVjdCA/IFN0cmluZzo6bnVtYmVyKGF0
c3BpT2JqZWN0LT5tX2F4T2JqZWN0LT5vYmplY3RJRCgpLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRh
KCkgOiAiIik7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKHByb3BlcnR5TmFtZSwgIlBhcmVudCIp
KQogICAgICAgICAgICAgcmV0dXJuIGF0c3BpT2JqZWN0LT5wYXJlbnRSZWZlcmVuY2UoKTsKICAg
ICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiQ2hpbGRDb3VudCIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBiYTUwODRhNzNmMWMuLmY5ZGRlY2NiODVjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgQVhJc29sYXRlZE9i
amVjdDo6QVhJc29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmIG9iamVjdCwgQVhJc29sYXRlZFRy
ZWUqIHRyZWUsIEEKICAgICAsIG1faWQob2JqZWN0Lm9iamVjdElEKCkpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAobV9pZCAhPSBJbnZhbGlkQVhJRCkKLSAgICAgICAg
aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEob2JqZWN0LCBwYXJlbnRJRCA9PSBJbnZhbGlkQVhJRCk7
CisgICAgaWYgKG1faWQuaXNWYWxpZCgpKQorICAgICAgICBpbml0aWFsaXplQXR0cmlidXRlRGF0
YShvYmplY3QsICFwYXJlbnRJRC5pc1ZhbGlkKCkpOwogICAgIGVsc2UgewogICAgICAgICAvLyBT
aG91bGQgbmV2ZXIgaGFwcGVuIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzOCw3ICs0MzgsNyBAQCBBWENvcmVPYmplY3QqIEFY
SXNvbGF0ZWRPYmplY3Q6OmFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX2lkID09IEludmFsaWRBWElEKQorICAgIGlm
ICghbV9pZC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGF1
dG8qIGF4T2JqZWN0Q2FjaGUgPSB0aGlzLT5heE9iamVjdENhY2hlKCkpIHsKQEAgLTUyOSw3ICs1
MjksNyBAQCBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWQoKSBjb25zdAogCiB2b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQoKQogewotICAgIG1fcGFyZW50SUQg
PSBJbnZhbGlkQVhJRDsKKyAgICBtX3BhcmVudElEID0geyB9OwogfQogCiBjb25zdCBBWENvcmVP
YmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgQVhJc29sYXRlZE9iamVjdDo6Y2hp
bGRyZW4oYm9vbCkKQEAgLTU4Nyw3ICs1ODcsNyBAQCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0Ojpjb250ZW50cygpCiAKIGJvb2wgQVhJ
c29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQoKQogewotICAgIGlmIChwYXJlbnQo
KSAhPSBJbnZhbGlkQVhJRCkKKyAgICBpZiAocGFyZW50KCkuaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAvLyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgdGhlIHJvb3Qgbm9k
ZSwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgcmV0dXJuIGZhbHNlLgpAQCAtNjAzLDcgKzYwMyw3
IEBAIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1
bnNpZ25lZCBjb2x1bW5JbmRleCwgdW5zaWduCiAgICAgICAgICAgICBpZiAoYXV0byBjZWxsID0g
b2JqZWN0LT5jZWxsRm9yQ29sdW1uQW5kUm93KGNvbHVtbkluZGV4LCByb3dJbmRleCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNlbGwtPm9iamVjdElEKCk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIEludmFsaWRBWElEOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0pOwogCiAgICAg
cmV0dXJuIHRyZWUoKS0+bm9kZUZvcklEKGNlbGxJRCkuZ2V0KCk7CkBAIC04MTAsNyArODEwLDcg
QEAgQVhDb3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0VGVzdChj
b25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnMKICAgICAgICAgICAgICAgICByZXR1cm4gYXhPYmpl
Y3QtPm9iamVjdElEKCk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gSW52YWxpZEFYSUQ7
CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfSk7CiAKICAgICByZXR1cm4gdHJlZSgpLT5ub2Rl
Rm9ySUQoYXhJRCkuZ2V0KCk7CkBAIC04MzAsNyArODMwLDcgQEAgQVhDb3JlT2JqZWN0KiBBWElz
b2xhdGVkT2JqZWN0OjpvYmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUKICAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJvcGVydHlOYW1lKTsK
ICAgICBBWElEIG5vZGVJRCA9IFdURjo6c3dpdGNoT24odmFsdWUsCiAgICAgICAgIFtdIChBWElE
JiB0eXBlZFZhbHVlKSAtPiBBWElEIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0sCi0gICAgICAgIFtd
IChhdXRvJikgeyByZXR1cm4gSW52YWxpZEFYSUQ7IH0KKyAgICAgICAgW10gKGF1dG8mKSB7IHJl
dHVybiBBWElEKCk7IH0KICAgICApOwogCiAgICAgcmV0dXJuIHRyZWUoKS0+bm9kZUZvcklEKG5v
ZGVJRCkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggNjkyOTM1YTk3NGY0Li4z
YjRlZWExZmJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTY2Nyw4ICs2NjcsOCBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gbV9jYWNoZWRUcmVlOwotICAgIEFYSUQgbV9wYXJlbnRJ
RCB7IEludmFsaWRBWElEIH07Ci0gICAgQVhJRCBtX2lkIHsgSW52YWxpZEFYSUQgfTsKKyAgICBB
WElEIG1fcGFyZW50SUQ7CisgICAgQVhJRCBtX2lkOwogICAgIFZlY3RvcjxBWElEPiBtX2NoaWxk
cmVuSURzOwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gbV9jaGlsZHJlbjsKICAg
ICBBWFByb3BlcnR5TWFwIG1fcHJvcGVydHlNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5k
ZXggOGVjOTEzYjljMWVlLi44ZGUxYzkwMzg0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
QEAgLTE0Niw3ICsxNDYsNyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRy
ZWU6Om5vZGVGb3JJRChBWElEIGF4SUQpIGNvbnN0CiAgICAgaWYgKG1fdXNlZE9uQVhUaHJlYWQg
JiYgaXNNYWluVGhyZWFkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IGF4SUQgIT0gSW52YWxpZEFYSUQgPyBtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQpIDog
bnVsbHB0cjsKKyAgICByZXR1cm4gYXhJRC5pc1ZhbGlkKCkgPyBtX3JlYWRlclRocmVhZE5vZGVN
YXAuZ2V0KGF4SUQpIDogbnVsbHB0cjsKIH0KIAogVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+
PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGF4SURz
KSBjb25zdApAQCAtMTY2LDcgKzE2Niw3IEBAIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4g
QVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBhCiBWZWN0
b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zvck9iamVjdHMoY29uc3QgVmVjdG9yPFJlZlB0
cjxBWENvcmVPYmplY3Q+PiYgb2JqZWN0cykgY29uc3QKIHsKICAgICByZXR1cm4gb2JqZWN0cy5t
YXAoW10gKGNvbnN0IFJlZlB0cjxBWENvcmVPYmplY3Q+JiBvYmplY3QpIC0+IEFYSUQgewotICAg
ICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQ7Cisg
ICAgICAgIHJldHVybiBvYmplY3QgPyBvYmplY3QtPm9iamVjdElEKCkgOiBBWElEKCk7CiAgICAg
fSk7CiB9CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVD
aGlsZHJlbklEcyhBWElEIGF4SUQsIFZlY3RvcjxBWElEPiYmIGNoaWxkcmVuSURzKQogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tl
ZCgpKTsKIAotICAgIGlmIChheElEICE9IEludmFsaWRBWElEKSB7CisgICAgaWYgKGF4SUQuaXNW
YWxpZCgpKSB7CiAgICAgICAgIG1fbm9kZU1hcC5zZXQoYXhJRCwgY2hpbGRyZW5JRHMpOwogICAg
ICAgICBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF4SUQs
IFdURk1vdmUoY2hpbGRyZW5JRHMpKSk7CiAgICAgfQpAQCAtMTg2LDE0ICsxODYsMTQgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3Qs
IEFYQ29yZU9iamVjdCogYXhQYXIKICAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Z2VuZXJh
dGVTdWJ0cmVlIik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChheE9i
amVjdC5vYmplY3RJRCgpID09IEludmFsaWRBWElEKQorICAgIGlmICghYXhPYmplY3Qub2JqZWN0
SUQoKS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gb2JqZWN0ID0gY3Jl
YXRlU3VidHJlZShheE9iamVjdCwgYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IElu
dmFsaWRBWElELCBhdHRhY2hXcmFwcGVyKTsKKyAgICBhdXRvIG9iamVjdCA9IGNyZWF0ZVN1YnRy
ZWUoYXhPYmplY3QsIGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCksIGF0
dGFjaFdyYXBwZXIpOwogICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKICAg
ICBpZiAoIWF4UGFyZW50KQogICAgICAgICBzZXRSb290Tm9kZShvYmplY3QucHRyKCkpOwotICAg
IGVsc2UgaWYgKGF4UGFyZW50LT5vYmplY3RJRCgpICE9IEludmFsaWRBWElEKSAvLyBOZWVkIHRv
IGNoZWNrIGZvciB0aGUgb2JqZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVjYXVzZSBpdCBtYXkg
aGF2ZSBiZWVuIGRldGFjaGVkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUuCisgICAgZWxzZSBp
ZiAoYXhQYXJlbnQtPm9iamVjdElEKCkuaXNWYWxpZCgpKSAvLyBOZWVkIHRvIGNoZWNrIGZvciB0
aGUgb2JqZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVjYXVzZSBpdCBtYXkgaGF2ZSBiZWVuIGRl
dGFjaGVkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUuCiAgICAgICAgIHVwZGF0ZUNoaWxkcmVu
SURzKGF4UGFyZW50LT5vYmplY3RJRCgpLCBheFBhcmVudC0+Y2hpbGRyZW5JRHMoKSk7CiB9CiAK
QEAgLTIwMyw3ICsyMDMsNyBAQCBSZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6
OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRAogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIG9iamVjdCA9IEFYSXNvbGF0ZWRPYmplY3Q6OmNy
ZWF0ZShheE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwotICAgIGlmIChvYmplY3QtPm9iamVjdElE
KCkgPT0gSW52YWxpZEFYSUQpIHsKKyAgICBpZiAoIW9iamVjdC0+b2JqZWN0SUQoKS5pc1ZhbGlk
KCkpIHsKICAgICAgICAgLy8gRWl0aGVyIHRoZSBheE9iamVjdCBoYXMgYW4gaW52YWxpZCBJRCBv
ciBzb21ldGhpbmcgZWxzZSB3ZW50IHRlcnJpYmx5IHdyb25nLiBEb24ndCBib3RoZXIgZG9pbmcg
YW55dGhpbmcgZWxzZS4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybiBvYmplY3Q7CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiAgICAgQVhJRCBheElEID0gYXhPYmpl
Y3Qub2JqZWN0SUQoKTsKICAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0LnBhcmVudE9iamVj
dCgpOwotICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVudCA/IGF4UGFyZW50LT5vYmplY3RJRCgp
IDogSW52YWxpZEFYSUQ7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQt
Pm9iamVjdElEKCkgOiBBWElEKCk7CiAKICAgICBhdXRvIG5ld09iamVjdCA9IEFYSXNvbGF0ZWRP
YmplY3Q6OmNyZWF0ZShheE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwogICAgIG5ld09iamVjdC0+
bV9jaGlsZHJlbklEcyA9IGF4T2JqZWN0LmNoaWxkcmVuSURzKCk7CkBAIC0zMTYsNyArMzE2LDcg
QEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9i
amVjdCkKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSk7Ci0gICAgaWYg
KCFheEFuY2VzdG9yIHx8IGF4QW5jZXN0b3ItPm9iamVjdElEKCkgPT0gSW52YWxpZEFYSUQgfHwg
aXRlcmF0b3IgPT0gbV9ub2RlTWFwLmVuZCgpKSB7CisgICAgaWYgKCFheEFuY2VzdG9yIHx8ICFh
eEFuY2VzdG9yLT5vYmplY3RJRCgpLmlzVmFsaWQoKSB8fCBpdGVyYXRvciA9PSBtX25vZGVNYXAu
ZW5kKCkpIHsKICAgICAgICAgLy8gVGhpcyB1cGRhdGUgdHJpZ2dlcmVkIGJlZm9yZSB0aGUgaXNv
bGF0ZWQgdHJlZSBoYXMgYmVlbiByZXBvcHVsYXRlZC4KICAgICAgICAgLy8gUmV0dXJuIGhlcmUg
c2luY2UgdGhlcmUgaXMgbm90aGluZyB0byB1cGRhdGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQy
Myw3ICs0MjMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKEFYSUQgYXhJ
RCkKICAgICBWZWN0b3I8QVhJRD4gcmVtb3ZhbHMgPSB7IGF4SUQgfTsKICAgICB3aGlsZSAocmVt
b3ZhbHMuc2l6ZSgpKSB7CiAgICAgICAgIEFYSUQgYXhJRCA9IHJlbW92YWxzLnRha2VMYXN0KCk7
Ci0gICAgICAgIGlmIChheElEID09IEludmFsaWRBWElEKQorICAgICAgICBpZiAoIWF4SUQuaXNW
YWxpZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBpdCA9IG1fbm9k
ZU1hcC5maW5kKGF4SUQpOwpAQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAgIGlmIChtX3BlbmRpbmdGb2N1c2VkTm9kZUlEICE9
IG1fZm9jdXNlZE5vZGVJRCkgewogICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJmb2N1c2VkTm9k
ZUlEICIsIG1fZm9jdXNlZE5vZGVJRCwgIiBwZW5kaW5nRm9jdXNlZE5vZGVJRCAiLCBtX3BlbmRp
bmdGb2N1c2VkTm9kZUlEKSk7CiAKLSAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGVJRCAhPSBJbnZh
bGlkQVhJRCkgeworICAgICAgICBpZiAobV9mb2N1c2VkTm9kZUlELmlzVmFsaWQoKSkgewogICAg
ICAgICAgICAgLy8gU2V0IHRoZSBvbGQgZm9jdXNlZCBvYmplY3QncyBJc0ZvY3VzZWQgcHJvcGVy
dHkgdG8gZmFsc2UuCiAgICAgICAgICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFwOwogICAg
ICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlOYW1lOjpJc0ZvY3VzZWQsIGZhbHNl
KTsKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdD
aGFuZ2VzKCkKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX3BlbmRpbmdBcHBlbmRzKSB7
CiAgICAgICAgIEFYSUQgYXhJRCA9IGl0ZW0uaXNvbGF0ZWRPYmplY3QtPm9iamVjdElEKCk7CiAg
ICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoImFwcGVuZGluZyBheElEICIsIGF4SUQpKTsKLSAgICAg
ICAgaWYgKGF4SUQgPT0gSW52YWxpZEFYSUQpCisgICAgICAgIGlmICghYXhJRC5pc1ZhbGlkKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvJiB3cmFwcGVyID0gaXRlbS53
cmFwcGVyID8gaXRlbS53cmFwcGVyIDogaXRlbS5pc29sYXRlZE9iamVjdC0+d3JhcHBlcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggMTZiZDQ2ZjQ5OTYxLi4yNWNkY2M4OWVmZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHVzaW5nIEFYUHJvcGVydHlWYWx1
ZVZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIEFYSUQsIFN0cmluZywgYm9v
bCwKIHVzaW5nIEFYUHJvcGVydHlNYXAgPSBIYXNoTWFwPEFYUHJvcGVydHlOYW1lLCBBWFByb3Bl
cnR5VmFsdWVWYXJpYW50LCBJbnRIYXNoPEFYUHJvcGVydHlOYW1lPiwgV1RGOjpTdHJvbmdFbnVt
SGFzaFRyYWl0czxBWFByb3BlcnR5TmFtZT4+OwogCiBzdHJ1Y3QgQVhQcm9wZXJ0eUNoYW5nZSB7
Ci0gICAgQVhJRCBheElEIHsgSW52YWxpZEFYSUQgfTsgLy8gSUQgb2YgdGhlIG9iamVjdCB3aG9z
ZSBwcm9wZXJ0aWVzIGNoYW5nZWQuCisgICAgQVhJRCBheElEOyAvLyBJRCBvZiB0aGUgb2JqZWN0
IHdob3NlIHByb3BlcnRpZXMgY2hhbmdlZC4KICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnRpZXM7
IC8vIENoYW5nZWQgcHJvcGVydGllcy4KIH07CiAKQEAgLTQwNyw4ICs0MDcsOCBAQCBwcml2YXRl
OgogICAgIFZlY3RvcjxBWElEPiBtX3BlbmRpbmdOb2RlUmVtb3ZhbHMgV1RGX0dVQVJERURfQllf
TE9DSyhtX2NoYW5nZUxvZ0xvY2spOyAvLyBOb2RlcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRy
ZWUuCiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ1N1YnRyZWVSZW1vdmFscyBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9jayk7IC8vIE5vZGVzIHdob3NlIHN1YnRyZWVzIGFyZSB0
byBiZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBW
ZWN0b3I8QVhJRD4+PiBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMgV1RGX0dVQVJERURfQllfTE9D
SyhtX2NoYW5nZUxvZ0xvY2spOwotICAgIEFYSUQgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9jaykgeyBJbnZhbGlkQVhJRCB9OwotICAgIEFY
SUQgbV9mb2N1c2VkTm9kZUlEIHsgSW52YWxpZEFYSUQgfTsKKyAgICBBWElEIG1fcGVuZGluZ0Zv
Y3VzZWROb2RlSUQgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOworICAgIEFY
SUQgbV9mb2N1c2VkTm9kZUlEOwogICAgIExvY2sgbV9jaGFuZ2VMb2dMb2NrOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IGFlNjVlNDlhYWQwNi4u
NTdjMjZjM2ExYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1t
CkBAIC0yOTAsMTggKzI5MCwxOCBAQCBOU0FycmF5ICpjb252ZXJ0VG9OU0FycmF5KGNvbnN0IFdl
YkNvcmU6OkFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdAogCiAtICh2b2lk
KWF0dGFjaEFYT2JqZWN0OihBWENvcmVPYmplY3QqKWF4T2JqZWN0CiB7Ci0gICAgQVNTRVJUKGF4
T2JqZWN0ICYmIChfaWRlbnRpZmllciA9PSBJbnZhbGlkQVhJRCB8fCBfaWRlbnRpZmllciA9PSBh
eE9iamVjdC0+b2JqZWN0SUQoKSkpOworICAgIEFTU0VSVChheE9iamVjdCAmJiAoIV9pZGVudGlm
aWVyLmlzVmFsaWQoKSB8fCBfaWRlbnRpZmllciA9PSBheE9iamVjdC0+b2JqZWN0SUQoKSkpOwog
ICAgIG1fYXhPYmplY3QgPSBheE9iamVjdDsKLSAgICBpZiAoX2lkZW50aWZpZXIgPT0gSW52YWxp
ZEFYSUQpCisgICAgaWYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkpCiAgICAgICAgIF9pZGVudGlm
aWVyID0gbV9heE9iamVjdC0+b2JqZWN0SUQoKTsKIH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCiAtICh2b2lkKWF0dGFjaElzb2xhdGVkT2JqZWN0OihBWENvcmVP
YmplY3QqKWlzb2xhdGVkT2JqZWN0CiB7Ci0gICAgQVNTRVJUKGlzb2xhdGVkT2JqZWN0ICYmIChf
aWRlbnRpZmllciA9PSBJbnZhbGlkQVhJRCB8fCBfaWRlbnRpZmllciA9PSBpc29sYXRlZE9iamVj
dC0+b2JqZWN0SUQoKSkpOworICAgIEFTU0VSVChpc29sYXRlZE9iamVjdCAmJiAoIV9pZGVudGlm
aWVyLmlzVmFsaWQoKSB8fCBfaWRlbnRpZmllciA9PSBpc29sYXRlZE9iamVjdC0+b2JqZWN0SUQo
KSkpOwogICAgIG1faXNvbGF0ZWRPYmplY3QgPSBpc29sYXRlZE9iamVjdDsKLSAgICBpZiAoX2lk
ZW50aWZpZXIgPT0gSW52YWxpZEFYSUQpCisgICAgaWYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkp
CiAgICAgICAgIF9pZGVudGlmaWVyID0gbV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKIH0K
ICNlbmRpZgpAQCAtMzA5LDE0ICszMDksMTQgQEAgTlNBcnJheSAqY29udmVydFRvTlNBcnJheShj
b25zdCBXZWJDb3JlOjpBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3QKIC0g
KHZvaWQpZGV0YWNoCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBfaWRlbnRp
ZmllciA9IEludmFsaWRBWElEOworICAgIF9pZGVudGlmaWVyID0geyB9OwogICAgIG1fYXhPYmpl
Y3QgPSBudWxscHRyOwogfQogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKIC0gKHZvaWQpZGV0YWNoSXNvbGF0ZWRPYmplY3Q6KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50
VHlwZSlkZXRhY2htZW50VHlwZQogewotICAgIEFTU0VSVF9VTlVTRUQoZGV0YWNobWVudFR5cGUs
IGRldGFjaG1lbnRUeXBlID09IEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6RWxlbWVudENo
YW5nZWQgPyBfaWRlbnRpZmllciAhPSBJbnZhbGlkQVhJRCAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7
CisgICAgQVNTRVJUX1VOVVNFRChkZXRhY2htZW50VHlwZSwgZGV0YWNobWVudFR5cGUgPT0gQWNj
ZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50Q2hhbmdlZCA/IF9pZGVudGlmaWVyLmlz
VmFsaWQoKSAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7CiAgICAgbV9pc29sYXRlZE9iamVjdCA9IG51
bGxwdHI7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKaW5kZXggYjA4ZTNjZTFmNWY4Li5kMDE2M2EzODE4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0
Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2Jq
ZWN0Q2FjaGVXaW4uY3BwCkBAIC0xNDgsMTkgKzE0OCwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogbwogCiBBWElEIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKKyAgICBzdGF0aWMgTE9ORyBsYXN0
VXNlZElEID0gMDsKIAogICAgIC8vIEdlbmVyYXRlIGEgbmV3IElELiBXaW5kb3dzIGFjY2Vzc2li
aWxpdHkgcmVsaWVzIG9uIGEgcG9zaXRpdmUgQVhJRCwKICAgICAvLyByYW5naW5nIGZyb20gMSB0
byBMT05HX01BWC4KLSAgICBBWElEIG9iaklEID0gbGFzdFVzZWRJRDsKKyAgICBMT05HIGN1cnJl
bnRJRCA9IGxhc3RVc2VkSUQ7CisgICAgQVhJRCBvYmpJRDsKICAgICBkbyB7Ci0gICAgICAgICsr
b2JqSUQ7Ci0gICAgICAgIG9iaklEICU9IHN0ZDo6bnVtZXJpY19saW1pdHM8TE9ORz46Om1heCgp
OwotICAgIH0gd2hpbGUgKG9iaklEID09IDAgfHwgSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVk
VmFsdWUob2JqSUQpIHx8IG1faWRzSW5Vc2UuY29udGFpbnMob2JqSUQpKTsKKyAgICAgICAgb2Jq
SUQgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxBWElEPigrK2N1cnJlbnRJRCk7CisgICAgfSB3aGls
ZSAoIW9iaklELmlzVmFsaWQoKSB8fCBtX2lkc0luVXNlLmNvbnRhaW5zKG9iaklEKSk7CiAKLSAg
ICBBU1NFUlQob2JqSUQgPj0gMSAmJiBvYmpJRCA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPExPTkc+
OjptYXgoKSk7CisgICAgQVNTRVJUKG9iaklELmlzVmFsaWQoKSAmJiBvYmpJRC50b1VJbnQ2NCgp
IDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8TE9ORz46Om1heCgpKTsKIAotICAgIGxhc3RVc2VkSUQg
PSBvYmpJRDsKKyAgICBsYXN0VXNlZElEID0gY3VycmVudElEOwogCiAgICAgcmV0dXJuIG9iaklE
OwogfQo=
</data>
<flag name="commit-queue"
          id="469538"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444509</attachid>
            <date>2021-11-17 05:08:10 -0800</date>
            <delta_ts>2021-11-18 00:49:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-axid.diff</filename>
            <type>text/plain</type>
            <size>28026</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzdiNTdiMWQ5OTYuLjdlYmJiNmJiMmI4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUxIEBACisyMDIxLTExLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmNhY2hl
QW5kSW5pdGlhbGl6ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpkZXRhY2gpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YXNzb2NpYXRlZEFYT2JqZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJv
dyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0
VGVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpvYmplY3RB
dHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
Ojpub2RlRm9ySUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Omlk
c0Zvck9iamVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZUNoaWxkcmVuSURzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5l
cmF0ZVN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGF0dGFjaEFYT2JqZWN0
Ol0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYXR0YWNo
SXNvbGF0ZWRPYmplY3Q6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZSBkZXRhY2hdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlIGRldGFjaElzb2xhdGVkT2JqZWN0Ol0pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
d2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQgY29uc3QpOgorCiAyMDIxLTExLTE2ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI4MDA3OCwgcjI4MDI5MCBhbmQgcjI4MjAwOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggMzAzNjY2NjM3YjIwLi42MTNiZmVkNDRmNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC01MDIsNyArNTAy
LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFY
Q29yZU9iamVjdCYgb2JqZWN0KQogICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoImFkZHJlc3MiLCAm
b2JqZWN0KTsKICAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJ3cmFwcGVyIiwgb2JqZWN0LndyYXBw
ZXIoKSk7CiAKLSAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJwYXJlbnRPYmplY3QiLCBwYXJlbnQg
PyBwYXJlbnQtPm9iamVjdElEKCkgOiAwKTsKKyAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJwYXJl
bnRPYmplY3QiLCBwYXJlbnQgPyBwYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCkpOwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoInJlbW90ZVBhcmVudE9iamVj
dCIsIG9iamVjdC5yZW1vdGVQYXJlbnRPYmplY3QoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDQ0OTNmNjA5NTI3Yi4u
NWQ2NDE2NjQ0ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTEyNCw4ICsxMjQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNvbnN0IEFYSUQgSW52YWxpZEFYSUQgPSAwOwot
CiAvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVsZHMg
b3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50ZXJ2
YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCiBzdGF0aWMgY29uc3QgU2Vj
b25kcyBhY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFs
IHsgMjVfbXMgfTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGFjY2Vzc2liaWxpdHlMaXZlUmVnaW9u
Q2hhbmdlZE5vdGlmaWNhdGlvbkludGVydmFsIHsgMjBfbXMgfTsKQEAgLTQxOCw3ICs0MTYsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldElzb2xhdGVkVHJlZUZvY3VzZWRPYmplY3QoTm9kZSog
Zm9jdXNlZE5vZGUpCiAgICAgYXV0byogZm9jdXMgPSBnZXRPckNyZWF0ZShmb2N1c2VkTm9kZSk7
CiAKICAgICBpZiAoYXV0byB0cmVlID0gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQoKm1f
cGFnZUlEKSkKLSAgICAgICAgdHJlZS0+c2V0Rm9jdXNlZE5vZGVJRChmb2N1cyA/IGZvY3VzLT5v
YmplY3RJRCgpIDogSW52YWxpZEFYSUQpOworICAgICAgICB0cmVlLT5zZXRGb2N1c2VkTm9kZUlE
KGZvY3VzID8gZm9jdXMtPm9iamVjdElEKCkgOiBBWElEKCkpOwogfQogI2VuZGlmCiAKQEAgLTQy
OCw3ICs0MjYsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoV2lk
Z2V0KiB3aWRnZXQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAKICAgICBBWElE
IGF4SUQgPSBtX3dpZGdldE9iamVjdE1hcHBpbmcuZ2V0KHdpZGdldCk7Ci0gICAgQVNTRVJUKCFI
YXNoVHJhaXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShheElEKSk7CisgICAgQVNTRVJUKCFheElE
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOwogICAgIGlmICghYXhJRCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgCkBAIC00NDEsNyArNDM5LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQVhPYmplY3RDYWNoZTo6Z2V0KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIEFYSUQgYXhJRCA9IG1fcmVuZGVyT2JqZWN0TWFwcGlu
Zy5nZXQocmVuZGVyZXIpOwotICAgIEFTU0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVk
VmFsdWUoYXhJRCkpOworICAgIEFTU0VSVCghYXhJRC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
KTsKICAgICBpZiAoIWF4SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC00NTMsMTEg
KzQ1MSwxMSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoTm9kZSog
bm9kZSkKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQVhJ
RCByZW5kZXJJRCA9IG5vZGUtPnJlbmRlcmVyKCkgPyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0
KG5vZGUtPnJlbmRlcmVyKCkpIDogMDsKLSAgICBBU1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46Omlz
RGVsZXRlZFZhbHVlKHJlbmRlcklEKSk7CisgICAgQVhJRCByZW5kZXJJRCA9IG5vZGUtPnJlbmRl
cmVyKCkgPyBtX3JlbmRlck9iamVjdE1hcHBpbmcuZ2V0KG5vZGUtPnJlbmRlcmVyKCkpIDogQVhJ
RCgpOworICAgIEFTU0VSVCghcmVuZGVySUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAK
ICAgICBBWElEIG5vZGVJRCA9IG1fbm9kZU9iamVjdE1hcHBpbmcuZ2V0KG5vZGUpOwotICAgIEFT
U0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUobm9kZUlEKSk7CisgICAgQVNT
RVJUKCFub2RlSUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CiAKICAgICBpZiAobm9kZS0+
cmVuZGVyZXIoKSAmJiBub2RlSUQgJiYgIXJlbmRlcklEKSB7CiAgICAgICAgIC8vIFRoaXMgY2Fu
IGhhcHBlbiBpZiBhbiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCBpcyBjcmVhdGVkIGZvciBhIG5v
ZGUgdGhhdCdzIG5vdApAQCAtNjExLDcgKzYwOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2Fj
aGVBbmRJbml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBuZXdPYmplY3QsIERP
CiB7CiAgICAgQVNTRVJUKG5ld09iamVjdCk7CiAgICAgQVhJRCBheElEID0gZ2V0QVhJRChuZXdP
YmplY3QpOwotICAgIEFTU0VSVChheElEICE9IEludmFsaWRBWElEKTsKKyAgICBBU1NFUlQoYXhJ
RC5pc1ZhbGlkKCkpOwogCiAgICAgV1RGOjpzd2l0Y2hPbihkb21PYmplY3QsCiAgICAgICAgIFsm
YXhJRCwgdGhpc10gKFJlbmRlck9iamVjdCogdHlwZWRWYWx1ZSkgeyBtX3JlbmRlck9iamVjdE1h
cHBpbmcuc2V0KHR5cGVkVmFsdWUsIGF4SUQpOyB9LApAQCAtODMwLDcgKzgyOCw3IEBAIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZShBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlKQogdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCBheElEKQogewogICAgIEFYVFJB
Q0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSIpOwotICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQg
IiwgYXhJRCkpOworICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5sb2dnaW5nU3Ry
aW5nKCkpKTsKIAogICAgIGlmICghYXhJRCkKICAgICAgICAgcmV0dXJuOwpAQCAtODk1LDE2ICs4
OTMsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0KiB2aWV3KQogI2lmICFQ
TEFURk9STShXSU4pCiBBWElEIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkg
Y29uc3QKIHsKLSAgICBzdGF0aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKLQotICAgIC8vIEdlbmVy
YXRlIGEgbmV3IElELgotICAgIEFYSUQgb2JqSUQgPSBsYXN0VXNlZElEOworICAgIEFYSUQgb2Jq
SUQ7CiAgICAgZG8gewotICAgICAgICArK29iaklEOwotICAgIH0gd2hpbGUgKCFvYmpJRCB8fCBI
YXNoVHJhaXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShvYmpJRCkgfHwgbV9pZHNJblVzZS5jb250
YWlucyhvYmpJRCkpOwotCi0gICAgbGFzdFVzZWRJRCA9IG9iaklEOwotCisgICAgICAgIG9iaklE
ID0gQVhJRDo6Z2VuZXJhdGUoKTsKKyAgICB9IHdoaWxlICghb2JqSUQuaXNWYWxpZCgpIHx8IG1f
aWRzSW5Vc2UuY29udGFpbnMob2JqSUQpKTsKICAgICByZXR1cm4gb2JqSUQ7CiB9CiAjZW5kaWYK
QEAgLTkxNCw3ICs5MDYsNyBAQCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IEFYT2JqZWN0
Q2FjaGU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheAogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKICAgICByZXR1cm4gYXhJRHMubWFwKFt0aGlzXSAoQVhJRCBheElE
KSAtPiBSZWZQdHI8QVhDb3JlT2JqZWN0PiB7Ci0gICAgICAgIEFTU0VSVChheElEICE9IEludmFs
aWRBWElEKTsKKyAgICAgICAgQVNTRVJUKGF4SUQuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJu
IG9iamVjdEZyb21BWElEKGF4SUQpOwogICAgIH0pOwogfQpAQCAtMzI3Miw3ICszMjY0LDcgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0JiBvYmpl
Y3QsIEFYTm90aWZpY2F0aW9uIG5vdGkKICAgICBBWExPRyhzdGQ6Om1ha2VfcGFpcigmb2JqZWN0
LCBub3RpZmljYXRpb24pKTsKICAgICBBWExPRygqdGhpcyk7CiAKLSAgICBpZiAoIW1fcGFnZUlE
IHx8IG9iamVjdC5vYmplY3RJRCgpID09IEludmFsaWRBWElEKSB7CisgICAgaWYgKCFtX3BhZ2VJ
RCB8fCAhb2JqZWN0Lm9iamVjdElEKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIEFYTE9HKCJObyBw
YWdlSUQgb3Igb2JqZWN0SUQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMzNTIsNyAr
MzM0NCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxS
ZWZQdHI8QVhDb3JlT2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBmaWx0ZXJlZE5vdGlmaWNhdGlv
bnM7CiAgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKSB7
CiAgICAgICAgIEFYTE9HKG5vdGlmaWNhdGlvbik7Ci0gICAgICAgIGlmICghbm90aWZpY2F0aW9u
LmZpcnN0IHx8IG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCkK
KyAgICAgICAgaWYgKCFub3RpZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBz
d2l0Y2ggKG5vdGlmaWNhdGlvbi5zZWNvbmQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggM2I3NzI0YzgyODUyLi5kZDljOWNkZDJlMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC02MCw3
ICs2MCw3IEBAIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIGNsYXNzIFdpZGdldDsKIAogc3RydWN0
IFRleHRNYXJrZXJEYXRhIHsKLSAgICBBWElEIGF4SUQgeyAwIH07CisgICAgQVhJRCBheElEOwog
CiAgICAgTm9kZSogbm9kZSB7IG51bGxwdHIgfTsKICAgICB1bnNpZ25lZCBvZmZzZXQgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCmluZGV4IGU5MTM0ZGFkMGRmOS4uMjFmZjRhMjhhNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtODI4LDcgKzgy
OCw3IEBAIHByb3RlY3RlZDogLy8gRklYTUU6IE1ha2UgdGhlIGRhdGEgbWVtYmVycyBwcml2YXRl
LgogICAgIG11dGFibGUgYm9vbCBtX2NoaWxkcmVuSW5pdGlhbGl6ZWQgeyBmYWxzZSB9OwogICAg
IEFjY2Vzc2liaWxpdHlSb2xlIG1fcm9sZSB7IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duIH07
CiBwcml2YXRlOgotICAgIEFYSUQgbV9pZCB7IDAgfTsKKyAgICBBWElEIG1faWQ7CiAgICAgT3B0
aW9uU2V0PEFYQW5jZXN0b3JGbGFnPiBtX2FuY2VzdG9yRmxhZ3M7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbiBtX2xhc3RLbm93bklzSWdub3JlZFZhbHVlIHsgQWNjZXNzaWJpbGl0
eU9iamVjdEluY2x1c2lvbjo6RGVmYXVsdEJlaGF2aW9yIH07CiBwcm90ZWN0ZWQ6IC8vIEZJWE1F
OiBNYWtlIHRoZSBkYXRhIG1lbWJlcnMgcHJpdmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5k
ZXggY2E5YTBjZWJkMmZiLi5lMTU5NjIxYzg1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKFdJTikKQEAg
LTkzLDggKzk0LDggQEAgY2xhc3MgU2Nyb2xsVmlldzsKIHN0cnVjdCBBY2Nlc3NpYmlsaXR5VGV4
dDsKIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9uczsKIAotdXNpbmcgQVhJRCA9IHNp
emVfdDsKLWV4dGVybiBjb25zdCBBWElEIEludmFsaWRBWElEOworZW51bSBBWElEVHlwZSB7IH07
Cit1c2luZyBBWElEID0gT2JqZWN0SWRlbnRpZmllcjxBWElEVHlwZT47CiAKIGVudW0gY2xhc3Mg
QVhBbmNlc3RvckZsYWcgOiB1aW50OF90IHsKICAgICAvLyBXaGVuIHRoZSBmbGFncyBhcmVuJ3Qg
aW5pdGlhbGl6ZWQsIGl0IG1lYW5zIHRoZSBvYmplY3QgaGFzbid0IGJlZW4gaW5zZXJ0ZWQgaW50
byB0aGUgdHJlZSwKQEAgLTE1ODIsNyArMTU4Myw3IEBAIGlubGluZSB2b2lkIEFYQ29yZU9iamVj
dDo6ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSBkZXRhY2htZW50VHlwZSkKIHsK
ICAgICBkZXRhY2hXcmFwcGVyKGRldGFjaG1lbnRUeXBlKTsKICAgICBkZXRhY2hSZW1vdGVQYXJ0
cyhkZXRhY2htZW50VHlwZSk7Ci0gICAgc2V0T2JqZWN0SUQoSW52YWxpZEFYSUQpOworICAgIHNl
dE9iamVjdElEKHsgfSk7CiB9CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpLmNwcAppbmRleCA3MDNjOTc4M2M4MjAuLjMzZjljMWU1NDljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5
T2JqZWN0QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkv
QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcApAQCAtNDM5LDcgKzQzOSw3IEBAIEdEQnVzSW50
ZXJmYWNlVlRhYmxlIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c19hY2Nlc3NpYmxlRnVuY3Rp
b25zID0gewogICAgICAgICBpZiAoIWdfc3RyY21wMChwcm9wZXJ0eU5hbWUsICJMb2NhbGUiKSkK
ICAgICAgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZyhzZXRsb2NhbGUoTENfTUVT
U0FHRVMsIG51bGxwdHIpKTsKICAgICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAi
QWNjZXNzaWJsZUlkIikpCi0gICAgICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmco
YXRzcGlPYmplY3QtPm1fYXhPYmplY3QgPyBTdHJpbmc6Om51bWJlcihhdHNwaU9iamVjdC0+bV9h
eE9iamVjdC0+b2JqZWN0SUQoKSkudXRmOCgpLmRhdGEoKSA6ICIiKTsKKyAgICAgICAgICAgIHJl
dHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZyhhdHNwaU9iamVjdC0+bV9heE9iamVjdCA/IFN0cmlu
Zzo6bnVtYmVyKGF0c3BpT2JqZWN0LT5tX2F4T2JqZWN0LT5vYmplY3RJRCgpLnRvVUludDY0KCkp
LnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKHByb3BlcnR5TmFt
ZSwgIlBhcmVudCIpKQogICAgICAgICAgICAgcmV0dXJuIGF0c3BpT2JqZWN0LT5wYXJlbnRSZWZl
cmVuY2UoKTsKICAgICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiQ2hpbGRDb3Vu
dCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBiYTUwODRhNzNmMWMuLmY5ZGRl
Y2NiODVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAg
QVhJc29sYXRlZE9iamVjdDo6QVhJc29sYXRlZE9iamVjdChBWENvcmVPYmplY3QmIG9iamVjdCwg
QVhJc29sYXRlZFRyZWUqIHRyZWUsIEEKICAgICAsIG1faWQob2JqZWN0Lm9iamVjdElEKCkpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAobV9pZCAhPSBJbnZhbGlkQVhJ
RCkKLSAgICAgICAgaW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEob2JqZWN0LCBwYXJlbnRJRCA9PSBJ
bnZhbGlkQVhJRCk7CisgICAgaWYgKG1faWQuaXNWYWxpZCgpKQorICAgICAgICBpbml0aWFsaXpl
QXR0cmlidXRlRGF0YShvYmplY3QsICFwYXJlbnRJRC5pc1ZhbGlkKCkpOwogICAgIGVsc2Ugewog
ICAgICAgICAvLyBTaG91bGQgbmV2ZXIgaGFwcGVuIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2Vz
LgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTQzOCw3ICs0MzgsNyBAQCBBWENv
cmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OmFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmIChtX2lkID09IEludmFsaWRB
WElEKQorICAgIGlmICghbV9pZC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgaWYgKGF1dG8qIGF4T2JqZWN0Q2FjaGUgPSB0aGlzLT5heE9iamVjdENhY2hlKCkpIHsK
QEAgLTUyOSw3ICs1MjksNyBAQCBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWQoKSBj
b25zdAogCiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQoKQogewotICAg
IG1fcGFyZW50SUQgPSBJbnZhbGlkQVhJRDsKKyAgICBtX3BhcmVudElEID0geyB9OwogfQogCiBj
b25zdCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgQVhJc29sYXRl
ZE9iamVjdDo6Y2hpbGRyZW4oYm9vbCkKQEAgLTU4Nyw3ICs1ODcsNyBAQCBBWENvcmVPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBBWElzb2xhdGVkT2JqZWN0Ojpjb250ZW50cygp
CiAKIGJvb2wgQVhJc29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQoKQogewotICAg
IGlmIChwYXJlbnQoKSAhPSBJbnZhbGlkQVhJRCkKKyAgICBpZiAocGFyZW50KCkuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBDaGVjayB3aGV0aGVyIHRoaXMgaXMg
dGhlIHJvb3Qgbm9kZSwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgcmV0dXJuIGZhbHNlLgpAQCAt
NjAzLDcgKzYwMyw3IEBAIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNv
bHVtbkFuZFJvdyh1bnNpZ25lZCBjb2x1bW5JbmRleCwgdW5zaWduCiAgICAgICAgICAgICBpZiAo
YXV0byBjZWxsID0gb2JqZWN0LT5jZWxsRm9yQ29sdW1uQW5kUm93KGNvbHVtbkluZGV4LCByb3dJ
bmRleCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNlbGwtPm9iamVjdElEKCk7CiAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIEludmFsaWRBWElEOworICAgICAgICByZXR1cm4geyB9OwogICAg
IH0pOwogCiAgICAgcmV0dXJuIHRyZWUoKS0+bm9kZUZvcklEKGNlbGxJRCkuZ2V0KCk7CkBAIC04
MTAsNyArODEwLDcgQEAgQVhDb3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmls
aXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnMKICAgICAgICAgICAgICAgICBy
ZXR1cm4gYXhPYmplY3QtPm9iamVjdElEKCk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4g
SW52YWxpZEFYSUQ7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfSk7CiAKICAgICByZXR1cm4g
dHJlZSgpLT5ub2RlRm9ySUQoYXhJRCkuZ2V0KCk7CkBAIC04MzAsNyArODMwLDcgQEAgQVhDb3Jl
T2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0OjpvYmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUKICAgICBhdXRvIHZhbHVlID0gbV9wcm9wZXJ0eU1hcC5nZXQocHJv
cGVydHlOYW1lKTsKICAgICBBWElEIG5vZGVJRCA9IFdURjo6c3dpdGNoT24odmFsdWUsCiAgICAg
ICAgIFtdIChBWElEJiB0eXBlZFZhbHVlKSAtPiBBWElEIHsgcmV0dXJuIHR5cGVkVmFsdWU7IH0s
Ci0gICAgICAgIFtdIChhdXRvJikgeyByZXR1cm4gSW52YWxpZEFYSUQ7IH0KKyAgICAgICAgW10g
KGF1dG8mKSB7IHJldHVybiBBWElEKCk7IH0KICAgICApOwogCiAgICAgcmV0dXJuIHRyZWUoKS0+
bm9kZUZvcklEKG5vZGVJRCkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggNjky
OTM1YTk3NGY0Li4zYjRlZWExZmJiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTY2
Nyw4ICs2NjcsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gbV9jYWNoZWRUcmVlOwotICAgIEFY
SUQgbV9wYXJlbnRJRCB7IEludmFsaWRBWElEIH07Ci0gICAgQVhJRCBtX2lkIHsgSW52YWxpZEFY
SUQgfTsKKyAgICBBWElEIG1fcGFyZW50SUQ7CisgICAgQVhJRCBtX2lkOwogICAgIFZlY3RvcjxB
WElEPiBtX2NoaWxkcmVuSURzOwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gbV9j
aGlsZHJlbjsKICAgICBBWFByb3BlcnR5TWFwIG1fcHJvcGVydHlNYXA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5jcHAKaW5kZXggOGVjOTEzYjljMWVlLi5iZWFjZWM1OGU2ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6Om5vZGVGb3JJRChBWElEIGF4SUQpIGNvbnN0CiAgICAgaWYgKG1fdXNl
ZE9uQVhUaHJlYWQgJiYgaXNNYWluVGhyZWFkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIGF4SUQgIT0gSW52YWxpZEFYSUQgPyBtX3JlYWRlclRocmVhZE5vZGVNYXAu
Z2V0KGF4SUQpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gYXhJRC5pc1ZhbGlkKCkgPyBtX3JlYWRl
clRocmVhZE5vZGVNYXAuZ2V0KGF4SUQpIDogbnVsbHB0cjsKIH0KIAogVmVjdG9yPFJlZlB0cjxB
WENvcmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8
QVhJRD4mIGF4SURzKSBjb25zdApAQCAtMTY2LDcgKzE2Niw3IEBAIFZlY3RvcjxSZWZQdHI8QVhD
b3JlT2JqZWN0Pj4gQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFY
SUQ+JiBhCiBWZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zvck9iamVjdHMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYgb2JqZWN0cykgY29uc3QKIHsKICAgICByZXR1
cm4gb2JqZWN0cy5tYXAoW10gKGNvbnN0IFJlZlB0cjxBWENvcmVPYmplY3Q+JiBvYmplY3QpIC0+
IEFYSUQgewotICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT5vYmplY3RJRCgpIDogSW52
YWxpZEFYSUQ7CisgICAgICAgIHJldHVybiBvYmplY3QgPyBvYmplY3QtPm9iamVjdElEKCkgOiBB
WElEKCk7CiAgICAgfSk7CiB9CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVDaGlsZHJlbklEcyhBWElEIGF4SUQsIFZlY3RvcjxBWElEPiYmIGNoaWxkcmVu
SURzKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9n
TG9jay5pc0xvY2tlZCgpKTsKIAotICAgIGlmIChheElEICE9IEludmFsaWRBWElEKSB7CisgICAg
aWYgKGF4SUQuaXNWYWxpZCgpKSB7CiAgICAgICAgIG1fbm9kZU1hcC5zZXQoYXhJRCwgY2hpbGRy
ZW5JRHMpOwogICAgICAgICBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMuYXBwZW5kKHN0ZDo6bWFr
ZV9wYWlyKGF4SUQsIFdURk1vdmUoY2hpbGRyZW5JRHMpKSk7CiAgICAgfQpAQCAtMTg2LDE0ICsx
ODYsMTQgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVj
dCYgYXhPYmplY3QsIEFYQ29yZU9iamVjdCogYXhQYXIKICAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAot
ICAgIGlmIChheE9iamVjdC5vYmplY3RJRCgpID09IEludmFsaWRBWElEKQorICAgIGlmICghYXhP
YmplY3Qub2JqZWN0SUQoKS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8g
b2JqZWN0ID0gY3JlYXRlU3VidHJlZShheE9iamVjdCwgYXhQYXJlbnQgPyBheFBhcmVudC0+b2Jq
ZWN0SUQoKSA6IEludmFsaWRBWElELCBhdHRhY2hXcmFwcGVyKTsKKyAgICBhdXRvIG9iamVjdCA9
IGNyZWF0ZVN1YnRyZWUoYXhPYmplY3QsIGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkg
OiBBWElEKCksIGF0dGFjaFdyYXBwZXIpOwogICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxv
Z0xvY2sgfTsKICAgICBpZiAoIWF4UGFyZW50KQogICAgICAgICBzZXRSb290Tm9kZShvYmplY3Qu
cHRyKCkpOwotICAgIGVsc2UgaWYgKGF4UGFyZW50LT5vYmplY3RJRCgpICE9IEludmFsaWRBWElE
KSAvLyBOZWVkIHRvIGNoZWNrIGZvciB0aGUgb2JqZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVj
YXVzZSBpdCBtYXkgaGF2ZSBiZWVuIGRldGFjaGVkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUu
CisgICAgZWxzZSBpZiAoYXhQYXJlbnQtPm9iamVjdElEKCkuaXNWYWxpZCgpKSAvLyBOZWVkIHRv
IGNoZWNrIGZvciB0aGUgb2JqZWN0SUQgb2YgYXhQYXJlbnQgYWdhaW4gYmVjYXVzZSBpdCBtYXkg
aGF2ZSBiZWVuIGRldGFjaGVkIHdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUuCiAgICAgICAgIHVw
ZGF0ZUNoaWxkcmVuSURzKGF4UGFyZW50LT5vYmplY3RJRCgpLCBheFBhcmVudC0+Y2hpbGRyZW5J
RHMoKSk7CiB9CiAKQEAgLTIwMyw3ICsyMDMsNyBAQCBSZWY8QVhJc29sYXRlZE9iamVjdD4gQVhJ
c29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRAog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIG9iamVjdCA9IEFYSXNvbGF0
ZWRPYmplY3Q6OmNyZWF0ZShheE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwotICAgIGlmIChvYmpl
Y3QtPm9iamVjdElEKCkgPT0gSW52YWxpZEFYSUQpIHsKKyAgICBpZiAoIW9iamVjdC0+b2JqZWN0
SUQoKS5pc1ZhbGlkKCkpIHsKICAgICAgICAgLy8gRWl0aGVyIHRoZSBheE9iamVjdCBoYXMgYW4g
aW52YWxpZCBJRCBvciBzb21ldGhpbmcgZWxzZSB3ZW50IHRlcnJpYmx5IHdyb25nLiBEb24ndCBi
b3RoZXIgZG9pbmcgYW55dGhpbmcgZWxzZS4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiBvYmplY3Q7CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBBWElzb2xh
dGVkVHJlZTo6dXBkYXRlTm9kZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiAgICAgQVhJRCBh
eElEID0gYXhPYmplY3Qub2JqZWN0SUQoKTsKICAgICBhdXRvKiBheFBhcmVudCA9IGF4T2JqZWN0
LnBhcmVudE9iamVjdCgpOwotICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVudCA/IGF4UGFyZW50
LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQ7CisgICAgQVhJRCBwYXJlbnRJRCA9IGF4UGFyZW50
ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBBWElEKCk7CiAKICAgICBhdXRvIG5ld09iamVjdCA9
IEFYSXNvbGF0ZWRPYmplY3Q6OmNyZWF0ZShheE9iamVjdCwgdGhpcywgcGFyZW50SUQpOwogICAg
IG5ld09iamVjdC0+bV9jaGlsZHJlbklEcyA9IGF4T2JqZWN0LmNoaWxkcmVuSURzKCk7CkBAIC0z
MTYsNyArMzE2LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCkKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fSk7Ci0gICAgaWYgKCFheEFuY2VzdG9yIHx8IGF4QW5jZXN0b3ItPm9iamVjdElEKCkgPT0gSW52
YWxpZEFYSUQgfHwgaXRlcmF0b3IgPT0gbV9ub2RlTWFwLmVuZCgpKSB7CisgICAgaWYgKCFheEFu
Y2VzdG9yIHx8ICFheEFuY2VzdG9yLT5vYmplY3RJRCgpLmlzVmFsaWQoKSB8fCBpdGVyYXRvciA9
PSBtX25vZGVNYXAuZW5kKCkpIHsKICAgICAgICAgLy8gVGhpcyB1cGRhdGUgdHJpZ2dlcmVkIGJl
Zm9yZSB0aGUgaXNvbGF0ZWQgdHJlZSBoYXMgYmVlbiByZXBvcHVsYXRlZC4KICAgICAgICAgLy8g
UmV0dXJuIGhlcmUgc2luY2UgdGhlcmUgaXMgbm90aGluZyB0byB1cGRhdGUuCiAgICAgICAgIHJl
dHVybjsKQEAgLTM2NSw3ICszNjUsNyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29s
YXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKICAgICAvLyBBcHBseSBwZW5kaW5nIGNoYW5nZXMgaW4g
Y2FzZSBmb2N1cyBoYXMgY2hhbmdlZCBhbmQgaGFzbid0IGJlZW4gdXBkYXRlZC4KICAgICBhcHBs
eVBlbmRpbmdDaGFuZ2VzKCk7CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9
OwotICAgIEFYTE9HKG1ha2VTdHJpbmcoImZvY3VzZWROb2RlSUQgIiwgbV9mb2N1c2VkTm9kZUlE
KSk7CisgICAgQVhMT0cobWFrZVN0cmluZygiZm9jdXNlZE5vZGVJRCAiLCBtX2ZvY3VzZWROb2Rl
SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVhMT0coImZvY3VzZWQgbm9kZToiKTsKICAgICBB
WExPRyhub2RlRm9ySUQobV9mb2N1c2VkTm9kZUlEKSk7CiAgICAgcmV0dXJuIG5vZGVGb3JJRCht
X2ZvY3VzZWROb2RlSUQpOwpAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJvb3QpCiB2b2lkIEFYSXNvbGF0ZWRUcmVl
OjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHsKICAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCIpOwotICAgIEFYTE9HKG1ha2VTdHJpbmcoImF4SUQgIiwg
YXhJRCkpOworICAgIEFYTE9HKG1ha2VTdHJpbmcoImF4SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5n
KCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgTG9ja2VyIGxvY2tlciB7
IG1fY2hhbmdlTG9nTG9jayB9OwpAQCAtNDA2LDcgKzQwNiw3IEBAIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElEKQogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlTm9kZShBWElEIGF4SUQpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92
ZU5vZGUiKTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJBWElEICIsIGF4SUQpKTsKKyAgICBBWExP
RyhtYWtlU3RyaW5nKCJBWElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAogICAgIG1fbm9kZU1hcC5yZW1vdmUoYXhJRCk7CkBAIC00MTcs
MTMgKzQxNywxMyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKEFYSUQgYXhJRCkK
IHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWUoQVhJRCBheElEKQogewogICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlIik7Ci0gICAgQVhMT0cobWFrZVN0
cmluZygiUmVtb3Zpbmcgc3VidHJlZSBmb3IgYXhJRCAiLCBheElEKSk7CisgICAgQVhMT0cobWFr
ZVN0cmluZygiUmVtb3Zpbmcgc3VidHJlZSBmb3IgYXhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmco
KSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBWZWN0b3I8QVhJRD4gcmVt
b3ZhbHMgPSB7IGF4SUQgfTsKICAgICB3aGlsZSAocmVtb3ZhbHMuc2l6ZSgpKSB7CiAgICAgICAg
IEFYSUQgYXhJRCA9IHJlbW92YWxzLnRha2VMYXN0KCk7Ci0gICAgICAgIGlmIChheElEID09IElu
dmFsaWRBWElEKQorICAgICAgICBpZiAoIWF4SUQuaXNWYWxpZCgpKQogICAgICAgICAgICAgY29u
dGludWU7CiAKICAgICAgICAgYXV0byBpdCA9IG1fbm9kZU1hcC5maW5kKGF4SUQpOwpAQCAtNDQ5
LDkgKzQ0OSw5IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQog
ICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKIAogICAgIGlmIChtX3BlbmRp
bmdGb2N1c2VkTm9kZUlEICE9IG1fZm9jdXNlZE5vZGVJRCkgewotICAgICAgICBBWExPRyhtYWtl
U3RyaW5nKCJmb2N1c2VkTm9kZUlEICIsIG1fZm9jdXNlZE5vZGVJRCwgIiBwZW5kaW5nRm9jdXNl
ZE5vZGVJRCAiLCBtX3BlbmRpbmdGb2N1c2VkTm9kZUlEKSk7CisgICAgICAgIEFYTE9HKG1ha2VT
dHJpbmcoImZvY3VzZWROb2RlSUQgIiwgbV9mb2N1c2VkTm9kZUlELmxvZ2dpbmdTdHJpbmcoKSwg
IiBwZW5kaW5nRm9jdXNlZE5vZGVJRCAiLCBtX3BlbmRpbmdGb2N1c2VkTm9kZUlELmxvZ2dpbmdT
dHJpbmcoKSkpOwogCi0gICAgICAgIGlmIChtX2ZvY3VzZWROb2RlSUQgIT0gSW52YWxpZEFYSUQp
IHsKKyAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGVJRC5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAg
IC8vIFNldCB0aGUgb2xkIGZvY3VzZWQgb2JqZWN0J3MgSXNGb2N1c2VkIHByb3BlcnR5IHRvIGZh
bHNlLgogICAgICAgICAgICAgQVhQcm9wZXJ0eU1hcCBwcm9wZXJ0eU1hcDsKICAgICAgICAgICAg
IHByb3BlcnR5TWFwLnNldChBWFByb3BlcnR5TmFtZTo6SXNGb2N1c2VkLCBmYWxzZSk7CkBAIC00
NjIsNyArNDYyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygp
CiAKICAgICB3aGlsZSAobV9wZW5kaW5nTm9kZVJlbW92YWxzLnNpemUoKSkgewogICAgICAgICBh
dXRvIGF4SUQgPSBtX3BlbmRpbmdOb2RlUmVtb3ZhbHMudGFrZUxhc3QoKTsKLSAgICAgICAgQVhM
T0cobWFrZVN0cmluZygicmVtb3ZpbmcgYXhJRCAiLCBheElEKSk7CisgICAgICAgIEFYTE9HKG1h
a2VTdHJpbmcoInJlbW92aW5nIGF4SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICAg
ICAgaWYgKGF1dG8gb2JqZWN0ID0gbm9kZUZvcklEKGF4SUQpKSB7CiAgICAgICAgICAgICBvYmpl
Y3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkVsZW1lbnREZXN0cm95ZWQp
OwogICAgICAgICAgICAgbV9yZWFkZXJUaHJlYWROb2RlTWFwLnJlbW92ZShheElEKTsKQEAgLTQ3
MSw3ICs0NzEsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkK
IAogICAgIHdoaWxlIChtX3BlbmRpbmdTdWJ0cmVlUmVtb3ZhbHMuc2l6ZSgpKSB7CiAgICAgICAg
IGF1dG8gYXhJRCA9IG1fcGVuZGluZ1N1YnRyZWVSZW1vdmFscy50YWtlTGFzdCgpOwotICAgICAg
ICBBWExPRyhtYWtlU3RyaW5nKCJyZW1vdmluZyBzdWJ0cmVlIGF4SUQgIiwgYXhJRCkpOworICAg
ICAgICBBWExPRyhtYWtlU3RyaW5nKCJyZW1vdmluZyBzdWJ0cmVlIGF4SUQgIiwgYXhJRC5sb2dn
aW5nU3RyaW5nKCkpKTsKICAgICAgICAgaWYgKGF1dG8gb2JqZWN0ID0gbm9kZUZvcklEKGF4SUQp
KSB7CiAgICAgICAgICAgICBvYmplY3QtPmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5
cGU6OkVsZW1lbnREZXN0cm95ZWQpOwogICAgICAgICAgICAgbV9wZW5kaW5nU3VidHJlZVJlbW92
YWxzLmFwcGVuZFZlY3RvcihvYmplY3QtPm1fY2hpbGRyZW5JRHMpOwpAQCAtNDgxLDggKzQ4MSw4
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogCiAgICAgZm9y
IChjb25zdCBhdXRvJiBpdGVtIDogbV9wZW5kaW5nQXBwZW5kcykgewogICAgICAgICBBWElEIGF4
SUQgPSBpdGVtLmlzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpOwotICAgICAgICBBWExPRyhtYWtl
U3RyaW5nKCJhcHBlbmRpbmcgYXhJRCAiLCBheElEKSk7Ci0gICAgICAgIGlmIChheElEID09IElu
dmFsaWRBWElEKQorICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJhcHBlbmRpbmcgYXhJRCAiLCBh
eElELmxvZ2dpbmdTdHJpbmcoKSkpOworICAgICAgICBpZiAoIWF4SUQuaXNWYWxpZCgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byYgd3JhcHBlciA9IGl0ZW0ud3JhcHBl
ciA/IGl0ZW0ud3JhcHBlciA6IGl0ZW0uaXNvbGF0ZWRPYmplY3QtPndyYXBwZXIoKTsKQEAgLTUx
OCw3ICs1MTgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkK
ICAgICBtX3BlbmRpbmdBcHBlbmRzLmNsZWFyKCk7CiAKICAgICBmb3IgKGF1dG8mIHVwZGF0ZSA6
IG1fcGVuZGluZ0NoaWxkcmVuVXBkYXRlcykgewotICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJ1
cGRhdGluZyBjaGlsZHJlbiBmb3IgYXhJRCAiLCB1cGRhdGUuZmlyc3QpKTsKKyAgICAgICAgQVhM
T0cobWFrZVN0cmluZygidXBkYXRpbmcgY2hpbGRyZW4gZm9yIGF4SUQgIiwgdXBkYXRlLmZpcnN0
LmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBub2RlRm9ySUQo
dXBkYXRlLmZpcnN0KSkKICAgICAgICAgICAgIG9iamVjdC0+bV9jaGlsZHJlbklEcyA9IFdURk1v
dmUodXBkYXRlLnNlY29uZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggMTZiZDQ2
ZjQ5OTYxLi4yNWNkY2M4OWVmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMzIzLDcgKzMy
Myw3IEBAIHVzaW5nIEFYUHJvcGVydHlWYWx1ZVZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpu
dWxscHRyX3QsIEFYSUQsIFN0cmluZywgYm9vbCwKIHVzaW5nIEFYUHJvcGVydHlNYXAgPSBIYXNo
TWFwPEFYUHJvcGVydHlOYW1lLCBBWFByb3BlcnR5VmFsdWVWYXJpYW50LCBJbnRIYXNoPEFYUHJv
cGVydHlOYW1lPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBWFByb3BlcnR5TmFtZT4+Owog
CiBzdHJ1Y3QgQVhQcm9wZXJ0eUNoYW5nZSB7Ci0gICAgQVhJRCBheElEIHsgSW52YWxpZEFYSUQg
fTsgLy8gSUQgb2YgdGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0aWVzIGNoYW5nZWQuCisgICAgQVhJ
RCBheElEOyAvLyBJRCBvZiB0aGUgb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgY2hhbmdlZC4KICAg
ICBBWFByb3BlcnR5TWFwIHByb3BlcnRpZXM7IC8vIENoYW5nZWQgcHJvcGVydGllcy4KIH07CiAK
QEAgLTQwNyw4ICs0MDcsOCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxBWElEPiBtX3BlbmRpbmdO
b2RlUmVtb3ZhbHMgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOyAvLyBOb2Rl
cyB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGlu
Z1N1YnRyZWVSZW1vdmFscyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9jayk7IC8v
IE5vZGVzIHdob3NlIHN1YnRyZWVzIGFyZSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRyZWUuCiAg
ICAgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBWZWN0b3I8QVhJRD4+PiBtX3BlbmRpbmdDaGlsZHJl
blVwZGF0ZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwotICAgIEFYSUQg
bV9wZW5kaW5nRm9jdXNlZE5vZGVJRCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9j
aykgeyBJbnZhbGlkQVhJRCB9OwotICAgIEFYSUQgbV9mb2N1c2VkTm9kZUlEIHsgSW52YWxpZEFY
SUQgfTsKKyAgICBBWElEIG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQgV1RGX0dVQVJERURfQllfTE9D
SyhtX2NoYW5nZUxvZ0xvY2spOworICAgIEFYSUQgbV9mb2N1c2VkTm9kZUlEOwogICAgIExvY2sg
bV9jaGFuZ2VMb2dMb2NrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tCmluZGV4IGFlNjVlNDlhYWQwNi4uNTdjMjZjM2ExYWZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0yOTAsMTggKzI5MCwxOCBAQCBOU0FycmF5
ICpjb252ZXJ0VG9OU0FycmF5KGNvbnN0IFdlYkNvcmU6OkFYQ29yZU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdAogCiAtICh2b2lkKWF0dGFjaEFYT2JqZWN0OihBWENvcmVPYmplY3Qq
KWF4T2JqZWN0CiB7Ci0gICAgQVNTRVJUKGF4T2JqZWN0ICYmIChfaWRlbnRpZmllciA9PSBJbnZh
bGlkQVhJRCB8fCBfaWRlbnRpZmllciA9PSBheE9iamVjdC0+b2JqZWN0SUQoKSkpOworICAgIEFT
U0VSVChheE9iamVjdCAmJiAoIV9pZGVudGlmaWVyLmlzVmFsaWQoKSB8fCBfaWRlbnRpZmllciA9
PSBheE9iamVjdC0+b2JqZWN0SUQoKSkpOwogICAgIG1fYXhPYmplY3QgPSBheE9iamVjdDsKLSAg
ICBpZiAoX2lkZW50aWZpZXIgPT0gSW52YWxpZEFYSUQpCisgICAgaWYgKCFfaWRlbnRpZmllci5p
c1ZhbGlkKCkpCiAgICAgICAgIF9pZGVudGlmaWVyID0gbV9heE9iamVjdC0+b2JqZWN0SUQoKTsK
IH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAtICh2b2lkKWF0
dGFjaElzb2xhdGVkT2JqZWN0OihBWENvcmVPYmplY3QqKWlzb2xhdGVkT2JqZWN0CiB7Ci0gICAg
QVNTRVJUKGlzb2xhdGVkT2JqZWN0ICYmIChfaWRlbnRpZmllciA9PSBJbnZhbGlkQVhJRCB8fCBf
aWRlbnRpZmllciA9PSBpc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSkpOworICAgIEFTU0VSVChp
c29sYXRlZE9iamVjdCAmJiAoIV9pZGVudGlmaWVyLmlzVmFsaWQoKSB8fCBfaWRlbnRpZmllciA9
PSBpc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKSkpOwogICAgIG1faXNvbGF0ZWRPYmplY3QgPSBp
c29sYXRlZE9iamVjdDsKLSAgICBpZiAoX2lkZW50aWZpZXIgPT0gSW52YWxpZEFYSUQpCisgICAg
aWYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkpCiAgICAgICAgIF9pZGVudGlmaWVyID0gbV9pc29s
YXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKIH0KICNlbmRpZgpAQCAtMzA5LDE0ICszMDksMTQgQEAg
TlNBcnJheSAqY29udmVydFRvTlNBcnJheShjb25zdCBXZWJDb3JlOjpBWENvcmVPYmplY3Q6OkFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3QKIC0gKHZvaWQpZGV0YWNoCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICBfaWRlbnRpZmllciA9IEludmFsaWRBWElEOworICAgIF9pZGVu
dGlmaWVyID0geyB9OwogICAgIG1fYXhPYmplY3QgPSBudWxscHRyOwogfQogCiAjaWYgRU5BQkxF
KEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKIC0gKHZvaWQpZGV0YWNoSXNvbGF0ZWRPYmpl
Y3Q6KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSlkZXRhY2htZW50VHlwZQogewotICAgIEFT
U0VSVF9VTlVTRUQoZGV0YWNobWVudFR5cGUsIGRldGFjaG1lbnRUeXBlID09IEFjY2Vzc2liaWxp
dHlEZXRhY2htZW50VHlwZTo6RWxlbWVudENoYW5nZWQgPyBfaWRlbnRpZmllciAhPSBJbnZhbGlk
QVhJRCAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7CisgICAgQVNTRVJUX1VOVVNFRChkZXRhY2htZW50
VHlwZSwgZGV0YWNobWVudFR5cGUgPT0gQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpFbGVt
ZW50Q2hhbmdlZCA/IF9pZGVudGlmaWVyLmlzVmFsaWQoKSAmJiBtX2F4T2JqZWN0IDogdHJ1ZSk7
CiAgICAgbV9pc29sYXRlZE9iamVjdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKaW5k
ZXggYjA4ZTNjZTFmNWY4Li43OWNiNzkxODk5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3Jl
T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4KICAgICBBU1NFUlQob2JqLT5vYmplY3RJRCgp
ID49IDEpOwogICAgIEFTU0VSVChvYmotPm9iamVjdElEKCkgPD0gc3RkOjpudW1lcmljX2xpbWl0
czxMT05HPjo6bWF4KCkpOwogCi0gICAgTm90aWZ5V2luRXZlbnQobXNhYUV2ZW50LCBwYWdlLT5j
aHJvbWUoKS5wbGF0Zm9ybVBhZ2VDbGllbnQoKSwgT0JKSURfQ0xJRU5ULCAtc3RhdGljX2Nhc3Q8
TE9ORz4ob2JqLT5vYmplY3RJRCgpKSk7CisgICAgTm90aWZ5V2luRXZlbnQobXNhYUV2ZW50LCBw
YWdlLT5jaHJvbWUoKS5wbGF0Zm9ybVBhZ2VDbGllbnQoKSwgT0JKSURfQ0xJRU5ULCAtc3RhdGlj
X2Nhc3Q8TE9ORz4ob2JqLT5vYmplY3RJRCgpLnRvVUludDY0KCkpKTsKIH0KIAogdm9pZCBBWE9i
amVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQpAQCAtMTQ4
LDE5ICsxNDgsMTkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG8KIAogQVhJRCBBWE9iamVjdENh
Y2hlOjpwbGF0Zm9ybUdlbmVyYXRlQVhJRCgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIEFYSUQgbGFz
dFVzZWRJRCA9IDA7CisgICAgc3RhdGljIExPTkcgbGFzdFVzZWRJRCA9IDA7CiAKICAgICAvLyBH
ZW5lcmF0ZSBhIG5ldyBJRC4gV2luZG93cyBhY2Nlc3NpYmlsaXR5IHJlbGllcyBvbiBhIHBvc2l0
aXZlIEFYSUQsCiAgICAgLy8gcmFuZ2luZyBmcm9tIDEgdG8gTE9OR19NQVguCi0gICAgQVhJRCBv
YmpJRCA9IGxhc3RVc2VkSUQ7CisgICAgTE9ORyBjdXJyZW50SUQgPSBsYXN0VXNlZElEOworICAg
IEFYSUQgb2JqSUQ7CiAgICAgZG8gewotICAgICAgICArK29iaklEOwotICAgICAgICBvYmpJRCAl
PSBzdGQ6Om51bWVyaWNfbGltaXRzPExPTkc+OjptYXgoKTsKLSAgICB9IHdoaWxlIChvYmpJRCA9
PSAwIHx8IEhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRlZFZhbHVlKG9iaklEKSB8fCBtX2lkc0lu
VXNlLmNvbnRhaW5zKG9iaklEKSk7CisgICAgICAgIG9iaklEID0gbWFrZU9iamVjdElkZW50aWZp
ZXI8QVhJRD4oKytjdXJyZW50SUQpOworICAgIH0gd2hpbGUgKCFvYmpJRC5pc1ZhbGlkKCkgfHwg
bV9pZHNJblVzZS5jb250YWlucyhvYmpJRCkpOwogCi0gICAgQVNTRVJUKG9iaklEID49IDEgJiYg
b2JqSUQgPD0gc3RkOjpudW1lcmljX2xpbWl0czxMT05HPjo6bWF4KCkpOworICAgIEFTU0VSVChv
YmpJRC5pc1ZhbGlkKCkgJiYgb2JqSUQudG9VSW50NjQoKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRz
PExPTkc+OjptYXgoKSk7CiAKLSAgICBsYXN0VXNlZElEID0gb2JqSUQ7CisgICAgbGFzdFVzZWRJ
RCA9IGN1cnJlbnRJRDsKIAogICAgIHJldHVybiBvYmpJRDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444645</attachid>
            <date>2021-11-18 00:49:44 -0800</date>
            <delta_ts>2021-11-18 01:26:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-axid.diff</filename>
            <type>text/plain</type>
            <size>28031</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzdiNTdiMWQ5OTYuLmNlZTY2OWFjMmYwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDUxIEBACisyMDIxLTExLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlei4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjYWNo
ZUFuZEluaXRpYWxpemVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBsYXRmb3JtR2VuZXJhdGVBWElEIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6Om9iamVjdHNGb3JJRHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFYQ29yZU9iamVjdDo6ZGV0YWNoKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHA6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpBWElzb2xhdGVkT2JqZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmFzc29jaWF0ZWRBWE9iamVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpkZXRhY2hGcm9tUGFyZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWRGcm9tUGFyZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNlbGxGb3JDb2x1bW5BbmRS
b3cpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eUhp
dFRlc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6b2JqZWN0
QXR0cmlidXRlVmFsdWUgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6bm9kZUZvcklEIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpp
ZHNGb3JPYmplY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVDaGlsZHJlbklEcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Z2Vu
ZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGVT
dWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhdHRhY2hBWE9iamVj
dDpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGF0dGFj
aElzb2xhdGVkT2JqZWN0Ol0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgZGV0YWNoXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZSBkZXRhY2hJc29sYXRlZE9iamVjdDpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEIGNvbnN0KToKKwogMjAyMS0xMS0xNiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyODAwNzgsIHIyODAyOTAgYW5kIHIyODIwMDguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDMwMzY2NjYzN2IyMC4uNjEzYmZlZDQ0ZjVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTAyLDcgKzUw
Miw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBB
WENvcmVPYmplY3QmIG9iamVjdCkKICAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJhZGRyZXNzIiwg
Jm9iamVjdCk7CiAgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgid3JhcHBlciIsIG9iamVjdC53cmFw
cGVyKCkpOwogCi0gICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgicGFyZW50T2JqZWN0IiwgcGFyZW50
ID8gcGFyZW50LT5vYmplY3RJRCgpIDogMCk7CisgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgicGFy
ZW50T2JqZWN0IiwgcGFyZW50ID8gcGFyZW50LT5vYmplY3RJRCgpIDogQVhJRCgpKTsKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJyZW1vdGVQYXJlbnRPYmpl
Y3QiLCBvYmplY3QucmVtb3RlUGFyZW50T2JqZWN0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA0NDkzZjYwOTUyN2Iu
LjVkNjQxNjY0NGVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCkBAIC0xMjQsOCArMTI0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1jb25zdCBBWElEIEludmFsaWRBWElEID0gMDsK
LQogLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQogc3RhdGljIGNvbnN0IFNl
Y29uZHMgYWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZh
bCB7IDI1X21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lv
bkNoYW5nZWROb3RpZmljYXRpb25JbnRlcnZhbCB7IDIwX21zIH07CkBAIC00MTgsNyArNDE2LDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRJc29sYXRlZFRyZWVGb2N1c2VkT2JqZWN0KE5vZGUq
IGZvY3VzZWROb2RlKQogICAgIGF1dG8qIGZvY3VzID0gZ2V0T3JDcmVhdGUoZm9jdXNlZE5vZGUp
OwogCiAgICAgaWYgKGF1dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKCpt
X3BhZ2VJRCkpCi0gICAgICAgIHRyZWUtPnNldEZvY3VzZWROb2RlSUQoZm9jdXMgPyBmb2N1cy0+
b2JqZWN0SUQoKSA6IEludmFsaWRBWElEKTsKKyAgICAgICAgdHJlZS0+c2V0Rm9jdXNlZE5vZGVJ
RChmb2N1cyA/IGZvY3VzLT5vYmplY3RJRCgpIDogQVhJRCgpKTsKIH0KICNlbmRpZgogCkBAIC00
MjgsNyArNDI2LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0KFdp
ZGdldCogd2lkZ2V0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgCiAgICAgQVhJ
RCBheElEID0gbV93aWRnZXRPYmplY3RNYXBwaW5nLmdldCh3aWRnZXQpOwotICAgIEFTU0VSVCgh
SGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUoYXhJRCkpOworICAgIEFTU0VSVCghYXhJ
RC5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKTsKICAgICBpZiAoIWF4SUQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIApAQCAtNDQxLDcgKzQzOSw3IEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFYT2JqZWN0Q2FjaGU6OmdldChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBBWElEIGF4SUQgPSBtX3JlbmRlck9iamVjdE1hcHBp
bmcuZ2V0KHJlbmRlcmVyKTsKLSAgICBBU1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRl
ZFZhbHVlKGF4SUQpKTsKKyAgICBBU1NFUlQoIWF4SUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUo
KSk7CiAgICAgaWYgKCFheElEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtNDUzLDEx
ICs0NTEsMTEgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6Z2V0KE5vZGUq
IG5vZGUpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEFY
SUQgcmVuZGVySUQgPSBub2RlLT5yZW5kZXJlcigpID8gbV9yZW5kZXJPYmplY3RNYXBwaW5nLmdl
dChub2RlLT5yZW5kZXJlcigpKSA6IDA7Ci0gICAgQVNTRVJUKCFIYXNoVHJhaXRzPEFYSUQ+Ojpp
c0RlbGV0ZWRWYWx1ZShyZW5kZXJJRCkpOworICAgIEFYSUQgcmVuZGVySUQgPSBub2RlLT5yZW5k
ZXJlcigpID8gbV9yZW5kZXJPYmplY3RNYXBwaW5nLmdldChub2RlLT5yZW5kZXJlcigpKSA6IEFY
SUQoKTsKKyAgICBBU1NFUlQoIXJlbmRlcklELmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOwog
CiAgICAgQVhJRCBub2RlSUQgPSBtX25vZGVPYmplY3RNYXBwaW5nLmdldChub2RlKTsKLSAgICBB
U1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRlZFZhbHVlKG5vZGVJRCkpOworICAgIEFT
U0VSVCghbm9kZUlELmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOwogCiAgICAgaWYgKG5vZGUt
PnJlbmRlcmVyKCkgJiYgbm9kZUlEICYmICFyZW5kZXJJRCkgewogICAgICAgICAvLyBUaGlzIGNh
biBoYXBwZW4gaWYgYW4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QgaXMgY3JlYXRlZCBmb3IgYSBu
b2RlIHRoYXQncyBub3QKQEAgLTYxMSw3ICs2MDksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNh
Y2hlQW5kSW5pdGlhbGl6ZVdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogbmV3T2JqZWN0LCBE
TwogewogICAgIEFTU0VSVChuZXdPYmplY3QpOwogICAgIEFYSUQgYXhJRCA9IGdldEFYSUQobmV3
T2JqZWN0KTsKLSAgICBBU1NFUlQoYXhJRCAhPSBJbnZhbGlkQVhJRCk7CisgICAgQVNTRVJUKGF4
SUQuaXNWYWxpZCgpKTsKIAogICAgIFdURjo6c3dpdGNoT24oZG9tT2JqZWN0LAogICAgICAgICBb
JmF4SUQsIHRoaXNdIChSZW5kZXJPYmplY3QqIHR5cGVkVmFsdWUpIHsgbV9yZW5kZXJPYmplY3RN
YXBwaW5nLnNldCh0eXBlZFZhbHVlLCBheElEKTsgfSwKQEAgLTgzMCw3ICs4MjgsNyBAQCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkKIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQgYXhJRCkKIHsKICAgICBBWFRS
QUNFKCJBWE9iamVjdENhY2hlOjpyZW1vdmUiKTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJBWElE
ICIsIGF4SUQpKTsKKyAgICBBWExPRyhtYWtlU3RyaW5nKCJBWElEICIsIGF4SUQubG9nZ2luZ1N0
cmluZygpKSk7CiAKICAgICBpZiAoIWF4SUQpCiAgICAgICAgIHJldHVybjsKQEAgLTg5NSwxNiAr
ODkzLDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFdpZGdldCogdmlldykKICNpZiAh
UExBVEZPUk0oV0lOKQogQVhJRCBBWE9iamVjdENhY2hlOjpwbGF0Zm9ybUdlbmVyYXRlQVhJRCgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIEFYSUQgbGFzdFVzZWRJRCA9IDA7Ci0KLSAgICAvLyBHZW5l
cmF0ZSBhIG5ldyBJRC4KLSAgICBBWElEIG9iaklEID0gbGFzdFVzZWRJRDsKKyAgICBBWElEIG9i
aklEOwogICAgIGRvIHsKLSAgICAgICAgKytvYmpJRDsKLSAgICB9IHdoaWxlICghb2JqSUQgfHwg
SGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUob2JqSUQpIHx8IG1faWRzSW5Vc2UuY29u
dGFpbnMob2JqSUQpKTsKLQotICAgIGxhc3RVc2VkSUQgPSBvYmpJRDsKLQorICAgICAgICBvYmpJ
RCA9IEFYSUQ6OmdlbmVyYXRlKCk7CisgICAgfSB3aGlsZSAoIW9iaklELmlzVmFsaWQoKSB8fCBt
X2lkc0luVXNlLmNvbnRhaW5zKG9iaklEKSk7CiAgICAgcmV0dXJuIG9iaklEOwogfQogI2VuZGlm
CkBAIC05MTQsNyArOTA2LDcgQEAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBBWE9iamVj
dENhY2hlOjpvYmplY3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYgYXgKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCiAgICAgcmV0dXJuIGF4SURzLm1hcChbdGhpc10gKEFYSUQgYXhJ
RCkgLT4gUmVmUHRyPEFYQ29yZU9iamVjdD4gewotICAgICAgICBBU1NFUlQoYXhJRCAhPSBJbnZh
bGlkQVhJRCk7CisgICAgICAgIEFTU0VSVChheElELmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVy
biBvYmplY3RGcm9tQVhJRChheElEKTsKICAgICB9KTsKIH0KQEAgLTMyNzIsNyArMzI2NCw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCYgb2Jq
ZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpCiAgICAgQVhMT0coc3RkOjptYWtlX3BhaXIoJm9iamVj
dCwgbm90aWZpY2F0aW9uKSk7CiAgICAgQVhMT0coKnRoaXMpOwogCi0gICAgaWYgKCFtX3BhZ2VJ
RCB8fCBvYmplY3Qub2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCkgeworICAgIGlmICghbV9wYWdl
SUQgfHwgIW9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkgewogICAgICAgICBBWExPRygiTm8g
cGFnZUlEIG9yIG9iamVjdElEIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMzUyLDcg
KzMzNDQsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8
UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gZmlsdGVyZWROb3RpZmljYXRp
b25zOwogICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykg
ewogICAgICAgICBBWExPRyhub3RpZmljYXRpb24pOwotICAgICAgICBpZiAoIW5vdGlmaWNhdGlv
bi5maXJzdCB8fCBub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkgPT0gSW52YWxpZEFYSUQp
CisgICAgICAgIGlmICghbm90aWZpY2F0aW9uLmZpcnN0IHx8ICFub3RpZmljYXRpb24uZmlyc3Qt
Pm9iamVjdElEKCkuaXNWYWxpZCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
c3dpdGNoIChub3RpZmljYXRpb24uc2Vjb25kKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDNiNzcyNGM4Mjg1Mi4uZGQ5YzljZGQyZTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNjAs
NyArNjAsNyBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiBjbGFzcyBXaWRnZXQ7CiAKIHN0cnVj
dCBUZXh0TWFya2VyRGF0YSB7Ci0gICAgQVhJRCBheElEIHsgMCB9OworICAgIEFYSUQgYXhJRDsK
IAogICAgIE5vZGUqIG5vZGUgeyBudWxscHRyIH07CiAgICAgdW5zaWduZWQgb2Zmc2V0IHsgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaAppbmRleCBlOTEzNGRhZDBkZjkuLjIxZmY0YTI4YTVhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTgyOCw3ICs4
MjgsNyBAQCBwcm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYWtlIHRoZSBkYXRhIG1lbWJlcnMgcHJpdmF0
ZS4KICAgICBtdXRhYmxlIGJvb2wgbV9jaGlsZHJlbkluaXRpYWxpemVkIHsgZmFsc2UgfTsKICAg
ICBBY2Nlc3NpYmlsaXR5Um9sZSBtX3JvbGUgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biB9
OwogcHJpdmF0ZToKLSAgICBBWElEIG1faWQgeyAwIH07CisgICAgQVhJRCBtX2lkOwogICAgIE9w
dGlvblNldDxBWEFuY2VzdG9yRmxhZz4gbV9hbmNlc3RvckZsYWdzOwogICAgIEFjY2Vzc2liaWxp
dHlPYmplY3RJbmNsdXNpb24gbV9sYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSB7IEFjY2Vzc2liaWxp
dHlPYmplY3RJbmNsdXNpb246OkRlZmF1bHRCZWhhdmlvciB9OwogcHJvdGVjdGVkOiAvLyBGSVhN
RTogTWFrZSB0aGUgZGF0YSBtZW1iZXJzIHByaXZhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmlu
ZGV4IGNhOWEwY2ViZDJmYi4uZTE1OTYyMWM4NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKICNpZiBQTEFURk9STShXSU4pCkBA
IC05Myw4ICs5NCw4IEBAIGNsYXNzIFNjcm9sbFZpZXc7CiBzdHJ1Y3QgQWNjZXNzaWJpbGl0eVRl
eHQ7CiBzdHJ1Y3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnM7CiAKLXVzaW5nIEFYSUQgPSBz
aXplX3Q7Ci1leHRlcm4gY29uc3QgQVhJRCBJbnZhbGlkQVhJRDsKK2VudW0gQVhJRFR5cGUgeyB9
OwordXNpbmcgQVhJRCA9IE9iamVjdElkZW50aWZpZXI8QVhJRFR5cGU+OwogCiBlbnVtIGNsYXNz
IEFYQW5jZXN0b3JGbGFnIDogdWludDhfdCB7CiAgICAgLy8gV2hlbiB0aGUgZmxhZ3MgYXJlbid0
IGluaXRpYWxpemVkLCBpdCBtZWFucyB0aGUgb2JqZWN0IGhhc24ndCBiZWVuIGluc2VydGVkIGlu
dG8gdGhlIHRyZWUsCkBAIC0xNTgyLDcgKzE1ODMsNyBAQCBpbmxpbmUgdm9pZCBBWENvcmVPYmpl
Y3Q6OmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUgZGV0YWNobWVudFR5cGUpCiB7
CiAgICAgZGV0YWNoV3JhcHBlcihkZXRhY2htZW50VHlwZSk7CiAgICAgZGV0YWNoUmVtb3RlUGFy
dHMoZGV0YWNobWVudFR5cGUpOwotICAgIHNldE9iamVjdElEKEludmFsaWRBWElEKTsKKyAgICBz
ZXRPYmplY3RJRCh7IH0pOwogfQogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlPYmplY3RBdHNwaS5jcHAKaW5kZXggNzAzYzk3ODNjODIwLi4zM2Y5YzFlNTQ5Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAgLTQzOSw3ICs0MzksNyBAQCBHREJ1c0lu
dGVyZmFjZVZUYWJsZSBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNfYWNjZXNzaWJsZUZ1bmN0
aW9ucyA9IHsKICAgICAgICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiTG9jYWxlIikp
CiAgICAgICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoc2V0bG9jYWxlKExDX01F
U1NBR0VTLCBudWxscHRyKSk7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKHByb3BlcnR5TmFtZSwg
IkFjY2Vzc2libGVJZCIpKQotICAgICAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5n
KGF0c3BpT2JqZWN0LT5tX2F4T2JqZWN0ID8gU3RyaW5nOjpudW1iZXIoYXRzcGlPYmplY3QtPm1f
YXhPYmplY3QtPm9iamVjdElEKCkpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CisgICAgICAgICAgICBy
ZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoYXRzcGlPYmplY3QtPm1fYXhPYmplY3QgPyBTdHJp
bmc6Om51bWJlcihhdHNwaU9iamVjdC0+bV9heE9iamVjdC0+b2JqZWN0SUQoKS50b1VJbnQ2NCgp
KS51dGY4KCkuZGF0YSgpIDogIiIpOwogICAgICAgICBpZiAoIWdfc3RyY21wMChwcm9wZXJ0eU5h
bWUsICJQYXJlbnQiKSkKICAgICAgICAgICAgIHJldHVybiBhdHNwaU9iamVjdC0+cGFyZW50UmVm
ZXJlbmNlKCk7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKHByb3BlcnR5TmFtZSwgIkNoaWxkQ291
bnQiKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYmE1MDg0YTczZjFjLi5mOWRk
ZWNjYjg1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC00NCw4ICs0NCw4IEBA
IEFYSXNvbGF0ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QoQVhDb3JlT2JqZWN0JiBvYmplY3Qs
IEFYSXNvbGF0ZWRUcmVlKiB0cmVlLCBBCiAgICAgLCBtX2lkKG9iamVjdC5vYmplY3RJRCgpKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKG1faWQgIT0gSW52YWxpZEFY
SUQpCi0gICAgICAgIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKG9iamVjdCwgcGFyZW50SUQgPT0g
SW52YWxpZEFYSUQpOworICAgIGlmIChtX2lkLmlzVmFsaWQoKSkKKyAgICAgICAgaW5pdGlhbGl6
ZUF0dHJpYnV0ZURhdGEob2JqZWN0LCAhcGFyZW50SUQuaXNWYWxpZCgpKTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gU2hvdWxkIG5ldmVyIGhhcHBlbiB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNl
cy4KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC00MzgsNyArNDM4LDcgQEAgQVhD
b3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0Ojphc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAobV9pZCA9PSBJbnZhbGlk
QVhJRCkKKyAgICBpZiAoIW1faWQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGlmIChhdXRvKiBheE9iamVjdENhY2hlID0gdGhpcy0+YXhPYmplY3RDYWNoZSgpKSB7
CkBAIC01MjksNyArNTI5LDcgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0RldGFjaGVkKCkg
Y29uc3QKIAogdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpkZXRhY2hGcm9tUGFyZW50KCkKIHsKLSAg
ICBtX3BhcmVudElEID0gSW52YWxpZEFYSUQ7CisgICAgbV9wYXJlbnRJRCA9IHsgfTsKIH0KIAog
Y29uc3QgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIEFYSXNvbGF0
ZWRPYmplY3Q6OmNoaWxkcmVuKGJvb2wpCkBAIC01ODcsNyArNTg3LDcgQEAgQVhDb3JlT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgQVhJc29sYXRlZE9iamVjdDo6Y29udGVudHMo
KQogCiBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OmlzRGV0YWNoZWRGcm9tUGFyZW50KCkKIHsKLSAg
ICBpZiAocGFyZW50KCkgIT0gSW52YWxpZEFYSUQpCisgICAgaWYgKHBhcmVudCgpLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGlzIGlz
IHRoZSByb290IG5vZGUsIGluIHdoaWNoIGNhc2Ugd2Ugc2hvdWxkIHJldHVybiBmYWxzZS4KQEAg
LTYwMyw3ICs2MDMsNyBAQCBBWENvcmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OmNlbGxGb3JD
b2x1bW5BbmRSb3codW5zaWduZWQgY29sdW1uSW5kZXgsIHVuc2lnbgogICAgICAgICAgICAgaWYg
KGF1dG8gY2VsbCA9IG9iamVjdC0+Y2VsbEZvckNvbHVtbkFuZFJvdyhjb2x1bW5JbmRleCwgcm93
SW5kZXgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjZWxsLT5vYmplY3RJRCgpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBJbnZhbGlkQVhJRDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICB9KTsKIAogICAgIHJldHVybiB0cmVlKCktPm5vZGVGb3JJRChjZWxsSUQpLmdldCgpOwpAQCAt
ODEwLDcgKzgxMCw3IEBAIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJp
bGl0eUhpdFRlc3QoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGF4T2JqZWN0LT5vYmplY3RJRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJu
IEludmFsaWRBWElEOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0pOwogCiAgICAgcmV0dXJu
IHRyZWUoKS0+bm9kZUZvcklEKGF4SUQpLmdldCgpOwpAQCAtODMwLDcgKzgzMCw3IEBAIEFYQ29y
ZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6b2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lCiAgICAgYXV0byB2YWx1ZSA9IG1fcHJvcGVydHlNYXAuZ2V0KHBy
b3BlcnR5TmFtZSk7CiAgICAgQVhJRCBub2RlSUQgPSBXVEY6OnN3aXRjaE9uKHZhbHVlLAogICAg
ICAgICBbXSAoQVhJRCYgdHlwZWRWYWx1ZSkgLT4gQVhJRCB7IHJldHVybiB0eXBlZFZhbHVlOyB9
LAotICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJuIEludmFsaWRBWElEOyB9CisgICAgICAgIFtd
IChhdXRvJikgeyByZXR1cm4gQVhJRCgpOyB9CiAgICAgKTsKIAogICAgIHJldHVybiB0cmVlKCkt
Pm5vZGVGb3JJRChub2RlSUQpLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDY5
MjkzNWE5NzRmNC4uM2I0ZWVhMWZiYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC02
NjcsOCArNjY3LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgb3V0ZXJIVE1MKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBSZWZQdHI8QVhJc29sYXRlZFRyZWU+IG1fY2FjaGVkVHJlZTsKLSAgICBB
WElEIG1fcGFyZW50SUQgeyBJbnZhbGlkQVhJRCB9OwotICAgIEFYSUQgbV9pZCB7IEludmFsaWRB
WElEIH07CisgICAgQVhJRCBtX3BhcmVudElEOworICAgIEFYSUQgbV9pZDsKICAgICBWZWN0b3I8
QVhJRD4gbV9jaGlsZHJlbklEczsKICAgICBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IG1f
Y2hpbGRyZW47CiAgICAgQVhQcm9wZXJ0eU1hcCBtX3Byb3BlcnR5TWFwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCmluZGV4IDhlYzkxM2I5YzFlZS4uYmVhY2VjNThlNmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+
IEFYSXNvbGF0ZWRUcmVlOjpub2RlRm9ySUQoQVhJRCBheElEKSBjb25zdAogICAgIGlmIChtX3Vz
ZWRPbkFYVGhyZWFkICYmIGlzTWFpblRocmVhZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIHJldHVybiBheElEICE9IEludmFsaWRBWElEID8gbV9yZWFkZXJUaHJlYWROb2RlTWFw
LmdldChheElEKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGF4SUQuaXNWYWxpZCgpID8gbV9yZWFk
ZXJUaHJlYWROb2RlTWFwLmdldChheElEKSA6IG51bGxwdHI7CiB9CiAKIFZlY3RvcjxSZWZQdHI8
QVhDb3JlT2JqZWN0Pj4gQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9y
PEFYSUQ+JiBheElEcykgY29uc3QKQEAgLTE2Niw3ICsxNjYsNyBAQCBWZWN0b3I8UmVmUHRyPEFY
Q29yZU9iamVjdD4+IEFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzKGNvbnN0IFZlY3RvcjxB
WElEPiYgYQogVmVjdG9yPEFYSUQ+IEFYSXNvbGF0ZWRUcmVlOjppZHNGb3JPYmplY3RzKGNvbnN0
IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mIG9iamVjdHMpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG9iamVjdHMubWFwKFtdIChjb25zdCBSZWZQdHI8QVhDb3JlT2JqZWN0PiYgb2JqZWN0KSAt
PiBBWElEIHsKLSAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC0+b2JqZWN0SUQoKSA6IElu
dmFsaWRBWElEOworICAgICAgICByZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT5vYmplY3RJRCgpIDog
QVhJRCgpOwogICAgIH0pOwogfQogCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW5JRHMoQVhJRCBheElELCBWZWN0b3I8QVhJRD4mJiBjaGlsZHJl
bklEcykKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2NoYW5nZUxv
Z0xvY2suaXNMb2NrZWQoKSk7CiAKLSAgICBpZiAoYXhJRCAhPSBJbnZhbGlkQVhJRCkgeworICAg
IGlmIChheElELmlzVmFsaWQoKSkgewogICAgICAgICBtX25vZGVNYXAuc2V0KGF4SUQsIGNoaWxk
cmVuSURzKTsKICAgICAgICAgbV9wZW5kaW5nQ2hpbGRyZW5VcGRhdGVzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihheElELCBXVEZNb3ZlKGNoaWxkcmVuSURzKSkpOwogICAgIH0KQEAgLTE4NiwxNCAr
MTg2LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZShBWENvcmVPYmpl
Y3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFyCiAgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OmdlbmVyYXRlU3VidHJlZSIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBpZiAoYXhPYmplY3Qub2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCkKKyAgICBpZiAoIWF4
T2JqZWN0Lm9iamVjdElEKCkuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
IG9iamVjdCA9IGNyZWF0ZVN1YnRyZWUoYXhPYmplY3QsIGF4UGFyZW50ID8gYXhQYXJlbnQtPm9i
amVjdElEKCkgOiBJbnZhbGlkQVhJRCwgYXR0YWNoV3JhcHBlcik7CisgICAgYXV0byBvYmplY3Qg
PSBjcmVhdGVTdWJ0cmVlKGF4T2JqZWN0LCBheFBhcmVudCA/IGF4UGFyZW50LT5vYmplY3RJRCgp
IDogQVhJRCgpLCBhdHRhY2hXcmFwcGVyKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VM
b2dMb2NrIH07CiAgICAgaWYgKCFheFBhcmVudCkKICAgICAgICAgc2V0Um9vdE5vZGUob2JqZWN0
LnB0cigpKTsKLSAgICBlbHNlIGlmIChheFBhcmVudC0+b2JqZWN0SUQoKSAhPSBJbnZhbGlkQVhJ
RCkgLy8gTmVlZCB0byBjaGVjayBmb3IgdGhlIG9iamVjdElEIG9mIGF4UGFyZW50IGFnYWluIGJl
Y2F1c2UgaXQgbWF5IGhhdmUgYmVlbiBkZXRhY2hlZCB3aGlsZSB0cmF2ZXJzaW5nIHRoZSB0cmVl
LgorICAgIGVsc2UgaWYgKGF4UGFyZW50LT5vYmplY3RJRCgpLmlzVmFsaWQoKSkgLy8gTmVlZCB0
byBjaGVjayBmb3IgdGhlIG9iamVjdElEIG9mIGF4UGFyZW50IGFnYWluIGJlY2F1c2UgaXQgbWF5
IGhhdmUgYmVlbiBkZXRhY2hlZCB3aGlsZSB0cmF2ZXJzaW5nIHRoZSB0cmVlLgogICAgICAgICB1
cGRhdGVDaGlsZHJlbklEcyhheFBhcmVudC0+b2JqZWN0SUQoKSwgYXhQYXJlbnQtPmNoaWxkcmVu
SURzKCkpOwogfQogCkBAIC0yMDMsNyArMjAzLDcgQEAgUmVmPEFYSXNvbGF0ZWRPYmplY3Q+IEFY
SXNvbGF0ZWRUcmVlOjpjcmVhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBvYmplY3QgPSBBWElzb2xh
dGVkT2JqZWN0OjpjcmVhdGUoYXhPYmplY3QsIHRoaXMsIHBhcmVudElEKTsKLSAgICBpZiAob2Jq
ZWN0LT5vYmplY3RJRCgpID09IEludmFsaWRBWElEKSB7CisgICAgaWYgKCFvYmplY3QtPm9iamVj
dElEKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgIC8vIEVpdGhlciB0aGUgYXhPYmplY3QgaGFzIGFu
IGludmFsaWQgSUQgb3Igc29tZXRoaW5nIGVsc2Ugd2VudCB0ZXJyaWJseSB3cm9uZy4gRG9uJ3Qg
Ym90aGVyIGRvaW5nIGFueXRoaW5nIGVsc2UuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gb2JqZWN0OwpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgQVhJc29s
YXRlZFRyZWU6OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogICAgIEFYSUQg
YXhJRCA9IGF4T2JqZWN0Lm9iamVjdElEKCk7CiAgICAgYXV0byogYXhQYXJlbnQgPSBheE9iamVj
dC5wYXJlbnRPYmplY3QoKTsKLSAgICBBWElEIHBhcmVudElEID0gYXhQYXJlbnQgPyBheFBhcmVu
dC0+b2JqZWN0SUQoKSA6IEludmFsaWRBWElEOworICAgIEFYSUQgcGFyZW50SUQgPSBheFBhcmVu
dCA/IGF4UGFyZW50LT5vYmplY3RJRCgpIDogQVhJRCgpOwogCiAgICAgYXV0byBuZXdPYmplY3Qg
PSBBWElzb2xhdGVkT2JqZWN0OjpjcmVhdGUoYXhPYmplY3QsIHRoaXMsIHBhcmVudElEKTsKICAg
ICBuZXdPYmplY3QtPm1fY2hpbGRyZW5JRHMgPSBheE9iamVjdC5jaGlsZHJlbklEcygpOwpAQCAt
MzE2LDcgKzMxNiw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29y
ZU9iamVjdCYgYXhPYmplY3QpCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0pOwotICAgIGlmICghYXhBbmNlc3RvciB8fCBheEFuY2VzdG9yLT5vYmplY3RJRCgpID09IElu
dmFsaWRBWElEIHx8IGl0ZXJhdG9yID09IG1fbm9kZU1hcC5lbmQoKSkgeworICAgIGlmICghYXhB
bmNlc3RvciB8fCAhYXhBbmNlc3Rvci0+b2JqZWN0SUQoKS5pc1ZhbGlkKCkgfHwgaXRlcmF0b3Ig
PT0gbV9ub2RlTWFwLmVuZCgpKSB7CiAgICAgICAgIC8vIFRoaXMgdXBkYXRlIHRyaWdnZXJlZCBi
ZWZvcmUgdGhlIGlzb2xhdGVkIHRyZWUgaGFzIGJlZW4gcmVwb3B1bGF0ZWQuCiAgICAgICAgIC8v
IFJldHVybiBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gdXBkYXRlLgogICAgICAgICBy
ZXR1cm47CkBAIC0zNjUsNyArMzY1LDcgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNv
bGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCiAgICAgLy8gQXBwbHkgcGVuZGluZyBjaGFuZ2VzIGlu
IGNhc2UgZm9jdXMgaGFzIGNoYW5nZWQgYW5kIGhhc24ndCBiZWVuIHVwZGF0ZWQuCiAgICAgYXBw
bHlQZW5kaW5nQ2hhbmdlcygpOwogICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sg
fTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJmb2N1c2VkTm9kZUlEICIsIG1fZm9jdXNlZE5vZGVJ
RCkpOworICAgIEFYTE9HKG1ha2VTdHJpbmcoImZvY3VzZWROb2RlSUQgIiwgbV9mb2N1c2VkTm9k
ZUlELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFYTE9HKCJmb2N1c2VkIG5vZGU6Iik7CiAgICAg
QVhMT0cobm9kZUZvcklEKG1fZm9jdXNlZE5vZGVJRCkpOwogICAgIHJldHVybiBub2RlRm9ySUQo
bV9mb2N1c2VkTm9kZUlEKTsKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
OjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnNldEZvY3VzZWROb2RlSUQiKTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJheElEICIs
IGF4SUQpKTsKKyAgICBBWExPRyhtYWtlU3RyaW5nKCJheElEICIsIGF4SUQubG9nZ2luZ1N0cmlu
ZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIExvY2tlciBsb2NrZXIg
eyBtX2NoYW5nZUxvZ0xvY2sgfTsKQEAgLTQwNiw3ICs0MDYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJl
bW92ZU5vZGUoQVhJRCBheElEKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1v
dmVOb2RlIik7Ci0gICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElEKSk7CisgICAgQVhM
T0cobWFrZVN0cmluZygiQVhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKICAgICBtX25vZGVNYXAucmVtb3ZlKGF4SUQpOwpAQCAtNDE3
LDEzICs0MTcsMTMgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShBWElEIGF4SUQp
CiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlKEFYSUQgYXhJRCkKIHsKICAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZSIpOwotICAgIEFYTE9HKG1ha2VT
dHJpbmcoIlJlbW92aW5nIHN1YnRyZWUgZm9yIGF4SUQgIiwgYXhJRCkpOworICAgIEFYTE9HKG1h
a2VTdHJpbmcoIlJlbW92aW5nIHN1YnRyZWUgZm9yIGF4SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5n
KCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgVmVjdG9yPEFYSUQ+IHJl
bW92YWxzID0geyBheElEIH07CiAgICAgd2hpbGUgKHJlbW92YWxzLnNpemUoKSkgewogICAgICAg
ICBBWElEIGF4SUQgPSByZW1vdmFscy50YWtlTGFzdCgpOwotICAgICAgICBpZiAoYXhJRCA9PSBJ
bnZhbGlkQVhJRCkKKyAgICAgICAgaWYgKCFheElELmlzVmFsaWQoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgIGF1dG8gaXQgPSBtX25vZGVNYXAuZmluZChheElEKTsKQEAgLTQ0
OSw5ICs0NDksOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkK
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAKICAgICBpZiAobV9wZW5k
aW5nRm9jdXNlZE5vZGVJRCAhPSBtX2ZvY3VzZWROb2RlSUQpIHsKLSAgICAgICAgQVhMT0cobWFr
ZVN0cmluZygiZm9jdXNlZE5vZGVJRCAiLCBtX2ZvY3VzZWROb2RlSUQsICIgcGVuZGluZ0ZvY3Vz
ZWROb2RlSUQgIiwgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCkpOworICAgICAgICBBWExPRyhtYWtl
U3RyaW5nKCJmb2N1c2VkTm9kZUlEICIsIG1fZm9jdXNlZE5vZGVJRC5sb2dnaW5nU3RyaW5nKCks
ICIgcGVuZGluZ0ZvY3VzZWROb2RlSUQgIiwgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRC5sb2dnaW5n
U3RyaW5nKCkpKTsKIAotICAgICAgICBpZiAobV9mb2N1c2VkTm9kZUlEICE9IEludmFsaWRBWElE
KSB7CisgICAgICAgIGlmIChtX2ZvY3VzZWROb2RlSUQuaXNWYWxpZCgpKSB7CiAgICAgICAgICAg
ICAvLyBTZXQgdGhlIG9sZCBmb2N1c2VkIG9iamVjdCdzIElzRm9jdXNlZCBwcm9wZXJ0eSB0byBm
YWxzZS4KICAgICAgICAgICAgIEFYUHJvcGVydHlNYXAgcHJvcGVydHlNYXA7CiAgICAgICAgICAg
ICBwcm9wZXJ0eU1hcC5zZXQoQVhQcm9wZXJ0eU5hbWU6OklzRm9jdXNlZCwgZmFsc2UpOwpAQCAt
NDYyLDcgKzQ2Miw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMo
KQogCiAgICAgd2hpbGUgKG1fcGVuZGluZ05vZGVSZW1vdmFscy5zaXplKCkpIHsKICAgICAgICAg
YXV0byBheElEID0gbV9wZW5kaW5nTm9kZVJlbW92YWxzLnRha2VMYXN0KCk7Ci0gICAgICAgIEFY
TE9HKG1ha2VTdHJpbmcoInJlbW92aW5nIGF4SUQgIiwgYXhJRCkpOworICAgICAgICBBWExPRyht
YWtlU3RyaW5nKCJyZW1vdmluZyBheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAg
ICAgIGlmIChhdXRvIG9iamVjdCA9IG5vZGVGb3JJRChheElEKSkgewogICAgICAgICAgICAgb2Jq
ZWN0LT5kZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50RGVzdHJveWVk
KTsKICAgICAgICAgICAgIG1fcmVhZGVyVGhyZWFkTm9kZU1hcC5yZW1vdmUoYXhJRCk7CkBAIC00
NzEsNyArNDcxLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygp
CiAKICAgICB3aGlsZSAobV9wZW5kaW5nU3VidHJlZVJlbW92YWxzLnNpemUoKSkgewogICAgICAg
ICBhdXRvIGF4SUQgPSBtX3BlbmRpbmdTdWJ0cmVlUmVtb3ZhbHMudGFrZUxhc3QoKTsKLSAgICAg
ICAgQVhMT0cobWFrZVN0cmluZygicmVtb3Zpbmcgc3VidHJlZSBheElEICIsIGF4SUQpKTsKKyAg
ICAgICAgQVhMT0cobWFrZVN0cmluZygicmVtb3Zpbmcgc3VidHJlZSBheElEICIsIGF4SUQubG9n
Z2luZ1N0cmluZygpKSk7CiAgICAgICAgIGlmIChhdXRvIG9iamVjdCA9IG5vZGVGb3JJRChheElE
KSkgewogICAgICAgICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRU
eXBlOjpFbGVtZW50RGVzdHJveWVkKTsKICAgICAgICAgICAgIG1fcGVuZGluZ1N1YnRyZWVSZW1v
dmFscy5hcHBlbmRWZWN0b3Iob2JqZWN0LT5tX2NoaWxkcmVuSURzKTsKQEAgLTQ4MSw4ICs0ODEs
OCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKIAogICAgIGZv
ciAoY29uc3QgYXV0byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKICAgICAgICAgQVhJRCBh
eElEID0gaXRlbS5pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKLSAgICAgICAgQVhMT0cobWFr
ZVN0cmluZygiYXBwZW5kaW5nIGF4SUQgIiwgYXhJRCkpOwotICAgICAgICBpZiAoYXhJRCA9PSBJ
bnZhbGlkQVhJRCkKKyAgICAgICAgQVhMT0cobWFrZVN0cmluZygiYXBwZW5kaW5nIGF4SUQgIiwg
YXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKKyAgICAgICAgaWYgKCFheElELmlzVmFsaWQoKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8mIHdyYXBwZXIgPSBpdGVtLndyYXBw
ZXIgPyBpdGVtLndyYXBwZXIgOiBpdGVtLmlzb2xhdGVkT2JqZWN0LT53cmFwcGVyKCk7CkBAIC01
MTgsNyArNTE4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygp
CiAgICAgbV9wZW5kaW5nQXBwZW5kcy5jbGVhcigpOwogCiAgICAgZm9yIChhdXRvJiB1cGRhdGUg
OiBtX3BlbmRpbmdDaGlsZHJlblVwZGF0ZXMpIHsKLSAgICAgICAgQVhMT0cobWFrZVN0cmluZygi
dXBkYXRpbmcgY2hpbGRyZW4gZm9yIGF4SUQgIiwgdXBkYXRlLmZpcnN0KSk7CisgICAgICAgIEFY
TE9HKG1ha2VTdHJpbmcoInVwZGF0aW5nIGNoaWxkcmVuIGZvciBheElEICIsIHVwZGF0ZS5maXJz
dC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICAgICAgaWYgKGF1dG8gb2JqZWN0ID0gbm9kZUZvcklE
KHVwZGF0ZS5maXJzdCkpCiAgICAgICAgICAgICBvYmplY3QtPm1fY2hpbGRyZW5JRHMgPSBXVEZN
b3ZlKHVwZGF0ZS5zZWNvbmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDE2YmQ0
NmY0OTk2MS4uMjVjZGNjODllZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTMyMyw3ICsz
MjMsNyBAQCB1c2luZyBBWFByb3BlcnR5VmFsdWVWYXJpYW50ID0gc3RkOjp2YXJpYW50PHN0ZDo6
bnVsbHB0cl90LCBBWElELCBTdHJpbmcsIGJvb2wsCiB1c2luZyBBWFByb3BlcnR5TWFwID0gSGFz
aE1hcDxBWFByb3BlcnR5TmFtZSwgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudCwgSW50SGFzaDxBWFBy
b3BlcnR5TmFtZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8QVhQcm9wZXJ0eU5hbWU+PjsK
IAogc3RydWN0IEFYUHJvcGVydHlDaGFuZ2UgewotICAgIEFYSUQgYXhJRCB7IEludmFsaWRBWElE
IH07IC8vIElEIG9mIHRoZSBvYmplY3Qgd2hvc2UgcHJvcGVydGllcyBjaGFuZ2VkLgorICAgIEFY
SUQgYXhJRDsgLy8gSUQgb2YgdGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0aWVzIGNoYW5nZWQuCiAg
ICAgQVhQcm9wZXJ0eU1hcCBwcm9wZXJ0aWVzOyAvLyBDaGFuZ2VkIHByb3BlcnRpZXMuCiB9Owog
CkBAIC00MDcsOCArNDA3LDggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8QVhJRD4gbV9wZW5kaW5n
Tm9kZVJlbW92YWxzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsgLy8gTm9k
ZXMgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLgogICAgIFZlY3RvcjxBWElEPiBtX3BlbmRp
bmdTdWJ0cmVlUmVtb3ZhbHMgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOyAv
LyBOb2RlcyB3aG9zZSBzdWJ0cmVlcyBhcmUgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLgog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8QVhJRCwgVmVjdG9yPEFYSUQ+Pj4gbV9wZW5kaW5nQ2hpbGRy
ZW5VcGRhdGVzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsKLSAgICBBWElE
IG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xv
Y2spIHsgSW52YWxpZEFYSUQgfTsKLSAgICBBWElEIG1fZm9jdXNlZE5vZGVJRCB7IEludmFsaWRB
WElEIH07CisgICAgQVhJRCBtX3BlbmRpbmdGb2N1c2VkTm9kZUlEIFdURl9HVUFSREVEX0JZX0xP
Q0sobV9jaGFuZ2VMb2dMb2NrKTsKKyAgICBBWElEIG1fZm9jdXNlZE5vZGVJRDsKICAgICBMb2Nr
IG1fY2hhbmdlTG9nTG9jazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QmFzZS5tbQppbmRleCBhZTY1ZTQ5YWFkMDYuLjU3YzI2YzNhMWFmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMjkwLDE4ICsyOTAsMTggQEAgTlNBcnJh
eSAqY29udmVydFRvTlNBcnJheShjb25zdCBXZWJDb3JlOjpBWENvcmVPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3QKIAogLSAodm9pZClhdHRhY2hBWE9iamVjdDooQVhDb3JlT2JqZWN0
KilheE9iamVjdAogewotICAgIEFTU0VSVChheE9iamVjdCAmJiAoX2lkZW50aWZpZXIgPT0gSW52
YWxpZEFYSUQgfHwgX2lkZW50aWZpZXIgPT0gYXhPYmplY3QtPm9iamVjdElEKCkpKTsKKyAgICBB
U1NFUlQoYXhPYmplY3QgJiYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkgfHwgX2lkZW50aWZpZXIg
PT0gYXhPYmplY3QtPm9iamVjdElEKCkpKTsKICAgICBtX2F4T2JqZWN0ID0gYXhPYmplY3Q7Ci0g
ICAgaWYgKF9pZGVudGlmaWVyID09IEludmFsaWRBWElEKQorICAgIGlmICghX2lkZW50aWZpZXIu
aXNWYWxpZCgpKQogICAgICAgICBfaWRlbnRpZmllciA9IG1fYXhPYmplY3QtPm9iamVjdElEKCk7
CiB9CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogLSAodm9pZClh
dHRhY2hJc29sYXRlZE9iamVjdDooQVhDb3JlT2JqZWN0Kilpc29sYXRlZE9iamVjdAogewotICAg
IEFTU0VSVChpc29sYXRlZE9iamVjdCAmJiAoX2lkZW50aWZpZXIgPT0gSW52YWxpZEFYSUQgfHwg
X2lkZW50aWZpZXIgPT0gaXNvbGF0ZWRPYmplY3QtPm9iamVjdElEKCkpKTsKKyAgICBBU1NFUlQo
aXNvbGF0ZWRPYmplY3QgJiYgKCFfaWRlbnRpZmllci5pc1ZhbGlkKCkgfHwgX2lkZW50aWZpZXIg
PT0gaXNvbGF0ZWRPYmplY3QtPm9iamVjdElEKCkpKTsKICAgICBtX2lzb2xhdGVkT2JqZWN0ID0g
aXNvbGF0ZWRPYmplY3Q7Ci0gICAgaWYgKF9pZGVudGlmaWVyID09IEludmFsaWRBWElEKQorICAg
IGlmICghX2lkZW50aWZpZXIuaXNWYWxpZCgpKQogICAgICAgICBfaWRlbnRpZmllciA9IG1faXNv
bGF0ZWRPYmplY3QtPm9iamVjdElEKCk7CiB9CiAjZW5kaWYKQEAgLTMwOSwxNCArMzA5LDE0IEBA
IE5TQXJyYXkgKmNvbnZlcnRUb05TQXJyYXkoY29uc3QgV2ViQ29yZTo6QVhDb3JlT2JqZWN0OjpB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0CiAtICh2b2lkKWRldGFjaAogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgX2lkZW50aWZpZXIgPSBJbnZhbGlkQVhJRDsKKyAgICBfaWRl
bnRpZmllciA9IHsgfTsKICAgICBtX2F4T2JqZWN0ID0gbnVsbHB0cjsKIH0KIAogI2lmIEVOQUJM
RShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAtICh2b2lkKWRldGFjaElzb2xhdGVkT2Jq
ZWN0OihBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpZGV0YWNobWVudFR5cGUKIHsKLSAgICBB
U1NFUlRfVU5VU0VEKGRldGFjaG1lbnRUeXBlLCBkZXRhY2htZW50VHlwZSA9PSBBY2Nlc3NpYmls
aXR5RGV0YWNobWVudFR5cGU6OkVsZW1lbnRDaGFuZ2VkID8gX2lkZW50aWZpZXIgIT0gSW52YWxp
ZEFYSUQgJiYgbV9heE9iamVjdCA6IHRydWUpOworICAgIEFTU0VSVF9VTlVTRUQoZGV0YWNobWVu
dFR5cGUsIGRldGFjaG1lbnRUeXBlID09IEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6RWxl
bWVudENoYW5nZWQgPyBfaWRlbnRpZmllci5pc1ZhbGlkKCkgJiYgbV9heE9iamVjdCA6IHRydWUp
OwogICAgIG1faXNvbGF0ZWRPYmplY3QgPSBudWxscHRyOwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCmlu
ZGV4IGIwOGUzY2UxZjVmOC4uYmFhZDQ1Mzg4MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcApAQCAtMTIwLDcgKzEy
MCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29y
ZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuCiAgICAgQVNTRVJUKG9iai0+b2JqZWN0SUQo
KSA+PSAxKTsKICAgICBBU1NFUlQob2JqLT5vYmplY3RJRCgpIDw9IHN0ZDo6bnVtZXJpY19saW1p
dHM8TE9ORz46Om1heCgpKTsKIAotICAgIE5vdGlmeVdpbkV2ZW50KG1zYWFFdmVudCwgcGFnZS0+
Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCksIE9CSklEX0NMSUVOVCwgLXN0YXRpY19jYXN0
PExPTkc+KG9iai0+b2JqZWN0SUQoKSkpOworICAgIE5vdGlmeVdpbkV2ZW50KG1zYWFFdmVudCwg
cGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCksIE9CSklEX0NMSUVOVCwgLXN0YXRp
Y19jYXN0PExPTkc+KG9iai0+b2JqZWN0SUQoKS50b1VJbnQ2NCgpKSk7CiB9CiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKQEAgLTE0
OCwxOSArMTQ4LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvCiAKIEFYSUQgQVhPYmplY3RD
YWNoZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQoKSBjb25zdAogewotICAgIHN0YXRpYyBBWElEIGxh
c3RVc2VkSUQgPSAwOworICAgIHN0YXRpYyBMT05HIGxhc3RVc2VkSUQgPSAwOwogCiAgICAgLy8g
R2VuZXJhdGUgYSBuZXcgSUQuIFdpbmRvd3MgYWNjZXNzaWJpbGl0eSByZWxpZXMgb24gYSBwb3Np
dGl2ZSBBWElELAogICAgIC8vIHJhbmdpbmcgZnJvbSAxIHRvIExPTkdfTUFYLgotICAgIEFYSUQg
b2JqSUQgPSBsYXN0VXNlZElEOworICAgIExPTkcgY3VycmVudElEID0gbGFzdFVzZWRJRDsKKyAg
ICBBWElEIG9iaklEOwogICAgIGRvIHsKLSAgICAgICAgKytvYmpJRDsKLSAgICAgICAgb2JqSUQg
JT0gc3RkOjpudW1lcmljX2xpbWl0czxMT05HPjo6bWF4KCk7Ci0gICAgfSB3aGlsZSAob2JqSUQg
PT0gMCB8fCBIYXNoVHJhaXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShvYmpJRCkgfHwgbV9pZHNJ
blVzZS5jb250YWlucyhvYmpJRCkpOworICAgICAgICBvYmpJRCA9IG1ha2VPYmplY3RJZGVudGlm
aWVyPEFYSURUeXBlPigrK2N1cnJlbnRJRCk7CisgICAgfSB3aGlsZSAoIW9iaklELmlzVmFsaWQo
KSB8fCBtX2lkc0luVXNlLmNvbnRhaW5zKG9iaklEKSk7CiAKLSAgICBBU1NFUlQob2JqSUQgPj0g
MSAmJiBvYmpJRCA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPExPTkc+OjptYXgoKSk7CisgICAgQVNT
RVJUKG9iaklELmlzVmFsaWQoKSAmJiBvYmpJRC50b1VJbnQ2NCgpIDw9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8TE9ORz46Om1heCgpKTsKIAotICAgIGxhc3RVc2VkSUQgPSBvYmpJRDsKKyAgICBsYXN0
VXNlZElEID0gY3VycmVudElEOwogCiAgICAgcmV0dXJuIG9iaklEOwogfQo=
</data>
<flag name="commit-queue"
          id="469730"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444647</attachid>
            <date>2021-11-18 01:11:33 -0800</date>
            <delta_ts>2021-11-18 01:11:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-axid.diff</filename>
            <type>text/plain</type>
            <size>30041</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzdiNTdiMWQ5OTYuLjcwZDkzYTk4MjMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU5IEBACisyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzI0OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU0OTcxNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kcmVzIEdvbnphbGV6LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0
SXNvbGF0ZWRUcmVlRm9jdXNlZE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2FjaGVBbmRJbml0
aWFsaXplV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b2JqZWN0c0ZvcklEcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
QVhDb3JlT2JqZWN0OjpkZXRhY2gpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0
ZWRPYmplY3Q6OkFYSXNvbGF0ZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZE9iamVjdDo6YXNzb2NpYXRlZEFYT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZE9iamVjdDo6Y2VsbEZvckNvbHVtbkFuZFJvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5SGl0VGVzdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpvYmplY3RBdHRyaWJ1dGVWYWx1ZSBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpub2RlRm9ySUQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6Omlkc0Zvck9iamVjdHMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuSURzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZVN1YnRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0
ZWRUcmVlOjpmb2N1c2VkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
c2V0Rm9jdXNlZE5vZGVJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJl
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdl
cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpXVEZfR1VBUkRFRF9CWV9MT0NL
KTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZSBhdHRhY2hBWE9iamVjdDpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlIGF0dGFjaElzb2xhdGVkT2JqZWN0Ol0pOgorICAgICAgICAoLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgZGV0YWNoXSk6CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBkZXRhY2hJc29sYXRlZE9iamVjdDpdKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwbGF0Zm9ybUdlbmVyYXRlQVhJRCBjb25z
dCk6CisKIDIwMjEtMTEtMTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjgwMDc4LCByMjgwMjkwIGFuZCBy
MjgyMDA4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCAz
MDM2NjY2MzdiMjAuLjYxM2JmZWQ0NGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHAKQEAgLTUwMiw3ICs1MDIsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgQVhDb3JlT2JqZWN0JiBvYmplY3QpCiAgICAgc3Ry
ZWFtLmR1bXBQcm9wZXJ0eSgiYWRkcmVzcyIsICZvYmplY3QpOwogICAgIHN0cmVhbS5kdW1wUHJv
cGVydHkoIndyYXBwZXIiLCBvYmplY3Qud3JhcHBlcigpKTsKIAotICAgIHN0cmVhbS5kdW1wUHJv
cGVydHkoInBhcmVudE9iamVjdCIsIHBhcmVudCA/IHBhcmVudC0+b2JqZWN0SUQoKSA6IDApOwor
ICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoInBhcmVudE9iamVjdCIsIHBhcmVudCA/IHBhcmVudC0+
b2JqZWN0SUQoKSA6IEFYSUQoKSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgc3RyZWFtLmR1
bXBQcm9wZXJ0eSgicmVtb3RlUGFyZW50T2JqZWN0Iiwgb2JqZWN0LnJlbW90ZVBhcmVudE9iamVj
dCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKaW5kZXggNDQ5M2Y2MDk1MjdiLi41ZDY0MTY2NDRlZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTI0LDggKzEyNCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
Y29uc3QgQVhJRCBJbnZhbGlkQVhJRCA9IDA7Ci0KIC8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMgZm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFz
c3dvcmQgZmllbGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlw
aW5nIGNhZGVuY2UKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGFjY2Vzc2liaWxpdHlQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgeyAyNV9tcyB9Owogc3RhdGljIGNvbnN0IFNl
Y29uZHMgYWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DaGFuZ2VkTm90aWZpY2F0aW9uSW50ZXJ2YWwg
eyAyMF9tcyB9OwpAQCAtNDE4LDcgKzQxNiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0SXNv
bGF0ZWRUcmVlRm9jdXNlZE9iamVjdChOb2RlKiBmb2N1c2VkTm9kZSkKICAgICBhdXRvKiBmb2N1
cyA9IGdldE9yQ3JlYXRlKGZvY3VzZWROb2RlKTsKIAogICAgIGlmIChhdXRvIHRyZWUgPSBBWElz
b2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRCgqbV9wYWdlSUQpKQotICAgICAgICB0cmVlLT5zZXRG
b2N1c2VkTm9kZUlEKGZvY3VzID8gZm9jdXMtPm9iamVjdElEKCkgOiBJbnZhbGlkQVhJRCk7Cisg
ICAgICAgIHRyZWUtPnNldEZvY3VzZWROb2RlSUQoZm9jdXMgPyBmb2N1cy0+b2JqZWN0SUQoKSA6
IEFYSUQoKSk7CiB9CiAjZW5kaWYKIApAQCAtNDI4LDcgKzQyNiw3IEBAIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFYT2JqZWN0Q2FjaGU6OmdldChXaWRnZXQqIHdpZGdldCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIAogICAgIEFYSUQgYXhJRCA9IG1fd2lkZ2V0T2JqZWN0TWFwcGlu
Zy5nZXQod2lkZ2V0KTsKLSAgICBBU1NFUlQoIUhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRlZFZh
bHVlKGF4SUQpKTsKKyAgICBBU1NFUlQoIWF4SUQuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7
CiAgICAgaWYgKCFheElEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKQEAgLTQ0MSw3
ICs0MzksNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpnZXQoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgQVhJ
RCBheElEID0gbV9yZW5kZXJPYmplY3RNYXBwaW5nLmdldChyZW5kZXJlcik7Ci0gICAgQVNTRVJU
KCFIYXNoVHJhaXRzPEFYSUQ+Ojppc0RlbGV0ZWRWYWx1ZShheElEKSk7CisgICAgQVNTRVJUKCFh
eElELmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOwogICAgIGlmICghYXhJRCkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKQEAgLTQ1MywxMSArNDUxLDExIEBAIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFYT2JqZWN0Q2FjaGU6OmdldChOb2RlKiBub2RlKQogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBBWElEIHJlbmRlcklEID0gbm9kZS0+cmVuZGVyZXIo
KSA/IG1fcmVuZGVyT2JqZWN0TWFwcGluZy5nZXQobm9kZS0+cmVuZGVyZXIoKSkgOiAwOwotICAg
IEFTU0VSVCghSGFzaFRyYWl0czxBWElEPjo6aXNEZWxldGVkVmFsdWUocmVuZGVySUQpKTsKKyAg
ICBBWElEIHJlbmRlcklEID0gbm9kZS0+cmVuZGVyZXIoKSA/IG1fcmVuZGVyT2JqZWN0TWFwcGlu
Zy5nZXQobm9kZS0+cmVuZGVyZXIoKSkgOiBBWElEKCk7CisgICAgQVNTRVJUKCFyZW5kZXJJRC5p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKTsKIAogICAgIEFYSUQgbm9kZUlEID0gbV9ub2RlT2Jq
ZWN0TWFwcGluZy5nZXQobm9kZSk7Ci0gICAgQVNTRVJUKCFIYXNoVHJhaXRzPEFYSUQ+Ojppc0Rl
bGV0ZWRWYWx1ZShub2RlSUQpKTsKKyAgICBBU1NFUlQoIW5vZGVJRC5pc0hhc2hUYWJsZURlbGV0
ZWRWYWx1ZSgpKTsKIAogICAgIGlmIChub2RlLT5yZW5kZXJlcigpICYmIG5vZGVJRCAmJiAhcmVu
ZGVySUQpIHsKICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGFuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0IGlzIGNyZWF0ZWQgZm9yIGEgbm9kZSB0aGF0J3Mgbm90CkBAIC02MTEsNyArNjA5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpjYWNoZUFuZEluaXRpYWxpemVXcmFwcGVyKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG5ld09iamVjdCwgRE8KIHsKICAgICBBU1NFUlQobmV3T2JqZWN0KTsK
ICAgICBBWElEIGF4SUQgPSBnZXRBWElEKG5ld09iamVjdCk7Ci0gICAgQVNTRVJUKGF4SUQgIT0g
SW52YWxpZEFYSUQpOworICAgIEFTU0VSVChheElELmlzVmFsaWQoKSk7CiAKICAgICBXVEY6OnN3
aXRjaE9uKGRvbU9iamVjdCwKICAgICAgICAgWyZheElELCB0aGlzXSAoUmVuZGVyT2JqZWN0KiB0
eXBlZFZhbHVlKSB7IG1fcmVuZGVyT2JqZWN0TWFwcGluZy5zZXQodHlwZWRWYWx1ZSwgYXhJRCk7
IH0sCkBAIC04MzAsNyArODI4LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNo
ZTo6Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJl
bW92ZShBWElEIGF4SUQpCiB7CiAgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cmVtb3ZlIik7
Ci0gICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElEKSk7CisgICAgQVhMT0cobWFrZVN0
cmluZygiQVhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogCiAgICAgaWYgKCFheElEKQog
ICAgICAgICByZXR1cm47CkBAIC04OTUsMTYgKzg5MywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlbW92ZShXaWRnZXQqIHZpZXcpCiAjaWYgIVBMQVRGT1JNKFdJTikKIEFYSUQgQVhPYmplY3RD
YWNoZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQoKSBjb25zdAogewotICAgIHN0YXRpYyBBWElEIGxh
c3RVc2VkSUQgPSAwOwotCi0gICAgLy8gR2VuZXJhdGUgYSBuZXcgSUQuCi0gICAgQVhJRCBvYmpJ
RCA9IGxhc3RVc2VkSUQ7CisgICAgQVhJRCBvYmpJRDsKICAgICBkbyB7Ci0gICAgICAgICsrb2Jq
SUQ7Ci0gICAgfSB3aGlsZSAoIW9iaklEIHx8IEhhc2hUcmFpdHM8QVhJRD46OmlzRGVsZXRlZFZh
bHVlKG9iaklEKSB8fCBtX2lkc0luVXNlLmNvbnRhaW5zKG9iaklEKSk7Ci0KLSAgICBsYXN0VXNl
ZElEID0gb2JqSUQ7Ci0KKyAgICAgICAgb2JqSUQgPSBBWElEOjpnZW5lcmF0ZSgpOworICAgIH0g
d2hpbGUgKCFvYmpJRC5pc1ZhbGlkKCkgfHwgbV9pZHNJblVzZS5jb250YWlucyhvYmpJRCkpOwog
ICAgIHJldHVybiBvYmpJRDsKIH0KICNlbmRpZgpAQCAtOTE0LDcgKzkwNiw3IEBAIFZlY3RvcjxS
ZWZQdHI8QVhDb3JlT2JqZWN0Pj4gQVhPYmplY3RDYWNoZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBW
ZWN0b3I8QVhJRD4mIGF4CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIHJldHVy
biBheElEcy5tYXAoW3RoaXNdIChBWElEIGF4SUQpIC0+IFJlZlB0cjxBWENvcmVPYmplY3Q+IHsK
LSAgICAgICAgQVNTRVJUKGF4SUQgIT0gSW52YWxpZEFYSUQpOworICAgICAgICBBU1NFUlQoYXhJ
RC5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4gb2JqZWN0RnJvbUFYSUQoYXhJRCk7CiAgICAg
fSk7CiB9CkBAIC0zMjcyLDcgKzMyNjQsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlz
b2xhdGVkVHJlZShBWENvcmVPYmplY3QmIG9iamVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogICAg
IEFYTE9HKHN0ZDo6bWFrZV9wYWlyKCZvYmplY3QsIG5vdGlmaWNhdGlvbikpOwogICAgIEFYTE9H
KCp0aGlzKTsKIAotICAgIGlmICghbV9wYWdlSUQgfHwgb2JqZWN0Lm9iamVjdElEKCkgPT0gSW52
YWxpZEFYSUQpIHsKKyAgICBpZiAoIW1fcGFnZUlEIHx8ICFvYmplY3Qub2JqZWN0SUQoKS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgQVhMT0coIk5vIHBhZ2VJRCBvciBvYmplY3RJRCIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMzM1Miw3ICszMzQ0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3Jl
T2JqZWMKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4+IGZpbHRlcmVkTm90aWZpY2F0aW9uczsKICAgICBmb3IgKGNvbnN0IGF1dG8mIG5v
dGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpIHsKICAgICAgICAgQVhMT0cobm90aWZpY2F0aW9u
KTsKLSAgICAgICAgaWYgKCFub3RpZmljYXRpb24uZmlyc3QgfHwgbm90aWZpY2F0aW9uLmZpcnN0
LT5vYmplY3RJRCgpID09IEludmFsaWRBWElEKQorICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5m
aXJzdCB8fCAhbm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLmlzVmFsaWQoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHN3aXRjaCAobm90aWZpY2F0aW9uLnNlY29uZCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCAz
Yjc3MjRjODI4NTIuLmRkOWM5Y2RkMmUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgVmlzaWJsZVBvc2l0
aW9uOwogY2xhc3MgV2lkZ2V0OwogCiBzdHJ1Y3QgVGV4dE1hcmtlckRhdGEgewotICAgIEFYSUQg
YXhJRCB7IDAgfTsKKyAgICBBWElEIGF4SUQ7CiAKICAgICBOb2RlKiBub2RlIHsgbnVsbHB0ciB9
OwogICAgIHVuc2lnbmVkIG9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggZTkxMzRkYWQwZGY5Li4yMWZm
NGEyOGE1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCkBAIC04MjgsNyArODI4LDcgQEAgcHJvdGVjdGVkOiAvLyBGSVhNRTog
TWFrZSB0aGUgZGF0YSBtZW1iZXJzIHByaXZhdGUuCiAgICAgbXV0YWJsZSBib29sIG1fY2hpbGRy
ZW5Jbml0aWFsaXplZCB7IGZhbHNlIH07CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgbV9yb2xlIHsg
QWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gfTsKIHByaXZhdGU6Ci0gICAgQVhJRCBtX2lkIHsg
MCB9OworICAgIEFYSUQgbV9pZDsKICAgICBPcHRpb25TZXQ8QVhBbmNlc3RvckZsYWc+IG1fYW5j
ZXN0b3JGbGFnczsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIG1fbGFzdEtub3du
SXNJZ25vcmVkVmFsdWUgeyBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpEZWZhdWx0QmVo
YXZpb3IgfTsKIHByb3RlY3RlZDogLy8gRklYTUU6IE1ha2UgdGhlIGRhdGEgbWVtYmVycyBwcml2
YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBjYTlhMGNlYmQyZmIuLmUxNTk2MjFjODU0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJX
aWRnZXQuaCIKICNpbmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtOTMsOCArOTQsOCBAQCBjbGFzcyBTY3JvbGxW
aWV3Owogc3RydWN0IEFjY2Vzc2liaWxpdHlUZXh0Owogc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2li
bGVPcHRpb25zOwogCi11c2luZyBBWElEID0gc2l6ZV90OwotZXh0ZXJuIGNvbnN0IEFYSUQgSW52
YWxpZEFYSUQ7CitlbnVtIEFYSURUeXBlIHsgfTsKK3VzaW5nIEFYSUQgPSBPYmplY3RJZGVudGlm
aWVyPEFYSURUeXBlPjsKIAogZW51bSBjbGFzcyBBWEFuY2VzdG9yRmxhZyA6IHVpbnQ4X3Qgewog
ICAgIC8vIFdoZW4gdGhlIGZsYWdzIGFyZW4ndCBpbml0aWFsaXplZCwgaXQgbWVhbnMgdGhlIG9i
amVjdCBoYXNuJ3QgYmVlbiBpbnNlcnRlZCBpbnRvIHRoZSB0cmVlLApAQCAtMTU4Miw3ICsxNTgz
LDcgQEAgaW5saW5lIHZvaWQgQVhDb3JlT2JqZWN0OjpkZXRhY2goQWNjZXNzaWJpbGl0eURldGFj
aG1lbnRUeXBlIGRldGFjaG1lbnRUeXBlKQogewogICAgIGRldGFjaFdyYXBwZXIoZGV0YWNobWVu
dFR5cGUpOwogICAgIGRldGFjaFJlbW90ZVBhcnRzKGRldGFjaG1lbnRUeXBlKTsKLSAgICBzZXRP
YmplY3RJRChJbnZhbGlkQVhJRCk7CisgICAgc2V0T2JqZWN0SUQoeyB9KTsKIH0KIAogI2lmIEVO
QUJMRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCmluZGV4IDcw
M2M5NzgzYzgyMC4uMzNmOWMxZTU0OWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3Bw
CkBAIC00MzksNyArNDM5LDcgQEAgR0RCdXNJbnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpOjpzX2FjY2Vzc2libGVGdW5jdGlvbnMgPSB7CiAgICAgICAgIGlmICghZ19zdHJj
bXAwKHByb3BlcnR5TmFtZSwgIkxvY2FsZSIpKQogICAgICAgICAgICAgcmV0dXJuIGdfdmFyaWFu
dF9uZXdfc3RyaW5nKHNldGxvY2FsZShMQ19NRVNTQUdFUywgbnVsbHB0cikpOwogICAgICAgICBp
ZiAoIWdfc3RyY21wMChwcm9wZXJ0eU5hbWUsICJBY2Nlc3NpYmxlSWQiKSkKLSAgICAgICAgICAg
IHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZyhhdHNwaU9iamVjdC0+bV9heE9iamVjdCA/IFN0
cmluZzo6bnVtYmVyKGF0c3BpT2JqZWN0LT5tX2F4T2JqZWN0LT5vYmplY3RJRCgpKS51dGY4KCku
ZGF0YSgpIDogIiIpOworICAgICAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5nKGF0
c3BpT2JqZWN0LT5tX2F4T2JqZWN0ID8gU3RyaW5nOjpudW1iZXIoYXRzcGlPYmplY3QtPm1fYXhP
YmplY3QtPm9iamVjdElEKCkudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSA6ICIiKTsKICAgICAg
ICAgaWYgKCFnX3N0cmNtcDAocHJvcGVydHlOYW1lLCAiUGFyZW50IikpCiAgICAgICAgICAgICBy
ZXR1cm4gYXRzcGlPYmplY3QtPnBhcmVudFJlZmVyZW5jZSgpOwogICAgICAgICBpZiAoIWdfc3Ry
Y21wMChwcm9wZXJ0eU5hbWUsICJDaGlsZENvdW50IikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwCmluZGV4IGJhNTA4NGE3M2YxYy4uZjlkZGVjY2I4NWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcApAQCAtNDQsOCArNDQsOCBAQCBBWElzb2xhdGVkT2JqZWN0OjpBWElzb2xhdGVk
T2JqZWN0KEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWElzb2xhdGVkVHJlZSogdHJlZSwgQQogICAg
ICwgbV9pZChvYmplY3Qub2JqZWN0SUQoKSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIGlmIChtX2lkICE9IEludmFsaWRBWElEKQotICAgICAgICBpbml0aWFsaXplQXR0cmli
dXRlRGF0YShvYmplY3QsIHBhcmVudElEID09IEludmFsaWRBWElEKTsKKyAgICBpZiAobV9pZC5p
c1ZhbGlkKCkpCisgICAgICAgIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKG9iamVjdCwgIXBhcmVu
dElELmlzVmFsaWQoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIFNob3VsZCBuZXZlciBoYXBw
ZW4gdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtNDM4LDcgKzQzOCw3IEBAIEFYQ29yZU9iamVjdCogQVhJc29sYXRlZE9iamVjdDo6
YXNzb2NpYXRlZEFYT2JqZWN0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgaWYgKG1faWQgPT0gSW52YWxpZEFYSUQpCisgICAgaWYgKCFtX2lkLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoYXV0byogYXhPYmplY3RDYWNo
ZSA9IHRoaXMtPmF4T2JqZWN0Q2FjaGUoKSkgewpAQCAtNTI5LDcgKzUyOSw3IEBAIGJvb2wgQVhJ
c29sYXRlZE9iamVjdDo6aXNEZXRhY2hlZCgpIGNvbnN0CiAKIHZvaWQgQVhJc29sYXRlZE9iamVj
dDo6ZGV0YWNoRnJvbVBhcmVudCgpCiB7Ci0gICAgbV9wYXJlbnRJRCA9IEludmFsaWRBWElEOwor
ICAgIG1fcGFyZW50SUQgPSB7IH07CiB9CiAKIGNvbnN0IEFYQ29yZU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yJiBBWElzb2xhdGVkT2JqZWN0OjpjaGlsZHJlbihib29sKQpAQCAt
NTg3LDcgKzU4Nyw3IEBAIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9y
IEFYSXNvbGF0ZWRPYmplY3Q6OmNvbnRlbnRzKCkKIAogYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojpp
c0RldGFjaGVkRnJvbVBhcmVudCgpCiB7Ci0gICAgaWYgKHBhcmVudCgpICE9IEludmFsaWRBWElE
KQorICAgIGlmIChwYXJlbnQoKS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIENoZWNrIHdoZXRoZXIgdGhpcyBpcyB0aGUgcm9vdCBub2RlLCBpbiB3aGljaCBjYXNl
IHdlIHNob3VsZCByZXR1cm4gZmFsc2UuCkBAIC02MDMsNyArNjAzLDcgQEAgQVhDb3JlT2JqZWN0
KiBBWElzb2xhdGVkT2JqZWN0OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkIGNvbHVtbklu
ZGV4LCB1bnNpZ24KICAgICAgICAgICAgIGlmIChhdXRvIGNlbGwgPSBvYmplY3QtPmNlbGxGb3JD
b2x1bW5BbmRSb3coY29sdW1uSW5kZXgsIHJvd0luZGV4KSkKICAgICAgICAgICAgICAgICByZXR1
cm4gY2VsbC0+b2JqZWN0SUQoKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSW52YWxpZEFY
SUQ7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfSk7CiAKICAgICByZXR1cm4gdHJlZSgpLT5u
b2RlRm9ySUQoY2VsbElEKS5nZXQoKTsKQEAgLTgxMCw3ICs4MTAsNyBAQCBBWENvcmVPYmplY3Qq
IEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JiBw
b2ludCkgY29ucwogICAgICAgICAgICAgICAgIHJldHVybiBheE9iamVjdC0+b2JqZWN0SUQoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBJbnZhbGlkQVhJRDsKKyAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9KTsKIAogICAgIHJldHVybiB0cmVlKCktPm5vZGVGb3JJRChheElEKS5nZXQo
KTsKQEAgLTgzMCw3ICs4MzAsNyBAQCBBWENvcmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6Om9i
amVjdEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZQogICAgIGF1dG8g
dmFsdWUgPSBtX3Byb3BlcnR5TWFwLmdldChwcm9wZXJ0eU5hbWUpOwogICAgIEFYSUQgbm9kZUlE
ID0gV1RGOjpzd2l0Y2hPbih2YWx1ZSwKICAgICAgICAgW10gKEFYSUQmIHR5cGVkVmFsdWUpIC0+
IEFYSUQgeyByZXR1cm4gdHlwZWRWYWx1ZTsgfSwKLSAgICAgICAgW10gKGF1dG8mKSB7IHJldHVy
biBJbnZhbGlkQVhJRDsgfQorICAgICAgICBbXSAoYXV0byYpIHsgcmV0dXJuIEFYSUQoKTsgfQog
ICAgICk7CiAKICAgICByZXR1cm4gdHJlZSgpLT5ub2RlRm9ySUQobm9kZUlEKS5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaAppbmRleCA2OTI5MzVhOTc0ZjQuLjNiNGVlYTFmYmI1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtNjY3LDggKzY2Nyw4IEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG91dGVySFRNTCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPEFYSXNvbGF0
ZWRUcmVlPiBtX2NhY2hlZFRyZWU7Ci0gICAgQVhJRCBtX3BhcmVudElEIHsgSW52YWxpZEFYSUQg
fTsKLSAgICBBWElEIG1faWQgeyBJbnZhbGlkQVhJRCB9OworICAgIEFYSUQgbV9wYXJlbnRJRDsK
KyAgICBBWElEIG1faWQ7CiAgICAgVmVjdG9yPEFYSUQ+IG1fY2hpbGRyZW5JRHM7CiAgICAgVmVj
dG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBtX2NoaWxkcmVuOwogICAgIEFYUHJvcGVydHlNYXAg
bV9wcm9wZXJ0eU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCA4ZWM5MTNiOWMxZWUu
LmJlYWNlYzU4ZTZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMTQ2LDcgKzE0Niw3
IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6bm9kZUZvcklEKEFY
SUQgYXhJRCkgY29uc3QKICAgICBpZiAobV91c2VkT25BWFRocmVhZCAmJiBpc01haW5UaHJlYWQo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gYXhJRCAhPSBJbnZhbGlk
QVhJRCA/IG1fcmVhZGVyVGhyZWFkTm9kZU1hcC5nZXQoYXhJRCkgOiBudWxscHRyOworICAgIHJl
dHVybiBheElELmlzVmFsaWQoKSA/IG1fcmVhZGVyVGhyZWFkTm9kZU1hcC5nZXQoYXhJRCkgOiBu
dWxscHRyOwogfQogCiBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IEFYSXNvbGF0ZWRUcmVl
OjpvYmplY3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYgYXhJRHMpIGNvbnN0CkBAIC0xNjYs
NyArMTY2LDcgQEAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6
b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGEKIFZlY3RvcjxBWElEPiBBWElzb2xh
dGVkVHJlZTo6aWRzRm9yT2JqZWN0cyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+
JiBvYmplY3RzKSBjb25zdAogewogICAgIHJldHVybiBvYmplY3RzLm1hcChbXSAoY29uc3QgUmVm
UHRyPEFYQ29yZU9iamVjdD4mIG9iamVjdCkgLT4gQVhJRCB7Ci0gICAgICAgIHJldHVybiBvYmpl
Y3QgPyBvYmplY3QtPm9iamVjdElEKCkgOiBJbnZhbGlkQVhJRDsKKyAgICAgICAgcmV0dXJuIG9i
amVjdCA/IG9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKTsKICAgICB9KTsKIH0KIApAQCAtMTc1
LDcgKzE3NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuSURzKEFYSUQg
YXhJRCwgVmVjdG9yPEFYSUQ+JiYgY2hpbGRyZW5JRHMpCiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2NrLmlzTG9ja2VkKCkpOwogCi0gICAgaWYg
KGF4SUQgIT0gSW52YWxpZEFYSUQpIHsKKyAgICBpZiAoYXhJRC5pc1ZhbGlkKCkpIHsKICAgICAg
ICAgbV9ub2RlTWFwLnNldChheElELCBjaGlsZHJlbklEcyk7CiAgICAgICAgIG1fcGVuZGluZ0No
aWxkcmVuVXBkYXRlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoYXhJRCwgV1RGTW92ZShjaGlsZHJl
bklEcykpKTsKICAgICB9CkBAIC0xODYsMTQgKzE4NiwxNCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
OjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhDb3JlT2JqZWN0KiBh
eFBhcgogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgaWYgKGF4T2JqZWN0Lm9iamVjdElEKCkg
PT0gSW52YWxpZEFYSUQpCisgICAgaWYgKCFheE9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBvYmplY3QgPSBjcmVhdGVTdWJ0cmVlKGF4T2Jq
ZWN0LCBheFBhcmVudCA/IGF4UGFyZW50LT5vYmplY3RJRCgpIDogSW52YWxpZEFYSUQsIGF0dGFj
aFdyYXBwZXIpOworICAgIGF1dG8gb2JqZWN0ID0gY3JlYXRlU3VidHJlZShheE9iamVjdCwgYXhQ
YXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEFYSUQoKSwgYXR0YWNoV3JhcHBlcik7CiAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwogICAgIGlmICghYXhQYXJlbnQp
CiAgICAgICAgIHNldFJvb3ROb2RlKG9iamVjdC5wdHIoKSk7Ci0gICAgZWxzZSBpZiAoYXhQYXJl
bnQtPm9iamVjdElEKCkgIT0gSW52YWxpZEFYSUQpIC8vIE5lZWQgdG8gY2hlY2sgZm9yIHRoZSBv
YmplY3RJRCBvZiBheFBhcmVudCBhZ2FpbiBiZWNhdXNlIGl0IG1heSBoYXZlIGJlZW4gZGV0YWNo
ZWQgd2hpbGUgdHJhdmVyc2luZyB0aGUgdHJlZS4KKyAgICBlbHNlIGlmIChheFBhcmVudC0+b2Jq
ZWN0SUQoKS5pc1ZhbGlkKCkpIC8vIE5lZWQgdG8gY2hlY2sgZm9yIHRoZSBvYmplY3RJRCBvZiBh
eFBhcmVudCBhZ2FpbiBiZWNhdXNlIGl0IG1heSBoYXZlIGJlZW4gZGV0YWNoZWQgd2hpbGUgdHJh
dmVyc2luZyB0aGUgdHJlZS4KICAgICAgICAgdXBkYXRlQ2hpbGRyZW5JRHMoYXhQYXJlbnQtPm9i
amVjdElEKCksIGF4UGFyZW50LT5jaGlsZHJlbklEcygpKTsKIH0KIApAQCAtMjAzLDcgKzIwMyw3
IEBAIFJlZjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlU3VidHJlZShB
WENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElECiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAogICAgIGF1dG8gb2JqZWN0ID0gQVhJc29sYXRlZE9iamVjdDo6Y3JlYXRlKGF4T2JqZWN0LCB0
aGlzLCBwYXJlbnRJRCk7Ci0gICAgaWYgKG9iamVjdC0+b2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJ
RCkgeworICAgIGlmICghb2JqZWN0LT5vYmplY3RJRCgpLmlzVmFsaWQoKSkgewogICAgICAgICAv
LyBFaXRoZXIgdGhlIGF4T2JqZWN0IGhhcyBhbiBpbnZhbGlkIElEIG9yIHNvbWV0aGluZyBlbHNl
IHdlbnQgdGVycmlibHkgd3JvbmcuIERvbid0IGJvdGhlciBkb2luZyBhbnl0aGluZyBlbHNlLgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKQEAg
LTI0Miw3ICsyNDIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFYQ29yZU9i
amVjdCYgYXhPYmplY3QpCiAKICAgICBBWElEIGF4SUQgPSBheE9iamVjdC5vYmplY3RJRCgpOwog
ICAgIGF1dG8qIGF4UGFyZW50ID0gYXhPYmplY3QucGFyZW50T2JqZWN0KCk7Ci0gICAgQVhJRCBw
YXJlbnRJRCA9IGF4UGFyZW50ID8gYXhQYXJlbnQtPm9iamVjdElEKCkgOiBJbnZhbGlkQVhJRDsK
KyAgICBBWElEIHBhcmVudElEID0gYXhQYXJlbnQgPyBheFBhcmVudC0+b2JqZWN0SUQoKSA6IEFY
SUQoKTsKIAogICAgIGF1dG8gbmV3T2JqZWN0ID0gQVhJc29sYXRlZE9iamVjdDo6Y3JlYXRlKGF4
T2JqZWN0LCB0aGlzLCBwYXJlbnRJRCk7CiAgICAgbmV3T2JqZWN0LT5tX2NoaWxkcmVuSURzID0g
YXhPYmplY3QuY2hpbGRyZW5JRHMoKTsKQEAgLTMxNiw3ICszMTYsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9KTsKLSAgICBpZiAoIWF4QW5jZXN0b3IgfHwg
YXhBbmNlc3Rvci0+b2JqZWN0SUQoKSA9PSBJbnZhbGlkQVhJRCB8fCBpdGVyYXRvciA9PSBtX25v
ZGVNYXAuZW5kKCkpIHsKKyAgICBpZiAoIWF4QW5jZXN0b3IgfHwgIWF4QW5jZXN0b3ItPm9iamVj
dElEKCkuaXNWYWxpZCgpIHx8IGl0ZXJhdG9yID09IG1fbm9kZU1hcC5lbmQoKSkgewogICAgICAg
ICAvLyBUaGlzIHVwZGF0ZSB0cmlnZ2VyZWQgYmVmb3JlIHRoZSBpc29sYXRlZCB0cmVlIGhhcyBi
ZWVuIHJlcG9wdWxhdGVkLgogICAgICAgICAvLyBSZXR1cm4gaGVyZSBzaW5jZSB0aGVyZSBpcyBu
b3RoaW5nIHRvIHVwZGF0ZS4KICAgICAgICAgcmV0dXJuOwpAQCAtMzY1LDcgKzM2NSw3IEBAIFJl
ZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogICAg
IC8vIEFwcGx5IHBlbmRpbmcgY2hhbmdlcyBpbiBjYXNlIGZvY3VzIGhhcyBjaGFuZ2VkIGFuZCBo
YXNuJ3QgYmVlbiB1cGRhdGVkLgogICAgIGFwcGx5UGVuZGluZ0NoYW5nZXMoKTsKICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07Ci0gICAgQVhMT0cobWFrZVN0cmluZygiZm9j
dXNlZE5vZGVJRCAiLCBtX2ZvY3VzZWROb2RlSUQpKTsKKyAgICBBWExPRyhtYWtlU3RyaW5nKCJm
b2N1c2VkTm9kZUlEICIsIG1fZm9jdXNlZE5vZGVJRC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBB
WExPRygiZm9jdXNlZCBub2RlOiIpOwogICAgIEFYTE9HKG5vZGVGb3JJRChtX2ZvY3VzZWROb2Rl
SUQpKTsKICAgICByZXR1cm4gbm9kZUZvcklEKG1fZm9jdXNlZE5vZGVJRCk7CkBAIC0zOTIsNyAr
MzkyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVj
dCogcm9vdCkKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElE
KQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIik7Ci0g
ICAgQVhMT0cobWFrZVN0cmluZygiYXhJRCAiLCBheElEKSk7CisgICAgQVhMT0cobWFrZVN0cmlu
ZygiYXhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CkBAIC00MDYs
NyArNDA2LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4
SUQpCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKEFYSUQgYXhJRCkKIHsKICAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZSIpOwotICAgIEFYTE9HKG1ha2VTdHJp
bmcoIkFYSUQgIiwgYXhJRCkpOworICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5s
b2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgbV9u
b2RlTWFwLnJlbW92ZShheElEKTsKQEAgLTQxNywxMyArNDE3LDEzIEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZU5vZGUoQVhJRCBheElEKQogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
U3VidHJlZShBWElEIGF4SUQpCiB7CiAgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92
ZVN1YnRyZWUiKTsKLSAgICBBWExPRyhtYWtlU3RyaW5nKCJSZW1vdmluZyBzdWJ0cmVlIGZvciBh
eElEICIsIGF4SUQpKTsKKyAgICBBWExPRyhtYWtlU3RyaW5nKCJSZW1vdmluZyBzdWJ0cmVlIGZv
ciBheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIAogICAgIFZlY3RvcjxBWElEPiByZW1vdmFscyA9IHsgYXhJRCB9OwogICAgIHdoaWxl
IChyZW1vdmFscy5zaXplKCkpIHsKICAgICAgICAgQVhJRCBheElEID0gcmVtb3ZhbHMudGFrZUxh
c3QoKTsKLSAgICAgICAgaWYgKGF4SUQgPT0gSW52YWxpZEFYSUQpCisgICAgICAgIGlmICghYXhJ
RC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvIGl0ID0g
bV9ub2RlTWFwLmZpbmQoYXhJRCk7CkBAIC00NDksOSArNDQ5LDkgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAgTG9ja2VyIGxvY2tlciB7IG1fY2hhbmdl
TG9nTG9jayB9OwogCiAgICAgaWYgKG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQgIT0gbV9mb2N1c2Vk
Tm9kZUlEKSB7Ci0gICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoImZvY3VzZWROb2RlSUQgIiwgbV9m
b2N1c2VkTm9kZUlELCAiIHBlbmRpbmdGb2N1c2VkTm9kZUlEICIsIG1fcGVuZGluZ0ZvY3VzZWRO
b2RlSUQpKTsKKyAgICAgICAgQVhMT0cobWFrZVN0cmluZygiZm9jdXNlZE5vZGVJRCAiLCBtX2Zv
Y3VzZWROb2RlSUQubG9nZ2luZ1N0cmluZygpLCAiIHBlbmRpbmdGb2N1c2VkTm9kZUlEICIsIG1f
cGVuZGluZ0ZvY3VzZWROb2RlSUQubG9nZ2luZ1N0cmluZygpKSk7CiAKLSAgICAgICAgaWYgKG1f
Zm9jdXNlZE5vZGVJRCAhPSBJbnZhbGlkQVhJRCkgeworICAgICAgICBpZiAobV9mb2N1c2VkTm9k
ZUlELmlzVmFsaWQoKSkgewogICAgICAgICAgICAgLy8gU2V0IHRoZSBvbGQgZm9jdXNlZCBvYmpl
Y3QncyBJc0ZvY3VzZWQgcHJvcGVydHkgdG8gZmFsc2UuCiAgICAgICAgICAgICBBWFByb3BlcnR5
TWFwIHByb3BlcnR5TWFwOwogICAgICAgICAgICAgcHJvcGVydHlNYXAuc2V0KEFYUHJvcGVydHlO
YW1lOjpJc0ZvY3VzZWQsIGZhbHNlKTsKQEAgLTQ2Miw3ICs0NjIsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzKCkKIAogICAgIHdoaWxlIChtX3BlbmRpbmdOb2Rl
UmVtb3ZhbHMuc2l6ZSgpKSB7CiAgICAgICAgIGF1dG8gYXhJRCA9IG1fcGVuZGluZ05vZGVSZW1v
dmFscy50YWtlTGFzdCgpOwotICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJyZW1vdmluZyBheElE
ICIsIGF4SUQpKTsKKyAgICAgICAgQVhMT0cobWFrZVN0cmluZygicmVtb3ZpbmcgYXhJRCAiLCBh
eElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBub2RlRm9y
SUQoYXhJRCkpIHsKICAgICAgICAgICAgIG9iamVjdC0+ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRh
Y2htZW50VHlwZTo6RWxlbWVudERlc3Ryb3llZCk7CiAgICAgICAgICAgICBtX3JlYWRlclRocmVh
ZE5vZGVNYXAucmVtb3ZlKGF4SUQpOwpAQCAtNDcxLDcgKzQ3MSw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogCiAgICAgd2hpbGUgKG1fcGVuZGluZ1N1YnRy
ZWVSZW1vdmFscy5zaXplKCkpIHsKICAgICAgICAgYXV0byBheElEID0gbV9wZW5kaW5nU3VidHJl
ZVJlbW92YWxzLnRha2VMYXN0KCk7Ci0gICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoInJlbW92aW5n
IHN1YnRyZWUgYXhJRCAiLCBheElEKSk7CisgICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoInJlbW92
aW5nIHN1YnRyZWUgYXhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgICAgICBpZiAo
YXV0byBvYmplY3QgPSBub2RlRm9ySUQoYXhJRCkpIHsKICAgICAgICAgICAgIG9iamVjdC0+ZGV0
YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZTo6RWxlbWVudERlc3Ryb3llZCk7CiAgICAg
ICAgICAgICBtX3BlbmRpbmdTdWJ0cmVlUmVtb3ZhbHMuYXBwZW5kVmVjdG9yKG9iamVjdC0+bV9j
aGlsZHJlbklEcyk7CkBAIC00ODEsOCArNDgxLDggQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBw
bHlQZW5kaW5nQ2hhbmdlcygpCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX3BlbmRp
bmdBcHBlbmRzKSB7CiAgICAgICAgIEFYSUQgYXhJRCA9IGl0ZW0uaXNvbGF0ZWRPYmplY3QtPm9i
amVjdElEKCk7Ci0gICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoImFwcGVuZGluZyBheElEICIsIGF4
SUQpKTsKLSAgICAgICAgaWYgKGF4SUQgPT0gSW52YWxpZEFYSUQpCisgICAgICAgIEFYTE9HKG1h
a2VTdHJpbmcoImFwcGVuZGluZyBheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CisgICAg
ICAgIGlmICghYXhJRC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICBhdXRvJiB3cmFwcGVyID0gaXRlbS53cmFwcGVyID8gaXRlbS53cmFwcGVyIDogaXRlbS5pc29s
YXRlZE9iamVjdC0+d3JhcHBlcigpOwpAQCAtNTE4LDcgKzUxOCw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAgIG1fcGVuZGluZ0FwcGVuZHMuY2xlYXIo
KTsKIAogICAgIGZvciAoYXV0byYgdXBkYXRlIDogbV9wZW5kaW5nQ2hpbGRyZW5VcGRhdGVzKSB7
Ci0gICAgICAgIEFYTE9HKG1ha2VTdHJpbmcoInVwZGF0aW5nIGNoaWxkcmVuIGZvciBheElEICIs
IHVwZGF0ZS5maXJzdCkpOworICAgICAgICBBWExPRyhtYWtlU3RyaW5nKCJ1cGRhdGluZyBjaGls
ZHJlbiBmb3IgYXhJRCAiLCB1cGRhdGUuZmlyc3QubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgICAg
IGlmIChhdXRvIG9iamVjdCA9IG5vZGVGb3JJRCh1cGRhdGUuZmlyc3QpKQogICAgICAgICAgICAg
b2JqZWN0LT5tX2NoaWxkcmVuSURzID0gV1RGTW92ZSh1cGRhdGUuc2Vjb25kKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaAppbmRleCAxNmJkNDZmNDk5NjEuLjI1Y2RjYzg5ZWZmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCkBAIC0zMjMsNyArMzIzLDcgQEAgdXNpbmcgQVhQcm9wZXJ0eVZhbHVl
VmFyaWFudCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgQVhJRCwgU3RyaW5nLCBib29s
LAogdXNpbmcgQVhQcm9wZXJ0eU1hcCA9IEhhc2hNYXA8QVhQcm9wZXJ0eU5hbWUsIEFYUHJvcGVy
dHlWYWx1ZVZhcmlhbnQsIEludEhhc2g8QVhQcm9wZXJ0eU5hbWU+LCBXVEY6OlN0cm9uZ0VudW1I
YXNoVHJhaXRzPEFYUHJvcGVydHlOYW1lPj47CiAKIHN0cnVjdCBBWFByb3BlcnR5Q2hhbmdlIHsK
LSAgICBBWElEIGF4SUQgeyBJbnZhbGlkQVhJRCB9OyAvLyBJRCBvZiB0aGUgb2JqZWN0IHdob3Nl
IHByb3BlcnRpZXMgY2hhbmdlZC4KKyAgICBBWElEIGF4SUQ7IC8vIElEIG9mIHRoZSBvYmplY3Qg
d2hvc2UgcHJvcGVydGllcyBjaGFuZ2VkLgogICAgIEFYUHJvcGVydHlNYXAgcHJvcGVydGllczsg
Ly8gQ2hhbmdlZCBwcm9wZXJ0aWVzLgogfTsKIApAQCAtNDA3LDggKzQwNyw4IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPEFYSUQ+IG1fcGVuZGluZ05vZGVSZW1vdmFscyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fY2hhbmdlTG9nTG9jayk7IC8vIE5vZGVzIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgdHJl
ZS4KICAgICBWZWN0b3I8QVhJRD4gbV9wZW5kaW5nU3VidHJlZVJlbW92YWxzIFdURl9HVUFSREVE
X0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsgLy8gTm9kZXMgd2hvc2Ugc3VidHJlZXMgYXJlIHRv
IGJlIHJlbW92ZWQgZnJvbSB0aGUgdHJlZS4KICAgICBWZWN0b3I8c3RkOjpwYWlyPEFYSUQsIFZl
Y3RvcjxBWElEPj4+IG1fcGVuZGluZ0NoaWxkcmVuVXBkYXRlcyBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fY2hhbmdlTG9nTG9jayk7Ci0gICAgQVhJRCBtX3BlbmRpbmdGb2N1c2VkTm9kZUlEIFdURl9H
VUFSREVEX0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKSB7IEludmFsaWRBWElEIH07Ci0gICAgQVhJ
RCBtX2ZvY3VzZWROb2RlSUQgeyBJbnZhbGlkQVhJRCB9OworICAgIEFYSUQgbV9wZW5kaW5nRm9j
dXNlZE5vZGVJRCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9nTG9jayk7CisgICAgQVhJ
RCBtX2ZvY3VzZWROb2RlSUQ7CiAgICAgTG9jayBtX2NoYW5nZUxvZ0xvY2s7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggYWU2NWU0OWFhZDA2Li41
N2MyNmMzYTFhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0K
QEAgLTI5MCwxOCArMjkwLDE4IEBAIE5TQXJyYXkgKmNvbnZlcnRUb05TQXJyYXkoY29uc3QgV2Vi
Q29yZTo6QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0CiAKIC0gKHZvaWQp
YXR0YWNoQVhPYmplY3Q6KEFYQ29yZU9iamVjdCopYXhPYmplY3QKIHsKLSAgICBBU1NFUlQoYXhP
YmplY3QgJiYgKF9pZGVudGlmaWVyID09IEludmFsaWRBWElEIHx8IF9pZGVudGlmaWVyID09IGF4
T2JqZWN0LT5vYmplY3RJRCgpKSk7CisgICAgQVNTRVJUKGF4T2JqZWN0ICYmICghX2lkZW50aWZp
ZXIuaXNWYWxpZCgpIHx8IF9pZGVudGlmaWVyID09IGF4T2JqZWN0LT5vYmplY3RJRCgpKSk7CiAg
ICAgbV9heE9iamVjdCA9IGF4T2JqZWN0OwotICAgIGlmIChfaWRlbnRpZmllciA9PSBJbnZhbGlk
QVhJRCkKKyAgICBpZiAoIV9pZGVudGlmaWVyLmlzVmFsaWQoKSkKICAgICAgICAgX2lkZW50aWZp
ZXIgPSBtX2F4T2JqZWN0LT5vYmplY3RJRCgpOwogfQogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJ
VFlfSVNPTEFURURfVFJFRSkKIC0gKHZvaWQpYXR0YWNoSXNvbGF0ZWRPYmplY3Q6KEFYQ29yZU9i
amVjdCopaXNvbGF0ZWRPYmplY3QKIHsKLSAgICBBU1NFUlQoaXNvbGF0ZWRPYmplY3QgJiYgKF9p
ZGVudGlmaWVyID09IEludmFsaWRBWElEIHx8IF9pZGVudGlmaWVyID09IGlzb2xhdGVkT2JqZWN0
LT5vYmplY3RJRCgpKSk7CisgICAgQVNTRVJUKGlzb2xhdGVkT2JqZWN0ICYmICghX2lkZW50aWZp
ZXIuaXNWYWxpZCgpIHx8IF9pZGVudGlmaWVyID09IGlzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgp
KSk7CiAgICAgbV9pc29sYXRlZE9iamVjdCA9IGlzb2xhdGVkT2JqZWN0OwotICAgIGlmIChfaWRl
bnRpZmllciA9PSBJbnZhbGlkQVhJRCkKKyAgICBpZiAoIV9pZGVudGlmaWVyLmlzVmFsaWQoKSkK
ICAgICAgICAgX2lkZW50aWZpZXIgPSBtX2lzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpOwogfQog
I2VuZGlmCkBAIC0zMDksMTQgKzMwOSwxNCBAQCBOU0FycmF5ICpjb252ZXJ0VG9OU0FycmF5KGNv
bnN0IFdlYkNvcmU6OkFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdAogLSAo
dm9pZClkZXRhY2gKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIF9pZGVudGlm
aWVyID0gSW52YWxpZEFYSUQ7CisgICAgX2lkZW50aWZpZXIgPSB7IH07CiAgICAgbV9heE9iamVj
dCA9IG51bGxwdHI7CiB9CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVF
KQogLSAodm9pZClkZXRhY2hJc29sYXRlZE9iamVjdDooQWNjZXNzaWJpbGl0eURldGFjaG1lbnRU
eXBlKWRldGFjaG1lbnRUeXBlCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChkZXRhY2htZW50VHlwZSwg
ZGV0YWNobWVudFR5cGUgPT0gQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50Q2hh
bmdlZCA/IF9pZGVudGlmaWVyICE9IEludmFsaWRBWElEICYmIG1fYXhPYmplY3QgOiB0cnVlKTsK
KyAgICBBU1NFUlRfVU5VU0VEKGRldGFjaG1lbnRUeXBlLCBkZXRhY2htZW50VHlwZSA9PSBBY2Nl
c3NpYmlsaXR5RGV0YWNobWVudFR5cGU6OkVsZW1lbnRDaGFuZ2VkID8gX2lkZW50aWZpZXIuaXNW
YWxpZCgpICYmIG1fYXhPYmplY3QgOiB0cnVlKTsKICAgICBtX2lzb2xhdGVkT2JqZWN0ID0gbnVs
bHB0cjsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAppbmRleCBiMDhlM2NlMWY1ZjguLmJhYWQ0NTM4ODE4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RD
YWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmpl
Y3RDYWNoZVdpbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24g
bgogICAgIEFTU0VSVChvYmotPm9iamVjdElEKCkgPj0gMSk7CiAgICAgQVNTRVJUKG9iai0+b2Jq
ZWN0SUQoKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPExPTkc+OjptYXgoKSk7CiAKLSAgICBOb3Rp
ZnlXaW5FdmVudChtc2FhRXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFnZUNsaWVudCgp
LCBPQkpJRF9DTElFTlQsIC1zdGF0aWNfY2FzdDxMT05HPihvYmotPm9iamVjdElEKCkpKTsKKyAg
ICBOb3RpZnlXaW5FdmVudChtc2FhRXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFnZUNs
aWVudCgpLCBPQkpJRF9DTElFTlQsIC1zdGF0aWNfY2FzdDxMT05HPihvYmotPm9iamVjdElEKCku
dG9VSW50NjQoKSkpOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpCkBAIC0xNDgsMTkgKzE0OCwxOSBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogbwogCiBBWElEIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3JtR2VuZXJhdGVBWElEKCkg
Y29uc3QKIHsKLSAgICBzdGF0aWMgQVhJRCBsYXN0VXNlZElEID0gMDsKKyAgICBzdGF0aWMgTE9O
RyBsYXN0VXNlZElEID0gMDsKIAogICAgIC8vIEdlbmVyYXRlIGEgbmV3IElELiBXaW5kb3dzIGFj
Y2Vzc2liaWxpdHkgcmVsaWVzIG9uIGEgcG9zaXRpdmUgQVhJRCwKICAgICAvLyByYW5naW5nIGZy
b20gMSB0byBMT05HX01BWC4KLSAgICBBWElEIG9iaklEID0gbGFzdFVzZWRJRDsKKyAgICBMT05H
IGN1cnJlbnRJRCA9IGxhc3RVc2VkSUQ7CisgICAgQVhJRCBvYmpJRDsKICAgICBkbyB7Ci0gICAg
ICAgICsrb2JqSUQ7Ci0gICAgICAgIG9iaklEICU9IHN0ZDo6bnVtZXJpY19saW1pdHM8TE9ORz46
Om1heCgpOwotICAgIH0gd2hpbGUgKG9iaklEID09IDAgfHwgSGFzaFRyYWl0czxBWElEPjo6aXNE
ZWxldGVkVmFsdWUob2JqSUQpIHx8IG1faWRzSW5Vc2UuY29udGFpbnMob2JqSUQpKTsKKyAgICAg
ICAgb2JqSUQgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxBWElEVHlwZT4oKytjdXJyZW50SUQpOwor
ICAgIH0gd2hpbGUgKCFvYmpJRC5pc1ZhbGlkKCkgfHwgbV9pZHNJblVzZS5jb250YWlucyhvYmpJ
RCkpOwogCi0gICAgQVNTRVJUKG9iaklEID49IDEgJiYgb2JqSUQgPD0gc3RkOjpudW1lcmljX2xp
bWl0czxMT05HPjo6bWF4KCkpOworICAgIEFTU0VSVChvYmpJRC5pc1ZhbGlkKCkgJiYgb2JqSUQu
dG9VSW50NjQoKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPExPTkc+OjptYXgoKSk7CiAKLSAgICBs
YXN0VXNlZElEID0gb2JqSUQ7CisgICAgbGFzdFVzZWRJRCA9IGN1cnJlbnRJRDsKIAogICAgIHJl
dHVybiBvYmpJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vz
c2libGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0FjY2Vzc2libGVCYXNlLmNw
cAppbmRleCBhYzAyZjU1MmExMDEuLjVkNjMwYTdkOWExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0FjY2Vzc2libGVCYXNlLmNwcApAQCAtMzAzLDcgKzMwMyw3IEBAIEhSRVNVTFQgQWNj
ZXNzaWJsZUJhc2U6OmdldF91bmlxdWVJRChfT3V0XyBsb25nKiB1bmlxdWVJRCkKICAgICBpZiAo
IW1fb2JqZWN0KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgKnVuaXF1ZUlEID0gc3Rh
dGljX2Nhc3Q8bG9uZz4obV9vYmplY3QtPm9iamVjdElEKCkpOworICAgICp1bmlxdWVJRCA9IHN0
YXRpY19jYXN0PGxvbmc+KG1fb2JqZWN0LT5vYmplY3RJRCgpLnRvVUludDY0KCkpOwogICAgIHJl
dHVybiBTX09LOwogfQogCkBAIC0xMDM5LDcgKzEwMzksNyBAQCBIUkVTVUxUIEFjY2Vzc2libGVC
YXNlOjpnZXRBY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yQ2hpbGQoVkFSSUFOVCB2Q2hpbGQsIEFjY2Vz
c2liaQogICAgICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuIEVfRkFJTDsK
IAotICAgICAgICBjaGlsZE9iaiA9IGRvY3VtZW50LT5heE9iamVjdENhY2hlKCktPm9iamVjdEZy
b21BWElEKC12Q2hpbGQubFZhbCk7CisgICAgICAgIGNoaWxkT2JqID0gZG9jdW1lbnQtPmF4T2Jq
ZWN0Q2FjaGUoKS0+b2JqZWN0RnJvbUFYSUQobWFrZU9iamVjdElkZW50aWZpZXI8QVhJRFR5cGU+
KC12Q2hpbGQubFZhbCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHNpemVfdCBjaGlsZEluZGV4
ID0gc3RhdGljX2Nhc3Q8c2l6ZV90Pih2Q2hpbGQubFZhbCAtIDEpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMDU4NDgzNzlkOTU0Li5jYWQ2MWE3N2EwMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0xOCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgQVg6IFVzZSBPYmpl
Y3RJZGVudGlmaWVyIGZvciBBWElECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzMyNDgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NDk3MTQ1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlei4KKworICAgICAgICAqIEFjY2Vz
c2libGVCYXNlLmNwcDoKKyAgICAgICAgKEFjY2Vzc2libGVCYXNlOjpnZXRfdW5pcXVlSUQpOgor
ICAgICAgICAoQWNjZXNzaWJsZUJhc2U6OmdldEFjY2Vzc2liaWxpdHlPYmplY3RGb3JDaGlsZCBj
b25zdCk6CisKIDIwMjEtMTEtMTEgIE5pa29sYW9zIE1vdWNodGFyaXMgIDxubW91Y2h0YXJpc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzY3JvbGwgZ3JhbnVsYXJpdHkgYW4gZW51bSBjbGFz
cwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>