<?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>107083</bug_id>
          
          <creation_ts>2013-01-16 18:43:07 -0800</creation_ts>
          <short_desc>Introduce BackgroundHTMLParser for parsing HTML on a background thread</short_desc>
          <delta_ts>2013-01-16 19:20:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>808962</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 18:43:07 -0800</bug_when>
    <thetext>Introduce BackgroundHTMLParser for parsing HTML on a background thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808965</commentid>
    <comment_count>1</comment_count>
      <attachid>183091</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 18:49:40 -0800</bug_when>
    <thetext>Created attachment 183091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808966</commentid>
    <comment_count>2</comment_count>
      <attachid>183091</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-16 18:52:03 -0800</bug_when>
    <thetext>Comment on attachment 183091
Patch

This is very primitive.  But looks OK.  I&apos;m not sure I&apos;m your ideal reviewer having written much of this, but that&apos;s true of tony too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808968</commentid>
    <comment_count>3</comment_count>
      <attachid>183091</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 18:56:51 -0800</bug_when>
    <thetext>Comment on attachment 183091
Patch

Clearing flags on attachment: 183091

Committed r139950: &lt;http://trac.webkit.org/changeset/139950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808969</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 18:56:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808980</commentid>
    <comment_count>5</comment_count>
      <attachid>183091</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-16 19:06:41 -0800</bug_when>
    <thetext>Comment on attachment 183091
Patch

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:106
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, iframeTag, (&quot;iframe&quot;, AtomicString::ConstructFromLiteral));

