<?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>177710</bug_id>
          
          <creation_ts>2017-09-30 17:50:39 -0700</creation_ts>
          <short_desc>Don&apos;t reveal file URL when pasting an image</short_desc>
          <delta_ts>2017-10-02 14:41:49 -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>HTML Editing</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1354948</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 17:50:39 -0700</bug_when>
    <thetext>When pasting an image, we shouldn&apos;t reveal its local file path in text/plain or text/uri-list.
In fact, we should just hide all non-file types as we do for drag &amp; drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354949</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-30 17:51:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/34757924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354950</commentid>
    <comment_count>2</comment_count>
      <attachid>322305</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 17:58:56 -0700</bug_when>
    <thetext>Created attachment 322305
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354951</commentid>
    <comment_count>3</comment_count>
      <attachid>322305</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-30 18:11:39 -0700</bug_when>
    <thetext>Comment on attachment 322305
Fixes the bug

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

&gt; Source/WebCore/platform/StaticPasteboard.h:61
&gt; +    bool containsFiles() final { return 0; }

I prefer `return false`, since the return type is a bool.

&gt; Source/WebCore/platform/cocoa/PasteboardCocoa.mm:163
&gt; +    // Enforce changeCount ourselves for security. We check after reading instead of before to be

It seems this piece of code (and comment) keeps popping up in multiple places in this file :/ Now that we have a PasteboardCocoa.mm, it seems we should pull this out into a separate helper in this file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354965</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 21:27:08 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; Comment on attachment 322305 [details]
&gt; Fixes the bug
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=322305&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/StaticPasteboard.h:61
&gt; &gt; +    bool containsFiles() final { return 0; }
&gt; 
&gt; I prefer `return false`, since the return type is a bool.

Oops, I meant to use &quot;false&quot; there.

&gt; &gt; Source/WebCore/platform/cocoa/PasteboardCocoa.mm:163
&gt; &gt; +    // Enforce changeCount ourselves for security. We check after reading instead of before to be
&gt; 
&gt; It seems this piece of code (and comment) keeps popping up in multiple
&gt; places in this file :/ Now that we have a PasteboardCocoa.mm, it seems we
&gt; should pull this out into a separate helper in this file?

Perhaps. We probably need a function that takes lambda to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354966</commentid>
    <comment_count>5</comment_count>
      <attachid>322312</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 21:28:06 -0700</bug_when>
    <thetext>Created attachment 322312
Replaced 0 by false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354967</commentid>
    <comment_count>6</comment_count>
      <attachid>322312</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-30 21:40:01 -0700</bug_when>
    <thetext>Comment on attachment 322312
Replaced 0 by false

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

&gt; Source/WebCore/dom/DataTransfer.cpp:178
&gt; +    if (m_pasteboard-&gt;containsFiles())

Heads up: with this change, we might need to rebaseline the API test DataInteractionTests.DataTransferGetDataWhenDroppingImageWithFileURL to remove the @&quot;text/uri-list&quot;: @&quot;&quot; expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354968</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 21:40:37 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #6)
&gt; Comment on attachment 322312 [details]
&gt; Replaced 0 by false
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=322312&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransfer.cpp:178
&gt; &gt; +    if (m_pasteboard-&gt;containsFiles())
&gt; 
&gt; Heads up: with this change, we might need to rebaseline the API test
&gt; DataInteractionTests.DataTransferGetDataWhenDroppingImageWithFileURL to
&gt; remove the @&quot;text/uri-list&quot;: @&quot;&quot; expectation.

Oh that&apos;s a good point. Let me check that...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354973</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 23:00:01 -0700</bug_when>
    <thetext>Looks like there&apos;s a slight issue with PlatformPasteboard::numberOfFiles() in iOS. We need to replace numberOfFiles with droppedFileURLs&apos;s size instead. It claims to have a file even when it&apos;s just a text content and won&apos;t return a file URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354974</commentid>
    <comment_count>9</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-30 23:09:44 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #8)
&gt; Looks like there&apos;s a slight issue with PlatformPasteboard::numberOfFiles()
&gt; in iOS. We need to replace numberOfFiles with droppedFileURLs&apos;s size
&gt; instead. It claims to have a file even when it&apos;s just a text content and
&gt; won&apos;t return a file URL.

Hmm...-droppedFileURLs will return 0 prior to the drop. If we just return -droppedFileURLs in PlatformPasteboard::numberOfFiles, I suspect that we would break  uploading by dropping into inputs of type file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354975</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 23:14:26 -0700</bug_when>
    <thetext>Actually, I think I was misreading the test. DataTransferGetDataWhenDroppingRespectsPresentationStyle should return &quot;Files&quot; now because it&apos;s doing registerFileRepresentationForTypeIdentifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354976</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 23:17:20 -0700</bug_when>
    <thetext>Rather, the actual observation is that there are two test cases in DataTransferGetDataWhenDroppingRespectsPresentationStyle, and the one with UIPreferredPresentationStyleAttachment needs to be rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354977</commentid>
    <comment_count>12</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-30 23:19:08 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #11)
&gt; Rather, the actual observation is that there are two test cases in
&gt; DataTransferGetDataWhenDroppingRespectsPresentationStyle, and the one with
&gt; UIPreferredPresentationStyleAttachment needs to be rebaselined.

Yes, that&apos;s correct. A bit more detail: this test involves two parts: (1) dropping an item provider containing text, with UIPreferredPresentationStyleAttachment set and (2) dropping an item provider containing text, with UIPreferredPresentationStyleInline set. The fact that -registerFileRepresentationForTypeIdentifier is used to supply the data is actually not important.

The former simulates dropping a text file (e.g. from Files.app) while the latter involves dropping a text selection. I would expect &quot;Files&quot; to appear in the list of types in the former case, but not the latter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354978</commentid>
    <comment_count>13</comment_count>
      <attachid>322313</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-30 23:20:11 -0700</bug_when>
    <thetext>Created attachment 322313
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354982</commentid>
    <comment_count>14</comment_count>
      <attachid>322313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-30 23:59:03 -0700</bug_when>
    <thetext>Comment on attachment 322313
Patch for landing

Clearing flags on attachment: 322313

Committed r222688: &lt;http://trac.webkit.org/changeset/222688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354983</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-30 23:59:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355331</commentid>
    <comment_count>16</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-10-02 11:12:00 -0700</bug_when>
    <thetext>API test DataInteractionTests.ExternalSourceDataTransferItemGetPlainTextFileAsEntry is failing on iOS after this change:

/Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm:1063
Value of: [webView stringByEvaluatingJavaScript:@&quot;output.value&quot;]
  Actual: &quot;Found data transfer item (kind: &apos;string&apos;, type: &apos;text/plain&apos;)
Found data transfer item (kind: &apos;file&apos;, type: &apos;text/plain&apos;)
FILE: /foo.txt (&apos;text/plain&apos;, 28 bytes)&quot;
Expected: [expectedOutput componentsJoinedByString:@&quot;\n&quot;]
Which is: &quot;Found data transfer item (kind: &apos;file&apos;, type: &apos;text/plain&apos;)
FILE: /foo.txt (&apos;text/plain&apos;, 28 bytes)&quot;

https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Release%20WK2%20%28Tests%29/builds/219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355384</commentid>
    <comment_count>17</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-10-02 12:06:04 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #16)
