<?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>38221</bug_id>
          
          <creation_ts>2010-04-27 14:43:03 -0700</creation_ts>
          <short_desc>Memory issues due to the changes in 36556</short_desc>
          <delta_ts>2010-05-13 15:44:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</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>36556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephanie Lewis">slewis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217959</commentid>
    <comment_count>0</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2010-04-27 14:43:03 -0700</bug_when>
    <thetext>See http://bugs.webkit.org/show_bug.cgi?id=36556 for the inital change and discussion.  After this was checked in memory concerns were raised

Comment #23 From Maciej Stachowiak 2010-04-23 15:30:13 PST (-) [reply]
Stephanie, Geoff, this patch increases the size of CSSPrimitiveValue by a word.
Do we have data to estimate the memory impact? How many CSSPrimitiveValues are
created on a typical page? How many on membuster?

Comment #24 From Stephanie Lewis 2010-04-23 15:33:53 PST (-) [reply]
Any memory regression wasn&apos;t bad enough that I caught it among the other memory
issues we&apos;re having, but I can take a look and get more concrete details.

Comment #25 From Antti Koivisto 2010-04-23 18:02:39 PST (-) [reply]
Lots of effort has went into reducing the memory consumption of the CSSOM and
values:

https://bugs.webkit.org/show_bug.cgi?id=22379
https://bugs.webkit.org/show_bug.cgi?id=22717

We shouldn&apos;t regress without careful analysis, especially for a single
benchmark. The only thing that stops this from being completely horrible is the
sharing of CSSPrimitiveValues (which cuts down value object count by some 80%)
. It will still be a significant hit with very large stylesheets.

There are alternative caching schemes (hash, rare value structure) that don&apos;t
increase memory consumption. Have these been explored?

This patch also moves us to wrong direction by making it harder to turn css
values into simple value type in the future.

