<?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>237176</bug_id>
          
          <creation_ts>2022-02-24 19:45:36 -0800</creation_ts>
          <short_desc>[JSC] Use DeferTerminationForAWhile in Interpreter::unwind</short_desc>
          <delta_ts>2022-02-28 10:01:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          <dependson>237222</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845882</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-24 19:45:36 -0800</bug_when>
    <thetext>[JSC] Use DeferTerminationForAWhile in Interpreter::unwind</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845883</commentid>
    <comment_count>1</comment_count>
      <attachid>453168</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-24 19:49:05 -0800</bug_when>
    <thetext>Created attachment 453168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845884</commentid>
    <comment_count>2</comment_count>
      <attachid>453168</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-24 19:51:35 -0800</bug_when>
    <thetext>Comment on attachment 453168
Patch

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

r=me

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:704
&gt; +    // otherwise, we can invoke a found erorr hanlder with a termination exception.

/erorr hanlder/error handler/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845885</commentid>
    <comment_count>3</comment_count>
      <attachid>453168</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-24 19:55:06 -0800</bug_when>
    <thetext>Comment on attachment 453168
Patch

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

&gt;&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:704
&gt;&gt; +    // otherwise, we can invoke a found erorr hanlder with a termination exception.
&gt; 
&gt; /erorr hanlder/error handler/

Actually, let&apos;s add a bit more detail:
otherwise, we can end up in a found error handler with a TerminationException, and effectively &quot;catch&quot; the TerminationException which should not be catchable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846094</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-25 10:53:41 -0800</bug_when>
    <thetext>Committed r290516 (247800@trunk): &lt;https://commits.webkit.org/247800@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846096</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-25 10:54:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/89482527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846144</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-02-25 12:59:10 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 237222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846174</commentid>
    <comment_count>7</comment_count>
      <attachid>453255</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-25 13:54:15 -0800</bug_when>
    <thetext>Created attachment 453255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846199</commentid>
    <comment_count>8</comment_count>
      <attachid>453255</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-25 14:50:49 -0800</bug_when>
    <thetext>Comment on attachment 453255
Patch

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

r=me

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:712
&gt; +    // On the other hand, we do not clear already a raised termination exception because it is possible

/already a raised/an already raised/

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:715
&gt; +    // What we would like to achieve here is do not raise a new termination exception while running

/is do not/is to not/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846243</commentid>
    <comment_count>9</comment_count>
      <attachid>453278</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-25 17:17:12 -0800</bug_when>
    <thetext>Created attachment 453278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846257</commentid>
    <comment_count>10</comment_count>
      <attachid>453278</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-25 18:21:33 -0800</bug_when>
    <thetext>Comment on attachment 453278
Patch

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

r=me

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:720
&gt; +    // While running Interpreter::unwind, we must not accept concurrently set termination exception,
&gt; +    // otherwise, we can end up in a found error handler with a TerminationException, and effectively
&gt; +    // &quot;catch&quot; the TerminationException which should not be catchable.
&gt; +    //
&gt; +    // On the other hand, we do not clear already a raised termination exception because it is possible
&gt; +    // that we are calling this unwind because we are handling this termination exception.
&gt; +    //
&gt; +    // What we would like to achieve here is not raising a new termination exception while running
&gt; +    // Interpreter::unwind, including just after finishing Interpreter::unwind, but we do not want
&gt; +    // to clear already raised exception.
&gt; +    //
&gt; +    // But, we do not want to use DeferTerminationForAWhile when we are handling termination exception: this
&gt; +    // is because we will unwind everything here, and in that case DeferTerminationForAWhile leaves
&gt; +    // NeedTermination in the VM. This is not correct since after unwinding, NeedTermination bit should be
&gt; +    // cleared for VM.

Let&apos;s rephrase this as:
```
If we&apos;re unwinding the stack due to a regular exception (not a TerminationException), then we want to use a DeferTerminationForAWhile scope. This is because we want to avoid a TerminationException being raised (due to a concurrent termination request) in the middle of unwinding. The unwinding code only checks if we&apos;re handling a TerminationException before it starts unwinding and is not expecting this status to change in the middle.  Without the DeferTerminationForAWhile scope, control flow may end up in an exception handler, and effectively &quot;catch&quot; the newly raised TerminationException, which should not be catchable.

On the other hand, if we&apos;re unwinding the stack due to a TerminationException, we do not need nor want the DeferTerminationForAWhile scope.  This is because on exit, DeferTerminationForAWhile will set the VMTraps NeedTermination bit if termination is in progress.  The system expects the NeedTermination bit to be have been cleared by VMTraps::handleTraps() once the TerminationException has been raised.  Some legacy client apps relies on this and expects to be able to re-enter the VM after it exits due to termination.  If the NeedTermination bit is set, upon re-entry, the VM will behave as if a termination request is pending and terminate almost immediately, thereby breaking the legacy client apps.

FIXME: Revisit this once we can deprecate this legacy behavior of being able to re-enter the VM after termination.
```

Can you also use this blurb (without the FIXME part) in the ChangeLog or an adaption of it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846262</commentid>
    <comment_count>11</comment_count>
      <attachid>453282</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-25 19:15:02 -0800</bug_when>
    <thetext>Created attachment 453282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846672</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-28 10:01:12 -0800</bug_when>
    <thetext>Committed r290603 (?): &lt;https://commits.webkit.org/r290603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453168</attachid>
            <date>2022-02-24 19:49:05 -0800</date>
            <delta_ts>2022-02-25 13:54:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237176-20220224194904.patch</filename>
            <type>text/plain</type>
            <size>2722</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ODM2YjVhNWJiYTFmZDMwYmZkOWNmZTUzODg2YTc4ZjQxMDAyODkyLi5mYjBmZDZhNWMzZGFjNTFl
NzllY2Q1NThmNTU2NzFhYTQyNmJhNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMi0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGluIEludGVy
cHJldGVyOjp1bndpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEludGVycHJldGVyOjp1bndpbmQgY2FsbHMgc2FuaXRpemVSZW1vdGVGdW5jdGlvbkV4
Y2VwdGlvbiwgd2hpY2ggd291bGQgbGlrZSB0byBjcmVhdGUgc2NvcGUgKGJ1dCBpdAorICAgICAg
ICBkb2VzIG5vdCBoYXZlIHVzZXIgb2JzZXJ2YWJsZSBiZWhhdmlvcikuIFByb2JsZW0gaXMgdGhh
dCwgc2luY2UgaXQgaXMgY3JlYXRpbmcgYSBzY29wZSwgaXQgY2FuIHRocm93CisgICAgICAgIGEg
dGVybWluYXRpb24gZXhjZXB0aW9uLiBXZSB3ZXJlIHVzaW5nIERlZmVyVGVybWluYXRpb24sIGJ1
dCBkZXN0cnVjdG9yIG9mIHRoaXMgc2NvcGUgY2FuIHN0aWxsIHNldAorICAgICAgICB0ZXJtaW5h
dGlvbiBleGNlcHRpb24sIHdoaWNoIHJlc3VsdHMgaW4gdGhyb3dpbmcgYSB0ZXJtaW5hdGlvbiBl
eGNlcHRpb24gZm9yIHRoZSBlcnJvciBoYW5kbGVyLgorCisgICAgICAgIFdlIHVzZSBEZWZlclRl
cm1pbmF0aW9uRm9yQVdoaWxlIGluIHRoZSBwcm9sb2d1ZSBvZiB0aGUgSW50ZXJwcmV0ZXI6OnVu
d2luZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uCisgICAgICAgIHdpbGwgbm90IGFjY2Vw
dCB0ZXJtaW5hdGlvbiBleGNlcHRpb24gY29taW5nIGNvbmN1cnJlbnRseS4KKworICAgICAgICAq
IGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6c2FuaXRpemVSZW1v
dGVGdW5jdGlvbkV4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp1bndpbmQp
OgorCiAyMDIyLTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBPbmx5IGNsZWFyIElDVSBjYWNoZSB3aGVuIHRpbWUgem9uZSBpcyBjaGFuZ2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAppbmRleCA5MTNkYzBlNjBjZjkxOTQ5M2VmMjgyNGZjY2Q3NThmZTdkOGUwOWQ3Li44ODgxNjgy
ZGJlMmE5MmM2YWRjYTZkOWU3MmFmNmMzNzIyZTE4YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTY3Miw3ICs2NzIsNyBA
QCBjbGFzcyBVbndpbmRGdW5jdG9yIHsKIC8vIFJlcGxhY2UgYW4gZXhjZXB0aW9uIHdoaWNoIHBh
c3NlcyBhY3Jvc3MgYSBtYXJzaGFsbGluZyBib3VuZGFyeSB3aXRoIGEgVHlwZUVycm9yIGZvciBp
dHMgaGFuZGxlcidzIGdsb2JhbCBvYmplY3QuCiBzdGF0aWMgdm9pZCBzYW5pdGl6ZVJlbW90ZUZ1
bmN0aW9uRXhjZXB0aW9uKFZNJiB2bSwgSlNSZW1vdGVGdW5jdGlvbiogcmVtb3RlRnVuY3Rpb24s
IEV4Y2VwdGlvbiogZXhjZXB0aW9uKQogewotICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJTY29w
ZSh2bSk7CisgICAgQVNTRVJUKHZtLnRyYXBzKCkuaXNEZWZlcnJpbmdUZXJtaW5hdGlvbigpKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgQVNTRVJUKGV4
Y2VwdGlvbik7CiAgICAgQVNTRVJUKCF2bS5pc1Rlcm1pbmF0aW9uRXhjZXB0aW9uKGV4Y2VwdGlv
bikpOwpAQCAtNzAwLDYgKzcwMCw5IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplUmVtb3RlRnVuY3Rp
b25FeGNlcHRpb24oVk0mIHZtLCBKU1JlbW90ZUZ1bmN0aW9uKiByZW1vdGVGdW5jCiAKIE5FVkVS
X0lOTElORSBDYXRjaEluZm8gSW50ZXJwcmV0ZXI6OnVud2luZChWTSYgdm0sIENhbGxGcmFtZSom
IGNhbGxGcmFtZSwgRXhjZXB0aW9uKiBleGNlcHRpb24pCiB7CisgICAgLy8gV2hpbGUgcnVubmlu
ZyBJbnRlcnByZXRlcjo6dW53aW5kLCB3ZSBtdXN0IG5vdCBhY2NlcHQgY29uY3VycmVudGx5IHNl
dCB0ZXJtaW5hdGlvbiBleGNlcHRpb24sCisgICAgLy8gb3RoZXJ3aXNlLCB3ZSBjYW4gaW52b2tl
IGEgZm91bmQgZXJvcnIgaGFubGRlciB3aXRoIGEgdGVybWluYXRpb24gZXhjZXB0aW9uLgorICAg
IERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgZGVmZXJTY29wZSh2bSk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAgQVNTRVJUKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KGNhbGxGcmFtZSkgIT0gdm0udG9wRW50cnlGcmFtZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453255</attachid>
            <date>2022-02-25 13:54:15 -0800</date>
            <delta_ts>2022-02-25 17:17:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237176-20220225135414.patch</filename>
            <type>text/plain</type>
            <size>11508</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
