<?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>99787</bug_id>
          
          <creation_ts>2012-10-18 18:15:11 -0700</creation_ts>
          <short_desc>Add shortMonthLabels and shortStandAloneMonthLabels to Localizer</short_desc>
          <delta_ts>2012-10-19 00:07:45 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>99704</dependson>
          <blocked>99818</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>haraken</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745833</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-18 18:15:11 -0700</bug_when>
    <thetext>because Localizer::monthFormat can contain MMM or LLL.
See http://www.unicode.org/reports/tr35/#Date_Format_Patterns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745959</commentid>
    <comment_count>1</comment_count>
      <attachid>169544</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-18 21:40:25 -0700</bug_when>
    <thetext>Created attachment 169544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745966</commentid>
    <comment_count>2</comment_count>
      <attachid>169544</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-18 21:55:04 -0700</bug_when>
    <thetext>Comment on attachment 169544
Patch

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

&gt; Source/WebCore/platform/text/LocaleICU.cpp:466
&gt; +            m_shortStandAloneMonthLabels = *labels;

Nit: I would prefer early return here. &apos;return m_shortStandAloneMonthLabels;&apos;

&gt; Source/WebCore/platform/text/LocaleICU.cpp:468
&gt; +    if (m_shortStandAloneMonthLabels.isEmpty())

Then you can remove this branch.

&gt; Source/WebCore/platform/text/LocaleNone.cpp:99
&gt; +    m_shortMonthLabels.reserveCapacity(12);

Nit: 12 =&gt; WTF_ARRAY_LENGTH(WTF::monthName)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745970</commentid>
    <comment_count>3</comment_count>
      <attachid>169544</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-18 22:05:15 -0700</bug_when>
    <thetext>Comment on attachment 169544
Patch

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

&gt;&gt; Source/WebCore/platform/text/LocaleICU.cpp:466
&gt;&gt; +            m_shortStandAloneMonthLabels = *labels;
&gt; 
&gt; Nit: I would prefer early return here. &apos;return m_shortStandAloneMonthLabels;&apos;

Done.

&gt;&gt; Source/WebCore/platform/text/LocaleNone.cpp:99
&gt;&gt; +    m_shortMonthLabels.reserveCapacity(12);
&gt; 
&gt; Nit: 12 =&gt; WTF_ARRAY_LENGTH(WTF::monthName)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745971</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-18 22:08:53 -0700</bug_when>
    <thetext>Committed r131854: &lt;http://trac.webkit.org/changeset/131854&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169544</attachid>
            <date>2012-10-18 21:40:25 -0700</date>
            <delta_ts>2012-10-18 22:05:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99787-20121019133909.patch</filename>
            <type>text/plain</type>
            <size>19357</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRkOTk3NDcyOTMxYzMy
