<?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>170459</bug_id>
          
          <creation_ts>2017-04-04 11:08:17 -0700</creation_ts>
          <short_desc>Don&apos;t need to Air::reportUsedRegisters for wasm at -O1</short_desc>
          <delta_ts>2017-04-04 12:09:29 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1294078</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 11:08:17 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294081</commentid>
    <comment_count>1</comment_count>
      <attachid>306181</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 11:19:43 -0700</bug_when>
    <thetext>Created attachment 306181
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294087</commentid>
    <comment_count>2</comment_count>
      <attachid>306181</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-04 11:39:33 -0700</bug_when>
    <thetext>Comment on attachment 306181
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=306181&amp;action=review

r=me

&gt; Source/JavaScriptCore/b3/B3StackmapGenerationParams.h:63
&gt; +    // NOTE: This will report bogus information if you did proc.setNeedsUsedRegisters(false).

Can we make it crash, at least in debug builds?

&gt; Source/JavaScriptCore/b3/air/AirLiveness.h:42
&gt; +        SuperSamplerScope samplingScope(false);
&gt; +        WTF::Liveness&lt;Adapter&gt;::compute();

Is the reason for this change just so you can time it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294093</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 11:49:05 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; Comment on attachment 306181 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306181&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3StackmapGenerationParams.h:63
&gt; &gt; +    // NOTE: This will report bogus information if you did proc.setNeedsUsedRegisters(false).
&gt; 
&gt; Can we make it crash, at least in debug builds?

I&apos;ll add an assertion.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirLiveness.h:42
&gt; &gt; +        SuperSamplerScope samplingScope(false);
&gt; &gt; +        WTF::Liveness&lt;Adapter&gt;::compute();
&gt; 
&gt; Is the reason for this change just so you can time it?

Yeah, it was just for timing.

There was a prior patch where I had done this same hack and then lost it.  It&apos;s super useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294101</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-04-04 12:09:29 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/214887/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306181</attachid>
            <date>2017-04-04 11:19:43 -0700</date>
            <delta_ts>2017-04-04 11:39:33 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>19574</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0ODg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBA
CisyMDE3LTA0LTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RG9uJ3QgbmVlZCB0byBBaXI6OnJlcG9ydFVzZWRSZWdpc3RlcnMgZm9yIHdhc20gYXQgLU8xCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA0NTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEkg
ZGlkIHNvbWUgcmVmYWN0b3JpbmdzIHRvIExpdmVuZXNzPD4gdG8gdHJ5IHRvIHVuZGVyc3RhbmQg
aXRzIHBlcmZvcm1hbmNlLiBCYXNlZCBvbgorICAgICAgICB0aGlzIEkgY29uY2x1ZGVkIHRoYXQg
dGhlIGJpZ2dlciBpbW1lZGlhdGUgaXNzdWUgaXMganVzdCByZW1vdmluZyB1bm5lY2Vzc2FyeSBw
aGFzZXMKKyAgICAgICAgZnJvbSAtTzEuCisgICAgICAgIAorICAgICAgICBUaGlzIHJlbW92ZXMg
QWlyOjpyZXBvcnRVc2VkUmVnaXN0ZXJzKCkgZnJvbSAtTzEgaWYgdGhlIHVzZXIgaGFzIGluZGlj
YXRlZCB0aGF0IGhlIGlzCisgICAgICAgIG5vdCBpbnRlcmVzdGVkIGluIFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtczo6dXNlZFJlZ2lzdGVycygpLiBUaGUgbG9naWMgaGVyZSBpcyBhIGJpdAorICAg
ICAgICB3ZWlyZCBiZWNhdXNlIG9mIGhvdyBBaXIgZG9lcyBzcGlsbCBjb2RlIGdlbmVyYXRpb24u
IFRoZSByZWdpc3RlciBhbGxvY2F0b3IncyBzcGlsbGVyCisgICAgICAgIHdpbGwgZW1pdCBzcGls
bCBjb2RlIHVzaW5nIGlkZW50aWZpYWJsZSBzcGlsbCBzbG90cywgd2hpY2ggYWxsb3dzIHN1YnNl
cXVlbnQgcGhhc2VzIHRvCisgICAgICAgIHJlZ2lzdGVyLWFsbG9jYXRlIHRoZSBzcGlsbCBzbG90
cy4gV2UgZG8gdGhpcyBieSBhIGZvcndhcmQgZmxvdyBDU0UgcGhhc2UgY2FsbGVkCisgICAgICAg
IGZpeE9idmlvdXNTcGlsbHMgKHdoaWNoIGlzIGEgdGVycmlibGUgbmFtZSBzaW5jZSB0aGVyZSBp
cyBubyBsb25nZXIgYW55dGhpbmcgb2J2aW91cworICAgICAgICBhYm91dCBzb21lIG9mIHRoZSBz
cGlsbHMgdGhhdCB0aGlzIHBoYXNlIGNhbiBmaXghKS4gTGlrZSBldmVyeSBvdGhlciBDU0UgSSd2
ZSBldmVyCisgICAgICAgIHdyaXR0ZW4sIGl0IGNoYW5nZXMgKnVzZXMqIG9mIHJlZHVuZGFudCBj
b21wdXRhdGlvbnMgcmF0aGVyIHRoYW4gcmVtb3ZpbmcgdGhlIHJlZHVuZGFudAorICAgICAgICBj
b21wdXRhdGlvbnMuIFRoaXMgbWVhbnMgdGhhdCBpZiBhIHNwaWxsIGdvdCAiZml4ZWQiLCB0aGVy
ZSBtYXkgYmUgZWl0aGVyIG9yIGJvdGggb2YKKyAgICAgICAgdGhlIGZvbGxvd2luZzoKKyAgICAg
ICAgCisgICAgICAgIC0gRGVhZCBsb2FkcyBmcm9tIHRoZSBzdGFjay4KKyAgICAgICAgLSBEZWFk
IHN0b3JlcyB0byB0aGUgc3RhY2suCisgICAgICAgIAorICAgICAgICBXZSBrbm93IHRoYXQgYSBs
b2FkIGZyb20gdGhlIHN0YWNrIGlzIGRlYWQgaWYgdGhlIHJlZ2lzdGVyIGlzIGRlYWQgYXQgdGhl
IHBvaW50IG9mIHRoZQorICAgICAgICBsb2FkLiBXZSBrbm93IHRoYXQgYSBzdG9yZSB0byB0aGUg
c3RhY2sgaXMgZGVhZCBpZiB0aGUgc3BpbGwgc2xvdCBpcyBkZWFkIGF0IHRoZSBwb2ludAorICAg
ICAgICBvZiB0aGUgc3RvcmUuCisgICAgICAgIAorICAgICAgICBVbmZvcnR1bmF0ZWx5LCBsaXZl
bmVzcyBhbmFseXNpcyAtIG92ZXIgZWl0aGVyIHJlZ2lzdGVycyBvciBzcGlsbCBzbG90cyAtIGlz
IGV4cGVuc2l2ZS4KKyAgICAgICAgCisgICAgICAgIEZvcnR1bmF0ZWx5LCBhbGxvY2F0ZVN0YWNr
KCkgYWxyZWFkeSBkb2VzIGxpdmVuZXNzIGFuYWx5c2lzIG92ZXIgc3BpbGwgc2xvdHMuIFNvLCB3
ZQorICAgICAgICBiYWtlZCBlbGltaW5hdGlvbiBvZiBzdG9yZXMgdG8gdGhlIHN0YWNrIGludG8g
dGhhdCBwaGFzZS4gVGhhdCBhc3BlY3Qgb2YgY2xlYW4tdXAgYWZ0ZXIKKyAgICAgICAgdGhlIHNw
aWxsIENTRSBjb21lcyBmb3IgZnJlZS4KKyAgICAgICAgCisgICAgICAgIEFsc28gZm9ydHVuYXRl
bHkgZm9yIHRoZSBGVEwsIHdlIGhhdmUgdG8gZG8gcmVwb3J0VXNlZFJlZ2lzdGVycygpIGFueXdh
eS4gVGhpcyBpcyBhCisgICAgICAgIHBoYXNlIHRoYXQgZW5hYmxlcyBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXM6OnVzZWRSZWdpc3RlcnMoKSB0byB3b3JrLCB3aGljaCB0aGVuCisgICAgICAgIGVu
YWJsZXMgdGhlIEZUTCdzIHBhdGNocG9pbnRzIHRvIGRvIGNyYXp5IHNsb3ctcGF0aCBsaXZlIHJh
bmdlIHNwbGl0dGluZy4gU28sIEFpcidzCisgICAgICAgIHN0cmF0ZWd5IGZvciB0aGUgbG9hZCBm
aXgtdXAgYWZ0ZXIgc3BpbGwgQ1NFIGlzIHRvIGRvIGl0IGFzIHBhcnQgb2YKKyAgICAgICAgcmVw
b3J0VXNlZFJlZ2lzdGVycygpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1
Y2VzIHRoZSBQcm9jZWR1cmU6OnNldE5lZWRzVXNlZFJlZ2lzdGVycygpIEFQSS4gQnV0IGlmIHlv
dSBzZXQKKyAgICAgICAgbmVlZHNVc2VkUmVnaXN0ZXJzIHRvIGZhbHNlIHRoZW4gd2Ugd2lsbCBz
dGlsbCBydW4gcmVwb3J0VXNlZFJlZ2lzdGVycygpIGF0IC1PMiBhcyBhbgorICAgICAgICBvcHRp
bWl6YXRpb24gLSBpdCByZW1vdmVzIGRlYWQgbG9hZHMgZnJvbSB0aGUgc3RhY2sgdGhhdCBhcmUg
bGVmdCBiZWhpbmQgZnJvbQorICAgICAgICBmaXhPYnZpb3VzU3BpbGxzKCkuCisgICAgICAgIAor
ICAgICAgICBUaGlzIGlzIGEgfjYlIGNvbXBpbGUgdGltZSBwcm9ncmVzc2lvbiBhdCAtTzEuCisK
KyAgICAgICAgKiBiMy9CM1Byb2NlZHVyZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJl
OjpzZXROZWVkc1VzZWRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpu
ZWVkc1VzZWRSZWdpc3RlcnMpOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zLmg6CisgICAgICAgICogYjMvQjNWYXJpYWJsZUxpdmVuZXNzLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OlZhcmlhYmxlTGl2ZW5lc3M6OlZhcmlhYmxlTGl2ZW5lc3MpOgorICAgICAgICAqIGIz
L2Fpci9BaXJDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6bmVlZHNVc2Vk
UmVnaXN0ZXJzKToKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnByZXBhcmVGb3JHZW5l
cmF0aW9uKToKKyAgICAgICAgKiBiMy9haXIvQWlyTGl2ZW5lc3MuaDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TGl2ZW5lc3M6OkxpdmVuZXNzKToKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6cGFyc2VBbmRDb21waWxlKToKKwogMjAx
Ny0wNC0wMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFpciBs
aXZlbmVzcyBzaG91bGQgYnVpbGQgY29uc3RyYWludHMgYW5kIHNvbHZlIHRoZW0gcmF0aGVyIHRo
YW4gcmVwZWF0ZWRseSBwYXJzaW5nIElSCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuaAkocmV2aXNpb24gMjE0ODgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMiw2ICsyMzIsMTIgQEAgcHVibGlj
OgogCiAgICAgLy8gVGhpcyB0ZWxscyB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9ycyB0byBzdGF5IGF3
YXkgZnJvbSB0aGlzIHJlZ2lzdGVyLgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcGluUmVn
aXN0ZXIoUmVnKTsKKyAgICAKKyAgICAvLyBZb3UgY2FuIHR1cm4gb2ZmIHVzZWQgcmVnaXN0ZXJz
IGNhbGN1bGF0aW9uLiBUaGlzIG1heSBzcGVlZCB1cCBjb21waWxhdGlvbiBhIGJpdC4gQnV0IGlm
CisgICAgLy8geW91IHR1cm4gaXQgb2ZmIHRoZW4geW91IGNhbm5vdCB1c2UgU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zOjp1c2VkUmVnaXN0ZXJzKCkgb3IKKyAgICAvLyBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXM6OnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuCisgICAgdm9pZCBzZXROZWVkc1VzZWRS
ZWdpc3RlcnMoYm9vbCB2YWx1ZSkgeyBtX25lZWRzVXNlZFJlZ2lzdGVycyA9IHZhbHVlOyB9Cisg
ICAgYm9vbCBuZWVkc1VzZWRSZWdpc3RlcnMoKSBjb25zdCB7IHJldHVybiBtX25lZWRzVXNlZFJl
Z2lzdGVyczsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgZnJhbWVTaXplKCkg
Y29uc3Q7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3Qm
IGNhbGxlZVNhdmVSZWdpc3RlcnMoKSBjb25zdDsKQEAgLTI2Nyw2ICsyNzMsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoUHJpbnRTdHJlYW0mLCBPcmlnaW4pPj4gbV9v
cmlnaW5QcmludGVyOwogICAgIGNvbnN0IHZvaWQqIG1fZnJvbnRlbmREYXRhOwogICAgIFBDVG9P
cmlnaW5NYXAgbV9wY1RvT3JpZ2luTWFwOworICAgIGJvb2wgbV9uZWVkc1VzZWRSZWdpc3RlcnMg
eyB0cnVlIH07CiAgICAgYm9vbCBtX2hhc1F1aXJrcyB7IGZhbHNlIH07CiB9OwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaAkocmV2aXNpb24gMjE0ODgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcg
QEAgcHVibGljOgogICAgIFZlY3RvcjxWYWx1ZVJlcD46OmNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVwcy5lbmQoKTsgfQogICAgIAogICAgIC8vIFRoaXMgdGVsbHMgeW91
IHRoZSByZWdpc3RlcnMgdGhhdCB3ZXJlIHVzZWQuCisgICAgLy8gTk9URTogVGhpcyB3aWxsIHJl
cG9ydCBib2d1cyBpbmZvcm1hdGlvbiBpZiB5b3UgZGlkIHByb2Muc2V0TmVlZHNVc2VkUmVnaXN0
ZXJzKGZhbHNlKS4KICAgICBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycygpIGNvbnN0
OwogCiAgICAgLy8gVGhpcyBpcyBhIHVzZWZ1bCBoZWxwZXIgaWYgeW91IHdhbnQgdG8gZG8gcmVn
aXN0ZXIgYWxsb2NhdGlvbiBpbnNpZGUgb2YgYSBwYXRjaHBvaW50LiBUaGUKQEAgLTc5LDYgKzgw
LDggQEAgcHVibGljOgogICAgIC8vCiAgICAgLy8gSS5lLiBpdCBpcyBsaWtlIHVzZWRSZWdpc3Rl
cnMoKSBidXQgYWxzbyBpbmNsdWRlcyB1bnNhdmVkIGNhbGxlZS1zYXZlcyBhbmQgZXhjbHVkZXMg
c2NyYXRjaAogICAgIC8vIHJlZ2lzdGVycy4KKyAgICAvLworICAgIC8vIE5PVEU6IFRoaXMgd2ls
bCByZXBvcnQgYm9ndXMgaW5mb3JtYXRpb24gaWYgeW91IGRpZCBwcm9jLnNldE5lZWRzVXNlZFJl
Z2lzdGVycyhmYWxzZSkuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVnaXN0ZXJTZXQgdW5hdmFp
bGFibGVSZWdpc3RlcnMoKSBjb25zdDsKIAogICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFyaWFibGVMaXZlbmVzcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFyaWFibGVMaXZlbmVzcy5jcHAJKHJldmlzaW9u
IDIxNDg4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhcmlhYmxlTGl2ZW5lc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogVmFyaWFibGVMaXZlbmVzczo6VmFyaWFibGVMaXZlbmVzcyhQcm9jZWR1cmUm
IHByb2MpCiAgICAgOiBXVEY6OkxpdmVuZXNzPFZhcmlhYmxlTGl2ZW5lc3NBZGFwdGVyPihwcm9j
LmNmZygpLCBwcm9jKQogeworICAgIGNvbXB1dGUoKTsKIH0KIAogVmFyaWFibGVMaXZlbmVzczo6
flZhcmlhYmxlTGl2ZW5lc3MoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuY3BwCShyZXZpc2lvbiAyMTQ4ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4NywxMSBAQCB2b2lkIENv
ZGU6OnBpblJlZ2lzdGVyKFJlZyByZWcpCiAgICAgQVNTRVJUKCFyZWdzLmNvbnRhaW5zKHJlZykp
OwogfQogCitib29sIENvZGU6Om5lZWRzVXNlZFJlZ2lzdGVycygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJvYy5uZWVkc1VzZWRSZWdpc3RlcnMoKTsKK30KKwogQmFzaWNCbG9jayogQ29kZTo6
YWRkQmxvY2soZG91YmxlIGZyZXF1ZW5jeSkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFzaWNC
bG9jaz4gYmxvY2sobmV3IEJhc2ljQmxvY2sobV9ibG9ja3Muc2l6ZSgpLCBmcmVxdWVuY3kpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMTQ4
ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBj
b3B5KQpAQCAtOTAsNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Bpbm5lZChSZWcgcmVn
KSBjb25zdCB7IHJldHVybiAhbXV0YWJsZVJlZ3MoKS5nZXQocmVnKTsgfQogICAgIAogICAgIHZv
aWQgcGluUmVnaXN0ZXIoUmVnKTsKKyAgICAKKyAgICBib29sIG5lZWRzVXNlZFJlZ2lzdGVycygp
IGNvbnN0OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQmFzaWNCbG9jayogYWRkQmxvY2soZG91
YmxlIGZyZXF1ZW5jeSA9IDEpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjE0ODgzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw4ICsx
MjIsMTAgQEAgdm9pZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlLCB1bgogICAgIC8v
IHBoYXNlLgogICAgIHNpbXBsaWZ5Q0ZHKGNvZGUpOwogCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQg
dG8gc2F0aXNmeSBhIHJlcXVpcmVtZW50IG9mIEIzOjpTdGFja21hcFZhbHVlLgotICAgIHJlcG9y
dFVzZWRSZWdpc3RlcnMoY29kZSk7CisgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gc2F0aXNmeSBh
IHJlcXVpcmVtZW50IG9mIEIzOjpTdGFja21hcFZhbHVlLiBUaGlzIGFsc28gcmVtb3ZlcyBkZWFk
CisgICAgLy8gY29kZS4gV2UgY2FuIGF2b2lkIHJ1bm5pbmcgdGhpcyB3aGVuIGNlcnRhaW4gb3B0
aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQuCisgICAgaWYgKG9wdExldmVsID49IDIgfHwgY29kZS5u
ZWVkc1VzZWRSZWdpc3RlcnMoKSkKKyAgICAgICAgcmVwb3J0VXNlZFJlZ2lzdGVycyhjb2RlKTsK
IAogICAgIC8vIEF0dGVtcHQgdG8gcmVtb3ZlIGZhbHNlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGlu
c3RydWN0aW9ucyBjcmVhdGVkIGJ5IHBhcnRpYWwgcmVnaXN0ZXIgY2hhbmdlcy4KICAgICAvLyBU
aGlzIG11c3QgYmUgZXhlY3V0ZWQgYXMgbGF0ZSBhcyBwb3NzaWJsZSBhcyBpdCBkZXBlbmRzIG9u
IHRoZSBpbnN0cnVjdGlvbnMgb3JkZXIgYW5kIHJlZ2lzdGVyCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckxpdmVuZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVzcy5oCShyZXZpc2lvbiAyMTQ4ODMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxpdmVuZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDggQEAgcHVibGljOgogICAgIExpdmVuZXNzKENvZGUmIGNvZGUpCiAgICAgICAg
IDogV1RGOjpMaXZlbmVzczxBZGFwdGVyPihjb2RlLmNmZygpLCBjb2RlKQogICAgIHsKKyAgICAg
ICAgU3VwZXJTYW1wbGVyU2NvcGUgc2FtcGxpbmdTY29wZShmYWxzZSk7CisgICAgICAgIFdURjo6
TGl2ZW5lc3M8QWRhcHRlcj46OmNvbXB1dGUoKTsKICAgICB9CiB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAyMTQ4ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODIsNiArMTI4MiwxMiBAQCBFeHBlY3RlZDxzdGQ6
OnVuaXF1ZV9wdHI8V2FzbUludGVybmFsRnVuCiAgICAgICAgIGlmIChvcmlnaW4uZGF0YSgpKQog
ICAgICAgICAgICAgb3V0LnByaW50KCJXYXNtOiAiLCBiaXR3aXNlX2Nhc3Q8T3Bjb2RlT3JpZ2lu
PihvcmlnaW4pKTsKICAgICB9KTsKKyAgICAKKyAgICAvLyBUaGlzIG1lYW5zIHdlIGNhbm5vdCB1
c2UgZWl0aGVyIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dXNlZFJlZ2lzdGVycygpIG9yCisg
ICAgLy8gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bmF2YWlsYWJsZVJlZ2lzdGVycygpLiBJ
biBleGNoYW5nZSBmb3IgdGhpcyBjb25jZXNzaW9uLCB3ZQorICAgIC8vIGRvbid0IHN0cmljdGx5
IG5lZWQgdG8gcnVuIEFpcjo6cmVwb3J0VXNlZFJlZ2lzdGVycygpLCB3aGljaCBzYXZlcyBhIGJp
dCBvZiBDUFUgdGltZSBhdAorICAgIC8vIG9wdExldmVsPTEuCisgICAgcHJvY2VkdXJlLnNldE5l
ZWRzVXNlZFJlZ2lzdGVycyhmYWxzZSk7CiAKICAgICBCM0lSR2VuZXJhdG9yIGNvbnRleHQoaW5m
bywgcHJvY2VkdXJlLCByZXN1bHQuZ2V0KCksIHVubGlua2VkV2FzbVRvV2FzbUNhbGxzLCBtb2Rl
KTsKICAgICBGdW5jdGlvblBhcnNlcjxCM0lSR2VuZXJhdG9yPiBwYXJzZXIoY29udGV4dCwgZnVu
Y3Rpb25TdGFydCwgZnVuY3Rpb25MZW5ndGgsIHNpZ25hdHVyZSwgaW5mbywgbW9kdWxlU2lnbmF0
dXJlSW5kaWNlc1RvVW5pcXVlZFNpZ25hdHVyZUluZGljZXMpOwpAQCAtMTI5Niw3ICsxMzAyLDcg
QEAgRXhwZWN0ZWQ8c3RkOjp1bmlxdWVfcHRyPFdhc21JbnRlcm5hbEZ1bgogICAgIGRhdGFMb2dJ
Zih2ZXJib3NlLCAiUHJlIFNTQTogIiwgcHJvY2VkdXJlKTsKICAgICBmaXhTU0EocHJvY2VkdXJl
KTsKICAgICBkYXRhTG9nSWYodmVyYm9zZSwgIlBvc3QgU1NBOiAiLCBwcm9jZWR1cmUpOwotCisg
ICAgCiAgICAgewogICAgICAgICBCMzo6cHJlcGFyZUZvckdlbmVyYXRpb24ocHJvY2VkdXJlLCBv
cHRMZXZlbCk7CiAgICAgICAgIEIzOjpnZW5lcmF0ZShwcm9jZWR1cmUsICpjb21waWxhdGlvbkNv
bnRleHQud2FzbUVudHJ5cG9pbnRKSVQpOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDg4MykKKysrIFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTct
MDQtMDQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBu
ZWVkIHRvIEFpcjo6cmVwb3J0VXNlZFJlZ2lzdGVycyBmb3Igd2FzbSBhdCAtTzEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ1OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSnVzdCBtb3Zl
ZCB0aGUgbGl2ZW5lc3MgY29tcHV0YXRpb24gaW50byBhIG1ldGhvZCwgd2hpY2ggZW5hYmxlZCBt
ZSB0byBkbyB0aGUgcHJvZmlsaW5nCisgICAgICAgIHRoYXQgSSB1c2VkIHRvIHdyaXRlIHRoaXMg
cGF0Y2guCisKKyAgICAgICAgKiB3dGYvTGl2ZW5lc3MuaDoKKyAgICAgICAgKFdURjo6TGl2ZW5l
c3M6OkxpdmVuZXNzKToKKyAgICAgICAgKFdURjo6TGl2ZW5lc3M6OmNvbXB1dGUpOgorCiAyMDE3
LTA0LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWlyIGxp
dmVuZXNzIHNob3VsZCBidWlsZCBjb25zdHJhaW50cyBhbmQgc29sdmUgdGhlbSByYXRoZXIgdGhh
biByZXBlYXRlZGx5IHBhcnNpbmcgSVIKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0xpdmVuZXNzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTGl2ZW5lc3MuaAkocmV2aXNpb24gMjE0ODgz
KQorKysgU291cmNlL1dURi93dGYvTGl2ZW5lc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTAz
ICs0OSw4IEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2xpdmVBdEhlYWQoY2ZnLnRlbXBsYXRlIG5l
d01hcDxJbmRleFZlY3Rvcj4oKSkKICAgICAgICAgLCBtX2xpdmVBdFRhaWwoY2ZnLnRlbXBsYXRl
IG5ld01hcDxJbmRleFZlY3Rvcj4oKSkKICAgICB7Ci0gICAgICAgIC8vIFRoZSBsaXZlQXRUYWls
IG9mIGVhY2ggYmxvY2sgYXV0b21hdGljYWxseSBjb250YWlucyB0aGUgTGF0ZVVzZSdzIG9mIHRo
ZSB0ZXJtaW5hbC4KLSAgICAgICAgZm9yICh1bnNpZ25lZCBibG9ja0luZGV4ID0gbV9jZmcubnVt
Tm9kZXMoKTsgYmxvY2tJbmRleC0tOykgewotICAgICAgICAgICAgdHlwZW5hbWUgQ0ZHOjpOb2Rl
IGJsb2NrID0gbV9jZmcubm9kZShibG9ja0luZGV4KTsKLSAgICAgICAgICAgIGlmICghYmxvY2sp
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIElu
ZGV4VmVjdG9yJiBsaXZlQXRUYWlsID0gbV9saXZlQXRUYWlsW2Jsb2NrXTsKLQotICAgICAgICAg
ICAgQWRhcHRlcjo6Zm9yRWFjaFVzZSgKLSAgICAgICAgICAgICAgICBibG9jaywgQWRhcHRlcjo6
YmxvY2tTaXplKGJsb2NrKSwKLSAgICAgICAgICAgICAgICBbJl0gKHVuc2lnbmVkIGluZGV4KSB7
Ci0gICAgICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwuYXBwZW5kKGluZGV4KTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc3RkOjpzb3J0KGxpdmVBdFRh
aWwuYmVnaW4oKSwgbGl2ZUF0VGFpbC5lbmQoKSk7Ci0gICAgICAgICAgICByZW1vdmVSZXBlYXRl
ZEVsZW1lbnRzKGxpdmVBdFRhaWwpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQmxvY2tzIHdp
dGggbmV3IGxpdmUgdmFsdWVzIGF0IHRhaWwuCi0gICAgICAgIEJpdFZlY3RvciBkaXJ0eUJsb2Nr
czsKLSAgICAgICAgZm9yIChzaXplX3QgYmxvY2tJbmRleCA9IG1fY2ZnLm51bU5vZGVzKCk7IGJs
b2NrSW5kZXgtLTspCi0gICAgICAgICAgICBkaXJ0eUJsb2Nrcy5zZXQoYmxvY2tJbmRleCk7Ci0g
ICAgICAgIAotICAgICAgICBJbmRleFZlY3RvciBtZXJnZUJ1ZmZlcjsKLSAgICAgICAgCi0gICAg
ICAgIGJvb2wgY2hhbmdlZDsKLSAgICAgICAgZG8gewotICAgICAgICAgICAgY2hhbmdlZCA9IGZh
bHNlOwotCi0gICAgICAgICAgICBmb3IgKHNpemVfdCBibG9ja0luZGV4ID0gbV9jZmcubnVtTm9k
ZXMoKTsgYmxvY2tJbmRleC0tOykgewotICAgICAgICAgICAgICAgIHR5cGVuYW1lIENGRzo6Tm9k
ZSBibG9jayA9IG1fY2ZnLm5vZGUoYmxvY2tJbmRleCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFi
bG9jaykKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAoIWRpcnR5QmxvY2tzLnF1aWNrQ2xlYXIoYmxvY2tJbmRleCkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgTG9jYWxDYWxjIGxvY2FsQ2FsYygqdGhp
cywgYmxvY2spOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGluc3RJbmRleCA9IEFkYXB0
ZXI6OmJsb2NrU2l6ZShibG9jayk7IGluc3RJbmRleC0tOykKLSAgICAgICAgICAgICAgICAgICAg
bG9jYWxDYWxjLmV4ZWN1dGUoaW5zdEluZGV4KTsKLQotICAgICAgICAgICAgICAgIC8vIEhhbmRs
ZSB0aGUgZWFybHkgZGVmJ3Mgb2YgdGhlIGZpcnN0IGluc3RydWN0aW9uLgotICAgICAgICAgICAg
ICAgIEFkYXB0ZXI6OmZvckVhY2hEZWYoCi0gICAgICAgICAgICAgICAgICAgIGJsb2NrLCAwLAot
ICAgICAgICAgICAgICAgICAgICBbJl0gKHVuc2lnbmVkIGluZGV4KSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBtX3dvcmtzZXQucmVtb3ZlKGluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgICAgICAgICBJbmRleFZlY3RvciYgbGl2ZUF0SGVhZCA9IG1fbGl2ZUF0
SGVhZFtibG9ja107Ci0KLSAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgVG1w
cyB0aGF0IHdlcmUgZGlzY292ZXJlZCBpbiB0aGlzIGl0ZXJhdGlvbi4gSXQgaXMgaW1wb3NzaWJs
ZQotICAgICAgICAgICAgICAgIC8vIHRvIHJlbW92ZSBhIGxpdmUgdmFsdWUgZnJvbSB0aGUgaGVh
ZC4KLSAgICAgICAgICAgICAgICAvLyBXZSByZW1vdmUgYWxsIHRoZSB2YWx1ZXMgd2UgYWxyZWFk
eSBrbmV3IGFib3V0IHNvIHRoYXQgd2Ugb25seSBoYXZlIHRvIGRlYWwgd2l0aAotICAgICAgICAg
ICAgICAgIC8vIHdoYXQgaXMgbmV3IGluIExpdmVBdEhlYWQuCi0gICAgICAgICAgICAgICAgaWYg
KG1fd29ya3NldC5zaXplKCkgPT0gbGl2ZUF0SGVhZC5zaXplKCkpCi0gICAgICAgICAgICAgICAg
ICAgIG1fd29ya3NldC5jbGVhcigpOwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGxpdmVJbmRleEF0SGVhZCA6IGxpdmVBdEhlYWQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBtX3dvcmtzZXQucmVtb3ZlKGxpdmVJbmRleEF0SGVhZCk7
Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKG1fd29ya3NldC5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAg
bGl2ZUF0SGVhZC5yZXNlcnZlQ2FwYWNpdHkobGl2ZUF0SGVhZC5zaXplKCkgKyBtX3dvcmtzZXQu
c2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5ld1ZhbHVlIDogbV93b3Jr
c2V0KQotICAgICAgICAgICAgICAgICAgICBsaXZlQXRIZWFkLnVuY2hlY2tlZEFwcGVuZChuZXdW
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV93b3Jrc2V0LnNvcnQo
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBmb3IgKHR5cGVuYW1lIENGRzo6
Tm9kZSBwcmVkZWNlc3NvciA6IG1fY2ZnLnByZWRlY2Vzc29ycyhibG9jaykpIHsKLSAgICAgICAg
ICAgICAgICAgICAgSW5kZXhWZWN0b3ImIGxpdmVBdFRhaWwgPSBtX2xpdmVBdFRhaWxbcHJlZGVj
ZXNzb3JdOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxp
dmVBdFRhaWwuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgbGl2ZUF0VGFpbCA9
IG1fd29ya3NldC52YWx1ZXMoKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtZXJnZUJ1ZmZlci5yZXNpemUobGl2ZUF0VGFpbC5zaXplKCkgKyBt
X3dvcmtzZXQuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gaXRlciA9IG1l
cmdlRGVkdXBsaWNhdGVkU29ydGVkKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVB
dFRhaWwuYmVnaW4oKSwgbGl2ZUF0VGFpbC5lbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3dvcmtzZXQuYmVnaW4oKSwgbV93b3Jrc2V0LmVuZCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lcmdlQnVmZmVyLmJlZ2luKCkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgbWVyZ2VCdWZmZXIucmVzaXplKGl0ZXIgLSBtZXJnZUJ1ZmZlci5iZWdpbigpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lcmdlQnVm
ZmVyLnNpemUoKSA9PSBsaXZlQXRUYWlsLnNpemUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChtZXJnZUJ1ZmZlci5zaXplKCkgPiBsaXZlQXRUYWlsLnNpemUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaXZlQXRUYWlsID0gbWVyZ2VCdWZmZXI7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIGRpcnR5QmxvY2tzLnF1aWNrU2V0KHByZWRlY2Vzc29yLT5pbmRleCgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICB9IHdoaWxlIChjaGFuZ2VkKTsKICAgICB9Ci0KKyAgICAKICAgICAv
LyBUaGlzIGNhbGN1bGF0b3IgaGFzIHRvIGJlIHJ1biBpbiByZXZlcnNlLgogICAgIGNsYXNzIExv
Y2FsQ2FsYyB7CiAgICAgcHVibGljOgpAQCAtMzQ5LDYgKzI1NCwxMDYgQEAgcHVibGljOgogICAg
IAogICAgIExpdmVBdEhlYWQgbGl2ZUF0SGVhZCgpIHsgcmV0dXJuIExpdmVBdEhlYWQoKnRoaXMp
OyB9CiAKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGNvbXB1dGUoKQorICAgIHsKKyAgICAgICAgLy8g
VGhlIGxpdmVBdFRhaWwgb2YgZWFjaCBibG9jayBhdXRvbWF0aWNhbGx5IGNvbnRhaW5zIHRoZSBM
YXRlVXNlJ3Mgb2YgdGhlIHRlcm1pbmFsLgorICAgICAgICBmb3IgKHVuc2lnbmVkIGJsb2NrSW5k
ZXggPSBtX2NmZy5udW1Ob2RlcygpOyBibG9ja0luZGV4LS07KSB7CisgICAgICAgICAgICB0eXBl
bmFtZSBDRkc6Ok5vZGUgYmxvY2sgPSBtX2NmZy5ub2RlKGJsb2NrSW5kZXgpOworICAgICAgICAg
ICAgaWYgKCFibG9jaykKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgSW5kZXhWZWN0b3ImIGxpdmVBdFRhaWwgPSBtX2xpdmVBdFRhaWxbYmxvY2td
OworCisgICAgICAgICAgICBBZGFwdGVyOjpmb3JFYWNoVXNlKAorICAgICAgICAgICAgICAgIGJs
b2NrLCBBZGFwdGVyOjpibG9ja1NpemUoYmxvY2spLAorICAgICAgICAgICAgICAgIFsmXSAodW5z
aWduZWQgaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGl2ZUF0VGFpbC5hcHBlbmQoaW5k
ZXgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBzdGQ6
OnNvcnQobGl2ZUF0VGFpbC5iZWdpbigpLCBsaXZlQXRUYWlsLmVuZCgpKTsKKyAgICAgICAgICAg
IHJlbW92ZVJlcGVhdGVkRWxlbWVudHMobGl2ZUF0VGFpbCk7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBCbG9ja3Mgd2l0aCBuZXcgbGl2ZSB2YWx1ZXMgYXQgdGFpbC4KKyAgICAgICAgQml0VmVj
dG9yIGRpcnR5QmxvY2tzOworICAgICAgICBmb3IgKHNpemVfdCBibG9ja0luZGV4ID0gbV9jZmcu
bnVtTm9kZXMoKTsgYmxvY2tJbmRleC0tOykKKyAgICAgICAgICAgIGRpcnR5QmxvY2tzLnNldChi
bG9ja0luZGV4KTsKKyAgICAgICAgCisgICAgICAgIEluZGV4VmVjdG9yIG1lcmdlQnVmZmVyOwor
ICAgICAgICAKKyAgICAgICAgYm9vbCBjaGFuZ2VkOworICAgICAgICBkbyB7CisgICAgICAgICAg
ICBjaGFuZ2VkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGJsb2NrSW5kZXgg
PSBtX2NmZy5udW1Ob2RlcygpOyBibG9ja0luZGV4LS07KSB7CisgICAgICAgICAgICAgICAgdHlw
ZW5hbWUgQ0ZHOjpOb2RlIGJsb2NrID0gbV9jZmcubm9kZShibG9ja0luZGV4KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICAgICAgICAgIGlmICghZGlydHlCbG9ja3MucXVpY2tDbGVhcihibG9ja0luZGV4KSkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBMb2NhbENhbGMg
bG9jYWxDYWxjKCp0aGlzLCBibG9jayk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5z
dEluZGV4ID0gQWRhcHRlcjo6YmxvY2tTaXplKGJsb2NrKTsgaW5zdEluZGV4LS07KQorICAgICAg
ICAgICAgICAgICAgICBsb2NhbENhbGMuZXhlY3V0ZShpbnN0SW5kZXgpOworCisgICAgICAgICAg
ICAgICAgLy8gSGFuZGxlIHRoZSBlYXJseSBkZWYncyBvZiB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24u
CisgICAgICAgICAgICAgICAgQWRhcHRlcjo6Zm9yRWFjaERlZigKKyAgICAgICAgICAgICAgICAg
ICAgYmxvY2ssIDAsCisgICAgICAgICAgICAgICAgICAgIFsmXSAodW5zaWduZWQgaW5kZXgpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya3NldC5yZW1vdmUoaW5kZXgpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIEluZGV4VmVjdG9yJiBsaXZlQXRI
ZWFkID0gbV9saXZlQXRIZWFkW2Jsb2NrXTsKKworICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkg
Y2FyZSBhYm91dCBUbXBzIHRoYXQgd2VyZSBkaXNjb3ZlcmVkIGluIHRoaXMgaXRlcmF0aW9uLiBJ
dCBpcyBpbXBvc3NpYmxlCisgICAgICAgICAgICAgICAgLy8gdG8gcmVtb3ZlIGEgbGl2ZSB2YWx1
ZSBmcm9tIHRoZSBoZWFkLgorICAgICAgICAgICAgICAgIC8vIFdlIHJlbW92ZSBhbGwgdGhlIHZh
bHVlcyB3ZSBhbHJlYWR5IGtuZXcgYWJvdXQgc28gdGhhdCB3ZSBvbmx5IGhhdmUgdG8gZGVhbCB3
aXRoCisgICAgICAgICAgICAgICAgLy8gd2hhdCBpcyBuZXcgaW4gTGl2ZUF0SGVhZC4KKyAgICAg
ICAgICAgICAgICBpZiAobV93b3Jrc2V0LnNpemUoKSA9PSBsaXZlQXRIZWFkLnNpemUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgbV93b3Jrc2V0LmNsZWFyKCk7CisgICAgICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgbGl2ZUluZGV4QXRIZWFkIDog
bGl2ZUF0SGVhZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya3NldC5yZW1vdmUobGl2
ZUluZGV4QXRIZWFkKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAo
bV93b3Jrc2V0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgICAgICBsaXZlQXRIZWFkLnJlc2VydmVDYXBhY2l0eShsaXZlQXRIZWFkLnNpemUo
KSArIG1fd29ya3NldC5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgbmV3
VmFsdWUgOiBtX3dvcmtzZXQpCisgICAgICAgICAgICAgICAgICAgIGxpdmVBdEhlYWQudW5jaGVj
a2VkQXBwZW5kKG5ld1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBt
X3dvcmtzZXQuc29ydCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAo
dHlwZW5hbWUgQ0ZHOjpOb2RlIHByZWRlY2Vzc29yIDogbV9jZmcucHJlZGVjZXNzb3JzKGJsb2Nr
KSkgeworICAgICAgICAgICAgICAgICAgICBJbmRleFZlY3RvciYgbGl2ZUF0VGFpbCA9IG1fbGl2
ZUF0VGFpbFtwcmVkZWNlc3Nvcl07CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICBpZiAobGl2ZUF0VGFpbC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICBsaXZlQXRUYWlsID0gbV93b3Jrc2V0LnZhbHVlcygpOworICAgICAgICAgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlQnVmZmVyLnJlc2l6ZShsaXZlQXRU
YWlsLnNpemUoKSArIG1fd29ya3NldC5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
YXV0byBpdGVyID0gbWVyZ2VEZWR1cGxpY2F0ZWRTb3J0ZWQoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGl2ZUF0VGFpbC5iZWdpbigpLCBsaXZlQXRUYWlsLmVuZCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fd29ya3NldC5iZWdpbigpLCBtX3dvcmtzZXQuZW5kKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VCdWZmZXIuYmVnaW4oKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBtZXJnZUJ1ZmZlci5yZXNpemUoaXRlciAtIG1lcmdlQnVmZmVyLmJl
Z2luKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobWVyZ2VCdWZmZXIuc2l6ZSgpID09IGxpdmVBdFRhaWwuc2l6ZSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1lcmdlQnVmZmVyLnNpemUoKSA+IGxp
dmVBdFRhaWwuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwgPSBt
ZXJnZUJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgZGlydHlCbG9ja3MucXVpY2tTZXQocHJlZGVjZXNzb3ItPmlu
ZGV4KCkpOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKGNoYW5nZWQpOworICAgIH0K
KwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTG9jYWxDYWxjOwogICAgIGZyaWVuZCBjbGFz
cyBMb2NhbENhbGM6Okl0ZXJhYmxlOwo=
</data>
<flag name="review"
          id="327537"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>