Is it worth adding a FIXME about our plan for AtomicStrings?

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:164
&gt; +class TokenDelivery {

Mark this noncopyable?

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:175
&gt; +        delete delivery;

Is there anything we can do better than a naked delete?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808985</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 19:17:27 -0800</bug_when>
    <thetext>Sorry, this patch already landed.  I&apos;m posting a followup patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808988</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-16 19:20:00 -0800</bug_when>
    <thetext>Followup is in bug 107086</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183091</attachid>
            <date>2013-01-16 18:49:40 -0800</date>
            <delta_ts>2013-01-16 19:06:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107083-20130116184641.patch</filename>
            <type>text/plain</type>
            <size>29831</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZkNGIwOTE4YjA2NDg0
MmQxYjI1ZWYwY2Y3NjIwNmQ3ZThmMjM2YS4uMTdhYTE0YjYwYjhkN2I2ODdlYjAxZGMwMzlkYTk2
ODM3MGFkZTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAxLTE2ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIEJhY2tncm91
bmRIVE1MUGFyc2VyIGZvciBwYXJzaW5nIEhUTUwgb24gYSBiYWNrZ3JvdW5kIHRocmVhZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MDgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
b250YWlucyBhIGJhc2ljIHZlcnNpb24gb2YgYW4gSFRNTCBwYXJzZXIgdGhhdCBydW5zIG9uIGEK
KyAgICAgICAgYmFja2dyb3VuZCB0aHJlYWQuIFRoZSBwYXJzZXIgcGFzc2VzIHRoZSBtYWpvcml0
eSBvZiB0aGUgdGVzdHMgaW4KKyAgICAgICAgZmFzdC9wYXJzZXIgYW5kIGEgbGFyZ2UgbnVtYmVy
IG9mIHRoZSBzdWJ0ZXN0cyBpbiBodG1sNWxpYi4KKworICAgICAgICBOb3RhYmx5IGFic2VudCBm
cm9tIHRoaXMgZWFybHkgdmVyc2lvbiBvZiB0aGUgcGFyc2VyIGlzIHNwZWN1bGF0aW9uCisgICAg
ICAgICh3aGljaCB3aWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBwcmVsb2FkIHNjYW5uaW5nKSBhbmQg
YXRvbWl6YXRpb24gKHdoaWNoCisgICAgICAgIHdlIHN1c3BlY3Qgd2lsbCBiZSBpbXBvcnRhbnQg
Zm9yIHBlcmZvcm1hbmNlKS4gT3VyIHBsYW4gaXMgdG8gaW50cm9kdWNlCisgICAgICAgIHRob3Nl
IGVsZW1lbnRzIGluIHN1YnNlcXVlbnQgcGF0Y2hlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrVGhhdFRva2Vuc0Fy
ZVNhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VyTWFw
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhcnNlck1hcDo6YmFja2dyb3VuZFBhcnNlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFyc2VyTWFwOjptYWluVGhyZWFkUGFyc2Vycyk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OmFwcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y29udGludWVQYXJzaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAgICAgICAoVG9rZW5E
ZWxpdmVyeSk6CisgICAgICAgIChXZWJDb3JlOjpUb2tlbkRlbGl2ZXJ5OjpleGVjdXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhy
ZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpjcmVhdGVQYXJ0
aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpzdG9wUGFydGlh
bCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6YXBwZW5kUGFydGlh
bCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y29udGludWVQYXJ0
aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2hQYXJ0
aWFsKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQmFja2dyb3VuZEhUTUxQYXJzZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZSk6CisgICAgICAg
IChQYXJzZXJNYXApOgorICAgICAgICAoV2ViQ29yZTo6UGFyc2VyTWFwOjppZGVudGlmaWVyRm9y
UGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6
OmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEhUTUxEb2N1bWVudFBhcnNlcik6CisKIDIwMTMtMDEtMTYgIFRvbnkgR2VudGlsY29yZSAgPHRv
bnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBDb21wYWN0SFRNTFRva2Vu
IGZvciB0aGUgdGhyZWFkZWQgSFRNTCBwYXJzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmQ0
ZWMwYTcxYzFjM2RjYjYxNjY2YTVlODgyM2ZjM2U1ZjI2MGM4NS4uN2Y2ZWE4NTQzOGZjZGMxY2Y3
MjQ2M2ZhNDYxNWJmMDMxNmRkN2RkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MjYsNiAr
MTUyNiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZv
cm1Mb2NhdGlvbi5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmNwcAogCisgICAgaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCiAgICAgaHRt
bC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCiAgICAgaHRtbC9wYXJzZXIvQ29tcGFjdEhU
TUxUb2tlbi5jcHAKICAgICBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGVhZjY4ODgwYTFkMDFiNTA2YzhmNjUyMDc5
N2RiY2UzM2U0OGZkMjEuLjA1ZjJhYTZlMWEzNDYyM2U0MGRjZjA5OTgyYzkzZDU4YjMwZTBmNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzUzMCw2ICszNTMwLDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1M
VG9rZW4uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDFiNjhlNWY3OGI0NzhmZWI1YmViMzFkM2UxNTM0
MTczYjkyZTBkOGEuLmY2ZDYwODI5NjM4YTE3ODVkZGQ5NmRiZWJmNGEzYjc2YWQ5NTNmZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtNzA3LDYgKzcwNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZh
c1N0eWxlLmNwcCBcCiAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKKyAgICBodG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL0NTU1ByZWxv
YWRTY2FubmVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAgXAog
ICAgIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggZGJhMGE1OWI4MWU0ODBjNjZjM2U2ZjFmYzE3NThjYTExNjc3YjIyYy4uYjQ2MGRhOTE0
NzhkYzIwZjZjZGM0NGQ1ZmM0YjlmZjBiNjY0OGY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzMz
Myw2ICszMzMzLDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oJywKKyAgICAgICAgICAgICdodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5j
cHAnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRt
bC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiNDVkMjZlMTcwNjViNjA0NDA5NGE3NmY0NTNh
MzYyZWUyMDlmODY0Li45NTExODU4Yzk3MjRkYWFmYjI2MzQyMzZiMzFkODQwODdhYzAwOGQ4IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjQ1
MzcsNiArNjQ1MzcsMTQgQEAKIAkJCQlOYW1lPSJwYXJzZXIiCiAJCQkJPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcQmFja2dyb3VuZEhUTUxQYXJzZXIuY3Bw
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aHRtbFxwYXJzZXJcQmFja2dyb3VuZEhUTUxQYXJzZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXENTU1ByZWxvYWRT
Y2FubmVyLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYzY4NDkyYjI3NThkYmY3Yjg4
ZWQxMjc2MDY0YTdlYmVjYTJmMGVhLi5jNmMyY2I5YzNjMzViN2E0ZTJiOGVhZWE3MmI5YzU0MGMx
OTc0OGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNjI0LDggKzM2MjQsNiBAQAogCQk5NzdCMzcyNjEyMjg3MjE3MDBCODFG
RjggLyogSFRNTFRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzdCMzcyMjEyMjg3MjE3MDBCODFGRjggLyogSFRNTFRyZWVCdWlsZGVy
LmggKi87IH07CiAJCTk3N0IzODYyMTIyODgzRTkwMEI4MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdC
Mzg0OTEyMjg4M0U5MDBCODFGRjggLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3BwICovOyB9OwogCQk5
NzdCMzg2MzEyMjg4M0U5MDBCODFGRjggLyogQ1NTUHJlbG9hZFNjYW5uZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0IzODRBMTIyODgzRTkwMEI4
MUZGOCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5oICovOyB9OwotCQk5NzdCMzg2MjEyMjg4M0U5MDBC
ODFGRjkgLyogQ29tcGFjdEhUTUxUb2tlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg0OTEyMjg4M0U5MDBCODFGRjkgLyogQ29tcGFjdEhU
TUxUb2tlbi5jcHAgKi87IH07Ci0JCTk3N0IzODYzMTIyODgzRTkwMEI4MUZGOSAvKiBDb21wYWN0
SFRNTFRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzdCMzg0QTEyMjg4M0U5MDBCODFGRjkgLyogQ29tcGFjdEhUTUxUb2tlbi5oICovOyB9Owog
CQk5NzdCMzg2NDEyMjg4M0U5MDBCODFGRjggLyogSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3QjM4NEIxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCAqLzsgfTsKIAkJOTc3QjM4
NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg0QzEyMjg4M0U5MDBCODFG
RjggLyogSFRNTENvbnN0cnVjdGlvblNpdGUuaCAqLzsgfTsKIAkJOTc3QjM4NjYxMjI4ODNFOTAw
QjgxRkY4IC8qIEhUTUxEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg0RDEyMjg4M0U5MDBCODFGRjggLyogSFRNTERv
Y3VtZW50UGFyc2VyLmNwcCAqLzsgfTsKQEAgLTM2NjEsNiArMzY1OSwxMCBAQAogCQk5NzhEMDdD
QTE0NUExMDE2MDA5NjkwOEQgLyogU1ZHRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OEQwN0M5MTQ1QTEwMTYwMDk2OTA4RCAvKiBT
VkdFeGNlcHRpb24uY3BwICovOyB9OwogCQk5NzhEMDdDQzE0NUExMDJFMDA5NjkwOEQgLyogWFBh
dGhFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTc4RDA3Q0IxNDVBMTAyRTAwOTY5MDhEIC8qIFhQYXRoRXhjZXB0aW9uLmNwcCAqLzsg
fTsKIAkJOTc4RDA3Q0UxNDVBMTAzNzAwOTY5MDhEIC8qIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OEQw
N0NEMTQ1QTEwMzcwMDk2OTA4RCAvKiBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgKi87IH07
CisJCTk3OURDMDM2MTZBNzk5MkEwMDgwNzc5NCAvKiBDb21wYWN0SFRNTFRva2VuLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OURDMDMzMTZBNzk5
MjEwMDgwNzc5NCAvKiBDb21wYWN0SFRNTFRva2VuLmNwcCAqLzsgfTsKKwkJOTc5REMwMzcxNkE3
OTkyRTAwODA3Nzk0IC8qIENvbXBhY3RIVE1MVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OURDMDM0MTZBNzk5MjEwMDgwNzc5NCAvKiBDb21w
YWN0SFRNTFRva2VuLmggKi87IH07CisJCTk3OURDMDM4MTZBNzk5MzMwMDgwNzc5NCAvKiBCYWNr
Z3JvdW5kSFRNTFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTc5REMwMzIxNkE3OTkyMTAwODA3Nzk0IC8qIEJhY2tncm91bmRIVE1MUGFyc2Vy
LmggKi87IH07CisJCTk3OURDMDM5MTZBNzk5MzkwMDgwNzc5NCAvKiBCYWNrZ3JvdW5kSFRNTFBh
cnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzlEQzAzMTE2QTc5OTIxMDA4MDc3OTQgLyogQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwICovOyB9
OwogCQk5NzlGNDNEMzEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzlGNDNEMTEw
NzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgKi87IH07CiAJCTk3OUY0
M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzlGNDNEMjEwNzVFNDRBMDAwMEY4
M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTk3QUEzQ0E1MTQ1MjM3Q0MwMDNFMURBNiAvKiBFdmVudFRh
cmdldEhlYWRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3QUEzQ0EzMTQ1MjM3Q0MwMDNFMURBNiAvKiBFdmVudFRhcmdldEhlYWRlcnMuaCAqLzsg
fTsKQEAgLTExMDAyLDggKzExMDA0LDYgQEAKIAkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8q
IEhUTUxUcmVlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1M
VHJlZUJ1aWxkZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc3QjM4NDkxMjI4ODNFOTAwQjgxRkY4IC8qIENTU1ByZWxv
YWRTY2FubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTU1By
ZWxvYWRTY2FubmVyLmNwcDsgcGF0aCA9IHBhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3N0IzODRBMTIyODgzRTkwMEI4MUZGOCAvKiBD
U1NQcmVsb2FkU2Nhbm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDU1NQ
cmVsb2FkU2Nhbm5lci5oOyBwYXRoID0gcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3N0IzODQ5MTIyODgzRTkwMEI4MUZGOSAvKiBDb21w
YWN0SFRNTFRva2VuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENv
bXBhY3RIVE1MVG9rZW4uY3BwOyBwYXRoID0gcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzdCMzg0QTEyMjg4M0U5MDBCODFGRjkgLyog
Q29tcGFjdEhUTUxUb2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb21w
YWN0SFRNTFRva2VuLmg7IHBhdGggPSBwYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NzdCMzg0QjEyMjg4M0U5MDBCODFGRjggLyogSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc3QjM4NEMxMjI4ODNFOTAw
QjgxRkY4IC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmg7IHBhdGggPSBwYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc3QjM4NEQxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxEb2N1bWVudFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MRG9jdW1lbnRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MTA0MSw2ICsxMTA0MSwxMCBAQAogCQk5NzhEMDdDOTE0NUExMDE2MDA5NjkwOEQgLyogU1ZHRXhj
ZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0V4Y2Vw
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OEQwN0NCMTQ1QTEwMkUw
MDk2OTA4RCAvKiBYUGF0aEV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBYUGF0aEV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3OEQwN0NEMTQ1QTEwMzcwMDk2OTA4RCAvKiBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3OURDMDMxMTZBNzk5
MjEwMDgwNzc5NCAvKiBCYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA7IHBhdGggPSBwYXJz
ZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NzlEQzAzMjE2QTc5OTIxMDA4MDc3OTQgLyogQmFja2dyb3VuZEhUTUxQYXJzZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmFja2dyb3VuZEhUTUxQYXJzZXIuaDsgcGF0
aCA9IHBhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NzlEQzAzMzE2QTc5OTIxMDA4MDc3OTQgLyogQ29tcGFjdEhUTUxUb2tlbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb21wYWN0SFRNTFRva2VuLmNw
cDsgcGF0aCA9IHBhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTc5REMwMzQxNkE3OTkyMTAwODA3Nzk0IC8qIENvbXBhY3RIVE1MVG9rZW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29tcGFjdEhUTUxUb2tlbi5oOyBw
YXRoID0gcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEwMDAw
RjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hdmlnYXRpb25TY2hlZHVsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTdBQTNDQTMxNDUyMzdDQzAwM0UxREE2IC8qIEV2ZW50VGFyZ2V0SGVhZGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFRhcmdldEhlYWRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTMzLDYgKzE4NTM3LDEwIEBACiAJCTk3QzFGNTUx
MTIyODU1ODgwMEVERTYxNiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTk3OURDMDMxMTZBNzk5MjEwMDgwNzc5NCAvKiBCYWNrZ3JvdW5k
SFRNTFBhcnNlci5jcHAgKi8sCisJCQkJOTc5REMwMzIxNkE3OTkyMTAwODA3Nzk0IC8qIEJhY2tn
cm91bmRIVE1MUGFyc2VyLmggKi8sCisJCQkJOTc5REMwMzMxNkE3OTkyMTAwODA3Nzk0IC8qIENv
bXBhY3RIVE1MVG9rZW4uY3BwICovLAorCQkJCTk3OURDMDM0MTZBNzk5MjEwMDgwNzc5NCAvKiBD
b21wYWN0SFRNTFRva2VuLmggKi8sCiAJCQkJOTc3QjM4NDkxMjI4ODNFOTAwQjgxRkY4IC8qIENT
U1ByZWxvYWRTY2FubmVyLmNwcCAqLywKIAkJCQk5NzdCMzg0QTEyMjg4M0U5MDBCODFGRjggLyog
Q1NTUHJlbG9hZFNjYW5uZXIuaCAqLywKIAkJCQk5NzdCMzg0QjEyMjg4M0U5MDBCODFGRjggLyog
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwICovLApAQCAtMjI5NzgsNiArMjI5ODYsNyBAQAogCQkJ
CUJDQThDODFFMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNzQxRDBGMEIwNzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2FyZExp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDQTYwMTFFNEU2RDEwMDgxMkZCNyAvKiBCYWNr
Rm9yd2FyZExpc3RJbXBsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzlEQzAzODE2QTc5OTMzMDA4
MDc3OTQgLyogQmFja2dyb3VuZEhUTUxQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RUU4MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzlF
NjFDQTEyNkNBNUM0MDBCNjNFOEQgLyogQmFzZUJ1dHRvbklucHV0VHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc5RTYxQ0MxMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VDaGVja2FibGVJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjMwOTQsNiArMjMxMDMsNyBAQAogCQkJCTkzODJERjU4
MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RE
NDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk3OURDMDM3MTZBNzk5MkUwMDgwNzc5NCAvKiBDb21wYWN0SFRNTFRva2VuLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTZBMEM1QzE1MjMyRjI0MDBCMDlDNkUgLyogQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTExNjBFNkUx
REE3MDBCRjYwODggLyogQ29tcG9zaXRlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2
NjU1LDYgKzI2NjY1LDcgQEAKIAkJCQkyOUE4MTI0QjBGQkI5Q0E5MDA1MTAyOTMgLyogQVhPYmpl
Y3RDYWNoZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDODFGMTFFM0QzNjkwMDgxMkZC
NyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOENB
NUYxMUU0RTZEMTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkTGlzdEltcGwuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTc5REMwMzkxNkE3OTkzOTAwODA3Nzk0IC8qIEJhY2tncm91bmRIVE1MUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTI0RUU3MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJ
bmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OUU2MUM5MTI2Q0E1QzMwMEI2M0U4RCAvKiBC
YXNlQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OUU2MUNCMTI2Q0E1
QzQwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjY3NDcsNiArMjY3NTgsNyBAQAogCQkJCUY1NUIzREIzMTI1MUYxMkQwMDNFRjI2OSAvKiBD
b2xvcklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3NzBCMDUzODE0MDAy
Q0U2NEYgLyogQ29sb3JNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk2NTUwQjZBMTA5OURGMDI3
MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NzlEQzAzNjE2QTc5
OTJBMDA4MDc3OTQgLyogQ29tcGFjdEhUTUxUb2tlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
N0MyMzYxMDEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3QzIzODIyMTA5OEM4NDIwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENv
bnRyb2xsZXJDb3JlVGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTRBNkEwQzVCMTUyMzJGMjQw
MEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzM1MTFhMGFhZjlmMTE4YzRhOTk2ZWY5ZTc0Yzg5NTk5NTE0MDUxYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcApAQCAtMCwwICsxLDIxOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCisKKyNpbmNsdWRlICJCYWNrZ3JvdW5kSFRNTFBhcnNl
ci5oIgorCisjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAiSFRNTFBh
cnNlclRocmVhZC5oIgorI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisjaWZuZGVmIE5ERUJVRworCitzdGF0aWMgdm9pZCBjaGVja1RoYXRUb2tlbnNBcmVT
YWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKGNvbnN0IFZlY3RvcjxDb21wYWN0SFRNTFRva2VuPiYg
dG9rZW5zKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW5zLnNpemUoKTsgKytp
KQorICAgICAgICBBU1NFUlQodG9rZW5zW2ldLmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgp
KTsKK30KKworI2VuZGlmCisKK3R5cGVkZWYgY29uc3Qgdm9pZCogUGFyc2VySWRlbnRpZmllcjsK
K2NsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKKworUGFyc2VyTWFwJiBwYXJzZXJNYXAoKQorewor
ICAgIC8vIFRoaXMgaW5pdGlhbGl6YXRpb24gYXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBiZSBpbml0
aWFsaXplIG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUKKyAgICAvLyBhbnkgcGFyc2VyIHRocmVh
ZCBpcyBzdGFydGVkLgorICAgIHN0YXRpYyBQYXJzZXJNYXAqIHNQYXJzZXJNYXAgPSBuZXcgUGFy
c2VyTWFwOworICAgIHJldHVybiAqc1BhcnNlck1hcDsKK30KKworUGFyc2VyTWFwOjpCYWNrZ3Jv
dW5kUGFyc2VyTWFwJiBQYXJzZXJNYXA6OmJhY2tncm91bmRQYXJzZXJzKCkKK3sKKyAgICBBU1NF
UlQoSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnRocmVhZElkKCkgPT0gY3VycmVudFRocmVh
ZCgpKTsKKyAgICByZXR1cm4gbV9iYWNrZ3JvdW5kUGFyc2VyczsKK30KKworUGFyc2VyTWFwOjpN
YWluVGhyZWFkUGFyc2VyTWFwJiBQYXJzZXJNYXA6Om1haW5UaHJlYWRQYXJzZXJzKCkKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHJldHVybiBtX21haW5UaHJlYWRQYXJzZXJz
OworfQorCitCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIoY29uc3Qg
SFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICA6IG1faXNQYXVzZWRXYWl0aW5nRm9yU2NyaXB0cyhmYWxzZSkKKyAgICAsIG1faW5Gb3Jl
aWduQ29udGVudChmYWxzZSkKKyAgICAsIG1fdG9rZW5pemVyKEhUTUxUb2tlbml6ZXI6OmNyZWF0
ZShvcHRpb25zKSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQorICAgICwgbV9wYXJzZXJJZGVu
dGlmZXIoaWRlbnRpZmllcikKK3sKK30KKwordm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6YXBw
ZW5kKGNvbnN0IFN0cmluZyYgaW5wdXQpCit7CisgICAgbV9pbnB1dC5hcHBlbmRUb0VuZChpbnB1
dCk7CisgICAgcHVtcFRva2VuaXplcigpOworfQorCit2b2lkIEJhY2tncm91bmRIVE1MUGFyc2Vy
Ojpjb250aW51ZVBhcnNpbmcoKQoreworICAgIG1faXNQYXVzZWRXYWl0aW5nRm9yU2NyaXB0cyA9
IGZhbHNlOworICAgIHB1bXBUb2tlbml6ZXIoKTsKK30KKwordm9pZCBCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6ZmluaXNoKCkKK3sKKyAgICBBU1NFUlQoIW1faW5wdXQuaGF2ZVNlZW5FbmRPZkZpbGUo
KSk7CisgICAgbV9pbnB1dC5tYXJrRW5kT2ZGaWxlKCk7CisgICAgcHVtcFRva2VuaXplcigpOwor
fQorCit2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkKK3sKKyAgICBp
ZiAobV9pc1BhdXNlZFdhaXRpbmdGb3JTY3JpcHRzKQorICAgICAgICByZXR1cm47CisKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWZyYW1lVGFnLCAoImlmcmFtZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbWF0aFRhZywgKCJtYXRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
b2VtYmVkVGFnLCAoIm5vZW1iZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5vZnJhbWVzVGFnLCAo
Im5vZnJhbWVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBub3NjcmlwdFRhZywgKCJub3NjcmlwdCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcGxhaW50ZXh0VGFnLCAoInBsYWludGV4dCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc2NyaXB0VGFnLCAoInNjcmlwdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc3R5
bGVUYWcsICgic3R5bGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN2Z1RhZywgKCJzdmciLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHRleHRhcmVhVGFnLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCB0aXRsZVRhZywgKCJ0aXRsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeG1wVGFnLCAoInht
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKworICAgIHdoaWxlICht
X3Rva2VuaXplci0+bmV4dFRva2VuKG1faW5wdXQuY3VycmVudCgpLCBtX3Rva2VuKSkgeworICAg
ICAgICBtX3BlbmRpbmdUb2tlbnMuYXBwZW5kKENvbXBhY3RIVE1MVG9rZW4obV90b2tlbikpOwor
CisgICAgICAgIGlmIChtX3Rva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcp
IHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyB0YWdOYW1lKG1fdG9rZW4ubmFtZSgpLmRhdGEo
KSwgbV90b2tlbi5uYW1lKCkuc2l6ZSgpKTsKKyAgICAgICAgICAgIGlmICh0YWdOYW1lID09IHN2
Z1RhZyB8fCB0YWdOYW1lID09IG1hdGhUYWcpCisgICAgICAgICAgICAgICAgbV9pbkZvcmVpZ25D
b250ZW50ID0gdHJ1ZTsKKworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMganVzdCBhIGNv
cHkgb2YgVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvciB3aGljaCBkb2Vzbid0IHVzZSBIVE1MTmFt
ZXMuCisgICAgICAgICAgICBpZiAodGFnTmFtZSA9PSB0ZXh0YXJlYVRhZyB8fCB0YWdOYW1lID09
IHRpdGxlVGFnKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9r
ZW5pemVyU3RhdGU6OlJDREFUQVN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRhZ05hbWUg
PT0gcGxhaW50ZXh0VGFnKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShI
VE1MVG9rZW5pemVyU3RhdGU6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KHRhZ05hbWUgPT0gc2NyaXB0VGFnKQorICAgICAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRT
dGF0ZShIVE1MVG9rZW5pemVyU3RhdGU6OlNjcmlwdERhdGFTdGF0ZSk7CisgICAgICAgICAgICBl
bHNlIGlmICh0YWdOYW1lID09IHN0eWxlVGFnCisgICAgICAgICAgICAgICAgfHwgdGFnTmFtZSA9
PSBpZnJhbWVUYWcKKyAgICAgICAgICAgICAgICB8fCB0YWdOYW1lID09IHhtcFRhZworICAgICAg
ICAgICAgICAgIHx8ICh0YWdOYW1lID09IG5vZW1iZWRUYWcgJiYgbV9vcHRpb25zLnBsdWdpbnNF
bmFibGVkKQorICAgICAgICAgICAgICAgIHx8IHRhZ05hbWUgPT0gbm9mcmFtZXNUYWcKKyAgICAg
ICAgICAgICAgICB8fCAodGFnTmFtZSA9PSBub3NjcmlwdFRhZyAmJiBtX29wdGlvbnMuc2NyaXB0
RW5hYmxlZCkpCisgICAgICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tl
bml6ZXJTdGF0ZTo6UkFXVEVYVFN0YXRlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV90b2tl
bi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkVuZFRhZykgeworICAgICAgICAgICAgQXRvbWlj
U3RyaW5nIHRhZ05hbWUobV90b2tlbi5uYW1lKCkuZGF0YSgpLCBtX3Rva2VuLm5hbWUoKS5zaXpl
KCkpOworICAgICAgICAgICAgaWYgKHRhZ05hbWUgPT0gc3ZnVGFnIHx8IHRhZ05hbWUgPT0gbWF0
aFRhZykKKyAgICAgICAgICAgICAgICBtX2luRm9yZWlnbkNvbnRlbnQgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGlmICh0YWdOYW1lID09IHNjcmlwdFRhZykgeworICAgICAgICAgICAgICAgIG1faXNQ
YXVzZWRXYWl0aW5nRm9yU2NyaXB0cyA9IHRydWU7CisgICAgICAgICAgICAgICAgbV90b2tlbi5j
bGVhcigpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIHNldCBzZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBs
YWNlbWVudCBiYXNlZCBvbiBtX2luRm9yZWlnbkNvbnRlbnQgYXMgd2VsbC4KKyAgICAgICAgbV90
b2tlbml6ZXItPnNldFNob3VsZEFsbG93Q0RBVEEobV9pbkZvcmVpZ25Db250ZW50KTsKKyAgICAg
ICAgbV90b2tlbi5jbGVhcigpOworICAgIH0KKworI2lmbmRlZiBOREVCVUcKKyAgICBjaGVja1Ro
YXRUb2tlbnNBcmVTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKG1fcGVuZGluZ1Rva2Vucyk7Cisj
ZW5kaWYKKworICAgIHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKK30KKworY2xhc3MgVG9rZW5E
ZWxpdmVyeSB7CitwdWJsaWM6CisgICAgUGFyc2VySWRlbnRpZmllciBpZGVudGlmaWVyOworICAg
IFZlY3RvcjxDb21wYWN0SFRNTFRva2VuPiB0b2tlbnM7CisKKyAgICBzdGF0aWMgdm9pZCBleGVj
dXRlKHZvaWQqIGNvbnRleHQpCisgICAgeworICAgICAgICBUb2tlbkRlbGl2ZXJ5KiBkZWxpdmVy
eSA9IHN0YXRpY19jYXN0PFRva2VuRGVsaXZlcnkqPihjb250ZXh0KTsKKyAgICAgICAgSFRNTERv
Y3VtZW50UGFyc2VyKiBwYXJzZXIgPSBwYXJzZXJNYXAoKS5tYWluVGhyZWFkUGFyc2VycygpLmdl
dChkZWxpdmVyeS0+aWRlbnRpZmllcik7CisgICAgICAgIGlmIChwYXJzZXIpCisgICAgICAgICAg
ICBwYXJzZXItPmRpZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlcihkZWxpdmVyeS0+
dG9rZW5zKTsKKyAgICAgICAgZGVsZXRlIGRlbGl2ZXJ5OworICAgIH0KK307CisKK3ZvaWQgQmFj
a2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJlYWQoKQoreworICAgIFRva2Vu
RGVsaXZlcnkqIGRlbGl2ZXJ5ID0gbmV3IFRva2VuRGVsaXZlcnk7CisgICAgZGVsaXZlcnktPmlk
ZW50aWZpZXIgPSBtX3BhcnNlcklkZW50aWZlcjsKKyAgICBkZWxpdmVyeS0+dG9rZW5zLnN3YXAo
bV9wZW5kaW5nVG9rZW5zKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFRva2VuRGVsaXZlcnk6OmV4
ZWN1dGUsIGRlbGl2ZXJ5KTsKK30KKwordm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Y3JlYXRl
UGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhUTUxQYXJzZXJPcHRpb25zIG9w
dGlvbnMpCit7CisgICAgQVNTRVJUKCFwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFyc2VycygpLmdl
dChpZGVudGlmaWVyKSk7CisgICAgcGFyc2VyTWFwKCkuYmFja2dyb3VuZFBhcnNlcnMoKS5zZXQo
aWRlbnRpZmllciwgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZShvcHRpb25zLCBpZGVudGlm
aWVyKSk7Cit9CisKK3ZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnN0b3BQYXJ0aWFsKFBhcnNl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBwYXJzZXJNYXAoKS5iYWNrZ3JvdW5kUGFy
c2VycygpLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNl
cjo6YXBwZW5kUGFydGlhbChQYXJzZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgaW5wdXQpCit7CisgICAgQVNTRVJUKCFpbnB1dC5pbXBsKCkgfHwgaW5wdXQuaW1wbCgpLT5o
YXNPbmVSZWYoKSB8fCBpbnB1dC5pc0VtcHR5KCkpOworICAgIGlmIChCYWNrZ3JvdW5kSFRNTFBh
cnNlciogcGFyc2VyID0gcGFyc2VyTWFwKCkuYmFja2dyb3VuZFBhcnNlcnMoKS5nZXQoaWRlbnRp
ZmllcikpCisgICAgICAgIHBhcnNlci0+YXBwZW5kKGlucHV0KTsKK30KKwordm9pZCBCYWNrZ3Jv
dW5kSFRNTFBhcnNlcjo6Y29udGludWVQYXJ0aWFsKFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBpZiAoQmFja2dyb3VuZEhUTUxQYXJzZXIqIHBhcnNlciA9IHBhcnNlck1hcCgp
LmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICBwYXJzZXItPmNv
bnRpbnVlUGFyc2luZygpOworfQorCit2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpmaW5pc2hQ
YXJ0aWFsKFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoQmFja2dyb3Vu
ZEhUTUxQYXJzZXIqIHBhcnNlciA9IHBhcnNlck1hcCgpLmJhY2tncm91bmRQYXJzZXJzKCkuZ2V0
KGlkZW50aWZpZXIpKQorICAgICAgICBwYXJzZXItPmZpbmlzaCgpOworfQorCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjgxNTYwNDE5
MWZjYjE3NGQ5Mjg2NTc2MDMyMjBhOTBmZWYxYjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaApAQCAtMCwwICsxLDEw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEJhY2tncm91bmRIVE1MUGFyc2VyX2gKKyNkZWZpbmUgQmFja2dyb3VuZEhUTUxQYXJz
ZXJfaAorCisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorCisjaW5jbHVkZSAiQ29t
cGFjdEhUTUxUb2tlbi5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dFN0cmVhbS5oIgorI2luY2x1ZGUg
IkhUTUxQYXJzZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisjaW5jbHVkZSAi
SFRNTFRva2VuaXplci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgY29uc3Qg
dm9pZCogUGFyc2VySWRlbnRpZmllcjsKK2NsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKKworY2xh
c3MgQmFja2dyb3VuZEhUTUxQYXJzZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29udGlu
dWVQYXJzaW5nKCk7CisgICAgdm9pZCBmaW5pc2goKTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRy
PEJhY2tncm91bmRIVE1MUGFyc2VyPiBjcmVhdGUoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9w
dGlvbnMsIFBhcnNlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgQmFja2dyb3VuZEhUTUxQYXJzZXIob3B0aW9ucywgaWRlbnRpZmllcikp
OworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVBhcnRpYWwoUGFyc2VySWRlbnRpZmll
ciwgSFRNTFBhcnNlck9wdGlvbnMpOworICAgIHN0YXRpYyB2b2lkIHN0b3BQYXJ0aWFsKFBhcnNl
cklkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGFwcGVuZFBhcnRpYWwoUGFyc2VySWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBpbnB1dCk7CisgICAgc3RhdGljIHZvaWQgY29udGludWVQYXJ0
aWFsKFBhcnNlcklkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGZpbmlzaFBhcnRpYWwoUGFy
c2VySWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQmFja2dyb3VuZEhUTUxQ
YXJzZXIoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmLCBQYXJzZXJJZGVudGlmaWVyKTsKKworICAg
IHZvaWQgcHVtcFRva2VuaXplcigpOworCisgICAgdm9pZCBzZW5kVG9rZW5zVG9NYWluVGhyZWFk
KCk7CisKKyAgICBIVE1MSW5wdXRTdHJlYW0gbV9pbnB1dDsKKyAgICBIVE1MVG9rZW4gbV90b2tl
bjsKKyAgICBib29sIG1faXNQYXVzZWRXYWl0aW5nRm9yU2NyaXB0czsKKyAgICBib29sIG1faW5G
b3JlaWduQ29udGVudDsgLy8gRklYTUU6IFdlIG5lZWQgYSBzdGFjayBvZiBmb3JlaWduIGNvbnRl
bnQgbWFya2Vycy4KKyAgICBPd25QdHI8SFRNTFRva2VuaXplcj4gbV90b2tlbml6ZXI7CisgICAg
SFRNTFBhcnNlck9wdGlvbnMgbV9vcHRpb25zOworICAgIFBhcnNlcklkZW50aWZpZXIgbV9wYXJz
ZXJJZGVudGlmZXI7CisgICAgVmVjdG9yPENvbXBhY3RIVE1MVG9rZW4+IG1fcGVuZGluZ1Rva2Vu
czsKK307CisKK2NsYXNzIFBhcnNlck1hcCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhcnNlcklk
ZW50aWZpZXIgaWRlbnRpZmllckZvclBhcnNlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikK
KyAgICB7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBhcnNlcklkZW50aWZpZXI+
KHBhcnNlcik7CisgICAgfQorCisgICAgdHlwZWRlZiBIYXNoTWFwPFBhcnNlcklkZW50aWZpZXIs
IE93blB0cjxCYWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiBCYWNrZ3JvdW5kUGFyc2VyTWFwOworICAg
IHR5cGVkZWYgSGFzaE1hcDxQYXJzZXJJZGVudGlmaWVyLCBIVE1MRG9jdW1lbnRQYXJzZXIqPiBN
YWluVGhyZWFkUGFyc2VyTWFwOworCisgICAgQmFja2dyb3VuZFBhcnNlck1hcCYgYmFja2dyb3Vu
ZFBhcnNlcnMoKTsKKyAgICBNYWluVGhyZWFkUGFyc2VyTWFwJiBtYWluVGhyZWFkUGFyc2Vycygp
OworCitwcml2YXRlOgorICAgIEJhY2tncm91bmRQYXJzZXJNYXAgbV9iYWNrZ3JvdW5kUGFyc2Vy
czsKKyAgICBNYWluVGhyZWFkUGFyc2VyTWFwIG1fbWFpblRocmVhZFBhcnNlcnM7Cit9OworCitQ
YXJzZXJNYXAmIHBhcnNlck1hcCgpOworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFERURf
SFRNTF9QQVJTRVIpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggOTllNzllNTBjZjY5ZTkwZmVlZDk4ZGVhZDFk
OTE0ODEyNzVhYzJhMi4uMzQyODc0NDBiYmUxYjI4NjViNWY3MmEzNjgwNjkxNjAzZTk4YWM5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRN
TERvY3VtZW50UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJDb21wYWN0SFRNTFRva2VuLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTI0Miw2ICsyNDMsMTUgQEAgYm9vbCBIVE1M
RG9jdW1lbnRQYXJzZXI6OmNhblRha2VOZXh0VG9rZW4oU3luY2hyb25vdXNNb2RlIG1vZGUsIFB1
bXBTZXNzaW9uJiBzZXMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShUSFJFQURF
RF9IVE1MX1BBUlNFUikKKwordm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFJlY2VpdmVUb2tl
bnNGcm9tQmFja2dyb3VuZFBhcnNlcihjb25zdCBWZWN0b3I8Q29tcGFjdEhUTUxUb2tlbj4mIHRv
a2VucykKK3sKKyAgICAvLyBGSVhNRTogQWN0dWFsbHkgY29uc3VtZSB0aGUgdG9rZW5zLgorfQor
CisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorCiB2b2lkIEhUTUxEb2N1
bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5jaHJvbm91c01vZGUgbW9kZSkKIHsKICAgICBB
U1NFUlQoIWlzU3RvcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmgKaW5kZXggOTU0NGIxYmQwZTEwNGI3MWVhNWIxNTQ0ZDc4MGNkYjcx
OTAxOGM2ZC4uOGM1MDlhODQ1ZmEwZWRkNTY1YzU5YmZlYjA3Zjg0MjE2MjAyMjUxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTQx
LDYgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDb21wYWN0SFRNTFRv
a2VuOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgSFRN
TERvY3VtZW50OwpAQCAtNzcsNiArNzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
dXNwZW5kU2NoZWR1bGVkVGFza3MoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lU2NoZWR1bGVk
VGFza3MoKTsKIAorI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKKyAgICB2b2lkIGRp
ZFJlY2VpdmVUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNlcihjb25zdCBWZWN0b3I8Q29tcGFjdEhU
TUxUb2tlbj4mKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0
IFNlZ21lbnRlZFN0cmluZyYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>