<?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>60244</bug_id>
          
          <creation_ts>2011-05-04 21:46:18 -0700</creation_ts>
          <short_desc>[CMAKE] Add an option to support V8</short_desc>
          <delta_ts>2013-09-01 10:47:23 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>60146</dependson>
    
    <dependson>61350</dependson>
    
    <dependson>62173</dependson>
    
    <dependson>72000</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>d-r</cc>
    
    <cc>eoin.shanaghy</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jh4u.jeong</cc>
    
    <cc>jrogers</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>398534</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-05-04 21:46:18 -0700</bug_when>
    <thetext>I got a binary with v8 on EFL build.
It have some issues(crashes, plugin, and so on).
But I hope that v8 support make WebKit/Efl and CMAKE build system better.

This is fist step to support v8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398905</commentid>
    <comment_count>1</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2011-05-05 12:16:44 -0700</bug_when>
    <thetext>Did you miss the attachment?


If you are planning to polish this integration and make it work, I think it&apos;s ok to add the option first and clean the bugs later (with the option disabled by default). Otherwise it&apos;ll be just 1 more option that doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401747</commentid>
    <comment_count>2</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-05-10 21:34:50 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Did you miss the attachment?
&gt; 
Sorry about late answer.
I am waiting my other bug(#60146).

&gt; 
&gt; If you are planning to polish this integration and make it work, I think it&apos;s ok to add the option first and clean the bugs later (with the option disabled by default). Otherwise it&apos;ll be just 1 more option that doesn&apos;t work.

We are planning to keep v8 version for our binary and other guys in our team are following it.
Although I am not focused in javascript engine,
I&apos;ll try not to be broken option if I can.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484683</commentid>
    <comment_count>3</comment_count>
    <who name="Eoin">eoin.shanaghy</who>
    <bug_when>2011-10-15 17:26:51 -0700</bug_when>
    <thetext>Since #60146 is resolved, could the v8/EFL build be integrated?  
If a binary has already been built, maybe you could provide pointers on what was done to achieve this and I could help provide a patch for the cmake build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484856</commentid>
    <comment_count>4</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-10-16 17:54:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Since #60146 is resolved, could the v8/EFL build be integrated?  

No, we still have more patches, but our patches are hanging on internal review process.

jaehun jung, could you create a bug?

&gt; If a binary has already been built, maybe you could provide pointers on what was done to achieve this and I could help provide a patch for the cmake build.

If you already did, I think that you can upload patch because this is too old.

But if you just want patch, we can provide it.
Although my intial patch was out-dated, I know that jeehun has latest v8/EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551844</commentid>
    <comment_count>5</comment_count>
      <attachid>126021</attachid>
    <who name="jaehoon jeong">jh4u.jeong</who>
    <bug_when>2012-02-07 23:53:08 -0800</bug_when>
    <thetext>Created attachment 126021
V8 porting patch for WebKit EFL

I upload v8 porting patch for WebKit EFL. It works well. 
So if anyone who need to replace v8 with SFX in WebKit EFL use this patch.
The build option is below
  $ ./Tools/Scripts/build-webkit --efl --release --cmakearg=&quot;-DJAVASCRIPT_ENGINE=V8 -DENABLE_JIT=0&quot;
Revision of libv8 is 10626 (https://v8.googlecode.com/svn/tags/3.9.3)

Jaehoon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923523</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-01 10:47:23 -0700</bug_when>
    <thetext>We don&apos;t support building WebKit with V8 anymore.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126021</attachid>
            <date>2012-02-07 23:53:08 -0800</date>
            <delta_ts>2012-02-07 23:57:48 -0800</delta_ts>
            <desc>V8 porting patch for WebKit EFL</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>66259</size>
            <attacher name="jaehoon jeong">jh4u.jeong</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggNWJjNDcz
ZC4uNjQ2NDkxOSAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50
eHQKQEAgLTYxLDYgKzYxLDI0IEBAIEVORElGICgpCiBTVFJJTkcoVE9MT1dFUiAke1BPUlR9IFdF
QktJVF9QT1JUX0RJUikKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZXRlcm1pbmUgd2hp
Y2ggamF2YXNjcmlwdCBlbmdpbmUgd2lsbCBiZSB1c2VkIChKYXZhU2NyaXB0Q29yZSBpcyB0aGUg
ZGVmYXVsdCkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFVChBTExfSkFWQVNDUklQVF9FTkdJ
TkVTIEpTQyBWOCkKK1NFVChKQVZBU0NSSVBUX0VOR0lORSAiSlNDIiBDQUNIRSBTVFJJTkcgImNo
b29zZSB3aGljaCBqYXZhc2NyaXB0IGVuZ2luZSB0byB1c2UgKG9uZSBvZiAke0FMTF9KQVZBU0NS
SVBUX0VOR0lORVN9KSIpCisKK0lGICgke0pBVkFTQ1JJUFRfRU5HSU5FfSBTVFJFUVVBTCAiVjgi
KQorICAgIEFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfVjg9MSkKKyAgICBTRVQoV1RGX1VTRV9K
U0MgMCkKKyAgICBTRVQoV1RGX1VTRV9WOCAxKQorICAgIFNFVChKQVZBU0NSSVBUX1BSRUZJWCAi
VjgiKQorRUxTRSAoKQorICAgIEFERF9ERUZJTklUSU9OUygtRFdURl9VU0VfSlNDPTEpCisgICAg
U0VUKFdURl9VU0VfSlNDIDEpCisgICAgU0VUKFdURl9VU0VfVjggMCkKKyAgICBTRVQoSkFWQVND
UklQVF9QUkVGSVggIkpTIikKK0VORElGICgpCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMg
RmluZCBjb21tb24gcGFja2FnZXMgKHVzZWQgYnkgYWxsIHBvcnRzKQogIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogRklORF9QQUNLQUdFKEJJU09OIFJFUVVJUkVEKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0NNYWtlTGlzdHMudHh0CmluZGV4IDdhYWMxMzUuLjhm
MmU1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvQ01h
a2VMaXN0cy50eHQKQEAgLTEsNyArMSwxMCBAQAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBB
ZGQgbW9kdWxlIGRpcmVjdG9yaWVzCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1BRERfU1VCRElS
RUNUT1JZKEphdmFTY3JpcHRDb3JlKQorQUREX1NVQkRJUkVDVE9SWShKYXZhU2NyaXB0Q29yZS93
dGYpCitJRiAoV1RGX1VTRV9KU0MpCisgICAgQUREX1NVQkRJUkVDVE9SWShKYXZhU2NyaXB0Q29y
ZSkKK0VORElGICgpCiAKIElGIChFTkFCTEVfV0VCQ09SRSkKICAgICBBRERfU1VCRElSRUNUT1JZ
KFdlYkNvcmUpCkBAIC0xOSw3ICsyMiw5IEBAIEVORElGICgpCiAjIFNldCBjb21waWxlciBmbGFn
cyBmb3IgYWxsIHRhcmdldHMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdFQktJVF9TRVRfRVhU
UkFfQ09NUElMRVJfRkxBR1MoJHtXVEZfTElCUkFSWV9OQU1FfSkKLVdFQktJVF9TRVRfRVhUUkFf
Q09NUElMRVJfRkxBR1MoJHtKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX05BTUV9KQorSUYgKFdURl9V
U0VfSlNDKQorICAgIFdFQktJVF9TRVRfRVhUUkFfQ09NUElMRVJfRkxBR1MoJHtKYXZhU2NyaXB0
Q29yZV9MSUJSQVJZX05BTUV9KQorRU5ESUYgKCkKIAogSUYgKEVOQUJMRV9XRUJDT1JFKQogICAg
IFdFQktJVF9TRVRfRVhUUkFfQ09NUElMRVJfRkxBR1MoJHtXZWJDb3JlX0xJQlJBUllfTkFNRX0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWFhMzk1ZS4uNTkyYzMwNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjg0LDcgKzI4NCw2IEBAIEVO
RElGICgpCiBJTkNMVURFX0lGX0VYSVNUUygke0pBVkFTQ1JJUFRDT1JFX0RJUn0vUGxhdGZvcm0k
e1BPUlR9LmNtYWtlKQogCiAKLUFERF9TVUJESVJFQ1RPUlkod3RmKQogQUREX1NVQkRJUkVDVE9S
WShzaGVsbCkKIAogV0VCS0lUX1dSQVBfU09VUkNFTElTVCgke0phdmFTY3JpcHRDb3JlX1NPVVJD
RVN9KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggYzIyYWU1
MS4uZTlmMmZlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHMudHh0CkBA
IC0xODMsNiArMTgzLDcgQEAgU0VUKFdURl9TT1VSQ0VTCiApCiAKIFNFVChXVEZfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9IgogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0iCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS93dGYiCiAgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS93dGYvdW5pY29kZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKaW5kZXggMDZmYWVhYS4uZDJjMzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5jcHAKQEAgLTI0LDEzICsyNCwxNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShZQVJSX0pJVCkKKwogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAogI2lu
Y2x1ZGUgIkFTQ0lJQ1R5cGUuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAi
WWFyci5oIgogCi0jaWYgRU5BQkxFKFlBUlJfSklUKQogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg
NzVlM2ZmYS4uNDA4YTQ1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjUsMjEgKzY1LDI5IEBAIFNFVChX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0veG1sL3BhcnNl
ciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vRm9yd2FyZGluZ0hlYWRlcnMiCi0gICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkiCi0g
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9hc3NlbWJsZXIiCi0gICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9ieXRlY29kZSIKLSAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxl
ciIKLSAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKLSAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2hlYXAiCi0gICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dlciIKLSAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgotICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vaml0IgotICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgotICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcHJvZmlsZXIiCi0gICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9y
dW50aW1lIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd3RmIgogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vd3RmL3VuaWNvZGUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS95YXJy
IgorKQorCitJRiAoV1RGX1VTRV9KU0MpCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JTkNMVURF
X0RJUkVDVE9SSUVTCisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9ieXRlY29kZSIKKyAgICAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRl
Y29tcGlsZXIiCisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vZGVidWdnZXIiCisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaml0IgorICAgICAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9wcm9m
aWxlciIKKyAgICAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICkKK0VO
RElGICgpCisKK0xJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0iCiAgICAgIiR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlIgogICAgICIke0NNQUtFX0JJTkFSWV9ESVJ9IgpAQCAtMjkzLDYgKzMwMSw3IEBAIFNF
VChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52
YXNQYXR0ZXJuLmlkbAorICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaWRsCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsCiAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
CkBAIC00MjcsNiArNDM2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL1Nj
cmlwdENvbnRyb2xsZXJCYXNlLmNwcAogCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01D
YWxsYmFjay5jcHAKKyAgICBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3Bw
CiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogCiAgICAg
Y3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBAIC0xNTczLDcgKzE1ODMsNyBAQCBJRiAoRU5B
QkxFX05PVElGSUNBVElPTlMpCiAgICAgKQogRU5ESUYgKCkKIAotaWYgKEVOQUJMRV9GSUxFX1NZ
U1RFTSkKK0lGIChFTkFCTEVfRklMRV9TWVNURU0pCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCiAgICAgICAgIGZpbGVhcGkvRGlyZWN0b3J5RW50cnkuY3BwCiAgICAgICAgIGZpbGVh
cGkvRGlyZWN0b3J5RW50cnlTeW5jLmNwcApAQCAtMjEyNyw3ICsyMTM3LDcgQEAgSUYgKEVOQUJM
RV9NSFRNTCkKICAgICkKIEVORElGICgpCiAKLUlGIChFTkFCTEVfV0VCR0wpCisjSUYgKEVOQUJM
RV9XRUJHTCkKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAgICAgJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvc3JjCiAgICAgICAgICR7VEhJUkRQQVJUWV9E
SVJ9L0FOR0xFL2luY2x1ZGUKQEAgLTIyMjgsNyArMjIzOCw3IEBAIElGIChFTkFCTEVfV0VCR0wp
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAogICAgICkKLUVORElGICgp
CisjRU5ESUYgKCkKIAogSUYgKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBM
SVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUwpAQCAtMjI1Miw5ICsyMjYyLDE0IEBAIFNFVChT
Q1JJUFRTX0JJTkRJTkdTCiBTRVQoSURMX0ZJTEVTX1RNUCAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vaWRsX2ZpbGVzLnRtcCkKIFNFVChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxF
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9zdXBwbGVtZW50YWxfZGVwZW5kZW5jeS50
bXApCiAKLUlOQ0xVREUoJHtXRUJDT1JFX0RJUn0vVXNlSlNDLmNtYWtlKQorSUYgKFdURl9VU0Vf
VjgpCisgICAgSU5DTFVERSgke1dFQkNPUkVfRElSfS9Vc2VWOC5jbWFrZSkKKyAgICBTRVQoV2Vi
Q29yZV9MSUJSQVJJRVMgJHtXVEZfTElCUkFSWV9OQU1FfSkKK0VMU0VJRiAoV1RGX1VTRV9KU0Mp
CisgICAgSU5DTFVERSgke1dFQkNPUkVfRElSfS9Vc2VKU0MuY21ha2UpCisgICAgU0VUKFdlYkNv
cmVfTElCUkFSSUVTICR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9OQU1FfSkKK0VORElGICgpCiAK
LVNFVChXZWJDb3JlX0xJQlJBUklFUyAke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfTkFNRX0pCiBT
RVQoV2ViQ29yZV9MSU5LX0ZMQUdTICIiKQogSU5DTFVERV9JRl9FWElTVFMoJHtXRUJDT1JFX0RJ
Un0vUGxhdGZvcm0ke1BPUlR9LmNtYWtlKQogCkBAIC0yMzkzLDggKzI0MDgsOSBAQCBMSVNUKEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1hQYXRo
R3JhbW1hci5jcHApCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtX
RUJDT1JFX0RJUn0vaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwIE1hdGhNTE5hbWVzLmNwcCkKIAog
CisKIEdFTkVSQVRFX0RPTV9OQU1FUyhIVE1MICR7V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluICR7V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTFRhZ05hbWVzLmluICIiKQotTElT
VChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9I
VE1MTmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MRWxlbWVudEZh
Y3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KU0hUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuY3BwKQorTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MTmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9IVE1MRWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS8ke0pBVkFTQ1JJUFRfUFJFRklYfUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwKQog
CiAKIEdFTkVSQVRFX0VWRU5UX0ZBQ1RPUlkoJHtXRUJDT1JFX0RJUn0vZG9tL0V2ZW50RmFjdG9y
eS5pbiBFdmVudEZhY3RvcnkuY3BwKQpAQCAtMjQyMyw3ICsyNDM5LDcgQEAgRU5ESUYgKCkKIEdF
TkVSQVRFX0RPTV9OQU1FUyhTVkcgJHtXRUJDT1JFX0RJUn0vc3ZnL3N2Z2F0dHJzLmluICR7V0VC
Q09SRV9ESVJ9L3N2Zy9zdmd0YWdzLmluICJFTkFCTEVfRklMVEVSUz0ke0VOQUJMRV9GSUxURVJT
fSBFTkFCTEVfU1ZHX0ZPTlRTPSR7RU5BQkxFX1NWR19GT05UU30iKQogTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TVkdOYW1lcy5jcHAp
CiBJRiAoRU5BQkxFX1NWRykKLSAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1NWR0VsZW1lbnRGYWN0b3J5LmNwcCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwKQorICAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vU1ZHRWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8k
e0pBVkFTQ1JJUFRfUFJFRklYfVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHApCiBFTkRJRiAo
KQogCiAKQEAgLTI0NTIsNyArMjQ2OCw2IEBAIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJD
b3JlX0lETF9GSUxFU30gJHtXZWJDb3JlX1NPVVJDRVN9KQogQUREX0RFRklOSVRJT05TKC1EQlVJ
TERJTkdfV2ViQ29yZSkKIElOQ0xVREVfRElSRUNUT1JJRVMoJHtXZWJDb3JlX0lOQ0xVREVfRElS
RUNUT1JJRVN9KQogQUREX0xJQlJBUlkoJHtXZWJDb3JlX0xJQlJBUllfTkFNRX0gJHtXZWJDb3Jl
X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlX1NPVVJDRVN9KQotQUREX0RFUEVOREVOQ0lFUygke1dl
YkNvcmVfTElCUkFSWV9OQU1FfSAke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfTkFNRX0pCiBUQVJH
RVRfTElOS19MSUJSQVJJRVMoJHtXZWJDb3JlX0xJQlJBUllfTkFNRX0gJHtXZWJDb3JlX0xJQlJB
UklFU30pCiAKIElGIChXZWJDb3JlX0xJTktfRkxBR1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDRjODc3YWUuLjAzNmQ1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0x
NSw5ICsxNSwxNCBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
IiR7V0VCS0lUX0RJUn0vZWZsL2V3ayIKICkKIAorSUYgKFdURl9VU0VfVjgpCisgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9CisgICkKK0VO
RElGICgpCisKIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICBhY2Nlc3NpYmlsaXR5L2Vm
bC9BY2Nlc3NpYmlsaXR5T2JqZWN0RWZsLmNwcAotICBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyRWZsLmNwcAogICBwYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKICAgcGFnZS9lZmwv
RXZlbnRIYW5kbGVyRWZsLmNwcAogICBwbGF0Zm9ybS9DdXJzb3IuY3BwCkBAIC03NSw2ICs4MCwx
NiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vdGV4dC9lZmwvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUVmbC5jcHAKICkKIAorSUYgKFdURl9VU0VfVjgpCisg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVN1
cHBvcnRFZmwuY3BwCisgICkKK0VMU0VJRiAoV1RGX1VTRV9KU0MpCisgIExJU1QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUworICAgIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJFZmwuY3BwCisg
ICkKK0VORElGICgpCisKIElGIChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1Vz
ZUpTQy5jbWFrZQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDM4ZTY3MzEu
LmFjNmEwMWUKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAtMjIyLDcgKzIyMiw3IEBAIElGIChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykKICAgICApCiBFTkRJRiAoKQogCi1pZiAoRU5BQkxFX0ZJTEVfU1lTVEVNKQorSUYg
KEVOQUJMRV9GSUxFX1NZU1RFTSkKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAg
ICAgICAgYmluZGluZ3MvanMvSlNEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNEaXJlY3RvcnlFbnRyeVN5bmNDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Vc2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4
IDEwODVkYmIuLjdiODI3NGMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBAIC02Nyw2ICs2Nyw3IEBAIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVm
ZmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3Bw
CisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhDU1NSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q1NT
U3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTkzLDcgKzk0LDYgQEAgTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhFbGVtZW50Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOEVudHJ5U3luY0N1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhFdmVudENvbnN0cnVjdG9ycy5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhF
dmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVyQ3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEZsb2F0MzJBcnJheUN1c3RvbS5jcHAKQEAg
LTExMCw3ICsxMTAsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCiAgICAgYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhIVE1MTGlua0VsZW1lbnRDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAKKyAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MT3V0cHV0RWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MUGx1Z0luRWxlbWVudEN1c3RvbS5jcHAKQEAgLTE0Niw2ICsxNDYsNyBAQCBMSVNUKEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZBcnJh
eUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcAorICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTE4OSwxMiArMTkwLDYg
QEAgSUYgKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICkKIEVORElGKCkKIAotSUYg
KEVOQUJMRV9WSURFTykKLSAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKLSAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yLmNwcAotICAg
ICkKLUVORElGICgpCi0KIElGIChFTkFCTEVfU1ZHKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTVkdEb2N1bWVudEN1c3RvbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhY2hlZEZy
YW1lRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWNoZWRGcmFt
ZURhdGEuY3BwCmluZGV4IDBhODZkNjEuLmM5ZjkxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhY2hlZEZyYW1lRGF0
YS5oIgogCi0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVG
TCkKIC8vIEZJWE1FOiB0aGUgcmlnaHQgZ3VhcmQgc2hvdWxkIGJlIEVOQUJMRShQQUdFX0NBQ0hF
KS4gUmVwbGFjZSB3aXRoIHRoZSByaWdodCBndWFyZCwgb25jZQogLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MDYxIGlzIGZpeGVkLgogCkBAIC03OSw0ICs3OSw0
IEBAIHZvaWQgU2NyaXB0Q2FjaGVkRnJhbWVEYXRhOjpjbGVhcigpCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vIFBMQVRGT1JNKFFUKQorI2VuZGlmIC8vIFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShFTEYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDYWNoZWRGcmFtZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENhY2hlZEZyYW1lRGF0YS5oCmluZGV4IDFlM2EyZjYuLjVlODdhMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhY2hlZEZyYW1lRGF0YS5oCkBAIC01
MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZWxpZiBQ
TEFURk9STShRVCkKKyNlbGlmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCiAvLyBGSVhN
RTogdGhlIHJpZ2h0IGd1YXJkIHNob3VsZCBiZSBFTkFCTEUoUEFHRV9DQUNIRSkuIFJlcGxhY2Ug
d2l0aCB0aGUgcmlnaHQgZ3VhcmQsIG9uY2UKIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNTA2MSBpcyBmaXhlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA4ZGU5NTUzLi5kNWE5YWEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
NTgsMTMgKzU4LDE0IEBACiAjaW5jbHVkZSAiVjhET01XaW5kb3cuaCIKICNpbmNsdWRlICJWOEV2
ZW50LmgiCiAjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCIKLSNpbmNsdWRlICJWOEhU
TUxFbWJlZEVsZW1lbnQuaCIKKy8vI2luY2x1ZGUgIlY4SFRNTEVtYmVkRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhOUE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgIlY4
SFRNTEVtYmVkRWxlbWVudC5oIgogCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UUpTRW5n
aW5lPgpAQCAtMTE5LDYgKzEyMCw3IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9s
bGVyKCkKIAogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVhclNjcmlwdE9iamVjdHMoKQogewor
I2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBsdWdpbk9iamVjdE1hcDo6aXRl
cmF0b3IgaXQgPSBtX3BsdWdpbk9iamVjdHMuYmVnaW4oKTsKICAgICBmb3IgKDsgaXQgIT0gbV9w
bHVnaW5PYmplY3RzLmVuZCgpOyArK2l0KSB7CiAgICAgICAgIF9OUE5fVW5yZWdpc3Rlck9iamVj
dChpdC0+c2Vjb25kKTsKQEAgLTEyNiw3ICsxMjgsNiBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6
OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAgICAgfQogICAgIG1fcGx1Z2luT2JqZWN0cy5jbGVhcigp
OwogCi0jaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgaWYgKG1fd3JhcHBlZFdp
bmRvd1NjcmlwdE5QT2JqZWN0KSB7CiAgICAgICAgIE5QT2JqZWN0V3JhcHBlciogd2luZG93U2Ny
aXB0T2JqZWN0V3JhcHBlciA9IE5QT2JqZWN0V3JhcHBlcjo6Z2V0V3JhcHBlcihtX3dyYXBwZWRX
aW5kb3dTY3JpcHROUE9iamVjdCk7CiAgICAgICAgIEFTU0VSVCh3aW5kb3dTY3JpcHRPYmplY3RX
cmFwcGVyKTsKQEAgLTIxOCw2ICsyMTksNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmZpbmlz
aGVkV2l0aEV2ZW50KEV2ZW50KiBldmVudCkKIC8vIENyZWF0ZSBhIFY4IG9iamVjdCB3aXRoIGFu
IGludGVyY2VwdG9yIG9mIE5QT2JqZWN0UHJvcGVydHlHZXR0ZXIuCiB2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmJpbmRUb1dpbmRvd09iamVjdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYga2V5
LCBOUE9iamVjdCogb2JqZWN0KQogeworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
ICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IHY4Q29udGV4dCA9IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoZnJhbWUpOwpAQCAt
MjMxLDYgKzIzMyw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6YmluZFRvV2luZG93T2JqZWN0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBrZXksIE5QT2JqCiAgICAgLy8gQXR0YWNoIHRv
IHRoZSBnbG9iYWwgb2JqZWN0LgogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2xvYmFsID0g
djhDb250ZXh0LT5HbG9iYWwoKTsKICAgICBnbG9iYWwtPlNldCh2OFN0cmluZyhrZXkpLCB2YWx1
ZSk7CisjZW5kaWYKIH0KIAogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjb2xsZWN0R2FyYmFnZSgp
CkBAIC0yNzYsNiArMjc5LDkgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgp
CiAKIFBhc3NTY3JpcHRJbnN0YW5jZSBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJbnN0
YW5jZUZvcldpZGdldChXaWRnZXQqIHdpZGdldCkKIHsKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCisgICAgcmV0dXJuIDA7CisjZWxzZQogICAgIEFTU0VSVCh3aWRnZXQpOwogCiAg
ICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKQEAgLTMxNiwxNiArMzIyLDE5IEBAIFBhc3NT
Y3JpcHRJbnN0YW5jZSBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldp
ZGdldChXaWRnZXQqIHdpZGdlCiAgICAgbV9wbHVnaW5PYmplY3RzLnNldCh3aWRnZXQsIG5wT2Jq
ZWN0KTsKIAogICAgIHJldHVybiBWOFNjcmlwdEluc3RhbmNlOjpjcmVhdGUod3JhcHBlcik7Cisj
ZW5kaWYKIH0KIAogdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVhbnVwU2NyaXB0T2JqZWN0c0Zv
clBsdWdpbihXaWRnZXQqIG5hdGl2ZUhhbmRsZSkKIHsKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKICAgICBQbHVnaW5PYmplY3RNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wbHVnaW5PYmpl
Y3RzLmZpbmQobmF0aXZlSGFuZGxlKTsKICAgICBpZiAoaXQgPT0gbV9wbHVnaW5PYmplY3RzLmVu
ZCgpKQogICAgICAgICByZXR1cm47CiAgICAgX05QTl9VbnJlZ2lzdGVyT2JqZWN0KGl0LT5zZWNv
bmQpOwogICAgIF9OUE5fUmVsZWFzZU9iamVjdChpdC0+c2Vjb25kKTsKICAgICBtX3BsdWdpbk9i
amVjdHMucmVtb3ZlKGl0KTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6Omdl
dEFsbFdvcmxkcyhWZWN0b3I8RE9NV3JhcHBlcldvcmxkKj4mIHdvcmxkcykKQEAgLTM0Miw2ICsz
NTEsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2UsCiAgICAgZXZhbHVhdGVJbklzb2xhdGVkV29ybGQoMCwgc291
cmNlcyk7CiB9CiAKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIHN0YXRpYyBOUE9i
amVjdCogY3JlYXRlTm9TY3JpcHRPYmplY3QoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBA
IC0zODMsNyArMzkzLDkgQEAgTlBPYmplY3QqIFNjcmlwdENvbnRyb2xsZXI6OndpbmRvd1Njcmlw
dE5QT2JqZWN0KCkKICAgICBtX3dyYXBwZWRXaW5kb3dTY3JpcHROUE9iamVjdCA9IE5QT2JqZWN0
V3JhcHBlcjo6Y3JlYXRlKHdpbmRvd1NjcmlwdE5QT2JqZWN0KTsKICAgICByZXR1cm4gbV93cmFw
cGVkV2luZG93U2NyaXB0TlBPYmplY3Q7CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogTlBPYmplY3QqIFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlwdE9i
amVjdEZvclBsdWdpbkVsZW1lbnQoSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbikKIHsKICAgICAv
LyBDYW4ndCBjcmVhdGUgTlBPYmplY3RzIHdoZW4gSmF2YVNjcmlwdCBpcyBkaXNhYmxlZC4KQEAg
LTQwMyw3ICs0MTUsNyBAQCBOUE9iamVjdCogU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2NyaXB0
T2JqZWN0Rm9yUGx1Z2luRWxlbWVudChIVE1MUGx1Z0luRWxlbWVudAogCiAgICAgcmV0dXJuIG5w
Q3JlYXRlVjhTY3JpcHRPYmplY3QoMCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2OHBs
dWdpbiksIHdpbmRvdyk7CiB9Ci0KKyNlbmRpZgogCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNs
ZWFyV2luZG93U2hlbGwoYm9vbCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
R0NDb250cm9sbGVyLmNwcAppbmRleCA4MjZlYjNhLi5lZjRmMGZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC00NjcsNyArNDY3LDcgQEAg
bmFtZXNwYWNlIHsKIAogaW50IGdldE1lbW9yeVVzYWdlSW5NQigpCiB7Ci0jaWYgUExBVEZPUk0o
Q0hST01JVU0pCisjaWYgUExBVEZPUk0oQ0hST01JVU0pIHx8IFBMQVRGT1JNKEVGTCkKICAgICBy
ZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjptZW1vcnlVc2FnZU1CKCk7CiAjZWxzZQogICAgIHJldHVy
biAwOwpAQCAtNDc2LDcgKzQ3Niw3IEBAIGludCBnZXRNZW1vcnlVc2FnZUluTUIoKQogCiBpbnQg
Z2V0QWN0dWFsTWVtb3J5VXNhZ2VJbk1CKCkKIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNp
ZiBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZPUk0oRUZMKQogICAgIHJldHVybiBQbGF0Zm9y
bVN1cHBvcnQ6OmFjdHVhbE1lbW9yeVVzYWdlTUIoKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CkBA
IC01MTIsNyArNTEyLDcgQEAgdm9pZCBWOEdDQ29udHJvbGxlcjo6Z2NFcGlsb2d1ZSgpCiAKIHZv
aWQgVjhHQ0NvbnRyb2xsZXI6OmNoZWNrTWVtb3J5VXNhZ2UoKQogewotI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKSB8fCBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShDSFJPTUlVTSkgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKICAgICBjb25zdCBpbnQgbG93TWVtb3J5VXNhZ2VNQiA9
IFBsYXRmb3JtU3VwcG9ydDo6bG93TWVtb3J5VXNhZ2VNQigpOwogICAgIGNvbnN0IGludCBoaWdo
TWVtb3J5VXNhZ2VNQiA9IFBsYXRmb3JtU3VwcG9ydDo6aGlnaE1lbW9yeVVzYWdlTUIoKTsKICAg
ICBjb25zdCBpbnQgaGlnaFVzYWdlRGVsdGFNQiA9IFBsYXRmb3JtU3VwcG9ydDo6aGlnaFVzYWdl
RGVsdGFNQigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwCmluZGV4IGE4MDYyZmIuLmMyNDNmYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9y
eUVudHJ5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWOERpcmVjdG9yeUVudHJ5LmgiCiAKICNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRlICJWOERpcmVjdG9yeUVudHJ5LmgiCiAjaW5j
bHVkZSAiRGlyZWN0b3J5RW50cnkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiVjhCaW5kaW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeVN5bmNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlTeW5jQ3VzdG9tLmNwcAppbmRleCA4
OTc4NDhiLi5hN2U1NGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhEaXJlY3RvcnlFbnRyeVN5bmNDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5U3luY0N1c3RvbS5jcHAKQEAgLTI5
LDEwICsyOSwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJWOERp
cmVjdG9yeUVudHJ5U3luYy5oIgogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCisjaW5jbHVk
ZSAiVjhEaXJlY3RvcnlFbnRyeVN5bmMuaCIKICNpbmNsdWRlICJEaXJlY3RvcnlFbnRyeVN5bmMu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MUGx1Z0lu
RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MUGx1Z0luRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggMWMxMTRjNS4uNDFiZDczNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTFBsdWdJbkVsZW1l
bnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxQbHVnSW5FbGVtZW50Q3VzdG9tLmNwcApAQCAtNDcsNiArNDcsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB0ZW1wbGF0ZSA8Y2xhc3MgQz4KIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
bnBPYmplY3ROYW1lZEdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CisgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisjZWxzZQogICAgIEhUTUxQ
bHVnSW5FbGVtZW50KiBpbXAgPSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3Jp
cHRJbnN0YW5jZSBzY3JpcHRJbnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKICAgICBpZiAo
IXNjcmlwdEluc3RhbmNlKQpAQCAtNTcsMTEgKzYwLDE1IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbnBPYmplY3ROYW1lZEdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uCiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwogCiAgICAgcmV0
dXJuIG5wT2JqZWN0R2V0TmFtZWRQcm9wZXJ0eShpbnN0YW5jZSwgbmFtZSk7CisjZW5kaWYKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIEM+CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG5wT2Jq
ZWN0TmFtZWRTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogeworI2lmICFFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKyNlbHNlCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIGltcCA9IEM6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwogICAgIFNjcmlwdEluc3RhbmNlIHNjcmlwdEluc3RhbmNlID0gaW1wLT5n
ZXRJbnN0YW5jZSgpOwogICAgIGlmICghc2NyaXB0SW5zdGFuY2UpCkBAIC03Miw2ICs3OSw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3ROYW1lZFNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6CiAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOwogCiAgICAgcmV0dXJuIG5wT2JqZWN0U2V0TmFtZWRQcm9wZXJ0eShpbnN0YW5j
ZSwgbmFtZSwgdmFsdWUpOworI2VuZGlmCiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEhU
TUxBcHBsZXRFbGVtZW50OjpuYW1lZFByb3BlcnR5R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtMTEyLDI1ICsxMjAsNDAg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTE9iamVjdEVsZW1lbnQ6Om5hbWVkUHJvcGVy
dHlTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHIKIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRN
TEFwcGxldEVsZW1lbnQ6OmNhbGxBc0Z1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKIHsKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisgICAgcmV0dXJu
IG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisjZWxzZQogICAgIElOQ19TVEFUUygiRE9NLkhU
TUxBcHBsZXRFbGVtZW50KCkiKTsKICAgICByZXR1cm4gbnBPYmplY3RJbnZva2VEZWZhdWx0SGFu
ZGxlcihhcmdzKTsKKyNlbmRpZgogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MRW1i
ZWRFbGVtZW50OjpjYWxsQXNGdW5jdGlvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CisjaWYgIUVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorICAgIHJldHVybiBub3RI
YW5kbGVkQnlJbnRlcmNlcHRvcigpOworI2Vsc2UKICAgICBJTkNfU1RBVFMoIkRPTS5IVE1MRW1i
ZWRFbGVtZW50KCkiKTsKICAgICByZXR1cm4gbnBPYmplY3RJbnZva2VEZWZhdWx0SGFuZGxlcihh
cmdzKTsKKyNlbmRpZgogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIVE1MT2JqZWN0RWxl
bWVudDo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
eworI2lmICFFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKyAgICByZXR1cm4gbm90SGFuZGxl
ZEJ5SW50ZXJjZXB0b3IoKTsKKyNlbHNlCiAgICAgSU5DX1NUQVRTKCJET00uSFRNTE9iamVjdEVs
ZW1lbnQoKSIpOwogICAgIHJldHVybiBucE9iamVjdEludm9rZURlZmF1bHRIYW5kbGVyKGFyZ3Mp
OworI2VuZGlmCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG5wT2JqZWN0SW5kZXhlZEdldHRlcih1aW50MzJfdCBpbmRleCwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisjZWxzZQogICAgIElOQ19TVEFUUygiRE9N
LkhUTUxQbHVnSW5FbGVtZW50LkluZGV4ZWRQcm9wZXJ0eUdldHRlciIpOwogICAgIEhUTUxQbHVn
SW5FbGVtZW50KiBpbXAgPSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3JpcHRJ
bnN0YW5jZSBzY3JpcHRJbnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKQEAgLTE0MiwxMSAr
MTY1LDE1IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBucE9iamVjdEluZGV4ZWRHZXR0ZXIodWlu
dDMyX3QgaW5kZXgsIGNvbnN0IHY4OjpBY2Nlc3NvckluCiAgICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOwogCiAgICAgcmV0dXJuIG5wT2JqZWN0R2V0SW5kZXhlZFByb3Bl
cnR5KGluc3RhbmNlLCBpbmRleCk7CisjZW5kaWYKIH0KIAogdGVtcGxhdGUgPGNsYXNzIEM+CiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3RJbmRleGVkU2V0dGVyKHVpbnQzMl90IGluZGV4
LCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKIHsKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCisgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7CisjZWxzZQogICAgIElOQ19TVEFUUygiRE9NLkhUTUxQbHVn
SW5FbGVtZW50LkluZGV4ZWRQcm9wZXJ0eVNldHRlciIpOwogICAgIEhUTUxQbHVnSW5FbGVtZW50
KiBpbXAgPSBDOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTY3JpcHRJbnN0YW5jZSBz
Y3JpcHRJbnN0YW5jZSA9IGltcC0+Z2V0SW5zdGFuY2UoKTsKQEAgLTE1OCw2ICsxODUsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbnBPYmplY3RJbmRleGVkU2V0dGVyKHVpbnQzMl90IGluZGV4
LCB2ODo6TG9jYWw8djg6OlZhbHVlPgogICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKIAogICAgIHJldHVybiBucE9iamVjdFNldEluZGV4ZWRQcm9wZXJ0eShpbnN0YW5j
ZSwgaW5kZXgsIHZhbHVlKTsKKyNlbmRpZgogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhI
VE1MQXBwbGV0RWxlbWVudDo6aW5kZXhlZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90IGluZGV4LCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAKaW5kZXggNDMxZTRlNS4uMzg1MGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwCkBAIC03Miw2ICs3Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEluc3BlY3RvckZyb250ZW5kSG9zdDo6cG9ydENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKKyNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCiAgICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiAKQEAgLTExNCw2ICsxMTUsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudUNhbGxiYWNr
KGNvbnN0IHY4OgogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdCogZnJvbnRlbmRIb3N0ID0gVjhJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGZyb250
ZW5kSG9zdC0+c2hvd0NvbnRleHRNZW51KGV2ZW50LCBpdGVtcyk7CiAKKyNlbmRpZgogICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFBlcmZvcm1hbmNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBlcmZvcm1hbmNlQ3VzdG9tLmNwcAppbmRleCBjYzYyNWNl
Li4yNTZlODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhQZXJmb3JtYW5jZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4UGVyZm9ybWFuY2VDdXN0b20uY3BwCkBAIC0zMCwxMCArMzAsOSBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJWOFBlcmZvcm1hbmNlLmgiCi0KICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKIAorI2luY2x1ZGUgIlY4UGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJQ
ZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGlu
Z01hY3Jvcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvbnBydW50
aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L25wcnVudGltZS5jcHAKaW5kZXgg
OGQ4MGNmOS4uMzE2ZWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
bnBydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ucHJ1bnRpbWUu
Y3BwCkBAIC0yNiw2ICsyNiw4IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQorCiAjaW5jbHVkZSAiTlBWOE9iamVjdC5oIgogI2luY2x1
ZGUgIm5wcnVudGltZV9pbXBsLmgiCiAjaW5jbHVkZSAibnBydW50aW1lX3ByaXYuaCIKQEAgLTQ1
OSwzICs0NjEsNSBAQCBib29sIF9OUE5fSXNBbGl2ZShOUE9iamVjdCogbnBPYmplY3QpCiB9CiAK
IH0gIC8vIGV4dGVybiAiQyIKKworI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGMxYzc5ZjIuLjZm
MGRmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlICJ2aXNpYmxl
X3VuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBVU0UoSUNVX1VOSUNPREUpICYmICFVQ09O
RklHX05PX0NPTExBVElPTgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1Uu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcAppbmRleCAxMTdhZThiLi4yOWUyZDE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWwuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1
ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKaW5kZXggMmU1
NjM4Yy4uMzgxNTVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250
cm9sbGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggNjYwOWRmZS4uMWQyNTg5
MQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0zMjEsNyArMzIxLDkgQEAgbW9kdWxlIHdpbmRv
dyB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLFY4
RW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbmRldmljZW1vdGlvbjsKICAgICAgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1ERVZJQ0VfT1JJRU5UQVRJT04sVjhFbmFibGVkQXRSdW50
aW1lXSBFdmVudExpc3RlbmVyIG9uZGV2aWNlb3JpZW50YXRpb247CiAKLSAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sVjhFbmFibGVkQXRSdW50aW1lXSBQZWVyQ29u
bmVjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdFBlZXJDb25uZWN0aW9uOworI2lmIGRlZmluZWQoRU5B
QkxFX01FRElBX1NUUkVBTSkgJiYgTkFCTEVfTUVESUFfU1RSRUFNCisgICAgICAgIGF0dHJpYnV0
ZSBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLEVuYWJsZWRBdFJ1bnRpbWVdIFBlZXJDb25uZWN0
aW9uQ29uc3RydWN0b3Igd2Via2l0UGVlckNvbm5lY3Rpb247CisjZW5kaWYKIAogICAgICAgICAv
LyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGRFdmVudExp
c3RlbmVyKGluIERPTVN0cmluZyB0eXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IGNjZGM2YzQuLjQ3YjQyOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgQW5pbWF0aW9uQ29udHJvbGxlcl9oCiAK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU3VwcG9ydC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtU3VwcG9ydC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZmJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1TdXBwb3J0LmgKQEAgLTAsMCArMSwxMjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgMjAwOSwgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJv
amVjdAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1TdXBwb3J0X2gKKyNkZWZpbmUgUGxhdGZvcm1T
dXBwb3J0X2gKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorI2luY2x1ZGUgPHY4Lmg+CisKKy8vIFY4IGJpbmRpbmdzIHVzZSB0aGUgQVJSQVlTSVpFX1VO
U0FGRSBtYWNyby4gVGhpcyBtYWNybyB3YXMgY29waWVkCisvLyBmcm9tIGh0dHA6Ly9zcmMuY2hy
b21pdW0ub3JnL3ZpZXd2Yy9jaHJvbWUvdHJ1bmsvc3JjL2Jhc2UvYmFzaWN0eXBlcy5oCisvLwor
Ly8gQVJSQVlTSVpFX1VOU0FGRSBwZXJmb3JtcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBjYWxjdWxh
dGlvbiBhcyBhcnJheXNpemUsCisvLyBidXQgY2FuIGJlIHVzZWQgb24gYW5vbnltb3VzIHR5cGVz
IG9yIHR5cGVzIGRlZmluZWQgaW5zaWRlCisvLyBmdW5jdGlvbnMuIEl0J3MgbGVzcyBzYWZlIHRo
YW4gYXJyYXlzaXplIGFzIGl0IGFjY2VwdHMgc29tZQorLy8gKGFsdGhvdWdoIG5vdCBhbGwpIHBv
aW50ZXJzLiBUaGVyZWZvcmUsIHlvdSBzaG91bGQgdXNlIGFycmF5c2l6ZQorLy8gd2hlbmV2ZXIg
cG9zc2libGUuCisvLworLy8gVGhlIGV4cHJlc3Npb24gQVJSQVlTSVpFX1VOU0FGRShhKSBpcyBh
IGNvbXBpbGUtdGltZSBjb25zdGFudCBvZiB0eXBlCisvLyBzaXplX3QuCisvLworLy8gQVJSQVlT
SVpFX1VOU0FGRSBjYXRjaGVzIGEgZmV3IHR5cGUgZXJyb3JzLiBJZiB5b3Ugc2VlIGEgY29tcGls
ZXIgZXJyb3IKKy8vCisvLyAgICJ3YXJuaW5nOiBkaXZpc2lvbiBieSB6ZXJvIGluIC4uLiIKKy8v
CisvLyB3aGVuIHVzaW5nIEFSUkFZU0laRV9VTlNBRkUsIHlvdSBhcmUgKHdyb25nZnVsbHkpIGdp
dmluZyBpdCBhIHBvaW50ZXIuCisvLyBZb3Ugc2hvdWxkIG9ubHkgdXNlIEFSUkFZU0laRV9VTlNB
RkUgb24gc3RhdGljYWxseSBhbGxvY2F0ZWQgYXJyYXlzLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcg
Y29tbWVudHMgYXJlIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCBhbmQgY2FuCisvLyBi
ZSBpZ25vcmVkIGJ5IHRoZSB1c2Vycy4KKy8vCisvLyBBUlJBWVNJWkVfVU5TQUZFKGFycikgd29y
a3MgYnkgaW5zcGVjdGluZyBzaXplb2YoYXJyKSAodGhlICMgb2YgYnl0ZXMgaW4KKy8vIHRoZSBh
cnJheSkgYW5kIHNpemVvZigqKGFycikpICh0aGUgIyBvZiBieXRlcyBpbiBvbmUgYXJyYXkKKy8v
IGVsZW1lbnQpLiBJZiB0aGUgZm9ybWVyIGlzIGRpdmlzaWJsZSBieSB0aGUgbGF0dGVyLCBwZXJo
YXBzIGFyciBpcworLy8gaW5kZWVkIGFuIGFycmF5LCBpbiB3aGljaCBjYXNlIHRoZSBkaXZpc2lv
biByZXN1bHQgaXMgdGhlICMgb2YKKy8vIGVsZW1lbnRzIGluIHRoZSBhcnJheS4gT3RoZXJ3aXNl
LCBhcnIgY2Fubm90IHBvc3NpYmx5IGJlIGFuIGFycmF5LAorLy8gYW5kIHdlIGdlbmVyYXRlIGEg
Y29tcGlsZXIgZXJyb3IgdG8gcHJldmVudCB0aGUgY29kZSBmcm9tCisvLyBjb21waWxpbmcuCisv
LworLy8gU2luY2UgdGhlIHNpemUgb2YgYm9vbCBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLCB3
ZSBuZWVkIHRvIGNhc3QKKy8vICEoc2l6ZW9mKGEpICYgc2l6ZW9mKCooYSkpKSB0byBzaXplX3Qg
aW4gb3JkZXIgdG8gZW5zdXJlIHRoZSBmaW5hbAorLy8gcmVzdWx0IGhhcyB0eXBlIHNpemVfdC4K
Ky8vCisvLyBUaGlzIG1hY3JvIGlzIG5vdCBwZXJmZWN0IGFzIGl0IHdyb25nZnVsbHkgYWNjZXB0
cyBjZXJ0YWluCisvLyBwb2ludGVycywgbmFtZWx5IHdoZXJlIHRoZSBwb2ludGVyIHNpemUgaXMg
ZGl2aXNpYmxlIGJ5IHRoZSBwb2ludGVlCisvLyBzaXplLiBTaW5jZSBhbGwgb3VyIGNvZGUgaGFz
IHRvIGdvIHRocm91Z2ggYSAzMi1iaXQgY29tcGlsZXIsCisvLyB3aGVyZSBhIHBvaW50ZXIgaXMg
NCBieXRlcywgdGhpcyBtZWFucyBhbGwgcG9pbnRlcnMgdG8gYSB0eXBlIHdob3NlCisvLyBzaXpl
IGlzIDMgb3IgZ3JlYXRlciB0aGFuIDQgd2lsbCBiZSAocmlnaHRlb3VzbHkpIHJlamVjdGVkLgor
CisjZGVmaW5lIEFSUkFZU0laRV9VTlNBRkUoYSkgXAorICAoKHNpemVvZihhKSAvIHNpemVvZigq
KGEpKSkgLyBcCisgICBzdGF0aWNfY2FzdDxzaXplX3Q+KCEoc2l6ZW9mKGEpICUgc2l6ZW9mKCoo
YSkpKSkpCisKKwordHlwZWRlZiBzdHJ1Y3QgTlBPYmplY3QgTlBPYmplY3Q7Cit0eXBlZGVmIHN0
cnVjdCBfTlBQIE5QUF90OwordHlwZWRlZiBOUFBfdCogTlBQOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdpZGdldDsKKworLy8gQW4gaW50ZXJmYWNlIHRvIHRoZSBlbWJlZGRpbmcg
bGF5ZXIsIHdoaWNoIGhhcyB0aGUgYWJpbGl0eSB0byBhbnN3ZXIKKy8vIHF1ZXN0aW9ucyBhYm91
dCB0aGUgc3lzdGVtIGFuZCBzbyBvbi4uLgorLy8gVGhpcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0IGFuZCB0aGUgdHdvIGFyZSBsaWtlbHkgdG8gY29udmVyZ2UK
Ky8vIGluIHRoZSBmdXR1cmUuCitjbGFzcyBQbGF0Zm9ybVN1cHBvcnQgeworcHVibGljOgorICAg
IHN0YXRpYyBib29sIHBvcHVwc0FsbG93ZWQoTlBQIG5wcCk7CisgICAgLy8gUGx1Z2luCisgICAg
c3RhdGljIE5QT2JqZWN0KiBwbHVnaW5TY3JpcHRhYmxlT2JqZWN0KFdpZGdldCopOworCisgICAg
c3RhdGljIGludCBtZW1vcnlVc2FnZU1CKCk7CisgICAgc3RhdGljIGludCBhY3R1YWxNZW1vcnlV
c2FnZU1CKCk7CisgICAgc3RhdGljIGludCBsb3dNZW1vcnlVc2FnZU1CKCk7CisgICAgc3RhdGlj
IGludCBoaWdoTWVtb3J5VXNhZ2VNQigpOworICAgIHN0YXRpYyBpbnQgaGlnaFVzYWdlRGVsdGFN
QigpOworCisgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoaXN0b2dyYW1FbnVtZXJh
dGlvbihjb25zdCBjaGFyKiBuYW1lLCBpbnQgc2FtcGxlLCBpbnQgYm91bmRhcnlWYWx1ZSk7Cit9
OworCitjbGFzcyBNZW1vcnlVc2FnZUNhY2hlIHsKK3Byb3RlY3RlZDoKKyAgICBNZW1vcnlVc2Fn
ZUNhY2hlKCk7CisgICAgfk1lbW9yeVVzYWdlQ2FjaGUoKSB7fQorICAgIHN0YXRpYyBNZW1vcnlV
c2FnZUNhY2hlICptX3BJbnN0YW5jZTsKKyAgICBpbnQgbV9tZW1vcnlWYWx1ZTsKKyAgICBkb3Vi
bGUgbV9sYXN0VXBkYXRlZFRpbWU7CisgICAgZG91YmxlIG1fY2FjaGVWYWxpZFRpbWU7CisKK3B1
YmxpYzoKKyAgICBzdGF0aWMgTWVtb3J5VXNhZ2VDYWNoZSogR2V0SW5zdGFuY2UoKTsKKyAgICB2
b2lkIEluaXQoKTsKKyAgICBib29sIElzQ2FjaGVkVmFsdWVWYWxpZChpbnQqIGNhY2hlZFZhbHVl
KTsKKyAgICB2b2lkIFNldE1lbW9yeVZhbHVlKGNvbnN0IGludCB2YWx1ZSk7Cit9OworCit9Cisj
ZW5kaWYgLy8gUGxhdGZvcm1TdXBwb3J0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QbGF0Zm9ybVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1BsYXRmb3JtU3VwcG9ydEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTg4YmI4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9QbGF0Zm9ybVN1cHBvcnRFZmwuY3BwCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICog
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0LgorICoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKKyNpbmNsdWRlICJXaWRn
ZXQuaCIKKyNpbmNsdWRlICJucGFwaS5oIgorCisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVk
ZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFBsYXRmb3JtU3VwcG9ydDo6
cG9wdXBzQWxsb3dlZChOUFAgbnBwKQoreworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQorICAgIGlmIChucHAgJiYgbnBwLT5uZGF0YSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFBsdWdpblZpZXcqPihucHAtPm5kYXRhKS0+YXJlUG9wdXBzQWxsb3dlZCgpOworI2VuZGlmCisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK05QT2JqZWN0KiBQbGF0Zm9ybVN1cHBvcnQ6OnBsdWdp
blNjcmlwdGFibGVPYmplY3QoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K01lbW9yeVVzYWdlQ2FjaGUqIE1lbW9yeVVzYWdlQ2FjaGU6Om1fcEluc3RhbmNlID0gMDsKKwor
TWVtb3J5VXNhZ2VDYWNoZTo6TWVtb3J5VXNhZ2VDYWNoZSgpIDogbV9tZW1vcnlWYWx1ZSgwKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFzdFVwZGF0ZWRUaW1l
KDApCit7CisgICAgSW5pdCgpOworfQorCitNZW1vcnlVc2FnZUNhY2hlKiBNZW1vcnlVc2FnZUNh
Y2hlOjpHZXRJbnN0YW5jZSgpIAoreworICAgIGlmIChtX3BJbnN0YW5jZSA9PSAwKQorICAgICAg
ICBtX3BJbnN0YW5jZSA9IG5ldyBNZW1vcnlVc2FnZUNhY2hlOworCisgICAgcmV0dXJuIChNZW1v
cnlVc2FnZUNhY2hlKiltX3BJbnN0YW5jZTsKK30KKwordm9pZCBNZW1vcnlVc2FnZUNhY2hlOjpJ
bml0KCkgCit7CisgICAgbV9jYWNoZVZhbGlkVGltZSA9IDEuMGY7Cit9CisKK2Jvb2wgTWVtb3J5
VXNhZ2VDYWNoZTo6SXNDYWNoZWRWYWx1ZVZhbGlkKGludCogY2FjaGVkVmFsdWUpIAoreworICAg
IGlmICghY2FjaGVkVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjdXJy
ZW50VGltZSgpIC0gbV9sYXN0VXBkYXRlZFRpbWUgPiBtX2NhY2hlVmFsaWRUaW1lKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAqY2FjaGVkVmFsdWUgPSBtX21lbW9yeVZhbHVlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWVtb3J5VXNhZ2VDYWNoZTo6U2V0TWVtb3J5VmFs
dWUoY29uc3QgaW50IHZhbHVlKSAKK3sKKyAgICBtX21lbW9yeVZhbHVlID0gdmFsdWU7CisgICAg
bV9sYXN0VXBkYXRlZFRpbWUgPSBjdXJyZW50VGltZSgpOworfQorCitzdGF0aWMgaW50IG1lbW9y
eVVzYWdlTUJMaW51eCgpIAoreworICAgIHN0cnVjdCBtYWxsaW5mbyBtaW5mbyA9IG1hbGxpbmZv
KCk7CisgICAgdWludDY0X3QgbWVtVXNhZ2UgPSAobWluZm8uaGJsa2hkICsgbWluZm8uYXJlbmEp
ID4+IDIwOworCisgICAgcmV0dXJuIChpbnQpbWVtVXNhZ2U7Cit9CisKK3N0YXRpYyBpbnQgZ2V0
TWVtb3J5VXNhZ2VNQihib29sIGJ5cGFzc0NhY2hlKQoreworICAgIGludCBjdXJNZW1vcnlVc2Fn
ZSA9IDA7CisgICAgTWVtb3J5VXNhZ2VDYWNoZSogcE1lbW9yeVVzYWdlQ2FjaGUgPSBNZW1vcnlV
c2FnZUNhY2hlOjpHZXRJbnN0YW5jZSgpOworICAgIGlmICghYnlwYXNzQ2FjaGUgJiYgcE1lbW9y
eVVzYWdlQ2FjaGUtPklzQ2FjaGVkVmFsdWVWYWxpZCgmY3VyTWVtb3J5VXNhZ2UpKQorICAgICAg
ICByZXR1cm4gY3VyTWVtb3J5VXNhZ2U7CisKKyAgICBjdXJNZW1vcnlVc2FnZSA9IG1lbW9yeVVz
YWdlTUJMaW51eCgpOworCisgICAgcE1lbW9yeVVzYWdlQ2FjaGUtPlNldE1lbW9yeVZhbHVlKGN1
ck1lbW9yeVVzYWdlKTsKKyAgICByZXR1cm4gY3VyTWVtb3J5VXNhZ2U7Cit9CisKK2ludCBQbGF0
Zm9ybVN1cHBvcnQ6Om1lbW9yeVVzYWdlTUIoKQoreworICAgIHJldHVybiBnZXRNZW1vcnlVc2Fn
ZU1CKGZhbHNlKTsKK30KKworaW50IFBsYXRmb3JtU3VwcG9ydDo6YWN0dWFsTWVtb3J5VXNhZ2VN
QigpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gY29ycmVjdGx5IGxh
dGVyCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6Omxvd01lbW9yeVVz
YWdlTUIoKQoreworICAgIGludCBsb3dNZW1vcnlVc2FnZSA9IDEyODsKKyAgICByZXR1cm4gbG93
TWVtb3J5VXNhZ2U7Cit9CisKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6OmhpZ2hNZW1vcnlVc2FnZU1C
KCkKK3sKKyAgICBpbnQgaGlnaE1lbW9yeVVzYWdlID0gMjU2OworICAgIHJldHVybiBoaWdoTWVt
b3J5VXNhZ2U7Cit9CisKK2ludCBQbGF0Zm9ybVN1cHBvcnQ6OmhpZ2hVc2FnZURlbHRhTUIoKQor
eworICAgIHJldHVybiAtMTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFBsYXRmb3JtU3Vw
cG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oY29uc3QgY2hhciogbmFtZSwgaW50IHNhbXBsZSwg
aW50IGJvdW5kYXJ5VmFsdWUpCit7CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Zsb2F0UmVjdC5oCmluZGV4IDIyYzE3MWMuLjQ1YjliZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAj
ZGVmaW5lIEZsb2F0UmVjdF9oCiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIFVTRShDRykg
fHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NSVVNKQpAQCAtOTksOSArMTAwLDEzIEBAIHB1YmxpYzoK
ICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3NpemUuaGVpZ2h0KCk7IH0KIAog
ICAgIHZvaWQgc2V0WChmbG9hdCB4KSB7IG1fbG9jYXRpb24uc2V0WCh4KTsgfQorICAgIHZvaWQg
c2V0WChmbG9hdCB4LCBFeGNlcHRpb25Db2RlJikgeyBtX2xvY2F0aW9uLnNldFgoeCk7IH0KICAg
ICB2b2lkIHNldFkoZmxvYXQgeSkgeyBtX2xvY2F0aW9uLnNldFkoeSk7IH0KKyAgICB2b2lkIHNl
dFkoZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYpIHsgbV9sb2NhdGlvbi5zZXRZKHkpOyB9CiAgICAg
dm9pZCBzZXRXaWR0aChmbG9hdCB3aWR0aCkgeyBtX3NpemUuc2V0V2lkdGgod2lkdGgpOyB9Cisg
ICAgdm9pZCBzZXRXaWR0aChmbG9hdCB3aWR0aCwgRXhjZXB0aW9uQ29kZSYpIHsgbV9zaXplLnNl
dFdpZHRoKHdpZHRoKTsgfQogICAgIHZvaWQgc2V0SGVpZ2h0KGZsb2F0IGhlaWdodCkgeyBtX3Np
emUuc2V0SGVpZ2h0KGhlaWdodCk7IH0KKyAgICB2b2lkIHNldEhlaWdodChmbG9hdCBoZWlnaHQs
IEV4Y2VwdGlvbkNvZGUmKSB7IG1fc2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsgfQogCiAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmlzRW1wdHkoKTsgfQogICAgIGJvb2wg
aXNaZXJvKCkgY29uc3QgeyByZXR1cm4gbV9zaXplLmlzWmVybygpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNTRkN2Q3NS4u
MmExYmRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtODQ4LDcgKzg0OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6Om5ldHdvcmtT
dGF0ZUNoYW5nZWQoKQogICAgIGlmIChtX3ByaXZhdGUtPm5ldHdvcmtTdGF0ZSgpID49IEZvcm1h
dEVycm9yCiAgICAgICAgICYmIG1fcHJpdmF0ZS0+cmVhZHlTdGF0ZSgpIDwgSGF2ZU1ldGFkYXRh
CiAgICAgICAgICYmIGluc3RhbGxlZE1lZGlhRW5naW5lcygpLnNpemUoKSA+IDEpIHsKLSAgICAg
ICAgaWYgKCBtX2NvbnRlbnRNSU1FVHlwZS5pc0VtcHR5KCkgfHwgYmVzdE1lZGlhRW5naW5lRm9y
VHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlwZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9j
dXJyZW50TWVkaWFFbmdpbmUpKSB7CisgICAgICAgIGlmIChtX2NvbnRlbnRNSU1FVHlwZS5pc0Vt
cHR5KCkgfHwgYmVzdE1lZGlhRW5naW5lRm9yVHlwZUFuZENvZGVjcyhtX2NvbnRlbnRNSU1FVHlw
ZSwgbV9jb250ZW50VHlwZUNvZGVjcywgbV9jdXJyZW50TWVkaWFFbmdpbmUpKSB7CiAgICAgICAg
ICAgICBtX3JlbG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuY3BwCmluZGV4IGE2NDAzNTcuLjdkZTFjMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b1V0aWxpdGllcy5jcHAKQEAgLTgxLDYgKzgxLDcgQEAgdm9pZCBhcHBlbmRXZWJDb3JlUGF0aFRv
Q2Fpcm9Db250ZXh0KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgYXBw
ZW5kUGF0aFRvQ2Fpcm9Db250ZXh0KGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRl
eHQoKSk7CiB9CiAKKy8qCiB2b2lkIGFwcGVuZFJlZ2lvblRvQ2Fpcm9Db250ZXh0KGNhaXJvX3Qq
IHRvLCBjb25zdCBjYWlyb19yZWdpb25fdCogcmVnaW9uKQogewogICAgIGlmICghcmVnaW9uKQpA
QCAtOTMsNiArOTQsNyBAQCB2b2lkIGFwcGVuZFJlZ2lvblRvQ2Fpcm9Db250ZXh0KGNhaXJvX3Qq
IHRvLCBjb25zdCBjYWlyb19yZWdpb25fdCogcmVnaW9uKQogICAgICAgICBjYWlyb19yZWN0YW5n
bGUodG8sIHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCk7CiAgICAgfQog
fQorKi8KIAogY2Fpcm9fb3BlcmF0b3JfdCB0b0NhaXJvT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0
b3Igb3ApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9VdGlsaXRpZXMuaAppbmRleCAzNDRiYzQ5Li4xNmQxZjc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0
aWVzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBzZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNhaXJv
X3QqLCBjb25zdCBDb2xvciYpOwogdm9pZCBhcHBlbmRQYXRoVG9DYWlyb0NvbnRleHQoY2Fpcm9f
dCogdG8sIGNhaXJvX3QqIGZyb20pOwogdm9pZCBzZXRQYXRoT25DYWlyb0NvbnRleHQoY2Fpcm9f
dCogdG8sIGNhaXJvX3QqIGZyb20pOwogdm9pZCBhcHBlbmRXZWJDb3JlUGF0aFRvQ2Fpcm9Db250
ZXh0KGNhaXJvX3QqIGNvbnRleHQsIGNvbnN0IFBhdGgmIHBhdGgpOwotdm9pZCBhcHBlbmRSZWdp
b25Ub0NhaXJvQ29udGV4dChjYWlyb190KiwgY29uc3QgY2Fpcm9fcmVnaW9uX3QqKTsKKy8vdm9p
ZCBhcHBlbmRSZWdpb25Ub0NhaXJvQ29udGV4dChjYWlyb190KiwgY29uc3QgY2Fpcm9fcmVnaW9u
X3QqKTsKIGNhaXJvX29wZXJhdG9yX3QgdG9DYWlyb09wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9y
IG9wKTsKIHZvaWQgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChjYWlyb190KiBjciwgY2Fpcm9f
c3VyZmFjZV90KiBpbWFnZSwgY29uc3QgSW50U2l6ZSYgaW1hZ2VTaXplLCBjb25zdCBGbG9hdFJl
Y3QmIHRpbGVSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNh
aXJvX29wZXJhdG9yX3Qgb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lckdX
b3JsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0
cmVhbWVyR1dvcmxkLmNwcAppbmRleCA0NTM2MzQyLi4wOGY2MWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyR1dvcmxkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyR1dvcmxkLmNwcApAQCAtOTgsMTAgKzk4LDExIEBAIGJvb2wgR1N0cmVhbWVyR1dvcmxkOjpl
bnRlckZ1bGxzY3JlZW4oKQogICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTih2aWRlb1Npbmsu
Z2V0KCkpLCBwbGF0Zm9ybVZpZGVvU2luaywgdmlkZW9TY2FsZSwgY29sb3JzcGFjZSwgcXVldWUs
IE5VTEwpOwogCiAgICAgLy8gRmFzdGVyIGVsZW1lbnRzIGxpbmtpbmcuCi0gICAgZ3N0X2VsZW1l
bnRfbGlua19wYWRzX2Z1bGwocXVldWUsICJzcmMiLCBjb2xvcnNwYWNlLCAic2luayIsIEdTVF9Q
QURfTElOS19DSEVDS19OT1RISU5HKTsKLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChj
b2xvcnNwYWNlLCAic3JjIiwgdmlkZW9TY2FsZSwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tf
Tk9USElORyk7Ci0gICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwodmlkZW9TY2FsZSwgInNy
YyIsIHBsYXRmb3JtVmlkZW9TaW5rLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5H
KTsKLQorICAgIC8vIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVlLCAic3JjIiwgY29s
b3JzcGFjZSwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgLy8gZ3N0
X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoY29sb3JzcGFjZSwgInNyYyIsIHZpZGVvU2NhbGUsICJz
aW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIC8vIGdzdF9lbGVtZW50X2xp
bmtfcGFkc19mdWxsKHZpZGVvU2NhbGUsICJzcmMiLCBwbGF0Zm9ybVZpZGVvU2luaywgInNpbmsi
LCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgZ3N0X2VsZW1lbnRfbGlua19tYW55
KHF1ZXVlLCBjb2xvcnNwYWNlLCB2aWRlb1NjYWxlLCBwbGF0Zm9ybVZpZGVvU2luaywgTlVMTCk7
CisgICAgCiAgICAgLy8gTGluayBhIG5ldyBzcmMgcGFkIGZyb20gdGVlIHRvIHF1ZXVlLgogICAg
IEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3JlcXVl
c3RfcGFkKHRlZS5nZXQoKSwgInNyYyVkIikpOwogICAgIEdSZWZQdHI8R3N0UGFkPiBzaW5rUGFk
ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHF1ZXVlLCAic2luayIpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
ZTI4YjY3Yi4uMjNlMTQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTE3MzksOCArMTczOSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6Y3JlYXRlR1NUUGxheUJpbigpCiAKICAgICBBU1NFUlQoYWN0dWFsVmlk
ZW9TaW5rKTsKIAorICAgIC8vIFtKQUVIT09OOiB0byBiZSByZW1vdmVkXSB0ZW1wZXJhcmlseSBj
b21tZW50IG91dCAiZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwiIHRvIGJ1aWxkIFdlYktpdC1l
ZmwKICAgICAvLyBGYXN0ZXIgZWxlbWVudHMgbGlua2luZy4KLSAgICBnc3RfZWxlbWVudF9saW5r
X3BhZHNfZnVsbChxdWV1ZSwgInNyYyIsIGFjdHVhbFZpZGVvU2luaywgInNpbmsiLCBHU1RfUEFE
X0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgLy8gZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwo
cXVldWUsICJzcmMiLCBhY3R1YWxWaWRlb1NpbmssICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNL
X05PVEhJTkcpOworICAgIGdzdF9lbGVtZW50X2xpbmtfbWFueShxdWV1ZSwgYWN0dWFsVmlkZW9T
aW5rLCBOVUxMKTsKIAogICAgIC8vIEFkZCBhIGdob3N0cGFkIHRvIHRoZSBiaW4gc28gaXQgY2Fu
IHByb3h5IHRvIHRlZS4KICAgICBHUmVmUHRyPEdzdFBhZD4gcGFkID0gYWRvcHRHUmVmKGdzdF9l
bGVtZW50X2dldF9zdGF0aWNfcGFkKHZpZGVvVGVlLCAic2luayIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAppbmRleCAwNzc0ODMwLi5jMjMyMmMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTnVtYmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRs
CmluZGV4IGViZDIxMmIuLmU3NTYyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaWRsCkBAIC0y
NSw3ICsyNSw4IEBAIG1vZHVsZSBzdmcgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVNWRwogICAgIF0gU1ZHTnVtYmVyIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgdmFsdWUKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5pZGwKaW5kZXggNGJmY2UwZS4uZmRi
Y2E2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbApAQCAtMjUsMTAgKzI1LDE0IEBAIG1vZHVsZSBz
dmcgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwogICAgIF0gU1ZH
UmVjdCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4Owot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHdpZHRoOwotICAgICAgICBhdHRy
aWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgaGVpZ2h0OworICAgICAgICBhdHRyaWJ1
dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeAorICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10g
ZmxvYXQgeQorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgd2lkdGgKKyAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IGhlaWdodAorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggM2YzYzgwZi4uZjc4ZDc0NgotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIs
MTEgKzIsOSBAQCBTRVQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRf
RElSfSIKICAgICAiJHtXRUJDT1JFX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2li
aWxpdHkiCi0gICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pzIgogICAgICIke1dFQkNPUkVf
RElSfS9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JFX0RJUn0vYnJpZGdlIgogICAgICIke1dFQkNP
UkVfRElSfS9icmlkZ2UvYyIKLSAgICAiJHtXRUJDT1JFX0RJUn0vYnJpZGdlL2pzYyIKICAgICAi
JHtXRUJDT1JFX0RJUn0vY3NzIgogICAgICIke1dFQkNPUkVfRElSfS9kb20iCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L2VkaXRpbmciCkBAIC0zMyw3ICszMSwyNCBAQCBTRVQoV2ViS2l0X0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vc3ZnIgogICAgICIke1dFQkNPUkVfRElS
fS9zdmcvZ3JhcGhpY3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9wcm9wZXJ0aWVzIgorICAg
ICIke1dFQkNPUkVfRElSfS94bWwiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfSIKKyAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3d0ZiIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3d0
Zi91bmljb2RlIgorICAgICIke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0iCisgICAgIiR7
Q01BS0VfQklOQVJZX0RJUn0iCispCisKK0lGIChXVEZfVVNFX1Y4KQorICBMSVNUKEFQUEVORCBX
ZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy92
OCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvdjgvY3VzdG9tIgorICAgICIke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbiIKKyAgKQorRUxTRUlGIChXVEZfVVNF
X0pTQykKKyAgTElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvanMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2JyaWRnZS9qc2Mi
CiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKICAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2Vt
YmxlciIKQEAgLTQ3LDExICs2Miw4IEBAIFNFVChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vcHJvZmlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgotICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd3RmIgotICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
d3RmL3VuaWNvZGUiCi0gICAgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSIKLSAgICAi
JHtDTUFLRV9CSU5BUllfRElSfSIKLSkKKyAgKQorRU5ESUYgKCkKIAogSUYgKFdURl9VU0VfU09V
UCkKICAgTElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMgIiR7V0VCQ09SRV9E
SVJ9L3BsYXRmb3JtL25ldHdvcmsvc291cCIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DTWFrZUxpc3RzRWZsLnR4dCBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0
CmluZGV4IGVjMGM3ZDguLmYxNGEwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NN
YWtlTGlzdHNFZmwudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0
CkBAIC0xMjAsNiArMTIwLDEyIEBAIElGIChFTkFCTEVfR0xJQl9TVVBQT1JUKQogICApCiBFTkRJ
RiAoKQogCitJRiAoV1RGX1VTRV9WOCkKKyAgTElTVChBUFBFTkQgV2ViS2l0X0xJQlJBUklFUwor
ICAgICItbHY4IgorICApCitFTkRJRiAoKQorCiBJRiAoV1RGX1VTRV9TT1VQKQogICBMSVNUKEFQ
UEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUyAke0xJQlNPVVAyNF9JTkNMVURFX0RJUlN9
KQogICBMSVNUKEFQUEVORCBXZWJLaXRfTElCUkFSSUVTICR7TElCU09VUDI0X0xJQlJBUklFU30p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmNwcAppbmRleCBhMjVmOWQwLi5kMDYwZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTM0LDYgKzM0LDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnRFZmwuaCIKIAor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisKICNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1
ZGUgIkZpbGVJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcAppbmRleCAxZWI1OGQ1Li5iMzYzZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPEFuaW1hdGlvbkNvbnRyb2xs
ZXIuaD4KICNpbmNsdWRlIDxEb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPERPTVdpbmRvdy5o
PgogI2luY2x1ZGUgPEVpbmEuaD4KICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8RmluZE9w
dGlvbnMuaD4KQEAgLTM1LDcgKzM2LDExIEBACiAjaW5jbHVkZSA8UHJpbnRDb250ZXh0Lmg+CiAj
aW5jbHVkZSA8UmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUgPFNldHRpbmdzLmg+CisKKyNp
ZiBVU0UoSlNDKQogI2luY2x1ZGUgPGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oPgorI2VuZGlm
CisKICNpbmNsdWRlIDxoaXN0b3J5L0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8d29ya2Vycy9X
b3JrZXJUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTMy
MCwxNyArMzI1LDMwIEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmaW5kU3RyaW5n
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyCiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpCiB7CisjaWYgVVNFKEpT
QykKICAgICBXZWJDb3JlOjpnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdE5vdygpOworI2Vs
c2UKKyAgICByZXR1cm47CisjZW5kaWYgICAKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OmdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0
VW50aWxEb25lKQogeworI2lmIFVTRShKU0MpCiAgICAgV2ViQ29yZTo6Z2NDb250cm9sbGVyKCku
Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRlYnVnZ2luZyh3YWl0VW50aWxEb25l
KTsKKyNlbHNlCisgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHNpemVfdCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmphdmFTY3JpcHRPYmplY3RzQ291bnQoKQogeworI2lmIFVTRShKU0MpCiAg
ICAgcmV0dXJuIFdlYkNvcmU6OkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVh
cC5vYmplY3RDb3VudCgpOworI2Vsc2UKKyAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBkbyB0
aGlzIHVzaW5nIFY4LgorICAgIHJldHVybiAxOworI2VuZGlmCiB9CiAKIHVuc2lnbmVkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6d29ya2VyVGhyZWFkQ291bnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKaW5kZXggNzg1
NjNlYy4uZWFlNzdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50RWZsLmgiCiAKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwCmluZGV4IDFkNGQ2NGEuLmJkNmI2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAg
LTM1LDcgKzM1LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuaCIKIAorI2lmIFVTRShKU0MpCiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgorI2Vu
ZGlmCisKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC00MjMsMTIgKzQyNiwxNCBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChE
T01XcmFwcGVyV29ybGQqCiAgICAgaWYgKCFzZXR0aW5ncyB8fCAhc2V0dGluZ3MtPmlzU2NyaXB0
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoSlNDKQogICAgIEV3a19XaW5k
b3dfT2JqZWN0X0NsZWFyZWRfRXZlbnQgZXZlbnQ7CiAgICAgZXZlbnQuY29udGV4dCA9IHRvR2xv
YmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFs
V29ybGQoKSktPmdsb2JhbEV4ZWMoKSk7CiAgICAgZXZlbnQud2luZG93T2JqZWN0ID0gdG9SZWYo
Y29yZUZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgp
KSk7CiAgICAgZXZlbnQuZnJhbWUgPSBtX2ZyYW1lOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChtX3ZpZXcsICJ3aW5kb3csb2JqZWN0LGNsZWFyZWQiLCAmZXZlbnQpOwor
I2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBld2tfdmlld19q
c193aW5kb3dfb2JqZWN0X2NsZWFyKG1fdmlldywgbV9mcmFtZSk7CkBAIC00NDUsNiArNDUwLDE4
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24o
KSBjb25zdAogICAgIGV3a19mcmFtZV9kaWRfcGVyZm9ybV9maXJzdF9uYXZpZ2F0aW9uKG1fZnJh
bWUpOwogfQogCisjaWYgVVNFKFY4KQordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlkQ3Jl
YXRlU2NyaXB0Q29udGV4dCh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiwgaW50IHdvcmxkSWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
d2lsbFJlbGVhc2VTY3JpcHRDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+LCBpbnQgd29y
bGRJZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorI2VuZGlmCisKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBhZjkwYTZmLi44ZGMwOTZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmgKQEAgLTE0Myw2ICsxNDMsMTcgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGll
bnRFZmwgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKIAorI2lmIFVTRShWOCkKKyAgICAvLyBB
IGZyYW1lJ3MgVjggY29udGV4dCB3YXMgY3JlYXRlZAorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVTY3JpcHRDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+LCBpbnQgd29ybGRJZCk7CisK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbGVhc2VTY3JpcHRDb250ZXh0KHY4OjpIYW5kbGU8djg6
OkNvbnRleHQ+LCBpbnQgd29ybGRJZCk7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgd2Ugc2hv
dWxkIGFsbG93IHRoZSBnaXZlbiBWOCBleHRlbnNpb24gdG8gYmUgYWRkZWQgdG8KKyAgICAvLyB0
aGUgc2NyaXB0IGNvbnRleHQgYXQgdGhlIGN1cnJlbnRseSBsb2FkaW5nIHBhZ2UgYW5kIGdpdmVu
IGV4dGVuc2lvbiBncm91cC4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBleHRlbnNpb25OYW1lLCBpbnQgZXh0ZW5zaW9uR3JvdXAsIGludCB3b3Js
ZElkKSB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wpOwogCiAgICAgdmlydHVhbCBPYmplY3RDb250ZW50
VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBzaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKaW5kZXggOTYxZmEwYi4uZGY2YTk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0Lmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX21haW4uY3BwCmluZGV4IGNlYWQyZGUuLjQxY2E1NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19tYWluLmNwcApAQCAtMzksNyArMzksOSBAQAogI2luY2x1ZGUgPEV2YXMu
aD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUg
PGVycm5vLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShHTElCX1NVUFBPUlQpCiAjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggYmJmZjczNC4uYzAz
MmQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTI2LDcgKzI2LDEwIEBA
CiAjaWZuZGVmIGV3a19wcml2YXRlX2gKICNkZWZpbmUgZXdrX3ByaXZhdGVfaAogCisjaWYgVVNF
KEpTQykKICNpbmNsdWRlICJBUElDYXN0LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgIkJhY2tGb3J3
YXJkTGlzdEltcGwuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk5QX2pzb2JqZWN0
LmgiCkBAIC02OSwxMSArNzIsMTMgQEAgc3RydWN0IENvbnRleHRNZW51Owogc3RydWN0IENvbnRl
eHRNZW51SXRlbTsKIH0KIAorI2lmIFVTRShKU0MpCiBzdHJ1Y3QgRXdrX1dpbmRvd19PYmplY3Rf
Q2xlYXJlZF9FdmVudCB7CiAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQ7CiAgICAgSlNPYmplY3RS
ZWYgd2luZG93T2JqZWN0OwogICAgIEV2YXNfT2JqZWN0KiBmcmFtZTsKIH07CisjZW5kaWYKIAog
bmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRl
eCA1MzllMjAyLi43NDY2NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQx
LDkgKzQxLDEzIEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgorCisjaWYgVVNFKEpTQykKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUg
IkpTTG9jay5oIgorI2VuZGlmCisKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRFRkwuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZEVG
TC5jbWFrZQppbmRleCA4YjEyMDY1Li44NWM0NDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
RmluZEVGTC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvRmluZEVGTC5jbWFrZQpAQCAtNCwxMSAr
NCwxMSBAQCBQS0dfQ0hFQ0tfTU9EVUxFUyAoRURKRSBSRVFVSVJFRCBlZGplPj0xLjAuMCkKIFBL
R19DSEVDS19NT0RVTEVTIChFQ09SRSBSRVFVSVJFRCBlY29yZT49MS4wLjApCiBQS0dfQ0hFQ0tf
TU9EVUxFUyAoRUNPUkVfRVZBUyBSRVFVSVJFRCBlY29yZS1ldmFzPj0xLjAuMCkKIFBLR19DSEVD
S19NT0RVTEVTIChFRkxERVBTIFJFUVVJUkVECi0gIGVpbmE+PTEuMC45OTkuNjM1NjgKKyAgZWlu
YT49MS4wLjAKICAgZXZhcz49MS4wLjAKLSAgZWNvcmU+PTEuMC45OTkuNTk3NjMKKyAgZWNvcmU+
PTEuMC4xCiAgIGVjb3JlLWZpbGU+PTEuMC4wCi0gIGVjb3JlLWV2YXM+PTEuMC45OTkuNTk3NjMK
KyAgZWNvcmUtZXZhcz49MS4wLjEKICAgZWRqZT49MS4wLjApCiBQS0dfQ0hFQ0tfTU9EVUxFUyAo
RUlOQSBSRVFVSVJFRCBlaW5hPj0xLjAuMCkKIFBLR19DSEVDS19NT0RVTEVTIChFQ09SRV9YIGVj
b3JlLXg+PTEuMC4wKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRWOC5jbWFrZSBiL1Nv
dXJjZS9jbWFrZS9GaW5kVjguY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDUyODYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kVjguY21ha2UK
QEAgLTAsMCArMSwzMiBAQAorIyAtIFRyeSB0byBmaW5kIFY4CisjIE9uY2UgZG9uZSwgdGhpcyB3
aWxsIGRlZmluZQorIworIyAgVjhfRk9VTkQgLSBzeXN0ZW0gaGFzIGxpYnY4LWRldgorIyAgVjhf
SU5DTFVERV9ESVJTIC0gdGhlIGxpYnY4LWRldiBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBWOF9M
SUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBsaWJ2OAorCisKK2luY2x1ZGUoTGliRmluZE1h
Y3JvcykKKworIyBVc2UgcGtnLWNvbmZpZyB0byBnZXQgaGludHMgYWJvdXQgcGF0aHMKK2xpYmZp
bmRfcGtnX2NoZWNrX21vZHVsZXMoVjhfUEtHQ09ORiB2OCkKKworIyBJbmNsdWRlIGRpcgorU0VU
KFY4X0lOQ0xVREVfRElSICR7VjhfUEtHQ09ORl9JTkNMVURFX0RJUlN9KQorZmluZF9wYXRoKFY4
X0lOQ0xVREVfRElSCisJTkFNRVMgdjguaAorCVBBVEhTICR7VjhfUEtHQ09ORl9JTkNMVURFX0RJ
UlN9CispCisKKyMgRmluYWxseSB0aGUgbGlicmFyeSBpdHNlbGYKK2ZpbmRfbGlicmFyeShWOF9M
SUJSQVJZCisJTkFNRVMgdjgKKwlQQVRIUyAke1Y4X1BLR0NPTkZfTElCUkFSWV9ESVJTfQorKQor
CisjIFNldCB0aGUgaW5jbHVkZSBkaXIgdmFyaWFibGVzIGFuZCB0aGUgbGlicmFyaWVzIGFuZCBs
ZXQgbGliZmluZF9wcm9jZXNzIGRvIHRoZSByZXN0LgorIyBOT1RFOiBTaW5ndWxhciB2YXJpYWJs
ZXMgZm9yIHRoaXMgbGlicmFyeSwgcGx1cmFsIGZvciBsaWJyYXJpZXMgdGhpcyB0aGlzIGxpYiBk
ZXBlbmRzIG9uLgorc2V0KFY4X1BST0NFU1NfSU5DTFVERVMgVjhfSU5DTFVERV9ESVIgVjhfSU5D
TFVERV9ESVJTKSAKK3NldChWOF9QUk9DRVNTX0xJQlMgVjhfTElCUkFSWSBWOF9MSUJSQVJJRVMp
CitsaWJmaW5kX3Byb2Nlc3MoVjgpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
RWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggZjcxOTVkZi4u
Y2Q2NDgxOSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTk2LDcgKzk2LDcgQEAgV0VCS0lUX0ZF
QVRVUkUoRU5BQkxFX1RPVUNIX0VWRU5UUyAiRW5hYmxlIFRvdWNoIEV2ZW50cyIgREVGQVVMVCBP
RkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HICJFbmFibGUgVG91
Y2ggSWNvbiBMb2FkaW5nIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9WSURF
TyAiRW5hYmxlIHZpZGVvIiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1dFQl9T
T0NLRVRTICJFbmFibGUgd2ViIHNvY2tldHMiIERFRkFVTFQgT04pCi1XRUJLSVRfRkVBVFVSRShF
TkFCTEVfV0VCR0wgIkVuYWJsZSBXZWJHTCIgREVGQVVMVCBPRkYpCitXRUJLSVRfRkVBVFVSRShF
TkFCTEVfV0VCR0wgIkVuYWJsZSBXZWJHTCIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVO
QUJMRV9XT1JLRVJTICJFbmFibGUgd29ya2VycyIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJF
KEVOQUJMRV9YU0xUICJFbmFibGUgWFNMVCIgREVGQVVMVCBPTikKIApAQCAtMTEwLDYgKzExMCwx
MCBAQCBJRiAoRU5BQkxFX0VDT1JFX1gpCiAgICAgRU5ESUYgKCkKIEVORElGICgpCiAKK0lGIChF
TkFCTEVfVjgpCisgICAgRklORF9QQUNLQUdFKFY4IFJFUVVJUkVEKQorRU5ESUYgKCkKKwogSUYg
KE5FVFdPUktfQkFDS0VORCBTVFJFUVVBTCAic291cCIpCiAgIElGIChOT1QgRU5BQkxFX0dMSUJf
U1VQUE9SVCkKICAgICBTRVQoRU5BQkxFX0dMSUJfU1VQUE9SVCAxKQpkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3Mu
Y21ha2UKaW5kZXggZTQzYTRhNC4uZTg5ODRmMyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dl
YktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBA
IC02OSw2ICs2OSwxMiBAQCBNQUNSTyAoR0VORVJBVEVfRE9NX05BTUVTIF9uYW1lc3BhY2UgX2F0
dHJzKQogICAgIFNFVChfZXh0cmFkZWYpCiAgICAgU0VUKF90YWdzKQogCisgICAgSUYgKFdURl9V
U0VfVjgpCisgICAgICAgIFNFVChfd3JhcHBlckZhY3RvcnkgLS13cmFwcGVyRmFjdG9yeVY4KQor
ICAgIEVMU0VJRiAoV1RGX1VTRV9KU0MpCisgICAgICAgIFNFVChfd3JhcHBlckZhY3RvcnkgLS13
cmFwcGVyRmFjdG9yeSkKKyAgICBFTkRJRiAoKQorCiAgICAgRk9SRUFDSCAoZiAke0FSR059KQog
ICAgICAgICBJRiAoX3RhZ3MpCiAgICAgICAgICAgICBTRVQoX2V4dHJhZGVmICIke19leHRyYWRl
Zn0gJHtmfSIpCkBAIC03OCw4ICs4NCw4IEBAIE1BQ1JPIChHRU5FUkFURV9ET01fTkFNRVMgX25h
bWVzcGFjZSBfYXR0cnMpCiAgICAgRU5ERk9SRUFDSCAoKQogCiAgICAgSUYgKF90YWdzKQotICAg
ICAgICBTRVQoX2FyZ3VtZW50cyAiJHtfYXJndW1lbnRzfSIgLS10YWdzICR7X3RhZ3N9IC0tZmFj
dG9yeSAtLXdyYXBwZXJGYWN0b3J5KQotICAgICAgICBTRVQoX291dHB1dGZpbGVzICIke19vdXRw
dXRmaWxlc30iICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxl
bWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lc3Bh
Y2V9RWxlbWVudEZhY3RvcnkuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19u
YW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgpCisgICAgICAg
IFNFVChfYXJndW1lbnRzICIke19hcmd1bWVudHN9IiAtLXRhZ3MgJHtfdGFnc30gLS1mYWN0b3J5
ICR7X3dyYXBwZXJGYWN0b3J5fSkKKyAgICAgICAgU0VUKF9vdXRwdXRmaWxlcyAiJHtfb3V0cHV0
ZmlsZXN9IiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNlfUVsZW1l
bnRGYWN0b3J5LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNl
fUVsZW1lbnRGYWN0b3J5LmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7SkFWQVND
UklQVF9QUkVGSVh9JHtfbmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7SkFWQVNDUklQVF9QUkVGSVh9JHtfbmFtZXNwYWNl
fUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oKQogICAgIEVORElGICgpCiAKICAgICBJRiAoX2V4dHJh
ZGVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZQppbmRleCA2ZDNmODM3Li4yODE0NWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQpA
QCAtNDUsNCArNDUsNiBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1dPUktFUlMKICNjbWFrZWRl
ZmluZTAxIEVOQUJMRV9YU0xUCiAKKyNjbWFrZWRlZmluZTAxIEVOQUJMRV9WOAorCiAjZW5kaWYg
LyogQ01BS0VDT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01ha2VMaXN0cy50eHQgYi9U
b29scy9DTWFrZUxpc3RzLnR4dAppbmRleCBkY2NmMDIzLi42NDdhNTdmIDEwMDY0NAotLS0gYS9U
b29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsx
LDUgQEAKIElGICgiJHtQT1JUfSIgU1RSRVFVQUwgIkVmbCIpCi0gICAgQUREX1NVQkRJUkVDVE9S
WShEdW1wUmVuZGVyVHJlZS9lZmwpCisjQUREX1NVQkRJUkVDVE9SWShEdW1wUmVuZGVyVHJlZS9l
ZmwpCiAgICAgQUREX1NVQkRJUkVDVE9SWShFV2ViTGF1bmNoZXIpCiBFTFNFSUYgKCIke1BPUlR9
IiBTVFJFUVVBTCAiV2luQ0UiKQogICAgIEFERF9TVUJESVJFQ1RPUlkoV2luQ0VMYXVuY2hlcikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0dDQ29udHJvbGxlci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDA2YTA0ZmIuLmY2ZmE3MmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0dDQ29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvR0NDb250cm9sbGVyLmNwcApAQCAtMjksOCArMjksMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKIAorI2lmIFVT
RShKU0MpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2VuZGlmCiAKIEdDQ29udHJvbGxlcjo6
R0NDb250cm9sbGVyKCkKIHsKQEAgLTQwLDYgKzQyLDcgQEAgR0NDb250cm9sbGVyOjp+R0NDb250
cm9sbGVyKCkKIHsKIH0KIAorI2lmIFVTRShKU0MpCiAvLyBTdGF0aWMgRnVuY3Rpb25zCiAKIHN0
YXRpYyBKU1ZhbHVlUmVmIGNvbGxlY3RDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCkBAIC05OCwzICsxMDEsNSBAQCBKU0NsYXNzUmVmIEdDQ29udHJvbGxlcjo6Z2V0SlNDbGFz
cygpCiAKICAgICByZXR1cm4gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKIH0KKwor
I2VuZGlmIC8vIFdURl9VU0VfSlNDCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9H
Q0NvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0dDQ29udHJvbGxlci5oCmluZGV4
IGFmYzFkZTAuLjFmZDI4ZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0dDQ29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0dDQ29udHJvbGxlci5oCkBAIC0y
OSwxMyArMjksMTYgQEAKICNpZm5kZWYgR0NDb250cm9sbGVyX2gKICNkZWZpbmUgR0NDb250cm9s
bGVyX2gKIAorI2lmIFVTRShKU0MpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RS
ZWYuaD4KKyNlbmRpZgogCiBjbGFzcyBHQ0NvbnRyb2xsZXIgewogcHVibGljOgogICAgIEdDQ29u
dHJvbGxlcigpOwogICAgIH5HQ0NvbnRyb2xsZXIoKTsKIAorI2lmIFVTRShKU0MpCiAgICAgdm9p
ZCBtYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5k
b3dPYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAKICAgICAvLyBDb250cm9sbGVyIE1l
dGhvZHMgLSBwbGF0ZnJvbSBpbmRlcGVuZGFudCBpbXBsZW1lbnRhdGlvbnMKQEAgLTQ1LDYgKzQ4
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyBKU0NsYXNzUmVmIGdldEpTQ2xh
c3MoKTsKKyNlbmRpZiAvLyBXVEZfVVNFX0pTQwogfTsKIAogI2VuZGlmIC8vIEdDQ29udHJvbGxl
cl9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggMGRhZTE2OC4u
MjNkMWY4MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAtMjQs
NyArMjQsNiBAQCBTRVQoSW1hZ2VEaWZmX1NPVVJDRVMKIAogU0VUKER1bXBSZW5kZXJUcmVlX0xJ
QlJBUklFUwogICAgICR7V1RGX0xJQlJBUllfTkFNRX0KLSAgICAke0phdmFTY3JpcHRDb3JlX0xJ
QlJBUllfTkFNRX0KICAgICAke1dlYkNvcmVfTElCUkFSWV9OQU1FfQogICAgICR7V2ViS2l0X0xJ
QlJBUllfTkFNRX0KICAgICAke0NhaXJvX0xJQlJBUklFU30KQEAgLTM3LDEzICszNiwxNyBAQCBT
RVQoRHVtcFJlbmRlclRyZWVfTElCUkFSSUVTCiAgICAgJHtTUUxJVEVfTElCUkFSSUVTfQogKQog
Ci1TRVQoRHVtcFJlbmRlclRyZWVfTElCUkFSSUVTICR7RHVtcFJlbmRlclRyZWVfTElCUkFSSUVT
fSkKK0lGIChXVEZfVVNFX0pTQykKKyAgICBMSVNUKEFQUEVORCBEdW1wUmVuZGVyVHJlZV9MSUJS
QVJJRVMKKyAgICAgICAgJHtKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX05BTUV9CisgICAgKQorRU5E
SUYgKCkKKwogU0VUKER1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJRVMKLSAgICAiJHtX
RUJLSVRfRElSfS9lZmwvZXdrIgorICAgICR7V0VCS0lUX0RJUn0vZWZsL2V3awogICAgICR7V0VC
S0lUX0RJUn0vZWZsCiAgICAgJHtXRUJDT1JFX0RJUn0KICAgICAke1dFQkNPUkVfRElSfS9icmlk
Z2UKLSAgICAke1dFQkNPUkVfRElSfS9icmlkZ2UvanNjCiAgICAgJHtXRUJDT1JFX0RJUn0vYmlu
ZGluZ3MKICAgICAke1dFQkNPUkVfRElSfS9kb20KICAgICAke1dFQkNPUkVfRElSfS9lZGl0aW5n
CkBAIC02NywyOCArNzAsNDMgQEAgU0VUKER1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAke1dFQkNPUkVfRElSfS9sb2FkZXIvaWNvbgogICAgICR7SkFWQVNDUklQVENPUkVf
RElSfQogICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkKLSAgICAke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyCi0gICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZwotICAgICR7SkFW
QVNDUklQVENPUkVfRElSfS9oZWFwCi0gICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJl
dGVyCi0gICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ppdAogICAgICR7SkFWQVNDUklQVENPUkVf
RElSfS9ydW50aW1lCi0gICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
CiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3d0ZgogICAgICR7SkFWQVNDUklQVENPUkVfRElS
fS93dGYvZWZsCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3d0Zi90ZXh0CisgICAgJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzCiAgICAgJHtUT09MU19ESVJ9L0R1bXBS
ZW5kZXJUcmVlCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2NhaXJvCiAgICAgJHtU
T09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbAogICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlCiAgICAgJHtDTUFLRV9CSU5BUllfRElSfQogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfQotICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pzCiAgICAgJHtDYWlyb19JTkNM
VURFX0RJUlN9CiAgICAgJHtFREpFX0lOQ0xVREVfRElSU30KICAgICAke0VGTERFUFNfSU5DTFVE
RV9ESVJTfQogICAgICR7RVZBU19JTkNMVURFX0RJUlN9CiApCiAKK0lGIChXVEZfVVNFX0pTQykK
KyAgICBMSVNUKEFQUEVORCBEdW1wUmVuZGVyVHJlZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
ICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pzCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L2Jy
aWRnZS9qc2MKKyAgICAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlcgorICAgICAg
ICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnCisgICAgICAgICR7SkFWQVNDUklQVENPUkVfRElS
fS9oZWFwCisgICAgICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlcgorICAgICAg
ICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaml0CisgICAgKQorRUxTRUlGIChXVEZfVVNFX1Y4KQor
ICAgIExJU1QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAg
ICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3MvdjgKKyAgICAgICAgJHtXRUJDT1JFX0RJUn0vYmlu
ZGluZ3MvdjgvY3VzdG9tCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Y4L3NwZWNp
YWxpemF0aW9uCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L3htbAorICAgICAgICAke1dFQkNPUkVf
RElSfS94bWwvcGFyc2VyCisgICAgKQorRU5ESUYgKCkKKwogU0VUKER1bXBSZW5kZXJUcmVlX0xJ
TktfRkxBR1MKICAgICAke0VDT1JFX1hfTERGTEFHU30KICAgICAke0VESkVfTERGTEFHU30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wSGlzdG9yeUl0ZW0uY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBIaXN0b3J5SXRlbS5jcHAKaW5kZXggMTI1YjEy
OC4uMzc0NjE5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBIaXN0
b3J5SXRlbS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBIaXN0b3J5SXRl
bS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogRXdrX0hpc3RvcnlfSXRlbSogcHJldlRlc3RCRkl0
ZW0gPSAwOwogY29uc3QgdW5zaWduZWQgaGlzdG9yeUl0ZW1JbmRlbnQgPSA4OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggY2U3
YTAwZC4uZWMwNzhiOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVDaHJvbWUuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8RXZhcy5oPgog
I2luY2x1ZGUgPGNzdGRpbz4KICNpbmNsdWRlIDx3dGYvTm90Rm91bmQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIFBhc3NPd25QdHI8RHVtcFJlbmRlclRyZWVDaHJvbWU+IER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGUoRXZhcyogZXZhcykKIHsKQEAgLTE5Miw2ICsxOTMs
NyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWVzKCkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaW5kb3dPYmplY3RDbGVh
cmVkKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKIHsKKyNp
ZiBVU0UoSlNDKQogICAgIEV3a19XaW5kb3dfT2JqZWN0X0NsZWFyZWRfRXZlbnQqIG9iamVjdENs
ZWFyZWRJbmZvID0gc3RhdGljX2Nhc3Q8RXdrX1dpbmRvd19PYmplY3RfQ2xlYXJlZF9FdmVudCo+
KGV2ZW50SW5mbyk7CiAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgIEFTU0VSVChn
TGF5b3V0VGVzdENvbnRyb2xsZXIpOwpAQCAtMjEwLDYgKzIxMiw3IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6Om9uV2luZG93T2JqZWN0Q2xlYXJlZCh2b2lkKiB1c2VyRGF0YSwgRXZhc19P
YmplY3QqLCB2CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyTmFtZS5nZXQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VFdmVudFNlbmRlcihvYmplY3RDbGVhcmVkSW5m
by0+Y29udGV4dCwgIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZnJhbWVQYXJlbnQob2JqZWN0
Q2xlYXJlZEluZm8tPmZyYW1lKSksCiAgICAgICAgICAgICAgICAgICAgICAgICBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCAwKTsK
KyNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRTdGFydGVkKHZv
aWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvR0NDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9HQ0NvbnRyb2xsZXJFZmwuY3BwCmluZGV4IDFmNTVhNWMuLmYxOWNkOGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9HQ0NvbnRyb2xsZXJFZmwuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9HQ0NvbnRyb2xsZXJFZmwuY3BwCkBAIC0zMyw2ICszMyw4IEBA
CiAjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgiCiAj
aW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKIAorI2lmIFVTRShKU0MpCisKIHZvaWQgR0NDb250cm9s
bGVyOjpjb2xsZWN0KCkgY29uc3QKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Omdh
cmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CkBAIC00NywzICs0OSw1IEBAIHNpemVfdCBHQ0NvbnRy
b2xsZXI6OmdldEpTT2JqZWN0Q291bnQoKSBjb25zdAogewogICAgIHJldHVybiBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OmphdmFTY3JpcHRPYmplY3RzQ291bnQoKTsKIH0KKworI2VuZGlmIC8v
IFdURl9VU0VfSlNDCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0
VGVzdENvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRl
c3RDb250cm9sbGVyRWZsLmNwcAppbmRleCA2NjU5NGY3Li44M2MxNmRmIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKQEAg
LTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPEtVUkwuaD4KICNpbmNsdWRlIDxlZGl0aW5nL0ZpbmRPcHRpb25z
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9D
TWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dAppbmRleCA2
OWFjN2JmLi5lMzE4OGQ5IDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0
cy50eHQKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0CkBAIC0zLDcgKzMs
NiBAQCBTRVQoRVdlYkxhdW5jaGVyX1NPVVJDRVMKICkKIAogU0VUKEVXZWJMYXVuY2hlcl9MSUJS
QVJJRVMKLSAgICAke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfTkFNRX0KICAgICAke1dlYkNvcmVf
TElCUkFSWV9OQU1FfQogICAgICR7V2ViS2l0X0xJQlJBUllfTkFNRX0KICAgICAke0NhaXJvX0xJ
QlJBUklFU30KQEAgLTE2LDYgKzE1LDE2IEBAIFNFVChFV2ViTGF1bmNoZXJfTElCUkFSSUVTCiAg
ICAgJHtTUUxJVEVfTElCUkFSSUVTfQogKQogCitJRiAoV1RGX1VTRV9WOCkKKyAgICBMSVNUKEFQ
UEVORCBFV2ViTGF1bmNoZXJfTElCUkFSSUVTCisgICAgICAgICItbHY4IgorICAgICkKK0VMU0Ug
KCkKKyAgICBMSVNUKEFQUEVORCBFV2ViTGF1bmNoZXJfTElCUkFSSUVTCisgICAgICAgICR7SmF2
YVNjcmlwdENvcmVfTElCUkFSWV9OQU1FfQorICAgICkKK0VORElGICgpCisKIFNFVChFV2ViTGF1
bmNoZXJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9ESVJ9L2VmbC9ld2siCiAg
ICAgJHtDYWlyb19JTkNMVURFX0RJUlN9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>