<?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>99627</bug_id>
          
          <creation_ts>2012-10-17 12:30:52 -0700</creation_ts>
          <short_desc>Move ResourceRequest construction out of SubresourceLoader</short_desc>
          <delta_ts>2012-10-17 15:55:42 -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>WebCore Misc.</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="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>744499</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-17 12:30:52 -0700</bug_when>
    <thetext>CachedResource::load() fills out a bunch of http headers.  SubresourceLoader::create() adds a bunch more.  I don&apos;t think there&apos;s a good reason for these to be set in 2 different places.  Merging them also means one less copy.

By putting everything into a helper in CachedResource, it would also be cleaner to override what headers are set for different types of resources which will be useful for adding main resources to the cache.

The downside is that it complicates CachedRawResource::canReuse().  Because a bunch of additional headers are now set on CachedResource::m_resourceRequest, we will need to be a little more careful in terms of what headers force a load from network for CachedRawResources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744505</commentid>
    <comment_count>1</comment_count>
      <attachid>169234</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-17 12:37:06 -0700</bug_when>
    <thetext>Created attachment 169234
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744561</commentid>
    <comment_count>2</comment_count>
      <attachid>169234</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 13:24:53 -0700</bug_when>
    <thetext>Comment on attachment 169234
patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Note that this merge requires a bit more care in CachedRawReosurce::canReuse(),

typo: CachedRawReosurce</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744629</commentid>
    <comment_count>3</comment_count>
      <attachid>169234</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 14:39:30 -0700</bug_when>
    <thetext>Comment on attachment 169234
patch

This looks reasonable, but this code melts my brain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744658</commentid>
    <comment_count>4</comment_count>
      <attachid>169234</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 14:56:02 -0700</bug_when>
    <thetext>Comment on attachment 169234
patch

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

&gt; Source/WebCore/loader/cache/CachedRawResource.cpp:132
&gt; +static bool shouldIgnoreHeaderForCacheReuse(AtomicString headerName)

Where did this list of headers come from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744659</commentid>
    <comment_count>5</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-17 14:57:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 169234 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169234&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedRawResource.cpp:132
&gt; &gt; +static bool shouldIgnoreHeaderForCacheReuse(AtomicString headerName)
&gt; 
&gt; Where did this list of headers come from?

It&apos;s the new headers that are set on CachedResource::m_resourceRequest, that are currently set directly or indirectly by SubsourceLoader::create() (the indirect ones are from FrameLoader::addExtraFieldsToRequest()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744663</commentid>
    <comment_count>6</comment_count>
      <attachid>169234</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 14:58:18 -0700</bug_when>
    <thetext>Comment on attachment 169234
patch

Ok.  The list of headers seems a bit hacky...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744667</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-17 15:00:08 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 169234 [details])
&gt; Ok.  The list of headers seems a bit hacky...

Yep, but I didn&apos;t have a better idea. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744669</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 15:00:48 -0700</bug_when>
    <thetext>Neither do I.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744684</commentid>
    <comment_count>9</comment_count>
      <attachid>169271</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-17 15:12:23 -0700</bug_when>
    <thetext>Created attachment 169271
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744732</commentid>
    <comment_count>10</comment_count>
      <attachid>169271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 15:55:38 -0700</bug_when>
    <thetext>Comment on attachment 169271
Patch for landing

Clearing flags on attachment: 169271

Committed r131660: &lt;http://trac.webkit.org/changeset/131660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744733</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 15:55:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169234</attachid>
            <date>2012-10-17 12:37:06 -0700</date>
            <delta_ts>2012-10-17 15:12:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>load.txt</filename>
            <type>text/plain</type>
            <size>11610</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMTMxNTEyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTIgKzMzLDkgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCi0jaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExl
YWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtODMsNDAgKzgw
LDggQEAKIAogUGFzc1JlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gU3VicmVzb3VyY2VMb2FkZXI6
OmNyZWF0ZShGcmFtZSogZnJhbWUsIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlv
bnMpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBGcmFtZUxv
YWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7Ci0gICAgaWYgKG9wdGlvbnMuc2Vj
dXJpdHlDaGVjayA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgKGZyYW1lTG9hZGVyLT5zdGF0ZSgpID09
IEZyYW1lU3RhdGVQcm92aXNpb25hbCB8fCAhZnJhbWVMb2FkZXItPmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkgfHwgZnJhbWVMb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmco
KSkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3Qg
PSByZXF1ZXN0OwotCi0gICAgLy8gTm90ZTogV2Ugc2tpcCB0aGUgQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kgY2hlY2sgaGVyZSBiZWNhdXNlIHdlIGNoZWNrCi0gICAgLy8gdGhlIENvbnRlbnQtU2Vj
dXJpdHktUG9saWN5IGF0IHRoZSBDYWNoZWRSZXNvdXJjZUxvYWRlciBsYXllciBzbyB3ZSBjYW4K
LSAgICAvLyBoYW5kbGUgZGlmZmVyZW50IHJlc291cmNlIHR5cGVzIGRpZmZlcmVudGx5LgotCi0g
ICAgU3RyaW5nIG91dGdvaW5nUmVmZXJyZXI7Ci0gICAgU3RyaW5nIG91dGdvaW5nT3JpZ2luOwot
ICAgIGlmIChyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLmlzTnVsbCgpKSB7Ci0gICAgICAgIG91dGdv
aW5nUmVmZXJyZXIgPSBmcmFtZUxvYWRlci0+b3V0Z29pbmdSZWZlcnJlcigpOwotICAgICAgICBv
dXRnb2luZ09yaWdpbiA9IGZyYW1lTG9hZGVyLT5vdXRnb2luZ09yaWdpbigpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIG91dGdvaW5nUmVmZXJyZXIgPSByZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOwot
ICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KG91dGdvaW5nUmVmZXJyZXIpLT50b1N0cmluZygpOwotICAgIH0KLQotICAgIG91dGdvaW5nUmVm
ZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS0+ZG9j
dW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgb3V0Z29pbmdSZWZlcnJl
cik7Ci0gICAgaWYgKG91dGdvaW5nUmVmZXJyZXIuaXNFbXB0eSgpKQotICAgICAgICBuZXdSZXF1
ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7Ci0gICAgZWxzZSBpZiAoIXJlcXVlc3QuaHR0cFJlZmVy
cmVyKCkpCi0gICAgICAgIG5ld1JlcXVlc3Quc2V0SFRUUFJlZmVycmVyKG91dGdvaW5nUmVmZXJy
ZXIpOwotICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQobmV3UmVxdWVzdCwg
b3V0Z29pbmdPcmlnaW4pOwotCi0gICAgZnJhbWVMb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJy
ZXNvdXJjZVJlcXVlc3QobmV3UmVxdWVzdCk7Ci0KICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2Fk
ZXI+IHN1YmxvYWRlcihhZG9wdFJlZihuZXcgU3VicmVzb3VyY2VMb2FkZXIoZnJhbWUsIHJlc291
cmNlLCBvcHRpb25zKSkpOwotICAgIGlmICghc3VibG9hZGVyLT5pbml0KG5ld1JlcXVlc3QpKQor
ICAgIGlmICghc3VibG9hZGVyLT5pbml0KHJlcXVlc3QpKQogICAgICAgICByZXR1cm4gMDsKICAg
ICByZXR1cm4gc3VibG9hZGVyLnJlbGVhc2UoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkocmV2aXNpb24gMTMxNTEyKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiS1VSTC5oIgpAQCAtNDAsNiArNDEsOCBAQAogI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNlY3VyaXR5
UG9saWN5LmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJD
b3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CkBAIC0xOTAsOCArMTkzLDU1IEBACiAgICAgICAgIG1fb3duaW5nQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPnJlbW92ZUNhY2hlZFJlc291cmNlKHRoaXMpOwogfQogCit2b2lkIENhY2hlZFJlc291cmNl
OjpmYWlsQmVmb3JlU3RhcnRpbmcoKQoreworICAgIC8vIEZJWE1FOiBXaGF0IGlmIHJlc291cmNl
cyBpbiBvdGhlciBmcmFtZXMgd2VyZSB3YWl0aW5nIGZvciB0aGlzIHJldmFsaWRhdGlvbj8KKyAg
ICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2Fubm90IHN0YXJ0IGxvYWRpbmcgJyVzJyIsIHVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CisgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRh
dGUpIAorICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZXZhbGlkYXRpb25GYWlsZWQodGhpcyk7IAor
ICAgIGVycm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOworfQorCit2b2lkIENhY2hlZFJl
c291cmNlOjphZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGNhY2hlZFJlc291cmNlTG9hZGVyKQoreworICAgIC8vIE5vdGU6IFdlIHNraXAgdGhlIENvbnRl
bnQtU2VjdXJpdHktUG9saWN5IGNoZWNrIGhlcmUgYmVjYXVzZSB3ZSBjaGVjaworICAgIC8vIHRo
ZSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBhdCB0aGUgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgbGF5
ZXIgc28gd2UgY2FuCisgICAgLy8gaGFuZGxlIGRpZmZlcmVudCByZXNvdXJjZSB0eXBlcyBkaWZm
ZXJlbnRseS4KKworICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGNhY2hlZFJlc291cmNl
TG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKTsKKyAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcjsK
KyAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW47CisgICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0Lmh0
dHBSZWZlcnJlcigpLmlzTnVsbCgpKSB7CisgICAgICAgIG91dGdvaW5nUmVmZXJyZXIgPSBmcmFt
ZUxvYWRlci0+b3V0Z29pbmdSZWZlcnJlcigpOworICAgICAgICBvdXRnb2luZ09yaWdpbiA9IGZy
YW1lTG9hZGVyLT5vdXRnb2luZ09yaWdpbigpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dGdv
aW5nUmVmZXJyZXIgPSBtX3Jlc291cmNlUmVxdWVzdC5odHRwUmVmZXJyZXIoKTsKKyAgICAgICAg
b3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvdXRnb2lu
Z1JlZmVycmVyKS0+dG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBvdXRnb2luZ1JlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgp
LCBvdXRnb2luZ1JlZmVycmVyKTsKKyAgICBpZiAob3V0Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkp
CisgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CisgICAgZWxz
ZSBpZiAoIW1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKQorICAgICAgICBtX3Jlc291
cmNlUmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7CisgICAgRnJhbWVM
b2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChtX3Jlc291cmNlUmVxdWVzdCwgb3V0Z29pbmdP
cmlnaW4pOworCisgICAgZnJhbWVMb2FkZXItPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJl
cXVlc3QobV9yZXNvdXJjZVJlcXVlc3QpOworfQorCiB2b2lkIENhY2hlZFJlc291cmNlOjpsb2Fk
KENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciwgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogeworICAgIGlmICghY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmZyYW1lKCkpIHsKKyAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBjYWNoZWRSZXNv
dXJjZUxvYWRlci0+ZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgaWYgKG9wdGlvbnMuc2VjdXJpdHlD
aGVjayA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgKGZyYW1lTG9hZGVyLT5zdGF0ZSgpID09IEZyYW1l
U3RhdGVQcm92aXNpb25hbCB8fCAhZnJhbWVMb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkg
fHwgZnJhbWVMb2FkZXItPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBpbmcoKSkpIHsK
KyAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBtX29wdGlvbnMgPSBvcHRpb25zOwogICAgIG1fbG9hZGluZyA9IHRydWU7CiAKQEAgLTIy
NSwxNCArMjc1LDExIEBACiAgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZCgiUHVycG9zZSIsICJwcmVmZXRjaCIpOwogI2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVl
c3Quc2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkpOwotICAgIAotICAgIG1fbG9hZGVyID0gcmVz
b3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKGNhY2hlZFJlc291
cmNlTG9hZGVyLT5kb2N1bWVudCgpLT5mcmFtZSgpLCB0aGlzLCBtX3Jlc291cmNlUmVxdWVzdCwg
bV9yZXNvdXJjZVJlcXVlc3QucHJpb3JpdHkoKSwgb3B0aW9ucyk7CisgICAgYWRkQWRkaXRpb25h
bFJlcXVlc3RIZWFkZXJzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKworICAgIG1fbG9hZGVyID0g
cmVzb3VyY2VMb2FkU2NoZWR1bGVyKCktPnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKGNhY2hlZFJl
c291cmNlTG9hZGVyLT5mcmFtZSgpLCB0aGlzLCBtX3Jlc291cmNlUmVxdWVzdCwgbV9yZXNvdXJj
ZVJlcXVlc3QucHJpb3JpdHkoKSwgb3B0aW9ucyk7CiAgICAgaWYgKCFtX2xvYWRlcikgewotICAg
ICAgICAvLyBGSVhNRTogV2hhdCBpZiByZXNvdXJjZXMgaW4gb3RoZXIgZnJhbWVzIHdlcmUgd2Fp
dGluZyBmb3IgdGhpcyByZXZhbGlkYXRpb24/Ci0gICAgICAgIExPRyhSZXNvdXJjZUxvYWRpbmcs
ICJDYW5ub3Qgc3RhcnQgbG9hZGluZyAnJXMnIiwgdXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0
YSgpKTsKLSAgICAgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRhdGUpIAotICAgICAgICAgICAg
bWVtb3J5Q2FjaGUoKS0+cmV2YWxpZGF0aW9uRmFpbGVkKHRoaXMpOyAKLSAgICAgICAgZXJyb3Io
Q2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7CisgICAgICAgIGZhaWxCZWZvcmVTdGFydGluZygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAkocmV2aXNpb24gMTMxNTEyKQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1
NSw2ICsyNTUsOCBAQAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBjaGVja05vdGlmeSgp
OwogCisgICAgdmlydHVhbCB2b2lkIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyhDYWNoZWRS
ZXNvdXJjZUxvYWRlciopOworCiAgICAgdm9pZCBzZXRFbmNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAg
ICAgdm9pZCBzZXREZWNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBkaWRBY2Nlc3NEZWNv
ZGVkRGF0YShkb3VibGUgdGltZVN0YW1wKTsKQEAgLTMwMSw2ICszMDMsOCBAQAogICAgIGRvdWJs
ZSBjdXJyZW50QWdlKCkgY29uc3Q7CiAgICAgZG91YmxlIGZyZXNobmVzc0xpZmV0aW1lKCkgY29u
c3Q7CiAKKyAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygpOworCiAgICAgUmVmUHRyPENhY2hl
ZE1ldGFkYXRhPiBtX2NhY2hlZE1ldGFkYXRhOwogCiAgICAgZG91YmxlIG1fbGFzdERlY29kZWRB
Y2Nlc3NUaW1lOyAvLyBVc2VkIGFzIGEgInRocmFzaCBndWFyZCIgaW4gdGhlIGNhY2hlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAJKHJldmlzaW9uIDEzMTUxMikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSYXdSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksMjQgQEAKICAg
ICAgICAgbV9sb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAorc3RhdGljIGJv
b2wgc2hvdWxkSWdub3JlSGVhZGVyRm9yQ2FjaGVSZXVzZShBdG9taWNTdHJpbmcgaGVhZGVyTmFt
ZSkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGhlYWRlcnMgdGhhdCBkb24ndCBhZmZl
Y3QgY2FjaGUgcG9saWN5IGFsbW9zdCBjZXJ0YWlubHkgaXNuJ3QgY29tcGxldGUuCisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIG1faGVhZGVycywgKCkpOwor
ICAgIGlmIChtX2hlYWRlcnMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1faGVhZGVycy5hZGQoIkFj
Y2VwdCIpOworICAgICAgICBtX2hlYWRlcnMuYWRkKCJDYWNoZS1Db250cm9sIik7CisgICAgICAg
IG1faGVhZGVycy5hZGQoIklmLU1vZGlmaWVkLVNpbmNlIik7CisgICAgICAgIG1faGVhZGVycy5h
ZGQoIklmLU5vbmUtTWF0Y2giKTsKKyAgICAgICAgbV9oZWFkZXJzLmFkZCgiT3JpZ2luIik7Cisg
ICAgICAgIG1faGVhZGVycy5hZGQoIlByYWdtYSIpOworICAgICAgICBtX2hlYWRlcnMuYWRkKCJQ
dXJwb3NlIik7CisgICAgICAgIG1faGVhZGVycy5hZGQoIlJlZmVyZXIiKTsKKyAgICAgICAgbV9o
ZWFkZXJzLmFkZCgiVXNlci1BZ2VudCIpOworICAgIH0KKyAgICByZXR1cm4gbV9oZWFkZXJzLmNv
bnRhaW5zKGhlYWRlck5hbWUpOworfQorCiBib29sIENhY2hlZFJhd1Jlc291cmNlOjpjYW5SZXVz
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKG1f
b3B0aW9ucy5zaG91bGRCdWZmZXJEYXRhID09IERvTm90QnVmZmVyRGF0YSkKQEAgLTE0MywyMiAr
MTYxLDI2IEBACiAgICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0LmFsbG93Q29va2llcygpICE9IG5l
d1JlcXVlc3QuYWxsb3dDb29raWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8v
IEVuc3VyZSBhbGwgaGVhZGVycyBtYXRjaCB0aGUgZXhpc3RpbmcgaGVhZGVycyBiZWZvcmUgY29u
dGludWluZy4KLSAgICAvLyBOb3RlIHRoYXQgb25seSBoZWFkZXJzIHNldCBieSBvdXIgY2xpZW50
IHdpbGwgYmUgcHJlc2VudCBpbiBlaXRoZXIKLSAgICAvLyBSZXNvdXJjZVJlcXVlc3QsIHNpbmNl
IFN1YnJlc291cmNlTG9hZGVyIGNyZWF0ZXMgYSBzZXBhcmF0ZSBjb3B5Ci0gICAgLy8gZm9yIGl0
cyBwdXJwb3Nlcy4KLSAgICAvLyBGSVhNRTogVGhlcmUgbWlnaHQgYmUgc29tZSBoZWFkZXJzIHRo
YXQgc2hvdWxkbid0IGJsb2NrIHJldXNlLgorICAgIC8vIEVuc3VyZSBtb3N0IGhlYWRlcnMgbWF0
Y2ggdGhlIGV4aXN0aW5nIGhlYWRlcnMgYmVmb3JlIGNvbnRpbnVpbmcuCisgICAgLy8gTm90ZSB0
aGF0IHRoZSBsaXN0IG9mIGlnbm9yZWQgaGVhZGVycyBpbmNsdWRlcyBzb21lIGhlYWRlcnMgZXhw
bGljaXRseSByZWxhdGVkIHRvIGNhY2hpbmcuCisgICAgLy8gQSBtb3JlIGRldGFpbGVkIGNoZWNr
IG9mIGNhY2hpbmcgcG9saWN5IHdpbGwgYmUgcGVyZm9ybWVkIGxhdGVyLCB0aGlzIGlzIHNpbXBs
eSBhIGxpc3Qgb2YKKyAgICAvLyBoZWFkZXJzIHRoYXQgd2UgbWlnaHQgcGVybWl0IHRvIGJlIGRp
ZmZlcmVudCBhbmQgc3RpbGwgcmV1c2UgdGhlIGV4aXN0aW5nIENhY2hlZFJlc291cmNlLgogICAg
IGNvbnN0IEhUVFBIZWFkZXJNYXAmIG5ld0hlYWRlcnMgPSBuZXdSZXF1ZXN0Lmh0dHBIZWFkZXJG
aWVsZHMoKTsKICAgICBjb25zdCBIVFRQSGVhZGVyTWFwJiBvbGRIZWFkZXJzID0gbV9yZXNvdXJj
ZVJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwotICAgIGlmIChuZXdIZWFkZXJzLnNpemUoKSAh
PSBvbGRIZWFkZXJzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSFRUUEhl
YWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbmV3SGVhZGVycy5lbmQoKTsKICAgICBmb3Ig
KEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGkgPSBuZXdIZWFkZXJzLmJlZ2luKCk7IGkg
IT0gZW5kOyArK2kpIHsKICAgICAgICAgQXRvbWljU3RyaW5nIGhlYWRlck5hbWUgPSBpLT5rZXk7
Ci0gICAgICAgIGlmIChpLT52YWx1ZSAhPSBvbGRIZWFkZXJzLmdldChoZWFkZXJOYW1lKSkKKyAg
ICAgICAgaWYgKCFzaG91bGRJZ25vcmVIZWFkZXJGb3JDYWNoZVJldXNlKGhlYWRlck5hbWUpICYm
IGktPnZhbHVlICE9IG9sZEhlYWRlcnMuZ2V0KGhlYWRlck5hbWUpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KKworICAgIGVuZCA9IG9sZEhlYWRlcnMuZW5kKCk7CisgICAgZm9y
IChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpID0gb2xkSGVhZGVycy5iZWdpbigpOyBp
ICE9IGVuZDsgKytpKSB7CisgICAgICAgIEF0b21pY1N0cmluZyBoZWFkZXJOYW1lID0gaS0+a2V5
OworICAgICAgICBpZiAoIXNob3VsZElnbm9yZUhlYWRlckZvckNhY2hlUmV1c2UoaGVhZGVyTmFt
ZSkgJiYgaS0+dmFsdWUgIT0gbmV3SGVhZGVycy5nZXQoaGVhZGVyTmFtZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMzE2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0xMC0xNyAgTmF0ZSBDaGFwaW4gIDxqYXBo
ZXRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgUmVzb3VyY2VSZXF1ZXN0IGNvbnN0cnVj
dGlvbiBvdXQgb2YgU3VicmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoKSBmaWxscyBvdXQgYSBi
dW5jaCBvZiBodHRwIGhlYWRlcnMuCisgICAgICAgIFN1YnJlc291cmNlTG9hZGVyOjpjcmVhdGUo
KSBhZGRzIGEgYnVuY2ggbW9yZS4gTWVyZ2UgdGhlbS4KKyAgICAgICAgTm90ZSB0aGF0IHRoaXMg
bWVyZ2UgcmVxdWlyZXMgYSBiaXQgbW9yZSBjYXJlIGluIENhY2hlZFJhd1Jlb3N1cmNlOjpjYW5S
ZXVzZSgpLAorICAgICAgICBiZWNhdXNlIG1vcmUgaGVhZGVycyBhcmUgc2V0IGRpcmVjdGx5IG9u
IENhY2hlZFJlc291cmNlOjptX3Jlc291cmNlUmVxdWVzdCwgcmF0aGVyCisgICAgICAgIHRoYW4g
b24gYSBjb3B5IG9mIGl0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25hbGl0
eSBjaGFuZ2UgaW50ZW5kZWQuCisKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNob3VsZElnbm9yZUhlYWRlckZvckNhY2hlUmV1c2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2FuUmV1c2UpOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZTo6ZmFpbEJlZm9yZVN0YXJ0aW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVh
ZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChDYWNoZWRSZXNvdXJj
ZSk6CisKIDIwMTItMTAtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgR3JhcGhpY3NMYXllciB2aXNpYmxlIHJlY3QgY29tcHV0YXRpb24gbmVlZHMg
dG8gdXNlIHRoZSBjdXJyZW50IGFuaW1hdGluZyB0cmFuc2Zvcm0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169271</attachid>
            <date>2012-10-17 15:12:23 -0700</date>
            <delta_ts>2012-10-17 15:55:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99627-20121017151110.patch</filename>
            <type>text/plain</type>
            <size>11815</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTE3ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBSZXNvdXJjZVJlcXVl
c3QgY29uc3RydWN0aW9uIG91dCBvZiBTdWJyZXNvdXJjZUxvYWRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk2MjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIENhY2hlZFJlc291cmNlOjpsb2FkKCkgZmlsbHMg
b3V0IGEgYnVuY2ggb2YgaHR0cCBoZWFkZXJzLgorICAgICAgICBTdWJyZXNvdXJjZUxvYWRlcjo6
Y3JlYXRlKCkgYWRkcyBhIGJ1bmNoIG1vcmUuIE1lcmdlIHRoZW0uCisgICAgICAgIE5vdGUgdGhh
dCB0aGlzIG1lcmdlIHJlcXVpcmVzIGEgYml0IG1vcmUgY2FyZSBpbiBDYWNoZWRSYXdSZXNvdXJj
ZTo6Y2FuUmV1c2UoKSwKKyAgICAgICAgYmVjYXVzZSBtb3JlIGhlYWRlcnMgYXJlIHNldCBkaXJl
Y3RseSBvbiBDYWNoZWRSZXNvdXJjZTo6bV9yZXNvdXJjZVJlcXVlc3QsIHJhdGhlcgorICAgICAg
ICB0aGFuIG9uIGEgY29weSBvZiBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGZ1bmN0
aW9uYWxpdHkgY2hhbmdlIGludGVuZGVkLgorCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpjcmVhdGUp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzaG91bGRJZ25vcmVIZWFkZXJGb3JDYWNoZVJldXNlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2U6OmZhaWxCZWZvcmVTdGFydGluZyk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjphZGRBZGRpdGlvbmFsUmVx
dWVzdEhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWQpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoQ2FjaGVk
UmVzb3VyY2UpOgorCiAyMDEyLTEwLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEdyYXBoaWNzTGF5ZXIgdmlzaWJsZSByZWN0IGNvbXB1dGF0aW9u
IG5lZWRzIHRvIHVzZSB0aGUgY3VycmVudCBhbmltYXRpbmcgdHJhbnNmb3JtCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEzMTUx
MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDEyICszMyw5IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTgzLDQwICs4MCw4IEBAIFN1YnJl
c291cmNlTG9hZGVyOjp+U3VicmVzb3VyY2VMb2FkZXIoKQogCiBQYXNzUmVmUHRyPFN1YnJlc291
cmNlTG9hZGVyPiBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBpZiAoIWZyYW1lKQotICAg
ICAgICByZXR1cm4gMDsKLQotICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IGZyYW1lLT5s
b2FkZXIoKTsKLSAgICBpZiAob3B0aW9ucy5zZWN1cml0eUNoZWNrID09IERvU2VjdXJpdHlDaGVj
ayAmJiAoZnJhbWVMb2FkZXItPnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsIHx8ICFm
cmFtZUxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSB8fCBmcmFtZUxvYWRlci0+YWN0aXZl
RG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdCA9IHJlcXVlc3Q7Ci0KLSAgICAvLyBOb3RlOiBX
ZSBza2lwIHRoZSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBjaGVjayBoZXJlIGJlY2F1c2Ugd2Ug
Y2hlY2sKLSAgICAvLyB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgYXQgdGhlIENhY2hlZFJl
c291cmNlTG9hZGVyIGxheWVyIHNvIHdlIGNhbgotICAgIC8vIGhhbmRsZSBkaWZmZXJlbnQgcmVz
b3VyY2UgdHlwZXMgZGlmZmVyZW50bHkuCi0KLSAgICBTdHJpbmcgb3V0Z29pbmdSZWZlcnJlcjsK
LSAgICBTdHJpbmcgb3V0Z29pbmdPcmlnaW47Ci0gICAgaWYgKHJlcXVlc3QuaHR0cFJlZmVycmVy
KCkuaXNOdWxsKCkpIHsKLSAgICAgICAgb3V0Z29pbmdSZWZlcnJlciA9IGZyYW1lTG9hZGVyLT5v
dXRnb2luZ1JlZmVycmVyKCk7Ci0gICAgICAgIG91dGdvaW5nT3JpZ2luID0gZnJhbWVMb2FkZXIt
Pm91dGdvaW5nT3JpZ2luKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3V0Z29pbmdSZWZlcnJl
ciA9IHJlcXVlc3QuaHR0cFJlZmVycmVyKCk7Ci0gICAgICAgIG91dGdvaW5nT3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3V0Z29pbmdSZWZlcnJlciktPnRvU3RyaW5n
KCk7Ci0gICAgfQotCi0gICAgb3V0Z29pbmdSZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5l
cmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCBy
ZXF1ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVycmVyKTsKLSAgICBpZiAob3V0Z29pbmdSZWZlcnJl
ci5pc0VtcHR5KCkpCi0gICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKLSAg
ICBlbHNlIGlmICghcmVxdWVzdC5odHRwUmVmZXJyZXIoKSkKLSAgICAgICAgbmV3UmVxdWVzdC5z
ZXRIVFRQUmVmZXJyZXIob3V0Z29pbmdSZWZlcnJlcik7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhU
VFBPcmlnaW5JZk5lZWRlZChuZXdSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbik7Ci0KLSAgICBmcmFt
ZUxvYWRlci0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChuZXdSZXF1ZXN0KTsK
LQogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gc3VibG9hZGVyKGFkb3B0UmVmKG5ldyBT
dWJyZXNvdXJjZUxvYWRlcihmcmFtZSwgcmVzb3VyY2UsIG9wdGlvbnMpKSk7Ci0gICAgaWYgKCFz
dWJsb2FkZXItPmluaXQobmV3UmVxdWVzdCkpCisgICAgaWYgKCFzdWJsb2FkZXItPmluaXQocmVx
dWVzdCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBzdWJsb2FkZXIucmVsZWFzZSgp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuY3BwCShyZXZpc2lvbiAxMzE1MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5
LDI0IEBAIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OnNldERlZmVyc0xvYWRpbmcKICAgICAgICAg
bV9sb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAorc3RhdGljIGJvb2wgc2hv
dWxkSWdub3JlSGVhZGVyRm9yQ2FjaGVSZXVzZShBdG9taWNTdHJpbmcgaGVhZGVyTmFtZSkKK3sK
KyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGhlYWRlcnMgdGhhdCBkb24ndCBhZmZlY3QgY2Fj
aGUgcG9saWN5IGFsbW9zdCBjZXJ0YWlubHkgaXNuJ3QgY29tcGxldGUuCisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIG1faGVhZGVycywgKCkpOworICAgIGlm
IChtX2hlYWRlcnMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1faGVhZGVycy5hZGQoIkFjY2VwdCIp
OworICAgICAgICBtX2hlYWRlcnMuYWRkKCJDYWNoZS1Db250cm9sIik7CisgICAgICAgIG1faGVh
ZGVycy5hZGQoIklmLU1vZGlmaWVkLVNpbmNlIik7CisgICAgICAgIG1faGVhZGVycy5hZGQoIklm
LU5vbmUtTWF0Y2giKTsKKyAgICAgICAgbV9oZWFkZXJzLmFkZCgiT3JpZ2luIik7CisgICAgICAg
IG1faGVhZGVycy5hZGQoIlByYWdtYSIpOworICAgICAgICBtX2hlYWRlcnMuYWRkKCJQdXJwb3Nl
Iik7CisgICAgICAgIG1faGVhZGVycy5hZGQoIlJlZmVyZXIiKTsKKyAgICAgICAgbV9oZWFkZXJz
LmFkZCgiVXNlci1BZ2VudCIpOworICAgIH0KKyAgICByZXR1cm4gbV9oZWFkZXJzLmNvbnRhaW5z
KGhlYWRlck5hbWUpOworfQorCiBib29sIENhY2hlZFJhd1Jlc291cmNlOjpjYW5SZXVzZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpIGNvbnN0CiB7CiAgICAgaWYgKG1fb3B0aW9u
cy5zaG91bGRCdWZmZXJEYXRhID09IERvTm90QnVmZmVyRGF0YSkKQEAgLTE0MywyMCArMTYxLDI0
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFIKICAgICBpZiAobV9y
ZXNvdXJjZVJlcXVlc3QuYWxsb3dDb29raWVzKCkgIT0gbmV3UmVxdWVzdC5hbGxvd0Nvb2tpZXMo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRW5zdXJlIGFsbCBoZWFkZXJzIG1h
dGNoIHRoZSBleGlzdGluZyBoZWFkZXJzIGJlZm9yZSBjb250aW51aW5nLgotICAgIC8vIE5vdGUg
dGhhdCBvbmx5IGhlYWRlcnMgc2V0IGJ5IG91ciBjbGllbnQgd2lsbCBiZSBwcmVzZW50IGluIGVp
dGhlcgotICAgIC8vIFJlc291cmNlUmVxdWVzdCwgc2luY2UgU3VicmVzb3VyY2VMb2FkZXIgY3Jl
YXRlcyBhIHNlcGFyYXRlIGNvcHkKLSAgICAvLyBmb3IgaXRzIHB1cnBvc2VzLgotICAgIC8vIEZJ
WE1FOiBUaGVyZSBtaWdodCBiZSBzb21lIGhlYWRlcnMgdGhhdCBzaG91bGRuJ3QgYmxvY2sgcmV1
c2UuCisgICAgLy8gRW5zdXJlIG1vc3QgaGVhZGVycyBtYXRjaCB0aGUgZXhpc3RpbmcgaGVhZGVy
cyBiZWZvcmUgY29udGludWluZy4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIGxpc3Qgb2YgaWdub3Jl
ZCBoZWFkZXJzIGluY2x1ZGVzIHNvbWUgaGVhZGVycyBleHBsaWNpdGx5IHJlbGF0ZWQgdG8gY2Fj
aGluZy4KKyAgICAvLyBBIG1vcmUgZGV0YWlsZWQgY2hlY2sgb2YgY2FjaGluZyBwb2xpY3kgd2ls
bCBiZSBwZXJmb3JtZWQgbGF0ZXIsIHRoaXMgaXMgc2ltcGx5IGEgbGlzdCBvZgorICAgIC8vIGhl
YWRlcnMgdGhhdCB3ZSBtaWdodCBwZXJtaXQgdG8gYmUgZGlmZmVyZW50IGFuZCBzdGlsbCByZXVz
ZSB0aGUgZXhpc3RpbmcgQ2FjaGVkUmVzb3VyY2UuCiAgICAgY29uc3QgSFRUUEhlYWRlck1hcCYg
bmV3SGVhZGVycyA9IG5ld1JlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOwogICAgIGNvbnN0IEhU
VFBIZWFkZXJNYXAmIG9sZEhlYWRlcnMgPSBtX3Jlc291cmNlUmVxdWVzdC5odHRwSGVhZGVyRmll
bGRzKCk7Ci0gICAgaWYgKG5ld0hlYWRlcnMuc2l6ZSgpICE9IG9sZEhlYWRlcnMuc2l6ZSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRv
ciBlbmQgPSBuZXdIZWFkZXJzLmVuZCgpOwogICAgIGZvciAoSFRUUEhlYWRlck1hcDo6Y29uc3Rf
aXRlcmF0b3IgaSA9IG5ld0hlYWRlcnMuYmVnaW4oKTsgaSAhPSBlbmQ7ICsraSkgewogICAgICAg
ICBBdG9taWNTdHJpbmcgaGVhZGVyTmFtZSA9IGktPmtleTsKLSAgICAgICAgaWYgKGktPnZhbHVl
ICE9IG9sZEhlYWRlcnMuZ2V0KGhlYWRlck5hbWUpKQorICAgICAgICBpZiAoIXNob3VsZElnbm9y
ZUhlYWRlckZvckNhY2hlUmV1c2UoaGVhZGVyTmFtZSkgJiYgaS0+dmFsdWUgIT0gb2xkSGVhZGVy
cy5nZXQoaGVhZGVyTmFtZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgZW5kID0gb2xkSGVhZGVycy5lbmQoKTsKKyAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0
X2l0ZXJhdG9yIGkgPSBvbGRIZWFkZXJzLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAg
ICAgQXRvbWljU3RyaW5nIGhlYWRlck5hbWUgPSBpLT5rZXk7CisgICAgICAgIGlmICghc2hvdWxk
SWdub3JlSGVhZGVyRm9yQ2FjaGVSZXVzZShoZWFkZXJOYW1lKSAmJiBpLT52YWx1ZSAhPSBuZXdI
ZWFkZXJzLmdldChoZWFkZXJOYW1lKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDEzMTUxMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAg
LTQwLDYgKzQxLDggQEAKICNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2lu
Y2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTkwLDggKzE5
Myw1NSBAQCBDYWNoZWRSZXNvdXJjZTo6fkNhY2hlZFJlc291cmNlKCkKICAgICAgICAgbV9vd25p
bmdDYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVtb3ZlQ2FjaGVkUmVzb3VyY2UodGhpcyk7CiB9CiAK
K3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmZhaWxCZWZvcmVTdGFydGluZygpCit7CisgICAgLy8gRklY
TUU6IFdoYXQgaWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJlIHdhaXRpbmcgZm9yIHRo
aXMgcmV2YWxpZGF0aW9uPworICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJDYW5ub3Qgc3RhcnQg
bG9hZGluZyAnJXMnIiwgdXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKKyAgICBpZiAo
bV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSkgCisgICAgICAgIG1lbW9yeUNhY2hlKCktPnJldmFsaWRh
dGlvbkZhaWxlZCh0aGlzKTsgCisgICAgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OkxvYWRFcnJvcik7
Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyhD
YWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpCit7CisgICAgLy8gTm90
ZTogV2Ugc2tpcCB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgY2hlY2sgaGVyZSBiZWNhdXNl
IHdlIGNoZWNrCisgICAgLy8gdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGF0IHRoZSBDYWNo
ZWRSZXNvdXJjZUxvYWRlciBsYXllciBzbyB3ZSBjYW4KKyAgICAvLyBoYW5kbGUgZGlmZmVyZW50
IHJlc291cmNlIHR5cGVzIGRpZmZlcmVudGx5LgorCisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9h
ZGVyID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPmZyYW1lKCktPmxvYWRlcigpOworICAgIFN0cmlu
ZyBvdXRnb2luZ1JlZmVycmVyOworICAgIFN0cmluZyBvdXRnb2luZ09yaWdpbjsKKyAgICBpZiAo
bV9yZXNvdXJjZVJlcXVlc3QuaHR0cFJlZmVycmVyKCkuaXNOdWxsKCkpIHsKKyAgICAgICAgb3V0
Z29pbmdSZWZlcnJlciA9IGZyYW1lTG9hZGVyLT5vdXRnb2luZ1JlZmVycmVyKCk7CisgICAgICAg
IG91dGdvaW5nT3JpZ2luID0gZnJhbWVMb2FkZXItPm91dGdvaW5nT3JpZ2luKCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgb3V0Z29pbmdSZWZlcnJlciA9IG1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpOworICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpLT50b1N0cmluZygpOworICAgIH0KKworICAg
IG91dGdvaW5nUmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRl
cihjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgbV9y
ZXNvdXJjZVJlcXVlc3QudXJsKCksIG91dGdvaW5nUmVmZXJyZXIpOworICAgIGlmIChvdXRnb2lu
Z1JlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgbV9yZXNvdXJjZVJlcXVlc3QuY2xlYXJIVFRQ
UmVmZXJyZXIoKTsKKyAgICBlbHNlIGlmICghbV9yZXNvdXJjZVJlcXVlc3QuaHR0cFJlZmVycmVy
KCkpCisgICAgICAgIG1fcmVzb3VyY2VSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1Jl
ZmVycmVyKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKG1fcmVzb3Vy
Y2VSZXF1ZXN0LCBvdXRnb2luZ09yaWdpbik7CisKKyAgICBmcmFtZUxvYWRlci0+YWRkRXh0cmFG
aWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdCk7Cit9CisKIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNl
TG9hZGVyLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiB7CisgICAgaWYg
KCFjYWNoZWRSZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSkgeworICAgICAgICBmYWlsQmVmb3JlU3Rh
cnRpbmcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEZyYW1lTG9hZGVyKiBmcmFt
ZUxvYWRlciA9IGNhY2hlZFJlc291cmNlTG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKTsKKyAgICBp
ZiAob3B0aW9ucy5zZWN1cml0eUNoZWNrID09IERvU2VjdXJpdHlDaGVjayAmJiAoZnJhbWVMb2Fk
ZXItPnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsIHx8ICFmcmFtZUxvYWRlci0+YWN0
aXZlRG9jdW1lbnRMb2FkZXIoKSB8fCBmcmFtZUxvYWRlci0+YWN0aXZlRG9jdW1lbnRMb2FkZXIo
KS0+aXNTdG9wcGluZygpKSkgeworICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fb3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgbV9sb2Fk
aW5nID0gdHJ1ZTsKIApAQCAtMjI1LDE0ICsyNzUsMTEgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6
bG9hZChDYWNoZWRSZXNvdXJjZQogICAgICAgICBtX3Jlc291cmNlUmVxdWVzdC5zZXRIVFRQSGVh
ZGVyRmllbGQoIlB1cnBvc2UiLCAicHJlZmV0Y2giKTsKICNlbmRpZgogICAgIG1fcmVzb3VyY2VS
ZXF1ZXN0LnNldFByaW9yaXR5KGxvYWRQcmlvcml0eSgpKTsKLSAgICAKLSAgICBtX2xvYWRlciA9
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRS
ZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdGhpcywgbV9yZXNvdXJjZVJlcXVl
c3QsIG1fcmVzb3VyY2VSZXF1ZXN0LnByaW9yaXR5KCksIG9wdGlvbnMpOworICAgIGFkZEFkZGl0
aW9uYWxSZXF1ZXN0SGVhZGVycyhjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisKKyAgICBtX2xvYWRl
ciA9IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNo
ZWRSZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdGhpcywgbV9yZXNvdXJjZVJlcXVlc3QsIG1fcmVz
b3VyY2VSZXF1ZXN0LnByaW9yaXR5KCksIG9wdGlvbnMpOwogICAgIGlmICghbV9sb2FkZXIpIHsK
LSAgICAgICAgLy8gRklYTUU6IFdoYXQgaWYgcmVzb3VyY2VzIGluIG90aGVyIGZyYW1lcyB3ZXJl
IHdhaXRpbmcgZm9yIHRoaXMgcmV2YWxpZGF0aW9uPwotICAgICAgICBMT0coUmVzb3VyY2VMb2Fk
aW5nLCAiQ2Fubm90IHN0YXJ0IGxvYWRpbmcgJyVzJyIsIHVybCgpLnN0cmluZygpLmxhdGluMSgp
LmRhdGEoKSk7Ci0gICAgICAgIGlmIChtX3Jlc291cmNlVG9SZXZhbGlkYXRlKSAKLSAgICAgICAg
ICAgIG1lbW9yeUNhY2hlKCktPnJldmFsaWRhdGlvbkZhaWxlZCh0aGlzKTsgCi0gICAgICAgIGVy
cm9yKENhY2hlZFJlc291cmNlOjpMb2FkRXJyb3IpOworICAgICAgICBmYWlsQmVmb3JlU3RhcnRp
bmcoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHJldmlzaW9uIDEzMTUxMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTUsNiArMjU1LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBj
aGVja05vdGlmeSgpOwogCisgICAgdmlydHVhbCB2b2lkIGFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVh
ZGVycyhDYWNoZWRSZXNvdXJjZUxvYWRlciopOworCiAgICAgdm9pZCBzZXRFbmNvZGVkU2l6ZSh1
bnNpZ25lZCk7CiAgICAgdm9pZCBzZXREZWNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBk
aWRBY2Nlc3NEZWNvZGVkRGF0YShkb3VibGUgdGltZVN0YW1wKTsKQEAgLTMwMSw2ICszMDMsOCBA
QCBwcml2YXRlOgogICAgIGRvdWJsZSBjdXJyZW50QWdlKCkgY29uc3Q7CiAgICAgZG91YmxlIGZy
ZXNobmVzc0xpZmV0aW1lKCkgY29uc3Q7CiAKKyAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygp
OworCiAgICAgUmVmUHRyPENhY2hlZE1ldGFkYXRhPiBtX2NhY2hlZE1ldGFkYXRhOwogCiAgICAg
ZG91YmxlIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lOyAvLyBVc2VkIGFzIGEgInRocmFzaCBndWFy
ZCIgaW4gdGhlIGNhY2hlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>