<?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>249919</bug_id>
          
          <creation_ts>2022-12-27 21:39:35 -0800</creation_ts>
          <short_desc>[contain-intrinsic-size] auto-009.html is failing</short_desc>
          <delta_ts>2026-02-03 23:35:40 -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>CSS</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>239450</dependson>
          <blocked>306935</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>obrufau</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1922059</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-12-27 21:39:35 -0800</bug_when>
    <thetext>To fix auto-009.html, looks like we need to store last remembered width and height instead of size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1922060</commentid>
    <comment_count>1</comment_count>
      <attachid>464232</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-12-27 21:40:02 -0800</bug_when>
    <thetext>Created attachment 464232
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1922792</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-03 21:40:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/103860290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1924073</commentid>
    <comment_count>3</comment_count>
      <attachid>464232</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2023-01-09 06:58:54 -0800</bug_when>
    <thetext>Comment on attachment 464232
WIP-patch

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

&gt; Source/WebCore/dom/ElementRareData.cpp:44
&gt; +    LayoutUnit lastRemembedHeight;

These should be logical (since ResizeObserver tracks changes to the logical sizes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932322</commentid>
    <comment_count>4</comment_count>
      <attachid>464921</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-09 05:32:58 -0800</bug_when>
    <thetext>Created attachment 464921
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932323</commentid>
    <comment_count>5</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-09 05:33:29 -0800</bug_when>
    <thetext>(In reply to Oriol Brufau from comment #3)
&gt; Comment on attachment 464232 [details]
&gt; WIP-patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=464232&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ElementRareData.cpp:44
&gt; &gt; +    LayoutUnit lastRemembedHeight;
&gt; 
&gt; These should be logical (since ResizeObserver tracks changes to the logical
&gt; sizes).

Done, thanks:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932328</commentid>
    <comment_count>6</comment_count>
      <attachid>464921</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2023-02-09 06:40:12 -0800</bug_when>
    <thetext>Comment on attachment 464921
WIP-patch

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

&gt; Source/WebCore/dom/Element.cpp:4484
&gt; +void Element::clearLastRememberedLogicalSize()

Maybe clearLastRememberedSizes? No need to consider it logical since it&apos;s clearing both.

&gt; Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:351
&gt; +            element.setLastRememberedLogicalWidth(LayoutUnit(-1));

You are checking the physical containIntrinsicWidthType but clearing the logical setLastRememberedLogicalWidth.
I don&apos;t think this will work in a vertical writing mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932348</commentid>
    <comment_count>7</comment_count>
      <attachid>464921</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-09 08:08:15 -0800</bug_when>
    <thetext>Comment on attachment 464921
WIP-patch

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

&gt;&gt; Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:351
&gt;&gt; +            element.setLastRememberedLogicalWidth(LayoutUnit(-1));
&gt; 
&gt; You are checking the physical containIntrinsicWidthType but clearing the logical setLastRememberedLogicalWidth.
&gt; I don&apos;t think this will work in a vertical writing mode.

Ah, yes, should check writing mode here! Will do, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932614</commentid>
    <comment_count>8</comment_count>
      <attachid>464940</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-10 04:17:57 -0800</bug_when>
    <thetext>Created attachment 464940
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932637</commentid>
    <comment_count>9</comment_count>
      <attachid>464941</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-10 05:49:56 -0800</bug_when>
    <thetext>Created attachment 464941
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1932642</commentid>
    <comment_count>10</comment_count>
      <attachid>464942</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-10 06:15:21 -0800</bug_when>
    <thetext>Created attachment 464942
WIP-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935055</commentid>
    <comment_count>11</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2023-02-20 05:34:14 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/10359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1937383</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-28 06:17:45 -0800</bug_when>
    <thetext>Committed 260939@main (d8e31024efa9): &lt;https://commits.webkit.org/260939@main&gt;

Reviewed commits have been landed. Closing PR #10359 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464232</attachid>
            <date>2022-12-27 21:40:02 -0800</date>
            <delta_ts>2023-02-09 05:32:58 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>fix-auto-009.diff</filename>
            <type>text/plain</type>
            <size>12037</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CmluZGV4
IDI0MzQ2MDhiMzJlOS4uZWJjYjgzMjYxZDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgT25seSBy
ZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBpbmxpbmUgc2l6ZSAtIGNsaWVudEhlaWdodCBleHBlY3RlZCAxIGJ1
dCBnb3QgNTAKLUZBSUwgT25seSByZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMTAwCitQQVNTIE9ubHkgcmVjb3JkaW5nIGxhc3QgcmVt
ZW1iZXJlZCBpbmxpbmUgc2l6ZQorUEFTUyBPbmx5IHJlY29yZGluZyBsYXN0IHJlbWVtYmVyZWQg
YmxvY2sgc2l6ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZjkxNDEwY2Y4Y2Y1Li5mY2Rm
ZGZiMjM3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQ0MTgsMjAgKzQ0MTgsMzIgQEAg
UmVzaXplT2JzZXJ2ZXJEYXRhKiBFbGVtZW50OjpyZXNpemVPYnNlcnZlckRhdGEoKQogICAgIHJl
dHVybiBoYXNSYXJlRGF0YSgpID8gZWxlbWVudFJhcmVEYXRhKCktPnJlc2l6ZU9ic2VydmVyRGF0
YSgpIDogbnVsbHB0cjsKIH0KIAotUmVzaXplT2JzZXJ2ZXJTaXplKiBFbGVtZW50OjpsYXN0UmVt
ZW1iZXJlZFNpemUoKSBjb25zdAorTGF5b3V0VW5pdCBFbGVtZW50OjpsYXN0UmVtZW1iZXJlZFdp
ZHRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0
YSgpLT5sYXN0UmVtZW1iZXJlZFNpemUoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGhhc1JhcmVE
YXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+bGFzdFJlbWVtYmVyZWRXaWR0aCgpIDogTGF5b3V0
VW5pdCgtMSk7CiB9CiAKLXZvaWQgRWxlbWVudDo6c2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZjxS
ZXNpemVPYnNlcnZlclNpemU+JiYgc2l6ZSkKK0xheW91dFVuaXQgRWxlbWVudDo6bGFzdFJlbWVt
YmVyZWRIZWlnaHQoKSBjb25zdAogewotICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExh
c3RSZW1lbWJlcmVkU2l6ZShXVEZNb3ZlKHNpemUpKTsKKyAgICByZXR1cm4gaGFzUmFyZURhdGEo
KSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5sYXN0UmVtZW1iZXJlZEhlaWdodCgpIDogTGF5b3V0VW5p
dCgtMSk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0TGFzdFJlbWVtYmVyZWRXaWR0aChMYXlvdXRV
bml0IHdpZHRoKQoreworICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExhc3RSZW1lbWJl
cmVkV2lkdGgod2lkdGgpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldExhc3RSZW1lbWJlcmVkSGVp
Z2h0KExheW91dFVuaXQgaGVpZ2h0KQoreworICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNl
dExhc3RSZW1lbWJlcmVkSGVpZ2h0KGhlaWdodCk7CiB9CiAKIHZvaWQgRWxlbWVudDo6Y2xlYXJM
YXN0UmVtZW1iZXJlZFNpemUoKQogewotICAgIGlmIChoYXNSYXJlRGF0YSgpKQotICAgICAgICBl
bGVtZW50UmFyZURhdGEoKS0+Y2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKTsKKyAgICBpZiAoaGFz
UmFyZURhdGEoKSkgeworICAgICAgICBlbGVtZW50UmFyZURhdGEoKS0+c2V0TGFzdFJlbWVtYmVy
ZWRXaWR0aCgtMSk7CisgICAgICAgIGVsZW1lbnRSYXJlRGF0YSgpLT5zZXRMYXN0UmVtZW1iZXJl
ZEhlaWdodCgtMSk7CisgICAgfQogfQogCiBib29sIEVsZW1lbnQ6OmlzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYjM2MGQ4NDg4Yjc1Li5kM2U3M2Qy
NzBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNzMsNyArNzMsNiBAQCBjbGFzcyBQbGF0Zm9y
bVdoZWVsRXZlbnQ7CiBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyU3R5bGU7CiBj
bGFzcyBSZW5kZXJUcmVlUG9zaXRpb247Ci1jbGFzcyBSZXNpemVPYnNlcnZlclNpemU7CiBjbGFz
cyBTcGFjZVNwbGl0U3RyaW5nOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcDsKIGNsYXNzIFN0eWxl
UHJvcGVydHlNYXBSZWFkT25seTsKQEAgLTY4MSw4ICs2ODAsMTAgQEAgcHVibGljOgogICAgIFJl
c2l6ZU9ic2VydmVyRGF0YSYgZW5zdXJlUmVzaXplT2JzZXJ2ZXJEYXRhKCk7CiAgICAgUmVzaXpl
T2JzZXJ2ZXJEYXRhKiByZXNpemVPYnNlcnZlckRhdGEoKTsKIAotICAgIFJlc2l6ZU9ic2VydmVy
U2l6ZSogbGFzdFJlbWVtYmVyZWRTaXplKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRMYXN0UmVtZW1i
ZXJlZFNpemUoUmVmPFJlc2l6ZU9ic2VydmVyU2l6ZT4mJik7CisgICAgTGF5b3V0VW5pdCBsYXN0
UmVtZW1iZXJlZFdpZHRoKCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZEhl
aWdodCgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRXaWR0aChMYXlvdXRVbml0
KTsKKyAgICB2b2lkIHNldExhc3RSZW1lbWJlcmVkSGVpZ2h0KExheW91dFVuaXQpOwogICAgIHZv
aWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKTsKIAogICAgIEVsZW1lbnQqIGZpbmRBbmNob3JF
bGVtZW50Rm9yTGluayhTdHJpbmcmIG91dEFuY2hvck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmNwcAppbmRleCA4NjFjMzU1NGQ0YmIuLmFiZTdlZTJhN2Q2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKQEAgLTQwLDcgKzQwLDggQEAgc3RydWN0
IFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEgOiBOb2RlUmFyZURhdGEgewogICAgIHZvaWQqIGlu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKICAgICB2b2lkKiB0eXBlZE9NRGF0YVsyXTsKICAgICB2
b2lkKiByZXNpemVPYnNlcnZlckRhdGE7Ci0gICAgdm9pZCogcmVzaXplT2JzZXJ2ZXJTaXplOwor
ICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVkV2lkdGg7CisgICAgTGF5b3V0VW5pdCBsYXN0UmVt
ZW1iZWRIZWlnaHQ7CiAgICAgRXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcCBleHBsaWNpdGx5
U2V0QXR0ckVsZW1lbnRzTWFwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
CmluZGV4IDU1YTJmZWUyMTI5NC4uMWE5M2MyYWUyNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRSYXJlRGF0YS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZXNpemVPYnNlcnZlci5o
IgotI2luY2x1ZGUgIlJlc2l6ZU9ic2VydmVyU2l6ZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0
eU1hcC5oIgpAQCAtMTA0LDkgKzEwMywxMCBAQCBwdWJsaWM6CiAgICAgUmVzaXplT2JzZXJ2ZXJE
YXRhKiByZXNpemVPYnNlcnZlckRhdGEoKSB7IHJldHVybiBtX3Jlc2l6ZU9ic2VydmVyRGF0YS5n
ZXQoKTsgfQogICAgIHZvaWQgc2V0UmVzaXplT2JzZXJ2ZXJEYXRhKHN0ZDo6dW5pcXVlX3B0cjxS
ZXNpemVPYnNlcnZlckRhdGE+JiYgZGF0YSkgeyBtX3Jlc2l6ZU9ic2VydmVyRGF0YSA9IFdURk1v
dmUoZGF0YSk7IH0KIAotICAgIFJlc2l6ZU9ic2VydmVyU2l6ZSogbGFzdFJlbWVtYmVyZWRTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVtZW1iZXJlZFNpemUuZ2V0KCk7IH0KLSAgICB2b2lk
IHNldExhc3RSZW1lbWJlcmVkU2l6ZShSZWZQdHI8UmVzaXplT2JzZXJ2ZXJTaXplPiYmIHNpemUp
IHsgbV9sYXN0UmVtZW1iZXJlZFNpemUgPSBXVEZNb3ZlKHNpemUpOyB9Ci0gICAgdm9pZCBjbGVh
ckxhc3RSZW1lbWJlcmVkU2l6ZSgpIHsgbV9sYXN0UmVtZW1iZXJlZFNpemUgPSBudWxscHRyOyB9
CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0UmVtZW1iZXJlZFdpZHRoOyB9CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZEhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlbWVtYmVyZWRIZWlnaHQ7IH0KKyAgICB2b2lkIHNl
dExhc3RSZW1lbWJlcmVkV2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkgeyBtX2xhc3RSZW1lbWJlcmVk
V2lkdGggPSB3aWR0aDsgfQorICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRIZWlnaHQoTGF5b3V0
VW5pdCBoZWlnaHQpIHsgbV9sYXN0UmVtZW1iZXJlZEhlaWdodCA9IGhlaWdodDsgfQogCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgbm9uY2UoKSBjb25zdCB7IHJldHVybiBtX25vbmNlOyB9CiAgICAg
dm9pZCBzZXROb25jZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkgeyBtX25vbmNlID0gdmFsdWU7
IH0KQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXN1bHQuYWRkKFVz
ZVR5cGU6OkF0dHJpYnV0ZU1hcCk7CiAgICAgICAgIGlmIChtX2ludGVyc2VjdGlvbk9ic2VydmVy
RGF0YSkKICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6SW50ZXJhY3Rpb25PYnNlcnZl
cik7Ci0gICAgICAgIGlmIChtX3Jlc2l6ZU9ic2VydmVyRGF0YSB8fCBtX2xhc3RSZW1lbWJlcmVk
U2l6ZSkKKyAgICAgICAgaWYgKG1fcmVzaXplT2JzZXJ2ZXJEYXRhIHx8IG1fbGFzdFJlbWVtYmVy
ZWRXaWR0aCA+PSAwIHx8IG1fbGFzdFJlbWVtYmVyZWRIZWlnaHQgPj0gMCkKICAgICAgICAgICAg
IHJlc3VsdC5hZGQoVXNlVHlwZTo6UmVzaXplT2JzZXJ2ZXIpOwogICAgICAgICBpZiAoIW1fYW5p
bWF0aW9uUmFyZURhdGEuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBl
OjpBbmltYXRpb25zKTsKQEAgLTE4Miw3ICsxODIsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJE
YXRhOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlc2l6ZU9ic2VydmVyRGF0YT4gbV9yZXNpemVP
YnNlcnZlckRhdGE7Ci0gICAgUmVmUHRyPFJlc2l6ZU9ic2VydmVyU2l6ZT4gbV9sYXN0UmVtZW1i
ZXJlZFNpemU7CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEVsZW1lbnRBbmltYXRpb25S
YXJlRGF0YT4+IG1fYW5pbWF0aW9uUmFyZURhdGE7CiAKQEAgLTE5Nyw2ICsxOTYsOSBAQCBwcml2
YXRlOgogCiAgICAgQXRvbVN0cmluZyBtX25vbmNlOwogCisgICAgTGF5b3V0VW5pdCBtX2xhc3RS
ZW1lbWJlcmVkV2lkdGggeyAtMSB9OworICAgIExheW91dFVuaXQgbV9sYXN0UmVtZW1iZXJlZEhl
aWdodCB7IC0xIH07CisKICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwIG1fZXhwbGlj
aXRseVNldEF0dHJFbGVtZW50c01hcDsKIAogICAgIHZvaWQgcmVsZWFzZVBzZXVkb0VsZW1lbnQo
UHNldWRvRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVP
YnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNw
cAppbmRleCAwNmZlY2U2MWQyZDkuLjU1MjVlZTJjYWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQm94LmgiCi0jaW5jbHVkZSAiUmVzaXplT2JzZXJ2ZXJTaXplLmgiCiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjUsMTEgKzEyNCwxMyBAQCBz
dGQ6Om9wdGlvbmFsPFJlc2l6ZU9ic2VydmF0aW9uOjpCb3hTaXplcz4gUmVzaXplT2JzZXJ2YXRp
b246OmVsZW1lbnRTaXplQ2hhbmdlZAogICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50U2l6
ZXM7CiAgICAgICAgICAgICBpZiAoIW1fdGFyZ2V0LT5yZW5kZXJCb3goKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OwotICAgICAgICAgICAgYXV0byBsYXN0UmVtZW1iZXJlZFNpemUgPSBt
X3RhcmdldC0+bGFzdFJlbWVtYmVyZWRTaXplKCk7Ci0gICAgICAgICAgICBpZiAoIWxhc3RSZW1l
bWJlcmVkU2l6ZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFNpemVzOwotICAgICAg
ICAgICAgaWYgKExheW91dFNpemUobGFzdFJlbWVtYmVyZWRTaXplLT5pbmxpbmVTaXplKCksIGxh
c3RSZW1lbWJlcmVkU2l6ZS0+YmxvY2tTaXplKCkpICE9IGN1cnJlbnRTaXplcy0+Y29udGVudEJv
eExvZ2ljYWxTaXplKQorICAgICAgICAgICAgYXV0byBsYXN0UmVtZW1iZXJlZFdpZHRoID0gbV90
YXJnZXQtPmxhc3RSZW1lbWJlcmVkV2lkdGgoKTsKKyAgICAgICAgICAgIGF1dG8gbGFzdFJlbWVt
YmVyZWRIZWlnaHQgPSBtX3RhcmdldC0+bGFzdFJlbWVtYmVyZWRIZWlnaHQoKTsKKyAgICAgICAg
ICAgIGlmICgobGFzdFJlbWVtYmVyZWRXaWR0aCA8IDAgJiYgbGFzdFJlbWVtYmVyZWRIZWlnaHQg
PCAwKQorICAgICAgICAgICAgICAgIHx8IGxhc3RSZW1lbWJlcmVkV2lkdGggIT0gY3VycmVudFNp
emVzLT5jb250ZW50Qm94TG9naWNhbFNpemUud2lkdGgoKQorICAgICAgICAgICAgICAgIHx8IGxh
c3RSZW1lbWJlcmVkSGVpZ2h0ICE9IGN1cnJlbnRTaXplcy0+Y29udGVudEJveExvZ2ljYWxTaXpl
LmhlaWdodCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50U2l6ZXM7CisKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fbGFzdE9ic2VydmF0
aW9uU2l6ZXMuY29udGVudEJveExvZ2ljYWxTaXplICE9IGN1cnJlbnRTaXplcy0+Y29udGVudEJv
eExvZ2ljYWxTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmVyLmNwcAppbmRleCAz
MDE5YWE1MTc0OWYuLmVkMjEzZDY2MWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNpemVPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNl
cnZlci5jcHAKQEAgLTIzNiw3ICsyMzYsMTEgQEAgdm9pZCBSZXNpemVPYnNlcnZlcjo6Q2FsbGJh
Y2tGb3JDb250YWluSW50cmluc2ljU2l6ZTo6b25SZXNpemUoY29uc3QgVmVjdG9yPFJlZjwKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgYXV0byBjb250ZW50Qm94ZVNp
emUgPSBlbnRyeS0+Y29udGVudEJveFNpemUoKS5hdCgwKTsKLSAgICAgICAgICAgIHRhcmdldC0+
c2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlc2l6ZU9ic2VydmVyU2l6ZTo6Y3JlYXRlKGNvbnRlbnRC
b3hlU2l6ZS0+aW5saW5lU2l6ZSgpLCBjb250ZW50Qm94ZVNpemUtPmJsb2NrU2l6ZSgpKSk7Cisg
ICAgICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSB0YXJnZXQtPnJlbmRlckJveCgp
LT5zdHlsZSgpOworICAgICAgICAgICAgaWYgKHN0eWxlLmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5
cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAg
ICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZFdpZHRoKExheW91dFVuaXQoY29udGVu
dEJveGVTaXplLT5pbmxpbmVTaXplKCkpKTsKKyAgICAgICAgICAgIGlmIChzdHlsZS5jb250YWlu
SW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6QXV0b0Fu
ZExlbmd0aCkKKyAgICAgICAgICAgICAgICB0YXJnZXQtPnNldExhc3RSZW1lbWJlcmVkSGVpZ2h0
KExheW91dFVuaXQoY29udGVudEJveGVTaXplLT5ibG9ja1NpemUoKSkpOwogICAgICAgICB9CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBjN2FjZjkz
OTU0ZmYuLmVjOGQ4OTczZTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKQEAgLTc1LDcgKzc1LDYgQEAKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJS
ZXNpemVPYnNlcnZlclNpemUuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKICNpbmNsdWRlICJTVkdDbGlwUGF0aEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50
VHlwZUhlbHBlcnMuaCIKQEAgLTU1NDYsOCArNTU0NSw5IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKGVsZW1lbnQoKSAmJiBzdHlsZSgp
LmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6
OkF1dG9BbmRMZW5ndGggJiYgc2hvdWxkU2tpcENvbnRlbnQoKSkgewotICAgICAgICBpZiAoYXV0
byBsYXN0UmVtZW1iZXJlZFNpemUgPSBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkU2l6ZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBMYXlvdXRVbml0
KGxhc3RSZW1lbWJlcmVkU2l6ZS0+aW5saW5lU2l6ZSgpKSA6IExheW91dFVuaXQobGFzdFJlbWVt
YmVyZWRTaXplLT5ibG9ja1NpemUoKSk7CisgICAgICAgIGF1dG8gd2lkdGggPSBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZFdpZHRoKCkgOiBlbGVt
ZW50KCktPmxhc3RSZW1lbWJlcmVkSGVpZ2h0KCk7CisgICAgICAgIGlmICh3aWR0aCA+PSAwKQor
ICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwogICAgIH0KIAogICAgIGF1dG8gd2lkdGggPSBzdHls
ZSgpLmNvbnRhaW5JbnRyaW5zaWNXaWR0aCgpOwpAQCAtNTU2Miw4ICs1NTYyLDkgQEAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmV4cGxpY2l0SW50cmluc2ljSW5uZXJIZWln
aHQoKSBjb25zdAogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKGVsZW1l
bnQoKSAmJiBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkgPT0gQ29udGFpbklu
dHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoICYmIHNob3VsZFNraXBDb250ZW50KCkpIHsK
LSAgICAgICAgaWYgKGF1dG8gbGFzdFJlbWVtYmVyZWRTaXplID0gZWxlbWVudCgpLT5sYXN0UmVt
ZW1iZXJlZFNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gTGF5b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmJsb2NrU2l6ZSgpKSA6IExheW91
dFVuaXQobGFzdFJlbWVtYmVyZWRTaXplLT5pbmxpbmVTaXplKCkpOworICAgICAgICBhdXRvIGhl
aWdodCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxhc3RSZW1lbWJl
cmVkSGVpZ2h0KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkV2lkdGgoKTsKKyAgICAgICAg
aWYgKGhlaWdodCA+PSAwKQorICAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKICAgICB9CiAKICAg
ICBhdXRvIGhlaWdodCA9IHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRl
ci5jcHAKaW5kZXggMWU0Y2NjOWFlN2NmLi4wYjM3NDNlZTU1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApA
QCAtMzQ2LDkgKzM0NiwxNSBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50
UmVuZGVyZXIoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZQogICAgICAgICBlbGVt
ZW50LnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogCiAgICAgaWYgKCFoYXNEaXNwbGF5Q29udGVudHMp
IHsKLSAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGVTdHlsZS5jb250YWluSW50cmluc2ljV2lkdGhU
eXBlKCkgPT0gQ29udGFpbkludHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoIHx8IGVsZW1l
bnRVcGRhdGVTdHlsZS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENvbnRhaW5JbnRy
aW5zaWNTaXplVHlwZTo6QXV0b0FuZExlbmd0aCkKKyAgICAgICAgYm9vbCBpc0NvbnRhaW5JbnRy
aW5zaWNXaWR0aEF1dG8gPSBlbGVtZW50VXBkYXRlU3R5bGUuY29udGFpbkludHJpbnNpY1dpZHRo
VHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6QXV0b0FuZExlbmd0aDsKKyAgICAg
ICAgYm9vbCBpc0NvbnRhaW5JbnRyaW5zaWNIZWlnaHRBdXRvID0gZWxlbWVudFVwZGF0ZVN0eWxl
LmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkgPT0gQ29udGFpbkludHJpbnNpY1NpemVUeXBl
OjpBdXRvQW5kTGVuZ3RoOworICAgICAgICBpZiAoaXNDb250YWluSW50cmluc2ljV2lkdGhBdXRv
IHx8IGlzQ29udGFpbkludHJpbnNpY0hlaWdodEF1dG8pIHsKICAgICAgICAgICAgIG1fZG9jdW1l
bnQub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXplKGVsZW1lbnQpOwotICAgICAgICBlbHNl
CisgICAgICAgICAgICBpZiAoIWlzQ29udGFpbkludHJpbnNpY1dpZHRoQXV0bykKKyAgICAgICAg
ICAgICAgICBlbGVtZW50LnNldExhc3RSZW1lbWJlcmVkV2lkdGgoLTEpOworICAgICAgICAgICAg
aWYgKCFpc0NvbnRhaW5JbnRyaW5zaWNIZWlnaHRBdXRvKQorICAgICAgICAgICAgICAgIGVsZW1l
bnQuc2V0TGFzdFJlbWVtYmVyZWRIZWlnaHQoLTEpOworICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIG1fZG9jdW1lbnQudW5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7
CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464921</attachid>
            <date>2023-02-09 05:32:58 -0800</date>
            <delta_ts>2023-02-10 04:17:57 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-single-direction-001.diff</filename>
            <type>text/plain</type>
            <size>11814</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CmluZGV4
IDI0MzQ2MDhiMzJlOS4uZWJjYjgzMjYxZDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgT25seSBy
ZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBpbmxpbmUgc2l6ZSAtIGNsaWVudEhlaWdodCBleHBlY3RlZCAxIGJ1
dCBnb3QgNTAKLUZBSUwgT25seSByZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMTAwCitQQVNTIE9ubHkgcmVjb3JkaW5nIGxhc3QgcmVt
ZW1iZXJlZCBpbmxpbmUgc2l6ZQorUEFTUyBPbmx5IHJlY29yZGluZyBsYXN0IHJlbWVtYmVyZWQg
YmxvY2sgc2l6ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggYjNhOGVj
MjA1NjQyLi5jZTMyMGI4NDNkNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTY3OSw3ICs2NzksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjpyZW1v
dmVDaGlsZChOb2RlJiBvbGRDaGlsZCkKIAogICAgIGlmIChpczxFbGVtZW50PihvbGRDaGlsZCkp
IHsKICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG9sZENoaWxk
KTsKLSAgICAgICAgaWYgKGVsZW1lbnQubGFzdFJlbWVtYmVyZWRTaXplKCkpIHsKKyAgICAgICAg
aWYgKGVsZW1lbnQubGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoKSA+PSAwIHx8IGVsZW1lbnQu
bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgPj0gMCkgewogICAgICAgICAgICAgLy8gVGhl
IGRpc2Nvbm5lY3RlZCBlbGVtZW50IGNvdWxkIGJlIHVub2JzZXJ2ZWQgYmVjYXVzZSBvZiBvdGhl
ciBwcm9wZXJ0aWVzLCBoZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGl0IGlzIG9ic2VydmVkLAog
ICAgICAgICAgICAgLy8gc28gdGhhdCBkZWxpdmVyIGNvdWxkIGJlIHRyaWdnZXJlZCBhbmQgaXQg
d291bGQgY2xlYXIgbGFzdFJlbWVtYmVyZWRTaXplLgogICAgICAgICAgICAgZG9jdW1lbnQoKS5v
YnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBhOTM3MDA0NDc3NWMuLjkxOGM0ZTUyNWIwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBDYWxsYmFja0ZvckNvbnRhaW5JbnRyaW5z
aWNTaXplOjpvblJlc2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2VydmVyRW4KICAgICAg
ICAgaWYgKGF1dG8qIHRhcmdldCA9IGVudHJ5LT50YXJnZXQoKSkgewogICAgICAgICAgICAgaWYg
KCF0YXJnZXQtPmlzQ29ubmVjdGVkKCkpIHsKICAgICAgICAgICAgICAgICB0YXJnZXQtPmRvY3Vt
ZW50KCkudW5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoKnRhcmdldCk7Ci0gICAgICAg
ICAgICAgICAgdGFyZ2V0LT5jbGVhckxhc3RSZW1lbWJlcmVkU2l6ZSgpOworICAgICAgICAgICAg
ICAgIHRhcmdldC0+Y2xlYXJMYXN0UmVtZW1iZXJlZExvZ2ljYWxTaXplKCk7CiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKQEAgLTQwNiw3ICs0MDYsMTAgQEAgdm9p
ZCBDYWxsYmFja0ZvckNvbnRhaW5JbnRyaW5zaWNTaXplOjpvblJlc2l6ZShjb25zdCBWZWN0b3I8
UmVmPFJlc2l6ZU9ic2VydmVyRW4KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYXV0byBj
b250ZW50Qm94U2l6ZSA9IGVudHJ5LT5jb250ZW50Qm94U2l6ZSgpLmF0KDApOwotICAgICAgICAg
ICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVzaXplT2JzZXJ2ZXJTaXplOjpjcmVh
dGUoY29udGVudEJveFNpemUtPmlubGluZVNpemUoKSwgY29udGVudEJveFNpemUtPmJsb2NrU2l6
ZSgpKSk7CisgICAgICAgICAgICBpZiAoYm94LT5zdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNXaWR0
aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAg
ICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aChMYXlvdXRV
bml0KGNvbnRlbnRCb3hTaXplLT5pbmxpbmVTaXplKCkpKTsKKyAgICAgICAgICAgIGlmIChib3gt
PnN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodFR5cGUoKSA9PSBDb250YWluSW50cmluc2lj
U2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0
UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdChjb250ZW50Qm94U2l6ZS0+YmxvY2tT
aXplKCkpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2
ODk0NWI4YjIzMGIuLmQ2NWI1MDRhNThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNDQ2
MSwyMCArNDQ2MSwzMCBAQCBSZXNpemVPYnNlcnZlckRhdGEqIEVsZW1lbnQ6OnJlc2l6ZU9ic2Vy
dmVyRGF0YSgpCiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+
cmVzaXplT2JzZXJ2ZXJEYXRhKCkgOiBudWxscHRyOwogfQogCi1SZXNpemVPYnNlcnZlclNpemUq
IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0CitMYXlvdXRVbml0IEVsZW1lbnQ6
Omxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmFy
ZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5sYXN0UmVtZW1iZXJlZFNpemUoKSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+bGFzdFJl
bWVtYmVyZWRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoLTEpOwogfQogCi12b2lkIEVsZW1l
bnQ6OnNldExhc3RSZW1lbWJlcmVkU2l6ZShSZWY8UmVzaXplT2JzZXJ2ZXJTaXplPiYmIHNpemUp
CitMYXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIGNvbnN0
CiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0TGFzdFJlbWVtYmVyZWRTaXplKFdU
Rk1vdmUoc2l6ZSkpOworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gZWxlbWVudFJhcmVEYXRh
KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIDogTGF5b3V0VW5pdCgtMSk7CiB9CiAK
LXZvaWQgRWxlbWVudDo6Y2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKQordm9pZCBFbGVtZW50Ojpz
ZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aChMYXlvdXRVbml0IHdpZHRoKQoreworICAgIGVu
c3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKHdpZHRo
KTsKK30KKwordm9pZCBFbGVtZW50OjpzZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBoZWlnaHQpCit7CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0TGFzdFJl
bWVtYmVyZWRMb2dpY2FsSGVpZ2h0KGhlaWdodCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6Y2xlYXJM
YXN0UmVtZW1iZXJlZExvZ2ljYWxTaXplKCkKIHsKICAgICBpZiAoaGFzUmFyZURhdGEoKSkKLSAg
ICAgICAgZWxlbWVudFJhcmVEYXRhKCktPmNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCk7CisgICAg
ICAgIGVsZW1lbnRSYXJlRGF0YSgpLT5jbGVhckxhc3RSZW1lbWJlcmVkTG9naWNhbFNpemUoKTsK
IH0KIAogYm9vbCBFbGVtZW50Ojppc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCmluZGV4IDgzMmQ1OTliZGE2Yi4uZjA3NmE2ODdiODNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTc1LDcgKzc1LDYgQEAgY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3Mg
UHNldWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVHJlZVBvc2l0
aW9uOwotY2xhc3MgUmVzaXplT2JzZXJ2ZXJTaXplOwogY2xhc3MgU3BhY2VTcGxpdFN0cmluZzsK
IGNsYXNzIFN0eWxlUHJvcGVydHlNYXA7CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwUmVhZE9ubHk7
CkBAIC02OTIsOSArNjkxLDExIEBAIHB1YmxpYzoKICAgICBSZXNpemVPYnNlcnZlckRhdGEmIGVu
c3VyZVJlc2l6ZU9ic2VydmVyRGF0YSgpOwogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVzaXpl
T2JzZXJ2ZXJEYXRhKCk7CiAKLSAgICBSZXNpemVPYnNlcnZlclNpemUqIGxhc3RSZW1lbWJlcmVk
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZjxSZXNpemVP
YnNlcnZlclNpemU+JiYpOwotICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKTsKKyAg
ICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3Q7CisgICAgTGF5
b3V0VW5pdCBsYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICB2b2lkIHNl
dExhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKExheW91dFVuaXQpOworICAgIHZvaWQgc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQpOworICAgIHZvaWQgY2xlYXJMYXN0
UmVtZW1iZXJlZExvZ2ljYWxTaXplKCk7CiAKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yRWxlbWVu
dEZvckxpbmsoU3RyaW5nJiBvdXRBbmNob3JOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmNwcAppbmRleCAzMzA1ZDY5ZmVjYzIuLjgwMTJhMjgzYzhjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKQEAgLTQwLDcgKzQwLDggQEAgc3RydWN0IFNh
bWVTaXplQXNFbGVtZW50UmFyZURhdGEgOiBOb2RlUmFyZURhdGEgewogICAgIHZvaWQqIGludGVy
c2VjdGlvbk9ic2VydmVyRGF0YTsKICAgICB2b2lkKiB0eXBlZE9NRGF0YVsyXTsKICAgICB2b2lk
KiByZXNpemVPYnNlcnZlckRhdGE7Ci0gICAgdm9pZCogcmVzaXplT2JzZXJ2ZXJTaXplOworICAg
IExheW91dFVuaXQgbGFzdFJlbWVtYmVkTG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbGFz
dFJlbWVtYmVkTG9naWNhbEhlaWdodDsKICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFw
IGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgKaW5kZXggODQ5NDNlNjZiYTRmLi4xMGM1ZTVjMzk0NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJQc2V1
ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlc2l6
ZU9ic2VydmVyLmgiCi0jaW5jbHVkZSAiUmVzaXplT2JzZXJ2ZXJTaXplLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRlICJT
dHlsZVByb3BlcnR5TWFwLmgiCkBAIC0xMDgsOSArMTA3LDE0IEBAIHB1YmxpYzoKICAgICBSZXNp
emVPYnNlcnZlckRhdGEqIHJlc2l6ZU9ic2VydmVyRGF0YSgpIHsgcmV0dXJuIG1fcmVzaXplT2Jz
ZXJ2ZXJEYXRhLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNpemVPYnNlcnZlckRhdGEoc3RkOjp1
bmlxdWVfcHRyPFJlc2l6ZU9ic2VydmVyRGF0YT4mJiBkYXRhKSB7IG1fcmVzaXplT2JzZXJ2ZXJE
YXRhID0gV1RGTW92ZShkYXRhKTsgfQogCi0gICAgUmVzaXplT2JzZXJ2ZXJTaXplKiBsYXN0UmVt
ZW1iZXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkU2l6ZS5nZXQoKTsg
fQotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZlB0cjxSZXNpemVPYnNlcnZlclNp
emU+JiYgc2l6ZSkgeyBtX2xhc3RSZW1lbWJlcmVkU2l6ZSA9IFdURk1vdmUoc2l6ZSk7IH0KLSAg
ICB2b2lkIGNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkgeyBtX2xhc3RSZW1lbWJlcmVkU2l6ZSA9
IG51bGxwdHI7IH0KKyAgICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aDsgfQorICAgIExheW91
dFVuaXQgbGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQ7IH0KKyAgICB2b2lkIHNldExhc3RSZW1lbWJlcmVkTG9n
aWNhbFdpZHRoKExheW91dFVuaXQgd2lkdGgpIHsgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCA9IHdpZHRoOyB9CisgICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBoZWlnaHQpIHsgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQgPSBoZWlnaHQ7
IH0KKyAgICB2b2lkIGNsZWFyTGFzdFJlbWVtYmVyZWRMb2dpY2FsU2l6ZSgpIHsKKyAgICAgICAg
c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoLTEpOworICAgICAgICBzZXRMYXN0UmVtZW1i
ZXJlZExvZ2ljYWxIZWlnaHQoLTEpOworICAgIH0KIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIG5v
bmNlKCkgY29uc3QgeyByZXR1cm4gbV9ub25jZTsgfQogICAgIHZvaWQgc2V0Tm9uY2UoY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpIHsgbV9ub25jZSA9IHZhbHVlOyB9CkBAIC0xNDksNyArMTUzLDcg
QEAgcHVibGljOgogICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpBdHRyaWJ1dGVNYXAp
OwogICAgICAgICBpZiAobV9pbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEpCiAgICAgICAgICAgICBy
ZXN1bHQuYWRkKFVzZVR5cGU6OkludGVyYWN0aW9uT2JzZXJ2ZXIpOwotICAgICAgICBpZiAobV9y
ZXNpemVPYnNlcnZlckRhdGEgfHwgbV9sYXN0UmVtZW1iZXJlZFNpemUpCisgICAgICAgIGlmICht
X3Jlc2l6ZU9ic2VydmVyRGF0YSB8fCBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoID4gMCB8
fCBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCA+IDApCiAgICAgICAgICAgICByZXN1bHQu
YWRkKFVzZVR5cGU6OlJlc2l6ZU9ic2VydmVyKTsKICAgICAgICAgaWYgKCFtX2FuaW1hdGlvblJh
cmVEYXRhLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6QW5pbWF0
aW9ucyk7CkBAIC0xODcsNyArMTkxLDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhPiBtX2ludGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNpemVPYnNlcnZlckRhdGE+IG1fcmVzaXplT2JzZXJ2ZXJE
YXRhOwotICAgIFJlZlB0cjxSZXNpemVPYnNlcnZlclNpemU+IG1fbGFzdFJlbWVtYmVyZWRTaXpl
OworCisgICAgTGF5b3V0VW5pdCBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoIHsgLTEgfTsK
KyAgICBMYXlvdXRVbml0IG1fbGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0IHsgLTEgfTsKIAog
ICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RWxlbWVudEFuaW1hdGlvblJhcmVEYXRhPj4gbV9h
bmltYXRpb25SYXJlRGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApp
bmRleCAyOTRkZGU2NzIwMjQuLmE4NzUwODE2YWQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKQEAgLTU2MDYsOCArNTYwNiw4IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKGVsZW1lbnQoKSAmJiBzdHlsZSgp
LmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6
OkF1dG9BbmRMZW5ndGggJiYgc2hvdWxkU2tpcENvbnRlbnQoKSkgewotICAgICAgICBpZiAoYXV0
byBsYXN0UmVtZW1iZXJlZFNpemUgPSBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkU2l6ZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBMYXlvdXRVbml0
KGxhc3RSZW1lbWJlcmVkU2l6ZS0+aW5saW5lU2l6ZSgpKSA6IExheW91dFVuaXQobGFzdFJlbWVt
YmVyZWRTaXplLT5ibG9ja1NpemUoKSk7CisgICAgICAgIGlmIChhdXRvIHdpZHRoID0gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IGVsZW1lbnQoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lk
dGgoKSA6IGVsZW1lbnQoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCk7IHdpZHRoID49
IDApCisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CiAgICAgfQogCiAgICAgYXV0byB3aWR0aCA9
IHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dpZHRoKCk7CkBAIC01NjIyLDggKzU2MjIsOCBAQCBz
dGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5l
ckhlaWdodCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBpZiAo
ZWxlbWVudCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodFR5cGUoKSA9PSBDb250
YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGggJiYgc2hvdWxkU2tpcENvbnRlbnQo
KSkgewotICAgICAgICBpZiAoYXV0byBsYXN0UmVtZW1iZXJlZFNpemUgPSBlbGVtZW50KCktPmxh
c3RSZW1lbWJlcmVkU2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBMYXlvdXRVbml0KGxhc3RSZW1lbWJlcmVkU2l6ZS0+YmxvY2tTaXplKCkpIDog
TGF5b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmlubGluZVNpemUoKSk7CisgICAgICAgIGlm
IChhdXRvIGhlaWdodCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxh
c3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIDogZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZExv
Z2ljYWxXaWR0aCgpOyBoZWlnaHQgPj0gMCkKKyAgICAgICAgICAgcmV0dXJuIGhlaWdodDsKICAg
ICB9CiAKICAgICBhdXRvIGhlaWdodCA9IHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKaW5kZXggODNkNGY2MzljZGMyLi40NmE2MDdjNTgxZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmNwcApAQCAtMzQ2LDggKzM0NiwyMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRh
dGVFbGVtZW50UmVuZGVyZXIoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZQogICAg
IGVsc2UKICAgICAgICAgZWxlbWVudC5yZXNldENvbXB1dGVkU3R5bGUoKTsKIAotICAgIGlmICgh
aGFzRGlzcGxheUNvbnRlbnRzICYmICFlbGVtZW50VXBkYXRlU3R5bGUuaGFzQXV0b0xlbmd0aENv
bnRhaW5JbnRyaW5zaWNTaXplKCkpCi0gICAgICAgIGVsZW1lbnQuY2xlYXJMYXN0UmVtZW1iZXJl
ZFNpemUoKTsKKyAgICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cyAmJiAhZWxlbWVudFVwZGF0ZVN0
eWxlLmhhc0F1dG9MZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpKSB7CisgICAgICAgIGlmIChl
bGVtZW50VXBkYXRlU3R5bGUuY29udGFpbkludHJpbnNpY1dpZHRoVHlwZSgpICE9IENvbnRhaW5J
bnRyaW5zaWNTaXplVHlwZTo6QXV0b0FuZExlbmd0aCkKKyAgICAgICAgICAgIGVsZW1lbnQuc2V0
TGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCgtMSkpOworICAgICAgICBpZiAo
ZWxlbWVudFVwZGF0ZVN0eWxlLmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkgIT0gQ29udGFp
bkludHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoKQorICAgICAgICAgICAgZWxlbWVudC5z
ZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCgtMSkpOworICAgIH0KKyAg
ICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgaWYgKCFoYXNE
aXNwbGF5Q29udGVudHMpIHsKKyAgICAgICAgICAgIGF1dG8qIGJveCA9IGVsZW1lbnQucmVuZGVy
Qm94KCk7CisgICAgICAgICAgICBpZiAoYm94ICYmIGJveC0+c3R5bGUoKS5oYXNBdXRvTGVuZ3Ro
Q29udGFpbkludHJpbnNpY1NpemUoKSAmJiAhYm94LT5zaG91bGRTa2lwQ29udGVudCgpKQorICAg
ICAgICAgICAgICAgIG1fZG9jdW1lbnQub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXplKGVs
ZW1lbnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fZG9jdW1lbnQudW5v
YnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9
KTsKKwogICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbJl0gewogICAgICAgICBp
ZiAoIWhhc0Rpc3BsYXlDb250ZW50cykgewogICAgICAgICAgICAgYXV0byogYm94ID0gZWxlbWVu
dC5yZW5kZXJCb3goKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464940</attachid>
            <date>2023-02-10 04:17:57 -0800</date>
            <delta_ts>2023-02-10 05:49:56 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-single-direction-002.diff</filename>
            <type>text/plain</type>
            <size>11390</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CmluZGV4
IDI0MzQ2MDhiMzJlOS4uZWJjYjgzMjYxZDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgT25seSBy
ZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBpbmxpbmUgc2l6ZSAtIGNsaWVudEhlaWdodCBleHBlY3RlZCAxIGJ1
dCBnb3QgNTAKLUZBSUwgT25seSByZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMTAwCitQQVNTIE9ubHkgcmVjb3JkaW5nIGxhc3QgcmVt
ZW1iZXJlZCBpbmxpbmUgc2l6ZQorUEFTUyBPbmx5IHJlY29yZGluZyBsYXN0IHJlbWVtYmVyZWQg
YmxvY2sgc2l6ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMjQ4M2Zm
NGIxNjFjLi45NjI4MGIxMTBiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTY3OCw3ICs2NzgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjpyZW1v
dmVDaGlsZChOb2RlJiBvbGRDaGlsZCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50
KCk7CiAKICAgICBhdXRvKiBlbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG9sZENo
aWxkKTsKLSAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5sYXN0UmVtZW1iZXJlZFNpemUoKSkg
eworICAgIGlmIChlbGVtZW50ICYmIChlbGVtZW50LT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCgpID49IDAgfHwgZWxlbWVudC0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgPj0gMCkp
IHsKICAgICAgICAgLy8gVGhlIGRpc2Nvbm5lY3RlZCBlbGVtZW50IGNvdWxkIGJlIHVub2JzZXJ2
ZWQgYmVjYXVzZSBvZiBvdGhlciBwcm9wZXJ0aWVzLCBoZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IGl0IGlzIG9ic2VydmVkLAogICAgICAgICAvLyBzbyB0aGF0IGRlbGl2ZXIgY291bGQgYmUgdHJp
Z2dlcmVkIGFuZCBpdCB3b3VsZCBjbGVhciBsYXN0UmVtZW1iZXJlZFNpemUuCiAgICAgICAgIGRv
Y3VtZW50KCkub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXplKCplbGVtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGE5Njg0OGJjYWQ2NC4uOTZlYzUxMWE0NzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQwNyw3ICs0MDcsMTAgQEAgdm9pZCBDYWxsYmFja0ZvckNv
bnRhaW5JbnRyaW5zaWNTaXplOjpvblJlc2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2Vy
dmVyRW4KICAgICAgICAgICAgIEFTU0VSVCghYm94LT5zaG91bGRTa2lwQ29udGVudCgpKTsKIAog
ICAgICAgICAgICAgYXV0byBjb250ZW50Qm94U2l6ZSA9IGVudHJ5LT5jb250ZW50Qm94U2l6ZSgp
LmF0KDApOwotICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVzaXpl
T2JzZXJ2ZXJTaXplOjpjcmVhdGUoY29udGVudEJveFNpemUtPmlubGluZVNpemUoKSwgY29udGVu
dEJveFNpemUtPmJsb2NrU2l6ZSgpKSk7CisgICAgICAgICAgICBpZiAoYm94LT5zdHlsZSgpLmNv
bnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1
dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExv
Z2ljYWxXaWR0aChMYXlvdXRVbml0KGNvbnRlbnRCb3hTaXplLT5pbmxpbmVTaXplKCkpKTsKKyAg
ICAgICAgICAgIGlmIChib3gtPnN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodFR5cGUoKSA9
PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAg
ICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdChjb250
ZW50Qm94U2l6ZS0+YmxvY2tTaXplKCkpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4Y2ViMmIwZTJjZDguLjgyMDA1YmJlM2VjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtNDU0MywxNCArNDU0MywyNCBAQCBSZXNpemVPYnNlcnZlckRhdGEqIEVs
ZW1lbnQ6OnJlc2l6ZU9ic2VydmVyRGF0YSgpCiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBl
bGVtZW50UmFyZURhdGEoKS0+cmVzaXplT2JzZXJ2ZXJEYXRhKCkgOiBudWxscHRyOwogfQogCi1S
ZXNpemVPYnNlcnZlclNpemUqIEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0CitM
YXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5sYXN0UmVtZW1i
ZXJlZFNpemUoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoLTEp
OwogfQogCi12b2lkIEVsZW1lbnQ6OnNldExhc3RSZW1lbWJlcmVkU2l6ZShSZWY8UmVzaXplT2Jz
ZXJ2ZXJTaXplPiYmIHNpemUpCitMYXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9n
aWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0TGFz
dFJlbWVtYmVyZWRTaXplKFdURk1vdmUoc2l6ZSkpOworICAgIHJldHVybiBoYXNSYXJlRGF0YSgp
ID8gZWxlbWVudFJhcmVEYXRhKCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIDogTGF5
b3V0VW5pdCgtMSk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2Fs
V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5z
ZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCh3aWR0aCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6
c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQoreworICAg
IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCho
ZWlnaHQpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IDVkZDRlZmI3MmEzOC4uZDg0YmNhYWRkMWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTc1LDcgKzc1LDYgQEAgY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xh
c3MgUHNldWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVHJlZVBv
c2l0aW9uOwotY2xhc3MgUmVzaXplT2JzZXJ2ZXJTaXplOwogY2xhc3MgU3BhY2VTcGxpdFN0cmlu
ZzsKIGNsYXNzIFN0eWxlUHJvcGVydHlNYXA7CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwUmVhZE9u
bHk7CkBAIC02OTQsOSArNjkzLDExIEBAIHB1YmxpYzoKICAgICBSZXNpemVPYnNlcnZlckRhdGEm
IGVuc3VyZVJlc2l6ZU9ic2VydmVyRGF0YSgpOwogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVz
aXplT2JzZXJ2ZXJEYXRhKCk7CiAKLSAgICBSZXNpemVPYnNlcnZlclNpemUqIGxhc3RSZW1lbWJl
cmVkU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZjxSZXNp
emVPYnNlcnZlclNpemU+JiYpOwotICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKTsK
KyAgICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3Q7CisgICAg
TGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICB2b2lk
IHNldExhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKExheW91dFVuaXQpOworICAgIHZvaWQgc2V0
TGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQpOworICAgIHZvaWQgY2xlYXJM
YXN0UmVtZW1iZXJlZExvZ2ljYWxTaXplKCk7CiAKICAgICBFbGVtZW50KiBmaW5kQW5jaG9yRWxl
bWVudEZvckxpbmsoU3RyaW5nJiBvdXRBbmNob3JOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmNwcAppbmRleCAzMzA1ZDY5ZmVjYzIuLjgwMTJhMjgzYzhjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKQEAgLTQwLDcgKzQwLDggQEAgc3RydWN0
IFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEgOiBOb2RlUmFyZURhdGEgewogICAgIHZvaWQqIGlu
dGVyc2VjdGlvbk9ic2VydmVyRGF0YTsKICAgICB2b2lkKiB0eXBlZE9NRGF0YVsyXTsKICAgICB2
b2lkKiByZXNpemVPYnNlcnZlckRhdGE7Ci0gICAgdm9pZCogcmVzaXplT2JzZXJ2ZXJTaXplOwor
ICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVkTG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQg
bGFzdFJlbWVtYmVkTG9naWNhbEhlaWdodDsKICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRz
TWFwIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKaW5kZXggODQ5NDNlNjZiYTRmLi5jZDY1MTNmZGY5M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJQ
c2V1ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
c2l6ZU9ic2VydmVyLmgiCi0jaW5jbHVkZSAiUmVzaXplT2JzZXJ2ZXJTaXplLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRl
ICJTdHlsZVByb3BlcnR5TWFwLmgiCkBAIC0xMDgsOSArMTA3LDE0IEBAIHB1YmxpYzoKICAgICBS
ZXNpemVPYnNlcnZlckRhdGEqIHJlc2l6ZU9ic2VydmVyRGF0YSgpIHsgcmV0dXJuIG1fcmVzaXpl
T2JzZXJ2ZXJEYXRhLmdldCgpOyB9CiAgICAgdm9pZCBzZXRSZXNpemVPYnNlcnZlckRhdGEoc3Rk
Ojp1bmlxdWVfcHRyPFJlc2l6ZU9ic2VydmVyRGF0YT4mJiBkYXRhKSB7IG1fcmVzaXplT2JzZXJ2
ZXJEYXRhID0gV1RGTW92ZShkYXRhKTsgfQogCi0gICAgUmVzaXplT2JzZXJ2ZXJTaXplKiBsYXN0
UmVtZW1iZXJlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkU2l6ZS5nZXQo
KTsgfQotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZlB0cjxSZXNpemVPYnNlcnZl
clNpemU+JiYgc2l6ZSkgeyBtX2xhc3RSZW1lbWJlcmVkU2l6ZSA9IFdURk1vdmUoc2l6ZSk7IH0K
LSAgICB2b2lkIGNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkgeyBtX2xhc3RSZW1lbWJlcmVkU2l6
ZSA9IG51bGxwdHI7IH0KKyAgICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aDsgfQorICAgIExh
eW91dFVuaXQgbGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQ7IH0KKyAgICB2b2lkIHNldExhc3RSZW1lbWJlcmVk
TG9naWNhbFdpZHRoKExheW91dFVuaXQgd2lkdGgpIHsgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxX
aWR0aCA9IHdpZHRoOyB9CisgICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQo
TGF5b3V0VW5pdCBoZWlnaHQpIHsgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQgPSBoZWln
aHQ7IH0KKyAgICB2b2lkIGNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkgeworICAgICAgICBzZXRM
YXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCgtMSk7CisgICAgICAgIHNldExhc3RSZW1lbWJlcmVk
TG9naWNhbEhlaWdodCgtMSk7CisgICAgfQogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgbm9uY2Uo
KSBjb25zdCB7IHJldHVybiBtX25vbmNlOyB9CiAgICAgdm9pZCBzZXROb25jZShjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkgeyBtX25vbmNlID0gdmFsdWU7IH0KQEAgLTE0OSw3ICsxNTMsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6OkF0dHJpYnV0ZU1hcCk7CiAg
ICAgICAgIGlmIChtX2ludGVyc2VjdGlvbk9ic2VydmVyRGF0YSkKICAgICAgICAgICAgIHJlc3Vs
dC5hZGQoVXNlVHlwZTo6SW50ZXJhY3Rpb25PYnNlcnZlcik7Ci0gICAgICAgIGlmIChtX3Jlc2l6
ZU9ic2VydmVyRGF0YSB8fCBtX2xhc3RSZW1lbWJlcmVkU2l6ZSkKKyAgICAgICAgaWYgKG1fcmVz
aXplT2JzZXJ2ZXJEYXRhIHx8IG1fbGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGggPiAwIHx8IG1f
bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0ID4gMCkKICAgICAgICAgICAgIHJlc3VsdC5hZGQo
VXNlVHlwZTo6UmVzaXplT2JzZXJ2ZXIpOwogICAgICAgICBpZiAoIW1fYW5pbWF0aW9uUmFyZURh
dGEuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpBbmltYXRpb25z
KTsKQEAgLTE4Nyw3ICsxOTEsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnRl
cnNlY3Rpb25PYnNlcnZlckRhdGE+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFJlc2l6ZU9ic2VydmVyRGF0YT4gbV9yZXNpemVPYnNlcnZlckRhdGE7
Ci0gICAgUmVmUHRyPFJlc2l6ZU9ic2VydmVyU2l6ZT4gbV9sYXN0UmVtZW1iZXJlZFNpemU7CisK
KyAgICBMYXlvdXRVbml0IG1fbGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGggeyAtMSB9OworICAg
IExheW91dFVuaXQgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQgeyAtMSB9OwogCiAgICAg
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxFbGVtZW50QW5pbWF0aW9uUmFyZURhdGE+PiBtX2FuaW1h
dGlvblJhcmVEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4
IDI5NGRkZTY3MjAyNC4uYTg3NTA4MTZhZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtNTYwNiw4ICs1NjA2LDggQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJCb3g6OmV4cGxpY2l0SW50cmluc2ljSW5uZXJXaWR0aCgpIGNvbnN0CiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBpZiAoZWxlbWVudCgpICYmIHN0eWxlKCkuY29u
dGFpbkludHJpbnNpY1dpZHRoVHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6QXV0
b0FuZExlbmd0aCAmJiBzaG91bGRTa2lwQ29udGVudCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGxh
c3RSZW1lbWJlcmVkU2l6ZSA9IGVsZW1lbnQoKS0+bGFzdFJlbWVtYmVyZWRTaXplKCkpCi0gICAg
ICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExheW91dFVuaXQobGFz
dFJlbWVtYmVyZWRTaXplLT5pbmxpbmVTaXplKCkpIDogTGF5b3V0VW5pdChsYXN0UmVtZW1iZXJl
ZFNpemUtPmJsb2NrU2l6ZSgpKTsKKyAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCgp
IDogZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKTsgd2lkdGggPj0gMCkK
KyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKICAgICB9CiAKICAgICBhdXRvIHdpZHRoID0gc3R5
bGUoKS5jb250YWluSW50cmluc2ljV2lkdGgoKTsKQEAgLTU2MjIsOCArNTYyMiw4IEBAIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVySGVp
Z2h0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmIChlbGVt
ZW50KCkgJiYgc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENvbnRhaW5J
bnRyaW5zaWNTaXplVHlwZTo6QXV0b0FuZExlbmd0aCAmJiBzaG91bGRTa2lwQ29udGVudCgpKSB7
Ci0gICAgICAgIGlmIChhdXRvIGxhc3RSZW1lbWJlcmVkU2l6ZSA9IGVsZW1lbnQoKS0+bGFzdFJl
bWVtYmVyZWRTaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IExheW91dFVuaXQobGFzdFJlbWVtYmVyZWRTaXplLT5ibG9ja1NpemUoKSkgOiBMYXlv
dXRVbml0KGxhc3RSZW1lbWJlcmVkU2l6ZS0+aW5saW5lU2l6ZSgpKTsKKyAgICAgICAgaWYgKGF1
dG8gaGVpZ2h0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGVsZW1lbnQoKS0+bGFzdFJl
bWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNh
bFdpZHRoKCk7IGhlaWdodCA+PSAwKQorICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwogICAgIH0K
IAogICAgIGF1dG8gaGVpZ2h0ID0gc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVw
ZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVV
cGRhdGVyLmNwcAppbmRleCA2M2NkYTQ1Y2Y5OWIuLmFiY2ZkNzA2OTY0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCkBAIC0zNDYsOCArMzQ2LDIyIEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVs
ZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlCiAgICAgZWxz
ZQogICAgICAgICBlbGVtZW50LnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwogCi0gICAgaWYgKCFoYXNE
aXNwbGF5Q29udGVudHMgJiYgIWVsZW1lbnRVcGRhdGVTdHlsZS5oYXNBdXRvTGVuZ3RoQ29udGFp
bkludHJpbnNpY1NpemUoKSkKLSAgICAgICAgZWxlbWVudC5jbGVhckxhc3RSZW1lbWJlcmVkU2l6
ZSgpOworICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRzICYmICFlbGVtZW50VXBkYXRlU3R5bGUu
aGFzQXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkpIHsKKyAgICAgICAgaWYgKGVsZW1l
bnRVcGRhdGVTdHlsZS5jb250YWluSW50cmluc2ljV2lkdGhUeXBlKCkgIT0gQ29udGFpbkludHJp
bnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoKQorICAgICAgICAgICAgZWxlbWVudFVwZGF0ZVN0
eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50LnNldExhc3RSZW1lbWJlcmVk
TG9naWNhbFdpZHRoKExheW91dFVuaXQoLTEpKSA6IGVsZW1lbnQuc2V0TGFzdFJlbWVtYmVyZWRM
b2dpY2FsSGVpZ2h0KExheW91dFVuaXQoLTEpKTsKKyAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGVT
dHlsZS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpICE9IENvbnRhaW5JbnRyaW5zaWNTaXpl
VHlwZTo6QXV0b0FuZExlbmd0aCkKKyAgICAgICAgICAgIGVsZW1lbnRVcGRhdGVTdHlsZS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gZWxlbWVudC5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxI
ZWlnaHQoTGF5b3V0VW5pdCgtMSkpIDogZWxlbWVudC5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxX
aWR0aChMYXlvdXRVbml0KC0xKSk7CisgICAgfQorICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNj
b3BlRXhpdChbJl0geworICAgICAgICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cykgeworICAgICAg
ICAgICAgYXV0byogYm94ID0gZWxlbWVudC5yZW5kZXJCb3goKTsKKyAgICAgICAgICAgIGlmIChi
b3ggJiYgYm94LT5zdHlsZSgpLmhhc0F1dG9MZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpICYm
ICFib3gtPnNob3VsZFNraXBDb250ZW50KCkpCisgICAgICAgICAgICAgICAgbV9kb2N1bWVudC5v
YnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbV9kb2N1bWVudC51bm9ic2VydmVGb3JDb250YWluSW50cmluc2lj
U2l6ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0pOworCiAgICAgYXV0byBzY29wZUV4aXQg
PSBtYWtlU2NvcGVFeGl0KFsmXSB7CiAgICAgICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRzKSB7
CiAgICAgICAgICAgICBhdXRvKiBib3ggPSBlbGVtZW50LnJlbmRlckJveCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464941</attachid>
            <date>2023-02-10 05:49:56 -0800</date>
            <delta_ts>2023-02-10 06:15:21 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-single-direction-003.diff</filename>
            <type>text/plain</type>
            <size>10937</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CmluZGV4
IDI0MzQ2MDhiMzJlOS4uZWJjYjgzMjYxZDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgT25seSBy
ZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBpbmxpbmUgc2l6ZSAtIGNsaWVudEhlaWdodCBleHBlY3RlZCAxIGJ1
dCBnb3QgNTAKLUZBSUwgT25seSByZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMTAwCitQQVNTIE9ubHkgcmVjb3JkaW5nIGxhc3QgcmVt
ZW1iZXJlZCBpbmxpbmUgc2l6ZQorUEFTUyBPbmx5IHJlY29yZGluZyBsYXN0IHJlbWVtYmVyZWQg
YmxvY2sgc2l6ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMjQ4M2Zm
NGIxNjFjLi45NjI4MGIxMTBiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTY3OCw3ICs2NzgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjpyZW1v
dmVDaGlsZChOb2RlJiBvbGRDaGlsZCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50
KCk7CiAKICAgICBhdXRvKiBlbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG9sZENo
aWxkKTsKLSAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5sYXN0UmVtZW1iZXJlZFNpemUoKSkg
eworICAgIGlmIChlbGVtZW50ICYmIChlbGVtZW50LT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCgpID49IDAgfHwgZWxlbWVudC0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgPj0gMCkp
IHsKICAgICAgICAgLy8gVGhlIGRpc2Nvbm5lY3RlZCBlbGVtZW50IGNvdWxkIGJlIHVub2JzZXJ2
ZWQgYmVjYXVzZSBvZiBvdGhlciBwcm9wZXJ0aWVzLCBoZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IGl0IGlzIG9ic2VydmVkLAogICAgICAgICAvLyBzbyB0aGF0IGRlbGl2ZXIgY291bGQgYmUgdHJp
Z2dlcmVkIGFuZCBpdCB3b3VsZCBjbGVhciBsYXN0UmVtZW1iZXJlZFNpemUuCiAgICAgICAgIGRv
Y3VtZW50KCkub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXplKCplbGVtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGE5Njg0OGJjYWQ2NC4uOTZlYzUxMWE0NzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQwNyw3ICs0MDcsMTAgQEAgdm9pZCBDYWxsYmFja0ZvckNv
bnRhaW5JbnRyaW5zaWNTaXplOjpvblJlc2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2Vy
dmVyRW4KICAgICAgICAgICAgIEFTU0VSVCghYm94LT5zaG91bGRTa2lwQ29udGVudCgpKTsKIAog
ICAgICAgICAgICAgYXV0byBjb250ZW50Qm94U2l6ZSA9IGVudHJ5LT5jb250ZW50Qm94U2l6ZSgp
LmF0KDApOwotICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVzaXpl
T2JzZXJ2ZXJTaXplOjpjcmVhdGUoY29udGVudEJveFNpemUtPmlubGluZVNpemUoKSwgY29udGVu
dEJveFNpemUtPmJsb2NrU2l6ZSgpKSk7CisgICAgICAgICAgICBpZiAoYm94LT5zdHlsZSgpLmNv
bnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1
dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExv
Z2ljYWxXaWR0aChMYXlvdXRVbml0KGNvbnRlbnRCb3hTaXplLT5pbmxpbmVTaXplKCkpKTsKKyAg
ICAgICAgICAgIGlmIChib3gtPnN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodFR5cGUoKSA9
PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAg
ICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdChjb250
ZW50Qm94U2l6ZS0+YmxvY2tTaXplKCkpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4Y2ViMmIwZTJjZDguLjgyMDA1YmJlM2VjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtNDU0MywxNCArNDU0MywyNCBAQCBSZXNpemVPYnNlcnZlckRhdGEqIEVs
ZW1lbnQ6OnJlc2l6ZU9ic2VydmVyRGF0YSgpCiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBl
bGVtZW50UmFyZURhdGEoKS0+cmVzaXplT2JzZXJ2ZXJEYXRhKCkgOiBudWxscHRyOwogfQogCi1S
ZXNpemVPYnNlcnZlclNpemUqIEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0CitM
YXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5sYXN0UmVtZW1i
ZXJlZFNpemUoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoLTEp
OwogfQogCi12b2lkIEVsZW1lbnQ6OnNldExhc3RSZW1lbWJlcmVkU2l6ZShSZWY8UmVzaXplT2Jz
ZXJ2ZXJTaXplPiYmIHNpemUpCitMYXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9n
aWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0TGFz
dFJlbWVtYmVyZWRTaXplKFdURk1vdmUoc2l6ZSkpOworICAgIHJldHVybiBoYXNSYXJlRGF0YSgp
ID8gZWxlbWVudFJhcmVEYXRhKCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIDogTGF5
b3V0VW5pdCgtMSk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2Fs
V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5z
ZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCh3aWR0aCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6
c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQoreworICAg
IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCho
ZWlnaHQpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IDVkZDRlZmI3MmEzOC4uOTFjM2QwOWNkMmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTc1LDcgKzc1LDYgQEAgY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xh
c3MgUHNldWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVHJlZVBv
c2l0aW9uOwotY2xhc3MgUmVzaXplT2JzZXJ2ZXJTaXplOwogY2xhc3MgU3BhY2VTcGxpdFN0cmlu
ZzsKIGNsYXNzIFN0eWxlUHJvcGVydHlNYXA7CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwUmVhZE9u
bHk7CkBAIC02OTQsOCArNjkzLDEwIEBAIHB1YmxpYzoKICAgICBSZXNpemVPYnNlcnZlckRhdGEm
IGVuc3VyZVJlc2l6ZU9ic2VydmVyRGF0YSgpOwogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVz
aXplT2JzZXJ2ZXJEYXRhKCk7CiAKLSAgICBSZXNpemVPYnNlcnZlclNpemUqIGxhc3RSZW1lbWJl
cmVkU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZjxSZXNp
emVPYnNlcnZlclNpemU+JiYpOworICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVyZWRMb2dpY2Fs
V2lkdGgoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdo
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0
VW5pdCk7CisgICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCk7CiAgICAgdm9pZCBjbGVhckxhc3RSZW1lbWJlcmVkU2l6ZSgpOwogCiAgICAgRWxlbWVudCog
ZmluZEFuY2hvckVsZW1lbnRGb3JMaW5rKFN0cmluZyYgb3V0QW5jaG9yTmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCmluZGV4IDMzMDVkNjlmZWNjMi4uODAxMmEyODNj
OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcApAQCAtNDAsNyArNDAs
OCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSA6IE5vZGVSYXJlRGF0YSB7CiAg
ICAgdm9pZCogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogICAgIHZvaWQqIHR5cGVkT01EYXRh
WzJdOwogICAgIHZvaWQqIHJlc2l6ZU9ic2VydmVyRGF0YTsKLSAgICB2b2lkKiByZXNpemVPYnNl
cnZlclNpemU7CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZWRMb2dpY2FsV2lkdGg7CisgICAg
TGF5b3V0VW5pdCBsYXN0UmVtZW1iZWRMb2dpY2FsSGVpZ2h0OwogICAgIEV4cGxpY2l0bHlTZXRB
dHRyRWxlbWVudHNNYXAgZXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA4NDk0M2U2NmJhNGYuLmNkNjUxM2ZkZjkz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMzQsNyArMzQsNiBAQAog
I2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiUmVzaXplT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJSZXNpemVPYnNlcnZlclNpemUu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5o
IgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlNYXAuaCIKQEAgLTEwOCw5ICsxMDcsMTQgQEAgcHVi
bGljOgogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVzaXplT2JzZXJ2ZXJEYXRhKCkgeyByZXR1
cm4gbV9yZXNpemVPYnNlcnZlckRhdGEuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJlc2l6ZU9ic2Vy
dmVyRGF0YShzdGQ6OnVuaXF1ZV9wdHI8UmVzaXplT2JzZXJ2ZXJEYXRhPiYmIGRhdGEpIHsgbV9y
ZXNpemVPYnNlcnZlckRhdGEgPSBXVEZNb3ZlKGRhdGEpOyB9CiAKLSAgICBSZXNpemVPYnNlcnZl
clNpemUqIGxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlbWVtYmVy
ZWRTaXplLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVmUHRyPFJl
c2l6ZU9ic2VydmVyU2l6ZT4mJiBzaXplKSB7IG1fbGFzdFJlbWVtYmVyZWRTaXplID0gV1RGTW92
ZShzaXplKTsgfQotICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKSB7IG1fbGFzdFJl
bWVtYmVyZWRTaXplID0gbnVsbHB0cjsgfQorICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVyZWRM
b2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRo
OyB9CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodDsgfQorICAgIHZvaWQgc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkgeyBtX2xhc3RSZW1lbWJl
cmVkTG9naWNhbFdpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldExhc3RSZW1lbWJlcmVkTG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkgeyBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhl
aWdodCA9IGhlaWdodDsgfQorICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKSB7Cisg
ICAgICAgIHNldExhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKC0xKTsKKyAgICAgICAgc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KC0xKTsKKyAgICB9CiAKICAgICBjb25zdCBBdG9tU3Ry
aW5nJiBub25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9uY2U7IH0KICAgICB2b2lkIHNldE5vbmNl
KGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKSB7IG1fbm9uY2UgPSB2YWx1ZTsgfQpAQCAtMTQ5LDcg
KzE1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6QXR0cmli
dXRlTWFwKTsKICAgICAgICAgaWYgKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKQogICAgICAg
ICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpJbnRlcmFjdGlvbk9ic2VydmVyKTsKLSAgICAgICAg
aWYgKG1fcmVzaXplT2JzZXJ2ZXJEYXRhIHx8IG1fbGFzdFJlbWVtYmVyZWRTaXplKQorICAgICAg
ICBpZiAobV9yZXNpemVPYnNlcnZlckRhdGEgfHwgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCA+IDAgfHwgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQgPiAwKQogICAgICAgICAgICAg
cmVzdWx0LmFkZChVc2VUeXBlOjpSZXNpemVPYnNlcnZlcik7CiAgICAgICAgIGlmICghbV9hbmlt
YXRpb25SYXJlRGF0YS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6
OkFuaW1hdGlvbnMpOwpAQCAtMTg3LDcgKzE5MSw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGE7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzaXplT2JzZXJ2ZXJEYXRhPiBtX3Jlc2l6ZU9i
c2VydmVyRGF0YTsKLSAgICBSZWZQdHI8UmVzaXplT2JzZXJ2ZXJTaXplPiBtX2xhc3RSZW1lbWJl
cmVkU2l6ZTsKKworICAgIExheW91dFVuaXQgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCB7
IC0xIH07CisgICAgTGF5b3V0VW5pdCBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCB7IC0x
IH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEVsZW1lbnRBbmltYXRpb25SYXJlRGF0
YT4+IG1fYW5pbWF0aW9uUmFyZURhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggMjk0ZGRlNjcyMDI0Li5hODc1MDgxNmFkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01NjA2LDggKzU2MDYsOCBAQCBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldpZHRoKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmIChlbGVtZW50KCkgJiYg
c3R5bGUoKS5jb250YWluSW50cmluc2ljV2lkdGhUeXBlKCkgPT0gQ29udGFpbkludHJpbnNpY1Np
emVUeXBlOjpBdXRvQW5kTGVuZ3RoICYmIHNob3VsZFNraXBDb250ZW50KCkpIHsKLSAgICAgICAg
aWYgKGF1dG8gbGFzdFJlbWVtYmVyZWRTaXplID0gZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZFNp
emUoKSkKLSAgICAgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gTGF5
b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmlubGluZVNpemUoKSkgOiBMYXlvdXRVbml0KGxh
c3RSZW1lbWJlcmVkU2l6ZS0+YmxvY2tTaXplKCkpOworICAgICAgICBpZiAoYXV0byB3aWR0aCA9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9n
aWNhbFdpZHRoKCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpOyB3
aWR0aCA+PSAwKQorICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwogICAgIH0KIAogICAgIGF1dG8g
d2lkdGggPSBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNXaWR0aCgpOwpAQCAtNTYyMiw4ICs1NjIy
LDggQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmV4cGxpY2l0SW50cmlu
c2ljSW5uZXJIZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAg
ICAgaWYgKGVsZW1lbnQoKSAmJiBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkg
PT0gQ29udGFpbkludHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoICYmIHNob3VsZFNraXBD
b250ZW50KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbGFzdFJlbWVtYmVyZWRTaXplID0gZWxlbWVu
dCgpLT5sYXN0UmVtZW1iZXJlZFNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gTGF5b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmJsb2NrU2l6
ZSgpKSA6IExheW91dFVuaXQobGFzdFJlbWVtYmVyZWRTaXplLT5pbmxpbmVTaXplKCkpOworICAg
ICAgICBpZiAoYXV0byBoZWlnaHQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZWxlbWVu
dCgpLT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSA6IGVsZW1lbnQoKS0+bGFzdFJlbWVt
YmVyZWRMb2dpY2FsV2lkdGgoKTsgaGVpZ2h0ID49IDApCisgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CiAgICAgfQogCiAgICAgYXV0byBoZWlnaHQgPSBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNI
ZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IDYzY2RhNDVjZjk5Yi4uOTBiNDJjNzBkMzk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVw
ZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKQEAgLTM0Niw4ICszNDYsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRl
cjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpF
bGUKICAgICBlbHNlCiAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CiAKLSAg
ICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cyAmJiAhZWxlbWVudFVwZGF0ZVN0eWxlLmhhc0F1dG9M
ZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpKQotICAgICAgICBlbGVtZW50LmNsZWFyTGFzdFJl
bWVtYmVyZWRTaXplKCk7CisgICAgaWYgKCFoYXNEaXNwbGF5Q29udGVudHMgJiYgIWVsZW1lbnRV
cGRhdGVTdHlsZS5oYXNBdXRvTGVuZ3RoQ29udGFpbkludHJpbnNpY1NpemUoKSkgeworICAgICAg
ICBpZiAoZWxlbWVudFVwZGF0ZVN0eWxlLmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSAhPSBD
b250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAgICAgICBlbGVt
ZW50VXBkYXRlU3R5bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGVsZW1lbnQuc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCgtMSkpIDogZWxlbWVudC5zZXRMYXN0
UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCgtMSkpOworICAgICAgICBpZiAoZWxl
bWVudFVwZGF0ZVN0eWxlLmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkgIT0gQ29udGFpbklu
dHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoKQorICAgICAgICAgICAgZWxlbWVudFVwZGF0
ZVN0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50LnNldExhc3RSZW1lbWJl
cmVkTG9naWNhbEhlaWdodChMYXlvdXRVbml0KC0xKSkgOiBlbGVtZW50LnNldExhc3RSZW1lbWJl
cmVkTG9naWNhbFdpZHRoKExheW91dFVuaXQoLTEpKTsKKyAgICB9CiAgICAgYXV0byBzY29wZUV4
aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CiAgICAgICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRz
KSB7CiAgICAgICAgICAgICBhdXRvKiBib3ggPSBlbGVtZW50LnJlbmRlckJveCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464942</attachid>
            <date>2023-02-10 06:15:21 -0800</date>
            <delta_ts>2023-02-10 06:15:21 -0800</delta_ts>
            <desc>WIP-patch</desc>
            <filename>cis-single-direction-004.diff</filename>
            <type>text/plain</type>
            <size>10878</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CmluZGV4
IDI0MzQ2MDhiMzJlOS4uZWJjYjgzMjYxZDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMt
c2l6ZS9hdXRvLTAwOS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgT25seSBy
ZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGlubGluZSBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBpbmxpbmUgc2l6ZSAtIGNsaWVudEhlaWdodCBleHBlY3RlZCAxIGJ1
dCBnb3QgNTAKLUZBSUwgT25seSByZWNvcmRpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIGJsb2NrIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAyIGJ1dCBnb3QgMTAwCitQQVNTIE9ubHkgcmVjb3JkaW5nIGxhc3QgcmVt
ZW1iZXJlZCBpbmxpbmUgc2l6ZQorUEFTUyBPbmx5IHJlY29yZGluZyBsYXN0IHJlbWVtYmVyZWQg
YmxvY2sgc2l6ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMjQ4M2Zm
NGIxNjFjLi45NjI4MGIxMTBiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTY3OCw3ICs2NzgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDb250YWluZXJOb2RlOjpyZW1v
dmVDaGlsZChOb2RlJiBvbGRDaGlsZCkKICAgICBkaXNwYXRjaFN1YnRyZWVNb2RpZmllZEV2ZW50
KCk7CiAKICAgICBhdXRvKiBlbGVtZW50ID0gZHluYW1pY0Rvd25jYXN0PEVsZW1lbnQ+KG9sZENo
aWxkKTsKLSAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5sYXN0UmVtZW1iZXJlZFNpemUoKSkg
eworICAgIGlmIChlbGVtZW50ICYmIChlbGVtZW50LT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCgpID49IDAgfHwgZWxlbWVudC0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgPj0gMCkp
IHsKICAgICAgICAgLy8gVGhlIGRpc2Nvbm5lY3RlZCBlbGVtZW50IGNvdWxkIGJlIHVub2JzZXJ2
ZWQgYmVjYXVzZSBvZiBvdGhlciBwcm9wZXJ0aWVzLCBoZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IGl0IGlzIG9ic2VydmVkLAogICAgICAgICAvLyBzbyB0aGF0IGRlbGl2ZXIgY291bGQgYmUgdHJp
Z2dlcmVkIGFuZCBpdCB3b3VsZCBjbGVhciBsYXN0UmVtZW1iZXJlZFNpemUuCiAgICAgICAgIGRv
Y3VtZW50KCkub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXplKCplbGVtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGE5Njg0OGJjYWQ2NC4uOTZlYzUxMWE0NzNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQwNyw3ICs0MDcsMTAgQEAgdm9pZCBDYWxsYmFja0ZvckNv
bnRhaW5JbnRyaW5zaWNTaXplOjpvblJlc2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2Vy
dmVyRW4KICAgICAgICAgICAgIEFTU0VSVCghYm94LT5zaG91bGRTa2lwQ29udGVudCgpKTsKIAog
ICAgICAgICAgICAgYXV0byBjb250ZW50Qm94U2l6ZSA9IGVudHJ5LT5jb250ZW50Qm94U2l6ZSgp
LmF0KDApOwotICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVzaXpl
T2JzZXJ2ZXJTaXplOjpjcmVhdGUoY29udGVudEJveFNpemUtPmlubGluZVNpemUoKSwgY29udGVu
dEJveFNpemUtPmJsb2NrU2l6ZSgpKSk7CisgICAgICAgICAgICBpZiAoYm94LT5zdHlsZSgpLmNv
bnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1
dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAgICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExv
Z2ljYWxXaWR0aChMYXlvdXRVbml0KGNvbnRlbnRCb3hTaXplLT5pbmxpbmVTaXplKCkpKTsKKyAg
ICAgICAgICAgIGlmIChib3gtPnN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodFR5cGUoKSA9
PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6OkF1dG9BbmRMZW5ndGgpCisgICAgICAgICAgICAg
ICAgdGFyZ2V0LT5zZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdChjb250
ZW50Qm94U2l6ZS0+YmxvY2tTaXplKCkpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4Y2ViMmIwZTJjZDguLjgyMDA1YmJlM2VjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtNDU0MywxNCArNDU0MywyNCBAQCBSZXNpemVPYnNlcnZlckRhdGEqIEVs
ZW1lbnQ6OnJlc2l6ZU9ic2VydmVyRGF0YSgpCiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBl
bGVtZW50UmFyZURhdGEoKS0+cmVzaXplT2JzZXJ2ZXJEYXRhKCkgOiBudWxscHRyOwogfQogCi1S
ZXNpemVPYnNlcnZlclNpemUqIEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0CitM
YXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5sYXN0UmVtZW1i
ZXJlZFNpemUoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50
UmFyZURhdGEoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoLTEp
OwogfQogCi12b2lkIEVsZW1lbnQ6OnNldExhc3RSZW1lbWJlcmVkU2l6ZShSZWY8UmVzaXplT2Jz
ZXJ2ZXJTaXplPiYmIHNpemUpCitMYXlvdXRVbml0IEVsZW1lbnQ6Omxhc3RSZW1lbWJlcmVkTG9n
aWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0TGFz
dFJlbWVtYmVyZWRTaXplKFdURk1vdmUoc2l6ZSkpOworICAgIHJldHVybiBoYXNSYXJlRGF0YSgp
ID8gZWxlbWVudFJhcmVEYXRhKCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpIDogTGF5
b3V0VW5pdCgtMSk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2Fs
V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5z
ZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCh3aWR0aCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6
c2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgaGVpZ2h0KQoreworICAg
IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldExhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCho
ZWlnaHQpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmNsZWFyTGFzdFJlbWVtYmVyZWRTaXplKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IDVkZDRlZmI3MmEzOC4uOTFjM2QwOWNkMmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTc1LDcgKzc1LDYgQEAgY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xh
c3MgUHNldWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVHJlZVBv
c2l0aW9uOwotY2xhc3MgUmVzaXplT2JzZXJ2ZXJTaXplOwogY2xhc3MgU3BhY2VTcGxpdFN0cmlu
ZzsKIGNsYXNzIFN0eWxlUHJvcGVydHlNYXA7CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwUmVhZE9u
bHk7CkBAIC02OTQsOCArNjkzLDEwIEBAIHB1YmxpYzoKICAgICBSZXNpemVPYnNlcnZlckRhdGEm
IGVuc3VyZVJlc2l6ZU9ic2VydmVyRGF0YSgpOwogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVz
aXplT2JzZXJ2ZXJEYXRhKCk7CiAKLSAgICBSZXNpemVPYnNlcnZlclNpemUqIGxhc3RSZW1lbWJl
cmVkU2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRTaXplKFJlZjxSZXNp
emVPYnNlcnZlclNpemU+JiYpOworICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVyZWRMb2dpY2Fs
V2lkdGgoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdo
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFzdFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0
VW5pdCk7CisgICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5p
dCk7CiAgICAgdm9pZCBjbGVhckxhc3RSZW1lbWJlcmVkU2l6ZSgpOwogCiAgICAgRWxlbWVudCog
ZmluZEFuY2hvckVsZW1lbnRGb3JMaW5rKFN0cmluZyYgb3V0QW5jaG9yTmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCmluZGV4IDMzMDVkNjlmZWNjMi4uODAxMmEyODNj
OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcApAQCAtNDAsNyArNDAs
OCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSA6IE5vZGVSYXJlRGF0YSB7CiAg
ICAgdm9pZCogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogICAgIHZvaWQqIHR5cGVkT01EYXRh
WzJdOwogICAgIHZvaWQqIHJlc2l6ZU9ic2VydmVyRGF0YTsKLSAgICB2b2lkKiByZXNpemVPYnNl
cnZlclNpemU7CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZWRMb2dpY2FsV2lkdGg7CisgICAg
TGF5b3V0VW5pdCBsYXN0UmVtZW1iZWRMb2dpY2FsSGVpZ2h0OwogICAgIEV4cGxpY2l0bHlTZXRB
dHRyRWxlbWVudHNNYXAgZXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA4NDk0M2U2NmJhNGYuLmNkNjUxM2ZkZjkz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMzQsNyArMzQsNiBAQAog
I2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiUmVzaXplT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJSZXNpemVPYnNlcnZlclNpemUu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5o
IgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlNYXAuaCIKQEAgLTEwOCw5ICsxMDcsMTQgQEAgcHVi
bGljOgogICAgIFJlc2l6ZU9ic2VydmVyRGF0YSogcmVzaXplT2JzZXJ2ZXJEYXRhKCkgeyByZXR1
cm4gbV9yZXNpemVPYnNlcnZlckRhdGEuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJlc2l6ZU9ic2Vy
dmVyRGF0YShzdGQ6OnVuaXF1ZV9wdHI8UmVzaXplT2JzZXJ2ZXJEYXRhPiYmIGRhdGEpIHsgbV9y
ZXNpemVPYnNlcnZlckRhdGEgPSBXVEZNb3ZlKGRhdGEpOyB9CiAKLSAgICBSZXNpemVPYnNlcnZl
clNpemUqIGxhc3RSZW1lbWJlcmVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlbWVtYmVy
ZWRTaXplLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRMYXN0UmVtZW1iZXJlZFNpemUoUmVmUHRyPFJl
c2l6ZU9ic2VydmVyU2l6ZT4mJiBzaXplKSB7IG1fbGFzdFJlbWVtYmVyZWRTaXplID0gV1RGTW92
ZShzaXplKTsgfQotICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKSB7IG1fbGFzdFJl
bWVtYmVyZWRTaXplID0gbnVsbHB0cjsgfQorICAgIExheW91dFVuaXQgbGFzdFJlbWVtYmVyZWRM
b2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRo
OyB9CisgICAgTGF5b3V0VW5pdCBsYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodDsgfQorICAgIHZvaWQgc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkgeyBtX2xhc3RSZW1lbWJl
cmVkTG9naWNhbFdpZHRoID0gd2lkdGg7IH0KKyAgICB2b2lkIHNldExhc3RSZW1lbWJlcmVkTG9n
aWNhbEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkgeyBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhl
aWdodCA9IGhlaWdodDsgfQorICAgIHZvaWQgY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKSB7Cisg
ICAgICAgIHNldExhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKC0xKTsKKyAgICAgICAgc2V0TGFz
dFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KC0xKTsKKyAgICB9CiAKICAgICBjb25zdCBBdG9tU3Ry
aW5nJiBub25jZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9uY2U7IH0KICAgICB2b2lkIHNldE5vbmNl
KGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKSB7IG1fbm9uY2UgPSB2YWx1ZTsgfQpAQCAtMTQ5LDcg
KzE1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJlc3VsdC5hZGQoVXNlVHlwZTo6QXR0cmli
dXRlTWFwKTsKICAgICAgICAgaWYgKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKQogICAgICAg
ICAgICAgcmVzdWx0LmFkZChVc2VUeXBlOjpJbnRlcmFjdGlvbk9ic2VydmVyKTsKLSAgICAgICAg
aWYgKG1fcmVzaXplT2JzZXJ2ZXJEYXRhIHx8IG1fbGFzdFJlbWVtYmVyZWRTaXplKQorICAgICAg
ICBpZiAobV9yZXNpemVPYnNlcnZlckRhdGEgfHwgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0
aCA+IDAgfHwgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQgPiAwKQogICAgICAgICAgICAg
cmVzdWx0LmFkZChVc2VUeXBlOjpSZXNpemVPYnNlcnZlcik7CiAgICAgICAgIGlmICghbV9hbmlt
YXRpb25SYXJlRGF0YS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXN1bHQuYWRkKFVzZVR5cGU6
OkFuaW1hdGlvbnMpOwpAQCAtMTg3LDcgKzE5MSw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEludGVyc2VjdGlvbk9ic2VydmVyRGF0YT4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGE7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzaXplT2JzZXJ2ZXJEYXRhPiBtX3Jlc2l6ZU9i
c2VydmVyRGF0YTsKLSAgICBSZWZQdHI8UmVzaXplT2JzZXJ2ZXJTaXplPiBtX2xhc3RSZW1lbWJl
cmVkU2l6ZTsKKworICAgIExheW91dFVuaXQgbV9sYXN0UmVtZW1iZXJlZExvZ2ljYWxXaWR0aCB7
IC0xIH07CisgICAgTGF5b3V0VW5pdCBtX2xhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCB7IC0x
IH07CiAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEVsZW1lbnRBbmltYXRpb25SYXJlRGF0
YT4+IG1fYW5pbWF0aW9uUmFyZURhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggMjk0ZGRlNjcyMDI0Li5hODc1MDgxNmFkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC01NjA2LDggKzU2MDYsOCBAQCBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldpZHRoKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmIChlbGVtZW50KCkgJiYg
c3R5bGUoKS5jb250YWluSW50cmluc2ljV2lkdGhUeXBlKCkgPT0gQ29udGFpbkludHJpbnNpY1Np
emVUeXBlOjpBdXRvQW5kTGVuZ3RoICYmIHNob3VsZFNraXBDb250ZW50KCkpIHsKLSAgICAgICAg
aWYgKGF1dG8gbGFzdFJlbWVtYmVyZWRTaXplID0gZWxlbWVudCgpLT5sYXN0UmVtZW1iZXJlZFNp
emUoKSkKLSAgICAgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gTGF5
b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmlubGluZVNpemUoKSkgOiBMYXlvdXRVbml0KGxh
c3RSZW1lbWJlcmVkU2l6ZS0+YmxvY2tTaXplKCkpOworICAgICAgICBpZiAoYXV0byB3aWR0aCA9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9n
aWNhbFdpZHRoKCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpOyB3
aWR0aCA+PSAwKQorICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwogICAgIH0KIAogICAgIGF1dG8g
d2lkdGggPSBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNXaWR0aCgpOwpAQCAtNTYyMiw4ICs1NjIy
LDggQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJCb3g6OmV4cGxpY2l0SW50cmlu
c2ljSW5uZXJIZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAg
ICAgaWYgKGVsZW1lbnQoKSAmJiBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNIZWlnaHRUeXBlKCkg
PT0gQ29udGFpbkludHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoICYmIHNob3VsZFNraXBD
b250ZW50KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbGFzdFJlbWVtYmVyZWRTaXplID0gZWxlbWVu
dCgpLT5sYXN0UmVtZW1iZXJlZFNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gTGF5b3V0VW5pdChsYXN0UmVtZW1iZXJlZFNpemUtPmJsb2NrU2l6
ZSgpKSA6IExheW91dFVuaXQobGFzdFJlbWVtYmVyZWRTaXplLT5pbmxpbmVTaXplKCkpOworICAg
ICAgICBpZiAoYXV0byBoZWlnaHQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZWxlbWVu
dCgpLT5sYXN0UmVtZW1iZXJlZExvZ2ljYWxIZWlnaHQoKSA6IGVsZW1lbnQoKS0+bGFzdFJlbWVt
YmVyZWRMb2dpY2FsV2lkdGgoKTsgaGVpZ2h0ID49IDApCisgICAgICAgICAgIHJldHVybiBoZWln
aHQ7CiAgICAgfQogCiAgICAgYXV0byBoZWlnaHQgPSBzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNI
ZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IDYzY2RhNDVjZjk5Yi4uY2M1Mjg2NGExMmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVw
ZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKQEAgLTM0Niw4ICszNDYsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRl
cjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpF
bGUKICAgICBlbHNlCiAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CiAKLSAg
ICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cyAmJiAhZWxlbWVudFVwZGF0ZVN0eWxlLmhhc0F1dG9M
ZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpKQotICAgICAgICBlbGVtZW50LmNsZWFyTGFzdFJl
bWVtYmVyZWRTaXplKCk7CisgICAgaWYgKCFoYXNEaXNwbGF5Q29udGVudHMpIHsKKyAgICAgICAg
aWYgKGVsZW1lbnRVcGRhdGVTdHlsZS5jb250YWluSW50cmluc2ljV2lkdGhUeXBlKCkgIT0gQ29u
dGFpbkludHJpbnNpY1NpemVUeXBlOjpBdXRvQW5kTGVuZ3RoKQorICAgICAgICAgICAgZWxlbWVu
dFVwZGF0ZVN0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50LnNldExhc3RS
ZW1lbWJlcmVkTG9naWNhbFdpZHRoKExheW91dFVuaXQoLTEpKSA6IGVsZW1lbnQuc2V0TGFzdFJl
bWVtYmVyZWRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQoLTEpKTsKKyAgICAgICAgaWYgKGVsZW1l
bnRVcGRhdGVTdHlsZS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpICE9IENvbnRhaW5JbnRy
aW5zaWNTaXplVHlwZTo6QXV0b0FuZExlbmd0aCkKKyAgICAgICAgICAgIGVsZW1lbnRVcGRhdGVT
dHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZWxlbWVudC5zZXRMYXN0UmVtZW1iZXJl
ZExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCgtMSkpIDogZWxlbWVudC5zZXRMYXN0UmVtZW1iZXJl
ZExvZ2ljYWxXaWR0aChMYXlvdXRVbml0KC0xKSk7CisgICAgfQogICAgIGF1dG8gc2NvcGVFeGl0
ID0gbWFrZVNjb3BlRXhpdChbJl0gewogICAgICAgICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cykg
ewogICAgICAgICAgICAgYXV0byogYm94ID0gZWxlbWVudC5yZW5kZXJCb3goKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>