<?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>164643</bug_id>
          
          <creation_ts>2016-11-11 10:56:36 -0800</creation_ts>
          <short_desc>[MediaStream] defer resolution of getUserMedia promise made in a background tab</short_desc>
          <delta_ts>2016-11-11 14:57:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>thiago.lacerda</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250290</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-11 10:56:36 -0800</bug_when>
    <thetext>Don&apos;t prompt the user for device access or start media streams when a tab is in the background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250291</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-11 10:57:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/29048317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250341</commentid>
    <comment_count>2</comment_count>
      <attachid>294519</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-11 12:39:50 -0800</bug_when>
    <thetext>Created attachment 294519
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250365</commentid>
    <comment_count>3</comment_count>
      <attachid>294519</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-11 13:11:50 -0800</bug_when>
    <thetext>Comment on attachment 294519
Proposed patch.

I&apos;m not sure if this is the right way to do whatever it is you&apos;re doing, but the code seems fine. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250382</commentid>
    <comment_count>4</comment_count>
      <attachid>294519</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 13:48:28 -0800</bug_when>
    <thetext>Comment on attachment 294519
Proposed patch.

Clearing flags on attachment: 294519

Committed r208606: &lt;http://trac.webkit.org/changeset/208606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250383</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 13:48:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250405</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-11-11 14:16:35 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 294519 [details]
&gt; Proposed patch.
&gt; 
&gt; Clearing flags on attachment: 294519
&gt; 
&gt; Committed r208606: &lt;http://trac.webkit.org/changeset/208606&gt;

This change appears to have broken the Windows build:

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/81884</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250430</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-11-11 14:57:00 -0800</bug_when>
    <thetext>Plus r208612 to fix the Windows build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294519</attachid>
            <date>2016-11-11 12:39:50 -0800</date>
            <delta_ts>2016-11-11 13:48:28 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>background_tab_patch.txt</filename>
            <type>text/plain</type>
            <size>23994</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTExLTExICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZGVmZXIgcmVzb2x1dGlvbiBvZiBnZXRVc2VyTWVkaWEgcHJvbWlzZSBtYWRlIGluIGEgYmFja2dy