&gt; API test
&gt; DataInteractionTests.ExternalSourceDataTransferItemGetPlainTextFileAsEntry
&gt; is failing on iOS after this change:
&gt; 
&gt; /Volumes/Data/slave/ios-simulator-11-release/build/Tools/TestWebKitAPI/Tests/
&gt; ios/DataInteractionTests.mm:1063
&gt; Value of: [webView stringByEvaluatingJavaScript:@&quot;output.value&quot;]
&gt;   Actual: &quot;Found data transfer item (kind: &apos;string&apos;, type: &apos;text/plain&apos;)
&gt; Found data transfer item (kind: &apos;file&apos;, type: &apos;text/plain&apos;)
&gt; FILE: /foo.txt (&apos;text/plain&apos;, 28 bytes)&quot;
&gt; Expected: [expectedOutput componentsJoinedByString:@&quot;\n&quot;]
&gt; Which is: &quot;Found data transfer item (kind: &apos;file&apos;, type: &apos;text/plain&apos;)
&gt; FILE: /foo.txt (&apos;text/plain&apos;, 28 bytes)&quot;
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20iOS%2011%20Simulator%20Release%20WK2%20%28Tests%29/builds/219

I suspect this is because the custom pasteboard data is not enabled for these iOS 11 bots; we should ifdef this test out, like the other DataTransfer(Get|Set)Data tests in this file. We still have coverage on internal bots, and API tests are not run in EWS anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355513</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-10-02 14:41:49 -0700</bug_when>
    <thetext>The API tests have been skipped in https://trac.webkit.org/changeset/222743.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322305</attachid>
            <date>2017-09-30 17:58:56 -0700</date>
            <delta_ts>2017-09-30 21:28:04 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-177710-20170930175853.patch</filename>
            <type>text/plain</type>
            <size>11856</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjY4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTMwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERvbid0IHJldmVhbCBmaWxlIFVS
