<?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>157012</bug_id>
          
          <creation_ts>2016-04-25 18:42:48 -0700</creation_ts>
          <short_desc>[Web IDL] Specify default values for optional parameters of type &apos;long&apos; / &apos;unrestricted double&apos;</short_desc>
          <delta_ts>2016-04-26 09:07:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187158</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-25 18:42:48 -0700</bug_when>
    <thetext>Specify default values for optional parameters of type &apos;long&apos; / &apos;unrestricted double&apos; and let the bindings generator use WTF::Optional&lt;&gt; for the ones that do not have a default value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187170</commentid>
    <comment_count>1</comment_count>
      <attachid>277306</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-25 19:12:48 -0700</bug_when>
    <thetext>Created attachment 277306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187173</commentid>
    <comment_count>2</comment_count>
      <attachid>277307</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-25 19:27:32 -0700</bug_when>
    <thetext>Created attachment 277307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187176</commentid>
    <comment_count>3</comment_count>
      <attachid>277308</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-25 19:32:45 -0700</bug_when>
    <thetext>Created attachment 277308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187189</commentid>
    <comment_count>4</comment_count>
      <attachid>277313</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-25 19:51:28 -0700</bug_when>
    <thetext>Created attachment 277313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187400</commentid>
    <comment_count>5</comment_count>
      <attachid>277313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 09:07:32 -0700</bug_when>
    <thetext>Comment on attachment 277313
Patch

Clearing flags on attachment: 277313

Committed r200087: &lt;http://trac.webkit.org/changeset/200087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187401</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-26 09:07:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277306</attachid>
            <date>2016-04-25 19:12:48 -0700</date>
            <delta_ts>2016-04-25 19:27:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157012-20160425191319.patch</filename>
            <type>text/plain</type>
            <size>25646</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYyNDNiNmYzMTE1M2Ix
