<?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>237963</bug_id>
          
          <creation_ts>2022-03-16 08:59:05 -0700</creation_ts>
          <short_desc>Pass style builder context to CSSToLengthConversionData</short_desc>
          <delta_ts>2022-03-17 02:43:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851838</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 08:59:05 -0700</bug_when>
    <thetext>Preparation for resolving container units.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851856</commentid>
    <comment_count>1</comment_count>
      <attachid>454846</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 09:30:08 -0700</bug_when>
    <thetext>Created attachment 454846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851878</commentid>
    <comment_count>2</comment_count>
      <attachid>454857</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 10:36:16 -0700</bug_when>
    <thetext>Created attachment 454857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851889</commentid>
    <comment_count>3</comment_count>
      <attachid>454862</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 10:45:00 -0700</bug_when>
    <thetext>Created attachment 454862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851921</commentid>
    <comment_count>4</comment_count>
      <attachid>454874</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 11:56:50 -0700</bug_when>
    <thetext>Created attachment 454874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851924</commentid>
    <comment_count>5</comment_count>
      <attachid>454876</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 12:00:31 -0700</bug_when>
    <thetext>Created attachment 454876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851958</commentid>
    <comment_count>6</comment_count>
      <attachid>454886</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-16 13:13:42 -0700</bug_when>
    <thetext>Created attachment 454886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852188</commentid>
    <comment_count>7</comment_count>
      <attachid>454886</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-03-17 01:44:38 -0700</bug_when>
    <thetext>Comment on attachment 454886
Patch

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

&gt; Source/WebCore/css/CSSToLengthConversionData.h:52
&gt; +    CSSToLengthConversionData(const RenderStyle&amp;, const RenderStyle* rootStyle, const RenderStyle* parentStyle, const RenderView*);

&apos;zoom&apos; v. `zoom`, who should win?

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:949
&gt; +    return function(expression.value(), { *m_style, &amp;defaultStyle, nullptr, document.renderView() }, *frame, NoPrefix);

Should we ASSERT(m_style) here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852190</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-03-17 01:53:11 -0700</bug_when>
    <thetext>&gt; Should we ASSERT(m_style) here?

Nah, there is a null test pretty close above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852203</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-17 02:42:16 -0700</bug_when>
    <thetext>Committed r291398 (248528@main): &lt;https://commits.webkit.org/248528@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454886.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852204</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-17 02:43:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/90419727&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454846</attachid>
            <date>2022-03-16 09:30:08 -0700</date>
            <delta_ts>2022-03-16 10:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316183007.patch</filename>
            <type>text/plain</type>
            <size>18016</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uM2YzZjAxYzZhNzZlNmY4NDllMDFmM2E1ODQ4NDkx
Yzc1ZGQyNzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OmNvcHlGb3JGb250U2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFkanVzdGVkWm9vbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yTGluZUhlaWdodCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGE6OmNvcHlXaXRoQWRqdXN0ZWRab29tQW5kUHJvcGVydHlUb0NvbXB1
dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjplZmZlY3RpdmVTaXplRGVmYXVsdFZh
bHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29sdmVDdXN0
b21TdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblBh
cnRTdHlsZSBjb25zdCk6CisgICAgICAgICogc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpz
ZWxlY3RDb250YWluZXIgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFNpemUp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpCdWlsZGVyU3RhdGU6OkJ1aWxkZXJTdGF0ZSk6CisKIDIwMjItMDMtMTUgIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODI3
MzcpOiBgdGV4dC1zaGFkb3dgIGlzIGNsaXBwZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcAppbmRleCAwMWRmYTI4OWY5ODM0NzM2ODZiMjM5ODlmYjdlNmZkMzE5ODc3OTVl
Li4zNDQwYzJiOGNhMGJjNzNmMTc3OWFmMDBkNzExOWNjOGM4MjMxMzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC04ODQsNyArODg0LDcgQEAgUmVmPEdyYWRp
ZW50PiBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gcmVuZGVyZXIu
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgcm9vdFN0eWxlID0gZG9jdW1l
bnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0eWxlLCByZW5kZXJlci5w
YXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVy
ZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CiAKICAgICBGbG9hdFBvaW50IGZp
cnN0UG9pbnQ7CiAgICAgRmxvYXRQb2ludCBzZWNvbmRQb2ludDsKQEAgLTExNDIsNyArMTE0Miw3
IEBAIFJlZjxHcmFkaWVudD4gQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVu
dCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpCiAgICAgICAgIHJvb3RT
dHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKIAotICAgIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHls
ZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5kZXJlci5zdHlsZSgpLCByb290
U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOwogCiAgICAg
RmxvYXRQb2ludCBmaXJzdFBvaW50ID0gY29tcHV0ZUVuZFBvaW50KGZpcnN0WCgpLCBmaXJzdFko
KSwgY29udmVyc2lvbkRhdGEsIHNpemUpOwogICAgIGlmICghZmlyc3RYKCkpCkBAIC0xMzM1LDcg
KzEzMzUsNyBAQCBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3Jh
ZGllbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbgogICAgIGlmIChhdXRvKiBkb2N1bWVu
dEVsZW1lbnQgPSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAg
ICByb290U3R5bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCBy
b290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAg
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
IAogICAgIEZsb2F0UG9pbnQgY2VudGVyUG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RYKCks
IGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAppbmRl
eCBiMDE1ZjFhZTdhMDc4NjY3YzVhNzVkNjRkNWY4OGE0ZjliMThkYTI4Li45NGJjYzYzYTZiYThk
ZTI4ZjQ4Yjg5YWQ1NDZjZjMwNGVjNmUxYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCkBAIC0zNCw5ICszNCwyOCBAQAogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiByb290
U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyVmlldyog
cmVuZGVyVmlldykKKyAgICA6IG1fc3R5bGUoJnN0eWxlKQorICAgICwgbV9yb290U3R5bGUocm9v
dFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKKyAgICAsIG1fcmVuZGVy
VmlldyhyZW5kZXJWaWV3KQorICAgICwgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBTdHlsZTo6QnVpbGRlckNvbnRleHQmIGJ1aWxkZXJDb250ZXh0KQor
ICAgIDogbV9zdHlsZSgmc3R5bGUpCisgICAgLCBtX3Jvb3RTdHlsZShidWlsZGVyQ29udGV4dC5y
b290RWxlbWVudFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZSgmYnVpbGRlckNvbnRleHQucGFy
ZW50U3R5bGUpCisgICAgLCBtX3JlbmRlclZpZXcoYnVpbGRlckNvbnRleHQuZG9jdW1lbnQtPnJl
bmRlclZpZXcoKSkKKyAgICAsIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUoY29u
c3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fc3R5bGUpKQoreworfQorCiBmbG9hdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tKCkgY29uc3QKIHsKICAgICBpZiAoIW1fem9vbSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IGU1YzJi
NjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYxNDAuLjA3ZWQwMWQ2MzRmOTEwZTMzOGQz
NTdkYWI5M2QyYTdmMWQ0NzRmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaApAQCAtNDAsMjkgKzQwLDE0IEBAIGNsYXNzIEZsb2F0U2l6ZTsK
IGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIAorbmFtZXNwYWNlIFN0eWxl
IHsKK3N0cnVjdCBCdWlsZGVyQ29udGV4dDsKK307CisKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEgewogcHVibGljOgotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIGZs
b2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUg
PSBzdGQ6Om51bGxvcHQsIFJlbmRlclN0eWxlKiB2aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25T
dHlsZSA9IG51bGxwdHIpCi0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jv
b3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkK
LSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKHZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlID8gdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUg
OiBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4oc3R5bGUpKQotICAgICAgICAsIG1fcmVuZGVyVmll
dyhyZW5kZXJWaWV3KQotICAgICAgICAsIG1fem9vbSh6b29tKQotICAgICAgICAsIG1fcHJvcGVy
dHlUb0NvbXB1dGUocHJvcGVydHlUb0NvbXB1dGUpCi0gICAgewotICAgICAgICBBU1NFUlQoem9v
bSA+IDApOwotICAgIH0KLQotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIHN0ZDo6
b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQp
Ci0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5
bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3Zp
ZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihz
dHlsZSkpCi0gICAgICAgICwgbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCi0gICAgICAgICwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZShwcm9wZXJ0eVRvQ29tcHV0ZSkKLSAgICB7Ci0gICAgfQorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJT
dHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclZpZXcqKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgU3R5bGU6OkJ1aWxkZXJDb250ZXh0Jik7CiAKICAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCkgPSBkZWZhdWx0OwogCkBAIC04MCwyNCArNjUsMzkgQEAgcHVibGljOgog
ICAgIEZsb2F0U2l6ZSBsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAgICAgRmxvYXRTaXpl
IGR5bmFtaWNWaWV3cG9ydEZhY3RvcigpIGNvbnN0OwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCBuZXdab29tKSBjb25zdAorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhp
cyk7CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9IENTU1Byb3BlcnR5Rm9udFNp
emU7CisgICAgICAgIGNvcHkubV9zdHlsZSA9IHBhcmVudFN0eWxlKCk7CisgICAgICAgIGNvcHku
bV96b29tID0gMS5mOworICAgICAgICByZXR1cm4gY29weTsKKyAgICB9OworCisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCB6b29tKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHls
ZSwgbV9yb290U3R5bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgbmV3Wm9vbSwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZSk7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29w
eSgqdGhpcyk7CisgICAgICAgIGNvcHkubV96b29tID0gem9vbTsKKyAgICAgICAgcmV0dXJuIGNv
cHk7CiAgICAgfQogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVz
dGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlKGZsb2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NT
UHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUpIGNvbnN0CisgICAgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSBjb3B5Rm9yTGluZUhlaWdodChmbG9hdCB6b29tKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHlsZSwgbV9yb290U3R5
bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgem9vbSwgcHJvcGVydHlUb0NvbXB1dGUp
OworICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAg
ICBjb3B5Lm1fem9vbSA9IHpvb207CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9
IENTU1Byb3BlcnR5TGluZUhlaWdodDsKKyAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgfQogCiBw
cml2YXRlOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBtX3N0eWxlIHsgbnVsbHB0ciB9OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlKiBtX3Jvb3RTdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSogbV9wYXJlbnRTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBSZW5kZXJTdHlsZSog
bV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25z
dCBSZW5kZXJWaWV3KiBtX3JlbmRlclZpZXcgeyBudWxscHRyIH07CiAgICAgc3RkOjpvcHRpb25h
bDxmbG9hdD4gbV96b29tOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gbV9wcm9w
ZXJ0eVRvQ29tcHV0ZTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFjay4KKyAgICBSZW5k
ZXJTdHlsZSogbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCAzNDVjYzI0NTM0YmMwNDUxODY3MDM1ZmFhMDMzYmRmNWNk
MDYwNGY2Li5kOTk0ODYzMDIzMThjNzZmOTY4M2JhMjFjOTFiYmIyMGEwYTM0NDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC05NDYsNyArOTQ2LDcg
QEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5RXhw
cmVzc2lvbiYgZXhwcmVzc2lvbikgY29uc3QKICAgICBkZWZhdWx0U3R5bGUuZm9udENhc2NhZGUo
KS51cGRhdGUoKTsKICAgICAKICAgICAvLyBQYXNzIGBudWxscHRyYCBmb3IgYHBhcmVudFN0eWxl
YCBiZWNhdXNlIHdlIGFyZSBpbiB0aGUgY29udGV4dCBvZiBhIG1lZGlhIHF1ZXJ5LgotICAgIHJl
dHVybiBmdW5jdGlvbihleHByZXNzaW9uLnZhbHVlKCksIHsgbV9zdHlsZSwgJmRlZmF1bHRTdHls
ZSwgbnVsbHB0ciwgZG9jdW1lbnQucmVuZGVyVmlldygpLCAxLCBzdGQ6Om51bGxvcHQgfSwgKmZy
YW1lLCBOb1ByZWZpeCk7CisgICAgcmV0dXJuIGZ1bmN0aW9uKGV4cHJlc3Npb24udmFsdWUoKSwg
eyAqbV9zdHlsZSwgJmRlZmF1bHRTdHlsZSwgbnVsbHB0ciwgZG9jdW1lbnQucmVuZGVyVmlldygp
IH0sICpmcmFtZSwgTm9QcmVmaXgpOwogfQogCiBib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6Om1l
ZGlhQXR0cmlidXRlTWF0Y2hlcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgYXR0
cmlidXRlVmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVz
QXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRy
aWJ1dGVQYXJzZXIuY3BwCmluZGV4IDM2MjE5ZjNlYzdmMTQ3ZDRhZmJmNjIwMmU5NDQzNjk4MWM2
ODNiNTQuLmQ2ZTQ4YTIzZmY5N2UwYThiNzM2ZDgwMzc5NzQyNDc1MDVjMzdmZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCkBA
IC01MSw3ICs1MSw3IEBAIGZsb2F0IFNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3Ro
KGRvdWJsZSB2YWx1ZSwgQ1NTVW5pdFR5cGUgdHlwZSwgY29uc3QKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKIAotICAgIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnN0eWxlLCAmc3R5bGUsIHJlbmRlcmVyLT5w
YXJlbnRTdHlsZSgpLCByZW5kZXJlcik7CisgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBj
b252ZXJzaW9uRGF0YShzdHlsZSwgJnN0eWxlLCByZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVu
ZGVyZXIpOwogICAgIC8vIEJlY2F1c2Ugd2UgZXZhbHVhdGUgInNpemVzIiBhdCBwYXJzZSB0aW1l
IChiZWZvcmUgc3R5bGUgaGFzIGJlZW4gcmVzb2x2ZWQpLCB0aGUgZm9udCBtZXRyaWNzIHVzZWQg
Zm9yIHRoZXNlIHNwZWNpZmljIHVuaXRzCiAgICAgLy8gYXJlIG5vdCBhdmFpbGFibGUuIFRoZSBm
b250IHNlbGVjdG9yJ3MgaW50ZXJuYWwgY29uc2lzdGVuY3kgaXNuJ3QgZ3VhcmFudGVlZCBqdXN0
IHlldCwgc28gd2UgY2FuIGp1c3QgdGVtcG9yYXJpbHkgY2xlYXIKICAgICAvLyB0aGUgcG9pbnRl
ciB0byBpdCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB1bml0IGV2YWx1YXRpb24uIFRoaXMgaXMg
YWNjZXB0aWJsZSBiZWNhdXNlIHRoZSBzdHlsZSBhbHdheXMgY29tZXMgZnJvbSB0aGUKQEAgLTE1
Nyw3ICsxNTcsNyBAQCB1bnNpZ25lZCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6ZWZmZWN0aXZlU2l6
ZURlZmF1bHRWYWx1ZSgpCiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gY2xhbXBUbzxm
bG9hdD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKHsgJnN0
eWxlLCAmc3R5bGUsIHJlbmRlcmVyLT5wYXJlbnRTdHlsZSgpLCByZW5kZXJlciB9LCBDU1NVbml0
VHlwZTo6Q1NTX1ZXLCAxMDAuMCkpOworICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihDU1NQcmlt
aXRpdmVWYWx1ZTo6Y29tcHV0ZU5vbkNhbGNMZW5ndGhEb3VibGUoeyBzdHlsZSwgJnN0eWxlLCBy
ZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVuZGVyZXIgfSwgQ1NTVW5pdFR5cGU6OkNTU19WVywg
MTAwLjApKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXgg
N2FiOTdiOWI2MWZkZTA4NDQ1OTFhYmVlZmJmNmQ2MWZkMzdiOWQ3Ny4uYzBlOGZlZTUwM2ZlN2Vm
YzIzZjNjOGQ2YjQ3MmI1NTQzNjJjN2MzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xMjUsNyArMTI1
LDcgQEAgc3RkOjpvcHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBUZXh0Q29udHJvbElubmVy
RWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxlKGMKICAgICAgICAgLy8gc3R5bGUgdG8gY2FsY3Vs
YXRlIGVtIGxlbmd0aHMuIFNpbmNlIHRoZSBlbGVtZW50IG1pZ2h0IG5vdCBiZSBpbiBhIGRvY3Vt
ZW50LCBqdXN0IHBhc3MgbnVsbHB0cgogICAgICAgICAvLyBmb3IgdGhlIHJvb3QgZWxlbWVudCBz
dHlsZSwgdGhlIHBhcmVudCBlbGVtZW50IHN0eWxlLCBhbmQgdGhlIHJlbmRlciB2aWV3LgogICAg
ICAgICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMSwgQ1NTVW5pdFR5
cGU6OkNTU19FTVMpOwotICAgICAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3Ro
PGludD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7IG5ld1N0eWxlLmdldCgpLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCB9KTsKKyAgICAgICAgaW50IHBp
eGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEgeyAqbmV3U3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfSk7CiAgICAgICAgIG5l
d1N0eWxlLT5zZXRGbGV4QmFzaXMoTGVuZ3RoIHsgcGl4ZWxzLCBMZW5ndGhUeXBlOjpGaXhlZCB9
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpp
bmRleCAzMGNkMzQzZWE3ZGY5MTY4Y2MzY2RlNDdkYmVmOGY3NTllODhmNzMxLi5lYTNiZDAyYjhj
ZGM3NTBlNTRiMTRjYjZhMmY2MGYwNTM4MDZmZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0yOTE2LDcgKzI5MTYsNyBAQCB2b2lkIFJlbmRlclRo
ZW1lSU9TOjphZGp1c3RTZWFyY2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUoUmVuZGVyU3R5bGUm
IHN0eWxlLCBjbwogICAgIGNvbnN0ZXhwciBpbnQgc2VhcmNoRmllbGREZWNvcmF0aW9uRW1TaXpl
ID0gMTsKICAgICBjb25zdGV4cHIgaW50IHNlYXJjaEZpZWxkRGVjb3JhdGlvbk1hcmdpbiA9IDQ7
CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZzdHlsZSwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQpOworICAgIENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoc3R5bGUsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KTsKIAogICAgIGF1dG8gZW1TaXplID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzZWFyY2hGaWVsZERlY29yYXRpb25FbVNpemUsIENTU1Vu
aXRUeXBlOjpDU1NfRU1TKTsKICAgICBhdXRvIHNpemUgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8
ZmxvYXQ+KGNvbnZlcnNpb25EYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA1YTc5MDk1MmRmMzg2MjE0MGFjZDY2M2E5NDFm
YWY4NzgyZTYxODBkLi5jNDViNWFjOWUzZjI5NmU1ZTkyOTZmYTM0MTVhOTNiNmNkOTJkOTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3Bw
CkBAIC03NCw3ICs3NCw3IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENv
bnRhaW5lcihjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0CiAgICAgICAgIGF1dG8m
IHZpZXcgPSByZW5kZXJlci0+dmlldygpOwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAg
cmVuZGVyZXIsCi0gICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgJnJlbmRl
cmVyLT5zdHlsZSgpLCAmdmlldy5zdHlsZSgpLCBudWxscHRyLCAmdmlldywgMSB9CisgICAgICAg
ICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgcmVuZGVyZXItPnN0eWxlKCksICZ2aWV3
LnN0eWxlKCksIG51bGxwdHIsICZ2aWV3IH0KICAgICAgICAgfTsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDQ1MzE0MWExNTc4
ZmY2MDA0Mzc2ZjYwZjE2ODI1ZWZjMWZiYzBhZjcuLmFjYmJmNWY5YTdlMWM3MmQ5Y2NhYjg1MDIz
ZDdlZmQ0ZDIxN2IyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCkBAIC0xNTY1LDcgKzE1NjUsNyBAQCBpbmxpbmUgc3RkOjpvcHRpb25hbDxMZW5n
dGg+IEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRMaW5lSGVpZ2h0KEJ1aWxkZXJTdGF0ZSYgYgog
ICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCk7CiAKICAgICBp
ZiAocHJpbWl0aXZlVmFsdWUuaXNMZW5ndGgoKSkgewotICAgICAgICBhdXRvIGNvbnZlcnNpb25E
YXRhID0gYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFk
anVzdGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlKHpvb21XaXRoVGV4dFpvb21GYWN0b3IoYnVp
bGRlclN0YXRlKSwgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KTsKKyAgICAgICAgYXV0byBjb252ZXJz
aW9uRGF0YSA9IGJ1aWxkZXJTdGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weUZv
ckxpbmVIZWlnaHQoem9vbVdpdGhUZXh0Wm9vbUZhY3RvcihidWlsZGVyU3RhdGUpKTsKICAgICAg
ICAgTGVuZ3RoIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihj
b252ZXJzaW9uRGF0YSk7CiAgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEuZikKICAgICAgICAg
ICAgIGxlbmd0aCA9IExlbmd0aChsZW5ndGgudmFsdWUoKSAqIG11bHRpcGxpZXIsIExlbmd0aFR5
cGU6OkZpeGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5k
ZXggZTg4NGU1YmNmYWM1ZGQ0ODUwOWRlZDIzOWVlMmVmNjZhZjNlMTRlZC4uZWUxMTZhNzI3YTA1
ZWEyMDFhNTEzNjYwOWMzZTIzMGE5ZjVjNjQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTE4MzQsMTMgKzE4MzQsMTMgQEAgaW5saW5lIHZvaWQgQnVp
bGRlckN1c3RvbTo6YXBwbHlWYWx1ZUZvbnRTaXplKEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRl
LCBDU1NWYWwKICAgICB9IGVsc2UgewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0SXNBYnNv
bHV0ZVNpemUocGFyZW50SXNBYnNvbHV0ZVNpemUgfHwgIShwcmltaXRpdmVWYWx1ZS5pc1BlcmNl
bnRhZ2UoKSB8fCBwcmltaXRpdmVWYWx1ZS5pc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpKSk7CiAgICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhIHsgJmJ1aWxkZXJTdGF0ZS5wYXJlbnRT
dHlsZSgpLCBidWlsZGVyU3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCAmYnVpbGRlclN0YXRlLnBh
cmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5kb2N1bWVudCgpLnJlbmRlclZpZXcoKSwgMS4wZiwg
Q1NTUHJvcGVydHlGb250U2l6ZSwgJmJ1aWxkZXJTdGF0ZS5zdHlsZSgpIH07CisgICAgICAgICAg
ICAvLyBmb250LXNpemUgaXMgcmVzb2x2ZWQgYWdhaW5zdCB0aGUgcGFyZW50IHN0eWxlIGluc3Rl
YWQgb2YgdGhlIGN1cnJlbnQgc3R5bGUuCisgICAgICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRh
ID0gYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5Rm9yRm9udFNp
emVXaXRoUGFyZW50U3R5bGUoKTsKICAgICAgICAgICAgIHNpemUgPSBwcmltaXRpdmVWYWx1ZS5j
b21wdXRlTGVuZ3RoPGZsb2F0Pihjb252ZXJzaW9uRGF0YSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
cHJpbWl0aXZlVmFsdWUuaXNQZXJjZW50YWdlKCkpCiAgICAgICAgICAgICBzaXplID0gKHByaW1p
dGl2ZVZhbHVlLmZsb2F0VmFsdWUoKSAqIHBhcmVudFNpemUpIC8gMTAwLjBmOwogICAgICAgICBl
bHNlIGlmIChwcmltaXRpdmVWYWx1ZS5pc0NhbGN1bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBuZWVkIGEgZGlmZmVyZW50
IHJvb3Qgc3R5bGUgdGhhbiB0aGUgaXNMZW5ndGggY2FzZSBhYm92ZT8KLSAgICAgICAgICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEgeyAmYnVpbGRlclN0YXRlLnBh
cmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkucm9v
dFN0eWxlKCksICZidWlsZGVyU3RhdGUucGFyZW50U3R5bGUoKSwgYnVpbGRlclN0YXRlLmRvY3Vt
ZW50KCkucmVuZGVyVmlldygpLCAxLjBmLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCAmYnVpbGRlclN0
YXRlLnN0eWxlKCkgfTsKKyAgICAgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVy
U3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlGb3JGb250U2l6ZVdpdGhQYXJl
bnRTdHlsZSgpOwogICAgICAgICAgICAgc2l6ZSA9IHByaW1pdGl2ZVZhbHVlLmNzc0NhbGNWYWx1
ZSgpLT5jcmVhdGVDYWxjdWxhdGlvblZhbHVlKGNvbnZlcnNpb25EYXRhKS0+ZXZhbHVhdGUocGFy
ZW50U2l6ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCmluZGV4IDBjMTZmNDNlMDQ1M2U3YTBk
OWM4MTVjM2FiM2RmNTAxMDQzNzVhODkuLjY3Y2U5OTk1OWIzNjU5OWVmZDI1MGEyMjY0ODA4ZDBj
MWFjZDViMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAK
QEAgLTYzLDcgKzYzLDcgQEAgQnVpbGRlclN0YXRlOjpCdWlsZGVyU3RhdGUoQnVpbGRlciYgYnVp
bGRlciwgUmVuZGVyU3R5bGUmIHN0eWxlLCBCdWlsZGVyQ29udGV4dCYKICAgICAsIG1fc3R5bGVN
YXAoKnRoaXMpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUo
Y29udGV4dCkpCi0gICAgLCBtX2Nzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoJnN0eWxlLCByb290
RWxlbWVudFN0eWxlKCksICZwYXJlbnRTdHlsZSgpLCBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkK
KyAgICAsIG1fY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YShzdHlsZSwgbV9jb250ZXh0KQogewog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454857</attachid>
            <date>2022-03-16 10:36:16 -0700</date>
            <delta_ts>2022-03-16 10:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316193615.patch</filename>
            <type>text/plain</type>
            <size>22033</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uM2YzZjAxYzZhNzZlNmY4NDllMDFmM2E1ODQ4NDkx
