<?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>43008</bug_id>
          
          <creation_ts>2010-07-26 15:01:15 -0700</creation_ts>
          <short_desc>Simplify speech input plumbing in webcore and webkit</short_desc>
          <delta_ts>2010-07-27 00:51:14 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256268</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-26 15:01:15 -0700</bug_when>
    <thetext>A few related changes to make things simpler with the speech input plumbing between WebCore &lt;&gt; WebKit. This will help in subsequent patches for adding testing/mocking code and the mac/linux port implementation.

- Each WebCore::InputFieldSpeechButtonElement object was creating one WebCore::SpeechInput object for accessing the WebKit speech client, and there were 2 listener interfaces involved. Instead, now WebCore::Page creates only 1 instance of WebCore::SpeechInput and WebCore::InputFieldSpeechButtonElement calls the webkit APIs through this object.
- WebKit::SpeechInputClientImpl was having some intelligence to deal with starting speech recognition when another instance was already running. This has now been moved to the above mentioned WebCore::SpeechInput object which WebCore::Page maintains. With this change, WebKit::SpeechInputClientImpl becomes a dumb proxy between WebCore and the WebKit.
- Added necessary methods to WebCore::SpeechInput and WebCore::SpeechInputClient so that the above mentioned functionality can be moved from WebKit::SpeechInputClientImpl to WebCore::SpeechInput.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256275</commentid>
    <comment_count>1</comment_count>
      <attachid>62618</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-26 15:19:21 -0700</bug_when>
    <thetext>Created attachment 62618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256391</commentid>
    <comment_count>2</comment_count>
      <attachid>62618</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-26 22:25:35 -0700</bug_when>
    <thetext>Comment on attachment 62618
Patch

The code change looks OK.
But please re-make the patch with the latest WebKit.  Our commit-queue has a bug for ChangeLog diff not starting with the first line like your patch.


&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index e26d1854a9a330a50728633b8e55d07feb945f6d..7226ef6e566e8a6849f4f2cc3ccd614f118f3963 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,5 +1,39 @@
&gt;  2010-07-26  Satish Sampath  &lt;satish@chromium.org&gt;
&gt;  
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Simplify speech input plumbing in webcore and webkit
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=43008


&gt; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
&gt; index 0309952965ca68664268ba361e5c63f80f6c7612..3dddb2d6bc562091b15d992050558259a1c7d6dd 100644
&gt; --- a/WebKit/chromium/ChangeLog
&gt; +++ b/WebKit/chromium/ChangeLog
&gt; @@ -1,5 +1,20 @@
&gt;  2010-07-26  Satish Sampath  &lt;satish@chromium.org&gt;
&gt;  
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Simplify speech input plumbing in webcore and webkit
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=43008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256395</commentid>
    <comment_count>3</comment_count>
      <attachid>62646</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-26 22:55:59 -0700</bug_when>
    <thetext>Created attachment 62646
Patch

Merged with latest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256405</commentid>
    <comment_count>4</comment_count>
      <attachid>62646</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-26 23:43:38 -0700</bug_when>
    <thetext>Comment on attachment 62646
Patch

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256427</commentid>
    <comment_count>5</comment_count>
      <attachid>62646</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 00:51:09 -0700</bug_when>
    <thetext>Comment on attachment 62646
Patch

Clearing flags on attachment: 62646

Committed r64111: &lt;http://trac.webkit.org/changeset/64111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256428</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 00:51:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62618</attachid>
            <date>2010-07-26 15:19:21 -0700</date>
            <delta_ts>2010-07-26 22:55:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43008-20100726231918.patch</filename>
            <type>text/plain</type>
            <size>23792</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTI2ZDE4NTRhOWEzMzBhNTA3Mjg2MzNiOGU1NWQwN2ZlYjk0NWY2ZC4uNzIyNmVmNmU1NjZlOGE2
