<?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>46778</bug_id>
          
          <creation_ts>2010-09-28 20:10:37 -0700</creation_ts>
          <short_desc>Implement XHR priority in WebCore</short_desc>
          <delta_ts>2022-09-10 14:30:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>43400</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286717</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-09-28 20:10:37 -0700</bug_when>
    <thetext>Implement XHR priority in WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286720</commentid>
    <comment_count>1</comment_count>
      <attachid>69157</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-09-28 20:16:15 -0700</bug_when>
    <thetext>Created attachment 69157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291254</commentid>
    <comment_count>2</comment_count>
      <attachid>70150</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-10-07 14:22:03 -0700</bug_when>
    <thetext>Created attachment 70150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292349</commentid>
    <comment_count>3</comment_count>
      <attachid>70150</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-10 12:32:42 -0700</bug_when>
    <thetext>Comment on attachment 70150
Patch

We already have a loader prioritization mechanism: ResourceLoadScheduler.  It seems like it would make more sense to integrate with that prioritization mechanism rather than rolling some XMLHttpRequest specific loader classes.

Also, this bug does not explain why we want to do make this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897595</commentid>
    <comment_count>4</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-10 14:29:40 -0700</bug_when>
    <thetext>rniwa@webkit.org - Is this something needed because I think if I am right according to this MDN, it is non-standard and we can mark this as &quot;RESOLVED WONTFIX&quot;? Thanks!

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/1.5/Changing_the_priority_of_HTTP_requests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897596</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-09-10 14:30:55 -0700</bug_when>
    <thetext>Yeah, this is Won&apos;t Fix at this point.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69157</attachid>
            <date>2010-09-28 20:16:15 -0700</date>
            <delta_ts>2010-10-07 14:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46778-20100928201614.patch</filename>
            <type>text/plain</type>
            <size>20656</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYzU0NzgxZDVhMWQxZDE4NjA0MTllODExODg4ZWMwMTYxN2Q4NGExLi4yZmY0NDE1