Yzc1ZGQyNzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OmNvcHlGb3JGb250U2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFkanVzdGVkWm9vbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yTGluZUhlaWdodCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGE6OmNvcHlXaXRoQWRqdXN0ZWRab29tQW5kUHJvcGVydHlUb0NvbXB1
dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjplZmZlY3RpdmVTaXplRGVmYXVsdFZh
bHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29sdmVDdXN0
b21TdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblBh
cnRTdHlsZSBjb25zdCk6CisgICAgICAgICogc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpz
ZWxlY3RDb250YWluZXIgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFNpemUp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpCdWlsZGVyU3RhdGU6OkJ1aWxkZXJTdGF0ZSk6CisKIDIwMjItMDMtMTUgIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODI3
MzcpOiBgdGV4dC1zaGFkb3dgIGlzIGNsaXBwZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcAppbmRleCAwMWRmYTI4OWY5ODM0NzM2ODZiMjM5ODlmYjdlNmZkMzE5ODc3OTVl
Li4zNDQwYzJiOGNhMGJjNzNmMTc3OWFmMDBkNzExOWNjOGM4MjMxMzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC04ODQsNyArODg0LDcgQEAgUmVmPEdyYWRp
ZW50PiBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gcmVuZGVyZXIu
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgcm9vdFN0eWxlID0gZG9jdW1l
bnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0eWxlLCByZW5kZXJlci5w
YXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVy
ZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CiAKICAgICBGbG9hdFBvaW50IGZp
cnN0UG9pbnQ7CiAgICAgRmxvYXRQb2ludCBzZWNvbmRQb2ludDsKQEAgLTExNDIsNyArMTE0Miw3
IEBAIFJlZjxHcmFkaWVudD4gQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVu
dCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpCiAgICAgICAgIHJvb3RT
dHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKIAotICAgIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHls
ZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5kZXJlci5zdHlsZSgpLCByb290
U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOwogCiAgICAg
RmxvYXRQb2ludCBmaXJzdFBvaW50ID0gY29tcHV0ZUVuZFBvaW50KGZpcnN0WCgpLCBmaXJzdFko
KSwgY29udmVyc2lvbkRhdGEsIHNpemUpOwogICAgIGlmICghZmlyc3RYKCkpCkBAIC0xMzM1LDcg
KzEzMzUsNyBAQCBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3Jh
ZGllbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbgogICAgIGlmIChhdXRvKiBkb2N1bWVu
dEVsZW1lbnQgPSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAg
ICByb290U3R5bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCBy
b290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAg
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
IAogICAgIEZsb2F0UG9pbnQgY2VudGVyUG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RYKCks
IGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAppbmRl
eCBiMDE1ZjFhZTdhMDc4NjY3YzVhNzVkNjRkNWY4OGE0ZjliMThkYTI4Li45NGJjYzYzYTZiYThk
ZTI4ZjQ4Yjg5YWQ1NDZjZjMwNGVjNmUxYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCkBAIC0zNCw5ICszNCwyOCBAQAogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiByb290
U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyVmlldyog
cmVuZGVyVmlldykKKyAgICA6IG1fc3R5bGUoJnN0eWxlKQorICAgICwgbV9yb290U3R5bGUocm9v
dFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKKyAgICAsIG1fcmVuZGVy
VmlldyhyZW5kZXJWaWV3KQorICAgICwgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBTdHlsZTo6QnVpbGRlckNvbnRleHQmIGJ1aWxkZXJDb250ZXh0KQor
ICAgIDogbV9zdHlsZSgmc3R5bGUpCisgICAgLCBtX3Jvb3RTdHlsZShidWlsZGVyQ29udGV4dC5y
b290RWxlbWVudFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZSgmYnVpbGRlckNvbnRleHQucGFy
ZW50U3R5bGUpCisgICAgLCBtX3JlbmRlclZpZXcoYnVpbGRlckNvbnRleHQuZG9jdW1lbnQtPnJl
bmRlclZpZXcoKSkKKyAgICAsIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUoY29u
c3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fc3R5bGUpKQoreworfQorCiBmbG9hdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tKCkgY29uc3QKIHsKICAgICBpZiAoIW1fem9vbSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IGU1YzJi
NjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYxNDAuLjA3ZWQwMWQ2MzRmOTEwZTMzOGQz
NTdkYWI5M2QyYTdmMWQ0NzRmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaApAQCAtNDAsMjkgKzQwLDE0IEBAIGNsYXNzIEZsb2F0U2l6ZTsK
IGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIAorbmFtZXNwYWNlIFN0eWxl
IHsKK3N0cnVjdCBCdWlsZGVyQ29udGV4dDsKK307CisKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEgewogcHVibGljOgotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIGZs
b2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUg
PSBzdGQ6Om51bGxvcHQsIFJlbmRlclN0eWxlKiB2aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25T
dHlsZSA9IG51bGxwdHIpCi0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jv
b3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkK
LSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKHZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlID8gdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUg
OiBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4oc3R5bGUpKQotICAgICAgICAsIG1fcmVuZGVyVmll
dyhyZW5kZXJWaWV3KQotICAgICAgICAsIG1fem9vbSh6b29tKQotICAgICAgICAsIG1fcHJvcGVy
dHlUb0NvbXB1dGUocHJvcGVydHlUb0NvbXB1dGUpCi0gICAgewotICAgICAgICBBU1NFUlQoem9v
bSA+IDApOwotICAgIH0KLQotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIHN0ZDo6
b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQp
Ci0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5
bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3Zp
ZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihz
dHlsZSkpCi0gICAgICAgICwgbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCi0gICAgICAgICwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZShwcm9wZXJ0eVRvQ29tcHV0ZSkKLSAgICB7Ci0gICAgfQorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJT
dHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclZpZXcqKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgU3R5bGU6OkJ1aWxkZXJDb250ZXh0Jik7CiAKICAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCkgPSBkZWZhdWx0OwogCkBAIC04MCwyNCArNjUsMzkgQEAgcHVibGljOgog
ICAgIEZsb2F0U2l6ZSBsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAgICAgRmxvYXRTaXpl
IGR5bmFtaWNWaWV3cG9ydEZhY3RvcigpIGNvbnN0OwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCBuZXdab29tKSBjb25zdAorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhp
cyk7CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9IENTU1Byb3BlcnR5Rm9udFNp
emU7CisgICAgICAgIGNvcHkubV9zdHlsZSA9IHBhcmVudFN0eWxlKCk7CisgICAgICAgIGNvcHku
bV96b29tID0gMS5mOworICAgICAgICByZXR1cm4gY29weTsKKyAgICB9OworCisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCB6b29tKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHls
ZSwgbV9yb290U3R5bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgbmV3Wm9vbSwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZSk7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29w
eSgqdGhpcyk7CisgICAgICAgIGNvcHkubV96b29tID0gem9vbTsKKyAgICAgICAgcmV0dXJuIGNv
cHk7CiAgICAgfQogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVz
dGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlKGZsb2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NT
UHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUpIGNvbnN0CisgICAgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSBjb3B5Rm9yTGluZUhlaWdodChmbG9hdCB6b29tKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHlsZSwgbV9yb290U3R5
bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgem9vbSwgcHJvcGVydHlUb0NvbXB1dGUp
OworICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAg
ICBjb3B5Lm1fem9vbSA9IHpvb207CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9
IENTU1Byb3BlcnR5TGluZUhlaWdodDsKKyAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgfQogCiBw
cml2YXRlOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBtX3N0eWxlIHsgbnVsbHB0ciB9OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlKiBtX3Jvb3RTdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSogbV9wYXJlbnRTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBSZW5kZXJTdHlsZSog
bV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25z
dCBSZW5kZXJWaWV3KiBtX3JlbmRlclZpZXcgeyBudWxscHRyIH07CiAgICAgc3RkOjpvcHRpb25h
bDxmbG9hdD4gbV96b29tOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gbV9wcm9w
ZXJ0eVRvQ29tcHV0ZTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFjay4KKyAgICBSZW5k
ZXJTdHlsZSogbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4
UmVhZE9ubHkuY3BwCmluZGV4IDhiMGNlZjU1NTVmMzIyN2NkM2FmY2EzNjgwNjRlZDJhMjhhMGZm
YTcuLmQ4NDQ4YjcwN2RjNzA1ZjRkMGQ5NWJjNTllYTMyYmZkYjdmMzQ1YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIEV4Y2Vw
dGlvbk9yPERPTU1hdHJpeFJlYWRPbmx5OjpBYnN0cmFjdE1hdHJpeD4gRE9NTWF0cml4UmVhZE9u
bHk6OnBhcnNlU3RyaW5nSW50CiAgICAgICAgIHJldHVybiBBYnN0cmFjdE1hdHJpeCB7IH07CiAK
ICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnM7Ci0gICAgaWYgKCF0cmFuc2Zvcm1z
Rm9yVmFsdWUoKnZhbHVlLCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCksIG9wZXJhdGlvbnMp
KQorICAgIGlmICghdHJhbnNmb3Jtc0ZvclZhbHVlKCp2YWx1ZSwgeyB9LCBvcGVyYXRpb25zKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKICAgICBBYnN0cmFj
dE1hdHJpeCBtYXRyaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAKaW5kZXggMzQ1Y2MyNDUzNGJjMDQ1MTg2NzAzNWZhYTAzM2JkZjVjZDA2MDRmNi4uZDk5NDg2
MzAyMzE4Yzc2Zjk2ODNiYTIxYzkxYmJiMjBhMGEzNDQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtOTQ2LDcgKzk0Niw3IEBAIGJvb2wgTWVkaWFR
dWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeUV4cHJlc3Npb24mIGV4cHJl
c3Npb24pIGNvbnN0CiAgICAgZGVmYXVsdFN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCk7CiAg
ICAgCiAgICAgLy8gUGFzcyBgbnVsbHB0cmAgZm9yIGBwYXJlbnRTdHlsZWAgYmVjYXVzZSB3ZSBh
cmUgaW4gdGhlIGNvbnRleHQgb2YgYSBtZWRpYSBxdWVyeS4KLSAgICByZXR1cm4gZnVuY3Rpb24o
ZXhwcmVzc2lvbi52YWx1ZSgpLCB7IG1fc3R5bGUsICZkZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSwgMSwgc3RkOjpudWxsb3B0IH0sICpmcmFtZSwgTm9QcmVmaXgp
OworICAgIHJldHVybiBmdW5jdGlvbihleHByZXNzaW9uLnZhbHVlKCksIHsgKm1fc3R5bGUsICZk
ZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSB9LCAqZnJhbWUsIE5v
UHJlZml4KTsKIH0KIAogYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjptZWRpYUF0dHJpYnV0ZU1h
dGNoZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNw
cAppbmRleCAzNjIxOWYzZWM3ZjE0N2Q0YWZiZjYyMDJlOTQ0MzY5ODFjNjgzYjU0Li5kNmU0OGEy
M2ZmOTdlMGE4YjczNmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcApAQCAtNTEsNyArNTEsNyBA
QCBmbG9hdCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6Y29tcHV0ZUxlbmd0aChkb3VibGUgdmFsdWUs
IENTU1VuaXRUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
IGNvbnZlcnNpb25EYXRhKCZzdHlsZSwgJnN0eWxlLCByZW5kZXJlci0+cGFyZW50U3R5bGUoKSwg
cmVuZGVyZXIpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEo
c3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRlcmVyKTsKICAgICAv
LyBCZWNhdXNlIHdlIGV2YWx1YXRlICJzaXplcyIgYXQgcGFyc2UgdGltZSAoYmVmb3JlIHN0eWxl
IGhhcyBiZWVuIHJlc29sdmVkKSwgdGhlIGZvbnQgbWV0cmljcyB1c2VkIGZvciB0aGVzZSBzcGVj
aWZpYyB1bml0cwogICAgIC8vIGFyZSBub3QgYXZhaWxhYmxlLiBUaGUgZm9udCBzZWxlY3Rvcidz
IGludGVybmFsIGNvbnNpc3RlbmN5IGlzbid0IGd1YXJhbnRlZWQganVzdCB5ZXQsIHNvIHdlIGNh
biBqdXN0IHRlbXBvcmFyaWx5IGNsZWFyCiAgICAgLy8gdGhlIHBvaW50ZXIgdG8gaXQgZm9yIHRo
ZSBkdXJhdGlvbiBvZiB0aGUgdW5pdCBldmFsdWF0aW9uLiBUaGlzIGlzIGFjY2VwdGlibGUgYmVj
YXVzZSB0aGUgc3R5bGUgYWx3YXlzIGNvbWVzIGZyb20gdGhlCkBAIC0xNTcsNyArMTU3LDcgQEAg
dW5zaWduZWQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmVmZmVjdGl2ZVNpemVEZWZhdWx0VmFsdWUo
KQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIGNsYW1wVG88ZmxvYXQ+KENTU1ByaW1p
dGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSh7ICZzdHlsZSwgJnN0eWxlLCBy
ZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVuZGVyZXIgfSwgQ1NTVW5pdFR5cGU6OkNTU19WVywg
MTAwLjApKTsKKyAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNv
bXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKHsgc3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVu
dFN0eWxlKCksIHJlbmRlcmVyIH0sIENTU1VuaXRUeXBlOjpDU1NfVlcsIDEwMC4wKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDdhYjk3YjliNjFmZGUw
ODQ0NTkxYWJlZWZiZjZkNjFmZDM3YjlkNzcuLmMwZThmZWU1MDNmZTdlZmMyM2YzYzhkNmI0NzJi
NTU0MzYyYzdjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0ZDo6b3B0
aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29s
dmVDdXN0b21TdHlsZShjCiAgICAgICAgIC8vIHN0eWxlIHRvIGNhbGN1bGF0ZSBlbSBsZW5ndGhz
LiBTaW5jZSB0aGUgZWxlbWVudCBtaWdodCBub3QgYmUgaW4gYSBkb2N1bWVudCwganVzdCBwYXNz
IG51bGxwdHIKICAgICAgICAgLy8gZm9yIHRoZSByb290IGVsZW1lbnQgc3R5bGUsIHRoZSBwYXJl
bnQgZWxlbWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIgdmlldy4KICAgICAgICAgYXV0byBlbVNp
emUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsK
LSAgICAgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgeyBuZXdTdHlsZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQgfSk7CisgICAgICAgIGludCBwaXhlbHMgPSBlbVNpemUt
PmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgKm5ld1N0eWxl
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH0pOwogICAgICAgICBuZXdTdHlsZS0+c2V0Rmxl
eEJhc2lzKExlbmd0aCB7IHBpeGVscywgTGVuZ3RoVHlwZTo6Rml4ZWQgfSk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMzBjZDM0M2Vh
N2RmOTE2OGNjM2NkZTQ3ZGJlZjhmNzU5ZTg4ZjczMS4uYmYyMjAxMzZjYTIxYjBjNjE4YjA4ZWQy
ZjQ3M2RjNzhlNTBmYjRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbQpAQCAtNzAyLDcgKzcwMiw3IEBAIExlbmd0aEJveCBSZW5kZXJUaGVtZUlPUzo6cG9w
dXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAg
ZmxvYXQgcGFkZGluZyA9IE1lbnVMaXN0QnV0dG9uUGFkZGluZ0FmdGVyOwogICAgIGlmIChzZXR0
aW5ncy5pT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkKCkpIHsKICAgICAgICAgYXV0byBlbVNp
emUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMp
OwotICAgICAgICBwYWRkaW5nID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4w
LCBzdGQ6Om51bGxvcHQpKTsKKyAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0
aDxmbG9hdD4oeyBzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICB9CiAK
ICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFy
dCkgewpAQCAtNzUyLDcgKzc1Miw4IEBAIHN0YXRpYyB2b2lkIGFwcGx5Q29tbW9uQnV0dG9uUGFk
ZGluZ1RvU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlCiAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgIGF1dG8gZW1TaXplID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgwLjUsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRoaXMgZWxlbWVudCdzIHBhcmVudCBzdHlsZSB0byBjYWxjdWxh
dGUgYGVtYCB1bml0cywgc28gaXQncyBva2F5IHRvIHBhc3MgbnVsbHB0ciBmb3IgaXQgaGVyZS4K
LSAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSgmc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCksIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3VtZW50LmZyYW1lKCkt
PnBhZ2Vab29tRmFjdG9yKCkgOiAxLikpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEg
Y29udmVyc2lvbkRhdGEoc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCksIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSk7CisgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxl
bmd0aDxpbnQ+KGNvbnZlcnNpb25EYXRhLmNvcHlXaXRoQWRqdXN0ZWRab29tKGRvY3VtZW50LnJl
bmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3VtZW50LmZyYW1lKCktPnBhZ2Vab29t
RmFjdG9yKCkgOiAxLikpOwogICAgIHN0eWxlLnNldFBhZGRpbmdCb3goTGVuZ3RoQm94KDAsIHBp
eGVscywgMCwgcGl4ZWxzKSk7CiB9CiAKQEAgLTEyODUsNyArMTI4Niw3IEBAIHZvaWQgUmVuZGVy
VGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxl
bWVudCogZWxlbWVuCiAgICAgLy8gU2luY2UgdGhlIGVsZW1lbnQgbWlnaHQgbm90IGJlIGluIGEg
ZG9jdW1lbnQsIGp1c3QgcGFzcyBudWxscHRyIGZvciB0aGUgcm9vdCBlbGVtZW50IHN0eWxlLAog
ICAgIC8vIHRoZSBwYXJlbnQgZWxlbWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIgdmlldy4KICAg
ICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMS4wLCBDU1NVbml0VHlw
ZTo6Q1NTX0VNUyk7Ci0gICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+
KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoJnN0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCkpOworICAgIGludCBwaXhlbHMgPSBlbVNpemUtPmNvbXB1
dGVMZW5ndGg8aW50Pih7IHN0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH0pOwogICAg
IHN0eWxlLnNldFBhZGRpbmdCb3goTGVuZ3RoQm94KDAsIHBpeGVscywgMCwgcGl4ZWxzKSk7CiAK
ICAgICBpZiAoIWVsZW1lbnQpCkBAIC0yODg4LDcgKzI4ODksNyBAQCB2b2lkIFJlbmRlclRoZW1l
SU9TOjpwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnNXaXRoRm9ybUNvbnRyb2xSZWZyZXNo
KGNvbnN0CiAgICAgfQogCiAgICAgYXV0byBlbVNpemUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOwotICAgIGF1dG8gZW1QaXhlbHMgPSBlbVNp
emUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoJnN0eWxl
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCkpOworICAgIGF1
dG8gZW1QaXhlbHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KHsgc3R5bGUsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIgfSk7CiAgICAgYXV0byBnbHlwaFNjYWxlID0gMC42NWYgKiBl
bVBpeGVscyAvIGdseXBoU2l6ZS53aWR0aCgpOwogICAgIGdseXBoU2l6ZSA9IGdseXBoU2NhbGUg
KiBnbHlwaFNpemU7CiAKQEAgLTI5MTYsNyArMjkxNyw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6
OmFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnRTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvCiAgICAgY29uc3RleHByIGludCBzZWFyY2hGaWVsZERlY29yYXRpb25FbVNpemUgPSAxOwog
ICAgIGNvbnN0ZXhwciBpbnQgc2VhcmNoRmllbGREZWNvcmF0aW9uTWFyZ2luID0gNDsKIAotICAg
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnN0eWxlLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCk7CisgICAgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0cik7CiAKICAgICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc2Vh
cmNoRmllbGREZWNvcmF0aW9uRW1TaXplLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7CiAgICAgYXV0
byBzaXplID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0Pihjb252ZXJzaW9uRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKaW5k
ZXggNWE3OTA5NTJkZjM4NjIxNDBhY2Q2NjNhOTQxZmFmODc4MmU2MTgwZC4uYzQ1YjVhYzllM2Yy
OTZlNWU5Mjk2ZmEzNDE1YTkzYjZjZDkyZDkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNzQsNyArNzQsNyBAQCBhdXRvIENv
bnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgRmlsdGVyZWRDb250
YWluZXJRdWVyeSYgZmlsdAogICAgICAgICBhdXRvJiB2aWV3ID0gcmVuZGVyZXItPnZpZXcoKTsK
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHJlbmRlcmVyLAotICAgICAgICAgICAgQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7ICZyZW5kZXJlci0+c3R5bGUoKSwgJnZpZXcuc3R5bGUo
KSwgbnVsbHB0ciwgJnZpZXcsIDEgfQorICAgICAgICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSB7IHJlbmRlcmVyLT5zdHlsZSgpLCAmdmlldy5zdHlsZSgpLCBudWxscHRyLCAmdmlldyB9
CiAgICAgICAgIH07CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxk
ZXJDb252ZXJ0ZXIuaAppbmRleCA0NTMxNDFhMTU3OGZmNjAwNDM3NmY2MGYxNjgyNWVmYzFmYmMw
YWY3Li5hY2JiZjVmOWE3ZTFjNzJkOWNjYWI4NTAyM2Q3ZWZkNGQyMTdiMmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTU2NSw3ICsxNTY1
LDcgQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBCdWlsZGVyQ29udmVydGVyOjpjb252
ZXJ0TGluZUhlaWdodChCdWlsZGVyU3RhdGUmIGIKICAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxl
Ojppbml0aWFsTGluZUhlaWdodCgpOwogCiAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzTGVuZ3Ro
KCkpIHsKLSAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGJ1aWxkZXJTdGF0ZS5jc3NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb21BbmRQcm9wZXJ0eVRvQ29t
cHV0ZSh6b29tV2l0aFRleHRab29tRmFjdG9yKGJ1aWxkZXJTdGF0ZSksIENTU1Byb3BlcnR5TGlu
ZUhlaWdodCk7CisgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVyU3RhdGUuY3Nz
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlGb3JMaW5lSGVpZ2h0KHpvb21XaXRoVGV4dFpv
b21GYWN0b3IoYnVpbGRlclN0YXRlKSk7CiAgICAgICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRp
dmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwogICAgICAgICBp
ZiAobXVsdGlwbGllciAhPSAxLmYpCiAgICAgICAgICAgICBsZW5ndGggPSBMZW5ndGgobGVuZ3Ro
LnZhbHVlKCkgKiBtdWx0aXBsaWVyLCBMZW5ndGhUeXBlOjpGaXhlZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oCmluZGV4IGU4ODRlNWJjZmFjNWRkNDg1MDlkZWQy
MzllZTJlZjY2YWYzZTE0ZWQuLjY3Nzg0ZDZkMDk2NmNhZjI4MDg1YzQzZDVjOTFhOGQ1M2FmNjQz
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oCkBAIC0yNTAs
MTIgKzI1MCwxMiBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlWm9vbShC
dWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgQ1NTVmFsdWUmCiBpbmxpbmUgTGVuZ3RoIEJ1aWxk
ZXJDdXN0b206Om1tTGVuZ3RoKGRvdWJsZSBtbSkKIHsKICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFs
dWU+IHZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobW0sIENTU1VuaXRUeXBlOjpDU1Nf
TU0pKTsKLSAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7CisgICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVM
ZW5ndGg8TGVuZ3RoPih7IH0pOwogfQogaW5saW5lIExlbmd0aCBCdWlsZGVyQ3VzdG9tOjppbmNo
TGVuZ3RoKGRvdWJsZSBpbmNoKQogewogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShpbmNoLCBDU1NVbml0VHlwZTo6Q1NTX0lOKSk7Ci0g
ICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCkpOworICAgIHJldHVybiB2YWx1ZS5nZXQoKS5jb21wdXRlTGVuZ3RoPExl
bmd0aD4oeyB9KTsKIH0KIGJvb2wgQnVpbGRlckN1c3RvbTo6Z2V0UGFnZVNpemVGcm9tTmFtZShD
U1NQcmltaXRpdmVWYWx1ZSogcGFnZVNpemVOYW1lLCBDU1NQcmltaXRpdmVWYWx1ZSogcGFnZU9y
aWVudGF0aW9uLCBMZW5ndGgmIHdpZHRoLCBMZW5ndGgmIGhlaWdodCkKIHsKQEAgLTE4MzQsMTMg
KzE4MzQsMTMgQEAgaW5saW5lIHZvaWQgQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUZvbnRTaXpl
KEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlLCBDU1NWYWwKICAgICB9IGVsc2UgewogICAgICAg
ICBmb250RGVzY3JpcHRpb24uc2V0SXNBYnNvbHV0ZVNpemUocGFyZW50SXNBYnNvbHV0ZVNpemUg
fHwgIShwcmltaXRpdmVWYWx1ZS5pc1BlcmNlbnRhZ2UoKSB8fCBwcmltaXRpdmVWYWx1ZS5pc0Zv
bnRSZWxhdGl2ZUxlbmd0aCgpKSk7CiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0
aCgpKSB7Ci0gICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25E
YXRhIHsgJmJ1aWxkZXJTdGF0ZS5wYXJlbnRTdHlsZSgpLCBidWlsZGVyU3RhdGUucm9vdEVsZW1l
bnRTdHlsZSgpLCAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5kb2N1
bWVudCgpLnJlbmRlclZpZXcoKSwgMS4wZiwgQ1NTUHJvcGVydHlGb250U2l6ZSwgJmJ1aWxkZXJT
dGF0ZS5zdHlsZSgpIH07CisgICAgICAgICAgICAvLyBmb250LXNpemUgaXMgcmVzb2x2ZWQgYWdh
aW5zdCB0aGUgcGFyZW50IHN0eWxlIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgc3R5bGUuCisgICAg
ICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEoKS5jb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUoKTsKICAgICAgICAg
ICAgIHNpemUgPSBwcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3RoPGZsb2F0Pihjb252ZXJzaW9u
RGF0YSk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUuaXNQZXJjZW50YWdlKCkp
CiAgICAgICAgICAgICBzaXplID0gKHByaW1pdGl2ZVZhbHVlLmZsb2F0VmFsdWUoKSAqIHBhcmVu
dFNpemUpIC8gMTAwLjBmOwogICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5pc0NhbGN1
bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogV2h5
IGRvZXMgdGhpcyBuZWVkIGEgZGlmZmVyZW50IHJvb3Qgc3R5bGUgdGhhbiB0aGUgaXNMZW5ndGgg
Y2FzZSBhYm92ZT8KLSAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVy
c2lvbkRhdGEgeyAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5jc3NU
b0xlbmd0aENvbnZlcnNpb25EYXRhKCkucm9vdFN0eWxlKCksICZidWlsZGVyU3RhdGUucGFyZW50
U3R5bGUoKSwgYnVpbGRlclN0YXRlLmRvY3VtZW50KCkucmVuZGVyVmlldygpLCAxLjBmLCBDU1NQ
cm9wZXJ0eUZvbnRTaXplLCAmYnVpbGRlclN0YXRlLnN0eWxlKCkgfTsKKyAgICAgICAgICAgIGF1
dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVyU3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSgpLmNvcHlGb3JGb250U2l6ZVdpdGhQYXJlbnRTdHlsZSgpOwogICAgICAgICAgICAgc2l6ZSA9
IHByaW1pdGl2ZVZhbHVlLmNzc0NhbGNWYWx1ZSgpLT5jcmVhdGVDYWxjdWxhdGlvblZhbHVlKGNv
bnZlcnNpb25EYXRhKS0+ZXZhbHVhdGUocGFyZW50U2l6ZSk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUu
Y3BwCmluZGV4IDBjMTZmNDNlMDQ1M2U3YTBkOWM4MTVjM2FiM2RmNTAxMDQzNzVhODkuLjY3Y2U5
OTk1OWIzNjU5OWVmZDI1MGEyMjY0ODA4ZDBjMWFjZDViMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgQnVpbGRlclN0YXRl
OjpCdWlsZGVyU3RhdGUoQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyU3R5bGUmIHN0eWxlLCBCdWls
ZGVyQ29udGV4dCYKICAgICAsIG1fc3R5bGVNYXAoKnRoaXMpCiAgICAgLCBtX3N0eWxlKHN0eWxl
KQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCi0gICAgLCBtX2Nzc1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoJnN0eWxlLCByb290RWxlbWVudFN0eWxlKCksICZwYXJlbnRTdHlsZSgp
LCBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKKyAgICAsIG1fY3NzVG9MZW5ndGhDb252ZXJzaW9u
RGF0YShzdHlsZSwgbV9jb250ZXh0KQogewogfQogCg==
</data>
<flag name="commit-queue"
          id="482645"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454862</attachid>
            <date>2022-03-16 10:45:00 -0700</date>
            <delta_ts>2022-03-16 11:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316194458.patch</filename>
            <type>text/plain</type>
            <size>22010</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uM2YzZjAxYzZhNzZlNmY4NDllMDFmM2E1ODQ4NDkx