M2IxYzFiMjc0MDBmZDAxZDBhMDM1ZmE3YzZiOWE2MGI0YzFkOGI3Li45NjA0OGVlZTI3YmU2Nzk2
YTViODQwYjYxM2RlZGRhNjBmM2Q1MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMi0wMi0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGluIEludGVy
cHJldGVyOjp1bndpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEludGVycHJldGVyOjp1bndpbmQgY2FsbHMgc2FuaXRpemVSZW1vdGVGdW5jdGlvbkV4
Y2VwdGlvbiwgd2hpY2ggd291bGQgbGlrZSB0byBjcmVhdGUgc2NvcGUgKGJ1dCBpdAorICAgICAg
ICBkb2VzIG5vdCBoYXZlIHVzZXIgb2JzZXJ2YWJsZSBiZWhhdmlvcikuIFByb2JsZW0gaXMgdGhh
dCwgc2luY2UgaXQgaXMgY3JlYXRpbmcgYSBzY29wZSwgaXQgY2FuIHRocm93CisgICAgICAgIGEg
dGVybWluYXRpb24gZXhjZXB0aW9uLiBXZSB3ZXJlIHVzaW5nIERlZmVyVGVybWluYXRpb24sIGJ1
dCBkZXN0cnVjdG9yIG9mIHRoaXMgc2NvcGUgY2FuIHN0aWxsIHNldAorICAgICAgICB0ZXJtaW5h
dGlvbiBleGNlcHRpb24sIHdoaWNoIHJlc3VsdHMgaW4gdGhyb3dpbmcgYSB0ZXJtaW5hdGlvbiBl
eGNlcHRpb24gZm9yIHRoZSBlcnJvciBoYW5kbGVyLgorCisgICAgICAgIFdlIHVzZSBEZWZlclRl
cm1pbmF0aW9uRm9yQVdoaWxlS2VlcGluZ0FscmVhZHlSYWlzZWRUZXJtaW5hdGlvbkV4Y2VwdGlv
biBpbiB0aGUgcHJvbG9ndWUgb2YgdGhlCisgICAgICAgIEludGVycHJldGVyOjp1bndpbmQgdG8g
ZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBhY2NlcHQgdGVybWluYXRpb24gZXhj
ZXB0aW9uIGNvbWluZyBjb25jdXJyZW50bHkuCisgICAgICAgIFdlIG11c3Qgbm90IHVzZSBEZWZl
clRlcm1pbmF0aW9uRm9yQVdoaWxlIGhlcmUgc2luY2UgaXQgY2xlYXJzIGFscmVhZHkgcmFpc2Vk
IHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiwKKyAgICAgICAgd2hpY2ggc2hvdWxkIGJlIGhhbmRsZWQg
aW4gdGhpcyBJbnRlcnByZXRlcjo6dW53aW5kLiBJZiB0ZXJtaW5hdGlvbiBleGNlcHRpb24gaXMg
YWxyZWFkeSByYWlzZWQsIHdlIHNob3VsZAorICAgICAgICBrZWVwIGl0LgorCisgICAgICAgICog
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpVbndpbmRGdW5jdG9y
OjpVbndpbmRGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6VW53aW5kRnVuY3Rvcjo6bm90aWZ5RGVi
dWdnZXJPZlVud2luZGluZyk6CisgICAgICAgIChKU0M6OnNhbml0aXplUmVtb3RlRnVuY3Rpb25F
eGNlcHRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dW53aW5kKToKKyAgICAgICAg
KEpTQzo6bm90aWZ5RGVidWdnZXJPZlVud2luZGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9EZWZlclRlcm1pbmF0aW9uLmg6CisgICAgICAgIChKU0M6OkRlZmVyVGVybWluYXRpb246
OkRlZmVyVGVybWluYXRpb24pOgorICAgICAgICAoSlNDOjpEZWZlclRlcm1pbmF0aW9uOjp+RGVm
ZXJUZXJtaW5hdGlvbik6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAg
KEpTQzo6Vk1UcmFwczo6ZGVmZXJUZXJtaW5hdGlvblNsb3cpOgorICAgICAgICAoSlNDOjpWTVRy
YXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFw
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvVk1UcmFwc0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
Vk1UcmFwczo6ZGVmZXJUZXJtaW5hdGlvbik6CisgICAgICAgIChKU0M6OlZNVHJhcHM6OnVuZG9E
ZWZlclRlcm1pbmF0aW9uKToKKwogMjAyMi0wMi0yNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyOTA1MTYu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAppbmRleCBjNWI4NzAzNzZlMTM3NDM1ZGE1MGQ3NzlkMWZmMTIzZWJjMjNlMjY3Li4yYzIwYTVm
MmNmZTM1ZjgwMDcwMTNjYzVhYzU0Y2YxMjNkMmNkMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTUwMSwyNSArNTAxLDYg
QEAgY2xhc3MgR2V0Q2F0Y2hIYW5kbGVyRnVuY3RvciB7CiAgICAgbXV0YWJsZSBIYW5kbGVySW5m
byogbV9oYW5kbGVyOwogfTsKIAotQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1
Z2dlck9mVW53aW5kaW5nKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVj
dCh2bSk7Ci0gICAgRGVidWdnZXIqIGRlYnVnZ2VyID0gZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dlcigp
OwotICAgIGlmIChMSUtFTFkoIWRlYnVnZ2VyKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGVm
ZXJUZXJtaW5hdGlvbiBkZWZlclNjb3BlKHZtKTsKLSAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNM
QVJFX0NBVENIX1NDT1BFKHZtKTsKLQotICAgIFN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgm
dm0pOwotICAgIGlmIChjYWxsRnJhbWUtPmlzQW55V2FzbUNhbGxlZSgpCi0gICAgICAgIHx8IChj
YWxsRnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxs
KCktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkpCi0gICAgICAgIGRlYnVnZ2VyLT51bndpbmRF
dmVudChjYWxsRnJhbWUpOwotICAgIGVsc2UKLSAgICAgICAgZGVidWdnZXItPmRpZEV4ZWN1dGVQ
cm9ncmFtKGNhbGxGcmFtZSk7Ci0gICAgY2F0Y2hTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwot
fQotCiBDYXRjaEluZm86OkNhdGNoSW5mbyhjb25zdCBIYW5kbGVySW5mbyogaGFuZGxlciwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAgICAgbV92YWxpZCA9ICEhaGFuZGxlcjsKQEAgLTU2Nyw2
ICs1NDgsNyBAQCBjbGFzcyBVbndpbmRGdW5jdG9yIHsKICAgICAgICAgLCBtX2hhbmRsZXIoaGFu
ZGxlcikKICAgICAgICAgLCBtX3NlZW5SZW1vdGVGdW5jdGlvbihzZWVuUmVtb3RlRnVuY3Rpb24p
CiAgICAgeworICAgICAgICBBU1NFUlQodm0udHJhcHMoKS5pc0RlZmVycmluZ1Rlcm1pbmF0aW9u
KCkpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAgICAgaWYgKCFtX2lzVGVybWluYXRp
b24pIHsKICAgICAgICAgICAgIGlmIChKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKiB3YXNtRXhjZXB0
aW9uID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2VtYmx5RXhjZXB0aW9uKj4obV92bSwgdGhyb3du
VmFsdWUpKSB7CkBAIC02NTksNiArNjQxLDI2IEBAIGNsYXNzIFVud2luZEZ1bmN0b3IgewogI2Vu
ZGlmCiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dl
ck9mVW53aW5kaW5nKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCisgICAgeworICAgICAg
ICBBU1NFUlQodm0udHJhcHMoKS5pc0RlZmVycmluZ1Rlcm1pbmF0aW9uKCkpOworCisgICAgICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxP
YmplY3Qodm0pOworICAgICAgICBEZWJ1Z2dlciogZGVidWdnZXIgPSBnbG9iYWxPYmplY3QtPmRl
YnVnZ2VyKCk7CisgICAgICAgIGlmIChMSUtFTFkoIWRlYnVnZ2VyKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZt
KTsKKworICAgICAgICBTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKKyAgICAgICAg
aWYgKGNhbGxGcmFtZS0+aXNBbnlXYXNtQ2FsbGVlKCkKKyAgICAgICAgICAgIHx8IChjYWxsRnJh
bWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCktPmlu
aGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkpCisgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5kRXZl
bnQoY2FsbEZyYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVidWdnZXItPmRpZEV4
ZWN1dGVQcm9ncmFtKGNhbGxGcmFtZSk7CisgICAgICAgIGNhdGNoU2NvcGUuYXNzZXJ0Tm9FeGNl
cHRpb24oKTsKKyAgICB9CisKICAgICBWTSYgbV92bTsKICAgICBDYWxsRnJhbWUqJiBtX2NhbGxG
cmFtZTsKICAgICBib29sIG1faXNUZXJtaW5hdGlvbjsKQEAgLTY3NSw3ICs2NzcsNyBAQCBjbGFz
cyBVbndpbmRGdW5jdG9yIHsKIC8vIFJlcGxhY2UgYW4gZXhjZXB0aW9uIHdoaWNoIHBhc3NlcyBh
Y3Jvc3MgYSBtYXJzaGFsbGluZyBib3VuZGFyeSB3aXRoIGEgVHlwZUVycm9yIGZvciBpdHMgaGFu
ZGxlcidzIGdsb2JhbCBvYmplY3QuCiBzdGF0aWMgdm9pZCBzYW5pdGl6ZVJlbW90ZUZ1bmN0aW9u
RXhjZXB0aW9uKFZNJiB2bSwgSlNSZW1vdGVGdW5jdGlvbiogcmVtb3RlRnVuY3Rpb24sIEV4Y2Vw
dGlvbiogZXhjZXB0aW9uKQogewotICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJTY29wZSh2bSk7
CisgICAgQVNTRVJUKHZtLnRyYXBzKCkuaXNEZWZlcnJpbmdUZXJtaW5hdGlvbigpKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgQVNTRVJUKGV4Y2VwdGlv
bik7CiAgICAgQVNTRVJUKCF2bS5pc1Rlcm1pbmF0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpOwpA
QCAtNzAzLDYgKzcwNSwxNyBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZVJlbW90ZUZ1bmN0aW9uRXhj
ZXB0aW9uKFZNJiB2bSwgSlNSZW1vdGVGdW5jdGlvbiogcmVtb3RlRnVuYwogCiBORVZFUl9JTkxJ
TkUgQ2F0Y2hJbmZvIEludGVycHJldGVyOjp1bndpbmQoVk0mIHZtLCBDYWxsRnJhbWUqJiBjYWxs
RnJhbWUsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQogeworICAgIC8vIFdoaWxlIHJ1bm5pbmcgSW50
ZXJwcmV0ZXI6OnVud2luZCwgd2UgbXVzdCBub3QgYWNjZXB0IGNvbmN1cnJlbnRseSBzZXQgdGVy
bWluYXRpb24gZXhjZXB0aW9uLAorICAgIC8vIG90aGVyd2lzZSwgd2UgY2FuIGVuZCB1cCBpbiBh
IGZvdW5kIGVycm9yIGhhbmRsZXIgd2l0aCBhIFRlcm1pbmF0aW9uRXhjZXB0aW9uLCBhbmQgZWZm
ZWN0aXZlbHkKKyAgICAvLyAiY2F0Y2giIHRoZSBUZXJtaW5hdGlvbkV4Y2VwdGlvbiB3aGljaCBz
aG91bGQgbm90IGJlIGNhdGNoYWJsZS4KKyAgICAvLworICAgIC8vIE9uIHRoZSBvdGhlciBoYW5k
LCB3ZSBkbyBub3QgY2xlYXIgYWxyZWFkeSBhIHJhaXNlZCB0ZXJtaW5hdGlvbiBleGNlcHRpb24g
YmVjYXVzZSBpdCBpcyBwb3NzaWJsZQorICAgIC8vIHRoYXQgd2UgYXJlIGNhbGxpbmcgdGhpcyB1
bndpbmQgYmVjYXVzZSB3ZSBhcmUgaGFuZGxpbmcgdGhpcyB0ZXJtaW5hdGlvbiBleGNlcHRpb24u
CisgICAgLy8KKyAgICAvLyBXaGF0IHdlIHdvdWxkIGxpa2UgdG8gYWNoaWV2ZSBoZXJlIGlzIGRv
IG5vdCByYWlzZSBhIG5ldyB0ZXJtaW5hdGlvbiBleGNlcHRpb24gd2hpbGUgcnVubmluZworICAg
IC8vIEludGVycHJldGVyOjp1bndpbmQsIGluY2x1ZGluZyBqdXN0IGFmdGVyIHJ1bm5pbmcgSW50
ZXJwcmV0ZXI6OnVud2luZCwgYnV0IHdlIGRvIG5vdCB3YW50CisgICAgLy8gdG8gY2xlYXIgYWxy
ZWFkeSByYWlzZWQgZXhjZXB0aW9uLgorICAgIERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGVLZWVw
aW5nQWxyZWFkeVJhaXNlZFRlcm1pbmF0aW9uRXhjZXB0aW9uIGRlZmVyU2NvcGUodm0pOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgIEFTU0VSVChyZWlu
dGVycHJldF9jYXN0PHZvaWQqPihjYWxsRnJhbWUpICE9IHZtLnRvcEVudHJ5RnJhbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJUZXJtaW5hdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGVmZXJUZXJtaW5hdGlvbi5oCmluZGV4
IDBjNDBhNjliMjcxMGNkMDgxNTdhOTIwMTk3MWZmOGYyNGU5N2FjMzQuLjU2YTNiMmZjMjJjMDZj
ZjYyYzgyNDFlODU1MWY4ZjMxNDNmNWJlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RlZmVyVGVybWluYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EZWZlclRlcm1pbmF0aW9uLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLXRlbXBsYXRlPFZNVHJhcHM6OkRlZmVyQWN0aW9uIGRlZmVyQWN0aW9uID0g
Vk1UcmFwczo6RGVmZXJBY3Rpb246OkRlZmVyVW50aWxFbmRPZlNjb3BlPgordGVtcGxhdGU8Vk1U
cmFwczo6RGVmZXJBY3Rpb24gZGVmZXJBY3Rpb24gPSBWTVRyYXBzOjpEZWZlckFjdGlvbjo6RGVm
ZXJVbnRpbEVuZE9mU2NvcGUsIFZNVHJhcHM6OkNsZWFyQWN0aW9uIGNsZWFyQWN0aW9uID0gVk1U
cmFwczo6Q2xlYXJBY3Rpb246OkNsZWFyQWxyZWFkeVJhaXNlZFRlcm1pbmF0aW9uRXhjZXB0aW9u
PgogY2xhc3MgRGVmZXJUZXJtaW5hdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVm
ZXJUZXJtaW5hdGlvbik7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CkBAIC0zOSwx
MiArMzksMTIgQEAgY2xhc3MgRGVmZXJUZXJtaW5hdGlvbiB7CiAgICAgRGVmZXJUZXJtaW5hdGlv
bihWTSYgdm0pCiAgICAgICAgIDogbV92bSh2bSkKICAgICB7Ci0gICAgICAgIG1fdm0udHJhcHMo
KS5kZWZlclRlcm1pbmF0aW9uKGRlZmVyQWN0aW9uKTsKKyAgICAgICAgbV92bS50cmFwcygpLmRl
ZmVyVGVybWluYXRpb24oZGVmZXJBY3Rpb24sIGNsZWFyQWN0aW9uKTsKICAgICB9CiAgICAgCiAg
ICAgfkRlZmVyVGVybWluYXRpb24oKQogICAgIHsKLSAgICAgICAgbV92bS50cmFwcygpLnVuZG9E
ZWZlclRlcm1pbmF0aW9uKGRlZmVyQWN0aW9uKTsKKyAgICAgICAgbV92bS50cmFwcygpLnVuZG9E
ZWZlclRlcm1pbmF0aW9uKGRlZmVyQWN0aW9uLCBjbGVhckFjdGlvbik7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNTIsNSArNTIsNiBAQCBjbGFzcyBEZWZlclRlcm1pbmF0aW9uIHsKIH07CiAKIHVz
aW5nIERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgPSBEZWZlclRlcm1pbmF0aW9uPFZNVHJhcHM6
OkRlZmVyQWN0aW9uOjpEZWZlckZvckFXaGlsZT47Cit1c2luZyBEZWZlclRlcm1pbmF0aW9uRm9y
QVdoaWxlS2VlcGluZ0FscmVhZHlSYWlzZWRUZXJtaW5hdGlvbkV4Y2VwdGlvbiA9IERlZmVyVGVy
bWluYXRpb248Vk1UcmFwczo6RGVmZXJBY3Rpb246OkRlZmVyRm9yQVdoaWxlLCBWTVRyYXBzOjpD
bGVhckFjdGlvbjo6S2VlcEFscmVhZHlSYWlzZWRUZXJtaW5hdGlvbkV4Y2VwdGlvbj47CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1UcmFwcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAppbmRleCBiMzQ0MDNiYzAyZTNiMmNiOTA1OWMwZGUzOTRkYjgxMzJkMjk0M2VkLi45ODM3Zjll
YjhkOWZkMWNlYzgxYWIyNGQyMGVkM2JjMjE3M2Q4MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTVRyYXBzLmNwcApAQCAtNDEyLDE5ICs0MTIsMTkgQEAgYXV0byBWTVRyYXBz
Ojp0YWtlVG9wUHJpb3JpdHlUcmFwKFZNVHJhcHM6OkJpdEZpZWxkIG1hc2spIC0+IEV2ZW50CiAg
ICAgcmV0dXJuIE5vRXZlbnQ7CiB9CiAKLXZvaWQgVk1UcmFwczo6ZGVmZXJUZXJtaW5hdGlvblNs
b3coRGVmZXJBY3Rpb24pCit2b2lkIFZNVHJhcHM6OmRlZmVyVGVybWluYXRpb25TbG93KERlZmVy
QWN0aW9uLCBDbGVhckFjdGlvbiBjbGVhckFjdGlvbikKIHsKICAgICBBU1NFUlQobV9kZWZlclRl
cm1pbmF0aW9uQ291bnQgPT0gMSk7CiAKICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwotICAgIGlm
ICh2bS5oYXNQZW5kaW5nVGVybWluYXRpb25FeGNlcHRpb24oKSkgeworICAgIGlmIChjbGVhckFj
dGlvbiA9PSBDbGVhckFjdGlvbjo6Q2xlYXJBbHJlYWR5UmFpc2VkVGVybWluYXRpb25FeGNlcHRp
b24gJiYgdm0uaGFzUGVuZGluZ1Rlcm1pbmF0aW9uRXhjZXB0aW9uKCkpIHsKICAgICAgICAgQVNT
RVJUKHZtLnRlcm1pbmF0aW9uSW5Qcm9ncmVzcygpKTsKICAgICAgICAgdm0uY2xlYXJFeGNlcHRp
b24oKTsKICAgICAgICAgbV9zdXNwZW5kZWRUZXJtaW5hdGlvbkV4Y2VwdGlvbiA9IHRydWU7CiAg
ICAgfQogfQogCi12b2lkIFZNVHJhcHM6OnVuZG9EZWZlclRlcm1pbmF0aW9uU2xvdyhEZWZlckFj
dGlvbiBkZWZlckFjdGlvbikKK3ZvaWQgVk1UcmFwczo6dW5kb0RlZmVyVGVybWluYXRpb25TbG93
KERlZmVyQWN0aW9uIGRlZmVyQWN0aW9uLCBDbGVhckFjdGlvbikKIHsKICAgICBBU1NFUlQobV9k
ZWZlclRlcm1pbmF0aW9uQ291bnQgPT0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaAppbmRleCA4YTdmMjgwMjNjN2QxYjM3NjdmMGU3OTEwMDZiOGQwMjBhNjU3NmVk
Li5mMWU1NmEzNzQwYzMyOGVjOTNjZmU5YTliMzJkZGQwMTRjZDdjNzUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCkBAIC0xOTYsOSArMTk2LDE0IEBAIGNsYXNzIFZN
VHJhcHMgewogICAgICAgICBEZWZlclVudGlsRW5kT2ZTY29wZQogICAgIH07CiAKKyAgICBlbnVt
IGNsYXNzIENsZWFyQWN0aW9uIHsKKyAgICAgICAgQ2xlYXJBbHJlYWR5UmFpc2VkVGVybWluYXRp
b25FeGNlcHRpb24sCisgICAgICAgIEtlZXBBbHJlYWR5UmFpc2VkVGVybWluYXRpb25FeGNlcHRp
b24KKyAgICB9OworCiAgICAgYm9vbCBpc0RlZmVycmluZ1Rlcm1pbmF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZWZlclRlcm1pbmF0aW9uQ291bnQ7IH0KLSAgICB2b2lkIGRlZmVyVGVybWluYXRp
b24oRGVmZXJBY3Rpb24pOwotICAgIHZvaWQgdW5kb0RlZmVyVGVybWluYXRpb24oRGVmZXJBY3Rp
b24pOworICAgIHZvaWQgZGVmZXJUZXJtaW5hdGlvbihEZWZlckFjdGlvbiwgQ2xlYXJBY3Rpb24p
OworICAgIHZvaWQgdW5kb0RlZmVyVGVybWluYXRpb24oRGVmZXJBY3Rpb24sIENsZWFyQWN0aW9u
KTsKIAogICAgIHZvaWQgbm90aWZ5R3JhYkFsbExvY2tzKCkKICAgICB7CkBAIC0yMjksOCArMjM0
LDggQEAgY2xhc3MgVk1UcmFwcyB7CiBwcml2YXRlOgogICAgIFZNJiB2bSgpIGNvbnN0OwogCi0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWZlclRlcm1pbmF0aW9uU2xvdyhEZWZlckFjdGlv
bik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB1bmRvRGVmZXJUZXJtaW5hdGlvblNsb3co
RGVmZXJBY3Rpb24pOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVmZXJUZXJtaW5hdGlv
blNsb3coRGVmZXJBY3Rpb24sIENsZWFyQWN0aW9uKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIHVuZG9EZWZlclRlcm1pbmF0aW9uU2xvdyhEZWZlckFjdGlvbiwgQ2xlYXJBY3Rpb24pOwog
ICAgIEV2ZW50IHRha2VUb3BQcmlvcml0eVRyYXAoQml0RmllbGQgbWFzayk7CiAKICNpZiBFTkFC
TEUoU0lHTkFMX0JBU0VEX1ZNX1RSQVBTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk1UcmFwc0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNVHJhcHNJbmxpbmVzLmgKaW5kZXggZTdhNzdjOWVlOTc5OGE1MmMxODExNGU4MDZkMWQ3
OTIyMzNkZGQ5YS4uZGMwMTQ1OWNiNjZmZWFjYzQ4ZWUyMmQ0NjA1YjQ1YTRiODdmYzM4YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwc0lubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzSW5saW5lcy5oCkBAIC0z
NCwyMCArMzQsMjAgQEAgQUxXQVlTX0lOTElORSBWTSYgVk1UcmFwczo6dm0oKSBjb25zdAogICAg
IHJldHVybiAqYml0d2lzZV9jYXN0PFZNKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4odGhpcykg
LSBPQkpFQ1RfT0ZGU0VUT0YoVk0sIG1fdHJhcHMpKTsKIH0KIAotaW5saW5lIHZvaWQgVk1UcmFw
czo6ZGVmZXJUZXJtaW5hdGlvbihEZWZlckFjdGlvbiBkZWZlckFjdGlvbikKK2lubGluZSB2b2lk
IFZNVHJhcHM6OmRlZmVyVGVybWluYXRpb24oRGVmZXJBY3Rpb24gZGVmZXJBY3Rpb24sIENsZWFy
QWN0aW9uIGNsZWFyQWN0aW9uKQogewogICAgIGF1dG8gb3JpZ2luYWxDb3VudCA9IG1fZGVmZXJU
ZXJtaW5hdGlvbkNvdW50Kys7CiAgICAgQVNTRVJUKG1fZGVmZXJUZXJtaW5hdGlvbkNvdW50IDwg
VUlOVF9NQVgpOwogICAgIGlmIChVTkxJS0VMWShvcmlnaW5hbENvdW50ID09IDAgJiYgdm0oKS5l
eGNlcHRpb24oKSkpCi0gICAgICAgIGRlZmVyVGVybWluYXRpb25TbG93KGRlZmVyQWN0aW9uKTsK
KyAgICAgICAgZGVmZXJUZXJtaW5hdGlvblNsb3coZGVmZXJBY3Rpb24sIGNsZWFyQWN0aW9uKTsK
IH0KIAotaW5saW5lIHZvaWQgVk1UcmFwczo6dW5kb0RlZmVyVGVybWluYXRpb24oRGVmZXJBY3Rp
b24gZGVmZXJBY3Rpb24pCitpbmxpbmUgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJtaW5hdGlv
bihEZWZlckFjdGlvbiBkZWZlckFjdGlvbiwgQ2xlYXJBY3Rpb24gY2xlYXJBY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKG1fZGVmZXJUZXJtaW5hdGlvbkNvdW50ID4gMCk7CiAgICAgQVNTRVJUKCFtX3N1
c3BlbmRlZFRlcm1pbmF0aW9uRXhjZXB0aW9uIHx8IHZtKCkudGVybWluYXRpb25JblByb2dyZXNz
KCkpOwogICAgIGlmIChVTkxJS0VMWSgtLW1fZGVmZXJUZXJtaW5hdGlvbkNvdW50ID09IDAgJiYg
dm0oKS50ZXJtaW5hdGlvbkluUHJvZ3Jlc3MoKSkpCi0gICAgICAgIHVuZG9EZWZlclRlcm1pbmF0
aW9uU2xvdyhkZWZlckFjdGlvbik7CisgICAgICAgIHVuZG9EZWZlclRlcm1pbmF0aW9uU2xvdyhk
ZWZlckFjdGlvbiwgY2xlYXJBY3Rpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453278</attachid>
            <date>2022-02-25 17:17:12 -0800</date>
            <delta_ts>2022-02-25 18:21:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237176-20220225171712.patch</filename>
            <type>text/plain</type>
            <size>6288</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
