<?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>112624</bug_id>
          
          <creation_ts>2013-03-18 14:24:57 -0700</creation_ts>
          <short_desc>implement &quot;opaque&quot; attribute for &lt;canvas&gt;</short_desc>
          <delta_ts>2022-07-18 15:01:31 -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>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephen White">senorblanco</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cabanier</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jamesr</cc>
    
    <cc>junov</cc>
    
    <cc>krit</cc>
    
    <cc>noam</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>857553</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-18 14:24:57 -0700</bug_when>
    <thetext>implement &quot;opaque&quot; attribute for &lt;canvas&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857555</commentid>
    <comment_count>1</comment_count>
      <attachid>193655</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-18 14:26:02 -0700</bug_when>
    <thetext>Created attachment 193655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857557</commentid>
    <comment_count>2</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-18 14:26:32 -0700</bug_when>
    <thetext>This is not marked for review, since the feature is still under discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862010</commentid>
    <comment_count>3</comment_count>
      <attachid>194664</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-22 17:19:57 -0700</bug_when>
    <thetext>Created attachment 194664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862060</commentid>
    <comment_count>4</comment_count>
      <attachid>194664</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-22 18:22:05 -0700</bug_when>
    <thetext>Comment on attachment 194664
Patch

Attachment 194664 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17136999</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862062</commentid>
    <comment_count>5</comment_count>
      <attachid>194664</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 18:23:44 -0700</bug_when>
    <thetext>Comment on attachment 194664
Patch

Attachment 194664 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17296079</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862064</commentid>
    <comment_count>6</comment_count>
      <attachid>194664</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-22 18:27:11 -0700</bug_when>
    <thetext>Comment on attachment 194664
Patch

Attachment 194664 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17137000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862087</commentid>
    <comment_count>7</comment_count>
      <attachid>194664</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-22 19:32:49 -0700</bug_when>
    <thetext>Comment on attachment 194664
Patch

Attachment 194664 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17223543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862103</commentid>
    <comment_count>8</comment_count>
      <attachid>194684</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-22 20:22:21 -0700</bug_when>
    <thetext>Created attachment 194684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862134</commentid>
    <comment_count>9</comment_count>
      <attachid>194690</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-22 21:24:47 -0700</bug_when>
    <thetext>Created attachment 194690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862146</commentid>
    <comment_count>10</comment_count>
      <attachid>194691</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2013-03-22 22:23:50 -0700</bug_when>
    <thetext>Created attachment 194691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997091</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-04-03 01:57:02 -0700</bug_when>
    <thetext>Firefox and Chrome implement this and will ship this addition. Might it make sense for Safari as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884903</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-18 15:01:31 -0700</bug_when>
    <thetext>This feature was deprecated in favor of simply setting the &apos;alpha&apos; option of HTMLCanvasElement.getContext() to &apos;false&apos;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193655</attachid>
            <date>2013-03-18 14:26:02 -0700</date>
            <delta_ts>2013-03-22 17:19:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112624-20130318172153.patch</filename>
            <type>text/plain</type>
            <size>27106</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFiNTMxNDg1OTcwZDk1M2RmOGJmOTAz
ODYzMGYzMmRhNmNlMjdiODcuLjNhZDY5NWIyMzliZjcxZjZjZDYxOWYxNjVlOWVkN2ExM2NmMTYz
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ICJvcGFxdWUiIGF0dHJp
YnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTMtMDMtMTggIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXaW5DYWlyb10gR2V0IGJ1
aWxkIHdvcmtpbmcgdW5kZXIgVlMyMDEwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDcwMmFjYjkzM2Q3ZGY4ZjI0
NGY4NzQ0ZWUyODk0NjliM2Q0ODc3OWQuLmExY2M3ZDhlNmZhYzdmYWRkZjE1OWUzNDk5YTZlYmFm
ZTQwNGQwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wMy0xOCAgU3RlcGhl
biBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KKworICAgICAgICBpbXBsZW1lbnQg
Im9wYXF1ZSIgYXR0cmlidXRlIGZvciA8Y2FudmFzPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6
OkhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50
OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpvcGFxdWUpOgorICAgICAgICAoSFRNTENhbnZh
c0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Nh
bnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
MkRMYXllckJyaWRnZTo6Y3JlYXRlKToKKyAgICAgICAgKENhbnZhczJETGF5ZXJCcmlkZ2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVBY2NlbGVyYXRlZENhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVm
ZmVyV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisKIDIwMTMtMDMtMTgg
IEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggR3JpZFRy
YWNrU2l6ZTo6b3BlcmF0b3I9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwZTc4NGY3
MjQ3YzgxYzM3ZjdlMDk4MjU0ZTQzNjZjYzY5YWI2MDcyLi4yZDYwYmE5NDllOWI4YzcwMWE0MzRi
NzFlY2E5Mzc1OWViMzQ3YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEzLTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9yIDxjYW52YXM+
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI2MjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1
cmVzLmd5cGk6CisKIDIwMTMtMDMtMTggIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQ3JlYXRlIFdlYkZpbGVTeXN0ZW1UeXBlIGVudW0g
dG8gYWxsb3cgZWFzaWVyIGZpbGVzeXN0ZW0gcmVmYWN0b3JpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5l
cy5oCmluZGV4IGViNjU3MzVjMjcyNzUyMjU1MDkzOGEyYjBlNTljOTE1MWUzZTIwOGEuLmYzNzEz
NmM0ZTFkYTAwNzlmYTBlZDNmYmMwZGU0MjU5ZGQ1NzQyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmlu
ZXMuaApAQCAtNjY5LDYgKzY2OSwxMCBAQAogI2RlZmluZSBFTkFCTEVfT0JKRUNUX01BUktfTE9H
R0lORyAwCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9PUEFRVUVfQ0FOVkFTKQorI2Rl
ZmluZSBFTkFCTEVfT1BBUVVFX0NBTlZBUyAwCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJM
RV9PUEVOQ0wpCiAjZGVmaW5lIEVOQUJMRV9PUEVOQ0wgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IDZjNjc1N2QxNGE3ODgyZDFmOWUwOWYz
ZDljYjcwNzA1OTIzYzI3Y2UuLmZlZjI1OGYxNTJlYzg2Yjk2ZDk1NTNkNzgzMThlYmQ3MjU1NjZm
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yNjUs
NiArMjY1LDcgQEAgb253ZWJraXRzb3VyY2VjbG9zZQogb253ZWJraXRzb3VyY2VlbmRlZAogb253
ZWJraXRzb3VyY2VvcGVuCiBvbndlYmtpdHRyYW5zaXRpb25lbmQKK29wYXF1ZQogb3Blbgogb3B0
aW11bQogcGF0dGVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApp
bmRleCAzY2MyYzkzMGEyY2U1OGM5MWVlMDg5ZDBiZGJiZWFhMTI2ZGY3YTdlLi5lOTY3MTg0ZDVj
ZDVjMDBjMDA4YjRjMWE2OTM1MjY2OTJlMmI3YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcApAQCAtODMsNiArODMsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQg
TWF4U2tpYURpbSA9IDMyNzY3LjBGOyAvLyBNYXhpbXVtIHdpZHRoL2hlaWdodCBpbiBDU1MgcGl4
ZWxzLgogSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQogICAgICwgbV9zaXplKERlZmF1bHRXaWR0aCwgRGVmYXVsdEhlaWdo
dCkKKyAgICAsIG1fb3BhcXVlKGZhbHNlKQogICAgICwgbV9yZW5kZXJlcklzQ2FudmFzKGZhbHNl
KQogICAgICwgbV9pZ25vcmVSZXNldChmYWxzZSkKICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3Io
dGFyZ2V0RGV2aWNlU2NhbGVGYWN0b3IoKSkKQEAgLTExNiw2ICsxMTcsMTAgQEAgdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3QKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBo
ZWlnaHRBdHRyKQogICAgICAgICByZXNldCgpOworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQor
ICAgIGlmIChuYW1lID09IG9wYXF1ZUF0dHIpCisgICAgICAgIHJlc2V0KCk7CisjZW5kaWYKICAg
ICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCkBAIC0xNTcs
NiArMTYyLDE2IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFdpZHRoKGludCB2YWx1ZSkK
ICAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwogfQog
Cit2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRPcGFxdWUoYm9vbCB2YWx1ZSkKK3sKKyNpZiBF
TkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBpZiAodmFsdWUpCisgICAgICAgIHNldEF0dHJpYnV0
ZShvcGFxdWVBdHRyLCAidHJ1ZSIpOworICAgIGVsc2UKKyAgICAgICAgcmVtb3ZlQXR0cmlidXRl
KG9wYXF1ZUF0dHIpOworI2VuZGlmCit9CisKIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxD
YW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgQ2FudmFzQ29udGV4
dEF0dHJpYnV0ZXMqIGF0dHJzKQogewogICAgIC8vIEEgQ2FudmFzIGNhbiBlaXRoZXIgYmUgIjJE
IiBvciAid2ViZ2wiIGJ1dCBuZXZlciBib3RoLiBJZiB5b3UgcmVxdWVzdCBhIDJEIGNhbnZhcyBh
bmQgdGhlIGV4aXN0aW5nCkBAIC0yNTYsNiArMjcxLDEwIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OnJlc2V0KCkKICAgICBpZiAoIW9rIHx8IGggPCAwKQogICAgICAgICBoID0gRGVmYXVsdEhl
aWdodDsKIAorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIGJvb2wgb3BhcXVlID0gZmFz
dEhhc0F0dHJpYnV0ZShvcGFxdWVBdHRyKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fY29udGV4dFN0
YXRlU2F2ZXIpIHsKICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIGluaXRpYWwgZ3JhcGhpY3MgY29u
dGV4dCBzdGF0ZS4KICAgICAgICAgbV9jb250ZXh0U3RhdGVTYXZlci0+cmVzdG9yZSgpOwpAQCAt
MjczLDEzICsyOTIsMTQgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQoKQogCiAgICAg
Ly8gSWYgdGhlIHNpemUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyIG1hdGNoZXMsIHdlIGNhbiBqdXN0
IGNsZWFyIGl0IGluc3RlYWQgb2YgcmVhbGxvY2F0aW5nLgogICAgIC8vIFRoaXMgb3B0aW1pemF0
aW9uIGlzIG9ubHkgZG9uZSBmb3IgMkQgY2FudmFzZXMgZm9yIG5vdy4KLSAgICBpZiAobV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6ZSA9PSBuZXdTaXplICYmIG1fZGV2aWNlU2NhbGVG
YWN0b3IgPT0gbmV3RGV2aWNlU2NhbGVGYWN0b3IgJiYgbV9jb250ZXh0ICYmIG1fY29udGV4dC0+
aXMyZCgpKSB7CisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0g
bmV3U2l6ZSAmJiBtX2RldmljZVNjYWxlRmFjdG9yID09IG5ld0RldmljZVNjYWxlRmFjdG9yICYm
IG1fb3BhcXVlID09IG9wYXF1ZSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsK
ICAgICAgICAgaWYgKCFtX2RpZENsZWFySW1hZ2VCdWZmZXIpCiAgICAgICAgICAgICBjbGVhcklt
YWdlQnVmZmVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2RldmljZVNjYWxl
RmFjdG9yID0gbmV3RGV2aWNlU2NhbGVGYWN0b3I7CisgICAgbV9vcGFxdWUgPSBvcGFxdWU7CiAK
ICAgICBzZXRTdXJmYWNlU2l6ZShuZXdTaXplKTsKIApAQCAtMzUzLDkgKzM3Myw5IEBAIHZvaWQg
SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
TGF5b3V0UmVjdCYgciwgYm9vCiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGJ1
ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIGlmIChtX3By
ZXNlbnRlZEltYWdlKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNl
bnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0
KHIpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZSht
X3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJ
bnRSZWN0KHIpLCBtX29wYXF1ZSA/IENvbXBvc2l0ZUNvcHkgOiBDb21wb3NpdGVTb3VyY2VPdmVy
LCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihp
bWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwg
Q29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwg
Q29sb3JTcGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgbV9vcGFxdWUgPyBD
b21wb3NpdGVDb3B5IDogQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VM
b3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC01NjYsNyArNTg2LDggQEAg
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgICAg
ICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCiAgICAgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSA9
IHNob3VsZERlZmVyKCkgPyBEZWZlcnJlZCA6IE5vbkRlZmVycmVkOwotICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlKTsKKyAgICBPcGFj
aXR5TW9kZSBvcGFjaXR5TW9kZSA9IG1fb3BhcXVlID8gT3BhcXVlIDogTm9uT3BhcXVlOworICAg
IG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2Fs
ZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2Rl
LCBvcGFjaXR5TW9kZSk7CiAgICAgaWYgKCFtX2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47
CiAgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5zZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jt
cyh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBjZDk4
MjFjNWMzNzdiNjcxM2NhYTc4YmY5ZDU2Y2FkMGZhYjQ1MDRhLi40ZWU1YTA3ODRkZGYwNWU4Mzg4
M2ZlYTA3ZjFlYmM2ZWNiNjQyZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCkBAIC03NCwxMSArNzQsMTMgQEAgcHVibGljOgogICAgIC8vIEF0dHJpYnV0ZXMgYW5k
IGZ1bmN0aW9ucyBleHBvc2VkIHRvIHNjcmlwdAogICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0
dXJuIHNpemUoKS53aWR0aCgpOyB9CiAgICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHNp
emUoKS5oZWlnaHQoKTsgfQorICAgIGJvb2wgb3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9vcGFx
dWU7IH0KIAogICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7
IH0KIAogICAgIHZvaWQgc2V0V2lkdGgoaW50KTsKICAgICB2b2lkIHNldEhlaWdodChpbnQpOwor
ICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwogCiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmIG5ld1NpemUpCiAgICAgeyAKQEAgLTE2Nyw2ICsxNjksNyBAQCBwcml2YXRlOgogICAgIEhh
c2hTZXQ8Q2FudmFzT2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKIAogICAgIEludFNpemUgbV9zaXpl
OworICAgIGJvb2wgbV9vcGFxdWU7CiAKICAgICBPd25QdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4
dD4gbV9jb250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRs
CmluZGV4IGZkYmRlZmNmZTVmMzBjNmEyMDczYjc5ZTE2NjhkNWMwMDhmOWJiMTguLjRkMDMxODZh
OGJhOWRmM2I1ZWFjNjUyYjFiNGU5ZDc3NzUyMjNjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw5IEBACiAKICAgICBhdHRyaWJ1dGUg
bG9uZyB3aWR0aDsKICAgICBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CisjaWYgZGVmaW5lZChFTkFC
TEVfT1BBUVVFX0NBTlZBUykKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBvcGFxdWU7CisjZW5kaWYK
IAogICAgIFtDdXN0b21dIERPTVN0cmluZyB0b0RhdGFVUkwoaW4gW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyB0eXBlKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IDlj
NWU2M2E5NTk1ZTlhNjA5OWE1Mjc1NWQ0Nzk2MzNlMjFjODlkYTcuLmE3MDVjY2Y0ZmYwNWMzZGQ1
MWZkYTk2YjJmZDA0YjE1ZjQ1Mjc5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtODAsMTQgKzgwLDE5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgVW5zY2FsZWQKICAgICB9OwogCisgICAgZW51bSBPcGFjaXR5TW9kZSB7
CisgICAgICAgIE5vbk9wYXF1ZSwKKyAgICAgICAgT3BhcXVlLAorICAgIH07CisKICAgICBjbGFz
cyBJbWFnZUJ1ZmZlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVy
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICAvLyBXaWxs
IHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gICAgICAgIHN0
YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JT
cGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRl
ZCwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSA9IE5vbkRlZmVycmVkKQorICAgICAgICBzdGF0
aWMgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQs
IERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUgPSBOb25EZWZlcnJlZCwgT3BhY2l0eU1vZGUgb3Bh
Y2l0eU1vZGUgPSBOb25PcGFxdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJvb2wgc3VjY2Vz
cyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0
cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW5k
ZXJpbmdNb2RlLCBkZWZlcnJhbE1vZGUsIHN1Y2Nlc3MpKTsKKyAgICAgICAgICAgIE93blB0cjxJ
bWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgZGVmZXJyYWxNb2RlLCBvcGFjaXR5
TW9kZSwgc3VjY2VzcykpOwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuIGJ1Zi5yZWxlYXNlKCk7CkBA
IC0xNjAsNyArMTY1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFRoaXMg
Y29uc3RydWN0b3Igd2lsbCBwbGFjZSBpdHMgc3VjY2VzcyBpbnRvIHRoZSBnaXZlbiBvdXQtdmFy
aWFibGUKICAgICAgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCBy
ZXR1cm4gZmFpbHVyZS4KLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2Rl
LCBib29sJiBzdWNjZXNzKTsKKyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxN
b2RlLCBPcGFjaXR5TW9kZSwgYm9vbCYgc3VjY2Vzcyk7CiAjaWYgVVNFKFNLSUEpCiAgICAgICAg
IEltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9y
U3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGJvb2wgaGFzQWxwaGEsIGJvb2wmIHN1Y2Nl
c3MpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDY5NTM5MzI3ZjEzMDQyNmU2
YTk0ZjA0ZDg4MDNhNDQ3ODY5ZjMzZjQuLjhjNTYyMDFmNGZkYjQzNWQ0NGZmZDU5ZjZhNDBiODhl
YjBkN2YyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC01NCw3ICs1NCw3IEBAIEltYWdl
QnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQogewogfQogCi1JbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1
dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJv
b2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2Rl
LCBEZWZlcnJhbE1vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRh
KHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
Ry5jcHAKaW5kZXggN2UwNDM0YzM2YWMzOGVkMzk2ZWUzNjk1MDllMDQ4M2UyNDJkOWFiMS4uNDUy
OGM1NGQ3NDMxMGMyMTczMWZhNmYwYTAwYjA4Yjk0NmFmOGE0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2
b2lkKiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkp
OwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdN
b2RlLCBEZWZlcnJhbE1vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9k
YXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJlIGlzbid0IGltcG9ydGFudCBhcyBJbWFn
ZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3QgaWdub3JlcyBpdC4KICAgICAsIG1fbG9n
aWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2FsZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Nh
bnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKaW5kZXggNjYyNzJmZGIzODI5ODE3ZTEy
MDUxMzM4YzA4YmU2NzljNDQ1YmI2OS4uMDZhZTFjNjFhZTliZmM3ODYxZWM5NjgyMWY3NTM4M2Vl
NWE2YTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERlZmVy
cmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4
dHVyZUlkKQorQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBEZWZl
cnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgVGhyZWFkTW9k
ZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgOiBtX2RlZmVycmFsTW9kZShk
ZWZlcnJhbE1vZGUpCiAgICAgLCBtX2Zyb250QnVmZmVyVGV4dHVyZSgwKQogICAgICwgbV9iYWNr
QnVmZmVyVGV4dHVyZSh0ZXh0dXJlSWQpCkBAIC04Myw2ICs4Myw3IEBAIENhbnZhczJETGF5ZXJC
cmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwKICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0aGlz
KSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7CiAgICAgbV9sYXllci0+
c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCB8fCBtX3VzZURv
dWJsZUJ1ZmZlcmluZyk7CisgICAgbV9sYXllci0+c2V0T3BhcXVlKG9wYWNpdHlNb2RlID09IE9w
YXF1ZSk7CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIo
bV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAppbmRl
eCA4ZTQ0MmZkOTE3N2FhODI4M2QyYjA2ODdhNDA1ODM5Y2ViNjUwMzJkLi4zNDM5OTgwMjMzMDQ2
YzljMDVjMThiMTBlN2ExZWQzMjdiMzc1OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICAgICAgVGhyZWFkZWQKICAgICB9Owog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIERl
ZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0
ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUm
IHNpemUsIERlZmVycmFsTW9kZSBkZWZlcnJhbE1vZGUsIE9wYWNpdHlNb2RlIG9wYWNpdHlNb2Rl
LCBUaHJlYWRNb2RlIHRocmVhZGluZywgdW5zaWduZWQgdGV4dHVyZUlkKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52YXMyRExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUs
IGRlZmVycmFsTW9kZSwgdGhyZWFkaW5nLCB0ZXh0dXJlSWQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBDYW52YXMyRExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIGRlZmVycmFsTW9k
ZSwgb3BhY2l0eU1vZGUsIHRocmVhZGluZywgdGV4dHVyZUlkKSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+Q2FudmFzMkRMYXllckJyaWRnZSgpOwpAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgYmFja0J1ZmZlclRleHR1cmUoKTsKIAogcHJvdGVjdGVkOgotICAgIENhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIGNvbnN0IEludFNp
emUmLCBEZWZlcnJhbE1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7CisgICAg
Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3Qg
SW50U2l6ZSYsIERlZmVycmFsTW9kZSwgT3BhY2l0eU1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVk
IHRleHR1cmVJZCk7CiAgICAgU2tEZWZlcnJlZENhbnZhcyogZGVmZXJyZWRDYW52YXMoKTsKIAog
ICAgIERlZmVycmFsTW9kZSBtX2RlZmVycmFsTW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggNDM4NTljYWQx
Yzc0ODM1NDNjMDdkZjE4YWQ2M2U5NTdhNzI4NThkNC4uZjVmMTI2OWY2ODcwYWFjNWY0ZGU3Mjli
Yjc3MjRiMzY2MDIwYzAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUUltYWdlIElt
YWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBpbWFnZTsKIH0KIAot
SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJl
c29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJyYWxNb2Rl
LCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUm
IHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5n
TW9kZSwgRGVmZXJyYWxNb2RlLCBPcGFjaXR5TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1f
ZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdl
QnVmZmVyU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0lt
YWdlQnVmZmVyU2tpYS5jcHAKaW5kZXggNzQyYjAxMWI4MDJlZTAxMWE2NGRiYTczNTRhYzFjZDNl
N2U4MDQ2NS4uMWRmMmQzN2UwYTljODYyZjdlMzFkOTRhZmIxNDdiZjU2MTZkOWNhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNr
aWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcApAQCAtNzIsNyArNzIsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVm
ZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplKQogewogfQogCi1zdGF0aWMgU2tDYW52YXMqIGNy
ZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0
YSogZGF0YSwgRGVmZXJyYWxNb2RlIGRlZmVycmFsTW9kZSkKK3N0YXRpYyBTa0NhbnZhcyogY3Jl
YXRlQWNjZWxlcmF0ZWRDYW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRh
KiBkYXRhLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2RlLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9k
ZSkKIHsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzRCA9IFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjpnZXQoKTsKICAgICBpZiAoIWNvbnRleHQzRCkKQEAgLTk0LDcgKzk0
LDcgQEAgc3RhdGljIFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRT
aXplJiBzaXplLCBJbWFnZUJ1ZmZlckRhdGEqIGQKICAgICBTa0F1dG9UVW5yZWY8U2tEZXZpY2U+
IGRldmljZShuZXcgU2tHcHVEZXZpY2UoZ3IsIHRleHR1cmUuZ2V0KCkpKTsKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFkTW9k
ZSB0aHJlYWRNb2RlID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5pc1RocmVhZGVkQ29t
cG9zaXRpbmdFbmFibGVkKCkgPyBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRlZCA6IENhbnZh
czJETGF5ZXJCcmlkZ2U6OlNpbmdsZVRocmVhZDsKLSAgICBkYXRhLT5tX2xheWVyQnJpZGdlID0g
Q2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRlKGNvbnRleHQzRC5yZWxlYXNlKCksIHNpemUsIGRl
ZmVycmFsTW9kZSwgdGhyZWFkTW9kZSwgdGV4dHVyZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgp
KTsKKyAgICBkYXRhLT5tX2xheWVyQnJpZGdlID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRl
KGNvbnRleHQzRC5yZWxlYXNlKCksIHNpemUsIGRlZmVycmFsTW9kZSwgb3BhY2l0eU1vZGUsIHRo
cmVhZE1vZGUsIHRleHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5kbGUoKSk7CiAgICAgY2FudmFz
ID0gZGF0YS0+bV9sYXllckJyaWRnZS0+c2tDYW52YXMoZGV2aWNlLmdldCgpKTsKICNlbHNlCiAg
ICAgY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZS5nZXQoKSk7CkBAIC0xNTEsNyArMTUxLDcg
QEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBzdWNjZXNzID0gdHJ1ZTsKIH0KIAotSW1h
Z2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJh
bE1vZGUgZGVmZXJyYWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUgZGVmZXJyYWxNb2Rl
LCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShz
aXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCkBAIC0x
NjAsNyArMTYwLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBPd25QdHI8U2tDYW52
YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IEFjY2VsZXJhdGVkKQotICAg
ICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhzaXplLCAmbV9k
YXRhLCBkZWZlcnJhbE1vZGUpKTsKKyAgICAgICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlQWNj
ZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0YSwgZGVmZXJyYWxNb2RlLCBvcGFjaXR5TW9kZSkp
OwogICAgIGVsc2UgaWYgKHJlbmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3Jt
QnVmZmVyKQogICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZh
cyhzaXplKSk7CiAKQEAgLTE3NSwxMyArMTc1LDE2IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2Us
CiAgICAgbV9kYXRhLm1fY2FudmFzID0gY2FudmFzLnJlbGVhc2UoKTsKICAgICBtX2RhdGEubV9w
bGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKG1fZGF0YS5tX2NhbnZhcy5nZXQoKSk7CiAgICAgbV9j
b250ZXh0ID0gYWRvcHRQdHIobmV3IEdyYXBoaWNzQ29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1D
b250ZXh0KSk7Ci0gICAgbV9jb250ZXh0LT5zZXRTaG91bGRTbW9vdGhGb250cyhmYWxzZSk7Cisg
ICAgbV9jb250ZXh0LT5zZXRTaG91bGRTbW9vdGhGb250cyhvcGFjaXR5TW9kZSA9PSBPcGFxdWUp
OwogICAgIG1fY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKG1fcmVzb2x1dGlvblNjYWxlLCBtX3Jl
c29sdXRpb25TY2FsZSkpOwogCi0gICAgLy8gTWFrZSB0aGUgYmFja2dyb3VuZCB0cmFuc3BhcmVu
dC4gSXQgd291bGQgYmUgbmljZSBpZiB0aGlzIHdhc24ndAorICAgIC8vIENsZWFyIHRoZSBiYWNr
Z3JvdW5kIHRyYW5zcGFyZW50IG9yIG9wYXF1ZSwgYXMgcmVxdWlyZWQuIEl0IHdvdWxkIGJlIG5p
Y2UgaWYgdGhpcyB3YXNuJ3QKICAgICAvLyByZXF1aXJlZCwgYnV0IHRoZSBjYW52YXMgaXMgY3Vy
cmVudGx5IGZpbGxlZCB3aXRoIHRoZSBtYWdpYyB0cmFuc3BhcmVuY3kKICAgICAvLyBjb2xvci4g
Q2FuIHdlIGhhdmUgYW5vdGhlciB3YXkgdG8gbWFuYWdlIHRoaXM/Ci0gICAgbV9kYXRhLm1fY2Fu
dmFzLT5kcmF3QVJHQigwLCAwLCAwLCAwLCBTa1hmZXJtb2RlOjprQ2xlYXJfTW9kZSk7CisgICAg
aWYgKG9wYWNpdHlNb2RlID09IE9wYXF1ZSkKKyAgICAgICAgbV9kYXRhLm1fY2FudmFzLT5kcmF3
QVJHQigyNTUsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtTcmNfTW9kZSk7CisgICAgZWxzZSAKKyAg
ICAgICAgbV9kYXRhLm1fY2FudmFzLT5kcmF3QVJHQigwLCAwLCAwLCAwLCBTa1hmZXJtb2RlOjpr
Q2xlYXJfTW9kZSk7CiAKICAgICBzdWNjZXNzID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5j
cHAKaW5kZXggYzNjNDExOWYzYzRkYTBkNDVkNmYyN2Y2ZWQ1NzI4ZGFmMjk4NDhkNi4uZjE5NGJm
Mzg5YmE3YTliYjMwN2M1MzVjMmUxOTFhNWNmOTc2MmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5j
cHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1ZmZlckRhdGEoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1hcC0+c2V0SGFzQWxwaGEodHJ1ZSk7CiB9CiAK
LUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNv
bHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgRGVmZXJy
YWxNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
LCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNz
KQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNh
bFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3d4L0ltYWdlQnVmZmVyV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvSW1hZ2VCdWZmZXJXeC5jcHAKaW5kZXggNGY0MWVkMTAzY2Y3YzE5ZTNiMzRlNTk1YzAyYzlm
N2JhZTJhOWI4NC4uOGQ3MGI0ZWY0YjllMGJjZTU4NzhhMzE5YTYxYjIyNDVkY2YwYjEyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZmZXJX
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW1hZ2VCdWZm
ZXJXeC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJE
YXRhKCkKICAgICBkZWxldGUgbV9tZW1EQzsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBEZWZlcnJhbE1vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJ
bWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIERlZmVycmFs
TW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAg
ICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDlhMmFjYzI5OGIwZTRmNzgwY2JjNmJjNjFjYTMzYWY1
MWU0ODBkZjMuLjkzMmY2ZjFhNjM3MTYxOWY4OWIwMWM3MjU5NjNlYWJhZTNiNzk5ZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTk4LDYgKzk4LDcgQEAKICAgICAgICdF
TkFCTEVfTUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU9MScs
CiAgICAgICAnRU5BQkxFX05PU05JRkY9MScsCisgICAgICAnRU5BQkxFX09QQVFVRV9DQU5WQVM9
MScsCiAgICAgICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAgICAnRU5BQkxF
X1BFUkZPUk1BTkNFX1RJTUVMSU5FPTEnLAogICAgICAgJ0VOQUJMRV9QT0lOVEVSX0xPQ0s9MScs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMDVmNjJmZDkyZmI1NThkNmVkN2UzY2Q2ODgzZjhhOWE5NzkxYjgzNS4uYzU4MjRm
MTQ4NWQ0YmZiYWIzYmZkMGRiYmRhYzIwYTRlYzdjNGVmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEzLTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9yIDxjYW52YXM+CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI2MjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFz
L29wYXF1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL29wYXF1
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUuanM6IEFkZGVkLgor
CiAyMDEzLTAzLTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNraXAgc29tZSB0ZXN0cyBvbiBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvb3BhcXVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL29wYXF1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4ZDQ1MjhiOTdlZWZiZWE0NTRh
MzMxNjRjYzcxYmYwOGUxYWJjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL29wYXF1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorU2VyaWVzIG9mIHRl
c3RzIGZvciBjYW52YXMub3BhcXVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIGltZ0RhdGEuZGF0YVswXSBpcyAwCitQQVNTIGltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNT
IGltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNTIGltZ0RhdGEuZGF0YVszXSBpcyAwCitQQVNTIG9w
YXF1ZUltZ0RhdGEuZGF0YVswXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVsxXSBpcyAw
CitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0
YVszXSBpcyAyNTUKK1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFT
UyBmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNTIGZvcm1lcmx5T3BhcXVl
SW1nRGF0YS5kYXRhWzJdIGlzIDAKK1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbM10g
aXMgMAorUEFTUyBvcGFxdWVJbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBvcGFxdWVJbWdEYXRh
LmRhdGFbMV0gaXMgMAorUEFTUyBvcGFxdWVJbWdEYXRhLmRhdGFbMl0gaXMgMAorUEFTUyBvcGFx
dWVJbWdEYXRhLmRhdGFbM10gaXMgMjU1CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L29wYXF1ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWRhZTk4NmNiZmJkZTcwNjY4ZWNhMDU1M2E3OGMyZjRhOGM2MTEyMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL29wYXF1ZS5odG1sCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiPjwvY2FudmFzPgorPGNhbnZh
cyBpZD0ib3BhcXVlQ2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiBvcGFxdWU+PC9jYW52YXM+
Cis8c2NyaXB0IHNyYz0ib3BhcXVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL29wYXF1ZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL29wYXF1ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmE0YTU4ODFiODU0ODhlZWVjZDhm
MTQ2MDEzYzUyNmE5ODZlOTAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvb3BhcXVlLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Rlc2NyaXB0aW9uKCJTZXJpZXMgb2Yg
dGVzdHMgZm9yIGNhbnZhcy5vcGFxdWUiKTsKK3ZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY2FudmFzIik7Cit2YXIgb3BhcXVlQ2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm9wYXF1ZUNhbnZhcyIpOwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OwordmFyIG9wYXF1ZUN0eCA9IG9wYXF1ZUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwordmFyIGlt
Z0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpOworc2hvdWxkQmUoImNhbnZhcy5v
cGFxdWUiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJpbWdEYXRhLmRhdGFbMF0iLCAiMCIpOworc2hv
dWxkQmUoImltZ0RhdGEuZGF0YVsxXSIsICIwIik7CitzaG91bGRCZSgiaW1nRGF0YS5kYXRhWzJd
IiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdEYXRhLmRhdGFbM10iLCAiMCIpOwordmFyIG9wYXF1ZUlt
Z0RhdGEgPSBvcGFxdWVDdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpOworc2hvdWxkQmUoIm9w
YXF1ZUNhbnZhcy5vcGFxdWUiLCAidHJ1ZSIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0
YVswXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3No
b3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUlt
Z0RhdGEuZGF0YVszXSIsICIyNTUiKTsKK29wYXF1ZUNhbnZhcy5yZW1vdmVBdHRyaWJ1dGUoJ29w
YXF1ZScpOwordmFyIGZvcm1lcmx5T3BhcXVlSW1nRGF0YSA9IG9wYXF1ZUN0eC5nZXRJbWFnZURh
dGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgib3BhcXVlQ2FudmFzLm9wYXF1ZSIsICJmYWxzZSIp
Oworc2hvdWxkQmUoImZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsxXSIsICIwIik7CitzaG91bGRCZSgiZm9y
bWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoImZvcm1lcmx5T3Bh
cXVlSW1nRGF0YS5kYXRhWzNdIiwgIjAiKTsKK2NhbnZhcy5zZXRBdHRyaWJ1dGUoJ29wYXF1ZScs
ICd0cnVlJyk7CitvcGFxdWVJbWdEYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKTsK
K3Nob3VsZEJlKCJjYW52YXMub3BhcXVlIiwgInRydWUiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdE
YXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVsxXSIsICIw
Iik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3VsZEJlKCJv
cGFxdWVJbWdEYXRhLmRhdGFbM10iLCAiMjU1Iik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194664</attachid>
            <date>2013-03-22 17:19:57 -0700</date>
            <delta_ts>2013-03-22 20:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112624-20130322201543.patch</filename>
            <type>text/plain</type>
            <size>28305</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyMWFjN2FjYzI1NzY0MTE4ZDc3NWRm