Yzc1ZGQyNzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGE6OmNvcHlGb3JGb250U2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFkanVzdGVkWm9vbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yTGluZUhlaWdodCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGE6OmNvcHlXaXRoQWRqdXN0ZWRab29tQW5kUHJvcGVydHlUb0NvbXB1
dGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjpjb21wdXRlTGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjplZmZlY3RpdmVTaXplRGVmYXVsdFZh
bHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29sdmVDdXN0
b21TdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblBh
cnRTdHlsZSBjb25zdCk6CisgICAgICAgICogc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpz
ZWxlY3RDb250YWluZXIgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZl
cnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFNpemUp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpCdWlsZGVyU3RhdGU6OkJ1aWxkZXJTdGF0ZSk6CisKIDIwMjItMDMtMTUgIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyODI3
MzcpOiBgdGV4dC1zaGFkb3dgIGlzIGNsaXBwZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcAppbmRleCAwMWRmYTI4OWY5ODM0NzM2ODZiMjM5ODlmYjdlNmZkMzE5ODc3OTVl
Li4zNDQwYzJiOGNhMGJjNzNmMTc3OWFmMDBkNzExOWNjOGM4MjMxMzRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC04ODQsNyArODg0LDcgQEAgUmVmPEdyYWRp
ZW50PiBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gcmVuZGVyZXIu
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgcm9vdFN0eWxlID0gZG9jdW1l
bnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0eWxlLCByZW5kZXJlci5w
YXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVy
ZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CiAKICAgICBGbG9hdFBvaW50IGZp
cnN0UG9pbnQ7CiAgICAgRmxvYXRQb2ludCBzZWNvbmRQb2ludDsKQEAgLTExNDIsNyArMTE0Miw3
IEBAIFJlZjxHcmFkaWVudD4gQ1NTUmFkaWFsR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3JhZGllbnQo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVu
dCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpCiAgICAgICAgIHJvb3RT
dHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKIAotICAgIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVyLnN0eWxlKCksIHJvb3RTdHls
ZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXcoKSk7CisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5kZXJlci5zdHlsZSgpLCByb290
U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOwogCiAgICAg
RmxvYXRQb2ludCBmaXJzdFBvaW50ID0gY29tcHV0ZUVuZFBvaW50KGZpcnN0WCgpLCBmaXJzdFko
KSwgY29udmVyc2lvbkRhdGEsIHNpemUpOwogICAgIGlmICghZmlyc3RYKCkpCkBAIC0xMzM1LDcg
KzEzMzUsNyBAQCBSZWY8R3JhZGllbnQ+IENTU0NvbmljR3JhZGllbnRWYWx1ZTo6Y3JlYXRlR3Jh
ZGllbnQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbgogICAgIGlmIChhdXRvKiBkb2N1bWVu
dEVsZW1lbnQgPSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAg
ICByb290U3R5bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCBy
b290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAg
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
IAogICAgIEZsb2F0UG9pbnQgY2VudGVyUG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RYKCks
IGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAppbmRl
eCBiMDE1ZjFhZTdhMDc4NjY3YzVhNzVkNjRkNWY4OGE0ZjliMThkYTI4Li45NGJjYzYzYTZiYThk
ZTI4ZjQ4Yjg5YWQ1NDZjZjMwNGVjNmUxYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCkBAIC0zNCw5ICszNCwyOCBAQAogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiByb290
U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyVmlldyog
cmVuZGVyVmlldykKKyAgICA6IG1fc3R5bGUoJnN0eWxlKQorICAgICwgbV9yb290U3R5bGUocm9v
dFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKKyAgICAsIG1fcmVuZGVy
VmlldyhyZW5kZXJWaWV3KQorICAgICwgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBTdHlsZTo6QnVpbGRlckNvbnRleHQmIGJ1aWxkZXJDb250ZXh0KQor
ICAgIDogbV9zdHlsZSgmc3R5bGUpCisgICAgLCBtX3Jvb3RTdHlsZShidWlsZGVyQ29udGV4dC5y
b290RWxlbWVudFN0eWxlKQorICAgICwgbV9wYXJlbnRTdHlsZSgmYnVpbGRlckNvbnRleHQucGFy
ZW50U3R5bGUpCisgICAgLCBtX3JlbmRlclZpZXcoYnVpbGRlckNvbnRleHQuZG9jdW1lbnQtPnJl
bmRlclZpZXcoKSkKKyAgICAsIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUoY29u
c3RfY2FzdDxSZW5kZXJTdHlsZSo+KG1fc3R5bGUpKQoreworfQorCiBmbG9hdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tKCkgY29uc3QKIHsKICAgICBpZiAoIW1fem9vbSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IGU1YzJi
NjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYxNDAuLjA3ZWQwMWQ2MzRmOTEwZTMzOGQz
NTdkYWI5M2QyYTdmMWQ0NzRmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaApAQCAtNDAsMjkgKzQwLDE0IEBAIGNsYXNzIEZsb2F0U2l6ZTsK
IGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKIAorbmFtZXNwYWNlIFN0eWxl
IHsKK3N0cnVjdCBCdWlsZGVyQ29udGV4dDsKK307CisKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEgewogcHVibGljOgotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBS
ZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIGZs
b2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUg
PSBzdGQ6Om51bGxvcHQsIFJlbmRlclN0eWxlKiB2aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25T
dHlsZSA9IG51bGxwdHIpCi0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jv
b3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkK
LSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKHZpZXdwb3J0RGVw
ZW5kZW5jeURldGVjdGlvblN0eWxlID8gdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUg
OiBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4oc3R5bGUpKQotICAgICAgICAsIG1fcmVuZGVyVmll
dyhyZW5kZXJWaWV3KQotICAgICAgICAsIG1fem9vbSh6b29tKQotICAgICAgICAsIG1fcHJvcGVy
dHlUb0NvbXB1dGUocHJvcGVydHlUb0NvbXB1dGUpCi0gICAgewotICAgICAgICBBU1NFUlQoem9v
bSA+IDApOwotICAgIH0KLQotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIHN0ZDo6
b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQp
Ci0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5
bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3Zp
ZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihz
dHlsZSkpCi0gICAgICAgICwgbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCi0gICAgICAgICwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZShwcm9wZXJ0eVRvQ29tcHV0ZSkKLSAgICB7Ci0gICAgfQorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJT
dHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclZpZXcqKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgU3R5bGU6OkJ1aWxkZXJDb250ZXh0Jik7CiAKICAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCkgPSBkZWZhdWx0OwogCkBAIC04MCwyNCArNjUsMzkgQEAgcHVibGljOgog
ICAgIEZsb2F0U2l6ZSBsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAgICAgRmxvYXRTaXpl
IGR5bmFtaWNWaWV3cG9ydEZhY3RvcigpIGNvbnN0OwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCBuZXdab29tKSBjb25zdAorICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhp
cyk7CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9IENTU1Byb3BlcnR5Rm9udFNp
emU7CisgICAgICAgIGNvcHkubV9zdHlsZSA9IHBhcmVudFN0eWxlKCk7CisgICAgICAgIGNvcHku
bV96b29tID0gMS5mOworICAgICAgICByZXR1cm4gY29weTsKKyAgICB9OworCisgICAgQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCB6b29tKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHls
ZSwgbV9yb290U3R5bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgbmV3Wm9vbSwgbV9w
cm9wZXJ0eVRvQ29tcHV0ZSk7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29w
eSgqdGhpcyk7CisgICAgICAgIGNvcHkubV96b29tID0gem9vbTsKKyAgICAgICAgcmV0dXJuIGNv
cHk7CiAgICAgfQogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVz
dGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlKGZsb2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NT
UHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUpIGNvbnN0CisgICAgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSBjb3B5Rm9yTGluZUhlaWdodChmbG9hdCB6b29tKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHlsZSwgbV9yb290U3R5
bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgem9vbSwgcHJvcGVydHlUb0NvbXB1dGUp
OworICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAg
ICBjb3B5Lm1fem9vbSA9IHpvb207CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9
IENTU1Byb3BlcnR5TGluZUhlaWdodDsKKyAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgfQogCiBw
cml2YXRlOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBtX3N0eWxlIHsgbnVsbHB0ciB9OwogICAg
IGNvbnN0IFJlbmRlclN0eWxlKiBtX3Jvb3RTdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSogbV9wYXJlbnRTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBSZW5kZXJTdHlsZSog
bV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25z
dCBSZW5kZXJWaWV3KiBtX3JlbmRlclZpZXcgeyBudWxscHRyIH07CiAgICAgc3RkOjpvcHRpb25h
bDxmbG9hdD4gbV96b29tOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gbV9wcm9w
ZXJ0eVRvQ29tcHV0ZTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFjay4KKyAgICBSZW5k
ZXJTdHlsZSogbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4
UmVhZE9ubHkuY3BwCmluZGV4IDhiMGNlZjU1NTVmMzIyN2NkM2FmY2EzNjgwNjRlZDJhMjhhMGZm
YTcuLmQ4NDQ4YjcwN2RjNzA1ZjRkMGQ5NWJjNTllYTMyYmZkYjdmMzQ1YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIEV4Y2Vw
dGlvbk9yPERPTU1hdHJpeFJlYWRPbmx5OjpBYnN0cmFjdE1hdHJpeD4gRE9NTWF0cml4UmVhZE9u
bHk6OnBhcnNlU3RyaW5nSW50CiAgICAgICAgIHJldHVybiBBYnN0cmFjdE1hdHJpeCB7IH07CiAK
ICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnM7Ci0gICAgaWYgKCF0cmFuc2Zvcm1z
Rm9yVmFsdWUoKnZhbHVlLCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCksIG9wZXJhdGlvbnMp
KQorICAgIGlmICghdHJhbnNmb3Jtc0ZvclZhbHVlKCp2YWx1ZSwgeyB9LCBvcGVyYXRpb25zKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKICAgICBBYnN0cmFj
dE1hdHJpeCBtYXRyaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAKaW5kZXggMzQ1Y2MyNDUzNGJjMDQ1MTg2NzAzNWZhYTAzM2JkZjVjZDA2MDRmNi4uZDk5NDg2
MzAyMzE4Yzc2Zjk2ODNiYTIxYzkxYmJiMjBhMGEzNDQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtOTQ2LDcgKzk0Niw3IEBAIGJvb2wgTWVkaWFR
dWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeUV4cHJlc3Npb24mIGV4cHJl
c3Npb24pIGNvbnN0CiAgICAgZGVmYXVsdFN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCk7CiAg
ICAgCiAgICAgLy8gUGFzcyBgbnVsbHB0cmAgZm9yIGBwYXJlbnRTdHlsZWAgYmVjYXVzZSB3ZSBh
cmUgaW4gdGhlIGNvbnRleHQgb2YgYSBtZWRpYSBxdWVyeS4KLSAgICByZXR1cm4gZnVuY3Rpb24o
ZXhwcmVzc2lvbi52YWx1ZSgpLCB7IG1fc3R5bGUsICZkZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSwgMSwgc3RkOjpudWxsb3B0IH0sICpmcmFtZSwgTm9QcmVmaXgp
OworICAgIHJldHVybiBmdW5jdGlvbihleHByZXNzaW9uLnZhbHVlKCksIHsgKm1fc3R5bGUsICZk
ZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSB9LCAqZnJhbWUsIE5v
UHJlZml4KTsKIH0KIAogYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjptZWRpYUF0dHJpYnV0ZU1h
dGNoZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNw
cAppbmRleCAzNjIxOWYzZWM3ZjE0N2Q0YWZiZjYyMDJlOTQ0MzY5ODFjNjgzYjU0Li5kNmU0OGEy
M2ZmOTdlMGE4YjczNmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcApAQCAtNTEsNyArNTEsNyBA
QCBmbG9hdCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6Y29tcHV0ZUxlbmd0aChkb3VibGUgdmFsdWUs
IENTU1VuaXRUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
IGNvbnZlcnNpb25EYXRhKCZzdHlsZSwgJnN0eWxlLCByZW5kZXJlci0+cGFyZW50U3R5bGUoKSwg
cmVuZGVyZXIpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEo
c3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRlcmVyKTsKICAgICAv
LyBCZWNhdXNlIHdlIGV2YWx1YXRlICJzaXplcyIgYXQgcGFyc2UgdGltZSAoYmVmb3JlIHN0eWxl
IGhhcyBiZWVuIHJlc29sdmVkKSwgdGhlIGZvbnQgbWV0cmljcyB1c2VkIGZvciB0aGVzZSBzcGVj
aWZpYyB1bml0cwogICAgIC8vIGFyZSBub3QgYXZhaWxhYmxlLiBUaGUgZm9udCBzZWxlY3Rvcidz
IGludGVybmFsIGNvbnNpc3RlbmN5IGlzbid0IGd1YXJhbnRlZWQganVzdCB5ZXQsIHNvIHdlIGNh
biBqdXN0IHRlbXBvcmFyaWx5IGNsZWFyCiAgICAgLy8gdGhlIHBvaW50ZXIgdG8gaXQgZm9yIHRo
ZSBkdXJhdGlvbiBvZiB0aGUgdW5pdCBldmFsdWF0aW9uLiBUaGlzIGlzIGFjY2VwdGlibGUgYmVj
YXVzZSB0aGUgc3R5bGUgYWx3YXlzIGNvbWVzIGZyb20gdGhlCkBAIC0xNTcsNyArMTU3LDcgQEAg
dW5zaWduZWQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmVmZmVjdGl2ZVNpemVEZWZhdWx0VmFsdWUo
KQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0eWxl
ID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIGNsYW1wVG88ZmxvYXQ+KENTU1ByaW1p
dGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSh7ICZzdHlsZSwgJnN0eWxlLCBy
ZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVuZGVyZXIgfSwgQ1NTVW5pdFR5cGU6OkNTU19WVywg
MTAwLjApKTsKKyAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNv
bXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKHsgc3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVu
dFN0eWxlKCksIHJlbmRlcmVyIH0sIENTU1VuaXRUeXBlOjpDU1NfVlcsIDEwMC4wKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDdhYjk3YjliNjFmZGUw
ODQ0NTkxYWJlZWZiZjZkNjFmZDM3YjlkNzcuLmMwZThmZWU1MDNmZTdlZmMyM2YzYzhkNmI0NzJi
NTU0MzYyYzdjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0ZDo6b3B0
aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29s
dmVDdXN0b21TdHlsZShjCiAgICAgICAgIC8vIHN0eWxlIHRvIGNhbGN1bGF0ZSBlbSBsZW5ndGhz
LiBTaW5jZSB0aGUgZWxlbWVudCBtaWdodCBub3QgYmUgaW4gYSBkb2N1bWVudCwganVzdCBwYXNz
IG51bGxwdHIKICAgICAgICAgLy8gZm9yIHRoZSByb290IGVsZW1lbnQgc3R5bGUsIHRoZSBwYXJl
bnQgZWxlbWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIgdmlldy4KICAgICAgICAgYXV0byBlbVNp
emUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsK
LSAgICAgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgeyBuZXdTdHlsZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQgfSk7CisgICAgICAgIGludCBwaXhlbHMgPSBlbVNpemUt
PmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgKm5ld1N0eWxl
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH0pOwogICAgICAgICBuZXdTdHlsZS0+c2V0Rmxl
eEJhc2lzKExlbmd0aCB7IHBpeGVscywgTGVuZ3RoVHlwZTo6Rml4ZWQgfSk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMzBjZDM0M2Vh
N2RmOTE2OGNjM2NkZTQ3ZGJlZjhmNzU5ZTg4ZjczMS4uZGUxYmMyMzA5Mzk1N2JkM2YyYmQxMTE5
NGQ2Y2IyYmUyMDEzYzNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbQpAQCAtNzAyLDcgKzcwMiw3IEBAIExlbmd0aEJveCBSZW5kZXJUaGVtZUlPUzo6cG9w
dXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAg
ZmxvYXQgcGFkZGluZyA9IE1lbnVMaXN0QnV0dG9uUGFkZGluZ0FmdGVyOwogICAgIGlmIChzZXR0
aW5ncy5pT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkKCkpIHsKICAgICAgICAgYXV0byBlbVNp
emUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMp
OwotICAgICAgICBwYWRkaW5nID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4w
LCBzdGQ6Om51bGxvcHQpKTsKKyAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0
aDxmbG9hdD4oeyBzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICB9CiAK
ICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFy
dCkgewpAQCAtNzUyLDcgKzc1Miw4IEBAIHN0YXRpYyB2b2lkIGFwcGx5Q29tbW9uQnV0dG9uUGFk
ZGluZ1RvU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlCiAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgIGF1dG8gZW1TaXplID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgwLjUsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRoaXMgZWxlbWVudCdzIHBhcmVudCBzdHlsZSB0byBjYWxjdWxh
dGUgYGVtYCB1bml0cywgc28gaXQncyBva2F5IHRvIHBhc3MgbnVsbHB0ciBmb3IgaXQgaGVyZS4K
LSAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSgmc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCksIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3VtZW50LmZyYW1lKCkt
PnBhZ2Vab29tRmFjdG9yKCkgOiAxLikpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEg
Y29udmVyc2lvbkRhdGEoc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCksIG51bGxwdHIsIGRv
Y3VtZW50LnJlbmRlclZpZXcoKSk7CisgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxl
bmd0aDxpbnQ+KGNvbnZlcnNpb25EYXRhLmNvcHlXaXRoQWRqdXN0ZWRab29tKGRvY3VtZW50LmZy
YW1lKCkgPyBkb2N1bWVudC5mcmFtZSgpLT5wYWdlWm9vbUZhY3RvcigpIDogMS4pKTsKICAgICBz
dHlsZS5zZXRQYWRkaW5nQm94KExlbmd0aEJveCgwLCBwaXhlbHMsIDAsIHBpeGVscykpOwogfQog
CkBAIC0xMjg1LDcgKzEyODYsNyBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RCdXR0b25T
dHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbgogICAgIC8vIFNp
bmNlIHRoZSBlbGVtZW50IG1pZ2h0IG5vdCBiZSBpbiBhIGRvY3VtZW50LCBqdXN0IHBhc3MgbnVs
bHB0ciBmb3IgdGhlIHJvb3QgZWxlbWVudCBzdHlsZSwKICAgICAvLyB0aGUgcGFyZW50IGVsZW1l
bnQgc3R5bGUsIGFuZCB0aGUgcmVuZGVyIHZpZXcuCiAgICAgYXV0byBlbVNpemUgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOwotICAgIGludCBw
aXhlbHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQp
KTsKKyAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGludD4oeyBzdHlsZSwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICBzdHlsZS5zZXRQYWRkaW5nQm94KExl
bmd0aEJveCgwLCBwaXhlbHMsIDAsIHBpeGVscykpOwogCiAgICAgaWYgKCFlbGVtZW50KQpAQCAt
Mjg4OCw3ICsyODg5LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRNZW51TGlzdEJ1dHRv
bkRlY29yYXRpb25zV2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdAogICAgIH0KIAogICAgIGF1
dG8gZW1TaXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxLjAsIENTU1VuaXRUeXBlOjpD
U1NfRU1TKTsKLSAgICBhdXRvIGVtUGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0
PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQpKTsKKyAgICBhdXRvIGVtUGl4ZWxzID0gZW1TaXplLT5j
b21wdXRlTGVuZ3RoPGZsb2F0Pih7IHN0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH0p
OwogICAgIGF1dG8gZ2x5cGhTY2FsZSA9IDAuNjVmICogZW1QaXhlbHMgLyBnbHlwaFNpemUud2lk
dGgoKTsKICAgICBnbHlwaFNpemUgPSBnbHlwaFNjYWxlICogZ2x5cGhTaXplOwogCkBAIC0yOTE2
LDcgKzI5MTcsNyBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RTZWFyY2hGaWVsZERlY29y
YXRpb25QYXJ0U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjbwogICAgIGNvbnN0ZXhwciBpbnQg
c2VhcmNoRmllbGREZWNvcmF0aW9uRW1TaXplID0gMTsKICAgICBjb25zdGV4cHIgaW50IHNlYXJj
aEZpZWxkRGVjb3JhdGlvbk1hcmdpbiA9IDQ7CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhIGNvbnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4w
LCBzdGQ6Om51bGxvcHQpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lv
bkRhdGEoc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgYXV0byBlbVNp
emUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHNlYXJjaEZpZWxkRGVjb3JhdGlvbkVtU2l6
ZSwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOwogICAgIGF1dG8gc2l6ZSA9IGVtU2l6ZS0+Y29tcHV0
ZUxlbmd0aDxmbG9hdD4oY29udmVyc2lvbkRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDVhNzkwOTUyZGYzODYyMTQwYWNk
NjYzYTk0MWZhZjg3ODJlNjE4MGQuLmM0NWI1YWM5ZTNmMjk2ZTVlOTI5NmZhMzQxNWE5M2I2Y2Q5
MmQ5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZh
bHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1
YXRvci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6
c2VsZWN0Q29udGFpbmVyKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmIGZpbHQKICAgICAg
ICAgYXV0byYgdmlldyA9IHJlbmRlcmVyLT52aWV3KCk7CiAgICAgICAgIHJldHVybiB7CiAgICAg
ICAgICAgICByZW5kZXJlciwKLSAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEg
eyAmcmVuZGVyZXItPnN0eWxlKCksICZ2aWV3LnN0eWxlKCksIG51bGxwdHIsICZ2aWV3LCAxIH0K
KyAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgeyByZW5kZXJlci0+c3R5bGUo
KSwgJnZpZXcuc3R5bGUoKSwgbnVsbHB0ciwgJnZpZXcgfQogICAgICAgICB9OwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggNDUz
MTQxYTE1NzhmZjYwMDQzNzZmNjBmMTY4MjVlZmMxZmJjMGFmNy4uYWNiYmY1ZjlhN2UxYzcyZDlj
Y2FiODUwMjNkN2VmZDRkMjE3YjJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyQ29udmVydGVyLmgKQEAgLTE1NjUsNyArMTU2NSw3IEBAIGlubGluZSBzdGQ6Om9wdGlv
bmFsPExlbmd0aD4gQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydExpbmVIZWlnaHQoQnVpbGRlclN0
YXRlJiBiCiAgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKTsK
IAogICAgIGlmIChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gY29u
dmVyc2lvbkRhdGEgPSBidWlsZGVyU3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNv
cHlXaXRoQWRqdXN0ZWRab29tQW5kUHJvcGVydHlUb0NvbXB1dGUoem9vbVdpdGhUZXh0Wm9vbUZh
Y3RvcihidWlsZGVyU3RhdGUpLCBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQpOworICAgICAgICBhdXRv
IGNvbnZlcnNpb25EYXRhID0gYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEo
KS5jb3B5Rm9yTGluZUhlaWdodCh6b29tV2l0aFRleHRab29tRmFjdG9yKGJ1aWxkZXJTdGF0ZSkp
OwogICAgICAgICBMZW5ndGggbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKICAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMS5mKQog
ICAgICAgICAgICAgbGVuZ3RoID0gTGVuZ3RoKGxlbmd0aC52YWx1ZSgpICogbXVsdGlwbGllciwg
TGVuZ3RoVHlwZTo6Rml4ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVCdWlsZGVyQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0
b20uaAppbmRleCBlODg0ZTViY2ZhYzVkZDQ4NTA5ZGVkMjM5ZWUyZWY2NmFmM2UxNGVkLi42Nzc4
NGQ2ZDA5NjZjYWYyODA4NWM0M2Q1YzkxYThkNTNhZjY0M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaApAQCAtMjUwLDEyICsyNTAsMTIgQEAgaW5saW5lIHZv
aWQgQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZVpvb20oQnVpbGRlclN0YXRlJiBidWlsZGVyU3Rh
dGUsIENTU1ZhbHVlJgogaW5saW5lIExlbmd0aCBCdWlsZGVyQ3VzdG9tOjptbUxlbmd0aChkb3Vi
bGUgbW0pCiB7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKG1tLCBDU1NVbml0VHlwZTo6Q1NTX01NKSk7Ci0gICAgcmV0dXJuIHZhbHVl
LmdldCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkp
OworICAgIHJldHVybiB2YWx1ZS5nZXQoKS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oeyB9KTsKIH0K
IGlubGluZSBMZW5ndGggQnVpbGRlckN1c3RvbTo6aW5jaExlbmd0aChkb3VibGUgaW5jaCkKIHsK
ICAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUoaW5jaCwgQ1NTVW5pdFR5cGU6OkNTU19JTikpOwotICAgIHJldHVybiB2YWx1ZS5nZXQoKS5j
b21wdXRlTGVuZ3RoPExlbmd0aD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpKTsKKyAgICBy
ZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KHsgfSk7CiB9CiBib29sIEJ1
aWxkZXJDdXN0b206OmdldFBhZ2VTaXplRnJvbU5hbWUoQ1NTUHJpbWl0aXZlVmFsdWUqIHBhZ2VT
aXplTmFtZSwgQ1NTUHJpbWl0aXZlVmFsdWUqIHBhZ2VPcmllbnRhdGlvbiwgTGVuZ3RoJiB3aWR0
aCwgTGVuZ3RoJiBoZWlnaHQpCiB7CkBAIC0xODM0LDEzICsxODM0LDEzIEBAIGlubGluZSB2b2lk
IEJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVGb250U2l6ZShCdWlsZGVyU3RhdGUmIGJ1aWxkZXJT
dGF0ZSwgQ1NTVmFsCiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldElz
QWJzb2x1dGVTaXplKHBhcmVudElzQWJzb2x1dGVTaXplIHx8ICEocHJpbWl0aXZlVmFsdWUuaXNQ
ZXJjZW50YWdlKCkgfHwgcHJpbWl0aXZlVmFsdWUuaXNGb250UmVsYXRpdmVMZW5ndGgoKSkpOwog
ICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNMZW5ndGgoKSkgewotICAgICAgICAgICAgQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSB7ICZidWlsZGVyU3RhdGUucGFy
ZW50U3R5bGUoKSwgYnVpbGRlclN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgJmJ1aWxkZXJTdGF0
ZS5wYXJlbnRTdHlsZSgpLCBidWlsZGVyU3RhdGUuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCksIDEu
MGYsIENTU1Byb3BlcnR5Rm9udFNpemUsICZidWlsZGVyU3RhdGUuc3R5bGUoKSB9OworICAgICAg
ICAgICAgLy8gZm9udC1zaXplIGlzIHJlc29sdmVkIGFnYWluc3QgdGhlIHBhcmVudCBzdHlsZSBp
bnN0ZWFkIG9mIHRoZSBjdXJyZW50IHN0eWxlLgorICAgICAgICAgICAgYXV0byBjb252ZXJzaW9u
RGF0YSA9IGJ1aWxkZXJTdGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weUZvckZv
bnRTaXplV2l0aFBhcmVudFN0eWxlKCk7CiAgICAgICAgICAgICBzaXplID0gcHJpbWl0aXZlVmFs
dWUuY29tcHV0ZUxlbmd0aDxmbG9hdD4oY29udmVyc2lvbkRhdGEpOwogICAgICAgICB9IGVsc2Ug
aWYgKHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgpKQogICAgICAgICAgICAgc2l6ZSA9IChw
cmltaXRpdmVWYWx1ZS5mbG9hdFZhbHVlKCkgKiBwYXJlbnRTaXplKSAvIDEwMC4wZjsKICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUuaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5n
dGgoKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgbmVlZCBhIGRpZmZl
cmVudCByb290IHN0eWxlIHRoYW4gdGhlIGlzTGVuZ3RoIGNhc2UgYWJvdmU/Ci0gICAgICAgICAg
ICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhIHsgJmJ1aWxkZXJTdGF0
ZS5wYXJlbnRTdHlsZSgpLCBidWlsZGVyU3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgp
LnJvb3RTdHlsZSgpLCAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5k
b2N1bWVudCgpLnJlbmRlclZpZXcoKSwgMS4wZiwgQ1NTUHJvcGVydHlGb250U2l6ZSwgJmJ1aWxk
ZXJTdGF0ZS5zdHlsZSgpIH07CisgICAgICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gYnVp
bGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5Rm9yRm9udFNpemVXaXRo
UGFyZW50U3R5bGUoKTsKICAgICAgICAgICAgIHNpemUgPSBwcmltaXRpdmVWYWx1ZS5jc3NDYWxj
VmFsdWUoKS0+Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9uRGF0YSktPmV2YWx1YXRl
KHBhcmVudFNpemUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcAppbmRleCAwYzE2ZjQzZTA0NTNl
N2EwZDljODE1YzNhYjNkZjUwMTA0Mzc1YTg5Li42N2NlOTk5NTliMzY1OTllZmQyNTBhMjI2NDgw
OGQwYzFhY2Q1YjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxk
ZXJTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUu
Y3BwCkBAIC02Myw3ICs2Myw3IEBAIEJ1aWxkZXJTdGF0ZTo6QnVpbGRlclN0YXRlKEJ1aWxkZXIm
IGJ1aWxkZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwgQnVpbGRlckNvbnRleHQmCiAgICAgLCBtX3N0
eWxlTWFwKCp0aGlzKQogICAgICwgbV9zdHlsZShzdHlsZSkKICAgICAsIG1fY29udGV4dChXVEZN
b3ZlKGNvbnRleHQpKQotICAgICwgbV9jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCZzdHlsZSwg
cm9vdEVsZW1lbnRTdHlsZSgpLCAmcGFyZW50U3R5bGUoKSwgZG9jdW1lbnQoKS5yZW5kZXJWaWV3
KCkpCisgICAgLCBtX2Nzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoc3R5bGUsIG1fY29udGV4dCkK
IHsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454874</attachid>
            <date>2022-03-16 11:56:50 -0700</date>
            <delta_ts>2022-03-16 12:00:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316205649.patch</filename>
            <type>text/plain</type>
            <size>23535</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uMTc0YTk2ZDM0NWJkNDZjMGU1MGUzOWVlMjA1NmZh
