<?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>115931</bug_id>
          
          <creation_ts>2013-05-10 13:32:08 -0700</creation_ts>
          <short_desc>REGRESSION: Lines jump up and down while typing Chinese or Japanese</short_desc>
          <delta_ts>2013-06-07 10:58:59 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>887576</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-10 13:32:08 -0700</bug_when>
    <thetext>Fallback fonts are not used when computing line heights in some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887587</commentid>
    <comment_count>1</comment_count>
      <attachid>201416</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-10 13:35:22 -0700</bug_when>
    <thetext>Created attachment 201416
Fix (without change log)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887588</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-10 13:35:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/12803147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887680</commentid>
    <comment_count>3</comment_count>
      <attachid>201441</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-10 17:09:46 -0700</bug_when>
    <thetext>Created attachment 201441
Fixes one bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887682</commentid>
    <comment_count>4</comment_count>
      <attachid>201442</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-05-10 17:10:39 -0700</bug_when>
    <thetext>Created attachment 201442
Reverted erroneous test change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887706</commentid>
    <comment_count>5</comment_count>
      <attachid>201442</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-10 17:55:38 -0700</bug_when>
    <thetext>Comment on attachment 201442
Reverted erroneous test change

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

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:3094
&gt; +                    if (wordMeasurement.fallbackFonts.isEmpty() &amp;&amp; !fallbackFonts.isEmpty())
&gt; +                        wordMeasurement.fallbackFonts.swap(fallbackFonts);

Sure could use a why comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>897604</commentid>
    <comment_count>6</comment_count>
      <attachid>203893</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-05 17:17:24 -0700</bug_when>
    <thetext>Created attachment 203893
More comprehensive WIP fix

There was more fundamental flaw in our code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898003</commentid>
    <comment_count>7</comment_count>
      <attachid>203991</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-06 19:12:16 -0700</bug_when>
    <thetext>Created attachment 203991
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898005</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2013-06-06 19:18:56 -0700</bug_when>
    <thetext>I thought passing a NULL fallbackFonts pointer into floatWidthFor{Simple,Complex}Text was a significant optimization. Have you checked whether this patch has any impact performance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898006</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-06 19:41:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I thought passing a NULL fallbackFonts pointer into floatWidthFor{Simple,Complex}Text was a significant optimization. Have you checked whether this patch has any impact performance?

Yeah, I&apos;m getting the numbers now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898014</commentid>
    <comment_count>10</comment_count>
      <attachid>203994</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-06 21:31:52 -0700</bug_when>
    <thetext>Created attachment 203994
A/B test results

Thankfully I don&apos;t see any regression from running some perf. tests but please let me know if there is some other benchmark or page where this patch may cause a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898161</commentid>
    <comment_count>11</comment_count>
      <attachid>203991</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-07 07:15:05 -0700</bug_when>
    <thetext>Comment on attachment 203991
Fixes the bug

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

I hope creating and destroying these empty hash sets is inexpensive enough.

&gt; Source/WebCore/platform/graphics/Font.cpp:325
&gt; +    ASSERT(fallbackFonts);

This assertion is really unnecessary. The code that guarantees this is non-zero is just a couple lines up from here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898236</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-07 10:58:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 203991 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=203991&amp;action=review
&gt; 
&gt; I hope creating and destroying these empty hash sets is inexpensive enough.

I think andersca optimized empty hash maps recently to reduce the memory usage, etc... so HashTable only initializes various member variables to 0 now.

&gt; &gt; Source/WebCore/platform/graphics/Font.cpp:325
&gt; &gt; +    ASSERT(fallbackFonts);
&gt; 
&gt; This assertion is really unnecessary. The code that guarantees this is non-zero is just a couple lines up from here.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898237</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-06-07 10:58:59 -0700</bug_when>
    <thetext>Committed r151327: &lt;http://trac.webkit.org/changeset/151327&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201416</attachid>
            <date>2013-05-10 13:35:22 -0700</date>
            <delta_ts>2013-05-10 17:09:43 -0700</delta_ts>
            <desc>Fix (without change log)</desc>
            <filename>fix115931</filename>
            <type>text/plain</type>
            <size>3252</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCShyZXZpc2lvbiAxNDk2NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5Nyw2ICsyOTk3
LDcgQEAKICAgICAgICAgICAgIGJvb2wgbWlkV29yZEJyZWFrID0gZmFsc2U7CiAgICAgICAgICAg
ICBib29sIGJyZWFrQWxsID0gY3VycmVudFN0eWxlLT53b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdv
cmRCcmVhayAmJiBhdXRvV3JhcDsKICAgICAgICAgICAgIGZsb2F0IGh5cGhlbldpZHRoID0gMDsK
KwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgICAgICBpZiAoaXNTVkdUZXh0KSB7CiAgICAgICAg
ICAgICAgICAgYnJlYWtXb3JkcyA9IGZhbHNlOwpAQCAtMzA0NywxMCArMzA0OCwxMSBAQAogCiAg
ICAgICAgICAgICAgICAgY3VycmVudENoYXJhY3RlcklzV1MgPSBjdXJyZW50Q2hhcmFjdGVySXNT
cGFjZSB8fCAoYnJlYWtOQlNQICYmIGMgPT0gbm9CcmVha1NwYWNlKTsKIAorICAgICAgICAgICAg
ICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwogICAgICAg
ICAgICAgICAgIGlmICgoYnJlYWtBbGwgfHwgYnJlYWtXb3JkcykgJiYgIW1pZFdvcmRCcmVhaykg
ewogICAgICAgICAgICAgICAgICAgICB3cmFwVyArPSBjaGFyV2lkdGg7CiAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID0gVTE2X0lTX0xF
QUQoYykgJiYgY3VycmVudC5tX3BvcyArIDEgPCB0LT50ZXh0TGVuZ3RoKCkgJiYgVTE2X0lTX1RS
QUlMKHQtPmNoYXJhY3RlcnMoKVtjdXJyZW50Lm1fcG9zICsgMV0pOwotICAgICAgICAgICAgICAg
ICAgICBjaGFyV2lkdGggPSB0ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgbWlkV29yZEJyZWFr
SXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6IDEsIGYsIHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkg
KyB3cmFwVywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIDAsIHRleHRMYXlvdXQp
OworICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGggPSB0ZXh0V2lkdGgodCwgY3VycmVudC5t
X3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6IDEsIGYsIHdpZHRo
LmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3Bh
Y2UsICZmYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICAgICAgICAgICAgICAgICAgbWlk
V29yZEJyZWFrID0gd2lkdGguY29tbWl0dGVkV2lkdGgoKSArIHdyYXBXICsgY2hhcldpZHRoID4g
d2lkdGguYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTMwNzcsMTcg
KzMwNzksMjcgQEAKIAogICAgICAgICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnRzLmdyb3co
d29yZE1lYXN1cmVtZW50cy5zaXplKCkgKyAxKTsKICAgICAgICAgICAgICAgICAgICAgV29yZE1l
YXN1cmVtZW50JiB3b3JkTWVhc3VyZW1lbnQgPSB3b3JkTWVhc3VyZW1lbnRzLmxhc3QoKTsKLSAg
ICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50
LnJlbmRlcmVyID0gdDsKICAgICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50LmVuZE9m
ZnNldCA9IGN1cnJlbnQubV9wb3M7CiAgICAgICAgICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVu
dC5zdGFydE9mZnNldCA9IGxhc3RTcGFjZTsKLSAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzID0gZmFsbGJhY2tGb250
czsKKwogICAgICAgICAgICAgICAgICAgICBmbG9hdCBhZGRpdGlvbmFsVGVtcFdpZHRoOwogICAg
ICAgICAgICAgICAgICAgICBpZiAod29yZFRyYWlsaW5nU3BhY2VXaWR0aCAmJiBjID09ICcgJykK
ICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxUZW1wV2lkdGggPSB0ZXh0V2lkdGgo
dCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zICsgMSAtIGxhc3RTcGFjZSwgZiwgd2lkdGguY3Vy
cmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCAmd29yZE1lYXN1
cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpIC0gd29yZFRyYWlsaW5nU3BhY2VXaWR0
aDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgYWRk
aXRpb25hbFRlbXBXaWR0aCA9IHRleHRXaWR0aCh0LCBsYXN0U3BhY2UsIGN1cnJlbnQubV9wb3Mg
LSBsYXN0U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxh
cHNlV2hpdGVTcGFjZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0
KTsKIAorICAgICAgICAgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9u
dHMuaXNFbXB0eSgpICYmICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKKwkJCQkJCXdvcmRNZWFz
dXJlbWVudC5mYWxsYmFja0ZvbnRzLnN3YXAoZmFsbGJhY2tGb250cyk7CisjaWZuZGVmIE5ERUJV
RworCQkJCQlpZiAoIXdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSAmJiAh
ZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpIHsKKwkJCQkJCWZvciAoSGFzaFNldDxjb25zdCBTaW1w
bGVGb250RGF0YSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGZhbGxiYWNrRm9udHMuYmVnaW4oKTsg
aXQgIT0gZmFsbGJhY2tGb250cy5lbmQoKTsgKytpdCkKKwkJCQkJCQlBU1NFUlQod29yZE1lYXN1
cmVtZW50LmZhbGxiYWNrRm9udHMuY29udGFpbnMoKml0KSk7CisJCQkJCX0KKyNlbmRpZgorCiAg
ICAgICAgICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC53aWR0aCA9IGFkZGl0aW9uYWxUZW1w
V2lkdGggKyB3b3JkU3BhY2luZ0ZvcldvcmRNZWFzdXJlbWVudDsKICAgICAgICAgICAgICAgICAg
ICAgYWRkaXRpb25hbFRlbXBXaWR0aCArPSBsYXN0U3BhY2VXb3JkU3BhY2luZzsKICAgICAgICAg
ICAgICAgICAgICAgd2lkdGguYWRkVW5jb21taXR0ZWRXaWR0aChhZGRpdGlvbmFsVGVtcFdpZHRo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201441</attachid>
            <date>2013-05-10 17:09:46 -0700</date>
            <delta_ts>2013-05-10 17:10:36 -0700</delta_ts>
            <desc>Fixes one bug</desc>
            <filename>bug-115931-20130510170848.patch</filename>
            <type>text/plain</type>
            <size>4438</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTkwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA1LTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT046IExpbmVzIGp1
bXAgdXAgYW5kIGRvd24gd2hpbGUgdHlwaW5nIENoaW5lc2Ugb3IgSmFwYW5lc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTkzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBidWcgd2FzIGNhdXNl
ZCBieSB3b3JkTWVhc3VyZW1lbnRzIHNvbWV0aW1lcyBtaXNzaW5nIGZvbnQgZmFsbGJhY2sgZGF0
YSB3aGVuIHdlJ3JlIGNvbXB1dGluZyBhIG1pZCB3b3JkIGJyZWFrLAorICAgICAgICBhbmQgdGhl
cmUgaXMgbm8gdGV4dCB0byBiZSBhY2NvdW50ZWQgZm9yIGFkZGl0aW9uYWxUZW1wV2lkdGguCisK
KyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBzdG9yaW5nIGZvbnQgZmFsbGJhY2tzIGluIHRoaXMg
Y2FzZSwgYW5kIHVzaW5nIGl0IGluc3RlYWQgaWYgdGhlIGZhbGxiYWNrRm9udHMgZnJvbSB3aGVu
IHdlJ3JlCisgICAgICAgIGNvbXB1dGluZyBhZGRpdGlvbmFsVGVtcFdpZHRoIGlzIGVtcHR5LiBX
aGVuIGJvdGggZm9udCBmYWxsYmFja3MgYXJlIG5vbi1lbXB0eSwgd2UgdXNlIHRoZSBvbmUgZm9y
IGFkZGl0aW9uYWxUZW1wV2lkdGgKKyAgICAgICAgc2luY2UgdGhhdCBhY2NvdW50IGZvciBhbGwg
Y2hhcmFjdGVycyBpbiB0aGUgd29yZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFVuZm9ydHVu
YXRlbHkgSSBoYXZlbid0IGJlZW4gYWJsZSB0byBtYWtlIGEgcmVsaWFibGUgcmVkdWN0aW9uIGZv
ciB0aGlzIGJ1Zy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2Vn
bWVudEJyZWFrKToKKwogMjAxMy0wNS0xMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbi1iYW5kIGNhcHRpb25zIG5vdCB2aXNpYmxlIGltbWVkaWF0
ZWx5IGFmdGVyIHRyYWNrIG1vZGUgY2hhbmdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gMTQ5OTA0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwNDgsMTAgKzMwNDgsMTEgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVy
QmxvY2s6OkxpbmVCcmVha2VyOgogCiAgICAgICAgICAgICAgICAgY3VycmVudENoYXJhY3Rlcklz
V1MgPSBjdXJyZW50Q2hhcmFjdGVySXNTcGFjZSB8fCAoYnJlYWtOQlNQICYmIGMgPT0gbm9CcmVh
a1NwYWNlKTsKIAorICAgICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiBmYWxsYmFja0ZvbnRzOwogICAgICAgICAgICAgICAgIGlmICgoYnJlYWtBbGwgfHwgYnJlYWtX
b3JkcykgJiYgIW1pZFdvcmRCcmVhaykgewogICAgICAgICAgICAgICAgICAgICB3cmFwVyArPSBj
aGFyV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgbWlkV29yZEJyZWFrSXNCZWZvcmVT
dXJyb2dhdGVQYWlyID0gVTE2X0lTX0xFQUQoYykgJiYgY3VycmVudC5tX3BvcyArIDEgPCB0LT50
ZXh0TGVuZ3RoKCkgJiYgVTE2X0lTX1RSQUlMKHQtPmNoYXJhY3RlcnMoKVtjdXJyZW50Lm1fcG9z
ICsgMV0pOwotICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGggPSB0ZXh0V2lkdGgodCwgY3Vy
cmVudC5tX3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6IDEsIGYs
IHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdo
aXRlU3BhY2UsIDAsIHRleHRMYXlvdXQpOworICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGgg
PSB0ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dh
dGVQYWlyID8gMiA6IDEsIGYsIHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhl
ZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsICZmYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsK
ICAgICAgICAgICAgICAgICAgICAgbWlkV29yZEJyZWFrID0gd2lkdGguY29tbWl0dGVkV2lkdGgo
KSArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGguYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAg
ICAgICAgICB9CiAKQEAgLTMwODksNiArMzA5MCw5IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJs
b2NrOjpMaW5lQnJlYWtlcjoKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkaXRpb25hbFRlbXBXaWR0aCA9IHRleHRXaWR0aCh0LCBsYXN0U3BhY2Us
IGN1cnJlbnQubV9wb3MgLSBsYXN0U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0Zp
eGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFjZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0Zv
bnRzLCB0ZXh0TGF5b3V0KTsKIAorICAgICAgICAgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVt
ZW50LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLnN3
YXAoZmFsbGJhY2tGb250cyk7CisKICAgICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50
LndpZHRoID0gYWRkaXRpb25hbFRlbXBXaWR0aCArIHdvcmRTcGFjaW5nRm9yV29yZE1lYXN1cmVt
ZW50OwogICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGVtcFdpZHRoICs9IGxhc3RTcGFj
ZVdvcmRTcGFjaW5nOwogICAgICAgICAgICAgICAgICAgICB3aWR0aC5hZGRVbmNvbW1pdHRlZFdp
ZHRoKGFkZGl0aW9uYWxUZW1wV2lkdGgpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vdmVydGljYWwtcmwtcnRsLWV4dGVuZC1saW5lLWZvcndhcmQtcC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3ZlcnRpY2FsLXJsLXJ0bC1leHRl
bmQtbGluZS1mb3J3YXJkLXAuaHRtbAkocmV2aXNpb24gMTQ5OTA0KQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtcmwtcnRsLWV4dGVuZC1saW5lLWZvcndhcmQtcC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDIwICsyLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogPG1l
dGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgiPgotPHN0eWxlPiAuc2VsZWN0ZWQgeyBjb2xvcjogYmx1ZTsgfSA8L3N0eWxlPgogPC9o
ZWFkPgogPGJvZHk+Ci08cD5UaGlzIHRlc3RzIGhvcml6b250YWwgY2FyZXQgbW92ZW1lbnQgaW4g
dmVydGljYWwgd3JpdGluZyBtb2RlLjwvcD4KLTxkaXYgaWQ9InRlc3QiIHN0eWxlPSJmb250LWZh
bWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDIwcHg7IGhlaWdodDogMTVleDsgLXdlYmtpdC13
cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyBvdXRsaW5lOiBub25lOyIgY29udGVudGVkaXRhYmxl
PgotPHAgZGlyPSJydGwiPteQ16DXmSDXl9eq15XXnC48L3A+PHAgZGlyPSJydGwiPteQ15nXnyDX
nNeZINep150uPC9wPgorPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgZm9udC1z
aXplOiAyMHB4OyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IiBjb250ZW50ZWRp
dGFibGU+CivXkCDXlwogPC9kaXY+Ci08cHJlIGlkPSJsb2ciPjwvcHJlPgotPHNjcmlwdD4KLQot
dmFyIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwotd2luZG93LmdldFNl
bGVjdGlvbigpLnNldFBvc2l0aW9uKHRlc3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3AnKVswXS5m
aXJzdENoaWxkLCA1KTsKLXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ0V4dGVuZCcsICdG
b3J3YXJkJywgJ0xpbmUnKTsKLQotPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201442</attachid>
            <date>2013-05-10 17:10:39 -0700</date>
            <delta_ts>2013-06-05 17:17:24 -0700</delta_ts>
            <desc>Reverted erroneous test change</desc>
            <filename>bug-115931-20130510170941.patch</filename>
            <type>text/plain</type>
            <size>3275</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTkwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA1LTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT046IExpbmVzIGp1
bXAgdXAgYW5kIGRvd24gd2hpbGUgdHlwaW5nIENoaW5lc2Ugb3IgSmFwYW5lc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTkzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBidWcgd2FzIGNhdXNl
ZCBieSB3b3JkTWVhc3VyZW1lbnRzIHNvbWV0aW1lcyBtaXNzaW5nIGZvbnQgZmFsbGJhY2sgZGF0
YSB3aGVuIHdlJ3JlIGNvbXB1dGluZyBhIG1pZCB3b3JkIGJyZWFrLAorICAgICAgICBhbmQgdGhl
cmUgaXMgbm8gdGV4dCB0byBiZSBhY2NvdW50ZWQgZm9yIGFkZGl0aW9uYWxUZW1wV2lkdGguCisK
KyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBieSBzdG9yaW5nIGZvbnQgZmFsbGJhY2tzIGluIHRoaXMg
Y2FzZSwgYW5kIHVzaW5nIGl0IGluc3RlYWQgaWYgdGhlIGZhbGxiYWNrRm9udHMgZnJvbSB3aGVu
IHdlJ3JlCisgICAgICAgIGNvbXB1dGluZyBhZGRpdGlvbmFsVGVtcFdpZHRoIGlzIGVtcHR5LiBX
aGVuIGJvdGggZm9udCBmYWxsYmFja3MgYXJlIG5vbi1lbXB0eSwgd2UgdXNlIHRoZSBvbmUgZm9y
IGFkZGl0aW9uYWxUZW1wV2lkdGgKKyAgICAgICAgc2luY2UgdGhhdCBhY2NvdW50IGZvciBhbGwg
Y2hhcmFjdGVycyBpbiB0aGUgd29yZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFVuZm9ydHVu
YXRlbHkgSSBoYXZlbid0IGJlZW4gYWJsZSB0byBtYWtlIGEgcmVsaWFibGUgcmVkdWN0aW9uIGZv
ciB0aGlzIGJ1Zy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2Vn
bWVudEJyZWFrKToKKwogMjAxMy0wNS0xMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbi1iYW5kIGNhcHRpb25zIG5vdCB2aXNpYmxlIGltbWVkaWF0
ZWx5IGFmdGVyIHRyYWNrIG1vZGUgY2hhbmdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gMTQ5OTA0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwNDgsMTAgKzMwNDgsMTEgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVy
QmxvY2s6OkxpbmVCcmVha2VyOgogCiAgICAgICAgICAgICAgICAgY3VycmVudENoYXJhY3Rlcklz
V1MgPSBjdXJyZW50Q2hhcmFjdGVySXNTcGFjZSB8fCAoYnJlYWtOQlNQICYmIGMgPT0gbm9CcmVh
a1NwYWNlKTsKIAorICAgICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEq
PiBmYWxsYmFja0ZvbnRzOwogICAgICAgICAgICAgICAgIGlmICgoYnJlYWtBbGwgfHwgYnJlYWtX
b3JkcykgJiYgIW1pZFdvcmRCcmVhaykgewogICAgICAgICAgICAgICAgICAgICB3cmFwVyArPSBj
aGFyV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgbWlkV29yZEJyZWFrSXNCZWZvcmVT
dXJyb2dhdGVQYWlyID0gVTE2X0lTX0xFQUQoYykgJiYgY3VycmVudC5tX3BvcyArIDEgPCB0LT50
ZXh0TGVuZ3RoKCkgJiYgVTE2X0lTX1RSQUlMKHQtPmNoYXJhY3RlcnMoKVtjdXJyZW50Lm1fcG9z
ICsgMV0pOwotICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGggPSB0ZXh0V2lkdGgodCwgY3Vy
cmVudC5tX3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6IDEsIGYs
IHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdo
aXRlU3BhY2UsIDAsIHRleHRMYXlvdXQpOworICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGgg
PSB0ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dh
dGVQYWlyID8gMiA6IDEsIGYsIHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhl
ZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsICZmYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsK
ICAgICAgICAgICAgICAgICAgICAgbWlkV29yZEJyZWFrID0gd2lkdGguY29tbWl0dGVkV2lkdGgo
KSArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGguYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAg
ICAgICAgICB9CiAKQEAgLTMwODksNiArMzA5MCw5IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJs
b2NrOjpMaW5lQnJlYWtlcjoKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkaXRpb25hbFRlbXBXaWR0aCA9IHRleHRXaWR0aCh0LCBsYXN0U3BhY2Us
IGN1cnJlbnQubV9wb3MgLSBsYXN0U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0Zp
eGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFjZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0Zv
bnRzLCB0ZXh0TGF5b3V0KTsKIAorICAgICAgICAgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVt
ZW50LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLnN3
YXAoZmFsbGJhY2tGb250cyk7CisKICAgICAgICAgICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50
LndpZHRoID0gYWRkaXRpb25hbFRlbXBXaWR0aCArIHdvcmRTcGFjaW5nRm9yV29yZE1lYXN1cmVt
ZW50OwogICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGVtcFdpZHRoICs9IGxhc3RTcGFj
ZVdvcmRTcGFjaW5nOwogICAgICAgICAgICAgICAgICAgICB3aWR0aC5hZGRVbmNvbW1pdHRlZFdp
ZHRoKGFkZGl0aW9uYWxUZW1wV2lkdGgpOwo=
</data>
<flag name="review"
          id="222764"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203893</attachid>
            <date>2013-06-05 17:17:24 -0700</date>
            <delta_ts>2013-06-06 19:12:11 -0700</delta_ts>
            <desc>More comprehensive WIP fix</desc>
            <filename>fix115931b</filename>
            <type>text/plain</type>
            <size>15859</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZpc2lv
biAxNTEwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEyLDEzICszMTIsMTggQEAKICAgICBpZiAoY2FjaGVFbnRyeSAm
JiAhc3RkOjppc25hbigqY2FjaGVFbnRyeSkpCiAgICAgICAgIHJldHVybiAqY2FjaGVFbnRyeTsK
IAorICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiBsb2NhbEZhbGxiYWNrRm9udHM7
CisgICAgaWYgKCFmYWxsYmFja0ZvbnRzKQorICAgICAgICBmYWxsYmFja0ZvbnRzID0gJmxvY2Fs
RmFsbGJhY2tGb250czsKKwogICAgIGZsb2F0IHJlc3VsdDsKICAgICBpZiAoY29kZVBhdGhUb1Vz
ZSA9PSBDb21wbGV4KQogICAgICAgICByZXN1bHQgPSBmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQo
cnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKICAgICBlbHNlCiAgICAgICAgIHJl
c3VsdCA9IGZsb2F0V2lkdGhGb3JTaW1wbGVUZXh0KHJ1biwgZmFsbGJhY2tGb250cywgZ2x5cGhP
dmVyZmxvdyk7CiAKLSAgICBpZiAoY2FjaGVFbnRyeSAmJiAoIWZhbGxiYWNrRm9udHMgfHwgZmFs
bGJhY2tGb250cy0+aXNFbXB0eSgpKSkKKyAgICBBU1NFUlQoZmFsbGJhY2tGb250cyk7CisgICAg
aWYgKGNhY2hlRW50cnkgJiYgZmFsbGJhY2tGb250cy0+aXNFbXB0eSgpKQogICAgICAgICAqY2Fj
aGVFbnRyeSA9IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlz
aW9uIDE1MTAwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDksMTAgKzgwOSwxMCBAQAogICAgIHNldE1h
cmdpbkVuZEZvckNoaWxkKHJlbmRlcmVyLCAtZW5kT3ZlcmhhbmcpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGZsb2F0IG1lYXN1cmVIeXBoZW5XaWR0aChSZW5kZXJUZXh0KiByZW5kZXJlciwgY29uc3Qg
Rm9udCYgZm9udCkKK3N0YXRpYyBpbmxpbmUgZmxvYXQgbWVhc3VyZUh5cGhlbldpZHRoKFJlbmRl
clRleHQqIHJlbmRlcmVyLCBjb25zdCBGb250JiBmb250LCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZv
bnREYXRhKj4qIGZhbGxiYWNrRm9udHMgPSAwKQogewogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9
IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBmb250LndpZHRoKFJlbmRlckJsb2NrOjpj
b25zdHJ1Y3RUZXh0UnVuKHJlbmRlcmVyLCBmb250LCBzdHlsZS0+aHlwaGVuU3RyaW5nKCkuc3Ry
aW5nKCksIHN0eWxlKSk7CisgICAgcmV0dXJuIGZvbnQud2lkdGgoUmVuZGVyQmxvY2s6OmNvbnN0
cnVjdFRleHRSdW4ocmVuZGVyZXIsIGZvbnQsIHN0eWxlLT5oeXBoZW5TdHJpbmcoKS5zdHJpbmco
KSwgc3R5bGUpLCBmYWxsYmFja0ZvbnRzKTsKIH0KIAogY2xhc3MgV29yZE1lYXN1cmVtZW50IHsK
QEAgLTgzMyw3ICs4MzMsNyBAQAogfTsKIAogc3RhdGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxX
aWR0aEZvclRleHRSdW4oUm9vdElubGluZUJveCogbGluZUJveCwgQmlkaVJ1biogcnVuLCBSZW5k
ZXJUZXh0KiByZW5kZXJlciwgZmxvYXQgeFBvcywgY29uc3QgTGluZUluZm8mIGxpbmVJbmZvLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2Fj
aGUmIHZlcnRpY2FsUG9zaXRpb25DYWNoZSwgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVt
ZW50cykKKyAgICBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFN
YXAsIFZlcnRpY2FsUG9zaXRpb25DYWNoZSYgdmVydGljYWxQb3NpdGlvbkNhY2hlLCBXb3JkTWVh
c3VyZW1lbnRzJiB3b3JkTWVhc3VyZW1lbnRzKQogewogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOwogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxv
dzsKQEAgLTg1Niw3ICs4NTYsNyBAQAogICAgIExheW91dFVuaXQgaHlwaGVuV2lkdGggPSAwOwog
ICAgIGlmICh0b0lubGluZVRleHRCb3gocnVuLT5tX2JveCktPmhhc0h5cGhlbigpKSB7CiAgICAg
ICAgIGNvbnN0IEZvbnQmIGZvbnQgPSByZW5kZXJlci0+c3R5bGUobGluZUluZm8uaXNGaXJzdExp
bmUoKSktPmZvbnQoKTsKLSAgICAgICAgaHlwaGVuV2lkdGggPSBtZWFzdXJlSHlwaGVuV2lkdGgo
cmVuZGVyZXIsIGZvbnQpOworICAgICAgICBoeXBoZW5XaWR0aCA9IG1lYXN1cmVIeXBoZW5XaWR0
aChyZW5kZXJlciwgZm9udCwgJmZhbGxiYWNrRm9udHMpOwogICAgIH0KICAgICBmbG9hdCBtZWFz
dXJlZFdpZHRoID0gMDsKIApAQCAtODY5LDggKzg2OSw4IEBACiAgICAgaWYgKCFsaW5lQm94LT5m
aXRzVG9HbHlwaHMoKSAmJiBjYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgpIHsKICAgICAgICAgaW50
IGxhc3RFbmRPZmZzZXQgPSBydW4tPm1fc3RhcnQ7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
LCBzaXplID0gd29yZE1lYXN1cmVtZW50cy5zaXplKCk7IGkgPCBzaXplICYmIGxhc3RFbmRPZmZz
ZXQgPCBydW4tPm1fc3RvcDsgKytpKSB7Ci0gICAgICAgICAgICBjb25zdCBXb3JkTWVhc3VyZW1l
bnQmIHdvcmRNZWFzdXJlbWVudCA9IHdvcmRNZWFzdXJlbWVudHNbaV07Ci0gICAgICAgICAgICBp
ZiAod29yZE1lYXN1cmVtZW50LndpZHRoIDw9MCB8fCB3b3JkTWVhc3VyZW1lbnQuc3RhcnRPZmZz
ZXQgPT0gd29yZE1lYXN1cmVtZW50LmVuZE9mZnNldCkKKyAgICAgICAgICAgIFdvcmRNZWFzdXJl
bWVudCYgd29yZE1lYXN1cmVtZW50ID0gd29yZE1lYXN1cmVtZW50c1tpXTsKKyAgICAgICAgICAg
IGlmICh3b3JkTWVhc3VyZW1lbnQud2lkdGggPD0gMCB8fCB3b3JkTWVhc3VyZW1lbnQuc3RhcnRP
ZmZzZXQgPT0gd29yZE1lYXN1cmVtZW50LmVuZE9mZnNldCkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1lbnQucmVuZGVyZXIgIT0gcmVuZGVy
ZXIgfHwgd29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0ICE9IGxhc3RFbmRPZmZzZXQgfHwgd29y
ZE1lYXN1cmVtZW50LmVuZE9mZnNldCA+IHJ1bi0+bV9zdG9wKQogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwpAQCAtODc4LDcgKzg3OCwxMCBAQAogICAgICAgICAgICAgbGFzdEVuZE9mZnNldCA9
IHdvcmRNZWFzdXJlbWVudC5lbmRPZmZzZXQ7CiAgICAgICAgICAgICBpZiAoa2VybmluZ0lzRW5h
YmxlZCAmJiBsYXN0RW5kT2Zmc2V0ID09IHJ1bi0+bV9zdG9wKSB7CiAgICAgICAgICAgICAgICAg
aW50IHdvcmRMZW5ndGggPSBsYXN0RW5kT2Zmc2V0IC0gd29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zm
c2V0OwotICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkdGggKz0gcmVuZGVyZXItPndpZHRoKHdv
cmRNZWFzdXJlbWVudC5zdGFydE9mZnNldCwgd29yZExlbmd0aCwgeFBvcyArIG1lYXN1cmVkV2lk
dGgsIGxpbmVJbmZvLmlzRmlyc3RMaW5lKCkpOworICAgICAgICAgICAgICAgIEdseXBoT3ZlcmZs
b3cgb3ZlcmZsb3c7CisgICAgICAgICAgICAgICAgbWVhc3VyZWRXaWR0aCArPSByZW5kZXJlci0+
d2lkdGgod29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0LCB3b3JkTGVuZ3RoLCB4UG9zICsgbWVh
c3VyZWRXaWR0aCwgbGluZUluZm8uaXNGaXJzdExpbmUoKSwKKyAgICAgICAgICAgICAgICAgICAg
JndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCAmb3ZlcmZsb3cpOworICAgICAgICAgICAg
ICAgIEFTU0VSVCghb3ZlcmZsb3cubGVmdCAmJiAhb3ZlcmZsb3cucmlnaHQgJiYgIW92ZXJmbG93
LnRvcCAmJiAhb3ZlcmZsb3cuYm90dG9tKTsKICAgICAgICAgICAgICAgICBVQ2hhciBjID0gcmVu
ZGVyZXItPmNoYXJhY3RlckF0KHdvcmRNZWFzdXJlbWVudC5zdGFydE9mZnNldCk7CiAgICAgICAg
ICAgICAgICAgaWYgKGkgPiAwICYmIHdvcmRMZW5ndGggPT0gMSAmJiAoYyA9PSAnICcgfHwgYyA9
PSAnXHQnKSkKICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZWRXaWR0aCArPSByZW5kZXJlci0+
c3R5bGUoKS0+d29yZFNwYWNpbmcoKTsKQEAgLTI1NjMsMTQgKzI1NjYsMTQgQEAKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIGZsb2F0IHRleHRXaWR0aChSZW5k
ZXJUZXh0KiB0ZXh0LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGZv
bnQsIGZsb2F0IHhQb3MsIGJvb2wgaXNGaXhlZFBpdGNoLCBib29sIGNvbGxhcHNlV2hpdGVTcGFj
ZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgVGV4
dExheW91dCogbGF5b3V0ID0gMCkKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGZsb2F0IHRleHRXaWR0
aChSZW5kZXJUZXh0KiB0ZXh0LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZv
bnQmIGZvbnQsIGZsb2F0IHhQb3MsIGJvb2wgaXNGaXhlZFBpdGNoLCBib29sIGNvbGxhcHNlV2hp
dGVTcGFjZSwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBU
ZXh0TGF5b3V0KiBsYXlvdXQgPSAwKQogewogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxv
dzsKICAgICBpZiAoaXNGaXhlZFBpdGNoIHx8ICghZnJvbSAmJiBsZW4gPT0gdGV4dC0+dGV4dExl
bmd0aCgpKSB8fCB0ZXh0LT5zdHlsZSgpLT5oYXNUZXh0Q29tYmluZSgpKQotICAgICAgICByZXR1
cm4gdGV4dC0+d2lkdGgoZnJvbSwgbGVuLCBmb250LCB4UG9zLCBmYWxsYmFja0ZvbnRzLCAmZ2x5
cGhPdmVyZmxvdyk7CisgICAgICAgIHJldHVybiB0ZXh0LT53aWR0aChmcm9tLCBsZW4sIGZvbnQs
IHhQb3MsICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKICAgICBpZiAobGF5b3V0
KQotICAgICAgICByZXR1cm4gRm9udDo6d2lkdGgoKmxheW91dCwgZnJvbSwgbGVuLCBmYWxsYmFj
a0ZvbnRzKTsKKyAgICAgICAgcmV0dXJuIEZvbnQ6OndpZHRoKCpsYXlvdXQsIGZyb20sIGxlbiwg
JmZhbGxiYWNrRm9udHMpOwogCiAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3Ry
dWN0VGV4dFJ1bih0ZXh0LCBmb250LCB0ZXh0LCBmcm9tLCBsZW4sIHRleHQtPnN0eWxlKCkpOwog
ICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQtPnRleHRMZW5ndGgoKSAtIGZyb20pOwpA
QCAtMjU3OSw3ICsyNTgyLDcgQEAKICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRo
KCF0ZXh0LT5jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoKSk7CiAgICAgcnVuLnNldFRhYlNpemUo
IWNvbGxhcHNlV2hpdGVTcGFjZSwgdGV4dC0+c3R5bGUoKS0+dGFiU2l6ZSgpKTsKICAgICBydW4u
c2V0WFBvcyh4UG9zKTsKLSAgICByZXR1cm4gZm9udC53aWR0aChydW4sIGZhbGxiYWNrRm9udHMs
ICZnbHlwaE92ZXJmbG93KTsKKyAgICByZXR1cm4gZm9udC53aWR0aChydW4sICZmYWxsYmFja0Zv
bnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiB9CiAKIHN0YXRpYyB2b2lkIHRyeUh5cGhlbmF0aW5nKFJl
bmRlclRleHQqIHRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxlSWRlbnRpZmllciwgdW5zaWduZWQgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIGludCBj
b25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lc0xpbWl0LCBpbnQgbWluaW11bVByZWZpeExpbWl0LCBp
bnQgbWluaW11bVN1ZmZpeExpbWl0LCB1bnNpZ25lZCBsYXN0U3BhY2UsIHVuc2lnbmVkIHBvcywg
ZmxvYXQgeFBvcywgaW50IGF2YWlsYWJsZVdpZHRoLCBib29sIGlzRml4ZWRQaXRjaCwgYm9vbCBj
b2xsYXBzZVdoaXRlU3BhY2UsIGludCBsYXN0U3BhY2VXb3JkU3BhY2luZywgSW5saW5lSXRlcmF0
b3ImIGxpbmVCcmVhaywgaW50IG5leHRCcmVha2FibGUsIGJvb2wmIGh5cGhlbmF0ZWQpCkBAIC0y
NjM4LDcgKzI2NDEsOCBAQAogICAgIEFTU0VSVChwb3MgLSBsYXN0U3BhY2UgLSBwcmVmaXhMZW5n
dGggPj0gbWluaW11bVN1ZmZpeExlbmd0aCk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAg
ZmxvYXQgcHJlZml4V2lkdGggPSBoeXBoZW5XaWR0aCArIHRleHRXaWR0aCh0ZXh0LCBsYXN0U3Bh
Y2UsIHByZWZpeExlbmd0aCwgZm9udCwgeFBvcywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRl
U3BhY2UpICsgbGFzdFNwYWNlV29yZFNwYWNpbmc7CisgICAgSGFzaFNldDxjb25zdCBTaW1wbGVG
b250RGF0YSo+IGZhbGxiYWNrRm9udHM7CisgICAgZmxvYXQgcHJlZml4V2lkdGggPSBoeXBoZW5X
aWR0aCArIHRleHRXaWR0aCh0ZXh0LCBsYXN0U3BhY2UsIHByZWZpeExlbmd0aCwgZm9udCwgeFBv
cywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIGZhbGxiYWNrRm9udHMpICsgbGFz
dFNwYWNlV29yZFNwYWNpbmc7CiAgICAgQVNTRVJUKHhQb3MgKyBwcmVmaXhXaWR0aCA8PSBhdmFp
bGFibGVXaWR0aCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShpc0ZpeGVkUGl0Y2gpOwpAQCAt
MzA4MSw3ICszMDg1LDggQEAKIAogICAgICAgICAgICAgLy8gTm9uLXplcm8gb25seSB3aGVuIGtl
cm5pbmcgaXMgZW5hYmxlZCBhbmQgVGV4dExheW91dCBpc24ndCB1c2VkLCBpbiB3aGljaCBjYXNl
IHdlIG1lYXN1cmUKICAgICAgICAgICAgIC8vIHdvcmRzIHdpdGggdGhlaXIgdHJhaWxpbmcgc3Bh
Y2UsIHRoZW4gc3VidHJhY3QgaXRzIHdpZHRoLgotICAgICAgICAgICAgZmxvYXQgd29yZFRyYWls
aW5nU3BhY2VXaWR0aCA9IChmLnR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcpICYmICF0
ZXh0TGF5b3V0ID8gZi53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHQsIGYsICZzcGFjZSwgMSwgc3R5
bGUpKSArIHdvcmRTcGFjaW5nIDogMDsKKyAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxl
Rm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOworICAgICAgICAgICAgZmxvYXQgd29yZFRyYWlsaW5n
U3BhY2VXaWR0aCA9IChmLnR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcpICYmICF0ZXh0
TGF5b3V0ID8gZi53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHQsIGYsICZzcGFjZSwgMSwgc3R5bGUp
LCAmZmFsbGJhY2tGb250cykgKyB3b3JkU3BhY2luZyA6IDA7CiAKICAgICAgICAgICAgIFVDaGFy
IGxhc3RDaGFyYWN0ZXIgPSByZW5kZXJUZXh0SW5mby5tX2xpbmVCcmVha0l0ZXJhdG9yLmxhc3RD
aGFyYWN0ZXIoKTsKICAgICAgICAgICAgIFVDaGFyIHNlY29uZFRvTGFzdENoYXJhY3RlciA9IHJl
bmRlclRleHRJbmZvLm1fbGluZUJyZWFrSXRlcmF0b3Iuc2Vjb25kVG9MYXN0Q2hhcmFjdGVyKCk7
CkBAIC0zMDk1LDcgKzMxMDAsNyBAQAogICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby5zZXRF
bXB0eShmYWxzZSwgbV9ibG9jaywgJndpZHRoKTsKIAogICAgICAgICAgICAgICAgIGlmIChjID09
IHNvZnRIeXBoZW4gJiYgYXV0b1dyYXAgJiYgIWh5cGhlbldpZHRoICYmIHN0eWxlLT5oeXBoZW5z
KCkgIT0gSHlwaGVuc05vbmUpIHsKLSAgICAgICAgICAgICAgICAgICAgaHlwaGVuV2lkdGggPSBt
ZWFzdXJlSHlwaGVuV2lkdGgodCwgZik7CisgICAgICAgICAgICAgICAgICAgIGh5cGhlbldpZHRo
ID0gbWVhc3VyZUh5cGhlbldpZHRoKHQsIGYsICZmYWxsYmFja0ZvbnRzKTsKICAgICAgICAgICAg
ICAgICAgICAgd2lkdGguYWRkVW5jb21taXR0ZWRXaWR0aChoeXBoZW5XaWR0aCk7CiAgICAgICAg
ICAgICAgICAgfQogCkBAIC0zMTA2LDcgKzMxMTEsNyBAQAogICAgICAgICAgICAgICAgIGlmICgo
YnJlYWtBbGwgfHwgYnJlYWtXb3JkcykgJiYgIW1pZFdvcmRCcmVhaykgewogICAgICAgICAgICAg
ICAgICAgICB3cmFwVyArPSBjaGFyV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgbWlk
V29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID0gVTE2X0lTX0xFQUQoYykgJiYgY3VycmVu
dC5tX3BvcyArIDEgPCB0LT50ZXh0TGVuZ3RoKCkgJiYgVTE2X0lTX1RSQUlMKHQtPmNoYXJhY3Rl
cnMoKVtjdXJyZW50Lm1fcG9zICsgMV0pOwotICAgICAgICAgICAgICAgICAgICBjaGFyV2lkdGgg
PSB0ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dh
dGVQYWlyID8gMiA6IDEsIGYsIHdpZHRoLmNvbW1pdHRlZFdpZHRoKCkgKyB3cmFwVywgaXNGaXhl
ZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIDAsIHRleHRMYXlvdXQpOworICAgICAgICAgICAg
ICAgICAgICBjaGFyV2lkdGggPSB0ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgbWlkV29yZEJy
ZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6IDEsIGYsIHdpZHRoLmNvbW1pdHRlZFdpZHRo
KCkgKyB3cmFwVywgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIGZhbGxiYWNrRm9u
dHMsIHRleHRMYXlvdXQpOwogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJlYWsgPSB3aWR0
aC5jb21taXR0ZWRXaWR0aCgpICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aC5hdmFpbGFibGVX
aWR0aCgpOwogICAgICAgICAgICAgICAgIH0KIApAQCAtMzE0MCwxMCArMzE0NSwxNCBAQAogICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWRkaXRpb25hbFRl
bXBXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmRUcmFpbGluZ1NwYWNlV2lkdGgg
JiYgYyA9PSAnICcpCi0gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGVtcFdpZHRo
ID0gdGV4dFdpZHRoKHQsIGxhc3RTcGFjZSwgY3VycmVudC5tX3BvcyArIDEgLSBsYXN0U3BhY2Us
IGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFj
ZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KSAtIHdvcmRUcmFp
bGluZ1NwYWNlV2lkdGg7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGVtcFdp
ZHRoID0gdGV4dFdpZHRoKHQsIGxhc3RTcGFjZSwgY3VycmVudC5tX3BvcyArIDEgLSBsYXN0U3Bh
Y2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVT
cGFjZSwgd29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpIC0gd29yZFRy
YWlsaW5nU3BhY2VXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgYWRkaXRpb25hbFRlbXBXaWR0aCA9IHRleHRXaWR0aCh0LCBsYXN0U3BhY2Us
IGN1cnJlbnQubV9wb3MgLSBsYXN0U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0Zp
eGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFjZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0Zv
bnRzLCB0ZXh0TGF5b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxUZW1w
V2lkdGggPSB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zIC0gbGFzdFNwYWNl
LCBmLCB3aWR0aC5jdXJyZW50V2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3Bh
Y2UsIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKIAorICAgICAg
ICAgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgp
ICYmICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHdv
cmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLnN3YXAoZmFsbGJhY2tGb250cyk7CisgICAgICAg
ICAgICAgICAgICAgIGZhbGxiYWNrRm9udHMuY2xlYXIoKTsKKwogICAgICAgICAgICAgICAgICAg
ICB3b3JkTWVhc3VyZW1lbnQud2lkdGggPSBhZGRpdGlvbmFsVGVtcFdpZHRoICsgd29yZFNwYWNp
bmdGb3JXb3JkTWVhc3VyZW1lbnQ7CiAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxUZW1w
V2lkdGggKz0gbGFzdFNwYWNlV29yZFNwYWNpbmc7CiAgICAgICAgICAgICAgICAgICAgIHdpZHRo
LmFkZFVuY29tbWl0dGVkV2lkdGgoYWRkaXRpb25hbFRlbXBXaWR0aCk7CkBAIC0zMTY2LDcgKzMx
NzUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgY2FuZGlkYXRlIHdpZHRoIGZv
ciB0aGlzIGxpbmUuCiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxpbmVXYXNUb29XaWRl
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGguZml0c09uTGluZSgp
ICYmIGN1cnJlbnRDaGFyYWN0ZXJJc1dTICYmIGN1cnJlbnRTdHlsZS0+YnJlYWtPbmx5QWZ0ZXJX
aGl0ZVNwYWNlKCkgJiYgIW1pZFdvcmRCcmVhaykgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZsb2F0IGNoYXJXaWR0aCA9IHRleHRXaWR0aCh0LCBjdXJyZW50Lm1fcG9zLCAxLCBmLCB3
aWR0aC5jdXJyZW50V2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsICZ3
b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91dCkgKyAoYXBwbHlXb3JkU3Bh
Y2luZyA/IHdvcmRTcGFjaW5nIDogMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxv
YXQgY2hhcldpZHRoID0gdGV4dFdpZHRoKHQsIGN1cnJlbnQubV9wb3MsIDEsIGYsIHdpZHRoLmN1
cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFjZSwgd29yZE1lYXN1
cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpICsgKGFwcGx5V29yZFNwYWNpbmcgPyB3
b3JkU3BhY2luZyA6IDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlm
IGxpbmUgaXMgdG9vIGJpZyBldmVuIHdpdGhvdXQgdGhlIGV4dHJhIHNwYWNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgbGluZS4gSWYgaXQgaXMgbm90
LCBkbyBub3RoaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsaW5l
IG5lZWRzIHRoZSBleHRyYSB3aGl0ZXNwYWNlIHRvIGJlIHRvbyBsb25nLApAQCAtMzMwNCw3ICsz
MzEzLDcgQEAKICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5yZW5kZXJlciA9IHQ7CiAKICAg
ICAgICAgICAgIC8vIElNUE9SVEFOVDogY3VycmVudC5tX3BvcyBpcyA+IGxlbmd0aCBoZXJlIQot
ICAgICAgICAgICAgZmxvYXQgYWRkaXRpb25hbFRlbXBXaWR0aCA9IGlnbm9yaW5nU3BhY2VzID8g
MCA6IHRleHRXaWR0aCh0LCBsYXN0U3BhY2UsIGN1cnJlbnQubV9wb3MgLSBsYXN0U3BhY2UsIGYs
IHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxhcHNlV2hpdGVTcGFjZSwg
JndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKKyAgICAgICAgICAg
IGZsb2F0IGFkZGl0aW9uYWxUZW1wV2lkdGggPSBpZ25vcmluZ1NwYWNlcyA/IDAgOiB0ZXh0V2lk
dGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zIC0gbGFzdFNwYWNlLCBmLCB3aWR0aC5jdXJy
ZW50V2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIHdvcmRNZWFzdXJl
bWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICAgICAgICAgIHdvcmRNZWFzdXJl
bWVudC5zdGFydE9mZnNldCA9IGxhc3RTcGFjZTsKICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVu
dC5lbmRPZmZzZXQgPSBjdXJyZW50Lm1fcG9zOwogICAgICAgICAgICAgd29yZE1lYXN1cmVtZW50
LndpZHRoID0gaWdub3JpbmdTcGFjZXMgPyAwIDogYWRkaXRpb25hbFRlbXBXaWR0aCArIHdvcmRT
cGFjaW5nRm9yV29yZE1lYXN1cmVtZW50OwpAQCAtMzMxMyw2ICszMzIyLDEwIEBACiAgICAgICAg
ICAgICBmbG9hdCBpbmxpbmVMb2dpY2FsVGVtcFdpZHRoID0gaW5saW5lTG9naWNhbFdpZHRoKGN1
cnJlbnQubV9vYmosICFhcHBsaWVkU3RhcnRXaWR0aCwgaW5jbHVkZUVuZFdpZHRoKTsKICAgICAg
ICAgICAgIHdpZHRoLmFkZFVuY29tbWl0dGVkV2lkdGgoYWRkaXRpb25hbFRlbXBXaWR0aCArIGlu
bGluZUxvZ2ljYWxUZW1wV2lkdGgpOwogCisgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50
LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cy5zd2FwKGZhbGxiYWNr
Rm9udHMpOworICAgICAgICAgICAgZmFsbGJhY2tGb250cy5jbGVhcigpOworCiAgICAgICAgICAg
ICBpZiAoY29sbGFwc2VXaGl0ZVNwYWNlICYmIGN1cnJlbnRDaGFyYWN0ZXJJc1NwYWNlICYmIGFk
ZGl0aW9uYWxUZW1wV2lkdGgpCiAgICAgICAgICAgICAgICAgd2lkdGguc2V0VHJhaWxpbmdXaGl0
ZXNwYWNlV2lkdGgoYWRkaXRpb25hbFRlbXBXaWR0aCArIGlubGluZUxvZ2ljYWxUZW1wV2lkdGgp
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lv
biAxNTEwMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg5Myw3ICs4OTMsNyBAQAogICAgIHJldHVybiBmb250LndpZHRoKFJl
bmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHJlbmRlcmVyLCBmb250LCBzdHlsZS0+aHlwaGVu
U3RyaW5nKCkuc3RyaW5nKCksIHN0eWxlKSk7CiB9CiAKLXN0YXRpYyBmbG9hdCBtYXhXb3JkRnJh
Z21lbnRXaWR0aChSZW5kZXJUZXh0KiByZW5kZXJlciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25z
dCBGb250JiBmb250LCBjb25zdCBVQ2hhciogd29yZCwgaW50IHdvcmRMZW5ndGgsIGludCBtaW5p
bXVtUHJlZml4TGVuZ3RoLCBpbnQgbWluaW11bVN1ZmZpeExlbmd0aCwgaW50JiBzdWZmaXhTdGFy
dCkKK3N0YXRpYyBmbG9hdCBtYXhXb3JkRnJhZ21lbnRXaWR0aChSZW5kZXJUZXh0KiByZW5kZXJl
ciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogd29y
ZCwgaW50IHdvcmRMZW5ndGgsIGludCBtaW5pbXVtUHJlZml4TGVuZ3RoLCBpbnQgbWluaW11bVN1
ZmZpeExlbmd0aCwgaW50JiBzdWZmaXhTdGFydCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0
YSo+JiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93JiBnbHlwaE92ZXJmbG93KQogewogICAg
IHN1ZmZpeFN0YXJ0ID0gMDsKICAgICBpZiAod29yZExlbmd0aCA8PSBtaW5pbXVtU3VmZml4TGVu
Z3RoKQpAQCAtOTIwLDcgKzkyMCw3IEBACiAgICAgICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxv
Y2s6OmNvbnN0cnVjdFRleHRSdW4ocmVuZGVyZXIsIGZvbnQsIGZyYWdtZW50V2l0aEh5cGhlbi5j
aGFyYWN0ZXJzKCksIGZyYWdtZW50V2l0aEh5cGhlbi5sZW5ndGgoKSwgc3R5bGUpOwogICAgICAg
ICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChmcmFnbWVudFdpdGhIeXBoZW4ubGVuZ3RoKCkpOwog
ICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCFyZW5kZXJlci0+Y2FuVXNl
U2ltcGxlRm9udENvZGVQYXRoKCkpOwotICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9u
dC53aWR0aChydW4pOworICAgICAgICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53aWR0aChy
dW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKICAgICAgICAgLy8gTmFycm93
IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcC4KICAgICAgICAgaWYgKGZyYWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdt
ZW50V2lkdGhUb0NvbnNpZGVyKQpAQCAtOTY4LDcgKzk2OCw3IEBACiAKICAgICAvLyBOb24temVy
byBvbmx5IHdoZW4ga2VybmluZyBpcyBlbmFibGVkLCBpbiB3aGljaCBjYXNlIHdlIG1lYXN1cmUg
d29yZHMgd2l0aCB0aGVpciB0cmFpbGluZwogICAgIC8vIHNwYWNlLCB0aGVuIHN1YnRyYWN0IGl0
cyB3aWR0aC4KLSAgICBmbG9hdCB3b3JkVHJhaWxpbmdTcGFjZVdpZHRoID0gZi50eXBlc2V0dGlu
Z0ZlYXR1cmVzKCkgJiBLZXJuaW5nID8gZi53aWR0aChSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4
dFJ1bih0aGlzLCBmLCAmc3BhY2UsIDEsIHN0eWxlVG9Vc2UpKSArIHdvcmRTcGFjaW5nIDogMDsK
KyAgICBmbG9hdCB3b3JkVHJhaWxpbmdTcGFjZVdpZHRoID0gZi50eXBlc2V0dGluZ0ZlYXR1cmVz
KCkgJiBLZXJuaW5nID8gZi53aWR0aChSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0aGlz
LCBmLCAmc3BhY2UsIDEsIHN0eWxlVG9Vc2UpLCAmZmFsbGJhY2tGb250cykgKyB3b3JkU3BhY2lu
ZyA6IDA7CiAKICAgICAvLyBJZiBhdXRvbWF0aWMgaHlwaGVuYXRpb24gaXMgYWxsb3dlZCwgd2Ug
a2VlcCB0cmFjayBvZiB0aGUgd2lkdGggb2YgdGhlIHdpZGVzdCB3b3JkIChvciB3b3JkCiAgICAg
Ly8gZnJhZ21lbnQpIGVuY291bnRlcmVkIHNvIGZhciwgYW5kIG9ubHkgdHJ5IGh5cGhlbmF0aW5n
IHdvcmRzIHRoYXQgYXJlIHdpZGVyLgpAQCAtMTA2OSw3ICsxMDY5LDcgQEAKIAogICAgICAgICAg
ICAgaWYgKHcgPiBtYXhXb3JkV2lkdGgpIHsKICAgICAgICAgICAgICAgICBpbnQgc3VmZml4U3Rh
cnQ7Ci0gICAgICAgICAgICAgICAgZmxvYXQgbWF4RnJhZ21lbnRXaWR0aCA9IG1heFdvcmRGcmFn
bWVudFdpZHRoKHRoaXMsIHN0eWxlVG9Vc2UsIGYsIGNoYXJhY3RlcnMoKSArIGksIHdvcmRMZW4s
IG1pbmltdW1QcmVmaXhMZW5ndGgsIG1pbmltdW1TdWZmaXhMZW5ndGgsIHN1ZmZpeFN0YXJ0KTsK
KyAgICAgICAgICAgICAgICBmbG9hdCBtYXhGcmFnbWVudFdpZHRoID0gbWF4V29yZEZyYWdtZW50
V2lkdGgodGhpcywgc3R5bGVUb1VzZSwgZiwgY2hhcmFjdGVycygpICsgaSwgd29yZExlbiwgbWlu
aW11bVByZWZpeExlbmd0aCwgbWluaW11bVN1ZmZpeExlbmd0aCwgc3VmZml4U3RhcnQsIGZhbGxi
YWNrRm9udHMsIGdseXBoT3ZlcmZsb3cpOwogCiAgICAgICAgICAgICAgICAgaWYgKHN1ZmZpeFN0
YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHN1ZmZpeFdpZHRoOwpAQCAtMTE1MCw3
ICsxMTUwLDcgQEAKICAgICAgICAgICAgICAgICBydW4uc2V0VGFiU2l6ZSghc3R5bGUoKS0+Y29s
bGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlKCktPnRhYlNpemUoKSk7CiAgICAgICAgICAgICAgICAg
cnVuLnNldFhQb3MobGVhZFdpZHRoICsgY3Vyck1heFdpZHRoKTsKIAotICAgICAgICAgICAgICAg
IGN1cnJNYXhXaWR0aCArPSBmLndpZHRoKHJ1bik7CisgICAgICAgICAgICAgICAgY3Vyck1heFdp
ZHRoICs9IGYud2lkdGgocnVuLCAmZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICAgICAgZ2x5
cGhPdmVyZmxvdy5yaWdodCA9IDA7CiAgICAgICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9
IGlzU3BhY2UgJiYgIXByZXZpb3VzQ2hhcmFjdGVySXNTcGFjZSAmJiBpID09IGxlbiAtIDE7CiAg
ICAgICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203991</attachid>
            <date>2013-06-06 19:12:16 -0700</date>
            <delta_ts>2013-06-07 07:15:05 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-115931-20130606191043.patch</filename>
            <type>text/plain</type>
            <size>18232</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MTI4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA2LTA2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT046IExpbmVzIGp1