ZWY3ZjQxNDNlMTFlNTM5ZGEuLmUyYjgzMTIxOTAyM2E3ZDJmNTRhOGIyNDQ5OTJlMGNlM2ZiZGQ2
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ICJvcGFxdWUiIGF0dHJp
YnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTMtMDMtMjIgIEhhamltZSBN
b3JyaXRhICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIEN1c3RvbSBFbGVtZW50czog
InJlYWR5Q2FsbGJhY2siIGxpZmVjeWNsZSBjYWxsYmFjayBzaG91bGQgYmUgY2FsbGVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDU1ZWM4ZTQ0MmQ3NGFkMzFhZmRlYmQ3NzRmYzEyYTRmN2FiMDk5YTMuLmI1ZDIw
ZTg1NTM3YTgyMmU2MmVlMjE3NzI5MGFhMWU4YjkzYjk2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0NyBAQAorMjAxMy0wMy0xOCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBpbXBsZW1lbnQgIm9wYXF1ZSIgYXR0cmlidXRlIGZvciA8Y2FudmFz
PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjI0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojpv
cGFxdWUpOgorICAgICAgICAoSFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAg
KEltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Y3JlYXRlKToKKyAgICAg
ICAgKENhbnZhczJETGF5ZXJCcmlkZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tp
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy93eC9JbWFnZUJ1ZmZlcld4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJ
bWFnZUJ1ZmZlcik6CisKIDIwMTMtMDMtMjIgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGb3JjZSBraWxsIGdjYy0zLmV4ZSBkdXJpbmcg
YmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cyB0byBhdm9pZCBwcm9jZXNzIGhhbmdzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAxNDlmZjcxNmQ3YjI3N2MzM2Q3Y2E0MjkwNGFkNzZkNTI1
ZTNjYWFmLi5iODA5NWY1MTBiN2ZhYzQ0YzBmNTYyNzgwNjI1NTk2MjU3OTEwMDJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTAzLTE4ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCAi
b3BhcXVlIiBhdHRyaWJ1dGUgZm9yIDxjYW52YXM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisKIDIwMTMtMDMtMjIgIEFs
ZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0g
U3VwcG9ydCBRdW90YSBBUEkgaW4gV29ya2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9G
ZWF0dXJlRGVmaW5lcy5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAppbmRleCBl
YjY1NzM1YzI3Mjc1MjI1NTA5MzhhMmIwZTU5YzkxNTFlM2UyMDhhLi5mMzcxMzZjNGUxZGEwMDc5
ZmEwZWQzZmJjMGRlNDI1OWRkNTc0MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0
dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKQEAgLTY2
OSw2ICs2NjksMTAgQEAKICNkZWZpbmUgRU5BQkxFX09CSkVDVF9NQVJLX0xPR0dJTkcgMAogI2Vu
ZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1BBUVVFX0NBTlZBUykKKyNkZWZpbmUgRU5BQkxF
X09QQVFVRV9DQU5WQVMgMAorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfT1BFTkNMKQog
I2RlZmluZSBFTkFCTEVfT1BFTkNMIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbgppbmRleCA2YzY3NTdkMTRhNzg4MmQxZjllMDlmM2Q5Y2I3MDcwNTky
M2MyN2NlLi5mZWYyNThmMTUyZWM4NmI5NmQ5NTUzZDc4MzE4ZWJkNzI1NTY2ZmVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtMjY1LDYgKzI2NSw3IEBA
IG9ud2Via2l0c291cmNlY2xvc2UKIG9ud2Via2l0c291cmNlZW5kZWQKIG9ud2Via2l0c291cmNl
b3Blbgogb253ZWJraXR0cmFuc2l0aW9uZW5kCitvcGFxdWUKIG9wZW4KIG9wdGltdW0KIHBhdHRl
cm4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggYTNjMDQ2
MzMxOWIzNTU2NzQzZmYzMDRhZThkZDQyM2ZlNGQ4M2VhYy4uMGZkN2E2MDUzYmRlZDlkMGQwNzUx
OWJiYzhmMGEwMTYzYzczYTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5jcHAKQEAgLTgzLDYgKzgzLDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IE1heFNraWFEaW0g
PSAzMjc2Ny4wRjsgLy8gTWF4aW11bSB3aWR0aC9oZWlnaHQgaW4gQ1NTIHBpeGVscy4KIEhUTUxD
YW52YXNFbGVtZW50OjpIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKICAgICAsIG1fc2l6ZShEZWZhdWx0V2lkdGgsIERlZmF1bHRIZWlnaHQpCisjaWYgRU5B
QkxFKE9QQVFVRV9DQU5WQVMpCisgICAgLCBtX29wYXF1ZShmYWxzZSkKKyNlbmRpZgogICAgICwg
bV9yZW5kZXJlcklzQ2FudmFzKGZhbHNlKQogICAgICwgbV9pZ25vcmVSZXNldChmYWxzZSkKICAg
ICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IodGFyZ2V0RGV2aWNlU2NhbGVGYWN0b3IoKSkKQEAgLTEx
Niw2ICsxMTksMTAgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3QKIHsKICAgICBpZiAobmFtZSA9
PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKQogICAgICAgICByZXNldCgpOworI2lm
IEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIGlmIChuYW1lID09IG9wYXF1ZUF0dHIpCisgICAg
ICAgIHJlc2V0KCk7CisjZW5kaWYKICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOwogfQogCkBAIC0xNTcsNiArMTY0LDE2IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OnNldFdpZHRoKGludCB2YWx1ZSkKICAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJp
bmc6Om51bWJlcih2YWx1ZSkpOwogfQogCisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCit2b2lk
IEhUTUxDYW52YXNFbGVtZW50OjpzZXRPcGFxdWUoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAodmFs
dWUpCisgICAgICAgIHNldEF0dHJpYnV0ZShvcGFxdWVBdHRyLCAidHJ1ZSIpOworICAgIGVsc2UK
KyAgICAgICAgcmVtb3ZlQXR0cmlidXRlKG9wYXF1ZUF0dHIpOworfQorI2VuZGlmCisKIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0
cmluZyYgdHlwZSwgQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMqIGF0dHJzKQogewogICAgIC8vIEEg
Q2FudmFzIGNhbiBlaXRoZXIgYmUgIjJEIiBvciAid2ViZ2wiIGJ1dCBuZXZlciBib3RoLiBJZiB5
b3UgcmVxdWVzdCBhIDJEIGNhbnZhcyBhbmQgdGhlIGV4aXN0aW5nCkBAIC0yNTYsNiArMjczLDEw
IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICBpZiAoIW9rIHx8IGggPCAw
KQogICAgICAgICBoID0gRGVmYXVsdEhlaWdodDsKIAorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFT
KQorICAgIGJvb2wgb3BhcXVlID0gZmFzdEhhc0F0dHJpYnV0ZShvcGFxdWVBdHRyKTsKKyNlbmRp
ZgorCiAgICAgaWYgKG1fY29udGV4dFN0YXRlU2F2ZXIpIHsKICAgICAgICAgLy8gUmVzZXQgdG8g
dGhlIGluaXRpYWwgZ3JhcGhpY3MgY29udGV4dCBzdGF0ZS4KICAgICAgICAgbV9jb250ZXh0U3Rh
dGVTYXZlci0+cmVzdG9yZSgpOwpAQCAtMjczLDEzICsyOTQsMjIgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6cmVzZXQoKQogCiAgICAgLy8gSWYgdGhlIHNpemUgb2YgYW4gZXhpc3RpbmcgYnVm
ZmVyIG1hdGNoZXMsIHdlIGNhbiBqdXN0IGNsZWFyIGl0IGluc3RlYWQgb2YgcmVhbGxvY2F0aW5n
LgogICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIGlzIG9ubHkgZG9uZSBmb3IgMkQgY2FudmFzZXMg
Zm9yIG5vdy4KLSAgICBpZiAobV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6ZSA9PSBu
ZXdTaXplICYmIG1fZGV2aWNlU2NhbGVGYWN0b3IgPT0gbmV3RGV2aWNlU2NhbGVGYWN0b3IgJiYg
bV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXMyZCgpKSB7CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5W
QVMpCisgICAgYm9vbCBvcGFxdWVNYXRjaGVzID0gbV9vcGFxdWUgPT0gb3BhcXVlOworI2Vsc2UK
KyAgICBib29sIG9wYXF1ZU1hdGNoZXMgPSB0cnVlOworI2VuZGlmCisKKyAgICBpZiAobV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIgJiYgb2xkU2l6ZSA9PSBuZXdTaXplICYmIG1fZGV2aWNlU2NhbGVG
YWN0b3IgPT0gbmV3RGV2aWNlU2NhbGVGYWN0b3IgJiYgb3BhcXVlTWF0Y2hlcyAmJiBtX2NvbnRl
eHQgJiYgbV9jb250ZXh0LT5pczJkKCkpIHsKICAgICAgICAgaWYgKCFtX2RpZENsZWFySW1hZ2VC
dWZmZXIpCiAgICAgICAgICAgICBjbGVhckltYWdlQnVmZmVyKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBtX2RldmljZVNjYWxlRmFjdG9yID0gbmV3RGV2aWNlU2NhbGVGYWN0b3I7
CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgbV9vcGFxdWUgPSBvcGFxdWU7CisjZW5k
aWYKIAogICAgIHNldFN1cmZhY2VTaXplKG5ld1NpemUpOwogCkBAIC0zNTIsMTAgKzM4MiwxNSBA
QCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheW91dFJlY3QmIHIsIGJvbwogICAgIGlmIChoYXNDcmVhdGVkSW1hZ2VCdWZmZXIo
KSkgewogICAgICAgICBJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIgPSBidWZmZXIoKTsKICAgICAg
ICAgaWYgKGltYWdlQnVmZmVyKSB7CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgICAg
ICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IG1fb3BhcXVlID8gQ29t
cG9zaXRlQ29weSA6IENvbXBvc2l0ZVNvdXJjZU92ZXI7CisjZWxzZQorICAgICAgICAgICAgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyOwor
I2VuZGlmCiAgICAgICAgICAgICBpZiAobV9wcmVzZW50ZWRJbWFnZSkKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3ZlciwgRG9O
b3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAg
ICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JT
cGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgY29tcG9zaXRlT3BlcmF0b3Is
IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGlt
YWdlQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBD
b21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGVOb3JtYWwsIHVzZUxvd1F1YWxpdHlTY2FsZSk7
CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBjb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC01NDksNyArNTg0LDEyIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0
ZUltYWdlQnVmZmVyKCkgY29uc3QKICNlbHNlCiAgICAgICAgIFVuYWNjZWxlcmF0ZWQ7CiAjZW5k
aWYKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIG1fZGV2
aWNlU2NhbGVGYWN0b3IsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlbmRlcmluZ01vZGUpOworI2lm
IEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIE9wYWNpdHlNb2RlIG9wYWNpdHlNb2RlID0gbV9v
cGFxdWUgPyBPcGFxdWUgOiBOb25PcGFxdWU7CisjZWxzZQorICAgIE9wYWNpdHlNb2RlIG9wYWNp
dHlNb2RlID0gTm9uT3BhcXVlOworI2VuZGlmCisgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCLCByZW5kZXJpbmdNb2RlLCBvcGFjaXR5TW9kZSk7CiAgICAgaWYgKCFtX2ltYWdlQnVmZmVy
KQogICAgICAgICByZXR1cm47CiAgICAgbV9pbWFnZUJ1ZmZlci0+Y29udGV4dCgpLT5zZXRTaGFk
b3dzSWdub3JlVHJhbnNmb3Jtcyh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaAppbmRleCBiZjcxM2QzMTFkN2RhZjQ4MWRhYjk2OTk5ZDA0OWMwM2U0ZDBhNWNiLi4y
Mjk1ZTk3ZDNhMWVlMWQ2NTc3Nzg5ZjVkMThkZDk4YzU2MmY1NDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC03NCwxMSArNzQsMTcgQEAgcHVibGljOgogICAg
IC8vIEF0dHJpYnV0ZXMgYW5kIGZ1bmN0aW9ucyBleHBvc2VkIHRvIHNjcmlwdAogICAgIGludCB3
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgpOyB9CiAgICAgaW50IGhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIHNpemUoKS5oZWlnaHQoKTsgfQorI2lmIEVOQUJMRShPUEFRVUVfQ0FO
VkFTKQorICAgIGJvb2wgb3BhcXVlKCkgY29uc3QgeyByZXR1cm4gbV9vcGFxdWU7IH0KKyNlbmRp
ZgogCiAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQog
CiAgICAgdm9pZCBzZXRXaWR0aChpbnQpOwogICAgIHZvaWQgc2V0SGVpZ2h0KGludCk7CisjaWYg
RU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgdm9pZCBzZXRPcGFxdWUoYm9vbCk7CisjZW5kaWYK
IAogICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAgIHsgCkBAIC0x
NjUsNiArMTcxLDkgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PENhbnZhc09ic2VydmVyKj4gbV9v
YnNlcnZlcnM7CiAKICAgICBJbnRTaXplIG1fc2l6ZTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZB
UykKKyAgICBib29sIG1fb3BhcXVlOworI2VuZGlmCiAKICAgICBPd25QdHI8Q2FudmFzUmVuZGVy
aW5nQ29udGV4dD4gbV9jb250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaWRsCmluZGV4IGZkYmRlZmNmZTVmMzBjNmEyMDczYjc5ZTE2NjhkNWMwMDhmOWJiMTgu
LjRkMDMxODZhOGJhOWRmM2I1ZWFjNjUyYjFiNGU5ZDc3NzUyMjNjM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw5IEBACiAKICAgICBh
dHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CisjaWYgZGVm
aW5lZChFTkFCTEVfT1BBUVVFX0NBTlZBUykKKyAgICBhdHRyaWJ1dGUgYm9vbGVhbiBvcGFxdWU7
CisjZW5kaWYKIAogICAgIFtDdXN0b21dIERPTVN0cmluZyB0b0RhdGFVUkwoaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBlKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
CmluZGV4IDFlNGU1ZDRkNDMzMWM5MmIxYWVhYzgyNTMxNDNhNjQzODVkMDM0MzEuLjk0Y2JjNjJl
MGE1YTBjZTJjZDAzNTI0N2RkZjc1YTNiNDkyY2Y2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtNzUsMTQgKzc1LDE5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgVW5zY2FsZWQKICAgICB9OwogCisgICAgZW51bSBPcGFj
aXR5TW9kZSB7CisgICAgICAgIE5vbk9wYXF1ZSwKKyAgICAgICAgT3BhcXVlLAorICAgIH07CisK
ICAgICBjbGFzcyBJbWFnZUJ1ZmZlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElt
YWdlQnVmZmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAg
ICAvLyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0g
ICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
ID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5h
Y2NlbGVyYXRlZCkKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+IGNyZWF0
ZShjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUgPSAxLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IE5vbk9w
YXF1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAg
ICAgICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZl
cihzaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nl
c3MpKTsKKyAgICAgICAgICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3
IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5n
TW9kZSwgb3BhY2l0eU1vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAgIGlmICghc3VjY2VzcykK
ICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybiBidWYu
cmVsZWFzZSgpOwpAQCAtMTU1LDcgKzE2MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1Y2Nlc3MgaW50byB0aGUg
Z2l2ZW4gb3V0LXZhcmlhYmxlCiAgICAgICAgIC8vIHNvIHRoYXQgY3JlYXRlKCkga25vd3Mgd2hl
biBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAgIEltYWdlQnVmZmVyKGNvbnN0IElu
dFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUs
IGJvb2wmIHN1Y2Nlc3MpOworICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBPcGFjaXR5TW9k
ZSwgYm9vbCYgc3VjY2Vzcyk7CiAjaWYgVVNFKFNLSUEpCiAgICAgICAgIEltYWdlQnVmZmVyKGNv
bnN0IEludFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dCosIGJvb2wgaGFzQWxwaGEsIGJvb2wmIHN1Y2Nlc3MpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1
ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDllYmVkOWQ3MDMyNjI2Yzk3MTc5MGI2YzQyMWM3YTEw
ZGMzMmY3MmMuLmEwNDcyZGM5OWM3NzhmNWI4MGQ2MmNhMTY4NmNmM2I4MDU5YzQ4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVy
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0lt
YWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC01NCw3ICs1NCw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1h
Z2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQogewogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VC
dWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBD
b2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAq
LywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3Mp
CiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2Fs
U2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCBlNTczNzMyMzE2ZGZjMGZlMzliZTY0ZGFhNDE3ZDgw
NWNhYzA3ZDQ3Li45ZTg0MTEzYTIyNzgyMjc4YTE3ZGQyODMxMzA4MjM1NDM2ZTc2YjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckNHLmNwcApAQCAtMTA3LDYgKzEwNyw3IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VJbWFnZURhdGEo
dm9pZCosIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCkKIH0KIAogSW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JT
cGFjZSBpbWFnZUNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYg
c3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDog
bV9kYXRhKHNpemUpIC8vIE5PVEU6IFRoZSBpbnB1dCBoZXJlIGlzbid0IGltcG9ydGFudCBhcyBJ
bWFnZUJ1ZmZlckRhdGFDRydzIGNvbnN0cnVjdG9yIGp1c3QgaWdub3JlcyBpdC4KICAgICAsIG1f
bG9naWNhbFNpemUoc2l6ZSkKICAgICAsIG1fcmVzb2x1dGlvblNjYWxlKHJlc29sdXRpb25TY2Fs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKaW5kZXggZTQwNmMzMGJiOTllZjMy
OWE3ZWU0NDc3NzI0YTQxYWVjMmYyNTkzMC4uZGNlMzkwZTg0NzA2OGRmNjYyNDAzNGRkNDNiYmMx
NjJhNjVmMzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdXNpbmcgV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlcjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1DYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRo
cmVhZE1vZGUgdGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQorQ2FudmFzMkRMYXllckJy
aWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBj
b250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgVGhy
ZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgOiBtX2JhY2tCdWZm
ZXJUZXh0dXJlKHRleHR1cmVJZCkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9jYW52YXMo
MCkKQEAgLTYwLDcgKzYwLDcgQEAgQ2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJy
aWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LAogCiAgICAgbV9sYXll
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlRXh0ZXJuYWxUZXh0dXJlTGF5ZXIodGhpcykpOwogICAgIG1fbGF5ZXItPnNl
dFRleHR1cmVJZCh0ZXh0dXJlSWQpOwotICAgIG1fbGF5ZXItPnNldFJhdGVMaW1pdENvbnRleHQo
dGhyZWFkTW9kZSA9PSBTaW5nbGVUaHJlYWQpOworICAgIG1fbGF5ZXItPnNldE9wYXF1ZShvcGFj
aXR5TW9kZSA9PSBPcGFxdWUpOwogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6cmVnaXN0ZXJD
b250ZW50c0xheWVyKG1fbGF5ZXItPmxheWVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmgKaW5kZXggYjM4NjMwNGMzMzdmMzAzYTY3NDVlNmE5MWQ5NGM2ZTk1Y2U1MjFiYS4u
ZWE1MmEzODI3ZDRiYWY5OTAxMWEwZTkzOTE4YjE2YTZmMWYzZmE1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
czJETGF5ZXJCcmlkZ2UuaApAQCAtNDQsMTQgKzQ0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIENhbnZhczJETGF5ZXJCcmlkZ2UgOiBwdWJsaWMgV2ViS2l0OjpXZWJFeHRlcm5hbFRl
eHR1cmVMYXllckNsaWVudCwgcHVibGljIFNrRGVmZXJyZWRDYW52YXM6Ok5vdGlmaWNhdGlvbkNs
aWVudCwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPENhbnZhczJETGF5ZXJCcmlkZ2U+IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDYW52YXMyRExheWVyQnJpZGdlKTsKIHB1YmxpYzoK
KyAgICBlbnVtIE9wYWNpdHlNb2RlIHsKKyAgICAgICAgT3BhcXVlLAorICAgICAgICBOb25PcGFx
dWUKKyAgICB9OwogICAgIGVudW0gVGhyZWFkTW9kZSB7CiAgICAgICAgIFNpbmdsZVRocmVhZCwK
ICAgICAgICAgVGhyZWFkZWQKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFz
MkRMYXllckJyaWRnZT4gY3JlYXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRl
eHQsIGNvbnN0IEludFNpemUmIHNpemUsIFRocmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0
ZXh0dXJlSWQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gY3Jl
YXRlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUm
IHNpemUsIE9wYWNpdHlNb2RlIG9wYWNpdHlNb2RlLCBUaHJlYWRNb2RlIHRocmVhZGluZywgdW5z
aWduZWQgdGV4dHVyZUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52
YXMyRExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIHRocmVhZGluZywgdGV4dHVyZUlkKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2FudmFzMkRMYXllckJyaWRnZShjb250ZXh0LCBz
aXplLCBvcGFjaXR5TW9kZSwgdGhyZWFkaW5nLCB0ZXh0dXJlSWQpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIH5DYW52YXMyRExheWVyQnJpZGdlKCk7CkBAIC04MCw3ICs4NCw3IEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBiYWNrQnVmZmVyVGV4dHVyZSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ2Fu
dmFzMkRMYXllckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50
U2l6ZSYsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1cmVJZCk7CisgICAgQ2FudmFzMkRMYXll
ckJyaWRnZShQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgY29uc3QgSW50U2l6ZSYsIE9w
YWNpdHlNb2RlLCBUaHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0dXJlSWQpOwogCiAgICAgdW5zaWdu
ZWQgbV9iYWNrQnVmZmVyVGV4dHVyZTsKICAgICBJbnRTaXplIG1fc2l6ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5k
ZXggMWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5Ny4uMTllOGQ1YTYyMGFj
N2RkYjgxZDZiY2U3Y2IzOTFmYjRiNTljMmJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTk0LDcgKzk0LDcg
QEAgUUltYWdlIEltYWdlQnVmZmVyRGF0YTo6dG9RSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBp
bWFnZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUs
IGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwg
Ym9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBz
aXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJlbmRlcmluZ01v
ZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAg
LCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNw
cAppbmRleCA2MTMwOWZhZDQ3YzVlZWJmYjhlNGVhNDBmNGVlOTQ5YWI3MDA5ZjY0Li45MGUyNjcx
MjlhNjVlN2RlYzRjNjEyMGJlMTM5NWYzYzUwMTEwYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBA
IC03Miw3ICs3Miw3IEBAIEltYWdlQnVmZmVyRGF0YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IElu
dFNpemUmIHNpemUpCiB7CiB9CiAKLXN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRD
YW52YXMoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkYXRhKQorc3RhdGlj
IFNrQ2FudmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRTaXplJiBzaXplLCBJ
bWFnZUJ1ZmZlckRhdGEqIGRhdGEsIE9wYWNpdHlNb2RlIG9wYWNpdHlNb2RlKQogewogICAgIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNEID0gU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmdldCgpOwogICAgIGlmICghY29udGV4dDNEKQpAQCAtOTQsNyArOTQsOCBAQCBzdGF0aWMg
U2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKGNvbnN0IEludFNpemUmIHNpemUsIElt
YWdlQnVmZmVyRGF0YSogZAogICAgIFNrQXV0b1RVbnJlZjxTa0RldmljZT4gZGV2aWNlKG5ldyBT
a0dwdURldmljZShnciwgdGV4dHVyZS5nZXQoKSkpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBDYW52YXMyRExheWVyQnJpZGdlOjpUaHJlYWRNb2RlIHRocmVhZE1vZGUg
PSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmlzVGhyZWFkZWRDb21wb3NpdGluZ0VuYWJs
ZWQoKSA/IENhbnZhczJETGF5ZXJCcmlkZ2U6OlRocmVhZGVkIDogQ2FudmFzMkRMYXllckJyaWRn
ZTo6U2luZ2xlVGhyZWFkOwotICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBDYW52YXMyRExheWVy
QnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgdGV4
dHVyZS5nZXQoKS0+Z2V0VGV4dHVyZUhhbmRsZSgpKTsKKyAgICBDYW52YXMyRExheWVyQnJpZGdl
OjpPcGFjaXR5TW9kZSBicmlkZ2VPcGFjaXR5TW9kZSA9IG9wYWNpdHlNb2RlID09IE9wYXF1ZSA/
IENhbnZhczJETGF5ZXJCcmlkZ2U6Ok9wYXF1ZSA6IENhbnZhczJETGF5ZXJCcmlkZ2U6Ok5vbk9w
YXF1ZTsKKyAgICBkYXRhLT5tX2xheWVyQnJpZGdlID0gQ2FudmFzMkRMYXllckJyaWRnZTo6Y3Jl
YXRlKGNvbnRleHQzRC5yZWxlYXNlKCksIHNpemUsIGJyaWRnZU9wYWNpdHlNb2RlLCB0aHJlYWRN
b2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwogICAgIGNhbnZhcyA9IGRh
dGEtPm1fbGF5ZXJCcmlkZ2UtPnNrQ2FudmFzKGRldmljZS5nZXQoKSk7CiAjZWxzZQogICAgIGNh
bnZhcyA9IG5ldyBTa0NhbnZhcyhkZXZpY2UuZ2V0KCkpOwpAQCAtMTUxLDcgKzE1Miw3IEBAIElt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgc3VjY2VzcyA9IHRydWU7CiB9CiAKLUltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2Vz
cykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
T3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6
ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpAQCAtMTYw
LDcgKzE2MSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXpl
LCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgT3duUHRyPFNrQ2FudmFz
PiBjYW52YXM7CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRlZCkKLSAgICAg
ICAgY2FudmFzID0gYWRvcHRQdHIoY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMoc2l6ZSwgJm1fZGF0
YSkpOworICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhz
aXplLCAmbV9kYXRhLCBvcGFjaXR5TW9kZSkpOwogICAgIGVsc2UgaWYgKHJlbmRlcmluZ01vZGUg
PT0gVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyKQogICAgICAgICBjYW52YXMgPSBhZG9w
dFB0cihjcmVhdGVOb25QbGF0Zm9ybUNhbnZhcyhzaXplKSk7CiAKQEAgLTE3NSwxMyArMTc2LDE2
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsCiAgICAgbV9kYXRhLm1fY2FudmFzID0gY2FudmFz
LnJlbGVhc2UoKTsKICAgICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKG1fZGF0
YS5tX2NhbnZhcy5nZXQoKSk7CiAgICAgbV9jb250ZXh0ID0gYWRvcHRQdHIobmV3IEdyYXBoaWNz
Q29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1Db250ZXh0KSk7Ci0gICAgbV9jb250ZXh0LT5zZXRT
aG91bGRTbW9vdGhGb250cyhmYWxzZSk7CisgICAgbV9jb250ZXh0LT5zZXRTaG91bGRTbW9vdGhG
b250cyhvcGFjaXR5TW9kZSA9PSBPcGFxdWUpOwogICAgIG1fY29udGV4dC0+c2NhbGUoRmxvYXRT
aXplKG1fcmVzb2x1dGlvblNjYWxlLCBtX3Jlc29sdXRpb25TY2FsZSkpOwogCi0gICAgLy8gTWFr
ZSB0aGUgYmFja2dyb3VuZCB0cmFuc3BhcmVudC4gSXQgd291bGQgYmUgbmljZSBpZiB0aGlzIHdh
c24ndAorICAgIC8vIENsZWFyIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50IG9yIG9wYXF1ZSwg
YXMgcmVxdWlyZWQuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhpcyB3YXNuJ3QKICAgICAvLyByZXF1
aXJlZCwgYnV0IHRoZSBjYW52YXMgaXMgY3VycmVudGx5IGZpbGxlZCB3aXRoIHRoZSBtYWdpYyB0
cmFuc3BhcmVuY3kKICAgICAvLyBjb2xvci4gQ2FuIHdlIGhhdmUgYW5vdGhlciB3YXkgdG8gbWFu
YWdlIHRoaXM/Ci0gICAgbV9kYXRhLm1fY2FudmFzLT5kcmF3QVJHQigwLCAwLCAwLCAwLCBTa1hm
ZXJtb2RlOjprQ2xlYXJfTW9kZSk7CisgICAgaWYgKG9wYWNpdHlNb2RlID09IE9wYXF1ZSkKKyAg
ICAgICAgbV9kYXRhLm1fY2FudmFzLT5kcmF3QVJHQigyNTUsIDAsIDAsIDAsIFNrWGZlcm1vZGU6
OmtTcmNfTW9kZSk7CisgICAgZWxzZSAKKyAgICAgICAgbV9kYXRhLm1fY2FudmFzLT5kcmF3QVJH
QigwLCAwLCAwLCAwLCBTa1hmZXJtb2RlOjprQ2xlYXJfTW9kZSk7CiAKICAgICBzdWNjZXNzID0g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAKaW5kZXggZmQ0MWUxMjRiZWI3MzFjZDdiMTJi
MDdiNzcyOTVjMmM3NzE2ZTFmMi4uNzMyZTc0OTZhODAzMTRhNDAwMDhhYTVlYmQ0MjcwNmY0Mjky
Mjg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
SW1hZ2VCdWZmZXJXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgSW1hZ2VCdWZm
ZXJEYXRhOjpJbWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBtX2JpdG1h
cC0+c2V0SGFzQWxwaGEodHJ1ZSk7CiB9CiAKLUltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3Mp
CiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2Fs
U2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d3gvSW1hZ2VCdWZmZXJXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
eC9JbWFnZUJ1ZmZlcld4LmNwcAppbmRleCA5ZjAxZWEyMzAwMjA4YmY2ZjE2MGE1MGQyYWVkOGY3
ZTIwZDU4ZDhjLi43Nzk0MzgwM2JjZTQyMjllYTU2ZjQ4NjYxNmFlOTFlOTZhYjU3OGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZl
cld4LmNwcApAQCAtOTQsNyArOTQsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6On5JbWFnZUJ1ZmZlckRh
dGEoKQogICAgIGRlbGV0ZSBtX21lbURDOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGNv
bG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpCitJbWFnZUJ1ZmZlcjo6SW1h
Z2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xv
clNwYWNlIGNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNj
ZXNzKQogICAgIDogbV9kYXRhKHNpemUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9n
aWNhbFNpemUoc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCBlMmI4
M2M0ZjdhOTNlYmIyMmViNmQ0YTc2MWQ5MDFhNDcwOTUwZGM2Li4yZDBiM2UzOTc2ZWZmNzNhMjk4
M2YwYjM5Yjk1NjJkNzkwMDU0ZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
CkBAIC05OCw2ICs5OCw3IEBACiAgICAgICAnRU5BQkxFX01JQ1JPREFUQT0wJywKICAgICAgICdF
TkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFPTEnLAogICAgICAgJ0VOQUJMRV9OT1NOSUZGPTEnLAor
ICAgICAgJ0VOQUJMRV9PUEFRVUVfQ0FOVkFTPTEnLAogICAgICAgJ0VOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJPTEnLAogICAgICAgJ0VOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORT0xJywKICAg
ICAgICdFTkFCTEVfUE9JTlRFUl9MT0NLPTEnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUyM2FkZjMzNzRkNjM4YTFhYjg3
MjhiYzdmOTg4Njg1ZWQ2MWIyNGIuLjQwMmU4YjZjYjlhMmFkMjA0YzU0ZWE1ODM0M2E0ZTAwYWE1
Y2MyYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0xOCAgU3RlcGhlbiBXaGl0ZSAg
PHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgIm9wYXF1ZSIg
YXR0cmlidXRlIGZvciA8Y2FudmFzPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTEyNjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvb3BhcXVlLmpzOiBBZGRlZC4KKwogMjAxMy0wMy0yMiAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFpbGluZyB0ZXN0IGV4cGVjdGF0aW9u
cyBmb3IgdHdvIG1vcmUgcG9zaXRpb246IHN0aWNreSB0ZXN0cyB0byBtYWtlIE1hYyBFV1MgaGFw
cHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNjdiMDdkZTE1YjYzMjRmZWY3ZDFiZDZkNDgwNWY2OGU5MWEyYjliCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDI5IEBACitTZXJpZXMgb2YgdGVzdHMgZm9yIGNhbnZhcy5vcGFxdWUKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2FudmFzLm9wYXF1ZSBpcyBmYWxzZQorUEFT
UyBpbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBpbWdEYXRhLmRhdGFbMV0gaXMgMAorUEFTUyBp
bWdEYXRhLmRhdGFbMl0gaXMgMAorUEFTUyBpbWdEYXRhLmRhdGFbM10gaXMgMAorUEFTUyBvcGFx
dWVDYW52YXMub3BhcXVlIGlzIHRydWUKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzBdIGlzIDAK
K1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzFdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRh
WzJdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzNdIGlzIDI1NQorUEFTUyBvcGFxdWVD
YW52YXMub3BhcXVlIGlzIGZhbHNlCitQQVNTIGZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzBd
IGlzIDAKK1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMV0gaXMgMAorUEFTUyBmb3Jt
ZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNTIGZvcm1lcmx5T3BhcXVlSW1nRGF0
YS5kYXRhWzNdIGlzIDAKK1BBU1MgY2FudmFzLm9wYXF1ZSBpcyB0cnVlCitQQVNTIG9wYXF1ZUlt
Z0RhdGEuZGF0YVswXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNT
IG9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVszXSBp
cyAyNTUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGFlOTg2Y2JmYmRl
NzA2NjhlY2EwNTUzYTc4YzJmNGE4YzYxMTIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIg
d2lkdGg9IjgiIGhlaWdodD0iOCI+PC9jYW52YXM+Cis8Y2FudmFzIGlkPSJvcGFxdWVDYW52YXMi
IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIG9wYXF1ZT48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJvcGFx
dWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvb3BhcXVlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2YTRhNTg4MWI4NTQ4OGVlZWNkOGYxNDYwMTNjNTI2YTk4NmU5MDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuanMKQEAg
LTAsMCArMSwzMSBAQAorZGVzY3JpcHRpb24oIlNlcmllcyBvZiB0ZXN0cyBmb3IgY2FudmFzLm9w
YXF1ZSIpOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsK
K3ZhciBvcGFxdWVDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BhcXVlQ2FudmFz
Iik7Cit2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Cit2YXIgb3BhcXVlQ3R4ID0g
b3BhcXVlQ2FudmFzLmdldENvbnRleHQoIjJkIik7Cit2YXIgaW1nRGF0YSA9IGN0eC5nZXRJbWFn
ZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgiY2FudmFzLm9wYXF1ZSIsICJmYWxzZSIpOwor
c2hvdWxkQmUoImltZ0RhdGEuZGF0YVswXSIsICIwIik7CitzaG91bGRCZSgiaW1nRGF0YS5kYXRh
WzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUo
ImltZ0RhdGEuZGF0YVszXSIsICIwIik7Cit2YXIgb3BhcXVlSW1nRGF0YSA9IG9wYXF1ZUN0eC5n
ZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgib3BhcXVlQ2FudmFzLm9wYXF1ZSIs
ICJ0cnVlIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbMV0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0Rh
dGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzNdIiwgIjI1
NSIpOworb3BhcXVlQ2FudmFzLnJlbW92ZUF0dHJpYnV0ZSgnb3BhcXVlJyk7Cit2YXIgZm9ybWVy
bHlPcGFxdWVJbWdEYXRhID0gb3BhcXVlQ3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKTsKK3No
b3VsZEJlKCJvcGFxdWVDYW52YXMub3BhcXVlIiwgImZhbHNlIik7CitzaG91bGRCZSgiZm9ybWVy
bHlPcGFxdWVJbWdEYXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxkQmUoImZvcm1lcmx5T3BhcXVl
SW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJmb3JtZXJseU9wYXF1ZUltZ0RhdGEu
ZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbM10i
LCAiMCIpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnb3BhcXVlJywgJ3RydWUnKTsKK29wYXF1ZUlt
Z0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpOworc2hvdWxkQmUoImNhbnZhcy5v
cGFxdWUiLCAidHJ1ZSIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVswXSIsICIwIik7
CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJvcGFx
dWVJbWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVsz
XSIsICIyNTUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYTAyODUwNDFkNTkyMjAwM2VmMmUwYjhkODlhNmE3NjdjZWJkMWVlYy4uM2NiYWUyMmEyMzdh
MzAzMzhiZjQxYjBlNzJkMDUxYzkyOTRhODllYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NDEsNiArMTQ0MSw4IEBAIHdlYmtpdC5vcmcvYi8xMTE2
MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtp
dC5vcmcvYi8xMTE2MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1maXQuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCiB3ZWJraXQub3JnL2IvMTExNjA2IGZhc3QvcmVwYWludC9ib3JkZXItZml0LWxpbmVzLmh0
bWwgWyBGYWlsdXJlIFBhc3MgXQogCisjIEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQu
b3JnL2IvMTEyNjI0IGZhc3QvY2FudmFzL29wYXF1ZS5odG1sIFsgU2tpcCBdCiAKICMgRmxha2V5
CiB3ZWJraXQub3JnL2IvMTEyNTMzIG1lZGlhL2F1dG8tcGxheS1pbi1zYW5kYm94LXdpdGgtYWxs
b3ctc2NyaXB0cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194684</attachid>
            <date>2013-03-22 20:22:21 -0700</date>
            <delta_ts>2013-03-22 21:24:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112624-20130322231807.patch</filename>
            <type>text/plain</type>
            <size>28340</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjOTk4NzQ3NjljZGEyMmRlYWVlZmUx