ZDcwYTY5MTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YTo6em9vbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Y29weVdpdGhBZGp1
c3RlZFpvb20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YTo6Y29weUZvckxpbmVIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFk
anVzdGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWF0cml4
UmVhZE9ubHk6OnBhcnNlU3RyaW5nSW50b0Fic3RyYWN0TWF0cml4KToKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
Y29tcHV0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
ZWZmZWN0aXZlU2l6ZURlZmF1bHRWYWx1ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sSW5u
ZXJFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cElu
dGVybmFsUGFkZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjphcHBseUNvbW1vbkJ1
dHRvblBhZGRpbmdUb1N0eWxlKToKKworICAgICAgICBTZXR0aW5nIHRoZSB6b29tIHRvIGEgd2Vp
cmQgdmFsdWUgaGVyZSBkb2VzIG5vdGhpbmcsIGVtcyB1bml0IHJlc29sdXRpb24gaWdub3JlcyBp
dC4KKyAgICAgICAgSnVzdCBkb24ndCBkbyBpdC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnNXaXRoRm9ybUNvbnRy
b2xSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphZGp1c3RTZWFy
Y2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDb250YWlu
ZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0TGluZUhlaWdodCk6CisgICAgICAgICogc3R5bGUvU3R5bGVC
dWlsZGVyQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckN1c3RvbTo6
bW1MZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmluY2hM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmFwcGx5VmFs
dWVGb250U2l6ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJTdGF0ZTo6QnVpbGRlclN0YXRlKToKKwogMjAy
Mi0wMy0xNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI4MjczNyk6IGB0ZXh0LXNoYWRvd2AgaXMgY2xpcHBlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IDAxZGZhMjg5Zjk4MzQ3MzY4NmIyMzk4OWZiN2U2
ZmQzMTk4Nzc5NWUuLjM0NDBjMmI4Y2EwYmM3M2YxNzc5YWYwMGQ3MTE5Y2M4YzgyMzEzNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTg4NCw3ICs4ODQsNyBA
QCBSZWY8R3JhZGllbnQ+IENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjbwogICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1lbnQg
PSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICByb290U3R5
bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCByb290U3R5bGUs
IHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0
eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKIAogICAgIEZs
b2F0UG9pbnQgZmlyc3RQb2ludDsKICAgICBGbG9hdFBvaW50IHNlY29uZFBvaW50OwpAQCAtMTE0
Miw3ICsxMTQyLDcgQEAgUmVmPEdyYWRpZW50PiBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVh
dGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9j
dW1lbnRFbGVtZW50ID0gcmVuZGVyZXIuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAg
ICAgICAgcm9vdFN0eWxlID0gZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
KyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0
eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXco
KSk7CiAKICAgICBGbG9hdFBvaW50IGZpcnN0UG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RY
KCksIGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkK
QEAgLTEzMzUsNyArMTMzNSw3IEBAIFJlZjxHcmFkaWVudD4gQ1NTQ29uaWNHcmFkaWVudFZhbHVl
OjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uCiAgICAgaWYgKGF1
dG8qIGRvY3VtZW50RWxlbWVudCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpCiAgICAgICAgIHJvb3RTdHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsK
IAotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVy
LnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZp
ZXcoKSk7CisgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5k
ZXJlci5zdHlsZSgpLCByb290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJl
ci52aWV3KCkpOwogCiAgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9IGNvbXB1dGVFbmRQb2lu
dChmaXJzdFgoKSwgZmlyc3RZKCksIGNvbnZlcnNpb25EYXRhLCBzaXplKTsKICAgICBpZiAoIWZp
cnN0WCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwCmluZGV4IGIwMTVmMWFlN2EwNzg2NjdjNWE3NWQ2NGQ1Zjg4YTRmOWIxOGRhMjguLmJi
YzUzNjg4NWRlYjRjYjk1ODlmYjg0M2M4ZTE5OGMyYjA0MzA5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTM0LDE0ICszNCwy
OCBAQAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZmxvYXQgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
em9vbSgpIGNvbnN0CitDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgU3R5bGU6OkJ1aWxkZXJD
b250ZXh0JiBidWlsZGVyQ29udGV4dCkKKyAgICA6IG1fc3R5bGUoJnN0eWxlKQorICAgICwgbV9y
b290U3R5bGUoYnVpbGRlckNvbnRleHQucm9vdEVsZW1lbnRTdHlsZSkKKyAgICAsIG1fcGFyZW50
U3R5bGUoJmJ1aWxkZXJDb250ZXh0LnBhcmVudFN0eWxlKQorICAgICwgbV9yZW5kZXJWaWV3KGJ1
aWxkZXJDb250ZXh0LmRvY3VtZW50LT5yZW5kZXJWaWV3KCkpCisgICAgLCBtX3pvb20oc3R5bGUu
ZWZmZWN0aXZlWm9vbSgpKQorICAgICwgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCisgICAgOiBtX3N0
eWxlKCZzdHlsZSkKKyAgICAsIG1fcm9vdFN0eWxlKHJvb3RTdHlsZSkKKyAgICAsIG1fcGFyZW50
U3R5bGUocGFyZW50U3R5bGUpCisgICAgLCBtX3JlbmRlclZpZXcocmVuZGVyVmlldykKKyAgICAs
IG1fem9vbSgxLmYpCisgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNv
bnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihtX3N0eWxlKSkKIHsKLSAgICBpZiAoIW1fem9vbSkKLSAg
ICAgICAgcmV0dXJuIG1fc3R5bGUgPyBtX3N0eWxlLT5lZmZlY3RpdmVab29tKCkgOiAxOwotICAg
IHJldHVybiAqbV96b29tOwogfQogCiBGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YTo6ZGVmYXVsdFZpZXdwb3J0RmFjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCmluZGV4IGU1YzJiNjJjNTJlYzIxYTM2NTI5ODAx
YzdjZDQ4NmFmYmM5NTYxNDAuLjg5MzY5MjExMDA2MzUwNGNhNTY2NjQ4OTY3YmExZmIxMTI4MTMx
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEu
aApAQCAtNDAsMzYgKzQwLDIzIEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIFJlbmRlclN0eWxl
OwogY2xhc3MgUmVuZGVyVmlldzsKIAorbmFtZXNwYWNlIFN0eWxlIHsKK3N0cnVjdCBCdWlsZGVy
Q29udGV4dDsKK307CisKIGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgewogcHVibGlj
OgotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50
U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIGZsb2F0IHpvb20sIHN0ZDo6b3B0
aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQsIFJl
bmRlclN0eWxlKiB2aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSA9IG51bGxwdHIpCi0g
ICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5bGUp
Ci0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKHZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0
eWxlID8gdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUgOiBjb25zdF9jYXN0PFJlbmRl
clN0eWxlKj4oc3R5bGUpKQotICAgICAgICAsIG1fcmVuZGVyVmlldyhyZW5kZXJWaWV3KQotICAg
ICAgICAsIG1fem9vbSh6b29tKQotICAgICAgICAsIG1fcHJvcGVydHlUb0NvbXB1dGUocHJvcGVy
dHlUb0NvbXB1dGUpCi0gICAgewotICAgICAgICBBU1NFUlQoem9vbSA+IDApOwotICAgIH0KLQot
ICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBj
b25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5
bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcsIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVy
dHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQpCi0gICAgICAgIDogbV9zdHls
ZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9w
YXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURl
dGVjdGlvblN0eWxlKGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihzdHlsZSkpCi0gICAgICAgICwg
bV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCi0gICAgICAgICwgbV9wcm9wZXJ0eVRvQ29tcHV0ZShw
cm9wZXJ0eVRvQ29tcHV0ZSkKLSAgICB7Ci0gICAgfQorICAgIC8vIFRoaXMgaXMgdXNlZCBkdXJp
bmcgc3R5bGUgYnVpbGRpbmcuIFRoZSAnem9vbScgcHJvcGVydHkgaXMgdGFrZW4gaW50byBhY2Nv
dW50LgorICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmLCBj
b25zdCBTdHlsZTo6QnVpbGRlckNvbnRleHQmKTsKKyAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGln
bm9yZXMgdGhlIGB6b29tYCBwcm9wZXJ0eS4KKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBjb25zdCBSZW5kZXJWaWV3Kik7CiAKICAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhKCkgPSBkZWZhdWx0OwogCiAgICAgY29uc3QgUmVuZGVyU3R5
bGUqIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZTsgfQogICAgIGNvbnN0IFJlbmRlclN0
eWxlKiByb290U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RTdHlsZTsgfQogICAgIGNvbnN0
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50U3R5bGU7
IH0KLSAgICBmbG9hdCB6b29tKCkgY29uc3Q7CisgICAgZmxvYXQgem9vbSgpIGNvbnN0IHsgcmV0
dXJuIG1fem9vbTsgfQogICAgIGJvb2wgY29tcHV0aW5nRm9udFNpemUoKSBjb25zdCB7IHJldHVy
biBtX3Byb3BlcnR5VG9Db21wdXRlID09IENTU1Byb3BlcnR5Rm9udFNpemU7IH0KICAgICBib29s
IGNvbXB1dGluZ0xpbmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5VG9Db21wdXRl
ID09IENTU1Byb3BlcnR5TGluZUhlaWdodDsgfQogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlU
b0NvbXB1dGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5VG9Db21wdXRlLnZhbHVlX29yKENT
U1Byb3BlcnR5SW52YWxpZCk7IH0KQEAgLTgwLDI0ICs2NywzOSBAQCBwdWJsaWM6CiAgICAgRmxv
YXRTaXplIGxhcmdlVmlld3BvcnRGYWN0b3IoKSBjb25zdDsKICAgICBGbG9hdFNpemUgZHluYW1p
Y1ZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
IGNvcHlXaXRoQWRqdXN0ZWRab29tKGZsb2F0IG5ld1pvb20pIGNvbnN0CisgICAgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSBjb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5KCp0aGlzKTsKKyAg
ICAgICAgY29weS5tX3N0eWxlID0gcGFyZW50U3R5bGUoKTsKKyAgICAgICAgY29weS5tX3pvb20g
PSAxLmY7CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9IENTU1Byb3BlcnR5Rm9u
dFNpemU7CisgICAgICAgIHJldHVybiBjb3B5OworICAgIH07CisKKyAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvcHlXaXRoQWRqdXN0ZWRab29tKGZsb2F0IHpvb20pIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YShtX3N0eWxlLCBtX3Jv
b3RTdHlsZSwgbV9wYXJlbnRTdHlsZSwgbV9yZW5kZXJWaWV3LCBuZXdab29tLCBtX3Byb3BlcnR5
VG9Db21wdXRlKTsKKyAgICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5KCp0aGlz
KTsKKyAgICAgICAgY29weS5tX3pvb20gPSB6b29tOworICAgICAgICByZXR1cm4gY29weTsKICAg
ICB9CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHlXaXRoQWRqdXN0ZWRab29t
QW5kUHJvcGVydHlUb0NvbXB1dGUoZmxvYXQgem9vbSwgc3RkOjpvcHRpb25hbDxDU1NQcm9wZXJ0
eUlEPiBwcm9wZXJ0eVRvQ29tcHV0ZSkgY29uc3QKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhIGNvcHlGb3JMaW5lSGVpZ2h0KGZsb2F0IHpvb20pIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YShtX3N0eWxlLCBtX3Jvb3RTdHlsZSwgbV9w
YXJlbnRTdHlsZSwgbV9yZW5kZXJWaWV3LCB6b29tLCBwcm9wZXJ0eVRvQ29tcHV0ZSk7CisgICAg
ICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhpcyk7CisgICAgICAgIGNvcHku
bV96b29tID0gem9vbTsKKyAgICAgICAgY29weS5tX3Byb3BlcnR5VG9Db21wdXRlID0gQ1NTUHJv
cGVydHlMaW5lSGVpZ2h0OworICAgICAgICByZXR1cm4gY29weTsKICAgICB9CiAKIHByaXZhdGU6
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIG1fc3R5bGUgeyBudWxscHRyIH07CiAgICAgY29uc3Qg
UmVuZGVyU3R5bGUqIG1fcm9vdFN0eWxlIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IFJlbmRlclN0
eWxlKiBtX3BhcmVudFN0eWxlIHsgbnVsbHB0ciB9OwotICAgIFJlbmRlclN0eWxlKiBtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0IFJlbmRl
clZpZXcqIG1fcmVuZGVyVmlldyB7IG51bGxwdHIgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0
PiBtX3pvb207CisgICAgZmxvYXQgbV96b29tOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVy
dHlJRD4gbV9wcm9wZXJ0eVRvQ29tcHV0ZTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFj
ay4KKyAgICBSZW5kZXJTdHlsZSogbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7
IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCmluZGV4IDhiMGNlZjU1NTVmMzIyN2NkM2FmY2EzNjgw
NjRlZDJhMjhhMGZmYTcuLmQ4NDQ4YjcwN2RjNzA1ZjRkMGQ5NWJjNTllYTMyYmZkYjdmMzQ1YjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtMjM3LDcgKzIz
Nyw3IEBAIEV4Y2VwdGlvbk9yPERPTU1hdHJpeFJlYWRPbmx5OjpBYnN0cmFjdE1hdHJpeD4gRE9N
TWF0cml4UmVhZE9ubHk6OnBhcnNlU3RyaW5nSW50CiAgICAgICAgIHJldHVybiBBYnN0cmFjdE1h
dHJpeCB7IH07CiAKICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnM7Ci0gICAgaWYg
KCF0cmFuc2Zvcm1zRm9yVmFsdWUoKnZhbHVlLCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCks
IG9wZXJhdGlvbnMpKQorICAgIGlmICghdHJhbnNmb3Jtc0ZvclZhbHVlKCp2YWx1ZSwgeyB9LCBv
cGVyYXRpb25zKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAK
ICAgICBBYnN0cmFjdE1hdHJpeCBtYXRyaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKaW5kZXggMzQ1Y2MyNDUzNGJjMDQ1MTg2NzAzNWZhYTAzM2JkZjVjZDA2
MDRmNi4uZDk5NDg2MzAyMzE4Yzc2Zjk2ODNiYTIxYzkxYmJiMjBhMGEzNDQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtOTQ2LDcgKzk0Niw3IEBA
IGJvb2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeUV4cHJl
c3Npb24mIGV4cHJlc3Npb24pIGNvbnN0CiAgICAgZGVmYXVsdFN0eWxlLmZvbnRDYXNjYWRlKCku
dXBkYXRlKCk7CiAgICAgCiAgICAgLy8gUGFzcyBgbnVsbHB0cmAgZm9yIGBwYXJlbnRTdHlsZWAg
YmVjYXVzZSB3ZSBhcmUgaW4gdGhlIGNvbnRleHQgb2YgYSBtZWRpYSBxdWVyeS4KLSAgICByZXR1
cm4gZnVuY3Rpb24oZXhwcmVzc2lvbi52YWx1ZSgpLCB7IG1fc3R5bGUsICZkZWZhdWx0U3R5bGUs
IG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSwgMSwgc3RkOjpudWxsb3B0IH0sICpmcmFt
ZSwgTm9QcmVmaXgpOworICAgIHJldHVybiBmdW5jdGlvbihleHByZXNzaW9uLnZhbHVlKCksIHsg
Km1fc3R5bGUsICZkZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSB9
LCAqZnJhbWUsIE5vUHJlZml4KTsKIH0KIAogYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjptZWRp
YUF0dHJpYnV0ZU1hdGNoZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGF0dHJp
YnV0ZVZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0
dHJpYnV0ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcAppbmRleCAzNjIxOWYzZWM3ZjE0N2Q0YWZiZjYyMDJlOTQ0MzY5ODFjNjgz
YjU0Li5kNmU0OGEyM2ZmOTdlMGE4YjczNmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcApAQCAt
NTEsNyArNTEsNyBAQCBmbG9hdCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6Y29tcHV0ZUxlbmd0aChk
b3VibGUgdmFsdWUsIENTU1VuaXRUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwog
ICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZzdHlsZSwgJnN0eWxlLCByZW5kZXJlci0+cGFy
ZW50U3R5bGUoKSwgcmVuZGVyZXIpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29u
dmVyc2lvbkRhdGEoc3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRl
cmVyKTsKICAgICAvLyBCZWNhdXNlIHdlIGV2YWx1YXRlICJzaXplcyIgYXQgcGFyc2UgdGltZSAo
YmVmb3JlIHN0eWxlIGhhcyBiZWVuIHJlc29sdmVkKSwgdGhlIGZvbnQgbWV0cmljcyB1c2VkIGZv
ciB0aGVzZSBzcGVjaWZpYyB1bml0cwogICAgIC8vIGFyZSBub3QgYXZhaWxhYmxlLiBUaGUgZm9u
dCBzZWxlY3RvcidzIGludGVybmFsIGNvbnNpc3RlbmN5IGlzbid0IGd1YXJhbnRlZWQganVzdCB5
ZXQsIHNvIHdlIGNhbiBqdXN0IHRlbXBvcmFyaWx5IGNsZWFyCiAgICAgLy8gdGhlIHBvaW50ZXIg
dG8gaXQgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdW5pdCBldmFsdWF0aW9uLiBUaGlzIGlzIGFj
Y2VwdGlibGUgYmVjYXVzZSB0aGUgc3R5bGUgYWx3YXlzIGNvbWVzIGZyb20gdGhlCkBAIC0xNTcs
NyArMTU3LDcgQEAgdW5zaWduZWQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmVmZmVjdGl2ZVNpemVE
ZWZhdWx0VmFsdWUoKQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwogICAg
IGF1dG8mIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIGNsYW1wVG88Zmxv
YXQ+KENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSh7ICZzdHls
ZSwgJnN0eWxlLCByZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVuZGVyZXIgfSwgQ1NTVW5pdFR5
cGU6OkNTU19WVywgMTAwLjApKTsKKyAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oQ1NTUHJpbWl0
aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKHsgc3R5bGUsICZzdHlsZSwgcmVu
ZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRlcmVyIH0sIENTU1VuaXRUeXBlOjpDU1NfVlcsIDEw
MC4wKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDdh
Yjk3YjliNjFmZGUwODQ0NTkxYWJlZWZiZjZkNjFmZDM3YjlkNzcuLmMwZThmZWU1MDNmZTdlZmMy
M2YzYzhkNmI0NzJiNTU0MzYyYzdjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTI1LDcgKzEyNSw3
IEBAIHN0ZDo6b3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjCiAgICAgICAgIC8vIHN0eWxlIHRvIGNhbGN1bGF0
ZSBlbSBsZW5ndGhzLiBTaW5jZSB0aGUgZWxlbWVudCBtaWdodCBub3QgYmUgaW4gYSBkb2N1bWVu
dCwganVzdCBwYXNzIG51bGxwdHIKICAgICAgICAgLy8gZm9yIHRoZSByb290IGVsZW1lbnQgc3R5
bGUsIHRoZSBwYXJlbnQgZWxlbWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIgdmlldy4KICAgICAg
ICAgYXV0byBlbVNpemUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEsIENTU1VuaXRUeXBl
OjpDU1NfRU1TKTsKLSAgICAgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxp
bnQ+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgeyBuZXdTdHlsZS5nZXQoKSwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQgfSk7CisgICAgICAgIGludCBwaXhl
bHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
IHsgKm5ld1N0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH0pOwogICAgICAgICBuZXdT
dHlsZS0+c2V0RmxleEJhc2lzKExlbmd0aCB7IHBpeGVscywgTGVuZ3RoVHlwZTo6Rml4ZWQgfSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5k
ZXggMzBjZDM0M2VhN2RmOTE2OGNjM2NkZTQ3ZGJlZjhmNzU5ZTg4ZjczMS4uZjFkNjhmNjM3YmI5
YTgwOTdkN2FjMmY0YzEwMzExMGU2ZDdlMTc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtNzAyLDcgKzcwMiw3IEBAIExlbmd0aEJveCBSZW5kZXJU
aGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zCiAgICAgZmxvYXQgcGFkZGluZyA9IE1lbnVMaXN0QnV0dG9uUGFkZGluZ0FmdGVyOwog
ICAgIGlmIChzZXR0aW5ncy5pT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkKCkpIHsKICAgICAg
ICAgYXV0byBlbVNpemUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5
cGU6OkNTU19FTVMpOwotICAgICAgICBwYWRkaW5nID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZs
b2F0PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwg
bnVsbHB0ciwgMS4wLCBzdGQ6Om51bGxvcHQpKTsKKyAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+
Y29tcHV0ZUxlbmd0aDxmbG9hdD4oeyBzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9
KTsKICAgICB9CiAKICAgICBpZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lbnVs
aXN0QnV0dG9uUGFydCkgewpAQCAtNzUyLDcgKzc1Miw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5Q29t
bW9uQnV0dG9uUGFkZGluZ1RvU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50
JiBlCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgIGF1
dG8gZW1TaXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgwLjUsIENTU1VuaXRUeXBlOjpD
U1NfRU1TKTsKICAgICAvLyBXZSBkb24ndCBuZWVkIHRoaXMgZWxlbWVudCdzIHBhcmVudCBzdHls
ZSB0byBjYWxjdWxhdGUgYGVtYCB1bml0cywgc28gaXQncyBva2F5IHRvIHBhc3MgbnVsbHB0ciBm
b3IgaXQgaGVyZS4KLSAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGludD4o
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCks
IG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3Vt
ZW50LmZyYW1lKCktPnBhZ2Vab29tRmFjdG9yKCkgOiAxLikpOworICAgIGludCBwaXhlbHMgPSBl
bVNpemUtPmNvbXB1dGVMZW5ndGg8aW50Pih7IHN0eWxlLCBkb2N1bWVudC5yZW5kZXJTdHlsZSgp
LCBudWxscHRyLCBkb2N1bWVudC5yZW5kZXJWaWV3KCkgfSk7CiAgICAgc3R5bGUuc2V0UGFkZGlu
Z0JveChMZW5ndGhCb3goMCwgcGl4ZWxzLCAwLCBwaXhlbHMpKTsKIH0KIApAQCAtMTI4NSw3ICsx
Mjg1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW4KICAgICAvLyBTaW5jZSB0aGUgZWxlbWVu
dCBtaWdodCBub3QgYmUgaW4gYSBkb2N1bWVudCwganVzdCBwYXNzIG51bGxwdHIgZm9yIHRoZSBy
b290IGVsZW1lbnQgc3R5bGUsCiAgICAgLy8gdGhlIHBhcmVudCBlbGVtZW50IHN0eWxlLCBhbmQg
dGhlIHJlbmRlciB2aWV3LgogICAgIGF1dG8gZW1TaXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSgxLjAsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKLSAgICBpbnQgcGl4ZWxzID0gZW1TaXpl
LT5jb21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KSk7CisgICAgaW50IHBp
eGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHsgc3R5bGUsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIgfSk7CiAgICAgc3R5bGUuc2V0UGFkZGluZ0JveChMZW5ndGhCb3goMCwgcGl4
ZWxzLCAwLCBwaXhlbHMpKTsKIAogICAgIGlmICghZWxlbWVudCkKQEAgLTI4ODgsNyArMjg4OCw3
IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9uc1dp
dGhGb3JtQ29udHJvbFJlZnJlc2goY29uc3QKICAgICB9CiAKICAgICBhdXRvIGVtU2l6ZSA9IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMS4wLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7Ci0gICAg
YXV0byBlbVBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIDEuMCwgc3Rk
OjpudWxsb3B0KSk7CisgICAgYXV0byBlbVBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxm
bG9hdD4oeyBzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICBhdXRvIGds
eXBoU2NhbGUgPSAwLjY1ZiAqIGVtUGl4ZWxzIC8gZ2x5cGhTaXplLndpZHRoKCk7CiAgICAgZ2x5
cGhTaXplID0gZ2x5cGhTY2FsZSAqIGdseXBoU2l6ZTsKIApAQCAtMjkxNiw3ICsyOTE2LDcgQEAg
dm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0U2VhcmNoRmllbGREZWNvcmF0aW9uUGFydFN0eWxl
KFJlbmRlclN0eWxlJiBzdHlsZSwgY28KICAgICBjb25zdGV4cHIgaW50IHNlYXJjaEZpZWxkRGVj
b3JhdGlvbkVtU2l6ZSA9IDE7CiAgICAgY29uc3RleHByIGludCBzZWFyY2hGaWVsZERlY29yYXRp
b25NYXJnaW4gPSA0OwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9u
RGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0
KTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKHN0eWxlLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIGF1dG8gZW1TaXplID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShzZWFyY2hGaWVsZERlY29yYXRpb25FbVNpemUsIENTU1VuaXRUeXBl
OjpDU1NfRU1TKTsKICAgICBhdXRvIHNpemUgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+
KGNvbnZlcnNpb25EYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA1YTc5MDk1MmRmMzg2MjE0MGFjZDY2M2E5NDFmYWY4Nzgy
ZTYxODBkLi5jNDViNWFjOWUzZjI5NmU1ZTkyOTZmYTM0MTVhOTNiNmNkOTJkOTIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5l
cihjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0CiAgICAgICAgIGF1dG8mIHZpZXcg
PSByZW5kZXJlci0+dmlldygpOwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgcmVuZGVy
ZXIsCi0gICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgJnJlbmRlcmVyLT5z
dHlsZSgpLCAmdmlldy5zdHlsZSgpLCBudWxscHRyLCAmdmlldywgMSB9CisgICAgICAgICAgICBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgcmVuZGVyZXItPnN0eWxlKCksICZ2aWV3LnN0eWxl
KCksIG51bGxwdHIsICZ2aWV3IH0KICAgICAgICAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDQ1MzE0MWExNTc4ZmY2MDA0
Mzc2ZjYwZjE2ODI1ZWZjMWZiYzBhZjcuLmFjYmJmNWY5YTdlMWM3MmQ5Y2NhYjg1MDIzZDdlZmQ0
ZDIxN2IyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oCkBAIC0xNTY1LDcgKzE1NjUsNyBAQCBpbmxpbmUgc3RkOjpvcHRpb25hbDxMZW5ndGg+IEJ1
aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRMaW5lSGVpZ2h0KEJ1aWxkZXJTdGF0ZSYgYgogICAgICAg
ICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCk7CiAKICAgICBpZiAocHJp
bWl0aXZlVmFsdWUuaXNMZW5ndGgoKSkgewotICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0g
YnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVk
Wm9vbUFuZFByb3BlcnR5VG9Db21wdXRlKHpvb21XaXRoVGV4dFpvb21GYWN0b3IoYnVpbGRlclN0
YXRlKSwgQ1NTUHJvcGVydHlMaW5lSGVpZ2h0KTsKKyAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0
YSA9IGJ1aWxkZXJTdGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weUZvckxpbmVI
ZWlnaHQoem9vbVdpdGhUZXh0Wm9vbUZhY3RvcihidWlsZGVyU3RhdGUpKTsKICAgICAgICAgTGVu
Z3RoIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CiAgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEuZikKICAgICAgICAgICAgIGxl
bmd0aCA9IExlbmd0aChsZW5ndGgudmFsdWUoKSAqIG11bHRpcGxpZXIsIExlbmd0aFR5cGU6OkZp
eGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3Rv
bS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXggZTg4
NGU1YmNmYWM1ZGQ0ODUwOWRlZDIzOWVlMmVmNjZhZjNlMTRlZC4uNjc3ODRkNmQwOTY2Y2FmMjgw
ODVjNDNkNWM5MWE4ZDUzYWY2NDNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyQ3VzdG9tLmgKQEAgLTI1MCwxMiArMjUwLDEyIEBAIGlubGluZSB2b2lkIEJ1aWxkZXJDdXN0
b206OmFwcGx5VmFsdWVab29tKEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlLCBDU1NWYWx1ZSYK
IGlubGluZSBMZW5ndGggQnVpbGRlckN1c3RvbTo6bW1MZW5ndGgoZG91YmxlIG1tKQogewogICAg
IFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSht
bSwgQ1NTVW5pdFR5cGU6OkNTU19NTSkpOwotICAgIHJldHVybiB2YWx1ZS5nZXQoKS5jb21wdXRl
TGVuZ3RoPExlbmd0aD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpKTsKKyAgICByZXR1cm4g
dmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KHsgfSk7CiB9CiBpbmxpbmUgTGVuZ3Ro
IEJ1aWxkZXJDdXN0b206OmluY2hMZW5ndGgoZG91YmxlIGluY2gpCiB7CiAgICAgUmVmPENTU1By
aW1pdGl2ZVZhbHVlPiB2YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGluY2gsIENTU1Vu
aXRUeXBlOjpDU1NfSU4pKTsKLSAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7CisgICAgcmV0dXJuIHZhbHVlLmdl
dCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPih7IH0pOwogfQogYm9vbCBCdWlsZGVyQ3VzdG9tOjpn
ZXRQYWdlU2l6ZUZyb21OYW1lKENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlU2l6ZU5hbWUsIENTU1By
aW1pdGl2ZVZhbHVlKiBwYWdlT3JpZW50YXRpb24sIExlbmd0aCYgd2lkdGgsIExlbmd0aCYgaGVp
Z2h0KQogewpAQCAtMTgzNCwxMyArMTgzNCwxMyBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyQ3VzdG9t
OjphcHBseVZhbHVlRm9udFNpemUoQnVpbGRlclN0YXRlJiBidWlsZGVyU3RhdGUsIENTU1ZhbAog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRJc0Fic29sdXRlU2l6ZShw
YXJlbnRJc0Fic29sdXRlU2l6ZSB8fCAhKHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgpIHx8
IHByaW1pdGl2ZVZhbHVlLmlzRm9udFJlbGF0aXZlTGVuZ3RoKCkpKTsKICAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEgY29udmVyc2lvbkRhdGEgeyAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1
aWxkZXJTdGF0ZS5yb290RWxlbWVudFN0eWxlKCksICZidWlsZGVyU3RhdGUucGFyZW50U3R5bGUo
KSwgYnVpbGRlclN0YXRlLmRvY3VtZW50KCkucmVuZGVyVmlldygpLCAxLjBmLCBDU1NQcm9wZXJ0
eUZvbnRTaXplLCAmYnVpbGRlclN0YXRlLnN0eWxlKCkgfTsKKyAgICAgICAgICAgIC8vIGZvbnQt
c2l6ZSBpcyByZXNvbHZlZCBhZ2FpbnN0IHRoZSBwYXJlbnQgc3R5bGUgaW5zdGVhZCBvZiB0aGUg
Y3VycmVudCBzdHlsZS4KKyAgICAgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVy
U3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlGb3JGb250U2l6ZVdpdGhQYXJl
bnRTdHlsZSgpOwogICAgICAgICAgICAgc2l6ZSA9IHByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5n
dGg8ZmxvYXQ+KGNvbnZlcnNpb25EYXRhKTsKICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVW
YWx1ZS5pc1BlcmNlbnRhZ2UoKSkKICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUu
ZmxvYXRWYWx1ZSgpICogcGFyZW50U2l6ZSkgLyAxMDAuMGY7CiAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLmlzQ2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkpIHsKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0aGlzIG5lZWQgYSBkaWZmZXJlbnQgcm9vdCBzdHls
ZSB0aGFuIHRoZSBpc0xlbmd0aCBjYXNlIGFib3ZlPwotICAgICAgICAgICAgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSB7ICZidWlsZGVyU3RhdGUucGFyZW50U3R5bGUo
KSwgYnVpbGRlclN0YXRlLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5yb290U3R5bGUoKSwg
JmJ1aWxkZXJTdGF0ZS5wYXJlbnRTdHlsZSgpLCBidWlsZGVyU3RhdGUuZG9jdW1lbnQoKS5yZW5k
ZXJWaWV3KCksIDEuMGYsIENTU1Byb3BlcnR5Rm9udFNpemUsICZidWlsZGVyU3RhdGUuc3R5bGUo
KSB9OworICAgICAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGJ1aWxkZXJTdGF0ZS5jc3NU
b0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCk7
CiAgICAgICAgICAgICBzaXplID0gcHJpbWl0aXZlVmFsdWUuY3NzQ2FsY1ZhbHVlKCktPmNyZWF0
ZUNhbGN1bGF0aW9uVmFsdWUoY29udmVyc2lvbkRhdGEpLT5ldmFsdWF0ZShwYXJlbnRTaXplKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKaW5kZXggMGMxNmY0M2UwNDUzZTdhMGQ5YzgxNWMzYWIz
ZGY1MDEwNDM3NWE4OS4uNjdjZTk5OTU5YjM2NTk5ZWZkMjUwYTIyNjQ4MDhkMGMxYWNkNWIwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcApAQCAtNjMsNyAr
NjMsNyBAQCBCdWlsZGVyU3RhdGU6OkJ1aWxkZXJTdGF0ZShCdWlsZGVyJiBidWlsZGVyLCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIEJ1aWxkZXJDb250ZXh0JgogICAgICwgbV9zdHlsZU1hcCgqdGhpcykK
ICAgICAsIG1fc3R5bGUoc3R5bGUpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkK
LSAgICAsIG1fY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIHJvb3RFbGVtZW50U3R5
bGUoKSwgJnBhcmVudFN0eWxlKCksIGRvY3VtZW50KCkucmVuZGVyVmlldygpKQorICAgICwgbV9j
c3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKHN0eWxlLCBtX2NvbnRleHQpCiB7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454876</attachid>
            <date>2022-03-16 12:00:31 -0700</date>
            <delta_ts>2022-03-16 13:13:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316210030.patch</filename>
            <type>text/plain</type>
            <size>23524</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uMTc0YTk2ZDM0NWJkNDZjMGU1MGUzOWVlMjA1NmZh