ODQ5ZjRmMmNjM2NjZDYxNGYxMThmMzk2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzOSBAQAogMjAxMC0wNy0yNiAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IHNwZWVjaCBpbnB1dCBwbHVtYmlu
ZyBpbiB3ZWJjb3JlIGFuZCB3ZWJraXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQzMDA4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIGZ1bmN0aW9u
YWxpdHkgaXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3Zl
ZCBhIGhlYWRlciBmaWxlLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaElucHV0KTogQ3JlYXRlcyBh
bmQgcmV0dXJucyBTcGVlY2hJbnB1dCB3aGVuIG5lZWRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0LmNwcDogQWRkZWQgbWV0aG9kcyB0byBwcm94
eSBhbmQgY2FsbGJhY2tzIGJldHdlZW4gaW5wdXQgZWxlbWVudHMgYW5kIFdlYktpdAorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OlNwZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaElucHV0OjpkaWRDb21wbGV0ZVJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dDo6ZGlkQ29tcGxldGVSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5w
dXQ6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXQuaDoKKyAgICAg
ICAgKiBwYWdlL1NwZWVjaElucHV0Q2xpZW50Lmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1
dENsaWVudExpc3RlbmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExp
c3RlbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHA6IEFkZGVkIG9uZSBtb3JlIGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVs
ZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNwZWVjaElucHV0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkaWRDb21wbGV0ZVJl
Y29nbml0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
Lmg6CisKKzIwMTAtMDctMjYgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KIAogICAgICAgICBBZGQgV2ViS2l0
IHBsdW1iaW5nIHRvIGNvbm5lY3Qgc3BlZWNoIHJlcXVlc3RzIGFuZCBjYWxsYmFja3MgYmV0d2Vl
biBXZWJDb3JlIGFuZCB0aGUgZW1iZWRkZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3YTUxM2UyMmVhYTg1YWU4OWFh
Mzg4NGEyM2M5YjA4OWY1YTAxNDAxLi42N2QzODQ0ZDkzZTFhZWQ0YjUzOTVlYmQ1YmMxZGYxZjVl
OTc3Y2I1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KQEAgLTI5NTUsNyArMjk1NSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0LmggXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKLQlXZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXRMaXN0ZW5lci5oCiAKIGVsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjUzZjQ1NjE3YTBkNThlZTcyMTlkNjVmNDVmMGFj
ZGQxOWIzYmE3Ny4uOGJmNmE3MjQxZjUwMTNlNTEyMTg1MmYxMDE4NjNkMzI1NzdhZGU4OCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTIwMzksNyArMjAzOSw2IEBACiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dC5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXQuaCcsCiAgICAgICAgICAgICAncGFnZS9T
cGVlY2hJbnB1dENsaWVudC5oJywKLSAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAnLAogICAgICAgICAgICAgJ3Bh
Z2UvU3VzcGVuZGFibGVUaW1lci5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA5MDU0MjJjZGI2NzViYTJiMTFjOTkzNTk5ZDBk
OGNlZmZmMTFlNTQuLjA3NTE4MDlhYmM2MTNmMWFkYTYyZDE2ZTdhNWJhZTVlZDA4MWVkMzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMTYxMiw3ICsxNjEyLDYgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0LmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRD
bGllbnQuaCBcCi0gICAgcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggXAogICAgIHBh
Z2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAog
ICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggNDQ3OTE4MjVhZjQ2ZTgyYzQ5ZjI1ZTNhNmUzZTdkNjIxNWJjMWI2YS4uNTk5
NjcwM2M5Y2M2ZThmNTY2ZDZlYzIwODAxMjU0NTQ1OTQ2MmUxNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjUwMSwxMCArMjI1MDEsNiBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0
Q2xpZW50TGlzdGVuZXIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRMaXN0ZW5lci5oIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YWI4OGRhMzAxM2U4ZTU3OWE5OTYwOGVlNjY1YzhlMGU0MDc5N2MxMi4uNjZjNTQzNWU3YzdhZGY2
NGU0ZDcxODlkYjlmZWE3Yjk5MDk4YzZkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzNTEsNyArMTM1MSw2IEBACiAJCTc1NzhGOTBCMTFEREYyNjkw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwODExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQu
Y3BwICovOyB9OwogCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA5MTFE
REYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovOyB9OwogCQk3NTc4RjkwRDExRERGMjY5
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovOyB9OwotCQk3NTc4RjkxRjExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRDbGllbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIuaCAqLzsgfTsKIAkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElu
cHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi87
IH07CiAJCTc1NzkzRTgzMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODAwRDBDRTBC
MzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAgKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMw
MDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQu
aCAqLzsgfTsKQEAgLTcxMjUsNyArNzEyNCw2IEBACiAJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzND
NSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVlY2hJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTA5
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0
Q2xpZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
SW5wdXRDbGllbnRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4
RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VFdmVu
dC5jcHA7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwogCQk3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZXNzYWdlRXZlbnQuaDsgcGF0aCA9IGRv
bS9NZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMTIzODQs
NyArMTIzODIsNiBAQAogCQkJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dC5jcHAgKi8sCiAJCQkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Lmgg
Ki8sCiAJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50Lmgg
Ki8sCi0JCQkJNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlz
dGVuZXIuaCAqLywKIAkJCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRM
aXN0ZW5lci5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJs
ZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFi
bGVUaW1lci5oICovLApAQCAtMTkzNzUsNyArMTkzNzIsNiBAQAogCQkJCTYyNkNERTBGMTE0MDQy
NEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3
OEY5MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTc1NzhGOTFGMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVu
dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlF
NjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggYWFmM2Q0Y2ZlZDFhYzk5NmIxZTEzZjkyMTdlODEyNTcyYmY5NDQy
MS4uMWZkOTM1NWVlOWVmZDkxNDdkNDQwN2M2MjU3ZTMzYzVmYWUwZmU5MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjIs
NiArNjIsNyBAQAogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlNwZWVjaElu
cHV0LmgiCiAjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIKICNpbmNsdWRlICJTdHJpbmdI
YXNoLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgpAQCAtNzkxLDYgKzc5Miwx
NiBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiBQYWdlOjppbnNwZWN0b3JUaW1lbGluZUFnZW50
KCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKK1NwZWVjaElu
cHV0KiBQYWdlOjpzcGVlY2hJbnB1dCgpCit7CisgICAgQVNTRVJUKG1fc3BlZWNoSW5wdXRDbGll
bnQpOworICAgIGlmICghbV9zcGVlY2hJbnB1dC5nZXQoKSkKKyAgICAgICAgbV9zcGVlY2hJbnB1
dC5zZXQobmV3IFNwZWVjaElucHV0KG1fc3BlZWNoSW5wdXRDbGllbnQpKTsKKyAgICByZXR1cm4g
bV9zcGVlY2hJbnB1dC5nZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OnByaXZhdGVCcm93
c2luZ1N0YXRlQ2hhbmdlZCgpCiB7CiAgICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkID0g
bV9zZXR0aW5ncy0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggODU5OWE4MzIwNzZjZjBi
MTQ0MDIxYzA0MTU4NzliNDA5YmQyMDQ1Ny4uYWRjYTRmMDkxODBhODQ0YzAxOTVkNWIwOWYyNjIz
OTVhOTk0MjI0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC03MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogICAgIGNsYXNzIFNlbGVjdGlvbkNvbnRyb2xsZXI7CiAg
ICAgY2xhc3MgU2V0dGluZ3M7CisgICAgY2xhc3MgU3BlZWNoSW5wdXQ7CiAgICAgY2xhc3MgU3Bl
ZWNoSW5wdXRDbGllbnQ7CiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCkBAIC0xNTUsNyArMTU2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKICAgICAgICAgdm9pZCBzZXRTcGVlY2hJbnB1dENsaWVudChTcGVlY2hJbnB1dENsaWVudCog
Y2xpZW50KSB7IG1fc3BlZWNoSW5wdXRDbGllbnQgPSBjbGllbnQ7IH0KLSAgICAgICAgU3BlZWNo
SW5wdXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hJ
bnB1dENsaWVudDsgfQorICAgICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICNlbmRp
ZgogICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdz
LmdldCgpOyB9CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBjb25zdCB7IHJl
dHVybiBtX3Byb2dyZXNzLmdldCgpOyB9CkBAIC0yNzYsNiArMjc3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAgICAgU3BlZWNo
SW5wdXRDbGllbnQqIG1fc3BlZWNoSW5wdXRDbGllbnQ7CisgICAgICAgIE93blB0cjxTcGVlY2hJ
bnB1dD4gbV9zcGVlY2hJbnB1dDsKICNlbmRpZgogICAgICAgICBPd25QdHI8U2V0dGluZ3M+IG1f
c2V0dGluZ3M7CiAgICAgICAgIE93blB0cjxQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jlc3M7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwIGIvV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0LmNwcAppbmRleCBlYzMzOGM5ZTllNjgyNjI0Y2UzMDRhNGE3OTViMmM2NDM5NmNi
NTViLi40ZjM3OTg4OTYxOWFlM2MzZWU5MGUwNjAyMGJhNGE1YjIyODgwMGU1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dC5jcHAKQEAgLTM5LDI3ICszOSw0OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNw
ZWVjaElucHV0OjpTcGVlY2hJbnB1dChTcGVlY2hJbnB1dENsaWVudCogY2xpZW50LCBTcGVlY2hJ
bnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKK1NwZWVjaElucHV0OjpTcGVlY2hJbnB1dChTcGVlY2hJ
bnB1dENsaWVudCogY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9saXN0
ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fbGlzdGVuZXIoMCkKIHsKIH0KIAogdm9pZCBTcGVlY2hJ
bnB1dDo6ZGlkQ29tcGxldGVSZWNvcmRpbmcoKQogeworICAgIEFTU0VSVChtX2xpc3RlbmVyKTsK
ICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29yZGluZygpOwogfQogCit2b2lkIFNwZWVj
aElucHV0OjpkaWRDb21wbGV0ZVJlY29nbml0aW9uKCkKK3sKKyAgICBBU1NFUlQobV9saXN0ZW5l
cik7CisgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlvbigpOworICAgIG1fbGlz
dGVuZXIgPSAwOworfQorCiB2b2lkIFNwZWVjaElucHV0OjpzZXRSZWNvZ25pdGlvblJlc3VsdChj
b25zdCBTdHJpbmcmIHJlc3VsdCkKIHsKKyAgICBBU1NFUlQobV9saXN0ZW5lcik7CiAgICAgbV9s
aXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0KTsKIH0KIAotYm9vbCBTcGVlY2hJ
bnB1dDo6c3RhcnRSZWNvZ25pdGlvbigpCitib29sIFNwZWVjaElucHV0OjpzdGFydFJlY29nbml0
aW9uKFNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIC8vIENhbmNlbCBhbnkg
b25nb2luZyByZWNvZ25pdGlvbiBmaXJzdC4KKyAgICBpZiAobV9saXN0ZW5lcikgeworICAgICAg
ICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29nbml0aW9uKCk7CisgICAgICAgIG1fbGlzdGVu
ZXIgPSAwOworICAgICAgICBtX2NsaWVudC0+Y2FuY2VsUmVjb2duaXRpb24oKTsKKyAgICB9CisK
KyAgICBtX2xpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zdGFydFJl
Y29nbml0aW9uKHRoaXMpOworfQorCit2b2lkIFNwZWVjaElucHV0OjpzdG9wUmVjb3JkaW5nKCkK
IHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC0+c3RhcnRSZWNv
Z25pdGlvbih0aGlzKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKG1fbGlzdGVuZXIp
OworICAgIG1fY2xpZW50LT5zdG9wUmVjb3JkaW5nKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIGIvV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0LmgKaW5kZXggODA5OGY2NzZkZDA0MjNlOTlkZTQwM2Q3Zjc1MGEyNDU0
MmRkYzE0NS4uMmNlMGVlYTU0NmMxNjQ1MjUzMDkwZWIwN2RmMTZhMWU3OTcxOTM5NCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmgKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAK
LSNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiU3BlZWNo
SW5wdXRMaXN0ZW5lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00NSwyMSArNDUsMjAgQEAgY2xhc3MgU3RyaW5nOwogLy8gVGhpcyBj
bGFzcyBjb25uZWN0cyB0aGUgaW5wdXQgZWxlbWVudHMgcmVxdWlyaW5nIHNwZWVjaCBpbnB1dCB3
aXRoIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYwogLy8gc3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZS4g
SXQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgdGhlIGlucHV0IGVsZW1lbnRzIHRvIGFjdGl2YXRlIHNw
ZWVjaAogLy8gcmVjb2duaXRpb24gYW5kIG1ldGhvZHMgZm9yIHRoZSBzcGVlY2ggcmVjb2duaXRp
b24gZW5naW5lIHRvIHJldHVybiBiYWNrIHRoZSByZXN1bHRzLgotY2xhc3MgU3BlZWNoSW5wdXQg
OiBwdWJsaWMgTm9uY29weWFibGUsIHB1YmxpYyBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyIHsK
K2NsYXNzIFNwZWVjaElucHV0IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgU3BlZWNoSW5w
dXRMaXN0ZW5lciB7CiBwdWJsaWM6Ci0gICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQq
LCBTcGVlY2hJbnB1dExpc3RlbmVyKik7CisgICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dCgpIHsgfQogCiAgICAgLy8gTWV0aG9kcyBp
bnZva2VkIGJ5IHRoZSBpbnB1dCBlbGVtZW50cy4KLSAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNv
Z25pdGlvbigpOworICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJbnB1dExpc3RlbmVy
KiBsaXN0ZW5lcik7CisgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7CiAKLSAgICAvLyBTcGVlY2hJ
bnB1dENsaWVudDo6TGlzdGVuZXIgbWV0aG9kcy4KKyAgICAvLyBTcGVlY2hJbnB1dExpc3RlbmVy
IG1ldGhvZHMuCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUmVjb3JkaW5nKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUmVjb2duaXRpb24oKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJik7CiAKLXByb3RlY3RlZDoKLSAgICBT
cGVlY2hJbnB1dENsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KLQog
cHJpdmF0ZToKICAgICBTcGVlY2hJbnB1dENsaWVudCogbV9jbGllbnQ7CiAgICAgU3BlZWNoSW5w
dXRMaXN0ZW5lciogbV9saXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dENsaWVudC5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKaW5kZXggNWQx
ZWQ4YmQ5MTk5YmFiMjk3Zjg3Mzk4M2M4OWM0NDhlZGUxZDNmMC4uZjZjNjFjZjQwYjAyOTAwZmRm
NGIzMWNlNTY3MzJjMDFkNTg0MmI4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0Q2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKQEAgLTM1
LDE3ICszNSwyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNwZWVjaElucHV0
Q2xpZW50TGlzdGVuZXI7CitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyOwogCiAvLyBQcm92aWRl
cyBhbiBpbnRlcmZhY2UgZm9yIFNwZWVjaElucHV0IHRvIGNhbGwgaW50byB0aGUgZW1iZWRkZXIu
CiBjbGFzcyBTcGVlY2hJbnB1dENsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIHN0
YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciogbGlzdGVuZXIpID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJbnB1dExpc3RlbmVyKiBs
aXN0ZW5lcikgPSAwOwogCiAgICAgLy8gU3RvcHMgYXVkaW8gcmVjb3JkaW5nIGFuZCBwZXJmb3Jt
cyByZWNvZ25pdGlvbiB3aXRoIHRoZSBhdWRpbyByZWNvcmRlZCB1bnRpbCBub3cKICAgICAvLyAo
ZG9lcyBub3QgZGlzY2FyZCBhdWRpbykuCiAgICAgdmlydHVhbCB2b2lkIHN0b3BSZWNvcmRpbmco
KSA9IDA7CiAKKyAgICAvLyBDYW5jZWxzIGFuIG9uZ29pbmcgcmVjb2duaXRpb24gYW5kIGRpc2Nh
cmRzIGFueSBhdWRpbyByZWNvcmRlZCBzbyBmYXIuIE5vIHBhcnRpYWwKKyAgICAvLyByZWNvZ25p
dGlvbiByZXN1bHRzIGFyZSByZXR1cm5lZCB0byB0aGUgbGlzdGVuZXIuCisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFJlY29nbml0aW9uKCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
U3BlZWNoSW5wdXRDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDgzZjI2MWExMzYxNWY1
OWJkMGY1OTg4NGE5NWIzY2MwMDRkZWE3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU3BlZWNoSW5wdXRDbGllbnRM
aXN0ZW5lcl9oCi0jZGVmaW5lIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXJfaAotCi0jaWYgRU5B
QkxFKElOUFVUX1NQRUVDSCkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTdHJpbmc7
Ci0KLS8vIFByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgdGhlIGVtYmVkZGVyIHRvIGNhbGwgaW50
byBXZWJDb3JlLgotY2xhc3MgU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0g
ICAgLy8gSW5mb3JtcyB0aGF0IGF1ZGlvIHJlY29yZGluZyBoYXMgY29tcGxldGVkIGFuZCByZWNv
Z25pdGlvbiBpcyB1bmRlcndheS4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZWNvcmRp
bmcoKSA9IDA7Ci0KLSAgICAvLyBHaXZlcyByZXN1bHRzIGZyb20gc3BlZWNoIHJlY29nbml0aW9u
LCBlaXRoZXIgcGFydGlhbCBvciB0aGUgZmluYWwgcmVzdWx0cy4KLSAgICAvLyBUaGlzIG1ldGhv
ZCBjYW4gcG90ZW50aWFsbHkgZ2V0IGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpZiB0aGVyZSBhcmUg
cGFydGlhbCByZXN1bHRzCi0gICAgLy8gYXZhaWxhYmxlIGFzIHRoZSB1c2VyIGtlZXBzIHNwZWFr
aW5nLiBJZiB0aGUgc3BlZWNoIGNvdWxkIG5vdCBiZSByZWNvZ25pemVkIHByb3Blcmx5Ci0gICAg
Ly8gb3IgaWYgdGhlcmUgd2FzIGFueSBvdGhlciBlcnJvcnMgaW4gdGhlIHByb2Nlc3MsIHRoaXMg
bWV0aG9kIG1heSBuZXZlciBiZSBjYWxsZWQuCi0gICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0
aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2
aXJ0dWFsIH5TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKCkgeyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQotCi0jZW5kaWYg
Ly8gU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRMaXN0ZW5lci5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIu
aAppbmRleCA2YjRmZDlmODQ1MTJhODdhYTM3ODIxMDE0ZDI3ODE3M2ZmY2FhOGI2Li4xYjIxYTEx
ZDEyMThiZmI3YzA5YzMzNDEzMzQ2MzMwZjNiZWQ5MDU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExp
c3RlbmVyLmgKQEAgLTQzLDYgKzQzLDEyIEBAIHB1YmxpYzoKICAgICAvLyBJbmZvcm1zIHRoYXQg
YXVkaW8gcmVjb3JkaW5nIGhhcyBjb21wbGV0ZWQgYW5kIHJlY29nbml0aW9uIGlzIHVuZGVyd2F5
LgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlY29yZGluZygpID0gMDsKIAorICAgIC8v
IEluZm9ybXMgdGhhdCBzcGVlY2ggcmVjb2duaXRpb24gaGFzIGNvbXBsZXRlZC4gVGhpcyBnZXRz
IGludm9rZWQgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIKKyAgICAvLyByZWNvZ25pdGlvbiB3YXMg
c3VjY2VzZnVsIG9yIG5vdCwgd2hldGhlciBzZXRSZWNvZ25pdGlvblJlc3VsdCgpIHdhcyBpbnZv
a2VkIG9yIG5vdC4gVGhlCisgICAgLy8gaGFuZGxlciB0eXBpY2FsbHkgZnJlZXMgdXAgYW55IHRl
bXBvcmFyeSByZXNvdXJjZXMgYWxsb2NhdGVkIGFuZCB3YWl0cyBmb3IgdGhlIG5leHQgc3BlZWNo
CisgICAgLy8gcmVjb2duaXRpb24gcmVxdWVzdC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxl
dGVSZWNvZ25pdGlvbigpID0gMDsKKwogICAgIC8vIEdpdmVzIHJlc3VsdHMgZnJvbSBzcGVlY2gg
cmVjb2duaXRpb24sIGVpdGhlciBwYXJ0aWFsIG9yIHRoZSBmaW5hbCByZXN1bHRzLgogICAgIC8v
IFRoaXMgbWV0aG9kIGNhbiBwb3RlbnRpYWxseSBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlm
IHRoZXJlIGFyZSBwYXJ0aWFsIHJlc3VsdHMKICAgICAvLyBhdmFpbGFibGUgYXMgdGhlIHVzZXIg
a2VlcHMgc3BlYWtpbmcuIElmIHRoZSBzcGVlY2ggY291bGQgbm90IGJlIHJlY29nbml6ZWQgcHJv
cGVybHkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
CmluZGV4IDdjZDA4YWUyZDEyM2EwYWYwNmQxZTFlNDI1NTFiM2RkNTRlNjgxMDkuLmIyOTg3NmFm
MGViZGNlOGVkNzg0YTc4YjlhZGE1MDQwYTg3Y2RmN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQg
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
IGV2ZW50KQogICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoaG92ZXJlZCgpKSB7Ci0gICAgICAgICAgICAgICAgc3BlZWNo
SW5wdXQoKS0+c3RhcnRSZWNvZ25pdGlvbigpOworICAgICAgICAgICAgICAgIHNwZWVjaElucHV0
KCktPnN0YXJ0UmVjb2duaXRpb24odGhpcyk7CiAgICAgICAgICAgICAgICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM5Miw5ICszOTIs
NyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVudCkKIAogU3BlZWNoSW5wdXQqIElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50OjpzcGVlY2hJbnB1dCgpCiB7Ci0gICAgaWYgKCFtX3NwZWVjaElucHV0KQotICAgICAg
ICBtX3NwZWVjaElucHV0LnNldChuZXcgU3BlZWNoSW5wdXQoZG9jdW1lbnQoKS0+cGFnZSgpLT5z
cGVlY2hJbnB1dENsaWVudCgpLCB0aGlzKSk7Ci0gICAgcmV0dXJuIG1fc3BlZWNoSW5wdXQuZ2V0
KCk7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPnBhZ2UoKS0+c3BlZWNoSW5wdXQoKTsKIH0KIAog
dm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGlkQ29tcGxldGVSZWNvcmRpbmco
KQpAQCAtNDAzLDYgKzQwMSwxMSBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
OjpkaWRDb21wbGV0ZVJlY29yZGluZygpCiAgICAgLy8gaW4gcHJvZ3Jlc3MuCiB9CiAKK3ZvaWQg
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRpZENvbXBsZXRlUmVjb2duaXRpb24oKQor
eworICAgIC8vIEZJWE1FOiBBZGQgVUkgZmVlZGJhY2sgaGVyZSB0byBpbmRpY2F0ZSB0aGF0IGF1
ZGlvIHJlY29nbml0aW9uIGhhcyBlbmRlZC4KK30KKwogdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0
dG9uRWxlbWVudDo6c2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7
CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmggYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaAppbmRleCBkNWRmZDYzMmMwMDVhMmM5NGYxY2FhYjRhYWY1YWI2
YmFmYzUxNmJkLi5lZDM4MjIxMGVjYTk2OWZhYzY3MjM3YjdlZDI5ODIzODEwOTMzOWFkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaApAQCAtMTI1LDYg
KzEyNSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFNwZWVjaElucHV0TGlzdGVuZXIgbWV0aG9kcy4K
ICAgICB2b2lkIGRpZENvbXBsZXRlUmVjb3JkaW5nKCk7CisgICAgdm9pZCBkaWRDb21wbGV0ZVJl
Y29nbml0aW9uKCk7CiAgICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcm
IHJlc3VsdCk7CiAKIHByaXZhdGU6CkBAIC0xMzMsNyArMTM0LDYgQEAgcHJpdmF0ZToKICAgICBT
cGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKIAogICAgIGJvb2wgbV9jYXB0dXJpbmc7Ci0gICAg
T3duUHRyPFNwZWVjaElucHV0PiBtX3NwZWVjaElucHV0OwogfTsKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMzA5OTUyOTY1Y2E2ODY2NDI2OGJhMzYx
ZTVjNjNmODBmNmM3NjEyLi4zZGRkYjJkNmJjNTYyMDkxYjE1ZDk5MjA1MDU1ODI1OWExYzdkNmRk
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMC0wNy0yNiAgU2F0aXNoIFNhbXBh
dGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IHNwZWVjaCBpbnB1dCBwbHVtYmluZyBpbiB3ZWJj
b3JlIGFuZCB3ZWJraXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzMDA4CisKKyAgICAgICAgKiBzcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmNwcDog
TW92ZSBmdW5jdGlvbmFsaXR5IHRvIFdlYkNvcmU6OlNwZWVjaElucHV0IGFuZCBtYWtlIHRoaXMg
YSBkdW1teSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoSW5wdXRDbGllbnRJbXBsOjpz
dGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoSW5wdXRDbGllbnRJbXBs
OjpjYW5jZWxSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaElucHV0Q2xpZW50
SW1wbDo6ZGlkQ29tcGxldGVSZWNvcmRpbmcpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hJbnB1
dENsaWVudEltcGw6OmRpZENvbXBsZXRlUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hJbnB1dENsaWVudEltcGw6OnNldFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKiBz
cmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmg6CisKKzIwMTAtMDctMjYgIFNhdGlzaCBTYW1wYXRo
ICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9j
ay4KIAogICAgICAgICBBZGQgV2ViS2l0IHBsdW1iaW5nIHRvIGNvbm5lY3Qgc3BlZWNoIHJlcXVl
c3RzIGFuZCBjYWxsYmFja3MgYmV0d2VlbiBXZWJDb3JlIGFuZCB0aGUgZW1iZWRkZXIuCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5jcHAKaW5kZXggMDdiZTU4
OGY2NDllYTM2NDBmODQ1Y2NhZjZhM2QxMzFiZDU5ZGZkZC4uOGJjY2FjZmE0ZjczZDQ3MjI1ODFl
YmZiZDU1ODYyYTFhZDFiZDZmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVl
Y2hJbnB1dENsaWVudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNoSW5w
dXRDbGllbnRJbXBsLmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIldlYlNwZWVjaElu
cHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZp
ZXdDbGllbnQuaCIKLSNpbmNsdWRlICJwYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCIK
KyNpbmNsdWRlICJwYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCIKIAogI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCiAKQEAgLTUyLDEyICs1Miw4IEBAIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6flNw
ZWVjaElucHV0Q2xpZW50SW1wbCgpCiB7CiB9CiAKLWJvb2wgU3BlZWNoSW5wdXRDbGllbnRJbXBs
OjpzdGFydFJlY29nbml0aW9uKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIqIGxp
c3RlbmVyKQorYm9vbCBTcGVlY2hJbnB1dENsaWVudEltcGw6OnN0YXJ0UmVjb2duaXRpb24oV2Vi
Q29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCiB7Ci0gICAgLy8gQ2FuY2VsIGFu
eSBvbmdvaW5nIHJlY29nbml0aW9uIGZpcnN0LiBObyBjYWxsYmFja3Mgd2lsbCBiZSBpc3N1ZWQg
dG8gdGhhdCBsaXN0ZW5lci4KLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAgICAgbV9jb250cm9s
bGVyLT5jYW5jZWxSZWNvZ25pdGlvbigpOwotCiAgICAgbV9saXN0ZW5lciA9IGxpc3RlbmVyOwog
ICAgIHJldHVybiBtX2NvbnRyb2xsZXItPnN0YXJ0UmVjb2duaXRpb24oKTsKIH0KQEAgLTY4LDI0
ICs2NCwyOSBAQCB2b2lkIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6c3RvcFJlY29yZGluZygpCiAg
ICAgbV9jb250cm9sbGVyLT5zdG9wUmVjb3JkaW5nKCk7CiB9CiAKK3ZvaWQgU3BlZWNoSW5wdXRD
bGllbnRJbXBsOjpjYW5jZWxSZWNvZ25pdGlvbigpCit7CisgICAgQVNTRVJUKG1fbGlzdGVuZXIp
OworICAgIG1fY29udHJvbGxlci0+Y2FuY2VsUmVjb2duaXRpb24oKTsKK30KKwogdm9pZCBTcGVl
Y2hJbnB1dENsaWVudEltcGw6OmRpZENvbXBsZXRlUmVjb3JkaW5nKCkKIHsKICAgICBBU1NFUlQo
bV9saXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmRp
ZENvbXBsZXRlUmVjb3JkaW5nKCk7CisgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvcmRp
bmcoKTsKIH0KIAogdm9pZCBTcGVlY2hJbnB1dENsaWVudEltcGw6OmRpZENvbXBsZXRlUmVjb2du
aXRpb24oKQogewogICAgIEFTU0VSVChtX2xpc3RlbmVyKTsKKyAgICBtX2xpc3RlbmVyLT5kaWRD
b21wbGV0ZVJlY29nbml0aW9uKCk7CiAgICAgbV9saXN0ZW5lciA9IDA7CiB9CiAKIHZvaWQgU3Bl
ZWNoSW5wdXRDbGllbnRJbXBsOjpzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcm
IHJlc3VsdCkKIHsKICAgICBBU1NFUlQobV9saXN0ZW5lcik7Ci0gICAgaWYgKG1fbGlzdGVuZXIp
Ci0gICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCk7CisgICAg
bV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0KTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0
Q2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENsaWVudEltcGwu
aAppbmRleCBmZmEyOGM3ODE5MGRmNmE0NmQ0NmQyMGIwZjllMWRlMjA2MDRkNjE3Li41NzYyZGE4
N2U5ZjBhZTlmYTYxMWEyMmQ0ZjZhZTAxN2RhYjU3MmJiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmgKQEAgLTM3LDcgKzM3LDcgQEAKICNpbmNsdWRlICJw
YWdlL1NwZWVjaElucHV0Q2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNw
ZWVjaElucHV0Q2xpZW50TGlzdGVuZXI7CitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUzLDggKzUzLDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgflNwZWVjaElucHV0Q2xpZW50SW1wbCgpOwogCiAgICAgLy8gU3BlZWNoSW5wdXRDbGllbnQg
bWV0aG9kcy4KLSAgICBib29sIHN0YXJ0UmVjb2duaXRpb24oV2ViQ29yZTo6U3BlZWNoSW5wdXRD
bGllbnRMaXN0ZW5lciopOworICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihXZWJDb3JlOjpTcGVl
Y2hJbnB1dExpc3RlbmVyKik7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7CisgICAgdm9pZCBj
YW5jZWxSZWNvZ25pdGlvbigpOwogCiAgICAgLy8gV2ViU3BlZWNoSW5wdXRMaXN0ZW5lciBtZXRo
b2RzLgogICAgIHZvaWQgZGlkQ29tcGxldGVSZWNvcmRpbmcoKTsKQEAgLTYzLDcgKzY0LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogbV9jb250
cm9sbGVyOyAvLyBUbyBjYWxsIGludG8gdGhlIGVtYmVkZGVyLgotICAgIFdlYkNvcmU6OlNwZWVj
aElucHV0Q2xpZW50TGlzdGVuZXIqIG1fbGlzdGVuZXI7IC8vIFZhbGlkIHdoZW4gcmVjb2duaXRp
b24gaXMgaW4gcHJvZ3Jlc3MuCisgICAgV2ViQ29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lciogbV9s
aXN0ZW5lcjsgLy8gVmFsaWQgd2hlbiByZWNvZ25pdGlvbiBpcyBpbiBwcm9ncmVzcy4KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62646</attachid>
            <date>2010-07-26 22:55:59 -0700</date>
            <delta_ts>2010-07-27 00:51:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43008-20100727065556.patch</filename>
            <type>text/plain</type>
            <size>23589</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWUxZGFkYTRkYjQ1NmRkOTg0Nzc1Zjg0M2RiZmZiYWJmM2Y4MTA3Ni4uYmZmZWY1MTYxMzNkMzcy