OWQzZmQ0M2I5NjdhNjg2NTQ5NmYxOTk2MGI2ZTMwM2E0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDktMjggIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBY
SFIgcHJpb3JpdHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDY3NzgKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5Lmh0bWw6
IEFkZGVkLgorCiAyMDEwLTA5LTI4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IHVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtcHJpb3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTM5MjM3ZmYzZDE3ZDI0ODI5Mjc5OTMxMDMxNGE2Y2IzOWRjNWFjZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtcHJpb3JpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IHByaW9yaXR5IGhhcyB0aGUgZGVzaXJlZCBl
ZmZlY3QuIFRoZSByZXF1ZXN0cyBzaG91bGQgZmluaXNoIGluIHByaW9yaXR5IG9yZGVyLgorCitU
ZXN0IGRpc2FibGVkIGJlY2F1c2UgRU5BQkxFX1hIUl9QUklPUklUWSBpcyBmYWxzZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtcHJpb3JpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTY4NWUxY2U0YzM5YzVm
NWRmMGI0ZGRiZTk3NGYyMTQ5Y2Q5ODg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS5odG1sCkBA
IC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPgorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IHByaW9yaXR5
IGhhcyB0aGUgZGVzaXJlZCBlZmZlY3QuIFRoZSByZXF1ZXN0cyBzaG91bGQgZmluaXNoIGluIHBy
aW9yaXR5IG9yZGVyLgorPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgY29tcGxldGlv
blRpbWVCeVByaW9yaXR5ID0gW107CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmUoX19h
LCBfX2IpCit7CisgICAgdmFyIF9hID0gZXZhbChfX2EpOworICAgIHZhciBfYiA9IGV2YWwoX19i
KTsKKworICAgIHZhciBfbWVzc2FnZTsKKyAgICBpZiAoX2EgPT0gX2IpIHsKKyAgICAgICAgX21l
c3NhZ2UgPSAiUEFTUyAiICsgX19hICsgIiBpcyAiICsgX19iOworICAgIH0gZWxzZSB7CisgICAg
ICAgIF9tZXNzYWdlID0gIkZBSUwgIiArIF9fYSArICIgaXMgbm90ICIgKyBfX2IgKyAiLiBXYXMg
IiArIF9hOworICAgIH0KKyAgICBsb2coX21lc3NhZ2UpOworfQorCitmdW5jdGlvbiBhbGxEb25l
KCkKK3sKKyAgICBzaG91bGRCZSgiY29tcGxldGlvblRpbWVCeVByaW9yaXR5W1wiY3JpdGljYWxc
Il0gPD0gY29tcGxldGlvblRpbWVCeVByaW9yaXR5W1wiaGlnaFwiXSIsIHRydWUpOworICAgIHNo
b3VsZEJlKCJjb21wbGV0aW9uVGltZUJ5UHJpb3JpdHlbXCJoaWdoXCJdIDw9IGNvbXBsZXRpb25U
aW1lQnlQcmlvcml0eVtcIm5vcm1hbFwiXSIsIHRydWUpOworICAgIHNob3VsZEJlKCJjb21wbGV0
aW9uVGltZUJ5UHJpb3JpdHlbXCJub3JtYWxcIl0gPD0gY29tcGxldGlvblRpbWVCeVByaW9yaXR5
W1wibG93XCJdIiwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoImNvbXBsZXRpb25UaW1lQnlQcmlvcml0
eVtcImxvd1wiXSA8PSBjb21wbGV0aW9uVGltZUJ5UHJpb3JpdHlbXCJsb3dlc3RcIl0iLCB0cnVl
KTsKK30KKworZnVuY3Rpb24gcGVyZm9ybVRlc3QoKSB7CisgICAgdmFyIG5vbkNyaXRpY2FsUHJp
b3JpdGllcyA9IFsKKyAgICAgICAgImxvd2VzdCIsCisgICAgICAgICJsb3ciLAorICAgICAgICAi
bm9ybWFsIiwKKyAgICAgICAgImhpZ2giLAorICAgIF07CisKKyAgICB2YXIgbnVtUmVzcG9uc2Vz
QnlQcmlvcml0eSA9IFtdOworICAgIG51bVJlc3BvbnNlc0J5UHJpb3JpdHlbImNyaXRpY2FsIl0g
PSAwOworICAgIGZvciAoaSA9IDA7IGkgPCBub25Dcml0aWNhbFByaW9yaXRpZXMubGVuZ3RoOyAr
K2kpCisgICAgeworICAgICAgICBudW1SZXNwb25zZXNCeVByaW9yaXR5W25vbkNyaXRpY2FsUHJp
b3JpdGllc1tpXV0gPSAwOworICAgIH0KKworICAgIHZhciBudW1Qcmlvcml0eUl0ZXJhdGlvbnMg
PSAxMDsKKyAgICB2YXIgcHJpb3JpdGllc1RvVGVzdCA9IFtdOworICAgIGZvciAoaSA9IDA7IGkg
PCBudW1Qcmlvcml0eUl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICBmb3IgKGogPSAwOyBqIDwg
bm9uQ3JpdGljYWxQcmlvcml0aWVzLmxlbmd0aDsgaiA9IGogKyAxKSB7CisgICAgICAgICAgICBw
cmlvcml0aWVzVG9UZXN0LnB1c2gobm9uQ3JpdGljYWxQcmlvcml0aWVzW2pdKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtUHJpb3JpdHlJdGVyYXRpb25zOyArK2kp
IHsKKyAgICAgICAgcHJpb3JpdGllc1RvVGVzdC5wdXNoKCJjcml0aWNhbCIpOworICAgIH0KKwor
ICAgIHZhciBudW1MZWZ0ID0gcHJpb3JpdGllc1RvVGVzdC5sZW5ndGg7CisgICAgZm9yIChpID0g
MDsgaSA8IHByaW9yaXRpZXNUb1Rlc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByaW9y
aXR5ID0gcHJpb3JpdGllc1RvVGVzdFtpXTsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICArK251bVJlc3BvbnNlc0J5UHJpb3JpdHlbdGhpcy5wcmlvcml0eV07CisgICAgICAgICAgICBp
ZiAobnVtUmVzcG9uc2VzQnlQcmlvcml0eVt0aGlzLnByaW9yaXR5XSA9PSBudW1Qcmlvcml0eUl0
ZXJhdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKKyAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uVGltZUJ5UHJpb3JpdHlbdGhpcy5wcmlvcml0eV0gPSBub3cu
Z2V0VGltZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1udW1MZWZ0OworICAgICAg
ICAgICAgaWYgKG51bUxlZnQgPT0gMCkgeworICAgICAgICAgICAgICAgIGFsbERvbmUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB4aHIub3BlbigiR0VUIiwgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvMTI1MS5odG1sIik7CisgICAg
ICAgIHhoci5wcmlvcml0eSA9IHByaW9yaXR5OworICAgICAgICB4aHIuc2VuZCgpOworICAgIH0K
K30KKworZnVuY3Rpb24gdGVzdEVuYWJsZWQoKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKKyAgICB0cnkgeworICAgICAgICB4aHIucHJpb3JpdHkgPSAiaW52YWxpZCI7
CisgICAgfSBjYXRjaCAoRXhjZXB0aW9uKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lmICh0ZXN0RW5hYmxlZCgpKQorICAgIHBlcmZvcm1U
ZXN0KCk7CitlbHNlCisgICAgbG9nKCJUZXN0IGRpc2FibGVkIGJlY2F1c2UgRU5BQkxFX1hIUl9Q
UklPUklUWSBpcyBmYWxzZS4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NjcwOGVh
ZDRjMmI2YjkyNjU4M2Q0OTViY2NjZDA2MWViYTljNjIzLi5iODk2YzgzNDVmYjNjZDc4NjI3NDQ3
ODFiODhhY2I3YTQ2NDkzYmIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEwLTA5LTI4ICBKYW1lcyBTaW1v
bnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgWEhSIHByaW9yaXR5IGluIFdlYkNvcmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Nzc4CisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1w
cmlvcml0eS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogbG9hZGVy
L1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRlbGF5ZWRMb2FkZXI6OmFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXllZExv
YWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5ZWRMb2FkZXI6OkRlbGF5ZWRM
b2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXllZExvYWRlcjo6bG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpEZWxheWVkTG9hZGVyOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
b3R0bGluZ0xvYWRlclBvb2w6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJvdHRsaW5n
TG9hZGVyUG9vbDo6VGhyb3R0bGluZ0xvYWRlclBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
b3R0bGluZ0xvYWRlclBvb2w6OnJlcXVlc3RMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocm90
dGxpbmdMb2FkZXJQb29sOjp0ZXJtaW5hdGVMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocm90
dGxpbmdMb2FkZXJQb29sOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6VGhyb3R0bGluZ0xv
YWRlclBvb2w6OnBvc3NpYmx5TG9hZE5leHRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRTaGFyZWRUaHJvdHRsaW5nTG9hZGVyUG9vbERlY29yYXRvcjo6cmVxdWVzdExvYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dFNoYXJlZFRocm90dGxpbmdMb2FkZXJQb29sRGVjb3Jh
dG9yOjp0ZXJtaW5hdGVMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRTaGFyZWRUaHJv
dHRsaW5nTG9hZGVyUG9vbERlY29yYXRvcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OnNo
YXJlZExvYWRlclBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVx
dWVzdExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRpemVkWE1MSHR0
cFJlcXVlc3RMb2FkZXI6OlByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6flByaW9yaXRpemVk
WE1MSHR0cFJlcXVlc3RMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxI
dHRwUmVxdWVzdExvYWRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRpemVk
WE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3M6OkxvYWRlckFyZ3MpOgorICAgICAgICAq
IGxvYWRlci9Qcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6cmVmVGhyZWFkYWJs
ZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9h
ZGVyOjpkZXJlZlRocmVhZGFibGVMb2FkZXIpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6
CisKIDIwMTAtMDktMjggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWU2NWY0N2YxY2RjMTA4M2Q0NmQ2MjA2ZGNkYmQx
MjAzNzBkN2FhZi4uZDA0OTkyNDg5ZjBhOWUxZTBhMmYzYTZiZTk4NTQzMmFjMThlNjJmOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE5NjgsNiArMTk2OCw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNhbGxiYWNr
LmgnLAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL1ByaW9yaXRp
emVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvUHJpb3Jp
dGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzQxMDAwMGIyNTNkMDg4N2Q3MzA5ZmU5NDdjY2EyNzQ1ZmMzMDM5NgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvbG9hZGVyL1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3Bw
CkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMCBKYW1lcyBTaW1v
bnNlbiA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFhIUl9QUklPUklUWSkKKwor
I2luY2x1ZGUgIlByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuaCIKKworI2luY2x1ZGUg
IlRocmVhZGFibGVMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29u
c3QgaW50IG1heEluRmxpZ2h0WGhyUGVyQ29udGV4dCA9IDQ7CisKK2NsYXNzIERlbGF5ZWRMb2Fk
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBEZWxheWVkTG9hZGVyKiBjcmVhdGUoY29uc3QgUHJp
b3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYpOworCisgICAgdm9pZCBs
b2FkKCk7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpOworCisgICAgY29uc3QgUHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgYXJncygpIHsgcmV0dXJuIG1fYXJn
czsgfQorCitwcml2YXRlOgorICAgIERlbGF5ZWRMb2FkZXIoY29uc3QgUHJpb3JpdGl6ZWRYTUxI
dHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYpOworCisgICAgY29uc3QgUHJpb3JpdGl6ZWRY
TUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgbV9hcmdzOworICAgIFJlZlB0cjxUaHJl
YWRhYmxlTG9hZGVyPiBtX3N1YkxvYWRlcjsKK307CisKK0RlbGF5ZWRMb2FkZXIqIERlbGF5ZWRM
b2FkZXI6OmNyZWF0ZShjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2Fk
ZXJBcmdzJiBhcmdzKQoreworICAgIHJldHVybiBuZXcgRGVsYXllZExvYWRlcihhcmdzKTsKK30K
KworRGVsYXllZExvYWRlcjo6RGVsYXllZExvYWRlcihjb25zdCBQcmlvcml0aXplZFhNTEh0dHBS
ZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQorICAgIDogbV9hcmdzKGFyZ3MpCit7Cit9
CisKK3ZvaWQgRGVsYXllZExvYWRlcjo6bG9hZCgpCit7CisgICAgbV9zdWJMb2FkZXIgPSBUaHJl
YWRhYmxlTG9hZGVyOjpjcmVhdGUobV9hcmdzLmNvbnRleHQsIG1fYXJncy5jbGllbnQsIG1fYXJn
cy5yZXF1ZXN0LCBtX2FyZ3Mub3B0aW9ucyk7Cit9CisKK3ZvaWQgRGVsYXllZExvYWRlcjo6Y2Fu
Y2VsKCkKK3sKKyAgICBpZiAobV9zdWJMb2FkZXIpIHsKKyAgICAgICAgbV9zdWJMb2FkZXItPmNh
bmNlbCgpOworICAgICAgICBtX3N1YkxvYWRlciA9IDA7CisgICAgfQorfQorCitjbGFzcyBUaHJv
dHRsaW5nTG9hZGVyUG9vbEludGVyZmFjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RMb2FkKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFy
Z3MmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZUxvYWQoY29uc3QgUHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFy
Z3MmKSA9IDA7Cit9OworCisKK2NsYXNzIFRocm90dGxpbmdMb2FkZXJQb29sIDogcHVibGljIFRo
cm90dGxpbmdMb2FkZXJQb29sSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgVGhyb3R0
bGluZ0xvYWRlclBvb2wqIGNyZWF0ZSgpOworCisgICAgdm9pZCByZXF1ZXN0TG9hZChjb25zdCBQ
cmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJik7CisgICAgdm9pZCB0
ZXJtaW5hdGVMb2FkKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRl
ckFyZ3MmKTsKKyAgICB2b2lkIGNhbmNlbChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0
TG9hZGVyOjpMb2FkZXJBcmdzJik7CisKK3ByaXZhdGU6CisgICAgVGhyb3R0bGluZ0xvYWRlclBv
b2woKTsKKworICAgIHZvaWQgcG9zc2libHlMb2FkTmV4dFJlcXVlc3QoKTsKKworICAgIE11dGV4
IG1fbXV0ZXg7CisgICAgaW50IG1fbnVtQ3JpdGljYWxSZXF1ZXN0c0luRmxpZ2h0OworICAgIFZl
Y3RvcjxEZWxheWVkTG9hZGVyKj4gbV9xdWV1ZTsKKyAgICB0eXBlZGVmIEhhc2hNYXA8VGhyZWFk
YWJsZUxvYWRlckNsaWVudCosIERlbGF5ZWRMb2FkZXIqPiBBY3RpdmVNYXA7CisgICAgQWN0aXZl
TWFwIG1fYWN0aXZlTG9hZGVyczsKK307CisKK1Rocm90dGxpbmdMb2FkZXJQb29sKiBUaHJvdHRs
aW5nTG9hZGVyUG9vbDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbmV3IFRocm90dGxpbmdMb2Fk
ZXJQb29sOworfQorCitUaHJvdHRsaW5nTG9hZGVyUG9vbDo6VGhyb3R0bGluZ0xvYWRlclBvb2wo
KQorICAgIDogbV9udW1Dcml0aWNhbFJlcXVlc3RzSW5GbGlnaHQoMCkKK3sKK30KKwordm9pZCBU
aHJvdHRsaW5nTG9hZGVyUG9vbDo6cmVxdWVzdExvYWQoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRw
UmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgYXJncykKK3sKKyAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgRGVsYXllZExvYWRlciogbG9hZGVyID0gRGVsYXllZExvYWRlcjo6
Y3JlYXRlKGFyZ3MpOworICAgIGJvb2wgZGlkSW5zZXJ0ID0gZmFsc2U7CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBtX3F1ZXVlLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX3F1ZXVlW2ld
LT5hcmdzKCkucHJpb3JpdHkgPD0gYXJncy5wcmlvcml0eSkgeworICAgICAgICAgICAgbV9xdWV1
ZS5pbnNlcnQoaSwgbG9hZGVyKTsKKyAgICAgICAgICAgIGRpZEluc2VydCA9IHRydWU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWRpZEluc2VydCkKKyAg
ICAgICAgbV9xdWV1ZS5hcHBlbmQobG9hZGVyKTsKKyAgICBwb3NzaWJseUxvYWROZXh0UmVxdWVz
dCgpOworfQorCit2b2lkIFRocm90dGxpbmdMb2FkZXJQb29sOjp0ZXJtaW5hdGVMb2FkKGNvbnN0
IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmIGFyZ3MpCit7Cisg
ICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIEFjdGl2ZU1hcDo6aXRlcmF0b3Ig
aXQgPSBtX2FjdGl2ZUxvYWRlcnMuZmluZChhcmdzLmNsaWVudCk7CisgICAgQVNTRVJUKGl0ICE9
IG1fYWN0aXZlTG9hZGVycy5lbmQoKSk7CisgICAgaWYgKGFyZ3MucHJpb3JpdHkgPT0gWE1MSHR0
cFJlcXVlc3Q6OkNSSVRJQ0FMKQorICAgICAgICAtLW1fbnVtQ3JpdGljYWxSZXF1ZXN0c0luRmxp
Z2h0OworICAgIGRlbGV0ZSBpdC0+c2Vjb25kOworICAgIG1fYWN0aXZlTG9hZGVycy5yZW1vdmUo
aXQpOworICAgIHBvc3NpYmx5TG9hZE5leHRSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgVGhyb3R0bGlu
Z0xvYWRlclBvb2w6OmNhbmNlbChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVy
OjpMb2FkZXJBcmdzJiBhcmdzKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsK
KyAgICBBY3RpdmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9hY3RpdmVMb2FkZXJzLmZpbmQoYXJncy5j
bGllbnQpOworICAgIGlmIChpdCAhPSBtX2FjdGl2ZUxvYWRlcnMuZW5kKCkpCisgICAgICAgIGl0
LT5zZWNvbmQtPmNhbmNlbCgpOworICAgIGVsc2UgeworICAgICAgICBib29sIGRpZFJlbW92ZSA9
IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fcXVldWUuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgIGlmIChtX3F1ZXVlW2ldLT5hcmdzKCkuY2xpZW50ID09IGFyZ3MuY2xp
ZW50KSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIG1fcXVldWVbaV07CisgICAgICAgICAgICAg
ICAgbV9xdWV1ZS5yZW1vdmUoaSk7CisgICAgICAgICAgICAgICAgZGlkUmVtb3ZlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBBU1NFUlQoZGlkUmVtb3ZlKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhyb3R0bGluZ0xvYWRlclBv
b2w6OnBvc3NpYmx5TG9hZE5leHRSZXF1ZXN0KCkKK3sKKyAgICBpZiAobV9xdWV1ZS5pc0VtcHR5
KCkgfHwgbV9hY3RpdmVMb2FkZXJzLnNpemUoKSA+PSBtYXhJbkZsaWdodFhoclBlckNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIERlbGF5ZWRMb2FkZXIqIG5leHQgPSBtX3F1ZXVlLmxh
c3QoKTsKKyAgICBpZiAobmV4dC0+YXJncygpLnByaW9yaXR5ID09IFhNTEh0dHBSZXF1ZXN0OjpD
UklUSUNBTCkKKyAgICAgICAgKyttX251bUNyaXRpY2FsUmVxdWVzdHNJbkZsaWdodDsKKyAgICBl
bHNlIGlmIChtX251bUNyaXRpY2FsUmVxdWVzdHNJbkZsaWdodCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9hY3RpdmVMb2FkZXJzLmFkZChuZXh0LT5hcmdzKCkuY2xpZW50LCBuZXh0KTsKKyAg
ICBuZXh0LT5sb2FkKCk7CisgICAgbV9xdWV1ZS5yZW1vdmVMYXN0KCk7Cit9CisKK2NsYXNzIENv
bnRleHRTaGFyZWRUaHJvdHRsaW5nTG9hZGVyUG9vbERlY29yYXRvciA6IFRocm90dGxpbmdMb2Fk
ZXJQb29sSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICB2b2lkIHJlcXVlc3RMb2FkKGNvbnN0IFBy
aW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmKTsKKyAgICB2b2lkIHRl
cm1pbmF0ZUxvYWQoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVy
QXJncyYpOworICAgIHZvaWQgY2FuY2VsKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RM
b2FkZXI6OkxvYWRlckFyZ3MmKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgVGhyb3R0bGluZ0xv
YWRlclBvb2xJbmZvIHsKKyAgICAgICAgVGhyb3R0bGluZ0xvYWRlclBvb2wqIHBvb2w7CisgICAg
ICAgIGludCB1c2VDb3VudDsKKyAgICB9OworICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGhyb3R0bGluZ0xvYWRlclBvb2xJbmZvPiBUaHJvdHRsaW5nTG9hZGVy
UG9vbE1hcDsKKworICAgIE11dGV4IG1fbXV0ZXg7CisgICAgVGhyb3R0bGluZ0xvYWRlclBvb2xN
YXAgbV9wb29sSW5mb01hcDsKK307CisKK3ZvaWQgQ29udGV4dFNoYXJlZFRocm90dGxpbmdMb2Fk
ZXJQb29sRGVjb3JhdG9yOjpyZXF1ZXN0TG9hZChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1
ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X211dGV4KTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBrZXkgPSBhcmdzLmNvbnRleHQ7
CisgICAgVGhyb3R0bGluZ0xvYWRlclBvb2xNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wb29sSW5mb01h
cC5maW5kKGtleSk7CisgICAgaWYgKGl0ID09IG1fcG9vbEluZm9NYXAuZW5kKCkpIHsKKyAgICAg
ICAgaXQgPSBtX3Bvb2xJbmZvTWFwLmFkZChrZXksIFRocm90dGxpbmdMb2FkZXJQb29sSW5mbygp
KS5maXJzdDsKKyAgICAgICAgaXQtPnNlY29uZC5wb29sID0gVGhyb3R0bGluZ0xvYWRlclBvb2w6
OmNyZWF0ZSgpOworICAgICAgICBpdC0+c2Vjb25kLnVzZUNvdW50ID0gMTsKKyAgICB9IGVsc2UK
KyAgICAgICAgKytpdC0+c2Vjb25kLnVzZUNvdW50OworICAgIGl0LT5zZWNvbmQucG9vbC0+cmVx
dWVzdExvYWQoYXJncyk7Cit9CisKK3ZvaWQgQ29udGV4dFNoYXJlZFRocm90dGxpbmdMb2FkZXJQ
b29sRGVjb3JhdG9yOjp0ZXJtaW5hdGVMb2FkKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVl
c3RMb2FkZXI6OkxvYWRlckFyZ3MmIGFyZ3MpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGtleSA9IGFyZ3MuY29udGV4dDsK
KyAgICBUaHJvdHRsaW5nTG9hZGVyUG9vbE1hcDo6aXRlcmF0b3IgaXQgPSBtX3Bvb2xJbmZvTWFw
LmZpbmQoa2V5KTsKKyAgICBBU1NFUlQoaXQgIT0gbV9wb29sSW5mb01hcC5lbmQoKSk7CisgICAg
aXQtPnNlY29uZC5wb29sLT50ZXJtaW5hdGVMb2FkKGFyZ3MpOworICAgIC0taXQtPnNlY29uZC51
c2VDb3VudDsKKyAgICBpZiAoIWl0LT5zZWNvbmQudXNlQ291bnQpIHsKKyAgICAgICAgZGVsZXRl
IGl0LT5zZWNvbmQucG9vbDsKKyAgICAgICAgbV9wb29sSW5mb01hcC5yZW1vdmUoaXQpOworICAg
IH0KK30KKwordm9pZCBDb250ZXh0U2hhcmVkVGhyb3R0bGluZ0xvYWRlclBvb2xEZWNvcmF0b3I6
OmNhbmNlbChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdz
JiBhcmdzKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBrZXkgPSBhcmdzLmNvbnRleHQ7CisgICAgVGhyb3R0bGluZ0xvYWRl
clBvb2xNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wb29sSW5mb01hcC5maW5kKGtleSk7CisgICAgQVNT
RVJUKGl0ICE9IG1fcG9vbEluZm9NYXAuZW5kKCkpOworICAgIGl0LT5zZWNvbmQucG9vbC0+Y2Fu
Y2VsKGFyZ3MpOworfQorCitzdGF0aWMgQ29udGV4dFNoYXJlZFRocm90dGxpbmdMb2FkZXJQb29s
RGVjb3JhdG9yKiBzaGFyZWRMb2FkZXJQb29sKCkKK3sKKyAgICBBdG9taWNhbGx5SW5pdGlhbGl6
ZWRTdGF0aWMoQ29udGV4dFNoYXJlZFRocm90dGxpbmdMb2FkZXJQb29sRGVjb3JhdG9yKiwgY29t
cG9zaXRlID0gbmV3IENvbnRleHRTaGFyZWRUaHJvdHRsaW5nTG9hZGVyUG9vbERlY29yYXRvcigp
KTsKKyAgICByZXR1cm4gY29tcG9zaXRlOworfQorCitQYXNzUmVmUHRyPFByaW9yaXRpemVkWE1M
SHR0cFJlcXVlc3RMb2FkZXI+IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
KiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFhNTEh0dHBSZXF1ZXN0OjpQcmlvcml0eSYg
cHJpb3JpdHkpCit7CisgICAgQVNTRVJUKGNvbnRleHQpOworICAgIEFTU0VSVChjbGllbnQpOwor
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVy
KGNvbnRleHQsIGNsaWVudCwgcmVxdWVzdCwgb3B0aW9ucywgcHJpb3JpdHkpKTsKK30KKworUHJp
b3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExv
YWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50KiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFhNTEh0dHBSZXF1ZXN0OjpQcmlvcml0
eSYgcHJpb3JpdHkpCisgICAgOiBtX2FyZ3MoY29udGV4dCwgY2xpZW50LCByZXF1ZXN0LCBvcHRp
b25zLCBwcmlvcml0eSkKK3sKKyAgICBzaGFyZWRMb2FkZXJQb29sKCktPnJlcXVlc3RMb2FkKG1f
YXJncyk7Cit9CisKK1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6On5Qcmlvcml0aXpl
ZFhNTEh0dHBSZXF1ZXN0TG9hZGVyKCkKK3sKKyAgICBzaGFyZWRMb2FkZXJQb29sKCktPnRlcm1p
bmF0ZUxvYWQobV9hcmdzKTsKK30KKwordm9pZCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9h
ZGVyOjpjYW5jZWwoKQoreworICAgIHNoYXJlZExvYWRlclBvb2woKS0+Y2FuY2VsKG1fYXJncyk7
Cit9CisKK1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3M6OkxvYWRl
ckFyZ3MoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNs
aWVudCogY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBjb25zdCBYTUxIdHRwUmVxdWVzdDo6UHJpb3Jp
dHkmIHByaW9yaXR5KQorICAgIDogY29udGV4dChjb250ZXh0KQorICAgICwgY2xpZW50KGNsaWVu
dCkKKyAgICAsIHJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG9wdGlvbnMob3B0aW9ucykKKyAgICAs
IHByaW9yaXR5KHByaW9yaXR5KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoWEhSX1BSSU9SSVRZKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvUHJpb3Jp
dGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZDFkMDNkZDE0ZTdlZGE2
ZmFmNjg2MmViOTJkNzllM2NhMDg2OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2xvYWRl
ci9Qcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSmFtZXMgU2ltb25zZW4gPHNpbW9uamFtQGNocm9taXVt
Lm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgUHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcl9oCisjZGVmaW5lIFByaW9yaXRpemVkWE1MSHR0cFJlcXVl
c3RMb2FkZXJfaAorCisjaWYgRU5BQkxFKFhIUl9QUklPUklUWSkKKworI2luY2x1ZGUgIlRocmVh
ZGFibGVMb2FkZXIuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQcmlvcml0aXplZFhN
TEh0dHBSZXF1ZXN0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8UHJpb3JpdGl6ZWRYTUxIdHRw
UmVxdWVzdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRocmVhZGFibGVMb2FkZXJDbGllbnQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIGNvbnN0IFhN
TEh0dHBSZXF1ZXN0OjpQcmlvcml0eSYpOworCisgICAgflByaW9yaXRpemVkWE1MSHR0cFJlcXVl
c3RMb2FkZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKTsKKworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcj46OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkPFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI+OjpkZXJlZjsKKwor
ICAgIHN0cnVjdCBMb2FkZXJBcmdzIHsKKyAgICAgICAgTG9hZGVyQXJncyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgY29uc3QgWE1MSHR0cFJlcXVlc3Q6
OlByaW9yaXR5Jik7CisKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dDsK
KyAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCogY2xpZW50OworICAgICAgICBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKKyAgICAgICAgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMgb3B0aW9uczsKKyAgICAgICAgY29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5IHBy
aW9yaXR5OworICAgIH07CisKK3ByaXZhdGU6CisgICAgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVz
dExvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCos
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwg
Y29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5Jik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVm
VGhyZWFkYWJsZUxvYWRlcigpIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZUaHJl
YWRhYmxlTG9hZGVyKCkgeyBkZXJlZigpOyB9CisKKyAgICBMb2FkZXJBcmdzIG1fYXJnczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYSFJfUFJJT1JJ
VFkpCisKKyNlbmRpZiAvLyBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCAzNDNlZmRhZmFkZDNmZGIxYzljMTk3ODBhZmEyNDk1MjhiZmU5
YWVmLi4yZDdjZTI2YmRlNTE0YWQ2NTQ3YzY0NDAxY2M3MGFkZDE1ZDk4OTZhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCkBAIC01MSw2ICs1MSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAorI2lmIEVOQUJM
RShYSFJfUFJJT1JJVFkpCisjaW5jbHVkZSAiUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRl
ci5oIgorI2VuZGlmCisKICNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02NDIsNyArNjQ2LDExIEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIC8vIFRo
aXMgaXMgdHJ1ZSB3aGlsZSBydW5uaW5nIG9udW5sb2FkIGhhbmRsZXJzLgogICAgICAgICAvLyBG
SVhNRTogTWF5YmUgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNlbmQgWE1MSHR0cFJlcXVlc3RzIGZy
b20gb251bmxvYWQsIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkw
ND4uCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSBjcmVhdGUoKSBjYW4gcmV0dXJuIG51bGwgZm9y
IG90aGVyIHJlYXNvbnMgdG9vPworI2lmIEVOQUJMRShYSFJfUFJJT1JJVFkpCisgICAgICAgIG1f
bG9hZGVyID0gUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgcmVxdWVzdCwgb3B0aW9ucywgbV9wcmlvcml0eSk7Cisj
ZWxzZQogICAgICAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHRoaXMsIHJlcXVlc3QsIG9wdGlvbnMpOworI2VuZGlmCiAgICAg
ICAgIGlmIChtX2xvYWRlcikgewogICAgICAgICAgICAgLy8gTmVpdGhlciB0aGlzIG9iamVjdCBu
b3IgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBzaG91bGQgYmUgZGVsZXRlZCB3aGlsZQogICAgICAg
ICAgICAgLy8gYSByZXF1ZXN0IGlzIGluIHByb2dyZXNzIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVw
IHRoZSBsaXN0ZW5lcnMgYWxpdmUsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70150</attachid>
            <date>2010-10-07 14:22:03 -0700</date>
            <delta_ts>2010-10-10 12:32:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46778-20101007142202.patch</filename>
            <type>text/plain</type>
            <size>27649</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MzM4ODIwYWU4MGU2NDAwNmZjNDRhNjllNWRiZTZiNDBmM2IyMGY4Li43ZmNkZGFh
