<?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>174907</bug_id>
          
          <creation_ts>2017-07-27 15:11:29 -0700</creation_ts>
          <short_desc>Update lock benchmarks</short_desc>
          <delta_ts>2017-07-28 16:23:06 -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>JavaScriptCore</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="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1332739</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 15:11:29 -0700</bug_when>
    <thetext>It&apos;s just not there anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332741</commentid>
    <comment_count>1</comment_count>
      <attachid>316575</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 15:12:32 -0700</bug_when>
    <thetext>Created attachment 316575
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332742</commentid>
    <comment_count>2</comment_count>
      <attachid>316575</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-07-27 15:13:42 -0700</bug_when>
    <thetext>Comment on attachment 316575
patch

I think the proper fix is to introduce a pthread_mutex-based lock, so that we have one in the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332794</commentid>
    <comment_count>3</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 18:16:38 -0700</bug_when>
    <thetext>I&apos;m updating all the benchmarks now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332795</commentid>
    <comment_count>4</comment_count>
      <attachid>316588</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 18:20:06 -0700</bug_when>
    <thetext>Created attachment 316588
patch

Update to use new APIs, fix command-line, use std::mutex instead of deleted Mutex, and add unfair lock if available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332796</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-27 18:22:03 -0700</bug_when>
    <thetext>Attachment 316588 did not pass style-queue:


ERROR: Source/WTF/benchmarks/ToyLocks.h:476:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/benchmarks/ToyLocks.h:476:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:477:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:478:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:478:  l is incorrectly named. Don&apos;t use the single letter &apos;l&apos; as an identifier name.  [readability/naming] [4]
ERROR: Source/WTF/benchmarks/ToyLocks.h:479:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:480:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:481:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:484:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:485:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:487:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/benchmarks/ToyLocks.h:488:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 15 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332798</commentid>
    <comment_count>6</comment_count>
      <attachid>316588</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-07-27 18:24:11 -0700</bug_when>
    <thetext>Comment on attachment 316588
patch

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

I think this is OK to land, but it would have been nicer if you hadn&apos;t used std:: types.

&gt; Source/WTF/benchmarks/ConditionSpeedTest.cpp:76
&gt; -template&lt;typename Functor, typename ConditionType, typename LockType&gt;
&gt; -void wait(ConditionType&amp; condition, LockType&amp; lock, const Functor&amp; predicate)
&gt; +    template&lt;typename Functor, typename ConditionType, typename LockType, typename std::enable_if&lt;!std::is_same&lt;ConditionType, std::condition_variable&gt;::value&gt;::type* = nullptr&gt;
&gt; +    void wait(ConditionType&amp; condition, LockType&amp; lock, std::unique_lock&lt;LockType&gt;&amp;, const Functor&amp; predicate)
&gt;  {
&gt;      while (!predicate())
&gt;          condition.wait(lock);
&gt;  }
&gt;  
&gt; +template&lt;typename Functor, typename ConditionType, typename LockType, typename std::enable_if&lt;std::is_same&lt;ConditionType, std::condition_variable&gt;::value&gt;::type* = nullptr&gt;
&gt; +void wait(ConditionType&amp; condition, LockType&amp;, std::unique_lock&lt;LockType&gt;&amp; locker, const Functor&amp; predicate)
&gt; +{
&gt; +    while (!predicate())
&gt; +        condition.wait(locker);
&gt; +}
&gt; +

This is really gross.  You wouldn&apos;t have had to do this if you wrote your own SystemMutex/SystemCondition that wrapped pthread_mutex_t/pthread_cond_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332799</commentid>
    <comment_count>7</comment_count>
      <attachid>316590</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 18:26:54 -0700</bug_when>
    <thetext>Created attachment 316590
patch

Fix indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332800</commentid>
    <comment_count>8</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 18:27:30 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #6)