M2IxYzFiMjc0MDBmZDAxZDBhMDM1ZmE3YzZiOWE2MGI0YzFkOGI3Li5iNTc2YzA5NWE5NDRkZTAw
YjA3YzYxZThlNjBiZmQyOGE5OTEyN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMi0wMi0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGluIEludGVy
cHJldGVyOjp1bndpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEludGVycHJldGVyOjp1bndpbmQgY2FsbHMgc2FuaXRpemVSZW1vdGVGdW5jdGlvbkV4
Y2VwdGlvbiwgd2hpY2ggd291bGQgbGlrZSB0byBjcmVhdGUgc2NvcGUgKGJ1dCBpdAorICAgICAg
ICBkb2VzIG5vdCBoYXZlIHVzZXIgb2JzZXJ2YWJsZSBiZWhhdmlvcikuIFByb2JsZW0gaXMgdGhh
dCwgc2luY2UgaXQgaXMgY3JlYXRpbmcgYSBzY29wZSwgaXQgY2FuIHRocm93CisgICAgICAgIGEg
dGVybWluYXRpb24gZXhjZXB0aW9uLiBXZSB3ZXJlIHVzaW5nIERlZmVyVGVybWluYXRpb24sIGJ1
dCBkZXN0cnVjdG9yIG9mIHRoaXMgc2NvcGUgY2FuIHN0aWxsIHNldAorICAgICAgICB0ZXJtaW5h
dGlvbiBleGNlcHRpb24sIHdoaWNoIHJlc3VsdHMgaW4gdGhyb3dpbmcgYSB0ZXJtaW5hdGlvbiBl
eGNlcHRpb24gZm9yIHRoZSBlcnJvciBoYW5kbGVyLgorCisgICAgICAgIFdlIHVzZSBEZWZlclRl
cm1pbmF0aW9uRm9yQVdoaWxlIGluIHRoZSBwcm9sb2d1ZSBvZiB0aGUgSW50ZXJwcmV0ZXI6OnVu
d2luZCB0byBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uCisgICAgICAgIHdpbGwgbm90IGFjY2Vw
dCB0ZXJtaW5hdGlvbiBleGNlcHRpb24gY29taW5nIGNvbmN1cnJlbnRseS4gQnV0IERlZmVyVGVy
bWluYXRpb25Gb3JBV2hpbGUgY2FuICgxKSBjbGVhcgorICAgICAgICBjdXJyZW50bHkgdW53aW5k
aW5nIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiwgYW5kIHRoaXMgY2FuICgyKSBsZWF2ZSBOZWVkVGVy
bWluYXRpb24gYml0IG9uIFZNIGV2ZW4gYWZ0ZXIKKyAgICAgICAgdW53aW5kaW5nIHZpYSB0ZXJt
aW5hdGlvbiBleGNlcHRpb24gaW4gVk0uIFNvIHdlIHNob3VsZCBub3QgdXNlIERlZmVyVGVybWlu
YXRpb25Gb3JBV2hpbGUgd2hlbiB3ZSBhcmUKKyAgICAgICAgdW53aW5kaW5nIHZpYSB0ZXJtaW5h
dGlvbiBleGNlcHRpb24uCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6
CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om5vdGlmeURlYnVnZ2VyT2ZVbndpbmRpbmcp
OgorICAgICAgICAoSlNDOjpzYW5pdGl6ZVJlbW90ZUZ1bmN0aW9uRXhjZXB0aW9uKToKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAgICAgIChKU0M6Om5vdGlmeURlYnVn
Z2VyT2ZVbndpbmRpbmcpOiBEZWxldGVkLgorCiAyMDIyLTAyLTI1ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI5MDUxNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCmluZGV4IGM1Yjg3MDM3NmUxMzc0MzVkYTUwZDc3OWQxZmYxMjNlYmMyM2UyNjcu
LmVjNmEzYzQ4NjAyN2YyMjYxNjMyOTAwYTM1NzQ4NDQyYjFiZGEwNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtNTAxLDI1
ICs1MDEsNiBAQCBjbGFzcyBHZXRDYXRjaEhhbmRsZXJGdW5jdG9yIHsKICAgICBtdXRhYmxlIEhh
bmRsZXJJbmZvKiBtX2hhbmRsZXI7CiB9OwogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIG5v
dGlmeURlYnVnZ2VyT2ZVbndpbmRpbmcoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsK
LSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gY2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KHZtKTsKLSAgICBEZWJ1Z2dlciogZGVidWdnZXIgPSBnbG9iYWxPYmplY3QtPmRl
YnVnZ2VyKCk7Ci0gICAgaWYgKExJS0VMWSghZGVidWdnZXIpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBEZWZlclRlcm1pbmF0aW9uIGRlZmVyU2NvcGUodm0pOwotICAgIGF1dG8gY2F0Y2hTY29w
ZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotCi0gICAgU3VzcGVuZEV4Y2VwdGlvblNjb3Bl
IHNjb3BlKCZ2bSk7Ci0gICAgaWYgKGNhbGxGcmFtZS0+aXNBbnlXYXNtQ2FsbGVlKCkKLSAgICAg
ICAgfHwgKGNhbGxGcmFtZS0+Y2FsbGVlKCkuaXNDZWxsKCkgJiYgY2FsbEZyYW1lLT5jYWxsZWUo
KS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNGdW5jdGlvbj4odm0pKSkKLSAgICAgICAgZGVidWdnZXIt
PnVud2luZEV2ZW50KGNhbGxGcmFtZSk7Ci0gICAgZWxzZQotICAgICAgICBkZWJ1Z2dlci0+ZGlk
RXhlY3V0ZVByb2dyYW0oY2FsbEZyYW1lKTsKLSAgICBjYXRjaFNjb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7Ci19Ci0KIENhdGNoSW5mbzo6Q2F0Y2hJbmZvKGNvbnN0IEhhbmRsZXJJbmZvKiBoYW5k
bGVyLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBtX3ZhbGlkID0gISFoYW5kbGVyOwpA
QCAtNjU5LDYgKzY0MCwyNSBAQCBjbGFzcyBVbndpbmRGdW5jdG9yIHsKICNlbmRpZgogICAgIH0K
IAorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgbm90aWZ5RGVidWdnZXJPZlVud2luZGlu
ZyhWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAgIHsKKyAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSk7
CisgICAgICAgIERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGdsb2JhbE9iamVjdC0+ZGVidWdnZXIoKTsK
KyAgICAgICAgaWYgKExJS0VMWSghZGVidWdnZXIpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJTY29wZSh2bSk7CisgICAgICAgIGF1dG8gY2F0
Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworCisgICAgICAgIFN1c3BlbmRFeGNl
cHRpb25TY29wZSBzY29wZSgmdm0pOworICAgICAgICBpZiAoY2FsbEZyYW1lLT5pc0FueVdhc21D
YWxsZWUoKQorICAgICAgICAgICAgfHwgKGNhbGxGcmFtZS0+Y2FsbGVlKCkuaXNDZWxsKCkgJiYg
Y2FsbEZyYW1lLT5jYWxsZWUoKS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNGdW5jdGlvbj4odm0pKSkK
KyAgICAgICAgICAgIGRlYnVnZ2VyLT51bndpbmRFdmVudChjYWxsRnJhbWUpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBkZWJ1Z2dlci0+ZGlkRXhlY3V0ZVByb2dyYW0oY2FsbEZyYW1lKTsK
KyAgICAgICAgY2F0Y2hTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworICAgIH0KKwogICAgIFZN
JiBtX3ZtOwogICAgIENhbGxGcmFtZSomIG1fY2FsbEZyYW1lOwogICAgIGJvb2wgbV9pc1Rlcm1p
bmF0aW9uOwpAQCAtNjc1LDcgKzY3NSw3IEBAIGNsYXNzIFVud2luZEZ1bmN0b3IgewogLy8gUmVw
bGFjZSBhbiBleGNlcHRpb24gd2hpY2ggcGFzc2VzIGFjcm9zcyBhIG1hcnNoYWxsaW5nIGJvdW5k
YXJ5IHdpdGggYSBUeXBlRXJyb3IgZm9yIGl0cyBoYW5kbGVyJ3MgZ2xvYmFsIG9iamVjdC4KIHN0
YXRpYyB2b2lkIHNhbml0aXplUmVtb3RlRnVuY3Rpb25FeGNlcHRpb24oVk0mIHZtLCBKU1JlbW90
ZUZ1bmN0aW9uKiByZW1vdGVGdW5jdGlvbiwgRXhjZXB0aW9uKiBleGNlcHRpb24pCiB7Ci0gICAg
RGVmZXJUZXJtaW5hdGlvbiBkZWZlclNjb3BlKHZtKTsKKyAgICBBU1NFUlQodm0udHJhcHMoKS5p
c0RlZmVycmluZ1Rlcm1pbmF0aW9uKCkpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBBU1NFUlQoZXhjZXB0aW9uKTsKICAgICBBU1NFUlQoIXZtLmlzVGVy
bWluYXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSk7CkBAIC03MDMsNiArNzAzLDI0IEBAIHN0YXRp
YyB2b2lkIHNhbml0aXplUmVtb3RlRnVuY3Rpb25FeGNlcHRpb24oVk0mIHZtLCBKU1JlbW90ZUZ1
bmN0aW9uKiByZW1vdGVGdW5jCiAKIE5FVkVSX0lOTElORSBDYXRjaEluZm8gSW50ZXJwcmV0ZXI6
OnVud2luZChWTSYgdm0sIENhbGxGcmFtZSomIGNhbGxGcmFtZSwgRXhjZXB0aW9uKiBleGNlcHRp
b24pCiB7CisgICAgLy8gV2hpbGUgcnVubmluZyBJbnRlcnByZXRlcjo6dW53aW5kLCB3ZSBtdXN0
IG5vdCBhY2NlcHQgY29uY3VycmVudGx5IHNldCB0ZXJtaW5hdGlvbiBleGNlcHRpb24sCisgICAg
Ly8gb3RoZXJ3aXNlLCB3ZSBjYW4gZW5kIHVwIGluIGEgZm91bmQgZXJyb3IgaGFuZGxlciB3aXRo
IGEgVGVybWluYXRpb25FeGNlcHRpb24sIGFuZCBlZmZlY3RpdmVseQorICAgIC8vICJjYXRjaCIg
dGhlIFRlcm1pbmF0aW9uRXhjZXB0aW9uIHdoaWNoIHNob3VsZCBub3QgYmUgY2F0Y2hhYmxlLgor
ICAgIC8vCisgICAgLy8gT24gdGhlIG90aGVyIGhhbmQsIHdlIGRvIG5vdCBjbGVhciBhbHJlYWR5
IGEgcmFpc2VkIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbiBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlCisg
ICAgLy8gdGhhdCB3ZSBhcmUgY2FsbGluZyB0aGlzIHVud2luZCBiZWNhdXNlIHdlIGFyZSBoYW5k
bGluZyB0aGlzIHRlcm1pbmF0aW9uIGV4Y2VwdGlvbi4KKyAgICAvLworICAgIC8vIFdoYXQgd2Ug
d291bGQgbGlrZSB0byBhY2hpZXZlIGhlcmUgaXMgbm90IHJhaXNpbmcgYSBuZXcgdGVybWluYXRp
b24gZXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcKKyAgICAvLyBJbnRlcnByZXRlcjo6dW53aW5kLCBp
bmNsdWRpbmcganVzdCBhZnRlciBmaW5pc2hpbmcgSW50ZXJwcmV0ZXI6OnVud2luZCwgYnV0IHdl
IGRvIG5vdCB3YW50CisgICAgLy8gdG8gY2xlYXIgYWxyZWFkeSByYWlzZWQgZXhjZXB0aW9uLgor
ICAgIC8vCisgICAgLy8gQnV0LCB3ZSBkbyBub3Qgd2FudCB0byB1c2UgRGVmZXJUZXJtaW5hdGlv
bkZvckFXaGlsZSB3aGVuIHdlIGFyZSBoYW5kbGluZyB0ZXJtaW5hdGlvbiBleGNlcHRpb246IHRo
aXMKKyAgICAvLyBpcyBiZWNhdXNlIHdlIHdpbGwgdW53aW5kIGV2ZXJ5dGhpbmcgaGVyZSwgYW5k
IGluIHRoYXQgY2FzZSBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGxlYXZlcworICAgIC8vIE5l
ZWRUZXJtaW5hdGlvbiBpbiB0aGUgVk0uIFRoaXMgaXMgbm90IGNvcnJlY3Qgc2luY2UgYWZ0ZXIg
dW53aW5kaW5nLCBOZWVkVGVybWluYXRpb24gYml0IHNob3VsZCBiZQorICAgIC8vIGNsZWFyZWQg
Zm9yIFZNLgorICAgIHN0ZDo6b3B0aW9uYWw8RGVmZXJUZXJtaW5hdGlvbkZvckFXaGlsZT4gZGVm
ZXJTY29wZTsKKyAgICBpZiAoIXZtLmlzVGVybWluYXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSkK
KyAgICAgICAgZGVmZXJTY29wZS5lbXBsYWNlKHZtKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBBU1NFUlQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
Y2FsbEZyYW1lKSAhPSB2bS50b3BFbnRyeUZyYW1lKTsKQEAgLTcyNSw2ICs3NDMsNyBAQCBORVZF
Ul9JTkxJTkUgQ2F0Y2hJbmZvIEludGVycHJldGVyOjp1bndpbmQoVk0mIHZtLCBDYWxsRnJhbWUq
JiBjYWxsRnJhbWUsIEV4Y2VwdAogICAgIFN0YWNrVmlzaXRvcjo6dmlzaXQ8U3RhY2tWaXNpdG9y
OjpUZXJtaW5hdGVJZlRvcEVudHJ5RnJhbWVJc0VtcHR5PihjYWxsRnJhbWUsIHZtLCBmdW5jdG9y
KTsKIAogICAgIGlmIChzZWVuUmVtb3RlRnVuY3Rpb24pIHsKKyAgICAgICAgQVNTRVJUKCF2bS5p
c1Rlcm1pbmF0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpOwogICAgICAgICBzYW5pdGl6ZVJlbW90
ZUZ1bmN0aW9uRXhjZXB0aW9uKHZtLCBzZWVuUmVtb3RlRnVuY3Rpb24sIGV4Y2VwdGlvbik7CiAg
ICAgICAgIGV4Y2VwdGlvbiA9IHNjb3BlLmV4Y2VwdGlvbigpOyAvLyBjbGVhciBtX25lZWRFeGNl
cHRpb25DaGVjawogICAgIH0K
</data>
<flag name="review"
          id="480580"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453282</attachid>
            <date>2022-02-25 19:15:02 -0800</date>
            <delta_ts>2022-02-25 19:15:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237176-20220225191502.patch</filename>
            <type>text/plain</type>
            <size>7332</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
