<?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>7266</bug_id>
          
          <creation_ts>2006-02-14 22:07:08 -0800</creation_ts>
          <short_desc>Webarchive format saves duplicate WebSubresources to .webarchive file</short_desc>
          <delta_ts>2007-02-05 19:53:02 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>jim.correia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32552</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-14 22:07:08 -0800</bug_when>
    <thetext>Version 1 of the .webarchive format has some issues.  This may turn into a tracking bug later, but for now I&apos;ll just list them here.  Add more to comments as needed.  These issues occur in the latest WebKit (r12809 on anonsvn).  I have not tested them yet on released Safari.

1. Neither JavaScript nor CSS files are stored in the .webarchive.  Apparently these resources are reloaded from the web server once the .webarchive is reconstituted in the browser since the base URL for the main web page is preserved.

2. Duplicate copies of images are stored in the .webarchive: one copy for each time it appears on the web page (even though they reference the exact same URL).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32559</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-14 23:20:48 -0800</bug_when>
    <thetext>I can&apos;t reproduce issue #1 listed in the description (needs further testing), so changing this bug to document issue #2: saving multiple copies of the same image in a .webarchive file.

Steps to reproduce:

1. Open Safari (ToT WebKit or production release from 10.4.4/10.4.5).

2. Go to a page that reuses the same image multiple times on one page.  I use:  http://tv.yahoo.com/grid/  (enter your zip and choose your cable/satellite provider as needed)

3. Save the web page as a &quot;Web Archive&quot;.

4. Open the &quot;Web Archive&quot; in the Property List Editor.

5. Note under Root-&gt;WebSubresources that buttonleft.gif and buttonright.gif are stored as many times in the file as they appear on the web page.

Expected behavior:

The buttonleft.gif and buttonright.gif images should only be stored once per .webarchive.

Actual behavior:

The buttonleft.gif and buttonright.gif images are stored once each time they  .webarchive.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32561</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-14 23:42:01 -0800</bug_when>
    <thetext>Filed Bug 7267 for issue #1 in the description (Comment #0) of this bug.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43605</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-01 03:25:29 -0800</bug_when>
    <thetext>Another good test page is the BugReporter login page.  Count the number of spacer.gif images that appear in .webarchive file:  https://bugreport.apple.com/

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41707</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-16 07:12:42 -0800</bug_when>
    <thetext>WebSubresources may include images, CSS stylesheets and JavaScript sources, and all may be duplicated when saving a .webarchive file.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41413</commentid>
    <comment_count>5</comment_count>
      <attachid>11899</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-17 20:44:28 -0800</bug_when>
    <thetext>Created attachment 11899
Test files in zip archive

After unzipping the zip file, open bug-7266-test.html and save in webarchive.  There should only be three WebSubresources, but shipping Safari and ToT will save six (three duplicates).  After applying this patch, only three WebSubresources are saved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41406</commentid>
    <comment_count>6</comment_count>
      <attachid>11900</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-17 20:45:32 -0800</bug_when>
    <thetext>Created attachment 11900
Patch v1

First pass at a patch to prevent duplicate WebSubresources from being saved to webarchive files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41391</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-18 10:04:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=11900) [edit]
&gt; Patch v1
&gt; 
&gt; First pass at a patch to prevent duplicate WebSubresources from being saved to
&gt; webarchive files.

Another approach I could take with this is to pull the code that finds subresources by NSURL out into a separate loop, and use either an NSMutableDictionary (keys are NSURLs, values are integers, to keep order of URLs the same as they would have been with an NSArray) or an NSMutableSet (if the order doesn&apos;t really matter) to store the unique list of NSURL objects.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41205</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-18 20:14:20 -0800</bug_when>
    <thetext>BTW, the reason this works is that (void)addArchive:(WebArchive *)archive in WebUnarchivingState puts the subresource values into an NSMutableDictionary named archivedResources, which causes duplicates originally saved to the .webarchive file to be removed.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41173</commentid>
    <comment_count>9</comment_count>
      <attachid>11900</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-12-19 07:43:09 -0800</bug_when>
    <thetext>Comment on attachment 11900
Patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41099</commentid>
    <comment_count>10</comment_count>
      <attachid>11900</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-20 03:42:23 -0800</bug_when>
    <thetext>Comment on attachment 11900
Patch v1

Clearing review flag pending Bug 11882 and conversion to C++ of the archiving code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28865</commentid>
    <comment_count>11</comment_count>
      <attachid>12905</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-03 16:50:31 -0800</bug_when>
    <thetext>Created attachment 12905
Patch v2

Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27596</commentid>
    <comment_count>12</comment_count>
      <attachid>12905</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-04 18:41:44 -0800</bug_when>
    <thetext>Comment on attachment 12905
Patch v2

As we make more and more substantial changes it really makes me wish more of this was translated to C++.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27455</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-05 11:08:58 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; As we make more and more substantial changes it really makes me wish more of
&gt; this was translated to C++.

Given my time constraints and the apparent release schedule (e.g., the impending tree lock-down in two days), I don&apos;t think it&apos;s realistic to do this and still get the fixes into the next release (which is my primary goal).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27000</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-05 19:53:02 -0800</bug_when>
    <thetext>Committed revision 19422.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11899</attachid>
            <date>2006-12-17 20:44:28 -0800</date>
            <delta_ts>2006-12-17 20:44:28 -0800</delta_ts>
            <desc>Test files in zip archive</desc>
            <filename>bug-7266-test.zip</filename>
            <type>application/zip</type>
            <size>838</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIAJuykTXpAWjjpgAAAJwBAAASABUAYnVnLTcyNjYtdGVzdC5odG1sVVQJAAMlF4ZF