b3VuZCB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NDY0MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkwNDgzMTc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1iYWNrZ3JvdW5kLXRhYi5odG1sCisKKyAgICAgICAgRG8gbm90IHN0
YXJ0IHByb2R1Y2luZyBkYXRhIHdoZW4gdGhlIGRvY3VtZW50IGRvZXMgbm90IGFsbG93IG1lZGlh
CisgICAgICAgIHRvIHN0YXJ0IHBsYXlpbmcuIEluc3RlYWQsIHJlZ2lzdGVyIHdpdGggdGhlIGRv
Y3VtZW50IGZvciBhIGNhbGxiYWNrIAorICAgICAgICB3aGVuIHBsYXliYWNrIGlzIGFsbG93ZWQg
YW5kIHN0YXJ0IHRoZW4uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjptZWRpYUNhblN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjptZWRpYUNh
blN0YXJ0KTogRGVhbCB3aXRoIEFQSSBjaGFuZ2UuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaDoKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNhblN0YXJ0KTogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9N
ZWRpYUNhblN0YXJ0TGlzdGVuZXIuaDoKKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjp0YWtlQW55TWVkaWFDYW5TdGFydExpc3RlbmVyKTogUmV0dXJu
IHRoZSBsaXN0ZW5lciBhbmQgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRD
YW5TdGFydE1lZGlhKTogUGFzcyB0aGUgZG9jdW1lbnQgdG8gdGhlIGxpc3RlbmVyLgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOgorCiAyMDE2LTEwLTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgc2hvdWxk
bid0IGtub3cgaG93IHRvIHJlbGVhc2UgV2ViQ29yZSBtZW1vcnkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lv
biAyMDg1MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiwgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja0V2ZW50LmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgpAQCAtMTExLDggKzExMiwxMSBAQCBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkK
ICAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKICAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVy
KHRoaXMpOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQor
ICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKSB7CiAgICAgICAg
IGRvY3VtZW50LT5yZW1vdmVBdWRpb1Byb2R1Y2VyKHRoaXMpOworICAgICAgICBpZiAobV9pc1dh
aXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpCisgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3ZlTWVk
aWFDYW5TdGFydExpc3RlbmVyKHRoaXMpOworICAgIH0KIH0KIAogUmVmUHRyPE1lZGlhU3RyZWFt
PiBNZWRpYVN0cmVhbTo6Y2xvbmUoKQpAQCAtMjQ3LDYgKzI1MSw0MSBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjpzZXRJc0FjdGl2ZShib29sIGFjdGl2CiAgICAgc3RhdHVzRGlkQ2hhbmdlKCk7CiB9CiAK
K3ZvaWQgTWVkaWFTdHJlYW06Om1lZGlhQ2FuU3RhcnQoRG9jdW1lbnQmIGRvY3VtZW50KQorewor
ICAgIEFTU0VSVF9VTlVTRUQoZG9jdW1lbnQsICZkb2N1bWVudCA9PSB0aGlzLT5kb2N1bWVudCgp
KTsKKyAgICBBU1NFUlQobV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpOworICAgIGlmICht
X2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCkgeworICAgICAgICBtX2lzV2FpdGluZ1VudGls
TWVkaWFDYW5TdGFydCA9IGZhbHNlOworICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW06OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7CisgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50
IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB3ZSBj
YW4ndCBzdGFydCBhIGxvYWQgcmlnaHQgYXdheSwgc3RhcnQgaXQgbGF0ZXIuCisgICAgaWYgKCFk
b2N1bWVudC0+cGFnZSgpLT5jYW5TdGFydE1lZGlhKCkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW06OnN0YXJ0UHJvZHVjaW5nRGF0YSglcCkgLSBub3QgYWxsb3dlZCB0byBzdGFy
dCBpbiBiYWNrZ3JvdW5kLCB3YWl0aW5nIiwgdGhpcyk7CisgICAgICAgIGlmIChtX2lzV2FpdGlu
Z1VudGlsTWVkaWFDYW5TdGFydCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2lz
V2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCA9IHRydWU7CisgICAgICAgIGRvY3VtZW50LT5hZGRN
ZWRpYUNhblN0YXJ0TGlzdGVuZXIodGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3ByaXZhdGUtPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
OjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgbV9wcml2YXRlLT5zdG9wUHJvZHVjaW5nRGF0
YSgpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtOjpwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpCiB7
CiAgICAgaWYgKCFtX2lzQWN0aXZlKQpAQCAtMjYyLDkgKzMwMSw5IEBAIHZvaWQgTWVkaWFTdHJl
YW06OnBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmcKIAogICAgIG1fZXh0ZXJuYWxseU11dGVkID0gcGFn
ZU11dGVkOwogICAgIGlmIChwYWdlTXV0ZWQpCi0gICAgICAgIG1fcHJpdmF0ZS0+c3RvcFByb2R1
Y2luZ0RhdGEoKTsKKyAgICAgICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fcHJpdmF0ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgICAgIHN0YXJ0UHJvZHVj
aW5nRGF0YSgpOwogfQogCiBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJl
YW06Om1lZGlhU3RhdGUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAkocmV2aXNpb24gMjA4NTM1KQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIK
KyNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1
Y2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW1UcmFjay5oIgpAQCAtNDcsNyArNDgsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEb2N1bWVudDsKIAotY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVn
aXN0cmFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHByaXZhdGUgTWVkaWFQcm9kdWNl
ciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+IHsKK2NsYXNzIE1lZGlhU3RyZWFtIGZp
bmFsCisgICAgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUKKyAgICAsIHB1YmxpYyBFdmVudFRhcmdl
dFdpdGhJbmxpbmVEYXRhCisgICAgLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIK
KyAgICAsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgorICAgICwgcHVibGljIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICAsIHByaXZhdGUgTWVkaWFQcm9kdWNlcgor
ICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIKKyAgICAsIHB1YmxpYyBSZWZDb3Vu
dGVkPE1lZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1
YmxpYzoKQEAgLTc4LDYgKzg3LDkgQEAgcHVibGljOgogCiAgICAgTWVkaWFTdHJlYW1Qcml2YXRl
KiBwcml2YXRlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmdldCgpOyB9CiAKKyAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRU
YXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVhbUV2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC0xMTgsNiArMTMwLDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgZmluYWw7CiAgICAg
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBmaW5hbDsK
IAorICAgIC8vIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgorICAgIHZvaWQgbWVkaWFDYW5TdGFydChE
b2N1bWVudCYpIGZpbmFsOworCiAgICAgYm9vbCBpbnRlcm5hbEFkZFRyYWNrKFJlZjxNZWRpYVN0
cmVhbVRyYWNrPiYmLCBTdHJlYW1Nb2RpZmllcik7CiAgICAgYm9vbCBpbnRlcm5hbFJlbW92ZVRy
YWNrKGNvbnN0IFN0cmluZyYsIFN0cmVhbU1vZGlmaWVyKTsKIApAQCAtMTQyLDYgKzE1Nyw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNN
dXRlZCB7IHRydWUgfTsKICAgICBib29sIG1fZXh0ZXJuYWxseU11dGVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faXNXYWl0aW5nVW50aWxNZWRpYUNhblN0YXJ0IHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHJldmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTU3LDggKzk1Nyw5IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdGFydFJlbmRlcmluZygpCiAg
ICAgc2V0U3RhdGUoU3RhdGU6OlJ1bm5pbmcpOwogfQogCi12b2lkIEF1ZGlvQ29udGV4dDo6bWVk
aWFDYW5TdGFydCgpCit2b2lkIEF1ZGlvQ29udGV4dDo6bWVkaWFDYW5TdGFydChEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CisgICAgQVNTRVJUX1VOVVNFRChkb2N1bWVudCwgJmRvY3VtZW50ID09IHRo
aXMtPmRvY3VtZW50KCkpOwogICAgIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQXVkaW9Db250
ZXh0OjpSZXF1aXJlUGFnZUNvbnNlbnRGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24pOwogICAgIG1h
eVJlc3VtZVBsYXliYWNrKHRydWUpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCShyZXZpc2lvbiAyMDg1MzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yODQsNyArMjg0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVOb2RlRGVsZXRp
b24oKTsKIAotICAgIHZvaWQgbWVkaWFDYW5TdGFydCgpIG92ZXJyaWRlOworICAgIHZvaWQgbWVk
aWFDYW5TdGFydChEb2N1bWVudCYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVkaWFQcm9kdWNlcgog
ICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtZWRpYVN0YXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NDksOCArNTY0OSw5IEBAIHVuc2lnbmVkIEhUTUxNZWRp
YUVsZW1lbnQ6OndlYmtpdFZpZGVvRGUKIH0KICNlbmRpZgogCi12b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhQ2FuU3RhcnQoKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNhblN0YXJ0
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKGRvY3VtZW50LCAmZG9j
dW1lbnQgPT0gJnRoaXMtPmRvY3VtZW50KCkpOwogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhQ2FuU3RhcnQoJXApIC0gbV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQg
PSAlcywgbV9wYXVzZWRJbnRlcm5hbCA9ICVzIiwKICAgICAgICAgdGhpcywgYm9vbFN0cmluZyht
X2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCksIGJvb2xTdHJpbmcobV9wYXVzZWRJbnRlcm5h
bCkgKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlz
aW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MTgsNyArNzE4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0
UGxheWJhY2tSYXRlSW50ZXJuYWwoZG91YmxlKTsKIAotICAgIHZvaWQgbWVkaWFDYW5TdGFydCgp
IG92ZXJyaWRlOworICAgIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpIGZpbmFsOwogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGVkVGltZSgpIGNvbnN0OwogICAgIHZvaWQgcmVmcmVzaENh
Y2hlZFRpbWUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNhblN0
YXJ0TGlzdGVuZXIuaAkocmV2aXNpb24gMjA4NTM1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9N
ZWRpYUNhblN0YXJ0TGlzdGVuZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKKwogY2xhc3MgTWVkaWFD
YW5TdGFydExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFy
dCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFydChEb2N1bWVudCYpID0gMDsK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5NZWRpYUNhblN0YXJ0TGlzdGVuZXIoKSB7IH0KIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NSwxNSArNTU1LDE1IEBAIGJv
b2wgUGFnZTo6c2hvd0FsbFBsdWdpbnMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
aW5saW5lIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciogUGFnZTo6dGFrZUFueU1lZGlhQ2FuU3RhcnRM
aXN0ZW5lcigpCitpbmxpbmUgT3B0aW9uYWw8c3RkOjpwYWlyPE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ciYsIERvY3VtZW50Jj4+ICBQYWdlOjp0YWtlQW55TWVkaWFDYW5TdGFydExpc3RlbmVyKCkKIHsK
ICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICBpZiAoIWZyYW1lLT5kb2N1bWVu
dCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChNZWRpYUNhblN0YXJ0TGlz
dGVuZXIqIGxpc3RlbmVyID0gZnJhbWUtPmRvY3VtZW50KCktPnRha2VBbnlNZWRpYUNhblN0YXJ0
TGlzdGVuZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcjsKKyAgICAgICAgICAgIHJl
dHVybiB7IHsgKmxpc3RlbmVyLCAqZnJhbWUtPmRvY3VtZW50KCkgfSB9OwogICAgIH0KLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAogdm9pZCBQYWdlOjpzZXRDYW5TdGFy
dE1lZGlhKGJvb2wgY2FuU3RhcnRNZWRpYSkKQEAgLTU3NCwxMCArNTc0LDEwIEBAIHZvaWQgUGFn
ZTo6c2V0Q2FuU3RhcnRNZWRpYShib29sIGNhblN0YXIKICAgICBtX2NhblN0YXJ0TWVkaWEgPSBj
YW5TdGFydE1lZGlhOwogCiAgICAgd2hpbGUgKG1fY2FuU3RhcnRNZWRpYSkgewotICAgICAgICBN
ZWRpYUNhblN0YXJ0TGlzdGVuZXIqIGxpc3RlbmVyID0gdGFrZUFueU1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcigpOworICAgICAgICBhdXRvIGxpc3RlbmVyID0gdGFrZUFueU1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcigpOwogICAgICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGxpc3RlbmVyLT5tZWRpYUNhblN0YXJ0KCk7CisgICAgICAgIGxpc3RlbmVyLT5maXJzdC5t
ZWRpYUNhblN0YXJ0KGxpc3RlbmVyLT5zZWNvbmQpOwogICAgIH0KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgJKHJldmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NDksNyArNTQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVk
IGZpbmRNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywgdW5zaWduZWQg
bWF4TWF0Y2hDb3VudCwgU2hvdWxkSGlnaGxpZ2h0TWF0Y2hlcywgU2hvdWxkTWFya01hdGNoZXMp
OwogCi0gICAgTWVkaWFDYW5TdGFydExpc3RlbmVyKiB0YWtlQW55TWVkaWFDYW5TdGFydExpc3Rl
bmVyKCk7CisgICAgT3B0aW9uYWw8c3RkOjpwYWlyPE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciYsIERv
Y3VtZW50Jj4+IHRha2VBbnlNZWRpYUNhblN0YXJ0TGlzdGVuZXIoKTsKIAogICAgIFZlY3RvcjxS
ZWY8UGx1Z2luVmlld0Jhc2U+PiBwbHVnaW5WaWV3cygpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMDg1OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxNi0xMS0xMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIGRlZmVyIHJlc29sdXRpb24gb2Yg
Z2V0VXNlck1lZGlhIHByb21pc2UgbWFkZSBpbiBhIGJhY2tncm91bmQgdGFiCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2NDMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI5MDQ4MzE3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERvIG5vdCBhc2sgZm9yIHVzZXIgZm9yIGFjY2VzcyB0byBjYXB0dXJl
IGRldmljZXMgd2hlbiB0aGUgZG9jdW1lbnQgZG9lcyBub3QKKyAgICAgICAgYWxsb3cgbWVkaWEg
dG8gcGxheSwgd2FpdCB1bnRpbCBwbGF5YmFjayBpcyBhbGxvd2VkLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0
YXJ0VXNlck1lZGlhUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6c2VuZFVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhQ2FuU3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmdyYW50VXNl
ck1lZGlhRGV2aWNlc1NhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVk
aWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5WaWV3OjptZWRpYUNhblN0YXJ0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5oOgorCiAyMDE2LTExLTExICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBTdXBwb3J0IHdpZGUgZ2FtdXQgZm9yIERyYWcg
SW1hZ2UgVUkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAJKHJldmlzaW9uIDIwODUzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTksNiArNTksMjcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlcXVlc3QuZG9jdW1lbnQo
KTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogbnVs
bHB0cjsKIAorICAgIGlmICghZnJhbWUgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAg
cmVxdWVzdC5kZW55KFVzZXJNZWRpYVJlcXVlc3Q6Ok90aGVyRmFpbHVyZSwgZW1wdHlTdHJpbmco
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+
Y2FuU3RhcnRNZWRpYSgpKSB7CisgICAgICAgIHNlbmRVc2VyTWVkaWFSZXF1ZXN0KHJlcXVlc3Qp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgcGVuZGluZ1JlcXVlc3RzID0g
bV9ibG9ja2VkUmVxdWVzdHMuYWRkKGRvY3VtZW50LCBWZWN0b3I8UmVmUHRyPFVzZXJNZWRpYVJl
cXVlc3Q+PigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgaWYgKHBlbmRpbmdSZXF1ZXN0cy5pc0Vt
cHR5KCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIodGhpcyk7
CisgICAgcGVuZGluZ1JlcXVlc3RzLmFwcGVuZCgmcmVxdWVzdCk7Cit9CisKK3ZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzZW5kVXNlck1lZGlhUmVxdWVzdChVc2VyTWVk
aWFSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlcXVlc3Qu
ZG9jdW1lbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5mcmFt
ZSgpIDogbnVsbHB0cjsKKwogICAgIGlmICghZnJhbWUpIHsKICAgICAgICAgcmVxdWVzdC5kZW55
KFVzZXJNZWRpYVJlcXVlc3Q6Ok90aGVyRmFpbHVyZSwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTgyLDYgKzEwMywzOCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6CiAgICAgaWYgKCFyZXF1ZXN0SUQpCiAgICAgICAgIHJldHVybjsKICAgICBt
X2lkVG9Vc2VyTWVkaWFSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworICAgIHJlbW92ZU1l
ZGlhUmVxdWVzdEZyb21NYXBzKHJlcXVlc3QpOworfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFDYW5TdGFydChEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgYXV0byBwZW5kaW5nUmVxdWVzdHMgPSBtX2Jsb2NrZWRSZXF1ZXN0cy50YWtlKCZkb2N1bWVu
dCk7CisgICAgd2hpbGUgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGlm
ICghZG9jdW1lbnQucGFnZSgpLT5jYW5TdGFydE1lZGlhKCkpIHsKKyAgICAgICAgICAgIG1fYmxv
Y2tlZFJlcXVlc3RzLmFkZCgmZG9jdW1lbnQsIHBlbmRpbmdSZXF1ZXN0cyk7CisgICAgICAgICAg
ICBkb2N1bWVudC5hZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHNlbmRVc2VyTWVkaWFSZXF1ZXN0KCpwZW5kaW5n
UmVxdWVzdHMudGFrZUxhc3QoKSk7CisgICAgfQorfQorCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlTWVkaWFSZXF1ZXN0RnJvbU1hcHMoVXNlck1lZGlhUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0cyA9IG1fYmxvY2tlZFJl
cXVlc3RzLnRha2UocmVxdWVzdC5kb2N1bWVudCgpKTsKKyAgICBmb3IgKGF1dG8mIHBlbmRpbmdS
ZXF1ZXN0IDogcGVuZGluZ1JlcXVlc3RzKSB7CisgICAgICAgIGlmICgmcmVxdWVzdCAhPSBwZW5k
aW5nUmVxdWVzdC5nZXQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChw
ZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVxdWVzdC5kb2N1bWVudCgp
LT5yZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIodGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG1fYmxvY2tlZFJlcXVlc3RzLmFkZChyZXF1ZXN0LmRvY3VtZW50KCksIHBlbmRpbmdS
ZXF1ZXN0cyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIG1fdXNlck1lZGlhUmVxdWVz
dFRvSURNYXAucmVtb3ZlKCZyZXF1ZXN0KTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QgcmVxdWVz
dElELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2
aWNlVUlEKQpAQCAtODksNyArMTQyLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OgogICAgIGF1dG8gcmVxdWVzdCA9IG1faWRUb1VzZXJNZWRpYVJlcXVlc3RNYXAu
dGFrZShyZXF1ZXN0SUQpOwogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fdXNlck1lZGlhUmVxdWVzdFRvSURNYXAucmVtb3ZlKHJlcXVlc3QpOworICAgIHJlbW92ZU1l
ZGlhUmVxdWVzdEZyb21NYXBzKCpyZXF1ZXN0KTsKIAogICAgIHJlcXVlc3QtPmFsbG93KGF1ZGlv
RGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCk7CiB9CkBAIC05OSw3ICsxNTIsNyBAQCB2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6CiAgICAgYXV0byByZXF1ZXN0ID0gbV9p
ZFRvVXNlck1lZGlhUmVxdWVzdE1hcC50YWtlKHJlcXVlc3RJRCk7CiAgICAgaWYgKCFyZXF1ZXN0
KQogICAgICAgICByZXR1cm47Ci0gICAgbV91c2VyTWVkaWFSZXF1ZXN0VG9JRE1hcC5yZW1vdmUo
cmVxdWVzdCk7CisgICAgcmVtb3ZlTWVkaWFSZXF1ZXN0RnJvbU1hcHMoKnJlcXVlc3QpOwogCiAg
ICAgcmVxdWVzdC0+ZGVueShyZWFzb24sIGludmFsaWRDb25zdHJhaW50KTsKIH0KQEAgLTE0OSw3
ICsyMDIsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6CiAgICAg
QVNTRVJUKG1fdXNlck1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuc2l6ZSgpIDw9IDIpOwog
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlcy5zaXpl
KCk7IGkrKykgewotICAgICAgICBpZiAoUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGV4dGVuc2lv
biA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlc1tpXSkp
IHsKKyAgICAgICAgaWYgKGF1dG8gZXh0ZW5zaW9uID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
KHNhbmRib3hFeHRlbnNpb25IYW5kbGVzW2ldKSkgewogICAgICAgICAgICAgZXh0ZW5zaW9uLT5j
b25zdW1lKCk7CiAgICAgICAgICAgICBtX3VzZXJNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25z
LmFwcGVuZChleHRlbnNpb24ucmVsZWFzZSgpKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCShyZXZpc2lvbiAyMDg1MzUp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFEZXZpY2Vz
RW51bWVyYXRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQu
aD4KQEAgLTM1LDcgKzM2LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7
CiAKLWNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7CitjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIKKyAgICA6IHByaXZhdGUgV2ViQ29yZTo6TWVk
aWFDYW5TdGFydExpc3RlbmVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKTsKQEAgLTUyLDYgKzU0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGdy
YW50VXNlck1lZGlhRGV2aWNlc1NhbmRib3hFeHRlbnNpb24oY29uc3QgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlQXJyYXkmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNlbmRVc2VyTWVkaWFSZXF1
ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3QmKTsKKworICAgIC8vIFdlYkNvcmU6Ok1lZGlh
Q2FuU3RhcnRMaXN0ZW5lcgorICAgIHZvaWQgbWVkaWFDYW5TdGFydChXZWJDb3JlOjpEb2N1bWVu
dCYpIG92ZXJyaWRlOworCisgICAgdm9pZCByZW1vdmVNZWRpYVJlcXVlc3RGcm9tTWFwcyhXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0Jik7CisKICAgICBXZWJQYWdlJiBtX3BhZ2U7CiAKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4+IG1faWRU
b1VzZXJNZWRpYVJlcXVlc3RNYXA7CkBAIC02MSw2ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgSGFz
aE1hcDxSZWZQdHI8V2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0PiwgdWlu
dDY0X3Q+IG1fbWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0VG9JRE1hcDsKIAogICAgIFZl
Y3RvcjxSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4+IG1fdXNlck1lZGlhRGV2aWNlU2FuZGJveEV4
dGVuc2lvbnM7CisKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudD4sIFZlY3Rv
cjxSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4+PiBtX2Jsb2NrZWRSZXF1ZXN0czsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkocmV2aXNpb24gMjA4NTM1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzcxLDcgKzEzNzEsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEZvY3VzKGJv
b2wgaGFzRm9jdXMpCiAgICAgbV9wbHVnaW4tPnNldEZvY3VzKGhhc0ZvY3VzKTsKIH0KIAotdm9p
ZCBQbHVnaW5WaWV3OjptZWRpYUNhblN0YXJ0KCkKK3ZvaWQgUGx1Z2luVmlldzo6bWVkaWFDYW5T
dGFydChXZWJDb3JlOjpEb2N1bWVudCYpCiB7CiAgICAgQVNTRVJUKG1faXNXYWl0aW5nVW50aWxN
ZWRpYUNhblN0YXJ0KTsKICAgICBtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCA9IGZhbHNl
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5oCShyZXZpc2lvbiAyMDg1MzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNyArMTg0LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNsaXBSZWN0Q2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29y
ZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyCi0gICAgdm9pZCBtZWRpYUNhblN0YXJ0KCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBtZWRpYUNhblN0YXJ0KFdlYkNvcmU6OkRvY3VtZW50Jikgb3ZlcnJpZGU7
CiAKICAgICAvLyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyCiAgICAgTWVkaWFQcm9kdWNlcjo6TWVk
aWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BsdWdp
bklzUGxheWluZ0F1ZGlvID8gTWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8gOiBNZWRpYVBy
b2R1Y2VyOjpJc05vdFBsYXlpbmc7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODUzNSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2
LTExLTExICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAg
IFtNZWRpYVN0cmVhbV0gZGVmZXIgcmVzb2x1dGlvbiBvZiBnZXRVc2VyTWVkaWEgcHJvbWlzZSBt
YWRlIGluIGEgYmFja2dyb3VuZCB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDY0MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkwNDgzMTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWJhY2tncm91bmQtdGFiLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1iYWNrZ3Jv
dW5kLXRhYi5odG1sOiBBZGRlZC4KKwogMjAxNi0xMS0wOCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdyaWRdIEZpeCBmciB0cmFja3Mg
c2l6aW5nIHVuZGVyIG1pbnxtYXgtc2l6ZSBjb25zdHJhaW50cwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1iYWNrZ3JvdW5kLXRhYi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1t
ZWRpYS1iYWNrZ3JvdW5kLXRhYi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXQtdXNlci1tZWRpYS1iYWNrZ3JvdW5kLXRhYi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorVGVzdHMgZ2V0VXNlck1l
ZGlhIGNhbGxlZCBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCit0YWJTdGF0ZSA9ICdiYWNrZ3JvdW5kJworUEFTUyBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtKS5jYXRj
aChmYWlsKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKGdvdFN0cmVhbSkuY2F0Y2goZmFp
bCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbihnb3RTdHJlYW0pLmNhdGNoKGZhaWwpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtKS5jYXRjaChmYWlsKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KKworKiogdGltZXIgZmlyZWQgKioKK1BBU1MgdGFiU3RhdGUgaXMg
J2JhY2tncm91bmQnCit0YWJTdGF0ZSA9ICdmb3JlZ3JvdW5kJworCisqKiBnZXRVc2VyTWVkaWEo
KSBwcm9taXNlIHJlc29sdmVkICoqCitQQVNTIHRhYlN0YXRlIGlzICdmb3JlZ3JvdW5kJworUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQorCisqKiBnZXRVc2VyTWVkaWEo
KSBwcm9taXNlIHJlc29sdmVkICoqCitQQVNTIHRhYlN0YXRlIGlzICdmb3JlZ3JvdW5kJworUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQorCisqKiBnZXRVc2VyTWVkaWEo
KSBwcm9taXNlIHJlc29sdmVkICoqCitQQVNTIHRhYlN0YXRlIGlzICdmb3JlZ3JvdW5kJworUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQorCisqKiBnZXRVc2VyTWVkaWEo
KSBwcm9taXNlIHJlc29sdmVkICoqCitQQVNTIHRhYlN0YXRlIGlzICdmb3JlZ3JvdW5kJworUEFT
UyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0LXVzZXItbWVkaWEtYmFja2dyb3VuZC10YWIuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldC11c2VyLW1lZGlhLWJhY2tncm91
bmQtdGFiLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1iYWNrZ3JvdW5kLXRhYi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgbGV0IHRhYlN0YXRlOworICAgICAgICAgICAg
bGV0IHN0cmVhbUNvdW50ID0gNDsKKyAgICAgICAgICAgIGxldCBzdHJlYW1zID0gMDsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtKHMpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgZGVidWcoJzxicj4qKiBnZXRVc2VyTWVkaWEoKSBwcm9taXNlIHJlc29sdmVkICoqJykK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgndGFiU3RhdGUnLCAiJ2ZvcmVncm91bmQnIik7Cisg
ICAgICAgICAgICAgICAgc3RyZWFtID0gczsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBpZiAo
KytzdHJlYW1zID09IHN0cmVhbUNvdW50KQorICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbChlcnJvcikK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGBnZXRVc2VyTWVkaWEo
KSBmYWlsZWQsIGVycm9yID0gJHtlcnJvcn1gKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tTdGF0ZSgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoJzxicj4qKiB0aW1lciBmaXJl
ZCAqKicpCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3RhYlN0YXRlJywgIidiYWNrZ3JvdW5k
JyIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coYHRhYlN0YXRlID0gJ2ZvcmVncm91bmQn
YCk7CisgICAgICAgICAgICAgICAgaWYgKGludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldENhblN0YXJ0TWVkaWEodHJ1ZSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgZ2V0VXNlck1lZGlhIGNhbGxlZCBmcm9tIGEgYmFj
a2dyb3VuZCB0aHJlYWQuIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZyhgdGFiU3RhdGUg
PSAnYmFja2dyb3VuZCdgKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENhblN0YXJ0TWVk
aWEoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBl
cm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3RyZWFtQ291bnQ7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkTm90VGhyb3coJ25hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlfSkudGhlbihnb3RTdHJlYW0pLmNhdGNoKGZhaWwpJyk7CisgICAgICAgICAgICAgICAgc2V0
VGltZW91dChjaGVja1N0YXRlLCAyMDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>