YmExNmIyYjk1NDE1NTZmZDIuLjU3NTBjYWE0M2ExZjU1MjFkODAyYTdmOTAxMWRlNWQ5NmIyOWM4
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ICJvcGFxdWUiIGF0dHJp
YnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTMtMDMtMjIgIEJlbmphbWlu
IFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDIgYmFkIGJy
YW5jaGVzIGZyb20gU3RyaW5nSGFzaDo6ZXF1YWwoKSBhbmQgQ2FzZUZvbGRpbmdIYXNoOjplcXVh
bCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDAyNjEyNzIzMzM0ZGRjY2QxMzgzYjliZDg4MmRmNDUwOTdiODU2
NS4uMGNiZTNhNjFhYjcwYzc3YzViYTY4MDAwMmVmY2M3MjI5ZTBjOTdjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ3IEBACisyMDEzLTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIGltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9y
IDxjYW52YXM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRPcGFxdWUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6Om9wYXF1ZSk6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJp
ZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUp
OgorICAgICAgICAoQ2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKToKKwogMjAxMy0wMy0yMSAgS2lyYW4gTXVwcGFsYSAgPGNtdXBw
YWxhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcnVudGltZSBzZXR0aW5nIGZvciBoaWRkZW4g
cGFnZSBET00gdGltZXIgdGhyb3R0bGluZyBhbmQgQ1NTIGFuaW1hdGlvbiBzdXNwZW5zaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI5ZmQyODczODRhOTU0ZDM3ZWE1ODM2NDhmMzYy
NTA1NGFlZTUxMzkuLjk5YzlhZGIxMDI5NzBjOGZjOTA1Njk3OWNmZmMxNmU2MDM2YjQxYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0
ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50ICJvcGFxdWUiIGF0dHJpYnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0wMy0y
MiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBjbGllbnQgY2FsbGJhY2tzIHRvIG5vdGlmeSBvZiBjaGFuZ2VzIG9mIGFzc29jaWF0ZWQgZnJv
bSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBi
L1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggZWI2NTczNWMyNzI3NTIyNTUw
OTM4YTJiMGU1OWM5MTUxZTNlMjA4YS4uZjM3MTM2YzRlMWRhMDA3OWZhMGVkM2ZiYzBkZTQyNTlk
ZDU3NDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC02NjksNiArNjY5LDEwIEBACiAj
ZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAKICNlbmRpZgogCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX09QQVFVRV9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9PUEFRVUVfQ0FOVkFTIDAK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09QRU5DTCkKICNkZWZpbmUgRU5BQkxFX09Q
RU5DTCAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
aW5kZXggNmM2NzU3ZDE0YTc4ODJkMWY5ZTA5ZjNkOWNiNzA3MDU5MjNjMjdjZS4uZmVmMjU4ZjE1
MmVjODZiOTZkOTU1M2Q3ODMxOGViZDcyNTU2NmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2NSw2ICsyNjUsNyBAQCBvbndlYmtpdHNvdXJjZWNs
b3NlCiBvbndlYmtpdHNvdXJjZWVuZGVkCiBvbndlYmtpdHNvdXJjZW9wZW4KIG9ud2Via2l0dHJh
bnNpdGlvbmVuZAorb3BhcXVlCiBvcGVuCiBvcHRpbXVtCiBwYXR0ZXJuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGEzYzA0NjMzMTliMzU1Njc0M2ZmMzA0
YWU4ZGQ0MjNmZTRkODNlYWMuLjBmZDdhNjA1M2JkZWQ5ZDBkMDc1MTliYmM4ZjBhMDE2M2M3M2Ez
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04Myw2
ICs4Myw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhTa2lhRGltID0gMzI3NjcuMEY7IC8vIE1h
eGltdW0gd2lkdGgvaGVpZ2h0IGluIENTUyBwaXhlbHMuCiBIVE1MQ2FudmFzRWxlbWVudDo6SFRN
TENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3Np
emUoRGVmYXVsdFdpZHRoLCBEZWZhdWx0SGVpZ2h0KQorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFT
KQorICAgICwgbV9vcGFxdWUoZmFsc2UpCisjZW5kaWYKICAgICAsIG1fcmVuZGVyZXJJc0NhbnZh
cyhmYWxzZSkKICAgICAsIG1faWdub3JlUmVzZXQoZmFsc2UpCiAgICAgLCBtX2RldmljZVNjYWxl
RmFjdG9yKHRhcmdldERldmljZVNjYWxlRmFjdG9yKCkpCkBAIC0xMTYsNiArMTE5LDEwIEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5h
bWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQoKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBpZiAobmFtZSA9PSBvcGFxdWVBdHRyKQorICAgICAgICByZXNldCgpOworI2Vu
ZGlmCiAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApA
QCAtMTU3LDYgKzE2NCwxNiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aChpbnQg
dmFsdWUpCiAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUp
KTsKIH0KIAorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQordm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6c2V0T3BhcXVlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlKQorICAgICAgICBzZXRB
dHRyaWJ1dGUob3BhcXVlQXR0ciwgInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHJlbW92ZUF0
dHJpYnV0ZShvcGFxdWVBdHRyKTsKK30KKyNlbmRpZgorCiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzKiBhdHRycykKIHsKICAgICAvLyBBIENhbnZhcyBjYW4gZWl0aGVy
IGJlICIyRCIgb3IgIndlYmdsIiBidXQgbmV2ZXIgYm90aC4gSWYgeW91IHJlcXVlc3QgYSAyRCBj
YW52YXMgYW5kIHRoZSBleGlzdGluZwpAQCAtMjU2LDYgKzI3MywxMCBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpyZXNldCgpCiAgICAgaWYgKCFvayB8fCBoIDwgMCkKICAgICAgICAgaCA9IERl
ZmF1bHRIZWlnaHQ7CiAKKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9wYXF1
ZSA9IGZhc3RIYXNBdHRyaWJ1dGUob3BhcXVlQXR0cik7CisjZW5kaWYKKwogICAgIGlmIChtX2Nv
bnRleHRTdGF0ZVNhdmVyKSB7CiAgICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIGdyYXBo
aWNzIGNvbnRleHQgc3RhdGUuCiAgICAgICAgIG1fY29udGV4dFN0YXRlU2F2ZXItPnJlc3RvcmUo
KTsKQEAgLTI3MywxMyArMjk0LDIyIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkK
IAogICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBj
YW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9w
dGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYg
KG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2Rldmlj
ZVNjYWxlRmFjdG9yID09IG5ld0RldmljZVNjYWxlRmFjdG9yICYmIG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzMmQoKSkgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIGJvb2wgb3Bh
cXVlTWF0Y2hlcyA9IG1fb3BhcXVlID09IG9wYXF1ZTsKKyNlbHNlCisgICAgYm9vbCBvcGFxdWVN
YXRjaGVzID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVy
ICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2RldmljZVNjYWxlRmFjdG9yID09IG5ld0Rldmlj
ZVNjYWxlRmFjdG9yICYmIG9wYXF1ZU1hdGNoZXMgJiYgbV9jb250ZXh0ICYmIG1fY29udGV4dC0+
aXMyZCgpKSB7CiAgICAgICAgIGlmICghbV9kaWRDbGVhckltYWdlQnVmZmVyKQogICAgICAgICAg
ICAgY2xlYXJJbWFnZUJ1ZmZlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9k
ZXZpY2VTY2FsZUZhY3RvciA9IG5ld0RldmljZVNjYWxlRmFjdG9yOworI2lmIEVOQUJMRShPUEFR
VUVfQ0FOVkFTKQorICAgIG1fb3BhcXVlID0gb3BhcXVlOworI2VuZGlmCiAKICAgICBzZXRTdXJm
YWNlU2l6ZShuZXdTaXplKTsKIApAQCAtMzUyLDEwICszODIsMTUgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0
JiByLCBib28KICAgICBpZiAoaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCkpIHsKICAgICAgICAgSW1h
Z2VCdWZmZXIqIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1ZmZl
cikgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgICAgICAgICAgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBtX29wYXF1ZSA/IENvbXBvc2l0ZUNvcHkgOiBDb21w
b3NpdGVTb3VyY2VPdmVyOworI2Vsc2UKKyAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyNlbmRpZgogICAgICAgICAg
ICAgaWYgKG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25h
cHBlZEludFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBp
eGVsU25hcHBlZEludFJlY3QociksIGNvbXBvc2l0ZU9wZXJhdG9yLCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JT
cGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICAgICAgICAg
IGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJH
QiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZU5v
cm1hbCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNTQ5LDcg
KzU4NCwxMiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAjZWxzZQogICAgICAgICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgbV9pbWFnZUJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IG1fb3BhcXVlID8gT3BhcXVlIDog
Tm9uT3BhcXVlOworI2Vsc2UKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IE5vbk9wYXF1
ZTsKKyNlbmRpZgorICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9k
ZSwgb3BhY2l0eU1vZGUpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJu
OwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggYmY3
MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYi4uMjI5NWU5N2QzYTFlZTFkNjU3
Nzc4OWY1ZDE4ZGQ5OGM1NjJmNTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaApAQCAtNzQsMTEgKzc0LDE3IEBAIHB1YmxpYzoKICAgICAvLyBBdHRyaWJ1dGVzIGFu
ZCBmdW5jdGlvbnMgZXhwb3NlZCB0byBzY3JpcHQKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBzaXplKCkud2lkdGgoKTsgfQogICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBz
aXplKCkuaGVpZ2h0KCk7IH0KKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9w
YXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BhcXVlOyB9CisjZW5kaWYKIAogICAgIGNvbnN0IElu
dFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgIHZvaWQgc2V0V2lk
dGgoaW50KTsKICAgICB2b2lkIHNldEhlaWdodChpbnQpOworI2lmIEVOQUJMRShPUEFRVUVfQ0FO
VkFTKQorICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAgICB7IApAQCAtMTY1LDYgKzE3MSw5IEBAIHBy
aXZhdGU6CiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogCiAgICAg
SW50U2l6ZSBtX3NpemU7CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgYm9vbCBtX29w
YXF1ZTsKKyNlbmRpZgogCiAgICAgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29u
dGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAppbmRleCBm
ZGJkZWZjZmU1ZjMwYzZhMjA3M2I3OWUxNjY4ZDVjMDA4ZjliYjE4Li40ZDAzMTg2YThiYTlkZjNi
NWVhYzY1MmIxYjRlOWQ3Nzc1MjIzYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbApAQCAtMzAsNiArMzAsOSBAQAogCiAgICAgYXR0cmlidXRlIGxvbmcgd2lk
dGg7CiAgICAgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OworI2lmIGRlZmluZWQoRU5BQkxFX09QQVFV
RV9DQU5WQVMpCisgICAgYXR0cmlidXRlIGJvb2xlYW4gb3BhcXVlOworI2VuZGlmCiAKICAgICBb
Q3VzdG9tXSBET01TdHJpbmcgdG9EYXRhVVJMKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdHlwZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAxZTRlNWQ0ZDQz
MzFjOTJiMWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxLi45NGNiYzYyZTBhNWEwY2UyY2QwMzUyNDdk
ZGY3NWEzYjQ5MmNmNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKQEAgLTc1LDE0ICs3NSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFVuc2NhbGVkCiAgICAgfTsKIAorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAg
ICBOb25PcGFxdWUsCisgICAgICAgIE9wYXF1ZSwKKyAgICB9OworCiAgICAgY2xhc3MgSW1hZ2VC
dWZmZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4g
YSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZp
Y2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCisgICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0g
Q29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2Nl
bGVyYXRlZCwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUgPSBOb25PcGFxdWUpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPElt
YWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAg
ICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIG9wYWNpdHlNb2Rl
LCBzdWNjZXNzKSk7CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gYnVmLnJlbGVhc2UoKTsKQEAgLTE1
NSw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gVGhpcyBjb25z
dHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJs
ZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVy
biBmYWlsdXJlLgotICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsK
KyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3Mp
OwogI2lmIFVTRShTS0lBKQogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBi
b29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cAppbmRleCA5ZWJlZDlkNzAzMjYyNmM5NzE3OTBiNmM0MjFjN2ExMGRjMzJmNzJjLi5hMDQ3MmRj
OTljNzc4ZjViODBkNjJjYTE2ODZjZjNiODA1OWM0OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cApAQCAtNTQsNyArNTQsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25z
dCBJbnRTaXplJikKIHsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJl
bmRlcmluZ01vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNp
emUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHAKaW5kZXggZTU3MzczMjMxNmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0Ny4uYjVjYTY4
NGQyNmY2YWQ2YmNjODgyM2U5NjNiOTA2OWNkZDk1MjkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3
ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lk
KiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwog
fQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBp
bWFnZUNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8gTk9URTogVGhlIGlucHV0IGhl
cmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNHJ3MgY29uc3RydWN0b3IganVz
dCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0
aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNw
cAppbmRleCBlNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwLi5kY2UzOTBl
ODQ3MDY4ZGY2NjI0MDM0ZGQ0M2JiYzE2MmE2NWYzMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVV
cGRhdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNh
bnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0
dXJlSWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIE9wYWNp
dHlNb2RlIG9wYWNpdHlNb2RlLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCkKICAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQpAQCAtNjAsNyArNjAsNyBAQCBDYW52YXMyRExheWVy
QnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IGNvbnRleHQsCiAKICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0
aGlzKSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXll
ci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCk7CisgICAg
bV9sYXllci0+c2V0T3BhcXVlKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAgR3JhcGhpY3NM
YXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAppbmRleCBiMzg2MzA0YzMzN2YzMDNhNjc0
NWU2YTkxZDk0YzZlOTVjZTUyMWJhLi5lYTUyYTM4MjdkNGJhZjk5MDExYTBlOTM5MThiMTZhNmYx
ZjNmYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCkBAIC00NCwxNCArNDQsMTgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1Ymxp
YyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyQ2xpZW50LCBwdWJsaWMgU2tEZWZlcnJl
ZENhbnZhczo6Tm90aWZpY2F0aW9uQ2xpZW50LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8
Q2FudmFzMkRMYXllckJyaWRnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhbnZhczJE
TGF5ZXJCcmlkZ2UpOwogcHVibGljOgorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAgICBP
cGFxdWUsCisgICAgICAgIE5vbk9wYXF1ZQorICAgIH07CiAgICAgZW51bSBUaHJlYWRNb2RlIHsK
ICAgICAgICAgU2luZ2xlVGhyZWFkLAogICAgICAgICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9k
ZSB0aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxD
YW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUsIFRo
cmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhy
ZWFkaW5nLCB0ZXh0dXJlSWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52YXMy
RExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIG9wYWNpdHlNb2RlLCB0aHJlYWRpbmcsIHRleHR1
cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAg
LTgwLDcgKzg0LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZmZXJUZXh0dXJlKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVy
ZUlkKTsKKyAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0
M0Q+LCBjb25zdCBJbnRTaXplJiwgT3BhY2l0eU1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRl
eHR1cmVJZCk7CiAKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNp
emUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCAxYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdjZjUx
YmM3Yzc4NDk3Li4xOWU4ZDVhNjIwYWM3ZGRiODFkNmJjZTdjYjM5MWZiNGI1OWMyYmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZl
clF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VCdWZmZXJEYXRhOjp0b1FJbWFn
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywg
Q29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAg
ICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6
ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDYxMzA5ZmFkNDdjNWVlYmZiOGU0ZWE0MGY0
ZWU5NDlhYjcwMDlmNjQuLjkwZTI2NzEyOWE2NWU3ZGVjNGM2MTIwYmUxMzk1ZjNjNTAxMTBiMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJ
bWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKIH0KIAotc3RhdGljIFNrQ2Fu
dmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRTaXplJiBzaXplLCBJbWFnZUJ1
ZmZlckRhdGEqIGRhdGEpCitzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZGF0YSwgT3BhY2l0eU1vZGUg
b3BhY2l0eU1vZGUpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0M0Qg
PSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAgICAgaWYgKCFjb250ZXh0M0QpCkBA
IC05NCw3ICs5NCw4IEBAIHN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkCiAgICAgU2tBdXRvVFVucmVm
PFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdyLCB0ZXh0dXJlLmdldCgpKSk7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6
OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aXNU
aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFk
ZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQ7Ci0gICAgZGF0YS0+bV9sYXll
ckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgp
LCBzaXplLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwor
ICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6Ok9wYWNpdHlNb2RlIGJyaWRnZU9wYWNpdHlNb2RlID0g
b3BhY2l0eU1vZGUgPT0gT3BhcXVlID8gQ2FudmFzMkRMYXllckJyaWRnZTo6T3BhcXVlIDogQ2Fu
dmFzMkRMYXllckJyaWRnZTo6Tm9uT3BhcXVlOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBD
YW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgYnJp
ZGdlT3BhY2l0eU1vZGUsIHRocmVhZE1vZGUsIHRleHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5k
bGUoKSk7CiAgICAgY2FudmFzID0gZGF0YS0+bV9sYXllckJyaWRnZS0+c2tDYW52YXMoZGV2aWNl
LmdldCgpKTsKICNlbHNlCiAgICAgY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZS5nZXQoKSk7
CkBAIC0xNTEsNyArMTUyLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBzdWNjZXNz
ID0gdHJ1ZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgYm9vbCYgc3Vj
Y2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xv
Z2ljYWxTaXplKHNpemUpCkBAIC0xNjAsNyArMTYxLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwKICAgICBPd25QdHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2Rl
ID09IEFjY2VsZXJhdGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVy
YXRlZENhbnZhcyhzaXplLCAmbV9kYXRhKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNy
ZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEsIG9wYWNpdHlNb2RlKSk7CiAgICAg
ZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PSBVbmFjY2VsZXJhdGVkTm9uUGxhdGZvcm1CdWZmZXIp
CiAgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZU5vblBsYXRmb3JtQ2FudmFzKHNpemUp
KTsKIApAQCAtMTc1LDEzICsxNzYsMTYgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBt
X2RhdGEubV9jYW52YXMgPSBjYW52YXMucmVsZWFzZSgpOwogICAgIG1fZGF0YS5tX3BsYXRmb3Jt
Q29udGV4dC5zZXRDYW52YXMobV9kYXRhLm1fY2FudmFzLmdldCgpKTsKICAgICBtX2NvbnRleHQg
PSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQp
KTsKLSAgICBtX2NvbnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKGZhbHNlKTsKKyAgICBtX2Nv
bnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAg
bV9jb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1dGlv
blNjYWxlKSk7CiAKLSAgICAvLyBNYWtlIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50LiBJdCB3
b3VsZCBiZSBuaWNlIGlmIHRoaXMgd2Fzbid0CisgICAgLy8gQ2xlYXIgdGhlIGJhY2tncm91bmQg
dHJhbnNwYXJlbnQgb3Igb3BhcXVlLCBhcyByZXF1aXJlZC4gSXQgd291bGQgYmUgbmljZSBpZiB0
aGlzIHdhc24ndAogICAgIC8vIHJlcXVpcmVkLCBidXQgdGhlIGNhbnZhcyBpcyBjdXJyZW50bHkg
ZmlsbGVkIHdpdGggdGhlIG1hZ2ljIHRyYW5zcGFyZW5jeQogICAgIC8vIGNvbG9yLiBDYW4gd2Ug
aGF2ZSBhbm90aGVyIHdheSB0byBtYW5hZ2UgdGhpcz8KLSAgICBtX2RhdGEubV9jYW52YXMtPmRy
YXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9Nb2RlKTsKKyAgICBpZiAob3Bh
Y2l0eU1vZGUgPT0gT3BhcXVlKQorICAgICAgICBtX2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDI1
NSwgMCwgMCwgMCwgU2tYZmVybW9kZTo6a1NyY19Nb2RlKTsKKyAgICBlbHNlIAorICAgICAgICBt
X2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9N
b2RlKTsKIAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRl
eCBmZDQxZTEyNGJlYjczMWNkN2IxMmIwN2I3NzI5NWMyYzc3MTZlMWYyLi43MzJlNzQ5NmE4MDMx
NGE0MDAwOGFhNWViZDQyNzA2ZjQyOTIyODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAt
NzEsNyArNzEsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRT
aXplJiBzaXplKQogICAgIG1fYml0bWFwLT5zZXRIYXNBbHBoYSh0cnVlKTsKIH0KIAotSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBPcGFj
aXR5TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDlmMDFlYTIz
MDAyMDhiZjZmMTYwYTUwZDJhZWQ4ZjdlMjBkNThkOGMuLjc3OTQzODAzYmNlNDIyOWVhNTZmNDg2
NjE2YWU5MWU5NmFiNTc4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwg
T3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1f
c2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCmluZGV4IGUyYjgzYzRmN2E5M2ViYjIyZWI2ZDRhNzYxZDkwMWE0NzA5NTBk
YzYuLjJkMGIzZTM5NzZlZmY3M2EyOTgzZjBiMzliOTU2MmQ3OTAwNTRmZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTk4LDYgKzk4LDcgQEAKICAgICAgICdFTkFCTEVf
TUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU9MScsCiAgICAg
ICAnRU5BQkxFX05PU05JRkY9MScsCisgICAgICAnRU5BQkxFX09QQVFVRV9DQU5WQVM9MScsCiAg
ICAgICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAgICAnRU5BQkxFX1BFUkZP
Uk1BTkNFX1RJTUVMSU5FPTEnLAogICAgICAgJ0VOQUJMRV9QT0lOVEVSX0xPQ0s9MScsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjUyN2VjMWJlYzczNTc2Njg1MWU5MTlhNTM5YjY3NmNkYTRhNTRiOC4uZjQxNGEyMTQ0OWMw
MTI0ZWQ1NGRkNDI3OGFhZDFiYmY3OGU3MzNjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEz
LTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9yIDxjYW52YXM+CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI2MjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL29wYXF1
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL29wYXF1ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUuanM6IEFkZGVkLgorCiAyMDEz
LTAzLTIyICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBb
Y2hyb21pdW1dIE1hcmsgbW9yZSB0ZXN0cyBhcyBjcmFzaGluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL29wYXF1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2N2IwN2RlMTViNjMyNGZl
ZjdkMWJkNmQ0ODA1ZjY4ZTkxYTJiOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1NlcmllcyBv
ZiB0ZXN0cyBmb3IgY2FudmFzLm9wYXF1ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBjYW52YXMub3BhcXVlIGlzIGZhbHNlCitQQVNTIGltZ0RhdGEuZGF0YVswXSBpcyAw
CitQQVNTIGltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNTIGltZ0RhdGEuZGF0YVsyXSBpcyAwCitQ
QVNTIGltZ0RhdGEuZGF0YVszXSBpcyAwCitQQVNTIG9wYXF1ZUNhbnZhcy5vcGFxdWUgaXMgdHJ1
ZQorUEFTUyBvcGFxdWVJbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBvcGFxdWVJbWdEYXRhLmRh
dGFbMV0gaXMgMAorUEFTUyBvcGFxdWVJbWdEYXRhLmRhdGFbMl0gaXMgMAorUEFTUyBvcGFxdWVJ
bWdEYXRhLmRhdGFbM10gaXMgMjU1CitQQVNTIG9wYXF1ZUNhbnZhcy5vcGFxdWUgaXMgZmFsc2UK
K1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBmb3JtZXJseU9w
YXF1ZUltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNTIGZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRh
WzJdIGlzIDAKK1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbM10gaXMgMAorUEFTUyBj
YW52YXMub3BhcXVlIGlzIHRydWUKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzBdIGlzIDAKK1BB
U1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzFdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzJd
IGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzNdIGlzIDI1NQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL29w
YXF1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYWU5ODZjYmZiZGU3MDY2OGVjYTA1NTNhNzhjMmY0YThj
NjExMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUu
aHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iOCIgaGVpZ2h0PSI4Ij48
L2NhbnZhcz4KKzxjYW52YXMgaWQ9Im9wYXF1ZUNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCIg
b3BhcXVlPjwvY2FudmFzPgorPHNjcmlwdCBzcmM9Im9wYXF1ZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhNGE1
ODgxYjg1NDg4ZWVlY2Q4ZjE0NjAxM2M1MjZhOTg2ZTkwMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL29wYXF1ZS5qcwpAQCAtMCwwICsxLDMxIEBACitkZXNjcmlw
dGlvbigiU2VyaWVzIG9mIHRlc3RzIGZvciBjYW52YXMub3BhcXVlIik7Cit2YXIgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwordmFyIG9wYXF1ZUNhbnZhcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvcGFxdWVDYW52YXMiKTsKK3ZhciBjdHggPSBjYW52YXMu
Z2V0Q29udGV4dCgiMmQiKTsKK3ZhciBvcGFxdWVDdHggPSBvcGFxdWVDYW52YXMuZ2V0Q29udGV4
dCgiMmQiKTsKK3ZhciBpbWdEYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKTsKK3No
b3VsZEJlKCJjYW52YXMub3BhcXVlIiwgImZhbHNlIik7CitzaG91bGRCZSgiaW1nRGF0YS5kYXRh
WzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdEYXRhLmRhdGFbMV0iLCAiMCIpOworc2hvdWxkQmUo
ImltZ0RhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiaW1nRGF0YS5kYXRhWzNdIiwgIjAi
KTsKK3ZhciBvcGFxdWVJbWdEYXRhID0gb3BhcXVlQ3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAx
KTsKK3Nob3VsZEJlKCJvcGFxdWVDYW52YXMub3BhcXVlIiwgInRydWUiKTsKK3Nob3VsZEJlKCJv
cGFxdWVJbWdEYXRhLmRhdGFbMF0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0
YVsxXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzJdIiwgIjAiKTsKK3No
b3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbM10iLCAiMjU1Iik7CitvcGFxdWVDYW52YXMucmVt
b3ZlQXR0cmlidXRlKCdvcGFxdWUnKTsKK3ZhciBmb3JtZXJseU9wYXF1ZUltZ0RhdGEgPSBvcGFx
dWVDdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEpOworc2hvdWxkQmUoIm9wYXF1ZUNhbnZhcy5v
cGFxdWUiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsw
XSIsICIwIik7CitzaG91bGRCZSgiZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMV0iLCAiMCIp
Oworc2hvdWxkQmUoImZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzJdIiwgIjAiKTsKK3Nob3Vs
ZEJlKCJmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVszXSIsICIwIik7CitjYW52YXMuc2V0QXR0
cmlidXRlKCdvcGFxdWUnLCAndHJ1ZScpOworb3BhcXVlSW1nRGF0YSA9IGN0eC5nZXRJbWFnZURh
dGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgiY2FudmFzLm9wYXF1ZSIsICJ0cnVlIik7CitzaG91
bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdE
YXRhLmRhdGFbMV0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVsyXSIsICIw
Iik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzNdIiwgIjI1NSIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMDI4NTA0MWQ1OTIyMDAzZWYy
ZTBiOGQ4OWE2YTc2N2NlYmQxZWVjLi4zY2JhZTIyYTIzN2EzMDMzOGJmNDFiMGU3MmQwNTFjOTI5
NGE4OWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTQ0MSw2ICsxNDQxLDggQEAgd2Via2l0Lm9yZy9iLzExMTYwNiBmYXN0L2JvcmRlcnMvYm9yZGVy
LWZpdC0yLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzExMTYwNiBmYXN0L2Jv
cmRlcnMvYm9yZGVyLWZpdC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMTE2
MDYgZmFzdC9yZXBhaW50L2JvcmRlci1maXQtbGluZXMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAK
KyMgRmVhdHVyZSBub3QgaW1wbGVtZW50ZWQKK3dlYmtpdC5vcmcvYi8xMTI2MjQgZmFzdC9jYW52
YXMvb3BhcXVlLmh0bWwgWyBTa2lwIF0KIAogIyBGbGFrZXkKIHdlYmtpdC5vcmcvYi8xMTI1MzMg
bWVkaWEvYXV0by1wbGF5LWluLXNhbmRib3gtd2l0aC1hbGxvdy1zY3JpcHRzLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194690</attachid>
            <date>2013-03-22 21:24:47 -0700</date>
            <delta_ts>2013-03-22 22:23:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112624-20130323002033.patch</filename>
            <type>text/plain</type>
            <size>29295</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjOTk4NzQ3NjljZGEyMmRlYWVlZmUx