&gt; Comment on attachment 316588 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=316588&amp;action=review
&gt; 
&gt; I think this is OK to land, but it would have been nicer if you hadn&apos;t used
&gt; std:: types.
&gt; 
&gt; &gt; Source/WTF/benchmarks/ConditionSpeedTest.cpp:76
&gt; &gt; -template&lt;typename Functor, typename ConditionType, typename LockType&gt;
&gt; &gt; -void wait(ConditionType&amp; condition, LockType&amp; lock, const Functor&amp; predicate)
&gt; &gt; +    template&lt;typename Functor, typename ConditionType, typename LockType, typename std::enable_if&lt;!std::is_same&lt;ConditionType, std::condition_variable&gt;::value&gt;::type* = nullptr&gt;
&gt; &gt; +    void wait(ConditionType&amp; condition, LockType&amp; lock, std::unique_lock&lt;LockType&gt;&amp;, const Functor&amp; predicate)
&gt; &gt;  {
&gt; &gt;      while (!predicate())
&gt; &gt;          condition.wait(lock);
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; +template&lt;typename Functor, typename ConditionType, typename LockType, typename std::enable_if&lt;std::is_same&lt;ConditionType, std::condition_variable&gt;::value&gt;::type* = nullptr&gt;
&gt; &gt; +void wait(ConditionType&amp; condition, LockType&amp;, std::unique_lock&lt;LockType&gt;&amp; locker, const Functor&amp; predicate)
&gt; &gt; +{
&gt; &gt; +    while (!predicate())
&gt; &gt; +        condition.wait(locker);
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; This is really gross.  You wouldn&apos;t have had to do this if you wrote your
&gt; own SystemMutex/SystemCondition that wrapped pthread_mutex_t/pthread_cond_t.

True, I wanted to test &quot;whatever C++ gives us&quot; though :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332801</commentid>
    <comment_count>9</comment_count>
      <attachid>316590</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-27 18:27:46 -0700</bug_when>
    <thetext>Comment on attachment 316590
patch

Rejecting attachment 316590 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 316590, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WTF/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/4199436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332804</commentid>
    <comment_count>10</comment_count>
      <attachid>316592</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-27 18:29:55 -0700</bug_when>
    <thetext>Created attachment 316592
patch

Fix oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332821</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-27 19:17:16 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 316592:

media/modern-media-controls/seek-backward-support/seek-backward-support.html bug 174916 (authors: graouts@apple.com, mcatanzaro@igalia.com, and ryanhaddad@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332822</commentid>
    <comment_count>12</comment_count>
      <attachid>316592</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-27 19:17:40 -0700</bug_when>
    <thetext>Comment on attachment 316592
patch

Clearing flags on attachment: 316592

Committed r219988: &lt;http://trac.webkit.org/changeset/219988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332823</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-27 19:17:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333114</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-28 16:21:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/33601358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333117</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-28 16:23:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/33601363&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316575</attachid>
            <date>2017-07-27 15:12:32 -0700</date>
            <delta_ts>2017-07-27 18:20:06 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-ToyLocks-Mutex-was-deprecated-then-removed.patch</filename>
            <type>text/plain</type>
            <size>1468</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBiNjk2ZjdjN2QxMjc3MmExYTY0MzI2MWE4ZTFkNTI5MzI0MzdmNDQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI3IEp1bCAyMDE3IDE1OjEyOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVG95TG9j
a3M6IE11dGV4IHdhcyBkZXByZWNhdGVkIHRoZW4gcmVtb3ZlZAoKLS0tCiBTb3VyY2UvV1RGL0No
YW5nZUxvZyAgICAgICAgICAgICB8IDkgKysrKysrKysrCiBTb3VyY2UvV1RGL2JlbmNobWFya3Mv
VG95TG9ja3MuaCB8IDIgLS0KIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAyIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKaW5kZXggY2M1NGM5Yy4uMTQyMTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxNy0wNy0yNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisKKyAgICAgICAg
VG95TG9ja3M6IE11dGV4IHdhcyBkZXByZWNhdGVkIHRoZW4gcmVtb3ZlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0OTA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiZW5jaG1hcmtzL1RveUxvY2tz
Lmg6CisKIDIwMTctMDctMjYgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1BFXSBFbmFibGUgS2V5Ym9hcmRFdmVudCBrZXkgYW5kIGNvZGUgYXR0
cmlidXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL1RveUxvY2tzLmggYi9T
b3VyY2UvV1RGL2JlbmNobWFya3MvVG95TG9ja3MuaAppbmRleCAwOTBhZDk2Li5lMDQ1NjgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvVG95TG9ja3MuaAorKysgYi9Tb3VyY2Uv
V1RGL2JlbmNobWFya3MvVG95TG9ja3MuaApAQCAtNDk4LDggKzQ5OCw2IEBAIHZvaWQgcnVuRXZl
cnl0aGluZyhjb25zdCBjaGFyKiB3aGF0KQogICAgICAgICBCZW5jaG1hcms6OnRlbXBsYXRlIHJ1
bjxDYXNjYWRlTG9jazx1aW50MzJfdD4+KCJXb3JkQ2FzY2FkZUxvY2siKTsKICAgICBpZiAoIXN0
cmNtcCh3aGF0LCAiaGFuZG9mZmxvY2siKSB8fCAhc3RyY21wKHdoYXQsICJhbGwiKSkKICAgICAg
ICAgQmVuY2htYXJrOjp0ZW1wbGF0ZSBydW48SGFuZG9mZkxvY2s+KCJIYW5kb2ZmTG9jayIpOwot
ICAgIGlmICghc3RyY21wKHdoYXQsICJtdXRleCIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQot
ICAgICAgICBCZW5jaG1hcms6OnRlbXBsYXRlIHJ1bjxNdXRleD4oIlBsYXRmb3JtTXV0ZXgiKTsK
IH0KIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0tIAoyLjEwLjEKCg==
</data>
<flag name="review"
          id="337240"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316588</attachid>
            <date>2017-07-27 18:20:06 -0700</date>
            <delta_ts>2017-07-27 18:26:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Update-lock-benchmarks.patch</filename>
            <type>text/plain</type>
            <size>12301</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAxNTI5YzY0MjU5MGYzNzcxMGQ0NDdlMDQ5ZTExN2RmMDBjYTFiNDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI3IEp1bCAyMDE3IDE1OjEyOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVXBkYXRl
IGxvY2sgYmVuY2htYXJrcwoKLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEzICsrKysrKysKIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25T
cGVlZFRlc3QuY3BwIHwgNTIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwICAgfCAgNyArKy0tCiBTb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgICAgICB8ICA2ICsrLS0KIFNvdXJjZS9XVEYv
YmVuY2htYXJrcy9Ub3lMb2Nrcy5oICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKystLQog
NSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IGNjNTRjOWMuLjMzNWQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDctMjcgIEpGIEJh
c3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBsb2NrIGJlbmNo
bWFya3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NDkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
YmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOgorICAgICAgICAobWFpbik6CisgICAg
ICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1h
cmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvVG95TG9ja3MuaDoK
KwogMjAxNy0wNy0yNiAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXUEVdIEVuYWJsZSBLZXlib2FyZEV2ZW50IGtleSBhbmQgY29kZSBhdHRyaWJ1
dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4
IDRjM2JkNTQuLjEyZjVkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25T
cGVlZFRlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDEyICsyNCwxNSBAQAogICovCiAKIC8vIE9uIE1hYywgeW91IGNhbiBi
dWlsZCB0aGlzIGxpa2Ugc286Ci0vLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3Vy
Y2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2Uv
V1RGIC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxp
Y3Vjb3JlIC1zdGQ9YysrMTEKKy8vIHhjcnVuIGNsYW5nKysgLW8gQ29uZGl0aW9uU3BlZWRUZXN0
IFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwIC1PMyAtVyAtSVNv
dXJjZS9XVEYgLUlTb3VyY2UvV1RGL2ljdSAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZy
YW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0IC1mdmlzaWJpbGl0eT1oaWRk
ZW4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiVG95TG9ja3MuaCIKKyNpbmNs
dWRlIDxjb25kaXRpb25fdmFyaWFibGU+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhy
ZWFkPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3
LDEzICs2MCwyMCBAQCBOT19SRVRVUk4gdm9pZCB1c2FnZSgpCiAgICAgZXhpdCgxKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5h
bWUgTG9ja1R5cGU+Ci12b2lkIHdhaXQoQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLCBMb2NrVHlw
ZSYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0b3IsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIExvY2tUeXBlLCB0eXBl
bmFtZSBzdGQ6OmVuYWJsZV9pZjwhc3RkOjppc19zYW1lPENvbmRpdGlvblR5cGUsIHN0ZDo6Y29u
ZGl0aW9uX3ZhcmlhYmxlPjo6dmFsdWU+Ojp0eXBlKiA9IG51bGxwdHI+CisgICAgdm9pZCB3YWl0
KENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmIGxvY2ssIHN0ZDo6dW5pcXVlX2xv
Y2s8TG9ja1R5cGU+JiwgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQogewogICAgIHdoaWxlICgh
cHJlZGljYXRlKCkpCiAgICAgICAgIGNvbmRpdGlvbi53YWl0KGxvY2spOwogfQogCit0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdG9yLCB0eXBlbmFtZSBDb25kaXRpb25UeXBlLCB0eXBlbmFtZSBMb2Nr
VHlwZSwgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPENvbmRpdGlvblR5cGUs
IHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlPjo6dmFsdWU+Ojp0eXBlKiA9IG51bGxwdHI+Cit2b2lk
IHdhaXQoQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLCBMb2NrVHlwZSYsIHN0ZDo6dW5pcXVlX2xv
Y2s8TG9ja1R5cGU+JiBsb2NrZXIsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKK3sKKyAgICB3
aGlsZSAoIXByZWRpY2F0ZSgpKQorICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrZXIpOworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlw
ZW5hbWUgTm90aWZ5RnVuY3RvciwgdHlwZW5hbWUgTm90aWZ5QWxsRnVuY3Rvcj4KIHZvaWQgcnVu
VGVzdCgKICAgICB1bnNpZ25lZCBudW1Qcm9kdWNlcnMsCkBAIC05NSw3ICsxMDUsNyBAQCB2b2lk
IHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9ja1R5cGU+IGxvY2tlcihsb2NrKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHdhaXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlDb25kaXRp
b24sIGxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlDb25kaXRpb24sIGxv
Y2ssIGxvY2tlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGFMb2codG9TdHJpbmcoVGhyZWFkOjpjdXJyZW50KCksICI6
IENoZWNraW5nIGNvbnN1bXB0aW9uIHByZWRpY2F0ZSB3aXRoIHNob3VsZENvbnRpbnVlID0gIiwg
c2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9PSAiLCBxdWV1ZS5zaXplKCksICJcbiIp
KTsKQEAgLTEyNiw3ICsxMzYsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9ja1R5cGU+IGxv
Y2tlcihsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVsbENvbmRpdGlvbiwgbG9jaywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmdWxsQ29uZGl0aW9uLCBsb2NrLCBsb2NrZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKHRvU3Ry
aW5nKFRocmVhZDo6Y3VycmVudCgpLCAiOiBDaGVja2luZyBwcm9kdWN0aW9uIHByZWRpY2F0ZSB3
aXRoIHNob3VsZENvbnRpbnVlID0gIiwgc2hvdWxkQ29udGludWUsICIsIHF1ZXVlLnNpemUoKSA9
PSAiLCBxdWV1ZS5zaXplKCksICJcbiIpKTsKQEAgLTE1MCw4ICsxNjAsOCBAQCB2b2lkIHJ1blRl
c3QoCiAgICAgfQogICAgIG5vdGlmeUFsbChlbXB0eUNvbmRpdGlvbik7CiAKLSAgICBmb3IgKFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA6IGNvbnN1bWVyVGhyZWFkcykKLSAgICAg
ICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSWRlbnRpZmllcik7CisgICAgZm9yIChh
dXRvJiB0aHJlYWRJZGVudGlmaWVyIDogY29uc3VtZXJUaHJlYWRzKQorICAgICAgICB0aHJlYWRJ
ZGVudGlmaWVyLT53YWl0Rm9yQ29tcGxldGlvbigpOwogCiAgICAgUkVMRUFTRV9BU1NFUlQobnVt
UHJvZHVjZXJzICogbnVtTWVzc2FnZXNQZXJQcm9kdWNlciA9PSByZWNlaXZlZC5zaXplKCkpOwog
ICAgIHN0ZDo6c29ydChyZWNlaXZlZC5iZWdpbigpLCByZWNlaXZlZC5lbmQoKSk7CkBAIC0xOTks
NyArMjA5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGlmICghc3Ry
Y21wKGFyZ3ZbMV0sICJsb2NrIikgfHwgIXN0cmNtcChhcmd2WzFdLCAiYWxsIikpIHsKICAgICAg
ICAgcnVuQmVuY2htYXJrPExvY2ssIENvbmRpdGlvbj4oCiAgICAgICAgICAgICAiV1RGIExvY2sg
Tm90aWZ5T25lIiwKLSAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wg
bXVzdE5vdGlmeSkgeworICAgICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9v
bCkgewogICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICBbJl0gKENvbmRpdGlvbiYgY29uZGl0aW9uKSB7CkBAIC0yMTcsMjIg
KzIyNywyMiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIGRpZFJ1
biA9IHRydWU7CiAgICAgfQogICAgIGlmICghc3RyY21wKGFyZ3ZbMV0sICJtdXRleCIpIHx8ICFz
dHJjbXAoYXJndlsxXSwgImFsbCIpKSB7Ci0gICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhy
ZWFkQ29uZGl0aW9uPigKLSAgICAgICAgICAgICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlPbmUiLAot
ICAgICAgICAgICAgWyZdIChUaHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90
aWZ5KSB7Ci0gICAgICAgICAgICAgICAgY29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICBydW5C
ZW5jaG1hcms8c3RkOjptdXRleCwgc3RkOjpjb25kaXRpb25fdmFyaWFibGU+KAorICAgICAgICAg
ICAgInN0ZDo6bXV0ZXggTm90aWZ5T25lIiwKKyAgICAgICAgICAgIFsmXSAoc3RkOjpjb25kaXRp
b25fdmFyaWFibGUmIGNvbmRpdGlvbiwgYm9vbCkgeworICAgICAgICAgICAgICAgIGNvbmRpdGlv
bi5ub3RpZnlfb25lKCk7CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgWyZdIChUaHJlYWRD
b25kaXRpb24mIGNvbmRpdGlvbikgewotICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9hZGNh
c3QoKTsKKyAgICAgICAgICAgIFsmXSAoc3RkOjpjb25kaXRpb25fdmFyaWFibGUmIGNvbmRpdGlv
bikgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgcnVuQmVuY2htYXJrPE11dGV4LCBUaHJlYWRDb25kaXRpb24+KAotICAg
ICAgICAgICAgIlBsYXRmb3JtIE11dGV4IE5vdGlmeUFsbCIsCi0gICAgICAgICAgICBbJl0gKFRo
cmVhZENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkpIHsKKyAgICAgICAgcnVu
QmVuY2htYXJrPHN0ZDo6bXV0ZXgsIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlPigKKyAgICAgICAg
ICAgICJzdGQ6Om11dGV4IE5vdGlmeUFsbCIsCisgICAgICAgICAgICBbJl0gKHN0ZDo6Y29uZGl0
aW9uX3ZhcmlhYmxlJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgewogICAgICAgICAgICAg
ICAgIGlmIChtdXN0Tm90aWZ5KQotICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24uYnJvYWRj
YXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAg
ICAgICAgICB9LAotICAgICAgICAgICAgWyZdIChUaHJlYWRDb25kaXRpb24mIGNvbmRpdGlvbikg
ewotICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgICAgIFsm
XSAoc3RkOjpjb25kaXRpb25fdmFyaWFibGUmIGNvbmRpdGlvbikgeworICAgICAgICAgICAgICAg
IGNvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgZGlkUnVu
ID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0Zh
aXJuZXNzVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5j
cHAKaW5kZXggNjhjZTg0Yy4uMGMzNDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1h
cmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2Nr
RmFpcm5lc3NUZXN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogLy8gT24gTWFjLCB5b3UgY2Fu
IGJ1aWxkIHRoaXMgbGlrZSBzbzoKLS8vIHhjcnVuIGNsYW5nKysgLW8gTG9ja0ZhaXJuZXNzVGVz
dCBTb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAgLU8zIC1XIC1JU291
cmNlL1dURiAtSVNvdXJjZS9XVEYvYmVuY2htYXJrcyAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxX
VEYgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzExIC1mdmlzaWJpbGl0
eT1oaWRkZW4KKy8vIHhjcnVuIGNsYW5nKysgLW8gTG9ja0ZhaXJuZXNzVGVzdCBTb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAgLU8zIC1XIC1JU291cmNlL1dURiAtSVNv
dXJjZS9XVEYvaWN1IC1JU291cmNlL1dURi9iZW5jaG1hcmtzIC1MV2ViS2l0QnVpbGQvUmVsZWFz
ZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9YysrMTQgLWZ2aXNp
YmlsaXR5PWhpZGRlbgogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlIDx0aHJlYWQ+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bW1hUHJpbnRlci5oPgorI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgogI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIHsKIAogTk9fUkVUVVJOIHZvaWQg
dXNhZ2UoKQogewotICAgIHByaW50ZigiVXNhZ2U6IExvY2tGYWlybmVzc1Rlc3QgeWllbGRzcGlu
bG9ja3xwYXVzZXNwaW5sb2NrfHdvcmRsb2NrfGxvY2t8YmFyZ2luZ2xvY2t8YmFyZ2luZ3dvcmRs
b2NrfHRodW5kZXJsb2NrfHRodW5kZXJ3b3JkbG9ja3xjYXNjYWRlbG9ja3xjYXNjYWRld29yZGxv
Y2toYW5kb2ZmbG9ja3xtdXRleHxhbGwgPG51bSB0aHJlYWRzPiA8c2Vjb25kcyBwZXIgdGVzdD4g
PG1pY3Jvc2Vjb25kcyBpbiBjcml0aWNhbCBzZWN0aW9uPlxuIik7CisgICAgcHJpbnRmKCJVc2Fn
ZTogTG9ja0ZhaXJuZXNzVGVzdCB5aWVsZHNwaW5sb2NrfHBhdXNlc3BpbmxvY2t8d29yZGxvY2t8
bG9ja3xiYXJnaW5nbG9ja3xiYXJnaW5nd29yZGxvY2t8dGh1bmRlcmxvY2t8dGh1bmRlcndvcmRs
b2NrfGNhc2NhZGVsb2NrfGNhc2NhZGV3b3JkbG9ja2hhbmRvZmZsb2NrfHVuZmFpcmxvY2t8bXV0
ZXh8YWxsIDxudW0gdGhyZWFkcz4gPHNlY29uZHMgcGVyIHRlc3Q+IDxtaWNyb3NlY29uZHMgaW4g
Y3JpdGljYWwgc2VjdGlvbj5cbiIpOwogICAgIGV4aXQoMSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2ht
YXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAppbmRleCAwZDYyMzVkLi40MTlmZjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKKysrIGIvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAK
IC8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlzIGxpa2Ugc286Ci0vLyB4Y3J1biBjbGFuZysr
IC1vIExvY2tTcGVlZFRlc3QgU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3Bw
IC1PMyAtVyAtSVNvdXJjZS9XVEYgLUlTb3VyY2UvV1RGL2JlbmNobWFya3MgLUxXZWJLaXRCdWls
ZC9SZWxlYXNlIC1sV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtbGljdWNvcmUgLXN0ZD1jKysx
MSAtZnZpc2liaWxpdHk9aGlkZGVuCisvLyB4Y3J1biBjbGFuZysrIC1vIExvY2tTcGVlZFRlc3Qg
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwIC1PMyAtVyAtSVNvdXJjZS9X
VEYgLUlTb3VyY2UvV1RGL2ljdSAtSVNvdXJjZS9XVEYvYmVuY2htYXJrcyAtTFdlYktpdEJ1aWxk
L1JlbGVhc2UgLWxXVEYgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0
IC1mdmlzaWJpbGl0eT1oaWRkZW4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC01Myw3ICs1
Myw3IEBAIGRvdWJsZSBzZWNvbmRzUGVyVGVzdDsKICAgICAKIE5PX1JFVFVSTiB2b2lkIHVzYWdl
KCkKIHsKLSAgICBwcmludGYoIlVzYWdlOiBMb2NrU3BlZWRUZXN0IHlpZWxkc3BpbmxvY2t8cGF1
c2VzcGlubG9ja3x3b3JkbG9ja3xsb2NrfGJhcmdpbmdsb2NrfGJhcmdpbmd3b3JkbG9ja3x0aHVu
ZGVybG9ja3x0aHVuZGVyd29yZGxvY2t8Y2FzY2FkZWxvY2t8Y2FzY2FkZXdvcmRsb2NrfGhhbmRv
ZmZsb2NrfG11dGV4fGFsbCA8bnVtIHRocmVhZCBncm91cHM+IDxudW0gdGhyZWFkcyBwZXIgZ3Jv
dXA+IDx3b3JrIHBlciBjcml0aWNhbCBzZWN0aW9uPiA8d29yayBiZXR3ZWVuIGNyaXRpY2FsIHNl
Y3Rpb25zPiA8c3BpbiBsaW1pdD4gPHNlY29uZHMgcGVyIHRlc3Q+XG4iKTsKKyAgICBwcmludGYo
IlVzYWdlOiBMb2NrU3BlZWRUZXN0IHlpZWxkc3BpbmxvY2t8cGF1c2VzcGlubG9ja3x3b3JkbG9j
a3xsb2NrfGJhcmdpbmdsb2NrfGJhcmdpbmd3b3JkbG9ja3x0aHVuZGVybG9ja3x0aHVuZGVyd29y
ZGxvY2t8Y2FzY2FkZWxvY2t8Y2FzY2FkZXdvcmRsb2NrfGhhbmRvZmZsb2NrfHVuZmFpcmxvY2t8
bXV0ZXh8YWxsIDxudW0gdGhyZWFkIGdyb3Vwcz4gPG51bSB0aHJlYWRzIHBlciBncm91cD4gPHdv
cmsgcGVyIGNyaXRpY2FsIHNlY3Rpb24+IDx3b3JrIGJldHdlZW4gY3JpdGljYWwgc2VjdGlvbnM+
IDxzcGluIGxpbWl0PiA8c2Vjb25kcyBwZXIgdGVzdD5cbiIpOwogICAgIGV4aXQoMSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Ub3lMb2Nrcy5oIGIvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL1RveUxvY2tzLmgKaW5kZXggMDkwYWQ5Ni4uNDEwMjE0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL1RveUxvY2tzLmgKKysrIGIvU291cmNlL1dURi9iZW5j
aG1hcmtzL1RveUxvY2tzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTggQEAKICNpZm5kZWYgVG95TG9ja3Nf
aAogI2RlZmluZSBUb3lMb2Nrc19oCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJl
YWQ+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmRMb2NrLmg+CiAKKyNp
ZiBfX2hhc19pbmNsdWRlKDxvcy9sb2NrLmg+KQorI2luY2x1ZGUgPG9zL2xvY2suaD4KKyNkZWZp
bmUgSEFTX1VORkFJUl9MT0NLCisjZW5kaWYKKwogI2lmIGRlZmluZWQoRVhUUkFfTE9DS1MpICYm
IEVYVFJBX0xPQ0tTCiAjaW5jbHVkZSA8c3luY2hyb25pYz4KICNlbmRpZgpAQCAtNDY3LDYgKzQ3
MywyMSBAQCBwcml2YXRlOgogICAgIEF0b21pYzx1bnNpZ25lZD4gbV9zdGF0ZTsKIH07CiAKKyAj
aWZkZWYgSEFTX1VORkFJUl9MT0NLCisgY2xhc3MgVW5mYWlyTG9jayB7CisgICAgIG9zX3VuZmFp
cl9sb2NrIGwgPSBPU19VTkZBSVJfTE9DS19JTklUOworIHB1YmxpYzoKKyAgICAgdm9pZCBsb2Nr
KCkKKyAgICAgeworICAgICAgICAgb3NfdW5mYWlyX2xvY2tfbG9jaygmbCk7CisgICAgIH0KKyAg
ICAgdm9pZCB1bmxvY2soKQorICAgICB7CisgICAgICAgICBvc191bmZhaXJfbG9ja191bmxvY2so
JmwpOworICAgICB9CisgfTsKKyNlbmRpZgorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCZW5jaG1hcms+
CiB2b2lkIHJ1bkV2ZXJ5dGhpbmcoY29uc3QgY2hhciogd2hhdCkKIHsKQEAgLTQ5OCw4ICs1MTks
MTIgQEAgdm9pZCBydW5FdmVyeXRoaW5nKGNvbnN0IGNoYXIqIHdoYXQpCiAgICAgICAgIEJlbmNo
bWFyazo6dGVtcGxhdGUgcnVuPENhc2NhZGVMb2NrPHVpbnQzMl90Pj4oIldvcmRDYXNjYWRlTG9j
ayIpOwogICAgIGlmICghc3RyY21wKHdoYXQsICJoYW5kb2ZmbG9jayIpIHx8ICFzdHJjbXAod2hh
dCwgImFsbCIpKQogICAgICAgICBCZW5jaG1hcms6OnRlbXBsYXRlIHJ1bjxIYW5kb2ZmTG9jaz4o
IkhhbmRvZmZMb2NrIik7CisjaWZkZWYgSEFTX1VORkFJUl9MT0NLCisgICAgaWYgKCFzdHJjbXAo
d2hhdCwgInVuZmFpcmxvY2siKSB8fCAhc3RyY21wKHdoYXQsICJhbGwiKSkKKyAgICAgICAgQmVu
Y2htYXJrOjp0ZW1wbGF0ZSBydW48VW5mYWlyTG9jaz4oIlVuZmFpckxvY2siKTsKKyNlbmRpZgog
ICAgIGlmICghc3RyY21wKHdoYXQsICJtdXRleCIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQot
ICAgICAgICBCZW5jaG1hcms6OnRlbXBsYXRlIHJ1bjxNdXRleD4oIlBsYXRmb3JtTXV0ZXgiKTsK
KyAgICAgICAgQmVuY2htYXJrOjp0ZW1wbGF0ZSBydW48c3RkOjptdXRleD4oInN0ZDo6bXV0ZXgi
KTsKIH0KIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0tIAoyLjEwLjEKCg==
</data>
<flag name="review"
          id="337253"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="337254"
          type_id="3"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316590</attachid>
            <date>2017-07-27 18:26:54 -0700</date>
            <delta_ts>2017-07-27 18:29:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Update-lock-benchmarks.patch</filename>
            <type>text/plain</type>
            <size>12280</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAxYzdlMjYzYmM2YTkzY2QzMTk4MDJiZGM3ZDcxYjg0YzU2OGMwMDA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI3IEp1bCAyMDE3IDE1OjEyOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVXBkYXRl
IGxvY2sgYmVuY2htYXJrcwoKLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEzICsrKysrKysKIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25T
cGVlZFRlc3QuY3BwIHwgNTIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwICAgfCAgNyArKy0tCiBTb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgICAgICB8ICA2ICsrLS0KIFNvdXJjZS9XVEYv
YmVuY2htYXJrcy9Ub3lMb2Nrcy5oICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKystLQog
NSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IGNjNTRjOWMuLjMzNWQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDctMjcgIEpGIEJh
c3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBsb2NrIGJlbmNo
bWFya3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NDkwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
YmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOgorICAgICAgICAobWFpbik6CisgICAg
ICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1h
cmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvVG95TG9ja3MuaDoK
KwogMjAxNy0wNy0yNiAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXUEVdIEVuYWJsZSBLZXlib2FyZEV2ZW50IGtleSBhbmQgY29kZSBhdHRyaWJ1
dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4
IDRjM2JkNTQuLjNjOGI5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25T
cGVlZFRlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDEyICsyNCwxNSBAQAogICovCiAKIC8vIE9uIE1hYywgeW91IGNhbiBi
dWlsZCB0aGlzIGxpa2Ugc286Ci0vLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3Vy
Y2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2Uv
V1RGIC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxp
Y3Vjb3JlIC1zdGQ9YysrMTEKKy8vIHhjcnVuIGNsYW5nKysgLW8gQ29uZGl0aW9uU3BlZWRUZXN0
IFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwIC1PMyAtVyAtSVNv
dXJjZS9XVEYgLUlTb3VyY2UvV1RGL2ljdSAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZy
YW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0IC1mdmlzaWJpbGl0eT1oaWRk
ZW4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiVG95TG9ja3MuaCIKKyNpbmNs
dWRlIDxjb25kaXRpb25fdmFyaWFibGU+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhy
ZWFkPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3
LDEzICs2MCwyMCBAQCBOT19SRVRVUk4gdm9pZCB1c2FnZSgpCiAgICAgZXhpdCgxKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5h
bWUgTG9ja1R5cGU+Ci12b2lkIHdhaXQoQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLCBMb2NrVHlw
ZSYgbG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQordGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX3NhbWU8Q29uZGl0aW9uVHlwZSwgc3RkOjpjb25kaXRp
b25fdmFyaWFibGU+Ojp2YWx1ZT46OnR5cGUqID0gbnVsbHB0cj4KK3ZvaWQgd2FpdChDb25kaXRp
b25UeXBlJiBjb25kaXRpb24sIExvY2tUeXBlJiBsb2NrLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tU
eXBlPiYsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKIHsKICAgICB3aGlsZSAoIXByZWRpY2F0
ZSgpKQogICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgTG9ja1R5cGUsIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxDb25kaXRpb25UeXBlLCBzdGQ6OmNv
bmRpdGlvbl92YXJpYWJsZT46OnZhbHVlPjo6dHlwZSogPSBudWxscHRyPgordm9pZCB3YWl0KENv
bmRpdGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tU
eXBlPiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCit7CisgICAgd2hpbGUgKCFw
cmVkaWNhdGUoKSkKKyAgICAgICAgY29uZGl0aW9uLndhaXQobG9ja2VyKTsKK30KKwogdGVtcGxh
dGU8dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5v
dGlmeUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlmeUFsbEZ1bmN0b3I+CiB2b2lkIHJ1blRlc3QoCiAg
ICAgdW5zaWduZWQgbnVtUHJvZHVjZXJzLApAQCAtOTUsNyArMTA1LDcgQEAgdm9pZCBydW5UZXN0
KAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB3YWl0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2Nr
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2NrLCBsb2Nr
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nKHRvU3RyaW5nKFRocmVhZDo6Y3VycmVudCgpLCAiOiBDaGVja2lu
ZyBjb25zdW1wdGlvbiBwcmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENv
bnRpbnVlLCAiLCBxdWV1ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CkBAIC0x
MjYsNyArMTM2LDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9j
ayk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVsbENvbmRpdGlvbiwgbG9jaywgbG9ja2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhUaHJl
YWQ6OmN1cnJlbnQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBwcmVkaWNhdGUgd2l0aCBzaG91
bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1ZS5zaXplKCkgPT0gIiwgcXVl
dWUuc2l6ZSgpLCAiXG4iKSk7CkBAIC0xNTAsOCArMTYwLDggQEAgdm9pZCBydW5UZXN0KAogICAg
IH0KICAgICBub3RpZnlBbGwoZW1wdHlDb25kaXRpb24pOwogCi0gICAgZm9yIChUaHJlYWRJZGVu
dGlmaWVyIHRocmVhZElkZW50aWZpZXIgOiBjb25zdW1lclRocmVhZHMpCi0gICAgICAgIHdhaXRG
b3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElkZW50aWZpZXIpOworICAgIGZvciAoYXV0byYgdGhy
ZWFkSWRlbnRpZmllciA6IGNvbnN1bWVyVGhyZWFkcykKKyAgICAgICAgdGhyZWFkSWRlbnRpZmll
ci0+d2FpdEZvckNvbXBsZXRpb24oKTsKIAogICAgIFJFTEVBU0VfQVNTRVJUKG51bVByb2R1Y2Vy
cyAqIG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsKICAgICBzdGQ6
OnNvcnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOwpAQCAtMTk5LDcgKzIwOSw3
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBpZiAoIXN0cmNtcChhcmd2
WzFdLCAibG9jayIpIHx8ICFzdHJjbXAoYXJndlsxXSwgImFsbCIpKSB7CiAgICAgICAgIHJ1bkJl
bmNobWFyazxMb2NrLCBDb25kaXRpb24+KAogICAgICAgICAgICAgIldURiBMb2NrIE5vdGlmeU9u
ZSIsCi0gICAgICAgICAgICBbJl0gKENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIG11c3ROb3Rp
ZnkpIHsKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wpIHsKICAg
ICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewpAQCAtMjE3LDIyICsyMjcsMjIg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICBkaWRSdW4gPSB0cnVl
OwogICAgIH0KICAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAibXV0ZXgiKSB8fCAhc3RyY21wKGFy
Z3ZbMV0sICJhbGwiKSkgewotICAgICAgICBydW5CZW5jaG1hcms8TXV0ZXgsIFRocmVhZENvbmRp
dGlvbj4oCi0gICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXggTm90aWZ5T25lIiwKLSAgICAgICAg
ICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgewot
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAgcnVuQmVuY2htYXJr
PHN0ZDo6bXV0ZXgsIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlPigKKyAgICAgICAgICAgICJzdGQ6
Om11dGV4IE5vdGlmeU9uZSIsCisgICAgICAgICAgICBbJl0gKHN0ZDo6Y29uZGl0aW9uX3Zhcmlh
YmxlJiBjb25kaXRpb24sIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5
X29uZSgpOwogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9u
JiBjb25kaXRpb24pIHsKLSAgICAgICAgICAgICAgICBjb25kaXRpb24uYnJvYWRjYXN0KCk7Cisg
ICAgICAgICAgICBbJl0gKHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlJiBjb25kaXRpb24pIHsKKyAg
ICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKLSAgICAgICAgICAg
ICJQbGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAotICAgICAgICAgICAgWyZdIChUaHJlYWRDb25k
aXRpb24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgIHJ1bkJlbmNobWFy
azxzdGQ6Om11dGV4LCBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZT4oCisgICAgICAgICAgICAic3Rk
OjptdXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChzdGQ6OmNvbmRpdGlvbl92YXJp
YWJsZSYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkpIHsKICAgICAgICAgICAgICAgICBpZiAo
bXVzdE5vdGlmeSkKLSAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOwor
ICAgICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24pIHsKLSAgICAg
ICAgICAgICAgICBjb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgICAgICBbJl0gKHN0ZDo6
Y29uZGl0aW9uX3ZhcmlhYmxlJiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRp
b24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIGRpZFJ1biA9IHRydWU7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rl
c3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCmluZGV4
IDY4Y2U4NGMuLjBjMzQ2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2Nr
RmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNz
VGVzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAKIC8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0
aGlzIGxpa2Ugc286Ci0vLyB4Y3J1biBjbGFuZysrIC1vIExvY2tGYWlybmVzc1Rlc3QgU291cmNl
L1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwIC1PMyAtVyAtSVNvdXJjZS9XVEYg
LUlTb3VyY2UvV1RGL2JlbmNobWFya3MgLUxXZWJLaXRCdWlsZC9SZWxlYXNlIC1sV1RGIC1mcmFt
ZXdvcmsgRm91bmRhdGlvbiAtbGljdWNvcmUgLXN0ZD1jKysxMSAtZnZpc2liaWxpdHk9aGlkZGVu
CisvLyB4Y3J1biBjbGFuZysrIC1vIExvY2tGYWlybmVzc1Rlc3QgU291cmNlL1dURi9iZW5jaG1h
cmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwIC1PMyAtVyAtSVNvdXJjZS9XVEYgLUlTb3VyY2UvV1RG
L2ljdSAtSVNvdXJjZS9XVEYvYmVuY2htYXJrcyAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYg
LWZyYW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0IC1mdmlzaWJpbGl0eT1o
aWRkZW4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSA8dGhyZWFkPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CkBAIC00OCw3ICs0OSw3IEBAIG5hbWVzcGFjZSB7CiAKIE5PX1JFVFVSTiB2b2lkIHVzYWdlKCkK
IHsKLSAgICBwcmludGYoIlVzYWdlOiBMb2NrRmFpcm5lc3NUZXN0IHlpZWxkc3BpbmxvY2t8cGF1
c2VzcGlubG9ja3x3b3JkbG9ja3xsb2NrfGJhcmdpbmdsb2NrfGJhcmdpbmd3b3JkbG9ja3x0aHVu
ZGVybG9ja3x0aHVuZGVyd29yZGxvY2t8Y2FzY2FkZWxvY2t8Y2FzY2FkZXdvcmRsb2NraGFuZG9m
ZmxvY2t8bXV0ZXh8YWxsIDxudW0gdGhyZWFkcz4gPHNlY29uZHMgcGVyIHRlc3Q+IDxtaWNyb3Nl
Y29uZHMgaW4gY3JpdGljYWwgc2VjdGlvbj5cbiIpOworICAgIHByaW50ZigiVXNhZ2U6IExvY2tG
YWlybmVzc1Rlc3QgeWllbGRzcGlubG9ja3xwYXVzZXNwaW5sb2NrfHdvcmRsb2NrfGxvY2t8YmFy
Z2luZ2xvY2t8YmFyZ2luZ3dvcmRsb2NrfHRodW5kZXJsb2NrfHRodW5kZXJ3b3JkbG9ja3xjYXNj
YWRlbG9ja3xjYXNjYWRld29yZGxvY2toYW5kb2ZmbG9ja3x1bmZhaXJsb2NrfG11dGV4fGFsbCA8
bnVtIHRocmVhZHM+IDxzZWNvbmRzIHBlciB0ZXN0PiA8bWljcm9zZWNvbmRzIGluIGNyaXRpY2Fs
IHNlY3Rpb24+XG4iKTsKICAgICBleGl0KDEpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9j
a1NwZWVkVGVzdC5jcHAKaW5kZXggMGQ2MjM1ZC4uNDE5ZmY1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2ht
YXJrcy9Mb2NrU3BlZWRUZXN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAvLyBPbiBN
YWMsIHlvdSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgotLy8geGNydW4gY2xhbmcrKyAtbyBMb2Nr
U3BlZWRUZXN0IFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcg
LUlTb3VyY2UvV1RGIC1JU291cmNlL1dURi9iZW5jaG1hcmtzIC1MV2ViS2l0QnVpbGQvUmVsZWFz
ZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9YysrMTEgLWZ2aXNp
YmlsaXR5PWhpZGRlbgorLy8geGNydW4gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNvdXJjZS9X
VEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1JU291
cmNlL1dURi9pY3UgLUlTb3VyY2UvV1RGL2JlbmNobWFya3MgLUxXZWJLaXRCdWlsZC9SZWxlYXNl
IC1sV1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtbGljdWNvcmUgLXN0ZD1jKysxNCAtZnZpc2li
aWxpdHk9aGlkZGVuCiAKICNpbmNsdWRlICJjb25maWcuaCIKIApAQCAtNTMsNyArNTMsNyBAQCBk
b3VibGUgc2Vjb25kc1BlclRlc3Q7CiAgICAgCiBOT19SRVRVUk4gdm9pZCB1c2FnZSgpCiB7Ci0g
ICAgcHJpbnRmKCJVc2FnZTogTG9ja1NwZWVkVGVzdCB5aWVsZHNwaW5sb2NrfHBhdXNlc3Bpbmxv
Y2t8d29yZGxvY2t8bG9ja3xiYXJnaW5nbG9ja3xiYXJnaW5nd29yZGxvY2t8dGh1bmRlcmxvY2t8
dGh1bmRlcndvcmRsb2NrfGNhc2NhZGVsb2NrfGNhc2NhZGV3b3JkbG9ja3xoYW5kb2ZmbG9ja3xt
dXRleHxhbGwgPG51bSB0aHJlYWQgZ3JvdXBzPiA8bnVtIHRocmVhZHMgcGVyIGdyb3VwPiA8d29y
ayBwZXIgY3JpdGljYWwgc2VjdGlvbj4gPHdvcmsgYmV0d2VlbiBjcml0aWNhbCBzZWN0aW9ucz4g
PHNwaW4gbGltaXQ+IDxzZWNvbmRzIHBlciB0ZXN0PlxuIik7CisgICAgcHJpbnRmKCJVc2FnZTog
TG9ja1NwZWVkVGVzdCB5aWVsZHNwaW5sb2NrfHBhdXNlc3BpbmxvY2t8d29yZGxvY2t8bG9ja3xi
YXJnaW5nbG9ja3xiYXJnaW5nd29yZGxvY2t8dGh1bmRlcmxvY2t8dGh1bmRlcndvcmRsb2NrfGNh
c2NhZGVsb2NrfGNhc2NhZGV3b3JkbG9ja3xoYW5kb2ZmbG9ja3x1bmZhaXJsb2NrfG11dGV4fGFs
bCA8bnVtIHRocmVhZCBncm91cHM+IDxudW0gdGhyZWFkcyBwZXIgZ3JvdXA+IDx3b3JrIHBlciBj
cml0aWNhbCBzZWN0aW9uPiA8d29yayBiZXR3ZWVuIGNyaXRpY2FsIHNlY3Rpb25zPiA8c3BpbiBs
aW1pdD4gPHNlY29uZHMgcGVyIHRlc3Q+XG4iKTsKICAgICBleGl0KDEpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvVG95TG9ja3MuaCBiL1NvdXJjZS9XVEYvYmVuY2ht
YXJrcy9Ub3lMb2Nrcy5oCmluZGV4IDA5MGFkOTYuLmJhY2FkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvYmVuY2htYXJrcy9Ub3lMb2Nrcy5oCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9U
b3lMb2Nrcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjYsMTIgKzI2LDE4IEBACiAjaWZuZGVmIFRveUxvY2tzX2gKICNkZWZp
bmUgVG95TG9ja3NfaAogCisjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhyZWFkPgogI2lu
Y2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvUGFya2luZ0xvdC5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JkTG9jay5oPgogCisjaWYgX19oYXNf
aW5jbHVkZSg8b3MvbG9jay5oPikKKyNpbmNsdWRlIDxvcy9sb2NrLmg+CisjZGVmaW5lIEhBU19V
TkZBSVJfTE9DSworI2VuZGlmCisKICNpZiBkZWZpbmVkKEVYVFJBX0xPQ0tTKSAmJiBFWFRSQV9M
T0NLUwogI2luY2x1ZGUgPHN5bmNocm9uaWM+CiAjZW5kaWYKQEAgLTQ2Nyw2ICs0NzMsMjEgQEAg
cHJpdmF0ZToKICAgICBBdG9taWM8dW5zaWduZWQ+IG1fc3RhdGU7CiB9OwogCisjaWZkZWYgSEFT
X1VORkFJUl9MT0NLCitjbGFzcyBVbmZhaXJMb2NrIHsKKyAgICBvc191bmZhaXJfbG9jayBsID0g
T1NfVU5GQUlSX0xPQ0tfSU5JVDsKK3B1YmxpYzoKKyAgICB2b2lkIGxvY2soKQorICAgIHsKKyAg
ICAgICAgb3NfdW5mYWlyX2xvY2tfbG9jaygmbCk7CisgICAgfQorICAgIHZvaWQgdW5sb2NrKCkK
KyAgICB7CisgICAgICAgIG9zX3VuZmFpcl9sb2NrX3VubG9jaygmbCk7CisgICAgfQorfTsKKyNl
bmRpZgorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCZW5jaG1hcms+CiB2b2lkIHJ1bkV2ZXJ5dGhpbmco
Y29uc3QgY2hhciogd2hhdCkKIHsKQEAgLTQ5OCw4ICs1MTksMTIgQEAgdm9pZCBydW5FdmVyeXRo
aW5nKGNvbnN0IGNoYXIqIHdoYXQpCiAgICAgICAgIEJlbmNobWFyazo6dGVtcGxhdGUgcnVuPENh
c2NhZGVMb2NrPHVpbnQzMl90Pj4oIldvcmRDYXNjYWRlTG9jayIpOwogICAgIGlmICghc3RyY21w
KHdoYXQsICJoYW5kb2ZmbG9jayIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQogICAgICAgICBC
ZW5jaG1hcms6OnRlbXBsYXRlIHJ1bjxIYW5kb2ZmTG9jaz4oIkhhbmRvZmZMb2NrIik7CisjaWZk
ZWYgSEFTX1VORkFJUl9MT0NLCisgICAgaWYgKCFzdHJjbXAod2hhdCwgInVuZmFpcmxvY2siKSB8
fCAhc3RyY21wKHdoYXQsICJhbGwiKSkKKyAgICAgICAgQmVuY2htYXJrOjp0ZW1wbGF0ZSBydW48
VW5mYWlyTG9jaz4oIlVuZmFpckxvY2siKTsKKyNlbmRpZgogICAgIGlmICghc3RyY21wKHdoYXQs
ICJtdXRleCIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQotICAgICAgICBCZW5jaG1hcms6OnRl
bXBsYXRlIHJ1bjxNdXRleD4oIlBsYXRmb3JtTXV0ZXgiKTsKKyAgICAgICAgQmVuY2htYXJrOjp0
ZW1wbGF0ZSBydW48c3RkOjptdXRleD4oInN0ZDo6bXV0ZXgiKTsKIH0KIAogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCi0tIAoyLjEwLjEKCg==
</data>
<flag name="commit-queue"
          id="337256"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316592</attachid>
            <date>2017-07-27 18:29:55 -0700</date>
            <delta_ts>2017-07-27 19:17:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Update-lock-benchmarks.patch</filename>
            <type>text/plain</type>
            <size>12277</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA5MTFmOGQ2M2IyZDJkNmQ5MDRhZTRkMTU5MWZmNDgzZjE1NGJjOWVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDI3IEp1bCAyMDE3IDE1OjEyOjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVXBkYXRl
IGxvY2sgYmVuY2htYXJrcwoKLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDEzICsrKysrKysKIFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25T
cGVlZFRlc3QuY3BwIHwgNTIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwICAgfCAgNyArKy0tCiBTb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgICAgICB8ICA2ICsrLS0KIFNvdXJjZS9XVEYv
YmVuY2htYXJrcy9Ub3lMb2Nrcy5oICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKystLQog
NSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IGNjNTRjOWMuLmFmMTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDctMjcgIEpGIEJh
c3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBsb2NrIGJlbmNo
bWFya3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NDkwNworCisgICAgICAgIFJldmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgICogYmVu
Y2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtz
L0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvVG95TG9ja3MuaDoKKwog
MjAxNy0wNy0yNiAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtXUEVdIEVuYWJsZSBLZXlib2FyZEV2ZW50IGtleSBhbmQgY29kZSBhdHRyaWJ1dGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNw
cCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4IDRj
M2JkNTQuLjNjOGI5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRp
b25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVl
ZFRlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI0LDEyICsyNCwxNSBAQAogICovCiAKIC8vIE9uIE1hYywgeW91IGNhbiBidWls
ZCB0aGlzIGxpa2Ugc286Ci0vLyBjbGFuZysrIC1vIENvbmRpdGlvblNwZWVkVGVzdCBTb3VyY2Uv
V1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RG
IC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAtbFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vj
b3JlIC1zdGQ9YysrMTEKKy8vIHhjcnVuIGNsYW5nKysgLW8gQ29uZGl0aW9uU3BlZWRUZXN0IFNv
dXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwIC1PMyAtVyAtSVNvdXJj
ZS9XVEYgLUlTb3VyY2UvV1RGL2ljdSAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZyYW1l
d29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0IC1mdmlzaWJpbGl0eT1oaWRkZW4K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiVG95TG9ja3MuaCIKKyNpbmNsdWRl
IDxjb25kaXRpb25fdmFyaWFibGU+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhyZWFk
PgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUg
PHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAgLTU3LDEz
ICs2MCwyMCBAQCBOT19SRVRVUk4gdm9pZCB1c2FnZSgpCiAgICAgZXhpdCgxKTsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUg
TG9ja1R5cGU+Ci12b2lkIHdhaXQoQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLCBMb2NrVHlwZSYg
bG9jaywgY29uc3QgRnVuY3RvciYgcHJlZGljYXRlKQordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rv
ciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX3NhbWU8Q29uZGl0aW9uVHlwZSwgc3RkOjpjb25kaXRpb25f
dmFyaWFibGU+Ojp2YWx1ZT46OnR5cGUqID0gbnVsbHB0cj4KK3ZvaWQgd2FpdChDb25kaXRpb25U
eXBlJiBjb25kaXRpb24sIExvY2tUeXBlJiBsb2NrLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBl
PiYsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKIHsKICAgICB3aGlsZSAoIXByZWRpY2F0ZSgp
KQogICAgICAgICBjb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3RvciwgdHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVu
YW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxDb25kaXRpb25UeXBlLCBzdGQ6OmNvbmRp
dGlvbl92YXJpYWJsZT46OnZhbHVlPjo6dHlwZSogPSBudWxscHRyPgordm9pZCB3YWl0KENvbmRp
dGlvblR5cGUmIGNvbmRpdGlvbiwgTG9ja1R5cGUmLCBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBl
PiYgbG9ja2VyLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCit7CisgICAgd2hpbGUgKCFwcmVk
aWNhdGUoKSkKKyAgICAgICAgY29uZGl0aW9uLndhaXQobG9ja2VyKTsKK30KKwogdGVtcGxhdGU8
dHlwZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIENvbmRpdGlvblR5cGUsIHR5cGVuYW1lIE5vdGlm
eUZ1bmN0b3IsIHR5cGVuYW1lIE5vdGlmeUFsbEZ1bmN0b3I+CiB2b2lkIHJ1blRlc3QoCiAgICAg
dW5zaWduZWQgbnVtUHJvZHVjZXJzLApAQCAtOTUsNyArMTA1LDcgQEAgdm9pZCBydW5UZXN0KAog
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1
ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3
YWl0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2NrLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5Q29uZGl0aW9uLCBsb2NrLCBsb2NrZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nKHRvU3RyaW5nKFRocmVhZDo6Y3VycmVudCgpLCAiOiBDaGVja2luZyBj
b25zdW1wdGlvbiBwcmVkaWNhdGUgd2l0aCBzaG91bGRDb250aW51ZSA9ICIsIHNob3VsZENvbnRp
bnVlLCAiLCBxdWV1ZS5zaXplKCkgPT0gIiwgcXVldWUuc2l6ZSgpLCAiXG4iKSk7CkBAIC0xMjYs
NyArMTM2LDcgQEAgdm9pZCBydW5UZXN0KAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2tUeXBlPiBsb2NrZXIobG9jayk7
CiAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZ1bGxDb25kaXRpb24sIGxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVs
bENvbmRpdGlvbiwgbG9jaywgbG9ja2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsm
XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZyh0b1N0cmluZyhUaHJlYWQ6
OmN1cnJlbnQoKSwgIjogQ2hlY2tpbmcgcHJvZHVjdGlvbiBwcmVkaWNhdGUgd2l0aCBzaG91bGRD
b250aW51ZSA9ICIsIHNob3VsZENvbnRpbnVlLCAiLCBxdWV1ZS5zaXplKCkgPT0gIiwgcXVldWUu
c2l6ZSgpLCAiXG4iKSk7CkBAIC0xNTAsOCArMTYwLDggQEAgdm9pZCBydW5UZXN0KAogICAgIH0K
ICAgICBub3RpZnlBbGwoZW1wdHlDb25kaXRpb24pOwogCi0gICAgZm9yIChUaHJlYWRJZGVudGlm
aWVyIHRocmVhZElkZW50aWZpZXIgOiBjb25zdW1lclRocmVhZHMpCi0gICAgICAgIHdhaXRGb3JU
aHJlYWRDb21wbGV0aW9uKHRocmVhZElkZW50aWZpZXIpOworICAgIGZvciAoYXV0byYgdGhyZWFk
SWRlbnRpZmllciA6IGNvbnN1bWVyVGhyZWFkcykKKyAgICAgICAgdGhyZWFkSWRlbnRpZmllci0+
d2FpdEZvckNvbXBsZXRpb24oKTsKIAogICAgIFJFTEVBU0VfQVNTRVJUKG51bVByb2R1Y2VycyAq
IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXIgPT0gcmVjZWl2ZWQuc2l6ZSgpKTsKICAgICBzdGQ6OnNv
cnQocmVjZWl2ZWQuYmVnaW4oKSwgcmVjZWl2ZWQuZW5kKCkpOwpAQCAtMTk5LDcgKzIwOSw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBpZiAoIXN0cmNtcChhcmd2WzFd
LCAibG9jayIpIHx8ICFzdHJjbXAoYXJndlsxXSwgImFsbCIpKSB7CiAgICAgICAgIHJ1bkJlbmNo
bWFyazxMb2NrLCBDb25kaXRpb24+KAogICAgICAgICAgICAgIldURiBMb2NrIE5vdGlmeU9uZSIs
Ci0gICAgICAgICAgICBbJl0gKENvbmRpdGlvbiYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkp
IHsKKyAgICAgICAgICAgIFsmXSAoQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wpIHsKICAgICAg
ICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgWyZdIChDb25kaXRpb24mIGNvbmRpdGlvbikgewpAQCAtMjE3LDIyICsyMjcsMjIgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICBkaWRSdW4gPSB0cnVlOwog
ICAgIH0KICAgICBpZiAoIXN0cmNtcChhcmd2WzFdLCAibXV0ZXgiKSB8fCAhc3RyY21wKGFyZ3Zb
MV0sICJhbGwiKSkgewotICAgICAgICBydW5CZW5jaG1hcms8TXV0ZXgsIFRocmVhZENvbmRpdGlv
bj4oCi0gICAgICAgICAgICAiUGxhdGZvcm0gTXV0ZXggTm90aWZ5T25lIiwKLSAgICAgICAgICAg
IFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24sIGJvb2wgbXVzdE5vdGlmeSkgewotICAg
ICAgICAgICAgICAgIGNvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAgcnVuQmVuY2htYXJrPHN0
ZDo6bXV0ZXgsIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlPigKKyAgICAgICAgICAgICJzdGQ6Om11
dGV4IE5vdGlmeU9uZSIsCisgICAgICAgICAgICBbJl0gKHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxl
JiBjb25kaXRpb24sIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5X29u
ZSgpOwogICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBj
b25kaXRpb24pIHsKLSAgICAgICAgICAgICAgICBjb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAg
ICAgICAgICBbJl0gKHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlJiBjb25kaXRpb24pIHsKKyAgICAg
ICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIHJ1bkJlbmNobWFyazxNdXRleCwgVGhyZWFkQ29uZGl0aW9uPigKLSAgICAgICAgICAgICJQ
bGF0Zm9ybSBNdXRleCBOb3RpZnlBbGwiLAotICAgICAgICAgICAgWyZdIChUaHJlYWRDb25kaXRp
b24mIGNvbmRpdGlvbiwgYm9vbCBtdXN0Tm90aWZ5KSB7CisgICAgICAgIHJ1bkJlbmNobWFyazxz
dGQ6Om11dGV4LCBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZT4oCisgICAgICAgICAgICAic3RkOjpt
dXRleCBOb3RpZnlBbGwiLAorICAgICAgICAgICAgWyZdIChzdGQ6OmNvbmRpdGlvbl92YXJpYWJs
ZSYgY29uZGl0aW9uLCBib29sIG11c3ROb3RpZnkpIHsKICAgICAgICAgICAgICAgICBpZiAobXVz
dE5vdGlmeSkKLSAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLmJyb2FkY2FzdCgpOworICAg
ICAgICAgICAgICAgICAgICBjb25kaXRpb24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIFsmXSAoVGhyZWFkQ29uZGl0aW9uJiBjb25kaXRpb24pIHsKLSAgICAgICAg
ICAgICAgICBjb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgICAgICBbJl0gKHN0ZDo6Y29u
ZGl0aW9uX3ZhcmlhYmxlJiBjb25kaXRpb24pIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb24u
bm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIGRpZFJ1biA9IHRydWU7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3Qu
Y3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCmluZGV4IDY4
Y2U4NGMuLjBjMzQ2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFp
cm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVz
dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAKIC8vIE9uIE1hYywgeW91IGNhbiBidWlsZCB0aGlz
IGxpa2Ugc286Ci0vLyB4Y3J1biBjbGFuZysrIC1vIExvY2tGYWlybmVzc1Rlc3QgU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwIC1PMyAtVyAtSVNvdXJjZS9XVEYgLUlT
b3VyY2UvV1RGL2JlbmNobWFya3MgLUxXZWJLaXRCdWlsZC9SZWxlYXNlIC1sV1RGIC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtbGljdWNvcmUgLXN0ZD1jKysxMSAtZnZpc2liaWxpdHk9aGlkZGVuCisv
LyB4Y3J1biBjbGFuZysrIC1vIExvY2tGYWlybmVzc1Rlc3QgU291cmNlL1dURi9iZW5jaG1hcmtz
L0xvY2tGYWlybmVzc1Rlc3QuY3BwIC1PMyAtVyAtSVNvdXJjZS9XVEYgLUlTb3VyY2UvV1RGL2lj
dSAtSVNvdXJjZS9XVEYvYmVuY2htYXJrcyAtTFdlYktpdEJ1aWxkL1JlbGVhc2UgLWxXVEYgLWZy
YW1ld29yayBGb3VuZGF0aW9uIC1saWN1Y29yZSAtc3RkPWMrKzE0IC1mdmlzaWJpbGl0eT1oaWRk
ZW4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8
dGhyZWFkPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIu
aD4KKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBA
IC00OCw3ICs0OSw3IEBAIG5hbWVzcGFjZSB7CiAKIE5PX1JFVFVSTiB2b2lkIHVzYWdlKCkKIHsK
LSAgICBwcmludGYoIlVzYWdlOiBMb2NrRmFpcm5lc3NUZXN0IHlpZWxkc3BpbmxvY2t8cGF1c2Vz
cGlubG9ja3x3b3JkbG9ja3xsb2NrfGJhcmdpbmdsb2NrfGJhcmdpbmd3b3JkbG9ja3x0aHVuZGVy
bG9ja3x0aHVuZGVyd29yZGxvY2t8Y2FzY2FkZWxvY2t8Y2FzY2FkZXdvcmRsb2NraGFuZG9mZmxv
Y2t8bXV0ZXh8YWxsIDxudW0gdGhyZWFkcz4gPHNlY29uZHMgcGVyIHRlc3Q+IDxtaWNyb3NlY29u
ZHMgaW4gY3JpdGljYWwgc2VjdGlvbj5cbiIpOworICAgIHByaW50ZigiVXNhZ2U6IExvY2tGYWly
bmVzc1Rlc3QgeWllbGRzcGlubG9ja3xwYXVzZXNwaW5sb2NrfHdvcmRsb2NrfGxvY2t8YmFyZ2lu
Z2xvY2t8YmFyZ2luZ3dvcmRsb2NrfHRodW5kZXJsb2NrfHRodW5kZXJ3b3JkbG9ja3xjYXNjYWRl
bG9ja3xjYXNjYWRld29yZGxvY2toYW5kb2ZmbG9ja3x1bmZhaXJsb2NrfG11dGV4fGFsbCA8bnVt
IHRocmVhZHM+IDxzZWNvbmRzIHBlciB0ZXN0PiA8bWljcm9zZWNvbmRzIGluIGNyaXRpY2FsIHNl
Y3Rpb24+XG4iKTsKICAgICBleGl0KDEpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2Jl
bmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1Nw
ZWVkVGVzdC5jcHAKaW5kZXggMGQ2MjM1ZC4uNDE5ZmY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Mb2NrU3BlZWRUZXN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAvLyBPbiBNYWMs
IHlvdSBjYW4gYnVpbGQgdGhpcyBsaWtlIHNvOgotLy8geGNydW4gY2xhbmcrKyAtbyBMb2NrU3Bl
ZWRUZXN0IFNvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlT
b3VyY2UvV1RGIC1JU291cmNlL1dURi9iZW5jaG1hcmtzIC1MV2ViS2l0QnVpbGQvUmVsZWFzZSAt
bFdURiAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWxpY3Vjb3JlIC1zdGQ9YysrMTEgLWZ2aXNpYmls
aXR5PWhpZGRlbgorLy8geGNydW4gY2xhbmcrKyAtbyBMb2NrU3BlZWRUZXN0IFNvdXJjZS9XVEYv
YmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCAtTzMgLVcgLUlTb3VyY2UvV1RGIC1JU291cmNl
L1dURi9pY3UgLUlTb3VyY2UvV1RGL2JlbmNobWFya3MgLUxXZWJLaXRCdWlsZC9SZWxlYXNlIC1s
V1RGIC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtbGljdWNvcmUgLXN0ZD1jKysxNCAtZnZpc2liaWxp
dHk9aGlkZGVuCiAKICNpbmNsdWRlICJjb25maWcuaCIKIApAQCAtNTMsNyArNTMsNyBAQCBkb3Vi
bGUgc2Vjb25kc1BlclRlc3Q7CiAgICAgCiBOT19SRVRVUk4gdm9pZCB1c2FnZSgpCiB7Ci0gICAg
cHJpbnRmKCJVc2FnZTogTG9ja1NwZWVkVGVzdCB5aWVsZHNwaW5sb2NrfHBhdXNlc3BpbmxvY2t8
d29yZGxvY2t8bG9ja3xiYXJnaW5nbG9ja3xiYXJnaW5nd29yZGxvY2t8dGh1bmRlcmxvY2t8dGh1
bmRlcndvcmRsb2NrfGNhc2NhZGVsb2NrfGNhc2NhZGV3b3JkbG9ja3xoYW5kb2ZmbG9ja3xtdXRl
eHxhbGwgPG51bSB0aHJlYWQgZ3JvdXBzPiA8bnVtIHRocmVhZHMgcGVyIGdyb3VwPiA8d29yayBw
ZXIgY3JpdGljYWwgc2VjdGlvbj4gPHdvcmsgYmV0d2VlbiBjcml0aWNhbCBzZWN0aW9ucz4gPHNw
aW4gbGltaXQ+IDxzZWNvbmRzIHBlciB0ZXN0PlxuIik7CisgICAgcHJpbnRmKCJVc2FnZTogTG9j
a1NwZWVkVGVzdCB5aWVsZHNwaW5sb2NrfHBhdXNlc3BpbmxvY2t8d29yZGxvY2t8bG9ja3xiYXJn
aW5nbG9ja3xiYXJnaW5nd29yZGxvY2t8dGh1bmRlcmxvY2t8dGh1bmRlcndvcmRsb2NrfGNhc2Nh
ZGVsb2NrfGNhc2NhZGV3b3JkbG9ja3xoYW5kb2ZmbG9ja3x1bmZhaXJsb2NrfG11dGV4fGFsbCA8
bnVtIHRocmVhZCBncm91cHM+IDxudW0gdGhyZWFkcyBwZXIgZ3JvdXA+IDx3b3JrIHBlciBjcml0
aWNhbCBzZWN0aW9uPiA8d29yayBiZXR3ZWVuIGNyaXRpY2FsIHNlY3Rpb25zPiA8c3BpbiBsaW1p
dD4gPHNlY29uZHMgcGVyIHRlc3Q+XG4iKTsKICAgICBleGl0KDEpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvVG95TG9ja3MuaCBiL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Ub3lMb2Nrcy5oCmluZGV4IDA5MGFkOTYuLmJhY2FkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvYmVuY2htYXJrcy9Ub3lMb2Nrcy5oCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Ub3lM
b2Nrcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsMTIgKzI2LDE4IEBACiAjaWZuZGVmIFRveUxvY2tzX2gKICNkZWZpbmUg
VG95TG9ja3NfaAogCisjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhyZWFkPgogI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
UGFya2luZ0xvdC5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JkTG9jay5oPgogCisjaWYgX19oYXNfaW5j
bHVkZSg8b3MvbG9jay5oPikKKyNpbmNsdWRlIDxvcy9sb2NrLmg+CisjZGVmaW5lIEhBU19VTkZB
SVJfTE9DSworI2VuZGlmCisKICNpZiBkZWZpbmVkKEVYVFJBX0xPQ0tTKSAmJiBFWFRSQV9MT0NL
UwogI2luY2x1ZGUgPHN5bmNocm9uaWM+CiAjZW5kaWYKQEAgLTQ2Nyw2ICs0NzMsMjEgQEAgcHJp
dmF0ZToKICAgICBBdG9taWM8dW5zaWduZWQ+IG1fc3RhdGU7CiB9OwogCisjaWZkZWYgSEFTX1VO
RkFJUl9MT0NLCitjbGFzcyBVbmZhaXJMb2NrIHsKKyAgICBvc191bmZhaXJfbG9jayBsID0gT1Nf
VU5GQUlSX0xPQ0tfSU5JVDsKK3B1YmxpYzoKKyAgICB2b2lkIGxvY2soKQorICAgIHsKKyAgICAg
ICAgb3NfdW5mYWlyX2xvY2tfbG9jaygmbCk7CisgICAgfQorICAgIHZvaWQgdW5sb2NrKCkKKyAg
ICB7CisgICAgICAgIG9zX3VuZmFpcl9sb2NrX3VubG9jaygmbCk7CisgICAgfQorfTsKKyNlbmRp
ZgorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCZW5jaG1hcms+CiB2b2lkIHJ1bkV2ZXJ5dGhpbmcoY29u
c3QgY2hhciogd2hhdCkKIHsKQEAgLTQ5OCw4ICs1MTksMTIgQEAgdm9pZCBydW5FdmVyeXRoaW5n
KGNvbnN0IGNoYXIqIHdoYXQpCiAgICAgICAgIEJlbmNobWFyazo6dGVtcGxhdGUgcnVuPENhc2Nh
ZGVMb2NrPHVpbnQzMl90Pj4oIldvcmRDYXNjYWRlTG9jayIpOwogICAgIGlmICghc3RyY21wKHdo
YXQsICJoYW5kb2ZmbG9jayIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQogICAgICAgICBCZW5j
aG1hcms6OnRlbXBsYXRlIHJ1bjxIYW5kb2ZmTG9jaz4oIkhhbmRvZmZMb2NrIik7CisjaWZkZWYg
SEFTX1VORkFJUl9MT0NLCisgICAgaWYgKCFzdHJjbXAod2hhdCwgInVuZmFpcmxvY2siKSB8fCAh
c3RyY21wKHdoYXQsICJhbGwiKSkKKyAgICAgICAgQmVuY2htYXJrOjp0ZW1wbGF0ZSBydW48VW5m
YWlyTG9jaz4oIlVuZmFpckxvY2siKTsKKyNlbmRpZgogICAgIGlmICghc3RyY21wKHdoYXQsICJt
dXRleCIpIHx8ICFzdHJjbXAod2hhdCwgImFsbCIpKQotICAgICAgICBCZW5jaG1hcms6OnRlbXBs
YXRlIHJ1bjxNdXRleD4oIlBsYXRmb3JtTXV0ZXgiKTsKKyAgICAgICAgQmVuY2htYXJrOjp0ZW1w
bGF0ZSBydW48c3RkOjptdXRleD4oInN0ZDo6bXV0ZXgiKTsKIH0KIAogfSAvLyBhbm9ueW1vdXMg
bmFtZXNwYWNlCi0tIAoyLjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>