ZjZkNGE5ZTZkZmNiYTc2MjYzNThiNzU0Yi4uMDI2Y2Y1YTc0YzQ5OGQ5ZTAzOWMzZDBhOTJkMGNj
MzBhNzNmMGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE2LTA0LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdHlwZSAnbG9uZycgLyAn
dW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzAxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRl
cnMgb2YgdHlwZSAnbG9uZycgLyAndW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgYW5kIGxl
dCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHVzZSBXVEY6Ok9wdGlvbmFsPD4gZm9yIHRoZSBvbmVz
IHRoYXQgZG8gbm90IGhhdmUgYQorICAgICAgICBkZWZhdWx0IHZhbHVlLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RUTUZTZW5kZXI6Omluc2VydERUTUYpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNl
bmRlcjo6ZGlkUGxheVRvbmUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQ2FuVXNlV1RGT3B0aW9uYWxGb3JQ
YXJhbWV0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2Q0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24yUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd1RpbWVycy5pZGw6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisKKzIwMTYtMDQtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KwogICAgICAgICBDcmFzaCB1bmRlciBNZW1vcnlDYWNoZTo6cmVtb3ZlKCkKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzAwMAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjMzNDQ2NjA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAppbmRleCBlMDVhZjNjMzNiZTRjNTY4YTMyM2Rm
ODQ3ZTBkZDM4YmEyNTdmY2ZhLi4yZGE2NGNjOWFhNmQzYTE3YzM1YTMzZDdkYjRjMWQ1MGQyYjRm
ZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKQEAgLTg5LDM1ICs4OSwyNSBAQCBTdHJpbmcgUlRDRFRNRlNlbmRlcjo6
dG9uZUJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFuZGxlci0+Y3VycmVudFRvbmVCdWZm
ZXIoKTsKIH0KIAotdm9pZCBSVENEVE1GU2VuZGVyOjppbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGluc2VydERUTUYodG9uZXMsIGRlZmF1
bHRUb25lRHVyYXRpb25NcywgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQg
UlRDRFRNRlNlbmRlcjo6aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpbnNlcnREVE1GKHRvbmVzLCBkdXJhdGlv
biwgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQgUlRDRFRNRlNlbmRlcjo6
aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0aW9uLCBsb25nIGludGVy
VG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFJUQ0RUTUZTZW5kZXI6Omluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgT3B0aW9uYWw8bG9uZz4gZHVyYXRpb24sIE9wdGlvbmFs
PGxvbmc+IGludGVyVG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFjYW5J
bnNlcnREVE1GKCkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChkdXJhdGlvbiA+IG1heFRvbmVEdXJhdGlvbk1zIHx8
IGR1cmF0aW9uIDwgbWluVG9uZUR1cmF0aW9uTXMpIHsKKyAgICBpZiAoZHVyYXRpb24gJiYgKGR1
cmF0aW9uLnZhbHVlKCkgPiBtYXhUb25lRHVyYXRpb25NcyB8fCBkdXJhdGlvbi52YWx1ZSgpIDwg
bWluVG9uZUR1cmF0aW9uTXMpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpbnRlclRvbmVHYXAgPCBtaW5JbnRlclRvbmVHYXBN
cykgeworICAgIGlmIChpbnRlclRvbmVHYXAgJiYgaW50ZXJUb25lR2FwLnZhbHVlKCkgPCBtaW5J
bnRlclRvbmVHYXBNcykgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX2R1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgbV9pbnRlclRvbmVH
YXAgPSBpbnRlclRvbmVHYXA7CisgICAgbV9kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlT3IoZGVm
YXVsdFRvbmVEdXJhdGlvbk1zKTsKKyAgICBtX2ludGVyVG9uZUdhcCA9IGludGVyVG9uZUdhcC52
YWx1ZU9yKGRlZmF1bHRJbnRlclRvbmVHYXBNcyk7CiAKICAgICBpZiAoIW1faGFuZGxlci0+aW5z
ZXJ0RFRNRih0b25lcywgbV9kdXJhdGlvbiwgbV9pbnRlclRvbmVHYXApKQogICAgICAgICBlYyA9
IFNZTlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5oCmluZGV4IGFjYTgxYWU0MzA4YzkwYjZhYjM5MzY0ZWJmMTFiNDY2YmNl
OGY5YmYuLmI4NzQ3YTk2OWUzNmEzMjliM2Y4NTMzMGM1MTNhMWZiY2I3OGJiODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCkBA
IC01Miw4ICs1Miw2IEBAIHB1YmxpYzoKICAgICBsb25nIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9kdXJhdGlvbjsgfQogICAgIGxvbmcgaW50ZXJUb25lR2FwKCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlclRvbmVHYXA7IH0KIAotICAgIHZvaWQgaW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRv
bmVzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBpbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIGxvbmcgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgbG9uZyBkdXJhdGlvbiwgbG9uZyBpbnRlclRvbmVHYXAs
IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAK
aW5kZXggYTc5ZDUyOTlkNzU4M2RkMmRmOWYxNWM5NmU3MGQ3MzMwZWY3ZmUzMS4uMGI1MDAzZWEy
NjM4MWM5ODkxNzljMGNjMGQ5NTcyMGM2YzkwNzUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAt
NDQxLDIzICs0NDEsMTQgQEAgdW5zaWduZWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpudW1iZXJP
ZkNoYW5uZWxzKCkKICAgICByZXR1cm4gb3V0cHV0KDApLT5udW1iZXJPZkNoYW5uZWxzKCk7CiB9
CiAKLXZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydChFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgZG91YmxlIGdy
YWluT2Zmc2V0LCBPcHRpb25hbDxkb3VibGU+IG9wdGlvbmFsR3JhaW5EdXJhdGlvbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgc3RhcnRQbGF5aW5nKEVudGlyZSwgMCwgMCwgYnVmZmVyKCkg
PyBidWZmZXIoKS0+ZHVyYXRpb24oKSA6IDAsIGVjKTsKLX0KLQotdm9pZCBBdWRpb0J1ZmZlclNv
dXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBz
dGFydFBsYXlpbmcoRW50aXJlLCB3aGVuLCAwLCBidWZmZXIoKSA/IGJ1ZmZlcigpLT5kdXJhdGlv
bigpIDogMCwgZWMpOwotfQorICAgIGRvdWJsZSBncmFpbkR1cmF0aW9uID0gMDsKKyAgICBpZiAo
b3B0aW9uYWxHcmFpbkR1cmF0aW9uKQorICAgICAgICBncmFpbkR1cmF0aW9uID0gb3B0aW9uYWxH
cmFpbkR1cmF0aW9uLnZhbHVlKCk7CisgICAgZWxzZSBpZiAoYnVmZmVyKCkpCisgICAgICAgIGdy
YWluRHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRpb24oKSAtIGdyYWluT2Zmc2V0OwogCi12b2lk
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9m
ZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RhcnRQbGF5aW5nKFBhcnRpYWwsIHdo
ZW4sIGdyYWluT2Zmc2V0LCBidWZmZXIoKSA/IGJ1ZmZlcigpLT5kdXJhdGlvbigpIC0gZ3JhaW5P
ZmZzZXQgOiAwLCBlYyk7Ci19Ci0KLXZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydChk
b3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17CiAgICAgc3RhcnRQbGF5aW5nKFBhcnRpYWwsIHdoZW4sIGdyYWlu
T2Zmc2V0LCBncmFpbkR1cmF0aW9uLCBlYyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCmluZGV4IGE4Yzdi
NGZiMzUyOTFiMjcwMmViY2JlZTEzZTFmODk4YzhiODI1YWIuLmZjMGRmMDJhZTY2OWFiNGNmZmMx
YjZhOTYzZWJkNjA3NzkwMTM3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaApAQCAtNjMsMTAgKzYzLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKTsKIAogICAgIC8vIFBsYXkt
c3RhdGUKLSAgICB2b2lkIHN0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHN0YXJ0KGRv
dWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwg
ZG91YmxlIGdyYWluT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdGFydChkb3Vi
bGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNl
dCwgT3B0aW9uYWw8ZG91YmxlPiBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAKICNp
ZiBFTkFCTEUoTEVHQUNZX1dFQl9BVURJTykKICAgICB2b2lkIG5vdGVHcmFpbk9uKGRvdWJsZSB3
aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25D
b2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXggMmVjNDFlZGFiZGJmNGM4MDJlOTEwN2IwNDI1
YjJjMmQwNjBjZTUzMC4uN2E1NzhkOGQ2YjQ2NzNlZWM5MzI5MzUzN2E3NWM3Y2NmYWIyYWI5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmlkbApAQCAtNDQsOCArNDQsOCBAQAogICAgIGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIGxvb3BTdGFydDsKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBsb29wRW5kOwogCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydChvcHRpb25h
bCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
Z3JhaW5PZmZzZXQsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgZ3JhaW5EdXJhdGlvbik7
Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydChvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4gPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IGdyYWluT2Zmc2V0ID0gMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBncmFpbkR1cmF0
aW9uKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9uYWwgdW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuID0gMCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJ
T10gYXR0cmlidXRlIGJvb2xlYW4gbG9vcGluZzsgLy8gVGhpcyBpcyBhbiBhbGlhcyBmb3IgdGhl
IC5sb29wIGF0dHJpYnV0ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA1ZGU3
ZjVkODhhNzIwMzQxZDVhYzM2MTBlYTcyMWNiYzcxMDA3OWY0Li4zN2JhYjU2ZGMyMGVmYTcyNGE5
Y2MwOWI5ZTQ4MzhiMmU2M2QwZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01NTcsMTIgKzU1Nyw2IEBAIFJlZjxHYWluTm9k
ZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVHYWluKCkKICAgICByZXR1cm4gR2Fpbk5vZGU6OmNyZWF0
ZSgqdGhpcywgbV9kZXN0aW5hdGlvbk5vZGUtPnNhbXBsZVJhdGUoKSk7CiB9CiAKLVJlZlB0cjxE
ZWxheU5vZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkoRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgY29uc3QgZG91YmxlIGRlZmF1bHRNYXhEZWxheVRpbWUgPSAxOwotICAgIHJldHVybiBj
cmVhdGVEZWxheShkZWZhdWx0TWF4RGVsYXlUaW1lLCBlYyk7Ci19Ci0KIFJlZlB0cjxEZWxheU5v
ZGU+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkoZG91YmxlIG1heERlbGF5VGltZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDgwMDQ1ZDgzOTU0
ZTgyNjdjYWY4OTZjYTk1NGVjYWRlNWYzYTE0OWUuLmE5ZTcyYjZiNGNlODUwMGY3N2JhNzNhNjUy
OGNmOTZjNTIxMTAwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaApAQCAtMTMyLDcgKzEzMiw2IEBAIHB1YmxpYzoKICAgICBSZWY8R2Fpbk5v
ZGU+IGNyZWF0ZUdhaW4oKTsKICAgICBSZWY8QmlxdWFkRmlsdGVyTm9kZT4gY3JlYXRlQmlxdWFk
RmlsdGVyKCk7CiAgICAgUmVmPFdhdmVTaGFwZXJOb2RlPiBjcmVhdGVXYXZlU2hhcGVyKCk7Ci0g
ICAgUmVmUHRyPERlbGF5Tm9kZT4gY3JlYXRlRGVsYXkoRXhjZXB0aW9uQ29kZSYpOwogICAgIFJl
ZlB0cjxEZWxheU5vZGU+IGNyZWF0ZURlbGF5KGRvdWJsZSBtYXhEZWxheVRpbWUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBSZWY8UGFubmVyTm9kZT4gY3JlYXRlUGFubmVyKCk7CiAgICAgUmVmPENv
bnZvbHZlck5vZGU+IGNyZWF0ZUNvbnZvbHZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCmluZGV4IDk0ZDZiOGY1MjVkNjMzZTU0Njg5
ZTczYmNjNDI4MjcyMzEwMTE1ODYuLjYyM2U3OGY4MDMzOWEyODFiMTIwYTgzNDIwZTNhOWIwYTgz
Y2IxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5pZGwKQEAgLTc3LDcgKzc3LDcgQEAgZW51bSBBdWRpb0NvbnRleHRTdGF0ZSB7CiAKICAg
ICAvLyBQcm9jZXNzaW5nIG5vZGVzCiAgICAgR2Fpbk5vZGUgY3JlYXRlR2FpbigpOwotICAgIFtS
YWlzZXNFeGNlcHRpb25dIERlbGF5Tm9kZSBjcmVhdGVEZWxheShvcHRpb25hbCB1bnJlc3RyaWN0
ZWQgZG91YmxlIG1heERlbGF5VGltZSk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRGVsYXlOb2Rl
IGNyZWF0ZURlbGF5KG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgbWF4RGVsYXlUaW1lID0g
MSk7CiAgICAgQmlxdWFkRmlsdGVyTm9kZSBjcmVhdGVCaXF1YWRGaWx0ZXIoKTsKICAgICBXYXZl
U2hhcGVyTm9kZSBjcmVhdGVXYXZlU2hhcGVyKCk7CiAgICAgUGFubmVyTm9kZSBjcmVhdGVQYW5u
ZXIoKTsKQEAgLTk4LDcgKzk4LDcgQEAgZW51bSBBdWRpb0NvbnRleHRTdGF0ZSB7CiAgICAgdm9p
ZCBzdGFydFJlbmRlcmluZygpOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8s
IEltcGxlbWVudGVkQXM9Y3JlYXRlR2Fpbl0gR2Fpbk5vZGUgY3JlYXRlR2Fpbk5vZGUoKTsKLSAg
ICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywgSW1wbGVtZW50ZWRBcz1jcmVhdGVEZWxh
eSwgUmFpc2VzRXhjZXB0aW9uXSBEZWxheU5vZGUgY3JlYXRlRGVsYXlOb2RlKG9wdGlvbmFsIHVu
cmVzdHJpY3RlZCBkb3VibGUgbWF4RGVsYXlUaW1lKTsKKyAgICBbQ29uZGl0aW9uYWw9TEVHQUNZ
X1dFQl9BVURJTywgSW1wbGVtZW50ZWRBcz1jcmVhdGVEZWxheSwgUmFpc2VzRXhjZXB0aW9uXSBE
ZWxheU5vZGUgY3JlYXRlRGVsYXlOb2RlKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgbWF4
RGVsYXlUaW1lID0gMSk7CiAKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywgSW1w
bGVtZW50ZWRBcz1jcmVhdGVTY3JpcHRQcm9jZXNzb3IsIFJhaXNlc0V4Y2VwdGlvbl0gU2NyaXB0
UHJvY2Vzc29yTm9kZSBjcmVhdGVKYXZhU2NyaXB0Tm9kZSh1bnNpZ25lZCBsb25nIGJ1ZmZlclNp
emUsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHAKaW5kZXggMTBhZTE2NTExNjY5NmY0NGUxMzRkOThkY2JlODdhNDgzMjczNmVlNi4u
YmM0ZWZiNGI3MmNlNmQ3ZWJjY2NlMzhlYjYwOTk5NTM5NDBlOWI1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlLmNwcApAQCAtMTM3LDExICsxMzcsNiBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZTo6dXBkYXRlU2NoZWR1bGluZ0luZm8oc2l6ZV90IHF1YW50dW1GcmFtZVNpemUsCiAgICAg
cmV0dXJuOwogfQogCi12b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RhcnQoMCwgZWMpOwotfQotCiB2b2lkIEF1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xNjIsMTEgKzE1Nyw2IEBAIHZvaWQgQXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiAgICAgbV9wbGF5YmFja1N0YXRlID0gU0NIRURVTEVEX1NUQVRFOwogfQogCi12b2lkIEF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RvcChFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBz
dG9wKDAsIGVjKTsKLX0KLQogdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoZG91
YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1NjaGVkdWxlZFNvdXJjZU5vZGUuaAppbmRleCAyZmM2NzMyMjAzZmE3MDIyY2JiN2VmOGU4NzBm
OTgzMjgxMGI1NTcwLi5lY2VkZTM4YTA4OTQyNmQwOWNkZTYxZDQwY2I3Zjc0M2I5YzYxMDU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogICAgIEF1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZShBdWRpb0NvbnRleHQmLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAog
ICAgIC8vIFNjaGVkdWxpbmcuCi0gICAgdm9pZCBzdGFydChFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCBzdG9wKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzdG9wKGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2Rl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxs
YXRvck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9y
Tm9kZS5pZGwKaW5kZXggYmQwMTVlYTMwNWM3NTE4YTg5ZjZmNzE1OWQ2NWJlZDI3ZDMxZjI4ZS4u
NjU4NDFkODBhY2Q2YzlkZDhlNGU4YWMwNjI5OGQwZTRhMDE5ZGFiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwKQEAgLTQ4LDgg
KzQ4LDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBmcmVxdWVuY3k7IC8v
IGluIEhlcnR6CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gZGV0dW5lOyAvLyBp
biBDZW50cwogCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydChvcHRpb25hbCB1bnJl
c3RyaWN0ZWQgZG91YmxlIHdoZW4pOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChv
cHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25d
IHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuID0gMCk7CisgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
d2hlbiA9IDApOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBub3RlT24odW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKICAgICBbQ29u
ZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIG5vdGVPZmYo
dW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggODA2MzMwMmFhMTJiMDQ4YjE2ZmZl
M2ZiMzg3M2U4NThjODBlODVkYy4uOTRjY2Y1YWI1YzlmN2FkOWFjOTliNjFiZTlkZGFiOTJiM2M1
NTVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTMzODYsOCArMzM4Niw2IEBAIHN1YiBDYW5Vc2VXVEZPcHRpb25hbEZv
clBhcmFtZXRlcgogICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJEaWN0aW9uYXJ5IjsKICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiYW55IjsKLSAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7Ci0gICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgInVucmVzdHJpY3RlZCBkb3VibGUiOwogICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIjsKIAogICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA5YTlk
ZDQxNmVkMzBjY2I4MDEyMTBiYjQ1NzQ5OTUzNjA1ODIyMjMwLi44MzQyMDIzMTQ3NWNmZmRkM2Qw
YTBlY2Y1OGJlNjdmMjA2YWJjYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMzk4NywxNCArMzk4Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBcmcoRXhlCiAgICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJy
b3IoKnN0YXRlLCAiVGVzdE9iaiIsICJtZXRob2RXaXRoT3B0aW9uYWxBcmciKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAg
ICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotCi0gICAgc2l6ZV90IGFyZ3ND
b3VudCA9IHN0YXRlLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAwKSB7
Ci0gICAgICAgIGltcGwubWV0aG9kV2l0aE9wdGlvbmFsQXJnKCk7Ci0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IG9wdCA9IHRv
SW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAg
T3B0aW9uYWw8aW50PiBvcHQgPSBzdGF0ZS0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSA/IE9w
dGlvbmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgw
KSwgTm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRp
b24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgaW1wbC5tZXRob2RXaXRoT3B0aW9uYWxBcmcob3B0KTsKQEAgLTQwMjksMTQgKzQwMjIsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAgIGludCBub25PcHQgPSB0b0ludDMyKHN0YXRl
LCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VM
WShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotCi0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVu
dENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAxKSB7Ci0gICAgICAgIGltcGwubWV0aG9k
V2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcobm9uT3B0KTsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBpbnQgb3B0ID0g
dG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAg
ICBPcHRpb25hbDxpbnQ+IG9wdCA9IHN0YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8g
T3B0aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKG5vbk9wdCwg
b3B0KTsKQEAgLTQwNTYsMjIgKzQwNDIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKICAg
ICBpbnQgbm9uT3B0ID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBOb3JtYWxD
b252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHNpemVf
dCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQg
PD0gMSkgewotICAgICAgICBpbXBsLm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlv
bmFsQXJncyhub25PcHQpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotICAgIH0KLQotICAgIGludCBvcHQxID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFy
Z3VtZW50KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBPcHRpb25hbDxpbnQ+IG9wdDEgPSBz
dGF0ZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSA/IE9wdGlvbmFsPGludD4oKSA6IHRvSW50
MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7
CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAy
KSB7Ci0gICAgICAgIGltcGwubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxB
cmdzKG5vbk9wdCwgb3B0MSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IG9wdDIgPSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+
YXJndW1lbnQoMiksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGludD4gb3B0MiA9
IHN0YXRlLT5hcmd1bWVudCgyKS5pc1VuZGVmaW5lZCgpID8gT3B0aW9uYWw8aW50PigpIDogdG9J
bnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBOb3JtYWxDb252ZXJzaW9u
KTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhub25PcHQsIG9wdDEsIG9wdDIpOwpAQCAt
NDU4OCwxNCArNDU2Miw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMihFeGVjU3RhCiAgICAgVGVzdE9iaiog
b2JqQXJnID0gSlNUZXN0T2JqOjp0b1dyYXBwZWQoc3RhdGUtPmFyZ3VtZW50KDApKTsKICAgICBp
ZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0
ZS0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBp
bXBsLm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBpbnQgbG9uZ0FyZyA9IHRvSW50MzIo
c3RhdGUsIHN0YXRlLT5hcmd1bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0aW9u
YWw8aW50PiBsb25nQXJnID0gc3RhdGUtPmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkgPyBPcHRp
b25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSks
IE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9u
KCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IGltcGwub3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwpAQCAtNDg0OSwxNCArNDgx
Niw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvCiAgICAgVGVzdE9iaiogb2JqQXJnID0gSlNU
ZXN0T2JqOjp0b1dyYXBwZWQoc3RhdGUtPmFyZ3VtZW50KDApKTsKICAgICBpZiAoVU5MSUtFTFko
c3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRD
b3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBpbXBsLm92ZXJsb2Fk
ZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIob2JqQXJnKTsKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBpbnQgbG9uZ0FyZyA9
IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7Cisg
ICAgT3B0aW9uYWw8aW50PiBsb25nQXJnID0gc3RhdGUtPmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVk
KCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJn
dW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcihvYmpB
cmcsIGxvbmdBcmcpOwpAQCAtNDg4NSwxNCArNDg0NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kKEV4ZWNTdGF0
ZSoKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKLQotICAg
IHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdz
Q291bnQgPD0gMCkgewotICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKFRlc3RPYmo6
OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKCkpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgaW50IGFyZyA9IHRvSW50MzIoc3RhdGUsIHN0YXRl
LT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0aW9uYWw8aW50PiBhcmcg
PSBzdGF0ZS0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSA/IE9wdGlvbmFsPGludD4oKSA6IHRv
SW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKSwgTm9ybWFsQ29udmVyc2lv
bik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBqc051bWJlcihUZXN0T2JqOjpjbGFzc01ldGhvZFdpdGhPcHRpb25hbChhcmcpKTsKQEAgLTU0
NDUsMTQgKzUzOTgsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcAogICAgICAgICByZXR1cm4g
dGhyb3dUaGlzVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidGVzdFByb21pc2VGdW5jdGlv
bldpdGhPcHRpb25hbEludEFyZ3VtZW50Iik7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPndyYXBwZWQoKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1l
bnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMCkgewotICAgICAgICBpbXBsLnRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudChEZWZlcnJlZFdyYXBwZXIoc3Rh
dGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBwcm9taXNlRGVmZXJyZWQpKTsKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBp
bnQgYSA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVyc2lv
bik7CisgICAgT3B0aW9uYWw8aW50PiBhID0gc3RhdGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVk
KCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIGltcGwudGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
KGEsIERlZmVycmVkV3JhcHBlcihzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHBy
b21pc2VEZWZlcnJlZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
aW5kZXggOWQ3NmY5NDIzMzg3NmE5Y2M2ZWM1MTBlODEwOThkNTJkMDZiOGIzYy4uODk1ZGRiZTk3
YTVjNTMyMzYzOWI2YzVmNTJmZjk0NDVmYTBjOWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCkBAIC05Nyw4ICs5Nyw4IEBACiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICBbQ3VzdG9tXSB2b2lk
IHNldFNlbGVjdGlvblJhbmdlKGxvbmcgc3RhcnQsIGxvbmcgZW5kKTsKICNlbHNlCi0gICAgW0N1
c3RvbV0gdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShvcHRpb25hbCBsb25nIHN0YXJ0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgbG9uZyBlbmQsCisgICAgW0N1
c3RvbV0gdm9pZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlbmQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBET01TdHJpbmcgZGlyZWN0aW9u
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd1RpbWVy
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd1RpbWVycy5pZGwKaW5kZXggYzU4ZDRj
YjliZDlhOGIyZWZlMTNlZTgyMWU3NmYxZGZkMzM2ZTU4Yi4uNTdmNWI2MTVjNDM2ZDJjZTc3ODcx
ZDBhY2FjZjVlZDY0NTE5YjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5k
b3dUaW1lcnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGltZXJzLmlkbApA
QCAtMjgsOSArMjgsOSBAQAogWwogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZhY2Ug
V2luZG93VGltZXJzIHsKLSAgICBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoYW55IGhhbmRsZXIs
IG9wdGlvbmFsIGxvbmcgdGltZW91dCk7CisgICAgW0N1c3RvbV0gbG9uZyBzZXRUaW1lb3V0KGFu
eSBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwKTsKICAgICB2b2lkIGNsZWFyVGlt
ZW91dChvcHRpb25hbCBsb25nIGhhbmRsZSA9IDApOwotICAgIFtDdXN0b21dIGxvbmcgc2V0SW50
ZXJ2YWwoYW55IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCk7CisgICAgW0N1c3RvbV0g
bG9uZyBzZXRJbnRlcnZhbChhbnkgaGFuZGxlciwgb3B0aW9uYWwgbG9uZyB0aW1lb3V0ID0gMCk7
CiAgICAgdm9pZCBjbGVhckludGVydmFsKG9wdGlvbmFsIGxvbmcgaGFuZGxlID0gMCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlMzhkMTRkMzMyMTNkMTc5ODcyZWQx
MmVhMDk4NDRkMWMzZmNjNjQyLi5mM2FmZjJmZjk3MTg3Yzk5ZWFlMmFlOWQ5NzJlNTdmMzc0NDcz
NjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2MSw3ICsxNjEsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTY3JvbGxWaWV3UG9zaXRpb24oaW50IHgsIGludCB5LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRWaWV3QmFzZUJhY2tncm91bmRDb2xvcihjb25zdCBT
dHJpbmcmIGNvbG9yVmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHZvaWQgc2V0UGFnaW5h
dGlvbihjb25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNl
dFBhZ2luYXRpb24obW9kZSwgZ2FwLCAwLCBlYyk7IH0KICAgICB2b2lkIHNldFBhZ2luYXRpb24o
Y29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBpbnQgcGFnZUxlbmd0aCwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgc2V0UGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZChib29sLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgU3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChmbG9hdCBkZXZp
Y2VQaXhlbFJhdGlvLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFp
bGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDNkOTQ3NzUxOTAyOGRlOTdkZjQxM2FkYTk1
MjdjMGJkMTlmODJmYTYuLjMyYWRiMWMwMTNhYWU4NzQwNDFkNGExNzU2ZDA1ZTAzNDAyNzdlNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE0NCw3ICsxNDQsNyBAQCBl
bnVtIEF1dG9GaWxsQnV0dG9uVHlwZSB7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNl
dFZpZXdCYXNlQmFja2dyb3VuZENvbG9yKERPTVN0cmluZyBjb2xvclZhbHVlKTsKIAotICAgIFtS
YWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0UGFnaW5hdGlvbihET01TdHJpbmcgbW9kZSwgbG9uZyBn
YXAsIG9wdGlvbmFsIGxvbmcgcGFnZUxlbmd0aCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBzZXRQYWdpbmF0aW9uKERPTVN0cmluZyBtb2RlLCBsb25nIGdhcCwgb3B0aW9uYWwgbG9uZyBw
YWdlTGVuZ3RoID0gMCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRQYWdpbmF0aW9u
TGluZUdyaWRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9u
XSBET01TdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KHVucmVzdHJpY3RlZCBmbG9hdCBk
ZXZpY2VQaXhlbFJhdGlvLApAQCAtMjczLDcgKzI3Myw3IEBAIGVudW0gQXV0b0ZpbGxCdXR0b25U
eXBlIHsKICAgICBET01TdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQgZWxlbWVudCk7CiAgICAg
bG9uZyBwYWdlTnVtYmVyKEVsZW1lbnQgZWxlbWVudCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZs
b2F0IHBhZ2VXaWR0aCA9IDgwMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IHBhZ2VIZWln
aHQgPSA2MDApOwogICAgIERPTVN0cmluZ1tdIHNob3J0Y3V0SWNvblVSTHMoKTsKLSAgICBsb25n
IG51bWJlck9mUGFnZXMob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBwYWdlV2lkdGhJblBp
eGVscywgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpOwor
ICAgIGxvbmcgbnVtYmVyT2ZQYWdlcyhvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VX
aWR0aEluUGl4ZWxzID0gODAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VIZWln
aHRJblBpeGVscyA9IDYwMCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHBhZ2VQ
cm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lLCBsb25nIHBhZ2VOdW1iZXIpOwogICAgIFtS
YWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhsb25n
IHBhZ2VJbmRleCwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQsIGxvbmcgbWFyZ2luVG9wLCBsb25n
IG1hcmdpblJpZ2h0LCBsb25nIG1hcmdpbkJvdHRvbSwgbG9uZyBtYXJnaW5MZWZ0KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277307</attachid>
            <date>2016-04-25 19:27:32 -0700</date>
            <delta_ts>2016-04-25 19:32:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157012-20160425192803.patch</filename>
            <type>text/plain</type>
            <size>25873</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYyNDNiNmYzMTE1M2Ix
ZjZkNGE5ZTZkZmNiYTc2MjYzNThiNzU0Yi4uMDI2Y2Y1YTc0YzQ5OGQ5ZTAzOWMzZDBhOTJkMGNj
MzBhNzNmMGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE2LTA0LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdHlwZSAnbG9uZycgLyAn
dW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzAxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRl
cnMgb2YgdHlwZSAnbG9uZycgLyAndW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgYW5kIGxl
dCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHVzZSBXVEY6Ok9wdGlvbmFsPD4gZm9yIHRoZSBvbmVz
IHRoYXQgZG8gbm90IGhhdmUgYQorICAgICAgICBkZWZhdWx0IHZhbHVlLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RUTUZTZW5kZXI6Omluc2VydERUTUYpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNl
bmRlcjo6ZGlkUGxheVRvbmUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQ2FuVXNlV1RGT3B0aW9uYWxGb3JQ
YXJhbWV0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2Q0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24yUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd1RpbWVycy5pZGw6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisKKzIwMTYtMDQtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KwogICAgICAgICBDcmFzaCB1bmRlciBNZW1vcnlDYWNoZTo6cmVtb3ZlKCkKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzAwMAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjMzNDQ2NjA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAppbmRleCBlMDVhZjNjMzNiZTRjNTY4YTMyM2Rm
ODQ3ZTBkZDM4YmEyNTdmY2ZhLi4yZGE2NGNjOWFhNmQzYTE3YzM1YTMzZDdkYjRjMWQ1MGQyYjRm
ZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKQEAgLTg5LDM1ICs4OSwyNSBAQCBTdHJpbmcgUlRDRFRNRlNlbmRlcjo6
dG9uZUJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFuZGxlci0+Y3VycmVudFRvbmVCdWZm
ZXIoKTsKIH0KIAotdm9pZCBSVENEVE1GU2VuZGVyOjppbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGluc2VydERUTUYodG9uZXMsIGRlZmF1
bHRUb25lRHVyYXRpb25NcywgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQg
UlRDRFRNRlNlbmRlcjo6aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpbnNlcnREVE1GKHRvbmVzLCBkdXJhdGlv
biwgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQgUlRDRFRNRlNlbmRlcjo6
aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0aW9uLCBsb25nIGludGVy
VG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFJUQ0RUTUZTZW5kZXI6Omluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgT3B0aW9uYWw8bG9uZz4gZHVyYXRpb24sIE9wdGlvbmFs
PGxvbmc+IGludGVyVG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFjYW5J
bnNlcnREVE1GKCkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChkdXJhdGlvbiA+IG1heFRvbmVEdXJhdGlvbk1zIHx8
IGR1cmF0aW9uIDwgbWluVG9uZUR1cmF0aW9uTXMpIHsKKyAgICBpZiAoZHVyYXRpb24gJiYgKGR1
cmF0aW9uLnZhbHVlKCkgPiBtYXhUb25lRHVyYXRpb25NcyB8fCBkdXJhdGlvbi52YWx1ZSgpIDwg
bWluVG9uZUR1cmF0aW9uTXMpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpbnRlclRvbmVHYXAgPCBtaW5JbnRlclRvbmVHYXBN
cykgeworICAgIGlmIChpbnRlclRvbmVHYXAgJiYgaW50ZXJUb25lR2FwLnZhbHVlKCkgPCBtaW5J
bnRlclRvbmVHYXBNcykgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX2R1cmF0aW9uID0gZHVyYXRpb247Ci0gICAgbV9pbnRlclRvbmVH
YXAgPSBpbnRlclRvbmVHYXA7CisgICAgbV9kdXJhdGlvbiA9IGR1cmF0aW9uLnZhbHVlT3IoZGVm
YXVsdFRvbmVEdXJhdGlvbk1zKTsKKyAgICBtX2ludGVyVG9uZUdhcCA9IGludGVyVG9uZUdhcC52
YWx1ZU9yKGRlZmF1bHRJbnRlclRvbmVHYXBNcyk7CiAKICAgICBpZiAoIW1faGFuZGxlci0+aW5z
ZXJ0RFRNRih0b25lcywgbV9kdXJhdGlvbiwgbV9pbnRlclRvbmVHYXApKQogICAgICAgICBlYyA9
IFNZTlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5oCmluZGV4IGFjYTgxYWU0MzA4YzkwYjZhYjM5MzY0ZWJmMTFiNDY2YmNl
OGY5YmYuLjQyYjk5OTdiMDg2Zjc1Mzg0NzQ4OTk1OGUzYjZkZDNiMTQ3ZjIzMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCkBA
IC01Miw5ICs1Miw3IEBAIHB1YmxpYzoKICAgICBsb25nIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9kdXJhdGlvbjsgfQogICAgIGxvbmcgaW50ZXJUb25lR2FwKCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlclRvbmVHYXA7IH0KIAotICAgIHZvaWQgaW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRv
bmVzLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBpbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIGxvbmcgZHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgbG9uZyBkdXJhdGlvbiwgbG9uZyBpbnRlclRvbmVHYXAs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGluc2VydERUTUYoY29uc3QgU3RyaW5nJiB0b25l
cywgT3B0aW9uYWw8bG9uZz4gZHVyYXRpb24sIE9wdGlvbmFsPGxvbmc+IGludGVyVG9uZUdhcCwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldElu
dGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJU
Q0RUTUZTZW5kZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApp
bmRleCBhNzlkNTI5OWQ3NTgzZGQyZGY5ZjE1Yzk2ZTcwZDczMzBlZjdmZTMxLi4wYjUwMDNlYTI2
MzgxYzk4OTE3OWMwY2MwZDk1NzIwYzZjOTA3NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC00
NDEsMjMgKzQ0MSwxNCBAQCB1bnNpZ25lZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6Om51bWJlck9m
Q2hhbm5lbHMoKQogICAgIHJldHVybiBvdXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKTsKIH0K
IAotdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KEV4Y2VwdGlvbkNvZGUmIGVjKQor
dm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3Jh
aW5PZmZzZXQsIE9wdGlvbmFsPGRvdWJsZT4gb3B0aW9uYWxHcmFpbkR1cmF0aW9uLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICBzdGFydFBsYXlpbmcoRW50aXJlLCAwLCAwLCBidWZmZXIoKSA/
IGJ1ZmZlcigpLT5kdXJhdGlvbigpIDogMCwgZWMpOwotfQotCi12b2lkIEF1ZGlvQnVmZmVyU291
cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHN0
YXJ0UGxheWluZyhFbnRpcmUsIHdoZW4sIDAsIGJ1ZmZlcigpID8gYnVmZmVyKCktPmR1cmF0aW9u
KCkgOiAwLCBlYyk7Ci19CisgICAgZG91YmxlIGdyYWluRHVyYXRpb24gPSAwOworICAgIGlmIChv
cHRpb25hbEdyYWluRHVyYXRpb24pCisgICAgICAgIGdyYWluRHVyYXRpb24gPSBvcHRpb25hbEdy
YWluRHVyYXRpb24udmFsdWUoKTsKKyAgICBlbHNlIGlmIChidWZmZXIoKSkKKyAgICAgICAgZ3Jh
aW5EdXJhdGlvbiA9IGJ1ZmZlcigpLT5kdXJhdGlvbigpIC0gZ3JhaW5PZmZzZXQ7CiAKLXZvaWQg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zm
c2V0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBzdGFydFBsYXlpbmcoUGFydGlhbCwgd2hl
biwgZ3JhaW5PZmZzZXQsIGJ1ZmZlcigpID8gYnVmZmVyKCktPmR1cmF0aW9uKCkgLSBncmFpbk9m
ZnNldCA6IDAsIGVjKTsKLX0KLQotdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRv
dWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKICAgICBzdGFydFBsYXlpbmcoUGFydGlhbCwgd2hlbiwgZ3JhaW5P
ZmZzZXQsIGdyYWluRHVyYXRpb24sIGVjKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKaW5kZXggYThjN2I0
ZmIzNTI5MWIyNzAyZWJjYmVlMTNlMWY4OThjOGI4MjVhYi4uZmMwZGYwMmFlNjY5YWI0Y2ZmYzFi
NmE5NjNlYmQ2MDc3OTAxMzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC02MywxMCArNjMsNyBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscygpOwogCiAgICAgLy8gUGxheS1z
dGF0ZQotICAgIHZvaWQgc3RhcnQoRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnQoZG91
YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBk
b3VibGUgZ3JhaW5PZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHN0YXJ0KGRvdWJs
ZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0
LCBPcHRpb25hbDxkb3VibGU+IGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKIAogI2lm
IEVOQUJMRShMRUdBQ1lfV0VCX0FVRElPKQogICAgIHZvaWQgbm90ZUdyYWluT24oZG91YmxlIHdo
ZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmlkbAppbmRleCAyZWM0MWVkYWJkYmY0YzgwMmU5MTA3YjA0MjVi
MmMyZDA2MGNlNTMwLi43YTU3OGQ4ZDZiNDY3M2VlYzkzMjkzNTM3YTc1YzdjY2ZhYjJhYjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuaWRsCkBAIC00NCw4ICs0NCw4IEBACiAgICAgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgbG9vcFN0YXJ0OwogICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIGxvb3BFbmQ7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0YXJ0KG9wdGlvbmFs
IHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbiwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBn
cmFpbk9mZnNldCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBncmFpbkR1cmF0aW9uKTsK
LSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRv
dWJsZSB3aGVuKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0YXJ0KG9wdGlvbmFsIHVu
cmVzdHJpY3RlZCBkb3VibGUgd2hlbiA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
Z3JhaW5PZmZzZXQgPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRp
b24pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0
ZWQgZG91YmxlIHdoZW4gPSAwKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElP
XSBhdHRyaWJ1dGUgYm9vbGVhbiBsb29waW5nOyAvLyBUaGlzIGlzIGFuIGFsaWFzIGZvciB0aGUg
Lmxvb3AgYXR0cmlidXRlIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDVkZTdm
NWQ4OGE3MjAzNDFkNWFjMzYxMGVhNzIxY2JjNzEwMDc5ZjQuLjM3YmFiNTZkYzIwZWZhNzI0YTlj
YzA5YjllNDgzOGIyZTYzZDBmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTU1NywxMiArNTU3LDYgQEAgUmVmPEdhaW5Ob2Rl
PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUdhaW4oKQogICAgIHJldHVybiBHYWluTm9kZTo6Y3JlYXRl
KCp0aGlzLCBtX2Rlc3RpbmF0aW9uTm9kZS0+c2FtcGxlUmF0ZSgpKTsKIH0KIAotUmVmUHRyPERl
bGF5Tm9kZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVEZWxheShFeGNlcHRpb25Db2RlJiBlYykKLXsK
LSAgICBjb25zdCBkb3VibGUgZGVmYXVsdE1heERlbGF5VGltZSA9IDE7Ci0gICAgcmV0dXJuIGNy
ZWF0ZURlbGF5KGRlZmF1bHRNYXhEZWxheVRpbWUsIGVjKTsKLX0KLQogUmVmUHRyPERlbGF5Tm9k
ZT4gQXVkaW9Db250ZXh0OjpjcmVhdGVEZWxheShkb3VibGUgbWF4RGVsYXlUaW1lLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggODAwNDVkODM5NTRl
ODI2N2NhZjg5NmNhOTU0ZWNhZGU1ZjNhMTQ5ZS4uYTllNzJiNmI0Y2U4NTAwZjc3YmE3M2E2NTI4
Y2Y5NmM1MjExMDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5oCkBAIC0xMzIsNyArMTMyLDYgQEAgcHVibGljOgogICAgIFJlZjxHYWluTm9k
ZT4gY3JlYXRlR2FpbigpOwogICAgIFJlZjxCaXF1YWRGaWx0ZXJOb2RlPiBjcmVhdGVCaXF1YWRG
aWx0ZXIoKTsKICAgICBSZWY8V2F2ZVNoYXBlck5vZGU+IGNyZWF0ZVdhdmVTaGFwZXIoKTsKLSAg
ICBSZWZQdHI8RGVsYXlOb2RlPiBjcmVhdGVEZWxheShFeGNlcHRpb25Db2RlJik7CiAgICAgUmVm
UHRyPERlbGF5Tm9kZT4gY3JlYXRlRGVsYXkoZG91YmxlIG1heERlbGF5VGltZSwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFJlZjxQYW5uZXJOb2RlPiBjcmVhdGVQYW5uZXIoKTsKICAgICBSZWY8Q29u
dm9sdmVyTm9kZT4gY3JlYXRlQ29udm9sdmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKaW5kZXggOTRkNmI4ZjUyNWQ2MzNlNTQ2ODll
NzNiY2M0MjgyNzIzMTAxMTU4Ni4uNjIzZTc4ZjgwMzM5YTI4MWIxMjBhODM0MjBlM2E5YjBhODNj
YjEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmlkbApAQCAtNzcsNyArNzcsNyBAQCBlbnVtIEF1ZGlvQ29udGV4dFN0YXRlIHsKIAogICAg
IC8vIFByb2Nlc3Npbmcgbm9kZXMKICAgICBHYWluTm9kZSBjcmVhdGVHYWluKCk7Ci0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gRGVsYXlOb2RlIGNyZWF0ZURlbGF5KG9wdGlvbmFsIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbWF4RGVsYXlUaW1lKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBEZWxheU5vZGUg
Y3JlYXRlRGVsYXkob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBtYXhEZWxheVRpbWUgPSAx
KTsKICAgICBCaXF1YWRGaWx0ZXJOb2RlIGNyZWF0ZUJpcXVhZEZpbHRlcigpOwogICAgIFdhdmVT
aGFwZXJOb2RlIGNyZWF0ZVdhdmVTaGFwZXIoKTsKICAgICBQYW5uZXJOb2RlIGNyZWF0ZVBhbm5l
cigpOwpAQCAtOTgsNyArOTgsNyBAQCBlbnVtIEF1ZGlvQ29udGV4dFN0YXRlIHsKICAgICB2b2lk
IHN0YXJ0UmVuZGVyaW5nKCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywg
SW1wbGVtZW50ZWRBcz1jcmVhdGVHYWluXSBHYWluTm9kZSBjcmVhdGVHYWluTm9kZSgpOwotICAg
IFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBJbXBsZW1lbnRlZEFzPWNyZWF0ZURlbGF5
LCBSYWlzZXNFeGNlcHRpb25dIERlbGF5Tm9kZSBjcmVhdGVEZWxheU5vZGUob3B0aW9uYWwgdW5y
ZXN0cmljdGVkIGRvdWJsZSBtYXhEZWxheVRpbWUpOworICAgIFtDb25kaXRpb25hbD1MRUdBQ1lf
V0VCX0FVRElPLCBJbXBsZW1lbnRlZEFzPWNyZWF0ZURlbGF5LCBSYWlzZXNFeGNlcHRpb25dIERl
bGF5Tm9kZSBjcmVhdGVEZWxheU5vZGUob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBtYXhE
ZWxheVRpbWUgPSAxKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBJbXBs
ZW1lbnRlZEFzPWNyZWF0ZVNjcmlwdFByb2Nlc3NvciwgUmFpc2VzRXhjZXB0aW9uXSBTY3JpcHRQ
cm9jZXNzb3JOb2RlIGNyZWF0ZUphdmFTY3JpcHROb2RlKHVuc2lnbmVkIGxvbmcgYnVmZmVyU2l6
ZSwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBudW1iZXJPZklucHV0Q2hhbm5lbHMsIG9wdGlvbmFs
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRDaGFubmVscyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcAppbmRleCAxMGFlMTY1MTE2Njk2ZjQ0ZTEzNGQ5OGRjYmU4N2E0ODMyNzM2ZWU2Li5i
YzRlZmI0YjcyY2U2ZDdlYmNjY2UzOGViNjA5OTk1Mzk0MGU5YjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuY3BwCkBAIC0xMzcsMTEgKzEzNyw2IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlOjp1cGRhdGVTY2hlZHVsaW5nSW5mbyhzaXplX3QgcXVhbnR1bUZyYW1lU2l6ZSwKICAgICBy
ZXR1cm47CiB9CiAKLXZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdGFydChFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBzdGFydCgwLCBlYyk7Ci19Ci0KIHZvaWQgQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE2MiwxMSArMTU3LDYgQEAgdm9pZCBBdWRp
b1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICBtX3BsYXliYWNrU3RhdGUgPSBTQ0hFRFVMRURfU1RBVEU7CiB9CiAKLXZvaWQgQXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHN0
b3AoMCwgZWMpOwotfQotCiB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RvcChkb3Vi
bGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZS5oCmluZGV4IDJmYzY3MzIyMDNmYTcwMjJjYmI3ZWY4ZTg3MGY5
ODMyODEwYjU1NzAuLmVjZWRlMzhhMDg5NDI2ZDA5Y2RlNjFkNDBjYjdmNzQzYjljNjEwNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuaApAQCAtNTgsOCArNTgsNiBAQCBwdWJsaWM6CiAgICAgQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlKEF1ZGlvQ29udGV4dCYsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiAg
ICAgLy8gU2NoZWR1bGluZy4KLSAgICB2b2lkIHN0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2
b2lkIHN0b3AoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN0b3AoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JO
b2RlLmlkbAppbmRleCBiZDAxNWVhMzA1Yzc1MThhODlmNmY3MTU5ZDY1YmVkMjdkMzFmMjhlLi42
NTg0MWQ4MGFjZDZjOWRkOGU0ZThhYzA2Mjk4ZDBlNGEwMTlkYWIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbApAQCAtNDgsOCAr
NDgsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGZyZXF1ZW5jeTsgLy8g
aW4gSGVydHoKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBkZXR1bmU7IC8vIGlu
IENlbnRzCiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0YXJ0KG9wdGlvbmFsIHVucmVz
dHJpY3RlZCBkb3VibGUgd2hlbik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9w
dGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBzdGFydChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4gPSAwKTsKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3
aGVuID0gMCk7CiAKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywgUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIG5vdGVPbih1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwogICAgIFtDb25k
aXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgbm90ZU9mZih1
bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4MDYzMzAyYWExMmIwNDhiMTZmZmUz
ZmIzODczZTg1OGM4MGU4NWRjLi45NGNjZjVhYjVjOWY3YWQ5YWM5OWI2MWJlOWRkYWI5MmIzYzU1
NWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMzM4Niw4ICszMzg2LDYgQEAgc3ViIENhblVzZVdURk9wdGlvbmFsRm9y
UGFyYW1ldGVyCiAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CiAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgIkRpY3Rpb25hcnkiOwogICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJhbnkiOwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKLSAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAidW5yZXN0cmljdGVkIGRvdWJsZSI7CiAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGxvbmciOwogCiAgICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDlhOWRk
NDE2ZWQzMGNjYjgwMTIxMGJiNDU3NDk5NTM2MDU4MjIyMzAuLjgzNDIwMjMxNDc1Y2ZmZGQzZDBh
MGVjZjU4YmU2N2YyMDZhYmNiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0zOTg3LDE0ICszOTg3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEFyZyhFeGUKICAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhPcHRpb25hbEFyZyIpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAg
IGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0KLSAgICBzaXplX3QgYXJnc0Nv
dW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDApIHsK
LSAgICAgICAgaW1wbC5tZXRob2RXaXRoT3B0aW9uYWxBcmcoKTsKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBpbnQgb3B0ID0gdG9J
bnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBP
cHRpb25hbDxpbnQ+IG9wdCA9IHN0YXRlLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpID8gT3B0
aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
LCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBpbXBsLm1ldGhvZFdpdGhPcHRpb25hbEFyZyhvcHQpOwpAQCAtNDAyOSwxNCArNDAyMiw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBCiAgICAgaW50IG5vbk9wdCA9IHRvSW50MzIoc3RhdGUs
IHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZ
KHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50
Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEpIHsKLSAgICAgICAgaW1wbC5tZXRob2RX
aXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhub25PcHQpOwotICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBvcHQgPSB0
b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAg
IE9wdGlvbmFsPGludD4gb3B0ID0gc3RhdGUtPmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkgPyBP
cHRpb25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQo
MSksIE5vcm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIGltcGwubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcobm9uT3B0LCBv
cHQpOwpAQCAtNDA1NiwyMiArNDA0MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAg
IGludCBub25PcHQgPSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENv
bnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgc2l6ZV90
IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8
PSAxKSB7Ci0gICAgICAgIGltcGwubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9u
YWxBcmdzKG5vbk9wdCk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IG9wdDEgPSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJn
dW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGludD4gb3B0MSA9IHN0
YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8gT3B0aW9uYWw8aW50PigpIDogdG9JbnQz
MihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsK
ICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDIp
IHsKLSAgICAgICAgaW1wbC5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFy
Z3Mobm9uT3B0LCBvcHQxKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICB9Ci0KLSAgICBpbnQgb3B0MiA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5h
cmd1bWVudCgyKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0aW9uYWw8aW50PiBvcHQyID0g
c3RhdGUtPmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0lu
dDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMiksIE5vcm1hbENvbnZlcnNpb24p
OwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwubWV0aG9kV2l0aE5v
bk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKG5vbk9wdCwgb3B0MSwgb3B0Mik7CkBAIC00
NTg4LDE0ICs0NTYyLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKEV4ZWNTdGEKICAgICBUZXN0T2JqKiBv
YmpBcmcgPSBKU1Rlc3RPYmo6OnRvV3JhcHBlZChzdGF0ZS0+YXJndW1lbnQoMCkpOwogICAgIGlm
IChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotCi0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRl
LT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAxKSB7Ci0gICAgICAgIGlt
cGwub3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBsb25nQXJnID0gdG9JbnQzMihz
dGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBPcHRpb25h
bDxpbnQ+IGxvbmdBcmcgPSBzdGF0ZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSA/IE9wdGlv
bmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSwg
Tm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
aW1wbC5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CkBAIC00ODQ5LDE0ICs0ODE2
LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW8KICAgICBUZXN0T2JqKiBvYmpBcmcgPSBKU1Rl
c3RPYmo6OnRvV3JhcHBlZChzdGF0ZS0+YXJndW1lbnQoMCkpOwogICAgIGlmIChVTkxJS0VMWShz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwotCi0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVudENv
dW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAxKSB7Ci0gICAgICAgIGltcGwub3ZlcmxvYWRl
ZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcihvYmpBcmcpOwotICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBsb25nQXJnID0g
dG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAg
ICBPcHRpb25hbDxpbnQ+IGxvbmdBcmcgPSBzdGF0ZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQo
KSA/IE9wdGlvbmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKG9iakFy
ZywgbG9uZ0FyZyk7CkBAIC00ODg1LDE0ICs0ODQ1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QoRXhlY1N0YXRl
KgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbChFeGVjU3RhdGUqIHN0YXRlKQogewotCi0gICAg
c2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3ND
b3VudCA8PSAwKSB7Ci0gICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoVGVzdE9iajo6
Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoKSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKLSAgICB9Ci0KLSAgICBpbnQgYXJnID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUt
PmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBPcHRpb25hbDxpbnQ+IGFyZyA9
IHN0YXRlLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpID8gT3B0aW9uYWw8aW50PigpIDogdG9J
bnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9u
KTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKFRlc3RPYmo6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKGFyZykpOwpAQCAtNTQ0
NSwxNCArNTM5OCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wCiAgICAgICAgIHJldHVybiB0
aHJvd1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9u
V2l0aE9wdGlvbmFsSW50QXJndW1lbnQiKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVk
VGhpcy0+d3JhcHBlZCgpOwotCi0gICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0YXRlLT5hcmd1bWVu
dENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAwKSB7Ci0gICAgICAgIGltcGwudGVzdFBy
b21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KERlZmVycmVkV3JhcHBlcihzdGF0
ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHByb21pc2VEZWZlcnJlZCkpOwotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGlu
dCBhID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9u
KTsKKyAgICBPcHRpb25hbDxpbnQ+IGEgPSBzdGF0ZS0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQo
KSA/IE9wdGlvbmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgwKSwgTm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgaW1wbC50ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQo
YSwgRGVmZXJyZWRXcmFwcGVyKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgcHJv
bWlzZURlZmVycmVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApp
bmRleCA5ZDc2Zjk0MjMzODc2YTljYzZlYzUxMGU4MTA5OGQ1MmQwNmI4YjNjLi44OTVkZGJlOTdh
NWM1MzIzNjM5YjZjNWY1MmZmOTQ0NWZhMGM5ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwKQEAgLTk3LDggKzk3LDggQEAKICNpZiBkZWZpbmVkKExBTkdVQUdF
X09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgIFtDdXN0b21dIHZvaWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQpOwogI2Vsc2UKLSAgICBbQ3Vz
dG9tXSB2b2lkIHNldFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIGxvbmcgc3RhcnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBsb25nIGVuZCwKKyAgICBbQ3Vz
dG9tXSB2b2lkIHNldFNlbGVjdGlvblJhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24p
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGltZXJz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGltZXJzLmlkbAppbmRleCBjNThkNGNi
OWJkOWE4YjJlZmUxM2VlODIxZTc2ZjFkZmQzMzZlNThiLi41N2Y1YjYxNWM0MzZkMmNlNzc4NzFk
MGFjYWNmNWVkNjQ1MTliMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRv
d1RpbWVycy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dUaW1lcnMuaWRsCkBA
IC0yOCw5ICsyOCw5IEBACiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBX
aW5kb3dUaW1lcnMgewotICAgIFtDdXN0b21dIGxvbmcgc2V0VGltZW91dChhbnkgaGFuZGxlciwg
b3B0aW9uYWwgbG9uZyB0aW1lb3V0KTsKKyAgICBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoYW55
IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDApOwogICAgIHZvaWQgY2xlYXJUaW1l
b3V0KG9wdGlvbmFsIGxvbmcgaGFuZGxlID0gMCk7Ci0gICAgW0N1c3RvbV0gbG9uZyBzZXRJbnRl
cnZhbChhbnkgaGFuZGxlciwgb3B0aW9uYWwgbG9uZyB0aW1lb3V0KTsKKyAgICBbQ3VzdG9tXSBs
b25nIHNldEludGVydmFsKGFueSBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwKTsK
ICAgICB2b2lkIGNsZWFySW50ZXJ2YWwob3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUzOGQxNGQzMzIxM2QxNzk4NzJlZDEy
ZWEwOTg0NGQxYzNmY2M2NDIuLmYzYWZmMmZmOTcxODdjOTllYWUyYWU5ZDk3MmU1N2YzNzQ0NzM2
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTYxLDcgKzE2MSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFZpZXdQb3NpdGlvbihpbnQgeCwgaW50IHksIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFZpZXdCYXNlQmFja2dyb3VuZENvbG9yKGNvbnN0IFN0
cmluZyYgY29sb3JWYWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdm9pZCBzZXRQYWdpbmF0
aW9uKGNvbnN0IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0
UGFnaW5hdGlvbihtb2RlLCBnYXAsIDAsIGVjKTsgfQogICAgIHZvaWQgc2V0UGFnaW5hdGlvbihj
b25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIGludCBwYWdlTGVuZ3RoLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uTGluZUdyaWRFbmFibGVkKGJvb2wsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBTdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGZsb2F0IGRldmlj
ZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWls
YWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggM2Q5NDc3NTE5MDI4ZGU5N2RmNDEzYWRhOTUy
N2MwYmQxOWY4MmZhNi4uMzJhZGIxYzAxM2FhZTg3NDA0MWQ0YTE3NTZkMDVlMDM0MDI3N2U0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTQ0LDcgKzE0NCw3IEBAIGVu
dW0gQXV0b0ZpbGxCdXR0b25UeXBlIHsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0
Vmlld0Jhc2VCYWNrZ3JvdW5kQ29sb3IoRE9NU3RyaW5nIGNvbG9yVmFsdWUpOwogCi0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRQYWdpbmF0aW9uKERPTVN0cmluZyBtb2RlLCBsb25nIGdh
cCwgb3B0aW9uYWwgbG9uZyBwYWdlTGVuZ3RoKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lk
IHNldFBhZ2luYXRpb24oRE9NU3RyaW5nIG1vZGUsIGxvbmcgZ2FwLCBvcHRpb25hbCBsb25nIHBh
Z2VMZW5ndGggPSAwKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldFBhZ2luYXRpb25M
aW5lR3JpZEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25d
IERPTVN0cmluZyBjb25maWd1cmF0aW9uRm9yVmlld3BvcnQodW5yZXN0cmljdGVkIGZsb2F0IGRl
dmljZVBpeGVsUmF0aW8sCkBAIC0yNzMsNyArMjczLDcgQEAgZW51bSBBdXRvRmlsbEJ1dHRvblR5
cGUgewogICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoRWxlbWVudCBlbGVtZW50KTsKICAgICBs
b25nIHBhZ2VOdW1iZXIoRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxv
YXQgcGFnZVdpZHRoID0gODAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgcGFnZUhlaWdo
dCA9IDYwMCk7CiAgICAgRE9NU3RyaW5nW10gc2hvcnRjdXRJY29uVVJMcygpOwotICAgIGxvbmcg
bnVtYmVyT2ZQYWdlcyhvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VXaWR0aEluUGl4
ZWxzLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscyk7Cisg
ICAgbG9uZyBudW1iZXJPZlBhZ2VzKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZVdp
ZHRoSW5QaXhlbHMgPSA4MDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZUhlaWdo
dEluUGl4ZWxzID0gNjAwKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBET01TdHJpbmcgcGFnZVBy
b3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGxvbmcgcGFnZU51bWJlcik7CiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGxvbmcg
cGFnZUluZGV4LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCwgbG9uZyBtYXJnaW5Ub3AsIGxvbmcg
bWFyZ2luUmlnaHQsIGxvbmcgbWFyZ2luQm90dG9tLCBsb25nIG1hcmdpbkxlZnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277308</attachid>
            <date>2016-04-25 19:32:45 -0700</date>
            <delta_ts>2016-04-25 19:51:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157012-20160425193316.patch</filename>
            <type>text/plain</type>
            <size>25869</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYyNDNiNmYzMTE1M2Ix
ZjZkNGE5ZTZkZmNiYTc2MjYzNThiNzU0Yi4uMDI2Y2Y1YTc0YzQ5OGQ5ZTAzOWMzZDBhOTJkMGNj
MzBhNzNmMGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE2LTA0LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdHlwZSAnbG9uZycgLyAn
dW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzAxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRl
cnMgb2YgdHlwZSAnbG9uZycgLyAndW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgYW5kIGxl
dCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHVzZSBXVEY6Ok9wdGlvbmFsPD4gZm9yIHRoZSBvbmVz
IHRoYXQgZG8gbm90IGhhdmUgYQorICAgICAgICBkZWZhdWx0IHZhbHVlLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RUTUZTZW5kZXI6Omluc2VydERUTUYpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNl
bmRlcjo6ZGlkUGxheVRvbmUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQ2FuVXNlV1RGT3B0aW9uYWxGb3JQ
YXJhbWV0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2Q0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24yUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd1RpbWVycy5pZGw6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisKKzIwMTYtMDQtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KwogICAgICAgICBDcmFzaCB1bmRlciBNZW1vcnlDYWNoZTo6cmVtb3ZlKCkKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzAwMAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjMzNDQ2NjA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAppbmRleCBlMDVhZjNjMzNiZTRjNTY4YTMyM2Rm
ODQ3ZTBkZDM4YmEyNTdmY2ZhLi5mOWZmMGRiZjM4MDQ3NGY4M2E2YWM1YmE0NjZlZmQ1NGJjMTgw
YTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKQEAgLTg5LDM1ICs4OSwyNSBAQCBTdHJpbmcgUlRDRFRNRlNlbmRlcjo6
dG9uZUJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFuZGxlci0+Y3VycmVudFRvbmVCdWZm
ZXIoKTsKIH0KIAotdm9pZCBSVENEVE1GU2VuZGVyOjppbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGluc2VydERUTUYodG9uZXMsIGRlZmF1
bHRUb25lRHVyYXRpb25NcywgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQg
UlRDRFRNRlNlbmRlcjo6aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpbnNlcnREVE1GKHRvbmVzLCBkdXJhdGlv
biwgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQgUlRDRFRNRlNlbmRlcjo6
aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0aW9uLCBsb25nIGludGVy
VG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFJUQ0RUTUZTZW5kZXI6Omluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgT3B0aW9uYWw8aW50PiBkdXJhdGlvbiwgT3B0aW9uYWw8
aW50PiBpbnRlclRvbmVHYXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghY2FuSW5z
ZXJ0RFRNRigpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoZHVyYXRpb24gPiBtYXhUb25lRHVyYXRpb25NcyB8fCBk
dXJhdGlvbiA8IG1pblRvbmVEdXJhdGlvbk1zKSB7CisgICAgaWYgKGR1cmF0aW9uICYmIChkdXJh
dGlvbi52YWx1ZSgpID4gbWF4VG9uZUR1cmF0aW9uTXMgfHwgZHVyYXRpb24udmFsdWUoKSA8IG1p
blRvbmVEdXJhdGlvbk1zKSkgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoaW50ZXJUb25lR2FwIDwgbWluSW50ZXJUb25lR2FwTXMp
IHsKKyAgICBpZiAoaW50ZXJUb25lR2FwICYmIGludGVyVG9uZUdhcC52YWx1ZSgpIDwgbWluSW50
ZXJUb25lR2FwTXMpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9kdXJhdGlvbiA9IGR1cmF0aW9uOwotICAgIG1faW50ZXJUb25lR2Fw
ID0gaW50ZXJUb25lR2FwOworICAgIG1fZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZU9yKGRlZmF1
bHRUb25lRHVyYXRpb25Ncyk7CisgICAgbV9pbnRlclRvbmVHYXAgPSBpbnRlclRvbmVHYXAudmFs
dWVPcihkZWZhdWx0SW50ZXJUb25lR2FwTXMpOwogCiAgICAgaWYgKCFtX2hhbmRsZXItPmluc2Vy
dERUTUYodG9uZXMsIG1fZHVyYXRpb24sIG1faW50ZXJUb25lR2FwKSkKICAgICAgICAgZWMgPSBT
WU5UQVhfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEVE1GU2VuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RUTUZTZW5kZXIuaAppbmRleCBhY2E4MWFlNDMwOGM5MGI2YWIzOTM2NGViZjExYjQ2NmJjZThm
OWJmLi5hNzUzNWZmYzgwZTRhNGUwNTgzZmQ5YjNkNTZlMzk5NjY4MDNjMjdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaApAQCAt
NTIsOSArNTIsNyBAQCBwdWJsaWM6CiAgICAgbG9uZyBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZHVyYXRpb247IH0KICAgICBsb25nIGludGVyVG9uZUdhcCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW50ZXJUb25lR2FwOyB9CiAKLSAgICB2b2lkIGluc2VydERUTUYoY29uc3QgU3RyaW5nJiB0b25l
cywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgaW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRv
bmVzLCBsb25nIGR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBpbnNlcnREVE1G
KGNvbnN0IFN0cmluZyYgdG9uZXMsIGxvbmcgZHVyYXRpb24sIGxvbmcgaW50ZXJUb25lR2FwLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBpbnNlcnREVE1GKGNvbnN0IFN0cmluZyYgdG9uZXMs
IE9wdGlvbmFsPGludD4gZHVyYXRpb24sIE9wdGlvbmFsPGludD4gaW50ZXJUb25lR2FwLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUlRDRFRN
RlNlbmRlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmluZGV4
IGE3OWQ1Mjk5ZDc1ODNkZDJkZjlmMTVjOTZlNzBkNzMzMGVmN2ZlMzEuLjBiNTAwM2VhMjYzODFj
OTg5MTc5YzBjYzBkOTU3MjBjNmM5MDc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTQ0MSwy
MyArNDQxLDE0IEBAIHVuc2lnbmVkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bnVtYmVyT2ZDaGFu
bmVscygpCiAgICAgcmV0dXJuIG91dHB1dCgwKS0+bnVtYmVyT2ZDaGFubmVscygpOwogfQogCi12
b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9m
ZnNldCwgT3B0aW9uYWw8ZG91YmxlPiBvcHRpb25hbEdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIHN0YXJ0UGxheWluZyhFbnRpcmUsIDAsIDAsIGJ1ZmZlcigpID8gYnVm
ZmVyKCktPmR1cmF0aW9uKCkgOiAwLCBlYyk7Ci19Ci0KLXZvaWQgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RhcnRQ
bGF5aW5nKEVudGlyZSwgd2hlbiwgMCwgYnVmZmVyKCkgPyBidWZmZXIoKS0+ZHVyYXRpb24oKSA6
IDAsIGVjKTsKLX0KKyAgICBkb3VibGUgZ3JhaW5EdXJhdGlvbiA9IDA7CisgICAgaWYgKG9wdGlv
bmFsR3JhaW5EdXJhdGlvbikKKyAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IG9wdGlvbmFsR3JhaW5E
dXJhdGlvbi52YWx1ZSgpOworICAgIGVsc2UgaWYgKGJ1ZmZlcigpKQorICAgICAgICBncmFpbkR1
cmF0aW9uID0gYnVmZmVyKCktPmR1cmF0aW9uKCkgLSBncmFpbk9mZnNldDsKIAotdm9pZCBBdWRp
b0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHN0YXJ0UGxheWluZyhQYXJ0aWFsLCB3aGVuLCBn
cmFpbk9mZnNldCwgYnVmZmVyKCkgPyBidWZmZXIoKS0+ZHVyYXRpb24oKSAtIGdyYWluT2Zmc2V0
IDogMCwgZWMpOwotfQotCi12b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91Ymxl
IHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewogICAgIHN0YXJ0UGxheWluZyhQYXJ0aWFsLCB3aGVuLCBncmFpbk9mZnNl
dCwgZ3JhaW5EdXJhdGlvbiwgZWMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCBhOGM3YjRmYjM1
MjkxYjI3MDJlYmNiZWUxM2UxZjg5OGM4YjgyNWFiLi5mYzBkZjAyYWU2NjlhYjRjZmZjMWI2YTk2
M2ViZDYwNzc5MDEzNzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKQEAgLTYzLDEwICs2Myw3IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCk7CiAKICAgICAvLyBQbGF5LXN0YXRl
Ci0gICAgdm9pZCBzdGFydChFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdGFydChkb3VibGUg
d2hlbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIGRvdWJs
ZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnQoZG91YmxlIHdo
ZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIE9w
dGlvbmFsPGRvdWJsZT4gZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5B
QkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgdm9pZCBub3RlR3JhaW5Pbihkb3VibGUgd2hlbiwg
ZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuaWRsCmluZGV4IDJlYzQxZWRhYmRiZjRjODAyZTkxMDdiMDQyNWIyYzJk
MDYwY2U1MzAuLjdhNTc4ZDhkNmI0NjczZWVjOTMyOTM1MzdhNzVjN2NjZmFiMmFiOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5pZGwKQEAgLTQ0LDggKzQ0LDggQEAKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZSBsb29wU3RhcnQ7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUg
bG9vcEVuZDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5y
ZXN0cmljdGVkIGRvdWJsZSB3aGVuLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWlu
T2Zmc2V0LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24pOwotICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0
cmljdGVkIGRvdWJsZSB3aGVuID0gMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBncmFp
bk9mZnNldCA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgZ3JhaW5EdXJhdGlvbik7
CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbiA9IDApOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU9dIGF0
dHJpYnV0ZSBib29sZWFuIGxvb3Bpbmc7IC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIHRoZSAubG9v
cCBhdHRyaWJ1dGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNWRlN2Y1ZDg4
YTcyMDM0MWQ1YWMzNjEwZWE3MjFjYmM3MTAwNzlmNC4uMzdiYWI1NmRjMjBlZmE3MjRhOWNjMDli
OWU0ODM4YjJlNjNkMGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcApAQCAtNTU3LDEyICs1NTcsNiBAQCBSZWY8R2Fpbk5vZGU+IEF1
ZGlvQ29udGV4dDo6Y3JlYXRlR2FpbigpCiAgICAgcmV0dXJuIEdhaW5Ob2RlOjpjcmVhdGUoKnRo
aXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCkpOwogfQogCi1SZWZQdHI8RGVsYXlO
b2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZURlbGF5KEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IGNvbnN0IGRvdWJsZSBkZWZhdWx0TWF4RGVsYXlUaW1lID0gMTsKLSAgICByZXR1cm4gY3JlYXRl
RGVsYXkoZGVmYXVsdE1heERlbGF5VGltZSwgZWMpOwotfQotCiBSZWZQdHI8RGVsYXlOb2RlPiBB
dWRpb0NvbnRleHQ6OmNyZWF0ZURlbGF5KGRvdWJsZSBtYXhEZWxheVRpbWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCA4MDA0NWQ4Mzk1NGU4MjY3
Y2FmODk2Y2E5NTRlY2FkZTVmM2ExNDllLi5hOWU3MmI2YjRjZTg1MDBmNzdiYTczYTY1MjhjZjk2
YzUyMTEwMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKQEAgLTEzMiw3ICsxMzIsNiBAQCBwdWJsaWM6CiAgICAgUmVmPEdhaW5Ob2RlPiBj
cmVhdGVHYWluKCk7CiAgICAgUmVmPEJpcXVhZEZpbHRlck5vZGU+IGNyZWF0ZUJpcXVhZEZpbHRl
cigpOwogICAgIFJlZjxXYXZlU2hhcGVyTm9kZT4gY3JlYXRlV2F2ZVNoYXBlcigpOwotICAgIFJl
ZlB0cjxEZWxheU5vZGU+IGNyZWF0ZURlbGF5KEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8
RGVsYXlOb2RlPiBjcmVhdGVEZWxheShkb3VibGUgbWF4RGVsYXlUaW1lLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgUmVmPFBhbm5lck5vZGU+IGNyZWF0ZVBhbm5lcigpOwogICAgIFJlZjxDb252b2x2
ZXJOb2RlPiBjcmVhdGVDb252b2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAppbmRleCA5NGQ2YjhmNTI1ZDYzM2U1NDY4OWU3M2Jj
YzQyODI3MjMxMDExNTg2Li42MjNlNzhmODAzMzlhMjgxYjEyMGE4MzQyMGUzYTliMGE4M2NiMTMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aWRsCkBAIC03Nyw3ICs3Nyw3IEBAIGVudW0gQXVkaW9Db250ZXh0U3RhdGUgewogCiAgICAgLy8g
UHJvY2Vzc2luZyBub2RlcwogICAgIEdhaW5Ob2RlIGNyZWF0ZUdhaW4oKTsKLSAgICBbUmFpc2Vz
RXhjZXB0aW9uXSBEZWxheU5vZGUgY3JlYXRlRGVsYXkob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRv
dWJsZSBtYXhEZWxheVRpbWUpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIERlbGF5Tm9kZSBjcmVh
dGVEZWxheShvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heERlbGF5VGltZSA9IDEpOwog
ICAgIEJpcXVhZEZpbHRlck5vZGUgY3JlYXRlQmlxdWFkRmlsdGVyKCk7CiAgICAgV2F2ZVNoYXBl
ck5vZGUgY3JlYXRlV2F2ZVNoYXBlcigpOwogICAgIFBhbm5lck5vZGUgY3JlYXRlUGFubmVyKCk7
CkBAIC05OCw3ICs5OCw3IEBAIGVudW0gQXVkaW9Db250ZXh0U3RhdGUgewogICAgIHZvaWQgc3Rh
cnRSZW5kZXJpbmcoKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBJbXBs
ZW1lbnRlZEFzPWNyZWF0ZUdhaW5dIEdhaW5Ob2RlIGNyZWF0ZUdhaW5Ob2RlKCk7Ci0gICAgW0Nv
bmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIEltcGxlbWVudGVkQXM9Y3JlYXRlRGVsYXksIFJh
aXNlc0V4Y2VwdGlvbl0gRGVsYXlOb2RlIGNyZWF0ZURlbGF5Tm9kZShvcHRpb25hbCB1bnJlc3Ry
aWN0ZWQgZG91YmxlIG1heERlbGF5VGltZSk7CisgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJf
QVVESU8sIEltcGxlbWVudGVkQXM9Y3JlYXRlRGVsYXksIFJhaXNlc0V4Y2VwdGlvbl0gRGVsYXlO
b2RlIGNyZWF0ZURlbGF5Tm9kZShvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heERlbGF5
VGltZSA9IDEpOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIEltcGxlbWVu
dGVkQXM9Y3JlYXRlU2NyaXB0UHJvY2Vzc29yLCBSYWlzZXNFeGNlcHRpb25dIFNjcmlwdFByb2Nl
c3Nvck5vZGUgY3JlYXRlSmF2YVNjcmlwdE5vZGUodW5zaWduZWQgbG9uZyBidWZmZXJTaXplLCBv
cHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscywgb3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBudW1iZXJPZk91dHB1dENoYW5uZWxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUu
Y3BwCmluZGV4IDEwYWUxNjUxMTY2OTZmNDRlMTM0ZDk4ZGNiZTg3YTQ4MzI3MzZlZTYuLmJjNGVm
YjRiNzJjZTZkN2ViY2NjZTM4ZWI2MDk5OTUzOTQwZTliNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKQEAgLTEzNywxMSArMTM3LDYgQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6
OnVwZGF0ZVNjaGVkdWxpbmdJbmZvKHNpemVfdCBxdWFudHVtRnJhbWVTaXplLAogICAgIHJldHVy
bjsKIH0KIAotdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0YXJ0KEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIHN0YXJ0KDAsIGVjKTsKLX0KLQogdm9pZCBBdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTYyLDExICsxNTcsNiBAQCB2b2lkIEF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIG1fcGxheWJhY2tTdGF0ZSA9IFNDSEVEVUxFRF9TVEFURTsKIH0KIAotdm9pZCBBdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RvcCgw
LCBlYyk7Ci19Ci0KIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKGRvdWJsZSB3
aGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmgKaW5kZXggMmZjNjczMjIwM2ZhNzAyMmNiYjdlZjhlODcwZjk4MzI4
MTBiNTU3MC4uZWNlZGUzOGEwODk0MjZkMDljZGU2MWQ0MGNiN2Y3NDNiOWM2MTA1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZS5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBBdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUoQXVkaW9Db250ZXh0JiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICAv
LyBTY2hlZHVsaW5nLgotICAgIHZvaWQgc3RhcnQoRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQg
c3RvcChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc3RvcChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JO
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUu
aWRsCmluZGV4IGJkMDE1ZWEzMDVjNzUxOGE4OWY2ZjcxNTlkNjViZWQyN2QzMWYyOGUuLjY1ODQx
ZDgwYWNkNmM5ZGQ4ZTRlOGFjMDYyOThkMGU0YTAxOWRhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsCkBAIC00OCw4ICs0OCw4
IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gZnJlcXVlbmN5OyAvLyBpbiBI
ZXJ0egogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGRldHVuZTsgLy8gaW4gQ2Vu
dHMKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuKTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9u
YWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lk
IHN0YXJ0KG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbiA9IDApOworICAgIFtSYWlz
ZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4g
PSAwKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBSYWlzZXNFeGNlcHRp
b25dIHZvaWQgbm90ZU9uKHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7CiAgICAgW0NvbmRpdGlv
bmFsPUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBub3RlT2ZmKHVucmVz
dHJpY3RlZCBkb3VibGUgd2hlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDgwNjMzMDJhYTEyYjA0OGIxNmZmZTNmYjM4
NzNlODU4YzgwZTg1ZGMuLjk0Y2NmNWFiNWM5ZjdhZDlhYzk5YjYxYmU5ZGRhYjkyYjNjNTU1ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0zMzg2LDggKzMzODYsNiBAQCBzdWIgQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJh
bWV0ZXIKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiRGljdGlvbmFyeSI7CiAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImFu
eSI7Ci0gICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmciOwotICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJ1bnJlc3RyaWN0ZWQgZG91YmxlIjsKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyI7CiAKICAgICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOWE5ZGQ0MTZl
ZDMwY2NiODAxMjEwYmI0NTc0OTk1MzYwNTgyMjIzMC4uODM0MjAyMzE0NzVjZmZkZDNkMGEwZWNm
NThiZTY3ZjIwNmFiY2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTM5ODcsMTQgKzM5ODcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXJnKEV4ZQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAibWV0aG9kV2l0aE9wdGlvbmFsQXJnIik7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQg
PSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMCkgewotICAg
ICAgICBpbXBsLm1ldGhvZFdpdGhPcHRpb25hbEFyZygpOwotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBvcHQgPSB0b0ludDMy
KHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlv
bmFsPGludD4gb3B0ID0gc3RhdGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25h
bDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIE5v
cm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGlt
cGwubWV0aG9kV2l0aE9wdGlvbmFsQXJnKG9wdCk7CkBAIC00MDI5LDE0ICs0MDIyLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICBpbnQgbm9uT3B0ID0gdG9JbnQzMihzdGF0ZSwgc3Rh
dGUtPmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3Vu
dCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBpbXBsLm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKG5vbk9wdCk7Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IG9wdCA9IHRvSW50
MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0
aW9uYWw8aW50PiBvcHQgPSBzdGF0ZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSA/IE9wdGlv
bmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSwg
Tm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
aW1wbC5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhub25PcHQsIG9wdCk7
CkBAIC00MDU2LDIyICs0MDQyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBCiAgICAgaW50
IG5vbk9wdCA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVy
c2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJn
c0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEp
IHsKLSAgICAgICAgaW1wbC5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFy
Z3Mobm9uT3B0KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKLSAgICB9Ci0KLSAgICBpbnQgb3B0MSA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVu
dCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0aW9uYWw8aW50PiBvcHQxID0gc3RhdGUt
PmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0
YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOwogICAg
IGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMikgewot
ICAgICAgICBpbXBsLm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhu
b25PcHQsIG9wdDEpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwotICAgIH0KLQotICAgIGludCBvcHQyID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3Vt
ZW50KDIpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBPcHRpb25hbDxpbnQ+IG9wdDIgPSBzdGF0
ZS0+YXJndW1lbnQoMikuaXNVbmRlZmluZWQoKSA/IE9wdGlvbmFsPGludD4oKSA6IHRvSW50MzIo
c3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgyKSwgTm9ybWFsQ29udmVyc2lvbik7CiAg
ICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoTm9uT3B0
aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mobm9uT3B0LCBvcHQxLCBvcHQyKTsKQEAgLTQ1ODgs
MTQgKzQ1NjIsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoRXhlY1N0YQogICAgIFRlc3RPYmoqIG9iakFy
ZyA9IEpTVGVzdE9iajo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKFVO
TElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFy
Z3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEpIHsKLSAgICAgICAgaW1wbC5v
dmVybG9hZGVkTWV0aG9kKG9iakFyZyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGxvbmdBcmcgPSB0b0ludDMyKHN0YXRl
LCBzdGF0ZS0+YXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGlu
dD4gbG9uZ0FyZyA9IHN0YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8gT3B0aW9uYWw8
aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBOb3Jt
YWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBs
Lm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKQEAgLTQ4NDksMTQgKzQ4MTYsNyBA
QCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpbwogICAgIFRlc3RPYmoqIG9iakFyZyA9IEpTVGVzdE9i
ajo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRl
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQo
KTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEpIHsKLSAgICAgICAgaW1wbC5vdmVybG9hZGVkTWV0
aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKG9iakFyZyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGxvbmdBcmcgPSB0b0lu
dDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9w
dGlvbmFsPGludD4gbG9uZ0FyZyA9IHN0YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8g
T3B0aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIob2JqQXJnLCBs
b25nQXJnKTsKQEAgLTQ4ODUsMTQgKzQ4NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZChFeGVjU3RhdGUqCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEV4ZWNTdGF0ZSogc3RhdGUpCiB7Ci0KLSAgICBzaXpl
X3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50
IDw9IDApIHsKLSAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihUZXN0T2JqOjpjbGFz
c01ldGhvZFdpdGhPcHRpb25hbCgpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwotICAgIH0KLQotICAgIGludCBhcmcgPSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJn
dW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGludD4gYXJnID0gc3Rh
dGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMy
KHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwog
ICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoVGVzdE9iajo6Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoYXJnKSk7CkBAIC01NDQ1LDE0
ICs1Mzk4LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3AKICAgICAgICAgcmV0dXJuIHRocm93
VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRo
T3B0aW9uYWxJbnRBcmd1bWVudCIpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlz
LT53cmFwcGVkKCk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291
bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDApIHsKLSAgICAgICAgaW1wbC50ZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQoRGVmZXJyZWRXcmFwcGVyKHN0YXRlLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKSk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGEg
PSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwor
ICAgIE9wdGlvbmFsPGludD4gYSA9IHN0YXRlLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpID8g
T3B0aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLnRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudChhLCBE
ZWZlcnJlZFdyYXBwZXIoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBwcm9taXNl
RGVmZXJyZWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4
IDlkNzZmOTQyMzM4NzZhOWNjNmVjNTEwZTgxMDk4ZDUyZDA2YjhiM2MuLjg5NWRkYmU5N2E1YzUz
MjM2MzliNmM1ZjUyZmY5NDQ1ZmEwYzlmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbApAQCAtOTcsOCArOTcsOCBAQAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JK
RUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgW0N1c3RvbV0gdm9pZCBzZXRT
ZWxlY3Rpb25SYW5nZShsb25nIHN0YXJ0LCBsb25nIGVuZCk7CiAjZWxzZQotICAgIFtDdXN0b21d
IHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIGxvbmcgZW5kLAorICAgIFtDdXN0b21d
IHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dUaW1lcnMuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dUaW1lcnMuaWRsCmluZGV4IGM1OGQ0Y2I5YmQ5
YThiMmVmZTEzZWU4MjFlNzZmMWRmZDMzNmU1OGIuLjU3ZjViNjE1YzQzNmQyY2U3Nzg3MWQwYWNh
Y2Y1ZWQ2NDUxOWIxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGlt
ZXJzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRvd1RpbWVycy5pZGwKQEAgLTI4
LDkgKzI4LDkgQEAKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNlIFdpbmRv
d1RpbWVycyB7Ci0gICAgW0N1c3RvbV0gbG9uZyBzZXRUaW1lb3V0KGFueSBoYW5kbGVyLCBvcHRp
b25hbCBsb25nIHRpbWVvdXQpOworICAgIFtDdXN0b21dIGxvbmcgc2V0VGltZW91dChhbnkgaGFu
ZGxlciwgb3B0aW9uYWwgbG9uZyB0aW1lb3V0ID0gMCk7CiAgICAgdm9pZCBjbGVhclRpbWVvdXQo
b3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKLSAgICBbQ3VzdG9tXSBsb25nIHNldEludGVydmFs
KGFueSBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQpOworICAgIFtDdXN0b21dIGxvbmcg
c2V0SW50ZXJ2YWwoYW55IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDApOwogICAg
IHZvaWQgY2xlYXJJbnRlcnZhbChvcHRpb25hbCBsb25nIGhhbmRsZSA9IDApOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTM4ZDE0ZDMzMjEzZDE3OTg3MmVkMTJlYTA5
ODQ0ZDFjM2ZjYzY0Mi4uZjNhZmYyZmY5NzE4N2M5OWVhZTJhZTlkOTcyZTU3ZjM3NDQ3MzYxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNjEsNyArMTYxLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9uKGludCB4LCBpbnQgeSwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0Vmlld0Jhc2VCYWNrZ3JvdW5kQ29sb3IoY29uc3QgU3RyaW5n
JiBjb2xvclZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB2b2lkIHNldFBhZ2luYXRpb24o
Y29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRQYWdp
bmF0aW9uKG1vZGUsIGdhcCwgMCwgZWMpOyB9CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uKGNvbnN0
IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgaW50IHBhZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldFBhZ2luYXRpb25MaW5lR3JpZEVuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIFN0cmluZyBjb25maWd1cmF0aW9uRm9yVmlld3BvcnQoZmxvYXQgZGV2aWNlUGl4
ZWxSYXRpbywgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxl
V2lkdGgsIGludCBhdmFpbGFibGVIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzZDk0Nzc1MTkwMjhkZTk3ZGY0MTNhZGE5NTI3YzBi
ZDE5ZjgyZmE2Li4zMmFkYjFjMDEzYWFlODc0MDQxZDRhMTc1NmQwNWUwMzQwMjc3ZTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xNDQsNyArMTQ0LDcgQEAgZW51bSBB
dXRvRmlsbEJ1dHRvblR5cGUgewogCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRWaWV3
QmFzZUJhY2tncm91bmRDb2xvcihET01TdHJpbmcgY29sb3JWYWx1ZSk7CiAKLSAgICBbUmFpc2Vz
RXhjZXB0aW9uXSB2b2lkIHNldFBhZ2luYXRpb24oRE9NU3RyaW5nIG1vZGUsIGxvbmcgZ2FwLCBv
cHRpb25hbCBsb25nIHBhZ2VMZW5ndGgpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0
UGFnaW5hdGlvbihET01TdHJpbmcgbW9kZSwgbG9uZyBnYXAsIG9wdGlvbmFsIGxvbmcgcGFnZUxl
bmd0aCA9IDApOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0UGFnaW5hdGlvbkxpbmVH
cmlkRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRE9N
U3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCh1bnJlc3RyaWN0ZWQgZmxvYXQgZGV2aWNl
UGl4ZWxSYXRpbywKQEAgLTI3Myw3ICsyNzMsNyBAQCBlbnVtIEF1dG9GaWxsQnV0dG9uVHlwZSB7
CiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShFbGVtZW50IGVsZW1lbnQpOwogICAgIGxvbmcg
cGFnZU51bWJlcihFbGVtZW50IGVsZW1lbnQsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBw
YWdlV2lkdGggPSA4MDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBwYWdlSGVpZ2h0ID0g
NjAwKTsKICAgICBET01TdHJpbmdbXSBzaG9ydGN1dEljb25VUkxzKCk7Ci0gICAgbG9uZyBudW1i
ZXJPZlBhZ2VzKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMs
IG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKKyAgICBs
b25nIG51bWJlck9mUGFnZXMob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBwYWdlV2lkdGhJ
blBpeGVscyA9IDgwMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBwYWdlSGVpZ2h0SW5Q
aXhlbHMgPSA2MDApOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBwYWdlUHJvcGVy
dHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgbG9uZyBwYWdlTnVtYmVyKTsKICAgICBbUmFpc2Vz
RXhjZXB0aW9uXSBET01TdHJpbmcgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMobG9uZyBwYWdl
SW5kZXgsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0LCBsb25nIG1hcmdpblRvcCwgbG9uZyBtYXJn
aW5SaWdodCwgbG9uZyBtYXJnaW5Cb3R0b20sIGxvbmcgbWFyZ2luTGVmdCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277313</attachid>
            <date>2016-04-25 19:51:28 -0700</date>
            <delta_ts>2016-04-26 09:07:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157012-20160425195159.patch</filename>
            <type>text/plain</type>
            <size>25132</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYyNDNiNmYzMTE1M2Ix
ZjZkNGE5ZTZkZmNiYTc2MjYzNThiNzU0Yi4uMDI2Y2Y1YTc0YzQ5OGQ5ZTAzOWMzZDBhOTJkMGNj
MzBhNzNmMGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE2LTA0LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYiBJRExdIFNwZWNpZnkg
ZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdHlwZSAnbG9uZycgLyAn
dW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzAxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNwZWNpZnkgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFsIHBhcmFtZXRl
cnMgb2YgdHlwZSAnbG9uZycgLyAndW5yZXN0cmljdGVkIGRvdWJsZScKKyAgICAgICAgYW5kIGxl
dCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHVzZSBXVEY6Ok9wdGlvbmFsPD4gZm9yIHRoZSBvbmVz
IHRoYXQgZG8gbm90IGhhdmUgYQorICAgICAgICBkZWZhdWx0IHZhbHVlLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0RUTUZTZW5kZXI6Omluc2VydERUTUYpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNl
bmRlcjo6ZGlkUGxheVRvbmUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6Y3JlYXRlRGVsYXkpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQ2FuVXNlV1RGT3B0aW9uYWxGb3JQ
YXJhbWV0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25P
cHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2Q0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24yUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1dpbmRvd1RpbWVycy5pZGw6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisKKzIwMTYtMDQtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KwogICAgICAgICBDcmFzaCB1bmRlciBNZW1vcnlDYWNoZTo6cmVtb3ZlKCkKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzAwMAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjMzNDQ2NjA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAppbmRleCBlMDVhZjNjMzNiZTRjNTY4YTMyM2Rm
ODQ3ZTBkZDM4YmEyNTdmY2ZhLi5mOWZmMGRiZjM4MDQ3NGY4M2E2YWM1YmE0NjZlZmQ1NGJjMTgw
YTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKQEAgLTg5LDM1ICs4OSwyNSBAQCBTdHJpbmcgUlRDRFRNRlNlbmRlcjo6
dG9uZUJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFuZGxlci0+Y3VycmVudFRvbmVCdWZm
ZXIoKTsKIH0KIAotdm9pZCBSVENEVE1GU2VuZGVyOjppbnNlcnREVE1GKGNvbnN0IFN0cmluZyYg
dG9uZXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGluc2VydERUTUYodG9uZXMsIGRlZmF1
bHRUb25lRHVyYXRpb25NcywgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQg
UlRDRFRNRlNlbmRlcjo6aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpbnNlcnREVE1GKHRvbmVzLCBkdXJhdGlv
biwgZGVmYXVsdEludGVyVG9uZUdhcE1zLCBlYyk7Ci19Ci0KLXZvaWQgUlRDRFRNRlNlbmRlcjo6
aW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRvbmVzLCBsb25nIGR1cmF0aW9uLCBsb25nIGludGVy
VG9uZUdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFJUQ0RUTUZTZW5kZXI6Omluc2VydERU
TUYoY29uc3QgU3RyaW5nJiB0b25lcywgT3B0aW9uYWw8aW50PiBkdXJhdGlvbiwgT3B0aW9uYWw8
aW50PiBpbnRlclRvbmVHYXAsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghY2FuSW5z
ZXJ0RFRNRigpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoZHVyYXRpb24gPiBtYXhUb25lRHVyYXRpb25NcyB8fCBk
dXJhdGlvbiA8IG1pblRvbmVEdXJhdGlvbk1zKSB7CisgICAgaWYgKGR1cmF0aW9uICYmIChkdXJh
dGlvbi52YWx1ZSgpID4gbWF4VG9uZUR1cmF0aW9uTXMgfHwgZHVyYXRpb24udmFsdWUoKSA8IG1p
blRvbmVEdXJhdGlvbk1zKSkgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoaW50ZXJUb25lR2FwIDwgbWluSW50ZXJUb25lR2FwTXMp
IHsKKyAgICBpZiAoaW50ZXJUb25lR2FwICYmIGludGVyVG9uZUdhcC52YWx1ZSgpIDwgbWluSW50
ZXJUb25lR2FwTXMpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9kdXJhdGlvbiA9IGR1cmF0aW9uOwotICAgIG1faW50ZXJUb25lR2Fw
ID0gaW50ZXJUb25lR2FwOworICAgIG1fZHVyYXRpb24gPSBkdXJhdGlvbi52YWx1ZU9yKGRlZmF1
bHRUb25lRHVyYXRpb25Ncyk7CisgICAgbV9pbnRlclRvbmVHYXAgPSBpbnRlclRvbmVHYXAudmFs
dWVPcihkZWZhdWx0SW50ZXJUb25lR2FwTXMpOwogCiAgICAgaWYgKCFtX2hhbmRsZXItPmluc2Vy
dERUTUYodG9uZXMsIG1fZHVyYXRpb24sIG1faW50ZXJUb25lR2FwKSkKICAgICAgICAgZWMgPSBT
WU5UQVhfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEVE1GU2VuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RUTUZTZW5kZXIuaAppbmRleCBhY2E4MWFlNDMwOGM5MGI2YWIzOTM2NGViZjExYjQ2NmJjZThm
OWJmLi5hNzUzNWZmYzgwZTRhNGUwNTgzZmQ5YjNkNTZlMzk5NjY4MDNjMjdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaApAQCAt
NTIsOSArNTIsNyBAQCBwdWJsaWM6CiAgICAgbG9uZyBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZHVyYXRpb247IH0KICAgICBsb25nIGludGVyVG9uZUdhcCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW50ZXJUb25lR2FwOyB9CiAKLSAgICB2b2lkIGluc2VydERUTUYoY29uc3QgU3RyaW5nJiB0b25l
cywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgaW5zZXJ0RFRNRihjb25zdCBTdHJpbmcmIHRv
bmVzLCBsb25nIGR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBpbnNlcnREVE1G
KGNvbnN0IFN0cmluZyYgdG9uZXMsIGxvbmcgZHVyYXRpb24sIGxvbmcgaW50ZXJUb25lR2FwLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBpbnNlcnREVE1GKGNvbnN0IFN0cmluZyYgdG9uZXMs
IE9wdGlvbmFsPGludD4gZHVyYXRpb24sIE9wdGlvbmFsPGludD4gaW50ZXJUb25lR2FwLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUlRDRFRN
RlNlbmRlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmluZGV4
IGE3OWQ1Mjk5ZDc1ODNkZDJkZjlmMTVjOTZlNzBkNzMzMGVmN2ZlMzEuLjBiNTAwM2VhMjYzODFj
OTg5MTc5YzBjYzBkOTU3MjBjNmM5MDc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTQ0MSwy
MyArNDQxLDE0IEBAIHVuc2lnbmVkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bnVtYmVyT2ZDaGFu
bmVscygpCiAgICAgcmV0dXJuIG91dHB1dCgwKS0+bnVtYmVyT2ZDaGFubmVscygpOwogfQogCi12
b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9m
ZnNldCwgT3B0aW9uYWw8ZG91YmxlPiBvcHRpb25hbEdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewotICAgIHN0YXJ0UGxheWluZyhFbnRpcmUsIDAsIDAsIGJ1ZmZlcigpID8gYnVm
ZmVyKCktPmR1cmF0aW9uKCkgOiAwLCBlYyk7Ci19Ci0KLXZvaWQgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RhcnRQ
bGF5aW5nKEVudGlyZSwgd2hlbiwgMCwgYnVmZmVyKCkgPyBidWZmZXIoKS0+ZHVyYXRpb24oKSA6
IDAsIGVjKTsKLX0KKyAgICBkb3VibGUgZ3JhaW5EdXJhdGlvbiA9IDA7CisgICAgaWYgKG9wdGlv
bmFsR3JhaW5EdXJhdGlvbikKKyAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IG9wdGlvbmFsR3JhaW5E
dXJhdGlvbi52YWx1ZSgpOworICAgIGVsc2UgaWYgKGJ1ZmZlcigpKQorICAgICAgICBncmFpbkR1
cmF0aW9uID0gYnVmZmVyKCktPmR1cmF0aW9uKCkgLSBncmFpbk9mZnNldDsKIAotdm9pZCBBdWRp
b0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHN0YXJ0UGxheWluZyhQYXJ0aWFsLCB3aGVuLCBn
cmFpbk9mZnNldCwgYnVmZmVyKCkgPyBidWZmZXIoKS0+ZHVyYXRpb24oKSAtIGdyYWluT2Zmc2V0
IDogMCwgZWMpOwotfQotCi12b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91Ymxl
IHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewogICAgIHN0YXJ0UGxheWluZyhQYXJ0aWFsLCB3aGVuLCBncmFpbk9mZnNl
dCwgZ3JhaW5EdXJhdGlvbiwgZWMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCBhOGM3YjRmYjM1
MjkxYjI3MDJlYmNiZWUxM2UxZjg5OGM4YjgyNWFiLi5mYzBkZjAyYWU2NjlhYjRjZmZjMWI2YTk2
M2ViZDYwNzc5MDEzNzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKQEAgLTYzLDEwICs2Myw3IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCk7CiAKICAgICAvLyBQbGF5LXN0YXRl
Ci0gICAgdm9pZCBzdGFydChFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdGFydChkb3VibGUg
d2hlbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIGRvdWJs
ZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnQoZG91YmxlIHdo
ZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIE9w
dGlvbmFsPGRvdWJsZT4gZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5B
QkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgdm9pZCBub3RlR3JhaW5Pbihkb3VibGUgd2hlbiwg
ZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuaWRsCmluZGV4IDJlYzQxZWRhYmRiZjRjODAyZTkxMDdiMDQyNWIyYzJk
MDYwY2U1MzAuLjdhNTc4ZDhkNmI0NjczZWVjOTMyOTM1MzdhNzVjN2NjZmFiMmFiOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5pZGwKQEAgLTQ0LDggKzQ0LDggQEAKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZSBsb29wU3RhcnQ7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUg
bG9vcEVuZDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5y
ZXN0cmljdGVkIGRvdWJsZSB3aGVuLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWlu
T2Zmc2V0LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24pOwotICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0
cmljdGVkIGRvdWJsZSB3aGVuID0gMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSBncmFp
bk9mZnNldCA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgZ3JhaW5EdXJhdGlvbik7
CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbiA9IDApOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU9dIGF0
dHJpYnV0ZSBib29sZWFuIGxvb3Bpbmc7IC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIHRoZSAubG9v
cCBhdHRyaWJ1dGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNWRlN2Y1ZDg4
YTcyMDM0MWQ1YWMzNjEwZWE3MjFjYmM3MTAwNzlmNC4uMzdiYWI1NmRjMjBlZmE3MjRhOWNjMDli
OWU0ODM4YjJlNjNkMGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcApAQCAtNTU3LDEyICs1NTcsNiBAQCBSZWY8R2Fpbk5vZGU+IEF1
ZGlvQ29udGV4dDo6Y3JlYXRlR2FpbigpCiAgICAgcmV0dXJuIEdhaW5Ob2RlOjpjcmVhdGUoKnRo
aXMsIG1fZGVzdGluYXRpb25Ob2RlLT5zYW1wbGVSYXRlKCkpOwogfQogCi1SZWZQdHI8RGVsYXlO
b2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZURlbGF5KEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IGNvbnN0IGRvdWJsZSBkZWZhdWx0TWF4RGVsYXlUaW1lID0gMTsKLSAgICByZXR1cm4gY3JlYXRl
RGVsYXkoZGVmYXVsdE1heERlbGF5VGltZSwgZWMpOwotfQotCiBSZWZQdHI8RGVsYXlOb2RlPiBB
dWRpb0NvbnRleHQ6OmNyZWF0ZURlbGF5KGRvdWJsZSBtYXhEZWxheVRpbWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCA4MDA0NWQ4Mzk1NGU4MjY3
Y2FmODk2Y2E5NTRlY2FkZTVmM2ExNDllLi5hOWU3MmI2YjRjZTg1MDBmNzdiYTczYTY1MjhjZjk2
YzUyMTEwMGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKQEAgLTEzMiw3ICsxMzIsNiBAQCBwdWJsaWM6CiAgICAgUmVmPEdhaW5Ob2RlPiBj
cmVhdGVHYWluKCk7CiAgICAgUmVmPEJpcXVhZEZpbHRlck5vZGU+IGNyZWF0ZUJpcXVhZEZpbHRl
cigpOwogICAgIFJlZjxXYXZlU2hhcGVyTm9kZT4gY3JlYXRlV2F2ZVNoYXBlcigpOwotICAgIFJl
ZlB0cjxEZWxheU5vZGU+IGNyZWF0ZURlbGF5KEV4Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8
RGVsYXlOb2RlPiBjcmVhdGVEZWxheShkb3VibGUgbWF4RGVsYXlUaW1lLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgUmVmPFBhbm5lck5vZGU+IGNyZWF0ZVBhbm5lcigpOwogICAgIFJlZjxDb252b2x2
ZXJOb2RlPiBjcmVhdGVDb252b2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAppbmRleCA5NGQ2YjhmNTI1ZDYzM2U1NDY4OWU3M2Jj
YzQyODI3MjMxMDExNTg2Li42MjNlNzhmODAzMzlhMjgxYjEyMGE4MzQyMGUzYTliMGE4M2NiMTMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aWRsCkBAIC03Nyw3ICs3Nyw3IEBAIGVudW0gQXVkaW9Db250ZXh0U3RhdGUgewogCiAgICAgLy8g
UHJvY2Vzc2luZyBub2RlcwogICAgIEdhaW5Ob2RlIGNyZWF0ZUdhaW4oKTsKLSAgICBbUmFpc2Vz
RXhjZXB0aW9uXSBEZWxheU5vZGUgY3JlYXRlRGVsYXkob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRv
dWJsZSBtYXhEZWxheVRpbWUpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIERlbGF5Tm9kZSBjcmVh
dGVEZWxheShvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heERlbGF5VGltZSA9IDEpOwog
ICAgIEJpcXVhZEZpbHRlck5vZGUgY3JlYXRlQmlxdWFkRmlsdGVyKCk7CiAgICAgV2F2ZVNoYXBl
ck5vZGUgY3JlYXRlV2F2ZVNoYXBlcigpOwogICAgIFBhbm5lck5vZGUgY3JlYXRlUGFubmVyKCk7
CkBAIC05OCw3ICs5OCw3IEBAIGVudW0gQXVkaW9Db250ZXh0U3RhdGUgewogICAgIHZvaWQgc3Rh
cnRSZW5kZXJpbmcoKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBJbXBs
ZW1lbnRlZEFzPWNyZWF0ZUdhaW5dIEdhaW5Ob2RlIGNyZWF0ZUdhaW5Ob2RlKCk7Ci0gICAgW0Nv
bmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIEltcGxlbWVudGVkQXM9Y3JlYXRlRGVsYXksIFJh
aXNlc0V4Y2VwdGlvbl0gRGVsYXlOb2RlIGNyZWF0ZURlbGF5Tm9kZShvcHRpb25hbCB1bnJlc3Ry
aWN0ZWQgZG91YmxlIG1heERlbGF5VGltZSk7CisgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJf
QVVESU8sIEltcGxlbWVudGVkQXM9Y3JlYXRlRGVsYXksIFJhaXNlc0V4Y2VwdGlvbl0gRGVsYXlO
b2RlIGNyZWF0ZURlbGF5Tm9kZShvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heERlbGF5
VGltZSA9IDEpOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIEltcGxlbWVu
dGVkQXM9Y3JlYXRlU2NyaXB0UHJvY2Vzc29yLCBSYWlzZXNFeGNlcHRpb25dIFNjcmlwdFByb2Nl
c3Nvck5vZGUgY3JlYXRlSmF2YVNjcmlwdE5vZGUodW5zaWduZWQgbG9uZyBidWZmZXJTaXplLCBv
cHRpb25hbCB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscywgb3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBudW1iZXJPZk91dHB1dENoYW5uZWxzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUu
Y3BwCmluZGV4IDEwYWUxNjUxMTY2OTZmNDRlMTM0ZDk4ZGNiZTg3YTQ4MzI3MzZlZTYuLmJjNGVm
YjRiNzJjZTZkN2ViY2NjZTM4ZWI2MDk5OTUzOTQwZTliNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKQEAgLTEzNywxMSArMTM3LDYgQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6
OnVwZGF0ZVNjaGVkdWxpbmdJbmZvKHNpemVfdCBxdWFudHVtRnJhbWVTaXplLAogICAgIHJldHVy
bjsKIH0KIAotdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0YXJ0KEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIHN0YXJ0KDAsIGVjKTsKLX0KLQogdm9pZCBBdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTYyLDExICsxNTcsNiBAQCB2b2lkIEF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIG1fcGxheWJhY2tTdGF0ZSA9IFNDSEVEVUxFRF9TVEFURTsKIH0KIAotdm9pZCBBdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgc3RvcCgw
LCBlYyk7Ci19Ci0KIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKGRvdWJsZSB3
aGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmgKaW5kZXggMmZjNjczMjIwM2ZhNzAyMmNiYjdlZjhlODcwZjk4MzI4
MTBiNTU3MC4uZWNlZGUzOGEwODk0MjZkMDljZGU2MWQ0MGNiN2Y3NDNiOWM2MTA1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZS5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoKICAgICBBdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUoQXVkaW9Db250ZXh0JiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICAv
LyBTY2hlZHVsaW5nLgotICAgIHZvaWQgc3RhcnQoRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQg
c3RvcChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc3RvcChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JO
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUu
aWRsCmluZGV4IGJkMDE1ZWEzMDVjNzUxOGE4OWY2ZjcxNTlkNjViZWQyN2QzMWYyOGUuLjY1ODQx
ZDgwYWNkNmM5ZGQ4ZTRlOGFjMDYyOThkMGU0YTAxOWRhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsCkBAIC00OCw4ICs0OCw4
IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gZnJlcXVlbmN5OyAvLyBpbiBI
ZXJ0egogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGRldHVuZTsgLy8gaW4gQ2Vu
dHMKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuKTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9u
YWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lk
IHN0YXJ0KG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbiA9IDApOworICAgIFtSYWlz
ZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4g
PSAwKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBSYWlzZXNFeGNlcHRp
b25dIHZvaWQgbm90ZU9uKHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7CiAgICAgW0NvbmRpdGlv
bmFsPUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBub3RlT2ZmKHVucmVz
dHJpY3RlZCBkb3VibGUgd2hlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDgwNjMzMDJhYTEyYjA0OGIxNmZmZTNmYjM4
NzNlODU4YzgwZTg1ZGMuLjk0Y2NmNWFiNWM5ZjdhZDlhYzk5YjYxYmU5ZGRhYjkyYjNjNTU1ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC0zMzg2LDggKzMzODYsNiBAQCBzdWIgQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJh
bWV0ZXIKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiRGljdGlvbmFyeSI7CiAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImFu
eSI7Ci0gICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmciOwotICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJ1bnJlc3RyaWN0ZWQgZG91YmxlIjsKICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyI7CiAKICAgICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOWE5ZGQ0MTZl
ZDMwY2NiODAxMjEwYmI0NTc0OTk1MzYwNTgyMjIzMC4uODM0MjAyMzE0NzVjZmZkZDNkMGEwZWNm
NThiZTY3ZjIwNmFiY2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTM5ODcsMTQgKzM5ODcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXJnKEV4ZQogICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAibWV0aG9kV2l0aE9wdGlvbmFsQXJnIik7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CiAgICAgYXV0
byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQg
PSBzdGF0ZS0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMCkgewotICAg
ICAgICBpbXBsLm1ldGhvZFdpdGhPcHRpb25hbEFyZygpOwotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIGludCBvcHQgPSB0b0ludDMy
KHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlv
bmFsPGludD4gb3B0ID0gc3RhdGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25h
bDxpbnQ+KCkgOiB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIE5v
cm1hbENvbnZlcnNpb24pOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGlt
cGwubWV0aG9kV2l0aE9wdGlvbmFsQXJnKG9wdCk7CkBAIC00MDI5LDE0ICs0MDIyLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICBpbnQgbm9uT3B0ID0gdG9JbnQzMihzdGF0ZSwgc3Rh
dGUtPmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3Rh
dGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLQotICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGF0ZS0+YXJndW1lbnRDb3Vu
dCgpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMSkgewotICAgICAgICBpbXBsLm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKG5vbk9wdCk7Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IG9wdCA9IHRvSW50
MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0
aW9uYWw8aW50PiBvcHQgPSBzdGF0ZS0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSA/IE9wdGlv
bmFsPGludD4oKSA6IHRvSW50MzIoc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSwg
Tm9ybWFsQ29udmVyc2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
aW1wbC5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhub25PcHQsIG9wdCk7
CkBAIC00MDU2LDIyICs0MDQyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBCiAgICAgaW50
IG5vbk9wdCA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVy
c2lvbik7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJn
c0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEp
IHsKLSAgICAgICAgaW1wbC5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFy
Z3Mobm9uT3B0KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKLSAgICB9Ci0KLSAgICBpbnQgb3B0MSA9IHRvSW50MzIoc3RhdGUsIHN0YXRlLT5hcmd1bWVu
dCgxKSwgTm9ybWFsQ29udmVyc2lvbik7CisgICAgT3B0aW9uYWw8aW50PiBvcHQxID0gc3RhdGUt
PmFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMyKHN0
YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOwogICAg
IGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGlmIChhcmdzQ291bnQgPD0gMikgewot
ICAgICAgICBpbXBsLm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhu
b25PcHQsIG9wdDEpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwotICAgIH0KLQotICAgIGludCBvcHQyID0gdG9JbnQzMihzdGF0ZSwgc3RhdGUtPmFyZ3Vt
ZW50KDIpLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBPcHRpb25hbDxpbnQ+IG9wdDIgPSBzdGF0
ZS0+YXJndW1lbnQoMikuaXNVbmRlZmluZWQoKSA/IE9wdGlvbmFsPGludD4oKSA6IHRvSW50MzIo
c3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgyKSwgTm9ybWFsQ29udmVyc2lvbik7CiAg
ICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoTm9uT3B0
aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mobm9uT3B0LCBvcHQxLCBvcHQyKTsKQEAgLTQ1ODgs
MTQgKzQ1NjIsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoRXhlY1N0YQogICAgIFRlc3RPYmoqIG9iakFy
ZyA9IEpTVGVzdE9iajo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKFVO
TElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFy
Z3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEpIHsKLSAgICAgICAgaW1wbC5v
dmVybG9hZGVkTWV0aG9kKG9iakFyZyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGxvbmdBcmcgPSB0b0ludDMyKHN0YXRl
LCBzdGF0ZS0+YXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGlu
dD4gbG9uZ0FyZyA9IHN0YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8gT3B0aW9uYWw8
aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBOb3Jt
YWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBs
Lm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKQEAgLTQ4NDksMTQgKzQ4MTYsNyBA
QCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpbwogICAgIFRlc3RPYmoqIG9iakFyZyA9IEpTVGVzdE9i
ajo6dG9XcmFwcGVkKHN0YXRlLT5hcmd1bWVudCgwKSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRl
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQo
KTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDEpIHsKLSAgICAgICAgaW1wbC5vdmVybG9hZGVkTWV0
aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKG9iakFyZyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGxvbmdBcmcgPSB0b0lu
dDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMSksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9w
dGlvbmFsPGludD4gbG9uZ0FyZyA9IHN0YXRlLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpID8g
T3B0aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIob2JqQXJnLCBs
b25nQXJnKTsKQEAgLTQ4ODUsMTQgKzQ4NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZChFeGVjU3RhdGUqCiAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEV4ZWNTdGF0ZSogc3RhdGUpCiB7Ci0KLSAgICBzaXpl
X3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50
IDw9IDApIHsKLSAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihUZXN0T2JqOjpjbGFz
c01ldGhvZFdpdGhPcHRpb25hbCgpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwotICAgIH0KLQotICAgIGludCBhcmcgPSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJn
dW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOworICAgIE9wdGlvbmFsPGludD4gYXJnID0gc3Rh
dGUtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxpbnQ+KCkgOiB0b0ludDMy
KHN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwog
ICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoVGVzdE9iajo6Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoYXJnKSk7CkBAIC01NDQ1LDE0
ICs1Mzk4LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3AKICAgICAgICAgcmV0dXJuIHRocm93
VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRo
T3B0aW9uYWxJbnRBcmd1bWVudCIpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlz
LT53cmFwcGVkKCk7Ci0KLSAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RhdGUtPmFyZ3VtZW50Q291
bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDApIHsKLSAgICAgICAgaW1wbC50ZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQoRGVmZXJyZWRXcmFwcGVyKHN0YXRlLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgcHJvbWlzZURlZmVycmVkKSk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQotCi0gICAgaW50IGEg
PSB0b0ludDMyKHN0YXRlLCBzdGF0ZS0+YXJndW1lbnQoMCksIE5vcm1hbENvbnZlcnNpb24pOwor
ICAgIE9wdGlvbmFsPGludD4gYSA9IHN0YXRlLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpID8g
T3B0aW9uYWw8aW50PigpIDogdG9JbnQzMihzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLnRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudChhLCBE
ZWZlcnJlZFdyYXBwZXIoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBwcm9taXNl
RGVmZXJyZWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGltZXJz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2luZG93VGltZXJzLmlkbAppbmRleCBjNThkNGNi
OWJkOWE4YjJlZmUxM2VlODIxZTc2ZjFkZmQzMzZlNThiLi41N2Y1YjYxNWM0MzZkMmNlNzc4NzFk
MGFjYWNmNWVkNjQ1MTliMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dpbmRv
d1RpbWVycy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaW5kb3dUaW1lcnMuaWRsCkBA
IC0yOCw5ICsyOCw5IEBACiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBX
aW5kb3dUaW1lcnMgewotICAgIFtDdXN0b21dIGxvbmcgc2V0VGltZW91dChhbnkgaGFuZGxlciwg
b3B0aW9uYWwgbG9uZyB0aW1lb3V0KTsKKyAgICBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoYW55
IGhhbmRsZXIsIG9wdGlvbmFsIGxvbmcgdGltZW91dCA9IDApOwogICAgIHZvaWQgY2xlYXJUaW1l
b3V0KG9wdGlvbmFsIGxvbmcgaGFuZGxlID0gMCk7Ci0gICAgW0N1c3RvbV0gbG9uZyBzZXRJbnRl
cnZhbChhbnkgaGFuZGxlciwgb3B0aW9uYWwgbG9uZyB0aW1lb3V0KTsKKyAgICBbQ3VzdG9tXSBs
b25nIHNldEludGVydmFsKGFueSBoYW5kbGVyLCBvcHRpb25hbCBsb25nIHRpbWVvdXQgPSAwKTsK
ICAgICB2b2lkIGNsZWFySW50ZXJ2YWwob3B0aW9uYWwgbG9uZyBoYW5kbGUgPSAwKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUzOGQxNGQzMzIxM2QxNzk4NzJlZDEy
ZWEwOTg0NGQxYzNmY2M2NDIuLmYzYWZmMmZmOTcxODdjOTllYWUyYWU5ZDk3MmU1N2YzNzQ0NzM2
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTYxLDcgKzE2MSw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFZpZXdQb3NpdGlvbihpbnQgeCwgaW50IHksIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFZpZXdCYXNlQmFja2dyb3VuZENvbG9yKGNvbnN0IFN0
cmluZyYgY29sb3JWYWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdm9pZCBzZXRQYWdpbmF0
aW9uKGNvbnN0IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0
UGFnaW5hdGlvbihtb2RlLCBnYXAsIDAsIGVjKTsgfQogICAgIHZvaWQgc2V0UGFnaW5hdGlvbihj
b25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIGludCBwYWdlTGVuZ3RoLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uTGluZUdyaWRFbmFibGVkKGJvb2wsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBTdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGZsb2F0IGRldmlj
ZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWls
YWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggM2Q5NDc3NTE5MDI4ZGU5N2RmNDEzYWRhOTUy
N2MwYmQxOWY4MmZhNi4uMzJhZGIxYzAxM2FhZTg3NDA0MWQ0YTE3NTZkMDVlMDM0MDI3N2U0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTQ0LDcgKzE0NCw3IEBAIGVu
dW0gQXV0b0ZpbGxCdXR0b25UeXBlIHsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0
Vmlld0Jhc2VCYWNrZ3JvdW5kQ29sb3IoRE9NU3RyaW5nIGNvbG9yVmFsdWUpOwogCi0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRQYWdpbmF0aW9uKERPTVN0cmluZyBtb2RlLCBsb25nIGdh
cCwgb3B0aW9uYWwgbG9uZyBwYWdlTGVuZ3RoKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lk
IHNldFBhZ2luYXRpb24oRE9NU3RyaW5nIG1vZGUsIGxvbmcgZ2FwLCBvcHRpb25hbCBsb25nIHBh
Z2VMZW5ndGggPSAwKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldFBhZ2luYXRpb25M
aW5lR3JpZEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25d
IERPTVN0cmluZyBjb25maWd1cmF0aW9uRm9yVmlld3BvcnQodW5yZXN0cmljdGVkIGZsb2F0IGRl
dmljZVBpeGVsUmF0aW8sCkBAIC0yNzMsNyArMjczLDcgQEAgZW51bSBBdXRvRmlsbEJ1dHRvblR5
cGUgewogICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoRWxlbWVudCBlbGVtZW50KTsKICAgICBs
b25nIHBhZ2VOdW1iZXIoRWxlbWVudCBlbGVtZW50LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxv
YXQgcGFnZVdpZHRoID0gODAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgcGFnZUhlaWdo
dCA9IDYwMCk7CiAgICAgRE9NU3RyaW5nW10gc2hvcnRjdXRJY29uVVJMcygpOwotICAgIGxvbmcg
bnVtYmVyT2ZQYWdlcyhvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VXaWR0aEluUGl4
ZWxzLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscyk7Cisg
ICAgbG9uZyBudW1iZXJPZlBhZ2VzKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZVdp
ZHRoSW5QaXhlbHMgPSA4MDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgcGFnZUhlaWdo
dEluUGl4ZWxzID0gNjAwKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBET01TdHJpbmcgcGFnZVBy
b3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGxvbmcgcGFnZU51bWJlcik7CiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGxvbmcg
cGFnZUluZGV4LCBsb25nIHdpZHRoLCBsb25nIGhlaWdodCwgbG9uZyBtYXJnaW5Ub3AsIGxvbmcg
bWFyZ2luUmlnaHQsIGxvbmcgbWFyZ2luQm90dG9tLCBsb25nIG1hcmdpbkxlZnQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>