<?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>28414</bug_id>
          
          <creation_ts>2009-08-17 17:43:17 -0700</creation_ts>
          <short_desc>Render -webkit-mask via compositing layers when possible</short_desc>
          <delta_ts>2009-08-17 20:57:50 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140927</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-17 17:43:17 -0700</bug_when>
    <thetext>We should render masks via compositing layers when the masked content is composited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140966</commentid>
    <comment_count>1</comment_count>
      <attachid>35009</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-17 18:33:32 -0700</bug_when>
    <thetext>Created attachment 35009
Patch, testcases, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140976</commentid>
    <comment_count>2</comment_count>
      <attachid>35009</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-08-17 19:35:27 -0700</bug_when>
    <thetext>Comment on attachment 35009
Patch, testcases, changelog

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140984</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-08-17 20:57:50 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/47410</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35009</attachid>
            <date>2009-08-17 18:33:32 -0700</date>
            <delta_ts>2009-08-17 19:35:26 -0700</delta_ts>
            <desc>Patch, testcases, changelog</desc>
            <filename>28414_patch.txt</filename>
            <type>text/plain</type>
            <size>41784</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMzRlYWJhLi43MzdkNGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDgt
MTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVyIC13ZWJraXQtbWFzayB2
aWEgY29tcG9zaXRpbmcgbGF5ZXJzIHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NDE0CisgICAgICAgIAorICAgICAgICBUZXN0
cyBmb3IgbWFza2VkLCBjb21wb3NpdGVkIGxheWVycy4KKworICAgICAgICAqIGNvbXBvc2l0aW5n
L21hc2tzL21hc2tlZC1hbmNlc3Rvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9t
YXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3Np
dGVkLW1hc2stZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9jb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLWV4cGVjdGVkLnBuZzog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1j
b21wb3NpdGVkLW1hc2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAwOS0wOC0xNiAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL21hc2tzL21hc2tlZC1h
bmNlc3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2Vz
dG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAzMTEwNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL21hc2tzL21hc2tlZC1hbmNl
c3Rvci5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRT4KKworPGh0bWw+Cis8aGVhZD4K
KyAgPHRpdGxlPk1hc2tzIHdpdGggY29tcG9zaXRlZCBjaGlsZHJlbjwvdGl0bGU+CisgIDxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgICAjY29udGFpbmVyIHsKKyAg
ICAgICAgaGVpZ2h0OiA1NjBweDsKKyAgICAgICAgd2lkdGg6IDI2MHB4OworICAgICAgICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAg
ICAgfQorICAgICAgLmJveCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
d2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBtYXJnaW46IDMw
cHg7CisgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibGFjazsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjpyZ2JhKDEwMCwgMTAwLCAyNTUsIDAuOCk7CisgICAgICAgIC13ZWJraXQtYm94LXNp
emluZzogYm9yZGVyLWJveDsKKyAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBibGFjayAwIDRw
eCA0cHg7CisgICAgICB9CisKKyAgICAgIC5jb21wb3NpdGluZyB7CisgICAgICAgIC13ZWJraXQt
dHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOworICAgICAgfQorCisgICAgICAubWFza2VkIHsKKyAg
ICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoLi4vcmVzb3VyY2VzL2FscGhhLWdyYWRpZW50
LnBuZyk7CisgICAgICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IHJlcGVhdC14OworICAgICAgfQor
CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICA8cD5UZXN0aW5nIG1hc2tzIG9uIGNv
bXBvc2l0aW5nIGxheWVycy4gTGVmdCBhbmQgcmlnaHQgY29sdW1ucyBzaG91bGQgbG9vayB0aGUg
c2FtZS48L3A+CisgIDxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9Im1hc2tlZCI+CisgICAgPGRp
diBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPC9kaXY+CisKKyAgPGRpdiBpZD0iY29udGFpbmVyIiBj
bGFzcz0ibWFza2VkIj4KKyAgICA8ZGl2IGNsYXNzPSJjb21wb3NpdGluZyBib3giPjwvZGl2Pgor
ICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbWFza3MvbXVsdGlwbGUtbWFza3MuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL21hc2tzL211bHRpcGxlLW1hc2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMGNjZGE2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL21hc2tzL211bHRpcGxlLW1hc2tzLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBF
PgorCis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+TXVsdGlwbGUgbWFzayBpbWFnZXM8L3RpdGxl
PgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgICAgI2NvbnRh
aW5lciB7CisgICAgICAgIGhlaWdodDogNTYwcHg7CisgICAgICAgIHdpZHRoOiAyNjBweDsKKyAg
ICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgIH0KKyAgICAgIC5ib3ggeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
bWFyZ2luOiAzMHB4OworICAgICAgICBib3JkZXI6IDEwcHggc29saWQgYmxhY2s7CisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6cmdiYSgxMDAsIDEwMCwgMjU1LCAwLjgpOworICAgICAgICAtd2Vi
a2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzog
YmxhY2sgMCA0cHggNHB4OworICAgICAgfQorCisgICAgICAuY29tcG9zaXRpbmcgeworICAgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICAgIH0KKworICAgICAgI2Nv
bnRhaW5lciAubWFza2VkIHsKKyAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoLi4vcmVz
b3VyY2VzL2FscGhhLWdyYWRpZW50LnBuZyksIHVybCguLi9yZXNvdXJjZXMvYWxwaGEtZ3JhZGll
bnQucG5nKTsKKyAgICAgICAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0OworICAgICAg
ICAtd2Via2l0LW1hc2stcG9zaXRpb246IDAgMCwgMTAwcHggMTAwcHg7CisgICAgICAgIC13ZWJr
aXQtbWFzay1zaXplOiA1MCU7CisgICAgICB9CisgICAgCisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKworICA8cD5UZXN0aW5nIG1hc2tzIG9uIGNvbXBvc2l0aW5nIGxheWVycy4gTGVmdCBh
bmQgcmlnaHQgY29sdW1ucyBzaG91bGQgbG9vayB0aGUgc2FtZS48L3A+CisgIDxkaXYgaWQ9ImNv
bnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0ibWFza2VkIGJveCI+PC9kaXY+CisgIDwvZGl2Pgor
CisgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRpdiBjbGFzcz0iY29tcG9zaXRpbmcgbWFz
a2VkIGJveCI+PC9kaXY+CisgIDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNr
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDczZWQ2YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3Np
dGVkLW1hc2suaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEU+CisKKzxodG1sPgorPGhl
YWQ+CisgIDx0aXRsZT5TaW1wbGUgY29tcG9zaXRlZCBtYXNrczwvdGl0bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgICAjY29udGFpbmVyIHsKKyAgICAg
ICAgaGVpZ2h0OiA1NjBweDsKKyAgICAgICAgd2lkdGg6IDI2MHB4OworICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAg
fQorICAgICAgLmJveCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lk
dGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBtYXJnaW46IDMwcHg7
CisgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibGFjazsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjpyZ2JhKDEwMCwgMTAwLCAyNTUsIDAuOCk7CisgICAgICAgIC13ZWJraXQtYm94LXNpemlu
ZzogYm9yZGVyLWJveDsKKyAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBibGFjayAwIDRweCA0
cHg7CisgICAgICB9CisKKyAgICAgIC5jb21wb3NpdGluZyB7CisgICAgICAgIC13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVaKDApOworICAgICAgfQorCisgICAgICAjY29udGFpbmVyIC5tYXNr
ZWQgeworICAgICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybCguLi9yZXNvdXJjZXMvYWxwaGEt
Z3JhZGllbnQucG5nKTsKKyAgICAgICAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0Owor
ICAgICAgfQorCisgICAgICAjY29udGFpbmVyIC5tYXNrZWQyIHsKKyAgICAgICAgLXdlYmtpdC1t
YXNrLWltYWdlOiB1cmwoLi4vcmVzb3VyY2VzL2FscGhhLWdyYWRpZW50LnBuZyk7CisgICAgICAg
IC13ZWJraXQtbWFzay1yZXBlYXQ6IHJlcGVhdDsKKyAgICAgICAgLXdlYmtpdC1tYXNrLXNpemU6
IDI1JTsKKyAgICAgIH0KKyAgICAKKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCisgIDxw
PlRlc3RpbmcgbWFza3Mgb24gY29tcG9zaXRpbmcgbGF5ZXJzLiBMZWZ0IGFuZCByaWdodCBjb2x1
bW5zIHNob3VsZCBsb29rIHRoZSBzYW1lLjwvcD4KKyAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAg
ICA8ZGl2IGNsYXNzPSJtYXNrZWQgYm94Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJtYXNrZWQy
IGJveCI+PC9kaXY+CisgIDwvZGl2PgorCisgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGRp
diBjbGFzcz0iY29tcG9zaXRpbmcgbWFza2VkIGJveCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29tcG9zaXRpbmcgbWFza2VkMiBib3giPjwvZGl2PgorICA8L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21h
c2tzL21hc2tlZC1hbmNlc3Rvci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQuY2hlY2tz
dW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdmNGE0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tYXNr
ZWQtYW5jZXN0b3ItZXhwZWN0ZWQuY2hlY2tzdW0KQEAgLTAsMCArMSBAQAorZDVmYmJmNmI0MTVk
NTM1YjgxNWZjM2E3ZjQ2MmYyNDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFu
Y2VzdG9yLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGlu
Zy9tYXNrcy9tYXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmYxMzNmNWYKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLWV4
cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9j
b21wb3NpdGluZy9tYXNrcy9tYXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL21hc2tlZC1hbmNlc3Rvci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJiN2ExYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9t
YXNrZWQtYW5jZXN0b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK2xheWVyIGF0ICgw
LDApIHNpemUgNzg1eDYxNgorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNzg1eDYwMAorbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDc4NXg2MTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc2OXg2MDAK
KyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc2OXgxOAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MjR4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA1MjQ6ICJUZXN0aW5nIG1hc2tzIG9uIGNvbXBvc2l0aW5nIGxheWVycy4g
TGVmdCBhbmQgcmlnaHQgY29sdW1ucyBzaG91bGQgbG9vayB0aGUgc2FtZS4iCisgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNCkgc2l6ZSA3Njl4NTY2CisgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMjYyLDU0OCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDI2Miw1NDgpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIg
YXQgKDgsNDIpIHNpemUgMjYyeDU2MgorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDI2Mng1NjIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KK2xheWVyIGF0ICgzOSw3Mykg
c2l6ZSAyMDR4MjA4CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBh
dCAoMzEsMzEpIHNpemUgMjAweDIwMCBbYmdjb2xvcj0jNjQ2NEZGQ0NdIFtib3JkZXI6ICgxMHB4
IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDI3NCw0Mikgc2l6ZSAyNjJ4NTYyCisgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgyNjYsMCkgc2l6ZSAyNjJ4NTYyIFtib3JkZXI6ICgxcHggc29saWQg
IzAwMDAwMCldCitsYXllciBhdCAoMzA1LDczKSBzaXplIDIwNHgyMDgKKyAgUmVuZGVyQmxvY2sg
KHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwzMSkgc2l6ZSAyMDB4MjAwIFtiZ2Nv
bG9yPSM2NDY0RkZDQ10gW2JvcmRlcjogKDEwcHggc29saWQgIzAwMDAwMCldCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3MvbXVsdGlwbGUtbWFz
a3MtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRp
bmcvbWFza3MvbXVsdGlwbGUtbWFza3MtZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNGY4Zjg0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tdWx0aXBsZS1tYXNrcy1leHBlY3Rl
ZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACisxZDRhYTc0ZDM0MWI4ZGM0YTIyMTE0MGI4NGYwMzFj
ZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tdWx0aXBsZS1tYXNrcy1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3MvbXVsdGlwbGUtbWFz
a3MtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZGRm
YjIKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y29tcG9zaXRpbmcvbWFza3MvbXVsdGlwbGUtbWFza3MtZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL211bHRp
cGxlLW1hc2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3Np
dGluZy9tYXNrcy9tdWx0aXBsZS1tYXNrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDY5YjZhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9tdWx0aXBsZS1tYXNrcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDYwMAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzY5eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDUyNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUyNDogIlRlc3Rp
bmcgbWFza3Mgb24gY29tcG9zaXRpbmcgbGF5ZXJzLiBMZWZ0IGFuZCByaWdodCBjb2x1bW5zIHNo
b3VsZCBsb29rIHRoZSBzYW1lLiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgw
LDM0KSBzaXplIDc2OXg1NjYKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSAyNjJ4NTYyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMjYyLDU0OCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDI2Miw1NDgpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjY2
LDApIHNpemUgMjYyeDU2MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDM5LDczKSBzaXplIDIwNHgyMDgKKyAgUmVuZGVyQmxv
Y2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwzMSkgc2l6ZSAyMDB4MjAwIFti
Z2NvbG9yPSM2NDY0RkZDQ10gW2JvcmRlcjogKDEwcHggc29saWQgIzAwMDAwMCldCitsYXllciBh
dCAoMzA1LDczKSBzaXplIDIwNHgyMDgKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgzMSwzMSkgc2l6ZSAyMDB4MjAwIFtiZ2NvbG9yPSM2NDY0RkZDQ10gW2Jv
cmRlcjogKDEwcHggc29saWQgIzAwMDAwMCldCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9z
aW1wbGUtY29tcG9zaXRlZC1tYXNrLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjZjNDNhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay1l
eHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACitmNzJiNDNiODhjNTIwOTRmZWYxYTFlMzQw
Mjk5MGQzYQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNrcy9zaW1wbGUtY29tcG9zaXRlZC1tYXNr
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9tYXNr
cy9zaW1wbGUtY29tcG9zaXRlZC1tYXNrLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42MGMwODBjCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVk
LW1hc2stZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL21hc2tzL3NpbXBsZS1j
b21wb3NpdGVkLW1hc2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmQ4OWVjZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvY29tcG9zaXRpbmcvbWFza3Mvc2ltcGxlLWNvbXBvc2l0ZWQtbWFzay1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyNCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4NjE2CisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA3ODV4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2MTYKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNzg1eDYxNgorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzY5eDYwMAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDApIHNpemUgNzY5eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDUyNHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUyNDogIlRlc3Rpbmcg
bWFza3Mgb24gY29tcG9zaXRpbmcgbGF5ZXJzLiBMZWZ0IGFuZCByaWdodCBjb2x1bW5zIHNob3Vs
ZCBsb29rIHRoZSBzYW1lLiIKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM0
KSBzaXplIDc2OXg1NjYKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAy
NjJ4NTYyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMjYyLDU0OCkgc2l6ZSA0eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDI2
Miw1NDgpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjY2LDAp
IHNpemUgMjYyeDU2MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorbGF5ZXIgYXQgKDM5LDczKSBzaXplIDIwNHgyMDgKKyAgUmVuZGVyQmxvY2sg
KHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgzMSwzMSkgc2l6ZSAyMDB4MjAwIFtiZ2Nv
bG9yPSM2NDY0RkZDQ10gW2JvcmRlcjogKDEwcHggc29saWQgIzAwMDAwMCldCitsYXllciBhdCAo
MzksMzAzKSBzaXplIDIwNHgyMDgKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICgzMSwyNjEpIHNpemUgMjAweDIwMCBbYmdjb2xvcj0jNjQ2NEZGQ0NdIFtib3Jk
ZXI6ICgxMHB4IHNvbGlkICMwMDAwMDApXQorbGF5ZXIgYXQgKDMwNSw3Mykgc2l6ZSAyMDR4MjA4
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMzEsMzEpIHNp
emUgMjAweDIwMCBbYmdjb2xvcj0jNjQ2NEZGQ0NdIFtib3JkZXI6ICgxMHB4IHNvbGlkICMwMDAw
MDApXQorbGF5ZXIgYXQgKDMwNSwzMDMpIHNpemUgMjA0eDIwOAorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDMxLDI2MSkgc2l6ZSAyMDB4MjAwIFtiZ2NvbG9y
PSM2NDY0RkZDQ10gW2JvcmRlcjogKDEwcHggc29saWQgIzAwMDAwMCldCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUwMmUyZWEuLjdlMTMz
YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzggQEAKKzIwMDktMDgtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBSZW5kZXIgLXdlYmtpdC1tYXNrIHZpYSBjb21wb3NpdGluZyBsYXllcnMg
d2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjg0MTQKKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZyBvZiAtd2Via2l0LW1hc2ssIHdoZW4gY29tYmluZWQKKyAgICAgICAgd2l0aCBhbHJl
YWR5LWNvbXBvc2l0ZWQgY29udGVudC4KKyAgICAgICAgCisgICAgICAgIFJlbmRlckxheWVyQmFj
a2luZyBub3cgY3JlYXRlcyBhbiBhZGRpdGlvbmFsIEdyYXBoaWNzTGF5ZXIgZm9yIHRoZSBtYXNr
IGNvbnRlbnRzLAorICAgICAgICBhbmQgc2V0cyB0aGlzIGFzIHRoZSBtYXNrIG9uIGFub3RoZXIg
R3JhcGhpY3NMYXllciB2aWEgdGhlIHNldE1hc2tMYXllcigpIG1ldGhvZC4KKyAgICAgICAgR3Jh
cGhpY3NMYXllckNBIHRoZW4gYXBwbGllcyB0aGUgbWFzayB1c2luZyAtW0NBTGF5ZXIgc2V0TWFz
azpdLgorICAgICAgICAKKyAgICAgICAgVGhlIGVudW0gdmFsdWVzIGZvciBHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSB3ZXJlIHJlbmFtZWQgdG8gYXZvaWQgdGhlCisgICAgICAgIGNvbmZ1c2lv
biB3aXRoICJtYXNrIiwgYW5kIGEgbmV3IHZhbHVlLCBHcmFwaGljc0xheWVyUGFpbnRNYXNrLCB3
YXMgYWRkZWQgd2hpY2gKKyAgICAgICAgaW5kaWNhdGVzIHRoYXQganVzdCB0aGUgbWFzayBpcyBw
YWludGluZy4KKyAgICAgICAgCisgICAgICAgIFdoZW4gcGFpbnRpbmcgdGhlIGNvbXBvc2l0ZWQg
bWFzaywgd2UgbmVlZCB0byBwYWludCB3aXRoIHRoZSBub3JtYWwgY29tcG9zaXRpbmcKKyAgICAg
ICAgbW9kZSByYXRoZXIgdGhhbiBDb21wb3NpdGVEZXN0aW5hdGlvbkluLCBzbyBJbmxpbmVGbG93
Qm94IGFuZCBSZW5kZXJCb3ggbm93IGNvbnN1bHQKKyAgICAgICAgbGF5ZXIoKS0+aGFzQ29tcG9z
aXRlZE1hc2soKSB0byBwaWNrIHRoZSBtb2RlLiBJZiB0aGUgbWFzayBpcyBjb21wb3NpdGVkLCB0
aGV5IG5vIGxvbmdlcgorICAgICAgICBuZWVkIHRvIG1ha2UgdHJhbnNwYXJlbmN5IGxheWVycy4K
KyAgICAgICAgCisgICAgICAgIFdlIG5vIGxvbmdlciBoYXZlIHRvIHRocm93IHZpZGVvIHJlbmRl
cmluZyBpbnRvIHNvZnR3YXJlIGJlY2F1c2Ugb2YgbWFza3MuCisgICAgICAgIAorICAgICAgICBX
aGVuIGEgbWFza2VkIGVsZW1lbnQgaGFzIGNvbXBvc2l0ZWQgZGVzY2VuZGFudHMsIHRoYXQgZWxl
bWVudCBuZWVkcyB0bworICAgICAgICBiZWNvbWUgY29tcG9zaXRlZCBzbyB0aGF0IHRoZSBtYXNr
IGNhbiBiZSBhcHBsaWVkIHZpYSBjb21wb3NpdGluZy4KKworICAgICAgICBUZXN0czogY29tcG9z
aXRpbmcvbWFza3MvbWFza2VkLWFuY2VzdG9yLmh0bWwKKyAgICAgICAgICAgICAgIGNvbXBvc2l0
aW5nL21hc2tzL3NpbXBsZS1jb21wb3NpdGVkLW1hc2suaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpHcmFwaGljc0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjptYXNrTGF5ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0TWFza0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnBhaW50aW5nUGhhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6c2V0UGFpbnRpbmdQaGFzZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6Oik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDQTo6c2V0TWFza0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
QTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZU1hc2tMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGFpbnRNYXNrKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6cGFpbnRNYXNrSW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omhhc0NvbXBvc2l0ZWRNYXNrKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpoYXNDb21wb3NpdGVkTWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
On5SZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdyb3VuZExh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlTWFza0xh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRpbmdQaGFz
ZUZvclByaW1hcnlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnNldENvbnRlbnRzTmVlZERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6Omhhc01hc2tMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNhbkFjY2VsZXJhdGVWaWRlb1JlbmRlcmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdXaGVuRGVzY2Vu
ZGFudHNBcmVDb21wb3NpdGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oOgorCiAyMDA5LTA4LTE3ICBZb25nIExpICA8eW9uZy5saUB0b3JjaG1vYmlsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDdkNDM4MzIuLmIzNzViZDMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNjksMTAgKzY5
LDExIEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCog
Y2xpZW50KQogICAgICwgbV91c2luZ1RpbGVkTGF5ZXIoZmFsc2UpCiAgICAgLCBtX21hc2tzVG9C
b3VuZHMoZmFsc2UpCiAgICAgLCBtX2RyYXdzQ29udGVudChmYWxzZSkKLSAgICAsIG1fcGFpbnRp
bmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRBbGxNYXNrKQorICAgICwgbV9wYWludGluZ1BoYXNl
KEdyYXBoaWNzTGF5ZXJQYWludEFsbCkKICAgICAsIG1fZ2VvbWV0cnlPcmllbnRhdGlvbihDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bikKICAgICAsIG1fY29udGVudHNPcmllbnRhdGlvbihD
b21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bikKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBt
X21hc2tMYXllcigwKQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVwYWludENvdW50KDApCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggODQ3
NDE3Ny4uZDNlNWZiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKQEAgLTE4MSw2ICsxODEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVBbGxDaGlsZHJl
bigpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVGcm9tUGFyZW50KCk7CiAKKyAgICBHcmFwaGlj
c0xheWVyKiBtYXNrTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX21hc2tMYXllcjsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpIHsgbV9tYXNrTGF5
ZXIgPSBsYXllcjsgfQorICAgIAogICAgIC8vIE9mZnNldCBpcyBvcmlnaW4gb2YgdGhlIHJlbmRl
cmVyIG1pbnVzIG9yaWdpbiBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgKHNvIGVpdGhlciB6ZXJvIG9y
IG5lZ2F0aXZlKS4KICAgICBJbnRTaXplIG9mZnNldEZyb21SZW5kZXJlcigpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0RnJvbVJlbmRlcmVyOyB9CiAgICAgdm9pZCBzZXRPZmZzZXRGcm9tUmVuZGVy
ZXIoY29uc3QgSW50U2l6ZSYgb2Zmc2V0KSB7IG1fb2Zmc2V0RnJvbVJlbmRlcmVyID0gb2Zmc2V0
OyB9CkBAIC0yMzAsOCArMjMzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFj
aXR5KGZsb2F0IG9wYWNpdHkpIHsgbV9vcGFjaXR5ID0gb3BhY2l0eTsgfQogCiAgICAgLy8gU29t
ZSBHcmFwaGljc0xheWVycyBwYWludCBvbmx5IHRoZSBmb3JlZ3JvdW5kIG9yIHRoZSBiYWNrZ3Jv
dW5kIGNvbnRlbnQKLSAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBkcmF3aW5nUGhhc2Uo
KSBjb25zdCB7IHJldHVybiBtX3BhaW50aW5nUGhhc2U7IH0KLSAgICB2b2lkIHNldERyYXdpbmdQ
aGFzZShHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwaGFzZSkgeyBtX3BhaW50aW5nUGhhc2Ug
PSBwaGFzZTsgfQorICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2Uo
KSBjb25zdCB7IHJldHVybiBtX3BhaW50aW5nUGhhc2U7IH0KKyAgICB2b2lkIHNldFBhaW50aW5n
UGhhc2UoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgcGhhc2UpIHsgbV9wYWludGluZ1BoYXNl
ID0gcGhhc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSA9IDA7CiAg
ICAgLy8gbWFyayB0aGUgZ2l2ZW4gcmVjdCAoaW4gbGF5ZXIgY29vcmRzKSBhcyBuZWVkaW5nIGRp
c3BheS4gTmV2ZXIgZ29lcyBkZWVwLgpAQCAtMzQ4LDYgKzM1MSw4IEBAIHByb3RlY3RlZDoKICAg
ICBWZWN0b3I8R3JhcGhpY3NMYXllcio+IG1fY2hpbGRyZW47CiAgICAgR3JhcGhpY3NMYXllciog
bV9wYXJlbnQ7CiAKKyAgICBHcmFwaGljc0xheWVyKiBtX21hc2tMYXllcjsgLy8gUmVmZXJlbmNl
IHRvIG1hc2sgbGF5ZXIuIFdlIGRvbid0IG93biB0aGlzLgorCiAgICAgSW50UmVjdCBtX2NvbnRl
bnRzUmVjdDsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggOGMwYjdlZC4uNWZhY2M5NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTM3LDkg
KzM3LDEwIEBAIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBGbG9hdFBvaW50OwogCiBlbnVtIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlIHsKLSAgICBHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5k
TWFzayA9ICgxIDw8IDApLAotICAgIEdyYXBoaWNzTGF5ZXJQYWludEZvcmVncm91bmRNYXNrID0g
KDEgPDwgMSksCi0gICAgR3JhcGhpY3NMYXllclBhaW50QWxsTWFzayA9IChHcmFwaGljc0xheWVy
UGFpbnRCYWNrZ3JvdW5kTWFzayB8IEdyYXBoaWNzTGF5ZXJQYWludEZvcmVncm91bmRNYXNrKQor
ICAgIEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQgPSAoMSA8PCAwKSwKKyAgICBHcmFwaGlj
c0xheWVyUGFpbnRGb3JlZ3JvdW5kID0gKDEgPDwgMSksCisgICAgR3JhcGhpY3NMYXllclBhaW50
TWFzayA9ICgxIDw8IDIpLAorICAgIEdyYXBoaWNzTGF5ZXJQYWludEFsbCA9IChHcmFwaGljc0xh
eWVyUGFpbnRCYWNrZ3JvdW5kIHwgR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZCB8IEdyYXBo
aWNzTGF5ZXJQYWludE1hc2spCiB9OwogCiBlbnVtIEFuaW1hdGVkUHJvcGVydHlJRCB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGVi
ZGM2YWMuLmQxYmRiN2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dy
YXBoaWNzTGF5ZXJDQS5oCkBAIC02Miw2ICs2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVGcm9tUGFyZW50KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVy
KEdyYXBoaWNzTGF5ZXIqKTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRQb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0
UG9pbnQzRCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOwpA
QCAtMTcyLDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1ZpZGVv
KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1JlY3QoKTsKICAgICB2b2lkIHVwZGF0ZUdlb21l
dHJ5T3JpZW50YXRpb24oKTsKKyAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcigpOwogCiAgICAgdm9p
ZCB1cGRhdGVMYXllckFuaW1hdGlvbnMoKTsKIApAQCAtMjAwLDcgKzIwMyw4IEBAIHByaXZhdGU6
CiAgICAgICAgIENvbnRlbnRzSW1hZ2VDaGFuZ2VkID0gMSA8PCAxNywKICAgICAgICAgQ29udGVu
dHNWaWRlb0NoYW5nZWQgPSAxIDw8IDE4LAogICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkID0g
MSA8PCAxOSwKLSAgICAgICAgR2VvbWV0cnlPcmllbnRhdGlvbkNoYW5nZWQgPSAxIDw8IDIwCisg
ICAgICAgIEdlb21ldHJ5T3JpZW50YXRpb25DaGFuZ2VkID0gMSA8PCAyMCwKKyAgICAgICAgTWFz
a0xheWVyQ2hhbmdlZCA9IDEgPDwgMjEKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5
ZXJDaGFuZ2VGbGFnczsKICAgICB2b2lkIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChMYXllckNo
YW5nZUZsYWdzIGZsYWdzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dyYXBoaWNzTGF5ZXJDQS5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dy
YXBoaWNzTGF5ZXJDQS5tbQppbmRleCA2NDQ1YmNmLi42ZmMwMTdhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW0KKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCkBAIC00MzIsNiArNDMy
LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZW1vdmVGcm9tUGFyZW50KCkKICAgICBHcmFw
aGljc0xheWVyOjpyZW1vdmVGcm9tUGFyZW50KCk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNB
OjpzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCit7CisgICAgaWYgKGxheWVyID09
IG1fbWFza0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyOjpzZXRN
YXNrTGF5ZXIobGF5ZXIpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChNYXNrTGF5ZXJD
aGFuZ2VkKTsKK30KKwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHBvaW50KQogewogICAgIGlmIChwb2ludCA9PSBtX3Bvc2l0aW9uKQpAQCAtNzMz
LDYgKzc0Miw5IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2Vz
KCkKIHsKICAgICBjb21taXRMYXllckNoYW5nZXMoKTsKIAorICAgIGlmIChtX21hc2tMYXllcikK
KyAgICAgICAgc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBKj4obV9tYXNrTGF5ZXIpLT5jb21t
aXRMYXllckNoYW5nZXMoKTsKKwogICAgIGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mIGNo
aWxkTGF5ZXJzID0gY2hpbGRyZW4oKTsKICAgICBzaXplX3QgbnVtQ2hpbGRyZW4gPSBjaGlsZExh
eWVycy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1DaGlsZHJlbjsgKytp
KSB7CkBAIC04MTIsNiArODI0LDkgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVy
Q2hhbmdlcygpCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgR2VvbWV0cnlPcmllbnRh
dGlvbkNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZUdlb21ldHJ5T3JpZW50YXRpb24oKTsKIAorICAg
IGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIE1hc2tMYXllckNoYW5nZWQpCisgICAgICAgIHVw
ZGF0ZU1hc2tMYXllcigpOworCiAgICAgbV91bmNvbW1pdHRlZENoYW5nZXMgPSBOb0NoYW5nZTsK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBAIC0xMDk0LDYgKzExMDksMTIgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUdlb21ldHJ5T3JpZW50YXRpb24oKQogI2VuZGlm
CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVNYXNrTGF5ZXIoKQoreworICAgIENB
TGF5ZXIqIG1hc2tDQUxheWVyID0gbV9tYXNrTGF5ZXIgPyBtX21hc2tMYXllci0+cGxhdGZvcm1M
YXllcigpIDogMDsKKyAgICBbbV9sYXllci5nZXQoKSBzZXRNYXNrOm1hc2tDQUxheWVyXTsKK30K
Kwogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVyQW5pbWF0aW9ucygpCiB7CiAgICAg
aWYgKG1fdHJhbnNpdGlvblByb3BlcnRpZXNUb1JlbW92ZS5zaXplKCkpIHsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKaW5kZXggNTQzYzE5MC4uOThjNWM0MyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJSb290SW5saW5l
Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUu
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSb290SW5saW5lQm94
LmgiCkBAIC03NzQsMTggKzc3NSwyMyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50TWFzayhS
ZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eQogICAgIGlu
dCB3ID0gd2lkdGgoKTsKICAgICBpbnQgaCA9IGhlaWdodCgpOwogCi0gICAgLy8gRmlndXJlIG91
dCBpZiB3ZSBuZWVkIHRvIHB1c2ggYSB0cmFuc3BhcmVuY3kgbGF5ZXIgdG8gcmVuZGVyIG91ciBt
YXNrLgotICAgIGJvb2wgcHVzaFRyYW5zcGFyZW5jeUxheWVyID0gZmFsc2U7CiAgICAgY29uc3Qg
TmluZVBpZWNlSW1hZ2UmIG1hc2tOaW5lUGllY2VJbWFnZSA9IHJlbmRlcmVyKCktPnN0eWxlKCkt
Pm1hc2tCb3hJbWFnZSgpOwogICAgIFN0eWxlSW1hZ2UqIG1hc2tCb3hJbWFnZSA9IHJlbmRlcmVy
KCktPnN0eWxlKCktPm1hc2tCb3hJbWFnZSgpLmltYWdlKCk7Ci0gICAgaWYgKChtYXNrQm94SW1h
Z2UgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFza0xheWVycygpLT5oYXNJbWFnZSgpKSB8fCBy
ZW5kZXJlcigpLT5zdHlsZSgpLT5tYXNrTGF5ZXJzKCktPm5leHQoKSkKLSAgICAgICAgcHVzaFRy
YW5zcGFyZW5jeUxheWVyID0gdHJ1ZTsKLSAgICAKLSAgICBDb21wb3NpdGVPcGVyYXRvciBjb21w
b3NpdGVPcCA9IENvbXBvc2l0ZURlc3RpbmF0aW9uSW47Ci0gICAgaWYgKHB1c2hUcmFuc3BhcmVu
Y3lMYXllcikgewotICAgICAgICBwYWludEluZm8uY29udGV4dC0+c2V0Q29tcG9zaXRlT3BlcmF0
aW9uKENvbXBvc2l0ZURlc3RpbmF0aW9uSW4pOwotICAgICAgICBwYWludEluZm8uY29udGV4dC0+
YmVnaW5UcmFuc3BhcmVuY3lMYXllcigxLjBmKTsKLSAgICAgICAgY29tcG9zaXRlT3AgPSBDb21w
b3NpdGVTb3VyY2VPdmVyOworCisgICAgLy8gRmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIHB1c2gg
YSB0cmFuc3BhcmVuY3kgbGF5ZXIgdG8gcmVuZGVyIG91ciBtYXNrLgorICAgIGJvb2wgcHVzaFRy
YW5zcGFyZW5jeUxheWVyID0gZmFsc2U7CisgICAgYm9vbCBjb21wb3NpdGVkTWFzayA9IHJlbmRl
cmVyKCktPmhhc0xheWVyKCkgJiYgYm94TW9kZWxPYmplY3QoKS0+bGF5ZXIoKS0+aGFzQ29tcG9z
aXRlZE1hc2soKTsKKyAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCA9IENvbXBvc2l0
ZVNvdXJjZU92ZXI7CisgICAgaWYgKCFjb21wb3NpdGVkTWFzaykgeworICAgICAgICBpZiAoKG1h
c2tCb3hJbWFnZSAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5tYXNrTGF5ZXJzKCktPmhhc0ltYWdl
KCkpIHx8IHJlbmRlcmVyKCktPnN0eWxlKCktPm1hc2tMYXllcnMoKS0+bmV4dCgpKQorICAgICAg
ICAgICAgcHVzaFRyYW5zcGFyZW5jeUxheWVyID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGNv
bXBvc2l0ZU9wID0gQ29tcG9zaXRlRGVzdGluYXRpb25JbjsKKyAgICAgICAgaWYgKHB1c2hUcmFu
c3BhcmVuY3lMYXllcikgeworICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNldENvbXBv
c2l0ZU9wZXJhdGlvbihDb21wb3NpdGVEZXN0aW5hdGlvbkluKTsKKyAgICAgICAgICAgIHBhaW50
SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKDEuMGYpOworICAgICAgICAgICAg
Y29tcG9zaXRlT3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgcGFpbnRGaWxsTGF5ZXJzKHBhaW50SW5mbywgQ29sb3IoKSwgcmVuZGVyZXIoKS0+c3R5bGUo
KS0+bWFza0xheWVycygpLCB0eCwgdHksIHcsIGgsIGNvbXBvc2l0ZU9wKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IDkwN2RiNGEuLmJlYzJjZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtNjUyLDMxICs2NTIsMzYgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyhj
b25zdCBQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHksIGludAogewogICAgIC8v
IEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBwdXNoIGEgdHJhbnNwYXJlbmN5IGxheWVyIHRvIHJl
bmRlciBvdXIgbWFzay4KICAgICBib29sIHB1c2hUcmFuc3BhcmVuY3lMYXllciA9IGZhbHNlOwot
ICAgIFN0eWxlSW1hZ2UqIG1hc2tCb3hJbWFnZSA9IHN0eWxlKCktPm1hc2tCb3hJbWFnZSgpLmlt
YWdlKCk7Ci0gICAgaWYgKG1hc2tCb3hJbWFnZSAmJiBzdHlsZSgpLT5tYXNrTGF5ZXJzKCktPmhh
c0ltYWdlKCkpIHsKLSAgICAgICAgcHVzaFRyYW5zcGFyZW5jeUxheWVyID0gdHJ1ZTsKLSAgICB9
IGVsc2UgewotICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBhbiBleHRyYSBpbWFnZSBidWZmZXIg
dG8gaG9sZCB0aGUgbWFzay4gTXVsdGlwbGUgbWFzayBpbWFnZXMgbmVlZAotICAgICAgICAvLyB0
byBjb21wb3NpdGUgdG9nZXRoZXIgdXNpbmcgc291cmNlLW92ZXIgc28gdGhhdCB0aGV5IGNhbiB0
aGVuIGNvbWJpbmUgaW50byBhIHNpbmdsZSB1bmlmaWVkIG1hc2sgdGhhdAotICAgICAgICAvLyBj
YW4gYmUgY29tcG9zaXRlZCB3aXRoIHRoZSBjb250ZW50IHVzaW5nIGRlc3RpbmF0aW9uLWluLiAg
U1ZHIGltYWdlcyBuZWVkIHRvIGJlIGFibGUgdG8gc2V0IGNvbXBvc2l0aW5nIG1vZGVzCi0gICAg
ICAgIC8vIGFzIHRoZXkgZHJhdyBpbWFnZXMgY29udGFpbmVkIGluc2lkZSB0aGVpciBzdWItZG9j
dW1lbnQsIHNvIHdlIHBhaW50IGFsbCBvdXIgaW1hZ2VzIGludG8gYSBzZXBhcmF0ZSBidWZmZXIK
LSAgICAgICAgLy8gYW5kIGNvbXBvc2l0ZSB0aGF0IGJ1ZmZlciBhcyB0aGUgbWFzay4KLSAgICAg
ICAgLy8gV2UgaGF2ZSB0byBjaGVjayB0aGF0IHRoZSBtYXNrIGltYWdlcyB0byBiZSByZW5kZXJl
ZCBjb250YWluIGF0IGxlYXN0IG9uZSBpbWFnZSB0aGF0IGNhbiBiZSBhY3R1YWxseSB1c2VkIGlu
IHJlbmRlcmluZwotICAgICAgICAvLyBiZWZvcmUgcHVzaGluZyB0aGUgdHJhbnNwYXJlbmN5IGxh
eWVyLgotICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyID0gc3R5bGUoKS0+
bWFza0xheWVycygpLT5uZXh0KCk7IGZpbGxMYXllcjsgZmlsbExheWVyID0gZmlsbExheWVyLT5u
ZXh0KCkpIHsKLSAgICAgICAgICAgIGlmIChmaWxsTGF5ZXItPmhhc0ltYWdlKCkgJiYgZmlsbExh
eWVyLT5pbWFnZSgpLT5jYW5SZW5kZXIoc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSkgewotICAg
ICAgICAgICAgICAgIHB1c2hUcmFuc3BhcmVuY3lMYXllciA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgLy8gV2UgZm91bmQgb25lIGltYWdlIHRoYXQgY2FuIGJlIHVzZWQgaW4gcmVuZGVyaW5nLCBl
eGl0IHRoZSBsb29wCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgYm9vbCBjb21wb3NpdGVk
TWFzayA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+aGFzQ29tcG9zaXRlZE1hc2soKTsKKyAgICBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisKKyAg
ICBpZiAoIWNvbXBvc2l0ZWRNYXNrKSB7CisgICAgICAgIFN0eWxlSW1hZ2UqIG1hc2tCb3hJbWFn
ZSA9IHN0eWxlKCktPm1hc2tCb3hJbWFnZSgpLmltYWdlKCk7CisgICAgICAgIGlmIChtYXNrQm94
SW1hZ2UgJiYgc3R5bGUoKS0+bWFza0xheWVycygpLT5oYXNJbWFnZSgpKSB7CisgICAgICAgICAg
ICBwdXNoVHJhbnNwYXJlbmN5TGF5ZXIgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgYW4gZXh0cmEgaW1hZ2UgYnVmZmVyIHRvIGhvbGQgdGhl
IG1hc2suIE11bHRpcGxlIG1hc2sgaW1hZ2VzIG5lZWQKKyAgICAgICAgICAgIC8vIHRvIGNvbXBv
c2l0ZSB0b2dldGhlciB1c2luZyBzb3VyY2Utb3ZlciBzbyB0aGF0IHRoZXkgY2FuIHRoZW4gY29t
YmluZSBpbnRvIGEgc2luZ2xlIHVuaWZpZWQgbWFzayB0aGF0CisgICAgICAgICAgICAvLyBjYW4g
YmUgY29tcG9zaXRlZCB3aXRoIHRoZSBjb250ZW50IHVzaW5nIGRlc3RpbmF0aW9uLWluLiAgU1ZH
IGltYWdlcyBuZWVkIHRvIGJlIGFibGUgdG8gc2V0IGNvbXBvc2l0aW5nIG1vZGVzCisgICAgICAg
ICAgICAvLyBhcyB0aGV5IGRyYXcgaW1hZ2VzIGNvbnRhaW5lZCBpbnNpZGUgdGhlaXIgc3ViLWRv
Y3VtZW50LCBzbyB3ZSBwYWludCBhbGwgb3VyIGltYWdlcyBpbnRvIGEgc2VwYXJhdGUgYnVmZmVy
CisgICAgICAgICAgICAvLyBhbmQgY29tcG9zaXRlIHRoYXQgYnVmZmVyIGFzIHRoZSBtYXNrLgor
ICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBjaGVjayB0aGF0IHRoZSBtYXNrIGltYWdlcyB0byBi
ZSByZW5kZXJlZCBjb250YWluIGF0IGxlYXN0IG9uZSBpbWFnZSB0aGF0IGNhbiBiZSBhY3R1YWxs
eSB1c2VkIGluIHJlbmRlcmluZworICAgICAgICAgICAgLy8gYmVmb3JlIHB1c2hpbmcgdGhlIHRy
YW5zcGFyZW5jeSBsYXllci4KKyAgICAgICAgICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBmaWxs
TGF5ZXIgPSBzdHlsZSgpLT5tYXNrTGF5ZXJzKCktPm5leHQoKTsgZmlsbExheWVyOyBmaWxsTGF5
ZXIgPSBmaWxsTGF5ZXItPm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChmaWxsTGF5ZXIt
Pmhhc0ltYWdlKCkgJiYgZmlsbExheWVyLT5pbWFnZSgpLT5jYW5SZW5kZXIoc3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoVHJhbnNwYXJlbmN5TGF5
ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCBvbmUgaW1hZ2UgdGhh
dCBjYW4gYmUgdXNlZCBpbiByZW5kZXJpbmcsIGV4aXQgdGhlIGxvb3AKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgfQotICAgIAotICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wID0gQ29tcG9z
aXRlRGVzdGluYXRpb25JbjsKLSAgICBpZiAocHVzaFRyYW5zcGFyZW5jeUxheWVyKSB7Ci0gICAg
ICAgIHBhaW50SW5mby5jb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlRGVz
dGluYXRpb25Jbik7Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5j
eUxheWVyKDEuMGYpOwotICAgICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7
CisgICAgICAgIAorICAgICAgICBjb21wb3NpdGVPcCA9IENvbXBvc2l0ZURlc3RpbmF0aW9uSW47
CisgICAgICAgIGlmIChwdXNoVHJhbnNwYXJlbmN5TGF5ZXIpIHsKKyAgICAgICAgICAgIHBhaW50
SW5mby5jb250ZXh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24oQ29tcG9zaXRlRGVzdGluYXRpb25J
bik7CisgICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+YmVnaW5UcmFuc3BhcmVuY3lMYXll
cigxLjBmKTsKKyAgICAgICAgICAgIGNvbXBvc2l0ZU9wID0gQ29tcG9zaXRlU291cmNlT3ZlcjsK
KyAgICAgICAgfQogICAgIH0KIAogICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIENvbG9y
KCksIHN0eWxlKCktPm1hc2tMYXllcnMoKSwgdHgsIHR5LCB3LCBoLCBjb21wb3NpdGVPcCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggY2UyNTZkNy4uZDJkYTk3ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjg4MCw2ICsyODgwLDExIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNsZWFyQmFja2luZygpCiB7CiAgICAgbV9iYWNraW5nLmNsZWFyKCk7CiB9CisKK2Jvb2wg
UmVuZGVyTGF5ZXI6Omhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9i
YWNraW5nICYmIG1fYmFja2luZy0+aGFzTWFza0xheWVyKCk7Cit9CiAjZW5kaWYKIAogdm9pZCBS
ZW5kZXJMYXllcjo6c2V0UGFyZW50KFJlbmRlckxheWVyKiBwYXJlbnQpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAppbmRleCAxNWYwYTJiLi4xNmFkNGQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgK
QEAgLTQxNSwxMSArNDE1LDEzIEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2lu
ZyAhPSAwOyB9CisgICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0OwogICAgIFJlbmRl
ckxheWVyQmFja2luZyogYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZy5nZXQoKTsg
fQogICAgIFJlbmRlckxheWVyQmFja2luZyogZW5zdXJlQmFja2luZygpOwogICAgIHZvaWQgY2xl
YXJCYWNraW5nKCk7CiAjZWxzZQogICAgIGJvb2wgaXNDb21wb3NpdGVkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICBib29sIGhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgogCiAgICAgYm9vbCBwYWludHNXaXRoVHJhbnNwYXJlbmN5KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDM5NTc5OGIu
LmNhNmJkYTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAt
NjQsNiArNjQsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6On5SZW5kZXJMYXllckJhY2tpbmcoKQog
ewogICAgIHVwZGF0ZUNsaXBwaW5nTGF5ZXJzKGZhbHNlLCBmYWxzZSk7CiAgICAgdXBkYXRlRm9y
ZWdyb3VuZExheWVyKGZhbHNlKTsKKyAgICB1cGRhdGVNYXNrTGF5ZXIoZmFsc2UpOwogICAgIGRl
c3Ryb3lHcmFwaGljc0xheWVyKCk7CiB9CiAKQEAgLTk3LDYgKzk4LDcgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OmRlc3Ryb3lHcmFwaGljc0xheWVyKCkKICAgICBtX2dyYXBoaWNzTGF5ZXIg
PSAwOwogICAgIG1fZm9yZWdyb3VuZExheWVyID0gMDsKICAgICBtX2NsaXBwaW5nTGF5ZXIgPSAw
OworICAgIG1fbWFza0xheWVyID0gMDsKIH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUxheWVyT3BhY2l0eSgpCkBAIC0xNTEsNiArMTUzLDkgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICBpZiAodXBkYXRl
Q2xpcHBpbmdMYXllcnMoY29tcG9zaXRvci0+Y2xpcHBlZEJ5QW5jZXN0b3IobV9vd25pbmdMYXll
ciksIGNvbXBvc2l0b3ItPmNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhtX293bmluZ0xheWVy
KSkpCiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CiAKKyAgICBpZiAodXBkYXRl
TWFza0xheWVyKG1fb3duaW5nTGF5ZXItPnJlbmRlcmVyKCktPmhhc01hc2soKSkpCisgICAgICAg
IG1fZ3JhcGhpY3NMYXllci0+c2V0TWFza0xheWVyKG1fbWFza0xheWVyLmdldCgpKTsKKwogICAg
IG1faGFzRGlyZWN0bHlDb21wb3NpdGVkQ29udGVudCA9IGZhbHNlOwogICAgIGlmIChjYW5Vc2VE
aXJlY3RDb21wb3NpdGluZygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcigpLT5pc0ltYWdlKCkp
IHsKQEAgLTI1MSw2ICsyNTYsMTEgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdy
YXBoaWNzTGF5ZXJHZW9tZXRyeSgpCiAgICAgICAgIG1fY2xpcHBpbmdMYXllci0+c2V0T2Zmc2V0
RnJvbVJlbmRlcmVyKGNsaXBwaW5nQm94LmxvY2F0aW9uKCkgLSBJbnRQb2ludCgpKTsKICAgICB9
CiAgICAgCisgICAgaWYgKG1fbWFza0xheWVyKSB7CisgICAgICAgIG1fbWFza0xheWVyLT5zZXRT
aXplKG1fZ3JhcGhpY3NMYXllci0+c2l6ZSgpKTsKKyAgICAgICAgbV9tYXNrTGF5ZXItPnNldFBv
c2l0aW9uKEZsb2F0UG9pbnQoKSk7CisgICAgfQorICAgIAogICAgIGlmIChtX293bmluZ0xheWVy
LT5oYXNUcmFuc2Zvcm0oKSkgewogICAgICAgICBjb25zdCBJbnRSZWN0IGJvcmRlckJveCA9IHRv
UmVuZGVyQm94KHJlbmRlcmVyKCkpLT5ib3JkZXJCb3hSZWN0KCk7CiAKQEAgLTM2NCwxOSArMzc0
LDU2IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVGb3JlZ3JvdW5kTGF5ZXIoYm9v
bCBuZWVkc0ZvcmVncm91bmRMYXllcikKICAgICAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5z
ZXROYW1lKCJDb250ZW50cyIpOwogI2VuZGlmCiAgICAgICAgICAgICBtX2ZvcmVncm91bmRMYXll
ci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwotICAgICAgICAgICAgbV9mb3JlZ3JvdW5kTGF5ZXIt
PnNldERyYXdpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kTWFzayk7Ci0gICAg
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldERyYXdpbmdQaGFzZShHcmFwaGljc0xheWVyUGFp
bnRCYWNrZ3JvdW5kTWFzayk7CisgICAgICAgICAgICBtX2ZvcmVncm91bmRMYXllci0+c2V0UGFp
bnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kKTsKICAgICAgICAgICAgIGxh
eWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fZm9yZWdyb3Vu
ZExheWVyKSB7CiAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7
CiAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyID0gMDsKLSAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXREcmF3aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50QWxsTWFzayk7CiAgICAgICAgIGxh
eWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgfQorCisgICAgaWYgKGxheWVyQ2hhbmdlZCkKKyAgICAg
ICAgbV9ncmFwaGljc0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50aW5nUGhhc2VGb3JQcmlt
YXJ5TGF5ZXIoKSk7CisKICAgICByZXR1cm4gbGF5ZXJDaGFuZ2VkOwogfQogCitib29sIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlTWFza0xheWVyKGJvb2wgbmVlZHNNYXNrTGF5ZXIpCit7Cisg
ICAgYm9vbCBsYXllckNoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAobmVlZHNNYXNrTGF5ZXIpIHsK
KyAgICAgICAgaWYgKCFtX21hc2tMYXllcikgeworICAgICAgICAgICAgbV9tYXNrTGF5ZXIgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICAgICAg
bV9tYXNrTGF5ZXItPnNldE5hbWUoIk1hc2siKTsKKyNlbmRpZgorICAgICAgICAgICAgbV9tYXNr
TGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICAgICAgICAgIG1fbWFza0xheWVyLT5z
ZXRQYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludE1hc2spOworICAgICAgICAgICAgbGF5
ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobV9tYXNrTGF5ZXIp
IHsKKyAgICAgICAgbV9tYXNrTGF5ZXIgPSAwOworICAgICAgICBsYXllckNoYW5nZWQgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChsYXllckNoYW5nZWQpCisgICAgICAgIG1fZ3JhcGhpY3NMYXll
ci0+c2V0UGFpbnRpbmdQaGFzZShwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxheWVyKCkpOworCisg
ICAgcmV0dXJuIGxheWVyQ2hhbmdlZDsKK30KKworR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Ug
UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludGluZ1BoYXNlRm9yUHJpbWFyeUxheWVyKCkgY29uc3QK
K3sKKyAgICB1bnNpZ25lZCBwaGFzZSA9IEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQ7Cisg
ICAgaWYgKCFtX2ZvcmVncm91bmRMYXllcikKKyAgICAgICAgcGhhc2UgfD0gR3JhcGhpY3NMYXll
clBhaW50Rm9yZWdyb3VuZDsKKyAgICBpZiAoIW1fbWFza0xheWVyKQorICAgICAgICBwaGFzZSB8
PSBHcmFwaGljc0xheWVyUGFpbnRNYXNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlPihwaGFzZSk7Cit9CisKIGZsb2F0IFJlbmRlckxheWVyQmFj
a2luZzo6Y29tcG9zaXRpbmdPcGFjaXR5KGZsb2F0IHJlbmRlcmVyT3BhY2l0eSkgY29uc3QKIHsK
ICAgICBmbG9hdCBmaW5hbE9wYWNpdHkgPSByZW5kZXJlck9wYWNpdHk7CkBAIC02OTUsNiArNzQy
LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkoKQog
ICAgIAogICAgIGlmIChtX2ZvcmVncm91bmRMYXllciAmJiBtX2ZvcmVncm91bmRMYXllci0+ZHJh
d3NDb250ZW50KCkpCiAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXROZWVkc0Rpc3BsYXko
KTsKKworICAgIGlmIChtX21hc2tMYXllciAmJiBtX21hc2tMYXllci0+ZHJhd3NDb250ZW50KCkp
CisgICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogLy8gciBpcyBp
biB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgbGF5ZXIncyByZW5kZXIgb2JqZWN0CkBAIC03
MTIsNiArNzYyLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWRE
aXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIC8vIEZJWE1FOiBkbyBpbmNy
ZW1lbnRhbCByZXBhaW50CiAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKICAgICB9CisKKyAgICBpZiAobV9tYXNrTGF5ZXIgJiYgbV9tYXNrTGF5ZXItPmRyYXdz
Q29udGVudCgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBkbyBpbmNyZW1lbnRhbCByZXBhaW50Cisg
ICAgICAgIG1fbWFza0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICB9CiB9CiAKIHN0YXRp
YyB2b2lkIHNldENsaXAoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiBwYWludERp
cnR5UmVjdCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCkBAIC03NjksNyArODI0LDcgQEAgdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKFJlbmRlckxheWVyKiByb290TGF5
ZXIsIEdyYXBoaWNzQ29udGV4dCoKIAogICAgIGJvb2wgc2hvdWxkUGFpbnQgPSBtX293bmluZ0xh
eWVyLT5oYXNWaXNpYmxlQ29udGVudCgpICYmIG1fb3duaW5nTGF5ZXItPmlzU2VsZlBhaW50aW5n
TGF5ZXIoKTsKIAotICAgIGlmIChzaG91bGRQYWludCAmJiAocGFpbnRpbmdQaGFzZSAmIEdyYXBo
aWNzTGF5ZXJQYWludEJhY2tncm91bmRNYXNrKSkgeworICAgIGlmIChzaG91bGRQYWludCAmJiAo
cGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQpKSB7CiAgICAgICAg
IC8vIElmIHRoaXMgaXMgdGhlIHJvb3QgdGhlbiB3ZSBuZWVkIHRvIHNlbmQgaW4gYSBiaWdnZXIg
Ym91bmRpbmcgYm94CiAgICAgICAgIC8vIGJlY2F1c2Ugd2UnbGwgYmUgcGFpbnRpbmcgdGhlIGJh
Y2tncm91bmQgYXMgd2VsbCAoc2VlIFJlbmRlckJveDo6cGFpbnRSb290Qm94RGVjb3JhdGlvbnMo
KSkuCiAgICAgICAgIEludFJlY3QgcGFpbnRCb3ggPSBjbGlwUmVjdFRvQXBwbHk7CkBAIC04MTMs
NyArODY4LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihSZW5k
ZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqCiAgICAgICAgIHJlc3RvcmVDbGlw
KGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBkYW1hZ2VSZWN0KTsKICAgICB9CiAgICAgICAgICAg
ICAgICAgCi0gICAgaWYgKHNob3VsZFBhaW50ICYmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NM
YXllclBhaW50Rm9yZWdyb3VuZE1hc2spKSB7CisgICAgYm9vbCBmb3JjZUJsYWNrVGV4dCA9IHBh
aW50UmVzdHJpY3Rpb24gPT0gUGFpbnRSZXN0cmljdGlvblNlbGVjdGlvbk9ubHlCbGFja1RleHQ7
CisgICAgYm9vbCBzZWxlY3Rpb25Pbmx5ICA9IHBhaW50UmVzdHJpY3Rpb24gPT0gUGFpbnRSZXN0
cmljdGlvblNlbGVjdGlvbk9ubHkgfHwgcGFpbnRSZXN0cmljdGlvbiA9PSBQYWludFJlc3RyaWN0
aW9uU2VsZWN0aW9uT25seUJsYWNrVGV4dDsKKworICAgIGlmIChzaG91bGRQYWludCAmJiAocGFp
bnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludEZvcmVncm91bmQpKSB7CiAgICAgICAgIC8v
IE5vdyB3YWxrIHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIG5lZ2F0aXZlIHotaW5k
aWNlcy4gT25seSBSZW5kZXJMYXllcnMgd2l0aG91dCBjb21wb3NpdGluZyBsYXllcnMgd2lsbCBw
YWludC4KICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGVzZSBiZSBwYWludGVkIGFzIGJhY2tn
cm91bmQ/CiAgICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbV9v
d25pbmdMYXllci0+bmVnWk9yZGVyTGlzdCgpOwpAQCAtODIyLDkgKzg4MCw2IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBH
cmFwaGljc0NvbnRleHQqCiAgICAgICAgICAgICAgICAgaXRbMF0tPnBhaW50TGF5ZXIocm9vdExh
eWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRpbmdS
b290KTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgZm9yY2VCbGFja1RleHQgPSBwYWludFJl
c3RyaWN0aW9uID09IFBhaW50UmVzdHJpY3Rpb25TZWxlY3Rpb25Pbmx5QmxhY2tUZXh0OwotICAg
ICAgICBib29sIHNlbGVjdGlvbk9ubHkgID0gcGFpbnRSZXN0cmljdGlvbiA9PSBQYWludFJlc3Ry
aWN0aW9uU2VsZWN0aW9uT25seSB8fCBwYWludFJlc3RyaWN0aW9uID09IFBhaW50UmVzdHJpY3Rp
b25TZWxlY3Rpb25Pbmx5QmxhY2tUZXh0OwotCiAgICAgICAgIC8vIFNldCB1cCB0aGUgY2xpcCB1
c2VkIHdoZW4gcGFpbnRpbmcgb3VyIGNoaWxkcmVuLgogICAgICAgICBzZXRDbGlwKGNvbnRleHQs
IHBhaW50RGlydHlSZWN0LCBjbGlwUmVjdFRvQXBwbHkpOwogICAgICAgICBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgY2xpcFJlY3RUb0FwcGx5LCAKQEAgLTg2Nyw3
ICs5MjIsOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVy
TGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KgogICAgICAgICAgICAgZm9yIChWZWN0
b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBwb3NaT3JkZXJMaXN0LT5iZWdpbigpOyBp
dCAhPSBwb3NaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkKICAgICAgICAgICAgICAgICBpdFswXS0+
cGFpbnRMYXllcihyb290TGF5ZXIsIGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludFJlc3Ry
aWN0aW9uLCBwYWludGluZ1Jvb3QpOwogICAgICAgICB9Ci0gICAgICAgIAorICAgIH0KKyAgICAK
KyAgICBpZiAoc2hvdWxkUGFpbnQgJiYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFp
bnRNYXNrKSkgewogICAgICAgICBpZiAocmVuZGVyZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rp
b25Pbmx5ICYmICFkYW1hZ2VSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgc2V0Q2xpcChj
b250ZXh0LCBwYWludERpcnR5UmVjdCwgZGFtYWdlUmVjdCk7CiAKQEAgLTg4NCw3ICs5NDEsNyBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJv
b3RMYXllciwgR3JhcGhpY3NDb250ZXh0KgogfQogCiAvLyBVcC1jYWxsIGZyb20gY29tcG9zaXRp
bmcgbGF5ZXIgZHJhd2luZyBjYWxsYmFjay4KLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIGRyYXdpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYg
Y2xpcCkKK3ZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlIHBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXApCiB7CiAgICAgLy8gV2Ug
aGF2ZSB0byB1c2UgdGhlIHNhbWUgcm9vdCBhcyBmb3IgaGl0IHRlc3RpbmcsIGJlY2F1c2UgYm90
aCBtZXRob2RzCiAgICAgLy8gY2FuIGNvbXB1dGUgYW5kIGNhY2hlIGNsaXBSZWN0cy4KQEAgLTkw
Miw3ICs5NTksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjbwogICAgIEludFJlY3QgZGlydHlS
ZWN0ID0gZW5jbG9zaW5nQkJveDsKICAgICBkaXJ0eVJlY3QuaW50ZXJzZWN0KGNsaXBSZWN0KTsK
IAotICAgIHBhaW50SW50b0xheWVyKG1fb3duaW5nTGF5ZXIsICZjb250ZXh0LCBkaXJ0eVJlY3Qs
IFBhaW50UmVzdHJpY3Rpb25Ob25lLCBkcmF3aW5nUGhhc2UsIHJlbmRlcmVyKCkpOworICAgIHBh
aW50SW50b0xheWVyKG1fb3duaW5nTGF5ZXIsICZjb250ZXh0LCBkaXJ0eVJlY3QsIFBhaW50UmVz
dHJpY3Rpb25Ob25lLCBwYWludGluZ1BoYXNlLCByZW5kZXJlcigpKTsKIH0KIAogYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSBiZWdpblRpbWUsIGNvbnN0IEFu
aW1hdGlvbiogYW5pbSwgY29uc3QgS2V5ZnJhbWVMaXN0JiBrZXlmcmFtZXMpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDg1NTVkYzguLjczMWU3NDEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC03Niw2ICs3Niw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91bmRM
YXllciAhPSAwOyB9CiAgICAgR3JhcGhpY3NMYXllciogZm9yZWdyb3VuZExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0KCk7IH0KICAgICAKKyAgICBib29sIGhhc01h
c2tMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fbWFza0xheWVyICE9IDA7IH0KKwogICAgIEdyYXBo
aWNzTGF5ZXIqIHBhcmVudEZvclN1YmxheWVycygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcHBpbmdM
YXllciA/IG1fY2xpcHBpbmdMYXllci5nZXQoKSA6IG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQog
ICAgIEdyYXBoaWNzTGF5ZXIqIGNoaWxkRm9yU3VwZXJsYXllcnMoKSBjb25zdCB7IHJldHVybiBt
X2FuY2VzdG9yQ2xpcHBpbmdMYXllciA/IG1fYW5jZXN0b3JDbGlwcGluZ0xheWVyLmdldCgpIDog
bV9ncmFwaGljc0xheWVyLmdldCgpOyB9CiAKQEAgLTEyNyw3ICsxMjksMTAgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgdXBkYXRlQ2xpcHBpbmdMYXllcnMoYm9vbCBuZWVkc0FuY2VzdG9yQ2xpcCwg
Ym9vbCBuZWVkc0Rlc2NlbmRhbnRDbGlwKTsKICAgICBib29sIHVwZGF0ZUZvcmVncm91bmRMYXll
cihib29sIG5lZWRzRm9yZWdyb3VuZExheWVyKTsKKyAgICBib29sIHVwZGF0ZU1hc2tMYXllcihi
b29sIG5lZWRzTWFza0xheWVyKTsKIAorICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBh
aW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSBjb25zdDsKKyAgICAKICAgICBJbnRTaXplIGNv
bnRlbnRPZmZzZXRJbkNvbXBvc3RpbmdMYXllcigpIGNvbnN0OwogICAgIC8vIFJlc3VsdCBpcyB0
cmFuc2Zvcm0gb3JpZ2luIGluIHBpeGVscy4KICAgICBGbG9hdFBvaW50M0QgY29tcHV0ZVRyYW5z
Zm9ybU9yaWdpbihjb25zdCBJbnRSZWN0JiBib3JkZXJCb3gpIGNvbnN0OwpAQCAtMTY2LDYgKzE3
MSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXll
cjsKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9mb3JlZ3JvdW5kTGF5ZXI7ICAgICAgIC8v
IG9ubHkgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRyYXcgdGhlIGZvcmVncm91bmQg
c2VwYXJhdGVseQogICAgIE93blB0cjxHcmFwaGljc0xheWVyPiBtX2NsaXBwaW5nTGF5ZXI7ICAg
ICAgICAgLy8gb25seSB1c2VkIGlmIHdlIGhhdmUgY2xpcHBpbmcgb24gYSBzdGFja2luZyBjb250
ZXh0LCB3aXRoIGNvbXBvc2l0aW5nIGNoaWxkcmVuCisgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+
IG1fbWFza0xheWVyOyAgICAgICAgICAgICAvLyBvbmx5IHVzZWQgaWYgd2UgaGF2ZSBhIG1hc2sK
IAogICAgIEludFJlY3QgbV9jb21wb3NpdGVkQm91bmRzOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA0ZmJiMDlkLi5iMjc2NGFmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTUwMiw4ICs1MDIs
NyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgTwogICAgIC8vIElmIHdlIGhhdmUgYSBzb2Z0d2Fy
ZSB0cmFuc2Zvcm0sIGFuZCB3ZSBoYXZlIGxheWVycyB1bmRlciB1cywgd2UgbmVlZCB0byBhbHNv
CiAgICAgLy8gYmUgY29tcG9zaXRlZC4gQWxzbywgaWYgd2UgaGF2ZSBvcGFjaXR5IDwgMSwgdGhl
biB3ZSBuZWVkIHRvIGJlIGEgbGF5ZXIgc28gdGhhdAogICAgIC8vIHRoZSBjaGlsZCBsYXllcnMg
YXJlIG9wYXF1ZSwgdGhlbiByZW5kZXJlZCB3aXRoIG9wYWNpdHkgb24gdGhpcyBsYXllci4KLSAg
ICBpZiAoY2hpbGRTdGF0ZS5tX3N1YnRyZWVJc0NvbXBvc2l0aW5nICYmCi0gICAgICAgIChsYXll
ci0+cmVuZGVyZXIoKS0+aGFzVHJhbnNmb3JtKCkgfHwgbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxl
KCktPm9wYWNpdHkoKSA8IDEpKSB7CisgICAgaWYgKGNoaWxkU3RhdGUubV9zdWJ0cmVlSXNDb21w
b3NpdGluZyAmJiByZXF1aXJlc0NvbXBvc2l0aW5nV2hlbkRlc2NlbmRhbnRzQXJlQ29tcG9zaXRp
bmcobGF5ZXItPnJlbmRlcmVyKCkpKSB7CiAgICAgICAgIGxheWVyLT5zZXRNdXN0T3ZlcmxhcENv
bXBvc2l0ZWRMYXllcnModHJ1ZSk7CiAgICAgICAgIGlmIChvdmVybGFwTWFwKQogICAgICAgICAg
ICAgYWRkVG9PdmVybGFwTWFwKCpvdmVybGFwTWFwLCBsYXllciwgYWJzQm91bmRzLCBoYXZlQ29t
cHV0ZWRCb3VuZHMpOwpAQCAtNTcyLDcgKzU3MSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcoUmVuZGVyVmlkZW8qIG8pIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IGlkZWFsbHkgd2UgbmVlZCB0byBsb29rIGF0IGFsbCBhbmNlc3RvcnMg
Zm9yIG1hc2sgb3IgdmlkZW8uIEJ1dCBmb3Igbm93LAogICAgIC8vIGp1c3QgYmFpbCBvbiB0aGUg
b2J2aW91cyBjYXNlcy4KLSAgICBpZiAoby0+aGFzTWFzaygpIHx8IG8tPmhhc1JlZmxlY3Rpb24o
KSB8fCAhbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKQorICAgIGlmIChvLT5oYXNSZWZsZWN0
aW9uKCkgfHwgIW1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgcmV0dXJuIG8tPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKTsKQEAg
LTkwNSw2ICs5MDQsMTEgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29t
cG9zaXRpbmdGb3JBbmltYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXIKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5n
V2hlbkRlc2NlbmRhbnRzQXJlQ29tcG9zaXRpbmcoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gcmVuZGVyZXItPmhhc1RyYW5zZm9ybSgpIHx8IHJlbmRlcmVyLT5p
c1RyYW5zcGFyZW50KCkgfHwgcmVuZGVyZXItPmhhc01hc2soKTsKK30KKwogLy8gSWYgYW4gZWxl
bWVudCBoYXMgbmVnYXRpdmUgei1pbmRleCBjaGlsZHJlbiwgdGhvc2UgY2hpbGRyZW4gcmVuZGVy
IGluIGZyb250IG9mIHRoZSAKIC8vIGxheWVyIGJhY2tncm91bmQsIHNvIHdlIG5lZWQgYW4gZXh0
cmEgJ2NvbnRlbnRzJyBsYXllciBmb3IgdGhlIGZvcmVncm91bmQgb2YgdGhlIGxheWVyCiAvLyBv
YmplY3QuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDgw
YTAxYmQuLjhkZDY4OWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC0xNjQsNiArMTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JBbmltYXRpb24oUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJl
c0NvbXBvc2l0aW5nRm9yVHJhbnNmb3JtKFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgIGJvb2wg
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIGJv
b2wgcmVxdWlyZXNDb21wb3NpdGluZ1doZW5EZXNjZW5kYW50c0FyZUNvbXBvc2l0aW5nKFJlbmRl
ck9iamVjdCopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIG1fcmVuZGVyVmll
dzsK
</data>
<flag name="review"
          id="19193"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>