Zjk5MGFkYjIxN2UwOTNkNTFlZDdiMDMyMWE5YmFkOTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTAtMDcgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBY
SFIgcHJpb3JpdHkgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDY3NzgKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXByaW9yaXR5Lmh0bWw6
IEFkZGVkLgorCiAyMDEwLTEwLTA3ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBy
aW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJp
b3JpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM5MjM3
ZmYzZDE3ZDI0ODI5Mjc5OTMxMDMxNGE2Y2IzOWRjNWFjZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3Jp
dHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
dGhlIFhNTEh0dHBSZXF1ZXN0IHByaW9yaXR5IGhhcyB0aGUgZGVzaXJlZCBlZmZlY3QuIFRoZSBy
ZXF1ZXN0cyBzaG91bGQgZmluaXNoIGluIHByaW9yaXR5IG9yZGVyLgorCitUZXN0IGRpc2FibGVk
IGJlY2F1c2UgRU5BQkxFX1hIUl9QUklPUklUWSBpcyBmYWxzZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcHJpb3JpdHku
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVl
c3QtcHJpb3JpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTY4NWUxY2U0YzM5YzVmNWRmMGI0ZGRiZTk3
NGYyMTQ5Y2Q5ODg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS5odG1sCkBAIC0wLDAgKzEsMTA4
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPgorVGhpcyB0
ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIFhNTEh0dHBSZXF1ZXN0IHByaW9yaXR5IGhhcyB0aGUgZGVz
aXJlZCBlZmZlY3QuIFRoZSByZXF1ZXN0cyBzaG91bGQgZmluaXNoIGluIHByaW9yaXR5IG9yZGVy
LgorPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgY29tcGxldGlvblRpbWVCeVByaW9y
aXR5ID0gW107CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICJcbiIpKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmUoX19hLCBfX2IpCit7Cisg
ICAgdmFyIF9hID0gZXZhbChfX2EpOworICAgIHZhciBfYiA9IGV2YWwoX19iKTsKKworICAgIHZh
ciBfbWVzc2FnZTsKKyAgICBpZiAoX2EgPT0gX2IpIHsKKyAgICAgICAgX21lc3NhZ2UgPSAiUEFT
UyAiICsgX19hICsgIiBpcyAiICsgX19iOworICAgIH0gZWxzZSB7CisgICAgICAgIF9tZXNzYWdl
ID0gIkZBSUwgIiArIF9fYSArICIgaXMgbm90ICIgKyBfX2IgKyAiLiBXYXMgIiArIF9hOworICAg
IH0KKyAgICBsb2coX21lc3NhZ2UpOworfQorCitmdW5jdGlvbiBhbGxEb25lKCkKK3sKKyAgICBz
aG91bGRCZSgiY29tcGxldGlvblRpbWVCeVByaW9yaXR5W1wiY3JpdGljYWxcIl0gPD0gY29tcGxl
dGlvblRpbWVCeVByaW9yaXR5W1wiaGlnaFwiXSIsIHRydWUpOworICAgIHNob3VsZEJlKCJjb21w
bGV0aW9uVGltZUJ5UHJpb3JpdHlbXCJoaWdoXCJdIDw9IGNvbXBsZXRpb25UaW1lQnlQcmlvcml0
eVtcIm5vcm1hbFwiXSIsIHRydWUpOworICAgIHNob3VsZEJlKCJjb21wbGV0aW9uVGltZUJ5UHJp
b3JpdHlbXCJub3JtYWxcIl0gPD0gY29tcGxldGlvblRpbWVCeVByaW9yaXR5W1wibG93XCJdIiwg
dHJ1ZSk7CisgICAgc2hvdWxkQmUoImNvbXBsZXRpb25UaW1lQnlQcmlvcml0eVtcImxvd1wiXSA8
PSBjb21wbGV0aW9uVGltZUJ5UHJpb3JpdHlbXCJsb3dlc3RcIl0iLCB0cnVlKTsKK30KKworZnVu
Y3Rpb24gcGVyZm9ybVRlc3QoKSB7CisgICAgdmFyIG5vbkNyaXRpY2FsUHJpb3JpdGllcyA9IFsK
KyAgICAgICAgImxvd2VzdCIsCisgICAgICAgICJsb3ciLAorICAgICAgICAibm9ybWFsIiwKKyAg
ICAgICAgImhpZ2giLAorICAgIF07CisKKyAgICB2YXIgbnVtUmVzcG9uc2VzQnlQcmlvcml0eSA9
IFtdOworICAgIG51bVJlc3BvbnNlc0J5UHJpb3JpdHlbImNyaXRpY2FsIl0gPSAwOworICAgIGZv
ciAoaSA9IDA7IGkgPCBub25Dcml0aWNhbFByaW9yaXRpZXMubGVuZ3RoOyArK2kpCisgICAgewor
ICAgICAgICBudW1SZXNwb25zZXNCeVByaW9yaXR5W25vbkNyaXRpY2FsUHJpb3JpdGllc1tpXV0g
PSAwOworICAgIH0KKworICAgIHZhciBudW1Qcmlvcml0eUl0ZXJhdGlvbnMgPSAxMDsKKyAgICB2
YXIgcHJpb3JpdGllc1RvVGVzdCA9IFtdOworICAgIGZvciAoaSA9IDA7IGkgPCBudW1Qcmlvcml0
eUl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICBmb3IgKGogPSAwOyBqIDwgbm9uQ3JpdGljYWxQ
cmlvcml0aWVzLmxlbmd0aDsgaiA9IGogKyAxKSB7CisgICAgICAgICAgICBwcmlvcml0aWVzVG9U
ZXN0LnB1c2gobm9uQ3JpdGljYWxQcmlvcml0aWVzW2pdKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBmb3IgKGkgPSAwOyBpIDwgbnVtUHJpb3JpdHlJdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAg
cHJpb3JpdGllc1RvVGVzdC5wdXNoKCJjcml0aWNhbCIpOworICAgIH0KKworICAgIHZhciBudW1M
ZWZ0ID0gcHJpb3JpdGllc1RvVGVzdC5sZW5ndGg7CisgICAgZm9yIChpID0gMDsgaSA8IHByaW9y
aXRpZXNUb1Rlc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByaW9yaXR5ID0gcHJpb3Jp
dGllc1RvVGVzdFtpXTsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
ICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICArK251bVJlc3Bv
bnNlc0J5UHJpb3JpdHlbdGhpcy5wcmlvcml0eV07CisgICAgICAgICAgICBpZiAobnVtUmVzcG9u
c2VzQnlQcmlvcml0eVt0aGlzLnByaW9yaXR5XSA9PSBudW1Qcmlvcml0eUl0ZXJhdGlvbnMpIHsK
KyAgICAgICAgICAgICAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgICAgICAgICBj
b21wbGV0aW9uVGltZUJ5UHJpb3JpdHlbdGhpcy5wcmlvcml0eV0gPSBub3cuZ2V0VGltZSgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1udW1MZWZ0OworICAgICAgICAgICAgaWYgKG51
bUxlZnQgPT0gMCkgeworICAgICAgICAgICAgICAgIGFsbERvbmUoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICB4aHIub3BlbigiR0VUIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvMTI1MS5odG1sIik7CisgICAgICAgIHhoci5wcmlv
cml0eSA9IHByaW9yaXR5OworICAgICAgICB4aHIuc2VuZCgpOworICAgIH0KK30KKworZnVuY3Rp
b24gdGVzdEVuYWJsZWQoKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICB0cnkgeworICAgICAgICB4aHIucHJpb3JpdHkgPSAiaW52YWxpZCI7CisgICAgfSBjYXRj
aCAoRXhjZXB0aW9uKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2lmICh0ZXN0RW5hYmxlZCgpKQorICAgIHBlcmZvcm1UZXN0KCk7CitlbHNl
CisgICAgbG9nKCJUZXN0IGRpc2FibGVkIGJlY2F1c2UgRU5BQkxFX1hIUl9QUklPUklUWSBpcyBm
YWxzZS4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NWM3YmRmYWRlNzBlMDdhZWVi
ZGI5OGM1Y2ZjYWIwNDJjZDIzZDQ4Li4zZjAzYTA0YTI2MTU0ODFkOTc2ODk4ZjgxMThhZGUyM2Qw
Yjc4ZWVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEwLTEwLTA3ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9u
amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBsZW1lbnQgWEhSIHByaW9yaXR5IGluIFdlYkNvcmUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2Nzc4CisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1wcmlvcml0eS5odG1s
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Qcmlvcml0aXpl
ZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZWxh
eWVkTG9hZGVyOjphcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5ZWRMb2FkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheWVkTG9hZGVyOjpEZWxheWVkTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGF5ZWRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
RGVsYXllZExvYWRlcjo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRpemVkTG9h
ZGVyUXVldWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmlvcml0aXplZExvYWRlclF1
ZXVlOjpQcmlvcml0aXplZExvYWRlclF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRp
emVkTG9hZGVyUXVldWU6OnJlcXVlc3RMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRp
emVkTG9hZGVyUXVldWU6OnRlcm1pbmF0ZUxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJpb3Jp
dGl6ZWRMb2FkZXJRdWV1ZTo6Y2FuY2VsKToKKyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRpemVk
TG9hZGVyUXVldWU6OnBvc3NpYmx5TG9hZE5leHRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlByaW9yaXRpemVkTG9hZGVyUXVldWVTZWxlY3Rvcjo6cmVxdWVzdExvYWQpOgorICAgICAgICAo
V2ViQ29yZTo6UHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZVNlbGVjdG9yOjp0ZXJtaW5hdGVMb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6OlByaW9yaXRpemVkTG9hZGVyUXVldWVTZWxlY3Rvcjo6Y2FuY2Vs
KToKKyAgICAgICAgKFdlYkNvcmU6OnByaW9yaXRpemVkUXVldWVTZWxlY3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6UHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpQcmlvcml0aXplZFhN
TEh0dHBSZXF1ZXN0TG9hZGVyOjp+UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpjYW5jZWwp
OgorICAgICAgICAoV2ViQ29yZTo6UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9h
ZGVyQXJnczo6TG9hZGVyQXJncyk6CisgICAgICAgICogbG9hZGVyL1ByaW9yaXRpemVkWE1MSHR0
cFJlcXVlc3RMb2FkZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQcmlvcml0aXplZFhN
TEh0dHBSZXF1ZXN0TG9hZGVyOjpyZWZUaHJlYWRhYmxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OmRlcmVmVGhyZWFkYWJsZUxvYWRl
cik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKwogMjAxMC0xMC0wNSAgRGllZ28gR29u
emFsZXogIDxkaWVnb2hjZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQppbmRleCA3MmFiNjQ3YjM3MTRjMjdhMWZmZGQ1MzhmYmZkYzE1MzIwYWJl
ZGEyLi5iOGFjNjMxNWEwNDE1ZjBlNzY2ODk2ODAwMWFhOThjNWIzZmE5ODc3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTE5NDYsNiArMTk0Niw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2FsbGJhY2suaCBcCiAJV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgXAog
CVdlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaCBcCisJV2ViQ29yZS9sb2FkZXIvUHJpb3Jp
dGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAgXAorCVdlYkNvcmUvbG9hZGVyL1ByaW9yaXRp
emVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuaCBcCiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcCBcCiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmggXAogCVdlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzM2N2NlZTM5ODdmNGZjNzE1
NTAzNzc1YjAzMmVlOWM1YWViMzM1NC4uZGY2OWNiNzNkMGMxYzFjYzA1YzQ0ODBhMmM5YzU3MjFl
ZjMwMmFkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTIwNjIsNiArMjA2Miw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL1Bv
bGljeUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCcs
CiAgICAgICAgICAgICAnbG9hZGVyL1BvbGljeUNoZWNrZXIuaCcsCisgICAgICAgICAgICAnbG9h
ZGVyL1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3BwJywKKyAgICAgICAgICAgICds
b2FkZXIvUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oJywKICAgICAgICAgICAgICds
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAn
LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjU0NmEwOWE2Mzk5Mzhk
NmNkNjc1N2QyNTQ3NmE2NGI3NjdlMTFmYi4uZWNmOWVkODdiZDViYjQyZmYxOGRjOWJjYzViZDNi
YTgwYmYwMmVhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMzg3
MSw2ICsyMzg3MSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxs
b2FkZXJcUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXFByb2dyZXNzVHJh
Y2tlci5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA5NGIzY2EyMjZmZDgxNTUyYzJjZTIxZGUzNGM0MGNkNjE0
NmQ0ODgyLi41MjhmNzNlOTBjNTZjY2EzNWJjNTU1NTUyODA5Y2ZiNDdlNGJkN2IyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ3MCw2ICsyNDcwLDgg
QEAKIAkJODVGRjMxNUEwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi87IH07CiAJCTg1RkYzMTVCMEFBRkJG
Q0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtl
eWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MjQzRDAxMTFCQzMxRjcwMENDMDA2QSAvKiBKU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3
SGVscGVyLmggKi87IH07CisJCTg2NzQyNzA2MTI1RTQyOEEwMEY5QzE0OCAvKiBQcmlvcml0aXpl
ZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2NzQyNzA0MTI1RTQyOEEwMEY5QzE0OCAvKiBQcmlvcml0aXplZFhN
TEh0dHBSZXF1ZXN0TG9hZGVyLmNwcCAqLzsgfTsKKwkJODY3NDI3MDcxMjVFNDI4QTAwRjlDMTQ4
IC8qIFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NzQyNzA1MTI1RTQyOEEwMEY5QzE0OCAvKiBQ
cmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmggKi87IH07CiAJCTg5MEFFMEUxMTI1NkEw
NzkwMEY1OTY4QyAvKiBEaXJlY3RvcnlSZWFkZXJCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTBBRTBFMDEyNTZBMDc5MDBGNTk2OEMgLyogRGly
ZWN0b3J5UmVhZGVyQmFzZS5oICovOyB9OwogCQk4OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyog
RmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4OTNDNDdBNTEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggKi87IH07CiAJ
CTg5M0M0N0E4MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5M0M0N0E2MTIzODkwOEIw
MDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLzsgfTsKQEAgLTg1MjEsNiArODUyMyw4
IEBACiAJCTg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERPTUtleWJvYXJkRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2MjQz
RDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4Njc0MjcwNDEyNUU0MjhBMDBGOUMxNDggLyogUHJp
b3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODY3NDI3MDUxMjVFNDI4QTAwRjlDMTQ4IC8qIFByaW9y
aXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTBBRTBFMDEyNTZBMDc5MDBGNTk2OEMgLyogRGlyZWN0b3J5UmVhZGVy
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEaXJlY3RvcnlSZWFkZXJC
YXNlLmg7IHBhdGggPSBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlckJhc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODkzQzQ3QTUxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlQ2FsbGJhY2suaDsgcGF0
aCA9IGZpbGVhcGkvRmlsZUNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg5M0M0N0E2MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZVdyaXRlckNhbGxiYWNrLmg7IHBhdGggPSBm
aWxlYXBpL0ZpbGVXcml0ZXJDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTcxMzIsNiArMTcxMzYsOCBAQAogCQkJCTk3MDU5OTc0MTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDYWxsYmFjay5oICovLAogCQkJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xp
Y3lDaGVja2VyLmNwcCAqLywKIAkJCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovLAorCQkJCTg2NzQyNzA0MTI1RTQyOEEwMEY5QzE0OCAvKiBQcmlvcml0aXpl
ZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmNwcCAqLywKKwkJCQk4Njc0MjcwNTEyNUU0MjhBMDBGOUMx
NDggLyogUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oICovLAogCQkJCTFBMkE2ODIx
MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIy
MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLywKIAkJCQk5NzlGNDNEMTEw
NzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgKi8sCkBAIC0yMDMyNCw2
ICsyMDMzMCw3IEBACiAJCQkJMzc5MTlDMjQwQjdEMTg4NjAwQTU2OTk4IC8qIFBvc2l0aW9uSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEN0QxMEU5QzFGMjUwMDBENkY3NSAvKiBQ
b3NpdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERB
RUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTg2NzQyNzA3MTI1RTQy
OEEwMEY5QzE0OCAvKiBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNFQzBDRDY4MUI1MDBGQURBNzUgLyogUHJv
Z3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyQTY4MjQwQjVCRURFNzAwMDJBNDgw
IC8qIFByb2dyZXNzVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjk1NSw2ICsyMjk2Miw3
IEBACiAJCQkJOTNGMTlBRjgwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTM3OTE5QzIzMEI3RDE4ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI3NzZENDNEMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmlu
dENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODY3NDI3MDYxMjVFNDI4QTAwRjlDMTQ4
IC8qIFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThFQTdFQkQwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNFQjBDRDY4MUI0MDBGQURBNzUgLyogUHJvZ3Jlc3NF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJBNjgyMzBCNUJFREU3MDAwMkE0ODAgLyog
UHJvZ3Jlc3NUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRl
ci9Qcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTBiYzEx
NjEwYTUzYjliZjdjMzVmMjM5YTM4YzhkZWEzZGVkZDM3Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5jcHAKQEAgLTAsMCAr
MSwyNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KFhIUl9QUklPUklUWSkKKworI2luY2x1ZGUgIlByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2Fk
ZXIuaCIKKworI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgY29uc3QgaW50IG1heEluRmxpZ2h0WGhyUGVyQ29udGV4dCA9IDQ7CisK
K2NsYXNzIERlbGF5ZWRMb2FkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBEZWxheWVkTG9hZGVy
KiBjcmVhdGUoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJn
cyYpOworCisgICAgdm9pZCBsb2FkKCk7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpOworCisg
ICAgY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgYXJn
cygpIHsgcmV0dXJuIG1fYXJnczsgfQorCitwcml2YXRlOgorICAgIERlbGF5ZWRMb2FkZXIoY29u
c3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYpOworCisgICAg
Y29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgbV9hcmdz
OworICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX3N1YkxvYWRlcjsKK307CisKK0RlbGF5
ZWRMb2FkZXIqIERlbGF5ZWRMb2FkZXI6OmNyZWF0ZShjb25zdCBQcmlvcml0aXplZFhNTEh0dHBS
ZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQoreworICAgIHJldHVybiBuZXcgRGVsYXll
ZExvYWRlcihhcmdzKTsKK30KKworRGVsYXllZExvYWRlcjo6RGVsYXllZExvYWRlcihjb25zdCBQ
cmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQorICAgIDog
bV9hcmdzKGFyZ3MpCit7Cit9CisKK3ZvaWQgRGVsYXllZExvYWRlcjo6bG9hZCgpCit7CisgICAg
bV9zdWJMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUobV9hcmdzLmNvbnRleHQsIG1f
YXJncy5jbGllbnQsIG1fYXJncy5yZXF1ZXN0LCBtX2FyZ3Mub3B0aW9ucyk7Cit9CisKK3ZvaWQg
RGVsYXllZExvYWRlcjo6Y2FuY2VsKCkKK3sKKyAgICBpZiAobV9zdWJMb2FkZXIpIHsKKyAgICAg
ICAgbV9zdWJMb2FkZXItPmNhbmNlbCgpOworICAgICAgICBtX3N1YkxvYWRlciA9IDA7CisgICAg
fQorfQorCitjbGFzcyBQcmlvcml0aXplZExvYWRlclF1ZXVlSW50ZXJmYWNlIHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdExvYWQoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVx
dWVzdExvYWRlcjo6TG9hZGVyQXJncyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
TG9hZChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRwUmVx
dWVzdExvYWRlcjo6TG9hZGVyQXJncyYpID0gMDsKK307CisKKworY2xhc3MgUHJpb3JpdGl6ZWRM
b2FkZXJRdWV1ZSA6IHB1YmxpYyBQcmlvcml0aXplZExvYWRlclF1ZXVlSW50ZXJmYWNlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZSogY3JlYXRlKCk7CisKKyAg
ICB2b2lkIHJlcXVlc3RMb2FkKGNvbnN0IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6
OkxvYWRlckFyZ3MmKTsKKyAgICB2b2lkIHRlcm1pbmF0ZUxvYWQoY29uc3QgUHJpb3JpdGl6ZWRY
TUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYpOworICAgIHZvaWQgY2FuY2VsKGNvbnN0
IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmKTsKKworcHJpdmF0
ZToKKyAgICBQcmlvcml0aXplZExvYWRlclF1ZXVlKCk7CisKKyAgICB2b2lkIHBvc3NpYmx5TG9h
ZE5leHRSZXF1ZXN0KCk7CisKKyAgICBpbnQgbV9udW1Dcml0aWNhbFJlcXVlc3RzSW5GbGlnaHQ7
CisgICAgVmVjdG9yPERlbGF5ZWRMb2FkZXIqPiBtX3F1ZXVlOworICAgIHR5cGVkZWYgSGFzaE1h
cDxUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KiwgRGVsYXllZExvYWRlcio+IEFjdGl2ZU1hcDsKKyAg
ICBBY3RpdmVNYXAgbV9hY3RpdmVMb2FkZXJzOworfTsKKworUHJpb3JpdGl6ZWRMb2FkZXJRdWV1
ZSogUHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZTo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbmV3IFBy
aW9yaXRpemVkTG9hZGVyUXVldWU7Cit9CisKK1ByaW9yaXRpemVkTG9hZGVyUXVldWU6OlByaW9y
aXRpemVkTG9hZGVyUXVldWUoKQorICAgIDogbV9udW1Dcml0aWNhbFJlcXVlc3RzSW5GbGlnaHQo
MCkKK3sKK30KKwordm9pZCBQcmlvcml0aXplZExvYWRlclF1ZXVlOjpyZXF1ZXN0TG9hZChjb25z
dCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQorewor
ICAgIERlbGF5ZWRMb2FkZXIqIGxvYWRlciA9IERlbGF5ZWRMb2FkZXI6OmNyZWF0ZShhcmdzKTsK
KyAgICBib29sIGRpZEluc2VydCA9IGZhbHNlOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9x
dWV1ZS5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9xdWV1ZVtpXS0+YXJncygpLnByaW9y
aXR5IDw9IGFyZ3MucHJpb3JpdHkpIHsKKyAgICAgICAgICAgIG1fcXVldWUuaW5zZXJ0KGksIGxv
YWRlcik7CisgICAgICAgICAgICBkaWRJbnNlcnQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFkaWRJbnNlcnQpCisgICAgICAgIG1fcXVldWUu
YXBwZW5kKGxvYWRlcik7CisgICAgcG9zc2libHlMb2FkTmV4dFJlcXVlc3QoKTsKK30KKwordm9p
ZCBQcmlvcml0aXplZExvYWRlclF1ZXVlOjp0ZXJtaW5hdGVMb2FkKGNvbnN0IFByaW9yaXRpemVk
WE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmIGFyZ3MpCit7CisgICAgQWN0aXZlTWFw
OjppdGVyYXRvciBpdCA9IG1fYWN0aXZlTG9hZGVycy5maW5kKGFyZ3MuY2xpZW50KTsKKyAgICBB
U1NFUlQoaXQgIT0gbV9hY3RpdmVMb2FkZXJzLmVuZCgpKTsKKyAgICBpZiAoYXJncy5wcmlvcml0
eSA9PSBYTUxIdHRwUmVxdWVzdDo6Q1JJVElDQUwpCisgICAgICAgIC0tbV9udW1Dcml0aWNhbFJl
cXVlc3RzSW5GbGlnaHQ7CisgICAgZGVsZXRlIGl0LT5zZWNvbmQ7CisgICAgbV9hY3RpdmVMb2Fk
ZXJzLnJlbW92ZShpdCk7CisgICAgcG9zc2libHlMb2FkTmV4dFJlcXVlc3QoKTsKK30KKwordm9p
ZCBQcmlvcml0aXplZExvYWRlclF1ZXVlOjpjYW5jZWwoY29uc3QgUHJpb3JpdGl6ZWRYTUxIdHRw
UmVxdWVzdExvYWRlcjo6TG9hZGVyQXJncyYgYXJncykKK3sKKyAgICBBY3RpdmVNYXA6Oml0ZXJh
dG9yIGl0ID0gbV9hY3RpdmVMb2FkZXJzLmZpbmQoYXJncy5jbGllbnQpOworICAgIGlmIChpdCAh
PSBtX2FjdGl2ZUxvYWRlcnMuZW5kKCkpCisgICAgICAgIGl0LT5zZWNvbmQtPmNhbmNlbCgpOwor
ICAgIGVsc2UgeworICAgICAgICBib29sIGRpZFJlbW92ZSA9IGZhbHNlOworICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG1fcXVldWUuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmICht
X3F1ZXVlW2ldLT5hcmdzKCkuY2xpZW50ID09IGFyZ3MuY2xpZW50KSB7CisgICAgICAgICAgICAg
ICAgZGVsZXRlIG1fcXVldWVbaV07CisgICAgICAgICAgICAgICAgbV9xdWV1ZS5yZW1vdmUoaSk7
CisgICAgICAgICAgICAgICAgZGlkUmVtb3ZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoZGlkUmVtb3ZlKTsK
KyAgICB9Cit9CisKK3ZvaWQgUHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZTo6cG9zc2libHlMb2FkTmV4
dFJlcXVlc3QoKQoreworICAgIGlmIChtX3F1ZXVlLmlzRW1wdHkoKSB8fCBtX2FjdGl2ZUxvYWRl
cnMuc2l6ZSgpID49IG1heEluRmxpZ2h0WGhyUGVyQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgRGVsYXllZExvYWRlciogbmV4dCA9IG1fcXVldWUubGFzdCgpOworICAgIGlmIChuZXh0
LT5hcmdzKCkucHJpb3JpdHkgPT0gWE1MSHR0cFJlcXVlc3Q6OkNSSVRJQ0FMKQorICAgICAgICAr
K21fbnVtQ3JpdGljYWxSZXF1ZXN0c0luRmxpZ2h0OworICAgIGVsc2UgaWYgKG1fbnVtQ3JpdGlj
YWxSZXF1ZXN0c0luRmxpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FjdGl2ZUxvYWRl
cnMuYWRkKG5leHQtPmFyZ3MoKS5jbGllbnQsIG5leHQpOworICAgIG5leHQtPmxvYWQoKTsKKyAg
ICBtX3F1ZXVlLnJlbW92ZUxhc3QoKTsKK30KKworY2xhc3MgUHJpb3JpdGl6ZWRMb2FkZXJRdWV1
ZVNlbGVjdG9yIDogUHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZUludGVyZmFjZSB7CitwdWJsaWM6Cisg
ICAgdm9pZCByZXF1ZXN0TG9hZChjb25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVy
OjpMb2FkZXJBcmdzJik7CisgICAgdm9pZCB0ZXJtaW5hdGVMb2FkKGNvbnN0IFByaW9yaXRpemVk
WE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmKTsKKyAgICB2b2lkIGNhbmNlbChjb25z
dCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJik7CisKK3ByaXZh
dGU6CisgICAgc3RydWN0IFByaW9yaXRpemVkTG9hZGVyUXVldWVJbmZvIHsKKyAgICAgICAgUHJp
b3JpdGl6ZWRMb2FkZXJRdWV1ZSogcXVldWU7CisgICAgICAgIGludCB1c2VDb3VudDsKKyAgICB9
OworICAgIHR5cGVkZWYgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUHJpb3JpdGl6
ZWRMb2FkZXJRdWV1ZUluZm8+IFByaW9yaXRpemVkTG9hZGVyUXVldWVNYXA7CisgICAgUHJpb3Jp
dGl6ZWRMb2FkZXJRdWV1ZU1hcCBtX3F1ZXVlSW5mb01hcDsKK307CisKK3ZvaWQgUHJpb3JpdGl6
ZWRMb2FkZXJRdWV1ZVNlbGVjdG9yOjpyZXF1ZXN0TG9hZChjb25zdCBQcmlvcml0aXplZFhNTEh0
dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQoreworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGtleSA9IGFyZ3MuY29udGV4dDsKKyAgICBQcmlvcml0aXplZExvYWRlclF1ZXVl
TWFwOjppdGVyYXRvciBpdCA9IG1fcXVldWVJbmZvTWFwLmZpbmQoa2V5KTsKKyAgICBpZiAoaXQg
PT0gbV9xdWV1ZUluZm9NYXAuZW5kKCkpIHsKKyAgICAgICAgaXQgPSBtX3F1ZXVlSW5mb01hcC5h
ZGQoa2V5LCBQcmlvcml0aXplZExvYWRlclF1ZXVlSW5mbygpKS5maXJzdDsKKyAgICAgICAgaXQt
PnNlY29uZC5xdWV1ZSA9IFByaW9yaXRpemVkTG9hZGVyUXVldWU6OmNyZWF0ZSgpOworICAgICAg
ICBpdC0+c2Vjb25kLnVzZUNvdW50ID0gMTsKKyAgICB9IGVsc2UKKyAgICAgICAgKytpdC0+c2Vj
b25kLnVzZUNvdW50OworICAgIGl0LT5zZWNvbmQucXVldWUtPnJlcXVlc3RMb2FkKGFyZ3MpOwor
fQorCit2b2lkIFByaW9yaXRpemVkTG9hZGVyUXVldWVTZWxlY3Rvcjo6dGVybWluYXRlTG9hZChj
b25zdCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjpMb2FkZXJBcmdzJiBhcmdzKQor
eworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGtleSA9IGFyZ3MuY29udGV4dDsKKyAgICBQ
cmlvcml0aXplZExvYWRlclF1ZXVlTWFwOjppdGVyYXRvciBpdCA9IG1fcXVldWVJbmZvTWFwLmZp
bmQoa2V5KTsKKyAgICBBU1NFUlQoaXQgIT0gbV9xdWV1ZUluZm9NYXAuZW5kKCkpOworICAgIGl0
LT5zZWNvbmQucXVldWUtPnRlcm1pbmF0ZUxvYWQoYXJncyk7CisgICAgLS1pdC0+c2Vjb25kLnVz
ZUNvdW50OworICAgIGlmICghaXQtPnNlY29uZC51c2VDb3VudCkgeworICAgICAgICBkZWxldGUg
aXQtPnNlY29uZC5wb29sOworICAgICAgICBtX3Bvb2xJbmZvTWFwLnJlbW92ZShpdCk7CisgICAg
fQorfQorCit2b2lkIFByaW9yaXRpemVkTG9hZGVyUXVldWVTZWxlY3Rvcjo6Y2FuY2VsKGNvbnN0
IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI6OkxvYWRlckFyZ3MmIGFyZ3MpCit7Cisg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoga2V5ID0gYXJncy5jb250ZXh0OworICAgIFByaW9y
aXRpemVkTG9hZGVyUXVldWVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9xdWV1ZUluZm9NYXAuZmluZChr
ZXkpOworICAgIEFTU0VSVChpdCAhPSBtX3F1ZXVlSW5mb01hcC5lbmQoKSk7CisgICAgaXQtPnNl
Y29uZC5xdWV1ZS0+Y2FuY2VsKGFyZ3MpOworfQorCitzdGF0aWMgUHJpb3JpdGl6ZWRMb2FkZXJR
dWV1ZVNlbGVjdG9yKiBwcmlvcml0aXplZFF1ZXVlU2VsZWN0b3IoKQoreworICAgIEF0b21pY2Fs
bHlJbml0aWFsaXplZFN0YXRpYyhQcmlvcml0aXplZExvYWRlclF1ZXVlU2VsZWN0b3IqLCBjb21w
b3NpdGUgPSBuZXcgUHJpb3JpdGl6ZWRMb2FkZXJRdWV1ZVNlbGVjdG9yKCkpOworICAgIHJldHVy
biBjb21wb3NpdGU7Cit9CisKK1Bhc3NSZWZQdHI8UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExv
YWRlcj4gUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQqIGNsaWVudCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucywgY29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5JiBwcmlvcml0eSkKK3sK
KyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgQVNTRVJUKGNsaWVudCk7CisKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIoY29udGV4dCwgY2xp
ZW50LCByZXF1ZXN0LCBvcHRpb25zLCBwcmlvcml0eSkpOworfQorCitQcmlvcml0aXplZFhNTEh0
dHBSZXF1ZXN0TG9hZGVyOjpQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucyYgb3B0aW9ucywgY29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5JiBwcmlvcml0eSkK
KyAgICA6IG1fYXJncyhjb250ZXh0LCBjbGllbnQsIHJlcXVlc3QsIG9wdGlvbnMsIHByaW9yaXR5
KQoreworICAgIHByaW9yaXRpemVkUXVldWVTZWxlY3RvcigpLT5yZXF1ZXN0TG9hZChtX2FyZ3Mp
OworfQorCitQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyOjp+UHJpb3JpdGl6ZWRYTUxI
dHRwUmVxdWVzdExvYWRlcigpCit7CisgICAgcHJpb3JpdGl6ZWRRdWV1ZVNlbGVjdG9yKCktPnRl
cm1pbmF0ZUxvYWQobV9hcmdzKTsKK30KKwordm9pZCBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0
TG9hZGVyOjpjYW5jZWwoKQoreworICAgIHByaW9yaXRpemVkUXVldWVTZWxlY3RvcigpLT5jYW5j
ZWwobV9hcmdzKTsKK30KKworUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6TG9hZGVy
QXJnczo6TG9hZGVyQXJncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUaHJlYWRh
YmxlTG9hZGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFhNTEh0dHBSZXF1
ZXN0OjpQcmlvcml0eSYgcHJpb3JpdHkpCisgICAgOiBjb250ZXh0KGNvbnRleHQpCisgICAgLCBj
bGllbnQoY2xpZW50KQorICAgICwgcmVxdWVzdChyZXF1ZXN0KQorICAgICwgb3B0aW9ucyhvcHRp
b25zKQorICAgICwgcHJpb3JpdHkocHJpb3JpdHkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYSFJfUFJJT1JJVFkpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9Qcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmggYi9XZWJDb3JlL2xv
YWRlci9Qcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJlNzQ0
MTQwM2VkZmUxMjU1OTliZGQ4YzEzZGZkZmEwODc4MmUxMAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvbG9hZGVyL1ByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIuaApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExv
YWRlcl9oCisjZGVmaW5lIFByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXJfaAorCisjaWYg
RU5BQkxFKFhIUl9QUklPUklUWSkKKworI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKKyNp
bmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQcmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8UHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcj4sIHB1
YmxpYyBUaHJlYWRhYmxlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQ
cmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFRocmVhZGFibGVMb2FkZXJDbGllbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIGNvbnN0IFhNTEh0dHBSZXF1ZXN0OjpQcmlv
cml0eSYpOworCisgICAgflByaW9yaXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXIoKTsKKworICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWwoKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcj46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByaW9y
aXRpemVkWE1MSHR0cFJlcXVlc3RMb2FkZXI+OjpkZXJlZjsKKworICAgIHN0cnVjdCBMb2FkZXJB
cmdzIHsKKyAgICAgICAgTG9hZGVyQXJncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFRocmVhZGFi
bGVMb2FkZXJPcHRpb25zJiwgY29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5Jik7CisKKyAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dDsKKyAgICAgICAgVGhyZWFkYWJs
ZUxvYWRlckNsaWVudCogY2xpZW50OworICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdDsKKyAgICAgICAgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAg
ICAgICAgY29uc3QgWE1MSHR0cFJlcXVlc3Q6OlByaW9yaXR5IHByaW9yaXR5OworICAgIH07CisK
K3ByaXZhdGU6CisgICAgUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgY29uc3QgWE1MSHR0cFJlcXVl
c3Q6OlByaW9yaXR5Jik7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmVGhyZWFkYWJsZUxvYWRlcigp
IHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZUaHJlYWRhYmxlTG9hZGVyKCkgeyBk
ZXJlZigpOyB9CisKKyAgICBMb2FkZXJBcmdzIG1fYXJnczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYSFJfUFJJT1JJVFkpCisKKyNlbmRpZiAvLyBQ
cmlvcml0aXplZFhNTEh0dHBSZXF1ZXN0TG9hZGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCBlZmJlMDdhOWExN2ExY2M0MWUyNzAyZDcxMmYwMTdkZjk5MTkxMzE2Li45ZjI2MTBmMmIyMTA1
OGM4YTY2ZmVmN2U3YTRlYTBjZTIwZjYyOWViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC01
MSw2ICs1MSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAorI2lmIEVOQUJMRShYSFJfUFJJT1JJVFkpCisj
aW5jbHVkZSAiUHJpb3JpdGl6ZWRYTUxIdHRwUmVxdWVzdExvYWRlci5oIgorI2VuZGlmCisKICNp
ZiBVU0UoSlNDKQogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCkBAIC01OTMsNyArNTk3LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIC8vIFRoaXMgaXMgdHJ1ZSB3aGlsZSBy
dW5uaW5nIG9udW5sb2FkIGhhbmRsZXJzLgogICAgICAgICAvLyBGSVhNRTogTWF5YmUgd2UgbmVl
ZCB0byBiZSBhYmxlIHRvIHNlbmQgWE1MSHR0cFJlcXVlc3RzIGZyb20gb251bmxvYWQsIDxodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwND4uCiAgICAgICAgIC8vIEZJ
WE1FOiBNYXliZSBjcmVhdGUoKSBjYW4gcmV0dXJuIG51bGwgZm9yIG90aGVyIHJlYXNvbnMgdG9v
PworI2lmIEVOQUJMRShYSFJfUFJJT1JJVFkpCisgICAgICAgIG1fbG9hZGVyID0gUHJpb3JpdGl6
ZWRYTUxIdHRwUmVxdWVzdExvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
dGhpcywgcmVxdWVzdCwgb3B0aW9ucywgbV9wcmlvcml0eSk7CisjZWxzZQogICAgICAgICBtX2xv
YWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IHRoaXMsIHJlcXVlc3QsIG9wdGlvbnMpOworI2VuZGlmCiAgICAgICAgIGlmIChtX2xvYWRlcikg
ewogICAgICAgICAgICAgLy8gTmVpdGhlciB0aGlzIG9iamVjdCBub3IgdGhlIEphdmFTY3JpcHQg
d3JhcHBlciBzaG91bGQgYmUgZGVsZXRlZCB3aGlsZQogICAgICAgICAgICAgLy8gYSByZXF1ZXN0
IGlzIGluIHByb2dyZXNzIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRoZSBsaXN0ZW5lcnMgYWxp
dmUsCg==
</data>
<flag name="review"
          id="59936"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>