<?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>92788</bug_id>
          
          <creation_ts>2012-07-31 13:31:01 -0700</creation_ts>
          <short_desc>[WK2] Use an actual WebProcessProxy when decoding messages</short_desc>
          <delta_ts>2012-07-31 14:22:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683433</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-31 13:31:01 -0700</bug_when>
    <thetext>WebContextUserMessageDecoder gets process proxy from a WebContext object, but we know which process a message came from, and can just use that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683444</commentid>
    <comment_count>1</comment_count>
      <attachid>155626</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-31 13:47:12 -0700</bug_when>
    <thetext>Created attachment 155626
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683471</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-31 14:22:59 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/124249&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155626</attachid>
            <date>2012-07-31 13:47:12 -0700</date>
            <delta_ts>2012-07-31 14:06:45 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>WebContextUserMessageCoders.txt</filename>
            <type>text/plain</type>
            <size>28249</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNDI0NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDEyLTA3LTMxICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFVzZSBhbiBhY3R1
YWwgV2ViUHJvY2Vzc1Byb3h5IHdoZW4gZGVjb2RpbmcgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzg4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBnZXRzIHByb2Nlc3MgcHJveHkgZnJvbSBhIFdlYkNvbnRleHQgb2JqZWN0LCBidXQgd2UK
KyAgICAgICAga25vdyB3aGljaCBwcm9jZXNzIGEgbWVzc2FnZSBjYW1lIGZyb20sIGFuZCBjYW4g
anVzdCB1c2UgdGhhdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3Nh
Z2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rl
cjo6V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXI6OmRlY29kZSk6CisgICAgICAgIFRoaXMgaXMgdGhlIGZv
Y2FsIHBvaW50IG9mIHRoaXMgcGF0Y2ggLSBkZWNvZGVyIG5vIGxvbmdlciBuZWVkcyB0byBjYWxs
IG1fY29udGV4dC0+cHJvY2VzcygpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgVGhlc2UgbWV0aG9kcyBub3cg
dGFrZSBhIFdlYlByb2Nlc3NQcm94eSBwb2ludGVyIGluc3RlYWQgb2YgSVBDOjpDb25uZWN0aW9u
LAorICAgICAgICBzbyB0aGF0IHRoZXkgY2FuIGNhbGwgdGhlIHVwZGF0ZWQgY29kZXIuCisgICAg
ICAgIEEgbnVtYmVyIG9mIG90aGVyIGRpZFJlY2VpdmVNZXNzYWdlIGNhbiBiZSBtb2RpZmllZCB0
byB0YWtlIFdlYlByb2Nlc3NQcm94eSBsYXRlcgorICAgICAgICBpZiBuZWVkZWQgKGl0J3MgYSBy
aWNoZXIgaW50ZXJmYWNlIHRoYW4gSVBDOjpDb25uZWN0aW9uKSwgYWx0aG91Z2ggbm90IGFsbCBt
ZXNzYWdlcworICAgICAgICBjb21lIGZyb20gV2ViUHJvY2Vzc2VzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgVXBkYXRlZCBhcmd1bWVu
dHMgYWNjb3JkaW5nbHkuCisKIDIwMTItMDctMzEgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNz
aUBub2tpYS5jb20+CiAKICAgICAgICAgW1dLMl0gVmlzaWJsZSBjb250ZW50IHJlY3QgdXBkYXRl
IHdpdGggbnVsbCB0cmFqZWN0b3J5IHZlY3RvciBkb2VzIG5vdCByZWFjaCB0aGUgYmFja2luZyBz
dG9yZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTI0MDk1KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVj
ZWkKICAgICAgICAgICAgIGNhc2UgV2ViQ29ubmVjdGlvbkxlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNz
YWdlOiB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAg
ICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwotICAgICAgICAgICAgICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJv
Y2Vzcy0+Y29udGV4dCgpKTsKKyAgICAgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpOwogICAgICAgICAg
ICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBt
ZXNzYWdlRGVjb2RlcikpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDEyNDA5NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzU2LDkxICs3NTYsOTEgQEAgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gV2Vi
Q29udAogICAgIHJldHVybiBtaW1lVHlwZXM7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKFdlYlByb2Nlc3NQcm94eSogcHJvY2Vz
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJDb250ZXh0PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJD
b250ZXh0TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKSkgewogICAgICAgICBpZiAoRG93bmxvYWRQ
cm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSkuZ2V0KCkpCi0gICAgICAgICAgICBkb3dubG9hZFByb3h5LT5kaWRSZWNlaXZlRG93
bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
ICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZURvd25sb2FkUHJveHlNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBt
X2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShC
QVRURVJZX1NUQVRVUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYkJhdHRlcnlNYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9iYXR0ZXJ5TWFuYWdlclBy
b3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIG1fYmF0dGVyeU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UocHJvY2Vz
cy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAjZW5kaWYKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQ29va2llTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fY29va2llTWFuYWdlclBy
b3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIG1fY29va2llTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShwcm9jZXNz
LT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAg
ICBtX2RhdGFiYXNlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9k
YXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVz
c2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBt
X2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkt
PmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlPigpKSB7Ci0gICAgICAgIG1f
aWNvbkRhdGFiYXNlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgICAgIG1faWNvbkRhdGFiYXNlLT5kaWRSZWNlaXZlTWVzc2FnZShwcm9j
ZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
S2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fa2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgICAgIG1fa2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LT5kaWRS
ZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBt
X21lZGlhQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9tZWRpYUNhY2hlTWFuYWdlclByb3h5LT5k
aWRSZWNlaXZlTWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8p
CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlclByb3h5LT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHByb2Nlc3Mt
PmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9ub3RpZmlj
YXRpb25NYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyUHJveHktPmRpZFJl
Y2VpdmVNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAg
IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UocHJvY2Vzcy0+Y29ubmVjdGlvbigpLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBVU0UoU09VUCkKICAg
ICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyUHJveHktPmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAg
bV9zb3VwUmVxdWVzdE1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UocHJvY2Vzcy0+Y29u
bmVjdGlvbigpLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJWaWJyYXRpb25Qcm94eT4oKSkgewotICAgICAgICBtX3Zp
YnJhdGlvblByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgICAgIG1fdmlicmF0aW9uUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKHBy
b2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCkBAIC04NDksNyArODQ5LDcgQEAgdm9pZCBXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICBjYXNlIFdlYkNvbnRleHRMZWdhY3lNZXNz
YWdlOjpQb3N0TWVzc2FnZTogewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAg
ICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgICAgICAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCB0aGlz
KTsKKyAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIobWVzc2FnZUJvZHksIHByb2Nlc3MpOwogICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRl
Y29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC04NjMsMjcgKzg2MywyNyBAQCB2b2lkIFdlYkNvbnRleHQ6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYgcmVwbHkpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShXZWJQcm9j
ZXNzUHJveHkqIHByb2Nlc3MsIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPiYgcmVwbHkpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJDb250ZXh0PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZGlk
UmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCksIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkpIHsK
ICAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5n
ZXQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpLmdldCgpKQotICAgICAgICAgICAgZG93bmxv
YWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+
ZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShwcm9jZXNzLT5jb25uZWN0aW9uKCks
IG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0
YWJhc2U+KCkpIHsKLSAgICAgICAgbV9pY29uRGF0YWJhc2UtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICBtX2lj
b25EYXRhYmFzZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
I2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX25l
dHdvcmtJbmZvTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgbV9uZXR3b3JrSW5mb01hbmFn
ZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKHByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgbWVz
c2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRp
ZgpAQCAtODk0LDcgKzg5NCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKEMKIAogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVm
UHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgICAgICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCB0aGlzKTsKKyAgICAgICAg
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJv
ZHksIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2Rl
KENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAko
cmV2aXNpb24gMTI0MDk1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDggKzEzNSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYWRkVmlzaXRlZExpbmtIYXNo
KFdlYkNvcmU6OkxpbmtIYXNoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoV2ViUHJvY2Vzc1Byb3h5
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVNb2RlbDsgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRV
c2VyTWVzc2FnZUNvZGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaAkocmV2aXNpb24gMTI0MDk1KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCwxNSArODQsMTUgQEAgY2xhc3MgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciA6IHB1YgogcHVibGljOgogICAgIHR5cGVkZWYgVXNlck1lc3NhZ2VEZWNvZGVyPFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXI+IEJhc2U7CiAKLSAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyKFJlZlB0cjxBUElPYmplY3Q+JiByb290LCBXZWJDb250ZXh0KiBjb250ZXh0
KQorICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIoUmVmUHRyPEFQSU9iamVjdD4mIHJv
b3QsIFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKICAgICAgICAgOiBCYXNlKHJvb3QpCi0gICAg
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgICAgICwgbV9wcm9jZXNzKHByb2Nlc3MpCiAg
ICAgewogICAgIH0KIAogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIoV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciYgdXNlck1lc3NhZ2VEZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0
PiYgcm9vdCkKICAgICAgICAgOiBCYXNlKHJvb3QpCi0gICAgICAgICwgbV9jb250ZXh0KHVzZXJN
ZXNzYWdlRGVjb2Rlci5tX2NvbnRleHQpCisgICAgICAgICwgbV9wcm9jZXNzKHVzZXJNZXNzYWdl
RGVjb2Rlci5tX3Byb2Nlc3MpCiAgICAgewogICAgIH0KIApAQCAtMTEwLDE0ICsxMTAsMTQgQEAg
cHVibGljOgogICAgICAgICAgICAgdWludDY0X3QgcGFnZUlEOwogICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUocGFnZUlEKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBjb2Rlci5tX2NvbnRleHQtPnByb2Nlc3MoKS0+d2Vi
UGFnZShwYWdlSUQpOworICAgICAgICAgICAgY29kZXIubV9yb290ID0gY29kZXIubV9wcm9jZXNz
LT53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZUZyYW1lOiB7CiAgICAgICAgICAgICB1aW50NjRf
dCBmcmFtZUlEOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZnJhbWVJRCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0g
Y29kZXIubV9jb250ZXh0LT5wcm9jZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpOworICAgICAgICAg
ICAgY29kZXIubV9yb290ID0gY29kZXIubV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBl
QnVuZGxlUGFnZUdyb3VwOiB7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBXZWJDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViUHJvY2Vzc1Byb3h5
KiBtX3Byb2Nlc3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxMjQwOTUpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjcxLDcgKzY3MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRHb1RvQmFja0Zvcndh
cmQKIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0
X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MtPmNvbnRleHQoKSk7CisgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xODk3LDcgKzE4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoUHJvZ3Jlc3MoKQogdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVySW50
ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNlcnZpY2VJ
bmZvJiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkp
OworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkxNCw3ICsxOTE0LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMbwogICAgIGNsZWFyUGVuZGluZ0FQSVJl
cXVlc3RVUkwoKTsKIAogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vz
cy0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MzEsNyArMTkz
MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG8KIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTk0Nyw3ICsxOTQ3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cgogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTk3NSw3ICsxOTc1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyTG9hZERlcGVuZGVudENh
bAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50
YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkp
OwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTIwMTUsNyArMjAxNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21t
aXRMb2FkRm9yRnJhbWUKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MtPmNv
bnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2Rl
KG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDI4LDcgKzIwMjgsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJE
YXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwogICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAK
QEAgLTIwNDMsNyArMjA0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3By
b2Nlc3MtPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDYwLDcg
KzIwNjAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1CiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25z
dCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOwor
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEs
IG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVj
b2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjA3Nyw3ICsyMDc3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRS
ZWNlaXZlVGl0bGVGb3JGcmEKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2Vy
TWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4
dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVz
ZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIxMDUsNyArMjEwNSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW0KIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MtPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMTE4LDcgKzIxMTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Rmlyc3RWaXN1YWxseU5vbkVtCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewog
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsK
KyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBtX3Byb2Nlc3MuZ2V0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIxMjgsNyArMjEyOCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm8KIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRS
ZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29k
ZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MjE0Myw3ICsyMTQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhp
ZQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MtPmNvbnRleHQoKSk7
CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTU2LDcgKzIxNTYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29uCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjE2OSw3ICsyMTY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0
cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nl
c3MuZ2V0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTIxODMsNyArMjE4Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWREZXRlY3RYU1NGb3JGcmFtZSgKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYgaW50ZW50RGF0
YSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5n
ZXQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMjIwOSw3ICsyMjA5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZy
YW1lRGlkQmVjb21lRnJhbWVTZQogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlv
blR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRv
biwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQogewog
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsK
KyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBtX3Byb2Nlc3MuZ2V0KCkpOwogICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2EKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3Bh
cXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFx
dWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFhcmd1bWVu
dHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjI2Nyw3
ICsyMjY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbgogdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFj
dGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNl
ckRhdGE7Ci0gICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1
c2VyRGF0YSwgbV9wcm9jZXNzLT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAg
aWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMjI5OSw3ICsyMjk5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3Bvbgogdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsK
LSAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBtX3Byb2Nlc3MtPmNvbnRleHQoKSk7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFy
Z3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIApA
QCAtMjMxNCw3ICsyMzE0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50
UG9saQogdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVs
ZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7Ci0gICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNz
LT5jb250ZXh0KCkpOworICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7CiAgICAgaWYgKCFhcmd1bWVudHMtPmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjQ1Nyw3ICsyNDU3
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFN0YXR1c1RleHQoY29uc3QgUwogdm9pZCBXZWJQ
YWdlUHJveHk6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy0+Y29udGV4dCgpKTsKKyAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwog
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTI5MDcsNyArMjkwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGV4
dE1lbnUoY29uc3QKIHZvaWQgV2ViUGFnZVByb3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudShj
b25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRh
JiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+
JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKLSAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MtPmNvbnRleHQoKSk7
CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMTI0MDk1KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
Miw3ICszMzIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAg
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJWaWJyYXRpb25Q
cm94eT4oKQogI2VuZGlmCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fY29udGV4
dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzU5LDcgKzM1OSw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3MKICAgICAgICAgfHwgbWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Pigp
CiAjZW5kaWYKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rv
d25sb2FkUHJveHk+KCkgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYklj
b25EYXRhYmFzZT4oKSkgewotICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICBtX2Nv
bnRleHQtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZSh0aGlzLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCg==
</data>
<flag name="review"
          id="165133"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>