bXAgdXAgYW5kIGRvd24gd2hpbGUgdHlwaW5nIENoaW5lc2Ugb3IgSmFwYW5lc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTkzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBidWcgd2FzIGNhdXNl
ZCBieSBGb250Ojp3aWR0aCBjYWNoaW5nIHRoZSB3aWR0aCBvZiB0ZXh0IGV2ZW4gd2hlbiB0aGUg
Zm9udCBmYWxsYmFja3MgZXhpc3RlZCB3aGVuIGZhbGxiYWNrRm9udHMKKyAgICAgICAgYXJndW1l
bnQgd2FzIG51bGw7IGJlY2F1c2Ugb2YgdGhpcywgYSBsYXRlciBjYWxsIHRvIEZvbnQ6OndpZHRo
IHdhcyByZXR1cm5pbmcgdGhlIHdpZHRoIHdpdGhvdXQgZmlsbGluZyB1cAorICAgICAgICBmYWxs
YmFja0ZvbnRzIGV2ZW4gaWYgaXQgd2FzIG5vdCBudWxsIHRoaXMgdGltZS4KKworICAgICAgICBG
aXhlZCB0aGUgYnVnIGJ5IGFkZGluZyBhIGxvY2FsIGZhbGxiYWNrIGZvbnRzIGhhc2ggc2V0LCBh
bmQgY2hlY2tpbmcgdGhlIGVtcHRpbmVzcyBvZiB0aGlzIHZhcmlhYmxlIGluIEZvbnQ6OndpZHRo
LgorICAgICAgICBBbHNvIGFkZGVkIHBhc3MgZmFsbGJhY2tGb250cyBhcm91bmQgaW4gdmFyaW91
cyBwbGFjZXMgdG8gbWFrZSB1c2Ugb2YgdGhlIGNhY2hlZCBmb250IGZhbGxiYWNrcy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIFVuZm9ydHVuYXRlbHkgSSBoYXZlbid0IGJlZW4gYWJsZSB0byBt
YWtlIGEgcmVsaWFibGUgcmVkdWN0aW9uIGZvciB0aGlzIGJ1Zy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6d2lkdGgpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bWVhc3VyZUh5cGhlbldpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OnNldExvZ2lj
YWxXaWR0aEZvclRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRyeUh5cGhlbmF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWF4V29yZEZyYWdtZW50V2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMpOgorCiAyMDEzLTA2LTA2ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUS10gUGFyYW1ldGVyICdyZWZDaGlsZCcgZnJvbSBmdW5jdGlvbiAn
d2Via2l0X2RvbV9ub2RlX2luc2VydF9iZWZvcmUnIHNob3VsZCBiZSBhbGxvd2VkIHRvIGJlIE5V
TEwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCShyZXZp
c2lvbiAxNTEyNjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEyLDEzICszMTIsMTggQEAgZmxvYXQgRm9udDo6d2lkdGgo
Y29uc3QgVGV4dFJ1biYgcnVuLCBIYQogICAgIGlmIChjYWNoZUVudHJ5ICYmICFzdGQ6OmlzbmFu
KCpjYWNoZUVudHJ5KSkKICAgICAgICAgcmV0dXJuICpjYWNoZUVudHJ5OwogCisgICAgSGFzaFNl
dDxjb25zdCBTaW1wbGVGb250RGF0YSo+IGxvY2FsRmFsbGJhY2tGb250czsKKyAgICBpZiAoIWZh
bGxiYWNrRm9udHMpCisgICAgICAgIGZhbGxiYWNrRm9udHMgPSAmbG9jYWxGYWxsYmFja0ZvbnRz
OworCiAgICAgZmxvYXQgcmVzdWx0OwogICAgIGlmIChjb2RlUGF0aFRvVXNlID09IENvbXBsZXgp
CiAgICAgICAgIHJlc3VsdCA9IGZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChydW4sIGZhbGxiYWNr
Rm9udHMsIGdseXBoT3ZlcmZsb3cpOwogICAgIGVsc2UKICAgICAgICAgcmVzdWx0ID0gZmxvYXRX
aWR0aEZvclNpbXBsZVRleHQocnVuLCBmYWxsYmFja0ZvbnRzLCBnbHlwaE92ZXJmbG93KTsKIAot
ICAgIGlmIChjYWNoZUVudHJ5ICYmICghZmFsbGJhY2tGb250cyB8fCBmYWxsYmFja0ZvbnRzLT5p
c0VtcHR5KCkpKQorICAgIEFTU0VSVChmYWxsYmFja0ZvbnRzKTsKKyAgICBpZiAoY2FjaGVFbnRy
eSAmJiBmYWxsYmFja0ZvbnRzLT5pc0VtcHR5KCkpCiAgICAgICAgICpjYWNoZUVudHJ5ID0gcmVz
dWx0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gMTUxMjYwKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTgwNiwxMCArODA2LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnNldE1h
cmdpbnNGb3JSdWJ5UnVuKEIKICAgICBzZXRNYXJnaW5FbmRGb3JDaGlsZChyZW5kZXJlciwgLWVu
ZE92ZXJoYW5nKTsKIH0KIAotc3RhdGljIGlubGluZSBmbG9hdCBtZWFzdXJlSHlwaGVuV2lkdGgo
UmVuZGVyVGV4dCogcmVuZGVyZXIsIGNvbnN0IEZvbnQmIGZvbnQpCitzdGF0aWMgaW5saW5lIGZs
b2F0IG1lYXN1cmVIeXBoZW5XaWR0aChSZW5kZXJUZXh0KiByZW5kZXJlciwgY29uc3QgRm9udCYg
Zm9udCwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCkK
IHsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1
cm4gZm9udC53aWR0aChSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihyZW5kZXJlciwgZm9u
dCwgc3R5bGUtPmh5cGhlblN0cmluZygpLnN0cmluZygpLCBzdHlsZSkpOworICAgIHJldHVybiBm
b250LndpZHRoKFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKHJlbmRlcmVyLCBmb250LCBz
dHlsZS0+aHlwaGVuU3RyaW5nKCkuc3RyaW5nKCksIHN0eWxlKSwgZmFsbGJhY2tGb250cyk7CiB9
CiAKIGNsYXNzIFdvcmRNZWFzdXJlbWVudCB7CkBAIC04MzAsNyArODMwLDcgQEAgcHVibGljOgog
fTsKIAogc3RhdGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxXaWR0aEZvclRleHRSdW4oUm9vdElu
bGluZUJveCogbGluZUJveCwgQmlkaVJ1biogcnVuLCBSZW5kZXJUZXh0KiByZW5kZXJlciwgZmxv
YXQgeFBvcywgY29uc3QgTGluZUluZm8mIGxpbmVJbmZvLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
IHRleHRCb3hEYXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmIHZlcnRpY2FsUG9zaXRpb25D
YWNoZSwgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50cykKKyAgICBHbHlwaE92ZXJm
bG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXAsIFZlcnRpY2FsUG9zaXRpb25D
YWNoZSYgdmVydGljYWxQb3NpdGlvbkNhY2hlLCBXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3Vy
ZW1lbnRzKQogewogICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiBmYWxsYmFja0Zv
bnRzOwogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKQEAgLTg1Myw3ICs4NTMsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9yVGV4CiAgICAgTGF5b3V0VW5p
dCBoeXBoZW5XaWR0aCA9IDA7CiAgICAgaWYgKHRvSW5saW5lVGV4dEJveChydW4tPm1fYm94KS0+
aGFzSHlwaGVuKCkpIHsKICAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IHJlbmRlcmVyLT5zdHls
ZShsaW5lSW5mby5pc0ZpcnN0TGluZSgpKS0+Zm9udCgpOwotICAgICAgICBoeXBoZW5XaWR0aCA9
IG1lYXN1cmVIeXBoZW5XaWR0aChyZW5kZXJlciwgZm9udCk7CisgICAgICAgIGh5cGhlbldpZHRo
ID0gbWVhc3VyZUh5cGhlbldpZHRoKHJlbmRlcmVyLCBmb250LCAmZmFsbGJhY2tGb250cyk7CiAg
ICAgfQogICAgIGZsb2F0IG1lYXN1cmVkV2lkdGggPSAwOwogCkBAIC04NjYsOCArODY2LDggQEAg
c3RhdGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxXaWR0aEZvclRleAogICAgIGlmICghbGluZUJv
eC0+Zml0c1RvR2x5cGhzKCkgJiYgY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKSB7CiAgICAgICAg
IGludCBsYXN0RW5kT2Zmc2V0ID0gcnVuLT5tX3N0YXJ0OwogICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgc2l6ZSA9IHdvcmRNZWFzdXJlbWVudHMuc2l6ZSgpOyBpIDwgc2l6ZSAmJiBsYXN0RW5k
T2Zmc2V0IDwgcnVuLT5tX3N0b3A7ICsraSkgewotICAgICAgICAgICAgY29uc3QgV29yZE1lYXN1
cmVtZW50JiB3b3JkTWVhc3VyZW1lbnQgPSB3b3JkTWVhc3VyZW1lbnRzW2ldOwotICAgICAgICAg
ICAgaWYgKHdvcmRNZWFzdXJlbWVudC53aWR0aCA8PTAgfHwgd29yZE1lYXN1cmVtZW50LnN0YXJ0
T2Zmc2V0ID09IHdvcmRNZWFzdXJlbWVudC5lbmRPZmZzZXQpCisgICAgICAgICAgICBXb3JkTWVh
c3VyZW1lbnQmIHdvcmRNZWFzdXJlbWVudCA9IHdvcmRNZWFzdXJlbWVudHNbaV07CisgICAgICAg
ICAgICBpZiAod29yZE1lYXN1cmVtZW50LndpZHRoIDw9IDAgfHwgd29yZE1lYXN1cmVtZW50LnN0
YXJ0T2Zmc2V0ID09IHdvcmRNZWFzdXJlbWVudC5lbmRPZmZzZXQpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICBpZiAod29yZE1lYXN1cmVtZW50LnJlbmRlcmVyICE9IHJl
bmRlcmVyIHx8IHdvcmRNZWFzdXJlbWVudC5zdGFydE9mZnNldCAhPSBsYXN0RW5kT2Zmc2V0IHx8
IHdvcmRNZWFzdXJlbWVudC5lbmRPZmZzZXQgPiBydW4tPm1fc3RvcCkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTg3NSw3ICs4NzUsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9n
aWNhbFdpZHRoRm9yVGV4CiAgICAgICAgICAgICBsYXN0RW5kT2Zmc2V0ID0gd29yZE1lYXN1cmVt
ZW50LmVuZE9mZnNldDsKICAgICAgICAgICAgIGlmIChrZXJuaW5nSXNFbmFibGVkICYmIGxhc3RF
bmRPZmZzZXQgPT0gcnVuLT5tX3N0b3ApIHsKICAgICAgICAgICAgICAgICBpbnQgd29yZExlbmd0
aCA9IGxhc3RFbmRPZmZzZXQgLSB3b3JkTWVhc3VyZW1lbnQuc3RhcnRPZmZzZXQ7Ci0gICAgICAg
ICAgICAgICAgbWVhc3VyZWRXaWR0aCArPSByZW5kZXJlci0+d2lkdGgod29yZE1lYXN1cmVtZW50
LnN0YXJ0T2Zmc2V0LCB3b3JkTGVuZ3RoLCB4UG9zICsgbWVhc3VyZWRXaWR0aCwgbGluZUluZm8u
aXNGaXJzdExpbmUoKSk7CisgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvdyBvdmVyZmxvdzsK
KyAgICAgICAgICAgICAgICBtZWFzdXJlZFdpZHRoICs9IHJlbmRlcmVyLT53aWR0aCh3b3JkTWVh
c3VyZW1lbnQuc3RhcnRPZmZzZXQsIHdvcmRMZW5ndGgsIHhQb3MgKyBtZWFzdXJlZFdpZHRoLCBs
aW5lSW5mby5pc0ZpcnN0TGluZSgpLAorICAgICAgICAgICAgICAgICAgICAmd29yZE1lYXN1cmVt
ZW50LmZhbGxiYWNrRm9udHMsICZvdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgVUNoYXIgYyA9
IHJlbmRlcmVyLT5jaGFyYWN0ZXJBdCh3b3JkTWVhc3VyZW1lbnQuc3RhcnRPZmZzZXQpOwogICAg
ICAgICAgICAgICAgIGlmIChpID4gMCAmJiB3b3JkTGVuZ3RoID09IDEgJiYgKGMgPT0gJyAnIHx8
IGMgPT0gJ1x0JykpCiAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkdGggKz0gcmVuZGVy
ZXItPnN0eWxlKCktPndvcmRTcGFjaW5nKCk7CkBAIC0yNTYwLDE0ICsyNTYyLDE0IEBAIHN0YXRp
YyBib29sIHNob3VsZFNraXBXaGl0ZXNwYWNlQWZ0ZXJTdGEKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIGZsb2F0IHRleHRXaWR0aChSZW5kZXJUZXh0KiB0ZXh0
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGZvbnQsIGZsb2F0IHhQ
b3MsIGJvb2wgaXNGaXhlZFBpdGNoLCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSwgSGFzaFNldDxj
b25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgVGV4dExheW91dCogbGF5
b3V0ID0gMCkKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGZsb2F0IHRleHRXaWR0aChSZW5kZXJUZXh0
KiB0ZXh0LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnQmIGZvbnQsIGZs
b2F0IHhQb3MsIGJvb2wgaXNGaXhlZFBpdGNoLCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSwgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+JiBmYWxsYmFja0ZvbnRzLCBUZXh0TGF5b3V0KiBs
YXlvdXQgPSAwKQogewogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxvdzsKICAgICBpZiAo
aXNGaXhlZFBpdGNoIHx8ICghZnJvbSAmJiBsZW4gPT0gdGV4dC0+dGV4dExlbmd0aCgpKSB8fCB0
ZXh0LT5zdHlsZSgpLT5oYXNUZXh0Q29tYmluZSgpKQotICAgICAgICByZXR1cm4gdGV4dC0+d2lk
dGgoZnJvbSwgbGVuLCBmb250LCB4UG9zLCBmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7
CisgICAgICAgIHJldHVybiB0ZXh0LT53aWR0aChmcm9tLCBsZW4sIGZvbnQsIHhQb3MsICZmYWxs
YmFja0ZvbnRzLCAmZ2x5cGhPdmVyZmxvdyk7CiAKICAgICBpZiAobGF5b3V0KQotICAgICAgICBy
ZXR1cm4gRm9udDo6d2lkdGgoKmxheW91dCwgZnJvbSwgbGVuLCBmYWxsYmFja0ZvbnRzKTsKKyAg
ICAgICAgcmV0dXJuIEZvbnQ6OndpZHRoKCpsYXlvdXQsIGZyb20sIGxlbiwgJmZhbGxiYWNrRm9u
dHMpOwogCiAgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0
ZXh0LCBmb250LCB0ZXh0LCBmcm9tLCBsZW4sIHRleHQtPnN0eWxlKCkpOwogICAgIHJ1bi5zZXRD
aGFyYWN0ZXJzTGVuZ3RoKHRleHQtPnRleHRMZW5ndGgoKSAtIGZyb20pOwpAQCAtMjU3Niw3ICsy
NTc4LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgZmxvYXQgdGV4dFdpZHRoKFJlbgogICAgIHJ1
bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXRleHQtPmNhblVzZVNpbXBsZUZvbnRDb2Rl
UGF0aCgpKTsKICAgICBydW4uc2V0VGFiU2l6ZSghY29sbGFwc2VXaGl0ZVNwYWNlLCB0ZXh0LT5z
dHlsZSgpLT50YWJTaXplKCkpOwogICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwotICAgIHJldHVybiBm
b250LndpZHRoKHJ1biwgZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgIHJldHVy
biBmb250LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKIH0KIAog
c3RhdGljIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCogdGV4dCwgY29uc3QgRm9udCYg
Zm9udCwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBjb25z
ZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgaW50IGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzTGlt
aXQsIGludCBtaW5pbXVtUHJlZml4TGltaXQsIGludCBtaW5pbXVtU3VmZml4TGltaXQsIHVuc2ln
bmVkIGxhc3RTcGFjZSwgdW5zaWduZWQgcG9zLCBmbG9hdCB4UG9zLCBpbnQgYXZhaWxhYmxlV2lk
dGgsIGJvb2wgaXNGaXhlZFBpdGNoLCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSwgaW50IGxhc3RT
cGFjZVdvcmRTcGFjaW5nLCBJbmxpbmVJdGVyYXRvciYgbGluZUJyZWFrLCBpbnQgbmV4dEJyZWFr
YWJsZSwgYm9vbCYgaHlwaGVuYXRlZCkKQEAgLTI2MzUsNyArMjYzNyw4IEBAIHN0YXRpYyB2b2lk
IHRyeUh5cGhlbmF0aW5nKFJlbmRlclRleHQqIHQKICAgICBBU1NFUlQocG9zIC0gbGFzdFNwYWNl
IC0gcHJlZml4TGVuZ3RoID49IG1pbmltdW1TdWZmaXhMZW5ndGgpOwogCiAjaWYgIUFTU0VSVF9E
SVNBQkxFRAotICAgIGZsb2F0IHByZWZpeFdpZHRoID0gaHlwaGVuV2lkdGggKyB0ZXh0V2lkdGgo
dGV4dCwgbGFzdFNwYWNlLCBwcmVmaXhMZW5ndGgsIGZvbnQsIHhQb3MsIGlzRml4ZWRQaXRjaCwg
Y29sbGFwc2VXaGl0ZVNwYWNlKSArIGxhc3RTcGFjZVdvcmRTcGFjaW5nOworICAgIEhhc2hTZXQ8
Y29uc3QgU2ltcGxlRm9udERhdGEqPiBmYWxsYmFja0ZvbnRzOworICAgIGZsb2F0IHByZWZpeFdp
ZHRoID0gaHlwaGVuV2lkdGggKyB0ZXh0V2lkdGgodGV4dCwgbGFzdFNwYWNlLCBwcmVmaXhMZW5n
dGgsIGZvbnQsIHhQb3MsIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCBmYWxsYmFj
a0ZvbnRzKSArIGxhc3RTcGFjZVdvcmRTcGFjaW5nOwogICAgIEFTU0VSVCh4UG9zICsgcHJlZml4
V2lkdGggPD0gYXZhaWxhYmxlV2lkdGgpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaXNGaXhl
ZFBpdGNoKTsKQEAgLTMwNzgsNyArMzA4MSw4IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2Nr
OjpMaW5lQnJlYWtlcjoKIAogICAgICAgICAgICAgLy8gTm9uLXplcm8gb25seSB3aGVuIGtlcm5p
bmcgaXMgZW5hYmxlZCBhbmQgVGV4dExheW91dCBpc24ndCB1c2VkLCBpbiB3aGljaCBjYXNlIHdl
IG1lYXN1cmUKICAgICAgICAgICAgIC8vIHdvcmRzIHdpdGggdGhlaXIgdHJhaWxpbmcgc3BhY2Us
IHRoZW4gc3VidHJhY3QgaXRzIHdpZHRoLgotICAgICAgICAgICAgZmxvYXQgd29yZFRyYWlsaW5n
U3BhY2VXaWR0aCA9IChmLnR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcpICYmICF0ZXh0
TGF5b3V0ID8gZi53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHQsIGYsICZzcGFjZSwgMSwgc3R5bGUp
KSArIHdvcmRTcGFjaW5nIDogMDsKKyAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9u
dERhdGEqPiBmYWxsYmFja0ZvbnRzOworICAgICAgICAgICAgZmxvYXQgd29yZFRyYWlsaW5nU3Bh
Y2VXaWR0aCA9IChmLnR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcpICYmICF0ZXh0TGF5
b3V0ID8gZi53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKHQsIGYsICZzcGFjZSwgMSwgc3R5bGUpLCAm
ZmFsbGJhY2tGb250cykgKyB3b3JkU3BhY2luZyA6IDA7CiAKICAgICAgICAgICAgIFVDaGFyIGxh
c3RDaGFyYWN0ZXIgPSByZW5kZXJUZXh0SW5mby5tX2xpbmVCcmVha0l0ZXJhdG9yLmxhc3RDaGFy
YWN0ZXIoKTsKICAgICAgICAgICAgIFVDaGFyIHNlY29uZFRvTGFzdENoYXJhY3RlciA9IHJlbmRl
clRleHRJbmZvLm1fbGluZUJyZWFrSXRlcmF0b3Iuc2Vjb25kVG9MYXN0Q2hhcmFjdGVyKCk7CkBA
IC0zMDkyLDcgKzMwOTYsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFr
ZXI6CiAgICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLnNldEVtcHR5KGZhbHNlLCBtX2Jsb2Nr
LCAmd2lkdGgpOwogCiAgICAgICAgICAgICAgICAgaWYgKGMgPT0gc29mdEh5cGhlbiAmJiBhdXRv
V3JhcCAmJiAhaHlwaGVuV2lkdGggJiYgc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSkg
ewotICAgICAgICAgICAgICAgICAgICBoeXBoZW5XaWR0aCA9IG1lYXN1cmVIeXBoZW5XaWR0aCh0
LCBmKTsKKyAgICAgICAgICAgICAgICAgICAgaHlwaGVuV2lkdGggPSBtZWFzdXJlSHlwaGVuV2lk
dGgodCwgZiwgJmZhbGxiYWNrRm9udHMpOwogICAgICAgICAgICAgICAgICAgICB3aWR0aC5hZGRV
bmNvbW1pdHRlZFdpZHRoKGh5cGhlbldpZHRoKTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTMx
MDMsNyArMzEwNyw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjoK
ICAgICAgICAgICAgICAgICBpZiAoKGJyZWFrQWxsIHx8IGJyZWFrV29yZHMpICYmICFtaWRXb3Jk
QnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgd3JhcFcgKz0gY2hhcldpZHRoOwogICAgICAg
ICAgICAgICAgICAgICBib29sIG1pZFdvcmRCcmVha0lzQmVmb3JlU3Vycm9nYXRlUGFpciA9IFUx
Nl9JU19MRUFEKGMpICYmIGN1cnJlbnQubV9wb3MgKyAxIDwgdC0+dGV4dExlbmd0aCgpICYmIFUx
Nl9JU19UUkFJTCh0LT5jaGFyYWN0ZXJzKClbY3VycmVudC5tX3BvcyArIDFdKTsKLSAgICAgICAg
ICAgICAgICAgICAgY2hhcldpZHRoID0gdGV4dFdpZHRoKHQsIGN1cnJlbnQubV9wb3MsIG1pZFdv
cmRCcmVha0lzQmVmb3JlU3Vycm9nYXRlUGFpciA/IDIgOiAxLCBmLCB3aWR0aC5jb21taXR0ZWRX
aWR0aCgpICsgd3JhcFcsIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCAwLCB0ZXh0
TGF5b3V0KTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcldpZHRoID0gdGV4dFdpZHRoKHQsIGN1
cnJlbnQubV9wb3MsIG1pZFdvcmRCcmVha0lzQmVmb3JlU3Vycm9nYXRlUGFpciA/IDIgOiAxLCBm
LCB3aWR0aC5jb21taXR0ZWRXaWR0aCgpICsgd3JhcFcsIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VX
aGl0ZVNwYWNlLCBmYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICAgICAgICAgICAgICAg
ICAgbWlkV29yZEJyZWFrID0gd2lkdGguY29tbWl0dGVkV2lkdGgoKSArIHdyYXBXICsgY2hhcldp
ZHRoID4gd2lkdGguYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTMx
MzcsOSArMzE0MSwxMyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6
CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBmbG9hdCBhZGRpdGlv
bmFsVGVtcFdpZHRoOwogICAgICAgICAgICAgICAgICAgICBpZiAod29yZFRyYWlsaW5nU3BhY2VX
aWR0aCAmJiBjID09ICcgJykKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxUZW1w
V2lkdGggPSB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zICsgMSAtIGxhc3RT
cGFjZSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0
ZVNwYWNlLCAmd29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpIC0gd29y
ZFRyYWlsaW5nU3BhY2VXaWR0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxU
ZW1wV2lkdGggPSB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zICsgMSAtIGxh
c3RTcGFjZSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgY29sbGFwc2VX
aGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91dCkgLSB3
b3JkVHJhaWxpbmdTcGFjZVdpZHRoOwogICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsVGVtcFdpZHRoID0gdGV4dFdpZHRoKHQsIGxhc3RT
cGFjZSwgY3VycmVudC5tX3BvcyAtIGxhc3RTcGFjZSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCks
IGlzRml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCAmd29yZE1lYXN1cmVtZW50LmZhbGxi
YWNrRm9udHMsIHRleHRMYXlvdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25h
bFRlbXBXaWR0aCA9IHRleHRXaWR0aCh0LCBsYXN0U3BhY2UsIGN1cnJlbnQubV9wb3MgLSBsYXN0
U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNvbGxhcHNlV2hp
dGVTcGFjZSwgd29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpOworCisg
ICAgICAgICAgICAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cy5pc0Vt
cHR5KCkgJiYgIWZhbGxiYWNrRm9udHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgd29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMuc3dhcChmYWxsYmFja0ZvbnRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFsbGJhY2tGb250cy5jbGVhcigpOwogCiAgICAgICAgICAgICAg
ICAgICAgIHdvcmRNZWFzdXJlbWVudC53aWR0aCA9IGFkZGl0aW9uYWxUZW1wV2lkdGggKyB3b3Jk
U3BhY2luZ0ZvcldvcmRNZWFzdXJlbWVudDsKICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25h
bFRlbXBXaWR0aCArPSBsYXN0U3BhY2VXb3JkU3BhY2luZzsKQEAgLTMxNjMsNyArMzE3MSw3IEBA
IElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjoKICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGFzIGNhbmRpZGF0ZSB3aWR0aCBmb3IgdGhpcyBsaW5lLgogICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBsaW5lV2FzVG9vV2lkZSA9IGZhbHNlOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHdpZHRoLmZpdHNPbkxpbmUoKSAmJiBjdXJyZW50Q2hhcmFjdGVySXNX
UyAmJiBjdXJyZW50U3R5bGUtPmJyZWFrT25seUFmdGVyV2hpdGVTcGFjZSgpICYmICFtaWRXb3Jk
QnJlYWspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBjaGFyV2lkdGggPSB0
ZXh0V2lkdGgodCwgY3VycmVudC5tX3BvcywgMSwgZiwgd2lkdGguY3VycmVudFdpZHRoKCksIGlz
Rml4ZWRQaXRjaCwgY29sbGFwc2VXaGl0ZVNwYWNlLCAmd29yZE1lYXN1cmVtZW50LmZhbGxiYWNr
Rm9udHMsIHRleHRMYXlvdXQpICsgKGFwcGx5V29yZFNwYWNpbmcgPyB3b3JkU3BhY2luZyA6IDAp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGNoYXJXaWR0aCA9IHRleHRXaWR0
aCh0LCBjdXJyZW50Lm1fcG9zLCAxLCBmLCB3aWR0aC5jdXJyZW50V2lkdGgoKSwgaXNGaXhlZFBp
dGNoLCBjb2xsYXBzZVdoaXRlU3BhY2UsIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0
ZXh0TGF5b3V0KSArIChhcHBseVdvcmRTcGFjaW5nID8gd29yZFNwYWNpbmcgOiAwKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBsaW5lIGlzIHRvbyBiaWcgZXZlbiB3
aXRob3V0IHRoZSBleHRyYSBzcGFjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF0
IHRoZSBlbmQgb2YgdGhlIGxpbmUuIElmIGl0IGlzIG5vdCwgZG8gbm90aGluZy4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbGluZSBuZWVkcyB0aGUgZXh0cmEgd2hpdGVz
cGFjZSB0byBiZSB0b28gbG9uZywKQEAgLTMzMDEsNyArMzMwOSw3IEBAIElubGluZUl0ZXJhdG9y
IFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjoKICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5y
ZW5kZXJlciA9IHQ7CiAKICAgICAgICAgICAgIC8vIElNUE9SVEFOVDogY3VycmVudC5tX3BvcyBp
cyA+IGxlbmd0aCBoZXJlIQotICAgICAgICAgICAgZmxvYXQgYWRkaXRpb25hbFRlbXBXaWR0aCA9
IGlnbm9yaW5nU3BhY2VzID8gMCA6IHRleHRXaWR0aCh0LCBsYXN0U3BhY2UsIGN1cnJlbnQubV9w
b3MgLSBsYXN0U3BhY2UsIGYsIHdpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIGNv
bGxhcHNlV2hpdGVTcGFjZSwgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5
b3V0KTsKKyAgICAgICAgICAgIGZsb2F0IGFkZGl0aW9uYWxUZW1wV2lkdGggPSBpZ25vcmluZ1Nw
YWNlcyA/IDAgOiB0ZXh0V2lkdGgodCwgbGFzdFNwYWNlLCBjdXJyZW50Lm1fcG9zIC0gbGFzdFNw
YWNlLCBmLCB3aWR0aC5jdXJyZW50V2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBjb2xsYXBzZVdoaXRl
U3BhY2UsIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICAg
ICAgICAgIHdvcmRNZWFzdXJlbWVudC5zdGFydE9mZnNldCA9IGxhc3RTcGFjZTsKICAgICAgICAg
ICAgIHdvcmRNZWFzdXJlbWVudC5lbmRPZmZzZXQgPSBjdXJyZW50Lm1fcG9zOwogICAgICAgICAg
ICAgd29yZE1lYXN1cmVtZW50LndpZHRoID0gaWdub3JpbmdTcGFjZXMgPyAwIDogYWRkaXRpb25h
bFRlbXBXaWR0aCArIHdvcmRTcGFjaW5nRm9yV29yZE1lYXN1cmVtZW50OwpAQCAtMzMxMCw2ICsz
MzE4LDEwIEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjoKICAgICAg
ICAgICAgIGZsb2F0IGlubGluZUxvZ2ljYWxUZW1wV2lkdGggPSBpbmxpbmVMb2dpY2FsV2lkdGgo
Y3VycmVudC5tX29iaiwgIWFwcGxpZWRTdGFydFdpZHRoLCBpbmNsdWRlRW5kV2lkdGgpOwogICAg
ICAgICAgICAgd2lkdGguYWRkVW5jb21taXR0ZWRXaWR0aChhZGRpdGlvbmFsVGVtcFdpZHRoICsg
aW5saW5lTG9naWNhbFRlbXBXaWR0aCk7CiAKKyAgICAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1l
bnQuZmFsbGJhY2tGb250cy5pc0VtcHR5KCkgJiYgIWZhbGxiYWNrRm9udHMuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLnN3YXAoZmFsbGJh
Y2tGb250cyk7CisgICAgICAgICAgICBmYWxsYmFja0ZvbnRzLmNsZWFyKCk7CisKICAgICAgICAg
ICAgIGlmIChjb2xsYXBzZVdoaXRlU3BhY2UgJiYgY3VycmVudENoYXJhY3RlcklzU3BhY2UgJiYg
YWRkaXRpb25hbFRlbXBXaWR0aCkKICAgICAgICAgICAgICAgICB3aWR0aC5zZXRUcmFpbGluZ1do
aXRlc3BhY2VXaWR0aChhZGRpdGlvbmFsVGVtcFdpZHRoICsgaW5saW5lTG9naWNhbFRlbXBXaWR0
aCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlz
aW9uIDE1MTI2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODkzLDcgKzg5Myw3IEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgaHlw
aGVuV2lkdGgoUmVuZGVyVGUKICAgICByZXR1cm4gZm9udC53aWR0aChSZW5kZXJCbG9jazo6Y29u
c3RydWN0VGV4dFJ1bihyZW5kZXJlciwgZm9udCwgc3R5bGUtPmh5cGhlblN0cmluZygpLnN0cmlu
ZygpLCBzdHlsZSkpOwogfQogCi1zdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lkdGgoUmVu
ZGVyVGV4dCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKiBzdHlsZSwgY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgVUNoYXIqIHdvcmQsIGludCB3b3JkTGVuZ3RoLCBpbnQgbWluaW11bVByZWZpeExlbmd0
aCwgaW50IG1pbmltdW1TdWZmaXhMZW5ndGgsIGludCYgc3VmZml4U3RhcnQpCitzdGF0aWMgZmxv
YXQgbWF4V29yZEZyYWdtZW50V2lkdGgoUmVuZGVyVGV4dCogcmVuZGVyZXIsIFJlbmRlclN0eWxl
KiBzdHlsZSwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIHdvcmQsIGludCB3b3JkTGVu
Z3RoLCBpbnQgbWluaW11bVByZWZpeExlbmd0aCwgaW50IG1pbmltdW1TdWZmaXhMZW5ndGgsIGlu
dCYgc3VmZml4U3RhcnQsIEhhc2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tG
b250cywgR2x5cGhPdmVyZmxvdyYgZ2x5cGhPdmVyZmxvdykKIHsKICAgICBzdWZmaXhTdGFydCA9
IDA7CiAgICAgaWYgKHdvcmRMZW5ndGggPD0gbWluaW11bVN1ZmZpeExlbmd0aCkKQEAgLTkyMCw3
ICs5MjAsNyBAQCBzdGF0aWMgZmxvYXQgbWF4V29yZEZyYWdtZW50V2lkdGgoUmVuZGVyCiAgICAg
ICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4ocmVuZGVyZXIs
IGZvbnQsIGZyYWdtZW50V2l0aEh5cGhlbi5jaGFyYWN0ZXJzKCksIGZyYWdtZW50V2l0aEh5cGhl
bi5sZW5ndGgoKSwgc3R5bGUpOwogICAgICAgICBydW4uc2V0Q2hhcmFjdGVyc0xlbmd0aChmcmFn
bWVudFdpdGhIeXBoZW4ubGVuZ3RoKCkpOwogICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZv
ckNvZGVQYXRoKCFyZW5kZXJlci0+Y2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpOwotICAgICAg
ICBmbG9hdCBmcmFnbWVudFdpZHRoID0gZm9udC53aWR0aChydW4pOworICAgICAgICBmbG9hdCBm
cmFnbWVudFdpZHRoID0gZm9udC53aWR0aChydW4sICZmYWxsYmFja0ZvbnRzLCAmZ2x5cGhPdmVy
Zmxvdyk7CiAKICAgICAgICAgLy8gTmFycm93IHByZWZpeGVzIGFyZSBpZ25vcmVkLiBTZWUgdHJ5
SHlwaGVuYXRpbmcgaW4gUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcC4KICAgICAgICAgaWYgKGZy
YWdtZW50V2lkdGggPD0gbWluaW11bUZyYWdtZW50V2lkdGhUb0NvbnNpZGVyKQpAQCAtOTY4LDcg
Kzk2OCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKIAogICAg
IC8vIE5vbi16ZXJvIG9ubHkgd2hlbiBrZXJuaW5nIGlzIGVuYWJsZWQsIGluIHdoaWNoIGNhc2Ug
d2UgbWVhc3VyZSB3b3JkcyB3aXRoIHRoZWlyIHRyYWlsaW5nCiAgICAgLy8gc3BhY2UsIHRoZW4g
c3VidHJhY3QgaXRzIHdpZHRoLgotICAgIGZsb2F0IHdvcmRUcmFpbGluZ1NwYWNlV2lkdGggPSBm
LnR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcgPyBmLndpZHRoKFJlbmRlckJsb2NrOjpj
b25zdHJ1Y3RUZXh0UnVuKHRoaXMsIGYsICZzcGFjZSwgMSwgc3R5bGVUb1VzZSkpICsgd29yZFNw
YWNpbmcgOiAwOworICAgIGZsb2F0IHdvcmRUcmFpbGluZ1NwYWNlV2lkdGggPSBmLnR5cGVzZXR0
aW5nRmVhdHVyZXMoKSAmIEtlcm5pbmcgPyBmLndpZHRoKFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RU
ZXh0UnVuKHRoaXMsIGYsICZzcGFjZSwgMSwgc3R5bGVUb1VzZSksICZmYWxsYmFja0ZvbnRzKSAr
IHdvcmRTcGFjaW5nIDogMDsKIAogICAgIC8vIElmIGF1dG9tYXRpYyBoeXBoZW5hdGlvbiBpcyBh
bGxvd2VkLCB3ZSBrZWVwIHRyYWNrIG9mIHRoZSB3aWR0aCBvZiB0aGUgd2lkZXN0IHdvcmQgKG9y
IHdvcmQKICAgICAvLyBmcmFnbWVudCkgZW5jb3VudGVyZWQgc28gZmFyLCBhbmQgb25seSB0cnkg
aHlwaGVuYXRpbmcgd29yZHMgdGhhdCBhcmUgd2lkZXIuCkBAIC0xMDY5LDcgKzEwNjksNyBAQCB2
b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsCiAKICAgICAgICAgICAgIGlm
ICh3ID4gbWF4V29yZFdpZHRoKSB7CiAgICAgICAgICAgICAgICAgaW50IHN1ZmZpeFN0YXJ0Owot
ICAgICAgICAgICAgICAgIGZsb2F0IG1heEZyYWdtZW50V2lkdGggPSBtYXhXb3JkRnJhZ21lbnRX
aWR0aCh0aGlzLCBzdHlsZVRvVXNlLCBmLCBjaGFyYWN0ZXJzKCkgKyBpLCB3b3JkTGVuLCBtaW5p
bXVtUHJlZml4TGVuZ3RoLCBtaW5pbXVtU3VmZml4TGVuZ3RoLCBzdWZmaXhTdGFydCk7CisgICAg
ICAgICAgICAgICAgZmxvYXQgbWF4RnJhZ21lbnRXaWR0aCA9IG1heFdvcmRGcmFnbWVudFdpZHRo
KHRoaXMsIHN0eWxlVG9Vc2UsIGYsIGNoYXJhY3RlcnMoKSArIGksIHdvcmRMZW4sIG1pbmltdW1Q
cmVmaXhMZW5ndGgsIG1pbmltdW1TdWZmaXhMZW5ndGgsIHN1ZmZpeFN0YXJ0LCBmYWxsYmFja0Zv
bnRzLCBnbHlwaE92ZXJmbG93KTsKIAogICAgICAgICAgICAgICAgIGlmIChzdWZmaXhTdGFydCkg
ewogICAgICAgICAgICAgICAgICAgICBmbG9hdCBzdWZmaXhXaWR0aDsKQEAgLTExNTAsNyArMTE1
MCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICAgICAg
ICAgICAgICBydW4uc2V0VGFiU2l6ZSghc3R5bGUoKS0+Y29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0
eWxlKCktPnRhYlNpemUoKSk7CiAgICAgICAgICAgICAgICAgcnVuLnNldFhQb3MobGVhZFdpZHRo
ICsgY3Vyck1heFdpZHRoKTsKIAotICAgICAgICAgICAgICAgIGN1cnJNYXhXaWR0aCArPSBmLndp
ZHRoKHJ1bik7CisgICAgICAgICAgICAgICAgY3Vyck1heFdpZHRoICs9IGYud2lkdGgocnVuLCAm
ZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICAgICAgZ2x5cGhPdmVyZmxvdy5yaWdodCA9IDA7
CiAgICAgICAgICAgICAgICAgbmVlZHNXb3JkU3BhY2luZyA9IGlzU3BhY2UgJiYgIXByZXZpb3Vz
Q2hhcmFjdGVySXNTcGFjZSAmJiBpID09IGxlbiAtIDE7CiAgICAgICAgICAgICB9Cg==
</data>
<flag name="review"
          id="225494"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>203994</attachid>
            <date>2013-06-06 21:31:52 -0700</date>
            <delta_ts>2013-06-06 21:31:52 -0700</delta_ts>
            <desc>A/B test results</desc>
            <filename>font-fallback.html</filename>
            <type>text/html</type>
            <size>40274</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPldlYktpdCBQZXJmb3JtYW5jZSBU