YmExNmIyYjk1NDE1NTZmZDIuLjU3NTBjYWE0M2ExZjU1MjFkODAyYTdmOTAxMWRlNWQ5NmIyOWM4
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ICJvcGFxdWUiIGF0dHJp
YnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTMtMDMtMjIgIEJlbmphbWlu
IFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDIgYmFkIGJy
YW5jaGVzIGZyb20gU3RyaW5nSGFzaDo6ZXF1YWwoKSBhbmQgQ2FzZUZvbGRpbmdIYXNoOjplcXVh
bCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDAyNjEyNzIzMzM0ZGRjY2QxMzgzYjliZDg4MmRmNDUwOTdiODU2
NS4uMGNiZTNhNjFhYjcwYzc3YzViYTY4MDAwMmVmY2M3MjI5ZTBjOTdjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ3IEBACisyMDEzLTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIGltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9y
IDxjYW52YXM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRPcGFxdWUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6Om9wYXF1ZSk6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJp
ZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUp
OgorICAgICAgICAoQ2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKToKKwogMjAxMy0wMy0yMSAgS2lyYW4gTXVwcGFsYSAgPGNtdXBw
YWxhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcnVudGltZSBzZXR0aW5nIGZvciBoaWRkZW4g
cGFnZSBET00gdGltZXIgdGhyb3R0bGluZyBhbmQgQ1NTIGFuaW1hdGlvbiBzdXNwZW5zaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI5ZmQyODczODRhOTU0ZDM3ZWE1ODM2NDhmMzYy
NTA1NGFlZTUxMzkuLjk5YzlhZGIxMDI5NzBjOGZjOTA1Njk3OWNmZmMxNmU2MDM2YjQxYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0
ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50ICJvcGFxdWUiIGF0dHJpYnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0wMy0y
MiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBjbGllbnQgY2FsbGJhY2tzIHRvIG5vdGlmeSBvZiBjaGFuZ2VzIG9mIGFzc29jaWF0ZWQgZnJv
bSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBi
L1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggZWI2NTczNWMyNzI3NTIyNTUw
OTM4YTJiMGU1OWM5MTUxZTNlMjA4YS4uZjM3MTM2YzRlMWRhMDA3OWZhMGVkM2ZiYzBkZTQyNTlk
ZDU3NDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC02NjksNiArNjY5LDEwIEBACiAj
ZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAKICNlbmRpZgogCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX09QQVFVRV9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9PUEFRVUVfQ0FOVkFTIDAK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09QRU5DTCkKICNkZWZpbmUgRU5BQkxFX09Q
RU5DTCAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
aW5kZXggNmM2NzU3ZDE0YTc4ODJkMWY5ZTA5ZjNkOWNiNzA3MDU5MjNjMjdjZS4uZmVmMjU4ZjE1
MmVjODZiOTZkOTU1M2Q3ODMxOGViZDcyNTU2NmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2NSw2ICsyNjUsNyBAQCBvbndlYmtpdHNvdXJjZWNs
b3NlCiBvbndlYmtpdHNvdXJjZWVuZGVkCiBvbndlYmtpdHNvdXJjZW9wZW4KIG9ud2Via2l0dHJh
bnNpdGlvbmVuZAorb3BhcXVlCiBvcGVuCiBvcHRpbXVtCiBwYXR0ZXJuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGEzYzA0NjMzMTliMzU1Njc0M2ZmMzA0
YWU4ZGQ0MjNmZTRkODNlYWMuLjBmZDdhNjA1M2JkZWQ5ZDBkMDc1MTliYmM4ZjBhMDE2M2M3M2Ez
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04Myw2
ICs4Myw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhTa2lhRGltID0gMzI3NjcuMEY7IC8vIE1h
eGltdW0gd2lkdGgvaGVpZ2h0IGluIENTUyBwaXhlbHMuCiBIVE1MQ2FudmFzRWxlbWVudDo6SFRN
TENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3Np
emUoRGVmYXVsdFdpZHRoLCBEZWZhdWx0SGVpZ2h0KQorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFT
KQorICAgICwgbV9vcGFxdWUoZmFsc2UpCisjZW5kaWYKICAgICAsIG1fcmVuZGVyZXJJc0NhbnZh
cyhmYWxzZSkKICAgICAsIG1faWdub3JlUmVzZXQoZmFsc2UpCiAgICAgLCBtX2RldmljZVNjYWxl
RmFjdG9yKHRhcmdldERldmljZVNjYWxlRmFjdG9yKCkpCkBAIC0xMTYsNiArMTE5LDEwIEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5h
bWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQoKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBpZiAobmFtZSA9PSBvcGFxdWVBdHRyKQorICAgICAgICByZXNldCgpOworI2Vu
ZGlmCiAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApA
QCAtMTU3LDYgKzE2NCwxNiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aChpbnQg
dmFsdWUpCiAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUp
KTsKIH0KIAorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQordm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6c2V0T3BhcXVlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlKQorICAgICAgICBzZXRB
dHRyaWJ1dGUob3BhcXVlQXR0ciwgInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHJlbW92ZUF0
dHJpYnV0ZShvcGFxdWVBdHRyKTsKK30KKyNlbmRpZgorCiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzKiBhdHRycykKIHsKICAgICAvLyBBIENhbnZhcyBjYW4gZWl0aGVy
IGJlICIyRCIgb3IgIndlYmdsIiBidXQgbmV2ZXIgYm90aC4gSWYgeW91IHJlcXVlc3QgYSAyRCBj
YW52YXMgYW5kIHRoZSBleGlzdGluZwpAQCAtMjU2LDYgKzI3MywxMCBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpyZXNldCgpCiAgICAgaWYgKCFvayB8fCBoIDwgMCkKICAgICAgICAgaCA9IERl
ZmF1bHRIZWlnaHQ7CiAKKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9wYXF1
ZSA9IGZhc3RIYXNBdHRyaWJ1dGUob3BhcXVlQXR0cik7CisjZW5kaWYKKwogICAgIGlmIChtX2Nv
bnRleHRTdGF0ZVNhdmVyKSB7CiAgICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIGdyYXBo
aWNzIGNvbnRleHQgc3RhdGUuCiAgICAgICAgIG1fY29udGV4dFN0YXRlU2F2ZXItPnJlc3RvcmUo
KTsKQEAgLTI3MywxMyArMjk0LDIyIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkK
IAogICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBj
YW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9w
dGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYg
KG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2Rldmlj
ZVNjYWxlRmFjdG9yID09IG5ld0RldmljZVNjYWxlRmFjdG9yICYmIG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzMmQoKSkgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIGJvb2wgb3Bh
cXVlTWF0Y2hlcyA9IG1fb3BhcXVlID09IG9wYXF1ZTsKKyNlbHNlCisgICAgYm9vbCBvcGFxdWVN
YXRjaGVzID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVy
ICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2RldmljZVNjYWxlRmFjdG9yID09IG5ld0Rldmlj
ZVNjYWxlRmFjdG9yICYmIG9wYXF1ZU1hdGNoZXMgJiYgbV9jb250ZXh0ICYmIG1fY29udGV4dC0+
aXMyZCgpKSB7CiAgICAgICAgIGlmICghbV9kaWRDbGVhckltYWdlQnVmZmVyKQogICAgICAgICAg
ICAgY2xlYXJJbWFnZUJ1ZmZlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9k
ZXZpY2VTY2FsZUZhY3RvciA9IG5ld0RldmljZVNjYWxlRmFjdG9yOworI2lmIEVOQUJMRShPUEFR
VUVfQ0FOVkFTKQorICAgIG1fb3BhcXVlID0gb3BhcXVlOworI2VuZGlmCiAKICAgICBzZXRTdXJm
YWNlU2l6ZShuZXdTaXplKTsKIApAQCAtMzUyLDEwICszODIsMTUgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0
JiByLCBib28KICAgICBpZiAoaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCkpIHsKICAgICAgICAgSW1h
Z2VCdWZmZXIqIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1ZmZl
cikgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgICAgICAgICAgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBtX29wYXF1ZSA/IENvbXBvc2l0ZUNvcHkgOiBDb21w
b3NpdGVTb3VyY2VPdmVyOworI2Vsc2UKKyAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyNlbmRpZgogICAgICAgICAg
ICAgaWYgKG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25h
cHBlZEludFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBp
eGVsU25hcHBlZEludFJlY3QociksIGNvbXBvc2l0ZU9wZXJhdG9yLCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JT
cGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICAgICAgICAg
IGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJH
QiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZU5v
cm1hbCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNTQ5LDcg
KzU4NCwxMiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAjZWxzZQogICAgICAgICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgbV9pbWFnZUJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IG1fb3BhcXVlID8gT3BhcXVlIDog
Tm9uT3BhcXVlOworI2Vsc2UKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IE5vbk9wYXF1
ZTsKKyNlbmRpZgorICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9k
ZSwgb3BhY2l0eU1vZGUpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJu
OwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggYmY3
MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYi4uMjI5NWU5N2QzYTFlZTFkNjU3
Nzc4OWY1ZDE4ZGQ5OGM1NjJmNTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaApAQCAtNzQsMTEgKzc0LDE3IEBAIHB1YmxpYzoKICAgICAvLyBBdHRyaWJ1dGVzIGFu
ZCBmdW5jdGlvbnMgZXhwb3NlZCB0byBzY3JpcHQKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBzaXplKCkud2lkdGgoKTsgfQogICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBz
aXplKCkuaGVpZ2h0KCk7IH0KKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9w
YXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BhcXVlOyB9CisjZW5kaWYKIAogICAgIGNvbnN0IElu
dFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgIHZvaWQgc2V0V2lk
dGgoaW50KTsKICAgICB2b2lkIHNldEhlaWdodChpbnQpOworI2lmIEVOQUJMRShPUEFRVUVfQ0FO
VkFTKQorICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAgICB7IApAQCAtMTY1LDYgKzE3MSw5IEBAIHBy
aXZhdGU6CiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogCiAgICAg
SW50U2l6ZSBtX3NpemU7CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgYm9vbCBtX29w
YXF1ZTsKKyNlbmRpZgogCiAgICAgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29u
dGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAppbmRleCBm
ZGJkZWZjZmU1ZjMwYzZhMjA3M2I3OWUxNjY4ZDVjMDA4ZjliYjE4Li40ZDAzMTg2YThiYTlkZjNi
NWVhYzY1MmIxYjRlOWQ3Nzc1MjIzYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbApAQCAtMzAsNiArMzAsOSBAQAogCiAgICAgYXR0cmlidXRlIGxvbmcgd2lk
dGg7CiAgICAgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OworI2lmIGRlZmluZWQoRU5BQkxFX09QQVFV
RV9DQU5WQVMpCisgICAgYXR0cmlidXRlIGJvb2xlYW4gb3BhcXVlOworI2VuZGlmCiAKICAgICBb
Q3VzdG9tXSBET01TdHJpbmcgdG9EYXRhVVJMKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdHlwZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAxZTRlNWQ0ZDQz
MzFjOTJiMWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxLi45NGNiYzYyZTBhNWEwY2UyY2QwMzUyNDdk
ZGY3NWEzYjQ5MmNmNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKQEAgLTc1LDE0ICs3NSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFVuc2NhbGVkCiAgICAgfTsKIAorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAg
ICBOb25PcGFxdWUsCisgICAgICAgIE9wYXF1ZSwKKyAgICB9OworCiAgICAgY2xhc3MgSW1hZ2VC
dWZmZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4g
YSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZp
Y2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCisgICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0g
Q29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2Nl
bGVyYXRlZCwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUgPSBOb25PcGFxdWUpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPElt
YWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAg
ICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIG9wYWNpdHlNb2Rl
LCBzdWNjZXNzKSk7CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gYnVmLnJlbGVhc2UoKTsKQEAgLTE1
NSw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gVGhpcyBjb25z
dHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJs
ZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVy
biBmYWlsdXJlLgotICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsK
KyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3Mp
OwogI2lmIFVTRShTS0lBKQogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBi
b29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cAppbmRleCA5ZWJlZDlkNzAzMjYyNmM5NzE3OTBiNmM0MjFjN2ExMGRjMzJmNzJjLi5hMDQ3MmRj
OTljNzc4ZjViODBkNjJjYTE2ODZjZjNiODA1OWM0OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cApAQCAtNTQsNyArNTQsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25z
dCBJbnRTaXplJikKIHsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJl
bmRlcmluZ01vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNp
emUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHAKaW5kZXggZTU3MzczMjMxNmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0Ny4uYjVjYTY4
NGQyNmY2YWQ2YmNjODgyM2U5NjNiOTA2OWNkZDk1MjkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3
ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lk
KiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwog
fQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBp
bWFnZUNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8gTk9URTogVGhlIGlucHV0IGhl
cmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNHJ3MgY29uc3RydWN0b3IganVz
dCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0
aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNw
cAppbmRleCBlNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwLi5kY2UzOTBl
ODQ3MDY4ZGY2NjI0MDM0ZGQ0M2JiYzE2MmE2NWYzMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVV
cGRhdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNh
bnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0
dXJlSWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIE9wYWNp
dHlNb2RlIG9wYWNpdHlNb2RlLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCkKICAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQpAQCAtNjAsNyArNjAsNyBAQCBDYW52YXMyRExheWVy
QnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IGNvbnRleHQsCiAKICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0
aGlzKSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXll
ci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCk7CisgICAg
bV9sYXllci0+c2V0T3BhcXVlKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAgR3JhcGhpY3NM
YXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAppbmRleCBiMzg2MzA0YzMzN2YzMDNhNjc0
NWU2YTkxZDk0YzZlOTVjZTUyMWJhLi5lYTUyYTM4MjdkNGJhZjk5MDExYTBlOTM5MThiMTZhNmYx
ZjNmYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCkBAIC00NCwxNCArNDQsMTgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1Ymxp
YyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyQ2xpZW50LCBwdWJsaWMgU2tEZWZlcnJl
ZENhbnZhczo6Tm90aWZpY2F0aW9uQ2xpZW50LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8
Q2FudmFzMkRMYXllckJyaWRnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhbnZhczJE
TGF5ZXJCcmlkZ2UpOwogcHVibGljOgorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAgICBP
cGFxdWUsCisgICAgICAgIE5vbk9wYXF1ZQorICAgIH07CiAgICAgZW51bSBUaHJlYWRNb2RlIHsK
ICAgICAgICAgU2luZ2xlVGhyZWFkLAogICAgICAgICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9k
ZSB0aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxD
YW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUsIFRo
cmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhy
ZWFkaW5nLCB0ZXh0dXJlSWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52YXMy
RExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIG9wYWNpdHlNb2RlLCB0aHJlYWRpbmcsIHRleHR1
cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAg
LTgwLDcgKzg0LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZmZXJUZXh0dXJlKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVy
ZUlkKTsKKyAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0
M0Q+LCBjb25zdCBJbnRTaXplJiwgT3BhY2l0eU1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRl
eHR1cmVJZCk7CiAKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNp
emUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCAxYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdjZjUx
YmM3Yzc4NDk3Li4xOWU4ZDVhNjIwYWM3ZGRiODFkNmJjZTdjYjM5MWZiNGI1OWMyYmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZl
clF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VCdWZmZXJEYXRhOjp0b1FJbWFn
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywg
Q29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAg
ICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6
ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDYxMzA5ZmFkNDdjNWVlYmZiOGU0ZWE0MGY0
ZWU5NDlhYjcwMDlmNjQuLjkwZTI2NzEyOWE2NWU3ZGVjNGM2MTIwYmUxMzk1ZjNjNTAxMTBiMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJ
bWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKIH0KIAotc3RhdGljIFNrQ2Fu
dmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRTaXplJiBzaXplLCBJbWFnZUJ1
ZmZlckRhdGEqIGRhdGEpCitzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZGF0YSwgT3BhY2l0eU1vZGUg
b3BhY2l0eU1vZGUpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0M0Qg
PSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAgICAgaWYgKCFjb250ZXh0M0QpCkBA
IC05NCw3ICs5NCw4IEBAIHN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkCiAgICAgU2tBdXRvVFVucmVm
PFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdyLCB0ZXh0dXJlLmdldCgpKSk7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6
OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aXNU
aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFk
ZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQ7Ci0gICAgZGF0YS0+bV9sYXll
ckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgp
LCBzaXplLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwor
ICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6Ok9wYWNpdHlNb2RlIGJyaWRnZU9wYWNpdHlNb2RlID0g
b3BhY2l0eU1vZGUgPT0gT3BhcXVlID8gQ2FudmFzMkRMYXllckJyaWRnZTo6T3BhcXVlIDogQ2Fu
dmFzMkRMYXllckJyaWRnZTo6Tm9uT3BhcXVlOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBD
YW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgYnJp
ZGdlT3BhY2l0eU1vZGUsIHRocmVhZE1vZGUsIHRleHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5k
bGUoKSk7CiAgICAgY2FudmFzID0gZGF0YS0+bV9sYXllckJyaWRnZS0+c2tDYW52YXMoZGV2aWNl
LmdldCgpKTsKICNlbHNlCiAgICAgY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZS5nZXQoKSk7
CkBAIC0xNTEsNyArMTUyLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBzdWNjZXNz
ID0gdHJ1ZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgYm9vbCYgc3Vj
Y2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xv
Z2ljYWxTaXplKHNpemUpCkBAIC0xNjAsNyArMTYxLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwKICAgICBPd25QdHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2Rl
ID09IEFjY2VsZXJhdGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVy
YXRlZENhbnZhcyhzaXplLCAmbV9kYXRhKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNy
ZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEsIG9wYWNpdHlNb2RlKSk7CiAgICAg
ZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PSBVbmFjY2VsZXJhdGVkTm9uUGxhdGZvcm1CdWZmZXIp
CiAgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZU5vblBsYXRmb3JtQ2FudmFzKHNpemUp
KTsKIApAQCAtMTc1LDEzICsxNzYsMTYgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBt
X2RhdGEubV9jYW52YXMgPSBjYW52YXMucmVsZWFzZSgpOwogICAgIG1fZGF0YS5tX3BsYXRmb3Jt
Q29udGV4dC5zZXRDYW52YXMobV9kYXRhLm1fY2FudmFzLmdldCgpKTsKICAgICBtX2NvbnRleHQg
PSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQp
KTsKLSAgICBtX2NvbnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKGZhbHNlKTsKKyAgICBtX2Nv
bnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAg
bV9jb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1dGlv
blNjYWxlKSk7CiAKLSAgICAvLyBNYWtlIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50LiBJdCB3
b3VsZCBiZSBuaWNlIGlmIHRoaXMgd2Fzbid0CisgICAgLy8gQ2xlYXIgdGhlIGJhY2tncm91bmQg
dHJhbnNwYXJlbnQgb3Igb3BhcXVlLCBhcyByZXF1aXJlZC4gSXQgd291bGQgYmUgbmljZSBpZiB0
aGlzIHdhc24ndAogICAgIC8vIHJlcXVpcmVkLCBidXQgdGhlIGNhbnZhcyBpcyBjdXJyZW50bHkg
ZmlsbGVkIHdpdGggdGhlIG1hZ2ljIHRyYW5zcGFyZW5jeQogICAgIC8vIGNvbG9yLiBDYW4gd2Ug
aGF2ZSBhbm90aGVyIHdheSB0byBtYW5hZ2UgdGhpcz8KLSAgICBtX2RhdGEubV9jYW52YXMtPmRy
YXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9Nb2RlKTsKKyAgICBpZiAob3Bh
Y2l0eU1vZGUgPT0gT3BhcXVlKQorICAgICAgICBtX2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDI1
NSwgMCwgMCwgMCwgU2tYZmVybW9kZTo6a1NyY19Nb2RlKTsKKyAgICBlbHNlIAorICAgICAgICBt
X2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9N
b2RlKTsKIAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRl
eCBmZDQxZTEyNGJlYjczMWNkN2IxMmIwN2I3NzI5NWMyYzc3MTZlMWYyLi43MzJlNzQ5NmE4MDMx
NGE0MDAwOGFhNWViZDQyNzA2ZjQyOTIyODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAt
NzEsNyArNzEsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRT
aXplJiBzaXplKQogICAgIG1fYml0bWFwLT5zZXRIYXNBbHBoYSh0cnVlKTsKIH0KIAotSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBPcGFj
aXR5TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDlmMDFlYTIz
MDAyMDhiZjZmMTYwYTUwZDJhZWQ4ZjdlMjBkNThkOGMuLjc3OTQzODAzYmNlNDIyOWVhNTZmNDg2
NjE2YWU5MWU5NmFiNTc4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwg
T3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1f
c2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCmluZGV4IGUyYjgzYzRmN2E5M2ViYjIyZWI2ZDRhNzYxZDkwMWE0NzA5NTBk
YzYuLjJkMGIzZTM5NzZlZmY3M2EyOTgzZjBiMzliOTU2MmQ3OTAwNTRmZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTk4LDYgKzk4LDcgQEAKICAgICAgICdFTkFCTEVf
TUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU9MScsCiAgICAg
ICAnRU5BQkxFX05PU05JRkY9MScsCisgICAgICAnRU5BQkxFX09QQVFVRV9DQU5WQVM9MScsCiAg
ICAgICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAgICAnRU5BQkxFX1BFUkZP
Uk1BTkNFX1RJTUVMSU5FPTEnLAogICAgICAgJ0VOQUJMRV9QT0lOVEVSX0xPQ0s9MScsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5hZ2Vy
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJNYW5h
Z2VyVGVzdC5jcHAKaW5kZXggMjk3NzNhZWNiMjA5Njk3MmEzNWFjZGY3YmJkYzg1M2FkYTk0YzZi
Zi4uODJjZmY4YWU5YmM5ZDZkOWFmZTAyYzA0Y2MyMzM2ODE2OWU3M2U0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyTWFuYWdlclRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllck1hbmFnZXJU
ZXN0LmNwcApAQCAtNDIsNyArNDIsNyBAQCB1c2luZyB0ZXN0aW5nOjpUZXN0OwogY2xhc3MgRmFr
ZUNhbnZhczJETGF5ZXJCcmlkZ2UgOiBwdWJsaWMgQ2FudmFzMkRMYXllckJyaWRnZSB7CiBwdWJs
aWM6CiAgICAgRmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UoKSAKLSAgICAgICAgOiBDYW52YXMyRExh
eWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0
RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNEKSksIEludFNpemUoMSwgMSksIFNpbmdsZVRocmVhZCwgMCkKKyAgICAgICAgOiBDYW52YXMy
RExheWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250
ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdyYXBoaWNzQ29u
dGV4dDNEKSksIEludFNpemUoMSwgMSksIE5vbk9wYXF1ZSwgU2luZ2xlVGhyZWFkLCAwKQogICAg
ICAgICAsIG1fZnJlZWFibGVCeXRlcygwKQogICAgICAgICAsIG1fZnJlZU1lbW9yeUlmUG9zc2li
bGVDb3VudCgwKQogICAgICAgICAsIG1fZmx1c2hDb3VudCgwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY1MjdlYzFiZWM3
MzU3NjY4NTFlOTE5YTUzOWI2NzZjZGE0YTU0YjguLmY0MTRhMjE0NDljMDEyNGVkNTRkZDQyNzhh
YWQxYmJmNzhlNzMzYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0xOCAgU3RlcGhl
biBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQg
Im9wYXF1ZSIgYXR0cmlidXRlIGZvciA8Y2FudmFzPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jYW52YXMvb3BhcXVlLmpzOiBBZGRlZC4KKwogMjAxMy0wMy0yMiAgUGV0ZXIg
S2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJr
IG1vcmUgdGVzdHMgYXMgY3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjdiMDdkZTE1YjYzMjRmZWY3ZDFiZDZkNDgwNWY2
OGU5MWEyYjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3Bh
cXVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitTZXJpZXMgb2YgdGVzdHMgZm9yIGNh
bnZhcy5vcGFxdWUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2FudmFz
Lm9wYXF1ZSBpcyBmYWxzZQorUEFTUyBpbWdEYXRhLmRhdGFbMF0gaXMgMAorUEFTUyBpbWdEYXRh
LmRhdGFbMV0gaXMgMAorUEFTUyBpbWdEYXRhLmRhdGFbMl0gaXMgMAorUEFTUyBpbWdEYXRhLmRh
dGFbM10gaXMgMAorUEFTUyBvcGFxdWVDYW52YXMub3BhcXVlIGlzIHRydWUKK1BBU1Mgb3BhcXVl
SW1nRGF0YS5kYXRhWzBdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzFdIGlzIDAKK1BB
U1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzJdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzNd
IGlzIDI1NQorUEFTUyBvcGFxdWVDYW52YXMub3BhcXVlIGlzIGZhbHNlCitQQVNTIGZvcm1lcmx5
T3BhcXVlSW1nRGF0YS5kYXRhWzBdIGlzIDAKK1BBU1MgZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRh
dGFbMV0gaXMgMAorUEFTUyBmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNT
IGZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzNdIGlzIDAKK1BBU1MgY2FudmFzLm9wYXF1ZSBp
cyB0cnVlCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVswXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0Rh
dGEuZGF0YVsxXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBpcyAwCitQQVNTIG9w
YXF1ZUltZ0RhdGEuZGF0YVszXSBpcyAyNTUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvb3BhcXVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZGFlOTg2Y2JmYmRlNzA2NjhlY2EwNTUzYTc4YzJmNGE4YzYxMTIxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCI+PC9jYW52YXM+Cis8Y2Fu
dmFzIGlkPSJvcGFxdWVDYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIG9wYXF1ZT48L2NhbnZh
cz4KKzxzY3JpcHQgc3JjPSJvcGFxdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvb3BhcXVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTRhNTg4MWI4NTQ4OGVlZWNk
OGYxNDYwMTNjNTI2YTk4NmU5MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9vcGFxdWUuanMKQEAgLTAsMCArMSwzMSBAQAorZGVzY3JpcHRpb24oIlNlcmllcyBv
ZiB0ZXN0cyBmb3IgY2FudmFzLm9wYXF1ZSIpOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBvcGFxdWVDYW52YXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3BhcXVlQ2FudmFzIik7Cit2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJk
Iik7Cit2YXIgb3BhcXVlQ3R4ID0gb3BhcXVlQ2FudmFzLmdldENvbnRleHQoIjJkIik7Cit2YXIg
aW1nRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgiY2FudmFz
Lm9wYXF1ZSIsICJmYWxzZSIpOworc2hvdWxkQmUoImltZ0RhdGEuZGF0YVswXSIsICIwIik7Citz
aG91bGRCZSgiaW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJpbWdEYXRhLmRhdGFb
Ml0iLCAiMCIpOworc2hvdWxkQmUoImltZ0RhdGEuZGF0YVszXSIsICIwIik7Cit2YXIgb3BhcXVl
SW1nRGF0YSA9IG9wYXF1ZUN0eC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91bGRCZSgi
b3BhcXVlQ2FudmFzLm9wYXF1ZSIsICJ0cnVlIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5k
YXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbMV0iLCAiMCIpOwor
c2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVl
SW1nRGF0YS5kYXRhWzNdIiwgIjI1NSIpOworb3BhcXVlQ2FudmFzLnJlbW92ZUF0dHJpYnV0ZSgn
b3BhcXVlJyk7Cit2YXIgZm9ybWVybHlPcGFxdWVJbWdEYXRhID0gb3BhcXVlQ3R4LmdldEltYWdl
RGF0YSgwLCAwLCAxLCAxKTsKK3Nob3VsZEJlKCJvcGFxdWVDYW52YXMub3BhcXVlIiwgImZhbHNl
Iik7CitzaG91bGRCZSgiZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMF0iLCAiMCIpOworc2hv
dWxkQmUoImZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJm
b3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRCZSgiZm9ybWVybHlP
cGFxdWVJbWdEYXRhLmRhdGFbM10iLCAiMCIpOworY2FudmFzLnNldEF0dHJpYnV0ZSgnb3BhcXVl
JywgJ3RydWUnKTsKK29wYXF1ZUltZ0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIDEsIDEp
Oworc2hvdWxkQmUoImNhbnZhcy5vcGFxdWUiLCAidHJ1ZSIpOworc2hvdWxkQmUoIm9wYXF1ZUlt
Z0RhdGEuZGF0YVswXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzFdIiwg
IjAiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUo
Im9wYXF1ZUltZ0RhdGEuZGF0YVszXSIsICIyNTUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTAyODUwNDFkNTkyMjAwM2VmMmUwYjhkODlhNmE3Njdj
ZWJkMWVlYy4uM2NiYWUyMmEyMzdhMzAzMzhiZjQxYjBlNzJkMDUxYzkyOTRhODllYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NDEsNiArMTQ0MSw4
IEBAIHdlYmtpdC5vcmcvYi8xMTE2MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1maXQtMi5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMTE2MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1m
aXQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTExNjA2IGZhc3QvcmVwYWlu
dC9ib3JkZXItZml0LWxpbmVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCisjIEZlYXR1cmUgbm90
IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvMTEyNjI0IGZhc3QvY2FudmFzL29wYXF1ZS5odG1s
IFsgU2tpcCBdCiAKICMgRmxha2V5CiB3ZWJraXQub3JnL2IvMTEyNTMzIG1lZGlhL2F1dG8tcGxh
eS1pbi1zYW5kYm94LXdpdGgtYWxsb3ctc2NyaXB0cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194691</attachid>
            <date>2013-03-22 22:23:50 -0700</date>
            <delta_ts>2013-03-22 22:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112624-20130323011936.patch</filename>
            <type>text/plain</type>
            <size>30105</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjOTk4NzQ3NjljZGEyMmRlYWVlZmUx