/ReGRVV4BAD1AfUBrZHLDoIwEEX3fEWdlS5KExe4EIi/wmOgxSKkMxj5eytlQYyJiXE1k3snZ16p
5t7mUaqxqH2gypmRBbkqg3Jq5emYJDKIcUcgeB4xA8YHq664F8GBPFUh8wRrblfh0GZAPFskjcgg
tMNmS3xZcUUEf+m54LZ1K3knZXQx/Tg4FpOz+08DHM6RlL5WLdJPC6j1eOVQzz6Yvn1bxitxaxr4
ZqqVoMJTnlBLAwQKAAIAAABmspE1+Gsk3wsAAAALAAAAEgAVAGJ1Zy03MjY2LXNjcmlwdC5qc1VU
CQADvxaGRf0XhkVVeAQA9QH1AWkgPSBpICsgMTsKUEsDBAoAAgAAAPqykTWVn3A3FQAAABUAAAAS
ABUAYnVnLTcyNjYtc3R5bGUuY3NzVVQJAAPYF4ZF/ReGRVV4BAD1AfUBLnJlZCB7IGNvbG9yOiBy
ZWQ7IH0KUEsDBBQAAgAIAMYJkjBijd4JJgAAAD0AAAAQABUAYnVnLTcyNjYtaW1nLmdpZlVUCQAD
tByCQP0XhkVVeAQA9QH1AXP3dLOwTGRkYGRYxMDw//9/BmxA8ScLI4jWAREgtQzMTBycDNYAUEsB
AhcDFAACAAgAm7KRNekBaOOmAAAAnAEAABIADQAAAAAAAQAAAKSBAAAAAGJ1Zy03MjY2LXRlc3Qu
aHRtbFVUBQADJReGRVV4AABQSwECFwMKAAIAAABmspE1+Gsk3wsAAAALAAAAEgANAAAAAAABAAAA
pIHrAAAAYnVnLTcyNjYtc2NyaXB0LmpzVVQFAAO/FoZFVXgAAFBLAQIXAwoAAgAAAPqykTWVn3A3
FQAAABUAAAASAA0AAAAAAAEAAACkgTsBAABidWctNzI2Ni1zdHlsZS5jc3NVVAUAA9gXhkVVeAAA
UEsBAhcDFAACAAgAxgmSMGKN3gkmAAAAPQAAABAADQAAAAAAAAAAAKSBlQEAAGJ1Zy03MjY2LWlt
Zy5naWZVVAUAA7QcgkBVeAAAUEsFBgAAAAAEAAQAMgEAAP4BAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11900</attachid>
            <date>2006-12-17 20:45:32 -0800</date>
            <delta_ts>2007-02-03 16:50:31 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-7266-v1.diff</filename>
            <type>text/plain</type>
            <size>2161</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTgyNzMpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMDYtMTItMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGtpbHplci5u
ZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NgorICAgICAgICBXZWJhcmNo
aXZlIGZvcm1hdCBzYXZlcyBkdXBsaWNhdGUgV2ViU3VicmVzb3VyY2VzIHRvIC53ZWJhcmNoaXZl
IGZpbGUKKworICAgICAgICAqIFdlYlZpZXcvV2ViQXJjaGl2ZXIubToKKyAgICAgICAgKCtbV2Vi
QXJjaGl2ZXIgX2FyY2hpdmVXaXRoTWFya3VwU3RyaW5nOmZyb21GcmFtZTpub2RlczpdKTogVXNl
IGFuIE5TTXV0YWJsZVNldCB0byBwcmV2ZW50CisgICAgICAgIGR1cGxpY2F0ZSBzdWJyZXNvdXJj
ZXMgZnJvbSBiZWluZyBhZGRlZCB0byB0aGUgd2ViYXJjaGl2ZS4KKwogMjAwNi0xMi0xNiAgQWRl
bGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bS4KSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkFyY2hpdmVyLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L1dlYlZpZXcvV2ViQXJjaGl2ZXIubQkocmV2aXNpb24gMTgyNzMpCisrKyBXZWJLaXQvV2Vi
Vmlldy9XZWJBcmNoaXZlci5tCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIAogICAgIE5TTXV0YWJsZUFycmF5ICpzdWJmcmFtZUFy
Y2hpdmVzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07CiAgICAgTlNNdXRhYmxlQXJy
YXkgKnN1YnJlc291cmNlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOworICAgIE5T
TXV0YWJsZVNldCAqdW5pcXVlU3VicmVzb3VyY2VzID0gW1tOU011dGFibGVTZXQgYWxsb2NdIGlu
aXRdOwogICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtub2RlcyBvYmplY3RFbnVtZXJh
dG9yXTsKICAgICBET01Ob2RlICpub2RlOwogICAgIHdoaWxlICgobm9kZSA9IFtlbnVtZXJhdG9y
IG5leHRPYmplY3RdKSAhPSBuaWwpIHsKQEAgLTEwMiw2ICsxMDMsOSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICAgICAgICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtbbm9k
ZSBfc3VicmVzb3VyY2VVUkxzXSBvYmplY3RFbnVtZXJhdG9yXTsKICAgICAgICAgICAgIE5TVVJM
ICpVUkw7CiAgICAgICAgICAgICB3aGlsZSAoKFVSTCA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3Rd
KSAhPSBuaWwpIHsKKyAgICAgICAgICAgICAgICBpZiAoW3VuaXF1ZVN1YnJlc291cmNlcyBjb250
YWluc09iamVjdDpVUkxdKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBbdW5pcXVlU3VicmVzb3VyY2VzIGFkZE9iamVjdDpVUkxdOwogICAgICAgICAgICAg
ICAgIFdlYlJlc291cmNlICpzdWJyZXNvdXJjZSA9IFtbZnJhbWUgZGF0YVNvdXJjZV0gc3VicmVz
b3VyY2VGb3JVUkw6VVJMXTsKICAgICAgICAgICAgICAgICBpZiAoc3VicmVzb3VyY2UpCiAgICAg
ICAgICAgICAgICAgICAgIFtzdWJyZXNvdXJjZXMgYWRkT2JqZWN0OnN1YnJlc291cmNlXTsKQEAg
LTExNCw2ICsxMTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAKICAgICBXZWJB
cmNoaXZlICphcmNoaXZlID0gW1tbV2ViQXJjaGl2ZSBhbGxvY10gaW5pdFdpdGhNYWluUmVzb3Vy
Y2U6bWFpblJlc291cmNlIHN1YnJlc291cmNlczpzdWJyZXNvdXJjZXMgc3ViZnJhbWVBcmNoaXZl
czpzdWJmcmFtZUFyY2hpdmVzXSBhdXRvcmVsZWFzZV07CiAgICAgW21haW5SZXNvdXJjZSByZWxl
YXNlXTsKKyAgICBbdW5pcXVlU3VicmVzb3VyY2VzIHJlbGVhc2VdOwogICAgIFtzdWJyZXNvdXJj
ZXMgcmVsZWFzZV07CiAgICAgW3N1YmZyYW1lQXJjaGl2ZXMgcmVsZWFzZV07CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12905</attachid>
            <date>2007-02-03 16:50:31 -0800</date>
            <delta_ts>2007-02-04 18:41:44 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-7266-v2.diff</filename>
            <type>text/plain</type>
            <size>14951</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5Mzg5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDItMDMgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2Ngor
