<?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>63069</bug_id>
          
          <creation_ts>2011-06-21 08:34:32 -0700</creation_ts>
          <short_desc>Web Inspector: Move logic for deciding whether resource content should be base64 encoded on backend.</short_desc>
          <delta_ts>2011-06-22 10:52:15 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>63128</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>424470</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-21 08:34:32 -0700</bug_when>
    <thetext>Move logic for deciding whether resource content should be base64 encoded on backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424496</commentid>
    <comment_count>1</comment_count>
      <attachid>97997</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-21 09:22:17 -0700</bug_when>
    <thetext>Created attachment 97997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424532</commentid>
    <comment_count>2</comment_count>
      <attachid>97997</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-06-21 10:32:27 -0700</bug_when>
    <thetext>Comment on attachment 97997
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=97997&amp;action=review

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:493
&gt; +                if (cachedResourceContent(cachedResource, &amp;content, &amp;base64Encoded) &amp;&amp; !base64Encoded) {

Replace condition with ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424549</commentid>
    <comment_count>3</comment_count>
      <attachid>98009</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-21 10:45:03 -0700</bug_when>
    <thetext>Created attachment 98009
Patch with fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424582</commentid>
    <comment_count>4</comment_count>
      <attachid>98009</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 11:16:47 -0700</bug_when>
    <thetext>Comment on attachment 98009
Patch with fixes

Clearing flags on attachment: 98009

Committed r89368: &lt;http://trac.webkit.org/changeset/89368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424584</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 11:16:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425138</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-06-22 04:13:34 -0700</bug_when>
    <thetext>Reopen, because it was rolled out by http://trac.webkit.org/changeset/89419

crash log: http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20%28Tests%29/r89368%20%2830592%29/http/tests/inspector/extensions-resources-redirect-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425172</commentid>
    <comment_count>7</comment_count>
      <attachid>98159</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-06-22 06:06:08 -0700</bug_when>
    <thetext>Created attachment 98159
Patch with fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425358</commentid>
    <comment_count>8</comment_count>
      <attachid>98159</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 10:52:11 -0700</bug_when>
    <thetext>Comment on attachment 98159
Patch with fix

Clearing flags on attachment: 98159

Committed r89449: &lt;http://trac.webkit.org/changeset/89449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425359</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 10:52:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97997</attachid>
            <date>2011-06-21 09:22:17 -0700</date>
            <delta_ts>2011-06-21 10:44:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63069-20110621202214.patch</filename>
            <type>text/plain</type>
            <size>16740</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyODA4ZTQwMjJmNTA4NTZk
NmI1ODczMjJhOWFjMzlmN2ViOTNhNGQwLi41ZGJhODYxOTgxYjI4OWZmOGVmMTMwMjQxNWQ4YWUz
N2FkYjNkNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDYtMjEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBsb2dpYyBmb3Ig
ZGVjaWRpbmcgd2hldGhlciByZXNvdXJjZSBjb250ZW50IHNob3VsZCBiZSBiYXNlNjQgZW5jb2Rl
ZCBvbiBiYWNrZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjMwNjkKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZXMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6cmVz
b3VyY2VTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90
b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9pbm5l
clJlcXVlc3RDb250ZW50Lm9uUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5wcm90b3R5cGUuX2lubmVyUmVxdWVzdENvbnRlbnQpOgorCiAyMDExLTA2LTIw
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KaW5kZXggMjkyYmExNDBkMTdkNjRjYjE0NDYzYjZlNjJjYmE1NzlkYTU1NjhlMS4uZDU5
MWEzYmI1MTNlZGMwMGJkMGE5MWM1NTMwMWY5NWJhNmNhNzRjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTYxLDExICsxNjEsMTEgQEAKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZlbiByZXNvdXJj
ZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
RnJhbWUgaWQgdG8gZ2V0IHJlc291cmNlIGZvci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0
aGUgcmVzb3VyY2UgdG8gZ2V0IGNvbnRlbnQgZm9yLiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJiYXNlNjRFbmNvZGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQgcmVzb3VyY2UgY29udGVudCBpcyBz
ZXJ2ZWQgYXMgYmFzZTY0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIHJlc291cmNlIHRv
IGdldCBjb250ZW50IGZvci4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAg
ICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgY29udGVudC4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9LAorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImJhc2U2NEVuY29kZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0
aW9uIjogIlRydWUsIGlmIGNvbnRlbnQgd2FzIHNlcnZlZCBhcyBiYXNlNjQuIiB9CiAgICAgICAg
ICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTQ5MCwxMSArNDkw
LDExIEBACiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VDb250ZW50IiwKICAg
ICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZl
biByZXNvdXJjZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlkZW50aWZpZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRl
c2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250ZW50IGZv
ci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFzZTY0RW5jb2RlIiwgInR5
cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0
cyB0aGF0IHJlc291cmNlIGNvbnRlbnQgaXMgc2VydmVkIGFzIGJhc2U2NC4iIH0KKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB0byBnZXQgY29udGVudCBm
b3IuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9CisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY29udGVudCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJSZXNvdXJjZSBjb250ZW50LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
YXNlNjRFbmNvZGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlLCBp
ZiBjb250ZW50IHdhcyBzZXJ2ZWQgYXMgYmFzZTY0LiIgfQogICAgICAgICAgICAgICAgIF0KICAg
ICAgICAgICAgIH0KICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZWEyZTk1ZWQ2NTAxYmY5MTU4YzYzNmE2MTdhMTBm
YmVmYzMzNzYzNS4uZTk0OTU0MDMxMmFiZGI3NjUyMDQzYzJlOTQzZmQ1NDVhNDBmNGYzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAg
LTExMCwxNCArMTEwLDE3IEBAIHN0YXRpYyBib29sIHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZl
cihDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIGJvb2wqIGhhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQo
Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBib29sIHdpdGhCYXNlNjRFbmNvZGUsIFN0
cmluZyogcmVzdWx0KQorYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29u
dGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFN0cmluZyogcmVzdWx0LCBib29s
KiBiYXNlNjRFbmNvZGVkKQogeworICAgIFJlc291cmNlVHlwZSB0eXBlID0gY2FjaGVkUmVzb3Vy
Y2VUeXBlKCpjYWNoZWRSZXNvdXJjZSk7CisgICAgKmJhc2U2NEVuY29kZWQgPSB0eXBlICE9IFN0
eWxlc2hlZXRSZXNvdXJjZSAmJiB0eXBlICE9IFNjcmlwdFJlc291cmNlOworCiAgICAgYm9vbCBo
YXNaZXJvU2l6ZTsKICAgICBib29sIHByZXBhcmVkID0gcHJlcGFyZUNhY2hlZFJlc291cmNlQnVm
ZmVyKGNhY2hlZFJlc291cmNlLCAmaGFzWmVyb1NpemUpOwogICAgIGlmICghcHJlcGFyZWQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh3aXRoQmFzZTY0RW5jb2RlKSB7CisgICAg
aWYgKCpiYXNlNjRFbmNvZGVkKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IGhhc1plcm9TaXplID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IGNhY2hlZFJlc291cmNl
LT5kYXRhKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCkBAIC0xNzMsNyArMTc2LDcgQEAgUGFz
c093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKElu
c3RydW1lbnRpbmdBZ2VudHMqIGkKIH0KIAogLy8gc3RhdGljCi12b2lkIEluc3BlY3RvclBhZ2VB
Z2VudDo6cmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZy
YW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgYmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJlc3VsdCkK
K3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nKiByZXN1bHQs
IGJvb2wqIGJhc2U2NEVuY29kZWQpCiB7CiAgICAgaWYgKCFmcmFtZSkgewogICAgICAgICAqZXJy
b3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9yIjsKQEAgLTE5
MCwxMCArMTkzLDEzIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAKICAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXI7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIodXJsLCBsb2FkZXItPnVybCgpKSkKLSAgICAg
ICAgc3VjY2VzcyA9IG1haW5SZXNvdXJjZUNvbnRlbnQoZnJhbWUsIGJhc2U2NEVuY29kZSwgcmVz
dWx0KTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGxvYWRl
ci0+dXJsKCkpKSB7CisgICAgICAgICpiYXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAgICAgIHN1
Y2Nlc3MgPSBtYWluUmVzb3VyY2VDb250ZW50KGZyYW1lLCAqYmFzZTY0RW5jb2RlZCwgcmVzdWx0
KTsKKyAgICB9CisKICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHN1Y2Nlc3MgPSBjYWNoZWRS
ZXNvdXJjZUNvbnRlbnQoY2FjaGVkUmVzb3VyY2UoZnJhbWUsIHVybCksIGJhc2U2NEVuY29kZSwg
cmVzdWx0KTsKKyAgICAgICAgc3VjY2VzcyA9IGNhY2hlZFJlc291cmNlQ29udGVudChjYWNoZWRS
ZXNvdXJjZShmcmFtZSwgdXJsKSwgcmVzdWx0LCBiYXNlNjRFbmNvZGVkKTsKIAogICAgIGlmICgh
c3VjY2VzcykKICAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIHJlc291cmNlIHdpdGggZ2l2ZW4g
VVJMIGZvdW5kIjsKQEAgLTQxNCwxNSArNDIwLDE0IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PioK
ICAgICAqb2JqZWN0ID0gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUobV9wYWdlLT5tYWluRnJhbWUo
KSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbEJhc2U2NEVuY29kZSwgU3RyaW5nKiBj
b250ZW50KQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkKIHsKICAgICBGcmFt
ZSogZnJhbWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOwogICAgIGlmICghZnJhbWUpIHsKICAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgYm9vbCBiYXNlNjRFbmNvZGUgPSBvcHRpb25hbEJhc2U2NEVu
Y29kZSA/ICpvcHRpb25hbEJhc2U2NEVuY29kZSA6IGZhbHNlOwotICAgIHJlc291cmNlQ29udGVu
dChlcnJvclN0cmluZywgZnJhbWUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBiYXNlNjRF
bmNvZGUsIGNvbnRlbnQpOworICAgIHJlc291cmNlQ29udGVudChlcnJvclN0cmluZywgZnJhbWUs
IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkKTsKIH0K
IAogc3RhdGljIFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRl
eHQpCkBAIC00NzgsMTMgKzQ4MywxNCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNo
SW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbgogCiAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9wYWdlLT5tYWluRnJhbWUoKSkpIHsKICAgICAg
ICAgU3RyaW5nIGNvbnRlbnQ7CisgICAgICAgIGJvb2wgYmFzZTY0RW5jb2RlZDsKICAgICAgICAg
VmVjdG9yPENhY2hlZFJlc291cmNlKj4gYWxsUmVzb3VyY2VzID0gY2FjaGVkUmVzb3VyY2VzRm9y
RnJhbWUoZnJhbWUpOwogICAgICAgICBmb3IgKFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IGFsbFJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBhbGxSZXNvdXJjZXMu
ZW5kKCk7ICsraXQpIHsKICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJj
ZSA9ICppdDsKICAgICAgICAgICAgIHN3aXRjaCAoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRS
ZXNvdXJjZVR5cGUoKmNhY2hlZFJlc291cmNlKSkgewogICAgICAgICAgICAgY2FzZSBJbnNwZWN0
b3JQYWdlQWdlbnQ6OlN0eWxlc2hlZXRSZXNvdXJjZToKICAgICAgICAgICAgIGNhc2UgSW5zcGVj
dG9yUGFnZUFnZW50OjpTY3JpcHRSZXNvdXJjZToKLSAgICAgICAgICAgICAgICBpZiAoY2FjaGVk
UmVzb3VyY2VDb250ZW50KGNhY2hlZFJlc291cmNlLCBmYWxzZSwgJmNvbnRlbnQpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlQ29udGVudChjYWNoZWRSZXNvdXJjZSwgJmNv
bnRlbnQsICZiYXNlNjRFbmNvZGVkKSAmJiAhYmFzZTY0RW5jb2RlZCkgewogICAgICAgICAgICAg
ICAgICAgICBpbnQgbWF0Y2hlc0NvdW50ID0gY291bnRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXMo
cmVnZXgsIGNvbnRlbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hlc0NvdW50KQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXNoVmFsdWUoYnVpbGRPYmplY3RGb3JT
ZWFyY2hNYXRjaChmcmFtZUlkKGZyYW1lKSwgY2FjaGVkUmVzb3VyY2UtPnVybCgpLCBtYXRjaGVz
Q291bnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aAppbmRleCA2ODkxNjQzNTU1Njk0ZGMzMzU5NTEwODkzMzBjNjA2OGUwY2NjMGIyLi41YTkwNTBi
NjJlN2FlY2M0YjFjZGUyMGEyMDA2ZGNhZDhmYzRhZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC03NSw5ICs3NSw5IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKLSAgICBz
dGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBib29sIHdp
dGhCYXNlNjRFbmNvZGUsIFN0cmluZyogcmVzdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBjYWNoZWRS
ZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFz
ZTY0RW5jb2RlZCk7CiAgICAgc3RhdGljIGJvb2wgc2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgYm9vbCB3
aXRoQmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJlc3VsdCk7Ci0gICAgc3RhdGljIHZvaWQgcmVzb3Vy
Y2VDb250ZW50KEVycm9yU3RyaW5nKiwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBiYXNlNjRF
bmNvZGUsIFN0cmluZyogcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9pZCByZXNvdXJjZUNvbnRlbnQo
RXJyb3JTdHJpbmcqLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCog
YmFzZTY0RW5jb2RlZCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHJl
c291cmNlRGF0YShGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJpbmcqIHRleHRFbmNvZGluZ05hbWUp
OwogICAgIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UoRnJhbWUqLCBjb25z
dCBLVVJMJik7CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvb2tpZXMo
RXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb29raWVzLCBXVEY6OlN0cmlu
ZyogY29va2llc1N0cmluZyk7CiAgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2b2lk
IGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+Kik7
Ci0gICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBjb25zdCBiYXNlNjRFbmNv
ZGUsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcq
IGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpOwogICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJj
ZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBib29sKiBjb25zdCBjYXNlU2Vu
c2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBpc1JlZ2V4LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
Kik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24gQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggZDYw
OGY1YzI0MzI4ODMwMWYzMDYxNjNmMTdkMjA3MzY3ZTMxZDhhOS4uMjllYzE1YTQxZWY2OGYxNGRm
NWQ5YzNhZDhmMTc0YmMyMmJjNDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6aW5pdGlhbGl6ZUJhY2tncm91bmRDb2xsZWN0aW9uKCkK
ICAgICBtX21vY2tGcm9udGVuZCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0
d29yayhtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFs
QmFzZTY0RW5jb2RlLCBTdHJpbmcqIGNvbnRlbnQpCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgU3RyaW5nKiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKQog
ewogICAgIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURhdGEqIHJlc291cmNlRGF0YSA9
IG1fcmVzb3VyY2VzRGF0YS0+ZGF0YShpZGVudGlmaWVyKTsKICAgICBpZiAoIXJlc291cmNlRGF0
YSkgewpAQCAtNDQyLDIwICs0NDIsMjAgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpn
ZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ24KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJvb2wgYmFzZTY0RW5jb2RlID0gb3B0aW9uYWxCYXNl
NjRFbmNvZGUgPyAqb3B0aW9uYWxCYXNlNjRFbmNvZGUgOiBmYWxzZTsKLQogICAgIGlmIChyZXNv
dXJjZURhdGEtPmhhc0NvbnRlbnQoKSkgeworICAgICAgICAqYmFzZTY0RW5jb2RlZCA9IGZhbHNl
OwogICAgICAgICAqY29udGVudCA9IHJlc291cmNlRGF0YS0+Y29udGVudCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlRGF0YS0+YnVmZmVyKCkgJiYgIXJlc291
cmNlRGF0YS0+dGV4dEVuY29kaW5nTmFtZSgpLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChJbnNw
ZWN0b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1ZmZlckNvbnRlbnQocmVzb3VyY2VEYXRhLT5idWZmZXIo
KSwgcmVzb3VyY2VEYXRhLT50ZXh0RW5jb2RpbmdOYW1lKCksIGJhc2U2NEVuY29kZSwgY29udGVu
dCkpCisgICAgICAgICpiYXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAgICAgIGlmIChJbnNwZWN0
b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1ZmZlckNvbnRlbnQocmVzb3VyY2VEYXRhLT5idWZmZXIoKSwg
cmVzb3VyY2VEYXRhLT50ZXh0RW5jb2RpbmdOYW1lKCksICpiYXNlNjRFbmNvZGVkLCBjb250ZW50
KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVzb3VyY2VEYXRhLT5j
YWNoZWRSZXNvdXJjZSgpKSB7Ci0gICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hl
ZFJlc291cmNlQ29udGVudChyZXNvdXJjZURhdGEtPmNhY2hlZFJlc291cmNlKCksIGJhc2U2NEVu
Y29kZSwgY29udGVudCkpCisgICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJl
c291cmNlQ29udGVudChyZXNvdXJjZURhdGEtPmNhY2hlZFJlc291cmNlKCksIGNvbnRlbnQsIGJh
c2U2NEVuY29kZWQpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggODZjMGMy
MzU3YmI4NmJhMzU3N2U1YWRkMGJlZDUzNzZhNzA2OWNlOC4uYjQ0MTBiMzc1Y2FmMWQyZTZmYTYy
ZWZlOTk0Y2FlYmI5Y2UxOTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwogICAgIHZvaWQgc2V0VXNlckFnZW50T3ZlcnJp
ZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCBzZXRF
eHRyYUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4pOwot
ICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBib29sKiBjb25zdCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVu
dCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAg
ICAgdm9pZCBjbGVhckNhY2hlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRp
b25hbFByZXNlcnZlZExvYWRlcklkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCBhYjZiYTQ4ZWMwMjgxMGYz
NGJmMGZkYTUwM2Y2Nzg4YmJhYmY0YTU5Li5hMzQ1YjUzYjgzODE3ZThhMTUxNDM4ZTFmYmMzNTVm
ZDFiMWMyMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwCkBAIC0xMDY5LDggKzEwNjksOSBAQCBib29sIEluc3BlY3RvclN0eWxlU2hl
ZXQ6OnJlc291cmNlU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBlcnJvcjsKLSAgICBJbnNwZWN0b3JQYWdlQWdl
bnQ6OnJlc291cmNlQ29udGVudCgmZXJyb3IsIG93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSwgbV9w
YWdlU3R5bGVTaGVldC0+ZmluYWxVUkwoKSwgZmFsc2UsIHJlc3VsdCk7Ci0gICAgcmV0dXJuIGVy
cm9yLmlzRW1wdHkoKTsKKyAgICBib29sIGJhc2U2NEVuY29kZWQ7CisgICAgSW5zcGVjdG9yUGFn
ZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoJmVycm9yLCBvd25lckRvY3VtZW50KCktPmZyYW1lKCks
IG1fcGFnZVN0eWxlU2hlZXQtPmZpbmFsVVJMKCksIHJlc3VsdCwgJmJhc2U2NEVuY29kZWQpOwor
ICAgIHJldHVybiBlcnJvci5pc0VtcHR5KCkgJiYgIWJhc2U2NEVuY29kZWQ7CiB9CiAKIGJvb2wg
SW5zcGVjdG9yU3R5bGVTaGVldDo6aW5saW5lU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcwppbmRleCA5ZDJiYTVhNmQ0NWVlM2E2N2YyYjk4NDA4ZTc1ZjYzMjAxOWEy
OTNjLi4zODlkYzFiMTI0ODEzMWNiMzVjN2E1NjA0ZjRhMmUyYzNjM2EzMTdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMK
QEAgLTQyLDE4ICs0MiwxOCBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBl
cyA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZSA9IHsKLSAg
ICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGJhc2U2NEVuY29kZSwgY2FsbGJh
Y2spCisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKHJlc291cmNlLCBjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihlcnJvciwgY29udGVudCkKKyAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9yLCBjb250ZW50LCBjb250ZW50RW5j
b2RlZCkKICAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2soIWVycm9yID8gY29udGVudCA6
IG51bGwpOworICAgICAgICAgICAgY2FsbGJhY2soIWVycm9yID8gY29udGVudCA6IG51bGwsIGNv
bnRlbnRFbmNvZGVkKTsKICAgICAgICAgfQogICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzYzIFdlIHNob3VsZCBzZXBhcmF0ZSBOZXR3
b3JrUmVzb3VyY2UgKE5ldHdvcmtQYW5lbCByZXNvdXJjZSkgCiAgICAgICAgIC8vIGZyb20gUmVz
b3VyY2VSZXZpc2lvbiAoUmVzb3VyY2VzUGFuZWwvU2NyaXB0c1BhbmVsIHJlc291cmNlKSBhbmQg
cmVxdWVzdCBjb250ZW50IGFjY29yZGluZ2x5LgogICAgICAgICBpZiAocmVzb3VyY2UuaWRlbnRp
ZmllcikKLSAgICAgICAgICAgIE5ldHdvcmtBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQocmVzb3Vy
Y2UuaWRlbnRpZmllciwgYmFzZTY0RW5jb2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICAg
ICAgTmV0d29ya0FnZW50LmdldFJlc291cmNlQ29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBj
YWxsYmFja1dyYXBwZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBQYWdlQWdlbnQuZ2V0
UmVzb3VyY2VDb250ZW50KHJlc291cmNlLmZyYW1lSWQsIHJlc291cmNlLnVybCwgYmFzZTY0RW5j
b2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICAgICAgUGFnZUFnZW50LmdldFJlc291cmNl
Q29udGVudChyZXNvdXJjZS5mcmFtZUlkLCByZXNvdXJjZS51cmwsIGNhbGxiYWNrV3JhcHBlcik7
CiAgICAgfSwKIAogICAgIGluZmxpZ2h0UmVzb3VyY2VGb3JVUkw6IGZ1bmN0aW9uKHVybCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDdm
MTJjY2FkNWExYTQ3M2NkZTc4MTg0MzQ3MmQ0ZWE5NDg2NmNmOGUuLjEwYmEyNzc2Y2ViODkyNmJm
YWJmN2ViODUwZjBlYmFhZDE5M2RkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtOTEyLDEwICs5MTIsMTAgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRSZXF1ZXN0
ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2NvbnRlbnRSZXF1ZXN0ZWQg
PSB0cnVlOwotICAgICAgICB0aGlzLl9jb250ZW50RW5jb2RlZCA9ICFXZWJJbnNwZWN0b3IuUmVz
b3VyY2UuVHlwZS5pc1RleHRUeXBlKHRoaXMudHlwZSk7CiAKLSAgICAgICAgZnVuY3Rpb24gb25S
ZXNvdXJjZUNvbnRlbnQoZGF0YSkKKyAgICAgICAgZnVuY3Rpb24gb25SZXNvdXJjZUNvbnRlbnQo
ZGF0YSwgY29udGVudEVuY29kZWQpCiAgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRl
bnRFbmNvZGVkID0gY29udGVudEVuY29kZWQ7CiAgICAgICAgICAgICB0aGlzLl9jb250ZW50ID0g
ZGF0YTsKICAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsQ29udGVudCA9IGRhdGE7CiAgICAgICAg
ICAgICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fcGVuZGluZ0NvbnRlbnRDYWxsYmFja3Muc2xpY2Uo
KTsKQEAgLTkyNCw3ICs5MjQsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0NvbnRlbnRDYWxsYmFja3MubGVuZ3RoID0gMDsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb250ZW50UmVxdWVzdGVkOwogICAgICAgICB9Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5yZXF1ZXN0Q29udGVudCh0aGlzLCB0
aGlzLl9jb250ZW50RW5jb2RlZCwgb25SZXNvdXJjZUNvbnRlbnQuYmluZCh0aGlzKSk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5yZXF1ZXN0Q29udGVudCh0aGlzLCBvblJl
c291cmNlQ29udGVudC5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98009</attachid>
            <date>2011-06-21 10:45:03 -0700</date>
            <delta_ts>2011-06-22 06:05:55 -0700</delta_ts>
            <desc>Patch with fixes</desc>
            <filename>bug-63069-20110621214501.patch</filename>
            <type>text/plain</type>
            <size>16758</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MDRkNzNhOTM3ZjYxNGZj
NDVmZGYzZTAwODg4ZmUwNTRlY2Q4Mzk5Li5hNDFmN2I2N2JmMzRlNjAyMGRlZjFkYmJmNjQ0MTRm
YmQyYzJiZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDYtMjEgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBsb2dpYyBmb3Ig
ZGVjaWRpbmcgd2hldGhlciByZXNvdXJjZSBjb250ZW50IHNob3VsZCBiZSBiYXNlNjQgZW5jb2Rl
ZCBvbiBiYWNrZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjMwNjkKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZXMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6cmVz
b3VyY2VTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90
b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9pbm5l
clJlcXVlc3RDb250ZW50Lm9uUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5wcm90b3R5cGUuX2lubmVyUmVxdWVzdENvbnRlbnQpOgorCiAyMDExLTA2LTIx
ICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5k
ZXggMjkyYmExNDBkMTdkNjRjYjE0NDYzYjZlNjJjYmE1NzlkYTU1NjhlMS4uZDU5MWEzYmI1MTNl
ZGMwMGJkMGE5MWM1NTMwMWY5NWJhNmNhNzRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgpAQCAtMTYxLDExICsxNjEsMTEgQEAKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZlbiByZXNvdXJjZS4iLAogICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWQg
dG8gZ2V0IHJlc291cmNlIGZvci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgcmVzb3Vy
Y2UgdG8gZ2V0IGNvbnRlbnQgZm9yLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJiYXNlNjRFbmNvZGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQgcmVzb3VyY2UgY29udGVudCBpcyBzZXJ2ZWQgYXMg
YmFzZTY0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250
ZW50IGZvci4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgY29udGVudC4iIH0KKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJhc2U2NEVuY29kZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRy
dWUsIGlmIGNvbnRlbnQgd2FzIHNlcnZlZCBhcyBiYXNlNjQuIiB9CiAgICAgICAgICAgICAgICAg
XQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTQ5MCwxMSArNDkwLDExIEBACiAg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VDb250ZW50IiwKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZlbiByZXNvdXJj
ZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlkZW50aWZpZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIklkZW50aWZpZXIgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250ZW50IGZvci4iIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFzZTY0RW5jb2RlIiwgInR5cGUiOiAiYm9v
bGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0aGF0IHJl
c291cmNlIGNvbnRlbnQgaXMgc2VydmVkIGFzIGJhc2U2NC4iIH0KKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlv
biI6ICJJZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB0byBnZXQgY29udGVudCBmb3IuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiY29udGVudCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJj
ZSBjb250ZW50LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiYXNlNjRFbmNv
ZGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlLCBpZiBjb250ZW50
IHdhcyBzZXJ2ZWQgYXMgYmFzZTY0LiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAg
IH0KICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKaW5kZXggZWEyZTk1ZWQ2NTAxYmY5MTU4YzYzNmE2MTdhMTBmYmVmYzMzNzYz
NS4uNjNlNjFlMjI3MjhlMWY2NTY2YmRhY2Q2ZWMxNTAzNmI4ZmRkMjZmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTExMCwxNCAr
MTEwLDE3IEBAIHN0YXRpYyBib29sIHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcihDYWNoZWRS
ZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIGJvb2wqIGhhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlLCBib29sIHdpdGhCYXNlNjRFbmNvZGUsIFN0cmluZyogcmVz
dWx0KQorYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFN0cmluZyogcmVzdWx0LCBib29sKiBiYXNlNjRF
bmNvZGVkKQogeworICAgIFJlc291cmNlVHlwZSB0eXBlID0gY2FjaGVkUmVzb3VyY2VUeXBlKCpj
YWNoZWRSZXNvdXJjZSk7CisgICAgKmJhc2U2NEVuY29kZWQgPSB0eXBlICE9IFN0eWxlc2hlZXRS
ZXNvdXJjZSAmJiB0eXBlICE9IFNjcmlwdFJlc291cmNlOworCiAgICAgYm9vbCBoYXNaZXJvU2l6
ZTsKICAgICBib29sIHByZXBhcmVkID0gcHJlcGFyZUNhY2hlZFJlc291cmNlQnVmZmVyKGNhY2hl
ZFJlc291cmNlLCAmaGFzWmVyb1NpemUpOwogICAgIGlmICghcHJlcGFyZWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmICh3aXRoQmFzZTY0RW5jb2RlKSB7CisgICAgaWYgKCpiYXNl
NjRFbmNvZGVkKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhhc1pl
cm9TaXplID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7
CiAKICAgICAgICAgaWYgKCFidWZmZXIpCkBAIC0xNzMsNyArMTc2LDcgQEAgUGFzc093blB0cjxJ
bnNwZWN0b3JQYWdlQWdlbnQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRp
bmdBZ2VudHMqIGkKIH0KIAogLy8gc3RhdGljCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVz
b3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZyYW1lLCBjb25z
dCBLVVJMJiB1cmwsIGJvb2wgYmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJlc3VsdCkKK3ZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nKiByZXN1bHQsIGJvb2wqIGJh
c2U2NEVuY29kZWQpCiB7CiAgICAgaWYgKCFmcmFtZSkgewogICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9yIjsKQEAgLTE5MCwxMCArMTkz
LDEzIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWZmZXI7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgaWYgKGVxdWFsSWdub3Jp
bmdGcmFnbWVudElkZW50aWZpZXIodXJsLCBsb2FkZXItPnVybCgpKSkKLSAgICAgICAgc3VjY2Vz
cyA9IG1haW5SZXNvdXJjZUNvbnRlbnQoZnJhbWUsIGJhc2U2NEVuY29kZSwgcmVzdWx0KTsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGxvYWRlci0+dXJsKCkp
KSB7CisgICAgICAgICpiYXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAgICAgIHN1Y2Nlc3MgPSBt
YWluUmVzb3VyY2VDb250ZW50KGZyYW1lLCAqYmFzZTY0RW5jb2RlZCwgcmVzdWx0KTsKKyAgICB9
CisKICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHN1Y2Nlc3MgPSBjYWNoZWRSZXNvdXJjZUNv
bnRlbnQoY2FjaGVkUmVzb3VyY2UoZnJhbWUsIHVybCksIGJhc2U2NEVuY29kZSwgcmVzdWx0KTsK
KyAgICAgICAgc3VjY2VzcyA9IGNhY2hlZFJlc291cmNlQ29udGVudChjYWNoZWRSZXNvdXJjZShm
cmFtZSwgdXJsKSwgcmVzdWx0LCBiYXNlNjRFbmNvZGVkKTsKIAogICAgIGlmICghc3VjY2VzcykK
ICAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIHJlc291cmNlIHdpdGggZ2l2ZW4gVVJMIGZvdW5k
IjsKQEAgLTQxNCwxNSArNDIwLDE0IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNv
dXJjZVRyZWUoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PioKICAgICAqb2Jq
ZWN0ID0gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUobV9wYWdlLT5tYWluRnJhbWUoKSk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBib29sKiBjb25zdCBvcHRpb25hbEJhc2U2NEVuY29kZSwgU3RyaW5nKiBjb250ZW50KQor
dm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIFN0
cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBmcmFtZUZvcklkKGZyYW1lSWQpOwogICAgIGlmICghZnJhbWUpIHsKICAgICAgICAgKmVycm9y
U3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgYm9vbCBiYXNlNjRFbmNvZGUgPSBvcHRpb25hbEJhc2U2NEVuY29kZSA/ICpv
cHRpb25hbEJhc2U2NEVuY29kZSA6IGZhbHNlOwotICAgIHJlc291cmNlQ29udGVudChlcnJvclN0
cmluZywgZnJhbWUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBiYXNlNjRFbmNvZGUsIGNv
bnRlbnQpOworICAgIHJlc291cmNlQ29udGVudChlcnJvclN0cmluZywgZnJhbWUsIEtVUkwoUGFy
c2VkVVJMU3RyaW5nLCB1cmwpLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC00
NzgsMTMgKzQ4MywxNSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJj
ZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbgogCiAgICAgZm9yIChGcmFt
ZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT50cmF2ZXJzZU5leHQobV9wYWdlLT5tYWluRnJhbWUoKSkpIHsKICAgICAgICAgU3RyaW5n
IGNvbnRlbnQ7CisgICAgICAgIGJvb2wgYmFzZTY0RW5jb2RlZDsKICAgICAgICAgVmVjdG9yPENh
Y2hlZFJlc291cmNlKj4gYWxsUmVzb3VyY2VzID0gY2FjaGVkUmVzb3VyY2VzRm9yRnJhbWUoZnJh
bWUpOwogICAgICAgICBmb3IgKFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IGFsbFJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBhbGxSZXNvdXJjZXMuZW5kKCk7ICsr
aXQpIHsKICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9ICppdDsK
ICAgICAgICAgICAgIHN3aXRjaCAoSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5
cGUoKmNhY2hlZFJlc291cmNlKSkgewogICAgICAgICAgICAgY2FzZSBJbnNwZWN0b3JQYWdlQWdl
bnQ6OlN0eWxlc2hlZXRSZXNvdXJjZToKICAgICAgICAgICAgIGNhc2UgSW5zcGVjdG9yUGFnZUFn
ZW50OjpTY3JpcHRSZXNvdXJjZToKLSAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2VD
b250ZW50KGNhY2hlZFJlc291cmNlLCBmYWxzZSwgJmNvbnRlbnQpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGNhY2hlZFJlc291cmNlQ29udGVudChjYWNoZWRSZXNvdXJjZSwgJmNvbnRlbnQsICZi
YXNlNjRFbmNvZGVkKSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWJhc2U2NEVuY29k
ZWQpOwogICAgICAgICAgICAgICAgICAgICBpbnQgbWF0Y2hlc0NvdW50ID0gY291bnRSZWd1bGFy
RXhwcmVzc2lvbk1hdGNoZXMocmVnZXgsIGNvbnRlbnQpOwogICAgICAgICAgICAgICAgICAgICBp
ZiAobWF0Y2hlc0NvdW50KQogICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LT5wdXNoVmFs
dWUoYnVpbGRPYmplY3RGb3JTZWFyY2hNYXRjaChmcmFtZUlkKGZyYW1lKSwgY2FjaGVkUmVzb3Vy
Y2UtPnVybCgpLCBtYXRjaGVzQ291bnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCA2ODkxNjQzNTU1Njk0ZGMzMzU5NTEwODkzMzBjNjA2
OGUwY2NjMGIyLi41YTkwNTBiNjJlN2FlY2M0YjFjZGUyMGEyMDA2ZGNhZDhmYzRhZTY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC03NSw5
ICs3NSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclBhZ2VB
Z2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKik7CiAKLSAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVk
UmVzb3VyY2UqLCBib29sIHdpdGhCYXNlNjRFbmNvZGUsIFN0cmluZyogcmVzdWx0KTsKKyAgICBz
dGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBTdHJpbmcq
IHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgc3RhdGljIGJvb2wgc2hhcmVkQnVm
ZmVyQ29udGVudChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFN0cmluZyYgdGV4dEVu
Y29kaW5nTmFtZSwgYm9vbCB3aXRoQmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJlc3VsdCk7Ci0gICAg
c3RhdGljIHZvaWQgcmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwgRnJhbWUqLCBjb25zdCBL
VVJMJiwgYm9vbCBiYXNlNjRFbmNvZGUsIFN0cmluZyogcmVzdWx0KTsKKyAgICBzdGF0aWMgdm9p
ZCByZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJp
bmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHJlc291cmNlRGF0YShGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJpbmcq
IHRleHRFbmNvZGluZ05hbWUpOwogICAgIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UoRnJhbWUqLCBjb25zdCBLVVJMJik7CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBj
b29raWVzLCBXVEY6OlN0cmluZyogY29va2llc1N0cmluZyk7CiAgICAgdm9pZCBkZWxldGVDb29r
aWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZG9tYWluKTsKICAgICB2b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+Kik7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29s
KiBjb25zdCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCBnZXRSZXNv
dXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0
cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVuY29kZWQpOwogICAgIHZv
aWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBi
b29sKiBjb25zdCBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBpc1JlZ2V4LCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+Kik7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24g
QVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAKaW5kZXggZDYwOGY1YzI0MzI4ODMwMWYzMDYxNjNmMTdkMjA3MzY3ZTMxZDhhOS4u
MjllYzE1YTQxZWY2OGYxNGRmNWQ5YzNhZDhmMTc0YmMyMmJjNDU4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNDM0
LDcgKzQzNCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6aW5pdGlhbGl6ZUJhY2tn
cm91bmRDb2xsZWN0aW9uKCkKICAgICBtX21vY2tGcm9udGVuZCA9IGFkb3B0UHRyKG5ldyBJbnNw
ZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGJv
b2wqIGNvbnN0IG9wdGlvbmFsQmFzZTY0RW5jb2RlLCBTdHJpbmcqIGNvbnRlbnQpCit2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgU3RyaW5nKiBjb250ZW50LCBib29s
KiBiYXNlNjRFbmNvZGVkKQogewogICAgIE5ldHdvcmtSZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURh
dGEqIHJlc291cmNlRGF0YSA9IG1fcmVzb3VyY2VzRGF0YS0+ZGF0YShpZGVudGlmaWVyKTsKICAg
ICBpZiAoIXJlc291cmNlRGF0YSkgewpAQCAtNDQyLDIwICs0NDIsMjAgQEAgdm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCB1bnNpZ24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGJvb2wgYmFzZTY0RW5j
b2RlID0gb3B0aW9uYWxCYXNlNjRFbmNvZGUgPyAqb3B0aW9uYWxCYXNlNjRFbmNvZGUgOiBmYWxz
ZTsKLQogICAgIGlmIChyZXNvdXJjZURhdGEtPmhhc0NvbnRlbnQoKSkgeworICAgICAgICAqYmFz
ZTY0RW5jb2RlZCA9IGZhbHNlOwogICAgICAgICAqY29udGVudCA9IHJlc291cmNlRGF0YS0+Y29u
dGVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlRGF0YS0+
YnVmZmVyKCkgJiYgIXJlc291cmNlRGF0YS0+dGV4dEVuY29kaW5nTmFtZSgpLmlzTnVsbCgpKSB7
Ci0gICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1ZmZlckNvbnRlbnQocmVz
b3VyY2VEYXRhLT5idWZmZXIoKSwgcmVzb3VyY2VEYXRhLT50ZXh0RW5jb2RpbmdOYW1lKCksIGJh
c2U2NEVuY29kZSwgY29udGVudCkpCisgICAgICAgICpiYXNlNjRFbmNvZGVkID0gZmFsc2U7Cisg
ICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1ZmZlckNvbnRlbnQocmVzb3Vy
Y2VEYXRhLT5idWZmZXIoKSwgcmVzb3VyY2VEYXRhLT50ZXh0RW5jb2RpbmdOYW1lKCksICpiYXNl
NjRFbmNvZGVkLCBjb250ZW50KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAocmVzb3VyY2VEYXRhLT5jYWNoZWRSZXNvdXJjZSgpKSB7Ci0gICAgICAgIGlmIChJbnNwZWN0
b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChyZXNvdXJjZURhdGEtPmNhY2hlZFJl
c291cmNlKCksIGJhc2U2NEVuY29kZSwgY29udGVudCkpCisgICAgICAgIGlmIChJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChyZXNvdXJjZURhdGEtPmNhY2hlZFJlc291
cmNlKCksIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgKaW5kZXggODZjMGMyMzU3YmI4NmJhMzU3N2U1YWRkMGJlZDUzNzZhNzA2OWNlOC4uYjQ0
MTBiMzc1Y2FmMWQyZTZmYTYyZWZlOTk0Y2FlYmI5Y2UxOTExNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0xMTgsNyArMTE4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwogICAgIHZvaWQg
c2V0VXNlckFnZW50T3ZlcnJpZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCk7CiAgICAgdm9pZCBzZXRFeHRyYUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4pOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5n
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBib29sKiBjb25zdCBiYXNlNjRFbmNv
ZGUsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JT
dHJpbmcqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFN0cmluZyogY29udGVudCwgYm9vbCog
YmFzZTY0RW5jb2RlZCk7CiAgICAgdm9pZCBjbGVhckNhY2hlKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nKiBjb25zdCBvcHRpb25hbFByZXNlcnZlZExvYWRlcklkKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRl
eCBhYjZiYTQ4ZWMwMjgxMGYzNGJmMGZkYTUwM2Y2Nzg4YmJhYmY0YTU5Li5hMzQ1YjUzYjgzODE3
ZThhMTUxNDM4ZTFmYmMzNTVmZDFiMWMyMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMDY5LDggKzEwNjksOSBAQCBib29s
IEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlc291cmNlU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1
bHQpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBlcnJvcjsKLSAg
ICBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlQ29udGVudCgmZXJyb3IsIG93bmVyRG9jdW1l
bnQoKS0+ZnJhbWUoKSwgbV9wYWdlU3R5bGVTaGVldC0+ZmluYWxVUkwoKSwgZmFsc2UsIHJlc3Vs
dCk7Ci0gICAgcmV0dXJuIGVycm9yLmlzRW1wdHkoKTsKKyAgICBib29sIGJhc2U2NEVuY29kZWQ7
CisgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoJmVycm9yLCBvd25lckRv
Y3VtZW50KCktPmZyYW1lKCksIG1fcGFnZVN0eWxlU2hlZXQtPmZpbmFsVVJMKCksIHJlc3VsdCwg
JmJhc2U2NEVuY29kZWQpOworICAgIHJldHVybiBlcnJvci5pc0VtcHR5KCkgJiYgIWJhc2U2NEVu
Y29kZWQ7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6aW5saW5lU3R5bGVTaGVldFRl
eHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA5ZDJiYTVhNmQ0NWVlM2E2N2Yy
Yjk4NDA4ZTc1ZjYzMjAxOWEyOTNjLi4zODlkYzFiMTI0ODEzMWNiMzVjN2E1NjA0ZjRhMmUyYzNj
M2EzMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMKQEAgLTQyLDE4ICs0MiwxOCBAQCBXZWJJbnNwZWN0b3IuTmV0d29y
a01hbmFnZXIuRXZlbnRUeXBlcyA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2Vy
LnByb3RvdHlwZSA9IHsKLSAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGJh
c2U2NEVuY29kZSwgY2FsbGJhY2spCisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKHJlc291
cmNlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihl
cnJvciwgY29udGVudCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9yLCBj
b250ZW50LCBjb250ZW50RW5jb2RlZCkKICAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2so
IWVycm9yID8gY29udGVudCA6IG51bGwpOworICAgICAgICAgICAgY2FsbGJhY2soIWVycm9yID8g
Y29udGVudCA6IG51bGwsIGNvbnRlbnRFbmNvZGVkKTsKICAgICAgICAgfQogICAgICAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzYzIFdlIHNo
b3VsZCBzZXBhcmF0ZSBOZXR3b3JrUmVzb3VyY2UgKE5ldHdvcmtQYW5lbCByZXNvdXJjZSkgCiAg
ICAgICAgIC8vIGZyb20gUmVzb3VyY2VSZXZpc2lvbiAoUmVzb3VyY2VzUGFuZWwvU2NyaXB0c1Bh
bmVsIHJlc291cmNlKSBhbmQgcmVxdWVzdCBjb250ZW50IGFjY29yZGluZ2x5LgogICAgICAgICBp
ZiAocmVzb3VyY2UuaWRlbnRpZmllcikKLSAgICAgICAgICAgIE5ldHdvcmtBZ2VudC5nZXRSZXNv
dXJjZUNvbnRlbnQocmVzb3VyY2UuaWRlbnRpZmllciwgYmFzZTY0RW5jb2RlLCBjYWxsYmFja1dy
YXBwZXIpOworICAgICAgICAgICAgTmV0d29ya0FnZW50LmdldFJlc291cmNlQ29udGVudChyZXNv
dXJjZS5pZGVudGlmaWVyLCBjYWxsYmFja1dyYXBwZXIpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VDb250ZW50KHJlc291cmNlLmZyYW1lSWQsIHJlc291
cmNlLnVybCwgYmFzZTY0RW5jb2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICAgICAgUGFn
ZUFnZW50LmdldFJlc291cmNlQ29udGVudChyZXNvdXJjZS5mcmFtZUlkLCByZXNvdXJjZS51cmws
IGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfSwKIAogICAgIGluZmxpZ2h0UmVzb3VyY2VGb3JVUkw6
IGZ1bmN0aW9uKHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlLmpzCmluZGV4IDdmMTJjY2FkNWExYTQ3M2NkZTc4MTg0MzQ3MmQ0ZWE5NDg2NmNmOGUu
LjEwYmEyNzc2Y2ViODkyNmJmYWJmN2ViODUwZjBlYmFhZDE5M2RkODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtOTEyLDEwICs5MTIs
MTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRo
aXMuX2NvbnRlbnRSZXF1ZXN0ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMu
X2NvbnRlbnRSZXF1ZXN0ZWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9jb250ZW50RW5jb2RlZCA9
ICFXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5pc1RleHRUeXBlKHRoaXMudHlwZSk7CiAKLSAg
ICAgICAgZnVuY3Rpb24gb25SZXNvdXJjZUNvbnRlbnQoZGF0YSkKKyAgICAgICAgZnVuY3Rpb24g
b25SZXNvdXJjZUNvbnRlbnQoZGF0YSwgY29udGVudEVuY29kZWQpCiAgICAgICAgIHsKKyAgICAg
ICAgICAgIHRoaXMuX2NvbnRlbnRFbmNvZGVkID0gY29udGVudEVuY29kZWQ7CiAgICAgICAgICAg
ICB0aGlzLl9jb250ZW50ID0gZGF0YTsKICAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsQ29udGVu
dCA9IGRhdGE7CiAgICAgICAgICAgICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fcGVuZGluZ0NvbnRl
bnRDYWxsYmFja3Muc2xpY2UoKTsKQEAgLTkyNCw3ICs5MjQsNyBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0NvbnRlbnRDYWxs
YmFja3MubGVuZ3RoID0gMDsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb250ZW50UmVxdWVz
dGVkOwogICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5yZXF1
ZXN0Q29udGVudCh0aGlzLCB0aGlzLl9jb250ZW50RW5jb2RlZCwgb25SZXNvdXJjZUNvbnRlbnQu
YmluZCh0aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5yZXF1ZXN0
Q29udGVudCh0aGlzLCBvblJlc291cmNlQ29udGVudC5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98159</attachid>
            <date>2011-06-22 06:06:08 -0700</date>
            <delta_ts>2011-06-22 10:52:10 -0700</delta_ts>
            <desc>Patch with fix</desc>
            <filename>bug-63069-20110622170606.patch</filename>
            <type>text/plain</type>
            <size>16773</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk0MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZTk4MmQ4MTliMzVkNzQx
MDEyMzVkNThmZWE1YmRiNWZlZmQzNjA1Li5kNTkwZDUxZTQ2ZmVmNDg1MDIzNGY5ZGVkNjVjNmFl
YTc4M2E1NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDYtMjIgIFZzZXZv
bG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBsb2dpYyBmb3Ig
ZGVjaWRpbmcgd2hldGhlciByZXNvdXJjZSBjb250ZW50IHNob3VsZCBiZSBiYXNlNjQgZW5jb2Rl
ZCBvbiBiYWNrZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjMwNjkKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2VhcmNoSW5SZXNvdXJjZXMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6cmVz
b3VyY2VTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90
b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9pbm5l
clJlcXVlc3RDb250ZW50Lm9uUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5wcm90b3R5cGUuX2lubmVyUmVxdWVzdENvbnRlbnQpOgorCiAyMDExLTA2LTIy
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByODk0MDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KaW5kZXggZjZjMmRmYmY4YTRlODViODk1OGMwM2I0MGViODUzZmFhMzVlM2Uy
Zi4uMDM4MjQ5MjY3ZjNmOTFhYTAxM2NjY2Y4NGI1ODJiNGNjMzZiYjg4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTYxLDExICsxNjEsMTEgQEAKICAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZlbiBy
ZXNvdXJjZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiRnJhbWUgaWQgdG8gZ2V0IHJlc291cmNlIGZvci4iIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVS
TCBvZiB0aGUgcmVzb3VyY2UgdG8gZ2V0IGNvbnRlbnQgZm9yLiIgfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJiYXNlNjRFbmNvZGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQgcmVzb3VyY2UgY29udGVu
dCBpcyBzZXJ2ZWQgYXMgYmFzZTY0LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIHJlc291
cmNlIHRvIGdldCBjb250ZW50IGZvci4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAg
ICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRl
bnQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgY29udGVudC4i
IH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImJhc2U2NEVuY29kZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUsIGlmIGNvbnRlbnQgd2FzIHNlcnZlZCBhcyBiYXNlNjQuIiB9CiAg
ICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTQ5MCwx
MSArNDkwLDExIEBACiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VDb250ZW50
IiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRo
ZSBnaXZlbiByZXNvdXJjZS4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkZW50aWZpZXIiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIHJlc291cmNlIHRvIGdldCBjb250
ZW50IGZvci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFzZTY0RW5jb2Rl
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJS
ZXF1ZXN0cyB0aGF0IHJlc291cmNlIGNvbnRlbnQgaXMgc2VydmVkIGFzIGJhc2U2NC4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgInR5cGUiOiAiaW50ZWdl
ciIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSByZXNvdXJjZSB0byBnZXQgY29u
dGVudCBmb3IuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJu
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9CisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJSZXNvdXJjZSBjb250ZW50LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJiYXNlNjRFbmNvZGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJU
cnVlLCBpZiBjb250ZW50IHdhcyBzZXJ2ZWQgYXMgYmFzZTY0LiIgfQogICAgICAgICAgICAgICAg
IF0KICAgICAgICAgICAgIH0KICAgICAgICAgXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZWEyZTk1ZWQ2NTAxYmY5MTU4YzYzNmE2
MTdhMTBmYmVmYzMzNzYzNS4uMTRlODNkYTNjMDkxZDA3MzcxZTViNGNkOTYwZmQ2Zjg1MTg5OTY5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTExMCwxNCArMTEwLDE3IEBAIHN0YXRpYyBib29sIHByZXBhcmVDYWNoZWRSZXNvdXJj
ZUJ1ZmZlcihDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIGJvb2wqIGhhCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZUNv
bnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBib29sIHdpdGhCYXNlNjRFbmNv
ZGUsIFN0cmluZyogcmVzdWx0KQorYm9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291
cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UsIFN0cmluZyogcmVzdWx0
LCBib29sKiBiYXNlNjRFbmNvZGVkKQogewogICAgIGJvb2wgaGFzWmVyb1NpemU7CiAgICAgYm9v
bCBwcmVwYXJlZCA9IHByZXBhcmVDYWNoZWRSZXNvdXJjZUJ1ZmZlcihjYWNoZWRSZXNvdXJjZSwg
Jmhhc1plcm9TaXplKTsKICAgICBpZiAoIXByZXBhcmVkKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAod2l0aEJhc2U2NEVuY29kZSkgeworICAgIFJlc291cmNlVHlwZSB0eXBlID0g
Y2FjaGVkUmVzb3VyY2VUeXBlKCpjYWNoZWRSZXNvdXJjZSk7CisgICAgKmJhc2U2NEVuY29kZWQg
PSB0eXBlICE9IFN0eWxlc2hlZXRSZXNvdXJjZSAmJiB0eXBlICE9IFNjcmlwdFJlc291cmNlOwor
CisgICAgaWYgKCpiYXNlNjRFbmNvZGVkKSB7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGJ1ZmZlciA9IGhhc1plcm9TaXplID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IGNhY2hlZFJl
c291cmNlLT5kYXRhKCk7CiAKICAgICAgICAgaWYgKCFidWZmZXIpCkBAIC0xNzMsNyArMTc2LDcg
QEAgUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGkKIH0KIAogLy8gc3RhdGljCi12b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgYmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJl
c3VsdCkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nKiBy
ZXN1bHQsIGJvb2wqIGJhc2U2NEVuY29kZWQpCiB7CiAgICAgaWYgKCFmcmFtZSkgewogICAgICAg
ICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9yIjsK
QEAgLTE5MCwxMCArMTkzLDEzIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNv
bnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIodXJsLCBsb2FkZXItPnVybCgpKSkK
LSAgICAgICAgc3VjY2VzcyA9IG1haW5SZXNvdXJjZUNvbnRlbnQoZnJhbWUsIGJhc2U2NEVuY29k
ZSwgcmVzdWx0KTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmws
IGxvYWRlci0+dXJsKCkpKSB7CisgICAgICAgICpiYXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAg
ICAgIHN1Y2Nlc3MgPSBtYWluUmVzb3VyY2VDb250ZW50KGZyYW1lLCAqYmFzZTY0RW5jb2RlZCwg
cmVzdWx0KTsKKyAgICB9CisKICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHN1Y2Nlc3MgPSBj
YWNoZWRSZXNvdXJjZUNvbnRlbnQoY2FjaGVkUmVzb3VyY2UoZnJhbWUsIHVybCksIGJhc2U2NEVu
Y29kZSwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VzcyA9IGNhY2hlZFJlc291cmNlQ29udGVudChj
YWNoZWRSZXNvdXJjZShmcmFtZSwgdXJsKSwgcmVzdWx0LCBiYXNlNjRFbmNvZGVkKTsKIAogICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIHJlc291cmNlIHdpdGgg
Z2l2ZW4gVVJMIGZvdW5kIjsKQEAgLTQxNCwxNSArNDIwLDE0IEBAIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpnZXRSZXNvdXJjZVRyZWUoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PioKICAgICAqb2JqZWN0ID0gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUobV9wYWdlLT5tYWlu
RnJhbWUoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRl
bnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbEJhc2U2NEVuY29kZSwgU3Ry
aW5nKiBjb250ZW50KQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlQ29udGVu
dChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiB1cmwsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCkKIHsKICAg
ICBGcmFtZSogZnJhbWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOwogICAgIGlmICghZnJhbWUpIHsK
ICAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgYm9vbCBiYXNlNjRFbmNvZGUgPSBvcHRpb25hbEJh
c2U2NEVuY29kZSA/ICpvcHRpb25hbEJhc2U2NEVuY29kZSA6IGZhbHNlOwotICAgIHJlc291cmNl
Q29udGVudChlcnJvclN0cmluZywgZnJhbWUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBi
YXNlNjRFbmNvZGUsIGNvbnRlbnQpOworICAgIHJlc291cmNlQ29udGVudChlcnJvclN0cmluZywg
ZnJhbWUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBjb250ZW50LCBiYXNlNjRFbmNvZGVk
KTsKIH0KIAogc3RhdGljIFN0cmluZyBjcmVhdGVTZWFyY2hSZWdleFNvdXJjZShjb25zdCBTdHJp
bmcmIHRleHQpCkBAIC00NzgsMTMgKzQ4MywxNSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
c2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbgog
CiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9wYWdlLT5tYWluRnJhbWUoKSkpIHsK
ICAgICAgICAgU3RyaW5nIGNvbnRlbnQ7CisgICAgICAgIGJvb2wgYmFzZTY0RW5jb2RlZDsKICAg
ICAgICAgVmVjdG9yPENhY2hlZFJlc291cmNlKj4gYWxsUmVzb3VyY2VzID0gY2FjaGVkUmVzb3Vy
Y2VzRm9yRnJhbWUoZnJhbWUpOwogICAgICAgICBmb3IgKFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFsbFJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBhbGxSZXNv
dXJjZXMuZW5kKCk7ICsraXQpIHsKICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRS
ZXNvdXJjZSA9ICppdDsKICAgICAgICAgICAgIHN3aXRjaCAoSW5zcGVjdG9yUGFnZUFnZW50Ojpj
YWNoZWRSZXNvdXJjZVR5cGUoKmNhY2hlZFJlc291cmNlKSkgewogICAgICAgICAgICAgY2FzZSBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OlN0eWxlc2hlZXRSZXNvdXJjZToKICAgICAgICAgICAgIGNhc2Ug
SW5zcGVjdG9yUGFnZUFnZW50OjpTY3JpcHRSZXNvdXJjZToKLSAgICAgICAgICAgICAgICBpZiAo
Y2FjaGVkUmVzb3VyY2VDb250ZW50KGNhY2hlZFJlc291cmNlLCBmYWxzZSwgJmNvbnRlbnQpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlQ29udGVudChjYWNoZWRSZXNvdXJj
ZSwgJmNvbnRlbnQsICZiYXNlNjRFbmNvZGVkKSkgeworICAgICAgICAgICAgICAgICAgICBBU1NF
UlQoIWJhc2U2NEVuY29kZWQpOwogICAgICAgICAgICAgICAgICAgICBpbnQgbWF0Y2hlc0NvdW50
ID0gY291bnRSZWd1bGFyRXhwcmVzc2lvbk1hdGNoZXMocmVnZXgsIGNvbnRlbnQpOwogICAgICAg
ICAgICAgICAgICAgICBpZiAobWF0Y2hlc0NvdW50KQogICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0LT5wdXNoVmFsdWUoYnVpbGRPYmplY3RGb3JTZWFyY2hNYXRjaChmcmFtZUlkKGZyYW1l
KSwgY2FjaGVkUmVzb3VyY2UtPnVybCgpLCBtYXRjaGVzQ291bnQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCA2ODkxNjQzNTU1Njk0ZGMz
MzU5NTEwODkzMzBjNjA2OGUwY2NjMGIyLi41YTkwNTBiNjJlN2FlY2M0YjFjZGUyMGEyMDA2ZGNh
ZDhmYzRhZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5oCkBAIC03NSw5ICs3NSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzT3duUHRy
PEluc3BlY3RvclBhZ2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKLSAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJj
ZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBib29sIHdpdGhCYXNlNjRFbmNvZGUsIFN0cmluZyog
cmVzdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVz
b3VyY2UqLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgc3RhdGlj
IGJvb2wgc2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGNvbnN0
IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgYm9vbCB3aXRoQmFzZTY0RW5jb2RlLCBTdHJpbmcq
IHJlc3VsdCk7Ci0gICAgc3RhdGljIHZvaWQgcmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwg
RnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBiYXNlNjRFbmNvZGUsIFN0cmluZyogcmVzdWx0KTsK
KyAgICBzdGF0aWMgdm9pZCByZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBGcmFtZSosIGNv
bnN0IEtVUkwmLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNlRGF0YShGcmFtZSosIGNvbnN0
IEtVUkwmLCBTdHJpbmcqIHRleHRFbmNvZGluZ05hbWUpOwogICAgIHN0YXRpYyBDYWNoZWRSZXNv
dXJjZSogY2FjaGVkUmVzb3VyY2UoRnJhbWUqLCBjb25zdCBLVVJMJik7CkBAIC05Myw3ICs5Myw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBjb29raWVzLCBXVEY6OlN0cmluZyogY29va2llc1N0cmluZyk7CiAgICAg
dm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUs
IGNvbnN0IFN0cmluZyYgZG9tYWluKTsKICAgICB2b2lkIGdldFJlc291cmNlVHJlZShFcnJvclN0
cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+Kik7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZUNv
bnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBib29sKiBjb25zdCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCk7Cisg
ICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZy
YW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGNvbnRlbnQsIGJvb2wqIGJhc2U2NEVu
Y29kZWQpOwogICAgIHZvaWQgc2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBib29sKiBjb25zdCBjYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25z
dCBpc1JlZ2V4LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+Kik7CiAKICAgICAvLyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggZDYwOGY1YzI0MzI4ODMwMWYzMDYxNjNmMTdk
MjA3MzY3ZTMxZDhhOS4uMjllYzE1YTQxZWY2OGYxNGRmNWQ5YzNhZDhmMTc0YmMyMmJjNDU4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcApAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
aW5pdGlhbGl6ZUJhY2tncm91bmRDb2xsZWN0aW9uKCkKICAgICBtX21vY2tGcm9udGVuZCA9IGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3BlY3RvckZyb250ZW5k
UHJveHkuZ2V0KCkpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNv
dXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsQmFzZTY0RW5jb2RlLCBTdHJpbmcqIGNv
bnRlbnQpCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmdldFJlc291cmNlQ29udGVudChF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgU3RyaW5n
KiBjb250ZW50LCBib29sKiBiYXNlNjRFbmNvZGVkKQogewogICAgIE5ldHdvcmtSZXNvdXJjZXNE
YXRhOjpSZXNvdXJjZURhdGEqIHJlc291cmNlRGF0YSA9IG1fcmVzb3VyY2VzRGF0YS0+ZGF0YShp
ZGVudGlmaWVyKTsKICAgICBpZiAoIXJlc291cmNlRGF0YSkgewpAQCAtNDQyLDIwICs0NDIsMjAg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCB1bnNpZ24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGJvb2wgYmFzZTY0RW5jb2RlID0gb3B0aW9uYWxCYXNlNjRFbmNvZGUgPyAqb3B0aW9uYWxCYXNl
NjRFbmNvZGUgOiBmYWxzZTsKLQogICAgIGlmIChyZXNvdXJjZURhdGEtPmhhc0NvbnRlbnQoKSkg
eworICAgICAgICAqYmFzZTY0RW5jb2RlZCA9IGZhbHNlOwogICAgICAgICAqY29udGVudCA9IHJl
c291cmNlRGF0YS0+Y29udGVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYg
KHJlc291cmNlRGF0YS0+YnVmZmVyKCkgJiYgIXJlc291cmNlRGF0YS0+dGV4dEVuY29kaW5nTmFt
ZSgpLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1
ZmZlckNvbnRlbnQocmVzb3VyY2VEYXRhLT5idWZmZXIoKSwgcmVzb3VyY2VEYXRhLT50ZXh0RW5j
b2RpbmdOYW1lKCksIGJhc2U2NEVuY29kZSwgY29udGVudCkpCisgICAgICAgICpiYXNlNjRFbmNv
ZGVkID0gZmFsc2U7CisgICAgICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OnNoYXJlZEJ1ZmZl
ckNvbnRlbnQocmVzb3VyY2VEYXRhLT5idWZmZXIoKSwgcmVzb3VyY2VEYXRhLT50ZXh0RW5jb2Rp
bmdOYW1lKCksICpiYXNlNjRFbmNvZGVkLCBjb250ZW50KSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBpZiAocmVzb3VyY2VEYXRhLT5jYWNoZWRSZXNvdXJjZSgpKSB7Ci0gICAg
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChyZXNvdXJj
ZURhdGEtPmNhY2hlZFJlc291cmNlKCksIGJhc2U2NEVuY29kZSwgY29udGVudCkpCisgICAgICAg
IGlmIChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChyZXNvdXJjZURh
dGEtPmNhY2hlZFJlc291cmNlKCksIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggODZjMGMyMzU3YmI4NmJhMzU3N2U1YWRkMGJlZDUz
NzZhNzA2OWNlOC4uYjQ0MTBiMzc1Y2FmMWQyZTZmYTYyZWZlOTk0Y2FlYmI5Y2UxOTExNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyopOwogICAgIHZvaWQgc2V0VXNlckFnZW50T3ZlcnJpZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCBzZXRFeHRyYUhlYWRlcnMoRXJyb3JTdHJpbmcq
LCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4pOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250
ZW50KEVycm9yU3RyaW5nKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBib29sKiBj
b25zdCBiYXNlNjRFbmNvZGUsIFN0cmluZyogY29udGVudCk7CisgICAgdm9pZCBnZXRSZXNvdXJj
ZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFN0cmluZyog
Y29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgdm9pZCBjbGVhckNhY2hlKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbFByZXNlcnZlZExvYWRlcklkKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAppbmRleCBhYjZiYTQ4ZWMwMjgxMGYzNGJmMGZkYTUwM2Y2Nzg4YmJhYmY0YTU5
Li5hMzQ1YjUzYjgzODE3ZThhMTUxNDM4ZTFmYmMzNTVmZDFiMWMyMTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMDY5LDgg
KzEwNjksOSBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlc291cmNlU3R5bGVTaGVldFRl
eHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0
cmluZyBlcnJvcjsKLSAgICBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlQ29udGVudCgmZXJy
b3IsIG93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSwgbV9wYWdlU3R5bGVTaGVldC0+ZmluYWxVUkwo
KSwgZmFsc2UsIHJlc3VsdCk7Ci0gICAgcmV0dXJuIGVycm9yLmlzRW1wdHkoKTsKKyAgICBib29s
IGJhc2U2NEVuY29kZWQ7CisgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQo
JmVycm9yLCBvd25lckRvY3VtZW50KCktPmZyYW1lKCksIG1fcGFnZVN0eWxlU2hlZXQtPmZpbmFs
VVJMKCksIHJlc3VsdCwgJmJhc2U2NEVuY29kZWQpOworICAgIHJldHVybiBlcnJvci5pc0VtcHR5
KCkgJiYgIWJhc2U2NEVuY29kZWQ7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6aW5s
aW5lU3R5bGVTaGVldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA5ZDJi
YTVhNmQ0NWVlM2E2N2YyYjk4NDA4ZTc1ZjYzMjAxOWEyOTNjLi4zODlkYzFiMTI0ODEzMWNiMzVj
N2E1NjA0ZjRhMmUyYzNjM2EzMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKQEAgLTQyLDE4ICs0MiwxOCBAQCBXZWJJ
bnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcyA9IHsKIH0KIAogV2ViSW5zcGVjdG9y
Lk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZSA9IHsKLSAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rp
b24ocmVzb3VyY2UsIGJhc2U2NEVuY29kZSwgY2FsbGJhY2spCisgICAgcmVxdWVzdENvbnRlbnQ6
IGZ1bmN0aW9uKHJlc291cmNlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrV3JhcHBlcihlcnJvciwgY29udGVudCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tX
cmFwcGVyKGVycm9yLCBjb250ZW50LCBjb250ZW50RW5jb2RlZCkKICAgICAgICAgewotICAgICAg
ICAgICAgY2FsbGJhY2soIWVycm9yID8gY29udGVudCA6IG51bGwpOworICAgICAgICAgICAgY2Fs
bGJhY2soIWVycm9yID8gY29udGVudCA6IG51bGwsIGNvbnRlbnRFbmNvZGVkKTsKICAgICAgICAg
fQogICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxMzYzIFdlIHNob3VsZCBzZXBhcmF0ZSBOZXR3b3JrUmVzb3VyY2UgKE5ldHdvcmtQYW5l
bCByZXNvdXJjZSkgCiAgICAgICAgIC8vIGZyb20gUmVzb3VyY2VSZXZpc2lvbiAoUmVzb3VyY2Vz
UGFuZWwvU2NyaXB0c1BhbmVsIHJlc291cmNlKSBhbmQgcmVxdWVzdCBjb250ZW50IGFjY29yZGlu
Z2x5LgogICAgICAgICBpZiAocmVzb3VyY2UuaWRlbnRpZmllcikKLSAgICAgICAgICAgIE5ldHdv
cmtBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQocmVzb3VyY2UuaWRlbnRpZmllciwgYmFzZTY0RW5j
b2RlLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICAgICAgTmV0d29ya0FnZW50LmdldFJlc291
cmNlQ29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBjYWxsYmFja1dyYXBwZXIpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VDb250ZW50KHJlc291cmNl
LmZyYW1lSWQsIHJlc291cmNlLnVybCwgYmFzZTY0RW5jb2RlLCBjYWxsYmFja1dyYXBwZXIpOwor
ICAgICAgICAgICAgUGFnZUFnZW50LmdldFJlc291cmNlQ29udGVudChyZXNvdXJjZS5mcmFtZUlk
LCByZXNvdXJjZS51cmwsIGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfSwKIAogICAgIGluZmxpZ2h0
UmVzb3VyY2VGb3JVUkw6IGZ1bmN0aW9uKHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IDdmMTJjY2FkNWExYTQ3M2NkZTc4MTg0MzQ3
MmQ0ZWE5NDg2NmNmOGUuLjEwYmEyNzc2Y2ViODkyNmJmYWJmN2ViODUwZjBlYmFhZDE5M2RkODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Uu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpA
QCAtOTEyLDEwICs5MTIsMTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKHRoaXMuX2NvbnRlbnRSZXF1ZXN0ZWQpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIHRoaXMuX2NvbnRlbnRSZXF1ZXN0ZWQgPSB0cnVlOwotICAgICAgICB0aGlzLl9j
b250ZW50RW5jb2RlZCA9ICFXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5pc1RleHRUeXBlKHRo
aXMudHlwZSk7CiAKLSAgICAgICAgZnVuY3Rpb24gb25SZXNvdXJjZUNvbnRlbnQoZGF0YSkKKyAg
ICAgICAgZnVuY3Rpb24gb25SZXNvdXJjZUNvbnRlbnQoZGF0YSwgY29udGVudEVuY29kZWQpCiAg
ICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRFbmNvZGVkID0gY29udGVudEVuY29k
ZWQ7CiAgICAgICAgICAgICB0aGlzLl9jb250ZW50ID0gZGF0YTsKICAgICAgICAgICAgIHRoaXMu
X29yaWdpbmFsQ29udGVudCA9IGRhdGE7CiAgICAgICAgICAgICB2YXIgY2FsbGJhY2tzID0gdGhp
cy5fcGVuZGluZ0NvbnRlbnRDYWxsYmFja3Muc2xpY2UoKTsKQEAgLTkyNCw3ICs5MjQsNyBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcGVu
ZGluZ0NvbnRlbnRDYWxsYmFja3MubGVuZ3RoID0gMDsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9jb250ZW50UmVxdWVzdGVkOwogICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5uZXR3
b3JrTWFuYWdlci5yZXF1ZXN0Q29udGVudCh0aGlzLCB0aGlzLl9jb250ZW50RW5jb2RlZCwgb25S
ZXNvdXJjZUNvbnRlbnQuYmluZCh0aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3Jr
TWFuYWdlci5yZXF1ZXN0Q29udGVudCh0aGlzLCBvblJlc291cmNlQ29udGVudC5iaW5kKHRoaXMp
KTsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>