<?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>68418</bug_id>
          
          <creation_ts>2011-09-19 18:47:02 -0700</creation_ts>
          <short_desc>REGRESSION(r95493): Broke Windows build (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2011-09-19 18:52:11 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68409</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>barraclough</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>469856</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 18:47:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/95493 broke the build:
Broke Windows build (Requested by rniwa on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469857</commentid>
    <comment_count>1</comment_count>
      <attachid>107955</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 18:47:33 -0700</bug_when>
    <thetext>Created attachment 107955
ROLLOUT of r95493

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469862</commentid>
    <comment_count>2</comment_count>
      <attachid>107955</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 18:52:06 -0700</bug_when>
    <thetext>Comment on attachment 107955
ROLLOUT of r95493

Clearing flags on attachment: 107955

Committed r95507: &lt;http://trac.webkit.org/changeset/95507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469863</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 18:52:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107955</attachid>
            <date>2011-09-19 18:47:33 -0700</date>
            <delta_ts>2011-09-19 18:52:06 -0700</delta_ts>
            <desc>ROLLOUT of r95493</desc>
            <filename>bug-68418-20110920014605.patch</filename>
            <type>text/plain</type>
            <size>42125</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU1MDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBmYzUyNmI2NDkwYjk4ODU5MmZhZGI2ZjczOGM4M2ZlOTUyYmJhNDc0Li40MGNiZTc2
OGM2NWEzZjIwYTRjZDc3YjA2MDA0NjdkZTExOWEyMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC00NSw3ICs0NSw2IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAogICAgIGJ5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCiAKLSAgICBoZWFwL0FsbG9jYXRpb25TcGFjZS5jcHAKICAgICBo
ZWFwL0hlYXAuY3BwCiAgICAgaGVhcC9IYW5kbGVIZWFwLmNwcAogICAgIGhlYXAvSGFuZGxlU3Rh
Y2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAzZTViN2Q5NjlhMDI1YWE3MjQxM2U3
ZTY2YjBhZTk1NWQwNWQzNjk1Li5kN2QwYjQ5MzBkN2MxYjNjOWVhNGIwOGRhZjcyZTYzNDIyZmRi
NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMS0wOS0x
OSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk1NDkzIGFuZCByOTU0OTYuCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk1NDkzCisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0Lzk1NDk2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02ODQxOAorCisgICAgICAgIEJyb2tlIFdpbmRvd3MgYnVpbGQgKFJl
cXVlc3RlZCBieSBybml3YSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmUucHJvOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRlYnVnZ2VyL0Rl
YnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zKToKKyAgICAgICAgKiBoZWFwL0FsbG9jYXRpb25TcGFjZS5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogaGVhcC9BbGxvY2F0aW9uU3BhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBoZWFwL0hl
YXAuY3BwOgorICAgICAgICAoSlNDOjpDb3VudEZ1bmN0b3I6OlRha2VJZkVtcHR5OjpUYWtlSWZF
bXB0eSk6CisgICAgICAgIChKU0M6OkNvdW50RnVuY3Rvcjo6VGFrZUlmRW1wdHk6Om9wZXJhdG9y
KCkpOgorICAgICAgICAoSlNDOjpDb3VudEZ1bmN0b3I6OlRha2VJZkVtcHR5OjpyZXR1cm5WYWx1
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXApOgorICAgICAgICAoSlNDOjpIZWFwOjpyZXBv
cnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkhlYXA6OnRyeUFsbG9j
YXRlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6YWxsb2NhdGVTbG93Q2FzZSk6CisgICAgICAgIChK
U0M6OkhlYXA6OmdldENvbnNlcnZhdGl2ZVJlZ2lzdGVyUm9vdHMpOgorICAgICAgICAoSlNDOjpI
ZWFwOjptYXJrUm9vdHMpOgorICAgICAgICAoSlNDOjpIZWFwOjpjbGVhck1hcmtzKToKKyAgICAg
ICAgKEpTQzo6SGVhcDo6c3dlZXApOgorICAgICAgICAoSlNDOjpIZWFwOjpvYmplY3RDb3VudCk6
CisgICAgICAgIChKU0M6OkhlYXA6OnNpemUpOgorICAgICAgICAoSlNDOjpIZWFwOjpjYXBhY2l0
eSk6CisgICAgICAgIChKU0M6OkhlYXA6Omdsb2JhbE9iamVjdENvdW50KToKKyAgICAgICAgKEpT
Qzo6SGVhcDo6b2JqZWN0VHlwZUNvdW50cyk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3Qp
OgorICAgICAgICAoSlNDOjpIZWFwOjpjYW5vbmljYWxpemVCbG9ja3MpOgorICAgICAgICAoSlND
OjpIZWFwOjpyZXNldEFsbG9jYXRvcik6CisgICAgICAgIChKU0M6OkhlYXA6OmFsbG9jYXRlQmxv
Y2spOgorICAgICAgICAoSlNDOjpIZWFwOjpmcmVlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6SGVh
cDo6c2hyaW5rKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya2VkU3BhY2UpOgorICAgICAgICAoSlNDOjpIZWFwOjpmb3JFYWNoQ2VsbCk6CisgICAgICAg
IChKU0M6OkhlYXA6OmZvckVhY2hCbG9jayk6CisgICAgICAgIChKU0M6OkhlYXA6OnNpemVDbGFz
c0Zvcik6CisgICAgICAgIChKU0M6OkhlYXA6OmFsbG9jYXRlKToKKyAgICAgICAgKiBqaXQvSklU
SW5saW5lTWV0aG9kcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRBbGxvY2F0ZUJhc2ljSlNP
YmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxEYXRhOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsRGF0YTo6cmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkpOgorCiAyMDExLTA5LTE5ICBH
YXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBFcnJy
aywgbWlzc2VkIHN0eWxlYm90IGNvbW1lbnRzIGluIGxhc3QgY29tbWl0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiZTc0YzliMjMxODZmYTliYWIyMDAw
NWFiZDY0ZDkxN2ZkODNiZGEyLi5mYWZlMzljMzk4Mzc0OWUyZDA1YmQ0ZGZiMmRjYjZmOTIyODA0
MjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMz
LDggKzEzMyw2IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2NvcmVCb2FyZC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0aW9u
U3BhY2UuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0aW9uU3BhY2Uu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IYW5kbGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCA1MjhhNTE0OGNmNTc0ZTRiZWRhYmVjNWMyM2UzODYyNWYx
NzIwOTNiLi5jYTAyN2VlMmI5Mzk3MmI3MTJmMTAxMTYzYjk4ODcxNDc5NWVmMTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExOCw3ICsxMTgsNiBAQCBf
X1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RQogX19aTjNK
U0MxMUpTQnl0ZUFycmF5MTNzX2RlZmF1bHRJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTVj
cmVhdGVTdHJ1Y3R1cmVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RU5T
XzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKIF9fWk4zSlNDMTFKU0J5dGVBcnJheUMxRVBOU185
RXhlY1N0YXRlRVBOU185U3RydWN0dXJlRVBOM1dURjlCeXRlQXJyYXlFCi1fX1pOM0pTQzE1QWxs
b2NhdGlvblNwYWNlMTZhbGxvY2F0ZVNsb3dDYXNlRVJOU18xMU1hcmtlZFNwYWNlOVNpemVDbGFz
c0UKIF9fWk4zSlNDMTFQYXJzZXJBcmVuYTVyZXNldEV2CiBfX1pOM0pTQzExY2hlY2tTeW50YXhF
UE5TXzlFeGVjU3RhdGVFUktOU18xMFNvdXJjZUNvZGVFUE5TXzdKU1ZhbHVlRQogX19aTjNKU0Mx
MWNyZWF0ZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0yMzQsNiArMjMz
LDcgQEAgX19aTjNKU0MzNWNyZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uRVBOU18x
MkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDNDFjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVu
YWJsZWRDaGVja0VQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVSS05TXzdBcmdM
aXN0RVJLTlNfMTBJZGVudGlmaWVyRVJLTlNfN1VTdHJpbmdFaQogX19aTjNKU0M0SGVhcDExb2Jq
ZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDE2YWN0aXZpdHlDYWxsYmFja0V2CitfX1pOM0pTQzRI
ZWFwMTZhbGxvY2F0ZVNsb3dDYXNlRVJOU18xMU1hcmtlZFNwYWNlOVNpemVDbGFzc0UKIF9fWk4z
SlNDNEhlYXAxNm9iamVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE3Y29sbGVjdEFsbEdh
cmJhZ2VFdgogX19aTjNKU0M0SGVhcDE3Z2xvYmFsT2JqZWN0Q291bnRFdgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCBhZDYzNjFiM2IxOGMwZGRlOTdiYzAz
NTUzM2NiYTYxYjMzZjFjMmNkLi42ODFhZDYzM2RhY2ZhNTM5ODdhMWJmZmFlMDNiMjVkYmRjZmI0
NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtMjcs
NyArMjcsNiBAQAogICAgICAgICAgICAgJ0FQSS9PcGFxdWVKU1N0cmluZy5oJywKICAgICAgICAg
ICAgICdhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgnLAogICAgICAgICAgICAgJ2J5
dGVjb2RlL09wY29kZS5oJywKLSAgICAgICAgICAgICdoZWFwL0FsbG9jYXRpb25TcGFjZS5oJywK
ICAgICAgICAgICAgICdoZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmgnLAogICAgICAgICAgICAgJ2hl
YXAvSGFuZGxlLmgnLAogICAgICAgICAgICAgJ2hlYXAvSGFuZGxlSGVhcC5oJywKQEAgLTMyNSw3
ICszMjQsNiBAQAogICAgICAgICAgICAgJ2J5dGVjb21waWxlci9MYWJlbFNjb3BlLmgnLAogICAg
ICAgICAgICAgJ2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwJywKICAgICAgICAgICAgICdi
eXRlY29tcGlsZXIvUmVnaXN0ZXJJRC5oJywKLSAgICAgICAgICAgICdoZWFwL0FsbG9jYXRpb25T
cGFjZS5jcHAnLAogICAgICAgICAgICAgJ2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwJywKICAg
ICAgICAgICAgICdoZWFwL0hhbmRsZUhlYXAuY3BwJywKICAgICAgICAgICAgICdoZWFwL0hhbmRs
ZVN0YWNrLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUucHJvIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwppbmRl
eCBjMDZlMmY5N2Q0ODRjY2NiNWY3MTRmYzU5MDJkYmM5ZmZhMzc1MTc2Li5iYTgyN2I4MTdlMWRk
MTUzNjA2ZWI3MGM4YzlmYzgxNjcyYTJhZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUucHJvCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm8KQEAgLTcyLDcgKzcyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgYnl0ZWNv
ZGUvVmFsdWVQcm9maWxlLmNwcCBcCiAgICAgYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcCBcCiAgICAgYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgXAotICAgIGhlYXAvQWxs
b2NhdGlvblNwYWNlLmNwcCBcCiAgICAgaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAgXAogICAg
IGhlYXAvSGFuZGxlSGVhcC5jcHAgXAogICAgIGhlYXAvSGFuZGxlU3RhY2suY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXgg
MzE2YjlmMTAyZWVkY2ZkODkzM2M3M2Q5NmQxMmFkNTNmMThmYTliNS4uODVhMTU3ZmZhMjRiZTZj
OTRkY2I3NWQzYmU4YjkxNTljMzhhNDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTU5LDkgKzU5LDkgQEAgRVhQT1JUUwog
ICAgID9hZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uQFN0cnVjdHVyZUBKU0NAQFFBRUlBQVZK
U0dsb2JhbERhdGFAMkBBQlZJZGVudGlmaWVyQDJASVBBVkpTQ2VsbEAyQEBaCiAgICAgP2FkZFNs
b3dDYXNlQElkZW50aWZpZXJASlNDQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZA
QEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQFBBVlN0cmluZ0ltcGxANEBAWgogICAgID9hZGRTdGF0aWNH
bG9iYWxzQEpTR2xvYmFsT2JqZWN0QEpTQ0BASUFFWFBBVUdsb2JhbFByb3BlcnR5SW5mb0AxMkBI
QFoKLSAgICA/YWxsb2NhdGVAQWxsb2NhdGlvblNwYWNlQEpTQ0BAUUFFUEFYQUFVU2l6ZUNsYXNz
QE1hcmtlZFNwYWNlQDJAQFoKKyAgICA/YWxsb2NhdGVASGVhcEBKU0NAQFFBRVBBWEFBVVNpemVD
bGFzc0BNYXJrZWRTcGFjZUAyQEBaCiAgICAgP2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlQEpTT2Jq
ZWN0QEpTQ0BAUUFFWEFBVkpTR2xvYmFsRGF0YUAyQElJQFoKLSAgICA/YWxsb2NhdGVTbG93Q2Fz
ZUBBbGxvY2F0aW9uU3BhY2VASlNDQEBBQUVQQVhBQVVTaXplQ2xhc3NATWFya2VkU3BhY2VAMkBA
WgorICAgID9hbGxvY2F0ZVNsb3dDYXNlQEhlYXBASlNDQEBBQUVQQVhBQVVTaXplQ2xhc3NATWFy
a2VkU3BhY2VAMkBAWgogICAgID9hcHBlbmRAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQQkRJQFoK
ICAgICA/YXBwZW5kQFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYUEJfV0lAWgogICAgID9hc2NpaUBV
U3RyaW5nQEpTQ0BAUUJFP0FWQ1N0cmluZ0BXVEZAQFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCmluZGV4IDNiMzA4MzRlMmRk
N2RiNWVjNTNlZGEwZTdjNDcwNTM2Y2EwOWFhNzAuLjA5MjVkMzNjZjk1NWIyZjMyZGQwN2RlODQ1
ZTBjMjhmODg2ZTgzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBAIC0xODkwLDE0ICsxODkwLDYgQEAKIAkJCU5hbWU9
ImhlYXAiCiAJCQk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cLi5caGVhcFxBbGxv
Y2F0aW9uU3BhY2UuY3BwIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlwuLlxoZWFwXEFsbG9jYXRpb25TcGFjZS5oIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlwuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3Rz
LmNwcCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGRjMGI3NjIxNTcwNWE2Y2VlZDJiOGZjODkwYWQwOGU1YTljMTRiZDMuLmY3NDIxZDcxNDM3NmE3
NWMwYzVlMDQxMWY1NWU2MTBlZGU2YWVjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00MDYsOCArNDA2LDYgQEAKIAkJQTE3MTJCM0YxMUM3QjIyODAwN0E1MzE1IC8qIFJlZ0V4
cENhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTcxMkIzRTExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTcxMkI0MTExQzdCMjM1MDA3QTUz
MTUgLyogUmVnRXhwS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTcxMkI0MDExQzdCMjM1MDA3QTUzMTUgLyogUmVnRXhwS2V5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTFENzY0NTIxMzU0NDQ4
QjAwQzVDN0MwIC8qIEFsaWdubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFENzY0NTExMzU0NDQ4QjAwQzVDN0MwIC8qIEFsaWdubWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUE3MDQ1NkIw
MTQyN0ZCOTEwMDM3REE2OCAvKiBBbGxvY2F0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDQ1NkFGMTQyN0ZCMTUwMDM3REE2OCAvKiBB
bGxvY2F0aW9uU3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlBNzA0NTZCMTE0MjdGQjk1MDAzN0RBNjggLyogQWxsb2NhdGlvblNwYWNlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDQ1NkFF
MTQyN0ZCMDMwMDM3REE2OCAvKiBBbGxvY2F0aW9uU3BhY2UuY3BwICovOyB9OwogCQlBNzEyMzZF
NTExOTVGMzNDMDBCRDIxNzQgLyogSklUT3Bjb2RlczMyXzY0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTIzNkU0MTE5NUYzM0MwMEJEMjE3NCAv
KiBKSVRPcGNvZGVzMzJfNjQuY3BwICovOyB9OwogCQlBNzI3MDA5MDBEQUM2QkJDMDBFNTQ4RDcg
LyogSlNOb3RBbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzI3MDA3ODBEQUM2MDU2MDBFNTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAg
Ki87IH07CiAJCUE3MjcwMUI5MERBREU5NDkwMEU1NDhENyAvKiBFeGNlcHRpb25IZWxwZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzI3MDFCMzBE
QURFOTQ5MDBFNTQ4RDcgLyogRXhjZXB0aW9uSGVscGVycy5oICovOyB9OwpAQCAtMTE4NCw4ICsx
MTgyLDYgQEAKIAkJQTE3MTJCM0UxMUM3QjIyODAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ0V4cENhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExNzEyQjQwMTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnRXhwS2V5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRDc2NDUxMTM1NDQ0OEIwMEM1QzdDMCAvKiBBbGlnbm1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxpZ25tZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3MDQ1NkFFMTQyN0ZCMDMwMDM3REE2OCAvKiBBbGxv
Y2F0aW9uU3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWxs
b2NhdGlvblNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTcwNDU2QUYx
NDI3RkIxNTAwMzdEQTY4IC8qIEFsbG9jYXRpb25TcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBbGxvY2F0aW9uU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcxMjM2RTQxMTk1RjMzQzAwQkQyMTc0IC8qIEpJVE9wY29kZXMzMl82NC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRPcGNvZGVzMzJfNjQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4RjYxQTExNzU0QTIxMDAyNDY1QTcgLyog
UmVnRXhwSml0VGFibGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ0V4
cEppdFRhYmxlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4RjgyMTExNzhF
QjRCMDAyNDY1QTcgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBmaWxlRW5jb2Rp
bmcgPSA0OyBwYXRoID0gY3JlYXRlX3JlZ2V4X3RhYmxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE2MjEsOCArMTYxNyw2IEBACiAJCTE0MkUzMTJBMTM0RkYwQTYwMEFGQURCNSAv
KiBoZWFwICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlB
NzA0NTZBRjE0MjdGQjE1MDAzN0RBNjggLyogQWxsb2NhdGlvblNwYWNlLmggKi8sCi0JCQkJQTcw
NDU2QUUxNDI3RkIwMzAwMzdEQTY4IC8qIEFsbG9jYXRpb25TcGFjZS5jcHAgKi8sCiAJCQkJMEYy
NDJEQTUxM0YzQjFCQjAwN0FERDRDIC8qIFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCAqLywKIAkJ
CQkwRkM4MTUxNDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLywKIAkJCQkw
RkM4MTUxMjE0MDUxMTg2MDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwICovLApAQCAtMjc5
OSw3ICsyNzkzLDYgQEAKIAkJCQlBN0JDMEM4MjE0MDYwOEIwMDBCMUJCNzEgLyogQ2hlY2tlZEFy
aXRobWV0aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3ODFFMzU5MTQxOTcwQzcwMDA5NEQ5MCAv
KiBTdG9yYWdlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwODI3N0ExNDIxNjhENzAw
OTBDQ0FDIC8qIEJpbmFyeVNlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTcwNDU2QjAx
NDI3RkI5MTAwMzdEQTY4IC8qIEFsbG9jYXRpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0z
MzA1LDcgKzMyOTgsNiBAQAogCQkJCUMyMkM1MkZFMTNGQUY2RUYwMEI3REMwRCAvKiBmaXhlZC1k
dG9hLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIyQzUzMTMxM0ZBRjZFRjAwQjdEQzBEIC8qIHN0
cnRvZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTFBMDgyNzc5MTQyMTY4RDcwMDkwQ0NBQyAvKiBC
aW5hcnlTZW1hcGhvcmUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTcwNDU2QjExNDI3RkI5NTAw
MzdEQTY4IC8qIEFsbG9jYXRpb25TcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDEzZDZhZDhmMzA4ZGQ3YzZl
NjM1MDg2ZTA4YmVlOTkyNDJjNzRkMTQuLjYxMDQ0YTg5Yzc5ZWU2YjEzZjY4ODlmMjgzMzc4ZmRl
NWYyZjgzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNw
cApAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgRGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVj
b21waWxlciByZWNvbXBpbGVyKHRoaXMpOwotICAgIGdsb2JhbERhdGEtPmhlYXAub2JqZWN0U3Bh
Y2UoKS5mb3JFYWNoQ2VsbChyZWNvbXBpbGVyKTsKKyAgICBnbG9iYWxEYXRhLT5oZWFwLmZvckVh
Y2hDZWxsKHJlY29tcGlsZXIpOwogfQogCiBKU1ZhbHVlIGV2YWx1YXRlSW5HbG9iYWxDYWxsRnJh
bWUoY29uc3QgVVN0cmluZyYgc2NyaXB0LCBKU1ZhbHVlJiBleGNlcHRpb24sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9BbGxvY2F0aW9uU3BhY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWxsb2Nh
dGlvblNwYWNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAxY2JlMTQwNjVj
MjA2ZjYwZmMwNmE2MjhiNjhlZTU4MTBlOGVlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0aW9u
U3BhY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJBbGxvY2F0aW9uU3BhY2UuaCIKLQotI2lu
Y2x1ZGUgIkhlYXAuaCIKLQotI2RlZmluZSBDT0xMRUNUX09OX0VWRVJZX0FMTE9DQVRJT04gMAot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotaW5saW5lIHZvaWQqIEFsbG9jYXRpb25TcGFjZTo6dHJ5QWxs
b2NhdGUoTWFya2VkU3BhY2U6OlNpemVDbGFzcyYgc2l6ZUNsYXNzKQotewotICAgIG1faGVhcC0+
bV9vcGVyYXRpb25JblByb2dyZXNzID0gQWxsb2NhdGlvbjsKLSAgICB2b2lkKiByZXN1bHQgPSBt
X21hcmtlZFNwYWNlLmFsbG9jYXRlKHNpemVDbGFzcyk7Ci0gICAgbV9oZWFwLT5tX29wZXJhdGlv
bkluUHJvZ3Jlc3MgPSBOb09wZXJhdGlvbjsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lk
KiBBbGxvY2F0aW9uU3BhY2U6OmFsbG9jYXRlU2xvd0Nhc2UoTWFya2VkU3BhY2U6OlNpemVDbGFz
cyYgc2l6ZUNsYXNzKQotewotI2lmIENPTExFQ1RfT05fRVZFUllfQUxMT0NBVElPTgotICAgIGNv
bGxlY3RBbGxHYXJiYWdlKCk7Ci0gICAgQVNTRVJUKG1faGVhcC0+bV9vcGVyYXRpb25JblByb2dy
ZXNzID09IE5vT3BlcmF0aW9uKTsKLSNlbmRpZgotICAgIAotICAgIHZvaWQqIHJlc3VsdCA9IHRy
eUFsbG9jYXRlKHNpemVDbGFzcyk7Ci0gICAgCi0gICAgaWYgKExJS0VMWShyZXN1bHQgIT0gMCkp
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgCi0gICAgQWxsb2NhdGlvbkVmZm9ydCBhbGxv
Y2F0aW9uRWZmb3J0OwotICAgIAotICAgIGlmIChtX21hcmtlZFNwYWNlLndhdGVyTWFyaygpIDwg
bV9tYXJrZWRTcGFjZS5oaWdoV2F0ZXJNYXJrKCkgfHwgIW1faGVhcC0+bV9pc1NhZmVUb0NvbGxl
Y3QpCi0gICAgICAgIGFsbG9jYXRpb25FZmZvcnQgPSBBbGxvY2F0aW9uTXVzdFN1Y2NlZWQ7Ci0g
ICAgZWxzZQotICAgICAgICBhbGxvY2F0aW9uRWZmb3J0ID0gQWxsb2NhdGlvbkNhbkZhaWw7Ci0g
ICAgCi0gICAgTWFya2VkQmxvY2sqIGJsb2NrID0gYWxsb2NhdGVCbG9jayhzaXplQ2xhc3MuY2Vs
bFNpemUsIGFsbG9jYXRpb25FZmZvcnQpOwotICAgIGlmIChibG9jaykgewotICAgICAgICBtX21h
cmtlZFNwYWNlLmFkZEJsb2NrKHNpemVDbGFzcywgYmxvY2spOwotICAgICAgICB2b2lkKiByZXN1
bHQgPSB0cnlBbGxvY2F0ZShzaXplQ2xhc3MpOwotICAgICAgICBBU1NFUlQocmVzdWx0KTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgbV9oZWFwLT5jb2xsZWN0KEhl
YXA6OkRvTm90U3dlZXApOwotICAgIAotICAgIHJlc3VsdCA9IHRyeUFsbG9jYXRlKHNpemVDbGFz
cyk7Ci0gICAgCi0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAK
LSAgICBBU1NFUlQobV9tYXJrZWRTcGFjZS53YXRlck1hcmsoKSA8IG1fbWFya2VkU3BhY2UuaGln
aFdhdGVyTWFyaygpKTsKLSAgICAKLSAgICBtX21hcmtlZFNwYWNlLmFkZEJsb2NrKHNpemVDbGFz
cywgYWxsb2NhdGVCbG9jayhzaXplQ2xhc3MuY2VsbFNpemUsIEFsbG9jYXRpb25NdXN0U3VjY2Vl
ZCkpOwotICAgIAotICAgIHJlc3VsdCA9IHRyeUFsbG9jYXRlKHNpemVDbGFzcyk7Ci0gICAgQVNT
RVJUKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotTWFya2VkQmxvY2sqIEFsbG9j
YXRpb25TcGFjZTo6YWxsb2NhdGVCbG9jayhzaXplX3QgY2VsbFNpemUsIEFsbG9jYXRpb25TcGFj
ZTo6QWxsb2NhdGlvbkVmZm9ydCBhbGxvY2F0aW9uRWZmb3J0KQotewotICAgIE1hcmtlZEJsb2Nr
KiBibG9jazsKLSAgICAKLSNpZiAhRU5BQkxFKExBWllfQkxPQ0tfRlJFRUlORykKLSAgICBpZiAo
YWxsb2NhdGlvbkVmZm9ydCA9PSBBbGxvY2F0aW9uQ2FuRmFpbCkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgCi0gICAgYmxvY2sgPSBNYXJrZWRCbG9jazo6Y3JlYXRlKG1faGVhcCwgY2VsbFNpemUp
OwotI2Vsc2UKLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2hlYXAtPm1fZnJl
ZUJsb2NrTG9jayk7Ci0gICAgICAgIGlmIChtX2hlYXAtPm1fbnVtYmVyT2ZGcmVlQmxvY2tzKSB7
Ci0gICAgICAgICAgICBibG9jayA9IG1faGVhcC0+bV9mcmVlQmxvY2tzLnJlbW92ZUhlYWQoKTsK
LSAgICAgICAgICAgIEFTU0VSVChibG9jayk7Ci0gICAgICAgICAgICBtX2hlYXAtPm1fbnVtYmVy
T2ZGcmVlQmxvY2tzLS07Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgYmxvY2sgPSAwOwot
ICAgIH0KLSAgICBpZiAoYmxvY2spCi0gICAgICAgIGJsb2NrLT5pbml0Rm9yQ2VsbFNpemUoY2Vs
bFNpemUpOwotICAgIGVsc2UgaWYgKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbkNhbkZh
aWwpCi0gICAgICAgIHJldHVybiAwOwotICAgIGVsc2UKLSAgICAgICAgYmxvY2sgPSBNYXJrZWRC
bG9jazo6Y3JlYXRlKG1faGVhcCwgY2VsbFNpemUpOwotI2VuZGlmCi0gICAgCi0gICAgbV9ibG9j
a3MuYWRkKGJsb2NrKTsKLSAgICAKLSAgICByZXR1cm4gYmxvY2s7Ci19Ci0KLXZvaWQgQWxsb2Nh
dGlvblNwYWNlOjpmcmVlQmxvY2tzKE1hcmtlZEJsb2NrKiBoZWFkKQotewotICAgIE1hcmtlZEJs
b2NrKiBuZXh0OwotICAgIGZvciAoTWFya2VkQmxvY2sqIGJsb2NrID0gaGVhZDsgYmxvY2s7IGJs
b2NrID0gbmV4dCkgewotICAgICAgICBuZXh0ID0gYmxvY2stPm5leHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIG1fYmxvY2tzLnJlbW92ZShibG9jayk7Ci0gICAgICAgIGJsb2NrLT5yZXNldCgpOwot
I2lmICFFTkFCTEUoTEFaWV9CTE9DS19GUkVFSU5HKQotICAgICAgICBNYXJrZWRCbG9jazo6ZGVz
dHJveShibG9jayk7Ci0jZWxzZQotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9oZWFwLT5t
X2ZyZWVCbG9ja0xvY2spOwotICAgICAgICBtX2hlYXAtPm1fZnJlZUJsb2Nrcy5hcHBlbmQoYmxv
Y2spOwotICAgICAgICBtX2hlYXAtPm1fbnVtYmVyT2ZGcmVlQmxvY2tzKys7Ci0jZW5kaWYKLSAg
ICB9Ci19Ci0KLWNsYXNzIFRha2VJZkVtcHR5IHsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIE1hcmtl
ZEJsb2NrKiBSZXR1cm5UeXBlOwotICAgIAotICAgIFRha2VJZkVtcHR5KE1hcmtlZFNwYWNlKik7
Ci0gICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2NrKik7Ci0gICAgUmV0dXJuVHlwZSByZXR1
cm5WYWx1ZSgpOwotICAgIAotcHJpdmF0ZToKLSAgICBNYXJrZWRTcGFjZSogbV9tYXJrZWRTcGFj
ZTsKLSAgICBEb3VibHlMaW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBtX2VtcHRpZXM7Ci19OwotCi1p
bmxpbmUgVGFrZUlmRW1wdHk6OlRha2VJZkVtcHR5KE1hcmtlZFNwYWNlKiBuZXdTcGFjZSkKLSAg
ICA6IG1fbWFya2VkU3BhY2UobmV3U3BhY2UpCi17Ci19Ci0KLWlubGluZSB2b2lkIFRha2VJZkVt
cHR5OjpvcGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX21hcmtlZFNwYWNlLT5yZW1v
dmVCbG9jayhibG9jayk7Ci0gICAgbV9lbXB0aWVzLmFwcGVuZChibG9jayk7Ci19Ci0KLWlubGlu
ZSBUYWtlSWZFbXB0eTo6UmV0dXJuVHlwZSBUYWtlSWZFbXB0eTo6cmV0dXJuVmFsdWUoKQotewot
ICAgIHJldHVybiBtX2VtcHRpZXMuaGVhZCgpOwotfQotCi12b2lkIEFsbG9jYXRpb25TcGFjZTo6
c2hyaW5rKCkKLXsKLSAgICAvLyBXZSByZWNvcmQgYSB0ZW1wb3JhcnkgbGlzdCBvZiBlbXB0aWVz
IHRvIGF2b2lkIG1vZGlmeWluZyBtX2Jsb2NrcyB3aGlsZSBpdGVyYXRpbmcgaXQuCi0gICAgVGFr
ZUlmRW1wdHkgdGFrZUlmRW1wdHkoJm1fbWFya2VkU3BhY2UpOwotICAgIGZyZWVCbG9ja3MoZm9y
RWFjaEJsb2NrKHRha2VJZkVtcHR5KSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRpb25TcGFjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQWxsb2NhdGlvblNwYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1
Yjk1ZTM1YzkwMTY1MDk5N2RkYTljMTU3NzIzZjlmYjBkODRhNDkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
QWxsb2NhdGlvblNwYWNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgQWxsb2NhdGlvblNwYWNlX2gKLSNkZWZpbmUgQWxsb2NhdGlvblNwYWNl
X2gKLQotI2luY2x1ZGUgIk1hcmtlZEJsb2NrU2V0LmgiCi0jaW5jbHVkZSAiTWFya2VkU3BhY2Uu
aCIKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFz
cyBIZWFwOwotY2xhc3MgTWFya2VkQmxvY2s7Ci0KLWNsYXNzIEFsbG9jYXRpb25TcGFjZSB7Ci1w
dWJsaWM6Ci0gICAgQWxsb2NhdGlvblNwYWNlKEhlYXAqIGhlYXApCi0gICAgICAgIDogbV9oZWFw
KGhlYXApCi0gICAgICAgICwgbV9tYXJrZWRTcGFjZShoZWFwKQotICAgIHsKLSAgICB9Ci0gICAg
Ci0gICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEJsb2NrKj46Oml0ZXJhdG9yIEJsb2NrSXRlcmF0
b3I7Ci0gICAgCi0gICAgTWFya2VkQmxvY2tTZXQmIGJsb2NrcygpIHsgcmV0dXJuIG1fYmxvY2tz
OyB9Ci0gICAgTWFya2VkU3BhY2U6OlNpemVDbGFzcyYgc2l6ZUNsYXNzRm9yKHNpemVfdCBieXRl
cykgeyByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplQ2xhc3NGb3IoYnl0ZXMpOyB9Ci0gICAgdm9p
ZCBzZXRIaWdoV2F0ZXJNYXJrKHNpemVfdCBieXRlcykgeyBtX21hcmtlZFNwYWNlLnNldEhpZ2hX
YXRlck1hcmsoYnl0ZXMpOyB9Ci0gICAgc2l6ZV90IGhpZ2hXYXRlck1hcmsoKSB7IHJldHVybiBt
X21hcmtlZFNwYWNlLmhpZ2hXYXRlck1hcmsoKTsgfQotICAgIAotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaENlbGwoRnVu
Y3RvciYpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6
OlJldHVyblR5cGUgZm9yRWFjaENlbGwoKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
PiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hCbG9jayhGdW5jdG9yJik7Ci0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlw
ZSBmb3JFYWNoQmxvY2soKTsKLSAgICAKLSAgICB2b2lkIGNhbm9uaWNhbGl6ZUJsb2NrcygpIHsg
bV9tYXJrZWRTcGFjZS5jYW5vbmljYWxpemVCbG9ja3MoKTsgfQotICAgIHZvaWQgcmVzZXRBbGxv
Y2F0b3IoKSB7IG1fbWFya2VkU3BhY2UucmVzZXRBbGxvY2F0b3IoKTsgfQotICAgIAotICAgIHZv
aWQqIGFsbG9jYXRlKHNpemVfdCk7Ci0gICAgdm9pZCBmcmVlQmxvY2tzKE1hcmtlZEJsb2NrKik7
Ci0gICAgdm9pZCBzaHJpbmsoKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgZW51bSBBbGxvY2F0aW9u
RWZmb3J0IHsgQWxsb2NhdGlvbk11c3RTdWNjZWVkLCBBbGxvY2F0aW9uQ2FuRmFpbCB9OwotICAg
IAotICAgIHZvaWQqIGFsbG9jYXRlKE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmKTsKLSAgICB2b2lk
KiB0cnlBbGxvY2F0ZShNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJik7Ci0gICAgdm9pZCogYWxsb2Nh
dGVTbG93Q2FzZShNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJik7Ci0gICAgTWFya2VkQmxvY2sqIGFs
bG9jYXRlQmxvY2soc2l6ZV90IGNlbGxTaXplLCBBbGxvY2F0aW9uRWZmb3J0KTsKLSAgICAKLSAg
ICBIZWFwKiBtX2hlYXA7Ci0gICAgTWFya2VkU3BhY2UgbV9tYXJrZWRTcGFjZTsKLSAgICBNYXJr
ZWRCbG9ja1NldCBtX2Jsb2NrczsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IGlu
bGluZSB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIEFsbG9jYXRpb25TcGFjZTo6Zm9yRWFj
aENlbGwoRnVuY3RvciYgZnVuY3RvcikKLXsKLSAgICBjYW5vbmljYWxpemVCbG9ja3MoKTsKLSAg
ICBCbG9ja0l0ZXJhdG9yIGVuZCA9IG1fYmxvY2tzLnNldCgpLmVuZCgpOwotICAgIGZvciAoQmxv
Y2tJdGVyYXRvciBpdCA9IG1fYmxvY2tzLnNldCgpLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgKCppdCktPmZvckVhY2hDZWxsKGZ1bmN0b3IpOwotICAgIHJldHVybiBmdW5jdG9y
LnJldHVyblZhbHVlKCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB0
eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIEFsbG9jYXRpb25TcGFjZTo6Zm9yRWFjaENlbGwo
KQotewotICAgIEZ1bmN0b3IgZnVuY3RvcjsKLSAgICByZXR1cm4gZm9yRWFjaENlbGwoZnVuY3Rv
cik7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB0eXBlbmFtZSBGdW5j
dG9yOjpSZXR1cm5UeXBlIEFsbG9jYXRpb25TcGFjZTo6Zm9yRWFjaEJsb2NrKEZ1bmN0b3ImIGZ1
bmN0b3IpCi17Ci0gICAgY2Fub25pY2FsaXplQmxvY2tzKCk7Ci0gICAgQmxvY2tJdGVyYXRvciBl
bmQgPSBtX2Jsb2Nrcy5zZXQoKS5lbmQoKTsKLSAgICBmb3IgKEJsb2NrSXRlcmF0b3IgaXQgPSBt
X2Jsb2Nrcy5zZXQoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGZ1bmN0b3Io
Kml0KTsKLSAgICByZXR1cm4gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotfQotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBBbGxv
Y2F0aW9uU3BhY2U6OmZvckVhY2hCbG9jaygpCi17Ci0gICAgRnVuY3RvciBmdW5jdG9yOwotICAg
IHJldHVybiBmb3JFYWNoQmxvY2soZnVuY3Rvcik7Ci19Ci0KLWlubGluZSB2b2lkKiBBbGxvY2F0
aW9uU3BhY2U6OmFsbG9jYXRlKE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmIHNpemVDbGFzcykKLXsK
LSAgICAvLyBUaGlzIGlzIGEgbGlnaHQtd2VpZ2h0IGZhc3QgcGF0aCB0byBjb3ZlciB0aGUgbW9z
dCBjb21tb24gY2FzZS4KLSAgICBNYXJrZWRCbG9jazo6RnJlZUNlbGwqIGZpcnN0RnJlZUNlbGwg
PSBzaXplQ2xhc3MuZmlyc3RGcmVlQ2VsbDsKLSAgICBpZiAoVU5MSUtFTFkoIWZpcnN0RnJlZUNl
bGwpKQotICAgICAgICByZXR1cm4gYWxsb2NhdGVTbG93Q2FzZShzaXplQ2xhc3MpOwotICAgIAot
ICAgIHNpemVDbGFzcy5maXJzdEZyZWVDZWxsID0gZmlyc3RGcmVlQ2VsbC0+bmV4dDsKLSAgICBy
ZXR1cm4gZmlyc3RGcmVlQ2VsbDsKLX0KLQotaW5saW5lIHZvaWQqIEFsbG9jYXRpb25TcGFjZTo6
YWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQotewotICAgIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmIHNp
emVDbGFzcyA9IHNpemVDbGFzc0ZvcihieXRlcyk7Ci0gICAgcmV0dXJuIGFsbG9jYXRlKHNpemVD
bGFzcyk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmlu
ZGV4IGIzYWMyMDBhYTg1OWJjYjMzYzFiMzM2N2QzMjVmNzg0YWFmODkzNTkuLjhhOTVjYjcyZTlm
OGY4YzMxMjk1NGQzYjM1NzVhYjYzYzFjOTFmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiVHJhY2luZy5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KIAorI2RlZmluZSBDT0xMRUNUX09OX0VWRVJZX0FMTE9DQVRJT04gMAogCiB1
c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTE3NCw2ICsxNzUs
MzggQEAgaW5saW5lIHZvaWQgQ291bnRJZkdsb2JhbE9iamVjdDo6b3BlcmF0b3IoKShKU0NlbGwq
IGNlbGwpCiAgICAgY291bnQoMSk7CiB9CiAKK2NsYXNzIFRha2VJZkVtcHR5IHsKK3B1YmxpYzoK
KyAgICB0eXBlZGVmIE1hcmtlZEJsb2NrKiBSZXR1cm5UeXBlOworCisgICAgVGFrZUlmRW1wdHko
TWFya2VkU3BhY2UqKTsKKyAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqKTsKKyAgICBS
ZXR1cm5UeXBlIHJldHVyblZhbHVlKCk7CisKK3ByaXZhdGU6CisgICAgTWFya2VkU3BhY2UqIG1f
bWFya2VkU3BhY2U7CisgICAgRG91Ymx5TGlua2VkTGlzdDxNYXJrZWRCbG9jaz4gbV9lbXB0aWVz
OworfTsKKworaW5saW5lIFRha2VJZkVtcHR5OjpUYWtlSWZFbXB0eShNYXJrZWRTcGFjZSogbmV3
U3BhY2UpCisgICAgOiBtX21hcmtlZFNwYWNlKG5ld1NwYWNlKQoreworfQorCitpbmxpbmUgdm9p
ZCBUYWtlSWZFbXB0eTo6b3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCit7CisgICAgaWYg
KCFibG9jay0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hcmtlZFNwYWNl
LT5yZW1vdmVCbG9jayhibG9jayk7CisgICAgbV9lbXB0aWVzLmFwcGVuZChibG9jayk7Cit9CisK
K2lubGluZSBUYWtlSWZFbXB0eTo6UmV0dXJuVHlwZSBUYWtlSWZFbXB0eTo6cmV0dXJuVmFsdWUo
KQoreworICAgIHJldHVybiBtX2VtcHRpZXMuaGVhZCgpOworfQorCiBjbGFzcyBSZWNvcmRUeXBl
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhc3NPd25QdHI8VHlwZUNvdW50U2V0PiBSZXR1cm5U
eXBlOwpAQCAtMjE2LDcgKzI0OSw3IEBAIEhlYXA6OkhlYXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhLCBIZWFwU2l6ZSBoZWFwU2l6ZSkKICAgICA6IG1faGVhcFNpemUoaGVhcFNpemUpCiAgICAg
LCBtX21pbkJ5dGVzUGVyQ3ljbGUoaGVhcFNpemVGb3JIaW50KGhlYXBTaXplKSkKICAgICAsIG1f
b3BlcmF0aW9uSW5Qcm9ncmVzcyhOb09wZXJhdGlvbikKLSAgICAsIG1fb2JqZWN0U3BhY2UodGhp
cykKKyAgICAsIG1fbWFya2VkU3BhY2UodGhpcykKICAgICAsIG1fZXh0cmFDb3N0KDApCiAgICAg
LCBtX21hcmtMaXN0U2V0KDApCiAgICAgLCBtX2FjdGl2aXR5Q2FsbGJhY2soRGVmYXVsdEdDQWN0
aXZpdHlDYWxsYmFjazo6Y3JlYXRlKHRoaXMpKQpAQCAtMjI2LDcgKzI1OSw3IEBAIEhlYXA6Okhl
YXAoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBIZWFwU2l6ZSBoZWFwU2l6ZSkKICAgICAsIG1f
aXNTYWZlVG9Db2xsZWN0KGZhbHNlKQogICAgICwgbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCiB7
Ci0gICAgbV9vYmplY3RTcGFjZS5zZXRIaWdoV2F0ZXJNYXJrKG1fbWluQnl0ZXNQZXJDeWNsZSk7
CisgICAgbV9tYXJrZWRTcGFjZS5zZXRIaWdoV2F0ZXJNYXJrKG1fbWluQnl0ZXNQZXJDeWNsZSk7
CiAgICAgKCptX2FjdGl2aXR5Q2FsbGJhY2spKCk7CiAjaWYgRU5BQkxFKExBWllfQkxPQ0tfRlJF
RUlORykKICAgICBtX251bWJlck9mRnJlZUJsb2NrcyA9IDA7CkBAIC0zNjgsMTEgKzQwMSw2MiBA
QCB2b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKHNpemVfdCBjb3N0KQog
ICAgIC8vIGlmIGEgbGFyZ2UgdmFsdWUgc3Vydml2ZXMgb25lIGdhcmJhZ2UgY29sbGVjdGlvbiwg
dGhlcmUgaXMgbm90IG11Y2ggcG9pbnQgdG8KICAgICAvLyBjb2xsZWN0aW5nIG1vcmUgZnJlcXVl
bnRseSBhcyBsb25nIGFzIGl0IHN0YXlzIGFsaXZlLgogCi0gICAgaWYgKG1fZXh0cmFDb3N0ID4g
bWF4RXh0cmFDb3N0ICYmIG1fZXh0cmFDb3N0ID4gbV9vYmplY3RTcGFjZS5oaWdoV2F0ZXJNYXJr
KCkgLyAyKQorICAgIGlmIChtX2V4dHJhQ29zdCA+IG1heEV4dHJhQ29zdCAmJiBtX2V4dHJhQ29z
dCA+IG1fbWFya2VkU3BhY2UuaGlnaFdhdGVyTWFyaygpIC8gMikKICAgICAgICAgY29sbGVjdEFs
bEdhcmJhZ2UoKTsKICAgICBtX2V4dHJhQ29zdCArPSBjb3N0OwogfQogCitpbmxpbmUgdm9pZCog
SGVhcDo6dHJ5QWxsb2NhdGUoTWFya2VkU3BhY2U6OlNpemVDbGFzcyYgc2l6ZUNsYXNzKQorewor
ICAgIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9IEFsbG9jYXRpb247CisgICAgdm9pZCogcmVzdWx0
ID0gbV9tYXJrZWRTcGFjZS5hbGxvY2F0ZShzaXplQ2xhc3MpOworICAgIG1fb3BlcmF0aW9uSW5Q
cm9ncmVzcyA9IE5vT3BlcmF0aW9uOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQqIEhl
YXA6OmFsbG9jYXRlU2xvd0Nhc2UoTWFya2VkU3BhY2U6OlNpemVDbGFzcyYgc2l6ZUNsYXNzKQor
eworI2lmIENPTExFQ1RfT05fRVZFUllfQUxMT0NBVElPTgorICAgIGNvbGxlY3RBbGxHYXJiYWdl
KCk7CisgICAgQVNTRVJUKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBOb09wZXJhdGlvbik7Cisj
ZW5kaWYKKworICAgIHZvaWQqIHJlc3VsdCA9IHRyeUFsbG9jYXRlKHNpemVDbGFzcyk7CisKKyAg
ICBpZiAoTElLRUxZKHJlc3VsdCAhPSAwKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAg
IEFsbG9jYXRpb25FZmZvcnQgYWxsb2NhdGlvbkVmZm9ydDsKKyAgICAKKyAgICBpZiAobV9tYXJr
ZWRTcGFjZS53YXRlck1hcmsoKSA8IG1fbWFya2VkU3BhY2UuaGlnaFdhdGVyTWFyaygpIHx8ICFt
X2lzU2FmZVRvQ29sbGVjdCkKKyAgICAgICAgYWxsb2NhdGlvbkVmZm9ydCA9IEFsbG9jYXRpb25N
dXN0U3VjY2VlZDsKKyAgICBlbHNlCisgICAgICAgIGFsbG9jYXRpb25FZmZvcnQgPSBBbGxvY2F0
aW9uQ2FuRmFpbDsKKyAgICAKKyAgICBNYXJrZWRCbG9jayogYmxvY2sgPSBhbGxvY2F0ZUJsb2Nr
KHNpemVDbGFzcy5jZWxsU2l6ZSwgYWxsb2NhdGlvbkVmZm9ydCk7CisgICAgaWYgKGJsb2NrKSB7
CisgICAgICAgIG1fbWFya2VkU3BhY2UuYWRkQmxvY2soc2l6ZUNsYXNzLCBibG9jayk7CisgICAg
ICAgIHZvaWQqIHJlc3VsdCA9IHRyeUFsbG9jYXRlKHNpemVDbGFzcyk7CisgICAgICAgIEFTU0VS
VChyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGNvbGxlY3Qo
RG9Ob3RTd2VlcCk7CisgICAgCisgICAgcmVzdWx0ID0gdHJ5QWxsb2NhdGUoc2l6ZUNsYXNzKTsK
KyAgICAKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIAorICAg
IEFTU0VSVChtX21hcmtlZFNwYWNlLndhdGVyTWFyaygpIDwgbV9tYXJrZWRTcGFjZS5oaWdoV2F0
ZXJNYXJrKCkpOworICAgIAorICAgIG1fbWFya2VkU3BhY2UuYWRkQmxvY2soc2l6ZUNsYXNzLCBh
bGxvY2F0ZUJsb2NrKHNpemVDbGFzcy5jZWxsU2l6ZSwgQWxsb2NhdGlvbk11c3RTdWNjZWVkKSk7
CisgICAgCisgICAgcmVzdWx0ID0gdHJ5QWxsb2NhdGUoc2l6ZUNsYXNzKTsKKyAgICBBU1NFUlQo
cmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lkIEhlYXA6OnByb3RlY3QoSlNW
YWx1ZSBrKQogewogICAgIEFTU0VSVChrKTsKQEAgLTQ0NSw3ICs1MjksNyBAQCB2b2lkIEhlYXA6
OmdldENvbnNlcnZhdGl2ZVJlZ2lzdGVyUm9vdHMoSGFzaFNldDxKU0NlbGwqPiYgcm9vdHMpCiAg
ICAgaWYgKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyAhPSBOb09wZXJhdGlvbikKICAgICAgICAgQ1JB
U0goKTsKICAgICBtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPSBDb2xsZWN0aW9uOwotICAgIENvbnNl
cnZhdGl2ZVJvb3RzIHJlZ2lzdGVyRmlsZVJvb3RzKCZtX29iamVjdFNwYWNlLmJsb2NrcygpKTsK
KyAgICBDb25zZXJ2YXRpdmVSb290cyByZWdpc3RlckZpbGVSb290cygmbV9ibG9ja3MpOwogICAg
IHJlZ2lzdGVyRmlsZSgpLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKHJlZ2lzdGVyRmlsZVJvb3Rz
KTsKICAgICBzaXplX3QgcmVnaXN0ZXJGaWxlUm9vdENvdW50ID0gcmVnaXN0ZXJGaWxlUm9vdHMu
c2l6ZSgpOwogICAgIEpTQ2VsbCoqIHJlZ2lzdGVyUm9vdHMgPSByZWdpc3RlckZpbGVSb290cy5y
b290cygpOwpAQCAtNDY3LDEwICs1NTEsMTAgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogCiAg
ICAgLy8gV2UgZ2F0aGVyIGNvbnNlcnZhdGl2ZSByb290cyBiZWZvcmUgY2xlYXJpbmcgbWFyayBi
aXRzIGJlY2F1c2UgY29uc2VydmF0aXZlCiAgICAgLy8gZ2F0aGVyaW5nIHVzZXMgdGhlIG1hcmsg
Yml0cyB0byBkZXRlcm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KLSAgICBDb25z
ZXJ2YXRpdmVSb290cyBtYWNoaW5lVGhyZWFkUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCkp
OworICAgIENvbnNlcnZhdGl2ZVJvb3RzIG1hY2hpbmVUaHJlYWRSb290cygmbV9ibG9ja3MpOwog
ICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMobWFjaGluZVRocmVh
ZFJvb3RzLCAmZHVtbXkpOwogCi0gICAgQ29uc2VydmF0aXZlUm9vdHMgcmVnaXN0ZXJGaWxlUm9v
dHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCkpOworICAgIENvbnNlcnZhdGl2ZVJvb3RzIHJlZ2lz
dGVyRmlsZVJvb3RzKCZtX2Jsb2Nrcyk7CiAgICAgcmVnaXN0ZXJGaWxlKCkuZ2F0aGVyQ29uc2Vy
dmF0aXZlUm9vdHMocmVnaXN0ZXJGaWxlUm9vdHMpOwogCiAgICAgY2xlYXJNYXJrcygpOwpAQCAt
NTIzLDI3ICs2MDcsMjcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogCiB2b2lkIEhlYXA6OmNs
ZWFyTWFya3MoKQogewotICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaEJsb2NrPENsZWFyTWFya3M+
KCk7CisgICAgZm9yRWFjaEJsb2NrPENsZWFyTWFya3M+KCk7CiB9CiAKIHZvaWQgSGVhcDo6c3dl
ZXAoKQogewotICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaEJsb2NrPFN3ZWVwPigpOworICAgIGZv
ckVhY2hCbG9jazxTd2VlcD4oKTsKIH0KIAogc2l6ZV90IEhlYXA6Om9iamVjdENvdW50KCkKIHsK
LSAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5mb3JFYWNoQmxvY2s8TWFya0NvdW50PigpOworICAg
IHJldHVybiBmb3JFYWNoQmxvY2s8TWFya0NvdW50PigpOwogfQogCiBzaXplX3QgSGVhcDo6c2l6
ZSgpCiB7Ci0gICAgcmV0dXJuIG1fb2JqZWN0U3BhY2UuZm9yRWFjaEJsb2NrPFNpemU+KCk7Cisg
ICAgcmV0dXJuIGZvckVhY2hCbG9jazxTaXplPigpOwogfQogCiBzaXplX3QgSGVhcDo6Y2FwYWNp
dHkoKQogewotICAgIHJldHVybiBtX29iamVjdFNwYWNlLmZvckVhY2hCbG9jazxDYXBhY2l0eT4o
KTsKKyAgICByZXR1cm4gZm9yRWFjaEJsb2NrPENhcGFjaXR5PigpOwogfQogCiBzaXplX3QgSGVh
cDo6cHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnQoKQpAQCAtNTUzLDcgKzYzNyw3IEBAIHNpemVf
dCBIZWFwOjpwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpCiAKIHNpemVfdCBIZWFwOjpnbG9i
YWxPYmplY3RDb3VudCgpCiB7Ci0gICAgcmV0dXJuIG1fb2JqZWN0U3BhY2UuZm9yRWFjaENlbGw8
Q291bnRJZkdsb2JhbE9iamVjdD4oKTsKKyAgICByZXR1cm4gZm9yRWFjaENlbGw8Q291bnRJZkds
b2JhbE9iamVjdD4oKTsKIH0KIAogc2l6ZV90IEhlYXA6OnByb3RlY3RlZE9iamVjdENvdW50KCkK
QEAgLTU2OCw3ICs2NTIsNyBAQCBQYXNzT3duUHRyPFR5cGVDb3VudFNldD4gSGVhcDo6cHJvdGVj
dGVkT2JqZWN0VHlwZUNvdW50cygpCiAKIFBhc3NPd25QdHI8VHlwZUNvdW50U2V0PiBIZWFwOjpv
YmplY3RUeXBlQ291bnRzKCkKIHsKLSAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5mb3JFYWNoQ2Vs
bDxSZWNvcmRUeXBlPigpOworICAgIHJldHVybiBmb3JFYWNoQ2VsbDxSZWNvcmRUeXBlPigpOwog
fQogCiB2b2lkIEhlYXA6OmNvbGxlY3RBbGxHYXJiYWdlKCkKQEAgLTYwNyw3ICs2OTEsNyBAQCB2
b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnbGUpCiAgICAgLy8gcHJvcG9y
dGlvbiBpcyBhIGJpdCBhcmJpdHJhcnkuIEEgMlggbXVsdGlwbGllciBnaXZlcyBhIDE6MSAoaGVh
cCBzaXplIDoKICAgICAvLyBuZXcgYnl0ZXMgYWxsb2NhdGVkKSBwcm9wb3J0aW9uLCBhbmQgc2Vl
bXMgdG8gd29yayB3ZWxsIGluIGJlbmNobWFya3MuCiAgICAgc2l6ZV90IHByb3BvcnRpb25hbEJ5
dGVzID0gMiAqIHNpemUoKTsKLSAgICBtX29iamVjdFNwYWNlLnNldEhpZ2hXYXRlck1hcmsobWF4
KHByb3BvcnRpb25hbEJ5dGVzLCBtX21pbkJ5dGVzUGVyQ3ljbGUpKTsKKyAgICBtX21hcmtlZFNw
YWNlLnNldEhpZ2hXYXRlck1hcmsobWF4KHByb3BvcnRpb25hbEJ5dGVzLCBtX21pbkJ5dGVzUGVy
Q3ljbGUpKTsKICAgICBKQVZBU0NSSVBUQ09SRV9HQ19FTkQoKTsKIAogICAgICgqbV9hY3Rpdml0
eUNhbGxiYWNrKSgpOwpAQCAtNjE1LDEzICs2OTksMTMgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KFN3
ZWVwVG9nZ2xlIHN3ZWVwVG9nZ2xlKQogCiB2b2lkIEhlYXA6OmNhbm9uaWNhbGl6ZUJsb2Nrcygp
CiB7Ci0gICAgbV9vYmplY3RTcGFjZS5jYW5vbmljYWxpemVCbG9ja3MoKTsKKyAgICBtX21hcmtl
ZFNwYWNlLmNhbm9uaWNhbGl6ZUJsb2NrcygpOwogfQogCiB2b2lkIEhlYXA6OnJlc2V0QWxsb2Nh
dG9yKCkKIHsKICAgICBtX2V4dHJhQ29zdCA9IDA7Ci0gICAgbV9vYmplY3RTcGFjZS5yZXNldEFs
bG9jYXRvcigpOworICAgIG1fbWFya2VkU3BhY2UucmVzZXRBbGxvY2F0b3IoKTsKIH0KIAogdm9p
ZCBIZWFwOjpzZXRBY3Rpdml0eUNhbGxiYWNrKFBhc3NPd25QdHI8R0NBY3Rpdml0eUNhbGxiYWNr
PiBhY3Rpdml0eUNhbGxiYWNrKQpAQCAtNjQ4LDE0ICs3MzIsNjEgQEAgYm9vbCBIZWFwOjppc1Zh
bGlkQWxsb2NhdGlvbihzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK01hcmtl
ZEJsb2NrKiBIZWFwOjphbGxvY2F0ZUJsb2NrKHNpemVfdCBjZWxsU2l6ZSwgSGVhcDo6QWxsb2Nh
dGlvbkVmZm9ydCBhbGxvY2F0aW9uRWZmb3J0KQoreworICAgIE1hcmtlZEJsb2NrKiBibG9jazsK
KyAgICAKKyNpZiAhRU5BQkxFKExBWllfQkxPQ0tfRlJFRUlORykKKyAgICBpZiAoYWxsb2NhdGlv
bkVmZm9ydCA9PSBBbGxvY2F0aW9uQ2FuRmFpbCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisg
ICAgYmxvY2sgPSBNYXJrZWRCbG9jazo6Y3JlYXRlKHRoaXMsIGNlbGxTaXplKTsKKyNlbHNlCisg
ICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mcmVlQmxvY2tMb2NrKTsKKyAgICAg
ICAgaWYgKG1fbnVtYmVyT2ZGcmVlQmxvY2tzKSB7CisgICAgICAgICAgICBibG9jayA9IG1fZnJl
ZUJsb2Nrcy5yZW1vdmVIZWFkKCk7CisgICAgICAgICAgICBBU1NFUlQoYmxvY2spOworICAgICAg
ICAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MtLTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBibG9jayA9IDA7CisgICAgfQorICAgIGlmIChibG9jaykKKyAgICAgICAgYmxvY2stPmluaXRG
b3JDZWxsU2l6ZShjZWxsU2l6ZSk7CisgICAgZWxzZSBpZiAoYWxsb2NhdGlvbkVmZm9ydCA9PSBB
bGxvY2F0aW9uQ2FuRmFpbCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZWxzZQorICAgICAgICBi
bG9jayA9IE1hcmtlZEJsb2NrOjpjcmVhdGUodGhpcywgY2VsbFNpemUpOworI2VuZGlmCisgICAg
CisgICAgbV9ibG9ja3MuYWRkKGJsb2NrKTsKKworICAgIHJldHVybiBibG9jazsKK30KKwogdm9p
ZCBIZWFwOjpmcmVlQmxvY2tzKE1hcmtlZEJsb2NrKiBoZWFkKQogewotICAgIG1fb2JqZWN0U3Bh
Y2UuZnJlZUJsb2NrcyhoZWFkKTsKKyAgICBNYXJrZWRCbG9jayogbmV4dDsKKyAgICBmb3IgKE1h
cmtlZEJsb2NrKiBibG9jayA9IGhlYWQ7IGJsb2NrOyBibG9jayA9IG5leHQpIHsKKyAgICAgICAg
bmV4dCA9IGJsb2NrLT5uZXh0KCk7CisKKyAgICAgICAgbV9ibG9ja3MucmVtb3ZlKGJsb2NrKTsK
KyAgICAgICAgYmxvY2stPnJlc2V0KCk7CisjaWYgIUVOQUJMRShMQVpZX0JMT0NLX0ZSRUVJTkcp
CisgICAgICAgIE1hcmtlZEJsb2NrOjpkZXN0cm95KGJsb2NrKTsKKyNlbHNlCisgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2ZyZWVCbG9ja0xvY2spOworICAgICAgICBtX2ZyZWVCbG9ja3Mu
YXBwZW5kKGJsb2NrKTsKKyAgICAgICAgbV9udW1iZXJPZkZyZWVCbG9ja3MrKzsKKyNlbmRpZgor
ICAgIH0KIH0KIAogdm9pZCBIZWFwOjpzaHJpbmsoKQogewotICAgIG1fb2JqZWN0U3BhY2Uuc2hy
aW5rKCk7CisgICAgLy8gV2UgcmVjb3JkIGEgdGVtcG9yYXJ5IGxpc3Qgb2YgZW1wdGllcyB0byBh
dm9pZCBtb2RpZnlpbmcgbV9ibG9ja3Mgd2hpbGUgaXRlcmF0aW5nIGl0LgorICAgIFRha2VJZkVt
cHR5IHRha2VJZkVtcHR5KCZtX21hcmtlZFNwYWNlKTsKKyAgICBmcmVlQmxvY2tzKGZvckVhY2hC
bG9jayh0YWtlSWZFbXB0eSkpOwogfQogCiAjaWYgRU5BQkxFKExBWllfQkxPQ0tfRlJFRUlORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCBkNjI3NzNmZGU0YWM1ZTc2MzAyNGIyZjgw
MzAwYjFmN2MzZGExN2FlLi4zZDMwOGIzNmFiZGExMTdkN2Y0N2QyNDBmYzk5ZTc0OGYxZWFlZmZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC0yMiw3ICsyMiw2IEBACiAjaWZuZGVm
IEhlYXBfaAogI2RlZmluZSBIZWFwX2gKIAotI2luY2x1ZGUgIkFsbG9jYXRpb25TcGFjZS5oIgog
I2luY2x1ZGUgIkhhbmRsZUhlYXAuaCIKICNpbmNsdWRlICJIYW5kbGVTdGFjay5oIgogI2luY2x1
ZGUgIk1hcmtlZEJsb2NrLmgiCkBAIC0zOCw3ICszNyw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgY2xhc3MgR0NBY3Rpdml0eUNhbGxiYWNrOwogICAgIGNsYXNzIEdsb2JhbENvZGVCbG9jazsK
LSAgICBjbGFzcyBIZWFwOwogICAgIGNsYXNzIEhlYXBSb290VmlzaXRvcjsKICAgICBjbGFzcyBK
U0NlbGw7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwpAQCAtNTgsMTEgKzU2LDEwIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIAogICAgIC8vIEhlYXAgc2l6ZSBoaW50LgogICAgIGVudW0gSGVhcFNp
emUgeyBTbWFsbEhlYXAsIExhcmdlSGVhcCB9OwotCisgICAgCiAgICAgY2xhc3MgSGVhcCB7CiAg
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhlYXApOwogICAgIHB1YmxpYzoKLSAgICAgICAg
ZnJpZW5kIGNsYXNzIEpJVDsKICAgICAgICAgc3RhdGljIEhlYXAqIGhlYXAoSlNWYWx1ZSk7IC8v
IDAgZm9yIGltbWVkaWF0ZSB2YWx1ZXMKICAgICAgICAgc3RhdGljIEhlYXAqIGhlYXAoSlNDZWxs
Kik7CiAKQEAgLTc5LDcgKzc2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZGVz
dHJveSgpOyAvLyBKU0dsb2JhbERhdGEgbXVzdCBjYWxsIGRlc3Ryb3koKSBiZWZvcmUgfkhlYXAo
KS4KIAogICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEoKSBjb25zdCB7IHJldHVybiBt
X2dsb2JhbERhdGE7IH0KLSAgICAgICAgQWxsb2NhdGlvblNwYWNlJiBvYmplY3RTcGFjZSgpIHsg
cmV0dXJuIG1fb2JqZWN0U3BhY2U7IH0KKyAgICAgICAgTWFya2VkU3BhY2UmIG1hcmtlZFNwYWNl
KCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQogICAgICAgICBNYWNoaW5lVGhyZWFkcyYgbWFj
aGluZVRocmVhZHMoKSB7IHJldHVybiBtX21hY2hpbmVUaHJlYWRzOyB9CiAKICAgICAgICAgR0NB
Y3Rpdml0eUNhbGxiYWNrKiBhY3Rpdml0eUNhbGxiYWNrKCk7CkBAIC04NywxMCArODQsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgLy8gdHJ1ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNv
bGxlY3Rpb24gaXMgaW4gcHJvZ3Jlc3MKICAgICAgICAgaW5saW5lIGJvb2wgaXNCdXN5KCk7Ci0g
ICAgICAgIAotICAgICAgICBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJiBzaXplQ2xhc3NGb3JPYmpl
Y3Qoc2l6ZV90IGJ5dGVzKSB7IHJldHVybiBtX29iamVjdFNwYWNlLnNpemVDbGFzc0ZvcihieXRl
cyk7IH0KLSAgICAgICAgdm9pZCogYWxsb2NhdGUoc2l6ZV90KTsKIAorICAgICAgICB2b2lkKiBh
bGxvY2F0ZShzaXplX3QpOworICAgICAgICBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJiBzaXplQ2xh
c3NGb3Ioc2l6ZV90KTsKKyAgICAgICAgdm9pZCogYWxsb2NhdGUoTWFya2VkU3BhY2U6OlNpemVD
bGFzcyYpOwogICAgICAgICB2b2lkIG5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpIHsgbV9pc1NhZmVU
b0NvbGxlY3QgPSB0cnVlOyB9CiAgICAgICAgIHZvaWQgY29sbGVjdEFsbEdhcmJhZ2UoKTsKIApA
QCAtMTE1LDYgKzExMiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9y
RWFjaFByb3RlY3RlZENlbGwoRnVuY3RvciYpOwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hQcm90ZWN0ZWRDZWxs
KCk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6
OlJldHVyblR5cGUgZm9yRWFjaENlbGwoRnVuY3RvciYpOworICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hDZWxsKCk7
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJl
dHVyblR5cGUgZm9yRWFjaEJsb2NrKEZ1bmN0b3ImKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBmb3JFYWNoQmxvY2soKTsK
ICAgICAgICAgCiAgICAgICAgIEhhbmRsZVNsb3QgYWxsb2NhdGVHbG9iYWxIYW5kbGUoKSB7IHJl
dHVybiBtX2hhbmRsZUhlYXAuYWxsb2NhdGUoKTsgfQogICAgICAgICBIYW5kbGVTbG90IGFsbG9j
YXRlTG9jYWxIYW5kbGUoKSB7IHJldHVybiBtX2hhbmRsZVN0YWNrLnB1c2goKTsgfQpAQCAtMTI0
LDExICsxMjUsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBm
cmllbmQgY2xhc3MgTWFya2VkQmxvY2s7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBBbGxvY2F0aW9u
U3BhY2U7CisgICAgICAgIAorICAgICAgICB0eXBlZGVmIEhhc2hTZXQ8TWFya2VkQmxvY2sqPjo6
aXRlcmF0b3IgQmxvY2tJdGVyYXRvcjsKIAogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1p
bkV4dHJhQ29zdCA9IDI1NjsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNv
c3QgPSAxMDI0ICogMTAyNDsKICAgICAgICAgCisgICAgICAgIGVudW0gQWxsb2NhdGlvbkVmZm9y
dCB7IEFsbG9jYXRpb25NdXN0U3VjY2VlZCwgQWxsb2NhdGlvbkNhbkZhaWwgfTsKKyAgICAgICAg
CiAjaWYgRU5BQkxFKEdHQykKICAgICAgICAgc3RhdGljIHZvaWQgd3JpdGVCYXJyaWVyRmFzdENh
c2UoY29uc3QgSlNDZWxsKiBvd25lciwgSlNDZWxsKik7CiAjZW5kaWYKQEAgLTEzOCw2ICsxNDIs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjYW5vbmljYWxpemVCbG9ja3MoKTsK
ICAgICAgICAgdm9pZCByZXNldEFsbG9jYXRvcigpOwogCisgICAgICAgIE1hcmtlZEJsb2NrKiBh
bGxvY2F0ZUJsb2NrKHNpemVfdCBjZWxsU2l6ZSwgQWxsb2NhdGlvbkVmZm9ydCk7CiAgICAgICAg
IHZvaWQgZnJlZUJsb2NrcyhNYXJrZWRCbG9jayopOwogCiAgICAgICAgIHZvaWQgY2xlYXJNYXJr
cygpOwpAQCAtMTQ1LDYgKzE1MCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIG1h
cmtQcm90ZWN0ZWRPYmplY3RzKEhlYXBSb290VmlzaXRvciYpOwogICAgICAgICB2b2lkIG1hcmtU
ZW1wU29ydFZlY3RvcnMoSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgICAgIHZvaWQgaGFydmVzdFdl
YWtSZWZlcmVuY2VzKCk7CisKKyAgICAgICAgdm9pZCogdHJ5QWxsb2NhdGUoTWFya2VkU3BhY2U6
OlNpemVDbGFzcyYpOworICAgICAgICB2b2lkKiBhbGxvY2F0ZVNsb3dDYXNlKE1hcmtlZFNwYWNl
OjpTaXplQ2xhc3MmKTsKICAgICAgICAgCiAgICAgICAgIGVudW0gU3dlZXBUb2dnbGUgeyBEb05v
dFN3ZWVwLCBEb1N3ZWVwIH07CiAgICAgICAgIHZvaWQgY29sbGVjdChTd2VlcFRvZ2dsZSk7CkBA
IC0xNjcsNyArMTc1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IHNpemVfdCBt
X21pbkJ5dGVzUGVyQ3ljbGU7CiAgICAgICAgIAogICAgICAgICBPcGVyYXRpb25JblByb2dyZXNz
IG1fb3BlcmF0aW9uSW5Qcm9ncmVzczsKLSAgICAgICAgQWxsb2NhdGlvblNwYWNlIG1fb2JqZWN0
U3BhY2U7CisgICAgICAgIE1hcmtlZFNwYWNlIG1fbWFya2VkU3BhY2U7CisgICAgICAgIE1hcmtl
ZEJsb2NrU2V0IG1fYmxvY2tzOwogCiAjaWYgRU5BQkxFKExBWllfQkxPQ0tfRlJFRUlORykKICAg
ICAgICAgRG91Ymx5TGlua2VkTGlzdDxNYXJrZWRCbG9jaz4gbV9mcmVlQmxvY2tzOwpAQCAtMjk3
LDEwICszMDYsNTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBmb3JFYWNoUHJv
dGVjdGVkQ2VsbChmdW5jdG9yKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBIZWFwOjpmb3JFYWNoQ2Vs
bChGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgY2Fub25pY2FsaXplQmxvY2tzKCk7
CisgICAgICAgIEJsb2NrSXRlcmF0b3IgZW5kID0gbV9ibG9ja3Muc2V0KCkuZW5kKCk7CisgICAg
ICAgIGZvciAoQmxvY2tJdGVyYXRvciBpdCA9IG1fYmxvY2tzLnNldCgpLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKKyAgICAgICAgICAgICgqaXQpLT5mb3JFYWNoQ2VsbChmdW5jdG9yKTsKKyAg
ICAgICAgcmV0dXJuIGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBI
ZWFwOjpmb3JFYWNoQ2VsbCgpCisgICAgeworICAgICAgICBGdW5jdG9yIGZ1bmN0b3I7CisgICAg
ICAgIHJldHVybiBmb3JFYWNoQ2VsbChmdW5jdG9yKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBIZWFw
Ojpmb3JFYWNoQmxvY2soRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGNhbm9uaWNh
bGl6ZUJsb2NrcygpOworICAgICAgICBCbG9ja0l0ZXJhdG9yIGVuZCA9IG1fYmxvY2tzLnNldCgp
LmVuZCgpOworICAgICAgICBmb3IgKEJsb2NrSXRlcmF0b3IgaXQgPSBtX2Jsb2Nrcy5zZXQoKS5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICBmdW5jdG9yKCppdCk7CisgICAg
ICAgIHJldHVybiBmdW5jdG9yLnJldHVyblZhbHVlKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgSGVh
cDo6Zm9yRWFjaEJsb2NrKCkKKyAgICB7CisgICAgICAgIEZ1bmN0b3IgZnVuY3RvcjsKKyAgICAg
ICAgcmV0dXJuIGZvckVhY2hCbG9jayhmdW5jdG9yKTsKKyAgICB9CisgICAgCisgICAgaW5saW5l
IE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmIEhlYXA6OnNpemVDbGFzc0ZvcihzaXplX3QgYnl0ZXMp
CisgICAgeworICAgICAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplQ2xhc3NGb3IoYnl0ZXMp
OworICAgIH0KKyAgICAKKyAgICBpbmxpbmUgdm9pZCogSGVhcDo6YWxsb2NhdGUoTWFya2VkU3Bh
Y2U6OlNpemVDbGFzcyYgc2l6ZUNsYXNzKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBpcyBhIGxp
Z2h0LXdlaWdodCBmYXN0IHBhdGggdG8gY292ZXIgdGhlIG1vc3QgY29tbW9uIGNhc2UuCisgICAg
ICAgIE1hcmtlZEJsb2NrOjpGcmVlQ2VsbCogZmlyc3RGcmVlQ2VsbCA9IHNpemVDbGFzcy5maXJz
dEZyZWVDZWxsOworICAgICAgICBpZiAoVU5MSUtFTFkoIWZpcnN0RnJlZUNlbGwpKQorICAgICAg
ICAgICAgcmV0dXJuIGFsbG9jYXRlU2xvd0Nhc2Uoc2l6ZUNsYXNzKTsKKyAgICAgICAgCisgICAg
ICAgIHNpemVDbGFzcy5maXJzdEZyZWVDZWxsID0gZmlyc3RGcmVlQ2VsbC0+bmV4dDsKKyAgICAg
ICAgcmV0dXJuIGZpcnN0RnJlZUNlbGw7CisgICAgfQorCiAgICAgaW5saW5lIHZvaWQqIEhlYXA6
OmFsbG9jYXRlKHNpemVfdCBieXRlcykKICAgICB7CiAgICAgICAgIEFTU0VSVChpc1ZhbGlkQWxs
b2NhdGlvbihieXRlcykpOwotICAgICAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5hbGxvY2F0ZShi
eXRlcyk7CisgICAgICAgIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MmIHNpemVDbGFzcyA9IHNpemVD
bGFzc0ZvcihieXRlcyk7CisgICAgICAgIHJldHVybiBhbGxvY2F0ZShzaXplQ2xhc3MpOwogICAg
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lTWV0aG9kcy5oCmluZGV4IDdlZjZiMjlhNzlhMTM3YzE1N2UzYjVlNmUwZjYyYTU4N2Ix
NjEzM2EuLjM4YWYwYzc0NDM3ZjU3NThlMDk3NTk4ODJhOTc0NTViZjUyMTcyNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBAIC0zOTQsNyArMzk0
LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpJVDo6aXNPcGVyYW5kQ29uc3RhbnRJbW1lZGlhdGVD
aGFyKHVuc2lnbmVkIHNyYykKIAogdGVtcGxhdGUgPHR5cGVuYW1lIENsYXNzVHlwZSwgdHlwZW5h
bWUgU3RydWN0dXJlVHlwZT4gaW5saW5lIHZvaWQgSklUOjplbWl0QWxsb2NhdGVCYXNpY0pTT2Jq
ZWN0KFN0cnVjdHVyZVR5cGUgc3RydWN0dXJlLCB2b2lkKiB2dGFibGUsIFJlZ2lzdGVySUQgcmVz
dWx0LCBSZWdpc3RlcklEIHN0b3JhZ2VQdHIpCiB7Ci0gICAgTWFya2VkU3BhY2U6OlNpemVDbGFz
cyogc2l6ZUNsYXNzID0gJm1fZ2xvYmFsRGF0YS0+aGVhcC5zaXplQ2xhc3NGb3JPYmplY3Qoc2l6
ZW9mKENsYXNzVHlwZSkpOworICAgIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3MqIHNpemVDbGFzcyA9
ICZtX2dsb2JhbERhdGEtPmhlYXAuc2l6ZUNsYXNzRm9yKHNpemVvZihDbGFzc1R5cGUpKTsKICAg
ICBsb2FkUHRyKCZzaXplQ2xhc3MtPmZpcnN0RnJlZUNlbGwsIHJlc3VsdCk7CiAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoVGVzdFB0cihaZXJvLCByZXN1bHQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKaW5kZXggMTY0NGM4N2JmNTI1MjllMDU3
YTNjOTVjZjU5MjRhNjI4NDVmMjQ1Yy4uY2I1NmEwMGE1Yzk4NGQ3MDMzYjJmZjEwY2RlZWE1OWQx
MWQxMmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERh
dGEuY3BwCkBAIC00NTQsNyArNDU0LDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zKCkKICAgICAvLyB1cCB0aHJvd2luZyBhd2F5IGNvZGUgdGhhdCBpcyBsaXZl
IG9uIHRoZSBzdGFjay4KICAgICBBU1NFUlQoIWR5bmFtaWNHbG9iYWxPYmplY3QpOwogICAgIAot
ICAgIGhlYXAub2JqZWN0U3BhY2UoKS5mb3JFYWNoQ2VsbDxSZWNvbXBpbGVyPigpOworICAgIGhl
YXAuZm9yRWFjaENlbGw8UmVjb21waWxlcj4oKTsKIH0KIAogc3RydWN0IFN0YWNrUHJlc2Vydmlu
Z1JlY29tcGlsZXIgOiBwdWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKQEAgLTQ5NSw3
ICs0OTUsNyBAQCB2b2lkIEpTR2xvYmFsRGF0YTo6cmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoKQog
ICAgICAgICAgICAgICAgIHJlY29tcGlsZXIuY3VycmVudGx5RXhlY3V0aW5nRnVuY3Rpb25zLmFk
ZChzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKSk7CiAgICAgICAg
ICAgICAgICAgCiAgICAgICAgIH0KLSAgICAgICAgaGVhcC5vYmplY3RTcGFjZSgpLmZvckVhY2hD
ZWxsPFN0YWNrUHJlc2VydmluZ1JlY29tcGlsZXI+KHJlY29tcGlsZXIpOworICAgICAgICBoZWFw
LmZvckVhY2hDZWxsPFN0YWNrUHJlc2VydmluZ1JlY29tcGlsZXI+KHJlY29tcGlsZXIpOwogICAg
IH0KICAgICBtX3JlZ0V4cENhY2hlLT5pbnZhbGlkYXRlQ29kZSgpOwogICAgIGhlYXAuY29sbGVj
dEFsbEdhcmJhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNGYzMDExNjgxZmIyODNjZjczZDg0N2FhYTU5
YjJlMzYwNmJkY2JiLi5jYTg1MTMwNzRmZWFmYzU4YzY4ZWJhNTg1M2QxZDI2YzE2ZTk4NjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMTkgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5NTQ5MyBhbmQgcjk1NDk2LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC85NTQ5MworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC85
NTQ5NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0
MTgKKworICAgICAgICBCcm9rZSBXaW5kb3dzIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgcm5pd2Egb24g
I3dlYmtpdCkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL0FsbG9jYXRpb25T
cGFjZS5oOiBSZW1vdmVkLgorCiAyMDExLTA5LTE5ICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhl
cnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRWxpbWluYXRlIExlbmd0aDo6dW5kZWZpbmVk
TGVuZ3RoID0gLTEgYW5kIHJlcGxhY2Ugd2l0aCBVbmRlZmluZWQgTGVuZ3RoVHlwZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAvQWxsb2NhdGlvblNw
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwL0FsbG9jYXRpb25T
cGFjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTRmNWY0YTAzNGE3NjY5Nzk0
Y2VlNzBkY2M4Zjk5ZTI3ZDI1OTE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAvQWxsb2Nh
dGlvblNwYWNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29y
ZV9GV0RfQWxsb2NhdGlvblNwYWNlX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfQWxsb2NhdGlvblNw
YWNlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BbGxvY2F0aW9uU3BhY2UuaD4KLSNlbmRp
Zgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>