NjdjNDkyMjAxNzdmODVlNzZmZjVjOTliMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNy0yNiAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IHNwZWVjaCBpbnB1dCBwbHVtYmlu
ZyBpbiB3ZWJjb3JlIGFuZCB3ZWJraXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQzMDA4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIGZ1bmN0aW9u
YWxpdHkgaXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3Zl
ZCBhIGhlYWRlciBmaWxlLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNwZWVjaElucHV0KTogQ3JlYXRlcyBh
bmQgcmV0dXJucyBTcGVlY2hJbnB1dCB3aGVuIG5lZWRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0LmNwcDogQWRkZWQgbWV0aG9kcyB0byBwcm94
eSBhbmQgY2FsbGJhY2tzIGJldHdlZW4gaW5wdXQgZWxlbWVudHMgYW5kIFdlYktpdAorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OlNwZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaElucHV0OjpkaWRDb21wbGV0ZVJlY29yZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dDo6ZGlkQ29tcGxldGVSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5w
dXQ6OnN0b3BSZWNvcmRpbmcpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXQuaDoKKyAgICAg
ICAgKiBwYWdlL1NwZWVjaElucHV0Q2xpZW50Lmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1
dENsaWVudExpc3RlbmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExp
c3RlbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHA6IEFkZGVkIG9uZSBtb3JlIGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVs
ZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNwZWVjaElucHV0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkaWRDb21wbGV0ZVJl
Y29nbml0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
Lmg6CisKIDIwMTAtMDctMjYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggODMzOWZm
YmM5MTUyMTNhZjJmZjRmN2FlNTE5ZmIyYTE1YzA0Yzg3YS4uZjcyMTdhY2M0MWVkM2M5ODRmNjFj
MjU3YWRmMTkwMWFjNWRkMzUyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yOTUyLDcgKzI5NTIsNiBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAgXAogCVdlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dC5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCBc
Ci0JV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBcCiAJV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaAogCiBlbHNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGI4MzI1NmVmMGVhZTM4ODIy
MTJiMmVkMzA1N2QzZTc1N2UyOTY1ZTMuLjdkN2NmZjUzNTM1MzkxMThjNjM3OTIyMzc4OTk3OTAz
ZTE4YmQxOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yMDQwLDcgKzIwNDAsNiBAQAogICAgICAgICAgICAgJ3BhZ2UvU3Bl
ZWNoSW5wdXQuY3BwJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0LmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCcsCi0gICAgICAgICAgICAncGFnZS9TcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRM
aXN0ZW5lci5oJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwJywKICAg
ICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuaCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwOTA1NDIyY2RiNjc1YmEy
YjExYzk5MzU5OWQwZDhjZWZmZjExZTU0Li4wNzUxODA5YWJjNjEzZjFhZGE2MmQxNmU3YTViYWU1
ZWQwODFlZDM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTE2MTIsNyArMTYxMiw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2Uv
U3BhdGlhbE5hdmlnYXRpb24uaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dC5oIFwKICAgICBwYWdl
L1NwZWVjaElucHV0Q2xpZW50LmggXAotICAgIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5l
ci5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBcCiAgICAgcGFnZS9XaW5kb3dG
ZWF0dXJlcy5oIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5oIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGE5N2ZmYTc1ZGIxZjg3MzQyZTk0OTE2ZGZlZDE0NjRl
MzgwNjQ2NTEuLjgxOTU0MzlmM2Q4ZGM2MTgzY2IxN2JhMDM5YTlhN2M4Y2ZlODQ2NzEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI1MDEsMTAgKzIyNTAxLDYgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFn
ZVxTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0TGlzdGVuZXIuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDNkNWJmMzJiNWEyOTRkNTQ1NjY2YzAyM2RmMDNkNTQyMzY2MzI2MGEuLjc0
ZGU2ODFhMTlhOWU4ZDc4ZDkzOTY0ZjEzMGZjODBhM2VjYjU1NmUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzUxLDcgKzEzNTEsNiBAQAogCQk3NTc4
RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDgxMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0LmNwcCAqLzsgfTsKIAkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLzsgfTsKIAkJNzU3
OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwQTExRERGMjY5MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLzsgfTsKLQkJNzU3OEY5MUYxMUU0RTMyODAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyLmggKi87IH07CiAJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzND
NSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRM
aXN0ZW5lci5oICovOyB9OwogCQk3NTc5M0U4MzBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovOyB9OwogCQk3NTc5
M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyog
TWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC03MTI2LDcgKzcxMjUsNiBAQAogCQk3NTc4RjkwODEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoSW5wdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMg
LyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRoID0gZG9tL01lc3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3Nh
Z2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVzc2FnZUV2ZW50
Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKQEAgLTEyMzg2LDcgKzEyMzg0LDYgQEAKIAkJCQk3NTc4RjkwODExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXQuY3BwICovLAogCQkJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oICovLAogCQkJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovLAotCQkJCTc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudExpc3RlbmVyLmggKi8sCiAJCQkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8q
IFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMg
LyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKQEAgLTE5MzgzLDcgKzE5MzgwLDYgQEAKIAkJCQk2
MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk3NTc4RjkxRjExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MjAxMUU0
RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTEyMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUxNDA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGFhZjNkNGNmZWQxYWM5OTZiMWUxM2Y5MjE3
ZTgxMjU3MmJmOTQ0MjEuLjFmZDkzNTVlZTllZmQ5MTQ3ZDQ0MDdjNjI1N2UzM2M1ZmFlMGZlOTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNs
dWRlICJTcGVlY2hJbnB1dC5oIgogI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCiAjaW5j
bHVkZSAiU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKQEAg
LTc5MSw2ICs3OTIsMTYgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogUGFnZTo6aW5zcGVjdG9y
VGltZWxpbmVBZ2VudCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9TUEVF
Q0gpCitTcGVlY2hJbnB1dCogUGFnZTo6c3BlZWNoSW5wdXQoKQoreworICAgIEFTU0VSVChtX3Nw
ZWVjaElucHV0Q2xpZW50KTsKKyAgICBpZiAoIW1fc3BlZWNoSW5wdXQuZ2V0KCkpCisgICAgICAg
IG1fc3BlZWNoSW5wdXQuc2V0KG5ldyBTcGVlY2hJbnB1dChtX3NwZWVjaElucHV0Q2xpZW50KSk7
CisgICAgcmV0dXJuIG1fc3BlZWNoSW5wdXQuZ2V0KCk7Cit9CisjZW5kaWYKKwogdm9pZCBQYWdl
Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoKQogewogICAgIGJvb2wgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCA9IG1fc2V0dGluZ3MtPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDg1
OTlhODMyMDc2Y2YwYjE0NDAyMWMwNDE1ODc5YjQwOWJkMjA0NTcuLmFkY2E0ZjA5MTgwYTg0NGMw
MTk1ZDViMDlmMjYyMzk1YTk5NDIyNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgK
KysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzAsNiArNzAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKICAgICBjbGFzcyBTZWxlY3Rpb25D
b250cm9sbGVyOwogICAgIGNsYXNzIFNldHRpbmdzOworICAgIGNsYXNzIFNwZWVjaElucHV0Owog
ICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OwogCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQpA
QCAtMTU1LDcgKzE1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCiAgICAgICAgIHZvaWQgc2V0U3BlZWNoSW5wdXRDbGllbnQoU3BlZWNo
SW5wdXRDbGllbnQqIGNsaWVudCkgeyBtX3NwZWVjaElucHV0Q2xpZW50ID0gY2xpZW50OyB9Ci0g
ICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fc3BlZWNoSW5wdXRDbGllbnQ7IH0KKyAgICAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElu
cHV0KCk7CiAjZW5kaWYKICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmVzcy5nZXQoKTsgfQpAQCAtMjc2LDYgKzI3Nyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAg
ICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX3NwZWVjaElucHV0Q2xpZW50OworICAgICAgICBP
d25QdHI8U3BlZWNoSW5wdXQ+IG1fc3BlZWNoSW5wdXQ7CiAjZW5kaWYKICAgICAgICAgT3duUHRy
PFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgICAgICBPd25QdHI8UHJvZ3Jlc3NUcmFja2VyPiBt
X3Byb2dyZXNzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcCBiL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKaW5kZXggZWMzMzhjOWU5ZTY4MjYyNGNlMzA0YTRh
Nzk1YjJjNjQzOTZjYjU1Yi4uNGYzNzk4ODk2MTlhZTNjM2VlOTBlMDYwMjBiYTRhNWIyMjg4MDBl
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcAorKysgYi9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXQuY3BwCkBAIC0zOSwyNyArMzksNDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1TcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqIGNs
aWVudCwgU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCitTcGVlY2hJbnB1dDo6U3BlZWNo
SW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkK
LSAgICAsIG1fbGlzdGVuZXIobGlzdGVuZXIpCisgICAgLCBtX2xpc3RlbmVyKDApCiB7CiB9CiAK
IHZvaWQgU3BlZWNoSW5wdXQ6OmRpZENvbXBsZXRlUmVjb3JkaW5nKCkKIHsKKyAgICBBU1NFUlQo
bV9saXN0ZW5lcik7CiAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvcmRpbmcoKTsKIH0K
IAordm9pZCBTcGVlY2hJbnB1dDo6ZGlkQ29tcGxldGVSZWNvZ25pdGlvbigpCit7CisgICAgQVNT
RVJUKG1fbGlzdGVuZXIpOworICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24o
KTsKKyAgICBtX2xpc3RlbmVyID0gMDsKK30KKwogdm9pZCBTcGVlY2hJbnB1dDo6c2V0UmVjb2du
aXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB7CisgICAgQVNTRVJUKG1fbGlzdGVu
ZXIpOwogICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCk7CiB9CiAK
LWJvb2wgU3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24oKQorYm9vbCBTcGVlY2hJbnB1dDo6
c3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICAv
LyBDYW5jZWwgYW55IG9uZ29pbmcgcmVjb2duaXRpb24gZmlyc3QuCisgICAgaWYgKG1fbGlzdGVu
ZXIpIHsKKyAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlvbigpOworICAg
ICAgICBtX2xpc3RlbmVyID0gMDsKKyAgICAgICAgbV9jbGllbnQtPmNhbmNlbFJlY29nbml0aW9u
KCk7CisgICAgfQorCisgICAgbV9saXN0ZW5lciA9IGxpc3RlbmVyOworICAgIHJldHVybiBtX2Ns
aWVudC0+c3RhcnRSZWNvZ25pdGlvbih0aGlzKTsKK30KKwordm9pZCBTcGVlY2hJbnB1dDo6c3Rv
cFJlY29yZGluZygpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGll
bnQtPnN0YXJ0UmVjb2duaXRpb24odGhpcyk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VS
VChtX2xpc3RlbmVyKTsKKyAgICBtX2NsaWVudC0+c3RvcFJlY29yZGluZygpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQu
aCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCmluZGV4IDgwOThmNjc2ZGQwNDIzZTk5ZGU0
MDNkN2Y3NTBhMjQ1NDJkZGMxNDUuLjJjZTBlZWE1NDZjMTY0NTI1MzA5MGViMDdkZjE2YTFlNzk3
MTkzOTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCisrKyBiL1dlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dC5oCkBAIC0zMyw3ICszMyw3IEBACiAKICNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQogCi0jaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIlNwZWVjaElucHV0TGlzdGVuZXIuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsMjEgKzQ1LDIwIEBAIGNsYXNzIFN0cmlu
ZzsKIC8vIFRoaXMgY2xhc3MgY29ubmVjdHMgdGhlIGlucHV0IGVsZW1lbnRzIHJlcXVpcmluZyBz
cGVlY2ggaW5wdXQgd2l0aCB0aGUgcGxhdGZvcm0gc3BlY2lmaWMKIC8vIHNwZWVjaCByZWNvZ25p
dGlvbiBlbmdpbmUuIEl0IHByb3ZpZGVzIG1ldGhvZHMgZm9yIHRoZSBpbnB1dCBlbGVtZW50cyB0
byBhY3RpdmF0ZSBzcGVlY2gKIC8vIHJlY29nbml0aW9uIGFuZCBtZXRob2RzIGZvciB0aGUgc3Bl
ZWNoIHJlY29nbml0aW9uIGVuZ2luZSB0byByZXR1cm4gYmFjayB0aGUgcmVzdWx0cy4KLWNsYXNz
IFNwZWVjaElucHV0IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgU3BlZWNoSW5wdXRDbGll
bnRMaXN0ZW5lciB7CitjbGFzcyBTcGVlY2hJbnB1dCA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVi
bGljIFNwZWVjaElucHV0TGlzdGVuZXIgewogcHVibGljOgotICAgIFNwZWVjaElucHV0KFNwZWVj
aElucHV0Q2xpZW50KiwgU3BlZWNoSW5wdXRMaXN0ZW5lciopOworICAgIFNwZWVjaElucHV0KFNw
ZWVjaElucHV0Q2xpZW50Kik7CiAgICAgdmlydHVhbCB+U3BlZWNoSW5wdXQoKSB7IH0KIAogICAg
IC8vIE1ldGhvZHMgaW52b2tlZCBieSB0aGUgaW5wdXQgZWxlbWVudHMuCi0gICAgdmlydHVhbCBi
b29sIHN0YXJ0UmVjb2duaXRpb24oKTsKKyAgICBib29sIHN0YXJ0UmVjb2duaXRpb24oU3BlZWNo
SW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpOworICAgIHZvaWQgc3RvcFJlY29yZGluZygpOwogCi0g
ICAgLy8gU3BlZWNoSW5wdXRDbGllbnQ6Okxpc3RlbmVyIG1ldGhvZHMuCisgICAgLy8gU3BlZWNo
SW5wdXRMaXN0ZW5lciBtZXRob2RzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlY29y
ZGluZygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlY29nbml0aW9uKCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYpOwogCi1wcm90
ZWN0ZWQ6Ci0gICAgU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50OyB9Ci0KIHByaXZhdGU6CiAgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fY2xpZW50Owog
ICAgIFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVu
dC5oCmluZGV4IDVkMWVkOGJkOTE5OWJhYjI5N2Y4NzM5ODNjODljNDQ4ZWRlMWQzZjAuLmY2YzYx
Y2Y0MGIwMjkwMGZkZjRiMzFjZTU2NzMyYzAxZDU4NDJiODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENs
aWVudC5oCkBAIC0zNSwxNyArMzUsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyOworY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lcjsK
IAogLy8gUHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBTcGVlY2hJbnB1dCB0byBjYWxsIGludG8g
dGhlIGVtYmVkZGVyLgogY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQgewogcHVibGljOgotICAgIHZp
cnR1YWwgYm9vbCBzdGFydFJlY29nbml0aW9uKFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIqIGxp
c3RlbmVyKSA9IDA7CisgICAgdmlydHVhbCBib29sIHN0YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5w
dXRMaXN0ZW5lciogbGlzdGVuZXIpID0gMDsKIAogICAgIC8vIFN0b3BzIGF1ZGlvIHJlY29yZGlu
ZyBhbmQgcGVyZm9ybXMgcmVjb2duaXRpb24gd2l0aCB0aGUgYXVkaW8gcmVjb3JkZWQgdW50aWwg
bm93CiAgICAgLy8gKGRvZXMgbm90IGRpc2NhcmQgYXVkaW8pLgogICAgIHZpcnR1YWwgdm9pZCBz
dG9wUmVjb3JkaW5nKCkgPSAwOwogCisgICAgLy8gQ2FuY2VscyBhbiBvbmdvaW5nIHJlY29nbml0
aW9uIGFuZCBkaXNjYXJkcyBhbnkgYXVkaW8gcmVjb3JkZWQgc28gZmFyLiBObyBwYXJ0aWFsCisg
ICAgLy8gcmVjb2duaXRpb24gcmVzdWx0cyBhcmUgcmV0dXJuZWQgdG8gdGhlIGxpc3RlbmVyLgor
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZWNvZ25pdGlvbigpID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgflNwZWVjaElucHV0Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBiL1dlYkNvcmUvcGFnZS9TcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4
M2YyNjFhMTM2MTVmNTliZDBmNTk4ODRhOTViM2NjMDA0ZGVhN2YuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xp
ZW50TGlzdGVuZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNwZWVj
aElucHV0Q2xpZW50TGlzdGVuZXJfaAotI2RlZmluZSBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVy
X2gKLQotI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgU3RyaW5nOwotCi0vLyBQcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIHRoZSBlbWJlZGRl
ciB0byBjYWxsIGludG8gV2ViQ29yZS4KLWNsYXNzIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIg
ewotcHVibGljOgotICAgIC8vIEluZm9ybXMgdGhhdCBhdWRpbyByZWNvcmRpbmcgaGFzIGNvbXBs
ZXRlZCBhbmQgcmVjb2duaXRpb24gaXMgdW5kZXJ3YXkuCi0gICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlUmVjb3JkaW5nKCkgPSAwOwotCi0gICAgLy8gR2l2ZXMgcmVzdWx0cyBmcm9tIHNwZWVj
aCByZWNvZ25pdGlvbiwgZWl0aGVyIHBhcnRpYWwgb3IgdGhlIGZpbmFsIHJlc3VsdHMuCi0gICAg
Ly8gVGhpcyBtZXRob2QgY2FuIHBvdGVudGlhbGx5IGdldCBjYWxsZWQgbXVsdGlwbGUgdGltZXMg
aWYgdGhlcmUgYXJlIHBhcnRpYWwgcmVzdWx0cwotICAgIC8vIGF2YWlsYWJsZSBhcyB0aGUgdXNl
ciBrZWVwcyBzcGVha2luZy4gSWYgdGhlIHNwZWVjaCBjb3VsZCBub3QgYmUgcmVjb2duaXplZCBw
cm9wZXJseQotICAgIC8vIG9yIGlmIHRoZXJlIHdhcyBhbnkgb3RoZXIgZXJyb3JzIGluIHRoZSBw
cm9jZXNzLCB0aGlzIG1ldGhvZCBtYXkgbmV2ZXIgYmUgY2FsbGVkLgotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkgPSAwOwotCi1wcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcigpIHsgfQotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVD
SCkKLQotI2VuZGlmIC8vIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXJfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dExpc3RlbmVyLmgKaW5kZXggNmI0ZmQ5Zjg0NTEyYTg3YWEzNzgyMTAxNGQyNzgxNzNmZmNh
YThiNi4uMWIyMWExMWQxMjE4YmZiN2MwOWMzMzQxMzM0NjMzMGYzYmVkOTA1OCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaAorKysgYi9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRMaXN0ZW5lci5oCkBAIC00Myw2ICs0MywxMiBAQCBwdWJsaWM6CiAgICAgLy8g
SW5mb3JtcyB0aGF0IGF1ZGlvIHJlY29yZGluZyBoYXMgY29tcGxldGVkIGFuZCByZWNvZ25pdGlv
biBpcyB1bmRlcndheS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZWNvcmRpbmcoKSA9
IDA7CiAKKyAgICAvLyBJbmZvcm1zIHRoYXQgc3BlZWNoIHJlY29nbml0aW9uIGhhcyBjb21wbGV0
ZWQuIFRoaXMgZ2V0cyBpbnZva2VkIGlycmVzcGVjdGl2ZSBvZiB3aGV0aGVyCisgICAgLy8gcmVj
b2duaXRpb24gd2FzIHN1Y2Nlc2Z1bCBvciBub3QsIHdoZXRoZXIgc2V0UmVjb2duaXRpb25SZXN1
bHQoKSB3YXMgaW52b2tlZCBvciBub3QuIFRoZQorICAgIC8vIGhhbmRsZXIgdHlwaWNhbGx5IGZy
ZWVzIHVwIGFueSB0ZW1wb3JhcnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBhbmQgd2FpdHMgZm9yIHRo
ZSBuZXh0IHNwZWVjaAorICAgIC8vIHJlY29nbml0aW9uIHJlcXVlc3QuCisgICAgdmlydHVhbCB2
b2lkIGRpZENvbXBsZXRlUmVjb2duaXRpb24oKSA9IDA7CisKICAgICAvLyBHaXZlcyByZXN1bHRz
IGZyb20gc3BlZWNoIHJlY29nbml0aW9uLCBlaXRoZXIgcGFydGlhbCBvciB0aGUgZmluYWwgcmVz
dWx0cy4KICAgICAvLyBUaGlzIG1ldGhvZCBjYW4gcG90ZW50aWFsbHkgZ2V0IGNhbGxlZCBtdWx0
aXBsZSB0aW1lcyBpZiB0aGVyZSBhcmUgcGFydGlhbCByZXN1bHRzCiAgICAgLy8gYXZhaWxhYmxl
IGFzIHRoZSB1c2VyIGtlZXBzIHNwZWFraW5nLiBJZiB0aGUgc3BlZWNoIGNvdWxkIG5vdCBiZSBy
ZWNvZ25pemVkIHByb3Blcmx5CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmNwcAppbmRleCA3Y2QwOGFlMmQxMjNhMGFmMDZkMWUxZTQyNTUxYjNkZDU0ZTY4
MTA5Li5iMjk4NzZhZjBlYmRjZThlZDc4NGE3OGI5YWRhNTA0MGE4N2NkZjdiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTM4MCw3ICsz
ODAsNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGhvdmVyZWQoKSkgewotICAgICAgICAg
ICAgICAgIHNwZWVjaElucHV0KCktPnN0YXJ0UmVjb2duaXRpb24oKTsKKyAgICAgICAgICAgICAg
ICBzcGVlY2hJbnB1dCgpLT5zdGFydFJlY29nbml0aW9uKHRoaXMpOwogICAgICAgICAgICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0zOTIsOSArMzkyLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIFNwZWVjaElucHV0KiBJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6c3BlZWNoSW5wdXQoKQogewotICAgIGlmICghbV9zcGVlY2hJ
bnB1dCkKLSAgICAgICAgbV9zcGVlY2hJbnB1dC5zZXQobmV3IFNwZWVjaElucHV0KGRvY3VtZW50
KCktPnBhZ2UoKS0+c3BlZWNoSW5wdXRDbGllbnQoKSwgdGhpcykpOwotICAgIHJldHVybiBtX3Nw
ZWVjaElucHV0LmdldCgpOworICAgIHJldHVybiBkb2N1bWVudCgpLT5wYWdlKCktPnNwZWVjaElu
cHV0KCk7CiB9CiAKIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRpZENvbXBs
ZXRlUmVjb3JkaW5nKCkKQEAgLTQwMyw2ICs0MDEsMTEgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uRWxlbWVudDo6ZGlkQ29tcGxldGVSZWNvcmRpbmcoKQogICAgIC8vIGluIHByb2dyZXNz
LgogfQogCit2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkaWRDb21wbGV0ZVJl
Y29nbml0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIFVJIGZlZWRiYWNrIGhlcmUgdG8gaW5k
aWNhdGUgdGhhdCBhdWRpbyByZWNvZ25pdGlvbiBoYXMgZW5kZWQuCit9CisKIHZvaWQgSW5wdXRG
aWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgcmVzdWx0KQogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXggZDVkZmQ2MzJjMDA1YTJjOTRm
MWNhYWI0YWFmNWFiNmJhZmM1MTZiZC4uZWQzODIyMTBlY2E5NjlmYWM2NzIzN2I3ZWQyOTgyMzgx
MDkzMzlhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTcGVlY2hJbnB1dExpc3Rl
bmVyIG1ldGhvZHMuCiAgICAgdm9pZCBkaWRDb21wbGV0ZVJlY29yZGluZygpOworICAgIHZvaWQg
ZGlkQ29tcGxldGVSZWNvZ25pdGlvbigpOwogICAgIHZvaWQgc2V0UmVjb2duaXRpb25SZXN1bHQo
Y29uc3QgU3RyaW5nJiByZXN1bHQpOwogCiBwcml2YXRlOgpAQCAtMTMzLDcgKzEzNCw2IEBAIHBy
aXZhdGU6CiAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7CiAKICAgICBib29sIG1fY2Fw
dHVyaW5nOwotICAgIE93blB0cjxTcGVlY2hJbnB1dD4gbV9zcGVlY2hJbnB1dDsKIH07CiAKICNl
bmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNGQ2ZTlkZDc5YTQy
YjhhY2U2N2RlNDYzMjBkMDg0NzQ2ZjUyNDNkOC4uNjM3N2ZiYTIyNThjMTg4YzU5NzBhODkxMzdj
NjYwYzFiODM1NzcwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDctMjYg
IFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBzcGVlY2ggaW5wdXQgcGx1
bWJpbmcgaW4gd2ViY29yZSBhbmQgd2Via2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MzAwOAorCisgICAgICAgICogc3JjL1NwZWVjaElucHV0Q2xp
ZW50SW1wbC5jcHA6IE1vdmUgZnVuY3Rpb25hbGl0eSB0byBXZWJDb3JlOjpTcGVlY2hJbnB1dCBh
bmQgbWFrZSB0aGlzIGEgZHVtbXkgcHJveHkuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaElucHV0
Q2xpZW50SW1wbDo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaElu
cHV0Q2xpZW50SW1wbDo6Y2FuY2VsUmVjb2duaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hJbnB1dENsaWVudEltcGw6OmRpZENvbXBsZXRlUmVjb3JkaW5nKToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoSW5wdXRDbGllbnRJbXBsOjpkaWRDb21wbGV0ZVJlY29nbml0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoSW5wdXRDbGllbnRJbXBsOjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6
CisgICAgICAgICogc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5oOgorCiAyMDEwLTA3LTI2ICBE
b21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVl
Y2hJbnB1dENsaWVudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENs
aWVudEltcGwuY3BwCmluZGV4IDA3YmU1ODhmNjQ5ZWEzNjQwZjg0NWNjYWY2YTNkMTMxYmQ1OWRm
ZGQuLjhiY2NhY2ZhNGY3M2Q0NzIyNTgxZWJmYmQ1NTg2MmExYWQxYmQ2ZjQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAKICNpbmNsdWRlICJXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCi0jaW5jbHVkZSAicGFnZS9TcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAicGFnZS9TcGVlY2hJbnB1dExpc3Rl
bmVyLmgiCiAKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQogCkBAIC01MiwxMiArNTIsOCBAQCBT
cGVlY2hJbnB1dENsaWVudEltcGw6On5TcGVlY2hJbnB1dENsaWVudEltcGwoKQogewogfQogCi1i
b29sIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6c3RhcnRSZWNvZ25pdGlvbihXZWJDb3JlOjpTcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyKiBsaXN0ZW5lcikKK2Jvb2wgU3BlZWNoSW5wdXRDbGllbnRJ
bXBsOjpzdGFydFJlY29nbml0aW9uKFdlYkNvcmU6OlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3Rl
bmVyKQogewotICAgIC8vIENhbmNlbCBhbnkgb25nb2luZyByZWNvZ25pdGlvbiBmaXJzdC4gTm8g
Y2FsbGJhY2tzIHdpbGwgYmUgaXNzdWVkIHRvIHRoYXQgbGlzdGVuZXIuCi0gICAgaWYgKG1fbGlz
dGVuZXIpCi0gICAgICAgIG1fY29udHJvbGxlci0+Y2FuY2VsUmVjb2duaXRpb24oKTsKLQogICAg
IG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKICAgICByZXR1cm4gbV9jb250cm9sbGVyLT5zdGFydFJl
Y29nbml0aW9uKCk7CiB9CkBAIC02OCwyNCArNjQsMjkgQEAgdm9pZCBTcGVlY2hJbnB1dENsaWVu
dEltcGw6OnN0b3BSZWNvcmRpbmcoKQogICAgIG1fY29udHJvbGxlci0+c3RvcFJlY29yZGluZygp
OwogfQogCit2b2lkIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6Y2FuY2VsUmVjb2duaXRpb24oKQor
eworICAgIEFTU0VSVChtX2xpc3RlbmVyKTsKKyAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFJlY29n
bml0aW9uKCk7Cit9CisKIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRJbXBsOjpkaWRDb21wbGV0ZVJl
Y29yZGluZygpCiB7CiAgICAgQVNTRVJUKG1fbGlzdGVuZXIpOwotICAgIGlmIChtX2xpc3RlbmVy
KQotICAgICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJlY29yZGluZygpOworICAgIG1fbGlz
dGVuZXItPmRpZENvbXBsZXRlUmVjb3JkaW5nKCk7CiB9CiAKIHZvaWQgU3BlZWNoSW5wdXRDbGll
bnRJbXBsOjpkaWRDb21wbGV0ZVJlY29nbml0aW9uKCkKIHsKICAgICBBU1NFUlQobV9saXN0ZW5l
cik7CisgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlvbigpOwogICAgIG1fbGlz
dGVuZXIgPSAwOwogfQogCiB2b2lkIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6c2V0UmVjb2duaXRp
b25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKG1fbGlzdGVu
ZXIpOwotICAgIGlmIChtX2xpc3RlbmVyKQotICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25p
dGlvblJlc3VsdChyZXN1bHQpOworICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0
KHJlc3VsdCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmgKaW5kZXggZmZhMjhjNzgxOTBkZjZhNDZkNDZkMjBi
MGY5ZTFkZTIwNjA0ZDYxNy4uNTc2MmRhODdlOWYwYWU5ZmE2MTFhMjJkNGY2YWUwMTdkYWI1NzJi
YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENsaWVudEltcGwu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5oCkBAIC0z
Nyw3ICszNyw3IEBACiAjaW5jbHVkZSAicGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyOworY2xhc3Mg
U3BlZWNoSW5wdXRMaXN0ZW5lcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01Myw4ICs1
Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dENsaWVudEltcGwoKTsKIAog
ICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhvZHMuCi0gICAgYm9vbCBzdGFydFJlY29nbml0
aW9uKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIqKTsKKyAgICBib29sIHN0YXJ0
UmVjb2duaXRpb24oV2ViQ29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lciopOwogICAgIHZvaWQgc3Rv
cFJlY29yZGluZygpOworICAgIHZvaWQgY2FuY2VsUmVjb2duaXRpb24oKTsKIAogICAgIC8vIFdl
YlNwZWVjaElucHV0TGlzdGVuZXIgbWV0aG9kcy4KICAgICB2b2lkIGRpZENvbXBsZXRlUmVjb3Jk
aW5nKCk7CkBAIC02Myw3ICs2NCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsgLy8gVG8gY2FsbCBpbnRvIHRoZSBlbWJl
ZGRlci4KLSAgICBXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKiBtX2xpc3RlbmVy
OyAvLyBWYWxpZCB3aGVuIHJlY29nbml0aW9uIGlzIGluIHByb2dyZXNzLgorICAgIFdlYkNvcmU6
OlNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7IC8vIFZhbGlkIHdoZW4gcmVjb2duaXRp
b24gaXMgaW4gcHJvZ3Jlc3MuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>