<?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>160462</bug_id>
          
          <creation_ts>2016-08-02 13:16:02 -0700</creation_ts>
          <short_desc>Share and improve extraction of character for operator and token elements</short_desc>
          <delta_ts>2016-08-23 06:38:15 -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>MathML</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>160172</dependson>
          <blocked>122296</blocked>
    
    <blocked>153984</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216575</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-02 13:16:02 -0700</bug_when>
    <thetext>See bug 160241 comment 7

MathMLOperatorElement.cpp:    AtomicString textContent = string.stripWhiteSpace().simplifyWhiteSpace().replace(hyphenMinus, minusSign).impl();
RenderMathMLToken.cpp:    AtomicString textContent = element().textContent().stripWhiteSpace().simplifyWhiteSpace();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216873</commentid>
    <comment_count>1</comment_count>
      <attachid>285217</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-03 03:59:02 -0700</bug_when>
    <thetext>Created attachment 285217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218211</commentid>
    <comment_count>2</comment_count>
      <attachid>285217</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-05 23:27:03 -0700</bug_when>
    <thetext>Comment on attachment 285217
Patch

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

&gt; Source/WebCore/mathml/MathMLElement.cpp:401
&gt; -static inline StringView skipLeadingAndTrailingWhitespace(const StringView&amp; stringView)
&gt; +StringView MathMLElement::skipLeadingAndTrailingWhitespace(const StringView&amp; stringView)

I don’t think this is the right thing to do. We should move this into the shared HTMLParserIdioms header instead. Please come back and do that eventually.

Should be named strip, not skip.

&gt; Source/WebCore/mathml/MathMLOperatorElement.cpp:57
&gt; +            UChar character = static_cast&lt;UChar&gt;(codePoint.value());

This should compile without the typecast.

&gt; Source/WebCore/mathml/MathMLTextElement.cpp:100
&gt; +    auto codePoints = skipLeadingAndTrailingWhitespace(string).codePoints();

Why the need to strip whitespace? Does the specification really call for this?

&gt; Source/WebCore/mathml/MathMLTextElement.cpp:104
&gt; +    Optional&lt;UChar32&gt; character = *iterator;

Should just use UChar32 or auto here. I think the code below will compile without this already being an optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221725</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-21 03:18:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I don’t think this is the right thing to do. We should move this into the
&gt; shared HTMLParserIdioms header instead. Please come back and do that
&gt; eventually.

Yes, that was my plan. Making this depends on bug 160172.


&gt; &gt; Source/WebCore/mathml/MathMLTextElement.cpp:100
&gt; &gt; +    auto codePoints = skipLeadingAndTrailingWhitespace(string).codePoints();
&gt; 
&gt; Why the need to strip whitespace? Does the specification really call for
&gt; this?

Yes, unfortunately. Again see https://lists.w3.org/Archives/Public/www-math/2016Aug/0000.html

Note that at the moment we have inconsistent behavior: we trim whitespace for &lt;mi&gt; x &lt;/mi&gt; (this case) but not for &lt;mi&gt; sin &lt;/mi&gt; (bug 125628). As I said on the Math WG mailing list I think this requirement is useless ; nobody adds such spaces in MathML formulas used in practice. I would suggest to just depart from the spec here and ignore this requirement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222198</commentid>
    <comment_count>4</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-23 05:29:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/mathml/MathMLTextElement.cpp:104
&gt; &gt; +    Optional&lt;UChar32&gt; character = *iterator;
&gt; 
&gt; Should just use UChar32 or auto here. I think the code below will compile
&gt; without this already being an optional.

On Linux, I gcc complains with

Source/WebCore/mathml/MathMLTokenElement.cpp:99:41: error: operands to ?: have different types &apos;UChar32 {aka int}&apos; and &apos;const WTF::NulloptTag&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222199</commentid>
    <comment_count>5</comment_count>
      <attachid>286704</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-23 05:31:06 -0700</bug_when>
    <thetext>Created attachment 286704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222209</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-23 06:38:15 -0700</bug_when>
    <thetext>Committed r204830: &lt;http://trac.webkit.org/changeset/204830&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285217</attachid>
            <date>2016-08-03 03:59:02 -0700</date>
            <delta_ts>2016-08-05 23:27:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160462-20160803125738.patch</filename>
            <type>text/plain</type>
            <size>8348</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkxMTFmOGI1MGI2M2M0
