<?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>30751</bug_id>
          
          <creation_ts>2009-10-24 17:27:21 -0700</creation_ts>
          <short_desc>HTMLOptionsCollection should not inherit from HTMLCollection (according to HTML5)</short_desc>
          <delta_ts>2009-12-29 02:38:13 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157514</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-10-24 17:27:21 -0700</bug_when>
    <thetext>HTMLOptionsCollection should not inherit from HTMLCollection (according to HTML5).  Right now, only our JS bindings have this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157516</commentid>
    <comment_count>1</comment_count>
      <attachid>41800</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-10-24 17:36:23 -0700</bug_when>
    <thetext>Created attachment 41800
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157520</commentid>
    <comment_count>2</comment_count>
      <attachid>41800</attachid>
    <who name="">mitz</who>
    <bug_when>2009-10-24 18:04:24 -0700</bug_when>
    <thetext>Comment on attachment 41800
patch

r=me assuming you add the new .h file to other project files and address the comments from IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157528</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-10-24 19:45:26 -0700</bug_when>
    <thetext>Fixed in r50037.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157568</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-10-25 00:23:46 -0700</bug_when>
    <thetext>This broke the Windows build, so rolled out in r50040.

Build error: http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/6258/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157590</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-25 08:58:52 -0700</bug_when>
    <thetext>Hmm, this bug was made 10/24 but it must have been a few hours later that the following was committed to HTML5

  Make collections inherit from HTMLCollection
  Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=8035

Commit Diff:
http://html5.org/tools/web-apps-tracker?from=4322&amp;to=4323

