From 060286af9c0247799201d6b2bc1eec1f8be1a56e Mon Sep 17 00:00:00 2001 From: Miguel Mota Date: Sun, 20 Dec 2020 22:05:14 -0800 Subject: [PATCH] Set up notification package --- Makefile | 3 + go.mod | 2 + go.sum | 43 + media/notification.mp3 | Bin 0 -> 55587 bytes pkg/notifier/mp3.go | 4 + pkg/notifier/notiifer.go | 68 + vendor/github.com/faiface/beep/LICENSE | 21 + vendor/github.com/faiface/beep/README.md | 44 + vendor/github.com/faiface/beep/buffer.go | 262 + vendor/github.com/faiface/beep/compositors.go | 173 + vendor/github.com/faiface/beep/ctrl.go | 52 + vendor/github.com/faiface/beep/go.mod | 11 + vendor/github.com/faiface/beep/go.sum | 39 + vendor/github.com/faiface/beep/interface.go | 106 + vendor/github.com/faiface/beep/mixer.go | 70 + vendor/github.com/faiface/beep/mp3/decode.go | 104 + vendor/github.com/faiface/beep/resample.go | 174 + .../faiface/beep/speaker/speaker.go | 130 + vendor/github.com/faiface/beep/streamers.go | 65 + .../github.com/gen2brain/beeep/.appveyor.yml | 18 + vendor/github.com/gen2brain/beeep/.travis.yml | 10 + vendor/github.com/gen2brain/beeep/LICENSE | 23 + vendor/github.com/gen2brain/beeep/README.md | 45 + .../gen2brain/beeep/alert_darwin.go | 16 + vendor/github.com/gen2brain/beeep/alert_js.go | 11 + .../github.com/gen2brain/beeep/alert_unix.go | 11 + .../gen2brain/beeep/alert_unsupported.go | 8 + .../gen2brain/beeep/alert_windows.go | 21 + vendor/github.com/gen2brain/beeep/beeep.go | 27 + .../github.com/gen2brain/beeep/beep_darwin.go | 28 + vendor/github.com/gen2brain/beeep/beep_js.go | 37 + .../github.com/gen2brain/beeep/beep_unix.go | 138 + .../gen2brain/beeep/beep_unsupported.go | 15 + .../gen2brain/beeep/beep_windows.go | 41 + vendor/github.com/gen2brain/beeep/go.mod | 12 + vendor/github.com/gen2brain/beeep/go.sum | 14 + .../gen2brain/beeep/notify_darwin.go | 20 + .../github.com/gen2brain/beeep/notify_js.go | 49 + .../github.com/gen2brain/beeep/notify_unix.go | 58 + .../gen2brain/beeep/notify_unsupported.go | 8 + .../gen2brain/beeep/notify_windows.go | 124 + vendor/github.com/go-toast/toast/.gitignore | 3 + vendor/github.com/go-toast/toast/LICENSE | 7 + vendor/github.com/go-toast/toast/readme.md | 61 + .../toast/screenshot-action-centre.png | Bin 0 -> 85126 bytes .../go-toast/toast/screenshot-cli.png | Bin 0 -> 62466 bytes .../go-toast/toast/screenshot-toast.png | Bin 0 -> 62644 bytes vendor/github.com/go-toast/toast/toast.go | 359 + vendor/github.com/godbus/dbus/v5/.travis.yml | 50 + .../github.com/godbus/dbus/v5/CONTRIBUTING.md | 50 + vendor/github.com/godbus/dbus/v5/LICENSE | 25 + vendor/github.com/godbus/dbus/v5/MAINTAINERS | 3 + .../github.com/godbus/dbus/v5/README.markdown | 44 + vendor/github.com/godbus/dbus/v5/auth.go | 252 + .../godbus/dbus/v5/auth_anonymous.go | 16 + .../godbus/dbus/v5/auth_external.go | 26 + vendor/github.com/godbus/dbus/v5/auth_sha1.go | 102 + vendor/github.com/godbus/dbus/v5/call.go | 60 + vendor/github.com/godbus/dbus/v5/conn.go | 912 +++ .../github.com/godbus/dbus/v5/conn_darwin.go | 37 + .../github.com/godbus/dbus/v5/conn_other.go | 93 + vendor/github.com/godbus/dbus/v5/conn_unix.go | 17 + .../github.com/godbus/dbus/v5/conn_windows.go | 15 + vendor/github.com/godbus/dbus/v5/dbus.go | 428 + vendor/github.com/godbus/dbus/v5/decoder.go | 286 + .../godbus/dbus/v5/default_handler.go | 328 + vendor/github.com/godbus/dbus/v5/doc.go | 69 + vendor/github.com/godbus/dbus/v5/encoder.go | 210 + vendor/github.com/godbus/dbus/v5/export.go | 412 + vendor/github.com/godbus/dbus/v5/go.mod | 3 + vendor/github.com/godbus/dbus/v5/go.sum | 0 vendor/github.com/godbus/dbus/v5/homedir.go | 28 + .../godbus/dbus/v5/homedir_dynamic.go | 15 + .../godbus/dbus/v5/homedir_static.go | 45 + vendor/github.com/godbus/dbus/v5/match.go | 62 + vendor/github.com/godbus/dbus/v5/message.go | 353 + vendor/github.com/godbus/dbus/v5/object.go | 211 + .../godbus/dbus/v5/server_interfaces.go | 107 + vendor/github.com/godbus/dbus/v5/sig.go | 259 + .../godbus/dbus/v5/transport_darwin.go | 6 + .../godbus/dbus/v5/transport_generic.go | 50 + .../godbus/dbus/v5/transport_nonce_tcp.go | 39 + .../godbus/dbus/v5/transport_tcp.go | 41 + .../godbus/dbus/v5/transport_unix.go | 214 + .../dbus/v5/transport_unixcred_dragonfly.go | 95 + .../dbus/v5/transport_unixcred_freebsd.go | 91 + .../dbus/v5/transport_unixcred_linux.go | 25 + .../dbus/v5/transport_unixcred_openbsd.go | 14 + vendor/github.com/godbus/dbus/v5/variant.go | 144 + .../godbus/dbus/v5/variant_lexer.go | 284 + .../godbus/dbus/v5/variant_parser.go | 817 ++ vendor/github.com/gopherjs/gopherjs/LICENSE | 24 + vendor/github.com/gopherjs/gopherjs/js/js.go | 168 + vendor/github.com/gopherjs/gopherwasm/AUTHORS | 1 + vendor/github.com/gopherjs/gopherwasm/LICENSE | 24 + .../gopherjs/gopherwasm/js/callback.go | 49 + .../github.com/gopherjs/gopherwasm/js/doc.go | 8 + .../gopherjs/gopherwasm/js/go111_wasm.go | 30 + .../gopherjs/gopherwasm/js/go112_wasm.go | 18 + .../gopherjs/gopherwasm/js/js_notwasm.go | 263 + .../gopherjs/gopherwasm/js/js_wasm.go | 54 + .../github.com/hajimehoshi/go-mp3/.gitignore | 2 + vendor/github.com/hajimehoshi/go-mp3/AUTHORS | 2 + vendor/github.com/hajimehoshi/go-mp3/LICENSE | 201 + .../github.com/hajimehoshi/go-mp3/README.md | 7 + .../github.com/hajimehoshi/go-mp3/decode.go | 217 + vendor/github.com/hajimehoshi/go-mp3/go.mod | 3 + vendor/github.com/hajimehoshi/go-mp3/go.sum | 6 + .../hajimehoshi/go-mp3/internal/bits/bits.go | 78 + .../go-mp3/internal/consts/consts.go | 102 + .../go-mp3/internal/frame/frame.go | 676 ++ .../internal/frameheader/frameheader.go | 206 + .../go-mp3/internal/huffman/huffman.go | 419 + .../go-mp3/internal/imdct/imdct.go | 107 + .../go-mp3/internal/maindata/huffman.go | 129 + .../go-mp3/internal/maindata/maindata.go | 194 + .../go-mp3/internal/sideinfo/sideinfo.go | 142 + .../github.com/hajimehoshi/go-mp3/source.go | 124 + vendor/github.com/hajimehoshi/oto/.gitignore | 2 + vendor/github.com/hajimehoshi/oto/AUTHORS | 5 + vendor/github.com/hajimehoshi/oto/LICENSE | 201 + vendor/github.com/hajimehoshi/oto/README.md | 35 + vendor/github.com/hajimehoshi/oto/context.go | 164 + .../hajimehoshi/oto/driver_android.go | 291 + .../github.com/hajimehoshi/oto/driver_js.go | 154 + .../hajimehoshi/oto/driver_linux.go | 166 + .../hajimehoshi/oto/driver_openal.go | 258 + .../hajimehoshi/oto/driver_windows.go | 134 + vendor/github.com/hajimehoshi/oto/go.mod | 9 + vendor/github.com/hajimehoshi/oto/go.sum | 14 + .../hajimehoshi/oto/internal/mux/mux.go | 167 + vendor/github.com/hajimehoshi/oto/player.go | 100 + .../hajimehoshi/oto/winmm_windows.go | 196 + vendor/github.com/nu7hatch/gouuid/.gitignore | 11 + vendor/github.com/nu7hatch/gouuid/COPYING | 19 + vendor/github.com/nu7hatch/gouuid/README.md | 21 + vendor/github.com/nu7hatch/gouuid/uuid.go | 173 + vendor/github.com/pkg/errors/.gitignore | 24 + vendor/github.com/pkg/errors/.travis.yml | 15 + vendor/github.com/pkg/errors/LICENSE | 23 + vendor/github.com/pkg/errors/README.md | 52 + vendor/github.com/pkg/errors/appveyor.yml | 32 + vendor/github.com/pkg/errors/errors.go | 282 + vendor/github.com/pkg/errors/stack.go | 147 + vendor/github.com/tadvi/systray/.gitignore | 12 + vendor/github.com/tadvi/systray/AUTHORS | 12 + vendor/github.com/tadvi/systray/LICENSE | 21 + vendor/github.com/tadvi/systray/README.md | 52 + vendor/github.com/tadvi/systray/go.mod | 1 + .../github.com/tadvi/systray/systray_linux.go | 5 + .../tadvi/systray/systray_windows.go | 630 ++ vendor/golang.org/x/exp/AUTHORS | 3 + vendor/golang.org/x/exp/CONTRIBUTORS | 3 + vendor/golang.org/x/exp/LICENSE | 27 + vendor/golang.org/x/exp/PATENTS | 22 + .../x/exp/shiny/driver/gldriver/buffer.go | 32 + .../x/exp/shiny/driver/gldriver/cocoa.go | 671 ++ .../x/exp/shiny/driver/gldriver/cocoa.m | 327 + .../x/exp/shiny/driver/gldriver/context.go | 35 + .../x/exp/shiny/driver/gldriver/egl.go | 106 + .../x/exp/shiny/driver/gldriver/gldriver.go | 133 + .../x/exp/shiny/driver/gldriver/other.go | 28 + .../x/exp/shiny/driver/gldriver/screen.go | 149 + .../x/exp/shiny/driver/gldriver/texture.go | 160 + .../x/exp/shiny/driver/gldriver/win32.go | 357 + .../x/exp/shiny/driver/gldriver/window.go | 389 + .../x/exp/shiny/driver/gldriver/x11.c | 327 + .../x/exp/shiny/driver/gldriver/x11.go | 318 + .../shiny/driver/internal/drawer/drawer.go | 34 + .../driver/internal/errscreen/errscreen.go | 25 + .../exp/shiny/driver/internal/event/event.go | 68 + .../driver/internal/lifecycler/lifecycler.go | 80 + .../x/exp/shiny/driver/internal/win32/key.go | 350 + .../shiny/driver/internal/win32/syscall.go | 7 + .../driver/internal/win32/syscall_windows.go | 185 + .../exp/shiny/driver/internal/win32/win32.go | 491 ++ .../driver/internal/win32/zsyscall_windows.go | 286 + .../shiny/driver/internal/x11key/x11key.go | 224 + .../golang.org/x/exp/shiny/screen/screen.go | 354 + vendor/golang.org/x/image/AUTHORS | 3 + vendor/golang.org/x/image/CONTRIBUTORS | 3 + vendor/golang.org/x/image/LICENSE | 27 + vendor/golang.org/x/image/PATENTS | 22 + vendor/golang.org/x/image/math/f64/f64.go | 37 + vendor/golang.org/x/mobile/AUTHORS | 3 + vendor/golang.org/x/mobile/CONTRIBUTORS | 3 + vendor/golang.org/x/mobile/LICENSE | 27 + vendor/golang.org/x/mobile/PATENTS | 22 + .../x/mobile/app/GoNativeActivity.java | 67 + vendor/golang.org/x/mobile/app/android.c | 191 + vendor/golang.org/x/mobile/app/android.go | 819 ++ vendor/golang.org/x/mobile/app/app.go | 208 + .../golang.org/x/mobile/app/darwin_desktop.go | 496 ++ .../golang.org/x/mobile/app/darwin_desktop.m | 245 + vendor/golang.org/x/mobile/app/darwin_ios.go | 216 + vendor/golang.org/x/mobile/app/darwin_ios.m | 165 + vendor/golang.org/x/mobile/app/doc.go | 85 + .../x/mobile/app/internal/callfn/callfn.go | 17 + .../x/mobile/app/internal/callfn/callfn_386.s | 11 + .../mobile/app/internal/callfn/callfn_amd64.s | 11 + .../x/mobile/app/internal/callfn/callfn_arm.s | 11 + .../mobile/app/internal/callfn/callfn_arm64.s | 11 + vendor/golang.org/x/mobile/app/shiny.go | 70 + vendor/golang.org/x/mobile/app/x11.c | 173 + vendor/golang.org/x/mobile/app/x11.go | 122 + .../x/mobile/event/key/code_string.go | 60 + vendor/golang.org/x/mobile/event/key/key.go | 270 + .../x/mobile/event/lifecycle/lifecycle.go | 135 + .../golang.org/x/mobile/event/mouse/mouse.go | 90 + .../golang.org/x/mobile/event/paint/paint.go | 24 + vendor/golang.org/x/mobile/event/size/size.go | 92 + .../golang.org/x/mobile/event/touch/touch.go | 72 + vendor/golang.org/x/mobile/geom/geom.go | 102 + vendor/golang.org/x/mobile/gl/consts.go | 657 ++ vendor/golang.org/x/mobile/gl/dll_windows.go | 243 + vendor/golang.org/x/mobile/gl/doc.go | 66 + vendor/golang.org/x/mobile/gl/fn.go | 210 + vendor/golang.org/x/mobile/gl/gl.go | 1844 +++++ vendor/golang.org/x/mobile/gl/gldebug.go | 3673 +++++++++ vendor/golang.org/x/mobile/gl/interface.go | 889 +++ vendor/golang.org/x/mobile/gl/types_debug.go | 82 + vendor/golang.org/x/mobile/gl/types_prod.go | 93 + vendor/golang.org/x/mobile/gl/work.c | 556 ++ vendor/golang.org/x/mobile/gl/work.go | 176 + vendor/golang.org/x/mobile/gl/work.h | 217 + vendor/golang.org/x/mobile/gl/work_windows.go | 569 ++ .../golang.org/x/mobile/gl/work_windows_386.s | 9 + .../x/mobile/gl/work_windows_amd64.s | 12 + .../mobile/internal/mobileinit/ctx_android.go | 124 + .../mobile/internal/mobileinit/mobileinit.go | 11 + .../internal/mobileinit/mobileinit_android.go | 93 + .../internal/mobileinit/mobileinit_ios.go | 38 + vendor/golang.org/x/sys/windows/aliases.go | 13 + .../golang.org/x/sys/windows/dll_windows.go | 415 + vendor/golang.org/x/sys/windows/empty.s | 8 + .../golang.org/x/sys/windows/env_windows.go | 54 + vendor/golang.org/x/sys/windows/eventlog.go | 20 + .../golang.org/x/sys/windows/exec_windows.go | 97 + .../x/sys/windows/memory_windows.go | 31 + vendor/golang.org/x/sys/windows/mkerrors.bash | 63 + .../x/sys/windows/mkknownfolderids.bash | 27 + vendor/golang.org/x/sys/windows/mksyscall.go | 9 + vendor/golang.org/x/sys/windows/race.go | 30 + vendor/golang.org/x/sys/windows/race0.go | 25 + .../golang.org/x/sys/windows/registry/key.go | 198 + .../x/sys/windows/registry/mksyscall.go | 9 + .../x/sys/windows/registry/syscall.go | 32 + .../x/sys/windows/registry/value.go | 386 + .../sys/windows/registry/zsyscall_windows.go | 120 + .../x/sys/windows/security_windows.go | 1406 ++++ vendor/golang.org/x/sys/windows/service.go | 229 + vendor/golang.org/x/sys/windows/str.go | 22 + vendor/golang.org/x/sys/windows/syscall.go | 74 + .../x/sys/windows/syscall_windows.go | 1489 ++++ .../golang.org/x/sys/windows/types_windows.go | 1786 +++++ .../x/sys/windows/types_windows_386.go | 22 + .../x/sys/windows/types_windows_amd64.go | 22 + .../x/sys/windows/types_windows_arm.go | 22 + .../x/sys/windows/zerrors_windows.go | 6853 +++++++++++++++++ .../x/sys/windows/zknownfolderids_windows.go | 149 + .../x/sys/windows/zsyscall_windows.go | 4070 ++++++++++ vendor/modules.txt | 58 + 262 files changed, 51957 insertions(+) create mode 100644 media/notification.mp3 create mode 100644 pkg/notifier/mp3.go create mode 100644 pkg/notifier/notiifer.go create mode 100644 vendor/github.com/faiface/beep/LICENSE create mode 100644 vendor/github.com/faiface/beep/README.md create mode 100644 vendor/github.com/faiface/beep/buffer.go create mode 100644 vendor/github.com/faiface/beep/compositors.go create mode 100644 vendor/github.com/faiface/beep/ctrl.go create mode 100644 vendor/github.com/faiface/beep/go.mod create mode 100644 vendor/github.com/faiface/beep/go.sum create mode 100644 vendor/github.com/faiface/beep/interface.go create mode 100644 vendor/github.com/faiface/beep/mixer.go create mode 100644 vendor/github.com/faiface/beep/mp3/decode.go create mode 100644 vendor/github.com/faiface/beep/resample.go create mode 100644 vendor/github.com/faiface/beep/speaker/speaker.go create mode 100644 vendor/github.com/faiface/beep/streamers.go create mode 100644 vendor/github.com/gen2brain/beeep/.appveyor.yml create mode 100644 vendor/github.com/gen2brain/beeep/.travis.yml create mode 100644 vendor/github.com/gen2brain/beeep/LICENSE create mode 100644 vendor/github.com/gen2brain/beeep/README.md create mode 100644 vendor/github.com/gen2brain/beeep/alert_darwin.go create mode 100644 vendor/github.com/gen2brain/beeep/alert_js.go create mode 100644 vendor/github.com/gen2brain/beeep/alert_unix.go create mode 100644 vendor/github.com/gen2brain/beeep/alert_unsupported.go create mode 100644 vendor/github.com/gen2brain/beeep/alert_windows.go create mode 100644 vendor/github.com/gen2brain/beeep/beeep.go create mode 100644 vendor/github.com/gen2brain/beeep/beep_darwin.go create mode 100644 vendor/github.com/gen2brain/beeep/beep_js.go create mode 100644 vendor/github.com/gen2brain/beeep/beep_unix.go create mode 100644 vendor/github.com/gen2brain/beeep/beep_unsupported.go create mode 100644 vendor/github.com/gen2brain/beeep/beep_windows.go create mode 100644 vendor/github.com/gen2brain/beeep/go.mod create mode 100644 vendor/github.com/gen2brain/beeep/go.sum create mode 100644 vendor/github.com/gen2brain/beeep/notify_darwin.go create mode 100644 vendor/github.com/gen2brain/beeep/notify_js.go create mode 100644 vendor/github.com/gen2brain/beeep/notify_unix.go create mode 100644 vendor/github.com/gen2brain/beeep/notify_unsupported.go create mode 100644 vendor/github.com/gen2brain/beeep/notify_windows.go create mode 100644 vendor/github.com/go-toast/toast/.gitignore create mode 100644 vendor/github.com/go-toast/toast/LICENSE create mode 100644 vendor/github.com/go-toast/toast/readme.md create mode 100644 vendor/github.com/go-toast/toast/screenshot-action-centre.png create mode 100644 vendor/github.com/go-toast/toast/screenshot-cli.png create mode 100644 vendor/github.com/go-toast/toast/screenshot-toast.png create mode 100644 vendor/github.com/go-toast/toast/toast.go create mode 100644 vendor/github.com/godbus/dbus/v5/.travis.yml create mode 100644 vendor/github.com/godbus/dbus/v5/CONTRIBUTING.md create mode 100644 vendor/github.com/godbus/dbus/v5/LICENSE create mode 100644 vendor/github.com/godbus/dbus/v5/MAINTAINERS create mode 100644 vendor/github.com/godbus/dbus/v5/README.markdown create mode 100644 vendor/github.com/godbus/dbus/v5/auth.go create mode 100644 vendor/github.com/godbus/dbus/v5/auth_anonymous.go create mode 100644 vendor/github.com/godbus/dbus/v5/auth_external.go create mode 100644 vendor/github.com/godbus/dbus/v5/auth_sha1.go create mode 100644 vendor/github.com/godbus/dbus/v5/call.go create mode 100644 vendor/github.com/godbus/dbus/v5/conn.go create mode 100644 vendor/github.com/godbus/dbus/v5/conn_darwin.go create mode 100644 vendor/github.com/godbus/dbus/v5/conn_other.go create mode 100644 vendor/github.com/godbus/dbus/v5/conn_unix.go create mode 100644 vendor/github.com/godbus/dbus/v5/conn_windows.go create mode 100644 vendor/github.com/godbus/dbus/v5/dbus.go create mode 100644 vendor/github.com/godbus/dbus/v5/decoder.go create mode 100644 vendor/github.com/godbus/dbus/v5/default_handler.go create mode 100644 vendor/github.com/godbus/dbus/v5/doc.go create mode 100644 vendor/github.com/godbus/dbus/v5/encoder.go create mode 100644 vendor/github.com/godbus/dbus/v5/export.go create mode 100644 vendor/github.com/godbus/dbus/v5/go.mod create mode 100644 vendor/github.com/godbus/dbus/v5/go.sum create mode 100644 vendor/github.com/godbus/dbus/v5/homedir.go create mode 100644 vendor/github.com/godbus/dbus/v5/homedir_dynamic.go create mode 100644 vendor/github.com/godbus/dbus/v5/homedir_static.go create mode 100644 vendor/github.com/godbus/dbus/v5/match.go create mode 100644 vendor/github.com/godbus/dbus/v5/message.go create mode 100644 vendor/github.com/godbus/dbus/v5/object.go create mode 100644 vendor/github.com/godbus/dbus/v5/server_interfaces.go create mode 100644 vendor/github.com/godbus/dbus/v5/sig.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_darwin.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_generic.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_nonce_tcp.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_tcp.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_unix.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_unixcred_dragonfly.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_unixcred_freebsd.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_unixcred_linux.go create mode 100644 vendor/github.com/godbus/dbus/v5/transport_unixcred_openbsd.go create mode 100644 vendor/github.com/godbus/dbus/v5/variant.go create mode 100644 vendor/github.com/godbus/dbus/v5/variant_lexer.go create mode 100644 vendor/github.com/godbus/dbus/v5/variant_parser.go create mode 100644 vendor/github.com/gopherjs/gopherjs/LICENSE create mode 100644 vendor/github.com/gopherjs/gopherjs/js/js.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/AUTHORS create mode 100644 vendor/github.com/gopherjs/gopherwasm/LICENSE create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/callback.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/doc.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/go111_wasm.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/go112_wasm.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/js_notwasm.go create mode 100644 vendor/github.com/gopherjs/gopherwasm/js/js_wasm.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/.gitignore create mode 100644 vendor/github.com/hajimehoshi/go-mp3/AUTHORS create mode 100644 vendor/github.com/hajimehoshi/go-mp3/LICENSE create mode 100644 vendor/github.com/hajimehoshi/go-mp3/README.md create mode 100644 vendor/github.com/hajimehoshi/go-mp3/decode.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/go.mod create mode 100644 vendor/github.com/hajimehoshi/go-mp3/go.sum create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/bits/bits.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/consts/consts.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/frame/frame.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/frameheader/frameheader.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/huffman/huffman.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/imdct/imdct.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/maindata/huffman.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/maindata/maindata.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/internal/sideinfo/sideinfo.go create mode 100644 vendor/github.com/hajimehoshi/go-mp3/source.go create mode 100644 vendor/github.com/hajimehoshi/oto/.gitignore create mode 100644 vendor/github.com/hajimehoshi/oto/AUTHORS create mode 100644 vendor/github.com/hajimehoshi/oto/LICENSE create mode 100644 vendor/github.com/hajimehoshi/oto/README.md create mode 100644 vendor/github.com/hajimehoshi/oto/context.go create mode 100644 vendor/github.com/hajimehoshi/oto/driver_android.go create mode 100644 vendor/github.com/hajimehoshi/oto/driver_js.go create mode 100644 vendor/github.com/hajimehoshi/oto/driver_linux.go create mode 100644 vendor/github.com/hajimehoshi/oto/driver_openal.go create mode 100644 vendor/github.com/hajimehoshi/oto/driver_windows.go create mode 100644 vendor/github.com/hajimehoshi/oto/go.mod create mode 100644 vendor/github.com/hajimehoshi/oto/go.sum create mode 100644 vendor/github.com/hajimehoshi/oto/internal/mux/mux.go create mode 100644 vendor/github.com/hajimehoshi/oto/player.go create mode 100644 vendor/github.com/hajimehoshi/oto/winmm_windows.go create mode 100644 vendor/github.com/nu7hatch/gouuid/.gitignore create mode 100644 vendor/github.com/nu7hatch/gouuid/COPYING create mode 100644 vendor/github.com/nu7hatch/gouuid/README.md create mode 100644 vendor/github.com/nu7hatch/gouuid/uuid.go create mode 100644 vendor/github.com/pkg/errors/.gitignore create mode 100644 vendor/github.com/pkg/errors/.travis.yml create mode 100644 vendor/github.com/pkg/errors/LICENSE create mode 100644 vendor/github.com/pkg/errors/README.md create mode 100644 vendor/github.com/pkg/errors/appveyor.yml create mode 100644 vendor/github.com/pkg/errors/errors.go create mode 100644 vendor/github.com/pkg/errors/stack.go create mode 100644 vendor/github.com/tadvi/systray/.gitignore create mode 100644 vendor/github.com/tadvi/systray/AUTHORS create mode 100644 vendor/github.com/tadvi/systray/LICENSE create mode 100644 vendor/github.com/tadvi/systray/README.md create mode 100644 vendor/github.com/tadvi/systray/go.mod create mode 100644 vendor/github.com/tadvi/systray/systray_linux.go create mode 100644 vendor/github.com/tadvi/systray/systray_windows.go create mode 100644 vendor/golang.org/x/exp/AUTHORS create mode 100644 vendor/golang.org/x/exp/CONTRIBUTORS create mode 100644 vendor/golang.org/x/exp/LICENSE create mode 100644 vendor/golang.org/x/exp/PATENTS create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/buffer.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/cocoa.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/cocoa.m create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/context.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/egl.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/gldriver.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/other.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/screen.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/texture.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/win32.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/window.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/x11.c create mode 100644 vendor/golang.org/x/exp/shiny/driver/gldriver/x11.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/drawer/drawer.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/errscreen/errscreen.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/event/event.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/lifecycler/lifecycler.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/win32/key.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/win32/syscall.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/win32/syscall_windows.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/win32/win32.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/win32/zsyscall_windows.go create mode 100644 vendor/golang.org/x/exp/shiny/driver/internal/x11key/x11key.go create mode 100644 vendor/golang.org/x/exp/shiny/screen/screen.go create mode 100644 vendor/golang.org/x/image/AUTHORS create mode 100644 vendor/golang.org/x/image/CONTRIBUTORS create mode 100644 vendor/golang.org/x/image/LICENSE create mode 100644 vendor/golang.org/x/image/PATENTS create mode 100644 vendor/golang.org/x/image/math/f64/f64.go create mode 100644 vendor/golang.org/x/mobile/AUTHORS create mode 100644 vendor/golang.org/x/mobile/CONTRIBUTORS create mode 100644 vendor/golang.org/x/mobile/LICENSE create mode 100644 vendor/golang.org/x/mobile/PATENTS create mode 100644 vendor/golang.org/x/mobile/app/GoNativeActivity.java create mode 100644 vendor/golang.org/x/mobile/app/android.c create mode 100644 vendor/golang.org/x/mobile/app/android.go create mode 100644 vendor/golang.org/x/mobile/app/app.go create mode 100644 vendor/golang.org/x/mobile/app/darwin_desktop.go create mode 100644 vendor/golang.org/x/mobile/app/darwin_desktop.m create mode 100644 vendor/golang.org/x/mobile/app/darwin_ios.go create mode 100644 vendor/golang.org/x/mobile/app/darwin_ios.m create mode 100644 vendor/golang.org/x/mobile/app/doc.go create mode 100644 vendor/golang.org/x/mobile/app/internal/callfn/callfn.go create mode 100644 vendor/golang.org/x/mobile/app/internal/callfn/callfn_386.s create mode 100644 vendor/golang.org/x/mobile/app/internal/callfn/callfn_amd64.s create mode 100644 vendor/golang.org/x/mobile/app/internal/callfn/callfn_arm.s create mode 100644 vendor/golang.org/x/mobile/app/internal/callfn/callfn_arm64.s create mode 100644 vendor/golang.org/x/mobile/app/shiny.go create mode 100644 vendor/golang.org/x/mobile/app/x11.c create mode 100644 vendor/golang.org/x/mobile/app/x11.go create mode 100644 vendor/golang.org/x/mobile/event/key/code_string.go create mode 100644 vendor/golang.org/x/mobile/event/key/key.go create mode 100644 vendor/golang.org/x/mobile/event/lifecycle/lifecycle.go create mode 100644 vendor/golang.org/x/mobile/event/mouse/mouse.go create mode 100644 vendor/golang.org/x/mobile/event/paint/paint.go create mode 100644 vendor/golang.org/x/mobile/event/size/size.go create mode 100644 vendor/golang.org/x/mobile/event/touch/touch.go create mode 100644 vendor/golang.org/x/mobile/geom/geom.go create mode 100644 vendor/golang.org/x/mobile/gl/consts.go create mode 100644 vendor/golang.org/x/mobile/gl/dll_windows.go create mode 100644 vendor/golang.org/x/mobile/gl/doc.go create mode 100644 vendor/golang.org/x/mobile/gl/fn.go create mode 100644 vendor/golang.org/x/mobile/gl/gl.go create mode 100644 vendor/golang.org/x/mobile/gl/gldebug.go create mode 100644 vendor/golang.org/x/mobile/gl/interface.go create mode 100644 vendor/golang.org/x/mobile/gl/types_debug.go create mode 100644 vendor/golang.org/x/mobile/gl/types_prod.go create mode 100644 vendor/golang.org/x/mobile/gl/work.c create mode 100644 vendor/golang.org/x/mobile/gl/work.go create mode 100644 vendor/golang.org/x/mobile/gl/work.h create mode 100644 vendor/golang.org/x/mobile/gl/work_windows.go create mode 100644 vendor/golang.org/x/mobile/gl/work_windows_386.s create mode 100644 vendor/golang.org/x/mobile/gl/work_windows_amd64.s create mode 100644 vendor/golang.org/x/mobile/internal/mobileinit/ctx_android.go create mode 100644 vendor/golang.org/x/mobile/internal/mobileinit/mobileinit.go create mode 100644 vendor/golang.org/x/mobile/internal/mobileinit/mobileinit_android.go create mode 100644 vendor/golang.org/x/mobile/internal/mobileinit/mobileinit_ios.go create mode 100644 vendor/golang.org/x/sys/windows/aliases.go create mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go create mode 100644 vendor/golang.org/x/sys/windows/empty.s create mode 100644 vendor/golang.org/x/sys/windows/env_windows.go create mode 100644 vendor/golang.org/x/sys/windows/eventlog.go create mode 100644 vendor/golang.org/x/sys/windows/exec_windows.go create mode 100644 vendor/golang.org/x/sys/windows/memory_windows.go create mode 100644 vendor/golang.org/x/sys/windows/mkerrors.bash create mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash create mode 100644 vendor/golang.org/x/sys/windows/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/race.go create mode 100644 vendor/golang.org/x/sys/windows/race0.go create mode 100644 vendor/golang.org/x/sys/windows/registry/key.go create mode 100644 vendor/golang.org/x/sys/windows/registry/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/registry/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/registry/value.go create mode 100644 vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/security_windows.go create mode 100644 vendor/golang.org/x/sys/windows/service.go create mode 100644 vendor/golang.org/x/sys/windows/str.go create mode 100644 vendor/golang.org/x/sys/windows/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_386.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_amd64.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm.go create mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go diff --git a/Makefile b/Makefile index dbe1eb7..b24778e 100644 --- a/Makefile +++ b/Makefile @@ -220,3 +220,6 @@ docker-push: docker-run-ssh: docker run -p 2222:22 -v ~/.ssh/demo:/keys --entrypoint cointop -it cointop/cointop server -k /keys/id_rsa + +mp3: + cat <(printf "package notifier\nfunc Mp3() string {\nreturn \`" "") <(xxd -p media/notification.mp3 | tr -d "\n") <(printf "\`\n}" "") > pkg/notifier/mp3.go diff --git a/go.mod b/go.mod index d70d34a..be80829 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,9 @@ require ( github.com/anaskhan96/soup v1.1.1 // indirect github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect github.com/creack/pty v1.1.11 + github.com/faiface/beep v1.0.2 github.com/fatih/color v1.9.0 + github.com/gen2brain/beeep v0.0.0-20200526185328-e9c15c258e28 github.com/gliderlabs/ssh v0.3.0 github.com/maruel/panicparse v1.5.0 github.com/mattn/go-colorable v0.1.7 // indirect diff --git a/go.sum b/go.sum index d96e396..45b2ceb 100644 --- a/go.sum +++ b/go.sum @@ -26,10 +26,16 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/faiface/beep v1.0.2 h1:UB5DiRNmA4erfUYnHbgU4UB6DlBOrsdEFRtcc8sCkdQ= +github.com/faiface/beep v1.0.2/go.mod h1:1yLb5yRdHMsovYYWVqYLioXkVuziCSITW1oarTeduQM= github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.1.1/go.mod h1:K1udHkiR3cOtlpKG5tZPD5XxrF7v2y7lDq7Whcj+xkQ= +github.com/gen2brain/beeep v0.0.0-20200526185328-e9c15c258e28 h1:M2Zt3G2w6Q57GZndOYk42p7RvMeO8izO8yKTfIxGqxA= +github.com/gen2brain/beeep v0.0.0-20200526185328-e9c15c258e28/go.mod h1:ElSskYZe3oM8kThaHGJ+kiN2yyUMVXMZ7WxF9QqLDS8= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.0 h1:7GcKy4erEljCE/QeQ2jTVpu+3f3zkpZOxOJjFYkMqYU= github.com/gliderlabs/ssh v0.3.0/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= @@ -37,6 +43,10 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4 h1:qZNfIGkIANxGv/OqtnntR4DfOY2+BgwR60cAcu/i3SE= +github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4/go.mod h1:kW3HQ4UdaAyrUCSSDR4xUzBKW6O2iA4uHhk7AtyYp10= +github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -48,13 +58,27 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gopherjs/gopherjs v0.0.0-20180628210949-0892b62f0d9f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c h1:16eHWuMGvCjSfgRJKqIzapE78onvvTbdi1rMkU00lZw= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherwasm v0.1.1/go.mod h1:kx4n9a+MzHH0BJJhvlsQ65hqLFXDO/m256AsaDPQ+/4= +github.com/gopherjs/gopherwasm v1.0.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI= +github.com/gopherjs/gopherwasm v1.1.0 h1:fA2uLoctU5+T3OhOn2vYP0DVT6pxc7xhTlBB1paATqQ= +github.com/gopherjs/gopherwasm v1.1.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hajimehoshi/go-mp3 v0.1.1 h1:Y33fAdTma70fkrxnc9u50Uq0lV6eZ+bkAlssdMmCwUc= +github.com/hajimehoshi/go-mp3 v0.1.1/go.mod h1:4i+c5pDNKDrxl1iu9iG90/+fhP37lio6gNhjCx9WBJw= +github.com/hajimehoshi/oto v0.1.1/go.mod h1:hUiLWeBQnbDu4pZsAhOnGqMI1ZGibS6e2qhQdfpwz04= +github.com/hajimehoshi/oto v0.3.1 h1:cpf/uIv4Q0oc5uf9loQn7PIehv+mZerh+0KKma6gzMk= +github.com/hajimehoshi/oto v0.3.1/go.mod h1:e9eTLBB9iZto045HLbzfHJIc+jP3xaKrjZTghvb6fdM= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jfreymuth/oggvorbis v1.0.0/go.mod h1:abe6F9QRjuU9l+2jek3gj46lu40N4qlYxh2grqkLEDM= +github.com/jfreymuth/vorbis v1.0.0/go.mod h1:8zy3lUAm9K/rJJk223RKy6vjCZTWC61NA2QD06bfOE0= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= @@ -65,6 +89,7 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/maruel/panicparse v1.5.0 h1:etK4QAf/Spw8eyowKbOHRkOfhblp/kahGUy96RvbMjI= github.com/maruel/panicparse v1.5.0/go.mod h1:aOutY/MUjdj80R0AEVI9qE2zHqig+67t2ffUDDiLzAM= @@ -77,11 +102,13 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mewkiz/flac v1.0.5/go.mod h1:EHZNU32dMF6alpurYyKHDLYpW1lYpBZ5WrXi/VuNIGs= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miguelmota/go-coinmarketcap v0.1.6 h1:YIe+VdFhEgyGESfmkL7BHRDIdf6CUOAjJisml01AFqs= github.com/miguelmota/go-coinmarketcap v0.1.6/go.mod h1:Jdv/kqtKclIElmoNAZMMJn0DSQv+j7p/H1te/GGnxhA= @@ -94,6 +121,8 @@ github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9 github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= @@ -101,6 +130,9 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -129,6 +161,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af h1:6yITBqGTE2lEeTPG04SN9W+iWHCRyHqlVYILiSXziwk= +github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af/go.mod h1:4F09kP5F+am0jAwlQLddpoMDM+iewkxxt6nxUQ5nq5o= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomnomnom/xtermcolor v0.0.0-20160428124646-b78803f00a7e h1:Ee+VZw13r9NTOMnwTPs6O5KZ0MJU54hsxu9FpZ4pQ10= github.com/tomnomnom/xtermcolor v0.0.0-20160428124646-b78803f00a7e/go.mod h1:fSIW/szJHsRts/4U8wlMPhs+YqJC+7NYR+Qqb1uJVpA= @@ -144,8 +178,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20180710024300-14dda7b62fcd h1:nLIcFw7GiqKXUS7HiChg6OAYWgASB2H97dZKd1GhDSs= +golang.org/x/exp v0.0.0-20180710024300-14dda7b62fcd/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 h1:00VmoueYNlNz/aHIilyyQz/MHSqGoWJzpFv/HW8xpzI= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20180806140643-507816974b79 h1:t2JRgCWkY7Qaa1J2jal+wqC9OjbyHCHwIA9rVlRUSMo= +golang.org/x/mobile v0.0.0-20180806140643-507816974b79/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/net v0.0.0-20180215212450-dc948dff8834/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -163,12 +203,14 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed h1:WBkVNH1zd9jg/dK4HCM4lNANnmd12EHC9z+LmcCG4ns= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -186,6 +228,7 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0/go.mod h1:OdE7CF6DbADk7lN8LIKRzRJTTZXIjtWgA5THM5lhBAw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/media/notification.mp3 b/media/notification.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..491cdc2e65126a4e790238e3e8845bb5473fee90 GIT binary patch literal 55587 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 literal 0 HcmV?d00001 diff --git a/pkg/notifier/mp3.go b/pkg/notifier/mp3.go new file mode 100644 index 0000000..1bb1306 --- /dev/null +++ b/pkg/notifier/mp3.go @@ -0,0 +1,4 @@ +package notifier +func Mp3() string { +return `fffb90c40000000000000000000000000000000000496e666f0000000f000000840000d923000305070b0d0f1315171b1d1f2224262a2c2e3234363a3c3e414345474b4d4f5355575b5d5f6264666a6c6e7274767a7c7e818385878b8d8f9395979b9d9fa2a4a6aaacaeb2b4b6babcbec1c3c5c7cbcdcfd3d5d7dbdddfe2e4e6eaeceef2f4f6fafcfe000000394c414d45332e31303001cd000000002e13000014802406a8420000800000d923ac07a296000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffb90c4000053f9ecef031879caeb419f428c90000210420041d3b68733231edb0f27a9b3eb934d90d332d907be78393d83f4838461e9b4639e1127a6d1e3240617587a7db79f40883eba0e9b102081e9b934ecf269ffae4f5d882989d1021366001400c3c99441564c00a269ef7dce4c2d362100881887876204321076211eec867e7ebeb774db18102248493a8cb640c2087f10e4d0b600207eb427eb9b9ee849c4dcdc208c211a201c4e5033a002111bcb40cd00dbc5110b02228423745a05431ace9d84d12eb7c61a8175b9e626691c5e8e28dccd6ce3dd67ad66e6a54487114a6e18cdb9b916b2ca91d66525850ab3243f544e9a5254ac1f8d9a33a285968aa936440c91a87882523c489ae862b4e49cb74c9b44b36289152cab68e329d45bd8966184ef5b32f141936bcc9d642b3fa47cab963296b770791a4a215dbdc21622488a9924956a893295f4bb9cba461488a1d680b2149ee511a931f23ab5e0b17cb5667a455640888e5d4f5041054010180406040309101010293cc140d00c381ab9581dd8867de307c1132d04e34f81a37995bb78183a2281853161d4c1b0fffb92c418801b018b2199da8002db21a54bbba000b505819982c062d2581f1176061217a92603198140c4e150bde06673b0194c5006343c26a306713313c8595819805c066d0e8183c3e06342c26b741601c0f291aa4620635120220608061ec03504b3ef1c62e33ec90eb0c0420f06f19121de412eaa171c62732e2cfaa06060900a108592490e21c1ffadd4ba996a26cd9632e52598b9bfffeafdcaa59193335199aa967cb9fffeff7b37d24d04de641abdfffffffe1642db959e0008f804c2d510c53f08f0c0bcc030e4880630f40b30743f000f061204a60d01e2802808091103660f8280c00d314c0339cd921033030620cfae33ac4047993b2c11832fb8c8a0e04062684a110d42c779d981eb51ca5cf7c850501c0acd7f695dddc72350f61dcabc66331a8f3bd0f0e866ff099c29bf29567dc32fc7559650583bf516addfffdeb1feef1e7fef2ffffd7759c0d73b87e597d6c71fdfffef9965dfffc6f3bd461083a2ea028043b42d727eb76d6268a901915d90c0d038c4c2c0e718247f3931541030500a30b41530481130101546240738aa020c044c080280000981e039fffb92c4178314e9152a6ec87c83a22be2c5fdadf883c7587098b71a46952b335359c5b2d2cbd32c56c6bf16953f520b54b4922a8f08e0440e076cd885b42bcd6a1982a5b289a78dfa791ff947d232f55d67fa8a91535482ea452019211e1062cd238e8bacd2b74533cca5a975dd02796dd57bd3e3550e30d58f0b31662e1230f3a6765c36cf4a6d84ef956f5a4103022c0f81e02fcc19f6524c5420d04c11b04b8c03102b4c0960208700403015c07122016c42005888009300640103000002d301800413012802e000016603305366763a61650303c61e6c6123c676003c12aed88a268d0cb583151a415505610ac4d919dbc6a1c2c02e1aa500dc1c795d335d5febdabcec51fe853182e233e401b7aff4ff20b11a7a9d4e4fe5ca78d3d4fcbfb721fb18e7349da0ea00070324a58a39390e4acf1f5169862f75f795181b44cdf33cbb9ae5e71d3f19b45cbbbba8b8fba6c5f34ce2e1b3130cbd8ce2ad479244eb615246ab53dc98abf41f193eab98a4d4ce84cca10420016051311707b3530e3538811ff30c202c1607f3007013302301f30060222200e40197795850c0c0240cfffb92c41603189143184f710fc325aee285ee21f814f0401b181c0a59cbc0e633081709a0b6412074b155a0380dd17e44011795f98bc4e81c15f8dd9b3c3cfc98246c25cf4835e6a2f24a96a7a214b4094b3576f50beb0c3fe000b930628eb638e3626a2db94fd8d7d2b183058441e0b89bae95e5ac78e7ee79b5b88c504dd344d6fdd4c7058b9c41db7d6bcd3cd731e8fc8e86f8c60ecc36126cb22ad4e764934a4be1ed8a5f6689b4e61d796040c1880b4c3c4368cb08b3cfb24034c46805cc0f40f4c1500389809cc03802042018bdda096c90c8ac024980181004a60580f27652e05c3e23093d2a52aed9e46e1eb9d64ca52a32bd20ebbb8ddc76a0a8cb3830397cde2262fdbfeba550476f4bead5bcdca7f2b525a48cdc0209848330f4b73bd670cafeff2b3cb7edcc0a1a0a112a7ed150f8ac1d8f91d2755ef8f0637ab316f8aa49dc87e63d9faaaff6eaa7b98d62eaf879e2beee2ad2eae13e576e6a068bda2d6214a176acf2108957a03ec73c58c3ed6de920040c1e021cc4c4890d343318fafc758c4881c4c2741c0c02c000c02c0694cd3a53961f60adc93213081a00fffb92c41583985d0f122f6d6fdb24aba205fe21f9c4006c60c9c628243810d6d2d12ce04811faab0b8d0c003defe37d6ef4fd6eba4fbaca25af111d36181d6aa104a33c2be766c6aae3f729648234046bb5cffef7f0ffd5dbf8f6c18c06807f4a2c5ea1e34b36b363779d5b75ee98bcac85be78be5f1dd325d2b24d7b78cf065007a8a440e43de3961b96b8da737699df39fe568bb607777afb7d923027fc5d947f0fc93bb537f76f2a432ea983029814b303743a230e31e5e3180c3d4302401153015c07e0b00c63a00d1803a00020b94000090cfcc3495f2750426004cd102b4e269a88cb115dc172b95d0341a446e8e486ec6e4319ad8e100b846083e9c081c5000678aa495b3972ed2e522c73977e724a7b018061e1959cbfbacb1d65db3f8eb72a0e1f02cb5298791031c6dceb3507415232a981d1c8ffa70a99e912c51b0cd37156b174b57131df0d3f330bc4d7d71690dda99999610ad15979e251fb5af97c9f59d5fb12e7857d4e87c8d27a41c55fbf07020281d2608e05bc6397b4d866fb06d460ab81ca602e0088601d804e600400389b6600880120a00212ee0b6628fffb92c4160119897b100ff0cfcaf2246259fd21f9c51167a55010cc3a0310075e7779ce95412f34ec71ec91c1af93d50743520965b9cc2cb5f305080e10112f42f05864ab83f9857f8bc5ef5fa7b537949454629254bacf0cb2ab773b9da4c35a7c448116aa3e69cec63a8ff945b6b57adce68ffab5fee65d552acedd8df9bfffbb3d3d79ffe353421f3ef68dcdc777cb6fdebee7669a9399be23f1e55bab53d2e72c9772dbe53d6db5a17810403e2b8ddbdbe50501082403020c02230570000318d40c5268a30c1910038040aa93018e60130000090024200036a8f1d3412b00f0560b00125da0b16ce215e10ecb938c521fa48fc02fccb2532fe5da4dc918188ba1cc46d218a0b025118c4b65304d998cebdffe7dc89880ca2c6f5cbdbc30ef79cfb3499dc616a3056eceea44214dcca20af39126d14904bb54239fefaf5f68effe15d51ba3279bce115675c9bc70b8ffe2eaca441aea38677f7b5d87fdcf7151be351ea9cdaf65ccd58304852ea37aaa3030c0c630518197313f576b3457831b305e40de30248039300e401a300200133007400048861ca2aeb4065ed7597a8efffb92c4180018dd9f0e0fec6fcb62a7e8f5dd0a7e80282c688a77a290147e0c6f60783650ecbdb19a92f8a4ccb756a3348dc4131073e42bfa5abad3ca76e6757bde4ab2bfba1c6b0200068465d4bcdfe35b2e7dcfe6feba95280d3d520b72061508e8a212496bc83ce209d6115e68c2cdb0f45aa9be33665b96f0eebb9a11542aa14c399f739446879c235718ce11a05c41d335d26b0176f980e925d7c4c8833a247165cc2b59822e4ad2ae007becfda0c9624299998c13a61802c2c0e29b8500430001632d0593211333e26093639d4310cab3150ba30a4cd31b44030c8190e0d90a1e91083261e86e652a6464825e6ae87265e164658505170d502d30b1d39afcaa90d01032858ca020a26964ae5f31394ee7525aa4c33943d6a0f2ebb4482ed821d912ec7d5e74ecc339b77e0774dda41c805622f930e34583c39729587c4587c0f0c380e44cbff2f95c823ee7810310ab3a73499f2b95c4cdd764330b963ff413b1e71e6a0d77e21454fae53cb274bf06063885367229ff745398431fac003610d88a000040188001812015004301409531d253f344d51f307601a300b01503fffb92c40e8018dd4125af6c51c2b620a409edc1b803c1810801981001d182f01589021008114c01c005668040000c01242096601c0220200c4891100198b101d1e0249d5c708a9cea2fcc616ccd424481109ec051e53081434bc16d0d1485c10c1c29249e74e644f26168acb64ce5402d60a80662c28ecccbed13756a65bb5946a7aa61ba182df5a677ac5308009bea5d534f5fce330cbfb4bbb356c5365118e3fe66c24a154aaacfd7edf6de9735c0132eca969baa292867b9ec2c8f7310000d4604808260561ac61ec40e7acaaac610a07a600400e603a024300bc5bb1603110817a7b17896342d681811785058b00a62c62620607dbb6200c6f90c4bec220d28276b92c7e5f978c58064d0f0f033fcc965d02c44702d2f2fcd43194b626300068832f24f6772456a829a9b4e1cba66dbaa32a89839f73c17f8784ab44d6a736a0a4eec8a2600311516d4d067536dfd97ad6ce8de6c6416419b093942a3daca8eb1ec259752dcebdf451d15020c1c8194c30c438c97a798e9f0320c7a0094c2b41d0c1e0094c0a402cc0a8024a8054101043401cd611b54761d10869880c00874fffb92c41a831741031a2f6e6dc2cda72305ed45b81418022339af60e5a2d4a5c8f033b2f2b29705e591bed47158e0f00d151d4e4590e23cb0d7620bca9a5d190b831c086aa296fc467f99637b4c2658ddafc344193968f9f2884e232264929231a2b264d547d9b5394c021662a77f5742ea65ad9bb2eb5294c6248746b4bb9e260983c2ad716eb2dbdd0bb1f2eec5bb7ddeda228db1ef63fd8d1387003cc08c410c36fb70eba54c4c51c0ecc110038c0dc05cc05807c0a00eb3d0105c686e24adae6b2830e511601a303801f7120eb02c69b5409c4dce9e9648e552fa48ac694dacc5b39350a20075d8e4edc9557820b05c191a0da96a1b732a6ef6be40e6c35cb679cc4f1d770da44d514a9a17ba9564d54a7025892641dd1a4921b3a914e920a5a6ad74990322614eda2d7b5b529299592a4c66b28f3cc0d892ab479d38c82cf0a4ca9437ccf5d56fd9dba52a00149c9060052ef198b171f0d1e18982318ac12252b40425b442d62a46426018160a03dafb1368c8f68a6d6c4002d44844241721bd478534548ba28a1b7fe8df444f45371e9e9e1b86a4affb385d8ce1f8c66058fffb92c42a0314653f2e6ebcda4390282489ede898097e2a35b1c6b7e44310c1b8260ccc948113bc79de3c2a20529aa3c01838593260301934e1ef609a118f7af77777fc4102104023608108c6f711f1efbba119fb7fbff8c8686befed3100d1ebfca3b50004c1805800182d07898b888719c02f29b58a10824174d8854129a6923a1615165b002083878f7188dd480d69635aa8e3be358b4c6230c3a660c83879877e063672869aefa69c81a13c67480f07060c5ee63461991461d219c262208c09305a58d0d5dcbbd0030d3720b0305012ecb882d0d25c990092831a28c28246a30610b5c98c5a6342bd1d96164336d670ce1d7f6d5f97c66cdec682d635f2dd996cabb2ab306c6a352a94f6fcec46313f8f33fad5af5ebf72d52d98f295afe7da7b3d63de5daf4b6696cd2e729a5cb2efe5bd65731feff3fbbfd7ef1c5a45a115add1dffffff65500261302704230360d33101665337f22a362d628306d063303708230690423049036260490c0275e6020830f2b33f083071050757ab46056251e8fa9131c0d0a8e1d580aa14034be2afab3a90475605059fb7fafbeb09cc880fffb92c42c8315613f224f6e8bc23527e4cded4cb8a939490f5a892fb24029d7da081c44c14ca8a385b0350282ca49e456cb5b22a618d75556372f974a283a4b30322285773218e40d114daad7d2daa711139b21adab32a955af7bcfb21fff93eefb7fecfeafe800026b2cc01c060541d4c0813ecd5011ace8d8048c47004ce19e225a443d05d9c402fa191204c89e575acbbb2fb8c8fae2c3c99272452916b96bcb0553636366a478c543e4648853ac6ab3321803191cc272e5b260963a5f20007330e724b4eaa75a87212aeaa0cfd7b949599aa9d6d32558c1369f4903c745ca2da92dfb75d4f7a92d97affff35fc6747d7f6a55034c02803c3808cc559544eafd160cc75964c164320700952a919d22cbf288d111202460922aee0c21dd7edc141e46004a30247380497aab88d52cfccce50fca7b671a6a65155c11cafaa9f4ef5062350250669b2d8e3843a059c3ccf09846aaf61177875cf661e05c2d344c5c74d34a679a73e3ecec43647565a4c6cfa540cd9d4fb5d92d73117d537a7ff1b7eb5d3428bdaffb8da0c1980ecc2fc240cbb8c40d630c48ffd5460c9f4284f214fffb92c4568392a541202f68edd26a27e345edd0b80dd4d4cc860c3880c141de867a0e0f5daeecfe4d761a8d0e012f6430010511009c90ab3650f77603269050bf26c87b245026944685060a45a816cd448c05c60d61718f2b383582ea8f9a0af0025016948c4daeecaa229eb53a69aa95dd25d6b317cd996dd2e935990652e5237b76aecfffb29bb297f75726687ffedfffafd372ffe94a10ad2301300814007308c70636057933a9854c314e091305d0141e0005382b00a0801f2dc30d1e0036e15dc6811c474e48a011b68ed59258e65a8fdd3c4a1d9f9cbf4d391798b78e4dd17ec4ac7e5dce905abf0f773f9dde1dccdad72b1cbf3cf0c759e515a3fdd4ced0a28e20380057211de7015769ce8866964766e71fbfe4ffe76f56ffc17fcadde9eda9a2b600ad4498307261c861800a9718ab41b1adf3159813837193399c6981b7058113c1a3c60a54257821187e1025104c233701124805111830316a47879375e701132fc54e9be8060b2a98f241dbfd98e68183469b613930f23dbb8050104092662641503e05b10fe3519826bc79fd600c452a88801a1bb9669c583632eefffb92c4850311ad41204f604fc38628244dcf6c084ddfa49b972e856f66af7b588b40952077e5a51a3611e018038fd5ea7234f6b2b008f6adf1153a5816b5393d0964eb5d824fd9fa7de5288d59a7771df67117775cf81a975befe1dc399eb9adeb1effef2bb6353735aee3ddfe58ebff1ffbba9decabfe5bd30028606005980782818559b71aed2009d6b8d0988c2ea99068359684d0bc70d1c24433034146e2e5d02c132734ab31055354a057ece5f887c5996250530e8d1788e017f61c609d85a86f8aa4c8690514e22441903e8975024c31111622c78d85308b9b5cc800430f4cb45965d4133273745d271f877804d00a801dc5d4133575ba2a36be8ad9ead76d152924c7cabff6fffaca9096eb5dfffdb2babb4da3045040307209131f130734171f333a47d633d853c33db0fc3084065741134c6430c68542029359855b91158ca029934ec92ebaeff3a0bbfe252cb540ed98347a11a9f8c47deda4a6eb4685d95ea59a0160ac9179c5a836a7a8b2050b938d30a99ea4ca2b652c6e0e2022202944acc9a2aafedbd6eb5ad052d1b97bacb46bfe9e87ecbf5156f0ff3e9deffffb92c49403938921224f668782612463c9edd1381712543ed754f576550f92feb5008001fe600a00060180a660c29866d8c33871b454a61aab5c628c124600203a880980b3cb482c443cfef18db0e8fc52210cd1cc54aed7bf2b19e34e22e503a47b4caaab11c37d2f9c139a5b38a9bd4a0bd062ecabfd07e52488183e5fffab7d4ea5fb3b6ec4a12659c543178a0e0b34a24443286282a9abf4d814eda99409269adc4982c04d79998a0899a0a63eb98ca241598a78098981ba01f0b950a183287c1311349a043d2560245119d3bb931274a96089f4e1aef4d5cf91a305c4b65208b455924af0d4148c74b7b7963a7ad2dbbabf7daaa395fb1dbc0e0efd63f95fa5e7feee47ac7e7f014c108d1e9b9191480e2bbdcab0dd01fd64aebef586c8d075553fb2b55b676492decce24666b721f60bfa5c378cd051000180043bcac080c1f4094c9c93fcc574bd0e656420cc0b08cce0c49cc1300b07804c1c01606000301702101013b48799ff4da06000cf43f244d57e9a74dcb163dd78f785d92100218b01a4e3d8644218e986846c4d1756693502c92a9b1aa0193898a0b3233002fffb92c4c0028fc4eb24cf6647c266952301bfe81088e6e608a46f6a8cd1d0291702510542955ef7d1a861aebe643c13ba694e12d24cb736fa91512e89f303562ae4ec789fec7e5723e551d773e54d6e7aa4532266ae72a18c9f463e5a93266fa1c12d11e37dfbd694d3a400300c034090c0f81c0c5a1378cd55bd4f9f0460d271d58c75d040ce106b0c0a00e0c454394c4d88c713cc8918d69e0e6ad0e8108cc5bce1d74d7020c0c74c94f4d5524cccacced44d5d54d451ccd4454259918c251b6351a40e01820402e1890632b275d204e1488b1a0706f9f1c07c6e171a44c6706018ba12d05e5ca2e6145997129ac638e1b12e32082062cd85a682660246932692b488aa7396ccbc698eb1d63a603c8ccd22d97da861fc9c4754d86e690e98ebadd3008931214cb2839998ee2231eccd48d4176df6cc0140dbf80d97cffba6b1e16edb96d7e4728861fc8c390b0e98f2fcf3ce9e9edd7b7288739de7e34949becc525efcf0e6fee525887ca043e200f9f89cd1c1039fee802836b93a3fffdc00018301801f30790de30fe41e349163032ff49d32a760435f324037681a2076e870fffb92c4fa8217b99d192f4d170454a5e389ede930e9aa561c70898f318205895e0d9adcf1060cfc40cfb5c084c0125102f1adb198307930205010d1550c98eccd0147158d059c1cd261e2c65e2042583a066bafe736179814188acc19e46c6a5498c9b6608048b04515c04292d8960100108028466312818f448240243a1814080a053d66240787149eb83e552168c8a4e335ea75f2a625e17b61e77aec5e52dcd88aa57529addb70ac3e86010805692301905084b825b55358ab726bda769de8d55a07fb74afc53f2bdec2e4b691dea6c65d76316b96d714cb66ceae1434d1194d351cae96cd7cb3a4954babd2cee566b56cadd4e67aa6fe615f2fb97c5e81254446ab88a79164006d996ad602ab46d420a73499464abc267970e6c8172607010bd0cba6210d49284aa5dc5e677d7243744adcb7abcebf56f3d302575c96cec41ae05688631ca5b531c28f4646e9ae7c9a279d4a303052cc013046489a3d4faacfb3aa75fcc524512040601b0931aa4dfff39feb524b651c385f11a93a606eb5b29d140bc2866a88898e400987dab2d9ab2efabeea0002a3005002301800f30a50fffb92c4d781a29557224f6f87c237a3269ddd5138e4314f1393380178314834530105db32250a131416030c190999601574a3cc16cd4ba09443050e83fee12994ae18fcaf535687ec53bd0c8d00055b5034a04b84aa055313052540d9261c3317519164993526c0493763ece95d4934eb55663ba9e4722a71c206b5187007d9fffe64dfd7fad430dcccb316c5a9082a7515f39c07fff6950638e91801010985c9449a5b1ad199717c98b81fb18d90111ad4813983100c180801501430c18092980bc699e2220e7bc1a584c6b13dae9b3d9ecb97728a535d5e023095886547636deb821a8b4fd9a1a928bf15b9b92385bbdca78bc8b2b128308189746619cf23634673440c0d4b66a7d14e74af7758f941d022e0363438f3474287a9fea2d7db4d34dd6e8ac6082e17730400c0559023335a99906941e558cbe9247d257994550000137080028020ee602881264e668670760b46582af466a5650691e2a060b002a2a03469d4e60a2261604de3e106840337861a4a24c2fd3b8b0d03d8ab23fa9043b32e8cbc45509118199d631d882206bbd57729bd2929144aa6c5c23c4b4e9ab1fffb92c4cc8391e1032c4f6e87d29ca064cdedd1b8012a8b8921ca2b0226e2c0521673a8bc9ae91c2b189a97915a2a353fad894376614c0386e85c8576d3749d35e92544cc907ef64a8b29d49990a0cd5955d4e9b18add25db453a9d6a536f6db4a751b99296a9c48d4ddc366cd615baddc942150242406f31608cb352336035fc7e6339396530535898324f836e342d05326c8b34015a315c981a31c1c0e2412a997f9080467980855634cfd5a215159b9641361231a566e22be770c3b0d4c31af8c730e81a01bf90cd2bd6b11585ed87e252186a3a280643ec0a6a50d01deaf4ea766260769af236972ca9629b93f4b2585bb6e46eb654b56cbcdcb762bc1715a380894013138a94358f5dd65fafc39bd7f39dec1b3b96f1fffe6b7fce7ebf17f236ed2e3826696cf4e8c638045424a4982c5cf0644439a826714d36168bb393dab07103fcc458cea5000195d6603202462f027a65dc72e79b8b1a6add036722214c7cc8158635216a61061a26094460603a12c1503143930b5e892ed30c05025c0c1171e8e4152a91ceadd7ea65a33bf2b8c40e401826299947706c6122b5debffffb92c4f78397e969226f6e89cb5d2062c5eff4803b2d54aefc42e52c2a79a008007298f4b9d55a6eed57fe0230d931a043ae245efeebe37f74346fc4269a6a92cd4a69fcff0df32c63adc884dcc1a77bcf472bb8b5b785acbae54cd578064546d1733b92858c218241479b792181c3e6479d972ab34de1c2f10948b1c243a834e096ead5defeb020bb31044cad030d039437933c638672dd31c6520342be1136081b93654a30e1537bd23242632a0b2ff34d9127fc54b2a4cdcf2d14adfab176f5aa67da1e94e104954203038c65986d862d39ba5eb4d9bcb1c69b1604a6195abb4b521897d2ba63242e25b85732afaffe728edd9a9dfc2dd6cbbffaadbd7674c0c75b5cbfff3ffd61aeeff5fabb9effff0ffe6b563f7dfce1a9dfcff0df7b9e154980883024925905b92b395b4501078c3a0ee071ed021d09351fabfd8a004d1053c3b0c1062968c9c61234c74f2738c5f91e38c86e6a54c9ad0ff4f197836c368e938b349134cb81a08198f020981ebf5508208410ce82da7bf4faedc68d4393d59cbbb59c12a070b4c341e39e01d973f39c85f0570ef514896d4fd2a8098140fffb92c4f28299512b184f70b1c2dba323e5af6c10b49c89cb624d6752c57461a0d249beed76d58a3cb1c69e45334b334b4b5aec4649639cab5e3b5b1d35a3150494fdec7f3d6b7cb986fbfac7fbdfe7eb787fef7cfef7fdc1f76ed9386676f3c0bfec762b6f3cf781ccd535c95faa72402a35ff9a3aedc530e7e7795ed65cf376ef89bf9aa148084ab2b00f3048036317d59e32d54113bd60db31f171b37002793b8501b3120048303a08230011b32a83f980180f20cb7680d92382380643408d3add2621edcc6120d5e7ea975647001e0109689a2c5a334b8c7200d61a801ecd46810090fc8ec6a6a2dcb5503059b34ecc7ef7579bc3fb52b5bb9f7f585ec77fca0eff6300e267933cbfb7b49dc33753d55ad3b4d713c45e00cdb7d73dc5ff5134d433f7abe62afd7e6ef8d55612d46d26328d8401c008c601c383d287b3746e8f77b9b5d5000800031a0c0380a4c0782a8c4144a4d741ec0d295a9cc819264c083f10dfec0ecc5043b0cf94d34c2fc148c4d010cc7b463cc02c3e0c4002a8c1c333349b4c6e06330924cde1730c100c7c12008640a2a333210d0864011a0c203efffb92c4f8021a8d05142d7f808afb2ea359eda238333248d68c03521780a7935baecd0e27314180c9c1a30c030d8c220a8acc6a1b2a048c340c5a8200318703862506abe4e4578fe20d8081660919993c966a0781cba346c0270147e655258388c62619018f08f260a0135d627051903188219022289a6f9e50008136e137c9111067181003c82114c638d2400c83babbe0f87295cb7524a0214b3861040a11a8a55968d0d196439b6e85fc4344df30c30821aa96cd006cbe371ba38619db8f3f108c524a1d89d701d494f6312947b30430706e68841324b050e98eaee34fe45357abd3e710670e250b0c6591d61ed7e7ea5258cf2a952f5786dcb87ec789c781a000049970206367d86eb6247e29a99a979493c0000203ca0428026611e29662cc47e66ca2bc60fc4e06326b9463780b460220a860581a46d0615a603201060e00aa60441da61c411c0d0141d404b20661a8ca22182a40296261c7903048351d390b44530dc39cc4ce0612246aab0a8e24eb5da5895a6ceb0aaf63ebb5dd7063aeebb8df8281c19ac6684a580c31b0862e0c050702a8e29b44683bcb134ff3bd2efffb92c4f4822b615b1b2f732dc385a76571eceda99a7fa5d334b4534ca9633295358aff6b5367525348ef5c954ba9bb6b2a6cb1ca9a555a456e1a8d675798ebbfbb3bc79aad6b1fffd56b5dc6b535c2606b57696cf2ad9c2d7ef54d1ae56955a39d24c6e4f3bb8a8a301f024302c07530174c333ad12c36b22fa31493b632bb23a387006630660a930ae67b31146ca302209732fc06666d380e6d6280430522938bc56938ef41841a0a46946c2345dcda262d2bcf0b53006622e6b5d7ead5553dba631299013320270619070584d0268800c388011670d172b13c3364b24606e78b89e8991b132686c6b41451492742b5a514e0c666aec8d9ea4968b2462666aa7ad074aeab2f56fd546a36050035ccbc7a7ffbbfa12852604200e61dc6a266c430066cc8326212a2661d359a6a3822e607611e63080727c7c23c6348050441cc606401282654885cc9494001586018d4719230775315a63408b2575220fd5aa6860a80424c03ba9aa4ab27a7c7b9cb69afcfc5555c4821cc0447781c296c99e575ac598ecff375ba7625d26f4c5a14b8cdceb6179ef80a846ba8987c6a39b4de34fffb92c49c839599191e0f66cb82a9a2e3c5e5b792e219b5dffeef6dafa87f0666687febf7e6e36b4a1371b154d0df6fa7bbf4d50400e4719a91009183804619c08549a0681c18410f998162f09904855996640184398199597908a460003a89c8f2cfaecaa43522b2dc2512de650429ea9b211489f60c38764b8b41574dea75a64585ac180d00d650166b9062eba1283d265d0569d5fd3a9ed74c6e1267bad25a4b5d06ad46eb4d553d1d7ebb75325c5f8a32eb41ab3d1eb934d1e8fd230803ed52980080a183112c18be045193b145184f16a18d40cd9a4780f980b03e187d85e1cce89d988e8058752838d87835289a8b27a58acaa3704d0569549dba29c5e71b1e57ca75275a852d4ad495ade1ddcd6b7a7f54748888c1750294f24967cd5c9f5f5ab4ec92aebdd36f7493960d755a93a904ee5d494e82d149e8a956d0415afa353c5d912393b36abbd48fa97e81fdbdaa0244402e60240ec6162ea8610e6fe74289666522b4c6a4df5c6df644466482ce61054566a5334c60d6332605a158040471081418002691c94ab5d18199b4c5e32e7aa0b9f210223453359563a38a47fffb92c4b703114919286f76a78250a2e489edd57864c300f7b6cdba9574f9eabd8ca96ec01011602e5639309ec05f3e89521b5cc9cd8d6f3b550f36dac357b88671c87d30de25bafd343f0a2c8e97653191b1ae57a4366ab6e7fdf0cee6b8bf99c5a74544f4b45ac61f15bd362d042924b6095f13307c522015488ad4f435cbe7562ef2ecd4841802401e85809e3052c3523005875c32b0c45d3098c627303951103123822a3030019d30b2035935e7030030ab80373043402c301f8031300f400a08169582468091049150e6c3390f46236fa05c18b3dd268b169c77699e42a805dc86f2ca2b5deea698b505c82666910c5022343630dc5017962803bcb3d452a61d773b95ad51958a9724bc242c072268bdc745c8b0a17309368badcdcc38c4898a5e1f8ebfe79e2693803444540f41d10c5e4c62693e855e9ae80850a91416435e3a36c262e175626b0fa9248751a818000064d00cd240280460303e6389167bf54a6a2cac69f32a743b907d403469f86461cf9c77271660d128210c4a80921dd6d3a7147e6a4b63735c96d261106872e8c4833fede49f56197e74b02c461e8dfffb92c4ee0317fd17162f716dc330a322c5fe21b85133ad12784f2560120a018890ef344eb5a9991b6c583fb7b1020cfc19110c0e09ecc6edd18649a2536c68d80f6498190c67f3fb25c2f0ebb04a15561dbde2f1b30870b196b4c5a83925dc4b9e262a80180ea03818168064983de46398eca0dc19f3808d988a849d18d2a9f5995d41239857e0ee188422d01c0361af987d2094183040419817e02a180d001398dc0018391a118a805943385facf9e49a8720f891303d9708410d59bf85d33f82215b37a57ae44ec32390d16f500c2edbba992000487074c169b3ba90915d9a43718b2f7614f7a7fa7dc7e072436c1c1f2b95955d9fa47d9aea854eb4ee8ed3f7d3a25d513374faa7435d0d63adf14ffa55f50f2328d5dbcfd32e5f5676d9c3398e214df735cbb86eef8dbb7db2fe5cc9fee223a967c3ae6eefed673cbf9414ff239a852280710e526a0202003d3018c0433055087531c705d631d9c63d312643583152942b30d7426930e00057300f0b6f32bb4b2c302941a5301600ae3001c0711400b02e2e89897ec6d5e58a07a998d587e7e46d3a5ca1eb4e91e377e5a401fffb90c4ee8213dd19254ed518839bb7a205fe2dbba4c07abd495e5739aab94393d52615e27487188e659b09134577a6e3d7a7219bd56b64362090526c8b4e39aa463b2a76b5458028dac6c66a38b2e6b8f1f4a283ee8488911bc277b47fcbd559bc3dee5a6debf34d8446536cf4df254295fbed80a53fe57158d96dcfebb081decf127faa1184cc38499ddf09100600000306024810a60cb05aa64428e0e644f8a1461528fde62f90aea65078216612f0186619509126b0e0504616a0202607380d06038004a601b803463c0610044c2134e1cba92311d80a579beafb7c65a14a2f4961d7e4981e9395ecc7643a95d88e6b29a64ef2070c8127cd68417acba5b96a2f10cb0e6c60f1f8393b88ca930f51b723ab741c57c3cefd73d72b2f49cdc354ed14efd63aa3195abdbb72e1b9eddfe7b377f6f43f5dff3b09ab365193fefeeba25126ff3b1e83d2f00d1ef0824cff576eaa080c02006cc08c1b0c5f8b50cd555f8f2b09f8d048aa4c493d00e664738c99c290c14a8f0ec2aabcc370438c14c2240008c2a032281c5d707002001a7b5ca677691fb91daeca5d22000847218bfffb92c4f18299e519122fed0ddb1aa0e295fda1b934ca188c52898cee5d90f7b75e2e6b38098d0f009803991b035d71acdcdc866f767bd18211e80f074e21b5dbe6d9bcb34f30602edba5ba6d261abb568d7e9aeaae5ebab8ffbfba1b14bdd5435fb3d47f8d93e85a8b19fb78bd57bc9dab6ad9fd9912c73ef6621ecf5898f373fff1573ba25bcf6030014a980240159803a03c181282d41842c0bc9820028e9822438a184d26f71858c0f61834e0471851221b1a20e17e98472051181240229808a00218040003808f29163ec05fe95dca94b471a9e694ea4f3ccead342e7ae36062faa5b16aa4ededd6f9dd4ccb9bb3f20c264fd604cfec5e8d7398fe6a6f81f6935bcf020878b4f474710c5cab46a978e888868b9d1fd526ea66279f9b71285c426450461b000d0b1973848ba86b80599b931f03098abcac410937d8e41fdcf545e9421a94c55d0040c80009cc048290c48ddf8dca50e0f87cb98d0e4ea0cd3dbb0f298578c8104a4c32e9ecf2febe0c53c354c0f81f01206a400443206200458eb4db3514959f43effbbf13871f46f4a8070cce4669ab3304e29759c32d4b6afffb92c4ed02180d41122f6d0dcb0221a2e5fd21b8e54d2596d04da8429539e20140196afc7ce92a4f3f3498f6a662871f62a145534c5ee1845536c68b49da037158bf77b29f2ae14c9219d969ae2263f498b6b41dbed32bffdc2d48d7e8fa8eb4fc66a977b4eab6f3bba28ce5e06a3146af35c99d971b379b8e1f77737fc2aa17cae621bf387f6cd8e00a54c05c030c0b8024c49c950e1b0bdcd928fd0c2119dcc8eea64d9b05ecc450324c8391b4fc18f40c78813cc20c0b0c0d0044c06c010200553396a390ffcba4d62188ec9e962f62189a64f0996c46b32066f4b35f4b7e733c2df3f1b923749be2401e1605d9ab15b2fa6aff958c4aba70c7914e9e81d8892a5499c0da00207c5bcc837cc107763bc859dc893e67997a52387653f90a5a6729a18e4b3b7efd9cf22ddd95e8c790c70994494f71e70e157913cf313fd3b2836a5f32850040418076016180f00329840624498836013990bc2f09881c1f29834e958989e61469841a09518250470199a0497982d007e1800e03c8300260a80323800426faaa280352b8d4ef489fe9e933b7199121e32e8dc4a19c1291debf6efffb92c4f30219957d10af6d0dcaf3ada2d9e40f882bf9c625bb9ade376dc3d126842a01b0b0062fa49f94971f9b18e572fb2edb553f4695ff34c72d77adab1bfadaa3462facf5658bbb5b4f45d053af1a1d69ec37d86aba1428e49d9bb7a538f041ee343a5babf4128a3c8738761a318cc6b63dd270b8e6f044425386aa1281d73f1d646d1cbae1b575c486c593c7e53d20c84344d24a12601e03e604c86a65746506cea1ce61ae82c65286526b8a0c260ea1906286694747660e626204860c802e604600c0a01501585e91e7ac8de722b970abd2b9087546f75231c2b154654f6871a06ab6def7bc4591d8218a1569dd21fad406648489447b38543e161702c7670fc54e3054bbdeb22229805cd1f1ac4f67d9e45476bba25f72f3abe9c7f503545d0d443a1750c2026012da5cabc7225e68913500881c03bc71e69d21ebfefffd54aa44012070603a196625cb0e66cb2c262f8da467465dc6badc506f5236464e412a61b6f4e7936eb062aa27260440fc601205e6000034150034dc4af646de51b7389cfd9db0e750b805a58f08b83183b874c384c5053115c61c5bfd6dbd4938fffb92c4f4821b0dab10afb07c8ac721e369e7a1b813417101c64ce0bec1c43cd2be2d1822dbc2ce738bbdde9e3ec535bfb2598aee067d21b9a22a068e88cda6a69dba9d8e7a065076914eb711cff6a465d326f31e1e5dcabcc8bcd7b862436c11f9e79155374faf652db33786c9f99f7d323a87dd7550cda89fe7201002730034058305e82ed321e478e3355048330560771307e53403121829e306581f5309f870735000600309380d330414064301d8043300ec0163008000528002c9800176182c3f1094cbe131f8ae2eed3a8e3b52e998e44e06579725f418bc53dab362bf65f2f7b9c0bce814008941aa9da06e549be6b7314d0acdef29f73a6892fcfd20efcb5407d2b589c0c70ab8ba214d3b2111cf38f04b5f52dc33b870a12179a7984dcc341cc7905360318fbba2a86dc34599ca73d4a9c92e45a958765a8c99763d62ae72fea74bcd888d62b14e95e52e8a7555200c0c80e4c174200c649408cfb0168e1454eccb505ccd9ad918e4e0318c96c05cc329a88f1e991cc4a04b8c1641d4c0800d0c00c054000045e34b8620cddf4a182e332cbd2487352a4f69b89c226bfffb92c4f5835881f7102f3c71cb5dc061c5f60f89268ed470c33c2fc6aa76deb0ca5b023709f758a0102479dba955badab95b9d95de03a5caca684e4c5e36527db581314dd67b6acb48c97732736855548e379440a73fd77a579961a99074e9134fac650c8c9131b362a8bc32cf949113525cad72e19fc2399bee69e168419086b903b9b255b21c17be82800a3003004230114834324dc37f3222c6c6301a0722311f4dff321e01d33093418a30abc63e346545033089c1363039007b301a403c300c001d3846070ad0a5ac1a5adca4714872cdf86a97a87786eec1721a443f683529e7a535a4f6792bb3fba4b3054aa4452e431952e738cc2bd9c2973851c3814a50f3cd5197c19ddbb42640243990e5abb7eda31ed48fa6b1ac268f5dab0d5bc6c2f6929fcbcd5cadd906a9fcaf4bd0f49ed652a2e2cdde74d34b8aadda21fb6b577a421d95ea7bfa9e3be7ae3ebd7c6ccf7755fc35c1304e750044007003980f022187ca331bdf1301cf90c718e780d19856f198cd8d198c00331847a9b9d75ab4189a845982c01f180f80d81001002148453395c396e7738bd046a8e5d9ca1dfffb92c4ee035885c5102f187c5b42bfa1c1fca1b8180e5913fc97cc2b5632de77f1ce9793166b4be6a250c09166a579678bef632cb7c6a1820c68f74126541d563a938296cc37565395e8e6661c67a3aea43b6544b4aed3511ac4dcc5434a3dd7d4d4d166b99957b2a59ecc8abb3e67bcc5aa4cf617457db1a740d1430163539cb354c49a140487802cc0e0008c6c4320c2588d4cb0db04c4dde14d541f74e6a43ccca3833cc9d98e4fde9370c8084fcc2841f8c1400d4c0a4070c02801cb6cb35894cc3545158cff619236584450fb888f5b830c9ba874c3582cf06c9ac476e9d99b198b2140782eb307970b52fbabfcbcc2eb3780cd1e033cd6c67c48958b6854cabdcb737a2c7804122d7c0b0bd33372216d74635dd48c31bc96291f93454628c389b292752c222299c2b5736d73d777667e99258635be54183258faba91e9b454ccdf2081b21bd45579f437b0240a0000a091d059908009cc26d064c670c40de948f0c4c8084c48a1d8d84c338c27c000c3210f8e5292a4c3c00d8e6a132018b7eb51afab81c8fdf98eaf74ac65f2aae29bcadc623f1c84399f0ff11eccf022fffb92c4ea035701bf12af60adc329baa1c9e78e39eb51f4d148c7a1a8af973888b7a85ed89a4ae5bef8d449b72d7c55bdc7a3745891a2432827acb0cb052d4a0640dcf1c81ef2ae35d0358badef81ae3bdffdb58cf74dda296adf9c18f118efb79bb363fd477eff6a54d70836f62b8747a4796fb6900300d40643008810b300b085731c889a9330c868a306989e4308555ba307582aa30ac40d630b6c802346a46f7309a413a3025808530144034300b001f3ab10b654d35954b5dd8269222f244e5d19720bef4af03fb4f3e426944b2dc3b411d98a5d5fd472a5a88cd5e61e890df4d56a7ebab8dadf3d69f3cb46483b266afac8b659586e0d341da2cc354bc2b5dc86ea552845dc3f4266dd4fb6513a9ca16699a41f7d1d9f051db3286322e563f6ac533d655172de7d5512c232f35ba7c1533d51b190ee627b78b28d67a793ca31056de425798465ff8eaa42c8a35f6b5b363e4e147d39b856558011053ecc39958ce3bd580d701774c7e4590cb45d20e598568c1c8284c5fd614f5a58c0c63409cc1400a0c05c01cb400671081c65fd0c3bdfd57756d9329aa1295530180a65fffb92c4ef021628c3152f69ea4b97c1a145fc19b832ac92d5fc1bc38b8936f21cd72f70b43241d0643db45888752db9b270781a9310a48289a1934f44a009089455d8571cc8a03efddcbffaade5eeeef9a57d9af5c2501ca39a8258f545e7234722c95b3387e670929decba762987554cd091966a6298a8910896182abb994f3d74ab45f718c2a8c99820013984381f191808b19f60f61e348ab9885c0299f7e3c9cb60b798ca08c99043849ede37118e8052983f82b181d010980f8071802000a5731c86a0e9a7f666f6562436e238286416fc7d6ac93ea7a6ad4aeaeef615bbabb5e6e6ab5e76438062dc0d3b967334385fbdabff0f7beb638e9bd4d4d2ced944050420a360fd0060d9a99d1b6c58895cd4af01311982208d331d41d896b989290e73d96e4511249bd2888a6140caa9b2293b0ac491760426f0b48623657920589031f6d1642da90488e4d09e28222b5c73c1ae42aa611800030070084d5308656c367355f32d4528327a15531abd1131b31e130bb08431544343b6a457316405c302f0250700a02801d391ff5a90887ef3f7ddeb0c1fc8edc7dac4fdcadc4ff8fffb92c4e9835745f30e2f3c6ddb3abfa181e30f89671abf5374b76d4aabe14b8b993557026009957d35ce5aef7596ccb6937d49d8ff70f49b1fa5f3c02eb9770592a97d272df11b2e09e0c59eec7d38196e7a5b124846ea78b86bfba2f958b6aa62b69622f6352f5746bb4c54e869f99137e57e9032a78b20ff18352606f7759803020800360c2a5d80d4aa190f1a113cc031fa0d5ca51cec14544c5f4650c80df70f82df44c6cc2a0c2c017cc1140c0c09005ce2242969db6c0ec4352582aa4ba3d3586087f52512ef94a3ab7d3d73562e6fb452ea7b5564919a0c5f729aad5b38527296beb3bbb2651fa6372d10f2761a5d4d13b4da8869c3be18caed05ce2e762630bdbd395277c2a20bbd4ae4ed7be468f30d3507797752a1e3bb33d569f993d992f59f9fd3aef99df67679e7bc6deae1dce8c209d655776978c9adef59a8e1b076b1154fdb896d372be6144fbe6c917512032a0000a9b8300201310819186b9c119e314e9ba69ab998082c1a3842b1b0c8970189a4c46cdbcecbcd40c53423cc0f80b0040560a004417608b5c759d0e472bf629db5e21a9c3f0cf3ce147cc1fffb92c4eb8356a535104f187c4b54402141ec19b930479bd708b064d7dbbbf9767dc2b97405eb3ddefae6f4bef2dbbc45de74f339ac7f703253206d1514c53843049753410644a34263607e70cda36e6ef74faa08de96e445911ffc2d7372253ced232373ee964b7292679c38c56fbf4c8c909bd0cb9d94b6a7cbde343e7a1d6cf06c885e00301d00a304a02d31a92f5324918435ad520307c603317bf9a324e210319c163318869f3ad460031400db309f0543040039301f00c0100897ca89a896ad3965cecf9ec48e860a63440b41e7e2d2bf0c715f3cf0f39c4463856760c80f2a4faad925a8d58718a987740b2b22a770bd82f25a72b420a751f32d639c9eb7a8886f9ca23934de31ddcd74f0d732e9ccab56b3c70c4fd4f8b0f4fadb1095ce1d8f37aecc7153b1cbf0d3eca78dc685d6467fcf6c68deee5bf4f772ed8afb3b1e959dddfe65ee9f09c3fa693692192319400c0ac0e0c100234c335884e358b4cec401a8cfb8708d835ee8e0b8348c66426cc4d0e78f868e04c6302c0c1dc0d4c0c00280403e180088fe9d0f045e2384e5598a5bf63b7e14f25265f9a6440d94fffb92c4ec821779f9110f3c6fc338bf2185e799f1b6f4a2231999ab3b857d5684ea79178452273ebb456df7f479f7be5373f3a8fcaf36dfd85cb64e1d56bd03eea2b30ad880695c4a271c88ba0b0721becef92b520c1a69296644c6e719de36444cddbf502b654524555cc535c937e1932b0859b1466af9213113025527517ed94c43cd932165be421e164541b85a81200c480ce60ecc466fc63cc686e9da6132bbc666f3f66df026a6426200631abe872a2a96624a23861040ce6072070602c02a6006008805939d25e9662dab7726b82b5c69bf7cc5b9c284a98accf60b7b0c5dba82e30e04591a428887a5a0f8111591e2da958f5be1b374b5e7f24bba09ee90c191a90b4041946521d222ba0aac2e759c3a94dea3ed1ca81a0e81ee07760cc9b29fc415e8aa15f340c713d16a7d323b98469d296e7e8c690538e40ab0bc6f604509e9b1bc43d98c8481392ac3031b0e45c07372020669004c00001808260d602a6380626624c48c715674466be5aa6665d1261ee35e6208154624e6967b0e77462da0a6610c038606a01a1c0485f34d44d72debcb94b2bdfb2297b4ccc47221fffb92c4ee035916070c2f307a9b28bde185e78df96cadc907c5102f16d1c9b56de3c4d6313e2c7dcee62741ed8293436e96f96cf0448f465694611432040d19f8320d0209902d20c81e0c1c19ad22504c194737b29391b2d2d4296f051ab4d38ab5d9b893ac62dec67c4840408eb7fdc91431cad7cd9d4ba39a5b595f733eddf5c1211a2a66c6670e1f53c9a957b26d510621033db260c0140204804cc4f9308d5adc74e6f8fa0c5d9bd4cf0a14ce0b4434c9a828cc6e99dce601678c55050cc18c1b8c0b80dcc0540600000a8f4ecca9c17e9c990cfd3d7bb5a96917c41d5edcd5e47755b8de99ab249ebb73777bda7976f24da1e006a2dcba4ba9653f6adbf3cc6756bd645171e55d4390714c4d864468477a54a356d1a5d1c6f74df6b3954ce421495153a4e2b19e5153ad2f87b552111d24ba0cb76b873d2cfcd5de0bdf3087869394dbd26539aefbba867b896fa7cbf786fb4753637512baf7aeeb87d90c61f55ba72e8935da0f34ce5482300a02d0084f181224c1979b1819c124498fd13f18a73ee1b31863180b81b989015c1d931c6989d0008082fc140783c026900a5efffb92c4eb025932050ccf3c6f8b60c0a155e41b88c91ea87e5553ecd6ce6e9e72e5f7f2594db994fd1c19beb393eb5ee35231a9f0a81a1f8f44b5762f6fb7b3d8fd9cc5e9ee8ba73a65e7c80dff4a0dd6886db778750d9428913f1091c82412f9ca3876d7a7b77789063714b33e397b553553076d5e9939ce3aea5bb5791e58f333ca65c7446dc14169a706530885d2d9f1a9e16dd5b6f68300c013300f044304d4cc35222bd384107431b75243098bba30ab160315f06631214c6364547330e70ae393b345230852d9359bd097eaa59a3a9f4f7bb5258dc6ed24a31a25650261a131279081f9c4cd38c7a7038e081875b895654b31dde083c763cdb1acd9103db874e44ab6fca2b3791dab3d45c570d8e5c8ff441d6d2976935f14b70b352e6f5436325b75c9e26d2feee3b56a1888d1ef5c4d55afd334c57308bdefcabc9ad0fc5a523f5d220c655a1eab490757099433a2f7a19003021016305600b31951d032f921133a646e31532313215706370e1163043035316f2d13bdd38031710120304a0d0198f00224d368bae9e9a6e9aa6e5d6f752414752250fdb90d0b11563999fffb92c4e08356ddd70e0f2c770af03e61c5eca169f974af3c2e2c8f5983de9a838180f3eaaea4bc9ef0578dd439169cfabb2db29964f1c71abd9b77606f966c5f14446338c21d4243a45dce0a47f41c329d1ba6d8555b0d19a19f1c8308ce247c198852120c3135dca4c2b13c26662ca4a659113f9ee0d029223dba9d6065105bc35438eacb55ce215a5acc5bad18400701518180099884a079bf51a81bbf1d2991527399ebbd89b91058987b063987e2ac9b0f2aa186403f98188191808005980080004746f3f7ce0e4e2f63c79170ac7b93bb119dc290ec3ca0c664a7de350b3b81979776408e938e0b93e8ea4545a1459dfb2da36668d26c1e63da6380570bb8313921328d482b29a3ee2e6c0ba550199054742cf16908ce0a95d6de3e66b50f17561341abae7aeafb1be5c319c8a88a154199134aa67a2c763b73882cc3cd4b812d60e462a3012f117721e93c34892100030050221c093301b5db344f337391f27b316a23c31b7d75301d1ef301f032318c2783cce2cd319c01e304100d260302600b0221271701b88bcf55f5b6aab728a21cf121bb92e2985ecd1ac4793bfdfffb92c4ed8318f9f70c4f3078cb083f2185e78dbbc365b42973174a62815c8c707d7aaee0c662c4773da4a4f7333a54bcaf950f98ab3d8eefd58d3a637c89a26f6eeb6e8a8beccdc853c54c15dd937edf7fc45e356d39ea6d2c4d997bd29adf768635c3e34c2aa5a01a2235a335aa67dd49530eacb62b90a48f36bbd3eeaf75dfe97388ceff188ed735eb7e10ce5f2e4202860560ca623ca62655a398655eac0643e89068c0f1e6eee26e61d2248617ebb86b5eb72613e110609c0766036024600800a89cb1655c8bd59b956133c9adbcf4d25ab775f42b68d0b5cf36b1e59775b5f8daad90b85f7b63343dccdf969d74783cbc21a669e75a9a2753d05028218831a6db95b7ed34e669ec49e41b48dec626e9c2bd55966466dd1b3327ed35371da92a4ef666d445dca16ad274fdcc59d9da694859588333378a68c2e20a4bdebfbfd65976dab75dc9ad374c534a178a689bccc9f33b79b87274b8a83d080480240c08662540a060346ee713424a62ae4e267a0cac6bc21d0613404c626a2a6754228862820a2607c0204c05e2c010b5d5c38ea7563f5a78fdfbdb40c3c492dc7fbbfffb92c4ef03597e070a4f3ccdcb33c0a141e61ad11bc9a566624ff1e0efc46e9678f08f42ba36ef25dfff3eb1032ee3b7f79bd47ccb7e4037a7d2a205930320852836243b1c960c51d77d925327287e08019c28a4cdc9842c21e694ac80a0e3140f093a66f1f30c0ca85444525418ca521448aa9d66aeab6a15dcc4f83ffaa8e76142585a0a40549f2b1de1c3216eb108180f019980c84b18671ff1ba3a971a7fa7998981bc98c8e1318640df18a308298542a79a2b277183305d982881d180b011980280416759740ee4995c302bd7106eb5b57b2a7948a4cbc8aae3163477b58116f5c62b780f1ee9743ad51b9e4a446ddefddeaa16870f1d1235a12e49811dea6181d631c61723a0ec936614a1aef274190f0ced7078d79f5e4d22d169e9ac7a22dd23a440f6e17a6c91efd20db576cc49a2c82c8ee11e8fa1eae30fab61cff39a73b08967435c5fbc2cc2c8f88bb49b7feca3e5e966cfefb9a59b4a81b600b5ba005f5300502a30203d633ba11f34b526830f224632d74da3414068306705730c408237c609730d602a0303b8f010251afc73dfc7627b77ed6a66b123425f95fffb92c4e9035812050c2f3c6fcb3dc1a145e7a1f0e3e96ebea88188f245ccd6544271d2ea1ab5fb01366dcc3ae99b548bf6f1a732aaad4a313d8b0dca363e9e62b6f9cf6edd2b1bcb8bc64b692cf2f3af9799647c4695c178bfa9316f69daa4da436f2fd0fd354734f2a9972364e7f9dafee892cd2ca8af2f991e5c8adb118976d82eecd86ffba90768c0bc048982a0c575138c944f1cde60b50c05ce50c87db74d6403b4c674280c2cd358cbf50f4c174380c0c011cc0340800800a5ee6531c9040d5226ca676acf93d30e30450ddd4edaf451a243abb02c7ebed6eb8721bbeffd64aa650bb5ec6dc8e3a47b0cd6f695769e76bb0eef14efacddf4f1147ce5ceb15ef3adc8fc29d1df6d6f7d716ed3d51a5eaf21ddd9d18a814531d3ea9aab2f374f95abb9cd3e56d51a49d9b6acbd291390bb28b7f3f34a9a776bd7cd777b6697865b3eff778ef75712c65b4bded32d5c192a004980e01318918f79ab72d6193d23998b79c198ed5ae88c4bcc000248c48c184eb84438389b8883707815c88054880097e36e664c4e61756fa1d152a7c8060c471694cdef2e4d7ed9656fac511dfffb92c4e78216d9d710cf3c71cb24c0a141e61a3912c8dcd1f9ca972f4f77cd3188966953e8af06d8ceab4cbf71719feed96d4a9d8c2d3eb8d2fca9ae0c3ac993e71d3793c4fed338626cd3e178fd5193bb31cdf3519a816db8e8137dc8ab38e474d6c80bbd85cec6ad8f6bf88e4fdb6f6ec61a9eb273bfbad4d66ef8e55ef52a547f8b7f6460843a06848a0050141406f306f4053266467381f0f030203f732365fb353f0b5319803930b045931c83f4305a0d1300703c30000170a802232b4476d3241e12874d1e19691eb044431205cd9506d5517f056506aec95a3cd410848dd21943b755af6d9732fb291224a33d084a34a65b1c5b35a27cbf9d395b6e86db4cfd97b832d4fe3b3212de932b199c97d99ab39d025af4da919090ca14c5126a97a642ee0bd42f1e1d23adfdb6abbee72e939e6c6ea7a5ccb4463cea8b655a7db4dc6aa8d85a08a99b70be9b6aa5a3c4a1da00920180b80d1804030980428b99f486119eb1ef18bd19218b63721aae83e1842023989502c1d020ad9896021982e8000d01e8d009216afe720702596515e555fd7baa056d2c4a4d58403a6d2b12fffb92c4ee0258a6050a0f30cf8b223ee155e499f1756889651714a20b538098c50fccf752d0e294918210f78ef18362ac7c3b4265f4e365c6b1858a65b33ed43adedef9a65a8bdb1f52c3b2198e21ba2d1763875a4fb9f76d54f8ce62dba171f284c622936e54d3eb2aa7db5d4b442c56378bd237b81abad1f0976d475424aa92652e5d169c20a267b78774555c981780a989f1b999c200f9ba71aa9889a3418825bf18498af18ad819185ba5718cda5598308570e01b85403909ab04a3ae8387d8c29252151638a569a16ca4fbf60b0fb20510d63b2c74f336bf574ac3bc5b8daf50a6aebdb62d472965fd3ce982d365f5a4cb2a0e1e53df02d0d1aee69a8cf82905a4727cbf787f330c9aa79e6a2551f91e96bf38404bd9eb4b0e45aa6e91a32cff565197370bc7987b9c2ca27d399f3334fbb647ea65c18457aecccce7fc9a6245a05e41b7265bbb633651685231afdcfe64ab7a7b15240003004015302b03030f419e370f11636cd26f31872a131bf50035340da2212f312f061394313a312704403038838078bf2cd9b47fcab11563567e7873b07ae3a554851a9151e944dffffb92c4ed8258b9e10aaf310f0b2ac02101e619f16175142ad7ae64ecaa65130ac7873b9162e8099e77a5f2a71a21bd9865255e503ef01497ff0bf555a5dcc0177f547623788bc6d7f1fe5bbceb762ddd9defef2ed35f6bdc9d94e7b6a1856efd2389c5b33c62e9a597e712a38a4dfe37496d1e5aa275bd3aa18b7f2ed5fcfc632dabccbe734b8c972a48cfad4aaf2a55fb520294980180f183015f18d904018a0931187810e9903a0199c802f983801d981c1569844160180601988c0113d5b92f96952f1fd419184472f9ead1385274512cfc0c3a84584d04690ecff95c7b9cd3aef27088e1f632879cb9c5b1b113d884cd3732cc4d3838761238d099146519c1b8b6550f2054edadafcc51d6534e4e33e60ad8db0fcac75c4cfaf9fec0b31b2a42c19677b4fdff5ef8aebad3c982c1028c9ca9570622eb465040580fd18f241801c0646064054619ec70602681671e80e264506a0628374e3034a1817262fc052765c0ba62d802a0a07e010128600125831e762c47e55370e405434139dab46d86cc7a8a8e969277709924f72bcfe32cceac7a9afdcc59186e8654325259b3d2fffb92c4eb82189e010a4f30cf4ac4a26225e60df9b2ce7a157d1ec4a5ee6596d759759e7fbefb671b7d232be638cb6eddd5b7f4999ea3da67eebae7118d38a3cc94621cca7468e938b392648f92c4ba28d16c6d1e4dcf47ff904f133d87a10c475d2bccd2c0f66b4f4f469cd6288adb4a2650cd53ea866c4d427fa5ade4f48d178268b9e9e5cc995cd6479d4957da63c39e4caac2802e0804430d51d031104be33bb33131d522a3332503350d0ad308709a30233cc001ea8e8291808009834011789a46ec8e99eca68aabdb332519df3143c52f2b5c91a9965a35c9a9a58312247de8ab416e0d6581077a813e214d24d6f9483ca1731b25162720d77bfcb3a4ad6fd334df5ad8f8c72e2ee599edbdd6753136c432d5377a5bbeb37edb09bf2a706f8479f3d575abd8c56b2b331ece6932b18ef2912b6d6449cf66cd56a3ad27d34b672ddef113d8b7cf39d241b97e1fe07cd415230902832a000160910a0006542201f307712333e22c333bf1fa311d23f320c3c63389074300a03430b5096363108d030b79580d0b0052bd68502bbf4528b314b427e5b6f9f75a56eae66482f1c2fffb92c4f7035c0e07062f30dacb0f3fa141e799b9ebd1562fc7e1accc5d80e8062ca01088ce81c6cb462845a66eddbb56bff0732eec2787eca4afb36b3aebbf6d4ceb081f133bd0e79850b4e352a039ee477a5eb118ce6dfce9b428a618ce320d4936d13cecbbb12dc5132366bae9751c38b57dfa4cd4412cdcaec0e41fc2d8ebf2996e88103cc094070c0c8154c33d1dccdd430cda18690c9005d4c7365f0c2e04f8c35029cc010ff4c62cea8c05421cc03c0981002684e2724f917a5cb12bd088a92c456e8d11b581b5f35c795fb3c75edc67b0e34f99dba4ae16468aa77785e0be62855a6ae4e3133d254bda2b474d7351995569489f6e81a9d427a20999919af9f9dac82749c11ba32f22ae593c4591b95da16aa7524d3a85c4bb6937264106b3d5c9dedb49299dea6e509b43152e44fe96f87b0dac7f44e3df9ac54941915744a299b5edd56c8915725eae0d40a2f375ed934b49e7c4948a42000670600a022611081a6678580629864661a069864ee9bc6868100600a0f661902766ecc230103301c0dc2404a2c00c3c4b556489da30e63c271738ef63df0e12bccd67b5e1fffb92c4eb021759990f4f3071cb4f40e101e799b8660ef316b165a40bb872ea36b11de468f0623c57e9bfbd4420a4b0bd4512e7e8bdd44a6eefeda8b77cbaad420fc32155dcc8dc3dfe5c492d6f511e129c9b7f65fd30d4e2ddd6c71f924d6d32dee134710b3f271f2cc779ac6f3d32dd8946c4590d73c9561dedfc9b7243e6b4625f5acfc77c2eadee0b93eebb7ad8778bc4da4a56140166180d811987009c9a5496f9afb89b18d186d1873a4b99dc04c98738280a185193914a98120450800842e010b026124d74e0d3159d9f198f58ccf85c394b37bd9f3f8f86f91fd195170e468ca8920c6932b647bd9ebd9758ac8e0a488814e0983aa5472259f2387db1f42d04e4f106e7ad26979ab369d7ee731c3b3ebb9b5fcea9454cbbf53ad1bac5193aab2f132282365d465b63654aa6397b7ef65a975863f9a9c4e5914e91968a7734bfda2fa0dd377d762b773ee7d769a667ad2a4ccaad74abb461f8d1309a00294000de180580918570f518e58d219c114218029aa985b3db980e86f982783c18608b81b5d881985b8100081d448078380159b36ae3a25ec18fb8d2de24747478fffb90c4ea0318ea030a4f3ccdcb29402149e799b9187f17dcf49ab1695837bc07ce5e7babe139320cd534ebd01c1f3fdc07ab922244c40c50d646c2b6a875271e951d4d604b4ce07ac81c1526e28882cc96dd553067203345d55430eeca4cb60d2086e9909a1cb5410438c8023e9c763214339d8e294190550ae1de92c17b24092038442a9bc360ce7530204b424330ccf4e8776c4ecc6a207216540010681b18181e218d20ac9a2912798aa07a988120899c082f8186f470a6ccc4c950c0ac1e4c56190b3c67f187fedca2e4509381a9eab62216624c39c64a210872207c4c5d4d1c180f45c571f554c2e7d8d9e126da2de47d5106b63a674386b37376f4b66713d2354256554d420db2c6b9f4628c14a839c585a459861290e3084ab8664cd1c94efb9e4452cdc50d3587b444136bbc55f1335c2b9a55b516346143ea9e495299cce6db424e9a32a34781fc8d664b3a3a3d086df3a352c5040078a01e183c97819479511a9a8af984697918ce26219bf831185302498610b99b0306c18580269de709225c660b27bcc12487ea0713216804459e53996368fec0c729e3393520fffb92c4e70258fe090acf3c6f8af7402141ec21518b95a85112aa5cde5da3b88dd9230d9993ef6f673b937c32993237750c7f3623f2d129f6b6f148617edb9b081aed64fbb6b3977e258e0bfdaf0d657c68a5c9a7a2b840fbbacf1876b397a566ff171b2ced365a0d6ba856c93f91eb75040a972cc314ccfad0ff1e9b62f69dea79f3a9bab7dc9d79a520a00e4b930b312035a022f314330a31610fe30de7ec200d62216a30122ba33c82b3303e06230150154505f6aa8e1be81e349f78a04d150f2aa1c36b8a8cd9d2411b07da9a0a1b4e514b3579e49c38b4cd46812c91b53a5a6e90d324b61496152e9ba65338e58fbaac2529a24c8d2c8ee03479172c63595ef252f8fa943178f1f62c89ef1b186014e495b331b66e69eb48bb5b904db20f88af125edec4117cc45e6f5d8aafd29f0566366e22b3fedbd3ccbbdf8f06274795ab7f28c975f4364cbdd1d29929d500400180f80b181901a987694298c98c09ad1074987c15099089b51a07049186e80318758cb1b0c882986382b1c08982120ab0e81754b5b1a8f25348a2b52fd3fd2515bbf953c1b6585a7c1c14fdb4130a45fffb92c4ea825786050a0f64ca4b18c0a115e499e1e8b12729979a4255b04350bc6c45998e56aa0ad87259ac99028e5f83e3687a66b391bafb069972c44a79982d94ef3d7fc4f9df0e5e596e553c8b49dfba4c5679ccb2a0c7ecd850d4d04b10d7470da2bedf30db5f6bee6b2053272fbbfdee9d1b2b6e931c74e4c17f5c35c5e996564f6bf986a285a8b64acb06a8e80888906cc9c0e38cbdcac4c4781bcc9e54fccf981bcc13806cc0c4a0cceecb08c12c09c140408a6bb1c78444c8c4ac9815a89956d83eb88d568d953885b82c9309b5855a6d65d4654e231c6728965b8169075560a2caae89a815df1cd5ae60f8c22e0731b75286a8124cce593c313793b5e99d8a311a818d075635f12baa2fe9f15b4fade18cdd75b66c3fc20595295a0ce7f3d28bbba72cc625dbde927e8a14bdcb2c5cfb78b4d31e627b1998536bf8da728433b6d73ae598c1785d59cda7d451852e75d002a020600e0ae6158516641e7c2688252061324046128dce616e2062427a61ac3366afc2b4617406e60260085a15366bb0d4652ef3a4cd171c9cc83292555660e2e9a1e324f08a1b2cb3d44685fffb92c4ef82d9460708af64cb4b19c12115e499e9c07bc8a9946708175166d2e7cd324d169b1f22f4fb920bc9598f2d8405c1b9e40c790fe1036554f2e76118d87739340e79513a40af2d524a9cc0f173ab5a1ac8950ca989974b7731d44dce6772b65bdb2948b229d1138facb828a252b56572adf97871df330fc477659e9c83ec5345320618d73b5986336f7f2ce5d003d6936614810667463ac69f82e861ae0ba650464a682a0f2603e08860904a0672452260b40305df4547ed227141e2a7b96e192c9245ce28404705da24474a6af06e10560d5377bc154994514e803a43611267124515d13387106225a8916fb6a8b640b30d5a7d387e4a8d41abd2ce45045336ff5dd49c8210573ac917785554984baf5816b366e586a7b873e6fa69cbf90d267a4b319aa8b98e068614c6d1e9a50631283e5d230d3ae6cad3dcbd3a7c4277bbd727425a9361f0d665a58b8bb474fc7c132bda30302130944432aa9a373088359aed308dfd318c4783377098304302c309d1c035051af309b0060700e838009415e68667a455a59220411346a40d553a88c71428d855e9f09930bad88c81fffb92c4ed83595609082f24cf8b143f6101e499b12a2efc6973a85165c783aa0d4d32d481fd965ed5a66c9e6a5690295973968758655869292362e8bf7949ea6945e510a25179a470eb636a71bcb1508f29335c85b113309af0caf0695a5455d3a385617a7208b116524f4ba6af6ae6979874205e7a2a0e9dfd65e2cadd271467433c3c558ec7ac61d7b16ef59289f7888aaa23034300d36a33a701835310a430960d2313b67630de0ce304c04530572033391204305f03546c46f761c39648da3b4f34020805a68561446f12526804abc056c1485a3229db9b712c464bcc26914db5271129c8d97b784b0e2f6ac0c2db2ad34e5062e8ae5a93c72af51dbb627b37ca5b206ad2ca424d4361d02cdd48e926a872a2db6fe44c914ac798c6f6ba7b828a3e0ebc4ba564da253b602d75ed9a75ff18759aab95736182649add459a776b1169ff38889d61755766e26bae6bebe6625846932c54f3d577ccce308726c341c02a330824c305623631b334a338c048302405b30841cf34741bc010788080d83002535a132ae5b9c8bd74cf6828a34283681d0d40086132e5529e1d4a984912fffb92c4ec0258c609080ef8c54324402115e499e967a2340f811390338f3957339886561c4bccef37ebca09614e7536563ba7e34c3e6ef352a39f5adb4855cb93762ca3396c4aad528b1b84db1d92370d29232264cb4c819367d6bc1e63a5735441937ed0bc6de4cfac8d7ed6915a5e5925c3e475a116414b7966a899d6b3f33e8c6e7dee365d2732973f9ce5c1b38401460c00a66280c67629a7a141662896a61a282665d80ea0610e30441ae33d216f30540480b802a94386fa5da2bcf9ca6f112522d9469c386812303480c38a474b2c971045083cbd48e1e4cfb35f87a640f8c86a48910513084b08385959d28d39b58ac3c61d682bc1067d859a4714c64c3c12fbbfcca7aa3a04d4328505629284d23914d2aa04d7675c62bd21786eacbd9f379d1db23ef2db1ade0ba6ba9358f968206fbe59884673fcf2b5a67e6555463f4db11f0b745d045fe3641f3aefa5a914e701d4aa0095493e608e4f2619448867d61b660823ea6088a82611e12260a609860be33c668e2b260aa03c602c0025d24e95d4fccf8f27e4fe3664fdbb3a8cfea7d144054f169eaf4726e7bd19845e31fffb92c4ea83d84607080c78c1cb0fc12101df18a9849985a66110196e0a65e49924e4ecd4c424f78b16c2450ab6227cab0e819951336c6d3189e9a94f9c2ed4d11cbdf196f32f0b29e9f59f9db9b48e946af7b776ab8dfb7b45225e7a29f35fb5ce64772e390ef27e907ef153efd5e453b644778f5516c544fc7cf6a8d3624ecb27185b9dbae9eed39181a0802e071288e6135866ee64a6134f064c08467f58a7798b263e04061ea7e682221c60ae0860a0204c3570d7e0497db98c253ac2925b2abf6ab6e5f9da9f9749459f491c61059602223970754890f6d870faef5ab74c2481106d93b48a2057fe4e477ac34c3be16e498c45b9f0a99f07dba796a4c0da2d1cb679e5bd0bf09c54a3706ad2b8c4397c18f46cc25e084651663ae49eaa8e74a5df504716e5bb9bb8e57ad3b292db2a0db339c974fe4992bdb5a4534d7f64f96f26c6a496452bc219b3bcc8db65c255000019d6501ca4b53119c93c95123e78c93019cc34836e38e44c32002f3129913a213031083930340848961c089f2194f60d4452b8e09c64982f494db2403cd5084c9515d0a58d14176d9d38c87eb113fffb92c4ee0218b2030acf30cf0b173fa105df19314651348309cc9e0960250e2447913e0322220d27a51e063a8d38f90d54e62030f8087ad87351a3cd33263e763f7937b28f2f7f3138aed0e7c3cc615956db2fd5b4f4607754c5b7963be33e16fe5f6f6aa6b217b9b9ee548aa4c3bdb3799dd76a5a30ec9bc94a2b466e950e7078e6e06846bba1b32001800002980c80c185203a18890af19278d2986a809982e250182503f181480d982006319c306d982400a0b011aac81c701b4a8f11152343a61114462215ac2272ec2e6e088952d690b7271e71e57560f9ec460c0b3e6b9119497e5e98394b312307254128bd6972c7a1b745fe8cc205464e9272e937c5e3d466990cd967276f4b7c7d576be876667a461a5333728d360ddb73b4ee7dfda26c94977b5cdb2fbc5137aef4f665c3147ea2f3ae8343c148bcb951fe59930c77e74c666cb9b191f633a7a7d170a7579141f00c8c4ac58f7f9b4f1f7e0c3c7dcdbf928f0e110cbd030c75798e81614c4f1400807a0294a5a5632eb116ad4cf8731e487d849b8849a524802966db1e28d70b721e4d03006d4683a42cfc44b45e12fffb92c4ee821851cf0b2ea4cdcb293fa159e499b98450452f42e4c19edd1158e4968acda8e4ae257166b6cd8cc641380ba329f7334cc98ed881f2db0511248a346a3862b5a1127627b52709279712c8a93cd29e106bd8c9c9dbd4a532d3862786b224a31240d1699aa72b660c620ba30e8823b705d177305d99478805c4177d738cd6b4178e52e34c5004c096bc08121887381b70eb1f8c511a24341b37e69cc429808163164c33f55062b174982d4e26cc373d6a1f3f69d71e74f02f3b1c8f0acc54c570a8b86a24ae3878f62b38df58f0f2b45a59addcb741f4a6c3ac75283f58a01d0d490ed51169b8e9b260aa2db588b3c461a0a4f1e0aa30b94d11c5e772aede4fd3a6acd8bb5264a0ec4d7005ae8dad3e97c5e14ae7f409e20591698340ff8022ed5ec964fd82ce6a247e230871471a5bc32b10e5b45957af663de2547eb472b5b9c64f9a30a3e339a8e40160b9e44eb0100218468e2192b094981a90598318ce18612a198668548608e982f0e998f80d3182201b8a8052c967cdd639183c3944f295ae59325d44e229a1914d28a1893453b32812d3cd2d32e10783d042a3fffb92c4ee8258960d060c74c1c321bfe125d619b90dc9a94c826d48010d421879d54746e287268f6447a41d88a499abc4a33420e4e626ae4ae0519a70754a2c6e1c7948f25cc7b63d0de55a64ee1c9e989170b591b741d0d2cb3628c06250e68f1c4b4f8ab3c9a88a03b1a4e6b7c4fb1c7f3fa491f177889995904e0c3e4c155048f9379c998339e8b5f1c7bd9fba403a25decd2a280c02b4104a63aa7e65aa587c899c67d98e6e02ba75886261400463312c7ca1da105c8d00cd05cf0f579e2e46ee3f55ed96ccd43985b5aa0fd396dc80c9d8e98f6f6d57f9c6c3c585f0b1451fd7832108060607b898ec0d828331046330bcc4858be0c00db1b825ed1e56530c608765ab0a85aec306a09052000fa9a1ec20d5293385341454139b10912f186c5c1d9c607582bda41708e418254e38a0a38e8546098a081647040d05adc15a1dc4503048e2c2e2b90214191c5d670e603430edb824a11d00a00018981294f99ac0f099790cf183d0bd98672031928837195c2c641dd1e2f8662d0824aa8f35980adfc31dc2dcb2fee6ecdf87f3e1b8412289891a46960c6845a291c4d8d87721fffb92c4ee825a220b060f24cf8b0740e119d60db92c5238fc59e48eda4749b236726a19d1eb922c883d96428a5c21107e1d807d0e4f4816492ff9e9a0ca0dad552430f45970c9aef34cb36727ce51a9a23910484c9c9c4634c6b9a7ac3a49a322d1c2b0faaca030d1713597cd45338201d8a797490462a0bc2cc993499c84442f5e3bd7a216512dd1922a85864ec8d43d5398858a4440101000cc058924ca9c200c83865cc308408c3fd048c428208c054044c1741bccd34268682bd024b8a0e0b0a57de8630150a06e59f50ab30550b580945028594a1ac93ca30a489304b0075c92f624d24810459aee433a2457dce720411f16829f0dc36b220a4ebd15274ca519a8208629ef49a6a40ab687cc6e2d5bad3ab7ae30e42cd95ff3b14cf64d16fb185ca6d14715acddaf17491b733ae9dc6230d4f2e6a107eec2d3db6afcfdec7a105c1cca8c7d864ffe9ff5cd83de2c8c5828a7007b025c8282232292730b9703d146732054633bd2e39b00e30882b30696f345978010428acd761a549ae66243e17044e1965350b71193a8d24099b309992032fb9c60a3d95549acbc908daeb1fffb92c4eb82592603060f70c78303bfa119e499a1f4246f4508a3d13933828f4965bbbf6fa2cd4c1a8fc55cbdc1806411c3cef125173289b6718629f353cc4a0eaee7c92efa53e28b37e6137aa3fe6b52c0a8d9207b095461e4ce7a9333a2f0799e3985c94e5b5f65f9d849459f646938359cebd254f69434560f4cbf99a93b6b5e36cebb16773649dd7bbd31a43c67100e6313046f4c9a6453846269f662ae366d30ba4407989c141e1816989804223b348d1913a8da826236d8328d94c90308e81187f27d6413b22301766c1163dcd48a4c0393a2d07997bb22448966a68a40e30f412c372099fb45aed02c08d81cba9dcca6a4c97630e450cb8df912910266a4638b3f362e00df0ee713d9c309aeb9c91364251b44960bd390777299653cfa7ab39d034e248d168617693f2940b0821d32e31a62615fc25e75a4b8dcebbb41de2b1ca87253e10fb0e9a024dce55fc2b10214015401c900b8084a4625248c66d823e612c2a26078872620a0e6608a05c601a2fc61722c605014300400141e5e21b861a11b30287847cf8ba3c683802879328c9151b8284a551b4844c54f32b3dafffb92c4ed0258c20908aea4cdcb0f41a115d499984448b49c20a0687024e6096ab3533dfa527872b4d347e289191c8a881c69a9441c566437101ca42b9e1a2ad282212c0e8abb23b179886f8638d3ecd8bb55e4bea638ca38822c5f2acc30a56ea0531d4f7b259b251d79b6ced0c69c8559e6712eca1ac9c9f9d47186a5352ebcdcc45a2933750830b27c9a99284900243811a9acb032f38408251d058c11818e0417ce5b4a4125f1990869c1606982409187e091d9e0898760291010c5a0e13962350808110fa014119759864304cf319307e3509379a2c8e168204658d939747a231cab4d19314a475115766e5a4ea8a5a76581a8ad41039c9a2a2959313677849831c6590a6fac99069cb4912eb10a5da56465f7db297f4f315148bc54e190fd445fce497579f5d2a48554c19944e5e9fefb76c2eb7054ae4a887542c4f6de5a9e4d73af2d8c25dd05ecd63b41a73367cc5c25682d2555100bb44c0619226a1a4a4e9bd6db18fe8e19e59f1b3a2418c0099810a59832841004209001f560402a827276e5a6925ede8d755692b24244c4c4705de3a79ed948971239920d3a484cfffb92c4ee825a660106af24cd8b00c0e115d49999466778611268cb35695ae935e79c55209324fc901eb24a5d023dfc2cad4940c83bb24e4d2248617344503c816309b473e30f416ab2c9ee27bbca2d184c869a90923a5951a8a0e94ce24412445948d11a724929af56791731cf8bc252cec71f485bee9ae2cd56b1bb25dd44a0782ab0c5937ea083809038bbb9e72881c55cacd412945e0ec90469a84048a2e6986a819c38211491a04194c1f9b0c860f8aa0898381a9be00b0f078934bd61784356a116d82d328915e649ba46888342cf5094ea092b25098e89674a6e7542a9324538278dacec9a4c174115986a0849afa1863068863d74087c166d1c04a90b6631025428261c055c1d3796858ec56934961f45861c8c887aafb060632692431544f07e5b7442aa74464c6b69d8cc4aa415ad82643fceb9683426c98173929cdf3dd48c24d4721ce82586323000004a41001070280b981b139a76489a42cf98c8679a62681bf407091ac01468ce035caa1022eaf2b8351e9610464f2769734c958471e0b437d0496463ea613205c46585c4a612465530a644eb2ab2a6e2cbae74fffb92c4eb0219ca0b062ea4cdcacec121a5d48df9f0694504f88052bdb787892e2a2368f409db5f11aef85932ef2b98cdb6db914977eb564728490c91c35747642a329aabc6a37aa3752b47194994aa3383f51229ad38c65aff6aeb9a71a4abce76f66f5861792b269aef8b0911209b1514d4d41aa21d723b9a26a9b91bcec4e1396209af788d2b6989d239a09ad53c6264f383e52660c8d526102ff50200ad497e6202f665298870a990001e8c978a4d100ccc1d038c2b180de304c0c210602abf9f90282364e5cea9ce6a16c029e9333220f8ab109870fa21530650e108293020906a0331bbef48f74ebfa7cef472051cfa67b000818773096d149d344db19caf38ac52e1451753a9fbb6ddb3ee7fe6dcf4749c732d8f6422d1b5ca05d3e9f36a65c59c96d3228664a1f9ef283d417169eb22ba535d91d93f6cbcecf16bf481907b6b95a56b6b325f1e8e6d87f67c431d8000d1e004900cb2058060081e63800c628bd674b24c60b91465064e65b8b662000028719a7e670540f4003a788554194cf4042aaeaae991269205d193898a8813224689b12a12eb887b2664f88a856afffb92c4f0821b5a05072eb12d0af53de159d499a9e15928c08d066b0b9461230153742c248b8e46ccc24b2cf0e825d34916e81c62cbd3c0037d110e649c76c1a0e42a29d2342f6eea5a9da4cfc9b3027b1526a96a7e4d120c59c51452aad4e4dfd5b5d82c147f083d0740b5a7ab334d79d4caf54ca7a9b3b722c6819b6655f828d77a0b2f2aa96c471c5d17367c6272841a3ec1444095da40908405b50a82861426470aaec69129a61a94667a11a0ecac206530c87337503230980b4527165c251732c0cb2d21218138fe40406c515a6a1964245a913f502fa398634eea70493a290ec8913a600e4d24a20129e5afd5c18e5d211f700e6e21d27fa84346579c98833c190422b58bb51cc87471b35a4c02ad9f1b0e8415587d2da5ae0bc2ad2c7fed5125c5151b7e6990c593b3d4746b69ec65dbbeebe6d769787943e51ed89e09f7fc03e2dd3dc7298d6a47cd55f3b9aab597a8131402101845201bfc201e420d982a5598e9801aee2615822083a8d864141c08200da452891109030230f090825209a0150e869600e1a2e80681542d8194d828ab08444b188a90a4034a10ac3512fffb92c4eb0219b205062ea4cdcae6412115d49999526404d69ac2716120439cf4418a225c434b35b90928a537bc0a0c681d69c24e60464090d2d328f8d29b9183a8bd7e673a9494a2f2592209ad71465a94826154c4ec2c2e54c4d37288b69a67460ea6d94d72a2d23dc26cb9dab0248811a311335334dc21851a40116927b088202ea651e42b50a344dee169663d0d2e18b3cb5252068bd87b0262aa64500298dac719b6a79980a918c46a195f6e198422140ce6159006e18be614800b55debc12463848d2e6a62a679528a21326fb736717543ee9ca4d36153933646c4af4989b21754831fa887a85dd0da49b64951c624841c0e5fa348ebd7351adb6ba48c3b1cc4e1e66e1d3d44f72099c812bed6c718dc8923b321d4a2f2e148c27d10c5a1078149b9964033b268d98ea20723730c9ee544904a790b3cb39ea66f7410b0e572c20f7e5623ae573528ac8225b49a8a0d0f1008baa4516b70755727d0b75bda40702863a90273737074c1f66001a86668f87020183204982a679ada7a0b03ca08edbf86ec366455322f271f12158f2977970c63a98df8972742dccc5bc285905fffb92c4ee035ace09042ea4cdcb1141a0c1d499b0d986a0a31621c39cdacadafd0212623470617469d3d13059b8ab331d9f779237649356e78e69344d31514995584081a5a2f442c9fb613a966ced77f5d25c9538e1250526aa196ae5b5c826aa9db5182d93710bb10ab24d0a4db5e737235e283c945eb5f2575441263195947b4d28f74d4275a6863ba425e259583df16d55d19a41f534a06329cd3692b3b6eb56c8c13491cd384cc18400530cc44cfcc33cea54c7e9330df6cdb0252e89860ca72a300d085b696c688526270459349546e11f813a4bf4e4cc2a2aa85dea3784448a63075b4a9993ef29991c469944c69043271c804a2e0c30bcb4871a2a11080c4ae6e909f04e806440909541c81f864661cc825095128e4150c3140f049a53107847351760907ee43cd6d20786880854d8949fcd4ad5a8e321274184d6e87850e884ccbb84a8638972e1ab9987e71e0be868c50030021f1203e6034426a48e869eac06101c66175de6738b60d061849587565e89091b9de86cb0220b9208d35669b93274284f933646a86604e2b148c1dd26243e59026296d185965565bc1a61fffb92c4e7025a760b040eb12d0ab3c02155c48db9e58d0a535594f50a4dc113d02028c1a2643b421669c863db2ad3085b4e7706e09ac8fcde46d424d2937659e618995e811205956892fa2faad94239daf528d2abbcfc4dbda71221f98caff75f77150b2d060e6309630b8563385abde94d54f51901cc5b598b09b928d225e6c2ea2c48f9b9d061b44e823baabc82ac2bd646dc2dbbac6b2134b1589091ee3ecf8039a210198c19669a4c82fa062e371998c20b2d92800c0664380984980ed46d4e25036211c0ca2160da64d238271d649d343202e4791c7419dcc92082d066b9145352a50cd3f7524ed188b4abd79baa779da0e59ec63dbc2bdd72fe6dcdbab483226ddf6df9fefc3169ee3c7aec51c9565778ecfb2562a4d79de714b6ceb696a4adca7fcdf086e3b378b92f274b75aa98a738c9986e520d96feaee669a5d8bcc8eff722114fdb1cbfcda24040a69500002179001604b746230b872e980677a566279386464246848601010980e309a162d0181f66101fc9e51763318b75dba4a5d469cb541909090e48ca561c170d101644a8e4e158f22d664cc713d7cbe7cf12fffb92c4ed025b0a0d04aef12682bc3ea159c499a1d0e18d7be77d016f8eeb02258a8965b4963ca5905d3f5ee726ba7abbaed9f490aed72397adfadff955cef4af5bd545a5974d0e9b8432be90e85d6cb3cde0acb9cdb206ee199661a7000e7b35062ea0e8c33499c0498c3d91391e7a4a69263dc8bc9e6294749243c01a27052568426ee6c24867de8029c8d98b248c985614e98205a0488d0d898b83360e84418054a592316428cfc3e3afa18c6a51300f28cbc240400400513691192e51c99acf993f3548df4f6257060ea532784fb61f19617ecfbf246d075418704069455b809271a65e5ca653953b485ecf8ee67998aca22954461cfebe7d4d27931acac733667e31d38cc919edae0a3eaace716f8515f364aeebc2e357754667bed976e794d0b6f9146e341ae6238ef69f9f91df79eed312857f4b366fa318d3137b8f2f7aa44b2ee2e7337f373af6718f09002e00009a89d861ac8063ab167391a46530e66889e46e301061e80620188d5412cc0c0113ada0ca987d83a0738ba5d372d1a924f07d3df391214959240b84f31259c072413b387c1c36cae6e64b655a2ab3d9fffb92c4ef825ba60b072eb0d3c2bbc0e159c499a14a485513bc69815cdb2a37486db0dcca92a7064cb3a854e927cbe3050ea064bafed23e8cd41857068f3084a1ae206b60d2e46e6e84a847c9576283169152489ad2ef44bc78ad0469121cd25c7e23c744846193dd64103c8d320d8f64bb7739a18662aa19e817a1c4d6e487e587979a6ddc225e5279876aa5965ecaaa30ab264f1a7d9f365a957a78a149c5b8c101321ecaa02d2d15571080146455c1b0b0068c8798a0f467fe99bf83e62101182cc06d91b981c00a6ae952eae4e4c96938e0ad6d4d599132a11c50d01e860b09561b92305358e5be2037c3b23b64d32f0380dcd84fb19ea666c89c418fa5af5224b78cc3c63acdde9859334fb5c629ca68a7cd393a0d486310628b4f1bb75b9e796ee799121f6317592f5e19a591d41a60c2eb409140939ba66b446db1d09865c380af087b3d8fda02c4e30c6e5d668a32fdba0fa8e9381c6e120e70d3cb39726d968eca4ce4d382ca20157a6e986cbe750629efc6c0255196bbe6451298080023159b84589f6da3bd201b3e4502842c413e891cf49ecd49847f97e898b448d8fffb92c4f0025d0a0d02ceb12d4b01c060c1c499a984da25270f4f14a357c1f7239f72c253603145169e4bbd4ccc0b7a8515a6a08a90d456fbb45ef39987c33bc2ad526b7b93d54f5b70e71a535cb1a8eafbdcad7f3b61873d3c171b152caa4eec572e7994479035d728a1ad8578b7828af0c647772cbe763c37c78d861e52eddccbd97e62e4d2aab271e97baa30f832cc405816ada10411181816617909af48a6cc6108d0267c469bdc06503130213ccfc26040058140b2c83abd2c35179f95a8493a242d6078981b4c664985c38f72e0d970a2e40320e13118ac4e0e0641334dc22896b46cb8c5db059b26c1967532e215c4f4a32c88531f4c98d8b99029434a246f54321041b0c7464b3164da4d40718522dc28afa1d3762aad22053aed83841e25e1b3ac84e4bc63278c20b6864daba6ff4ddd86975fb85569c7a912da492769452746aef18a24d56b391c8976ded13b7a690db49b169b79a335d6a9736464356a5e29a261aad9c50fc77e5e841e4c558e36e879e1301088df03d4290cf59a2475f312aa981a2d2d2c20a593f2c155acc9a03a18e660120a3cd2489c4a886448fffb92c4e202169a03082e24cd8b3e3fe125c49a396e4c06b0e0603d2d901b3c106de402f3bf426c9da618e937ca45e143d12622cf36c22a821d5cdf5b299e597048824e7f7c735a9f62c0926b244b4e47c90997b30db3934c3f83a5b72ac4ca387810a1e88552ddce0e7c14b2617b007889b26250c757ab429ab020b21378841b728c7d54d0413e776183a4113c2ab513dcbf44e831e5115938533cc4823cdd91ccde51ccc0b2d8c438a0c580b899518fd07e6f8085373d6652c5a81c81e1e6c945133c6620b1565cca1421b3f151564c2e615724a8a0a9f491ba2a4d55256a3bda685cbad70550513a192ee62ce8d7a4089ec4963106e9235519d5a05231f54a465cb4aa04afc5f1de69dca6db92627443392134ee875340349a042d471b5519892f4688c894993e6c4b1d60de2558a5b886e8fb7b4aa3609a1afb257d22efb6d19a34f5cf42446e9c5a86aacce309b3733b0496a8e176d99a4cb2b1437249162292062b75a7239d2200ac6550c6bacc67f6463620686c41f889f601113cf3016028ac4a68e30a449162f501de77a713902f713a81c8413409626b73d406e69d88fffb92c4e603d85a07060e30cb4b3fc1a081dd24d0d103725acc7409da5de56e6c18416295779632cc6a36dcc2dd23fc51e48a8d44e2f224eaa35328e431592fe4c462b0f524f2ad6bb45044e298bb6f66e45c3b9ab8743a2626d6f39126526f8628d7f9cd5943ddbd3d1b7d91b6ccca41cd272db4527b10d25b5620f65a6a37ceb3652d1410e69f0c6248bb12ca1f4f60b600c9ce13f00b4c6093323eacdac1d451001a4cc4764459e964c4bedd2437044aabf5fcdcf8f181854522b2c8cf351b6dee9e326ce1a5c3d1489555d3d26242347931a7a56aabb3d5911e2ee407a6590bda4deb2065ce7b2c21456ddd91c3cc62692894987bacfb1ea0b1c160f0746dae1f12c28b37445280f05498811225d2a4446a61e70c325039e9f2b18d97ce8932fc60482a0e897758931862cb4162ce357605681c50f16ad8475d8b2cf0a5162fca6402058315aeaa00a27932052745d8b18015916a2fd1691f8940690028c3ef2345c40dcab930208409a333087d881820286d6108f0161158edf42c832ed3095c1ab5913a5245126131060310401af34f4543d4b9536c6921984e926cbd32c2fffb92c4e303d63a070807ecc14b39416081c49a78a7db4114e88bb8acb10649f142f6bc525facab5282c5dcbaf1eb368dccdb4b4e29e410218a6766a204f2059cfd694b92edb3966e481442dda52b7369651569684d49a5e9673902d06d45189460aef6f32f5369456d46364bc06d55ae0e4934592558c2b35a38c3dfe9f067c0e2256d28175188e3f2ed2451b85268b6d2c524282a50da987c8c780469c7d3c60f281998966f100a1f084a865732b9c19501d0f1aa6ac1f1872acc4903ee06cf2860b01120938f80512046051ed8e48cc3ee0691b19656661c2b50383c269774ba2941a52525af7e70a2e0b442e200b7bc399cc483931fa9a91392e0644f0d089e4c8661cef2c5d11abcc2451b2a20be8206aa258ec2f0ae410645251feffd6582492d431b0e9d2724ba50696c6b5b276375457d20a288954cad5932ba05bc9ba6cbf3d329ce453a0f235a06a1ea545ef9110871345eaa003802038b2a6415899a4f274a2605440654a41a6c1cf698140a06c50702c90e8c152123657589cb0b4911a58741023559d1546d0346ad1b8aa1432c480eb49634c1aa3ce83190036129fffb90c4e982d8ba0b060e192bcb09c1a0d5c499609238591856f4031b169cca57749a8e51d9cc0ac7f041222c9bad8e8960bbde48e39373c991d5207d2e3189815e9489cec4b4b2572564d33155c5dbe1b76b318198818b3ed7103d18bda1de8ecf64350852d5050519b244f51fba4b9b3888c22bd373b9fd1b4124f970b6ad6dcf2bc3081f89bf1db4914c63261f40bb8b2cb13b36c368c88c106094c2b743290888006284b32b129acc3d159ec69ad22f7b2e66b9b39b517b4c860acac745c4cbe02a8342dbab5db33d779c318ecdd8f59828e6b0f285a6a7679977eece49d3705e20fae8b2220bb4cd379c3b52c23860ad4693d9b7729a4e4330959ea6b3748ad98f9520701cc3b9b87e9845c08d3cf1ae6ec722f7f4cd02295a9b59a04fd5575fa42c96dfbc2b0b0babbb85c1e8153149831ad31db10472ea34b48d4fd094503102acc6db8a0386aa2af00cd086e91113351e40ca4c5d1b37dc4cfc63c20029a3d201e240706c0006077b41c0465ef260221c2e64545448180ce82ca32e45870511263ee19648d92091d80bd232c71a3b39132a656b07d336724e00f0718afffb92c4eb02587e0906ae24cbcb1340e0c9c619f90e5b288408aac99b3705d12a658388ec561fb5c880e228b2403e4e89668d244c8e64a4ac9d778870dc1614ab3950fa7ae6cf9dd4128b6d97bc6ce0a932563d71d28c24b596563b3924be98832acd24dc9d2e92a2a9aee489f49bb1a9b3d226aaeeedbf73147a1c692a64bc23d2a609d57313962443162b6a2cb76b30e8b860d2385a4b9022369512d97234cfa7a0b422dcdd630a073912c3805c020a18ed981ae52487470c843de242819a99036588c9d95a8c288ca4d32511b6caf34fb2dfcc49a51ef920b568eb1e0ebb5065bc04a14001021616b8a88130687c8b11dd8a2e63adb083f0f2a505b78c4c43ba87714614399394ea933d1c81b2892ab42fd19ddeee434ba1f21aac261624914430856e2c2d4ca1a2be887d4508144bb9006a8f166ac4521b1e45bb90ce9ed2e0c39aa492003402a41c0032ae03501f38e27cbae62ac698bc3aa5098e6bb0229312d100400ca16e0d8f085881a04c56198854151336884e10b7a14e085e8c802eba146404c44613a597d9b3192182344ca2b6d414552144885e153406264b4662fffb92c4ed025b4e0f020c7121428d3fa1a5b48d797261e526b23a17b3ee51021627da8324935ce63109a480d31680a6d39b5956e4b0fc114a0e7f49a25949d14d64f3d490b5a888164d145cda26533ec2ed4ef0da68a0551a5879555b93ebcdf19b136505f618f4a9254a946934f5e9a64689611193d07de4d1948ea067204b2694328958a4ad310d219a3d9eab92c00a2eb1846fe376930e823f30c89cca4730cb18f020082f30d049455dea18613b94e52faba26938544d68d8baa8c46e3f1cfbad7b2c1e22c337b090a7d7b553aadcf30b94890e5c69602c71afa320394bc353458beb5a0bc4a3268eb72479b8eb430b394a1e64da09d687108ec169ae52a4b0fd34896a2a6cce787f2237d21490c449bd7be591cd3c4477946f17589ba549f26182b4f983cf39cad28e41fcb91b89df944074b9815cc539bd09ec6a249f5e59958e95f2d933a95659b41ded3b4113750028017190d0c32ce39802c28b42e218b2306a7022b92e01ce04a448241503c4184241c56141d722261d1123425254212b823149313b6883c3c69b272f0d46b3cd1249bd36c8915899466d8a7ce2f5a4fffb92c4f4835ac60b04adf122cb0940a0c9c619b96234439d2c59424d7c6b164f4568e728411b4b496d566dc45368d09f6a468fa928e4948266ce2f53510e4616e041a2073551dd55a6304b8d11536a348d1310a852174e2bc08755657b7c26e60cc99d28867b8c256b1314af38aca96d92169bd6d8e46b3dee1dc71aa5626944f1154e139455229611ad35b506b31ee793a25e29cbad18310a488a462c359c686e61a20184e6061a080f00c42261087e1e01d30fea258424869768aa15edb12d45b232744590ce28e8fa558312a284f33b68a25123d841d2b1f04a4c59cc993d4af4fa8f498a6926c7bea568cf51a817665a499bb892874da30c595a9e922132413939221ce042aa510d4c969008d62506954f0a72536a311582f71148e589441d16ed0801a8a888745f126d3f698d5f708934e8b492246212a33d1ac6a979f928b2cb7edb768dbde9aa4ab95a422ca9393a6db5ce44461260fc26c1b87bf021c1c67ad4035c4e357e70a0c9242c090a5b4442b05cd2ed51e426ca858f8d4d803d824e1b8e5696e690942d25912329e6679597c32860d379a6582b35690e107869fffb92c4ee825a520d04ae6d2642f9c120c1c499790c0662521355195645481868ed269a081c610a9df88086e392deab9f04e89ed85751e3db205da68feb69ae84c3106cd54148aaf6d7234b4e527346369c8aa0dc5ef74da351b82c92ec4d259469223660da9af74ded6dbda14a047358d172282071ba356853ad4d0f5349e251a8288db2e731551229d1eadd1a4467f2edf13e4e70f1961f2503302bf34aaf39f78119e991e59b900b5818a40b55810934446941ec3ae4f8b2e5ce132046f30db0a130d24e204898d363c3abe08d7015545f66b0a101554d118a0e2cacf08143e4f4de1392456d86ce0bcb28ac10205352418ab36fb6a2b365a65d3517658dc6d8ba6e6d66369dc197453a6d15c676a77a72556d6e4b15beebf7084a2e5dd1822af286223b93373c9a536ae3030e9c59f9bf7ab771622d75a49cfbe08f45f372f6f2a71eaf259af2dad9b231aaebb79ed85c7355617a41092a08ea50010138e604f67ba387dc34023514fd31b0961860002459aaf63f9505dd4edc9143175b2c096a8e53284ac42f7248d089ad1e9ed4a5a5f7a1448eae5979bb257523a66267befffb92c4ec8359b205040ded22cb0b4160c9bca4c91bb90dcad6790685c0c4b4485e5550657c81640cafe8d57fb098ab559d3203285f1c42cdf27c95cb3486e189ba4aa63d3214c6f64c93c62150f9183b729f9863d924cb245a19e5223b27e52074f53273f9c7838b299214b65a486e81be62435173701e8bb74809383dce0e452d97c35063894a41c813bc41234d0b42d0ea27a56a40a9f17d43208a0ce8c9090cf92840e2012a33a3d090f650423c608532188a90232e4a40acccb68ca09e54a5a82a2a0b9b8c2c898e2888f05ca48ed59f653a702112cfe52cd67b39cf309d907073e5e314bc4e40cdc2f50366c982c28d4cacac1c5ad0fcca1a0a4e4835520636a68f441144fa4ef147ca1e67482a0643f5a3350a23278cc208b35abe20f0665f92ae5df25e9a6f98d2b519cb975ce6422fb88ea646f53366af0c336c694520e0a8ce6237b05958f234b3866289e231071174d5404ac1021946f7299c2460344231e360ce6088611e8ce6054e32fae4b71d4b5e3416892578ce8b87aa1754785555d54b42eaff5c89d6fb8c2b55835efcc1d012b311674829884a5b078c1010fffb92c4ea8059ca0906cdb0d1cae7c160c5b49968d87aa482a917e349e00fc101d6693be3adb640895207a48133a8675518923944d1b893107a8276787d002596927448987a093892914930651b01a988a3261af8cb4a048e667d1896a17a608d459344d37a0d0915d520f0040b64e520a31cb5f9302041af548a2145c8d369c417bba6a6bd26692559f63154b3f99483ab0d01390c06c8e2188ea938c288cc6ff0cc811658e93814a22f2ebd3e84241f092464a21b8493bb403b3d4517da9c1e150c91884bdaa9cc066477fca8c32b49c862a100ba344457259fa727995008cab7c1801d0ac2187b54980672210f40c91a5020716a5e9a0a985a2493797932e3a0660a39aa132903cd2903a19d1f708dc92ce1acfb03744d17a9a0705112a810262b58a4073492a51a5c5e03e9586b986a29c56150d9b79b7e5044f3feb2ced22fc5b1f6a3d004c6d4c34902886968a74b5d9e91f6364d43b9adbcc945404b46319643884339263011c1a39a0786239a429ec00c505660b69309c54a6ab35099219d23214636bc0c30482c23a07def6c4ece368996966622aabb3a820c238a13e8fffb92c4ec8258f20b040e30cb8335412099b619b85bb8c5e809a1344c450b1e78bf2a6d65a0d63493ca2f68604ee4513a5884e5a3a49951b81df277a2360ba1368d5b2375492c5503bccdebaa9561ba666d41778d218d7675049364c6d20b275db6f0cb0b2e735149a32418b93496652492262abf4452105f1556e58dec60ac0d6a1c649d47ce3159cb2d120e83487b05209238dd7458c21c4fd2daa419bbf2622a255663d70d30b0a317a5348015744a1c140953a94c6ae32f3079645090fae2828da4a105c12ed66e46e988f36cc082cf0e393602923b446ca892f714934cfce74a2b2444e22f544cfce7999326eb931308fa4ae10316c2e211f367275426d882312bce44aebecbe408d229b059a939b86ac8a0d0f03b636b189434136640a5c2189f6f833daa0f533bd14b5a8954b882d169bde44bcc3f7311774f010bc1970b2d2ae619f60d2b7091d0b7363907e6946074f39b4a47c4df00e49f25398c4c0e8a98421663103a7623d073bd9bafdbb102a4470120a85546132a0924570f210254549c2e6722d9d74136919b3654e5239b2dae8da0f942b03cda81f5c9d62a51fffb92c4e883d98a0d040de92642e4c1a0c1b499b82c2f43b66a41b9e10c92656ed912324465a0e82c0918711b4c26aa8b2055c8717dd6e1abb976cc644ca048b9648866569f5dae9cd52d44922b8dda04d77af86690a48d54e5e2c24f728c924a958cdb60ccb49d32664a22ee0fa2497ca6276934d9021db3c81146b070bb104055555ea223ebb465c81e44ba99a2ba38e6576a4221e8d24a10a77842a48b2118920fa8a4293939ce0e96a4c48a44a9d8a10009709e93e558c7cf028c3cf0958661036f33343d0cf47a295338f6357295936562ce35a8eab0214f48c5b44129354c669770cc522531cbeec06f6baa4a26886259db292c4b31532797b36fa7ed99e0c789c329a4c2a4cd4a9ad6a6381a59de1e79a12c62ab13c8738e2ea5ca4e5eb32cd4a2eca7b48af2da4709c1714f0434f67f8f630b55d1d64b409d1cc325ae2aca6779ec5c4902a4fd625675d50350d9cc996428ec75ac660e1c645846de009825fd0cb571671e2878c13a837360342c14404220141d48f41aa470811c933e85612b122c3af4e44e70c345665a56424eb90344123261e60480b24a11d1b20c7efffb92c4ec03dade0b020df124cab6412101b4997014689a49a9254990d20911bceb3a895911aaa9726373454d81252cc30c530d952ca3ee0ec275d3c6958a36d24dad318a51b6a1b8c54b4e40fbd14d45904d3a65b5745326d86662360951ebcb1e1552d4f5d0b1b05d4759b89f428165d6aa82cdb6aa855f49951d61522a5a718a35258f6c98dd6bb93da908d1290eb249d226f3c4178402e009a8610cc72f066e6c03a1405d6308047d89408c080e508cecf8809d86cd50133b07b2711552a18c9d2b42f9b6bd46c8524cee168e98ad6d42c754c64fad3823790ca51a3a892202144ed7462d325fb49b0b39aa6a98de5cc9e561b0a3d15d16b91a3a32aa230883f379bdc827175a13f334da6731bbe4dd8416ae086063126d03d268dfa4708c91acb238a32abec882689ad9bda6f18447d1664673b6faf67982255963c23320526937329d01b9206a391f68a898e36814a75535d950f25a44c14559aad8b048a2edb6087403b290838e86266852382c0a62e543d28a4d990b25434790c1a213b5174c032cca93791884bed12e9563519ce70b2a42027b1816708c93a4b3889f23fffb92c4f0035ab60b02086d214b3140a085b6256948c63cba55a8da145a3881aea2cc0f67d262139b24796f29efa839d0686765427917a549ca644f59eb7011c7b618d48d5a573acfb3aaf199fea7da509bc92a8ba34e99840ede821b1d1c0f7b066de15ced320833956e996cc974d1b5655f9b692dfdd99afad132556ddfdb7762a1a2fe5277e0dd20201d7518cd10786999b39694c7e7cd98062a421a622296c3ab2cb29223889740a0e1f6de423ae3da2c4a5f583bb8996074b8aaba059c5d8159088508515738481e176181fe2b242c7d65539e33a4e6cba6649e2a08deb9a8b6d8684670ba58803ee844b209a33817383cb740c1736c9874542a5e1059b1a4d93ddb327211448ed246ebf45cc5ce119488d451a465c9584cd90abaa2cda02b33649a8c9575047a236c90b4d64ca9d61f32a6a071053314749102e9dc59b8232382ac3465254cd3328fc5526648135136024d2c554635e86c89368a2e8a92b9b4d6b73a676ff980850f1b9cc932818825c0c07154c5263490e16e31ec1f9b1a6b43047c646789b1c4b53365e5b1b1669874c9f3e8d7624dfcea1e6fa149e4c2fffb92c4e58056420d08ada4cb837241a045b625705ed82122bae5c34b97819d1231d51092782668c8459752ddb3cf4566a2662153480765b3ed13279a89d3041adca90ceb53187bad2f21b21c524448a4edbb57d91d26bbab3c02b227124e0f64b501a7a7ed9ccc97d1659aed0edd68965958cb489b92c03dc4082526c23073b186690a23478e7c4ca51bea4f55e1500c852150730f773ea133ba4051a32e4f12df754441462023152be83693a302a0f67a7e39a93b3e0b8c0964526ba64c3056116336a4df426668130cf20c50a965e20b1325371b360d235f944881be1a713b5a99193b040a3c650c62b1020400caa65346b981120d429952ed36e42ba325d271a149128acdeb90a4c5ac5c3a71461b2cb200f451350103894ac0b1f20e2c4e864d205970a1c54a2e86f508e20278e139b7134ce13a17d1392e591a68e475e4c4562bf23aa1b3eba25290b0b309296f1960eac7898872092ac13b2804a6b92a9031659126ecc34f24a14228d9d0aaeb29d29295401afb5320d66a499ae673c62ae0d62bcc480cae0fd9b5a36283b8604ba7a0c9c28c318caeacc8e85cc2ab3d08fffb92c4e483d6fe09060db0cdcb8e416001b62569a243b103e9b34696eb29776827bce6224934891a84c05353924ea481e774923836ea0cc5b1c8e4441e26491a740b366050f830cd814542a20fc3bd9ea590708d693a7139268045b5d7747bd9db885acfa84397127279885a6e559f74b7374db8ca067c48df87a14c9c739d3a8e5e61886e015d6a8c57cb2adcc564336f288324bd68dc834153067c45005d8946045d3194a13375633018e2e430b2507311048b34bc72a9f1d1a864e3aa49e0d0b4c890ace0660c84403c1285a6ed61d9075a59a23166eb0f9c8183f7d15a749a98dae4ca06c8492c9dfd160e2725d62498b220344153a7d7b54757a3504cabcc6768d2eb102706b75ec37294e72c8aad2cda49a1555946d68ec9c4133c9a8ab28b1054d543340fbb4976489745ecca8fc2ef5a6bde196db5d0ac71695f493449a8703c1a6daf69ad8dc218b4fa07c539ab343792520ba7b04e2d31b68d4de6b11a71c734ba7bed0469f2522a6200044a65901ac3b680002ea622cfc18251361d6e21c449a9eb5c9ccb513bbbdf2ef732cab299b612115906371c61d6751af479fffb92c4dd00166603062d24cb8b4e41a099b6257899263c8c9d372906f3c9363631b56507ad7972bb619a9b3932144abd7b339ba608d8825261536abe56814cba61a410d32325b851091bc2a340868856b3183308c6b02a6d4b49273442f330c68cc92c6ed189df7d1b8b48f28f5f20ccd59f8529d75a3d712841a9ea0f682e68ee243edb8e12819eaf0042c1c5ac1bc0da120c2dcca1d69125020759408a7e21ab84427426e381c28725a3e33312da2407c8102f3f287d7606b248c43cc1893c8530a1707c8a94571225854460586511224bb481b0388d91d0a1861023402ba0a6c6110aa1247b6d30b60d262b284eb22796742deca0d61740e9a350a69d622a36a4169aac1731b35de749881692c8d85201656cc466bf2a88711b69204d4ba1832da861834d4f9db51a513c69ccb46cb10a035c77d8c3240c83d949dc51a84f11492b8da3b68ab7419f272c80b4461651e7d22d979af252d697c34bd06b502b7d0048037ac2072d09983a25cb5e04ea100ed2ca072f9752c9e29f852c88d03029252a1326c0f4d93e1a9acd1d1a328513aea7d0cdb58c636da054571553ce5625fffb92c4e002147de10d2ca473cb6f412055b625686046311df8412822e6a38cb123cf9c2394ed2c467755898119a4cd28fc4ad057e95c6e5104b453b95ed0eba7670032c83dea289ac203be9973b926137d89649a50a44532b570ad20e7c96c63381f6039e7143618ba3512aea9938fc8798c1f3c270eea7da2ba7ac76908a413a4301f41f0fe7411c1899130a42d887588b5604c832e8cd8b82a03320646c1b4c5b22459a5da943898d151598d50d70588be5981c1f5c59a681d52436365c94844890a70f16159d0299329b24a65582343a89076d46cbb028b5b573a9c34577a208b7124930ac175d5e5526746a691844d621e01c7c104952070244900744f4899a046934c0cd4a5241395a517d04d5a6d33a1f83032777a3285206d920241038a28ab694e96b21a3b96ee4d2c4b6d5ad86329edeb00839c22d5a3a9029408e44b30e92d4683c63990b69bc230480fa2838c229b5e18a922b4754ca68061a3674c6c36a85d030c80074939887126548fa5a95c383d1ca85865697521d2755cda1193572c9b9044a3b2aa27d66980eaa399271c63081edb96222826a203c23478b1fffb92c4e68257520906ad24cfcb2d416095a49a381a021a3f012b02750f9889c0b3281049b488d61010c0a99670b2be10140a6294f7142212431289612af6b3db7c4e91ccda84cc8ae6d9f48aa776a2e8c2066da031688f206dc4aa402e624da0c36c970f0ad415b04cd91943afd1e32866cc276a61c18993a6e643eda88c40c15d3c5110eb2ce49b68b34c9d5d533db2dac2191c1050c3da081adb223a9a13ab978140d1345a4524e1693512674114a065850bb930c1cc8a17685692b64bdba234cfd3e751b7175d069659725112f180c1e58a11250485b1eb38e39eab5da6912b538206103e030f6cd4ba0e774c743cc161b987c7ab4f7fa38acc6b883488ec24aaa5d9330d74191d3132ab24f99abc61e6f7cc292399cc1a107749f4861d571dd222824cb6e4670fe92661de7547f88d5e1c85247f8b52bbf73d348d3715d21b3076a3115de4a4ed7795198c69e5c01ba66f2b1cc77f18ff9f08cc9a18d20470aa00db458ab640d28eb8e9a30a608a83f6d68ac4bd537bb74d3f72964576989f44e67017de325a888418be380c59e6d52781b69854d3c92da98fd3ef370ccad3fffb92c4ea025c220b000db12b8ac2c06115a499b9741dab174a7af2e450eb0b9536bbab2c3289a75e1dda3c203589fb051eb256e4d8bf564dd56f082a1a51de515856c209d997c7df2bb35b0f291430e2bd6a933f0ad7353336e64a4962840a2505e42455b62065a19528f2daa3189968a355852091b329742dcc9ccd61ff494239fb7ad2f5d29e56964d29452f27b186ae894210c80003aaed1825e17427a8e23e9858e1955de6e2624148a197febd8a6bd72237e935d8c5b84dac2a46c2e98c8882080eb0f2127497168c185841ab1746c2130ac12554b6de464f2693661cd92308d230590e0a514d112144a1d945d04d738a2f08ea42d07a37448ef3e10c994cb343074e11d34aecd646e49b4dc650775758f4d5721059bc295a236080a92cb053ac1b07c05521a596e8986000b4d7a84b9e56804c4124d63cbc5207ae9bb5c0e9a40e7a4cc23c9c306a7c6ee8c1870c38bc7c84479ec7234e79c4834995d9ea00105b68e01d8731100f518ca66a8a7eb9e42faacd99ad72be76355f1a3c6274b8d4b8d3e335a142b0b1d476c9f21662809e64a86f82e16bd152e4c5041044c1fffb92c4e78218320b06cd30d1cb3340a099a49ab93120ab0918559f2f08d249271debb00e931e221872a24102d3e4d2b36b5b64b0688df254f2ac1e1f736e8208d77a48979475334cd2b7fa591554cfdca7ab6ccd2253ed31e81cc24e86a5b5a05c3e4c45b15ddf765a9ef1afe47931bb6eff929d3a9516dafb1f5ca83f6d4cd2f76c8b3da65ecba14834f28b1336c0dd58701241881c27387839904e518e26cc1a4b5d88d2d76c4a3c3a3fa282b640789d6bcb562f25a7394866d38584a1a89cba07a029c2cb28bdec39239147633104c4c227234824c342911085c48e0f87a28c9b0bd994e29148715c771a4e48a2da8ff269b2e710ce249f0f986d8a6cbe4105e9d39420569582333ea2890aebd0a6499835899f5119a6a26d1cd191cda566689230511c8fa013b972d19ad6da37aa81970dc4e29d5959e2215ad4c4c91a8b64afa2eae5e9944caf18c1f26d98cdb5ad117349ce2b2e8196ccc5849e9b49b647a9a261ec559b87057e10b669251204483d56740fbbb226348c910121c2102884b2ae9aec0790f28a451b7589195db8ff040c90091977dc5bed146b13d7983cb2fffb92c4e6801736030b2ca4d58b6041a045a625b8ed779ac9394840d4620a684ed294114b6318ec31ad0e86be18ba9a250b2456a164f1b4aa15ce51820a094273f8127d4a685529dd2dc1ec464c7bf8ef85c67a6922e20820049d5f4a91fb91a4ca51d751705142c797a962294532c8a2e7d0fb24048ec169325ed69a1e58b2592dfc3b9c7ceb1ca6862a049f01346e647113af011da5f0edc4d8fdd141b0745229b93688f06c2e2324190697356d2119204616328cf11b47da4475ecb6a5b5d12aeb9a16d321262f08ec94554ed1c7a08267ad1eb6423054c1cf2a4cd345350930a7689c80fec9626a69b71a4533921d305092cd13cd06121988ec4c1a524912a12c48d122a245b226c52f211506089323530e9d42244515533e65233350985e38c08eb55490914188d9449380a6447ac20b5d2a8d22bb4f54226cb1b69cd3e116d69c156c70573c467f4b0ad245db4d6c70789ed7ec4db55120432841442d62800460a870847019a578b520b90352362b028c15d5150ac1c9c69eab78a2d50eceaaf9814d188531231869a2e697a15b4ca8c0894cf247bb14963087c9a36835cdfffb92c4e403d60605060ca4cbcb5a41e0419d2458ac945015666c955c3f264fa4557920394a2c9a149ab9ae790286dcd5122e9b586bce29531ad363cd29142e404087ff574ac8b3e5906a5ae13cac960ddc513a5242b5c6685e5b1e310d9916411b0ba345e6934562bbdccd2337a8b5a6c9d32e429b2ca16cbccb6b641dcb296caed2a8a2b198b7ee904760ae1f5e15294232469c97c99d8422ba4c5823b914e3b116f96ea642eb22894320c095547160f932e9356380b236e989304a071da6941c13440826b45c8ac2c1c9a400b498e491269b92d921695a12551741ea40caf2e9ea25d8135236f093a7d90e7a4bc33709b36c9e8a90e67c34d68eead6276d657775a7b2f86d94c9bce4e611731cf7cecb6731b5057b9bf99acf4bb5639aa9a297851a7a640ef8d328b9052f4e92ca043ff9999689de5526d531d8e6b1a5b9572f45976cc9d2d3156391b147a2d607cca6a8827b0f7c57305e0d0d0f4b27a823c2954847fc9178e8068ece17974d008e714ef730850422c235c1f6c60486550d2e9983e44518588c4ea1991e51c830cc4ba1428c982886d391c2c7162055423213fffb92c4e702591e09042cb12782ae4021158498e921571f82e2a991c1932933915112da563470a2c7c9973aa324a42cd9080b82623120c7273634548e4b8ba26e63a33836a50514845128133aaa2549d136c50ec139a6ba44884f30c26b901e8f525acaaa2a883a8e1a462b71002c55442bd4d73cb2a53a446c198f4890e69bd71fa54cb96d25ed13878f398362d87cf156d9175e44caacac250900a06c4d7886fe6d4c582851adc7a81cf8604042dd2b8745112430c868bc03e48552710fa200f1e4c22079b079c5c89b0f30893689163085916235d6610e41a61776b338202a9a1304ed214103f217474d5b54aacada9ad92a6e49a9e3dcda0f0b34f8b534f62cdf4fa4f47094d37d6cd45f0bc8e2174904e12570db731532ec36da536a1d5510b28583cd205cdc544b2dce69e8df65db402749c46896444aabd9c60adaea104d11a5ae0b5a936884851a715f60b4a4cc9995ea1698b95abfa095a39a538a8aa7c0058c3d02241090e609705a8512b32fa4ab6e97b2f8172b17e19d21431406dcb2cb422268e94206e489a42d079f13acfc4e074a2734ed5a25dbb611f6c9a4b3fffb92c4f3025bc20b000d31294b2640a0999c2459d29cdaa538cb865d07dde6ecfc91b1ae83f6591381eb6e4b9b59141375949a7fd0be81a91a7b2656ca1891d7c974659e4659c73da61f27a720a452cc65276049e86376c820676d8772e352bb27269510e8f17a5d04bee7a836f68f8353ded55947ee484b41a28cb6fa2998b6aa9b45f1712a4aa68329040f8449c0601f8218ca612e842303bc471d44a02b01bb4593a601b192df6022f149308cacd6018a157060509129944c8d4172b14099a4c9d34d0d82880e13159d2488999056d255161c7c4464246465539bc2a2736809e58855650caad03058c8fa16dcb2c546484cc9c464594271f5d9ad3e46262d0ec91b9b622639741224324525ada98914b9698151321140a542028a96cd3ed1683320fc1616b4d62eb1824275dd86da9f2b25d23e162a8fb09e391a33cb02c847d12182325895490756d9560648543e84ab4cb2294684813663ca37ecb2cca5924cf1e4a9017f82db7204620ba07077cbec3c0b73e46d24c68442c7904e544d323371549e4e272647389a05db452254cc118a3c4c3b89a3e5440f6966b2300651fffb92c4e583d6420b060c24d1cb7341e001a62558e83a272b010803425dee4ed5991492d02f6e098162b7db317268d96d2c995cc8af4aef724f7550cec56212fdf262352f0ab64fbae1f7c25ebdd20c53d4674dea55150e5ff27ed5fc8b6cb6c78578d59771929d9d6a9a9c97a757b23a7e35d641cf2aaef2d7fcec5190f258e0281c8ccb580e745b935b0aa31e3b59908d02ae6e242f4061b0e9f1c8a64e5c3a98bc6a228013590a0a0d08d0064e08094f365145942648819686048608dbb45e83a454254c7d1a9340e2d46d53c6c688e08a42b15c4ec09c342b14db3737f42f616264e4a932a42912948b48644248f58c2308526f10bcda129b6dd68d2884a2b0502040b9278e2136bb7ed82079b6155f48a00c6c4a93c28c90419339162057c0e302349b239d25150bb306e13916a274fac940f364273a6dc95662866861354b1a872555955c9d1a7a3d28f458696d2adce71bf4a2214a4598e8a9e5bb338a704455c3e623eac2d182a5833434e6866b1498a4318b4a6e9a9d86c9c8871c9ca993918bd8205cf58bc1955349edc0c0a50c5074e0ac1a72c81369fb24d4d2d875fffb92c4e48254d9ff0aac24c9cb62c16055a625595a21555d5e4a3ee3f10c0da2275c9903288bcc8c9534ea2a152eb5dcd8199a929a4dba6288b482507c9560f7d520c373826c5bd37c18851c1432b9d7cb5fada6de4e2a44b215eb357a4d05d3678e49482158f5649582c8553aa2e7d26a946da413aea4cf630520d26dc87d884507722c4e6892bd48c32aad1729d690a8cbf23149680dc25c811061c1980a95055c6a058a81b60de061955b055e444691834daaa84cc21091e984b82031c4ce7d36ca4da90b5844d03ac28272a90e493604358658181d0c48e3705c243cb630d1336d266d930e2c9a66a69eaa98894b1869e498614ec40d4b030e49141c922af0414047fc012f5d6475017972ee587268933c51172ccac6442b020632920759846c81c19c164c3356490353cf66249a6c7c6b1a494728e5b9ba08209949d1230faeba93893740c11824385a02924d05030bc422021c0404e98817128c34b77c5042b065efc6715749e29417564ad1d58a10089c408490d4865ed08c804c442c688081821250d2c7864a61058fabc8abc1804cd1370b2f92172366c62724a531a0fffb90c4eb03d8b20b040cb1274b0d41a0819498f8e9a92286b1212511b04c9707a1e9c16596e8acfa4460c516417380f0f125a44488dbc2629454e62faaea4d02060191d620e74971b8741bb45ad46db1409239305a8b405061bf8bf24f531140107e491879a2dd3c9a2b567c257576390313d84e090d722d72e8a284b319e394b4e8a38e187da644e65081db1a08813ec2f0c08354153da9e17cf07a1e0ecf4de3472841f95225872e3a7e0f27abc625f711a325dec88e6c858951855040590b6ba022348833566ac891d4ce9697f114209345558233668f536936d14c79736612ecacd4a72b36ca3c8aa4c8e9f6b69bd38b2e473d62525f57d554a81012ea0468e4be2d23cd64a08857a468a1a39283f923ba493334d45149d45522823f19198ce65729f272714a34851225d8f34428b9cb16ea2d07ce64c46c426ab319114548a6a4bf49aa8dbe169430d07903d2347ada80252d4040d2c70935d5425204a32e5c55eb8cd04ab562210dc371392e1729253665143f2d2050c972541cd33381aa408da9b08cc93a182248d942ed996f166c9cea34485683d1a344db25183ca4fffb92c4ec80585a0b04aca4cd8b214160958624f9d42a9593184339e7472764b597f58b199a0ee26d751feab4895513675940e3b453544c6e4c921544da1627174a13374edc0e7249a14530a1a6278084b4e03b4f5193c95100342e4b92ecd508710701189ba246e4c3cffc49b58d8d2e7d9889cd249428e11a84e5559a48bd956d175a89a66262a161f4d828942190661560e110a1f809d15aab8aa1b96e9a253613d8411a0c878260e100c931192495902802a84636c963210907e646713dd22912953532c8817446504504acb88c40b1d974e6448fc09c810a5e8744c8895c8631a5d11e80851e8790a7a11a21200248c844501b22e2cb18159f362b458a95999292653223aabda5d2ba5110e28cc8e102dcfa8771487120f0528bb098c212599e44810b1915f5c9aadf22448813b468551926328179956834988d611d30b2c89f85585ad1af16c735744469cd19330203081c46697e87925fbc38b0da1810231f6e35440897b4d500440067bc450942c4e853e80ba84420542c14ef535ac4b49c1b2f691ac652292100a594218409e4a484ad1c28b0da5b9f149f72cadaa2a2fffb92c4ed8359020b042ca4d5cb68c16001962518342e6ee0efbca20199b30e46e21d1618e7472adf10eb03d49a14cfa78d4672e9ed9f55a6dd14cbd4b48c31126cf56649ba73b44f22eecfa7cb42575b2959a572a59e8ac7839b34cb4d8d2f689591f351f0f6356ca333529b5afb1c7b23739a8c455a48c7cdc4b48252897932f4b3b05a9125f9ac5c112248925d42d38a9f3304c42747c39309346ac7ebcf179e9faa804b2dd8f52033b2014864102a0310908a54444a54eb894d221100a58987520ae094902a2828b6202444162434c72a9c1a1d5c062bba439712744d07e8db53611902a9c0ecf9932d09de44810ac8b252424f499f281221e348cb2d093038d1a64f0bec194d97cd069030cb4b243e8cc690aebb418a444f3c234671a424c5d82e7d19846d9462ce911109f72caa07949972430d2c447605248927886c877287c80e8ad12272681a8749169f982332571f2c68ccd6e70e37deca02c8986d041500328000488dd09296c246ae642c68438292fa5a99284cb9d60e5e45cd4b90b4865db81e5c70c9524b4993a65074af12ba268b0625a66c404734d49325d9d0fffb92c4e28254f60908a7a4c74b76c1a0058624f8599d87762b235a24f247ddbb98511d434c45d10ca4f902282ea569b2ade5a748c16191830250d308136dbbab6630e74b40f59c8a68ed51a4e91b42f13073b4d2dc6990a20efef250e44ac65934693238920c67d376b4dd65463779982c6234739082765926a470e28d9489d1d9ac55326a32b01d6ac4a22cb5a8c24303fc48c104798ca430b4e1e682698926c6a26510b17a987056683830f307078f91182a30716263ea93a6ba87652386909092a14c8c9cbb171e8e0bc9e750a35565d460c3ca8d18296c54cd1f726849a89936976d0c1dacb229458c90ea4df28dcd344b4a0cae247b12b657b57b726d484e9665b9ac89269782375b46d3b56d3b7a15554736185b48fa156bae6947371bf6db0e7410ed19f06101855882cb5ea894a98c55b8cba0d690a6d2a90d2696e4e787d16e14ad2edba37859399d66642ddb6b50c5010c8000c15e2692512428811c2629177527e40d342c1dcb454115562d271ed604a6074e960752394521cd49b41dc823a31e1d9f5da2e9ec018a1295123ed75090a4c1e111232f9267dd059e3bfffb92c4e60256ee0706c7b0c9cb1cc12094f624d19278a8c4b63a7ad58a259a3f902e6cc2f060ea114399b2a2f02af6e1d741a55d8d084a30f90f9298120d5b468ea315a48101550444b125e1a2568e72ecdb4a2aa3d884df48d136376d53cc9045038e8c10929332456a43622a9124eb4ab64b322a696c773f046b2c689d44f3c68a9ba6b08708a39462d12e659314f697585281455c952f12160b16d75a5815e4b114648ac664cd08a61521303e54f88850b06d4401e1a8c4e268090ea902b17cb052ea0249a29d9a9119b48a481589117a606d250a3b60123634cab4131a4cf9c937962df4e8a48525052024d0710c42317260ab358d9fb04e92c35046d585a3c14fa7eab2e4b9a0955f8a9ca73ce68c9905e1dd77ebc39c968b54a3b169ec158672e4811e5fc7936e9069c298c6bc2a309107b836ce2c85a2f67a73f6e5df24f5ac56424b962cad5d8b6942e0c783502661a9ac20a1df96b6cacf8251fc6989e19c6a572d36258e2b632af0c9392c8859608274564a76c90bb49e6367898bc8111f7995d746f1505cb153b09a32d146251319a4227232240b94697c42b30891fffb92c4ed025afe0d02cc312bc2b3bfe0c0f498e9d2eaacd23426e08b5ac447715e951ed45257a061475aa22141c92093544e94f532cb35442b2ed32da1131dc2220d5d76501444245db568c205129c2715a2829f00da6a8d2caabaa280eae72a12209aac9220489a68f1b614671b96181c545bafd228d13a3d2069a744f9e3f1e9abac2c5979b0b173301c4512226670d1d5a7ac392c0e925c102096096a441270909d97894182a274004ae264deb152678ae6cd3477583a54c36731212a701195f3d36822bb2c986da55ca30c11314a330b22242adbd632899d2361021f726594d13125d57b716096a0c5f32f7e393d249121e58e235f70b144d98c891b935ab189a4c6eab89d6ab2253d6d346ce5a26db8a6e4a25dea464b7a8af4cb479621a411ec23ced26d4871edcb668e9b4adfada691935ce4584905da1a408884a324eea828ac1b5d1c64f5103db9fc9a32142c42255b40472653d52e0024014225c4985843415c371548a8882a643602aa27275c42a2425b624846c4001c4b25c79c8172e19821467a47580c986c9056403af2668a4245621623e26ecb22a83676287bfffb92c4f103dae20d020c3129c310412080f624601246c162c4078cca4910214d5d448cc5612953ccab92692e4cd20cc83cca13e7d34ba0959f2abfc5d436e41042812aa471471c227da2196976324851ab227b5d8424debb722eb0dc68b53d61449b49746ae2267103464ea4d54cab69cd84d661ac630df2630ab046d9f844ebcf46cde90a64aac1511a0331b6ee28eb7c0a49017fb885960997070082e06d81b863aa435a805981b2c2442c016722d2c36ca6393c6503312623148814539b9bd45a4442e401844a4a2295c5cbb0b2c2491558a25024969d991b495d53ba336b200d26b429aeb9f9b42c60fbdd73509e1988e9962480ca12368809188a26a1b733b4842e85b56ec8d7732c2d4480c5ada994f26c4c4f8bc69362752368a0d1a8aac6c15556453660c956e4c1562332ac6eb149e97406d3dd922722d27ec32deaad36bc9c8b1b468575d0c26285e985a6c9c0f4f5a79f4890c2ab4945dd0ebd393d66f5e0244a02846ea8b2751d149d20d725d7ddab992b0e57ee1b75d4d3dded5750e1b039766bb0406dbbdaed7eae2d8fad58efcb97784490ab308b5d9b325a3afffb92c4ea0259c20702a7bd208b1e412040c7a4105131bf0394f4d3fc81a5b80c06c9a3609d8d92d9d14a9b5b0cf0e7b92a23709aed2227f26a5b1b52641d57030fd83ee4bc849257633d30b41e92a811a25e4891198f45976ea474c6bd89cd38c54d63dac93ae987ba10561053764f4151baaea2124b5d6ebd667a596592c4d994fc7137544ba4c5202412249494efe64706401fcc70c03950f402db9e9c67d46c2c30c1626b80b97956a5d17f8ce94e26130d9083522c84a5232791d78022c744e2952cc8a9150b3246782e7dc70115cb13893551e202322443ebc9b204714b587943ada8d742558de8331f022520daf384d5c6503fc9330b65393ed512db91da182025e8a68ee03ad39e3526617698098504ab3c1638123a1920c90138c1e8e0ad214443b161a329d9c0e143443e1dc7ee4ddd59b613da76c726750b93f3e0631122003c812a4f81544086c9443837f46214b4b01e70a63922585f30243c27b4d1209c1d0ac4168403d23174842509deb87f27105695571f2d1d0b87a7f60a84d8db3de56a50512116e0343a338ce9b8f53a85a99e483d8923f164ccb83d0f26fffb92c4e580167e030627993b0ae3406170f48eb907be72ba9c49332b5912e4d761a89b28d5c47199544b60b0c9e5aed347e86b5d7db54a9b7d8836eb97d204c7a7a60e129c2abe62c17d3fadbc6672ea3317e250927b55bd539995eed0d8f9763f75d55ade1ce57cc59e382debf67d7b494ca85e4ec58e58249c36f369dc71654f99793d0be74eac590b8aaa84d7f54b0d69e9d911fe7dd4a92eacc56209fb7a016003f51c348b18ce673952ce90a501d367ebc7e8a208c8fa4656881a06c122c41645c18952db7b2344081a7992c234fa17a291d56f6490798e4514da5349a04b52dd8d867eb8ba944c7d6a33196f88fa5695d0f10895b392962ad88e9da4bdd986e9b48d38ac5e581cd3195ac1ad2796491959c1427a5252132c4b6bbde207788c5dff169b740f4a2486d157b2ff7aa666bb2c05ec3d64672e0969e268b35dd0da9dada18832f22590000024910b25bcb01faccbe2dae2b2913a95a8c933239af35359bead6e50ba677d0cbe1be31d0c4c1fa71992c22281a1b240acd466d889cc2cd20b3b01d30d8e70c112038ac9ba68e932a466c5d86ceae4f64d1642ba42fffb92c4f5821d3e0efea7e18402a340a0e0f4999980f01e5950f1af335a802ef3c8e04ed0a4aaa1655b212c4858951bfcc92cdaaf6cd1726364d6cc1b427f12131de94caaa61185644243cd328c2a4b1b92a4c72c9f1f4aac460d2c69526c73a7a46ca9034aac22605246609d4811984689bd72455c51929121496e1426fe66d3523026308cf913dc7787e693009a02ca912d358eb32584664bfd661090171f1b08a2219018469a870c0e27eac964b3e1b9306165db3908b5090e99265979d1143b9957b539ac8c8a28110a95c623297592c479ef1812fc5f1b567101094d19440c86c234b41351bb31b693c049d890e3a029f513cf96b842a21c1b57684513446a92137d210f8424992a3c04a79d2b09d8ddcbc2c981bfe099166bf724495a8ccbb949749c0ef76648090c87376c48a36521e74d87b4028e2062266da245ea0bd0e7be5c46fd352fa91652d4926acc621b89c2faf5adf9d919272a39368e50322a2d9b9d030a2a4c76483bb40554e24089476058392f2a202c594ea9b991624e4ed7c2907d570ade7212c2e88c5264271231a55e221f30760ac50c456c36c26608fffb92c4f2835c0a0afe47b1360acdc0a040c499f904d505951e6090b55a25051dd36961065b705d35cf11183ec346d09ec691cda7d9494e5083c6946d57ae64ab64f26da98685d091ce48043023361a058c9d1955a2771bae8193028158af1727269c527205a52364a3c7152424924d1d9112489b826bc8f46488910a868d52596a07acae245111f628a32466d620920106a8c2e9188638c112046dc00288626008119391aa2040cac4c7b5522c4265fab346e26d28c43e534bd13b0000a490661b332c79c04e3f51d4743a7a1c819498fda4c91d64426db096ca3ccdfd2d48f83496635a051a6ba0d884082532893311a4cb2325444a263c887366708a65ae50e39418d3211a48bbcde61017b11098a4ca2da55554c72d31c84f65da65742bf252af53aa6dabb8654a9df2118c9126ae26c49d8877ee5994d966a7a7dbe4d2fa89b49862ea7292ea6b4d2c887315031d582152657d05bf4da3c603e5876581140b9e607931503c40d1e13493099d0f1ad8c50222513dbde4e20402d2d78c1f32da330479a4098b53514d41105605e8891b88530614d68984b32450a32407d00843fffb92c4ef03db1a0efe07b12dc2c6c0a0409326f94cc6c846838a90a4219f550a2284a2d16ca2a3c487b3df41ba3691e234680da3b99846301148b28bbe070e865099df4d45369c4288c8f221a68f95284cf93cc13b61e512e89a254881116a720bb0b189cd76c8d305a64468a607918ec0987da54e6af13ca199102cd0a0f0f959964e5645173d9635c617471add450210821516557159b138c9a991e652d04b601f5ca2212b050cb854c79a871010b00f9c15db09ccb1e105173562b347d591446d4155d8525ce233c428694129b384e2469b516233c8da28b89ba8715d6d4690ae2db0a6a9fad562d33e2ec14159642f6b4566e4c42346f05d0122145e0dbd0b96560c2239d1468946a2f4308bec36f8a4d2f6b3566717edccdcac88bd34c20a29840ab8e7cd258b05246d6438590e3d0cd549928d9fc99f9abab85a7d992c55c8c544baf497236a506d646cae9bdb4899d28b49762d674d88b127afbc9b20aa60bc78491183a5447450096bca712d2d12482abcc939b2f4fe43616257943ac670e59bfa5996da91460613666daab2048856621346ba47cc0bbd26a260851288fffb92c4f003db460efc0c31278314415fc0f62401938a9331a7f12204308eac5dcab122b2161b55cc9f4cad2459da82d11fc3f64f024844fc0a144c42898d947c0c9faa8346ef524e0d768fbc9e8f10d632a6b9124453379dc2776a14919193212340f5d689e8b5c9da64fd41273689aa693d8f49e8533a9c54ea1891d14129a8358ae12288a2c8b9598a94633a440e0c4dd52552bb4e1464b3cd2b62a0e3074b21caf34218a234c587046ba753184c7c5b462c0b360992b64eed846047140a170c1845050a976168a526a10c409ab6bd34599c6199128d287653a3302532f2e5a50814a2cd28913b4a65134c3eb8f198c979306b46a041af8eb3d12372e81a448503231513ee40da3290689d1987a9268a9f89471b5173a5956e107ad6591424476d9a234329ca3856c79a5f16952cad217c35a2e856719a60dd97c59f7a466962928308f9d239c748c7997c9861b2aba3575593d7657a90acba7472280d1d3cdc2a400190823006c54e205cd0520387994c4a4c38090bb4c0a741e1679b72f1684c80548d04c20b23422e60a7d542eba23ee6c91e4053b2cd104d0e0bac70b145fffb92c4e683d8ee0efe0619340317c11fc0f62408cd55144ee6a07d70fd8fb4a205d56959a39a8c46928b68088cb3165032d212b34caa04691251111d969219dc4cea260d202627468fd2f689b616430d8969e421717f5a9926592c5ca991cb2042428de88bc2a4868bdc3126f5546a209ad19744650c75982a2d384d19fbcd69f3b4099d5a32b9c13524f852445d1b5e65902684b4d38391d48f1f892ee4403d57ccaa70e91159b56cad1624413d64d5728bd1c3fdcd7d887272a7a5a93cc5d04e18648d9504c7c91010493eda532ee92efc4872996d33a8dc812591368318c589ee1ee3548608ceaaaad070b4146125e0b2af777ca972c5f525527fcda6169b9a740f35880e2c80ed6e9320f4a530a5e2aca77b924134ed8cecd3dcba57e68e47c8cc1dfa853d4db7b2e6a47aa3b694981c64b73c85a44025296be55f1d90f72c7d3c96f3cb2099b9ede93a25c361264830d8ca02820e755261e4ae43326bc308a12a19191a2b302a07e75a4c1b86502340c919040990212440424c4ada8a80c7d4c5b29b32f1f3c70f100645e085c5580a07e5a7c4bce1f2f3a69ca3c5724b9dfffb92c4e603591e0afe27a5200ad7c16004c49b393cc2135084563889194644e60ca25044d2a5d43b8e5e691d69e615462a489f0a04458045e6cb45565d70b09d72e9960c1a5919c133d0eaaa0f17347c620215c367508b39054a86facb12a244a0a165498a92488e716e4c1d44ad321e691ac7c46d6bc9583326f98ef8b725c1c2f3524c8bcc46dc0b204902ea06523449882a2a22403a4492ebaee46697c0f03822602cd827e4c181f44692405a8e152a7c158880c94734d54e2d2179c5d8ed2c69f24d743c8d454cb95404423531c2a1669940a406fd02126228a4b2c35228681be01b966a251323b6895cec638a75db0bc4dc6b2054c9c893d419adb0e9adbb3e4edac98ac30c9281ce752704566f5a48a92c735a26b748391b03fe3a24905165cda1d33d1ad3d8343decca849cf72f69d9ce4692ca2caf3c79e972d7a9248216099157e9598625728d7e5ed5216619d2b64d106abb2e512ca84d51e700ba1298ea90cb4b83d05ef979708ec094d199a9dafa92959600fbeb97935028b101397284104c802288bb451a42514b1b65188ea0c3838ca242a9380c850c450884abfffb92c4ed03db1208fa07b123cab6c1a000941b4002e80eac5d92e58f07c5c8ca0e75c2030891222201a6b9714aec80c168aec080fd2f42b3c4a5cab042a849d39497585670d901e1209593678501f261489cd0404a11e5debae32b9889c393b241815a6252ca3426045b99922514b243a2a405940db7cf32f04d82ab1b46711b48e42bc2d8428db59a6a421462b38543709ae0b8683c4a221402c464f0158ac80f83d39b976667c8a69a88040d26489917361e28da2212713cdf008b07132eb5b4b0f052662481a6a529130ce5610452b285604e10117568045401bae12ab4d2212d66160cd08915239d0a169361480267bb208cd46a3f3473257eb9e34a8d794047c73724c3ba1f4bf489584e9691547341a724d740ea8afab2b0c28d948ea2e9c5a148228a67bb1cf2c87eb20ecdf676b005720e795a7ed4e5b1eda3355dc12725eecfb9e9904f5ca514b4d49969819e10c4ad4182d52007d266380690046268e7542848a911c855909e79186cc08d913964429231c16a0b22d9098b0c6ae2960844d45d19336caab2689846affc344a2b388ea5324416b1a9436684549a2264fffb92c4f003dd660af807b12d4aa8c0a000c498310812556495506044c341640a91da6da6f4c9261623960c122c9b454c11984710e164d0a38b926c5b49593881d9e4b8f54e69cd959268c58b0e22e698652659dd4d86d01128611cd19a20208285848a0845106cb231a69b787c928aa52a92b46869ecf30ab58d52caa4428e4246b452c196c8e34e61034b181e62726e4144261b2340dd326c864e40fa5820004f54a1207d056952462a71324e9a2b6d408c06ee12222a623368fd265d41584dcbc469ed4206dfcda77345a4fb8e82f56cb41e255cc95b9b09922aae902a9c750117080f0143a587ec4b73f4a3d389ab6399bc49793879222dbcee47360aff1d07ae8ecf2bc3e3ea9f19f57adf9e9d46d7bdef5cc9a8e75f9835c8db20fff7f95b3116cdda61e328afd27ddd76d3d3fe46e4bfffe2a6d7748247bdd19509d276608c2217c1006a21210b03f7571e95cfae82a2fac0f4b39a3f38576326225a2432be928c6b13ddb2756b6e80f24b295dcc99ac4cb4ecfce983a58f40ad618266c9e4c7122e6686066816671742c207af2b72a6d80fdc186866c7c46f38f327625afffb92c4eb801a760afa26192c028941a0a4649a68f04e89b524408488d022ac84ac2c80e1b45230808e071628e98648d0a0204d5506d1411215595c2c8cb449a135495003ed484c0412ad20d8a18643229214472733c7c0691960a20c449b8ba7244608c506e00ab265e4143cf668782eb26c1005d71e350647d03da36334892d2221d5510d992c4260e080560a06a26bb3202abc884a34a9d160e55b942152179710e1828997501a1e11213e0b929f6dc214de6cb9736cce47cc218964260a8a9247030348d35c22d1796a236e6f33893446d1a42a30dc137237124d6d28c1d5aca0798c6413d2f15a4bd28f9a4717122c9ba4b9c91b4e4d2f79b2223a5d2a445df4189144d161499d936816240b0d3cc615950986e4d97b64fa29becaa0424e40a0aa167561b81e0d453d3e0eb53d9b6be0f53c759504134978b48d684891a16e4e8a1b67d0c97d2024273ed0ece08d6741b28f45d8592464c44d195770592a100b4a801bd0405a62e33a718b7794ba5c3e44d94d7a9f8bdf5cb9852f60366d95a64fd93c4e944483446ca34019b68629632150c2e151b444457932a3174eeb2afffb92c4f703dbd20cf806312fc338419f40c4a5b89978a6471806e4b72019e4b23434bf28a1940b4552c898863cc35228764e78c280a84520470dc275d2eda5c666922ab0d0a3c9a27933d4c9fab5bb1d0284e977109c6222245df3d4392a97c2588041a778640b1fba50187ad080f722a1f8f28c665205c41d3acb7f6802256ae1d6cb3db879cb872fa952525b294810134c4d8e0b21285167da210a443646741a31a54e974cf30c305e4c4c89b7bc9d04c95d84670c9a7ac7adac9b0dae91491504498a2a2083584735d86545085a2ecd329a85cbb50405113c950bd4597227cd13e42bd0fa1d34ace687ba70838a8d904148a4b3cb92943fac8cc481772a4cd4c79942b2aa23713a2474aa72644e8dd8299232ce5e7ac4df4c902f643f594e7964870db1523e4994d4d665b9ae59a3260dca9c37474a922382c9d3cfa24d5644abc525595dcc94b9901d469b7242c9c44c5964322782d5040004c482a424e85a407c3ce610fc4e4ca9cdb7c88568af51b44d47c8bcd0b0e93629713a2ea3d4930489340c02924d0a3bc148227628d44680ac1eba6e82daf4b07b21034fb9393afffb92c4e70117760cfec624d3c323409f40c324903d9d6431df10830b59e3134ce410441a912d3939ba612e790b664b45598d2525d759b2c8099740e24a3a30a22eae13a84189f2356228a6cc410a29d4765240ae1c99aa923438ba134858d6e246daa622b9037b5143a4a889cea858a1e623247d9934daf58b129f48ca434f51a47246f3882b69882a9923d26a61a590195557963933f34281b5c97e44dfc5556a1a6e514eca5b0d4dd2989ad78a1f64a7531c7b4484481468685cf1210102101c801d2010b2a179e0d08592ebae60ba36cb34167e6dca66dd9c848c44c23a3ab203586a0191504d8132090e0b139e7930bf90669d7ccae5133478908803930b8b351095b41fc916c61dde620dd6ce532307b22a488421271716eb0d48274939fa5cbedbbf7b6a4d1d9974e20832e3123313d8205c6ad3c4b341d0445526414049220b0b3dacb04015951d5338b4711dd593cb05d743db2e2e174bf688948b9592ec85a74734a2f8cffd19ef4892b0e959c38987d897af191d97d41710c49510164016c28405900dbc81992336275308488640b10fa03817172cc2ec9b05909559fffb92c4eb0118520afca4993acaef40dfc8949a790228b55db20588cda64629223c889894943c48862446684c14b11e388e0a9b42b118502a6c4459a15a47f18881c70e489a83cce8d850686c2890f97205213a46f9e1f32c744a1f597731f4486a225f96e242d2755f3b982b022ba75341ae03b4a6476cfa126f29888a1334a0a898e5d6633c5eed4a6a839425c992d13ae3a4dd098c4fddd5eeb7858756943a054590288d942aaf85588a28a41f598f22e6226c130c692b294014621f0fb8977b5955cd40f2680498dedcdef2c65991031650c34fc465db54b2d0c5539c9f9d7c32f27574b54af034ab116e6ba2dc3e49a4c46a203554c2294f612841d76dbe135254e73d552d1a76dc90fc9cdbd9ae9cda4a0cde4975164aa52428f7b92f2a6a75593aad7e5be3a9b081d23e9aaa2d191a4e6ba8550b72a4a3737b128c4c7bada8cd1ad6936a1872087823a9413d6e4398a5058da88c26e65b381edc9aa24084ac20887ab1cc69645a6cd0733a10403cf55311248cecc4c49382ac901b79941c3d04548914acd28db92214681559bd8992f4fcd9b6d0aa26069136c50ac9482dfffb92c4f2031c420af606259b4ace415fc49325e071d0fa3312404c796676d034a2048a6ab42882364a2249a244467c63184d582690a4dace352509b145d53cf2d320658598b6ab2f519b20688e0f549d66d764d92ca63423589b569cbb555264eb6b7245a324e71446498909cd5a0550a04d95975156b5bb9b0c36b90983b6b0aa75e0d3d12b64ad93b59cdae12a0028395eaaa7cf97d234e2c3b3280fa1cea61fae5e60b0b486f9d16dd71fbbead862af5bd858560bca8bd18b850770a112911a11b78ed34388700da68c3c64671b2e5d636909900c87c98bb3024a44660b602a7dcb670ca5c9e8f693132a48dc9b775e4d912ef510afdbeca21af4d520dd431e8e69032c325455158dac85bf0b34a5202eab51a47dc9ac632564934eb6df7a2a8c6d06bc55b64bd1f56327916b2eb9ae520d0acae17968d6b6af7c48522eb324c8cd1944def8192035161cc291523b8215d1b09c55580460b2374c6494d1d1303a7a5d0192678ed8323cc6d2af42fae98597b4711b45248f9d18c11499ae7ba60412c7a62b32064254232281b99dc84f1806c568e6b10bc3c34308888522510dfffb92c4ed8318ce0cfa04992d0323c11f48c62578c974121c51ea51da5ae29212731ab21307db5fbe708b28cb463091c9952aaacfde7cafad18c48b983cda4ad1b04e0f4f6eb4c9a36451408c8d314a0e44829668ecc98c074e36de1378a8ac1612628bda3142d474c36c3f67898ca07c08521ee6cd9b79d694429613a912649522466524709209b346a059948e101d261e2ef14c0572d430b4b0108191616c0855a180c8256f026347d5d5d749b619ad42551b5ba3681f8c89df8b2dcc06d08222a88f8000c092641724117895be53b84ca45212a32866732b030a205289db9b5c890527a888dc31091bcd429b66dca3a49d13a8a459792b1314a4abe0ace5241701fb64cb76d88e32a550185d1a0275182d045af3d884d0a20f252c565140e74cbb2c983f34e0ba9c3c2466c8d0a24a440851149a25499a9913448d48c5722474d1c6d44d0244da9ce4c4326932d221b792cd95d684e2564dac54e3d54369452c9107c34c3402a226333361874e2d2c47a42cae1ced9a0c048f15598559228e382ec3819a9a87161092d53ae0070a0e1f231d2e2b6db4459195710393443a9032fffb92c4ec015a1a0cf824b12dc320415f58932461809d6366d359e70c196cf1b6475eba44eaa925d153d940935485848a8d3619225915d4527a74c32c13931697d426d72096b5ecda3ab159946866805c9e952d1e442929181b38f9235e0d1d60282b23928e4b30848e28532b173650d13c585d1aa467e71fa8894c21b108a6d02142b207d58bb6498c48fb6490b112b322e0b63533d9c36d4452a6b2651a8e65b9879b0998a1282a454127b2b2cfeab6424d6c640b7112ad1bfd257331e875e3b680e172b0217bca247e61f56251b3ed9640a76a2b2d45b94158104dc848694cec2298294b83b102666ea0a541ec408830600019fa129dcaf4cc4e57eb6ead9b9327545d22f66a06468fd92a0f812fa2eaea4b2976f9773cfa296b8424a767888242aa1ecb03329dd046b502e407bdcf8d3cec68aad56b4946d153f688c8d740d792c921fcee90c82505caea1002ad8e75c94a0f223ada33880e221068f405019419436d2e0417253d24d90cf09c32a06bd9e2a5d6d482be9e2e0d8981644daa30a93200d2dbd0a6abdf732f4c9c104880a14227aa296934644570daaa411ab81afffb92c4e60319a60af8049932caa5415fc4649a9969387619711710ae7d13664e3135e9821411743050d186c57281b14a89902709bd45e6ca29b5dd068844916d113a85cc158530a49620ef2c4454157d3674964db64b8f10b3438d34aa3de65192332344212250764874993a6870b1d267220f9c9a44c9c996291141f5d62e8183085113cdcca3388de6569cccbe9904eaad37248923a553e50de4669588bea6caf1276257cb4df7f439e986396b46125f34f284286cf324d128e5b4750969a64d86995c81813a53178101464a48c38a1c12180d4ba6aafa47d57a135d74289b3444267d92baa084d7f18ef5196c1b34aa46dad1851cf29eb9ac723fa07b325916e4eada4ac6d352bda4935c236eca730aefac65b158212f59def11c13f1249a0dac6c897c016b5507a74da08205661b02caa00a0b05f87de91a40d0bcdb2171a3282445d0069ea28aa01f30da88a64275b070cb671b12899c2a13990ab40536a0180f2750d35936cb31d87721c8254b4af2ac98c91d0d6ad2f39ea12fac1293882c128a4463844a4aa6e5680fe34eb92a1255a3b166635ac62129447704612386fffb90c4f1001a020af82499360a80342128649b215118d8ae9569ba68c86e168f0ccf4d5aab6ce1f191d2ecc4363d62c7161bca35e8261ef1256d56a4ab05b5a9a33d56f2d8757b712142587579c34e283844e921638a1cbe4b957bb992ab0894375887896df5e5b4fad67b69218a4f4e9050d5b6f225c60b2c94e0a911fba8c8cd24d84e1d3913ad1a58f432891b060a1a8215ca2bac928b2c272354b524659279121210b42041a74f4cd596820b91489438203fb0422cab26484c3d39418f44ad6448347ca4994b5344c90ae474427931b492444e64813e72d97490b088f28751a24db55443b059576fee11a0193294a5670969aaf99c7ca952ca45a9607709c415b75a7326fda8e02a3ea91574fbda2c263d75ccc41db276ac544aa1a79ab58d121f42d1f1d96ad8cbeb10d24d57387ab0f0c0f793a0c283493d328da5ab9e8102a609ce128fae3d1b4fd0dcf49a5954b365cd3860eca2932ada883e20082020c1c0c81f40d4e83038a38d7b621230e838d782d64481e8134084db0d3480fdac1f158ad75cc2a89edd325c138a159b42aa11bd4f9b5616a0814226d86da6c8fffb92c4ff001d1a0ef8c4bd9a434841dec094b2783565ee725a0737f65564aeaa61a294bced77b2a2489a516242154d4a0e35e2aa42445082f929215e417263fa454b3246b9c4f57da84e9811976e44cb6b28b93b026cb92d2da47a94565095cd2259149498a9815b09f8214d049c5f6d6930b2885574a04e99b933382ed162ac2ca45d344c2a40c2ca11b8a0915665246d345b166501252a02348650740c40eb7a1054e4493c0eaf89b1687471c5a73a0c0e44c86837a0f250ab4c8ac785cca00fa42924a109941a3c3a3048e4cb244e4260866fa6956d489707582230cb260aaa59259447a8159ac25941cb9288c8545dc28ef62927ad2725681cb4a5b548b3099b30b521528ca713caea6cb954e4af4440dda567ae53c562b2063123ab2f18b7d6ecd348a6e4e6bdedf63c5a3aa64613f525914d06e424b228d10529313395d562bc57685cd4d9486d65588252da4fae8a7b110b553292a8e20da94b280a844444b2043679e8d6687cf37a809b90246e981b04d0a174d678ba11724908cd99c3aa1825122c66cac56289130a09031358e9b452589a0f65049a1393ac426a2888fffb92c4e801188e0cfa231925c300419f9893253894117203444c93c82875832428d824227e59a6c4d4b17316a8d8908f486dca965d460a1c952643ccda30aeae91530aa2b2c244ce2e40589da82ab94600753dc34846cc176c5a6d28ca985a728197985a0809120daf13c813c47342a73eab898bc2689225b6d2e2a262389a82996b1330771092aabb48e6081e3536b6744ea198a3215575d724e69a4056a73212014c248043e02a0c4d09ba200f09088c9e3c48bba90c5254c286a715b4465880d24a41130a324b2246a283534dc65caa37c647d840b1f150830f5b46179e13141d52665942bc61a46d543d1ce60d4e91c1964aa17a24a64870aa247164b0fae2234865878cb0367d82440dc4f46d2c3893321534d26a2cf2595c9792cd1b15ba671e81e8495540c75902d36934d01430803aa1320c2259521344a4e88104110b08b3c240910cabf3618081d8e4a766164c04d47ae77230b0847312d0879080050376ce365556a0860274988e28b13b87a0bc1e4c28728a2cd2868c965de84eb47d02689bb25cef1288d15a341a465218c31650c9003729965469724d13ae99a8fffb92c4ec03da020af80489280b18401f00949b3954e5318c6a28a298581c527f1b48c32d48fd1428a89ececc91119412e8de50c1979430694d23450593a7156c9ce98936b9d6be36aa79a8ad097c249aad24b9fd8a6d21659818c6902f251a9216f6edb62659a7222a472414a4871ec9e4cd92ac4125d090227f2f3698996219414aca9a2895a3e75823776e290566bea232a1bb509b0b890310221d12a4d246e15a40188b5a49a0243c44baadaea50d22231e599ee2e12341a5dc263816486c909ee2c040d15848a9f651879087a7ae6de3fb33cf385d52792b0129a14132118446a099161c85848f16cd0f290a202d8235888b6b44a891167cd4b611cde3d06c9899538d457ba514345dfa8a7506e6ba3936eb815aa51556344ab87981b0b100e206c81ad81423ed5a47f18589e6928ba1963e28183459acd63068bb2c3488554a0eb50945d0286c9541a44a4b58191d699d36483c78d2359861b18c6020ca2482afc615402000809414fa47462372a12c0a9a8d62c831ba1dd04943e4f73a28c311756bd68aa38787356c12b1231247395866ed072e9fb11374e22cc6d8486bfffb92c4e78158a608faa4993e0b34c11f20632469dc6ec96c54b9dced94e496c7b40e74ce77417b88e2088c2ecbd22804503eea7865a682cd2f524933b1c81912c6b81a678875134a913a41a1147518ae8e90b4c793a07219075e220bac79d434e5518b33dd3eb9e7125f0750ec2133db90930836da1c56208188a17166232a07408a171052b13489c7c285b95a89904060f243e8c94468241b27a21263e47d4710099b48fcdb446fedcda1d3286623932176d33a985f5568e3922852062b4a964d0900a099040ee21282d3464e2c23260ca0f2205b114d2149480e908dab3175104f49c3ec9e4455882631cb710c1028da515b64940791b64726da59960d33642aa35903ce4c8562c913a14d88b12075724328176db5d01f30cb48cc2daf5db8411236184025d594243868a214450f90372272fde8d7171c282c4e952c425cd07cb9f3266ef05ee092ea848aa6da6b2221232424a558599a08000349c07945d62e444e282aa94e615490ac8099122590edae4ea9234c1b5cf23422032c94d81c0c4e082196614e3458b2d92987cb2af5c89b506524c634a45b4a9cc102889a265dfffb92c4e48155ba0efd0320d8034941dec09324688689aeb16a255e4595204481abe8953e1e58d91a055a2335ed29aca7548dc940d1981f6ad0ae42f14523c9aedcd72c40837c896d365141ca9c551a1162a61b65ac13b450946397277a6a42a4a1155c1646c9302c9aa7945174947100a8e4dc189d5acbae5528192204fbaa29b1036542726df24e783cf54d8a1cab9c2530a2c913eb3222858128a9449a292574604121574488c4174278cebfa8c3335901a6bb3327278344258ea35cbd328c2c29140d9927c59b6f03e8936e2586d8e5cea225367c462a3a48233c08954c196872894161789532069908212d359546513560456f5495e7a429765196b59c43a8110590cd12d4d3536526d94ae6dcc5071228a227a6a26b424ed2e5a6ba6d27cc214b9e44646e96795db28deaeda582713179408d19f67157674074d8b901c9ec651e61451945f5960e48f0bb240212018925f20298c585130b593927220aa37a010085284000012b2ec8955451dcba65c41272806048d6a4435094544bc10d28f48a3d674e9287a04a85dcdf40901f94eb1451b24f275f3588966311b81e34a3fffb92c4eb0019820cf8a499380337c15f14949b3913de453569f7cbcb4a1222898c636a8c2cd7c1f08c68bd04409945165be73c8e5004d92e149490b28c5845270e9a2c8519a04c4490d2524e457d28d2262ec1324e3c81aa1c432686c1b8c62051a959d564c9e12a72dcbe3be6134da4a51cb5c020712d56631d00501256936d6a301859d764aa6950155558b2a1650b2b6c7884330d890b884972a5718a442cd8a5468a92d2a29252a089959a56529b2b0a89954254112582215134c8516c62ab3d542b1122449b3044895cd2125890854008a854d759a4488542933e38b224c8454bb2b22265c11751d0cc1126292514ee5e22452f5d34294d0d5c108a4962850a14854850a1ad8ca78a8a496ae3d564a8227888991222204992125eaa1c59165c08812049ab428889b0a82229662a9122d550d113c8516a416048d1514b01504411148a4969600c1961149a4c95090c888030242a15132244ce554c414d45332e313030555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555fffb92c4e481d5f20afca318d10b4ec1dd4011a420555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554c414d45332e313030555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555fffb92c43903c00001a4000000200000348000000455555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555` +} \ No newline at end of file diff --git a/pkg/notifier/notiifer.go b/pkg/notifier/notiifer.go new file mode 100644 index 0000000..c987f7d --- /dev/null +++ b/pkg/notifier/notiifer.go @@ -0,0 +1,68 @@ +package notifier + +import ( + "bytes" + "encoding/hex" + "io" + "io/ioutil" + "strings" + "time" + + "github.com/faiface/beep" + "github.com/faiface/beep/mp3" + "github.com/faiface/beep/speaker" + notifylib "github.com/gen2brain/beeep" +) + +// Notify ... +func Notify(title string, msg string) error { + return notifylib.Notify(title, msg, "") +} + +// NotifyWithSound ... +func NotifyWithSound(title string, msg string) error { + err := Notify(title, msg) + if err != nil { + return err + } + + err = PlaySound() + if err != nil { + return err + } + + return nil +} + +// PlaySound ... +func PlaySound() error { + f, err := mp3File() + if err != nil { + return err + } + streamer, format, err := mp3.Decode(f) + if err != nil { + return err + } + defer streamer.Close() + + speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) + done := make(chan bool) + speaker.Play(beep.Seq(streamer, beep.Callback(func() { + done <- true + }))) + + <-done + return nil +} + +func mp3File() (io.ReadCloser, error) { + r := strings.TrimRight(strings.TrimLeft(Mp3(), "\r\n"), "\r\n") + mp3Bytes, err := hex.DecodeString(r) + if err != nil { + return nil, err + } + + f := ioutil.NopCloser(bytes.NewReader(mp3Bytes)) + return f, nil +} diff --git a/vendor/github.com/faiface/beep/LICENSE b/vendor/github.com/faiface/beep/LICENSE new file mode 100644 index 0000000..b497e83 --- /dev/null +++ b/vendor/github.com/faiface/beep/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Michal Å trba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/faiface/beep/README.md b/vendor/github.com/faiface/beep/README.md new file mode 100644 index 0000000..1624c22 --- /dev/null +++ b/vendor/github.com/faiface/beep/README.md @@ -0,0 +1,44 @@ +# Beep [![GoDoc](https://godoc.org/github.com/faiface/beep?status.svg)](https://godoc.org/github.com/faiface/beep) [![Go Report Card](https://goreportcard.com/badge/github.com/faiface/beep)](https://goreportcard.com/report/github.com/faiface/beep) + +A little package that brings sound to any Go application. Suitable for playback and audio-processing. + +``` +go get -u github.com/faiface/beep +``` + +## Features + +Beep is built on top of its [Streamer](https://godoc.org/github.com/faiface/beep#Streamer) interface, which is like [io.Reader](https://golang.org/pkg/io/#Reader), but for audio. It was one of the best design decisions I've ever made and it enabled all the rest of the features to naturally come together with not much code. + +- **Decode and play WAV, MP3, OGG, and FLAC.** +- **Encode and save WAV.** +- **Very simple API.** Limiting the support to stereo (two channel) audio made it possible to simplify the architecture and the API. +- **Rich library of compositors and effects.** Loop, pause/resume, change volume, mix, sequence, change playback speed, and more. +- **Easily create new effects.** With the `Streamer` interface, creating new effects is very easy. +- **Generate completely own artificial sounds.** Again, the `Streamer` interface enables easy sound generation. +- **Very small codebase.** The core is just ~1K LOC. + +## Tutorial + +The [Wiki](https://github.com/faiface/beep/wiki) contains a handful of tutorials for you to get started. They teach the fundamentals and advanced topics alike. **Read them especially if you call `speaker.Init` every time you play something.** + +- [Hello, Beep!](https://github.com/faiface/beep/wiki/Hello,-Beep!) +- [Composing and controlling](https://github.com/faiface/beep/wiki/Composing-and-controlling) +- [To buffer, or not to buffer, that is the question](https://github.com/faiface/beep/wiki/To-buffer,-or-not-to-buffer,-that-is-the-question) +- [Making own streamers](https://github.com/faiface/beep/wiki/Making-own-streamers) + +## Examples + +| [Speedy Player](https://github.com/faiface/beep/tree/master/examples/speedy-player) | [Doppler Stereo Room](https://github.com/faiface/beep/tree/master/examples/doppler-stereo-room) | +| --- | --- | +| ![Speedy Player](https://github.com/faiface/beep/blob/master/examples/speedy-player/screenshot.png) | ![Doppler Stereo Room](https://github.com/faiface/beep/blob/master/examples/doppler-stereo-room/screenshot.png) | + +## Dependencies + +For playback, Beep uses [Oto](https://github.com/hajimehoshi/oto) under the hood. Check its requirements to see what you need to install for building your application. + +Running an already built application should work with no extra dependencies. + +## Licence + +[MIT](https://github.com/faiface/beep/blob/master/LICENSE) diff --git a/vendor/github.com/faiface/beep/buffer.go b/vendor/github.com/faiface/beep/buffer.go new file mode 100644 index 0000000..c20b993 --- /dev/null +++ b/vendor/github.com/faiface/beep/buffer.go @@ -0,0 +1,262 @@ +package beep + +import ( + "fmt" + "math" + "time" +) + +// SampleRate is the number of samples per second. +type SampleRate int + +// D returns the duration of n samples. +func (sr SampleRate) D(n int) time.Duration { + return time.Second * time.Duration(n) / time.Duration(sr) +} + +// N returns the number of samples that last for d duration. +func (sr SampleRate) N(d time.Duration) int { + return int(d * time.Duration(sr) / time.Second) +} + +// Format is the format of a Buffer or another audio source. +type Format struct { + // SampleRate is the number of samples per second. + SampleRate SampleRate + + // NumChannels is the number of channels. The value of 1 is mono, the value of 2 is stereo. + // The samples should always be interleaved. + NumChannels int + + // Precision is the number of bytes used to encode a single sample. Only values up to 6 work + // well, higher values loose precision due to floating point numbers. + Precision int +} + +// Width returns the number of bytes per one frame (samples in all channels). +// +// This is equal to f.NumChannels * f.Precision. +func (f Format) Width() int { + return f.NumChannels * f.Precision +} + +// EncodeSigned encodes a single sample in f.Width() bytes to p in signed format. +func (f Format) EncodeSigned(p []byte, sample [2]float64) (n int) { + return f.encode(true, p, sample) +} + +// EncodeUnsigned encodes a single sample in f.Width() bytes to p in unsigned format. +func (f Format) EncodeUnsigned(p []byte, sample [2]float64) (n int) { + return f.encode(false, p, sample) +} + +// DecodeSigned decodes a single sample encoded in f.Width() bytes from p in signed format. +func (f Format) DecodeSigned(p []byte) (sample [2]float64, n int) { + return f.decode(true, p) +} + +// DecodeUnsigned decodes a single sample encoded in f.Width() bytes from p in unsigned format. +func (f Format) DecodeUnsigned(p []byte) (sample [2]float64, n int) { + return f.decode(false, p) +} + +func (f Format) encode(signed bool, p []byte, sample [2]float64) (n int) { + switch { + case f.NumChannels == 1: + x := norm((sample[0] + sample[1]) / 2) + p = p[encodeFloat(signed, f.Precision, p, x):] + case f.NumChannels >= 2: + for c := range sample { + x := norm(sample[c]) + p = p[encodeFloat(signed, f.Precision, p, x):] + } + for c := len(sample); c < f.NumChannels; c++ { + p = p[encodeFloat(signed, f.Precision, p, 0):] + } + default: + panic(fmt.Errorf("format: encode: invalid number of channels: %d", f.NumChannels)) + } + return f.Width() +} + +func (f Format) decode(signed bool, p []byte) (sample [2]float64, n int) { + switch { + case f.NumChannels == 1: + x, _ := decodeFloat(signed, f.Precision, p) + return [2]float64{x, x}, f.Width() + case f.NumChannels >= 2: + for c := range sample { + x, n := decodeFloat(signed, f.Precision, p) + sample[c] = x + p = p[n:] + } + for c := len(sample); c < f.NumChannels; c++ { + _, n := decodeFloat(signed, f.Precision, p) + p = p[n:] + } + return sample, f.Width() + default: + panic(fmt.Errorf("format: decode: invalid number of channels: %d", f.NumChannels)) + } +} + +func encodeFloat(signed bool, precision int, p []byte, x float64) (n int) { + var xUint64 uint64 + if signed { + xUint64 = floatToSigned(precision, x) + } else { + xUint64 = floatToUnsigned(precision, x) + } + for i := 0; i < precision; i++ { + p[i] = byte(xUint64) + xUint64 >>= 8 + } + return precision +} + +func decodeFloat(signed bool, precision int, p []byte) (x float64, n int) { + var xUint64 uint64 + for i := precision - 1; i >= 0; i-- { + xUint64 <<= 8 + xUint64 += uint64(p[i]) + } + if signed { + return signedToFloat(precision, xUint64), precision + } + return unsignedToFloat(precision, xUint64), precision +} + +func floatToSigned(precision int, x float64) uint64 { + if x < 0 { + compl := uint64(-x * (math.Exp2(float64(precision)*8-1) - 1)) + return uint64(1<= 1< +1 { + return +1 + } + return x +} + +// Buffer is a storage for audio data. You can think of it as a bytes.Buffer for audio samples. +type Buffer struct { + f Format + data []byte + tmp []byte +} + +// NewBuffer creates a new empty Buffer which stores samples in the provided format. +func NewBuffer(f Format) *Buffer { + return &Buffer{f: f, tmp: make([]byte, f.Width())} +} + +// Format returns the format of the Buffer. +func (b *Buffer) Format() Format { + return b.f +} + +// Len returns the number of samples currently in the Buffer. +func (b *Buffer) Len() int { + return len(b.data) / b.f.Width() +} + +// Pop removes n samples from the beginning of the Buffer. +// +// Existing Streamers are not affected. +func (b *Buffer) Pop(n int) { + b.data = b.data[n*b.f.Width():] +} + +// Append adds all audio data from the given Streamer to the end of the Buffer. +// +// The Streamer will be drained when this method finishes. +func (b *Buffer) Append(s Streamer) { + var samples [512][2]float64 + for { + n, ok := s.Stream(samples[:]) + if !ok { + break + } + for _, sample := range samples[:n] { + b.f.EncodeSigned(b.tmp, sample) + b.data = append(b.data, b.tmp...) + } + } +} + +// Streamer returns a StreamSeeker which streams samples in the given interval (including from, +// excluding to). If from<0 or to>b.Len() or to= len(bs.data) { + return 0, false + } + for i := range samples { + if bs.pos >= len(bs.data) { + break + } + sample, advance := bs.f.DecodeSigned(bs.data[bs.pos:]) + samples[i] = sample + bs.pos += advance + n++ + } + return n, true +} + +func (bs *bufferStreamer) Err() error { + return nil +} + +func (bs *bufferStreamer) Len() int { + return len(bs.data) / bs.f.Width() +} + +func (bs *bufferStreamer) Position() int { + return bs.pos / bs.f.Width() +} + +func (bs *bufferStreamer) Seek(p int) error { + if p < 0 || bs.Len() < p { + return fmt.Errorf("buffer: seek position %v out of range [%v, %v]", p, 0, bs.Len()) + } + bs.pos = p * bs.f.Width() + return nil +} diff --git a/vendor/github.com/faiface/beep/compositors.go b/vendor/github.com/faiface/beep/compositors.go new file mode 100644 index 0000000..d874d9f --- /dev/null +++ b/vendor/github.com/faiface/beep/compositors.go @@ -0,0 +1,173 @@ +package beep + +// Take returns a Streamer which streams at most num samples from s. +// +// The returned Streamer propagates s's errors through Err. +func Take(num int, s Streamer) Streamer { + return &take{ + s: s, + remains: num, + } +} + +type take struct { + s Streamer + remains int +} + +func (t *take) Stream(samples [][2]float64) (n int, ok bool) { + if t.remains <= 0 { + return 0, false + } + toStream := t.remains + if len(samples) < toStream { + toStream = len(samples) + } + n, ok = t.s.Stream(samples[:toStream]) + t.remains -= n + return n, ok +} + +func (t *take) Err() error { + return t.s.Err() +} + +// Loop takes a StreamSeeker and plays it count times. If count is negative, s is looped infinitely. +// +// The returned Streamer propagates s's errors. +func Loop(count int, s StreamSeeker) Streamer { + return &loop{ + s: s, + remains: count, + } +} + +type loop struct { + s StreamSeeker + remains int +} + +func (l *loop) Stream(samples [][2]float64) (n int, ok bool) { + if l.remains == 0 || l.s.Err() != nil { + return 0, false + } + for len(samples) > 0 { + sn, sok := l.s.Stream(samples) + if !sok { + if l.remains > 0 { + l.remains-- + } + if l.remains == 0 { + break + } + err := l.s.Seek(0) + if err != nil { + return n, true + } + continue + } + samples = samples[sn:] + n += sn + } + return n, true +} + +func (l *loop) Err() error { + return l.s.Err() +} + +// Seq takes zero or more Streamers and returns a Streamer which streams them one by one without pauses. +// +// Seq does not propagate errors from the Streamers. +func Seq(s ...Streamer) Streamer { + i := 0 + return StreamerFunc(func(samples [][2]float64) (n int, ok bool) { + for i < len(s) && len(samples) > 0 { + sn, sok := s[i].Stream(samples) + samples = samples[sn:] + n, ok = n+sn, ok || sok + if !sok { + i++ + } + } + return n, ok + }) +} + +// Mix takes zero or more Streamers and returns a Streamer which streams them mixed together. +// +// Mix does not propagate errors from the Streamers. +func Mix(s ...Streamer) Streamer { + return StreamerFunc(func(samples [][2]float64) (n int, ok bool) { + var tmp [512][2]float64 + + for len(samples) > 0 { + toStream := len(tmp) + if toStream > len(samples) { + toStream = len(samples) + } + + // clear the samples + for i := range samples[:toStream] { + samples[i] = [2]float64{} + } + + snMax := 0 // max number of streamed samples in this iteration + for _, st := range s { + // mix the stream + sn, sok := st.Stream(tmp[:toStream]) + if sn > snMax { + snMax = sn + } + ok = ok || sok + + for i := range tmp[:sn] { + samples[i][0] += tmp[i][0] + samples[i][1] += tmp[i][1] + } + } + + n += snMax + if snMax < len(tmp) { + break + } + samples = samples[snMax:] + } + + return n, ok + }) +} + +// Dup returns two Streamers which both stream the same data as the original s. The two Streamers +// can't be used concurrently without synchronization. +func Dup(s Streamer) (t, u Streamer) { + var tBuf, uBuf [][2]float64 + return &dup{&tBuf, &uBuf, s}, &dup{&uBuf, &tBuf, s} +} + +type dup struct { + myBuf, itsBuf *[][2]float64 + s Streamer +} + +func (d *dup) Stream(samples [][2]float64) (n int, ok bool) { + buf := *d.myBuf + n = copy(samples, buf) + ok = len(buf) > 0 + buf = buf[n:] + samples = samples[n:] + *d.myBuf = buf + + if len(samples) > 0 { + sn, sok := d.s.Stream(samples) + n += sn + ok = ok || sok + *d.itsBuf = append(*d.itsBuf, samples[:sn]...) + } + + return n, ok +} + +func (d *dup) Err() error { + return d.s.Err() +} diff --git a/vendor/github.com/faiface/beep/ctrl.go b/vendor/github.com/faiface/beep/ctrl.go new file mode 100644 index 0000000..88fd8bc --- /dev/null +++ b/vendor/github.com/faiface/beep/ctrl.go @@ -0,0 +1,52 @@ +package beep + +// Ctrl allows for pausing a Streamer. +// +// Wrap a Streamer in a Ctrl. +// +// ctrl := &beep.Ctrl{Streamer: s} +// +// Then, we can pause the streaming (this will cause Ctrl to stream silence). +// +// ctrl.Paused = true +// +// To completely stop a Ctrl before the wrapped Streamer is drained, just set the wrapped Streamer +// to nil. +// +// ctrl.Streamer = nil +// +// If you're playing a Streamer wrapped in a Ctrl through the speaker, you need to lock and unlock +// the speaker when modifying the Ctrl to avoid race conditions. +// +// speaker.Play(ctrl) +// // ... +// speaker.Lock() +// ctrl.Paused = true +// speaker.Unlock() +type Ctrl struct { + Streamer Streamer + Paused bool +} + +// Stream streams the wrapped Streamer, if not nil. If the Streamer is nil, Ctrl acts as drained. +// When paused, Ctrl streams silence. +func (c *Ctrl) Stream(samples [][2]float64) (n int, ok bool) { + if c.Streamer == nil { + return 0, false + } + if c.Paused { + for i := range samples { + samples[i] = [2]float64{} + } + return len(samples), true + } + return c.Streamer.Stream(samples) +} + +// Err returns the error of the wrapped Streamer, if not nil. +func (c *Ctrl) Err() error { + if c.Streamer == nil { + return nil + } + return c.Streamer.Err() +} diff --git a/vendor/github.com/faiface/beep/go.mod b/vendor/github.com/faiface/beep/go.mod new file mode 100644 index 0000000..3612300 --- /dev/null +++ b/vendor/github.com/faiface/beep/go.mod @@ -0,0 +1,11 @@ +module github.com/faiface/beep + +require ( + github.com/gdamore/tcell v1.1.1 + github.com/hajimehoshi/go-mp3 v0.1.1 + github.com/hajimehoshi/oto v0.3.1 + github.com/jfreymuth/oggvorbis v1.0.0 + github.com/jfreymuth/vorbis v1.0.0 // indirect + github.com/mewkiz/flac v1.0.5 + github.com/pkg/errors v0.8.1 +) diff --git a/vendor/github.com/faiface/beep/go.sum b/vendor/github.com/faiface/beep/go.sum new file mode 100644 index 0000000..d9b3a61 --- /dev/null +++ b/vendor/github.com/faiface/beep/go.sum @@ -0,0 +1,39 @@ +github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.1.1 h1:U73YL+jMem2XfhvaIUfPO6MpJawaG92B2funXVb9qLs= +github.com/gdamore/tcell v1.1.1/go.mod h1:K1udHkiR3cOtlpKG5tZPD5XxrF7v2y7lDq7Whcj+xkQ= +github.com/gopherjs/gopherjs v0.0.0-20180628210949-0892b62f0d9f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c h1:16eHWuMGvCjSfgRJKqIzapE78onvvTbdi1rMkU00lZw= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherwasm v0.1.1/go.mod h1:kx4n9a+MzHH0BJJhvlsQ65hqLFXDO/m256AsaDPQ+/4= +github.com/gopherjs/gopherwasm v1.0.0 h1:32nge/RlujS1Im4HNCJPp0NbBOAeBXFuT1KonUuLl+Y= +github.com/gopherjs/gopherwasm v1.0.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI= +github.com/hajimehoshi/go-mp3 v0.1.1 h1:Y33fAdTma70fkrxnc9u50Uq0lV6eZ+bkAlssdMmCwUc= +github.com/hajimehoshi/go-mp3 v0.1.1/go.mod h1:4i+c5pDNKDrxl1iu9iG90/+fhP37lio6gNhjCx9WBJw= +github.com/hajimehoshi/oto v0.1.1/go.mod h1:hUiLWeBQnbDu4pZsAhOnGqMI1ZGibS6e2qhQdfpwz04= +github.com/hajimehoshi/oto v0.3.1 h1:cpf/uIv4Q0oc5uf9loQn7PIehv+mZerh+0KKma6gzMk= +github.com/hajimehoshi/oto v0.3.1/go.mod h1:e9eTLBB9iZto045HLbzfHJIc+jP3xaKrjZTghvb6fdM= +github.com/jfreymuth/oggvorbis v1.0.0 h1:aOpiihGrFLXpsh2osOlEvTcg5/aluzGQeC7m3uYWOZ0= +github.com/jfreymuth/oggvorbis v1.0.0/go.mod h1:abe6F9QRjuU9l+2jek3gj46lu40N4qlYxh2grqkLEDM= +github.com/jfreymuth/vorbis v1.0.0 h1:SmDf783s82lIjGZi8EGUUaS7YxPHgRj4ZXW/h7rUi7U= +github.com/jfreymuth/vorbis v1.0.0/go.mod h1:8zy3lUAm9K/rJJk223RKy6vjCZTWC61NA2QD06bfOE0= +github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY= +github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mewkiz/flac v1.0.5 h1:dHGW/2kf+/KZ2GGqSVayNEhL9pluKn/rr/h/QqD9Ogc= +github.com/mewkiz/flac v1.0.5/go.mod h1:EHZNU32dMF6alpurYyKHDLYpW1lYpBZ5WrXi/VuNIGs= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +golang.org/x/exp v0.0.0-20180710024300-14dda7b62fcd h1:nLIcFw7GiqKXUS7HiChg6OAYWgASB2H97dZKd1GhDSs= +golang.org/x/exp v0.0.0-20180710024300-14dda7b62fcd/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81 h1:00VmoueYNlNz/aHIilyyQz/MHSqGoWJzpFv/HW8xpzI= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/mobile v0.0.0-20180806140643-507816974b79 h1:t2JRgCWkY7Qaa1J2jal+wqC9OjbyHCHwIA9rVlRUSMo= +golang.org/x/mobile v0.0.0-20180806140643-507816974b79/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb h1:pf3XwC90UUdNPYWZdFjhGBE7DUFuK3Ct1zWmZ65QN30= +golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY= +gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0/go.mod h1:OdE7CF6DbADk7lN8LIKRzRJTTZXIjtWgA5THM5lhBAw= diff --git a/vendor/github.com/faiface/beep/interface.go b/vendor/github.com/faiface/beep/interface.go new file mode 100644 index 0000000..8e90919 --- /dev/null +++ b/vendor/github.com/faiface/beep/interface.go @@ -0,0 +1,106 @@ +package beep + +// Streamer is able to stream a finite or infinite sequence of audio samples. +type Streamer interface { + // Stream copies at most len(samples) next audio samples to the samples slice. + // + // The sample rate of the samples is unspecified in general, but should be specified for + // each concrete Streamer. + // + // The value at samples[i][0] is the value of the left channel of the i-th sample. + // Similarly, samples[i][1] is the value of the right channel of the i-th sample. + // + // Stream returns the number of streamed samples. If the Streamer is drained and no more + // samples will be produced, it returns 0 and false. Stream must not touch any samples + // outside samples[:n]. + // + // There are 3 valid return pattterns of the Stream method: + // + // 1. n == len(samples) && ok + // + // Stream streamed all of the requested samples. Cases 1, 2 and 3 may occur in the following + // calls. + // + // 2. 0 < n && n < len(samples) && ok + // + // Stream streamed n samples and drained the Streamer. Only case 3 may occur in the + // following calls. + // + // 3. n == 0 && !ok + // + // The Streamer is drained and no more samples will come. If Err returns a non-nil error, only + // this case is valid. Only this case may occur in the following calls. + Stream(samples [][2]float64) (n int, ok bool) + + // Err returns an error which occurred during streaming. If no error occurred, nil is + // returned. + // + // When an error occurs, Streamer must become drained and Stream must return 0, false + // forever. + // + // The reason why Stream doesn't return an error is that it dramatically simplifies + // programming with Streamer. It's not very important to catch the error right when it + // happens. + Err() error +} + +// StreamSeeker is a finite duration Streamer which supports seeking to an arbitrary position. +type StreamSeeker interface { + Streamer + + // Duration returns the total number of samples of the Streamer. + Len() int + + // Position returns the current position of the Streamer. This value is between 0 and the + // total length. + Position() int + + // Seek sets the position of the Streamer to the provided value. + // + // If an error occurs during seeking, the position remains unchanged. This error will not be + // returned through the Streamer's Err method. + Seek(p int) error +} + +// StreamCloser is a Streamer streaming from a resource which needs to be released, such as a file +// or a network connection. +type StreamCloser interface { + Streamer + + // Close closes the Streamer and releases it's resources. Streamer will no longer stream any + // samples. + Close() error +} + +// StreamSeekCloser is a union of StreamSeeker and StreamCloser. +type StreamSeekCloser interface { + Streamer + Len() int + Position() int + Seek(p int) error + Close() error +} + +// StreamerFunc is a Streamer created by simply wrapping a streaming function (usually a closure, +// which encloses a time tracking variable). This sometimes simplifies creating new streamers. +// +// Example: +// +// noise := StreamerFunc(func(samples [][2]float64) (n int, ok bool) { +// for i := range samples { +// samples[i][0] = rand.Float64()*2 - 1 +// samples[i][1] = rand.Float64()*2 - 1 +// } +// return len(samples), true +// }) +type StreamerFunc func(samples [][2]float64) (n int, ok bool) + +// Stream calls the wrapped streaming function. +func (sf StreamerFunc) Stream(samples [][2]float64) (n int, ok bool) { + return sf(samples) +} + +// Err always returns nil. +func (sf StreamerFunc) Err() error { + return nil +} diff --git a/vendor/github.com/faiface/beep/mixer.go b/vendor/github.com/faiface/beep/mixer.go new file mode 100644 index 0000000..9f0dd19 --- /dev/null +++ b/vendor/github.com/faiface/beep/mixer.go @@ -0,0 +1,70 @@ +package beep + +// Mixer allows for dynamic mixing of arbitrary number of Streamers. Mixer automatically removes +// drained Streamers. Mixer's stream never drains, when empty, Mixer streams silence. +type Mixer struct { + streamers []Streamer +} + +// Len returns the number of Streamers currently playing in the Mixer. +func (m *Mixer) Len() int { + return len(m.streamers) +} + +// Add adds Streamers to the Mixer. +func (m *Mixer) Add(s ...Streamer) { + m.streamers = append(m.streamers, s...) +} + +// Clear removes all Streamers from the mixer. +func (m *Mixer) Clear() { + m.streamers = m.streamers[:0] +} + +// Stream streams all Streamers currently in the Mixer mixed together. This method always returns +// len(samples), true. If there are no Streamers available, this methods streams silence. +func (m *Mixer) Stream(samples [][2]float64) (n int, ok bool) { + var tmp [512][2]float64 + + for len(samples) > 0 { + toStream := len(tmp) + if toStream > len(samples) { + toStream = len(samples) + } + + // clear the samples + for i := range samples[:toStream] { + samples[i] = [2]float64{} + } + + for si := 0; si < len(m.streamers); si++ { + // mix the stream + sn, sok := m.streamers[si].Stream(tmp[:toStream]) + for i := range tmp[:sn] { + samples[i][0] += tmp[i][0] + samples[i][1] += tmp[i][1] + } + if !sok { + // remove drained streamer + sj := len(m.streamers) - 1 + m.streamers[si], m.streamers[sj] = m.streamers[sj], m.streamers[si] + m.streamers = m.streamers[:sj] + si-- + } + } + + samples = samples[toStream:] + n += toStream + } + + return n, true +} + +// Err always returns nil for Mixer. +// +// There are two reasons. The first one is that erroring Streamers are immediately drained and +// removed from the Mixer. The second one is that one Streamer shouldn't break the whole Mixer and +// you should handle the errors right where they can happen. +func (m *Mixer) Err() error { + return nil +} diff --git a/vendor/github.com/faiface/beep/mp3/decode.go b/vendor/github.com/faiface/beep/mp3/decode.go new file mode 100644 index 0000000..4ddcf8f --- /dev/null +++ b/vendor/github.com/faiface/beep/mp3/decode.go @@ -0,0 +1,104 @@ +// Package mp3 implements audio data decoding in MP3 format. +package mp3 + +import ( + "fmt" + "io" + + "github.com/faiface/beep" + gomp3 "github.com/hajimehoshi/go-mp3" + "github.com/pkg/errors" +) + +const ( + gomp3NumChannels = 2 + gomp3Precision = 2 + gomp3BytesPerFrame = gomp3NumChannels * gomp3Precision +) + +// Decode takes a ReadCloser containing audio data in MP3 format and returns a StreamSeekCloser, +// which streams that audio. The Seek method will panic if rc is not io.Seeker. +// +// Do not close the supplied ReadSeekCloser, instead, use the Close method of the returned +// StreamSeekCloser when you want to release the resources. +func Decode(rc io.ReadCloser) (s beep.StreamSeekCloser, format beep.Format, err error) { + defer func() { + if err != nil { + err = errors.Wrap(err, "mp3") + } + }() + d, err := gomp3.NewDecoder(rc) + if err != nil { + return nil, beep.Format{}, err + } + format = beep.Format{ + SampleRate: beep.SampleRate(d.SampleRate()), + NumChannels: gomp3NumChannels, + Precision: gomp3Precision, + } + return &decoder{rc, d, format, 0, nil}, format, nil +} + +type decoder struct { + closer io.Closer + d *gomp3.Decoder + f beep.Format + pos int + err error +} + +func (d *decoder) Stream(samples [][2]float64) (n int, ok bool) { + if d.err != nil { + return 0, false + } + var tmp [gomp3BytesPerFrame]byte + for i := range samples { + dn, err := d.d.Read(tmp[:]) + if dn == len(tmp) { + samples[i], _ = d.f.DecodeSigned(tmp[:]) + d.pos += dn + n++ + ok = true + } + if err == io.EOF { + break + } + if err != nil { + d.err = errors.Wrap(err, "mp3") + break + } + } + return n, ok +} + +func (d *decoder) Err() error { + return d.err +} + +func (d *decoder) Len() int { + return int(d.d.Length()) / gomp3BytesPerFrame +} + +func (d *decoder) Position() int { + return d.pos / gomp3BytesPerFrame +} + +func (d *decoder) Seek(p int) error { + if p < 0 || d.Len() < p { + return fmt.Errorf("mp3: seek position %v out of range [%v, %v]", p, 0, d.Len()) + } + _, err := d.d.Seek(int64(p)*gomp3BytesPerFrame, io.SeekStart) + if err != nil { + return errors.Wrap(err, "mp3") + } + d.pos = p * gomp3BytesPerFrame + return nil +} + +func (d *decoder) Close() error { + err := d.closer.Close() + if err != nil { + return errors.Wrap(err, "mp3") + } + return nil +} diff --git a/vendor/github.com/faiface/beep/resample.go b/vendor/github.com/faiface/beep/resample.go new file mode 100644 index 0000000..902a123 --- /dev/null +++ b/vendor/github.com/faiface/beep/resample.go @@ -0,0 +1,174 @@ +package beep + +import "fmt" + +// Resample takes a Streamer which is assumed to stream at the old sample rate and returns a +// Streamer, which streams the data from the original Streamer resampled to the new sample rate. +// +// This is, for example, useful when mixing multiple Streamer with different sample rates, either +// through a beep.Mixer, or through a speaker. Speaker has a constant sample rate. Thus, playing +// Streamer which stream at a different sample rate will lead to a changed speed and pitch of the +// playback. +// +// sr := beep.SampleRate(48000) +// speaker.Init(sr, sr.N(time.Second/2)) +// speaker.Play(beep.Resample(3, format.SampleRate, sr, s)) +// +// In the example, the original sample rate of the source if format.SampleRate. We want to play it +// at the speaker's native sample rate and thus we need to resample. +// +// The quality argument specifies the quality of the resampling process. Higher quality implies +// worse performance. Values below 1 or above 64 are invalid and Resample will panic. Here's a table +// for deciding which quality to pick. +// +// quality | use case +// --------|--------- +// 1 | very high performance, on-the-fly resampling, low quality +// 3-4 | good performance, on-the-fly resampling, good quality +// 6 | higher CPU usage, usually not suitable for on-the-fly resampling, very good quality +// >6 | even higher CPU usage, for offline resampling, very good quality +// +// Sane quality values are usually below 16. Higher values will consume too much CPU, giving +// negligible quality improvements. +// +// Resample propagates errors from s. +func Resample(quality int, old, new SampleRate, s Streamer) *Resampler { + return ResampleRatio(quality, float64(old)/float64(new), s) +} + +// ResampleRatio is same as Resample, except it takes the ratio of the old and the new sample rate, +// specifically, the old sample rate divided by the new sample rate. Aside from correcting the +// sample rate, this can be used to change the speed of the audio. For example, resampling at the +// ratio of 2 and playing at the original sample rate will cause doubled speed in playback. +func ResampleRatio(quality int, ratio float64, s Streamer) *Resampler { + if quality < 1 || 64 < quality { + panic(fmt.Errorf("resample: invalid quality: %d", quality)) + } + return &Resampler{ + s: s, + ratio: ratio, + first: true, + buf1: make([][2]float64, 512), + buf2: make([][2]float64, 512), + pts: make([]point, quality*2), + off: 0, + pos: 0, + } +} + +// Resampler is a Streamer created by Resample and ResampleRatio functions. It allows dynamic +// changing of the resampling ratio, which can be useful for dynamically changing the speed of +// streaming. +type Resampler struct { + s Streamer // the orignal streamer + ratio float64 // old sample rate / new sample rate + first bool // true when Stream was not called before + buf1, buf2 [][2]float64 // buf1 contains previous buf2, new data goes into buf2, buf1 is because interpolation might require old samples + pts []point // pts is for points used for interpolation + off int // off is the position of the start of buf2 in the original data + pos int // pos is the current position in the resampled data +} + +// Stream streams the original audio resampled according to the current ratio. +func (r *Resampler) Stream(samples [][2]float64) (n int, ok bool) { + // if it's the first time, we need to fill buf2 with initial data, buf1 remains zeroed + if r.first { + sn, _ := r.s.Stream(r.buf2) + r.buf2 = r.buf2[:sn] + r.first = false + } + // we start resampling, sample by sample + for len(samples) > 0 { + again: + for c := range samples[0] { + // calculate the current position in the original data + j := float64(r.pos) * r.ratio + + // find quality*2 closest samples to j and translate them to points for interpolation + for pi := range r.pts { + // calculate the index of one of the closest samples + k := int(j) + pi - len(r.pts)/2 + 1 + + var y float64 + switch { + // the sample is in buf1 + case k < r.off: + y = r.buf1[len(r.buf1)+k-r.off][c] + // the sample is in buf2 + case k < r.off+len(r.buf2): + y = r.buf2[k-r.off][c] + // the sample is beyond buf2, so we need to load new data + case k >= r.off+len(r.buf2): + // we load into buf1 + sn, _ := r.s.Stream(r.buf1) + // this condition happens when the original Streamer got + // drained and j is after the end of the + // original data + if int(j) >= r.off+len(r.buf2)+sn { + return n, n > 0 + } + // this condition happens when the original Streamer got + // drained and this one of the closest samples is after the + // end of the original data + if k >= r.off+len(r.buf2)+sn { + y = 0 + break + } + // otherwise everything is fine, we swap buffers and start + // calculating the sample again + r.off += len(r.buf2) + r.buf1 = r.buf1[:sn] + r.buf1, r.buf2 = r.buf2, r.buf1 + goto again + } + + r.pts[pi] = point{float64(k), y} + } + + // calculate the resampled sample using polynomial interpolation from the + // quality*2 closest samples + samples[0][c] = lagrange(r.pts, j) + } + samples = samples[1:] + n++ + r.pos++ + } + return n, true +} + +// Err propagates the original Streamer's errors. +func (r *Resampler) Err() error { + return r.s.Err() +} + +// Ratio returns the current resampling ratio. +func (r *Resampler) Ratio() float64 { + return r.ratio +} + +// SetRatio sets the resampling ratio. This does not cause any glitches in the stream. +func (r *Resampler) SetRatio(ratio float64) { + r.pos = int(float64(r.pos) * r.ratio / ratio) + r.ratio = ratio +} + +// lagrange calculates the value at x of a polynomial of order len(pts)+1 which goes through all +// points in pts +func lagrange(pts []point, x float64) (y float64) { + y = 0.0 + for j := range pts { + l := 1.0 + for m := range pts { + if j == m { + continue + } + l *= (x - pts[m].X) / (pts[j].X - pts[m].X) + } + y += pts[j].Y * l + } + return y +} + +type point struct { + X, Y float64 +} diff --git a/vendor/github.com/faiface/beep/speaker/speaker.go b/vendor/github.com/faiface/beep/speaker/speaker.go new file mode 100644 index 0000000..d59389f --- /dev/null +++ b/vendor/github.com/faiface/beep/speaker/speaker.go @@ -0,0 +1,130 @@ +// Package speaker implements playback of beep.Streamer values through physical speakers. +package speaker + +import ( + "sync" + + "github.com/faiface/beep" + "github.com/hajimehoshi/oto" + "github.com/pkg/errors" +) + +var ( + mu sync.Mutex + mixer beep.Mixer + samples [][2]float64 + buf []byte + context *oto.Context + player *oto.Player + done chan struct{} +) + +// Init initializes audio playback through speaker. Must be called before using this package. +// +// The bufferSize argument specifies the number of samples of the speaker's buffer. Bigger +// bufferSize means lower CPU usage and more reliable playback. Lower bufferSize means better +// responsiveness and less delay. +func Init(sampleRate beep.SampleRate, bufferSize int) error { + mu.Lock() + defer mu.Unlock() + + Close() + + mixer = beep.Mixer{} + + numBytes := bufferSize * 4 + samples = make([][2]float64, bufferSize) + buf = make([]byte, numBytes) + + var err error + context, err = oto.NewContext(int(sampleRate), 2, 2, numBytes) + if err != nil { + return errors.Wrap(err, "failed to initialize speaker") + } + player = context.NewPlayer() + + done = make(chan struct{}) + + go func() { + for { + select { + default: + update() + case <-done: + return + } + } + }() + + return nil +} + +// Close closes the playback and the driver. In most cases, there is certainly no need to call Close +// even when the program doesn't play anymore, because in properly set systems, the default mixer +// handles multiple concurrent processes. It's only when the default device is not a virtual but hardware +// device, that you'll probably want to manually manage the device from your application. +func Close() { + if player != nil { + if done != nil { + done <- struct{}{} + done = nil + } + player.Close() + context.Close() + player = nil + } +} + +// Lock locks the speaker. While locked, speaker won't pull new data from the playing Stramers. Lock +// if you want to modify any currently playing Streamers to avoid race conditions. +// +// Always lock speaker for as little time as possible, to avoid playback glitches. +func Lock() { + mu.Lock() +} + +// Unlock unlocks the speaker. Call after modifying any currently playing Streamer. +func Unlock() { + mu.Unlock() +} + +// Play starts playing all provided Streamers through the speaker. +func Play(s ...beep.Streamer) { + mu.Lock() + mixer.Add(s...) + mu.Unlock() +} + +// Clear removes all currently playing Streamers from the speaker. +func Clear() { + mu.Lock() + mixer.Clear() + mu.Unlock() +} + +// update pulls new data from the playing Streamers and sends it to the speaker. Blocks until the +// data is sent and started playing. +func update() { + mu.Lock() + mixer.Stream(samples) + mu.Unlock() + + for i := range samples { + for c := range samples[i] { + val := samples[i][c] + if val < -1 { + val = -1 + } + if val > +1 { + val = +1 + } + valInt16 := int16(val * (1<<15 - 1)) + low := byte(valInt16) + high := byte(valInt16 >> 8) + buf[i*4+c*2+0] = low + buf[i*4+c*2+1] = high + } + } + + player.Write(buf) +} diff --git a/vendor/github.com/faiface/beep/streamers.go b/vendor/github.com/faiface/beep/streamers.go new file mode 100644 index 0000000..39348b6 --- /dev/null +++ b/vendor/github.com/faiface/beep/streamers.go @@ -0,0 +1,65 @@ +package beep + +// Silence returns a Streamer which streams num samples of silence. If num is negative, silence is +// streamed forever. +func Silence(num int) Streamer { + return StreamerFunc(func(samples [][2]float64) (n int, ok bool) { + if num == 0 { + return 0, false + } + if 0 < num && num < len(samples) { + samples = samples[:num] + } + for i := range samples { + samples[i] = [2]float64{} + } + if num > 0 { + num -= len(samples) + } + return len(samples), true + }) +} + +// Callback returns a Streamer, which does not stream any samples, but instead calls f the first +// time its Stream method is called. +func Callback(f func()) Streamer { + return StreamerFunc(func(samples [][2]float64) (n int, ok bool) { + if f != nil { + f() + f = nil + } + return 0, false + }) +} + +// Iterate returns a Streamer which successively streams Streamers obtains by calling the provided g +// function. The streaming stops when g returns nil. +// +// Iterate does not propagate errors from the generated Streamers. +func Iterate(g func() Streamer) Streamer { + var ( + s Streamer + first = true + ) + return StreamerFunc(func(samples [][2]float64) (n int, ok bool) { + if first { + s = g() + first = false + } + if s == nil { + return 0, false + } + for len(samples) > 0 { + if s == nil { + break + } + sn, sok := s.Stream(samples) + if !sok { + s = g() + } + samples = samples[sn:] + n += sn + } + return n, true + }) +} diff --git a/vendor/github.com/gen2brain/beeep/.appveyor.yml b/vendor/github.com/gen2brain/beeep/.appveyor.yml new file mode 100644 index 0000000..7555418 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/.appveyor.yml @@ -0,0 +1,18 @@ +version: "{build}" + +clone_depth: 1 + +clone_folder: c:\gopath\src\github.com\gen2brain\beeep + +environment: + GOPATH: c:\gopath + +install: + - echo %GOPATH% + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version + - go env + - go get -u github.com/gen2brain/beeep + +build_script: + - go get -t ./... diff --git a/vendor/github.com/gen2brain/beeep/.travis.yml b/vendor/github.com/gen2brain/beeep/.travis.yml new file mode 100644 index 0000000..fd5ad29 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/.travis.yml @@ -0,0 +1,10 @@ +language: go + +go: + - 1.9.x + +install: + - go get -t ./... + +script: + - go build ./... diff --git a/vendor/github.com/gen2brain/beeep/LICENSE b/vendor/github.com/gen2brain/beeep/LICENSE new file mode 100644 index 0000000..9d4a922 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2017, Milan Nikolic +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/gen2brain/beeep/README.md b/vendor/github.com/gen2brain/beeep/README.md new file mode 100644 index 0000000..3def3fc --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/README.md @@ -0,0 +1,45 @@ +## beeep +[![TravisCI Build Status](https://travis-ci.org/gen2brain/beeep.svg?branch=master)](https://travis-ci.org/gen2brain/beeep) +[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/4u7avrhsdxua2c9b?svg=true)](https://ci.appveyor.com/project/gen2brain/beeep) +[![GoDoc](https://godoc.org/github.com/gen2brain/beeep?status.svg)](https://godoc.org/github.com/gen2brain/beeep) +[![Go Report Card](https://goreportcard.com/badge/github.com/gen2brain/beeep?branch=master)](https://goreportcard.com/report/github.com/gen2brain/beeep) + + +`beeep` provides a cross-platform library for sending desktop notifications, alerts and beeps. + +### Installation + + go get -u github.com/gen2brain/beeep + +### Examples + +```go +err := beeep.Beep(beeep.DefaultFreq, beeep.DefaultDuration) +if err != nil { + panic(err) +} +``` + +```go +err := beeep.Notify("Title", "Message body", "assets/information.png") +if err != nil { + panic(err) +} +``` + +```go +err := beeep.Alert("Title", "Message body", "assets/warning.png") +if err != nil { + panic(err) +} +``` + + +## macOS + +For icons to show up when using Alert() or Notify(), you will need to bundle your application +with a app icon. + +## More + +For cross-platform dialogs and input boxes see [dlgs](https://github.com/gen2brain/dlgs). diff --git a/vendor/github.com/gen2brain/beeep/alert_darwin.go b/vendor/github.com/gen2brain/beeep/alert_darwin.go new file mode 100644 index 0000000..68ea0ef --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/alert_darwin.go @@ -0,0 +1,16 @@ +// +build darwin,!linux,!freebsd,!netbsd,!openbsd,!windows,!js + +package beeep + +import "os/exec" + +// Alert displays a desktop notification and plays a default system sound. +func Alert(title, message, appIcon string) error { + osa, err := exec.LookPath("osascript") + if err != nil { + return err + } + + cmd := exec.Command(osa, "-e", `tell application "System Events" to display notification "`+message+`" with title "`+title+`" sound name "default"`) + return cmd.Run() +} diff --git a/vendor/github.com/gen2brain/beeep/alert_js.go b/vendor/github.com/gen2brain/beeep/alert_js.go new file mode 100644 index 0000000..904418f --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/alert_js.go @@ -0,0 +1,11 @@ +// +build js + +package beeep + +// Alert displays a desktop notification and plays a beep. +func Alert(title, message, appIcon string) error { + if err := Notify(title, message, appIcon); err != nil { + return err + } + return Beep(DefaultFreq, DefaultDuration) +} diff --git a/vendor/github.com/gen2brain/beeep/alert_unix.go b/vendor/github.com/gen2brain/beeep/alert_unix.go new file mode 100644 index 0000000..948b9d7 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/alert_unix.go @@ -0,0 +1,11 @@ +// +build linux freebsd netbsd openbsd + +package beeep + +// Alert displays a desktop notification and plays a beep. +func Alert(title, message, appIcon string) error { + if err := Notify(title, message, appIcon); err != nil { + return err + } + return Beep(DefaultFreq, DefaultDuration) +} diff --git a/vendor/github.com/gen2brain/beeep/alert_unsupported.go b/vendor/github.com/gen2brain/beeep/alert_unsupported.go new file mode 100644 index 0000000..f1d11e2 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/alert_unsupported.go @@ -0,0 +1,8 @@ +// +build !linux,!freebsd,!netbsd,!openbsd,!windows,!darwin,!js + +package beeep + +// Alert displays a desktop notification and plays a beep. +func Alert(title, message, appIcon string) error { + return ErrUnsupported +} diff --git a/vendor/github.com/gen2brain/beeep/alert_windows.go b/vendor/github.com/gen2brain/beeep/alert_windows.go new file mode 100644 index 0000000..5227be9 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/alert_windows.go @@ -0,0 +1,21 @@ +// +build windows,!linux,!freebsd,!netbsd,!openbsd,!darwin,!js + +package beeep + +import ( + toast "github.com/go-toast/toast" +) + +// Alert displays a desktop notification and plays a default system sound. +func Alert(title, message, appIcon string) error { + if isWindows10 { + note := toastNotification(title, message, pathAbs(appIcon)) + note.Audio = toast.Default + return note.Push() + } + + if err := Notify(title, message, appIcon); err != nil { + return err + } + return Beep(DefaultFreq, DefaultDuration) +} diff --git a/vendor/github.com/gen2brain/beeep/beeep.go b/vendor/github.com/gen2brain/beeep/beeep.go new file mode 100644 index 0000000..b0e66d4 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beeep.go @@ -0,0 +1,27 @@ +// Package beeep provides a cross-platform library for sending desktop notifications and beeps. +package beeep + +import ( + "errors" + "path/filepath" + "runtime" +) + +var ( + // ErrUnsupported is returned when operating system is not supported. + ErrUnsupported = errors.New("beeep: unsupported operating system: " + runtime.GOOS) +) + +func pathAbs(path string) string { + var err error + var abs string + + if path != "" { + abs, err = filepath.Abs(path) + if err != nil { + abs = path + } + } + + return abs +} diff --git a/vendor/github.com/gen2brain/beeep/beep_darwin.go b/vendor/github.com/gen2brain/beeep/beep_darwin.go new file mode 100644 index 0000000..d541669 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beep_darwin.go @@ -0,0 +1,28 @@ +// +build darwin,!linux,!freebsd,!netbsd,!openbsd,!windows,!js + +package beeep + +import ( + "os" + "os/exec" +) + +var ( + // DefaultFreq - frequency, in Hz, middle A + DefaultFreq = 0.0 + // DefaultDuration - duration in milliseconds + DefaultDuration = 0 +) + +// Beep beeps the PC speaker (https://en.wikipedia.org/wiki/PC_speaker). +func Beep(freq float64, duration int) error { + osa, err := exec.LookPath("osascript") + if err != nil { + // Output the only beep we can + _, err = os.Stdout.Write([]byte{7}) + return err + } + + cmd := exec.Command(osa, "-e", `beep`) + return cmd.Run() +} diff --git a/vendor/github.com/gen2brain/beeep/beep_js.go b/vendor/github.com/gen2brain/beeep/beep_js.go new file mode 100644 index 0000000..31feb39 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beep_js.go @@ -0,0 +1,37 @@ +// +build js + +package beeep + +import ( + "github.com/gopherjs/gopherwasm/js" +) + +var ( + // DefaultFreq - frequency, in Hz, middle A + DefaultFreq = 0.0 + // DefaultDuration - duration in milliseconds + DefaultDuration = 0 +) + +// Beep beeps the PC speaker (https://en.wikipedia.org/wiki/PC_speaker). +func Beep(freq float64, duration int) (err error) { + defer func() { + e := recover() + + if e == nil { + return + } + + if e, ok := e.(*js.Error); ok { + err = e + } else { + panic(e) + } + }() + + a := js.Global().Get("document").Call("createElement", "audio") + a.Set("src", `data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=`) + a.Call("play") + + return +} diff --git a/vendor/github.com/gen2brain/beeep/beep_unix.go b/vendor/github.com/gen2brain/beeep/beep_unix.go new file mode 100644 index 0000000..58343b4 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beep_unix.go @@ -0,0 +1,138 @@ +// +build linux freebsd netbsd openbsd + +package beeep + +import ( + "errors" + "os" + "syscall" + "time" + "unsafe" +) + +// Constants +const ( + // This number represents the fixed frequency of the original PC XT's timer chip, which is approximately 1.193 MHz. This number + // is divided with the desired frequency to obtain a counter value, that is subsequently fed into the timer chip, tied to the PC speaker. + clockTickRate = 1193180 + + // linux/kd.h, start sound generation (0 for off) + kiocsound = 0x4B2F + + // linux/input-event-codes.h + evSnd = 0x12 // Event type + sndTone = 0x02 // Sound +) + +var ( + // DefaultFreq - frequency, in Hz, middle A + DefaultFreq = 440.0 + // DefaultDuration - duration in milliseconds + DefaultDuration = 200 +) + +// inputEvent represents linux/input.h event structure. +type inputEvent struct { + Time syscall.Timeval // time in seconds since epoch at which event occurred + Type uint16 // event type + Code uint16 // event code related to the event type + Value int32 // event value related to the event type +} + +// ioctl system call manipulates the underlying device parameters of special files. +func ioctl(fd, name, data uintptr) error { + _, _, e := syscall.Syscall(syscall.SYS_IOCTL, fd, name, data) + if e != 0 { + return e + } + + return nil +} + +// Beep beeps the PC speaker (https://en.wikipedia.org/wiki/PC_speaker). +// +// On Linux it needs permission to access `/dev/tty0` or `/dev/input/by-path/platform-pcspkr-event-spkr` files for writing, +// and `pcspkr` module must be loaded. User must be in correct groups, usually `input` and/or `tty`. +// +// If it can not open device files, it will fallback to sending Bell character (https://en.wikipedia.org/wiki/Bell_character). +// For bell character in X11 terminals you can enable bell with `xset b on`. For console check `setterm` and `--blength` or `--bfreq` options. +// +// On macOS this just sends bell character. Enable `Audible bell` in Terminal --> Preferences --> Settings --> Advanced. +// +// On Windows it uses Beep function via syscall. +// +// On Web it plays hard coded beep sound. +func Beep(freq float64, duration int) error { + if freq == 0 { + freq = DefaultFreq + } else if freq > 20000 { + freq = 20000 + } else if freq < 0 { + freq = DefaultFreq + } + + if duration == 0 { + duration = DefaultDuration + } + + period := int(float64(clockTickRate) / freq) + + var evdev bool + + f, err := os.OpenFile("/dev/tty0", os.O_WRONLY, 0644) + if err != nil { + e := err + f, err = os.OpenFile("/dev/input/by-path/platform-pcspkr-event-spkr", os.O_WRONLY, 0644) + if err != nil { + e = errors.New("beeep: " + e.Error() + "; " + err.Error()) + + // Output the only beep we can + _, err = os.Stdout.Write([]byte{7}) + if err != nil { + return errors.New(e.Error() + "; " + err.Error()) + } + + return nil + } + + evdev = true + } + + defer f.Close() + + if evdev { // Use Linux evdev API + ev := inputEvent{} + ev.Type = evSnd + ev.Code = sndTone + ev.Value = int32(freq) + + d := *(*[unsafe.Sizeof(ev)]byte)(unsafe.Pointer(&ev)) + + // Start beep + f.Write(d[:]) + + time.Sleep(time.Duration(duration) * time.Millisecond) + + ev.Value = 0 + d = *(*[unsafe.Sizeof(ev)]byte)(unsafe.Pointer(&ev)) + + // Stop beep + f.Write(d[:]) + } else { // Use ioctl + // Start beep + err = ioctl(f.Fd(), kiocsound, uintptr(period)) + if err != nil { + return err + } + + time.Sleep(time.Duration(duration) * time.Millisecond) + + // Stop beep + err = ioctl(f.Fd(), kiocsound, uintptr(0)) + if err != nil { + return err + } + } + + return nil +} diff --git a/vendor/github.com/gen2brain/beeep/beep_unsupported.go b/vendor/github.com/gen2brain/beeep/beep_unsupported.go new file mode 100644 index 0000000..fb521f6 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beep_unsupported.go @@ -0,0 +1,15 @@ +// +build !linux,!freebsd,!netbsd,!openbsd,!windows,!darwin,!js + +package beeep + +var ( + // DefaultFreq - frequency, in Hz, middle A + DefaultFreq = 0.0 + // DefaultDuration - duration in milliseconds + DefaultDuration = 0 +) + +// Beep beeps the PC speaker (https://en.wikipedia.org/wiki/PC_speaker). +func Beep(freq float64, duration int) error { + return ErrUnsupported +} diff --git a/vendor/github.com/gen2brain/beeep/beep_windows.go b/vendor/github.com/gen2brain/beeep/beep_windows.go new file mode 100644 index 0000000..35aa49d --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/beep_windows.go @@ -0,0 +1,41 @@ +// +build windows,!linux,!freebsd,!netbsd,!openbsd,!darwin,!js + +package beeep + +import ( + "syscall" +) + +var ( + // DefaultFreq - frequency, in Hz, middle A + DefaultFreq = 587.0 + // DefaultDuration - duration in milliseconds + DefaultDuration = 500 +) + +// Beep beeps the PC speaker (https://en.wikipedia.org/wiki/PC_speaker). +func Beep(freq float64, duration int) error { + if freq == 0 { + freq = DefaultFreq + } else if freq > 32767 { + freq = 32767 + } else if freq < 37 { + freq = DefaultFreq + } + + if duration == 0 { + duration = DefaultDuration + } + + kernel32, _ := syscall.LoadLibrary("kernel32.dll") + beep32, _ := syscall.GetProcAddress(kernel32, "Beep") + + defer syscall.FreeLibrary(kernel32) + + _, _, e := syscall.Syscall(uintptr(beep32), uintptr(2), uintptr(int(freq)), uintptr(duration), 0) + if e != 0 { + return e + } + + return nil +} diff --git a/vendor/github.com/gen2brain/beeep/go.mod b/vendor/github.com/gen2brain/beeep/go.mod new file mode 100644 index 0000000..ba1f357 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/go.mod @@ -0,0 +1,12 @@ +module github.com/gen2brain/beeep + +go 1.14 + +require ( + github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4 + github.com/godbus/dbus/v5 v5.0.3 + github.com/gopherjs/gopherwasm v1.1.0 + github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect + github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af + golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 +) diff --git a/vendor/github.com/gen2brain/beeep/go.sum b/vendor/github.com/gen2brain/beeep/go.sum new file mode 100644 index 0000000..fb47196 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/go.sum @@ -0,0 +1,14 @@ +github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4 h1:qZNfIGkIANxGv/OqtnntR4DfOY2+BgwR60cAcu/i3SE= +github.com/go-toast/toast v0.0.0-20190211030409-01e6764cf0a4/go.mod h1:kW3HQ4UdaAyrUCSSDR4xUzBKW6O2iA4uHhk7AtyYp10= +github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c h1:16eHWuMGvCjSfgRJKqIzapE78onvvTbdi1rMkU00lZw= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherwasm v1.1.0 h1:fA2uLoctU5+T3OhOn2vYP0DVT6pxc7xhTlBB1paATqQ= +github.com/gopherjs/gopherwasm v1.1.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= +github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= +github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af h1:6yITBqGTE2lEeTPG04SN9W+iWHCRyHqlVYILiSXziwk= +github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af/go.mod h1:4F09kP5F+am0jAwlQLddpoMDM+iewkxxt6nxUQ5nq5o= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/gen2brain/beeep/notify_darwin.go b/vendor/github.com/gen2brain/beeep/notify_darwin.go new file mode 100644 index 0000000..e8c0aa1 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/notify_darwin.go @@ -0,0 +1,20 @@ +// +build darwin,!linux,!freebsd,!netbsd,!openbsd,!windows,!js + +package beeep + +import ( + "os/exec" +) + +// Notify sends desktop notification. +// +// On macOS this executes AppleScript with `osascript` binary. +func Notify(title, message, appIcon string) error { + osa, err := exec.LookPath("osascript") + if err != nil { + return err + } + + cmd := exec.Command(osa, "-e", `display notification "`+message+`" with title "`+title+`"`) + return cmd.Run() +} diff --git a/vendor/github.com/gen2brain/beeep/notify_js.go b/vendor/github.com/gen2brain/beeep/notify_js.go new file mode 100644 index 0000000..57cd9b1 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/notify_js.go @@ -0,0 +1,49 @@ +// +build js + +package beeep + +import ( + "github.com/gopherjs/gopherwasm/js" +) + +// Notify sends desktop notification. +// +// On Web, in Firefox it just works, in Chrome you must call it from some "user gesture" like `onclick`, +// and you must use TLS certificate, it doesn't work with plain http. +func Notify(title, message, appIcon string) (err error) { + defer func() { + e := recover() + + if e == nil { + return + } + + if e, ok := e.(*js.Error); ok { + err = e + } else { + panic(e) + } + }() + + n := js.Global().Get("Notification") + + opts := js.Global().Get("Object").Invoke() + opts.Set("body", message) + opts.Set("icon", pathAbs(appIcon)) + + if n.Get("permission").String() == "granted" { + n.New(js.ValueOf(title), opts) + } else { + var f js.Callback + f = js.NewCallback(func(args []js.Value) { + if args[0].String() == "granted" { + n.New(js.ValueOf(title), opts) + } + f.Release() + }) + + n.Call("requestPermission", f) + } + + return +} diff --git a/vendor/github.com/gen2brain/beeep/notify_unix.go b/vendor/github.com/gen2brain/beeep/notify_unix.go new file mode 100644 index 0000000..daa9a15 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/notify_unix.go @@ -0,0 +1,58 @@ +// +build linux freebsd netbsd openbsd + +package beeep + +import ( + "errors" + "os/exec" + + "github.com/godbus/dbus/v5" +) + +// Notify sends desktop notification. +// +// On Linux it tries to send notification via D-Bus and it will fallback to `notify-send` binary. +func Notify(title, message, appIcon string) error { + appIcon = pathAbs(appIcon) + + cmd := func() error { + send, err := exec.LookPath("sw-notify-send") + if err != nil { + send, err = exec.LookPath("notify-send") + if err != nil { + return err + } + } + + c := exec.Command(send, title, message, "-i", appIcon) + return c.Run() + } + + knotify := func() error { + send, err := exec.LookPath("kdialog") + if err != nil { + return err + } + c := exec.Command(send, "--title", title, "--passivepopup", message, "10", "--icon", appIcon) + return c.Run() + } + + conn, err := dbus.SessionBus() + if err != nil { + return cmd() + } + obj := conn.Object("org.freedesktop.Notifications", dbus.ObjectPath("/org/freedesktop/Notifications")) + + call := obj.Call("org.freedesktop.Notifications.Notify", 0, "", uint32(0), appIcon, title, message, []string{}, map[string]dbus.Variant{}, int32(-1)) + if call.Err != nil { + e := cmd() + if e != nil { + e := knotify() + if e != nil { + return errors.New("beeep: " + call.Err.Error() + "; " + e.Error()) + } + } + } + + return nil +} diff --git a/vendor/github.com/gen2brain/beeep/notify_unsupported.go b/vendor/github.com/gen2brain/beeep/notify_unsupported.go new file mode 100644 index 0000000..8d31d00 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/notify_unsupported.go @@ -0,0 +1,8 @@ +// +build !linux,!freebsd,!netbsd,!openbsd,!windows,!darwin,!js + +package beeep + +// Notify sends desktop notification. +func Notify(title, message string) error { + return ErrUnsupported +} diff --git a/vendor/github.com/gen2brain/beeep/notify_windows.go b/vendor/github.com/gen2brain/beeep/notify_windows.go new file mode 100644 index 0000000..0a74b54 --- /dev/null +++ b/vendor/github.com/gen2brain/beeep/notify_windows.go @@ -0,0 +1,124 @@ +// +build windows,!linux,!freebsd,!netbsd,!openbsd,!darwin,!js + +package beeep + +import ( + "bufio" + "bytes" + "errors" + "os/exec" + "strings" + "syscall" + "time" + + toast "github.com/go-toast/toast" + "github.com/tadvi/systray" + "golang.org/x/sys/windows/registry" +) + +var isWindows10 bool +var applicationID string + +func init() { + k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) + if err != nil { + return + } + defer k.Close() + + maj, _, err := k.GetIntegerValue("CurrentMajorVersionNumber") + if err != nil { + return + } + + isWindows10 = maj == 10 + + if isWindows10 { + applicationID = appID() + } +} + +// Notify sends desktop notification. +func Notify(title, message, appIcon string) error { + if isWindows10 { + return toastNotify(title, message, appIcon) + } + + err := baloonNotify(title, message, appIcon, false) + if err != nil { + e := msgNotify(title, message) + if e != nil { + return errors.New("beeep: " + err.Error() + "; " + e.Error()) + } + } + + return nil + +} + +func msgNotify(title, message string) error { + msg, err := exec.LookPath("msg") + if err != nil { + return err + } + cmd := exec.Command(msg, "*", "/TIME:3", title+"\n\n"+message) + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} + return cmd.Run() +} + +func baloonNotify(title, message, appIcon string, bigIcon bool) error { + tray, err := systray.New() + if err != nil { + return err + } + + err = tray.ShowCustom(pathAbs(appIcon), title) + if err != nil { + return err + } + + go func() { + tray.Run() + time.Sleep(3 * time.Second) + tray.Stop() + }() + + return tray.ShowMessage(title, message, bigIcon) +} + +func toastNotify(title, message, appIcon string) error { + notification := toastNotification(title, message, pathAbs(appIcon)) + return notification.Push() +} + +func toastNotification(title, message, appIcon string) toast.Notification { + return toast.Notification{ + AppID: applicationID, + Title: title, + Message: message, + Icon: appIcon, + } +} + +func appID() string { + defID := "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe" + cmd := exec.Command("powershell", "Get-StartApps") + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} + out, err := cmd.Output() + if err != nil { + return defID + } + + scanner := bufio.NewScanner(bytes.NewReader(out)) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if strings.Contains(line, "powershell.exe") { + sp := strings.Split(line, " ") + if len(sp) > 0 { + return sp[len(sp)-1] + } + } + } + + return defID +} diff --git a/vendor/github.com/go-toast/toast/.gitignore b/vendor/github.com/go-toast/toast/.gitignore new file mode 100644 index 0000000..ecdc9e2 --- /dev/null +++ b/vendor/github.com/go-toast/toast/.gitignore @@ -0,0 +1,3 @@ +.idea/ +vendor/* +!vendor/vendor.json diff --git a/vendor/github.com/go-toast/toast/LICENSE b/vendor/github.com/go-toast/toast/LICENSE new file mode 100644 index 0000000..68b7294 --- /dev/null +++ b/vendor/github.com/go-toast/toast/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2016 Jacob Marshall + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/go-toast/toast/readme.md b/vendor/github.com/go-toast/toast/readme.md new file mode 100644 index 0000000..4dbc207 --- /dev/null +++ b/vendor/github.com/go-toast/toast/readme.md @@ -0,0 +1,61 @@ +# Toast + +A go package for Windows 10 toast notifications. + +As seen in [jacobmarshall/pokevision-cli](https://github.com/jacobmarshall/pokevision-cli). + +## CLI + +As well as using go-toast within your Go projects, you can also utilise the CLI - for any of your projects. + +Download [64bit](https://go-toast-downloads.s3.amazonaws.com/v1/toast64.exe) or [32bit](https://go-toast-downloads.s3.amazonaws.com/v1/toast32.exe) + +```cmd +C:\Users\Example\Downloads\toast64.exe \ + --app-id "Example App" \ + --title "Hello World" \ + --message "Lorem ipsum dolor sit amet, consectetur adipiscing elit." \ + --icon "C:\Users\Example\Pictures\icon.png" \ + --audio "default" --loop \ + --duration "long" \ + --activation-arg "https://google.com" \ + --action "Open maps" --action-arg "bingmaps:?q=sushi" \ + --action "Open browser" --action-arg "http://..." +``` + +![CLI](./screenshot-cli.png) + +## Example + +```go +package main + +import ( + "log" + + "gopkg.in/toast.v1" +) + +func main() { + notification := toast.Notification{ + AppID: "Example App", + Title: "My notification", + Message: "Some message about how important something is...", + Icon: "go.png", // This file must exist (remove this line if it doesn't) + Actions: []toast.Action{ + {"protocol", "I'm a button", ""}, + {"protocol", "Me too!", ""}, + }, + } + err := notification.Push() + if err != nil { + log.Fatalln(err) + } +} +``` + +## Screenshots + +![Toast](./screenshot-toast.png) + +![Action centre](./screenshot-action-centre.png) diff --git a/vendor/github.com/go-toast/toast/screenshot-action-centre.png b/vendor/github.com/go-toast/toast/screenshot-action-centre.png new file mode 100644 index 0000000000000000000000000000000000000000..e63917b2dc0a978e6a3c8380c8a8b31b6ddb3cf5 GIT binary patch literal 85126 zcmafacT`i)6K@Cs0ty5WL}{TTRY0Wo-Vu=Aq)PA73B9QF4g%6aI!KcmL1_viy@%c* z^w3}Y`fKmJKVHtcCpY)*d}elLXLe_I60M;okB|2l4*&q*D=Nrn0suf10D!Rz#zsFW ziJ3kI0Pa7wm6p~}l$M5SxH((fI#>Y!3ehRLINDl@4|8-i!HO)wUX7J)b@Oa(N zYrp+?{>pkG14E)enB#$U!2nqoHondJy&@Dxj~$%? z1VE?%c63e8@U7O`l$e_4geaujezStZcEjYb||YyTijI*7Y`bxofD!#3T;tjBdbl zy9gEmgG}BE!i>rG4VEzHFQweDex zp&!7?!4MY%nhW(%`RH@M>h3td$9qjD=ODBE`iTvF)M9ZouwdCU27LOeS&62IZ&r`3T)jp=aU-egr~xG zQ`ECVg9L9=Cm#u?>q2;!XHy6trneDHb*sF2o%})kOf8*;lx-to1xks+fHjBq)D(q0 zf|4L-uO43_viun!HNoIQOzN7)6Ysql`s6^!N0@lfTii4M*+T)T>>QH+Zd4d=~gY;n_WpYoG5nKZvUe>#a+9%47KX zy&>8AZkpQKvf8bNi|e@Q>F)b7bqDxIKJ`aM6knYqTpFWta}tJ+f?<}_Y%*Q7)V+1} zwVptUOIX^S*uqn*JI64ett`$aEWo6Bsmfik1qIM$7Z>o}YtbX3dg;snv+Ix`R!fjaKDQJ6r=&cHJ2n#$1cyoaD(n-m~rZX-b&!=VLlJy zFvFR`|I~%y0)7@`?Sl6KGffhwnP9)GVFc48C=f|-pAIY~^%{&hB69+<=pn9^HiD=# z0C45=6Brn<6y-rt%6Rm;X|IjrE15QeHhTZDgku6c9{c2GHtBPZzTeZ!rth zV@Q2p^oq_wOy_;dD^fj<2~g+hOO=q*S2V74LtXmKq(-@LZ^|LK`{4yj$^V{7_~eQW zvK)okMsuh1k?1pSDu`bSOq&p|mafP`mrQg<97{a(wS83DTb_Y9Lq;o~cP>k@M`f9E zS!wyXIaO`=l%l^3B{V@HlR-HV=SgA@(^}G7g)GG@MP^0gLh9c*b#(f14)O#H%t=_Q z-&T2!#Ex*?9$q~0(U8=K>%moNHG|8a8op}yN*&G=&W0z77y5wo?UQez#LE4J?D-D) zW12&n`0_iOUiT>NKr#2V_%hJ~6x`83(+q+SVMO|5Wml zhWlv*ZFd~}75l5*S0AiSN{Pl*#-+x1#+AkhN*l^g%ga9rm-dzqYjWv|S8={FS0S+m z^JcYV`b7DJUf8}LBG2V+<7WFl7Q6NM*u(q6FpV&YB z44PBJCm1R-3}zdK>`r4|QtXJO@-}+!=G8Veyl}j?_j*rornO=AGmeLcXNX6bP?o3K z&dC;!XS*k_=j2Y#uf1`LO`q+<(}|tzF~1>An~Rz{{VY8jy_?IKOZcVvjq&B)Whizr zwk!5K{O$Yuk2LQa-ygj{NzwTDjAHAN>a$FHZ3~ZCJ^0i&fo|`DL!Xs%reY>sra_g* zDmfW;=@IE{Q+avs6w(Je15robC>u*UPKB3~rx1 zw>_V`skts}&+X-}6R*|%UJGG^k576A+t=^N^D{U3H%U9eS`1rkS`OS{&*2_G=dU@q zaU%Ccrl?y*7;@N$9}H*b5OW1^HR^^>N;^wCSDl+2l!&d1Wr$q`m|V`F-ulN~cAUE( zXKhR_$6erDJiKbcDaG!=a=>k-c@0UY)+3psStWnQT*{aZp(Ja2-YhJ`97du^^_ym! zQi$tBg`AI_$w7Il+vT0h3-3`G5A)3)Pm%*Ua(OV_V>(Goh1D;8elLn&w7lq4rBi#G zsV%mp_}TGfZu6M?efk#nmHEQA%kNdO?Ibp2%(3<{x^HudO{wn0;Np4DBohV1TuqkO z7%CY8H7$6a2#WbQA9bw;^;0mNtGIs9e75#od$g>+*yKYoABW$};g-_q^eABoM3Y$a ztjOP5zK(4Qvy8UPQ0q!C@I%aphepo(zD``jp}GTpnd=EUnP=?t^Z~}c&JntD`f@aj zah>6Jth@s5^6OU>eH8;0dAnh|Unt$wl!my2KS7mUtRwc{>+=eQr+%f&W0>Udl6LB3 zQTfbI*q@a-nO=<@C*)|(d#JvQgO!7|hDBrjeON?9*(%jcXV&4}G@G?J$9?u|D*~}d z-V)EM+c{Zxnjgm*P4;3u;+}y!z-}z%hbQd!4fGnK>R9YY4&FJErEvzfGQ3h8)yyus zmnL@kWV0lb&Nrd7)GyV}s^tVQ8PaTBUWx}7-<9o{#y_@n$r?CvbHwFz}E+FsN> z@z+|hF8FEx9JY{HyXM>C>@%;kSIO4cvG{#{qG8_8Z;v3Gicwf>Z}p(9h3&O&K)9mp zwA1o_$h`Vl&w=3GyFspTzlO8a-5bp(rODc|y4huKs;U-B+MPY|4d|=3=EbdGy%=|x zF%3Emt=s9Ij5u(~L-X6mwB<|jzW6F*WWokj5Bs?8FQK5atp|^m>pT9f{D-UkD0)}T_{;Z+RJNg zgbk4xn;4f=U7Ct|ajed)?GQ~0JNL{tPm2~Ax+VD?Pgm|5Ry#eMqi(B5axOU?imv%t zoi`llUcb7P&+bulyAHk!ZH(k5JP=tH@jVncINZo7Qh%*Jkh3jX8EAc8(ZXNTv~sb! zA<7lTg?;t*R{O$zN4Y*t{`Tm$yi&Zjb0cMQ{MSy3^Rq?m4o~k{Aqbz#o$*jB{QMiu zGjZ(zj|=Zxt*<2|p}gWrV$PT5w?$j_QLvFGc!xW9@R}!>IZeqKuuKMo5Dc@-zT%BY$Mf4d6rP~?cy?CcsCV>x zcWRN^<64Uv#p7>!P6V4giob{<$y|H5riTJR;jxThBvJRYl0c*^%>=rL(yer?;aE zx-|eG;w^-}b+qz$1@(4xaB>&&7Nz^Ag%JAw&ton+=s!(7>_zGHR5hT|&TdvvKF(*H zPwB+)piroYo29jori|Rb$kD$<>0WzyxCn7^d3kwpdhv2PyV-DY3knKyJ>}uz;o(5H z;BfbG@_6OV;p9&L7v$eKGFI*uZniESw$4t_Ke(^VojpB7>FEA2`p@UDoL1hp|K;T5 z{;zJKJIM9t4Hq}(Q?CDDqe(^nJQdQg^|o@*ld*NQa&kxW5aWOTROFxb|IeHMa{M1k z{r^%v6Xf|{%Kv%uFG>-vKOOj=4*k{EKTpx>62lYW`j6_x@Fdu!9-ys3X)B|yjs6Dy zF%9~2hQ3(-^^LxFAQW_>e*pkU02E~;wY@QR+YQI~`t_+B&-r`qMG@BGK%^oQKy(v# z7Vj-^g%iI^HF68!>I){N)N;g_g}K+cm!|-*6N`3MSyS04AslMczJK3%2T^lTF=z5^g)G&_7N_ z!E~Be&F2!XJMJoUGPg;c|yOw!8xz8h+%Lv`Z?x`zzY@1we2Dg;aL0Mo_$ zH6)*6U_h=x@lfDjo$-QvX;Ixde)Z=jK3l~84fv%uWK?q4pqK;+gAl;FI_~Qg`@EQqyN!>K z|Et$uz+g38u>g3g!d+;|4?pB=yR3YOfiHckuSSO|=qaqqV$S|wL_6eEG8lhFdjc+f zIFa0e)49tb)csS9*?(o_3%6*lBvLDakVllZ>$rtE7ojW!tOR>*wY^?b7ov*?0sk-z zE};AM1TLPvndZ>stI9-ZvK5nlMc?j-<`gS>`>*E1weq+Ne+Qog9`Iz~Vv_4Fac}E3 zi@9N_`j)G0$!MQaJt8YxNsp@N@@0nILA&BXO4~&q+cs)*jZ5IBsV{XQz6pu{{8Aop zTyn?lCd%Gc)xw&1)N*Xj)|vPr67qL!P~rtY2!Z)jNE=8af41%`#Qsy z&B3?b{Dgi;Qy_e@8Ltn%PiePEIzTBoDroa83Uv z%T~T6G>-YMvu@6hNZB5_86fJq-f|D}qaCWf7fLw5-zpAkwx1jr5aLIDULOK|lFJ{R{rJpR~yzv-U=$sZ#D zgqP^*%&ffuDw7;~j146;Z9au}&Sl}?HrVFA-z4=nSnH*}_NbtpCPBkYCRK}G0L^Dd zUw1wH8}kInfc_6-I+^O};56s6BzoIhQrzC3MsdUiR2K5xbwGDbDp%{d(AQbgfiJPS zVFM9KT&h;>BlrFlY`ZwXf6hnCk^B?HQm z*m(pO1Dy{MxeSGNQ0?^ycQAM^6U+hrQ6C1>MFNC!dOV-+&fm7k^nkt-IC{=#R7G(` zP$}=SExt(MGIKw9I>dF17)w6&&Lem z0>~aJL83kgz*+p5mwBoTZm}^WG5`7x00SByEpbfh9|(9Fh`%bqtn#3FKi{NF`ogb$ zXYo4Gv0D_yZSvKWdIp#rN{Th$i@r_2&@8;tvgajepZ*(?aI+d3~xy1;wAb1xgQDhA&9J9mX8y zK9ZJXyk0X<<5+C$w7e>ezyo#GKf?4PCIZ0KL3rl>RgM+tEw0#wWMMltd~!9HhJYQ8 z_6(CTd!E`5Q=cDsP9z`+B!BQDxqs^)5c~)@!Xb1_{id=V558ggxv2AjLmdvx14cGe z`1Oc4E8|%K0F+9^lFeU6;xR2`@HZa+iFdQIX1pQlkhrV8=pYDFWWQCcZSLDu6`2&JwK)WENWSiPC+<_y7|6pK1pUNWMfCD+5GY{+azdcao zJk+|M=CebTmaqT@Mju;6$nDEyKas%tk5yb&zz%XqY16s}wu{Q9&DEpgN8(v8Q6&W6 z4w|&Aa@7x9yhd)!+bS5W|Lq}#JmO7h5^p@d_C#uFempX$zD(TH!i2-N?kQ&0hnxEkc(Td+aJ2J^ z(neZ`XgR<8Zu<$y`0pX`&s4Gkjh90jC-#AI%{_LK%&8SVsioJreIgA(@W%2k>@W97 zB@cn-zlU&VzLCfMA0Z?VdT22^7!En%C3;p@=GT~t!5#LBRftx{j_WW9f?XZv zA0C25L#)+n*<8~hh%1dsUH(V8zIJ*4?RzsPC~&hA^?_j1>-Or77_`XySs4Ynxa$^2 z6_nf^oSO&*Ty$P4=PY=ZFN1P-TNr*ZqO=cE13Fp)d|+?aPgHgV$0NRiay?s@jW&uK zbiSr!6W*TGmz;~-aO$=W!L~xg6C&C;RiqeRFQ;R; zKTCDWn9bidWtx61Q4dk4|0a`-+s+;-m$c?_)n(_&vzl?@-kN$|fv6AM|8A9`!+?_M zfL-?nY8wc&pZp#y@oL+Vw>~W+mHFLySGnlrJ7~B-xp%Z`pPSj&cDdQayf!D*=T)XV z*nTY9zioOwSCW5ty?uwYR|I9pbX>OH;n+B4E~lL^7RB+!C%pQ-lSQwI|81W>K}JUF zvcAJel;(0cFz`?^#vFx&-QKG(Dd`Yv2~>MP5dPTLmRi%5n5g&h*OAF#34IV)Is1ZF-g=c;$s;{-Tsbihv3pnH;KQZ+n4RO^s z_u*E(zynw0+)MXj{>^cP3pk`YdYJ1b#qxp8?yW#SAQ6C1?tP1RXkBP83>zHv%O3yUw$yo^KyJD=t1VgJ=x zANYEt^K3E4=;(Ia`P%E<)uwHcX<)*e=q~CX98xIsh z)W7)mMteZIC}Tae@zsc=VXYLy?0FjCtJM}VCQm)CoIcEx70ztj(Q-bAvmk!;PP^|;yR)Rj zM2#zOAC@x>g-NArW-*{H{WT2zq#}o#;@SV^0rJvajOTaf8?Zg?OR_XZpx-kU15|66 zIt^%%(Y>b?=c}5b8>+eHz0$Ck*B1llNm|zz>$ly%Z<<4#eIKP5wn!vHaQ-$Vp;*9Q zCjOGW^24Qr28~#;OuW7NTZmdGA>_z@HzD;n;nlX{rNz}(X^SoT^}OcPwv#Q_HED8` z`9SSKy2MwhJ@w9m&x@VcuRkNN3sfoa@e$YT~h*I$kPxw_!<#c$io$ zfY|@7W`Z9Vd{Q+6Wr|JQ=VnAL$-{5oiet*}LRGYFiUTrDqOPS=vlLSb>6LKgJV^^8 zyxCn;U^>v5mMZSy*EM#7@rj9PKBS9x=$2WsVg?^?(b>PJ6%~e%*v=I(c zhWro;@NJIKqM7J$?f)xjix@h*#SK%}1RT0lxK&KVlI+O-vtSc=3{(;7KY*cfJKR&Q zD%jTeGOn#mo~Iw{V$yZ{|Dp)kjGql}&eohHn>`$F3D7)h31nXy#esVjbkKlNUs*dC zPMk81=tpQgwk-Q78l9s92tlS*&GvM8Ix|+H@CSz9&QD(jaQ?7A?gxpQv9xs3p%NvM z1|Dc`(1$Ab49fpr&5HDAP`_-lqzCj?%*cl+_MHcD@3d(wbu(Zom;Ek@Tu${?gax>+ zO`T6y&Mq1;`-5QpvCjKuSf)ddlhLb=<~N|Z@v8@#)ZG@*U2dk6Op~rkSHseNcV&x7 z&Ud(1q8R(#Tfa?d7<}F|F}%3@Fg1y)4U0QTSg}jVQQtT8INA2ef3i>|9WW>2=`}Fg zgk;fo4Ar^5VnAggqsIMA9M3Di_x62Z7y_y9<^@^05!%Wp&14#SP)4>j5;uyY`WVVm z3X@b76Xo*EZSoU4@BrMy>!`KSlo@eyEg+n^HPQQpaTG*J zpJ^=db0R_7ZvWZiRkdxSqpTTCLK;aX*gThU>lgon-z9HyslWEfBOb|bZ`c#Y;Pel6 z+ca6jj)u=~@cFT~NK)43@`Scmgxz2=gC&@r|2PLVk&A9!K%vm&1|x7M(T|46Yc{|+ zk#@c#aMgmHAWdX6E5sip%s0V@9%L(*&4O^Rrit{FGmtbd`Hznnkmr0%;CGuUF z{6*G#FGXq)443LN20Dea1U1s3xPklTeGCF=QCz3)xE*mut!I<#Y1fG7xrDnboFEvn z$9sf)l<1DoZ@iAUwo9E2-K1B;-GG&snZ=h6&@wEZLz1QA{d)!(^Q&N*Iy1OL7aHy5 z!u(tTdAGEk?jBcB7n*nRs=3s<&t+Eob#{gEm2XkI#fdJzcXnv%n0v(;)+VK z-;xl8Opyj3;!k|XztKH377aO6gG{|e@cI7VYha1qgp=O=PndO?`>(*9M617u zE{#FC)Y0W!*mdI+aAu>e_!R}uGK(i01g8aytVk+am4LcZOrS9xAY^f^<^=J8#Q&%W z`w*W_yuR}wuZN$o&-onrt>sOH(M=y_FefCw$3&=M zRw?jDtrKNRtdVhsA|qBKDV!OYgv-uX0yLgiGPKaE+ z-mbGobJ(VfugJK86JS|Krc=hD`RnZxzsf9^Zr@_HG5)@iAPESw+dGs zhbcUooxAmKJ`@Hf2TMEz_jrGHw_luCOt<)*HUCFss|-b(m=uc%#`E;*fOxa^Rf|p0 z3--}OM172=cynh@Bomp1wgsgo)3%Qk(m0<>p@ZS9;(GaPNr_n$51s~^#HAI?s#lFn z{;nWKv}Gd#BSi`_+)RcQkKhGvR#RCX7tq|TBJZ_#V;LH6DBiZ%EQ%XGiA~@{cL5|W z)A6VzohtQRQOCIDHp!^^?a0zBUZRwX=SE+odR!bLDN}>efle+*KUOn$e�Nxq13v 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%0Az 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⁢H}%iq$x6| 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/go-toast/toast/screenshot-cli.png b/vendor/github.com/go-toast/toast/screenshot-cli.png new file mode 100644 index 0000000000000000000000000000000000000000..fc03c37e8d4140be388bbe25b7ba6927114750fc GIT binary patch literal 62466 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 b7hgw}*f-xtHrVOh!Thw;pQtrsoV@%Ge1y;A literal 0 HcmV?d00001 diff --git a/vendor/github.com/go-toast/toast/screenshot-toast.png b/vendor/github.com/go-toast/toast/screenshot-toast.png new file mode 100644 index 0000000000000000000000000000000000000000..93904061dd523d839f73d24a3adcf659a20ece41 GIT binary patch literal 62644 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

emo6q~pKmMA?PnLp2 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/go-toast/toast/toast.go b/vendor/github.com/go-toast/toast/toast.go new file mode 100644 index 0000000..1bcba4b --- /dev/null +++ b/vendor/github.com/go-toast/toast/toast.go @@ -0,0 +1,359 @@ +package toast + +import ( + "bytes" + "errors" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "strings" + "text/template" + + "github.com/nu7hatch/gouuid" + "syscall" +) + +var toastTemplate *template.Template + +var ( + ErrorInvalidAudio error = errors.New("toast: invalid audio") + ErrorInvalidDuration = errors.New("toast: invalid duration") +) + +type toastAudio string + +const ( + Default toastAudio = "ms-winsoundevent:Notification.Default" + IM = "ms-winsoundevent:Notification.IM" + Mail = "ms-winsoundevent:Notification.Mail" + Reminder = "ms-winsoundevent:Notification.Reminder" + SMS = "ms-winsoundevent:Notification.SMS" + LoopingAlarm = "ms-winsoundevent:Notification.Looping.Alarm" + LoopingAlarm2 = "ms-winsoundevent:Notification.Looping.Alarm2" + LoopingAlarm3 = "ms-winsoundevent:Notification.Looping.Alarm3" + LoopingAlarm4 = "ms-winsoundevent:Notification.Looping.Alarm4" + LoopingAlarm5 = "ms-winsoundevent:Notification.Looping.Alarm5" + LoopingAlarm6 = "ms-winsoundevent:Notification.Looping.Alarm6" + LoopingAlarm7 = "ms-winsoundevent:Notification.Looping.Alarm7" + LoopingAlarm8 = "ms-winsoundevent:Notification.Looping.Alarm8" + LoopingAlarm9 = "ms-winsoundevent:Notification.Looping.Alarm9" + LoopingAlarm10 = "ms-winsoundevent:Notification.Looping.Alarm10" + LoopingCall = "ms-winsoundevent:Notification.Looping.Call" + LoopingCall2 = "ms-winsoundevent:Notification.Looping.Call2" + LoopingCall3 = "ms-winsoundevent:Notification.Looping.Call3" + LoopingCall4 = "ms-winsoundevent:Notification.Looping.Call4" + LoopingCall5 = "ms-winsoundevent:Notification.Looping.Call5" + LoopingCall6 = "ms-winsoundevent:Notification.Looping.Call6" + LoopingCall7 = "ms-winsoundevent:Notification.Looping.Call7" + LoopingCall8 = "ms-winsoundevent:Notification.Looping.Call8" + LoopingCall9 = "ms-winsoundevent:Notification.Looping.Call9" + LoopingCall10 = "ms-winsoundevent:Notification.Looping.Call10" + Silent = "silent" +) + +type toastDuration string + +const ( + Short toastDuration = "short" + Long = "long" +) + +func init() { + toastTemplate = template.New("toast") + toastTemplate.Parse(` +[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null +[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null +[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null + +$APP_ID = '{{if .AppID}}{{.AppID}}{{else}}Windows App{{end}}' + +$template = @" + + + + {{if .Icon}} + + {{end}} + {{if .Title}} + + {{end}} + {{if .Message}} + + {{end}} + + + {{if ne .Audio "silent"}} + +"@ + +$xml = New-Object Windows.Data.Xml.Dom.XmlDocument +$xml.LoadXml($template) +$toast = New-Object Windows.UI.Notifications.ToastNotification $xml +[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($APP_ID).Show($toast) + `) +} + +// Notification +// +// The toast notification data. The following fields are strongly recommended; +// - AppID +// - Title +// +// If no toastAudio is provided, then the toast notification will be silent. +// You can set the toast to have a default audio by setting "Audio" to "toast.Default", or if your go app takes +// user-provided input for audio, call the "toast.Audio(name)" func. +// +// The AppID is shown beneath the toast message (in certain cases), and above the notification within the Action +// Center - and is used to group your notifications together. It is recommended that you provide a "pretty" +// name for your app, and not something like "com.example.MyApp". +// +// If no Title is provided, but a Message is, the message will display as the toast notification's title - +// which is a slightly different font style (heavier). +// +// The Icon should be an absolute path to the icon (as the toast is invoked from a temporary path on the user's +// system, not the working directory). +// +// If you would like the toast to call an external process/open a webpage, then you can set ActivationArguments +// to the uri you would like to trigger when the toast is clicked. For example: "https://google.com" would open +// the Google homepage when the user clicks the toast notification. +// By default, clicking the toast just hides/dismisses it. +// +// The following would show a notification to the user letting them know they received an email, and opens +// gmail.com when they click the notification. It also makes the Windows 10 "mail" sound effect. +// +// toast := toast.Notification{ +// AppID: "Google Mail", +// Title: email.Subject, +// Message: email.Preview, +// Icon: "C:/Program Files/Google Mail/icons/logo.png", +// ActivationArguments: "https://gmail.com", +// Audio: toast.Mail, +// } +// +// err := toast.Push() +type Notification struct { + // The name of your app. This value shows up in Windows 10's Action Centre, so make it + // something readable for your users. It can contain spaces, however special characters + // (eg. é) are not supported. + AppID string + + // The main title/heading for the toast notification. + Title string + + // The single/multi line message to display for the toast notification. + Message string + + // An optional path to an image on the OS to display to the left of the title & message. + Icon string + + // The type of notification level action (like toast.Action) + ActivationType string + + // The activation/action arguments (invoked when the user clicks the notification) + ActivationArguments string + + // Optional action buttons to display below the notification title & message. + Actions []Action + + // The audio to play when displaying the toast + Audio toastAudio + + // Whether to loop the audio (default false) + Loop bool + + // How long the toast should show up for (short/long) + Duration toastDuration +} + +// Action +// +// Defines an actionable button. +// See https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts for more info. +// +// Only protocol type action buttons are actually useful, as there's no way of receiving feedback from the +// user's choice. Examples of protocol type action buttons include: "bingmaps:?q=sushi" to open up Windows 10's +// maps app with a pre-populated search field set to "sushi". +// +// toast.Action{"protocol", "Open Maps", "bingmaps:?q=sushi"} +type Action struct { + Type string + Label string + Arguments string +} + +func (n *Notification) applyDefaults() { + if n.ActivationType == "" { + n.ActivationType = "protocol" + } + if n.Duration == "" { + n.Duration = Short + } + if n.Audio == "" { + n.Audio = Default + } +} + +func (n *Notification) buildXML() (string, error) { + var out bytes.Buffer + err := toastTemplate.Execute(&out, n) + if err != nil { + return "", err + } + return out.String(), nil +} + +// Builds the Windows PowerShell script & invokes it, causing the toast to display. +// +// Note: Running the PowerShell script is by far the slowest process here, and can take a few +// seconds in some cases. +// +// notification := toast.Notification{ +// AppID: "Example App", +// Title: "My notification", +// Message: "Some message about how important something is...", +// Icon: "go.png", +// Actions: []toast.Action{ +// {"protocol", "I'm a button", ""}, +// {"protocol", "Me too!", ""}, +// }, +// } +// err := notification.Push() +// if err != nil { +// log.Fatalln(err) +// } +func (n *Notification) Push() error { + n.applyDefaults() + xml, err := n.buildXML() + if err != nil { + return err + } + return invokeTemporaryScript(xml) +} + +// Returns a toastAudio given a user-provided input (useful for cli apps). +// +// If the "name" doesn't match, then the default toastAudio is returned, along with ErrorInvalidAudio. +// +// The following names are valid; +// - default +// - im +// - mail +// - reminder +// - sms +// - loopingalarm +// - loopimgalarm[2-10] +// - loopingcall +// - loopingcall[2-10] +// - silent +// +// Handle the error appropriately according to how your app should work. +func Audio(name string) (toastAudio, error) { + switch strings.ToLower(name) { + case "default": + return Default, nil + case "im": + return IM, nil + case "mail": + return Mail, nil + case "reminder": + return Reminder, nil + case "sms": + return SMS, nil + case "loopingalarm": + return LoopingAlarm, nil + case "loopingalarm2": + return LoopingAlarm2, nil + case "loopingalarm3": + return LoopingAlarm3, nil + case "loopingalarm4": + return LoopingAlarm4, nil + case "loopingalarm5": + return LoopingAlarm5, nil + case "loopingalarm6": + return LoopingAlarm6, nil + case "loopingalarm7": + return LoopingAlarm7, nil + case "loopingalarm8": + return LoopingAlarm8, nil + case "loopingalarm9": + return LoopingAlarm9, nil + case "loopingalarm10": + return LoopingAlarm10, nil + case "loopingcall": + return LoopingCall, nil + case "loopingcall2": + return LoopingCall2, nil + case "loopingcall3": + return LoopingCall3, nil + case "loopingcall4": + return LoopingCall4, nil + case "loopingcall5": + return LoopingCall5, nil + case "loopingcall6": + return LoopingCall6, nil + case "loopingcall7": + return LoopingCall7, nil + case "loopingcall8": + return LoopingCall8, nil + case "loopingcall9": + return LoopingCall9, nil + case "loopingcall10": + return LoopingCall10, nil + case "silent": + return Silent, nil + default: + return Default, ErrorInvalidAudio + } +} + +// Returns a toastDuration given a user-provided input (useful for cli apps). +// +// The default duration is short. If the "name" doesn't match, then the default toastDuration is returned, +// along with ErrorInvalidDuration. Most of the time "short" is the most appropriate for a toast notification, +// and Microsoft recommend not using "long", but it can be useful for important dialogs or looping sound toasts. +// +// The following names are valid; +// - short +// - long +// +// Handle the error appropriately according to how your app should work. +func Duration(name string) (toastDuration, error) { + switch strings.ToLower(name) { + case "short": + return Short, nil + case "long": + return Long, nil + default: + return Short, ErrorInvalidDuration + } +} + +func invokeTemporaryScript(content string) error { + id, _ := uuid.NewV4() + file := filepath.Join(os.TempDir(), id.String()+".ps1") + defer os.Remove(file) + bomUtf8 := []byte{0xEF, 0xBB, 0xBF} + out := append(bomUtf8, []byte(content)...) + err := ioutil.WriteFile(file, out, 0600) + if err != nil { + return err + } + cmd := exec.Command("PowerShell", "-ExecutionPolicy", "Bypass", "-File", file) + cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} + if err = cmd.Run(); err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/godbus/dbus/v5/.travis.yml b/vendor/github.com/godbus/dbus/v5/.travis.yml new file mode 100644 index 0000000..dd67672 --- /dev/null +++ b/vendor/github.com/godbus/dbus/v5/.travis.yml @@ -0,0 +1,50 @@ +dist: bionic +language: go +go_import_path: github.com/godbus/dbus + +go: + - 1.11.x + - 1.12.x + - 1.13.x + - tip + +matrix: + fast_finish: true + allow_failures: + - go: tip + +addons: + apt: + packages: + - dbus + - dbus-x11 + +before_install: + - export GO111MODULE=on + +script: + - go test -v -race -mod=readonly ./... # Run all the tests with the race detector enabled + - go vet ./... # go vet is the official Go static analyzer + +jobs: + include: + # The build matrix doesn't cover build stages, so manually expand + # the jobs with anchors + - &multiarch + stage: "Multiarch Test" + go: 1.11.x + env: TARGETS="386 arm arm64 ppc64le" + before_install: + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + script: + - | + set -e + for target in $TARGETS; do + printf "\e[1mRunning test suite under ${target}.\e[0m\n" + GOARCH="$target" go test -v ./... + printf "\n\n" + done + - <<: *multiarch + go: 1.12.x + - <<: *multiarch + go: 1.13.x diff --git a/vendor/github.com/godbus/dbus/v5/CONTRIBUTING.md b/vendor/github.com/godbus/dbus/v5/CONTRIBUTING.md new file mode 100644 index 0000000..c88f9b2 --- /dev/null +++ b/vendor/github.com/godbus/dbus/v5/CONTRIBUTING.md @@ -0,0 +1,50 @@ +# How to Contribute + +## Getting Started + +- Fork the repository on GitHub +- Read the [README](README.markdown) for build and test instructions +- Play with the project, submit bugs, submit patches! + +## Contribution Flow + +This is a rough outline of what a contributor's workflow looks like: + +- Create a topic branch from where you want to base your work (usually master). +- Make commits of logical units. +- Make sure your commit messages are in the proper format (see below). +- Push your changes to a topic branch in your fork of the repository. +- Make sure the tests pass, and add any new tests as appropriate. +- Submit a pull request to the original repository. + +Thanks for your contributions! + +### Format of the Commit Message + +We follow a rough convention for commit messages that is designed to answer two +questions: what changed and why. The subject line should feature the what and +the body of the commit should describe the why. + +``` +scripts: add the test-cluster command + +this uses tmux to setup a test cluster that you can easily kill and +start for debugging. + +Fixes #38 +``` + +The format can be described more formally as follows: + +``` +: + + + +