From ec8390679917f18658eee034ad6a3eb8a8e1271a Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Sun, 9 May 2021 12:28:15 -0500 Subject: [PATCH 1/3] fix backspace on android for AOSP-based keyboards Issue #1941 Gboard always sends backspace events, however, other keyboards only send or enable the backspace based on the state of the textentry. Also, some don't send the event, but instead modify the textentry text itself. This edits the entry to always show some text, a zero. This way the keyboards kill be able to edit/backspace characters. The textChanged then sends a backspace Key Event to the Go code. In the case of using a keyboard (such as Gboard) that sends its own backspace event, we need a way to stop processing of two deletes (the one Gboard sends, and the one textChanged sends). A backspaceDelay timer is used to only process backspaces a certain time (50ms) apart. --- cmd/fyne/internal/mobile/dex.go | 380 +++++++++--------- internal/driver/gomobile/driver.go | 11 + .../fyne-io/mobile/app/GoNativeActivity.java | 21 +- 3 files changed, 220 insertions(+), 192 deletions(-) diff --git a/cmd/fyne/internal/mobile/dex.go b/cmd/fyne/internal/mobile/dex.go index 03d6968f78..8bf83377b9 100644 --- a/cmd/fyne/internal/mobile/dex.go +++ b/cmd/fyne/internal/mobile/dex.go @@ -6,192 +6,196 @@ package mobile -var dexStr = `ZGV4CjAzNQAM8J6VgTepd211FPPtsu4FeyftNcBZIIp0JgAAcAAAAHhWNBIAAAAAAAAAAK` + - `QlAAC/AAAAcAAAAC4AAABsAwAAPQAAACQEAAATAAAAAAcAAGYAAACYBwAABgAAAMgKAADs` + - `GgAAiAsAABoWAAAcFgAAIRYAACYWAAAuFgAAQhYAAFkWAABpFgAAeRYAAH8WAACWFgAAmR` + - `YAAJ4WAACkFgAAqRYAAK8WAACyFgAAthYAALsWAAC/FgAAxBYAAMkWAADnFgAACBcAACMX` + - `AAA9FwAAYBcAAIUXAACeFwAAsRcAAM0XAADiFwAA+BcAABEYAAAtGAAAQRgAAHYYAACWGA` + - `AAwhgAANcYAAD+GAAAFRkAADIZAABhGQAAfBkAAKcZAADMGQAA7BkAAAsaAAAbGgAANRoA` + - `AEwaAABrGgAAfxoAAJUaAACpGgAAvRoAANQaAAD5GgAAHhsAAEMbAABqGwAAjxsAALIbAA` + - `DIGwAA0xsAANwbAAD2GwAAARwAAAQcAAAIHAAADRwAABQcAAAaHAAAHhwAACMcAAAqHAAA` + - `NhwAADscAAA+HAAAQhwAAEccAABcHAAAYBwAAGwcAAB4HAAAhBwAAJAcAACcHAAAqBwAAL` + - `UcAADCHAAA0hwAANwcAAD3HAAADx0AACEdAAA3HQAAXh0AAIMdAACtHQAAzx0AAPAdAAAM` + - `HgAAJR4AADgeAABGHgAAUB4AAF8eAABvHgAAfx4AAI8eAACfHgAAoh4AAKoeAADNHgAA4R` + - `4AAO8eAAD0HgAABR8AABYfAAAjHwAAMR8AADofAABIHwAAUx8AAF4fAABxHwAAfh8AAJMf` + - `AACcHwAApx8AALkfAADVHwAA7x8AAAogAAAjIAAALiAAADggAABDIAAAUyAAAHEgAACDIA` + - `AAiyAAAJkgAACyIAAAwCAAAM8gAADfIAAA7iAAAPQgAAD8IAAAAiEAAA8hAAAjIQAATCEA` + - `AFchAABhIQAAZyEAAHEhAACDIQAAjSEAAJ0hAACsIQAAtiEAAMQhAADJIQAA2CEAAOchAA` + - `D1IQAABiIAAA8iAAAYIgAAJyIAADMiAABBIgAATyIAAF0iAABsIgAAcyIAAIsiAACYIgAA` + - `oCIAAKgiAACyIgAAtyIAANsiAADpIgAA+yIAAAIjAAAJIwAACgAAABUAAAAWAAAAFwAAAB` + - `gAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAl` + - `AAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMg` + - `AAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAEQA` + - `AABOAAAAUQAAAAoAAAAAAAAAAAAAAAsAAAAAAAAAEBUAAAwAAAAAAAAAGBUAAA0AAAAAAA` + - `AAJBUAAA4AAAAAAAAALBUAAA8AAAACAAAAAAAAAA8AAAAEAAAAAAAAABAAAAAEAAAAOBUA` + - `ABQAAAAEAAAAQBUAABIAAAAEAAAASBUAABQAAAAEAAAAJBUAABQAAAAEAAAAUBUAABMAAA` + - `AFAAAAWBUAAA8AAAAGAAAAAAAAAA8AAAAIAAAAAAAAAA8AAAALAAAAAAAAABAAAAAQAAAA` + - `OBUAAA8AAAASAAAAAAAAABAAAAASAAAAOBUAAA8AAAAUAAAAAAAAAA8AAAAVAAAAAAAAAB` + - `IAAAAXAAAAYBUAABQAAAAXAAAAaBUAAA8AAAAcAAAAAAAAABEAAAAdAAAAEBUAABIAAAAg` + - `AAAASBUAAA8AAAAiAAAAAAAAABIAAAAiAAAASBUAABIAAAAiAAAAYBUAABQAAAAiAAAAcB` + - `UAAA8AAAAqAAAAAAAAAEQAAAArAAAAAAAAAEUAAAArAAAAOBUAAEYAAAArAAAAEBUAAEcA` + - `AAArAAAAeBUAAEgAAAArAAAAhBUAAEkAAAArAAAAkBUAAEoAAAArAAAAmBUAAEkAAAArAA` + - `AAoBUAAEkAAAArAAAAqBUAAEkAAAArAAAAsBUAAEkAAAArAAAACBUAAEkAAAArAAAAABUA` + - `AEwAAAArAAAAuBUAAE0AAAArAAAA0BUAAEkAAAArAAAA2BUAAEkAAAArAAAA4BUAAEsAAA` + - `ArAAAA6BUAAEkAAAArAAAA+BQAAEkAAAArAAAASBUAAE0AAAArAAAAJBUAAEkAAAArAAAA` + - `9BUAAEkAAAArAAAAYBUAAEoAAAArAAAA/BUAAE0AAAArAAAAcBUAAE4AAAAsAAAAAAAAAF` + - `AAAAAsAAAABBYAAFAAAAAsAAAADBYAAE8AAAAsAAAA4BUAAE8AAAAsAAAAFBYAABIAAAAt` + - `AAAASBUAAAUACgCcAAAABwAAAJUAAAAHAAAAuAAAAAkAAABBAAAAJQAqALUAAAAlAAAAuw` + - `AAACYAKgC1AAAAJwAqALUAAAAoACkAtgAAACkAKgC1AAAAKgAAAAQAAAAqAAAABQAAACoA` + - `AAAGAAAAKgAAAAcAAAAqAAAAPwAAACoAAABCAAAAKgAqAI0AAAAqABcAmwAAACoAIgCeAA` + - `AAAQAfAAMAAAABACcAoAAAAAQAMQADAAAABAAJAFoAAAAEAAcAXAAAAAQACABrAAAABAAF` + - `AHkAAAAEAA4AegAAAAQACgCjAAAABAALAKMAAAAEAAkAqwAAAAYADAB3AAAABwAfAAMAAA` + - `AHAAAAjgAAAAcAAAC9AAAACAAaALcAAAAKABsAggAAAA4AAwBwAAAADgAEAHAAAAAQAAEA` + - `dQAAABAAEACXAAAAEgAqAF0AAAASAAAAfAAAABIAEQB/AAAAEgAUAIAAAAASAAAAiQAAAB` + - `IADwCLAAAAEgAmAIwAAAAUABEAewAAABUAAACEAAAAFQAAAIUAAAAVAAAAhgAAABUAAACH` + - `AAAAFgA4AJAAAAAWADkAsQAAABcAJAADAAAAFwApAF4AAAAXAB8AaQAAABcANwCkAAAAFw` + - `AgAKcAAAAXACAAqAAAABcALQCpAAAAFwAuAKoAAAAXACAArAAAABgAIQADAAAAHAAaAHYA` + - `AAAdAAAAlgAAAB0AGAC0AAAAHQAaALcAAAAgAB8AAwAAACIAOgBqAAAAIgA7AHEAAAAiAA` + - `AAlgAAACIAPACyAAAAIwAxAJgAAAAlADUAAwAAACUAHwClAAAAJgA0AAMAAAAmAB8ApQAA` + - `ACcANAADAAAAJwArAKEAAAAoADMAAwAAACgAKABfAAAAKAAvAGgAAAAoAC8AogAAACkANA` + - `ADAAAAKQAfAKUAAAAqAB8AAwAAACoAFQBTAAAAKgAWAFQAAAAqABwAVQAAACoAHQBWAAAA` + - `KgAeAFcAAAAqADYAWAAAACoALABbAAAAKgAfAGwAAAAqADEAbQAAACoAMgBuAAAAKgAgAG` + - `8AAAAqADEAcwAAACoAEgB0AAAAKgAXAHgAAAAqAAYAfQAAACoADQB+AAAAKgACAIEAAAAq` + - `ABkAgwAAACoAGgCIAAAAKgATAIoAAAAqAB8AjwAAACoAIgCSAAAAKgAfAJMAAAAqADEAlA` + - `AAACoAHwCXAAAAKgAjAJ8AAAAqACcAoAAAACoAMACmAAAAKgAfAK0AAAAqADEArgAAACoA` + - `MgCvAAAAKgAgALAAAAAqACUAswAAACoAHwC6AAAAJQAAAAAAAAAgAAAA+BQAAAkAAACgFA` + - `AAviQAAAAAAAAmAAAAAAAAACAAAAD4FAAACQAAALgUAADSJAAAAAAAACcAAAAAAAAAIAAA` + - `AAAVAAAJAAAAyBQAAOMkAAAAAAAAKAAAAAAAAAAgAAAACBUAAAkAAADYFAAA9CQAAAAAAA` + - `ApAAAAAAAAACAAAAD4FAAACQAAAOgUAAANJQAAAAAAACoAAAABAAAAAQAAAAAAAAAJAAAA` + - `AAAAAB4lAACvJAAAAgAAAHokAACBJAAAAQAAAIokAAACAAAAkyQAAIEkAAACAAAAmiQAAI` + - `EkAAACAAAAoSQAAIEkAAACAAAAqCQAAIEkAAADAAMAAQAAAAwjAAAIAAAAWwEEAFkCBQBw` + - `EDEAAAAOAAYAAQADAAAAEyMAAHgAAAAVAQBAEmISBBQAkAAIAFJTBQArA2UAAAAaAggAGg` + - `O5AHEgEQAyAFRSBABxEEQAAgAMAm4gJwASAFRRBABxEEQAAQAMAW4gKAABAFRQBAAaAQAA` + - `cSBHABAAVFAEAHEQRAAAAAwAGgEAAG4gKgAQAFRQBABxEEQAAAAMAG4gKwBAAFRQBABxEE` + - `QAAAAMAG4QJQAAAFRQBABxEEQAAAAMAG4QJgAAAFRQBAAaAZEAbiBVABAADAAfABYAVFEE` + - `AHEQRAABAAwBbjAiABAEDgABISisFACSAAgAASEopwAAAAEDAAAAAAAKAAAAXQAAAF8AAA` + - `ACAAIAAQAAAC4jAAAGAAAAWwEGAHAQMQAAAA4AAwABAAIAAAA0IwAADAAAAFQgBgBxEEQA` + - `AAAMABMBCABuICsAEAAOAAIAAgABAAAAOiMAAAYAAABbAQcAcBAxAAAADgALAAoAAQAAAE` + - `EjAAAGAAAAVBAHAG4QZQAAAA4AAgACAAEAAABRIwAABgAAAFsBCABwEDEAAAAOAAIAAgAA` + - `AAAAWCMAAAEAAAAOAAAABQAFAAAAAABfIwAAAQAAAA4AAAAIAAUAAwAAAGkjAABQAAAAch` + - `AuAAQACgBUMQgAVBEJAHEQRgABAAwBbhA0AAEACgE3EC0AVDAIAFQACQBUMQgAVBEJAHEQ` + - `RgABAAwBbhA0AAEACgFyEC4ABAAKAnIwLwAUAgwBchAwAAEADAFxIEkAEABUMAgAVAAJAH` + - `IQMAAEAAwBcSBHABAADgByEC4ABAAKAFQxCABUEQkAcRBGAAEADAFuEDQAAQAKATUQ5P8o` + - `4gIAAgABAAAAfSMAAAYAAABbAQkAcBAxAAAADgAFAAEAAwAAAIQjAABOAAAAEuNUQAkAIg` + - `EXAHEASAAAAAwCcCAjACEAcSBFABAAVEAJAHEQRAAAAAwAEwEIAG4gKwAQAFRACQBxEEQA` + - `AAAMABQBkAAIAG4gKAAQACIAGABwMCwAMANUQQkAcRBEAAEADAFuICkAAQBUQQkAVEIJAH` + - `EQRAACAAwCbjBKACEAVEAJAHEQRAAAAAwAIgEoAHAgPQBBAG4gJAAQAA4AAgABAAEAAACT` + - `IwAACgAAAHAQAAABABoAAABbEBIAaQEQAA4AAgABAAAAAACbIwAAAwAAAFQQEQARAAAAAg` + - `ACAAAAAAChIwAAAwAAAFsBEQARAQAAAgABAAAAAACoIwAAAwAAAFQQEgARAAAAAgACAAAA` + - `AACuIwAAAwAAAFsBEgARAQAAAQAAAAAAAAC1IwAAAwAAAGIAEAARAAAAAgACAAIAAAC6Iw` + - `AABAAAAHAgWwAQAA4ABwADAAMAAQDBIwAAGQAAABLwcRAUAAQADAFuMBMAUQYKATkBAwAP` + - `AAEQKP4NARoCCAAaA3IAcTASADIBKPUNASjzAAABAAAABwABAAECDxceDgAAAQAAAAEAAA` + - `DSIwAABgAAAGIAEABuEEsAAAAOAAQAAQADAAEA2CMAADMAAABuEFMAAwAMAG4QUgADAAwB` + - `bhAGAAEADAETAoAAbjALABACDABUAQAAOQEKABoACAAaAZoAcSARABAADgBUAAAAGgFgAG` + - `4gEAAQAAwAcRA2AAAAKPQNABoBCAAaApkAcTASACEAKOsAAAAAAAApAAEAAQEeKgIAAQAC` + - `AAAA6SMAAAkAAAAiACkAcCBBABAAbiBfAAEADgAAAAIAAQACAAAA8iMAAAYAAABiABAAbi` + - `BMABAADgADAAIAAwAAAPojAAAGAAAAYgAQAG4wTQAQAg4AAgABAAIAAAADJAAABgAAAGIA` + - `EABuIE4AEAAOAAQAAQADAAAACiQAACQAAAAaAJEAbiBVAAMADAAfABYAFAECAAIBbiBQAB` + - `MADAFuEBcAAQAMAW4QGgABAAwBEgJuMCEAEAIiACYAcCA5ADAAbiBfAAMADgAGAAIAAwAA` + - `ABMkAABXAAAAEhMiAAQAGgFiAHAgAgAQABoBZwBuIDMAUQAKATgBHABgAQMAEwIVADQhFg` + - `AiAAQAGgFjAHAgAgAQAG4gBAAwABoBQABxIAUAEAAMAG4wZAAEAw4AGgG+AG4gMgAVAAoB` + - `OAEeAGABAwATAhMANCEYABoBAgBuIAoAEAAaAWUAGgJSAG4gNQAlAAwCbjAJABACGgFkAG` + - `4gAwAQACjTbiAKAFAAGgFkAG4gAwAQACjKAAAGAAMAAwAAACckAAA+AAAAIgAEABoBYQBw` + - `IAIAEAAaAb4AbiAyABQACgE4AS0AYAEDABMCEwA0IScAGgECAG4gCgAQABoBZQAaAlIAbi` + - `A1ACQADAJuMAkAEAIaAWYAbjAIABAFGgFkAG4gAwAQABoBQwBxIAUAEAAMABIhbjBkAAMB` + - `DgBuIAoAQAAo6AMAAgADAAAAOSQAAAkAAAAiACUAcDA3ABACbiBfAAEADgAAAAIAAQABAA` + - `AAQiQAAAkAAABuEFEAAQAMAG4QLQAAAAwAEQAAAAUABAACAAAARyQAABwAAAASEDICBgAS` + - `IDICAwAOABLwMgMIABoAAABwIE8AAQAo924QBwAEAAwAbhAPAAAADABwIE8AAQAo6wQAAg` + - `ACAAAAWSQAAB0AAABwEFwAAgBvIAEAMgBwEGAAAgAUAAIAAgFuIFAAAgAMAG4QFwAAAAwA` + - `IgEnAHAgOwAhAG4gFQAQAA4AAAAHAAEABQABAGUkAABgAAAAbhBXAAYADABuEBwAAAAMAG` + - `4QGAAAAAwAOQADAA4AbhAgAAAACgFuEB0AAAAKAm4QHgAAAAoDbhAfAAAACgBwUFkAFjIo` + - `7A0AIgAHAHAQDAAAAG4QVwAGAAwBbhAcAAEADAFuIBsAAQAUAQIAAgFuIFAAFgAMAW4QFw` + - `ABAAwBUgICAG4QFgABAAoDbhANAAAACgSxQ1IEAgCxQ1IEAQBuEBkAAQAKAW4QDgAAAAoF` + - `sVFSAAEAkQABAHBQWQAmQyivAAAAACIAAQABAR8jiAsAAAAAAAABAAAAAAAAADcAAACUCw` + - `AAnAsAAAAAAAAAAAAAAAAAAKgLAAAAAAAAAAAAAAAAAAC0CwAAAAAAAAAAAAAAAAAAwAsA` + - `AAAAAAAAAAAAAAAAAAEAAAAhAAAAAQAAABEAAAABAAAADQAAAAIAAAAAAAAAAwAAAAAAAA` + - `AAAAAAAgAAACIAIgADAAAAIgAiACQAAAABAAAAAAAAAAIAAAAEAB0AAQAAACIAAAACAAAA` + - `IgAtAAIAAAACAAAAAQAAACoAAAACAAAAKgAXAAIAAAAqACIABAAAAAAAAAAAAAAAAwAAAA` + - `AAAAAEAAAAAQAAAAMAAAACAAAABAAAAAEAAAAHAAAAAQAAAAoAAAABAAAADAAAAAkAAAAS` + - `AAAAAAAAAAAAAAAAAAAAAAAAAAIAAAASABMAAQAAABMAAAABAAAAHQAAAAQAAAAdAAAAAA` + - `AAAAEAAAApAAAAAgAAACoAAAACAAAACwAAAAIAAAASAAAAAQAAACAAAAADKClWAAMqLyoA` + - `Bjxpbml0PgASREVGQVVMVF9JTlBVVF9UWVBFABVERUZBVUxUX0tFWUJPQVJEX0NPREUADk` + - `ZJTEVfT1BFTl9DT0RFAA5GSUxFX1NBVkVfQ09ERQAERnluZQAVR29OYXRpdmVBY3Rpdml0` + - `eS5qYXZhAAFJAANJSUkABElJSUkAA0lMTAAESUxMTAABTAACTEkAA0xJSQACTEwAA0xMSQ` + - `ADTExMABxMYW5kcm9pZC9hcHAvTmF0aXZlQWN0aXZpdHk7AB9MYW5kcm9pZC9jb250ZW50` + - `L0NvbXBvbmVudE5hbWU7ABlMYW5kcm9pZC9jb250ZW50L0NvbnRleHQ7ABhMYW5kcm9pZC` + - `9jb250ZW50L0ludGVudDsAIUxhbmRyb2lkL2NvbnRlbnQvcG0vQWN0aXZpdHlJbmZvOwAj` + - `TGFuZHJvaWQvY29udGVudC9wbS9QYWNrYWdlTWFuYWdlcjsAF0xhbmRyb2lkL2dyYXBoaW` + - `NzL1JlY3Q7ABFMYW5kcm9pZC9uZXQvVXJpOwAaTGFuZHJvaWQvb3MvQnVpbGQkVkVSU0lP` + - `TjsAE0xhbmRyb2lkL29zL0J1bmRsZTsAFExhbmRyb2lkL29zL0lCaW5kZXI7ABdMYW5kcm` + - `9pZC90ZXh0L0VkaXRhYmxlOwAaTGFuZHJvaWQvdGV4dC9UZXh0V2F0Y2hlcjsAEkxhbmRy` + - `b2lkL3V0aWwvTG9nOwAzTGFuZHJvaWQvdmlldy9LZXlDaGFyYWN0ZXJNYXAkVW5hdmFpbG` + - `FibGVFeGNlcHRpb247AB5MYW5kcm9pZC92aWV3L0tleUNoYXJhY3Rlck1hcDsAKkxhbmRy` + - `b2lkL3ZpZXcvVmlldyRPbkxheW91dENoYW5nZUxpc3RlbmVyOwATTGFuZHJvaWQvdmlldy` + - `9WaWV3OwAlTGFuZHJvaWQvdmlldy9WaWV3R3JvdXAkTGF5b3V0UGFyYW1zOwAVTGFuZHJv` + - `aWQvdmlldy9XaW5kb3c7ABtMYW5kcm9pZC92aWV3L1dpbmRvd0luc2V0czsALUxhbmRyb2` + - `lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RNYW5hZ2VyOwAZTGFuZHJvaWQvd2lk` + - `Z2V0L0VkaXRUZXh0OwApTGFuZHJvaWQvd2lkZ2V0L0ZyYW1lTGF5b3V0JExheW91dFBhcm` + - `FtczsAI0xkYWx2aWsvYW5ub3RhdGlvbi9FbmNsb3NpbmdNZXRob2Q7AB5MZGFsdmlrL2Fu` + - `bm90YXRpb24vSW5uZXJDbGFzczsAHUxkYWx2aWsvYW5ub3RhdGlvbi9TaWduYXR1cmU7AA` + - `5MamF2YS9pby9GaWxlOwAYTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7ABVMamF2YS9sYW5n` + - `L0V4Y2VwdGlvbjsAHUxqYXZhL2xhbmcvTm9TdWNoTWV0aG9kRXJyb3I7ABJMamF2YS9sYW` + - `5nL09iamVjdDsAFExqYXZhL2xhbmcvUnVubmFibGU7ABJMamF2YS9sYW5nL1N0cmluZzsA` + - `EkxqYXZhL2xhbmcvU3lzdGVtOwAVTGphdmEvbGFuZy9UaHJvd2FibGU7ACNMb3JnL2dvbG` + - `FuZy9hcHAvR29OYXRpdmVBY3Rpdml0eSQxOwAjTG9yZy9nb2xhbmcvYXBwL0dvTmF0aXZl` + - `QWN0aXZpdHkkMjsAI0xvcmcvZ29sYW5nL2FwcC9Hb05hdGl2ZUFjdGl2aXR5JDM7ACVMb3` + - `JnL2dvbGFuZy9hcHAvR29OYXRpdmVBY3Rpdml0eSQ0JDE7ACNMb3JnL2dvbGFuZy9hcHAv` + - `R29OYXRpdmVBY3Rpdml0eSQ0OwAhTG9yZy9nb2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZpdH` + - `k7ABROVU1CRVJfS0VZQk9BUkRfQ09ERQAJT3BlbiBGaWxlAAdTREtfSU5UABhTSU5HTEVM` + - `SU5FX0tFWUJPQVJEX0NPREUACVNhdmUgRmlsZQABVgACVkkAA1ZJSQAFVklJSUkABFZJSU` + - `wAAlZMAANWTEkABVZMSUlJAApWTElJSUlJSUlJAANWTEwAAVoAAlpMAANaTEkAE1tMamF2` + - `YS9sYW5nL1N0cmluZzsAAlx8AAphY2Nlc3MkMDAwAAphY2Nlc3MkMDAyAAphY2Nlc3MkMT` + - `AwAAphY2Nlc3MkMTAyAAphY2Nlc3MkMjAwAAphY2Nlc3MkMzAwAAthY2Nlc3NGbGFncwAL` + - `YWRkQ2F0ZWdvcnkADmFkZENvbnRlbnRWaWV3AAhhZGRGbGFncwAZYWRkT25MYXlvdXRDaG` + - `FuZ2VMaXN0ZW5lcgAWYWRkVGV4dENoYW5nZWRMaXN0ZW5lcgAQYWZ0ZXJUZXh0Q2hhbmdl` + - `ZAAUYW5kcm9pZC5hcHAubGliX25hbWUAJWFuZHJvaWQuaW50ZW50LmFjdGlvbi5DUkVBVE` + - `VfRE9DVU1FTlQAI2FuZHJvaWQuaW50ZW50LmFjdGlvbi5PUEVOX0RPQ1VNRU5UAChhbmRy` + - `b2lkLmludGVudC5hY3Rpb24uT1BFTl9ET0NVTUVOVF9UUkVFACBhbmRyb2lkLmludGVudC` + - `5jYXRlZ29yeS5PUEVOQUJMRQAfYW5kcm9pZC5pbnRlbnQuZXh0cmEuTUlNRV9UWVBFUwAa` + - `YW5kcm9pZC5pbnRlbnQuZXh0cmEuVElUTEUAF2FwcGxpY2F0aW9uL3gtZGlyZWN0b3J5AB` + - `FiZWZvcmVUZXh0Q2hhbmdlZAAMYnJpbmdUb0Zyb250AAhjb250YWlucwANY3JlYXRlQ2hv` + - `b3NlcgAOZG9IaWRlS2V5Ym9hcmQADmRvU2hvd0ZpbGVPcGVuAA5kb1Nob3dGaWxlU2F2ZQ` + - `AOZG9TaG93S2V5Ym9hcmQAAWUABmVxdWFscwAhZXhjZXB0aW9uIHJlYWRpbmcgS2V5Q2hh` + - `cmFjdGVyTWFwABJmaWxlUGlja2VyUmV0dXJuZWQADGZpbmRWaWV3QnlJZAADZ2V0AA9nZX` + - `RBYnNvbHV0ZVBhdGgAD2dldEFjdGl2aXR5SW5mbwALZ2V0Q2FjaGVEaXIADGdldENvbXBv` + - `bmVudAAHZ2V0RGF0YQAMZ2V0RGVjb3JWaWV3AAlnZXRIZWlnaHQACWdldEludGVudAARZ2` + - `V0UGFja2FnZU1hbmFnZXIAC2dldFJvb3RWaWV3ABNnZXRSb290V2luZG93SW5zZXRzAAdn` + - `ZXRSdW5lAAlnZXRTdHJpbmcAEGdldFN5c3RlbVNlcnZpY2UAGmdldFN5c3RlbVdpbmRvd0` + - `luc2V0Qm90dG9tABhnZXRTeXN0ZW1XaW5kb3dJbnNldExlZnQAGWdldFN5c3RlbVdpbmRv` + - `d0luc2V0UmlnaHQAF2dldFN5c3RlbVdpbmRvd0luc2V0VG9wAAlnZXRUbXBkaXIACGdldF` + - `dpZHRoAAlnZXRXaW5kb3cADmdldFdpbmRvd1Rva2VuABxnZXRXaW5kb3dWaXNpYmxlRGlz` + - `cGxheUZyYW1lABBnb05hdGl2ZUFjdGl2aXR5AAZoZWlnaHQADGhpZGVLZXlib2FyZAAXaG` + - `lkZVNvZnRJbnB1dEZyb21XaW5kb3cADGlucHV0X21ldGhvZAANaW5zZXRzQ2hhbmdlZAAO` + - `a2V5Ym9hcmREZWxldGUADWtleWJvYXJkVHlwZWQABGxlZnQABmxlbmd0aAAEbG9hZAALbG` + - `9hZExpYnJhcnkAEmxvYWRMaWJyYXJ5IGZhaWxlZAAnbG9hZExpYnJhcnk6IG5vIG1hbmlm` + - `ZXN0IG1ldGFkYXRhIGZvdW5kAAltVGV4dEVkaXQACG1ldGFEYXRhAARuYW1lAAhvbGRTdG` + - `F0ZQAQb25BY3Rpdml0eVJlc3VsdAAIb25DcmVhdGUADm9uTGF5b3V0Q2hhbmdlAA1vblRl` + - `eHRDaGFuZ2VkAAhwdXRFeHRyYQAMcmVxdWVzdEZvY3VzAANydW4ADXJ1bk9uVWlUaHJlYW` + - `QADXNldEltZU9wdGlvbnMADHNldElucHV0VHlwZQAPc2V0TGF5b3V0UGFyYW1zAAdzZXRU` + - `ZXh0AAdzZXRUeXBlAA1zZXRWaXNpYmlsaXR5AApzZXR1cEVudHJ5AAxzaG93RmlsZU9wZW` + - `4ADHNob3dGaWxlU2F2ZQAMc2hvd0tleWJvYXJkAA1zaG93U29mdElucHV0AAVzcGxpdAAW` + - `c3RhcnRBY3Rpdml0eUZvclJlc3VsdAALc3ViU2VxdWVuY2UABnRoaXMkMAAGdGhpcyQxAA` + - `h0b1N0cmluZwADdG9wACJ1bmtub3duIGtleWJvYXJkIHR5cGUsIHVzZSBkZWZhdWx0AAx1` + - `cGRhdGVMYXlvdXQAEHZhbCRrZXlib2FyZFR5cGUABXZhbHVlAAV3aWR0aAABfABPAgAABw` + - `4AUgAHdxACDll5lpd4tJaWl6WWAm0sIEsCdB0AfAEABw4AfwAHDrQA1QEBAAcOANgBCQAA` + - `AAAAAAAAAAcOWgDqAQEABw4A/AEBAAcOAPgBBAAAAAAHDgDtAQQAAAAABw4BEg8BHxO0An` + - `sdAN4BAQAHDgDhAQAHHeG0xFuWtQIU4AAvAAcOOE4tABoBAAcOABoCAAAHDgAaAQAHDgAa` + - `AgAABw4AGgAHDgAaAgAABw4AqgEDAAAABx2HNAJ7LCAegwB0AAcOWgDBAQAHDkujTEt/An` + - `sdh0seAN4BAAcOAiKGAIUBAQAHDloAmQECAAAHDloASwEABw5aAHgABw6HtIiMAIkBAQAH` + - `HXjheESWAncd4Vq0ajwAnQECAAAHDnjhWrdaWqUCex0ATwEABw4CIoYANAAHDgCFAgMAAA` + - `AHDgIMaAJ5HTxsSwDQAQEABw48PD20jAA5AAcOwwIOLAJ2HYeFTB5atbT/0AACGQG8ARpO` + - `AhoCWQQAnQEeAhsBvAEcARcBAhkBvAEaSwIZAbwBGl4CGQG8ARpCAhkBvAEaYAZEkAAIBA` + - `AEAQQCBAIEAQACAQEEkCABkCA3gIAEzBc4AewXAAEBAQaQIDmAgATsGToBiBoAAQEBB5Ag` + - `O4CABLAaPAHMGgABAQMIkCA9gIAE6Bo+AYQbAQGYGwEBrBsAAQEBCZAgQYCABNwcQgH4HA` + - `cCEggKGgEaARoBGgEaARoBChECAQJDgYAEpB4BiCDIHgGIIOAeAYgg+B4BiCCQHwGIIKgf` + - `AYggwB8GggIABQjYHwQIrCABggIAAYICAAGCAgABAsggBALMIQEI8CEBCIwiAQioIksAxC` + - `IBAJwjAQDcJAEA6CUIAIwmBwSwJgEB+CYHAMQnEQAAAAAAAAABAAAAAAAAAAEAAAC/AAAA` + - `cAAAAAIAAAAuAAAAbAMAAAMAAAA9AAAAJAQAAAQAAAATAAAAAAcAAAUAAABmAAAAmAcAAA` + - `YAAAAGAAAAyAoAAAMQAAAGAAAAiAsAAAEgAAAiAAAAzAsAAAYgAAAFAAAAoBQAAAEQAAAg` + - `AAAA+BQAAAIgAAC/AAAAGhYAAAMgAAAiAAAADCMAAAQgAAAHAAAAeiQAAAUgAAABAAAAry` + - `QAAAAgAAAGAAAAviQAAAAQAAABAAAApCUAAA==` + +var dexStr = `ZGV4CjAzNQAsFgor9Mf0ALoQetQdA0yYzbRQom+GYvQ8JwAAcAAAAHhWNBIAAAAAAAAAAG` + + `wmAADDAAAAcAAAAC4AAAB8AwAAPgAAADQEAAATAAAAHAcAAGkAAAC0BwAABgAAAPwKAACA` + + `GwAAvAsAALIWAAC0FgAAuRYAAL4WAADBFgAAyRYAAN0WAAD0FgAABBcAABQXAAAaFwAAMR` + + `cAADQXAAA5FwAAPxcAAEQXAABKFwAATRcAAFEXAABWFwAAWxcAAF8XAABkFwAAaRcAAIcX` + + `AACoFwAAwxcAAN0XAAAAGAAAJRgAAD4YAABRGAAAbRgAAIIYAACYGAAAsRgAAM0YAADhGA` + + `AAFhkAADYZAABiGQAAdxkAAJ4ZAAC1GQAA0hkAAAEaAAAcGgAARxoAAGwaAACMGgAAqxoA` + + `ALsaAADVGgAA7BoAAAsbAAAfGwAANRsAAEkbAABdGwAAdBsAAJkbAAC+GwAA4xsAAAocAA` + + `AvHAAAUhwAAGgcAABzHAAAfBwAAJYcAAChHAAApBwAAKgcAACtHAAAtBwAALocAAC+HAAA` + + `wxwAAMocAADWHAAA2xwAAN4cAADiHAAA5xwAAPwcAAAAHQAADB0AABgdAAAkHQAAMB0AAD` + + `wdAABIHQAAVB0AAGEdAABuHQAAfh0AAIgdAACjHQAAux0AAM0dAADjHQAACh4AAC8eAABZ` + + `HgAAex4AAJweAAC4HgAA0R4AAOQeAADyHgAA/B4AAAsfAAAbHwAAKx8AADsfAABLHwAATh` + + `8AAFYfAAB5HwAAjR8AAJsfAACgHwAAsR8AAMIfAADPHwAA3R8AAOYfAAD0HwAA/x8AAAog` + + `AAAdIAAAKiAAAD8gAABIIAAAUyAAAGUgAACBIAAAmyAAALYgAADPIAAA2iAAAOQgAADvIA` + + `AA/yAAAB0hAAAvIQAANyEAAEUhAABeIQAAbCEAAHQhAACDIQAAkyEAAKIhAACoIQAAsCEA` + + `ALYhAADDIQAA1yEAAAAiAAALIgAAFSIAABsiAAAlIgAANyIAAEEiAABRIgAAYCIAAGoiAA` + + `B4IgAAfSIAAIwiAACbIgAAqSIAALoiAADDIgAAzCIAANsiAADnIgAA9SIAAAMjAAARIwAA` + + `ICMAACcjAAA/IwAATCMAAFQjAABcIwAAZiMAAGsjAACPIwAAnSMAAK8jAAC2IwAAvSMAAA` + + `sAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAj` + + `AAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMA` + + `AAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0A` + + `AAA+AAAAPwAAAEAAAABGAAAAUAAAAFMAAAALAAAAAAAAAAAAAAAMAAAAAAAAAKAVAAANAA` + + `AAAAAAAKgVAAAOAAAAAAAAALQVAAAPAAAAAAAAALwVAAAQAAAAAgAAAAAAAAAQAAAABAAA` + + `AAAAAAARAAAABAAAAMgVAAAWAAAABAAAANAVAAAUAAAABAAAANgVAAAWAAAABAAAALQVAA` + + `AWAAAABAAAAOAVAAAVAAAABQAAAOgVAAAQAAAABgAAAAAAAAAQAAAACAAAAAAAAAAQAAAA` + + `CwAAAAAAAAATAAAADAAAAPAVAAARAAAAEAAAAMgVAAAQAAAAEgAAAAAAAAARAAAAEgAAAM` + + `gVAAAQAAAAFAAAAAAAAAAQAAAAFQAAAAAAAAAUAAAAFwAAAPgVAAAWAAAAFwAAAAAWAAAQ` + + `AAAAHAAAAAAAAAASAAAAHQAAAKAVAAAUAAAAIAAAANgVAAAQAAAAIgAAAAAAAAAUAAAAIg` + + `AAANgVAAAUAAAAIgAAAPgVAAAWAAAAIgAAAAgWAAAQAAAAKgAAAAAAAABGAAAAKwAAAAAA` + + `AABHAAAAKwAAAMgVAABIAAAAKwAAAKAVAABJAAAAKwAAABAWAABKAAAAKwAAABwWAABLAA` + + `AAKwAAACgWAABMAAAAKwAAADAWAABLAAAAKwAAADgWAABLAAAAKwAAAEAWAABLAAAAKwAA` + + `AEgWAABLAAAAKwAAAJgVAABLAAAAKwAAAJAVAABOAAAAKwAAAFAWAABPAAAAKwAAAGgWAA` + + `BLAAAAKwAAAHAWAABLAAAAKwAAAHgWAABNAAAAKwAAAIAWAABLAAAAKwAAAIgVAABLAAAA` + + `KwAAANgVAABPAAAAKwAAALQVAABLAAAAKwAAAIwWAABLAAAAKwAAAPgVAABMAAAAKwAAAJ` + + `QWAABPAAAAKwAAAAgWAABQAAAALAAAAAAAAABSAAAALAAAAJwWAABSAAAALAAAAKQWAABR` + + `AAAALAAAAHgWAABRAAAALAAAAKwWAAAUAAAALQAAANgVAAAFAAoAoAAAAAcAAACZAAAABw` + + `AAALwAAAAJAAAAQwAAACUAKgC5AAAAJQAAAL8AAAAmACoAuQAAACcAKgC5AAAAKAApALoA` + + `AAApACoAuQAAACoAAAAFAAAAKgAAAAYAAAAqAAAABwAAACoAAAAIAAAAKgAAAEEAAAAqAA` + + `AARAAAACoAKgCQAAAAKgAXAJ8AAAAqACIAogAAAAEAIAAEAAAAAQAoAKQAAAAEADIABAAA` + + `AAQACQBdAAAABAAHAF8AAAAEAAgAbgAAAAQABQB8AAAABAAOAH0AAAAEAAoApwAAAAQACw` + + `CnAAAABAAJAK8AAAAGAAwAegAAAAcAIAAEAAAABwAAAJEAAAAHAAAAwQAAAAgAGwC7AAAA` + + `CgAcAIUAAAAMABAAlQAAAAwAAACaAAAADgADAHMAAAAOAAQAcwAAABAAAQB4AAAAEAARAJ` + + `sAAAASACsAYAAAABIAAAB/AAAAEgASAIIAAAASABUAgwAAABIAAACMAAAAEgAPAI4AAAAS` + + `ACcAjwAAABQAEgB+AAAAFQAAAIcAAAAVAAAAiAAAABUAAACJAAAAFQAAAIoAAAAWADkAkw` + + `AAABYAOgC1AAAAFwAlAAQAAAAXACoAYQAAABcAIABsAAAAFwA4AKgAAAAXACEAqwAAABcA` + + `IQCsAAAAFwAuAK0AAAAXAC8ArgAAABcAIQCwAAAAGAAiAAQAAAAcABsAeQAAAB0AAACaAA` + + `AAHQAZALgAAAAdABsAuwAAACAAIAAEAAAAIgA7AG0AAAAiADwAdAAAACIAAACaAAAAIgA9` + + `ALYAAAAjADIAnAAAACUANgAEAAAAJQAgAKkAAAAmADUABAAAACYAIACpAAAAJwA1AAQAAA` + + `AnACwApQAAACgANAAEAAAAKAApAGIAAAAoADAAawAAACgAMACmAAAAKQA1AAQAAAApACAA` + + `qQAAACoAIAAEAAAAKgAWAFUAAAAqABcAVgAAACoAHQBXAAAAKgAeAFgAAAAqAB8AWQAAAC` + + `oANwBaAAAAKgA1AFsAAAAqAC0AXgAAACoAIABvAAAAKgAyAHAAAAAqADMAcQAAACoAIQBy` + + `AAAAKgAyAHYAAAAqABMAdwAAACoAGAB7AAAAKgAGAIAAAAAqAA0AgQAAACoAAgCEAAAAKg` + + `AaAIYAAAAqABsAiwAAACoAFACNAAAAKgAgAJIAAAAqACMAlgAAACoAIACXAAAAKgAyAJgA` + + `AAAqACAAmwAAACoAJACjAAAAKgAoAKQAAAAqADEAqgAAACoAIACxAAAAKgAyALIAAAAqAD` + + `MAswAAACoAIQC0AAAAKgAmALcAAAAqACAAvgAAACUAAAAAAAAAIAAAAIgVAAAKAAAAMBUA` + + `AIElAAAAAAAAJgAAAAAAAAAgAAAAiBUAAAoAAABIFQAAlSUAAAAAAAAnAAAAAAAAACAAAA` + + `CQFQAACgAAAFgVAACmJQAAAAAAACgAAAAAAAAAIAAAAJgVAAAKAAAAaBUAALclAAAAAAAA` + + `KQAAAAAAAAAgAAAAiBUAAAoAAAB4FQAA0CUAAAAAAAAqAAAAAQAAAAEAAAAAAAAACgAAAA` + + `AAAADhJQAAciUAAAIAAAA9JQAARCUAAAEAAABNJQAAAgAAAFYlAABEJQAAAgAAAF0lAABE` + + `JQAAAgAAAGQlAABEJQAAAgAAAGslAABEJQAAAwADAAEAAADAIwAACAAAAFsBBABZAgUAcB` + + `AzAAAADgAGAAEAAwAAAMcjAAB4AAAAFQEAQBJiEgQUAJAACABSUwUAKwNlAAAAGgIJABoD` + + `vQBxIBMAMgBUUgQAcRBGAAIADAJuICkAEgBUUQQAcRBGAAEADAFuICoAAQBUUAQAGgEDAH` + + `EgSQAQAFRQBABxEEYAAAAMABoBAwBuICwAEABUUAQAcRBGAAAADABuIC0AQABUUAQAcRBG` + + `AAAADABuECcAAABUUAQAcRBGAAAADABuECgAAABUUAQAGgGUAG4gWAAQAAwAHwAWAFRRBA` + + `BxEEYAAQAMAW4wJAAQBA4AASEorBQAkgAIAAEhKKcAAAABAwAAAAAACgAAAF0AAABfAAAA` + + `AgACAAEAAADiIwAABgAAAFsBBgBwEDMAAAAOAAMAAQACAAAA6CMAAAwAAABUIAYAcRBGAA` + + `AADAATAQgAbiAtABAADgACAAIAAQAAAO8jAAAGAAAAWwEHAHAQMwAAAA4ACwAKAAEAAAD2` + + `IwAABgAAAFQQBwBuEGgAAAAOAAIAAgABAAAABiQAAAYAAABbAQgAcBAzAAAADgAEAAIAAw` + + `AAAA0kAAAXAAAAchASAAMACgASETUQEQBUIAgAVAAJABoBAwBxIEkAEAASABoBAwByMBEA` + + `AwEOAAAABQAFAAAAAAAXJAAAAQAAAA4AAAAHAAUAAwAAACEkAABJAAAAchAwAAMACgBUIQ` + + `gAVBEJAHEQSAABAAwBbhA2AAEACgE3EB8AVCAIAFQACQCQAQQGcjAxAEMBDAFyEDIAAQAM` + + `AXEgSwAQAFQgCABUAAkAchAyAAMADAFxIEkAEAAOAHIQMAADAAoAVCEIAFQRCQBxEEgAAQ` + + `AMAW4QNgABAAoBNRDk/1QgCABUAAkAcRBMAAAAKNsAAAIAAgABAAAAOCQAAAYAAABbAQkA` + + `cBAzAAAADgAFAAEAAwAAAD8kAABgAAAAEuNUQAkAIgEXAHEASgAAAAwCcCAlACEAcSBHAB` + + `AAVEAJAHEQRgAAAAwAEwEIAG4gLQAQAFRACQBxEEYAAAAMABQBkAAIAG4gKgAQACIAGABw` + + `MC4AMANUQQkAcRBGAAEADAFuICsAAQBUQQkAVEIJAHEQRgACAAwCbjBNACEAVEAJABoBAw` + + `BxIEkAEABUQAkAcRBGAAAADAAaAQMAbiAsABAAVEAJAHEQRgAAAAwAIgEoAHAgPwBBAG4g` + + `JgAQAA4AAgABAAEAAABQJAAACgAAAHAQAAABABoAAABbEBIAaQEQAA4AAgABAAAAAABYJA` + + `AAAwAAAFQQEQARAAAAAgACAAAAAABeJAAAAwAAAFsBEQARAQAAAgABAAAAAABlJAAAAwAA` + + `AFQQEgARAAAAAgACAAAAAABrJAAAAwAAAFsBEgARAQAAAQAAAAAAAAByJAAAAwAAAGIAEA` + + `ARAAAAAgACAAIAAAB3JAAABAAAAHAgXgAQAA4AAQABAAEAAAB+JAAABAAAAHAQXQAAAA4A` + + `BwADAAMAAQCEJAAAGQAAABLwcRAWAAQADAFuMBUAUQYKATkBAwAPAAEQKP4NARoCCQAaA3` + + `UAcTAUADIBKPUNASjzAAABAAAABwABAAECDxceDgAAAQAAAAEAAACVJAAABgAAAGIAEABu` + + `EE4AAAAOAAQAAQADAAEAmyQAADMAAABuEFYAAwAMAG4QVQADAAwBbhAGAAEADAETAoAAbj` + + `ALABACDABUAQAAOQEKABoACQAaAZ4AcSATABAADgBUAAAAGgFjAG4gEAAQAAwAcRA4AAAA` + + `KPQNABoBCQAaAp0AcTAUACEAKOsAAAAAAAApAAEAAQEeKgIAAQACAAAArCQAAAkAAAAiAC` + + `kAcCBDABAAbiBiAAEADgAAAAIAAQACAAAAtSQAAAYAAABiABAAbiBPABAADgADAAIAAwAA` + + `AL0kAAAGAAAAYgAQAG4wUAAQAg4AAgABAAIAAADGJAAABgAAAGIAEABuIFEAEAAOAAQAAQ` + + `ADAAAAzSQAACQAAAAaAJQAbiBYAAMADAAfABYAFAECAAIBbiBTABMADAFuEBkAAQAMAW4Q` + + `HAABAAwBEgJuMCMAEAIiACYAcCA7ADAAbiBiAAMADgAGAAIAAwAAANYkAABXAAAAEhMiAA` + + `QAGgFlAHAgAgAQABoBagBuIDUAUQAKATgBHABgAQMAEwIVADQhFgAiAAQAGgFmAHAgAgAQ` + + `AG4gBAAwABoBQgBxIAUAEAAMAG4wZwAEAw4AGgHCAG4gNAAVAAoBOAEeAGABAwATAhMANC` + + `EYABoBAgBuIAoAEAAaAWgAGgJUAG4gNwAlAAwCbjAJABACGgFnAG4gAwAQACjTbiAKAFAA` + + `GgFnAG4gAwAQACjKAAAGAAMAAwAAAOokAAA+AAAAIgAEABoBZABwIAIAEAAaAcIAbiA0AB` + + `QACgE4AS0AYAEDABMCEwA0IScAGgECAG4gCgAQABoBaAAaAlQAbiA3ACQADAJuMAkAEAIa` + + `AWkAbjAIABAFGgFnAG4gAwAQABoBRQBxIAUAEAAMABIhbjBnAAMBDgBuIAoAQAAo6AMAAg` + + `ADAAAA/CQAAAkAAAAiACUAcDA5ABACbiBiAAEADgAAAAIAAQABAAAABSUAAAkAAABuEFQA` + + `AQAMAG4QLwAAAAwAEQAAAAUABAACAAAACiUAABwAAAASEDICBgASIDICAwAOABLwMgMIAB` + + `oAAABwIFIAAQAo924QBwAEAAwAbhAPAAAADABwIFIAAQAo6wQAAgACAAAAHCUAAB0AAABw` + + `EF8AAgBvIAEAMgBwEGMAAgAUAAIAAgFuIFMAAgAMAG4QGQAAAAwAIgEnAHAgPQAhAG4gFw` + + `AQAA4AAAAHAAEABQABACglAABgAAAAbhBaAAYADABuEB4AAAAMAG4QGgAAAAwAOQADAA4A` + + `bhAiAAAACgFuEB8AAAAKAm4QIAAAAAoDbhAhAAAACgBwUFwAFjIo7A0AIgAHAHAQDAAAAG` + + `4QWgAGAAwBbhAeAAEADAFuIB0AAQAUAQIAAgFuIFMAFgAMAW4QGQABAAwBUgICAG4QGAAB` + + `AAoDbhANAAAACgSxQ1IEAgCxQ1IEAQBuEBsAAQAKAW4QDgAAAAoFsVFSAAEAkQABAHBQXA` + + `AmQyivAAAAACIAAQABAR8jvAsAAAAAAAABAAAAAAAAADkAAADICwAA0AsAAAAAAAAAAAAA` + + `AAAAANwLAAAAAAAAAAAAAAAAAADoCwAAAAAAAAAAAAAAAAAA9AsAAAAAAAAAAAAAAAAAAA` + + `EAAAAhAAAAAQAAABEAAAABAAAADQAAAAIAAAAAAAAAAwAAAAAAAAAAAAAAAgAAACIAIgAD` + + `AAAAIgAiACQAAAABAAAAAAAAAAIAAAAEAB0AAQAAACIAAAACAAAAIgAtAAIAAAACAAAAAg` + + `AAAAAAHQABAAAAKgAAAAIAAAAqABcAAgAAACoAIgAEAAAAAAAAAAAAAAADAAAAAAAAAAQA` + + `AAABAAAAAwAAAAIAAAAEAAAAAQAAAAcAAAABAAAACgAAAAEAAAAMAAAACQAAABIAAAAAAA` + + `AAAAAAAAAAAAAAAAAAAgAAABIAEwABAAAAEwAAAAEAAAAdAAAABAAAAB0AAAAAAAAAAQAA` + + `ACkAAAACAAAAKgAAAAIAAAALAAAAAgAAABIAAAABAAAAIAAAAAMoKVYAAyovKgABMAAGPG` + + `luaXQ+ABJERUZBVUxUX0lOUFVUX1RZUEUAFURFRkFVTFRfS0VZQk9BUkRfQ09ERQAORklM` + + `RV9PUEVOX0NPREUADkZJTEVfU0FWRV9DT0RFAARGeW5lABVHb05hdGl2ZUFjdGl2aXR5Lm` + + `phdmEAAUkAA0lJSQAESUlJSQADSUxMAARJTExMAAFMAAJMSQADTElJAANMSUwAAkxMAANM` + + `TEkAA0xMTAAcTGFuZHJvaWQvYXBwL05hdGl2ZUFjdGl2aXR5OwAfTGFuZHJvaWQvY29udG` + + `VudC9Db21wb25lbnROYW1lOwAZTGFuZHJvaWQvY29udGVudC9Db250ZXh0OwAYTGFuZHJv` + + `aWQvY29udGVudC9JbnRlbnQ7ACFMYW5kcm9pZC9jb250ZW50L3BtL0FjdGl2aXR5SW5mbz` + + `sAI0xhbmRyb2lkL2NvbnRlbnQvcG0vUGFja2FnZU1hbmFnZXI7ABdMYW5kcm9pZC9ncmFw` + + `aGljcy9SZWN0OwARTGFuZHJvaWQvbmV0L1VyaTsAGkxhbmRyb2lkL29zL0J1aWxkJFZFUl` + + `NJT047ABNMYW5kcm9pZC9vcy9CdW5kbGU7ABRMYW5kcm9pZC9vcy9JQmluZGVyOwAXTGFu` + + `ZHJvaWQvdGV4dC9FZGl0YWJsZTsAGkxhbmRyb2lkL3RleHQvVGV4dFdhdGNoZXI7ABJMYW` + + `5kcm9pZC91dGlsL0xvZzsAM0xhbmRyb2lkL3ZpZXcvS2V5Q2hhcmFjdGVyTWFwJFVuYXZh` + + `aWxhYmxlRXhjZXB0aW9uOwAeTGFuZHJvaWQvdmlldy9LZXlDaGFyYWN0ZXJNYXA7ACpMYW` + + `5kcm9pZC92aWV3L1ZpZXckT25MYXlvdXRDaGFuZ2VMaXN0ZW5lcjsAE0xhbmRyb2lkL3Zp` + + `ZXcvVmlldzsAJUxhbmRyb2lkL3ZpZXcvVmlld0dyb3VwJExheW91dFBhcmFtczsAFUxhbm` + + `Ryb2lkL3ZpZXcvV2luZG93OwAbTGFuZHJvaWQvdmlldy9XaW5kb3dJbnNldHM7AC1MYW5k` + + `cm9pZC92aWV3L2lucHV0bWV0aG9kL0lucHV0TWV0aG9kTWFuYWdlcjsAGUxhbmRyb2lkL3` + + `dpZGdldC9FZGl0VGV4dDsAKUxhbmRyb2lkL3dpZGdldC9GcmFtZUxheW91dCRMYXlvdXRQ` + + `YXJhbXM7ACNMZGFsdmlrL2Fubm90YXRpb24vRW5jbG9zaW5nTWV0aG9kOwAeTGRhbHZpay` + + `9hbm5vdGF0aW9uL0lubmVyQ2xhc3M7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJl` + + `OwAOTGphdmEvaW8vRmlsZTsAGExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOwAVTGphdmEvbG` + + `FuZy9FeGNlcHRpb247AB1MamF2YS9sYW5nL05vU3VjaE1ldGhvZEVycm9yOwASTGphdmEv` + + `bGFuZy9PYmplY3Q7ABRMamF2YS9sYW5nL1J1bm5hYmxlOwASTGphdmEvbGFuZy9TdHJpbm` + + `c7ABJMamF2YS9sYW5nL1N5c3RlbTsAFUxqYXZhL2xhbmcvVGhyb3dhYmxlOwAjTG9yZy9n` + + `b2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZpdHkkMTsAI0xvcmcvZ29sYW5nL2FwcC9Hb05hdG` + + `l2ZUFjdGl2aXR5JDI7ACNMb3JnL2dvbGFuZy9hcHAvR29OYXRpdmVBY3Rpdml0eSQzOwAl` + + `TG9yZy9nb2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZpdHkkNCQxOwAjTG9yZy9nb2xhbmcvYX` + + `BwL0dvTmF0aXZlQWN0aXZpdHkkNDsAIUxvcmcvZ29sYW5nL2FwcC9Hb05hdGl2ZUFjdGl2` + + `aXR5OwAUTlVNQkVSX0tFWUJPQVJEX0NPREUACU9wZW4gRmlsZQAHU0RLX0lOVAAYU0lOR0` + + `xFTElORV9LRVlCT0FSRF9DT0RFAAlTYXZlIEZpbGUAAVYAAlZJAANWSUkABVZJSUlJAARW` + + `SUlMAAJWTAADVkxJAAVWTElJSQAKVkxJSUlJSUlJSQADVkxMAAFaAAJaTAADWkxJABNbTG` + + `phdmEvbGFuZy9TdHJpbmc7AAJcfAAKYWNjZXNzJDAwMAAKYWNjZXNzJDAwMgAKYWNjZXNz` + + `JDEwMAAKYWNjZXNzJDEwMgAKYWNjZXNzJDIwMAAKYWNjZXNzJDMwMAAKYWNjZXNzJDQwMA` + + `ALYWNjZXNzRmxhZ3MAC2FkZENhdGVnb3J5AA5hZGRDb250ZW50VmlldwAIYWRkRmxhZ3MA` + + `GWFkZE9uTGF5b3V0Q2hhbmdlTGlzdGVuZXIAFmFkZFRleHRDaGFuZ2VkTGlzdGVuZXIAEG` + + `FmdGVyVGV4dENoYW5nZWQAFGFuZHJvaWQuYXBwLmxpYl9uYW1lACVhbmRyb2lkLmludGVu` + + `dC5hY3Rpb24uQ1JFQVRFX0RPQ1VNRU5UACNhbmRyb2lkLmludGVudC5hY3Rpb24uT1BFTl` + + `9ET0NVTUVOVAAoYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk9QRU5fRE9DVU1FTlRfVFJFRQAg` + + `YW5kcm9pZC5pbnRlbnQuY2F0ZWdvcnkuT1BFTkFCTEUAH2FuZHJvaWQuaW50ZW50LmV4dH` + + `JhLk1JTUVfVFlQRVMAGmFuZHJvaWQuaW50ZW50LmV4dHJhLlRJVExFABdhcHBsaWNhdGlv` + + `bi94LWRpcmVjdG9yeQARYmVmb3JlVGV4dENoYW5nZWQADGJyaW5nVG9Gcm9udAAIY29udG` + + `FpbnMADWNyZWF0ZUNob29zZXIADmRvSGlkZUtleWJvYXJkAA5kb1Nob3dGaWxlT3BlbgAO` + + `ZG9TaG93RmlsZVNhdmUADmRvU2hvd0tleWJvYXJkAAFlAAZlcXVhbHMAIWV4Y2VwdGlvbi` + + `ByZWFkaW5nIEtleUNoYXJhY3Rlck1hcAASZmlsZVBpY2tlclJldHVybmVkAAxmaW5kVmll` + + `d0J5SWQAA2dldAAPZ2V0QWJzb2x1dGVQYXRoAA9nZXRBY3Rpdml0eUluZm8AC2dldENhY2` + + `hlRGlyAAxnZXRDb21wb25lbnQAB2dldERhdGEADGdldERlY29yVmlldwAJZ2V0SGVpZ2h0` + + `AAlnZXRJbnRlbnQAEWdldFBhY2thZ2VNYW5hZ2VyAAtnZXRSb290VmlldwATZ2V0Um9vdF` + + `dpbmRvd0luc2V0cwAHZ2V0UnVuZQAJZ2V0U3RyaW5nABBnZXRTeXN0ZW1TZXJ2aWNlABpn` + + `ZXRTeXN0ZW1XaW5kb3dJbnNldEJvdHRvbQAYZ2V0U3lzdGVtV2luZG93SW5zZXRMZWZ0AB` + + `lnZXRTeXN0ZW1XaW5kb3dJbnNldFJpZ2h0ABdnZXRTeXN0ZW1XaW5kb3dJbnNldFRvcAAJ` + + `Z2V0VG1wZGlyAAhnZXRXaWR0aAAJZ2V0V2luZG93AA5nZXRXaW5kb3dUb2tlbgAcZ2V0V2` + + `luZG93VmlzaWJsZURpc3BsYXlGcmFtZQAQZ29OYXRpdmVBY3Rpdml0eQAGaGVpZ2h0AAxo` + + `aWRlS2V5Ym9hcmQAF2hpZGVTb2Z0SW5wdXRGcm9tV2luZG93AAxpbnB1dF9tZXRob2QABm` + + `luc2VydAANaW5zZXRzQ2hhbmdlZAAOa2V5Ym9hcmREZWxldGUADWtleWJvYXJkVHlwZWQA` + + `BGxlZnQABmxlbmd0aAAEbG9hZAALbG9hZExpYnJhcnkAEmxvYWRMaWJyYXJ5IGZhaWxlZA` + + `AnbG9hZExpYnJhcnk6IG5vIG1hbmlmZXN0IG1ldGFkYXRhIGZvdW5kAAltVGV4dEVkaXQA` + + `CG1ldGFEYXRhAARuYW1lAAhvbGRTdGF0ZQAQb25BY3Rpdml0eVJlc3VsdAAIb25DcmVhdG` + + `UADm9uTGF5b3V0Q2hhbmdlAA1vblRleHRDaGFuZ2VkAAhwdXRFeHRyYQAMcmVxdWVzdEZv` + + `Y3VzAANydW4ADXJ1bk9uVWlUaHJlYWQADXNldEltZU9wdGlvbnMADHNldElucHV0VHlwZQ` + + `APc2V0TGF5b3V0UGFyYW1zAAdzZXRUZXh0AAdzZXRUeXBlAA1zZXRWaXNpYmlsaXR5AApz` + + `ZXR1cEVudHJ5AAxzaG93RmlsZU9wZW4ADHNob3dGaWxlU2F2ZQAMc2hvd0tleWJvYXJkAA` + + `1zaG93U29mdElucHV0AAVzcGxpdAAWc3RhcnRBY3Rpdml0eUZvclJlc3VsdAALc3ViU2Vx` + + `dWVuY2UABnRoaXMkMAAGdGhpcyQxAAh0b1N0cmluZwADdG9wACJ1bmtub3duIGtleWJvYX` + + `JkIHR5cGUsIHVzZSBkZWZhdWx0AAx1cGRhdGVMYXlvdXQAEHZhbCRrZXlib2FyZFR5cGUA` + + `BXZhbHVlAAV3aWR0aAABfABPAgAABw4AUgAHdxACDll5lph4tZaWl6WWAmssIEsCdB0Afg` + + `EABw4AgQEABw60ANcBAQAHDgDaAQkAAAAAAAAAAAAHDloA8AEBAAcOAIQCAQAHDniWawD/` + + `AQQAAAAABw4A8wEEAAAAAAcOARIPAREUtAJ6HQESEADgAQEABw4A4wEABx3htMRblrZ4tQ` + + `Ib4AAvAAcOOE4tABoBAAcOABoCAAAHDgAaAQAHDgAaAgAABw4AGgAHDgAaAgAABw4AGgEA` + + `Bw4ArAEDAAAABx2HNAJ7LCAegwB2AAcOWgDDAQAHDkujTEt/Ansdh0seAOABAAcOAi2GAI` + + `cBAQAHDloAmwECAAAHDloASwEABw5aAHoABw6HtIiMAIsBAQAHHXjheESWAncd4Vq0ajwA` + + `nwECAAAHDnjhWrdaWqUCex0ATwEABw4CJIYANAAHDgCSAgMAAAAHDgIMaAJ5HTxsSwDSAQ` + + `EABw48PD20jAA5AAcOwwIOLAJ2HYeFTB5atbT/0AACGQHAARpRAhoCXAQAoQEeAhsBwAEc` + + `ARcBAhkBwAEaTgIZAcABGmECGQHAARpEAhkBwAEaYwZEkAAIBAAEAQQCBAIEAQACAQEEkC` + + `ABkCA5gIAEgBg6AaAYAAEBAQaQIDuAgASgGjwBvBoAAQEBB5AgPYCABOQaPgGAGwABAQMI` + + `kCA/gIAEnBtAAbgbAQH4GwEBjBwAAQEBCZAgQ4CABLAdRAHMHQcCEwgKGgEaARoBGgEaAR` + + `oBChECAQJFgYAEnB8BiCDAHwGIINgfAYgg8B8BiCCIIAGIIKAgAYgguCABiCDQIAaCAgAF` + + `COggBAi8IQGCAgABggIAAYICAAEC2CEEAtwiAQiAIwEInCMBCLgjTgDUIwEArCQBAOwlAQ` + + `D4JggAnCcHBMAnAQGIKAcA1CgRAAAAAAAAAAEAAAAAAAAAAQAAAMMAAABwAAAAAgAAAC4A` + + `AAB8AwAAAwAAAD4AAAA0BAAABAAAABMAAAAcBwAABQAAAGkAAAC0BwAABgAAAAYAAAD8Cg` + + `AAAxAAAAYAAAC8CwAAASAAACMAAAAADAAABiAAAAUAAAAwFQAAARAAACEAAACIFQAAAiAA` + + `AMMAAACyFgAAAyAAACMAAADAIwAABCAAAAcAAAA9JQAABSAAAAEAAAByJQAAACAAAAYAAA` + + `CBJQAAABAAAAEAAABsJgAA` + `` diff --git a/internal/driver/gomobile/driver.go b/internal/driver/gomobile/driver.go index 2bf713f89c..172c3518a6 100644 --- a/internal/driver/gomobile/driver.go +++ b/internal/driver/gomobile/driver.go @@ -27,6 +27,7 @@ import ( const ( tapMoveThreshold = 4.0 // how far can we move before it is a drag tapSecondaryDelay = 300 * time.Millisecond // how long before secondary tap + backspaceDelay = 50 * time.Millisecond // how quickly can a user type backspace in succession ) type mobileDriver struct { @@ -36,6 +37,8 @@ type mobileDriver struct { windows []fyne.Window device *device animation *animation.Runner + + lastBackspace time.Time } // Declare conformity with Driver @@ -422,6 +425,14 @@ func (d *mobileDriver) typeDownCanvas(canvas *mobileCanvas, r rune, code key.Cod r = runeToPrintable(r) keyEvent := &fyne.KeyEvent{Name: keyName} + // If backspace was too quick, we received a real backspace followed by simulated backspace + if keyEvent.Name == fyne.KeyBackspace { + if time.Since(d.lastBackspace) < backspaceDelay { + return + } + d.lastBackspace = time.Now() + } + if canvas.Focused() != nil { if keyName != "" { canvas.Focused().TypedKey(keyEvent) diff --git a/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java b/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java index afe446940d..985679ea63 100644 --- a/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java +++ b/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java @@ -100,8 +100,10 @@ public void run() { mTextEdit.setImeOptions(imeOptions); mTextEdit.setInputType(inputType); - oldState = ""; - mTextEdit.setText(""); + // always place one character so all keyboards can send backspace + oldState = "0"; + mTextEdit.setText("0"); + mTextEdit.setVisibility(View.VISIBLE); mTextEdit.bringToFront(); mTextEdit.requestFocus(); @@ -231,13 +233,18 @@ public void run() { mTextEdit.setLayoutParams(mEditTextLayoutParams); addContentView(mTextEdit, mEditTextLayoutParams); + // always place one character so all keyboards can send backspace + oldState = "0"; + mTextEdit.setText("0"); + mTextEdit.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.length() > oldState.length()) { - keyboardTyped(s.subSequence(oldState.length(), s.length()).toString()); + keyboardTyped(s.subSequence(start,start+count).toString()); } else if (s.length() < oldState.length()) { - // backspace key seems to be sent even for soft content + // send a backspace + keyboardDelete(); } oldState = s.toString(); @@ -249,6 +256,12 @@ public void beforeTextChanged(CharSequence s, int start, int count, int after) { @Override public void afterTextChanged(Editable s) { + // always place one character so all keyboards can send backspace + if (s.length() < 1) { + oldState = "0"; + s.insert(0,"0"); + return; + } } }); } From 9e6e19e677e8640950e19a9bbc3a20f5c26ccba0 Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Fri, 14 May 2021 17:00:33 -0500 Subject: [PATCH 2/3] if keyboard is already up on android when requested, nothing to do --- cmd/fyne/internal/mobile/dex.go | 385 +++++++++--------- .../fyne-io/mobile/app/GoNativeActivity.java | 4 + 2 files changed, 197 insertions(+), 192 deletions(-) diff --git a/cmd/fyne/internal/mobile/dex.go b/cmd/fyne/internal/mobile/dex.go index 8bf83377b9..13aad05468 100644 --- a/cmd/fyne/internal/mobile/dex.go +++ b/cmd/fyne/internal/mobile/dex.go @@ -6,196 +6,197 @@ package mobile -var dexStr = `ZGV4CjAzNQAsFgor9Mf0ALoQetQdA0yYzbRQom+GYvQ8JwAAcAAAAHhWNBIAAAAAAAAAAG` + - `wmAADDAAAAcAAAAC4AAAB8AwAAPgAAADQEAAATAAAAHAcAAGkAAAC0BwAABgAAAPwKAACA` + - `GwAAvAsAALIWAAC0FgAAuRYAAL4WAADBFgAAyRYAAN0WAAD0FgAABBcAABQXAAAaFwAAMR` + - `cAADQXAAA5FwAAPxcAAEQXAABKFwAATRcAAFEXAABWFwAAWxcAAF8XAABkFwAAaRcAAIcX` + - `AACoFwAAwxcAAN0XAAAAGAAAJRgAAD4YAABRGAAAbRgAAIIYAACYGAAAsRgAAM0YAADhGA` + - `AAFhkAADYZAABiGQAAdxkAAJ4ZAAC1GQAA0hkAAAEaAAAcGgAARxoAAGwaAACMGgAAqxoA` + - `ALsaAADVGgAA7BoAAAsbAAAfGwAANRsAAEkbAABdGwAAdBsAAJkbAAC+GwAA4xsAAAocAA` + - `AvHAAAUhwAAGgcAABzHAAAfBwAAJYcAAChHAAApBwAAKgcAACtHAAAtBwAALocAAC+HAAA` + - `wxwAAMocAADWHAAA2xwAAN4cAADiHAAA5xwAAPwcAAAAHQAADB0AABgdAAAkHQAAMB0AAD` + - `wdAABIHQAAVB0AAGEdAABuHQAAfh0AAIgdAACjHQAAux0AAM0dAADjHQAACh4AAC8eAABZ` + - `HgAAex4AAJweAAC4HgAA0R4AAOQeAADyHgAA/B4AAAsfAAAbHwAAKx8AADsfAABLHwAATh` + - `8AAFYfAAB5HwAAjR8AAJsfAACgHwAAsR8AAMIfAADPHwAA3R8AAOYfAAD0HwAA/x8AAAog` + - `AAAdIAAAKiAAAD8gAABIIAAAUyAAAGUgAACBIAAAmyAAALYgAADPIAAA2iAAAOQgAADvIA` + - `AA/yAAAB0hAAAvIQAANyEAAEUhAABeIQAAbCEAAHQhAACDIQAAkyEAAKIhAACoIQAAsCEA` + - `ALYhAADDIQAA1yEAAAAiAAALIgAAFSIAABsiAAAlIgAANyIAAEEiAABRIgAAYCIAAGoiAA` + - `B4IgAAfSIAAIwiAACbIgAAqSIAALoiAADDIgAAzCIAANsiAADnIgAA9SIAAAMjAAARIwAA` + - `ICMAACcjAAA/IwAATCMAAFQjAABcIwAAZiMAAGsjAACPIwAAnSMAAK8jAAC2IwAAvSMAAA` + - `sAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAj` + - `AAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMA` + - `AAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0A` + - `AAA+AAAAPwAAAEAAAABGAAAAUAAAAFMAAAALAAAAAAAAAAAAAAAMAAAAAAAAAKAVAAANAA` + - `AAAAAAAKgVAAAOAAAAAAAAALQVAAAPAAAAAAAAALwVAAAQAAAAAgAAAAAAAAAQAAAABAAA` + - `AAAAAAARAAAABAAAAMgVAAAWAAAABAAAANAVAAAUAAAABAAAANgVAAAWAAAABAAAALQVAA` + - `AWAAAABAAAAOAVAAAVAAAABQAAAOgVAAAQAAAABgAAAAAAAAAQAAAACAAAAAAAAAAQAAAA` + - `CwAAAAAAAAATAAAADAAAAPAVAAARAAAAEAAAAMgVAAAQAAAAEgAAAAAAAAARAAAAEgAAAM` + - `gVAAAQAAAAFAAAAAAAAAAQAAAAFQAAAAAAAAAUAAAAFwAAAPgVAAAWAAAAFwAAAAAWAAAQ` + - `AAAAHAAAAAAAAAASAAAAHQAAAKAVAAAUAAAAIAAAANgVAAAQAAAAIgAAAAAAAAAUAAAAIg` + - `AAANgVAAAUAAAAIgAAAPgVAAAWAAAAIgAAAAgWAAAQAAAAKgAAAAAAAABGAAAAKwAAAAAA` + - `AABHAAAAKwAAAMgVAABIAAAAKwAAAKAVAABJAAAAKwAAABAWAABKAAAAKwAAABwWAABLAA` + - `AAKwAAACgWAABMAAAAKwAAADAWAABLAAAAKwAAADgWAABLAAAAKwAAAEAWAABLAAAAKwAA` + - `AEgWAABLAAAAKwAAAJgVAABLAAAAKwAAAJAVAABOAAAAKwAAAFAWAABPAAAAKwAAAGgWAA` + - `BLAAAAKwAAAHAWAABLAAAAKwAAAHgWAABNAAAAKwAAAIAWAABLAAAAKwAAAIgVAABLAAAA` + - `KwAAANgVAABPAAAAKwAAALQVAABLAAAAKwAAAIwWAABLAAAAKwAAAPgVAABMAAAAKwAAAJ` + - `QWAABPAAAAKwAAAAgWAABQAAAALAAAAAAAAABSAAAALAAAAJwWAABSAAAALAAAAKQWAABR` + - `AAAALAAAAHgWAABRAAAALAAAAKwWAAAUAAAALQAAANgVAAAFAAoAoAAAAAcAAACZAAAABw` + - `AAALwAAAAJAAAAQwAAACUAKgC5AAAAJQAAAL8AAAAmACoAuQAAACcAKgC5AAAAKAApALoA` + - `AAApACoAuQAAACoAAAAFAAAAKgAAAAYAAAAqAAAABwAAACoAAAAIAAAAKgAAAEEAAAAqAA` + - `AARAAAACoAKgCQAAAAKgAXAJ8AAAAqACIAogAAAAEAIAAEAAAAAQAoAKQAAAAEADIABAAA` + - `AAQACQBdAAAABAAHAF8AAAAEAAgAbgAAAAQABQB8AAAABAAOAH0AAAAEAAoApwAAAAQACw` + - `CnAAAABAAJAK8AAAAGAAwAegAAAAcAIAAEAAAABwAAAJEAAAAHAAAAwQAAAAgAGwC7AAAA` + - `CgAcAIUAAAAMABAAlQAAAAwAAACaAAAADgADAHMAAAAOAAQAcwAAABAAAQB4AAAAEAARAJ` + - `sAAAASACsAYAAAABIAAAB/AAAAEgASAIIAAAASABUAgwAAABIAAACMAAAAEgAPAI4AAAAS` + - `ACcAjwAAABQAEgB+AAAAFQAAAIcAAAAVAAAAiAAAABUAAACJAAAAFQAAAIoAAAAWADkAkw` + - `AAABYAOgC1AAAAFwAlAAQAAAAXACoAYQAAABcAIABsAAAAFwA4AKgAAAAXACEAqwAAABcA` + - `IQCsAAAAFwAuAK0AAAAXAC8ArgAAABcAIQCwAAAAGAAiAAQAAAAcABsAeQAAAB0AAACaAA` + - `AAHQAZALgAAAAdABsAuwAAACAAIAAEAAAAIgA7AG0AAAAiADwAdAAAACIAAACaAAAAIgA9` + - `ALYAAAAjADIAnAAAACUANgAEAAAAJQAgAKkAAAAmADUABAAAACYAIACpAAAAJwA1AAQAAA` + - `AnACwApQAAACgANAAEAAAAKAApAGIAAAAoADAAawAAACgAMACmAAAAKQA1AAQAAAApACAA` + - `qQAAACoAIAAEAAAAKgAWAFUAAAAqABcAVgAAACoAHQBXAAAAKgAeAFgAAAAqAB8AWQAAAC` + - `oANwBaAAAAKgA1AFsAAAAqAC0AXgAAACoAIABvAAAAKgAyAHAAAAAqADMAcQAAACoAIQBy` + - `AAAAKgAyAHYAAAAqABMAdwAAACoAGAB7AAAAKgAGAIAAAAAqAA0AgQAAACoAAgCEAAAAKg` + - `AaAIYAAAAqABsAiwAAACoAFACNAAAAKgAgAJIAAAAqACMAlgAAACoAIACXAAAAKgAyAJgA` + - `AAAqACAAmwAAACoAJACjAAAAKgAoAKQAAAAqADEAqgAAACoAIACxAAAAKgAyALIAAAAqAD` + - `MAswAAACoAIQC0AAAAKgAmALcAAAAqACAAvgAAACUAAAAAAAAAIAAAAIgVAAAKAAAAMBUA` + - `AIElAAAAAAAAJgAAAAAAAAAgAAAAiBUAAAoAAABIFQAAlSUAAAAAAAAnAAAAAAAAACAAAA` + - `CQFQAACgAAAFgVAACmJQAAAAAAACgAAAAAAAAAIAAAAJgVAAAKAAAAaBUAALclAAAAAAAA` + - `KQAAAAAAAAAgAAAAiBUAAAoAAAB4FQAA0CUAAAAAAAAqAAAAAQAAAAEAAAAAAAAACgAAAA` + - `AAAADhJQAAciUAAAIAAAA9JQAARCUAAAEAAABNJQAAAgAAAFYlAABEJQAAAgAAAF0lAABE` + - `JQAAAgAAAGQlAABEJQAAAgAAAGslAABEJQAAAwADAAEAAADAIwAACAAAAFsBBABZAgUAcB` + - `AzAAAADgAGAAEAAwAAAMcjAAB4AAAAFQEAQBJiEgQUAJAACABSUwUAKwNlAAAAGgIJABoD` + - `vQBxIBMAMgBUUgQAcRBGAAIADAJuICkAEgBUUQQAcRBGAAEADAFuICoAAQBUUAQAGgEDAH` + - `EgSQAQAFRQBABxEEYAAAAMABoBAwBuICwAEABUUAQAcRBGAAAADABuIC0AQABUUAQAcRBG` + - `AAAADABuECcAAABUUAQAcRBGAAAADABuECgAAABUUAQAGgGUAG4gWAAQAAwAHwAWAFRRBA` + - `BxEEYAAQAMAW4wJAAQBA4AASEorBQAkgAIAAEhKKcAAAABAwAAAAAACgAAAF0AAABfAAAA` + - `AgACAAEAAADiIwAABgAAAFsBBgBwEDMAAAAOAAMAAQACAAAA6CMAAAwAAABUIAYAcRBGAA` + - `AADAATAQgAbiAtABAADgACAAIAAQAAAO8jAAAGAAAAWwEHAHAQMwAAAA4ACwAKAAEAAAD2` + - `IwAABgAAAFQQBwBuEGgAAAAOAAIAAgABAAAABiQAAAYAAABbAQgAcBAzAAAADgAEAAIAAw` + - `AAAA0kAAAXAAAAchASAAMACgASETUQEQBUIAgAVAAJABoBAwBxIEkAEAASABoBAwByMBEA` + - `AwEOAAAABQAFAAAAAAAXJAAAAQAAAA4AAAAHAAUAAwAAACEkAABJAAAAchAwAAMACgBUIQ` + - `gAVBEJAHEQSAABAAwBbhA2AAEACgE3EB8AVCAIAFQACQCQAQQGcjAxAEMBDAFyEDIAAQAM` + - `AXEgSwAQAFQgCABUAAkAchAyAAMADAFxIEkAEAAOAHIQMAADAAoAVCEIAFQRCQBxEEgAAQ` + - `AMAW4QNgABAAoBNRDk/1QgCABUAAkAcRBMAAAAKNsAAAIAAgABAAAAOCQAAAYAAABbAQkA` + - `cBAzAAAADgAFAAEAAwAAAD8kAABgAAAAEuNUQAkAIgEXAHEASgAAAAwCcCAlACEAcSBHAB` + - `AAVEAJAHEQRgAAAAwAEwEIAG4gLQAQAFRACQBxEEYAAAAMABQBkAAIAG4gKgAQACIAGABw` + - `MC4AMANUQQkAcRBGAAEADAFuICsAAQBUQQkAVEIJAHEQRgACAAwCbjBNACEAVEAJABoBAw` + - `BxIEkAEABUQAkAcRBGAAAADAAaAQMAbiAsABAAVEAJAHEQRgAAAAwAIgEoAHAgPwBBAG4g` + - `JgAQAA4AAgABAAEAAABQJAAACgAAAHAQAAABABoAAABbEBIAaQEQAA4AAgABAAAAAABYJA` + - `AAAwAAAFQQEQARAAAAAgACAAAAAABeJAAAAwAAAFsBEQARAQAAAgABAAAAAABlJAAAAwAA` + - `AFQQEgARAAAAAgACAAAAAABrJAAAAwAAAFsBEgARAQAAAQAAAAAAAAByJAAAAwAAAGIAEA` + - `ARAAAAAgACAAIAAAB3JAAABAAAAHAgXgAQAA4AAQABAAEAAAB+JAAABAAAAHAQXQAAAA4A` + - `BwADAAMAAQCEJAAAGQAAABLwcRAWAAQADAFuMBUAUQYKATkBAwAPAAEQKP4NARoCCQAaA3` + - `UAcTAUADIBKPUNASjzAAABAAAABwABAAECDxceDgAAAQAAAAEAAACVJAAABgAAAGIAEABu` + - `EE4AAAAOAAQAAQADAAEAmyQAADMAAABuEFYAAwAMAG4QVQADAAwBbhAGAAEADAETAoAAbj` + - `ALABACDABUAQAAOQEKABoACQAaAZ4AcSATABAADgBUAAAAGgFjAG4gEAAQAAwAcRA4AAAA` + - `KPQNABoBCQAaAp0AcTAUACEAKOsAAAAAAAApAAEAAQEeKgIAAQACAAAArCQAAAkAAAAiAC` + - `kAcCBDABAAbiBiAAEADgAAAAIAAQACAAAAtSQAAAYAAABiABAAbiBPABAADgADAAIAAwAA` + - `AL0kAAAGAAAAYgAQAG4wUAAQAg4AAgABAAIAAADGJAAABgAAAGIAEABuIFEAEAAOAAQAAQ` + - `ADAAAAzSQAACQAAAAaAJQAbiBYAAMADAAfABYAFAECAAIBbiBTABMADAFuEBkAAQAMAW4Q` + - `HAABAAwBEgJuMCMAEAIiACYAcCA7ADAAbiBiAAMADgAGAAIAAwAAANYkAABXAAAAEhMiAA` + - `QAGgFlAHAgAgAQABoBagBuIDUAUQAKATgBHABgAQMAEwIVADQhFgAiAAQAGgFmAHAgAgAQ` + - `AG4gBAAwABoBQgBxIAUAEAAMAG4wZwAEAw4AGgHCAG4gNAAVAAoBOAEeAGABAwATAhMANC` + - `EYABoBAgBuIAoAEAAaAWgAGgJUAG4gNwAlAAwCbjAJABACGgFnAG4gAwAQACjTbiAKAFAA` + - `GgFnAG4gAwAQACjKAAAGAAMAAwAAAOokAAA+AAAAIgAEABoBZABwIAIAEAAaAcIAbiA0AB` + - `QACgE4AS0AYAEDABMCEwA0IScAGgECAG4gCgAQABoBaAAaAlQAbiA3ACQADAJuMAkAEAIa` + - `AWkAbjAIABAFGgFnAG4gAwAQABoBRQBxIAUAEAAMABIhbjBnAAMBDgBuIAoAQAAo6AMAAg` + - `ADAAAA/CQAAAkAAAAiACUAcDA5ABACbiBiAAEADgAAAAIAAQABAAAABSUAAAkAAABuEFQA` + - `AQAMAG4QLwAAAAwAEQAAAAUABAACAAAACiUAABwAAAASEDICBgASIDICAwAOABLwMgMIAB` + - `oAAABwIFIAAQAo924QBwAEAAwAbhAPAAAADABwIFIAAQAo6wQAAgACAAAAHCUAAB0AAABw` + - `EF8AAgBvIAEAMgBwEGMAAgAUAAIAAgFuIFMAAgAMAG4QGQAAAAwAIgEnAHAgPQAhAG4gFw` + - `AQAA4AAAAHAAEABQABACglAABgAAAAbhBaAAYADABuEB4AAAAMAG4QGgAAAAwAOQADAA4A` + - `bhAiAAAACgFuEB8AAAAKAm4QIAAAAAoDbhAhAAAACgBwUFwAFjIo7A0AIgAHAHAQDAAAAG` + - `4QWgAGAAwBbhAeAAEADAFuIB0AAQAUAQIAAgFuIFMAFgAMAW4QGQABAAwBUgICAG4QGAAB` + - `AAoDbhANAAAACgSxQ1IEAgCxQ1IEAQBuEBsAAQAKAW4QDgAAAAoFsVFSAAEAkQABAHBQXA` + - `AmQyivAAAAACIAAQABAR8jvAsAAAAAAAABAAAAAAAAADkAAADICwAA0AsAAAAAAAAAAAAA` + - `AAAAANwLAAAAAAAAAAAAAAAAAADoCwAAAAAAAAAAAAAAAAAA9AsAAAAAAAAAAAAAAAAAAA` + - `EAAAAhAAAAAQAAABEAAAABAAAADQAAAAIAAAAAAAAAAwAAAAAAAAAAAAAAAgAAACIAIgAD` + - `AAAAIgAiACQAAAABAAAAAAAAAAIAAAAEAB0AAQAAACIAAAACAAAAIgAtAAIAAAACAAAAAg` + - `AAAAAAHQABAAAAKgAAAAIAAAAqABcAAgAAACoAIgAEAAAAAAAAAAAAAAADAAAAAAAAAAQA` + - `AAABAAAAAwAAAAIAAAAEAAAAAQAAAAcAAAABAAAACgAAAAEAAAAMAAAACQAAABIAAAAAAA` + - `AAAAAAAAAAAAAAAAAAAgAAABIAEwABAAAAEwAAAAEAAAAdAAAABAAAAB0AAAAAAAAAAQAA` + - `ACkAAAACAAAAKgAAAAIAAAALAAAAAgAAABIAAAABAAAAIAAAAAMoKVYAAyovKgABMAAGPG` + - `luaXQ+ABJERUZBVUxUX0lOUFVUX1RZUEUAFURFRkFVTFRfS0VZQk9BUkRfQ09ERQAORklM` + - `RV9PUEVOX0NPREUADkZJTEVfU0FWRV9DT0RFAARGeW5lABVHb05hdGl2ZUFjdGl2aXR5Lm` + - `phdmEAAUkAA0lJSQAESUlJSQADSUxMAARJTExMAAFMAAJMSQADTElJAANMSUwAAkxMAANM` + - `TEkAA0xMTAAcTGFuZHJvaWQvYXBwL05hdGl2ZUFjdGl2aXR5OwAfTGFuZHJvaWQvY29udG` + - `VudC9Db21wb25lbnROYW1lOwAZTGFuZHJvaWQvY29udGVudC9Db250ZXh0OwAYTGFuZHJv` + - `aWQvY29udGVudC9JbnRlbnQ7ACFMYW5kcm9pZC9jb250ZW50L3BtL0FjdGl2aXR5SW5mbz` + - `sAI0xhbmRyb2lkL2NvbnRlbnQvcG0vUGFja2FnZU1hbmFnZXI7ABdMYW5kcm9pZC9ncmFw` + - `aGljcy9SZWN0OwARTGFuZHJvaWQvbmV0L1VyaTsAGkxhbmRyb2lkL29zL0J1aWxkJFZFUl` + - `NJT047ABNMYW5kcm9pZC9vcy9CdW5kbGU7ABRMYW5kcm9pZC9vcy9JQmluZGVyOwAXTGFu` + - `ZHJvaWQvdGV4dC9FZGl0YWJsZTsAGkxhbmRyb2lkL3RleHQvVGV4dFdhdGNoZXI7ABJMYW` + - `5kcm9pZC91dGlsL0xvZzsAM0xhbmRyb2lkL3ZpZXcvS2V5Q2hhcmFjdGVyTWFwJFVuYXZh` + - `aWxhYmxlRXhjZXB0aW9uOwAeTGFuZHJvaWQvdmlldy9LZXlDaGFyYWN0ZXJNYXA7ACpMYW` + - `5kcm9pZC92aWV3L1ZpZXckT25MYXlvdXRDaGFuZ2VMaXN0ZW5lcjsAE0xhbmRyb2lkL3Zp` + - `ZXcvVmlldzsAJUxhbmRyb2lkL3ZpZXcvVmlld0dyb3VwJExheW91dFBhcmFtczsAFUxhbm` + - `Ryb2lkL3ZpZXcvV2luZG93OwAbTGFuZHJvaWQvdmlldy9XaW5kb3dJbnNldHM7AC1MYW5k` + - `cm9pZC92aWV3L2lucHV0bWV0aG9kL0lucHV0TWV0aG9kTWFuYWdlcjsAGUxhbmRyb2lkL3` + - `dpZGdldC9FZGl0VGV4dDsAKUxhbmRyb2lkL3dpZGdldC9GcmFtZUxheW91dCRMYXlvdXRQ` + - `YXJhbXM7ACNMZGFsdmlrL2Fubm90YXRpb24vRW5jbG9zaW5nTWV0aG9kOwAeTGRhbHZpay` + - `9hbm5vdGF0aW9uL0lubmVyQ2xhc3M7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJl` + - `OwAOTGphdmEvaW8vRmlsZTsAGExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOwAVTGphdmEvbG` + - `FuZy9FeGNlcHRpb247AB1MamF2YS9sYW5nL05vU3VjaE1ldGhvZEVycm9yOwASTGphdmEv` + - `bGFuZy9PYmplY3Q7ABRMamF2YS9sYW5nL1J1bm5hYmxlOwASTGphdmEvbGFuZy9TdHJpbm` + - `c7ABJMamF2YS9sYW5nL1N5c3RlbTsAFUxqYXZhL2xhbmcvVGhyb3dhYmxlOwAjTG9yZy9n` + - `b2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZpdHkkMTsAI0xvcmcvZ29sYW5nL2FwcC9Hb05hdG` + - `l2ZUFjdGl2aXR5JDI7ACNMb3JnL2dvbGFuZy9hcHAvR29OYXRpdmVBY3Rpdml0eSQzOwAl` + - `TG9yZy9nb2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZpdHkkNCQxOwAjTG9yZy9nb2xhbmcvYX` + - `BwL0dvTmF0aXZlQWN0aXZpdHkkNDsAIUxvcmcvZ29sYW5nL2FwcC9Hb05hdGl2ZUFjdGl2` + - `aXR5OwAUTlVNQkVSX0tFWUJPQVJEX0NPREUACU9wZW4gRmlsZQAHU0RLX0lOVAAYU0lOR0` + - `xFTElORV9LRVlCT0FSRF9DT0RFAAlTYXZlIEZpbGUAAVYAAlZJAANWSUkABVZJSUlJAARW` + - `SUlMAAJWTAADVkxJAAVWTElJSQAKVkxJSUlJSUlJSQADVkxMAAFaAAJaTAADWkxJABNbTG` + - `phdmEvbGFuZy9TdHJpbmc7AAJcfAAKYWNjZXNzJDAwMAAKYWNjZXNzJDAwMgAKYWNjZXNz` + - `JDEwMAAKYWNjZXNzJDEwMgAKYWNjZXNzJDIwMAAKYWNjZXNzJDMwMAAKYWNjZXNzJDQwMA` + - `ALYWNjZXNzRmxhZ3MAC2FkZENhdGVnb3J5AA5hZGRDb250ZW50VmlldwAIYWRkRmxhZ3MA` + - `GWFkZE9uTGF5b3V0Q2hhbmdlTGlzdGVuZXIAFmFkZFRleHRDaGFuZ2VkTGlzdGVuZXIAEG` + - `FmdGVyVGV4dENoYW5nZWQAFGFuZHJvaWQuYXBwLmxpYl9uYW1lACVhbmRyb2lkLmludGVu` + - `dC5hY3Rpb24uQ1JFQVRFX0RPQ1VNRU5UACNhbmRyb2lkLmludGVudC5hY3Rpb24uT1BFTl` + - `9ET0NVTUVOVAAoYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk9QRU5fRE9DVU1FTlRfVFJFRQAg` + - `YW5kcm9pZC5pbnRlbnQuY2F0ZWdvcnkuT1BFTkFCTEUAH2FuZHJvaWQuaW50ZW50LmV4dH` + - `JhLk1JTUVfVFlQRVMAGmFuZHJvaWQuaW50ZW50LmV4dHJhLlRJVExFABdhcHBsaWNhdGlv` + - `bi94LWRpcmVjdG9yeQARYmVmb3JlVGV4dENoYW5nZWQADGJyaW5nVG9Gcm9udAAIY29udG` + - `FpbnMADWNyZWF0ZUNob29zZXIADmRvSGlkZUtleWJvYXJkAA5kb1Nob3dGaWxlT3BlbgAO` + - `ZG9TaG93RmlsZVNhdmUADmRvU2hvd0tleWJvYXJkAAFlAAZlcXVhbHMAIWV4Y2VwdGlvbi` + - `ByZWFkaW5nIEtleUNoYXJhY3Rlck1hcAASZmlsZVBpY2tlclJldHVybmVkAAxmaW5kVmll` + - `d0J5SWQAA2dldAAPZ2V0QWJzb2x1dGVQYXRoAA9nZXRBY3Rpdml0eUluZm8AC2dldENhY2` + - `hlRGlyAAxnZXRDb21wb25lbnQAB2dldERhdGEADGdldERlY29yVmlldwAJZ2V0SGVpZ2h0` + - `AAlnZXRJbnRlbnQAEWdldFBhY2thZ2VNYW5hZ2VyAAtnZXRSb290VmlldwATZ2V0Um9vdF` + - `dpbmRvd0luc2V0cwAHZ2V0UnVuZQAJZ2V0U3RyaW5nABBnZXRTeXN0ZW1TZXJ2aWNlABpn` + - `ZXRTeXN0ZW1XaW5kb3dJbnNldEJvdHRvbQAYZ2V0U3lzdGVtV2luZG93SW5zZXRMZWZ0AB` + - `lnZXRTeXN0ZW1XaW5kb3dJbnNldFJpZ2h0ABdnZXRTeXN0ZW1XaW5kb3dJbnNldFRvcAAJ` + - `Z2V0VG1wZGlyAAhnZXRXaWR0aAAJZ2V0V2luZG93AA5nZXRXaW5kb3dUb2tlbgAcZ2V0V2` + - `luZG93VmlzaWJsZURpc3BsYXlGcmFtZQAQZ29OYXRpdmVBY3Rpdml0eQAGaGVpZ2h0AAxo` + - `aWRlS2V5Ym9hcmQAF2hpZGVTb2Z0SW5wdXRGcm9tV2luZG93AAxpbnB1dF9tZXRob2QABm` + - `luc2VydAANaW5zZXRzQ2hhbmdlZAAOa2V5Ym9hcmREZWxldGUADWtleWJvYXJkVHlwZWQA` + - `BGxlZnQABmxlbmd0aAAEbG9hZAALbG9hZExpYnJhcnkAEmxvYWRMaWJyYXJ5IGZhaWxlZA` + - `AnbG9hZExpYnJhcnk6IG5vIG1hbmlmZXN0IG1ldGFkYXRhIGZvdW5kAAltVGV4dEVkaXQA` + - `CG1ldGFEYXRhAARuYW1lAAhvbGRTdGF0ZQAQb25BY3Rpdml0eVJlc3VsdAAIb25DcmVhdG` + - `UADm9uTGF5b3V0Q2hhbmdlAA1vblRleHRDaGFuZ2VkAAhwdXRFeHRyYQAMcmVxdWVzdEZv` + - `Y3VzAANydW4ADXJ1bk9uVWlUaHJlYWQADXNldEltZU9wdGlvbnMADHNldElucHV0VHlwZQ` + - `APc2V0TGF5b3V0UGFyYW1zAAdzZXRUZXh0AAdzZXRUeXBlAA1zZXRWaXNpYmlsaXR5AApz` + - `ZXR1cEVudHJ5AAxzaG93RmlsZU9wZW4ADHNob3dGaWxlU2F2ZQAMc2hvd0tleWJvYXJkAA` + - `1zaG93U29mdElucHV0AAVzcGxpdAAWc3RhcnRBY3Rpdml0eUZvclJlc3VsdAALc3ViU2Vx` + - `dWVuY2UABnRoaXMkMAAGdGhpcyQxAAh0b1N0cmluZwADdG9wACJ1bmtub3duIGtleWJvYX` + - `JkIHR5cGUsIHVzZSBkZWZhdWx0AAx1cGRhdGVMYXlvdXQAEHZhbCRrZXlib2FyZFR5cGUA` + - `BXZhbHVlAAV3aWR0aAABfABPAgAABw4AUgAHdxACDll5lph4tZaWl6WWAmssIEsCdB0Afg` + - `EABw4AgQEABw60ANcBAQAHDgDaAQkAAAAAAAAAAAAHDloA8AEBAAcOAIQCAQAHDniWawD/` + - `AQQAAAAABw4A8wEEAAAAAAcOARIPAREUtAJ6HQESEADgAQEABw4A4wEABx3htMRblrZ4tQ` + - `Ib4AAvAAcOOE4tABoBAAcOABoCAAAHDgAaAQAHDgAaAgAABw4AGgAHDgAaAgAABw4AGgEA` + - `Bw4ArAEDAAAABx2HNAJ7LCAegwB2AAcOWgDDAQAHDkujTEt/Ansdh0seAOABAAcOAi2GAI` + - `cBAQAHDloAmwECAAAHDloASwEABw5aAHoABw6HtIiMAIsBAQAHHXjheESWAncd4Vq0ajwA` + - `nwECAAAHDnjhWrdaWqUCex0ATwEABw4CJIYANAAHDgCSAgMAAAAHDgIMaAJ5HTxsSwDSAQ` + - `EABw48PD20jAA5AAcOwwIOLAJ2HYeFTB5atbT/0AACGQHAARpRAhoCXAQAoQEeAhsBwAEc` + - `ARcBAhkBwAEaTgIZAcABGmECGQHAARpEAhkBwAEaYwZEkAAIBAAEAQQCBAIEAQACAQEEkC` + - `ABkCA5gIAEgBg6AaAYAAEBAQaQIDuAgASgGjwBvBoAAQEBB5AgPYCABOQaPgGAGwABAQMI` + - `kCA/gIAEnBtAAbgbAQH4GwEBjBwAAQEBCZAgQ4CABLAdRAHMHQcCEwgKGgEaARoBGgEaAR` + - `oBChECAQJFgYAEnB8BiCDAHwGIINgfAYgg8B8BiCCIIAGIIKAgAYgguCABiCDQIAaCAgAF` + - `COggBAi8IQGCAgABggIAAYICAAEC2CEEAtwiAQiAIwEInCMBCLgjTgDUIwEArCQBAOwlAQ` + - `D4JggAnCcHBMAnAQGIKAcA1CgRAAAAAAAAAAEAAAAAAAAAAQAAAMMAAABwAAAAAgAAAC4A` + - `AAB8AwAAAwAAAD4AAAA0BAAABAAAABMAAAAcBwAABQAAAGkAAAC0BwAABgAAAAYAAAD8Cg` + - `AAAxAAAAYAAAC8CwAAASAAACMAAAAADAAABiAAAAUAAAAwFQAAARAAACEAAACIFQAAAiAA` + - `AMMAAACyFgAAAyAAACMAAADAIwAABCAAAAcAAAA9JQAABSAAAAEAAAByJQAAACAAAAYAAA` + - `CBJQAAABAAAAEAAABsJgAA` + +var dexStr = `ZGV4CjAzNQCMKhQdwddh/CgcDLG6K0cBqMdIA0zWxjp0JwAAcAAAAHhWNBIAAAAAAAAAAK` + + `QmAADEAAAAcAAAAC4AAACAAwAAPgAAADgEAAATAAAAIAcAAGoAAAC4BwAABgAAAAgLAACs` + + `GwAAyAsAANYWAADYFgAA3RYAAOIWAADlFgAA7RYAAAEXAAAYFwAAKBcAADgXAAA+FwAAVR` + + `cAAFgXAABdFwAAYxcAAGgXAABuFwAAcRcAAHUXAAB6FwAAfxcAAIMXAACIFwAAjRcAAKsX` + + `AADMFwAA5xcAAAEYAAAkGAAASRgAAGIYAAB1GAAAkRgAAKYYAAC8GAAA1RgAAPEYAAAFGQ` + + `AAOhkAAFoZAACGGQAAmxkAAMIZAADZGQAA9hkAACUaAABAGgAAaxoAAJAaAACwGgAAzxoA` + + `AN8aAAD5GgAAEBsAAC8bAABDGwAAWRsAAG0bAACBGwAAmBsAAL0bAADiGwAABxwAAC4cAA` + + `BTHAAAdhwAAIwcAACXHAAAoBwAALocAADFHAAAyBwAAMwcAADRHAAA2BwAAN4cAADiHAAA` + + `5xwAAO4cAAD6HAAA/xwAAAIdAAAGHQAACx0AACAdAAAkHQAAMB0AADwdAABIHQAAVB0AAG` + + `AdAABsHQAAeB0AAIUdAACSHQAAoh0AAKwdAADHHQAA3x0AAPEdAAAHHgAALh4AAFMeAAB9` + + `HgAAnx4AAMAeAADcHgAA9R4AAAgfAAAWHwAAIB8AAC8fAAA/HwAATx8AAF8fAABvHwAAch` + + `8AAHofAACdHwAAsR8AAL8fAADEHwAA1R8AAOYfAADzHwAAASAAAAogAAAYIAAAIyAAAC4g` + + `AABBIAAATiAAAGMgAABsIAAAdyAAAIkgAAClIAAAvyAAANogAADzIAAA/iAAAA0hAAAXIQ` + + `AAIiEAADIhAABQIQAAYiEAAGohAAB4IQAAkSEAAJ8hAACnIQAAtiEAAMYhAADVIQAA2yEA` + + `AOMhAADpIQAA9iEAAAoiAAAzIgAAPiIAAEgiAABOIgAAWCIAAGoiAAB0IgAAhCIAAJMiAA` + + `CdIgAAqyIAALAiAAC/IgAAziIAANwiAADtIgAA9iIAAP8iAAAOIwAAGiMAACgjAAA2IwAA` + + `RCMAAFMjAABaIwAAciMAAH8jAACHIwAAjyMAAJkjAACeIwAAwiMAANAjAADiIwAA6SMAAP` + + `AjAAALAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAi` + + `AAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALw` + + `AAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwA` + + `AAA9AAAAPgAAAD8AAABAAAAARgAAAFAAAABTAAAACwAAAAAAAAAAAAAADAAAAAAAAADEFQ` + + `AADQAAAAAAAADMFQAADgAAAAAAAADYFQAADwAAAAAAAADgFQAAEAAAAAIAAAAAAAAAEAAA` + + `AAQAAAAAAAAAEQAAAAQAAADsFQAAFgAAAAQAAAD0FQAAFAAAAAQAAAD8FQAAFgAAAAQAAA` + + `DYFQAAFgAAAAQAAAAEFgAAFQAAAAUAAAAMFgAAEAAAAAYAAAAAAAAAEAAAAAgAAAAAAAAA` + + `EAAAAAsAAAAAAAAAEwAAAAwAAAAUFgAAEQAAABAAAADsFQAAEAAAABIAAAAAAAAAEQAAAB` + + `IAAADsFQAAEAAAABQAAAAAAAAAEAAAABUAAAAAAAAAFAAAABcAAAAcFgAAFgAAABcAAAAk` + + `FgAAEAAAABwAAAAAAAAAEgAAAB0AAADEFQAAFAAAACAAAAD8FQAAEAAAACIAAAAAAAAAFA` + + `AAACIAAAD8FQAAFAAAACIAAAAcFgAAFgAAACIAAAAsFgAAEAAAACoAAAAAAAAARgAAACsA` + + `AAAAAAAARwAAACsAAADsFQAASAAAACsAAADEFQAASQAAACsAAAA0FgAASgAAACsAAABAFg` + + `AASwAAACsAAABMFgAATAAAACsAAABUFgAASwAAACsAAABcFgAASwAAACsAAABkFgAASwAA` + + `ACsAAABsFgAASwAAACsAAAC8FQAASwAAACsAAAC0FQAATgAAACsAAAB0FgAATwAAACsAAA` + + `CMFgAASwAAACsAAACUFgAASwAAACsAAACcFgAATQAAACsAAACkFgAASwAAACsAAACsFQAA` + + `SwAAACsAAAD8FQAATwAAACsAAADYFQAASwAAACsAAACwFgAASwAAACsAAAAcFgAATAAAAC` + + `sAAAC4FgAATwAAACsAAAAsFgAAUAAAACwAAAAAAAAAUgAAACwAAADAFgAAUgAAACwAAADI` + + `FgAAUQAAACwAAACcFgAAUQAAACwAAADQFgAAFAAAAC0AAAD8FQAABQAKAKEAAAAHAAAAmg` + + `AAAAcAAAC9AAAACQAAAEMAAAAlACoAugAAACUAAADAAAAAJgAqALoAAAAnACoAugAAACgA` + + `KQC7AAAAKQAqALoAAAAqAAAABQAAACoAAAAGAAAAKgAAAAcAAAAqAAAACAAAACoAAABBAA` + + `AAKgAAAEQAAAAqACoAkQAAACoAFwCgAAAAKgAiAKMAAAABACAABAAAAAEAKAClAAAABAAy` + + `AAQAAAAEAAkAXQAAAAQABwBfAAAABAAIAG4AAAAEAAUAfAAAAAQADgB9AAAABAAKAKgAAA` + + `AEAAsAqAAAAAQACQCwAAAABgAMAHoAAAAHACAABAAAAAcAAACSAAAABwAAAMIAAAAIABsA` + + `vAAAAAoAHACFAAAADAAQAJYAAAAMAAAAmwAAAA4AAwBzAAAADgAEAHMAAAAQAAEAeAAAAB` + + `AAEQCcAAAAEgArAGAAAAASAAAAfwAAABIAEgCCAAAAEgAVAIMAAAASAAAAjQAAABIADwCP` + + `AAAAEgAnAJAAAAAUABIAfgAAABUAAACHAAAAFQAAAIgAAAAVAAAAiQAAABUAAACKAAAAFg` + + `A5AJQAAAAWADoAtgAAABcAJQAEAAAAFwAqAGEAAAAXACAAbAAAABcAAACMAAAAFwA4AKkA` + + `AAAXACEArAAAABcAIQCtAAAAFwAuAK4AAAAXAC8ArwAAABcAIQCxAAAAGAAiAAQAAAAcAB` + + `sAeQAAAB0AAACbAAAAHQAZALkAAAAdABsAvAAAACAAIAAEAAAAIgA7AG0AAAAiADwAdAAA` + + `ACIAAACbAAAAIgA9ALcAAAAjADIAnQAAACUANgAEAAAAJQAgAKoAAAAmADUABAAAACYAIA` + + `CqAAAAJwA1AAQAAAAnACwApgAAACgANAAEAAAAKAApAGIAAAAoADAAawAAACgAMACnAAAA` + + `KQA1AAQAAAApACAAqgAAACoAIAAEAAAAKgAWAFUAAAAqABcAVgAAACoAHQBXAAAAKgAeAF` + + `gAAAAqAB8AWQAAACoANwBaAAAAKgA1AFsAAAAqAC0AXgAAACoAIABvAAAAKgAyAHAAAAAq` + + `ADMAcQAAACoAIQByAAAAKgAyAHYAAAAqABMAdwAAACoAGAB7AAAAKgAGAIAAAAAqAA0AgQ` + + `AAACoAAgCEAAAAKgAaAIYAAAAqABsAiwAAACoAFACOAAAAKgAgAJMAAAAqACMAlwAAACoA` + + `IACYAAAAKgAyAJkAAAAqACAAnAAAACoAJACkAAAAKgAoAKUAAAAqADEAqwAAACoAIACyAA` + + `AAKgAyALMAAAAqADMAtAAAACoAIQC1AAAAKgAmALgAAAAqACAAvwAAACUAAAAAAAAAIAAA` + + `AKwVAAAKAAAAVBUAALklAAAAAAAAJgAAAAAAAAAgAAAArBUAAAoAAABsFQAAzSUAAAAAAA` + + `AnAAAAAAAAACAAAAC0FQAACgAAAHwVAADeJQAAAAAAACgAAAAAAAAAIAAAALwVAAAKAAAA` + + `jBUAAO8lAAAAAAAAKQAAAAAAAAAgAAAArBUAAAoAAACcFQAACCYAAAAAAAAqAAAAAQAAAA` + + `EAAAAAAAAACgAAAAAAAAAZJgAAqiUAAAIAAAB1JQAAfCUAAAEAAACFJQAAAgAAAI4lAAB8` + + `JQAAAgAAAJUlAAB8JQAAAgAAAJwlAAB8JQAAAgAAAKMlAAB8JQAAAwADAAEAAADzIwAACA` + + `AAAFsBBABZAgUAcBA0AAAADgAGAAEAAwAAAPojAACEAAAAFQEAQBJiEgQUAJAACABUUwQA` + + `cRBHAAMADANuECgAAwAKAzkDAwAOAFJTBQArA2QAAAAaAgkAGgO+AHEgEwAyAFRSBABxEE` + + `cAAgAMAm4gKgASAFRRBABxEEcAAQAMAW4gKwABAFRQBAAaAQMAcSBKABAAVFAEAHEQRwAA` + + `AAwAGgEDAG4gLQAQAFRQBABxEEcAAAAMAG4gLgBAAFRQBABxEEcAAAAMAG4QJwAAAFRQBA` + + `BxEEcAAAAMAG4QKQAAAFRQBAAaAZUAbiBZABAADAAfABYAVFEEAHEQRwABAAwBbjAkABAE` + + `KKEBISisFACSAAgAASEopwABAwAAAAAACgAAAF0AAABfAAAAAgACAAEAAAAZJAAABgAAAF` + + `sBBgBwEDQAAAAOAAMAAQACAAAAICQAAAwAAABUIAYAcRBHAAAADAATAQgAbiAuABAADgAC` + + `AAIAAQAAACckAAAGAAAAWwEHAHAQNAAAAA4ACwAKAAEAAAAuJAAABgAAAFQQBwBuEGkAAA` + + `AOAAIAAgABAAAAPiQAAAYAAABbAQgAcBA0AAAADgAEAAIAAwAAAEUkAAAXAAAAchASAAMA` + + `CgASETUQEQBUIAgAVAAJABoBAwBxIEoAEAASABoBAwByMBEAAwEOAAAABQAFAAAAAABPJA` + + `AAAQAAAA4AAAAHAAUAAwAAAFkkAABJAAAAchAxAAMACgBUIQgAVBEJAHEQSQABAAwBbhA3` + + `AAEACgE3EB8AVCAIAFQACQCQAQQGcjAyAEMBDAFyEDMAAQAMAXEgTAAQAFQgCABUAAkAch` + + `AzAAMADAFxIEoAEAAOAHIQMQADAAoAVCEIAFQRCQBxEEkAAQAMAW4QNwABAAoBNRDk/1Qg` + + `CABUAAkAcRBNAAAAKNsAAAIAAgABAAAAcCQAAAYAAABbAQkAcBA0AAAADgAFAAEAAwAAAH` + + `ckAABgAAAAEuNUQAkAIgEXAHEASwAAAAwCcCAlACEAcSBIABAAVEAJAHEQRwAAAAwAEwEI` + + `AG4gLgAQAFRACQBxEEcAAAAMABQBkAAIAG4gKwAQACIAGABwMC8AMANUQQkAcRBHAAEADA` + + `FuICwAAQBUQQkAVEIJAHEQRwACAAwCbjBOACEAVEAJABoBAwBxIEoAEABUQAkAcRBHAAAA` + + `DAAaAQMAbiAtABAAVEAJAHEQRwAAAAwAIgEoAHAgQABBAG4gJgAQAA4AAgABAAEAAACIJA` + + `AACgAAAHAQAAABABoAAABbEBIAaQEQAA4AAgABAAAAAACQJAAAAwAAAFQQEQARAAAAAgAC` + + `AAAAAACWJAAAAwAAAFsBEQARAQAAAgABAAAAAACdJAAAAwAAAFQQEgARAAAAAgACAAAAAA` + + `CjJAAAAwAAAFsBEgARAQAAAQAAAAAAAACqJAAAAwAAAGIAEAARAAAAAgACAAIAAACvJAAA` + + `BAAAAHAgXwAQAA4AAQABAAEAAAC2JAAABAAAAHAQXgAAAA4ABwADAAMAAQC8JAAAGQAAAB` + + `LwcRAWAAQADAFuMBUAUQYKATkBAwAPAAEQKP4NARoCCQAaA3UAcTAUADIBKPUNASjzAAAB` + + `AAAABwABAAECDxceDgAAAQAAAAEAAADNJAAABgAAAGIAEABuEE8AAAAOAAQAAQADAAEA0y` + + `QAADMAAABuEFcAAwAMAG4QVgADAAwBbhAGAAEADAETAoAAbjALABACDABUAQAAOQEKABoA` + + `CQAaAZ8AcSATABAADgBUAAAAGgFjAG4gEAAQAAwAcRA5AAAAKPQNABoBCQAaAp4AcTAUAC` + + `EAKOsAAAAAAAApAAEAAQEeKgIAAQACAAAA5CQAAAkAAAAiACkAcCBEABAAbiBjAAEADgAA` + + `AAIAAQACAAAA7SQAAAYAAABiABAAbiBQABAADgADAAIAAwAAAPUkAAAGAAAAYgAQAG4wUQ` + + `AQAg4AAgABAAIAAAD+JAAABgAAAGIAEABuIFIAEAAOAAQAAQADAAAABSUAACQAAAAaAJUA` + + `biBZAAMADAAfABYAFAECAAIBbiBUABMADAFuEBkAAQAMAW4QHAABAAwBEgJuMCMAEAIiAC` + + `YAcCA8ADAAbiBjAAMADgAGAAIAAwAAAA4lAABXAAAAEhMiAAQAGgFlAHAgAgAQABoBagBu` + + `IDYAUQAKATgBHABgAQMAEwIVADQhFgAiAAQAGgFmAHAgAgAQAG4gBAAwABoBQgBxIAUAEA` + + `AMAG4waAAEAw4AGgHDAG4gNQAVAAoBOAEeAGABAwATAhMANCEYABoBAgBuIAoAEAAaAWgA` + + `GgJUAG4gOAAlAAwCbjAJABACGgFnAG4gAwAQACjTbiAKAFAAGgFnAG4gAwAQACjKAAAGAA` + + `MAAwAAACIlAAA+AAAAIgAEABoBZABwIAIAEAAaAcMAbiA1ABQACgE4AS0AYAEDABMCEwA0` + + `IScAGgECAG4gCgAQABoBaAAaAlQAbiA4ACQADAJuMAkAEAIaAWkAbjAIABAFGgFnAG4gAw` + + `AQABoBRQBxIAUAEAAMABIhbjBoAAMBDgBuIAoAQAAo6AMAAgADAAAANCUAAAkAAAAiACUA` + + `cDA6ABACbiBjAAEADgAAAAIAAQABAAAAPSUAAAkAAABuEFUAAQAMAG4QMAAAAAwAEQAAAA` + + `UABAACAAAAQiUAABwAAAASEDICBgASIDICAwAOABLwMgMIABoAAABwIFMAAQAo924QBwAE` + + `AAwAbhAPAAAADABwIFMAAQAo6wQAAgACAAAAVCUAAB0AAABwEGAAAgBvIAEAMgBwEGQAAg` + + `AUAAIAAgFuIFQAAgAMAG4QGQAAAAwAIgEnAHAgPgAhAG4gFwAQAA4AAAAHAAEABQABAGAl` + + `AABgAAAAbhBbAAYADABuEB4AAAAMAG4QGgAAAAwAOQADAA4AbhAiAAAACgFuEB8AAAAKAm` + + `4QIAAAAAoDbhAhAAAACgBwUF0AFjIo7A0AIgAHAHAQDAAAAG4QWwAGAAwBbhAeAAEADAFu` + + `IB0AAQAUAQIAAgFuIFQAFgAMAW4QGQABAAwBUgICAG4QGAABAAoDbhANAAAACgSxQ1IEAg` + + `CxQ1IEAQBuEBsAAQAKAW4QDgAAAAoFsVFSAAEAkQABAHBQXQAmQyivAAAAACIAAQABAR8j` + + `yAsAAAAAAAABAAAAAAAAADoAAADUCwAA3AsAAAAAAAAAAAAAAAAAAOgLAAAAAAAAAAAAAA` + + `AAAAD0CwAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAEAAAAhAAAAAQAAABEAAAAB` + + `AAAADQAAAAIAAAAAAAAAAwAAAAAAAAAAAAAAAgAAACIAIgADAAAAIgAiACQAAAABAAAAAA` + + `AAAAIAAAAEAB0AAQAAACIAAAACAAAAIgAtAAIAAAACAAAAAgAAAAAAHQABAAAAKgAAAAIA` + + `AAAqABcAAgAAACoAIgAEAAAAAAAAAAAAAAADAAAAAAAAAAQAAAABAAAAAwAAAAIAAAAEAA` + + `AAAQAAAAcAAAABAAAACgAAAAEAAAAMAAAACQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAgAA` + + `ABIAEwABAAAAEwAAAAEAAAAdAAAABAAAAB0AAAAAAAAAAQAAACkAAAACAAAAKgAAAAIAAA` + + `ALAAAAAgAAABIAAAABAAAAIAAAAAMoKVYAAyovKgABMAAGPGluaXQ+ABJERUZBVUxUX0lO` + + `UFVUX1RZUEUAFURFRkFVTFRfS0VZQk9BUkRfQ09ERQAORklMRV9PUEVOX0NPREUADkZJTE` + + `VfU0FWRV9DT0RFAARGeW5lABVHb05hdGl2ZUFjdGl2aXR5LmphdmEAAUkAA0lJSQAESUlJ` + + `SQADSUxMAARJTExMAAFMAAJMSQADTElJAANMSUwAAkxMAANMTEkAA0xMTAAcTGFuZHJvaW` + + `QvYXBwL05hdGl2ZUFjdGl2aXR5OwAfTGFuZHJvaWQvY29udGVudC9Db21wb25lbnROYW1l` + + `OwAZTGFuZHJvaWQvY29udGVudC9Db250ZXh0OwAYTGFuZHJvaWQvY29udGVudC9JbnRlbn` + + `Q7ACFMYW5kcm9pZC9jb250ZW50L3BtL0FjdGl2aXR5SW5mbzsAI0xhbmRyb2lkL2NvbnRl` + + `bnQvcG0vUGFja2FnZU1hbmFnZXI7ABdMYW5kcm9pZC9ncmFwaGljcy9SZWN0OwARTGFuZH` + + `JvaWQvbmV0L1VyaTsAGkxhbmRyb2lkL29zL0J1aWxkJFZFUlNJT047ABNMYW5kcm9pZC9v` + + `cy9CdW5kbGU7ABRMYW5kcm9pZC9vcy9JQmluZGVyOwAXTGFuZHJvaWQvdGV4dC9FZGl0YW` + + `JsZTsAGkxhbmRyb2lkL3RleHQvVGV4dFdhdGNoZXI7ABJMYW5kcm9pZC91dGlsL0xvZzsA` + + `M0xhbmRyb2lkL3ZpZXcvS2V5Q2hhcmFjdGVyTWFwJFVuYXZhaWxhYmxlRXhjZXB0aW9uOw` + + `AeTGFuZHJvaWQvdmlldy9LZXlDaGFyYWN0ZXJNYXA7ACpMYW5kcm9pZC92aWV3L1ZpZXck` + + `T25MYXlvdXRDaGFuZ2VMaXN0ZW5lcjsAE0xhbmRyb2lkL3ZpZXcvVmlldzsAJUxhbmRyb2` + + `lkL3ZpZXcvVmlld0dyb3VwJExheW91dFBhcmFtczsAFUxhbmRyb2lkL3ZpZXcvV2luZG93` + + `OwAbTGFuZHJvaWQvdmlldy9XaW5kb3dJbnNldHM7AC1MYW5kcm9pZC92aWV3L2lucHV0bW` + + `V0aG9kL0lucHV0TWV0aG9kTWFuYWdlcjsAGUxhbmRyb2lkL3dpZGdldC9FZGl0VGV4dDsA` + + `KUxhbmRyb2lkL3dpZGdldC9GcmFtZUxheW91dCRMYXlvdXRQYXJhbXM7ACNMZGFsdmlrL2` + + `Fubm90YXRpb24vRW5jbG9zaW5nTWV0aG9kOwAeTGRhbHZpay9hbm5vdGF0aW9uL0lubmVy` + + `Q2xhc3M7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJlOwAOTGphdmEvaW8vRmlsZT` + + `sAGExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOwAVTGphdmEvbGFuZy9FeGNlcHRpb247AB1M` + + `amF2YS9sYW5nL05vU3VjaE1ldGhvZEVycm9yOwASTGphdmEvbGFuZy9PYmplY3Q7ABRMam` + + `F2YS9sYW5nL1J1bm5hYmxlOwASTGphdmEvbGFuZy9TdHJpbmc7ABJMamF2YS9sYW5nL1N5` + + `c3RlbTsAFUxqYXZhL2xhbmcvVGhyb3dhYmxlOwAjTG9yZy9nb2xhbmcvYXBwL0dvTmF0aX` + + `ZlQWN0aXZpdHkkMTsAI0xvcmcvZ29sYW5nL2FwcC9Hb05hdGl2ZUFjdGl2aXR5JDI7ACNM` + + `b3JnL2dvbGFuZy9hcHAvR29OYXRpdmVBY3Rpdml0eSQzOwAlTG9yZy9nb2xhbmcvYXBwL0` + + `dvTmF0aXZlQWN0aXZpdHkkNCQxOwAjTG9yZy9nb2xhbmcvYXBwL0dvTmF0aXZlQWN0aXZp` + + `dHkkNDsAIUxvcmcvZ29sYW5nL2FwcC9Hb05hdGl2ZUFjdGl2aXR5OwAUTlVNQkVSX0tFWU` + + `JPQVJEX0NPREUACU9wZW4gRmlsZQAHU0RLX0lOVAAYU0lOR0xFTElORV9LRVlCT0FSRF9D` + + `T0RFAAlTYXZlIEZpbGUAAVYAAlZJAANWSUkABVZJSUlJAARWSUlMAAJWTAADVkxJAAVWTE` + + `lJSQAKVkxJSUlJSUlJSQADVkxMAAFaAAJaTAADWkxJABNbTGphdmEvbGFuZy9TdHJpbmc7` + + `AAJcfAAKYWNjZXNzJDAwMAAKYWNjZXNzJDAwMgAKYWNjZXNzJDEwMAAKYWNjZXNzJDEwMg` + + `AKYWNjZXNzJDIwMAAKYWNjZXNzJDMwMAAKYWNjZXNzJDQwMAALYWNjZXNzRmxhZ3MAC2Fk` + + `ZENhdGVnb3J5AA5hZGRDb250ZW50VmlldwAIYWRkRmxhZ3MAGWFkZE9uTGF5b3V0Q2hhbm` + + `dlTGlzdGVuZXIAFmFkZFRleHRDaGFuZ2VkTGlzdGVuZXIAEGFmdGVyVGV4dENoYW5nZWQA` + + `FGFuZHJvaWQuYXBwLmxpYl9uYW1lACVhbmRyb2lkLmludGVudC5hY3Rpb24uQ1JFQVRFX0` + + `RPQ1VNRU5UACNhbmRyb2lkLmludGVudC5hY3Rpb24uT1BFTl9ET0NVTUVOVAAoYW5kcm9p` + + `ZC5pbnRlbnQuYWN0aW9uLk9QRU5fRE9DVU1FTlRfVFJFRQAgYW5kcm9pZC5pbnRlbnQuY2` + + `F0ZWdvcnkuT1BFTkFCTEUAH2FuZHJvaWQuaW50ZW50LmV4dHJhLk1JTUVfVFlQRVMAGmFu` + + `ZHJvaWQuaW50ZW50LmV4dHJhLlRJVExFABdhcHBsaWNhdGlvbi94LWRpcmVjdG9yeQARYm` + + `Vmb3JlVGV4dENoYW5nZWQADGJyaW5nVG9Gcm9udAAIY29udGFpbnMADWNyZWF0ZUNob29z` + + `ZXIADmRvSGlkZUtleWJvYXJkAA5kb1Nob3dGaWxlT3BlbgAOZG9TaG93RmlsZVNhdmUADm` + + `RvU2hvd0tleWJvYXJkAAFlAAZlcXVhbHMAIWV4Y2VwdGlvbiByZWFkaW5nIEtleUNoYXJh` + + `Y3Rlck1hcAASZmlsZVBpY2tlclJldHVybmVkAAxmaW5kVmlld0J5SWQAA2dldAAPZ2V0QW` + + `Jzb2x1dGVQYXRoAA9nZXRBY3Rpdml0eUluZm8AC2dldENhY2hlRGlyAAxnZXRDb21wb25l` + + `bnQAB2dldERhdGEADGdldERlY29yVmlldwAJZ2V0SGVpZ2h0AAlnZXRJbnRlbnQAEWdldF` + + `BhY2thZ2VNYW5hZ2VyAAtnZXRSb290VmlldwATZ2V0Um9vdFdpbmRvd0luc2V0cwAHZ2V0` + + `UnVuZQAJZ2V0U3RyaW5nABBnZXRTeXN0ZW1TZXJ2aWNlABpnZXRTeXN0ZW1XaW5kb3dJbn` + + `NldEJvdHRvbQAYZ2V0U3lzdGVtV2luZG93SW5zZXRMZWZ0ABlnZXRTeXN0ZW1XaW5kb3dJ` + + `bnNldFJpZ2h0ABdnZXRTeXN0ZW1XaW5kb3dJbnNldFRvcAAJZ2V0VG1wZGlyAA1nZXRWaX` + + `NpYmlsaXR5AAhnZXRXaWR0aAAJZ2V0V2luZG93AA5nZXRXaW5kb3dUb2tlbgAcZ2V0V2lu` + + `ZG93VmlzaWJsZURpc3BsYXlGcmFtZQAQZ29OYXRpdmVBY3Rpdml0eQAGaGVpZ2h0AAxoaW` + + `RlS2V5Ym9hcmQAF2hpZGVTb2Z0SW5wdXRGcm9tV2luZG93AAxpbnB1dF9tZXRob2QABmlu` + + `c2VydAANaW5zZXRzQ2hhbmdlZAAOa2V5Ym9hcmREZWxldGUADWtleWJvYXJkVHlwZWQABG` + + `xlZnQABmxlbmd0aAAEbG9hZAALbG9hZExpYnJhcnkAEmxvYWRMaWJyYXJ5IGZhaWxlZAAn` + + `bG9hZExpYnJhcnk6IG5vIG1hbmlmZXN0IG1ldGFkYXRhIGZvdW5kAAltVGV4dEVkaXQACG` + + `1ldGFEYXRhAARuYW1lAAhvbGRTdGF0ZQAQb25BY3Rpdml0eVJlc3VsdAAIb25DcmVhdGUA` + + `Dm9uTGF5b3V0Q2hhbmdlAA1vblRleHRDaGFuZ2VkAAhwdXRFeHRyYQAMcmVxdWVzdEZvY3` + + `VzAANydW4ADXJ1bk9uVWlUaHJlYWQADXNldEltZU9wdGlvbnMADHNldElucHV0VHlwZQAP` + + `c2V0TGF5b3V0UGFyYW1zAAdzZXRUZXh0AAdzZXRUeXBlAA1zZXRWaXNpYmlsaXR5AApzZX` + + `R1cEVudHJ5AAxzaG93RmlsZU9wZW4ADHNob3dGaWxlU2F2ZQAMc2hvd0tleWJvYXJkAA1z` + + `aG93U29mdElucHV0AAVzcGxpdAAWc3RhcnRBY3Rpdml0eUZvclJlc3VsdAALc3ViU2VxdW` + + `VuY2UABnRoaXMkMAAGdGhpcyQxAAh0b1N0cmluZwADdG9wACJ1bmtub3duIGtleWJvYXJk` + + `IHR5cGUsIHVzZSBkZWZhdWx0AAx1cGRhdGVMYXlvdXQAEHZhbCRrZXlib2FyZFR5cGUABX` + + `ZhbHVlAAV3aWR0aAABfABPAgAABw4AUwAHdwIiwgJjHQIOWXmWmHi1lpaXpQJssyBLAnQd` + + `AIIBAQAHDgCFAQAHDrQA2wEBAAcOAN4BCQAAAAAAAAAAAAcOWgD0AQEABw4AiAIBAAcOeJ` + + `ZrAIMCBAAAAAAHDgD3AQQAAAAABw4BEg8BERS0AnodARIQAOQBAQAHDgDnAQAHHeG0xFuW` + + `tni1AhvgAC8ABw44Ti0AGgEABw4AGgIAAAcOABoBAAcOABoCAAAHDgAaAAcOABoCAAAHDg` + + `AaAQAHDgCwAQMAAAAHHYc0AnssIB6DAHoABw5aAMcBAAcOS6NMS38Cex2HSx4A5AEABw4C` + + `LYYAiwEBAAcOWgCfAQIAAAcOWgBLAQAHDloAfgAHDoe0iIwAjwEBAAcdeOF4RJYCdx3hWr` + + `RqPACjAQIAAAcOeOFat1papQJ7HQBPAQAHDgIohgA0AAcOAJYCAwAAAAcOAgxoAnkdPGxL` + + `ANYBAQAHDjw8PbSMADkABw7DAg4sAnYdh4VMHlq1tP/QAAIZAcEBGlICGgJcBACiAR4CGw` + + `HBARwBFwECGQHBARpPAhkBwQEaYgIZAcEBGkUCGQHBARpkBkSQAAgEAAQBBAIEAgQBAAIB` + + `AQSQIAGQIDqAgASMGDsBrBgAAQEBBpAgPICABMQaPQHgGgABAQEHkCA+gIAEiBs/AaQbAA` + + `EBAwiQIECAgATAG0EB3BsBAZwcAQGwHAABAQEJkCBEgIAE1B1FAfAdBwITCAoaARoBGgEa` + + `ARoBGgEKEQIBAkaBgATAHwGIIOQfAYgg/B8BiCCUIAGIIKwgAYggxCABiCDcIAGIIPQgBo` + + `ICAAUIjCEECOAhAYICAAGCAgABggIAAQL8IQQCgCMBCKQjAQjAIwEI3CNPAPgjAQDQJAEA` + + `kCYBAJwnCADAJwcE5CcBAawoBwD4KBEAAAAAAAAAAQAAAAAAAAABAAAAxAAAAHAAAAACAA` + + `AALgAAAIADAAADAAAAPgAAADgEAAAEAAAAEwAAACAHAAAFAAAAagAAALgHAAAGAAAABgAA` + + `AAgLAAADEAAABgAAAMgLAAABIAAAIwAAAAwMAAAGIAAABQAAAFQVAAABEAAAIQAAAKwVAA` + + `ACIAAAxAAAANYWAAADIAAAIwAAAPMjAAAEIAAABwAAAHUlAAAFIAAAAQAAAKolAAAAIAAA` + + `BgAAALklAAAAEAAAAQAAAKQmAAA=` + `` diff --git a/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java b/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java index 985679ea63..f75a1c1dfe 100644 --- a/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java +++ b/vendor/github.com/fyne-io/mobile/app/GoNativeActivity.java @@ -79,6 +79,10 @@ void doShowKeyboard(final int keyboardType) { runOnUiThread(new Runnable() { @Override public void run() { + // If keyboard is already up, ignore request + if (mTextEdit.getVisibility() == View.VISIBLE) { + return; + } int imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION; int inputType = DEFAULT_INPUT_TYPE; switch (keyboardType) { From 6bc5e585d8dac0b76f47b96d091bdfb851aade7c Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Mon, 24 May 2021 09:10:19 -0500 Subject: [PATCH 3/3] update to latest fyne-io/mobile --- go.mod | 2 +- go.sum | 4 ++-- vendor/modules.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 4a14cb47af..fc45781416 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/akavel/rsrc v0.8.0 // indirect github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 github.com/fsnotify/fsnotify v1.4.9 - github.com/fyne-io/mobile v0.1.3-0.20210510125822-9a3fcd853577 + github.com/fyne-io/mobile v0.1.3-0.20210524083716-78f416561547 github.com/go-gl/gl v0.0.0-20210426225639-a3bfa832c8aa github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb github.com/go-ole/go-ole v1.2.5 diff --git a/go.sum b/go.sum index 705a0651ce..c53acc32ef 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,8 @@ github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 h1:FDqhDm7pcsLhhWl1QtD8 github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3/go.mod h1:CzM2G82Q9BDUvMTGHnXf/6OExw/Dz2ivDj48nVg7Lg8= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fyne-io/mobile v0.1.3-0.20210510125822-9a3fcd853577 h1:xCW6aKh2deFRK6wfCsdTWDg2iSUvj8zYxoHeQt3mvyc= -github.com/fyne-io/mobile v0.1.3-0.20210510125822-9a3fcd853577/go.mod h1:/kOrWrZB6sasLbEy2JIvr4arEzQTXBTZGb3Y96yWbHY= +github.com/fyne-io/mobile v0.1.3-0.20210524083716-78f416561547 h1:q3mR3AT73LxwifSK+gNEQFweMiKLXt3p373X5xbIK+4= +github.com/fyne-io/mobile v0.1.3-0.20210524083716-78f416561547/go.mod h1:/kOrWrZB6sasLbEy2JIvr4arEzQTXBTZGb3Y96yWbHY= github.com/go-gl/gl v0.0.0-20210426225639-a3bfa832c8aa h1:yiL6tST9ZuWBXiymIdM0j6yeLwMVGXDoybpXqnbJpCk= github.com/go-gl/gl v0.0.0-20210426225639-a3bfa832c8aa/go.mod h1:wjpnOv6ONl2SuJSxqCPVaPZibGFdSci9HFocT9qtVYM= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb h1:T6gaWBvRzJjuOrdCtg8fXXjKai2xSDqWTcKFUPuw8Tw= diff --git a/vendor/modules.txt b/vendor/modules.txt index 129770dcdf..b1658a85d1 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -12,7 +12,7 @@ github.com/davecgh/go-spew/spew github.com/fredbi/uri # github.com/fsnotify/fsnotify v1.4.9 github.com/fsnotify/fsnotify -# github.com/fyne-io/mobile v0.1.3-0.20210510125822-9a3fcd853577 +# github.com/fyne-io/mobile v0.1.3-0.20210524083716-78f416561547 github.com/fyne-io/mobile/app github.com/fyne-io/mobile/app/internal/callfn github.com/fyne-io/mobile/event/key