<?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>205560</bug_id>
          
          <creation_ts>2019-12-23 09:02:01 -0800</creation_ts>
          <short_desc>[GTK][WPE] Remove duplicated code</short_desc>
          <delta_ts>2020-01-08 00:21:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>jbedard</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601252</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-23 09:02:01 -0800</bug_when>
    <thetext>There&apos;s some duplicated code related to IME between GTK and WPE that can be shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601253</commentid>
    <comment_count>1</comment_count>
      <attachid>386343</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-23 09:04:19 -0800</bug_when>
    <thetext>Created attachment 386343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601255</commentid>
    <comment_count>2</comment_count>
      <attachid>386344</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-23 09:10:28 -0800</bug_when>
    <thetext>Created attachment 386344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601520</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-26 02:12:32 -0800</bug_when>
    <thetext>Committed r253914: &lt;https://trac.webkit.org/changeset/253914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603187</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-06 11:55:19 -0800</bug_when>
    <thetext>legacy-animation-engine/animations/animation-iteration-event-destroy-renderer.html flakily regressed on GTK relatively recently.

Not something I&apos;ll be able to look into, but an automated regression detection script we&apos;re prototyping flagged this and provided this commit range: &lt;https://results.webkit.org/commits?after_id=253908&amp;before_id=253940&gt;. The results themselves &lt;https://results.webkit.org/?suite=layout-tests&amp;test=legacy-animation-engine%2Fanimations%2Fanimation-iteration-event-destroy-renderer.html&gt; seem to corroborate both the existence of the regression and the range, this is the only GTK specific patch in the range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603990</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-01-08 00:21:04 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #4)
&gt; legacy-animation-engine/animations/animation-iteration-event-destroy-
&gt; renderer.html flakily regressed on GTK relatively recently.
&gt; 
&gt; Not something I&apos;ll be able to look into, but an automated regression
&gt; detection script we&apos;re prototyping flagged this and provided this commit
&gt; range:
&gt; &lt;https://results.webkit.org/commits?after_id=253908&amp;before_id=253940&gt;. The
&gt; results themselves
&gt; &lt;https://results.webkit.org/?suite=layout-tests&amp;test=legacy-animation-
&gt; engine%2Fanimations%2Fanimation-iteration-event-destroy-renderer.html&gt; seem
&gt; to corroborate both the existence of the regression and the range, this is
&gt; the only GTK specific patch in the range.

weird, this is ime related code, I&apos;ll check it. Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386343</attachid>
            <date>2019-12-23 09:04:19 -0800</date>
            <delta_ts>2019-12-23 09:10:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ime-duplicated.diff</filename>
            <type>text/plain</type>
            <size>9873</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTcwMTI1MmE4YzkuLmEyYmZjZWI5YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDE5LTEyLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFJlbW92ZSBkdXBsaWNhdGVkIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTU2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBkdXBsaWNh
dGVkIGNvZGUgcmVsYXRlZCB0byBJTUUgYmV0d2VlbiBHVEsgYW5kIFdQRSB0aGF0IGNhbiBiZSBz
aGFyZWQuCisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BF
LnR4dDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9y
Q2xpZW50R0xpYi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6
OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNs
aWVudDo6ZGlkRGlzcGF0Y2hJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDoKKwogMjAxOS0xMi0yMyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBmaXggaGFu
ZGxpbmcgb2Ygc2Vzc2lvbiB0aW1lb3V0cyBmb3IgdmFsdWVzIGhpZ2hlciB0aGFuIE1BWF9JTlQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNHVEsudHh0CmluZGV4IGJhZDA4MzAzMmE2Li40MDM4YWQ3YmFlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNHVEsudHh0CkBAIC0zOTgsNiArMzk4LDggQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L3VuaXgvUGx1Z2luUHJveHlVbml4LmNwcAogCiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
eDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9nbGliL1dlYkVkaXRvckNsaWVudEdMaWIuY3BwCisKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZ3RrL1dlYkNvbnRleHRNZW51Q2xpZW50R3RrLmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDQz
ZGE4MjQ4NjI0Li5mNzg4ZDg0ZDg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0yMzgsNiArMjM4
LDggQEAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3Bw
CiAKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk5vbmUuY3BwIEBu
by11bmlmeQogCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9yQ2xpZW50
R0xpYi5jcHAKKwogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRl
eHRNZW51Q2xpZW50V1BFLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9yQ2xpZW50R0xpYi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTZlODI1N2UxNDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
ciB2ZXJzaW9uIDIgb2YKKyAqICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlCisgKiAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRWRp
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5
Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CisjaW5jbHVkZSA8V2ViUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RL
ZXlkb3duKEtleWJvYXJkRXZlbnQmIGV2ZW50KQoreworICAgIGF1dG8qIHBsYXRmb3JtRXZlbnQg
PSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOworICAgIGlmIChwbGF0Zm9ybUV2ZW50
ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpCisgICAgICAgIGV2ZW50
LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWREaXNw
YXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVudCkKK3sKKyAgICBhdXRv
KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKKyAgICBB
U1NFUlQoZXZlbnQudGFyZ2V0KCkpOworICAgIGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8Tm9kZT4o
ZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsK
KworICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZvcm1FdmVudC0+cHJlZWRp
dFVuZGVybGluZXMoKSkgeworICAgICAgICBhdXRvIHJhbmdlU3RhcnQgPSBwbGF0Zm9ybUV2ZW50
LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7CisgICAgICAgIGF1dG8g
cmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VMZW5ndGgo
KS52YWx1ZU9yKDApOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0Q29tcG9zaXRpb24ocGxh
dGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJhbmdlU3RhcnQsIHJhbmdl
U3RhcnQgKyByYW5nZUxlbmd0aCk7CisgICAgfSBlbHNlCisgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKaW5kZXgg
NmFkM2VlYjViMmMuLjBmNjJmYmI3YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0xMzIsMjggKzEzMiw2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgICAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRo
b2RLZXlkb3duKEtleWJvYXJkRXZlbnQmIGV2ZW50KQotewotICAgIGF1dG8qIHBsYXRmb3JtRXZl
bnQgPSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwotICAgIGlmIChwbGF0Zm9ybUV2
ZW50ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpCi0gICAgICAgIGV2
ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRE
aXNwYXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVudCkKLXsKLSAgICBh
dXRvKiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKLSAg
ICBBU1NFUlQoZXZlbnQudGFyZ2V0KCkpOwotICAgIGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8Tm9k
ZT4oZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgQVNTRVJUKGZyYW1l
KTsKLQotICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZvcm1FdmVudC0+cHJl
ZWRpdFVuZGVybGluZXMoKSkgewotICAgICAgICBhdXRvIHJhbmdlU3RhcnQgPSBwbGF0Zm9ybUV2
ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGF1
dG8gcmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VMZW5n
dGgoKS52YWx1ZU9yKDApOwotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0Q29tcG9zaXRpb24o
cGxhdGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJhbmdlU3RhcnQsIHJh
bmdlU3RhcnQgKyByYW5nZUxlbmd0aCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGZyYW1lLT5lZGl0
b3IoKS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpKTsKLX0KLQogdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZUdsb2JhbFNlbGVjdGlvbihGcmFtZSogZnJhbWUpCiB7
CiAgICAgaWYgKCFmcmFtZS0+c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRX
UEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJF
ZGl0b3JDbGllbnRXUEUuY3BwCmluZGV4IDA2YzI3M2RlNGQxLi40NTJjZjBjYzhjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMjM0LDI2ICsyMzQsNCBAQCB2b2lk
IFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2
ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24oKmZyYW1lLCBldmVudCwg
KnBsYXRmb3JtRXZlbnQpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRN
ZXRob2RLZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQotewotICAgIGF1dG8q
IHBsYXRmb3JtRXZlbnQgPSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwotICAgIGlm
IChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkp
Ci0gICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KLXZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpkaWREaXNwYXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVu
dCkKLXsKLSAgICBhdXRvKiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3Jt
RXZlbnQoKTsKLSAgICBBU1NFUlQoZXZlbnQudGFyZ2V0KCkpOwotICAgIGF1dG8qIGZyYW1lID0g
ZG93bmNhc3Q8Tm9kZT4oZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAg
QVNTRVJUKGZyYW1lKTsKLQotICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZv
cm1FdmVudC0+cHJlZWRpdFVuZGVybGluZXMoKSkgewotICAgICAgICBhdXRvIHJhbmdlU3RhcnQg
PSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7
Ci0gICAgICAgIGF1dG8gcmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0
aW9uUmFuZ2VMZW5ndGgoKS52YWx1ZU9yKDApOwotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0
Q29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJh
bmdlU3RhcnQsIHJhbmdlU3RhcnQgKyByYW5nZUxlbmd0aCk7Ci0gICAgfSBlbHNlCi0gICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgp
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9nbGliL1dlYlBhZ2VHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2dsaWIvV2ViUGFnZUdMaWIuY3BwCmluZGV4IGIwNTk4YzYyNzBl
Li5jOGU4YTdjMjc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRVc2VyTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU2LDQgKzU3LDE0IEBAIHZvaWQg
V2ViUGFnZTo6c2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihVc2VyTWVzc2FnZSYmIG1lc3NhZ2Up
CiAgICAgc2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbldpdGhSZXBseShXVEZNb3ZlKG1lc3NhZ2Up
LCBbXShVc2VyTWVzc2FnZSYmKSB7IH0pOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChtX2lucHV0TWV0aG9kRW5hYmxlZCA9
PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lucHV0TWV0aG9kRW5hYmxlZCA9
IGVuYWJsZWQ7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJbnB1dE1ldGhv
ZFN0YXRlKGVuYWJsZWQpKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRl
eCAzNjg4ZTE1ZWE5MC4uNDVlZDc3Yjk0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTE3NCwxNSArMTc0LDYgQEAg
dm9pZCBXZWJQYWdlOjpnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25zdCBJbnRQb2ludCYgY2Vu
dGVySW5WaWV3Q29vcmRpbmF0ZXMsIEMKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJl
c3VsdCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKQotewotICAgIGlmIChtX2lucHV0TWV0aG9kRW5hYmxlZCA9PSBlbmFibGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2lucHV0TWV0aG9kRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJbnB1dE1ldGhvZFN0YXRlKGVuYWJsZWQpKTsK
LX0KLQogdm9pZCBXZWJQYWdlOjpjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKaW5kZXggNGFjYTcwYjMwYjMuLjNhOGE5OTcy
YWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2Vi
UGFnZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dl
YlBhZ2VXUEUuY3BwCkBAIC05MiwxMyArOTIsNCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1V
c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpCi17Ci0gICAgaWYg
KG1faW5wdXRNZXRob2RFbmFibGVkID09IGVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1faW5wdXRNZXRob2RFbmFibGVkID0gZW5hYmxlZDsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldElucHV0TWV0aG9kU3RhdGUoZW5hYmxlZCkpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386344</attachid>
            <date>2019-12-23 09:10:28 -0800</date>
            <delta_ts>2019-12-23 10:48:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ime-duplicated.diff</filename>
            <type>text/plain</type>
            <size>9871</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTcwMTI1MmE4YzkuLmEyYmZjZWI5YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDE5LTEyLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIFJlbW92ZSBkdXBsaWNhdGVkIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTU2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBkdXBsaWNh
dGVkIGNvZGUgcmVsYXRlZCB0byBJTUUgYmV0d2VlbiBHVEsgYW5kIFdQRSB0aGF0IGNhbiBiZSBz
aGFyZWQuCisKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BF
LnR4dDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9y
Q2xpZW50R0xpYi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6
OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNs
aWVudDo6ZGlkRGlzcGF0Y2hJbnB1dE1ldGhvZEtleWRvd24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldElucHV0TWV0aG9kU3RhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDoKKwogMjAxOS0xMi0yMyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBmaXggaGFu
ZGxpbmcgb2Ygc2Vzc2lvbiB0aW1lb3V0cyBmb3IgdmFsdWVzIGhpZ2hlciB0aGFuIE1BWF9JTlQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNHVEsudHh0CmluZGV4IGJhZDA4MzAzMmE2Li40MDM4YWQ3YmFlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNHVEsudHh0CkBAIC0zOTgsNiArMzk4LDggQEAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L3VuaXgvUGx1Z2luUHJveHlVbml4LmNwcAogCiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
eDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBAbm8tdW5pZnkKIAorV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9nbGliL1dlYkVkaXRvckNsaWVudEdMaWIuY3BwCisKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZ3RrL1dlYkNvbnRleHRNZW51Q2xpZW50R3RrLmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDQz
ZGE4MjQ4NjI0Li5mNzg4ZDg0ZDg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0yMzgsNiArMjM4
LDggQEAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuY3Bw
CiAKIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk5vbmUuY3BwIEBu
by11bmlmeQogCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9yQ2xpZW50
R0xpYi5jcHAKKwogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRl
eHRNZW51Q2xpZW50V1BFLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2dsaWIvV2ViRWRpdG9yQ2xpZW50R0xpYi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTZlODI1N2UxNDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z2xpYi9XZWJFZGl0b3JDbGllbnRHTGliLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxOSBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
ciB2ZXJzaW9uIDIgb2YKKyAqICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlCisgKiAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5o
IgorCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRWRp
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5
Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CisjaW5jbHVkZSA8V2ViUGFnZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RL
ZXlkb3duKEtleWJvYXJkRXZlbnQmIGV2ZW50KQoreworICAgIGF1dG8qIHBsYXRmb3JtRXZlbnQg
PSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOworICAgIGlmIChwbGF0Zm9ybUV2ZW50
ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpCisgICAgICAgIGV2ZW50
LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWREaXNw
YXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVudCkKK3sKKyAgICBhdXRv
KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKKyAgICBB
U1NFUlQoZXZlbnQudGFyZ2V0KCkpOworICAgIGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8Tm9kZT4o
ZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsK
KworICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZvcm1FdmVudC0+cHJlZWRp
dFVuZGVybGluZXMoKSkgeworICAgICAgICBhdXRvIHJhbmdlU3RhcnQgPSBwbGF0Zm9ybUV2ZW50
LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7CisgICAgICAgIGF1dG8g
cmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VMZW5ndGgo
KS52YWx1ZU9yKDApOworICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0Q29tcG9zaXRpb24ocGxh
dGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJhbmdlU3RhcnQsIHJhbmdl
U3RhcnQgKyByYW5nZUxlbmd0aCk7CisgICAgfSBlbHNlCisgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKaW5kZXgg
NmFkM2VlYjViMmMuLjBmNjJmYmI3YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0xMzIsMjggKzEzMiw2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgICAgICBldmVudC5zZXREZWZh
dWx0SGFuZGxlZCgpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRo
b2RLZXlkb3duKEtleWJvYXJkRXZlbnQmIGV2ZW50KQotewotICAgIGF1dG8qIHBsYXRmb3JtRXZl
bnQgPSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwotICAgIGlmIChwbGF0Zm9ybUV2
ZW50ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkpCi0gICAgICAgIGV2
ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRE
aXNwYXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVudCkKLXsKLSAgICBh
dXRvKiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3JtRXZlbnQoKTsKLSAg
ICBBU1NFUlQoZXZlbnQudGFyZ2V0KCkpOwotICAgIGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8Tm9k
ZT4oZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgQVNTRVJUKGZyYW1l
KTsKLQotICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZvcm1FdmVudC0+cHJl
ZWRpdFVuZGVybGluZXMoKSkgewotICAgICAgICBhdXRvIHJhbmdlU3RhcnQgPSBwbGF0Zm9ybUV2
ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7Ci0gICAgICAgIGF1
dG8gcmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VMZW5n
dGgoKS52YWx1ZU9yKDApOwotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0Q29tcG9zaXRpb24o
cGxhdGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJhbmdlU3RhcnQsIHJh
bmdlU3RhcnQgKyByYW5nZUxlbmd0aCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGZyYW1lLT5lZGl0
b3IoKS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpKTsKLX0KLQogdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZUdsb2JhbFNlbGVjdGlvbihGcmFtZSogZnJhbWUpCiB7
CiAgICAgaWYgKCFmcmFtZS0+c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRX
UEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJF
ZGl0b3JDbGllbnRXUEUuY3BwCmluZGV4IDA2YzI3M2RlNGQxLi40NTJjZjBjYzhjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMjM0LDI2ICsyMzQsNCBAQCB2b2lk
IFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2
ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24oKmZyYW1lLCBldmVudCwg
KnBsYXRmb3JtRXZlbnQpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRN
ZXRob2RLZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQotewotICAgIGF1dG8q
IHBsYXRmb3JtRXZlbnQgPSBldmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwotICAgIGlm
IChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPmhhbmRsZWRCeUlucHV0TWV0aG9kKCkp
Ci0gICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Ci19Ci0KLXZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpkaWREaXNwYXRjaElucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50JiBldmVu
dCkKLXsKLSAgICBhdXRvKiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQudW5kZXJseWluZ1BsYXRmb3Jt
RXZlbnQoKTsKLSAgICBBU1NFUlQoZXZlbnQudGFyZ2V0KCkpOwotICAgIGF1dG8qIGZyYW1lID0g
ZG93bmNhc3Q8Tm9kZT4oZXZlbnQudGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAg
QVNTRVJUKGZyYW1lKTsKLQotICAgIGlmIChjb25zdCBhdXRvJiB1bmRlcmxpbmVzID0gcGxhdGZv
cm1FdmVudC0+cHJlZWRpdFVuZGVybGluZXMoKSkgewotICAgICAgICBhdXRvIHJhbmdlU3RhcnQg
PSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0aW9uUmFuZ2VTdGFydCgpLnZhbHVlT3IoMCk7
Ci0gICAgICAgIGF1dG8gcmFuZ2VMZW5ndGggPSBwbGF0Zm9ybUV2ZW50LT5wcmVlZGl0U2VsZWN0
aW9uUmFuZ2VMZW5ndGgoKS52YWx1ZU9yKDApOwotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0
Q29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgpLCB1bmRlcmxpbmVzLnZhbHVlKCksIHJh
bmdlU3RhcnQsIHJhbmdlU3RhcnQgKyByYW5nZUxlbmd0aCk7Ci0gICAgfSBlbHNlCi0gICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5jb25maXJtQ29tcG9zaXRpb24ocGxhdGZvcm1FdmVudC0+dGV4dCgp
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9nbGliL1dlYlBhZ2VHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2dsaWIvV2ViUGFnZUdMaWIuY3BwCmluZGV4IGIwNTk4YzYyNzBl
Li42ZDM5ODBhYWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ2xpYi9XZWJQYWdlR0xpYi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
ZWJLaXRVc2VyTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIldlYktpdFdlYlBhZ2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU2LDQgKzU3LDEzIEBAIHZvaWQg
V2ViUGFnZTo6c2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbihVc2VyTWVzc2FnZSYmIG1lc3NhZ2Up
CiAgICAgc2VuZE1lc3NhZ2VUb1dlYkV4dGVuc2lvbldpdGhSZXBseShXVEZNb3ZlKG1lc3NhZ2Up
LCBbXShVc2VyTWVzc2FnZSYmKSB7IH0pOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChtX2lucHV0TWV0aG9kRW5hYmxlZCA9
PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lucHV0TWV0aG9kRW5hYmxlZCA9
IGVuYWJsZWQ7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJbnB1dE1ldGhv
ZFN0YXRlKGVuYWJsZWQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXgg
MzY4OGUxNWVhOTAuLjQ1ZWQ3N2I5NDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC0xNzQsMTUgKzE3NCw2IEBAIHZv
aWQgV2ViUGFnZTo6Z2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoY29uc3QgSW50UG9pbnQmIGNlbnRl
ckluVmlld0Nvb3JkaW5hdGVzLCBDCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1
bHQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCkKLXsKLSAgICBpZiAobV9pbnB1dE1ldGhvZEVuYWJsZWQgPT0gZW5hYmxlZCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9pbnB1dE1ldGhvZEVuYWJsZWQgPSBlbmFibGVkOwotICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SW5wdXRNZXRob2RTdGF0ZShlbmFibGVkKSk7Ci19
Ci0KIHZvaWQgV2ViUGFnZTo6Y29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCmluZGV4IDRhY2E3MGIzMGIzLi4zYThhOTk3MmFm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBh
Z2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQ
YWdlV1BFLmNwcApAQCAtOTIsMTMgKzkyLDQgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNl
ckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi12b2lk
IFdlYlBhZ2U6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKQotewotICAgIGlmICht
X2lucHV0TWV0aG9kRW5hYmxlZCA9PSBlbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2lucHV0TWV0aG9kRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTZXRJbnB1dE1ldGhvZFN0YXRlKGVuYWJsZWQpKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="402153"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>