ZDcwYTY5MTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YTo6em9vbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Y29weVdpdGhBZGp1
c3RlZFpvb20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YTo6Y29weUZvckxpbmVIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFk
anVzdGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWF0cml4
UmVhZE9ubHk6OnBhcnNlU3RyaW5nSW50b0Fic3RyYWN0TWF0cml4KToKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
Y29tcHV0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
ZWZmZWN0aXZlU2l6ZURlZmF1bHRWYWx1ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sSW5u
ZXJFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cElu
dGVybmFsUGFkZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjphcHBseUNvbW1vbkJ1
dHRvblBhZGRpbmdUb1N0eWxlKToKKworICAgICAgICBTZXR0aW5nIHRoZSB6b29tIHRvIGEgd2Vp
cmQgdmFsdWUgaGVyZSBkb2VzIG5vdGhpbmcsIGVtcyB1bml0IHJlc29sdXRpb24gaWdub3JlcyBp
dC4KKyAgICAgICAgSnVzdCBkb24ndCBkbyBpdC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnNXaXRoRm9ybUNvbnRy
b2xSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphZGp1c3RTZWFy
Y2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDb250YWlu
ZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0TGluZUhlaWdodCk6CisgICAgICAgICogc3R5bGUvU3R5bGVC
dWlsZGVyQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckN1c3RvbTo6
bW1MZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmluY2hM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmFwcGx5VmFs
dWVGb250U2l6ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJTdGF0ZTo6QnVpbGRlclN0YXRlKToKKwogMjAy
Mi0wMy0xNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI4MjczNyk6IGB0ZXh0LXNoYWRvd2AgaXMgY2xpcHBlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IDAxZGZhMjg5Zjk4MzQ3MzY4NmIyMzk4OWZiN2U2
ZmQzMTk4Nzc5NWUuLjM0NDBjMmI4Y2EwYmM3M2YxNzc5YWYwMGQ3MTE5Y2M4YzgyMzEzNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTg4NCw3ICs4ODQsNyBA
QCBSZWY8R3JhZGllbnQ+IENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjbwogICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1lbnQg
PSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICByb290U3R5
bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCByb290U3R5bGUs
IHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0
eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKIAogICAgIEZs
b2F0UG9pbnQgZmlyc3RQb2ludDsKICAgICBGbG9hdFBvaW50IHNlY29uZFBvaW50OwpAQCAtMTE0
Miw3ICsxMTQyLDcgQEAgUmVmPEdyYWRpZW50PiBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVh
dGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9j
dW1lbnRFbGVtZW50ID0gcmVuZGVyZXIuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAg
ICAgICAgcm9vdFN0eWxlID0gZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
KyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0
eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXco
KSk7CiAKICAgICBGbG9hdFBvaW50IGZpcnN0UG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RY
KCksIGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkK
QEAgLTEzMzUsNyArMTMzNSw3IEBAIFJlZjxHcmFkaWVudD4gQ1NTQ29uaWNHcmFkaWVudFZhbHVl
OjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uCiAgICAgaWYgKGF1
dG8qIGRvY3VtZW50RWxlbWVudCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpCiAgICAgICAgIHJvb3RTdHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsK
IAotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVy
LnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZp
ZXcoKSk7CisgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5k
ZXJlci5zdHlsZSgpLCByb290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJl
ci52aWV3KCkpOwogCiAgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9IGNvbXB1dGVFbmRQb2lu
dChmaXJzdFgoKSwgZmlyc3RZKCksIGNvbnZlcnNpb25EYXRhLCBzaXplKTsKICAgICBpZiAoIWZp
cnN0WCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwCmluZGV4IGIwMTVmMWFlN2EwNzg2NjdjNWE3NWQ2NGQ1Zjg4YTRmOWIxOGRhMjguLjVk
ZGY2MDE2ZGRhNDZmN2NkMjExMjlmMTg5MDBmZWExZWY0ZDNiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTM0LDE0ICszNCwy
NyBAQAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZmxvYXQgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
em9vbSgpIGNvbnN0CitDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgU3R5bGU6OkJ1aWxkZXJD
b250ZXh0JiBidWlsZGVyQ29udGV4dCkKKyAgICA6IG1fc3R5bGUoJnN0eWxlKQorICAgICwgbV9y
b290U3R5bGUoYnVpbGRlckNvbnRleHQucm9vdEVsZW1lbnRTdHlsZSkKKyAgICAsIG1fcGFyZW50
U3R5bGUoJmJ1aWxkZXJDb250ZXh0LnBhcmVudFN0eWxlKQorICAgICwgbV9yZW5kZXJWaWV3KGJ1
aWxkZXJDb250ZXh0LmRvY3VtZW50LT5yZW5kZXJWaWV3KCkpCisgICAgLCBtX3pvb20oc3R5bGUu
ZWZmZWN0aXZlWm9vbSgpKQorICAgICwgbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHls
ZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4obV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqIHJlbmRlclZpZXcpCisgICAgOiBtX3N0
eWxlKCZzdHlsZSkKKyAgICAsIG1fcm9vdFN0eWxlKHJvb3RTdHlsZSkKKyAgICAsIG1fcGFyZW50
U3R5bGUocGFyZW50U3R5bGUpCisgICAgLCBtX3JlbmRlclZpZXcocmVuZGVyVmlldykKKyAgICAs
IG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUoY29uc3RfY2FzdDxSZW5kZXJTdHls
ZSo+KG1fc3R5bGUpKQogewotICAgIGlmICghbV96b29tKQotICAgICAgICByZXR1cm4gbV9zdHls
ZSA/IG1fc3R5bGUtPmVmZmVjdGl2ZVpvb20oKSA6IDE7Ci0gICAgcmV0dXJuICptX3pvb207CiB9
CiAKIEZsb2F0U2l6ZSBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpkZWZhdWx0Vmlld3BvcnRG
YWN0b3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhLmgKaW5kZXggZTVjMmI2MmM1MmVjMjFhMzY1Mjk4MDFjN2NkNDg2YWZiYzk1NjE0MC4u
MjNjMTlmY2I5MzljYjliNWYzYzdlY2YxODQ0Y2Y1NDIxNjdmYzI2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oCkBAIC00MCwzNiArNDAsMjMg
QEAgY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJWaWV3
OwogCituYW1lc3BhY2UgU3R5bGUgeworc3RydWN0IEJ1aWxkZXJDb250ZXh0OworfTsKKwogY2xh
c3MgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7CiBwdWJsaWM6Ci0gICAgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
KiByb290U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVy
VmlldyogcmVuZGVyVmlldywgZmxvYXQgem9vbSwgc3RkOjpvcHRpb25hbDxDU1NQcm9wZXJ0eUlE
PiBwcm9wZXJ0eVRvQ29tcHV0ZSA9IHN0ZDo6bnVsbG9wdCwgUmVuZGVyU3R5bGUqIHZpZXdwb3J0
RGVwZW5kZW5jeURldGVjdGlvblN0eWxlID0gbnVsbHB0cikKLSAgICAgICAgOiBtX3N0eWxlKHN0
eWxlKQotICAgICAgICAsIG1fcm9vdFN0eWxlKHJvb3RTdHlsZSkKLSAgICAgICAgLCBtX3BhcmVu
dFN0eWxlKHBhcmVudFN0eWxlKQotICAgICAgICAsIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0
aW9uU3R5bGUodmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUgPyB2aWV3cG9ydERlcGVu
ZGVuY3lEZXRlY3Rpb25TdHlsZSA6IGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihzdHlsZSkpCi0g
ICAgICAgICwgbV9yZW5kZXJWaWV3KHJlbmRlclZpZXcpCi0gICAgICAgICwgbV96b29tKHpvb20p
Ci0gICAgICAgICwgbV9wcm9wZXJ0eVRvQ29tcHV0ZShwcm9wZXJ0eVRvQ29tcHV0ZSkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVCh6b29tID4gMCk7Ci0gICAgfQotCi0gICAgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBy
b290U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyVmll
dyogcmVuZGVyVmlldywgc3RkOjpvcHRpb25hbDxDU1NQcm9wZXJ0eUlEPiBwcm9wZXJ0eVRvQ29t
cHV0ZSA9IHN0ZDo6bnVsbG9wdCkKLSAgICAgICAgOiBtX3N0eWxlKHN0eWxlKQotICAgICAgICAs
IG1fcm9vdFN0eWxlKHJvb3RTdHlsZSkKLSAgICAgICAgLCBtX3BhcmVudFN0eWxlKHBhcmVudFN0
eWxlKQotICAgICAgICAsIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUoY29uc3Rf
Y2FzdDxSZW5kZXJTdHlsZSo+KHN0eWxlKSkKLSAgICAgICAgLCBtX3JlbmRlclZpZXcocmVuZGVy
VmlldykKLSAgICAgICAgLCBtX3Byb3BlcnR5VG9Db21wdXRlKHByb3BlcnR5VG9Db21wdXRlKQot
ICAgIHsKLSAgICB9CisgICAgLy8gVGhpcyBpcyB1c2VkIGR1cmluZyBzdHlsZSBidWlsZGluZy4g
VGhlICd6b29tJyBwcm9wZXJ0eSBpcyB0YWtlbiBpbnRvIGFjY291bnQuCisgICAgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFN0eWxlOjpCdWlsZGVy
Q29udGV4dCYpOworICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaWdub3JlcyB0aGUgYHpvb21gIHBy
b3BlcnR5LgorICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50
U3R5bGUsIGNvbnN0IFJlbmRlclZpZXcqKTsKIAogICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEoKSA9IGRlZmF1bHQ7CiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX3N0eWxlOyB9CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm9vdFN0eWxlOyB9CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVu
dFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRTdHlsZTsgfQotICAgIGZsb2F0IHpvb20o
KSBjb25zdDsKKyAgICBmbG9hdCB6b29tKCkgY29uc3QgeyByZXR1cm4gbV96b29tOyB9CiAgICAg
Ym9vbCBjb21wdXRpbmdGb250U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlUb0NvbXB1
dGUgPT0gQ1NTUHJvcGVydHlGb250U2l6ZTsgfQogICAgIGJvb2wgY29tcHV0aW5nTGluZUhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlUb0NvbXB1dGUgPT0gQ1NTUHJvcGVydHlMaW5l
SGVpZ2h0OyB9CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eVRvQ29tcHV0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydHlUb0NvbXB1dGUudmFsdWVfb3IoQ1NTUHJvcGVydHlJbnZhbGlkKTsg
fQpAQCAtODAsMjQgKzY3LDM5IEBAIHB1YmxpYzoKICAgICBGbG9hdFNpemUgbGFyZ2VWaWV3cG9y
dEZhY3RvcigpIGNvbnN0OwogICAgIEZsb2F0U2l6ZSBkeW5hbWljVmlld3BvcnRGYWN0b3IoKSBj
b25zdDsKIAotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weVdpdGhBZGp1c3RlZFpv
b20oZmxvYXQgbmV3Wm9vbSkgY29uc3QKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNv
cHlGb3JGb250U2l6ZVdpdGhQYXJlbnRTdHlsZSgpIGNvbnN0CisgICAgeworICAgICAgICBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAgICBjb3B5Lm1fc3R5bGUg
PSBwYXJlbnRTdHlsZSgpOworICAgICAgICBjb3B5Lm1fem9vbSA9IDEuZjsKKyAgICAgICAgY29w
eS5tX3Byb3BlcnR5VG9Db21wdXRlID0gQ1NTUHJvcGVydHlGb250U2l6ZTsKKyAgICAgICAgcmV0
dXJuIGNvcHk7CisgICAgfTsKKworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weVdp
dGhBZGp1c3RlZFpvb20oZmxvYXQgem9vbSkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKG1fc3R5bGUsIG1fcm9vdFN0eWxlLCBtX3BhcmVudFN0
eWxlLCBtX3JlbmRlclZpZXcsIG5ld1pvb20sIG1fcHJvcGVydHlUb0NvbXB1dGUpOworICAgICAg
ICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAgICBjb3B5Lm1f
em9vbSA9IHpvb207CisgICAgICAgIHJldHVybiBjb3B5OwogICAgIH0KIAotICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29weVdpdGhBZGp1c3RlZFpvb21BbmRQcm9wZXJ0eVRvQ29tcHV0
ZShmbG9hdCB6b29tLCBzdGQ6Om9wdGlvbmFsPENTU1Byb3BlcnR5SUQ+IHByb3BlcnR5VG9Db21w
dXRlKSBjb25zdAorICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weUZvckxpbmVIZWln
aHQoZmxvYXQgem9vbSkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKG1fc3R5bGUsIG1fcm9vdFN0eWxlLCBtX3BhcmVudFN0eWxlLCBtX3JlbmRl
clZpZXcsIHpvb20sIHByb3BlcnR5VG9Db21wdXRlKTsKKyAgICAgICAgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSBjb3B5KCp0aGlzKTsKKyAgICAgICAgY29weS5tX3pvb20gPSB6b29tOworICAg
ICAgICBjb3B5Lm1fcHJvcGVydHlUb0NvbXB1dGUgPSBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQ7Cisg
ICAgICAgIHJldHVybiBjb3B5OwogICAgIH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBSZW5kZXJT
dHlsZSogbV9zdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBSZW5kZXJTdHlsZSogbV9yb290
U3R5bGUgeyBudWxscHRyIH07CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIG1fcGFyZW50U3R5bGUg
eyBudWxscHRyIH07Ci0gICAgUmVuZGVyU3R5bGUqIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0
aW9uU3R5bGUgeyBudWxscHRyIH07CiAgICAgY29uc3QgUmVuZGVyVmlldyogbV9yZW5kZXJWaWV3
IHsgbnVsbHB0ciB9OwotICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IG1fem9vbTsKKyAgICBmbG9h
dCBtX3pvb20geyAxLmYgfTsKICAgICBzdGQ6Om9wdGlvbmFsPENTU1Byb3BlcnR5SUQ+IG1fcHJv
cGVydHlUb0NvbXB1dGU7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGhhY2suCisgICAgUmVu
ZGVyU3R5bGUqIG1fdmlld3BvcnREZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUgeyBudWxscHRyIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcAppbmRleCA4YjBjZWY1NTU1ZjMyMjdjZDNhZmNhMzY4MDY0ZWQyYTI4YTBm
ZmE3Li5kODQ0OGI3MDdkYzcwNWY0ZDBkOTViYzU5ZWEzMmJmZGI3ZjM0NWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBFeGNl
cHRpb25PcjxET01NYXRyaXhSZWFkT25seTo6QWJzdHJhY3RNYXRyaXg+IERPTU1hdHJpeFJlYWRP
bmx5OjpwYXJzZVN0cmluZ0ludAogICAgICAgICByZXR1cm4gQWJzdHJhY3RNYXRyaXggeyB9Owog
CiAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBvcGVyYXRpb25zOwotICAgIGlmICghdHJhbnNmb3Jt
c0ZvclZhbHVlKCp2YWx1ZSwgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLCBvcGVyYXRpb25z
KSkKKyAgICBpZiAoIXRyYW5zZm9ybXNGb3JWYWx1ZSgqdmFsdWUsIHsgfSwgb3BlcmF0aW9ucykp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciB9OwogCiAgICAgQWJzdHJh
Y3RNYXRyaXggbWF0cml4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwCmluZGV4IDM0NWNjMjQ1MzRiYzA0NTE4NjcwMzVmYWEwMzNiZGY1Y2QwNjA0ZjYuLmQ5OTQ4
NjMwMjMxOGM3NmY5NjgzYmEyMWM5MWJiYjIwYTBhMzQ0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTk0Niw3ICs5NDYsNyBAQCBib29sIE1lZGlh
UXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiBleHBy
ZXNzaW9uKSBjb25zdAogICAgIGRlZmF1bHRTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgpOwog
ICAgIAogICAgIC8vIFBhc3MgYG51bGxwdHJgIGZvciBgcGFyZW50U3R5bGVgIGJlY2F1c2Ugd2Ug
YXJlIGluIHRoZSBjb250ZXh0IG9mIGEgbWVkaWEgcXVlcnkuCi0gICAgcmV0dXJuIGZ1bmN0aW9u
KGV4cHJlc3Npb24udmFsdWUoKSwgeyBtX3N0eWxlLCAmZGVmYXVsdFN0eWxlLCBudWxscHRyLCBk
b2N1bWVudC5yZW5kZXJWaWV3KCksIDEsIHN0ZDo6bnVsbG9wdCB9LCAqZnJhbWUsIE5vUHJlZml4
KTsKKyAgICByZXR1cm4gZnVuY3Rpb24oZXhwcmVzc2lvbi52YWx1ZSgpLCB7ICptX3N0eWxlLCAm
ZGVmYXVsdFN0eWxlLCBudWxscHRyLCBkb2N1bWVudC5yZW5kZXJWaWV3KCkgfSwgKmZyYW1lLCBO
b1ByZWZpeCk7CiB9CiAKIGJvb2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6bWVkaWFBdHRyaWJ1dGVN
YXRjaGVzKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5j
cHAKaW5kZXggMzYyMTlmM2VjN2YxNDdkNGFmYmY2MjAyZTk0NDM2OTgxYzY4M2I1NC4uZDZlNDhh
MjNmZjk3ZTBhOGI3MzZkODAzNzk3NDI0NzUwNWMzN2ZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgZmxvYXQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmNvbXB1dGVMZW5ndGgoZG91YmxlIHZhbHVl
LCBDU1NVbml0VHlwZSB0eXBlLCBjb25zdAogICAgICAgICByZXR1cm4gMDsKICAgICBhdXRvJiBz
dHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSBjb252ZXJzaW9uRGF0YSgmc3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxlKCks
IHJlbmRlcmVyKTsKKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRh
KHN0eWxlLCAmc3R5bGUsIHJlbmRlcmVyLT5wYXJlbnRTdHlsZSgpLCByZW5kZXJlcik7CiAgICAg
Ly8gQmVjYXVzZSB3ZSBldmFsdWF0ZSAic2l6ZXMiIGF0IHBhcnNlIHRpbWUgKGJlZm9yZSBzdHls
ZSBoYXMgYmVlbiByZXNvbHZlZCksIHRoZSBmb250IG1ldHJpY3MgdXNlZCBmb3IgdGhlc2Ugc3Bl
Y2lmaWMgdW5pdHMKICAgICAvLyBhcmUgbm90IGF2YWlsYWJsZS4gVGhlIGZvbnQgc2VsZWN0b3In
cyBpbnRlcm5hbCBjb25zaXN0ZW5jeSBpc24ndCBndWFyYW50ZWVkIGp1c3QgeWV0LCBzbyB3ZSBj
YW4ganVzdCB0ZW1wb3JhcmlseSBjbGVhcgogICAgIC8vIHRoZSBwb2ludGVyIHRvIGl0IGZvciB0
aGUgZHVyYXRpb24gb2YgdGhlIHVuaXQgZXZhbHVhdGlvbi4gVGhpcyBpcyBhY2NlcHRpYmxlIGJl
Y2F1c2UgdGhlIHN0eWxlIGFsd2F5cyBjb21lcyBmcm9tIHRoZQpAQCAtMTU3LDcgKzE1Nyw3IEBA
IHVuc2lnbmVkIFNpemVzQXR0cmlidXRlUGFyc2VyOjplZmZlY3RpdmVTaXplRGVmYXVsdFZhbHVl
KCkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKICAgICBhdXRvJiBzdHls
ZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBjbGFtcFRvPGZsb2F0PihDU1NQcmlt
aXRpdmVWYWx1ZTo6Y29tcHV0ZU5vbkNhbGNMZW5ndGhEb3VibGUoeyAmc3R5bGUsICZzdHlsZSwg
cmVuZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRlcmVyIH0sIENTU1VuaXRUeXBlOjpDU1NfVlcs
IDEwMC4wKSk7CisgICAgcmV0dXJuIGNsYW1wVG88ZmxvYXQ+KENTU1ByaW1pdGl2ZVZhbHVlOjpj
b21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSh7IHN0eWxlLCAmc3R5bGUsIHJlbmRlcmVyLT5wYXJl
bnRTdHlsZSgpLCByZW5kZXJlciB9LCBDU1NVbml0VHlwZTo6Q1NTX1ZXLCAxMDAuMCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA3YWI5N2I5YjYxZmRl
MDg0NDU5MWFiZWVmYmY2ZDYxZmQzN2I5ZDc3Li5jMGU4ZmVlNTAzZmU3ZWZjMjNmM2M4ZDZiNDcy
YjU1NDM2MmM3YzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGQ6Om9w
dGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpyZXNv
bHZlQ3VzdG9tU3R5bGUoYwogICAgICAgICAvLyBzdHlsZSB0byBjYWxjdWxhdGUgZW0gbGVuZ3Ro
cy4gU2luY2UgdGhlIGVsZW1lbnQgbWlnaHQgbm90IGJlIGluIGEgZG9jdW1lbnQsIGp1c3QgcGFz
cyBudWxscHRyCiAgICAgICAgIC8vIGZvciB0aGUgcm9vdCBlbGVtZW50IHN0eWxlLCB0aGUgcGFy
ZW50IGVsZW1lbnQgc3R5bGUsIGFuZCB0aGUgcmVuZGVyIHZpZXcuCiAgICAgICAgIGF1dG8gZW1T
aXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7
Ci0gICAgICAgIGludCBwaXhlbHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhIHsgbmV3U3R5bGUuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0IH0pOworICAgICAgICBpbnQgcGl4ZWxzID0gZW1TaXpl
LT5jb21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7ICpuZXdTdHls
ZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICAgICAgbmV3U3R5bGUtPnNldEZs
ZXhCYXNpcyhMZW5ndGggeyBwaXhlbHMsIExlbmd0aFR5cGU6OkZpeGVkIH0pOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDMwY2QzNDNl
YTdkZjkxNjhjYzNjZGU0N2RiZWY4Zjc1OWU4OGY3MzEuLmYxZDY4ZjYzN2JiOWE4MDk3ZDdhYzJm
NGMxMDMxMTBlNmQ3ZTE3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW0KQEAgLTcwMiw3ICs3MDIsNyBAQCBMZW5ndGhCb3ggUmVuZGVyVGhlbWVJT1M6OnBv
cHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29ucwogICAg
IGZsb2F0IHBhZGRpbmcgPSBNZW51TGlzdEJ1dHRvblBhZGRpbmdBZnRlcjsKICAgICBpZiAoc2V0
dGluZ3MuaU9TRm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZCgpKSB7CiAgICAgICAgIGF1dG8gZW1T
aXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxLjAsIENTU1VuaXRUeXBlOjpDU1NfRU1T
KTsKLSAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIDEu
MCwgc3RkOjpudWxsb3B0KSk7CisgICAgICAgIHBhZGRpbmcgPSBlbVNpemUtPmNvbXB1dGVMZW5n
dGg8ZmxvYXQ+KHsgc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfSk7CiAgICAgfQog
CiAgICAgaWYgKHN0eWxlLmVmZmVjdGl2ZUFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBh
cnQpIHsKQEAgLTc1Miw3ICs3NTIsNyBAQCBzdGF0aWMgdm9pZCBhcHBseUNvbW1vbkJ1dHRvblBh
ZGRpbmdUb1N0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZQogICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQuZG9jdW1lbnQoKTsKICAgICBhdXRvIGVtU2l6ZSA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMC41LCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7CiAg
ICAgLy8gV2UgZG9uJ3QgbmVlZCB0aGlzIGVsZW1lbnQncyBwYXJlbnQgc3R5bGUgdG8gY2FsY3Vs
YXRlIGBlbWAgdW5pdHMsIHNvIGl0J3Mgb2theSB0byBwYXNzIG51bGxwdHIgZm9yIGl0IGhlcmUu
Ci0gICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoJnN0eWxlLCBkb2N1bWVudC5yZW5kZXJTdHlsZSgpLCBudWxscHRyLCBk
b2N1bWVudC5yZW5kZXJWaWV3KCksIGRvY3VtZW50LmZyYW1lKCkgPyBkb2N1bWVudC5mcmFtZSgp
LT5wYWdlWm9vbUZhY3RvcigpIDogMS4pKTsKKyAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21w
dXRlTGVuZ3RoPGludD4oeyBzdHlsZSwgZG9jdW1lbnQucmVuZGVyU3R5bGUoKSwgbnVsbHB0ciwg
ZG9jdW1lbnQucmVuZGVyVmlldygpIH0pOwogICAgIHN0eWxlLnNldFBhZGRpbmdCb3goTGVuZ3Ro
Qm94KDAsIHBpeGVscywgMCwgcGl4ZWxzKSk7CiB9CiAKQEAgLTEyODUsNyArMTI4NSw3IEBAIHZv
aWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgRWxlbWVudCogZWxlbWVuCiAgICAgLy8gU2luY2UgdGhlIGVsZW1lbnQgbWlnaHQgbm90
IGJlIGluIGEgZG9jdW1lbnQsIGp1c3QgcGFzcyBudWxscHRyIGZvciB0aGUgcm9vdCBlbGVtZW50
IHN0eWxlLAogICAgIC8vIHRoZSBwYXJlbnQgZWxlbWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIg
dmlldy4KICAgICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoMS4wLCBD
U1NVbml0VHlwZTo6Q1NTX0VNUyk7Ci0gICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxl
bmd0aDxpbnQ+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoJnN0eWxlLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCkpOworICAgIGludCBwaXhlbHMgPSBlbVNp
emUtPmNvbXB1dGVMZW5ndGg8aW50Pih7IHN0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
IH0pOwogICAgIHN0eWxlLnNldFBhZGRpbmdCb3goTGVuZ3RoQm94KDAsIHBpeGVscywgMCwgcGl4
ZWxzKSk7CiAKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFJl
bmRlclRoZW1lSU9TOjpwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnNXaXRoRm9ybUNvbnRy
b2xSZWZyZXNoKGNvbnN0CiAgICAgfQogCiAgICAgYXV0byBlbVNpemUgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOwotICAgIGF1dG8gZW1QaXhl
bHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEoJnN0eWxlLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCkp
OworICAgIGF1dG8gZW1QaXhlbHMgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KHsgc3R5
bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfSk7CiAgICAgYXV0byBnbHlwaFNjYWxlID0g
MC42NWYgKiBlbVBpeGVscyAvIGdseXBoU2l6ZS53aWR0aCgpOwogICAgIGdseXBoU2l6ZSA9IGds
eXBoU2NhbGUgKiBnbHlwaFNpemU7CiAKQEAgLTI5MTYsNyArMjkxNiw3IEBAIHZvaWQgUmVuZGVy
VGhlbWVJT1M6OmFkanVzdFNlYXJjaEZpZWxkRGVjb3JhdGlvblBhcnRTdHlsZShSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvCiAgICAgY29uc3RleHByIGludCBzZWFyY2hGaWVsZERlY29yYXRpb25FbVNp
emUgPSAxOwogICAgIGNvbnN0ZXhwciBpbnQgc2VhcmNoRmllbGREZWNvcmF0aW9uTWFyZ2luID0g
NDsKIAotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnN0eWxl
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCAxLjAsIHN0ZDo6bnVsbG9wdCk7CisgICAgQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShzdHlsZSwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0cik7CiAKICAgICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoc2VhcmNoRmllbGREZWNvcmF0aW9uRW1TaXplLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7
CiAgICAgYXV0byBzaXplID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0Pihjb252ZXJzaW9u
RGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2
YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRv
ci5jcHAKaW5kZXggNWE3OTA5NTJkZjM4NjIxNDBhY2Q2NjNhOTQxZmFmODc4MmU2MTgwZC4uYzQ1
YjVhYzllM2YyOTZlNWU5Mjk2ZmEzNDE1YTkzYjZjZDkyZDkyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNzQsNyArNzQsNyBA
QCBhdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgRmls
dGVyZWRDb250YWluZXJRdWVyeSYgZmlsdAogICAgICAgICBhdXRvJiB2aWV3ID0gcmVuZGVyZXIt
PnZpZXcoKTsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIHJlbmRlcmVyLAotICAgICAg
ICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSB7ICZyZW5kZXJlci0+c3R5bGUoKSwgJnZp
ZXcuc3R5bGUoKSwgbnVsbHB0ciwgJnZpZXcsIDEgfQorICAgICAgICAgICAgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSB7IHJlbmRlcmVyLT5zdHlsZSgpLCAmdmlldy5zdHlsZSgpLCBudWxscHRy
LCAmdmlldyB9CiAgICAgICAgIH07CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA0NTMxNDFhMTU3OGZmNjAwNDM3NmY2MGYxNjgy
NWVmYzFmYmMwYWY3Li5hY2JiZjVmOWE3ZTFjNzJkOWNjYWI4NTAyM2Q3ZWZkNGQyMTdiMmEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTU2
NSw3ICsxNTY1LDcgQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBCdWlsZGVyQ29udmVy
dGVyOjpjb252ZXJ0TGluZUhlaWdodChCdWlsZGVyU3RhdGUmIGIKICAgICAgICAgcmV0dXJuIFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpOwogCiAgICAgaWYgKHByaW1pdGl2ZVZhbHVl
LmlzTGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGJ1aWxkZXJTdGF0
ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb21BbmRQcm9w
ZXJ0eVRvQ29tcHV0ZSh6b29tV2l0aFRleHRab29tRmFjdG9yKGJ1aWxkZXJTdGF0ZSksIENTU1By
b3BlcnR5TGluZUhlaWdodCk7CisgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVy
U3RhdGUuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlGb3JMaW5lSGVpZ2h0KHpvb21X
aXRoVGV4dFpvb21GYWN0b3IoYnVpbGRlclN0YXRlKSk7CiAgICAgICAgIExlbmd0aCBsZW5ndGgg
PSBwcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwog
ICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxLmYpCiAgICAgICAgICAgICBsZW5ndGggPSBMZW5n
dGgobGVuZ3RoLnZhbHVlKCkgKiBtdWx0aXBsaWVyLCBMZW5ndGhUeXBlOjpGaXhlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oCmluZGV4IGU4ODRlNWJjZmFjNWRk
NDg1MDlkZWQyMzllZTJlZjY2YWYzZTE0ZWQuLjY3Nzg0ZDZkMDk2NmNhZjI4MDg1YzQzZDVjOTFh
OGQ1M2FmNjQzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5o
CkBAIC0yNTAsMTIgKzI1MCwxMiBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyQ3VzdG9tOjphcHBseVZh
bHVlWm9vbShCdWlsZGVyU3RhdGUmIGJ1aWxkZXJTdGF0ZSwgQ1NTVmFsdWUmCiBpbmxpbmUgTGVu
Z3RoIEJ1aWxkZXJDdXN0b206Om1tTGVuZ3RoKGRvdWJsZSBtbSkKIHsKICAgICBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+IHZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobW0sIENTU1VuaXRU
eXBlOjpDU1NfTU0pKTsKLSAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5n
dGg+KENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7CisgICAgcmV0dXJuIHZhbHVlLmdldCgp
LmNvbXB1dGVMZW5ndGg8TGVuZ3RoPih7IH0pOwogfQogaW5saW5lIExlbmd0aCBCdWlsZGVyQ3Vz
dG9tOjppbmNoTGVuZ3RoKGRvdWJsZSBpbmNoKQogewogICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gdmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShpbmNoLCBDU1NVbml0VHlwZTo6Q1NT
X0lOKSk7Ci0gICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhKCkpOworICAgIHJldHVybiB2YWx1ZS5nZXQoKS5jb21wdXRl
TGVuZ3RoPExlbmd0aD4oeyB9KTsKIH0KIGJvb2wgQnVpbGRlckN1c3RvbTo6Z2V0UGFnZVNpemVG
cm9tTmFtZShDU1NQcmltaXRpdmVWYWx1ZSogcGFnZVNpemVOYW1lLCBDU1NQcmltaXRpdmVWYWx1
ZSogcGFnZU9yaWVudGF0aW9uLCBMZW5ndGgmIHdpZHRoLCBMZW5ndGgmIGhlaWdodCkKIHsKQEAg
LTE4MzQsMTMgKzE4MzQsMTMgQEAgaW5saW5lIHZvaWQgQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1
ZUZvbnRTaXplKEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlLCBDU1NWYWwKICAgICB9IGVsc2Ug
ewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0SXNBYnNvbHV0ZVNpemUocGFyZW50SXNBYnNv
bHV0ZVNpemUgfHwgIShwcmltaXRpdmVWYWx1ZS5pc1BlcmNlbnRhZ2UoKSB8fCBwcmltaXRpdmVW
YWx1ZS5pc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpKSk7CiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNv
bnZlcnNpb25EYXRhIHsgJmJ1aWxkZXJTdGF0ZS5wYXJlbnRTdHlsZSgpLCBidWlsZGVyU3RhdGUu
cm9vdEVsZW1lbnRTdHlsZSgpLCAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJT
dGF0ZS5kb2N1bWVudCgpLnJlbmRlclZpZXcoKSwgMS4wZiwgQ1NTUHJvcGVydHlGb250U2l6ZSwg
JmJ1aWxkZXJTdGF0ZS5zdHlsZSgpIH07CisgICAgICAgICAgICAvLyBmb250LXNpemUgaXMgcmVz
b2x2ZWQgYWdhaW5zdCB0aGUgcGFyZW50IHN0eWxlIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgc3R5
bGUuCisgICAgICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gYnVpbGRlclN0YXRlLmNzc1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUoKTsK
ICAgICAgICAgICAgIHNpemUgPSBwcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3RoPGZsb2F0Pihj
b252ZXJzaW9uRGF0YSk7CiAgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUuaXNQZXJj
ZW50YWdlKCkpCiAgICAgICAgICAgICBzaXplID0gKHByaW1pdGl2ZVZhbHVlLmZsb2F0VmFsdWUo
KSAqIHBhcmVudFNpemUpIC8gMTAwLjBmOwogICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1
ZS5pc0NhbGN1bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgpKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogV2h5IGRvZXMgdGhpcyBuZWVkIGEgZGlmZmVyZW50IHJvb3Qgc3R5bGUgdGhhbiB0aGUg
aXNMZW5ndGggY2FzZSBhYm92ZT8KLSAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEgY29udmVyc2lvbkRhdGEgeyAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJT
dGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkucm9vdFN0eWxlKCksICZidWlsZGVyU3Rh
dGUucGFyZW50U3R5bGUoKSwgYnVpbGRlclN0YXRlLmRvY3VtZW50KCkucmVuZGVyVmlldygpLCAx
LjBmLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCAmYnVpbGRlclN0YXRlLnN0eWxlKCkgfTsKKyAgICAg
ICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVyU3RhdGUuY3NzVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSgpLmNvcHlGb3JGb250U2l6ZVdpdGhQYXJlbnRTdHlsZSgpOwogICAgICAgICAg
ICAgc2l6ZSA9IHByaW1pdGl2ZVZhbHVlLmNzc0NhbGNWYWx1ZSgpLT5jcmVhdGVDYWxjdWxhdGlv
blZhbHVlKGNvbnZlcnNpb25EYXRhKS0+ZXZhbHVhdGUocGFyZW50U2l6ZSk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyU3RhdGUuY3BwCmluZGV4IDBjMTZmNDNlMDQ1M2U3YTBkOWM4MTVjM2FiM2RmNTAxMDQzNzVh
ODkuLjY3Y2U5OTk1OWIzNjU5OWVmZDI1MGEyMjY0ODA4ZDBjMWFjZDViMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgQnVp
bGRlclN0YXRlOjpCdWlsZGVyU3RhdGUoQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyU3R5bGUmIHN0
eWxlLCBCdWlsZGVyQ29udGV4dCYKICAgICAsIG1fc3R5bGVNYXAoKnRoaXMpCiAgICAgLCBtX3N0
eWxlKHN0eWxlKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCi0gICAgLCBtX2Nz
c1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoJnN0eWxlLCByb290RWxlbWVudFN0eWxlKCksICZwYXJl
bnRTdHlsZSgpLCBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKKyAgICAsIG1fY3NzVG9MZW5ndGhD
b252ZXJzaW9uRGF0YShzdHlsZSwgbV9jb250ZXh0KQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454886</attachid>
            <date>2022-03-16 13:13:42 -0700</date>
            <delta_ts>2022-03-17 02:42:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237963-20220316221340.patch</filename>
            <type>text/plain</type>
            <size>23004</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQxMmYwM2Q0M2ZmYWNk