Comment #26 From Antti Koivisto 2010-04-23 18:16:42 PST (-) [reply]
Generally, adding a cache field that is almost always null to an object that is
instantiated in large numbers is basically never the right solution.
Comment #27 From Maciej Stachowiak 2010-04-24 16:04:50 PST (-) [reply]
(In reply to comment #24)
&gt; Any memory regression wasn&apos;t bad enough that I caught it among the other memory
&gt; issues we&apos;re having, but I can take a look and get more concrete details.

Just a count of CSSPrimitiveValue objects allocated on a typical page, or in
the course of the membuster suite, would be useful.

Comment #28 From Kenneth Rohde Christiansen 2010-04-24 19:05:20 PST (-) [reply]
If we use a cache instead (hash for instance, as Antti suggested) we can
control the size and thus the memory consumption. I think that would be
preferred. It would also allow us to use different sizes on for instance
desktop and mobile.

Comment #29 From Darin Adler 2010-04-25 22:02:52 PST (-) [reply]
(In reply to comment #28)
&gt; If we use a cache instead (hash for instance, as Antti suggested) we can
&gt; control the size and thus the memory consumption. I think that would be
&gt; preferred. It would also allow us to use different sizes on for instance
&gt; desktop and mobile.

I think that a &quot;rare data&quot; approach would be fine too; external storage in a
hash table. I&apos;m not sure that reclaiming memory when a script calls cssText on
everything is important. What&apos;s much more important is avoiding extra memory
cost in the normal, common case where cssText is not called.

We probably need a new bug report about this memory use regression rather than
further discussion here in a bug already marked fixed.

Comment #30 From Stephanie Lewis 2010-04-26 21:03:43 PST (-) [reply]
Comparing Membuster data the patch was maybe a 1MB regression.  I can&apos;t really
compare at that fine a level.

As far as instances go
8 CSSPrimitiveValue objects on an empty page
469 on Apple.com (+ ~40 every time the headline changes -- can climb pretty
quickly)
460 on google.com
873 on nytimes.com

8626 on the first 30 pages on Membuster
87085 over the entire test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222425</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-05-07 09:33:59 -0700</bug_when>
    <thetext>It seems to me the cache could be in the JSCSSPrimitiveValue wrapper. I don&apos;t see why it must be part of the value itself. Wrappers are already shared and exist only when the CSSOM is actually being used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222439</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-07 09:46:15 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; It seems to me the cache could be in the JSCSSPrimitiveValue wrapper. I don&apos;t
&gt; see why it must be part of the value itself. Wrappers are already shared and
&gt; exist only when the CSSOM is actually being used.

That&apos;s a neat idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225504</commentid>
    <comment_count>3</comment_count>
      <attachid>56022</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-13 14:21:46 -0700</bug_when>
    <thetext>Created attachment 56022
patch

I took the approach of an external cache to reclaim the memory loss.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225507</commentid>
    <comment_count>4</comment_count>
      <attachid>56022</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-13 14:26:36 -0700</bug_when>
    <thetext>Comment on attachment 56022
patch

What&apos;s the speed impact of this, Sam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225509</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-13 14:27:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 56022 [details])
&gt; What&apos;s the speed impact of this, Sam?

I didn&apos;t see a difference on Peacekeeper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225513</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-13 14:32:42 -0700</bug_when>
    <thetext>Fixed in r59386.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225548</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 15:44:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59386 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56022</attachid>
            <date>2010-05-13 14:21:46 -0700</date>
            <delta_ts>2010-05-13 14:26:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>cssPrim.diff</filename>
            <type>text/plain</type>
            <size>18131</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTM4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODIyMQorICAgICAgICBN
ZW1vcnkgaXNzdWVzIGR1ZSB0byB0aGUgY2hhbmdlcyBpbiAzNjU1NiAoaW5jcmVhc2VkIENTU1By
aW1pdGl2ZVZhbHVlIHNpemUpLgorCisgICAgICAgIC0gVXNlIGFuIGV4dGVybmFsIGNhY2hlIHRv
IHNwZWVkdXAgY3NzVGV4dCBmb3IgQ1NTUHJpbWl0aXZlVmFsdWUgaW5zdGVhZAorICAgICAgICAg
IG9mIGFuIGV4dHJhIG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAqIGNzcy9DU1NQcmltaXRp
dmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjc3NUZXh0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjopOgorICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorCiAyMDEwLTA1LTEzICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNTkzNzYuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
CShyZXZpc2lvbiA1OTMzMCkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgQ1NTUHJpbWl0aXZl
VmFsdWUqLCBTdHJpbmc+IENTU1RleHRDYWNoZTsKK3N0YXRpYyBDU1NUZXh0Q2FjaGUmIGNzc1Rl
eHRDYWNoZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDU1NUZXh0Q2FjaGUsIGNhY2hl
LCAoKSk7CisgICAgcmV0dXJuIGNhY2hlOworfQorCiAvLyBBIG1vcmUgc3R5bGlzaCBzb2x1dGlv
biB0aGFuIHNoYXJpbmcgd291bGQgYmUgdG8gdHVybiBDU1NQcmltaXRpdmVWYWx1ZSAob3IgQ1NT
VmFsdWVzIGluIGdlbmVyYWwpIGludG8gbm9uLXZpcnR1YWwsCiAvLyBub24tcmVmY291bnRlZCBz
aW1wbGUgdHlwZSB3aXRoIHZhbHVlIHNlbWFudGljcy4gSW4gcHJhY3RpY2UgdGhlc2Ugc2hhcmlu
ZyB0cmlja3MgZ2V0IHNpbWlsYXIgbWVtb3J5IGJlbmVmaXRzIAogLy8gd2l0aCBsZXNzIG5lZWQg
Zm9yIHJlZmFjdG9yaW5nLgpAQCAtMTQ1LDIzICsxNTIsMjcgQEAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWVPclByb3BlcgogCiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoKQogICAgIDogbV90eXBlKDApCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2Up
CiB7CiB9CiAKIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShpbnQgaWRlbnQp
CiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNl
KQogewogICAgIG1fdmFsdWUuaWRlbnQgPSBpZGVudDsKIH0KIAogQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKGRvdWJsZSBudW0sIFVuaXRUeXBlcyB0eXBlKQogICAgIDogbV90
eXBlKHR5cGUpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgbV92YWx1
ZS5udW0gPSBudW07CiB9CiAKIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShj
b25zdCBTdHJpbmcmIHN0ciwgVW5pdFR5cGVzIHR5cGUpCiAgICAgOiBtX3R5cGUodHlwZSkKKyAg
ICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBpZiAoKG1fdmFsdWUuc3RyaW5n
ID0gc3RyLmltcGwoKSkpCiAgICAgICAgIG1fdmFsdWUuc3RyaW5nLT5yZWYoKTsKQEAgLTE2OSwx
MSArMTgwLDEzIEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShjb24KIAog
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFJHQkEzMiBjb2xvcikKICAgICA6
IG1fdHlwZShDU1NfUkdCQ09MT1IpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7
CiAgICAgbV92YWx1ZS5yZ2Jjb2xvciA9IGNvbG9yOwogfQogCiBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoY29uc3QgTGVuZ3RoJiBsZW5ndGgpCisgICAgOiBtX2hhc0NhY2hl
ZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChsZW5ndGgudHlwZSgpKSB7CiAgICAgICAg
IGNhc2UgQXV0bzoKQEAgLTI2NSw3ICsyNzgsMTAgQEAgdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6
Y2xlYW51cCgpCiAgICAgfQogCiAgICAgbV90eXBlID0gMDsKLSAgICBtX2NhY2hlZENTU1RleHQg
PSBTdHJpbmcoKTsKKyAgICBpZiAobV9oYXNDYWNoZWRDU1NUZXh0KSB7CisgICAgICAgIGNzc1Rl
eHRDYWNoZSgpLnJlbW92ZSh0aGlzKTsKKyAgICAgICAgbV9oYXNDYWNoZWRDU1NUZXh0ID0gZmFs
c2U7CisgICAgfQogfQogCiBpbnQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhJbnQo
UmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlKQpAQCAtNjMzLDggKzY0
OSwxMSBAQCBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmNzc1RleHQoKSBjb25zCiB7CiAgICAg
Ly8gRklYTUU6IHJldHVybiB0aGUgb3JpZ2luYWwgdmFsdWUgaW5zdGVhZCBvZiBhIGdlbmVyYXRl
ZCBvbmUgKGUuZy4gY29sb3IKICAgICAvLyBuYW1lIGlmIGl0IHdhcyBzcGVjaWZpZWQpIC0gY2hl
Y2sgd2hhdCBzcGVjIHNheXMgYWJvdXQgdGhpcwotICAgIGlmICghbV9jYWNoZWRDU1NUZXh0Lmlz
TnVsbCgpKQotICAgICAgICByZXR1cm4gbV9jYWNoZWRDU1NUZXh0OworCisgICAgaWYgKG1faGFz
Q2FjaGVkQ1NTVGV4dCkgeworICAgICAgICBBU1NFUlQoY3NzVGV4dENhY2hlKCkuY29udGFpbnMo
dGhpcykpOworICAgICAgICByZXR1cm4gY3NzVGV4dENhY2hlKCkuZ2V0KHRoaXMpOyAKKyAgICB9
CiAKICAgICBTdHJpbmcgdGV4dDsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewpAQCAtODM3LDcgKzg1
Niw4IEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnMKICAgICAgICAg
ICAgIHRleHQgPSBxdW90ZUNTU1N0cmluZ0lmTmVlZGVkKG1fdmFsdWUuc3RyaW5nKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBtX2NhY2hlZENTU1RleHQgPSB0ZXh0OworICAgIGNz
c1RleHRDYWNoZSgpLnNldCh0aGlzLCB0ZXh0KTsKKyAgICBtX2hhc0NhY2hlZENTU1RleHQgPSB0
cnVlOwogICAgIHJldHVybiB0ZXh0OwogfQogCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJ
KHJldmlzaW9uIDU5MzMwKQorKysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHVu
c2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlwZSgpIGNvbnN0OwogCi0gICAgaW50IG1fdHlwZTsKKyAg
ICBpbnQgbV90eXBlIDogMzE7CisgICAgbXV0YWJsZSBpbnQgbV9oYXNDYWNoZWRDU1NUZXh0IDog
MTsKICAgICB1bmlvbiB7CiAgICAgICAgIGludCBpZGVudDsKICAgICAgICAgZG91YmxlIG51bTsK
QEAgLTIxMSw3ICsyMTIsNiBAQCBwcml2YXRlOgogICAgICAgICBQYWlyKiBwYWlyOwogICAgICAg
ICBEYXNoYm9hcmRSZWdpb24qIHJlZ2lvbjsKICAgICB9IG1fdmFsdWU7Ci0gICAgbXV0YWJsZSBT
dHJpbmcgbV9jYWNoZWRDU1NUZXh0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gNTkzMzAp
CisrKyBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJvcmRlclN0eWxlIGUp
CiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNl
KQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIEJOT05FOgpAQCAtODYsNiArODcs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb21wb3NpdGVP
cGVyYXRvciBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NT
VGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBDb21wb3NpdGVD
bGVhcjoKQEAgLTE3Miw2ICsxNzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAs
IG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAg
Y2FzZSBOb0NvbnRyb2xQYXJ0OgpAQCAtMzM3LDYgKzM0MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVGaWxsQXR0YWNobWVudCBlKQogICAgIDogbV90eXBl
KENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0
Y2ggKGUpIHsKICAgICAgICAgY2FzZSBTY3JvbGxCYWNrZ3JvdW5kQXR0YWNobWVudDoKQEAgLTM2
OCw2ICszNzIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShF
RmlsbEJveCBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NT
VGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBCb3JkZXJGaWxs
Qm94OgpAQCAtNDA4LDYgKzQxMyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVGaWxsUmVwZWF0IGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwg
bV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBj
YXNlIFJlcGVhdEZpbGw6CkBAIC00NDQsNiArNDUwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveEFsaWdubWVudCBlKQogICAgIDogbV90eXBlKENTU19J
REVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICAgICAgY2FzZSBCU1RSRVRDSDoKQEAgLTQ5MCw2ICs0OTcsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94RGlyZWN0aW9uIGUpCiAgICAgOiBt
X3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAg
IHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIEJOT1JNQUw6CkBAIC01MTYsNiArNTI0LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlu
bGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJveExpbmVzIGUpCiAg
ICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQog
ewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIFNJTkdMRToKQEAgLTU0Miw2ICs1NTEs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQm94T3JpZW50
IGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZh
bHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIEhPUklaT05UQUw6CkBAIC01
NzAsNiArNTgwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQog
CiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUNhcHRpb25TaWRlIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNo
ZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIENBUExF
RlQ6CkBAIC02MDYsNiArNjE3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRUNsZWFyIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXND
YWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIENO
T05FOgpAQCAtNjQyLDYgKzY1NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVDdXJzb3IgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hh
c0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNhc2Ug
Q1VSU09SX0FVVE86CkBAIC03NjYsNiArNzc5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRURpc3BsYXkgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisg
ICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
ICAgIGNhc2UgSU5MSU5FOgpAQCAtODQyLDYgKzg1Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENT
U1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVFbXB0eUNlbGwgZSkKICAgICA6IG1fdHlwZShDU1NfSURF
TlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgICAgIGNhc2UgU0hPVzoKQEAgLTg2OCw2ICs4ODMsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRmxvYXQgZSkKICAgICA6IG1fdHlwZShDU1NfSURF
TlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7
CiAgICAgICAgIGNhc2UgRk5PTkU6CkBAIC05MDAsNiArOTE2LDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUtIVE1MTGluZUJyZWFrIGUpCiAgICAgOiBtX3R5
cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3
aXRjaCAoZSkgewogICAgICAgICBjYXNlIExCTk9STUFMOgpAQCAtOTI2LDYgKzk0Myw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVMaXN0U3R5bGVQb3NpdGlv
biBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChm
YWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBPVVRTSURFOgpAQCAtOTQ0
LDYgKzk2Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAog
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVM
aXN0U3R5bGVUeXBlIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNo
ZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgIGNhc2UgQWZhcjoKQEAg
LTExOTIsNiArMTIxMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpv
cGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZh
bHVlKEVNYXJnaW5Db2xsYXBzZSBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1f
aGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2Fz
ZSBNQ09MTEFQU0U6CkBAIC0xMjIzLDYgKzEyNDMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NQcmltaXRpdmVWYWx1ZShFTWFycXVlZUJlaGF2aW9yIGUpCiAgICAgOiBtX3R5cGUoQ1NT
X0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAo
ZSkgewogICAgICAgICBjYXNlIE1OT05FOgpAQCAtMTI1OSw2ICsxMjgwLDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRU1hcnF1ZWVEaXJlY3Rpb24gZSkKICAg
ICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7
CiAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNhc2UgTUZPUldBUkQ6CkBAIC0xMzEyLDYgKzEz
MzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBs
YXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFTWF0Y2hO
ZWFyZXN0TWFpbEJsb2NrcXVvdGVDb2xvciBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAg
ICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAg
ICAgY2FzZSBCQ05PUk1BTDoKQEAgLTEzMzgsNiArMTM2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVOQlNQTW9kZSBlKQogICAgIDogbV90eXBlKENTU19J
REVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICAgICAgY2FzZSBOQk5PUk1BTDoKQEAgLTEzNjQsNiArMTM4OCw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVPdmVyZmxvdyBlKQogICAgIDogbV90
eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBz
d2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBPVklTSUJMRToKQEAgLTE0MTAsNiArMTQzNSw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVQYWdlQnJlYWsgZSkK
ICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2Up
CiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNhc2UgUEJBVVRPOgpAQCAtMTQ0Myw2ICsx
NDY5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVBvc2l0
aW9uIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0
KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIFN0YXRpY1Bvc2l0aW9u
OgpAQCAtMTQ3OSw2ICsxNTA2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0
aXZlVmFsdWUoRVJlc2l6ZSBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFz
Q2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBS
RVNJWkVfQk9USDoKQEAgLTE1MTgsNiArMTU0Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVUYWJsZUxheW91dCBlKQogICAgIDogbV90eXBlKENTU19JREVO
VCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsK
ICAgICAgICAgY2FzZSBUQVVUTzoKQEAgLTE1NDQsNiArMTU3Myw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVUZXh0QWxpZ24gZSkKICAgICA6IG1fdHlwZShD
U1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNo
IChlKSB7CiAgICAgICAgIGNhc2UgVEFBVVRPOgpAQCAtMTU4Nyw2ICsxNjE3LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVRleHRTZWN1cml0eSBlKQogICAg
IDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsK
ICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBUU05PTkU6CkBAIC0xNjIzLDYgKzE2NTQs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGV4dFRyYW5z
Zm9ybSBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4
dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBDQVBJVEFMSVpFOgpA
QCAtMTY1OSw2ICsxNjkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZl
VmFsdWUoRVVuaWNvZGVCaWRpIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9o
YXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNl
IFVCTm9ybWFsOgpAQCAtMTY5MCw2ICsxNzIzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoRVVzZXJEcmFnIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQor
ICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAg
ICAgICBjYXNlIERSQUdfQVVUTzoKQEAgLTE3MjEsNiArMTc1NSw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVc2VyTW9kaWZ5IGUpCiAgICAgOiBtX3R5cGUo
Q1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRj
aCAoZSkgewogICAgICAgICBjYXNlIFJFQURfT05MWToKQEAgLTE3NDIsNiArMTc3Nyw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVVc2VyU2VsZWN0IGUpCiAg
ICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQog
ewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIFNFTEVDVF9OT05FOgpAQCAtMTc3MCw2
ICsxODA2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVZp
c2liaWxpdHkgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENT
U1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNhc2UgVklTSUJMRToK
QEAgLTE4MDEsNiArMTgzOCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVl
OjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2
ZVZhbHVlKEVXaGl0ZVNwYWNlIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9o
YXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNl
IE5PUk1BTDoKQEAgLTE4NDcsNiArMTg4NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U1ByaW1pdGl2ZVZhbHVlKEVXb3JkQnJlYWsgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisg
ICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAg
ICAgIGNhc2UgTm9ybWFsV29yZEJyZWFrOgpAQCAtMTg3OCw2ICsxOTE3LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVdvcmRXcmFwIGUpCiAgICAgOiBtX3R5
cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewogICAgIHN3
aXRjaCAoZSkgewogICAgICAgICBjYXNlIE5vcm1hbFdvcmRXcmFwOgpAQCAtMTkwNCw2ICsxOTQ0
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0
ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoVGV4dERpcmVj
dGlvbiBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4
dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBMVFI6CkBAIC0xOTMw
LDYgKzE5NzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShF
UG9pbnRlckV2ZW50cyBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2Fj
aGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBQRV9O
T05FOgpAQCAtMTk5Niw2ICsyMDM4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nKQogICAgIDogbV90eXBlKENT
U19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2gg
KHNtb290aGluZykgewogICAgIGNhc2UgQXV0b1Ntb290aGluZzoKQEAgLTIwMzUsNiArMjA3OCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRSZW5kZXJp
bmdNb2RlIGUpCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NU
ZXh0KGZhbHNlKQogewogICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIEF1dG9UZXh0UmVu
ZGVyaW5nOgpAQCAtMjA3MSw2ICsyMTE1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoQ29sb3JTcGFjZSBzcGFjZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQp
CisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChzcGFjZSkg
ewogICAgICAgICBjYXNlIERldmljZUNvbG9yU3BhY2U6CkBAIC0yMDk5LDYgKzIxNDQsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lQ2FwIGUpCiAgICAg
OiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewog
ICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIEJ1dHRDYXA6CkBAIC0yMTMwLDYgKzIxNzYs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShMaW5lSm9pbiBl
KQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxz
ZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBNaXRlckpvaW46CkBAIC0yMTYx
LDYgKzIyMDgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAK
IHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShX
aW5kUnVsZSBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NT
VGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBSVUxFX05PTlpF
Uk86CkBAIC0yMTg4LDYgKzIyMzYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVW
YWx1ZTo6b3BlCiAKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShFQWxpZ25tZW50QmFzZWxpbmUgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQp
CisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAg
ICAgICAgIGNhc2UgQUJfQVVUTzoKQEAgLTIyNjQsNiArMjMxMyw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVDb2xvckludGVycG9sYXRpb24gZSkKICAgICA6
IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAg
ICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNhc2UgQ0lfQVVUTzoKQEAgLTIyOTUsNiArMjM0NSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVDb2xvclJlbmRl
cmluZyBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4
dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBDUl9BVVRPOgpAQCAt
MjMyNiw2ICsyMzc3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9w
ZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFs
dWUoRURvbWluYW50QmFzZWxpbmUgZSkKICAgICA6IG1fdHlwZShDU1NfSURFTlQpCisgICAgLCBt
X2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiB7CiAgICAgc3dpdGNoIChlKSB7CiAgICAgICAgIGNh
c2UgREJfQVVUTzoKQEAgLTI0MDIsNiArMjQ1NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpvcGUKIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEVJbWFnZVJlbmRlcmluZyBlKQogICAgIDogbV90eXBlKENTU19J
REVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUp
IHsKICAgICAgICAgY2FzZSBJUl9BVVRPOgpAQCAtMjQzMyw2ICsyNDg2LDcgQEAgdGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRVNoYXBlUmVuZGVyaW5nIGUpCiAgICAg
OiBtX3R5cGUoQ1NTX0lERU5UKQorICAgICwgbV9oYXNDYWNoZWRDU1NUZXh0KGZhbHNlKQogewog
ICAgIHN3aXRjaCAoZSkgewogICAgICAgICBjYXNlIElSX0FVVE86CkBAIC0yNDY5LDYgKzI1MjMs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFVGV4dEFuY2hv
ciBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2FjaGVkQ1NTVGV4dChm
YWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBUQV9TVEFSVDoKQEAgLTI1
MDAsNiArMjU1NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGUK
IAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVl
KEVXcml0aW5nTW9kZSBlKQogICAgIDogbV90eXBlKENTU19JREVOVCkKKyAgICAsIG1faGFzQ2Fj
aGVkQ1NTVGV4dChmYWxzZSkKIHsKICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBXTV9M
UlRCOgo=
</data>
<flag name="review"
          id="40342"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>