diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a0ed3352ad..890883f8e5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,12 +8,12 @@ on: jobs: checks: name: Code style - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 steps: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.13 + go-version: 1.21 id: go - name: Checkout uses: actions/checkout@v2 @@ -26,12 +26,12 @@ jobs: generated: name: Generated code - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 steps: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.13 + go-version: 1.21 id: go - name: Checkout uses: actions/checkout@v2 @@ -42,12 +42,12 @@ jobs: build_and_test: name: Build and test - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 steps: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: ^1.13 + go-version: 1.21 id: go - name: Checkout uses: actions/checkout@v2 @@ -61,7 +61,7 @@ jobs: run: build/test-startup.sh cross-compile: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: matrix: os: [ "linux", "darwin", "windows" ] @@ -72,6 +72,6 @@ jobs: - name: Setup Go uses: actions/setup-go@v2 with: - go-version: "^1.13" + go-version: 1.21 - name: Build ${{ matrix.os }} binary run: make build-${{ matrix.os }} diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml deleted file mode 100644 index 6571641ff9..0000000000 --- a/.github/workflows/sonarcloud.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: sonarcloud - -on: - push: - branches: [ master ] -jobs: - sonarcloud: - name: Sonar static analysis - runs-on: ubuntu-18.04 - steps: - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: ^1.13 - id: go - - name: Checkout - uses: actions/checkout@v2 - with: - # Disabling shallow clone is recommended for improving relevancy of reporting - fetch-depth: 0 - - name: Install dependencies - # Need to install Typescript which is required by SonarCloud ro tun its checks - run: make deps testdeps - - name: Generate coverage report - run: make test-coverprofile - - name: SonarCloud Scan - uses: sonarsource/sonarcloud-github-action@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.travis.yml b/.travis.yml index d77fc72237..e2912b896e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go sudo: false go: - - 1.13.x + - 1.21.x env: - GO111MODULE=on diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9797624192..a276220bc5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,23 +1,23 @@ # Contributing to bosun and scollector - + We're glad you want to make a contribution! - + Fork this repository and send in a pull request when you're finished with your changes. Link any relevant issues in too. - -Take note of the build status of your pull request; only builds that pass will be accepted. + +Take note of the build status of your pull request; only builds that pass will be accepted. Please also keep to our conventions and style so we can keep this repository as clean as possible. - + ## Licence - + By contributing your code, you agree to licence your contribution under the terms of the [MIT licence]. - + All files are released with the MIT licence. ## Before contributing If you're about to raise an issue because you think you've found a bug, or you'd like to request a feature, or for any other reason, please read this first. -We're tracking issues in the issue tracker on GitHub. This includes bugs and feature requests. +We're tracking issues in the issue tracker on GitHub. This includes bugs and feature requests. It's not a support forum where we can answer questions about concrete Bosun instances or their configuration; unless, of course, they expose a bug in Bosun itself. Please use [StackOverflow] for support questions. There exists a Slack instance where general help questions can be asked or you can reach out to the developers. You can [request an invite here][SlackInvite]. @@ -26,11 +26,11 @@ Please also see also our [Code of Conduct]. ### Setting up your build system -The repository contains a [Makefile] which should make it easy to install all dependencies. Other than that, -you're going to need a recent (1.13+) Go environment, NPM and GCC. +The repository contains a [Makefile] which should make it easy to install all dependencies. Other than that, +you're going to need a recent (1.21+) Go environment, NPM and GCC. Run the following targets to get all dependencies: - `make deps` -- `make testdeps` +- `make testdeps` ### Bug reports @@ -41,29 +41,29 @@ Guidelines for bug reports: 1. **Use the GitHub issue search** — check if the issue has already been reported. -1. **Check if the issue has been fixed** — look for [closed issues] +1. **Check if the issue has been fixed** — look for [closed issues] or try to reproduce it using the latest code on the `master` branch. -A good bug report shouldn't leave others needing to chase you up for more information. +A good bug report shouldn't leave others needing to chase you up for more information. Be sure to include the details of your environment and relevant tests that demonstrate the failure. ### Feature requests Feature requests are very welcome. Please take a moment to make sure you consider the following: -1. **Use the GitHub search** to see if a request for that feature already exists. +1. **Use the GitHub search** to see if a request for that feature already exists. If so, please contribute to the issue instead of raising a new one. 1. Take a moment to think about whether your idea fits with the scope and aims of the project. -1. Remember, it's up to *you* to make a strong case to convince the maintainers of the merits of this feature. +1. Remember, it's up to *you* to make a strong case to convince the maintainers of the merits of this feature. Please provide as much detail and context as possible, this means explaining the use case and why it is likely to be common. ## Contributing code Thank you for contributing to Bosun :raised_hands: -Before opening a pull request, please take a moment to raise an issue describing the change or addition you'd like to -contribute. We'll do our best to support and review contributions, but there will be some things that don't fit the -plans we have for the project, which we therefore cannot accept. Reaching out to us on an issue helps all of us to be on +Before opening a pull request, please take a moment to raise an issue describing the change or addition you'd like to +contribute. We'll do our best to support and review contributions, but there will be some things that don't fit the +plans we have for the project, which we therefore cannot accept. Reaching out to us on an issue helps all of us to be on the same page and can save valuable time. We're using Github's labels to tag certain issues that we'd like help with. If you're a first time contributor, look out @@ -71,23 +71,23 @@ for issues tagged with [good first issue] for some of the easier issues to get y Use GitHub pull requests to submit code. General submission guidelines: -1. Add/update unit tests for your new feature or fix -1. Use the available targets in the [Makefile] (especially `make checks`) to perform the checks on your code. -For the full list of validation checks that will be run by the CI tool, see [.travis.yaml] and the Actions tab in +1. Add/update unit tests for your new feature or fix +1. Use the available targets in the [Makefile] (especially `make checks`) to perform the checks on your code. +For the full list of validation checks that will be run by the CI tool, see [.travis.yaml] and the Actions tab in Github. 1. Add any new third party dependencies to the `go.mod` file -1. The commit message should indicate what folder is being changed +1. The commit message should indicate what folder is being changed (example: `cmd/scollector: new xyz collector` or `docs: fix typo in window function`) -1. Documentation changes should be made in the same branch as code changes using the `docs` folder. -After the PR is approved is merged into the master branch it will show up on https://bosun.org -(and is rendered using Github Pages). +1. Documentation changes should be made in the same branch as code changes using the `docs` folder. +After the PR is approved is merged into the master branch it will show up on https://bosun.org +(and is rendered using Github Pages). Unless otherwise noted, the source files are distributed under the MIT license found in the LICENSE file. ### Style guidelines -We use the golang [Go code review comments] document as the basis for our style. -Take particular note of Error Strings, Mixed Caps, and Indent Error Flow sections. +We use the golang [Go code review comments] document as the basis for our style. +Take particular note of Error Strings, Mixed Caps, and Indent Error Flow sections. Also we don't have blank lines within functions. The make target `checks` will be run to make sure that the basic style guidelines are adhered to and fail the build @@ -96,13 +96,13 @@ if they weren't. ### Bosun submission guidelines 1. If changing HTML, JS, or other static content, run `make generate`. -1. [typescript][typescript] is required if changing JS files. - Invoke bosun with `-w` to watch for `.ts` changes and automatically run typescript. +1. [typescript][typescript] is required if changing JS files. + Invoke bosun with `-w` to watch for `.ts` changes and automatically run typescript. We currently use typescript 2.4.2: `npm i -g typescript@2.4.2` (or `make deps`) #### Note for vim users -As vim will usually save file in a temporary buffer, then will rename the file. +As vim will usually save file in a temporary buffer, then will rename the file. So for the *-w* option to work, one could eventually at this in `.vimrc`, assuming GOPATH is the homedir: @@ -120,8 +120,8 @@ set backupskip+=*/cmd/bosun/{*.go\\,web/static/{js/*.ts\\,templates/*.html}} ### scollector submission guidelines -1. New scollector collectors must have units, types, and descriptions for all new metrics. - Descriptions should not be in the `Add()` line, but in another data structure or constant. +1. New scollector collectors must have units, types, and descriptions for all new metrics. + Descriptions should not be in the `Add()` line, but in another data structure or constant. See [keepalive collectors] for the constants, and the [memcached] for good patterns. [Code of Conduct]: CODE_OF_CONDUCT.md "Code of Conduct" diff --git a/annotate/cmd/annotate/main.go b/annotate/cmd/annotate/main.go index 6b936a8498..90c61e5bac 100644 --- a/annotate/cmd/annotate/main.go +++ b/annotate/cmd/annotate/main.go @@ -52,7 +52,7 @@ func main() { end := time.Now().UTC() if *startFlag != "" { var err error - start, err = time.Parse(*startFlag, timeFormat) + start, err = time.Parse(timeFormat, *startFlag) if err != nil { log.Fatalf("Failed to parse start time, expecting format like %v, got %v", timeFormat, *startFlag) } diff --git a/build/dockerRelease.sh b/build/dockerRelease.sh index 0baf8034ea..4266fc84a0 100755 --- a/build/dockerRelease.sh +++ b/build/dockerRelease.sh @@ -11,4 +11,4 @@ docker run --rm \ -w /src/bosun.org \ -e OUTPUTDIR=/output/ \ -e GITHUB_ACCESS_TOKEN=$GITHUB_ACCESS_TOKEN \ - golang:1.13 /src/bosun.org/build/release.sh /src/bosun.org + golang:1.21 /src/bosun.org/build/release.sh /src/bosun.org diff --git a/cmd/bosun/web/embed.go b/cmd/bosun/web/embed.go index 6e6744fc9b..15a47dd2d3 100644 --- a/cmd/bosun/web/embed.go +++ b/cmd/bosun/web/embed.go @@ -34,7 +34,7 @@ func RunTsc() { tmp := filepath.Join(base, "bosun-new.js") dst := filepath.Join(base, "bosun.js") args := []string{ - "--out", tmp, + "--outFile", tmp, } matches, _ := filepath.Glob(filepath.Join(base, "*.ts")) sort.Strings(matches) diff --git a/cmd/bosun/web/static.go b/cmd/bosun/web/static.go index eaa240ccfb..6d15cdeec2 100644 --- a/cmd/bosun/web/static.go +++ b/cmd/bosun/web/static.go @@ -21572,490 +21572,492 @@ rW84lvhBpLIYXuBt0AANun2s92afrt6bj7Slx5SZFYhY/78AAAD//zo639oEkAAA "/js/bosun.js": { local: "web/static/js/bosun.js", - size: 153080, + size: 153746, modtime: 0, compressed: ` -H4sIAAAAAAAC/+y9fXfbNrIw/vfNp0C42ZCqZcpOm27XjtJfmqSb3Nu03djp3j6KH19IhCTWFMEAkGw1 -8Xf/HQxAEiQBkrLd3Tz3bM9pLJKDwdtgMJg3jEYj9ISROWEknRGUYbEceyu6IqkIo1BwD42e3msB2o/W -DIuYpvtzyla4UugtyRjhJBUc4RThtVgiQS9Iem+DGTqVv9AYBfN1OpMIUDBAH+8hhFDxBmCK1/I/sYx5 -+ILwGYszABkjzzuufn5LE4LG6KD2+h0nzAC/hn8ZEWumKzq+dx0MBsf3RqMVETjCAiM8pWuBMOJxukgI -YhIzZSgjbBVzHlPVle9i8YYI3NEZDVV8qDRAfyybgJMEquOjsjKO5pShKeVrVa/s6Asy5x0V52D2mvOv -ZdXohBC0ohFJ+ChOZ3EkaWFB0csNSQUKZjj1BZoSROB5SRhBUzLDa07Qf56gNScciSUWA2jja41AFW5v -aAU2iElj4n/ByVpObUzUz9oMv7zKmPoqf9U+nggs1lx9Vr9rAKfxSuOWv+rEk5INTtZYkEjBGC8s9FTp -ST6ycjiepSkVWFNu21iUgAEeogUR5mBIUsPo0yf08brWzteyeVj++fSpuTLeEM7xggBI/tsGdyIwEy+w -UJDlkw32ZRoVkPlvG9xzRqA7ehni6gtbiXcsAUD519pKumYz3UT1U0LB8thfx3XoV5QLgIUfNnw/Xaa6 -aerXp0/o/oII9PChHH94FwzsfcOCLCjbqn7lDwakIo5yTsOMUUHFNiMhJ0LS27vT52iMmgQh/5OEk9JL -NEaK5waDcC1mwSBULDcQ8Yp8Dz8HLROZ0kvn1BXfND21tXSXZv5hDdTrrGynucjeEr5OupiNAgqYk8mw -Nh7DDBZTZaeAtrLkZ32W+0wt9UZriuUif3QvZztPwzaWdrrN9LdtVv/2guAoiVP1PX9oEH06I0lCIk31 -+qkG9f06SeZxAVY+WsZODULnRlTZVyQrJz33FYANYt4YZOCa8NdGnuob/GzSp/r4Mq2XfJYQJv6LbNX3 -/MkGZEAcO7Y73rrdcdt2BzuP3O5ScomeMYa3gbH24jkKCiBzOGDcKEOBHOPzWIpRQ3SOdTUAfizfP0Hn -OExIuhBL+by3V0eSMwTZ/nM8OY/PjhvfjYaG2ZovA9nWqhBABoNquet7zV9qLGGunT1WJI8XXHVF/moM -h0bhHo+pHo+ZnjMFfyw/PEHns3JApu4BkWN5PpucT10DorGWI1Lwhr5DcbKe/kZmOd2qh9pI/EhI9Gx2 -oUD0Q307zEA+17/a5SHelIdKPrFmTC++tR79yqsa+D8o4xVg40UN9AfMxbNpKjeWxCzRfN9SMBf7mm9r -hX5mZBPTNX8ddS0rA9JNS5GmJV25UeZYfnyCzklJT5GbnmKJ6JxMziMXQRmoFVHFUV9K+pFciZw5qt8m -267wVUNQeM1/JmkUp4vnCeVuecHOZ8w10I/VwKrKN1kbr5HTogDKje3+GK3TiMzjlERSwrufQxgb1qdP -Gm+5uw1s06C3L8FMFu0aVw08xwknNpGmMqimHAEv/sboOuvY7krAgC8ae50c2o2cFL7Qv10HJb6wH5Tq -C5ovWhf0SZyQdAZ8QmLUT/VzC3/JGGUKRj8cu7iaRGPlavl+Krtm2U+NPTmHsOzJC6q/L2h1ZevxIHUS -KEaNaL5QlTeKYseuVfZ8GScRA27rZCtykDVYv/3aKLDbjj3r2rFztOUOZVDcrGuXqkh8ZUGT0uFFl1ZD -AQVNAi+3NudgLnKgfkNZgO82kHzRNZIarXUg+WIH0ecipZcJiRawylq6bUL2E3OqZXYTddQAtMs6Je4b -jkKFnhRR2Lkm7802ecAXzUNCgUQ2sYTT7weWk9ez4vgq4Yw39TMSjpM4XQBD4hq68q4hfM3kxhoBl8wL -VF8et601Q9dn0evidLFOMOvQ/mqofUbXgvSE5TiNRfx7F/iUUsEFw1kH3G8f1oRtO4DkJs/4jDLSqc6W -58wcRJIOaJKeZXK7zcdkRaN1QgI//+QP0QTG2E8Xb+VI+EP1CADPaSoYTRLCeP5+tZgxgsN0cSI7aH8b -CkoTERdf08WJHrj8zToO8YyU32dJnE0pZpE/vHc2OL6XNy+c0XQeL4KJ/wDm6WdGN3FEmD9E/oOEzkBz -Unm5FCIzXpTLpYpgiBrFh6hS2Fw+DdhwKVbJ4zc0IkGVc5AUTxMSHYEsNbxXFbI+rGNGvsOcHCnpqWQE -xuKTE3e5hL20bPx6iFidSVU7FMoyCs7Ypsuf8Nkf+cP63h+LhBwh/wXmy3wGKt/JKkuwIO9YcoT8DDMR -44SPohwcRqJWZlaQjYn4uWCJb+2yblssyIo7G/hafe3TOEDU2TBA2NkocpUxZ5teXmWMgGWjX8Mkss52 -SaTdzQIm6W6Y/tyrUQDb3SwJ1tmuBcPZ0tmsv6mvfVoFiDobBQg7G7WkXDjbBNr0X2Jy2a9dEldnsyRO -aFWdAyQURz+lJwSz2bKNCeiGc3XWcLb9JP/ep+UaWWfjNdLOUVWs2dm25/BZ21b7tVBh7GygwnwX46sO -x84uPJv1b7s+Z3e1XaHsptiYC8q27pbBOfFVDtWLcBVwN+0quM4mZmvRspkIjF6mom/bsnX3mvp5LTrb -hAtrinvkDJBe81oakjrntgDt3ur0Adu92xUAvTa83LbQuedpwM4GgpsDb1kZM8K58jpwbTNHyHsCaPaT -mIunT0bGg9dd9yiVLNlR/4+gVS7b0NKElFzuA8anT0blb3sDaiIVFUvCLmNeF/IYiWJGZuKUHiF/ZB/H -iiwZxqkgbEYyIXdaOCYagumHumSnzzvNM6kvZUjChX9kyIaKa9qOsHr6gacSLI8RE/+/99/EaZwxOo8T -wvwzNEa+lFX9Y2tx3RSFpQlyXT3ZHjeG4roizbN1KkX5XJoGgZ1RKk5mNCNVaT2HGaISoiKSF2/DBzQN -9Png+RKnC3KyBtKoIARfjyGaKT3fEGVap2yRqnO8QGxonJcJH6g61PtjVym+pEwkcXohBfhSR9oYlOKA -ZhyyXAe1yjkMTYoxNd6H5ToP/O/gI2yQaOI/4Hp49SAV5yT48aExCz5ei+UJYZu4EC2MiQFkQ71U9Jlp -iB58MCdqiJ6VKCqzxv+AGVM4uaBZICl5cGxfkAoM59rjsqJNHWM8R8F9Pdm6+hatebpOEpeGJ8dWRRZK -MYVEpyUzR+Oxwc59tIc2aA/5ip+31P0Rqf6o86a5AJvtsDb3ujFAcRqLyvBwIkScLpzjjjfkpTr1ojHK -gcOT8vWxrZjeV21Fn1U/WYt/WMdEmIX+Ll9YQTeEcWVaKYB/Ua+s4DQjqeDRtGxYFU/4Bv9GGbo/Rgfo -4cPGxzjVH63IyRVeZQkpz41mq17WP1pRqN3RMmyn5gf7mK/FEo3NtVkFMz6Er9NYBOWUrMVSYx6WNb7j -hKV4RYxXb2lCuPH8c+n7N2ijut84TdsXpSbf/zz56ceQCxani3i+DTZDIOgh8hHyW2uYCop71UDSGY3I -u7evn9NVRlOSikCWDTaDVvyq2E1r2LTiZuTD+ZzR1fmqgn9lMySyQsGLs+VbJS8ENRW0hPug4f6+Jmwb -wE5Vg/oQrohg8QyN0ar6hYUf1oTFRMsyH2oFdTdZW5cynJLkeYI5rzIbMMABs5/HVzbGrL6g8XiMNjSO -0MEAfUT5S+QB3n3vuMb8+GUsZsscv42jzjAnyJuxWMQznHhHeS806j3kRXKnYt6xo+g6vUjpZWorGadz -6ix3iVkapwtbufyTq6gy9dtKcrWhOkuC0menTkZkjteJsBVRXzynmaMx+RucrImc+I/Nb5xoC2dJFBdk -O0RQxkYQG+VkNDbs4bb5jUhCBKm2YHJBtmdteyZJOLHgaiJBY9XA/mOwsPbTwTHaWn1d1R3z2ZJI0fH7 -OBGmw13BSuaM8GWl3jmA2pgJbH8fwojMCaszkWpFEmGtxspuH6+wIDY+lMkqpBApR0Se4bN4hMFo9K1C -OJbikIVlqq/KSXUwaMxRqJeAcdKKsMAD93TmHdKM0TSnQcljV0ERrwhOo0iZyiSs3VZWkGLICKfJpjEe -15ZuwEo1OkEYs5J3yMhvZCbgex1r9TmbePM4xUmy9c4CQ3q2c/EozBhdxZVzTPlzNEIn8e8E0TkSS4IS -uqAoTlFwGUdiiXAaoSWJF0sxyCHgaFLAyTcp3kwxq9Lw72iMHj2uEjZl8QKN0V8ODqrvE4lfHmP/9NUU -P4r+6lc/R5hdwNfD+eNHf/269nUFMpT/py8ff02mjY/KCZf/jkZQe/XrdMFwBO1EXwBo9fMsZrMEmNyk -MqyTw8cHQwT/yKadVTUXk8etX+EDgECvrYWtn89qTGIjhzL6MuQkkUTj/0nOiF8lvxBnGUmjwOebReOT -ECzw1dz6Q8R/t34HKlCfy/r5ZqGrfZYkgc/ITITTRgVyFQWTSdkVNIF5eKQH5qwGT1IhWZS9A7IOew9m -UgKRZ96po4tGFzpGQDbOCsOu/KGiFvvnbevneZwklXOx3N2KxTk5PDuusw1dcNtS6gBKOeckw2IZRjFe -0TSyT0xOiDtNg0RrH+Wo0dbGPiFXkv8Gyc0g0gtOHpHhxeHjg8YaLGypcoke2L9ztDdGPkoAyWWB7rIF -an9nMP3z//hW9spNbUXL/K+InTy4YPQCtDaXy1gQvwVoP6flw5xjdaxKK0Zj/r+8CRH0WIstPcm7ED5u -X47+4cHBn/22AW2r5cq9dHI6als+ivVbB07vCrsMmB2bHrKr1kVuNNZaetvKWDpKM3+Ivn4UFrR0A+b1 -yMm8bkLWjyxkLTmAYDjlsaz/hTZHSjHicU2M0CLqc7qGML+DpuZQATi9gSGuzUCyt2dx4q1UMkaHVlGO -PrOLy9bjRNEYo5hNn2lW7dYoth2GpLiwXM/nCSnIuMYBeyyDxlKoUMcQxQaBxMdWibicz8CGW89x0Jx2 -C/StltHtl9KuS6U23iqeja5FUEz+0ELuVsddQ/CvkDROEhv94CSp6VzgjTZxWFTeFjz1FYIaalLL6bux -bJ5C9a2I9/d7LBwQKpYU/K0fBP6fCsONP5DyUWOg5OeaW1ZDJV47x+oy/mCHw6jsLxwh48hl0wO0odZ7 -IA1st985DFNNT38LTbn72WwMJ+IEVn5M07c4XZAATjDQMu1qO7BXeD3oNCs2daOFBU3waCoP2So4U4qI -v/7666+jN29GL17sv3p1tFodce4f38sTAihVVQFdLV6AJXSGExL4pPQjYCTBIt4QOThHZgzIWqwZOUJe -nKI/c688cWWYiyPk/Znv4wU13nP5MjIhV/BmZb5pvlrCm6X5pvkqgjeR+ab56g28Sc03zVdbeLM13+Sv -tGOunJWCQtg6Ie9YEuCLIZozupKjlBMNnN0zkn7HMDi144swTiNy9dM88D56em7hxJxQTmxQ1yYU6IZ+ -xCos9CLk6ykXTFJbUYcBnDsCmLBxugjK9uyhw6FRs1F2DdHbaiHL/n3ro71iNHxohks1VbRxYBZ5KEfG -qc3So5ZHHA+qRfOOnC8YXWcuJDnUoBKQs2bJ8b3rcrKUMf9/03SNRkhy3qPRCMzi2pHsWzVHS5wxerUN -OWEbwsKIXqZCDnS6hQmRy3/86ODw6/2Dv+wfHjzMx2P86PDPXz47+LJBDxr5nVADVN6TIjzJ2fbfvNl/ -8cIbNFFBm/uiAs7oDTrohBHYUOlFTAJl54M9RzL2LTfphVxlMSP6KKs2sC2vR9ZHZXzRi5pwKz/l0fkB -PCz0wwDtKWzoC/ToK/QF+vog/+fw4ODANMnpRqAx8o7zh7GH9hR2Qd+dPj9R5DQwgwtqKn4DSyX1QURn -a9gbZjAeaIwIn+FMDYxspQd16ZfaWLFXoNuTjQI//ZFXGWRGcGQMsTmq8vnl3601GasQSxGg2riQZ0ks -Av84t4gWkTEQFHSMYvQEzcoYoFoIUB5DNcMTM/DnchknBAWzcLbE7JkIDgYgEPqoJuFDUWPxygXbFAEk -lcwKnqG6qhAeDGx6knWqR8FErYpp5EY1A0v0iPJ7MEaeMMyJZegtZO95Q7R/OKgUNzJqfDTrMSbUV06h -+1TC+dXiPC/urLpaeohUU4Dq6w05WdLL0vuQtzapBNvnS3rZbFYd2ZZwR/vqqIZoK89zRRNHI9hdjnLm -zAWeXdANYfOEXoYzuhrh0eHjR1//5S+Pvxp98/VXj778uvQVU+adwGdkQxiveofV+ld+AM9/k5b10Vf5 -VMVcRZUpKIepbXJ27A56VZEFPIlnJBiEumkFPzkGoQg2siJfSC6SKsZ9mouk/8d3BC8d7MMI5GE8rW5e -RaRAzcur8O2qOdop3y+LL5f24ar43K2rcaJwWgK/anlcyiFD9SqoaVy0n5Psu6H1FGxbG/ISDgs6DRSy -kFxlzHpknWGw4TeswPbqrqtEkAOVPjsNZ5zGca7eTV9Hg4A/iBOL1Y7WcgTXG6PufaTzD5ldMeyMJSA8 -2QGJSqyhu2zxgSNvlK+Kci/0bRCnSwK1+bMloytihfkB/NgqR2ISxYIyh6+Y+ih3NPhRHSf1LpzT2ZrX -NV/6m2R1apCDgZQX3nHyD4YziMOquf61lLKEbakDm1geIR/PyGhFIwJeeNUBGzaDRI9AlglTelnTRV3b -2/JgmtDZxclMLuE4XaAxep3O4zQW2zZnGeUvuYnJpWQFJBVq4K08ceeDPAhw+cRUJurYCssgQ5LuD1cD -K8f4B9h7gwHaR4f2kjOarFepvXCckoDRy0EulDQQFGW0liFc0Q05pbLQUGNusXtbPEEFnhqLCU9hLTHI -fsT9qqBiLCsHZbN1mqr5NGB3cYVQqqOM8lx3JBFUDhmFuB+1HBoMljKwlX0oWo4JBpsZFI63d+FZwfJ8 -VqARUhmmuNOdQvuW5eB/V4/H7cjPhcoGpbwvKgmhGpo1lThqjHwOmH2XeivX/G0W56YygEBsGvAH2AgK -F+E95Evgb1N6CUP8BotlOE8oZUHJJdAoF5BaqoQa0BgJ+nyJmQjMcevUl9n7mq5XUymFOvqay0hzyl7i -2bJSY6tttr7IU3XW9z86IgqslakYdLMegRebIRJ4cdFWYd5VWanmHOip3apS/w/auTdG/rClofbBtaGR -LZUEABMvG+9Gej1wfytadd3SqijUgyz/9Neqms6wmHWuxmvngit4ne/fyH+JshZeQXQaFVLNoLJDG0z3 -pvatzwwdaNs8LD6K7XaAhuAoGbI/rEh8nz7BmbS+DzSKSnZcFs2lPkvRjp1qB4k2YwObt5sKYlBRlm7b -ZLffZD7FnqzpCJFVJrbecefm0Qy0sG4abfEYNrtpzmMZ4Ta/k5wVT2qOonUexpqmzOjKJW9Bbt4mTjtv -/EUp3Qy/cpwMkeAuLgfLGhyzJ3uSeW9wcmbbNAYtW6TmpaCOcVRjMxjb+UbXtnAn28GO20An+7ez/R3Y -vW18W9m7OmJrKra3/AUW+AgmeGj9/iNekSOopdmcZoVA2pM4ujoDQbgpZV3bXUKhXAt7vCDbiF5WTaUP -IJzLZllWX0K+jOfgES0P6OrVBdk+h3PqGB1+2ca/SSPCAb4qLBmDvy+U6a/TpwJMi1bVDGRv6KOXMYK8 -PyfNTL6DKEE5P/hUROVKkFweLMxL6Dx6bow8ed72GiVTKuL5tmFh1l9XfPELTiDhn/17kQ/Wa6KOSucd -y9eNxIsFeQM5m1q25kZLgvuVtkOC5KDWoPuyztYQnbx1rf3LG2n4IXW2tI64MRqyabLNGWa8wBzUwAYh -5m/iJIk5mdE04sGgFqR2XcvWpubbEpEgye2CbA2iuDBT0DmVrgZG21LWKCclWGtgRlOQuSBbf2iVqMy4 -kkKrLuvzh1CtVdKzSDAld+PlPCwsaFtFx/V0FYs+E29QdGDvUp2cAotAeL9O8AZ1ryE1M5A25Aq3UdzN -XMUMGadZXB5Jj0xu1NzLdDLooxpjaAL+F9nyI3NmmiA/wrI+qnKoey1boyFHF6tMMQCbsx4WeOKfShn9 -rEgcrrOb4ygK2ldlqxDdUAkV6UpA3XIrvUyxfNYsCfyRP7jDgxzYu/Xn416ePLe2hNRSb3yGu24clQzT -dNYyiC2ODONEHNlprhEqVfTcVFjH0V2o7bB51wMkZSzvdAAZFFmU7rZznrc7dXU0rUA9x3FCIiQoWhCB -jBZfxmKJ4ugIeeawoD3kDZVuQX2R9fQ5+bv3g7ZRGhy3lzAuTwjsu4Z7ulUw4OgnZVy+d4OpziPeJYZc -3XrszmbS2oz80ohbtWSmkJTK35u25hXl4lYtWVIuOhph7ueVW1E6d3aXCaBBHbUrR4ww/vBvYP2C8PtO -U0IlLVKjls+ZUzQGWicKcbqw5hssBPuWwLVELHetqzS4kHKRMBiRYjMAGbbrNOs9tDb67pWbzaMMDN7d -kLQkxYmnMHpnrXuWQfev72T76kFUdTppJaoe89O2JIJyRAc9Sjm2hj+QdHWEfMceWpmmxnbah857Lc4/ -is57y5tw802ZEKXr+psSsnZLmZlUxbhhoJ5lB5sZVtZFYhWm8qnIFz8TtmomdQYANFaAtTTLORo0LjBa -IACvBoHfNRijZWiMjKca3CwhOIX8L/W03feNQjZ1wozSi19wIntReqp5+kQtm+VZDra6kI0i6p3XoB1p -uI9bpusV5mUmm2rCkp4XQsD8mOlw+l8NkbXcCpGFyrd6jHhLmqggC7+LBUcPa7M+sGQqarnyoeSOrYNl -dPJ74DHlaE1j0XDPk+9kB0B1U+uD+lZrtU1OhnHShGxaVf4VM6KHut7Xws9INlPZZ9TsDXpPQFZ2v3UG -5Cr8/IceeEX/QWctg87UoI/HzlHPXWFhxHsPeGlLbB3vvxHxVvNh+16VL6Ci8z2QvisZmJEIvOHc2uDR -Dx+iUvf6QiXECdYD66Uf5g5RHZSKq2+FFw/Reoj+ejBocZOt4O43ftbeuoZwB9TlztWNtrG3tWIu97vW -CwXPJWpN+GbelHl8hXC0ilN1KatYYoGWmCNyJRhWq29GGSM8o3AVkZTQVLCZcXsrDw2McIMpl0XRCsNV -tWghDyT49y1kYik8r5FRSFvHOCKYx8kWoRW+ULVdkFTdg4oWDKcC6fxWZiM4EpSWTTgP6qt7EBI8M5Od -ym+2xb3C/KIZDnoenNtZdQNv5gqlLPmxRAK/1a7nMg5DSz6NkSq3S2wikFNeCRoDJkvyz+r9j2YuPnWn -ReEBz7U86Rn5OL1qak0pyvJ4lSUEzXI3PjnvfEkvEUZP8oWyH6fZWjzVkwyybb7gXssvpV61Q851lALx -tSGb6nyD8o8ZkOHAET6IU30/0qSSgvSsMmKO0o3RK8Yj8NZmES+P6DQTIzuQDmuAz/gR8mZCR0WWWYb9 -JzC+SPKFsSfIlfAgmcXYm1O22tcIPITSxX4Uc+AwY28mlCpHs5xg4MnvcI1H+TFvWfltn8LF0XzsfUQL -IgRhJ/BvngPUe+pDHMKtlepmnvVdFOr+A6Ecj+E3n+2mZB+ivDjoqm6ldM9D7ErVe/HG7jifB8pVC5y6 -Pe0FreLXzy7gKm79bAeGlNEbnEhOspcbDop3nz6hx20W8rxE8Uq7jDXzwSlHulcYcsLpUubLjoIqf2/U -KJu///Spfr7Pdb1AXedysaAx8n+gGHY5na86DH1LZsCEzASJznF+S5p2SoBHRyTECsdJCaoeHbNTCbE1 -Zqn63jFbgoAADOY+uFkkuLHH+U4xGHJyT7cZOaUnS3DM98wrqTwLWSmnDrgU8atHN4gNIVcZTqMX8Xze -1N3kc7vmgq7y/MaORI9VQnlFEjnm3umSoNy5U9ECSEVTQlI0U6AhOpUi1YrglKMtXSPMCIpTpFJXIjoH -SeeSxUIi4XRFaErAgONzjYOH6JSiTUwuIQWdfgkxyfDCP8Ebgl7EOKGLNfFBfJI1XcZJgjghCKN1Gs9j -EqEons9liwiiabJFl3ibG6NYHOVZ75S2DXKTolhKTaoqDIrBOOUCSxatgdk6IXlEhqx4RrOtrJ0V7YxT -QVEsQvSr7j0XsmEgFwqhtHlc9uAyFku6FiiiINMtYz5EU7lRLUkKHVqtOVyFvyFsi2aYkfk6QSkFISIf -RYJwurUMoWdZoYoe6Qs6azqxebBQvSPkSdbP82jtkLLFCBJ3QtIS/icA2zfeeFWjvpevyG5UOWQDRULp -xTrrRqDg9oXcoRtIwJUgVptQNyoTuoFqhWeMduMAMO650pnouC8jjs7i7zpdx0kEF4h8z+jq5VXG7AmD -wA24l+8H+HeSy2dGqL8nCK9nhFWXvV6hcT0+SB6G0kitqQ9rohwIml6MOgDZ5LgTTVNnZSSx0Q4Q9PcP -JZutFioIqLWc7YRg7Sbak/2yeNNGV/UkUE03mXwDfJ++T4v8Bz7aq1a1h3z08X1qjQf6D15cLPrxI1wC -rK89vb4+km8AC+g9rq8RTeUr8K8FI+f1tQvrlEZbNEb/8yR7qtxKa6hc5Z5kT0/xgh85v8Nieur6/B8f -PzLJX9CDiyF6sEFHY6Sa667xP/7jiWBPn4jo6cePDy6ur5+MRJQ/bvLHkWBtdZI0aunSSLX5fxwA13Ly -/Ca1EzPPO4S41mJbUZHDNIVtsiygY/i996k3CFc4Mw5liZEYKgkFi1fBoJkcClBO4N/cJXofHZ5Jop0x -MD5IunVA1WIXzW4o2N9onMrGAfOq1QwUvTfWWTF2pGUjBYitoKuYr3It5M10Q143Jsoij+6NoRNWuHZJ -DwBFr7jL0WiGU18gDsGg+Ya/TkWcIDwXhOUHTykxrLMICyn6vJAHOrn3u7MYS3SnNNCscVgZw15RLkW7 -zT5a7TZyyE4VA2sOY5PMmZzW0f99z79QSVE+5bP9ydwcP6lN9xNsdoP3fC+YvL98v/8+fP/gbG/wnn/x -/uNosTq26JDEbGnZcvSEfay7+VU2EEs0RmOzcMNocaIFoiIrtMApQcAGoLc/6CWYykJyRWZBOQkDV7SJ -9viGkpPDs+O2AA0F9MgBlMQcbuWHtkq0Z/YYkvsS0KVh00hswS/lQAByYDdc9IkxkXD6At42k0o9l0Mf -nyud8GeJ+dIVOaslrqU+MPv+4FZuUJWjcdNDrTcnsol6bhfh2vna8EWsilo6yUpbPEbtoG7FU0myZ/F+ -/cy4qLVvrRHn93Z2cKz6dcc0fZvHvnnqdvk5EbNleTS2uTBafNQYARLp48fTTlP140YtS0BrYohze2aI -IvPAuS3nwL80bwRNA2+arJnXlmbBzNKAsyzZ9kib2Hv92iwM1+754NtU4CtX8AmekVO6WCTkVbxY5knz -3Y2FKBBAaOtGW2oNSyeKljl8projChx9+5zSfFjuMtFcpDLQEPGAzLRPTfX2W7IgV9pv7C1ZvLzKAu// -vn/Pv5DrHbbzPeS9f8/35LPOUbXw7GQsz9aBgXZomc4pnl1cYhZxfWlqcwguGc5st1ojfaXMCYGksxvi -xrCkCfkHZZETgkFPVS2tVjZJm0InNtAMunM7gm2wXThwT+BrrXivTGQzOKbIw7Yg4mVC5M/vtq8jFcO9 -74OeYKCRvk4F/SUmlw4vYL6kl0EZusQncXTWTmtK/Vu5t82SEyaH8xOlcK9q2lGvK1taM2MWJ63WnIj2 -3dSasaQta6bsECSvdHpAr1kytMhVt/IvzRid6bQJrpthZMM0SJ5o4UTO4sGZPeHCnbl0ghcO/Dr7Q1wq -UXmVUpCT007exQsi3lZsTu1b0P3mNYM3C0kruyzi2YW921bBf6TNEedSurdkM9+ReOy2t0LQ8x3h6IU4 -LFuvr3BoySNjhBUZtbQFxBeh/zAt98dot+JtlkF3tumuXALtwfjXPQc3X4Hy9/G9XVruEFeuHVTQN4ip -gwa0sL9QlyhazGFLV+ySXWAMdliQFrMlJ8K6/9nEF8msq2GQdVN8fi1KzeJu2WYEtWLSJvYaHmVLt51u -ZQ1hzCGaNVCBroKWL24R4KpNoBK//B0Iaqtffrp5JRU3gLprQLO2EvwJenTDax5kt0Zj4C6Qa/fYei0c -JLfCUx7AD0bXaRSoomWbB5bxiNATx7UXTcPQdVtAvFzVrQIREb3i7P9Ntn8A2ZquKLV5s5BEDuygjO4q -LT4zLfRZ1KdSsaER+vqg/XJX4whRuywDxFb7xch1LRj87cj2VKibbOql0Qg9E4KsMjDPg830fwx7yZzS -/0FxiiiLCJAhJwKtM/RhHc8u0G/rVYamRFwSkpaJ1nEaqap2PYhCofwECg+2I6hp22oK4aaNy3XL8+zi -P9er7BSzBbHngLLltjbtWY301s00F9DJUBAuAmUPi88Grm27qO43NEYx2kOHx+i3RpW/2as0JvJ5QjlB -U4ZnF0QgLBAXmAlE54BJO7eQFDxIYHjDVskNjCrvr0crsxu/ubtxO8GrYJtyVeUmnZym3vMvxu/5FxWj -zWiljBVFu45bewN4e0qbTRopLDYgJAEuq9VjV+HyurfaoGhT58aTYSaMxVHrTL5AkC0ACormRtv745tu -93WFN6CdHJwNVdsmh2euuicHZyoTUG4gM0wG9YP9x3v9p0/xSyPksIpsB+0NEbkP2t+0T185G+DNZ3dF -VwY2AAjhKRh9DMIvBtcjy1AAQEsHG26FdjNcRz9+NMyHhatf2ZnUsQeltmKpU4Esl+e5MtJKNnIUvI/2 -BiNnGqMedyEZUegF4+fCv3OVTH56zdPZtJ65bPYVEKu8jrN3vxuRWmpxVHA9RI/sZ/kmF3KkVmyv2H5S -LCg+PyArYtdU0KJZqOd2Wg3k0g9WZu69thHKNfZUUEj8vGpymd5s+A4UZ5YB89URPP+SLo5AarcENrdr -uyS197G7lbq7s+P2/NJNZYoG0ZfF23A0kmXlx5pyIZqO8b3SkuYnoCqKU3d6UktmU1ptQ+k837N4tf7S -nb5X8eKw4A+RvhimfowY9EaWHykauIpUT71RgY962avCZb3fmFR2G2NsGk7svdAZ2qkSl6kR7IlAa9Qa -OPT7wa4WiM/+vG7jNrrRgraJYyqms+OgD02W6Dox1bQIDx92axGKZtbSmd1er1DRZ1nUAIDAEZpnHu0P -e10aWSgAlCbjiXFrVAf+RzdIbbyDnu76MzaowezZrqAriwvqvH6OdhQtBsSFweC8tvLACztGAGBc1eex -L2MzV1oZEWPtbq+b96xs9p9rlTSMxabJ0Z1qRlLI+TLmgrJtXgJUXK/Uu5b00G3WoOYmsFTbR1myj5zb -YWT9LA2mpZTWnhto95xMv19Wo8w3jturNiEjWYJnJBgFk+HH62BwNhgthsh/cPh+/ejgYOq3VpNQHMkN -Th4BfoZopcrdPqlg2yHa2Oy0mzCiKcmj+OQ+swmd499Dh1wkKGpq/KpVWccabp68QGMETW5mqO11yWXF -1bnzsstK1X0vvawGgtzs8ss73kist1X22zwMaWGj3DK6tpKb3Gr6T2Knm7AMq1HMVD1aHKNDHSrzgM9I -KNiai2f8lVglild+R6PtXTKvTdsVGbswrfo6ap4sHTypjA+o82iHJaTHQOYXk+w4ksWO9FJu+xqzK09v -BSiPyGmW7qEtJVVEDRxtjYRetLbwOzUItebZ6MjZtu/axtGFrlf0bsUIcqHibgUOn0Ohlr2xhnVycZYP -nCo6uTjrEpNTKmytOVe9MlWkzQQhcGdG6lIdbnCiRsUl1MiqJx6AgGY6la0vSvW9kUkW+JnFqXDnky4r -U4BFZR8RvDhCJZLrPvWeQ62vTk9/bozJMmttwTIL3xCxpJDlr2zIMtvNSdmhjoarWmhdPoXd88fWeVa3 -K7TPtuCOyW7Ti3vQRcv1JLI9EzUJliE/D4SD3LBou6ykk+bMunPaC8DcKuSMDLwOGnTbtm5EE5XmVGmj -0SobjSDXZf/9aAc3p13yyB8bJFTesYTRGP3nyU8/hkqSiudbRUEvICOtFCyHyEfIt1dYnA4Uz4SnDsUr -QP5DPfK2Gz/pZSpFbZVhpdNIOE3oVNvgv0voNJg0RZ2zIfoIjuFHCPLPjLIEx+nxbIkZJ2K8FvP9b7zG -0HK8Ic94IPEPkadCziXSjqsu4vm8R8sdBqCRLO7bnNA9hdQ7sohyTWdxT98R4NUvCeiUtHY+UmvNFlDU -p0/I+5GiF/F8bjHmjEboLeFEFD57EBEWQ14HRlDMUUpBUaaS8nx750da3VTv+yKrq6QzqNJI0LrLyVPS -SI/ZvlNfXQNPaTs7wZs4XRyjnxOCOUH/wHE9wYCL4iSeu6A4mPQjc6j/pWRZHR49Ryd4Q6Jj9JZo/36v -6wo97SC7TiOVKvDu1SyVdt6M/hLMeSf5WapzkE1LgkjlfbCvebrXpWC31+mai+56NRF4PeJXdQmV9caz -DqGGVI008h/LTcXcSXunf7MXCmDh9Ut8CInhAF4eT+Tf2rdOi6lKCRhhEa7griePk9RC6edlTSZLYOuE -jEzxb6QdEgq0vZYme2EX7iAZ6QsslLzgEqUaXXhZZtAuS9/SG6BRic64fR+p7CDoOY2IUad6e/xH2tvb -+t2PMajG2MmwkkBQ5airpg60F2vJHOibhFLsINMY6I0fGT2MsDhC3hOVmed62EgwaK/all/Qnwm/ml/w -HUuOkD/iAot4NsowEzFOeIWIw6VYJSrtX2tKvxeYL6cUs6hvVr/uvH23yc+XFLqnPP+bJd2YVnbZsvXF -iSBGwiP1XMs9XoF1KKgKRGb+cfXSs1/L0nSHAGjDGUKhbBram9enFmOcf3JcMU7mjPBlUO1QKJYk7Wed -MEbb77yJo3GtrkkLhLE7q+cdCIrg0EzEbKl057xwt9nhVt4bXTvZecdkNRGyJgrLNHve0BWQdQtqQbtd -UWlL7ylZWhQzAlc3Br7gWmPr28LaNac0ErlWmVDBfXTaQsV4SjE4idOLIzMIVTENkpDVEGEhWCM5tzbC -8pP85tMWI5fRQnnWpXOAGY/HyKegd60T7XEzyf+1yeor4/KcrrK1utqi5+BA249qjZwZaI6QP64jruZK -ildEAtVeLwmO5Lbhj/2yB8POSTGrvv3MgIN8cem0K7lMzQ/HKGCJii0+/owZliW9hxEWZOw5DEq5/cj7 -9ddff91/82b/xQtvMEB7yHsosXSXe/XqaLXy2u/Z05YHQXFv6rPUCTdobxo1OSiwqGa+KqKUyhoNd5rc -qBYVQEPkr4ybPP28SvCLUj8r7i8b5ftS83vRHYHslXqwfM4n/CzXhl3fc4FFk+hsuZwsz1aryeqsKHRd -6dRpvCLVDpWEEmwGpkuRUu1flp8bX1dcj0ZKL5Vv0cr4ihfU2GuUk1FqvAEvbYXhac27SBeVf32z2zWx -WuOLU+RbBqd0mAFvsXenz1EAsf5pivYqE1zMiWoOULJswh7yB35lBKvXRlbGMcNCECYbNAL/7CD6tP2U -flp+Wn3ig2AfL+jg29FxZdh1ERWDsRkYw2IhiTrBqfQkclVNDs8GQ7SaPDorvAx8SP38piDC6sDUMB0A -lViYrye4pBevF9O96Rbz4BK8mwEiVBUOu5Z7K902DfiQr6kkfrsDTd6Alym4WrjOiAYP0LXrbpANThpI -BtVlYUVmBEMaNAmEaC+V58LzwOAHEcfWGD63wUs1M6U/xKnz4nY5caGsKgCb/S1PvZCXKEHjMheHEuB0 -Oo7Ax76jtyQJ9Qw2k9cZMEtG5Jz48hh0NBpdXl7ChobTSO5k8vA4uqQsiWYJnV2MZjTdECZIBNvxtzGn -Y78d9d64ZCi+3PbevHnx4vTVq9WqpeF5Sf9hdjg+cNRQv2a/3I114yvLYYguWl34K5VKdhdcoD30aFDc -ir/pbwIqyEAOUkCSwS7XLnRJdpq5vEvjq386g5GV7sxkci/VHXjN6t+85t+85t+85nPgNSdxOvvnSjJQ -492JMuUaWUHYxI/0Mhh05o1tGxNKExFnf9SY5KRG9KqTfycHZ4NQ1xt8RCCryo9HyJtSIejK26kLvuCn -eOr/QR0Afi7PnrrltSxucjq0asvUsW+c9geyEeFMsOS/yNa1qlxh39c2izbcthBzxCniy3gu9kkKeTVx -iqYEzfB6sYSEBGydIqxuL7hckhTBoMmCM5wkJILIEBv+4s6DrG4mNXtUUdShhw+RfAntuZN+8stYzJaV -qlxIZ5gT9Ncj2XI8dTOtjQj15VovyByvExG0RL1LGtjI7QCHcIV1O6TKFQDQKuAjpumJfOculiNGY+XZ -qh2SARMoVN5DHvvim/rQiq9ada05LyExgGroXj1ip88UFSN9+KUcaqC51qQBzRbdbzTpj0uH8JlNNxRb -T62z3V4qwWB/5etpKH++zh3d36feoH0mK5k4ZFmVjAMwqbjghw/RaILei7ORSlPB19NJfDZQKTpaJ6a9 -zRAcIevRXZWVD1GM9qEZg9usilSuikv+By4NwJ9nDrlDWcQXnBEe/46nCem3dTHCBYtn4gj5zwzNsV3L -jZNkimcXR8h/CHHT8e/Eqquu7YcZ5UJK6D32Rdj5ii40UvvKrzQNfIAgXNCs0kuyEUO0jp2ZX5S/j+6F -iy9UoYLBHc/PqezYCWVCmWLLa9MMA5Z+aVHUfazf97Cj3IF2S23wACSrQajuwqFMEBa4uakE+CHm4gjZ -jpJFxwc3dxN1WMVQfoPOIuYiXMRiuZ7CSWmVbNPZchRFXx38ZfrXL0n06Jtvoq/++te//OUb6/TgtaCQ -VPoOJsexsmzzVtjZtTx721nTaCYHZ/YU2f3H1kHD8Yr8EKd2FgOiLY+m38MZU56Uv4RDoD50whHE+/Ov -oz+vRn+O9v/837m1vaYHx4JUL9quKpjB7jTQEdtBRROtErqwRZxWrqMSNDtChwflTLB4sRTVV+qgcIS+ -NN4lZC6O0KPHB5arPG9/ruNLZb6ue5nnvolJgrNaGvd4iFxReTW8k/gMjdH96pvjFt7YjAWUQresTP6o -4mnnnw1MZSRhJ0M9dp9//UoEqz/U6f1rOIuxUl8DDe7aF+63fN/tRAHaoVRoq3b0ZagfihY4rs7QYC3X -LOzWjhyf5MgGw8BDNG1HjrA8CYUJneGEPKerDDMSTOW7HiyknK1yDPQvu0YT5DADqnbp0ca49GijhWZr -pRCWRLZ9MV2QrRvPFLMl0ZnyH0OiQNVKp7RmFgBj3ypOg+LlEH31eNCnEL4yCx0+djSPbxav8oKVhqEv -DKR7mgGGgmblg+JudrxFa8oK9k0k+32Q8M3iH3EEFwCDqHYpH1zq7EsNWRQqqpAct3wCNm1HcXUiydTY -Yrh8VkquEG4UCyYHQ1XTmaMZV8+uYr1Y+WYR4quYB66EzxJ7oCp1gFAWgxZYjZLvUrWRVSa2gXuKdXvg -9FAot+w14iwjaRT4fLNwJaqW20/gwyj4w2K8W4EVOShoRQ4d1XdULhhOuRQA/CFSD4lkzH5JnDDpe8gf -+nXq9Qe2cYTJ6lc53MssK75CcnqRSPbl3xu1+ADaVywze9sUiYQRXeE4DSbWaqIvgVGoNWzKUZHBqzRQ -FOr0DCbczIArRaaZzo0v+Ru6HgyddeOrHnXjq93qzs1F7updyzAhCwJn5F3pPoo3PWdfJPuqFt9lYItX -5LxoiPpx48pBm65GWMrhehDlz1O7o1SRROBumyD3RTmK9hWkh9oPr8K2JQH0D/eRunijPC8HwEsdXZst -lVaktm4toZc1M5Le0YfNpBSxU1sr6yoS+CaBH04xc3UOmh9hgRVaJWfk89VSBLSTQQtA3kt5cGqru0qm -9sUoiVcynih32XflozcwXjmxKf4UlCs3UkQ56INWSt2xKW10lig2k/5F8s2q2v4OhbKtX4UBG+23dNuh -kXC3kqaBv6JrTlZ0Q0I50sXT+VXvctv+PTQ5g1rYRZqTGzZ/lsSzi2oDhui3tjaoy3zRGPlwqzX4u8k9 -ECjzN7dy1Dw3+ipJnSx61nlNROXAGXXDtxxku6wAHafWaHATA0HljrAWDJyAS0f/dKPFWRON0YPA+5O6 -jnjQfuGGOml2odXRKZwmcjgWgZ9SueCjISId+PsYU9rHS6kc/aVYJUM0pdHWHxRJirOAhHQ+50QEAykY -tk3I4OaR6PbtI8FTkjh3R9g85D7ruiKkZacodgm5pjskUnIl9nE6W1ImxRkQZO518P+DVohIgvj74WOy -akcVSU7lh486Abd1hhIb204guUX4eGBuHs4dRzE5h2h63HPeOMlaJ03JZ7eZtpbNvfeQHPYckdpuenjL -2c/32MuW02D7PtecgqKjBljQ5oJ2hcb5cSkGV6ZAnjtk4UAsYz6wi655GMV5i4RcElGpjQ6uBt3qx3t2 -I2TFtgOO9yvxLo0hbcnEl+vjQvlFD5H/N/nPqfznZ/nPS//McP9P5ysR8CFarRMxRHw9n8dXQ0QzUaiI -5W80Vn8+fSp0w+A0n18e+X1CsQi44dgd8x/xj0EKGT91qAxXgTIqF4Zv0aZzU3Eukcg61c0ZJUWkuZJK -3aiRGnXeTwcNlNAh9C3yDyCgSz8fIf/AtzT20yd0P+bfx2ksSJAOGuj8fcPJH5uXfJjtwOjpuHqRCAzW -ejWFGD8oM08oZcofX25seIBGqHiSk2HSBkYjXSyjl4GaKgOLwmwWgDsMNEVM1OeGilwPxRjVAYthapBb -0XXZDRwK+n18RaLgcaXvT9Ah2X9cmV4NrRMTN+wjKVmgMUrRE3QgZ2rfl/PjV2wbEmQPBXtsYLTOcOVX -8WuBL8m5zdZs2EQsBJgvhsODg4MhksvoY87a62bUvMLpVhB+FzU++mqI/O9klQgoW91CiTrrj8XdVT/t -Xb1hgSMJ5iKe+UOkdEuGpbJqSvtDrZVtxso8zWosYpwUCmvr60+fkGGv5GKbkFDvhFZFgrL9t6YLMHWt -FryOlhzviANyR5mfQVJ9lasGvezKkojj2q4RJqmAu4fjNFsLKcikC+INdV9t4aW5NVhByK2+y5x7z23P -/Q4zZfC+jNOIXsotS5Lp93nEqjH3CmIoOVgzvNpheS2sr48OqpSlLbD117kVtvZaG2IPDlrSXlhMrEeO -vHuWEEwEYZiqUWYYZs295eauF3ULzp4iw2WxEg4fH/wT7DMtBpluQ4uyscgTMmYuE8a2AU9ZFKc4ccY2 -0OyPsHn0N2NUJGL/8ODgz36reUbQrNMgYssV9YfZQ/4wW5YnaOa55nnXCrd9KpRd95y25dwTQK5hlwNA -QdJSDKr5imsW1oW/e3fRLOfSbea8zjn4EFmunJf/XYbTWB0jwZlu2GNT61IqXbcdy1Q9QVuOwvtlLr1u -lesuGQh7W4cLVV5e4InjgoCbt8VcZOPc1FV23GkTC1O8IqXF/Ztjp7LpluZtPWDFTlG2raz98LG93K33 -CsOG2cOKLv/bGtBvpTD7HU4jDuVUa86GKDx0FZZcpMognAPyh/HPKv6GsbyrQLHTaAOHQ2dBM/fO5JgH -GBwRzy54oGgKrq60A0cMXwa9QtzqLlKbVpZQv/xpA+f2TU6K4ztfnzmf2qkrqvf/Cta2rRj8jbVadUNq -shLJPwatCzB3IjgY7sKmfsmdpc5aKNfQlC60+TdkoLRzceXR6L/BhcK9GJT04y28LhOfBwZPb4g85ZXR -VqDVuHybqrf9qgYG1QJUDiQkYm3DB2dIBaZ1+bIdJI28ltDaKYaktNU588IpZt5AKbINwrajkSh6m6w9 -eTbcYRihIV3QW89Frmr1BGpF9LFBe4p7esPKviO3nGBwQ9NyzYSsV9DAvr83mcDNfan/xnC2/Kecvg/t -p+9Dx+n7S+vx+5s/9vSN05QaeZTaz+fNjwuSEoYFZY7vU7bmS4jPkQBTiMdxgb1MIwAiaWQBIZDC7DsJ -eIT8/88CscJXjlas4tTxJaVshZP4d9I5PO0AeSpeBxRf0stntZFuU3bkuaeOkP8kijcIFv7YY/TSe/pk -FMWbp9Y7R2qwaEaT/WSxf/ioZylVQSdqjfbr3m3pV0B92lXrM0QPZnSVxYkzeRZYKV8mZNVQeISzZZxE -jKSBw+yVO6l1lj5sd7N7lkK2SBynYB2xRVOb2B61Y2u0pllJZ89Kz40aBbfZDnGa7li3dVyu3b7pr6Or -5t1z1fYWS9bd0gLRo76V/7+oI9w6dYT5ITJ3bnfSdps/9601Xt2u2X+YRsuXe6fTtxKOdkXkwGFxZEYj -9Ohg0FJK27RLYcCxSuPU4jOVB78r6io2ztYAeB8zgv0jp4QF19iXY8cIbvN6mjKCLxznWBVO3bcm+RT0 -Xtmwu5eF4dE1x1cdKtI08KG8P1RoSdQFCeJEsU9/pwu1acWLDeP/aWX4Pzc6ABISkTmvORzLV36HUWGW -xNnPWCzbmxzLWQRY/9YeQt26oxYH6jbEGYXLNfchRQH4wOMk6fKWj7P9DKuZX7Mk+JN8c8cRGH9c5MVN -2rTVbbIPuxwLnq/CdutOA6TnkCgOcodSUb/mXt+zqid7kK1SYvg0w7NYbDsdzbpd0bpx1NdIH85l8I72 -jszWjCunSr1i/BYunvtNbyXVnNLFInFZn64SOpPcUUvs1ZCNug6lOJTY4okSOsvbOk8oluOgZYpj9xZ3 -qrON7Vh9AZc1oUBtBXoDryuOpzwbOEJdfsghtRjv4Ho0gZzhTUNyLlVaZ8r/E/nqEB/O/KHj85d/+QuZ -fuP8/FWE519h5+e/fvMVwV86P8/nf5kfHDg/468ff/3IXff8L98cTufuuuE/v39oFZaHoX+P4i1HEXxS -5SHuoOX71v2dJlFL6SXdqFsNbrB/QdkOVt2UBFKako5CUcyzBG9L6Ja2/ywrQGP1YMqkR7OYzRLS3hfJ -ex+3oX+r7vhoYu+WruZxksguXC5j0d4HzTCblbT55udsmaZiX9vw/cNH2ZWrJkjIccOZVqlJbjbTFqcA -ia1ogzxDOQ/Fcqv7P4RR9y3XhU7M2BadtjgT3/3i4bYmTZD5Gb58lqbF3tLtTtGQsWr3mzQ0rAq3SiXp -+x2ZtXBhui+xu0uMRiov4BSUIHlNRYQIZHVq7snqLg357/6MphFJOYlazDEtVXhRvPE6esQgazsgqBar -t4vRyzZcjF62l9cSySNvoLz4veeMwPi949UrWm6K+fAgR41DE3c76n9R53+6TO++14D0s+zuO5bcWWfz -9YP99nxzGscVKPmXjMy9IcLhO5YU4wW/aSrriWcXXu/gTeUPlEb0MqQZSRWmIfLOpwlOL7wbhLL9a2fn -ORZkQdn2zlehxvtZdvoV5eKuOyxxfpadzW+0vOP+arSu+Ew0GvVxmM83+mKXPw/FklEhEmI42xSGmdfR -VZu+JMUryEGkY6ur4YMsJt15A/o45PyonX3sPYc29M8o4M75YJMa8160Vn0Vi7aa292CQNkRNyL51JHJ -5d6U0JkiC/9UXYikLk6B3PZX8aClKimkX8XhQkVNBwM0gvAhd4FVnL6IIcWp8qDL1YitJeSMDeUPODy3 -gv43wP3aMsAtaSSqd3FH3QH48hg5jTmZiSDS91q3MRGItouu0NMxUuAdWcaKclBRpQjab8sFe93ablIx -00JsZ7ugmYmi+kkcXZ219zATXf0huXo5FpAcNRMTk0WcdUS3E0WsaiWjPeQXFKvjwjIxOTwbdGBRHSuD -XmWpg7P89oc+ZbdonDtM7dgDVT7KwyH5ByaCIsJRNmpfKzmGkGa/M9bfKLvNy25l2R55CGQ7nuTrsk9K -gnIJZyI67gP+3wB71Qv2V4Dd9oKF+R+jOiHA9PdCkCvjQLWpCWpw05QJ1zvn/sh13rJ2pxtctW3OfQtU -JV0bUZt1T05TYdaT89Dmnl0qmgqti9Lt5IPaVu6UXImOOHE9ud1j169a4Nb8rfbJgK4+RbkL96O2Mt+B -i4Iq9Ct6avgD3LiDpSUmb9K3aP8xOkKP+yX8ydv0Ldr/Bh2hw+5i1XQVZa2QuAIdIV9537UMXgq5/8ve -hfJFmwwyncJ9cRGRssF339GroI0i3pJZrwGbTkPJGw97DdR0Gm57AZdJkaZhYdR81Nt7dToNc1nmUZtU -Brd/SKbuDrO5ysmyjQ87dNduFqS0i3l+MaVd7BztQ3+IrrrBHvUC2x66rYom2KOuqA24juJKkFScqCTx -7RIapCEtwdvlFgX4Mo3Q/UqpznxFcDMO2ld35uZIjvuUCcoiL+L5PL+JcPe9p7AyKvbpEuiubXFxjw86 -AvCe00Tnzg/8iTpbGc7Bw7oP61lXKGANvqIblt9a9cMt35HyutWH303M42mcxGIrT8DwlLSfoneONXFV -toyjiKSuurrV1tf/DqFs07r1DaH8nKIc7yAGcbcwwCsjku+qLZIPorG0fqCly4XRNd/rDncMON0tnC8i -c25NjvRPDc3rthar0786UKvflLnCzCYHZ1J+hxlvw/asFzp9kxikoWTihWS34TqNpaDlruQzjzUstBIq -qupKeYR6AxX7BQ/hLAFP5rZlvIufFmoGYQRlskPj7eB/cdDkDj70qNOPvkUQbaQkC7okuCwPCi/zkB13 -8yhQ5XTAbRVcm6ag1GwHeZd3ogJ39CkIUXFX51f4qgyJBzQv2jTbsi+tZqoCRb05HdlGoWyYrfkykJWg -EbQMNGWSIRzcUQJIpL3Jw23QHp04yWfjrEUhApiugvbYQlPj58QEpzcV/IvGaOIeXpUivIcNIs8lXp9O -M5n3TG8X8n/dxmFr1f3ikfNU4ndS9VmLSCH3zTai0vuqHljnOrzuEZGtcbRM33YFc3fXM3RYDFNb1eYq -vrMZKpZAdwv03cIBtGQfxmKARujxQcvswV3BLbOnce4kBMIk7I+hrCP9hGzhXhuEbFzhptTWQACUFT5t -F1KKhjmVKu0nb7igWFWGr9CTPpXhq5tUdu2msJI3yZ4MoYqWpVmKdT9CzkNNlJIs2hqvq5EsswiFW8U7 -yxmu2vFVr9oLujcaga9uniFi28o7SsGoCMuSYq+KvmprrtrHDnRMWnAwGOx6XOp3HwDqdScA6p26oah1 -e5e1bvsljGjLvIxsOSMgGXR3voPC7KEcNOSpINj/68GgX6aE/c7gBdNlSRYISitBZxIELwKV0SFZtbUG -tHrn8nz3wZ3TpHq10rs0hgTGg/A3GqeBd4y8Oz00aQ/E15G6Mg2NRoZWEL2O0P5T9b0Lw8s0kqfXEo3C -uv8U6S9dMvJb8M056Hk16oG+F7XmClrcKgW3oXYZ5OcoiDvPv4Z7zuto0qhwEp+FryGV/sFxHxx6NBT/ -bWI7OAs1xHGfrPIiTtfkNtnhi0Flevjhx5NxPiN76BBedY9mPqKAyCzfp2CvAWb08rgvpnyYGb20D3S8 -w0AjlX0C+jNu89ioKvOd0bj9p8cY1EqPnth7VCqR/leM+Z0M4fUN/WtwxbaB07TiyVZ+7XKCNTzaKvYW -l2Pb66j9+G8yuy4HN2TmIOKbxRH2+gF33bFjmPs2MY+TeKriFvvftlHuVnUNXR9erAarsAfdhgPmuLS5 -p00J0sfb2Z2VSa21CBbWFyjIxYsvUHjweKDMzj3rKLI1VVD0KVkIXSUVeb0KcsHoBXH2LQ+JC2T3evdD -Id3XYa/eEIX9ejGPk+SOmyJRGg05CA936QEYK7wh6lfoyutIlmU1CsAdjMo0YCq7+lSYN28H7/riyvxT -cHjo1Z5ubzmSRhV8eje4IbYZTma5aVCPnKzAuJlK9aDDF2w0Qj+SDWGIkTQiDE3pFeHoMhZLlBDOkVji -FH2DsviKJBxhRpBYki38iOL5PJ6tE4EERRDD0MnzykY/Qd/swOu+uQMeV9R9cyZH08ADxTtsPRWawmna -h+nfvyXXv804KM1F2qey+o6tZIBuYaQSMBcMbtPavrdd9ZmzZoDN5z5XdR8J/08rGuHkZEkvCfMHoWDx -YkFYnj/ghjE/FWkKfPY7XPPdCrwPa6LvaIYUF9X7rjrcte4o7GHHHESobx4i+Z/uXi+ZsyJKZu7cLxZx -Uu2o/f1o++Itojc6pqIoVnVNvZVXb8/zTGeSpv9907DLGit6fqvQGo2ly4kxcnYdcmMpu06v6z1Nb+10 -nSS31sUSzIlyAMXMH9zCWVx7FAXKxlcITaUtbzBodR83r4cDDbfOu9OhRgaoXsl/e9702iuVDarcvgYZ -Hvruhip/QTOHwzSh7o2n12WncMPQLVvhykaAdrlx1byHbqfZRqFyfPW7nfwLluL/aT6f+/2iAvbLnEh+ -ePjocZ96ljgj+0qYj9MFpBVjMc9eRgt31F5PO3Y/X5KudMbFcajNqbkEsPohl59fWM2sBVHpNHqtlwY6 -9HE6xAwyX4ScrtmMvJS/W7y6Q76M5+K/yPZuXZvK3qKx6pGmOxebN4ZWdgILMl8J7RzuvgKxdB5vlDls -L/NCWdLnK/FizUCezE/xZflQHhdrrw/OBoPBbWitqkszsiijhw/RTZzhFaIysXNf53ujnBrAHk70fU44 -17s439XSQPbxw9vBWHZDur2rxXX/s1ldlsNxSi5ReUbsW7DUKJVqoXJlaLXQXKVlFfGKqAytfZGXNsnm -WrwJ6oJQ0WiETpcxRwldcITz+53hllBEGKNsiKZrgXDCKbqk7IKjMEQ0isJ7f8xR1+70vJqv5Iz6v/76 -66+jN29GL17sv3p1tFodce637Bg554s6ogxyNV5tMGWtO1wK28jo/5ymgtEkIYyHs+J34L+U4/pcsEQl -94cpkZv7g6UQGfxI6EyZZOQDo2tRPcDk9yxCgSEqwIdIAZvdfVDeXx6ni8ZF6YAiXBAR+COcxSOY87qf -RcjXsxnhvOYyWh9VXZVCgcZoUpM9zlUpObwvq7HthLEhhMPbJoowFurQWrgYxQpwsl7ZLdfwcUkvU+cd -8eey+hAmhdsaJw8oznskddV7Y+Vi85yuXYwPvn8fMw65CYqlDCRX/dbmQfoDdpbPP/UMW6nMlvKmJawe -sWoWrMngquQOJIHGyINRRnMiZktJjeq+Bw/twS+zqok3j1OcJFvvrBot1CRolXes0lQNA1ymEs8FhAY7 -Vb2levsSNPuZ0QwvGtz/uoFeUIGTH+KU8NZ8YprJVMdbe3e0YFcHFBJ1V5BnvjioL7dKlY51Z6NsEIAZ -C2dLMrtwSxJib6+TO9boSY+FsHZc9mNBxHNVa2eXL8jWzmX+4G7Leov14orR7zUMEpNzJCCwpDIIEryx -wIB/Z5TXGPgQkDfPmD1ZOaCGvSRkRC61oMEYmqj7MAQ3U3gu+ytXtOLENrbQ4EiWFU8we5YkrcSjQnYm -Hk4S76wb3YleiH0JsiTh+qCpimFi2mpl64T8EKdVziVZ/BBZKFfWvGayx95oRtN5vPgWJ4SJMVxCrCn0 -uFFkzuiqIlN2b0Sylr0x8h7mZaGK/CGXmjwppO2/ebP/4oXXhkBWYEewXB6tVvWyKuu9o8WOra+oTxWE -2tTPXRoraNHUWmFrQ/XaXrPk2CoajkYj9ISROWEknREwsYy9g32QGEPBPTR6ek929hQvTohk65Zo2eKN -AireX5u3jatvx/euITpNo/ylG+EvTnS/mMjeYkF+ynK3ojacBqQdtQFg1qDuuepAroCCSnSAWMY8hCPM -GM3Rw4dorp4+fUIeXgtq+MYoULy4MEDlkwStg83z9mhA/WwDXTC6zr7blrD5i0+fzDyplVFQPWkOwBuc -9RqDNzizD2/x2cT99zVh2w68ABOobp6ss4wyMUQfGiONFwtGFsoZHX2Q/f1gvvv0Cfl8vfJrQ7QigsWz -soR+ltB1UKZWvQaEp+o4ViBLojQK5C8/fYIDfoXizP0fitz/EEaExRss4k1D9B+N0BTPLtCMrrK1IKiE -BE6GPtxrqDuKptl2Q/hoIBkjf4HXC+K7bo5DZphHvdfhTJ5ACOtZk4burqsXNtkOJ6rylwVhE5meO+Od -pAy5eo0arquzHxmTHnErKUVcqNNTAQbPNlCBFwY+eNLUk3PW6pKfqnVmlClf6YLGSqyUTf/WLGy8c5eG -XXGJIZv/MjZoeTRCz2m2RdBscAEC1StHgiLgRWi6RXONn1NEkwjuMOOg5aksicr6r9PVuUpTVwyYqabY -DNGFS87eoPF4jDyvXTPTVz8013q74HvXdUfzkntvbF9Lhm1XEszzTcJi9pYTUM715OJMsv3j1gPAaIR+ -oDgqZgA4B8OXYNXdIpxGSB2UlmSF4lRO2hTellQR1hGCHm+FLwjXMwlIqVgShjK8IGpqURCHJJSIEbnK -1JdBg2Wdh0vMgw9D5OsW+tZoKD37H/TgVma/eQ1lvRIFkQ99mya4NsK6oJwRGGu9cd6dHhnqK4e6b4X1 -Wb52MSpO9CWe3Dwi5J9e2N8WnDD/qpDCJh1mjAoqhRwDt/PAYkgz9RO0k6GYC72YieZ8DyXHaax6Y7b1 -MpRCkR7UbebYF7HIG6mO29a7zIwxHthbW87jZ9lcfTawTOML9wwWW7/evx4+zLe3gXVnpZcpx6sMUrub -5faQv+/Lg416d7zLbm3i9Bubcku3zG3e3r0y24BLvnljBlmaQmK3VFiT/8y1lrud1cSRhgIBc4I8idU7 -sstFujH2vcTiPaUw6r7dCKlroHYu8AbG3RrE2ijCCCcC7kO2B187ewoSbkc/HfdJ1HBWqE0feIDozMMO -XKX8lnxYE951ojZBm0yTa0Oyf7jcxwtaFxlLz8mcp6rmmUiNxZCxddq+CM4l2gYvtgUQmvW3xQ7mJrpc -K2qWm8RnfeQ38BGVVZ/XCrvvkpTdpXO0ab1E0uOCxenCO2qNor+/6cwNQhIiCPoQTy7Obpa9zundqNo5 -pTQhOP38G0qnv5GZ6GjnTwAUXpAtDzaDvtmU/sD2u3XntsVuri1zzS/U+zkjfKne/EIYVzb+Ngagoeyq -FP0xr6fVzAsN293M6z+QO7NyqJPn3eUJYZt4tpsFeIhyLEMkcVgswqWGBviVx9cQj76KU/iDryC6arOQ -fyKykX9+j1cF1CoHjFcS9qyhxY54vQYJfte1GFKsUu0NkRcnsSAMJ+eUweNlnEQzzCL5UP2UUnEeN19V -3zCyIFeZ/FUgOqsqjXRbNoo4wjf4N8rQ0zF6JOWy+sc41R8dttLKcbuxe183jAVYkHNaCDflKKgtdlhK -FUMtsjQHcYbTZ2tBVch7ww7ZSI8ZLIg4qeUoG0iG4cm2egOLKbMO32pLMYa0R8BGE3nQaEfbSbDKbWzY -QBDxBk5LHSeYzZZoXC7DUL0yRUsJ+Bsaa+DwN25e9wR+b+rD9Ouv6r2UxbCgUxOkhSJ6ejNBrHwhEv2G -vkX/efLTj2GGGSfBbwN0BGWr3LVWU5xGKr+ZLPM6FUE5AEvMl8EAEvQdNA3neLGpHzzzCadMkOhcnsoc -EKAhOc9qH+tije5ZLpyYvPODJdVZFfckPtNDpzTgtpU5RB8qvhHNnmhRMW8Jr3od5kZQ8DDMYYjpY5hP -51pQUGzq2dfP98fIB8L0m/ZDtemVRYoXY+TLpdEsUuTZKwsZr5rFDIKF9E3W0VRpjPZKOBvRmpjwlQsT -nEn2SjgbJsgtpX1Wz1dgNKki87h3JP+pJg/zVvLtqv52Kd8u628j+Taqv72Uby/rb1P59k397Va+3Xou -XhLztyRBYzT6v8H7aG8QvL8cyIPGg5Eh/Rd2NZKc0mdTHqwcLifary13a+PrqWB4JgJYr98nFItgNTk8 -Gwwr4zZZTR6dnRVecFZWU7Th2ZSf0rckCXjTTvIjFUiK9DMBHCJOF4jOQfMIugeFP0TfU4bIFWgShui3 -NRfIe3Rw+JWHLuMkQVOCNjiJI6vHi2EH5sP8SUcfaTfIcM7o6kfayLBq8URp9u7kEmdwkwy37VH3rfuR -feybg9nce0DrgcaKBkJyRWaNzNmy2lVLrQZJtNWkoY3Ja9lP+Hq6isUzc1dx792NPahygZ7cyNZiGf6N -CPmY4lUjvKnh0GIkqBg20d/Kw2U0ish0vVjYdLmGEGJ05nUEco5nCHbGV7g1T3Jmt12DEwFQgaN0L5fY -Hhs9dPm40/XGkiUityRwQlZgLlrhC5Lvr0hvJUN0uSSMIIyyNV+iiBKe+qK7oXIfa76Ux6YZFs0xuYHT -ETz38DqCv7u4FqnDrnsZFH5+koAnngL3zhpUPPLRHrJR1q19bi0Tap2A8/AyFku6tgw4H6LzcB6n0T/k -9Fq/f0SvoyNrB9D1YAd3UetEtU8SZJZsTMwJ6Jgkm+Z9WFMulxW83Xw/sA6fEtLqBUgatRLMsyg6xdM+ -Tcrl6KoU2vARbQqqytDQLqgOBu1epuK1rr1sZtzRzth5FMJJtsRTcFvy8HQWkfliGf92kaxSmn1gXKw3 -l1fb372QZ0ksAs88VDUZriuSpe6zbqwtZeQeASv1b+f9qJpCJSauoqhwu023u1n5LZZ30rKZQqbUzXfR -uleUiztp2ZJy0d2ohpzxNyJO8eK/vtu+yT2DDIqUlOegSjhNTgAiP7YpX7WGbJXjrZ/2oKh2QGrKW/fV -h9apAP3JRAGeOU0u3eqH+izJczBsGCSd0Yi8e/v6OV1lNJWipW7WrWYMVPmuEbHHamq3GJsfTP5f7sx1 -rmE/Xtvlq/uGi4xLYPpQcaxxuMG4RSVdTWkDdtdTccLZuSKbTSYqL0hszeMIJ1e9YKxmlBp/bPXIaRvk -SXTWJ19S4SpTjkJ7PgjDP0J2oxdwl8eNgwgmUR+Xj+uuITGcOz6HMak16MY9dOc5Vh5srU42eKHrVrCT -6GzXZMr3dbl+1fj+TlkzTKaiELgJR+0lv/AgGiK1d/RZw3Ul4oemSxtOILKiza1pg5PO/l+QrezABie9 -Y4UHNj6rGaz8Yz3JvZFnN75mBMlNGcUc4eQSbzloYeYx40KWDV0bm6mNLXdY02AIRHW8Q3l4Z+xMeIim -baOJQf24BNmkM1YY7e+UAb7wop3uVMnhblevqGR+YUJnOCFy+8aMBNMeUXp3edz134EsLc/zEH2nhSGu -rijtOAzbJJMVEVjuVyON6Fv1d/wHCyulqUpCoYcP1Sb71pqK1Sme6Tc3Gu5+uoVemgVjS6+e+azW98qx -0q6WtUwSi2dySrxveZzOVBSLSy38aIi8CG+5lycwvI1GQpNF4xhwF2qBnYjZHPvSyyffHy7y/aHjjCkP -GS5B/AKyC5l6HevJ4la0D1QOrNPNbc2DkPJCtp3APhOeYtG2L4iwOV4pLpobKt1GSQOuUPKYuh07pNLt -lCqd41Zvqer8mpJB5vJ0v5+F7gPk7q7uH3pYJrNB69FNiQ0t4kTb2Q66tMs5pOFw1jNKoBot8PBhO1TZ -fkX5m50l514SYs2srPRvHwbHfaJ9WZ1gGxqQC7KNVKYCw9PHGq0OO4cOWdeZVMAkoV5dkO1zuCF5jA6/ -bFnIiobcHsoNbWEeNNYeB8tUEGyxlm+6pD44eLNpK6ucChzUurr9ygM8rHR1BB57e7TdB44LsgUf9TYR -eTUReHF2x1cfKte+epfVCpPV9UsysavSQvvtN6q1xZd0MY3VRAXtdB7vu1K8Xt/rcIBsNNcMHVFtON4Z -x6I/CtdwVWw97jE1LT5uqI8QKnGUR0JdD3a4Sq8jG4JyhG5YguveVP7066/8IZoKigPwVVL+wvF8G7BG -8rFmaeU4YxiRlSPNt2idRmQepyRCR7lPTScybQctseU+Nt9qXxl0VOLtxFb42pT4SvebHhiBG8apcSFz -cZ1V6YszQN8anjmhoCcwfAG4eq2TxIIS3G6cKPGViRJfdaFs9nsVp/5QtrxzhFb4SkLiuiLHmaTC2LxK -4dG+KynmXtvZ1UHM7ljj8j4qXLXqFOY/VD/hdPwg8P8EOSj9QX4HtCQ8/9gqEStjyBsicGAXIz+Dg3l5 -5MPGIfuODx86NVmY0EWgU4YsiBBxukB5l0EJr608cNBVfdv1EBKk9O06TeO0sevmTtXhDKczkgSmj7nF -U+e+E5Hpracg5HlKA/tdTkKSmHSQTF2HakyFxfBiM1LYCd9pr4BLfKpFJvFZJXZ7rOO0nSeCvPl7Y70y -5BMQaNxHaqquCktj7PNui1tudxP98NolftYrVZDVjXeFs5tExprxzHlyC1dUcxGsaMYpOkMUqyVUfoyx -zojRJ4l+XovyA/hpHnhfeAP0FO33uhlrXmTkKEKxx8j7wkPflp9KD3t0ZDru3yb9viN9gbN5ZojA8Z1e -yNSqIJ730QffcNf3H67i1LUBWEWC+o60k0TgP1zhq67qKuKCrbrCFyReYdEUDo1To86HV0dgciqSRpDY -w3CtND4NXCfMmo+pUcThberUzVUa+jDK+Z3IHUP9MhGR3wcLsE65G9XQQFpMf7CLjwFsYt9KNFLAds2b -VepW4zGA9Opa2Nkz2DtQ5x5IbXcgXjDC14lOgozDE2C8ffw2uxLiOnzkOGXiu6265/xZn/vOigywxz2V -SbriS8xyAcBv17epEejoh4HuR4reQhFbllS7kgO6+w+FIpcF2u4srlW6p2enwKAu+0TeLgNSRtECrr+v -HVOdK22vMnZKroTDn1Xv9FXcXfEgrir2xsh7IEXL3NFtEp+hPeTJutEe+iB/v3fdvVZc01ltSz7K++03 -TNqagjeLwNacgXcbs3JTMPU7PYltIJCZrhIWhaf8HUtsJgwJtw75esoFCw6GaF0IGf63vrq+4VvfVkwy -wpxtlfFRXfzI2R+VSW/9T/U77jXmLSlRndZ3QbOgXSmntRYuujPPN3Ii9fGnlpFVbiWCreH+lCF6DBe6 -7XyVgP1YVr6TlYBuZlBPs/wsy8IoZmQGuVF8wX+m2TqzXkehefVHQzWgAlSOkP/SLyN1YHCOaoOyZskR -8sd+2cyygCCrLMGCHCH/yXQtBE0RXBAz9qYiRVOR7ms5wQOetr8Uq2SswhTViyzBM8iZPfamVAi68p6S -1ZRET0YK3VOjdUmcXhwZvdOxwCQhqyHCQjSd3ORK1M0aoweBr377qkxtsnSG8EssZssAsMlFYY7mmiVO -Y5fj2+52LqE4uv8kTrO1gITkY0++9BBNnyfx7GLs6dQ4cJHH4NhDjOCIpsl27OW/PJX2auw9TMQxRktG -5uOHH9ZUHEt+ASkeka9ePFyIYwkVrxaIs5kFLMzSxThLF1X4EZa/vKcW7qSGOcxoRjeEBY7UBzQVJBVH -0OOdzgBFNPy1cyk8SwgTr2IuKNv2WxE5Jb8Dah9lmIkYJ3wEOUWXClMoyddv1O4KhNf1/7Mynu8Ukqtz -tn6seWWUJ5xnjOFtHqF4QbaDroQaJWjFymlbFbLyycbuyWbnh5bDLCApKz1rCRmXHc4wwyte8+KClLQt -17f7+MJ1LtjA3VFKzvMfmieP+jmDCyzWHA4auhF7yHuIk2R86N3I08TUCFrinRQdqNy950C+Nl/k+vTV -b63bDBF2ZrG7D4OPL+7AFLgJ4dIMXpsFuTWjZdhM+a7eOe5qq3cqR252bNki9ipJdQ8doidlw+wacfO/ -ZfgyjXRT82ITwHMGrd3ZN69fVcaoDG4j99aIRc5rI4Y4/0/ztKNyeBjZEMaJ5cKz63Y1Tj0HS60Zg45T -WH58lcDnmkFDFHcFyw0SfNYl/B8peoN14v5najl9T9dp5M742e3q1R3/1XTk6r5g4xXl4rPbbYzgmDLI -Xj410yMostYgorJwClevqQGBp5CEWDJY7jVTpHCwjViTKZReevUkgLM1YyQV797+UOnXunp8y9Ek9XTl -K5djSN1/K7Bw7aqPkyn1153B5eqvf8mDTrRD71Fl5K/rpudWT57cc6cjgq4e5tdQ0TTtmQJP/SFyxBuq -2bVfkmB38RzJzpkeiPL57tw3JXmZBHJdk6Jyd7vWhAPFfWIGmQ9szplV6I2NkjIsBGHyNDNSeRKiT9tP -6aflp9UnDgkTRsfW0HpdTmmAN/bZzhW7eQOK7CY6V8Jq8ugsZARObIEPPOSNP+jrj6tsswsivhV4cTGW -8/RQ4MWmQ18O83nLCcWaD5xrA0xD1ok78xnAxMZK9EBPkcWv8nrgJpPCPl7Yww8PDvwa38nW5118AmDq -Pp5VPqlAjHx8lUbWmMvQ0m21AI6QT3k4y9b+sOmSW5g8j8pE2k0wyY6OpBBHuajxIpeS6cy93A1l/W+c -Oo06NUU9jIahpb8RIYHAa+je3cTSJmwYCCYHZ/nFTv7PhM1IKtA7TiK7IWiWrV26/zqdrciqk4YApp2G -FEhlg+ggnJxoPMrDFVmpG4JqGWD60EPFuer2zVhzEt22FXdDiNCXz48QDwtC9CQBeg6fitU5TCgaS0EY -8hCF6iK9dJ0kwzppv5CP1dNcxWA0OTw7brrRlZVJrlVtZMsOnBJxPt0KwjsJ34BsJ38T8A4YqSTGlIgQ -UHpNPslAfSrYmti/6Zyzkmg1s9XQqMxCe4QOTa1sJ7EPUTzHM3KEvC+8IdKaM5rC8z+RPRsj/XmsDVDA -rjLL7VrgPCTH7CQniD4KFd0YU9bg+k0cXdmz+gG3e6EkFuOpvqIyY0lNomxycDZEUTY5PENfoG/Ojp1e -yRrlKV7wsJh4cEmha9GSvucOmrV/eNbXRAzTaYx3uMT8p8v0Z0YzwsS20gsAG7hVOgWSyf9P3tX1to0z -6/v3V7DCIooRV24X2Ju4aZGm3W6xRU+wTYEDpEGhSIwt2JYEU3Y2Z5P/fsAhKZLihyjHKbp496IbS5wR -P4fD4cwzBtUVHWn29CqkWh7jjP87bPtizx22mmbFYU38nAZ7GQsME64EN6vaLU1v+sXoTa/8vNmj4MwL -skhuSELqNMPfbWpFj5yjDOxibby/eln0jJ2r9XTS9uZfImZvyBPLWH5yb3RJdqlKNemacGVNJQ9n8XVV -O3wvFEErQF1OnPPZJbkEf1bqkeJJMNuYap5HAouh8Ilf2iSn9BUMLrsUfsnrJ72kjaEM6CA+sl/cXwkQ -2TtXUZP3bi67yvrW8mkV9v125I9lVuS4bHYB8SaA2B0vi3KxI4A3yfAYKfQ733EWubQVF3kn7qHI+yDl -VhvSILKhBx1U8B6hPFPCsxXBbR5ucNdf1h0s0RXkLG/lo7JOMxbfudtAN+bcRNXNDAw/m9s0vyJGJx7T -HJ3aOIEbkT/xnd2mGE/YB9+AHwO4bN7VkH7lYIHv4MEC3/nMzDPcvM+L5kuxxGVmpgd1IMAq0yf5YHBo -W8AetbFH/PdHP77dskrhBm5ZlPg8LbGedHVruV6EUN4kr0r8iWdvPjhAz7aJ03cqYAtt56klhEn7lDWh -SNclb5mS5nNVfi0XZXVbnl6zKKyP+d8K4Od1lVvxX7YJ2cA1nlQIxXJJvrA3lg0U2EkK+stWSm/JrvBi -YIRdWOonZu/UkVp2vVnir+vlYboQjs+HW2YFdsO3gteQuTofBwGi9DFTekI6FifNekOaU/JHs1oyZekt -HcQ9evlt/cCi4b57/UPthyklPNe9Bck/q5bLtCZ6xplibGZlUVkxLPRnnUdTF2C/KRTkwhHEnltsg5zJ -kfAIdX536nG8EVdBYhqPbI4D4tLDBoLtPo+I5UQmEIdP3hQ5i2p6FLZru+faQurUPchc1/aIikw4uTPf -9qyTBlUpOnQJCdUBWi8+0PWPmLq3b76tsR9U3rjkVBt+AUA13VKfUtII2W0VUrw8Oc14GjKo6Ef+297D -bE9s5Q776Sv6Me8U/pjbe8vY1ve3a7uC/rSB6gv5o7TK5MLcr+fKft7DyRdw9IIMBWwMYioEtOcbtsHG -AduqKh2cu/OJLXLQIvqouMOjKZpM0Pu/a0izOceoBkHFsem54wOi9bGyDMta9B9PLaY/xEUmJNG4//jT -4BXxnH0cpxkt15AdkOpnA5ZiromPQZay4kXNK9Jw3C3u/v2olttxdZ+m3fAtb6sHJbP/JCVaT/otpWQn -BZfyRsmh98F/LmqFpJSOnTSaz0QZKotkKceBSrVy6Y61N9V6BsDXnEfyO3vwBsUH7F3ciXIULCec4g2Y -kwGijeVThswTnBtEl43QkZ5N5ACXuYPgfZmbxcEZEAhEMdhRjXJNOiNQzHLsFZQX6YzFb3Y/w3vCqGpe -aJ8W2yFXqOzD69fnenU5hx6nZ5BTvqwldjut64TwqRgpe3I0Vkl4urmLdNYzsy/SmT2p3EU6UxPXvTvv -YfTu3M7n3XlQXrrzjd+g1e8PaThBSgA6uOng+GEdj8K85lcqtJ7tLXydLEzHMVPrFkkYavhAXl9N/217 -zKPBC0W6A0jH0gvCZfH5RDoMXN+lgjKowVndkwW6v0fbxJn6EvCjtgnDaEu2Qw27jjrm9aAqHhz4qghd -RNS0Zorv2zZZjFFD8ut3aYPbFEM8+Pp/YxcoEhwDwMrtdmkX92raHBy7cYSLFSZNuqqPUUPcxbbML0JJ -+USbPvbCEx/Dv3tCdzIjG1lCIUBugX5JErvHF1+ybpQTV/CpkUOohmyasOBDrE9haC3uoFil4uApwJZs -Y3i27SOudFCULvyf/UpWmJB0Nsi2BNCzs17RQ49pyqU4XfHK3+qdomlGorRshcJfW0/LgVnrDneRzgaY -iU7zHLbZIQ3J67Ydeb2HZjj3ROveCNKHsTUFUJrnhy9/G6OY4KwqcxK7Eo7pWynrvbwe0HG+JB0BGLoL -1Ud9D7C4oMB3g/Wg8OMjsnqVGp+BZUjqh0ZCrjquSGEeeLNDGGuiCRDUPwsU8D6NFvwguMOV7e5XtY+9 -pO1kpuJXtb6EobyILV+oiFuQpcQT8xIUzn4ysyj9aQ1YInrEEpk6NP82IGlmFqHHP6XmeWF+Sh6hWSH2 -2xK0BDuXLGdsZSpoioD+6XSPQ0tXei9+OY+9UHFaFAWM1lt8U60x/3F60+D1GOEyl3+JAstiVTTWEClo -f1c1h8CIagN3AC+mNiAzS9hqma6wS2bC92m3MK6vT+w12i10nygncm63cAVnCtNyW/x9mTsLgzeR7Gaw -14ggFPZoP0C/cvTYJ14p47mfL4g5AXZx9KqdI3vjLnsIo9dy4j2e/xo3l3RiWTC2nbDXTS/gYp/mwC1G -kxneT4Yyzo9YDsitQ3112xta3OHmO+DRPjtGMbtgiu3HL8HnWJcsZXU7RizCQPnzxWgIls+AKn6ts2pV -lLOBlezW74lreZ6SZqcaqv/S2v762+iHJmIJTosA68KOCUsPldYDC9+GVdMNur9HcTziGRfjcTxy3t3D -1m5rgtQqIaT2pBNnSjjzySUa318dTQQaxL1hDnkwYpB48iIRkWiHn9iynLpTKwIiN3RZQgio0D7WlCtz -wuBSJjPFZW6J8uMKwXFXQzCLgv50rClXLmdoaDPrpXFsscZQ9ehY1ZzGtlPHDMtCN+1tgwCLhklu8d4G -Xem4o0z9xwNYIAKWdFOoHtlZ3nUUVzrvpJaq/Go1LPmI6aHyN1M55W8xjx1qofBjxgzhma0O0/tlnpYz -HJKONS8IPcycVeVNsV6ZeCpdqJi7HouvBQm7a6ASGxzBTTxmjXn8udj1UhgkWZD8YVmVeBQfM/c49DDk -aIyJuHgjT55tJlhwKpXzj7YRlA8TV0Kwt/OYDmAvQjkuc0nKp3wQoVgQklpdIkEsYAEpyPZiPQURw2qT -xO3iCyKmS1PSioUaRMovRccdCRZKzgWXpBfHQgeDAKB41RcJFn6vqPAscesScZbjp+MQ0HxaNB7b2sg8 -kWX12VawF9Gz11WrekPOcOMfjCVO17rHYm6Nxrktyry6Fa0/jM+AsIFU9vx+PR7t5mS8uzyH2ks3wDH6 -5+Fn6twf6y0Z5Mjud9gId2238LFbHB3Aedniw7oCGMnLjsGQg2DqNkLFKMjfjzSYyQ7KHnKBTIIemS0A -aNJU3iBnLqEv1Rqamm82x/lmiR1caAXTMs8ZXqUCaIl0UEvkgwPMFlAZBgWo0wzHp2y7A3I1ZosvHLyK -6pTcZ3UBeQU+Y5wTdJotyup2ifMZQGZa7r0YFfj1nS1TuIrjuJZ1uqYnevnKRXzdVKlBRh+6CJirjEHC -HruIbO7anR6xem07A5QNz22f47Zm9dIpDw44LzbnLour5GxeLPM1LpUklX7EYitcrBdSn3fd9bpK8ywl -zWFUlf9T4zIyvcD1SYtehEO/OXt6WWQLS/I1ZwClOUiHtKQnf7eZso13O1+xSTbH2eJj/jc98cpsP55e -A9MwJVJWCx8yB+urhJefepmK2wgGdVGUtGljV3VHfl7s0kKAZuzKSbtnY7cjqECvTih77yWbEe3jGU/1 -v6wqm6LsS07+EDCj5SKSY9U7CkOySLimEbR16iHZ1LklvYJ3nTBoQW2h8LY4w18tN6Rqx4TclD6iMx/2 -235G4j0eGJva2bIiWNnW3KnLWxLmPzqAJi3vlNKWaLd9DwdlMetKncKTqA4U9VnSM1vCl99Dz0zRe8Td -f6JuMxGjQHUN0K7jsB3LMsKe/vdXXauIGiwRXBVj5uxUlwE752qzbIrAkNpOaK3rDqa1LIoQHU8bDAhm -ZT6qWjo86cuM9IzptYFzdPfckTDM8Kk2dDhg+2IUX+Cgf8YiVcxwm5C9re1X/6ro3+DoGLLLgU5rdumU -7kgylkLxHGs7TrHMQ3oMCv6kPcbqFtJjA5JtKno0P4IQTNkfRmyFPqffj8ZQDQe5NDrVaTMXhFFvaW6i -iui6j8YQ4x5Mw7o3Got+Vm4y7Ek5vRJJAiH3b9IyzDmecDpbrpH/IkkDGQ9OFHACSxjIz7faQ2r9ZCuO -m3g262XvLH0YYIcCuSUc2dzRd7bYO6vRyZvegdmP92bRAdvhHTuFQKHLqCEf1nV05TyBa/JZp2Kxam7a -kgE4iss+dZidBxl+aajSQIe7CHZTcezoIbLWowDtR4Uace5i3pkZBkECv9lX4VFqiYh2CF7wmK7SHOdv -Wdi4Q2PjpudqNlsOOUSROXjkKPasEFsWuP7JWvUfLlkX8xZES4bDkCSJJxek1mi/cuDIicHTa9jm7sgr -8gZcCXeHisf2g1ex7cNX0AnTgBOH1mUGVsC1CRPQc0XcdzcSdg7SB5IlDObD2UpB6IRjSN2mxVEHbwbh -CskvVXkYM2OmJrxxbxqOkxMmRfvnLltTj0yCAZz+75b474U0PWbrq5oQP/F0eFLUbYuzPjm8HP/zcDi6 -Gk1mdBN8+W3z64sX14N0QjYjLqpNNodTMb/Tsrx0uqDa9T9Ga6ZYccWhwRLUc7oIOB3Xh91DxT7OQ1XM -+lyaj9yhKx35yYCtOFyItFWrjwNSRKpUgMwhNlELu0vPJ+zVffB2y18MtwhUe4Yq8ibuBCaL/5gThUtv -NKC+Ri42BzfravVOJHjtYQUBPXTgxdVpJPPARiP/Ny5E9tfB34AksdHI4Y/NTjMOs4xvAcB1ZOj855ZG -OAYv0BGKIDR8Gzj12yPN0AkoJgTLn8u3ge/AynvQUbz1RkMnoWtn7JYZ7X5M+Fx1QraHZjx0nQvKSpwI -ApLNZYsnqUOaLUKrAEbYJ6lERjkHVyMtM7x8wspI/qFV+l14W+2/NsxxK7Qi55v17Gl6paacB/RHhp9u -hG5a9maFQkFTLqoFLj8VpJGxbn0QEybFIQ9bSzd67jb6ge/gHXUCTlJS9gCUCFBRoUX/33lHWdHD+aaZ -628uoxwvcYOjK++57jvL2ykO+dE7SmQ9ZX2XdZG8DyMWTUrbSt7MUzJ3IZUwckZ3kdJJOrJ4XzVzXPa4 -KHRrbEszDUW6zoXcOaH3+NL5gBJOyWqPoLVtNGVQ0HZboUGD8cl14lXGAg6w6ihEo24vrjGx2j+/w5sE -DqmtEqFYUyqnwtBUC1AfvxJFeQd1WX3jApWvFsk5Xq8KQkSC93Yqqy9+r9bA7q9qiT2s6GueMEThQ59q -DND9PTqMAJ5H/75QWo5QhJTHUaD2w77Juh6doLZHp0Mn7uOmJov0ZdXYYWrWeL2isko3p5kTYDL54/Ts -z2Mhkqk4RQzNHS6yeXbdRKimz0mzTms0Twm6TnOU1gUUo580PBupGIte5cWWZ2v+FnFu3yLUpNeQgvzk -W/T85bfo9bdSUGoE6Xpd3X6LXr+a5MXWVYhzfc5z/dLim+XryAxmoX2y0+y0XekDsxBwPyroobD18p6W -qGpcQl+RZl2Vs9eRvRgoSVBu4i44h9T1r5bFa7oygPMRqtERpz6i1PSlzyOX85hslrzj2b9WAGo094vH -FhQK/rVsockvRckxZy9b83tEB0cAQl1peFIWFgauVNZuUnEjisci24KMZz+2MRt3Cp2SYxRlDc+80NFI -6MItMqmYtF/jeskQheQzvoXqBOsjJsGPVEeYhBTgCvRvdWuGEvOUvC0a3dZ1XZhRcHxk4R06UAUwl/TP -tMDs7jQjuKHFjM+METgEGnsy11xqufRHLMxbktN3zsgf5mbIb1OY5tN3zUj5Jac9zhbDUi1oHKHCyVvW -f6yLnxnB7MiLJtTt1RlujMFzDJy1R9c432RY6VOyWY2RmrmHbFboCB3WohlvUM2acIxejKZdt9OHDt4Z -viF8XiYf2AQgxgSsNaWEkqgCv1N4TVmIYsBPlVzmYlNw9LI19vms9Sw/OdP5e9H3RnukqnFGv2hokooS -CeESmhY5Vr4WpFH2qDfsNWt6fsGFQastSdtyNJmNUaRqXxbFyKMIgZINgyPVIImTOe0fHXZ2cSvqfDpa -jjhGC3u/atvMYmUzi/XNzOTg2cuikpeObFuZyWrAThZ1trDP+BZ2sAh2sP8PAAD//xSmxRD4VQIA +H4sIAAAAAAAC/+x9f3fbNpbo35tPgXAyIVXLlJ02nY4dpS9N0kl2m043Pzrb5/h5IRKSWFMEA0Cy1cTf +/R1cgCRIAiRlu53snsk5rUUSuLgALi4u7i9MJhP0iJE5YSSLCMqxWE69FV2RTIRxKLiHJo/vdBTaj9cM +i4Rm+3PKVrhW6TXJGeEkExzhDOG1WCJBz0l2Z4MZeit/oSmafPEF+j9RijlHX0xQMF9nkQSHghH6eAch +hMo3UKN8Lf+JZcLDZ4RHLMmhyBR53nH982uaEjRFB43X7zhhRvEr+D8jYs10Q8d3roLR6PjOZLIiAsdY +YIRndC0QRjzJFilBTEKmDOWErRLOE6o69l0iXhGBd+qarlN+qKGjP1YI4TSFxvmkapqjOWVoRvlaYSG7 +/YzM+U5oFJXseBRfK0TQG0LQisYk5ZMki5JYUs2CoucbkgkURDjzBZoRROB5SRhBMxLhNSfo39+gNScc +iSUWI8D4pQagKu+Cdq1mkJAWifyM07UkgoSonw1aeH6ZM/VV/mp8fCOwWHP1Wf1uFHibrDRs+atJZhnZ +4HSNBYlVGeOFhfJqPSnGWQ7OkyyjAmsaHz4yVbUAj9GCCHNoJIli9OkT+njVwPqlRBbLP58+tVfUK8I5 +XhAoUvy2lXsjMBPPsFAlqydb2edZXJYsftvKPWUEuqOXL66/sNV4x1IoKP9asaRrFmkU1U9ZChbS/jpp +ln5BuYCy8MMG7+8XmUZN/fr0Cd1dEIHu35fjD++Ckb1vWJAFZVvVr+LBKKlIpZrTMGdUULHNSciJkNT3 +7u1TNEVtgpD/JBll9AJNkeLcwShciygYhYpxByJZke/h56hjIjN64Zy68pumpy5Md0Hzd0NQr7oKT3PJ +vSZ8ne7GiFSVgDkZEOviP8xgP3XGC2Br7CDanRVEig20cCuXkvzRv9Tt3A/bmN/bba6/bfPmt2cEx2mS +qe/FQ2tBZBFJUxLrFaGfGqW+X6fpPCmLVY+WkVSD0LuB1fYjyfTJtfYjqBkkvDXkwF/hr42Q1Tf42aZk +9fF51qz5JCVM/AfZqu/Fk62QUeLYsU3yzm2S27ZJ2LHkNpmRC/SEMbwNjFWazFFQFjKHA8aNMhTIET9L +pKA2RmdYNwPFj+X7R+gMhynJFmIpn/f2mkAK1iHxP8MnZ8npceu7gWiYr/kykLjWhQcyGtXrXd1p/1Jj +CXPt7LFaAHjBVVfkr9ZwaBDu8Zjp8Yj0nKnyx/LDI3QWVQMycw+IHMuz6ORs5hoQDbUakZJTDB2KN+vZ +ryQq6FY9NEbiR0LiJ9G5KqIfmhtnDucB/atbjuJtOariGmvG9OJb69GvvWoU/wdlvFbYeNEo+gPm4sks +k1tQatZov++oWIiL7beNSj8xsknomr+M+5aVUdJNS7GmJd24UedYfnyEzkhFT7GbnhIJ6IycnMUugjJA +K6JK4qGU9CO5FAVzVL9NJl7jq4ZI8ZL/RLI4yRZPU8rdkoWdz5hrYBirgVVVbMA2XiOnRRWotrm7U7TO +YjJPMhJLWfBuUcLYvj590nCrvW5kmwa9mQlmsmjXuOrCc5xyYhN+aoNqyhjw4m+MrvOdNr+qWsAXrZ1P +DvRGThFf6N+u4xZf2I9bzeXNF53L+02SkiwCriEh6qfmeYc/Z4wyVUY/HLt4nARj5XHF7iq7ZtldjR26 +KGHZoRdUf1/Q+jrX40GaBFGOGtFcoi59lNWOXWvu6TJJYwa818lk5CDrYsN2b6PCbvt31Ld/F2Cr/cqg +uKhvz6pJg1VFk+7hxW56E1UlaJN7te05h3ZRFBo2sGXx3YaVL/rGVYO1Ditf7CAWnWf0IiXxAtZcR7fN +ksNEoHqd3cQgNQDdclAF+5qjUKMuRRR2jsqvyVJ5wBft40QJUiJcldPvR5YT25PySCzLGW+aZyucpEm2 +AGbFdenau5aYFsktOAYOWlSovzzuWoeGbtGiccbZYp1i1qOX1qX2GV0LMrAsx1kikt/6is8oFVwwnPeU ++/XDmrBtTyEpDjAeUUZ6Fe3yfFoUkYQE2qknudyYizFZ0XidksAvPvljdAJj7GeL13Ik/LF6hAJPaSYY +TVPCePF+tYgYwWG2eCM7aH8bCkpTkZRfs8UbPXDFm3US4ohU36M0yWcUs9gf3zkdHd8p0Asjms2TRXDi +34N5+onRTRIT5o+Rfy+lEWhjai+XQuTGi2q51AGMUav6GNUqm8unVTZcilX68BWNSVDnIyTDs5TERyB1 +je/UxbEP64SR7zAnR0rOqtiCsfjkxF0sYZ+tkF+PEWuyrHqHQllHlTO28OonfPYn/rgpFyQiJUfIf4b5 +spiB2neyylMsyDuWHiE/x0wkOOWTuCgOI9GoE5VkYwJ+KphZ0OyzRi4RZMWdGL5UX4dgB4B6MQOA/ViR +y5w5kXp+mTMClpVhmElgvYhJoAPwAj7pxkx/HoQVlO3HSxbrR2zBcL504vU39XUIWgCoFysA2I/VknLh +RArU9D8n5GIYYhJWL14SZgMtxQZSiuO/Z28IZtFSc4JOzLk6jTiRf1N8H4K6BtaLvQbaP66KQzuRewqf +tfF3GIoKYi+GCvKtjLA6Tjv78CQajrw+mfchr0AOoNqEC8q2btTgMPmiKDWIeFXhfvpV5fpxzNeiY1sR +GD3PxFDk8nX/wvppLfqRwqWxxj12RpFBU1vZqXqntyw6YNfTB3H3xlcWGLT3FfaJ3u1PF+zHELwxeMfy +iAjnyh3CteEcIe8RgNlPEy4eP5oYD96AxieZ5M0OBH4EbXSFRAcOGbnYB4iPH02q3w4MGhIWFUvCLhLe +lPkYiRNGIvGWHiEpYdlhmbJlmGSCsIjkQm67cIg0BNUPTUlPn3/aJ1ZfypSEC//IkBUV+7QdcDUJAHMl +WB4rTvz/2n+VZEnO6DxJCfNP0RT5Unb1j63VNSoKSrvIVX3kDfmzGIurmnjP1pmU7QvxGiR4Rql4E9Gc +1MX3oswYVSVqMnr5NrxHs0AfGJ4ucbYgb9ZAHTWA4GwyRpFSCo5RrtXRFjG7gAv0hqZFnfCeakO9P3bV +4kvKRJpk51Kir9SrrUEpT2zGqct1cqsdzNBJOabG+7Ba7IH/HXyEhY5O/HtcD68epPLgBD8+tGbBx2ux +fEPYJimlDGNiANhYLxZ9iBqjex/MiRqjJxWI2qzx32HGFEwuaB5IUh4d21ekKoYLVXPV0KYJMZmj4K6e +bN18h8I9W6epSwFUQKsDC6XAQuK3FUdH06nB0320hzZoD/mKqXe0/RGp/qgDqLkA23hY0b1qDVCSJaI2 +PJwIkWQL57jjDXmujsFoiorC4Zvq9bGtmt5dbVWf1D9Zq39YJ0SYlf5TvrAW3RDGlVWmLPyzemUtTnOS +CR7PKsTqcMJX+FfK0N0pOkD377c+Jpn+aAVOLvEqT0l1jDSxet78aAWhNkjLsL01P9jHfC2WaGquzXox +40P4MktEUE3JWiw15HHV4jtOWIZXxHj1mqaEG88/Va6Ioy6q+5XTrHtRavL99zd//zHkgiXZIplvg80Y +CHqMfIT8zhZmguJBLZAsojF59/rlU7rKaUYyEci6wWbUCV9Vu24Lm07YjHw4mzO6OlvV4K9sNkhWanxx +vnytBIagoaGW5T7ocv+5JmwbwE7VKPUhXBHBkghN0ar+hYUf1oQlRAszHxoVdTdZV5dynJH0Kei5a8wG +rHXA7OfJpY0xqy9oOp2iDU1idDBCH1HxEnkAd987bjA/fpGIaFnAt3HUCHOCvIglIolw6h0VvdCg95AX +y52KeceOquvsPKMXma1mks2ps94FZlmSLWz1ik+uqspLwFaTqw3VWRNUQDt1MiZzvE6FrYr64jmtIK3J +3+B0TeTEf2x/40SbQyuiOCfbMYI6NoLYKP+kqWFKt81vTFIiSB2Dk3OyPe3aM0nKiQVWGwiaKgSHj8HC +2k8Hx+jC+qquTObRkkjR8fskFabnXslK5ozwZa3dORS1MRPY/j6EMZkT1mQi9YYkwEaLtd0+WWFBbHwo +l01IIVKOiDzJ58kEgxXpWwVwKsUhC8tUX5Un7GjUmqNQLwHjqBVjgUfu6Sw6pBmjaV+DmseuiiJZEZzF +sbKdybJ241lJiiEjnKab1nhcWboBK9XoBGHMSt4hI7+SSMD3JtT6cx7Okwyn6TYwRGc7C4/DnNFVUjvE +VD8nE/Qm+Y0gOkdiSVBKFxQlGQouklgsEc5itCTJYilGRQk4l5Tl5JsMb2aY1Qn4NzRFDx7WqZqyZIGm +6C8HB/X3qYQvD7F/+mqGH8R/9eufY8zO4evh/OGDv37d+LoCAcr/05cPvyaz1kfl5st/QxNovf51tmA4 +BjzRF1C0/jlKWJQChzupDevJ4cODMYL/SdRO6+fnk4edX+EDFIFeWytbP582OMRGDmX8ZchJKinG/5Oc +Eb9OeyHOc5LFgc83i9YnIVjgq7n1x4j/Zv0OVKA+V+3zzUI3+yRNA5+RSISzVgNyCQUnJ1VX0AnMwwM9 +MKeN8iQTkj/ZOyDbsPcAzOzywDtzdNHoQs8ISOSsZdilP1bUYv+87fw8T9K0diiWW1u5OE8OT4+bPENX +3HbUOoBazjnJsViGcYJXNIvtE1MQ4k7TIMHaRzlu4draJORK8l8huRPEesHJ8zG8OHx40FqDpWVVLtED ++3eO9qbIRykAuSjBXXSU2t+5mP75f30re+WmqqJj/lfETh5cMHoOKpuLZSKI31Fov6Dlw4Jj9axKK0Rj +/r+8DhEMWIsdPSm6ED7sXo7+4cHBn/2uAe1q5dK9dAo66lo+ivVbB07vCrsMmB2aHrLLzkVuIGutve1k +LD21mT9GXz8IS1q6BvN64GRe1yHrBxaylhxAMJzxRLb/TFslpRjxsCFGaPn0KV1DkOFBW22oCji9iCFy +zgCyt2dx/q01MkWHVjmOPrHLytazRImMUc2mzDSbdqsTu05CUlxYrufzlJRk3OCAA5ZBaynUqGOMEoNA +kmOrOFzNZ2CDrec4aE+7pfSNltHNl9KuS6Ux3ipijq5FUE7+2ELuVhdfQ/CvkTROUxv94DRtKFzgjbZv +WPTdFjjNFYJaOlLL0bu1bB5D852A9/cHLBwQKpYUPLPvBf6fSquNP5LyUWug5OeGk1ZLH944xOo6/miH +k6jsL5wfk9hl0QOwoVZ6IF3Ybr1zWKXaEQIWmnL3s40MJ+INrPyEZq9xtiABnGAAM+2GO7I3eGV5f+U8 +vF41zGeCxzN5wlbhn1JE/OWXX36ZvHo1efZs/8WLo9XqiHP/+E6RuEDpqcrS9eplsZRGOCWBTypXAkZS +LJINkYNzZMaOrMWakSPkJRn6MzfMyjnm4gh5f+b7eEGN91y+jM2SK3izMt+0Xy3hzdJ8034Vw5vYfNN+ +9QreZOab9qstvNmab4pXd7TZV05LSSJsnZJ3LA3w+RjNGV3JYSqoBg7vOcm+Yxg83vF5mGQxufz7PPA+ +enpy4cicUk5spa7MUqAZ+hGr6NLzkK9nXDBJbmUbRuHCE8Asm2SLoMJnDx2OjZaNumsIEFcrWfbvWx/t +lcPhAxouxVSJ48iscl+OjFOXpUetCGoe1asWHTlbMLrOXUCKUqNaJM+apcd3rqrJUrb8/03TNZkgyXqP +JhMwimuHsm/VHC1xzujlNuSEbQgLY3qRCTnQ2RYmRK7/6YODw6/3D/6yf3hwvxiP6YPDP3/55ODLFj1o +4LdCDdD4QIrwJGvbf/Vq/9kzb9QGBTgPBQWs0Rv10AkjsKPS84QEysoHm47k7Ftu0gu5zBNG9FlW7WBb +3gzej6tQpGcN6VZ+KhIABPCw0A8jtKegoS/Qg6/QF+jrg+J/hwcHB6ZBTiOBpsg7Lh6mHtpT0AV99/bp +G0VOIzPWoKHgN6DUsivENFrD5hDBeKApIjzCuRoYiaUHbemX2lSxV4Lbk0iB2/7Eqw0yIzg2htgcVfn8 +/D+tLRmrEEsZoI5cyPM0EYF/XNhDy7AZiBg6Rgl6hKIqQKgRH1SEW0X4xIwKulgmKUFBFEZLzJ6I4GAE +EqGPGiI+VDUWr1ywbRlAUklU8gzVVQXwYGRTlKwzPQomaFVNAzeaGVmCSZTXgzHyhGFOLENvIXvPG6P9 +w1GtupG046PZjjGhvvIN3aeynF+vzovqzqbrtcdIoQJU30TkzZJeVB6IvBOlqtg+X9KLNlpNYFvCHfg1 +QY3RVh7oShQnE9hdjgrmzAWOzumGsHlKL8KIriZ4cvjwwdd/+cvDrybffP3Vgy+/rjzFlHEn8BnZEMbr +vmGN/lUfIA7ApGV99lUeVQlXIWeqlMPQdnJ67I6WVXEGPE0iEoxCjVrJT45BKIKNrExJUsikinG/LWTS +/+s7YpkO9mEEiqieTievKmyg7uNVenY13OyU55fFk0t7cNU87tb1kFI4LoF/tTwvFSVD9SpoqFy0l5Ps +u6H2FGzbGPKqHBZ0FihgIbnMmfXMGmGw4LdswPbmrupEUBSqPHZarjit81yzm74ODQFvECcUqyGt4wyu +N0bd+1inODK7YlgZq4LwZC9IVEYO3WWLBxx5pTxVlHOhbyvxdkmgNT9aMroi1jI/gBdb7UxM4kRQ5vAU +Ux/ljgY/6uOk3oVzGq15U/Wlv0lWpwY5GEl54R0n/2A4h7CshuNfRy1LFJc6sYnlEfJxRCYrGhPwwasP +2LgdQXoEskyY0YuGMurKjsu9WUqj8zeRXMJJtkBT9DKbJ1kitl2uMspbcpOQC8kKSCbUwFt54s4neRDg +iompTdSxtSyDJEy6P1wNrBzjH2DvDUZoHx3aa0Y0Xa8ye+UkIwGjF6NCKGkBKOtoNUO4ohvylspKYw25 +w+pt8QMVeGYsJjyDtcQgpRL364KKsawclM3WWabm0yi7iyOE0h3llBfKIwmgdsgoxf2449BgsJSRre59 +0XFMMNjMqHS7vQ2/ClakzAKVkEpbxZ3OFNqzrCj+n+rxuBv4mVBJpZTvRS2vVEu1pvJPTZHPAbLv0m8V +qr/N4sxUBhAIUwP+ABtB6SC8h3xZ+NuMXsAQv8JiGc5TSllQcQk0KQSkjiahBTRFgj5dYiYCc9x6FWb2 +vmbr1UxKoY6+FjLSnLLnOFrWWuw0zjYXeabO+v5HR0CBtTEVkm62I/BiM0YCL867Giy6KhvVnAM9tptV +mv8Az70p8scdiNoH1wZGYioJACZeIu8GejVyfyuxuurAKg71IMs/w9WqpissZr2r8cq54Epe5/vX8l6i +rINXEJ1xhdSTrdwIh8LbqXsjNMMIurYSi79it1mgJUZK9uyPa/Lfp09wQm3uCq2qkjlXVQsZ0FK1Z9/a +Qb7N2cjm+aYCGlTspdtU2e9DWUy4J1s6QmSVi6133LuVtIMurFtIV2yGzYxacFxGuM0NpWDMJw2n0SZH +Y23LZnzpkr4giXAbpp1T/qxUcIaPOU7HSHAXz4NFDk7aJ3uSlW9wemrbQkYdG6bmrKCccTRjsx/buUjf +JnErm8OOm0LvZmDfBHZg/rbx7WT26sCtqdiO+TMs8BFM8Nj6/Ue8IkdKb9TGp90i0PZJEl+eglzcFrqu +7C6iUK+DP56TbUwv6qbTexDbZbM0qy8hXyZzcI+W53X16pxsn8KxdYoOv+xi4KQV7gBfFZScwd9nyhTY +62MBpkarpgYyOwxR05ih35+RoqbYQpTcXJyDapJzLWKuCB/mVekilG6KPHn89lo1MyqS+bZlcdZfV3zx +M04hcaD9e5ll1muDjitnHsvXjYSLBXkF+Z069uYWJsHdGu6QkjloIHRXttkZr1Ng19m/AknDL6kX0ybg +1mhI1CTOOWa8hBw0io1CzF8laZpwEtEs5sGoEbF21cjzpubbEp4gye2cbA2iODeT1zl1sAZE21LWIE+q +Yp1RGm1J5pxs/bFVpDKDTEolu2zPH0OzVlHPIsJU3I1X87CwgO2UHdezVSKGTLxB0YG9S01yCiwS4d0m +wRvUvYaEz0DakJ3cRnHXcx0zhJx2dXlCPTK5UXuz0immjxqMoV3wP8iWH5kz0y7yIyzrozqHckaxNyTp +cpkpDmDz3sMCn/hvpZR+WuYq1wnVcRwH3cuyU4xuqYjKLCagfrmRnqZcP2uWBv7EH93iwQ7s3/rz8SDX +nhtbRprpOD6/bTeJK45pem8ZxJbEhrEiie001wqcKntuKrCT+DbUeNi8bAIyOFbXSIAUiixKeNtJz9ud +unpQK0HPcZKSGAmKFkQgA+OLRCxREh8hzxwWtIe8sdI1qC+ynSFnf/eG0DVKo+PuGsZ9DYF923BPtwoN +nPxdGZvvXGOqi/h3CaFQvx67k5t0olHcU3EjTCIFpFIGXxebF5SLG2GypFz0IGFu6LVrWXq3dpdJoEUd +jVtOjKD+8G9gDYNg/F7TQi1VUquVz5lTtAZapw1x+rQWGyyE/laFG2lZblt3aXAh5TJhMCLFZqBk2K3j +bPZwINK3q+xsn2xgKG+HwIEwFcDO7ctYAi9vZScbQF9NkumkrwFT1bU6gmo4RwNqOXaJ35GKdeh8z3Za +m6bWzjqE5K+5Tn8Pkh8siMK9O1XelN0u36nqNe5WMzOxGDcaNFPzYDMty7rMxsJUEhb54ifCVu3U0FAA +TVXBRrLmAgyalhAtJQCuLgK/G2UMzNAUGU+NclFKcAZJY5qpwO8alWxqh4jS859xKntRObh5+uQt0fIs +B2BdyUYfzc7roj2pvY87pusF5lX6m3qWk4EXUMD8mDl0hl9FkXfcQpGHyiV7inhHbqkgD79LBEf3G7M+ +sqQ36rhiouKcnYNldPJ74D/VaM0S0fLqk+9kB0DF0+iD+tbA2iZOwzhpQjbNL/+MGdFD3exr6Z4k0VSG +HDV7o8ETkFfd75wBuQo//6EHXjF80FnHoDM16NOpc9QLD1oY8cEDXhkdO8f7b0S81nzYvnMVC6js/ACg +7yoGZqQTb/nEtnj0/fuo0tE+U1l0gvXIeq2IuUPUB6XmIVzjxWO0HqO/How6vGtrsIeNn7W3riHcAXS1 +c/WDbe1tnZCr/a7zqsMzCVoTvplvZZ5cIhyvkkxdMyuWWKAl5ohcCobV6osoY4TnFK4+ktKbClIz7qPl +oQER7l3lsipaYbiKFy3kuQX/toUMLqXDNjIqaSsaRwTzJN0itMLnqrVzkqnbW9GC4UwgnRTLRIIjQWmF +wlnQXN2jkODITJEqv9kW9wrz83YY6VlwZmfVLbi5KwSz4scSCPxWu57LigyYfJoiVW+XmEYgp6IRNAVI +loyh9ZspzQR+6maM0nGea3nSM5J4evV8nFKw5ckqTwmKCu8/Oe98SS8QRo+KhbKfZPlaPNaTDJJuseBe +yi+V+nUnqdcBA4TZlqSqUxbKP2ZUhwNGeC/J9H1MJ7Uspqe18XPUbo1lOTqBtzareEVcqJlg2QF03Cj4 +hB8hLxI6trLKVew/gtFGkktMPUEuhQejOfXmlK32NQAPoWyxHycc+M3Ui4TS/2gGFIw8+R2uBqk+FphV +3/YpXIzNp95HtCBCEPYG/l+kEfUe+yrE88aqeDNr+y5qeP+eUO7L8JtHu6nmx6ioDhquG6nqi0C9SmFf +vrG73xfhdvUKb93++oLW4etnV+E6bP1sLwx5pzc4lYxlrzA3lO8+fUIPuwzrRY3ylXY1a+eUU+54LzDk +ldO1zJc9FVUO4LhVt3j/6VNTFVBoiIG6zuRqQVPk/0AxbHo66XUY+pbsgimJBInPcHEtm/ZlgEdHPMUK +J2lVVD06ZqcWqGvMUv29Y7YEAXkYjIRwW0lwbb/1nSI55OS+3ebkLX2zBPd+z7z1yrOQlfIFgTsZv3pw +jQgTcpnjLH6WzOdtNU8xt2su6KrIkexIFlknlBcklWPuvV0SVLiIKloAIWlGSIYiVTREb6WEtSI442hL +1wgzgpIMqfSXiM5B8LlgiZBAOF0RmhEw+/hcw+AhekvRJiEXkMlOv4TIZnjhv8Ebgp4lOKWLNfFBmpIt +XSRpijghCKN1lswTEqM4mc8lRgTRLN2iC7wtTFgsiYvkeUoxB/lNUSKFKNUUBh1iknGBJYvWhdk6JUVc +h2w4ovlWts5KPJNMUJSIEP2ie8+FRAzERCGU4o/LHlwkYknXAsUURLxlwsdoJneqJcmgQ6s1h/v8N4Rt +UYQZma9TlFGQKYpRJAhnW8sQepYVquiRPqNR2/nNg4XqHSFPsn5exHyHlC0mkPwTcp/wP0GxfeONVzfy +e8WK7AdVlGyBSCk9X+f9AFS5fSG36BYQ8EBI1CbUD8os3QK1whGj/TCgGPdcWVF09JgRjWfxk52tkzSG +y0i+Z3T1/DJn9rxD4D48yGUE/ELJxRMjYYAnCG9mlVV3zV6iaTPKSJ6NslitqQ9rotwOwPuxVkyHMZsc +90TT1GkVj2zgAXL//qFks/VKJQF11rMdGKzdRHuyXxYv3PiymUuq7V1TbIDvs/dZmUXBR3v1pvaQjz6+ +z6xRRf/Gy5tMP36EO4j1PatXV0fyDUABNcjVFaKZfAV+uWAavbpyQZ3ReIum6L8f5Y+VO2oDlKveo/zx +W7zgR87vsJgeuz7/28ePTPIXdO98jO5t0NEUKXTdLf7bvz0S7PEjET/++PHe+dXVo4mIi8dN8TgRrKtN +ksUdXZoonP/bUeBKTp7fpnZi5oqHQNlGhCwqU6FmsE1WFXQmAO995o3CFc6NU1lq5JdKQ8GSVTBq55gC +kCfw/8KVeh8dnkqijRjYIiTdOko1IiDNbqiyv9Ikk8gB82q0DBS9N9W5NXakZSORiK2iq5qvMjYUaLpL +XrUmyiKP7k2hE9Zy3ZIeFBSDojcnkwhnvkAcQkqLDX+diSRFeC4IK06eUmJY5zEWUvR5Jg90cu93Z0KW +4N7SQLPGcW0MB0XHlHibfbSaceSQvVUMrD2MbTJnYGP7f+/5Fyq1yqditj+Zm+Mntel+gs1u9J7vBSfv +L97vvw/f3zvdG73nX7z/OFmsji0qJREtLVuOnrCPTefA2gZiieJobRbuMlqc6ChRkxU6yilBwFZAb3/Q +S7CcheSSREE1CSNXlIp2FIeaJ4enx12BHarQA0ehNOFyrhWuEuypPfbkrizoUrhpILagmWogADiwGy6G +xKbIcvqO3y4LSzMjxBBPLZ02aIn50hV/qyWupT4w+/7oRs5TtaNx269tMCeyiXpuz+LG+drwYKyLWjpV +S1cYR+OgboVTy9Vn8Zn9zLiotW+dcet3dnaLrLuDJzR7XcTMeeo6+zkR0bI6GtscHy2ebYwAiQzx9+mm +qeZxo5FroDO9xJk9v0SZv+DMlrngn5p9gmaBN0vXzOtK1mDmesB53uvKstP6tRkcrtzzwbeZwJeumBUc +kbd0sUjJi2SxLHLvu5GF4BEAaOtGV4IOSydKzBzuVf2BCI6+fU7JQiz3oWguUhtoCJRAZvKotnr7NVmQ +S+1i9posnl/mgff/3r/nX8j1Dtv5HvLev+d78llnulp4djKWZ+vAADu2TOcMR+cXmMW8dQVrKX0wnNuu +ykb6Wpo3BHLXbogbwpKm5B+Uxc4SDHpqa+XKsm0JnR9Bc+je/Qj2wW7pwD2DL7XmvTaT7aCaMp3bgojn +KZE/v9u+jFXw974PioKRBvoyE/TnhFw4nIf5kl4EVcgTP0ni025iU/rf2uVvltQyRTk/VRr3uqodDbr3 +pTPBZnnU6kytaN9OrYlPupJvyg5BDkyn4/SapWOLYHUjX9Sc0UhnX3BdLyMR00WKfA1v5CwenNrzNtya ++yd45cCv0z/A/RJVtzMFBXHt5JS8IOJ1zQTVvSPdbd9ceL3AtqrLIonO7d22ngMm2jpxJoV9S470HUnJ +boor5T7fEdVeSscSe30xREdyGiM2yWilK66+zCAA03J3inar3mUodOew7ktJ0B3TfzVwcIv1KH8f39kF +c4f0cuWggqGRUD00oGX/hbqX0WIdW7oCoOzyY7DDgrRYMTkR1t3QJs1I1l2PpWxa5ovLVhoGeMumI6gV +kra4N+Ao07rtsCtbCBMOMbGBCpcVtHpxgzBZbRGV8OXvQFBb+/LT9RupeQU0PQXarVXFH6EH17w8QnZr +MgXuAgl8j603zUHGLDzjAfxgdJ3Fgapa4TyyjEeMHjku02jbia66wurlqu4Uj4gYFK3/L7L9HcjW9Exp +zJuFJIrCDsrob9LiQtNBn2V7Kr8bmqCvD7rvizUOFI0rOECItd+13FSKwd+epFGl9smmbZpM0BMhyCoH +az2YUP/bMJ/MKf1vlGSIspgAGXIi0DpHH9ZJdI5+Xa9yNCPigpCsyt6Os1g1teu5FCoVB1J4sJ1ITVNX +WyQ3TV6ui6Oj839fr/K3mC2IPZWULWG2ad5q5cxuJ8uAToaCcBEo81hyOnJt22Vzv6IpStAeOjxGv7aa +/NXepDGRT1PKCZoxHJ0TgbBAXGAmEJ0DJO3rQjJwKIHhDTslN7CxvL+arMxu/Oruxs0Er5JtylVVWHgK +mnrPv5i+51/UbDiTlbJdlHgdd/YG4A6UNts0UhpwQEgCWFYjyK7C5dVgJUKJU+/Gk2MmjMXR6EyxQJAt +PAqqFjbcu9PrbvdN/TeAPTk4HSvcTg5PXW2fHJyqfEKFvcywIDSP+R/vDJ8+xS+NYMU6sB10OUQULml/ +0y5+1WyAc5/dUV3Z26BACE/B5GMQfjG6mliGAgp0dLDlZWi3yvX040fDmlh6/lWdyRx7UGarljn1yXJ5 +nimbrWQjR8H7eG80cSZDGnDDkhHKXjJ+LvxbV9AUp9ciKU7nmctmbgGxyus5ew+7Z6mjFUcDV2P0wH6W +b3MhR4bG7obtJ8WS4osDsiJ2TQUdmoVmhqjVSC79YGWm8OsaoUKBTwWFbNKrNpcZzIZvQY1mGTBfHcGL +L9niCKR2S0h0t7ZLUvsQM1ylyTs97k5a3Vam6CL6/nkbjFbKreJYUy1E009+UHbT4gRUB/HWneXUkiCV +1nGofOkHVq+3X3nXD6peHhb8MdK3zTSPEaPBwIojRQtWmS9qMChwWa96VXqwDxuT2m5jjE3Lp30QOEM7 +VcEyNYIDAWiNWguGfj/a1R7x2Z/XbdxGIy1olzimIj57DvqAsgTXC6mhRbh/v1+LUKLZyIl2c71CTZ9l +UQMAAEfgnnm0Pxx0FWWpAFCajEfGVVToozyCHaJVkq0F6WzrwTWyJe+gs7v6jE1tMJO2O+6q6oI677ej +PVXLAXFBMLiwrT7wxZ4RgDKu5ouwmKmZfK0KlrF2d9DVflaW+8faKw0zsmmMdCeskRRytky4oGxb1AB1 +1wv1riPjdJdlqL0hLNVWUtUcIvP2mF//B5hSK/mtO9/Q7kmefruoR6dvHJdlbUJG8hRHJJgEJ+OPV8Ho +dDRZjJF/7/D9+sHBwczvbCalOJZbnzwc/ARhTbWrhDLBtmO0sVlwN2FMM1KE+8kdaBM6Z2OAdrlMetTW +Bdabso41XHR5jqYIUG5nwB10p2bNJ7r3bs1a00Pv2KxHjFzvrs1b3lasl2MO20oMOWKj3Df6NpbrXKL6 +BzHXTVjF3yjWqh4tHtShjqm5xyMSCrbm4gl/IVap4pzf0Xh7m6xs03Ujx/VZWHNVtU+gDg5VhRU0+bfD +YjJgWItbUXYc13K3ei5FAg3ZlRS4VqgI5GnXHqBVJXVALRhdSEIvOjH8Tg1CAz0bVTlx+65rHF3gBgX9 +1owl5ypcV+DwKVTq2CkbUE/OT4uBU1VPzk/7ROiMChs2Z6pXpiq1nWYErujIXCrGDU7VqLgEHtn0iQdF +QIOdSezLWkOvg5IVfmJJJtzJq6vGVMGysY8IXhyhCsjVkHbPoNUXb9/+1BqTZd6JwTIPXxGxpJBHsEJk +me/m2+xQW8PNMLQpu8Je+mPnPKu7HLpnW3DHZHfpzz3oouU2FInPiZoEy5CfBcJBblh03Y3SS3Nm2wXt +BWCWFXJGRl4PDbptYNeiiRo6ddpoYWWjEeS4gmUg7eD2tEse+WOLhKornTCaon9/8/cfQyVXJfOtoqBn +kP5Wiplj5CPk2xssTw6KZ8JTj4IWSv5DPfKu60bpRSYFb5WYpdeYOEvpTNvqv0vpLDhpCz6nY/QR/MmP +EOStmeQpTrLjaIkZJ2K6FvP9b7zW0HK8IU94IOGPkaci1SXQnos1kvl8AOYOQ9FEVvdtvuueAuodWQS7 +to+5p28k8JpXEvRKRzsft7UGDCjq0yfk/UjRs2Q+txh9JhP0mnAiSt8+CCRLIB0EIyjhKKOgUFO5fL69 +9eOuRtX7vswbK+kMmjRSwO5yDpU0MmC2b9Wn14BT2dje4E2SLY7RTynBnKB/4KSZl8BFcRLObVAcTPqR +OdT/VLKsD4+eozd4Q+Jj9JroqACv7/4+7Ui7zmKVcPD2VTA1PK9Hf5DSrI/8LM05yKYjzaTyUtjXPN3r +U8Tb23TNRX+7mgi8AWGvuoZKluNZh1CXVEgaOZXlpmLupNdMImcHEcAyHJZMEdLLQXl5WJF/G9967awq +zWCMRbiCe6Y8TjIL3Z9VLZkMgq1TMjGFwYl2YyjBDlqo7Jld1IMEp8+wUNKDS7BqdeF5lbG7qn1DH4JW +IzrD912kUoygpzQmRpvq7fHvaaXv6vcwNqGQsZNhLQ2hSnRXT0Bor9aRf9A3CaXcT2YJ0Bs/MnoYY3GE +vEc6N9DVuJWn0N62LU2hHwm/nqbwHUuPkD/hAoskmuSYiQSnvEbF4VKsUp09sDMz4DPMlzOKWTw0OWB/ ++r+bpPlLS11UkUbOkrVMq8JsSf+SVBAjb5J6bmQ0r5V1KKxKQGZWc/XSs98J03ajgNKGE4UC2TbQt29v +Lce4+OS475zMGeHLoN6hUCxJNsx2YYy233sNSOuOX5MWCGO31s47EBzBEZqIaKk067x009nhUuBrXXrZ +e8NlPb2yJgrLNHve2BXIdQNqQbtdkGnLEiqZWpwwAhdHBr7gWoPr26LjNa80EsLWuVDJfnT2w4LzFMXT +JDs/MkNZFdMgKVmNERaCtVJ+a4Mtf1NcvNphAjMwlGdfOocy0+kU+RT0sE2iNahlXOT0vTK5fW1gntJV +vla3aQwcHUD+qIFlZIA5Qv60CbiecylZEVmo8XpJcCw3jtqHq3HvtJht33xuwLW+vPXalaWm4cFjVLBE +15Yff8IMy5re/RgLMvUcBqfCvuT98ssvv+y/erX/7Jk3GqE95N2XUPrrvXhxtFp53df8aVuEoHgw/Vna +hCu8N62WXDRYtjNflQFOVZOGJ05hdYvLQmPkr4yrRP2iTXCpUj9rnjMb5TajXGaapwXIg6lHy+f8hJ8W +CrKrO65i8Ul8ulyeLE9Xq5PVaVnpqtapt8mK1DtUUUqwGZneSErbf1F9bn1dcT0aGb1Qbkkr4yteUGO7 +Uf5JmfEGHLwVhMcNxyRdVf71zW43ZGsNL8mQbxmcyr8GHM3evX2KAkgakGVorzbB5ZwodICUJQp7yB/5 +tRGsX1tZG8ccC0GYRGgCrt1B/Gn7Kfu0/LT6xEfBPl7Q0beT49qw6yoqfGMzMobFQhJNglOJTuSyOjk8 +HY3R6uTBaemG4EMS6VclEdYHpgHpAKjEwn49wSW9eIPY7nV3mXsX4BgNJULV4LhvvXfSbdvCD5mfKuK3 ++9sUCDzPwBfDdVA0eIBuXXeDbHDaAjKqLwsrMCOO0qBJIER7rSKrngc2QAhWtob/uW1gCs2M/pBkzqvj +5cSFsqkAjPo3PPpChqMUTaukHkqG03k9Ah/7jt6SNNQz2E6DZ5RZMiLnxJcnoaPJ5OLiAnY0nMVyK5Mn +yMkFZWkcpTQ6n0Q02xAmSAz78bcJp1O/G/TetGIovtz3Xr169uztixerVQfiRU3/fn44PXC00Lzov9qO +NfK15TBG553e/7VGJbsLztEeejAq7+XfDLcKlWQgBykg6WiX+xx6hTvNXd5lyeUfzmFkoztzmcLDdQdm +s/oXs/kXs/kXs/ksmM2bJIv+WFkGWrw9YaZaJCuIufiRXgSjLn/W/kGhNBVJ/nsNSkFsRK87+ffk4HQU +6naDjwjEVfnxCHkzKgRdebv1wRf8LZ75v1MPgKXLA6hGvZETTk6I1nCZyvaN0xBBNiKMBEv/g2xdC8sV +NX5lM3TD3Q0JR5wivkzmYp9kkKUTZ2hGUITXiyXkM2DrDGF1F8LFkmQIBk1WjHCakhgCS2zwyxsU8qb1 +1OxRTV+H7t9H8iXgcyv95BeJiJa1plxAI8wJ+usRoI5nbsa1EaG+uusZmeN1KoKOqHlJBBu5JeAQ7tHu +LqlyDUBpFSSS0OyNfOeuVgBGU+X/qt2WARKoVd5DWvzym/rQCa/edAOd55BYQCG614z4GTJH5VAffglj +DVTXmXWgjdLdFk6/Xz6Fz2y+odp6Zp3u7lopBlMsX89C+fNl4Q//PvNG3VNZS+Uh66psHgBJBRbfv48m +J+i9OJ2oPBd8PTtJTkcqx0fnxHTjDDEUsh3dVdn4GCVoH9AY3WRZZHJZXPDfcW0A/CL1yG0KJL7gjPDk +NzxLybDdixEuWBKJI+Q/MTTIdnU3TtMZjs6PkH8fIq+T34hv01k3tsScciHl9AFbI2x+ZRdauYLlV5oF +PpQgXNC81kuyEWO0Tpy5Y5QnkO6FizHUSwW7SYyD5IqUvKFMKKNsdQ+bYcrSLy36uo/NCyR2FD3QbskR +7oF0NQrV5TqUCcICNzuVBX5IuDhCtgNl2fHR+PoepGOHhQwVl/IsEi7CRSKW6xmcmFbpNouWkzj+6uAv +s79+SeIH33wTf/XXv/7lL99YJwivBYU81bcwPY61ZZu50uaupdqbzpsGc3Jwas+6bR1c69g6qDhZkR+S +zM5kQL7l8ex7OGvKE/OXcBjUh084iXh//mXy59Xkz/H+n/+rsLw3FOJYkPpV3nVNM1igRjrqO6ippFVS +GLZIstoNV4LmR+jwoJoJliyWov5KHReO0JfGu5TMxRF68PBgbLkt9ObnO75UtuymC3rhuJimOG+khk/G +yBXA14B7kpyiKbpbf3PcwR7bYYNS9JaNyR91ON0stAWpCjrs5anH7nOwXwt99cf6yoAGzHKs1NdAF3dt +DXc7vu92rgA1USa0iTv+MtQPJQaO6zh0sY6rG3bDo4AnmbLBMfAYzbqBIyzPQ2FKI5ySp3SVY0aCmXw3 +gIdUs1WNgf5lV22CLGaUalyktDEuUtpowdnaKMQske1QSOdk64Yzw2xJdPb9h5BtUGHplNjMCmD2WyVZ +UL4co68ejoZUwpdmpcOHDvT4ZvGiqFhDDH1hAN3THDAUNK8eFHuzwy2xqRrYN4HsDwHCN4t/JDHcKgzS +2oV8cOm1L3TJslLZhGS51RPwaTuIyzeSTI09hstnpewK4Zay4ORgrFo6daBx+eQy0YuVbxYhvkx44Moa +LaEHqlFHEcoSUAerUfJdKjeyysU2cE+xxgdOEKWOy94iznOSxYHPNwtXtmu5/QQ+jII/Lse7s7AiB1Va +kUNP8z2NC4YzLiUAf4zUQyoZs18RJ0z6HvLHfpN6/ZFtHGGyhjUOXs+y4UskpxeJdF/+vRbGB4Bfuczs +uCkSCWO6wkkWnFibib8ERqHWsClIxQav0oXiUOd1MMtFRrlKZop0un3J39CVQ9qWYPHlgLbx5W5tF3Yj +d/OuZZiSBYFz8q50HyebgbMv0n3Viu+ytCUrclYion5cu3HQqqsRloK4HkT5863dZ6rMN3C7KMh9UY6i +fQXpofbDy7BrSQD9wx2nLt4oj8wB8FJH16Kl0ow01q0lLrNhT9I7+ridvyJx6mxlW2UW4DTwwxlmrs4B ++jEWWIFVckYxXx1VQEMZdBQoeilPTl1t18nUvhgl8UrGExce/K6k9gbESyc0xZ+CauXGiihHQ8BKqTsx +pY3eGuVmMrxKsVnV8e/RKtv6VVqy0X5Htx06CTeWNAv8FV1zsqIbEsqRLp/OLgfX2w7vockZ1MIuM6Jc +E/0oTaLzOgJj9GsXDuqCYDRFPtyUDZ5vcg8EyvzVrSA1z42+ynQnq5723jVRO3DG/eU7DrJ9loCeU2s8 +uo6RoHbvWAcETsC3Y3jO0vKsiaboXuD9SV1xPOq+tUOdNPvA6lgVTlM5HIvAz6hc8PEYkR74Qwwq3eOl +tI7+UqzSMZrReOuPykzHeUBCOp9zIoKRFAy7JmR0/TB1+/aR4hlJnbsjbB5yn3XdM9KxU5S7hFzTPRIp +uRT7OIuWlElxBgSZOz38/6CzRCyL+PvhQ7LqBhVLTuWHD3oLbpsMJTG2nUByi/DhyNw8nDuOYnIO0fR4 +4LxxkndOmpLPbjJtHZv74CE5HDgijd308IazX+yxFx2nwe59rj0FZUeNYkGXL9olmhbHpQR8mgJ57pCV +A7FM+MguuhYhFWcdEnJFRJU6Orgc9asf79gNkXX7G/jgr8S7LIGkJie+XCDnykV6jPy/yf+9lf/7Sf7v +uX9qRAJk85UI+Bit1qkYI76ez5PLMaK5KHXE8jeaqj+fPpXKYfCfL26k/D6lWATc8PFO+I/4xyCDvKE6 +cIarsBmVKcO36NO5qTqXQGSb6v6NiiSyQkul7uXIjDbvZqMWSOgQ+hb5BxDepZ+PkH/gW5D99AndTfj3 +SZYIEmSjFjh/3/D3x+ZVISYeGD2e1q8jgcFar2YQ8Qd15imlTLnmy50Nj9AElU9yMkziwGiiq+X0IlBT +ZUBRkM0KcBOCpogT9bmlI9dDMUXNguUwtcyJZddlN3Ao6PfJJYmDh7W+P0KHZP9hbXp1aZ3euGUhycgC +TVGGHqEDOVP7vpwfv2bckEX2ULDHRgZ2hle/imYLfEnOXfZmwyhiIcBiMRweHByMkVxGHwve3jSlFg3O +toLw22jxwVdj5H8nm0RA2epqS9TbfiJur/nZ4OYNGxxJMRdJ5I+RUi4Ztsq6Me13tVd2mSuLBK2JSHBa +aqytrz99QobFkottSkK9FVo1Ccr+35k+wFS2WuA6MDneEQZkljI/g6j6otANevmlJU3HlV0lTDIBFxon +Wb4WUpLJFsQb677agk0Le7AqIff6PoPuHbdF9zvMlMn7IslieiG3LEmm3xfxq8bcqxJjycHawdYO22tp +f31wUKcsbYNtvi7ssI3X2hR7cDDuyIphMbIeOdLyWQIyEQRlKqxaH6/Gt+CA0TTi7ClCXJZr4fDhwR9g +oumwyfTbWpSZRR6SMXNZMbat8pTFSYZTZ5wDzX8Ps8dwS0ZNKPYPDw7+7HdaaATNe20itlxSv5tJ5Hcz +Z3mC5p5rnndtcDukQdl1z2leLpwB5CJ2+QCUJC0FoYbXuGZiffD79xfNcy7cls6rgoePkeUme/nvIpwl +6iQJLnXjAdtan17pqutkptoJunIY3q1y7fVrXXfJUDjYQFxq84oKjxwXDVwfF3ORTQtrV9Vxp1kszPCK +VEb3b46d+qYbWrj1gJU7RYVb1frhQ3u9G+8VhhlzgCFd/tsapV9LcfY7nMUc6ilsTscoPHRVllykziCc +A/K78c86/Ja9vK9CudNoG4dDbUFz987kmAcYHJFE5zxQNAVXYNoLxwxfBIPC3ZpeUptOltC8RGoDJ/dN +QYrTW1+fBZ/aqSuq9/8M1rat2fyNtVr3RGqzEsk/Rp0LsPAjOBjvwqZ+LvylTjso11CWLrQFOGSgt3Nx +5cnkv8CLwr0YlPTjLbw+K58HNk9vjDzlmNFVodO+fJOmt8OaBgbVUagaSEjU2gUPTpGqmFbnSzxIFnsd +YbYzDElr63PmhTPMvJHSZRuEbQcjQQy2WnvydLjDMAIifaW3notc1eoJ1IoYYob2FPf0xrV9R245weia +1uWGFVmvoJF9f28zgUHO6vbj998Yzpd/yAH80H4AP3QcwL+0nsC/+Z0P4DjLqJFYaZcjuvy3IBlhWFDm ++D5ja76EQB1ZYAaBOa5iz7MYCpEsthQhkNTsO1nwCPn/x1JihS8dWKySzPElo2yF0+Q30js83QWKZL2O +UnxJL550jnRD31EkozpC/qM42SBY+1OP0Qvv8aNJnGweSzlrMlF2uOcpWYn2VSGNmiii6X662D980IAh +khUE13dBUE3rCsoS9CSDpIg4ySzRg7XGdcNfN9pVYPpadlbHWeaoq0rtqkEao3sRXeVJ6kzLVQ52S3kS +RsskjRnJAocVrfB566192O21Zw665bTdhPagG1oLm3YjvT2rHEEaa6HLFKnnboe2reNy5XZ1fxlftu/D +q+NbLn43piWgB0Mb/5+ob9w69Y3FgbTwlXfSdpd7+I21Z/2e3r+bdsyX27DTVROOiWUgwmF5/EYT9OBg +1FFLm8grucKxSpPM4oJVRNQr6iq34M6oeh8zgv0jp7QGV+tXY8cI7nKimjGCzx1nYhWhPbQl+RQMXtkg +J1SV4dE1x5c96tYs8KG+P1ZgSdxXEgSTcsf/Tlfq0rCXG8b/aMX6HxtsAImOyJw3/JflK7/HQBGlSf4T +FstulBM5i1DWv7HDUb8eqsMfuwtwTuGSz33IegAu9ThN+5zvk3w/x2rm1ywN/iTf3HJAx+8XyHEdnLYa +J/uwy7HgxSrsthS1igwcEsVBblEqGobu1R2rqnMA2SqFiE9zHCVi2+u31u/Z1g+juUaGcC6Dd3R3JFoz +rnw09YrxO7h44Ya9lVTzli4WqcuSdZnSSHJHLbHXI0Ca+pjyfGILT0ppVOA6TymW46BlimP3FvdWZzHb +sfmyXN4uBSowUEF4fWFB1dnAETnzQ1FSi/EOrkdTyEfeNkoXUqV1pvw/ka8O8WHkjx2fv/zLX8jsG+fn +r2I8/wo7P//1m68I/tL5eT7/y/zgwPkZf/3w6wfutud/+eZwNne3Df/84ZFaWB6G/jWKNxxFcHGVh7iD +ju9b93eaxh21l3Sjbky4xv4FdXtYdVsSyGhGeirFCc9TvK1Kd+D+k2wATdWDKZMeRQmLUtLdF8l7H3aB +f61uEGlD75eu5kmayi5cLBPR3QfNMNuNdLn6F2yZZmJf+wP4hw/yS1dLkODjmjOtUp1cb6YtDgYSWomD +PEM5D8Vyq/u/hFH3/dqlTszYFp12PRPe3fLhpuZRkPkZvniSZeXe0u+a0ZKxGnentHS1CrZKUen7Pcm6 +cOkGUEF315hMVLLBGShBipbKgBPIE9Xek9U9HfL/+xHNYpJxEneYdjqa8OJk4/X0iEE6eABQr9bEi9GL +LliMXnTX1xLJA2+kggK8p4zA+L3j9etfrgv58KAAjUMTdjfof1Ln/36R3X6vAehn2d13LL21zhbrB/vd +Kew0jEtQ8i8ZmXtjhMN3LC3HC37TTLaTROfe4FhQ5VuUxfQipDnJFKQx8s5mKc7OvWtExv1zZ+cpFmRB +2fbWV6GG+1l2+gXl4rY7LGF+lp0tbs+85f5qsK5wTzSZDHG/Lzb6cpc/C8WSUSFSYjjulIaZl/Fll74k +wytIaaRDtevRiCwh/WkIhjj3/Kgdh+w9BxyGJyhwp5CwSY1FLzqbvkxEV8vdLkag7EhagYHqyORylUpp +pMjCf6vuWlI3skDO/Mtk1NGUFNIvk3ChgrCDEZpAMJK7wirJniWQNVV54xVqxM4acsbG8gccnjuL/heU ++6VjgDuyUtTv/Y774/nlMXKWcBKJINZ3aHcxEYjdiy/R4ylSxXuSlpX1oKFaFbTflV72qhNvUjPTQqho +t6CZi7L5kyS+PO3uYS76+kMK9XIiIN1qLk5MFnHaEyxPFLGqlYz2kF9SrI4yy8XJ4emoB4rqWBVDK2sd +nBa3Sgypu0XTwvlqxx6o+nERXMk/MBGU8ZISqX2t5BhD+v7e1AFG3W1RdyvrDkhrIPF4VKzLIRkOqiWc +i/h4SPH/grKXg8r+AmW3g8rC/E9RkxBg+gcBKJRxoNrUBDW6bgaGq51TiRQ6b9m606Wujptz3wJVSd9G +1GXdk9NUmvXkPHS5eleKplLronQ7xaB21XtLLkVP2Lme3P6xG9YscGv+WvtkQFcfo8Id/EFXne/ARUFV ++gU9NvwBrt3ByhJToPQt2n+IjtDDYfmDCpy+RfvfoCN02F+tnv2iahXyYKAj5Cs/vo7By+BCgap3oXzR +JYPMZnARXUykbPDdd/Qy6KKI1yQaNGCzWSh54+GggZrNwu2gwlWOpVlYGjUfDPaEnc3CQpZ50CWVwaUi +kqm7Q3YuC7Ls4sMO3bWbBSntYpGuTGkXe0f70B+jy/5iDwYV2x66rYpmsQd9ESBwx8WlIJl4o/LOd0to +kNW0Kt4tt6iCz7MY3a3V6k1/BDfuoH11H28B5HhInaCq8iyZz4srDnffe0oro2KfLoHuyhZj9/CgJ5jv +KU11Ov7AP1FnK8PNeNz0hj3tCytslK/phuW3Tv1wx3ek/Hf14XeT8GSWpInYyhMwPKXdp+id41ZcjS2T +OCaZq61+tfXVv8Ixu7RuQ8MxP6eIyVuIZ9wtpPDSiAq87IoKhMgurR/o6HJpdC32usMdg1d3Cw2MyZxb +cy39oWF+/dZidfpXB2r1mzJXyNrJwamU32HGu6A9GQROX1AGWS2ZeCbZbbjOEilouRv5zOMWS62EitC6 +VB6h3kjFkcFDGKXgydy1jHfx00LtcI6gyp1ovB39Lw7A3MGHHvX60XcIoq0MZ0GfBJcXAeZVWrPjfh4F +qpyecltVrktTUGm2g6LLO1GBO5IVhKikr/MrfFmF1wOYZ12abdmXTjNVCaKJTk/yUqgb5mu+DGQjaAKY +gaZMMoSDW8onibQ3ebgNuiMdT4rZOO1QiACky6A7TtHU+DkhwelNBRKjKTpxD6/KOD7ABlGkJm9Op5kb +PNLbhfxP4zjubHpYbHORmfxWmj7tECnkvtlFVHpf1QPrXIdXA6K7NYyO6duuYO5ue4YOy2Hqatpcxbc2 +Q+US6MdA31kcACb7MBYjNEEPDzpmD+4g7pg9DXMnIRAmYX8KdR2pLCSGe10lJHKlm1IXglBQNvi4W0gp +EXMqVbpP3nDxsWoMX6JHQxrDl9dp7MpNYRVvkj0ZQxMdS7MS636EDIqaKCVZdCGvm5EsswyFWyU7yxmu +1vHloNZLujeQwJfXzzax7eQdlWBUhmVJsVdFX3Whq/axAx2TFhyMRrsel4ZdL4AGXTGABqeBKFvd3mar +22HJJ7oSOSNb/gnILd2fO6E0eygHDXkqCPb/ejAalnVhvzd4wXRZkhWCykrQm1DBi0FldEhWXdiAVu9M +nu8+uPOj1G9qepclkA95FP5KkyzwjpF3q4cm7YH4MlY3sOkIbn1aQi9jtP9Yfe+D8DyL5em1AqOg7j9G ++kufjPwafHMOBt62eqCvWm24gpaXVMEFq30G+TkKkt7zr+Ge8zI+aTV4kpyGLyEz/8HxEBh6NBT/bUM7 +OA11ieMhSepFkq3JTZLNl4PK9PDDj0fTYkb20CG86h/NYkQBkFl/SMVBA8zoxfFQSMUwM3phH+hkh4FG +Ko8F9Gfa5bFRV+Y7o3GHT48xqLUePbL3qFIi/a8Y81sZwqtr+tfgmm0DZ1nNk6362ucEa3i01ewtLse2 +l3H38d9kdn0ObsjMZ8Q3iyPsDSvcd2WPYe7bJDxJk5mKWxx+eUe1WzU1dEN4sRqs0h50Ew5YwNLmni4l +yBBvZ3eGJ7XWYlhYX6CgEC++QOHBw5EyOw9so8z8VAMxpGYpdFVU5A2qyAWj58TZtyIkLpDdG9wPBXRf +h716YxQO68U8SdNbRkWCNBA5CA936QEYK7wxGlbp0utJvGU1CsCVjso0YCq7hjRYoLeDd315C/9bcHgY +hE+/txzJ4ho8vRtcE1qE06gwDeqRkw0YF12pHvT4gk0m6EeyIQwxksWEoRm9JBxdJGKJUsI5EkucoW9Q +nlySlCPMCBJLsoUfcTKfJ9E6FUhQBDEMvTyvQvoR+mYHXvfNLfC4su3rMzmaBR4o3mHrqdEUzrIhTP/u +Dbn+TcZBaS6yIY01d2wlA/QLI7WAuWB0E2yHXp41ZM7aATaf+1w1fST8P61ojNM3S3pBmD8KBUsWC8KK +/AHXjPmpSVPgs9/jmu9W4H1YE33lM6S4qF+f1eOudUthDzvmIEJD8xDJf7p7g2TOmiiZu3O/WMRJtaMO +96MdCreM3uiZirJa3TX1Rl69A88zvUma/vdNwy5rrOz5jUJrNJQ+J8bY2XXIjaXsOoNuCzW9tbN1mt5Y +F0swJ8oBFDN/dANnce1RFCgbXyk0Vba80ajTfdy8bQ403DrvTo8aGUoNSiQ88OLYQalsUO0yN8jwMHQ3 +VPkL2jkcZil1bzyD7k6F+4puiIUrGwHa5QJX81q7nWYbhcrx1e938i9Ziv+n+XzuD4sK2K9yIvnh4YOH +Q9pZ4pzsK2E+yRaQVowlPH8eL9xRewPt2MN8SfpSI5fHoS6n5qqA1Q+5+vzMamYtiUqn0eu8g9Chj9Mh +ZpD5IuR0zSLyXP7u8OoO+TKZi/8g29t1bap6i6aqR5ruXGzeGFrZCSzIfCW0c7j7RsXKebxV57C7zjNl +SZ+vxLM1A3myOMVX9UN5XGy8PjgdjUY3obW6Ls3Ix4zu30fXcYZXgKoU0UOd7416agAHONEPOeFc7eJ8 +10gDOcQPbwdj2TXp9rYW193PZnVZDscZuUDVGXFoxUqjVKmFqpWh1UJzlZZVJCuiMrQOBV7ZJNtr8Tqg +S0JFkwl6u0w4SumCI1xcFw13jiLCGGVjNFsLhFNO0QVl5xyFIaJxHN75fY66dqfn1XwlZ9T/5Zdffpm8 +ejV59mz/xYuj1eqIc79jxyg4X9wTZVCo8RqDKVvtv2O243aApzQTjKYpYTyMyt+B/1wO7FPBUnVRAMyJ +3N3vLYXI4UdKI2WTkQ+MrkX9BFNc2wgVxqgsPkaqsNnfe9V96Em2aF28DiDCBRGBP8F5MoFJbzpahHwd +RYTzhs9oc1h1UwoEmqKThvBxpmrJ8X1eD24njI0hHt42U4SxUMfWwi0r1gJv1iu76Ro+LulF5rxz/kw2 +H8KkcBty8oTivJZSN703VT42T+naxfng+/cJ45CcoFzLQHP1b10upD9gZ/3i08C4ldpsKXdawpohq2bF +hhCuau5AEmiKPBhlNCciWkpqVFdHeGgPfrmbmicZTtNtPXCoTdoqBVkNaV0GGE4ttAtIDjatJs56JxM0 +/4nRHC9aG8FVC7ygAqc/JBnhnanFNL+pj7x29OiArs4qJO5voEiCcdBceLUmHSvQRuMgCzMWRksSnbuF +CrG318soG5Slx0JYOy77sSDiqWq1t8vnZGvnN79zt2W75cpxhesPGgYJyTkSEGNSGwRZvLXUgJPnlDdY ++RiAt4+bA5k6gIZdJWRELrWgxSLaoIewBjd7eCr7K1e04sk2BtHiTZYVTzB7kqadxKOid048nKbeaT+4 +N3ohDiXIioSbg6YahonpapWtU/JDktU5l2T2Y2ShXNnymskee5OIZvNk8S1OCRNTuN1YU+hxq8qc0VVN +vOzfkmQre1Pk3S/qQhPFQyFAeVJe23/1av/ZM68LgGzADmC5PFqtmnVVAnwHxo5NsGxPVYTW1M9dkBW0 +RLVR2YqoXttrlh5bhcTJZIIeMTInjGQRAWvL1DvYB9kxFNxDk8d3ZGff4sUbItn65Isv0P8BzTP6YoIs +YbTlG1WlfH9lXmquvh3fuYKwNd3Az7uC/9kJ/GcT9GssyN/zwvtoeAtGPXtDRgGzPXXP1k5NqSpBLcBA +LBMewiloiubo/n00V0+fPiEPrwU13GtUUbw4N4rKJ1m0WWxeYKcL6mdb0QWj6/y7bVW2ePHpk5lqtTYm +qift4XiF82uMyCuc24e+/Gy29J9rwrY7tQI1AjUEb9Z5TpkYow+tWcCLBSML5euOPsix+GC++/QJ+Xy9 +8hvDtyKCJVFVQz/L0s2iTHESXRCe6mNcK1kRs1GhePnpE+gParRpyhRQ5e6HMCYs2WCRbFoHi8kEzXB0 +jiK6yteCoKokcEf04U5Lm1KiZtth4aMBZIr8BV4viO+6Yx6ZUSTNXoeRPN8QNrAlXbq/rUHQJB5OUNUv +C8A2MD13xjtJGXJlGy1c1Wc/NiY95lZSirlQZ7OyGDzbigq8MODBk6aegj/X2cFMrTqjTvVKVzTWZa1u +9rd2ZeOduzbstEsMlwUsE4OWJxP0lOZbBGiDhxFodjkSFAGfQrMtmmv4nCKaxnBFGgclUm1J1NZ/k67O +VBa8csBMJchmjM5dsvsGTadT5Hndip+h6qe5VgsG37tuU5pXnH1j+1oxc7sKYl5sIBarupyAaq5Pzk/l +lnDceaiYTNAPFMflDADnYPgCjMZbhLMYqcPXkqxQkslJm8HbiirCJkBQE67wOeF6JgEoFUvCUI4XRE0t +CpKQhBIwIpe5+jJqsayzcIl58GGMfI2hbw220rP/QQ9ubfbbF2Y2G1EliqHvUjQ3RlhXlDMCY6031dtT +U0N71VAPbbA5y1cuRsWJvm6Um8eO4tMz+9uSExZfFVDYpMOcUUGlAGTAdh6CDEmneSp3MhRzoZcz0Z7v +seQ4rVVvzLZehlJg0oO6zR37IhYFkuoIb70qzRjjkR3bah4/S3T1ecMyjc/cM1hu/Xr/un+/2N5G1p2V +XmQcr3LIHG/W20P+vi8PS+rd8S67tQnTb23KHd0yt3l796pkBi755pUZw2kKif1SYUP+M9da4dXWEEda +SgnMCfIkVO/ILhdpZOx7icU5S0HUfbsWUNdA7VzhFYy7NUa2VYURTgRc3WyP7Xb2FCTcnn46rqtowKxR +mz7+ANGZRx+49Pk1+bAmfLdTulmxzUK5tlr7h8t9vKBNAbJy0yw4rELWBGosjZyts+4lcSbBtjizLVrR +bL8rULGwBxZ6V7PeSXI6RJoDh1TZ9FmjsvviStldOkebzhsrPS5Yki28o86Q/bub3kQkJCWCoA/Jyfnp +9VLlOV0pFZ4zSlOCs88fUTr7lUSiB8+/Q6HwnGx5sBkNTd30O+Lv1s7blr65tkwOsFDv54zwpXrzM2Fc +ORQMZwe6jl3poj8WrXYamAHN3Q3M/j25aytfPnkWXr4hbJNEu9mex6iAMkYShsUWXWlvgHt5fA2h8Ksk +gz/4EgK7Ngv5JyYb+ee3ZFWWWhUFk5Use9rSmse82YIsftutGBKuUgmOkZekiSAMp2eUweNFksYRZrF8 +qH/KqDhL2q/qbxhZkMtc/ioBndYVShqXjSKO8BX+lTL0eIoeSJmt+THJ9EeHlbZ2FG/t7Fct4wQW5IyW +gk81Cmr7HVcSx1iLM+1BjHD2ZC2oirZv2T1bmTmDBRFvGunRRpJ9eBJXb2QxnTbLd9pujCEdECvSBh60 +8Og6JdZ5jw0aCCneyGkZ5ASzaImm1TIM1StT7JQFf0VTXTj8lZs3TYHLnfow+/qrZi9lNSzozCzSQRED +HakgTL8Ul35F36J/f/P3H8McM06CX0foCOrWeW2jpSSLVWo1WedlJoJqAJaYL4MR5AY8aBvq8WLTPJQW +E06ZIPGZPLE5SoD25CxvfGwKObpnhahi8s4PlixrddgnyakeOqUdt63MMfpQ88po90QLjgUmvO7wWBhd +wbmxKENM98ZiOteCgtJTz75+vjtFPhCm37ZXqi2wqlK+mCJfLo12lTLFX1XJeNWuZhAsZI6yjqbKoLRX +lbMRrQkJX7ogwXllrypngwRprbS77NkKjC11YB73juT/6nnLvJV8u2q+Xcq3y+bbWL6Nm28v5NuL5ttM +vn3VfLuVb7fe2MVMEv6apFJg+X/B+3hvFLy/GMlzx72JcRgozXMkfUufzHiwcvi4aJ+6wqWOr2eC4UgE +sGC/TykWwerk8HQ0rg3cyerkwelp6YFn5TUlDk9m/C19TdKAt40oP1KBpIQfCWARSbZAdA5qSVBMKPgh ++p4yRC5BzTBGv665QN6Dg8OvPHSRpCmaEbTBaRJbXWwMwzMfF0868km7YIZzRlc/0lZ2V4vrS7t3by5w +DrfYcNsmdde6IdnHvj2Y7c0HVCJoqmggJJckamXtls2uOlo1SKKrJV3amLyODYWvZ6tEPDG3Fffm3dqE +apf3yZ1sLZbh34iQjxletUKrWh40RnKMcRv8jVxqJpOYzNaLhU3Ra0ghRmdexiDoeIZkZ3yFG/ska3Yb +PTgRUCpw1B7kjjtgp4cuH/f6+lgyVBRmBk7ICmxJK3xOig0W6b1kjC6WhBGEUb7mSxRTwjNf9CMqN7L2 +S3luirBoj8k1vJzgeYCbE/zdxZdJnX3dy6B0LAQCVqVbJDzx0R6ykdWNfX0ts2kd/bPwIhFLuraMNh+j +s3CeZPE/5Nxav39EL+MjawfQ1WgHN1XrLHXPEKS0bM3KG9A3SR7Nh/ClQiorGbv5fmQdPiWiNSuQLO6k +lidx/BbPhqBUSNF1GbTlkdoWU5UJoltMHY26fVrFS916hWbSg2fiPAjhNF/iGThJeXgWxWS+WCa/nqer +jOYfGBfrzcXl9jcv5HmaiMAzj1RtbusKoWn6yhtrS5m/J8BH/Zv5WipUqITEVfgW7rb29qNVXJ95K5hF +CphSPd8Gdi8oF7eC2ZJy0Y9US8j4GxFv8eI/vtu+KnyGDIqUlOegSjhLnkCJ4tCmvN9aglUBt3nWg6ra +NaktbN1VHzqnArQnJ6rgqdMY0698aM6SPAXDhkGyiMbk3euXT+kqp5mUKzVaN5oxUOu7RsQeJKodZmwe +MsW/ws3rTJf9eGUXru4azjMuaelDzeXG4SDjlpN0M5V12N1OzT1n54Zs9pm4upmxM4EknFv1grGaVBr8 +sdNXp2uQT+LTIYmaSieaahS6E1EYnhOyG4MK9/niOIjgJB7iDHLVNySG28fnMCYNhK7dQ3eCZeXb1ul+ +gxe6bVX2JD7dNYvzXV1vWDO+v1O6DpOpKABuwlF7yc88iMdI7R1D1nBThfih7eyGU4jj6HJ42uC0t//n +ZCs7sMHp4CDlkY3PagYr/1iPca/kwY2vGUFyU0YJRzi9wFsOKph5wriQdUPXxmbqYqsd1jQeAlEd71Af +3hk7Ex6jWddoYlA+LkE26Q1SRvs7pZ4v/WtnOzVyuNudLyqLYJjSCKdEbt+YkWA2IDrwNs+6/juQpeVh +HqL+tDDE1d2oPSdhm2SyIgLL/WqiAX2r/k5/Z2GlMlTJUuj+fbXJvrbmgHWKZ/rNtYZ7mGJhkFrB2NLr +Zz6rJb52rLTrZC2TxJJITon3LU+ySMXMuHTCD8bIi/GWe0XmxJtoJDRZtI4Bt6EW2ImYzbGvPH6K/eG8 +2B96zpjykOESxM8hrZGp17GeLG5E+0DlwDrd3NY8CCn/ZNsJ7DPhKRZV+4IImxOW4qKFmdJtkjTKlUoe +U7djL6l0O5VK57jTc6o+v6ZkkLt84O/mofsAubsT/IcBdsl81Hl0U2JDhzjRdbaDLu1yDmk5nw2MH6jH +Edy/312qwl9R/mZnyXmQhNgwKiv924fR8ZDYYtYk2JYG5JxsY5UhwfDzscbGw86hA+R1ChewR6hX52T7 +FK5mnqLDLzsWsqIht+9yS1tYBJd1R90yFXJbruXrLqkPDt5sGspqpwIHta5uvvIADqvcHoHH3hxs/4Hj +nGzBe71LRF6dCLw4veU7F5WbX7PLaoXJ5oYlt9hVaaE9+lvN2iJP+pjG6kSF8/Qe7/tyy17d6XGGbKFr +BpUoHI53hrEYDsI1XDVbj3tMTYuPu9RHCKI4KmKkrkY73OHXk3tBOUW3zMBNXyp/9vVX/hjNBMUBeCop +3+Fkvg1YK+tZu7ZymzEsyMqN5lu0zmIyTzISo6PCo6YXmDaCVtAKD5tvtacMOqrg9kIrPW0qeJXzzQCI +wA2TzLgJurxHq/LEGaFvDb+cUNA3MHwBOHqt09QCEpxunCDxpQkSX/aBbPd7lWT+WGLeO0IrfClL4qYi +x5kSw9i8KuHRvisp5t7Y2dVBzO5V4/I9Kh21mhTm31c/4XR8L/D/BMkv/VFx+bQkPP/YKhErY8grInBg +FyM/g4N5deTDxiH7lg8fOidamNJFoBOULIgQSbZARZdBCa+tPHDQVX3b9RASZPT1OsuSrLXrFi7VYYSz +iKSB6W9ucdO56wRk+uqpEvI8pQv7fR5Ckph0+ExTh2pMhcXwYjNS2Anfaa+A24PqVU6S01pU91RHcDtP +BAX6e1O9MuQTEGgyRGqqrwoLMvZ5t0U0dzuJfnjpEj+bjaqS9Y13hfPrxMyakc5FSgxXvHMZxmhGMDqD +F+s1VFaNqc6jMSR7f9GK8gP4+zzwvvBG6DHaH3Ql17zM41EGaU+R94WHvq0+Vf716Mh0279J3n9HYgMn +emaAwPGt3gTVqSCeD9EHX3PX9++vksy1AVhFguaOtJNE4N9f4cu+5mrigq250hckWWHRFg6NU6POw9cE +YHIqksWQ8sPwqzQ+jVwnzIaDqVHF4Wrq1M3VEL0fF/xOFF6hfpX2yB8CBVin3I0aYCAfpz/axccANrFv +JRgpYLvmzSp1q/EYQV53LezsGewdqHMPpLZbEC8Y4etUZ1/G4RtgvEOcNvsy8Tp85Dhl4rutumD9yZCL +1srUs8cDlUm64QvMCgHA79a3qRHo6YcB7keKXkMVW3pWu5IDuvsPBaKQBbouS240uqdnp4SgbhlF3i4D +UkXUAqz/XDumulDaXubsLbkUDmdWvdPXYfdFg7ia2Jsi754ULQtHt5PkFO0hT7aN9tAH+fu969K38n7Q +Oi7FKO93X21pQwVvFoENnZF3E7NyWzD1e92IbUUgD14tKArP+DuW2kwYstw65OsZFyw4GKN1KWT43/rq +3ohvfVs1yQgLtlVFR/XxI2d/VN6+9R/qdDxozG04WNOxOm3xguZBt4pO6zBcVGieduS06sNQIxus3FgE +W8M1LmP0EO6V2/lGA/shrXonGwFNzaiZ7PlJnodxwkgEOVR8wX+i+Tq33oqhOfdHQ1GgYlWOkP/cr+Jz +YHCOGoOyZukR8qdGMSMFtSCrPMWCHCH/0WwtBM0QRB5PvZnI0Exk+1ps8IDF7S/FKp2qmEX1Ik9xBLm7 +p96MCkFX3mOympH40USBe2y0mybZ+ZHRPR0YTFKyGiMsRNvnTS5MjdYU3Qt89dtXdRqzpTOVX2ARLQOA +JteIOZxrljptX45vu5u9hGLw/qMky9cCEqNPPfnSQzR7mibR+dTTOXTgQpHRsYcYwTHN0u3UK355Kj/W +1LufimOMlozMp/c/rKk4luwD8ksiX724vxDHslSyWiDOIkuxMM8W0zxb1MtPsPzlPbYwKzXMYU5zuiEs +cGRFoJkgmTiCHo93OhNoArw6vnPlXA1PUsLEi4QLyrbDFkVBy++A4Cc5ZiLBKZ9AStOlghRKAvbbzbsC +4zUCf1Tu9Z1CdHXO2I8NP43qzPOEMbwtIhbPyXbUl26jKlqze9oWhmz8ZGP3bbPzRMvxFoBUjZ52hJDL +DueY4RVv+HVBStyOm+R9fO46KWzgGisl+fn3zbNI8+TBBRZrDkcPjcQe8u7jNJ0eetfyPTF1hJbwJ0UH +KnfwGdCvzTu5OX3NC/Q2Y4SdGe/uwuDj81swDm5CuL+DN2ZBbs9oGbaTz6t3jmvjmp0qgJsdW3YIwkp2 +3UOH6FGFmF1Hbv5bhs+zWKNaVDsBOKeA7c7eesOaMkZldBNJuEEscl5bMcXFP83TjqrhYWRDGCfByMLG +uzU7zRQtDTxGPQez4kQrC59pFg1h3TUo18gG2hT6f6ToFdZ3CDxR6+l7us5id3rQfu+v/pCwtm9X/10f +LygXn912Y8TLVFH38qmdL0HRtS4iaiun9P6aGSXwDLIZSw7LvXbOFA7mEmt2hcpxr5kxMFozRjLx7vUP +tX6t6ye6AkzazJe+cvmKNF26Agvbrrs9maJ/0z9cLv/mlyIORfv4HtVG/qppje507imceXqC6pqRfy2t +TdvEKfDMHyNHCKKaXfstDXavz4nsnOmUKJ9vz6NTkpdJIFcNMarwwOtMQFDebWaQ+cjmr1kvvbFRUo6F +IAwyPam8CfGn7afs0/LT6hOHBAqTY2uova6nlMIb+2wXut4CgTLdic6dsDp5cBoyAqe2wAce8sofDXXR +VebaBRHfCrw4n8p5ui/wYtOjQof5vOGEYs0HzrRNpiXsJL35DWBiEyV7oMfI4mp5NXKTSWkyL03khwcH +foPv5OuzPj4BZZpun3U+qYoY6fpqSDaYy9jSbbUAjpBPeRjla7+9rVdW0KMq63a7mGRHR1KKo1w0eNHY +pfQ5da93Q4H/K6dOQ09DeQ/DYWjur0VJIPIa+ng3tXRJGwaAk4PT4pIp/yfCIpIJ9I6T2G4civK1yx7Q +JLQVWfUSEZTpJiJVpLZD9FBOQTUe5eGKrNQdRY2cMIMIouZxdXM81pzEN0bjdkgROvP5keJhSYqeJEHP +4WmxOoMpRVMpC0NuolDd65et03TcJO5n8rF+oquZkU4OT4/bznVVY5Jx1ZHs2IQzIs5mW0F4L+kbJbsX +gFnwFnippMaMiBBAem1WyUCLKtia2L/pHLWSajW/1aVRlbX2CB02GWsntY9RMscROULeF94YafUZzeD5 +j+TQxlB/HosDFLGr3HLFF/gUyUF7U1DEEK2KRsaUN7h+k8SX9lR/wO+eKanFeGouqdxYUydxfnJwOkZx +fnJ4ir5A35weO52VNci3eMHDcubBU4X+f/Kub7dtnNnfn6dQhUVkI6rcfsDe2E2LNO12iy26wTYFDpAE +gSIxtmBbEkTZ2ZxN3v2AQ1Ki+E+U7RRdfHvRjSVyRA7J4XA485tNbYH0OUCzXr6+dr05huEU+B0tYvzn +fX5eFSWq6odOL6DY2GzXaYhcKrWuyUjTp9cuzbJYaOzfoRsYfW4w2NRrhnZipzTY+ZhDmzBFuF6XZnF6 +1y9H73oF6N0BJWea4WV0hyNcxgm60WkWPYKOEDDItfBwDdOoGru36/nk7d2/RNDe4WeWsuz8Xndl2aUo +11qfhWttcns4kVdFaXDKEEQtR3s5Mc5ok+zi9GmpPQUUJ7ZRNT2LDOZDYRPApEtG+csJXMo17LLXXvWS +dIYQIIO4J1/MX3EQ2js3sSPxzVR2lfaN/VMr7vutyZ/zJEtRXu+C7Y0ByDtYZflyR1xvnKDQE+rvfNWZ +pa3FOEulgIgs7cOaW29w7eENOet4GeMIoRljluAILvVQjWRHWnMUhSzIafrMvdJgUxI3zIFADkZXwXYT +BdlP50/Nboq9E4uBjkxtFMG9yB/oQW9ZDCb0g+/AowF8OR9KyNhytEQP8GCJHmzG5jmqP6ZZ/S1boTxR +s5QacGGF6RN9Uig0PaCPmqAk9vuzHfhuVcRwEbfKcnQe56ib+3WruWWEGN8oLXL0hSWRPjryXmwjo1OV +wxbazFNNbFPnU9ocJLKv3irG9dci/54v8+I+P72l4Vmf078FGNDbItUCw2wjvIHLvFYl5Msl+kbfaDZQ +INfWIL90pbo92RV3DEyxS037+OydGTLcVpsV+l6tRvGSe0SPttQWbAZ1Bf8hdXXuhw0i8JgqPS6MRVFd +bXB9in+v1yuqLL0ng3hA97+tHW50V6e+/oG3Q5lilopfA/efFKtVXOJukposVBO5iKQoYPoL6dHMhOqv +ioh2GfHKlpttpTqVKu6B7Ow+1eKNw6+H+KQe67wJ+EWIDijbfDrhiwtPIFwfv8tSGvy0FwRsswPrIu/E +HUld5frAi4T7wlMX+ETKoyoUHbqguCIBvecfkJ0mZubNnG1y9AeRPiap1URpAJ6NXOpLjGsuybUii5XH +pwnLYwYN/cx+6zlMd8hGCtGftqKfU6nw51TPLWWTP9webooN7AxUX2QgqStMLsScfa71pz8UfQPvL0hj +QMcgIEKg83xDt9vAYZMVpYNxrz7RBRhqRB8Rd2g88yYT7+PfJeTpXCCvBEHF8OuZM4RH2qMl6Zbo6H8s +rZj9ELcZl+zn9sNQjdbYchIynG06CYn0uFU/G/4U9VfcB4BKCyu1KHDN4LmYW/hePdfD7z5Pv+Fb1l4P +yrD/pZVogzJ2CfWkrF3CGyEJ3yf7makRma2slLJyvuBliGRqSxkOW6IFrOt7e1dUc0DLZjSi3+iDd15w +RN8FUmgkJzlhNd6BsRlw3Wh6ZshVwahBSNrYO+4mIDlCeWqo8DFP1eLgLggVeDHYX5VydTzHUExzJOY1 +L+I5DfqUP8M4oTQ1zTqf5psjU6/0w2vX7no1O4NW101BJ3y5kwvutCwjzKaiL+zQfihWYfnqLuL5oHl+ +Ec/1Weku4rmYB+/D+SCyH871VD+cO6W5O9/YDWH93pSKC2WLaAd3JAyQTPJHTEt2GUPa2Vzgl9FSdTtT +9XOe0qGED6Tl9ezfthvtjYbI8ydAcpdeVC+Nx6jXxZXru4wQBtU5gXy09B4fvW1kzKsJgFTbiIK+Rduh +BmFDG9NyUBOPjmxNBBZhMUua4Dm3jZahV+P09kNcoyZhEYvm/t/AhLIEBwawjps94vmFXGcOhmZg4myN +cB2vy6lXY3OxLXWpEBJIka6HVrzjKfwbHggvSo2VpPmJAAsGGBNFen8xtmbNuCmmcFYlJVEJ2TlhxbuY +rdzwX8xhtkLDwcmArtla8Ys7RKTqoLhf+D/9Fa0RxvF8kBkKwGznvbKHnOiE+3Sy5IW/xctI1eJE6tIl +Cn9tLT0HYo0v3UU8H2BROk1T2HWHdCQtm36k5QG6YdwUtZsjiB9KVpVAcZqOXv8aegFGSZGnODDlL+vu +pZR7aTmAcba0Hw6ovEvRxf0AQLug3cvBflB4/4iuXq3GZosZkkyibkFcDXerMA+s+SaUNVE7COqfBVz4 +kPYNdkrc4a539zvefW93pVxX7I7XloCUFdHlH+VhD20p/kS9PYWDYZuplPzUxjvhbsATnhlU/yaeaa4W +IWdDoeVppn6qPV/TQvS3JuYJdq62nLKViTAsHExIYo9BTRe4F7xeBFbwuU4QBozWe3RXVIj9OL2rURV6 +KE/bv3iBVbbOam2EFfRf1s0hrqLYwHXBq5kOGk0T9prHa2SSmfB9whZK9e2JvkW7Rf9j4bjOjBqm4E5u +hW6Kf8xTY2FwQ2rZDMYcHsNCHx0GOrgdPfqJN8J4HuYLfE6ACd1708yRg1FvOYS8t+3E259+hepLMrE0 +qN1GIO26F8KxT3Ng5qTJHB0m5xmjhzUn5MYZv7jvDU2WqNlOeIRnUy+gd1GB/mzF6Uy7kiUv7kOPRicI +f74aD0EHGtDE72VSrLN8PrCRcvueuZXnMa53aqH4L2ntf34d/9DULs6JFmBd6FFmyaFSe2Bh27Bou/Ee +H70gGLMcjkEYjI3X/LC167rQapUQkXsihaliRnxy6YWP18cTjibxqNhDnpQAJpYOiQc06uErtjRF70yL +qcgsXZroAyK0px3lSp0wKG/To6I81QQJMoVgKmsIalHQn6Yd5crkRg19plwKA405hqhHU1FzCnWnjjlq +C901VxEcfhomucbvG3SlqaRMSX7bWkkuGUO7kaH5g6S5konXqqnCr0bFah9RRbT9TXXO9jefyAa9kHtA +IwoaTZeH6imziPM5csnwmmaYnGbOivwuq9YqIIuMNfPQY/PVgGvLFiq+w2FUByHtzP4HY9NLbpKkQfaj +vMjROJhSxzrvacjZGGF+LYefPYGNs+QUGmcfbSWoHyZui+rezGMygL2g5yhP26psyjtV5AuirS0uEScS +sIAEsHy+npwqw2prKzeLz6kyWZptXb5QnaqyK9NQEmGu1Znkauvzc6GBgAP2vOi3BAu/V1RYlrh2iRjL +seOxCw4/KRqEuj5SH+a2+XQvOIjoOeiqNftRzlFtH5oViquur2Oqjeq5z/K0uOe8GAVnULGGRPnsLj4Y +7+asvLt0h9a3DoSh98/Tz8vqH+t16eQeb3f1cHeY19DRmyMNsHzJ8lNVAE7lpWRNZCibXQOiYDFk78cd +HEsJw88zoViCkpksJSTL5sBAmoTJS7GFqlqcLFC6WSEDFdLAOE9Tiocpl5Di+4xog8kSWiMiDfL/hgNg +NvyA3JDJ8htDxiIKJ3N+XUIeg68Ipdg7TZZ5cb9C6RwwOTW3YrQWOAiegccFJ/RLGVfkvN++MlW+rYtY +qUYemipQLxulCn1sqqTz+5Y4onX/NkY+Ky7gNg/wjk2sW/PoiNGik+4yu47OFtkqrVAuJMW0IyRrAWmt +EP6MdbdVEadJjOuRX+R/lij3VXfy7qT1XrkDyxk5vcqSpSbZmzEuUx2kESlpyReupohjbGdLNkoWKFl+ +Tv8m5+E2u5CFa2A4JpWE1cKGzED6OmLlZ1ai/K6CgmhkOelaaGru2E6LXmlwOI5dKXVu4ejdiZd5b04I +eesVnBJEZBlP8b+kyOss70uG/uQwo9tF1I5V7ygMyVphmkbQ15mlyqZMNekcrOuE4hZ2FgrrizGqVnN/ +KjLG5R51D2Y+Hbb/tIr17KBsamerAiNhWzOnSm+qUNfTAXXi/EEorQmiO/RwEBJzWepklsR4oLfPo57Z +4r78nnpmSpcjZv7xts15sAPRNUDZDtx2LM0IW/hvb3qnIWLUhXNTlJmzU1sG7JzrzarOHCN1xcnDsJ0v +DVMGzI481sfSBwXgWZiPopoOT/oyMb2geq3jHN09VyUMM3yqiUh22L5ojW9gBTijIS9q3I7L3tbw1b4q ++jc4Mob06kDqzS5MkUeSkuSKZ9jZcbJV6sIxKPiTcoy2zYVjA5J7Cno0O4JgRMiPfLpCX5Lv+yE0w1C9 +tUiVcb3gFf3e0sx+5ZN174cQOu9ch7LXDzmfhXsOfRJQq0RqUZb7N+k2ejqYsHq63Cb/RZIGUiqcCJgH +mgiSn2+1u7T62VYcs/FsqlXvLBXBG3stUSC4uJ+bOY5PF8WnNTtZ00dQ6/LBTDpgPXygxxAodOnX+FNV ++tfGI3hHQHdr0ag3c92cYkPyq0BxnI0nGXalKNYBhpsq7Kbj6FFJ2laPHdQfEcLEuI1Zp6YbtAn8pl+F +R7EmttogecGhuohTlL6nAegGlY0Zn4v5fDXkFIUX4LAjGLRcjFngGdi2qv90SVnMeuCvKKJDFEWW5JOd +Ttu1A0PKDZa9Qzd3x1aZN+DCWB4qhhIATse6D18DE2YOR44OyxTUgVsVcKDnAqPvrsTtINQdSJqhmA1n +IwWBCVPIFdeJyHbeDdw1kl+KfBRQa2ZHeKPeLB8nJ1SK9s9duqb2zLEBlP7vHttvhjqKzNbWNC5+gtnw +LKzbBsV9MroM/3kaja/HkznZBF9fbf7z6tXtIKWQzoiLYpMs4FjMbrU0L40eqnoFkNZVM7iY4tRgCXZT +xnCYHtOHzUNFP84iWdT2XKqPzJEtkvykgFkMeKQ1VouPHXJSirUA44Nvohpyl5ZP6Jv7ZGXLXxQPCXR7 +ik/yLpCCmvl/1MXCpDgqEGJjE5mju6pYf+AZZXtIQbwPGXh+eeq3iWf9sf0bFzzd7OBvQFZaf2xw16bH +GYNdxrYA4ELSdf4zUyOcg5fesedDWPnWceo3Z5qhE5BPCJqwl20DN0DKetIRnPnGQyehaWeUy4z3OCd8 +LaSY7qFZFU0Hg7zoHgns6eyS5bM0Ik6Wzm0AQ+yztCIhlN3bEecJWj1ja1r6zm36jTtkHb451LfLuSXn +m2r+PHwpCeUhHEnQ8w3SXUNe0yJXGJaLYonyLxmu25C4YTAVav0Ri3WLN92EceRzN+BDdQKuVK1EAnAS +qEVEGfm/9I6QIkf2Tb2Q3qRohXouzG5oslB+7vc/kCrag9dN2xBGeOTT4FPSS/xuEeOFCfXkRmjORUzm +61jjPlUvUN7jsyA3V5fnGorIrojMW6H3OCN9QIi+ZMyE3jbBl04x3k2DBo3EF9MJWBwIcqAVR8Efy1ys +ENYaRG/gTQSH1kapEKwrhVGBqIslqJPfsaDMg/osvjHB1xfL6BxV6wxjnmG+mcTii9+KCsj9VayQhRR5 +zXKTCHTI0w4B7/HRG/kA9dP9Pldijj3fEx77jtoQ/SZlvXfiNRydDZ24+01NGhhMm7HD1CxRtSZSqmte +UyfAZPL76dkfUy6biVz1KGo83GyzfL4RV1Vf4rqKS28RY+82Tr24zKAY+aTi60gEmP8mzbYsP/SVz6hd ++V4d30IO9JMr/+XrK//tVc5rdirEVVXcX/lv30zSbGsqxKi+ZNmFSfHN6q2vxr4Qnuw0O3V3/EDMBTaQ +iHgorL3NJyWKEuXAK1xXRT5/6+uLgcYE5SbmggvInf9mlb0lKwMoH3uld8xqH5Pa5KXNY5fRmGxWjPH0 +Xy3Qtbewi8cGYAr+1Wye0S9ZzrBtLxtzvE8Gh4NLXXewqTQkFIyqpNmkgpoXD3hahzb8faojFkqFTvHU +85OapXiQVBOycLOk1VCar1EFZZBi8hXdQ3N21EvU6j9ULYGec2QG8re4UUOJRYzfZ3XXEnabqSF0bJzh +nXckimMm9190orrlSYdRTYopnwk98BdUdmimx5StIBjTGPG2OnlnjBqiXojsroXqQX23kIRedNrjizEs +wUOHIjQ4ek/5R1n8QomE96xQRDJX56hWBs8wcFqOVijdJEjgKd6sQ0/MGIQ3a+/YG5W8G++8knZh6r0a +z2Sv1CcJLQ3dYTYvo090AmBlApYdFYVUEcW/VLgiJHgxoCfKMXWxCQh9SYVsLm09y6+d6ew9573Sn1bx +OCNfVPRKQaWE4IqOThkKX3PSL3uUHfqadj29YMKg0Z1ay7M/mYee73cy+ytqkkUtApUbBqdVilo8zln/ +6NCTjFltZ9NRc+BRetj7Vd3WFghbW9Dd2lQKlp3Nz1lpX7exqaQG7Gu+tKF9Rfewn/mwn/1/AAAA//9M +7K4QklgCAA== `, }, diff --git a/cmd/bosun/web/static/js/bosun.js b/cmd/bosun/web/static/js/bosun.js index 66d76c965b..76b342c2c6 100644 --- a/cmd/bosun/web/static/js/bosun.js +++ b/cmd/bosun/web/static/js/bosun.js @@ -1,7 +1,7 @@ /// /// //Represents an auth token -var Token = (function () { +var Token = /** @class */ (function () { function Token() { this.Description = ""; this.Role = 0; @@ -10,19 +10,19 @@ var Token = (function () { return Token; }()); //metadata about a single role or permission -var BitMeta = (function () { +var BitMeta = /** @class */ (function () { function BitMeta() { } return BitMeta; }()); //all roles/permissions for bosun -var RoleDefs = (function () { +var RoleDefs = /** @class */ (function () { function RoleDefs() { } return RoleDefs; }()); // See models/incident.go Event (can't be event here because JS uses that) -var IncidentEvent = (function () { +var IncidentEvent = /** @class */ (function () { function IncidentEvent(ie) { this.Value = ie.Value; this.Expr = ie.Expr; @@ -32,7 +32,7 @@ var IncidentEvent = (function () { } return IncidentEvent; }()); -var Annotation = (function () { +var Annotation = /** @class */ (function () { function Annotation(a, get) { a = a || {}; this.Id = a.Id || ""; @@ -58,14 +58,14 @@ var Annotation = (function () { }; return Annotation; }()); -var Result = (function () { +var Result = /** @class */ (function () { function Result(r) { this.Value = r.Value; this.Expr = r.Expr; } return Result; }()); -var Action = (function () { +var Action = /** @class */ (function () { function Action(a) { this.User = a.User; this.Message = a.Message; @@ -78,7 +78,7 @@ var Action = (function () { return Action; }()); // See models/incident.go -var IncidentState = (function () { +var IncidentState = /** @class */ (function () { function IncidentState(is) { this.Id = is.Id; this.Start = is.Start; @@ -130,7 +130,7 @@ var IncidentState = (function () { }; return IncidentState; }()); -var StateGroup = (function () { +var StateGroup = /** @class */ (function () { function StateGroup(sg) { this.Active = sg.Active; this.Status = sg.Status; @@ -154,7 +154,7 @@ var StateGroup = (function () { } return StateGroup; }()); -var Groups = (function () { +var Groups = /** @class */ (function () { function Groups(g) { this.NeedAck = new Array(); if (g.NeedAck) { @@ -173,7 +173,7 @@ var Groups = (function () { } return Groups; }()); -var StateGroups = (function () { +var StateGroups = /** @class */ (function () { function StateGroups(sgs) { this.Groups = new Groups(sgs.Groups); this.TimeAndDate = sgs.TimeAndDate; @@ -209,87 +209,87 @@ bosunApp.config(['$routeProvider', '$locationProvider', '$httpProvider', functio when('/', { title: 'Dashboard', templateUrl: 'partials/dashboard.html', - controller: 'DashboardCtrl' + controller: 'DashboardCtrl', }); when('/items', { title: 'Items', templateUrl: 'partials/items.html', - controller: 'ItemsCtrl' + controller: 'ItemsCtrl', }); when('/expr', { title: 'Expression', templateUrl: 'partials/expr.html', - controller: 'ExprCtrl' + controller: 'ExprCtrl', }); when('/errors', { title: 'Errors', templateUrl: 'partials/errors.html', - controller: 'ErrorCtrl' + controller: 'ErrorCtrl', }); when('/graph', { title: 'Graph', templateUrl: 'partials/graph.html', - controller: 'GraphCtrl' + controller: 'GraphCtrl', }); when('/host', { title: 'Host View', templateUrl: 'partials/host.html', controller: 'HostCtrl', - reloadOnSearch: false + reloadOnSearch: false, }); when('/silence', { title: 'Silence', templateUrl: 'partials/silence.html', - controller: 'SilenceCtrl' + controller: 'SilenceCtrl', }); when('/config', { title: 'Configuration', templateUrl: 'partials/config.html', controller: 'ConfigCtrl', - reloadOnSearch: false + reloadOnSearch: false, }); when('/action', { title: 'Action', templateUrl: 'partials/action.html', - controller: 'ActionCtrl' + controller: 'ActionCtrl', }); when('/history', { title: 'Alert History', templateUrl: 'partials/history.html', - controller: 'HistoryCtrl' + controller: 'HistoryCtrl', }); when('/put', { title: 'Data Entry', templateUrl: 'partials/put.html', - controller: 'PutCtrl' + controller: 'PutCtrl', }); when('/annotation', { title: 'Annotation', templateUrl: 'partials/annotation.html', - controller: 'AnnotationCtrl' + controller: 'AnnotationCtrl', }); when('/incident', { title: 'Incident', templateUrl: 'partials/incident.html', - controller: 'IncidentCtrl' + controller: 'IncidentCtrl', }); when('/tokens', { title: 'Access Tokens', - template: "" + template: "", }); when('/tokens/new', { title: 'New Access Token', - template: "" + template: "", }); $routeProvider.otherwise({ - redirectTo: '/' + redirectTo: '/', }); $httpProvider.interceptors.push(function ($q) { return { 'request': function (config) { config.headers['X-Miniprofiler'] = 'true'; return config; - } + }, }; }); }]); @@ -378,7 +378,7 @@ bosunControllers.controller('BosunCtrl', ['$scope', '$route', '$http', '$q', '$r .error(function (err) { d.reject(err); }); - p["finally"]($scope.stop); + p.finally($scope.stop); return d.promise; }; // Size of the logo in (width and height) of the Bosun logo in the navbar @@ -505,7 +505,7 @@ moment.locale('en', { MM: "%dn", y: "%dy", yy: "%dy" - } + }, }); function ruleUrl(ak, fromTime) { var openBrack = ak.indexOf("{"); @@ -650,7 +650,8 @@ bosunControllers.controller('ExprCtrl', ['$scope', '$http', '$location', '$route .error(function (error) { $scope.error = error; $scope.running = ''; - })["finally"](function () { + }) + .finally(function () { $scope.stop(); }); } @@ -687,7 +688,7 @@ bosunControllers.controller('ExprCtrl', ['$scope', '$http', '$location', '$route name += '}'; var series = { Data: data, - Name: name + Name: name, }; graph[idx] = series; }); @@ -737,7 +738,7 @@ bosunControllers.controller('ActionCtrl', ['$scope', '$http', '$location', '$rou Type: $scope.type, Message: $scope.message, Keys: $scope.keys, - Notify: $scope.notify + Notify: $scope.notify, }; if ($scope.duration != "") { data['Time'] = moment.utc().add(parseDuration($scope.duration)); @@ -794,13 +795,14 @@ bosunControllers.controller('AnnotationCtrl', ['$scope', '$http', '$location', ' .error(function (error) { $scope.error = "failed to create annotation: " + error.error; $scope.submitSuccess = false; - })["finally"](function () { + }) + .finally(function () { $scope.stop(); }); }; $scope.deleteAnnotation = function () { $scope.animate(); - $http["delete"]('/api/annotation/' + $scope.annotation.Id) + $http.delete('/api/annotation/' + $scope.annotation.Id) .success(function (data) { $scope.error = ""; $scope.deleteSuccess = true; @@ -811,13 +813,14 @@ bosunControllers.controller('AnnotationCtrl', ['$scope', '$http', '$location', ' .error(function (error) { $scope.error = "failed to delete annotation with id: " + $scope.annotation.Id + ", error: " + error.error; $scope.deleteSuccess = false; - })["finally"](function () { + }) + .finally(function () { $scope.stop(); }); }; }]); /// -var AuthService = (function () { +var AuthService = /** @class */ (function () { function AuthService() { } AuthService.prototype.Init = function (authEnabled, username, roles, userPerms) { @@ -903,7 +906,7 @@ var AuthService = (function () { }()); bosunApp.service("authService", AuthService); //simple component to show a easily -var UsernameInputController = (function () { +var UsernameInputController = /** @class */ (function () { function UsernameInputController(auth) { this.auth = auth; } @@ -913,7 +916,7 @@ var UsernameInputController = (function () { bosunApp.component("usernameInput", { controller: UsernameInputController, controllerAs: "ct", - template: '' + template: '', }); /// bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$route', '$timeout', '$sce', function ($scope, $http, $location, $route, $timeout, $sce) { @@ -1055,7 +1058,7 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou wrap: true, caseSensitive: false, wholeWord: false, - regExp: true + regExp: true, }); if (type == "alert") { $scope.selectAlert(name); @@ -1078,7 +1081,8 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou }) .error(function (error) { $scope.errors = [error]; - })["finally"](function () { + }) + .finally(function () { $scope.stop(); delete (set.show); }); @@ -1238,7 +1242,7 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou if (diff == 0) { intervals = 1; } - else if (Math.abs(diff) < 60 * 1000) { + else if (Math.abs(diff) < 60 * 1000) { // 1 minute intervals = 2; } else { @@ -1263,7 +1267,8 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou }) .error(function (error) { $scope.errors = [error]; - })["finally"](function () { + }) + .finally(function () { $scope.running = false; $scope.stop(); }); @@ -1293,7 +1298,8 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou }) .error(function (error) { v.error = error; - })["finally"](function () { + }) + .finally(function () { v.doneLoading = true; }); }; @@ -1389,7 +1395,7 @@ bosunControllers.controller('ConfigCtrl', ['$scope', '$http', '$location', '$rou }; return $scope; }]); -var NotificationController = (function () { +var NotificationController = /** @class */ (function () { function NotificationController($http) { var _this = this; this.$http = $http; @@ -1414,11 +1420,11 @@ var NotificationController = (function () { }()); bosunApp.component('notification', { bindings: { - dat: "<" + dat: "<", }, controller: NotificationController, controllerAs: 'ct', - templateUrl: '/static/partials/notification.html' + templateUrl: '/static/partials/notification.html', }); bosunControllers.controller('DashboardCtrl', ['$scope', '$http', '$location', function ($scope, $http, $location) { var search = $location.search(); @@ -1454,7 +1460,7 @@ bosunApp.directive('tsResults', function () { scope.isSeries = function (v) { return typeof (v) === 'object'; }; - } + }, }; }); bosunApp.directive('tsComputations', function () { @@ -1462,7 +1468,7 @@ bosunApp.directive('tsComputations', function () { scope: { computations: '=tsComputations', time: '=', - header: '=' + header: '=', }, templateUrl: '/partials/computations.html', link: function (scope, elem, attrs) { @@ -1473,7 +1479,7 @@ bosunApp.directive('tsComputations', function () { scope.btoa = function (v) { return encodeURIComponent(btoa(v)); }; - } + }, }; }); function fmtDuration(v) { @@ -1532,7 +1538,7 @@ bosunApp.directive("tsTime", function () { elem.html(el); } }); - } + }, }; }); bosunApp.directive("tsTimeUnix", function () { @@ -1561,7 +1567,7 @@ bosunApp.directive("tsTimeUnix", function () { elem.html(el); } }); - } + }, }; }); bosunApp.directive("tsSince", function () { @@ -1571,14 +1577,14 @@ bosunApp.directive("tsSince", function () { var m = moment(v).utc(); elem.text(m.fromNow()); }); - } + }, }; }); bosunApp.directive("tooltip", function () { return { link: function (scope, elem, attrs) { angular.element(elem[0]).tooltip({ placement: "bottom" }); - } + }, }; }); bosunApp.directive('tsTab', function () { @@ -1595,14 +1601,14 @@ bosunApp.directive('tsTab', function () { return; } switch (evt.keyCode) { - case 9:// tab + case 9: // tab evt.preventDefault(); var v = ta.value; var start = ta.selectionStart; ta.value = v.substr(0, start) + "\t" + v.substr(start); ta.selectionStart = ta.selectionEnd = start + 1; return; - case 13:// enter + case 13: // enter if (ta.selectionStart != ta.selectionEnd) { return; } @@ -1618,7 +1624,7 @@ bosunApp.directive('tsTab', function () { ta.selectionStart = ta.selectionEnd = start + 1 + ws.length; } }); - } + }, }; }); bosunApp.directive('tsresizable', function () { @@ -1642,10 +1648,10 @@ bosunApp.directive('tsTableSort', ['$timeout', function ($timeout) { link: function (scope, elem, attrs) { $timeout(function () { $(elem).tablesorter({ - sortList: scope.$eval(attrs.tsTableSort) + sortList: scope.$eval(attrs.tsTableSort), }); }); - } + }, }; }]); // https://gist.github.com/mlynch/dd407b93ed288d499778 @@ -1668,7 +1674,7 @@ bosunApp.directive('tsTimeLine', function () { top: 10, right: 10, bottom: 30, - left: 250 + left: 250, }; return { link: function (scope, elem, attrs) { @@ -1792,7 +1798,7 @@ bosunApp.directive('tsTimeLine', function () { } } ; - } + }, }; }); var fmtUnits = ['', 'k', 'M', 'G', 'T', 'P', 'E']; @@ -1860,12 +1866,12 @@ bosunApp.directive('tsBar', ['$window', 'nfmtFilter', function ($window, fmtfilt top: 20, right: 20, bottom: 0, - left: 200 + left: 200, }; return { scope: { data: '=', - height: '=' + height: '=', }, link: function (scope, elem, attrs) { var svgHeight = +scope.height || 150; @@ -1948,7 +1954,7 @@ bosunApp.directive('tsBar', ['$window', 'nfmtFilter', function ($window, fmtfilt .attr('width', function (d) { return xScale(d.Value); }); } ; - } + }, }; }]); bosunApp.directive('tsGraph', ['$window', 'nfmtFilter', function ($window, fmtfilter) { @@ -1956,7 +1962,7 @@ bosunApp.directive('tsGraph', ['$window', 'nfmtFilter', function ($window, fmtfi top: 10, right: 10, bottom: 30, - left: 80 + left: 80, }; return { scope: { @@ -1972,13 +1978,13 @@ bosunApp.directive('tsGraph', ['$window', 'nfmtFilter', function ($window, fmtfi normalize: '=', annotation: '=', annotateEnabled: '=', - showAnnotations: '=' + showAnnotations: '=', }, - template: '
' + - '
' + - '
' + - '
' + - '
' + + template: '
' + // chartElemt + '
' + // timeElem + '
' + // legendAnnContainer + '
' + // legendElem + '
' + // annElem '
', link: function (scope, elem, attrs, $compile) { var chartElem = d3.select(elem.children()[0]); @@ -2472,7 +2478,7 @@ bosunApp.directive('tsGraph', ['$window', 'nfmtFilter', function ($window, fmtfi function datefmt(d) { return moment(d).utc().format(mfmt); } - } + }, }; }]); bosunControllers.controller('ErrorCtrl', ['$scope', '$http', '$location', '$route', function ($scope, $http, $location, $route) { @@ -2494,7 +2500,8 @@ bosunControllers.controller('ErrorCtrl', ['$scope', '$http', '$location', '$rout }) .error(function (data) { $scope.error = "Error fetching data: " + data; - })["finally"](function () { $scope.loading = false; }); + }) + .finally(function () { $scope.loading = false; }); $scope.click = function (err, event) { event.stopPropagation(); }; @@ -2547,22 +2554,22 @@ bosunControllers.controller('ErrorCtrl', ['$scope', '$http', '$location', '$rout }; }]); /// -var TagSet = (function () { +var TagSet = /** @class */ (function () { function TagSet() { } return TagSet; }()); -var TagV = (function () { +var TagV = /** @class */ (function () { function TagV() { } return TagV; }()); -var RateOptions = (function () { +var RateOptions = /** @class */ (function () { function RateOptions() { } return RateOptions; }()); -var Filter = (function () { +var Filter = /** @class */ (function () { function Filter(f) { this.type = f && f.type || "auto"; this.tagk = f && f.tagk || ""; @@ -2571,12 +2578,12 @@ var Filter = (function () { } return Filter; }()); -var FilterMap = (function () { +var FilterMap = /** @class */ (function () { function FilterMap() { } return FilterMap; }()); -var Query = (function () { +var Query = /** @class */ (function () { function Query(filterSupport, q) { this.aggregator = q && q.aggregator || 'sum'; this.metric = q && q.metric || ''; @@ -2674,7 +2681,7 @@ var Query = (function () { }; return Query; }()); -var GraphRequest = (function () { +var GraphRequest = /** @class */ (function () { function GraphRequest() { this.start = '1h-ago'; this.queries = []; @@ -2707,7 +2714,7 @@ var GraphRequest = (function () { return GraphRequest; }()); var graphRefresh; -var Version = (function () { +var Version = /** @class */ (function () { function Version() { } return Version; @@ -2761,7 +2768,7 @@ bosunControllers.controller('GraphCtrl', ['$scope', '$http', '$location', '$rout "d": "d", "w": "w", "n": "M", - "y": "y" + "y": "y", }; var isRel = /^(\d+)(\w)-ago$/; function RelToAbs(m) { @@ -2799,7 +2806,7 @@ bosunControllers.controller('GraphCtrl', ['$scope', '$http', '$location', '$rout $scope.error = error; }); }; - $scope.deleteAnnotation = function () { return $http["delete"]('/api/annotation/' + $scope.annotation.Id) + $scope.deleteAnnotation = function () { return $http.delete('/api/annotation/' + $scope.annotation.Id) .success(function (data) { $scope.error = ""; $scope.annotations = _.without($scope.annotations, _.findWhere($scope.annotations, { Id: $scope.annotation.Id })); @@ -3073,7 +3080,8 @@ bosunControllers.controller('GraphCtrl', ['$scope', '$http', '$location', '$rout .error(function (error) { $scope.error = error; $scope.running = ''; - })["finally"](function () { + }) + .finally(function () { $scope.stop(); if ($scope.refresh) { graphRefresh = $timeout(function () { get(true); }, 5000); @@ -3088,7 +3096,7 @@ bosunApp.directive('tsPopup', function () { return { restrict: 'E', scope: { - url: '=' + url: '=', }, template: '', link: function (scope, elem, attrs) { @@ -3099,15 +3107,15 @@ bosunApp.directive('tsPopup', function () { } var text = ''; button.popover({ - content: text + content: text, }); }); - } + }, }; }); bosunApp.directive('tsAlertHistory', function () { return { - templateUrl: '/partials/alerthistory.html' + templateUrl: '/partials/alerthistory.html', }; }); bosunControllers.controller('HistoryCtrl', ['$scope', '$http', '$location', '$route', function ($scope, $http, $location, $route) { @@ -3140,7 +3148,7 @@ bosunControllers.controller('HistoryCtrl', ['$scope', '$http', '$location', '$ro } }); selected_alerts[ak] = { - History: v.Events.reverse() + History: v.Events.reverse(), }; }); if (Object.keys(selected_alerts).length > 0) { @@ -3197,7 +3205,7 @@ bosunControllers.controller('HostCtrl', ['$scope', '$http', '$location', '$route new Query(false, { metric: 'os.cpu', derivative: 'counter', - tags: { host: $scope.host } + tags: { host: $scope.host }, }) ]; $http.get('/api/graph?' + 'json=' + encodeURIComponent(JSON.stringify(cpu_r)) + autods) @@ -3212,11 +3220,11 @@ bosunControllers.controller('HostCtrl', ['$scope', '$http', '$location', '$route mem_r.start = $scope.time; mem_r.queries.push(new Query(false, { metric: "os.mem.total", - tags: { host: $scope.host } + tags: { host: $scope.host }, })); mem_r.queries.push(new Query(false, { metric: "os.mem.used", - tags: { host: $scope.host } + tags: { host: $scope.host }, })); $http.get('/api/graph?' + 'json=' + encodeURIComponent(JSON.stringify(mem_r)) + autods) .success(function (data) { @@ -3234,7 +3242,7 @@ bosunControllers.controller('HostCtrl', ['$scope', '$http', '$location', '$route metric: "os.net.bytes", rate: true, rateOptions: { counter: true, resetValue: 1 }, - tags: { host: $scope.host, iface: "*", direction: "*" } + tags: { host: $scope.host, iface: "*", direction: "*" }, }) ]; $http.get('/api/graph?' + 'json=' + encodeURIComponent(JSON.stringify(net_bytes_r)) + autods) @@ -3264,11 +3272,11 @@ bosunControllers.controller('HostCtrl', ['$scope', '$http', '$location', '$route fs_r.queries = [ new Query(false, { metric: "os.disk.fs.space_total", - tags: { host: $scope.host, disk: "*" } + tags: { host: $scope.host, disk: "*" }, }), new Query(false, { metric: "os.disk.fs.space_used", - tags: { host: $scope.host, disk: "*" } + tags: { host: $scope.host, disk: "*" }, }) ]; $http.get('/api/graph?' + 'json=' + encodeURIComponent(JSON.stringify(fs_r)) + autods) @@ -3339,7 +3347,8 @@ bosunControllers.controller('IncidentCtrl', ['$scope', '$http', '$location', '$r }) .error(function (error) { v.error = error; - })["finally"](function () { + }) + .finally(function () { v.doneLoading = true; }); }; @@ -3398,7 +3407,7 @@ bosunControllers.controller('ItemsCtrl', ['$scope', '$http', function ($scope, $ }); }]); /// -var LinkService = (function () { +var LinkService = /** @class */ (function () { function LinkService() { } LinkService.prototype.GetEditSilenceLink = function (silence, silenceId) { @@ -3420,12 +3429,12 @@ var LinkService = (function () { return LinkService; }()); bosunApp.service("linkService", LinkService); -var Tag = (function () { +var Tag = /** @class */ (function () { function Tag() { } return Tag; }()); -var DP = (function () { +var DP = /** @class */ (function () { function DP() { } return DP; @@ -3457,7 +3466,7 @@ bosunControllers.controller('PutCtrl', ['$scope', '$http', '$route', function ($ metric: $scope.metric, timestamp: ts, value: parseFloat(v.v), - tags: tags + tags: tags, }); } }); @@ -3583,7 +3592,7 @@ bosunControllers.controller('SilenceCtrl', ['$scope', '$http', '$location', '$ro tags: tags.join(','), edit: $scope.edit, forget: $scope.forget ? 'true' : null, - message: $scope.message + message: $scope.message, }; return data; } @@ -3625,7 +3634,8 @@ bosunControllers.controller('SilenceCtrl', ['$scope', '$http', '$location', '$ro $http.post('/api/silence/set', state) .error(function (error) { $scope.error = error; - })["finally"](get); + }) + .finally(get); }; $scope.clear = function (id) { if (!window.confirm('Clear this silence?')) { @@ -3635,7 +3645,8 @@ bosunControllers.controller('SilenceCtrl', ['$scope', '$http', '$location', '$ro $http.post('/api/silence/clear?id=' + id, {}) .error(function (error) { $scope.error = error; - })["finally"](get); + }) + .finally(get); }; $scope.time = function (v) { var m = moment(v).utc(); @@ -3651,7 +3662,7 @@ bosunApp.directive('tsAckGroup', ['$location', '$timeout', function ($location, ack: '=', groups: '=tsAckGroup', schedule: '=', - timeanddate: '=' + timeanddate: '=', }, templateUrl: '/partials/ackgroup.html', link: function (scope, elem, attrs) { @@ -3748,7 +3759,7 @@ bosunApp.directive('tsAckGroup', ['$location', '$timeout', function ($location, }); return url; }; - } + }, }; }]); bosunApp.directive('tsState', ['$sce', '$http', function ($sce, $http) { @@ -3811,60 +3822,60 @@ bosunApp.directive('tsState', ['$sce', '$http', function ($sce, $http) { scope.state.RuleUrl += '&template_group=' + encodeURIComponent(groups.join(',')); } scope.state.Body = $sce.trustAsHtml(scope.state.Body); - } + }, }; }]); bosunApp.directive('tsNote', function () { return { restrict: 'E', - templateUrl: '/partials/note.html' + templateUrl: '/partials/note.html', }; }); bosunApp.directive('tsAck', function () { return { restrict: 'E', - templateUrl: '/partials/ack.html' + templateUrl: '/partials/ack.html', }; }); bosunApp.directive('tsClose', function () { return { restrict: 'E', - templateUrl: '/partials/close.html' + templateUrl: '/partials/close.html', }; }); bosunApp.directive('tsCancelClose', function () { return { restrict: 'E', - templateUrl: '/partials/cancelClose.html' + templateUrl: '/partials/cancelClose.html', }; }); bosunApp.directive('tsForget', function () { return { restrict: 'E', - templateUrl: '/partials/forget.html' + templateUrl: '/partials/forget.html', }; }); bosunApp.directive('tsPurge', function () { return { restrict: 'E', - templateUrl: '/partials/purge.html' + templateUrl: '/partials/purge.html', }; }); bosunApp.directive('tsForceClose', function () { return { restrict: 'E', - templateUrl: '/partials/forceClose.html' + templateUrl: '/partials/forceClose.html', }; }); /// -var TokenListController = (function () { +var TokenListController = /** @class */ (function () { function TokenListController($http, auth) { var _this = this; this.$http = $http; this.auth = auth; - this["delete"] = function () { + this.delete = function () { _this.status = "Deleting..."; - _this.$http["delete"]("/api/tokens?hash=" + encodeURIComponent(_this.deleteTarget)) + _this.$http.delete("/api/tokens?hash=" + encodeURIComponent(_this.deleteTarget)) .then(function () { _this.status = ""; _this.load(); @@ -3910,7 +3921,7 @@ bosunApp.component('tokenList', { templateUrl: '/static/partials/tokenList.html' }); /// -var NewTokenController = (function () { +var NewTokenController = /** @class */ (function () { function NewTokenController($http, auth) { var _this = this; this.$http = $http; diff --git a/cmd/scollector/main.go b/cmd/scollector/main.go index 7e2eca2f92..6b41e07548 100644 --- a/cmd/scollector/main.go +++ b/cmd/scollector/main.go @@ -303,7 +303,7 @@ func main() { } } }() - sChan := make(chan os.Signal) + sChan := make(chan os.Signal, 1) signal.Notify(sChan, os.Interrupt) <-sChan close(cquit) diff --git a/cmd/tsdbrelay/integrationTest/main.go b/cmd/tsdbrelay/integrationTest/main.go index 46f1410e64..c088520126 100644 --- a/cmd/tsdbrelay/integrationTest/main.go +++ b/cmd/tsdbrelay/integrationTest/main.go @@ -78,7 +78,7 @@ func init() { fatal("DC3-TSDB", http.ListenAndServe(":6556", dc2TsdbMux)) }() - ch := make(chan os.Signal) + ch := make(chan os.Signal, 1) signal.Notify(ch, os.Kill, os.Interrupt) go func() { <-ch diff --git a/docker/Dockerfile b/docker/Dockerfile index 6ba476e38d..1251676364 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.13 AS bosun_builder +FROM golang:1.21 AS bosun_builder WORKDIR /bosun COPY . /bosun diff --git a/docs/index.md b/docs/index.md index ac1205dccf..d9f3b32ea1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,11 +20,9 @@ order: 1
-

Project Status (2019-11)

-

Skyscanner is delighted to announce that as of 18th November 2019, we'll be officially taking over Bosun's ownership and maintainership from Stack Exchange (home of stackoverflow.com).

-

We would like to thank StackExchange for their time, ensuring a smooth transition process, and for everyone’s hard work and input towards making this project a success. A special thanks to Kyle Brandt for initiating the Bosun project and leading it for many years. -

-

We will continue to welcome the open-source community code contributions on this project. Look out for updates on our plans and next steps in the near future.

+

Project Status (2024-05)

+

Skyscanner is in the process of migrating from an open source monitoring solution to a SaaS vendor. We are looking for users or contributors interested in becoming maintainers. Please see this Github issue for more information. +

diff --git a/go.sum b/go.sum index 5a3a2ef48e..bb873e29d3 100644 --- a/go.sum +++ b/go.sum @@ -29,9 +29,7 @@ github.com/StackExchange/wmi v0.0.0-20180725035823-b12b22c5341f/go.mod h1:3eOhrU github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= github.com/ajstarks/svgo v0.0.0-20151117013546-fd2151ebabde h1:spsB1I/8GhRhVDhuaFzIJ563/DYIOpUGcZsySZK1ofU= github.com/ajstarks/svgo v0.0.0-20151117013546-fd2151ebabde/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6 h1:45bxf7AZMwWcqkLzDAQugVEwedisr5nRJ1r+7LYnv0U= github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= @@ -107,7 +105,6 @@ github.com/getsentry/raven-go v0.1.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49P github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c h1:iRTj5SRYwbvsygdwVp+y9kZT145Y1s6xOPpeOEIeGc4= github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw= -github.com/go-ini/ini v1.21.1 h1:+QXUYsI7Tfxc64oD6R5BxU/Aq+UwGkyjH4W/hMNG7bg= github.com/go-ini/ini v1.21.1/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -130,7 +127,6 @@ github.com/golang/freetype v0.0.0-20150924013838-f29eb116deb3/go.mod h1:E/TSTwGw github.com/golang/glog v0.0.0-20141105023935-44145f04b68c/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20180924190550-6f2cf27854a4 h1:6UVLWz0fIIrv0UVj6t0A7cL48n8IyAdLVQqAYzEfsKI= github.com/golang/groupcache v0.0.0-20180924190550-6f2cf27854a4/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -156,7 +152,6 @@ github.com/google/gofuzz v0.0.0-20150304233714-bbcb9da2d746/go.mod h1:HP5RmnzzSN github.com/google/pprof v0.0.0-20180605153948-8b03ce837f34/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/googleapis/gnostic v0.0.0-20180520015035-48a0ecefe2e4/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/gophercloud/gophercloud v0.0.0-20170607034829-caf34a65f602/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -193,7 +188,6 @@ github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80s github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jinzhu/now v0.0.0-20151001141511-ce80572eb55a h1:E3/FQGI4lCWmMwCgJCQzE9bYVKOLzAc4jqK8DnL02Ow= github.com/jinzhu/now v0.0.0-20151001141511-ce80572eb55a/go.mod h1:oHTiXerJ20+SfYcrdlBO7rzZRJWGwSTQ0iUY2jI6Gfc= -github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7 h1:SMvOWPJCES2GdFracYbBQh93GXac8fq7HeN6JnpduB8= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= @@ -202,7 +196,6 @@ github.com/jmoiron/jsonq v0.0.0-20150511023944-e874b168d07e/go.mod h1:+rHyWac2R9 github.com/jordan-wright/email v0.0.0-20151016173557-f61123ea07e1 h1:t9N9joT8+GL35qGegwt+eOgR5RMTaNiIxjzUf7XQQsE= github.com/jordan-wright/email v0.0.0-20151016173557-f61123ea07e1/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/jtolds/gls v4.2.1+incompatible h1:fSuqC+Gmlu6l/ZYAoZzx2pyucC8Xza35fpRVWLVmUEE= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v0.0.0-20150905172533-109e267447e9/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -211,7 +204,6 @@ github.com/justinas/alice v0.0.0-20160910103822-1051eaf52fca/go.mod h1:oLH0CmIax github.com/kardianos/osext v0.0.0-20160811001526-c2c54e542fb7 h1:pKv4oHt3kat9yf1jofmaRv3KxGaY5B7VV55GrfXFa74= github.com/kardianos/osext v0.0.0-20160811001526-c2c54e542fb7/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/knz/strtime v0.0.0-20181018220328-af2256ee352c/go.mod h1:4ZxfWkxwtc7dBeifERVVWRy9F9rTU9p0yCDgeCtlius= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -263,7 +255,6 @@ github.com/onsi/gomega v1.4.1 h1:PZSj/UFNaVp3KxrzHOcS7oyuWA7LoOY/77yCTEFu21U= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/opentracing-contrib/go-stdlib v0.0.0-20170113013457-1de4cc2120e7/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.1 h1:IYN/cK5AaULfeMAlgFZSIBLSpsZ5MRHDy1fKBEqqJfQ= github.com/opentracing/opentracing-go v1.0.1/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -315,13 +306,10 @@ github.com/siddontang/ledisdb v0.0.0-20190202134119-8ceb77e66a92 h1:qvsJwGToa8rx github.com/siddontang/ledisdb v0.0.0-20190202134119-8ceb77e66a92/go.mod h1:mF1DpOSOUiJRMR+FDqaqu3EBqrybQtrDDszLUZ6oxPg= github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d h1:NVwnfyR3rENtlz62bcrkXME3INVUa4lcdGt+opvxExs= github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA= -github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= -github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a h1:JSvGDIbmil4Ui/dDdFBExb7/cmkNjyX5F97oglmvCDo= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/gunit v1.3.4/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= @@ -329,7 +317,6 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= @@ -350,7 +337,6 @@ github.com/yuin/gopher-lua v0.0.0-20190514113301-1cd887cd7036 h1:1b6PAtenNyhsmo/ github.com/yuin/gopher-lua v0.0.0-20190514113301-1cd887cd7036/go.mod h1:gqRgreBUhTSL0GeU64rtZ3Uq3wtjOa/TB2YfrtkCbVQ= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= @@ -365,7 +351,6 @@ golang.org/x/net v0.0.0-20180320002117-6078986fec03/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180724234803-3673e40ba225/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= -golang.org/x/net v0.0.0-20181217023233-e147a9138326 h1:iCzOf0xz39Tstp+Tu/WwyGjUXCk34QhQORRxBeXXTA4= golang.org/x/net v0.0.0-20181217023233-e147a9138326/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -374,12 +359,10 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20160608215109-65a8d08c6292 h1:HXWhxjZW2BJxGm1bt3b3Au7QNJc+/D8pjM1tfdDLlm8= golang.org/x/oauth2 v0.0.0-20160608215109-65a8d08c6292/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= @@ -387,18 +370,13 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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 h1:mzjBh+S5frKOsOBobWIMAbXavqjmgO17k/2puhcFR94= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190204203706-41f3e6584952 h1:FDfvYgoVsA7TTZSbgiqjAbfPbK47CNHdWl3h/PJtii0= golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/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-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd h1:r7DufRZuZbWB7j439YfAzP8RPDa9unLkpwQKUYbIMPI= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20170810154203-b19bf474d317 h1:WKW+OPdYPlvOTVGHuMfjnIC6yY2SI93yFB0pZ7giBmQ= golang.org/x/text v0.0.0-20170810154203-b19bf474d317/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -416,7 +394,6 @@ google.golang.org/appengine v0.0.0-20170522224838-a2f4131514e5/go.mod h1:EbEs0AV google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/cloud v0.0.0-20160622021550-0a83eba2cadb h1:IAkbDsVCpt6+HIt4uWPISM5JflWvw6fMk+A1S8aZLxc= google.golang.org/cloud v0.0.0-20160622021550-0a83eba2cadb/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20170531203552-aa2eb687b4d3/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -424,11 +401,9 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn google.golang.org/grpc v0.0.0-20170516193736-3419b4295567/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20141119150059-9eae18c3681a h1:tJDo4rNtNpoHS17CG6Ri6V4TtUaX25LWuHr9rvuG+fc= gopkg.in/asn1-ber.v1 v1.0.0-20141119150059-9eae18c3681a/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -450,7 +425,6 @@ gopkg.in/vmihailenco/msgpack.v2 v2.9.1/go.mod h1:/3Dn1Npt9+MYyLpYYXjInO/5jvMLamn gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0 h1:POO/ycCATvegFmVuPpQzZFJ+pGZeX22Ufu6fibxDVjU= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= diff --git a/package-lock.json b/package-lock.json index 4a1f32240d..e252625c53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,24 @@ { + "name": "bosun", + "lockfileVersion": 3, "requires": true, - "lockfileVersion": 1, - "dependencies": { - "typescript": { + "packages": { + "": { + "dependencies": { + "typescript": "^2.4.2" + } + }, + "node_modules/typescript": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", - "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=" + "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } } } } diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index f30289216f..0000000000 --- a/sonar-project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# Encoding of the source code. Default is default system encoding -sonar.sourceEncoding=UTF-8 - -sonar.organization=bosun-monitor -sonar.projectKey=bosun-monitor_bosun - -sonar.sources=. -sonar.exclusions=**/*_test.go,**/vendor/**,**/tests/** - -sonar.tests=. -sonar.test.inclusions=**/*_test.go -sonar.test.exclusions=**/vendor/** - -sonar.go.coverage.reportPaths=coverage.out -sonar.go.tests.reportPaths=test-report.out