ZmJiYWMwZmJmZjM1MDI4OTU1MmE3MDJkYi4uN2EzNWVmNjUyYWMxOTgwMTI2MWRiOWUyY2RjODUy
N2IwMTY3ZDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTEwLTE4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgc2hvcnRNb250aExh
YmVscyBhbmQgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMgdG8gTG9jYWxpemVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgZ29pbmcgdG8g
YmUgdXNlZCBmb3IgaW5wdXRbdHlwZT1tb250aF0gVUkuIFRoaXMgZG9lc24ndCBhZmZlY3QKKyAg
ICAgICAgYW55IGJhaGV2aW9yIHlldC4KKworICAgICAgICBUZXN0czogQWRkIHNvbWUgdGVzdHMg
dG8gU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy8sIGFuZCB3aWxsIGFkZAorICAgICAgICBs
YXlvdXQgdGVzdHMgbGF0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5o
OgorICAgICAgICAoTG9jYWxpemVyKTogQWRkIHNob3J0TW9udGhMYWJlbHMgYW5kIHNob3J0U3Rh
bmRBbG9uZU1vbnRoTGFiZWxzIGFzIHB1cmUKKyAgICAgICAgdmlydHVhbCBtZW1iZXIgZnVuY3Rp
b25zLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaDoKKyAgICAgICAgKExv
Y2FsZUlDVSk6IERlY2xhcmUgc2hvcnRNb250aExhYmVscyBhbmQgc2hvcnRTdGFuZEFsb25lTW9u
dGhMYWJlbHMuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpzaG9ydE1vbnRoTGFiZWxzKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpMb2NhbGVJQ1U6OnNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKTogQWRkZWQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwOgorICAgICAgICAoTG9j
YWxlTm9uZSk6IERlY2xhcmUgc2hvcnRNb250aExhYmVscyBhbmQgc2hvcnRTdGFuZEFsb25lTW9u
dGhMYWJlbHMuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVOb25lOjpzaG9ydE1vbnRoTGFiZWxz
KToKKyAgICAgICAgQWRkZWQuIEFsd2F5cyByZXR1cm5zIEVuZ2xpc2ggbGFiZWxzLgorICAgICAg
ICAoV2ViQ29yZTo6TG9jYWxlTm9uZTo6c2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMpOgorICAg
ICAgICBBZGRlcy4gSnVzdCBjYWxscyBzaG9ydE1vbnRoTGFiZWxzLgorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6IERlY2xhcmUgc2hv
cnRNb250aExhYmVscyBhbmQgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMuCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2lu
OjpzaG9ydE1vbnRoTGFiZWxzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVXaW46
OnNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKToKKyAgICAgICAgQWRkZWQuIEFsd2F5cyByZXR1
cm5zIHNob3J0TW9udGhMYWJlbHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9Mb2Nh
bGVNYWMuaDoKKyAgICAgICAgKExvY2FsZU1hYyk6IERlY2xhcmUgc2hvcnRNb250aExhYmVscyBh
bmQgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9t
YWMvTG9jYWxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTWFjOjpzaG9ydE1vbnRo
TGFiZWxzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OnNob3J0U3RhbmRB
bG9uZU1vbnRoTGFiZWxzKTogQWRkZWQuCisKIDIwMTItMTAtMTggIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQ3Jhc2hlcyBpbiBXZWJQcm9jZXNz
IGF0IGNvbS5hcHBsZS5XZWJDb3JlOiAtW0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJlbW90
ZUFjY2Vzc2liaWxpdHlQYXJlbnRPYmplY3RdICsgNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggN2IyMzQ3ZmQyMmVhOWMwZmYzNDZmMDU0MjJhYTU3MjU1YTc0ZWY0My4uNmYzMjI5NWNj
YTE3ZmYxNzA5ZDM1ZjkyOTgyNTQ3ZmQwMDczNGViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0xMC0xOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgQWRkIHNob3J0TW9udGhMYWJlbHMgYW5kIHNob3J0U3RhbmRB
bG9uZU1vbnRoTGFiZWxzIHRvIExvY2FsaXplcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwOgorICAgICAgICAo
TG9jYWxlTWFjVGVzdDo6c2hvcnRNb250aExhYmVsKTogQSBoZWxwZXIuCisgICAgICAgIChMb2Nh
bGVNYWNUZXN0OjpzaG9ydFN0YW5kQWxvbmVNb250aExhYmVsKTogRGl0dG8uCisgICAgICAgIChU
RVNUX0YpOiBBZGRlZCB0ZXN0cyBmb3Igc29tZSBsb2NhbGVzLgorICAgICAgICAqIHRlc3RzL0xv
Y2FsZVdpblRlc3QuY3BwOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6c2hvcnRNb250aExhYmVs
KTogQSBoZWxwZXIuCisgICAgICAgIChURVNUX0YpOiBBZGRlZCB0ZXN0cyBmb3Igc29tZSBsb2Nh
bGVzLiBXZSBkb24ndCB0ZXN0CisgICAgICAgIExvY2FsZVdpbjo6c2hvcnRTdGFuZEFsb25lTW9u
dGhMYWJlbHMgYmVjYXVzZSBpdCBpcyBpZGVudGljYWwgdG8KKyAgICAgICAgc2hvcnRNb250aExh
YmVscy4KKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVzdC5jcHA6CisgICAgICAg
IChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6c2hvcnRNb250aExhYmVsKTogQSBoZWxwZXIuCisgICAg
ICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6c2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCk6IERp
dHRvLgorICAgICAgICAoVEVTVF9GKTogQWRkZWQgdGVzdHMgZm9yIHNvbWUgbG9jYWxlcy4KKwog
MjAxMi0xMC0xOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIEFkZCBhIHdlYmtpdF90ZXN0X3N1cHBvcnQgdGFyZ2V0IHRoYXQgV2Vi
VGVzdGluZ1N1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNw
cAppbmRleCBmZTFhMGQ3MzQzMzJlMzJlODI3YmU2NTcxMzBmYmQ3MzRiYmQ5ZmU4Li5lMzJjOGZi
NDY2NGI0NTY0Njc4MjJmMTAzMWRlZmRjM2ZlNTgxYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC00NDEsNiArNDQxLDM1IEBAIFN0cmluZyBMb2Nh
bGVJQ1U6OnNob3J0VGltZUZvcm1hdCgpCiAgICAgcmV0dXJuIG1fbG9jYWxpemVkU2hvcnRUaW1l
Rm9ybWF0VGV4dDsKIH0KIAorY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUlDVTo6c2hvcnRN
b250aExhYmVscygpCit7CisgICAgaWYgKCFtX3Nob3J0TW9udGhMYWJlbHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gbV9zaG9ydE1vbnRoTGFiZWxzOworICAgIGlmIChpbml0aWFsaXplU2hv
cnREYXRlRm9ybWF0KCkpIHsKKyAgICAgICAgaWYgKE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxh
YmVscyA9IGNyZWF0ZUxhYmVsVmVjdG9yKG1fc2hvcnREYXRlRm9ybWF0LCBVREFUX1NIT1JUX01P
TlRIUywgVUNBTF9KQU5VQVJZLCAxMikpCisgICAgICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMg
PSAqbGFiZWxzOworICAgIH0KKyAgICBpZiAobV9zaG9ydE1vbnRoTGFiZWxzLmlzRW1wdHkoKSkg
eworICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KFdURl9BUlJBWV9M
RU5HVEgoV1RGOjptb250aE5hbWUpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IFdURl9BUlJBWV9MRU5HVEgoV1RGOjptb250aE5hbWUpOyArK2kpCisgICAgICAgICAgICBtX3No
b3J0TW9udGhMYWJlbHMuYXBwZW5kKFdURjo6bW9udGhOYW1lW2ldKTsKKyAgICB9CisgICAgcmV0
dXJuIG1fc2hvcnRNb250aExhYmVsczsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2Fs
ZUlDVTo6c2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMoKQoreworICAgIGlmICghbV9zaG9ydFN0
YW5kQWxvbmVNb250aExhYmVscy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX3Nob3J0U3Rh
bmRBbG9uZU1vbnRoTGFiZWxzOworICAgIGlmIChpbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCkp
IHsKKyAgICAgICAgaWYgKE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVscyA9IGNyZWF0ZUxh
YmVsVmVjdG9yKG1fc2hvcnREYXRlRm9ybWF0LCBVREFUX1NUQU5EQUxPTkVfU0hPUlRfTU9OVEhT
LCBVQ0FMX0pBTlVBUlksIDEyKSkKKyAgICAgICAgICAgIG1fc2hvcnRTdGFuZEFsb25lTW9udGhM
YWJlbHMgPSAqbGFiZWxzOworICAgIH0KKyAgICBpZiAobV9zaG9ydFN0YW5kQWxvbmVNb250aExh
YmVscy5pc0VtcHR5KCkpCisgICAgICAgIG1fc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMgPSBz
aG9ydE1vbnRoTGFiZWxzKCk7CisgICAgcmV0dXJuIG1fc2hvcnRTdGFuZEFsb25lTW9udGhMYWJl
bHM7Cit9CisKIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVJQ1U6OnRpbWVBTVBNTGFiZWxz
KCkKIHsKICAgICBpbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmluZGV4IDkyYjMxMGIwYjVkOGY0YWEwZGFkYTBmMmQwNWY5
NWY0NTkzNzVmY2QuLjZjNjJmOTJmYzQxYzgzMDc4ZDBjMGQxMTE2NjMxNzk0M2NiY2ZlM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApAQCAtNjUsNiArNjUsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgbW9udGhGb3JtYXQoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFN0cmluZyB0aW1lRm9ybWF0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJp
bmcgc2hvcnRUaW1lRm9ybWF0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2hvcnRNb250aExhYmVscygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKSBPVkVSUklE
RTsKICNlbmRpZgogCkBAIC0xMTEsNiArMTEzLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9t
b250aEZvcm1hdDsKICAgICBVRGF0ZUZvcm1hdCogbV9tZWRpdW1UaW1lRm9ybWF0OwogICAgIFVE
YXRlRm9ybWF0KiBtX3Nob3J0VGltZUZvcm1hdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX3Nob3J0
TW9udGhMYWJlbHM7CisgICAgVmVjdG9yPFN0cmluZz4gbV9zaG9ydFN0YW5kQWxvbmVNb250aExh
YmVsczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3RpbWVBTVBNTGFiZWxzOwogICAgIGJvb2wgbV9k
aWRDcmVhdGVUaW1lRm9ybWF0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGVOb25lLmNwcAppbmRleCA2YjQ0NjVjMTUxZTM2ZWY2MzlmYWRjOTRhNDEyZDQ4NTgw
YzUwY2M4Li4wY2UwOTg0NTUyNDNlNzM4MWZlMGNiZDM1OGJmNzhkODg3MDJjOTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXplci5oIgorI2luY2x1
ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElO
UFVUX01VTFRJUExFX0ZJRUxEU19VSSkKICAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0KCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgbW9udGhGb3JtYXQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydE1vbnRoTGFiZWxzKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2hvcnRTdGFuZEFsb25lTW9u
dGhMYWJlbHMoKSBPVkVSUklERTsKICNlbmRpZgorCisgICAgVmVjdG9yPFN0cmluZz4gbV9zaG9y
dE1vbnRoTGFiZWxzOwogfTsKIAogUGFzc093blB0cjxMb2NhbGl6ZXI+IExvY2FsaXplcjo6Y3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYpCkBAIC04Niw2ICs5MSwyMSBAQCBTdHJpbmcgTG9jYWxl
Tm9uZTo6bW9udGhGb3JtYXQoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInl5eXktTU0i
KTsKIH0KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZU5vbmU6OnNob3J0TW9udGhMYWJl
bHMoKQoreworICAgIGlmICghbV9zaG9ydE1vbnRoTGFiZWxzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKKyAgICBtX3Nob3J0TW9udGhMYWJlbHMucmVzZXJ2
ZUNhcGFjaXR5KDEyKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xF
TkdUSChXVEY6Om1vbnRoTmFtZSk7ICsraSkKKyAgICAgICAgbV9zaG9ydE1vbnRoTGFiZWxzLmFw
cGVuZChXVEY6Om1vbnRoTmFtZVtpXSk7CisgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsK
K30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZU5vbmU6OnNob3J0U3RhbmRBbG9uZU1v
bnRoTGFiZWxzKCkKK3sKKyAgICByZXR1cm4gc2hvcnRNb250aExhYmVscygpOworfQogI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlV2luLmNwcAppbmRleCBlZjE2NjgwNzY2ZWQ5MGIwYjg2ZTAxNjc1ZTg4OTRhZmY2ODY5
MjQ3Li41ODRhNmEwNmY4MTM0Y2E4MDEwNDNlZGIyMTE5OGVjYzBjOTM0ZTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCkBAIC03MzUsNiArNzM1LDE4IEBA
IFN0cmluZyBMb2NhbGVXaW46OnNob3J0VGltZUZvcm1hdCgpCiAgICAgcmV0dXJuIHRpbWVGb3Jt
YXQoKTsKIH0KIAorY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZVdpbjo6c2hvcnRNb250aExh
YmVscygpCit7CisgICAgZW5zdXJlU2hvcnRNb250aExhYmVscygpOworICAgIHJldHVybiBtX3No
b3J0TW9udGhMYWJlbHM7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVXaW46OnNo
b3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkKK3sKKyAgICAvLyBXaW5kb3dzIGRvZXNuJ3QgcHJv
dmlkZSBhIHdheSB0byBnZXQgc3RhbmQtYWxvbmUgbW9udGggbGFiZWxzLgorICAgIHJldHVybiBz
aG9ydE1vbnRoTGFiZWxzKCk7Cit9CisKIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVXaW46
OnRpbWVBTVBNTGFiZWxzKCkKIHsKICAgICBpZiAobV90aW1lQU1QTUxhYmVscy5pc0VtcHR5KCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCmluZGV4IDVlMGYxM2Zj
NjE1YWFhMzFiOGFjZDgyYjNmY2Y5MmMzNDAwZDRjMzkuLmEyYjE1ZDNmMDE5ZGFmMzYzZDgzOTUx
MzRhNjcwOTc0OTkzMjI5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVX
aW4uaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgbW9udGhG
b3JtYXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB0aW1lRm9ybWF0KCkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBTdHJpbmcgc2hvcnRUaW1lRm9ybWF0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2hvcnRNb250aExhYmVscygpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNob3J0U3RhbmRBbG9uZU1vbnRo
TGFiZWxzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGlt
ZUFNUE1MYWJlbHMoKSBPVkVSUklERTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZXIuaAppbmRleCA5MmI2NDNlOTNiMDc1NmRjOTcxN2VkZjg0YjExYTc4Mzdi
OWEzYWI5Li42ZjUyNzE5NWU4MWJmZjIzZTJkNGExM2YyOWFjMjcyMmVhMjNmZjUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAgLTgzLDYgKzgzLDE0IEBAIHB1
YmxpYzoKICAgICAvLyBmaWVsZC4KICAgICBTdHJpbmcgZGF0ZVRpbWVGb3JtYXRXaXRob3V0U2Vj
b25kcygpOwogCisgICAgLy8gUmV0dXJucyBhIHZlY3RvciBvZiBzdHJpbmcgb2Ygd2hpY2ggc2l6
ZSBpcyAxMi4gVGhlIGZpcnN0IGl0ZW0gaXMgYQorICAgIC8vIGxvY2FsaXplZCBzdHJpbmcgb2Yg
SmFuIGFuZCB0aGUgbGFzdCBpdGVtIGlzIGEgbG9jYWxpemVkIHN0cmluZyBvZgorICAgIC8vIERl
Yy4gVGhlc2Ugc3RyaW5ncyBzaG91bGQgYmUgc2hvcnQuCisgICAgdmlydHVhbCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2hvcnRNb250aExhYmVscygpID0gMDsKKworICAgIC8vIFN0YW5kLWFsb25l
IG1vbnRoIHZlcnNpb24gb2Ygc2hvcnRNb250aExhYmVscy4KKyAgICB2aXJ0dWFsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzaG9ydFN0YW5kQWxvbmVNb250aExhYmVscygpID0gMDsKKwogICAgIC8v
IFJldHVybnMgbG9jYWxpemVkIHBlcmlvZCBmaWVsZChBTS9QTSkgc3RyaW5ncy4KICAgICB2aXJ0
dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCmluZGV4IDQ2N2ZmZjRl
MGQ5YzU5N2VmY2Y3Y2EwNTJjYzBhZjA2ZjdiNWFkYTAuLmEzZjIyYmViMWM5NDAzMjI4MTZiYWE3
NzE3ODlhODE3YjM3NTUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL0xvY2FsZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFj
L0xvY2FsZU1hYy5oCkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmlu
ZyBtb250aEZvcm1hdCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHRpbWVGb3JtYXQo
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzaG9ydFRpbWVGb3JtYXQoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydE1vbnRoTGFiZWxzKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2hvcnRTdGFuZEFs
b25lTW9udGhMYWJlbHMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB0aW1lQU1QTUxhYmVscygpIE9WRVJSSURFOwogI2VuZGlmCiAKQEAgLTg4LDYgKzkwLDgg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9tb250aEZvcm1hdDsKICAgICBTdHJpbmcgbV9sb2Nh
bGl6ZWRUaW1lRm9ybWF0VGV4dDsKICAgICBTdHJpbmcgbV9sb2NhbGl6ZWRTaG9ydFRpbWVGb3Jt
YXRUZXh0OworICAgIFZlY3RvcjxTdHJpbmc+IG1fc2hvcnRNb250aExhYmVsczsKKyAgICBWZWN0
b3I8U3RyaW5nPiBtX3Nob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzOwogICAgIFZlY3RvcjxTdHJp
bmc+IG1fdGltZUFNUE1MYWJlbHM7CiAjZW5kaWYKICAgICBib29sIG1fZGlkSW5pdGlhbGl6ZU51
bWJlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMu
bW0KaW5kZXggNWRjYTE3YTU1MTZkM2FiNjY0Mzc4ZTI2ODE3NzNiMjg0MTBhY2FjYi4uNmMzNjVk
ZjI2NzQ5Nzg0YzEwM2ZjYWNlNmMzMGU2YzU2MTBiOWQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQpAQCAtMjcyLDYgKzI3MiwzNyBAQCBTdHJp
bmcgTG9jYWxlTWFjOjpzaG9ydFRpbWVGb3JtYXQoKQogICAgIHJldHVybiBtX2xvY2FsaXplZFNo
b3J0VGltZUZvcm1hdFRleHQ7CiB9CiAKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVNYWM6
OnNob3J0TW9udGhMYWJlbHMoKQoreworICAgIGlmICghbV9zaG9ydE1vbnRoTGFiZWxzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKKyAgICBtX3Nob3J0TW9u
dGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKKyAgICBOU0FycmF5ICphcnJheSA9IFtzaG9y
dERhdGVGb3JtYXR0ZXIoKS5nZXQoKSBzaG9ydE1vbnRoU3ltYm9sc107CisgICAgaWYgKFthcnJh
eSBjb3VudF0gPT0gMTIpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEyOyAr
K2kpCisgICAgICAgICAgICBtX3Nob3J0TW9udGhMYWJlbHMuYXBwZW5kKFthcnJheSBvYmplY3RB
dEluZGV4OmldKTsKKyAgICAgICAgcmV0dXJuIG1fc2hvcnRNb250aExhYmVsczsKKyAgICB9Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoV1RGOjptb250aE5h
bWUpOyArK2kpCisgICAgICAgIG1fc2hvcnRNb250aExhYmVscy5hcHBlbmQoV1RGOjptb250aE5h
bWVbaV0pOworICAgIHJldHVybiBtX3Nob3J0TW9udGhMYWJlbHM7Cit9CisKK2NvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBMb2NhbGVNYWM6OnNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkKK3sKKyAg
ICBpZiAoIW1fc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gbV9zaG9ydFN0YW5kQWxvbmVNb250aExhYmVsczsKKyAgICBOU0FycmF5ICphcnJheSA9
IFtzaG9ydERhdGVGb3JtYXR0ZXIoKS5nZXQoKSBzaG9ydFN0YW5kYWxvbmVNb250aFN5bWJvbHNd
OworICAgIGlmIChbYXJyYXkgY291bnRdID09IDEyKSB7CisgICAgICAgIG1fc2hvcnRTdGFuZEFs
b25lTW9udGhMYWJlbHMucmVzZXJ2ZUNhcGFjaXR5KDEyKTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IDEyOyArK2kpCisgICAgICAgICAgICBtX3Nob3J0U3RhbmRBbG9uZU1vbnRo
TGFiZWxzLmFwcGVuZChbYXJyYXkgb2JqZWN0QXRJbmRleDppXSk7CisgICAgICAgIHJldHVybiBt
X3Nob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzOworICAgIH0KKyAgICBtX3Nob3J0U3RhbmRBbG9u
ZU1vbnRoTGFiZWxzID0gc2hvcnRNb250aExhYmVscygpOworICAgIHJldHVybiBtX3Nob3J0U3Rh
bmRBbG9uZU1vbnRoTGFiZWxzOworfQorCiBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlTWFj
Ojp0aW1lQU1QTUxhYmVscygpCiB7CiAgICAgaWYgKCFtX3RpbWVBTVBNTGFiZWxzLmlzRW1wdHko
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCmlu
ZGV4IDE3MGNiYzBmYTg2MjFiNWY1ZWQxYzY0MmQ1Y2M4YzViYmQzOTJhMjcuLmE3N2Y1YWFlZWMz
YjExZmYxYzQ2ZTkyZmY2MWE0NTU2ODllODdhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcApAQCAtMTM4LDYgKzEzOCwxOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHJldHVybiBsb2NhbGUtPnNob3J0VGltZUZvcm1hdCgpOwogICAgIH0KIAor
ICAgIFN0cmluZyBzaG9ydE1vbnRoTGFiZWwoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIHVu
c2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZU1hYz4gbG9jYWxlID0g
TG9jYWxlTWFjOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+
c2hvcnRNb250aExhYmVscygpW2luZGV4XTsKKyAgICB9CisKKyAgICBTdHJpbmcgc2hvcnRTdGFu
ZEFsb25lTW9udGhMYWJlbChjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgdW5zaWduZWQgaW5k
ZXgpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6
OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5zaG9ydFN0YW5k
QWxvbmVNb250aExhYmVscygpW2luZGV4XTsKKyAgICB9CisKICAgICBTdHJpbmcgdGltZUFNUE1M
YWJlbChjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgdW5zaWduZWQgaW5kZXgpCiAgICAgewog
ICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2Nh
bGVTdHJpbmcpOwpAQCAtMjY2LDYgKzI3OCwyOSBAQCBURVNUX0YoTG9jYWxlTWFjVGVzdCwgc2hv
cnRUaW1lRm9ybWF0KQogICAgIEVYUEVDVF9TVFJFUSgiSDptbSIsIHNob3J0VGltZUZvcm1hdCgi
amFfSlAiKS51dGY4KCkuZGF0YSgpKTsKIH0KIAorVEVTVF9GKExvY2FsZU1hY1Rlc3QsIHNob3J0
TW9udGhMYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVRKCJKYW4iLCBzaG9ydE1vbnRoTGFiZWwo
ImVuX1VTIiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJKYW4iLCBzaG9y
dFN0YW5kQWxvbmVNb250aExhYmVsKCJlbl9VUyIsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVY
UEVDVF9TVFJFUSgiRGVjIiwgc2hvcnRNb250aExhYmVsKCJlbl9VUyIsIDExKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkRlYyIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwo
ImVuX1VTIiwgMTEpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJqYW52LiIs
IHNob3J0TW9udGhMYWJlbCgiZnJfRlIiLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoImphbnYuIiwgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCgiZnJfRlIiLCAwKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImRceEMzXHhBOSIgImMuIiwgc2hvcnRNb250
aExhYmVsKCJmcl9GUiIsIDExKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImRc
eEMzXHhBOSIgImMuIiwgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCgiZnJfRlIiLCAxMSkudXRm
OCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIjFceEU2XHg5Q1x4ODgiLCBzaG9ydE1v
bnRoTGFiZWwoImphX0pQIiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIx
XHhFNlx4OUNceDg4Iiwgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCgiamFfSlAiLCAwKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEyXHhFNlx4OUNceDg4Iiwgc2hvcnRNb250
aExhYmVsKCJqYV9KUCIsIDExKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEy
XHhFNlx4OUNceDg4Iiwgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCgiamFfSlAiLCAxMSkudXRm
OCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RDBceEJDXHhEMFx4QjBceEQxXHg4
MFx4RDFceDgyXHhEMFx4QjAiLCBzaG9ydE1vbnRoTGFiZWwoInJ1X1JVIiwgMikudXRmOCgpLmRh
dGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQwXHg5Q1x4RDBceEIwXHhEMVx4ODBceEQxXHg4
MiIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwoInJ1X1JVIiwgMikudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJceEQwXHhCQ1x4RDBceEIwXHhEMVx4OEYiLCBzaG9ydE1vbnRo
TGFiZWwoInJ1X1JVIiwgNCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQw
XHg5Q1x4RDBceEIwXHhEMFx4QjkiLCBzaG9ydFN0YW5kQWxvbmVNb250aExhYmVsKCJydV9SVSIs
IDQpLnV0ZjgoKS5kYXRhKCkpOworfQorCiBURVNUX0YoTG9jYWxlTWFjVGVzdCwgdGltZUFNUE1M
YWJlbHMpCiB7CiAgICAgRVhQRUNUX1NUUkVRKCJBTSIsIHRpbWVBTVBNTGFiZWwoImVuX1VTIiwg
MCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0xvY2FsZVdpblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2Nh
bGVXaW5UZXN0LmNwcAppbmRleCA4ZTQwYWU0Yzg5YThkY2Q4NGUxOTI1ZjcyN2E2ZGJiMzcyMWQ0
NDdhLi4zNWYwNjRhYWM0OWM2N2UyN2U2NDMzNmM1NmI4NDNiNDA4ODRiNjAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAKQEAgLTE0Nyw2ICsx
NDcsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gbG9jYWxlLT5zaG9ydFRpbWVGb3Jt
YXQoKTsKICAgICB9CiAKKyAgICBTdHJpbmcgc2hvcnRNb250aExhYmVsKExDSUQgbGNpZCwgdW5z
aWduZWQgaW5kZXgpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBM
b2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+c2hvcnRNb250
aExhYmVscygpW2luZGV4XTsKKyAgICB9CisKICAgICBTdHJpbmcgdGltZUFNUE1MYWJlbChMQ0lE
IGxjaWQsIHVuc2lnbmVkIGluZGV4KQogICAgIHsKICAgICAgICAgT3duUHRyPExvY2FsZVdpbj4g
bG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CkBAIC0zMTEsNiArMzE3LDE2IEBAIFRF
U1RfRihMb2NhbGVXaW5UZXN0LCBzaG9ydFRpbWVGb3JtYXQpCiAgICAgRVhQRUNUX1NUUkVRKCJI
Om1tOnNzIiwgc2hvcnRUaW1lRm9ybWF0KEphcGFuZXNlSlApLnV0ZjgoKS5kYXRhKCkpOwogfQog
CitURVNUX0YoTG9jYWxlV2luVGVzdCwgc2hvcnRNb250aExhYmVscykKK3sKKyAgICBFWFBFQ1Rf
U1RSRVEoIkphbiIsIHNob3J0TW9udGhMYWJlbChFbmdsaXNoVVMsIDApLnV0ZjgoKS5kYXRhKCkp
OworICAgIEVYUEVDVF9TVFJFUSgiRGVjIiwgc2hvcnRNb250aExhYmVsKEVuZ2xpc2hVUywgMTEp
LnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiamFudi4iLCBzaG9ydE1vbnRoTGFi
ZWwoRnJlbmNoRlIsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiZFx4QzNc
eEE5IiAiYy4iLCBzaG9ydE1vbnRoTGFiZWwoRnJlbmNoRlIsIDExKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIjEiLCBzaG9ydE1vbnRoTGFiZWwoSmFwYW5lc2VKUCwgMCkudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIxMiIsIHNob3J0TW9udGhMYWJlbChKYXBh
bmVzZUpQLCAxMSkudXRmOCgpLmRhdGEoKSk7Cit9CisKIFRFU1RfRihMb2NhbGVXaW5UZXN0LCB0
aW1lQU1QTUxhYmVscykKIHsKICAgICBFWFBFQ1RfU1RSRVEoIkFNIiwgdGltZUFNUE1MYWJlbChF
bmdsaXNoVVMsIDApLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAppbmRleCAyYTIwNTA5YzdhZGMy
NzkzY2RiMTFlN2FhYWRmOTFjZTM4YmE3NDNkLi44ODk0NmU4NGRiZDBiMzFmM2RjMDIyYjk5OTRm
MWExYTEwZWRkODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xv
Y2FsaXplZERhdGVJQ1VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcApAQCAtMTA2LDYgKzEwNiwxOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIHJldHVybiBsb2NhbGUtPnNob3J0VGltZUZvcm1hdCgpOwogICAgIH0KIAorICAg
IFN0cmluZyBzaG9ydE1vbnRoTGFiZWwoY29uc3QgY2hhciogbG9jYWxlU3RyaW5nLCB1bnNpZ25l
ZCBpbmRleCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVJQ1U+IGxvY2FsZSA9IExvY2Fs
ZUlDVTo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPnNob3J0
TW9udGhMYWJlbHMoKVtpbmRleF07CisgICAgfQorCisgICAgU3RyaW5nIHNob3J0U3RhbmRBbG9u
ZU1vbnRoTGFiZWwoY29uc3QgY2hhciogbG9jYWxlU3RyaW5nLCB1bnNpZ25lZCBpbmRleCkKKyAg
ICB7CisgICAgICAgIE93blB0cjxMb2NhbGVJQ1U+IGxvY2FsZSA9IExvY2FsZUlDVTo6Y3JlYXRl
KGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPnNob3J0U3RhbmRBbG9uZU1v
bnRoTGFiZWxzKClbaW5kZXhdOworICAgIH0KKwogICAgIExhYmVscyB0aW1lQU1QTUxhYmVscyhj
b25zdCBjaGFyKiBsb2NhbGVTdHJpbmcpCiAgICAgewogICAgICAgICBPd25QdHI8TG9jYWxlSUNV
PiBsb2NhbGUgPSBMb2NhbGVJQ1U6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOwpAQCAtMTU0LDYgKzE2
NiwyOSBAQCBURVNUX0YoTG9jYWxpemVkRGF0ZUlDVVRlc3QsIGxvY2FsaXplZFNob3J0RGF0ZUZv
cm1hdFRleHQpCiAgICAgRVhQRUNUX1NUUkVRKCJIOm1tIiwgbG9jYWxpemVkU2hvcnREYXRlRm9y
bWF0VGV4dCgiamEiKS51dGY4KCkuZGF0YSgpKTsKIH0KIAorVEVTVF9GKExvY2FsaXplZERhdGVJ
Q1VUZXN0LCBzaG9ydE1vbnRoTGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgiSmFuIiwgc2hv
cnRNb250aExhYmVsKCJlbl9VUyIsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiSmFuIiwgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbCgiZW5fVVMiLCAwKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkRlYyIsIHNob3J0TW9udGhMYWJlbCgiZW5fVVMiLCAx
MSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJEZWMiLCBzaG9ydFN0YW5kQWxv
bmVNb250aExhYmVsKCJlbl9VUyIsIDExKS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9T
VFJFUSgiamFudi4iLCBzaG9ydE1vbnRoTGFiZWwoImZyX0ZSIiwgMCkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJqYW52LiIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwoImZy
X0ZSIiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJkXHhDM1x4QTkiICJj
LiIsIHNob3J0TW9udGhMYWJlbCgiZnJfRlIiLCAxMSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJkXHhDM1x4QTkiICJjLiIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwoImZy
X0ZSIiwgMTEpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxXHhFNlx4OUNc
eDg4Iiwgc2hvcnRNb250aExhYmVsKCJqYV9KUCIsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVY
UEVDVF9TVFJFUSgiMVx4RTZceDlDXHg4OCIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwoImph
X0pQIiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIxMlx4RTZceDlDXHg4
OCIsIHNob3J0TW9udGhMYWJlbCgiamFfSlAiLCAxMSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCIxMlx4RTZceDlDXHg4OCIsIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWwoImph
X0pQIiwgMTEpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJceEQwXHhCQ1x4
RDBceEIwXHhEMVx4ODBceEQxXHg4Mlx4RDBceEIwIiwgc2hvcnRNb250aExhYmVsKCJydV9SVSIs
IDIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhEMFx4QkNceEQwXHhCMFx4
RDFceDgwXHhEMVx4ODIiLCBzaG9ydFN0YW5kQWxvbmVNb250aExhYmVsKCJydV9SVSIsIDIpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhEMFx4QkNceEQwXHhCMFx4RDFceDhG
Iiwgc2hvcnRNb250aExhYmVsKCJydV9SVSIsIDQpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVD
VF9TVFJFUSgiXHhEMFx4QkNceEQwXHhCMFx4RDBceEI5Iiwgc2hvcnRTdGFuZEFsb25lTW9udGhM
YWJlbCgicnVfUlUiLCA0KS51dGY4KCkuZGF0YSgpKTsKK30KKwogVEVTVF9GKExvY2FsaXplZERh
dGVJQ1VUZXN0LCB0aW1lQU1QTUxhYmVscykKIHsKICAgICBFWFBFQ1RfRVEobGFiZWxzKCJBTSIs
ICJQTSIpLCB0aW1lQU1QTUxhYmVscygiZW5fVVMiKSk7Cg==
</data>
<flag name="review"
          id="182886"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>