<?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>6885</bug_id>
          
          <creation_ts>2006-01-27 17:57:50 -0800</creation_ts>
          <short_desc>remove nearly all the substance of ObjectContents and put it on Frame</short_desc>
          <delta_ts>2006-01-27 21:25:53 -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>Frames</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>30366</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-27 17:57:50 -0800</bug_when>
    <thetext>Remove nearly all the substance of ObjectContents and put it on Frame. I have a patch that takes nearly all the functionality out of ObjectContents, only a single pure virtual method plus the refcounting mechanism are left.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30369</commentid>
    <comment_count>1</comment_count>
      <attachid>6034</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-27 18:16:07 -0800</bug_when>
    <thetext>Created attachment 6034
rip out most of ObjectContents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>30376</commentid>
    <comment_count>2</comment_count>
      <attachid>6034</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-27 18:55:01 -0800</bug_when>
    <thetext>Comment on attachment 6034
rip out most of ObjectContents

Eric reviewed on IRC.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6034</attachid>
            <date>2006-01-27 18:16:07 -0800</date>
            <delta_ts>2006-01-27 18:55:01 -0800</delta_ts>
            <desc>rip out most of ObjectContents</desc>
            <filename>trash-object-contents.patch.txt</filename>
            <type>text/plain</type>
            <size>25225</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyNDIy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMDYtMDEt
MjcgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIHJlbW92ZSBuZWFybHkgYWxsIHRoZSBz
dWJzdGFuY2Ugb2YgT2JqZWN0Q29udGVudHMgYW5kIHB1dCBpdCBvbiBGcmFtZQorICAgICAgICBo
dHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODUKKworICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2tqcy9KU0xvY2suaDogQWRkZWQuCisgICAgICAgICog
YnJpZGdlL21hYy9NYWNGcmFtZS5tbToKKyAgICAgICAgKFBsdWdpbjo6UGx1Z2luKTogcmVuYW1l
ZCBmcm9tIEtXUVBsdWdpblBhcnQsIG1ha2UgaXQgYWJsZSB0byBzdG9yZSBhIHZpZXcuCisgICAg
ICAgIChQbHVnaW46OnZpZXcpOiBBbmQgcmV0dXJuIHRoZSBRV2lkZ2V0KiB2aWV3LgorICAgICAg
ICAoTWFjRnJhbWU6OmNyZWF0ZVBhcnQpOiBVc2UgUGx1Z2luIGluc3RlYWQgb2YgS1dRUGx1Z2lu
UGFydCwgYXZvaWQgc2V0V2lkZ2V0LgorICAgICAgICAoTWFjRnJhbWU6OnNldFZpZXcpOiBEb24n
dCB1c2UgbV91cmwgZGlyZWN0bHkgc28gbXVjaCwgYW5kIHVzZSB0aHJvdWdoIGQtPiBpZgorICAg
ICAgICBuZWVkZWQuCisgICAgICAgIChNYWNGcmFtZTo6dXNlckFnZW50KTogZGl0dG8KKyAgICAg
ICAgKE1hY0ZyYW1lOjpvcGVuVVJMRnJvbVBhZ2VDYWNoZSk6IGRpdHRvCisgICAgICAgICoga3dx
L0tXUU9iamVjdC5jcHA6CisgICAgICAgIChRT2JqZWN0Ojppbmhlcml0cyk6IFJlbW92ZWQgY2Fz
ZSBmb3IgT2JqZWN0Q29udGVudHMsIHdoaWNoIGlzIG5vdCBsb25nIGZvciB0aGlzCisgICAgICAg
IHdvcmxkLgorICAgICAgICAqIGt3cS9LV1FPYmplY3QuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1l
LmNwcDoKKyAgICAgICAgKEZyYW1lOjppbml0KTogRG9uJ3QgcGFzcyBwYXJlbnQoKSB0byBGcmFt
ZVByaXZhdGUsIHdlIGNhbid0IHBvc3NpYmx5IGhhdmUgb25lCisgICAgICAgIHlldC4KKyAgICAg
ICAgKEZyYW1lOjpyZXN0b3JlVVJMKTogZC0+bV91cmwsIG5vdCBtX3VybAorICAgICAgICAoRnJh
bWU6OmRpZE9wZW5VUkwpOiBkaXR0bworICAgICAgICAoRnJhbWU6OmV4ZWN1dGVTY3JpcHQpOiBk
aXR0bworICAgICAgICAoRnJhbWU6OnJlY2VpdmVkRmlyc3REYXRhKTogZGl0dG8KKyAgICAgICAg
KEZyYW1lOjpiZWdpbik6IGRpdHRvCisgICAgICAgIChGcmFtZTo6Z290b0FuY2hvcik6IGRpdHRv
CisgICAgICAgIChGcmFtZTo6cmVxdWVzdE9iamVjdCk6IGRpdHRvLCBwbHVzIG9ubHkgdXNlIEZy
YW1lIG1ldGhvZHMgd2hlbiB3ZSByZWFsbHkgaGF2ZSBhIEZyYW1lLgorICAgICAgICAoRnJhbWU6
OnByb2Nlc3NPYmplY3RSZXF1ZXN0KTogZGl0dG8sIGFsc28gZ2V0IHZpZXcoKSBub3Qgd2lkZ2V0
KCkuCisgICAgICAgIChGcmFtZTo6Y2hpbGRGcmFtZSk6IHJlbW92ZSBleGNlc3Mgc3BhY2VzIGFu
ZCBwb2ludGxlc3MgYXNzZXJ0LgorICAgICAgICAoRnJhbWU6OnBhcmVudEZyYW1lKToganVzdCBj
YWxsIHBhcmVudCgpIChjb3VsZCBwcm9iYWJseSByZW1vdmUgdGhpcykuCisgICAgICAgIChGcmFt
ZTo6cmVwYXJzZUNvbmZpZ3VyYXRpb24pOiBkLT5tX3VybCBub3QgbV91cmwKKyAgICAgICAgKEZy
YW1lOjpjYW5DYWNoZVBhZ2UpOiBkaXR0bworICAgICAgICAoRnJhbWU6OnVwZGF0ZVBvbGljeUJh
c2VVUkwpOiBkaXR0bworICAgICAgICAoRnJhbWU6OnNjcm9sbFRvQW5jaG9yKTogZGl0dG8KKyAg
ICAgICAgKEZyYW1lOjpzZXROYW1lKTogc2V0IGluIEZyYW1lUHJpdmF0ZQorICAgICAgICAoRnJh
bWU6Om5hbWUpOiBnZXQgZnJvbSBGcmFtZVByaXZhdGUKKyAgICAgICAgKEZyYW1lOjpzZXRQYXJl
bnQpOiBzaW1pbGFybHkKKyAgICAgICAgKEZyYW1lOjpwYXJlbnQpOiBzaW1pbGFybHkKKyAgICAg
ICAgKEZyYW1lOjp1cmwpOiBzaW1pbGFybHkKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAg
ICAgICogcGFnZS9GcmFtZVByaXZhdGUuaDoKKyAgICAgICAgKEZyYW1lUHJpdmF0ZTo6RnJhbWVQ
cml2YXRlKTogQWRkZWQgbV9wYXJlbnQsIG1fbmFtZSBhbmQgbV91cmwuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoRnJhbWVWaWV3Ojp2aWV3cG9ydE1vdXNlUHJlc3NF
dmVudCk6IENhbGwgZnJhbWUgZGlyZWN0bHkgaW5zdGVhZCBvZgorICAgICAgICBzZW5kaW5nIHRo
cm91Z2ggUUFwcGxpY2F0aW9uLgorICAgICAgICAoRnJhbWVWaWV3Ojp2aWV3cG9ydE1vdXNlRG91
YmxlQ2xpY2tFdmVudCk6IGRpdHRvCisgICAgICAgIChGcmFtZVZpZXc6OnZpZXdwb3J0TW91c2VN
b3ZlRXZlbnQpOiBkaXR0bworICAgICAgICAoRnJhbWVWaWV3Ojp2aWV3cG9ydE1vdXNlUmVsZWFz
ZUV2ZW50KTogZGl0dG8KKyAgICAgICAgKiBwYWdlL09iamVjdENvbnRlbnRzLmg6CisgICAgICAg
IChPYmplY3RDb250ZW50czo6T2JqZWN0Q29udGVudHMpOiBSZW1vdmVkIHVybCwgc2V0UGFyZW50
LCBwYXJlbnQsIG5hbWUsCisgICAgICAgIHNldE5hbWUsIG9wZW5VUkwsIGNsb3NlVVJMLCB3aWRn
ZXQsIHNldFdpZGdldCwgZXZlbnQgYW5kIGN1c3RvbUV2ZW50IG1ldGhvZHMsCisgICAgICAgIGFu
ZCBjb3JyZXNwb25kaW5nIGZpZWxkcy4gQWRkIHB1cmUgdmlydHVhbCB2aWV3KCkgbWV0aG9kLgor
CiAyMDA2LTAxLTI3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGVsZS4KSW5kZXg6IGJyaWRnZS9tYWMvTWFjRnJhbWUubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gYnJpZGdlL21hYy9NYWNGcmFtZS5tbQkocmV2aXNpb24gMTI0MDcpCisrKyBicmlkZ2Uv
bWFjL01hY0ZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MTcsMTAgKzYxNywxNCBAQCB2b2lk
IE1hY0ZyYW1lOjp1cmxTZWxlY3RlZChjb25zdCBLVVJMICZ1CiAgICAgS1dRX1VOQkxPQ0tfRVhD
RVBUSU9OUzsKIH0KIAotY2xhc3MgS1dRUGx1Z2luUGFydCA6IHB1YmxpYyBPYmplY3RDb250ZW50
cworY2xhc3MgUGx1Z2luIDogcHVibGljIE9iamVjdENvbnRlbnRzCiB7Ci0gICAgdmlydHVhbCBi
b29sIG9wZW5VUkwoY29uc3QgS1VSTCAmKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBi
b29sIGNsb3NlVVJMKCkgeyByZXR1cm4gdHJ1ZTsgfQorcHVibGljOgorICAgIFBsdWdpbihRV2lk
Z2V0ICp2aWV3KSA6IG1fdmlldyh2aWV3KSB7IH0KKyAgICB2aXJ0dWFsIFFXaWRnZXQgKnZpZXco
KSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KKworcHJpdmF0ZToKKyAgICBRV2lkZ2V0ICptX3Zp
ZXc7CiB9OwogCiBPYmplY3RDb250ZW50cyAqTWFjRnJhbWU6OmNyZWF0ZVBhcnQoY29uc3QgQ2hp
bGRGcmFtZSAmY2hpbGQsIGNvbnN0IEtVUkwgJnVybCwgY29uc3QgUVN0cmluZyAmbWltZVR5cGUp
CkBAIC02MzksMTIgKzY0MywxMCBAQCBPYmplY3RDb250ZW50cyAqTWFjRnJhbWU6OmNyZWF0ZVBh
cnQoY29uCiAgICAgfQogCiAgICAgaWYgKG9iamVjdFR5cGUgPT0gT2JqZWN0RWxlbWVudFBsdWdp
bikgewotICAgICAgICBLV1FQbHVnaW5QYXJ0ICpuZXdQYXJ0ID0gbmV3IEtXUVBsdWdpblBhcnQ7
Ci0gICAgICAgIG5ld1BhcnQtPnNldFdpZGdldChuZXcgUVdpZGdldChbX2JyaWRnZSB2aWV3Rm9y
UGx1Z2luV2l0aFVSTDp1cmwuZ2V0TlNVUkwoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZXM6Y2hpbGQubV9wYXJhbU5h
bWVzLmdldE5TQXJyYXkoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXM6Y2hpbGQubV9wYXJhbVZhbHVlcy5nZXROU0Fy
cmF5KCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNSU1FVHlwZTpjaGlsZC5tX2FyZ3Muc2VydmljZVR5cGUuZ2V0TlNTdHJpbmco
KV0pKTsKLSAgICAgICAgcGFydCA9IG5ld1BhcnQ7CisgICAgICAgIHBhcnQgPSBuZXcgUGx1Z2lu
KG5ldyBRV2lkZ2V0KFtfYnJpZGdlIHZpZXdGb3JQbHVnaW5XaXRoVVJMOnVybC5nZXROU1VSTCgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lczpj
aGlsZC5tX3BhcmFtTmFtZXMuZ2V0TlNBcnJheSgpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXM6Y2hpbGQubV9wYXJhbVZhbHVlcy5nZXROU0Fy
cmF5KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTUVUeXBlOmNo
aWxkLm1fYXJncy5zZXJ2aWNlVHlwZS5nZXROU1N0cmluZygpXSkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIExPRyhGcmFtZXMsICJuYW1lICVzIiwgY2hpbGQubV9uYW1lLmFzY2lpKCkpOwogICAg
ICAgICBCT09MIGFsbG93c1Njcm9sbGluZyA9IFlFUzsKQEAgLTY4Niw3ICs2ODgsNiBAQCB2b2lk
IE1hY0ZyYW1lOjpzZXRWaWV3KEZyYW1lVmlldyAqdmlldykKICAgICBpZiAoZC0+bV92aWV3KQog
ICAgICAgICBkLT5tX3ZpZXctPmRlcmVmKCk7CiAgICAgZC0+bV92aWV3ID0gdmlldzsKLSAgICBz
ZXRXaWRnZXQodmlldyk7CiAgICAgCiAgICAgLy8gRGVsZXRlIG9sZCBQbHVnSW4gZGF0YSBzdHJ1
Y3R1cmVzCiAgICAgY2xlYW51cFBsdWdpblJvb3RPYmplY3RzKCk7CkBAIC05NDEsNyArOTQyLDcg
QEAgdm9pZCBNYWNGcmFtZTo6cmVkaXJlY3Rpb25UaW1lclN0YXJ0ZWRPcgogUVN0cmluZyBNYWNG
cmFtZTo6dXNlckFnZW50KCkgY29uc3QKIHsKICAgICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKLSAg
ICByZXR1cm4gUVN0cmluZzo6ZnJvbU5TU3RyaW5nKFtfYnJpZGdlIHVzZXJBZ2VudEZvclVSTDpt
X3VybC5nZXROU1VSTCgpXSk7CisgICAgcmV0dXJuIFFTdHJpbmc6OmZyb21OU1N0cmluZyhbX2Jy
aWRnZSB1c2VyQWdlbnRGb3JVUkw6dXJsKCkuZ2V0TlNVUkwoKV0pOwogICAgIEtXUV9VTkJMT0NL
X0VYQ0VQVElPTlM7CiAgICAgICAgICAKICAgICByZXR1cm4gUVN0cmluZygpOwpAQCAtMTIwNyw3
ICsxMjA4LDcgQEAgdm9pZCBNYWNGcmFtZTo6b3BlblVSTEZyb21QYWdlQ2FjaGUoS1dRUAogCiAg
ICAgRG9jdW1lbnRJbXBsICpkb2MgPSBbc3RhdGUgZG9jdW1lbnRdOwogICAgIE5vZGVJbXBsICpt
b3VzZVByZXNzTm9kZSA9IFtzdGF0ZSBtb3VzZVByZXNzTm9kZV07Ci0gICAgS1VSTCAqdXJsID0g
W3N0YXRlIFVSTF07CisgICAgS1VSTCAqa3VybCA9IFtzdGF0ZSBVUkxdOwogICAgIFNhdmVkUHJv
cGVydGllcyAqd2luZG93UHJvcGVydGllcyA9IFtzdGF0ZSB3aW5kb3dQcm9wZXJ0aWVzXTsKICAg
ICBTYXZlZFByb3BlcnRpZXMgKmxvY2F0aW9uUHJvcGVydGllcyA9IFtzdGF0ZSBsb2NhdGlvblBy
b3BlcnRpZXNdOwogICAgIFNhdmVkQnVpbHRpbnMgKmludGVycHJldGVyQnVpbHRpbnMgPSBbc3Rh
dGUgaW50ZXJwcmV0ZXJCdWlsdGluc107CkBAIC0xMjMwLDE3ICsxMjMxLDE3IEBAIHZvaWQgTWFj
RnJhbWU6Om9wZW5VUkxGcm9tUGFnZUNhY2hlKEtXUVAKICAgICAgICAgZC0+bV9ranNEZWZhdWx0
U3RhdHVzQmFyVGV4dCA9IFFTdHJpbmc6Om51bGw7CiAgICAgfQogCi0gICAgQVNTRVJUKHVybCk7
CisgICAgQVNTRVJUKGt1cmwpOwogICAgIAotICAgIG1fdXJsID0gKnVybDsKKyAgICBkLT5tX3Vy
bCA9ICprdXJsOwogICAgIAogICAgIC8vIGluaXRpYWxpemluZyBtX3VybCB0byB0aGUgbmV3IHVy
bCBicmVha3MgcmVsYXRpdmUgbGlua3Mgd2hlbiBvcGVuaW5nIHN1Y2ggYSBsaW5rIGFmdGVyIHRo
aXMgY2FsbCBhbmQgX2JlZm9yZV8gYmVnaW4oKSBpcyBjYWxsZWQgKHdoZW4gdGhlIGZpcnN0CiAg
ICAgLy8gZGF0YSBhcnJpdmVzKSAoU2ltb24pCi0gICAgaWYgKG1fdXJsLnByb3RvY29sKCkuc3Rh
cnRzV2l0aCgiaHR0cCIpICYmICFtX3VybC5ob3N0KCkuaXNFbXB0eSgpICYmIG1fdXJsLnBhdGgo
KS5pc0VtcHR5KCkpCi0gICAgICAgIG1fdXJsLnNldFBhdGgoIi8iKTsKKyAgICBpZiAodXJsKCku
cHJvdG9jb2woKS5zdGFydHNXaXRoKCJodHRwIikgJiYgIXVybCgpLmhvc3QoKS5pc0VtcHR5KCkg
JiYgdXJsKCkucGF0aCgpLmlzRW1wdHkoKSkKKyAgICAgICAgZC0+bV91cmwuc2V0UGF0aCgiLyIp
OwogICAgIAotICAgIC8vIGNvcHkgdG8gbV93b3JraW5nVVJMIGFmdGVyIGZpeGluZyBtX3VybCBh
Ym92ZQotICAgIGQtPm1fd29ya2luZ1VSTCA9IG1fdXJsOworICAgIC8vIGNvcHkgdG8gbV93b3Jr
aW5nVVJMIGFmdGVyIGZpeGluZyB1cmwoKSBhYm92ZQorICAgIGQtPm1fd29ya2luZ1VSTCA9IHVy
bCgpOwogICAgICAgICAKICAgICBlbWl0IHN0YXJ0ZWQoTlVMTCk7CiAgICAgCkBAIC0xMjUyLDcg
KzEyNTMsNyBAQCB2b2lkIE1hY0ZyYW1lOjpvcGVuVVJMRnJvbVBhZ2VDYWNoZShLV1FQCiAgICAg
ZC0+bV9iQ2xlYXJlZCA9IGZhbHNlOwogICAgIGQtPm1fYkNvbXBsZXRlID0gZmFsc2U7CiAgICAg
ZC0+bV9iTG9hZEV2ZW50RW1pdHRlZCA9IGZhbHNlOwotICAgIGQtPm1fcmVmZXJyZXIgPSBtX3Vy
bC51cmwoKTsKKyAgICBkLT5tX3JlZmVycmVyID0gdXJsKCkudXJsKCk7CiAgICAgCiAgICAgc2V0
Vmlldyhkb2MtPnZpZXcoKSk7CiAgICAgCkluZGV4OiBGb3J3YXJkaW5nSGVhZGVycy9ranMvSlNM
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpJbmRleDoga3dxL0tXUU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a3dxL0tXUU9iamVjdC5jcHAJKHJldmlzaW9uIDEyNDA3KQorKysga3dxL0tXUU9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5Niw5ICsyOTYsNiBAQCBib29sIFFPYmplY3Q6OmluaGVyaXRz
KGNvbnN0IGNoYXIgKmNsYXNzCiAgICAgaWYgKHN0cmNtcChjbGFzc05hbWUsICJLUGFydHM6OkZh
Y3RvcnkiKSA9PSAwKSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYgKHN0
cmNtcChjbGFzc05hbWUsICJPYmplY3RDb250ZW50cyIpID09IDApIHsKLSAgICAgICAgcmV0dXJu
IGlzT2JqZWN0Q29udGVudHMoKTsKLSAgICB9CiAgICAgaWYgKHN0cmNtcChjbGFzc05hbWUsICJR
RnJhbWUiKSA9PSAwKSB7CiAgICAgICAgIHJldHVybiBpc1FGcmFtZSgpOwogICAgIH0KQEAgLTMy
NCwxMSArMzIxLDYgQEAgYm9vbCBRT2JqZWN0Ojppc0ZyYW1lVmlldygpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1ib29sIFFPYmplY3Q6OmlzT2JqZWN0Q29udGVudHMoKSBjb25zdAot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBRT2JqZWN0Ojppc1FGcmFtZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDoga3dxL0tXUU9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGt3cS9LV1FPYmplY3QuaAkocmV2aXNpb24gMTI0MDcpCisrKyBrd3EvS1dRT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzS0hUTUxMb2FkZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lVmlldygpIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBpc09iamVjdENvbnRlbnRzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUUZyYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzUVNjcm9sbFZpZXcoKSBjb25zdDsKIApJbmRl
eDogcGFnZS9GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWUuaAkocmV2aXNpb24gMTI0
MDcpCisrKyBwYWdlL0ZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDggQEAKICNp
bmNsdWRlICJ0ZXh0X2FmZmluaXR5LmgiCiAjaW5jbHVkZSAidGV4dF9ncmFudWxhcml0eS5oIgog
I2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8cXNjcm9sbGJhci5oPgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgorI2luY2x1ZGUgInFzY3JvbGxiYXIuaCIKIAogY2xhc3MgRnJhbWVQcml2YXRl
OwogY2xhc3MgRnJhbWVWaWV3OwpAQCAtNzc5LDcgKzc4MCw2IEBAIHB1YmxpYzoKICAgICovCiAg
IHZvaWQgaHRtbEVycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFFTdHJpbmcmIHRleHQsIGNvbnN0
IEtVUkwmIHJlcVVybCk7CiAKLSAgdmlydHVhbCB2b2lkIGN1c3RvbUV2ZW50KFFDdXN0b21FdmVu
dCAqZXZlbnQpOwogICB2aXJ0dWFsIHZvaWQga2h0bWxNb3VzZURvdWJsZUNsaWNrRXZlbnQoV2Vi
Q29yZTo6TW91c2VEb3VibGVDbGlja0V2ZW50ICpldmVudCk7CiAgIHZpcnR1YWwgdm9pZCBraHRt
bE1vdXNlUHJlc3NFdmVudChXZWJDb3JlOjpNb3VzZVByZXNzRXZlbnQgKmV2ZW50KTsKICAgdmly
dHVhbCB2b2lkIGtodG1sTW91c2VNb3ZlRXZlbnQoV2ViQ29yZTo6TW91c2VNb3ZlRXZlbnQgKmV2
ZW50KTsKQEAgLTEwNDcsOCArMTA0Nyw5IEBAIHByaXZhdGU6CiAgIC8vIENvbnZlbmllbmNlLCB0
byBhdm9pZCByZXBlYXRpbmcgdGhlIGNvZGUgdG8gZGlnIGRvd24gdG8gZ2V0IHRoaXMuCiAKICAg
UUNoYXIgYmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpIGNvbnN0OwotICB2b2lkIHNldE5hbWUo
Y29uc3QgUVN0cmluZyAmbmFtZSk7Ci0gIAorICB2b2lkIHNldE5hbWUoY29uc3QgUVN0cmluZyYg
bmFtZSk7CisgIGNvbnN0IFFTdHJpbmcmIG5hbWUoKTsKKwogICBRVmFsdWVMaXN0PE1hcmtlZFRl
eHRVbmRlcmxpbmU+IG1hcmtlZFRleHRVbmRlcmxpbmVzKCkgY29uc3Q7ICAKICAgYm9vbCBtYXJr
ZWRUZXh0VXNlc1VuZGVybGluZXMoKSBjb25zdDsKICAgLy8gQ2FsbCB0aGlzIG1ldGhvZCBiZWZv
cmUgaGFuZGxpbmcgYSBuZXcgdXNlciBhY3Rpb24sIGxpa2Ugb24gYSBtb3VzZSBkb3duIG9yIGtl
eSBkb3duLgpAQCAtMTExMCw2ICsxMTExLDEwIEBAIHB1YmxpYzogIAogCiAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hGcm9tVmlldygpOwogCisgIEtVUkwgdXJsKCkgY29uc3Q7CisgIHZvaWQgc2V0UGFy
ZW50KEZyYW1lKiBwYXJlbnQpOworICBGcmFtZSogcGFyZW50KCkgY29uc3Q7CisKICAgLy8gc3Bs
aXQgb3V0IGNvbnRyb2xsZXIgb2JqZWN0cwogICBGcmFtZVRyZWVOb2RlICp0cmVlTm9kZSgpOwog
ICBXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyICZzZWxlY3Rpb24oKSBjb25zdDsKSW5kZXg6
IHBhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5jcHAJKHJl
dmlzaW9uIDEyNDA3KQorKysgcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NDQsMTYgKzU0NCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6dmlld3BvcnRNb3VzZVByZXNzRXZlbnQo
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+Y2xpY2tDb3Vu
dCxfbW91c2UsdHJ1ZSxOb2RlSW1wbDo6TW91c2VQcmVzcyk7CiAKICAgICBpZiAoIXN3YWxsb3dF
dmVudCkgewotCU1vdXNlUHJlc3NFdmVudCBldmVudCggX21vdXNlLCB4bSwgeW0sIG1ldi51cmws
IG1ldi50YXJnZXQsIG1ldi5pbm5lck5vZGUuZ2V0KCkgKTsKLQlRQXBwbGljYXRpb246OnNlbmRF
dmVudCggbV9mcmFtZSwgJmV2ZW50ICk7CisJTW91c2VQcmVzc0V2ZW50IGV2ZW50KF9tb3VzZSwg
eG0sIHltLCBtZXYudXJsLCBtZXYudGFyZ2V0LCBtZXYuaW5uZXJOb2RlLmdldCgpKTsKKyAgICAg
ICAgbV9mcmFtZS0+a2h0bWxNb3VzZVByZXNzRXZlbnQoJmV2ZW50KTsKICAgICAgICAgLy8gTWFu
eSBBSyB3aWRnZXRzIHJ1biB0aGVpciBvd24gZXZlbnQgbG9vcHMgYW5kIGNvbnN1bWUgZXZlbnRz
IHdoaWxlIHRoZSBtb3VzZSBpcyBkb3duLgogICAgICAgICAvLyBXaGVuIHRoZXkgZmluaXNoLCBj
dXJyZW50RXZlbnQgaXMgdGhlIG1vdXNlVXAgdGhhdCB0aGV5IGV4aXRlZCBvbi4gIFdlIG5lZWQg
dG8gdXBkYXRlCiAgICAgICAgIC8vIHRoZSBraHRtbCBzdGF0ZSB3aXRoIHRoaXMgbW91c2VVcCwg
d2hpY2gga2h0bWwgbmV2ZXIgc2F3LgogICAgICAgICAvLyBJZiB0aGlzIGV2ZW50IGlzbid0IGEg
bW91c2VVcCwgd2UgYXNzdW1lIHRoYXQgdGhlIG1vdXNlVXAgd2lsbCBiZSBjb21pbmcgbGF0ZXIu
ICBUaGVyZQogICAgICAgICAvLyBpcyBhIGhvbGUgaGVyZSBpZiB0aGUgd2lkZ2V0IGNvbnN1bWVz
IHRoZSBtb3VzZVVwIGFuZCBzdWJzZXF1ZW50IGV2ZW50cy4KLSAgICAgICAgaWYgKG1fZnJhbWUt
Pmxhc3RFdmVudElzTW91c2VVcCgpKSB7CisgICAgICAgIGlmIChtX2ZyYW1lLT5sYXN0RXZlbnRJ
c01vdXNlVXAoKSkKICAgICAgICAgICAgIGQtPm1vdXNlUHJlc3NlZCA9IGZhbHNlOwotICAgICAg
ICB9CiAgICAgfQogfQogCkBAIC01ODUsMTEgKzU4NCwxMSBAQCB2b2lkIEZyYW1lVmlldzo6dmll
d3BvcnRNb3VzZURvdWJsZUNsaWNrCiAKICAgICAvLyBRdCBkZWxpdmVycyBhIHJlbGVhc2UgZXZl
bnQgQU5EIGEgZG91YmxlIGNsaWNrIGV2ZW50LgogICAgIGlmICghc3dhbGxvd0V2ZW50KSB7Ci0J
TW91c2VSZWxlYXNlRXZlbnQgZXZlbnQxKCBfbW91c2UsIHhtLCB5bSwgbWV2LnVybCwgbWV2LnRh
cmdldCwgbWV2LmlubmVyTm9kZS5nZXQoKSApOwotCVFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KCBt
X2ZyYW1lLCAmZXZlbnQxICk7CisJTW91c2VSZWxlYXNlRXZlbnQgZXZlbnQxKF9tb3VzZSwgeG0s
IHltLCBtZXYudXJsLCBtZXYudGFyZ2V0LCBtZXYuaW5uZXJOb2RlLmdldCgpKTsKKwltX2ZyYW1l
LT5raHRtbE1vdXNlUmVsZWFzZUV2ZW50KCZldmVudDEpOwogCi0JTW91c2VEb3VibGVDbGlja0V2
ZW50IGV2ZW50MiggX21vdXNlLCB4bSwgeW0sIG1ldi51cmwsIG1ldi50YXJnZXQsIG1ldi5pbm5l
ck5vZGUuZ2V0KCkgKTsKLQlRQXBwbGljYXRpb246OnNlbmRFdmVudCggbV9mcmFtZSwgJmV2ZW50
MiApOworCU1vdXNlRG91YmxlQ2xpY2tFdmVudCBldmVudDIoX21vdXNlLCB4bSwgeW0sIG1ldi51
cmwsIG1ldi50YXJnZXQsIG1ldi5pbm5lck5vZGUuZ2V0KCkpOworICAgICAgICBtX2ZyYW1lLT5r
aHRtbE1vdXNlRG91YmxlQ2xpY2tFdmVudCgmZXZlbnQyKTsKICAgICB9CiAKICAgICBpbnZhbGlk
YXRlQ2xpY2soKTsKQEAgLTY4Nyw3ICs2ODYsNyBAQCB2b2lkIEZyYW1lVmlldzo6dmlld3BvcnRN
b3VzZU1vdmVFdmVudCggCiAKICAgICBpZiAoIXN3YWxsb3dFdmVudCkgewogICAgICAgICBNb3Vz
ZU1vdmVFdmVudCBldmVudChfbW91c2UsIHhtLCB5bSwgbWV2LnVybCwgbWV2LnRhcmdldCwgbWV2
LmlubmVyTm9kZS5nZXQoKSk7Ci0gICAgICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fZnJh
bWUsICZldmVudCk7CisgICAgICAgIG1fZnJhbWUtPmtodG1sTW91c2VNb3ZlRXZlbnQoJmV2ZW50
KTsKICAgICB9CiB9CiAKQEAgLTcyNiw4ICs3MjUsOCBAQCB2b2lkIEZyYW1lVmlldzo6dmlld3Bv
cnRNb3VzZVJlbGVhc2VFdmVuCiAJCQkgICBkLT5jbGlja0NvdW50LF9tb3VzZSx0cnVlLE5vZGVJ
bXBsOjpNb3VzZVJlbGVhc2UpOwogCiAgICAgaWYgKCFzd2FsbG93RXZlbnQpIHsKLQlNb3VzZVJl
bGVhc2VFdmVudCBldmVudCggX21vdXNlLCB4bSwgeW0sIG1ldi51cmwsIG1ldi50YXJnZXQsIG1l
di5pbm5lck5vZGUuZ2V0KCkgKTsKLQlRQXBwbGljYXRpb246OnNlbmRFdmVudCggbV9mcmFtZSwg
JmV2ZW50ICk7CisJTW91c2VSZWxlYXNlRXZlbnQgZXZlbnQoX21vdXNlLCB4bSwgeW0sIG1ldi51
cmwsIG1ldi50YXJnZXQsIG1ldi5pbm5lck5vZGUuZ2V0KCkpOworICAgICAgICBtX2ZyYW1lLT5r
aHRtbE1vdXNlUmVsZWFzZUV2ZW50KCZldmVudCk7CiAgICAgfQogCiAgICAgaW52YWxpZGF0ZUNs
aWNrKCk7CkluZGV4OiBwYWdlL09iamVjdENvbnRlbnRzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9P
YmplY3RDb250ZW50cy5oCShyZXZpc2lvbiAxMjQwNykKKysrIHBhZ2UvT2JqZWN0Q29udGVudHMu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsMzYgKzMzLDE1IEBACiBjbGFzcyBPYmplY3RDb250ZW50
cyA6IHB1YmxpYyBRT2JqZWN0IHsKIHB1YmxpYzoKICAgICBPYmplY3RDb250ZW50cygpCi0gICAg
ICAgIDogX3BhcmVudCgwKSwgX25hbWUoMCksIF93aWRnZXQoMCksIF9yZWYoMSkgeyB9CisgICAg
ICAgIDogX3JlZigxKSB7IH0KICAgICAKLSAgICBLVVJMIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
dXJsOyB9Ci0gICAgCi0gICAgdm9pZCBzZXRQYXJlbnQoUU9iamVjdCAqcGFyZW50KSB7IF9wYXJl
bnQgPSBwYXJlbnQ7IH0KLSAgICBRT2JqZWN0ICpwYXJlbnQoKSBjb25zdCB7IHJldHVybiBfcGFy
ZW50OyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBRU3RyaW5nICZuYW1lKSB7
IF9uYW1lID0gbmFtZTsgfQotICAgIFFTdHJpbmcgbmFtZSgpIHsgcmV0dXJuIF9uYW1lOyB9Ci0g
ICAgCi0gICAgdmlydHVhbCBib29sIG9wZW5VUkwoY29uc3QgS1VSTCAmKSA9IDA7Ci0gICAgdmly
dHVhbCBib29sIGNsb3NlVVJMKCkgPSAwOworICAgIHZpcnR1YWwgUVdpZGdldCAqdmlldygpIGNv
bnN0ID0gMDsKIAotICAgIFFXaWRnZXQgKndpZGdldCgpIGNvbnN0IHsgcmV0dXJuIF93aWRnZXQ7
IH0KLSAgICB2b2lkIHNldFdpZGdldChRV2lkZ2V0ICp3aWRnZXQpIHsgX3dpZGdldCA9IHdpZGdl
dDsgfQotICAgIAogICAgIHZvaWQgcmVmKCkgeyArK19yZWY7IH0KICAgICB2b2lkIGRlcmVmKCkg
eyBpZiAoIS0tX3JlZikgZGVsZXRlIHRoaXM7IH0KICAgICAKLSAgICBib29sIGV2ZW50KFFFdmVu
dCAqZXZlbnQpIHsgY3VzdG9tRXZlbnQoZXZlbnQpOyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBjdXN0b21FdmVudChRQ3VzdG9tRXZlbnQgKikgeyB9Ci0KLXByb3RlY3RlZDoKLSAg
ICBLVVJMIG1fdXJsOwotCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc09iamVjdENvbnRl
bnRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIFFPYmplY3QgKl9wYXJlbnQ7Ci0gICAg
UVN0cmluZyBfbmFtZTsKLSAgICBRV2lkZ2V0ICpfd2lkZ2V0OworCiAgICAgdW5zaWduZWQgaW50
IF9yZWY7CiB9OwogCkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0Zy
YW1lLmNwcAkocmV2aXNpb24gMTI0MDcpCisrKyBwYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDEwICsxNTYsMTAgQEAgdm9pZCBGcmFtZTo6aW5pdChGcmFtZVZpZXcgKnZpZXcp
CiAgIAogICBmcmFtZUNvdW50ID0gMDsKIAotICBkID0gbmV3IEZyYW1lUHJpdmF0ZShwYXJlbnQo
KSwgdGhpcyk7CisgIC8vIEZJWE1FOiBGcmFtZVByaXZhdGUgY29uc3RydWN0b3Igd2FudHMgdG8g
dGFrZSBhIHBhcmVudCBidXQgd2UgZG8gbm90IGhhdmUgb25lIHlldAorICBkID0gbmV3IEZyYW1l
UHJpdmF0ZSgwLCB0aGlzKTsKIAogICBkLT5tX3ZpZXcgPSB2aWV3OwotICBzZXRXaWRnZXQoIGQt
Pm1fdmlldyApOwogICAKICAgZC0+bV9leHRlbnNpb24gPSBjcmVhdGVCcm93c2VyRXh0ZW5zaW9u
KCk7CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCBib29sIEZyYW1lOjpyZXN0b3JlVVJMKCBjb25zdCBL
VVJMICZ1cmwgCiAgIGQtPm1fYkphdmFFbmFibGVkID0gZC0+bV9zZXR0aW5ncy0+aXNKYXZhRW5h
YmxlZCh1cmwuaG9zdCgpKTsKICAgZC0+bV9iUGx1Z2luc0VuYWJsZWQgPSBkLT5tX3NldHRpbmdz
LT5pc1BsdWdpbnNFbmFibGVkKHVybC5ob3N0KCkpOwogCi0gIG1fdXJsID0gdXJsOworICBkLT5t
X3VybCA9IHVybDsKIAogICBlbWl0IHN0YXJ0ZWQoIDBMICk7CiAKQEAgLTMxOSwxMyArMzE5LDEz
IEBAIGJvb2wgRnJhbWU6OmRpZE9wZW5VUkwoY29uc3QgS1VSTCAmdXJsKQogICBkLT5tX2JKYXZh
RW5hYmxlZCA9IGQtPm1fc2V0dGluZ3MtPmlzSmF2YUVuYWJsZWQodXJsLmhvc3QoKSk7CiAgIGQt
Pm1fYlBsdWdpbnNFbmFibGVkID0gZC0+bV9zZXR0aW5ncy0+aXNQbHVnaW5zRW5hYmxlZCh1cmwu
aG9zdCgpKTsKIAotICAvLyBpbml0aWFsaXppbmcgbV91cmwgdG8gdGhlIG5ldyB1cmwgYnJlYWtz
IHJlbGF0aXZlIGxpbmtzIHdoZW4gb3BlbmluZyBzdWNoIGEgbGluayBhZnRlciB0aGlzIGNhbGwg
YW5kIF9iZWZvcmVfIGJlZ2luKCkgaXMgY2FsbGVkICh3aGVuIHRoZSBmaXJzdAorICAvLyBpbml0
aWFsaXppbmcgZC0+bV91cmwgdG8gdGhlIG5ldyB1cmwgYnJlYWtzIHJlbGF0aXZlIGxpbmtzIHdo
ZW4gb3BlbmluZyBzdWNoIGEgbGluayBhZnRlciB0aGlzIGNhbGwgYW5kIF9iZWZvcmVfIGJlZ2lu
KCkgaXMgY2FsbGVkICh3aGVuIHRoZSBmaXJzdAogICAvLyBkYXRhIGFycml2ZXMpIChTaW1vbikK
LSAgbV91cmwgPSB1cmw7Ci0gIGlmKG1fdXJsLnByb3RvY29sKCkuc3RhcnRzV2l0aCgiaHR0cCIp
ICYmICFtX3VybC5ob3N0KCkuaXNFbXB0eSgpICYmIG1fdXJsLnBhdGgoKS5pc0VtcHR5KCkpCi0g
ICAgbV91cmwuc2V0UGF0aCgiLyIpOwotICAvLyBjb3B5IHRvIG1fd29ya2luZ1VSTCBhZnRlciBm
aXhpbmcgbV91cmwgYWJvdmUKLSAgZC0+bV93b3JraW5nVVJMID0gbV91cmw7CisgIGQtPm1fdXJs
ID0gdXJsOworICBpZihkLT5tX3VybC5wcm90b2NvbCgpLnN0YXJ0c1dpdGgoImh0dHAiKSAmJiAh
ZC0+bV91cmwuaG9zdCgpLmlzRW1wdHkoKSAmJiBkLT5tX3VybC5wYXRoKCkuaXNFbXB0eSgpKQor
ICAgIGQtPm1fdXJsLnNldFBhdGgoIi8iKTsKKyAgLy8gY29weSB0byBtX3dvcmtpbmdVUkwgYWZ0
ZXIgZml4aW5nIGQtPm1fdXJsIGFib3ZlCisgIGQtPm1fd29ya2luZ1VSTCA9IGQtPm1fdXJsOwog
CiAgIGNvbm5lY3QoIGQtPm1fam9iLCBTSUdOQUwoIHNwZWVkKCBLSU86OkpvYiosIHVuc2lnbmVk
IGxvbmcgKSApLAogICAgICAgICAgICB0aGlzLCBTTE9UKCBzbG90Sm9iU3BlZWQoIEtJTzo6Sm9i
KiwgdW5zaWduZWQgbG9uZyApICkgKTsKQEAgLTQ5MCw3ICs0OTAsNyBAQCBRVmFyaWFudCBGcmFt
ZTo6ZXhlY3V0ZVNjcmlwdCggTm9kZUltcGwgCiAgIC8vIElmIGZvcmNlVXNlckdlc3R1cmUgaXMg
dHJ1ZSwgdGhlbiBtYWtlIHRoZSBzY3JpcHQgaW50ZXJwcmV0ZXIKICAgLy8gdHJlYXQgaXQgYXMg
aWYgdHJpZ2dlcmVkIGJ5IGEgdXNlciBnZXN0dXJlIGV2ZW4gaWYgdGhlcmUgaXMgbm8KICAgLy8g
Y3VycmVudCBET00gZXZlbnQgYmVpbmcgcHJvY2Vzc2VkLgotICBRVmFyaWFudCByZXQgPSBwcm94
eS0+ZXZhbHVhdGUoIGZvcmNlVXNlckdlc3R1cmUgPyBRU3RyaW5nOjpudWxsIDogbV91cmwudXJs
KCksIDAsIHNjcmlwdCwgbiApOworICBRVmFyaWFudCByZXQgPSBwcm94eS0+ZXZhbHVhdGUoIGZv
cmNlVXNlckdlc3R1cmUgPyBRU3RyaW5nOjpudWxsIDogZC0+bV91cmwudXJsKCksIDAsIHNjcmlw
dCwgbiApOwogICBkLT5tX3J1bm5pbmdTY3JpcHRzLS07CiAgIGlmICghZC0+bV9ydW5uaW5nU2Ny
aXB0cyAmJiBkLT5tX2RvYyAmJiAhZC0+bV9kb2MtPnBhcnNpbmcoKSAmJiBkLT5tX3N1Ym1pdEZv
cm0gKQogICAgICAgc3VibWl0Rm9ybUFnYWluKCk7CkBAIC02ODUsNyArNjg1LDcgQEAgdm9pZCBG
cmFtZTo6cmVjZWl2ZWRGaXJzdERhdGEoKQogICAgICAgewogICAgICAgICBkZWxheSA9IHFEYXRh
LnN0cmlwV2hpdGVTcGFjZSgpLnRvRG91YmxlKCk7CiAgICAgICAgIC8vIFdlIHdhbnQgYSBuZXcg
aGlzdG9yeSBpdGVtIGlmIHRoZSByZWZyZXNoIHRpbWVvdXQgPiAxIHNlY29uZAotICAgICAgICBz
Y2hlZHVsZVJlZGlyZWN0aW9uKCBkZWxheSwgbV91cmwudXJsKCksIGRlbGF5IDw9IDEpOworICAg
ICAgICBzY2hlZHVsZVJlZGlyZWN0aW9uKCBkZWxheSwgZC0+bV91cmwudXJsKCksIGRlbGF5IDw9
IDEpOwogICAgICAgfQogICAgICAgZWxzZQogICAgICAgewpAQCAtNzgwLDEyICs3ODAsMTIgQEAg
dm9pZCBGcmFtZTo6YmVnaW4oIGNvbnN0IEtVUkwgJnVybCwgaW50IAogICByZWYuc2V0UGFzcyhR
U1RSSU5HX05VTEwpOwogICByZWYuc2V0UmVmKFFTVFJJTkdfTlVMTCk7CiAgIGQtPm1fcmVmZXJy
ZXIgPSByZWYudXJsKCk7Ci0gIG1fdXJsID0gdXJsOworICBkLT5tX3VybCA9IHVybDsKICAgS1VS
TCBiYXNldXJsOwogCiAgIC8vIFdlIGRvbid0IG5lZWQgS0RFIGNoYWluZWQgVVJJIGhhbmRsaW5n
IG9yIHdpbmRvdyBjYXB0aW9uIHNldHRpbmcKLSAgaWYgKCFtX3VybC5pc0VtcHR5KCkpCi0gICAg
YmFzZXVybCA9IG1fdXJsOworICBpZiAoIWQtPm1fdXJsLmlzRW1wdHkoKSkKKyAgICBiYXNldXJs
ID0gZC0+bV91cmw7CiAKICAgaWYgKERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxNSU1FVHlw
ZShhcmdzLnNlcnZpY2VUeXBlKSkKICAgICBkLT5tX2RvYyA9IERPTUltcGxlbWVudGF0aW9uSW1w
bDo6aW5zdGFuY2UoKS0+Y3JlYXRlRG9jdW1lbnQoIGQtPm1fdmlldyApOwpAQCAtNzk1LDggKzc5
NSw4IEBAIHZvaWQgRnJhbWU6OmJlZ2luKCBjb25zdCBLVVJMICZ1cmwsIGludCAKICAgZC0+bV9k
b2MtPnJlZigpOwogICBpZiAoIWQtPm1fZG9jLT5hdHRhY2hlZCgpKQogICAgIGQtPm1fZG9jLT5h
dHRhY2goICk7Ci0gIGQtPm1fZG9jLT5zZXRVUkwoIG1fdXJsLnVybCgpICk7Ci0gIC8vIFdlIHBy
ZWZlciBtX2Jhc2VVUkwgb3ZlciBtX3VybCBiZWNhdXNlIG1fdXJsIGNoYW5nZXMgd2hlbiB3ZSBh
cmUKKyAgZC0+bV9kb2MtPnNldFVSTCggZC0+bV91cmwudXJsKCkgKTsKKyAgLy8gV2UgcHJlZmVy
IG1fYmFzZVVSTCBvdmVyIGQtPm1fdXJsIGJlY2F1c2UgZC0+bV91cmwgY2hhbmdlcyB3aGVuIHdl
IGFyZQogICAvLyBhYm91dCB0byBsb2FkIGEgbmV3IHBhZ2UuCiAgIGQtPm1fZG9jLT5zZXRCYXNl
VVJMKCBiYXNldXJsLnVybCgpICk7CiAgIGlmIChkLT5tX2RlY29kZXIpCkBAIC05MjMsMTAgKzky
MywxMCBAQCB2b2lkIEZyYW1lOjpzdG9wQW5pbWF0aW9ucygpCiB2b2lkIEZyYW1lOjpnb3RvQW5j
aG9yKCkKIHsKICAgICAvLyBJZiBvdXIgVVJMIGhhcyBubyByZWYsIHRoZW4gd2UgaGF2ZSBubyBw
bGFjZSB3ZSBuZWVkIHRvIGp1bXAgdG8uCi0gICAgaWYgKCFtX3VybC5oYXNSZWYoKSkKKyAgICBp
ZiAoIWQtPm1fdXJsLmhhc1JlZigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBRU3RyaW5nIHJl
ZiA9IG1fdXJsLmVuY29kZWRIdG1sUmVmKCk7CisgICAgUVN0cmluZyByZWYgPSBkLT5tX3VybC5l
bmNvZGVkSHRtbFJlZigpOwogICAgIGlmICghZ290b0FuY2hvcihyZWYpKSB7CiAgICAgICAgIC8v
IENhbid0IHVzZSBodG1sUmVmKCkgaGVyZSBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyB3aGljaCBl
bmNvZGluZyB0byB1c2UgdG8gZGVjb2RlLgogICAgICAgICAvLyBEZWNvZGluZyBoZXJlIGhhcyB0
byBtYXRjaCBlbmNvZGluZyBpbiBjb21wbGV0ZVVSTCwgd2hpY2ggbWVhbnMgaXQgaGFzIHRvIHVz
ZSB0aGUKQEAgLTE2MzQsNyArMTYzNCw3IEBAIGJvb2wgRnJhbWU6OnJlcXVlc3RPYmplY3QoIENo
aWxkRnJhbWUgKmMKICAgVVJMQXJncyBhcmdzKCBfYXJncyApOwogCiAKLSAgaWYgKCBjaGlsZC0+
bV9mcmFtZSAmJiAhYXJncy5yZWxvYWQgJiYgdXJsY21wKCBjaGlsZC0+bV9mcmFtZS0+dXJsKCku
dXJsKCksIHVybC51cmwoKSwgdHJ1ZSwgdHJ1ZSApICkKKyAgaWYgKGNoaWxkLT5tX2ZyYW1lICYm
ICFhcmdzLnJlbG9hZCAmJiBjaGlsZC0+bV9mcmFtZS0+aXNGcmFtZSgpICYmIHVybGNtcChzdGF0
aWNfY2FzdDxGcmFtZSAqPihjaGlsZC0+bV9mcmFtZS5nZXQoKSktPnVybCgpLnVybCgpLCB1cmwu
dXJsKCksIHRydWUsIHRydWUpKQogICAgIGFyZ3Muc2VydmljZVR5cGUgPSBjaGlsZC0+bV9zZXJ2
aWNlVHlwZTsKIAogICBjaGlsZC0+bV9hcmdzID0gYXJnczsKQEAgLTE2NzYsNyArMTY3Niw3IEBA
IGJvb2wgRnJhbWU6OnByb2Nlc3NPYmplY3RSZXF1ZXN0KCBDaGlsZEYKICAgaWYgKGNoaWxkLT5t
X2ZyYW1lKQogICB7CiAgICAgRnJhbWUgKmZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWUgKj4oJipj
aGlsZC0+bV9mcmFtZSk7Ci0gICAgaWYgKGZyYW1lICYmIGZyYW1lLT5pbmhlcml0cygiRnJhbWUi
KSkgeworICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+aXNGcmFtZSgpKSB7CiAgICAgICBVUkxBcmdz
IGFyZ3M7CiAgICAgICBpZiAoIWQtPm1fcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICBhcmdz
Lm1ldGFEYXRhKCkuc2V0KCJyZWZlcnJlciIsIGQtPm1fcmVmZXJyZXIpOwpAQCAtMTY4Niw5ICsx
Njg2LDEwIEBAIGJvb2wgRnJhbWU6OnByb2Nlc3NPYmplY3RSZXF1ZXN0KCBDaGlsZEYKICAgZWxz
ZQogICB7CiAgICAgT2JqZWN0Q29udGVudHMgKnBhcnQgPSBjcmVhdGVQYXJ0KCpjaGlsZCwgdXJs
LCBtaW1ldHlwZSk7Ci0gICAgRnJhbWUgKmZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWUgKj4ocGFy
dCk7Ci0gICAgaWYgKGZyYW1lICYmIGZyYW1lLT5pbmhlcml0cygiRnJhbWUiKSkKLSAgICAgIGZy
YW1lLT5jaGlsZEJlZ2luKCk7CisgICAgaWYgKHBhcnQgJiYgcGFydC0+aXNGcmFtZSgpKSB7Cisg
ICAgICAgIEZyYW1lICpmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lICo+KHBhcnQpOworICAgICAg
ICBmcmFtZS0+Y2hpbGRCZWdpbigpOworICAgIH0KIAogICAgIGlmICghcGFydCkgewogICAgICAg
ICBjaGVja0VtaXRMb2FkRXZlbnQoKTsKQEAgLTE3MDAsMTUgKzE3MDEsMTQgQEAgYm9vbCBGcmFt
ZTo6cHJvY2Vzc09iamVjdFJlcXVlc3QoIENoaWxkRgogICAgICAgZGlzY29ubmVjdENoaWxkKGNo
aWxkKTsKIAogICAgIGNoaWxkLT5tX3NlcnZpY2VUeXBlID0gbWltZXR5cGU7Ci0gICAgaWYgKGNo
aWxkLT5tX3JlbmRlcmVyICYmIGZyYW1lLT53aWRnZXQoKSApCi0gICAgICBjaGlsZC0+bV9yZW5k
ZXJlci0+c2V0V2lkZ2V0KCBmcmFtZS0+d2lkZ2V0KCkgKTsKKyAgICBpZiAoY2hpbGQtPm1fcmVu
ZGVyZXIgJiYgcGFydC0+dmlldygpKQorICAgICAgY2hpbGQtPm1fcmVuZGVyZXItPnNldFdpZGdl
dChwYXJ0LT52aWV3KCkpOwogCiAKICAgICBjaGlsZC0+bV9mcmFtZSA9IHBhcnQ7CiAgICAgYXNz
ZXJ0KGNoaWxkLT5tX2ZyYW1lKTsKIAogICAgIGNvbm5lY3RDaGlsZChjaGlsZCk7Ci0KICAgfQog
CiAgIGNoZWNrRW1pdExvYWRFdmVudCgpOwpAQCAtMTc0Niw4ICsxNzQ2LDggQEAgYm9vbCBGcmFt
ZTo6cHJvY2Vzc09iamVjdFJlcXVlc3QoIENoaWxkRgogICAvLyBjcmVhdGUgdGhlIGNoaWxkIGZp
cnN0LCB0aGVuIGludm9rZSB0aGUgbG9hZGVyIHNlcGFyYXRlbHkgIAogICBpZiAodXJsLmlzRW1w
dHkoKSB8fCB1cmwudXJsKCkgPT0gImFib3V0OmJsYW5rIikgewogICAgICAgT2JqZWN0Q29udGVu
dHMgKnBhcnQgPSBjaGlsZC0+bV9mcmFtZS5nZXQoKTsKLSAgICAgIEZyYW1lICpmcmFtZSA9IHN0
YXRpY19jYXN0PEZyYW1lICo+KHBhcnQpOwotICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5pbmhl
cml0cygiRnJhbWUiKSkgeworICAgICAgaWYgKHBhcnQgJiYgcGFydC0+aXNGcmFtZSgpKSB7Cisg
ICAgICAgICAgRnJhbWUgKmZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWUgKj4ocGFydCk7CiAgICAg
ICAgICAgZnJhbWUtPmNvbXBsZXRlZCgpOwogICAgICAgICAgIGZyYW1lLT5jaGVja0NvbXBsZXRl
ZCgpOwogICAgICAgfQpAQCAtMTkwNCwxMCArMTkwNCw5IEBAIHZvaWQgRnJhbWU6OnNsb3RDaGls
ZENvbXBsZXRlZCggYm9vbCBjb20KIH0KIAogCi1DaGlsZEZyYW1lICpGcmFtZTo6Y2hpbGRGcmFt
ZSggY29uc3QgUU9iamVjdCAqb2JqICkKK0NoaWxkRnJhbWUgKkZyYW1lOjpjaGlsZEZyYW1lKGNv
bnN0IFFPYmplY3QgKm9iaikKIHsKLSAgICBhc3NlcnQoIG9iai0+aW5oZXJpdHMoICJPYmplY3RD
b250ZW50cyIgKSApOwotICAgIGNvbnN0IE9iamVjdENvbnRlbnRzICpwYXJ0ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0Q29udGVudHMgKj4oIG9iaiApOworICAgIGNvbnN0IE9iamVjdENvbnRl
bnRzICpwYXJ0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0Q29udGVudHMgKj4ob2JqKTsKIAog
ICAgIEZyYW1lSXQgaXQgPSBkLT5tX2ZyYW1lcy5iZWdpbigpOwogICAgIEZyYW1lSXQgZW5kID0g
ZC0+bV9mcmFtZXMuZW5kKCk7CkBAIC0xOTU0LDEwICsxOTUzLDcgQEAgYm9vbCBGcmFtZTo6ZnJh
bWVFeGlzdHMoIGNvbnN0IFFTdHJpbmcgJgogCiBGcmFtZSAqRnJhbWU6OnBhcmVudEZyYW1lKCkg
Y29uc3QKIHsKLSAgaWYgKCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pbmhlcml0cyggIkZyYW1l
IiApICkKLSAgICByZXR1cm4gMEw7Ci0KLSAgcmV0dXJuIChGcmFtZSAqKXBhcmVudCgpOworICBy
ZXR1cm4gcGFyZW50KCk7CiB9CiAKIGludCBGcmFtZTo6em9vbUZhY3RvcigpIGNvbnN0CkBAIC0y
MDYxLDkgKzIwNTcsOSBAQCB2b2lkIEZyYW1lOjpyZXBhcnNlQ29uZmlndXJhdGlvbigpCiAgIGlm
IChkLT5tX2RvYykKICAgICAgZC0+bV9kb2MtPmRvY0xvYWRlcigpLT5zZXRTaG93QW5pbWF0aW9u
cyggZC0+bV9zZXR0aW5ncy0+c2hvd0FuaW1hdGlvbnMoKSApOwogCi0gIGQtPm1fYkpTY3JpcHRF
bmFibGVkID0gZC0+bV9zZXR0aW5ncy0+aXNKYXZhU2NyaXB0RW5hYmxlZChtX3VybC5ob3N0KCkp
OwotICBkLT5tX2JKYXZhRW5hYmxlZCA9IGQtPm1fc2V0dGluZ3MtPmlzSmF2YUVuYWJsZWQobV91
cmwuaG9zdCgpKTsKLSAgZC0+bV9iUGx1Z2luc0VuYWJsZWQgPSBkLT5tX3NldHRpbmdzLT5pc1Bs
dWdpbnNFbmFibGVkKG1fdXJsLmhvc3QoKSk7CisgIGQtPm1fYkpTY3JpcHRFbmFibGVkID0gZC0+
bV9zZXR0aW5ncy0+aXNKYXZhU2NyaXB0RW5hYmxlZChkLT5tX3VybC5ob3N0KCkpOworICBkLT5t
X2JKYXZhRW5hYmxlZCA9IGQtPm1fc2V0dGluZ3MtPmlzSmF2YUVuYWJsZWQoZC0+bV91cmwuaG9z
dCgpKTsKKyAgZC0+bV9iUGx1Z2luc0VuYWJsZWQgPSBkLT5tX3NldHRpbmdzLT5pc1BsdWdpbnNF
bmFibGVkKGQtPm1fdXJsLmhvc3QoKSk7CiAKICAgUVN0cmluZyB1c2VyU3R5bGVTaGVldCA9IGQt
Pm1fc2V0dGluZ3MtPnVzZXJTdHlsZVNoZWV0KCk7CiAgIGlmICggIXVzZXJTdHlsZVNoZWV0Lmlz
RW1wdHkoKSApCkBAIC0yMTE0LDQxICsyMTEwLDYgQEAgYm9vbCBGcmFtZTo6c2hvdWxkRHJhZ0F1
dG9Ob2RlKE5vZGVJbXBsIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGcmFtZTo6Y3Vz
dG9tRXZlbnQoIFFDdXN0b21FdmVudCAqZXZlbnQgKQotewotICBpZiAoIE1vdXNlUHJlc3NFdmVu
dDo6dGVzdCggZXZlbnQgKSApCi0gIHsKLSAgICBraHRtbE1vdXNlUHJlc3NFdmVudCggc3RhdGlj
X2Nhc3Q8TW91c2VQcmVzc0V2ZW50ICo+KCBldmVudCApICk7Ci0gICAgcmV0dXJuOwotICB9Ci0K
LSAgaWYgKCBNb3VzZURvdWJsZUNsaWNrRXZlbnQ6OnRlc3QoIGV2ZW50ICkgKQotICB7Ci0gICAg
a2h0bWxNb3VzZURvdWJsZUNsaWNrRXZlbnQoIHN0YXRpY19jYXN0PE1vdXNlRG91YmxlQ2xpY2tF
dmVudCAqPiggZXZlbnQgKSApOwotICAgIHJldHVybjsKLSAgfQotCi0gIGlmICggTW91c2VNb3Zl
RXZlbnQ6OnRlc3QoIGV2ZW50ICkgKQotICB7Ci0gICAga2h0bWxNb3VzZU1vdmVFdmVudCggc3Rh
dGljX2Nhc3Q8TW91c2VNb3ZlRXZlbnQgKj4oIGV2ZW50ICkgKTsKLSAgICByZXR1cm47Ci0gIH0K
LQotICBpZiAoIE1vdXNlUmVsZWFzZUV2ZW50Ojp0ZXN0KCBldmVudCApICkKLSAgewotICAgIGto
dG1sTW91c2VSZWxlYXNlRXZlbnQoIHN0YXRpY19jYXN0PE1vdXNlUmVsZWFzZUV2ZW50ICo+KCBl
dmVudCApICk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKCBEcmF3Q29udGVudHNFdmVudDo6
dGVzdCggZXZlbnQgKSApCi0gIHsKLSAgICBraHRtbERyYXdDb250ZW50c0V2ZW50KCBzdGF0aWNf
Y2FzdDxEcmF3Q29udGVudHNFdmVudCAqPiggZXZlbnQgKSApOwotICAgIHJldHVybjsKLSAgfQot
Ci0gIE9iamVjdENvbnRlbnRzOjpjdXN0b21FdmVudCggZXZlbnQgKTsKLX0KLQogYm9vbCBGcmFt
ZTo6aXNQb2ludEluc2lkZVNlbGVjdGlvbihpbnQgeCwgaW50IHkpCiB7CiAgICAgLy8gVHJlYXQg
YSBjb2xsYXBzZWQgc2VsZWN0aW9uIGxpa2Ugbm8gc2VsZWN0aW9uLgpAQCAtMzM2Nyw3ICszMzI4
LDcgQEAgYm9vbCBGcmFtZTo6Y2FuQ2FjaGVQYWdlKCkKICAgICAvLyA1LiAgVGhlIHBhZ2UgaGFz
IG5vIGFwcGxldHMuCiAgICAgaWYgKGQtPm1fZnJhbWVzLmNvdW50KCkgfHwgZC0+bV9vYmplY3Rz
LmNvdW50KCkgfHwKICAgICAgICAgcGFyZW50RnJhbWUoKSB8fAotICAgICAgICBtX3VybC5wcm90
b2NvbCgpLnN0YXJ0c1dpdGgoImh0dHBzIikgfHwgCisgICAgICAgIGQtPm1fdXJsLnByb3RvY29s
KCkuc3RhcnRzV2l0aCgiaHR0cHMiKSB8fCAKICAgICAgICAgKGQtPm1fZG9jICYmIChkLT5tX2Rv
Yy0+YXBwbGV0cygpLT5sZW5ndGgoKSAhPSAwIHx8CiAgICAgICAgICAgICAgICAgICAgICAgZC0+
bV9kb2MtPmhhc1dpbmRvd0V2ZW50TGlzdGVuZXIodW5sb2FkRXZlbnQpIHx8CiAgICAgICAgICAg
ICAgICAgICAgICAgZC0+bV9kb2MtPmhhc1Bhc3N3b3JkRmllbGQoKSkpKSB7CkBAIC0zNDczLDcg
KzM0MzQsNyBAQCB2b2lkIEZyYW1lOjp1cGRhdGVQb2xpY3lCYXNlVVJMKCkKICAgICBpZiAocGFy
ZW50RnJhbWUoKSAmJiBwYXJlbnRGcmFtZSgpLT5kb2N1bWVudCgpKQogICAgICAgICBzZXRQb2xp
Y3lCYXNlVVJMKHBhcmVudEZyYW1lKCktPmRvY3VtZW50KCktPnBvbGljeUJhc2VVUkwoKSk7CiAg
ICAgZWxzZQotICAgICAgICBzZXRQb2xpY3lCYXNlVVJMKG1fdXJsLnVybCgpKTsKKyAgICAgICAg
c2V0UG9saWN5QmFzZVVSTChkLT5tX3VybC51cmwoKSk7CiB9CiAKIHZvaWQgRnJhbWU6OnNldFBv
bGljeUJhc2VVUkwoY29uc3QgRE9NU3RyaW5nICZzKQpAQCAtMzU2Nyw3ICszNTI4LDcgQEAgdm9p
ZCBGcmFtZTo6YWRkTWV0YURhdGEoY29uc3QgUVN0cmluZyAmawogLy8gdGhhdCBhIGhpZ2hlciBs
ZXZlbCBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgVVJMcyBtYXRjaCBhbmQgdGhlIHNjcm9sbGlu
ZyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCiB2b2lkIEZyYW1lOjpzY3JvbGxUb0FuY2hvcihj
b25zdCBLVVJMICZVUkwpCiB7Ci0gICAgbV91cmwgPSBVUkw7CisgICAgZC0+bV91cmwgPSBVUkw7
CiAgICAgc3RhcnRlZCgwKTsKICAgICAKICAgICBnb3RvQW5jaG9yKCk7CkBAIC0zNzgzLDcgKzM3
NDQsNyBAQCBRQ2hhciBGcmFtZTo6YmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpCiAgICAgcmV0
dXJuIGNvZGVjLT5iYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKCk7CiB9CiAKLXZvaWQgRnJhbWU6
OnNldE5hbWUoY29uc3QgUVN0cmluZyAmbmFtZSkKK3ZvaWQgRnJhbWU6OnNldE5hbWUoY29uc3Qg
UVN0cmluZyYgbmFtZSkKIHsKICAgICBRU3RyaW5nIG4gPSBuYW1lOwogICAgIApAQCAtMzc5Myw3
ICszNzU0LDIyIEBAIHZvaWQgRnJhbWU6OnNldE5hbWUoY29uc3QgUVN0cmluZyAmbmFtZSkKICAg
ICBpZiAocGFyZW50ICYmIChuYW1lLmlzRW1wdHkoKSB8fCBwYXJlbnQtPmZyYW1lRXhpc3RzKG5h
bWUpIHx8IG5hbWUgPT0gIl9ibGFuayIpKQogICAgICAgICBuID0gcGFyZW50LT5yZXF1ZXN0RnJh
bWVOYW1lKCk7CiAgICAgCi0gICAgT2JqZWN0Q29udGVudHM6OnNldE5hbWUobik7CisgICAgZC0+
bV9uYW1lID0gbmFtZTsKK30KKworY29uc3QgUVN0cmluZyYgRnJhbWU6Om5hbWUoKQoreworICAg
IHJldHVybiBkLT5tX25hbWU7Cit9CisKK3ZvaWQgRnJhbWU6OnNldFBhcmVudChGcmFtZSogcGFy
ZW50KSAKK3sgCisgICAgZC0+bV9wYXJlbnQgPSBwYXJlbnQ7IAorfQorCitGcmFtZSogRnJhbWU6
OnBhcmVudCgpIGNvbnN0IAoreyAKKyAgICByZXR1cm4gZC0+bV9wYXJlbnQ7IAogfQogCiBib29s
IEZyYW1lOjptYXJrZWRUZXh0VXNlc1VuZGVybGluZXMoKSBjb25zdApAQCAtMzgzNiwzICszODEy
LDkgQEAgRnJhbWVUcmVlTm9kZSAqRnJhbWU6OnRyZWVOb2RlKCkKIHZvaWQgRnJhbWU6OmRldGFj
aEZyb21WaWV3KCkKIHsKIH0KKworS1VSTCBGcmFtZTo6dXJsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZC0+bV91cmw7Cit9CisKSW5kZXg6IHBhZ2UvRnJhbWVQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcGFnZS9GcmFtZVByaXZhdGUuaAkocmV2aXNpb24gMTI0MDcpCisrKyBwYWdlL0ZyYW1lUHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw4ICs5MCw5IEBAIGVudW0gUmVkaXJlY3Rpb25T
Y2hlZHVsZWQgewogY2xhc3MgRnJhbWVQcml2YXRlCiB7CiBwdWJsaWM6Ci0gIEZyYW1lUHJpdmF0
ZShRT2JqZWN0ICpwYXJlbnQsIEZyYW1lICp0aGlzRnJhbWUpCi0gICAgICA6IG1fdHJlZU5vZGUo
dGhpc0ZyYW1lKQorICBGcmFtZVByaXZhdGUoRnJhbWUgKnBhcmVudCwgRnJhbWUgKnRoaXNGcmFt
ZSkKKyAgICAgIDogbV90cmVlTm9kZSh0aGlzRnJhbWUpLAorICAgICAgICBtX3BhcmVudChwYXJl
bnQpCiAgIHsKICAgICBtX2RvYyA9IDA7CiAgICAgbV9qc2NyaXB0ID0gMDsKQEAgLTE3Nyw2ICsx
NzgsOCBAQCBwdWJsaWM6CiAgIH0KIAogICBGcmFtZVRyZWVOb2RlIG1fdHJlZU5vZGU7CisgIEZy
YW1lICptX3BhcmVudDsKKyAgUVN0cmluZyBtX25hbWU7CiAKICAgLy8gb2xkIHN0eWxlIGZyYW1l
IGluZm8KICAgRnJhbWVMaXN0IG1fZnJhbWVzOwpAQCAtMjI0LDYgKzIyNyw3IEBAIHB1YmxpYzoK
ICAgYm9vbCBtX3JlZGlyZWN0TG9ja0hpc3Rvcnk6MTsKICAgYm9vbCBtX3JlZGlyZWN0VXNlckdl
c3R1cmU6MTsKICAgCisgIEtVUkwgbV91cmw7CiAgIEtVUkwgbV93b3JraW5nVVJMOwogCiAgIEtJ
Tzo6Q2FjaGVDb250cm9sIG1fY2FjaGVQb2xpY3k7Cg==
</data>
<flag name="review"
          id="1438"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>