M2IxYzFiMjc0MDBmZDAxZDBhMDM1ZmE3YzZiOWE2MGI0YzFkOGI3Li5iOTBlNzg1ODFiMDUwOGYw
N2NlMzg4OTE3ODNkMzU1NDM3MTVkNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMi0wMi0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBEZWZlclRlcm1pbmF0aW9uRm9yQVdoaWxlIGluIEludGVy
cHJldGVyOjp1bndpbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNzE3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIElmIHdlJ3JlIHVud2luZGluZyB0aGUgc3RhY2sgZHVlIHRvIGEgcmVndWxhciBleGNl
cHRpb24gKG5vdCBhIFRlcm1pbmF0aW9uRXhjZXB0aW9uKSwgdGhlbgorICAgICAgICB3ZSB3YW50
IHRvIHVzZSBhIERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUgc2NvcGUuIFRoaXMgaXMgYmVjYXVz
ZSB3ZSB3YW50IHRvIGF2b2lkIGEKKyAgICAgICAgVGVybWluYXRpb25FeGNlcHRpb24gYmVpbmcg
cmFpc2VkIChkdWUgdG8gYSBjb25jdXJyZW50IHRlcm1pbmF0aW9uIHJlcXVlc3QpIGluIHRoZSBt
aWRkbGUKKyAgICAgICAgb2YgdW53aW5kaW5nLiBUaGUgdW53aW5kaW5nIGNvZGUgb25seSBjaGVj
a3MgaWYgd2UncmUgaGFuZGxpbmcgYSBUZXJtaW5hdGlvbkV4Y2VwdGlvbiBiZWZvcmUKKyAgICAg
ICAgaXQgc3RhcnRzIHVud2luZGluZyBhbmQgaXMgbm90IGV4cGVjdGluZyB0aGlzIHN0YXR1cyB0
byBjaGFuZ2UgaW4gdGhlIG1pZGRsZS4gV2l0aG91dCB0aGUKKyAgICAgICAgRGVmZXJUZXJtaW5h
dGlvbkZvckFXaGlsZSBzY29wZSwgY29udHJvbCBmbG93IG1heSBlbmQgdXAgaW4gYW4gZXhjZXB0
aW9uIGhhbmRsZXIsIGFuZCBlZmZlY3RpdmVseQorICAgICAgICAiY2F0Y2giIHRoZSBuZXdseSBy
YWlzZWQgVGVybWluYXRpb25FeGNlcHRpb24sIHdoaWNoIHNob3VsZCBub3QgYmUgY2F0Y2hhYmxl
LgorCisgICAgICAgIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB3ZSdyZSB1bndpbmRpbmcgdGhlIHN0
YWNrIGR1ZSB0byBhIFRlcm1pbmF0aW9uRXhjZXB0aW9uLCB3ZSBkbyBub3QgbmVlZAorICAgICAg
ICBub3Igd2FudCB0aGUgRGVmZXJUZXJtaW5hdGlvbkZvckFXaGlsZSBzY29wZS4gVGhpcyBpcyBi
ZWNhdXNlIG9uIGV4aXQsIERlZmVyVGVybWluYXRpb25Gb3JBV2hpbGUKKyAgICAgICAgd2lsbCBz
ZXQgdGhlIFZNVHJhcHMgTmVlZFRlcm1pbmF0aW9uIGJpdCBpZiB0ZXJtaW5hdGlvbiBpcyBpbiBw
cm9ncmVzcy4gVGhlIHN5c3RlbSBleHBlY3RzIHRoZQorICAgICAgICBOZWVkVGVybWluYXRpb24g
Yml0IHRvIGJlIGhhdmUgYmVlbiBjbGVhcmVkIGJ5IFZNVHJhcHM6OmhhbmRsZVRyYXBzKCkgb25j
ZSB0aGUgVGVybWluYXRpb25FeGNlcHRpb24KKyAgICAgICAgaGFzIGJlZW4gcmFpc2VkLiBTb21l
IGxlZ2FjeSBjbGllbnQgYXBwcyByZWxpZXMgb24gdGhpcyBhbmQgZXhwZWN0cyB0byBiZSBhYmxl
IHRvIHJlLWVudGVyIHRoZQorICAgICAgICBWTSBhZnRlciBpdCBleGl0cyBkdWUgdG8gdGVybWlu
YXRpb24uIElmIHRoZSBOZWVkVGVybWluYXRpb24gYml0IGlzIHNldCwgdXBvbiByZS1lbnRyeSwg
dGhlCisgICAgICAgIFZNIHdpbGwgYmVoYXZlIGFzIGlmIGEgdGVybWluYXRpb24gcmVxdWVzdCBp
cyBwZW5kaW5nIGFuZCB0ZXJtaW5hdGUgYWxtb3N0IGltbWVkaWF0ZWx5LCB0aGVyZWJ5CisgICAg
ICAgIGJyZWFraW5nIHRoZSBsZWdhY3kgY2xpZW50IGFwcHMuCisKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om5vdGlm
eURlYnVnZ2VyT2ZVbndpbmRpbmcpOgorICAgICAgICAoSlNDOjpzYW5pdGl6ZVJlbW90ZUZ1bmN0
aW9uRXhjZXB0aW9uKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnVud2luZCk6CisgICAg
ICAgIChKU0M6Om5vdGlmeURlYnVnZ2VyT2ZVbndpbmRpbmcpOiBEZWxldGVkLgorCiAyMDIyLTAy
LTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI5MDUxNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IGM1Yjg3MDM3NmUxMzc0MzVkYTUw
ZDc3OWQxZmYxMjNlYmMyM2UyNjcuLjM2MjAyZGNiNWU5M2JmNWEwNWNiYTY2NDk0OThjN2MzMzk2
MzgzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmNwcApAQCAtNTAxLDI1ICs1MDEsNiBAQCBjbGFzcyBHZXRDYXRjaEhhbmRsZXJGdW5j
dG9yIHsKICAgICBtdXRhYmxlIEhhbmRsZXJJbmZvKiBtX2hhbmRsZXI7CiB9OwogCi1BTFdBWVNf
SU5MSU5FIHN0YXRpYyB2b2lkIG5vdGlmeURlYnVnZ2VyT2ZVbndpbmRpbmcoVk0mIHZtLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
Y2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKTsKLSAgICBEZWJ1Z2dlciogZGVidWdn
ZXIgPSBnbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCk7Ci0gICAgaWYgKExJS0VMWSghZGVidWdnZXIp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBEZWZlclRlcm1pbmF0aW9uIGRlZmVyU2NvcGUodm0p
OwotICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotCi0gICAg
U3VzcGVuZEV4Y2VwdGlvblNjb3BlIHNjb3BlKCZ2bSk7Ci0gICAgaWYgKGNhbGxGcmFtZS0+aXNB
bnlXYXNtQ2FsbGVlKCkKLSAgICAgICAgfHwgKGNhbGxGcmFtZS0+Y2FsbGVlKCkuaXNDZWxsKCkg
JiYgY2FsbEZyYW1lLT5jYWxsZWUoKS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNGdW5jdGlvbj4odm0p
KSkKLSAgICAgICAgZGVidWdnZXItPnVud2luZEV2ZW50KGNhbGxGcmFtZSk7Ci0gICAgZWxzZQot
ICAgICAgICBkZWJ1Z2dlci0+ZGlkRXhlY3V0ZVByb2dyYW0oY2FsbEZyYW1lKTsKLSAgICBjYXRj
aFNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7Ci19Ci0KIENhdGNoSW5mbzo6Q2F0Y2hJbmZvKGNv
bnN0IEhhbmRsZXJJbmZvKiBoYW5kbGVyLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBt
X3ZhbGlkID0gISFoYW5kbGVyOwpAQCAtNjU5LDYgKzY0MCwyNSBAQCBjbGFzcyBVbndpbmRGdW5j
dG9yIHsKICNlbmRpZgogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgbm90
aWZ5RGVidWdnZXJPZlVud2luZGluZyhWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lKQorICAg
IHsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCh2bSk7CisgICAgICAgIERlYnVnZ2VyKiBkZWJ1Z2dlciA9IGdsb2Jh
bE9iamVjdC0+ZGVidWdnZXIoKTsKKyAgICAgICAgaWYgKExJS0VMWSghZGVidWdnZXIpKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIERlZmVyVGVybWluYXRpb24gZGVmZXJTY29wZSh2
bSk7CisgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwor
CisgICAgICAgIFN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgmdm0pOworICAgICAgICBpZiAo
Y2FsbEZyYW1lLT5pc0FueVdhc21DYWxsZWUoKQorICAgICAgICAgICAgfHwgKGNhbGxGcmFtZS0+
Y2FsbGVlKCkuaXNDZWxsKCkgJiYgY2FsbEZyYW1lLT5jYWxsZWUoKS5hc0NlbGwoKS0+aW5oZXJp
dHM8SlNGdW5jdGlvbj4odm0pKSkKKyAgICAgICAgICAgIGRlYnVnZ2VyLT51bndpbmRFdmVudChj
YWxsRnJhbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZWJ1Z2dlci0+ZGlkRXhlY3V0
ZVByb2dyYW0oY2FsbEZyYW1lKTsKKyAgICAgICAgY2F0Y2hTY29wZS5hc3NlcnROb0V4Y2VwdGlv
bigpOworICAgIH0KKwogICAgIFZNJiBtX3ZtOwogICAgIENhbGxGcmFtZSomIG1fY2FsbEZyYW1l
OwogICAgIGJvb2wgbV9pc1Rlcm1pbmF0aW9uOwpAQCAtNjc1LDcgKzY3NSw3IEBAIGNsYXNzIFVu
d2luZEZ1bmN0b3IgewogLy8gUmVwbGFjZSBhbiBleGNlcHRpb24gd2hpY2ggcGFzc2VzIGFjcm9z
cyBhIG1hcnNoYWxsaW5nIGJvdW5kYXJ5IHdpdGggYSBUeXBlRXJyb3IgZm9yIGl0cyBoYW5kbGVy
J3MgZ2xvYmFsIG9iamVjdC4KIHN0YXRpYyB2b2lkIHNhbml0aXplUmVtb3RlRnVuY3Rpb25FeGNl
cHRpb24oVk0mIHZtLCBKU1JlbW90ZUZ1bmN0aW9uKiByZW1vdGVGdW5jdGlvbiwgRXhjZXB0aW9u
KiBleGNlcHRpb24pCiB7Ci0gICAgRGVmZXJUZXJtaW5hdGlvbiBkZWZlclNjb3BlKHZtKTsKKyAg
ICBBU1NFUlQodm0udHJhcHMoKS5pc0RlZmVycmluZ1Rlcm1pbmF0aW9uKCkpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBBU1NFUlQoZXhjZXB0aW9uKTsK
ICAgICBBU1NFUlQoIXZtLmlzVGVybWluYXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSk7CkBAIC03
MDMsNiArNzAzLDI4IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplUmVtb3RlRnVuY3Rpb25FeGNlcHRp
b24oVk0mIHZtLCBKU1JlbW90ZUZ1bmN0aW9uKiByZW1vdGVGdW5jCiAKIE5FVkVSX0lOTElORSBD
YXRjaEluZm8gSW50ZXJwcmV0ZXI6OnVud2luZChWTSYgdm0sIENhbGxGcmFtZSomIGNhbGxGcmFt
ZSwgRXhjZXB0aW9uKiBleGNlcHRpb24pCiB7CisgICAgLy8gSWYgd2UncmUgdW53aW5kaW5nIHRo
ZSBzdGFjayBkdWUgdG8gYSByZWd1bGFyIGV4Y2VwdGlvbiAobm90IGEgVGVybWluYXRpb25FeGNl
cHRpb24pLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byB1c2UgYSBEZWZlclRlcm1pbmF0aW9uRm9y
QVdoaWxlIHNjb3BlLiBUaGlzIGlzIGJlY2F1c2Ugd2Ugd2FudCB0byBhdm9pZCBhCisgICAgLy8g
VGVybWluYXRpb25FeGNlcHRpb24gYmVpbmcgcmFpc2VkIChkdWUgdG8gYSBjb25jdXJyZW50IHRl
cm1pbmF0aW9uIHJlcXVlc3QpIGluIHRoZSBtaWRkbGUKKyAgICAvLyBvZiB1bndpbmRpbmcuIFRo
ZSB1bndpbmRpbmcgY29kZSBvbmx5IGNoZWNrcyBpZiB3ZSdyZSBoYW5kbGluZyBhIFRlcm1pbmF0
aW9uRXhjZXB0aW9uIGJlZm9yZQorICAgIC8vIGl0IHN0YXJ0cyB1bndpbmRpbmcgYW5kIGlzIG5v
dCBleHBlY3RpbmcgdGhpcyBzdGF0dXMgdG8gY2hhbmdlIGluIHRoZSBtaWRkbGUuIFdpdGhvdXQg
dGhlCisgICAgLy8gRGVmZXJUZXJtaW5hdGlvbkZvckFXaGlsZSBzY29wZSwgY29udHJvbCBmbG93
IG1heSBlbmQgdXAgaW4gYW4gZXhjZXB0aW9uIGhhbmRsZXIsIGFuZCBlZmZlY3RpdmVseQorICAg
IC8vICJjYXRjaCIgdGhlIG5ld2x5IHJhaXNlZCBUZXJtaW5hdGlvbkV4Y2VwdGlvbiwgd2hpY2gg
c2hvdWxkIG5vdCBiZSBjYXRjaGFibGUuCisgICAgLy8KKyAgICAvLyBPbiB0aGUgb3RoZXIgaGFu
ZCwgaWYgd2UncmUgdW53aW5kaW5nIHRoZSBzdGFjayBkdWUgdG8gYSBUZXJtaW5hdGlvbkV4Y2Vw
dGlvbiwgd2UgZG8gbm90IG5lZWQKKyAgICAvLyBub3Igd2FudCB0aGUgRGVmZXJUZXJtaW5hdGlv
bkZvckFXaGlsZSBzY29wZS4gVGhpcyBpcyBiZWNhdXNlIG9uIGV4aXQsIERlZmVyVGVybWluYXRp
b25Gb3JBV2hpbGUKKyAgICAvLyB3aWxsIHNldCB0aGUgVk1UcmFwcyBOZWVkVGVybWluYXRpb24g
Yml0IGlmIHRlcm1pbmF0aW9uIGlzIGluIHByb2dyZXNzLiBUaGUgc3lzdGVtIGV4cGVjdHMgdGhl
CisgICAgLy8gTmVlZFRlcm1pbmF0aW9uIGJpdCB0byBiZSBoYXZlIGJlZW4gY2xlYXJlZCBieSBW
TVRyYXBzOjpoYW5kbGVUcmFwcygpIG9uY2UgdGhlIFRlcm1pbmF0aW9uRXhjZXB0aW9uCisgICAg
Ly8gaGFzIGJlZW4gcmFpc2VkLiBTb21lIGxlZ2FjeSBjbGllbnQgYXBwcyByZWxpZXMgb24gdGhp
cyBhbmQgZXhwZWN0cyB0byBiZSBhYmxlIHRvIHJlLWVudGVyIHRoZQorICAgIC8vIFZNIGFmdGVy
IGl0IGV4aXRzIGR1ZSB0byB0ZXJtaW5hdGlvbi4gSWYgdGhlIE5lZWRUZXJtaW5hdGlvbiBiaXQg
aXMgc2V0LCB1cG9uIHJlLWVudHJ5LCB0aGUKKyAgICAvLyBWTSB3aWxsIGJlaGF2ZSBhcyBpZiBh
IHRlcm1pbmF0aW9uIHJlcXVlc3QgaXMgcGVuZGluZyBhbmQgdGVybWluYXRlIGFsbW9zdCBpbW1l
ZGlhdGVseSwgdGhlcmVieQorICAgIC8vIGJyZWFraW5nIHRoZSBsZWdhY3kgY2xpZW50IGFwcHMu
CisgICAgLy8KKyAgICAvLyBGSVhNRTogUmV2aXNpdCB0aGlzIG9uY2Ugd2UgY2FuIGRlcHJlY2F0
ZSB0aGlzIGxlZ2FjeSBiZWhhdmlvciBvZiBiZWluZyBhYmxlIHRvIHJlLWVudGVyIHRoZSBWTQor
ICAgIC8vIGFmdGVyIHRlcm1pbmF0aW9uLgorICAgIHN0ZDo6b3B0aW9uYWw8RGVmZXJUZXJtaW5h
dGlvbkZvckFXaGlsZT4gZGVmZXJTY29wZTsKKyAgICBpZiAoIXZtLmlzVGVybWluYXRpb25FeGNl
cHRpb24oZXhjZXB0aW9uKSkKKyAgICAgICAgZGVmZXJTY29wZS5lbXBsYWNlKHZtKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKICAgICBBU1NFUlQocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oY2FsbEZyYW1lKSAhPSB2bS50b3BFbnRyeUZyYW1lKTsKQEAgLTcy
NSw2ICs3NDcsNyBAQCBORVZFUl9JTkxJTkUgQ2F0Y2hJbmZvIEludGVycHJldGVyOjp1bndpbmQo
Vk0mIHZtLCBDYWxsRnJhbWUqJiBjYWxsRnJhbWUsIEV4Y2VwdAogICAgIFN0YWNrVmlzaXRvcjo6
dmlzaXQ8U3RhY2tWaXNpdG9yOjpUZXJtaW5hdGVJZlRvcEVudHJ5RnJhbWVJc0VtcHR5PihjYWxs
RnJhbWUsIHZtLCBmdW5jdG9yKTsKIAogICAgIGlmIChzZWVuUmVtb3RlRnVuY3Rpb24pIHsKKyAg
ICAgICAgQVNTRVJUKCF2bS5pc1Rlcm1pbmF0aW9uRXhjZXB0aW9uKGV4Y2VwdGlvbikpOwogICAg
ICAgICBzYW5pdGl6ZVJlbW90ZUZ1bmN0aW9uRXhjZXB0aW9uKHZtLCBzZWVuUmVtb3RlRnVuY3Rp
b24sIGV4Y2VwdGlvbik7CiAgICAgICAgIGV4Y2VwdGlvbiA9IHNjb3BlLmV4Y2VwdGlvbigpOyAv
LyBjbGVhciBtX25lZWRFeGNlcHRpb25DaGVjawogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>