NmViNGU0Y2JjYzFjOWMwNzkxZmI0MzczOS4uZTE2NzVkYzNlOGZmZWFlNzY3ZDEzMGI1YWVjNDNj
ZGRjZjg3ZTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA4LTAzICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBTaGFyZSBhbmQgaW1wcm92
ZSBleHRyYWN0aW9uIG9mIGNoYXJhY3RlciBmb3Igb3BlcmF0b3IgYW5kIHRva2VuIGVsZW1lbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIG1h
dGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTEVsZW1lbnQ6
OnNraXBMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTogTWFrZSB0aGlzIGEgcHJvdGVjdGVk
IG1lbWJlciBvZgorICAgICAgICBNYXRoTUxFbGVtZW50IHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQg
aW4gTWF0aE1MVGV4dEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpza2lwTGVhZGluZ0FuZFRy
YWlsaW5nV2hpdGVzcGFjZSk6IERlbGV0ZWQuCisgICAgICAgICogbWF0aG1sL01hdGhNTEVsZW1l
bnQuaDogRGVjbGFyZSBza2lwTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZS4KKyAgICAgICAg
KiBtYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTE9wZXJhdG9yRWxlbWVudDo6cGFyc2VPcGVyYXRvckNoYXIpOiBVc2UgY29udmVydFRvU2lu
Z2xlQ29kZVBvaW50IHRvIGV4dHJhY3QKKyAgICAgICAgYSBjb2RlIHBvaW50IG1vcmUgZWZmaWNp
ZW50bHkuIEZvciBub3csIHdlIGNvbnRpbnVlIHRvIG9ubHkgaGFuZGxlIEJNUCBjaGFyYWN0ZXJz
LgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNYXRoTUxUZXh0RWxlbWVudDo6Y29udmVydFRvU2luZ2xlQ29kZVBvaW50KTogSGVscGVy
IGZ1bmN0aW9uIHRvIHRyeSBhbmQgY29udmVydCBhCisgICAgICAgIHN0cmluZyB0byBhIHNpbmds
ZSBjb2RlIHBvaW50IGFmdGVyIGhhdmluZyByZW1vdmVkIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNw
YWNlLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oOiBEZWNsYXJlIGNvbnZl
cnRUb1NpbmdsZUNvZGVQb2ludC4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFRva2VuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFRva2VuOjp1cGRh
dGVNYXRoVmFyaWFudEdseXBoKTogVXNlIGNvbnZlcnRUb1NpbmdsZUNvZGVQb2ludCB0byBleHRy
YWN0CisgICAgICAgIGEgY29kZSBwb2ludCBtb3JlIGVmZmljaWVudGx5LgorCiAyMDE2LTA4LTAy
ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIGRldGVy
bWluYXRpb24gb2Ygb3BlcmF0b3IgZGlyZWN0aW9uIGludG8gRE9NIGNsYXNzIGFuZCByZWR1Y2Ug
cmVsYXlvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCA5ZTA3
NWNlZTFiNmY4NTY5YTk2ZGE0Yzk3OThhZTA5OThhYWJmNTU5Li5jOTQ3NmQ3YWNlM2NjZWE4Y2Vi
ZGE4NzhiZWMyNTlhNzNhYmFiNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuY3BwCkBAIC0zOTgsNyArMzk4LDcgQEAgaW50IE1hdGhNTEVsZW1lbnQ6OnRhYkluZGV4KCkg
Y29uc3QKICAgICByZXR1cm4gRWxlbWVudDo6dGFiSW5kZXgoKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBTdHJpbmdWaWV3IHNraXBMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGNvbnN0IFN0cmlu
Z1ZpZXcmIHN0cmluZ1ZpZXcpCitTdHJpbmdWaWV3IE1hdGhNTEVsZW1lbnQ6OnNraXBMZWFkaW5n
QW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGNvbnN0IFN0cmluZ1ZpZXcmIHN0cmluZ1ZpZXcpCiB7CiAg
ICAgdW5zaWduZWQgc3RhcnQgPSAwLCBzdHJpbmdMZW5ndGggPSBzdHJpbmdWaWV3Lmxlbmd0aCgp
OwogICAgIHdoaWxlIChzdHJpbmdMZW5ndGggPiAwICYmIGlzSFRNTFNwYWNlKHN0cmluZ1ZpZXdb
c3RhcnRdKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKaW5kZXggNGNhYjc2
MTg2MjY2MmY2YTk5ZWU3ODIzY2FlY2M1ZmYwYWNjNTE3YS4uNmE1NDM3YzY2Y2IyZGZjOGFmYzE1
NGVlNjcwNjE2NzE5MjY0YWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5o
CkBAIC05OSw2ICs5OSw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBNYXRoTUxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKKyAgICBzdGF0aWMg
U3RyaW5nVmlldyBza2lwTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZShjb25zdCBTdHJpbmdW
aWV3Jik7CisKICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxP
cGVyYXRvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9y
RWxlbWVudC5jcHAKaW5kZXggNjQ2MjFmNjZmZmIwZWY3ZDM3YjgxMjAzYWFjMTk5MmJlNDBiY2Y4
NC4uNTRlNmFjNDQ2MjJmNDg1ODVmNjUxNDk5OGRhZTUxZDQ1ZTAzNDZlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAKQEAgLTUwLDE2ICs1
MCwxOCBAQCBSZWY8TWF0aE1MT3BlcmF0b3JFbGVtZW50PiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YQogTWF0aE1MT3BlcmF0b3JFbGVtZW50OjpP
cGVyYXRvckNoYXIgTWF0aE1MT3BlcmF0b3JFbGVtZW50OjpwYXJzZU9wZXJhdG9yQ2hhcihjb25z
dCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBPcGVyYXRvckNoYXIgb3BlcmF0b3JDaGFyOwotCi0g
ICAgLy8gV2UgY29sbGFwc2UgdGhlIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2UgdGhlIGh5cGhlbnMg
YnkgbWludXMgc2lnbnMuCi0gICAgQXRvbWljU3RyaW5nIHRleHRDb250ZW50ID0gc3RyaW5nLnN0
cmlwV2hpdGVTcGFjZSgpLnNpbXBsaWZ5V2hpdGVTcGFjZSgpLnJlcGxhY2UoaHlwaGVuTWludXMs
IG1pbnVzU2lnbikuaW1wbCgpOwotCi0gICAgLy8gV2UgdmVyaWZ5IHdoZXRoZXIgdGhlIG9wZXJh
dG9yIHRleHQgY2FuIGJlIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIFVDaGFyLgotICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGEgcmVhbGx5IGluZWZmaWNpZW50IHdheSB0byBleHRyYWN0IGEgY2hhcmFj
dGVyIGZyb20gYSBzdHJpbmcgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2MDI0MSNjNykuCi0gICAg
Ly8gRklYTUU6IFRoaXMgZG9lcyBub3QgaGFuZGxlIHN1cnJvZ2F0ZSBwYWlycyAoaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIyMjk2KS4KLSAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBoYW5kbGUg
PG1vPiBvcGVyYXRvcnMgd2l0aCBtdWx0aXBsZSBjaGFyYWN0ZXJzIChodHRwczovL3dlYmtpdC5v
cmcvYi8xMjQ4MjgpLgotICAgIG9wZXJhdG9yQ2hhci5jaGFyYWN0ZXIgPSB0ZXh0Q29udGVudC5s
ZW5ndGgoKSA9PSAxID8gdGV4dENvbnRlbnRbMF0gOiAwOwotICAgIG9wZXJhdG9yQ2hhci5pc1Zl
cnRpY2FsID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Ojppc1ZlcnRpY2FsKG9wZXJhdG9yQ2hh
ci5jaGFyYWN0ZXIpOworICAgIC8vIEZJWE1FOiBUaGlzIG9wZXJhdG9yIGRpY3Rpb25hcnkgZG9l
cyBub3QgYWNjZXB0IG11bHRpcGxlIGNoYXJhY3RlcnMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEy
NDgyOCkuCisgICAgaWYgKGF1dG8gY29kZVBvaW50ID0gY29udmVydFRvU2luZ2xlQ29kZVBvaW50
KHN0cmluZykpIHsKKyAgICAgICAgLy8gRklYTUU6IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS9S
ZW5kZXJNYXRoTUxPcGVyYXRvci9NYXRoT3BlcmF0b3IgZG8gbm90IHN1cHBvcnQgbm9uLUJNUCBj
aGFyYWN0ZXJzIChodHRwczovL3dlYmtpdC5vcmcvYi8xMjIyOTYpLgorICAgICAgICBpZiAoVV9J
U19CTVAoY29kZVBvaW50LnZhbHVlKCkpKSB7CisgICAgICAgICAgICBVQ2hhciBjaGFyYWN0ZXIg
PSBzdGF0aWNfY2FzdDxVQ2hhcj4oY29kZVBvaW50LnZhbHVlKCkpOworICAgICAgICAgICAgLy8g
VGhlIG1pbnVzIHNpZ24gcmVuZGVycyBiZXR0ZXIgdGhhbiB0aGUgaHlwaGVuIHNpZ24gdXNlZCBp
biBzb21lIE1hdGhNTCBmb3JtdWxhcy4KKyAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIgPT0gaHlw
aGVuTWludXMpCisgICAgICAgICAgICAgICAgY2hhcmFjdGVyID0gbWludXNTaWduOworICAgICAg
ICAgICAgb3BlcmF0b3JDaGFyLmNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgICAgIG9w
ZXJhdG9yQ2hhci5pc1ZlcnRpY2FsID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Ojppc1ZlcnRp
Y2FsKG9wZXJhdG9yQ2hhci5jaGFyYWN0ZXIpOworICAgICAgICB9CisgICAgfQogICAgIHJldHVy
biBvcGVyYXRvckNoYXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVs
ZW1lbnQuY3BwCmluZGV4IDM0OWRmNDhiYmMzMDQ5OGY5Y2IzYWZlYmU2N2Q1Nzg0NDc3ZWE0YzUu
LmVmZmU1NzljNjg0NTBiMWFjMTIzYmEzNjRiYTE5MTY1NzcyYTUwMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmNwcApAQCAtOTUsNiArOTUsMTcgQEAgYm9v
bCBNYXRoTUxUZXh0RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gaXNQaHJhc2luZ0NvbnRlbnQoY2hpbGQpICYmIFN0
eWxlZEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOwogfQogCitPcHRp
b25hbDxVQ2hhcjMyPiBNYXRoTUxUZXh0RWxlbWVudDo6Y29udmVydFRvU2luZ2xlQ29kZVBvaW50
KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gY29kZVBvaW50cyA9IHNraXBMZWFkaW5n
QW5kVHJhaWxpbmdXaGl0ZXNwYWNlKHN0cmluZykuY29kZVBvaW50cygpOworICAgIGF1dG8gaXRl
cmF0b3IgPSBjb2RlUG9pbnRzLmJlZ2luKCk7CisgICAgaWYgKGl0ZXJhdG9yID09IGNvZGVQb2lu
dHMuZW5kKCkpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIE9wdGlvbmFsPFVDaGFyMzI+
IGNoYXJhY3RlciA9ICppdGVyYXRvcjsKKyAgICArK2l0ZXJhdG9yOworICAgIHJldHVybiBpdGVy
YXRvciA9PSBjb2RlUG9pbnRzLmVuZCgpID8gY2hhcmFjdGVyIDogTnVsbG9wdDsKK30KKwogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRl
eHRFbGVtZW50LmgKaW5kZXggODQ0OWQyNGZiYzYxNmEyMjU2MDAwZjhlMTU5M2VjMjU5OGI1YjAw
OC4uMTVkODU3MmNjYzNmMDc4YjkzYmM2ODAzY2IwNGU4NDcyZjFlOTVkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmgKQEAgLTM3LDYgKzM3LDggQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIGJvb2wgYWNjZXB0c01hdGhWYXJpYW50
QXR0cmlidXRlKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgc3RhdGljIE9wdGlvbmFs
PFVDaGFyMzI+IGNvbnZlcnRUb1NpbmdsZUNvZGVQb2ludChTdHJpbmdWaWV3KTsKKwogcHJvdGVj
dGVkOgogICAgIE1hdGhNTFRleHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Jik7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxUb2tlbi5jcHAKaW5kZXggMDM5ODg5ODQ4MzM0M2MxNGM2MTlkNWE0NzFlNGVj
NTI4OTdiMDg3Ny4uNDBkMDI4OTI5MjRmOWQ0OTkxZWYwYmEyYWIzYTNlZDA2ZjQyNzQ4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tl
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxU
b2tlbi5jcHAKQEAgLTUyMSwxNCArNTIxLDEyIEBAIHZvaWQgUmVuZGVyTWF0aE1MVG9rZW46OnVw
ZGF0ZU1hdGhWYXJpYW50R2x5cGgoKQogICAgIH0KIAogICAgIGNvbnN0IGF1dG8mIHRva2VuRWxl
bWVudCA9IGVsZW1lbnQoKTsKLSAgICBBdG9taWNTdHJpbmcgdGV4dENvbnRlbnQgPSBlbGVtZW50
KCkudGV4dENvbnRlbnQoKS5zdHJpcFdoaXRlU3BhY2UoKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsK
LSAgICBpZiAodGV4dENvbnRlbnQubGVuZ3RoKCkgPT0gMSkgewotICAgICAgICBVQ2hhcjMyIGNv
ZGVQb2ludCA9IHRleHRDb250ZW50WzBdOworICAgIGlmIChhdXRvIGNvZGVQb2ludCA9IE1hdGhN
TFRleHRFbGVtZW50Ojpjb252ZXJ0VG9TaW5nbGVDb2RlUG9pbnQoZWxlbWVudCgpLnRleHRDb250
ZW50KCkpKSB7CiAgICAgICAgIE1hdGhNTEVsZW1lbnQ6Ok1hdGhWYXJpYW50IG1hdGh2YXJpYW50
ID0gbWF0aE1MU3R5bGUoKS0+bWF0aFZhcmlhbnQoKTsKICAgICAgICAgaWYgKG1hdGh2YXJpYW50
ID09IE1hdGhNTEVsZW1lbnQ6Ok1hdGhWYXJpYW50OjpOb25lKQogICAgICAgICAgICAgbWF0aHZh
cmlhbnQgPSB0b2tlbkVsZW1lbnQuaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpID8gTWF0
aE1MRWxlbWVudDo6TWF0aFZhcmlhbnQ6Okl0YWxpYyA6IE1hdGhNTEVsZW1lbnQ6Ok1hdGhWYXJp
YW50OjpOb3JtYWw7Ci0gICAgICAgIFVDaGFyMzIgdHJhbnNmb3JtZWRDb2RlUG9pbnQgPSBtYXRo
VmFyaWFudChjb2RlUG9pbnQsIG1hdGh2YXJpYW50KTsKLSAgICAgICAgaWYgKHRyYW5zZm9ybWVk
Q29kZVBvaW50ICE9IGNvZGVQb2ludCkKKyAgICAgICAgVUNoYXIzMiB0cmFuc2Zvcm1lZENvZGVQ
b2ludCA9IG1hdGhWYXJpYW50KGNvZGVQb2ludC52YWx1ZSgpLCBtYXRodmFyaWFudCk7CisgICAg
ICAgIGlmICh0cmFuc2Zvcm1lZENvZGVQb2ludCAhPSBjb2RlUG9pbnQudmFsdWUoKSkKICAgICAg
ICAgICAgIG1fbWF0aFZhcmlhbnRHbHlwaCA9IHN0eWxlKCkuZm9udENhc2NhZGUoKS5nbHlwaERh
dGFGb3JDaGFyYWN0ZXIodHJhbnNmb3JtZWRDb2RlUG9pbnQsICFzdHlsZSgpLmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSk7CiAgICAgfQogfQo=
</data>
<flag name="review"
          id="308849"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286704</attachid>
            <date>2016-08-23 05:31:06 -0700</date>
            <delta_ts>2016-08-23 05:31:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Share-and-improve-extraction-of-character-for-operat.patch</filename>
            <type>text/plain</type>
            <size>8913</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAzODQ3MGRiMzQxNDY5OWY4ZjljMDRhOTM0MGE0YWZiZTM3ZjFhODRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogVHVlLCAyMyBBdWcgMjAxNiAxNDoyODoxOSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFNoYXJl
IGFuZCBpbXByb3ZlIGV4dHJhY3Rpb24gb2YgY2hhcmFjdGVyIGZvciBvcGVyYXRvciBhbmQKIHRv
a2VuIGVsZW1lbnRzCgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwICAgICAgICAgICAgfCAgNCArKy0tCiBTb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oICAgICAgICAgICAgICB8ICAyICsrCiBTb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcCAgICB8IDIyICsrKysrKysr
KystLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuY3Bw
ICAgICAgIHwgMTEgKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2Vu
RWxlbWVudC5oICAgICAgICAgfCAgMiArKwogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxUb2tlbi5jcHAgfCAgOCArKystLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDU3IGlu
c2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3N2ZiMWZiLi5iMDZk
NTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMDgtMDMgIEZyZWRlcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIFNoYXJlIGFuZCBpbXByb3ZlIGV4dHJh
Y3Rpb24gb2YgY2hhcmFjdGVyIGZvciBvcGVyYXRvciBhbmQgdG9rZW4gZWxlbWVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDQ2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
YWxyZWFkeSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogbWF0aG1sL01h
dGhNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MRWxlbWVudDo6c3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTogTWFrZSB0aGlzIGEgcHJvdGVjdGVkIG1lbWJl
ciBvZgorICAgICAgICBNYXRoTUxFbGVtZW50IHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gTWF0
aE1MVG9rZW5FbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6c2tpcExlYWRpbmdBbmRUcmFpbGlu
Z1doaXRlc3BhY2UpOiBEZWxldGVkLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50Lmg6
IERlY2xhcmUgc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlLgorICAgICAgICAqIG1h
dGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1M
T3BlcmF0b3JFbGVtZW50OjpwYXJzZU9wZXJhdG9yQ2hhcik6IFVzZSBjb252ZXJ0VG9TaW5nbGVD
b2RlUG9pbnQgdG8gZXh0cmFjdAorICAgICAgICBhIGNvZGUgcG9pbnQgbW9yZSBlZmZpY2llbnRs
eS4gRm9yIG5vdywgd2UgY29udGludWUgdG8gb25seSBoYW5kbGUgQk1QIGNoYXJhY3RlcnMuCisg
ICAgICAgICogbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXRoTUxUb2tlbkVsZW1lbnQ6OmNvbnZlcnRUb1NpbmdsZUNvZGVQb2ludCk6IEhlbHBlciBm
dW5jdGlvbiB0byB0cnkgYW5kIGNvbnZlcnQgYQorICAgICAgICBzdHJpbmcgdG8gYSBzaW5nbGUg
Y29kZSBwb2ludCBhZnRlciBoYXZpbmcgcmVtb3ZlZCBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFj
ZS4KKyAgICAgICAgKiBtYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50Lmg6IERlY2xhcmUgY29udmVy
dFRvU2luZ2xlQ29kZVBvaW50LgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MVG9rZW46OnVwZGF0
ZU1hdGhWYXJpYW50R2x5cGgpOiBVc2UgY29udmVydFRvU2luZ2xlQ29kZVBvaW50IHRvIGV4dHJh
Y3QKKyAgICAgICAgYSBjb2RlIHBvaW50IG1vcmUgZWZmaWNpZW50bHkuCisKIDIwMTYtMDgtMjMg
IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbmFtZSBNYXRo
TUxJbmxpbmVDb250YWluZXJFbGVtZW50IHRvIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCBjM2NhYTAyMC4uODQ0Zjdi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcApAQCAtMzY1LDcgKzM2
NSw3IEBAIGludCBNYXRoTUxFbGVtZW50Ojp0YWJJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIEVs
ZW1lbnQ6OnRhYkluZGV4KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgU3RyaW5nVmlldyBza2lwTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZShjb25zdCBTdHJpbmdWaWV3JiBzdHJpbmdWaWV3KQor
U3RyaW5nVmlldyBNYXRoTUxFbGVtZW50OjpzdHJpcExlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3Bh
Y2UoY29uc3QgU3RyaW5nVmlldyYgc3RyaW5nVmlldykKIHsKICAgICB1bnNpZ25lZCBzdGFydCA9
IDAsIHN0cmluZ0xlbmd0aCA9IHN0cmluZ1ZpZXcubGVuZ3RoKCk7CiAgICAgd2hpbGUgKHN0cmlu
Z0xlbmd0aCA+IDAgJiYgaXNIVE1MU3BhY2Uoc3RyaW5nVmlld1tzdGFydF0pKSB7CkBAIC00NzAs
NyArNDcwLDcgQEAgTWF0aE1MRWxlbWVudDo6TGVuZ3RoIE1hdGhNTEVsZW1lbnQ6OnBhcnNlTWF0
aE1MTGVuZ3RoKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIC8vIEluc3RlYWQsIHdlIGp1c3Qg
dXNlIGlzSFRNTFNwYWNlIGFuZCB0b0Zsb2F0IHRvIHBhcnNlIHRoZXNlIHBhcnRzLgogCiAgICAg
Ly8gV2UgZmlyc3Qgc2tpcCB3aGl0ZXNwYWNlIGZyb20gYm90aCBlbmRzIG9mIHRoZSBzdHJpbmcu
Ci0gICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3ID0gc2tpcExlYWRpbmdBbmRUcmFpbGluZ1doaXRl
c3BhY2Uoc3RyaW5nKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXcgPSBzdHJpcExlYWRpbmdB
bmRUcmFpbGluZ1doaXRlc3BhY2Uoc3RyaW5nKTsKIAogICAgIGlmIChzdHJpbmdWaWV3LmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIExlbmd0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmgKaW5kZXggMjcxMzc3NC4uYmI5NTMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MRWxlbWVudC5oCkBAIC05Myw2ICs5Myw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBN
YXRoTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAK
KyAgICBzdGF0aWMgU3RyaW5nVmlldyBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2Uo
Y29uc3QgU3RyaW5nVmlldyYpOworCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcAppbmRleCA0
NWZjNzgzLi44MWMxN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
T3BlcmF0b3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3Bl
cmF0b3JFbGVtZW50LmNwcApAQCAtNTAsMTYgKzUwLDE4IEBAIFJlZjxNYXRoTUxPcGVyYXRvckVs
ZW1lbnQ+IE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhCiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6Ok9wZXJhdG9yQ2hhciBNYXRoTUxPcGVyYXRvckVs
ZW1lbnQ6OnBhcnNlT3BlcmF0b3JDaGFyKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIE9w
ZXJhdG9yQ2hhciBvcGVyYXRvckNoYXI7Ci0KLSAgICAvLyBXZSBjb2xsYXBzZSB0aGUgd2hpdGVz
cGFjZSBhbmQgcmVwbGFjZSB0aGUgaHlwaGVucyBieSBtaW51cyBzaWducy4KLSAgICBBdG9taWNT
dHJpbmcgdGV4dENvbnRlbnQgPSBzdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxpZnlXaGl0
ZVNwYWNlKCkucmVwbGFjZShoeXBoZW5NaW51cywgbWludXNTaWduKS5pbXBsKCk7Ci0KLSAgICAv
LyBXZSB2ZXJpZnkgd2hldGhlciB0aGUgb3BlcmF0b3IgdGV4dCBjYW4gYmUgcmVwcmVzZW50ZWQg
YnkgYSBzaW5nbGUgVUNoYXIuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgYSByZWFsbHkgaW5lZmZp
Y2llbnQgd2F5IHRvIGV4dHJhY3QgYSBjaGFyYWN0ZXIgZnJvbSBhIHN0cmluZyAoaHR0cHM6Ly93
ZWJraXQub3JnL2IvMTYwMjQxI2M3KS4KLSAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBoYW5k
bGUgc3Vycm9nYXRlIHBhaXJzIChodHRwczovL3dlYmtpdC5vcmcvYi8xMjIyOTYpLgotICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSA8bW8+IG9wZXJhdG9ycyB3aXRoIG11bHRpcGxl
IGNoYXJhY3RlcnMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNDgyOCkuCi0gICAgb3BlcmF0b3JD
aGFyLmNoYXJhY3RlciA9IHRleHRDb250ZW50Lmxlbmd0aCgpID09IDEgPyB0ZXh0Q29udGVudFsw
XSA6IDA7Ci0gICAgb3BlcmF0b3JDaGFyLmlzVmVydGljYWwgPSBNYXRoTUxPcGVyYXRvckRpY3Rp
b25hcnk6OmlzVmVydGljYWwob3BlcmF0b3JDaGFyLmNoYXJhY3Rlcik7CisgICAgLy8gRklYTUU6
IFRoaXMgb3BlcmF0b3IgZGljdGlvbmFyeSBkb2VzIG5vdCBhY2NlcHQgbXVsdGlwbGUgY2hhcmFj
dGVycyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMTI0ODI4KS4KKyAgICBpZiAoYXV0byBjb2RlUG9p
bnQgPSBjb252ZXJ0VG9TaW5nbGVDb2RlUG9pbnQoc3RyaW5nKSkgeworICAgICAgICAvLyBGSVhN
RTogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5L1JlbmRlck1hdGhNTE9wZXJhdG9yL01hdGhPcGVy
YXRvciBkbyBub3Qgc3VwcG9ydCBub24tQk1QIGNoYXJhY3RlcnMgKGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzEyMjI5NikuCisgICAgICAgIGlmIChVX0lTX0JNUChjb2RlUG9pbnQudmFsdWUoKSkpIHsK
KyAgICAgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNvZGVQb2ludC52YWx1ZSgpOworICAgICAg
ICAgICAgLy8gVGhlIG1pbnVzIHNpZ24gcmVuZGVycyBiZXR0ZXIgdGhhbiB0aGUgaHlwaGVuIHNp
Z24gdXNlZCBpbiBzb21lIE1hdGhNTCBmb3JtdWxhcy4KKyAgICAgICAgICAgIGlmIChjaGFyYWN0
ZXIgPT0gaHlwaGVuTWludXMpCisgICAgICAgICAgICAgICAgY2hhcmFjdGVyID0gbWludXNTaWdu
OworICAgICAgICAgICAgb3BlcmF0b3JDaGFyLmNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAg
ICAgICAgIG9wZXJhdG9yQ2hhci5pc1ZlcnRpY2FsID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
Ojppc1ZlcnRpY2FsKG9wZXJhdG9yQ2hhci5jaGFyYWN0ZXIpOworICAgICAgICB9CisgICAgfQog
ICAgIHJldHVybiBvcGVyYXRvckNoYXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFRva2VuRWxlbWVudC5jcHAKaW5kZXggYjA3MDU0ZC4uZjY1ODM5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAKQEAgLTg4LDYgKzg4LDE3IEBA
IGJvb2wgTWF0aE1MVG9rZW5FbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBpc1BocmFzaW5nQ29udGVudChjaGlsZCkg
JiYgU3R5bGVkRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZCk7CiB9CiAK
K09wdGlvbmFsPFVDaGFyMzI+IE1hdGhNTFRva2VuRWxlbWVudDo6Y29udmVydFRvU2luZ2xlQ29k
ZVBvaW50KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gY29kZVBvaW50cyA9IHN0cmlw
TGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZShzdHJpbmcpLmNvZGVQb2ludHMoKTsKKyAgICBh
dXRvIGl0ZXJhdG9yID0gY29kZVBvaW50cy5iZWdpbigpOworICAgIGlmIChpdGVyYXRvciA9PSBj
b2RlUG9pbnRzLmVuZCgpKQorICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICBPcHRpb25hbDxV
Q2hhcjMyPiBjaGFyYWN0ZXIgPSAqaXRlcmF0b3I7CisgICAgKytpdGVyYXRvcjsKKyAgICByZXR1
cm4gaXRlcmF0b3IgPT0gY29kZVBvaW50cy5lbmQoKSA/IGNoYXJhY3RlciA6IE51bGxvcHQ7Cit9
CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MVG9rZW5FbGVtZW50LmgKaW5kZXggYjliNjdlMi4uZWE5YzBmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFz
cyBNYXRoTUxUb2tlbkVsZW1lbnQgOiBwdWJsaWMgTWF0aE1MRWxlbWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxNYXRoTUxUb2tlbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCisgICAgc3RhdGljIE9wdGlvbmFsPFVDaGFyMzI+
IGNvbnZlcnRUb1NpbmdsZUNvZGVQb2ludChTdHJpbmdWaWV3KTsKKwogcHJvdGVjdGVkOgogICAg
IE1hdGhNTFRva2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTFRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MVG9rZW4uY3BwCmluZGV4IGJmZWQyOTUuLjE3ZTkyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCkBAIC01Mjcs
MTQgKzUyNywxMiBAQCB2b2lkIFJlbmRlck1hdGhNTFRva2VuOjp1cGRhdGVNYXRoVmFyaWFudEds
eXBoKCkKICAgICB9CiAKICAgICBjb25zdCBhdXRvJiB0b2tlbkVsZW1lbnQgPSBlbGVtZW50KCk7
Ci0gICAgQXRvbWljU3RyaW5nIHRleHRDb250ZW50ID0gZWxlbWVudCgpLnRleHRDb250ZW50KCku
c3RyaXBXaGl0ZVNwYWNlKCkuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7Ci0gICAgaWYgKHRleHRDb250
ZW50Lmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgVUNoYXIzMiBjb2RlUG9pbnQgPSB0ZXh0Q29u
dGVudFswXTsKKyAgICBpZiAoYXV0byBjb2RlUG9pbnQgPSBNYXRoTUxUb2tlbkVsZW1lbnQ6OmNv
bnZlcnRUb1NpbmdsZUNvZGVQb2ludChlbGVtZW50KCkudGV4dENvbnRlbnQoKSkpIHsKICAgICAg
ICAgTWF0aE1MRWxlbWVudDo6TWF0aFZhcmlhbnQgbWF0aHZhcmlhbnQgPSBtYXRoTUxTdHlsZSgp
LT5tYXRoVmFyaWFudCgpOwogICAgICAgICBpZiAobWF0aHZhcmlhbnQgPT0gTWF0aE1MRWxlbWVu
dDo6TWF0aFZhcmlhbnQ6Ok5vbmUpCiAgICAgICAgICAgICBtYXRodmFyaWFudCA9IHRva2VuRWxl
bWVudC5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykgPyBNYXRoTUxFbGVtZW50OjpNYXRo
VmFyaWFudDo6SXRhbGljIDogTWF0aE1MRWxlbWVudDo6TWF0aFZhcmlhbnQ6Ok5vcm1hbDsKLSAg
ICAgICAgVUNoYXIzMiB0cmFuc2Zvcm1lZENvZGVQb2ludCA9IG1hdGhWYXJpYW50KGNvZGVQb2lu
dCwgbWF0aHZhcmlhbnQpOwotICAgICAgICBpZiAodHJhbnNmb3JtZWRDb2RlUG9pbnQgIT0gY29k
ZVBvaW50KQorICAgICAgICBVQ2hhcjMyIHRyYW5zZm9ybWVkQ29kZVBvaW50ID0gbWF0aFZhcmlh
bnQoY29kZVBvaW50LnZhbHVlKCksIG1hdGh2YXJpYW50KTsKKyAgICAgICAgaWYgKHRyYW5zZm9y
bWVkQ29kZVBvaW50ICE9IGNvZGVQb2ludC52YWx1ZSgpKQogICAgICAgICAgICAgbV9tYXRoVmFy
aWFudEdseXBoID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpLmdseXBoRGF0YUZvckNoYXJhY3Rlcih0
cmFuc2Zvcm1lZENvZGVQb2ludCwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsK
ICAgICB9CiB9Ci0tIAoyLjguMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>