YmExNmIyYjk1NDE1NTZmZDIuLjU3NTBjYWE0M2ExZjU1MjFkODAyYTdmOTAxMWRlNWQ5NmIyOWM4
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50ICJvcGFxdWUiIGF0dHJp
YnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTMtMDMtMjIgIEJlbmphbWlu
IFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIDIgYmFkIGJy
YW5jaGVzIGZyb20gU3RyaW5nSGFzaDo6ZXF1YWwoKSBhbmQgQ2FzZUZvbGRpbmdIYXNoOjplcXVh
bCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDAyNjEyNzIzMzM0ZGRjY2QxMzgzYjliZDg4MmRmNDUwOTdiODU2
NS4uMGNiZTNhNjFhYjcwYzc3YzViYTY4MDAwMmVmY2M3MjI5ZTBjOTdjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ3IEBACisyMDEzLTAzLTE4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIGltcGxlbWVudCAib3BhcXVlIiBhdHRyaWJ1dGUgZm9y
IDxjYW52YXM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI2MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6SFRNTENhbnZhc0VsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzZXRPcGFxdWUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0Vs
ZW1lbnQ6Om9wYXF1ZSk6CisgICAgICAgIChIVE1MQ2FudmFzRWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgor
ICAgICAgICAoSW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJp
ZGdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUp
OgorICAgICAgICAoQ2FudmFzMkRMYXllckJyaWRnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKToKKwogMjAxMy0wMy0yMSAgS2lyYW4gTXVwcGFsYSAgPGNtdXBw
YWxhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcnVudGltZSBzZXR0aW5nIGZvciBoaWRkZW4g
cGFnZSBET00gdGltZXIgdGhyb3R0bGluZyBhbmQgQ1NTIGFuaW1hdGlvbiBzdXNwZW5zaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI5ZmQyODczODRhOTU0ZDM3ZWE1ODM2NDhmMzYy
NTA1NGFlZTUxMzkuLjk5YzlhZGIxMDI5NzBjOGZjOTA1Njk3OWNmZmMxNmU2MDM2YjQxYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMTggIFN0
ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVt
ZW50ICJvcGFxdWUiIGF0dHJpYnV0ZSBmb3IgPGNhbnZhcz4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjYyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKwogMjAxMy0wMy0y
MiAgRGFuZSBXYWxsaW5nYSAgPGRnd2FsbGluZ2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBjbGllbnQgY2FsbGJhY2tzIHRvIG5vdGlmeSBvZiBjaGFuZ2VzIG9mIGFzc29jaWF0ZWQgZnJv
bSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBi
L1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggZWI2NTczNWMyNzI3NTIyNTUw
OTM4YTJiMGU1OWM5MTUxZTNlMjA4YS4uZjM3MTM2YzRlMWRhMDA3OWZhMGVkM2ZiYzBkZTQyNTlk
ZDU3NDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC02NjksNiArNjY5LDEwIEBACiAj
ZGVmaW5lIEVOQUJMRV9PQkpFQ1RfTUFSS19MT0dHSU5HIDAKICNlbmRpZgogCisjaWYgIWRlZmlu
ZWQoRU5BQkxFX09QQVFVRV9DQU5WQVMpCisjZGVmaW5lIEVOQUJMRV9PUEFRVUVfQ0FOVkFTIDAK
KyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX09QRU5DTCkKICNkZWZpbmUgRU5BQkxFX09Q
RU5DTCAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
aW5kZXggNmM2NzU3ZDE0YTc4ODJkMWY5ZTA5ZjNkOWNiNzA3MDU5MjNjMjdjZS4uZmVmMjU4ZjE1
MmVjODZiOTZkOTU1M2Q3ODMxOGViZDcyNTU2NmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2NSw2ICsyNjUsNyBAQCBvbndlYmtpdHNvdXJjZWNs
b3NlCiBvbndlYmtpdHNvdXJjZWVuZGVkCiBvbndlYmtpdHNvdXJjZW9wZW4KIG9ud2Via2l0dHJh
bnNpdGlvbmVuZAorb3BhcXVlCiBvcGVuCiBvcHRpbXVtCiBwYXR0ZXJuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGEzYzA0NjMzMTliMzU1Njc0M2ZmMzA0
YWU4ZGQ0MjNmZTRkODNlYWMuLjBmZDdhNjA1M2JkZWQ5ZDBkMDc1MTliYmM4ZjBhMDE2M2M3M2Ez
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04Myw2
ICs4Myw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhTa2lhRGltID0gMzI3NjcuMEY7IC8vIE1h
eGltdW0gd2lkdGgvaGVpZ2h0IGluIENTUyBwaXhlbHMuCiBIVE1MQ2FudmFzRWxlbWVudDo6SFRN
TENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX3Np
emUoRGVmYXVsdFdpZHRoLCBEZWZhdWx0SGVpZ2h0KQorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFT
KQorICAgICwgbV9vcGFxdWUoZmFsc2UpCisjZW5kaWYKICAgICAsIG1fcmVuZGVyZXJJc0NhbnZh
cyhmYWxzZSkKICAgICAsIG1faWdub3JlUmVzZXQoZmFsc2UpCiAgICAgLCBtX2RldmljZVNjYWxl
RmFjdG9yKHRhcmdldERldmljZVNjYWxlRmFjdG9yKCkpCkBAIC0xMTYsNiArMTE5LDEwIEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0CiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5h
bWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQoKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBpZiAobmFtZSA9PSBvcGFxdWVBdHRyKQorICAgICAgICByZXNldCgpOworI2Vu
ZGlmCiAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApA
QCAtMTU3LDYgKzE2NCwxNiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRXaWR0aChpbnQg
dmFsdWUpCiAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUp
KTsKIH0KIAorI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQordm9pZCBIVE1MQ2FudmFzRWxlbWVu
dDo6c2V0T3BhcXVlKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlKQorICAgICAgICBzZXRB
dHRyaWJ1dGUob3BhcXVlQXR0ciwgInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHJlbW92ZUF0
dHJpYnV0ZShvcGFxdWVBdHRyKTsKK30KKyNlbmRpZgorCiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzKiBhdHRycykKIHsKICAgICAvLyBBIENhbnZhcyBjYW4gZWl0aGVy
IGJlICIyRCIgb3IgIndlYmdsIiBidXQgbmV2ZXIgYm90aC4gSWYgeW91IHJlcXVlc3QgYSAyRCBj
YW52YXMgYW5kIHRoZSBleGlzdGluZwpAQCAtMjU2LDYgKzI3MywxMCBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpyZXNldCgpCiAgICAgaWYgKCFvayB8fCBoIDwgMCkKICAgICAgICAgaCA9IERl
ZmF1bHRIZWlnaHQ7CiAKKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9wYXF1
ZSA9IGZhc3RIYXNBdHRyaWJ1dGUob3BhcXVlQXR0cik7CisjZW5kaWYKKwogICAgIGlmIChtX2Nv
bnRleHRTdGF0ZVNhdmVyKSB7CiAgICAgICAgIC8vIFJlc2V0IHRvIHRoZSBpbml0aWFsIGdyYXBo
aWNzIGNvbnRleHQgc3RhdGUuCiAgICAgICAgIG1fY29udGV4dFN0YXRlU2F2ZXItPnJlc3RvcmUo
KTsKQEAgLTI3MywxMyArMjk0LDIyIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkK
IAogICAgIC8vIElmIHRoZSBzaXplIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlciBtYXRjaGVzLCB3ZSBj
YW4ganVzdCBjbGVhciBpdCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGluZy4KICAgICAvLyBUaGlzIG9w
dGltaXphdGlvbiBpcyBvbmx5IGRvbmUgZm9yIDJEIGNhbnZhc2VzIGZvciBub3cuCi0gICAgaWYg
KG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2Rldmlj
ZVNjYWxlRmFjdG9yID09IG5ld0RldmljZVNjYWxlRmFjdG9yICYmIG1fY29udGV4dCAmJiBtX2Nv
bnRleHQtPmlzMmQoKSkgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgIGJvb2wgb3Bh
cXVlTWF0Y2hlcyA9IG1fb3BhcXVlID09IG9wYXF1ZTsKKyNlbHNlCisgICAgYm9vbCBvcGFxdWVN
YXRjaGVzID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKG1faGFzQ3JlYXRlZEltYWdlQnVmZmVy
ICYmIG9sZFNpemUgPT0gbmV3U2l6ZSAmJiBtX2RldmljZVNjYWxlRmFjdG9yID09IG5ld0Rldmlj
ZVNjYWxlRmFjdG9yICYmIG9wYXF1ZU1hdGNoZXMgJiYgbV9jb250ZXh0ICYmIG1fY29udGV4dC0+
aXMyZCgpKSB7CiAgICAgICAgIGlmICghbV9kaWRDbGVhckltYWdlQnVmZmVyKQogICAgICAgICAg
ICAgY2xlYXJJbWFnZUJ1ZmZlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9k
ZXZpY2VTY2FsZUZhY3RvciA9IG5ld0RldmljZVNjYWxlRmFjdG9yOworI2lmIEVOQUJMRShPUEFR
VUVfQ0FOVkFTKQorICAgIG1fb3BhcXVlID0gb3BhcXVlOworI2VuZGlmCiAKICAgICBzZXRTdXJm
YWNlU2l6ZShuZXdTaXplKTsKIApAQCAtMzUyLDEwICszODIsMTUgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0
JiByLCBib28KICAgICBpZiAoaGFzQ3JlYXRlZEltYWdlQnVmZmVyKCkpIHsKICAgICAgICAgSW1h
Z2VCdWZmZXIqIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1ZmZl
cikgeworI2lmIEVOQUJMRShPUEFRVUVfQ0FOVkFTKQorICAgICAgICAgICAgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBtX29wYXF1ZSA/IENvbXBvc2l0ZUNvcHkgOiBDb21w
b3NpdGVTb3VyY2VPdmVyOworI2Vsc2UKKyAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlcjsKKyNlbmRpZgogICAgICAgICAg
ICAgaWYgKG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25h
cHBlZEludFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBp
eGVsU25hcHBlZEludFJlY3QociksIGNvbXBvc2l0ZU9wZXJhdG9yLCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JT
cGFjZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgQmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICAgICAgICAg
IGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJH
QiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZU5v
cm1hbCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNTQ5LDcg
KzU4NCwxMiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNv
bnN0CiAjZWxzZQogICAgICAgICBVbmFjY2VsZXJhdGVkOwogI2VuZGlmCi0gICAgbV9pbWFnZUJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJpbmdNb2RlKTsKKyNpZiBFTkFCTEUoT1BBUVVFX0NB
TlZBUykKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IG1fb3BhcXVlID8gT3BhcXVlIDog
Tm9uT3BhcXVlOworI2Vsc2UKKyAgICBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSA9IE5vbk9wYXF1
ZTsKKyNlbmRpZgorICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9k
ZSwgb3BhY2l0eU1vZGUpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJu
OwogICAgIG1faW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+c2V0U2hhZG93c0lnbm9yZVRyYW5zZm9y
bXModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggYmY3
MTNkMzExZDdkYWY0ODFkYWI5Njk5OWQwNDljMDNlNGQwYTVjYi4uMjI5NWU5N2QzYTFlZTFkNjU3
Nzc4OWY1ZDE4ZGQ5OGM1NjJmNTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaApAQCAtNzQsMTEgKzc0LDE3IEBAIHB1YmxpYzoKICAgICAvLyBBdHRyaWJ1dGVzIGFu
ZCBmdW5jdGlvbnMgZXhwb3NlZCB0byBzY3JpcHQKICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBzaXplKCkud2lkdGgoKTsgfQogICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBz
aXplKCkuaGVpZ2h0KCk7IH0KKyNpZiBFTkFCTEUoT1BBUVVFX0NBTlZBUykKKyAgICBib29sIG9w
YXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BhcXVlOyB9CisjZW5kaWYKIAogICAgIGNvbnN0IElu
dFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAogICAgIHZvaWQgc2V0V2lk
dGgoaW50KTsKICAgICB2b2lkIHNldEhlaWdodChpbnQpOworI2lmIEVOQUJMRShPUEFRVUVfQ0FO
VkFTKQorICAgIHZvaWQgc2V0T3BhcXVlKGJvb2wpOworI2VuZGlmCiAKICAgICB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAgICB7IApAQCAtMTY1LDYgKzE3MSw5IEBAIHBy
aXZhdGU6CiAgICAgSGFzaFNldDxDYW52YXNPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogCiAgICAg
SW50U2l6ZSBtX3NpemU7CisjaWYgRU5BQkxFKE9QQVFVRV9DQU5WQVMpCisgICAgYm9vbCBtX29w
YXF1ZTsKKyNlbmRpZgogCiAgICAgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29u
dGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAppbmRleCBm
ZGJkZWZjZmU1ZjMwYzZhMjA3M2I3OWUxNjY4ZDVjMDA4ZjliYjE4Li40ZDAzMTg2YThiYTlkZjNi
NWVhYzY1MmIxYjRlOWQ3Nzc1MjIzYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbApAQCAtMzAsNiArMzAsOSBAQAogCiAgICAgYXR0cmlidXRlIGxvbmcgd2lk
dGg7CiAgICAgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OworI2lmIGRlZmluZWQoRU5BQkxFX09QQVFV
RV9DQU5WQVMpCisgICAgYXR0cmlidXRlIGJvb2xlYW4gb3BhcXVlOworI2VuZGlmCiAKICAgICBb
Q3VzdG9tXSBET01TdHJpbmcgdG9EYXRhVVJMKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdHlwZSkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAxZTRlNWQ0ZDQz
MzFjOTJiMWFlYWM4MjUzMTQzYTY0Mzg1ZDAzNDMxLi45NGNiYzYyZTBhNWEwY2UyY2QwMzUyNDdk
ZGY3NWEzYjQ5MmNmNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmgKQEAgLTc1LDE0ICs3NSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFVuc2NhbGVkCiAgICAgfTsKIAorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAg
ICBOb25PcGFxdWUsCisgICAgICAgIE9wYXF1ZSwKKyAgICB9OworCiAgICAgY2xhc3MgSW1hZ2VC
dWZmZXIgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gV2lsbCByZXR1cm4g
YSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgUGFz
c093blB0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZp
Y2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCisgICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0g
Q29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2Nl
bGVyYXRlZCwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUgPSBOb25PcGFxdWUpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgT3duUHRyPElt
YWdlQnVmZmVyPiBidWYgPSBhZG9wdFB0cihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlv
blNjYWxlLCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7CisgICAgICAgICAg
ICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZiA9IGFkb3B0UHRyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIG9wYWNpdHlNb2Rl
LCBzdWNjZXNzKSk7CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm4gYnVmLnJlbGVhc2UoKTsKQEAgLTE1
NSw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gVGhpcyBjb25z
dHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJs
ZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVy
biBmYWlsdXJlLgotICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsK
KyAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3Mp
OwogI2lmIFVTRShTS0lBKQogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxv
YXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBi
b29sIGhhc0FscGhhLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cAppbmRleCA5ZWJlZDlkNzAzMjYyNmM5NzE3OTBiNmM0MjFjN2ExMGRjMzJmNzJjLi5hMDQ3MmRj
OTljNzc4ZjViODBkNjJjYTE2ODZjZjNiODA1OWM0OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cApAQCAtNTQsNyArNTQsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25z
dCBJbnRTaXplJikKIHsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCAvKiByZXNvbHV0aW9uU2NhbGUgKi8sIENvbG9yU3BhY2UsIFJl
bmRlcmluZ01vZGUsIE9wYWNpdHlNb2RlLCBib29sJiBzdWNjZXNzKQogICAgIDogbV9kYXRhKHNp
emUpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fbG9naWNhbFNpemUoc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5j
cHAKaW5kZXggZTU3MzczMjMxNmRmYzBmZTM5YmU2NGRhYTQxN2Q4MDVjYWMwN2Q0Ny4uYjVjYTY4
NGQyNmY2YWQ2YmNjODgyM2U5NjNiOTA2OWNkZDk1MjkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNiw3
ICsxMDYsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlSW1hZ2VEYXRhKHZvaWQqLCBjb25zdCB2b2lk
KiBkYXRhLCBzaXplX3QpCiAgICAgZmFzdEZyZWUoY29uc3RfY2FzdDx2b2lkKj4oZGF0YSkpOwog
fQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVy
KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBp
bWFnZUNvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUs
IGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkgLy8gTk9URTogVGhlIGlucHV0IGhl
cmUgaXNuJ3QgaW1wb3J0YW50IGFzIEltYWdlQnVmZmVyRGF0YUNHJ3MgY29uc3RydWN0b3IganVz
dCBpZ25vcmVzIGl0LgogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0
aW9uU2NhbGUocmVzb2x1dGlvblNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNw
cAppbmRleCBlNDA2YzMwYmI5OWVmMzI5YTdlZTQ0Nzc3MjRhNDFhZWMyZjI1OTMwLi5kY2UzOTBl
ODQ3MDY4ZGY2NjI0MDM0ZGQ0M2JiYzE2MmE2NWYzMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQnJpZGdlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB1c2luZyBXZWJLaXQ6OldlYlRleHR1cmVV
cGRhdGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhbnZhczJETGF5ZXJCcmlkZ2U6OkNh
bnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9kZSB0aHJlYWRNb2RlLCB1bnNpZ25lZCB0ZXh0
dXJlSWQpCitDYW52YXMyRExheWVyQnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsIGNvbnN0IEludFNpemUmIHNpemUsIE9wYWNp
dHlNb2RlIG9wYWNpdHlNb2RlLCBUaHJlYWRNb2RlIHRocmVhZE1vZGUsIHVuc2lnbmVkIHRleHR1
cmVJZCkKICAgICA6IG1fYmFja0J1ZmZlclRleHR1cmUodGV4dHVyZUlkKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2NhbnZhcygwKQpAQCAtNjAsNyArNjAsNyBAQCBDYW52YXMyRExheWVy
QnJpZGdlOjpDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IGNvbnRleHQsCiAKICAgICBtX2xheWVyID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVFeHRlcm5hbFRleHR1cmVMYXllcih0
aGlzKSk7CiAgICAgbV9sYXllci0+c2V0VGV4dHVyZUlkKHRleHR1cmVJZCk7Ci0gICAgbV9sYXll
ci0+c2V0UmF0ZUxpbWl0Q29udGV4dCh0aHJlYWRNb2RlID09IFNpbmdsZVRocmVhZCk7CisgICAg
bV9sYXllci0+c2V0T3BhcXVlKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAgR3JhcGhpY3NM
YXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NhbnZhczJETGF5ZXJCcmlkZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuaAppbmRleCBiMzg2MzA0YzMzN2YzMDNhNjc0
NWU2YTkxZDk0YzZlOTVjZTUyMWJhLi5lYTUyYTM4MjdkNGJhZjk5MDExYTBlOTM5MThiMTZhNmYx
ZjNmYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5oCkBAIC00NCwxNCArNDQsMTgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FudmFzMkRMYXllckJyaWRnZSA6IHB1Ymxp
YyBXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyQ2xpZW50LCBwdWJsaWMgU2tEZWZlcnJl
ZENhbnZhczo6Tm90aWZpY2F0aW9uQ2xpZW50LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8
Q2FudmFzMkRMYXllckJyaWRnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhbnZhczJE
TGF5ZXJCcmlkZ2UpOwogcHVibGljOgorICAgIGVudW0gT3BhY2l0eU1vZGUgeworICAgICAgICBP
cGFxdWUsCisgICAgICAgIE5vbk9wYXF1ZQorICAgIH07CiAgICAgZW51bSBUaHJlYWRNb2RlIHsK
ICAgICAgICAgU2luZ2xlVGhyZWFkLAogICAgICAgICBUaHJlYWRlZAogICAgIH07CiAKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgVGhyZWFkTW9k
ZSB0aHJlYWRpbmcsIHVuc2lnbmVkIHRleHR1cmVJZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxD
YW52YXMyRExheWVyQnJpZGdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgT3BhY2l0eU1vZGUgb3BhY2l0eU1vZGUsIFRo
cmVhZE1vZGUgdGhyZWFkaW5nLCB1bnNpZ25lZCB0ZXh0dXJlSWQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENhbnZhczJETGF5ZXJCcmlkZ2UoY29udGV4dCwgc2l6ZSwgdGhy
ZWFkaW5nLCB0ZXh0dXJlSWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYW52YXMy
RExheWVyQnJpZGdlKGNvbnRleHQsIHNpemUsIG9wYWNpdHlNb2RlLCB0aHJlYWRpbmcsIHRleHR1
cmVJZCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNhbnZhczJETGF5ZXJCcmlkZ2UoKTsKQEAg
LTgwLDcgKzg0LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGJhY2tCdWZmZXJUZXh0dXJlKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+LCBjb25zdCBJbnRTaXplJiwgVGhyZWFkTW9kZSwgdW5zaWduZWQgdGV4dHVy
ZUlkKTsKKyAgICBDYW52YXMyRExheWVyQnJpZGdlKFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0
M0Q+LCBjb25zdCBJbnRTaXplJiwgT3BhY2l0eU1vZGUsIFRocmVhZE1vZGUsIHVuc2lnbmVkIHRl
eHR1cmVJZCk7CiAKICAgICB1bnNpZ25lZCBtX2JhY2tCdWZmZXJUZXh0dXJlOwogICAgIEludFNp
emUgbV9zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCAxYmNkZWU5NDVkNTE0ZDQzM2NlOGM5M2VkYjdjZjUx
YmM3Yzc4NDk3Li4xOWU4ZDVhNjIwYWM3ZGRiODFkNmJjZTdjYjM5MWZiNGI1OWMyYmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZl
clF0LmNwcApAQCAtOTQsNyArOTQsNyBAQCBRSW1hZ2UgSW1hZ2VCdWZmZXJEYXRhOjp0b1FJbWFn
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1JbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgLyogcmVzb2x1dGlvblNjYWxlICovLCBDb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdl
QnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IC8qIHJlc29sdXRpb25TY2FsZSAqLywg
Q29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgT3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAg
ICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1fc2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6
ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDYxMzA5ZmFkNDdjNWVlYmZiOGU0ZWE0MGY0
ZWU5NDlhYjcwMDlmNjQuLjkwZTI2NzEyOWE2NWU3ZGVjNGM2MTIwYmUxMzk1ZjNjNTAxMTBiMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VC
dWZmZXJTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgSW1hZ2VCdWZmZXJEYXRhOjpJ
bWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKIH0KIAotc3RhdGljIFNrQ2Fu
dmFzKiBjcmVhdGVBY2NlbGVyYXRlZENhbnZhcyhjb25zdCBJbnRTaXplJiBzaXplLCBJbWFnZUJ1
ZmZlckRhdGEqIGRhdGEpCitzdGF0aWMgU2tDYW52YXMqIGNyZWF0ZUFjY2VsZXJhdGVkQ2FudmFz
KGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQnVmZmVyRGF0YSogZGF0YSwgT3BhY2l0eU1vZGUg
b3BhY2l0eU1vZGUpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0M0Qg
PSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCk7CiAgICAgaWYgKCFjb250ZXh0M0QpCkBA
IC05NCw3ICs5NCw4IEBAIHN0YXRpYyBTa0NhbnZhcyogY3JlYXRlQWNjZWxlcmF0ZWRDYW52YXMo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSW1hZ2VCdWZmZXJEYXRhKiBkCiAgICAgU2tBdXRvVFVucmVm
PFNrRGV2aWNlPiBkZXZpY2UobmV3IFNrR3B1RGV2aWNlKGdyLCB0ZXh0dXJlLmdldCgpKSk7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6
OlRocmVhZE1vZGUgdGhyZWFkTW9kZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aXNU
aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID8gQ2FudmFzMkRMYXllckJyaWRnZTo6VGhyZWFk
ZWQgOiBDYW52YXMyRExheWVyQnJpZGdlOjpTaW5nbGVUaHJlYWQ7Ci0gICAgZGF0YS0+bV9sYXll
ckJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShjb250ZXh0M0QucmVsZWFzZSgp
LCBzaXplLCB0aHJlYWRNb2RlLCB0ZXh0dXJlLmdldCgpLT5nZXRUZXh0dXJlSGFuZGxlKCkpOwor
ICAgIENhbnZhczJETGF5ZXJCcmlkZ2U6Ok9wYWNpdHlNb2RlIGJyaWRnZU9wYWNpdHlNb2RlID0g
b3BhY2l0eU1vZGUgPT0gT3BhcXVlID8gQ2FudmFzMkRMYXllckJyaWRnZTo6T3BhcXVlIDogQ2Fu
dmFzMkRMYXllckJyaWRnZTo6Tm9uT3BhcXVlOworICAgIGRhdGEtPm1fbGF5ZXJCcmlkZ2UgPSBD
YW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUoY29udGV4dDNELnJlbGVhc2UoKSwgc2l6ZSwgYnJp
ZGdlT3BhY2l0eU1vZGUsIHRocmVhZE1vZGUsIHRleHR1cmUuZ2V0KCktPmdldFRleHR1cmVIYW5k
bGUoKSk7CiAgICAgY2FudmFzID0gZGF0YS0+bV9sYXllckJyaWRnZS0+c2tDYW52YXMoZGV2aWNl
LmdldCgpKTsKICNlbHNlCiAgICAgY2FudmFzID0gbmV3IFNrQ2FudmFzKGRldmljZS5nZXQoKSk7
CkBAIC0xNTEsNyArMTUyLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNp
emUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBzdWNjZXNz
ID0gdHJ1ZTsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlLCBPcGFjaXR5TW9kZSBvcGFjaXR5TW9kZSwgYm9vbCYgc3Vj
Y2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX2xv
Z2ljYWxTaXplKHNpemUpCkBAIC0xNjAsNyArMTYxLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVm
ZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwKICAgICBPd25QdHI8U2tDYW52YXM+IGNhbnZhczsKIAogICAgIGlmIChyZW5kZXJpbmdNb2Rl
ID09IEFjY2VsZXJhdGVkKQotICAgICAgICBjYW52YXMgPSBhZG9wdFB0cihjcmVhdGVBY2NlbGVy
YXRlZENhbnZhcyhzaXplLCAmbV9kYXRhKSk7CisgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNy
ZWF0ZUFjY2VsZXJhdGVkQ2FudmFzKHNpemUsICZtX2RhdGEsIG9wYWNpdHlNb2RlKSk7CiAgICAg
ZWxzZSBpZiAocmVuZGVyaW5nTW9kZSA9PSBVbmFjY2VsZXJhdGVkTm9uUGxhdGZvcm1CdWZmZXIp
CiAgICAgICAgIGNhbnZhcyA9IGFkb3B0UHRyKGNyZWF0ZU5vblBsYXRmb3JtQ2FudmFzKHNpemUp
KTsKIApAQCAtMTc1LDEzICsxNzYsMTYgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0
IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwKICAgICBt
X2RhdGEubV9jYW52YXMgPSBjYW52YXMucmVsZWFzZSgpOwogICAgIG1fZGF0YS5tX3BsYXRmb3Jt
Q29udGV4dC5zZXRDYW52YXMobV9kYXRhLm1fY2FudmFzLmdldCgpKTsKICAgICBtX2NvbnRleHQg
PSBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQp
KTsKLSAgICBtX2NvbnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKGZhbHNlKTsKKyAgICBtX2Nv
bnRleHQtPnNldFNob3VsZFNtb290aEZvbnRzKG9wYWNpdHlNb2RlID09IE9wYXF1ZSk7CiAgICAg
bV9jb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1dGlv
blNjYWxlKSk7CiAKLSAgICAvLyBNYWtlIHRoZSBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50LiBJdCB3
b3VsZCBiZSBuaWNlIGlmIHRoaXMgd2Fzbid0CisgICAgLy8gQ2xlYXIgdGhlIGJhY2tncm91bmQg
dHJhbnNwYXJlbnQgb3Igb3BhcXVlLCBhcyByZXF1aXJlZC4gSXQgd291bGQgYmUgbmljZSBpZiB0
aGlzIHdhc24ndAogICAgIC8vIHJlcXVpcmVkLCBidXQgdGhlIGNhbnZhcyBpcyBjdXJyZW50bHkg
ZmlsbGVkIHdpdGggdGhlIG1hZ2ljIHRyYW5zcGFyZW5jeQogICAgIC8vIGNvbG9yLiBDYW4gd2Ug
aGF2ZSBhbm90aGVyIHdheSB0byBtYW5hZ2UgdGhpcz8KLSAgICBtX2RhdGEubV9jYW52YXMtPmRy
YXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9Nb2RlKTsKKyAgICBpZiAob3Bh
Y2l0eU1vZGUgPT0gT3BhcXVlKQorICAgICAgICBtX2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDI1
NSwgMCwgMCwgMCwgU2tYZmVybW9kZTo6a1NyY19Nb2RlKTsKKyAgICBlbHNlIAorICAgICAgICBt
X2RhdGEubV9jYW52YXMtPmRyYXdBUkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9N
b2RlKTsKIAogICAgIHN1Y2Nlc3MgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRl
eCBmZDQxZTEyNGJlYjczMWNkN2IxMmIwN2I3NzI5NWMyYzc3MTZlMWYyLi43MzJlNzQ5NmE4MDMx
NGE0MDAwOGFhNWViZDQyNzA2ZjQyOTIyODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAt
NzEsNyArNzEsNyBAQCBJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRT
aXplJiBzaXplKQogICAgIG1fYml0bWFwLT5zZXRIYXNBbHBoYSh0cnVlKTsKIH0KIAotSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KQorSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBPcGFj
aXR5TW9kZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IG1fZGF0YShzaXplKQogICAgICwgbV9zaXpl
KHNpemUpCiAgICAgLCBtX2xvZ2ljYWxTaXplKHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCmluZGV4IDlmMDFlYTIz
MDAyMDhiZjZmMTYwYTUwZDJhZWQ4ZjdlMjBkNThkOGMuLjc3OTQzODAzYmNlNDIyOWVhNTZmNDg2
NjE2YWU5MWU5NmFiNTc4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0ltYWdlQnVmZmVyV3guY3BwCkBAIC05NCw3ICs5NCw3IEBAIEltYWdlQnVm
ZmVyRGF0YTo6fkltYWdlQnVmZmVyRGF0YSgpCiAgICAgZGVsZXRlIG1fbWVtREM7CiB9CiAKLUlt
YWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3Vj
Y2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwg
T3BhY2l0eU1vZGUsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBtX2RhdGEoc2l6ZSkKICAgICAsIG1f
c2l6ZShzaXplKQogICAgICwgbV9sb2dpY2FsU2l6ZShzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCmluZGV4IGUyYjgzYzRmN2E5M2ViYjIyZWI2ZDRhNzYxZDkwMWE0NzA5NTBk
YzYuLjJkMGIzZTM5NzZlZmY3M2EyOTgzZjBiMzliOTU2MmQ3OTAwNTRmZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTk4LDYgKzk4LDcgQEAKICAgICAgICdFTkFCTEVf
TUlDUk9EQVRBPTAnLAogICAgICAgJ0VOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU9MScsCiAgICAg
ICAnRU5BQkxFX05PU05JRkY9MScsCisgICAgICAnRU5BQkxFX09QQVFVRV9DQU5WQVM9MScsCiAg
ICAgICAnRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAgICAnRU5BQkxFX1BFUkZP
Uk1BTkNFX1RJTUVMSU5FPTEnLAogICAgICAgJ0VOQUJMRV9QT0lOVEVSX0xPQ0s9MScsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRn
ZVRlc3QuY3BwCmluZGV4IDZmMjYxYmEzYzlmOTUxMDg1NmNjNjkzNTMzYTMzZWEzNGQ0NTczNzEu
LmQ5MTRjMDE5NTNjMTIwOWU3NWRlNTI2OTlkNjBiOTA4NDdhMWIyNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3Qu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgV2ViR0xJZCBiYWNrVGV4
dHVyZUlkID0gMTsKICAgICAgICAgV2ViR0xJZCBmcm9udFRleHR1cmVJZCA9IDE7CiAKLSAgICAg
ICAgT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGJyaWRnZSA9IENhbnZhczJETGF5ZXJCcmlk
Z2U6OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgc2l6ZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1
cmVJZCk7CisgICAgICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBicmlkZ2UgPSBDYW52
YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIHNpemUsIENhbnZhczJE
TGF5ZXJCcmlkZ2U6Ok5vbk9wYXF1ZSwgdGhyZWFkTW9kZSwgYmFja1RleHR1cmVJZCk7CiAKICAg
ICAgICAgOjp0ZXN0aW5nOjpNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmbWFpbk1v
Y2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJNYW5hZ2VyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZh
czJETGF5ZXJNYW5hZ2VyVGVzdC5jcHAKaW5kZXggMjk3NzNhZWNiMjA5Njk3MmEzNWFjZGY3YmJk
Yzg1M2FkYTk0YzZiZi4uODJjZmY4YWU5YmM5ZDZkOWFmZTAyYzA0Y2MyMzM2ODE2OWU3M2U0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyTWFu
YWdlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRM
YXllck1hbmFnZXJUZXN0LmNwcApAQCAtNDIsNyArNDIsNyBAQCB1c2luZyB0ZXN0aW5nOjpUZXN0
OwogY2xhc3MgRmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UgOiBwdWJsaWMgQ2FudmFzMkRMYXllckJy
aWRnZSB7CiBwdWJsaWM6CiAgICAgRmFrZUNhbnZhczJETGF5ZXJCcmlkZ2UoKSAKLSAgICAgICAg
OiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3Jh
cGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IFdlYktpdDo6RmFrZVdlYkdy
YXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSksIFNpbmdsZVRocmVhZCwgMCkKKyAgICAg
ICAgOiBDYW52YXMyRExheWVyQnJpZGdlKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRl
R3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQoYWRvcHRQdHIobmV3IFdlYktpdDo6RmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNEKSksIEludFNpemUoMSwgMSksIE5vbk9wYXF1ZSwgU2luZ2xlVGhy
ZWFkLCAwKQogICAgICAgICAsIG1fZnJlZWFibGVCeXRlcygwKQogICAgICAgICAsIG1fZnJlZU1l
bW9yeUlmUG9zc2libGVDb3VudCgwKQogICAgICAgICAsIG1fZmx1c2hDb3VudCgwKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDY1MjdlYzFiZWM3MzU3NjY4NTFlOTE5YTUzOWI2NzZjZGE0YTU0YjguLmY0MTRhMjE0NDljMDEy
NGVkNTRkZDQyNzhhYWQxYmJmNzhlNzMzYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0w
My0xOCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBJbXBsZW1lbnQgIm9wYXF1ZSIgYXR0cmlidXRlIGZvciA8Y2FudmFzPgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjI0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9vcGFxdWUuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvb3BhcXVlLmpzOiBBZGRlZC4KKwogMjAxMy0w
My0yMiAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBNYXJrIG1vcmUgdGVzdHMgYXMgY3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvb3BhcXVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjdiMDdkZTE1YjYzMjRmZWY3
ZDFiZDZkNDgwNWY2OGU5MWEyYjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvb3BhcXVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitTZXJpZXMgb2Yg
dGVzdHMgZm9yIGNhbnZhcy5vcGFxdWUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgY2FudmFzLm9wYXF1ZSBpcyBmYWxzZQorUEFTUyBpbWdEYXRhLmRhdGFbMF0gaXMgMAor
UEFTUyBpbWdEYXRhLmRhdGFbMV0gaXMgMAorUEFTUyBpbWdEYXRhLmRhdGFbMl0gaXMgMAorUEFT
UyBpbWdEYXRhLmRhdGFbM10gaXMgMAorUEFTUyBvcGFxdWVDYW52YXMub3BhcXVlIGlzIHRydWUK
K1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzBdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRh
WzFdIGlzIDAKK1BBU1Mgb3BhcXVlSW1nRGF0YS5kYXRhWzJdIGlzIDAKK1BBU1Mgb3BhcXVlSW1n
RGF0YS5kYXRhWzNdIGlzIDI1NQorUEFTUyBvcGFxdWVDYW52YXMub3BhcXVlIGlzIGZhbHNlCitQ
QVNTIGZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzBdIGlzIDAKK1BBU1MgZm9ybWVybHlPcGFx
dWVJbWdEYXRhLmRhdGFbMV0gaXMgMAorUEFTUyBmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsy
XSBpcyAwCitQQVNTIGZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzNdIGlzIDAKK1BBU1MgY2Fu
dmFzLm9wYXF1ZSBpcyB0cnVlCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVswXSBpcyAwCitQQVNT
IG9wYXF1ZUltZ0RhdGEuZGF0YVsxXSBpcyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVsyXSBp
cyAwCitQQVNTIG9wYXF1ZUltZ0RhdGEuZGF0YVszXSBpcyAyNTUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFx
dWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZGFlOTg2Y2JmYmRlNzA2NjhlY2EwNTUzYTc4YzJmNGE4YzYx
MTIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCI+PC9j
YW52YXM+Cis8Y2FudmFzIGlkPSJvcGFxdWVDYW52YXMiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIG9w
YXF1ZT48L2NhbnZhcz4KKzxzY3JpcHQgc3JjPSJvcGFxdWUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvb3BhcXVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTRhNTg4
MWI4NTQ4OGVlZWNkOGYxNDYwMTNjNTI2YTk4NmU5MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9vcGFxdWUuanMKQEAgLTAsMCArMSwzMSBAQAorZGVzY3JpcHRp
b24oIlNlcmllcyBvZiB0ZXN0cyBmb3IgY2FudmFzLm9wYXF1ZSIpOwordmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKK3ZhciBvcGFxdWVDYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib3BhcXVlQ2FudmFzIik7Cit2YXIgY3R4ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIik7Cit2YXIgb3BhcXVlQ3R4ID0gb3BhcXVlQ2FudmFzLmdldENvbnRleHQo
IjJkIik7Cit2YXIgaW1nRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7CitzaG91
bGRCZSgiY2FudmFzLm9wYXF1ZSIsICJmYWxzZSIpOworc2hvdWxkQmUoImltZ0RhdGEuZGF0YVsw
XSIsICIwIik7CitzaG91bGRCZSgiaW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJp
bWdEYXRhLmRhdGFbMl0iLCAiMCIpOworc2hvdWxkQmUoImltZ0RhdGEuZGF0YVszXSIsICIwIik7
Cit2YXIgb3BhcXVlSW1nRGF0YSA9IG9wYXF1ZUN0eC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7
CitzaG91bGRCZSgib3BhcXVlQ2FudmFzLm9wYXF1ZSIsICJ0cnVlIik7CitzaG91bGRCZSgib3Bh
cXVlSW1nRGF0YS5kYXRhWzBdIiwgIjAiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFb
MV0iLCAiMCIpOworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVsyXSIsICIwIik7CitzaG91
bGRCZSgib3BhcXVlSW1nRGF0YS5kYXRhWzNdIiwgIjI1NSIpOworb3BhcXVlQ2FudmFzLnJlbW92
ZUF0dHJpYnV0ZSgnb3BhcXVlJyk7Cit2YXIgZm9ybWVybHlPcGFxdWVJbWdEYXRhID0gb3BhcXVl
Q3R4LmdldEltYWdlRGF0YSgwLCAwLCAxLCAxKTsKK3Nob3VsZEJlKCJvcGFxdWVDYW52YXMub3Bh
cXVlIiwgImZhbHNlIik7CitzaG91bGRCZSgiZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbMF0i
LCAiMCIpOworc2hvdWxkQmUoImZvcm1lcmx5T3BhcXVlSW1nRGF0YS5kYXRhWzFdIiwgIjAiKTsK
K3Nob3VsZEJlKCJmb3JtZXJseU9wYXF1ZUltZ0RhdGEuZGF0YVsyXSIsICIwIik7CitzaG91bGRC
ZSgiZm9ybWVybHlPcGFxdWVJbWdEYXRhLmRhdGFbM10iLCAiMCIpOworY2FudmFzLnNldEF0dHJp
YnV0ZSgnb3BhcXVlJywgJ3RydWUnKTsKK29wYXF1ZUltZ0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRh
KDAsIDAsIDEsIDEpOworc2hvdWxkQmUoImNhbnZhcy5vcGFxdWUiLCAidHJ1ZSIpOworc2hvdWxk
QmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVswXSIsICIwIik7CitzaG91bGRCZSgib3BhcXVlSW1nRGF0
YS5kYXRhWzFdIiwgIjAiKTsKK3Nob3VsZEJlKCJvcGFxdWVJbWdEYXRhLmRhdGFbMl0iLCAiMCIp
Oworc2hvdWxkQmUoIm9wYXF1ZUltZ0RhdGEuZGF0YVszXSIsICIyNTUiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTAyODUwNDFkNTkyMjAwM2VmMmUw
YjhkODlhNmE3NjdjZWJkMWVlYy4uM2NiYWUyMmEyMzdhMzAzMzhiZjQxYjBlNzJkMDUxYzkyOTRh
ODllYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0
NDEsNiArMTQ0MSw4IEBAIHdlYmtpdC5vcmcvYi8xMTE2MDYgZmFzdC9ib3JkZXJzL2JvcmRlci1m
aXQtMi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMTE2MDYgZmFzdC9ib3Jk
ZXJzL2JvcmRlci1maXQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTExNjA2
IGZhc3QvcmVwYWludC9ib3JkZXItZml0LWxpbmVzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCisj
IEZlYXR1cmUgbm90IGltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvMTEyNjI0IGZhc3QvY2FudmFz
L29wYXF1ZS5odG1sIFsgU2tpcCBdCiAKICMgRmxha2V5CiB3ZWJraXQub3JnL2IvMTEyNTMzIG1l
ZGlhL2F1dG8tcGxheS1pbi1zYW5kYm94LXdpdGgtYWxsb3ctc2NyaXB0cy5odG1sIFsgUGFzcyBG
YWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>