<?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>5942</bug_id>
          
          <creation_ts>2005-12-05 02:17:13 -0800</creation_ts>
          <short_desc>SVGRenderStyle should be held as a DataRef and shared/lazily allocated</short_desc>
          <delta_ts>2005-12-05 17:52:25 -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>SVG</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>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25550</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-05 02:17:13 -0800</bug_when>
    <thetext>SVGRenderStyle should be held as a DataRef and shared/lazily allocated

The attached patch does just that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25551</commentid>
    <comment_count>1</comment_count>
      <attachid>4957</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-05 02:17:59 -0800</bug_when>
    <thetext>Created attachment 4957
Makes SVGRenderStyle a DataRef pointer (thus shared, COW)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25552</commentid>
    <comment_count>2</comment_count>
      <attachid>4957</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-05 02:18:25 -0800</bug_when>
    <thetext>Comment on attachment 4957
Makes SVGRenderStyle a DataRef pointer (thus shared, COW)

mjs, darin, dethbakin or hyatt could easily review this simple patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25576</commentid>
    <comment_count>3</comment_count>
      <attachid>4957</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-05 06:36:58 -0800</bug_when>
    <thetext>Comment on attachment 4957
Makes SVGRenderStyle a DataRef pointer (thus shared, COW)

looks fine, r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4957</attachid>
            <date>2005-12-05 02:17:59 -0800</date>
            <delta_ts>2005-12-05 06:36:58 -0800</delta_ts>
            <desc>Makes SVGRenderStyle a DataRef pointer (thus shared, COW)</desc>
            <filename>renderstyle.patch</filename>
            <type>text/plain</type>
            <size>17538</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3JlbmRlcmluZy9EYXRhUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga2h0