TCB3aGVuIHBhc3RpbmcgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NzcxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3NTc5MjQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZWQg
dGhlIGJ1ZyBieSBnZW5lcmFsaXppbmcgdGhlIGNvZGUgd2UgaGFkIGZvciBkcmFnICYgZHJvcCB0
byBoaWRlIHN0cmluZyB0eXBlcyB3aGVuIHRoZXJlIGlzIGEgZmlsZS4KKworICAgICAgICBXZSBk
b24ndCBoaWRlIHN0cmluZyB0eXBlcyB3aGVuIGN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgp
IGlzIGZhbHNlIHRvIHByZXNlcnZlIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJsaXR5CisgICAgICAg
IHdpdGggYXBwcyB0aGF0IGFyZSByZWx5aW5nIG9uIGJlaW5nIGFibGUgdG8gcmVhZCBmaWxlcyBV
UkxzIGluIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1pbWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbAorCisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6Omdl
dERhdGEgY29uc3QpOiBQcmV0ZW5kIHRoZXJlIGlzIG5vIHN0cmluZyBkYXRhIHdoZW4gdGhlcmUg
aXMgYSBmaWxlIGluIHRoZSBwYXN0ZWJvYXJkCisgICAgICAgIGN1c3RvbSBwYXN0ZWJvYXJkIGRh
dGEgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6c2V0RGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjp0eXBlcyBjb25zdCk6IERp
dHRvLgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlcjo6Zm9yRHJhZyBjb25zdCk6IEFkZGVkIGZvciB3aGVuIGRyYWcgJiBkcm9wIHN1
cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsYXRpb24gdGltZS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlcjo6Zm9yRmlsZURyYWcgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpjb250YWluc0ZpbGVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Bhc3Rl
Ym9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y29udGFpbnNGaWxl
cyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBbm5vdGF0ZWQgdGhpcyBm
dW5jdGlvbiB3aXRoIG5vdEltcGxlbWVudGVkKCkuCisKIDIwMTctMDktMzAgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIEFQSSB0ZXN0
IEVkaXRvclN0YXRlVGVzdHMuQ29udGVudFZpZXdIYXNUZXh0SW5Db250ZW50RWRpdGFibGVFbGVt
ZW50IGlzIGEgZmxha3kgZmFpbHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5j
cHAJKHJldmlzaW9uIDIyMjY4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTAgKzEzNyw4IEBAIFN0cmluZyBEYXRhVHJhbnNm
ZXI6OmdldERhdGEoY29uc3QgU3RyaW4KICAgICBpZiAoIWNhblJlYWREYXRhKCkpCiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgaWYgKGZv
ckZpbGVEcmFnKCkgJiYgbV9wYXN0ZWJvYXJkLT5yZWFkRmlsZW5hbWVzKCkuc2l6ZSgpKQorICAg
IGlmICgoZm9yRmlsZURyYWcoKSB8fCBTZXR0aW5nczo6Y3VzdG9tUGFzdGVib2FyZERhdGFFbmFi
bGVkKCkpICYmIG1fcGFzdGVib2FyZC0+Y29udGFpbnNGaWxlcygpKQogICAgICAgICByZXR1cm4g
eyB9OwotI2VuZGlmCiAKICAgICBhdXRvIG5vcm1hbGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZSh0
eXBlKTsKICAgICBpZiAoU2V0dGluZ3M6OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpICYm
ICFQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUobm9ybWFsaXplZFR5
cGUpKQpAQCAtMTUzLDEwICsxNTEsOCBAQCB2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RGF0YShjb25z
dCBTdHJpbmcmCiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwogCi0j
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAoZm9yRmlsZURyYWcoKSAmJiBtX3Bhc3Rl
Ym9hcmQtPnJlYWRGaWxlbmFtZXMoKS5zaXplKCkpCisgICAgaWYgKChmb3JGaWxlRHJhZygpIHx8
IFNldHRpbmdzOjpjdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoKSkgJiYgbV9wYXN0ZWJvYXJk
LT5jb250YWluc0ZpbGVzKCkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgU3RyaW5n
IG5vcm1hbGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZSh0eXBlKTsKICAgICBtX3Bhc3RlYm9hcmQt
PndyaXRlU3RyaW5nKG5vcm1hbGl6ZWRUeXBlLCBkYXRhKTsKQEAgLTE3NSw4ICsxNzEsMTMgQEAg
VmVjdG9yPFN0cmluZz4gRGF0YVRyYW5zZmVyOjp0eXBlcygpIGNvbgogewogICAgIGlmICghY2Fu
UmVhZFR5cGVzKCkpCiAgICAgICAgIHJldHVybiB7IH07Ci0KLSAgICByZXR1cm4gU2V0dGluZ3M6
OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpID8gbV9wYXN0ZWJvYXJkLT50eXBlc1NhZmVG
b3JCaW5kaW5ncygpIDogbV9wYXN0ZWJvYXJkLT50eXBlc0ZvckxlZ2FjeVVuc2FmZUJpbmRpbmdz
KCk7CisgICAgCisgICAgaWYgKCFTZXR0aW5nczo6Y3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzRm9yTGVnYWN5VW5zYWZlQmlu
ZGluZ3MoKTsKKworICAgIGlmIChtX3Bhc3RlYm9hcmQtPmNvbnRhaW5zRmlsZXMoKSkKKyAgICAg
ICAgcmV0dXJuIHsgIkZpbGVzIiB9OworICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzU2Fm
ZUZvckJpbmRpbmdzKCk7CiB9CiAKIEZpbGVMaXN0JiBEYXRhVHJhbnNmZXI6OmZpbGVzKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJKHJldmlzaW9uIDIyMjY4MikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDYgKzEwNiw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29s
IGZvckRyYWcoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RHJhZ0FuZERyb3BEYXRh
IHx8IG1fdHlwZSA9PSBUeXBlOjpEcmFnQW5kRHJvcEZpbGVzOyB9CiAgICAgYm9vbCBmb3JGaWxl
RHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpEcmFnQW5kRHJvcEZpbGVzOyB9
CisjZWxzZQorICAgIGJvb2wgZm9yRHJhZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCBmb3JGaWxlRHJhZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAg
IFN0b3JlTW9kZSBtX3N0b3JlTW9kZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmgJKHJldmlzaW9uIDIyMjY4MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAgdmlydHVhbCB2
b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiAKKyAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnNGaWxlcygpOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gcmVhZEZpbGVu
YW1lcygpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TbWFydFJlcGxhY2UoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAkocmV2aXNpb24gMjIyNjgy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQmKSBmaW5hbCB7IH0KIAorICAgIGJvb2wgY29udGFpbnNGaWxlcygpIGZpbmFs
IHsgcmV0dXJuIDA7IH0KICAgICBWZWN0b3I8U3RyaW5nPiByZWFkRmlsZW5hbWVzKCkgZmluYWwg
eyByZXR1cm4geyB9OyB9CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2UoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJv
YXJkQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tCShyZXZpc2lvbiAyMjI2ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2
ICsxNTEsMjMgQEAgVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXNUcmVhdGVkQQogICAg
IHJldHVybiB0eXBlczsKIH0KIAorYm9vbCBQYXN0ZWJvYXJkOjpjb250YWluc0ZpbGVzKCkKK3sK
KyAgICBpZiAoIXBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0
TnVtYmVyT2ZGaWxlcyhtX3Bhc3RlYm9hcmROYW1lKSkgeworICAgICAgICBWZWN0b3I8U3RyaW5n
PiBjb2NvYVR5cGVzOworICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKGNvY29hVHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOworICAgICAg
ICBpZiAoY29jb2FUeXBlcy5maW5kTWF0Y2hpbmcoW10oY29uc3QgU3RyaW5nJiBjb2NvYVR5cGUp
IHsgcmV0dXJuIHNob3VsZFRyZWF0Q29jb2FUeXBlQXNGaWxlKGNvY29hVHlwZSk7IH0pID09IG5v
dEZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEVuZm9y
Y2UgY2hhbmdlQ291bnQgb3Vyc2VsdmVzIGZvciBzZWN1cml0eS4gV2UgY2hlY2sgYWZ0ZXIgcmVh
ZGluZyBpbnN0ZWFkIG9mIGJlZm9yZSB0byBiZQorICAgIC8vIHN1cmUgaXQgZG9lc24ndCBjaGFu
Z2UgYmV0d2VlbiBvdXIgdGVzdGluZyB0aGUgY2hhbmdlIGNvdW50IGFuZCBhY2Nlc3NpbmcgdGhl
IGRhdGEuCisgICAgaWYgKG1fY2hhbmdlQ291bnQgIT0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5jaGFuZ2VDb3VudChtX3Bhc3RlYm9hcmROYW1lKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIFZlY3RvcjxTdHJpbmc+
IFBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckJpbmRpbmdzKCkKIHsKICAgICBWZWN0b3I8U3RyaW5n
PiB0eXBlcyA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+dHlw
ZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUobV9wYXN0ZWJvYXJkTmFtZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCShyZXZpc2lvbiAy
MjI2ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxOSw2ICszMTksMTEgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnJl
YWRTdHJpbmdJbkN1c3RvbURhdAogICAgIHJldHVybiB7IH07CiB9CiAKK2Jvb2wgUGFzdGVib2Fy
ZDo6Y29udGFpbnNGaWxlcygpCit7CisgICAgcmV0dXJuIHJlYWRGaWxlbmFtZXMoKS5zaXplKCk7
Cit9CisKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQogewogICAg
IHJlYWRGcm9tQ2xpcGJvYXJkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
UGFzdGVib2FyZFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCShyZXZpc2lvbiAyMjI2ODIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNCw2
ICszMTQsMTEgQEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmdJbkN1c3RvbURhdAogICAg
IHJldHVybiB7IH07CiB9CiAKK2Jvb2wgUGFzdGVib2FyZDo6Y29udGFpbnNGaWxlcygpCit7Cisg
ICAgcmV0dXJuIHJlYWRGaWxlbmFtZXMoKS5zaXplKCk7IC8vIEZJWE1FOiBNYWtlIHRoaXMgY29k
ZSBtb3JlIGVmZmljaWVudC4KK30KKwogVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZp
bGVuYW1lcygpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAkocmV2aXNpb24gMjIy
NjgyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjQsOCArMTI0LDE1IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUo
Y29uc3QgUGFzdGVib2FyZFcKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOwogfQogCitib29sIFBhc3RlYm9h
cmQ6OmNvbnRhaW5zRmlsZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkK
IHsKKyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOwog
fQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjI2ODIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wOS0zMCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBEb24ndCByZXZlYWwgZmlsZSBVUkwgd2hl
biBwYXN0aW5nIGFuIGltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzc3MTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0NzU3OTI0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcmVn
cmVzc2lvbiB0ZXN0IGZvciBwYXN0aW5nIGFuIGltYWdlLiBXZSBlbmFibGUgdGhpcyBwcm90ZWN0
aW9uIG9ubHkgd2hlbiBjdXN0b20gZGF0YSBpcyBlbmFibGVkCisgICAgICAgIHRvIHByZXNlcnZl
IHRoZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS1pbWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3Qt
cmV2ZWFsLWZpbGUtdXJsLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA5LTMwICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBVcGdy
YWRlIHdlYmtpdGd0ay10ZXN0LWZvbnRzIHRvIHZlcnNpb24gMC4wLjcuCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUt
dXJsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1h
Z2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0IHBhc3RpbmcgaW1hZ2VzIGRvIG5vdCByZXZlYWwg
aXRzIGZpbGUgVVJMLiBUbyBtYW51YWxseSB0ZXN0LCBjb3B5IHRoZSBpbWFnZSBiZWxvdyBpbiB0
aGUgY29udGV4dCBtZW51IGFuZCBwYXN0ZSBpbnRvIHRoZSByZWQgYm94LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBKU09OLnN0cmluZ2lmeShldmVudC5jbGlwYm9hcmRE
YXRhLnR5cGVzKSBpcyAiW1wiRmlsZXNcIl0iCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0
RGF0YSgidXJsIikgaXMgIiIKK1BBU1MgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0
L3BsYWluIikgaXMgIiIKK1BBU1MgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3Vy
aS1saXN0IikgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1p
bWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUt
dXJsLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGRpdiBp
ZD0iZGVzdGluYXRpb24iIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgb25wYXN0ZT0iY2hlY2soZXZl
bnQpIiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4OyBib3JkZXI6IHNvbGlkIHJl
ZCAxcHgiPjwvZGl2PgorPGlmcmFtZSBpZD0iaWZyYW1lIiBzcmM9Ii4uL3Jlc291cmNlcy9hYmUu
cG5nIiBvbmxvYWQ9InJ1blRlc3QoKSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8c2NyaXB0PgorCitp
ZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRDdXN0b21Q
YXN0ZWJvYXJkRGF0YUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFBy
ZWZlck1JTUVUeXBlRm9ySW1hZ2VzKHRydWUpOworfQorCitkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBwYXN0aW5nIGltYWdlcyBkbyBub3QgcmV2ZWFsIGl0cyBmaWxlIFVSTC4gVG8gbWFudWFsbHkg
dGVzdCwgY29weSB0aGUgaW1hZ2UgYmVsb3cgaW4gdGhlIGNvbnRleHQgbWVudSBhbmQgcGFzdGUg
aW50byB0aGUgcmVkIGJveC4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICByZXR1cm47
CisKKyAgICBjb25zdCBpZnJhbWVEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
ZnJhbWUiKS5jb250ZW50RG9jdW1lbnQ7CisgICAgaWZyYW1lRG9jdW1lbnQuYm9keS5mb2N1cygp
OworICAgIGlmcmFtZURvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKKyAgICBpZnJh
bWVEb2N1bWVudC5leGVjQ29tbWFuZCgiQ29weSIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRlc3RpbmF0aW9uIikuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgi
UGFzdGUiKTsKK30KKworZnVuY3Rpb24gY2hlY2soZXZlbnQpCit7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdKU09OLnN0cmluZ2lmeShldmVudC5jbGlwYm9hcmREYXRhLnR5cGVzKScsICdb
IkZpbGVzIl0nKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LmNsaXBib2FyZERh
dGEuZ2V0RGF0YSgidXJsIiknLCAnJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVu
dC5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvcGxhaW4iKScsICcnKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC91cmktbGlz
dCIpJywgJycpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322312</attachid>
            <date>2017-09-30 21:28:06 -0700</date>
            <delta_ts>2017-09-30 23:20:09 -0700</delta_ts>
            <desc>Replaced 0 by false</desc>
            <filename>bug-177710-20170930212803.patch</filename>
            <type>text/plain</type>
            <size>11860</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjY4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTMwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERvbid0IHJldmVhbCBmaWxlIFVS
