<?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>50414</bug_id>
          
          <creation_ts>2010-12-02 15:35:11 -0800</creation_ts>
          <short_desc>WebKit2 Preferences should be held off the PageGroup, not the Context</short_desc>
          <delta_ts>2010-12-02 16:32:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>316457</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-02 15:35:11 -0800</bug_when>
    <thetext>Now that we have PageGroups, it makes sense to hang the preferences off them instead of the context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316464</commentid>
    <comment_count>1</comment_count>
      <attachid>75423</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-02 15:43:19 -0800</bug_when>
    <thetext>Created attachment 75423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316489</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-02 16:06:36 -0800</bug_when>
    <thetext>Attachment 75423 did not build on qt:
Build output: http://queues.webkit.org/results/6804013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316502</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-02 16:32:02 -0800</bug_when>
    <thetext>Landed with Qt related tweaks in http://trac.webkit.org/changeset/73215.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75423</attachid>
            <date>2010-12-02 15:43:19 -0800</date>
            <delta_ts>2010-12-02 16:04:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>pref2.diff</filename>
            <type>text/plain</type>
            <size>27893</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzIwNykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzMgQEAKKzIwMTAtMTItMDIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQy
IFByZWZlcmVuY2VzIHNob3VsZCBiZSBoZWxkIG9mZiB0aGUgUGFnZUdyb3VwLCBub3QgdGhlIENv
bnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUw
NDE0CisKKyAgICAgICAgLSBJbiBhZGRpdGlvbiwgdGhpcyBub3cgbWFrZXMgdGhlIHByZWZlcmVu
Y2UgaGVsZCBvZmYgdGhlIFBhZ2VHcm91cCBoYXZlCisgICAgICAgICAgdGhlIGlkZW50aWZpZXIg
b2YgdGhlIFBhZ2VHcm91cCBhbmQgYXV0b3NhdmUgdG8gZGlzayAob25seSBvbiB0aGUgbWFjCisg
ICAgICAgICAgZm9yIG5vdykuCisgICAgICAgIC0gQWRkcyBhYmlsaXR5IHRvIGNyZWF0ZSBhbiBh
cmJpdHJhcnkgcHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBhdXRvc2F2ZWQKKyAgICAgICAgICB2aWEg
YSBuZXcgV0tQcmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyIGZ1bmN0aW9uLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICBSZW1vdmUgcHJlZmVyZW5jZSByZWxhdGVkIGNv
ZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwOgorICAgICAg
ICAoV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyk6CisgICAgICAgIChXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaDoKKyAg
ICAgICAgQWRkIGdldHRlci9zZXR0ZXIgZm9yIHByZWZlcmVuY2VzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0Ny
ZWF0ZVdpdGhJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5oOgorICAgICAgICBBZGQgV0tQcmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyIGFu
ZCByZW1vdmUgV0tQcmVmZXJlbmNlc0NyZWF0ZUNvcHkgd2hpY2ggaXMKKyAgICAgICAgdW51c2Vk
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6
fldlYkNvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAg
IFJlbW92ZSBwcmVmZXJlbmNlIHJlbGF0ZWQgY29kZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OldlYlBhZ2VH
cm91cCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6YWRkUGFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6cmVtb3ZlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VHcm91cDo6c2V0UHJlZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlR3Jv
dXA6OnByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwOjpwcmVmZXJl
bmNlc0RpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oOgorICAg
ICAgICBBZGQgcHJlZmVyZW5jZSBhbmQgcGFnZSB0cmFja2luZy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZU5h
bWVzcGFjZS5oOgorICAgICAgICBSZW1vdmUgcHJlZmVyZW5jZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
IGNvZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6On5XZWJQYWdlUHJveHkpOgorICAgICAgICBBZGQvcmVtb3ZlIHNlbGYgZnJv
bSBwYWdlIGdyb3VwIHNldC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByZWZl
cmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICBHZXQgcHJlZmVyZW5jZXMgZnJvbSB0aGUgcGFnZUdyb3Vw
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJlZmVyZW5jZXM6OldlYlByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJlZmVyZW5jZXM6OmFkZFBhZ2VHcm91cCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZl
cmVuY2VzOjpyZW1vdmVQYWdlR3JvdXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQcmVmZXJlbmNl
czo6dXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZSk6CisgICAgICAgIENoYW5nZSB0byB0
cmFjayBwYWdlIGdyb3VwcyBpbnN0ZWFkIG9mIGNvbnRleHRzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQcmVmZXJlbmNlc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6bWFrZUtleSk6
IEFkZCAiLldlYktpdDIiIHByZWZpeCBmb3Iga2V5cy4KKwogMjAxMC0xMi0wMiAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gNzMxNzkpCisr
KyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NyArMzUsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlBhZ2VOYW1lc3BhY2UuaCIKLSNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgpAQCAtODksOSArODgsNiBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFBy
b2Nlc3NNb2RlbCBwcm9jCiB7CiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzLCBs
YW5ndWFnZUNoYW5nZWQpOwogCi0gICAgbV9wcmVmZXJlbmNlcyA9IFdlYlByZWZlcmVuY2VzOjpz
aGFyZWQoKTsKLSAgICBtX3ByZWZlcmVuY2VzLT5hZGRDb250ZXh0KHRoaXMpOwotCiAjaWZuZGVm
IE5ERUJVRwogICAgIHdlYkNvbnRleHRDb3VudGVyLmluY3JlbWVudCgpOwogI2VuZGlmCkBAIC0x
MDAsNyArOTYsNiBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9jCiBX
ZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiB7CiAgICAgQVNTRVJUKG1fcGFnZU5hbWVzcGFjZXMu
aXNFbXB0eSgpKTsKLSAgICBtX3ByZWZlcmVuY2VzLT5yZW1vdmVDb250ZXh0KHRoaXMpOwogICAg
IHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcyk7CiAKICAgICBXZWJQcm9jZXNzTWFu
YWdlcjo6c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKQEAgLTIzNSwzNiArMjMw
LDYgQEAgdm9pZCBXZWJDb250ZXh0OjpwYWdlTmFtZXNwYWNlV2FzRGVzdHJveQogICAgIG1fcGFn
ZU5hbWVzcGFjZXMucmVtb3ZlKHBhZ2VOYW1lc3BhY2UpOwogfQogCi12b2lkIFdlYkNvbnRleHQ6
OnNldFByZWZlcmVuY2VzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKLXsKLSAgICBBU1NF
UlQocHJlZmVyZW5jZXMpOwotCi0gICAgaWYgKHByZWZlcmVuY2VzID09IG1fcHJlZmVyZW5jZXMp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZUNvbnRleHQodGhp
cyk7Ci0gICAgbV9wcmVmZXJlbmNlcyA9IHByZWZlcmVuY2VzOwotICAgIG1fcHJlZmVyZW5jZXMt
PmFkZENvbnRleHQodGhpcyk7Ci0KLSAgICAvLyBGSVhNRTogVXBkYXRlIGFsbCBQYWdlcy9QYWdl
TmFtZXNwYWNlIHdpdGggdGhlIG5ldyBXZWJQcmVmZXJlbmNlcy4KLX0KLQotV2ViUHJlZmVyZW5j
ZXMqIFdlYkNvbnRleHQ6OnByZWZlcmVuY2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcmVm
ZXJlbmNlcy5nZXQoKTsKLX0KLQotdm9pZCBXZWJDb250ZXh0OjpwcmVmZXJlbmNlc0RpZENoYW5n
ZSgpCi17Ci0gICAgaWYgKCFtX3Byb2Nlc3MpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAo
SGFzaFNldDxXZWJQYWdlTmFtZXNwYWNlKj46Oml0ZXJhdG9yIGl0ID0gbV9wYWdlTmFtZXNwYWNl
cy5iZWdpbigpLCBlbmQgPSBtX3BhZ2VOYW1lc3BhY2VzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKLSAgICAgICAgV2ViUGFnZU5hbWVzcGFjZSogcGFnZU5hbWVzcGFjZSA9ICppdDsKLSAgICAg
ICAgcGFnZU5hbWVzcGFjZS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKLSAgICB9Ci19Ci0KIHZv
aWQgV2ViQ29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZHkpCiB7CiAgICAgaWYgKCFtX3Byb2Nl
c3MgfHwgIW1fcHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkgewpJbmRleDogV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuaAkocmV2aXNpb24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYgQEAgY2xhc3MgRG93bmxvYWRQcm94eTsK
IGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VOYW1lc3BhY2U7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7Ci1jbGFzcyBXZWJQcmVmZXJlbmNlczsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOwogCiBjbGFzcyBXZWJDb250ZXh0IDogcHVibGljIEFQSU9iamVjdCB7CkBA
IC04MCwxMCArNzksNiBAQCBwdWJsaWM6CiAgICAgV2ViUGFnZU5hbWVzcGFjZSogY3JlYXRlUGFn
ZU5hbWVzcGFjZSgpOwogICAgIHZvaWQgcGFnZU5hbWVzcGFjZVdhc0Rlc3Ryb3llZChXZWJQYWdl
TmFtZXNwYWNlKik7CiAKLSAgICB2b2lkIHNldFByZWZlcmVuY2VzKFdlYlByZWZlcmVuY2VzKik7
Ci0gICAgV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgY29uc3Q7Ci0gICAgdm9pZCBwcmVm
ZXJlbmNlc0RpZENoYW5nZSgpOwotCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBh
dGgoKSBjb25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlUGF0aDsgfQogCiAgICAgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEoUGFzc1JlZlB0cjxBUElPYmpl
Y3Q+IHVzZXJEYXRhKSB7IG1faW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhID0g
dXNlckRhdGE7IH0KQEAgLTE1OSw3ICsxNTQsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJQ
cm9jZXNzUHJveHk+IG1fcHJvY2VzczsKIAogICAgIEhhc2hTZXQ8V2ViUGFnZU5hbWVzcGFjZSo+
IG1fcGFnZU5hbWVzcGFjZXM7Ci0gICAgUmVmUHRyPFdlYlByZWZlcmVuY2VzPiBtX3ByZWZlcmVu
Y2VzOwogCiAgICAgUmVmUHRyPFdlYlBhZ2VHcm91cD4gbV9kZWZhdWx0UGFnZUdyb3VwOwogCklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAJKHJldmlzaW9uIDczMTc5KQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiAr
MjUsOCBAQAogCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIApAQCAtNDQs
NyArNDYsNiBAQCBzdGF0aWMgV2ViUGFnZUdyb3VwTWFwJiB3ZWJQYWdlR3JvdXBNYXAoCiAgICAg
cmV0dXJuIG1hcDsKIH0KIAotCiBQYXNzUmVmUHRyPFdlYlBhZ2VHcm91cD4gV2ViUGFnZUdyb3Vw
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBib29sIHZpc2libGVUb0luamVjdGVk
QnVuZGxlKQogewogICAgIFJlZlB0cjxXZWJQYWdlR3JvdXA+IHBhZ2VHcm91cCA9IGFkb3B0UmVm
KG5ldyBXZWJQYWdlR3JvdXAoaWRlbnRpZmllciwgdmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUpKTsK
QEAgLTYyLDExICs2MywxNiBAQCBXZWJQYWdlR3JvdXAqIFdlYlBhZ2VHcm91cDo6Z2V0KHVpbnQ2
NF90CiBXZWJQYWdlR3JvdXA6OldlYlBhZ2VHcm91cChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGJvb2wgdmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUpCiB7CiAgICAgbV9kYXRhLnBhZ2VHcm91cElE
ID0gZ2VuZXJhdGVQYWdlR3JvdXBJRCgpOwotICAgIGlmICghaWRlbnRpZmllci5pc051bGwoKSkK
KworICAgIGlmICghaWRlbnRpZmllci5pc051bGwoKSkgewogICAgICAgICBtX2RhdGEuaWRlbnRp
ZmVyID0gaWRlbnRpZmllcjsKLSAgICBlbHNlCisgICAgICAgIG1fcHJlZmVyZW5jZXMgPSBXZWJQ
cmVmZXJlbmNlczo6Y3JlYXRlKGlkZW50aWZpZXIpOworICAgIH0gZWxzZSB7CiAgICAgICAgIG1f
ZGF0YS5pZGVudGlmZXIgPSBtX2RhdGEuaWRlbnRpZmVyID0gbWFrZVN0cmluZygiX191bmlxdWVQ
YWdlR3JvdXBJRC0iLCBTdHJpbmc6Om51bWJlcihtX2RhdGEucGFnZUdyb3VwSUQpKTsKLSAgICBt
X2RhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUgPSB2aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsK
KyAgICAgICAgbV9wcmVmZXJlbmNlcyA9IFdlYlByZWZlcmVuY2VzOjpjcmVhdGUoKTsKKyAgICB9
CisKKyAgICBtX2RhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUgPSB2aXNpYmxlVG9JbmplY3Rl
ZEJ1bmRsZTsgICAgCiB9CiAKIFdlYlBhZ2VHcm91cDo6fldlYlBhZ2VHcm91cCgpCkBAIC03NCw0
ICs4MCwzOSBAQCBXZWJQYWdlR3JvdXA6On5XZWJQYWdlR3JvdXAoKQogICAgIHdlYlBhZ2VHcm91
cE1hcCgpLnJlbW92ZShwYWdlR3JvdXBJRCgpKTsKIH0KIAordm9pZCBXZWJQYWdlR3JvdXA6OmFk
ZFBhZ2UoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIG1fcGFnZXMuYWRkKHBhZ2UpOworfQor
Cit2b2lkIFdlYlBhZ2VHcm91cDo6cmVtb3ZlUGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7Cisg
ICAgbV9wYWdlcy5yZW1vdmUocGFnZSk7Cit9CisKK3ZvaWQgV2ViUGFnZUdyb3VwOjpzZXRQcmVm
ZXJlbmNlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMpCit7CisgICAgaWYgKHByZWZlcmVu
Y2VzID09IG1fcHJlZmVyZW5jZXMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJlZmVyZW5j
ZXMtPnJlbW92ZVBhZ2VHcm91cCh0aGlzKTsKKyAgICBtX3ByZWZlcmVuY2VzID0gcHJlZmVyZW5j
ZXM7CisgICAgbV9wcmVmZXJlbmNlcy0+YWRkUGFnZUdyb3VwKHRoaXMpOworCisgICAgcHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoKTsKK30KKworV2ViUHJlZmVyZW5jZXMqIFdlYlBhZ2VHcm91cDo6cHJl
ZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByZWZlcmVuY2VzLmdldCgpOworfQor
Cit2b2lkIFdlYlBhZ2VHcm91cDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQoreworICAgIGZvciAo
SGFzaFNldDxXZWJQYWdlUHJveHkqPjo6aXRlcmF0b3IgaXQgPSBtX3BhZ2VzLmJlZ2luKCksIGVu
ZCA9IG1fcGFnZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UgPSAqaXQ7CisgICAgICAgIHBhZ2UtPnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VH
cm91cC5oCShyZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMCArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cERhdGEuaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlByZWZlcmVuY2VzOworY2xh
c3MgV2ViUGFnZVByb3h5OworCiBjbGFzcyBXZWJQYWdlR3JvdXAgOiBwdWJsaWMgQVBJT2JqZWN0
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVBhZ2VHcm91
cDsKQEAgLTQxLDEwICs0NSwxNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJQYWdlR3Jv
dXAoKTsKIAorICAgIHZvaWQgYWRkUGFnZShXZWJQYWdlUHJveHkqKTsKKyAgICB2b2lkIHJlbW92
ZVBhZ2UoV2ViUGFnZVByb3h5Kik7CisKICAgICBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2RhdGEuaWRlbnRpZmVyOyB9CiAgICAgdWludDY0X3QgcGFnZUdyb3Vw
SUQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEucGFnZUdyb3VwSUQ7IH0KIAotICAgIGNvbnN0IFdl
YlBhZ2VHcm91cERhdGEmIGRhdGEoKSB7IHJldHVybiBtX2RhdGE7OyB9CisgICAgY29uc3QgV2Vi
UGFnZUdyb3VwRGF0YSYgZGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQorCisgICAgdm9pZCBzZXRQ
cmVmZXJlbmNlcyhXZWJQcmVmZXJlbmNlcyopOworICAgIFdlYlByZWZlcmVuY2VzKiBwcmVmZXJl
bmNlcygpIGNvbnN0OworICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIAogcHJpdmF0
ZToKICAgICBXZWJQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBib29sIHZpc2li
bGVUb0luamVjdGVkQnVuZGxlKTsKQEAgLTUyLDYgKzYzLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIFdlYlBhZ2VH
cm91cERhdGEgbV9kYXRhOworICAgIFJlZlB0cjxXZWJQcmVmZXJlbmNlcz4gbV9wcmVmZXJlbmNl
czsKKyAgICBIYXNoU2V0PFdlYlBhZ2VQcm94eSo+IG1fcGFnZXM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuY3BwCShy
ZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMSArMjUsMTAgQEAKIAogI2luY2x1ZGUgIldlYlBhZ2VO
YW1lc3BhY2UuaCIKIAorI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogCi0jaW5j
bHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgotCiAjaWZuZGVmIE5ERUJVRwogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgpAQCAtNjMsMTIgKzYyLDYgQEAgV2Vi
UGFnZVByb3h5KiBXZWJQYWdlTmFtZXNwYWNlOjpjcmVhdGVXZQogICAgIHJldHVybiBtX2NvbnRl
eHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgZ3JvdXApOwogfQogCi12b2lkIFdlYlBhZ2VOYW1lc3Bh
Y2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKLXsKLSAgICBmb3IgKFdlYlByb2Nlc3NQcm94eTo6
cGFnZXNfY29uc3RfaXRlcmF0b3IgaXQgPSBwcm9jZXNzKCktPnBhZ2VzX2JlZ2luKCksIGVuZCA9
IHByb2Nlc3MoKS0+cGFnZXNfZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgKCppdCkt
PnByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7Ci19Ci0KIHZvaWQgV2ViUGFnZU5hbWVzcGFjZTo6Z2V0
U3RhdGlzdGljcyhXS0NvbnRleHRTdGF0aXN0aWNzKiBzdGF0aXN0aWNzKQogewogICAgIGlmICgh
cHJvY2VzcygpKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5hbWVzcGFjZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuaAkocmV2aXNp
b24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlTmFtZXNwYWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDggKzU0LDYgQEAgcHVibGljOgogICAgIFdlYkNvbnRleHQqIGNvbnRl
eHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KICAgICBXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQtPnByb2Nlc3MoKTsgfQogCi0g
ICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwotCiAgICAgdm9pZCBnZXRTdGF0aXN0aWNz
KFdLQ29udGV4dFN0YXRpc3RpY3MqKTsKIAogcHJpdmF0ZToKSW5kZXg6IFdlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsMTAgKzExMCwxNCBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShXZWJQYWdlTmFtZXNwCiAjaWZuZGVmIE5ERUJVRwogICAgIHdl
YlBhZ2VQcm94eUNvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKworICAgIG1fcGFnZUdyb3Vw
LT5hZGRQYWdlKHRoaXMpOwogfQogCiBXZWJQYWdlUHJveHk6On5XZWJQYWdlUHJveHkoKQogewor
ICAgIG1fcGFnZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOworCiAjaWZuZGVmIE5ERUJVRwogICAg
IHdlYlBhZ2VQcm94eUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTY2Myw4ICs2Njcs
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiBJdCBwcm9iYWJseSBtYWtlcyBtb3JlIHNlbnNlIHRvIHNl
bmQgaW5kaXZpZHVhbCBwcmVmZXJlbmNlIGNoYW5nZXMuCi0gICAgLy8gSG93ZXZlciwgV2ViS2l0
VGVzdFJ1bm5lciBkZXBlbmRzIG9uIGdldHRpbmcgYSBwcmVmZXJlbmNlIGNoYW5nZSBub3RpZmlj
YXRpb24gZXZlbiBpZiBub3RoaW5nIGNoYW5nZWQgaW4gVUkgcHJvY2Vzcywgc28gdGhhdCBvdmVy
cmlkZXMgZ2V0IHJlbW92ZWQuCi0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpQcmVmZXJlbmNlc0RpZENoYW5nZShwYWdlTmFtZXNwYWNlKCktPmNvbnRleHQoKS0+cHJlZmVy
ZW5jZXMoKS0+c3RvcmUoKSksIG1fcGFnZUlEKTsKKyAgICAvLyBIb3dldmVyLCBXZWJLaXRUZXN0
UnVubmVyIGRlcGVuZHMgb24gZ2V0dGluZyBhIHByZWZlcmVuY2UgY2hhbmdlIG5vdGlmaWNhdGlv
bgorICAgIC8vIGV2ZW4gaWYgbm90aGluZyBjaGFuZ2VkIGluIFVJIHByb2Nlc3MsIHNvIHRoYXQg
b3ZlcnJpZGVzIGdldCByZW1vdmVkLgorICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnN0
b3JlKCkpLCBtX3BhZ2VJRCk7CiB9CiAKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
QEAgLTE0OTYsOCArMTUwMSw4IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVBy
b3h5OjoKIHsKICAgICBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAg
cGFyYW1ldGVycy52aWV3U2l6ZSA9IHNpemU7Ci0gICAgcGFyYW1ldGVycy5zdG9yZSA9IHBhZ2VO
YW1lc3BhY2UoKS0+Y29udGV4dCgpLT5wcmVmZXJlbmNlcygpLT5zdG9yZSgpOwogICAgIHBhcmFt
ZXRlcnMuZHJhd2luZ0FyZWFJbmZvID0gbV9kcmF3aW5nQXJlYS0+aW5mbygpOworICAgIHBhcmFt
ZXRlcnMuc3RvcmUgPSBtX3BhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS0+c3RvcmUoKTsKICAgICBw
YXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwogCiAjaWYgUExB
VEZPUk0oV0lOKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNp
b24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDIzICsyNSwxMyBAQAogCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMu
aCIKIAotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlByZWZlcmVuY2VzKiBXZWJQcmVmZXJlbmNlczo6
c2hhcmVkKCkKLXsKLSAgICBzdGF0aWMgV2ViUHJlZmVyZW5jZXMqIHNoYXJlZFByZWZlcmVuY2Vz
ID0gV2ViUHJlZmVyZW5jZXM6OmNyZWF0ZSgpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gc2hhcmVk
UHJlZmVyZW5jZXM7Ci19Ci0KIFdlYlByZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNlcygpCiB7Ci19
Ci0KLVdlYlByZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVy
ZW5jZXMpCi0gICAgOiBtX3N0b3JlKHByZWZlcmVuY2VzLT5tX3N0b3JlKQoteworICAgIHBsYXRm
b3JtSW5pdGlhbGl6ZVN0b3JlKCk7CiB9CiAKIFdlYlByZWZlcmVuY2VzOjpXZWJQcmVmZXJlbmNl
cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCkBAIC01NCwxOSArNDQsMTkgQEAgV2ViUHJlZmVy
ZW5jZXM6On5XZWJQcmVmZXJlbmNlcygpCiB7CiB9CiAKLXZvaWQgV2ViUHJlZmVyZW5jZXM6OmFk
ZENvbnRleHQoV2ViQ29udGV4dCogY29udGV4dCkKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OmFkZFBh
Z2VHcm91cChXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKIHsKLSAgICBtX2NvbnRleHRzLmFkZChj
b250ZXh0KTsKKyAgICBtX3BhZ2VHcm91cHMuYWRkKHBhZ2VHcm91cCk7CiB9CiAKLXZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnJlbW92ZUNvbnRleHQoV2ViQ29udGV4dCogY29udGV4dCkKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnJlbW92ZVBhZ2VHcm91cChXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKIHsK
LSAgICBtX2NvbnRleHRzLnJlbW92ZShjb250ZXh0KTsKKyAgICBtX3BhZ2VHcm91cHMucmVtb3Zl
KHBhZ2VHcm91cCk7CiB9CiAKIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnVwZGF0ZSgpCiB7Ci0gICAg
Zm9yIChIYXNoU2V0PFdlYkNvbnRleHQqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRzLmJlZ2lu
KCksIGVuZCA9IG1fY29udGV4dHMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICBmb3IgKEhh
c2hTZXQ8V2ViUGFnZUdyb3VwKj46Oml0ZXJhdG9yIGl0ID0gbV9wYWdlR3JvdXBzLmJlZ2luKCks
IGVuZCA9IG1fcGFnZUdyb3Vwcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAoKml0
KS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVm
ZXJlbmNlcy5oCShyZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDMxICszOSwyOCBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKIAogY2xh
c3MgV2ViUHJlZmVyZW5jZXMgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVByZWZlcmVuY2VzOwogCi0gICAgc3RhdGljIFdl
YlByZWZlcmVuY2VzKiBzaGFyZWQoKTsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlByZWZl
cmVuY2VzPiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQ
cmVmZXJlbmNlcyk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlByZWZlcmVuY2Vz
PiBjb3B5KFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJQcmVmZXJlbmNlcz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJlZmVyZW5jZXMocHJlZmVyZW5jZXMp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQcmVmZXJlbmNlcyhpZGVudGlmaWVy
KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViUHJlZmVyZW5jZXMoKTsKIAotICAgIHZvaWQg
YWRkQ29udGV4dChXZWJDb250ZXh0Kik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkNvbnRl
eHQqKTsKKyAgICB2b2lkIGFkZFBhZ2VHcm91cChXZWJQYWdlR3JvdXAqKTsKKyAgICB2b2lkIHJl
bW92ZVBhZ2VHcm91cChXZWJQYWdlR3JvdXAqKTsKIAogICAgIGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmUmIHN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yZTsgfQogCi0KICNkZWZpbmUgREVD
TEFSRV9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5
cGVOYW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUpIFwKICAgICB2b2lkIHNldCMjS2V5VXBwZXIoY29u
c3QgVHlwZSYgdmFsdWUpOyBcCiAgICAgVHlwZSBLZXlMb3dlcigpIGNvbnN0OyBcCkBAIC03NCw3
ICs3MSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXZWJQcmVmZXJlbmNlcygpOwotICAg
IFdlYlByZWZlcmVuY2VzKFdlYlByZWZlcmVuY2VzKik7CiAgICAgV2ViUHJlZmVyZW5jZXMoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplU3Rv
cmUoKTsKQEAgLTkwLDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtVXBkYXRl
Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKTsKICAgICB2b2lk
IHBsYXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQz
Ml90IHZhbHVlKTsKIAotICAgIEhhc2hTZXQ8V2ViQ29udGV4dCo+IG1fY29udGV4dHM7CisgICAg
SGFzaFNldDxXZWJQYWdlR3JvdXAqPiBtX3BhZ2VHcm91cHM7CiAgICAgV2ViUHJlZmVyZW5jZXNT
dG9yZSBtX3N0b3JlOwogICAgIFN0cmluZyBtX2lkZW50aWZpZXI7CiB9OwpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDYgQEAKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
LSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgpAQCAtNjIsMTYgKzYxLDYgQEAgV0tDb250ZXh0UmVmIFdLQ29udGV4dEdldFNoYXJlZFRocmVh
ZENvbgogICAgIHJldHVybiB0b0FQSShXZWJDb250ZXh0OjpzaGFyZWRUaHJlYWRDb250ZXh0KCkp
OwogfQogCi12b2lkIFdLQ29udGV4dFNldFByZWZlcmVuY2VzKFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmLCBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQotewotICAgIHRvSW1wbChjb250
ZXh0UmVmKS0+c2V0UHJlZmVyZW5jZXModG9JbXBsKHByZWZlcmVuY2VzUmVmKSk7Ci19Ci0KLVdL
UHJlZmVyZW5jZXNSZWYgV0tDb250ZXh0R2V0UHJlZmVyZW5jZXMoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCi17Ci0gICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cHJlZmVyZW5j
ZXMoKSk7Ci19Ci0KIHZvaWQgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYsIGNvbnN0IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KiB3
a0NsaWVudCkKIHsKICAgICBpZiAod2tDbGllbnQgJiYgd2tDbGllbnQtPnZlcnNpb24pCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2aXNpb24gNzMxNzkpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDkg
KzEwMyw2IEBAIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tDb250ZXh0Q3JlYXRlKCkKIFdLX0VY
UE9SVCBXS0NvbnRleHRSZWYgV0tDb250ZXh0Q3JlYXRlV2l0aEluamVjdGVkQnVuZGxlUGF0aChX
S1N0cmluZ1JlZiBwYXRoKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tDb250ZXh0R2V0U2hh
cmVkUHJvY2Vzc0NvbnRleHQoKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0UHJlZmVy
ZW5jZXMoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMp
OwotV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tDb250ZXh0R2V0UHJlZmVyZW5jZXMoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwotCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgV0tDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRIaXN0
b3J5Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRleHRIaXN0b3J5Q2xp
ZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQo
V0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFdLQ29udGV4dERvd25sb2FkQ2xpZW50KiBjbGll
bnQpOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAkocmV2aXNp
b24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgog
I2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTQxLDcgKzQyLDE3IEBAIFdLUGFnZUdyb3Vw
UmVmIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW4KICAgICByZXR1cm4gdG9BUEkocGFnZUdyb3Vw
LnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCi1XS1N0cmluZ1JlZiBXS1BhZ2VHcm91cENvcHlJ
ZGVudGlmaWVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkKK1dLU3RyaW5nUmVmIFdLUGFnZUdy
b3VwQ29weUlkZW50aWZpZXIoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogewotICAgIHJl
dHVybiB0b0NvcGllZEFQSSh0b0ltcGwocGFnZUdyb3VwKS0+aWRlbnRpZmllcigpKTsKKyAgICBy
ZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHBhZ2VHcm91cFJlZiktPmlkZW50aWZpZXIoKSk7Cit9
CisKK3ZvaWQgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgdG9JbXBsKHBh
Z2VHcm91cFJlZiktPnNldFByZWZlcmVuY2VzKHRvSW1wbChwcmVmZXJlbmNlc1JlZikpOworfQor
CitXS1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwocGFnZUdyb3VwUmVm
KS0+cHJlZmVyZW5jZXMoKSk7CiB9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdy
b3VwLmgJKHJldmlzaW9uIDczMTc5KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
R3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOSBAQCBXS19FWFBPUlQgV0tQYWdl
R3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhCiAKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BhZ2VH
cm91cENvcHlJZGVudGlmaWVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CiAKK1dLX0VYUE9S
VCB2b2lkIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
LCBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKK1dLX0VYUE9SVCBXS1ByZWZlcmVuY2Vz
UmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsK
KwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiA3MzE4NykKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0
NCw5IEBAIFdLUHJlZmVyZW5jZXNSZWYgV0tQcmVmZXJlbmNlc0NyZWF0ZSgpCiAgICAgcmV0dXJu
IHRvQVBJKHByZWZlcmVuY2VzLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCi1XS1ByZWZlcmVu
Y2VzUmVmIFdLUHJlZmVyZW5jZXNDcmVhdGVDb3B5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpCitXS1ByZWZlcmVuY2VzUmVmIFdLUHJlZmVyZW5jZXNDcmVhdGVXaXRoSWRlbnRpZmll
cihXS1N0cmluZ1JlZiBpZGVudGlmaWVyUmVmKQogewotICAgIFJlZlB0cjxXZWJQcmVmZXJlbmNl
cz4gcHJlZmVyZW5jZXMgPSBXZWJQcmVmZXJlbmNlczo6Y29weSh0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpKTsKKyAgICBSZWZQdHI8V2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gV2ViUHJlZmVy
ZW5jZXM6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyUmVmKSk7CiAgICAgcmV0dXJuIHRv
QVBJKHByZWZlcmVuY2VzLnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwogfQogCkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiA3MzE4NykKKysrIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzksNyArMzksNyBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS1ByZWZlcmVu
Y2VzR2V0VHlwZUlEKCk7CiAKIFdLX0VYUE9SVCBXS1ByZWZlcmVuY2VzUmVmIFdLUHJlZmVyZW5j
ZXNDcmVhdGUoKTsKLVdLX0VYUE9SVCBXS1ByZWZlcmVuY2VzUmVmIFdLUHJlZmVyZW5jZXNDcmVh
dGVDb3B5KFdLUHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQ
cmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpOwog
CiAvLyBEZWZhdWx0cyB0byB0cnVlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEph
dmFTY3JpcHRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgamF2YVNj
cmlwdEVuYWJsZWQpOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2Vz
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQcmVmZXJlbmNl
c01hYy5tbQkocmV2aXNpb24gNzMxNzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUHJl
ZmVyZW5jZXNNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0YXRpYyBpbmxpbmUgTlNTdHJpbmcqIG1ha2VLZXkoY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJhc2VLZXkpCiB7Ci0gICAgcmV0dXJuIG5zU3Ry
aW5nRnJvbVdlYkNvcmVTdHJpbmcobWFrZVN0cmluZyhpZGVudGlmaWVyLCBiYXNlS2V5KSk7Cisg
ICAgcmV0dXJuIG5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcobWFrZVN0cmluZyhpZGVudGlmaWVy
LCAiLldlYktpdDIiLCBiYXNlS2V5KSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFN0cmluZ1ZhbHVl
SWZJblVzZXJEZWZhdWx0cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
a2V5LCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDczMjA3
KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTAtMTItMDIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyIFByZWZlcmVuY2Vz
IHNob3VsZCBiZSBoZWxkIG9mZiB0aGUgUGFnZUdyb3VwLCBub3QgdGhlIENvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNDE0CisKKyAgICAg
ICAgVXBkYXRlIGZvciBBUEkgY2hhbmdlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXVFI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9Q
bGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdl
YlZpZXdXaW4uY3BwOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
Vmlldyk6CisKIDIwMTAtMTItMDIgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzMxNjQuCkluZGV4OiBXZWJLaXRUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgJKHJldmlzaW9uIDczMTc5
KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV1RSIHsKIAogY2xhc3MgUGxh
dGZvcm1XZWJWaWV3IHsKIHB1YmxpYzoKLSAgICBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlTmFtZXNw
YWNlUmVmKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlTmFtZXNwYWNlUmVmLCBXS1BhZ2VH
cm91cFJlZik7CiAgICAgflBsYXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2Uo
KTsKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiA3MzE4NykKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgc3Rh
dGljIHZvaWQgY2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZwogCiBzdGF0aWMgV0tQYWdlUmVm
IGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2
ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKQogewotICAgIFBs
YXRmb3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlR2V0UGFnZU5h
bWVzcGFjZShvbGRQYWdlKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRm
b3JtV2ViVmlldyhXS1BhZ2VHZXRQYWdlTmFtZXNwYWNlKG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdl
R3JvdXAob2xkUGFnZSkpOwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmlldy0+cGFnZSgpOwog
CiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwpAQCAtMTk0LDYgKzE5NCw5IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBpbml0aWFsaXplSW5qZWN0
ZWRCdW5kbGVQYXRoKCk7CiAgICAgaW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKTsKIAor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwYWdlR3JvdXBJZGVudGlmaWVyKEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXZWJLaXRUZXN0UnVubmVyUGFnZUdyb3Vw
IikpOworICAgIG1fcGFnZUdyb3VwLmFkb3B0KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZp
ZXIocGFnZUdyb3VwSWRlbnRpZmllci5nZXQoKSkpOworCiAgICAgbV9jb250ZXh0LmFkb3B0KFdL
Q29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRCdW5kbGVQYXRoKCkp
KTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7CiAKQEAgLTIwOCw3ICsyMTEsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjCiAgICAgX1dLQ29udGV4
dFNldEFkZGl0aW9uYWxQbHVnaW5zRGlyZWN0b3J5KG1fY29udGV4dC5nZXQoKSwgdGVzdFBsdWdp
bkRpcmVjdG9yeSgpKTsKIAogICAgIG1fcGFnZU5hbWVzcGFjZS5hZG9wdChXS1BhZ2VOYW1lc3Bh
Y2VDcmVhdGUobV9jb250ZXh0LmdldCgpKSk7Ci0gICAgbV9tYWluV2ViVmlldyA9IGFkb3B0UHRy
KG5ldyBQbGF0Zm9ybVdlYlZpZXcobV9wYWdlTmFtZXNwYWNlLmdldCgpKSk7CisgICAgbV9tYWlu
V2ViVmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZpZXcobV9wYWdlTmFtZXNwYWNlLmdl
dCgpLCBtX3BhZ2VHcm91cC5nZXQoKSkpOwogCiAgICAgV0tQYWdlVUlDbGllbnQgcGFnZVVJQ2xp
ZW50ID0gewogICAgICAgICAwLApAQCAtMjcyLDcgKzI3NSw3IEBAIGJvb2wgVGVzdENvbnRyb2xs
ZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3QKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91
bGQgYWxzbyBlbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBwYWdlIG9wZW4uCiAKICAgICAv
LyBSZXNldCBwcmVmZXJlbmNlcwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S0NvbnRleHRHZXRQcmVmZXJlbmNlcyhtX2NvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3Vw
LmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0Rm9udFNtb290
aGluZ0xldmVsKHByZWZlcmVuY2VzLCBrV0tGb250U21vb3RoaW5nTGV2ZWxOb1N1YnBpeGVsQW50
aUFsaWFzaW5nKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0WFNTQXVkaXRvckVuYWJsZWQocHJlZmVy
ZW5jZXMsIGZhbHNlKTsKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDczMTc5KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw3IEBA
IHByaXZhdGU6CiAgICAgT3duUHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1JldGFpblB0cjxX
S1BhZ2VOYW1lc3BhY2VSZWY+IG1fcGFnZU5hbWVzcGFjZTsKKyAgICBXS1JldGFpblB0cjxXS1Bh
Z2VHcm91cFJlZj4gbV9wYWdlR3JvdXA7CiAgICAgCiAgICAgZW51bSBTdGF0ZSB7CiAgICAgICAg
IEluaXRpYWwsCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9y
bVdlYlZpZXdNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCShyZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBACiAKIG5hbWVzcGFjZSBXVFIgewogCi1QbGF0Zm9ybVdl
YlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmKQor
UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWVz
cGFjZVJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogewogICAgIE5TUmVjdCByZWN0
ID0gTlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCk7Ci0gICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6cmVjdCBwYWdlTmFtZXNwYWNlUmVmOm5hbWVzcGFjZVJlZl07Cisg
ICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBwYWdlTmFtZXNw
YWNlUmVmOm5hbWVzcGFjZVJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmXTsKIAogICAgIE5T
UmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNTY3JlZW4g
c2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUu
aGVpZ2h0ICsgMTAwMDApOwogICAgIG1fd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdp
dGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwpJbmRleDogV2ViS2l0
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdX
aW4uY3BwCShyZXZpc2lvbiA3MzE3OSkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEzICs0Nywx
MyBAQCBzdGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCkKICAgICBSZWdpc3RlckNsYXNz
RXhXKCZ3bmRDbGFzcyk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdL
UGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3Jt
V2ViVmlldyhXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYpCiB7CiAgICAgcmVnaXN0ZXJXaW5kb3dDbGFzcygpOwogCiAgICAgUkVDVCB2
aWV3UmVjdCA9IHswLCAwLCA4MDAsIDYwMH07CiAgICAgbV93aW5kb3cgPSBDcmVhdGVXaW5kb3dF
eFcoMCwgaG9zdFdpbmRvd0NsYXNzTmFtZSwgTCJXZWJLaXRUZXN0UnVubmVyIiwgV1NfT1ZFUkxB
UFBFRFdJTkRPVywgMCAvKlhPRkZTRVQqLywgMCAvKllPRkZTRVQqLywgdmlld1JlY3QucmlnaHQs
IHZpZXdSZWN0LmJvdHRvbSwgMCwgMCwgR2V0TW9kdWxlSGFuZGxlKDApLCAwKTsKLSAgICBtX3Zp
ZXcgPSBXS1ZpZXdDcmVhdGUodmlld1JlY3QsIG5hbWVzcGFjZVJlZiwgMCAvKnBhZ2VHcm91cFJl
ZiovLCBtX3dpbmRvdyk7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKHZpZXdSZWN0LCBuYW1l
c3BhY2VSZWYsIHBhZ2VHcm91cFJlZiwgbV93aW5kb3cpOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQo=
</data>
<flag name="review"
          id="66222"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>