ZXN0IFJlc3VsdHM8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoKc2VjdGlvbiB7CiAg
ICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBwb3NpdGlvbjogcmVs
YXRpdmU7Cn0KCi50aW1lLXBsb3RzIHsKICAgIHBhZGRpbmctbGVmdDogMjVweDsKfQoKLnRpbWUt
cGxvdHMgPiBkaXYgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDkwcHg7
CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7Cn0KCnNlY3Rpb24gaDEg
ewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxZW07Cn0KCnNlY3Rpb24g
LnRvb2x0aXAgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdGV4dC1hbGlnbjogY2VudGVy
OwogICAgYmFja2dyb3VuZDogI2ZmY2M2NjsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIHBh
ZGRpbmc6IDBweCA1cHg7Cn0KCmJvZHkgewogICAgcGFkZGluZzogMHB4OwogICAgbWFyZ2luOiAw
cHg7CiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKfQoKdGFibGUgewogICAgYmFja2dyb3Vu
ZDogd2hpdGU7CiAgICB3aWR0aDogMTAwJTsKfQoKdGFibGUsIHRkLCB0aCB7CiAgICBib3JkZXIt
Y29sbGFwc2U6IGNvbGxhcHNlOwogICAgcGFkZGluZzogNXB4Owp9Cgp0ci5ldmVuIHsKICAgIGJh
Y2tncm91bmQ6ICNmNmY2ZjY7Cn0KCnRhYmxlIHRkIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
ICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Cn0KCnRoLCB0ZCB7CiAgICBjdXJzb3I6IHBvaW50
ZXI7CiAgICBjdXJzb3I6IGhhbmQ7Cn0KCnRoIHsKICAgIGJhY2tncm91bmQ6ICNlNmVlZWU7CiAg
ICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90
dG9tLCBmcm9tKHJnYigyNDQsIDI0NCwgMjQ0KSksIHRvKHJnYigyMTcsIDIxNywgMjE3KSkpOwog
ICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKfQoKdGg6YWZ0ZXIgewogICAgY29udGVudDogJyBc
MjVCOCc7Cn0KCnRoLmhlYWRlclNvcnRVcDphZnRlciB7CiAgICBjb250ZW50OiAnIFwyNUJFJzsK
fQoKdGguaGVhZGVyU29ydERvd246YWZ0ZXIgewogICAgY29udGVudDogJyBcMjVCNCc7Cn0KCnRk
LmNvbXBhcmlzb24sIHRkLnJlc3VsdCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsKfQoKdGQuYmV0
dGVyIHsKICAgIGNvbG9yOiAjNmM2Owp9Cgp0ZC53b3JzZSB7CiAgICBjb2xvcjogI2M2NjsKfQoK
dGQubWlzc2luZyB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5jaGVja2JveCB7CiAgICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBiYWNrZ3JvdW5kOiAjZWVlOwogICAgYmFja2dyb3Vu
ZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShy
Z2IoMjIwLCAyMjAsIDIyMCkpLCB0byhyZ2IoMjAwLCAyMDAsIDIwMCkpKTsKICAgIGJvcmRlcjog
aW5zZXQgMXB4ICNkZGQ7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBtYXJnaW46IDEwcHg7
CiAgICBmb250LXNpemU6IHNtYWxsOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY3Vyc29yOiBo
YW5kOwogICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2VpZ2h0OiBib2xk
Owp9CgouY2hlY2tib3ggc3BhbiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaW5l
LWhlaWdodDogMTAwJTsKICAgIHBhZGRpbmc6IDVweCA4cHg7CiAgICBib3JkZXI6IG91dHNldCAx
cHggdHJhbnNwYXJlbnQ7Cn0KCi5jaGVja2JveCAuY2hlY2tlZCB7CiAgICBiYWNrZ3JvdW5kOiAj
ZTZlZWVlOwogICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9w
LCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjU1LCAyNTUsIDI1NSkpLCB0byhyZ2IoMjM1LCAyMzUs
IDIzNSkpKTsKICAgIGJvcmRlcjogb3V0c2V0IDFweCAjZWVlOwogICAgYm9yZGVyLXJhZGl1czog
NXB4Owp9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEw
cHg7Ij4KUmVzdWx0IDxzcGFuIGlkPSJ0aW1lLW1lbW9yeSIgY2xhc3M9ImNoZWNrYm94Ij48c3Bh
biBjbGFzcz0iY2hlY2tlZCI+VGltZTwvc3Bhbj48c3Bhbj5NZW1vcnk8L3NwYW4+PC9zcGFuPgpS
ZWZlcmVuY2UgPHNwYW4gaWQ9InJlZmVyZW5jZSIgY2xhc3M9ImNoZWNrYm94Ij48L3NwYW4+Cjwv
ZGl2Pgo8dGFibGUgaWQ9ImNvbnRhaW5lciI+PC90YWJsZT4KPHNjcmlwdD4KCihmdW5jdGlvbiAo
KSB7CiAgICB2YXIgalF1ZXJ5ID0gJ1BlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMv
ZHJvbWFlby93ZWIvbGliL2pxdWVyeS0xLjYuNC5qcyc7CiAgICB2YXIgcGx1Z2lucyA9IFsnUGVy
Zm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LmZsb3QubWluLmpzJywgJ1BlcmZvcm1hbmNl
VGVzdHMvcmVzb3VyY2VzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanMnLAogICAgICAgICdQZXJm
b3JtYW5jZVRlc3RzL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzJ107CiAgICB2YXIgbG9jYWxQYXRo
ID0gJy9Wb2x1bWVzL0RhdGEvd2Via2l0NCc7CiAgICB2YXIgcmVtb3RlUGF0aCA9ICdodHRwczov
L3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rJzsKICAgIHZhciBudW1iZXJP
ZkZhaWx1cmVzID0gMDsKICAgIHZhciBzdGFydGVkTG9hZGluZ1BsdWdpbnMgPSBmYWxzZTsKICAg
IHZhciBudW1iZXJPZkxvYWRlZFBsdWdpbnMgPSAwOwoKICAgIGZ1bmN0aW9uIGxvYWRTY3JpcHQo
c3JjLCBsb2FkZWQsIGZhaWxlZCkgewogICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlOwogICAgICAg
IHNjcmlwdC5zcmMgPSBzcmM7CiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGxvYWRlZDsKICAgICAg
ICBpZiAoZmFpbGVkKQogICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IGZhaWxlZDsKICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICB9CgogICAgZnVuY3Rpb24g
bG9hZFBsdWdpbnModHJ1bmtQYXRoKSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbHVn
aW5zLmxlbmd0aDsgaSsrKQogICAgICAgICAgICBsb2FkU2NyaXB0KHRydW5rUGF0aCArICcvJyAr
IHBsdWdpbnNbaV0sIGxvYWRlZFBsdWdpbiwgY3JlYXRlRmFpbGVkVG9Mb2FkUGx1Z2luKHBsdWdp
bnNbaV0pKTsKICAgIH0KCiAgICBmdW5jdGlvbiBsb2FkZWRQbHVnaW4oKSB7CiAgICAgICAgbnVt
YmVyT2ZMb2FkZWRQbHVnaW5zKys7CiAgICAgICAgaWYgKG51bWJlck9mTG9hZGVkUGx1Z2lucyA9
PSBwbHVnaW5zLmxlbmd0aCkKICAgICAgICAgICAgc2V0VGltZW91dChpbml0LCAwKTsgICAgICAg
ICAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBjcmVhdGVGYWlsZWRUb0xvYWRQbHVnaW4ocGx1Z2lu
KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgYWxlcnQoIkZhaWxlZCB0byBsb2FkICIg
KyBwbHVnaW4pOyB9CiAgICB9CgogICAgZnVuY3Rpb24gY3JlYXRlTG9hZGVkSlF1ZXJ5KHRydW5r
UGF0aCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IGxvYWRQbHVnaW5zKHRydW5rUGF0
aCk7IH0KICAgIH0KCiAgICBsb2FkU2NyaXB0KGxvY2FsUGF0aCArICcvJyArIGpRdWVyeSwKICAg
ICAgICBjcmVhdGVMb2FkZWRKUXVlcnkobG9jYWxQYXRoKSwKICAgICAgICBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgIGxvYWRTY3JpcHQocmVtb3RlUGF0aCArICcvJyArIGpRdWVyeSwKICAgICAg
ICAgICAgICAgIGNyZWF0ZUxvYWRlZEpRdWVyeShyZW1vdGVQYXRoKSwKICAgICAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsgYWxlcnQoIkZhaWxlZCB0byBsb2FkIGpRdWVyeS4iKTsgfSk7CiAgICAg
ICAgfSk7Cn0pKCk7CgpmdW5jdGlvbiBUZXN0UmVzdWx0KG1ldHJpYywgdmFsdWVzLCBhc3NvY2lh
dGVkUnVuKSB7CiAgICBpZiAodmFsdWVzWzBdIGluc3RhbmNlb2YgQXJyYXkpIHsKICAgICAgICB2
YXIgZmxhdHRlbmVkVmFsdWVzID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1
ZXMubGVuZ3RoOyBpKyspCiAgICAgICAgICAgIGZsYXR0ZW5lZFZhbHVlcyA9IGZsYXR0ZW5lZFZh
bHVlcy5jb25jYXQodmFsdWVzW2ldKTsKICAgICAgICB2YWx1ZXMgPSBmbGF0dGVuZWRWYWx1ZXM7
CiAgICB9CgogICAgdGhpcy50ZXN0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbWV0cmljOyB9CiAg
ICB0aGlzLnZhbHVlcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHZhbHVlcy5tYXAoZnVuY3Rpb24g
KHZhbHVlKSB7IHJldHVybiBtZXRyaWMuc2NhbGluZ0ZhY3RvcigpICogdmFsdWU7IH0pOyB9CiAg
ICB0aGlzLnVuc2NhbGVkTWVhbiA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFN0YXRpc3RpY3Muc3Vt
KHZhbHVlcykgLyB2YWx1ZXMubGVuZ3RoOyB9CiAgICB0aGlzLm1lYW4gPSBmdW5jdGlvbiAoKSB7
IHJldHVybiBtZXRyaWMuc2NhbGluZ0ZhY3RvcigpICogdGhpcy51bnNjYWxlZE1lYW4oKTsgfQog
ICAgdGhpcy5taW4gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBtZXRyaWMuc2NhbGluZ0ZhY3Rvcigp
ICogU3RhdGlzdGljcy5taW4odmFsdWVzKTsgfQogICAgdGhpcy5tYXggPSBmdW5jdGlvbiAoKSB7
IHJldHVybiBtZXRyaWMuc2NhbGluZ0ZhY3RvcigpICogU3RhdGlzdGljcy5tYXgodmFsdWVzKTsg
fQogICAgdGhpcy5jb25maWRlbmNlSW50ZXJ2YWxEZWx0YSA9IGZ1bmN0aW9uICgpIHsKICAgICAg
ICByZXR1cm4gbWV0cmljLnNjYWxpbmdGYWN0b3IoKSAqIFN0YXRpc3RpY3MuY29uZmlkZW5jZUlu
dGVydmFsRGVsdGEoMC45NSwgdmFsdWVzLmxlbmd0aCwKICAgICAgICAgICAgU3RhdGlzdGljcy5z
dW0odmFsdWVzKSwgU3RhdGlzdGljcy5zcXVhcmVTdW0odmFsdWVzKSk7CiAgICB9CiAgICB0aGlz
LmNvbmZpZGVuY2VJbnRlcnZhbERlbHRhUmF0aW8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlz
LmNvbmZpZGVuY2VJbnRlcnZhbERlbHRhKCkgLyB0aGlzLm1lYW4oKTsgfQogICAgdGhpcy5wZXJj
ZW50RGlmZmVyZW5jZSA9IGZ1bmN0aW9uKG90aGVyKSB7IHJldHVybiAob3RoZXIudW5zY2FsZWRN
ZWFuKCkgLSB0aGlzLnVuc2NhbGVkTWVhbigpKSAvIHRoaXMudW5zY2FsZWRNZWFuKCk7IH0KICAg
IHRoaXMuaXNTdGF0aXN0aWNhbGx5U2lnbmlmaWNhbnQgPSBmdW5jdGlvbiAob3RoZXIpIHsKICAg
ICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKG90aGVyLm1lYW4oKSAtIHRoaXMubWVhbigpKTsKICAg
ICAgICByZXR1cm4gZGlmZiA+IHRoaXMuY29uZmlkZW5jZUludGVydmFsRGVsdGEoKSAmJiBkaWZm
ID4gb3RoZXIuY29uZmlkZW5jZUludGVydmFsRGVsdGEoKTsKICAgIH0KICAgIHRoaXMucnVuID0g
ZnVuY3Rpb24gKCkgeyByZXR1cm4gYXNzb2NpYXRlZFJ1bjsgfQp9CgpmdW5jdGlvbiBUZXN0UnVu
KGVudHJ5KSB7CiAgICB0aGlzLmRlc2NyaXB0aW9uID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gZW50
cnlbJ2Rlc2NyaXB0aW9uJ107IH0KICAgIHRoaXMud2Via2l0UmV2aXNpb24gPSBmdW5jdGlvbiAo
KSB7IHJldHVybiBlbnRyeVsncmV2aXNpb25zJ11bJ1dlYktpdCddWydyZXZpc2lvbiddOyB9CiAg
ICB0aGlzLmxhYmVsID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBsYWJlbCA9ICdyJyArIHRo
aXMud2Via2l0UmV2aXNpb24oKTsKICAgICAgICBpZiAodGhpcy5kZXNjcmlwdGlvbigpKQogICAg
ICAgICAgICBsYWJlbCArPSAnICZkYXNoOyAnICsgdGhpcy5kZXNjcmlwdGlvbigpOwogICAgICAg
IHJldHVybiBsYWJlbDsKICAgIH0KfQoKZnVuY3Rpb24gUGVyZlRlc3RNZXRyaWMobmFtZSwgbWV0
cmljKSB7CiAgICB2YXIgdGVzdFJlc3VsdHMgPSBbXTsKICAgIHZhciBjYWNoZWRVbml0ID0gbnVs
bDsKICAgIHZhciBjYWNoZWRTY2FsaW5nRmFjdG9yID0gbnVsbDsKICAgIHZhciB1bml0ID0geydG
cmFtZVJhdGUnOiAnZnBzJywgJ1J1bnMnOiAncnVucy9zJywgJ1RpbWUnOiAnbXMnLCAnTWFsbG9j
JzogJ2J5dGVzJywgJ0pTSGVhcCc6ICdieXRlcyd9W21ldHJpY107CgogICAgLy8gV2UgY2FuJ3Qg
ZG8gdGhpcyBpbiBUZXN0UmVzdWx0IGJlY2F1c2UgYWxsIHJlc3VsdHMgZm9yIGVhY2ggdGVzdCBu
ZWVkIHRvIHNoYXJlIHRoZSBzYW1lIHVuaXQgYW5kIHRoZSBzYW1lIHNjYWxpbmcgZmFjdG9yLgog
ICAgZnVuY3Rpb24gY29tcHV0ZVNjYWxpbmdGYWN0b3JJZk5lZWRlZCgpIHsKICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkbid0IGJlIGFkanVzdGluZyB1bml0cyBvbiBldmVyeSB0ZXN0IHJlc3Vs
dC4KICAgICAgICAvLyBXZSBjYW4gb25seSBkbyB0aGlzIG9uIHRoZSBmaXJzdCB0ZXN0LgogICAg
ICAgIGlmICghdGVzdFJlc3VsdHMubGVuZ3RoIHx8IGNhY2hlZFVuaXQpCiAgICAgICAgICAgIHJl
dHVybjsKCiAgICAgICAgdmFyIG1lYW4gPSB0ZXN0UmVzdWx0c1swXS51bnNjYWxlZE1lYW4oKTsg
Ly8gRklYTUU6IFdlIHNob3VsZCBsb29rIGF0IGFsbCB2YWx1ZXMuCiAgICAgICAgdmFyIGtpbG8g
PSB1bml0ID09ICdieXRlcycgPyAxMDI0IDogMTAwMDsKICAgICAgICBpZiAobWVhbiA+IDEwICog
a2lsbyAqIGtpbG8gJiYgdW5pdCAhPSAnbXMnKSB7CiAgICAgICAgICAgIGNhY2hlZFNjYWxpbmdG
YWN0b3IgPSAxIC8ga2lsbyAvIGtpbG87CiAgICAgICAgICAgIGNhY2hlZFVuaXQgPSAnTSAnICsg
dW5pdDsKICAgICAgICB9IGVsc2UgaWYgKG1lYW4gPiAxMCAqIGtpbG8pIHsKICAgICAgICAgICAg
Y2FjaGVkU2NhbGluZ0ZhY3RvciA9IDEgLyBraWxvOwogICAgICAgICAgICBjYWNoZWRVbml0ID0g
dW5pdCA9PSAnbXMnID8gJ3MnIDogKCdLICcgKyB1bml0KTsKICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICBjYWNoZWRTY2FsaW5nRmFjdG9yID0gMTsKICAgICAgICAgICAgY2FjaGVkVW5pdCA9
IHVuaXQ7CiAgICAgICAgfQogICAgfQoKICAgIHRoaXMubmFtZSA9IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIG5hbWUgKyAnOicgKyBtZXRyaWM7IH0KICAgIHRoaXMuaXNNZW1vcnlUZXN0ID0gZnVuY3Rp
b24gKCkgeyByZXR1cm4gbWV0cmljID09ICdKU0hlYXAnIHx8IG1ldHJpYyA9PSAnTWFsbG9jJzsg
fQogICAgdGhpcy5hZGRSZXN1bHQgPSBmdW5jdGlvbiAobmV3UmVzdWx0KSB7CiAgICAgICAgdGVz
dFJlc3VsdHMucHVzaChuZXdSZXN1bHQpOwogICAgICAgIGNhY2hlZFVuaXQgPSBudWxsOwogICAg
ICAgIGNhY2hlZFNjYWxpbmdGYWN0b3IgPSBudWxsOwogICAgfQogICAgdGhpcy5yZXN1bHRzID0g
ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGVzdFJlc3VsdHM7IH0KICAgIHRoaXMuc2NhbGluZ0ZhY3Rv
ciA9IGZ1bmN0aW9uKCkgewogICAgICAgIGNvbXB1dGVTY2FsaW5nRmFjdG9ySWZOZWVkZWQoKTsK
ICAgICAgICByZXR1cm4gY2FjaGVkU2NhbGluZ0ZhY3RvcjsKICAgIH0KICAgIHRoaXMudW5pdCA9
IGZ1bmN0aW9uICgpIHsKICAgICAgICBjb21wdXRlU2NhbGluZ0ZhY3RvcklmTmVlZGVkKCk7CiAg
ICAgICAgcmV0dXJuIGNhY2hlZFVuaXQ7CiAgICB9CiAgICB0aGlzLnNtYWxsZXJJc0JldHRlciA9
IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHVuaXQgPT0gJ21zJyB8fCB1bml0ID09ICdieXRlcyc7IH0K
fQoKdmFyIHBsb3RDb2xvciA9ICdyZ2IoMjMwLDUwLDUwKSc7CnZhciBzdWJwb2ludHNQbG90T3B0
aW9ucyA9IHsKICAgIGxpbmVzOiB7c2hvdzp0cnVlLCBsaW5lV2lkdGg6IDB9LAogICAgY29sb3I6
IHBsb3RDb2xvciwKICAgIHBvaW50czoge3Nob3c6IHRydWUsIHJhZGl1czogMX0sCiAgICBiYXJz
OiB7c2hvdzogZmFsc2V9fTsKCnZhciBtYWluUGxvdE9wdGlvbnMgPSB7CiAgICB4YXhpczogewog
ICAgICAgIG1pbjogLTAuNSwKICAgICAgICB0aWNrU2l6ZTogMSwKICAgIH0sCiAgICBjcm9zc2hh
aXI6IHsgbW9kZTogJ3knIH0sCiAgICBzZXJpZXM6IHsgc2hhZG93U2l6ZTogMCB9LAogICAgYmFy
czoge3Nob3c6IHRydWUsIGFsaWduOiAnY2VudGVyJywgYmFyV2lkdGg6IDAuNX0sCiAgICBsaW5l
czogeyBzaG93OiBmYWxzZSB9LAogICAgcG9pbnRzOiB7IHNob3c6IHRydWUgfSwKICAgIGdyaWQ6
IHsKICAgICAgICBib3JkZXJXaWR0aDogMSwKICAgICAgICBib3JkZXJDb2xvcjogJyNjY2MnLAog
ICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLAogICAgICAgIGhvdmVyYWJsZTogdHJ1ZSwK
ICAgICAgICBhdXRvSGlnaGxpZ2h0OiBmYWxzZSwKICAgIH0KfTsKCnZhciB0aW1lUGxvdE9wdGlv
bnMgPSB7CiAgICB5YXhpczogeyBzaG93OiBmYWxzZSB9LAogICAgeGF4aXM6IHsgc2hvdzogZmFs
c2UgfSwKICAgIGxpbmVzOiB7IHNob3c6IHRydWUgfSwKICAgIGdyaWQ6IHsgYm9yZGVyV2lkdGg6
IDEsIGJvcmRlckNvbG9yOiAnI2NjYycgfSwKICAgIGNvbG9yczogWyBwbG90Q29sb3IgXQp9OwoK
ZnVuY3Rpb24gY3JlYXRlUGxvdChjb250YWluZXIsIHRlc3QpIHsKICAgIHZhciBzZWN0aW9uID0g
JCgnPHNlY3Rpb24+PGRpdiBjbGFzcz0icGxvdCI+PC9kaXY+PGRpdiBjbGFzcz0idGltZS1wbG90
cyI+PC9kaXY+JwogICAgICAgICsgJzxzcGFuIGNsYXNzPSJ0b29sdGlwIj48L3NwYW4+PC9zZWN0
aW9uPicpOwogICAgc2VjdGlvbi5jaGlsZHJlbignLnBsb3QnKS5jc3Moeyd3aWR0aCc6ICgxMDAg
KiB0ZXN0LnJlc3VsdHMoKS5sZW5ndGggKyAyNSkgKyAncHgnLCAnaGVpZ2h0JzogJzMwMHB4J30p
OwogICAgJChjb250YWluZXIpLmFwcGVuZChzZWN0aW9uKTsKCiAgICB2YXIgcGxvdENvbnRhaW5l
ciA9IHNlY3Rpb24uY2hpbGRyZW4oJy5wbG90Jyk7CiAgICB2YXIgbWluSXNaZXJvID0gdHJ1ZTsK
ICAgIGF0dGFjaFBsb3QodGVzdCwgcGxvdENvbnRhaW5lciwgbWluSXNaZXJvKTsKCiAgICBhdHRh
Y2hUaW1lUGxvdHModGVzdCwgc2VjdGlvbi5jaGlsZHJlbignLnRpbWUtcGxvdHMnKSk7CgogICAg
dmFyIHRvb2x0aXAgPSBzZWN0aW9uLmNoaWxkcmVuKCcudG9vbHRpcCcpOwogICAgcGxvdENvbnRh
aW5lci5iaW5kKCdwbG90aG92ZXInLCBmdW5jdGlvbiAoZXZlbnQsIHBvc2l0aW9uLCBpdGVtKSB7
CiAgICAgICAgaWYgKGl0ZW0pIHsKICAgICAgICAgICAgdmFyIHBvc3RmaXggPSBpdGVtLnNlcmll
cy5pZCA/ICcgKCcgKyBpdGVtLnNlcmllcy5pZCArICcpJyA6ICcnOwogICAgICAgICAgICB0b29s
dGlwLmh0bWwoaXRlbS5kYXRhcG9pbnRbMV0udG9QcmVjaXNpb24oNCkgKyBwb3N0Zml4KTsKICAg
ICAgICAgICAgdmFyIHNlY3Rpb25PZmZzZXQgPSAkKHNlY3Rpb24pLm9mZnNldCgpOwogICAgICAg
ICAgICB0b29sdGlwLmNzcyh7bGVmdDogaXRlbS5wYWdlWCAtIHNlY3Rpb25PZmZzZXQubGVmdCAt
IHRvb2x0aXAub3V0ZXJXaWR0aCgpIC8gMiwgdG9wOiBpdGVtLnBhZ2VZIC0gc2VjdGlvbk9mZnNl
dC50b3AgKyAxMH0pOwogICAgICAgICAgICB0b29sdGlwLmZhZGVJbigyMDApOwogICAgICAgIH0g
ZWxzZQogICAgICAgICAgICB0b29sdGlwLmhpZGUoKTsKICAgIH0pOwogICAgcGxvdENvbnRhaW5l
ci5tb3VzZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgdG9vbHRpcC5oaWRlKCk7CiAgICB9KTsK
ICAgIHBsb3RDb250YWluZXIuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKICAgICAgICBtaW5Jc1plcm8gPSAhbWluSXNaZXJvOwogICAgICAg
IGF0dGFjaFBsb3QodGVzdCwgcGxvdENvbnRhaW5lciwgbWluSXNaZXJvKTsKICAgIH0pOwoKICAg
IHJldHVybiBzZWN0aW9uOwp9CgpmdW5jdGlvbiBhdHRhY2hUaW1lUGxvdHModGVzdCwgY29udGFp
bmVyKSB7CiAgICB2YXIgcmVzdWx0cyA9IHRlc3QucmVzdWx0cygpOwogICAgdmFyIGF0dGFjaGVk
UGxvdCA9IGZhbHNlOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsr
KSB7CiAgICAgICAgY29udGFpbmVyLmFwcGVuZCgnPGRpdj48L2Rpdj4nKTsKICAgICAgICB2YXIg
dmFsdWVzID0gcmVzdWx0c1tpXS52YWx1ZXMoKTsKICAgICAgICBpZiAoIXZhbHVlcykKICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgYXR0YWNoZWRQbG90ID0gdHJ1ZTsKCiAgICAgICAgJC5w
bG90KGNvbnRhaW5lci5jaGlsZHJlbigpLmxhc3QoKSwgW3ZhbHVlcy5tYXAoZnVuY3Rpb24gKHZh
bHVlLCBpbmRleCkgeyByZXR1cm4gW2luZGV4LCB2YWx1ZV07IH0pXSwKICAgICAgICAgICAgJC5l
eHRlbmQodHJ1ZSwge30sIHRpbWVQbG90T3B0aW9ucywge3lheGlzOiB7bWluOiBNYXRoLm1pbi5h
cHBseShNYXRoLCB2YWx1ZXMpICogMC45LCBtYXg6IE1hdGgubWF4LmFwcGx5KE1hdGgsIHZhbHVl
cykgKiAxLjF9LAogICAgICAgICAgICAgICAgeGF4aXM6IHttaW46IC0wLjUsIG1heDogdmFsdWVz
Lmxlbmd0aCAtIDAuNX19KSk7CiAgICB9CiAgICBpZiAoIWF0dGFjaGVkUGxvdCkKICAgICAgICBj
b250YWluZXIuY2hpbGRyZW4oKS5yZW1vdmUoKTsKfQoKZnVuY3Rpb24gYXR0YWNoUGxvdCh0ZXN0
LCBwbG90Q29udGFpbmVyLCBtaW5Jc1plcm8pIHsKICAgIHZhciByZXN1bHRzID0gdGVzdC5yZXN1
bHRzKCk7CgogICAgdmFyIHZhbHVlcyA9IHJlc3VsdHMucmVkdWNlKGZ1bmN0aW9uICh2YWx1ZXMs
IHJlc3VsdCwgaW5kZXgpIHsKICAgICAgICB2YXIgbmV3VmFsdWVzID0gcmVzdWx0LnZhbHVlcygp
OwogICAgICAgIHJldHVybiBuZXdWYWx1ZXMgPyB2YWx1ZXMuY29uY2F0KG5ld1ZhbHVlcy5tYXAo
ZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiBbaW5kZXgsIHZhbHVlXTsgfSkpIDogdmFsdWVzOwog
ICAgfSwgW10pOwoKICAgIHZhciBwbG90RGF0YSA9IFskLmV4dGVuZCh0cnVlLCB7fSwgc3VicG9p
bnRzUGxvdE9wdGlvbnMsIHtkYXRhOiB2YWx1ZXN9KV07CiAgICBwbG90RGF0YS5wdXNoKHtpZDog
JyZtdTsnLCBkYXRhOiByZXN1bHRzLm1hcChmdW5jdGlvbiAocmVzdWx0LCBpbmRleCkgeyByZXR1
cm4gW2luZGV4LCByZXN1bHQubWVhbigpXTsgfSksIGNvbG9yOiBwbG90Q29sb3J9KTsKCiAgICB2
YXIgb3ZlcmFsbE1heCA9IFN0YXRpc3RpY3MubWF4KHJlc3VsdHMubWFwKGZ1bmN0aW9uIChyZXN1
bHQsIGluZGV4KSB7IHJldHVybiByZXN1bHQubWF4KCk7IH0pKTsKICAgIHZhciBvdmVyYWxsTWlu
ID0gU3RhdGlzdGljcy5taW4ocmVzdWx0cy5tYXAoZnVuY3Rpb24gKHJlc3VsdCwgaW5kZXgpIHsg
cmV0dXJuIHJlc3VsdC5taW4oKTsgfSkpOwogICAgdmFyIG1hcmdpbiA9IChvdmVyYWxsTWF4IC0g
b3ZlcmFsbE1pbikgKiAwLjE7CiAgICB2YXIgY3VycmVudFBsb3RPcHRpb25zID0gJC5leHRlbmQo
dHJ1ZSwge30sIG1haW5QbG90T3B0aW9ucywge3lheGlzOiB7CiAgICAgICAgbWluOiBtaW5Jc1pl
cm8gPyAwIDogb3ZlcmFsbE1pbiAtIG1hcmdpbiwKICAgICAgICBtYXg6IG1pbklzWmVybyA/IG92
ZXJhbGxNYXggKiAxLjEgOiBvdmVyYWxsTWF4ICsgbWFyZ2lufX0pOwoKICAgIGN1cnJlbnRQbG90
T3B0aW9ucy54YXhpcy5tYXggPSByZXN1bHRzLmxlbmd0aCAtIDAuNTsKICAgIGN1cnJlbnRQbG90
T3B0aW9ucy54YXhpcy50aWNrcyA9IHJlc3VsdHMubWFwKGZ1bmN0aW9uIChyZXN1bHQsIGluZGV4
KSB7IHJldHVybiBbaW5kZXgsIHJlc3VsdC5ydW4oKS5sYWJlbCgpXTsgfSk7CgogICAgJC5wbG90
KHBsb3RDb250YWluZXIsIHBsb3REYXRhLCBjdXJyZW50UGxvdE9wdGlvbnMpOwp9CgpmdW5jdGlv
biB0b0ZpeGVkV2lkdGhQcmVjaXNpb24odmFsdWUpIHsKICAgIHZhciBkZWNpbWFsID0gdmFsdWUu
dG9GaXhlZCgyKTsKICAgIHJldHVybiBkZWNpbWFsOwp9CgpmdW5jdGlvbiBmb3JtYXRQZXJjZW50
YWdlKGZyYWN0aW9uKSB7CiAgICB2YXIgcGVyY2VudGFnZSA9IGZyYWN0aW9uICogMTAwOwogICAg
cmV0dXJuIChmcmFjdGlvbiAqIDEwMCkudG9GaXhlZCgyKSArICclJzsKfQoKZnVuY3Rpb24gY3Jl
YXRlVGFibGUodGVzdHMsIHJ1bnMsIHNob3VsZElnbm9yZU1lbW9yeSwgcmVmZXJlbmNlSW5kZXgp
IHsKICAgICQoJyNjb250YWluZXInKS5odG1sKCc8dGhlYWQ+PHRyPjx0aD5UZXN0PC90aD48dGg+
VW5pdDwvdGg+JyArIHJ1bnMubWFwKGZ1bmN0aW9uIChydW4sIGluZGV4KSB7CiAgICAgICAgcmV0
dXJuICc8dGggY29sc3Bhbj0iJyArIChpbmRleCA9PSByZWZlcmVuY2VJbmRleCA/IDIgOiAzKSAr
ICciIGNsYXNzPSJ7c29ydGVyOiBcJ2NvbXBhcmlzb25cJ30iPicgKyBydW4ubGFiZWwoKSArICc8
L3RoPic7CiAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKG1hcmt1cCwgY2VsbCkgeyByZXR1cm4gbWFy
a3VwICsgY2VsbDsgfSwgJycpICsgJzwvdHI+PC9oZWFkPjx0Ym9keT48L3Rib2R5PicpOwoKICAg
IHZhciB0ZXN0TmFtZXMgPSBbXTsKICAgIGZvciAodGVzdE5hbWUgaW4gdGVzdHMpCiAgICAgICAg
dGVzdE5hbWVzLnB1c2godGVzdE5hbWUpOwoKICAgIHRlc3ROYW1lcy5zb3J0KCkubWFwKGZ1bmN0
aW9uICh0ZXN0TmFtZSkgewogICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbdGVzdE5hbWVdOwogICAg
ICAgIGlmICh0ZXN0LmlzTWVtb3J5VGVzdCgpICE9IHNob3VsZElnbm9yZU1lbW9yeSkKICAgICAg
ICAgICAgY3JlYXRlVGFibGVSb3cocnVucywgdGVzdCwgcmVmZXJlbmNlSW5kZXgpOwogICAgfSk7
CgogICAgJCgnI2NvbnRhaW5lcicpLnRhYmxlc29ydGVyKHt3aWRnZXRzOiBbJ3plYnJhJ119KTsK
fQoKZnVuY3Rpb24gbGluZWFyUmVncmVzc2lvbihwb2ludHMpIHsKICAgIC8vIEltcGxlbWVudCBo
dHRwOi8vd3d3LmVhc3ljYWxjdWxhdGlvbi5jb20vc3RhdGlzdGljcy9sZWFybi1jb3JyZWxhdGlv
bi5waHAuCiAgICAvLyB4ID0gbWFnbml0dWRlCiAgICAvLyB5ID0gaXRlcmF0aW9ucwogICAgdmFy
IHN1bVggPSAwOwogICAgdmFyIHN1bVkgPSAwOwogICAgdmFyIHN1bVhTcXVhcmVkID0gMDsKICAg
IHZhciBzdW1ZU3F1YXJlZCA9IDA7CiAgICB2YXIgc3VtWFRpbWVzWSA9IDA7CgogICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgeCA9IGk7CiAg
ICAgICAgdmFyIHkgPSBwb2ludHNbaV07CiAgICAgICAgc3VtWCArPSB4OwogICAgICAgIHN1bVkg
Kz0geTsKICAgICAgICBzdW1YU3F1YXJlZCArPSB4ICogeDsKICAgICAgICBzdW1ZU3F1YXJlZCAr
PSB5ICogeTsKICAgICAgICBzdW1YVGltZXNZICs9IHggKiB5OwogICAgfQoKICAgIHZhciByID0g
KHBvaW50cy5sZW5ndGggKiBzdW1YVGltZXNZIC0gc3VtWCAqIHN1bVkpIC8KICAgICAgICBNYXRo
LnNxcnQoKHBvaW50cy5sZW5ndGggKiBzdW1YU3F1YXJlZCAtIHN1bVggKiBzdW1YKSAqCiAgICAg
ICAgICAgICAgICAgIChwb2ludHMubGVuZ3RoICogc3VtWVNxdWFyZWQgLSBzdW1ZICogc3VtWSkp
OwoKICAgIGlmIChpc05hTihyKSB8fCByID09IE1hdGguSW5maW5pdHkpCiAgICAgICAgciA9IDA7
CgogICAgdmFyIHNsb3BlID0gKHBvaW50cy5sZW5ndGggKiBzdW1YVGltZXNZIC0gc3VtWCAqIHN1
bVkpIC8gKHBvaW50cy5sZW5ndGggKiBzdW1YU3F1YXJlZCAtIHN1bVggKiBzdW1YKTsKICAgIHZh
ciBpbnRlcmNlcHQgPSBzdW1ZIC8gcG9pbnRzLmxlbmd0aCAtIHNsb3BlICogc3VtWCAvIHBvaW50
cy5sZW5ndGg7CiAgICByZXR1cm4ge3Nsb3BlOiBzbG9wZSwgaW50ZXJjZXB0OiBpbnRlcmNlcHQs
IHJTcXVhcmVkOiByICogcn07Cn0KCnZhciB3YXJuaW5nU2lnbiA9ICc8c3ZnIHZpZXdCb3g9IjAg
MCAxMDAgMTAwIiBzdHlsZT0id2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgdmVydGljYWwtYWxp
Z246IGJvdHRvbTsiIHZlcnNpb249IjEuMSI+JwogICAgKyAnPHBvbHlnb24gZmlsbD0icmVkIiBw
b2ludHM9IjUwLDEwIDkwLDgwIDEwLDgwIDUwLDEwIiBzdHJva2U9InJlZCIgc3Ryb2tlLXdpZHRo
PSIxMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgLz4nCiAgICArICc8cG9seWdvbiBmaWxsPSJ3
aGl0ZSIgcG9pbnRzPSI0NywzMCA0OCwyOSwgNTAsIDI4LjcsIDUyLDI5IDUzLDMwIDUwLDYwIiBz
dHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAv
PicKICAgICsgJzxjaXJjbGUgY3g9IjUwIiBjeT0iNzMiIHI9IjYiIGZpbGw9IndoaXRlIiAvPicK
ICAgICsgJzwvc3ZnPic7CgpmdW5jdGlvbiBjcmVhdGVUYWJsZVJvdyhydW5zLCB0ZXN0LCByZWZl
cmVuY2VJbmRleCkgewogICAgdmFyIHRhYmxlUm93ID0gJCgnPHRyPjx0ZCBjbGFzcz0idGVzdCI+
JyArIHRlc3QubmFtZSgpICsgJzwvdGQ+PHRkIGNsYXNzPSJ1bml0Ij4nICsgdGVzdC51bml0KCkg
KyAnPC90ZD48L3RyPicpOwoKICAgIGZ1bmN0aW9uIG1hcmt1cEZvclJ1bihyZXN1bHQsIHJlZmVy
ZW5jZVJlc3VsdCkgewogICAgICAgIHZhciBjb21wYXJpc29uQ2VsbCA9ICcnOwogICAgICAgIHZh
ciBoaWRkZW5WYWx1ZSA9ICcnOwogICAgICAgIHZhciBzaG91bGRDb21wYXJlID0gcmVzdWx0ICE9
PSByZWZlcmVuY2VSZXN1bHQ7CiAgICAgICAgaWYgKHNob3VsZENvbXBhcmUgJiYgcmVmZXJlbmNl
UmVzdWx0KSB7CiAgICAgICAgICAgIHZhciBwZXJjZW50RGlmZmVyZW5jZSA9IHJlZmVyZW5jZVJl
c3VsdC5wZXJjZW50RGlmZmVyZW5jZShyZXN1bHQpOwogICAgICAgICAgICB2YXIgYmV0dGVyID0g
dGVzdC5zbWFsbGVySXNCZXR0ZXIoKSA/IHBlcmNlbnREaWZmZXJlbmNlIDwgMCA6IHBlcmNlbnRE
aWZmZXJlbmNlID4gMDsKICAgICAgICAgICAgdmFyIGNvbXBhcmlzb24gPSAnJzsKICAgICAgICAg
ICAgdmFyIGNsYXNzTmFtZSA9ICdjb21wYXJpc29uJzsKICAgICAgICAgICAgaWYgKHJlZmVyZW5j
ZVJlc3VsdC5pc1N0YXRpc3RpY2FsbHlTaWduaWZpY2FudChyZXN1bHQpKSB7CiAgICAgICAgICAg
ICAgICBjb21wYXJpc29uID0gZm9ybWF0UGVyY2VudGFnZShNYXRoLmFicyhwZXJjZW50RGlmZmVy
ZW5jZSkpICsgKGJldHRlciA/ICcgQmV0dGVyJyA6ICcgV29yc2UmbmJzcDsnKTsKICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZSArPSBiZXR0ZXIgPyAnIGJldHRlcicgOiAnIHdvcnNlJzsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBoaWRkZW5WYWx1ZSA9ICc8c3BhbiBzdHlsZT0iZGlzcGxheTog
bm9uZSI+fCcgKyBjb21wYXJpc29uICsgJzwvc3Bhbj4nOwogICAgICAgICAgICBjb21wYXJpc29u
Q2VsbCA9ICc8dGQgY2xhc3M9IicgKyBjbGFzc05hbWUgKyAnIj4nICsgY29tcGFyaXNvbiArICc8
L3RkPic7CiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRDb21wYXJlKQogICAgICAgICAgICBjb21w
YXJpc29uQ2VsbCA9ICc8dGQgY2xhc3M9ImNvbXBhcmlzb24iPjwvdGQ+JzsKCiAgICAgICAgdmFy
IHZhbHVlcyA9IHJlc3VsdC52YWx1ZXMoKTsKICAgICAgICB2YXIgd2FybmluZyA9ICcnOwogICAg
ICAgIHZhciByZWdyZXNzaW9uQW5hbHlzaXMgPSAnJzsKICAgICAgICBpZiAodmFsdWVzICYmIHZh
bHVlcy5sZW5ndGggPiAzKSB7CiAgICAgICAgICAgIHJlZ3Jlc3Npb25SZXN1bHQgPSBsaW5lYXJS
ZWdyZXNzaW9uKHZhbHVlcyk7CiAgICAgICAgICAgIHJlZ3Jlc3Npb25BbmFseXNpcyA9ICdzbG9w
ZT0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlZ3Jlc3Npb25SZXN1bHQuc2xvcGUpCiAgICAg
ICAgICAgICAgICArICcsIFJeMj0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlZ3Jlc3Npb25S
ZXN1bHQuclNxdWFyZWQpOwogICAgICAgICAgICBpZiAocmVncmVzc2lvblJlc3VsdC5yU3F1YXJl
ZCA+IDAuNiAmJiBNYXRoLmFicyhyZWdyZXNzaW9uUmVzdWx0LnNsb3BlKSA+IDAuMDEpIHsKICAg
ICAgICAgICAgICAgIHdhcm5pbmcgPSAnIDxzcGFuIGNsYXNzPSJyZWdyZXNzaW9uLXdhcm5pbmci
IHRpdGxlPSJEZXRlY3RlZCBhIHRpbWUgZGVwZW5kZW5jeSB3aXRoICcgKyByZWdyZXNzaW9uQW5h
bHlzaXMgKyAnIj4nICsgd2FybmluZ1NpZ24gKyAnIDwvc3Bhbj4nOwogICAgICAgICAgICB9CiAg
ICAgICAgfQoKICAgICAgICB2YXIgc3RhdGlzdGljcyA9ICcmc2lnbWE7PScgKyB0b0ZpeGVkV2lk
dGhQcmVjaXNpb24ocmVzdWx0LmNvbmZpZGVuY2VJbnRlcnZhbERlbHRhKCkpICsgJywgbWluPScg
KyB0b0ZpeGVkV2lkdGhQcmVjaXNpb24ocmVzdWx0Lm1pbigpKQogICAgICAgICAgICArICcsIG1h
eD0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlc3VsdC5tYXgoKSkgKyAnXG4nICsgcmVncmVz
c2lvbkFuYWx5c2lzOwoKICAgICAgICAvLyBUYWJsZXNvcnRlciBkb2Vzbid0IGtub3cgYWJvdXQg
dGhlIHNlY29uZCBjZWxsIHNvIHB1dCB0aGUgY29tcGFyaXNvbiBpbiB0aGUgaW52aXNpYmxlIGVs
ZW1lbnQuCiAgICAgICAgcmV0dXJuICc8dGQgY2xhc3M9InJlc3VsdCIgdGl0bGU9IicgKyBzdGF0
aXN0aWNzICsgJyI+JyArIHRvRml4ZWRXaWR0aFByZWNpc2lvbihyZXN1bHQubWVhbigpKSArIGhp
ZGRlblZhbHVlCiAgICAgICAgICAgICsgJzwvdGQ+PHRkIGNsYXNzPSJjb25maWRlbmNlSW50ZXJ2
YWxEZWx0YSIgdGl0bGU9IicgKyBzdGF0aXN0aWNzICsgJyI+JnBsdXNtbjsgJwogICAgICAgICAg
ICArIGZvcm1hdFBlcmNlbnRhZ2UocmVzdWx0LmNvbmZpZGVuY2VJbnRlcnZhbERlbHRhUmF0aW8o
KSkgKyB3YXJuaW5nICsgJzwvdGQ+JyArIGNvbXBhcmlzb25DZWxsOwogICAgfQoKICAgIGZ1bmN0
aW9uIG1hcmt1cEZvck1pc3NpbmdSdW4oaXNSZWZlcmVuY2UpIHsKICAgICAgICByZXR1cm4gJzx0
ZCBjb2xzcGFuPSInICsgKGlzUmVmZXJlbmNlID8gMiA6IDMpICsgJyIgY2xhc3M9Im1pc3Npbmci
Pk1pc3Npbmc8L3RkPic7CiAgICB9CgogICAgdmFyIHJ1bkluZGV4ID0gMDsKICAgIHZhciByZXN1
bHRzID0gdGVzdC5yZXN1bHRzKCk7CiAgICB2YXIgcmVmZXJlbmNlUmVzdWx0ID0gdW5kZWZpbmVk
OwogICAgdmFyIHJlc3VsdEluZGV4TWFwID0ge307CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
c3VsdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB3aGlsZSAocnVuc1tydW5JbmRleF0gIT09IHJl
c3VsdHNbaV0ucnVuKCkpCiAgICAgICAgICAgIHJ1bkluZGV4Kys7CiAgICAgICAgaWYgKHJ1bklu
ZGV4ID09IHJlZmVyZW5jZUluZGV4KQogICAgICAgICAgICByZWZlcmVuY2VSZXN1bHQgPSByZXN1
bHRzW2ldOwogICAgICAgIHJlc3VsdEluZGV4TWFwW3J1bkluZGV4XSA9IGk7CiAgICB9CiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJ1bnMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSByZXN1bHRJbmRleE1hcFtpXTsKICAgICAgICBpZiAocmVzdWx0SW5kZXggPT0gdW5k
ZWZpbmVkKQogICAgICAgICAgICB0YWJsZVJvdy5hcHBlbmQobWFya3VwRm9yTWlzc2luZ1J1bihp
ID09IHJlZmVyZW5jZUluZGV4KSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICB0YWJsZVJvdy5h
cHBlbmQobWFya3VwRm9yUnVuKHJlc3VsdHNbcmVzdWx0SW5kZXhdLCByZWZlcmVuY2VSZXN1bHQp
KTsKICAgIH0KCiAgICAkKCcjY29udGFpbmVyJykuY2hpbGRyZW4oJ3Rib2R5JykubGFzdCgpLmFw
cGVuZCh0YWJsZVJvdyk7CgogICAgdGFibGVSb3cuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7CiAg
ICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPSB0YWJsZVJvd1swXSAmJiBldmVudC50YXJnZXQucGFy
ZW50Tm9kZSAhPSB0YWJsZVJvd1swXSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICB2YXIgZmlyc3RDZWxsID0gdGFibGVSb3cuY2hp
bGRyZW4oJ3RkJykuZmlyc3QoKTsKICAgICAgICBpZiAoZmlyc3RDZWxsLmNoaWxkcmVuKCdzZWN0
aW9uJykubGVuZ3RoKSB7CiAgICAgICAgICAgIGZpcnN0Q2VsbC5jaGlsZHJlbignc2VjdGlvbicp
LnJlbW92ZSgpOwogICAgICAgICAgICB0YWJsZVJvdy5jaGlsZHJlbigndGQnKS5jc3MoeydwYWRk
aW5nLWJvdHRvbSc6ICcnfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHBsb3Qg
PSBjcmVhdGVQbG90KGZpcnN0Q2VsbCwgdGVzdCk7CiAgICAgICAgICAgIHBsb3QuY3NzKHsncG9z
aXRpb24nOiAnYWJzb2x1dGUnLCAnei1pbmRleCc6IDJ9KTsKICAgICAgICAgICAgdmFyIG9mZnNl
dCA9IHRhYmxlUm93Lm9mZnNldCgpOwogICAgICAgICAgICBvZmZzZXQubGVmdCArPSAxOwogICAg
ICAgICAgICBvZmZzZXQudG9wICs9IHRhYmxlUm93Lm91dGVySGVpZ2h0KCk7CiAgICAgICAgICAg
IHBsb3Qub2Zmc2V0KG9mZnNldCk7CiAgICAgICAgICAgIHRhYmxlUm93LmNoaWxkcmVuKCd0ZCcp
LmNzcyh7J3BhZGRpbmctYm90dG9tJzogcGxvdC5vdXRlckhlaWdodCgpICsgNX0pOwogICAgICAg
IH0KCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7Cn0KCmZ1bmN0aW9uIGluaXQoKSB7CiAg
ICAkLnRhYmxlc29ydGVyLmFkZFBhcnNlcih7CiAgICAgICAgaWQ6ICdjb21wYXJpc29uJywKICAg
ICAgICBpczogZnVuY3Rpb24ocykgewogICAgICAgICAgICByZXR1cm4gcy5pbmRleE9mKCd8Jykg
Pj0gMDsKICAgICAgICB9LAogICAgICAgIGZvcm1hdDogZnVuY3Rpb24ocykgewogICAgICAgICAg
ICB2YXIgcGFyc2VkID0gcGFyc2VGbG9hdChzLnN1YnN0cmluZyhzLmluZGV4T2YoJ3wnKSArIDEp
KTsKICAgICAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkOwogICAgICAg
IH0sCiAgICAgICAgdHlwZTogJ251bWVyaWMnLAogICAgfSk7CgogICAgdmFyIHJ1bnMgPSBbXTsK
ICAgIHZhciBtZXRyaWNzID0ge307CiAgICAkLmVhY2goSlNPTi5wYXJzZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnanNvbicpLnRleHRDb250ZW50KSwgZnVuY3Rpb24gKGluZGV4LCBlbnRyeSkg
ewogICAgICAgIHZhciBydW4gPSBuZXcgVGVzdFJ1bihlbnRyeSk7CiAgICAgICAgcnVucy5wdXNo
KHJ1bik7CgogICAgICAgIGZ1bmN0aW9uIGFkZFRlc3RzKHRlc3RzLCBwYXJlbnRGdWxsTmFtZSkg
ewogICAgICAgICAgICBmb3IgKHZhciB0ZXN0TmFtZSBpbiB0ZXN0cykgewogICAgICAgICAgICAg
ICAgdmFyIGZ1bGxUZXN0TmFtZSA9IHBhcmVudEZ1bGxOYW1lICsgJy8nICsgdGVzdE5hbWU7CiAg
ICAgICAgICAgICAgICB2YXIgcmF3TWV0cmljcyA9IHRlc3RzW3Rlc3ROYW1lXS5tZXRyaWNzOwoK
ICAgICAgICAgICAgICAgIGZvciAodmFyIG1ldHJpY05hbWUgaW4gcmF3TWV0cmljcykgewogICAg
ICAgICAgICAgICAgICAgIHZhciBmdWxsTWV0cmljTmFtZSA9IGZ1bGxUZXN0TmFtZSArICc6JyAr
IG1ldHJpY05hbWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIG1ldHJpYyA9IG1ldHJpY3NbZnVs
bE1ldHJpY05hbWVdOwogICAgICAgICAgICAgICAgICAgIGlmICghbWV0cmljKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIG1ldHJpYyA9IG5ldyBQZXJmVGVzdE1ldHJpYyhmdWxsVGVzdE5hbWUs
IG1ldHJpY05hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzW2Z1bGxNZXRyaWNO
YW1lXSA9IG1ldHJpYzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
bWV0cmljLmFkZFJlc3VsdChuZXcgVGVzdFJlc3VsdChtZXRyaWMsIHJhd01ldHJpY3NbbWV0cmlj
TmFtZV0uY3VycmVudCwgcnVuKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
aWYgKHRlc3RzW3Rlc3ROYW1lXS50ZXN0cykKICAgICAgICAgICAgICAgICAgICBhZGRUZXN0cyh0
ZXN0c1t0ZXN0TmFtZV0udGVzdHMsIGZ1bGxUZXN0TmFtZSk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIGFkZFRlc3RzKGVudHJ5LnRlc3RzLCAnJyk7CiAgICB9KTsKCiAgICB2YXIg
c2hvdWxkSWdub3JlTWVtb3J5PSB0cnVlOwogICAgdmFyIHJlZmVyZW5jZUluZGV4ID0gMDsKCiAg
ICBjcmVhdGVUYWJsZShtZXRyaWNzLCBydW5zLCBzaG91bGRJZ25vcmVNZW1vcnksIHJlZmVyZW5j
ZUluZGV4KTsKCiAgICAkKCcjdGltZS1tZW1vcnknKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAo
ZXZlbnQsIGNoZWNrZWRFbGVtZW50KSB7CiAgICAgICAgc2hvdWxkSWdub3JlTWVtb3J5ID0gY2hl
Y2tlZEVsZW1lbnQudGV4dENvbnRlbnQgPT0gJ1RpbWUnOwogICAgICAgIGNyZWF0ZVRhYmxlKG1l
dHJpY3MsIHJ1bnMsIHNob3VsZElnbm9yZU1lbW9yeSwgcmVmZXJlbmNlSW5kZXgpOwogICAgfSk7
CgogICAgcnVucy5tYXAoZnVuY3Rpb24gKHJ1biwgaW5kZXgpIHsKICAgICAgICAkKCcjcmVmZXJl
bmNlJykuYXBwZW5kKCc8c3BhbiB2YWx1ZT0iJyArIGluZGV4ICsgJyInICsgKGluZGV4ID09IHJl
ZmVyZW5jZUluZGV4ID8gJyBjbGFzcz0iY2hlY2tlZCInIDogJycpICsgJz4nICsgcnVuLmxhYmVs
KCkgKyAnPC9zcGFuPicpOwogICAgfSkKCiAgICAkKCcjcmVmZXJlbmNlJykuYmluZCgnY2hhbmdl
JywgZnVuY3Rpb24gKGV2ZW50LCBjaGVja2VkRWxlbWVudCkgewogICAgICAgIHJlZmVyZW5jZUlu
ZGV4ID0gcGFyc2VJbnQoY2hlY2tlZEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKTsKICAg
ICAgICBjcmVhdGVUYWJsZShtZXRyaWNzLCBydW5zLCBzaG91bGRJZ25vcmVNZW1vcnksIHJlZmVy
ZW5jZUluZGV4KTsKICAgIH0pOwoKICAgICQoJy5jaGVja2JveCcpLmVhY2goZnVuY3Rpb24gKGlu
ZGV4LCBjaGVja2JveCkgewogICAgICAgICQoY2hlY2tib3gpLmNoaWxkcmVuKCdzcGFuJykuY2xp
Y2soZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdj
aGVja2VkJykpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICQoY2hlY2tib3gp
LmNoaWxkcmVuKCdzcGFuJykucmVtb3ZlQ2xhc3MoJ2NoZWNrZWQnKTsKICAgICAgICAgICAgJCh0
aGlzKS5hZGRDbGFzcygnY2hlY2tlZCcpOwogICAgICAgICAgICAkKGNoZWNrYm94KS50cmlnZ2Vy
KCdjaGFuZ2UnLCAkKHRoaXMpKTsKICAgICAgICB9KTsKICAgIH0pOwp9Cgo8L3NjcmlwdD4KPHNj
cmlwdCBpZD0ianNvbiIgdHlwZT0iYXBwbGljYXRpb24vanNvbiI+W3sidGVzdHMiOiB7IlBhcnNl
ciI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3Jt
YW5jZVRlc3RzL1BhcnNlciIsICJ0ZXN0cyI6IHsiaHRtbDUtZnVsbC1yZW5kZXIiOiB7InVybCI6
ICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9Q
YXJzZXIvaHRtbDUtZnVsbC1yZW5kZXIuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxsb2MiOiB7ImN1
cnJlbnQiOiBbWzEyMzgzODA2NC4wLCAxMTY4ODk3OTIuMCwgMTEzNDI4MjQ4LjAsIDExNjcxOTEy
OC4wLCAxMTMyMzc3MTIuMF0sIFsxMTY0OTg0NzIuMCwgMTE2NzY5NDQ4LjAsIDExMzg2OTc5Mi4w
LCAxMTMxMjQ4NzIuMCwgMTEzMTI5ODQ4LjBdLCBbMTI1NjI5Nzc2LjAsIDExNzQ5NTAwMC4wLCAx
MTM3NDUxODQuMCwgMTEzNTQwNjE2LjAsIDExMzQ3NjAxNi4wXSwgWzExNjQ0ODIyNC4wLCAxMTU2
Njg5NTIuMCwgMTEzNDg3NDA4LjAsIDExNTczNDQwOC4wLCAxMTMwOTM0MzIuMF1dfSwgIkpTSGVh
cCI6IHsiY3VycmVudCI6IFtbNzE5NTIuMCwgNzkyMTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3
NTIuMF0sIFs3MTk1Mi4wLCA3OTIxNi4wLCA4NDIwOC4wLCA4OTI3Mi4wLCA5Njc1Mi4wXSwgWzcx
OTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBdLCBbNzE5NTIuMCwgNzky
MTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF1dfSwgIlRpbWUiOiB7ImN1cnJlbnQiOiBb
WzQyNjYuMCwgNDgyNi4wLCA0MjM5LjAsIDQ4MzQuMCwgNDIyMC4wXSwgWzQyNDMuMCwgNDgxMi4w
LCA0MjQ1LjAsIDQ4MTIuMCwgNDIzMC4wXSwgWzQyNTMuMCwgNDc5OC4wLCA0MjUzLjAsIDQ3OTYu
MCwgNDIwMC4wXSwgWzQyMzEuMCwgNDc3OS4wLCA0MjIxLjAsIDQ3NzYuMCwgNDIxNS4wXV19fX19
fSwgIkxheW91dCI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVu
ay9QZXJmb3JtYW5jZVRlc3RzL0xheW91dCIsICJ0ZXN0cyI6IHsiQXJhYmljTGluZUxheW91dCI6
IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5j
ZVRlc3RzL0xheW91dC9BcmFiaWNMaW5lTGF5b3V0Lmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9j
IjogeyJjdXJyZW50IjogW1sxNTc3NTg0LjAsIDE1NjQ0ODAuMCwgMTU2NDY5Ni4wLCAxNTY1Mjk2
LjAsIDE1NjY3MjguMF0sIFsxNTc3NTg0LjAsIDE1NjM3MjguMCwgMTU2ODY5Ni4wLCAxNTY5Mjk2
LjAsIDE1NzA3MjguMF0sIFsxNTc3NTg0LjAsIDE1NjM3MjguMCwgMTU2ODY5Ni4wLCAxNTY5MzM2
LjAsIDE1NjY1MjAuMF0sIFsxNTc3NTg0LjAsIDE1NjM2NzIuMCwgMTU2ODY0MC4wLCAxNTY1MTQ0
LjAsIDE1NjI1NDQuMF1dfSwgIlJ1bnMiOiB7ImN1cnJlbnQiOiBbWzIuNjQ5MDA2NjIyNTE2NTU2
NSwgMi42NzE0MTU4NTA0MDA3MTIsIDIuNjQ1NTAyNjQ1NTAyNjQ1NiwgMi42MzE1Nzg5NDczNjg0
MjEyLCAyLjY2MzExNTg0NTUzOTI4MV0sIFsyLjY1OTU3NDQ2ODA4NTEwNjMsIDIuNjQ5MDA2NjIy
NTE2NTU2NSwgMi43MDUxMzk3NjU1NTQ1NTM1LCAyLjcwMjcwMjcwMjcwMjcwMjYsIDIuNzEwMDI3
MTAwMjcxMDAzXSwgWzIuNjY2NjY2NjY2NjY2NjY2NSwgMi42NTYwNDI0OTY2Nzk5NDY3LCAyLjY3
Mzc5Njc5MTQ0Mzg1MDMsIDIuNjY2NjY2NjY2NjY2NjY2NSwgMi42NzM3OTY3OTE0NDM4NTAzXSwg
WzIuNjQ1NTAyNjQ1NTAyNjQ1NiwgMi42NDU1MDI2NDU1MDI2NDU2LCAyLjY4MzM2MzE0ODQ3OTQy
NzQsIDIuNjg4MTcyMDQzMDEwNzUyNSwgMi42ODA5NjUxNDc0NTMwODNdXX0sICJKU0hlYXAiOiB7
ImN1cnJlbnQiOiBbWzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBd
LCBbNTg5NDQuMCwgNjEzMjAuMCwgNjEzOTIuMCwgNjE1NTIuMCwgNjE2MjQuMF0sIFs1ODk0NC4w
LCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAsIDYxMzIwLjAs
IDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBdXX19fSwgIkxpbmVMYXlvdXRKYXBhbmVzZSI6IHsi
dXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5jZVRl
c3RzL0xheW91dC9MaW5lTGF5b3V0SmFwYW5lc2UuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxsb2Mi
OiB7ImN1cnJlbnQiOiBbWzE1OTY5NzYuMCwgMTU3Mzc3Ni4wLCAxNTY5NzM2LjAsIDE1NzExNjgu
MCwgMTU3MTIyNC4wXSwgWzE1OTI4ODAuMCwgMTU2OTY4MC4wLCAxNTY5NzM2LjAsIDE1NzExMTIu
MCwgMTU3MTE2OC4wXSwgWzE1OTI4ODAuMCwgMTU2OTY4MC4wLCAxNTY5NzM2LjAsIDE1NzExNjgu
MCwgMTU3MTE2OC4wXSwgWzE1OTI4ODAuMCwgMTU2OTYyNC4wLCAxNTY5NjgwLjAsIDE1NzExMTIu
MCwgMTU3MTE2OC4wXV19LCAiUnVucyI6IHsiY3VycmVudCI6IFtbNjIuNDIxOTcyNTM0MzMyMDg1
LCA2Mi43MzUyNTcyMTQ1NTQ1OCwgNjIuMTExODAxMjQyMjM2MDMsIDYyLjE4OTA1NDcyNjM2ODE2
LCA2Mi4wMzQ3Mzk0NTQwOTQyOV0sIFs2Mi4zNDQxMzk2NTA4NzI4MiwgNjIuNDIxOTcyNTM0MzMy
MDg1LCA2Mi4yNjY1MDA2MjI2NjUwMDYsIDYyLjM0NDEzOTY1MDg3MjgyLCA2Mi4xMTE4MDEyNDIy
MzYwM10sIFs2Mi42NTY2NDE2MDQwMTAwMywgNjIuODE0MDcwMzUxNzU4Nzk0LCA2My4yMTExMjUx
NTgwMjc4MSwgNjIuOTcyMjkyMTkxNDM1NzcsIDYyLjk3MjI5MjE5MTQzNTc3XSwgWzYyLjE4OTA1
NDcyNjM2ODE2LCA2Mi4xODkwNTQ3MjYzNjgxNiwgNjIuMzQ0MTM5NjUwODcyODIsIDYyLjU3ODIy
Mjc3ODQ3MzA5LCA2Mi42NTY2NDE2MDQwMTAwM11dfSwgIkpTSGVhcCI6IHsiY3VycmVudCI6IFtb
NTkyODguMCwgNjE2NjQuMCwgNjE3MzYuMCwgNjE4OTYuMCwgNjE5NjguMF0sIFs1OTI4OC4wLCA2
MTY2NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2OC4wXSwgWzU5Mjg4LjAsIDYxNjY0LjAsIDYx
NzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdLCBbNTkyODguMCwgNjE2NjQuMCwgNjE3MzYuMCwgNjE4
OTYuMCwgNjE5NjguMF1dfX19fX19LCAicmV2aXNpb25zIjogeyJXZWJLaXQiOiB7InRpbWVzdGFt
cCI6ICIyMDEzLTA2LTA2VDA1OjAxOjQ2LjY2NjI3OVoiLCAicmV2aXNpb24iOiAiMTUxMjYwIn19
LCAiYnVpbGRUaW1lIjogIjIwMTMtMDYtMDdUMDI6NDE6NDMuNTAwNjM2IiwgImRlc2NyaXB0aW9u
IjogIlVucGF0Y2hlZCJ9LCB7InRlc3RzIjogeyJQYXJzZXIiOiB7InVybCI6ICJodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIiLCAidGVz
dHMiOiB7Imh0bWw1LWZ1bGwtcmVuZGVyIjogeyJ1cmwiOiAiaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9icm93c2VyL3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvUGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVy
Lmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9jIjogeyJjdXJyZW50IjogW1sxMTY2MDM5MjAuMCwg
MTE1NTMxODAwLjAsIDExNjIzMjY4MC4wLCAxMTYyMjQ4ODAuMCwgMTEzMTE3NTc2LjBdLCBbMTE2
NjEyODU2LjAsIDExNTk5MjIzMi4wLCAxMTMzODg0MjQuMCwgMTEzMjkxODU2LjAsIDExNTYzMDk4
NC4wXSwgWzEyMzA2MDA1Ni4wLCAxMTU3NTAxNDQuMCwgMTE1ODM1MDY0LjAsIDExNTcyMTEyOC4w
LCAxMTU1NDMzNDQuMF0sIFsxMTY2MTE5OTIuMCwgMTE2NTk5MDgwLjAsIDExNjY0MDg2NC4wLCAx
MTY0NTY3OTIuMCwgMTEzOTg2OTI4LjBdXX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBbWzcxOTUy
LjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBdLCBbNzE5NTIuMCwgNzkyMTYu
MCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF0sIFs3MTk1Mi4wLCA3OTIxNi4wLCA4NDIwOC4w
LCA4OTI3Mi4wLCA5Njc1Mi4wXSwgWzcxOTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAs
IDk2NzUyLjBdXX0sICJUaW1lIjogeyJjdXJyZW50IjogW1s0MjY4LjAsIDQ4MjUuMCwgNDI1Mi4w
LCA0ODMwLjAsIDQyNDAuMF0sIFs0MjY3LjAsIDQ4MjkuMCwgNDI1OS4wLCA0ODAzLjAsIDQyMjAu
MF0sIFs0Mjg2LjAsIDQ4NjEuMCwgNDI2NS4wLCA0ODU2LjAsIDQyODUuMF0sIFs0MjUwLjAsIDQ4
MTcuMCwgNDI3OC4wLCA0ODYyLjAsIDQyNjUuMF1dfX19fX0sICJMYXlvdXQiOiB7InVybCI6ICJo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9MYXlv
dXQiLCAidGVzdHMiOiB7IkFyYWJpY0xpbmVMYXlvdXQiOiB7InVybCI6ICJodHRwOi8vdHJhYy53
ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvQXJhYmljTGlu
ZUxheW91dC5odG1sIiwgIm1ldHJpY3MiOiB7Ik1hbGxvYyI6IHsiY3VycmVudCI6IFtbMTU4MTY5
Ni4wLCAxNTY3ODQwLjAsIDE1NzI4MDguMCwgMTU2OTM3Ni4wLCAxNTY2NjU2LjBdLCBbMTU4MTY5
Ni4wLCAxNTcyNjg4LjAsIDE1NzI5MDQuMCwgMTU3MzUwNC4wLCAxNTc0OTM2LjBdLCBbMTU4MTYw
MC4wLCAxNTcyNzUyLjAsIDE1NjkzMjAuMCwgMTU2NTI4MC4wLCAxNTY2NjU2LjBdLCBbMTU4MTY5
Ni4wLCAxNTY3ODQwLjAsIDE1NzI5MDQuMCwgMTU3MzUwNC4wLCAxNTc0OTM2LjBdXX0sICJSdW5z
IjogeyJjdXJyZW50IjogW1syLjY0NTUwMjY0NTUwMjY0NTYsIDIuNjQyMDA3OTI2MDIzNzc4LCAy
LjY5MDU4Mjk1OTY0MTI1NiwgMi42OTI5OTgyMDQ2Njc4NjM4LCAyLjY5MDU4Mjk1OTY0MTI1Nl0s
IFsyLjY1OTU3NDQ2ODA4NTEwNjMsIDIuNjg1NzY1NDQzMTUxMjk4MywgMi42NTYwNDI0OTY2Nzk5
NDY3LCAyLjY0OTAwNjYyMjUxNjU1NjUsIDIuNjM1MDQ2MTEzMzA2OTgzXSwgWzIuNzAyNzAyNzAy
NzAyNzAyNiwgMi43MDAyNzAwMjcwMDI3MDAyLCAyLjY4MzM2MzE0ODQ3OTQyNzQsIDIuNjkyOTk4
MjA0NjY3ODYzOCwgMi42OTI5OTgyMDQ2Njc4NjM4XSwgWzIuNjQ5MDA2NjIyNTE2NTU2NSwgMi42
MzUwNDYxMTMzMDY5ODMsIDIuNjI0NjcxOTE2MDEwNDk4OCwgMi42Mzg1MjI0Mjc0NDA2MzMsIDIu
NjQyMDA3OTI2MDIzNzc4XV19LCAiSlNIZWFwIjogeyJjdXJyZW50IjogW1s1ODk0NC4wLCA2MTMy
MC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzky
LjAsIDYxNTUyLjAsIDYxNjI0LjBdLCBbNTg5NDQuMCwgNjEzMjAuMCwgNjEzOTIuMCwgNjE1NTIu
MCwgNjE2MjQuMF0sIFs1ODk0NC4wLCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4w
XV19fX0sICJMaW5lTGF5b3V0SmFwYW5lc2UiOiB7InVybCI6ICJodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvTGluZUxheW91dEphcGFu
ZXNlLmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9jIjogeyJjdXJyZW50IjogW1sxNTk2OTkyLjAs
IDE1NzM3OTIuMCwgMTU3Mzc5Mi4wLCAxNTc1MTY4LjAsIDE1NzUyMjQuMF0sIFsxNTk2OTkyLjAs
IDE1NzM3OTIuMCwgMTU3Mzg0OC4wLCAxNTc1MjgwLjAsIDE1NzUyODAuMF0sIFsxNTk2OTkyLjAs
IDE1NzM3MzYuMCwgMTU3MzczNi4wLCAxNTc1MTY4LjAsIDE1NzUxNjguMF0sIFsxNTk2OTkyLjAs
IDE1NzM3OTIuMCwgMTU3Mzg0OC4wLCAxNTc1MjgwLjAsIDE1NzUyODAuMF1dfSwgIlJ1bnMiOiB7
ImN1cnJlbnQiOiBbWzYxLjcyODM5NTA2MTcyODM5LCA2MS45NTc4Njg2NDkzMTg0NiwgNjEuNzI4
Mzk1MDYxNzI4MzksIDYxLjk1Nzg2ODY0OTMxODQ2LCA2Mi4xMTE4MDEyNDIyMzYwM10sIFs2MS41
NzYzNTQ2Nzk4MDI5NTQsIDYxLjQyNTA2MTQyNTA2MTQyLCA2MS44MDQ2OTcxNTY5ODM5MzQsIDYx
LjY1MjI4MTEzNDQwMTk3NCwgNjEuNTc2MzU0Njc5ODAyOTU0XSwgWzYxLjI3NDUwOTgwMzkyMTU3
LCA2MS4yNzQ1MDk4MDM5MjE1NywgNjEuMjc0NTA5ODAzOTIxNTcsIDYxLjQyNTA2MTQyNTA2MTQy
LCA2MS4yNzQ1MDk4MDM5MjE1N10sIFs2Mi4xODkwNTQ3MjYzNjgxNiwgNjIuMjY2NTAwNjIyNjY1
MDA2LCA2Mi40MjE5NzI1MzQzMzIwODUsIDYyLjM0NDEzOTY1MDg3MjgyLCA2Mi40MjE5NzI1MzQz
MzIwODVdXX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBbWzU5Mjg4LjAsIDYxNjY0LjAsIDYxNzM2
LjAsIDYxODk2LjAsIDYxOTY4LjBdLCBbNTkyODguMCwgNjE2NjQuMCwgNjE3MzYuMCwgNjE4OTYu
MCwgNjE5NjguMF0sIFs1OTI4OC4wLCA2MTY2NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2OC4w
XSwgWzU5Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdXX19fX19fSwg
InJldmlzaW9ucyI6IHsiV2ViS2l0IjogeyJ0aW1lc3RhbXAiOiAiMjAxMy0wNi0wNlQwNTowMTo0
Ni42NjYyNzlaIiwgInJldmlzaW9uIjogIjE1MTI2MCJ9fSwgImJ1aWxkVGltZSI6ICIyMDEzLTA2
LTA3VDAyOjQ4OjEwLjUyMzQ4NyIsICJkZXNjcmlwdGlvbiI6ICJQYXRjaGVkIn0sIHsidGVzdHMi
OiB7IlBhcnNlciI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVu
ay9QZXJmb3JtYW5jZVRlc3RzL1BhcnNlciIsICJ0ZXN0cyI6IHsiaHRtbDUtZnVsbC1yZW5kZXIi
OiB7InVybCI6ICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFu
Y2VUZXN0cy9QYXJzZXIvaHRtbDUtZnVsbC1yZW5kZXIuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxs
b2MiOiB7ImN1cnJlbnQiOiBbWzEyMzAwMzg1Ni4wLCAxMTUzNDAxMTIuMCwgMTEzNjcxMDgwLjAs
IDExNTExNzA4OC4wLCAxMTU2MzM0MjQuMF0sIFsxMjQwNTg3NjAuMCwgMTE1NTczMDcyLjAsIDEx
MzM3NjkyMC4wLCAxMTU1NzM3MTIuMCwgMTE1NTI2MzM2LjBdLCBbMTE1NjE3OTI4LjAsIDExNTEy
NzYwMC4wLCAxMTUzMzE2ODAuMCwgMTE1NTAxNjg4LjAsIDExNTAzMzMyOC4wXSwgWzEyMzc5NDMy
MC4wLCAxMTY0MzY3NzYuMCwgMTEzNTY1NDk2LjAsIDExNjY0ODI0MC4wLCAxMTY2MTMyNzIuMF1d
fSwgIkpTSGVhcCI6IHsiY3VycmVudCI6IFtbNzE5NTIuMCwgNzkyMTYuMCwgODQyMDguMCwgODky
NzIuMCwgOTY3NTIuMF0sIFs3MTk1Mi4wLCA3OTIxNi4wLCA4NDIwOC4wLCA4OTI3Mi4wLCA5Njc1
Mi4wXSwgWzcxOTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBdLCBbNzE5
NTIuMCwgNzkyMTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF1dfSwgIlRpbWUiOiB7ImN1
cnJlbnQiOiBbWzQyMzUuMCwgNDgzMC4wLCA0MjQwLjAsIDQ4MzEuMCwgNDIzNi4wXSwgWzQxOTYu
MCwgNDgwNy4wLCA0MjE5LjAsIDQ4MDguMCwgNDIzNi4wXSwgWzQyNTQuMCwgNDc4OC4wLCA0MTg5
LjAsIDQ3NzcuMCwgNDIzMy4wXSwgWzQyMDEuMCwgNDgyNC4wLCA0MjE3LjAsIDQ4MTAuMCwgNDIx
Mi4wXV19fX19fSwgIkxheW91dCI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJv
d3Nlci90cnVuay9QZXJmb3JtYW5jZVRlc3RzL0xheW91dCIsICJ0ZXN0cyI6IHsiQXJhYmljTGlu
ZUxheW91dCI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9Q
ZXJmb3JtYW5jZVRlc3RzL0xheW91dC9BcmFiaWNMaW5lTGF5b3V0Lmh0bWwiLCAibWV0cmljcyI6
IHsiTWFsbG9jIjogeyJjdXJyZW50IjogW1sxNTczNTUyLjAsIDE1NTk2OTYuMCwgMTU2NDc2MC4w
LCAxNTY1MzYwLjAsIDE1NjY3MzYuMF0sIFsxNTc3NDg4LjAsIDE1Njg2NzIuMCwgMTU2ODc5Mi4w
LCAxNTY1Mjk2LjAsIDE1NjY2NzIuMF0sIFsxNTgxNjgwLjAsIDE1NzI2NzIuMCwgMTU2ODc5Mi4w
LCAxNTY5MzkyLjAsIDE1NjY3MjguMF0sIFsxNTc3NDg4LjAsIDE1NjQ0ODguMCwgMTU2NTE4NC4w
LCAxNTY1MTQ0LjAsIDE1NjY1NzYuMF1dfSwgIlJ1bnMiOiB7ImN1cnJlbnQiOiBbWzIuNjMxNTc4
OTQ3MzY4NDIxMiwgMi42MjQ2NzE5MTYwMTA0OTg4LCAyLjYxNDM3OTA4NDk2NzMyMDMsIDIuNjAw
NzgwMjM0MDcwMjIxLCAyLjYyNDY3MTkxNjAxMDQ5ODhdLCBbMi42NzYxODE5ODAzNzQ2NjU2LCAy
LjY1MjUxOTg5Mzg5OTIwNDMsIDIuNjYzMTE1ODQ1NTM5MjgxLCAyLjY1NjA0MjQ5NjY3OTk0Njcs
IDIuNjUyNTE5ODkzODk5MjA0M10sIFsyLjY1OTU3NDQ2ODA4NTEwNjMsIDIuNjgwOTY1MTQ3NDUz
MDgzLCAyLjYyNDY3MTkxNjAxMDQ5ODgsIDIuNjEwOTY2MDU3NDQxMjUzNCwgMi42MTc4MDEwNDcx
MjA0MTg3XSwgWzIuNjgzMzYzMTQ4NDc5NDI3NCwgMi42ODMzNjMxNDg0Nzk0Mjc0LCAyLjY2MzEx
NTg0NTUzOTI4MSwgMi42NzM3OTY3OTE0NDM4NTAzLCAyLjY3NjE4MTk4MDM3NDY2NTZdXX0sICJK
U0hlYXAiOiB7ImN1cnJlbnQiOiBbWzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzkyLjAsIDYxNTUyLjAs
IDYxNjI0LjBdLCBbNTg5NDQuMCwgNjEzMjAuMCwgNjEzOTIuMCwgNjE1NTIuMCwgNjE2MjQuMF0s
IFs1ODk0NC4wLCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAs
IDYxMzIwLjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBdXX19fSwgIkxpbmVMYXlvdXRKYXBh
bmVzZSI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJm
b3JtYW5jZVRlc3RzL0xheW91dC9MaW5lTGF5b3V0SmFwYW5lc2UuaHRtbCIsICJtZXRyaWNzIjog
eyJNYWxsb2MiOiB7ImN1cnJlbnQiOiBbWzE1OTI4ODAuMCwgMTU2OTYyNC4wLCAxNTY5NjgwLjAs
IDE1Njk2ODAuMCwgMTU3MTExMi4wXSwgWzE1OTI4ODAuMCwgMTU2OTY4MC4wLCAxNTY5NzM2LjAs
IDE1NzExNjguMCwgMTU3MTIwOC4wXSwgWzE1OTI4ODAuMCwgMTU2OTY4MC4wLCAxNTY5NzM2LjAs
IDE1NzExNjguMCwgMTU3MTIwOC4wXSwgWzE1OTI4ODAuMCwgMTU2OTY4MC4wLCAxNTY5NzM2LjAs
IDE1NzExNTIuMCwgMTU3MTIwOC4wXV19LCAiUnVucyI6IHsiY3VycmVudCI6IFtbNTAuOTU1NDE0
MDEyNzM4ODU2LCA1MC45NTU0MTQwMTI3Mzg4NTYsIDUxLjAyMDQwODE2MzI2NTMxLCA1MS4wMjA0
MDgxNjMyNjUzMSwgNTAuODkwNTg1MjQxNzMwMjhdLCBbNjIuNzM1MjU3MjE0NTU0NTgsIDYyLjU3
ODIyMjc3ODQ3MzA5LCA2Mi4zNDQxMzk2NTA4NzI4MiwgNjIuNjU2NjQxNjA0MDEwMDMsIDYyLjVd
LCBbNjIuODkzMDgxNzYxMDA2Mjg2LCA2Mi44MTQwNzAzNTE3NTg3OTQsIDYyLjU3ODIyMjc3ODQ3
MzA5LCA2Mi43MzUyNTcyMTQ1NTQ1OCwgNjIuNV0sIFs2Mi4xMTE4MDEyNDIyMzYwMywgNjIuMjY2
NTAwNjIyNjY1MDA2LCA2Mi4xODkwNTQ3MjYzNjgxNiwgNjIuNSwgNjIuMDM0NzM5NDU0MDk0Mjld
XX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBbWzU5Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYx
ODk2LjAsIDYxOTY4LjBdLCBbNTkyODguMCwgNjE2NjQuMCwgNjE3MzYuMCwgNjE4OTYuMCwgNjE5
NjguMF0sIFs1OTI4OC4wLCA2MTY2NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2OC4wXSwgWzU5
Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdXX19fX19fSwgImJ1aWxk
VGltZSI6ICIyMDEzLTA2LTA3VDAyOjU2OjMyLjQ3MjA1MyIsICJkZXNjcmlwdGlvbiI6ICJVbnBh
dGNoZWQiLCAicmV2aXNpb25zIjogeyJXZWJLaXQiOiB7InRpbWVzdGFtcCI6ICIyMDEzLTA2LTA2
VDA1OjAxOjQ2LjY2NjI3OVoiLCAicmV2aXNpb24iOiAiMTUxMjYwIn19fSwgeyJ0ZXN0cyI6IHsi
UGFyc2VyIjogeyJ1cmwiOiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL1Bl
cmZvcm1hbmNlVGVzdHMvUGFyc2VyIiwgInRlc3RzIjogeyJodG1sNS1mdWxsLXJlbmRlciI6IHsi
dXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5jZVRl
c3RzL1BhcnNlci9odG1sNS1mdWxsLXJlbmRlci5odG1sIiwgIm1ldHJpY3MiOiB7Ik1hbGxvYyI6
IHsiY3VycmVudCI6IFtbMTIzNDk2OTUyLjAsIDExNjA4NTkzNi4wLCAxMTM2NDY0NTYuMCwgMTE1
NjY1MzM2LjAsIDExMjg1NTgwMC4wXSwgWzExODAyOTM2OC4wLCAxMTczMDI3ODQuMCwgMTE3NDU5
NDU2LjAsIDExNzE2MDUxMi4wLCAxMTMzMjIyNDAuMF0sIFsxMTU5MzMxMjguMCwgMTE0OTA2NTUy
LjAsIDExMzUwNzUxMi4wLCAxMTQ5MzU1MjAuMCwgMTEzMDU2NDE2LjBdLCBbMTIzODc0MzEyLjAs
IDExNjE4NDA2NC4wLCAxMTU5NjQ4MDguMCwgMTE1NDUxMDMyLjAsIDExMzQ5ODQ1Ni4wXV19LCAi
SlNIZWFwIjogeyJjdXJyZW50IjogW1s3MTk1Mi4wLCA3OTIxNi4wLCA4NDIwOC4wLCA4OTI3Mi4w
LCA5Njc1Mi4wXSwgWzcxOTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBd
LCBbNzE5NTIuMCwgNzkyMTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF0sIFs3MTk1Mi4w
LCA3OTIxNi4wLCA4NDIwOC4wLCA4OTI3Mi4wLCA5Njc1Mi4wXV19LCAiVGltZSI6IHsiY3VycmVu
dCI6IFtbNDI0NC4wLCA0ODc5LjAsIDQyOTIuMCwgNDg4NS4wLCA0MjkyLjBdLCBbNDIwOS4wLCA0
ODI5LjAsIDQyNjMuMCwgNDgyNy4wLCA0MjM2LjBdLCBbNDI1OS4wLCA0ODM3LjAsIDQyMzAuMCwg
NDg1OS4wLCA0MjQxLjBdLCBbNDIyNy4wLCA0ODI4LjAsIDQyODYuMCwgNDg1Ny4wLCA0MjgxLjBd
XX19fX19LCAiTGF5b3V0IjogeyJ1cmwiOiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2Vy
L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvTGF5b3V0IiwgInRlc3RzIjogeyJBcmFiaWNMaW5lTGF5
b3V0IjogeyJ1cmwiOiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL1BlcmZv
cm1hbmNlVGVzdHMvTGF5b3V0L0FyYWJpY0xpbmVMYXlvdXQuaHRtbCIsICJtZXRyaWNzIjogeyJN
YWxsb2MiOiB7ImN1cnJlbnQiOiBbWzE1ODE2MDAuMCwgMTU3Mjc4NC4wLCAxNTcyOTA0LjAsIDE1
NzM1MDQuMCwgMTU3NDkzNi4wXSwgWzE1ODE2MDAuMCwgMTU3MjY5Ni4wLCAxNTY5MzYwLjAsIDE1
NjUzMjAuMCwgMTU2NjY5Ni4wXSwgWzE1Nzc2NjQuMCwgMTU2ODY1Ni4wLCAxNTcwNDcyLjAsIDE1
NjkzNzYuMCwgMTU3MDgwOC4wXSwgWzE1ODE2MDAuMCwgMTU3Mjc1Mi4wLCAxNTY5MzIwLjAsIDE1
NjkzMjAuMCwgMTU3MDg0OC4wXV19LCAiUnVucyI6IHsiY3VycmVudCI6IFtbMi42NzE0MTU4NTA0
MDA3MTIsIDIuNjUyNTE5ODkzODk5MjA0MywgMi42NTYwNDI0OTY2Nzk5NDY3LCAyLjY0NTUwMjY0
NTUwMjY0NTYsIDIuNjM4NTIyNDI3NDQwNjMzXSwgWzIuNjg4MTcyMDQzMDEwNzUyNSwgMi42ODgx
NzIwNDMwMTA3NTI1LCAyLjYzODUyMjQyNzQ0MDYzMywgMi42NDIwMDc5MjYwMjM3NzgsIDIuNjM4
NTIyNDI3NDQwNjMzXSwgWzIuNjY2NjY2NjY2NjY2NjY2NSwgMi42ODU3NjU0NDMxNTEyOTgzLCAy
LjcwMDI3MDAyNzAwMjcwMDIsIDIuNjgzMzYzMTQ4NDc5NDI3NCwgMi42ODgxNzIwNDMwMTA3NTI1
XSwgWzIuNzAyNzAyNzAyNzAyNzAyNiwgMi43MDc1ODEyMjc0MzY4MjMsIDIuNzAwMjcwMDI3MDAy
NzAwMiwgMi43MDAyNzAwMjcwMDI3MDAyLCAyLjY1NjA0MjQ5NjY3OTk0NjddXX0sICJKU0hlYXAi
OiB7ImN1cnJlbnQiOiBbWzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0
LjBdLCBbNTg5NDQuMCwgNjEzMjAuMCwgNjEzOTIuMCwgNjE1NTIuMCwgNjE2MjQuMF0sIFs1ODk0
NC4wLCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAsIDYxMzIw
LjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBdXX19fSwgIkxpbmVMYXlvdXRKYXBhbmVzZSI6
IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5j
ZVRlc3RzL0xheW91dC9MaW5lTGF5b3V0SmFwYW5lc2UuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxs
b2MiOiB7ImN1cnJlbnQiOiBbWzE1OTY5OTIuMCwgMTU3MzczNi4wLCAxNTczNzkyLjAsIDE1NzUy
MjQuMCwgMTU3NTIyNC4wXSwgWzE1OTY5OTIuMCwgMTU3Mzc5Mi4wLCAxNTczODQ4LjAsIDE1NzM4
NDguMCwgMTU3NTI4MC4wXSwgWzE1OTY5OTIuMCwgMTU3Mzc5Mi4wLCAxNTczODQ4LjAsIDE1NzUy
MjQuMCwgMTU3NTIyNC4wXSwgWzE1OTY5OTIuMCwgMTU3MzczNi4wLCAxNTczNzkyLjAsIDE1NzUy
MjQuMCwgMTU3NTIyNC4wXV19LCAiUnVucyI6IHsiY3VycmVudCI6IFtbNjIuMjY2NTAwNjIyNjY1
MDA2LCA2Mi4yNjY1MDA2MjI2NjUwMDYsIDYyLjAzNDczOTQ1NDA5NDI5LCA2Mi4xODkwNTQ3MjYz
NjgxNiwgNjIuMTg5MDU0NzI2MzY4MTZdLCBbNTEuMjE2Mzg5MjQ0NTU4MjYsIDUwLjk1NTQxNDAx
MjczODg1NiwgNTEuMzQ3ODgxODk5ODcxNjMsIDUxLjIxNjM4OTI0NDU1ODI2LCA1MS4xNTA4OTUx
NDA2NjQ5NjRdLCBbNjIuMzQ0MTM5NjUwODcyODIsIDYyLjI2NjUwMDYyMjY2NTAwNiwgNjIuNjU2
NjQxNjA0MDEwMDMsIDYyLjY1NjY0MTYwNDAxMDAzLCA2Mi42NTY2NDE2MDQwMTAwM10sIFs2MS44
ODExODgxMTg4MTE4ODUsIDYxLjg4MTE4ODExODgxMTg4NSwgNjEuNzI4Mzk1MDYxNzI4MzksIDYx
LjgwNDY5NzE1Njk4MzkzNCwgNjEuODgxMTg4MTE4ODExODg1XV19LCAiSlNIZWFwIjogeyJjdXJy
ZW50IjogW1s1OTI4OC4wLCA2MTY2NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2OC4wXSwgWzU5
Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdLCBbNTkyODguMCwgNjE2
NjQuMCwgNjE3MzYuMCwgNjE4OTYuMCwgNjE5NjguMF0sIFs1OTI4OC4wLCA2MTY2NC4wLCA2MTcz
Ni4wLCA2MTg5Ni4wLCA2MTk2OC4wXV19fX19fX0sICJkZXNjcmlwdGlvbiI6ICJQYXRjaGVkIiwg
ImJ1aWxkVGltZSI6ICIyMDEzLTA2LTA3VDAzOjAwOjU0LjQzOTI0NSIsICJyZXZpc2lvbnMiOiB7
IldlYktpdCI6IHsidGltZXN0YW1wIjogIjIwMTMtMDYtMDZUMDU6MDE6NDYuNjY2Mjc5WiIsICJy
ZXZpc2lvbiI6ICIxNTEyNjAifX19LCB7InRlc3RzIjogeyJQYXJzZXIiOiB7InVybCI6ICJodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIi
LCAidGVzdHMiOiB7Imh0bWw1LWZ1bGwtcmVuZGVyIjogeyJ1cmwiOiAiaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9icm93c2VyL3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvUGFyc2VyL2h0bWw1LWZ1bGwt
cmVuZGVyLmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9jIjogeyJjdXJyZW50IjogW1sxMTU0OTA5
NzYuMCwgMTE1NjE5NTI4LjAsIDExMjYwMTQ0MC4wLCAxMTU1Mjg4NzIuMCwgMTEyOTExMjg4LjBd
LCBbMTE3ODU5NDk2LjAsIDExNzUyMzM5Mi4wLCAxMTM4MTc4NjQuMCwgMTE3NjMzOTI4LjAsIDEx
Mzk0NTY0OC4wXSwgWzExNjkyMzc0NC4wLCAxMTY5MDk5NjAuMCwgMTEzNjU1MDQwLjAsIDExNjQw
NzA0MC4wLCAxMTMyMzUxMTIuMF0sIFsxMjQ0MjgxNTIuMCwgMTE2NDQ2ODE2LjAsIDExMzQ4NzI4
MC4wLCAxMTU5MjMyNTYuMCwgMTEzMTI0ODMyLjBdXX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBb
WzcxOTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBdLCBbNzE5NTIuMCwg
NzkyMTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF0sIFs3MTk1Mi4wLCA3OTIxNi4wLCA4
NDIwOC4wLCA4OTI3Mi4wLCA5Njc1Mi4wXSwgWzcxOTUyLjAsIDc5MjE2LjAsIDg0MjA4LjAsIDg5
MjcyLjAsIDk2NzUyLjBdXX0sICJUaW1lIjogeyJjdXJyZW50IjogW1s0MjMxLjAsIDQ3NzQuMCwg
NDIxOS4wLCA0NzkxLjAsIDQyMTkuMF0sIFs0MjcwLjAsIDQ4MjUuMCwgNDI0My4wLCA0ODQxLjAs
IDQyMDguMF0sIFs0MjMwLjAsIDQ3OTMuMCwgNDE5NS4wLCA0Nzc0LjAsIDQxNzUuMF0sIFs0MjIy
LjAsIDQ3ODYuMCwgNDE5Ni4wLCA0ODEzLjAsIDQyMzYuMF1dfX19fX0sICJMYXlvdXQiOiB7InVy
bCI6ICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0
cy9MYXlvdXQiLCAidGVzdHMiOiB7IkFyYWJpY0xpbmVMYXlvdXQiOiB7InVybCI6ICJodHRwOi8v
dHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvQXJh
YmljTGluZUxheW91dC5odG1sIiwgIm1ldHJpY3MiOiB7Ik1hbGxvYyI6IHsiY3VycmVudCI6IFtb
MTU3NzU4NC4wLCAxNTYzNjcyLjAsIDE1Njg2ODAuMCwgMTU2OTI4MC4wLCAxNTcwNzEyLjBdLCBb
MTU3NzQ4OC4wLCAxNTY4NjcyLjAsIDE1Njg3OTIuMCwgMTU2OTMzNi4wLCAxNTY2NjcyLjBdLCBb
MTU3NzQ4OC4wLCAxNTY4NjQwLjAsIDE1NjkyNDAuMCwgMTU2NTIwMC4wLCAxNTY2NjMyLjBdLCBb
MTU3NzQ4OC4wLCAxNTY4NjcyLjAsIDE1Njg3OTIuMCwgMTU2OTM5Mi4wLCAxNTY2NjcyLjBdXX0s
ICJSdW5zIjogeyJjdXJyZW50IjogW1syLjY1MjUxOTg5Mzg5OTIwNDMsIDIuNjUyNTE5ODkzODk5
MjA0MywgMi42NTI1MTk4OTM4OTkyMDQzLCAyLjYxNDM3OTA4NDk2NzMyMDMsIDIuNjQ5MDA2NjIy
NTE2NTU2NV0sIFsyLjY3ODU3MTQyODU3MTQyODQsIDIuNjQ1NTAyNjQ1NTAyNjQ1NiwgMi42NTYw
NDI0OTY2Nzk5NDY3LCAyLjY1NjA0MjQ5NjY3OTk0NjcsIDIuNjQyMDA3OTI2MDIzNzc4XSwgWzIu
Njg1NzY1NDQzMTUxMjk4MywgMi42Nzg1NzE0Mjg1NzE0Mjg0LCAyLjY5NTQxNzc4OTc1NzQxMjMs
IDIuNjk3ODQxNzI2NjE4NzA1LCAyLjcwNTEzOTc2NTU1NDU1MzVdLCBbMi42NzE0MTU4NTA0MDA3
MTIsIDIuNjUyNTE5ODkzODk5MjA0MywgMi42NTYwNDI0OTY2Nzk5NDY3LCAyLjY2MzExNTg0NTUz
OTI4MSwgMi42NTYwNDI0OTY2Nzk5NDY3XV19LCAiSlNIZWFwIjogeyJjdXJyZW50IjogW1s1ODk0
NC4wLCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAsIDYxMzIw
LjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBdLCBbNTg5NDQuMCwgNjEzMjAuMCwgNjEzOTIu
MCwgNjE1NTIuMCwgNjE2MjQuMF0sIFs1ODk0NC4wLCA2MTMyMC4wLCA2MTM5Mi4wLCA2MTU1Mi4w
LCA2MTYyNC4wXV19fX0sICJMaW5lTGF5b3V0SmFwYW5lc2UiOiB7InVybCI6ICJodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvTGluZUxh
eW91dEphcGFuZXNlLmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9jIjogeyJjdXJyZW50IjogW1sx
NTkyODgwLjAsIDE1Njk2NjQuMCwgMTU2OTY2NC4wLCAxNTcxMDk2LjAsIDE1NzExNTIuMF0sIFsx
NTkyODgwLjAsIDE1Njk2MjQuMCwgMTU2OTY4MC4wLCAxNTcxMTEyLjAsIDE1NzExNjguMF0sIFsx
NTk2OTc2LjAsIDE1NzM3NzYuMCwgMTU3Mzc3Ni4wLCAxNTc1MTUyLjAsIDE1NzUyMDguMF0sIFsx
NTkyODgwLjAsIDE1Njk2ODAuMCwgMTU2OTY4MC4wLCAxNTcxMTEyLjAsIDE1NzExMTIuMF1dfSwg
IlJ1bnMiOiB7ImN1cnJlbnQiOiBbWzYyLjM0NDEzOTY1MDg3MjgyLCA2Mi41LCA2Mi41LCA2Mi4x
ODkwNTQ3MjYzNjgxNiwgNjIuNDIxOTcyNTM0MzMyMDg1XSwgWzYxLjEyNDY5NDM3NjUyODEyLCA2
MS4xMjQ2OTQzNzY1MjgxMiwgNjEuMTk5NTEwNDAzOTE2NzcsIDYwLjk3NTYwOTc1NjA5NzU2LCA2
MC42Nzk2MTE2NTA0ODU0MzRdLCBbNjIuNzM1MjU3MjE0NTU0NTgsIDYyLjgxNDA3MDM1MTc1ODc5
NCwgNjIuODE0MDcwMzUxNzU4Nzk0LCA2Mi44MTQwNzAzNTE3NTg3OTQsIDYyLjY1NjY0MTYwNDAx
MDAzXSwgWzYyLjExMTgwMTI0MjIzNjAzLCA2Mi4yNjY1MDA2MjI2NjUwMDYsIDYyLjI2NjUwMDYy
MjY2NTAwNiwgNjIuMTg5MDU0NzI2MzY4MTYsIDYyLjE4OTA1NDcyNjM2ODE2XV19LCAiSlNIZWFw
IjogeyJjdXJyZW50IjogW1s1OTI4OC4wLCA2MTY2NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2
OC4wXSwgWzU5Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdLCBbNTky
ODguMCwgNjE2NjQuMCwgNjE3MzYuMCwgNjE4OTYuMCwgNjE5NjguMF0sIFs1OTI4OC4wLCA2MTY2
NC4wLCA2MTczNi4wLCA2MTg5Ni4wLCA2MTk2OC4wXV19fX19fX0sICJyZXZpc2lvbnMiOiB7Ildl
YktpdCI6IHsidGltZXN0YW1wIjogIjIwMTMtMDYtMDZUMDU6MDE6NDYuNjY2Mjc5WiIsICJyZXZp
c2lvbiI6ICIxNTEyNjAifX0sICJidWlsZFRpbWUiOiAiMjAxMy0wNi0wN1QwMzowOTowNy44ODU0
NDciLCAiZGVzY3JpcHRpb24iOiAiVW5wYXRjaGVkIn0sIHsidGVzdHMiOiB7IlBhcnNlciI6IHsi
dXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5jZVRl
c3RzL1BhcnNlciIsICJ0ZXN0cyI6IHsiaHRtbDUtZnVsbC1yZW5kZXIiOiB7InVybCI6ICJodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvUGVyZm9ybWFuY2VUZXN0cy9QYXJzZXIv
aHRtbDUtZnVsbC1yZW5kZXIuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxsb2MiOiB7ImN1cnJlbnQi
OiBbWzEyMzY1NDYwMC4wLCAxMTUzODk2MDguMCwgMTE1ODUzNzc2LjAsIDExNDkwNjY5Ni4wLCAx
MTU4NTgwNDAuMF0sIFsxMjMyOTU2NDguMCwgMTE2MTk4NjcyLjAsIDExMzQ4MTc3Ni4wLCAxMTM0
OTI3MjguMCwgMTEzMTQ0MDcyLjBdLCBbMTE1ODY4MTQ0LjAsIDExNTQ2MzA4OC4wLCAxMTMzMTAz
MTIuMCwgMTE0OTA5NzEyLjAsIDExMzM2ODE0NC4wXSwgWzExNjYwNDgzMi4wLCAxMTU5MDU1NjAu
MCwgMTEzNDU5ODI0LjAsIDExNjExOTA1Ni4wLCAxMTYwOTU2ODAuMF1dfSwgIkpTSGVhcCI6IHsi
Y3VycmVudCI6IFtbNzE5NTIuMCwgNzkyMTYuMCwgODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF0s
IFs3MTk1Mi4wLCA3OTIxNi4wLCA4NDIwOC4wLCA4OTI3Mi4wLCA5Njc1Mi4wXSwgWzcxOTUyLjAs
IDc5MjE2LjAsIDg0MjA4LjAsIDg5MjcyLjAsIDk2NzUyLjBdLCBbNzE5NTIuMCwgNzkyMTYuMCwg
ODQyMDguMCwgODkyNzIuMCwgOTY3NTIuMF1dfSwgIlRpbWUiOiB7ImN1cnJlbnQiOiBbWzQyNTku
MCwgNDg1OC4wLCA0MjY5LjAsIDQ4NTQuMCwgNDI2NC4wXSwgWzQyNzAuMCwgNDg1OS4wLCA0Mjg4
LjAsIDQ4MzQuMCwgNDI3MS4wXSwgWzQyNDEuMCwgNDgxNy4wLCA0MjIyLjAsIDQ4MDYuMCwgNDE4
OS4wXSwgWzQyNjMuMCwgNDg0MC4wLCA0MjQ1LjAsIDQ4MzEuMCwgNDIwNy4wXV19fX19fSwgIkxh
eW91dCI6IHsidXJsIjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJm
b3JtYW5jZVRlc3RzL0xheW91dCIsICJ0ZXN0cyI6IHsiQXJhYmljTGluZUxheW91dCI6IHsidXJs
IjogImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5jZVRlc3Rz
L0xheW91dC9BcmFiaWNMaW5lTGF5b3V0Lmh0bWwiLCAibWV0cmljcyI6IHsiTWFsbG9jIjogeyJj
dXJyZW50IjogW1sxNTgxNjk2LjAsIDE1NjM3NDQuMCwgMTU2ODgwOC4wLCAxNTY5NDA4LjAsIDE1
NzA4NDAuMF0sIFsxNTgxNjk2LjAsIDE1Njc4NDAuMCwgMTU2ODgwOC4wLCAxNTY5NDA4LjAsIDE1
NzA3ODQuMF0sIFsxNTgxNjk2LjAsIDE1Njc4NDAuMCwgMTU3MjkwNC4wLCAxNTczNDQ4LjAsIDE1
NzQ4ODAuMF0sIFsxNTgxNjk2LjAsIDE1Njc4NDAuMCwgMTU3Mjg0OC4wLCAxNTczNDQ4LjAsIDE1
NzQ4ODAuMF1dfSwgIlJ1bnMiOiB7ImN1cnJlbnQiOiBbWzIuNjUyNTE5ODkzODk5MjA0MywgMi42
MjEyMzE5NzkwMzAxNDQ0LCAyLjY0MjAwNzkyNjAyMzc3OCwgMi42MzUwNDYxMTMzMDY5ODMsIDIu
NjM4NTIyNDI3NDQwNjMzXSwgWzIuNjY2NjY2NjY2NjY2NjY2NSwgMi42NTk1NzQ0NjgwODUxMDYz
LCAyLjY1MjUxOTg5Mzg5OTIwNDMsIDIuNjQ5MDA2NjIyNTE2NTU2NSwgMi42NTk1NzQ0NjgwODUx
MDYzXSwgWzIuNjYzMTE1ODQ1NTM5MjgxLCAyLjY0OTAwNjYyMjUxNjU1NjUsIDIuNjM4NTIyNDI3
NDQwNjMzLCAyLjYzODUyMjQyNzQ0MDYzMywgMi42NDIwMDc5MjYwMjM3NzhdLCBbMi41OTQwMzM3
MjI0MzgzOTIsIDIuNTgwNjQ1MTYxMjkwMzIyNSwgMi41ODA2NDUxNjEyOTAzMjI1LCAyLjU3NDAw
MjU3NDAwMjU3NCwgMi41NzczMTk1ODc2Mjg4NjZdXX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBb
WzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzkyLjAsIDYxNTUyLjAsIDYxNjI0LjBdLCBbNTg5NDQuMCwg
NjEzMjAuMCwgNjEzOTIuMCwgNjE1NTIuMCwgNjE2MjQuMF0sIFs1ODk0NC4wLCA2MTMyMC4wLCA2
MTM5Mi4wLCA2MTU1Mi4wLCA2MTYyNC4wXSwgWzU4OTQ0LjAsIDYxMzIwLjAsIDYxMzkyLjAsIDYx
NTUyLjAsIDYxNjI0LjBdXX19fSwgIkxpbmVMYXlvdXRKYXBhbmVzZSI6IHsidXJsIjogImh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3JtYW5jZVRlc3RzL0xheW91dC9M
aW5lTGF5b3V0SmFwYW5lc2UuaHRtbCIsICJtZXRyaWNzIjogeyJNYWxsb2MiOiB7ImN1cnJlbnQi
OiBbWzE1OTY5OTIuMCwgMTU3Mzc5Mi4wLCAxNTczODQ4LjAsIDE1NzUyODAuMCwgMTU3NTI4MC4w
XSwgWzE2MDEwODguMCwgMTU3Nzg4OC4wLCAxNTc3OTQ0LjAsIDE1NzkzMjAuMCwgMTU3OTM3Ni4w
XSwgWzE2MDEwODguMCwgMTU3Mzc5Mi4wLCAxNTczODQ4LjAsIDE1NzUyODAuMCwgMTU3NTI4MC4w
XSwgWzE1OTY5OTIuMCwgMTU3Mzc5Mi4wLCAxNTczODQ4LjAsIDE1NzUyMjQuMCwgMTU3NTIyNC4w
XV19LCAiUnVucyI6IHsiY3VycmVudCI6IFtbNjMuMDUxNzAyMzk1OTY0NjksIDYyLjk3MjI5MjE5
MTQzNTc3LCA2MS45NTc4Njg2NDkzMTg0NiwgNjIuODkzMDgxNzYxMDA2Mjg2LCA2Mi44OTMwODE3
NjEwMDYyODZdLCBbNjEuNzI4Mzk1MDYxNzI4MzksIDYxLjU3NjM1NDY3OTgwMjk1NCwgNjEuNjUy
MjgxMTM0NDAxOTc0LCA2MS41NzYzNTQ2Nzk4MDI5NTQsIDYxLjUwMDYxNTAwNjE1MDA2XSwgWzYx
Ljk1Nzg2ODY0OTMxODQ2LCA2MS43MjgzOTUwNjE3MjgzOSwgNjEuNjUyMjgxMTM0NDAxOTc0LCA2
MS41NzYzNTQ2Nzk4MDI5NTQsIDYxLjY1MjI4MTEzNDQwMTk3NF0sIFs2Mi4xODkwNTQ3MjYzNjgx
NiwgNjIuMDM0NzM5NDU0MDk0MjksIDYyLjExMTgwMTI0MjIzNjAzLCA2Mi4xMTE4MDEyNDIyMzYw
MywgNjIuMDM0NzM5NDU0MDk0MjldXX0sICJKU0hlYXAiOiB7ImN1cnJlbnQiOiBbWzU5Mjg4LjAs
IDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYxOTY4LjBdLCBbNTkyODguMCwgNjE2NjQuMCwg
NjE3MzYuMCwgNjE4OTYuMCwgNjE5NjguMF0sIFs1OTI4OC4wLCA2MTY2NC4wLCA2MTczNi4wLCA2
MTg5Ni4wLCA2MTk2OC4wXSwgWzU5Mjg4LjAsIDYxNjY0LjAsIDYxNzM2LjAsIDYxODk2LjAsIDYx
OTY4LjBdXX19fX19fSwgImJ1aWxkVGltZSI6ICIyMDEzLTA2LTA3VDA0OjI0OjIwLjk1NDgzOCIs
ICJkZXNjcmlwdGlvbiI6ICJQYXRjaGVkIiwgInJldmlzaW9ucyI6IHsiV2ViS2l0IjogeyJ0aW1l
c3RhbXAiOiAiMjAxMy0wNi0wNlQwNTowMTo0Ni42NjYyNzlaIiwgInJldmlzaW9uIjogIjE1MTI2
MCJ9fX1dPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>