TCB3aGVuIHBhc3RpbmcgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NzcxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3NTc5MjQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZWQg
dGhlIGJ1ZyBieSBnZW5lcmFsaXppbmcgdGhlIGNvZGUgd2UgaGFkIGZvciBkcmFnICYgZHJvcCB0
byBoaWRlIHN0cmluZyB0eXBlcyB3aGVuIHRoZXJlIGlzIGEgZmlsZS4KKworICAgICAgICBXZSBk
b24ndCBoaWRlIHN0cmluZyB0eXBlcyB3aGVuIGN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgp
IGlzIGZhbHNlIHRvIHByZXNlcnZlIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJsaXR5CisgICAgICAg
IHdpdGggYXBwcyB0aGF0IGFyZSByZWx5aW5nIG9uIGJlaW5nIGFibGUgdG8gcmVhZCBmaWxlcyBV
UkxzIGluIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvcGFzdGVib2Fy
ZC9wYXN0ZS1pbWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbAorCisgICAgICAgICog
ZG9tL0RhdGFUcmFuc2Zlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6Omdl
dERhdGEgY29uc3QpOiBQcmV0ZW5kIHRoZXJlIGlzIG5vIHN0cmluZyBkYXRhIHdoZW4gdGhlcmUg
aXMgYSBmaWxlIGluIHRoZSBwYXN0ZWJvYXJkCisgICAgICAgIGN1c3RvbSBwYXN0ZWJvYXJkIGRh
dGEgaXMgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6c2V0RGF0YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjp0eXBlcyBjb25zdCk6IERp
dHRvLgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlcjo6Zm9yRHJhZyBjb25zdCk6IEFkZGVkIGZvciB3aGVuIGRyYWcgJiBkcm9wIHN1
cHBvcnQgaXMgZGlzYWJsZWQgYXQgY29tcGlsYXRpb24gdGltZS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlcjo6Zm9yRmlsZURyYWcgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMpOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpjb250YWluc0ZpbGVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Bhc3Rl
Ym9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y29udGFpbnNGaWxl
cyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBBbm5vdGF0ZWQgdGhpcyBm
dW5jdGlvbiB3aXRoIG5vdEltcGxlbWVudGVkKCkuCisKIDIwMTctMDktMzAgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIEFQSSB0ZXN0
IEVkaXRvclN0YXRlVGVzdHMuQ29udGVudFZpZXdIYXNUZXh0SW5Db250ZW50RWRpdGFibGVFbGVt
ZW50IGlzIGEgZmxha3kgZmFpbHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5j
cHAJKHJldmlzaW9uIDIyMjY4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTAgKzEzNyw4IEBAIFN0cmluZyBEYXRhVHJhbnNm
ZXI6OmdldERhdGEoY29uc3QgU3RyaW4KICAgICBpZiAoIWNhblJlYWREYXRhKCkpCiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgaWYgKGZv
ckZpbGVEcmFnKCkgJiYgbV9wYXN0ZWJvYXJkLT5yZWFkRmlsZW5hbWVzKCkuc2l6ZSgpKQorICAg
IGlmICgoZm9yRmlsZURyYWcoKSB8fCBTZXR0aW5nczo6Y3VzdG9tUGFzdGVib2FyZERhdGFFbmFi
bGVkKCkpICYmIG1fcGFzdGVib2FyZC0+Y29udGFpbnNGaWxlcygpKQogICAgICAgICByZXR1cm4g
eyB9OwotI2VuZGlmCiAKICAgICBhdXRvIG5vcm1hbGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZSh0
eXBlKTsKICAgICBpZiAoU2V0dGluZ3M6OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpICYm
ICFQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUobm9ybWFsaXplZFR5
cGUpKQpAQCAtMTUzLDEwICsxNTEsOCBAQCB2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RGF0YShjb25z
dCBTdHJpbmcmCiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwogCi0j
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBpZiAoZm9yRmlsZURyYWcoKSAmJiBtX3Bhc3Rl
Ym9hcmQtPnJlYWRGaWxlbmFtZXMoKS5zaXplKCkpCisgICAgaWYgKChmb3JGaWxlRHJhZygpIHx8
IFNldHRpbmdzOjpjdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoKSkgJiYgbV9wYXN0ZWJvYXJk
LT5jb250YWluc0ZpbGVzKCkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgU3RyaW5n
IG5vcm1hbGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZSh0eXBlKTsKICAgICBtX3Bhc3RlYm9hcmQt
PndyaXRlU3RyaW5nKG5vcm1hbGl6ZWRUeXBlLCBkYXRhKTsKQEAgLTE3NSw4ICsxNzEsMTMgQEAg
VmVjdG9yPFN0cmluZz4gRGF0YVRyYW5zZmVyOjp0eXBlcygpIGNvbgogewogICAgIGlmICghY2Fu
UmVhZFR5cGVzKCkpCiAgICAgICAgIHJldHVybiB7IH07Ci0KLSAgICByZXR1cm4gU2V0dGluZ3M6
OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpID8gbV9wYXN0ZWJvYXJkLT50eXBlc1NhZmVG
b3JCaW5kaW5ncygpIDogbV9wYXN0ZWJvYXJkLT50eXBlc0ZvckxlZ2FjeVVuc2FmZUJpbmRpbmdz
KCk7CisgICAgCisgICAgaWYgKCFTZXR0aW5nczo6Y3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzRm9yTGVnYWN5VW5zYWZlQmlu
ZGluZ3MoKTsKKworICAgIGlmIChtX3Bhc3RlYm9hcmQtPmNvbnRhaW5zRmlsZXMoKSkKKyAgICAg
ICAgcmV0dXJuIHsgIkZpbGVzIiB9OworICAgIHJldHVybiBtX3Bhc3RlYm9hcmQtPnR5cGVzU2Fm
ZUZvckJpbmRpbmdzKCk7CiB9CiAKIEZpbGVMaXN0JiBEYXRhVHJhbnNmZXI6OmZpbGVzKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgJKHJldmlzaW9uIDIyMjY4MikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2
LDYgKzEwNiw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29s
IGZvckRyYWcoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RHJhZ0FuZERyb3BEYXRh
IHx8IG1fdHlwZSA9PSBUeXBlOjpEcmFnQW5kRHJvcEZpbGVzOyB9CiAgICAgYm9vbCBmb3JGaWxl
RHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpEcmFnQW5kRHJvcEZpbGVzOyB9
CisjZWxzZQorICAgIGJvb2wgZm9yRHJhZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCBmb3JGaWxlRHJhZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAg
IFN0b3JlTW9kZSBtX3N0b3JlTW9kZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmgJKHJldmlzaW9uIDIyMjY4MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJik7CiAgICAgdmlydHVhbCB2
b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiAKKyAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnNGaWxlcygpOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gcmVhZEZpbGVu
YW1lcygpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TbWFydFJlcGxhY2UoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAkocmV2aXNpb24gMjIyNjgy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQmKSBmaW5hbCB7IH0KIAorICAgIGJvb2wgY29udGFpbnNGaWxlcygpIGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgVmVjdG9yPFN0cmluZz4gcmVhZEZpbGVuYW1lcygpIGZp
bmFsIHsgcmV0dXJuIHsgfTsgfQogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFz
dGVib2FyZENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Bhc3RlYm9hcmRDb2NvYS5tbQkocmV2aXNpb24gMjIyNjgyKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTEsNiArMTUxLDIzIEBAIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzVHJlYXRlZEEK
ICAgICByZXR1cm4gdHlwZXM7CiB9CiAKK2Jvb2wgUGFzdGVib2FyZDo6Y29udGFpbnNGaWxlcygp
Cit7CisgICAgaWYgKCFwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PmdldE51bWJlck9mRmlsZXMobV9wYXN0ZWJvYXJkTmFtZSkpIHsKKyAgICAgICAgVmVjdG9yPFN0
cmluZz4gY29jb2FUeXBlczsKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9h
cmRTdHJhdGVneSgpLT5nZXRUeXBlcyhjb2NvYVR5cGVzLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAg
ICAgICAgaWYgKGNvY29hVHlwZXMuZmluZE1hdGNoaW5nKFtdKGNvbnN0IFN0cmluZyYgY29jb2FU
eXBlKSB7IHJldHVybiBzaG91bGRUcmVhdENvY29hVHlwZUFzRmlsZShjb2NvYVR5cGUpOyB9KSA9
PSBub3RGb3VuZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBF
bmZvcmNlIGNoYW5nZUNvdW50IG91cnNlbHZlcyBmb3Igc2VjdXJpdHkuIFdlIGNoZWNrIGFmdGVy
IHJlYWRpbmcgaW5zdGVhZCBvZiBiZWZvcmUgdG8gYmUKKyAgICAvLyBzdXJlIGl0IGRvZXNuJ3Qg
Y2hhbmdlIGJldHdlZW4gb3VyIHRlc3RpbmcgdGhlIGNoYW5nZSBjb3VudCBhbmQgYWNjZXNzaW5n
IHRoZSBkYXRhLgorICAgIGlmIChtX2NoYW5nZUNvdW50ICE9IHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Y2hhbmdlQ291bnQobV9wYXN0ZWJvYXJkTmFtZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBWZWN0b3I8U3Ry
aW5nPiBQYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JCaW5kaW5ncygpCiB7CiAgICAgVmVjdG9yPFN0
cmluZz4gdHlwZXMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKG1fcGFzdGVib2FyZE5hbWUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkocmV2aXNp
b24gMjIyNjgyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTksNiArMzE5LDExIEBAIFN0cmluZyBQYXN0ZWJvYXJk
OjpyZWFkU3RyaW5nSW5DdXN0b21EYXQKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFBhc3Rl
Ym9hcmQ6OmNvbnRhaW5zRmlsZXMoKQoreworICAgIHJldHVybiByZWFkRmlsZW5hbWVzKCkuc2l6
ZSgpOworfQorCiBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKIHsK
ICAgICByZWFkRnJvbUNsaXBib2FyZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAkocmV2aXNpb24gMjIyNjgyKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MTQsNiArMzE0LDExIEBAIFN0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nSW5DdXN0b21EYXQK
ICAgICByZXR1cm4geyB9OwogfQogCitib29sIFBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMoKQor
eworICAgIHJldHVybiByZWFkRmlsZW5hbWVzKCkuc2l6ZSgpOyAvLyBGSVhNRTogTWFrZSB0aGlz
IGNvZGUgbW9yZSBlZmZpY2llbnQuCit9CisKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJl
YWRGaWxlbmFtZXMoKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lczsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAJKHJldmlzaW9u
IDIyMjY4MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDggKzEyNCwxNSBAQCB2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRXCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9h
cmRTdHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZChjb250ZW50KTsKIH0KIAorYm9vbCBQYXN0
ZWJvYXJkOjpjb250YWluc0ZpbGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1l
cygpCiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4o
KTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIyNjgyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDktMzAgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgcmV2ZWFsIGZpbGUgVVJM
IHdoZW4gcGFzdGluZyBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc3NzEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDc1NzkyND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBh
IHJlZ3Jlc3Npb24gdGVzdCBmb3IgcGFzdGluZyBhbiBpbWFnZS4gV2UgZW5hYmxlIHRoaXMgcHJv
dGVjdGlvbiBvbmx5IHdoZW4gY3VzdG9tIGRhdGEgaXMgZW5hYmxlZAorICAgICAgICB0byBwcmVz
ZXJ2ZSB0aGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMt
bm90LXJldmVhbC1maWxlLXVybC5odG1sOiBBZGRlZC4KKwogMjAxNy0wOS0zMCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
VXBncmFkZSB3ZWJraXRndGstdGVzdC1mb250cyB0byB2ZXJzaW9uIDAuMC43LgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1m
aWxlLXVybC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3Rl
LWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBwYXN0aW5nIGltYWdlcyBkbyBub3QgcmV2
ZWFsIGl0cyBmaWxlIFVSTC4gVG8gbWFudWFsbHkgdGVzdCwgY29weSB0aGUgaW1hZ2UgYmVsb3cg
aW4gdGhlIGNvbnRleHQgbWVudSBhbmQgcGFzdGUgaW50byB0aGUgcmVkIGJveC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSlNPTi5zdHJpbmdpZnkoZXZlbnQuY2xpcGJv
YXJkRGF0YS50eXBlcykgaXMgIltcIkZpbGVzXCJdIgorUEFTUyBldmVudC5jbGlwYm9hcmREYXRh
LmdldERhdGEoInVybCIpIGlzICIiCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgi
dGV4dC9wbGFpbiIpIGlzICIiCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4
dC91cmktbGlzdCIpIGlzICIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1m
aWxlLXVybC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS1pbWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxk
aXYgaWQ9ImRlc3RpbmF0aW9uIiBjb250ZW50ZWRpdGFibGU9InRydWUiIG9ucGFzdGU9ImNoZWNr
KGV2ZW50KSIgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAxMDBweDsgYm9yZGVyOiBzb2xp
ZCByZWQgMXB4Ij48L2Rpdj4KKzxpZnJhbWUgaWQ9ImlmcmFtZSIgc3JjPSIuLi9yZXNvdXJjZXMv
YWJlLnBuZyIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPHNjcmlwdD4K
KworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q3Vz
dG9tUGFzdGVib2FyZERhdGFFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRQcmVmZXJNSU1FVHlwZUZvckltYWdlcyh0cnVlKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgcGFzdGluZyBpbWFnZXMgZG8gbm90IHJldmVhbCBpdHMgZmlsZSBVUkwuIFRvIG1hbnVh
bGx5IHRlc3QsIGNvcHkgdGhlIGltYWdlIGJlbG93IGluIHRoZSBjb250ZXh0IG1lbnUgYW5kIHBh
c3RlIGludG8gdGhlIHJlZCBib3guIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29uc3QgaWZyYW1lRG9jdW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaWZyYW1lIikuY29udGVudERvY3VtZW50OworICAgIGlmcmFtZURvY3VtZW50LmJvZHkuZm9j
dXMoKTsKKyAgICBpZnJhbWVEb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAg
aWZyYW1lRG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkZXN0aW5hdGlvbiIpLmZvY3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIlBhc3RlIik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrKGV2ZW50KQoreworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnSlNPTi5zdHJpbmdpZnkoZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcykn
LCAnWyJGaWxlcyJdJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC5jbGlwYm9h
cmREYXRhLmdldERhdGEoInVybCIpJywgJycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
ZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIiknLCAnJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvdXJp
LWxpc3QiKScsICcnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322313</attachid>
            <date>2017-09-30 23:20:11 -0700</date>
            <delta_ts>2017-09-30 23:59:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-177710-20170930232008.patch</filename>
            <type>text/plain</type>
            <size>14455</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUwNGNiNjkwMDBjZWRk
M2ZhNTU2M2M2ZTkwNmYwYmI4MDE3NDUyZi4uMWRmZmNmYjBlY2QyZTRmZmJlNmEwYjIzN2QwNDMy
YzI2YWIzOWExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTMwICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERvbid0IHJldmVhbCBmaWxl
IFVSTCB3aGVuIHBhc3RpbmcgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzcxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ3NTc5
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEZpeGVk
IHRoZSBidWcgYnkgZ2VuZXJhbGl6aW5nIHRoZSBjb2RlIHdlIGhhZCBmb3IgZHJhZyAmIGRyb3Ag
dG8gaGlkZSBzdHJpbmcgdHlwZXMgd2hlbiB0aGVyZSBpcyBhIGZpbGUuCisKKyAgICAgICAgV2Ug
ZG9uJ3QgaGlkZSBzdHJpbmcgdHlwZXMgd2hlbiBjdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQo
KSBpcyBmYWxzZSB0byBwcmVzZXJ2ZSB0aGUgYmFja3dhcmRzIGNvbXBhdGlibGl0eQorICAgICAg
ICB3aXRoIGFwcHMgdGhhdCBhcmUgcmVseWluZyBvbiBiZWluZyBhYmxlIHRvIHJlYWQgZmlsZXMg
VVJMcyBpbiB0aGUgcGFzdGVib2FyZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9h
cmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLmh0bWwKKworICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpn
ZXREYXRhIGNvbnN0KTogUHJldGVuZCB0aGVyZSBpcyBubyBzdHJpbmcgZGF0YSB3aGVuIHRoZXJl
IGlzIGEgZmlsZSBpbiB0aGUgcGFzdGVib2FyZAorICAgICAgICBjdXN0b20gcGFzdGVib2FyZCBk
YXRhIGlzIGVuYWJsZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OnNldERhdGEp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6dHlwZXMgY29uc3QpOiBE
aXR0by4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXI6OmZvckRyYWcgY29uc3QpOiBBZGRlZCBmb3Igd2hlbiBkcmFnICYgZHJvcCBz
dXBwb3J0IGlzIGRpc2FibGVkIGF0IGNvbXBpbGF0aW9uIHRpbWUuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXI6OmZvckZpbGVEcmFnIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjb250YWluc0ZpbGVzKTogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y29udGFpbnNGaWxlcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNvbnRhaW5zRmls
ZXMpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjb250YWluc0ZpbGVzKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKTogQW5ub3RhdGVkIHRoaXMg
ZnVuY3Rpb24gd2l0aCBub3RJbXBsZW1lbnRlZCgpLgorCiAyMDE3LTA5LTMwICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1NldHRpbmdzXSBSZXBsYWNlIFNldHRpbmdz
TWFjcm9zLmggd2l0aCBhIGdlbmVyYXRlZCBiYXNlIGNsYXNzIGZvciBTZXR0aW5ncwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcAppbmRleCAzMjIyMzdhOTEwYjRlYTY0YzA1NTIyZDNjNmZk
ZTVkOTg4MTVlZTU0Li45YWMxNzU1MWM4MjRhMDc3MzM1NDI0NTE4MDIxYWZjYmViM2RjZTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcApAQCAtMTM3LDEwICsxMzcsOCBAQCBTdHJp
bmcgRGF0YVRyYW5zZmVyOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3QKICAgICBp
ZiAoIWNhblJlYWREYXRhKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgaWYgKGZvckZpbGVEcmFnKCkgJiYgbV9wYXN0ZWJvYXJkLT5y
ZWFkRmlsZW5hbWVzKCkuc2l6ZSgpKQorICAgIGlmICgoZm9yRmlsZURyYWcoKSB8fCBTZXR0aW5n
czo6Y3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKCkpICYmIG1fcGFzdGVib2FyZC0+Y29udGFp
bnNGaWxlcygpKQogICAgICAgICByZXR1cm4geyB9OwotI2VuZGlmCiAKICAgICBhdXRvIG5vcm1h
bGl6ZWRUeXBlID0gbm9ybWFsaXplVHlwZSh0eXBlKTsKICAgICBpZiAoU2V0dGluZ3M6OmN1c3Rv
bVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpICYmICFQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9N
VG9SZWFkQW5kV3JpdGUobm9ybWFsaXplZFR5cGUpKQpAQCAtMTUzLDEwICsxNTEsOCBAQCB2b2lk
IERhdGFUcmFuc2Zlcjo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
ZGF0YSkKICAgICBpZiAoIWNhbldyaXRlRGF0YSgpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGlmIChmb3JGaWxlRHJhZygpICYmIG1fcGFzdGVib2Fy
ZC0+cmVhZEZpbGVuYW1lcygpLnNpemUoKSkKKyAgICBpZiAoKGZvckZpbGVEcmFnKCkgfHwgU2V0
dGluZ3M6OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpKSAmJiBtX3Bhc3RlYm9hcmQtPmNv
bnRhaW5zRmlsZXMoKSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKICAgICBTdHJpbmcgbm9y
bWFsaXplZFR5cGUgPSBub3JtYWxpemVUeXBlKHR5cGUpOwogICAgIG1fcGFzdGVib2FyZC0+d3Jp
dGVTdHJpbmcobm9ybWFsaXplZFR5cGUsIGRhdGEpOwpAQCAtMTc1LDggKzE3MSwxMyBAQCBWZWN0
b3I8U3RyaW5nPiBEYXRhVHJhbnNmZXI6OnR5cGVzKCkgY29uc3QKIHsKICAgICBpZiAoIWNhblJl
YWRUeXBlcygpKQogICAgICAgICByZXR1cm4geyB9OworICAgIAorICAgIGlmICghU2V0dGluZ3M6
OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbV9wYXN0ZWJv
YXJkLT50eXBlc0ZvckxlZ2FjeVVuc2FmZUJpbmRpbmdzKCk7CiAKLSAgICByZXR1cm4gU2V0dGlu
Z3M6OmN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZCgpID8gbV9wYXN0ZWJvYXJkLT50eXBlc1Nh
ZmVGb3JCaW5kaW5ncygpIDogbV9wYXN0ZWJvYXJkLT50eXBlc0ZvckxlZ2FjeVVuc2FmZUJpbmRp
bmdzKCk7CisgICAgaWYgKG1fcGFzdGVib2FyZC0+Y29udGFpbnNGaWxlcygpKQorICAgICAgICBy
ZXR1cm4geyAiRmlsZXMiIH07CisgICAgcmV0dXJuIG1fcGFzdGVib2FyZC0+dHlwZXNTYWZlRm9y
QmluZGluZ3MoKTsKIH0KIAogRmlsZUxpc3QmIERhdGFUcmFuc2Zlcjo6ZmlsZXMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCmluZGV4IGE2MTg1ZDUyZDg5NjQ5ZDEyZGMxMTE0NDVj
MmRhNzU2NjBjYTVhZDQuLjA5ZDRkZmYzMmIxMWZiOGZlZjJlMDdiYzhlMTViM2M0MDVlMmYxNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKQEAgLTEwNiw2ICsxMDYsOSBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBmb3JEcmFnKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IFR5cGU6OkRyYWdBbmREcm9wRGF0YSB8fCBtX3R5cGUgPT0gVHlwZTo6
RHJhZ0FuZERyb3BGaWxlczsgfQogICAgIGJvb2wgZm9yRmlsZURyYWcoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZTo6RHJhZ0FuZERyb3BGaWxlczsgfQorI2Vsc2UKKyAgICBib29sIGZv
ckRyYWcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZm9yRmlsZURyYWcoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICBTdG9yZU1vZGUgbV9zdG9yZU1v
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggODM5MzEyZDY3M2Q5NDMx
YjI5NjdhYzgzZmEwNmRiYjcxNWI3MjUwNy4uNjY3NTk3MGM0ZDEwNWYyNjYxZDE0YjIwMTUxYjg1
Y2E4YWIxY2Y1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMjE1LDYg
KzIxNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3QgUGFzdGVib2Fy
ZEltYWdlJik7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250
ZW50Jik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNGaWxlcygpOwogICAgIHZpcnR1YWwg
VmVjdG9yPFN0cmluZz4gcmVhZEZpbGVuYW1lcygpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TbWFy
dFJlcGxhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGlj
UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5o
CmluZGV4IDI4NTBiMzJjZjczZGQzMzAwMDNjYzI0YjAyNWUwZWMwM2Q0NzU3NjMuLjU5OTFkM2Nl
YmQwZTkzZTE2MzY2YWM5MmRkNjEwMjhmZDU3MzJkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TdGF0aWNQYXN0ZWJvYXJkLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZv
aWQgd3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikgZmluYWwgeyB9CiAgICAgdm9pZCB3cml0
ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpIGZpbmFsIHsgfQogCisgICAgYm9vbCBjb250
YWluc0ZpbGVzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBWZWN0b3I8U3RyaW5nPiBy
ZWFkRmlsZW5hbWVzKCkgZmluYWwgeyByZXR1cm4geyB9OyB9CiAgICAgYm9vbCBjYW5TbWFydFJl
cGxhY2UoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KaW5kZXggOWQ0YjkzZmJjYWU2MjM4ZDAz
YTJiZGYxM2YzNTFiMjBiNjY4NjgwYi4uODBjMmEyZmM4MDFmZWRkOTQ1Nzk4NDgxNjA2MjJmMWNl
MTZjZTQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVi
b2FyZENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9h
cmRDb2NvYS5tbQpAQCAtMTUxLDYgKzE1MSwyMyBAQCBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJk
Ojp0eXBlc1RyZWF0ZWRBc0ZpbGVzKCkKICAgICByZXR1cm4gdHlwZXM7CiB9CiAKK2Jvb2wgUGFz
dGVib2FyZDo6Y29udGFpbnNGaWxlcygpCit7CisgICAgaWYgKCFwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldE51bWJlck9mRmlsZXMobV9wYXN0ZWJvYXJkTmFt
ZSkpIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gY29jb2FUeXBlczsKKyAgICAgICAgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyhjb2NvYVR5cGVz
LCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICAgICAgaWYgKGNvY29hVHlwZXMuZmluZE1hdGNoaW5n
KFtdKGNvbnN0IFN0cmluZyYgY29jb2FUeXBlKSB7IHJldHVybiBzaG91bGRUcmVhdENvY29hVHlw
ZUFzRmlsZShjb2NvYVR5cGUpOyB9KSA9PSBub3RGb3VuZCkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICAvLyBFbmZvcmNlIGNoYW5nZUNvdW50IG91cnNlbHZlcyBmb3Ig
c2VjdXJpdHkuIFdlIGNoZWNrIGFmdGVyIHJlYWRpbmcgaW5zdGVhZCBvZiBiZWZvcmUgdG8gYmUK
KyAgICAvLyBzdXJlIGl0IGRvZXNuJ3QgY2hhbmdlIGJldHdlZW4gb3VyIHRlc3RpbmcgdGhlIGNo
YW5nZSBjb3VudCBhbmQgYWNjZXNzaW5nIHRoZSBkYXRhLgorICAgIGlmIChtX2NoYW5nZUNvdW50
ICE9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Y2hhbmdlQ291
bnQobV9wYXN0ZWJvYXJkTmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biB0cnVlOworfQorCiBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JCaW5k
aW5ncygpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKG1f
cGFzdGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1Bhc3RlYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9h
cmRHdGsuY3BwCmluZGV4IGJkNTgwMGZhMTQzNmU5YTlmOTRhODlhZWQ3NjVhZmRmZjlkYjI3ZGEu
LjRlNzhmYzJhZTZjZTdmNjBiODE4ODU3ZjU0NzllNjU4M2VkOGQ5MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKQEAgLTMxOSw2ICszMTksMTEg
QEAgU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmdJbkN1c3RvbURhdGEoY29uc3QgU3RyaW5n
JikKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMo
KQoreworICAgIHJldHVybiByZWFkRmlsZW5hbWVzKCkuc2l6ZSgpOworfQorCiBWZWN0b3I8U3Ry
aW5nPiBQYXN0ZWJvYXJkOjpyZWFkRmlsZW5hbWVzKCkKIHsKICAgICByZWFkRnJvbUNsaXBib2Fy
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmlu
ZGV4IDhhOGM5NDYyMjZjNTk3Y2E4YzA3Y2EzZWY0OGNiZTkyMmFlZGY1N2YuLjg5ZGExY2MxMzhl
YmU2YzI3YWQ4NzhjYzY5OTI2Y2RiMmE0YTdhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTMxNCw2ICszMTQsMTEgQEAgU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmdJbkN1c3RvbURhdGEoY29uc3QgU3RyaW5nJikKICAgICByZXR1
cm4geyB9OwogfQogCitib29sIFBhc3RlYm9hcmQ6OmNvbnRhaW5zRmlsZXMoKQoreworICAgIHJl
dHVybiByZWFkRmlsZW5hbWVzKCkuc2l6ZSgpOyAvLyBGSVhNRTogTWFrZSB0aGlzIGNvZGUgbW9y
ZSBlZmZpY2llbnQuCit9CisKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFt
ZXMoKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAppbmRleCA1ZTBhZWY5ZTNkNTE2MDViNzI2
MWI1ZTk3ZTJjYTA3MzliNGM0MjEyLi4wYzE1MDc5NjNiODFlNTg4MWM5NDRjYTk3NzNiMDRmNzBh
NjE1NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGFzdGVib2Fy
ZFdQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUu
Y3BwCkBAIC0xMjQsOCArMTI0LDE1IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZChjb250ZW50KTsKIH0KIAorYm9v
bCBQYXN0ZWJvYXJkOjpjb250YWluc0ZpbGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZp
bGVuYW1lcygpCiB7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gVmVjdG9yPFN0
cmluZz4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
RGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9E
YXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA4NDAyMjQyMmJmYzRkYzE0YTg5ODBhM2I4ZTAy
ODNiNjkzZTliM2UwLi4yMDM1Y2MxOGZlMTcxYmU1MDE4MGJmZDc5YmQ4OWI2YWEyNzI2Nzk4IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25U
ZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rp
b25UZXN0cy5tbQpAQCAtMTAzNiw3ICsxMDM2LDYgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0
cywgRXh0ZXJuYWxTb3VyY2VEYXRhVHJhbnNmZXJJdGVtR2V0Rm9sZGVyQXNFbnRyeSkKIFRFU1Qo
RGF0YUludGVyYWN0aW9uVGVzdHMsIEV4dGVybmFsU291cmNlRGF0YVRyYW5zZmVySXRlbUdldFBs
YWluVGV4dEZpbGVBc0VudHJ5KQogewogICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmV4cGVjdGVk
T3V0cHV0ID0gQFsKLSAgICAgICAgQCJGb3VuZCBkYXRhIHRyYW5zZmVyIGl0ZW0gKGtpbmQ6ICdz
dHJpbmcnLCB0eXBlOiAndGV4dC9wbGFpbicpIiwKICAgICAgICAgQCJGb3VuZCBkYXRhIHRyYW5z
ZmVyIGl0ZW0gKGtpbmQ6ICdmaWxlJywgdHlwZTogJ3RleHQvcGxhaW4nKSIsCiAgICAgICAgIEAi
RklMRTogL2Zvby50eHQgKCd0ZXh0L3BsYWluJywgMjggYnl0ZXMpIgogICAgIF07CkBAIC0xNTU3
LDggKzE1NTYsOCBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBEYXRhVHJhbnNmZXJHZXRE
YXRhV2hlbkRyb3BwaW5nSW1hZ2VXaXRoRmlsZVVSTCkKIAogICAgIC8vIEZpbGUgVVJMcyBzaG91
bGQgbmV2ZXIgYmUgZXhwb3NlZCBkaXJlY3RseSB0byB3ZWIgY29udGVudCwgc28gRGF0YVRyYW5z
ZmVyLmdldERhdGEgc2hvdWxkIHJldHVybiBhbiBlbXB0eSBzdHJpbmcgaGVyZS4KICAgICBjaGVj
a0pTT05XaXRoTG9nZ2luZyhbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
b3V0cHV0LnZhbHVlIl0sIEB7Ci0gICAgICAgIEAiZHJhZ292ZXIiOiBAeyBAIkZpbGVzIjogQCIi
LCBAInRleHQvdXJpLWxpc3QiIDogQCIiIH0sCi0gICAgICAgIEAiZHJvcCI6IEB7IEAiRmlsZXMi
OiBAIiIsIEAidGV4dC91cmktbGlzdCIgOiBAIiIgfQorICAgICAgICBAImRyYWdvdmVyIjogQHsg
QCJGaWxlcyI6IEAiIiB9LAorICAgICAgICBAImRyb3AiOiBAeyBAIkZpbGVzIjogQCIiIH0KICAg
ICB9KTsKIH0KIApAQCAtMTU3OSw4ICsxNTc4LDggQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0
cywgRGF0YVRyYW5zZmVyR2V0RGF0YVdoZW5Ecm9wcGluZ1Jlc3BlY3RzUHJlc2VudGF0aW9uU3QK
ICAgICAgICAgW2l0ZW1Qcm92aWRlciBzZXRQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZTpVSVBy
ZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlQXR0YWNobWVudF07CiAgICAgICAgIFtzaW11bGF0b3Ig
cnVuRnJvbTpDR1BvaW50TWFrZSgzMDAsIDM3NSkgdG86Q0dQb2ludE1ha2UoNTAsIDM3NSldOwog
ICAgICAgICBjaGVja0pTT05XaXRoTG9nZ2luZyhbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAib3V0cHV0LnZhbHVlIl0sIEB7Ci0gICAgICAgICAgICBAImRyYWdvdmVyIjog
QHsgQCJ0ZXh0L3BsYWluIiA6IEAiIiB9LAotICAgICAgICAgICAgQCJkcm9wIjogQHsgQCJ0ZXh0
L3BsYWluIiA6IEAiIiB9CisgICAgICAgICAgICBAImRyYWdvdmVyIjogQHsgQCJGaWxlcyIgOiBA
IiIgfSwKKyAgICAgICAgICAgIEAiZHJvcCI6IEB7IEAiRmlsZXMiIDogQCIiIH0KICAgICAgICAg
fSk7CiAKICAgICAgICAgW2l0ZW1Qcm92aWRlciBzZXRQcmVmZXJyZWRQcmVzZW50YXRpb25TdHls
ZTpVSVByZWZlcnJlZFByZXNlbnRhdGlvblN0eWxlSW5saW5lXTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNzZiOGIxZGU2
ZjBkMmQ1NTliMzQwYzM1OTI5MmVlMDdjMDdjNDI2Li42ODk1OGM2MWVjNWViMTE0MDQzYTVmNDVk
OWZlZGEzNmYwYzYxOGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDktMzAgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgcmV2ZWFsIGZpbGUg
VVJMIHdoZW4gcGFzdGluZyBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NzEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDc1Nzky
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgQWRkZWQg
YSByZWdyZXNzaW9uIHRlc3QgZm9yIHBhc3RpbmcgYW4gaW1hZ2UuIFdlIGVuYWJsZSB0aGlzIHBy
b3RlY3Rpb24gb25seSB3aGVuIGN1c3RvbSBkYXRhIGlzIGVuYWJsZWQKKyAgICAgICAgdG8gcHJl
c2VydmUgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorCisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1pbWFnZS1kb2Vz
LW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbDogQWRkZWQuCisKIDIwMTctMDktMzAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbGF5b3V0IHRl
c3QgdGVzdCB0aGF0IGV4ZXJjaXNlcyBzZXREYXRhIGFuZCBnZXREYXRhIGZvciBub24tbm9ybWFs
aXplZCB0eXBlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Bh
c3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUt
dXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjY0YjAxMGU5YjhhNjg2ZmI2OGJjNmIxZGI1
MDcxNGYyOTQ1Y2RhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3Bhc3RlLWltYWdlLWRvZXMtbm90LXJldmVhbC1maWxlLXVybC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBwYXN0aW5nIGltYWdlcyBkbyBub3QgcmV2ZWFs
IGl0cyBmaWxlIFVSTC4gVG8gbWFudWFsbHkgdGVzdCwgY29weSB0aGUgaW1hZ2UgYmVsb3cgaW4g
dGhlIGNvbnRleHQgbWVudSBhbmQgcGFzdGUgaW50byB0aGUgcmVkIGJveC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgSlNPTi5zdHJpbmdpZnkoZXZlbnQuY2xpcGJvYXJk
RGF0YS50eXBlcykgaXMgIltcIkZpbGVzXCJdIgorUEFTUyBldmVudC5jbGlwYm9hcmREYXRhLmdl
dERhdGEoInVybCIpIGlzICIiCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4
dC9wbGFpbiIpIGlzICIiCitQQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC91
cmktbGlzdCIpIGlzICIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
cGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtaW1hZ2UtZG9lcy1ub3QtcmV2ZWFsLWZpbGUtdXJsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmQ1ZThlZWU5ZmRkNGFlNjkzODdjNjZiZmY5ODA2OTNkZTQyNDc3MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1p
bWFnZS1kb2VzLW5vdC1yZXZlYWwtZmlsZS11cmwuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImRlc3RpbmF0aW9uIiBjb250ZW50
ZWRpdGFibGU9InRydWUiIG9ucGFzdGU9ImNoZWNrKGV2ZW50KSIgc3R5bGU9IndpZHRoOiA1MDBw
eDsgaGVpZ2h0OiAxMDBweDsgYm9yZGVyOiBzb2xpZCByZWQgMXB4Ij48L2Rpdj4KKzxpZnJhbWUg
aWQ9ImlmcmFtZSIgc3JjPSIuLi9yZXNvdXJjZXMvYWJlLnBuZyIgb25sb2FkPSJydW5UZXN0KCki
PjwvaWZyYW1lPgorPC9ib2R5PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQcmVmZXJNSU1FVHlwZUZvckltYWdlcyh0
cnVlKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcGFzdGluZyBpbWFnZXMgZG8gbm90
IHJldmVhbCBpdHMgZmlsZSBVUkwuIFRvIG1hbnVhbGx5IHRlc3QsIGNvcHkgdGhlIGltYWdlIGJl
bG93IGluIHRoZSBjb250ZXh0IG1lbnUgYW5kIHBhc3RlIGludG8gdGhlIHJlZCBib3guIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgaWZyYW1lRG9j
dW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lIikuY29udGVudERvY3VtZW50
OworICAgIGlmcmFtZURvY3VtZW50LmJvZHkuZm9jdXMoKTsKKyAgICBpZnJhbWVEb2N1bWVudC5l
eGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7CisgICAgaWZyYW1lRG9jdW1lbnQuZXhlY0NvbW1hbmQo
IkNvcHkiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXN0aW5hdGlvbiIpLmZv
Y3VzKCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrKGV2ZW50KQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnSlNPTi5zdHJpbmdp
ZnkoZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcyknLCAnWyJGaWxlcyJdJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoInVybCIpJywgJycp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRh
KCJ0ZXh0L3BsYWluIiknLCAnJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC5j
bGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvdXJpLWxpc3QiKScsICcnKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>