ICAgICAgICBXZWJhcmNoaXZlIGZvcm1hdCBzYXZlcyBkdXBsaWNhdGUgV2ViU3VicmVzb3VyY2Vz
IHRvIC53ZWJhcmNoaXZlIGZpbGUKKworICAgICAgICAqIHdlYmFyY2hpdmUvdGVzdC1kdXBsaWNh
dGUtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dDogRHVwbGljYXRlIHJlc291cmNlcyByZW1vdmVkLgor
ICAgICAgICAqIHdlYmFyY2hpdmUvdGVzdC1mcmFtZXNldC1leHBlY3RlZC50eHQ6IERpdHRvLgor
CiAyMDA3LTAyLTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1kdXBsaWNhdGUtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtZHVwbGljYXRlLXJlc291cmNlcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE5Mzg5KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWR1cGxpY2F0ZS1y
ZXNvdXJjZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsODUgKzE2OCw2IEBA
CiAJCQkJCTxrZXk+V2ViUmVzb3VyY2VVUkw8L2tleT4KIAkJCQkJPHN0cmluZz5maWxlOi8vL0xh
eW91dFRlc3RzL3dlYmFyY2hpdmUvcmVzb3VyY2VzL2FwcGxlLmdpZjwvc3RyaW5nPgogCQkJCTwv
ZGljdD4KLQkJCQk8ZGljdD4KLQkJCQkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KLQkJCQkJ
PGRhdGE+Ci0JCQkJCVIwbEdPRGxoTkFCQUFNUWZBR0ppWXZMejlJbUtpdHZiMi8zOQotCQkJCQkv
Y25KeWFTa3BPUGo0OVRVMU1IQndiVzF0ZXJxN0x1N3UvWDEKLQkJCQkJOXVYbTUrM3U3K2ZvNmVE
ZzRlL3c4dDdlMy9uNStSY1hGODdPCi0JCQkJCXovZjM5OGZIeDlmWDE2K3ZyOUhSMGZEdzhQajQr
TXpNekFBQQotCQkJCQlBQ0g1QkFFQUFCOEFMQUFBQUFBMEFFQUFRQVgvNENlT1pHbWUKLQkJCQkJ
NWlGVWxZQytjQ3dLRDdGQXh4RWxBaVREbkFUQWNDRVlqOGFBCi0JCQkJCUJpQklEQ0lialFDZ3FC
RW9qVUNqUVNFRXBvWFRBVUNRTEI0UAotCQkJCQlpWm9UYUcvZmpjdUZnajFrQnJuSVpETG9EeklJ
Z1JzVEFnWW0KLQkJCQkJQms4VEVRNE9FR2RwYkJRTERBVVFFQTU1ZTMyQUd4c1dIaDRGCi0JCQkJ
CUJSZ0pDUWdGQWhRb0N3SURsZ3NTRnh5Rk9udDhmb0FJbnAragotCQkJCQlwUWtNd0FyQ0dzUWFD
ZzBLQmdFb0R3QUFIb0hSZ3JvVzFhRVkKLQkJCQkJcEw3QTI4TER4Y1VHR2dhbGhpOElBQWdZb092
cm41L3NvTDJsCi0JCQkJCXdjVGhFQlFBQXovN0p4WUFYVmNDUE5qZ2dwL0JFd0lZT0hObQotCQkJ
CQl3TUhCRXJNU0VNZ0NSNDdGQzNFd3dubHpvY09GQnhNeTNOSGsKLQkJCQkJcDg4RUJ3VS8vL2dq
Y0tDUm8wY1BPRWh3TTZmRGdVR1dNdUhLCi0JCQkJCXRRdlVCZ0JoVGhoUTRDQkNTd2hvSkRUb1FL
eGxqbHE0QlBIQwotCQkJCQlObytiZ2dYRVhud1pNTk1BdXBKL2NrbTlSdlVYZzI3ZHZxbGwKLQkJ
CQkJa0VGQUR4TVFBS2lyWnMzRHUxQ2lScFgxWmZhc04zRUdBbHNZCi0JCQkJCUlJQUR2M01DRG5C
b3dLRUFRd1NHU1J6QU1FVkFCSXdUbUNCNAotCQkJCQl5SGtFUVFNQUNRRFkwTG16Z0FsWFpGMGFj
NkQwUXdVSk9BeEEKLQkJCQkJa01BcmdBeXVUM2dRNXpZd0JoOGpCbWhnb0c5RUJnWUczQmJTCi0J
CQkJCVFIcGZCQUVLakhTWVR0M2p4UTRCSDNEQjJFYUxuQVlMSWdDNgotCQkJCQlFeUd1QmhNRHlE
U0kyWDNqbHU4VmF5NzQ4MFRQclUyNTBwOG4KLQkJCQkJMFNyQVN6UXhzVEdURnU5aEY0QjQ1V0VT
Z2Y4ZStFV3p5MC9OCi0JCQkJCWxUQk9lRGswQXROTWNWQVFRQ2NINUxUZ0xTSko5YzRvb1Fpdwot
CQkJCQlqRkFJN0dHVWhXa0UwQUZXditHUUI0Ti82T0pKUE5uTVkwRUEKLQkJCQkJQUN5QWdtTVNM
SUtVQkJ4UWdFb0dSWDBJSWs4ajVoaU1Od3hRCi0JCQkJCWtCQUtEQWhneGdNZGVDQlhCR0NKRkdJ
bnZNaGoxVi9mSk1DagotCQkJCQltU1ZFQUVCY0FGaVFTNGpTOUhTTk5rK21wWlphQm1Bd1dnbVoK
LQkJCQkJVWVOSko0RFdKVXFPZEk2SloyRGpFSEtpQ1J3RUJnODhCYkNUCi0JCQkJCWwxNU8rbFVQ
b28zdTk0TUNBRVJBaWpyeCtOUUhCdUlvNEVHTgotCQkJCQlnQlJRaWdjUmRBRkFBcmw5RUFBYkJu
V2dSYXlsT2JDRWlRUUkKLQkJCQkJRUNHdSsyaTVnQkVheGdVY3NESmsxc0FWdHA0eEpiSXk2Smtk
Ci0JCQkJCUpoQkFCNjMvRENzdG9PQUdYaFYzTFF4ZXViV1FaZC8ra0JCRAotCQkJCQl1RjE3QUtj
QWFEREFBdUVwMUc0R0RaaUFnQlJNWU9EQUFnZFkKLQkJCQkJWUJzRCt6amdGVUFVVkdlZEVSZjhO
TzQ5QVEyWWtYODVaTkR1Ci0JCQkJCUN5b1VjRVZHQmx1bkVVVmJ1QkhIZEJ3Y01OdElma3dRRndZ
bAotCQkJCQlVTUREUkE1djlCMThGUlVNSG4yMmdCVVdJWnArUUVHZUJLU2gKLQkJCQkJUm5jZXU1
Y1JIYkxkb2ROTzBhU25nQWxWMnZDSUJENFBTT0I3Ci0JCQkJCWMwaGlkQ2IzMVRnTkR5ZkVkY0Vs
THozQ3dkZ3QwN0hBSFkwYwotCQkJCQlyYldON2lpUVVnbHVON0RpSzJlUTNjWWNGd3l3UVljeTBn
Z24KLQkJCQkJbUx4NDhGTnJRbGxRMUZHdnhJUWhCUStvMHdnbVVJVTFGbDdZCi0JCQkJCWJFQlpC
eWdnc2tlRmppUVZBQVVRS0ZESi8ycDVSRVVOamxTeAotCQkJCQkxZFlGbVdPZ2g1QmlhemhjVGxo
dk1wWmVkTUltMnE4a3VFMWgKLQkJCQkJNXpOUmtNeEpNOTdISkk2NUQ3TkJCejJla05rRExaMGhR
UWVFCi0JCQkJCUpaQWtqYmFmUG1kVmRoS0RRQU1BRUM1aEFnOGc5WGx5ZU5ScwotCQkJCQkrbzFr
VmVXWEFuY3l3RHdEOVpLUW1TTUJMREFFbDEzeWRDUHUKLQkJCQkJM0NQVG5SS2dQd1A0YUFSVnVv
QmpFQkdXOGZpdlNka1lFL3p1Ci0JCQkJCWRDY1BDTUFEdlVPWE5PSUVKdFFWQ2kwQ3hGTjZIbEND
S2dGcQotCQkJCQlBNElJMUYwQTZMNDZrUWxSZ1JrREJrMGdoVjNRNVlZUXhBYWgKLQkJCQkJdHZH
a2I4RFFnTTk0Z1dQdUFvcTZ4Q012R0tEVURsOFltT2lnCi0JCQkJCUl3WXlqTlNqcHJpT1FVWFFV
cGZpbHdBYzhnTWhaQ0FCYzhIaAotCQkJCQlOU0psZ1RrT2dvSVVaeWtHK1VRVEZJTW9oQkVJS0dO
OUJtQ2IKLQkJCQkJUWdSbUNxK2F3QUl3Z2gwYnZNbzFDNmhOWmZKMHdCZE13RzI5Ci0JCQkJCUtR
QUp5L1d0RUFBQU8xQnZiRzl1ZFhNSwotCQkJCQk8L2RhdGE+Ci0JCQkJCTxrZXk+V2ViUmVzb3Vy
Y2VNSU1FVHlwZTwva2V5PgotCQkJCQk8c3RyaW5nPmltYWdlL2dpZjwvc3RyaW5nPgotCQkJCQk8
a2V5PldlYlJlc291cmNlUmVzcG9uc2U8L2tleT4KLQkJCQkJPGRhdGE+Ci0JCQkJCVluQnNhWE4w
TUREVUFRSURCQVVHQndwWkpHRnlZMmhwZG1WeQotCQkJCQlXQ1IyWlhKemFXOXVWQ1IwYjNCWUpH
OWlhbVZqZEhOZkVBOU8KLQkJCQkJVTB0bGVXVmtRWEpqYUdsMlpYSVNBQUdHb05FSUNWOFFFMWRs
Ci0JCQkJCVlsSmxjMjkxY21ObFVtVnpjRzl1YzJXQUFhUUxEQnNjVlNSdQotCQkJCQlkV3hzMXcw
T0R4QVJFaE1VRlJZWEdCa1ZVaVF5VWlRelVpUTAKLQkJCQkJVWlRd1ZpUmpiR0Z6YzFJa05WSWtN
WUFDZ0FBUkJjUVFCNEFECi0JCQkJCUkzL3YvLy8vLy8vL2dBQlphVzFoWjJVdloybG0waDBlSHlC
WQotCQkJCQlKR05zWVhOelpYTmFKR05zWVhOemJtRnRaYUlnSVYxT1UxVlMKLQkJCQkJVEZKbGMz
QnZibk5sV0U1VFQySnFaV04wQ0JFYkpDa3lSRWxNCi0JCQkJCVltUnBiMzZCaEllS2taU1htWnVl
b0tLcnJiZTh4ZERUNFFBQQotCQkJCQlBQUFBQUFFQkFBQUFBQUFBQUNJQUFBQUFBQUFBQUFBQUFB
QUEKLQkJCQkJQUFEcQotCQkJCQk8L2RhdGE+Ci0JCQkJCTxrZXk+V2ViUmVzb3VyY2VVUkw8L2tl
eT4KLQkJCQkJPHN0cmluZz5maWxlOi8vL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvcmVzb3VyY2Vz
L2FwcGxlLmdpZjwvc3RyaW5nPgotCQkJCTwvZGljdD4KIAkJCTwvYXJyYXk+CiAJCTwvZGljdD4K
IAk8L2FycmF5PgpAQCAtMjk2LDEwNiArMjE3LDYgQEAKIAkJPC9kaWN0PgogCQk8ZGljdD4KIAkJ
CTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+Ci0JCQk8c3RyaW5nPmlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzV2ViQXJjaGl2
ZSgpOwotPC9zdHJpbmc+Ci0JCQk8a2V5PldlYlJlc291cmNlTUlNRVR5cGU8L2tleT4KLQkJCTxz
dHJpbmc+YXBwbGljYXRpb24veC1qYXZhc2NyaXB0PC9zdHJpbmc+Ci0JCQk8a2V5PldlYlJlc291
cmNlUmVzcG9uc2U8L2tleT4KLQkJCTxkYXRhPgotCQkJWW5Cc2FYTjBNRERVQVFJREJBVUdCd3Ba
SkdGeVkyaHBkbVZ5V0NSMlpYSnphVzl1VkNSMAotCQkJYjNCWUpHOWlhbVZqZEhOZkVBOU9VMHRs
ZVdWa1FYSmphR2wyWlhJU0FBR0dvTkVJQ1Y4UQotCQkJRTFkbFlsSmxjMjkxY21ObFVtVnpjRzl1
YzJXQUFhUUxEQnNjVlNSdWRXeHMxdzBPRHhBUgotCQkJRWhNVUZSWVhHQmtWVWlReVVpUXpVaVEw
VWlRd1ZpUmpiR0Z6YzFJa05WSWtNWUFDZ0FBUQotCQkJVGhBSGdBTWpmKy8vLy8vLy8vK0FBRjhR
R0dGd2NHeHBZMkYwYVc5dUwzZ3RhbUYyWVhOagotCQkJY21sd2ROSWRIaDhnV0NSamJHRnpjMlZ6
V2lSamJHRnpjMjVoYldXaUlDRmRUbE5WVWt4UwotCQkJWlhOd2IyNXpaVmhPVTA5aWFtVmpkQWdS
R3lRcE1rUkpUR0prYVc5K2dZU0hpcEdVbDVtYgotCQkJbloraHFxekh6TlhnNC9FQUFBQUFBQUFC
QVFBQUFBQUFBQUFpQUFBQUFBQUFBQUFBQUFBQQotCQkJQUFBQStnPT0KLQkJCTwvZGF0YT4KLQkJ
CTxrZXk+V2ViUmVzb3VyY2VVUkw8L2tleT4KLQkJCTxzdHJpbmc+ZmlsZTovLy9MYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Jlc291cmNlcy9kdW1wLXdlYmFyY2hpdmUuanM8L3N0cmluZz4KLQkJPC9k
aWN0PgotCQk8ZGljdD4KLQkJCTxrZXk+V2ViUmVzb3VyY2VEYXRhPC9rZXk+Ci0JCQk8c3RyaW5n
PmRpdiB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjog
cmVkOyB9Ci08L3N0cmluZz4KLQkJCTxrZXk+V2ViUmVzb3VyY2VNSU1FVHlwZTwva2V5PgotCQkJ
PHN0cmluZz50ZXh0L2Nzczwvc3RyaW5nPgotCQkJPGtleT5XZWJSZXNvdXJjZVJlc3BvbnNlPC9r
ZXk+Ci0JCQk8ZGF0YT4KLQkJCVluQnNhWE4wTUREVUFRSURCQVVHQndwWkpHRnlZMmhwZG1WeVdD
UjJaWEp6YVc5dVZDUjAKLQkJCWIzQllKRzlpYW1WamRITmZFQTlPVTB0bGVXVmtRWEpqYUdsMlpY
SVNBQUdHb05FSUNWOFEKLQkJCUUxZGxZbEpsYzI5MWNtTmxVbVZ6Y0c5dWMyV0FBYVFMREJzY1ZT
UnVkV3hzMXcwT0R4QVIKLQkJCUVoTVVGUllYR0JrVlVpUXlVaVF6VWlRMFVpUXdWaVJqYkdGemMx
SWtOVklrTVlBQ2dBQVEKLQkJCVB4QUhnQU1qZisvLy8vLy8vLytBQUZoMFpYaDBMMk56YzlJZEho
OGdXQ1JqYkdGemMyVnoKLQkJCVdpUmpiR0Z6YzI1aGJXV2lJQ0ZkVGxOVlVreFNaWE53YjI1elpW
aE9VMDlpYW1WamRBZ1IKLQkJCUd5UXBNa1JKVEdKa2FXOStnWVNIaXBHVWw1bWJuWitocXF5MXVz
UE8wZDhBQUFBQUFBQUIKLQkJCUFRQUFBQUFBQUFBaUFBQUFBQUFBQUFBQUFBQUFBQUFBNkE9PQot
CQkJPC9kYXRhPgotCQkJPGtleT5XZWJSZXNvdXJjZVVSTDwva2V5PgotCQkJPHN0cmluZz5maWxl
Oi8vL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvcmVzb3VyY2VzL3Rlc3Qtc3R5bGUuY3NzPC9zdHJp
bmc+Ci0JCTwvZGljdD4KLQkJPGRpY3Q+Ci0JCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5Pgot
CQkJPGRhdGE+Ci0JCQlSMGxHT0RsaE5BQkFBTVFmQUdKaVl2THo5SW1LaXR2YjIvMzkvY25KeWFT
a3BPUGo0OVRVCi0JCQkxTUhCd2JXMXRlcnE3THU3dS9YMTl1WG01KzN1NytmbzZlRGc0ZS93OHQ3
ZTMvbjUrUmNYCi0JCQlGODdPei9mMzk4Zkh4OWZYMTYrdnI5SFIwZkR3OFBqNCtNek16QUFBQUNI
NUJBRUFBQjhBCi0JCQlMQUFBQUFBMEFFQUFRQVgvNENlT1pHbWU1aUZVbFlDK2NDd0tEN0ZBeHhF
bEFpVERuQVRBCi0JCQljQ0VZajhhQUJpQklEQ0lialFDZ3FCRW9qVUNqUVNFRXBvWFRBVUNRTEI0
UGlab1RhRy9mCi0JCQlqY3VGZ2oxa0JybklaRExvRHpJSWdSc1RBZ1ltQms4VEVRNE9FR2RwYkJR
TERBVVFFQTU1Ci0JCQllMzJBR3hzV0hoNEZCUmdKQ1FnRkFoUW9Dd0lEbGdzU0Z4eUZPbnQ4Zm9B
SW5wK2pwUWtNCi0JCQl3QXJDR3NRYUNnMEtCZ0VvRHdBQUhvSFJncm9XMWFFWXBMN0EyOExEeGNV
R0dnYWxoaThJCi0JCQlBQWdZb092cm41L3NvTDJsd2NUaEVCUUFBei83SnhZQVhWY0NQTmpnZ3Av
QkV3SVlPSE5tCi0JCQl3TUhCRXJNU0VNZ0NSNDdGQzNFd3dubHpvY09GQnhNeTNOSGtwODhFQndV
Ly8vZ2pjS0NSCi0JCQlvMGNQT0Vod002ZkRnVUdXTXVIS3RRdlVCZ0JoVGhoUTRDQkNTd2hvSkRU
b1FLeGxqbHE0Ci0JCQlCUEhDTm8rYmdnWEVYbndaTU5NQXVwSi9ja205UnZVWGcyN2R2cWxsa0VG
QUR4TVFBS2lyCi0JCQlaczNEdTFDaVJwWDFaZmFzTjNFR0Fsc1lJSUFEdjNNQ0RuQm93S0VBUXdT
R1NSekFNRVZBCi0JCQlCSXdUbUNCNHlIa0VRUU1BQ1FEWTBMbXpnQWxYWkYwYWM2RDBRd1VKT0F4
QWtNQXJnQXl1Ci0JCQlUM2dRNXpZd0JoOGpCbWhnb0c5RUJnWUczQmJTUUhwZkJBRUtqSFNZVHQz
anhRNEJIM0RCCi0JCQkyRWFMbkFZTElnQzZFeUd1QmhNRHlEU0kyWDNqbHU4VmF5NzQ4MFRQclUy
NTBwOG4wU3JBCi0JCQlTelF4c1RHVEZ1OWhGNEI0NVdFU2dmOGUrRVd6eTAvTmxUQk9lRGswQXRO
TWNWQVFRQ2NICi0JCQk1TFRnTFNKSjljNG9vUWl3akZBSTdHR1VoV2tFMEFGV3YrR1FCNE4vNk9K
SlBObk1ZMEVBCi0JCQlBQ3lBZ21NU0xJS1VCQnhRZ0VvR1JYMElJazhqNWhpTU53eFFrQkFLREFo
Z3hnTWRlQ0JYCi0JCQlCR0NKRkdJbnZNaGoxVi9mSk1Dam1TVkVBRUJjQUZpUVM0alM5SFNOTmsr
bXBaWmFCbUF3Ci0JCQlXZ21aVWVOSko0RFdKVXFPZEk2SloyRGpFSEtpQ1J3RUJnODhCYkNUbDE1
TytsVVBvbzN1Ci0JCQk5NE1DQUVSQWlqcngrTlFIQnVJbzRFR05nQlJRaWdjUmRBRkFBcmw5RUFB
YkJuV2dSYXlsCi0JCQlPYkNFaVFRSUVDR3UrMmk1Z0JFYXhnVWNzREprMXNBVnRwNHhKYkl5Nkpr
ZEpoQkFCNjMvCi0JCQlEQ3N0b09BR1hoVjNMUXhldWJXUVpkLytrQkJEdUYxN0FLY0FhRERBQXVF
cDFHNEdEWmlBCi0JCQlnQlJNWU9EQUFnZFlZQnNEK3pqZ0ZVQVVWR2VkRVJmOE5PNDlBUTJZa1g4
NVpORHVDeW9VCi0JCQljRVZHQmx1bkVVVmJ1QkhIZEJ3Y01OdElma3dRRndZbFVNRERSQTV2OUIx
OEZSVU1IbjIyCi0JCQlnQlVXSVpwK1FFR2VCS1NoUm5jZXU1Y1JIYkxkb2ROTzBhU25nQWxWMnZD
SUJENFBTT0I3Ci0JCQljMGhpZENiMzFUZ05EeWZFZGNFbEx6M0N3ZGd0MDdIQUhZMGNyYldON2lp
UVVnbHVON0RpCi0JCQlLMmVRM2NZY0Z3eXdRWWN5MGdnbm1MeDQ4Rk5yUWxsUTFGR3Z4SVFoQlEr
bzB3Z21VSVUxCi0JCQlGbDdZYkVCWkJ5Z2dza2VGamlRVkFBVVFLRkRKLzJwNVJFVU5qbFN4MWRZ
Rm1XT2doNUJpCi0JCQlhemhjVGxodk1wWmVkTUltMnE4a3VFMWg1ek5Sa014Sk05N0hKSTY1RDdO
QkJ6MmVrTmtECi0JCQlMWjBoUVFlRUpaQWtqYmFmUG1kVmRoS0RRQU1BRUM1aEFnOGc5WGx5ZU5S
cytvMWtWZVdYCi0JCQlBbmN5d0R3RDlaS1FtU01CTERBRWwxM3lkQ1B1M0NQVG5SS2dQd1A0YUFS
VnVvQmpFQkdXCi0JCQk4Zml2U2RrWUUvenVkQ2NQQ01BRHZVT1hOT0lFSnRRVkNpMEN4Rk42SGxD
Q0tnRnFBNElJCi0JCQkxRjBBNkw0NmtRbFJnUmtEQmswZ2hWM1E1WVlReEFhaHR2R2tiOERRZ005
NGdXUHVBb3E2Ci0JCQl4Q012R0tEVURsOFltT2lnSXdZeWpOU2pwcmlPUVVYUVVwZmlsd0FjOGdN
aFpDQUJjOEhoCi0JCQlOU0psZ1RrT2dvSVVaeWtHK1VRVEZJTW9oQkVJS0dOOUJtQ2JRZ1JtQ3Er
YXdBSXdnaDBiCi0JCQl2TW8xQzZoTlpmSjB3QmRNd0cyOUtRQUp5L1d0RUFBQU8xQnZiRzl1ZFhN
SwotCQkJPC9kYXRhPgotCQkJPGtleT5XZWJSZXNvdXJjZU1JTUVUeXBlPC9rZXk+Ci0JCQk8c3Ry
aW5nPmltYWdlL2dpZjwvc3RyaW5nPgotCQkJPGtleT5XZWJSZXNvdXJjZVJlc3BvbnNlPC9rZXk+
Ci0JCQk8ZGF0YT4KLQkJCVluQnNhWE4wTUREVUFRSURCQVVHQndwWkpHRnlZMmhwZG1WeVdDUjJa
WEp6YVc5dVZDUjAKLQkJCWIzQllKRzlpYW1WamRITmZFQTlPVTB0bGVXVmtRWEpqYUdsMlpYSVNB
QUdHb05FSUNWOFEKLQkJCUUxZGxZbEpsYzI5MWNtTmxVbVZ6Y0c5dWMyV0FBYVFMREJzY1ZTUnVk
V3hzMXcwT0R4QVIKLQkJCUVoTVVGUllYR0JrVlVpUXlVaVF6VWlRMFVpUXdWaVJqYkdGemMxSWtO
VklrTVlBQ2dBQVIKLQkJCUJjUVFCNEFESTMvdi8vLy8vLy8vZ0FCWmFXMWhaMlV2WjJsbTBoMGVI
eUJZSkdOc1lYTnoKLQkJCVpYTmFKR05zWVhOemJtRnRaYUlnSVYxT1UxVlNURkpsYzNCdmJuTmxX
RTVUVDJKcVpXTjAKLQkJCUNCRWJKQ2t5UkVsTVltUnBiMzZCaEllS2taU1htWnVlb0tLcnJiZTh4
ZERUNFFBQUFBQUEKLQkJCUFBRUJBQUFBQUFBQUFDSUFBQUFBQUFBQUFBQUFBQUFBQUFEcQotCQkJ
PC9kYXRhPgotCQkJPGtleT5XZWJSZXNvdXJjZVVSTDwva2V5PgotCQkJPHN0cmluZz5maWxlOi8v
L0xheW91dFRlc3RzL3dlYmFyY2hpdmUvcmVzb3VyY2VzL2FwcGxlLmdpZjwvc3RyaW5nPgotCQk8
L2RpY3Q+Ci0JCTxkaWN0PgotCQkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KIAkJCTxkYXRh
PgogCQkJUjBsR09EbGhOQUJBQU1RZkFHSmlZdkx6OUltS2l0dmIyLzM5L2NuSnlhU2twT1BqNDlU
VQogCQkJMU1IQndiVzF0ZXJxN0x1N3UvWDE5dVhtNSszdTcrZm82ZURnNGUvdzh0N2UzL241K1Jj
WApJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWZyYW1lc2V0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtZnJhbWVzZXQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxOTM4OSkKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1mcmFtZXNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw4NSArMTU1LDYg
QEAKIAkJCQkJPGtleT5XZWJSZXNvdXJjZVVSTDwva2V5PgogCQkJCQk8c3RyaW5nPmZpbGU6Ly8v
TGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9yZXNvdXJjZXMvYXBwbGUuZ2lmPC9zdHJpbmc+CiAJCQkJ
PC9kaWN0PgotCQkJCTxkaWN0PgotCQkJCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5PgotCQkJ
CQk8ZGF0YT4KLQkJCQkJUjBsR09EbGhOQUJBQU1RZkFHSmlZdkx6OUltS2l0dmIyLzM5Ci0JCQkJ
CS9jbkp5YVNrcE9QajQ5VFUxTUhCd2JXMXRlcnE3THU3dS9YMQotCQkJCQk5dVhtNSszdTcrZm82
ZURnNGUvdzh0N2UzL241K1JjWEY4N08KLQkJCQkJei9mMzk4Zkh4OWZYMTYrdnI5SFIwZkR3OFBq
NCtNek16QUFBCi0JCQkJCUFDSDVCQUVBQUI4QUxBQUFBQUEwQUVBQVFBWC80Q2VPWkdtZQotCQkJ
CQk1aUZVbFlDK2NDd0tEN0ZBeHhFbEFpVERuQVRBY0NFWWo4YUEKLQkJCQkJQmlCSURDSWJqUUNn
cUJFb2pVQ2pRU0VFcG9YVEFVQ1FMQjRQCi0JCQkJCWlab1RhRy9mamN1RmdqMWtCcm5JWkRMb0R6
SUlnUnNUQWdZbQotCQkJCQlCazhURVE0T0VHZHBiQlFMREFVUUVBNTVlMzJBR3hzV0hoNEYKLQkJ
CQkJQlJnSkNRZ0ZBaFFvQ3dJRGxnc1NGeHlGT250OGZvQUlucCtqCi0JCQkJCXBRa013QXJDR3NR
YUNnMEtCZ0VvRHdBQUhvSFJncm9XMWFFWQotCQkJCQlwTDdBMjhMRHhjVUdHZ2FsaGk4SUFBZ1lv
T3ZybjUvc29MMmwKLQkJCQkJd2NUaEVCUUFBei83SnhZQVhWY0NQTmpnZ3AvQkV3SVlPSE5tCi0J
CQkJCXdNSEJFck1TRU1nQ1I0N0ZDM0V3d25sem9jT0ZCeE15M05IawotCQkJCQlwODhFQndVLy8v
Z2pjS0NSbzBjUE9FaHdNNmZEZ1VHV011SEsKLQkJCQkJdFF2VUJnQmhUaGhRNENCQ1N3aG9KRFRv
UUt4bGpscTRCUEhDCi0JCQkJCU5vK2JnZ1hFWG53Wk1OTUF1cEovY2ttOVJ2VVhnMjdkdnFsbAot
CQkJCQlrRUZBRHhNUUFLaXJaczNEdTFDaVJwWDFaZmFzTjNFR0Fsc1kKLQkJCQkJSUlBRHYzTUNE
bkJvd0tFQVF3U0dTUnpBTUVWQUJJd1RtQ0I0Ci0JCQkJCXlIa0VRUU1BQ1FEWTBMbXpnQWxYWkYw
YWM2RDBRd1VKT0F4QQotCQkJCQlrTUFyZ0F5dVQzZ1E1ell3Qmg4akJtaGdvRzlFQmdZRzNCYlMK
LQkJCQkJUUhwZkJBRUtqSFNZVHQzanhRNEJIM0RCMkVhTG5BWUxJZ0M2Ci0JCQkJCUV5R3VCaE1E
eURTSTJYM2psdThWYXk3NDgwVFByVTI1MHA4bgotCQkJCQkwU3JBU3pReHNUR1RGdTloRjRCNDVX
RVNnZjhlK0VXenkwL04KLQkJCQkJbFRCT2VEazBBdE5NY1ZBUVFDY0g1TFRnTFNKSjljNG9vUWl3
Ci0JCQkJCWpGQUk3R0dVaFdrRTBBRld2K0dRQjROLzZPSkpQTm5NWTBFQQotCQkJCQlBQ3lBZ21N
U0xJS1VCQnhRZ0VvR1JYMElJazhqNWhpTU53eFEKLQkJCQkJa0JBS0RBaGd4Z01kZUNCWEJHQ0pG
R0ludk1oajFWL2ZKTUNqCi0JCQkJCW1TVkVBRUJjQUZpUVM0alM5SFNOTmsrbXBaWmFCbUF3V2dt
WgotCQkJCQlVZU5KSjREV0pVcU9kSTZKWjJEakVIS2lDUndFQmc4OEJiQ1QKLQkJCQkJbDE1Tyts
VVBvbzN1OTRNQ0FFUkFpanJ4K05RSEJ1SW80RUdOCi0JCQkJCWdCUlFpZ2NSZEFGQUFybDlFQUFi
Qm5XZ1JheWxPYkNFaVFRSQotCQkJCQlFQ0d1KzJpNWdCRWF4Z1Vjc0RKazFzQVZ0cDR4SmJJeTZK
a2QKLQkJCQkJSmhCQUI2My9EQ3N0b09BR1hoVjNMUXhldWJXUVpkLytrQkJECi0JCQkJCXVGMTdB
S2NBYUREQUF1RXAxRzRHRFppQWdCUk1ZT0RBQWdkWQotCQkJCQlZQnNEK3pqZ0ZVQVVWR2VkRVJm
OE5PNDlBUTJZa1g4NVpORHUKLQkJCQkJQ3lvVWNFVkdCbHVuRVVWYnVCSEhkQndjTU50SWZrd1FG
d1lsCi0JCQkJCVVNRERSQTV2OUIxOEZSVU1IbjIyZ0JVV0lacCtRRUdlQktTaAotCQkJCQlSbmNl
dTVjUkhiTGRvZE5PMGFTbmdBbFYydkNJQkQ0UFNPQjcKLQkJCQkJYzBoaWRDYjMxVGdORHlmRWRj
RWxMejNDd2RndDA3SEFIWTBjCi0JCQkJCXJiV043aWlRVWdsdU43RGlLMmVRM2NZY0Z3eXdRWWN5
MGdnbgotCQkJCQltTHg0OEZOclFsbFExRkd2eElRaEJRK28wd2dtVUlVMUZsN1kKLQkJCQkJYkVC
WkJ5Z2dza2VGamlRVkFBVVFLRkRKLzJwNVJFVU5qbFN4Ci0JCQkJCTFkWUZtV09naDVCaWF6aGNU
bGh2TXBaZWRNSW0ycThrdUUxaAotCQkJCQk1ek5Sa014Sk05N0hKSTY1RDdOQkJ6MmVrTmtETFow
aFFRZUUKLQkJCQkJSlpBa2piYWZQbWRWZGhLRFFBTUFFQzVoQWc4ZzlYbHllTlJzCi0JCQkJCStv
MWtWZVdYQW5jeXdEd0Q5WktRbVNNQkxEQUVsMTN5ZENQdQotCQkJCQkzQ1BUblJLZ1B3UDRhQVJW
dW9CakVCR1c4Zml2U2RrWUUvenUKLQkJCQkJZENjUENNQUR2VU9YTk9JRUp0UVZDaTBDeEZONkhs
Q0NLZ0ZxCi0JCQkJCUE0SUkxRjBBNkw0NmtRbFJnUmtEQmswZ2hWM1E1WVlReEFhaAotCQkJCQl0
dkdrYjhEUWdNOTRnV1B1QW9xNnhDTXZHS0RVRGw4WW1PaWcKLQkJCQkJSXdZeWpOU2pwcmlPUVVY
UVVwZmlsd0FjOGdNaFpDQUJjOEhoCi0JCQkJCU5TSmxnVGtPZ29JVVp5a0crVVFURklNb2hCRUlL
R045Qm1DYgotCQkJCQlRZ1JtQ3ErYXdBSXdnaDBidk1vMUM2aE5aZkowd0JkTXdHMjkKLQkJCQkJ
S1FBSnkvV3RFQUFBTzFCdmJHOXVkWE1LCi0JCQkJCTwvZGF0YT4KLQkJCQkJPGtleT5XZWJSZXNv
dXJjZU1JTUVUeXBlPC9rZXk+Ci0JCQkJCTxzdHJpbmc+aW1hZ2UvZ2lmPC9zdHJpbmc+Ci0JCQkJ
CTxrZXk+V2ViUmVzb3VyY2VSZXNwb25zZTwva2V5PgotCQkJCQk8ZGF0YT4KLQkJCQkJWW5Cc2FY
TjBNRERVQVFJREJBVUdCd3BaSkdGeVkyaHBkbVZ5Ci0JCQkJCVdDUjJaWEp6YVc5dVZDUjBiM0JZ
Skc5aWFtVmpkSE5mRUE5TwotCQkJCQlVMHRsZVdWa1FYSmphR2wyWlhJU0FBR0dvTkVJQ1Y4UUUx
ZGwKLQkJCQkJWWxKbGMyOTFjbU5sVW1WemNHOXVjMldBQWFRTERCc2NWU1J1Ci0JCQkJCWRXeHMx
dzBPRHhBUkVoTVVGUllYR0JrVlVpUXlVaVF6VWlRMAotCQkJCQlVaVF3VmlSamJHRnpjMUlrTlZJ
a01ZQUNnQUFSQmNRUUI0QUQKLQkJCQkJSTMvdi8vLy8vLy8vZ0FCWmFXMWhaMlV2WjJsbTBoMGVI
eUJZCi0JCQkJCUpHTnNZWE56WlhOYUpHTnNZWE56Ym1GdFphSWdJVjFPVTFWUwotCQkJCQlURkps
YzNCdmJuTmxXRTVUVDJKcVpXTjBDQkViSkNreVJFbE0KLQkJCQkJWW1ScGIzNkJoSWVLa1pTWG1a
dWVvS0tycmJlOHhkRFQ0UUFBCi0JCQkJCUFBQUFBQUVCQUFBQUFBQUFBQ0lBQUFBQUFBQUFBQUFB
QUFBQQotCQkJCQlBQURxCi0JCQkJCTwvZGF0YT4KLQkJCQkJPGtleT5XZWJSZXNvdXJjZVVSTDwv
a2V5PgotCQkJCQk8c3RyaW5nPmZpbGU6Ly8vTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS9yZXNvdXJj
ZXMvYXBwbGUuZ2lmPC9zdHJpbmc+Ci0JCQkJPC9kaWN0PgogCQkJPC9hcnJheT4KIAkJPC9kaWN0
PgogCTwvYXJyYXk+CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5Mzg5KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA3LTAyLTAzICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjYKKyAg
ICAgICAgV2ViYXJjaGl2ZSBmb3JtYXQgc2F2ZXMgZHVwbGljYXRlIFdlYlN1YnJlc291cmNlcyB0
byAud2ViYXJjaGl2ZSBmaWxlCisKKyAgICAgICAgVGVzdHM6IHdlYmFyY2hpdmUvdGVzdC1kdXBs
aWNhdGUtcmVzb3VyY2VzLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFyY2hpdmUvdGVzdC1mcmFt
ZXNldC5odG1sCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFyY2hpdmVyLm1tOgorICAgICAgICAo
K1tXZWJBcmNoaXZlciBfYXJjaGl2ZVdpdGhNYXJrdXBTdHJpbmc6ZnJvbUZyYW1lOm5vZGVzOl0p
OiBVc2UgYW4gTlNNdXRhYmxlU2V0IHRvIHByZXZlbnQKKyAgICAgICAgZHVwbGljYXRlIHN1YnJl
c291cmNlcyBmcm9tIGJlaW5nIGFkZGVkIHRvIHRoZSB3ZWJhcmNoaXZlLgorCiAyMDA3LTAyLTAx
ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBXZWJLaXQvV2ViVmlldy9XZWJBcmNoaXZlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9XZWJBcmNoaXZlci5tbQkocmV2aXNpb24g
MTkzODkpCisrKyBXZWJLaXQvV2ViVmlldy9XZWJBcmNoaXZlci5tbQkod29ya2luZyBjb3B5KQpA
QCAtODksNiArODksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAKICAgICBOU011
dGFibGVBcnJheSAqc3ViZnJhbWVBcmNoaXZlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdOwogICAgIE5TTXV0YWJsZUFycmF5ICpzdWJyZXNvdXJjZXMgPSBbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0XTsKKyAgICBOU011dGFibGVTZXQgKnVuaXF1ZVN1YnJlc291cmNlcyA9IFtb
TlNNdXRhYmxlU2V0IGFsbG9jXSBpbml0XTsKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3Ig
PSBbbm9kZXMgb2JqZWN0RW51bWVyYXRvcl07CiAgICAgRE9NTm9kZSAqbm9kZTsKICAgICB3aGls
ZSAoKG5vZGUgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7CkBAIC0xMDIsNiAr
MTAzLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgICAgICAgICBOU0VudW1lcmF0
b3IgKmVudW1lcmF0b3IgPSBbW25vZGUgX3N1YnJlc291cmNlVVJMc10gb2JqZWN0RW51bWVyYXRv
cl07CiAgICAgICAgICAgICBOU1VSTCAqVVJMOwogICAgICAgICAgICAgd2hpbGUgKChVUkwgPSBb
ZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmlsKSB7CisgICAgICAgICAgICAgICAgaWYgKFt1
bmlxdWVTdWJyZXNvdXJjZXMgY29udGFpbnNPYmplY3Q6VVJMXSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgW3VuaXF1ZVN1YnJlc291cmNlcyBhZGRPYmpl
Y3Q6VVJMXTsKICAgICAgICAgICAgICAgICBXZWJSZXNvdXJjZSAqc3VicmVzb3VyY2UgPSBbW2Zy
YW1lIGRhdGFTb3VyY2VdIHN1YnJlc291cmNlRm9yVVJMOlVSTF07CiAgICAgICAgICAgICAgICAg
aWYgKHN1YnJlc291cmNlKQogICAgICAgICAgICAgICAgICAgICBbc3VicmVzb3VyY2VzIGFkZE9i
amVjdDpzdWJyZXNvdXJjZV07CkBAIC0xMTQsNiArMTE4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAgICAgCiAgICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbW1dlYkFyY2hpdmUgYWxs
b2NdIGluaXRXaXRoTWFpblJlc291cmNlOm1haW5SZXNvdXJjZSBzdWJyZXNvdXJjZXM6c3VicmVz
b3VyY2VzIHN1YmZyYW1lQXJjaGl2ZXM6c3ViZnJhbWVBcmNoaXZlc10gYXV0b3JlbGVhc2VdOwog
ICAgIFttYWluUmVzb3VyY2UgcmVsZWFzZV07CisgICAgW3VuaXF1ZVN1YnJlc291cmNlcyByZWxl
YXNlXTsKICAgICBbc3VicmVzb3VyY2VzIHJlbGVhc2VdOwogICAgIFtzdWJmcmFtZUFyY2hpdmVz
IHJlbGVhc2VdOwogICAgIAo=
</data>
<flag name="review"
          id="4963"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>