ZDJjMDZlMTI3OWFiNzUxNDU4NDYwZDdiMC4uMTc0YTk2ZDM0NWJkNDZjMGU1MGUzOWVlMjA1NmZh
ZDcwYTY5MTYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTE2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHN0eWxlIGJ1aWxk
ZXIgY29udGV4dCB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHByZXBhcmF0aW9uIGZvciBy
ZXNvbHZpbmcgY29udGFpbmVyIHVuaXRzLgorCisgICAgICAgIEFsc28gZ2VuZXJhbCBjbGVhbnVw
cyB0byBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLgorCisgICAgICAgICogY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6
Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUmFkaWFsR3JhZGllbnRWYWx1
ZTo6Y3JlYXRlR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29uaWNHcmFkaWVudFZh
bHVlOjpjcmVhdGVHcmFkaWVudCk6CisgICAgICAgICogY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjp6b29tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YTo6em9vbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhOjpjb3B5Rm9yRm9udFNpemVXaXRoUGFyZW50U3R5bGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Y29weVdpdGhBZGp1
c3RlZFpvb20gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YTo6Y29weUZvckxpbmVIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhOjpjb3B5V2l0aEFk
anVzdGVkWm9vbUFuZFByb3BlcnR5VG9Db21wdXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NTWF0cml4
UmVhZE9ubHk6OnBhcnNlU3RyaW5nSW50b0Fic3RyYWN0TWF0cml4KToKKyAgICAgICAgKiBjc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXZh
bHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
Y29tcHV0ZUxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
ZWZmZWN0aXZlU2l6ZURlZmF1bHRWYWx1ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sSW5u
ZXJFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cElu
dGVybmFsUGFkZGluZ0JveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjphcHBseUNvbW1vbkJ1
dHRvblBhZGRpbmdUb1N0eWxlKToKKworICAgICAgICBTZXR0aW5nIHRoZSB6b29tIHRvIGEgd2Vp
cmQgdmFsdWUgaGVyZSBkb2VzIG5vdGhpbmcsIGVtcyB1bml0IHJlc29sdXRpb24gaWdub3JlcyBp
dC4KKyAgICAgICAgSnVzdCBkb24ndCBkbyBpdC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnNXaXRoRm9ybUNvbnRy
b2xSZWZyZXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphZGp1c3RTZWFy
Y2hGaWVsZERlY29yYXRpb25QYXJ0U3R5bGUgY29uc3QpOgorICAgICAgICAqIHN0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpDb250YWlu
ZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWls
ZGVyQ29udmVydGVyOjpjb252ZXJ0TGluZUhlaWdodCk6CisgICAgICAgICogc3R5bGUvU3R5bGVC
dWlsZGVyQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckN1c3RvbTo6
bW1MZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmluY2hM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJDdXN0b206OmFwcGx5VmFs
dWVGb250U2l6ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1aWxkZXJTdGF0ZTo6QnVpbGRlclN0YXRlKToKKwogMjAy
Mi0wMy0xNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI4MjczNyk6IGB0ZXh0LXNoYWRvd2AgaXMgY2xpcHBlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IDAxZGZhMjg5Zjk4MzQ3MzY4NmIyMzk4OWZiN2U2
ZmQzMTk4Nzc5NWUuLjM0NDBjMmI4Y2EwYmM3M2YxNzc5YWYwMGQ3MTE5Y2M4YzgyMzEzNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTg4NCw3ICs4ODQsNyBA
QCBSZWY8R3JhZGllbnQ+IENTU0xpbmVhckdyYWRpZW50VmFsdWU6OmNyZWF0ZUdyYWRpZW50KFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjbwogICAgIGlmIChhdXRvKiBkb2N1bWVudEVsZW1lbnQg
PSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICByb290U3R5
bGUgPSBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKCZyZW5kZXJlci5zdHlsZSgpLCByb290U3R5bGUs
IHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJlci52aWV3KCkpOworICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEocmVuZGVyZXIuc3R5bGUoKSwgcm9vdFN0
eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsKIAogICAgIEZs
b2F0UG9pbnQgZmlyc3RQb2ludDsKICAgICBGbG9hdFBvaW50IHNlY29uZFBvaW50OwpAQCAtMTE0
Miw3ICsxMTQyLDcgQEAgUmVmPEdyYWRpZW50PiBDU1NSYWRpYWxHcmFkaWVudFZhbHVlOjpjcmVh
dGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY28KICAgICBpZiAoYXV0byogZG9j
dW1lbnRFbGVtZW50ID0gcmVuZGVyZXIuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSkKICAg
ICAgICAgcm9vdFN0eWxlID0gZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogCi0gICAg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSgmcmVuZGVyZXIuc3R5bGUo
KSwgcm9vdFN0eWxlLCByZW5kZXJlci5wYXJlbnRTdHlsZSgpLCAmcmVuZGVyZXIudmlldygpKTsK
KyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKHJlbmRlcmVyLnN0
eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZpZXco
KSk7CiAKICAgICBGbG9hdFBvaW50IGZpcnN0UG9pbnQgPSBjb21wdXRlRW5kUG9pbnQoZmlyc3RY
KCksIGZpcnN0WSgpLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSk7CiAgICAgaWYgKCFmaXJzdFgoKSkK
QEAgLTEzMzUsNyArMTMzNSw3IEBAIFJlZjxHcmFkaWVudD4gQ1NTQ29uaWNHcmFkaWVudFZhbHVl
OjpjcmVhdGVHcmFkaWVudChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uCiAgICAgaWYgKGF1
dG8qIGRvY3VtZW50RWxlbWVudCA9IHJlbmRlcmVyLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpCiAgICAgICAgIHJvb3RTdHlsZSA9IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsK
IAotICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoJnJlbmRlcmVy
LnN0eWxlKCksIHJvb3RTdHlsZSwgcmVuZGVyZXIucGFyZW50U3R5bGUoKSwgJnJlbmRlcmVyLnZp
ZXcoKSk7CisgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YShyZW5k
ZXJlci5zdHlsZSgpLCByb290U3R5bGUsIHJlbmRlcmVyLnBhcmVudFN0eWxlKCksICZyZW5kZXJl
ci52aWV3KCkpOwogCiAgICAgRmxvYXRQb2ludCBjZW50ZXJQb2ludCA9IGNvbXB1dGVFbmRQb2lu
dChmaXJzdFgoKSwgZmlyc3RZKCksIGNvbnZlcnNpb25EYXRhLCBzaXplKTsKICAgICBpZiAoIWZp
cnN0WCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuY3BwCmluZGV4IGIwMTVmMWFlN2EwNzg2NjdjNWE3NWQ2NGQ1Zjg4YTRmOWIxOGRhMjguLjdi
ODk1MmE5MGIxZTcxMTYyZWU5MjU2MjEwOTA5OGQzYmM4YmFiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5jcHAKQEAgLTM0LDE0ICszNCwz
MiBAQAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlQnVpbGRlclN0YXRlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6Q1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFN0eWxl
OjpCdWlsZGVyQ29udGV4dCYgYnVpbGRlckNvbnRleHQpCisgICAgOiBtX3N0eWxlKCZzdHlsZSkK
KyAgICAsIG1fcm9vdFN0eWxlKGJ1aWxkZXJDb250ZXh0LnJvb3RFbGVtZW50U3R5bGUpCisgICAg
LCBtX3BhcmVudFN0eWxlKCZidWlsZGVyQ29udGV4dC5wYXJlbnRTdHlsZSkKKyAgICAsIG1fcmVu
ZGVyVmlldyhidWlsZGVyQ29udGV4dC5kb2N1bWVudC0+cmVuZGVyVmlldygpKQorICAgICwgbV92
aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZShjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4o
bV9zdHlsZSkpCit7Cit9CisKK0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE6OkNTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRl
clZpZXcqIHJlbmRlclZpZXcpCisgICAgOiBtX3N0eWxlKCZzdHlsZSkKKyAgICAsIG1fcm9vdFN0
eWxlKHJvb3RTdHlsZSkKKyAgICAsIG1fcGFyZW50U3R5bGUocGFyZW50U3R5bGUpCisgICAgLCBt
X3JlbmRlclZpZXcocmVuZGVyVmlldykKKyAgICAsIG1fem9vbSgxLmYpCisgICAgLCBtX3ZpZXdw
b3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNvbnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihtX3N0
eWxlKSkKK3sKK30KKwogZmxvYXQgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6em9vbSgpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX3pvb20pCi0gICAgICAgIHJldHVybiBtX3N0eWxlID8gbV9zdHls
ZS0+ZWZmZWN0aXZlWm9vbSgpIDogMTsKLSAgICByZXR1cm4gKm1fem9vbTsKKyAgICByZXR1cm4g
bV96b29tLnZhbHVlX29yKG1fc3R5bGUgPyBtX3N0eWxlLT5lZmZlY3RpdmVab29tKCkgOiAxLmYp
OwogfQogCiBGbG9hdFNpemUgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTo6ZGVmYXVsdFZpZXdw
b3J0RmFjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YS5oCmluZGV4IGU1YzJiNjJjNTJlYzIxYTM2NTI5ODAxYzdjZDQ4NmFmYmM5NTYx
NDAuLjM5N2MyZmE3Y2EwMDY1MWZkOWQ5YTJmNmEzYjYwMzJiNDNkMTAxMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaApAQCAtNDAsMjkgKzQw
LDE2IEBAIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVy
VmlldzsKIAorbmFtZXNwYWNlIFN0eWxlIHsKK3N0cnVjdCBCdWlsZGVyQ29udGV4dDsKK307CisK
IGNsYXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgewogcHVibGljOgotICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclZpZXcqIHJlbmRlclZpZXcsIGZsb2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVy
dHlJRD4gcHJvcGVydHlUb0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQsIFJlbmRlclN0eWxlKiB2aWV3
cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSA9IG51bGxwdHIpCi0gICAgICAgIDogbV9zdHls
ZShzdHlsZSkKLSAgICAgICAgLCBtX3Jvb3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9w
YXJlbnRTdHlsZShwYXJlbnRTdHlsZSkKLSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURl
dGVjdGlvblN0eWxlKHZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlID8gdmlld3BvcnRE
ZXBlbmRlbmN5RGV0ZWN0aW9uU3R5bGUgOiBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4oc3R5bGUp
KQotICAgICAgICAsIG1fcmVuZGVyVmlldyhyZW5kZXJWaWV3KQotICAgICAgICAsIG1fem9vbSh6
b29tKQotICAgICAgICAsIG1fcHJvcGVydHlUb0NvbXB1dGUocHJvcGVydHlUb0NvbXB1dGUpCi0g
ICAgewotICAgICAgICBBU1NFUlQoem9vbSA+IDApOwotICAgIH0KLQotICAgIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogcm9vdFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIGNvbnN0IFJlbmRl
clZpZXcqIHJlbmRlclZpZXcsIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gcHJvcGVydHlU
b0NvbXB1dGUgPSBzdGQ6Om51bGxvcHQpCi0gICAgICAgIDogbV9zdHlsZShzdHlsZSkKLSAgICAg
ICAgLCBtX3Jvb3RTdHlsZShyb290U3R5bGUpCi0gICAgICAgICwgbV9wYXJlbnRTdHlsZShwYXJl
bnRTdHlsZSkKLSAgICAgICAgLCBtX3ZpZXdwb3J0RGVwZW5kZW5jeURldGVjdGlvblN0eWxlKGNv
bnN0X2Nhc3Q8UmVuZGVyU3R5bGUqPihzdHlsZSkpCi0gICAgICAgICwgbV9yZW5kZXJWaWV3KHJl
bmRlclZpZXcpCi0gICAgICAgICwgbV9wcm9wZXJ0eVRvQ29tcHV0ZShwcm9wZXJ0eVRvQ29tcHV0
ZSkKLSAgICB7Ci0gICAgfQorICAgIC8vIFRoaXMgaXMgdXNlZCBkdXJpbmcgc3R5bGUgYnVpbGRp
bmcuIFRoZSAnem9vbScgcHJvcGVydHkgaXMgdGFrZW4gaW50byBhY2NvdW50LgorICAgIENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBTdHlsZTo6QnVp
bGRlckNvbnRleHQmKTsKKyAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIGlnbm9yZXMgdGhlIGB6b29t
YCBwcm9wZXJ0eS4KKyAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHBh
cmVudFN0eWxlLCBjb25zdCBSZW5kZXJWaWV3Kik7CiAKICAgICBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhKCkgPSBkZWZhdWx0OwogCkBAIC04MCwyNCArNjcsMzkgQEAgcHVibGljOgogICAgIEZs
b2F0U2l6ZSBsYXJnZVZpZXdwb3J0RmFjdG9yKCkgY29uc3Q7CiAgICAgRmxvYXRTaXplIGR5bmFt
aWNWaWV3cG9ydEZhY3RvcigpIGNvbnN0OwogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCBuZXdab29tKSBjb25zdAorICAgIENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEgY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhpcyk7Cisg
ICAgICAgIGNvcHkubV9zdHlsZSA9IHBhcmVudFN0eWxlKCk7CisgICAgICAgIGNvcHkubV96b29t
ID0gMS5mOworICAgICAgICBjb3B5Lm1fcHJvcGVydHlUb0NvbXB1dGUgPSBDU1NQcm9wZXJ0eUZv
bnRTaXplOworICAgICAgICByZXR1cm4gY29weTsKKyAgICB9OworCisgICAgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9vbShmbG9hdCB6b29tKSBjb25zdAogICAg
IHsKLSAgICAgICAgcmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHlsZSwgbV9y
b290U3R5bGUsIG1fcGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgbmV3Wm9vbSwgbV9wcm9wZXJ0
eVRvQ29tcHV0ZSk7CisgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29weSgqdGhp
cyk7CisgICAgICAgIGNvcHkubV96b29tID0gem9vbTsKKyAgICAgICAgcmV0dXJuIGNvcHk7CiAg
ICAgfQogCi0gICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb3B5V2l0aEFkanVzdGVkWm9v
bUFuZFByb3BlcnR5VG9Db21wdXRlKGZsb2F0IHpvb20sIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVy
dHlJRD4gcHJvcGVydHlUb0NvbXB1dGUpIGNvbnN0CisgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSBjb3B5Rm9yTGluZUhlaWdodChmbG9hdCB6b29tKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEobV9zdHlsZSwgbV9yb290U3R5bGUsIG1f
cGFyZW50U3R5bGUsIG1fcmVuZGVyVmlldywgem9vbSwgcHJvcGVydHlUb0NvbXB1dGUpOworICAg
ICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvcHkoKnRoaXMpOworICAgICAgICBjb3B5
Lm1fem9vbSA9IHpvb207CisgICAgICAgIGNvcHkubV9wcm9wZXJ0eVRvQ29tcHV0ZSA9IENTU1By
b3BlcnR5TGluZUhlaWdodDsKKyAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgfQogCiBwcml2YXRl
OgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBtX3N0eWxlIHsgbnVsbHB0ciB9OwogICAgIGNvbnN0
IFJlbmRlclN0eWxlKiBtX3Jvb3RTdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBSZW5kZXJT
dHlsZSogbV9wYXJlbnRTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBSZW5kZXJTdHlsZSogbV92aWV3
cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsKICAgICBjb25zdCBSZW5k
ZXJWaWV3KiBtX3JlbmRlclZpZXcgeyBudWxscHRyIH07CiAgICAgc3RkOjpvcHRpb25hbDxmbG9h
dD4gbV96b29tOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1NTUHJvcGVydHlJRD4gbV9wcm9wZXJ0eVRv
Q29tcHV0ZTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFjay4KKyAgICBSZW5kZXJTdHls
ZSogbV92aWV3cG9ydERlcGVuZGVuY3lEZXRlY3Rpb25TdHlsZSB7IG51bGxwdHIgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01NYXRyaXhSZWFkT25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4UmVhZE9u
bHkuY3BwCmluZGV4IDhiMGNlZjU1NTVmMzIyN2NkM2FmY2EzNjgwNjRlZDJhMjhhMGZmYTcuLmQ4
NDQ4YjcwN2RjNzA1ZjRkMGQ5NWJjNTllYTMyYmZkYjdmMzQ1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIEV4Y2VwdGlvbk9y
PERPTU1hdHJpeFJlYWRPbmx5OjpBYnN0cmFjdE1hdHJpeD4gRE9NTWF0cml4UmVhZE9ubHk6OnBh
cnNlU3RyaW5nSW50CiAgICAgICAgIHJldHVybiBBYnN0cmFjdE1hdHJpeCB7IH07CiAKICAgICBU
cmFuc2Zvcm1PcGVyYXRpb25zIG9wZXJhdGlvbnM7Ci0gICAgaWYgKCF0cmFuc2Zvcm1zRm9yVmFs
dWUoKnZhbHVlLCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCksIG9wZXJhdGlvbnMpKQorICAg
IGlmICghdHJhbnNmb3Jtc0ZvclZhbHVlKCp2YWx1ZSwgeyB9LCBvcGVyYXRpb25zKSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKICAgICBBYnN0cmFjdE1hdHJp
eCBtYXRyaXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5k
ZXggMzQ1Y2MyNDUzNGJjMDQ1MTg2NzAzNWZhYTAzM2JkZjVjZDA2MDRmNi4uZDk5NDg2MzAyMzE4
Yzc2Zjk2ODNiYTIxYzkxYmJiMjBhMGEzNDQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtOTQ2LDcgKzk0Niw3IEBAIGJvb2wgTWVkaWFRdWVyeUV2
YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeUV4cHJlc3Npb24mIGV4cHJlc3Npb24p
IGNvbnN0CiAgICAgZGVmYXVsdFN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCk7CiAgICAgCiAg
ICAgLy8gUGFzcyBgbnVsbHB0cmAgZm9yIGBwYXJlbnRTdHlsZWAgYmVjYXVzZSB3ZSBhcmUgaW4g
dGhlIGNvbnRleHQgb2YgYSBtZWRpYSBxdWVyeS4KLSAgICByZXR1cm4gZnVuY3Rpb24oZXhwcmVz
c2lvbi52YWx1ZSgpLCB7IG1fc3R5bGUsICZkZWZhdWx0U3R5bGUsIG51bGxwdHIsIGRvY3VtZW50
LnJlbmRlclZpZXcoKSwgMSwgc3RkOjpudWxsb3B0IH0sICpmcmFtZSwgTm9QcmVmaXgpOworICAg
IHJldHVybiBmdW5jdGlvbihleHByZXNzaW9uLnZhbHVlKCksIHsgKm1fc3R5bGUsICZkZWZhdWx0
U3R5bGUsIG51bGxwdHIsIGRvY3VtZW50LnJlbmRlclZpZXcoKSB9LCAqZnJhbWUsIE5vUHJlZml4
KTsKIH0KIAogYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjptZWRpYUF0dHJpYnV0ZU1hdGNoZXMo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGF0dHJpYnV0ZVZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAppbmRl
eCAzNjIxOWYzZWM3ZjE0N2Q0YWZiZjYyMDJlOTQ0MzY5ODFjNjgzYjU0Li5kNmU0OGEyM2ZmOTdl
MGE4YjczNmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcApAQCAtNTEsNyArNTEsNyBAQCBmbG9h
dCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6Y29tcHV0ZUxlbmd0aChkb3VibGUgdmFsdWUsIENTU1Vu
aXRUeXBlIHR5cGUsIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0eWxlID0g
cmVuZGVyZXItPnN0eWxlKCk7CiAKLSAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZl
cnNpb25EYXRhKCZzdHlsZSwgJnN0eWxlLCByZW5kZXJlci0+cGFyZW50U3R5bGUoKSwgcmVuZGVy
ZXIpOworICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEoc3R5bGUs
ICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxlKCksIHJlbmRlcmVyKTsKICAgICAvLyBCZWNh
dXNlIHdlIGV2YWx1YXRlICJzaXplcyIgYXQgcGFyc2UgdGltZSAoYmVmb3JlIHN0eWxlIGhhcyBi
ZWVuIHJlc29sdmVkKSwgdGhlIGZvbnQgbWV0cmljcyB1c2VkIGZvciB0aGVzZSBzcGVjaWZpYyB1
bml0cwogICAgIC8vIGFyZSBub3QgYXZhaWxhYmxlLiBUaGUgZm9udCBzZWxlY3RvcidzIGludGVy
bmFsIGNvbnNpc3RlbmN5IGlzbid0IGd1YXJhbnRlZWQganVzdCB5ZXQsIHNvIHdlIGNhbiBqdXN0
IHRlbXBvcmFyaWx5IGNsZWFyCiAgICAgLy8gdGhlIHBvaW50ZXIgdG8gaXQgZm9yIHRoZSBkdXJh
dGlvbiBvZiB0aGUgdW5pdCBldmFsdWF0aW9uLiBUaGlzIGlzIGFjY2VwdGlibGUgYmVjYXVzZSB0
aGUgc3R5bGUgYWx3YXlzIGNvbWVzIGZyb20gdGhlCkBAIC0xNTcsNyArMTU3LDcgQEAgdW5zaWdu
ZWQgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OmVmZmVjdGl2ZVNpemVEZWZhdWx0VmFsdWUoKQogICAg
IGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwogICAgIGF1dG8mIHN0eWxlID0gcmVu
ZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIGNsYW1wVG88ZmxvYXQ+KENTU1ByaW1pdGl2ZVZh
bHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZSh7ICZzdHlsZSwgJnN0eWxlLCByZW5kZXJl
ci0+cGFyZW50U3R5bGUoKSwgcmVuZGVyZXIgfSwgQ1NTVW5pdFR5cGU6OkNTU19WVywgMTAwLjAp
KTsKKyAgICByZXR1cm4gY2xhbXBUbzxmbG9hdD4oQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVO
b25DYWxjTGVuZ3RoRG91YmxlKHsgc3R5bGUsICZzdHlsZSwgcmVuZGVyZXItPnBhcmVudFN0eWxl
KCksIHJlbmRlcmVyIH0sIENTU1VuaXRUeXBlOjpDU1NfVlcsIDEwMC4wKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDdhYjk3YjliNjFmZGUwODQ0NTkx
YWJlZWZiZjZkNjFmZDM3YjlkNzcuLmMwZThmZWU1MDNmZTdlZmMyM2YzYzhkNmI0NzJiNTU0MzYy
YzdjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENv
bnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0ZDo6b3B0aW9uYWw8
U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OnJlc29sdmVDdXN0
b21TdHlsZShjCiAgICAgICAgIC8vIHN0eWxlIHRvIGNhbGN1bGF0ZSBlbSBsZW5ndGhzLiBTaW5j
ZSB0aGUgZWxlbWVudCBtaWdodCBub3QgYmUgaW4gYSBkb2N1bWVudCwganVzdCBwYXNzIG51bGxw
dHIKICAgICAgICAgLy8gZm9yIHRoZSByb290IGVsZW1lbnQgc3R5bGUsIHRoZSBwYXJlbnQgZWxl
bWVudCBzdHlsZSwgYW5kIHRoZSByZW5kZXIgdmlldy4KICAgICAgICAgYXV0byBlbVNpemUgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKLSAgICAg
ICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEgeyBuZXdTdHlsZS5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwg
MS4wLCBzdGQ6Om51bGxvcHQgfSk7CisgICAgICAgIGludCBwaXhlbHMgPSBlbVNpemUtPmNvbXB1
dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgKm5ld1N0eWxlLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyIH0pOwogICAgICAgICBuZXdTdHlsZS0+c2V0RmxleEJhc2lz
KExlbmd0aCB7IHBpeGVscywgTGVuZ3RoVHlwZTo6Rml4ZWQgfSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMzBjZDM0M2VhN2RmOTE2
OGNjM2NkZTQ3ZGJlZjhmNzU5ZTg4ZjczMS4uZjFkNjhmNjM3YmI5YTgwOTdkN2FjMmY0YzEwMzEx
MGU2ZDdlMTc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQpAQCAtNzAyLDcgKzcwMiw3IEBAIExlbmd0aEJveCBSZW5kZXJUaGVtZUlPUzo6cG9wdXBJbnRl
cm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAgZmxvYXQg
cGFkZGluZyA9IE1lbnVMaXN0QnV0dG9uUGFkZGluZ0FmdGVyOwogICAgIGlmIChzZXR0aW5ncy5p
T1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkKCkpIHsKICAgICAgICAgYXV0byBlbVNpemUgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKDEuMCwgQ1NTVW5pdFR5cGU6OkNTU19FTVMpOwotICAg
ICAgICBwYWRkaW5nID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGZsb2F0PihDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhKCZzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgMS4wLCBzdGQ6
Om51bGxvcHQpKTsKKyAgICAgICAgcGFkZGluZyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxmbG9h
dD4oeyBzdHlsZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICB9CiAKICAgICBp
ZiAoc3R5bGUuZWZmZWN0aXZlQXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkgewpA
QCAtNzUyLDcgKzc1Miw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5Q29tbW9uQnV0dG9uUGFkZGluZ1Rv
U3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlCiAgICAgRG9jdW1lbnQm
IGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgIGF1dG8gZW1TaXplID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZSgwLjUsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKICAgICAvLyBX
ZSBkb24ndCBuZWVkIHRoaXMgZWxlbWVudCdzIHBhcmVudCBzdHlsZSB0byBjYWxjdWxhdGUgYGVt
YCB1bml0cywgc28gaXQncyBva2F5IHRvIHBhc3MgbnVsbHB0ciBmb3IgaXQgaGVyZS4KLSAgICBp
bnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSgmc3R5bGUsIGRvY3VtZW50LnJlbmRlclN0eWxlKCksIG51bGxwdHIsIGRvY3VtZW50
LnJlbmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUoKSA/IGRvY3VtZW50LmZyYW1lKCktPnBhZ2Va
b29tRmFjdG9yKCkgOiAxLikpOworICAgIGludCBwaXhlbHMgPSBlbVNpemUtPmNvbXB1dGVMZW5n
dGg8aW50Pih7IHN0eWxlLCBkb2N1bWVudC5yZW5kZXJTdHlsZSgpLCBudWxscHRyLCBkb2N1bWVu
dC5yZW5kZXJWaWV3KCkgfSk7CiAgICAgc3R5bGUuc2V0UGFkZGluZ0JveChMZW5ndGhCb3goMCwg
cGl4ZWxzLCAwLCBwaXhlbHMpKTsKIH0KIApAQCAtMTI4NSw3ICsxMjg1LDcgQEAgdm9pZCBSZW5k
ZXJUaGVtZUlPUzo6YWRqdXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBF
bGVtZW50KiBlbGVtZW4KICAgICAvLyBTaW5jZSB0aGUgZWxlbWVudCBtaWdodCBub3QgYmUgaW4g
YSBkb2N1bWVudCwganVzdCBwYXNzIG51bGxwdHIgZm9yIHRoZSByb290IGVsZW1lbnQgc3R5bGUs
CiAgICAgLy8gdGhlIHBhcmVudCBlbGVtZW50IHN0eWxlLCBhbmQgdGhlIHJlbmRlciB2aWV3Lgog
ICAgIGF1dG8gZW1TaXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSgxLjAsIENTU1VuaXRU
eXBlOjpDU1NfRU1TKTsKLSAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5jb21wdXRlTGVuZ3RoPGlu
dD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KSk7CisgICAgaW50IHBpeGVscyA9IGVtU2l6ZS0+Y29t
cHV0ZUxlbmd0aDxpbnQ+KHsgc3R5bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfSk7CiAg
ICAgc3R5bGUuc2V0UGFkZGluZ0JveChMZW5ndGhCb3goMCwgcGl4ZWxzLCAwLCBwaXhlbHMpKTsK
IAogICAgIGlmICghZWxlbWVudCkKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgUmVuZGVyVGhl
bWVJT1M6OnBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9uc1dpdGhGb3JtQ29udHJvbFJlZnJl
c2goY29uc3QKICAgICB9CiAKICAgICBhdXRvIGVtU2l6ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUoMS4wLCBDU1NVbml0VHlwZTo6Q1NTX0VNUyk7Ci0gICAgYXV0byBlbVBpeGVscyA9IGVt
U2l6ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5
bGUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KSk7CisgICAg
YXV0byBlbVBpeGVscyA9IGVtU2l6ZS0+Y29tcHV0ZUxlbmd0aDxmbG9hdD4oeyBzdHlsZSwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9KTsKICAgICBhdXRvIGdseXBoU2NhbGUgPSAwLjY1ZiAq
IGVtUGl4ZWxzIC8gZ2x5cGhTaXplLndpZHRoKCk7CiAgICAgZ2x5cGhTaXplID0gZ2x5cGhTY2Fs
ZSAqIGdseXBoU2l6ZTsKIApAQCAtMjkxNiw3ICsyOTE2LDcgQEAgdm9pZCBSZW5kZXJUaGVtZUlP
Uzo6YWRqdXN0U2VhcmNoRmllbGREZWNvcmF0aW9uUGFydFN0eWxlKFJlbmRlclN0eWxlJiBzdHls
ZSwgY28KICAgICBjb25zdGV4cHIgaW50IHNlYXJjaEZpZWxkRGVjb3JhdGlvbkVtU2l6ZSA9IDE7
CiAgICAgY29uc3RleHByIGludCBzZWFyY2hGaWVsZERlY29yYXRpb25NYXJnaW4gPSA0OwogCi0g
ICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252ZXJzaW9uRGF0YSgmc3R5bGUsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIDEuMCwgc3RkOjpudWxsb3B0KTsKKyAgICBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhKHN0eWxlLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyKTsKIAogICAgIGF1dG8gZW1TaXplID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShz
ZWFyY2hGaWVsZERlY29yYXRpb25FbVNpemUsIENTU1VuaXRUeXBlOjpDU1NfRU1TKTsKICAgICBh
dXRvIHNpemUgPSBlbVNpemUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KGNvbnZlcnNpb25EYXRhKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApp
bmRleCA1YTc5MDk1MmRmMzg2MjE0MGFjZDY2M2E5NDFmYWY4NzgyZTYxODBkLi5jNDViNWFjOWUz
ZjI5NmU1ZTkyOTZmYTM0MTVhOTNiNmNkOTJkOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC03NCw3ICs3NCw3IEBAIGF1dG8g
Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lcihjb25zdCBGaWx0ZXJlZENv
bnRhaW5lclF1ZXJ5JiBmaWx0CiAgICAgICAgIGF1dG8mIHZpZXcgPSByZW5kZXJlci0+dmlldygp
OwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgcmVuZGVyZXIsCi0gICAgICAgICAgICBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIHsgJnJlbmRlcmVyLT5zdHlsZSgpLCAmdmlldy5zdHls
ZSgpLCBudWxscHRyLCAmdmlldywgMSB9CisgICAgICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhIHsgcmVuZGVyZXItPnN0eWxlKCksICZ2aWV3LnN0eWxlKCksIG51bGxwdHIsICZ2aWV3
IH0KICAgICAgICAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oCmluZGV4IDQ1MzE0MWExNTc4ZmY2MDA0Mzc2ZjYwZjE2ODI1ZWZjMWZi
YzBhZjcuLmFjYmJmNWY5YTdlMWM3MmQ5Y2NhYjg1MDIzZDdlZmQ0ZDIxN2IyYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC0xNTY1LDcgKzE1
NjUsNyBAQCBpbmxpbmUgc3RkOjpvcHRpb25hbDxMZW5ndGg+IEJ1aWxkZXJDb252ZXJ0ZXI6OmNv
bnZlcnRMaW5lSGVpZ2h0KEJ1aWxkZXJTdGF0ZSYgYgogICAgICAgICByZXR1cm4gUmVuZGVyU3R5
bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCk7CiAKICAgICBpZiAocHJpbWl0aXZlVmFsdWUuaXNMZW5n
dGgoKSkgewotICAgICAgICBhdXRvIGNvbnZlcnNpb25EYXRhID0gYnVpbGRlclN0YXRlLmNzc1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbUFuZFByb3BlcnR5VG9D
b21wdXRlKHpvb21XaXRoVGV4dFpvb21GYWN0b3IoYnVpbGRlclN0YXRlKSwgQ1NTUHJvcGVydHlM
aW5lSGVpZ2h0KTsKKyAgICAgICAgYXV0byBjb252ZXJzaW9uRGF0YSA9IGJ1aWxkZXJTdGF0ZS5j
c3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weUZvckxpbmVIZWlnaHQoem9vbVdpdGhUZXh0
Wm9vbUZhY3RvcihidWlsZGVyU3RhdGUpKTsKICAgICAgICAgTGVuZ3RoIGxlbmd0aCA9IHByaW1p
dGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CiAgICAgICAg
IGlmIChtdWx0aXBsaWVyICE9IDEuZikKICAgICAgICAgICAgIGxlbmd0aCA9IExlbmd0aChsZW5n
dGgudmFsdWUoKSAqIG11bHRpcGxpZXIsIExlbmd0aFR5cGU6OkZpeGVkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXggZTg4NGU1YmNmYWM1ZGQ0ODUwOWRl
ZDIzOWVlMmVmNjZhZjNlMTRlZC4uNjc3ODRkNmQwOTY2Y2FmMjgwODVjNDNkNWM5MWE4ZDUzYWY2
NDNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9t
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTI1
MCwxMiArMjUwLDEyIEBAIGlubGluZSB2b2lkIEJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVab29t
KEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlLCBDU1NWYWx1ZSYKIGlubGluZSBMZW5ndGggQnVp
bGRlckN1c3RvbTo6bW1MZW5ndGgoZG91YmxlIG1tKQogewogICAgIFJlZjxDU1NQcmltaXRpdmVW
YWx1ZT4gdmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtbSwgQ1NTVW5pdFR5cGU6OkNT
U19NTSkpOwotICAgIHJldHVybiB2YWx1ZS5nZXQoKS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpKTsKKyAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0
ZUxlbmd0aDxMZW5ndGg+KHsgfSk7CiB9CiBpbmxpbmUgTGVuZ3RoIEJ1aWxkZXJDdXN0b206Omlu
Y2hMZW5ndGgoZG91YmxlIGluY2gpCiB7CiAgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1
ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGluY2gsIENTU1VuaXRUeXBlOjpDU1NfSU4pKTsK
LSAgICByZXR1cm4gdmFsdWUuZ2V0KCkuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEoKSk7CisgICAgcmV0dXJuIHZhbHVlLmdldCgpLmNvbXB1dGVMZW5ndGg8
TGVuZ3RoPih7IH0pOwogfQogYm9vbCBCdWlsZGVyQ3VzdG9tOjpnZXRQYWdlU2l6ZUZyb21OYW1l
KENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlU2l6ZU5hbWUsIENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdl
T3JpZW50YXRpb24sIExlbmd0aCYgd2lkdGgsIExlbmd0aCYgaGVpZ2h0KQogewpAQCAtMTgzNCwx
MyArMTgzNCwxMyBAQCBpbmxpbmUgdm9pZCBCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlRm9udFNp
emUoQnVpbGRlclN0YXRlJiBidWlsZGVyU3RhdGUsIENTU1ZhbAogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRJc0Fic29sdXRlU2l6ZShwYXJlbnRJc0Fic29sdXRlU2l6
ZSB8fCAhKHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgpIHx8IHByaW1pdGl2ZVZhbHVlLmlz
Rm9udFJlbGF0aXZlTGVuZ3RoKCkpKTsKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmlzTGVu
Z3RoKCkpIHsKLSAgICAgICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lv
bkRhdGEgeyAmYnVpbGRlclN0YXRlLnBhcmVudFN0eWxlKCksIGJ1aWxkZXJTdGF0ZS5yb290RWxl
bWVudFN0eWxlKCksICZidWlsZGVyU3RhdGUucGFyZW50U3R5bGUoKSwgYnVpbGRlclN0YXRlLmRv
Y3VtZW50KCkucmVuZGVyVmlldygpLCAxLjBmLCBDU1NQcm9wZXJ0eUZvbnRTaXplLCAmYnVpbGRl
clN0YXRlLnN0eWxlKCkgfTsKKyAgICAgICAgICAgIC8vIGZvbnQtc2l6ZSBpcyByZXNvbHZlZCBh
Z2FpbnN0IHRoZSBwYXJlbnQgc3R5bGUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBzdHlsZS4KKyAg
ICAgICAgICAgIGF1dG8gY29udmVyc2lvbkRhdGEgPSBidWlsZGVyU3RhdGUuY3NzVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSgpLmNvcHlGb3JGb250U2l6ZVdpdGhQYXJlbnRTdHlsZSgpOwogICAgICAg
ICAgICAgc2l6ZSA9IHByaW1pdGl2ZVZhbHVlLmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KGNvbnZlcnNp
b25EYXRhKTsKICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5pc1BlcmNlbnRhZ2Uo
KSkKICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUuZmxvYXRWYWx1ZSgpICogcGFy
ZW50U2l6ZSkgLyAxMDAuMGY7CiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmlzQ2Fs
Y3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBX
aHkgZG9lcyB0aGlzIG5lZWQgYSBkaWZmZXJlbnQgcm9vdCBzdHlsZSB0aGFuIHRoZSBpc0xlbmd0
aCBjYXNlIGFib3ZlPwotICAgICAgICAgICAgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSBjb252
ZXJzaW9uRGF0YSB7ICZidWlsZGVyU3RhdGUucGFyZW50U3R5bGUoKSwgYnVpbGRlclN0YXRlLmNz
c1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5yb290U3R5bGUoKSwgJmJ1aWxkZXJTdGF0ZS5wYXJl
bnRTdHlsZSgpLCBidWlsZGVyU3RhdGUuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCksIDEuMGYsIENT
U1Byb3BlcnR5Rm9udFNpemUsICZidWlsZGVyU3RhdGUuc3R5bGUoKSB9OworICAgICAgICAgICAg
YXV0byBjb252ZXJzaW9uRGF0YSA9IGJ1aWxkZXJTdGF0ZS5jc3NUb0xlbmd0aENvbnZlcnNpb25E
YXRhKCkuY29weUZvckZvbnRTaXplV2l0aFBhcmVudFN0eWxlKCk7CiAgICAgICAgICAgICBzaXpl
ID0gcHJpbWl0aXZlVmFsdWUuY3NzQ2FsY1ZhbHVlKCktPmNyZWF0ZUNhbGN1bGF0aW9uVmFsdWUo
Y29udmVyc2lvbkRhdGEpLT5ldmFsdWF0ZShwYXJlbnRTaXplKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUJ1aWxkZXJTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0
ZS5jcHAKaW5kZXggMGMxNmY0M2UwNDUzZTdhMGQ5YzgxNWMzYWIzZGY1MDEwNDM3NWE4OS4uNjdj
ZTk5OTU5YjM2NTk5ZWZkMjUwYTIyNjQ4MDhkMGMxYWNkNWIwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBCdWlsZGVyU3Rh
dGU6OkJ1aWxkZXJTdGF0ZShCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJTdHlsZSYgc3R5bGUsIEJ1
aWxkZXJDb250ZXh0JgogICAgICwgbV9zdHlsZU1hcCgqdGhpcykKICAgICAsIG1fc3R5bGUoc3R5
bGUpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKLSAgICAsIG1fY3NzVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIHJvb3RFbGVtZW50U3R5bGUoKSwgJnBhcmVudFN0eWxl
KCksIGRvY3VtZW50KCkucmVuZGVyVmlldygpKQorICAgICwgbV9jc3NUb0xlbmd0aENvbnZlcnNp
b25EYXRhKHN0eWxlLCBtX2NvbnRleHQpCiB7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>