bWwvcmVuZGVyaW5nL0RhdGFSZWYuaApkaWZmIC1OIGtodG1sL3JlbmRlcmluZy9EYXRhUmVmLmgK
LS0tIGtodG1sL3JlbmRlcmluZy9EYXRhUmVmLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
Kysga2h0bWwvcmVuZGVyaW5nL0RhdGFSZWYuaAk1IERlYyAyMDA1IDEwOjA4OjEzIC0wMDAwCkBA
IC0wLDAgKzEsMTA1IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIERPTSBpbXBs
ZW1lbnRhdGlvbiBmb3IgS0RFLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMCBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAwIEFudHRpIEtvaXZpc3RvIChr
b2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVl
bGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgor
ICovCisKKyNpZm5kZWYgS0hUTUxfRGF0YVJlZl9ICisjZGVmaW5lIEtIVE1MX0RhdGFSZWZfSAor
CituYW1lc3BhY2Uga2h0bWwgeworCit0ZW1wbGF0ZSA8Y2xhc3MgREFUQT4KK2NsYXNzIERhdGFS
ZWYKK3sKK3B1YmxpYzoKKworICAgIERhdGFSZWYoKSA6IG1fZGF0YSgwKSB7IH0KKyAgICAKKyAg
ICBEYXRhUmVmKGNvbnN0IERhdGFSZWY8REFUQT4mIGQpCisgICAgeworICAgIAltX2RhdGEgPSBk
Lm1fZGF0YTsKKwltX2RhdGEtPnJlZigpOworICAgIH0KKworICAgIH5EYXRhUmVmKCkKKyAgICB7
CisgICAgCWlmKG1fZGF0YSkKKyAgICAgICAgICAgIG1fZGF0YS0+ZGVyZWYoKTsKKyAgICB9CisK
KyAgICBjb25zdCBEQVRBKiBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7CisgICAgCXJldHVybiBt
X2RhdGE7CisgICAgfQorCisgICAgY29uc3QgREFUQSogZ2V0KCkgY29uc3QKKyAgICB7CisgICAg
CXJldHVybiBtX2RhdGE7CisgICAgfQorCisgICAgREFUQSogYWNjZXNzKCkKKyAgICB7CisgICAg
CWlmICghbV9kYXRhLT5oYXNPbmVSZWYoKSkgeworCSAgICBtX2RhdGEtPmRlcmVmKCk7CisJICAg
IG1fZGF0YSA9IG5ldyBEQVRBKCptX2RhdGEpOworCSAgICBtX2RhdGEtPnJlZigpOworCX0KKwly
ZXR1cm4gbV9kYXRhOworICAgIH0KKworICAgIHZvaWQgaW5pdCgpCisgICAgeworICAgIAltX2Rh
dGEgPSBuZXcgREFUQTsKKwltX2RhdGEtPnJlZigpOworICAgIH0KKworICAgIERhdGFSZWY8REFU
QT4mIG9wZXJhdG9yPShjb25zdCBEYXRhUmVmPERBVEE+JiBkKQorICAgIHsKKyAgICAJaWYgKG1f
ZGF0YSA9PSBkLm1fZGF0YSkKKwkgICAgcmV0dXJuICp0aGlzOworICAgIAlpZiAobV9kYXRhKQor
ICAgIAkgICAgbV9kYXRhLT5kZXJlZigpOworICAgIAltX2RhdGEgPSBkLm1fZGF0YTsKKwltX2Rh
dGEtPnJlZigpOworCisJcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3Ig
PT0gKGNvbnN0IERhdGFSZWY8REFUQT4mIG8pIGNvbnN0CisgICAgeworCXJldHVybiAoKm1fZGF0
YSA9PSAqKG8ubV9kYXRhKSk7CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3IgIT0gKGNv
bnN0IERhdGFSZWY8REFUQT4mIG8pIGNvbnN0CisgICAgeworCXJldHVybiAoKm1fZGF0YSAhPSAq
KG8ubV9kYXRhKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERBVEEqIG1fZGF0YTsKK307CisK
K307CisKKyNlbmRpZgorCkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX3N0eWxlLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43NwpkaWZmIC1wIC11IC1yMS43
NyBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9zdHlsZS5jcHAJMjkgTm92IDIwMDUgMTE6MjA6NDYgLTAwMDAJMS43NworKysga2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5jcHAJNSBEZWMgMjAwNSAxMDowODoxNCAtMDAwMApAQCAt
Miw3ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBET00gaW1wbGVtZW50YXRp
b24gZm9yIEtERS4KICAqCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtv
aXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC01MzAsNyArNTMwLDcgQEAgUmVuZGVyU3R5bGU6OlJlbmRlclN0
eWxlKCkKICAgICBpbmhlcml0ZWQgPSBfZGVmYXVsdC0+aW5oZXJpdGVkOwogCiAjaWYgU1ZHX1NV
UFBPUlQKLSAgICBtX3N2Z1N0eWxlID0gbmV3IEtTVkc6OlNWR1JlbmRlclN0eWxlKCk7CisgICAg
bV9zdmdTdHlsZSA9IF9kZWZhdWx0LT5tX3N2Z1N0eWxlOwogI2VuZGlmCiAKICAgICBzZXRCaXRE
ZWZhdWx0cygpOwpAQCAtNTU1LDcgKzU1NSw3IEBAIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShi
b29sKQogICAgIGluaGVyaXRlZC5pbml0KCk7CiAgICAgCiAjaWYgU1ZHX1NVUFBPUlQKLSAgICBt
X3N2Z1N0eWxlID0gbmV3IEtTVkc6OlNWR1JlbmRlclN0eWxlKHRydWUpOworICAgIG1fc3ZnU3R5
bGUuaW5pdCgpOwogI2VuZGlmCiAKICAgICBwc2V1ZG9TdHlsZSA9IDA7CkBAIC01NzEsNyArNTcx
LDcgQEAgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgbV9h
ZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3JzKGZhbHNlKQogewogI2lmIFNWR19TVVBQT1JUCi0g
ICAgbV9zdmdTdHlsZSA9IG5ldyBLU1ZHOjpTVkdSZW5kZXJTdHlsZSgqby5zdmdTdHlsZSgpKTsK
KyAgICBtX3N2Z1N0eWxlID0gby5tX3N2Z1N0eWxlOwogI2VuZGlmCiAgICAgbV9yZWYgPSAwOwog
fQpAQCAtNTgyLDE1ICs1ODIsMTMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6aW5oZXJpdEZyb20oY29u
c3QgUmVuZAogICAgIGluaGVyaXRlZCA9IGluaGVyaXRQYXJlbnQtPmluaGVyaXRlZDsKICAgICBp
bmhlcml0ZWRfZmxhZ3MgPSBpbmhlcml0UGFyZW50LT5pbmhlcml0ZWRfZmxhZ3M7CiAjaWYgU1ZH
X1NVUFBPUlQKLSAgICBzdmdTdHlsZSgpLT5pbmhlcml0RnJvbShpbmhlcml0UGFyZW50LT5zdmdT
dHlsZSgpKTsKKyAgICBpZiAobV9zdmdTdHlsZSAhPSBpbmhlcml0UGFyZW50LT5tX3N2Z1N0eWxl
KQorICAgICAgICBtX3N2Z1N0eWxlLmFjY2VzcygpLT5pbmhlcml0RnJvbShpbmhlcml0UGFyZW50
LT5tX3N2Z1N0eWxlLmdldCgpKTsKICNlbmRpZgogfQogCiBSZW5kZXJTdHlsZTo6flJlbmRlclN0
eWxlKCkKIHsKLSNpZiBTVkdfU1VQUE9SVAotICAgIGRlbGV0ZSBtX3N2Z1N0eWxlOwotI2VuZGlm
CiB9CiAKIGJvb2wgUmVuZGVyU3R5bGU6Om9wZXJhdG9yPT0oY29uc3QgUmVuZGVyU3R5bGUmIG8p
IGNvbnN0CkBAIC02MDYsNyArNjA0LDcgQEAgYm9vbCBSZW5kZXJTdHlsZTo6b3BlcmF0b3I9PShj
b25zdCBSZW5kZQogICAgICAgICAgICAgY3NzM0luaGVyaXRlZERhdGEgPT0gby5jc3MzSW5oZXJp
dGVkRGF0YSAmJgogICAgICAgICAgICAgaW5oZXJpdGVkID09IG8uaW5oZXJpdGVkCiAjaWYgU1ZH
X1NVUFBPUlQKLSAgICAgICAgICAgICYmICpzdmdTdHlsZSgpID09ICpvLnN2Z1N0eWxlKCkKKyAg
ICAgICAgICAgICYmIG1fc3ZnU3R5bGUgPT0gby5tX3N2Z1N0eWxlCiAjZW5kaWYKICAgICAgICAg
ICAgICk7CiB9CkBAIC02ODAsNyArNjc4LDcgQEAgYm9vbCBSZW5kZXJTdHlsZTo6aW5oZXJpdGVk
Tm90RXF1YWwoIFJlbgogICAgIHJldHVybiBpbmhlcml0ZWRfZmxhZ3MgIT0gb3RoZXItPmluaGVy
aXRlZF9mbGFncyB8fAogICAgICAgICAgICBpbmhlcml0ZWQgIT0gb3RoZXItPmluaGVyaXRlZCB8
fAogI2lmIFNWR19TVVBQT1JUCi0gICAgICAgICAgIHN2Z1N0eWxlKCktPmluaGVyaXRlZE5vdEVx
dWFsKG90aGVyLT5zdmdTdHlsZSgpKSB8fAorICAgICAgICAgICBtX3N2Z1N0eWxlLT5pbmhlcml0
ZWROb3RFcXVhbChvdGhlci0+bV9zdmdTdHlsZS5nZXQoKSkgfHwKICNlbmRpZgogICAgICAgICAg
ICBjc3MzSW5oZXJpdGVkRGF0YSAhPSBvdGhlci0+Y3NzM0luaGVyaXRlZERhdGE7CiB9CkBAIC03
MDYsNyArNzA0LDcgQEAgUmVuZGVyU3R5bGU6OkRpZmYgUmVuZGVyU3R5bGU6OmRpZmYoIGNvbgog
ICAgIC8vIFRoaXMgaXMgaG9ycmlibHkgaW5lZmZpY2llbnQuICBFdmVudHVhbGx5IHdlJ2xsIGhh
dmUgdG8gaW50ZWdyYXRlCiAgICAgLy8gdGhpcyBtb3JlIGRpcmVjdGx5IGJ5IGNhbGluZzogRGlm
ZiBzdmdEaWZmID0gc3ZnU3R5bGUtPmRpZmYob3RoZXIpCiAgICAgLy8gYW5kIHRoZW4gY2hlY2tp
bmcgc3ZnRGlmZiBhbmQgcmV0dXJuaW5nIGZyb20gdGhlIGFwcHJvcHJhaXRlIHBsYWNlcyBiZWxv
dy4KLSAgICBpZiAoISgqc3ZnU3R5bGUoKSA9PSAqKG90aGVyLT5zdmdTdHlsZSgpKSkpCisgICAg
aWYgKG1fc3ZnU3R5bGUgIT0gb3RoZXItPm1fc3ZnU3R5bGUpCiAgICAgICAgIHJldHVybiBMYXlv
dXQ7CiAjZW5kaWYKIApJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL3JlbmRlcmluZy9yZW5kZXJf
c3R5bGUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45OQpkaWZmIC1wIC11IC1yMS45OSBraHRt
bC9yZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgKLS0tIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfc3R5
bGUuaAkyMSBOb3YgMjAwNSAwNDowMTo1NiAtMDAwMAkxLjk5CisrKyBraHRtbC9yZW5kZXJpbmcv
cmVuZGVyX3N0eWxlLmgJNSBEZWMgMjAwNSAxMDowODoxNSAtMDAwMApAQCAtNCw3ICs0LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwMCBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDAwIEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJp
Z2h0IChDKSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDQsNiAr
NDQsMTEgQEAKICNpbmNsdWRlICJtaXNjL2todG1sbGF5b3V0LmgiCiAjaW5jbHVkZSAibWlzYy9z
aGFyZWQuaCIKICNpbmNsdWRlICJyZW5kZXJpbmcvZm9udC5oIgorI2luY2x1ZGUgIkRhdGFSZWYu
aCIKKworI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKKyNlbmRp
ZgogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAKQEAgLTU4LDg5ICs2MywxMSBAQCBuYW1lc3BhY2Ug
RE9NIHsKICAgICBjbGFzcyBTaGFkb3dWYWx1ZUltcGw7CiB9CiAKLSNpZiBTVkdfU1VQUE9SVAot
bmFtZXNwYWNlIEtTVkcgewotICAgIGNsYXNzIFNWR1JlbmRlclN0eWxlOwotfQotI2VuZGlmCi0K
IG5hbWVzcGFjZSBraHRtbCB7CiAKICAgICBjbGFzcyBDYWNoZWRJbWFnZTsKICAgICBjbGFzcyBD
YWNoZWRPYmplY3Q7CiAKLXRlbXBsYXRlIDxjbGFzcyBEQVRBPgotY2xhc3MgRGF0YVJlZgotewot
cHVibGljOgotCi0gICAgRGF0YVJlZigpCi0gICAgewotCWRhdGE9MDsKLSAgICB9Ci0gICAgRGF0
YVJlZiggY29uc3QgRGF0YVJlZjxEQVRBPiAmZCApCi0gICAgewotICAgIAlkYXRhID0gZC5kYXRh
OwotCWRhdGEtPnJlZigpOwotICAgIH0KLQotICAgIH5EYXRhUmVmKCkKLSAgICB7Ci0gICAgCWlm
KGRhdGEpIGRhdGEtPmRlcmVmKCk7Ci0gICAgfQotCi0gICAgY29uc3QgREFUQSogb3BlcmF0b3It
PigpIGNvbnN0Ci0gICAgewotICAgIAlyZXR1cm4gZGF0YTsKLSAgICB9Ci0KLSAgICBjb25zdCBE
QVRBKiBnZXQoKSBjb25zdAotICAgIHsKLSAgICAJcmV0dXJuIGRhdGE7Ci0gICAgfQotCi0KLSAg
ICBEQVRBKiBhY2Nlc3MoKQotICAgIHsKLSAgICAJaWYgKCFkYXRhLT5oYXNPbmVSZWYoKSkKLQl7
Ci0JICAgIGRhdGEtPmRlcmVmKCk7Ci0JICAgIGRhdGEgPSBuZXcgREFUQSgqZGF0YSk7Ci0JICAg
IGRhdGEtPnJlZigpOwotCX0KLQlyZXR1cm4gZGF0YTsKLSAgICB9Ci0KLSAgICB2b2lkIGluaXQo
KQotICAgIHsKLSAgICAJZGF0YSA9IG5ldyBEQVRBOwotCWRhdGEtPnJlZigpOwotICAgIH0KLQot
ICAgIERhdGFSZWY8REFUQT4mIG9wZXJhdG9yPShjb25zdCBEYXRhUmVmPERBVEE+JiBkKQotICAg
IHsKLSAgICAJaWYgKGRhdGE9PWQuZGF0YSkKLQkgICAgcmV0dXJuICp0aGlzOwotICAgIAlpZiAo
ZGF0YSkKLSAgICAJICAgIGRhdGEtPmRlcmVmKCk7Ci0gICAgCWRhdGEgPSBkLmRhdGE7Ci0KLQlk
YXRhLT5yZWYoKTsKLQotCXJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBib29sIG9wZXJhdG9y
ID09ICggY29uc3QgRGF0YVJlZjxEQVRBPiAmbyApIGNvbnN0IHsKLQlyZXR1cm4gKCpkYXRhID09
ICooby5kYXRhKSApOwotICAgIH0KLSAgICBib29sIG9wZXJhdG9yICE9ICggY29uc3QgRGF0YVJl
ZjxEQVRBPiAmbyApIGNvbnN0IHsKLQlyZXR1cm4gKCpkYXRhICE9ICooby5kYXRhKSApOwotICAg
IH0KLQotcHJpdmF0ZToKLSAgICBEQVRBKiBkYXRhOwotfTsKLQogZW51bSBQc2V1ZG9TdGF0ZSB7
IFBzZXVkb1Vua25vd24sIFBzZXVkb05vbmUsIFBzZXVkb0FueUxpbmssIFBzZXVkb0xpbmssIFBz
ZXVkb1Zpc2l0ZWR9OwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpAQCAtOTUxLDMzICs4NzgsNiBAQCBlbnVtIEVEaXNwbGF5IHsKICAgICBUQUJM
RV9DQVBUSU9OLCBCT1gsIElOTElORV9CT1gsIE5PTkUKIH07CiAKLSNpZiBTVkdfU1VQUE9SVAot
Ci0vLyBIZWxwZXIgbWFjcm9zIGZvciBTVkcncyAnUmVuZGVyU3R5bGUnIHByb3BlcnRpZXMKLSNk
ZWZpbmUgUlNfREVGSU5FX0FUVFJJQlVURShEYXRhLCBUeXBlLCBOYW1lLCBJbml0aWFsKSBcCi0g
ICAgdm9pZCBzZXQjI1R5cGUoRGF0YSB2YWwpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLmYuXyMjTmFt
ZSA9IHZhbDsgfSBcCi0gICAgRGF0YSBOYW1lKCkgY29uc3QgeyByZXR1cm4gKERhdGEpIG5vbmlu
aGVyaXRlZF9mbGFncy5mLl8jI05hbWU7IH0gXAotICAgIHN0YXRpYyBEYXRhIGluaXRpYWwjI1R5
cGUoKSB7IHJldHVybiBJbml0aWFsOyB9Ci0KLSNkZWZpbmUgUlNfREVGSU5FX0FUVFJJQlVURV9J
TkhFUklURUQoRGF0YSwgVHlwZSwgTmFtZSwgSW5pdGlhbCkgXAotICAgIHZvaWQgc2V0IyNUeXBl
KERhdGEgdmFsKSB7IGluaGVyaXRlZF9mbGFncy5mLl8jI05hbWUgPSB2YWw7IH0gXAotICAgIERh
dGEgTmFtZSgpIGNvbnN0IHsgcmV0dXJuIChEYXRhKSBpbmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1l
OyB9IFwKLSAgICBzdGF0aWMgRGF0YSBpbml0aWFsIyNUeXBlKCkgeyByZXR1cm4gSW5pdGlhbDsg
fQotCi0jZGVmaW5lIFJTX0RFRklORV9BVFRSSUJVVEVfREFUQVJFRihEYXRhLCBHcm91cCwgVmFy
aWFibGUsIFR5cGUsIE5hbWUpIFwKLSAgICBEYXRhIE5hbWUoKSBjb25zdCB7IHJldHVybiBHcm91
cC0+VmFyaWFibGU7IH0gXAotICAgIHZvaWQgc2V0IyNUeXBlKERhdGEgb2JqKSB7IFJTX1NFVF9W
QVJJQUJMRShHcm91cCwgVmFyaWFibGUsIG9iaikgfQotCi0jZGVmaW5lIFJTX0RFRklORV9BVFRS
SUJVVEVfREFUQVJFRl9XSVRIX0lOSVRJQUwoRGF0YSwgR3JvdXAsIFZhcmlhYmxlLCBUeXBlLCBO
YW1lLCBJbml0aWFsKSBcCi0gICAgUlNfREVGSU5FX0FUVFJJQlVURV9EQVRBUkVGKERhdGEsIEdy
b3VwLCBWYXJpYWJsZSwgVHlwZSwgTmFtZSkgXAotICAgIHN0YXRpYyBEYXRhIGluaXRpYWwjI1R5
cGUoKSB7IHJldHVybiBJbml0aWFsOyB9Ci0KLSNkZWZpbmUgUlNfU0VUX1ZBUklBQkxFKEdyb3Vw
LCBWYXJpYWJsZSwgVmFsdWUpIFwKLSAgICBpZighKEdyb3VwLT5WYXJpYWJsZSA9PSBWYWx1ZSkp
IFwKLSAgICAgICAgR3JvdXAuYWNjZXNzKCktPlZhcmlhYmxlID0gVmFsdWU7Ci0KLSNlbmRpZgot
CiBjbGFzcyBSZW5kZXJTdHlsZQogewogICAgIGZyaWVuZCBjbGFzcyBDU1NTdHlsZVNlbGVjdG9y
OwpAQCAtMTEyNyw3ICsxMDI3LDcgQEAgcHJvdGVjdGVkOgogICAgIGludCBtX3JlZjsKICAgICAK
ICNpZiBTVkdfU1VQUE9SVAotICAgIEtTVkc6OlNWR1JlbmRlclN0eWxlICptX3N2Z1N0eWxlOwor
ICAgIERhdGFSZWY8S1NWRzo6U1ZHUmVuZGVyU3R5bGU+IG1fc3ZnU3R5bGU7CiAjZW5kaWYKICAg
ICAKIC8vICFFTkQgU1lOQyEKQEAgLTE2NTAsOSArMTU1MCw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldExpbmVDbGFtcChpbnQgYykgeyBTRVRfVkFSKGNzczNOb25Jbmhlcml0ZWREYXRhLCBsaW5l
Q2xhbXAsIGMpOyB9CiAgICAgdm9pZCBzZXRUZXh0U2l6ZUFkanVzdChib29sIGIpIHsgU0VUX1ZB
Uihjc3MzSW5oZXJpdGVkRGF0YSwgdGV4dFNpemVBZGp1c3QsIGIpOyB9CiAKLQogI2lmIFNWR19T
VVBQT1JUCi0gICAgS1NWRzo6U1ZHUmVuZGVyU3R5bGUgKnN2Z1N0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zdmdTdHlsZTsgfQorICAgIGNvbnN0IEtTVkc6OlNWR1JlbmRlclN0eWxlKiBzdmdTdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnU3R5bGUuZ2V0KCk7IH0KKyAgICBLU1ZHOjpTVkdSZW5k
ZXJTdHlsZSogYWNjZXNzU1ZHU3R5bGUoKSB7IHJldHVybiBtX3N2Z1N0eWxlLmFjY2VzcygpOyB9
CiAjZW5kaWYKIAogICAgIENvbnRlbnREYXRhKiBjb250ZW50RGF0YSgpIHsgcmV0dXJuIGNvbnRl
bnQ7IH0KSW5kZXg6IGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtcCAtdSAtcjEuMTAga3N2
ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCi0tLSBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJMjEgTm92IDIwMDUgMTE6NTk6NTggLTAwMDAJMS4xMAorKysga3N2ZzIvY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCTUgRGVjIDIwMDUgMTA6MDg6MTYgLTAwMDAKQEAgLTk0
LDcgKzk0LDcgQEAgdm9pZCBLRE9NOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1BybwogICAg
ICAgICBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PEtET006OkNTU1ByaW1pdGl2ZVZhbHVl
SW1wbCAqPih2YWx1ZSk7CiAKICAgICBLRE9NOjpMZW5ndGggbDsKLSAgICBTVkdSZW5kZXJTdHls
ZSAqc3Znc3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICBTVkdSZW5kZXJTdHlsZSAqc3Zn
c3R5bGUgPSBzdHlsZS0+YWNjZXNzU1ZHU3R5bGUoKTsKICAgICAKICAgICB1bnNpZ25lZCBzaG9y
dCB2YWx1ZVR5cGUgPSB2YWx1ZS0+Y3NzVmFsdWVUeXBlKCk7CiAgICAgCkluZGV4OiBrc3ZnMi9j
c3MvU1ZHUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdT
dXBwb3J0L2tzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNwpkaWZmIC1wIC11IC1yMS43IGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5jcHAKLS0tIGtz
dmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5jcHAJMjkgTm92IDIwMDUgMTE6MjA6NDcgLTAwMDAJMS43
CisrKyBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuY3BwCTUgRGVjIDIwMDUgMTA6MDg6MTYgLTAw
MDAKQEAgLTYwLDcgKzYwLDcgQEAgU1ZHUmVuZGVyU3R5bGU6OlNWR1JlbmRlclN0eWxlKGJvb2wp
CiAgICAgbWFya2Vycy5pbml0KCk7CiB9CiAKLVNWR1JlbmRlclN0eWxlOjpTVkdSZW5kZXJTdHls
ZShjb25zdCBTVkdSZW5kZXJTdHlsZSAmb3RoZXIpCitTVkdSZW5kZXJTdHlsZTo6U1ZHUmVuZGVy
U3R5bGUoY29uc3QgU1ZHUmVuZGVyU3R5bGUgJm90aGVyKSA6IGtodG1sOjpTaGFyZWQ8U1ZHUmVu
ZGVyU3R5bGU+KCkKIHsKICAgICBmaWxsID0gb3RoZXIuZmlsbDsKICAgICBzdHJva2UgPSBvdGhl
ci5zdHJva2U7CkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgU1ZHUmVuZGVyU3R5bGU6Om9wZXJhdG9y
PT0oY29uc3QgU1YKICAgICAgICAgc3ZnX25vbmluaGVyaXRlZF9mbGFncyA9PSBvLnN2Z19ub25p
bmhlcml0ZWRfZmxhZ3MpOwogfQogCi1ib29sIFNWR1JlbmRlclN0eWxlOjppbmhlcml0ZWROb3RF
cXVhbChTVkdSZW5kZXJTdHlsZSAqb3RoZXIpIGNvbnN0Citib29sIFNWR1JlbmRlclN0eWxlOjpp
bmhlcml0ZWROb3RFcXVhbChjb25zdCBTVkdSZW5kZXJTdHlsZSAqb3RoZXIpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIChmaWxsICE9IG90aGVyLT5maWxsIHx8IHN0cm9rZSAhPSBvdGhlci0+c3Ryb2tl
IHx8CiAgICAgICAgIHN0b3BzICE9IG90aGVyLT5zdG9wcyB8fCBtaXNjICE9IG90aGVyLT5taXNj
IHx8CkluZGV4OiBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvU1ZHU3VwcG9ydC9rc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5bGUuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXAgLXUgLXIxLjYga3N2ZzIvY3NzL1NWR1JlbmRlclN0
eWxlLmgKLS0tIGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZS5oCTI5IE5vdiAyMDA1IDExOjIwOjQ3
IC0wMDAwCTEuNgorKysga3N2ZzIvY3NzL1NWR1JlbmRlclN0eWxlLmgJNSBEZWMgMjAwNSAxMDow
ODoxNiAtMDAwMApAQCAtMjUsMTMgKzI1LDQzIEBACiAKICNpbmNsdWRlIDxxcmVjdC5oPgogCisj
aW5jbHVkZSAibWlzYy9zaGFyZWQuaCIKKyNpbmNsdWRlICJEYXRhUmVmLmgiCisKKy8vIEtTVkcg
Y29tcGF0aWJpbGl0eTogQWxsb3cgdXMgdG8gdXNlIEtET006OiBhcyB0aG91Z2ggaXQgd2VyZSBr
aHRtbDo6CituYW1lc3BhY2UgS0RPTSB7CisgICAgdXNpbmcgbmFtZXNwYWNlIGtodG1sOworfTsK
KwogI2luY2x1ZGUgPGtzdmcyL3N2Zy9TVkdQYWludEltcGwuaD4KLSNpbmNsdWRlIDxrZG9tL2Nz
cy9SZW5kZXJTdHlsZS5oPgogI2luY2x1ZGUgPGtzdmcyL2Nzcy9TVkdSZW5kZXJTdHlsZURlZnMu
aD4KIAorLy8gSGVscGVyIG1hY3JvcyBmb3IgU1ZHJ3MgJ1JlbmRlclN0eWxlJyBwcm9wZXJ0aWVz
CisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJVVEUoRGF0YSwgVHlwZSwgTmFtZSwgSW5pdGlhbCkg
XAorICAgIHZvaWQgc2V0IyNUeXBlKERhdGEgdmFsKSB7IG5vbmluaGVyaXRlZF9mbGFncy5mLl8j
I05hbWUgPSB2YWw7IH0gXAorICAgIERhdGEgTmFtZSgpIGNvbnN0IHsgcmV0dXJuIChEYXRhKSBu
b25pbmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1lOyB9IFwKKyAgICBzdGF0aWMgRGF0YSBpbml0aWFs
IyNUeXBlKCkgeyByZXR1cm4gSW5pdGlhbDsgfQorCisjZGVmaW5lIFJTX0RFRklORV9BVFRSSUJV
VEVfSU5IRVJJVEVEKERhdGEsIFR5cGUsIE5hbWUsIEluaXRpYWwpIFwKKyAgICB2b2lkIHNldCMj
VHlwZShEYXRhIHZhbCkgeyBpbmhlcml0ZWRfZmxhZ3MuZi5fIyNOYW1lID0gdmFsOyB9IFwKKyAg
ICBEYXRhIE5hbWUoKSBjb25zdCB7IHJldHVybiAoRGF0YSkgaW5oZXJpdGVkX2ZsYWdzLmYuXyMj
TmFtZTsgfSBcCisgICAgc3RhdGljIERhdGEgaW5pdGlhbCMjVHlwZSgpIHsgcmV0dXJuIEluaXRp
YWw7IH0KKworI2RlZmluZSBSU19ERUZJTkVfQVRUUklCVVRFX0RBVEFSRUYoRGF0YSwgR3JvdXAs
IFZhcmlhYmxlLCBUeXBlLCBOYW1lKSBcCisgICAgRGF0YSBOYW1lKCkgY29uc3QgeyByZXR1cm4g
R3JvdXAtPlZhcmlhYmxlOyB9IFwKKyAgICB2b2lkIHNldCMjVHlwZShEYXRhIG9iaikgeyBSU19T
RVRfVkFSSUFCTEUoR3JvdXAsIFZhcmlhYmxlLCBvYmopIH0KKworI2RlZmluZSBSU19ERUZJTkVf
QVRUUklCVVRFX0RBVEFSRUZfV0lUSF9JTklUSUFMKERhdGEsIEdyb3VwLCBWYXJpYWJsZSwgVHlw
ZSwgTmFtZSwgSW5pdGlhbCkgXAorICAgIFJTX0RFRklORV9BVFRSSUJVVEVfREFUQVJFRihEYXRh
LCBHcm91cCwgVmFyaWFibGUsIFR5cGUsIE5hbWUpIFwKKyAgICBzdGF0aWMgRGF0YSBpbml0aWFs
IyNUeXBlKCkgeyByZXR1cm4gSW5pdGlhbDsgfQorCisjZGVmaW5lIFJTX1NFVF9WQVJJQUJMRShH
cm91cCwgVmFyaWFibGUsIFZhbHVlKSBcCisgICAgaWYoIShHcm91cC0+VmFyaWFibGUgPT0gVmFs
dWUpKSBcCisgICAgICAgIEdyb3VwLmFjY2VzcygpLT5WYXJpYWJsZSA9IFZhbHVlOworCiBuYW1l
c3BhY2UgS1NWRwogewotICAgIGNsYXNzIFNWR1JlbmRlclN0eWxlCisgICAgY2xhc3MgU1ZHUmVu
ZGVyU3R5bGUgOiBwdWJsaWMgS0RPTTo6U2hhcmVkPFNWR1JlbmRlclN0eWxlPgogICAgIHsgICAg
CiAgICAgcHVibGljOgogICAgICAgICBTVkdSZW5kZXJTdHlsZSgpOwpAQCAtMzksMTEgKzY5LDEy
IEBAIG5hbWVzcGFjZSBLU1ZHCiAgICAgICAgIFNWR1JlbmRlclN0eWxlKGNvbnN0IFNWR1JlbmRl
clN0eWxlICZvdGhlcik7CiAgICAgICAgIH5TVkdSZW5kZXJTdHlsZSgpOwogCi0gICAgICAgIGJv
b2wgaW5oZXJpdGVkTm90RXF1YWwoU1ZHUmVuZGVyU3R5bGUgKm90aGVyKSBjb25zdDsKKyAgICAg
ICAgYm9vbCBpbmhlcml0ZWROb3RFcXVhbChjb25zdCBTVkdSZW5kZXJTdHlsZSAqb3RoZXIpIGNv
bnN0OwogCiAgICAgICAgIHZvaWQgaW5oZXJpdEZyb20oY29uc3QgU1ZHUmVuZGVyU3R5bGUgKmlu
aGVyaXRQYXJlbnQpOwogICAgICAgICAKICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNW
R1JlbmRlclN0eWxlJiBvKSBjb25zdDsKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNW
R1JlbmRlclN0eWxlJiBvKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG8pOyB9CiAKICAgICAg
ICAgLy8gU1ZHIENTUyBQcm9wZXJ0aWVzCiAgICAgICAgIFNWR19SU19ERUZJTkVfQVRUUklCVVRF
KEVBbGlnbm1lbnRCYXNlbGluZSwgQWxpZ25tZW50QmFzZWxpbmUsIGFsaWdubWVudEJhc2VsaW5l
LCBBQl9BVVRPKQpJbmRleDoga3N2ZzIvY3NzL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1NWR1N1cHBvcnQva3N2ZzIvY3NzL1NWR1JlbmRlclN0
eWxlRGVmcy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1yMS43IGtz
dmcyL2Nzcy9TVkdSZW5kZXJTdHlsZURlZnMuY3BwCi0tLSBrc3ZnMi9jc3MvU1ZHUmVuZGVyU3R5
bGVEZWZzLmNwcAkyMSBOb3YgMjAwNSAwODoyOToyOCAtMDAwMAkxLjcKKysrIGtzdmcyL2Nzcy9T
VkdSZW5kZXJTdHlsZURlZnMuY3BwCTUgRGVjIDIwMDUgMTA6MDg6MTcgLTAwMDAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImtzdmcuaCIKKyNpbmNs
dWRlICJyZW5kZXJfc3R5bGUuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlRGVmcy5oIgogCkluZGV4OiBrY2FudmFzL0tDYW52YXNUcmVlRGVi
dWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tjYW52YXMv
S0NhbnZhc1RyZWVEZWJ1Zy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEKZGlmZiAtcCAt
dSAtcjEuMTEga2NhbnZhcy9LQ2FudmFzVHJlZURlYnVnLmNwcAotLS0ga2NhbnZhcy9LQ2FudmFz
VHJlZURlYnVnLmNwcAkyOCBOb3YgMjAwNSAyMzozMzo1OCAtMDAwMAkxLjExCisrKyBrY2FudmFz
L0tDYW52YXNUcmVlRGVidWcuY3BwCTUgRGVjIDIwMDUgMTA6MDg6MTIgLTAwMDAKQEAgLTIxOSw3
ICsyMTksNyBAQCBzdGF0aWMgUVRleHRTdHJlYW0gJm9wZXJhdG9yPDwoUVRleHRTdHJlCiBzdGF0
aWMgdm9pZCB3cml0ZVN0eWxlKFFUZXh0U3RyZWFtICZ0cywgY29uc3Qga2h0bWw6OlJlbmRlck9i
amVjdCAmb2JqZWN0KQogewogICAgIGtodG1sOjpSZW5kZXJTdHlsZSAqc3R5bGUgPSBvYmplY3Qu
c3R5bGUoKTsKLSAgICBTVkdSZW5kZXJTdHlsZSAqc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUo
KTsKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSAqc3ZnU3R5bGUgPSBzdHlsZS0+c3ZnU3R5bGUo
KTsKICAgICAKICAgICBpZiAoIW9iamVjdC5sb2NhbFRyYW5zZm9ybSgpLmlzSWRlbnRpdHkoKSkK
ICAgICAgICAgdHMgPDwgIiBbdHJhbnNmb3JtPSIgPDwgb2JqZWN0LmxvY2FsVHJhbnNmb3JtKCkg
PDwgIl0iOwpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tjYW52YXMvZGV2aWNl
L3F1YXJ0ei9LQ2FudmFzSXRlbVF1YXJ0ei5tbSx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpk
aWZmIC1wIC11IC1yMS4xMyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHou
bW0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzSXRlbVF1YXJ0ei5tbQkyOSBOb3Yg
MjAwNSAxMToyMDo0MiAtMDAwMAkxLjEzCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZh
c0l0ZW1RdWFydHoubW0JNSBEZWMgMjAwNSAxMDowODoxMiAtMDAwMApAQCAtMTYwLDcgKzE2MCw3
IEBAIHZvaWQgRHJhd1N0YXJ0QW5kTWlkTWFya2Vycyh2b2lkICppbmZvLCAKIHZvaWQgS0NhbnZh
c0l0ZW1RdWFydHo6OmRyYXdNYXJrZXJzSWZOZWVkZWQoY29uc3QgUVJlY3QgJnJlY3QsIENHUGF0
aFJlZiBwYXRoKSBjb25zdAogewogICAgIEtET006OkRvY3VtZW50SW1wbCAqZG9jID0gZG9jdW1l
bnQoKTsKLSAgICBLU1ZHOjpTVkdSZW5kZXJTdHlsZSAqc3ZnU3R5bGUgPSBzdHlsZSgpLT5zdmdT
dHlsZSgpOworICAgIGNvbnN0IEtTVkc6OlNWR1JlbmRlclN0eWxlICpzdmdTdHlsZSA9IHN0eWxl
KCktPnN2Z1N0eWxlKCk7CiAKICAgICBLQ2FudmFzTWFya2VyICpzdGFydE1hcmtlciA9IGdldE1h
cmtlckJ5SWQoZG9jLCBzdmdTdHlsZS0+c3RhcnRNYXJrZXIoKS5taWQoMSkpOwogICAgIEtDYW52
YXNNYXJrZXIgKm1pZE1hcmtlciA9IGdldE1hcmtlckJ5SWQoZG9jLCBzdmdTdHlsZS0+bWlkTWFy
a2VyKCkubWlkKDEpKTsKSW5kZXg6IGtzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudEltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9TVkdTdXBwb3J0L2tzdmcyL3N2Zy9TVkdG
RUZsb29kRWxlbWVudEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyCmRpZmYgLXAg
LXUgLXIxLjEyIGtzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudEltcGwuY3BwCi0tLSBrc3ZnMi9z
dmcvU1ZHRkVGbG9vZEVsZW1lbnRJbXBsLmNwcAkyOSBOb3YgMjAwNSAxMToyMDo0NyAtMDAwMAkx
LjEyCisrKyBrc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnRJbXBsLmNwcAk1IERlYyAyMDA1IDEw
OjA4OjE4IC0wMDAwCkBAIC03Myw3ICs3Myw3IEBAIEtDYW52YXNGRUZsb29kICpTVkdGRUZsb29k
RWxlbWVudEltcGw6OmYKICAgICBtX2ZpbHRlckVmZmVjdC0+c2V0SW4oS0RPTTo6RE9NU3RyaW5n
KGluMSgpLT5iYXNlVmFsKCkpLnFzdHJpbmcoKSk7CiAgICAgc2V0U3RhbmRhcmRBdHRyaWJ1dGVz
KG1fZmlsdGVyRWZmZWN0KTsKICAgICBraHRtbDo6UmVuZGVyU3R5bGUgKmZpbHRlclN0eWxlID0g
Y29uc3RfY2FzdDxTVkdGRUZsb29kRWxlbWVudEltcGwgKj4odGhpcyktPnN0eWxlRm9yUmVuZGVy
ZXIocGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpKTsKLSAgICBTVkdSZW5kZXJTdHlsZSAqc3ZnU3R5
bGUgPSBmaWx0ZXJTdHlsZS0+c3ZnU3R5bGUoKTsKKyAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSAq
c3ZnU3R5bGUgPSBmaWx0ZXJTdHlsZS0+c3ZnU3R5bGUoKTsKICAgICBtX2ZpbHRlckVmZmVjdC0+
c2V0Rmxvb2RDb2xvcihzdmdTdHlsZS0+Zmxvb2RDb2xvcigpKTsKICAgICBtX2ZpbHRlckVmZmVj
dC0+c2V0Rmxvb2RPcGFjaXR5KHN2Z1N0eWxlLT5mbG9vZE9wYWNpdHkoKSk7CiAgICAgZmlsdGVy
U3R5bGUtPmRlcmVmKGNhbnZhcygpLT5yZW5kZXJBcmVuYSgpKTsK
</data>
<flag name="review"
          id="961"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>