&gt; -  &lt;pre class=&quot;idl&quot;&gt;interface &lt;dfn&gt;HTMLOptionsCollection&lt;/dfn&gt; {
-           attribute unsigned long &lt;span title=&quot;dom-HTMLOptionsCollection-length&quot;&gt;length&lt;/span&gt;;
&gt; +  &lt;pre class=&quot;idl&quot;&gt;interface &lt;dfn&gt;HTMLOptionsCollection&lt;/dfn&gt; : &lt;span&gt;HTMLCollection&lt;/span&gt; {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157591</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-10-25 09:14:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Hmm, this bug was made 10/24 but it must have been a few hours later that the
&gt; following was committed to HTML5
&gt; 
&gt;   Make collections inherit from HTMLCollection
&gt;   Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=8035
&gt; 
&gt; Commit Diff:
&gt; http://html5.org/tools/web-apps-tracker?from=4322&amp;to=4323
&gt; 
&gt; &gt; -  &lt;pre class=&quot;idl&quot;&gt;interface &lt;dfn&gt;HTMLOptionsCollection&lt;/dfn&gt; {
&gt; -           attribute unsigned long &lt;span
&gt; title=&quot;dom-HTMLOptionsCollection-length&quot;&gt;length&lt;/span&gt;;
&gt; &gt; +  &lt;pre class=&quot;idl&quot;&gt;interface &lt;dfn&gt;HTMLOptionsCollection&lt;/dfn&gt; : &lt;span&gt;HTMLCollection&lt;/span&gt; {

Wow.  That is quite upsetting.  Fun times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157854</commentid>
    <comment_count>7</comment_count>
      <attachid>41800</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-26 12:01:39 -0700</bug_when>
    <thetext>Comment on attachment 41800
patch

Clearing mitz&apos;s r+ on this patch since it was rolled out.  (This was it&apos;s not in the to-be-committed list).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157885</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-10-26 13:05:39 -0700</bug_when>
    <thetext>I rolled out this change in r50087.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175483</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-29 02:38:13 -0800</bug_when>
    <thetext>*** Bug 32997 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41800</attachid>
            <date>2009-10-24 17:36:23 -0700</date>
            <delta_ts>2009-10-26 12:01:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>coll.diff</filename>
            <type>text/plain</type>
            <size>31172</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDAzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMDktMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDc1MQorICAgICAgICBI
VE1MT3B0aW9uc0NvbGxlY3Rpb24gc2hvdWxkIG5vdCBpbmhlcml0IGZyb20gSFRNTENvbGxlY3Rp
b24KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQg
SlNIVE1MQ29sbGVjdGlvbkZ1bmN0aW9ucy5oCisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1M
QWxsQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsSFRNTEFsbENv
bGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZUdl
dHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxBbGxDb2xsZWN0aW9uOjppdGVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTSFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjYWxsSFRNTENvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MQ29sbGVj
dGlvbjo6bmFtZUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDb2xsZWN0aW9uOjpp
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENvbGxlY3Rpb246Om5hbWVkSXRlbSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y2FsbEhUTUxDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y2FuR2V0SXRlbXNGb3JOYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjppbmRleFNldHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6aXRlbSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6bmFtZWRJdGVtKToKKyAgICAgICAgUmVmYWN0
b3IgdG8gdXNlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24gb2YgSFRNTENvbGxlY3Rpb24gYmluZGlu
Z3MgZnVuY3Rpb25zCisgICAgICAgIGZyb20gSlNIVE1MQ29sbGVjdGlvbkZ1bmN0aW9ucy5oCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uRnVuY3Rpb25zLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29sbGVjdGlvbk5hbWVkSXRlbXMpOgorICAgICAgICAo
V2ViQ29yZTo6Z2V0Q29sbGVjdGlvbkl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxIVE1M
Q29sbGVjdGlvbkdlbmVyaWMpOgorICAgICAgICBBZGRlZCBnZW5lcmljIGZ1bmN0aW9ucyB0aGF0
IEpTSFRNTENvbGxlY3Rpb24sIEpTSFRNTEFsbENvbGxlY3Rpb24gYW5kCisgICAgICAgIEpTSFRN
TE9wdGlvbnNDb2xsZWN0aW9uIGNhbiBhbGwgdXNlLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwOiBBZGQgaW5jbHVkZSBvZiBKU0hUTUxBbGxDb2xsZWN0
aW9uLmgKKyAgICAgICAgZm9yIHRvSlMgb24gZG9jdW1lbnQuYWxsLgorCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MLm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVXRpbGl0
eS5tbToKKyAgICAgICAgKEpTQzo6Y3JlYXRlRE9NV3JhcHBlcik6CisgICAgICAgIFJlbW92ZSBz
cGVjaWFsIGNhc2VzIGZvciBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBodG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGw6CisKIDIwMDktMTAtMjQgIFRpbW90
aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdGhlIHNjb3Bl
IGJhcnMgaW4gdGhlIFdlYiBJbnNwZWN0b3IgbWF0Y2ggb3RoZXIgc2NvcGUgYmFycyBpbiBNYWMg
T1MgWC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA0OTk5OCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MzMwLDYgKzQzMzAsNyBAQAogCQlCQzk3RTQxMjEwOTE1
NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk3RTQxMDEwOTE1NEZBMDAxMEQzNjEgLyog
SlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCUJDOTdFNDEzMTA5MTU0RkEwMDEwRDM2
MSAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzk3RTQxMTEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29s
bGVjdGlvbi5oICovOyB9OwogCQlCQzk3RTQyQzEwOTE1QjA2MDAxMEQzNjEgLyogSlNIVE1MQWxs
Q29sbGVjdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzk3RTQyQjEwOTE1QjA2MDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlv
bkN1c3RvbS5jcHAgKi87IH07CisJCUJDOTdFNTNGMTA5MjZDODcwMDEwRDM2MSAvKiBKU0hUTUxD
b2xsZWN0aW9uRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzk3RTUzRTEwOTI2Qzg3MDAxMEQzNjEgLyogSlNIVE1MQ29sbGVjdGlvbkZ1
bmN0aW9ucy5oICovOyB9OwogCQlCQzk4NTQzRDBDRDNEOThCMDAwNjlCQzEgLyogSlNDb25zb2xl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTg1
NDNCMENEM0Q5OEIwMDA2OUJDMSAvKiBKU0NvbnNvbGUuY3BwICovOyB9OwogCQlCQzk4NTQzRTBD
RDNEOThDMDAwNjlCQzEgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk4NTQzQzBDRDNEOThCMDAwNjlCQzEgLyogSlNDb25zb2xl
LmggKi87IH07CiAJCUJDOThBMjdEMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5
OEEyN0MwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3RvbS5jcHAgKi87IH07CkBA
IC05NDY1LDYgKzk0NjYsNyBAQAogCQlCQzk3RTQxMDEwOTE1NEZBMDAxMEQzNjEgLyogSlNIVE1M
QWxsQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxBbGxDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5
N0U0MTExMDkxNTRGQTAwMTBEMzYxIC8qIEpTSFRNTEFsbENvbGxlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MQWxsQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzk3RTQyQjEwOTE1QjA2MDAxMEQzNjEgLyogSlNIVE1MQWxs
Q29sbGVjdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkM5N0U1M0UxMDkyNkM4NzAwMTBEMzYxIC8qIEpTSFRNTENvbGxlY3Rpb25GdW5jdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MQ29sbGVjdGlvbkZ1
bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk4NTQzQjBDRDNEOThC
MDAwNjlCQzEgLyogSlNDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NvbnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk4
NTQzQzBDRDNEOThCMDAwNjlCQzEgLyogSlNDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0NvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM5OEEyN0MwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0eWxlU2hlZXRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyODIsNiArMTQyODQsNyBAQAogCQkJCUMw
OTE1ODg3MERCNDIwOTIwMEU1NUFGNCAvKiBKU0luc3BlY3RvckNhbGxiYWNrV3JhcHBlci5oICov
LAogCQkJCTkzQjcwRDRGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwICovLAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuaCAqLywKKwkJCQlCQzk3RTUzRTEwOTI2Qzg3MDAxMEQzNjEgLyogSlNIVE1M
Q29sbGVjdGlvbkZ1bmN0aW9ucy5oICovLAogCQkJCUMwOTE1ODg4MERCNDIwOTIwMEU1NUFGNCAv
KiBKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAgKi8sCiAJCQkJQzA5MTU4ODkwREI0MjA5
MjAwRTU1QUY0IC8qIEpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmggKi8sCiAJCQkJNDE1QjdD
NTUwRkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwICovLApA
QCAtMTgwNzUsNiArMTgwNzgsNyBAQAogCQkJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBG
RUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5N0UyM0ExMDkxNDQ5NTAwMTBE
MzYxIC8qIEhUTUxBbGxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk3RTQxMzEw
OTE1NEZBMDAxMEQzNjEgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkM5N0U1M0YxMDkyNkM4NzAwMTBEMzYxIC8qIEpTSFRNTENvbGxlY3Rpb25GdW5jdGlvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xs
ZWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TEFsbENvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA0OTk5OCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDczICszMCwxOCBAQAogI2luY2x1ZGUgIkhUTUxBbGxDb2xsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNIVE1MQWxsQ29sbGVjdGlvbi5oIgorI2lu
Y2x1ZGUgIkpTSFRNTENvbGxlY3Rpb25GdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU05vZGUuaCIK
ICNpbmNsdWRlICJKU05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIlN0
YXRpY05vZGVMaXN0LmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIGdldE5hbWVk
SXRlbXMoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxBbGxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2Rl
PiA+IG5hbWVkSXRlbXM7Ci0gICAgY29sbGVjdGlvbi0+aW1wbCgpLT5uYW1lZEl0ZW1zKHByb3Bl
cnR5TmFtZSwgbmFtZWRJdGVtcyk7Ci0KLSAgICBpZiAobmFtZWRJdGVtcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9
PSAxKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmplY3Qo
KSwgbmFtZWRJdGVtc1swXS5nZXQoKSk7Ci0KLSAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVz
IHRoYXQgdGhpcyBzaG91bGQgYmUgYSBEeW5hbWljTm9kZUxpc3QuCi0gICAgLy8gRklYTUU6IEhU
TUw1IHNwZWNpZmllcyB0aGF0IG5vbi1IVE1MT3B0aW9uc0NvbGxlY3Rpb24gY29sbGVjdGlvbnMg
c2hvdWxkIHJldHVybgotICAgIC8vIHRoZSBmaXJzdCBtYXRjaGluZyBpdGVtIGluc3RlYWQgb2Yg
YSBOb2RlTGlzdC4KLSAgICByZXR1cm4gdG9KUyhleGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmpl
Y3QoKSwgU3RhdGljTm9kZUxpc3Q6OmFkb3B0KG5hbWVkSXRlbXMpLmdldCgpKTsKLX0KLQotLy8g
SFRNTENvbGxlY3Rpb25zIGFyZSBzdHJhbmdlIG9iamVjdHMsIHRoZXkgc3VwcG9ydCBib3RoIGdl
dCBhbmQgY2FsbCwKLS8vIHNvIHRoYXQgZG9jdW1lbnQuZm9ybXMuaXRlbSgwKSBhbmQgZG9jdW1l
bnQuZm9ybXMoMCkgYm90aCB3b3JrLgogc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SFRNTEFsbENvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb24sIEpT
VmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgaWYgKGFyZ3Muc2l6ZSgpIDwgMSkK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICAvLyBEbyBub3QgdXNlIHRoaXNP
YmogaGVyZS4gSXQgY2FuIGJlIHRoZSBKU0hUTUxEb2N1bWVudCwgaW4gdGhlIGRvY3VtZW50LmZv
cm1zKGkpIGNhc2UuCi0gICAgSlNIVE1MQWxsQ29sbGVjdGlvbioganNDb2xsZWN0aW9uID0gc3Rh
dGljX2Nhc3Q8SlNIVE1MQWxsQ29sbGVjdGlvbio+KGZ1bmN0aW9uKTsKLSAgICBIVE1MQWxsQ29s
bGVjdGlvbiogY29sbGVjdGlvbiA9IGpzQ29sbGVjdGlvbi0+aW1wbCgpOwotCi0gICAgLy8gQWxz
bywgZG8gd2UgbmVlZCB0aGUgVHlwZUVycm9yIHRlc3QgaGVyZSA/Ci0KLSAgICBpZiAoYXJncy5z
aXplKCkgPT0gMSkgewotICAgICAgICAvLyBTdXBwb3J0IGZvciBkb2N1bWVudC5hbGwoPGluZGV4
PikgZXRjLgotICAgICAgICBib29sIG9rOwotICAgICAgICBVU3RyaW5nIHN0cmluZyA9IGFyZ3Mu
YXQoMCkudG9TdHJpbmcoZXhlYyk7Ci0gICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc3RyaW5nLnRv
VUludDMyKCZvaywgZmFsc2UpOwotICAgICAgICBpZiAob2spCi0gICAgICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBqc0NvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uLT5pdGVt
KGluZGV4KSk7Ci0KLSAgICAgICAgLy8gU3VwcG9ydCBmb3IgZG9jdW1lbnQuaW1hZ2VzKCc8bmFt
ZT4nKSBldGMuCi0gICAgICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGpzQ29sbGVjdGlv
biwgSWRlbnRpZmllcihleGVjLCBzdHJpbmcpKTsKLSAgICB9Ci0KLSAgICAvLyBUaGUgc2Vjb25k
IGFyZywgaWYgc2V0LCBpcyB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gd2Ugd2FudAotICAgIGJvb2wg
b2s7Ci0gICAgVVN0cmluZyBzdHJpbmcgPSBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpOwotICAg
IHVuc2lnbmVkIGluZGV4ID0gYXJncy5hdCgxKS50b1N0cmluZyhleGVjKS50b1VJbnQzMigmb2ss
IGZhbHNlKTsKLSAgICBpZiAob2spIHsKLSAgICAgICAgU3RyaW5nIHBzdHIgPSBzdHJpbmc7Ci0g
ICAgICAgIE5vZGUqIG5vZGUgPSBjb2xsZWN0aW9uLT5uYW1lZEl0ZW0ocHN0cik7Ci0gICAgICAg
IHdoaWxlIChub2RlKSB7Ci0gICAgICAgICAgICBpZiAoIWluZGV4KQotICAgICAgICAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGpzQ29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCksIG5vZGUpOwot
ICAgICAgICAgICAgbm9kZSA9IGNvbGxlY3Rpb24tPm5leHROYW1lZEl0ZW0ocHN0cik7Ci0gICAg
ICAgICAgICAtLWluZGV4OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgcmV0dXJuIGNhbGxIVE1MQ29sbGVjdGlvbkdlbmVyaWM8SFRNTEFsbENvbGxl
Y3Rpb24sIEpTSFRNTEFsbENvbGxlY3Rpb24+KGV4ZWMsIGZ1bmN0aW9uLCBhcmdzKTsKIH0KIAog
Q2FsbFR5cGUgSlNIVE1MQWxsQ29sbGVjdGlvbjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxE
YXRhKQpAQCAtMTE1LDIxICs2MCwxNyBAQCBib29sIEpTSFRNTEFsbENvbGxlY3Rpb246OmNhbkdl
dEl0ZW1zRm9yCiBKU1ZhbHVlIEpTSFRNTEFsbENvbGxlY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU0hUTUxBbGxDb2xsZWN0aW9uKiB0aGlzT2JqID0gc3RhdGlj
X2Nhc3Q8SlNIVE1MQWxsQ29sbGVjdGlvbio+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwot
ICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXNPYmosIHByb3BlcnR5TmFtZSk7Cisg
ICAgcmV0dXJuIGdldENvbGxlY3Rpb25OYW1lZEl0ZW1zPEpTSFRNTEFsbENvbGxlY3Rpb24+KGV4
ZWMsIHRoaXNPYmosIHByb3BlcnR5TmFtZSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQWxsQ29sbGVj
dGlvbjo6aXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAg
Ym9vbCBvazsKLSAgICB1aW50MzJfdCBpbmRleCA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyku
dG9VSW50MzIoJm9rLCBmYWxzZSk7Ci0gICAgaWYgKG9rKQotICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QoKSwgaW1wbCgpLT5pdGVtKGluZGV4KSk7Ci0gICAgcmV0dXJuIGdl
dE5hbWVkSXRlbXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBhcmdzLmF0KDApLnRvU3Ry
aW5nKGV4ZWMpKSk7CisgICAgcmV0dXJuIGdldENvbGxlY3Rpb25JdGVtczxKU0hUTUxBbGxDb2xs
ZWN0aW9uPihleGVjLCB0aGlzLCBhcmdzLmF0KDApKTsKIH0KIAogSlNWYWx1ZSBKU0hUTUxBbGxD
b2xsZWN0aW9uOjpuYW1lZEl0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogewotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhl
YywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIHJldHVybiBnZXRDb2xsZWN0aW9u
TmFtZWRJdGVtczxKU0hUTUxBbGxDb2xsZWN0aW9uPihleGVjLCB0aGlzLCBJZGVudGlmaWVyKGV4
ZWMsIGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0
b20uY3BwCShyZXZpc2lvbiA0OTk5OCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29s
bGVjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0hUTUxDb2xsZWN0aW9uLmgiCiAKKyNpbmNsdWRl
ICJKU0hUTUxDb2xsZWN0aW9uRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgi
CiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uaCIKQEAgLTM3LDYzICszOCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKLXsKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLSAg
ICBjb2xsZWN0aW9uLT5pbXBsKCktPm5hbWVkSXRlbXMocHJvcGVydHlOYW1lLCBuYW1lZEl0ZW1z
KTsKLQotICAgIGlmIChuYW1lZEl0ZW1zLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgaWYgKG5hbWVkSXRlbXMuc2l6ZSgpID09IDEpCi0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBuYW1lZEl0ZW1zWzBdLmdl
dCgpKTsKLQotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlzIHNob3VsZCBi
ZSBhIER5bmFtaWNOb2RlTGlzdC4KLSAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQg
bm9uLUhUTUxPcHRpb25zQ29sbGVjdGlvbiBjb2xsZWN0aW9ucyBzaG91bGQgcmV0dXJuCi0gICAg
Ly8gdGhlIGZpcnN0IG1hdGNoaW5nIGl0ZW0gaW5zdGVhZCBvZiBhIE5vZGVMaXN0LgotICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBTdGF0aWNOb2RlTGlz
dDo6YWRvcHQobmFtZWRJdGVtcykuZ2V0KCkpOwotfQotCi0vLyBIVE1MQ29sbGVjdGlvbnMgYXJl
IHN0cmFuZ2Ugb2JqZWN0cywgdGhleSBzdXBwb3J0IGJvdGggZ2V0IGFuZCBjYWxsLAotLy8gc28g
dGhhdCBkb2N1bWVudC5mb3Jtcy5pdGVtKDApIGFuZCBkb2N1bWVudC5mb3JtcygwKSBib3RoIHdv
cmsuCiBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIVE1MQ29sbGVjdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdGlvbiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYg
YXJncykKIHsKLSAgICBpZiAoYXJncy5zaXplKCkgPCAxKQotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLQotICAgIC8vIERvIG5vdCB1c2UgdGhpc09iaiBoZXJlLiBJdCBjYW4gYmUgdGhl
IEpTSFRNTERvY3VtZW50LCBpbiB0aGUgZG9jdW1lbnQuZm9ybXMoaSkgY2FzZS4KLSAgICBKU0hU
TUxDb2xsZWN0aW9uKiBqc0NvbGxlY3Rpb24gPSBzdGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9u
Kj4oZnVuY3Rpb24pOwotICAgIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0ganNDb2xsZWN0
aW9uLT5pbXBsKCk7Ci0KLSAgICAvLyBBbHNvLCBkbyB3ZSBuZWVkIHRoZSBUeXBlRXJyb3IgdGVz
dCBoZXJlID8KLQotICAgIGlmIChhcmdzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgIC8vIFN1cHBv
cnQgZm9yIGRvY3VtZW50LmFsbCg8aW5kZXg+KSBldGMuCi0gICAgICAgIGJvb2wgb2s7Ci0gICAg
ICAgIFVTdHJpbmcgc3RyaW5nID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKTsKLSAgICAgICAg
dW5zaWduZWQgaW5kZXggPSBzdHJpbmcudG9VSW50MzIoJm9rLCBmYWxzZSk7Ci0gICAgICAgIGlm
IChvaykKLSAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzQ29sbGVjdGlvbi0+Z2xvYmFs
T2JqZWN0KCksIGNvbGxlY3Rpb24tPml0ZW0oaW5kZXgpKTsKLQotICAgICAgICAvLyBTdXBwb3J0
IGZvciBkb2N1bWVudC5pbWFnZXMoJzxuYW1lPicpIGV0Yy4KLSAgICAgICAgcmV0dXJuIGdldE5h
bWVkSXRlbXMoZXhlYywganNDb2xsZWN0aW9uLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZykpOwot
ICAgIH0KLQotICAgIC8vIFRoZSBzZWNvbmQgYXJnLCBpZiBzZXQsIGlzIHRoZSBpbmRleCBvZiB0
aGUgaXRlbSB3ZSB3YW50Ci0gICAgYm9vbCBvazsKLSAgICBVU3RyaW5nIHN0cmluZyA9IGFyZ3Mu
YXQoMCkudG9TdHJpbmcoZXhlYyk7Ci0gICAgdW5zaWduZWQgaW5kZXggPSBhcmdzLmF0KDEpLnRv
U3RyaW5nKGV4ZWMpLnRvVUludDMyKCZvaywgZmFsc2UpOwotICAgIGlmIChvaykgewotICAgICAg
ICBTdHJpbmcgcHN0ciA9IHN0cmluZzsKLSAgICAgICAgTm9kZSogbm9kZSA9IGNvbGxlY3Rpb24t
Pm5hbWVkSXRlbShwc3RyKTsKLSAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgIGlm
ICghaW5kZXgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywganNDb2xsZWN0aW9u
LT5nbG9iYWxPYmplY3QoKSwgbm9kZSk7Ci0gICAgICAgICAgICBub2RlID0gY29sbGVjdGlvbi0+
bmV4dE5hbWVkSXRlbShwc3RyKTsKLSAgICAgICAgICAgIC0taW5kZXg7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICByZXR1cm4gY2FsbEhUTUxDb2xs
ZWN0aW9uR2VuZXJpYzxIVE1MQ29sbGVjdGlvbiwgSlNIVE1MQ29sbGVjdGlvbj4oZXhlYywgZnVu
Y3Rpb24sIGFyZ3MpOwogfQogCiBDYWxsVHlwZSBKU0hUTUxDb2xsZWN0aW9uOjpnZXRDYWxsRGF0
YShDYWxsRGF0YSYgY2FsbERhdGEpCkBAIC0xMTIsNDYgKzU5LDE3IEBAIGJvb2wgSlNIVE1MQ29s
bGVjdGlvbjo6Y2FuR2V0SXRlbXNGb3JOYW0KIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFt
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTSFRNTENvbGxlY3Rpb24qIHRoaXNP
YmogPSBzdGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFz
ZSgpKSk7Ci0gICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpc09iaiwgcHJvcGVydHlO
YW1lKTsKKyAgICByZXR1cm4gZ2V0Q29sbGVjdGlvbk5hbWVkSXRlbXM8SlNIVE1MQ29sbGVjdGlv
bj4oZXhlYywgdGhpc09iaiwgcHJvcGVydHlOYW1lKTsKIH0KIAogSlNWYWx1ZSBKU0hUTUxDb2xs
ZWN0aW9uOjppdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAg
ICBib29sIG9rOwotICAgIHVpbnQzMl90IGluZGV4ID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVj
KS50b1VJbnQzMigmb2ssIGZhbHNlKTsKLSAgICBpZiAob2spCi0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBpbXBsKCktPml0ZW0oaW5kZXgpKTsKLSAgICByZXR1cm4g
Z2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzLCBJZGVudGlmaWVyKGV4ZWMsIGFyZ3MuYXQoMCkudG9T
dHJpbmcoZXhlYykpKTsKKyAgICByZXR1cm4gZ2V0Q29sbGVjdGlvbkl0ZW1zPEpTSFRNTENvbGxl
Y3Rpb24+KGV4ZWMsIHRoaXMsIGFyZ3MuYXQoMCkpOwogfQogCiBKU1ZhbHVlIEpTSFRNTENvbGxl
Y3Rpb246Om5hbWVkSXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7
Ci0gICAgcmV0dXJuIGdldE5hbWVkSXRlbXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBh
cmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7Ci19Ci0KLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uKiBj
b2xsZWN0aW9uKQotewotICAgIGlmICghY29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIGpzTnVs
bCgpOwotCi0gICAgRE9NT2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2JqZWN0V3JhcHBl
cihleGVjLT5nbG9iYWxEYXRhKCksIGNvbGxlY3Rpb24pOwotCi0gICAgaWYgKHdyYXBwZXIpCi0g
ICAgICAgIHJldHVybiB3cmFwcGVyOwotCi0gICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkp
IHsKLSAgICAgICAgY2FzZSBTZWxlY3RPcHRpb25zOgotICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24sIGNvbGxlY3Rpb24pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
RG9jQWxsOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MQWxsQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTENvbGxlY3Rp
b24sIGNvbGxlY3Rpb24pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJu
IHdyYXBwZXI7CisgICAgcmV0dXJuIGdldENvbGxlY3Rpb25OYW1lZEl0ZW1zPEpTSFRNTENvbGxl
Y3Rpb24+KGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhl
eGVjKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTENvbGxlY3Rpb25GdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25GdW5jdGlvbnMuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkZ1bmN0aW9ucy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEpTSFRNTEFsbENvbGxlY3Rpb25GdW5jdGlvbnNfaAorI2Rl
ZmluZSBKU0hUTUxBbGxDb2xsZWN0aW9uRnVuY3Rpb25zX2gKKworI2luY2x1ZGUgIkpTTm9kZS5o
IgorI2luY2x1ZGUgIkpTTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBKU0NvbGxlY3Rpb24+CitKU0M6OkpTVmFsdWUgZ2V0Q29sbGVjdGlvbk5hbWVkSXRlbXMoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTQ29sbGVjdGlvbioganNDb2xsZWN0aW9uLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4g
bmFtZWRJdGVtczsKKyAgICBqc0NvbGxlY3Rpb24tPmltcGwoKS0+bmFtZWRJdGVtcyhwcm9wZXJ0
eU5hbWUsIG5hbWVkSXRlbXMpOworCisgICAgaWYgKG5hbWVkSXRlbXMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworICAgIGlmIChuYW1lZEl0ZW1zLnNpemUo
KSA9PSAxKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBqc0NvbGxlY3Rpb24tPmdsb2JhbE9i
amVjdCgpLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKKworICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVj
aWZpZXMgdGhhdCB0aGlzIHNob3VsZCBiZSBhIER5bmFtaWNOb2RlTGlzdC4KKyAgICAvLyBGSVhN
RTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgbm9uLUhUTUxPcHRpb25zQ29sbGVjdGlvbiBjb2xsZWN0
aW9ucyBzaG91bGQgcmV0dXJuCisgICAgLy8gdGhlIGZpcnN0IG1hdGNoaW5nIGl0ZW0gaW5zdGVh
ZCBvZiBhIE5vZGVMaXN0LgorICAgIHJldHVybiB0b0pTKGV4ZWMsIGpzQ29sbGVjdGlvbi0+Z2xv
YmFsT2JqZWN0KCksIFN0YXRpY05vZGVMaXN0OjphZG9wdChuYW1lZEl0ZW1zKS5nZXQoKSk7Cit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIEpTQ29sbGVjdGlvbj4KK0pTQzo6SlNWYWx1ZSBnZXRDb2xs
ZWN0aW9uSXRlbXMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQ29sbGVjdGlvbioganNDb2xsZWN0
aW9uLCBKU0M6OkpTVmFsdWUgdmFsdWUpCit7CisgICAgYm9vbCBvazsKKyAgICBKU0M6OlVTdHJp
bmcgc3RyaW5nID0gdmFsdWUudG9TdHJpbmcoZXhlYyk7CisgICAgdW5zaWduZWQgaW5kZXggPSBz
dHJpbmcudG9VSW50MzIoJm9rLCBmYWxzZSk7CisgICAgaWYgKG9rKQorICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBqc0NvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBqc0NvbGxlY3Rpb24tPmlt
cGwoKS0+aXRlbShpbmRleCkpOworICAgIHJldHVybiBnZXRDb2xsZWN0aW9uTmFtZWRJdGVtczxK
U0NvbGxlY3Rpb24+KGV4ZWMsIGpzQ29sbGVjdGlvbiwgSlNDOjpJZGVudGlmaWVyKGV4ZWMsIHN0
cmluZykpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uLCB0eXBlbmFtZSBKU0Nv
bGxlY3Rpb24+CitKU0M6OkpTVmFsdWUgY2FsbEhUTUxDb2xsZWN0aW9uR2VuZXJpYyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU09iamVjdCogZnVuY3Rpb24sIGNvbnN0IEpTQzo6QXJnTGlz
dCYgYXJncykKK3sKKyAgICBpZiAoYXJncy5zaXplKCkgPCAxKQorICAgICAgICByZXR1cm4gSlND
Ojpqc1VuZGVmaW5lZCgpOworCisgICAgSlNDb2xsZWN0aW9uKiBqc0NvbGxlY3Rpb24gPSBzdGF0
aWNfY2FzdDxKU0NvbGxlY3Rpb24qPihmdW5jdGlvbik7CisgICAgQ29sbGVjdGlvbiogY29sbGVj
dGlvbiA9IGpzQ29sbGVjdGlvbi0+aW1wbCgpOworCisgICAgLy8gQWxzbywgZG8gd2UgbmVlZCB0
aGUgVHlwZUVycm9yIHRlc3QgaGVyZSA/CisKKyAgICBpZiAoYXJncy5zaXplKCkgPT0gMSkKKyAg
ICAgICAgcmV0dXJuIGdldENvbGxlY3Rpb25JdGVtczxKU0NvbGxlY3Rpb24+KGV4ZWMsIGpzQ29s
bGVjdGlvbiwgYXJncy5hdCgwKSk7CisKKyAgICAvLyBUaGUgc2Vjb25kIGFyZywgaWYgc2V0LCBp
cyB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gd2Ugd2FudAorICAgIGJvb2wgb2s7CisgICAgSlNDOjpV
U3RyaW5nIHN0cmluZyA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyk7CisgICAgdW5zaWduZWQg
aW5kZXggPSBhcmdzLmF0KDEpLnRvU3RyaW5nKGV4ZWMpLnRvVUludDMyKCZvaywgZmFsc2UpOwor
ICAgIGlmIChvaykgeworICAgICAgICBTdHJpbmcgcHN0ciA9IHN0cmluZzsKKyAgICAgICAgTm9k
ZSogbm9kZSA9IGNvbGxlY3Rpb24tPm5hbWVkSXRlbShwc3RyKTsKKyAgICAgICAgd2hpbGUgKG5v
ZGUpIHsKKyAgICAgICAgICAgIGlmICghaW5kZXgpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywganNDb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgbm9kZSk7CisgICAgICAgICAg
ICBub2RlID0gY29sbGVjdGlvbi0+bmV4dE5hbWVkSXRlbShwc3RyKTsKKyAgICAgICAgICAgIC0t
aW5kZXg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU0hUTUxBbGxDb2xs
ZWN0aW9uRnVuY3Rpb25zX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9j
dW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA0OTk5OCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5o
IgogI2luY2x1ZGUgIkpTRE9NV2luZG93U2hlbGwuaCIKKyNpbmNsdWRlICJKU0hUTUxBbGxDb2xs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlNlZ21l
bnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlRva2VuaXplci5oIgpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHJl
dmlzaW9uIDQ5OTk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVj
dGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDIwICsyNSw1NiBAQAogI2luY2x1
ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxDb2xs
ZWN0aW9uLmgiCisjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlvbkZ1bmN0aW9ucy5oIgogI2luY2x1
ZGUgIkpTSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxTZWxlY3RFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oIgotCiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1KU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpsZW5ndGgoRXhlY1N0
YXRlKiBleGVjKSBjb25zdAorc3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTENv
bGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb24sIEpTVmFsdWUsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgcmV0dXJuIGNhbGxIVE1MQ29sbGVjdGlvbkdlbmVy
aWM8SFRNTE9wdGlvbnNDb2xsZWN0aW9uLCBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbj4oZXhlYywg
ZnVuY3Rpb24sIGFyZ3MpOworfQorCitDYWxsVHlwZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6
Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNhbGxEYXRhKQoreworICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxIVE1MQ29sbGVjdGlvbjsKKyAgICByZXR1cm4gQ2FsbFR5cGVIb3N0Owor
fQorCitib29sIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhl
Y1N0YXRlKiwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRl
bXM7CisgICAgY29sbGVjdGlvbi0+bmFtZWRJdGVtcyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMp
OworICAgIHJldHVybiAhbmFtZWRJdGVtcy5pc0VtcHR5KCk7Cit9CisKK0pTVmFsdWUgSlNIVE1M
T3B0aW9uc0NvbGxlY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBK
U0hUTUxPcHRpb25zQ29sbGVjdGlvbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7CisgICAgcmV0dXJuIGdl
dENvbGxlY3Rpb25OYW1lZEl0ZW1zPEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uPihleGVjLCB0aGlz
T2JqLCBwcm9wZXJ0eU5hbWUpOworfQorCit2b2lkIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpp
bmRleFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbiogaW1wID0gc3RhdGljX2Nhc3Q8SFRNTE9w
dGlvbnNDb2xsZWN0aW9uKj4oaW1wbCgpKTsKLSAgICByZXR1cm4ganNOdW1iZXIoZXhlYywgaW1w
LT5sZW5ndGgoKSk7CisgICAgSFRNTFNlbGVjdEVsZW1lbnQqIGJhc2UgPSBzdGF0aWNfY2FzdDxI
VE1MU2VsZWN0RWxlbWVudCo+KGltcC0+YmFzZSgpKTsKKyAgICBzZWxlY3RJbmRleFNldHRlcihi
YXNlLCBleGVjLCBpbmRleCwgdmFsdWUpOworfQorCitKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjppdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAg
ICByZXR1cm4gZ2V0Q29sbGVjdGlvbkl0ZW1zPEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uPihleGVj
LCB0aGlzLCBhcmdzLmF0KDApKTsKK30KKworSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlv
bjo6bmFtZWRJdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKK3sKKyAg
ICByZXR1cm4gZ2V0Q29sbGVjdGlvbk5hbWVkSXRlbXM8SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24+
KGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkp
OwogfQogCiB2b2lkIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpzZXRMZW5ndGgoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtNjAsMTMgKzk2LDYgQEAgdm9pZCBKU0hUTUxPcHRp
b25zQ29sbGVjdGlvbjo6c2V0TGVuZ3RoKAogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiB9CiAKLXZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4U2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBpbXAgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihp
bXBsKCkpOwotICAgIEhUTUxTZWxlY3RFbGVtZW50KiBiYXNlID0gc3RhdGljX2Nhc3Q8SFRNTFNl
bGVjdEVsZW1lbnQqPihpbXAtPmJhc2UoKSk7Ci0gICAgc2VsZWN0SW5kZXhTZXR0ZXIoYmFzZSwg
ZXhlYywgaW5kZXgsIHZhbHVlKTsKLX0KLQogSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlv
bjo6YWRkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKICAgICBIVE1M
T3B0aW9uc0NvbGxlY3Rpb24qIGltcCA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlv
bio+KGltcGwoKSk7CkBAIC05NSw0ICsxMjQsNCBAQCBKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpyZW1vdmUoCiAgICAgcmV0dXJuIGJhc2UtPnJlbW92ZShleGVjLCBhcmdzKTsKIH0K
IAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwu
bW0JKHJldmlzaW9uIDQ5OTk3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2ltcG9ydCAiRE9NRG9jdW1lbnRG
cmFnbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01FeHRlbnNpb25zLmgiCi0jaW1wb3J0ICJE
T01IVE1MQ29sbGVjdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJET01IVE1MRG9jdW1lbnRJbnRl
cm5hbC5oIgogI2ltcG9ydCAiRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0
ICJET01IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmgiCkBAIC0zNyw3ICszNiw2IEBACiAjaW1w
b3J0ICJET01Qcml2YXRlLmgiCiAjaW1wb3J0ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW1wb3J0
ICJGcmFtZVZpZXcuaCIKLSNpbXBvcnQgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW1wb3J0ICJIVE1M
RG9jdW1lbnQuaCIKICNpbXBvcnQgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxT
ZWxlY3RFbGVtZW50LmgiCkBAIC0xODEsMTAgKzE3OSwzIEBACiB9CiAKIEBlbmQKLQotQ2xhc3Mg
a2l0Q2xhc3MoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCi17Ci0gICAgaWYg
KGNvbGxlY3Rpb24tPnR5cGUoKSA9PSBXZWJDb3JlOjpTZWxlY3RPcHRpb25zKQotICAgICAgICBy
ZXR1cm4gW0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiBjbGFzc107Ci0gICAgcmV0dXJuIFtET01I
VE1MQ29sbGVjdGlvbiBjbGFzc107Ci19CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
VXRpbGl0eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRpbGl0
eS5tbQkocmV2aXNpb24gNDk5OTcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRpbGl0
eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiRE9NQ291bnRl
ckludGVybmFsLmgiCiAjaW1wb3J0ICJET01FdmVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01I
VE1MQ29sbGVjdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rp
b25JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NSW1wbGVtZW50YXRpb25Gcm9udC5oIgogI2ltcG9y
dCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU1lZGlhTGlzdEludGVybmFsLmgiCkBAIC0x
MDUsNiArMTA2LDcgQEAgc3RhdGljIGlubGluZSBpZCBjcmVhdGVET01XcmFwcGVyKEpTQzo6Sgog
ICAgIFdSQVAoQ1NTVmFsdWUpCiAgICAgV1JBUChDb3VudGVyKQogICAgIFdSQVAoRXZlbnQpCisg
ICAgV1JBUChIVE1MQ29sbGVjdGlvbikKICAgICBXUkFQKEhUTUxPcHRpb25zQ29sbGVjdGlvbikK
ICAgICBXUkFQKE1lZGlhTGlzdCkKICAgICBXUkFQKE5hbWVkTm9kZU1hcCkKQEAgLTExNywyMCAr
MTE5LDE0IEBAIHN0YXRpYyBpbmxpbmUgaWQgY3JlYXRlRE9NV3JhcHBlcihKU0M6OkoKICAgICBX
UkFQKFN0eWxlU2hlZXQpCiAgICAgV1JBUChTdHlsZVNoZWV0TGlzdCkKICAgICBXUkFQKFRyZWVX
YWxrZXIpCisgICAgV1JBUChET01XaW5kb3dTaGVsbCkKICNpZiBFTkFCTEUoWFBBVEgpCiAgICAg
V1JBUChYUGF0aEV4cHJlc3Npb24pCiAgICAgV1JBUChYUGF0aFJlc3VsdCkKICNlbmRpZgogCi0g
ICAgLy8gVGhpcyBtdXN0IGJlIGFmdGVyIHRoZSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24gY2hlY2ss
IGJlY2F1c2UgaXQncyBhIHN1YmNsYXNzIGluIHRoZSBKYXZhU2NyaXB0Ci0gICAgLy8gYmluZGlu
ZywgYnV0IG5vdCBhIHN1YmNsYXNzIGluIHRoZSBPYmpDIGJpbmRpbmcuCi0gICAgV1JBUChIVE1M
Q29sbGVjdGlvbikKLQogICAgICN1bmRlZiBXUkFQCiAKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0
cygmV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6c19pbmZvKSkKLSAgICAgICAgcmV0dXJuIGtp
dChzdGF0aWNfY2FzdDxXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsKj4ob2JqZWN0KS0+aW1wbCgp
KTsKLQogICAgIGlmIChvYmplY3QtPmluaGVyaXRzKCZXZWJDb3JlOjpKU0RPTUltcGxlbWVudGF0
aW9uOjpzX2luZm8pKQogICAgICAgICByZXR1cm4ga2l0KGltcGxlbWVudGF0aW9uRnJvbnQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6SlNET01JbXBsZW1lbnRhdGlvbio+KG9iamVjdCkpKTsKIApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biA0OTk5OCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTE3MDgsNyArMTcwOCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gdG9KUyhl
eGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUq
Pih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKHNsb3QuaW5kZXgoKSkpO1xuIik7CiAgICAgICAgIH0K
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKLSAgICAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxBbGxD
b2xsZWN0aW9uIikgeworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxDb2xsZWN0
aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEFsbENvbGxlY3Rpb24iIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24iKSB7CiAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJKU05vZGUuaCJ9ID0gMTsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ik5vZGUu
aCJ9ID0gMTsKICAgICAgICAgfQpAQCAtMTcxOSw3ICsxNzE5LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGpzTnVtYmVyKGV4ZWMsIHN0YXRpY19jYXN0
PCRpbXBsQ2xhc3NOYW1lKj4oaW1wbCgpKS0+aXRlbShpbmRleCkpO1xuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuIik7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
SFRNTENvbGxlY3Rpb24iIG9yICRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQWxsQ29sbGVjdGlvbiIp
IHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJGlu
dGVyZmFjZU5hbWUgZXEgIkhUTUxBbGxDb2xsZWN0aW9uIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAi
SFRNTE9wdGlvbnNDb2xsZWN0aW9uIikgewogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNO
b2RlLmgifSA9IDE7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CiAg
ICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbAkocmV2aXNpb24gNDk5
OTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSGFzSW5kZXhHZXR0ZXIs
CiAgICAgICAgIEhhc05hbWVHZXR0ZXIsCiAgICAgICAgIEN1c3RvbUNhbGwsCi0gICAgICAgIEN1
c3RvbVRvSlMsCiAgICAgICAgIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQKICAgICBdIEhUTUxBbGxD
b2xsZWN0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiA0OTk5OCkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1
LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBIYXNJbmRleEdldHRlciwKICAgICAgICAgSGFz
TmFtZUdldHRlciwKICAgICAgICAgQ3VzdG9tQ2FsbCwKLSAgICAgICAgQ3VzdG9tVG9KUywKLSAg
ICAgICAgUG9seW1vcnBoaWMsCiAgICAgICAgIEludGVyZmFjZVVVSUQ9YjBkMjE1ZmYtNmY5Yy00
ZDFmLTg2YzMtZjIwMGE2NWE1MTM0LAogICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OGU4MWIx
N2YtN2Y3NC00MTIxLThmMmYtYTMzOWE3ZTY2NDQ3CiAgICAgXSBIVE1MQ29sbGVjdGlvbiB7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAkocmV2aXNpb24gNTAwMDEp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0y
MCwyNSArMjAsMjYgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgLy8gRklYTUU6IFRoZSBXM0Mg
c3BlYyBzYXlzIHRoYXQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIHNob3VsZCBub3QgaGF2ZSBhIHBh
cmVudCBjbGFzcy4KICAgICBpbnRlcmZhY2UgWwotICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZl
cnRlciwKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAgICAgSGFzSW5kZXhHZXR0
ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAorICAgICAgICBIYXNOYW1lR2V0dGVy
LAorICAgICAgICBDdXN0b21DYWxsLAogICAgICAgICBJbnRlcmZhY2VVVUlEPWEwM2FhZWFjLWU0
N2QtNGJiMy1hY2I0LWYxODk3YWU3NDIzNywKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTk5
YzExZmRlLTZmOWYtNDRhNC1hMDQxLTQ5YTg5NGM1MmU3MAotICAgIF0gSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uIDogSFRNTENvbGxlY3Rpb24gewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9u
ZyBzZWxlY3RlZEluZGV4OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gdW5z
aWduZWQgbG9uZyBsZW5ndGgKKyAgICBdIEhUTUxPcHRpb25zQ29sbGVjdGlvbiB7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSB1bnNpZ25lZCBsb25nIGxlbmd0aAog
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW0N1c3RvbV0gTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAg
ICBbQ3VzdG9tXSBOb2RlIG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7CiAKICAgICAgICAg
W0N1c3RvbV0gdm9pZCBhZGQoaW4gSFRNTE9wdGlvbkVsZW1lbnQgb3B0aW9uLCBpbiBbT3B0aW9u
YWxdIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAgICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHJlbW92ZShpbiB1bnNpZ25lZCBsb25nIGluZGV4
KTsKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZB
U0NSSVBUCi0gICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAg
ICAgTm9kZSBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOwotI2VuZGlmCisgICAgICAgIC8v
IEV4dGVuc2lvbgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzZWxlY3RlZEluZGV4
OwogICAgIH07CiAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUwMDM2KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTAtMjQgIFNh
bSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDc1MQorICAgICAgICBIVE1MT3B0aW9uc0NvbGxlY3Rpb24g
c2hvdWxkIG5vdCBpbmhlcml0IGZyb20gSFRNTENvbGxlY3Rpb24KKworICAgICAgICAqIGZhc3Qv
ZG9tL3dyYXBwZXItY2xhc3Nlcy1leHBlY3RlZC50eHQ6CisKIDIwMDktMTAtMjQgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vpbmln
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd3JhcHBlci1jbGFzc2VzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWNsYXNzZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0OTk5NykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3dyYXBw
ZXItY2xhc3Nlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw4ICsxNDEsOCBA
QCBQQVNTIGpzV3JhcHBlckNsYXNzKGRvY3VtZW50KSBpcyAnSFRNTERvCiBQQVNTIGpzV3JhcHBl
ckNsYXNzKGRvY3VtZW50Ll9fcHJvdG9fXykgaXMgJ0hUTUxEb2N1bWVudFByb3RvdHlwZScKIFBB
U1MganNXcmFwcGVyQ2xhc3MoZG9jdW1lbnQuY29uc3RydWN0b3IpIGlzICdIVE1MRG9jdW1lbnRD
b25zdHJ1Y3RvcicKIFBBU1MganNXcmFwcGVyQ2xhc3MoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2VsZWN0Jykub3B0aW9ucykgaXMgJ0hUTUxPcHRpb25zQ29sbGVjdGlvbicKLUZBSUwganNXcmFw
cGVyQ2xhc3MoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jykub3B0aW9ucy5fX3Byb3Rv
X18pIHNob3VsZCBiZSBIVE1MT3B0aW9uc0NvbGxlY3Rpb25Qcm90b3R5cGUuIFdhcyBIVE1MQ29s
bGVjdGlvblByb3RvdHlwZS4KLUZBSUwganNXcmFwcGVyQ2xhc3MoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2VsZWN0Jykub3B0aW9ucy5jb25zdHJ1Y3Rvcikgc2hvdWxkIGJlIEhUTUxPcHRpb25z
Q29sbGVjdGlvbkNvbnN0cnVjdG9yLiBXYXMgRnVuY3Rpb24uCitQQVNTIGpzV3JhcHBlckNsYXNz
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpLm9wdGlvbnMuX19wcm90b19fKSBpcyAn
SFRNTE9wdGlvbnNDb2xsZWN0aW9uUHJvdG90eXBlJworUEFTUyBqc1dyYXBwZXJDbGFzcyhkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKS5vcHRpb25zLmNvbnN0cnVjdG9yKSBpcyAnSFRN
TE9wdGlvbnNDb2xsZWN0aW9uQ29uc3RydWN0b3InCiAKIEhUTUwgRWxlbWVudHMKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>